Version Description
- Improvement: Added an "All Options" page to enable developers and others to more rapidly configure Wordfence.
- Improvement: Improved messaging for when a page has been open for more than a day and the security token expires.
- Improvement: Relocated the "Always display expanded Live Traffic records" option to be more accessible.
- Improvement: Improved appearance and behavior of option checkboxes.
- Improvement: For plugins with incomplete header information, they're now shown with a fallback title in scan results as appropriate.
- Improvement: The country block rule in the blocks table now shows a count rather than a potentially large list of countries.
- Change: Modified behavior of the advanced country blocking options to always show.
- Fix: Fixed the "Make Permanent" button behavior for blocks created from Live Traffic.
- Fix: Better synchronization of block records to the WAF config to avoid duplicate queries.
- Fix: The diff viewer now forces wrapping to prevent long lines of text from stretching the layout.
- Fix: Fixed an issue where the scanned plugin count could be inaccurate due to forking during the plugin scan.
- Fix: Adjusted sizing on the country blocking options to prevent placeholder text from being cut off at some screen sizes.
- Fix: Block/Unblock now works correctly when viewing Live Traffic with it grouped by IP.
- Fix: Fixed an issue where the count of URLs checked was incorrect.
Download this release
Release Info
Developer | wfryan |
Plugin | Wordfence Security – Firewall & Malware Scan |
Version | 7.0.3 |
Comparing to | |
See all releases |
Code changes from version 7.0.2 to 7.0.3
- css/{activity-report-widget.1517414961.css → activity-report-widget.1518460764.css} +0 -0
- css/{diff.1517414961.css → diff.1518460764.css} +5 -0
- css/{dt_table.1517414961.css → dt_table.1518460764.css} +0 -0
- css/{fullLog.1517414961.css → fullLog.1518460764.css} +0 -0
- css/{iptraf.1517414961.css → iptraf.1518460764.css} +0 -0
- css/{jquery-ui-timepicker-addon.1517414961.css → jquery-ui-timepicker-addon.1518460764.css} +0 -0
- css/{jquery-ui.min.1517414961.css → jquery-ui.min.1518460764.css} +0 -0
- css/{jquery-ui.structure.min.1517414961.css → jquery-ui.structure.min.1518460764.css} +0 -0
- css/{jquery-ui.theme.min.1517414961.css → jquery-ui.theme.min.1518460764.css} +0 -0
- css/main.1517414961.css +0 -1
- css/main.1518460764.css +1 -0
- css/{phpinfo.1517414961.css → phpinfo.1518460764.css} +0 -0
- css/{select2.min.1517414961.css → select2.min.1518460764.css} +0 -0
- css/{wf-adminbar.1517414961.css → wf-adminbar.1518460764.css} +0 -0
- css/{wf-colorbox.1517414961.css → wf-colorbox.1518460764.css} +0 -0
- css/{wf-font-awesome.1517414961.css → wf-font-awesome.1518460764.css} +0 -0
- css/{wf-ionicons.1517414961.css → wf-ionicons.1518460764.css} +0 -0
- css/wf-onboarding.1517414961.css +0 -1
- css/wf-onboarding.1518460764.css +1 -0
- css/{wordfenceBox.1517414961.css → wordfenceBox.1518460764.css} +0 -0
- js/{Chart.bundle.min.1517414961.js → Chart.bundle.min.1518460764.js} +0 -0
- js/{admin.1517414961.js → admin.1518460764.js} +87 -25
- js/{admin.ajaxWatcher.1517414961.js → admin.ajaxWatcher.1518460764.js} +0 -0
- js/{admin.liveTraffic.1517414961.js → admin.liveTraffic.1518460764.js} +8 -2
- js/{date.1517414961.js → date.1518460764.js} +0 -0
- js/{jquery-ui-timepicker-addon.1517414961.js → jquery-ui-timepicker-addon.1518460764.js} +0 -0
- js/{jquery.colorbox-min.1517414961.js → jquery.colorbox-min.1518460764.js} +0 -0
- js/{jquery.colorbox.1517414961.js → jquery.colorbox.1518460764.js} +0 -0
- js/{jquery.dataTables.min.1517414961.js → jquery.dataTables.min.1518460764.js} +0 -0
- js/{jquery.qrcode.min.1517414961.js → jquery.qrcode.min.1518460764.js} +0 -0
- js/{jquery.tmpl.min.1517414961.js → jquery.tmpl.min.1518460764.js} +0 -0
- js/{jquery.tools.min.1517414961.js → jquery.tools.min.1518460764.js} +0 -0
- js/{knockout-3.3.0.1517414961.js → knockout-3.3.0.1518460764.js} +0 -0
- js/{perf.1517414961.js → perf.1518460764.js} +0 -0
- js/{select2.min.1517414961.js → select2.min.1518460764.js} +0 -0
- js/{wfdashboard.1517414961.js → wfdashboard.1518460764.js} +0 -0
- js/{wfdropdown.1517414961.js → wfdropdown.1518460764.js} +0 -0
- js/{wfglobal.1517414961.js → wfglobal.1518460764.js} +0 -0
- js/{wfpopover.1517414961.js → wfpopover.1518460764.js} +0 -0
- lib/Diff/Renderer/Html/SideBySide.php +2 -2
- lib/menu_dashboard_options.php +33 -751
- lib/menu_firewall_blocking_options.php +7 -77
- lib/menu_firewall_waf_options.php +85 -1375
- lib/menu_options.php +402 -0
- lib/menu_scanner_options.php +27 -209
- lib/menu_tools_commentSpam.php +6 -80
- lib/menu_tools_livetraffic.php +56 -148
- lib/menu_tools_twoFactor.php +5 -44
- lib/wfConfig.php +143 -2
- lib/wfLog.php +9 -0
- lib/wfScanEngine.php +13 -7
- lib/wordfenceClass.php +110 -24
- lib/wordfenceScanner.php +2 -1
- lib/wordfenceURLHoover.php +2 -2
- models/block/wfBlock.php +8 -0
- readme.txt +18 -2
- views/blocking/option-bypass-cookie.php +1 -1
- views/blocking/option-bypass-redirect.php +2 -2
- views/blocking/options-group-advanced-country.php +91 -0
- views/common/section-subtitle.php +29 -0
- views/dashboard/option-howgetips.php +2 -2
- views/dashboard/options-group-alert.php +166 -0
- views/dashboard/options-group-dashboard.php +116 -0
- views/dashboard/options-group-email-summary.php +71 -0
- views/dashboard/options-group-general.php +154 -0
- views/dashboard/options-group-import.php +178 -0
- views/dashboard/options-group-license.php +154 -0
- views/dashboard/options-group-view-customization.php +66 -0
- views/options/block-all-options-controls.php +150 -0
- views/options/option-select.php +3 -1
- views/options/option-text.php +2 -1
- views/options/option-textarea.php +3 -1
- views/options/option-toggled-boolean-switch.php +3 -1
- views/options/option-toggled-multiple.php +2 -1
- views/options/option-toggled-segmented.php +3 -1
- views/options/option-toggled-select.php +5 -2
- views/options/option-toggled-sub.php +5 -2
- views/options/option-toggled-textarea.php +5 -2
- views/options/option-toggled.php +3 -1
- views/options/option-token.php +3 -1
- views/options/options-title.php +80 -0
- views/scanner/option-scan-signatures.php +2 -2
- views/scanner/options-group-advanced.php +56 -0
- views/scanner/options-group-basic.php +37 -0
- views/scanner/options-group-general.php +89 -0
- views/scanner/options-group-performance.php +69 -0
- views/scanner/options-group-scan-schedule.php +39 -0
- views/scanner/scan-type.php +1 -1
- views/tools/options-group-2fa.php +73 -0
- views/tools/options-group-comment-spam.php +94 -0
- views/tools/options-group-live-traffic.php +135 -0
- views/waf/option-rate-limit.php +5 -2
- views/waf/option-rules.php +1 -1
- views/waf/option-whitelist.php +1 -1
- views/waf/options-group-advanced-firewall.php +178 -0
- views/waf/options-group-basic-firewall.php +450 -0
- views/waf/options-group-brute-force.php +244 -0
- views/waf/options-group-rate-limiting.php +264 -0
- views/waf/options-group-whitelisted.php +276 -0
- wordfence.php +3 -3
css/{activity-report-widget.1517414961.css → activity-report-widget.1518460764.css}
RENAMED
File without changes
|
css/{diff.1517414961.css → diff.1518460764.css}
RENAMED
@@ -33,6 +33,11 @@ body {
|
|
33 |
font-size: 13px;
|
34 |
}
|
35 |
|
|
|
|
|
|
|
|
|
|
|
36 |
.DifferencesSideBySide .ChangeInsert td.Left {
|
37 |
background: #dfd;
|
38 |
}
|
33 |
font-size: 13px;
|
34 |
}
|
35 |
|
36 |
+
.DifferencesSideBySide td.Left, .DifferencesSideBySide td.Right {
|
37 |
+
word-wrap: break-word;
|
38 |
+
word-break: break-all;
|
39 |
+
}
|
40 |
+
|
41 |
.DifferencesSideBySide .ChangeInsert td.Left {
|
42 |
background: #dfd;
|
43 |
}
|
css/{dt_table.1517414961.css → dt_table.1518460764.css}
RENAMED
File without changes
|
css/{fullLog.1517414961.css → fullLog.1518460764.css}
RENAMED
File without changes
|
css/{iptraf.1517414961.css → iptraf.1518460764.css}
RENAMED
File without changes
|
css/{jquery-ui-timepicker-addon.1517414961.css → jquery-ui-timepicker-addon.1518460764.css}
RENAMED
File without changes
|
css/{jquery-ui.min.1517414961.css → jquery-ui.min.1518460764.css}
RENAMED
File without changes
|
css/{jquery-ui.structure.min.1517414961.css → jquery-ui.structure.min.1518460764.css}
RENAMED
File without changes
|
css/{jquery-ui.theme.min.1517414961.css → jquery-ui.theme.min.1518460764.css}
RENAMED
File without changes
|
css/main.1517414961.css
DELETED
@@ -1 +0,0 @@
|
|
1 |
-
.wf-clearfix:before,.wf-clearfix:after{content:" ";display:table}.wf-clearfix:after{clear:both}.wf-btn{display:inline-block;margin-bottom:0;font-weight:normal;text-align:center;vertical-align:middle;touch-action:manipulation;cursor:pointer;background-image:none;border:1px solid transparent;white-space:nowrap;text-transform:uppercase;padding:.4rem 1rem;font-size:.875rem;line-height:1.3125rem;border-radius:4px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}@media (min-width: 768px){.wf-btn{padding:.5rem 1.25rem;font-size:.875rem;line-height:1.3125rem;border-radius:4px}}.wf-btn:focus,.wf-btn.wf-focus,.wf-btn:active:focus,.wf-btn:active.wf-focus,.wf-btn.wf-active:focus,.wf-btn.wf-active.wf-focus{outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}.wf-btn:hover,.wf-btn:focus,.wf-btn.wf-focus{color:#00709e;text-decoration:none}.wf-btn:active,.wf-btn.wf-active{outline:0;background-image:none;-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,0.125);box-shadow:inset 0 3px 5px rgba(0,0,0,0.125)}.wf-btn.wf-disabled,.wf-btn[disabled],.wf-btn[readonly],fieldset[disabled] .wf-btn{cursor:not-allowed;-webkit-box-shadow:none;box-shadow:none}a.wf-btn{text-decoration:none}a.wf-btn.wf-disabled,fieldset[disabled] a.wf-btn{cursor:not-allowed;pointer-events:none}.wf-btn-default{color:#00709e;background-color:#fff;border-color:#00709e}.wf-btn-default:focus,.wf-btn-default.focus{color:#00709e;background-color:#e6e6e6;border-color:#00161f}.wf-btn-default:hover{color:#00709e;background-color:#e6e6e6;border-color:#004561}.wf-btn-default:active,.wf-btn-default.active,.wf-open>.wf-btn-default.wf-dropdown-toggle{color:#00709e;background-color:#e6e6e6;border-color:#004561}.wf-btn-default:active:hover,.wf-btn-default:active:focus,.wf-btn-default:active.focus,.wf-btn-default.active:hover,.wf-btn-default.active:focus,.wf-btn-default.active.focus,.wf-open>.wf-btn-default.wf-dropdown-toggle:hover,.wf-open>.wf-btn-default.wf-dropdown-toggle:focus,.wf-open>.wf-btn-default.wf-dropdown-toggle.focus{color:#00709e;background-color:#d4d4d4;border-color:#00161f}.wf-btn-default:active,.wf-btn-default.wf-active,.wf-open>.wf-btn-default.wf-dropdown-toggle{background-image:none}.wf-btn-default.wf-disabled,.wf-btn-default[disabled],.wf-btn-default[readonly],fieldset[disabled] .wf-btn-default{color:#777;background-color:#fff;border-color:#e2e2e2;cursor:not-allowed}.wf-btn-default.wf-disabled:hover,.wf-btn-default.wf-disabled:focus,.wf-btn-default.wf-disabled.wf-focus,.wf-btn-default[disabled]:hover,.wf-btn-default[disabled]:focus,.wf-btn-default[disabled].wf-focus,.wf-btn-default[readonly]:hover,.wf-btn-default[readonly]:focus,.wf-btn-default[readonly].wf-focus,fieldset[disabled] .wf-btn-default:hover,fieldset[disabled] .wf-btn-default:focus,fieldset[disabled] .wf-btn-default.wf-focus{background-color:#fff;border-color:#00709e}.wf-btn-default .wf-badge{color:#fff;background-color:#00709e}.wf-btn-primary{color:#fff;background-color:#00709e;border-color:#005e85}.wf-btn-primary:focus,.wf-btn-primary.focus{color:#fff;background-color:#004c6b;border-color:#000405}.wf-btn-primary:hover{color:#fff;background-color:#004c6b;border-color:#003347}.wf-btn-primary:active,.wf-btn-primary.active,.wf-open>.wf-btn-primary.wf-dropdown-toggle{color:#fff;background-color:#004c6b;border-color:#003347}.wf-btn-primary:active:hover,.wf-btn-primary:active:focus,.wf-btn-primary:active.focus,.wf-btn-primary.active:hover,.wf-btn-primary.active:focus,.wf-btn-primary.active.focus,.wf-open>.wf-btn-primary.wf-dropdown-toggle:hover,.wf-open>.wf-btn-primary.wf-dropdown-toggle:focus,.wf-open>.wf-btn-primary.wf-dropdown-toggle.focus{color:#fff;background-color:#003347;border-color:#000405}.wf-btn-primary:active,.wf-btn-primary.wf-active,.wf-open>.wf-btn-primary.wf-dropdown-toggle{background-image:none}.wf-btn-primary.wf-disabled,.wf-btn-primary[disabled],.wf-btn-primary[readonly],fieldset[disabled] .wf-btn-primary{color:#fff;background-color:#59a2c0;border-color:#5996b0;cursor:not-allowed}.wf-btn-primary.wf-disabled:hover,.wf-btn-primary.wf-disabled:focus,.wf-btn-primary.wf-disabled.wf-focus,.wf-btn-primary[disabled]:hover,.wf-btn-primary[disabled]:focus,.wf-btn-primary[disabled].wf-focus,.wf-btn-primary[readonly]:hover,.wf-btn-primary[readonly]:focus,.wf-btn-primary[readonly].wf-focus,fieldset[disabled] .wf-btn-primary:hover,fieldset[disabled] .wf-btn-primary:focus,fieldset[disabled] .wf-btn-primary.wf-focus{background-color:#00709e;border-color:#005e85}.wf-btn-primary .wf-badge{color:#00709e;background-color:#fff}.wf-btn-success{color:#fff;background-color:#5cb85c;border-color:#4cae4c}.wf-btn-success:focus,.wf-btn-success.focus{color:#fff;background-color:#449d44;border-color:#255625}.wf-btn-success:hover{color:#fff;background-color:#449d44;border-color:#398439}.wf-btn-success:active,.wf-btn-success.active,.wf-open>.wf-btn-success.wf-dropdown-toggle{color:#fff;background-color:#449d44;border-color:#398439}.wf-btn-success:active:hover,.wf-btn-success:active:focus,.wf-btn-success:active.focus,.wf-btn-success.active:hover,.wf-btn-success.active:focus,.wf-btn-success.active.focus,.wf-open>.wf-btn-success.wf-dropdown-toggle:hover,.wf-open>.wf-btn-success.wf-dropdown-toggle:focus,.wf-open>.wf-btn-success.wf-dropdown-toggle.focus{color:#fff;background-color:#398439;border-color:#255625}.wf-btn-success:active,.wf-btn-success.wf-active,.wf-open>.wf-btn-success.wf-dropdown-toggle{background-image:none}.wf-btn-success.wf-disabled,.wf-btn-success[disabled],.wf-btn-success[readonly],fieldset[disabled] .wf-btn-success{color:#fff;background-color:#95d195;border-color:#8bca8b;cursor:not-allowed}.wf-btn-success.wf-disabled:hover,.wf-btn-success.wf-disabled:focus,.wf-btn-success.wf-disabled.wf-focus,.wf-btn-success[disabled]:hover,.wf-btn-success[disabled]:focus,.wf-btn-success[disabled].wf-focus,.wf-btn-success[readonly]:hover,.wf-btn-success[readonly]:focus,.wf-btn-success[readonly].wf-focus,fieldset[disabled] .wf-btn-success:hover,fieldset[disabled] .wf-btn-success:focus,fieldset[disabled] .wf-btn-success.wf-focus{background-color:#5cb85c;border-color:#4cae4c}.wf-btn-success .wf-badge{color:#5cb85c;background-color:#fff}.wf-btn-info{color:#fff;background-color:#5bc0de;border-color:#46b8da}.wf-btn-info:focus,.wf-btn-info.focus{color:#fff;background-color:#31b0d5;border-color:#1b6d85}.wf-btn-info:hover{color:#fff;background-color:#31b0d5;border-color:#269abc}.wf-btn-info:active,.wf-btn-info.active,.wf-open>.wf-btn-info.wf-dropdown-toggle{color:#fff;background-color:#31b0d5;border-color:#269abc}.wf-btn-info:active:hover,.wf-btn-info:active:focus,.wf-btn-info:active.focus,.wf-btn-info.active:hover,.wf-btn-info.active:focus,.wf-btn-info.active.focus,.wf-open>.wf-btn-info.wf-dropdown-toggle:hover,.wf-open>.wf-btn-info.wf-dropdown-toggle:focus,.wf-open>.wf-btn-info.wf-dropdown-toggle.focus{color:#fff;background-color:#269abc;border-color:#1b6d85}.wf-btn-info:active,.wf-btn-info.wf-active,.wf-open>.wf-btn-info.wf-dropdown-toggle{background-image:none}.wf-btn-info.wf-disabled,.wf-btn-info[disabled],.wf-btn-info[readonly],fieldset[disabled] .wf-btn-info{color:#fff;background-color:#94d6ea;border-color:#87d1e7;cursor:not-allowed}.wf-btn-info.wf-disabled:hover,.wf-btn-info.wf-disabled:focus,.wf-btn-info.wf-disabled.wf-focus,.wf-btn-info[disabled]:hover,.wf-btn-info[disabled]:focus,.wf-btn-info[disabled].wf-focus,.wf-btn-info[readonly]:hover,.wf-btn-info[readonly]:focus,.wf-btn-info[readonly].wf-focus,fieldset[disabled] .wf-btn-info:hover,fieldset[disabled] .wf-btn-info:focus,fieldset[disabled] .wf-btn-info.wf-focus{background-color:#5bc0de;border-color:#46b8da}.wf-btn-info .wf-badge{color:#5bc0de;background-color:#fff}.wf-btn-warning{color:#fff;background-color:#f0ad4e;border-color:#eea236}.wf-btn-warning:focus,.wf-btn-warning.focus{color:#fff;background-color:#ec971f;border-color:#985f0d}.wf-btn-warning:hover{color:#fff;background-color:#ec971f;border-color:#d58512}.wf-btn-warning:active,.wf-btn-warning.active,.wf-open>.wf-btn-warning.wf-dropdown-toggle{color:#fff;background-color:#ec971f;border-color:#d58512}.wf-btn-warning:active:hover,.wf-btn-warning:active:focus,.wf-btn-warning:active.focus,.wf-btn-warning.active:hover,.wf-btn-warning.active:focus,.wf-btn-warning.active.focus,.wf-open>.wf-btn-warning.wf-dropdown-toggle:hover,.wf-open>.wf-btn-warning.wf-dropdown-toggle:focus,.wf-open>.wf-btn-warning.wf-dropdown-toggle.focus{color:#fff;background-color:#d58512;border-color:#985f0d}.wf-btn-warning:active,.wf-btn-warning.wf-active,.wf-open>.wf-btn-warning.wf-dropdown-toggle{background-image:none}.wf-btn-warning.wf-disabled,.wf-btn-warning[disabled],.wf-btn-warning[readonly],fieldset[disabled] .wf-btn-warning{color:#fff;background-color:#f5ca8c;border-color:#f4c37c;cursor:not-allowed}.wf-btn-warning.wf-disabled:hover,.wf-btn-warning.wf-disabled:focus,.wf-btn-warning.wf-disabled.wf-focus,.wf-btn-warning[disabled]:hover,.wf-btn-warning[disabled]:focus,.wf-btn-warning[disabled].wf-focus,.wf-btn-warning[readonly]:hover,.wf-btn-warning[readonly]:focus,.wf-btn-warning[readonly].wf-focus,fieldset[disabled] .wf-btn-warning:hover,fieldset[disabled] .wf-btn-warning:focus,fieldset[disabled] .wf-btn-warning.wf-focus{background-color:#f0ad4e;border-color:#eea236}.wf-btn-warning .wf-badge{color:#f0ad4e;background-color:#fff}.wf-btn-danger{color:#fff;background-color:#930000;border-color:#7a0000}.wf-btn-danger:focus,.wf-btn-danger.focus{color:#fff;background-color:#600000;border-color:#000}.wf-btn-danger:hover{color:#fff;background-color:#600000;border-color:#3c0000}.wf-btn-danger:active,.wf-btn-danger.active,.wf-open>.wf-btn-danger.wf-dropdown-toggle{color:#fff;background-color:#600000;border-color:#3c0000}.wf-btn-danger:active:hover,.wf-btn-danger:active:focus,.wf-btn-danger:active.focus,.wf-btn-danger.active:hover,.wf-btn-danger.active:focus,.wf-btn-danger.active.focus,.wf-open>.wf-btn-danger.wf-dropdown-toggle:hover,.wf-open>.wf-btn-danger.wf-dropdown-toggle:focus,.wf-open>.wf-btn-danger.wf-dropdown-toggle.focus{color:#fff;background-color:#3c0000;border-color:#000}.wf-btn-danger:active,.wf-btn-danger.wf-active,.wf-open>.wf-btn-danger.wf-dropdown-toggle{background-image:none}.wf-btn-danger.wf-disabled,.wf-btn-danger[disabled],.wf-btn-danger[readonly],fieldset[disabled] .wf-btn-danger{color:#fff;background-color:#b95959;border-color:#a95959;cursor:not-allowed}.wf-btn-danger.wf-disabled:hover,.wf-btn-danger.wf-disabled:focus,.wf-btn-danger.wf-disabled.wf-focus,.wf-btn-danger[disabled]:hover,.wf-btn-danger[disabled]:focus,.wf-btn-danger[disabled].wf-focus,.wf-btn-danger[readonly]:hover,.wf-btn-danger[readonly]:focus,.wf-btn-danger[readonly].wf-focus,fieldset[disabled] .wf-btn-danger:hover,fieldset[disabled] .wf-btn-danger:focus,fieldset[disabled] .wf-btn-danger.wf-focus{background-color:#930000;border-color:#7a0000}.wf-btn-danger .wf-badge{color:#930000;background-color:#fff}.wf-btn-callout{font-weight:600;text-transform:uppercase}.wf-btn-callout-subtle{font-weight:400;text-transform:uppercase}.wf-btn-link{color:#00709e;font-weight:normal;border-radius:0}.wf-btn-link,.wf-btn-link:active,.wf-btn-link.wf-active,.wf-btn-link[disabled],fieldset[disabled] .wf-btn-link{background-color:transparent;-webkit-box-shadow:none;box-shadow:none}.wf-btn-link,.wf-btn-link:hover,.wf-btn-link:focus,.wf-btn-link:active{border-color:transparent}.wf-btn-link:hover,.wf-btn-link:focus{color:#003a52;text-decoration:underline;background-color:transparent}.wf-btn-link[disabled]:hover,.wf-btn-link[disabled]:focus,fieldset[disabled] .wf-btn-link:hover,fieldset[disabled] .wf-btn-link:focus{color:#777;text-decoration:none}.wf-btn-lg,.wf-btn-group-lg>.wf-btn{padding:10px 16px;font-size:18px;line-height:1.33333;border-radius:6px}.wf-btn-sm,.wf-btn-group-sm>.wf-btn{padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}.wf-btn-xs,.wf-btn-group-xs>.wf-btn{padding:1px 5px;font-size:12px;line-height:1.5;border-radius:3px}.wf-btn-block{display:block;width:100%}.wf-btn-block+.wf-btn-block{margin-top:5px}input[type="submit"].wf-btn-block,input[type="reset"].wf-btn-block,input[type="button"].wf-btn-block{width:100%}.wf-btn-group,.wf-btn-group-vertical{position:relative;display:inline-block;vertical-align:middle}.wf-btn-group>.wf-btn,.wf-btn-group-vertical>.wf-btn{position:relative;float:left}.wf-btn-group>.wf-btn:hover,.wf-btn-group>.wf-btn:focus,.wf-btn-group>.wf-btn:active,.wf-btn-group>.wf-btn.wf-active,.wf-btn-group-vertical>.wf-btn:hover,.wf-btn-group-vertical>.wf-btn:focus,.wf-btn-group-vertical>.wf-btn:active,.wf-btn-group-vertical>.wf-btn.wf-active{z-index:2}.wf-btn-group .wf-btn+.wf-btn,.wf-btn-group .wf-btn+.wf-btn-group,.wf-btn-group .wf-btn-group+.wf-btn,.wf-btn-group .wf-btn-group+.wf-btn-group{margin-left:-1px}.wf-btn-toolbar{margin-left:-5px}.wf-btn-toolbar:before,.wf-btn-toolbar:after{content:" ";display:table}.wf-btn-toolbar:after{clear:both}.wf-btn-toolbar .wf-btn,.wf-btn-toolbar .wf-btn-group,.wf-btn-toolbar .wf-input-group{float:left}.wf-btn-toolbar>.wf-btn,.wf-btn-toolbar>.wf-btn-group,.wf-btn-toolbar>.wf-input-group{margin-left:5px}.wf-btn-group>.wf-btn:not(:first-child):not(:last-child):not(.wf-dropdown-toggle){border-radius:0}.wf-btn-group>.wf-btn:first-child{margin-left:0}.wf-btn-group>.wf-btn:first-child:not(:last-child):not(.wf-dropdown-toggle){-moz-border-radius-topright:0;-webkit-border-top-right-radius:0;border-top-right-radius:0;-moz-border-radius-bottomright:0;-webkit-border-bottom-right-radius:0;border-bottom-right-radius:0}.wf-btn-group>.wf-btn:last-child:not(:first-child),.wf-btn-group>.wf-dropdown-toggle:not(:first-child){-moz-border-radius-topleft:0;-webkit-border-top-left-radius:0;border-top-left-radius:0;-moz-border-radius-bottomleft:0;-webkit-border-bottom-left-radius:0;border-bottom-left-radius:0}.wf-btn-group>.wf-btn-group{float:left}.wf-btn-group>.wf-btn-group:not(:first-child):not(:last-child)>.wf-btn{border-radius:0}.wf-btn-group>.wf-btn-group:first-child:not(:last-child)>.wf-btn:last-child,.wf-btn-group>.wf-btn-group:first-child:not(:last-child)>.wf-dropdown-toggle{-moz-border-radius-topright:0;-webkit-border-top-right-radius:0;border-top-right-radius:0;-moz-border-radius-bottomright:0;-webkit-border-bottom-right-radius:0;border-bottom-right-radius:0}.wf-btn-group>.wf-btn-group:last-child:not(:first-child)>.wf-btn:first-child{-moz-border-radius-topleft:0;-webkit-border-top-left-radius:0;border-top-left-radius:0;-moz-border-radius-bottomleft:0;-webkit-border-bottom-left-radius:0;border-bottom-left-radius:0}.wf-btn-group .wf-dropdown-toggle:active,.wf-btn-group.wf-open .wf-dropdown-toggle{outline:0}.wf-btn-group>.wf-btn+.wf-dropdown-toggle{padding-left:8px;padding-right:8px}.wf-btn-group>.wf-btn-lg+.wf-dropdown-toggle,.wf-btn-group-lg.wf-btn-group>.wf-btn+.wf-dropdown-toggle{padding-left:12px;padding-right:12px}.wf-btn-group.open .wf-dropdown-toggle{-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,0.125);box-shadow:inset 0 3px 5px rgba(0,0,0,0.125)}.wf-btn-group.open .wf-dropdown-toggle.wf-btn-link{-webkit-box-shadow:none;box-shadow:none}.wf-btn .wf-caret{margin-left:0}.wf-btn-lg .wf-caret,.wf-btn-group-lg>.wf-btn .wf-caret{border-width:5px 5px 0;border-bottom-width:0}.wf-dropup .wf-btn-lg .wf-caret,.wf-dropup .wf-btn-group-lg>.wf-btn .wf-caret{border-width:0 5px 5px}.wf-btn-group-vertical>.wf-btn,.wf-btn-group-vertical>.wf-btn-group,.wf-btn-group-vertical>.wf-btn-group>.wf-btn{display:block;float:none;width:100%;max-width:100%}.wf-btn-group-vertical>.wf-btn-group:before,.wf-btn-group-vertical>.wf-btn-group:after{content:" ";display:table}.wf-btn-group-vertical>.wf-btn-group:after{clear:both}.wf-btn-group-vertical>.wf-btn-group>.wf-btn{float:none}.wf-btn-group-vertical>.wf-btn+.wf-btn,.wf-btn-group-vertical>.wf-btn+.wf-btn-group,.wf-btn-group-vertical>.wf-btn-group+.wf-btn,.wf-btn-group-vertical>.wf-btn-group+.wf-btn-group{margin-top:-1px;margin-left:0}.wf-btn-group-vertical>.wf-btn:not(:first-child):not(:last-child){border-radius:0}.wf-btn-group-vertical>.wf-btn:first-child:not(:last-child){-moz-border-radius-topleft:4px;-webkit-border-top-left-radius:4px;border-top-left-radius:4px;-moz-border-radius-topright:4px;-webkit-border-top-right-radius:4px;border-top-right-radius:4px;-moz-border-radius-bottomleft:0;-webkit-border-bottom-left-radius:0;border-bottom-left-radius:0;-moz-border-radius-bottomright:0;-webkit-border-bottom-right-radius:0;border-bottom-right-radius:0}.wf-btn-group-vertical>.wf-btn:last-child:not(:first-child){-moz-border-radius-topleft:0;-webkit-border-top-left-radius:0;border-top-left-radius:0;-moz-border-radius-topright:0;-webkit-border-top-right-radius:0;border-top-right-radius:0;-moz-border-radius-bottomleft:4px;-webkit-border-bottom-left-radius:4px;border-bottom-left-radius:4px;-moz-border-radius-bottomright:4px;-webkit-border-bottom-right-radius:4px;border-bottom-right-radius:4px}.wf-btn-group-vertical>.wf-btn-group:not(:first-child):not(:last-child)>.wf-btn{border-radius:0}.wf-btn-group-vertical>.wf-btn-group:first-child:not(:last-child)>.wf-btn:last-child,.wf-btn-group-vertical>.wf-btn-group:first-child:not(:last-child)>.wf-dropdown-toggle{-moz-border-radius-bottomleft:0;-webkit-border-bottom-left-radius:0;border-bottom-left-radius:0;-moz-border-radius-bottomright:0;-webkit-border-bottom-right-radius:0;border-bottom-right-radius:0}.wf-btn-group-vertical>.wf-btn-group:last-child:not(:first-child)>.wf-btn:first-child{-moz-border-radius-topleft:0;-webkit-border-top-left-radius:0;border-top-left-radius:0;-moz-border-radius-topright:0;-webkit-border-top-right-radius:0;border-top-right-radius:0}.wf-btn-group-justified{display:table;width:100%;table-layout:fixed;border-collapse:separate}.wf-btn-group-justified>.wf-btn,.wf-btn-group-justified>.wf-btn-group{float:none;display:table-cell;width:1%}.wf-btn-group-justified>.wf-btn-group .wf-btn{width:100%}.wf-btn-group-justified>.wf-btn-group .wf-dropdown-menu{left:auto}[data-toggle="buttons"]>.wf-btn input[type="radio"],[data-toggle="buttons"]>.wf-btn input[type="checkbox"],[data-toggle="buttons"]>.wf-btn-group>.wf-btn input[type="radio"],[data-toggle="buttons"]>.wf-btn-group>.wf-btn input[type="checkbox"]{position:absolute;clip:rect(0, 0, 0, 0);pointer-events:none}.wf-pagination{display:inline-block;padding-left:0;margin:20px 0;border-radius:4px}.wf-pagination>li{display:inline}.wf-pagination>li>a,.wf-pagination>li>span{position:relative;float:left;padding:.5rem 1.25rem;line-height:1.42857;text-decoration:none;color:#00709e;background-color:#fff;border:1px solid #ddd;margin-left:-1px}.wf-pagination>li:first-child>a,.wf-pagination>li:first-child>span{margin-left:0;-moz-border-radius-topleft:4px;-webkit-border-top-left-radius:4px;border-top-left-radius:4px;-moz-border-radius-bottomleft:4px;-webkit-border-bottom-left-radius:4px;border-bottom-left-radius:4px}.wf-pagination>li:last-child>a,.wf-pagination>li:last-child>span{-moz-border-radius-topright:4px;-webkit-border-top-right-radius:4px;border-top-right-radius:4px;-moz-border-radius-bottomright:4px;-webkit-border-bottom-right-radius:4px;border-bottom-right-radius:4px}.wf-pagination>li>a:hover,.wf-pagination>li>a:focus,.wf-pagination>li>span:hover,.wf-pagination>li>span:focus{z-index:2;color:#003a52;background-color:#e2e2e2;border-color:#ddd}.wf-pagination>.wf-active>a,.wf-pagination>.wf-active>a:hover,.wf-pagination>.wf-active>a:focus,.wf-pagination>.wf-active>span,.wf-pagination>.wf-active>span:hover,.wf-pagination>.wf-active>span:focus{z-index:3;color:#fff;background-color:#00709e;border-color:#00709e;cursor:default}.wf-pagination>.wf-disabled>span,.wf-pagination>.wf-disabled>span:hover,.wf-pagination>.wf-disabled>span:focus,.wf-pagination>.wf-disabled>a,.wf-pagination>.wf-disabled>a:hover,.wf-pagination>.wf-disabled>a:focus{color:#777;background-color:#fff;border-color:#ddd;cursor:not-allowed}.wf-pagination-lg>li>a,.wf-pagination-lg>li>span{padding:10px 16px;font-size:18px;line-height:1.33333}.wf-pagination-lg>li:first-child>a,.wf-pagination-lg>li:first-child>span{-moz-border-radius-topleft:6px;-webkit-border-top-left-radius:6px;border-top-left-radius:6px;-moz-border-radius-bottomleft:6px;-webkit-border-bottom-left-radius:6px;border-bottom-left-radius:6px}.wf-pagination-lg>li:last-child>a,.wf-pagination-lg>li:last-child>span{-moz-border-radius-topright:6px;-webkit-border-top-right-radius:6px;border-top-right-radius:6px;-moz-border-radius-bottomright:6px;-webkit-border-bottom-right-radius:6px;border-bottom-right-radius:6px}.wf-pagination-sm>li>a,.wf-pagination-sm>li>span{padding:5px 10px;font-size:12px;line-height:1.5}.wf-pagination-sm>li:first-child>a,.wf-pagination-sm>li:first-child>span{-moz-border-radius-topleft:3px;-webkit-border-top-left-radius:3px;border-top-left-radius:3px;-moz-border-radius-bottomleft:3px;-webkit-border-bottom-left-radius:3px;border-bottom-left-radius:3px}.wf-pagination-sm>li:last-child>a,.wf-pagination-sm>li:last-child>span{-moz-border-radius-topright:3px;-webkit-border-top-right-radius:3px;border-top-right-radius:3px;-moz-border-radius-bottomright:3px;-webkit-border-bottom-right-radius:3px;border-bottom-right-radius:3px}@-ms-viewport{width:device-width}.wf-visible-xs{display:none !important}.wf-visible-sm{display:none !important}.wf-visible-md{display:none !important}.wf-visible-lg{display:none !important}.wf-visible-xs-block,.wf-visible-xs-inline,.wf-visible-xs-inline-block,.wf-visible-sm-block,.wf-visible-sm-inline,.wf-visible-sm-inline-block,.wf-visible-md-block,.wf-visible-md-inline,.wf-visible-md-inline-block,.wf-visible-lg-block,.wf-visible-lg-inline,.wf-visible-lg-inline-block{display:none !important}@media (max-width: 767px){.wf-visible-xs{display:block !important}table.wf-visible-xs{display:table !important}tr.wf-visible-xs{display:table-row !important}th.wf-visible-xs,td.wf-visible-xs{display:table-cell !important}}@media (max-width: 767px){.wf-visible-xs-block{display:block !important}}@media (max-width: 767px){.wf-visible-xs-inline{display:inline !important}}@media (max-width: 767px){.wf-visible-xs-inline-block{display:inline-block !important}}@media (min-width: 768px) and (max-width: 991px){.wf-visible-sm{display:block !important}table.wf-visible-sm{display:table !important}tr.wf-visible-sm{display:table-row !important}th.wf-visible-sm,td.wf-visible-sm{display:table-cell !important}}@media (min-width: 768px) and (max-width: 991px){.wf-visible-sm-block{display:block !important}}@media (min-width: 768px) and (max-width: 991px){.wf-visible-sm-inline{display:inline !important}}@media (min-width: 768px) and (max-width: 991px){.wf-visible-sm-inline-block{display:inline-block !important}}@media (min-width: 992px) and (max-width: 1199px){.wf-visible-md{display:block !important}table.wf-visible-md{display:table !important}tr.wf-visible-md{display:table-row !important}th.wf-visible-md,td.wf-visible-md{display:table-cell !important}}@media (min-width: 992px) and (max-width: 1199px){.wf-visible-md-block{display:block !important}}@media (min-width: 992px) and (max-width: 1199px){.wf-visible-md-inline{display:inline !important}}@media (min-width: 992px) and (max-width: 1199px){.wf-visible-md-inline-block{display:inline-block !important}}@media (min-width: 1200px){.wf-visible-lg{display:block !important}table.wf-visible-lg{display:table !important}tr.wf-visible-lg{display:table-row !important}th.wf-visible-lg,td.wf-visible-lg{display:table-cell !important}}@media (min-width: 1200px){.wf-visible-lg-block{display:block !important}}@media (min-width: 1200px){.wf-visible-lg-inline{display:inline !important}}@media (min-width: 1200px){.wf-visible-lg-inline-block{display:inline-block !important}}@media (max-width: 767px){.wf-hidden-xs{display:none !important}}@media (min-width: 768px) and (max-width: 991px){.wf-hidden-sm{display:none !important}}@media (min-width: 992px) and (max-width: 1199px){.wf-hidden-md{display:none !important}}@media (min-width: 1200px){.wf-hidden-lg{display:none !important}}.wf-visible-print{display:none !important}@media print{.wf-visible-print{display:block !important}table.wf-visible-print{display:table !important}tr.wf-visible-print{display:table-row !important}th.wf-visible-print,td.wf-visible-print{display:table-cell !important}}.wf-visible-print-block{display:none !important}@media print{.wf-visible-print-block{display:block !important}}.wf-visible-print-inline{display:none !important}@media print{.wf-visible-print-inline{display:inline !important}}.wf-visible-print-inline-block{display:none !important}@media print{.wf-visible-print-inline-block{display:inline-block !important}}@media print{.wf-hidden-print{display:none !important}}.wf-container{margin-right:auto;margin-left:auto;padding-left:15px;padding-right:15px}.wf-container:before,.wf-container:after{content:" ";display:table}.wf-container:after{clear:both}@media (min-width: 768px){.wf-container{width:750px}}@media (min-width: 992px){.wf-container{width:970px}}@media (min-width: 1200px){.wf-container{width:1170px}}.wf-container-fluid{margin-right:auto;margin-left:auto;padding-left:15px;padding-right:15px}.wf-container-fluid:before,.wf-container-fluid:after{content:" ";display:table}.wf-container-fluid:after{clear:both}.wf-row{margin-left:-15px;margin-right:-15px}.wf-row:before,.wf-row:after{content:" ";display:table}.wf-row:after{clear:both}.wf-col-xs-1,.wf-col-sm-1,.wf-col-md-1,.wf-col-lg-1,.wf-col-xs-2,.wf-col-sm-2,.wf-col-md-2,.wf-col-lg-2,.wf-col-xs-3,.wf-col-sm-3,.wf-col-md-3,.wf-col-lg-3,.wf-col-xs-4,.wf-col-sm-4,.wf-col-md-4,.wf-col-lg-4,.wf-col-xs-5,.wf-col-sm-5,.wf-col-md-5,.wf-col-lg-5,.wf-col-xs-6,.wf-col-sm-6,.wf-col-md-6,.wf-col-lg-6,.wf-col-xs-7,.wf-col-sm-7,.wf-col-md-7,.wf-col-lg-7,.wf-col-xs-8,.wf-col-sm-8,.wf-col-md-8,.wf-col-lg-8,.wf-col-xs-9,.wf-col-sm-9,.wf-col-md-9,.wf-col-lg-9,.wf-col-xs-10,.wf-col-sm-10,.wf-col-md-10,.wf-col-lg-10,.wf-col-xs-11,.wf-col-sm-11,.wf-col-md-11,.wf-col-lg-11,.wf-col-xs-12,.wf-col-sm-12,.wf-col-md-12,.wf-col-lg-12{position:relative;min-height:1px;padding-left:15px;padding-right:15px;box-sizing:border-box}.wf-col-xs-1,.wf-col-xs-2,.wf-col-xs-3,.wf-col-xs-4,.wf-col-xs-5,.wf-col-xs-6,.wf-col-xs-7,.wf-col-xs-8,.wf-col-xs-9,.wf-col-xs-10,.wf-col-xs-11,.wf-col-xs-12{float:left}.wf-col-xs-1{width:8.33333%}.wf-col-xs-2{width:16.66667%}.wf-col-xs-3{width:25%}.wf-col-xs-4{width:33.33333%}.wf-col-xs-5{width:41.66667%}.wf-col-xs-6{width:50%}.wf-col-xs-7{width:58.33333%}.wf-col-xs-8{width:66.66667%}.wf-col-xs-9{width:75%}.wf-col-xs-10{width:83.33333%}.wf-col-xs-11{width:91.66667%}.wf-col-xs-12{width:100%}.wf-col-xs-pull-0{right:auto}.wf-col-xs-pull-1{right:8.33333%}.wf-col-xs-pull-2{right:16.66667%}.wf-col-xs-pull-3{right:25%}.wf-col-xs-pull-4{right:33.33333%}.wf-col-xs-pull-5{right:41.66667%}.wf-col-xs-pull-6{right:50%}.wf-col-xs-pull-7{right:58.33333%}.wf-col-xs-pull-8{right:66.66667%}.wf-col-xs-pull-9{right:75%}.wf-col-xs-pull-10{right:83.33333%}.wf-col-xs-pull-11{right:91.66667%}.wf-col-xs-pull-12{right:100%}.wf-col-xs-push-0{left:auto}.wf-col-xs-push-1{left:8.33333%}.wf-col-xs-push-2{left:16.66667%}.wf-col-xs-push-3{left:25%}.wf-col-xs-push-4{left:33.33333%}.wf-col-xs-push-5{left:41.66667%}.wf-col-xs-push-6{left:50%}.wf-col-xs-push-7{left:58.33333%}.wf-col-xs-push-8{left:66.66667%}.wf-col-xs-push-9{left:75%}.wf-col-xs-push-10{left:83.33333%}.wf-col-xs-push-11{left:91.66667%}.wf-col-xs-push-12{left:100%}.wf-col-xs-offset-0{margin-left:0%}.wf-col-xs-offset-1{margin-left:8.33333%}.wf-col-xs-offset-2{margin-left:16.66667%}.wf-col-xs-offset-3{margin-left:25%}.wf-col-xs-offset-4{margin-left:33.33333%}.wf-col-xs-offset-5{margin-left:41.66667%}.wf-col-xs-offset-6{margin-left:50%}.wf-col-xs-offset-7{margin-left:58.33333%}.wf-col-xs-offset-8{margin-left:66.66667%}.wf-col-xs-offset-9{margin-left:75%}.wf-col-xs-offset-10{margin-left:83.33333%}.wf-col-xs-offset-11{margin-left:91.66667%}.wf-col-xs-offset-12{margin-left:100%}.wf-col-xs-half-padding-left{padding-left:8px}.wf-col-xs-half-padding-right{padding-right:7px}@media (min-width: 768px){.wf-col-sm-1,.wf-col-sm-2,.wf-col-sm-3,.wf-col-sm-4,.wf-col-sm-5,.wf-col-sm-6,.wf-col-sm-7,.wf-col-sm-8,.wf-col-sm-9,.wf-col-sm-10,.wf-col-sm-11,.wf-col-sm-12{float:left}.wf-col-sm-1{width:8.33333%}.wf-col-sm-2{width:16.66667%}.wf-col-sm-3{width:25%}.wf-col-sm-4{width:33.33333%}.wf-col-sm-5{width:41.66667%}.wf-col-sm-6{width:50%}.wf-col-sm-7{width:58.33333%}.wf-col-sm-8{width:66.66667%}.wf-col-sm-9{width:75%}.wf-col-sm-10{width:83.33333%}.wf-col-sm-11{width:91.66667%}.wf-col-sm-12{width:100%}.wf-col-sm-pull-0{right:auto}.wf-col-sm-pull-1{right:8.33333%}.wf-col-sm-pull-2{right:16.66667%}.wf-col-sm-pull-3{right:25%}.wf-col-sm-pull-4{right:33.33333%}.wf-col-sm-pull-5{right:41.66667%}.wf-col-sm-pull-6{right:50%}.wf-col-sm-pull-7{right:58.33333%}.wf-col-sm-pull-8{right:66.66667%}.wf-col-sm-pull-9{right:75%}.wf-col-sm-pull-10{right:83.33333%}.wf-col-sm-pull-11{right:91.66667%}.wf-col-sm-pull-12{right:100%}.wf-col-sm-push-0{left:auto}.wf-col-sm-push-1{left:8.33333%}.wf-col-sm-push-2{left:16.66667%}.wf-col-sm-push-3{left:25%}.wf-col-sm-push-4{left:33.33333%}.wf-col-sm-push-5{left:41.66667%}.wf-col-sm-push-6{left:50%}.wf-col-sm-push-7{left:58.33333%}.wf-col-sm-push-8{left:66.66667%}.wf-col-sm-push-9{left:75%}.wf-col-sm-push-10{left:83.33333%}.wf-col-sm-push-11{left:91.66667%}.wf-col-sm-push-12{left:100%}.wf-col-sm-offset-0{margin-left:0%}.wf-col-sm-offset-1{margin-left:8.33333%}.wf-col-sm-offset-2{margin-left:16.66667%}.wf-col-sm-offset-3{margin-left:25%}.wf-col-sm-offset-4{margin-left:33.33333%}.wf-col-sm-offset-5{margin-left:41.66667%}.wf-col-sm-offset-6{margin-left:50%}.wf-col-sm-offset-7{margin-left:58.33333%}.wf-col-sm-offset-8{margin-left:66.66667%}.wf-col-sm-offset-9{margin-left:75%}.wf-col-sm-offset-10{margin-left:83.33333%}.wf-col-sm-offset-11{margin-left:91.66667%}.wf-col-sm-offset-12{margin-left:100%}.wf-col-sm-half-padding-left{padding-left:8px}.wf-col-sm-half-padding-right{padding-right:7px}}@media (min-width: 992px){.wf-col-md-1,.wf-col-md-2,.wf-col-md-3,.wf-col-md-4,.wf-col-md-5,.wf-col-md-6,.wf-col-md-7,.wf-col-md-8,.wf-col-md-9,.wf-col-md-10,.wf-col-md-11,.wf-col-md-12{float:left}.wf-col-md-1{width:8.33333%}.wf-col-md-2{width:16.66667%}.wf-col-md-3{width:25%}.wf-col-md-4{width:33.33333%}.wf-col-md-5{width:41.66667%}.wf-col-md-6{width:50%}.wf-col-md-7{width:58.33333%}.wf-col-md-8{width:66.66667%}.wf-col-md-9{width:75%}.wf-col-md-10{width:83.33333%}.wf-col-md-11{width:91.66667%}.wf-col-md-12{width:100%}.wf-col-md-pull-0{right:auto}.wf-col-md-pull-1{right:8.33333%}.wf-col-md-pull-2{right:16.66667%}.wf-col-md-pull-3{right:25%}.wf-col-md-pull-4{right:33.33333%}.wf-col-md-pull-5{right:41.66667%}.wf-col-md-pull-6{right:50%}.wf-col-md-pull-7{right:58.33333%}.wf-col-md-pull-8{right:66.66667%}.wf-col-md-pull-9{right:75%}.wf-col-md-pull-10{right:83.33333%}.wf-col-md-pull-11{right:91.66667%}.wf-col-md-pull-12{right:100%}.wf-col-md-push-0{left:auto}.wf-col-md-push-1{left:8.33333%}.wf-col-md-push-2{left:16.66667%}.wf-col-md-push-3{left:25%}.wf-col-md-push-4{left:33.33333%}.wf-col-md-push-5{left:41.66667%}.wf-col-md-push-6{left:50%}.wf-col-md-push-7{left:58.33333%}.wf-col-md-push-8{left:66.66667%}.wf-col-md-push-9{left:75%}.wf-col-md-push-10{left:83.33333%}.wf-col-md-push-11{left:91.66667%}.wf-col-md-push-12{left:100%}.wf-col-md-offset-0{margin-left:0%}.wf-col-md-offset-1{margin-left:8.33333%}.wf-col-md-offset-2{margin-left:16.66667%}.wf-col-md-offset-3{margin-left:25%}.wf-col-md-offset-4{margin-left:33.33333%}.wf-col-md-offset-5{margin-left:41.66667%}.wf-col-md-offset-6{margin-left:50%}.wf-col-md-offset-7{margin-left:58.33333%}.wf-col-md-offset-8{margin-left:66.66667%}.wf-col-md-offset-9{margin-left:75%}.wf-col-md-offset-10{margin-left:83.33333%}.wf-col-md-offset-11{margin-left:91.66667%}.wf-col-md-offset-12{margin-left:100%}.wf-col-md-half-padding-left{padding-left:8px}.wf-col-md-half-padding-right{padding-right:7px}}@media (min-width: 1200px){.wf-col-lg-1,.wf-col-lg-2,.wf-col-lg-3,.wf-col-lg-4,.wf-col-lg-5,.wf-col-lg-6,.wf-col-lg-7,.wf-col-lg-8,.wf-col-lg-9,.wf-col-lg-10,.wf-col-lg-11,.wf-col-lg-12{float:left}.wf-col-lg-1{width:8.33333%}.wf-col-lg-2{width:16.66667%}.wf-col-lg-3{width:25%}.wf-col-lg-4{width:33.33333%}.wf-col-lg-5{width:41.66667%}.wf-col-lg-6{width:50%}.wf-col-lg-7{width:58.33333%}.wf-col-lg-8{width:66.66667%}.wf-col-lg-9{width:75%}.wf-col-lg-10{width:83.33333%}.wf-col-lg-11{width:91.66667%}.wf-col-lg-12{width:100%}.wf-col-lg-pull-0{right:auto}.wf-col-lg-pull-1{right:8.33333%}.wf-col-lg-pull-2{right:16.66667%}.wf-col-lg-pull-3{right:25%}.wf-col-lg-pull-4{right:33.33333%}.wf-col-lg-pull-5{right:41.66667%}.wf-col-lg-pull-6{right:50%}.wf-col-lg-pull-7{right:58.33333%}.wf-col-lg-pull-8{right:66.66667%}.wf-col-lg-pull-9{right:75%}.wf-col-lg-pull-10{right:83.33333%}.wf-col-lg-pull-11{right:91.66667%}.wf-col-lg-pull-12{right:100%}.wf-col-lg-push-0{left:auto}.wf-col-lg-push-1{left:8.33333%}.wf-col-lg-push-2{left:16.66667%}.wf-col-lg-push-3{left:25%}.wf-col-lg-push-4{left:33.33333%}.wf-col-lg-push-5{left:41.66667%}.wf-col-lg-push-6{left:50%}.wf-col-lg-push-7{left:58.33333%}.wf-col-lg-push-8{left:66.66667%}.wf-col-lg-push-9{left:75%}.wf-col-lg-push-10{left:83.33333%}.wf-col-lg-push-11{left:91.66667%}.wf-col-lg-push-12{left:100%}.wf-col-lg-offset-0{margin-left:0%}.wf-col-lg-offset-1{margin-left:8.33333%}.wf-col-lg-offset-2{margin-left:16.66667%}.wf-col-lg-offset-3{margin-left:25%}.wf-col-lg-offset-4{margin-left:33.33333%}.wf-col-lg-offset-5{margin-left:41.66667%}.wf-col-lg-offset-6{margin-left:50%}.wf-col-lg-offset-7{margin-left:58.33333%}.wf-col-lg-offset-8{margin-left:66.66667%}.wf-col-lg-offset-9{margin-left:75%}.wf-col-lg-offset-10{margin-left:83.33333%}.wf-col-lg-offset-11{margin-left:91.66667%}.wf-col-lg-offset-12{margin-left:100%}.wf-col-lg-half-padding-left{padding-left:8px}.wf-col-lg-half-padding-right{padding-right:7px}}.wrap.wordfence{direction:ltr}@media (min-width: 768px){.wrap.wordfence{max-width:750px}}@media (min-width: 992px){.wrap.wordfence{max-width:970px}}@media (min-width: 1200px){.wrap.wordfence{max-width:1170px}}.wrap.wordfence>.wf-container-fluid{padding-left:0px;padding-right:0px}.wrap.wordfence .button-primary{text-align:center;text-transform:uppercase;font-weight:bold;background-color:#00709e}.wrap.wordfence a{text-decoration:none}.wrap.wordfence a:hover{text-decoration:underline}.wrap.wordfence a.wf-btn:hover{text-decoration:none}.wrap.wordfence p,.wrap.wordfence td,.wrap.wordfence li{font-family:Roboto,"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:.875rem;color:#2d2d2d;line-height:1.3125;font-weight:normal}.wrap.wordfence p strong,.wrap.wordfence td strong,.wrap.wordfence li strong{font-weight:600}.wrap.wordfence p em,.wrap.wordfence td em,.wrap.wordfence li em{font-weight:normal}.wrap.wordfence h1,.wrap.wordfence h2,.wrap.wordfence h3,.wrap.wordfence h4,.wrap.wordfence h5,.wrap.wordfence h6{font-family:Roboto,"Helvetica Neue",Helvetica,Arial,sans-serif;color:#2d2d2d;font-weight:700}.wrap.wordfence h2{font-size:1.3125rem;line-height:1.5}.wrap.wordfence h3{font-size:1.125rem}.wrap.wordfence h4{font-size:1rem}a{color:#00709e}.wf-inline-help{color:#9f9fa0}.wf-inline-help:hover{color:#00709e}.wordfenceWrap{margin:20px 0 0 20px}.wordfence-icon32{width:32px;height:32px;background-position:0 0;background-repeat:no-repeat;padding:0;margin:7px 5px 0 0;float:left}#wfHeading:after{content:'.';visibility:hidden;display:block;clear:both;height:0px}.wordfence-lock-icon{background-image:url(../images/wordfence-logo-32x32.png)}a.wfhelp{margin:0 3px 0 3px;text-decoration:none;display:inline-block;vertical-align:middle;font:normal normal normal 14px/1 FontAwesome;text-rendering:auto;-webkit-font-smoothing:antialiased}a.wfhelp:before{content:'\f29c'}.wordfence .resulticon{display:block;float:left;width:16px;height:16px;background-position:0 0;background-repeat:no-repeat;border-width:0;padding:0;margin:0 3px 0 0;background-image:url(../images/icons/bullet_yellow.png)}.wordfenceBoldTD{font-weight:bold}.wfAjax24{display:none;width:24px;height:24px;background-image:url(../images/icons/ajax24.gif);margin:0;padding:0}div.wfLoadingWhite32{width:32px;height:32px;background-image:url(../images/icons/ajaxWhite32x32.gif);margin:0;padding:0}.wfTabsContainer{background-color:#FFF;overflow:hidden;border:1px solid #CCC;padding:15px;min-height:200px;-webkit-font-smoothing:antialiased}#wfTabs::after{content:".";display:block;height:0;width:0;line-height:0;clear:both;visibility:hidden}#wfTabs a{float:left;z-index:10;height:18px;margin:0 5px -1px 0;padding:5px 8px;border:1px solid #CCC;text-decoration:none;background-color:#EFEFEF;color:#21759B;-moz-border-radius-topright:3px;-webkit-border-top-right-radius:3px;border-top-right-radius:3px;-moz-border-radius-topleft:3px;-webkit-border-top-left-radius:3px;border-top-left-radius:3px}#wfTabs a.selected{border-bottom:1px solid #FFF;background-color:#FFF;color:#777}.wordfenceTopTab{display:none;margin-top:15px}.wordfenceTopTab.active{display:block}.wordfenceHelpLink{margin-top:15px}.wfAjaxLight128{background-image:url(../images/icons/ajax3.gif)}.wfStrong{font-weight:bold}.wordfenceModeElem{width:1px;height:1px;opacity:0}.wfWarn{color:#F00}img.wfFlag{vertical-align:middle;margin:-3px 4px 0 0}.wfHitTime{font-style:italic}.wfAvatar img{vertical-align:middle}.wf-hex-sequence{color:#587ECB}.wfLoadMoreButton.disabled,.wfLoadMoreButton[disabled]{pointer-events:none;opacity:0.65}table.wfConfigForm th{font-weight:normal;text-align:left;padding:2px 3px 1px 0;vertical-align:middle}table.wfConfigForm td{vertical-align:middle}table.wfConfigForm td.align-top{vertical-align:top}table th.wfConfigEnable{font-weight:bold;min-width:25%}.wfSavedMsg{display:none;color:#A00}table th.wfSubheading{font-weight:bold;padding-top:10px}h3.wfConfigHeading{font-size:22px;color:#777;font-family:Roboto,"Helvetica Neue",Helvetica,Arial,sans-serif;font-style:italic;font-weight:normal}.wfTipText{color:#777;font-family:Georgia,Times New Roman,Times,serif;font-style:italic}.wfBlackCursor{color:#FFF}.wf-spinner{display:inline-block;width:4px}.wferror{color:#F00}#wordfenceWorking{padding:10px 40px 6px 16px;z-index:100000;position:fixed;left:180px;bottom:0px;background-color:#fcb214;border:5px solid #fcb214;border-width:6px 15px 6px 6px;color:#525355;font-size:12px;font-weight:bold;font-family:Roboto,"Helvetica Neue",Helvetica,Arial,sans-serif;background-image:url("../images/icons/working-indicator.gif");background-position:100% 50%;background-repeat:no-repeat}@media (max-width: 960px){#wordfenceWorking{left:auto;right:0}}#paidWrap{position:relative}.paidInnerMsg{width:500px;margin:150px auto 0 auto;color:#000;font-size:18px;font-family:Roboto,"Helvetica Neue",Helvetica,Arial,sans-serif;line-height:1.8em;text-align:center;-webkit-font-smoothing:antialiased}.wfMarker{height:1px;width:1px}.wfPaidOnlyNotice{width:500px;background-color:#FFFFE0;border:1px solid #000;padding:10px;margin:20px}.wfOnOffSwitch{display:inline-block;position:relative !important;width:69px !important;-webkit-user-select:none !important;-moz-user-select:none !important;-ms-user-select:none !important;user-select:none !important}.wfOnOffSwitch-checkbox{display:none !important}.wfOnOffSwitch-label{display:block !important;overflow:hidden !important;cursor:pointer !important;border:2px solid #999999 !important;border-radius:19px !important;margin:0}.wfOnOffSwitch-inner{width:200% !important;margin-left:-100% !important;-webkit-transition:margin 0.3s ease-in !important;-o-transition:margin 0.3s ease-in !important;transition:margin 0.3s ease-in !important;-webkit-transition-delay:0s !important;transition-delay:0s !important}.wfOnOffSwitch-inner:before,.wfOnOffSwitch-inner:after{float:left !important;width:50% !important;height:19px !important;padding:0 !important;line-height:19px !important;font-size:14px !important;color:white !important;font-family:Roboto,"Helvetica Neue",Helvetica,Arial,sans-serif !important;font-weight:bold !important;-webkit-box-sizing:border-box !important;-moz-box-sizing:border-box !important;box-sizing:border-box !important;-moz-border-radius:19px !important;-webkit-border-radius:19px;border-radius:19px !important;-webkit-box-shadow:0 9.5px 0 rgba(0,0,0,0.08) inset !important;box-shadow:0 9.5px 0 rgba(0,0,0,0.08) inset !important}.wfOnOffSwitch-inner:before{content:"ON" !important;padding-left:10px !important;background-color:#30D965 !important;color:#FFFFFF !important;-moz-border-radius:19px 0 0 19px !important;-webkit-border-radius:19px;border-radius:19px 0 0 19px !important}.wfOnOffSwitch-inner:after{content:"OFF" !important;padding-right:10px !important;background-color:#EEEEEE !important;color:#999999 !important;text-align:right !important;-moz-border-radius:0 19px 19px 0 !important;-webkit-border-radius:0;border-radius:0 19px 19px 0 !important}.wfOnOffSwitch-switch{width:19px !important;margin:0 !important;background:#FFFFFF !important;border:2px solid #999999 !important;-moz-border-radius:19px !important;-webkit-border-radius:19px;border-radius:19px !important;position:absolute !important;top:0 !important;bottom:0 !important;right:46px !important;-webkit-transition:all 0.3s ease-in !important;-o-transition:all 0.3s ease-in !important;transition:all 0.3s ease-in !important;-webkit-transition-delay:0s !important;transition-delay:0s !important;background-image:url('data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4gPHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGRlZnM+PGxpbmVhckdyYWRpZW50IGlkPSJncmFkIiBncmFkaWVudFVuaXRzPSJvYmplY3RCb3VuZGluZ0JveCIgeDE9IjAuNSIgeTE9IjAuMCIgeDI9IjAuNSIgeTI9IjEuMCI+PHN0b3Agb2Zmc2V0PSIwJSIgc3RvcC1jb2xvcj0iIzAwMDAwMCIgc3RvcC1vcGFjaXR5PSIwLjEiLz48c3RvcCBvZmZzZXQ9IjgwJSIgc3RvcC1jb2xvcj0iIzAwMDAwMCIgc3RvcC1vcGFjaXR5PSIwLjAiLz48L2xpbmVhckdyYWRpZW50PjwvZGVmcz48cmVjdCB4PSIwIiB5PSIwIiB3aWR0aD0iMTAwJSIgaGVpZ2h0PSIxMDAlIiBmaWxsPSJ1cmwoI2dyYWQpIiAvPjwvc3ZnPiA=') !important;background-size:100%;background-image:-webkit-gradient(linear, 50% 0%, 50% 100%, color-stop(0%, rgba(0,0,0,0.1)),color-stop(80%, rgba(0,0,0,0))) !important;background-image:-moz-linear-gradient(center top, rgba(0,0,0,0.1) 0%,rgba(0,0,0,0) 80%) !important;background-image:-webkit-linear-gradient(center top, rgba(0,0,0,0.1) 0%,rgba(0,0,0,0) 80%) !important;background-image:linear-gradient(to center bottom, rgba(0,0,0,0.1) 0%,rgba(0,0,0,0) 80%) !important;box-shadow:0 1px 1px white inset !important}.wfOnOffSwitch-checkbox:checked+.wfOnOffSwitch-label .wfOnOffSwitch-inner{margin-left:0 !important}.wfOnOffSwitch-checkbox:checked+.wfOnOffSwitch-label .wfOnOffSwitch-switch{right:0 !important}#wordfenceConfigWarning,#wordfenceAdminEmailWarning{clear:left;margin-top:5px}.wf-striped-table{width:100%;max-width:100%;border-collapse:collapse}.wf-striped-table th{border-left:1px solid #bdbdbd}.wf-striped-table th:first-of-type{border-left:0}.wf-striped-table th,.wf-striped-table td{padding:1rem}.wf-striped-table thead th,.wf-striped-table thead td,.wf-striped-table tfoot th,.wf-striped-table tfoot td,.wf-striped-table tbody.thead th,.wf-striped-table tbody.thead td{background-color:#ebebeb;color:#777;font-weight:bold;text-align:left}.wf-striped-table tbody tr.even td,.wf-striped-table tbody tr:nth-child(2n) td{background-color:#ffffff}.wf-striped-table tbody tr td,.wf-striped-table tbody tr.odd td{background-color:#fafafa}.wf-striped-table tbody tr:hover>td{background-color:#fffbd8}.wf-striped-table tbody.empty-row tr td{border-width:0;padding:8px 0;background-color:transparent}.wf-striped-table .wf-result-error,.wf-block-list .wf-result-error{color:#d0514c !important;font-weight:bold}.wf-striped-table .wf-result-error:before,.wf-block-list .wf-result-error:before{content:"\2718"}.wf-striped-table .wf-result-success,.wf-block-list .wf-result-success{color:#008c10 !important;font-weight:bold;max-width:20%}.wf-striped-table .wf-result-success:before,.wf-block-list .wf-result-success:before{content:"\2713"}.wf-striped-table .wf-result-success:before,.wf-block-list .wf-result-success:before,.wf-striped-table .wf-result-error:before,.wf-block-list .wf-result-error:before{font-size:16px;display:inline-block;margin:0px 8px 0px 0px}.wf-striped-table .wf-result-inactive,.wf-block-list .wf-result-inactive{font-weight:bold;color:#666666 !important}.wf-fixed-table{table-layout:fixed}pre.wf-pre{margin:8px 0 20px;padding:12px;background:#ffffff;border:1px solid #999999;overflow:auto}.wf-center{text-align:center}#wfConfigForm,.wf-diagnostics-wrapper{max-width:1035px}.wf-hidden{display:none !important}.wf-card{position:relative;margin:0 auto .625rem;padding:1rem;box-sizing:border-box;background:#fff;box-shadow:0 0 0 1px rgba(200,215,225,0.5),0 1px 2px #e9eff3}.wf-card .wf-card-inner{min-height:76px;width:100%;padding:8px;box-sizing:border-box;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:justify;justify-content:space-between;position:relative}.wf-card .wf-card-inner .wf-card-content{max-width:75%}.wf-card .wf-card-inner .wf-card-content .wf-card-title{font-size:1.125rem;width:100%}.wf-card .wf-card-inner .wf-card-content .wf-card-subtitle{margin-top:.125rem;margin-bottom:.125rem;font-size:.875rem;color:#4f748e}.wf-card .wf-card-inner .wf-card-action{position:absolute;top:0;right:0;height:100%;background:none;border:0;outline:0;width:48px;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;vertical-align:middle;transition:transform 0.15s cubic-bezier(0.175, 0.885, 0.32, 1.275),color 0.2s ease-in}.wf-card .wf-card-inner .wf-card-action .wf-card-action-chevron{background:url("data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPCFET0NUWVBFIHN2ZyBQVUJMSUMgIi0vL1czQy8vRFREIFNWRyAxLjEvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvR3JhcGhpY3MvU1ZHLzEuMS9EVEQvc3ZnMTEuZHRkIj4KPHN2ZyB2ZXJzaW9uPSIxLjEiIGlkPSJjaGV2cm9uLW9iamVjdCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgeD0iMHB4IiB5PSIwcHgiCgkgd2lkdGg9IjI0cHgiIGhlaWdodD0iMjRweCIgdmlld0JveD0iMCAwIDI0IDI0IiBlbmFibGUtYmFja2dyb3VuZD0ibmV3IDAgMCAyNCAyNCIKCSB4bWw6c3BhY2U9InByZXNlcnZlIj4KPHBhdGggaWQ9ImNoZXZyb24iIGQ9Ik0yMCA5bC04IDgtOC04IDEuNDE0LTEuNDE0TDEyIDE0LjE3Mmw2LjU4Ni02LjU4NiIvPgo8L3N2Zz4K");background-repeat:no-repeat;background-position:center center;width:24px;height:24px;fill:#87a6bc}.wf-card .wf-card-inner .wf-card-action .wf-card-action-checkbox{background-image:url(../images/checkbox.png);background-repeat:no-repeat;background-position:left center;width:29px;height:29px}.wf-card .wf-card-inner .wf-card-action .wf-card-action-checkbox.checked{background-position:right center}.wf-card .wf-card-extra{display:none;padding:0.5rem;margin-top:1rem;border-top:1px solid #f3f6f8}@media (min-width: 768px){.wf-card .wf-card-extra{padding:1rem}}.wf-card.active .wf-card-extra{display:block}.wf-card.wf-card-left .wf-card-content{margin-left:48px}.wf-card.wf-card-left .wf-card-action{right:auto;left:0px}.wf-card.disabled .wf-card-content .wf-card-title{color:#aaaaaa}.wf-card.disabled .wf-card-content .wf-card-subtitle{color:#8ea6be}.wf-inline-block{display:inline-block}@media (max-width: 767px){.wf-inline-block-xs{display:inline-block}}.wf-full-width{width:100%;max-width:100%}.wf-no-top{margin-top:0 !important}.wf-add-top{margin-top:1rem !important}.wf-add-top-small{margin-top:0.5rem !important}.wf-add-top-smaller{margin-top:0.25rem !important}.wf-no-bottom{margin-bottom:0 !important}.wf-add-bottom{margin-bottom:1rem !important}.wf-add-bottom-small{margin-bottom:0.5rem !important}.wf-add-bottom-smaller{margin-bottom:0.25rem !important}.wf-padding-no-top{padding-top:0 !important}.wf-no-right{margin-right:0 !important}.wf-padding-no-bottom{padding-bottom:0 !important}.wf-padding-no-left{padding-left:0 !important}.wf-padding-no-right{padding-right:0 !important}.wf-padding-add-top{padding-top:1rem !important}.wf-padding-add-top-small{padding-top:0.5rem !important}.wf-padding-add-top-large{padding-top:1.5rem !important}.wf-padding-add-bottom{padding-bottom:1rem !important}.wf-padding-add-bottom-small{padding-bottom:0.5rem !important}.wf-padding-add-bottom-large{padding-bottom:1.5rem !important}.wf-padding-add-left{padding-left:1rem !important}.wf-padding-add-left-small{padding-left:0.5rem !important}.wf-padding-add-left-large{padding-left:1.5rem !important}.wf-padding-add-right{padding-right:1rem !important}.wf-padding-add-right-small{padding-right:0.5rem !important}.wf-padding-add-right-large{padding-right:1.5rem !important}.wf-left{text-align:left !important}.wf-center{text-align:center !important}.wf-block-center{margin:0 auto}.wf-right{text-align:right !important}.wf-block-right{margin:0 0 0 auto}@media (max-width: 767px){.wf-left-xs{text-align:left !important}.wf-center-xs{text-align:center !important}.wf-padding-add-top-xs{padding-top:1rem !important}.wf-padding-add-top-xs-small{padding-top:0.5rem !important}.wf-padding-add-top-xs-large{padding-top:1.5rem !important}.wf-padding-add-bottom-xs{padding-bottom:1rem !important}.wf-padding-add-bottom-xs-small{padding-bottom:0.5rem !important}.wf-padding-add-bottom-xs-large{padding-bottom:1.5rem !important}}@media (min-width: 768px) and (max-width: 991px){.wf-left-sm{text-align:left !important}.wf-center-sm{text-align:center !important}}@media (min-width: 992px) and (max-width: 1199px){.wf-left-md{text-align:left !important}.wf-center-md{text-align:center !important}}@media (min-width: 1200px){.wf-left-lg{text-align:left !important}.wf-center-lg{text-align:center !important}}.wf-border-no-top{border-top:none !important}.wf-border-no-right{border-right:none !important}.wf-border-no-bottom{border-bottom:none !important}.wf-border-no-left{border-left:none !important}.wf-overflow-x-auto{overflow-x:auto}.wf-overflow-y-auto{overflow-y:auto}@media (max-width: 767px){.wf-overflow-x-auto-xs{overflow-x:auto}.wf-overflow-y-auto-xs{overflow-y:auto}}.wf-blue{color:#00709e !important}.wf-blue-light{color:#008cc1 !important}.wf-gray-dark{color:#2d2d2d !important}.wf-gray-blue{color:#3f596b !important}.wf-green-dark{color:#11967a !important}.wf-green-light{color:#16bc9b !important}.wf-red-dark{color:#930000 !important}.wf-red-light{color:#c10000 !important}.wf-yellow-dark{color:#fcb214 !important}.wf-yellow-light{color:#ffd10a !important}.wf-gray{color:#525355 !important}.wf-gray-light{color:#9f9fa0 !important}.wf-nowrap{white-space:nowrap}.wf-tip{color:#fcb214;font-size:1.1rem;margin-right:0.25rem}.wf-text-small{font-size:80%}.wf-scroll-x::-webkit-scrollbar,.wf-scroll-y::-webkit-scrollbar{-webkit-appearance:none;width:7px;height:7px}.wf-scroll-x::-webkit-scrollbar-thumb,.wf-scroll-y::-webkit-scrollbar-thumb{border-radius:4px;background-color:rgba(0,0,0,0.194);-webkit-box-shadow:0 0 1px rgba(255,255,255,0.5)}.wf-split-word{word-wrap:break-word;word-break:break-all}@media (max-width: 767px){.wf-split-word-xs{word-wrap:break-word;word-break:break-all;white-space:normal !important}}.select2-container{font-family:Roboto,"Helvetica Neue",Helvetica,Arial,sans-serif;min-width:200px}@media (min-width: 768px){.select2-container{min-width:280px}}@media (min-width: 992px){.select2-container{min-width:320px}}.wf-select2-placeholder-fix .select2-search__field{width:auto !important}.wf-page-title{display:-webkit-flex;display:flex;-webkit-align-items:center;align-items:center;-webkit-justify-content:flex-start;justify-content:flex-start;margin-top:0.5rem}.wf-page-title>*{-webkit-flex-grow:0;flex-grow:0;min-width:0}.wf-page-title>*:first-child{-webkit-flex-grow:0;flex-grow:0;min-width:32px;-webkit-flex-basis:32px;flex-basis:32px;padding-right:0.25rem}.wf-page-title .wordfence-icon32{margin:0;margin-right:0.5rem}.wf-page-title h2{padding:0 !important}.wf-page-title .wfOnOffSwitch{-webkit-flex-basis:69px;flex-basis:69px;-webkit-flex-shrink:0;flex-shrink:0;margin-left:0.5rem}.wf-tab-container{background-color:#fff}@media (min-width: 768px){.wf-tab-container{background-color:unset}}.wf-page-tabs,.wf-page-fixed-tabs{display:-webkit-flex;display:flex;-webkit-align-items:center;align-items:center;-webkit-justify-content:flex-start;justify-content:flex-start;border-bottom:1px solid #d0d0d0;margin:0;margin-top:0.5rem;margin-left:-10px;margin-right:-10px}@media (min-width: 768px){.wf-page-tabs,.wf-page-fixed-tabs{margin-left:0;margin-right:0}}.wf-page-tabs>*,.wf-page-fixed-tabs>*{-webkit-flex-grow:0;flex-grow:0;min-width:0}.wf-page-tabs>*:first-child,.wf-page-fixed-tabs>*:first-child{-webkit-flex-grow:0;flex-grow:0;min-width:32px;-webkit-flex-basis:32px;flex-basis:32px}.wf-page-tabs .wordfence-icon32,.wf-page-fixed-tabs .wordfence-icon32{margin:0;margin-right:0.5rem;margin-left:0.5rem}@media (min-width: 768px){.wf-page-tabs .wordfence-icon32,.wf-page-fixed-tabs .wordfence-icon32{margin-left:0}}.wf-page-tabs .wf-text-tab,.wf-page-fixed-tabs .wf-text-tab{margin:0;margin-left:0.5rem;color:#333}.wf-page-tabs .wf-tab,.wf-page-fixed-tabs .wf-tab{border:1px solid #fff;border-top-right-radius:0.5rem;border-top-left-radius:0.5rem;border-bottom:none;margin-bottom:-1px;margin-right:0.5rem;color:#333}@media (min-width: 768px){.wf-page-tabs .wf-tab,.wf-page-fixed-tabs .wf-tab{border:1px solid #d0d0d0;background:#e6e6e6}}.wf-page-tabs .wf-tab a,.wf-page-fixed-tabs .wf-tab a{display:block;padding:0.5rem 1rem;font-size:14px;line-height:24px;text-decoration:none;font-weight:bold;color:#333}.wf-page-tabs .wf-tab.wf-active,.wf-page-tabs .wf-tab:hover,.wf-page-fixed-tabs .wf-tab.wf-active,.wf-page-fixed-tabs .wf-tab:hover{border-bottom:1px solid #f1f1f1;background:#f1f1f1;color:#00709e;-webkit-box-shadow:none;box-shadow:none}.wf-page-tabs .wf-tab.wf-active a,.wf-page-tabs .wf-tab:hover a,.wf-page-fixed-tabs .wf-tab.wf-active a,.wf-page-fixed-tabs .wf-tab:hover a{color:#00709e}.wf-tab-content{display:none;margin-top:15px}.wf-tab-content.wf-active{display:block}.wf-fixed-tab-content{margin-top:15px}.wf-section-title{display:-webkit-flex;display:flex;-webkit-align-items:center;align-items:center;-webkit-justify-content:flex-start;justify-content:flex-start}.wf-section-title>*{-webkit-flex-grow:0;flex-grow:0;min-width:0}.wf-section-title>h1,.wf-section-title>h2,.wf-section-title>h3,.wf-section-title>h4,.wf-section-title>h5,.wf-section-title>h6{-webkit-flex-grow:1;flex-grow:1;color:#2d2d2d !important;font-family:Roboto,"Helvetica Neue",Helvetica,Arial,sans-serif !important;font-size:1.3125rem !important;line-height:1.5rem !important;font-weight:700 !important;padding:0 !important;margin:0 !important}@media (min-width: 768px){.wf-section-title>h1,.wf-section-title>h2,.wf-section-title>h3,.wf-section-title>h4,.wf-section-title>h5,.wf-section-title>h6{padding-right:0.25rem !important}}.wf-section-title .wordfence-icon32{margin:0;margin-right:0.5rem}.wf-status-circular{position:relative}.wf-status-circular-text{position:absolute;left:50%;top:50%;padding:0;margin:0;transform:translate(-50%, -50%);color:#aaa;font-family:Roboto,"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:1.3125rem;font-weight:300;line-height:1.5}.wf-status-circular .wf-status-overlay-text{position:absolute;left:50%;top:50%;padding:0;margin:0;width:200%;text-align:center;transform:translate(-50%, -50%);font-family:Roboto,"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:.875rem;font-weight:normal;line-height:1.3125;opacity:0.0;color:#777}.wf-status-warning,.wf-status-critical,.wf-status-payment-expiring,.wf-status-renewing{width:100px;height:100px;margin-bottom:1rem}.wf-status-warning svg path{fill:#fcb214}.wf-status-critical svg path{fill:#930000}.wf-status-payment-expiring svg rect,.wf-status-payment-expiring svg path{fill:#930000}.wf-status-renewing svg rect,.wf-status-renewing svg path{fill:#11967a}#howGetIPs-preview{color:#8c8c8c}#howGetIPs-preview strong{color:#666}.wf-scrollTop{background:#424242;bottom:30px;right:15px;position:fixed;z-index:999;display:none}.wf-scrollTop a{background:#959595;display:block;padding:4px 5px;line-height:32px;width:32px;color:#ffffff;text-align:center}.wf-back-icon{color:#00709e;margin-right:0.75rem;font-size:1.5rem !important}.wf-back-link-chevron{margin-left:1rem}.wf-back-link-chevron:first-of-type{margin-left:0}.wf-back-link{font-weight:bold;text-decoration:none}.wf-premium-link{font-weight:bold}.wf-boolean-switch{border:1px solid #aaa;display:block;cursor:pointer;width:54px;height:30px;min-width:54px;min-height:30px;-moz-border-radius:15px;-webkit-border-radius:15px;border-radius:15px;line-height:30px !important;background-color:#ffffff;position:relative;box-sizing:border-box;transition:background-color 0.2s ease-in-out, border-color 0.2s ease-in-out}@media (min-width: 768px){.wf-boolean-switch{width:34px;height:20px;min-width:34px;min-height:20px;-moz-border-radius:10px;-webkit-border-radius:10px;border-radius:10px;line-height:20px !important}}.wf-boolean-switch .wf-boolean-switch-handle{position:relative;display:block;border:1px solid #aaa;background-color:#fff;width:30px;height:30px;min-width:30px;min-height:30px;-moz-border-radius:15px;-webkit-border-radius:15px;border-radius:15px;margin-top:-1px;box-sizing:border-box;left:-1px;transition:border-color 0.2s ease-in-out, left 0.2s ease-in-out}@media (min-width: 768px){.wf-boolean-switch .wf-boolean-switch-handle{width:20px;height:20px;min-width:20px;min-height:20px;-moz-border-radius:10px;-webkit-border-radius:10px;border-radius:10px}}.wf-boolean-switch.wf-active{border:1px solid #00709e;background-color:#00709e}.wf-boolean-switch.wf-active .wf-boolean-switch-handle{border:1px solid #00709e;left:25px}@media (min-width: 768px){.wf-boolean-switch.wf-active .wf-boolean-switch-handle{left:15px}}.wf-boolean-switch.wf-disabled{pointer-events:none;border-color:#e2e2e2}.wf-boolean-switch.wf-disabled .wf-boolean-switch-handle{border-color:#e2e2e2}.wf-boolean-switch.wf-disabled.wf-active{border-color:#e2e2e2;background-color:#e2e2e2}.wf-boolean-switch.wf-disabled.wf-active .wf-boolean-switch-handle{border-color:#e2e2e2}.wf-option-checkbox,[type=checkbox].wf-option-checkbox+label:before{content:"";font-family:"Ionicons" !important;display:block;cursor:pointer;width:30px;height:30px;min-width:30px;min-height:30px;-moz-border-radius:15px;-webkit-border-radius:15px;border-radius:15px;line-height:30px !important;text-align:center !important;background-color:#ffffff !important;box-shadow:0px 0px 0px 1px #00709e;color:#ffffff !important;font-size:30px !important;font-weight:normal !important}@media (min-width: 768px){.wf-option-checkbox,[type=checkbox].wf-option-checkbox+label:before{width:20px;height:20px;min-width:20px;min-height:20px;-moz-border-radius:10px;-webkit-border-radius:10px;border-radius:10px;line-height:21px !important;font-size:25px !important}}@media (min-width: 768px){.wf-option-checkbox{position:relative}.wf-option-checkbox>*{position:absolute;top:9px;left:50%;transform:translateX(-50%) translateY(-50%)}}.wf-option-radio,[type=radio].wf-option-radio+label:before{content:"\f401";font-family:"Ionicons" !important;display:block;cursor:pointer;width:30px;height:30px;min-width:30px;min-height:30px;line-height:30px !important;text-align:center !important;color:#ccc !important;font-size:30px !important;font-weight:normal !important}@media (min-width: 768px){.wf-option-radio,[type=radio].wf-option-radio+label:before{width:20px;height:20px;min-width:20px;min-height:20px;-moz-border-radius:10px;-webkit-border-radius:10px;border-radius:10px;line-height:20px !important}}[type=checkbox].wf-option-checkbox.wf-small+label:before{width:20px;height:20px;min-width:20px;min-height:20px;-moz-border-radius:10px;-webkit-border-radius:10px;border-radius:10px;line-height:21px !important;font-size:20px !important}[type=radio].wf-option-radio.wf-small+label:before{width:20px;height:20px;min-width:20px;min-height:20px;line-height:21px !important;font-size:20px !important}[type=checkbox].wf-option-checkbox+label:before,[type=radio].wf-option-radio+label:before{text-align:center !important;text-indent:0px;display:inline-block;vertical-align:-6px;margin:0px 5px 0px 0px;font-weight:normal;font-style:normal}[type=checkbox].wf-option-checkbox.wf-small+label:before,[type=radio].wf-option-radio.wf-small+label:before{text-indent:0px;vertical-align:-3px}.wf-option-checkbox.wf-checked,[type=checkbox].wf-option-checkbox:checked+label:before{color:#ffffff !important;box-shadow:0px 0px 0px 1px #cbcbcb !important;background-color:#00709e !important}.wf-option-checkbox.wf-disabled,[type=checkbox].wf-option-checkbox:disabled+label:before{color:#d9d9d9 !important;box-shadow:0px 0px 0px 1px #cbcbcb !important;background-color:#f1f1f1 !important}.wf-option-radio.wf-checked,[type=radio].wf-option-radio:checked+label:before{content:"\f3a7";color:#00709e !important}.wf-option-checkbox[type=checkbox],.wf-option-checkbox[type=radio],.wf-option-radio[type=checkbox],.wf-option-radio[type=radio]{position:absolute;left:-9999px}.wf-option-text input[type="text"],input.wf-input-text{text-align:left;width:100%;height:40px;border-radius:0;border:0;background-color:#ffffff;box-shadow:1px 1px 1px 2px rgba(215,215,215,0.65)}.wf-option-text input[type="text"]:placeholder-shown,input.wf-input-text:placeholder-shown{font-style:italic;color:#bfbfbf}::-webkit-input-placeholder{color:#bfbfbf}:-moz-placeholder{color:#bfbfbf;opacity:1}::-moz-placeholder{color:#bfbfbf;opacity:1}:-ms-input-placeholder{color:#bfbfbf}::-ms-input-placeholder{color:#bfbfbf}::placeholder{color:#bfbfbf}.wf-option-premium .wf-option-title,.wf-option-premium .wf-option-title>ul>li,.wf-option.wf-disabled .wf-option-title,.wf-option.wf-disabled .wf-option-title>ul>li{color:#aaa !important}.wf-option-premium .wf-option-checkbox,.wf-option-premium .wf-option-radio,.wf-option.wf-disabled .wf-option-checkbox,.wf-option.wf-disabled .wf-option-radio{opacity:0.5}.wf-block .wf-block-content .wf-block-labeled-value.wf-protection-status .wf-block-labeled-value-value{padding-top:0}.wf-block .wf-block-content .wf-block-labeled-value.wf-protection-status .wf-block-labeled-value-value .wf-fa{font-size:8rem}.wf-block .wf-block-content .wf-block-labeled-value.wf-protection-status .wf-block-labeled-value-value svg{width:160px}.wf-block .wf-block-content .wf-block-labeled-value.wf-protection-status .wf-block-labeled-value-label{font-size:1.35rem;font-weight:300;padding-bottom:0}.wf-block .wf-block-content .wf-block-labeled-value.wf-protection-status-premium .wf-block-labeled-value-value{color:#9f9fa0}.wf-block .wf-block-content .wf-block-labeled-value.wf-protection-status-premium .wf-block-labeled-value-value svg{fill:#9f9fa0}.wf-block .wf-block-content .wf-block-labeled-value.wf-protection-status-premium .wf-block-labeled-value-label{color:#9f9fa0}.wf-indeterminate-progress{-webkit-animation:wf-indeterminate-progress-keyframes 1s steps(8, end) infinite;-o-animation:wf-indeterminate-progress-keyframes 1s steps(8, end) infinite;animation:wf-indeterminate-progress-keyframes 1s steps(8, end) infinite}.wf-indeterminate-progress path{fill:#00709e}@-moz-keyframes wf-indeterminate-progress-keyframes{to{-moz-transform:rotate(360deg);transform:rotate(360deg)}}@-webkit-keyframes wf-indeterminate-progress-keyframes{to{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes wf-indeterminate-progress-keyframes{to{-moz-transform:rotate(360deg);-ms-transform:rotate(360deg);-webkit-transform:rotate(360deg);transform:rotate(360deg)}}.wf-flex-row{display:-webkit-flex;display:flex;-webkit-align-items:center;align-items:center;-webkit-justify-content:flex-start;justify-content:flex-start;-webkit-flex-direction:row;flex-direction:row}.wf-flex-row .wf-flex-row-1{-webkit-flex-grow:1;flex-grow:1}.wf-flex-row .wf-flex-row-0{-webkit-flex-grow:0;flex-grow:0}.wf-switch{display:-webkit-flex !important;display:flex !important;-webkit-align-items:stretch !important;align-items:stretch !important;-webkit-justify-content:flex-start !important;justify-content:flex-start !important;-webkit-flex-direction:row !important;flex-direction:row !important;margin:0;padding:0}.wf-switch>li{margin:0 !important;padding:0.5rem 0.7rem !important;text-transform:uppercase;cursor:pointer;color:#aaa;font-weight:400;border-top:1px solid #bfbfbf;border-bottom:1px solid #bfbfbf;border-right:1px solid #bfbfbf}.wf-switch>li:first-of-type{border-left:1px solid #bfbfbf;-moz-border-radius-topleft:6px;-webkit-border-top-left-radius:6px;border-top-left-radius:6px;-moz-border-radius-bottomleft:6px;-webkit-border-bottom-left-radius:6px;border-bottom-left-radius:6px}.wf-switch>li:last-of-type{-moz-border-radius-topright:6px;-webkit-border-top-right-radius:6px;border-top-right-radius:6px;-moz-border-radius-bottomright:6px;-webkit-border-bottom-right-radius:6px;border-bottom-right-radius:6px}.wf-switch>li.wf-active{color:#ffffff;background-color:#00709e}.wf-tooltip,.ui-widget.wf-tooltip{max-width:600px;font-size:0.75rem;overflow-wrap:break-word}.wf-widget-learning-mode{border-top:1px solid #eee;margin:0 -1rem;padding:1rem;display:-webkit-flex;display:flex;-webkit-align-items:center;align-items:center;-webkit-justify-content:center;justify-content:center;-webkit-flex-direction:row;flex-direction:row}@media (min-width: 768px){.wf-widget-learning-mode{padding:1.5rem}}.wf-widget-learning-mode svg{width:18px}.wf-widget-learning-mode svg path{fill:#aaa}.wf-widget-learning-mode span{padding-left:0.5rem;font-size:.875rem;line-height:1.3125;font-weight:600}.wf-drawer-overlay{position:fixed;top:0px;right:0px;bottom:0px;left:160px;background-color:rgba(0,0,0,0.5);z-index:9980;padding:5rem 0}.folded .wf-drawer-overlay{left:36px}@media only screen and (max-width: 960px){.auto-fold .wf-drawer-overlay{left:36px}}.rtl .wf-drawer-overlay{right:160px;left:0px}.rtl .folded .wf-drawer-overlay{right:36px}@media only screen and (max-width: 960px){.rtl .auto-fold .wf-drawer-overlay{right:36px}}@media screen and (max-width: 782px){.wf-drawer-overlay,.folded .wf-drawer-overlay,.auto-fold .wf-drawer-overlay,.rtl .wf-drawer-overlay,.rtl .folded .wf-drawer-overlay,.rtl .auto-fold .wf-drawer-overlay{left:0px;right:0px}}.wf-drawer{background-color:#ffffff;position:fixed;top:32px;bottom:0px;right:0px;z-index:9981}.wf-drawer .wf-modal{display:-webkit-flex;display:flex;-webkit-align-items:stretch;align-items:stretch;-webkit-justify-content:flex-start;justify-content:flex-start;-webkit-flex-direction:column;flex-direction:column;height:100%}.wf-drawer .wf-modal ul,.wf-drawer .wf-modal li{padding:0;margin:0}.wf-drawer .wf-modal .wf-modal-header{-webkit-flex-shrink:0;flex-shrink:0;min-height:44px;padding:1rem;width:100%;box-sizing:border-box;display:-webkit-flex;display:flex;-webkit-align-items:center;align-items:center;-webkit-justify-content:space-between;justify-content:space-between;position:relative;background-color:#00709e;color:#ffffff}.wf-drawer .wf-modal .wf-modal-header .wf-modal-header-content{max-width:75%}.wf-drawer .wf-modal .wf-modal-header .wf-modal-header-content .wf-modal-title{font-size:1.3125rem;line-height:1.5;font-weight:300;width:100%;transition:color 0.2s ease-in}.wf-drawer .wf-modal .wf-modal-header .wf-modal-header-content .wf-modal-subtitle{margin-top:.125rem;margin-bottom:.125rem;font-size:.575rem;color:#4f748e}.wf-drawer .wf-modal .wf-modal-content{-webkit-flex-grow:1;flex-grow:1;display:-webkit-flex;display:flex;-webkit-align-items:stretch;align-items:stretch;-webkit-justify-content:flex-start;justify-content:flex-start;-webkit-flex-direction:column;flex-direction:column;padding:1rem}.wf-drawer .wf-modal .wf-modal-content>*:first-child{margin-top:0}.wf-drawer .wf-modal .wf-modal-content select,.wf-drawer .wf-modal .wf-modal-content select option,.wf-drawer .wf-modal .wf-modal-content .select2-container--default{font-size:0.7rem;font-weight:bold}@media (min-width: 768px){.wf-drawer .wf-modal .wf-modal-content select,.wf-drawer .wf-modal .wf-modal-content select option,.wf-drawer .wf-modal .wf-modal-content .select2-container--default{font-size:0.8rem}}@media (min-width: 992px){.wf-drawer .wf-modal .wf-modal-content select,.wf-drawer .wf-modal .wf-modal-content select option,.wf-drawer .wf-modal .wf-modal-content .select2-container--default{font-size:0.9rem}}.wf-drawer .wf-modal .wf-modal-content .wf-option-select-option,.wf-drawer .wf-modal .wf-modal-content .select2-container--default,.wf-drawer .wf-modal .wf-modal-content .select2-container--default .select2-selection--single{text-align:left;height:40px;border-radius:0;border:0;background-color:#ffffff;box-shadow:1px 1px 1px 2px rgba(215,215,215,0.35)}.wf-drawer .wf-modal .wf-modal-content .wf-option-select-option .select2-selection__rendered,.wf-drawer .wf-modal .wf-modal-content .select2-container--default .select2-selection__rendered,.wf-drawer .wf-modal .wf-modal-content .select2-container--default .select2-selection--single .select2-selection__rendered{color:#333;line-height:40px}.wf-drawer .wf-modal .wf-modal-content .wf-option-select-option .select2-selection__arrow,.wf-drawer .wf-modal .wf-modal-content .select2-container--default .select2-selection__arrow,.wf-drawer .wf-modal .wf-modal-content .select2-container--default .select2-selection--single .select2-selection__arrow{height:38px}.wf-drawer .wf-modal .wf-modal-content .wf-option-select-option.select2-container--disabled .select2-selection__rendered,.wf-drawer .wf-modal .wf-modal-content .select2-container--default.select2-container--disabled .select2-selection__rendered,.wf-drawer .wf-modal .wf-modal-content .select2-container--default .select2-selection--single.select2-container--disabled .select2-selection__rendered{color:#aaa}.wf-drawer .wf-modal .wf-modal-content .select2-container--default .select2-selection--single .select2-selection__arrow b{border-color:#333 transparent transparent}.wf-drawer .wf-modal .wf-modal-content .select2-container--default.select2-container--open .select2-selection--single .select2-selection__arrow b{border-color:transparent transparent #333}.wf-drawer .wf-modal .wf-modal-footer{-webkit-flex-shrink:0;flex-shrink:0;min-height:44px;padding:1rem;width:100%;box-sizing:border-box;display:-webkit-flex;display:flex;-webkit-align-items:center;align-items:center;-webkit-justify-content:space-between;justify-content:space-between;position:relative;background-color:#f1f1f1;border-top:1px solid #d9d9d9}.wf-mobile-menu-overlay{position:fixed;top:0px;right:0px;bottom:0px;left:0px;background-color:rgba(0,0,0,0.5);z-index:100000}.wf-mobile-menu-overlay>.wf-mobile-menu-tap-hint{position:absolute;top:25%;left:50%;transform:translateX(-50%);color:#ffffff;font-family:Roboto,"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:1.3125rem;font-weight:300;line-height:1.5}.wf-mobile-menu{position:fixed;left:50%;transform:translateX(-50%);z-index:100001}.wf-mobile-menu>.wf-mobile-menu-items{margin:0;padding:0 0 0.25rem 0;list-style:none}.wf-mobile-menu>.wf-mobile-menu-items>li{margin:0;padding:0.25rem 0}.wf-mobile-menu>.wf-mobile-menu-items>li>a{box-sizing:border-box}.wf-circle-tooltip.ui-tooltip{padding:0;font-size:0.7rem;max-width:400px;border:1px solid #9f9fa0;position:absolute !important;z-index:3000;-moz-border-radius:6px;-webkit-border-radius:6px;border-radius:6px}.wf-circle-tooltip.ui-tooltip h4{margin:0 0 10px}.wf-circle-tooltip.ui-tooltip ul{margin:10px 0}.wf-circle-tooltip.ui-tooltip p{font-size:0.7rem;margin:10px 0 0}.wf-circle-tooltip.ui-tooltip a{color:#00709e;text-decoration:none}.wf-circle-tooltip.ui-tooltip a:hover{text-decoration:underline}.wf-circle-tooltip.ui-tooltip .wf-circle-tooltip-header,.wf-circle-tooltip.ui-tooltip .wf-circle-tooltip-body{padding:12px}.wf-circle-tooltip.ui-tooltip .wf-circle-tooltip-header{-moz-border-radius:6px 6px 0px 0px;-webkit-border-radius:6px;border-radius:6px 6px 0px 0px;background-color:#f1f1f1}.wf-circle-tooltip.ui-tooltip .wf-circle-tooltip-header h4{margin:0;font-size:0.8rem}.wf-circle-tooltip.ui-tooltip .wf-circle-tooltip-body .wf-tooltip-status-circle{position:relative;padding:0 10px 0 0}.wf-circle-tooltip.ui-tooltip .wf-circle-tooltip-body .wf-tooltip-status-circle .wf-status-overlay-text{display:none}.wf-circle-tooltip.ui-tooltip .wf-circle-tooltip-body ul li strong{width:20%}.wf-circle-tooltip.ui-tooltip .wf-circle-tooltip-body ul li span{width:80%}.wf-circle-tooltip.ui-tooltip .wf-circle-tooltip-block{position:relative;background-color:#fff;z-index:3001;-moz-border-radius:6px;-webkit-border-radius:6px;border-radius:6px}.wf-circle-tooltip.ui-tooltip .wf-circle-tooltip-block:after{content:'';position:absolute;bottom:-20px;left:20px;width:0;height:0;border-left:20px solid transparent;border-right:20px solid transparent;border-top:20px solid #fff}.wf-circle-tooltip.ui-tooltip:after{content:'';position:absolute;bottom:-22px;left:18px;width:0;height:0;border-left:22px solid transparent;border-right:22px solid transparent;border-top:22px solid rgba(0,0,0,0.5);filter:blur(2px)}.wf-circle-tooltip.ui-tooltip.wf-tooltip-vertical-top:after{top:-22px;bottom:auto;border-left:22px solid transparent;border-right:22px solid transparent;border-bottom:22px solid rgba(0,0,0,0.5);border-top-width:0}.wf-circle-tooltip.ui-tooltip.wf-tooltip-vertical-top .wf-circle-tooltip-block:after{top:-20px;bottom:auto;border-left:20px solid transparent;border-right:20px solid transparent;border-bottom:20px solid #f1f1f1;border-top-width:0}.wf-circle-tooltip.ui-tooltip.wf-tooltip-vertical-top.wf-tooltip-horizontal-right:after{left:auto;right:18px}.wf-circle-tooltip.ui-tooltip.wf-tooltip-vertical-top.wf-tooltip-horizontal-right .wf-circle-tooltip-block:after{left:auto;right:20px}.wf-circle-tooltip.ui-tooltip.wf-tooltip-vertical-bottom.wf-tooltip-horizontal-right:after{left:auto;right:18px}.wf-circle-tooltip.ui-tooltip.wf-tooltip-vertical-bottom.wf-tooltip-horizontal-right .wf-circle-tooltip-block:after{left:auto;right:20px}#wf-mobile-controls{white-space:nowrap;font-size:1.2rem}.wf-callout-warning{background-color:#feecc4;padding:0.8rem 1.25rem}.wf-tip-light-bulb{color:#fcb214;font-size:1.5rem;font-weight:bold}.wf-tip-info-message{padding-left:0.5rem !important;font-family:Roboto,"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:.875rem;color:#2d2d2d;line-height:1.3125;font-weight:normal}.wf-block{position:relative;margin:0 auto 0.5rem;padding:0 1rem;box-sizing:border-box;background-color:#fff;box-shadow:0 0 0 1px rgba(200,215,225,0.25),0 1px 2px #e9eff3}@media (min-width: 768px){.wf-block{padding:0 1.5rem}}.wf-block.wf-block-no-padding{padding:0}.wf-block.wf-block-transparent{background-color:transparent;box-shadow:none}.wf-block .wf-block-banner{min-height:44px;margin:0 -1rem;padding:0;box-sizing:border-box;position:relative;background-color:#fcb214;display:-webkit-flex;display:flex;-webkit-align-items:center;align-items:center;-webkit-justify-content:space-between;justify-content:space-between;-webkit-flex-direction:row;flex-direction:row}.wf-block .wf-block-banner>li{margin:0;padding:0.5rem 1rem}@media (min-width: 768px){.wf-block .wf-block-banner{margin:0 -1.5rem}.wf-block .wf-block-banner>li{padding:0.5rem 1.5rem}}.wf-block .wf-block-header{min-height:44px;padding:1rem 0;width:100%;box-sizing:border-box;display:-webkit-flex;display:flex;-webkit-align-items:center;align-items:center;-webkit-justify-content:space-between;justify-content:space-between;position:relative}.wf-block .wf-block-header .wf-block-header-content{max-width:75%}.wf-block .wf-block-header .wf-block-header-content .wf-block-title{font-family:Roboto,"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:0.9rem;width:100%;transition:color 0.2s ease-in}.wf-block .wf-block-header .wf-block-header-content .wf-block-subtitle{margin-top:.125rem;margin-bottom:.125rem;font-size:0.775rem}.wf-block .wf-block-header .wf-block-header-action{position:absolute;top:0;right:0;height:100%;background:none;border:0;outline:0;width:48px;display:-webkit-flex;display:flex;-webkit-align-items:center;align-items:center;-webkit-justify-content:flex-end;justify-content:flex-end;vertical-align:middle;transition:transform 0.15s cubic-bezier(0.175, 0.885, 0.32, 1.275),color 0.2s ease-in}.wf-block .wf-block-header .wf-block-header-action.wf-block-header-action-text{width:auto}.wf-block .wf-block-header .wf-block-header-action.wf-block-header-action-text.wf-block-header-action-text-success{color:#11967a}.wf-block .wf-block-header .wf-block-header-action.wf-block-header-action-text.wf-block-header-action-text-warning{color:#930000}.wf-block .wf-block-header .wf-block-header-action.wf-block-header-action-text.wf-block-header-action-text-warning a{color:#930000}.wf-block .wf-block-header .wf-block-header-action .wf-block-header-action-chevron{background:url("data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPCFET0NUWVBFIHN2ZyBQVUJMSUMgIi0vL1czQy8vRFREIFNWRyAxLjEvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvR3JhcGhpY3MvU1ZHLzEuMS9EVEQvc3ZnMTEuZHRkIj4KPHN2ZyB2ZXJzaW9uPSIxLjEiIGlkPSJjaGV2cm9uLW9iamVjdCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgeD0iMHB4IiB5PSIwcHgiCgkgd2lkdGg9IjI0cHgiIGhlaWdodD0iMjRweCIgdmlld0JveD0iMCAwIDI0IDI0IiBlbmFibGUtYmFja2dyb3VuZD0ibmV3IDAgMCAyNCAyNCIKCSB4bWw6c3BhY2U9InByZXNlcnZlIj4KPHBhdGggaWQ9ImNoZXZyb24iIGQ9Ik0yMCA5bC04IDgtOC04IDEuNDE0LTEuNDE0TDEyIDE0LjE3Mmw2LjU4Ni02LjU4NiIvPgo8L3N2Zz4K");background-repeat:no-repeat;background-position:center center;width:24px;height:24px}.wf-block .wf-block-header .wf-block-header-action .wf-block-header-action-disclosure{background:url("data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPCFET0NUWVBFIHN2ZyBQVUJMSUMgIi0vL1czQy8vRFREIFNWRyAxLjEvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvR3JhcGhpY3MvU1ZHLzEuMS9EVEQvc3ZnMTEuZHRkIj4KPHN2ZyB2ZXJzaW9uPSIxLjEiIGlkPSJkaXNjbG9zdXJlLWNsb3NlZC1vYmplY3QiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4IgoJIHdpZHRoPSIxMnB4IiBoZWlnaHQ9IjEycHgiIHZpZXdCb3g9IjAgMCAxMiAxMiIgZW5hYmxlLWJhY2tncm91bmQ9Im5ldyAwIDAgMTIgMTIiCgkgeG1sOnNwYWNlPSJwcmVzZXJ2ZSI+CjxwYXRoIGlkPSJkaXNjbG9zdXJlLWNsb3NlZCIgZD0iTSA2IDAgbCA2IDYgLTYgNiAwIC0xMiIgZmlsbD0iIzc3NyIvPgo8L3N2Zz4=");background-repeat:no-repeat;background-position:center center;width:12px;height:12px;transition:transform 0.15s cubic-bezier(0.175, 0.885, 0.32, 1.275),background 0.2s ease-in}.wf-block .wf-block-header .wf-block-header-action .wf-block-header-action-checkbox{background-image:url(../images/checkbox.png);background-repeat:no-repeat;background-position:left center;width:29px;height:29px}.wf-block .wf-block-header .wf-block-header-action .wf-block-header-action-checkbox.wf-checked{background-position:right center}.wf-block .wf-block-content{display:none;margin:0 -1rem;padding:0 1rem}@media (min-width: 768px){.wf-block .wf-block-content{margin:0 -1.5rem;padding:0 1.5rem}}.wf-block .wf-block-content .wf-block-list{margin:0 -1rem;padding:0;list-style:none}@media (min-width: 768px){.wf-block .wf-block-content .wf-block-list{margin:0 -1.5rem}}.wf-block .wf-block-content .wf-block-list.wf-block-list-striped>li:nth-of-type(odd){background-color:#f9f9f9}.wf-block .wf-block-content .wf-block-list.wf-block-list-striped>li:nth-of-type(even){background-color:#ffffff}.wf-block .wf-block-content .wf-block-list>li{display:block;min-height:44px;padding:0 1rem;margin:0;border-top:1px solid #e2e2e2;box-sizing:border-box;display:-webkit-flex;display:flex;-webkit-align-items:center;align-items:center;-webkit-justify-content:space-between;justify-content:space-between}@media (min-width: 768px){.wf-block .wf-block-content .wf-block-list>li{padding:0 1.5rem}}.wf-block .wf-block-content .wf-block-list>li>*:first-child{-webkit-flex-grow:1;flex-grow:1;min-width:0}.wf-block .wf-block-content .wf-block-list.wf-block-list-horizontal{box-sizing:border-box;margin-top:-1px;display:-webkit-flex;display:flex;-webkit-align-items:stretch;align-items:stretch;-webkit-align-content:flex-start;align-content:flex-start;-webkit-justify-content:space-between;justify-content:space-between;-webkit-flex-wrap:wrap;flex-wrap:wrap}.wf-block .wf-block-content .wf-block-list.wf-block-list-horizontal>li{-webkit-flex-grow:1;flex-grow:1;-webkit-flex-basis:100%;flex-basis:100%;border-left:1px solid #e2e2e2}@media (min-width: 768px){.wf-block .wf-block-content .wf-block-list.wf-block-list-horizontal>li{-webkit-flex-basis:50%;flex-basis:50%}}@media (min-width: 992px){.wf-block .wf-block-content .wf-block-list.wf-block-list-horizontal>li{-webkit-flex-basis:25%;flex-basis:25%}}.wf-block .wf-block-content .wf-block-list.wf-block-list-horizontal.wf-block-list-nowrap{overflow-y:auto;-webkit-flex-wrap:nowrap;flex-wrap:nowrap}.wf-block .wf-block-content .wf-block-list.wf-block-list-horizontal.wf-block-list-nowrap>li{-webkit-flex-shrink:0;flex-shrink:0}.wf-block .wf-block-content .wf-block-list.wf-block-list-horizontal.wf-block-list-horizontal-5>li{-webkit-flex-grow:1;flex-grow:1;-webkit-flex-basis:20%;flex-basis:20%}.wf-block .wf-block-content .wf-block-list.wf-block-list-horizontal>*:first-child{border-left:0}@media (min-width: 768px){.wf-block .wf-block-content .wf-block-list.wf-block-list-horizontal.wf-block-list-equal>li{max-width:50%}}@media (min-width: 992px){.wf-block .wf-block-content .wf-block-list.wf-block-list-horizontal.wf-block-list-equal>li{max-width:25%}}.wf-block .wf-block-content .wf-block-list.wf-block-list-horizontal.wf-block-list-horizontal-5.wf-block-list-equal>li{max-width:20%}.wf-block .wf-block-content .wf-block-list .wf-block-list-state{text-align:center}@media (min-width: 1200px){.wf-block .wf-block-content .wf-block-list .wf-block-list-state{text-align:left}}.wf-block .wf-block-content .wf-block-list .wf-block-list-state-enabled .wf-fa{color:#11967a}.wf-block .wf-block-content .wf-block-list .wf-block-list-state-disabled .wf-fa{color:#525355}.wf-block .wf-block-content .wf-block-list .wf-block-list-state-premium{color:#9f9fa0}.wf-block .wf-block-content .wf-block-list .wf-block-list-dismiss{padding-left:2rem;font-size:1.25rem}.wf-block .wf-block-content .wf-block-list .wf-block-list-dismiss a{color:#525355}.wf-block .wf-block-content:first-child>.wf-block-list>li:first-child{border-top:none}.wf-block .wf-block-content .wf-block-left-right{margin:0 -1rem;padding:0;list-style:none;display:-webkit-flex;display:flex;-webkit-align-items:stretch;align-items:stretch;-webkit-align-content:flex-start;align-content:flex-start;-webkit-justify-content:space-between;justify-content:space-between;-webkit-flex-wrap:wrap;flex-wrap:wrap}@media (min-width: 768px){.wf-block .wf-block-content .wf-block-left-right{margin:0 -1.5rem}}.wf-block .wf-block-content .wf-block-left-right>li{display:block;min-height:44px;padding:0;margin:0;box-sizing:border-box;display:-webkit-flex;display:flex;-webkit-align-items:center;align-items:center;-webkit-justify-content:space-between;justify-content:space-between}.wf-block .wf-block-content .wf-block-left-right>li>*:first-child{-webkit-flex-grow:1;flex-grow:1;min-width:0}.wf-block .wf-block-content .wf-block-left-right>li.wf-left{text-align:left}.wf-block .wf-block-content .wf-block-left-right>li.wf-right{text-align:right}.wf-block .wf-block-content .wf-block-left-center-right{margin:0 -1rem;padding:0;list-style:none;display:-webkit-flex;display:flex;-webkit-align-items:stretch;align-items:stretch;-webkit-align-content:center;align-content:center;-webkit-justify-content:space-between;justify-content:space-between;-webkit-flex-direction:row;flex-direction:row;-webkit-flex-wrap:nowrap;flex-wrap:nowrap}.wf-block .wf-block-content .wf-block-left-center-right>li{display:block;min-height:44px;padding:0;margin:0;box-sizing:border-box;display:-webkit-flex;display:flex;-webkit-align-items:center;align-items:center;-webkit-justify-content:flex-start;justify-content:flex-start;-webkit-flex-grow:1;flex-grow:1;-webkit-flex-basis:33.3333%;flex-basis:33.3333%;max-width:33.3333%}.wf-block .wf-block-content .wf-block-left-center-right>li a{text-decoration:none;font-size:.875rem}.wf-block .wf-block-content .wf-block-left-center-right>li.wf-left{text-align:left}.wf-block .wf-block-content .wf-block-left-center-right>li.wf-center{text-align:center;-webkit-justify-content:center;justify-content:center}.wf-block .wf-block-content .wf-block-left-center-right>li.wf-center .wordfence-icon32{margin:0}.wf-block .wf-block-content .wf-block-left-center-right>li.wf-right{text-align:right;-webkit-justify-content:flex-end;justify-content:flex-end}.wf-block .wf-block-content .wf-block-labeled-value{box-sizing:border-box;display:-webkit-flex;display:flex;-webkit-align-items:center;align-items:center;-webkit-justify-content:space-between;justify-content:space-between;-webkit-flex-direction:column;flex-direction:column;margin:0 -1rem;padding:1rem}@media (min-width: 768px){.wf-block .wf-block-content .wf-block-labeled-value{margin:0 -1.5rem;padding:1.5rem}}.wf-block .wf-block-content .wf-block-labeled-value-value{font-size:3rem;line-height:3rem;color:#9f9fa0;padding:1rem}.wf-block .wf-block-content .wf-block-labeled-value-label{font-size:0.75rem;color:#9f9fa0;padding:0 1rem 1rem 1rem}.wf-block.wf-block-no-header .wf-block-content .wf-block-list>li{border-top:none}.wf-block.wf-active .wf-block-content,.wf-block.wf-always-active .wf-block-content{display:block}.wf-block.wf-active>.wf-block-header>.wf-block-header-content>.wf-block-title{color:#00709e}.wf-block.wf-active>.wf-block-header>.wf-block-header-content>.wf-block-header-action>.wf-block-header-action-disclosure{background:url("data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPCFET0NUWVBFIHN2ZyBQVUJMSUMgIi0vL1czQy8vRFREIFNWRyAxLjEvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvR3JhcGhpY3MvU1ZHLzEuMS9EVEQvc3ZnMTEuZHRkIj4KPHN2ZyB2ZXJzaW9uPSIxLjEiIGlkPSJkaXNjbG9zdXJlLWNsb3NlZC1vYmplY3QiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4IgoJIHdpZHRoPSIxMnB4IiBoZWlnaHQ9IjEycHgiIHZpZXdCb3g9IjAgMCAxMiAxMiIgZW5hYmxlLWJhY2tncm91bmQ9Im5ldyAwIDAgMTIgMTIiCgkgeG1sOnNwYWNlPSJwcmVzZXJ2ZSI+CjxwYXRoIGlkPSJkaXNjbG9zdXJlLWNsb3NlZCIgZD0iTSA2IDAgbCA2IDYgLTYgNiAwIC0xMiIgZmlsbD0iIzAwNzA5ZSIvPgo8L3N2Zz4=") !important;transform:rotate(90deg)}.wf-block.wf-disabled>.wf-block-header>.wf-block-header-content>.wf-block-title,.wf-block.wf-disabled>.wf-block-header>.wf-block-header-content>.wf-block-subtitle{color:#bfbfbf !important}.wf-block.wf-disabled>.wf-block-header>.wf-block-header-content>.wf-block-header-action>.wf-block-header-action-disclosure{background:url("data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPCFET0NUWVBFIHN2ZyBQVUJMSUMgIi0vL1czQy8vRFREIFNWRyAxLjEvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvR3JhcGhpY3MvU1ZHLzEuMS9EVEQvc3ZnMTEuZHRkIj4KPHN2ZyB2ZXJzaW9uPSIxLjEiIGlkPSJkaXNjbG9zdXJlLWNsb3NlZC1vYmplY3QiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4IgoJIHdpZHRoPSIxMnB4IiBoZWlnaHQ9IjEycHgiIHZpZXdCb3g9IjAgMCAxMiAxMiIgZW5hYmxlLWJhY2tncm91bmQ9Im5ldyAwIDAgMTIgMTIiCgkgeG1sOnNwYWNlPSJwcmVzZXJ2ZSI+CjxwYXRoIGlkPSJkaXNjbG9zdXJlLWNsb3NlZCIgZD0iTSA2IDAgbCA2IDYgLTYgNiAwIC0xMiIgZmlsbD0iI2JkYmRiZCIvPgo8L3N2Zz4=") !important;transform:rotate(0deg)}.wf-block.wf-disabled>.wf-block-content{display:none !important}.wf-block.wf-block-header-left .wf-block-header-content{margin-left:48px}.wf-block.wf-block-header-left .wf-block-header-action{right:auto;left:0px}.wf-block.wf-disabled .wf-dashboard-item-content .wf-block-title{color:#aaaaaa}.wf-block.wf-disabled .wf-dashboard-item-content .wf-block-subtitle{color:#8ea6be}.wf-section-title{margin-bottom:1rem}.wf-status-detail{box-sizing:border-box;display:-webkit-flex;display:flex;-webkit-align-items:center;align-items:center;-webkit-justify-content:space-between;justify-content:space-between;-webkit-flex-direction:column;flex-direction:column;margin:0 -1rem;padding:1rem}.wf-status-detail p{margin:0 0 0.45rem 0}.wf-status-detail .wf-status-circular{margin-bottom:1rem}.wf-status-detail .wf-status-detail-title{font-weight:700 !important;font-size:1rem !important;line-height:1.3125 !important}.wf-status-detail .wf-status-detail-subtitle{font-size:.875rem !important;line-height:1.3125 !important;font-weight:normal !important;text-align:center}.wf-status-detail .wf-status-detail-link>a{font-weight:600 !important;font-size:0.85rem !important}.wf-block-navigation-option{display:-webkit-flex;display:flex;-webkit-align-items:center;align-items:center;-webkit-align-content:flex-start;align-content:flex-start;-webkit-justify-content:flex-start;justify-content:flex-start;-webkit-flex-wrap:nowrap;flex-wrap:nowrap}.wf-block-navigation-option svg.wf-block-navigation-option-icon{width:50px;min-width:50px;fill:#9f9fa0}.wf-block-navigation-option:hover{cursor:pointer}.wf-block-navigation-option:hover a{text-decoration:underline}.wf-block-navigation-option:hover svg.wf-block-navigation-option-icon{fill:#00709e}.wf-select-group{display:-webkit-flex !important;display:flex !important;-webkit-align-items:center !important;align-items:center !important;-webkit-justify-content:flex-start !important;justify-content:flex-start !important;-webkit-flex-direction:row !important;flex-direction:row !important;-webkit-flex-grow:0 !important;flex-grow:0 !important}.wf-select-group .select2-container{min-width:200px}@media (max-width: 767px){.wf-select-group .select2-container{max-width:100px}}.wf-select-group .select2-container--default .select2-selection--single{display:block;width:100%;height:38px;padding:.5rem 1.25rem;font-size:14px;line-height:1.42857;color:#2b2b2b;background-color:#fff;background-image:none;border:1px solid #ddd;border-radius:4px;border-top-right-radius:0;border-bottom-right-radius:0;border-right:0;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);-webkit-transition:border-color ease-in-out 0.15s,box-shadow ease-in-out 0.15s;-o-transition:border-color ease-in-out 0.15s,box-shadow ease-in-out 0.15s;transition:border-color ease-in-out 0.15s,box-shadow ease-in-out 0.15s}.wf-select-group .select2-container--default .select2-selection--single .select2-selection__rendered{color:#2b2b2b;line-height:inherit}.wf-select-group .select2-container--default .select2-selection--single .select2-selection__arrow{height:38px}.wf-select-group .wf-form-control{display:inline-block;width:auto;border-top-left-radius:0;border-bottom-left-radius:0;margin-left:0}.wf-flex-horizontal{display:-webkit-flex !important;display:flex !important;-webkit-align-items:center !important;align-items:center !important;-webkit-justify-content:flex-start !important;justify-content:flex-start !important;-webkit-flex-direction:row !important;flex-direction:row !important}.wf-flex-horizontal>*:first-child{-webkit-flex-grow:0 !important;flex-grow:0 !important}.wf-flex-horizontal.wf-flex-align-left{-webkit-align-items:flex-start !important;align-items:flex-start !important}.wf-flex-horizontal.wf-flex-align-right{-webkit-justify-content:flex-end !important;justify-content:flex-end !important}.wf-flex-horizontal.wf-flex-full-width{width:100%}.wf-flex-horizontal.wf-flex-full-width>*:last-child{-webkit-flex-grow:1 !important;flex-grow:1 !important}.wf-flex-horizontal>li{padding:0;margin:0}.wf-flex-vertical{display:-webkit-flex !important;display:flex !important;-webkit-align-items:center !important;align-items:center !important;-webkit-justify-content:flex-start !important;justify-content:flex-start !important;-webkit-flex-direction:column !important;flex-direction:column !important}.wf-flex-vertical>*:first-child{-webkit-flex-grow:0 !important;flex-grow:0 !important}.wf-flex-vertical.wf-flex-align-left{-webkit-align-items:flex-start !important;align-items:flex-start !important}.wf-flex-vertical.wf-flex-align-right{-webkit-align-items:flex-end !important;align-items:flex-end !important}.wf-flex-vertical.wf-flex-full-width{-webkit-align-items:stretch !important;align-items:stretch !important}@media (max-width: 767px){.wf-flex-vertical.wf-flex-align-left-xs{-webkit-align-items:flex-start !important;align-items:flex-start !important}}@media (min-width: 768px) and (max-width: 991px){.wf-flex-vertical.wf-flex-align-left-sm{-webkit-align-items:flex-start !important;align-items:flex-start !important}}@media (min-width: 992px) and (max-width: 1199px){.wf-flex-vertical.wf-flex-align-left-md{-webkit-align-items:flex-start !important;align-items:flex-start !important}}@media (min-width: 1200px){.wf-flex-vertical.wf-flex-align-left-lg{-webkit-align-items:flex-start !important;align-items:flex-start !important}}.wf-flex-vertical>li{padding:0;margin:0}@media (max-width: 767px){.wf-flex-vertical-xs{display:-webkit-flex !important;display:flex !important;-webkit-align-items:center !important;align-items:center !important;-webkit-justify-content:flex-start !important;justify-content:flex-start !important;-webkit-flex-direction:column !important;flex-direction:column !important}.wf-flex-vertical-xs>*:first-child{-webkit-flex-grow:0 !important;flex-grow:0 !important}.wf-flex-vertical-xs.wf-flex-align-left{-webkit-align-items:flex-start !important;align-items:flex-start !important}.wf-flex-vertical-xs.wf-flex-align-right{-webkit-align-items:flex-end !important;align-items:flex-end !important}.wf-flex-vertical-xs.wf-flex-full-width{-webkit-align-items:stretch !important;align-items:stretch !important}}ul.wf-option,.wf-form-field{display:-webkit-flex;display:flex;-webkit-align-items:center;align-items:center;-webkit-justify-content:flex-start;justify-content:flex-start;-webkit-flex-direction:row;flex-direction:row;-webkit-flex-wrap:nowrap;flex-wrap:nowrap;padding:1rem 0;position:relative}ul.wf-option li,.wf-form-field li{margin:0;padding:0}ul.wf-option.wf-option-no-spacing,.wf-form-field.wf-option-no-spacing{padding:0;margin:0}ul.wf-option.wf-option-toggled>*:last-child,ul.wf-option.wf-option-toggled-boolean-switch>*:last-child,ul.wf-option.wf-option-toggled-select>*:last-child,ul.wf-option.wf-option-select>*:last-child,ul.wf-option.wf-option-text>*:last-child,ul.wf-option.wf-option-textarea>*:last-child,ul.wf-option.wf-option-switch>*:last-child,ul.wf-option.wf-option-footer>*:last-child,.wf-form-field.wf-option-toggled>*:last-child,.wf-form-field.wf-option-toggled-boolean-switch>*:last-child,.wf-form-field.wf-option-toggled-select>*:last-child,.wf-form-field.wf-option-select>*:last-child,.wf-form-field.wf-option-text>*:last-child,.wf-form-field.wf-option-textarea>*:last-child,.wf-form-field.wf-option-switch>*:last-child,.wf-form-field.wf-option-footer>*:last-child{margin-right:1rem}@media (max-width: 768px){ul.wf-option.wf-option-footer,.wf-form-field.wf-option-footer{-webkit-flex-direction:column;flex-direction:column}}ul.wf-option>.wf-option-content,.wf-form-field>.wf-option-content{-webkit-flex-grow:1;flex-grow:1}ul.wf-option>.wf-option-content>ul,.wf-form-field>.wf-option-content>ul{display:-webkit-flex;display:flex;-webkit-align-items:flex-start;align-items:flex-start;-webkit-justify-content:flex-start;justify-content:flex-start;-webkit-flex-direction:column;flex-direction:column;-webkit-flex-wrap:nowrap;flex-wrap:nowrap}@media (min-width: 768px){ul.wf-option>.wf-option-content>ul,.wf-form-field>.wf-option-content>ul{-webkit-flex-direction:row;flex-direction:row;-webkit-align-items:center;align-items:center}}ul.wf-option.wf-option-toggled-segmented *,.wf-form-field.wf-option-toggled-segmented *{-webkit-flex-grow:0;flex-grow:0}ul.wf-option.wf-option-toggled-segmented *:first-child,.wf-form-field.wf-option-toggled-segmented *:first-child{-webkit-flex-grow:1;flex-grow:1}ul.wf-option.wf-option-toggled-segmented>*:last-child,.wf-form-field.wf-option-toggled-segmented>*:last-child{margin-left:1rem}ul.wf-option.wf-option-toggled-segmented .wf-option-title,.wf-form-field.wf-option-toggled-segmented .wf-option-title{font-size:.8rem}ul.wf-option.wf-option-toggled-segmented .wf-option-segments,.wf-form-field.wf-option-toggled-segmented .wf-option-segments{display:-webkit-flex;display:flex;-webkit-align-items:center;align-items:center;-webkit-justify-content:flex-start;justify-content:flex-start;-webkit-align-content:stretch;align-content:stretch;-webkit-flex-wrap:nowrap;flex-wrap:nowrap}ul.wf-option.wf-option-toggled-segmented .wf-option-segments label,.wf-form-field.wf-option-toggled-segmented .wf-option-segments label{-webkit-flex-grow:1;flex-grow:1;-webkit-flex-basis:50%;flex-basis:50%;display:block;margin-bottom:0;font-weight:normal;text-align:center;vertical-align:middle;touch-action:manipulation;cursor:pointer;background-image:none;border:1px solid transparent;white-space:nowrap;text-transform:uppercase;padding:.5rem 1.25rem;font-size:14px;line-height:1.42857;border-radius:4px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;color:#00709e;background-color:#fff;border-color:#00709e;border-radius:0}ul.wf-option.wf-option-toggled-segmented .wf-option-segments label:focus,ul.wf-option.wf-option-toggled-segmented .wf-option-segments label.focus,.wf-form-field.wf-option-toggled-segmented .wf-option-segments label:focus,.wf-form-field.wf-option-toggled-segmented .wf-option-segments label.focus{color:#00709e;background-color:#e6e6e6;border-color:#00161f}ul.wf-option.wf-option-toggled-segmented .wf-option-segments label:hover,.wf-form-field.wf-option-toggled-segmented .wf-option-segments label:hover{color:#00709e;background-color:#e6e6e6;border-color:#004561}ul.wf-option.wf-option-toggled-segmented .wf-option-segments label:active,ul.wf-option.wf-option-toggled-segmented .wf-option-segments label.active,.wf-open>ul.wf-option.wf-option-toggled-segmented .wf-option-segments label.wf-dropdown-toggle,.wf-form-field.wf-option-toggled-segmented .wf-option-segments label:active,.wf-form-field.wf-option-toggled-segmented .wf-option-segments label.active,.wf-open>.wf-form-field.wf-option-toggled-segmented .wf-option-segments label.wf-dropdown-toggle{color:#00709e;background-color:#e6e6e6;border-color:#004561}ul.wf-option.wf-option-toggled-segmented .wf-option-segments label:active:hover,ul.wf-option.wf-option-toggled-segmented .wf-option-segments label:active:focus,ul.wf-option.wf-option-toggled-segmented .wf-option-segments label:active.focus,ul.wf-option.wf-option-toggled-segmented .wf-option-segments label.active:hover,ul.wf-option.wf-option-toggled-segmented .wf-option-segments label.active:focus,ul.wf-option.wf-option-toggled-segmented .wf-option-segments label.active.focus,.wf-open>ul.wf-option.wf-option-toggled-segmented .wf-option-segments label.wf-dropdown-toggle:hover,.wf-open>ul.wf-option.wf-option-toggled-segmented .wf-option-segments label.wf-dropdown-toggle:focus,.wf-open>ul.wf-option.wf-option-toggled-segmented .wf-option-segments label.wf-dropdown-toggle.focus,.wf-form-field.wf-option-toggled-segmented .wf-option-segments label:active:hover,.wf-form-field.wf-option-toggled-segmented .wf-option-segments label:active:focus,.wf-form-field.wf-option-toggled-segmented .wf-option-segments label:active.focus,.wf-form-field.wf-option-toggled-segmented .wf-option-segments label.active:hover,.wf-form-field.wf-option-toggled-segmented .wf-option-segments label.active:focus,.wf-form-field.wf-option-toggled-segmented .wf-option-segments label.active.focus,.wf-open>.wf-form-field.wf-option-toggled-segmented .wf-option-segments label.wf-dropdown-toggle:hover,.wf-open>.wf-form-field.wf-option-toggled-segmented .wf-option-segments label.wf-dropdown-toggle:focus,.wf-open>.wf-form-field.wf-option-toggled-segmented .wf-option-segments label.wf-dropdown-toggle.focus{color:#00709e;background-color:#d4d4d4;border-color:#00161f}ul.wf-option.wf-option-toggled-segmented .wf-option-segments label:active,ul.wf-option.wf-option-toggled-segmented .wf-option-segments label.wf-active,.wf-open>ul.wf-option.wf-option-toggled-segmented .wf-option-segments label.wf-dropdown-toggle,.wf-form-field.wf-option-toggled-segmented .wf-option-segments label:active,.wf-form-field.wf-option-toggled-segmented .wf-option-segments label.wf-active,.wf-open>.wf-form-field.wf-option-toggled-segmented .wf-option-segments label.wf-dropdown-toggle{background-image:none}ul.wf-option.wf-option-toggled-segmented .wf-option-segments label.wf-disabled,ul.wf-option.wf-option-toggled-segmented .wf-option-segments label[disabled],ul.wf-option.wf-option-toggled-segmented .wf-option-segments label[readonly],fieldset[disabled] ul.wf-option.wf-option-toggled-segmented .wf-option-segments label,.wf-form-field.wf-option-toggled-segmented .wf-option-segments label.wf-disabled,.wf-form-field.wf-option-toggled-segmented .wf-option-segments label[disabled],.wf-form-field.wf-option-toggled-segmented .wf-option-segments label[readonly],fieldset[disabled] .wf-form-field.wf-option-toggled-segmented .wf-option-segments label{color:#777;background-color:#fff;border-color:#e2e2e2;cursor:not-allowed}ul.wf-option.wf-option-toggled-segmented .wf-option-segments label.wf-disabled:hover,ul.wf-option.wf-option-toggled-segmented .wf-option-segments label.wf-disabled:focus,ul.wf-option.wf-option-toggled-segmented .wf-option-segments label.wf-disabled.wf-focus,ul.wf-option.wf-option-toggled-segmented .wf-option-segments label[disabled]:hover,ul.wf-option.wf-option-toggled-segmented .wf-option-segments label[disabled]:focus,ul.wf-option.wf-option-toggled-segmented .wf-option-segments label[disabled].wf-focus,ul.wf-option.wf-option-toggled-segmented .wf-option-segments label[readonly]:hover,ul.wf-option.wf-option-toggled-segmented .wf-option-segments label[readonly]:focus,ul.wf-option.wf-option-toggled-segmented .wf-option-segments label[readonly].wf-focus,fieldset[disabled] ul.wf-option.wf-option-toggled-segmented .wf-option-segments label:hover,fieldset[disabled] ul.wf-option.wf-option-toggled-segmented .wf-option-segments label:focus,fieldset[disabled] ul.wf-option.wf-option-toggled-segmented .wf-option-segments label.wf-focus,.wf-form-field.wf-option-toggled-segmented .wf-option-segments label.wf-disabled:hover,.wf-form-field.wf-option-toggled-segmented .wf-option-segments label.wf-disabled:focus,.wf-form-field.wf-option-toggled-segmented .wf-option-segments label.wf-disabled.wf-focus,.wf-form-field.wf-option-toggled-segmented .wf-option-segments label[disabled]:hover,.wf-form-field.wf-option-toggled-segmented .wf-option-segments label[disabled]:focus,.wf-form-field.wf-option-toggled-segmented .wf-option-segments label[disabled].wf-focus,.wf-form-field.wf-option-toggled-segmented .wf-option-segments label[readonly]:hover,.wf-form-field.wf-option-toggled-segmented .wf-option-segments label[readonly]:focus,.wf-form-field.wf-option-toggled-segmented .wf-option-segments label[readonly].wf-focus,fieldset[disabled] .wf-form-field.wf-option-toggled-segmented .wf-option-segments label:hover,fieldset[disabled] .wf-form-field.wf-option-toggled-segmented .wf-option-segments label:focus,fieldset[disabled] .wf-form-field.wf-option-toggled-segmented .wf-option-segments label.wf-focus{background-color:#fff;border-color:#00709e}ul.wf-option.wf-option-toggled-segmented .wf-option-segments label .wf-badge,.wf-form-field.wf-option-toggled-segmented .wf-option-segments label .wf-badge{color:#fff;background-color:#00709e}ul.wf-option.wf-option-toggled-segmented .wf-option-segments label.wf-segment-first,.wf-form-field.wf-option-toggled-segmented .wf-option-segments label.wf-segment-first{border-radius:4px 0 0 4px}ul.wf-option.wf-option-toggled-segmented .wf-option-segments label.wf-segment-last,.wf-form-field.wf-option-toggled-segmented .wf-option-segments label.wf-segment-last{border-radius:0 4px 4px 0}ul.wf-option.wf-option-toggled-segmented .wf-option-segments [type=radio],.wf-form-field.wf-option-toggled-segmented .wf-option-segments [type=radio]{position:absolute;left:-9999px}ul.wf-option.wf-option-toggled-segmented .wf-option-segments [type=radio]:checked+label,.wf-form-field.wf-option-toggled-segmented .wf-option-segments [type=radio]:checked+label{color:#fff;background-color:#00709e;border-color:#005e85}ul.wf-option.wf-option-toggled-segmented .wf-option-segments [type=radio]:checked+label:focus,ul.wf-option.wf-option-toggled-segmented .wf-option-segments [type=radio]:checked+label.focus,.wf-form-field.wf-option-toggled-segmented .wf-option-segments [type=radio]:checked+label:focus,.wf-form-field.wf-option-toggled-segmented .wf-option-segments [type=radio]:checked+label.focus{color:#fff;background-color:#004c6b;border-color:#000405}ul.wf-option.wf-option-toggled-segmented .wf-option-segments [type=radio]:checked+label:hover,.wf-form-field.wf-option-toggled-segmented .wf-option-segments [type=radio]:checked+label:hover{color:#fff;background-color:#004c6b;border-color:#003347}ul.wf-option.wf-option-toggled-segmented .wf-option-segments [type=radio]:checked+label:active,ul.wf-option.wf-option-toggled-segmented .wf-option-segments [type=radio]:checked+label.active,.wf-open>ul.wf-option.wf-option-toggled-segmented .wf-option-segments [type=radio]:checked+label.wf-dropdown-toggle,.wf-form-field.wf-option-toggled-segmented .wf-option-segments [type=radio]:checked+label:active,.wf-form-field.wf-option-toggled-segmented .wf-option-segments [type=radio]:checked+label.active,.wf-open>.wf-form-field.wf-option-toggled-segmented .wf-option-segments [type=radio]:checked+label.wf-dropdown-toggle{color:#fff;background-color:#004c6b;border-color:#003347}ul.wf-option.wf-option-toggled-segmented .wf-option-segments [type=radio]:checked+label:active:hover,ul.wf-option.wf-option-toggled-segmented .wf-option-segments [type=radio]:checked+label:active:focus,ul.wf-option.wf-option-toggled-segmented .wf-option-segments [type=radio]:checked+label:active.focus,ul.wf-option.wf-option-toggled-segmented .wf-option-segments [type=radio]:checked+label.active:hover,ul.wf-option.wf-option-toggled-segmented .wf-option-segments [type=radio]:checked+label.active:focus,ul.wf-option.wf-option-toggled-segmented .wf-option-segments [type=radio]:checked+label.active.focus,.wf-open>ul.wf-option.wf-option-toggled-segmented .wf-option-segments [type=radio]:checked+label.wf-dropdown-toggle:hover,.wf-open>ul.wf-option.wf-option-toggled-segmented .wf-option-segments [type=radio]:checked+label.wf-dropdown-toggle:focus,.wf-open>ul.wf-option.wf-option-toggled-segmented .wf-option-segments [type=radio]:checked+label.wf-dropdown-toggle.focus,.wf-form-field.wf-option-toggled-segmented .wf-option-segments [type=radio]:checked+label:active:hover,.wf-form-field.wf-option-toggled-segmented .wf-option-segments [type=radio]:checked+label:active:focus,.wf-form-field.wf-option-toggled-segmented .wf-option-segments [type=radio]:checked+label:active.focus,.wf-form-field.wf-option-toggled-segmented .wf-option-segments [type=radio]:checked+label.active:hover,.wf-form-field.wf-option-toggled-segmented .wf-option-segments [type=radio]:checked+label.active:focus,.wf-form-field.wf-option-toggled-segmented .wf-option-segments [type=radio]:checked+label.active.focus,.wf-open>.wf-form-field.wf-option-toggled-segmented .wf-option-segments [type=radio]:checked+label.wf-dropdown-toggle:hover,.wf-open>.wf-form-field.wf-option-toggled-segmented .wf-option-segments [type=radio]:checked+label.wf-dropdown-toggle:focus,.wf-open>.wf-form-field.wf-option-toggled-segmented .wf-option-segments [type=radio]:checked+label.wf-dropdown-toggle.focus{color:#fff;background-color:#003347;border-color:#000405}ul.wf-option.wf-option-toggled-segmented .wf-option-segments [type=radio]:checked+label:active,ul.wf-option.wf-option-toggled-segmented .wf-option-segments [type=radio]:checked+label.wf-active,.wf-open>ul.wf-option.wf-option-toggled-segmented .wf-option-segments [type=radio]:checked+label.wf-dropdown-toggle,.wf-form-field.wf-option-toggled-segmented .wf-option-segments [type=radio]:checked+label:active,.wf-form-field.wf-option-toggled-segmented .wf-option-segments [type=radio]:checked+label.wf-active,.wf-open>.wf-form-field.wf-option-toggled-segmented .wf-option-segments [type=radio]:checked+label.wf-dropdown-toggle{background-image:none}ul.wf-option.wf-option-toggled-segmented .wf-option-segments [type=radio]:checked+label.wf-disabled,ul.wf-option.wf-option-toggled-segmented .wf-option-segments [type=radio]:checked+label[disabled],ul.wf-option.wf-option-toggled-segmented .wf-option-segments [type=radio]:checked+label[readonly],fieldset[disabled] ul.wf-option.wf-option-toggled-segmented .wf-option-segments [type=radio]:checked+label,.wf-form-field.wf-option-toggled-segmented .wf-option-segments [type=radio]:checked+label.wf-disabled,.wf-form-field.wf-option-toggled-segmented .wf-option-segments [type=radio]:checked+label[disabled],.wf-form-field.wf-option-toggled-segmented .wf-option-segments [type=radio]:checked+label[readonly],fieldset[disabled] .wf-form-field.wf-option-toggled-segmented .wf-option-segments [type=radio]:checked+label{color:#fff;background-color:#59a2c0;border-color:#5996b0;cursor:not-allowed}ul.wf-option.wf-option-toggled-segmented .wf-option-segments [type=radio]:checked+label.wf-disabled:hover,ul.wf-option.wf-option-toggled-segmented .wf-option-segments [type=radio]:checked+label.wf-disabled:focus,ul.wf-option.wf-option-toggled-segmented .wf-option-segments [type=radio]:checked+label.wf-disabled.wf-focus,ul.wf-option.wf-option-toggled-segmented .wf-option-segments [type=radio]:checked+label[disabled]:hover,ul.wf-option.wf-option-toggled-segmented .wf-option-segments [type=radio]:checked+label[disabled]:focus,ul.wf-option.wf-option-toggled-segmented .wf-option-segments [type=radio]:checked+label[disabled].wf-focus,ul.wf-option.wf-option-toggled-segmented .wf-option-segments [type=radio]:checked+label[readonly]:hover,ul.wf-option.wf-option-toggled-segmented .wf-option-segments [type=radio]:checked+label[readonly]:focus,ul.wf-option.wf-option-toggled-segmented .wf-option-segments [type=radio]:checked+label[readonly].wf-focus,fieldset[disabled] ul.wf-option.wf-option-toggled-segmented .wf-option-segments [type=radio]:checked+label:hover,fieldset[disabled] ul.wf-option.wf-option-toggled-segmented .wf-option-segments [type=radio]:checked+label:focus,fieldset[disabled] ul.wf-option.wf-option-toggled-segmented .wf-option-segments [type=radio]:checked+label.wf-focus,.wf-form-field.wf-option-toggled-segmented .wf-option-segments [type=radio]:checked+label.wf-disabled:hover,.wf-form-field.wf-option-toggled-segmented .wf-option-segments [type=radio]:checked+label.wf-disabled:focus,.wf-form-field.wf-option-toggled-segmented .wf-option-segments [type=radio]:checked+label.wf-disabled.wf-focus,.wf-form-field.wf-option-toggled-segmented .wf-option-segments [type=radio]:checked+label[disabled]:hover,.wf-form-field.wf-option-toggled-segmented .wf-option-segments [type=radio]:checked+label[disabled]:focus,.wf-form-field.wf-option-toggled-segmented .wf-option-segments [type=radio]:checked+label[disabled].wf-focus,.wf-form-field.wf-option-toggled-segmented .wf-option-segments [type=radio]:checked+label[readonly]:hover,.wf-form-field.wf-option-toggled-segmented .wf-option-segments [type=radio]:checked+label[readonly]:focus,.wf-form-field.wf-option-toggled-segmented .wf-option-segments [type=radio]:checked+label[readonly].wf-focus,fieldset[disabled] .wf-form-field.wf-option-toggled-segmented .wf-option-segments [type=radio]:checked+label:hover,fieldset[disabled] .wf-form-field.wf-option-toggled-segmented .wf-option-segments [type=radio]:checked+label:focus,fieldset[disabled] .wf-form-field.wf-option-toggled-segmented .wf-option-segments [type=radio]:checked+label.wf-focus{background-color:#00709e;border-color:#005e85}ul.wf-option.wf-option-toggled-segmented .wf-option-segments [type=radio]:checked+label .wf-badge,.wf-form-field.wf-option-toggled-segmented .wf-option-segments [type=radio]:checked+label .wf-badge{color:#00709e;background-color:#fff}ul.wf-option.wf-option-toggled-segmented .wf-option-segments [type=radio]:disabled+label,.wf-form-field.wf-option-toggled-segmented .wf-option-segments [type=radio]:disabled+label{cursor:not-allowed;filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=65);opacity:.65}ul.wf-option.wf-option-toggled-multiple,.wf-form-field.wf-option-toggled-multiple{-webkit-flex-direction:column;flex-direction:column;-webkit-align-items:flex-start;align-items:flex-start}ul.wf-option.wf-option-toggled-multiple>.wf-option-title,.wf-form-field.wf-option-toggled-multiple>.wf-option-title{font-weight:600}ul.wf-option>.wf-option-spacer,.wf-form-field>.wf-option-spacer{-webkit-flex-grow:0;flex-grow:0;-webkit-flex-shrink:0;flex-shrink:0;margin:0 1rem 0 0;width:30px;height:30px}@media (min-width: 768px){ul.wf-option>.wf-option-spacer,.wf-form-field>.wf-option-spacer{margin:0 2rem 0 1rem;width:20px;height:20px}}ul.wf-option>.wf-option-premium-lock,.wf-form-field>.wf-option-premium-lock{-webkit-flex-grow:0;flex-grow:0;-webkit-flex-shrink:0;flex-shrink:0;background:url("data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPCFET0NUWVBFIHN2ZyBQVUJMSUMgIi0vL1czQy8vRFREIFNWRyAxLjEvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvR3JhcGhpY3MvU1ZHLzEuMS9EVEQvc3ZnMTEuZHRkIj4KPHN2ZyB3aWR0aD0iMjRweCIgaGVpZ2h0PSIzMHB4IiB2aWV3Qm94PSIwIDAgMjQgMzAiIHZlcnNpb249IjEuMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KCTxwYXRoIGQ9Ik0yMy45NDksMTQuMjMzYy0wLjM3OSwtMC4zOSAtMC45MDQsLTAuNjA2IC0xLjQ0OCwtMC41OTVsLTAuNjgzLDBsMCwtNC4wOTJjMC4wMzIsLTIuNTM1IC0wLjk4NiwtNC45NzMgLTIuODEyLC02LjczMWMtMS43NTksLTEuODI4IC00LjE5OCwtMi44NDcgLTYuNzM0LC0yLjgxNWMtMi41MzYsLTAuMDMyIC00Ljk3NiwwLjk4NyAtNi43MzQsMi44MTVjLTEuODI2LDEuNzU4IC0yLjg0NCw0LjE5NiAtMi44MTIsNi43MzFsMCw0LjA4OWwtMC42OCwwYy0wLjU0NCwtMC4wMTEgLTEuMDY5LDAuMjA1IC0xLjQ0OCwwLjU5NWMtMC4zOTUsMC4zODIgLTAuNjEyLDAuOTEyIC0wLjU5OCwxLjQ2MWwwLDEyLjI2NmMtMC4wMTEsMC41NDQgMC4yMDQsMS4wNjkgMC41OTUsMS40NDhjMC4zNzksMC4zOTEgMC45MDQsMC42MDYgMS40NDgsMC41OTVsMjAuNDU4LDBjMC4wMDMsMCAwLjAwNiwwIDAuMDEsMGMxLjExNywwIDIuMDM2LC0wLjkxOSAyLjAzNiwtMi4wMzdjMCwtMC4wMDMgMCwtMC4wMDYgMCwtMC4wMDlsMCwtMTIuMjYzYzAuMDExLC0wLjU0NCAtMC4yMDYsLTEuMDY5IC0wLjU5OCwtMS40NDhsMCwtMC4wMVptLTYuMjExLC0wLjU5NWwtMTAuOTE5LDBsMCwtNC4wOTJjLTAuMDIyLC0xLjQ1MSAwLjU1NywtMi44NDggMS41OTksLTMuODU4YzEuMDA5LC0xLjA0MiAyLjQwNywtMS42MjEgMy44NTcsLTEuNTk4YzEuNDUxLC0wLjAyMyAyLjg0OCwwLjU1NiAzLjg1OCwxLjU5OGMxLjA0MiwxLjAwOSAxLjYyMSwyLjQwNyAxLjU5OCwzLjg1OGwwLjAwNyw0LjA5MloiIGZpbGw9IiNkMWQxZDEiLz4KPC9zdmc+");background-repeat:no-repeat;background-position:center center;background-size:contain;margin:0 1rem 0 0;width:30px;height:30px}@media (min-width: 768px){ul.wf-option>.wf-option-premium-lock,.wf-form-field>.wf-option-premium-lock{margin:0 2rem 0 1rem;width:20px;height:20px}}ul.wf-option>.wf-option-checkbox,.wf-form-field>.wf-option-checkbox{-webkit-flex-grow:0;flex-grow:0;-webkit-flex-shrink:0;flex-shrink:0;margin:0 1rem 0 0}@media (min-width: 768px){ul.wf-option>.wf-option-checkbox,.wf-form-field>.wf-option-checkbox{margin:0 2rem 0 1rem}}ul.wf-option>.wf-boolean-switch,.wf-form-field>.wf-boolean-switch{-webkit-flex-grow:0;flex-grow:0;-webkit-flex-shrink:0;flex-shrink:0;margin:0 1rem 0 0}@media (min-width: 768px){ul.wf-option>.wf-boolean-switch,.wf-form-field>.wf-boolean-switch{margin:0 1rem 0 1rem}}ul.wf-option.wf-option-no-spacing>.wf-boolean-switch,.wf-form-field.wf-option-no-spacing>.wf-boolean-switch{margin:0}ul.wf-option>.wf-option-radio-container,.wf-form-field>.wf-option-radio-container{-webkit-flex-grow:0;flex-grow:0;-webkit-flex-shrink:0;flex-shrink:0;margin:0 1rem 0 0}@media (min-width: 768px){ul.wf-option>.wf-option-radio-container,.wf-form-field>.wf-option-radio-container{margin:0 2rem 0 1rem}}ul.wf-option>.wf-option-radio-container [type=radio].wf-option-radio+label:before,.wf-form-field>.wf-option-radio-container [type=radio].wf-option-radio+label:before{margin:0}ul.wf-option>li>.wf-option-title,ul.wf-option>.wf-option-title,ul.wf-option>.wf-option-content>ul>.wf-option-title,.wf-form-field>li>.wf-option-title,.wf-form-field>.wf-option-title,.wf-form-field>.wf-option-content>ul>.wf-option-title{font-family:Roboto,"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:0.9rem;color:#2b2b2b;padding-right:0.5rem}ul.wf-option>li>.wf-option-title .wf-option-subtitle,ul.wf-option>.wf-option-title .wf-option-subtitle,ul.wf-option>.wf-option-content>ul>.wf-option-title .wf-option-subtitle,.wf-form-field>li>.wf-option-title .wf-option-subtitle,.wf-form-field>.wf-option-title .wf-option-subtitle,.wf-form-field>.wf-option-content>ul>.wf-option-title .wf-option-subtitle{padding-top:0.25rem;font-size:0.75rem}ul.wf-option .wf-flex-vertical .wf-option-title,.wf-form-field .wf-flex-vertical .wf-option-title{padding-bottom:0.75rem}ul.wf-option.wf-flex-vertical>.wf-option-subtitle,.wf-form-field.wf-flex-vertical>.wf-option-subtitle{padding-top:0.25rem !important;font-size:0.75rem !important}ul.wf-option .wf-option-checkboxes,ul.wf-option .wf-option-checkboxes>ul,.wf-form-field .wf-option-checkboxes,.wf-form-field .wf-option-checkboxes>ul{display:-webkit-flex;display:flex;-webkit-align-items:center;align-items:center;-webkit-justify-content:flex-start;justify-content:flex-start;-webkit-flex-direction:row;flex-direction:row;-webkit-flex-wrap:nowrap;flex-wrap:nowrap}ul.wf-option .wf-option-checkboxes,.wf-form-field .wf-option-checkboxes{margin-top:1rem}ul.wf-option .wf-option-checkboxes>ul,.wf-form-field .wf-option-checkboxes>ul{margin-left:1rem}@media (min-width: 768px){ul.wf-option .wf-option-checkboxes>ul,.wf-form-field .wf-option-checkboxes>ul{margin-left:1.5rem}}ul.wf-option .wf-option-checkboxes>ul:first-of-type,.wf-form-field .wf-option-checkboxes>ul:first-of-type{margin-left:0}ul.wf-option .wf-option-checkboxes>ul>.wf-option-checkbox,.wf-form-field .wf-option-checkboxes>ul>.wf-option-checkbox{margin:0 1rem 0 0}ul.wf-option li.wf-option-text,ul.wf-option li.wf-option-textarea,ul.wf-option td.wf-option-text,.wf-form-field li.wf-option-text,.wf-form-field li.wf-option-textarea,.wf-form-field td.wf-option-text{padding-top:0.5rem}@media (min-width: 768px){ul.wf-option li.wf-option-text,ul.wf-option li.wf-option-textarea,ul.wf-option td.wf-option-text,.wf-form-field li.wf-option-text,.wf-form-field li.wf-option-textarea,.wf-form-field td.wf-option-text{-webkit-flex-grow:1;flex-grow:1;text-align:right;padding-left:1rem;padding-top:0}}ul.wf-option li.wf-option-text>input[type="text"],.wf-form-field li.wf-option-text>input[type="text"]{max-width:240px}@media (min-width: 768px){ul.wf-option li.wf-option-text>input[type="text"],.wf-form-field li.wf-option-text>input[type="text"]{max-width:280px}}@media (min-width: 992px){ul.wf-option li.wf-option-text>input[type="text"],.wf-form-field li.wf-option-text>input[type="text"]{max-width:320px}}ul.wf-option li.wf-option-text.wf-option-full-width>input[type="text"],.wf-form-field li.wf-option-text.wf-option-full-width>input[type="text"]{max-width:100%;width:100%}ul.wf-option li.wf-option-textarea>textarea,.wf-form-field li.wf-option-textarea>textarea{width:100%;height:80px;min-width:150px;max-width:240px}@media (min-width: 768px){ul.wf-option li.wf-option-textarea>textarea,.wf-form-field li.wf-option-textarea>textarea{min-width:200px;max-width:280px}}@media (min-width: 992px){ul.wf-option li.wf-option-textarea>textarea,.wf-form-field li.wf-option-textarea>textarea{min-width:250px;max-width:320px}}ul.wf-option li.wf-option-switch,.wf-form-field li.wf-option-switch{-webkit-flex-grow:1;flex-grow:1}ul.wf-option li.wf-option-switch.wf-right .wf-switch,.wf-form-field li.wf-option-switch.wf-right .wf-switch{justify-content:flex-end !important}ul.wf-option li.wf-option-select,.wf-form-field li.wf-option-select{-webkit-flex-grow:1;flex-grow:1;text-align:right}ul.wf-option li.wf-option-select select,ul.wf-option li.wf-option-select select option,ul.wf-option li.wf-option-select .select2-container--default,.wf-form-field li.wf-option-select select,.wf-form-field li.wf-option-select select option,.wf-form-field li.wf-option-select .select2-container--default{font-size:0.7rem;font-weight:bold}@media (min-width: 768px){ul.wf-option li.wf-option-select select,ul.wf-option li.wf-option-select select option,ul.wf-option li.wf-option-select .select2-container--default,.wf-form-field li.wf-option-select select,.wf-form-field li.wf-option-select select option,.wf-form-field li.wf-option-select .select2-container--default{font-size:0.8rem}}@media (min-width: 992px){ul.wf-option li.wf-option-select select,ul.wf-option li.wf-option-select select option,ul.wf-option li.wf-option-select .select2-container--default,.wf-form-field li.wf-option-select select,.wf-form-field li.wf-option-select select option,.wf-form-field li.wf-option-select .select2-container--default{font-size:0.9rem}}ul.wf-option li.wf-option-select .wf-option-select-option,ul.wf-option li.wf-option-select .select2-container--default,ul.wf-option li.wf-option-select .select2-container--default .select2-selection--single,.wf-form-field li.wf-option-select .wf-option-select-option,.wf-form-field li.wf-option-select .select2-container--default,.wf-form-field li.wf-option-select .select2-container--default .select2-selection--single{text-align:left;height:40px;border-radius:0;border:0;background-color:#fff;box-shadow:1px 1px 1px 2px rgba(215,215,215,0.35)}ul.wf-option li.wf-option-select .wf-option-select-option .select2-selection__rendered,ul.wf-option li.wf-option-select .select2-container--default .select2-selection__rendered,ul.wf-option li.wf-option-select .select2-container--default .select2-selection--single .select2-selection__rendered,.wf-form-field li.wf-option-select .wf-option-select-option .select2-selection__rendered,.wf-form-field li.wf-option-select .select2-container--default .select2-selection__rendered,.wf-form-field li.wf-option-select .select2-container--default .select2-selection--single .select2-selection__rendered{color:#333;line-height:40px}ul.wf-option li.wf-option-select .wf-option-select-option .select2-selection__arrow,ul.wf-option li.wf-option-select .select2-container--default .select2-selection__arrow,ul.wf-option li.wf-option-select .select2-container--default .select2-selection--single .select2-selection__arrow,.wf-form-field li.wf-option-select .wf-option-select-option .select2-selection__arrow,.wf-form-field li.wf-option-select .select2-container--default .select2-selection__arrow,.wf-form-field li.wf-option-select .select2-container--default .select2-selection--single .select2-selection__arrow{height:38px}ul.wf-option li.wf-option-select .wf-option-select-option.select2-container--disabled .select2-selection__rendered,ul.wf-option li.wf-option-select .select2-container--default.select2-container--disabled .select2-selection__rendered,ul.wf-option li.wf-option-select .select2-container--default .select2-selection--single.select2-container--disabled .select2-selection__rendered,.wf-form-field li.wf-option-select .wf-option-select-option.select2-container--disabled .select2-selection__rendered,.wf-form-field li.wf-option-select .select2-container--default.select2-container--disabled .select2-selection__rendered,.wf-form-field li.wf-option-select .select2-container--default .select2-selection--single.select2-container--disabled .select2-selection__rendered{color:#aaa}ul.wf-option li.wf-option-select .select2-container--default .select2-selection--single .select2-selection__arrow b,.wf-form-field li.wf-option-select .select2-container--default .select2-selection--single .select2-selection__arrow b{border-color:#333 transparent transparent}ul.wf-option li.wf-option-select .select2-container--default.select2-container--open .select2-selection--single .select2-selection__arrow b,.wf-form-field li.wf-option-select .select2-container--default.select2-container--open .select2-selection--single .select2-selection__arrow b{border-color:transparent transparent #333}ul.wf-option.wf-option-token select,.wf-form-field.wf-option-token select{width:240px}@media (min-width: 768px){ul.wf-option.wf-option-token select,.wf-form-field.wf-option-token select{width:280px}}@media (min-width: 992px){ul.wf-option.wf-option-token select,.wf-form-field.wf-option-token select{width:320px}}ul.wf-option.wf-option-token .select2-container--default,ul.wf-option.wf-option-token .select2-container--default .select2-selection--multiple,.wf-form-field.wf-option-token .select2-container--default,.wf-form-field.wf-option-token .select2-container--default .select2-selection--multiple{border-color:#e2e2e2}ul.wf-option.wf-option-token .select2-container--default .select2-selection__choice,ul.wf-option.wf-option-token .select2-container--default .select2-selection--multiple .select2-selection__choice,.wf-form-field.wf-option-token .select2-container--default .select2-selection__choice,.wf-form-field.wf-option-token .select2-container--default .select2-selection--multiple .select2-selection__choice{background-color:#fff;border-color:#e2e2e2;padding:0.5rem}ul.wf-option.wf-option-token .select2-container--default .select2-search__field,ul.wf-option.wf-option-token .select2-container--default .select2-selection--multiple .select2-search__field,.wf-form-field.wf-option-token .select2-container--default .select2-search__field,.wf-form-field.wf-option-token .select2-container--default .select2-selection--multiple .select2-search__field{margin-right:5px;margin-top:5px;padding:0.5rem 0}.wf-option-sub{padding-left:2rem !important;margin-left:30px !important}.wf-select2-suppress-dropdown .select2-results,.wf-select2-suppress-dropdown .select2-dropdown{display:none}.wf-options-controls{direction:ltr;background:#ffffff;border-bottom:1px solid #e2e2e2;position:absolute;left:160px;right:0px;top:46px;z-index:900;padding-left:15px;padding-right:15px}@media (min-width: 616px){.wf-options-controls{position:fixed}}.wf-options-controls .wf-block{margin:0}@media (min-width: 782px){.wf-options-controls .wf-block{margin:0.5rem 0}}.sticky-menu .wf-options-controls{top:32px}.folded .wf-options-controls{left:36px}@media only screen and (max-width: 960px){.auto-fold .wf-options-controls{left:36px}}.rtl .wf-options-controls{right:160px;left:0px}.rtl .folded .wf-options-controls{right:36px}@media only screen and (max-width: 960px){.rtl .auto-fold .wf-options-controls{right:36px}}@media screen and (max-width: 782px){.wf-options-controls,.folded .wf-options-controls,.auto-fold .wf-options-controls,.rtl .wf-options-controls,.rtl .folded .wf-options-controls,.rtl .auto-fold .wf-options-controls{left:-10px;right:0px}}.wf-options-controls-spacer{height:45px}@media (min-width: 782px){.wf-options-controls-spacer{height:75px}}.sticky-menu .wf-options-controls-spacer{top:61px}.wordfence .select2-container .select2-selection--single{border:1px solid #dadada;font-weight:normal;font-size:0.8rem}#wf-notices{margin-top:15px}#wf-notices .wf-admin-notice{margin-left:0px;margin-right:0px}.wf-success-text,.wf-notice-text{display:inline-block;vertical-align:middle;line-height:1.3;font-size:16px;font-weight:bold;font-style:italic}.wf-notice{margin:12px 0;padding:8px;background-color:#ffffe0;border:1px solid #ffd975;border-width:1px 1px 1px 10px}.wf-notice-text{color:#6d798c}.wf-success{margin:12px 0;padding:8px;background-color:#ffffff;border:1px solid #16bc9b;border-width:1px 1px 1px 10px}.wf-success-text{color:#11967a}.wf-premium-callout{border:1px solid #dfdfdf;background-color:#ffffff;padding:16px;margin:20px 0 0;text-align:center}.wf-premium-callout ul{margin:8px 0;padding:0 0 0 15px}.wf-premium-callout ul li{list-style-type:disc;margin:0;padding:0}.wf-premium-callout .center{text-align:center;margin:0}.wf-premium-callout .button-primary{text-align:center;text-transform:uppercase;font-weight:bold;background-color:#00709e}#wfLiveTrafficOverlayAnchor::after{position:absolute;z-index:3002;top:0;right:0;width:0;height:0;background:rgba(241,241,241,0.6);content:'';opacity:0;-webkit-transition:opacity 0.5s,width 0.1s 0.5s,height 0.1s 0.5s;-o-transition:opacity 0.5s,width 0.1s 0.5s,height 0.1s 0.5s;transition:opacity 0.5s,width 0.1s 0.5s,height 0.1s 0.5s}.wordfenceLiveActivityPaused #wfLiveTrafficOverlayAnchor::after{width:100%;height:100%;opacity:1;-webkit-transition:opacity 0.5s;-o-transition:opacity 0.5s;transition:opacity 0.5s}#wordfenceLiveActivityDisabled{background:#fff;border-left:4px solid #ffb900;-webkit-box-shadow:0 1px 1px 0 rgba(0,0,0,0.1);box-shadow:0 1px 1px 0 rgba(0,0,0,0.1);margin-bottom:12px;padding:1px 13px}#wfLiveTrafficDisabledMessage{display:none;position:fixed;z-index:3003;left:0;width:100%;top:50%;transform:translateY(-50%);text-align:center;color:#666666;opacity:0;-webkit-transition:opacity 0.5s,width 0.1s 0.5s,height 0.1s 0.5s;-o-transition:opacity 0.5s,width 0.1s 0.5s,height 0.1s 0.5s;transition:opacity 0.5s,width 0.1s 0.5s,height 0.1s 0.5s}#wfLiveTrafficDisabledMessage h2{background-color:#00709e;color:#fff;overflow:hidden;max-width:350px;margin:0 auto;padding:20px;font-size:2.0em}#wfLiveTrafficDisabledMessage h2 small{font-size:0.5em;font-weight:normal;margin-top:12px;display:block}.wordfenceLiveActivityPaused #wfLiveTrafficDisabledMessage{display:block;opacity:1;-webkit-transition:opacity 0.5s;transition:opacity 0.5s}.wf-live-activity{position:relative;margin:20px 0 10px 0;padding:0.75rem;box-sizing:border-box;background:#FFFCEF;box-shadow:0 0 0 1px rgba(153,155,135,0.5),0 1px 2px #e8f3e0}.wf-live-activity .wf-live-activity-inner{width:100%;box-sizing:border-box;position:relative}.wf-live-activity .wf-live-activity-inner .wf-live-activity-content{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:justify;justify-content:flex-start}.wf-live-activity .wf-live-activity-inner .wf-live-activity-content .wf-live-activity-title{color:#888888;font-size:0.85rem;font-weight:bold;padding-right:0.5rem}.wf-live-activity .wf-live-activity-inner .wf-live-activity-content .wf-live-activity-message{font-size:0.80rem;color:#000000}.wf-live-activity .wf-live-activity-inner .wf-live-activity-state{position:absolute;top:0px;right:0px;bottom:0px;left:0px;background:rgba(255,252,239,0.9);display:none;-ms-flex-align:center;align-items:center;-ms-flex-pack:justify;justify-content:center;z-index:3001;-webkit-transition:opacity 0.5s,width 0.1s 0.5s,height 0.1s 0.5s;-o-transition:opacity 0.5s,width 0.1s 0.5s,height 0.1s 0.5s;transition:opacity 0.5s,width 0.1s 0.5s,height 0.1s 0.5s}.wordfenceLiveActivityPaused .wf-live-activity .wf-live-activity-inner .wf-live-activity-state{display:-ms-flexbox;display:flex;opacity:1;-webkit-transition:opacity 0.5s;-webkit-transition:opacity 0.5s;-o-transition:opacity 0.5s;transition:opacity 0.5s}.wordfence .wordfenceScanButton{margin:20px 0 20px 0}.wordfence .wordfenceScanButton input.button-wf-grey{background:#EFEFEF url(../images/button-grad-grey.png) repeat-x scroll left top;border-color:#EFEFEF}.wordfence .wordfenceScanButton table td{vertical-align:top}.wordfence .wordfenceScanButton .button-primary{text-align:center;text-transform:uppercase;font-weight:bold;background-color:#00709E;height:44px;line-height:44px;padding:0px 20px}table.wfSummaryParent{font-family:sans-serif;font-size:14px;color:#000;z-index:9}table.wfSummaryParent td{vertical-align:top;padding:0;margin:0}table.wfSummaryParent table.wfSummaryChild th{font-weight:bold;text-align:right;font-family:Georgia,Times New Roman,Times,serif;color:#000;padding:5px 10px 5px 0;border-top:1px solid #CCC}table.wfSummaryParent table.wfSummaryChild td{font-weight:normal;text-align:left;padding:5px 0 5px 0;border-top:1px solid #CCC}table.wfSummaryParent table.wfSC1 td{width:300px;padding:0 25px 10px 0}table.wfSummaryParent table.wfSC2 th{width:80px}table.wfSummaryParent table.wfSC2 td{width:100px}table.wfSummaryParent table.wfSC3 th{width:80px}table.wfSummaryParent table.wfSC3 td{width:250px}table.wfSummaryParent th.wfHead{font-size:22px;font-family:Georgia,Times New Roman,Times,serif;font-style:italic;color:#555;font-weight:bold;text-align:left;padding:20px 0 20px 0;-webkit-font-smoothing:antialiased}.wf-issues-table{table-layout:fixed;width:100%}div.wfIssue{width:100%}div.wfIssue table.wfIssue td{padding:2px;margin:0;border-width:0;text-align:left;width:100%}div.wfIssue table.wfIssue th{padding:2px;margin:0;font-weight:bold;text-align:left;color:#777;white-space:nowrap}div.wfIssue table.wfIssueLinks td{border-width:0;text-align:left;padding-right:10px}div.wfIssue h2{margin:0 0 5px 0;padding:0;font-size:0.9rem}@media (min-width: 768px){div.wfIssue h2{font-size:1.05rem}}.wfIssueOptions{border-top:1px solid #CCC;padding:10px}.wfIssueOptions h3{font-size:0.8rem;margin:0}@media (min-width: 768px){.wfIssueOptions h3{display:inline-block}}.wfIssueOptions ul{margin-bottom:0;padding-left:0;list-style:none;display:-webkit-flex;display:flex;-webkit-align-items:flex-start;align-items:flex-start;-webkit-align-content:flex-start;align-content:flex-start;-webkit-justify-content:flex-start;justify-content:flex-start;-webkit-flex-wrap:nowrap;flex-wrap:nowrap;-webkit-flex-direction:column;flex-direction:column}@media (min-width: 768px){.wfIssueOptions ul{-webkit-flex-direction:row;flex-direction:row;-webkit-align-items:center;align-items:center}}.wfIssueOptions ul>li>a{position:relative;display:block;padding:8px 12px/2}.wfIssueOptions ul>li>a:hover,.wfIssueOptions ul>li>a:focus{text-decoration:none;background-color:#e2e2e2}.wfIssueOptions a{margin-left:10px}.wfIssueOptions strong{float:left;display:block;width:60px}.wfIssueOptions p{margin:6px 0px 0px}.wfProbSev1,.wfProbSev2,.wfAjaxLight128,.wfResolved{width:128px;height:128px;border:0;margin:0 auto;background-repeat:no-repeat;background-position:0 0;text-decoration:none;display:block}.wfProbSev1{background-image:url(../images/icons/error128.png)}.wfProbSev2{background-image:url(../images/icons/warning128.png)}.wfResolved{background-image:url(../images/icons/tick128.png)}.wfIssuesContainer{width:100%;display:none}.wfIssuesContainer p{max-width:550px}.wfALogTime{color:#999}.wfALogMailLink,.wfALogViewLink{display:block;position:absolute;padding:0 0 0 18px;margin:0;right:10px;top:0;background-repeat:no-repeat;font-weight:normal}.wfALogMailLink{background-image:url(../images/icons/email_go.png)}.wfALogViewLink{background-image:url(../images/icons/magnifier.png)}#wfActivity{position:relative}.consoleHead{position:relative;padding:0 0 0 3px;font-weight:bold;width:100%}.consoleHeadText{margin-bottom:4px;font-size:18px;font-family:Georgia,Times New Roman,Times,serif;color:#555;font-weight:bold;-webkit-font-smoothing:antialiased}.consoleFooter{position:relative}.consoleOuter{width:100%}.consoleInner{height:116px;overflow:auto;z-index:1}.bevelDiv1{border:1px solid #EFEFEF}.bevelDiv2{border:1px solid #AAA}.bevelDiv3{background-color:#ffffed;padding:5px;font-family:Roboto,Helvetica Neue,Helvetica,Arial,sans-serif;-webkit-font-smoothing:antialiased}.wfSecure{color:#0A0;font-weight:bold}.wfSummaryLine{display:-webkit-flex;display:flex;-webkit-align-items:stretch;align-items:stretch;-webkit-align-content:flex-start;align-content:flex-start;-webkit-justify-content:space-between;justify-content:space-between;-webkit-flex-wrap:nowrap;flex-wrap:nowrap;-webkit-flex-direction:column;flex-direction:column}@media (min-width: 768px){.wfSummaryLine{-webkit-flex-direction:row;flex-direction:row}}.wfSummaryLine .wfSummaryDate{padding-left:3px}.wfSummaryLine .wfSummaryMsg{padding-left:3px;-webkit-flex-grow:1;flex-grow:1;min-width:0}.wfSummaryLoading{width:16px;height:11px;background-image:url("../images/icons/ajaxScan.gif")}.wfSummaryBad,.wfSummaryErr{color:#930000}.wfSummaryOK{color:#11967a}.wfSummaryIgnored{color:#a87302}.wfClear{content:".";display:block;height:0;width:0;line-height:0;clear:both;visibility:hidden}.wfSummaryFinal{-webkit-font-smoothing:antialiased;font-weight:bold;color:#555}.wfStartScanButton{text-align:center}.wordfenceScanHelp{border:1px solid #CCC;padding:4px}.wf-scan-no-issues{font-size:1.25rem;color:#11967a}.wf-scan-severity{position:relative;width:10px}@media (min-width: 768px){.wf-scan-severity{width:144px}}.wf-scan-severity-1,.wf-scan-severity-2{position:absolute;top:0px;right:0px;bottom:0px;left:0px}.wf-scan-severity-1{background-color:#c10000}.wf-scan-severity-2{background-color:#ffd10a}.scan-schedule{border-collapse:collapse;border-spacing:0}.scan-schedule tr:first-of-type th{padding-top:0}.scan-schedule td{padding:0}.scan-schedule th{padding:1.5rem 0.5rem 0.75rem 0;font-size:1rem;text-align:left}@media (min-width: 768px){.scan-schedule th{padding:0 0.5rem 0 0;font-size:0.8125rem;text-align:center}}.next-scan{font-size:1em;display:block;position:relative;width:7em;height:7em;background-color:#fff;border-radius:0.6em;box-shadow:0 1px 0 rgba(189,189,189,0.6);overflow:hidden}.next-scan *{display:block;width:100%;font-size:1em;font-weight:bold;font-style:normal;text-align:center}.next-scan strong{position:absolute;top:0;padding:0.4em 0;color:#fff;background-color:#00709E;box-shadow:0 2px 0 #00709E}.next-scan em{position:absolute;bottom:0.3em;color:#00709E}.next-scan span{width:100%;font-size:2.8em;padding-top:1.15em;color:#2f2f2f}#wf-lt-listings .wfActEvent{padding-left:15px;border-left:5px solid #cccccc}#wf-lt-listings .wfActEvent.wfHuman{border-left:5px solid #16bc9b}#wf-lt-listings .wfActEvent.wfActionBlocked{border-left:5px solid #d03935}#wf-lt-listings .wfActEvent.wfNotice{border-left:5px solid #c10000}#wf-lt-listings .wfActEvent.wfWarning,#wf-lt-listings .wfActEvent.wf404{border-left:5px solid #ffd10a}#wf-lt-listings .wfActEvent:hover{background-color:#fff9e9 !important}.wfActEvent.wf-live-traffic-filter{padding-left:0;padding-right:0;float:right;border-width:0px;-webkit-align-items:baseline;align-items:baseline;-webkit-align-content:flex-start;align-content:flex-start;-webkit-justify-content:flex-start;justify-content:flex-start}@media (min-width: 768px){.wfActEvent.wf-live-traffic-filter{-webkit-flex-direction:row;flex-direction:row}}.wfActEvent.wf-live-traffic-filter h2{margin:0;padding-bottom:0.5rem}@media (min-width: 768px){.wfActEvent.wf-live-traffic-filter h2{padding-bottom:0;padding-right:0.5rem}}#wf-lt-advanced-filters{padding-left:0;padding-right:0;overflow:hidden}.wf-live-traffic-filter-detail{display:-webkit-flex;display:flex;-webkit-align-items:flex-start;align-items:flex-start;-webkit-align-content:flex-start;align-content:flex-start;-webkit-justify-content:flex-start;justify-content:flex-start;-webkit-flex-direction:column;flex-direction:column}@media (min-width: 768px){.wf-live-traffic-filter-detail{-webkit-flex-direction:row;flex-direction:row}.wf-live-traffic-filter-detail *{-webkit-flex-grow:1;flex-grow:1}}.wf-live-traffic-filter-detail .wf-live-traffic-filter-item{display:-webkit-flex;display:flex;-webkit-align-items:center;align-items:center;-webkit-align-content:flex-start;align-content:flex-start;-webkit-justify-content:flex-start;justify-content:flex-start;-webkit-flex-direction:row;flex-direction:row}.wf-live-traffic-filter-detail .wf-live-traffic-filter-item .wf-live-traffic-filter-remove{margin-left:0.5rem;font-size:1.5rem;color:#333}.wf-live-traffic-filter-detail .wf-live-traffic-filter-item .wf-live-traffic-filter-item-parameters{display:-webkit-flex;display:flex;-webkit-align-items:flex-start;align-items:flex-start;-webkit-align-content:flex-start;align-content:flex-start;-webkit-justify-content:flex-start;justify-content:flex-start;-webkit-flex-direction:column;flex-direction:column}.wf-live-traffic-filter-detail .wf-live-traffic-filter-item .wf-live-traffic-filter-item-parameters div{padding:0.25rem 0}.wf-live-traffic-filter-detail .wf-live-traffic-filter-item .wf-live-traffic-filter-item-parameters select{font-size:0.75rem !important}@media (min-width: 768px){.wf-live-traffic-filter-detail .wf-live-traffic-filter-item .wf-live-traffic-filter-item-parameters{-webkit-flex-direction:row;flex-direction:row;-webkit-align-items:center;align-items:center}.wf-live-traffic-filter-detail .wf-live-traffic-filter-item .wf-live-traffic-filter-item-parameters div{padding:0}.wf-live-traffic-filter-detail .wf-live-traffic-filter-item .wf-live-traffic-filter-item-parameters select{font-size:1rem !important}}.wf-filtered-traffic .wf-filtered-traffic-hits{font-size:1.75rem;color:#999999;margin-top:10px}#wf-live-traffic{position:relative;overflow:visible}#wf-live-traffic-legend{white-space:nowrap;background-color:#fff;padding:12px 0px;float:left}#wf-live-traffic-legend.sticky{position:fixed;top:10px;right:auto;left:10px;z-index:2000;box-shadow:0px 0px 5px rgba(0,0,0,0.5);padding-left:20px}@media (min-width: 768px){#wf-live-traffic-legend.sticky{top:42px;left:182px}}#wf-live-traffic-legend-placeholder{display:none;padding:12px}#wf-live-traffic-legend-placeholder.sticky{display:block}#wf-live-traffic-legend ul{margin:0;padding:0}#wf-live-traffic-legend ul:before,#wf-live-traffic-legend ul:after{content:" ";display:table}#wf-live-traffic-legend ul:after{clear:both}#wf-live-traffic-legend ul li{margin:0 20px 0px 0px;padding:0;position:relative;float:left;font-size:11.5px}@media (min-width: 768px){#wf-live-traffic-legend ul li{font-size:13px}}#wf-live-traffic-legend ul li+li{margin-left:8px}#wf-live-traffic-legend ul li:before,.wf-live-traffic-hit-type:before{content:'';display:inline-block;margin:3px 6px 0 0;width:12px;height:12px;background-color:#CCCCCC;border-radius:10px;vertical-align:-2px}#wf-live-traffic-legend ul li.wfHuman:before,.wf-live-traffic-hit-type.wfHuman:before{background-color:#16bc9b}#wf-live-traffic-legend ul li.wfNotice:before,.wf-live-traffic-hit-type.wfNotice:before,#wf-live-traffic-legend ul li.wf404:before,.wf-live-traffic-hit-type.wf404:before{background-color:#ffd10a}#wf-live-traffic-legend ul li.wfBlocked:before,.wf-live-traffic-hit-type.wfBlocked:before,#wf-live-traffic-legend ul li.wfActionBlocked:before,.wf-live-traffic-hit-type.wfActionBlocked:before{background-color:#d03935}.wfTimeAgo{font-family:Georgia,Times New Roman,Times,serif;color:#999;font-weight:bold;font-style:italic}.wfActEvent{border-bottom:1px solid #CCC;padding:10px 20px;overflow:auto}.wf-pad-small{margin:8px 0}#wf-lt-listings{margin:0 0 0}#wf-lt-listings a{cursor:pointer;text-decoration:none}#wf-lt-listings a:hover{text-decoration:underline}#wf-lt-listings a.button,#wf-lt-listings a.wf-btn{text-decoration:none}[class*="span"]{float:left;min-height:1px;margin-left:30px}.highlighted,.highlighted td,#wf-live-traffic .wf-striped-table .highlighted td{-webkit-animation-duration:1s;animation-duration:1s;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out}@-moz-keyframes highlighted{0%{opacity:0;background-color:#ffeaa0}100%{opacity:1;background-color:#ffffff}}@-webkit-keyframes highlighted{0%{opacity:0;background-color:#ffeaa0}100%{opacity:1;background-color:#ffffff}}@keyframes highlighted{0%{opacity:0;background-color:#ffeaa0}100%{opacity:1;background-color:#ffffff}}@-moz-keyframes highlightedBlocked{0%{opacity:0;background-color:#ffeaa0}100%{opacity:1;background-color:#fff6f6}}@-webkit-keyframes highlightedBlocked{0%{opacity:0;background-color:#ffeaa0}100%{opacity:1;background-color:#fff6f6}}@keyframes highlightedBlocked{0%{opacity:0;background-color:#ffeaa0}100%{opacity:1;background-color:#fff6f6}}.highlighted,.highlighted td,#wf-live-traffic .wf-striped-table .highlighted td{-webkit-animation-name:highlighted;animation-name:highlighted}.highlighted.wfActionBlocked,.highlighted td.wfActionBlocked,#wf-live-traffic .wf-striped-table .highlighted td.wfActionBlocked{-webkit-animation-name:highlightedBlocked;animation-name:highlightedBlocked}#wf-lt-preset-filters{min-width:250px}#wf-lt-advanced-filters>table{width:100%}#wf-lt-advanced-filters>table>tr>td{vertical-align:top}.wf-lt-url{white-space:nowrap}.wf-live-traffic-filter label{font-weight:normal;font-style:italic}#wf-live-traffic .wf-striped-table th,#wf-live-traffic .wf-striped-table td{padding:.5rem .6rem}#wf-live-traffic .wf-striped-table th{white-space:nowrap}#wf-live-traffic .wf-striped-table tbody tr:hover>td{background-color:#e7f5ff}#wf-live-traffic .wf-live-traffic-show-details{font-size:1.5rem;color:#9a9a9a;text-align:center;cursor:hand}#wf-live-traffic .wf-live-traffic-show-details .wf-ion-eye-disabled{display:none}#wf-live-traffic .wf-details-open .wf-live-traffic-show-details .wf-ion-eye-disabled{display:inline-block}#wf-live-traffic .wf-details-open .wf-live-traffic-show-details .wf-ion-eye{display:none}#wf-live-traffic.wf-live-traffic-display-expanded .wf-summary-row{display:none}#wf-live-traffic.wf-live-traffic-display-expanded .wf-live-traffic-activity-detail h2{display:none}#wf-live-traffic.wf-live-traffic-display-expanded .wf-striped-table thead{display:none}#wf-live-traffic .wf-details-hidden .wf-live-traffic-details,#wf-live-traffic .wf-details-visible .wf-live-traffic-details{transition:padding 200ms}#wf-live-traffic .wf-details-hidden .wf-live-traffic-details{padding:0 .6rem}#wf-live-traffic .wf-details-visible .wf-live-traffic-details,#wf-live-traffic.wf-live-traffic-display-expanded .wf-details-hidden .wf-live-traffic-details{padding:.8rem .6rem}#wf-live-traffic.wf-live-traffic-display-expanded .wf-details-hidden .wf-live-traffic-details{border-top:1px solid #e2e2e2}#wf-live-traffic .wf-details-hidden .wf-live-traffic-activity-detail-wrapper,#wf-live-traffic .wf-details-visible .wf-live-traffic-activity-detail-wrapper{transition:opacity 200ms, max-height 200ms ease-out;overflow:hidden}#wf-live-traffic .wf-details-hidden .wf-live-traffic-activity-detail-wrapper{opacity:0;max-height:0px}#wf-live-traffic .wf-details-visible .wf-live-traffic-activity-detail-wrapper,#wf-live-traffic.wf-live-traffic-display-expanded .wf-details-hidden .wf-live-traffic-activity-detail-wrapper{opacity:1;max-height:800px}#wf-live-traffic .wf-block-ip-btn{display:none}#wf-live-traffic-group-by{width:100%}#wf-live-traffic-no-group-by{overflow-x:auto}@media (max-width: 1330px){#wf-live-traffic .wf-summary-row{display:none}#wf-live-traffic .wf-live-traffic-activity-detail h2{display:none}#wf-live-traffic .wf-striped-table thead{display:none}#wf-live-traffic .wf-details-hidden .wf-live-traffic-details{padding:0.8rem 0.6rem}#wf-live-traffic .wf-details-hidden .wf-live-traffic-details{border-top:1px solid #e2e2e2}#wf-live-traffic .wf-details-hidden .wf-live-traffic-activity-detail-wrapper{opacity:1;max-height:300px}#wf-live-traffic-no-group-by .wf-striped-table{table-layout:fixed}}.wf-live-traffic-activity-type{text-align:center;float:left;width:65px}@media (min-width: 768px){.wf-live-traffic-activity-type{width:85px}}@media (min-width: 992px){.wf-live-traffic-activity-type{width:105px}}@media (min-width: 1200px){.wf-live-traffic-activity-type{width:125px}}.wf-live-traffic-activity-type .wf-live-traffic-type-icon{font-size:3rem;color:#CCCCCC}@media (min-width: 768px){.wf-live-traffic-activity-type .wf-live-traffic-type-icon{font-size:4rem}}@media (min-width: 992px){.wf-live-traffic-activity-type .wf-live-traffic-type-icon{font-size:5rem}}@media (min-width: 1200px){.wf-live-traffic-activity-type .wf-live-traffic-type-icon{font-size:6rem}}.wf-live-traffic-activity-type .wf-live-traffic-type-icon.wf-icon-human{color:#16bc9b}.wf-live-traffic-activity-type .wf-live-traffic-type-icon.wf-icon-warning{color:#ffd10a}.wf-live-traffic-activity-type .wf-live-traffic-type-icon.wf-icon-blocked{color:#d03935}.wf-live-traffic-activity-detail{margin:0;margin-left:90px}@media (min-width: 768px){.wf-live-traffic-activity-detail{margin-left:110px}}@media (min-width: 992px){.wf-live-traffic-activity-detail{margin-left:130px}}@media (min-width: 1200px){.wf-live-traffic-activity-detail{margin-left:150px}}.wf-live-traffic-activity-detail h2{margin:0px 0px .5rem}.wf-live-traffic-actions{margin:.5rem 0px 0px}#wf-live-traffic-util-overlay-wrapper{position:fixed;top:32px;right:0px;bottom:0px;left:0px;background-color:rgba(0,0,0,0.5);z-index:3000}#wf-live-traffic-util-overlay-wrapper .wf-live-traffic-util-overlay{position:fixed;top:32px;right:0px;bottom:0px;left:auto;max-width:800px;background-color:#ffffff;overflow:auto}#wf-live-traffic-util-overlay-wrapper .wf-live-traffic-util-overlay-header,#wf-live-traffic-util-overlay-wrapper .wf-live-traffic-util-overlay-body{padding:1rem 1.5rem}#wf-live-traffic-util-overlay-wrapper .wf-live-traffic-util-overlay-body{padding:1rem 1.5rem 1rem 3rem}#wf-live-traffic-util-overlay-wrapper .wf-live-traffic-util-overlay-header{background-color:#e9e9e9;border:1px solid #ffd10a;border-width:10px 0px}#wf-live-traffic-util-overlay-wrapper .wf-live-traffic-util-overlay-body .wf-flex-row{margin:0.6rem 0}#wf-live-traffic-util-overlay-wrapper .wf-live-traffic-actions{display:none}#wf-live-traffic-util-overlay-wrapper .wf-live-traffic-util-overlay-close{position:absolute;top:20px;right:16px;font-size:20px;cursor:pointer}#wf-live-traffic-util-overlay-wrapper .wf-live-traffic-activity-detail div{margin:0px 0px 0.6rem}#wf-live-traffic-util-overlay-wrapper .wf-block-ip-btn{display:inline-block}#wf-live-traffic-options .wf-block-list .wf-option-text .wf-option-title{width:30%}.wf-recent-traffic-table{font-size:.7rem}.wf-recent-traffic-table th,.wf-recent-traffic-table td{vertical-align:top}.wf-recent-traffic-table th{text-align:left;white-space:nowrap}.wf-recent-traffic-table td{word-wrap:break-word;word-break:break-all}.wf-recent-traffic-table .wf-recent-traffic-table-row-border td div{border-top:1px solid #e2e2e2;margin:10px 0}.wf-live-traffic-none{padding:0.5rem 0.6rem}.wf-flag-unspecified{width:16px;height:16px}.wf-flag-unspecified path{fill:#9f9fa0}table.block-ranges-table{border-collapse:collapse;margin:10px 0 0}table.block-ranges-table tr td{border:1px solid #CCC;border-width:1px 0;padding:10px 0 12px 0}#input-wafStatus,#input-wafStatus option,.select2-container--default{font-size:0.7rem;font-weight:bold}@media (min-width: 768px){#input-wafStatus,#input-wafStatus option,.select2-container--default{font-size:0.8rem}}@media (min-width: 992px){#input-wafStatus,#input-wafStatus option,.select2-container--default{font-size:0.9rem}}.select2-results__options{border-top:1px solid #e2e2e2}.wafStatus-enabled,.wafStatus-learning-mode,.wafStatus-disabled,.wafStatus-enabled.select2-container--default .select2-selection--single,.wafStatus-learning-mode.select2-container--default .select2-selection--single,.wafStatus-disabled.select2-container--default .select2-selection--single{height:40px;border-radius:0;border:0;background-color:#fff;box-shadow:1px 1px 1px 2px rgba(215,215,215,0.35)}.wafStatus-enabled .select2-selection__rendered,.wafStatus-learning-mode .select2-selection__rendered,.wafStatus-disabled .select2-selection__rendered,.wafStatus-enabled.select2-container--default .select2-selection--single .select2-selection__rendered,.wafStatus-learning-mode.select2-container--default .select2-selection--single .select2-selection__rendered,.wafStatus-disabled.select2-container--default .select2-selection--single .select2-selection__rendered{color:#333;line-height:40px}.wafStatus-enabled .select2-selection__arrow,.wafStatus-learning-mode .select2-selection__arrow,.wafStatus-disabled .select2-selection__arrow,.wafStatus-enabled.select2-container--default .select2-selection--single .select2-selection__arrow,.wafStatus-learning-mode.select2-container--default .select2-selection--single .select2-selection__arrow,.wafStatus-disabled.select2-container--default .select2-selection--single .select2-selection__arrow{height:38px}#waf-config-form .waf-config-label{font-size:1.3em}#waf-config-form .select2-container--default .select2-selection--single{padding:0.4rem;text-shadow:0 0 3px #000000;font-weight:bold}#waf-config-form .select2-container .select2-selection--single{height:auto}#waf-config-form .select2-container--default .select2-selection--single .select2-selection__arrow{height:100%;top:0}.wafStatus-enabled.select2-container--default .select2-selection--single .select2-selection__arrow b,.wafStatus-learning-mode.select2-container--default .select2-selection--single .select2-selection__arrow b,.wafStatus-disabled.select2-container--default .select2-selection--single .select2-selection__arrow b{border-color:#333 transparent transparent}.wafStatus-enabled.select2-container--default.select2-container--open .select2-selection--single .select2-selection__arrow b,.wafStatus-learning-mode.select2-container--default.select2-container--open .select2-selection--single .select2-selection__arrow b,.wafStatus-disabled.select2-container--default.select2-container--open .select2-selection--single .select2-selection__arrow b{border-color:transparent transparent #333}#waf-learning-mode-grace-period{display:-webkit-flex;display:flex;-webkit-align-items:center;align-items:center;-webkit-justify-content:flex-start;justify-content:flex-start;-webkit-flex-direction:row;flex-direction:row}#waf-learning-mode-grace-period span{padding:0 0.5rem 0 1rem}#waf-learning-mode-grace-period input{width:auto}#whitelist-form{padding-top:0.5rem}#whitelist-form .select2-container--default .select2-selection--single{display:block;width:100%;height:38px;padding:.5rem 1.25rem;font-size:14px;line-height:1.42857;color:#2b2b2b;background-color:#fff;background-image:none;border:1px solid #ddd;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);-webkit-transition:border-color ease-in-out 0.15s,box-shadow ease-in-out 0.15s;-o-transition:border-color ease-in-out 0.15s,box-shadow ease-in-out 0.15s;transition:border-color ease-in-out 0.15s,box-shadow ease-in-out 0.15s}#whitelist-form .select2-container--default .select2-selection--single .select2-selection__rendered{color:#2b2b2b;line-height:inherit}#whitelist-form .select2-container--default .select2-selection--single .select2-selection__arrow{height:38px}#whitelist-form-separator{margin:1rem 0}#whitelist-table-controls{margin-bottom:0.5rem}#whitelist-table-controls .select2-container--default{text-align:left !important}#whitelist-table-controls .wf-select-group{-webkit-justify-content:flex-end !important;justify-content:flex-end !important}.whitelist-table-container{overflow-x:auto}table.whitelist-table .whitelist-edit{display:none}table.whitelist-table .edit-mode .whitelist-display{display:none}table.whitelist-table .edit-mode .whitelist-edit{display:block}table.whitelist-table .edit-mode span.whitelist-edit,table.whitelist-table .edit-mode input.whitelist-edit{display:inline}.wf-bulk-action{margin:12px 0}tr.wf-table-filters input{max-width:120px}.wf-waf-status-disabled{padding:2rem 0}.wf-block .wf-block-content .wf-block-labeled-value.wf-waf-status .wf-block-labeled-value-value{padding-top:0}.wf-block .wf-block-content .wf-block-labeled-value.wf-waf-status .wf-block-labeled-value-value .wf-fa{font-size:8rem}.wf-block .wf-block-content .wf-block-labeled-value.wf-waf-status .wf-block-labeled-value-value svg{width:160px}.wf-block .wf-block-content .wf-block-labeled-value.wf-waf-status .wf-block-labeled-value-label{font-size:1.3125rem;font-weight:300;line-height:1.5;padding-bottom:0}.wf-block .wf-block-content .wf-block-labeled-value.wf-waf-status-full-enabled{background-color:#00709e}.wf-block .wf-block-content .wf-block-labeled-value.wf-waf-status-full-enabled .wf-block-labeled-value-value{color:#ffffff}.wf-block .wf-block-content .wf-block-labeled-value.wf-waf-status-full-enabled .wf-block-labeled-value-label{color:#ffffff;padding:0}.wf-block .wf-block-content .wf-block-labeled-value.wf-waf-status-enabled .wf-block-labeled-value-value{color:#00709e}.wf-block .wf-block-content .wf-block-labeled-value.wf-waf-status-enabled .wf-block-labeled-value-value svg{fill:#00709e}.wf-block .wf-block-content .wf-block-labeled-value.wf-waf-status-enabled .wf-block-labeled-value-label{color:#00709e}.wf-block .wf-block-content .wf-block-labeled-value.wf-waf-status-learning-mode .wf-block-labeled-value-value,.wf-block .wf-block-content .wf-block-labeled-value.wf-waf-status-disabled .wf-block-labeled-value-value{color:#9f9fa0}.wf-block .wf-block-content .wf-block-labeled-value.wf-waf-status-learning-mode .wf-block-labeled-value-value svg,.wf-block .wf-block-content .wf-block-labeled-value.wf-waf-status-disabled .wf-block-labeled-value-value svg{fill:#9f9fa0}.wf-block .wf-block-content .wf-block-labeled-value.wf-waf-status-learning-mode .wf-block-labeled-value-label,.wf-block .wf-block-content .wf-block-labeled-value.wf-waf-status-disabled .wf-block-labeled-value-label{color:#9f9fa0}.wf-waf-coverage li{-webkit-align-items:flex-start !important;align-items:flex-start !important}.wf-waf-navigation .wf-block-navigation-option-content,.wf-blocking-status .wf-block-navigation-option-content{padding:1.5rem 0 1.5rem 1.0rem}.wf-waf-navigation .wf-block-navigation-option-content h4,.wf-blocking-status .wf-block-navigation-option-content h4{margin:0 0 0.25rem 0}.wf-waf-navigation .wf-block-navigation-option-content p,.wf-blocking-status .wf-block-navigation-option-content p{margin:0 0 0.45rem 0}.wf-blocking-status>li{-webkit-flex-grow:0 !important;flex-grow:0 !important;-webkit-flex-basis:66.66667% !important;flex-basis:66.66667% !important}.wf-blocking-status>li:first-of-type{-webkit-flex-basis:33.33333% !important;flex-basis:33.33333% !important}.wf-blocking-status-premium>li{-webkit-flex-grow:0 !important;flex-grow:0 !important;-webkit-flex-basis:33.33333% !important;flex-basis:33.33333% !important}ul.wf-option.wf-option-rate-limit *{-webkit-flex-grow:1;flex-grow:1}ul.wf-option.wf-option-rate-limit *:first-child{-webkit-flex-grow:0;flex-grow:0}ul.wf-option.wf-option-rate-limit>*:last-child{margin-right:1rem}ul.wf-option.wf-option-rate-limit .select2-container{min-width:100px}@media (min-width: 768px){ul.wf-option.wf-option-rate-limit .select2-container{min-width:140px}}@media (min-width: 992px){ul.wf-option.wf-option-rate-limit .select2-container{min-width:140px}}#waf-rules-wrapper tbody tr:nth-of-type(n+10){display:none}#waf-rules-wrapper.wf-show-all tbody tr:nth-of-type(n+10){display:table-row}#waf-rules-wrapper.wf-show-all #waf-show-all-rules{display:none}.wf-waf-backup-file-list{display:-webkit-flex;display:flex;-webkit-align-items:flex-start;align-items:flex-start;-webkit-justify-content:flex-start;justify-content:flex-start;-webkit-flex-direction:row;flex-direction:row}.wf-waf-backup-file-list>*{margin-left:0.5rem !important}.wf-waf-backup-file-list>*:first-child{margin-left:0 !important}#wf-option-loginSecurityEnabled .wf-option-subtitle{font-size:.875rem}.wf-scan-status-disabled{padding:2rem 0}.wf-block .wf-block-content .wf-block-labeled-value.wf-scan-status .wf-block-labeled-value-value{padding-top:0}.wf-block .wf-block-content .wf-block-labeled-value.wf-scan-status .wf-block-labeled-value-value .wf-fa{font-size:8rem}.wf-block .wf-block-content .wf-block-labeled-value.wf-scan-status .wf-block-labeled-value-value svg{width:160px}.wf-block .wf-block-content .wf-block-labeled-value.wf-scan-status .wf-block-labeled-value-label{font-size:1.3125rem;font-weight:300;line-height:1.5;padding-bottom:0}.wf-block .wf-block-content .wf-block-labeled-value.wf-scan-status-full-enabled{background-color:#00709e}.wf-block .wf-block-content .wf-block-labeled-value.wf-scan-status-full-enabled .wf-block-labeled-value-value{color:#ffffff}.wf-block .wf-block-content .wf-block-labeled-value.wf-scan-status-full-enabled .wf-block-labeled-value-label{color:#ffffff;padding:0}.wf-block .wf-block-content .wf-block-labeled-value.wf-scan-status-enabled .wf-block-labeled-value-value{color:#00709e}.wf-block .wf-block-content .wf-block-labeled-value.wf-scan-status-enabled .wf-block-labeled-value-value svg{fill:#00709e}.wf-block .wf-block-content .wf-block-labeled-value.wf-scan-status-enabled .wf-block-labeled-value-label{color:#00709e}.wf-block .wf-block-content .wf-block-labeled-value.wf-scan-status-disabled .wf-block-labeled-value-value{color:#9f9fa0}.wf-block .wf-block-content .wf-block-labeled-value.wf-scan-status-disabled .wf-block-labeled-value-value svg{fill:#9f9fa0}.wf-block .wf-block-content .wf-block-labeled-value.wf-scan-status-disabled .wf-block-labeled-value-label{color:#9f9fa0}.wf-scan-navigation .wf-block-navigation-option-content{padding:1.5rem 0 1.5rem 1.0rem}.wf-scan-navigation .wf-block-navigation-option-content h4{margin:0 0 0.25rem 0}.wf-scan-navigation .wf-block-navigation-option-content p{margin:0 0 0.45rem 0}#wf-scan-starter{-webkit-justify-content:center;justify-content:center}#wf-scan-starter:hover{cursor:unset}#wf-scan-starter:hover a{text-decoration:none}.wf-scanner-progress{display:-webkit-flex;display:flex;-webkit-align-items:flex-start;align-items:flex-start;-webkit-justify-content:space-between;justify-content:space-between;-webkit-flex-direction:row;flex-direction:row;-webkit-flex-wrap:nowrap;flex-wrap:nowrap;margin-top:0.5rem;margin-bottom:0.5rem;background:url("data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPCFET0NUWVBFIHN2ZyBQVUJMSUMgIi0vL1czQy8vRFREIFNWRyAxLjEvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvR3JhcGhpY3MvU1ZHLzEuMS9EVEQvc3ZnMTEuZHRkIj4KPHN2ZyB3aWR0aD0iMXB4IiBoZWlnaHQ9IjZweCIgdmlld0JveD0iMCAwIDEgNiIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4bWw6c3BhY2U9InByZXNlcnZlIj4KCTxyZWN0IHg9IjAiIHk9IjAiIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIGZpbGw9IiNkMWQxZDEiLz48cmVjdCB4PSIwIiB5PSI1IiB3aWR0aD0iMSIgaGVpZ2h0PSIxIiBmaWxsPSIjZDFkMWQxIi8+Cjwvc3ZnPg==");background-repeat:repeat-x;background-position:center 24px;overflow-x:auto;overflow-y:hidden}.wf-scanner-progress>.wf-scan-step{display:-webkit-flex;display:flex;-webkit-align-items:center;align-items:center;-webkit-justify-content:center;justify-content:center;-webkit-flex-direction:column;flex-direction:column;padding-left:0.5rem;padding-right:0.5rem}.wf-scanner-progress>.wf-scan-step:first-of-type{padding-left:0;background-image:url('data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4gPHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGRlZnM+PGxpbmVhckdyYWRpZW50IGlkPSJncmFkIiBncmFkaWVudFVuaXRzPSJvYmplY3RCb3VuZGluZ0JveCIgeDE9IjAuMCIgeTE9IjAuNSIgeDI9IjEuMCIgeTI9IjAuNSI+PHN0b3Agb2Zmc2V0PSIwJSIgc3RvcC1jb2xvcj0iI2ZmZmZmZiIvPjxzdG9wIG9mZnNldD0iNTAlIiBzdG9wLWNvbG9yPSIjZmZmZmZmIi8+PHN0b3Agb2Zmc2V0PSI1MSUiIHN0b3AtY29sb3I9IiNmZmZmZmYiIHN0b3Atb3BhY2l0eT0iMC4wIi8+PHN0b3Agb2Zmc2V0PSIxMDAlIiBzdG9wLWNvbG9yPSIjZmZmZmZmIiBzdG9wLW9wYWNpdHk9IjAuMCIvPjwvbGluZWFyR3JhZGllbnQ+PC9kZWZzPjxyZWN0IHg9IjAiIHk9IjAiIHdpZHRoPSIxMDAlIiBoZWlnaHQ9IjEwMCUiIGZpbGw9InVybCgjZ3JhZCkiIC8+PC9zdmc+IA==');background-size:100%;background-image:-webkit-gradient(linear, 0% 50%, 100% 50%, color-stop(0%, #ffffff),color-stop(50%, #ffffff),color-stop(51%, rgba(255,255,255,0)),color-stop(100%, rgba(255,255,255,0)));background-image:-moz-linear-gradient(left, #ffffff 0%,#ffffff 50%,rgba(255,255,255,0) 51%,rgba(255,255,255,0) 100%);background-image:-webkit-linear-gradient(left, #ffffff 0%,#ffffff 50%,rgba(255,255,255,0) 51%,rgba(255,255,255,0) 100%);background-image:linear-gradient(to right, #ffffff 0%,#ffffff 50%,rgba(255,255,255,0) 51%,rgba(255,255,255,0) 100%);background-repeat:no-repeat;background-position:left center}.wf-scanner-progress>.wf-scan-step:last-of-type{padding-right:0;background-image:url('data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4gPHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGRlZnM+PGxpbmVhckdyYWRpZW50IGlkPSJncmFkIiBncmFkaWVudFVuaXRzPSJvYmplY3RCb3VuZGluZ0JveCIgeDE9IjAuMCIgeTE9IjAuNSIgeDI9IjEuMCIgeTI9IjAuNSI+PHN0b3Agb2Zmc2V0PSIwJSIgc3RvcC1jb2xvcj0iI2ZmZmZmZiIgc3RvcC1vcGFjaXR5PSIwLjAiLz48c3RvcCBvZmZzZXQ9IjQ5JSIgc3RvcC1jb2xvcj0iI2ZmZmZmZiIgc3RvcC1vcGFjaXR5PSIwLjAiLz48c3RvcCBvZmZzZXQ9IjUwJSIgc3RvcC1jb2xvcj0iI2ZmZmZmZiIvPjxzdG9wIG9mZnNldD0iMTAwJSIgc3RvcC1jb2xvcj0iI2ZmZmZmZiIvPjwvbGluZWFyR3JhZGllbnQ+PC9kZWZzPjxyZWN0IHg9IjAiIHk9IjAiIHdpZHRoPSIxMDAlIiBoZWlnaHQ9IjEwMCUiIGZpbGw9InVybCgjZ3JhZCkiIC8+PC9zdmc+IA==');background-size:100%;background-image:-webkit-gradient(linear, 0% 50%, 100% 50%, color-stop(0%, rgba(255,255,255,0)),color-stop(49%, rgba(255,255,255,0)),color-stop(50%, #ffffff),color-stop(100%, #ffffff));background-image:-moz-linear-gradient(left, rgba(255,255,255,0) 0%,rgba(255,255,255,0) 49%,#ffffff 50%,#ffffff 100%);background-image:-webkit-linear-gradient(left, rgba(255,255,255,0) 0%,rgba(255,255,255,0) 49%,#ffffff 50%,#ffffff 100%);background-image:linear-gradient(to right, rgba(255,255,255,0) 0%,rgba(255,255,255,0) 49%,#ffffff 50%,#ffffff 100%);background-repeat:no-repeat;background-position:right center}.wf-scanner-progress>.wf-scan-step>.wf-scan-step-icon>.wf-scan-step-pending{width:50px;height:54px;background:url("data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPCFET0NUWVBFIHN2ZyBQVUJMSUMgIi0vL1czQy8vRFREIFNWRyAxLjEvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvR3JhcGhpY3MvU1ZHLzEuMS9EVEQvc3ZnMTEuZHRkIj4KPHN2ZyB3aWR0aD0iMTRweCIgaGVpZ2h0PSIxNHB4IiB2aWV3Qm94PSIwIDAgMTQgMTQiIHZlcnNpb249IjEuMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSI+Cgk8Y2lyY2xlIGN4PSI3IiBjeT0iNyIgcj0iNyIgZmlsbD0iI2QxZDFkMSIvPgo8L3N2Zz4=");background-repeat:no-repeat;background-position:center center}.wf-scanner-progress>.wf-scan-step>.wf-scan-step-icon>.wf-scan-step-running{display:none;background-color:#ffffff !important}.wf-scanner-progress>.wf-scan-step>.wf-scan-step-icon>.wf-scan-step-complete-success{display:none;width:50px;height:54px;background:#fff url("data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+PCFET0NUWVBFIHN2ZyBQVUJMSUMgIi0vL1czQy8vRFREIFNWRyAxLjEvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvR3JhcGhpY3MvU1ZHLzEuMS9EVEQvc3ZnMTEuZHRkIj48c3ZnIHdpZHRoPSI1MHB4IiBoZWlnaHQ9IjUwcHgiIHZpZXdCb3g9IjAgMCAxMDAgMTAwIiB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTk4LjI4NywyMS4wMjVsLTcuODIzLC03LjgxMmMtMS4wNjYsLTEuMDkyIC0yLjUyOCwtMS43MDggLTQuMDU0LC0xLjcwOGMtMS41MjUsMCAtMi45ODgsMC42MTYgLTQuMDUzLDEuNzA4bC00Ni4wMTIsNDYuMDEybC0xOC43MTMsLTE4LjcxMmMtMS4wNjYsLTEuMDkgLTIuNTI5LC0xLjcwNCAtNC4wNTMsLTEuNzA0Yy0xLjUyNSwwIC0yLjk4NywwLjYxNCAtNC4wNTQsMS43MDRsLTcuODEyLDcuODM0Yy0xLjA5MiwxLjA2NSAtMS43MDgsMi41MjggLTEuNzA4LDQuMDUzYzAsMS41MjYgMC42MTYsMi45ODggMS43MDgsNC4wNTRsMzAuNTUxLDMwLjU1MWMxLjA2NywxLjA4OSAyLjUyOSwxLjcwMyA0LjA1NCwxLjcwM2MxLjUyNCwwIDIuOTg2LC0wLjYxNCA0LjA1MywtMS43MDNsNTcuOTE2LC01Ny44NjJjMS4wOTIsLTEuMDY1IDEuNzA4LC0yLjUyOCAxLjcwOCwtNC4wNTNjMCwtMS41MjYgLTAuNjE2LC0yLjk4OCAtMS43MDgsLTQuMDU0bDAsLTAuMDExbDAsMFoiIGZpbGw9IiMwMDcwOWUiLz48L3N2Zz4=");background-repeat:no-repeat;background-position:center center;background-size:80%}.wf-scanner-progress>.wf-scan-step>.wf-scan-step-icon>.wf-scan-step-complete-warning{display:none;width:50px;height:54px;background:#fff url("data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+PCFET0NUWVBFIHN2ZyBQVUJMSUMgIi0vL1czQy8vRFREIFNWRyAxLjEvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvR3JhcGhpY3MvU1ZHLzEuMS9EVEQvc3ZnMTEuZHRkIj48c3ZnIHdpZHRoPSI1MHB4IiBoZWlnaHQ9IjUwcHgiIHZpZXdCb3g9IjAgMCAxMDAgMTAwIiB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTk5LjA1MSw4Mi44NDJsLTQyLjgxMiwtNzguNDgzYy0wLjYxLC0xLjEzMSAtMS41MTQsLTIuMDc3IC0yLjYxNywtMi43MzdjLTIuMjI3LC0xLjMzNCAtNS4wMTcsLTEuMzM0IC03LjI0NCwwYy0xLjEwNiwwLjY1OSAtMi4wMTMsMS42MDUgLTIuNjI1LDIuNzM3bC00Mi44MDQsNzguNDgzYy0xLjI5OSwyLjE2OCAtMS4yNTYsNC44OTYgMC4xMTEsNy4wMjFjMC42MTQsMS4wNjcgMS41LDEuOTUyIDIuNTY2LDIuNTY2YzEuMDc0LDAuNjI3IDIuMjk3LDAuOTU1IDMuNTQxLDAuOTQ5bDg1LjY0MSwwYzIuNTE3LC0wLjAwOSA0Ljg1MiwtMS4zNDcgNi4xMzIsLTMuNTE1YzEuMzY3LC0yLjEyNSAxLjQxLC00Ljg1MyAwLjExMSwtNy4wMjFsMCwwWm0tNDEuOTA2LC01LjU3NmMwLjAxMSwwLjQ5IC0wLjE4MSwwLjk2NCAtMC41MywxLjMwOGMtMC4zMjUsMC4zNDIgLTAuNzc3LDAuNTM0IC0xLjI0OSwwLjUzMWwtMTAuNzE1LDBjLTAuNDcyLDAuMDAzIC0wLjkyNCwtMC4xODkgLTEuMjQ5LC0wLjUzMWMtMC4zNDksLTAuMzQ0IC0wLjU0MiwtMC44MTggLTAuNTMsLTEuMzA4bDAsLTEwLjU4OGMtMC4wMTIsLTAuNDkgMC4xODEsLTAuOTY0IDAuNTMsLTEuMzA4YzAuMzI1LC0wLjM0MSAwLjc3NywtMC41MzMgMS4yNDksLTAuNTNsMTAuNjk4LDBjMC40NzUsLTAuMDA2IDAuOTMsMC4xODcgMS4yNTgsMC41M2MwLjM0OCwwLjM0NSAwLjU0LDAuODE4IDAuNTMsMS4zMDhsMCwxMC41ODhsMC4wMDgsMFptLTAuMTExLC0yMC44NDJjLTAuMDQ1LDAuMzggLTAuMjYzLDAuNzE4IC0wLjU5LDAuOTE2Yy0wLjM4OSwwLjI1IC0wLjg0NiwwLjM3NSAtMS4zMDgsMC4zNTlsLTEwLjMyMywwYy0wLjQ3LDAuMDEzIC0wLjkzNCwtMC4xMTIgLTEuMzM0LC0wLjM1OWMtMC4zMzgsLTAuMTg1IC0wLjU1MSwtMC41MzkgLTAuNTU2LC0wLjkyNGwtMC45NDksLTI1LjQ2OGMtMC4wMywtMC40NiAwLjE4MSwtMC45MDQgMC41NTYsLTEuMTcyYzAuMzU4LC0wLjM1NSAwLjgzMSwtMC41NzMgMS4zMzQsLTAuNjE2bDEyLjI3MiwwYzAuNTA2LDAuMDQgMC45ODIsMC4yNTggMS4zNDMsMC42MTZjMC4zNTcsMC4yMzIgMC41NjgsMC42MzUgMC41NTYsMS4wNmwtMS4wMDEsMjUuNTg4WiIgZmlsbD0iI2ZjYjIxNCIvPjwvc3ZnPg==");background-repeat:no-repeat;background-position:center center;background-size:80%}.wf-scanner-progress>.wf-scan-step>.wf-scan-step-icon>.wf-scan-step-disabled{display:none;width:50px;height:54px;background:#fff url("data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+PCFET0NUWVBFIHN2ZyBQVUJMSUMgIi0vL1czQy8vRFREIFNWRyAxLjEvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvR3JhcGhpY3MvU1ZHLzEuMS9EVEQvc3ZnMTEuZHRkIj48c3ZnIHdpZHRoPSI1MHB4IiBoZWlnaHQ9IjUwcHgiIHZpZXdCb3g9IjAgMCAxMDAgMTAwIiB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTk1Ljg5LDMwLjUyOGMtMi40OTYsLTUuOTQxIC02LjEwOCwtMTEuMzUxIC0xMC42NDIsLTE1LjkzOGMtNC41NzUsLTQuNTM4IC05Ljk5LC04LjE0OCAtMTUuOTQyLC0xMC42M2MtMTIuNDAxLC01LjI4IC0yNi40NDEsLTUuMjggLTM4Ljg0MiwwYy01Ljk2NSwyLjQ4NSAtMTEuMzg5LDYuMTAxIC0xNS45NzIsMTAuNjVjLTQuNTEsNC41ODYgLTguMTAxLDkuOTg5IC0xMC41ODIsMTUuOTE4Yy01LjI4NywxMi40MzIgLTUuMjg3LDI2LjQ5IDAsMzguOTIxYzIuNDk1LDUuOTQyIDYuMTA3LDExLjM1MyAxMC42NDIsMTUuOTM5YzQuNTgzLDQuNTQ4IDEwLjAwNyw4LjE2NSAxNS45NzIsMTAuNjQ5YzEyLjQsNS4yODQgMjYuNDQyLDUuMjg0IDM4Ljg0MiwwYzUuOTY1LC0yLjQ4NCAxMS4zODksLTYuMTAxIDE1Ljk3MiwtMTAuNjQ5YzQuNTM2LC00LjU4NSA4LjE0OSwtOS45OTYgMTAuNjQyLC0xNS45MzljNS4yODcsLTEyLjQzMSA1LjI4NywtMjYuNDg5IDAsLTM4LjkyMWwtMC4wOSwwWm0tNzUuNjA4LDM4Ljg1MWMtNy4zMDIsLTExLjIxMiAtNy42ODksLTI1LjYyIC0wLjk5OCwtMzcuMjA3YzMuMDc1LC01LjM3NSA3LjUyMiwtOS44NDQgMTIuODg3LC0xMi45NWM1LjM3NSwtMy4xMjkgMTEuNDk3LC00Ljc1NCAxNy43MTksLTQuNzAyYzYuOTU1LC0wLjA2IDEzLjc2NiwyLjAwMiAxOS41MTYsNS45MDdsLTQ5LjEyNCw0OC45NTJabTYyLjIwMSwtNS42NDhjLTEuNzU1LDQuMjI4IC00LjMxOCw4LjA3NiAtNy41NDcsMTEuMzI2Yy0zLjI0MywzLjIyOSAtNy4wNzYsNS44MDkgLTExLjI5LDcuNjAxYy00LjM0MywxLjg4MyAtOS4wMzEsMi44NDYgLTEzLjc2NiwyLjgyOWMtNi44NzIsMC4wMDggLTEzLjU5NSwtMi4wMTcgLTE5LjMxNiwtNS44MTdsNDkuMDU0LC00OC44MTNjMy43NDEsNS42ODcgNS43MTEsMTIuMzU0IDUuNjYsMTkuMTU3YzAuMDAzLDQuNzEzIC0wLjk0OCw5LjM3OSAtMi43OTUsMTMuNzE3bDAsMFoiIGZpbGw9IiNkMWQxZDEiLz48L3N2Zz4=");background-repeat:no-repeat;background-position:center center;background-size:80%}.wf-scanner-progress>.wf-scan-step>.wf-scan-step-icon>.wf-scan-step-premium{width:50px;height:54px;background:#fff url("data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPCFET0NUWVBFIHN2ZyBQVUJMSUMgIi0vL1czQy8vRFREIFNWRyAxLjEvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvR3JhcGhpY3MvU1ZHLzEuMS9EVEQvc3ZnMTEuZHRkIj4KPHN2ZyB3aWR0aD0iMjRweCIgaGVpZ2h0PSIzMHB4IiB2aWV3Qm94PSIwIDAgMjQgMzAiIHZlcnNpb249IjEuMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KCTxwYXRoIGQ9Ik0yMy45NDksMTQuMjMzYy0wLjM3OSwtMC4zOSAtMC45MDQsLTAuNjA2IC0xLjQ0OCwtMC41OTVsLTAuNjgzLDBsMCwtNC4wOTJjMC4wMzIsLTIuNTM1IC0wLjk4NiwtNC45NzMgLTIuODEyLC02LjczMWMtMS43NTksLTEuODI4IC00LjE5OCwtMi44NDcgLTYuNzM0LC0yLjgxNWMtMi41MzYsLTAuMDMyIC00Ljk3NiwwLjk4NyAtNi43MzQsMi44MTVjLTEuODI2LDEuNzU4IC0yLjg0NCw0LjE5NiAtMi44MTIsNi43MzFsMCw0LjA4OWwtMC42OCwwYy0wLjU0NCwtMC4wMTEgLTEuMDY5LDAuMjA1IC0xLjQ0OCwwLjU5NWMtMC4zOTUsMC4zODIgLTAuNjEyLDAuOTEyIC0wLjU5OCwxLjQ2MWwwLDEyLjI2NmMtMC4wMTEsMC41NDQgMC4yMDQsMS4wNjkgMC41OTUsMS40NDhjMC4zNzksMC4zOTEgMC45MDQsMC42MDYgMS40NDgsMC41OTVsMjAuNDU4LDBjMC4wMDMsMCAwLjAwNiwwIDAuMDEsMGMxLjExNywwIDIuMDM2LC0wLjkxOSAyLjAzNiwtMi4wMzdjMCwtMC4wMDMgMCwtMC4wMDYgMCwtMC4wMDlsMCwtMTIuMjYzYzAuMDExLC0wLjU0NCAtMC4yMDYsLTEuMDY5IC0wLjU5OCwtMS40NDhsMCwtMC4wMVptLTYuMjExLC0wLjU5NWwtMTAuOTE5LDBsMCwtNC4wOTJjLTAuMDIyLC0xLjQ1MSAwLjU1NywtMi44NDggMS41OTksLTMuODU4YzEuMDA5LC0xLjA0MiAyLjQwNywtMS42MjEgMy44NTcsLTEuNTk4YzEuNDUxLC0wLjAyMyAyLjg0OCwwLjU1NiAzLjg1OCwxLjU5OGMxLjA0MiwxLjAwOSAxLjYyMSwyLjQwNyAxLjU5OCwzLjg1OGwwLjAwNyw0LjA5MloiIGZpbGw9IiNkMWQxZDEiLz4KPC9zdmc+");background-repeat:no-repeat;background-position:center center;background-size:40%}.wf-scanner-progress>.wf-scan-step.wf-scan-step-premium>.wf-scan-step-icon>.wf-scan-step-pending{display:none}.wf-scanner-progress>.wf-scan-step.wf-scan-step-premium>.wf-scan-step-icon>.wf-scan-step-running{display:none}.wf-scanner-progress>.wf-scan-step.wf-scan-step-premium>.wf-scan-step-icon>.wf-scan-step-complete-success{display:none}.wf-scanner-progress>.wf-scan-step.wf-scan-step-premium>.wf-scan-step-icon>.wf-scan-step-complete-warning{display:none}.wf-scanner-progress>.wf-scan-step.wf-scan-step-premium>.wf-scan-step-icon>.wf-scan-step-disabled{display:none}.wf-scanner-progress>.wf-scan-step.wf-scan-step-running>.wf-scan-step-icon>.wf-scan-step-pending{display:none}.wf-scanner-progress>.wf-scan-step.wf-scan-step-running>.wf-scan-step-icon>.wf-scan-step-running{display:block}.wf-scanner-progress>.wf-scan-step.wf-scan-step-running>.wf-scan-step-icon>.wf-scan-step-complete-success{display:none}.wf-scanner-progress>.wf-scan-step.wf-scan-step-running>.wf-scan-step-icon>.wf-scan-step-complete-warning{display:none}.wf-scanner-progress>.wf-scan-step.wf-scan-step-running>.wf-scan-step-icon>.wf-scan-step-disabled{display:none}.wf-scanner-progress>.wf-scan-step.wf-scan-step-complete-success>.wf-scan-step-icon>.wf-scan-step-pending{display:none}.wf-scanner-progress>.wf-scan-step.wf-scan-step-complete-success>.wf-scan-step-icon>.wf-scan-step-running{display:none}.wf-scanner-progress>.wf-scan-step.wf-scan-step-complete-success>.wf-scan-step-icon>.wf-scan-step-complete-success{display:block}.wf-scanner-progress>.wf-scan-step.wf-scan-step-complete-success>.wf-scan-step-icon>.wf-scan-step-complete-warning{display:none}.wf-scanner-progress>.wf-scan-step.wf-scan-step-complete-success>.wf-scan-step-icon>.wf-scan-step-disabled{display:none}.wf-scanner-progress>.wf-scan-step.wf-scan-step-complete-warning>.wf-scan-step-icon>.wf-scan-step-pending{display:none}.wf-scanner-progress>.wf-scan-step.wf-scan-step-complete-warning>.wf-scan-step-icon>.wf-scan-step-running{display:none}.wf-scanner-progress>.wf-scan-step.wf-scan-step-complete-warning>.wf-scan-step-icon>.wf-scan-step-complete-success{display:none}.wf-scanner-progress>.wf-scan-step.wf-scan-step-complete-warning>.wf-scan-step-icon>.wf-scan-step-complete-warning{display:block}.wf-scanner-progress>.wf-scan-step.wf-scan-step-complete-warning>.wf-scan-step-icon>.wf-scan-step-disabled{display:none}.wf-scanner-progress>.wf-scan-step.wf-scan-step-disabled>.wf-scan-step-icon>.wf-scan-step-pending{display:none}.wf-scanner-progress>.wf-scan-step.wf-scan-step-disabled>.wf-scan-step-icon>.wf-scan-step-running{display:none}.wf-scanner-progress>.wf-scan-step.wf-scan-step-disabled>.wf-scan-step-icon>.wf-scan-step-complete-success{display:none}.wf-scanner-progress>.wf-scan-step.wf-scan-step-disabled>.wf-scan-step-icon>.wf-scan-step-complete-warning{display:none}.wf-scanner-progress>.wf-scan-step.wf-scan-step-disabled>.wf-scan-step-icon>.wf-scan-step-disabled{display:block}.wf-scanner-progress>.wf-scan-step>.wf-scan-step-title{font-size:0.7rem;padding-top:0.5rem;white-space:nowrap}.wf-scanner-progress>.wf-scan-step>.wf-scan-step-subtitle{font-size:0.7rem}#wf-scan-last-status{font-size:0.75rem;text-align:center}@media (min-width: 768px){#wf-scan-last-status{text-align:left}}#wf-scan-activity-log-controls{-webkit-flex-shrink:0;flex-shrink:0;text-align:center;white-space:nowrap}@media (min-width: 768px){#wf-scan-activity-log-controls{text-align:right}}#wf-scan-activity-log-controls a{text-transform:uppercase;font-size:0.75rem;white-space:nowrap}#wf-scan-toggle-activity-log .wf-scan-activity-log-visible{display:none}#wf-scan-toggle-activity-log .wf-scan-activity-log-hidden{display:inline}#wf-scan-toggle-activity-log.wf-active .wf-scan-activity-log-visible{display:inline}#wf-scan-toggle-activity-log.wf-active .wf-scan-activity-log-hidden{display:none}#wf-scan-running-bar{height:4px;border:1px solid #e2e2e2;background-color:#ffffff;-moz-border-radius:2px;-webkit-border-radius:2px;border-radius:2px}#wf-scan-running-bar-pill{height:4px;background-color:#00709e;width:33.3333%;-moz-border-radius:2px;-webkit-border-radius:2px;border-radius:2px;-webkit-animation:wf-scan-running-bar-pill-keyframes 1s linear infinite alternate both;-o-animation:wf-scan-running-bar-pill-keyframes 1s linear infinite alternate both;animation:wf-scan-running-bar-pill-keyframes 1s linear infinite alternate both}@-moz-keyframes wf-scan-running-bar-pill-keyframes{from{margin-left:0%}to{margin-left:66.6667%}}@-webkit-keyframes wf-scan-running-bar-pill-keyframes{from{margin-left:0%}to{margin-left:66.6667%}}@keyframes wf-scan-running-bar-pill-keyframes{from{margin-left:0%}to{margin-left:66.6667%}}#wf-scan-activity-log{display:none;overflow-x:hidden;overflow-y:auto;background-color:#ffffff;box-shadow:0 0 0 1px rgba(200,215,225,0.25),0 1px 2px #e9eff3;padding:0.5rem;height:7rem}#wf-scan-activity-log>li{margin:0;padding:0}#wf-scan-activity-log.wf-active{display:block}.wf-scan-tabs{display:-webkit-flex;display:flex;-webkit-align-items:center;align-items:center;-webkit-justify-content:flex-start;justify-content:flex-start;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;box-shadow:inset 0px 0px 0px 1px #f1f1f1,inset 0px -1px 0px 1px #e2e2e2;margin:0.5rem 0 0 0}.wf-scan-tabs>*{-webkit-flex-grow:0;flex-grow:0;min-width:0}.wf-scan-tabs .wf-tab{border:1px solid #d0d0d0;border-top-right-radius:0.5rem;border-top-left-radius:0.5rem;border-bottom:none;margin:0;margin-left:0.5rem;background:#e6e6e6;color:#333}.wf-scan-tabs .wf-tab:first-of-type{margin-left:0}.wf-scan-tabs .wf-tab a{display:block;padding:0.5rem 1rem;font-size:14px;line-height:24px;text-decoration:none;font-weight:bold;color:#333}.wf-scan-tabs .wf-tab.wf-active,.wf-scan-tabs .wf-tab:hover{border-bottom:1px solid #ffffff;background:#ffffff;color:#00709e;margin-bottom:-1px;-webkit-box-shadow:none;box-shadow:none}.wf-scan-tabs .wf-tab.wf-active a,.wf-scan-tabs .wf-tab:hover a{color:#00709e}.wf-scan-tabs #wf-scan-bulk-buttons{-webkit-flex-grow:1 !important;flex-grow:1 !important;text-align:right}.wf-scan-tab-content{display:none;margin-top:15px}.wf-scan-tab-content.wf-active{display:block}.wf-scan-results{margin:0;margin-top:-1px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;border-left:1px solid #e2e2e2;border-right:1px solid #e2e2e2;border-bottom:1px solid #e2e2e2}.wf-scan-results>.wf-scan-results-stats{margin:0}.wf-scan-results>.wf-scan-results-stats>.wf-block{box-shadow:none;margin:0}.wf-scan-results>.wf-scan-results-stats>.wf-block>.wf-block-content>.wf-block-list>li{border-top:0px;padding:0 1rem}.wf-scan-results>.wf-scan-results-stats>.wf-block>.wf-block-content>.wf-block-list .wf-flex-horizontal>li{font-size:0.75rem;white-space:nowrap;margin:0}.wf-scan-results>.wf-scan-results-stats>.wf-block>.wf-block-content>.wf-block-list .wf-flex-horizontal>li:last-of-type{text-align:right}.wf-scan-results-issues{padding:0;margin:0;display:none}.wf-scan-results-issues.wf-active{display:block}.wf-issue,.wf-issue-site-cleaning{display:-webkit-flex;display:flex;-webkit-align-items:stretch;align-items:stretch;-webkit-justify-content:flex-start;justify-content:flex-start;-webkit-flex-direction:column;flex-direction:column;border-top:1px solid #e2e2e2}.wf-issue:nth-of-type(2n),.wf-issue-site-cleaning:nth-of-type(2n){background-color:#fff}.wf-issue>li,.wf-issue-site-cleaning>li{margin:0}.wf-issue.wf-issue-severity-critical,.wf-issue-site-cleaning.wf-issue-severity-critical{border-left:4px solid #930000}.wf-issue.wf-issue-severity-warning,.wf-issue-site-cleaning.wf-issue-severity-warning{border-left:4px solid #fcb214}.wf-issue.wf-issue-severity-good,.wf-issue-site-cleaning.wf-issue-severity-good{border-left:4px solid #16bc9b}.wf-issue>.wf-issue-summary>ul,.wf-issue-site-cleaning>.wf-issue-summary>ul{display:-webkit-flex;display:flex;-webkit-align-items:center;align-items:center;-webkit-justify-content:flex-start;justify-content:flex-start;-webkit-flex-direction:row;flex-direction:row;padding:1.5rem}.wf-issue>.wf-issue-summary>ul>li,.wf-issue-site-cleaning>.wf-issue-summary>ul>li{margin:0;padding:0;padding-left:1.5rem}@media (max-width: 767px){.wf-issue>.wf-issue-summary>ul>li,.wf-issue-site-cleaning>.wf-issue-summary>ul>li{padding-left:0.5rem}}.wf-issue>.wf-issue-summary>ul>li:first-of-type,.wf-issue-site-cleaning>.wf-issue-summary>ul>li:first-of-type{padding-left:0}.wf-issue>.wf-issue-summary>ul>.wf-issue-icon,.wf-issue>.wf-issue-summary>ul>.wf-issue-icon-colored,.wf-issue-site-cleaning>.wf-issue-summary>ul>.wf-issue-icon,.wf-issue-site-cleaning>.wf-issue-summary>ul>.wf-issue-icon-colored{text-align:left;-webkit-flex-basis:50px;flex-basis:50px;-webkit-flex-shrink:0;flex-shrink:0}.wf-issue>.wf-issue-summary>ul>.wf-issue-icon>*,.wf-issue>.wf-issue-summary>ul>.wf-issue-icon-colored>*,.wf-issue-site-cleaning>.wf-issue-summary>ul>.wf-issue-icon>*,.wf-issue-site-cleaning>.wf-issue-summary>ul>.wf-issue-icon-colored>*{height:40px}.wf-issue>.wf-issue-summary>ul>.wf-issue-icon svg path,.wf-issue-site-cleaning>.wf-issue-summary>ul>.wf-issue-icon svg path{fill:#9e9e9e}.wf-issue>.wf-issue-summary>ul>.wf-issue-short,.wf-issue-site-cleaning>.wf-issue-summary>ul>.wf-issue-short{-webkit-flex-basis:40%;flex-basis:40%}.wf-issue>.wf-issue-summary>ul>.wf-issue-stats,.wf-issue-site-cleaning>.wf-issue-summary>ul>.wf-issue-stats{-webkit-flex-basis:25%;flex-basis:25%}.wf-issue>.wf-issue-summary>ul>.wf-issue-short-stats,.wf-issue-site-cleaning>.wf-issue-summary>ul>.wf-issue-short-stats{-webkit-flex-grow:1;flex-grow:1}.wf-issue>.wf-issue-summary>ul .wf-issue-severity-critical,.wf-issue>.wf-issue-summary>ul .wf-issue-severity-warning,.wf-issue-site-cleaning>.wf-issue-summary>ul .wf-issue-severity-critical,.wf-issue-site-cleaning>.wf-issue-summary>ul .wf-issue-severity-warning{background-repeat:no-repeat;background-position:left center;padding-left:18px}.wf-issue>.wf-issue-summary>ul .wf-issue-severity-critical,.wf-issue-site-cleaning>.wf-issue-summary>ul .wf-issue-severity-critical{background-image:url("data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPCFET0NUWVBFIHN2ZyBQVUJMSUMgIi0vL1czQy8vRFREIFNWRyAxLjEvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvR3JhcGhpY3MvU1ZHLzEuMS9EVEQvc3ZnMTEuZHRkIj4KPHN2ZyB3aWR0aD0iMTBweCIgaGVpZ2h0PSIxMHB4IiB2aWV3Qm94PSIwIDAgMTAgMTAiIHZlcnNpb249IjEuMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KCTxjaXJjbGUgY3g9IjUiIGN5PSI1IiByPSI1IiBmaWxsPSIjOTMwMDAwIi8+Cjwvc3ZnPg==")}.wf-issue>.wf-issue-summary>ul .wf-issue-severity-warning,.wf-issue-site-cleaning>.wf-issue-summary>ul .wf-issue-severity-warning{background-image:url("data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPCFET0NUWVBFIHN2ZyBQVUJMSUMgIi0vL1czQy8vRFREIFNWRyAxLjEvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvR3JhcGhpY3MvU1ZHLzEuMS9EVEQvc3ZnMTEuZHRkIj4KPHN2ZyB3aWR0aD0iMTBweCIgaGVpZ2h0PSIxMHB4IiB2aWV3Qm94PSIwIDAgMTAgMTAiIHZlcnNpb249IjEuMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KCTxjaXJjbGUgY3g9IjUiIGN5PSI1IiByPSI1IiBmaWxsPSIjZmNiMjE0Ii8+Cjwvc3ZnPg==")}.wf-issue>.wf-issue-summary>ul>.wf-issue-controls,.wf-issue>.wf-issue-summary>ul>.wf-issue-short-stats>.wf-issue-controls,.wf-issue-site-cleaning>.wf-issue-summary>ul>.wf-issue-controls,.wf-issue-site-cleaning>.wf-issue-summary>ul>.wf-issue-short-stats>.wf-issue-controls{-webkit-flex-grow:1;flex-grow:1;display:-webkit-flex;display:flex;-webkit-align-items:center;align-items:center;-webkit-justify-content:flex-end;justify-content:flex-end;-webkit-flex-direction:row;flex-direction:row}.wf-issue>.wf-issue-summary>ul>.wf-issue-controls>.wf-issue-control,.wf-issue>.wf-issue-summary>ul>.wf-issue-short-stats>.wf-issue-controls>.wf-issue-control,.wf-issue-site-cleaning>.wf-issue-summary>ul>.wf-issue-controls>.wf-issue-control,.wf-issue-site-cleaning>.wf-issue-summary>ul>.wf-issue-short-stats>.wf-issue-controls>.wf-issue-control{display:-webkit-flex;display:flex;-webkit-align-items:center;align-items:center;-webkit-justify-content:center;justify-content:center;-webkit-flex-direction:column;flex-direction:column;padding-left:2rem;text-decoration:none}.wf-issue>.wf-issue-summary>ul>.wf-issue-controls>.wf-issue-control:first-of-type,.wf-issue>.wf-issue-summary>ul>.wf-issue-short-stats>.wf-issue-controls>.wf-issue-control:first-of-type,.wf-issue-site-cleaning>.wf-issue-summary>ul>.wf-issue-controls>.wf-issue-control:first-of-type,.wf-issue-site-cleaning>.wf-issue-summary>ul>.wf-issue-short-stats>.wf-issue-controls>.wf-issue-control:first-of-type{padding-left:0}.wf-issue>.wf-issue-summary>ul>.wf-issue-controls>.wf-issue-control>.wf-issue-control-icon,.wf-issue>.wf-issue-summary>ul>.wf-issue-controls>.wf-issue-control .wf-issue-control-icon-inactive,.wf-issue>.wf-issue-summary>ul>.wf-issue-controls>.wf-issue-control .wf-issue-control-icon-active,.wf-issue>.wf-issue-summary>ul>.wf-issue-short-stats>.wf-issue-controls>.wf-issue-control>.wf-issue-control-icon,.wf-issue>.wf-issue-summary>ul>.wf-issue-short-stats>.wf-issue-controls>.wf-issue-control .wf-issue-control-icon-inactive,.wf-issue>.wf-issue-summary>ul>.wf-issue-short-stats>.wf-issue-controls>.wf-issue-control .wf-issue-control-icon-active,.wf-issue-site-cleaning>.wf-issue-summary>ul>.wf-issue-controls>.wf-issue-control>.wf-issue-control-icon,.wf-issue-site-cleaning>.wf-issue-summary>ul>.wf-issue-controls>.wf-issue-control .wf-issue-control-icon-inactive,.wf-issue-site-cleaning>.wf-issue-summary>ul>.wf-issue-controls>.wf-issue-control .wf-issue-control-icon-active,.wf-issue-site-cleaning>.wf-issue-summary>ul>.wf-issue-short-stats>.wf-issue-controls>.wf-issue-control>.wf-issue-control-icon,.wf-issue-site-cleaning>.wf-issue-summary>ul>.wf-issue-short-stats>.wf-issue-controls>.wf-issue-control .wf-issue-control-icon-inactive,.wf-issue-site-cleaning>.wf-issue-summary>ul>.wf-issue-short-stats>.wf-issue-controls>.wf-issue-control .wf-issue-control-icon-active{height:20px}.wf-issue>.wf-issue-summary>ul>.wf-issue-controls>.wf-issue-control>.wf-issue-control-icon path,.wf-issue>.wf-issue-summary>ul>.wf-issue-controls>.wf-issue-control .wf-issue-control-icon-inactive path,.wf-issue>.wf-issue-summary>ul>.wf-issue-controls>.wf-issue-control .wf-issue-control-icon-active path,.wf-issue>.wf-issue-summary>ul>.wf-issue-short-stats>.wf-issue-controls>.wf-issue-control>.wf-issue-control-icon path,.wf-issue>.wf-issue-summary>ul>.wf-issue-short-stats>.wf-issue-controls>.wf-issue-control .wf-issue-control-icon-inactive path,.wf-issue>.wf-issue-summary>ul>.wf-issue-short-stats>.wf-issue-controls>.wf-issue-control .wf-issue-control-icon-active path,.wf-issue-site-cleaning>.wf-issue-summary>ul>.wf-issue-controls>.wf-issue-control>.wf-issue-control-icon path,.wf-issue-site-cleaning>.wf-issue-summary>ul>.wf-issue-controls>.wf-issue-control .wf-issue-control-icon-inactive path,.wf-issue-site-cleaning>.wf-issue-summary>ul>.wf-issue-controls>.wf-issue-control .wf-issue-control-icon-active path,.wf-issue-site-cleaning>.wf-issue-summary>ul>.wf-issue-short-stats>.wf-issue-controls>.wf-issue-control>.wf-issue-control-icon path,.wf-issue-site-cleaning>.wf-issue-summary>ul>.wf-issue-short-stats>.wf-issue-controls>.wf-issue-control .wf-issue-control-icon-inactive path,.wf-issue-site-cleaning>.wf-issue-summary>ul>.wf-issue-short-stats>.wf-issue-controls>.wf-issue-control .wf-issue-control-icon-active path{fill:#9e9e9e;fill-rule:nonzero}.wf-issue>.wf-issue-summary>ul>.wf-issue-controls>.wf-issue-control>.wf-issue-control-label,.wf-issue>.wf-issue-summary>ul>.wf-issue-short-stats>.wf-issue-controls>.wf-issue-control>.wf-issue-control-label,.wf-issue-site-cleaning>.wf-issue-summary>ul>.wf-issue-controls>.wf-issue-control>.wf-issue-control-label,.wf-issue-site-cleaning>.wf-issue-summary>ul>.wf-issue-short-stats>.wf-issue-controls>.wf-issue-control>.wf-issue-control-label{padding-top:0.65rem;font-size:0.7rem;font-weight:500;text-transform:uppercase;color:#9e9e9e}.wf-issue>.wf-issue-summary>ul>.wf-issue-controls>.wf-issue-control:hover>.wf-issue-control-icon path,.wf-issue>.wf-issue-summary>ul>.wf-issue-controls>.wf-issue-control:hover .wf-issue-control-icon-inactive path,.wf-issue>.wf-issue-summary>ul>.wf-issue-controls>.wf-issue-control:hover .wf-issue-control-icon-active path,.wf-issue>.wf-issue-summary>ul>.wf-issue-short-stats>.wf-issue-controls>.wf-issue-control:hover>.wf-issue-control-icon path,.wf-issue>.wf-issue-summary>ul>.wf-issue-short-stats>.wf-issue-controls>.wf-issue-control:hover .wf-issue-control-icon-inactive path,.wf-issue>.wf-issue-summary>ul>.wf-issue-short-stats>.wf-issue-controls>.wf-issue-control:hover .wf-issue-control-icon-active path,.wf-issue-site-cleaning>.wf-issue-summary>ul>.wf-issue-controls>.wf-issue-control:hover>.wf-issue-control-icon path,.wf-issue-site-cleaning>.wf-issue-summary>ul>.wf-issue-controls>.wf-issue-control:hover .wf-issue-control-icon-inactive path,.wf-issue-site-cleaning>.wf-issue-summary>ul>.wf-issue-controls>.wf-issue-control:hover .wf-issue-control-icon-active path,.wf-issue-site-cleaning>.wf-issue-summary>ul>.wf-issue-short-stats>.wf-issue-controls>.wf-issue-control:hover>.wf-issue-control-icon path,.wf-issue-site-cleaning>.wf-issue-summary>ul>.wf-issue-short-stats>.wf-issue-controls>.wf-issue-control:hover .wf-issue-control-icon-inactive path,.wf-issue-site-cleaning>.wf-issue-summary>ul>.wf-issue-short-stats>.wf-issue-controls>.wf-issue-control:hover .wf-issue-control-icon-active path{fill:#00709e}.wf-issue>.wf-issue-summary>ul>.wf-issue-controls>.wf-issue-control:hover>.wf-issue-control-label,.wf-issue>.wf-issue-summary>ul>.wf-issue-short-stats>.wf-issue-controls>.wf-issue-control:hover>.wf-issue-control-label,.wf-issue-site-cleaning>.wf-issue-summary>ul>.wf-issue-controls>.wf-issue-control:hover>.wf-issue-control-label,.wf-issue-site-cleaning>.wf-issue-summary>ul>.wf-issue-short-stats>.wf-issue-controls>.wf-issue-control:hover>.wf-issue-control-label{color:#00709e}.wf-issue>.wf-issue-summary>ul>.wf-issue-short-stats>.wf-issue-controls,.wf-issue-site-cleaning>.wf-issue-summary>ul>.wf-issue-short-stats>.wf-issue-controls{margin-top:1rem;-webkit-justify-content:flex-start;justify-content:flex-start}.wf-issue .wf-issue-control-icon-active,.wf-issue-site-cleaning .wf-issue-control-icon-active{display:none}.wf-issue .wf-issue-control-icon-inactive,.wf-issue-site-cleaning .wf-issue-control-icon-inactive{display:block}.wf-issue>.wf-issue-detail,.wf-issue-site-cleaning>.wf-issue-detail{display:none;padding:1.5rem;border-top:1px solid #e2e2e2}.wf-issue>.wf-issue-detail .wf-issue-detail-spacer,.wf-issue-site-cleaning>.wf-issue-detail .wf-issue-detail-spacer{height:1rem;margin:0;padding:0}.wf-issue>.wf-issue-detail .wf-issue-detail-controls,.wf-issue-site-cleaning>.wf-issue-detail .wf-issue-detail-controls{display:-webkit-flex;display:flex;-webkit-align-items:center;align-items:center;-webkit-justify-content:flex-start;justify-content:flex-start;-webkit-flex-direction:row;flex-direction:row;margin:0;margin-top:1rem}.wf-issue>.wf-issue-detail .wf-issue-detail-controls>*,.wf-issue-site-cleaning>.wf-issue-detail .wf-issue-detail-controls>*{margin-left:1rem}.wf-issue>.wf-issue-detail .wf-issue-detail-controls>*:first-of-type,.wf-issue-site-cleaning>.wf-issue-detail .wf-issue-detail-controls>*:first-of-type{margin-left:0}@media (max-width: 767px){.wf-issue>.wf-issue-detail .wf-issue-detail-controls,.wf-issue-site-cleaning>.wf-issue-detail .wf-issue-detail-controls{-webkit-align-items:flex-start;align-items:flex-start;-webkit-flex-direction:column;flex-direction:column}.wf-issue>.wf-issue-detail .wf-issue-detail-controls>*,.wf-issue-site-cleaning>.wf-issue-detail .wf-issue-detail-controls>*{margin-left:0;margin-top:0.5rem}.wf-issue>.wf-issue-detail .wf-issue-detail-controls>*:first-of-type,.wf-issue-site-cleaning>.wf-issue-detail .wf-issue-detail-controls>*:first-of-type{margin-top:0}}.wf-issue.wf-active>.wf-issue-summary>ul>.wf-issue-controls .wf-issue-control-show-details>.wf-issue-control-icon path,.wf-issue.wf-active>.wf-issue-summary>ul>.wf-issue-controls .wf-issue-control-show-details .wf-issue-control-icon-inactive path,.wf-issue.wf-active>.wf-issue-summary>ul>.wf-issue-controls .wf-issue-control-show-details .wf-issue-control-icon-active path,.wf-issue-site-cleaning.wf-active>.wf-issue-summary>ul>.wf-issue-controls .wf-issue-control-show-details>.wf-issue-control-icon path,.wf-issue-site-cleaning.wf-active>.wf-issue-summary>ul>.wf-issue-controls .wf-issue-control-show-details .wf-issue-control-icon-inactive path,.wf-issue-site-cleaning.wf-active>.wf-issue-summary>ul>.wf-issue-controls .wf-issue-control-show-details .wf-issue-control-icon-active path{fill:#00709e}.wf-issue.wf-active>.wf-issue-summary>ul>.wf-issue-controls .wf-issue-control-show-details>.wf-issue-control-label,.wf-issue-site-cleaning.wf-active>.wf-issue-summary>ul>.wf-issue-controls .wf-issue-control-show-details>.wf-issue-control-label{color:#00709e}.wf-issue.wf-active>.wf-issue-summary>ul>.wf-issue-controls .wf-issue-control-icon-inactive,.wf-issue-site-cleaning.wf-active>.wf-issue-summary>ul>.wf-issue-controls .wf-issue-control-icon-inactive{display:none}.wf-issue.wf-active>.wf-issue-summary>ul>.wf-issue-controls .wf-issue-control-icon-active,.wf-issue-site-cleaning.wf-active>.wf-issue-summary>ul>.wf-issue-controls .wf-issue-control-icon-active{display:block}.wf-issue.wf-active>.wf-issue-detail,.wf-issue-site-cleaning.wf-active>.wf-issue-detail{display:block}.wf-issue-site-cleaning>.wf-issue-summary>ul>.wf-issue-short{-webkit-flex-basis:auto;flex-basis:auto}.wf-issue-site-cleaning>.wf-issue-summary>ul>.wf-issue-short p{padding:0;margin:0}.wf-option-scan-signatures>.wf-option-disclosure{-webkit-flex-grow:1;flex-grow:1;text-align:right}.wf-option-scan-signatures>.wf-option-disclosure>svg{transition:transform 0.15s cubic-bezier(0.175, 0.885, 0.32, 1.275)}#wf-scan-additional-signatures{display:none;margin-left:3rem;padding-left:30px;padding-bottom:1rem}#wf-scan-additional-signatures>h4{margin:0 0 0.5rem 0}#wf-scan-additional-signatures>textarea{width:300px;height:80px}.wf-scan-type-enabled{padding:1rem 0.5rem}.wf-scan-type-enabled>li:first-of-type{padding-right:1.5rem}.wf-scan-type-controls{display:-webkit-flex;display:flex;-webkit-align-items:stretch;align-items:stretch;-webkit-justify-content:flex-start;justify-content:flex-start;-webkit-flex-direction:column;flex-direction:column;margin:0 -0.5rem}.wf-scan-type{display:-webkit-flex;display:flex;-webkit-align-items:stretch;align-items:stretch;-webkit-justify-content:center;justify-content:center;-webkit-flex-direction:row;flex-direction:row;min-width:700px}@media (max-width: 767px){.wf-scan-type{-webkit-justify-content:flex-start;justify-content:flex-start}}.wf-scan-type>li{-webkit-flex-grow:1;flex-grow:1;-webkit-flex-shrink:0;flex-shrink:0;-webkit-flex-basis:25%;flex-basis:25%;display:-webkit-flex;display:flex;-webkit-align-items:stretch;align-items:stretch;-webkit-justify-content:center;justify-content:center;max-width:25%;padding:0.5rem}@media (min-width: 768px){.wf-scan-type>li{-webkit-flex-shrink:1;flex-shrink:1}}.wf-scan-type>li>ul.wf-scan-type-option{-webkit-flex-grow:1;flex-grow:1;margin:0;padding:0;border:1px solid #d9d9d9;min-height:100%;cursor:pointer}.wf-scan-type>li>ul.wf-scan-type-option.wf-scan-type-option-custom{cursor:inherit}.wf-scan-type>li>ul.wf-scan-type-option>.wf-scan-type-option-name{display:-webkit-flex;display:flex;-webkit-align-items:center;align-items:center;-webkit-justify-content:center;justify-content:center;-webkit-flex-direction:row;flex-direction:row;border-bottom:2px solid #d9d9d9;padding:0.5rem 1rem}.wf-scan-type>li>ul.wf-scan-type-option>.wf-scan-type-option-name .wf-option-checkbox{margin-right:0.5rem;width:20px;height:20px;min-width:20px;min-height:20px;-moz-border-radius:10px;-webkit-border-radius:10px;border-radius:10px;line-height:20px !important;background-color:#fff;box-shadow:0px 0px 0px 1px rgba(185,185,185,0.75);color:#aaa;font-size:25px !important}.wf-scan-type>li>ul.wf-scan-type-option>.wf-scan-type-option-name span{font-weight:400;font-size:0.95rem}.wf-scan-type>li>ul.wf-scan-type-option>.wf-scan-type-option-description{padding:1rem}.wf-scan-type>li>ul.wf-scan-type-option.wf-active>.wf-scan-type-option-name{background-color:#00709e}.wf-scan-type>li>ul.wf-scan-type-option.wf-active>.wf-scan-type-option-name .wf-option-checkbox{color:#00709e}.wf-scan-type>li>ul.wf-scan-type-option.wf-active>.wf-scan-type-option-name span{color:#ffffff}.wf-scan-scheduling-manual{display:none;margin-left:3rem;padding-left:30px}.wf-scan-scheduling-manual.wf-active{display:block}.wf-scan-scheduling-manual>li{display:-webkit-flex;display:flex;-webkit-align-items:center;align-items:center;-webkit-justify-content:flex-start;justify-content:flex-start;-webkit-flex-direction:row;flex-direction:row}.wf-scan-scheduling-manual .wf-scan-scheduling-manual-presets-label{padding-right:1rem}.wf-scan-scheduling-manual .wf-scan-scheduling-manual-presets{display:-webkit-flex;display:flex;-webkit-align-items:stretch;align-items:stretch;-webkit-justify-content:flex-start;justify-content:flex-start;-webkit-flex-direction:row;flex-direction:row;margin:0;padding:0}.wf-scan-scheduling-manual .wf-scan-scheduling-manual-presets>li{margin:0;padding:0.5rem 0.7rem;text-transform:uppercase;cursor:pointer;color:#aaa;font-weight:400;border-top:1px solid #bfbfbf;border-bottom:1px solid #bfbfbf;border-right:1px solid #bfbfbf}.wf-scan-scheduling-manual .wf-scan-scheduling-manual-presets>li:first-of-type{border-left:1px solid #bfbfbf;-moz-border-radius-topleft:6px;-webkit-border-top-left-radius:6px;border-top-left-radius:6px;-moz-border-radius-bottomleft:6px;-webkit-border-bottom-left-radius:6px;border-bottom-left-radius:6px}.wf-scan-scheduling-manual .wf-scan-scheduling-manual-presets>li:last-of-type{-moz-border-radius-topright:6px;-webkit-border-top-right-radius:6px;border-top-right-radius:6px;-moz-border-radius-bottomright:6px;-webkit-border-bottom-right-radius:6px;border-bottom-right-radius:6px}.wf-scan-scheduling-manual .wf-scan-scheduling-manual-presets>li.wf-active{color:#ffffff;background-color:#00709e}.wf-scan-scheduling-manual-preset-options .select2-container{min-width:100px}.wf-scan-scheduling-manual-preset-options:not(.wf-active),.wf-scan-scheduling-manual-custom-options:not(.wf-active){display:none !important}.wf-scan-scheduling-manual-custom-options{padding-bottom:1rem}.wf-schedule-times-wrapper{display:-webkit-flex;display:flex;-webkit-align-items:center;align-items:center;-webkit-justify-content:space-between;justify-content:space-between;-webkit-flex-direction:row;flex-direction:row;margin-top:1rem}@media (min-width: 768px){.wf-schedule-times-wrapper{margin-top:0.25rem}}.wf-schedule-times-wrapper:first-of-type{margin-top:0}@media (min-width: 768px){.wf-schedule-times-wrapper:first-of-type{margin-top:1rem}}.wf-schedule-times-wrapper>*{-webkit-flex-grow:1;flex-grow:1;min-width:0}.wf-schedule-times-wrapper>*:first-child{-webkit-flex-grow:0;flex-grow:0;min-width:initial;padding-right:0.25rem}.wf-schedule-times-wrapper .wf-schedule-period{font-weight:500;padding:0.5rem 0.7rem}.wf-schedule-times{display:-webkit-flex;display:flex;-webkit-align-items:stretch;align-items:stretch;-webkit-justify-content:flex-start;justify-content:flex-start;-webkit-flex-direction:row;flex-direction:row}.wf-schedule-times>li{margin:0;padding:0.5rem 0.7rem;text-transform:uppercase;cursor:pointer;color:#aaa;font-weight:400;border-top:1px solid #bfbfbf;border-bottom:1px solid #bfbfbf;border-right:1px solid #bfbfbf}.wf-schedule-times>li:first-of-type{border-left:1px solid #bfbfbf;-moz-border-radius-topleft:6px;-webkit-border-top-left-radius:6px;border-top-left-radius:6px;-moz-border-radius-bottomleft:6px;-webkit-border-bottom-left-radius:6px;border-bottom-left-radius:6px}.wf-schedule-times>li:last-of-type{-moz-border-radius-topright:6px;-webkit-border-top-right-radius:6px;border-top-right-radius:6px;-moz-border-radius-bottomright:6px;-webkit-border-bottom-right-radius:6px;border-bottom-right-radius:6px}.wf-schedule-times>li.wf-active{color:#ffffff;background-color:#00709e}.wf-issue-control-ignore-menu{position:absolute;z-index:9999;background-color:#ffffff;border:1px solid #bfbfbf}.wf-issue-control-ignore-menu>li{padding:0.5rem 1rem;margin:0;border-top:1px solid #bfbfbf;cursor:pointer}.wf-issue-control-ignore-menu>li:hover{color:#ffffff;background-color:#00709e}.wf-issue-control-ignore-menu>li:first-of-type{border-top:0}#wf-scan-failed .wf-alert{margin:0}#wf-site-cleaning-bottom h3{color:#00709e;font-weight:300;font-size:1.5rem;margin:1rem 0}#wf-site-cleaning-bottom p{max-width:750px}#wordfenceRightRail img{max-width:100%}#wordfenceRightRail ul{list-style-type:none;margin:0;margin-top:15px}#wordfenceRightRail .center{text-align:center}#wordfenceRightRail .button-primary{text-align:center;text-transform:uppercase;font-weight:bold;background-color:#00709e}.wordfenceRightRail img{width:100%}.wordfenceRightRailLiveTraffic,.wordfenceRightRailOptions,.wordfenceRightRailDiagnostics{margin-left:1055px}.wordfenceRightRailBlockedIPs,.wordfenceRightRailWAF,.wordfenceRightRailCountryBlocking,.wordfenceRightRailScanSchedule{margin-left:950px}.wordfenceRightRail ul{list-style-type:none;margin:0}.wordfenceRightRail .center{text-align:center}.wordfenceRightRail .button-primary{text-align:center;text-transform:uppercase;font-weight:bold;background-color:#00709e}.wordfenceWrap.wordfence-community{min-height:760px}#wfTwoFactorQRCodeTable{width:175px;height:175px;margin:0 auto}@media (min-width: 500px){#wfTwoFactorQRCodeTable{width:256px;height:256px}}#wfTwoFactorRecoveryCodes{list-style-type:none}#wfTwoFactorRecoveryCodes li{font-family:monospace;text-align:center}#wfTwoFactorDownload .dashicons{line-height:26px}.wf-twofactor-delete{font-size:1.5rem}.wf-twofactor-delete a{text-decoration:none;color:#333}.wf-twofactor-delete a i{font-size:1.5rem}.wf-table.wf-table-twofactor>tbody>tr>td{vertical-align:middle}.wf-form-twofactor{max-width:400px}.wf-form-twofactor .wf-radio label{padding-left:0}#twofactor .wf-block-list>li{padding:.8rem 1.5rem;min-height:0px}#twofactor .wf-block-list .wf-form-control{margin:0px 0px}.wf-block-list .wf-block-list-title{font-weight:bold;font-size:0.9rem}.wf-block-list .wf-block-list-subtitle{font-weight:bold;font-size:0.85rem;color:#008cc1}#wfTwoFacUsers{margin:0 auto 1.5rem}#wf-tools-two-factor #wf-two-factor-img1,#wf-tools-two-factor #wf-two-factor-img2{display:inline}#wf-tools-two-factor #wf-two-factor-img1{max-width:316px}#wf-tools-two-factor #wf-two-factor-img2{max-width:270px}#wfUsername{max-width:568px}@media screen and (max-width: 782px){#wf-tools-two-factor #wf-two-factor-img1,#wf-tools-two-factor #wf-two-factor-img2{display:block;margin:0px auto 20px}}fieldset{padding:0;margin:0;border:0;min-width:0}legend{display:block;width:100%;padding:0;margin-bottom:20px;font-size:21px;line-height:inherit;color:#333;border:0;border-bottom:1px solid #e5e5e5}label{display:inline-block;max-width:100%;margin-bottom:5px;font-weight:bold}label.wf-plain{font-weight:normal}label.wf-control-label.wf-disabled{pointer-events:none}input[type="search"]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}input[type="radio"],input[type="checkbox"]{margin-top:1px \9;line-height:normal}input[type="file"]{display:block}input[type="range"]{display:block;width:100%}select[multiple],select[size]{height:auto}input[type="file"]:focus,input[type="radio"]:focus,input[type="checkbox"]:focus{outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}output{display:block;padding-top:1.5rem;font-size:14px;line-height:1.42857;color:#555}.wf-form-control{display:block;width:100%;height:38px;padding:.5rem 1.25rem;font-size:14px;line-height:1.42857;color:#555;background-color:#fff;background-image:none;border:1px solid #ddd;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);-webkit-transition:border-color ease-in-out 0.15s,box-shadow ease-in-out 0.15s;-o-transition:border-color ease-in-out 0.15s,box-shadow ease-in-out 0.15s;transition:border-color ease-in-out 0.15s,box-shadow ease-in-out 0.15s}.wf-form-control:focus{border-color:#66afe9;outline:0;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 8px rgba(102,175,233,0.6);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 8px rgba(102,175,233,0.6)}.wf-form-control::-moz-placeholder{color:#bfbfbf;opacity:1}.wf-form-control:-ms-input-placeholder{color:#bfbfbf}.wf-form-control::-webkit-input-placeholder{color:#bfbfbf}.wf-form-control::-ms-expand{border:0;background-color:transparent}.wf-form-control[disabled],.wf-form-control[readonly],fieldset[disabled] .wf-form-control{background-color:#e2e2e2;opacity:1}.wf-form-control[disabled],.wf-form-control[readonly],fieldset[disabled] .wf-form-control{cursor:not-allowed;pointer-events:none}textarea.wf-form-control{height:auto}input[type="search"]{-webkit-appearance:none}@media screen and (-webkit-min-device-pixel-ratio: 0){input[type="date"].wf-form-control,input[type="time"].wf-form-control,input[type="datetime-local"].wf-form-control,input[type="month"].wf-form-control{line-height:38px}input[type="date"].wf-input-sm,.wf-input-group-sm input[type="date"],input[type="time"].wf-input-sm,.wf-input-group-sm input[type="time"],input[type="datetime-local"].wf-input-sm,.wf-input-group-sm input[type="datetime-local"],input[type="month"].wf-input-sm,.wf-input-group-sm input[type="month"]{line-height:30px}input[type="date"].wf-input-lg,.wf-input-group-lg input[type="date"],input[type="time"].wf-input-lg,.wf-input-group-lg input[type="time"],input[type="datetime-local"].wf-input-lg,.wf-input-group-lg input[type="datetime-local"],input[type="month"].wf-input-lg,.wf-input-group-lg input[type="month"]{line-height:46px}}.wf-form-group{margin-bottom:8px}.wf-form-group.wf-sub-group label{color:#666666;font-weight:normal;padding-left:20px}.wf-form-group.wf-focus{border-left:4px solid #11967a;padding-bottom:8px;background-color:#e5e5e5}.wf-form-group.wf-focus label{margin-left:-4px}.wf-radio,.wf-checkbox{position:relative;display:block;margin-top:10px;margin-bottom:10px}.wf-radio label,.wf-checkbox label{min-height:20px;padding-left:20px;margin-bottom:0;font-weight:normal;cursor:pointer}.wf-radio input[type="radio"],.wf-radio-inline input[type="radio"],.wf-checkbox input[type="checkbox"],.wf-checkbox-inline input[type="checkbox"]{margin-top:4px \9}.wf-radio-offset{padding-left:29px}@media (min-width: 768px){.wf-radio-offset{padding-left:20px}}.wf-radio+.wf-radio,.wf-checkbox+.wf-checkbox{margin-top:-5px}.wf-radio-inline,.wf-checkbox-inline{position:relative;display:inline-block;padding-left:20px;margin-bottom:0;vertical-align:middle;font-weight:normal;cursor:pointer}.wf-radio-inline+.wf-radio-inline,.wf-checkbox-inline+.wf-checkbox-inline{margin-top:0;margin-left:10px}input[type="radio"][disabled],input[type="radio"][readonly],input[type="radio"].wf-disabled,fieldset[disabled] input[type="radio"],input[type="checkbox"][disabled],input[type="checkbox"][readonly],input[type="checkbox"].wf-disabled,fieldset[disabled] input[type="checkbox"]{cursor:not-allowed;pointer-events:none}.wf-radio-inline.wf-disabled,fieldset[disabled] .wf-radio-inline,.wf-checkbox-inline.wf-disabled,fieldset[disabled] .wf-checkbox-inline{cursor:not-allowed}.wf-radio.wf-disabled label,fieldset[disabled] .wf-radio label,.wf-checkbox.wf-disabled label,fieldset[disabled] .wf-checkbox label{cursor:not-allowed;pointer-events:none}.wf-form-control-static{padding-top:1.5rem;padding-bottom:1.5rem;margin:0;line-height:1}.wf-form-control-static.wf-input-lg,.wf-form-control-static.wf-input-sm{padding-left:0;padding-right:0}.wf-input-sm{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}select.wf-input-sm{height:30px;line-height:30px}textarea.wf-input-sm,select[multiple].wf-input-sm{height:auto}.wf-form-group-sm .wf-form-control{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}.wf-form-group-sm select.wf-form-control{height:30px;line-height:30px}.wf-form-group-sm textarea.wf-form-control,.wf-form-group-sm select[multiple].wf-form-control{height:auto}.wf-form-group-sm .wf-form-control-static{height:30px;min-height:32px;padding:6px 10px;font-size:12px;line-height:1.5}.wf-input-lg{height:46px;padding:10px 16px;font-size:18px;line-height:1.33333;border-radius:6px}select.wf-input-lg{height:46px;line-height:46px}textarea.wf-input-lg,select[multiple].wf-input-lg{height:auto}.wf-form-group-lg .wf-form-control{height:46px;padding:10px 16px;font-size:18px;line-height:1.33333;border-radius:6px}.wf-form-group-lg select.wf-form-control{height:46px;line-height:46px}.wf-form-group-lg textarea.wf-form-control,.wf-form-group-lg select[multiple].wf-form-control{height:auto}.wf-form-group-lg .wf-form-control-static{height:46px;min-height:38px;padding:11px 16px;font-size:18px;line-height:1.33333}.wf-has-feedback{position:relative}.wf-has-feedback .wf-form-control{padding-right:47.5px}.wf-form-control-feedback{position:absolute;top:0;right:0;z-index:2;display:block;width:38px;height:38px;line-height:38px;text-align:center;pointer-events:none}.wf-input-lg+.wf-form-control-feedback,.wf-input-group-lg+.wf-form-control-feedback,.wf-form-group-lg .wf-form-control+.wf-form-control-feedback{width:46px;height:46px;line-height:46px}.wf-input-sm+.wf-form-control-feedback,.wf-input-group-sm+.wf-form-control-feedback,.wf-form-group-sm .wf-form-control+.wf-form-control-feedback{width:30px;height:30px;line-height:30px}.wf-has-success .wf-help-block,.wf-has-success .wf-control-label,.wf-has-success .wf-radio,.wf-has-success .wf-checkbox,.wf-has-success .wf-radio-inline,.wf-has-success .wf-checkbox-inline,.wf-has-success.wf-radio label,.wf-has-success.wf-checkbox label,.wf-has-success.wf-radio-inline label,.wf-has-success.wf-checkbox-inline label{color:#3c763d}.wf-has-success .wf-form-control{border-color:#3c763d;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.wf-has-success .wf-form-control:focus{border-color:#2b542c;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #67b168;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #67b168}.wf-has-success .wf-input-group-addon{color:#3c763d;border-color:#3c763d;background-color:#dff0d8}.wf-has-success .wf-form-control-feedback{color:#3c763d}.wf-has-warning .wf-help-block,.wf-has-warning .wf-control-label,.wf-has-warning .wf-radio,.wf-has-warning .wf-checkbox,.wf-has-warning .wf-radio-inline,.wf-has-warning .wf-checkbox-inline,.wf-has-warning.wf-radio label,.wf-has-warning.wf-checkbox label,.wf-has-warning.wf-radio-inline label,.wf-has-warning.wf-checkbox-inline label{color:#8a6d3b}.wf-has-warning .wf-form-control{border-color:#8a6d3b;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.wf-has-warning .wf-form-control:focus{border-color:#66512c;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #c0a16b;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #c0a16b}.wf-has-warning .wf-input-group-addon{color:#8a6d3b;border-color:#8a6d3b;background-color:#fcf8e3}.wf-has-warning .wf-form-control-feedback{color:#8a6d3b}.wf-has-error .wf-help-block,.wf-has-error .wf-control-label,.wf-has-error .wf-radio,.wf-has-error .wf-checkbox,.wf-has-error .wf-radio-inline,.wf-has-error .wf-checkbox-inline,.wf-has-error.wf-radio label,.wf-has-error.wf-checkbox label,.wf-has-error.wf-radio-inline label,.wf-has-error.wf-checkbox-inline label{color:#a94442}.wf-has-error .wf-form-control{border-color:#a94442;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.wf-has-error .wf-form-control:focus{border-color:#843534;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #ce8483;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #ce8483}.wf-has-error .wf-input-group-addon{color:#a94442;border-color:#a94442;background-color:#f2dede}.wf-has-error .wf-form-control-feedback{color:#a94442}.wf-has-feedback label ~ .wf-form-control-feedback{top:25px}.wf-has-feedback label.wf-sr-only ~ .wf-form-control-feedback{top:0}.wf-help-block{display:block;margin-top:5px;color:#737373}@media (min-width: 768px){.wf-form-inline .wf-form-group{display:inline-block;margin-bottom:0;vertical-align:middle}.wf-form-inline .wf-form-control{display:inline-block;width:auto;vertical-align:middle}.wf-form-inline .wf-form-control-static{display:inline-block}.wf-form-inline .wf-input-group{display:inline-table;vertical-align:middle}.wf-form-inline .wf-input-group .wf-input-group-addon,.wf-form-inline .wf-input-group .wf-input-group-btn,.wf-form-inline .wf-input-group .wf-form-control{width:auto}.wf-form-inline .wf-input-group>.wf-form-control{width:100%}.wf-form-inline .wf-control-label{margin-bottom:0;vertical-align:middle}.wf-form-inline .wf-radio,.wf-form-inline .wf-checkbox{display:inline-block;margin-top:0;margin-bottom:0;vertical-align:middle}.wf-form-inline .wf-radio label,.wf-form-inline .wf-checkbox label{padding-left:0}.wf-form-inline .wf-radio input[type="radio"],.wf-form-inline .wf-checkbox input[type="checkbox"]{position:relative;margin-left:0}.wf-form-inline .wf-has-feedback .wf-form-control-feedback{top:0}}.wf-form-horizontal .wf-radio,.wf-form-horizontal .wf-checkbox,.wf-form-horizontal .wf-radio-inline,.wf-form-horizontal .wf-checkbox-inline{margin-top:0;margin-bottom:0;padding-top:1.5rem}.wf-form-horizontal .wf-radio,.wf-form-horizontal .wf-checkbox{min-height:29px}.wf-form-horizontal .wf-form-group{margin-left:-15px;margin-right:-15px}.wf-form-horizontal .wf-form-group:before,.wf-form-horizontal .wf-form-group:after{content:" ";display:table}.wf-form-horizontal .wf-form-group:after{clear:both}@media (min-width: 768px){.wf-form-horizontal .wf-control-label{text-align:right;margin-bottom:0;padding-top:1.5rem}}.wf-form-horizontal .wf-has-feedback .wf-form-control-feedback{right:15px}@media (min-width: 768px){.wf-form-horizontal .wf-form-group-lg .wf-control-label{padding-top:11px;font-size:18px}}@media (min-width: 768px){.wf-form-horizontal .wf-form-group-sm .wf-control-label{padding-top:6px;font-size:12px}}#wf-dashboard .wf-block .wf-block-content .wf-block-labeled-value.wf-global-status .wf-block-labeled-value-value,#wf-global-options .wf-block .wf-block-content .wf-block-labeled-value.wf-global-status .wf-block-labeled-value-value{padding-top:0}#wf-dashboard .wf-block .wf-block-content .wf-block-labeled-value.wf-global-status .wf-block-labeled-value-value .wf-fa,#wf-global-options .wf-block .wf-block-content .wf-block-labeled-value.wf-global-status .wf-block-labeled-value-value .wf-fa{font-size:8rem}#wf-dashboard .wf-block .wf-block-content .wf-block-labeled-value.wf-global-status .wf-block-labeled-value-value svg,#wf-global-options .wf-block .wf-block-content .wf-block-labeled-value.wf-global-status .wf-block-labeled-value-value svg{width:140px}#wf-dashboard .wf-block .wf-block-content .wf-block-labeled-value.wf-global-status .wf-block-labeled-value-label,#wf-global-options .wf-block .wf-block-content .wf-block-labeled-value.wf-global-status .wf-block-labeled-value-label{font-size:1.3125rem;font-weight:300;line-height:1.5;padding-bottom:0}#wf-dashboard .wf-block .wf-block-content .wf-block-labeled-value.wf-global-status-full-enabled,#wf-global-options .wf-block .wf-block-content .wf-block-labeled-value.wf-global-status-full-enabled{background-color:#00709e}#wf-dashboard .wf-block .wf-block-content .wf-block-labeled-value.wf-global-status-full-enabled .wf-block-labeled-value-value,#wf-global-options .wf-block .wf-block-content .wf-block-labeled-value.wf-global-status-full-enabled .wf-block-labeled-value-value{color:#ffffff}#wf-dashboard .wf-block .wf-block-content .wf-block-labeled-value.wf-global-status-full-enabled .wf-block-labeled-value-label,#wf-global-options .wf-block .wf-block-content .wf-block-labeled-value.wf-global-status-full-enabled .wf-block-labeled-value-label{color:#ffffff;padding:0}#wf-dashboard .wf-block .wf-block-content .wf-block-labeled-value.wf-global-status-enabled .wf-block-labeled-value-value,#wf-global-options .wf-block .wf-block-content .wf-block-labeled-value.wf-global-status-enabled .wf-block-labeled-value-value{color:#11967a}#wf-dashboard .wf-block .wf-block-content .wf-block-labeled-value.wf-global-status-enabled .wf-block-labeled-value-value svg,#wf-global-options .wf-block .wf-block-content .wf-block-labeled-value.wf-global-status-enabled .wf-block-labeled-value-value svg{fill:#11967a}#wf-dashboard .wf-block .wf-block-content .wf-block-labeled-value.wf-global-status-enabled .wf-block-labeled-value-label,#wf-global-options .wf-block .wf-block-content .wf-block-labeled-value.wf-global-status-enabled .wf-block-labeled-value-label{color:#11967a}#wf-dashboard .wf-block .wf-block-content .wf-block-labeled-value.wf-global-status-learning-mode .wf-block-labeled-value-value,#wf-dashboard .wf-block .wf-block-content .wf-block-labeled-value.wf-global-status-disabled .wf-block-labeled-value-value,#wf-global-options .wf-block .wf-block-content .wf-block-labeled-value.wf-global-status-learning-mode .wf-block-labeled-value-value,#wf-global-options .wf-block .wf-block-content .wf-block-labeled-value.wf-global-status-disabled .wf-block-labeled-value-value{color:#9f9fa0}#wf-dashboard .wf-block .wf-block-content .wf-block-labeled-value.wf-global-status-learning-mode .wf-block-labeled-value-value svg,#wf-dashboard .wf-block .wf-block-content .wf-block-labeled-value.wf-global-status-disabled .wf-block-labeled-value-value svg,#wf-global-options .wf-block .wf-block-content .wf-block-labeled-value.wf-global-status-learning-mode .wf-block-labeled-value-value svg,#wf-global-options .wf-block .wf-block-content .wf-block-labeled-value.wf-global-status-disabled .wf-block-labeled-value-value svg{fill:#9f9fa0}#wf-dashboard .wf-block .wf-block-content .wf-block-labeled-value.wf-global-status-learning-mode .wf-block-labeled-value-label,#wf-dashboard .wf-block .wf-block-content .wf-block-labeled-value.wf-global-status-disabled .wf-block-labeled-value-label,#wf-global-options .wf-block .wf-block-content .wf-block-labeled-value.wf-global-status-learning-mode .wf-block-labeled-value-label,#wf-global-options .wf-block .wf-block-content .wf-block-labeled-value.wf-global-status-disabled .wf-block-labeled-value-label{color:#9f9fa0}#wf-dashboard .wf-block .wf-block-content .wf-block-labeled-value.wf-protection-status .wf-block-labeled-value-value .wf-fa,#wf-global-options .wf-block .wf-block-content .wf-block-labeled-value.wf-protection-status .wf-block-labeled-value-value .wf-fa{font-size:7rem}#wf-dashboard .wf-block .wf-block-content .wf-block-labeled-value.wf-protection-status .wf-block-labeled-value-value svg,#wf-global-options .wf-block .wf-block-content .wf-block-labeled-value.wf-protection-status .wf-block-labeled-value-value svg{width:120px}#wf-dashboard .wf-block .wf-block-content .wf-block-labeled-value.wf-protection-status .wf-block-labeled-value-label,#wf-global-options .wf-block .wf-block-content .wf-block-labeled-value.wf-protection-status .wf-block-labeled-value-label{font-size:1.15rem;font-weight:300}#wf-dashboard .wf-block .wf-block-content .wf-block-labeled-value.wf-protection-status-premium .wf-block-labeled-value-value,#wf-global-options .wf-block .wf-block-content .wf-block-labeled-value.wf-protection-status-premium .wf-block-labeled-value-value{color:#00709e}#wf-dashboard .wf-block .wf-block-content .wf-block-labeled-value.wf-protection-status-premium .wf-block-labeled-value-value svg,#wf-global-options .wf-block .wf-block-content .wf-block-labeled-value.wf-protection-status-premium .wf-block-labeled-value-value svg{fill:#00709e}#wf-dashboard .wf-block .wf-block-content .wf-block-labeled-value.wf-protection-status-premium .wf-block-labeled-value-label,#wf-global-options .wf-block .wf-block-content .wf-block-labeled-value.wf-protection-status-premium .wf-block-labeled-value-label{color:#00709e}.wf-dashboard-item{position:relative;margin:0 auto 1rem;padding:0 1rem;box-sizing:border-box;background:#fff;box-shadow:0 0 0 1px rgba(200,215,225,0.5),0 1px 2px #e9eff3}.wf-dashboard-item .wf-dashboard-item-inner{min-height:44px;padding:1rem 0;width:100%;box-sizing:border-box;display:-webkit-flex;display:flex;-webkit-align-items:center;align-items:center;-webkit-justify-content:space-between;justify-content:space-between;position:relative}.wf-dashboard-item .wf-dashboard-item-inner .wf-dashboard-item-content{max-width:75%}.wf-dashboard-item .wf-dashboard-item-inner .wf-dashboard-item-content .wf-dashboard-item-title{font-family:Roboto,"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:0.875rem;width:100%}.wf-dashboard-item .wf-dashboard-item-inner .wf-dashboard-item-content .wf-dashboard-item-subtitle{margin-top:.125rem;margin-bottom:.125rem;font-size:.575rem;color:#4f748e}.wf-dashboard-item .wf-dashboard-item-inner .wf-dashboard-item-action{position:absolute;top:0;right:0;height:100%;background:none;border:0;outline:0;width:48px;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;vertical-align:middle;transition:transform 0.15s cubic-bezier(0.175, 0.885, 0.32, 1.275),color 0.2s ease-in}.wf-dashboard-item .wf-dashboard-item-inner .wf-dashboard-item-action.wf-dashboard-item-action-text{width:auto}.wf-dashboard-item .wf-dashboard-item-inner .wf-dashboard-item-action.wf-dashboard-item-action-text.wf-dashboard-item-action-text-success{color:#11967a}.wf-dashboard-item .wf-dashboard-item-inner .wf-dashboard-item-action.wf-dashboard-item-action-text.wf-dashboard-item-action-text-warning{color:#930000}.wf-dashboard-item .wf-dashboard-item-inner .wf-dashboard-item-action.wf-dashboard-item-action-text.wf-dashboard-item-action-text-warning a{color:#930000}.wf-dashboard-item .wf-dashboard-item-inner .wf-dashboard-item-action .wf-dashboard-item-action-chevron{background:url("data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPCFET0NUWVBFIHN2ZyBQVUJMSUMgIi0vL1czQy8vRFREIFNWRyAxLjEvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvR3JhcGhpY3MvU1ZHLzEuMS9EVEQvc3ZnMTEuZHRkIj4KPHN2ZyB2ZXJzaW9uPSIxLjEiIGlkPSJjaGV2cm9uLW9iamVjdCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgeD0iMHB4IiB5PSIwcHgiCgkgd2lkdGg9IjI0cHgiIGhlaWdodD0iMjRweCIgdmlld0JveD0iMCAwIDI0IDI0IiBlbmFibGUtYmFja2dyb3VuZD0ibmV3IDAgMCAyNCAyNCIKCSB4bWw6c3BhY2U9InByZXNlcnZlIj4KPHBhdGggaWQ9ImNoZXZyb24iIGQ9Ik0yMCA5bC04IDgtOC04IDEuNDE0LTEuNDE0TDEyIDE0LjE3Mmw2LjU4Ni02LjU4NiIvPgo8L3N2Zz4K");background-repeat:no-repeat;background-position:center center;width:24px;height:24px;fill:#87a6bc}.wf-dashboard-item .wf-dashboard-item-inner .wf-dashboard-item-action .wf-dashboard-item-action-checkbox{background-image:url(../images/checkbox.png);background-repeat:no-repeat;background-position:left center;width:29px;height:29px}.wf-dashboard-item .wf-dashboard-item-inner .wf-dashboard-item-action .wf-dashboard-item-action-checkbox.checked{background-position:right center}.wf-dashboard-item .wf-dashboard-item-extra{display:none;margin:0 -1rem;padding:0 1rem}.wf-dashboard-item .wf-dashboard-item-extra .wf-dashboard-item-list{margin:0 -1rem;padding:0;list-style:none}.wf-dashboard-item .wf-dashboard-item-extra .wf-dashboard-item-list.wf-dashboard-item-list-striped>li:nth-of-type(odd){background-color:#f9f9f9}.wf-dashboard-item .wf-dashboard-item-extra .wf-dashboard-item-list.wf-dashboard-item-list-striped>li:nth-of-type(odd).wf-notification{border-left:4px solid #f9f9f9}.wf-dashboard-item .wf-dashboard-item-extra .wf-dashboard-item-list.wf-dashboard-item-list-striped>li:nth-of-type(odd).wf-notification.wf-notification-warning{border-left:4px solid #fcb214}.wf-dashboard-item .wf-dashboard-item-extra .wf-dashboard-item-list.wf-dashboard-item-list-striped>li:nth-of-type(odd).wf-notification.wf-notification-critical{border-left:4px solid #930000}.wf-dashboard-item .wf-dashboard-item-extra .wf-dashboard-item-list.wf-dashboard-item-list-striped>li:nth-of-type(even){background-color:#ffffff}.wf-dashboard-item .wf-dashboard-item-extra .wf-dashboard-item-list.wf-dashboard-item-list-striped>li:nth-of-type(even).wf-notification{border-left:4px solid #ffffff}.wf-dashboard-item .wf-dashboard-item-extra .wf-dashboard-item-list.wf-dashboard-item-list-striped>li:nth-of-type(even).wf-notification.wf-notification-warning{border-left:4px solid #fcb214}.wf-dashboard-item .wf-dashboard-item-extra .wf-dashboard-item-list.wf-dashboard-item-list-striped>li:nth-of-type(even).wf-notification.wf-notification-critical{border-left:4px solid #930000}.wf-dashboard-item .wf-dashboard-item-extra .wf-dashboard-item-list>li{display:block;min-height:44px;padding:0 1rem;margin:0;border-top:1px solid #eeeeee;box-sizing:border-box;display:-webkit-flex;display:flex;-webkit-align-items:center;align-items:center;-webkit-justify-content:space-between;justify-content:space-between}.wf-dashboard-item .wf-dashboard-item-extra .wf-dashboard-item-list>li>*:first-child{-webkit-flex-grow:1;flex-grow:1;min-width:0}.wf-dashboard-item .wf-dashboard-item-extra .wf-dashboard-item-list.wf-dashboard-item-list-horizontal{box-sizing:border-box;margin-top:-1px;display:-webkit-flex;display:flex;-webkit-align-items:stretch;align-items:stretch;-webkit-align-content:flex-start;align-content:flex-start;-webkit-justify-content:space-between;justify-content:space-between;-webkit-flex-wrap:wrap;flex-wrap:wrap}.wf-dashboard-item .wf-dashboard-item-extra .wf-dashboard-item-list.wf-dashboard-item-list-horizontal>li{-webkit-flex-grow:1;flex-grow:1;-webkit-flex-basis:100%;flex-basis:100%;border-left:1px solid #eeeeee}@media (min-width: 768px){.wf-dashboard-item .wf-dashboard-item-extra .wf-dashboard-item-list.wf-dashboard-item-list-horizontal>li{-webkit-flex-basis:50%;flex-basis:50%}}@media (min-width: 992px){.wf-dashboard-item .wf-dashboard-item-extra .wf-dashboard-item-list.wf-dashboard-item-list-horizontal>li{-webkit-flex-basis:25%;flex-basis:25%}}.wf-dashboard-item .wf-dashboard-item-extra .wf-dashboard-item-list.wf-dashboard-item-list-horizontal>*:first-child{border-left:0}@media (min-width: 768px){.wf-dashboard-item .wf-dashboard-item-extra .wf-dashboard-item-list.wf-dashboard-item-list-horizontal.wf-dashboard-item-list-equal>li{max-width:50%}}@media (min-width: 992px){.wf-dashboard-item .wf-dashboard-item-extra .wf-dashboard-item-list.wf-dashboard-item-list-horizontal.wf-dashboard-item-list-equal>li{max-width:25%}}.wf-dashboard-item .wf-dashboard-item-extra .wf-dashboard-item-list .wf-dashboard-item-list-state{text-align:center}@media (min-width: 1200px){.wf-dashboard-item .wf-dashboard-item-extra .wf-dashboard-item-list .wf-dashboard-item-list-state{text-align:left}}.wf-dashboard-item .wf-dashboard-item-extra .wf-dashboard-item-list .wf-dashboard-item-list-state-enabled .fa{color:#11967a}.wf-dashboard-item .wf-dashboard-item-extra .wf-dashboard-item-list .wf-dashboard-item-list-state-disabled .fa{color:#525355}.wf-dashboard-item .wf-dashboard-item-extra .wf-dashboard-item-list .wf-dashboard-item-list-state-premium{color:#9f9fa0}.wf-dashboard-item .wf-dashboard-item-extra .wf-dashboard-item-list .wf-dashboard-item-list-dismiss{padding-left:2rem;font-size:1.25rem}.wf-dashboard-item .wf-dashboard-item-extra .wf-dashboard-item-list .wf-dashboard-item-list-dismiss a{color:#525355}.wf-dashboard-item .wf-dashboard-item-extra .wf-dashboard-item-labeled-count{box-sizing:border-box;display:-webkit-flex;display:flex;-webkit-align-items:center;align-items:center;-webkit-justify-content:space-between;justify-content:space-between;-webkit-flex-direction:column;flex-direction:column}.wf-dashboard-item .wf-dashboard-item-extra .wf-dashboard-item-labeled-count-count{font-size:3rem;line-height:3rem;color:#9f9fa0;padding:1rem}.wf-dashboard-item .wf-dashboard-item-extra .wf-dashboard-item-labeled-count-label{font-size:0.75rem;color:#9f9fa0;padding:0 1rem 1rem 1rem}.wf-dashboard-item.active .wf-dashboard-item-extra{display:block}.wf-dashboard-item.wf-dashboard-item-left .wf-dashboard-item-content{margin-left:48px}.wf-dashboard-item.wf-dashboard-item-left .wf-dashboard-item-action{right:auto;left:0px}.wf-dashboard-item.disabled .wf-dashboard-item-content .wf-dashboard-item-title{color:#aaaaaa}.wf-dashboard-item.disabled .wf-dashboard-item-content .wf-dashboard-item-subtitle{color:#8ea6be}.wf-notifications-empty{font-size:0.9rem;color:#9f9fa0}.wf-dashboard-graph-wrapper{width:100%}.wf-dashboard-badge{display:inline-block;min-width:10px;padding:3px 7px;margin-left:0.5rem;font-size:12px;font-weight:bold;color:#fff;line-height:1;vertical-align:middle;white-space:nowrap;text-align:center;background-color:#fcb214;border-radius:10px}.wf-dashboard-badge:empty{display:none}.wf-btn .wf-dashboard-badge{position:relative;top:-1px}.wf-btn-xs .wf-dashboard-badge,.wf-btn-group-xs>.wf-btn .wf-dashboard-badge,.wf-btn-group-xs>.wf-btn .wf-dashboard-badge{top:0;padding:1px 5px}.wf-list-group-item.active>.wf-dashboard-badge,.wf-nav-pills>.active>a>.wf-dashboard-badge{color:#00709e;background-color:#fff}.wf-list-group-item>.wf-dashboard-badge{float:right}.wf-list-group-item>.wf-dashboard-badge+.wf-dashboard-badge{margin-right:5px}.wf-nav-pills>li>a>.wf-dashboard-badge{margin-left:3px}.wf-dashboard-toggle-btns{text-align:center}.wf-dashboard-toggle-btns .wf-pagination{margin:1rem 1rem 0.5rem 1rem}.wf-dashboard-show-more{position:relative;font-size:14px;color:#959595;text-align:center;line-height:1rem;background:#ffffff;width:60%;margin:20px auto 0 auto}.wf-dashboard-show-more:before{display:inline-block;content:"";position:absolute;height:1px;background:#dddddd;top:50%;width:100%;left:0;right:0}.wf-dashboard-show-more a{display:inline-block;position:relative;padding:0 10px;background-color:#ffffff}.wf-ips,.wf-recent-logins,.wf-countries{max-height:30rem;overflow-y:hidden;margin-bottom:20px}.wf-ips .wf-table,.wf-recent-logins .wf-table,.wf-countries .wf-table{margin-bottom:0}.wf-dashboard-last-updated{font-style:italic;font-size:0.6rem;text-align:center;padding-bottom:1rem;margin:0}.wf-dashboard-navigation .wf-block-navigation-option-content{padding:1rem 0 1rem 1rem}@media (min-width: 768px){.wf-dashboard-navigation .wf-block-navigation-option-content{padding:1.5rem 0 1.5rem 1rem}}.wf-dashboard-navigation .wf-block-navigation-option-content h4{margin:0 0 0.25rem 0}.wf-dashboard-navigation .wf-block-navigation-option-content p{margin:0 0 0.45rem 0}.wf-blocks-summary{width:100%;margin:1rem 0;border-spacing:0}.wf-blocks-summary>thead>tr>th,.wf-blocks-summary>tbody>tr>th,.wf-blocks-summary>tr>th{font-weight:600;padding:0.25rem 0.25rem;white-space:nowrap}@media (min-width: 768px){.wf-blocks-summary>thead>tr>th,.wf-blocks-summary>tbody>tr>th,.wf-blocks-summary>tr>th{padding:0.25rem 1rem}}.wf-blocks-summary>thead>tr>th.wf-premium,.wf-blocks-summary>tbody>tr>th.wf-premium,.wf-blocks-summary>tr>th.wf-premium{border-top:2px solid #00709e;border-left:2px solid #00709e;border-right:2px solid #00709e;border-top-left-radius:0.5rem;border-top-right-radius:0.5rem;color:#aaa}.wf-blocks-summary>thead>tr>th,.wf-blocks-summary>tr>th{text-align:center}.wf-blocks-summary>thead>tr>th:first-child,.wf-blocks-summary>tbody>tr>th{text-align:right}.wf-blocks-summary>tbody>tr>td,.wf-blocks-summary>tfoot>tr>td,.wf-blocks-summary>tr>td{text-align:center;padding:0.25rem 0.25rem}@media (min-width: 768px){.wf-blocks-summary>tbody>tr>td,.wf-blocks-summary>tfoot>tr>td,.wf-blocks-summary>tr>td{padding:0.25rem 1rem}}.wf-blocks-summary>tbody>tr>td.wf-premium,.wf-blocks-summary>tfoot>tr>td.wf-premium,.wf-blocks-summary>tr>td.wf-premium{border-left:2px solid #00709e;border-right:2px solid #00709e;color:#aaa}.wf-blocks-summary>tfoot>tr>td.wf-premium,.wf-blocks-summary>tr:last-child>td.wf-premium{border-bottom:2px solid #00709e;border-bottom-left-radius:0.5rem;border-bottom-right-radius:0.5rem;background-color:#00709e;color:#fff}#howGetIPs-trusted-proxies{display:none}ul.wf-option.wf-option-howgetips .wf-option-howgetips-details{display:-webkit-flex;display:flex;-webkit-align-items:flex-start;align-items:flex-start;-webkit-justify-content:flex-start;justify-content:flex-start;-webkit-flex-direction:column;flex-direction:column;font-family:Roboto,"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:0.8rem;margin-top:0.5rem}@media (min-width: 768px){ul.wf-option.wf-option-howgetips .wf-option-howgetips-details{-webkit-align-items:flex-end;align-items:flex-end}}table.wf-table{background-color:transparent;border-collapse:collapse;border-spacing:0}table.wf-table td,table.wf-table th{padding:0}.wf-table caption{padding-top:8px;padding-bottom:8px;color:#777;text-align:left}.wf-table th{text-align:left}.wf-table{width:100%;max-width:100%;margin-bottom:20px}.wf-table>thead>tr>th,.wf-table>thead>tr>td,.wf-table>tbody>tr>th,.wf-table>tbody>tr>td,.wf-table>tfoot>tr>th,.wf-table>tfoot>tr>td{padding:8px;line-height:1.42857;vertical-align:top;border-top:1px solid #ddd}.wf-table>thead>tr>th{vertical-align:bottom;border-bottom:2px solid #ddd}.wf-table>caption+thead>tr:first-child>th,.wf-table>caption+thead>tr:first-child>td,.wf-table>colgroup+thead>tr:first-child>th,.wf-table>colgroup+thead>tr:first-child>td,.wf-table>thead:first-child>tr:first-child>th,.wf-table>thead:first-child>tr:first-child>td{border-top:0}.wf-table>tbody+tbody{border-top:2px solid #ddd}.wf-table .wf-table{background-color:#fff}.wf-table-condensed>thead>tr>th,.wf-table-condensed>thead>tr>td,.wf-table-condensed>tbody>tr>th,.wf-table-condensed>tbody>tr>td,.wf-table-condensed>tfoot>tr>th,.wf-table-condensed>tfoot>tr>td{padding:5px}.wf-table-bordered{border:1px solid #ddd}.wf-table-bordered>thead>tr>th,.wf-table-bordered>thead>tr>td,.wf-table-bordered>tbody>tr>th,.wf-table-bordered>tbody>tr>td,.wf-table-bordered>tfoot>tr>th,.wf-table-bordered>tfoot>tr>td{border:1px solid #ddd}.wf-table-bordered>thead>tr>th,.wf-table-bordered>thead>tr>td{border-bottom-width:2px}.wf-table-striped>tbody>tr:nth-of-type(odd){background-color:#f9f9f9}.wf-table-hover>tbody>tr:hover{background-color:#f5f5f5}table.wf-table col[class*="col-"]{position:static;float:none;display:table-column}table.wf-table td[class*="col-"],table.wf-table th[class*="col-"]{position:static;float:none;display:table-cell}.wf-table>thead>tr>td.active,.wf-table>thead>tr>th.active,.wf-table>thead>tr.active>td,.wf-table>thead>tr.active>th,.wf-table>tbody>tr>td.active,.wf-table>tbody>tr>th.active,.wf-table>tbody>tr.active>td,.wf-table>tbody>tr.active>th,.wf-table>tfoot>tr>td.active,.wf-table>tfoot>tr>th.active,.wf-table>tfoot>tr.active>td,.wf-table>tfoot>tr.active>th{background-color:#f5f5f5}.wf-table-hover>tbody>tr>td.active:hover,.wf-table-hover>tbody>tr>th.active:hover,.wf-table-hover>tbody>tr.active:hover>td,.wf-table-hover>tbody>tr:hover>.active,.wf-table-hover>tbody>tr.active:hover>th{background-color:#e8e8e8}.wf-table>thead>tr>td.success,.wf-table>thead>tr>th.success,.wf-table>thead>tr.success>td,.wf-table>thead>tr.success>th,.wf-table>tbody>tr>td.success,.wf-table>tbody>tr>th.success,.wf-table>tbody>tr.success>td,.wf-table>tbody>tr.success>th,.wf-table>tfoot>tr>td.success,.wf-table>tfoot>tr>th.success,.wf-table>tfoot>tr.success>td,.wf-table>tfoot>tr.success>th{background-color:#dff0d8}.wf-table-hover>tbody>tr>td.success:hover,.wf-table-hover>tbody>tr>th.success:hover,.wf-table-hover>tbody>tr.success:hover>td,.wf-table-hover>tbody>tr:hover>.success,.wf-table-hover>tbody>tr.success:hover>th{background-color:#d0e9c6}.wf-table>thead>tr>td.info,.wf-table>thead>tr>th.info,.wf-table>thead>tr.info>td,.wf-table>thead>tr.info>th,.wf-table>tbody>tr>td.info,.wf-table>tbody>tr>th.info,.wf-table>tbody>tr.info>td,.wf-table>tbody>tr.info>th,.wf-table>tfoot>tr>td.info,.wf-table>tfoot>tr>th.info,.wf-table>tfoot>tr.info>td,.wf-table>tfoot>tr.info>th{background-color:#d9edf7}.wf-table-hover>tbody>tr>td.info:hover,.wf-table-hover>tbody>tr>th.info:hover,.wf-table-hover>tbody>tr.info:hover>td,.wf-table-hover>tbody>tr:hover>.info,.wf-table-hover>tbody>tr.info:hover>th{background-color:#c4e3f3}.wf-table>thead>tr>td.warning,.wf-table>thead>tr>th.warning,.wf-table>thead>tr.warning>td,.wf-table>thead>tr.warning>th,.wf-table>tbody>tr>td.warning,.wf-table>tbody>tr>th.warning,.wf-table>tbody>tr.warning>td,.wf-table>tbody>tr.warning>th,.wf-table>tfoot>tr>td.warning,.wf-table>tfoot>tr>th.warning,.wf-table>tfoot>tr.warning>td,.wf-table>tfoot>tr.warning>th{background-color:#fcf8e3}.wf-table-hover>tbody>tr>td.warning:hover,.wf-table-hover>tbody>tr>th.warning:hover,.wf-table-hover>tbody>tr.warning:hover>td,.wf-table-hover>tbody>tr:hover>.warning,.wf-table-hover>tbody>tr.warning:hover>th{background-color:#faf2cc}.wf-table>thead>tr>td.danger,.wf-table>thead>tr>th.danger,.wf-table>thead>tr.danger>td,.wf-table>thead>tr.danger>th,.wf-table>tbody>tr>td.danger,.wf-table>tbody>tr>th.danger,.wf-table>tbody>tr.danger>td,.wf-table>tbody>tr.danger>th,.wf-table>tfoot>tr>td.danger,.wf-table>tfoot>tr>th.danger,.wf-table>tfoot>tr.danger>td,.wf-table>tfoot>tr.danger>th{background-color:#f2dede}.wf-table-hover>tbody>tr>td.danger:hover,.wf-table-hover>tbody>tr>th.danger:hover,.wf-table-hover>tbody>tr.danger:hover>td,.wf-table-hover>tbody>tr:hover>.danger,.wf-table-hover>tbody>tr.danger:hover>th{background-color:#ebcccc}.wf-table-responsive{overflow-x:auto;min-height:0.01%}@media screen and (max-width: 767px){.wf-table-responsive{width:100%;margin-bottom:15px;overflow-y:hidden;-ms-overflow-style:-ms-autohiding-scrollbar;border:1px solid #ddd}.wf-table-responsive>.wf-table{margin-bottom:0}.wf-table-responsive>.wf-table>thead>tr>th,.wf-table-responsive>.wf-table>thead>tr>td,.wf-table-responsive>.wf-table>tbody>tr>th,.wf-table-responsive>.wf-table>tbody>tr>td,.wf-table-responsive>.wf-table>tfoot>tr>th,.wf-table-responsive>.wf-table>tfoot>tr>td{white-space:nowrap}.wf-table-responsive>.wf-table-bordered{border:0}.wf-table-responsive>.wf-table-bordered>thead>tr>th:first-child,.wf-table-responsive>.wf-table-bordered>thead>tr>td:first-child,.wf-table-responsive>.wf-table-bordered>tbody>tr>th:first-child,.wf-table-responsive>.wf-table-bordered>tbody>tr>td:first-child,.wf-table-responsive>.wf-table-bordered>tfoot>tr>th:first-child,.wf-table-responsive>.wf-table-bordered>tfoot>tr>td:first-child{border-left:0}.wf-table-responsive>.wf-table-bordered>thead>tr>th:last-child,.wf-table-responsive>.wf-table-bordered>thead>tr>td:last-child,.wf-table-responsive>.wf-table-bordered>tbody>tr>th:last-child,.wf-table-responsive>.wf-table-bordered>tbody>tr>td:last-child,.wf-table-responsive>.wf-table-bordered>tfoot>tr>th:last-child,.wf-table-responsive>.wf-table-bordered>tfoot>tr>td:last-child{border-right:0}.wf-table-responsive>.wf-table-bordered>tbody>tr:last-child>th,.wf-table-responsive>.wf-table-bordered>tbody>tr:last-child>td,.wf-table-responsive>.wf-table-bordered>tfoot>tr:last-child>th,.wf-table-responsive>.wf-table-bordered>tfoot>tr:last-child>td{border-bottom:0}}.wf-nav{margin-bottom:0;padding-left:0;list-style:none}.wf-nav:before,.wf-nav:after{content:" ";display:table}.wf-nav:after{clear:both}.wf-nav>li{position:relative;display:block}.wf-nav>li>a{position:relative;display:block;padding:8px 12px}.wf-nav>li>a:hover,.wf-nav>li>a:focus{text-decoration:none;background-color:#e2e2e2}.wf-nav>li.wf-disabled>a{color:#777}.wf-nav>li.wf-disabled>a:hover,.wf-nav>li.wf-disabled>a:focus{color:#777;text-decoration:none;background-color:transparent;cursor:not-allowed}.wf-nav .wf-open>a,.wf-nav .wf-open>a:hover,.wf-nav .wf-open>a:focus{background-color:#e2e2e2;border-color:#00709e}.wf-nav>li>a>img{max-width:none}.wf-nav-tabs{border-bottom:1px solid #d0d0d0}.wf-nav-tabs>li{float:left;margin-bottom:-1px}.wf-nav-tabs>li>a{margin-right:2px;line-height:1.42857;border:1px solid transparent;border-radius:4px 4px 0 0}.wf-nav-tabs>li>a:hover{border-color:#e2e2e2 #e2e2e2 #d0d0d0}.wf-nav-tabs>li.wf-active>a,.wf-nav-tabs>li.wf-active>a:hover,.wf-nav-tabs>li.wf-active>a:focus{color:#555;background-color:#fff;border:1px solid #ddd;border-bottom-color:transparent;cursor:default}.wf-nav-pills>li{float:left}.wf-nav-pills>li>a{border-radius:4px;text-decoration:none;position:relative;display:block;padding:8px 12px}.wf-nav-pills>li>a:hover,.wf-nav-pills>li>a:focus{text-decoration:none !important;background-color:#e2e2e2}.wf-nav-pills>li+li{margin-left:2px}.wf-nav-pills>li.wf-active>a,.wf-nav-pills>li.wf-active>a:hover,.wf-nav-pills>li.wf-active>a:focus{color:#fff;background-color:#00709e}.wf-nav-pills.wf-nav-pills-bordered>li>a{border:1px solid #e2e2e2}.wf-nav-pills.wf-nav-pills-connected>li>a{border-radius:0;border-right-width:0px}.wf-nav-pills.wf-nav-pills-connected>li+li{margin-left:0}.wf-nav-pills.wf-nav-pills-connected>li.active+li>a{border-left-width:0px}.wf-nav-pills.wf-nav-pills-connected>li:first-of-type>a{-moz-border-radius:4px 0 0 4px;-webkit-border-radius:4px;border-radius:4px 0 0 4px}.wf-nav-pills.wf-nav-pills-connected>li:last-of-type>a{-moz-border-radius:0 4px 4px 0;-webkit-border-radius:0;border-radius:0 4px 4px 0;border-right-width:1px}.wf-nav-stacked>li{float:none}.wf-nav-stacked>li+li{margin-top:2px;margin-left:0}.wf-nav-justified,.wf-nav-tabs.wf-nav-justified{width:100%}.wf-nav-justified>li,.wf-nav-tabs.wf-nav-justified>li{float:none}.wf-nav-justified>li>a,.wf-nav-tabs.wf-nav-justified>li>a{text-align:center;margin-bottom:5px}.wf-nav-justified>.wf-dropdown .wf-dropdown-menu{top:auto;left:auto}@media (min-width: 768px){.wf-nav-justified>li,.wf-nav-tabs.wf-nav-justified>li{display:table-cell;width:1%}.wf-nav-justified>li>a,.wf-nav-tabs.wf-nav-justified>li>a{margin-bottom:0}}.wf-nav-tabs-justified,.wf-nav-tabs.wf-nav-justified{border-bottom:0}.wf-nav-tabs-justified>li>a,.wf-nav-tabs.wf-nav-justified>li>a{margin-right:0;border-radius:4px}.wf-nav-tabs-justified>.wf-active>a,.wf-nav-tabs.wf-nav-justified>.wf-active>a,.wf-nav-tabs-justified>.wf-active>a:hover,.wf-nav-tabs.wf-nav-justified>.wf-active>a:hover,.wf-nav-tabs-justified>.wf-active>a:focus,.wf-nav-tabs.wf-nav-justified>.wf-active>a:focus{border:1px solid #ddd}@media (min-width: 768px){.wf-nav-tabs-justified>li>a,.wf-nav-tabs.wf-nav-justified>li>a{border-bottom:1px solid #ddd;border-radius:4px 4px 0 0}.wf-nav-tabs-justified>.wf-active>a,.wf-nav-tabs.wf-nav-justified>.wf-active>a,.wf-nav-tabs-justified>.wf-active>a:hover,.wf-nav-tabs.wf-nav-justified>.wf-active>a:hover,.wf-nav-tabs-justified>.wf-active>a:focus,.wf-nav-tabs.wf-nav-justified>.wf-active>a:focus{border-bottom-color:#fff}}.wf-tab-content>.wf-tab-pane{display:none}.wf-tab-content>.wf-active{display:block}.wf-nav-tabs .wf-dropdown-menu{margin-top:-1px;-moz-border-radius-topleft:0;-webkit-border-top-left-radius:0;border-top-left-radius:0;-moz-border-radius-topright:0;-webkit-border-top-right-radius:0;border-top-right-radius:0}.wf-navbar-brand{float:left;padding:12px 8px;font-size:18px;line-height:20px;margin:10px 0 0 0}.wf-navbar-brand:hover,.wf-navbar-brand:focus{text-decoration:none}.wf-navbar-brand>img{display:block}@media (min-width: 768px){.navbar>.container .wf-navbar-brand,.navbar>.container-fluid .wf-navbar-brand{margin-left:-8px}}.wf-caret{display:inline-block;width:0;height:0;margin-left:2px;vertical-align:middle;border-top:4px dashed;border-top:4px solid \9;border-right:4px solid transparent;border-left:4px solid transparent}.wf-dropup,.wf-dropdown{position:relative}.wf-dropdown-toggle:focus{outline:0}.wf-dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:160px;padding:5px 0;margin:2px 0 0;list-style:none;font-size:14px;text-align:left;background-color:#fff;border:1px solid #ccc;border:1px solid rgba(0,0,0,0.15);border-radius:4px;-webkit-box-shadow:0 6px 12px rgba(0,0,0,0.175);box-shadow:0 6px 12px rgba(0,0,0,0.175);background-clip:padding-box}.wf-dropdown-menu .wf-divider{height:1px;margin:9px 0;overflow:hidden;background-color:#e5e5e5}.wf-dropdown-menu>li>a{display:block;padding:3px 20px;clear:both;font-weight:normal;line-height:1.42857;color:#333;text-decoration:none;white-space:nowrap}.wf-dropdown-menu>li>a:hover,.wf-dropdown-menu>li>a:focus{text-decoration:none;color:#262626;background-color:#f5f5f5}.wf-dropdown-menu>.wf-active>a,.wf-dropdown-menu>.wf-active>a:hover,.wf-dropdown-menu>.wf-active>a:focus{color:#fff;text-decoration:none;outline:0;background-color:#00709e}.wf-dropdown-menu>.wf-disabled>a,.wf-dropdown-menu>.wf-disabled>a:hover,.wf-dropdown-menu>.wf-disabled>a:focus{color:#777}.wf-dropdown-menu>.wf-disabled>a:hover,.wf-dropdown-menu>.wf-disabled>a:focus{text-decoration:none;background-color:transparent;background-image:none;filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);cursor:not-allowed}.wf-open>.wf-dropdown-menu{display:block}.wf-open>a{outline:0}.wf-dropdown-menu-right{left:auto;right:0}.wf-dropdown-menu-left{left:0;right:auto}.wf-dropdown-header{display:block;padding:3px 20px;font-size:12px;line-height:1.42857;color:#777;white-space:nowrap}.wf-dropdown-backdrop{position:fixed;left:0;right:0;bottom:0;top:0;z-index:990}.wf-pull-right>.wf-dropdown-menu{right:0;left:auto}.wf-dropup .wf-caret,.wf-navbar-fixed-bottom .wf-dropdown .wf-caret{border-top:0;border-bottom:4px dashed;border-bottom:4px solid \9;content:""}.wf-dropup .wf-dropdown-menu,.wf-navbar-fixed-bottom .wf-dropdown .wf-dropdown-menu{top:auto;bottom:100%;margin-bottom:2px}@media (min-width: 768px){.wf-navbar-right .wf-dropdown-menu{right:0;left:auto}.wf-navbar-right .wf-dropdown-menu-left{left:0;right:auto}}.wf-mobile-dropdown{border:1px solid #ccc;margin-left:.5em;padding:5px 10px;font-size:14px;line-height:24px;margin:10px 10px 0 0;background:#f1f1f1;color:#000;font-weight:600;text-decoration:none}.wf-blocks-table tbody tr.wf-editing,.wf-blocks-table tbody tr.wf-editing td{background-color:#fffbd8}.wf-blocked-countries-section{display:-webkit-flex;display:flex;-webkit-align-items:center;align-items:center;-webkit-justify-content:flex-start;justify-content:flex-start;-webkit-align-content:stretch;align-content:stretch;-webkit-flex-wrap:nowrap;flex-wrap:nowrap}.wf-blocked-countries-section-title{font-size:1.1rem;padding-right:0.5rem}.wf-blocked-countries-section-spacer{-webkit-flex-basis:30px;flex-basis:30px;height:1px;background:#aaa}.wf-blocked-countries-section-options{margin-bottom:0;margin-top:0;padding-left:0.5rem;list-style:none;display:-webkit-flex;display:flex;-webkit-align-items:center;align-items:center;-webkit-justify-content:flex-start;justify-content:flex-start;-webkit-align-content:stretch;align-content:stretch;-webkit-flex-wrap:nowrap;flex-wrap:nowrap}.wf-blocked-countries-section-options li{padding:0;margin:0;color:#777}.wf-blocked-countries-section-options li a{padding:2px 4px;text-decoration:none;color:#777}.wf-blocked-countries-section-options li a.active-section{background-color:#777;color:#e2e2e2}.wf-option-bypass-redirect .wf-option-title,.wf-option-bypass-cookie .wf-option-title{-webkit-align-self:flex-start;align-self:flex-start}.wf-option-bypass-redirect *,.wf-option-bypass-cookie *{-webkit-flex-grow:1;flex-grow:1}.wf-option-bypass-redirect *:first-child,.wf-option-bypass-cookie *:first-child{-webkit-flex-grow:0;flex-grow:0}.wf-option-bypass-redirect>*:last-child,.wf-option-bypass-cookie>*:last-child{margin-right:1rem}.wf-country-block-map{width:300px}@media (min-width: 768px){.wf-country-block-map{width:500px}}@media (min-width: 992px){.wf-country-block-map{width:700px}}@media (min-width: 1200px){.wf-country-block-map{width:700px}}#wf-create-block{width:100%}#wf-create-block th{white-space:nowrap}#wf-create-block td{width:100%}#wf-create-block td.wf-block-type{width:auto}@media (min-width: 768px){#wf-create-block{width:500px}}@media (min-width: 992px){#wf-create-block{width:700px}}@media (min-width: 1200px){#wf-create-block{width:700px}}#wf-create-block .wf-block-add-country select{width:240px}@media (min-width: 768px){#wf-create-block .wf-block-add-country select{width:280px}}@media (min-width: 992px){#wf-create-block .wf-block-add-country select{width:320px}}#wf-create-block .wf-block-add-country .select2-container--default,#wf-create-block .wf-block-add-country .select2-container--default .select2-selection--multiple{border-color:#e2e2e2}#wf-create-block .wf-block-add-country .select2-container--default .select2-selection__choice,#wf-create-block .wf-block-add-country .select2-container--default .select2-selection--multiple .select2-selection__choice{background-color:#ffffff;border-color:#e2e2e2;padding:0.5rem}#wf-create-block .wf-block-add-country .select2-container--default .select2-search__field,#wf-create-block .wf-block-add-country .select2-container--default .select2-selection--multiple .select2-search__field{margin-right:5px;margin-top:5px;padding:0.5rem 0}#wfcolorbox .wf-country-selector-controls,.wf-drawer .wf-country-selector-controls{display:-webkit-flex;display:flex;-webkit-align-items:center;align-items:center;-webkit-justify-content:space-between;justify-content:space-between;-webkit-align-content:stretch;align-content:stretch;-webkit-flex-wrap:nowrap;flex-wrap:nowrap;-webkit-flex-shrink:0;flex-shrink:0}#wfcolorbox .wf-country-selector-controls .wf-country-selector-section-options,.wf-drawer .wf-country-selector-controls .wf-country-selector-section-options{display:-webkit-flex;display:flex;-webkit-align-items:center;align-items:center;-webkit-justify-content:space-between;justify-content:space-between;-webkit-align-content:stretch;align-content:stretch;-webkit-flex-wrap:nowrap;flex-wrap:nowrap}#wfcolorbox .wf-country-selector-controls .wf-country-selector-section-options>li,.wf-drawer .wf-country-selector-controls .wf-country-selector-section-options>li{border:1px solid #ffffff;border-radius:4px;padding:0.25rem;background-color:#ffffff}#wfcolorbox .wf-country-selector-controls .wf-country-selector-section-options>li:hover,#wfcolorbox .wf-country-selector-controls .wf-country-selector-section-options>li:focus,.wf-drawer .wf-country-selector-controls .wf-country-selector-section-options>li:hover,.wf-drawer .wf-country-selector-controls .wf-country-selector-section-options>li:focus{background-color:#00709e;border-color:#00709e}#wfcolorbox .wf-country-selector-controls .wf-country-selector-section-options>li:hover>a,#wfcolorbox .wf-country-selector-controls .wf-country-selector-section-options>li:focus>a,.wf-drawer .wf-country-selector-controls .wf-country-selector-section-options>li:hover>a,.wf-drawer .wf-country-selector-controls .wf-country-selector-section-options>li:focus>a{color:#ffffff}#wfcolorbox .wf-country-selector-controls .wf-country-selector-section-options>li>a,.wf-drawer .wf-country-selector-controls .wf-country-selector-section-options>li>a{text-decoration:none;color:#525355}#wfcolorbox .wf-country-selector-options .wf-blocked-countries,.wf-drawer .wf-country-selector-options .wf-blocked-countries{margin-bottom:0;margin-top:1rem;list-style:none;margin-left:-6px;display:-webkit-flex;display:flex;-webkit-align-items:stretch;align-items:stretch;-webkit-justify-content:flex-start;justify-content:flex-start;-webkit-align-content:stretch;align-content:stretch;-webkit-flex-wrap:wrap;flex-wrap:wrap}#wfcolorbox .wf-country-selector-options .wf-blocked-countries>li,.wf-drawer .wf-country-selector-options .wf-blocked-countries>li{display:-webkit-flex;display:flex;-webkit-align-items:center;align-items:center;-webkit-justify-content:center;justify-content:center;margin:0px 0px 2px 6px;text-align:center;border:1px solid #e2e2e2;border-radius:4px;padding:8px 12px;background-color:#ffffff;-webkit-flex-basis:38%;flex-basis:38%}@media (min-width: 768px){#wfcolorbox .wf-country-selector-options .wf-blocked-countries>li,.wf-drawer .wf-country-selector-options .wf-blocked-countries>li{-webkit-flex-basis:20%;flex-basis:20%}}@media (min-width: 992px){#wfcolorbox .wf-country-selector-options .wf-blocked-countries>li,.wf-drawer .wf-country-selector-options .wf-blocked-countries>li{-webkit-flex-basis:15%;flex-basis:15%}}@media (min-width: 1200px){#wfcolorbox .wf-country-selector-options .wf-blocked-countries>li,.wf-drawer .wf-country-selector-options .wf-blocked-countries>li{-webkit-flex-basis:10%;flex-basis:10%}}#wfcolorbox .wf-country-selector-options .wf-blocked-countries>li:hover,#wfcolorbox .wf-country-selector-options .wf-blocked-countries>li:focus,.wf-drawer .wf-country-selector-options .wf-blocked-countries>li:hover,.wf-drawer .wf-country-selector-options .wf-blocked-countries>li:focus{text-decoration:none;background-color:#e2e2e2}#wfcolorbox .wf-country-selector-options .wf-blocked-countries>li.disabled>a,.wf-drawer .wf-country-selector-options .wf-blocked-countries>li.disabled>a{color:#777}#wfcolorbox .wf-country-selector-options .wf-blocked-countries>li.disabled>a:hover,#wfcolorbox .wf-country-selector-options .wf-blocked-countries>li.disabled>a:focus,.wf-drawer .wf-country-selector-options .wf-blocked-countries>li.disabled>a:hover,.wf-drawer .wf-country-selector-options .wf-blocked-countries>li.disabled>a:focus{color:#777;text-decoration:none;background-color:transparent;cursor:not-allowed}#wfcolorbox .wf-country-selector-options .wf-blocked-countries>li>a,.wf-drawer .wf-country-selector-options .wf-blocked-countries>li>a{text-decoration:none;position:relative;display:block}#wfcolorbox .wf-country-selector-options .wf-blocked-countries>li.wf-active,#wfcolorbox .wf-country-selector-options .wf-blocked-countries>li.wf-active:hover,#wfcolorbox .wf-country-selector-options .wf-blocked-countries>li.wf-active:focus,.wf-drawer .wf-country-selector-options .wf-blocked-countries>li.wf-active,.wf-drawer .wf-country-selector-options .wf-blocked-countries>li.wf-active:hover,.wf-drawer .wf-country-selector-options .wf-blocked-countries>li.wf-active:focus{background-color:#00709e;border-color:#00709e}#wfcolorbox .wf-country-selector-options .wf-blocked-countries>li.wf-active>a,#wfcolorbox .wf-country-selector-options .wf-blocked-countries>li.wf-active:hover>a,#wfcolorbox .wf-country-selector-options .wf-blocked-countries>li.wf-active:focus>a,.wf-drawer .wf-country-selector-options .wf-blocked-countries>li.wf-active>a,.wf-drawer .wf-country-selector-options .wf-blocked-countries>li.wf-active:hover>a,.wf-drawer .wf-country-selector-options .wf-blocked-countries>li.wf-active:focus>a{color:#fff}#wfcolorbox .wf-country-selector-options .wf-blocked-countries>li.text-only,.wf-drawer .wf-country-selector-options .wf-blocked-countries>li.text-only{position:relative;display:block;padding:8px 12px}#wfcolorbox .wf-country-selector-options .wf-blocked-countries>li>a>img,.wf-drawer .wf-country-selector-options .wf-blocked-countries>li>a>img{max-width:none}.wf-tag-selected{background-color:#ffffff;border:1px solid #e2e2e2;border-radius:4px;cursor:default;float:left;margin-right:5px !important;margin-top:5px !important;list-style:none;padding:0.5rem !important}.wf-destroy-tag-selected{color:#999;cursor:pointer;display:inline-block;font-weight:bold;margin-right:2px}.wf-destroy-tag-selected:hover{text-decoration:none}.wf-tags-show-hide-more{float:left;margin-right:5px;margin-top:5px;list-style:none;padding:0.5rem}.wf-select2-hide-tags .select2-selection__choice{display:none}.wf-country-selector-outer-wrapper{position:relative;-webkit-flex-grow:1;flex-grow:1}.wf-country-selector-outer-wrapper .wf-country-selector-inner-wrapper{position:absolute;top:0px;right:0px;bottom:0px;left:0px;overflow-x:hidden;overflow-y:auto}table.wf-dataTable{width:auto;max-width:800px;clear:both;border-collapse:collapse;border-spacing:0}table.wf-dataTable>thead th,table.wf-dataTable>tfoot th{font-weight:bold}table.wf-dataTable>thead th,table.wf-dataTable>thead td{cursor:pointer;text-align:left;font-size:11px;border:1px solid #ccc;padding:8px 4px 5px 9px;text-transform:uppercase}table.wf-dataTable>thead th:active,table.wf-dataTable>thead td:active{outline:none}table.wf-dataTable>tfoot th,table.wf-dataTable>tfoot td{padding:10px 18px 6px 18px;border-top:1px solid #111}table.wf-dataTable>thead .sorting,table.wf-dataTable>thead .sorting_asc,table.wf-dataTable>thead .sorting_desc{cursor:pointer;*cursor:hand}table.wf-dataTable>thead .sorting,table.wf-dataTable>thead .sorting_asc,table.wf-dataTable>thead .sorting_desc,table.wf-dataTable>thead .sorting_asc_disabled,table.wf-dataTable>thead .sorting_desc_disabled{background-repeat:no-repeat;background-position:center right}table.wf-dataTable>thead .sorting{background-image:url(../images/sort_both.png)}table.wf-dataTable>thead .sorting_asc{background-image:url(../images/sort_asc.png)}table.wf-dataTable>thead .sorting_desc{background-image:url(../images/sort_desc.png)}table.wf-dataTable>thead .sorting_asc_disabled{background-image:url(../images/sort_asc_disabled.png)}table.wf-dataTable>thead .sorting_desc_disabled{background-image:url(../images/sort_desc_disabled.png)}table.wf-dataTable>tbody>tr{background-color:#ffffff}table.wf-dataTable>tbody>tr.selected{background-color:#B0BED9}table.wf-dataTable>tbody>tr>th,table.wf-dataTable>tbody>tr>td{padding:5px 8px}table.wf-dataTable.row-border>tbody>tr>th,table.wf-dataTable.row-border>tbody>tr>td,table.wf-dataTable.display>tbody>tr>th,table.wf-dataTable.display>tbody>tr>td{border:1px solid #cccccc}table.wf-dataTable.row-border>tbody>tr:first-child>th,table.wf-dataTable.row-border>tbody>tr:first-child>td,table.wf-dataTable.display>tbody>tr:first-child>th,table.wf-dataTable.display>tbody>tr:first-child>td{border-top:none}table.wf-dataTable.cell-border>tbody>tr>th,table.wf-dataTable.cell-border>tbody>tr>td{border-top:1px solid #ddd;border-right:1px solid #ddd}table.wf-dataTable.cell-border>tbody>tr>th:first-child,table.wf-dataTable.cell-border>tbody>tr>td:first-child{border-left:1px solid #ddd}table.wf-dataTable.cell-border>tbody>tr:first-child>th,table.wf-dataTable.cell-border>tbody>tr:first-child>td{border-top:none}table.wf-dataTable.stripe>tbody>tr.odd,table.wf-dataTable.display>tbody>tr.odd{background-color:#f9f9f9}table.wf-dataTable.stripe>tbody>tr.odd.selected,table.wf-dataTable.display>tbody>tr.odd.selected{background-color:#acbad4}table.wf-dataTable.hover>tbody>tr:hover,table.wf-dataTable.display>tbody>tr:hover{background-color:#f6f6f6}table.wf-dataTable.hover>tbody>tr:hover.selected,table.wf-dataTable.display>tbody>tr:hover.selected{background-color:#aab7d1}table.wf-dataTable.order-column>tbody>tr>.sorting_1,table.wf-dataTable.order-column>tbody>tr>.sorting_2,table.wf-dataTable.order-column>tbody>tr>.sorting_3,table.wf-dataTable.display tbody>tr>.sorting_1,table.wf-dataTable.display>tbody>tr>.sorting_2,table.wf-dataTable.display>tbody>tr>.sorting_3{background-color:#fafafa}table.wf-dataTable.order-column>tbody>tr.selected>.sorting_1,table.wf-dataTable.order-column>tbody>tr.selected>.sorting_2,table.wf-dataTable.order-column>tbody>tr.selected>.sorting_3,table.wf-dataTable.display>tbody>tr.selected>.sorting_1,table.wf-dataTable.display>tbody>tr.selected>.sorting_2,table.wf-dataTable.display>tbody>tr.selected>.sorting_3{background-color:#acbad5}table.wf-dataTable.display>tbody>tr.odd>.sorting_1,table.wf-dataTable.order-column.stripe>tbody>tr.odd>.sorting_1{background-color:#f1f1f1}table.wf-dataTable.display>tbody>tr.odd>.sorting_2,table.wf-dataTable.order-column.stripe>tbody>tr.odd>.sorting_2{background-color:#f3f3f3}table.wf-dataTable.display>tbody>tr.odd>.sorting_3,table.wf-dataTable.order-column.stripe>tbody>tr.odd>.sorting_3{background-color:whitesmoke}table.wf-dataTable.display>tbody>tr.odd.selected>.sorting_1,table.wf-dataTable.order-column.stripe>tbody>tr.odd.selected>.sorting_1{background-color:#a6b4cd}table.wf-dataTable.display>tbody>tr.odd.selected>.sorting_2,table.wf-dataTable.order-column.stripe>tbody>tr.odd.selected>.sorting_2{background-color:#a8b5cf}table.wf-dataTable.display>tbody>tr.odd.selected>.sorting_3,table.wf-dataTable.order-column.stripe>tbody>tr.odd.selected>.sorting_3{background-color:#a9b7d1}table.wf-dataTable.display>tbody>tr.even>.sorting_1,table.wf-dataTable.order-column.stripe>tbody>tr.even>.sorting_1{background-color:#fafafa}table.wf-dataTable.display>tbody>tr.even>.sorting_2,table.wf-dataTable.order-column.stripe>tbody>tr.even>.sorting_2{background-color:#fcfcfc}table.wf-dataTable.display>tbody>tr.even>.sorting_3,table.wf-dataTable.order-column.stripe>tbody>tr.even>.sorting_3{background-color:#fefefe}table.wf-dataTable.display>tbody>tr.even.selected>.sorting_1,table.wf-dataTable.order-column.stripe>tbody>tr.even.selected>.sorting_1{background-color:#acbad5}table.wf-dataTable.display>tbody>tr.even.selected>.sorting_2,table.wf-dataTable.order-column.stripe>tbody>tr.even.selected>.sorting_2{background-color:#aebcd6}table.wf-dataTable.display>tbody>tr.even.selected>.sorting_3,table.wf-dataTable.order-column.stripe>tbody>tr.even.selected>.sorting_3{background-color:#afbdd8}table.wf-dataTable.display>tbody>tr:hover>.sorting_1,table.wf-dataTable.order-column.hover>tbody>tr:hover>.sorting_1{background-color:#eaeaea}table.wf-dataTable.display>tbody>tr:hover>.sorting_2,table.wf-dataTable.order-column.hover>tbody>tr:hover>.sorting_2{background-color:#ececec}table.wf-dataTable.display>tbody>tr:hover>.sorting_3,table.wf-dataTable.order-column.hover>tbody>tr:hover>.sorting_3{background-color:#efefef}table.wf-dataTable.display>tbody>tr:hover.selected>.sorting_1,table.wf-dataTable.order-column.hover>tbody>tr:hover.selected>.sorting_1{background-color:#a2aec7}table.wf-dataTable.display>tbody>tr:hover.selected>.sorting_2,table.wf-dataTable.order-column.hover>tbody>tr:hover.selected>.sorting_2{background-color:#a3b0c9}table.wf-dataTable.display>tbody>tr:hover.selected>.sorting_3,table.wf-dataTable.order-column.hover>tbody>tr:hover.selected>.sorting_3{background-color:#a5b2cb}table.wf-dataTable.no-footer{border-bottom:1px solid #111}table.wf-dataTable.nowrap th,table.wf-dataTable.nowrap td{white-space:nowrap}table.wf-dataTable.compact thead th,table.wf-dataTable.compact thead td{padding:4px 17px 4px 4px}table.wf-dataTable.compact tfoot th,table.wf-dataTable.compact tfoot td{padding:4px}table.wf-dataTable.compact>tbody>tr>th,table.wf-dataTable.compact>tbody>tr>td{padding:4px}table.wf-dataTable th.dt-left,table.wf-dataTable td.dt-left{text-align:left}table.wf-dataTable th.dt-center,table.wf-dataTable td.dt-center,table.wf-dataTable td.dataTables_empty{text-align:center}table.wf-dataTable th.dt-right,table.wf-dataTable td.dt-right{text-align:right}table.wf-dataTable th.dt-justify,table.wf-dataTable td.dt-justify{text-align:justify}table.wf-dataTable th.dt-nowrap,table.wf-dataTable td.dt-nowrap{white-space:nowrap}table.wf-dataTable thead th.dt-head-left,table.wf-dataTable thead td.dt-head-left,table.wf-dataTable tfoot th.dt-head-left,table.wf-dataTable tfoot td.dt-head-left{text-align:left}table.wf-dataTable thead th.dt-head-center,table.wf-dataTable thead td.dt-head-center,table.wf-dataTable tfoot th.dt-head-center,table.wf-dataTable tfoot td.dt-head-center{text-align:center}table.wf-dataTable thead th.dt-head-right,table.wf-dataTable thead td.dt-head-right,table.wf-dataTable tfoot th.dt-head-right,table.wf-dataTable tfoot td.dt-head-right{text-align:right}table.wf-dataTable thead th.dt-head-justify,table.wf-dataTable thead td.dt-head-justify,table.wf-dataTable tfoot th.dt-head-justify,table.wf-dataTable tfoot td.dt-head-justify{text-align:justify}table.wf-dataTable thead th.dt-head-nowrap,table.wf-dataTable thead td.dt-head-nowrap,table.wf-dataTable tfoot th.dt-head-nowrap,table.wf-dataTable tfoot td.dt-head-nowrap{white-space:nowrap}table.wf-dataTable>tbody>tr>th.dt-body-left,table.wf-dataTable>tbody>tr>td.dt-body-left{text-align:left}table.wf-dataTable>tbody>tr>th.dt-body-center,table.wf-dataTable>tbody>tr>td.dt-body-center{text-align:center}table.wf-dataTable>tbody>tr>th.dt-body-right,table.wf-dataTable>tbody>tr>td.dt-body-right{text-align:right}table.wf-dataTable>tbody>tr>th.dt-body-justify,table.wf-dataTable>tbody>tr>td.dt-body-justify{text-align:justify}table.wf-dataTable>tbody>tr>th.dt-body-nowrap,table.wf-dataTable>tbody>tr>td.dt-body-nowrap{white-space:nowrap}table.wf-dataTable table.dataTable,table.wf-dataTable th,table.wf-dataTable td{-webkit-box-sizing:content-box;box-sizing:content-box}.wf-dataTables_wrapper{position:relative;clear:both;*zoom:1;zoom:1}.wf-dataTables_wrapper .dataTables_length{float:left}.wf-dataTables_wrapper .dataTables_filter{float:right;text-align:right}.wf-dataTables_wrapper .dataTables_filter input{margin-left:0.5em}.wf-dataTables_wrapper .dataTables_info{clear:both;float:left;padding-top:0.755em}.wf-dataTables_wrapper .dataTables_paginate{float:right;text-align:right;padding-top:0.25em}.wf-dataTables_wrapper .dataTables_paginate .paginate_button{box-sizing:border-box;display:inline-block;min-width:1.5em;padding:0.5em 1em;margin-left:2px;text-align:center;text-decoration:none !important;cursor:pointer;*cursor:hand;color:#333 !important;border:1px solid transparent;border-radius:2px}.wf-dataTables_wrapper .dataTables_paginate .paginate_button.current,.wf-dataTables_wrapper .dataTables_paginate .paginate_button.current:hover{color:#333 !important;border:1px solid #979797;background-color:white;background:-webkit-gradient(linear, left top, left bottom, color-stop(0%, #fff), color-stop(100%, #dcdcdc));background:-webkit-linear-gradient(top, #fff 0%, #dcdcdc 100%);background:-moz-linear-gradient(top, #fff 0%, #dcdcdc 100%);background:-ms-linear-gradient(top, #fff 0%, #dcdcdc 100%);background:-o-linear-gradient(top, #fff 0%, #dcdcdc 100%);background:linear-gradient(to bottom, #ffffff 0%,#dcdcdc 100%)}.wf-dataTables_wrapper .dataTables_paginate .paginate_button.disabled,.wf-dataTables_wrapper .dataTables_paginate .paginate_button.disabled:hover,.wf-dataTables_wrapper .dataTables_paginate .paginate_button.disabled:active{cursor:default;color:#666 !important;border:1px solid transparent;background:transparent;box-shadow:none}.wf-dataTables_wrapper .dataTables_paginate .paginate_button:hover{color:white !important;border:1px solid #111;background-color:#585858;background:-webkit-gradient(linear, left top, left bottom, color-stop(0%, #585858), color-stop(100%, #111));background:-webkit-linear-gradient(top, #585858 0%, #111 100%);background:-moz-linear-gradient(top, #585858 0%, #111 100%);background:-ms-linear-gradient(top, #585858 0%, #111 100%);background:-o-linear-gradient(top, #585858 0%, #111 100%);background:linear-gradient(to bottom, #585858 0%,#111111 100%)}.wf-dataTables_wrapper .dataTables_paginate .paginate_button:active{outline:none;background-color:#2b2b2b;background:-webkit-gradient(linear, left top, left bottom, color-stop(0%, #2b2b2b), color-stop(100%, #0c0c0c));background:-webkit-linear-gradient(top, #2b2b2b 0%, #0c0c0c 100%);background:-moz-linear-gradient(top, #2b2b2b 0%, #0c0c0c 100%);background:-ms-linear-gradient(top, #2b2b2b 0%, #0c0c0c 100%);background:-o-linear-gradient(top, #2b2b2b 0%, #0c0c0c 100%);background:linear-gradient(to bottom, #2b2b2b 0%,#0c0c0c 100%);box-shadow:inset 0 0 3px #111}.wf-dataTables_wrapper .dataTables_paginate .ellipsis{padding:0 1em}.wf-dataTables_wrapper .dataTables_processing{position:absolute;top:50%;left:50%;width:100%;height:40px;margin-left:-50%;margin-top:-25px;padding-top:20px;text-align:center;font-size:1.2em;background-color:white;background:-webkit-gradient(linear, left top, right top, color-stop(0%, rgba(255,255,255,0)), color-stop(25%, rgba(255,255,255,0.9)), color-stop(75%, rgba(255,255,255,0.9)), color-stop(100%, rgba(255,255,255,0)));background:-webkit-linear-gradient(left, rgba(255,255,255,0) 0%, rgba(255,255,255,0.9) 25%, rgba(255,255,255,0.9) 75%, rgba(255,255,255,0) 100%);background:-moz-linear-gradient(left, rgba(255,255,255,0) 0%, rgba(255,255,255,0.9) 25%, rgba(255,255,255,0.9) 75%, rgba(255,255,255,0) 100%);background:-ms-linear-gradient(left, rgba(255,255,255,0) 0%, rgba(255,255,255,0.9) 25%, rgba(255,255,255,0.9) 75%, rgba(255,255,255,0) 100%);background:-o-linear-gradient(left, rgba(255,255,255,0) 0%, rgba(255,255,255,0.9) 25%, rgba(255,255,255,0.9) 75%, rgba(255,255,255,0) 100%);background:linear-gradient(to right, rgba(255,255,255,0) 0%,rgba(255,255,255,0.9) 25%,rgba(255,255,255,0.9) 75%,rgba(255,255,255,0) 100%)}.wf-dataTables_wrapper .dataTables_length,.wf-dataTables_wrapper .dataTables_filter,.wf-dataTables_wrapper .dataTables_info,.wf-dataTables_wrapper .dataTables_processing,.wf-dataTables_wrapper .dataTables_paginate{color:#333}.wf-dataTables_wrapper .dataTables_scroll{clear:both}.wf-dataTables_wrapper .dataTables_scroll div.dataTables_scrollBody{*margin-top:-1px;-webkit-overflow-scrolling:touch}.wf-dataTables_wrapper .dataTables_scroll div.dataTables_scrollBody th,.wf-dataTables_wrapper .dataTables_scroll div.dataTables_scrollBody td{vertical-align:middle}.wf-dataTables_wrapper .dataTables_scroll div.dataTables_scrollBody th>div.dataTables_sizing,.wf-dataTables_wrapper .dataTables_scroll div.dataTables_scrollBody td>div.dataTables_sizing{height:0;overflow:hidden;margin:0 !important;padding:0 !important}.wf-dataTables_wrapper.no-footer .dataTables_scrollBody{border-bottom:1px solid #111}.wf-dataTables_wrapper.no-footer div.dataTables_scrollHead table,.wf-dataTables_wrapper.no-footer div.dataTables_scrollBody table{border-bottom:none}.wf-dataTables_wrapper:after{visibility:hidden;display:block;content:"";clear:both;height:0}@media screen and (max-width: 767px){.wf-dataTables_wrapper .dataTables_info,.wf-dataTables_wrapper .dataTables_paginate{float:none;text-align:center}.wf-dataTables_wrapper .dataTables_paginate{margin-top:0.5em}}@media screen and (max-width: 640px){.wf-dataTables_wrapper .dataTables_length,.wf-dataTables_wrapper .dataTables_filter{float:none;text-align:center}.wf-dataTables_wrapper .dataTables_filter{margin-top:0.5em}}.wf-alert{padding:15px;margin-bottom:20px;border:1px solid transparent;border-radius:4px}.wf-alert h4{margin-top:0;color:inherit}.wf-alert .wf-alert-link{font-weight:bold}.wf-alert>p,.wf-alert>ul{margin-bottom:0}.wf-alert>p+p{margin-top:5px}.wf-alert-dismissable,.wf-alert-dismissible{padding-right:35px}.wf-alert-dismissable .close,.wf-alert-dismissible .close{position:relative;top:-2px;right:-21px;color:inherit}.wf-alert-success{background-color:#dff0d8;border-color:#d6e9c6;color:#3c763d}.wf-alert-success hr{border-top-color:#c9e2b3}.wf-alert-success .alert-link{color:#2b542c}.wf-alert-info{background-color:#d9edf7;border-color:#bce8f1;color:#31708f}.wf-alert-info hr{border-top-color:#a6e1ec}.wf-alert-info .alert-link{color:#245269}.wf-alert-warning{background-color:#fcf8e3;border-color:#faebcc;color:#8a6d3b}.wf-alert-warning hr{border-top-color:#f7e1b5}.wf-alert-warning .alert-link{color:#66512c}.wf-alert-danger{background-color:#f2dede;border-color:#ebccd1;color:#a94442}.wf-alert-danger hr{border-top-color:#e4b9c0}.wf-alert-danger .alert-link{color:#843534}#wf-tools-password-audit .wf-premium-callout img{max-width:800px;margin:20px 0 0}#wf-tools-whois #wfrawhtml .wf-flex-row{margin:.5rem 0 1rem}#wf-tools-whois #wfrawhtml .wf-flex-row a.wf-flex-row-1{color:#444;text-decoration:none}#wf-tools-whois #wfrawhtml .wf-flex-row a.wf-flex-row-1:hover{color:#00a0d2;text-decoration:underline}.wf-diagnostic-fail.wf-block .wf-block-header .wf-block-header-content .wf-block-title{color:#d0514c}.wf-diagnostic-fail.wf-block .wf-block-header .wf-block-header-content .wf-block-title:before{content:'\f100';font-family:"Ionicons";display:inline-block;margin:0 .4rem 0 0}#wf-diagnostics .wf-block{margin:0 auto 0.5rem}#wf-diagnostics-other-tests .wf-btn-sm,#wf-diagnostics-other-tests .wf-btn-group-sm>.wf-btn{padding:2px 10px;vertical-align:top}#wfAdvancedCommentScanningOption .wf-premium-link{display:none}.wf-support-block{padding:1rem 0}.wf-support-block>h4{margin:0;padding:0 0 1rem 0}.wf-support-block>h4>a{text-decoration:none;font-size:1.3125rem;line-height:1.5;font-weight:300}.wf-support-block>p{margin:0;padding:0}.wf-support-block>ul{display:-webkit-flex;display:flex;-webkit-align-items:center;align-items:center;-webkit-justify-content:flex-start;justify-content:flex-start;-webkit-flex-direction:row;flex-direction:row;-webkit-flex-wrap:wrap;flex-wrap:wrap;margin:0;padding:0}.wf-support-block>ul>li{margin:0;padding:1rem 1rem 1rem 0}.wf-support-block>ul>li>a{text-decoration:none;font-size:.875rem;line-height:1.3125;font-weight:normal}.wf-support-top-block,.wf-support-missing-block{padding:1.5rem 0}.wf-support-top-block>h4,.wf-support-missing-block>h4{margin:0;padding:0}.wf-support-top-block>ol>li,.wf-support-missing-block>ol>li{margin:0.75rem 0;padding:0}.wf-support-top-block>ol>li>a,.wf-support-missing-block>ol>li>a{text-decoration:none;font-size:.875rem;line-height:1.3125;font-weight:normal}
|
|
css/main.1518460764.css
ADDED
@@ -0,0 +1 @@
|
|
|
1 |
+
.wf-clearfix:before,.wf-clearfix:after{content:" ";display:table}.wf-clearfix:after{clear:both}.wf-btn{display:inline-block;margin-bottom:0;font-weight:normal;text-align:center;vertical-align:middle;touch-action:manipulation;cursor:pointer;background-image:none;border:1px solid transparent;white-space:nowrap;text-transform:uppercase;padding:.4rem 1rem;font-size:.875rem;line-height:1.3125rem;border-radius:4px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}@media (min-width: 768px){.wf-btn{padding:.5rem 1.25rem;font-size:.875rem;line-height:1.3125rem;border-radius:4px}}.wf-btn:focus,.wf-btn.wf-focus,.wf-btn:active:focus,.wf-btn:active.wf-focus,.wf-btn.wf-active:focus,.wf-btn.wf-active.wf-focus{outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}.wf-btn:hover,.wf-btn:focus,.wf-btn.wf-focus{color:#00709e;text-decoration:none}.wf-btn:active,.wf-btn.wf-active{outline:0;background-image:none;-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,0.125);box-shadow:inset 0 3px 5px rgba(0,0,0,0.125)}.wf-btn.wf-disabled,.wf-btn[disabled],.wf-btn[readonly],fieldset[disabled] .wf-btn{cursor:not-allowed;-webkit-box-shadow:none;box-shadow:none}a.wf-btn{text-decoration:none}a.wf-btn.wf-disabled,fieldset[disabled] a.wf-btn{cursor:not-allowed;pointer-events:none}.wf-btn-default{color:#00709e;background-color:#fff;border-color:#00709e}.wf-btn-default:focus,.wf-btn-default.focus{color:#00709e;background-color:#e6e6e6;border-color:#00161f}.wf-btn-default:hover{color:#00709e;background-color:#e6e6e6;border-color:#004561}.wf-btn-default:active,.wf-btn-default.active,.wf-open>.wf-btn-default.wf-dropdown-toggle{color:#00709e;background-color:#e6e6e6;border-color:#004561}.wf-btn-default:active:hover,.wf-btn-default:active:focus,.wf-btn-default:active.focus,.wf-btn-default.active:hover,.wf-btn-default.active:focus,.wf-btn-default.active.focus,.wf-open>.wf-btn-default.wf-dropdown-toggle:hover,.wf-open>.wf-btn-default.wf-dropdown-toggle:focus,.wf-open>.wf-btn-default.wf-dropdown-toggle.focus{color:#00709e;background-color:#d4d4d4;border-color:#00161f}.wf-btn-default:active,.wf-btn-default.wf-active,.wf-open>.wf-btn-default.wf-dropdown-toggle{background-image:none}.wf-btn-default.wf-disabled,.wf-btn-default[disabled],.wf-btn-default[readonly],fieldset[disabled] .wf-btn-default{color:#777;background-color:#fff;border-color:#e2e2e2;cursor:not-allowed}.wf-btn-default.wf-disabled:hover,.wf-btn-default.wf-disabled:focus,.wf-btn-default.wf-disabled.wf-focus,.wf-btn-default[disabled]:hover,.wf-btn-default[disabled]:focus,.wf-btn-default[disabled].wf-focus,.wf-btn-default[readonly]:hover,.wf-btn-default[readonly]:focus,.wf-btn-default[readonly].wf-focus,fieldset[disabled] .wf-btn-default:hover,fieldset[disabled] .wf-btn-default:focus,fieldset[disabled] .wf-btn-default.wf-focus{background-color:#fff;border-color:#00709e}.wf-btn-default .wf-badge{color:#fff;background-color:#00709e}.wf-btn-primary{color:#fff;background-color:#00709e;border-color:#005e85}.wf-btn-primary:focus,.wf-btn-primary.focus{color:#fff;background-color:#004c6b;border-color:#000405}.wf-btn-primary:hover{color:#fff;background-color:#004c6b;border-color:#003347}.wf-btn-primary:active,.wf-btn-primary.active,.wf-open>.wf-btn-primary.wf-dropdown-toggle{color:#fff;background-color:#004c6b;border-color:#003347}.wf-btn-primary:active:hover,.wf-btn-primary:active:focus,.wf-btn-primary:active.focus,.wf-btn-primary.active:hover,.wf-btn-primary.active:focus,.wf-btn-primary.active.focus,.wf-open>.wf-btn-primary.wf-dropdown-toggle:hover,.wf-open>.wf-btn-primary.wf-dropdown-toggle:focus,.wf-open>.wf-btn-primary.wf-dropdown-toggle.focus{color:#fff;background-color:#003347;border-color:#000405}.wf-btn-primary:active,.wf-btn-primary.wf-active,.wf-open>.wf-btn-primary.wf-dropdown-toggle{background-image:none}.wf-btn-primary.wf-disabled,.wf-btn-primary[disabled],.wf-btn-primary[readonly],fieldset[disabled] .wf-btn-primary{color:#fff;background-color:#59a2c0;border-color:#5996b0;cursor:not-allowed}.wf-btn-primary.wf-disabled:hover,.wf-btn-primary.wf-disabled:focus,.wf-btn-primary.wf-disabled.wf-focus,.wf-btn-primary[disabled]:hover,.wf-btn-primary[disabled]:focus,.wf-btn-primary[disabled].wf-focus,.wf-btn-primary[readonly]:hover,.wf-btn-primary[readonly]:focus,.wf-btn-primary[readonly].wf-focus,fieldset[disabled] .wf-btn-primary:hover,fieldset[disabled] .wf-btn-primary:focus,fieldset[disabled] .wf-btn-primary.wf-focus{background-color:#00709e;border-color:#005e85}.wf-btn-primary .wf-badge{color:#00709e;background-color:#fff}.wf-btn-success{color:#fff;background-color:#5cb85c;border-color:#4cae4c}.wf-btn-success:focus,.wf-btn-success.focus{color:#fff;background-color:#449d44;border-color:#255625}.wf-btn-success:hover{color:#fff;background-color:#449d44;border-color:#398439}.wf-btn-success:active,.wf-btn-success.active,.wf-open>.wf-btn-success.wf-dropdown-toggle{color:#fff;background-color:#449d44;border-color:#398439}.wf-btn-success:active:hover,.wf-btn-success:active:focus,.wf-btn-success:active.focus,.wf-btn-success.active:hover,.wf-btn-success.active:focus,.wf-btn-success.active.focus,.wf-open>.wf-btn-success.wf-dropdown-toggle:hover,.wf-open>.wf-btn-success.wf-dropdown-toggle:focus,.wf-open>.wf-btn-success.wf-dropdown-toggle.focus{color:#fff;background-color:#398439;border-color:#255625}.wf-btn-success:active,.wf-btn-success.wf-active,.wf-open>.wf-btn-success.wf-dropdown-toggle{background-image:none}.wf-btn-success.wf-disabled,.wf-btn-success[disabled],.wf-btn-success[readonly],fieldset[disabled] .wf-btn-success{color:#fff;background-color:#95d195;border-color:#8bca8b;cursor:not-allowed}.wf-btn-success.wf-disabled:hover,.wf-btn-success.wf-disabled:focus,.wf-btn-success.wf-disabled.wf-focus,.wf-btn-success[disabled]:hover,.wf-btn-success[disabled]:focus,.wf-btn-success[disabled].wf-focus,.wf-btn-success[readonly]:hover,.wf-btn-success[readonly]:focus,.wf-btn-success[readonly].wf-focus,fieldset[disabled] .wf-btn-success:hover,fieldset[disabled] .wf-btn-success:focus,fieldset[disabled] .wf-btn-success.wf-focus{background-color:#5cb85c;border-color:#4cae4c}.wf-btn-success .wf-badge{color:#5cb85c;background-color:#fff}.wf-btn-info{color:#fff;background-color:#5bc0de;border-color:#46b8da}.wf-btn-info:focus,.wf-btn-info.focus{color:#fff;background-color:#31b0d5;border-color:#1b6d85}.wf-btn-info:hover{color:#fff;background-color:#31b0d5;border-color:#269abc}.wf-btn-info:active,.wf-btn-info.active,.wf-open>.wf-btn-info.wf-dropdown-toggle{color:#fff;background-color:#31b0d5;border-color:#269abc}.wf-btn-info:active:hover,.wf-btn-info:active:focus,.wf-btn-info:active.focus,.wf-btn-info.active:hover,.wf-btn-info.active:focus,.wf-btn-info.active.focus,.wf-open>.wf-btn-info.wf-dropdown-toggle:hover,.wf-open>.wf-btn-info.wf-dropdown-toggle:focus,.wf-open>.wf-btn-info.wf-dropdown-toggle.focus{color:#fff;background-color:#269abc;border-color:#1b6d85}.wf-btn-info:active,.wf-btn-info.wf-active,.wf-open>.wf-btn-info.wf-dropdown-toggle{background-image:none}.wf-btn-info.wf-disabled,.wf-btn-info[disabled],.wf-btn-info[readonly],fieldset[disabled] .wf-btn-info{color:#fff;background-color:#94d6ea;border-color:#87d1e7;cursor:not-allowed}.wf-btn-info.wf-disabled:hover,.wf-btn-info.wf-disabled:focus,.wf-btn-info.wf-disabled.wf-focus,.wf-btn-info[disabled]:hover,.wf-btn-info[disabled]:focus,.wf-btn-info[disabled].wf-focus,.wf-btn-info[readonly]:hover,.wf-btn-info[readonly]:focus,.wf-btn-info[readonly].wf-focus,fieldset[disabled] .wf-btn-info:hover,fieldset[disabled] .wf-btn-info:focus,fieldset[disabled] .wf-btn-info.wf-focus{background-color:#5bc0de;border-color:#46b8da}.wf-btn-info .wf-badge{color:#5bc0de;background-color:#fff}.wf-btn-warning{color:#fff;background-color:#f0ad4e;border-color:#eea236}.wf-btn-warning:focus,.wf-btn-warning.focus{color:#fff;background-color:#ec971f;border-color:#985f0d}.wf-btn-warning:hover{color:#fff;background-color:#ec971f;border-color:#d58512}.wf-btn-warning:active,.wf-btn-warning.active,.wf-open>.wf-btn-warning.wf-dropdown-toggle{color:#fff;background-color:#ec971f;border-color:#d58512}.wf-btn-warning:active:hover,.wf-btn-warning:active:focus,.wf-btn-warning:active.focus,.wf-btn-warning.active:hover,.wf-btn-warning.active:focus,.wf-btn-warning.active.focus,.wf-open>.wf-btn-warning.wf-dropdown-toggle:hover,.wf-open>.wf-btn-warning.wf-dropdown-toggle:focus,.wf-open>.wf-btn-warning.wf-dropdown-toggle.focus{color:#fff;background-color:#d58512;border-color:#985f0d}.wf-btn-warning:active,.wf-btn-warning.wf-active,.wf-open>.wf-btn-warning.wf-dropdown-toggle{background-image:none}.wf-btn-warning.wf-disabled,.wf-btn-warning[disabled],.wf-btn-warning[readonly],fieldset[disabled] .wf-btn-warning{color:#fff;background-color:#f5ca8c;border-color:#f4c37c;cursor:not-allowed}.wf-btn-warning.wf-disabled:hover,.wf-btn-warning.wf-disabled:focus,.wf-btn-warning.wf-disabled.wf-focus,.wf-btn-warning[disabled]:hover,.wf-btn-warning[disabled]:focus,.wf-btn-warning[disabled].wf-focus,.wf-btn-warning[readonly]:hover,.wf-btn-warning[readonly]:focus,.wf-btn-warning[readonly].wf-focus,fieldset[disabled] .wf-btn-warning:hover,fieldset[disabled] .wf-btn-warning:focus,fieldset[disabled] .wf-btn-warning.wf-focus{background-color:#f0ad4e;border-color:#eea236}.wf-btn-warning .wf-badge{color:#f0ad4e;background-color:#fff}.wf-btn-danger{color:#fff;background-color:#930000;border-color:#7a0000}.wf-btn-danger:focus,.wf-btn-danger.focus{color:#fff;background-color:#600000;border-color:#000}.wf-btn-danger:hover{color:#fff;background-color:#600000;border-color:#3c0000}.wf-btn-danger:active,.wf-btn-danger.active,.wf-open>.wf-btn-danger.wf-dropdown-toggle{color:#fff;background-color:#600000;border-color:#3c0000}.wf-btn-danger:active:hover,.wf-btn-danger:active:focus,.wf-btn-danger:active.focus,.wf-btn-danger.active:hover,.wf-btn-danger.active:focus,.wf-btn-danger.active.focus,.wf-open>.wf-btn-danger.wf-dropdown-toggle:hover,.wf-open>.wf-btn-danger.wf-dropdown-toggle:focus,.wf-open>.wf-btn-danger.wf-dropdown-toggle.focus{color:#fff;background-color:#3c0000;border-color:#000}.wf-btn-danger:active,.wf-btn-danger.wf-active,.wf-open>.wf-btn-danger.wf-dropdown-toggle{background-image:none}.wf-btn-danger.wf-disabled,.wf-btn-danger[disabled],.wf-btn-danger[readonly],fieldset[disabled] .wf-btn-danger{color:#fff;background-color:#b95959;border-color:#a95959;cursor:not-allowed}.wf-btn-danger.wf-disabled:hover,.wf-btn-danger.wf-disabled:focus,.wf-btn-danger.wf-disabled.wf-focus,.wf-btn-danger[disabled]:hover,.wf-btn-danger[disabled]:focus,.wf-btn-danger[disabled].wf-focus,.wf-btn-danger[readonly]:hover,.wf-btn-danger[readonly]:focus,.wf-btn-danger[readonly].wf-focus,fieldset[disabled] .wf-btn-danger:hover,fieldset[disabled] .wf-btn-danger:focus,fieldset[disabled] .wf-btn-danger.wf-focus{background-color:#930000;border-color:#7a0000}.wf-btn-danger .wf-badge{color:#930000;background-color:#fff}.wf-btn-callout{font-weight:600;text-transform:uppercase}.wf-btn-callout-subtle{font-weight:400;text-transform:uppercase}.wf-btn-link{color:#00709e;font-weight:normal;border-radius:0}.wf-btn-link,.wf-btn-link:active,.wf-btn-link.wf-active,.wf-btn-link[disabled],fieldset[disabled] .wf-btn-link{background-color:transparent;-webkit-box-shadow:none;box-shadow:none}.wf-btn-link,.wf-btn-link:hover,.wf-btn-link:focus,.wf-btn-link:active{border-color:transparent}.wf-btn-link:hover,.wf-btn-link:focus{color:#003a52;text-decoration:underline;background-color:transparent}.wf-btn-link[disabled]:hover,.wf-btn-link[disabled]:focus,fieldset[disabled] .wf-btn-link:hover,fieldset[disabled] .wf-btn-link:focus{color:#777;text-decoration:none}.wf-btn-lg,.wf-btn-group-lg>.wf-btn{padding:10px 16px;font-size:18px;line-height:1.33333;border-radius:6px}.wf-btn-sm,.wf-btn-group-sm>.wf-btn{padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}.wf-btn-xs,.wf-btn-group-xs>.wf-btn{padding:1px 5px;font-size:12px;line-height:1.5;border-radius:3px}.wf-btn-block{display:block;width:100%}.wf-btn-block+.wf-btn-block{margin-top:5px}input[type="submit"].wf-btn-block,input[type="reset"].wf-btn-block,input[type="button"].wf-btn-block{width:100%}.wf-btn-group,.wf-btn-group-vertical{position:relative;display:inline-block;vertical-align:middle}.wf-btn-group>.wf-btn,.wf-btn-group-vertical>.wf-btn{position:relative;float:left}.wf-btn-group>.wf-btn:hover,.wf-btn-group>.wf-btn:focus,.wf-btn-group>.wf-btn:active,.wf-btn-group>.wf-btn.wf-active,.wf-btn-group-vertical>.wf-btn:hover,.wf-btn-group-vertical>.wf-btn:focus,.wf-btn-group-vertical>.wf-btn:active,.wf-btn-group-vertical>.wf-btn.wf-active{z-index:2}.wf-btn-group .wf-btn+.wf-btn,.wf-btn-group .wf-btn+.wf-btn-group,.wf-btn-group .wf-btn-group+.wf-btn,.wf-btn-group .wf-btn-group+.wf-btn-group{margin-left:-1px}.wf-btn-toolbar{margin-left:-5px}.wf-btn-toolbar:before,.wf-btn-toolbar:after{content:" ";display:table}.wf-btn-toolbar:after{clear:both}.wf-btn-toolbar .wf-btn,.wf-btn-toolbar .wf-btn-group,.wf-btn-toolbar .wf-input-group{float:left}.wf-btn-toolbar>.wf-btn,.wf-btn-toolbar>.wf-btn-group,.wf-btn-toolbar>.wf-input-group{margin-left:5px}.wf-btn-group>.wf-btn:not(:first-child):not(:last-child):not(.wf-dropdown-toggle){border-radius:0}.wf-btn-group>.wf-btn:first-child{margin-left:0}.wf-btn-group>.wf-btn:first-child:not(:last-child):not(.wf-dropdown-toggle){-moz-border-radius-topright:0;-webkit-border-top-right-radius:0;border-top-right-radius:0;-moz-border-radius-bottomright:0;-webkit-border-bottom-right-radius:0;border-bottom-right-radius:0}.wf-btn-group>.wf-btn:last-child:not(:first-child),.wf-btn-group>.wf-dropdown-toggle:not(:first-child){-moz-border-radius-topleft:0;-webkit-border-top-left-radius:0;border-top-left-radius:0;-moz-border-radius-bottomleft:0;-webkit-border-bottom-left-radius:0;border-bottom-left-radius:0}.wf-btn-group>.wf-btn-group{float:left}.wf-btn-group>.wf-btn-group:not(:first-child):not(:last-child)>.wf-btn{border-radius:0}.wf-btn-group>.wf-btn-group:first-child:not(:last-child)>.wf-btn:last-child,.wf-btn-group>.wf-btn-group:first-child:not(:last-child)>.wf-dropdown-toggle{-moz-border-radius-topright:0;-webkit-border-top-right-radius:0;border-top-right-radius:0;-moz-border-radius-bottomright:0;-webkit-border-bottom-right-radius:0;border-bottom-right-radius:0}.wf-btn-group>.wf-btn-group:last-child:not(:first-child)>.wf-btn:first-child{-moz-border-radius-topleft:0;-webkit-border-top-left-radius:0;border-top-left-radius:0;-moz-border-radius-bottomleft:0;-webkit-border-bottom-left-radius:0;border-bottom-left-radius:0}.wf-btn-group .wf-dropdown-toggle:active,.wf-btn-group.wf-open .wf-dropdown-toggle{outline:0}.wf-btn-group>.wf-btn+.wf-dropdown-toggle{padding-left:8px;padding-right:8px}.wf-btn-group>.wf-btn-lg+.wf-dropdown-toggle,.wf-btn-group-lg.wf-btn-group>.wf-btn+.wf-dropdown-toggle{padding-left:12px;padding-right:12px}.wf-btn-group.open .wf-dropdown-toggle{-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,0.125);box-shadow:inset 0 3px 5px rgba(0,0,0,0.125)}.wf-btn-group.open .wf-dropdown-toggle.wf-btn-link{-webkit-box-shadow:none;box-shadow:none}.wf-btn .wf-caret{margin-left:0}.wf-btn-lg .wf-caret,.wf-btn-group-lg>.wf-btn .wf-caret{border-width:5px 5px 0;border-bottom-width:0}.wf-dropup .wf-btn-lg .wf-caret,.wf-dropup .wf-btn-group-lg>.wf-btn .wf-caret{border-width:0 5px 5px}.wf-btn-group-vertical>.wf-btn,.wf-btn-group-vertical>.wf-btn-group,.wf-btn-group-vertical>.wf-btn-group>.wf-btn{display:block;float:none;width:100%;max-width:100%}.wf-btn-group-vertical>.wf-btn-group:before,.wf-btn-group-vertical>.wf-btn-group:after{content:" ";display:table}.wf-btn-group-vertical>.wf-btn-group:after{clear:both}.wf-btn-group-vertical>.wf-btn-group>.wf-btn{float:none}.wf-btn-group-vertical>.wf-btn+.wf-btn,.wf-btn-group-vertical>.wf-btn+.wf-btn-group,.wf-btn-group-vertical>.wf-btn-group+.wf-btn,.wf-btn-group-vertical>.wf-btn-group+.wf-btn-group{margin-top:-1px;margin-left:0}.wf-btn-group-vertical>.wf-btn:not(:first-child):not(:last-child){border-radius:0}.wf-btn-group-vertical>.wf-btn:first-child:not(:last-child){-moz-border-radius-topleft:4px;-webkit-border-top-left-radius:4px;border-top-left-radius:4px;-moz-border-radius-topright:4px;-webkit-border-top-right-radius:4px;border-top-right-radius:4px;-moz-border-radius-bottomleft:0;-webkit-border-bottom-left-radius:0;border-bottom-left-radius:0;-moz-border-radius-bottomright:0;-webkit-border-bottom-right-radius:0;border-bottom-right-radius:0}.wf-btn-group-vertical>.wf-btn:last-child:not(:first-child){-moz-border-radius-topleft:0;-webkit-border-top-left-radius:0;border-top-left-radius:0;-moz-border-radius-topright:0;-webkit-border-top-right-radius:0;border-top-right-radius:0;-moz-border-radius-bottomleft:4px;-webkit-border-bottom-left-radius:4px;border-bottom-left-radius:4px;-moz-border-radius-bottomright:4px;-webkit-border-bottom-right-radius:4px;border-bottom-right-radius:4px}.wf-btn-group-vertical>.wf-btn-group:not(:first-child):not(:last-child)>.wf-btn{border-radius:0}.wf-btn-group-vertical>.wf-btn-group:first-child:not(:last-child)>.wf-btn:last-child,.wf-btn-group-vertical>.wf-btn-group:first-child:not(:last-child)>.wf-dropdown-toggle{-moz-border-radius-bottomleft:0;-webkit-border-bottom-left-radius:0;border-bottom-left-radius:0;-moz-border-radius-bottomright:0;-webkit-border-bottom-right-radius:0;border-bottom-right-radius:0}.wf-btn-group-vertical>.wf-btn-group:last-child:not(:first-child)>.wf-btn:first-child{-moz-border-radius-topleft:0;-webkit-border-top-left-radius:0;border-top-left-radius:0;-moz-border-radius-topright:0;-webkit-border-top-right-radius:0;border-top-right-radius:0}.wf-btn-group-justified{display:table;width:100%;table-layout:fixed;border-collapse:separate}.wf-btn-group-justified>.wf-btn,.wf-btn-group-justified>.wf-btn-group{float:none;display:table-cell;width:1%}.wf-btn-group-justified>.wf-btn-group .wf-btn{width:100%}.wf-btn-group-justified>.wf-btn-group .wf-dropdown-menu{left:auto}[data-toggle="buttons"]>.wf-btn input[type="radio"],[data-toggle="buttons"]>.wf-btn input[type="checkbox"],[data-toggle="buttons"]>.wf-btn-group>.wf-btn input[type="radio"],[data-toggle="buttons"]>.wf-btn-group>.wf-btn input[type="checkbox"]{position:absolute;clip:rect(0, 0, 0, 0);pointer-events:none}.wf-pagination{display:inline-block;padding-left:0;margin:20px 0;border-radius:4px}.wf-pagination>li{display:inline}.wf-pagination>li>a,.wf-pagination>li>span{position:relative;float:left;padding:.5rem 1.25rem;line-height:1.42857;text-decoration:none;color:#00709e;background-color:#fff;border:1px solid #ddd;margin-left:-1px}.wf-pagination>li:first-child>a,.wf-pagination>li:first-child>span{margin-left:0;-moz-border-radius-topleft:4px;-webkit-border-top-left-radius:4px;border-top-left-radius:4px;-moz-border-radius-bottomleft:4px;-webkit-border-bottom-left-radius:4px;border-bottom-left-radius:4px}.wf-pagination>li:last-child>a,.wf-pagination>li:last-child>span{-moz-border-radius-topright:4px;-webkit-border-top-right-radius:4px;border-top-right-radius:4px;-moz-border-radius-bottomright:4px;-webkit-border-bottom-right-radius:4px;border-bottom-right-radius:4px}.wf-pagination>li>a:hover,.wf-pagination>li>a:focus,.wf-pagination>li>span:hover,.wf-pagination>li>span:focus{z-index:2;color:#003a52;background-color:#e2e2e2;border-color:#ddd}.wf-pagination>.wf-active>a,.wf-pagination>.wf-active>a:hover,.wf-pagination>.wf-active>a:focus,.wf-pagination>.wf-active>span,.wf-pagination>.wf-active>span:hover,.wf-pagination>.wf-active>span:focus{z-index:3;color:#fff;background-color:#00709e;border-color:#00709e;cursor:default}.wf-pagination>.wf-disabled>span,.wf-pagination>.wf-disabled>span:hover,.wf-pagination>.wf-disabled>span:focus,.wf-pagination>.wf-disabled>a,.wf-pagination>.wf-disabled>a:hover,.wf-pagination>.wf-disabled>a:focus{color:#777;background-color:#fff;border-color:#ddd;cursor:not-allowed}.wf-pagination-lg>li>a,.wf-pagination-lg>li>span{padding:10px 16px;font-size:18px;line-height:1.33333}.wf-pagination-lg>li:first-child>a,.wf-pagination-lg>li:first-child>span{-moz-border-radius-topleft:6px;-webkit-border-top-left-radius:6px;border-top-left-radius:6px;-moz-border-radius-bottomleft:6px;-webkit-border-bottom-left-radius:6px;border-bottom-left-radius:6px}.wf-pagination-lg>li:last-child>a,.wf-pagination-lg>li:last-child>span{-moz-border-radius-topright:6px;-webkit-border-top-right-radius:6px;border-top-right-radius:6px;-moz-border-radius-bottomright:6px;-webkit-border-bottom-right-radius:6px;border-bottom-right-radius:6px}.wf-pagination-sm>li>a,.wf-pagination-sm>li>span{padding:5px 10px;font-size:12px;line-height:1.5}.wf-pagination-sm>li:first-child>a,.wf-pagination-sm>li:first-child>span{-moz-border-radius-topleft:3px;-webkit-border-top-left-radius:3px;border-top-left-radius:3px;-moz-border-radius-bottomleft:3px;-webkit-border-bottom-left-radius:3px;border-bottom-left-radius:3px}.wf-pagination-sm>li:last-child>a,.wf-pagination-sm>li:last-child>span{-moz-border-radius-topright:3px;-webkit-border-top-right-radius:3px;border-top-right-radius:3px;-moz-border-radius-bottomright:3px;-webkit-border-bottom-right-radius:3px;border-bottom-right-radius:3px}@-ms-viewport{width:device-width}.wf-visible-xs{display:none !important}.wf-visible-sm{display:none !important}.wf-visible-md{display:none !important}.wf-visible-lg{display:none !important}.wf-visible-xs-block,.wf-visible-xs-inline,.wf-visible-xs-inline-block,.wf-visible-sm-block,.wf-visible-sm-inline,.wf-visible-sm-inline-block,.wf-visible-md-block,.wf-visible-md-inline,.wf-visible-md-inline-block,.wf-visible-lg-block,.wf-visible-lg-inline,.wf-visible-lg-inline-block{display:none !important}@media (max-width: 767px){.wf-visible-xs{display:block !important}table.wf-visible-xs{display:table !important}tr.wf-visible-xs{display:table-row !important}th.wf-visible-xs,td.wf-visible-xs{display:table-cell !important}}@media (max-width: 767px){.wf-visible-xs-block{display:block !important}}@media (max-width: 767px){.wf-visible-xs-inline{display:inline !important}}@media (max-width: 767px){.wf-visible-xs-inline-block{display:inline-block !important}}@media (min-width: 768px) and (max-width: 991px){.wf-visible-sm{display:block !important}table.wf-visible-sm{display:table !important}tr.wf-visible-sm{display:table-row !important}th.wf-visible-sm,td.wf-visible-sm{display:table-cell !important}}@media (min-width: 768px) and (max-width: 991px){.wf-visible-sm-block{display:block !important}}@media (min-width: 768px) and (max-width: 991px){.wf-visible-sm-inline{display:inline !important}}@media (min-width: 768px) and (max-width: 991px){.wf-visible-sm-inline-block{display:inline-block !important}}@media (min-width: 992px) and (max-width: 1199px){.wf-visible-md{display:block !important}table.wf-visible-md{display:table !important}tr.wf-visible-md{display:table-row !important}th.wf-visible-md,td.wf-visible-md{display:table-cell !important}}@media (min-width: 992px) and (max-width: 1199px){.wf-visible-md-block{display:block !important}}@media (min-width: 992px) and (max-width: 1199px){.wf-visible-md-inline{display:inline !important}}@media (min-width: 992px) and (max-width: 1199px){.wf-visible-md-inline-block{display:inline-block !important}}@media (min-width: 1200px){.wf-visible-lg{display:block !important}table.wf-visible-lg{display:table !important}tr.wf-visible-lg{display:table-row !important}th.wf-visible-lg,td.wf-visible-lg{display:table-cell !important}}@media (min-width: 1200px){.wf-visible-lg-block{display:block !important}}@media (min-width: 1200px){.wf-visible-lg-inline{display:inline !important}}@media (min-width: 1200px){.wf-visible-lg-inline-block{display:inline-block !important}}@media (max-width: 767px){.wf-hidden-xs{display:none !important}}@media (min-width: 768px) and (max-width: 991px){.wf-hidden-sm{display:none !important}}@media (min-width: 992px) and (max-width: 1199px){.wf-hidden-md{display:none !important}}@media (min-width: 1200px){.wf-hidden-lg{display:none !important}}.wf-visible-print{display:none !important}@media print{.wf-visible-print{display:block !important}table.wf-visible-print{display:table !important}tr.wf-visible-print{display:table-row !important}th.wf-visible-print,td.wf-visible-print{display:table-cell !important}}.wf-visible-print-block{display:none !important}@media print{.wf-visible-print-block{display:block !important}}.wf-visible-print-inline{display:none !important}@media print{.wf-visible-print-inline{display:inline !important}}.wf-visible-print-inline-block{display:none !important}@media print{.wf-visible-print-inline-block{display:inline-block !important}}@media print{.wf-hidden-print{display:none !important}}.wf-container{margin-right:auto;margin-left:auto;padding-left:15px;padding-right:15px}.wf-container:before,.wf-container:after{content:" ";display:table}.wf-container:after{clear:both}@media (min-width: 768px){.wf-container{width:750px}}@media (min-width: 992px){.wf-container{width:970px}}@media (min-width: 1200px){.wf-container{width:1170px}}.wf-container-fluid{margin-right:auto;margin-left:auto;padding-left:15px;padding-right:15px}.wf-container-fluid:before,.wf-container-fluid:after{content:" ";display:table}.wf-container-fluid:after{clear:both}.wf-row{margin-left:-15px;margin-right:-15px}.wf-row:before,.wf-row:after{content:" ";display:table}.wf-row:after{clear:both}.wf-col-xs-1,.wf-col-sm-1,.wf-col-md-1,.wf-col-lg-1,.wf-col-xs-2,.wf-col-sm-2,.wf-col-md-2,.wf-col-lg-2,.wf-col-xs-3,.wf-col-sm-3,.wf-col-md-3,.wf-col-lg-3,.wf-col-xs-4,.wf-col-sm-4,.wf-col-md-4,.wf-col-lg-4,.wf-col-xs-5,.wf-col-sm-5,.wf-col-md-5,.wf-col-lg-5,.wf-col-xs-6,.wf-col-sm-6,.wf-col-md-6,.wf-col-lg-6,.wf-col-xs-7,.wf-col-sm-7,.wf-col-md-7,.wf-col-lg-7,.wf-col-xs-8,.wf-col-sm-8,.wf-col-md-8,.wf-col-lg-8,.wf-col-xs-9,.wf-col-sm-9,.wf-col-md-9,.wf-col-lg-9,.wf-col-xs-10,.wf-col-sm-10,.wf-col-md-10,.wf-col-lg-10,.wf-col-xs-11,.wf-col-sm-11,.wf-col-md-11,.wf-col-lg-11,.wf-col-xs-12,.wf-col-sm-12,.wf-col-md-12,.wf-col-lg-12{position:relative;min-height:1px;padding-left:15px;padding-right:15px;box-sizing:border-box}.wf-col-xs-1,.wf-col-xs-2,.wf-col-xs-3,.wf-col-xs-4,.wf-col-xs-5,.wf-col-xs-6,.wf-col-xs-7,.wf-col-xs-8,.wf-col-xs-9,.wf-col-xs-10,.wf-col-xs-11,.wf-col-xs-12{float:left}.wf-col-xs-1{width:8.33333%}.wf-col-xs-2{width:16.66667%}.wf-col-xs-3{width:25%}.wf-col-xs-4{width:33.33333%}.wf-col-xs-5{width:41.66667%}.wf-col-xs-6{width:50%}.wf-col-xs-7{width:58.33333%}.wf-col-xs-8{width:66.66667%}.wf-col-xs-9{width:75%}.wf-col-xs-10{width:83.33333%}.wf-col-xs-11{width:91.66667%}.wf-col-xs-12{width:100%}.wf-col-xs-pull-0{right:auto}.wf-col-xs-pull-1{right:8.33333%}.wf-col-xs-pull-2{right:16.66667%}.wf-col-xs-pull-3{right:25%}.wf-col-xs-pull-4{right:33.33333%}.wf-col-xs-pull-5{right:41.66667%}.wf-col-xs-pull-6{right:50%}.wf-col-xs-pull-7{right:58.33333%}.wf-col-xs-pull-8{right:66.66667%}.wf-col-xs-pull-9{right:75%}.wf-col-xs-pull-10{right:83.33333%}.wf-col-xs-pull-11{right:91.66667%}.wf-col-xs-pull-12{right:100%}.wf-col-xs-push-0{left:auto}.wf-col-xs-push-1{left:8.33333%}.wf-col-xs-push-2{left:16.66667%}.wf-col-xs-push-3{left:25%}.wf-col-xs-push-4{left:33.33333%}.wf-col-xs-push-5{left:41.66667%}.wf-col-xs-push-6{left:50%}.wf-col-xs-push-7{left:58.33333%}.wf-col-xs-push-8{left:66.66667%}.wf-col-xs-push-9{left:75%}.wf-col-xs-push-10{left:83.33333%}.wf-col-xs-push-11{left:91.66667%}.wf-col-xs-push-12{left:100%}.wf-col-xs-offset-0{margin-left:0%}.wf-col-xs-offset-1{margin-left:8.33333%}.wf-col-xs-offset-2{margin-left:16.66667%}.wf-col-xs-offset-3{margin-left:25%}.wf-col-xs-offset-4{margin-left:33.33333%}.wf-col-xs-offset-5{margin-left:41.66667%}.wf-col-xs-offset-6{margin-left:50%}.wf-col-xs-offset-7{margin-left:58.33333%}.wf-col-xs-offset-8{margin-left:66.66667%}.wf-col-xs-offset-9{margin-left:75%}.wf-col-xs-offset-10{margin-left:83.33333%}.wf-col-xs-offset-11{margin-left:91.66667%}.wf-col-xs-offset-12{margin-left:100%}.wf-col-xs-half-padding-left{padding-left:8px}.wf-col-xs-half-padding-right{padding-right:7px}@media (min-width: 768px){.wf-col-sm-1,.wf-col-sm-2,.wf-col-sm-3,.wf-col-sm-4,.wf-col-sm-5,.wf-col-sm-6,.wf-col-sm-7,.wf-col-sm-8,.wf-col-sm-9,.wf-col-sm-10,.wf-col-sm-11,.wf-col-sm-12{float:left}.wf-col-sm-1{width:8.33333%}.wf-col-sm-2{width:16.66667%}.wf-col-sm-3{width:25%}.wf-col-sm-4{width:33.33333%}.wf-col-sm-5{width:41.66667%}.wf-col-sm-6{width:50%}.wf-col-sm-7{width:58.33333%}.wf-col-sm-8{width:66.66667%}.wf-col-sm-9{width:75%}.wf-col-sm-10{width:83.33333%}.wf-col-sm-11{width:91.66667%}.wf-col-sm-12{width:100%}.wf-col-sm-pull-0{right:auto}.wf-col-sm-pull-1{right:8.33333%}.wf-col-sm-pull-2{right:16.66667%}.wf-col-sm-pull-3{right:25%}.wf-col-sm-pull-4{right:33.33333%}.wf-col-sm-pull-5{right:41.66667%}.wf-col-sm-pull-6{right:50%}.wf-col-sm-pull-7{right:58.33333%}.wf-col-sm-pull-8{right:66.66667%}.wf-col-sm-pull-9{right:75%}.wf-col-sm-pull-10{right:83.33333%}.wf-col-sm-pull-11{right:91.66667%}.wf-col-sm-pull-12{right:100%}.wf-col-sm-push-0{left:auto}.wf-col-sm-push-1{left:8.33333%}.wf-col-sm-push-2{left:16.66667%}.wf-col-sm-push-3{left:25%}.wf-col-sm-push-4{left:33.33333%}.wf-col-sm-push-5{left:41.66667%}.wf-col-sm-push-6{left:50%}.wf-col-sm-push-7{left:58.33333%}.wf-col-sm-push-8{left:66.66667%}.wf-col-sm-push-9{left:75%}.wf-col-sm-push-10{left:83.33333%}.wf-col-sm-push-11{left:91.66667%}.wf-col-sm-push-12{left:100%}.wf-col-sm-offset-0{margin-left:0%}.wf-col-sm-offset-1{margin-left:8.33333%}.wf-col-sm-offset-2{margin-left:16.66667%}.wf-col-sm-offset-3{margin-left:25%}.wf-col-sm-offset-4{margin-left:33.33333%}.wf-col-sm-offset-5{margin-left:41.66667%}.wf-col-sm-offset-6{margin-left:50%}.wf-col-sm-offset-7{margin-left:58.33333%}.wf-col-sm-offset-8{margin-left:66.66667%}.wf-col-sm-offset-9{margin-left:75%}.wf-col-sm-offset-10{margin-left:83.33333%}.wf-col-sm-offset-11{margin-left:91.66667%}.wf-col-sm-offset-12{margin-left:100%}.wf-col-sm-half-padding-left{padding-left:8px}.wf-col-sm-half-padding-right{padding-right:7px}}@media (min-width: 992px){.wf-col-md-1,.wf-col-md-2,.wf-col-md-3,.wf-col-md-4,.wf-col-md-5,.wf-col-md-6,.wf-col-md-7,.wf-col-md-8,.wf-col-md-9,.wf-col-md-10,.wf-col-md-11,.wf-col-md-12{float:left}.wf-col-md-1{width:8.33333%}.wf-col-md-2{width:16.66667%}.wf-col-md-3{width:25%}.wf-col-md-4{width:33.33333%}.wf-col-md-5{width:41.66667%}.wf-col-md-6{width:50%}.wf-col-md-7{width:58.33333%}.wf-col-md-8{width:66.66667%}.wf-col-md-9{width:75%}.wf-col-md-10{width:83.33333%}.wf-col-md-11{width:91.66667%}.wf-col-md-12{width:100%}.wf-col-md-pull-0{right:auto}.wf-col-md-pull-1{right:8.33333%}.wf-col-md-pull-2{right:16.66667%}.wf-col-md-pull-3{right:25%}.wf-col-md-pull-4{right:33.33333%}.wf-col-md-pull-5{right:41.66667%}.wf-col-md-pull-6{right:50%}.wf-col-md-pull-7{right:58.33333%}.wf-col-md-pull-8{right:66.66667%}.wf-col-md-pull-9{right:75%}.wf-col-md-pull-10{right:83.33333%}.wf-col-md-pull-11{right:91.66667%}.wf-col-md-pull-12{right:100%}.wf-col-md-push-0{left:auto}.wf-col-md-push-1{left:8.33333%}.wf-col-md-push-2{left:16.66667%}.wf-col-md-push-3{left:25%}.wf-col-md-push-4{left:33.33333%}.wf-col-md-push-5{left:41.66667%}.wf-col-md-push-6{left:50%}.wf-col-md-push-7{left:58.33333%}.wf-col-md-push-8{left:66.66667%}.wf-col-md-push-9{left:75%}.wf-col-md-push-10{left:83.33333%}.wf-col-md-push-11{left:91.66667%}.wf-col-md-push-12{left:100%}.wf-col-md-offset-0{margin-left:0%}.wf-col-md-offset-1{margin-left:8.33333%}.wf-col-md-offset-2{margin-left:16.66667%}.wf-col-md-offset-3{margin-left:25%}.wf-col-md-offset-4{margin-left:33.33333%}.wf-col-md-offset-5{margin-left:41.66667%}.wf-col-md-offset-6{margin-left:50%}.wf-col-md-offset-7{margin-left:58.33333%}.wf-col-md-offset-8{margin-left:66.66667%}.wf-col-md-offset-9{margin-left:75%}.wf-col-md-offset-10{margin-left:83.33333%}.wf-col-md-offset-11{margin-left:91.66667%}.wf-col-md-offset-12{margin-left:100%}.wf-col-md-half-padding-left{padding-left:8px}.wf-col-md-half-padding-right{padding-right:7px}}@media (min-width: 1200px){.wf-col-lg-1,.wf-col-lg-2,.wf-col-lg-3,.wf-col-lg-4,.wf-col-lg-5,.wf-col-lg-6,.wf-col-lg-7,.wf-col-lg-8,.wf-col-lg-9,.wf-col-lg-10,.wf-col-lg-11,.wf-col-lg-12{float:left}.wf-col-lg-1{width:8.33333%}.wf-col-lg-2{width:16.66667%}.wf-col-lg-3{width:25%}.wf-col-lg-4{width:33.33333%}.wf-col-lg-5{width:41.66667%}.wf-col-lg-6{width:50%}.wf-col-lg-7{width:58.33333%}.wf-col-lg-8{width:66.66667%}.wf-col-lg-9{width:75%}.wf-col-lg-10{width:83.33333%}.wf-col-lg-11{width:91.66667%}.wf-col-lg-12{width:100%}.wf-col-lg-pull-0{right:auto}.wf-col-lg-pull-1{right:8.33333%}.wf-col-lg-pull-2{right:16.66667%}.wf-col-lg-pull-3{right:25%}.wf-col-lg-pull-4{right:33.33333%}.wf-col-lg-pull-5{right:41.66667%}.wf-col-lg-pull-6{right:50%}.wf-col-lg-pull-7{right:58.33333%}.wf-col-lg-pull-8{right:66.66667%}.wf-col-lg-pull-9{right:75%}.wf-col-lg-pull-10{right:83.33333%}.wf-col-lg-pull-11{right:91.66667%}.wf-col-lg-pull-12{right:100%}.wf-col-lg-push-0{left:auto}.wf-col-lg-push-1{left:8.33333%}.wf-col-lg-push-2{left:16.66667%}.wf-col-lg-push-3{left:25%}.wf-col-lg-push-4{left:33.33333%}.wf-col-lg-push-5{left:41.66667%}.wf-col-lg-push-6{left:50%}.wf-col-lg-push-7{left:58.33333%}.wf-col-lg-push-8{left:66.66667%}.wf-col-lg-push-9{left:75%}.wf-col-lg-push-10{left:83.33333%}.wf-col-lg-push-11{left:91.66667%}.wf-col-lg-push-12{left:100%}.wf-col-lg-offset-0{margin-left:0%}.wf-col-lg-offset-1{margin-left:8.33333%}.wf-col-lg-offset-2{margin-left:16.66667%}.wf-col-lg-offset-3{margin-left:25%}.wf-col-lg-offset-4{margin-left:33.33333%}.wf-col-lg-offset-5{margin-left:41.66667%}.wf-col-lg-offset-6{margin-left:50%}.wf-col-lg-offset-7{margin-left:58.33333%}.wf-col-lg-offset-8{margin-left:66.66667%}.wf-col-lg-offset-9{margin-left:75%}.wf-col-lg-offset-10{margin-left:83.33333%}.wf-col-lg-offset-11{margin-left:91.66667%}.wf-col-lg-offset-12{margin-left:100%}.wf-col-lg-half-padding-left{padding-left:8px}.wf-col-lg-half-padding-right{padding-right:7px}}.wrap.wordfence{direction:ltr}@media (min-width: 768px){.wrap.wordfence{max-width:750px}}@media (min-width: 992px){.wrap.wordfence{max-width:970px}}@media (min-width: 1200px){.wrap.wordfence{max-width:1170px}}.wrap.wordfence>.wf-container-fluid{padding-left:0px;padding-right:0px}.wrap.wordfence .button-primary{text-align:center;text-transform:uppercase;font-weight:bold;background-color:#00709e}.wrap.wordfence a{text-decoration:none}.wrap.wordfence a:hover{text-decoration:underline}.wrap.wordfence a.wf-btn:hover{text-decoration:none}.wrap.wordfence p,.wrap.wordfence td,.wrap.wordfence li{font-family:Roboto,"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:.875rem;color:#2d2d2d;line-height:1.3125;font-weight:normal}.wrap.wordfence p strong,.wrap.wordfence td strong,.wrap.wordfence li strong{font-weight:600}.wrap.wordfence p em,.wrap.wordfence td em,.wrap.wordfence li em{font-weight:normal}.wrap.wordfence h1,.wrap.wordfence h2,.wrap.wordfence h3,.wrap.wordfence h4,.wrap.wordfence h5,.wrap.wordfence h6{font-family:Roboto,"Helvetica Neue",Helvetica,Arial,sans-serif;color:#2d2d2d;font-weight:700}.wrap.wordfence h2{font-size:1.3125rem;line-height:1.5}.wrap.wordfence h3{font-size:1.125rem}.wrap.wordfence h4{font-size:1rem}a{color:#00709e}.wf-inline-help{color:#9f9fa0}.wf-inline-help:hover{color:#00709e}.wordfenceWrap{margin:20px 0 0 20px}.wordfence-icon32{width:32px;height:32px;background-position:0 0;background-repeat:no-repeat;padding:0;margin:7px 5px 0 0;float:left}#wfHeading:after{content:'.';visibility:hidden;display:block;clear:both;height:0px}.wordfence-lock-icon{background-image:url(../images/wordfence-logo-32x32.png)}a.wfhelp{margin:0 3px 0 3px;text-decoration:none;display:inline-block;vertical-align:middle;font:normal normal normal 14px/1 FontAwesome;text-rendering:auto;-webkit-font-smoothing:antialiased}a.wfhelp:before{content:'\f29c'}.wordfence .resulticon{display:block;float:left;width:16px;height:16px;background-position:0 0;background-repeat:no-repeat;border-width:0;padding:0;margin:0 3px 0 0;background-image:url(../images/icons/bullet_yellow.png)}.wordfenceBoldTD{font-weight:bold}.wfAjax24{display:none;width:24px;height:24px;background-image:url(../images/icons/ajax24.gif);margin:0;padding:0}div.wfLoadingWhite32{width:32px;height:32px;background-image:url(../images/icons/ajaxWhite32x32.gif);margin:0;padding:0}.wfTabsContainer{background-color:#FFF;overflow:hidden;border:1px solid #CCC;padding:15px;min-height:200px;-webkit-font-smoothing:antialiased}#wfTabs::after{content:".";display:block;height:0;width:0;line-height:0;clear:both;visibility:hidden}#wfTabs a{float:left;z-index:10;height:18px;margin:0 5px -1px 0;padding:5px 8px;border:1px solid #CCC;text-decoration:none;background-color:#EFEFEF;color:#21759B;-moz-border-radius-topright:3px;-webkit-border-top-right-radius:3px;border-top-right-radius:3px;-moz-border-radius-topleft:3px;-webkit-border-top-left-radius:3px;border-top-left-radius:3px}#wfTabs a.selected{border-bottom:1px solid #FFF;background-color:#FFF;color:#777}.wordfenceTopTab{display:none;margin-top:15px}.wordfenceTopTab.active{display:block}.wordfenceHelpLink{margin-top:15px}.wfAjaxLight128{background-image:url(../images/icons/ajax3.gif)}.wfStrong{font-weight:bold}.wordfenceModeElem{width:1px;height:1px;opacity:0}.wfWarn{color:#F00}img.wfFlag{vertical-align:middle;margin:-3px 4px 0 0}.wfHitTime{font-style:italic}.wfAvatar img{vertical-align:middle}.wf-hex-sequence{color:#587ECB}.wfLoadMoreButton.disabled,.wfLoadMoreButton[disabled]{pointer-events:none;opacity:0.65}table.wfConfigForm th{font-weight:normal;text-align:left;padding:2px 3px 1px 0;vertical-align:middle}table.wfConfigForm td{vertical-align:middle}table.wfConfigForm td.align-top{vertical-align:top}table th.wfConfigEnable{font-weight:bold;min-width:25%}.wfSavedMsg{display:none;color:#A00}table th.wfSubheading{font-weight:bold;padding-top:10px}h3.wfConfigHeading{font-size:22px;color:#777;font-family:Roboto,"Helvetica Neue",Helvetica,Arial,sans-serif;font-style:italic;font-weight:normal}.wfTipText{color:#777;font-family:Georgia,Times New Roman,Times,serif;font-style:italic}.wfBlackCursor{color:#FFF}.wf-spinner{display:inline-block;width:4px}.wferror{color:#F00}#wordfenceWorking{padding:10px 40px 6px 16px;z-index:100000;position:fixed;left:180px;bottom:0px;background-color:#fcb214;border:5px solid #fcb214;border-width:6px 15px 6px 6px;color:#525355;font-size:12px;font-weight:bold;font-family:Roboto,"Helvetica Neue",Helvetica,Arial,sans-serif;background-image:url("../images/icons/working-indicator.gif");background-position:100% 50%;background-repeat:no-repeat}@media (max-width: 960px){#wordfenceWorking{left:auto;right:0}}#paidWrap{position:relative}.paidInnerMsg{width:500px;margin:150px auto 0 auto;color:#000;font-size:18px;font-family:Roboto,"Helvetica Neue",Helvetica,Arial,sans-serif;line-height:1.8em;text-align:center;-webkit-font-smoothing:antialiased}.wfMarker{height:1px;width:1px}.wfPaidOnlyNotice{width:500px;background-color:#FFFFE0;border:1px solid #000;padding:10px;margin:20px}.wfOnOffSwitch{display:inline-block;position:relative !important;width:69px !important;-webkit-user-select:none !important;-moz-user-select:none !important;-ms-user-select:none !important;user-select:none !important}.wfOnOffSwitch-checkbox{display:none !important}.wfOnOffSwitch-label{display:block !important;overflow:hidden !important;cursor:pointer !important;border:2px solid #999999 !important;border-radius:19px !important;margin:0}.wfOnOffSwitch-inner{width:200% !important;margin-left:-100% !important;-webkit-transition:margin 0.3s ease-in !important;-o-transition:margin 0.3s ease-in !important;transition:margin 0.3s ease-in !important;-webkit-transition-delay:0s !important;transition-delay:0s !important}.wfOnOffSwitch-inner:before,.wfOnOffSwitch-inner:after{float:left !important;width:50% !important;height:19px !important;padding:0 !important;line-height:19px !important;font-size:14px !important;color:white !important;font-family:Roboto,"Helvetica Neue",Helvetica,Arial,sans-serif !important;font-weight:bold !important;-webkit-box-sizing:border-box !important;-moz-box-sizing:border-box !important;box-sizing:border-box !important;-moz-border-radius:19px !important;-webkit-border-radius:19px;border-radius:19px !important;-webkit-box-shadow:0 9.5px 0 rgba(0,0,0,0.08) inset !important;box-shadow:0 9.5px 0 rgba(0,0,0,0.08) inset !important}.wfOnOffSwitch-inner:before{content:"ON" !important;padding-left:10px !important;background-color:#30D965 !important;color:#FFFFFF !important;-moz-border-radius:19px 0 0 19px !important;-webkit-border-radius:19px;border-radius:19px 0 0 19px !important}.wfOnOffSwitch-inner:after{content:"OFF" !important;padding-right:10px !important;background-color:#EEEEEE !important;color:#999999 !important;text-align:right !important;-moz-border-radius:0 19px 19px 0 !important;-webkit-border-radius:0;border-radius:0 19px 19px 0 !important}.wfOnOffSwitch-switch{width:19px !important;margin:0 !important;background:#FFFFFF !important;border:2px solid #999999 !important;-moz-border-radius:19px !important;-webkit-border-radius:19px;border-radius:19px !important;position:absolute !important;top:0 !important;bottom:0 !important;right:46px !important;-webkit-transition:all 0.3s ease-in !important;-o-transition:all 0.3s ease-in !important;transition:all 0.3s ease-in !important;-webkit-transition-delay:0s !important;transition-delay:0s !important;background-image:url('data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4gPHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGRlZnM+PGxpbmVhckdyYWRpZW50IGlkPSJncmFkIiBncmFkaWVudFVuaXRzPSJvYmplY3RCb3VuZGluZ0JveCIgeDE9IjAuNSIgeTE9IjAuMCIgeDI9IjAuNSIgeTI9IjEuMCI+PHN0b3Agb2Zmc2V0PSIwJSIgc3RvcC1jb2xvcj0iIzAwMDAwMCIgc3RvcC1vcGFjaXR5PSIwLjEiLz48c3RvcCBvZmZzZXQ9IjgwJSIgc3RvcC1jb2xvcj0iIzAwMDAwMCIgc3RvcC1vcGFjaXR5PSIwLjAiLz48L2xpbmVhckdyYWRpZW50PjwvZGVmcz48cmVjdCB4PSIwIiB5PSIwIiB3aWR0aD0iMTAwJSIgaGVpZ2h0PSIxMDAlIiBmaWxsPSJ1cmwoI2dyYWQpIiAvPjwvc3ZnPiA=') !important;background-size:100%;background-image:-webkit-gradient(linear, 50% 0%, 50% 100%, color-stop(0%, rgba(0,0,0,0.1)),color-stop(80%, rgba(0,0,0,0))) !important;background-image:-moz-linear-gradient(center top, rgba(0,0,0,0.1) 0%,rgba(0,0,0,0) 80%) !important;background-image:-webkit-linear-gradient(center top, rgba(0,0,0,0.1) 0%,rgba(0,0,0,0) 80%) !important;background-image:linear-gradient(to center bottom, rgba(0,0,0,0.1) 0%,rgba(0,0,0,0) 80%) !important;box-shadow:0 1px 1px white inset !important}.wfOnOffSwitch-checkbox:checked+.wfOnOffSwitch-label .wfOnOffSwitch-inner{margin-left:0 !important}.wfOnOffSwitch-checkbox:checked+.wfOnOffSwitch-label .wfOnOffSwitch-switch{right:0 !important}#wordfenceConfigWarning,#wordfenceAdminEmailWarning{clear:left;margin-top:5px}.wf-striped-table{width:100%;max-width:100%;border-collapse:collapse}.wf-striped-table th{border-left:1px solid #bdbdbd}.wf-striped-table th:first-of-type{border-left:0}.wf-striped-table th,.wf-striped-table td{padding:1rem}.wf-striped-table thead th,.wf-striped-table thead td,.wf-striped-table tfoot th,.wf-striped-table tfoot td,.wf-striped-table tbody.thead th,.wf-striped-table tbody.thead td{background-color:#ebebeb;color:#777;font-weight:bold;text-align:left}.wf-striped-table tbody tr.even td,.wf-striped-table tbody tr:nth-child(2n) td{background-color:#ffffff}.wf-striped-table tbody tr td,.wf-striped-table tbody tr.odd td{background-color:#fafafa}.wf-striped-table tbody tr:hover>td{background-color:#fffbd8}.wf-striped-table tbody.empty-row tr td{border-width:0;padding:8px 0;background-color:transparent}.wf-striped-table .wf-result-error,.wf-block-list .wf-result-error{color:#d0514c !important;font-weight:bold}.wf-striped-table .wf-result-error:before,.wf-block-list .wf-result-error:before{content:"\2718"}.wf-striped-table .wf-result-success,.wf-block-list .wf-result-success{color:#008c10 !important;font-weight:bold;max-width:20%}.wf-striped-table .wf-result-success:before,.wf-block-list .wf-result-success:before{content:"\2713"}.wf-striped-table .wf-result-success:before,.wf-block-list .wf-result-success:before,.wf-striped-table .wf-result-error:before,.wf-block-list .wf-result-error:before{font-size:16px;display:inline-block;margin:0px 8px 0px 0px}.wf-striped-table .wf-result-inactive,.wf-block-list .wf-result-inactive{font-weight:bold;color:#666666 !important}.wf-fixed-table{table-layout:fixed}pre.wf-pre{margin:8px 0 20px;padding:12px;background:#ffffff;border:1px solid #999999;overflow:auto}.wf-center{text-align:center}#wfConfigForm,.wf-diagnostics-wrapper{max-width:1035px}.wf-hidden{display:none !important}.wf-card{position:relative;margin:0 auto .625rem;padding:1rem;box-sizing:border-box;background:#fff;box-shadow:0 0 0 1px rgba(200,215,225,0.5),0 1px 2px #e9eff3}.wf-card .wf-card-inner{min-height:76px;width:100%;padding:8px;box-sizing:border-box;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:justify;justify-content:space-between;position:relative}.wf-card .wf-card-inner .wf-card-content{max-width:75%}.wf-card .wf-card-inner .wf-card-content .wf-card-title{font-size:1.125rem;width:100%}.wf-card .wf-card-inner .wf-card-content .wf-card-subtitle{margin-top:.125rem;margin-bottom:.125rem;font-size:.875rem;color:#4f748e}.wf-card .wf-card-inner .wf-card-action{position:absolute;top:0;right:0;height:100%;background:none;border:0;outline:0;width:48px;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;vertical-align:middle;transition:transform 0.15s cubic-bezier(0.175, 0.885, 0.32, 1.275),color 0.2s ease-in}.wf-card .wf-card-inner .wf-card-action .wf-card-action-chevron{background:url("data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPCFET0NUWVBFIHN2ZyBQVUJMSUMgIi0vL1czQy8vRFREIFNWRyAxLjEvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvR3JhcGhpY3MvU1ZHLzEuMS9EVEQvc3ZnMTEuZHRkIj4KPHN2ZyB2ZXJzaW9uPSIxLjEiIGlkPSJjaGV2cm9uLW9iamVjdCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgeD0iMHB4IiB5PSIwcHgiCgkgd2lkdGg9IjI0cHgiIGhlaWdodD0iMjRweCIgdmlld0JveD0iMCAwIDI0IDI0IiBlbmFibGUtYmFja2dyb3VuZD0ibmV3IDAgMCAyNCAyNCIKCSB4bWw6c3BhY2U9InByZXNlcnZlIj4KPHBhdGggaWQ9ImNoZXZyb24iIGQ9Ik0yMCA5bC04IDgtOC04IDEuNDE0LTEuNDE0TDEyIDE0LjE3Mmw2LjU4Ni02LjU4NiIvPgo8L3N2Zz4K");background-repeat:no-repeat;background-position:center center;width:24px;height:24px;fill:#87a6bc}.wf-card .wf-card-inner .wf-card-action .wf-card-action-checkbox{background-image:url(../images/checkbox.png);background-repeat:no-repeat;background-position:left center;width:29px;height:29px}.wf-card .wf-card-inner .wf-card-action .wf-card-action-checkbox.checked{background-position:right center}.wf-card .wf-card-extra{display:none;padding:0.5rem;margin-top:1rem;border-top:1px solid #f3f6f8}@media (min-width: 768px){.wf-card .wf-card-extra{padding:1rem}}.wf-card.active .wf-card-extra{display:block}.wf-card.wf-card-left .wf-card-content{margin-left:48px}.wf-card.wf-card-left .wf-card-action{right:auto;left:0px}.wf-card.disabled .wf-card-content .wf-card-title{color:#aaaaaa}.wf-card.disabled .wf-card-content .wf-card-subtitle{color:#8ea6be}.wf-inline-block{display:inline-block}@media (max-width: 767px){.wf-inline-block-xs{display:inline-block}}.wf-full-width{width:100%;max-width:100%}.wf-no-top{margin-top:0 !important}.wf-add-top{margin-top:1rem !important}.wf-add-top-small{margin-top:0.5rem !important}.wf-add-top-smaller{margin-top:0.25rem !important}.wf-no-bottom{margin-bottom:0 !important}.wf-add-bottom{margin-bottom:1rem !important}.wf-add-bottom-small{margin-bottom:0.5rem !important}.wf-add-bottom-smaller{margin-bottom:0.25rem !important}.wf-padding-no-top{padding-top:0 !important}.wf-no-right{margin-right:0 !important}.wf-padding-no-bottom{padding-bottom:0 !important}.wf-padding-no-left{padding-left:0 !important}.wf-padding-no-right{padding-right:0 !important}.wf-padding-add-top{padding-top:1rem !important}.wf-padding-add-top-small{padding-top:0.5rem !important}.wf-padding-add-top-large{padding-top:1.5rem !important}.wf-padding-add-bottom{padding-bottom:1rem !important}.wf-padding-add-bottom-small{padding-bottom:0.5rem !important}.wf-padding-add-bottom-large{padding-bottom:1.5rem !important}.wf-padding-add-left{padding-left:1rem !important}.wf-padding-add-left-small{padding-left:0.5rem !important}.wf-padding-add-left-large{padding-left:1.5rem !important}.wf-padding-add-right{padding-right:1rem !important}.wf-padding-add-right-small{padding-right:0.5rem !important}.wf-padding-add-right-large{padding-right:1.5rem !important}.wf-left{text-align:left !important}.wf-center{text-align:center !important}.wf-block-center{margin:0 auto}.wf-right{text-align:right !important}.wf-block-right{margin:0 0 0 auto}@media (max-width: 767px){.wf-left-xs{text-align:left !important}.wf-center-xs{text-align:center !important}.wf-padding-add-top-xs{padding-top:1rem !important}.wf-padding-add-top-xs-small{padding-top:0.5rem !important}.wf-padding-add-top-xs-large{padding-top:1.5rem !important}.wf-padding-add-bottom-xs{padding-bottom:1rem !important}.wf-padding-add-bottom-xs-small{padding-bottom:0.5rem !important}.wf-padding-add-bottom-xs-large{padding-bottom:1.5rem !important}}@media (min-width: 768px) and (max-width: 991px){.wf-left-sm{text-align:left !important}.wf-center-sm{text-align:center !important}}@media (min-width: 992px) and (max-width: 1199px){.wf-left-md{text-align:left !important}.wf-center-md{text-align:center !important}}@media (min-width: 1200px){.wf-left-lg{text-align:left !important}.wf-center-lg{text-align:center !important}}.wf-border-no-top{border-top:none !important}.wf-border-no-right{border-right:none !important}.wf-border-no-bottom{border-bottom:none !important}.wf-border-no-left{border-left:none !important}.wf-overflow-x-auto{overflow-x:auto}.wf-overflow-y-auto{overflow-y:auto}@media (max-width: 767px){.wf-overflow-x-auto-xs{overflow-x:auto}.wf-overflow-y-auto-xs{overflow-y:auto}}.wf-blue{color:#00709e !important}.wf-blue-light{color:#008cc1 !important}.wf-gray-dark{color:#2d2d2d !important}.wf-gray-blue{color:#3f596b !important}.wf-green-dark{color:#11967a !important}.wf-green-light{color:#16bc9b !important}.wf-red-dark{color:#930000 !important}.wf-red-light{color:#c10000 !important}.wf-yellow-dark{color:#fcb214 !important}.wf-yellow-light{color:#ffd10a !important}.wf-gray{color:#525355 !important}.wf-gray-light{color:#9f9fa0 !important}.wf-nowrap{white-space:nowrap}.wf-tip{color:#fcb214;font-size:1.1rem;margin-right:0.25rem}.wf-text-small{font-size:80%}.wf-scroll-x::-webkit-scrollbar,.wf-scroll-y::-webkit-scrollbar{-webkit-appearance:none;width:7px;height:7px}.wf-scroll-x::-webkit-scrollbar-thumb,.wf-scroll-y::-webkit-scrollbar-thumb{border-radius:4px;background-color:rgba(0,0,0,0.194);-webkit-box-shadow:0 0 1px rgba(255,255,255,0.5)}.wf-split-word{word-wrap:break-word;word-break:break-all}@media (max-width: 767px){.wf-split-word-xs{word-wrap:break-word;word-break:break-all;white-space:normal !important}}.select2-container{font-family:Roboto,"Helvetica Neue",Helvetica,Arial,sans-serif;min-width:200px}@media (min-width: 768px){.select2-container{min-width:280px}}@media (min-width: 992px){.select2-container{min-width:320px}}@media (max-width: 767px){.select2-container .select2-search.select2-search--inline{margin:0 !important}}.wf-select2-placeholder-fix .select2-search__field{width:auto !important}#wf-all-options-search .wf-select2-placeholder-fix .select2-search__field{margin-top:10px !important}.wf-page-title{display:-webkit-flex;display:flex;-webkit-align-items:center;align-items:center;-webkit-justify-content:flex-start;justify-content:flex-start;margin-top:0.5rem}.wf-page-title>*{-webkit-flex-grow:0;flex-grow:0;min-width:0}.wf-page-title>*:first-child{-webkit-flex-grow:0;flex-grow:0;min-width:32px;-webkit-flex-basis:32px;flex-basis:32px;padding-right:0.25rem}.wf-page-title .wordfence-icon32{margin:0;margin-right:0.5rem}.wf-page-title h2{padding:0 !important}.wf-page-title .wfOnOffSwitch{-webkit-flex-basis:69px;flex-basis:69px;-webkit-flex-shrink:0;flex-shrink:0;margin-left:0.5rem}.wf-tab-container{background-color:#fff}@media (min-width: 768px){.wf-tab-container{background-color:unset}}.wf-page-tabs,.wf-page-fixed-tabs{display:-webkit-flex;display:flex;-webkit-align-items:center;align-items:center;-webkit-justify-content:flex-start;justify-content:flex-start;border-bottom:1px solid #d0d0d0;margin:0;margin-top:0.5rem;margin-left:-10px;margin-right:-10px}@media (min-width: 768px){.wf-page-tabs,.wf-page-fixed-tabs{margin-left:0;margin-right:0}}.wf-page-tabs>*,.wf-page-fixed-tabs>*{-webkit-flex-grow:0;flex-grow:0;min-width:0}.wf-page-tabs>*:first-child,.wf-page-fixed-tabs>*:first-child{-webkit-flex-grow:0;flex-grow:0;min-width:32px;-webkit-flex-basis:32px;flex-basis:32px}.wf-page-tabs .wordfence-icon32,.wf-page-fixed-tabs .wordfence-icon32{margin:0;margin-right:0.5rem;margin-left:0.5rem}@media (min-width: 768px){.wf-page-tabs .wordfence-icon32,.wf-page-fixed-tabs .wordfence-icon32{margin-left:0}}.wf-page-tabs .wf-text-tab,.wf-page-fixed-tabs .wf-text-tab{margin:0;margin-left:0.5rem;color:#333}.wf-page-tabs .wf-tab,.wf-page-fixed-tabs .wf-tab{border:1px solid #fff;border-top-right-radius:0.5rem;border-top-left-radius:0.5rem;border-bottom:none;margin-bottom:-1px;margin-right:0.5rem;color:#333}@media (min-width: 768px){.wf-page-tabs .wf-tab,.wf-page-fixed-tabs .wf-tab{border:1px solid #d0d0d0;background:#e6e6e6}}.wf-page-tabs .wf-tab a,.wf-page-fixed-tabs .wf-tab a{display:block;padding:0.5rem 1rem;font-size:14px;line-height:24px;text-decoration:none;font-weight:bold;color:#333}.wf-page-tabs .wf-tab.wf-active,.wf-page-tabs .wf-tab:hover,.wf-page-fixed-tabs .wf-tab.wf-active,.wf-page-fixed-tabs .wf-tab:hover{border-bottom:1px solid #f1f1f1;background:#f1f1f1;color:#00709e;-webkit-box-shadow:none;box-shadow:none}.wf-page-tabs .wf-tab.wf-active a,.wf-page-tabs .wf-tab:hover a,.wf-page-fixed-tabs .wf-tab.wf-active a,.wf-page-fixed-tabs .wf-tab:hover a{color:#00709e}.wf-tab-content{display:none;margin-top:15px}.wf-tab-content.wf-active{display:block}.wf-fixed-tab-content{margin-top:15px}.wf-section-title{display:-webkit-flex;display:flex;-webkit-align-items:center;align-items:center;-webkit-justify-content:flex-start;justify-content:flex-start}.wf-section-title>*{-webkit-flex-grow:0;flex-grow:0;min-width:0}.wf-section-title>h1,.wf-section-title>h2,.wf-section-title>h3,.wf-section-title>h4,.wf-section-title>h5,.wf-section-title>h6{-webkit-flex-grow:1;flex-grow:1;color:#2d2d2d !important;font-family:Roboto,"Helvetica Neue",Helvetica,Arial,sans-serif !important;line-height:1.5rem !important;font-weight:700 !important;padding:0 !important;margin:0 !important}@media (min-width: 768px){.wf-section-title>h1,.wf-section-title>h2,.wf-section-title>h3,.wf-section-title>h4,.wf-section-title>h5,.wf-section-title>h6{padding-right:0.25rem !important}}.wf-section-title h2{font-size:1.3125rem;line-height:1.5}.wf-section-title h3{font-size:1.125rem}.wf-section-title h4{font-size:1rem}.wf-section-title .wordfence-icon32{margin:0;margin-right:0.5rem}.wf-status-circular{position:relative}.wf-status-circular-text{position:absolute;left:50%;top:50%;padding:0;margin:0;transform:translate(-50%, -50%);color:#aaa;font-family:Roboto,"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:1.3125rem;font-weight:300;line-height:1.5}.wf-status-circular .wf-status-overlay-text{position:absolute;left:50%;top:50%;padding:0;margin:0;width:200%;text-align:center;transform:translate(-50%, -50%);font-family:Roboto,"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:.875rem;font-weight:normal;line-height:1.3125;opacity:0.0;color:#777}.wf-status-warning,.wf-status-critical,.wf-status-payment-expiring,.wf-status-renewing{width:100px;height:100px;margin-bottom:1rem}.wf-status-warning svg path{fill:#fcb214}.wf-status-critical svg path{fill:#930000}.wf-status-payment-expiring svg rect,.wf-status-payment-expiring svg path{fill:#930000}.wf-status-renewing svg rect,.wf-status-renewing svg path{fill:#11967a}#howGetIPs-preview{color:#8c8c8c}#howGetIPs-preview strong{color:#666}.wf-scrollTop{background:#424242;bottom:30px;right:15px;position:fixed;z-index:999;display:none}.wf-scrollTop a{background:#959595;display:block;padding:4px 5px;line-height:32px;width:32px;color:#ffffff;text-align:center}.wf-back-icon{color:#00709e;margin-right:0.75rem;font-size:1.5rem !important}.wf-back-link-chevron{margin-left:1rem}.wf-back-link-chevron:first-of-type{margin-left:0}.wf-back-link{font-weight:bold;text-decoration:none}.wf-premium-link{font-weight:bold}.wf-boolean-switch{border:1px solid #aaa;display:block;cursor:pointer;width:54px;height:30px;min-width:54px;min-height:30px;-moz-border-radius:15px;-webkit-border-radius:15px;border-radius:15px;line-height:30px !important;background-color:#ffffff;position:relative;box-sizing:border-box;transition:background-color 0.2s ease-in-out, border-color 0.2s ease-in-out}@media (min-width: 768px){.wf-boolean-switch{width:34px;height:20px;min-width:34px;min-height:20px;-moz-border-radius:10px;-webkit-border-radius:10px;border-radius:10px;line-height:20px !important}}.wf-boolean-switch .wf-boolean-switch-handle{position:relative;display:block;border:1px solid #aaa;background-color:#fff;width:30px;height:30px;min-width:30px;min-height:30px;-moz-border-radius:15px;-webkit-border-radius:15px;border-radius:15px;margin-top:-1px;box-sizing:border-box;left:-1px;transition:border-color 0.2s ease-in-out, left 0.2s ease-in-out}@media (min-width: 768px){.wf-boolean-switch .wf-boolean-switch-handle{width:20px;height:20px;min-width:20px;min-height:20px;-moz-border-radius:10px;-webkit-border-radius:10px;border-radius:10px}}.wf-boolean-switch.wf-active{border:1px solid #00709e;background-color:#00709e}.wf-boolean-switch.wf-active .wf-boolean-switch-handle{border:1px solid #00709e;left:25px}@media (min-width: 768px){.wf-boolean-switch.wf-active .wf-boolean-switch-handle{left:15px}}.wf-boolean-switch.wf-disabled{pointer-events:none;border-color:#e2e2e2}.wf-boolean-switch.wf-disabled .wf-boolean-switch-handle{border-color:#e2e2e2}.wf-boolean-switch.wf-disabled.wf-active{border-color:#e2e2e2;background-color:#e2e2e2}.wf-boolean-switch.wf-disabled.wf-active .wf-boolean-switch-handle{border-color:#e2e2e2}.wf-option-checkbox,[type=checkbox].wf-option-checkbox+label:before{content:"";font-family:"Ionicons" !important;display:block;cursor:pointer;width:30px;height:30px;min-width:30px;min-height:30px;-moz-border-radius:4px;-webkit-border-radius:4px;border-radius:4px;line-height:30px !important;text-align:center !important;background-color:#ffffff !important;box-shadow:0px 0px 0px 1px #aaa;color:#ffffff !important;font-size:30px !important;font-weight:normal !important}@media (min-width: 768px){.wf-option-checkbox,[type=checkbox].wf-option-checkbox+label:before{width:20px;height:20px;min-width:20px;min-height:20px;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;line-height:21px !important;font-size:25px !important}}@media (min-width: 768px){.wf-option-checkbox{position:relative}.wf-option-checkbox>*{position:absolute;top:9px;left:50%;transform:translateX(-50%) translateY(-50%)}}.wf-option-radio,[type=radio].wf-option-radio+label:before{content:"\f401";font-family:"Ionicons" !important;display:block;cursor:pointer;width:30px;height:30px;min-width:30px;min-height:30px;line-height:30px !important;text-align:center !important;color:#ccc !important;font-size:30px !important;font-weight:normal !important}@media (min-width: 768px){.wf-option-radio,[type=radio].wf-option-radio+label:before{width:20px;height:20px;min-width:20px;min-height:20px;-moz-border-radius:10px;-webkit-border-radius:10px;border-radius:10px;line-height:20px !important}}[type=checkbox].wf-option-checkbox.wf-small+label:before{width:20px;height:20px;min-width:20px;min-height:20px;-moz-border-radius:10px;-webkit-border-radius:10px;border-radius:10px;line-height:21px !important;font-size:20px !important}[type=radio].wf-option-radio.wf-small+label:before{width:20px;height:20px;min-width:20px;min-height:20px;line-height:21px !important;font-size:20px !important}[type=checkbox].wf-option-checkbox+label:before,[type=radio].wf-option-radio+label:before{text-align:center !important;text-indent:0px;display:inline-block;vertical-align:-6px;margin:0px 5px 0px 0px;font-weight:normal;font-style:normal}[type=checkbox].wf-option-checkbox.wf-small+label:before,[type=radio].wf-option-radio.wf-small+label:before{text-indent:0px;vertical-align:-3px}.wf-option-checkbox.wf-checked,[type=checkbox].wf-option-checkbox:checked+label:before{color:#ffffff !important;box-shadow:0px 0px 0px 1px #00709e !important;background-color:#00709e !important}.wf-option-checkbox.wf-disabled,[type=checkbox].wf-option-checkbox:disabled+label:before{color:#f1f1f1 !important;box-shadow:0px 0px 0px 1px #e2e2e2 !important;background-color:#f1f1f1 !important}.wf-option-checkbox.wf-checked.wf-disabled,[type=checkbox].wf-option-checkbox:disabled:checked+label:before{color:#777 !important;box-shadow:0px 0px 0px 1px #e2e2e2 !important;background-color:#f1f1f1 !important}.wf-option-radio.wf-checked,[type=radio].wf-option-radio:checked+label:before{content:"\f3a7";color:#00709e !important}.wf-option-checkbox[type=checkbox],.wf-option-checkbox[type=radio],.wf-option-radio[type=checkbox],.wf-option-radio[type=radio]{position:absolute;left:-9999px}.wf-option-text input[type="text"],input.wf-input-text{text-align:left;width:100%;height:40px;border-radius:0;border:0;background-color:#ffffff;box-shadow:1px 1px 1px 2px rgba(215,215,215,0.65)}.wf-option-text input[type="text"]:placeholder-shown,input.wf-input-text:placeholder-shown{font-style:italic;color:#bfbfbf}::-webkit-input-placeholder{color:#bfbfbf}:-moz-placeholder{color:#bfbfbf;opacity:1}::-moz-placeholder{color:#bfbfbf;opacity:1}:-ms-input-placeholder{color:#bfbfbf}::-ms-input-placeholder{color:#bfbfbf}::placeholder{color:#bfbfbf}.wf-option-premium .wf-option-title,.wf-option-premium .wf-option-title>ul>li,.wf-option.wf-disabled .wf-option-title,.wf-option.wf-disabled .wf-option-title>ul>li{color:#aaa !important}.wf-option-premium .wf-option-checkbox,.wf-option-premium .wf-option-radio,.wf-option.wf-disabled .wf-option-checkbox,.wf-option.wf-disabled .wf-option-radio{opacity:0.5}.wf-block .wf-block-content .wf-block-labeled-value.wf-protection-status .wf-block-labeled-value-value{padding-top:0}.wf-block .wf-block-content .wf-block-labeled-value.wf-protection-status .wf-block-labeled-value-value .wf-fa{font-size:8rem}.wf-block .wf-block-content .wf-block-labeled-value.wf-protection-status .wf-block-labeled-value-value svg{width:160px}.wf-block .wf-block-content .wf-block-labeled-value.wf-protection-status .wf-block-labeled-value-label{font-size:1.35rem;font-weight:300;padding-bottom:0}.wf-block .wf-block-content .wf-block-labeled-value.wf-protection-status-premium .wf-block-labeled-value-value{color:#9f9fa0}.wf-block .wf-block-content .wf-block-labeled-value.wf-protection-status-premium .wf-block-labeled-value-value svg{fill:#9f9fa0}.wf-block .wf-block-content .wf-block-labeled-value.wf-protection-status-premium .wf-block-labeled-value-label{color:#9f9fa0}.wf-indeterminate-progress{-webkit-animation:wf-indeterminate-progress-keyframes 1s steps(8, end) infinite;-o-animation:wf-indeterminate-progress-keyframes 1s steps(8, end) infinite;animation:wf-indeterminate-progress-keyframes 1s steps(8, end) infinite}.wf-indeterminate-progress path{fill:#00709e}@-moz-keyframes wf-indeterminate-progress-keyframes{to{-moz-transform:rotate(360deg);transform:rotate(360deg)}}@-webkit-keyframes wf-indeterminate-progress-keyframes{to{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes wf-indeterminate-progress-keyframes{to{-moz-transform:rotate(360deg);-ms-transform:rotate(360deg);-webkit-transform:rotate(360deg);transform:rotate(360deg)}}.wf-flex-row{display:-webkit-flex;display:flex;-webkit-align-items:center;align-items:center;-webkit-justify-content:flex-start;justify-content:flex-start;-webkit-flex-direction:row;flex-direction:row}.wf-flex-row .wf-flex-row-1{-webkit-flex-grow:1;flex-grow:1}.wf-flex-row .wf-flex-row-0{-webkit-flex-grow:0;flex-grow:0}.wf-switch{display:-webkit-flex !important;display:flex !important;-webkit-align-items:stretch !important;align-items:stretch !important;-webkit-justify-content:flex-start !important;justify-content:flex-start !important;-webkit-flex-direction:row !important;flex-direction:row !important;margin:0;padding:0}.wf-switch>li{margin:0 !important;padding:0.5rem 0.7rem !important;text-transform:uppercase;cursor:pointer;color:#aaa;font-weight:400;border-top:1px solid #bfbfbf;border-bottom:1px solid #bfbfbf;border-right:1px solid #bfbfbf}.wf-switch>li:first-of-type{border-left:1px solid #bfbfbf;-moz-border-radius-topleft:6px;-webkit-border-top-left-radius:6px;border-top-left-radius:6px;-moz-border-radius-bottomleft:6px;-webkit-border-bottom-left-radius:6px;border-bottom-left-radius:6px}.wf-switch>li:last-of-type{-moz-border-radius-topright:6px;-webkit-border-top-right-radius:6px;border-top-right-radius:6px;-moz-border-radius-bottomright:6px;-webkit-border-bottom-right-radius:6px;border-bottom-right-radius:6px}.wf-switch>li.wf-active{color:#ffffff;background-color:#00709e}.wf-tooltip,.ui-widget.wf-tooltip{max-width:600px;font-size:0.75rem;overflow-wrap:break-word}.wf-widget-learning-mode{border-top:1px solid #eee;margin:0 -1rem;padding:1rem;display:-webkit-flex;display:flex;-webkit-align-items:center;align-items:center;-webkit-justify-content:center;justify-content:center;-webkit-flex-direction:row;flex-direction:row}@media (min-width: 768px){.wf-widget-learning-mode{padding:1.5rem}}.wf-widget-learning-mode svg{width:18px}.wf-widget-learning-mode svg path{fill:#aaa}.wf-widget-learning-mode span{padding-left:0.5rem;font-size:.875rem;line-height:1.3125;font-weight:600}.wf-drawer-overlay{position:fixed;top:0px;right:0px;bottom:0px;left:160px;background-color:rgba(0,0,0,0.5);z-index:9980;padding:5rem 0}.folded .wf-drawer-overlay{left:36px}@media only screen and (max-width: 960px){.auto-fold .wf-drawer-overlay{left:36px}}.rtl .wf-drawer-overlay{right:160px;left:0px}.rtl .folded .wf-drawer-overlay{right:36px}@media only screen and (max-width: 960px){.rtl .auto-fold .wf-drawer-overlay{right:36px}}@media screen and (max-width: 782px){.wf-drawer-overlay,.folded .wf-drawer-overlay,.auto-fold .wf-drawer-overlay,.rtl .wf-drawer-overlay,.rtl .folded .wf-drawer-overlay,.rtl .auto-fold .wf-drawer-overlay{left:0px;right:0px}}.wf-drawer{background-color:#ffffff;position:fixed;top:32px;bottom:0px;right:0px;z-index:9981}.wf-drawer .wf-modal{display:-webkit-flex;display:flex;-webkit-align-items:stretch;align-items:stretch;-webkit-justify-content:flex-start;justify-content:flex-start;-webkit-flex-direction:column;flex-direction:column;height:100%}.wf-drawer .wf-modal ul,.wf-drawer .wf-modal li{padding:0;margin:0}.wf-drawer .wf-modal .wf-modal-header{-webkit-flex-shrink:0;flex-shrink:0;min-height:44px;padding:1rem;width:100%;box-sizing:border-box;display:-webkit-flex;display:flex;-webkit-align-items:center;align-items:center;-webkit-justify-content:space-between;justify-content:space-between;position:relative;background-color:#00709e;color:#ffffff}.wf-drawer .wf-modal .wf-modal-header .wf-modal-header-content{max-width:75%}.wf-drawer .wf-modal .wf-modal-header .wf-modal-header-content .wf-modal-title{font-size:1.3125rem;line-height:1.5;font-weight:300;width:100%;transition:color 0.2s ease-in}.wf-drawer .wf-modal .wf-modal-header .wf-modal-header-content .wf-modal-subtitle{margin-top:.125rem;margin-bottom:.125rem;font-size:.575rem;color:#4f748e}.wf-drawer .wf-modal .wf-modal-content{-webkit-flex-grow:1;flex-grow:1;display:-webkit-flex;display:flex;-webkit-align-items:stretch;align-items:stretch;-webkit-justify-content:flex-start;justify-content:flex-start;-webkit-flex-direction:column;flex-direction:column;padding:1rem}.wf-drawer .wf-modal .wf-modal-content>*:first-child{margin-top:0}.wf-drawer .wf-modal .wf-modal-content select,.wf-drawer .wf-modal .wf-modal-content select option,.wf-drawer .wf-modal .wf-modal-content .select2-container--default{font-size:0.7rem;font-weight:bold}@media (min-width: 768px){.wf-drawer .wf-modal .wf-modal-content select,.wf-drawer .wf-modal .wf-modal-content select option,.wf-drawer .wf-modal .wf-modal-content .select2-container--default{font-size:0.8rem}}@media (min-width: 992px){.wf-drawer .wf-modal .wf-modal-content select,.wf-drawer .wf-modal .wf-modal-content select option,.wf-drawer .wf-modal .wf-modal-content .select2-container--default{font-size:0.9rem}}.wf-drawer .wf-modal .wf-modal-content .wf-option-select-option,.wf-drawer .wf-modal .wf-modal-content .select2-container--default,.wf-drawer .wf-modal .wf-modal-content .select2-container--default .select2-selection--single{text-align:left;height:40px;border-radius:0;border:0;background-color:#ffffff;box-shadow:1px 1px 1px 2px rgba(215,215,215,0.35)}.wf-drawer .wf-modal .wf-modal-content .wf-option-select-option .select2-selection__rendered,.wf-drawer .wf-modal .wf-modal-content .select2-container--default .select2-selection__rendered,.wf-drawer .wf-modal .wf-modal-content .select2-container--default .select2-selection--single .select2-selection__rendered{color:#333;line-height:40px}.wf-drawer .wf-modal .wf-modal-content .wf-option-select-option .select2-selection__arrow,.wf-drawer .wf-modal .wf-modal-content .select2-container--default .select2-selection__arrow,.wf-drawer .wf-modal .wf-modal-content .select2-container--default .select2-selection--single .select2-selection__arrow{height:38px}.wf-drawer .wf-modal .wf-modal-content .wf-option-select-option.select2-container--disabled .select2-selection__rendered,.wf-drawer .wf-modal .wf-modal-content .select2-container--default.select2-container--disabled .select2-selection__rendered,.wf-drawer .wf-modal .wf-modal-content .select2-container--default .select2-selection--single.select2-container--disabled .select2-selection__rendered{color:#aaa}.wf-drawer .wf-modal .wf-modal-content .select2-container--default .select2-selection--single .select2-selection__arrow b{border-color:#333 transparent transparent}.wf-drawer .wf-modal .wf-modal-content .select2-container--default.select2-container--open .select2-selection--single .select2-selection__arrow b{border-color:transparent transparent #333}.wf-drawer .wf-modal .wf-modal-footer{-webkit-flex-shrink:0;flex-shrink:0;min-height:44px;padding:1rem;width:100%;box-sizing:border-box;display:-webkit-flex;display:flex;-webkit-align-items:center;align-items:center;-webkit-justify-content:space-between;justify-content:space-between;position:relative;background-color:#f1f1f1;border-top:1px solid #d9d9d9}.wf-mobile-menu-overlay{position:fixed;top:0px;right:0px;bottom:0px;left:0px;background-color:rgba(0,0,0,0.5);z-index:100000}.wf-mobile-menu-overlay>.wf-mobile-menu-tap-hint{position:absolute;top:25%;left:50%;transform:translateX(-50%);color:#ffffff;font-family:Roboto,"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:1.3125rem;font-weight:300;line-height:1.5}.wf-mobile-menu{position:fixed;left:50%;transform:translateX(-50%);z-index:100001}.wf-mobile-menu>.wf-mobile-menu-items{margin:0;padding:0 0 0.25rem 0;list-style:none}.wf-mobile-menu>.wf-mobile-menu-items>li{margin:0;padding:0.25rem 0}.wf-mobile-menu>.wf-mobile-menu-items>li>a{box-sizing:border-box}.wf-circle-tooltip.ui-tooltip{padding:0;font-size:0.7rem;max-width:400px;border:1px solid #9f9fa0;position:absolute !important;z-index:3000;-moz-border-radius:6px;-webkit-border-radius:6px;border-radius:6px}.wf-circle-tooltip.ui-tooltip h4{margin:0 0 10px}.wf-circle-tooltip.ui-tooltip ul{margin:10px 0}.wf-circle-tooltip.ui-tooltip p{font-size:0.7rem;margin:10px 0 0}.wf-circle-tooltip.ui-tooltip a{color:#00709e;text-decoration:none}.wf-circle-tooltip.ui-tooltip a:hover{text-decoration:underline}.wf-circle-tooltip.ui-tooltip .wf-circle-tooltip-header,.wf-circle-tooltip.ui-tooltip .wf-circle-tooltip-body{padding:12px}.wf-circle-tooltip.ui-tooltip .wf-circle-tooltip-header{-moz-border-radius:6px 6px 0px 0px;-webkit-border-radius:6px;border-radius:6px 6px 0px 0px;background-color:#f1f1f1}.wf-circle-tooltip.ui-tooltip .wf-circle-tooltip-header h4{margin:0;font-size:0.8rem}.wf-circle-tooltip.ui-tooltip .wf-circle-tooltip-body .wf-tooltip-status-circle{position:relative;padding:0 10px 0 0}.wf-circle-tooltip.ui-tooltip .wf-circle-tooltip-body .wf-tooltip-status-circle .wf-status-overlay-text{display:none}.wf-circle-tooltip.ui-tooltip .wf-circle-tooltip-body ul li strong{width:20%}.wf-circle-tooltip.ui-tooltip .wf-circle-tooltip-body ul li span{width:80%}.wf-circle-tooltip.ui-tooltip .wf-circle-tooltip-block{position:relative;background-color:#fff;z-index:3001;-moz-border-radius:6px;-webkit-border-radius:6px;border-radius:6px}.wf-circle-tooltip.ui-tooltip .wf-circle-tooltip-block:after{content:'';position:absolute;bottom:-20px;left:20px;width:0;height:0;border-left:20px solid transparent;border-right:20px solid transparent;border-top:20px solid #fff}.wf-circle-tooltip.ui-tooltip:after{content:'';position:absolute;bottom:-22px;left:18px;width:0;height:0;border-left:22px solid transparent;border-right:22px solid transparent;border-top:22px solid rgba(0,0,0,0.5);filter:blur(2px)}.wf-circle-tooltip.ui-tooltip.wf-tooltip-vertical-top:after{top:-22px;bottom:auto;border-left:22px solid transparent;border-right:22px solid transparent;border-bottom:22px solid rgba(0,0,0,0.5);border-top-width:0}.wf-circle-tooltip.ui-tooltip.wf-tooltip-vertical-top .wf-circle-tooltip-block:after{top:-20px;bottom:auto;border-left:20px solid transparent;border-right:20px solid transparent;border-bottom:20px solid #f1f1f1;border-top-width:0}.wf-circle-tooltip.ui-tooltip.wf-tooltip-vertical-top.wf-tooltip-horizontal-right:after{left:auto;right:18px}.wf-circle-tooltip.ui-tooltip.wf-tooltip-vertical-top.wf-tooltip-horizontal-right .wf-circle-tooltip-block:after{left:auto;right:20px}.wf-circle-tooltip.ui-tooltip.wf-tooltip-vertical-bottom.wf-tooltip-horizontal-right:after{left:auto;right:18px}.wf-circle-tooltip.ui-tooltip.wf-tooltip-vertical-bottom.wf-tooltip-horizontal-right .wf-circle-tooltip-block:after{left:auto;right:20px}#wf-mobile-controls{white-space:nowrap;font-size:1.2rem}.wf-callout-warning{background-color:#feecc4;padding:0.8rem 1.25rem}.wf-tip-light-bulb{color:#fcb214;font-size:1.5rem;font-weight:bold}.wf-tip-info-message{padding-left:0.5rem !important;font-family:Roboto,"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:.875rem;color:#2d2d2d;line-height:1.3125;font-weight:normal}.wf-block{position:relative;margin:0 auto 0.5rem;padding:0 1rem;box-sizing:border-box;background-color:#fff;box-shadow:0 0 0 1px rgba(200,215,225,0.25),0 1px 2px #e9eff3}@media (min-width: 768px){.wf-block{padding:0 1.5rem}}.wf-block.wf-block-no-padding{padding:0}.wf-block.wf-block-transparent{background-color:transparent;box-shadow:none}.wf-block .wf-block-banner{min-height:44px;margin:0 -1rem;padding:0;box-sizing:border-box;position:relative;background-color:#fcb214;display:-webkit-flex;display:flex;-webkit-align-items:center;align-items:center;-webkit-justify-content:space-between;justify-content:space-between;-webkit-flex-direction:row;flex-direction:row}.wf-block .wf-block-banner>li{margin:0;padding:0.5rem 1rem}@media (min-width: 768px){.wf-block .wf-block-banner{margin:0 -1.5rem}.wf-block .wf-block-banner>li{padding:0.5rem 1.5rem}}.wf-block .wf-block-header{min-height:44px;padding:1rem 0;width:100%;box-sizing:border-box;display:-webkit-flex;display:flex;-webkit-align-items:center;align-items:center;-webkit-justify-content:space-between;justify-content:space-between;position:relative}.wf-block .wf-block-header .wf-block-header-content{max-width:75%}.wf-block .wf-block-header .wf-block-header-content .wf-block-title{font-family:Roboto,"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:0.9rem;width:100%;transition:color 0.2s ease-in}.wf-block .wf-block-header .wf-block-header-content .wf-block-subtitle{margin-top:.125rem;margin-bottom:.125rem;font-size:0.775rem}.wf-block .wf-block-header .wf-block-header-action{position:absolute;top:0;right:0;height:100%;background:none;border:0;outline:0;width:48px;display:-webkit-flex;display:flex;-webkit-align-items:center;align-items:center;-webkit-justify-content:flex-end;justify-content:flex-end;vertical-align:middle;transition:transform 0.15s cubic-bezier(0.175, 0.885, 0.32, 1.275),color 0.2s ease-in}.wf-block .wf-block-header .wf-block-header-action.wf-block-header-action-text{width:auto}.wf-block .wf-block-header .wf-block-header-action.wf-block-header-action-text.wf-block-header-action-text-success{color:#11967a}.wf-block .wf-block-header .wf-block-header-action.wf-block-header-action-text.wf-block-header-action-text-warning{color:#930000}.wf-block .wf-block-header .wf-block-header-action.wf-block-header-action-text.wf-block-header-action-text-warning a{color:#930000}.wf-block .wf-block-header .wf-block-header-action .wf-block-header-action-chevron{background:url("data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPCFET0NUWVBFIHN2ZyBQVUJMSUMgIi0vL1czQy8vRFREIFNWRyAxLjEvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvR3JhcGhpY3MvU1ZHLzEuMS9EVEQvc3ZnMTEuZHRkIj4KPHN2ZyB2ZXJzaW9uPSIxLjEiIGlkPSJjaGV2cm9uLW9iamVjdCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgeD0iMHB4IiB5PSIwcHgiCgkgd2lkdGg9IjI0cHgiIGhlaWdodD0iMjRweCIgdmlld0JveD0iMCAwIDI0IDI0IiBlbmFibGUtYmFja2dyb3VuZD0ibmV3IDAgMCAyNCAyNCIKCSB4bWw6c3BhY2U9InByZXNlcnZlIj4KPHBhdGggaWQ9ImNoZXZyb24iIGQ9Ik0yMCA5bC04IDgtOC04IDEuNDE0LTEuNDE0TDEyIDE0LjE3Mmw2LjU4Ni02LjU4NiIvPgo8L3N2Zz4K");background-repeat:no-repeat;background-position:center center;width:24px;height:24px}.wf-block .wf-block-header .wf-block-header-action .wf-block-header-action-disclosure{background:url("data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPCFET0NUWVBFIHN2ZyBQVUJMSUMgIi0vL1czQy8vRFREIFNWRyAxLjEvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvR3JhcGhpY3MvU1ZHLzEuMS9EVEQvc3ZnMTEuZHRkIj4KPHN2ZyB2ZXJzaW9uPSIxLjEiIGlkPSJkaXNjbG9zdXJlLWNsb3NlZC1vYmplY3QiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4IgoJIHdpZHRoPSIxMnB4IiBoZWlnaHQ9IjEycHgiIHZpZXdCb3g9IjAgMCAxMiAxMiIgZW5hYmxlLWJhY2tncm91bmQ9Im5ldyAwIDAgMTIgMTIiCgkgeG1sOnNwYWNlPSJwcmVzZXJ2ZSI+CjxwYXRoIGlkPSJkaXNjbG9zdXJlLWNsb3NlZCIgZD0iTSA2IDAgbCA2IDYgLTYgNiAwIC0xMiIgZmlsbD0iIzc3NyIvPgo8L3N2Zz4=");background-repeat:no-repeat;background-position:center center;width:12px;height:12px;transition:transform 0.15s cubic-bezier(0.175, 0.885, 0.32, 1.275),background 0.2s ease-in}.wf-block .wf-block-header .wf-block-header-action .wf-block-header-action-checkbox{background-image:url(../images/checkbox.png);background-repeat:no-repeat;background-position:left center;width:29px;height:29px}.wf-block .wf-block-header .wf-block-header-action .wf-block-header-action-checkbox.wf-checked{background-position:right center}.wf-block .wf-block-content{display:none;margin:0 -1rem;padding:0 1rem}@media (min-width: 768px){.wf-block .wf-block-content{margin:0 -1.5rem;padding:0 1.5rem}}.wf-block .wf-block-content .wf-block-list{margin:0 -1rem;padding:0;list-style:none}@media (min-width: 768px){.wf-block .wf-block-content .wf-block-list{margin:0 -1.5rem}}.wf-block .wf-block-content .wf-block-list.wf-block-list-striped>li:nth-of-type(odd){background-color:#f9f9f9}.wf-block .wf-block-content .wf-block-list.wf-block-list-striped>li:nth-of-type(even){background-color:#ffffff}.wf-block .wf-block-content .wf-block-list>li{display:block;min-height:44px;padding:0 1rem;margin:0;border-top:1px solid #e2e2e2;box-sizing:border-box;display:-webkit-flex;display:flex;-webkit-align-items:center;align-items:center;-webkit-justify-content:space-between;justify-content:space-between}@media (min-width: 768px){.wf-block .wf-block-content .wf-block-list>li{padding:0 1.5rem}}.wf-block .wf-block-content .wf-block-list>li>*:first-child{-webkit-flex-grow:1;flex-grow:1;min-width:0}.wf-block .wf-block-content .wf-block-list.wf-block-list-horizontal{box-sizing:border-box;margin-top:-1px;display:-webkit-flex;display:flex;-webkit-align-items:stretch;align-items:stretch;-webkit-align-content:flex-start;align-content:flex-start;-webkit-justify-content:space-between;justify-content:space-between;-webkit-flex-wrap:wrap;flex-wrap:wrap}.wf-block .wf-block-content .wf-block-list.wf-block-list-horizontal>li{-webkit-flex-grow:1;flex-grow:1;-webkit-flex-basis:100%;flex-basis:100%;border-left:1px solid #e2e2e2}@media (min-width: 768px){.wf-block .wf-block-content .wf-block-list.wf-block-list-horizontal>li{-webkit-flex-basis:50%;flex-basis:50%}}@media (min-width: 992px){.wf-block .wf-block-content .wf-block-list.wf-block-list-horizontal>li{-webkit-flex-basis:25%;flex-basis:25%}}.wf-block .wf-block-content .wf-block-list.wf-block-list-horizontal.wf-block-list-nowrap{overflow-y:auto;-webkit-flex-wrap:nowrap;flex-wrap:nowrap}.wf-block .wf-block-content .wf-block-list.wf-block-list-horizontal.wf-block-list-nowrap>li{-webkit-flex-shrink:0;flex-shrink:0}.wf-block .wf-block-content .wf-block-list.wf-block-list-horizontal.wf-block-list-horizontal-5>li{-webkit-flex-grow:1;flex-grow:1;-webkit-flex-basis:20%;flex-basis:20%}.wf-block .wf-block-content .wf-block-list.wf-block-list-horizontal>*:first-child{border-left:0}@media (min-width: 768px){.wf-block .wf-block-content .wf-block-list.wf-block-list-horizontal.wf-block-list-equal>li{max-width:50%}}@media (min-width: 992px){.wf-block .wf-block-content .wf-block-list.wf-block-list-horizontal.wf-block-list-equal>li{max-width:25%}}.wf-block .wf-block-content .wf-block-list.wf-block-list-horizontal.wf-block-list-horizontal-5.wf-block-list-equal>li{max-width:20%}.wf-block .wf-block-content .wf-block-list .wf-block-list-state{text-align:center}@media (min-width: 1200px){.wf-block .wf-block-content .wf-block-list .wf-block-list-state{text-align:left}}.wf-block .wf-block-content .wf-block-list .wf-block-list-state-enabled .wf-fa{color:#11967a}.wf-block .wf-block-content .wf-block-list .wf-block-list-state-disabled .wf-fa{color:#525355}.wf-block .wf-block-content .wf-block-list .wf-block-list-state-premium{color:#9f9fa0}.wf-block .wf-block-content .wf-block-list .wf-block-list-dismiss{padding-left:2rem;font-size:1.25rem}.wf-block .wf-block-content .wf-block-list .wf-block-list-dismiss a{color:#525355}.wf-block .wf-block-content:first-child>.wf-block-list>li:first-child{border-top:none}.wf-block .wf-block-content .wf-block-left-right{margin:0 -1rem;padding:0;list-style:none;display:-webkit-flex;display:flex;-webkit-align-items:stretch;align-items:stretch;-webkit-align-content:flex-start;align-content:flex-start;-webkit-justify-content:space-between;justify-content:space-between;-webkit-flex-wrap:wrap;flex-wrap:wrap}@media (min-width: 768px){.wf-block .wf-block-content .wf-block-left-right{margin:0 -1.5rem}}.wf-block .wf-block-content .wf-block-left-right.wf-block-left-right-nowrap{-webkit-flex-wrap:nowrap;flex-wrap:nowrap}.wf-block .wf-block-content .wf-block-left-right>li{display:block;min-height:44px;padding:0;margin:0;box-sizing:border-box;display:-webkit-flex;display:flex;-webkit-align-items:center;align-items:center;-webkit-justify-content:space-between;justify-content:space-between}.wf-block .wf-block-content .wf-block-left-right>li>*:first-child{-webkit-flex-grow:1;flex-grow:1;min-width:0}.wf-block .wf-block-content .wf-block-left-right>li.wf-left{text-align:left}.wf-block .wf-block-content .wf-block-left-right>li.wf-right{text-align:right}.wf-block .wf-block-content .wf-block-left-center-right{margin:0 -1rem;padding:0;list-style:none;display:-webkit-flex;display:flex;-webkit-align-items:stretch;align-items:stretch;-webkit-align-content:center;align-content:center;-webkit-justify-content:space-between;justify-content:space-between;-webkit-flex-direction:row;flex-direction:row;-webkit-flex-wrap:nowrap;flex-wrap:nowrap}.wf-block .wf-block-content .wf-block-left-center-right>li{display:block;min-height:44px;padding:0;margin:0;box-sizing:border-box;display:-webkit-flex;display:flex;-webkit-align-items:center;align-items:center;-webkit-justify-content:flex-start;justify-content:flex-start;-webkit-flex-grow:1;flex-grow:1;-webkit-flex-basis:33.3333%;flex-basis:33.3333%;max-width:33.3333%}.wf-block .wf-block-content .wf-block-left-center-right>li a{text-decoration:none;font-size:.875rem}.wf-block .wf-block-content .wf-block-left-center-right>li.wf-left{text-align:left}.wf-block .wf-block-content .wf-block-left-center-right>li.wf-center{text-align:center;-webkit-justify-content:center;justify-content:center}.wf-block .wf-block-content .wf-block-left-center-right>li.wf-center .wordfence-icon32{margin:0}.wf-block .wf-block-content .wf-block-left-center-right>li.wf-right{text-align:right;-webkit-justify-content:flex-end;justify-content:flex-end}.wf-block .wf-block-content .wf-block-labeled-value{box-sizing:border-box;display:-webkit-flex;display:flex;-webkit-align-items:center;align-items:center;-webkit-justify-content:space-between;justify-content:space-between;-webkit-flex-direction:column;flex-direction:column;margin:0 -1rem;padding:1rem}@media (min-width: 768px){.wf-block .wf-block-content .wf-block-labeled-value{margin:0 -1.5rem;padding:1.5rem}}.wf-block .wf-block-content .wf-block-labeled-value-value{font-size:3rem;line-height:3rem;color:#9f9fa0;padding:1rem}.wf-block .wf-block-content .wf-block-labeled-value-label{font-size:0.75rem;color:#9f9fa0;padding:0 1rem 1rem 1rem}.wf-block.wf-block-no-header .wf-block-content .wf-block-list>li{border-top:none}.wf-block.wf-active .wf-block-content,.wf-block.wf-always-active .wf-block-content{display:block}.wf-block.wf-active>.wf-block-header>.wf-block-header-content>.wf-block-title{color:#00709e}.wf-block.wf-active>.wf-block-header>.wf-block-header-content>.wf-block-header-action>.wf-block-header-action-disclosure{background:url("data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPCFET0NUWVBFIHN2ZyBQVUJMSUMgIi0vL1czQy8vRFREIFNWRyAxLjEvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvR3JhcGhpY3MvU1ZHLzEuMS9EVEQvc3ZnMTEuZHRkIj4KPHN2ZyB2ZXJzaW9uPSIxLjEiIGlkPSJkaXNjbG9zdXJlLWNsb3NlZC1vYmplY3QiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4IgoJIHdpZHRoPSIxMnB4IiBoZWlnaHQ9IjEycHgiIHZpZXdCb3g9IjAgMCAxMiAxMiIgZW5hYmxlLWJhY2tncm91bmQ9Im5ldyAwIDAgMTIgMTIiCgkgeG1sOnNwYWNlPSJwcmVzZXJ2ZSI+CjxwYXRoIGlkPSJkaXNjbG9zdXJlLWNsb3NlZCIgZD0iTSA2IDAgbCA2IDYgLTYgNiAwIC0xMiIgZmlsbD0iIzAwNzA5ZSIvPgo8L3N2Zz4=") !important;transform:rotate(90deg)}.wf-block.wf-disabled>.wf-block-header>.wf-block-header-content>.wf-block-title,.wf-block.wf-disabled>.wf-block-header>.wf-block-header-content>.wf-block-subtitle{color:#bfbfbf !important}.wf-block.wf-disabled>.wf-block-header>.wf-block-header-content>.wf-block-header-action>.wf-block-header-action-disclosure{background:url("data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPCFET0NUWVBFIHN2ZyBQVUJMSUMgIi0vL1czQy8vRFREIFNWRyAxLjEvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvR3JhcGhpY3MvU1ZHLzEuMS9EVEQvc3ZnMTEuZHRkIj4KPHN2ZyB2ZXJzaW9uPSIxLjEiIGlkPSJkaXNjbG9zdXJlLWNsb3NlZC1vYmplY3QiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4IgoJIHdpZHRoPSIxMnB4IiBoZWlnaHQ9IjEycHgiIHZpZXdCb3g9IjAgMCAxMiAxMiIgZW5hYmxlLWJhY2tncm91bmQ9Im5ldyAwIDAgMTIgMTIiCgkgeG1sOnNwYWNlPSJwcmVzZXJ2ZSI+CjxwYXRoIGlkPSJkaXNjbG9zdXJlLWNsb3NlZCIgZD0iTSA2IDAgbCA2IDYgLTYgNiAwIC0xMiIgZmlsbD0iI2JkYmRiZCIvPgo8L3N2Zz4=") !important;transform:rotate(0deg)}.wf-block.wf-disabled>.wf-block-content{display:none !important}.wf-block.wf-block-header-left .wf-block-header-content{margin-left:48px}.wf-block.wf-block-header-left .wf-block-header-action{right:auto;left:0px}.wf-block.wf-disabled .wf-dashboard-item-content .wf-block-title{color:#aaaaaa}.wf-block.wf-disabled .wf-dashboard-item-content .wf-block-subtitle{color:#8ea6be}.wf-section-title{margin-bottom:1rem}.wf-status-detail{box-sizing:border-box;display:-webkit-flex;display:flex;-webkit-align-items:center;align-items:center;-webkit-justify-content:space-between;justify-content:space-between;-webkit-flex-direction:column;flex-direction:column;margin:0 -1rem;padding:1rem}.wf-status-detail p{margin:0 0 0.45rem 0}.wf-status-detail .wf-status-circular{margin-bottom:1rem}.wf-status-detail .wf-status-detail-title{font-weight:700 !important;font-size:1rem !important;line-height:1.3125 !important}.wf-status-detail .wf-status-detail-subtitle{font-size:.875rem !important;line-height:1.3125 !important;font-weight:normal !important;text-align:center}.wf-status-detail .wf-status-detail-link>a{font-weight:600 !important;font-size:0.85rem !important}.wf-block-navigation-option{display:-webkit-flex;display:flex;-webkit-align-items:center;align-items:center;-webkit-align-content:flex-start;align-content:flex-start;-webkit-justify-content:flex-start;justify-content:flex-start;-webkit-flex-wrap:nowrap;flex-wrap:nowrap}.wf-block-navigation-option svg.wf-block-navigation-option-icon{width:50px;min-width:50px;fill:#9f9fa0}.wf-block-navigation-option:hover{cursor:pointer}.wf-block-navigation-option:hover a{text-decoration:underline}.wf-block-navigation-option:hover svg.wf-block-navigation-option-icon{fill:#00709e}.wf-select-group{display:-webkit-flex !important;display:flex !important;-webkit-align-items:center !important;align-items:center !important;-webkit-justify-content:flex-start !important;justify-content:flex-start !important;-webkit-flex-direction:row !important;flex-direction:row !important;-webkit-flex-grow:0 !important;flex-grow:0 !important}.wf-select-group .select2-container{min-width:200px}@media (max-width: 767px){.wf-select-group .select2-container{max-width:100px}}.wf-select-group .select2-container--default .select2-selection--single{display:block;width:100%;height:38px;padding:.5rem 1.25rem;font-size:14px;line-height:1.42857;color:#2b2b2b;background-color:#fff;background-image:none;border:1px solid #ddd;border-radius:4px;border-top-right-radius:0;border-bottom-right-radius:0;border-right:0;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);-webkit-transition:border-color ease-in-out 0.15s,box-shadow ease-in-out 0.15s;-o-transition:border-color ease-in-out 0.15s,box-shadow ease-in-out 0.15s;transition:border-color ease-in-out 0.15s,box-shadow ease-in-out 0.15s}.wf-select-group .select2-container--default .select2-selection--single .select2-selection__rendered{color:#2b2b2b;line-height:inherit}.wf-select-group .select2-container--default .select2-selection--single .select2-selection__arrow{height:38px}.wf-select-group .wf-form-control{display:inline-block;width:auto;border-top-left-radius:0;border-bottom-left-radius:0;margin-left:0}.wf-flex-horizontal{display:-webkit-flex !important;display:flex !important;-webkit-align-items:center !important;align-items:center !important;-webkit-justify-content:flex-start !important;justify-content:flex-start !important;-webkit-flex-direction:row !important;flex-direction:row !important}.wf-flex-horizontal>*:first-child{-webkit-flex-grow:0 !important;flex-grow:0 !important}.wf-flex-horizontal.wf-flex-align-left{-webkit-align-items:flex-start !important;align-items:flex-start !important}.wf-flex-horizontal.wf-flex-align-right{-webkit-justify-content:flex-end !important;justify-content:flex-end !important}.wf-flex-horizontal.wf-flex-full-width{width:100%}.wf-flex-horizontal.wf-flex-full-width>*:last-child{-webkit-flex-grow:1 !important;flex-grow:1 !important}.wf-flex-horizontal.wf-flex-full-width.wf-flex-grow-first>*:first-child{-webkit-flex-grow:1 !important;flex-grow:1 !important}.wf-flex-horizontal.wf-flex-full-width.wf-flex-grow-first>*:last-child{-webkit-flex-grow:0 !important;flex-grow:0 !important}.wf-flex-horizontal>li{padding:0;margin:0}.wf-flex-vertical{display:-webkit-flex !important;display:flex !important;-webkit-align-items:center !important;align-items:center !important;-webkit-justify-content:flex-start !important;justify-content:flex-start !important;-webkit-flex-direction:column !important;flex-direction:column !important}.wf-flex-vertical>*:first-child{-webkit-flex-grow:0 !important;flex-grow:0 !important}.wf-flex-vertical.wf-flex-align-left{-webkit-align-items:flex-start !important;align-items:flex-start !important}.wf-flex-vertical.wf-flex-align-right{-webkit-align-items:flex-end !important;align-items:flex-end !important}.wf-flex-vertical.wf-flex-full-width{-webkit-align-items:stretch !important;align-items:stretch !important}@media (max-width: 767px){.wf-flex-vertical.wf-flex-align-left-xs{-webkit-align-items:flex-start !important;align-items:flex-start !important}}@media (min-width: 768px) and (max-width: 991px){.wf-flex-vertical.wf-flex-align-left-sm{-webkit-align-items:flex-start !important;align-items:flex-start !important}}@media (min-width: 992px) and (max-width: 1199px){.wf-flex-vertical.wf-flex-align-left-md{-webkit-align-items:flex-start !important;align-items:flex-start !important}}@media (min-width: 1200px){.wf-flex-vertical.wf-flex-align-left-lg{-webkit-align-items:flex-start !important;align-items:flex-start !important}}.wf-flex-vertical>li{padding:0;margin:0}@media (max-width: 767px){.wf-flex-vertical-xs{display:-webkit-flex !important;display:flex !important;-webkit-align-items:center !important;align-items:center !important;-webkit-justify-content:flex-start !important;justify-content:flex-start !important;-webkit-flex-direction:column !important;flex-direction:column !important}.wf-flex-vertical-xs>*:first-child{-webkit-flex-grow:0 !important;flex-grow:0 !important}.wf-flex-vertical-xs.wf-flex-align-left{-webkit-align-items:flex-start !important;align-items:flex-start !important}.wf-flex-vertical-xs.wf-flex-align-right{-webkit-align-items:flex-end !important;align-items:flex-end !important}.wf-flex-vertical-xs.wf-flex-full-width{-webkit-align-items:stretch !important;align-items:stretch !important}}ul.wf-option,.wf-form-field{display:-webkit-flex;display:flex;-webkit-align-items:center;align-items:center;-webkit-justify-content:flex-start;justify-content:flex-start;-webkit-flex-direction:row;flex-direction:row;-webkit-flex-wrap:nowrap;flex-wrap:nowrap;padding:1rem 0;position:relative}ul.wf-option li,.wf-form-field li{margin:0;padding:0}ul.wf-option.wf-option-no-spacing,.wf-form-field.wf-option-no-spacing{padding:0;margin:0}ul.wf-option.wf-option-toggled>*:last-child,ul.wf-option.wf-option-toggled-boolean-switch>*:last-child,ul.wf-option.wf-option-toggled-select>*:last-child,ul.wf-option.wf-option-select>*:last-child,ul.wf-option.wf-option-text>*:last-child,ul.wf-option.wf-option-textarea>*:last-child,ul.wf-option.wf-option-switch>*:last-child,ul.wf-option.wf-option-footer>*:last-child,.wf-form-field.wf-option-toggled>*:last-child,.wf-form-field.wf-option-toggled-boolean-switch>*:last-child,.wf-form-field.wf-option-toggled-select>*:last-child,.wf-form-field.wf-option-select>*:last-child,.wf-form-field.wf-option-text>*:last-child,.wf-form-field.wf-option-textarea>*:last-child,.wf-form-field.wf-option-switch>*:last-child,.wf-form-field.wf-option-footer>*:last-child{margin-right:1rem}@media (max-width: 768px){ul.wf-option.wf-option-footer,.wf-form-field.wf-option-footer{-webkit-flex-direction:column;flex-direction:column}}ul.wf-option>.wf-option-content,.wf-form-field>.wf-option-content{-webkit-flex-grow:1;flex-grow:1}ul.wf-option>.wf-option-content>ul,.wf-form-field>.wf-option-content>ul{display:-webkit-flex;display:flex;-webkit-align-items:flex-start;align-items:flex-start;-webkit-justify-content:flex-start;justify-content:flex-start;-webkit-flex-direction:column;flex-direction:column;-webkit-flex-wrap:nowrap;flex-wrap:nowrap}@media (min-width: 768px){ul.wf-option>.wf-option-content>ul,.wf-form-field>.wf-option-content>ul{-webkit-flex-direction:row;flex-direction:row;-webkit-align-items:center;align-items:center}}ul.wf-option.wf-option-toggled-segmented *,.wf-form-field.wf-option-toggled-segmented *{-webkit-flex-grow:0;flex-grow:0}ul.wf-option.wf-option-toggled-segmented *:first-child,.wf-form-field.wf-option-toggled-segmented *:first-child{-webkit-flex-grow:1;flex-grow:1}ul.wf-option.wf-option-toggled-segmented>*:last-child,.wf-form-field.wf-option-toggled-segmented>*:last-child{margin-left:1rem}ul.wf-option.wf-option-toggled-segmented .wf-option-title,.wf-form-field.wf-option-toggled-segmented .wf-option-title{font-size:.8rem}ul.wf-option.wf-option-toggled-segmented .wf-option-segments,.wf-form-field.wf-option-toggled-segmented .wf-option-segments{display:-webkit-flex;display:flex;-webkit-align-items:center;align-items:center;-webkit-justify-content:flex-start;justify-content:flex-start;-webkit-align-content:stretch;align-content:stretch;-webkit-flex-wrap:nowrap;flex-wrap:nowrap}ul.wf-option.wf-option-toggled-segmented .wf-option-segments label,.wf-form-field.wf-option-toggled-segmented .wf-option-segments label{-webkit-flex-grow:1;flex-grow:1;-webkit-flex-basis:50%;flex-basis:50%;display:block;margin-bottom:0;font-weight:normal;text-align:center;vertical-align:middle;touch-action:manipulation;cursor:pointer;background-image:none;border:1px solid transparent;white-space:nowrap;text-transform:uppercase;padding:.5rem 1.25rem;font-size:14px;line-height:1.42857;border-radius:4px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;color:#00709e;background-color:#fff;border-color:#00709e;border-radius:0}ul.wf-option.wf-option-toggled-segmented .wf-option-segments label:focus,ul.wf-option.wf-option-toggled-segmented .wf-option-segments label.focus,.wf-form-field.wf-option-toggled-segmented .wf-option-segments label:focus,.wf-form-field.wf-option-toggled-segmented .wf-option-segments label.focus{color:#00709e;background-color:#e6e6e6;border-color:#00161f}ul.wf-option.wf-option-toggled-segmented .wf-option-segments label:hover,.wf-form-field.wf-option-toggled-segmented .wf-option-segments label:hover{color:#00709e;background-color:#e6e6e6;border-color:#004561}ul.wf-option.wf-option-toggled-segmented .wf-option-segments label:active,ul.wf-option.wf-option-toggled-segmented .wf-option-segments label.active,.wf-open>ul.wf-option.wf-option-toggled-segmented .wf-option-segments label.wf-dropdown-toggle,.wf-form-field.wf-option-toggled-segmented .wf-option-segments label:active,.wf-form-field.wf-option-toggled-segmented .wf-option-segments label.active,.wf-open>.wf-form-field.wf-option-toggled-segmented .wf-option-segments label.wf-dropdown-toggle{color:#00709e;background-color:#e6e6e6;border-color:#004561}ul.wf-option.wf-option-toggled-segmented .wf-option-segments label:active:hover,ul.wf-option.wf-option-toggled-segmented .wf-option-segments label:active:focus,ul.wf-option.wf-option-toggled-segmented .wf-option-segments label:active.focus,ul.wf-option.wf-option-toggled-segmented .wf-option-segments label.active:hover,ul.wf-option.wf-option-toggled-segmented .wf-option-segments label.active:focus,ul.wf-option.wf-option-toggled-segmented .wf-option-segments label.active.focus,.wf-open>ul.wf-option.wf-option-toggled-segmented .wf-option-segments label.wf-dropdown-toggle:hover,.wf-open>ul.wf-option.wf-option-toggled-segmented .wf-option-segments label.wf-dropdown-toggle:focus,.wf-open>ul.wf-option.wf-option-toggled-segmented .wf-option-segments label.wf-dropdown-toggle.focus,.wf-form-field.wf-option-toggled-segmented .wf-option-segments label:active:hover,.wf-form-field.wf-option-toggled-segmented .wf-option-segments label:active:focus,.wf-form-field.wf-option-toggled-segmented .wf-option-segments label:active.focus,.wf-form-field.wf-option-toggled-segmented .wf-option-segments label.active:hover,.wf-form-field.wf-option-toggled-segmented .wf-option-segments label.active:focus,.wf-form-field.wf-option-toggled-segmented .wf-option-segments label.active.focus,.wf-open>.wf-form-field.wf-option-toggled-segmented .wf-option-segments label.wf-dropdown-toggle:hover,.wf-open>.wf-form-field.wf-option-toggled-segmented .wf-option-segments label.wf-dropdown-toggle:focus,.wf-open>.wf-form-field.wf-option-toggled-segmented .wf-option-segments label.wf-dropdown-toggle.focus{color:#00709e;background-color:#d4d4d4;border-color:#00161f}ul.wf-option.wf-option-toggled-segmented .wf-option-segments label:active,ul.wf-option.wf-option-toggled-segmented .wf-option-segments label.wf-active,.wf-open>ul.wf-option.wf-option-toggled-segmented .wf-option-segments label.wf-dropdown-toggle,.wf-form-field.wf-option-toggled-segmented .wf-option-segments label:active,.wf-form-field.wf-option-toggled-segmented .wf-option-segments label.wf-active,.wf-open>.wf-form-field.wf-option-toggled-segmented .wf-option-segments label.wf-dropdown-toggle{background-image:none}ul.wf-option.wf-option-toggled-segmented .wf-option-segments label.wf-disabled,ul.wf-option.wf-option-toggled-segmented .wf-option-segments label[disabled],ul.wf-option.wf-option-toggled-segmented .wf-option-segments label[readonly],fieldset[disabled] ul.wf-option.wf-option-toggled-segmented .wf-option-segments label,.wf-form-field.wf-option-toggled-segmented .wf-option-segments label.wf-disabled,.wf-form-field.wf-option-toggled-segmented .wf-option-segments label[disabled],.wf-form-field.wf-option-toggled-segmented .wf-option-segments label[readonly],fieldset[disabled] .wf-form-field.wf-option-toggled-segmented .wf-option-segments label{color:#777;background-color:#fff;border-color:#e2e2e2;cursor:not-allowed}ul.wf-option.wf-option-toggled-segmented .wf-option-segments label.wf-disabled:hover,ul.wf-option.wf-option-toggled-segmented .wf-option-segments label.wf-disabled:focus,ul.wf-option.wf-option-toggled-segmented .wf-option-segments label.wf-disabled.wf-focus,ul.wf-option.wf-option-toggled-segmented .wf-option-segments label[disabled]:hover,ul.wf-option.wf-option-toggled-segmented .wf-option-segments label[disabled]:focus,ul.wf-option.wf-option-toggled-segmented .wf-option-segments label[disabled].wf-focus,ul.wf-option.wf-option-toggled-segmented .wf-option-segments label[readonly]:hover,ul.wf-option.wf-option-toggled-segmented .wf-option-segments label[readonly]:focus,ul.wf-option.wf-option-toggled-segmented .wf-option-segments label[readonly].wf-focus,fieldset[disabled] ul.wf-option.wf-option-toggled-segmented .wf-option-segments label:hover,fieldset[disabled] ul.wf-option.wf-option-toggled-segmented .wf-option-segments label:focus,fieldset[disabled] ul.wf-option.wf-option-toggled-segmented .wf-option-segments label.wf-focus,.wf-form-field.wf-option-toggled-segmented .wf-option-segments label.wf-disabled:hover,.wf-form-field.wf-option-toggled-segmented .wf-option-segments label.wf-disabled:focus,.wf-form-field.wf-option-toggled-segmented .wf-option-segments label.wf-disabled.wf-focus,.wf-form-field.wf-option-toggled-segmented .wf-option-segments label[disabled]:hover,.wf-form-field.wf-option-toggled-segmented .wf-option-segments label[disabled]:focus,.wf-form-field.wf-option-toggled-segmented .wf-option-segments label[disabled].wf-focus,.wf-form-field.wf-option-toggled-segmented .wf-option-segments label[readonly]:hover,.wf-form-field.wf-option-toggled-segmented .wf-option-segments label[readonly]:focus,.wf-form-field.wf-option-toggled-segmented .wf-option-segments label[readonly].wf-focus,fieldset[disabled] .wf-form-field.wf-option-toggled-segmented .wf-option-segments label:hover,fieldset[disabled] .wf-form-field.wf-option-toggled-segmented .wf-option-segments label:focus,fieldset[disabled] .wf-form-field.wf-option-toggled-segmented .wf-option-segments label.wf-focus{background-color:#fff;border-color:#00709e}ul.wf-option.wf-option-toggled-segmented .wf-option-segments label .wf-badge,.wf-form-field.wf-option-toggled-segmented .wf-option-segments label .wf-badge{color:#fff;background-color:#00709e}ul.wf-option.wf-option-toggled-segmented .wf-option-segments label.wf-segment-first,.wf-form-field.wf-option-toggled-segmented .wf-option-segments label.wf-segment-first{border-radius:4px 0 0 4px}ul.wf-option.wf-option-toggled-segmented .wf-option-segments label.wf-segment-last,.wf-form-field.wf-option-toggled-segmented .wf-option-segments label.wf-segment-last{border-radius:0 4px 4px 0}ul.wf-option.wf-option-toggled-segmented .wf-option-segments [type=radio],.wf-form-field.wf-option-toggled-segmented .wf-option-segments [type=radio]{position:absolute;left:-9999px}ul.wf-option.wf-option-toggled-segmented .wf-option-segments [type=radio]:checked+label,.wf-form-field.wf-option-toggled-segmented .wf-option-segments [type=radio]:checked+label{color:#fff;background-color:#00709e;border-color:#005e85}ul.wf-option.wf-option-toggled-segmented .wf-option-segments [type=radio]:checked+label:focus,ul.wf-option.wf-option-toggled-segmented .wf-option-segments [type=radio]:checked+label.focus,.wf-form-field.wf-option-toggled-segmented .wf-option-segments [type=radio]:checked+label:focus,.wf-form-field.wf-option-toggled-segmented .wf-option-segments [type=radio]:checked+label.focus{color:#fff;background-color:#004c6b;border-color:#000405}ul.wf-option.wf-option-toggled-segmented .wf-option-segments [type=radio]:checked+label:hover,.wf-form-field.wf-option-toggled-segmented .wf-option-segments [type=radio]:checked+label:hover{color:#fff;background-color:#004c6b;border-color:#003347}ul.wf-option.wf-option-toggled-segmented .wf-option-segments [type=radio]:checked+label:active,ul.wf-option.wf-option-toggled-segmented .wf-option-segments [type=radio]:checked+label.active,.wf-open>ul.wf-option.wf-option-toggled-segmented .wf-option-segments [type=radio]:checked+label.wf-dropdown-toggle,.wf-form-field.wf-option-toggled-segmented .wf-option-segments [type=radio]:checked+label:active,.wf-form-field.wf-option-toggled-segmented .wf-option-segments [type=radio]:checked+label.active,.wf-open>.wf-form-field.wf-option-toggled-segmented .wf-option-segments [type=radio]:checked+label.wf-dropdown-toggle{color:#fff;background-color:#004c6b;border-color:#003347}ul.wf-option.wf-option-toggled-segmented .wf-option-segments [type=radio]:checked+label:active:hover,ul.wf-option.wf-option-toggled-segmented .wf-option-segments [type=radio]:checked+label:active:focus,ul.wf-option.wf-option-toggled-segmented .wf-option-segments [type=radio]:checked+label:active.focus,ul.wf-option.wf-option-toggled-segmented .wf-option-segments [type=radio]:checked+label.active:hover,ul.wf-option.wf-option-toggled-segmented .wf-option-segments [type=radio]:checked+label.active:focus,ul.wf-option.wf-option-toggled-segmented .wf-option-segments [type=radio]:checked+label.active.focus,.wf-open>ul.wf-option.wf-option-toggled-segmented .wf-option-segments [type=radio]:checked+label.wf-dropdown-toggle:hover,.wf-open>ul.wf-option.wf-option-toggled-segmented .wf-option-segments [type=radio]:checked+label.wf-dropdown-toggle:focus,.wf-open>ul.wf-option.wf-option-toggled-segmented .wf-option-segments [type=radio]:checked+label.wf-dropdown-toggle.focus,.wf-form-field.wf-option-toggled-segmented .wf-option-segments [type=radio]:checked+label:active:hover,.wf-form-field.wf-option-toggled-segmented .wf-option-segments [type=radio]:checked+label:active:focus,.wf-form-field.wf-option-toggled-segmented .wf-option-segments [type=radio]:checked+label:active.focus,.wf-form-field.wf-option-toggled-segmented .wf-option-segments [type=radio]:checked+label.active:hover,.wf-form-field.wf-option-toggled-segmented .wf-option-segments [type=radio]:checked+label.active:focus,.wf-form-field.wf-option-toggled-segmented .wf-option-segments [type=radio]:checked+label.active.focus,.wf-open>.wf-form-field.wf-option-toggled-segmented .wf-option-segments [type=radio]:checked+label.wf-dropdown-toggle:hover,.wf-open>.wf-form-field.wf-option-toggled-segmented .wf-option-segments [type=radio]:checked+label.wf-dropdown-toggle:focus,.wf-open>.wf-form-field.wf-option-toggled-segmented .wf-option-segments [type=radio]:checked+label.wf-dropdown-toggle.focus{color:#fff;background-color:#003347;border-color:#000405}ul.wf-option.wf-option-toggled-segmented .wf-option-segments [type=radio]:checked+label:active,ul.wf-option.wf-option-toggled-segmented .wf-option-segments [type=radio]:checked+label.wf-active,.wf-open>ul.wf-option.wf-option-toggled-segmented .wf-option-segments [type=radio]:checked+label.wf-dropdown-toggle,.wf-form-field.wf-option-toggled-segmented .wf-option-segments [type=radio]:checked+label:active,.wf-form-field.wf-option-toggled-segmented .wf-option-segments [type=radio]:checked+label.wf-active,.wf-open>.wf-form-field.wf-option-toggled-segmented .wf-option-segments [type=radio]:checked+label.wf-dropdown-toggle{background-image:none}ul.wf-option.wf-option-toggled-segmented .wf-option-segments [type=radio]:checked+label.wf-disabled,ul.wf-option.wf-option-toggled-segmented .wf-option-segments [type=radio]:checked+label[disabled],ul.wf-option.wf-option-toggled-segmented .wf-option-segments [type=radio]:checked+label[readonly],fieldset[disabled] ul.wf-option.wf-option-toggled-segmented .wf-option-segments [type=radio]:checked+label,.wf-form-field.wf-option-toggled-segmented .wf-option-segments [type=radio]:checked+label.wf-disabled,.wf-form-field.wf-option-toggled-segmented .wf-option-segments [type=radio]:checked+label[disabled],.wf-form-field.wf-option-toggled-segmented .wf-option-segments [type=radio]:checked+label[readonly],fieldset[disabled] .wf-form-field.wf-option-toggled-segmented .wf-option-segments [type=radio]:checked+label{color:#fff;background-color:#59a2c0;border-color:#5996b0;cursor:not-allowed}ul.wf-option.wf-option-toggled-segmented .wf-option-segments [type=radio]:checked+label.wf-disabled:hover,ul.wf-option.wf-option-toggled-segmented .wf-option-segments [type=radio]:checked+label.wf-disabled:focus,ul.wf-option.wf-option-toggled-segmented .wf-option-segments [type=radio]:checked+label.wf-disabled.wf-focus,ul.wf-option.wf-option-toggled-segmented .wf-option-segments [type=radio]:checked+label[disabled]:hover,ul.wf-option.wf-option-toggled-segmented .wf-option-segments [type=radio]:checked+label[disabled]:focus,ul.wf-option.wf-option-toggled-segmented .wf-option-segments [type=radio]:checked+label[disabled].wf-focus,ul.wf-option.wf-option-toggled-segmented .wf-option-segments [type=radio]:checked+label[readonly]:hover,ul.wf-option.wf-option-toggled-segmented .wf-option-segments [type=radio]:checked+label[readonly]:focus,ul.wf-option.wf-option-toggled-segmented .wf-option-segments [type=radio]:checked+label[readonly].wf-focus,fieldset[disabled] ul.wf-option.wf-option-toggled-segmented .wf-option-segments [type=radio]:checked+label:hover,fieldset[disabled] ul.wf-option.wf-option-toggled-segmented .wf-option-segments [type=radio]:checked+label:focus,fieldset[disabled] ul.wf-option.wf-option-toggled-segmented .wf-option-segments [type=radio]:checked+label.wf-focus,.wf-form-field.wf-option-toggled-segmented .wf-option-segments [type=radio]:checked+label.wf-disabled:hover,.wf-form-field.wf-option-toggled-segmented .wf-option-segments [type=radio]:checked+label.wf-disabled:focus,.wf-form-field.wf-option-toggled-segmented .wf-option-segments [type=radio]:checked+label.wf-disabled.wf-focus,.wf-form-field.wf-option-toggled-segmented .wf-option-segments [type=radio]:checked+label[disabled]:hover,.wf-form-field.wf-option-toggled-segmented .wf-option-segments [type=radio]:checked+label[disabled]:focus,.wf-form-field.wf-option-toggled-segmented .wf-option-segments [type=radio]:checked+label[disabled].wf-focus,.wf-form-field.wf-option-toggled-segmented .wf-option-segments [type=radio]:checked+label[readonly]:hover,.wf-form-field.wf-option-toggled-segmented .wf-option-segments [type=radio]:checked+label[readonly]:focus,.wf-form-field.wf-option-toggled-segmented .wf-option-segments [type=radio]:checked+label[readonly].wf-focus,fieldset[disabled] .wf-form-field.wf-option-toggled-segmented .wf-option-segments [type=radio]:checked+label:hover,fieldset[disabled] .wf-form-field.wf-option-toggled-segmented .wf-option-segments [type=radio]:checked+label:focus,fieldset[disabled] .wf-form-field.wf-option-toggled-segmented .wf-option-segments [type=radio]:checked+label.wf-focus{background-color:#00709e;border-color:#005e85}ul.wf-option.wf-option-toggled-segmented .wf-option-segments [type=radio]:checked+label .wf-badge,.wf-form-field.wf-option-toggled-segmented .wf-option-segments [type=radio]:checked+label .wf-badge{color:#00709e;background-color:#fff}ul.wf-option.wf-option-toggled-segmented .wf-option-segments [type=radio]:disabled+label,.wf-form-field.wf-option-toggled-segmented .wf-option-segments [type=radio]:disabled+label{cursor:not-allowed;filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=65);opacity:.65}ul.wf-option.wf-option-toggled-multiple,.wf-form-field.wf-option-toggled-multiple{-webkit-flex-direction:column;flex-direction:column;-webkit-align-items:flex-start;align-items:flex-start}ul.wf-option.wf-option-toggled-multiple>.wf-option-title,.wf-form-field.wf-option-toggled-multiple>.wf-option-title{font-weight:600}ul.wf-option>.wf-option-spacer,.wf-form-field>.wf-option-spacer{-webkit-flex-grow:0;flex-grow:0;-webkit-flex-shrink:0;flex-shrink:0;margin:0 1rem 0 0;width:30px;height:30px}@media (min-width: 768px){ul.wf-option>.wf-option-spacer,.wf-form-field>.wf-option-spacer{margin:0 2rem 0 1rem;width:20px;height:20px}}ul.wf-option>.wf-option-premium-lock,.wf-form-field>.wf-option-premium-lock{-webkit-flex-grow:0;flex-grow:0;-webkit-flex-shrink:0;flex-shrink:0;background:url("data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPCFET0NUWVBFIHN2ZyBQVUJMSUMgIi0vL1czQy8vRFREIFNWRyAxLjEvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvR3JhcGhpY3MvU1ZHLzEuMS9EVEQvc3ZnMTEuZHRkIj4KPHN2ZyB3aWR0aD0iMjRweCIgaGVpZ2h0PSIzMHB4IiB2aWV3Qm94PSIwIDAgMjQgMzAiIHZlcnNpb249IjEuMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KCTxwYXRoIGQ9Ik0yMy45NDksMTQuMjMzYy0wLjM3OSwtMC4zOSAtMC45MDQsLTAuNjA2IC0xLjQ0OCwtMC41OTVsLTAuNjgzLDBsMCwtNC4wOTJjMC4wMzIsLTIuNTM1IC0wLjk4NiwtNC45NzMgLTIuODEyLC02LjczMWMtMS43NTksLTEuODI4IC00LjE5OCwtMi44NDcgLTYuNzM0LC0yLjgxNWMtMi41MzYsLTAuMDMyIC00Ljk3NiwwLjk4NyAtNi43MzQsMi44MTVjLTEuODI2LDEuNzU4IC0yLjg0NCw0LjE5NiAtMi44MTIsNi43MzFsMCw0LjA4OWwtMC42OCwwYy0wLjU0NCwtMC4wMTEgLTEuMDY5LDAuMjA1IC0xLjQ0OCwwLjU5NWMtMC4zOTUsMC4zODIgLTAuNjEyLDAuOTEyIC0wLjU5OCwxLjQ2MWwwLDEyLjI2NmMtMC4wMTEsMC41NDQgMC4yMDQsMS4wNjkgMC41OTUsMS40NDhjMC4zNzksMC4zOTEgMC45MDQsMC42MDYgMS40NDgsMC41OTVsMjAuNDU4LDBjMC4wMDMsMCAwLjAwNiwwIDAuMDEsMGMxLjExNywwIDIuMDM2LC0wLjkxOSAyLjAzNiwtMi4wMzdjMCwtMC4wMDMgMCwtMC4wMDYgMCwtMC4wMDlsMCwtMTIuMjYzYzAuMDExLC0wLjU0NCAtMC4yMDYsLTEuMDY5IC0wLjU5OCwtMS40NDhsMCwtMC4wMVptLTYuMjExLC0wLjU5NWwtMTAuOTE5LDBsMCwtNC4wOTJjLTAuMDIyLC0xLjQ1MSAwLjU1NywtMi44NDggMS41OTksLTMuODU4YzEuMDA5LC0xLjA0MiAyLjQwNywtMS42MjEgMy44NTcsLTEuNTk4YzEuNDUxLC0wLjAyMyAyLjg0OCwwLjU1NiAzLjg1OCwxLjU5OGMxLjA0MiwxLjAwOSAxLjYyMSwyLjQwNyAxLjU5OCwzLjg1OGwwLjAwNyw0LjA5MloiIGZpbGw9IiNkMWQxZDEiLz4KPC9zdmc+");background-repeat:no-repeat;background-position:center center;background-size:contain;margin:0 1rem 0 0;width:30px;height:30px}@media (min-width: 768px){ul.wf-option>.wf-option-premium-lock,.wf-form-field>.wf-option-premium-lock{margin:0 2rem 0 1rem;width:20px;height:20px}}ul.wf-option>.wf-option-checkbox,.wf-form-field>.wf-option-checkbox{-webkit-flex-grow:0;flex-grow:0;-webkit-flex-shrink:0;flex-shrink:0;margin:0 1rem 0 0}@media (min-width: 768px){ul.wf-option>.wf-option-checkbox,.wf-form-field>.wf-option-checkbox{margin:0 2rem 0 1rem}}ul.wf-option>.wf-boolean-switch,.wf-form-field>.wf-boolean-switch{-webkit-flex-grow:0;flex-grow:0;-webkit-flex-shrink:0;flex-shrink:0;margin:0 1rem 0 0}@media (min-width: 768px){ul.wf-option>.wf-boolean-switch,.wf-form-field>.wf-boolean-switch{margin:0 1rem 0 1rem}}ul.wf-option.wf-option-no-spacing>.wf-boolean-switch,.wf-form-field.wf-option-no-spacing>.wf-boolean-switch{margin:0}ul.wf-option>.wf-option-radio-container,.wf-form-field>.wf-option-radio-container{-webkit-flex-grow:0;flex-grow:0;-webkit-flex-shrink:0;flex-shrink:0;margin:0 1rem 0 0}@media (min-width: 768px){ul.wf-option>.wf-option-radio-container,.wf-form-field>.wf-option-radio-container{margin:0 2rem 0 1rem}}ul.wf-option>.wf-option-radio-container [type=radio].wf-option-radio+label:before,.wf-form-field>.wf-option-radio-container [type=radio].wf-option-radio+label:before{margin:0}ul.wf-option>li>.wf-option-title,ul.wf-option>.wf-option-title,ul.wf-option>.wf-option-content>ul>.wf-option-title,.wf-form-field>li>.wf-option-title,.wf-form-field>.wf-option-title,.wf-form-field>.wf-option-content>ul>.wf-option-title{font-family:Roboto,"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:0.9rem;color:#2b2b2b;padding-right:0.5rem}ul.wf-option>li>.wf-option-title .wf-option-subtitle,ul.wf-option>.wf-option-title .wf-option-subtitle,ul.wf-option>.wf-option-content>ul>.wf-option-title .wf-option-subtitle,.wf-form-field>li>.wf-option-title .wf-option-subtitle,.wf-form-field>.wf-option-title .wf-option-subtitle,.wf-form-field>.wf-option-content>ul>.wf-option-title .wf-option-subtitle{padding-top:0.25rem;font-size:0.75rem}ul.wf-option .wf-flex-vertical .wf-option-title,.wf-form-field .wf-flex-vertical .wf-option-title{padding-bottom:0.75rem}ul.wf-option.wf-flex-vertical>.wf-option-subtitle,.wf-form-field.wf-flex-vertical>.wf-option-subtitle{padding-top:0.25rem !important;font-size:0.75rem !important}ul.wf-option .wf-option-checkboxes,ul.wf-option .wf-option-checkboxes>ul,.wf-form-field .wf-option-checkboxes,.wf-form-field .wf-option-checkboxes>ul{display:-webkit-flex;display:flex;-webkit-align-items:center;align-items:center;-webkit-justify-content:flex-start;justify-content:flex-start;-webkit-flex-direction:row;flex-direction:row;-webkit-flex-wrap:nowrap;flex-wrap:nowrap}ul.wf-option .wf-option-checkboxes,.wf-form-field .wf-option-checkboxes{margin-top:1rem}ul.wf-option .wf-option-checkboxes>ul,.wf-form-field .wf-option-checkboxes>ul{margin-left:1rem}@media (min-width: 768px){ul.wf-option .wf-option-checkboxes>ul,.wf-form-field .wf-option-checkboxes>ul{margin-left:1.5rem}}ul.wf-option .wf-option-checkboxes>ul:first-of-type,.wf-form-field .wf-option-checkboxes>ul:first-of-type{margin-left:0}ul.wf-option .wf-option-checkboxes>ul>.wf-option-checkbox,.wf-form-field .wf-option-checkboxes>ul>.wf-option-checkbox{margin:0 1rem 0 0}ul.wf-option li.wf-option-text,ul.wf-option li.wf-option-textarea,ul.wf-option td.wf-option-text,.wf-form-field li.wf-option-text,.wf-form-field li.wf-option-textarea,.wf-form-field td.wf-option-text{padding-top:0.5rem}@media (min-width: 768px){ul.wf-option li.wf-option-text,ul.wf-option li.wf-option-textarea,ul.wf-option td.wf-option-text,.wf-form-field li.wf-option-text,.wf-form-field li.wf-option-textarea,.wf-form-field td.wf-option-text{-webkit-flex-grow:1;flex-grow:1;text-align:right;padding-left:1rem;padding-top:0}}ul.wf-option li.wf-option-text>input[type="text"],.wf-form-field li.wf-option-text>input[type="text"]{max-width:240px}@media (min-width: 768px){ul.wf-option li.wf-option-text>input[type="text"],.wf-form-field li.wf-option-text>input[type="text"]{max-width:280px}}@media (min-width: 992px){ul.wf-option li.wf-option-text>input[type="text"],.wf-form-field li.wf-option-text>input[type="text"]{max-width:340px}}ul.wf-option li.wf-option-text.wf-option-full-width>input[type="text"],.wf-form-field li.wf-option-text.wf-option-full-width>input[type="text"]{max-width:100%;width:100%}ul.wf-option li.wf-option-textarea>textarea,.wf-form-field li.wf-option-textarea>textarea{width:100%;height:80px;min-width:150px;max-width:240px}@media (min-width: 768px){ul.wf-option li.wf-option-textarea>textarea,.wf-form-field li.wf-option-textarea>textarea{min-width:200px;max-width:280px}}@media (min-width: 992px){ul.wf-option li.wf-option-textarea>textarea,.wf-form-field li.wf-option-textarea>textarea{min-width:250px;max-width:340px}}ul.wf-option li.wf-option-switch,.wf-form-field li.wf-option-switch{-webkit-flex-grow:1;flex-grow:1}ul.wf-option li.wf-option-switch.wf-right .wf-switch,.wf-form-field li.wf-option-switch.wf-right .wf-switch{justify-content:flex-end !important}ul.wf-option li.wf-option-select,.wf-form-field li.wf-option-select{-webkit-flex-grow:1;flex-grow:1;text-align:right}ul.wf-option li.wf-option-select select,ul.wf-option li.wf-option-select select option,ul.wf-option li.wf-option-select .select2-container--default,.wf-form-field li.wf-option-select select,.wf-form-field li.wf-option-select select option,.wf-form-field li.wf-option-select .select2-container--default{font-size:0.7rem;font-weight:bold}@media (min-width: 768px){ul.wf-option li.wf-option-select select,ul.wf-option li.wf-option-select select option,ul.wf-option li.wf-option-select .select2-container--default,.wf-form-field li.wf-option-select select,.wf-form-field li.wf-option-select select option,.wf-form-field li.wf-option-select .select2-container--default{font-size:0.8rem}}@media (min-width: 992px){ul.wf-option li.wf-option-select select,ul.wf-option li.wf-option-select select option,ul.wf-option li.wf-option-select .select2-container--default,.wf-form-field li.wf-option-select select,.wf-form-field li.wf-option-select select option,.wf-form-field li.wf-option-select .select2-container--default{font-size:0.9rem}}ul.wf-option li.wf-option-select .wf-option-select-option,ul.wf-option li.wf-option-select .select2-container--default,ul.wf-option li.wf-option-select .select2-container--default .select2-selection--single,.wf-form-field li.wf-option-select .wf-option-select-option,.wf-form-field li.wf-option-select .select2-container--default,.wf-form-field li.wf-option-select .select2-container--default .select2-selection--single{text-align:left;height:40px;border-radius:0;border:0;background-color:#fff;box-shadow:1px 1px 1px 2px rgba(215,215,215,0.35)}ul.wf-option li.wf-option-select .wf-option-select-option .select2-selection__rendered,ul.wf-option li.wf-option-select .select2-container--default .select2-selection__rendered,ul.wf-option li.wf-option-select .select2-container--default .select2-selection--single .select2-selection__rendered,.wf-form-field li.wf-option-select .wf-option-select-option .select2-selection__rendered,.wf-form-field li.wf-option-select .select2-container--default .select2-selection__rendered,.wf-form-field li.wf-option-select .select2-container--default .select2-selection--single .select2-selection__rendered{color:#333;line-height:40px}ul.wf-option li.wf-option-select .wf-option-select-option .select2-selection__arrow,ul.wf-option li.wf-option-select .select2-container--default .select2-selection__arrow,ul.wf-option li.wf-option-select .select2-container--default .select2-selection--single .select2-selection__arrow,.wf-form-field li.wf-option-select .wf-option-select-option .select2-selection__arrow,.wf-form-field li.wf-option-select .select2-container--default .select2-selection__arrow,.wf-form-field li.wf-option-select .select2-container--default .select2-selection--single .select2-selection__arrow{height:38px}ul.wf-option li.wf-option-select .wf-option-select-option.select2-container--disabled .select2-selection__rendered,ul.wf-option li.wf-option-select .select2-container--default.select2-container--disabled .select2-selection__rendered,ul.wf-option li.wf-option-select .select2-container--default .select2-selection--single.select2-container--disabled .select2-selection__rendered,.wf-form-field li.wf-option-select .wf-option-select-option.select2-container--disabled .select2-selection__rendered,.wf-form-field li.wf-option-select .select2-container--default.select2-container--disabled .select2-selection__rendered,.wf-form-field li.wf-option-select .select2-container--default .select2-selection--single.select2-container--disabled .select2-selection__rendered{color:#aaa}ul.wf-option li.wf-option-select .select2-container--default .select2-selection--single .select2-selection__arrow b,.wf-form-field li.wf-option-select .select2-container--default .select2-selection--single .select2-selection__arrow b{border-color:#333 transparent transparent}ul.wf-option li.wf-option-select .select2-container--default.select2-container--open .select2-selection--single .select2-selection__arrow b,.wf-form-field li.wf-option-select .select2-container--default.select2-container--open .select2-selection--single .select2-selection__arrow b{border-color:transparent transparent #333}ul.wf-option.wf-option-token select,.wf-form-field.wf-option-token select{width:240px}@media (min-width: 768px){ul.wf-option.wf-option-token select,.wf-form-field.wf-option-token select{width:280px}}@media (min-width: 992px){ul.wf-option.wf-option-token select,.wf-form-field.wf-option-token select{width:320px}}ul.wf-option.wf-option-token .select2-container--default,ul.wf-option.wf-option-token .select2-container--default .select2-selection--multiple,.wf-form-field.wf-option-token .select2-container--default,.wf-form-field.wf-option-token .select2-container--default .select2-selection--multiple{border-color:#e2e2e2}ul.wf-option.wf-option-token .select2-container--default .select2-selection__choice,ul.wf-option.wf-option-token .select2-container--default .select2-selection--multiple .select2-selection__choice,.wf-form-field.wf-option-token .select2-container--default .select2-selection__choice,.wf-form-field.wf-option-token .select2-container--default .select2-selection--multiple .select2-selection__choice{background-color:#fff;border-color:#e2e2e2;padding:0.5rem}ul.wf-option.wf-option-token .select2-container--default .select2-search__field,ul.wf-option.wf-option-token .select2-container--default .select2-selection--multiple .select2-search__field,.wf-form-field.wf-option-token .select2-container--default .select2-search__field,.wf-form-field.wf-option-token .select2-container--default .select2-selection--multiple .select2-search__field{margin-right:5px;margin-top:5px;padding:0.5rem 0}.wf-option-sub{padding-left:2rem !important;margin-left:30px !important}.wf-select2-suppress-dropdown .select2-results,.wf-select2-suppress-dropdown .select2-dropdown{display:none}.wf-options-controls{direction:ltr;background:#ffffff;border-bottom:1px solid #e2e2e2;position:absolute;left:160px;right:0px;top:46px;z-index:900;padding-left:15px;padding-right:15px}@media (min-width: 616px){.wf-options-controls{position:fixed}}.wf-options-controls .wf-block{margin:0}@media (min-width: 782px){.wf-options-controls .wf-block{margin:0.5rem 0}}.sticky-menu .wf-options-controls{top:32px}.folded .wf-options-controls{left:36px}@media only screen and (max-width: 960px){.auto-fold .wf-options-controls{left:36px}}.rtl .wf-options-controls{right:160px;left:0px}.rtl .folded .wf-options-controls{right:36px}@media only screen and (max-width: 960px){.rtl .auto-fold .wf-options-controls{right:36px}}@media screen and (max-width: 782px){.wf-options-controls,.folded .wf-options-controls,.auto-fold .wf-options-controls,.rtl .wf-options-controls,.rtl .folded .wf-options-controls,.rtl .auto-fold .wf-options-controls{left:-10px;right:0px}}.wf-options-controls-spacer{height:45px}@media (min-width: 782px){.wf-options-controls-spacer{height:75px}}.sticky-menu .wf-options-controls-spacer{top:61px}.wordfence .select2-container .select2-selection--single{border:1px solid #dadada;font-weight:normal;font-size:0.8rem}#wf-notices{margin-top:15px}#wf-notices .wf-admin-notice{margin-left:0px;margin-right:0px}.wf-success-text,.wf-notice-text{display:inline-block;vertical-align:middle;line-height:1.3;font-size:16px;font-weight:bold;font-style:italic}.wf-notice{margin:12px 0;padding:8px;background-color:#ffffe0;border:1px solid #ffd975;border-width:1px 1px 1px 10px}.wf-notice-text{color:#6d798c}.wf-success{margin:12px 0;padding:8px;background-color:#ffffff;border:1px solid #16bc9b;border-width:1px 1px 1px 10px}.wf-success-text{color:#11967a}.wf-premium-callout{border:1px solid #dfdfdf;background-color:#ffffff;padding:16px;margin:20px 0 0;text-align:center}.wf-premium-callout ul{margin:8px 0;padding:0 0 0 15px}.wf-premium-callout ul li{list-style-type:disc;margin:0;padding:0}.wf-premium-callout .center{text-align:center;margin:0}.wf-premium-callout .button-primary{text-align:center;text-transform:uppercase;font-weight:bold;background-color:#00709e}#wfLiveTrafficOverlayAnchor::after{position:absolute;z-index:3002;top:0;right:0;width:0;height:0;background:rgba(241,241,241,0.6);content:'';opacity:0;-webkit-transition:opacity 0.5s,width 0.1s 0.5s,height 0.1s 0.5s;-o-transition:opacity 0.5s,width 0.1s 0.5s,height 0.1s 0.5s;transition:opacity 0.5s,width 0.1s 0.5s,height 0.1s 0.5s}.wordfenceLiveActivityPaused #wfLiveTrafficOverlayAnchor::after{width:100%;height:100%;opacity:1;-webkit-transition:opacity 0.5s;-o-transition:opacity 0.5s;transition:opacity 0.5s}#wordfenceLiveActivityDisabled{background:#fff;border-left:4px solid #ffb900;-webkit-box-shadow:0 1px 1px 0 rgba(0,0,0,0.1);box-shadow:0 1px 1px 0 rgba(0,0,0,0.1);margin-bottom:12px;padding:1px 13px}#wfLiveTrafficDisabledMessage{display:none;position:fixed;z-index:3003;left:0;width:100%;top:50%;transform:translateY(-50%);text-align:center;color:#666666;opacity:0;-webkit-transition:opacity 0.5s,width 0.1s 0.5s,height 0.1s 0.5s;-o-transition:opacity 0.5s,width 0.1s 0.5s,height 0.1s 0.5s;transition:opacity 0.5s,width 0.1s 0.5s,height 0.1s 0.5s}#wfLiveTrafficDisabledMessage h2{background-color:#00709e;color:#fff;overflow:hidden;max-width:350px;margin:0 auto;padding:20px;font-size:2.0em}#wfLiveTrafficDisabledMessage h2 small{font-size:0.5em;font-weight:normal;margin-top:12px;display:block}.wordfenceLiveActivityPaused #wfLiveTrafficDisabledMessage{display:block;opacity:1;-webkit-transition:opacity 0.5s;transition:opacity 0.5s}.wf-live-activity{position:relative;margin:20px 0 10px 0;padding:0.75rem;box-sizing:border-box;background:#FFFCEF;box-shadow:0 0 0 1px rgba(153,155,135,0.5),0 1px 2px #e8f3e0}.wf-live-activity .wf-live-activity-inner{width:100%;box-sizing:border-box;position:relative}.wf-live-activity .wf-live-activity-inner .wf-live-activity-content{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:justify;justify-content:flex-start}.wf-live-activity .wf-live-activity-inner .wf-live-activity-content .wf-live-activity-title{color:#888888;font-size:0.85rem;font-weight:bold;padding-right:0.5rem}.wf-live-activity .wf-live-activity-inner .wf-live-activity-content .wf-live-activity-message{font-size:0.80rem;color:#000000}.wf-live-activity .wf-live-activity-inner .wf-live-activity-state{position:absolute;top:0px;right:0px;bottom:0px;left:0px;background:rgba(255,252,239,0.9);display:none;-ms-flex-align:center;align-items:center;-ms-flex-pack:justify;justify-content:center;z-index:3001;-webkit-transition:opacity 0.5s,width 0.1s 0.5s,height 0.1s 0.5s;-o-transition:opacity 0.5s,width 0.1s 0.5s,height 0.1s 0.5s;transition:opacity 0.5s,width 0.1s 0.5s,height 0.1s 0.5s}.wordfenceLiveActivityPaused .wf-live-activity .wf-live-activity-inner .wf-live-activity-state{display:-ms-flexbox;display:flex;opacity:1;-webkit-transition:opacity 0.5s;-webkit-transition:opacity 0.5s;-o-transition:opacity 0.5s;transition:opacity 0.5s}.wordfence .wordfenceScanButton{margin:20px 0 20px 0}.wordfence .wordfenceScanButton input.button-wf-grey{background:#EFEFEF url(../images/button-grad-grey.png) repeat-x scroll left top;border-color:#EFEFEF}.wordfence .wordfenceScanButton table td{vertical-align:top}.wordfence .wordfenceScanButton .button-primary{text-align:center;text-transform:uppercase;font-weight:bold;background-color:#00709E;height:44px;line-height:44px;padding:0px 20px}table.wfSummaryParent{font-family:sans-serif;font-size:14px;color:#000;z-index:9}table.wfSummaryParent td{vertical-align:top;padding:0;margin:0}table.wfSummaryParent table.wfSummaryChild th{font-weight:bold;text-align:right;font-family:Georgia,Times New Roman,Times,serif;color:#000;padding:5px 10px 5px 0;border-top:1px solid #CCC}table.wfSummaryParent table.wfSummaryChild td{font-weight:normal;text-align:left;padding:5px 0 5px 0;border-top:1px solid #CCC}table.wfSummaryParent table.wfSC1 td{width:300px;padding:0 25px 10px 0}table.wfSummaryParent table.wfSC2 th{width:80px}table.wfSummaryParent table.wfSC2 td{width:100px}table.wfSummaryParent table.wfSC3 th{width:80px}table.wfSummaryParent table.wfSC3 td{width:250px}table.wfSummaryParent th.wfHead{font-size:22px;font-family:Georgia,Times New Roman,Times,serif;font-style:italic;color:#555;font-weight:bold;text-align:left;padding:20px 0 20px 0;-webkit-font-smoothing:antialiased}.wf-issues-table{table-layout:fixed;width:100%}div.wfIssue{width:100%}div.wfIssue table.wfIssue td{padding:2px;margin:0;border-width:0;text-align:left;width:100%}div.wfIssue table.wfIssue th{padding:2px;margin:0;font-weight:bold;text-align:left;color:#777;white-space:nowrap}div.wfIssue table.wfIssueLinks td{border-width:0;text-align:left;padding-right:10px}div.wfIssue h2{margin:0 0 5px 0;padding:0;font-size:0.9rem}@media (min-width: 768px){div.wfIssue h2{font-size:1.05rem}}.wfIssueOptions{border-top:1px solid #CCC;padding:10px}.wfIssueOptions h3{font-size:0.8rem;margin:0}@media (min-width: 768px){.wfIssueOptions h3{display:inline-block}}.wfIssueOptions ul{margin-bottom:0;padding-left:0;list-style:none;display:-webkit-flex;display:flex;-webkit-align-items:flex-start;align-items:flex-start;-webkit-align-content:flex-start;align-content:flex-start;-webkit-justify-content:flex-start;justify-content:flex-start;-webkit-flex-wrap:nowrap;flex-wrap:nowrap;-webkit-flex-direction:column;flex-direction:column}@media (min-width: 768px){.wfIssueOptions ul{-webkit-flex-direction:row;flex-direction:row;-webkit-align-items:center;align-items:center}}.wfIssueOptions ul>li>a{position:relative;display:block;padding:8px 12px/2}.wfIssueOptions ul>li>a:hover,.wfIssueOptions ul>li>a:focus{text-decoration:none;background-color:#e2e2e2}.wfIssueOptions a{margin-left:10px}.wfIssueOptions strong{float:left;display:block;width:60px}.wfIssueOptions p{margin:6px 0px 0px}.wfProbSev1,.wfProbSev2,.wfAjaxLight128,.wfResolved{width:128px;height:128px;border:0;margin:0 auto;background-repeat:no-repeat;background-position:0 0;text-decoration:none;display:block}.wfProbSev1{background-image:url(../images/icons/error128.png)}.wfProbSev2{background-image:url(../images/icons/warning128.png)}.wfResolved{background-image:url(../images/icons/tick128.png)}.wfIssuesContainer{width:100%;display:none}.wfIssuesContainer p{max-width:550px}.wfALogTime{color:#999}.wfALogMailLink,.wfALogViewLink{display:block;position:absolute;padding:0 0 0 18px;margin:0;right:10px;top:0;background-repeat:no-repeat;font-weight:normal}.wfALogMailLink{background-image:url(../images/icons/email_go.png)}.wfALogViewLink{background-image:url(../images/icons/magnifier.png)}#wfActivity{position:relative}.consoleHead{position:relative;padding:0 0 0 3px;font-weight:bold;width:100%}.consoleHeadText{margin-bottom:4px;font-size:18px;font-family:Georgia,Times New Roman,Times,serif;color:#555;font-weight:bold;-webkit-font-smoothing:antialiased}.consoleFooter{position:relative}.consoleOuter{width:100%}.consoleInner{height:116px;overflow:auto;z-index:1}.bevelDiv1{border:1px solid #EFEFEF}.bevelDiv2{border:1px solid #AAA}.bevelDiv3{background-color:#ffffed;padding:5px;font-family:Roboto,Helvetica Neue,Helvetica,Arial,sans-serif;-webkit-font-smoothing:antialiased}.wfSecure{color:#0A0;font-weight:bold}.wfSummaryLine{display:-webkit-flex;display:flex;-webkit-align-items:stretch;align-items:stretch;-webkit-align-content:flex-start;align-content:flex-start;-webkit-justify-content:space-between;justify-content:space-between;-webkit-flex-wrap:nowrap;flex-wrap:nowrap;-webkit-flex-direction:column;flex-direction:column}@media (min-width: 768px){.wfSummaryLine{-webkit-flex-direction:row;flex-direction:row}}.wfSummaryLine .wfSummaryDate{padding-left:3px}.wfSummaryLine .wfSummaryMsg{padding-left:3px;-webkit-flex-grow:1;flex-grow:1;min-width:0}.wfSummaryLoading{width:16px;height:11px;background-image:url("../images/icons/ajaxScan.gif")}.wfSummaryBad,.wfSummaryErr{color:#930000}.wfSummaryOK{color:#11967a}.wfSummaryIgnored{color:#a87302}.wfClear{content:".";display:block;height:0;width:0;line-height:0;clear:both;visibility:hidden}.wfSummaryFinal{-webkit-font-smoothing:antialiased;font-weight:bold;color:#555}.wfStartScanButton{text-align:center}.wordfenceScanHelp{border:1px solid #CCC;padding:4px}.wf-scan-no-issues{font-size:1.25rem;color:#11967a}.wf-scan-severity{position:relative;width:10px}@media (min-width: 768px){.wf-scan-severity{width:144px}}.wf-scan-severity-1,.wf-scan-severity-2{position:absolute;top:0px;right:0px;bottom:0px;left:0px}.wf-scan-severity-1{background-color:#c10000}.wf-scan-severity-2{background-color:#ffd10a}.scan-schedule{border-collapse:collapse;border-spacing:0}.scan-schedule tr:first-of-type th{padding-top:0}.scan-schedule td{padding:0}.scan-schedule th{padding:1.5rem 0.5rem 0.75rem 0;font-size:1rem;text-align:left}@media (min-width: 768px){.scan-schedule th{padding:0 0.5rem 0 0;font-size:0.8125rem;text-align:center}}.next-scan{font-size:1em;display:block;position:relative;width:7em;height:7em;background-color:#fff;border-radius:0.6em;box-shadow:0 1px 0 rgba(189,189,189,0.6);overflow:hidden}.next-scan *{display:block;width:100%;font-size:1em;font-weight:bold;font-style:normal;text-align:center}.next-scan strong{position:absolute;top:0;padding:0.4em 0;color:#fff;background-color:#00709E;box-shadow:0 2px 0 #00709E}.next-scan em{position:absolute;bottom:0.3em;color:#00709E}.next-scan span{width:100%;font-size:2.8em;padding-top:1.15em;color:#2f2f2f}#wf-lt-listings .wfActEvent{padding-left:15px;border-left:5px solid #cccccc}#wf-lt-listings .wfActEvent.wfHuman{border-left:5px solid #16bc9b}#wf-lt-listings .wfActEvent.wfActionBlocked{border-left:5px solid #d03935}#wf-lt-listings .wfActEvent.wfNotice{border-left:5px solid #c10000}#wf-lt-listings .wfActEvent.wfWarning,#wf-lt-listings .wfActEvent.wf404{border-left:5px solid #ffd10a}#wf-lt-listings .wfActEvent:hover{background-color:#fff9e9 !important}.wf-live-traffic-controls{display:-webkit-flex;display:flex;-webkit-align-items:center;align-items:center;-webkit-justify-content:flex-start;justify-content:flex-start;-webkit-flex-direction:column;flex-direction:column;width:100%;margin-bottom:0}.wf-live-traffic-controls>*:first-child{-webkit-flex-grow:1;flex-grow:1}.wf-live-traffic-controls>*:last-child{-webkit-flex-grow:0;flex-grow:0}@media (min-width: 768px){.wf-live-traffic-controls{-webkit-flex-direction:row;flex-direction:row}}.wf-live-traffic-filter{display:-webkit-flex;display:flex;-webkit-align-items:center;align-items:center;-webkit-align-content:flex-start;align-content:flex-start;-webkit-justify-content:flex-start;justify-content:flex-start}@media (min-width: 768px){.wf-live-traffic-filter{-webkit-flex-direction:row;flex-direction:row}}.wf-live-traffic-filter>*{padding:0.5rem}.wf-live-traffic-filter h2{margin:0;padding-bottom:0.5rem}@media (min-width: 768px){.wf-live-traffic-filter h2{padding-bottom:0;padding-right:0.5rem}}.wf-live-traffic-show-expanded{text-align:right;padding:0.5rem}@media (max-width: 1330px){.wf-live-traffic-show-expanded{display:none}}#wf-lt-advanced-filters{padding-left:0;padding-right:0;overflow:hidden}.wf-live-traffic-filter-detail{display:-webkit-flex;display:flex;-webkit-align-items:flex-start;align-items:flex-start;-webkit-align-content:flex-start;align-content:flex-start;-webkit-justify-content:flex-start;justify-content:flex-start;-webkit-flex-direction:column;flex-direction:column}@media (min-width: 768px){.wf-live-traffic-filter-detail{-webkit-flex-direction:row;flex-direction:row}.wf-live-traffic-filter-detail *{-webkit-flex-grow:1;flex-grow:1}}.wf-live-traffic-filter-detail .wf-live-traffic-filter-item{display:-webkit-flex;display:flex;-webkit-align-items:center;align-items:center;-webkit-align-content:flex-start;align-content:flex-start;-webkit-justify-content:flex-start;justify-content:flex-start;-webkit-flex-direction:row;flex-direction:row}.wf-live-traffic-filter-detail .wf-live-traffic-filter-item .wf-live-traffic-filter-remove{margin-left:0.5rem;font-size:1.5rem;color:#333}.wf-live-traffic-filter-detail .wf-live-traffic-filter-item .wf-live-traffic-filter-item-parameters{display:-webkit-flex;display:flex;-webkit-align-items:flex-start;align-items:flex-start;-webkit-align-content:flex-start;align-content:flex-start;-webkit-justify-content:flex-start;justify-content:flex-start;-webkit-flex-direction:column;flex-direction:column}.wf-live-traffic-filter-detail .wf-live-traffic-filter-item .wf-live-traffic-filter-item-parameters div{padding:0.25rem 0}.wf-live-traffic-filter-detail .wf-live-traffic-filter-item .wf-live-traffic-filter-item-parameters select{font-size:0.75rem !important}@media (min-width: 768px){.wf-live-traffic-filter-detail .wf-live-traffic-filter-item .wf-live-traffic-filter-item-parameters{-webkit-flex-direction:row;flex-direction:row;-webkit-align-items:center;align-items:center}.wf-live-traffic-filter-detail .wf-live-traffic-filter-item .wf-live-traffic-filter-item-parameters div{padding:0}.wf-live-traffic-filter-detail .wf-live-traffic-filter-item .wf-live-traffic-filter-item-parameters select{font-size:1rem !important}}.wf-filtered-traffic .wf-filtered-traffic-hits{font-size:1.75rem;color:#999999;margin-top:10px}#wf-live-traffic{position:relative;overflow:visible}#wf-live-traffic-legend{white-space:nowrap;background-color:#fff;padding:0.75rem 0px;position:fixed;width:320px;height:17px;top:auto;bottom:0px;right:auto;left:10px;z-index:2000;box-shadow:0px 0px 5px rgba(0,0,0,0.5);padding-left:1rem}@media (min-width: 768px){#wf-live-traffic-legend{left:182px}}@media (max-width: 1330px){#wf-live-traffic-legend{display:none}}#wf-live-traffic-legend-placeholder{display:none;padding:12px}#wf-live-traffic-legend-placeholder.sticky{display:block}#wf-live-traffic-legend ul{margin:0;padding:0}#wf-live-traffic-legend ul:before,#wf-live-traffic-legend ul:after{content:" ";display:table}#wf-live-traffic-legend ul:after{clear:both}#wf-live-traffic-legend ul li{margin:0 1rem 0 0;padding:0;position:relative;float:left;font-size:0.7185rem}@media (min-width: 768px){#wf-live-traffic-legend ul li{font-size:0.8125rem}}#wf-live-traffic-legend ul li+li{margin-left:0.5rem}#wf-live-traffic-legend ul li:before,.wf-live-traffic-hit-type:before{content:'';display:inline-block;margin:3px 6px 0 0;width:12px;height:12px;background-color:#CCCCCC;border-radius:10px;vertical-align:-2px}#wf-live-traffic-legend ul li.wfHuman:before,.wf-live-traffic-hit-type.wfHuman:before{background-color:#16bc9b}#wf-live-traffic-legend ul li.wfNotice:before,.wf-live-traffic-hit-type.wfNotice:before,#wf-live-traffic-legend ul li.wf404:before,.wf-live-traffic-hit-type.wf404:before{background-color:#ffd10a}#wf-live-traffic-legend ul li.wfBlocked:before,.wf-live-traffic-hit-type.wfBlocked:before,#wf-live-traffic-legend ul li.wfActionBlocked:before,.wf-live-traffic-hit-type.wfActionBlocked:before{background-color:#d03935}.wfTimeAgo{font-family:Georgia,Times New Roman,Times,serif;color:#999;font-weight:bold;font-style:italic}.wfActEvent{border-bottom:1px solid #CCC;padding:10px 20px;overflow:auto}.wf-pad-small{margin:8px 0}#wf-lt-listings{margin:0 0 0}#wf-lt-listings a{cursor:pointer;text-decoration:none}#wf-lt-listings a:hover{text-decoration:underline}#wf-lt-listings a.button,#wf-lt-listings a.wf-btn{text-decoration:none}[class*="span"]{float:left;min-height:1px;margin-left:30px}.highlighted,.highlighted td,#wf-live-traffic .wf-striped-table .highlighted td{-webkit-animation-duration:1s;animation-duration:1s;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out}@-moz-keyframes highlighted{0%{opacity:0;background-color:#ffeaa0}100%{opacity:1;background-color:#ffffff}}@-webkit-keyframes highlighted{0%{opacity:0;background-color:#ffeaa0}100%{opacity:1;background-color:#ffffff}}@keyframes highlighted{0%{opacity:0;background-color:#ffeaa0}100%{opacity:1;background-color:#ffffff}}@-moz-keyframes highlightedBlocked{0%{opacity:0;background-color:#ffeaa0}100%{opacity:1;background-color:#fff6f6}}@-webkit-keyframes highlightedBlocked{0%{opacity:0;background-color:#ffeaa0}100%{opacity:1;background-color:#fff6f6}}@keyframes highlightedBlocked{0%{opacity:0;background-color:#ffeaa0}100%{opacity:1;background-color:#fff6f6}}.highlighted,.highlighted td,#wf-live-traffic .wf-striped-table .highlighted td{-webkit-animation-name:highlighted;animation-name:highlighted}.highlighted.wfActionBlocked,.highlighted td.wfActionBlocked,#wf-live-traffic .wf-striped-table .highlighted td.wfActionBlocked{-webkit-animation-name:highlightedBlocked;animation-name:highlightedBlocked}#wf-lt-preset-filters{min-width:250px}#wf-lt-advanced-filters>table{width:100%}#wf-lt-advanced-filters>table>tr>td{vertical-align:top}.wf-lt-url{white-space:nowrap}.wf-live-traffic-filter label{font-weight:normal}#wf-live-traffic .wf-striped-table th,#wf-live-traffic .wf-striped-table td{padding:.5rem .6rem}#wf-live-traffic .wf-striped-table th{white-space:nowrap}#wf-live-traffic .wf-striped-table tbody tr:hover>td{background-color:#e7f5ff}#wf-live-traffic .wf-live-traffic-show-details{font-size:1.5rem;color:#9a9a9a;text-align:center;cursor:hand}#wf-live-traffic .wf-live-traffic-show-details .wf-ion-eye-disabled{display:none}#wf-live-traffic .wf-details-open .wf-live-traffic-show-details .wf-ion-eye-disabled{display:inline-block}#wf-live-traffic .wf-details-open .wf-live-traffic-show-details .wf-ion-eye{display:none}#wf-live-traffic.wf-live-traffic-display-expanded .wf-summary-row{display:none}#wf-live-traffic.wf-live-traffic-display-expanded .wf-live-traffic-activity-detail h2{display:none}#wf-live-traffic.wf-live-traffic-display-expanded .wf-striped-table thead{display:none}#wf-live-traffic .wf-details-hidden .wf-live-traffic-details,#wf-live-traffic .wf-details-visible .wf-live-traffic-details{transition:padding 200ms}#wf-live-traffic .wf-details-hidden .wf-live-traffic-details{padding:0 .6rem}#wf-live-traffic .wf-details-visible .wf-live-traffic-details,#wf-live-traffic.wf-live-traffic-display-expanded .wf-details-hidden .wf-live-traffic-details{padding:.8rem .6rem}#wf-live-traffic.wf-live-traffic-display-expanded .wf-details-hidden .wf-live-traffic-details{border-top:1px solid #e2e2e2}#wf-live-traffic .wf-details-hidden .wf-live-traffic-activity-detail-wrapper,#wf-live-traffic .wf-details-visible .wf-live-traffic-activity-detail-wrapper{transition:opacity 200ms, max-height 200ms ease-out;overflow:hidden}#wf-live-traffic .wf-details-hidden .wf-live-traffic-activity-detail-wrapper{opacity:0;max-height:0px}#wf-live-traffic .wf-details-visible .wf-live-traffic-activity-detail-wrapper,#wf-live-traffic.wf-live-traffic-display-expanded .wf-details-hidden .wf-live-traffic-activity-detail-wrapper{opacity:1;max-height:800px}#wf-live-traffic .wf-block-ip-btn{display:none}#wf-live-traffic-group-by{width:100%}#wf-live-traffic-no-group-by{overflow-x:auto}@media (max-width: 1330px){#wf-live-traffic .wf-summary-row{display:none}#wf-live-traffic .wf-live-traffic-activity-detail h2{display:none}#wf-live-traffic .wf-striped-table thead{display:none}#wf-live-traffic .wf-details-hidden .wf-live-traffic-details{padding:0.8rem 0.6rem}#wf-live-traffic .wf-details-hidden .wf-live-traffic-details{border-top:1px solid #e2e2e2}#wf-live-traffic .wf-details-hidden .wf-live-traffic-activity-detail-wrapper{opacity:1;max-height:300px}#wf-live-traffic-no-group-by .wf-striped-table{table-layout:fixed}}.wf-live-traffic-activity-type{text-align:center;float:left;width:65px}@media (min-width: 768px){.wf-live-traffic-activity-type{width:85px}}@media (min-width: 992px){.wf-live-traffic-activity-type{width:105px}}@media (min-width: 1200px){.wf-live-traffic-activity-type{width:125px}}.wf-live-traffic-activity-type .wf-live-traffic-type-icon{font-size:3rem;color:#CCCCCC}@media (min-width: 768px){.wf-live-traffic-activity-type .wf-live-traffic-type-icon{font-size:4rem}}@media (min-width: 992px){.wf-live-traffic-activity-type .wf-live-traffic-type-icon{font-size:5rem}}@media (min-width: 1200px){.wf-live-traffic-activity-type .wf-live-traffic-type-icon{font-size:6rem}}.wf-live-traffic-activity-type .wf-live-traffic-type-icon.wf-icon-human{color:#16bc9b}.wf-live-traffic-activity-type .wf-live-traffic-type-icon.wf-icon-warning{color:#ffd10a}.wf-live-traffic-activity-type .wf-live-traffic-type-icon.wf-icon-blocked{color:#d03935}.wf-live-traffic-activity-detail{margin:0;margin-left:90px}@media (min-width: 768px){.wf-live-traffic-activity-detail{margin-left:110px}}@media (min-width: 992px){.wf-live-traffic-activity-detail{margin-left:130px}}@media (min-width: 1200px){.wf-live-traffic-activity-detail{margin-left:150px}}.wf-live-traffic-activity-detail h2{margin:0px 0px .5rem}.wf-live-traffic-actions{margin:.5rem 0px 0px}#wf-live-traffic-util-overlay-wrapper{position:fixed;top:32px;right:0px;bottom:0px;left:0px;background-color:rgba(0,0,0,0.5);z-index:3000}#wf-live-traffic-util-overlay-wrapper .wf-live-traffic-util-overlay{position:fixed;top:32px;right:0px;bottom:0px;left:auto;max-width:800px;background-color:#ffffff;overflow:auto}#wf-live-traffic-util-overlay-wrapper .wf-live-traffic-util-overlay-header,#wf-live-traffic-util-overlay-wrapper .wf-live-traffic-util-overlay-body{padding:1rem 1.5rem}#wf-live-traffic-util-overlay-wrapper .wf-live-traffic-util-overlay-body{padding:1rem 1.5rem 1rem 3rem}#wf-live-traffic-util-overlay-wrapper .wf-live-traffic-util-overlay-header{background-color:#e9e9e9;border:1px solid #ffd10a;border-width:10px 0px}#wf-live-traffic-util-overlay-wrapper .wf-live-traffic-util-overlay-body .wf-flex-row{margin:0.6rem 0}#wf-live-traffic-util-overlay-wrapper .wf-live-traffic-actions{display:none}#wf-live-traffic-util-overlay-wrapper .wf-live-traffic-util-overlay-close{position:absolute;top:20px;right:16px;font-size:20px;cursor:pointer}#wf-live-traffic-util-overlay-wrapper .wf-live-traffic-activity-detail div{margin:0px 0px 0.6rem}#wf-live-traffic-util-overlay-wrapper .wf-block-ip-btn{display:inline-block}#wf-live-traffic-options .wf-block-list .wf-option-text .wf-option-title{width:30%}.wf-recent-traffic-table{font-size:.7rem}.wf-recent-traffic-table th,.wf-recent-traffic-table td{vertical-align:top}.wf-recent-traffic-table th{text-align:left;white-space:nowrap}.wf-recent-traffic-table td{word-wrap:break-word;word-break:break-all}.wf-recent-traffic-table .wf-recent-traffic-table-row-border td div{border-top:1px solid #e2e2e2;margin:10px 0}.wf-live-traffic-none{padding:0.5rem 0.6rem}.wf-flag-unspecified{width:16px;height:16px}.wf-flag-unspecified path{fill:#9f9fa0}table.block-ranges-table{border-collapse:collapse;margin:10px 0 0}table.block-ranges-table tr td{border:1px solid #CCC;border-width:1px 0;padding:10px 0 12px 0}#input-wafStatus,#input-wafStatus option,.select2-container--default{font-size:0.7rem;font-weight:bold}@media (min-width: 768px){#input-wafStatus,#input-wafStatus option,.select2-container--default{font-size:0.8rem}}@media (min-width: 992px){#input-wafStatus,#input-wafStatus option,.select2-container--default{font-size:0.9rem}}.select2-results__options{border-top:1px solid #e2e2e2}.wafStatus-enabled,.wafStatus-learning-mode,.wafStatus-disabled,.wafStatus-enabled.select2-container--default .select2-selection--single,.wafStatus-learning-mode.select2-container--default .select2-selection--single,.wafStatus-disabled.select2-container--default .select2-selection--single{height:40px;border-radius:0;border:0;background-color:#fff;box-shadow:1px 1px 1px 2px rgba(215,215,215,0.35)}.wafStatus-enabled .select2-selection__rendered,.wafStatus-learning-mode .select2-selection__rendered,.wafStatus-disabled .select2-selection__rendered,.wafStatus-enabled.select2-container--default .select2-selection--single .select2-selection__rendered,.wafStatus-learning-mode.select2-container--default .select2-selection--single .select2-selection__rendered,.wafStatus-disabled.select2-container--default .select2-selection--single .select2-selection__rendered{color:#333;line-height:40px}.wafStatus-enabled .select2-selection__arrow,.wafStatus-learning-mode .select2-selection__arrow,.wafStatus-disabled .select2-selection__arrow,.wafStatus-enabled.select2-container--default .select2-selection--single .select2-selection__arrow,.wafStatus-learning-mode.select2-container--default .select2-selection--single .select2-selection__arrow,.wafStatus-disabled.select2-container--default .select2-selection--single .select2-selection__arrow{height:38px}#waf-config-form .waf-config-label{font-size:1.3em}#waf-config-form .select2-container--default .select2-selection--single{padding:0.4rem;text-shadow:0 0 3px #000000;font-weight:bold}#waf-config-form .select2-container .select2-selection--single{height:auto}#waf-config-form .select2-container--default .select2-selection--single .select2-selection__arrow{height:100%;top:0}.wafStatus-enabled.select2-container--default .select2-selection--single .select2-selection__arrow b,.wafStatus-learning-mode.select2-container--default .select2-selection--single .select2-selection__arrow b,.wafStatus-disabled.select2-container--default .select2-selection--single .select2-selection__arrow b{border-color:#333 transparent transparent}.wafStatus-enabled.select2-container--default.select2-container--open .select2-selection--single .select2-selection__arrow b,.wafStatus-learning-mode.select2-container--default.select2-container--open .select2-selection--single .select2-selection__arrow b,.wafStatus-disabled.select2-container--default.select2-container--open .select2-selection--single .select2-selection__arrow b{border-color:transparent transparent #333}#waf-learning-mode-grace-period{display:-webkit-flex;display:flex;-webkit-align-items:center;align-items:center;-webkit-justify-content:flex-start;justify-content:flex-start;-webkit-flex-direction:row;flex-direction:row}#waf-learning-mode-grace-period span{padding:0 0.5rem 0 1rem}#waf-learning-mode-grace-period input{width:auto}#whitelist-form{padding-top:0.5rem}#whitelist-form .select2-container--default .select2-selection--single{display:block;width:100%;height:38px;padding:.5rem 1.25rem;font-size:14px;line-height:1.42857;color:#2b2b2b;background-color:#fff;background-image:none;border:1px solid #ddd;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);-webkit-transition:border-color ease-in-out 0.15s,box-shadow ease-in-out 0.15s;-o-transition:border-color ease-in-out 0.15s,box-shadow ease-in-out 0.15s;transition:border-color ease-in-out 0.15s,box-shadow ease-in-out 0.15s}#whitelist-form .select2-container--default .select2-selection--single .select2-selection__rendered{color:#2b2b2b;line-height:inherit}#whitelist-form .select2-container--default .select2-selection--single .select2-selection__arrow{height:38px}#whitelist-form-separator{margin:1rem 0}#whitelist-table-controls{margin-bottom:0.5rem}#whitelist-table-controls .select2-container--default{text-align:left !important}#whitelist-table-controls .wf-select-group{-webkit-justify-content:flex-end !important;justify-content:flex-end !important}.whitelist-table-container{overflow-x:auto}table.whitelist-table .whitelist-edit{display:none}table.whitelist-table .edit-mode .whitelist-display{display:none}table.whitelist-table .edit-mode .whitelist-edit{display:block}table.whitelist-table .edit-mode span.whitelist-edit,table.whitelist-table .edit-mode input.whitelist-edit{display:inline}.wf-bulk-action{margin:12px 0}tr.wf-table-filters input{max-width:120px}.wf-waf-status-disabled{padding:2rem 0}.wf-block .wf-block-content .wf-block-labeled-value.wf-waf-status .wf-block-labeled-value-value{padding-top:0}.wf-block .wf-block-content .wf-block-labeled-value.wf-waf-status .wf-block-labeled-value-value .wf-fa{font-size:8rem}.wf-block .wf-block-content .wf-block-labeled-value.wf-waf-status .wf-block-labeled-value-value svg{width:160px}.wf-block .wf-block-content .wf-block-labeled-value.wf-waf-status .wf-block-labeled-value-label{font-size:1.3125rem;font-weight:300;line-height:1.5;padding-bottom:0}.wf-block .wf-block-content .wf-block-labeled-value.wf-waf-status-full-enabled{background-color:#00709e}.wf-block .wf-block-content .wf-block-labeled-value.wf-waf-status-full-enabled .wf-block-labeled-value-value{color:#ffffff}.wf-block .wf-block-content .wf-block-labeled-value.wf-waf-status-full-enabled .wf-block-labeled-value-label{color:#ffffff;padding:0}.wf-block .wf-block-content .wf-block-labeled-value.wf-waf-status-enabled .wf-block-labeled-value-value{color:#00709e}.wf-block .wf-block-content .wf-block-labeled-value.wf-waf-status-enabled .wf-block-labeled-value-value svg{fill:#00709e}.wf-block .wf-block-content .wf-block-labeled-value.wf-waf-status-enabled .wf-block-labeled-value-label{color:#00709e}.wf-block .wf-block-content .wf-block-labeled-value.wf-waf-status-learning-mode .wf-block-labeled-value-value,.wf-block .wf-block-content .wf-block-labeled-value.wf-waf-status-disabled .wf-block-labeled-value-value{color:#9f9fa0}.wf-block .wf-block-content .wf-block-labeled-value.wf-waf-status-learning-mode .wf-block-labeled-value-value svg,.wf-block .wf-block-content .wf-block-labeled-value.wf-waf-status-disabled .wf-block-labeled-value-value svg{fill:#9f9fa0}.wf-block .wf-block-content .wf-block-labeled-value.wf-waf-status-learning-mode .wf-block-labeled-value-label,.wf-block .wf-block-content .wf-block-labeled-value.wf-waf-status-disabled .wf-block-labeled-value-label{color:#9f9fa0}.wf-waf-coverage li{-webkit-align-items:flex-start !important;align-items:flex-start !important}.wf-waf-navigation .wf-block-navigation-option-content,.wf-blocking-status .wf-block-navigation-option-content{padding:1.5rem 0 1.5rem 1.0rem}.wf-waf-navigation .wf-block-navigation-option-content h4,.wf-blocking-status .wf-block-navigation-option-content h4{margin:0 0 0.25rem 0}.wf-waf-navigation .wf-block-navigation-option-content p,.wf-blocking-status .wf-block-navigation-option-content p{margin:0 0 0.45rem 0}.wf-blocking-status>li{-webkit-flex-grow:0 !important;flex-grow:0 !important;-webkit-flex-basis:66.66667% !important;flex-basis:66.66667% !important}.wf-blocking-status>li:first-of-type{-webkit-flex-basis:33.33333% !important;flex-basis:33.33333% !important}.wf-blocking-status-premium>li{-webkit-flex-grow:0 !important;flex-grow:0 !important;-webkit-flex-basis:33.33333% !important;flex-basis:33.33333% !important}ul.wf-option.wf-option-rate-limit *{-webkit-flex-grow:1;flex-grow:1}ul.wf-option.wf-option-rate-limit *:first-child{-webkit-flex-grow:0;flex-grow:0}ul.wf-option.wf-option-rate-limit>*:last-child{margin-right:1rem}ul.wf-option.wf-option-rate-limit .select2-container{min-width:100px}@media (min-width: 768px){ul.wf-option.wf-option-rate-limit .select2-container{min-width:140px}}@media (min-width: 992px){ul.wf-option.wf-option-rate-limit .select2-container{min-width:140px}}#waf-rules-wrapper tbody tr:nth-of-type(n+10){display:none}#waf-rules-wrapper.wf-show-all tbody tr:nth-of-type(n+10){display:table-row}#waf-rules-wrapper.wf-show-all #waf-show-all-rules{display:none}.wf-waf-backup-file-list{display:-webkit-flex;display:flex;-webkit-align-items:flex-start;align-items:flex-start;-webkit-justify-content:flex-start;justify-content:flex-start;-webkit-flex-direction:row;flex-direction:row}.wf-waf-backup-file-list>*{margin-left:0.5rem !important}.wf-waf-backup-file-list>*:first-child{margin-left:0 !important}#wf-option-loginSecurityEnabled .wf-option-subtitle{font-size:.875rem}.wf-scan-status-disabled{padding:2rem 0}.wf-block .wf-block-content .wf-block-labeled-value.wf-scan-status .wf-block-labeled-value-value{padding-top:0}.wf-block .wf-block-content .wf-block-labeled-value.wf-scan-status .wf-block-labeled-value-value .wf-fa{font-size:8rem}.wf-block .wf-block-content .wf-block-labeled-value.wf-scan-status .wf-block-labeled-value-value svg{width:160px}.wf-block .wf-block-content .wf-block-labeled-value.wf-scan-status .wf-block-labeled-value-label{font-size:1.3125rem;font-weight:300;line-height:1.5;padding-bottom:0}.wf-block .wf-block-content .wf-block-labeled-value.wf-scan-status-full-enabled{background-color:#00709e}.wf-block .wf-block-content .wf-block-labeled-value.wf-scan-status-full-enabled .wf-block-labeled-value-value{color:#ffffff}.wf-block .wf-block-content .wf-block-labeled-value.wf-scan-status-full-enabled .wf-block-labeled-value-label{color:#ffffff;padding:0}.wf-block .wf-block-content .wf-block-labeled-value.wf-scan-status-enabled .wf-block-labeled-value-value{color:#00709e}.wf-block .wf-block-content .wf-block-labeled-value.wf-scan-status-enabled .wf-block-labeled-value-value svg{fill:#00709e}.wf-block .wf-block-content .wf-block-labeled-value.wf-scan-status-enabled .wf-block-labeled-value-label{color:#00709e}.wf-block .wf-block-content .wf-block-labeled-value.wf-scan-status-disabled .wf-block-labeled-value-value{color:#9f9fa0}.wf-block .wf-block-content .wf-block-labeled-value.wf-scan-status-disabled .wf-block-labeled-value-value svg{fill:#9f9fa0}.wf-block .wf-block-content .wf-block-labeled-value.wf-scan-status-disabled .wf-block-labeled-value-label{color:#9f9fa0}.wf-scan-navigation .wf-block-navigation-option-content{padding:1.5rem 0 1.5rem 1.0rem}.wf-scan-navigation .wf-block-navigation-option-content h4{margin:0 0 0.25rem 0}.wf-scan-navigation .wf-block-navigation-option-content p{margin:0 0 0.45rem 0}#wf-scan-starter{-webkit-justify-content:center;justify-content:center}#wf-scan-starter:hover{cursor:unset}#wf-scan-starter:hover a{text-decoration:none}.wf-scanner-progress{display:-webkit-flex;display:flex;-webkit-align-items:flex-start;align-items:flex-start;-webkit-justify-content:space-between;justify-content:space-between;-webkit-flex-direction:row;flex-direction:row;-webkit-flex-wrap:nowrap;flex-wrap:nowrap;margin-top:0.5rem;margin-bottom:0.5rem;background:url("data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPCFET0NUWVBFIHN2ZyBQVUJMSUMgIi0vL1czQy8vRFREIFNWRyAxLjEvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvR3JhcGhpY3MvU1ZHLzEuMS9EVEQvc3ZnMTEuZHRkIj4KPHN2ZyB3aWR0aD0iMXB4IiBoZWlnaHQ9IjZweCIgdmlld0JveD0iMCAwIDEgNiIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4bWw6c3BhY2U9InByZXNlcnZlIj4KCTxyZWN0IHg9IjAiIHk9IjAiIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIGZpbGw9IiNkMWQxZDEiLz48cmVjdCB4PSIwIiB5PSI1IiB3aWR0aD0iMSIgaGVpZ2h0PSIxIiBmaWxsPSIjZDFkMWQxIi8+Cjwvc3ZnPg==");background-repeat:repeat-x;background-position:center 24px;overflow-x:auto;overflow-y:hidden}.wf-scanner-progress>.wf-scan-step{display:-webkit-flex;display:flex;-webkit-align-items:center;align-items:center;-webkit-justify-content:center;justify-content:center;-webkit-flex-direction:column;flex-direction:column;padding-left:0.5rem;padding-right:0.5rem}.wf-scanner-progress>.wf-scan-step:first-of-type{padding-left:0;background-image:url('data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4gPHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGRlZnM+PGxpbmVhckdyYWRpZW50IGlkPSJncmFkIiBncmFkaWVudFVuaXRzPSJvYmplY3RCb3VuZGluZ0JveCIgeDE9IjAuMCIgeTE9IjAuNSIgeDI9IjEuMCIgeTI9IjAuNSI+PHN0b3Agb2Zmc2V0PSIwJSIgc3RvcC1jb2xvcj0iI2ZmZmZmZiIvPjxzdG9wIG9mZnNldD0iNTAlIiBzdG9wLWNvbG9yPSIjZmZmZmZmIi8+PHN0b3Agb2Zmc2V0PSI1MSUiIHN0b3AtY29sb3I9IiNmZmZmZmYiIHN0b3Atb3BhY2l0eT0iMC4wIi8+PHN0b3Agb2Zmc2V0PSIxMDAlIiBzdG9wLWNvbG9yPSIjZmZmZmZmIiBzdG9wLW9wYWNpdHk9IjAuMCIvPjwvbGluZWFyR3JhZGllbnQ+PC9kZWZzPjxyZWN0IHg9IjAiIHk9IjAiIHdpZHRoPSIxMDAlIiBoZWlnaHQ9IjEwMCUiIGZpbGw9InVybCgjZ3JhZCkiIC8+PC9zdmc+IA==');background-size:100%;background-image:-webkit-gradient(linear, 0% 50%, 100% 50%, color-stop(0%, #ffffff),color-stop(50%, #ffffff),color-stop(51%, rgba(255,255,255,0)),color-stop(100%, rgba(255,255,255,0)));background-image:-moz-linear-gradient(left, #ffffff 0%,#ffffff 50%,rgba(255,255,255,0) 51%,rgba(255,255,255,0) 100%);background-image:-webkit-linear-gradient(left, #ffffff 0%,#ffffff 50%,rgba(255,255,255,0) 51%,rgba(255,255,255,0) 100%);background-image:linear-gradient(to right, #ffffff 0%,#ffffff 50%,rgba(255,255,255,0) 51%,rgba(255,255,255,0) 100%);background-repeat:no-repeat;background-position:left center}.wf-scanner-progress>.wf-scan-step:last-of-type{padding-right:0;background-image:url('data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4gPHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGRlZnM+PGxpbmVhckdyYWRpZW50IGlkPSJncmFkIiBncmFkaWVudFVuaXRzPSJvYmplY3RCb3VuZGluZ0JveCIgeDE9IjAuMCIgeTE9IjAuNSIgeDI9IjEuMCIgeTI9IjAuNSI+PHN0b3Agb2Zmc2V0PSIwJSIgc3RvcC1jb2xvcj0iI2ZmZmZmZiIgc3RvcC1vcGFjaXR5PSIwLjAiLz48c3RvcCBvZmZzZXQ9IjQ5JSIgc3RvcC1jb2xvcj0iI2ZmZmZmZiIgc3RvcC1vcGFjaXR5PSIwLjAiLz48c3RvcCBvZmZzZXQ9IjUwJSIgc3RvcC1jb2xvcj0iI2ZmZmZmZiIvPjxzdG9wIG9mZnNldD0iMTAwJSIgc3RvcC1jb2xvcj0iI2ZmZmZmZiIvPjwvbGluZWFyR3JhZGllbnQ+PC9kZWZzPjxyZWN0IHg9IjAiIHk9IjAiIHdpZHRoPSIxMDAlIiBoZWlnaHQ9IjEwMCUiIGZpbGw9InVybCgjZ3JhZCkiIC8+PC9zdmc+IA==');background-size:100%;background-image:-webkit-gradient(linear, 0% 50%, 100% 50%, color-stop(0%, rgba(255,255,255,0)),color-stop(49%, rgba(255,255,255,0)),color-stop(50%, #ffffff),color-stop(100%, #ffffff));background-image:-moz-linear-gradient(left, rgba(255,255,255,0) 0%,rgba(255,255,255,0) 49%,#ffffff 50%,#ffffff 100%);background-image:-webkit-linear-gradient(left, rgba(255,255,255,0) 0%,rgba(255,255,255,0) 49%,#ffffff 50%,#ffffff 100%);background-image:linear-gradient(to right, rgba(255,255,255,0) 0%,rgba(255,255,255,0) 49%,#ffffff 50%,#ffffff 100%);background-repeat:no-repeat;background-position:right center}.wf-scanner-progress>.wf-scan-step>.wf-scan-step-icon>.wf-scan-step-pending{width:50px;height:54px;background:url("data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPCFET0NUWVBFIHN2ZyBQVUJMSUMgIi0vL1czQy8vRFREIFNWRyAxLjEvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvR3JhcGhpY3MvU1ZHLzEuMS9EVEQvc3ZnMTEuZHRkIj4KPHN2ZyB3aWR0aD0iMTRweCIgaGVpZ2h0PSIxNHB4IiB2aWV3Qm94PSIwIDAgMTQgMTQiIHZlcnNpb249IjEuMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSI+Cgk8Y2lyY2xlIGN4PSI3IiBjeT0iNyIgcj0iNyIgZmlsbD0iI2QxZDFkMSIvPgo8L3N2Zz4=");background-repeat:no-repeat;background-position:center center}.wf-scanner-progress>.wf-scan-step>.wf-scan-step-icon>.wf-scan-step-running{display:none;background-color:#ffffff !important}.wf-scanner-progress>.wf-scan-step>.wf-scan-step-icon>.wf-scan-step-complete-success{display:none;width:50px;height:54px;background:#fff url("data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+PCFET0NUWVBFIHN2ZyBQVUJMSUMgIi0vL1czQy8vRFREIFNWRyAxLjEvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvR3JhcGhpY3MvU1ZHLzEuMS9EVEQvc3ZnMTEuZHRkIj48c3ZnIHdpZHRoPSI1MHB4IiBoZWlnaHQ9IjUwcHgiIHZpZXdCb3g9IjAgMCAxMDAgMTAwIiB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTk4LjI4NywyMS4wMjVsLTcuODIzLC03LjgxMmMtMS4wNjYsLTEuMDkyIC0yLjUyOCwtMS43MDggLTQuMDU0LC0xLjcwOGMtMS41MjUsMCAtMi45ODgsMC42MTYgLTQuMDUzLDEuNzA4bC00Ni4wMTIsNDYuMDEybC0xOC43MTMsLTE4LjcxMmMtMS4wNjYsLTEuMDkgLTIuNTI5LC0xLjcwNCAtNC4wNTMsLTEuNzA0Yy0xLjUyNSwwIC0yLjk4NywwLjYxNCAtNC4wNTQsMS43MDRsLTcuODEyLDcuODM0Yy0xLjA5MiwxLjA2NSAtMS43MDgsMi41MjggLTEuNzA4LDQuMDUzYzAsMS41MjYgMC42MTYsMi45ODggMS43MDgsNC4wNTRsMzAuNTUxLDMwLjU1MWMxLjA2NywxLjA4OSAyLjUyOSwxLjcwMyA0LjA1NCwxLjcwM2MxLjUyNCwwIDIuOTg2LC0wLjYxNCA0LjA1MywtMS43MDNsNTcuOTE2LC01Ny44NjJjMS4wOTIsLTEuMDY1IDEuNzA4LC0yLjUyOCAxLjcwOCwtNC4wNTNjMCwtMS41MjYgLTAuNjE2LC0yLjk4OCAtMS43MDgsLTQuMDU0bDAsLTAuMDExbDAsMFoiIGZpbGw9IiMwMDcwOWUiLz48L3N2Zz4=");background-repeat:no-repeat;background-position:center center;background-size:80%}.wf-scanner-progress>.wf-scan-step>.wf-scan-step-icon>.wf-scan-step-complete-warning{display:none;width:50px;height:54px;background:#fff url("data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+PCFET0NUWVBFIHN2ZyBQVUJMSUMgIi0vL1czQy8vRFREIFNWRyAxLjEvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvR3JhcGhpY3MvU1ZHLzEuMS9EVEQvc3ZnMTEuZHRkIj48c3ZnIHdpZHRoPSI1MHB4IiBoZWlnaHQ9IjUwcHgiIHZpZXdCb3g9IjAgMCAxMDAgMTAwIiB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTk5LjA1MSw4Mi44NDJsLTQyLjgxMiwtNzguNDgzYy0wLjYxLC0xLjEzMSAtMS41MTQsLTIuMDc3IC0yLjYxNywtMi43MzdjLTIuMjI3LC0xLjMzNCAtNS4wMTcsLTEuMzM0IC03LjI0NCwwYy0xLjEwNiwwLjY1OSAtMi4wMTMsMS42MDUgLTIuNjI1LDIuNzM3bC00Mi44MDQsNzguNDgzYy0xLjI5OSwyLjE2OCAtMS4yNTYsNC44OTYgMC4xMTEsNy4wMjFjMC42MTQsMS4wNjcgMS41LDEuOTUyIDIuNTY2LDIuNTY2YzEuMDc0LDAuNjI3IDIuMjk3LDAuOTU1IDMuNTQxLDAuOTQ5bDg1LjY0MSwwYzIuNTE3LC0wLjAwOSA0Ljg1MiwtMS4zNDcgNi4xMzIsLTMuNTE1YzEuMzY3LC0yLjEyNSAxLjQxLC00Ljg1MyAwLjExMSwtNy4wMjFsMCwwWm0tNDEuOTA2LC01LjU3NmMwLjAxMSwwLjQ5IC0wLjE4MSwwLjk2NCAtMC41MywxLjMwOGMtMC4zMjUsMC4zNDIgLTAuNzc3LDAuNTM0IC0xLjI0OSwwLjUzMWwtMTAuNzE1LDBjLTAuNDcyLDAuMDAzIC0wLjkyNCwtMC4xODkgLTEuMjQ5LC0wLjUzMWMtMC4zNDksLTAuMzQ0IC0wLjU0MiwtMC44MTggLTAuNTMsLTEuMzA4bDAsLTEwLjU4OGMtMC4wMTIsLTAuNDkgMC4xODEsLTAuOTY0IDAuNTMsLTEuMzA4YzAuMzI1LC0wLjM0MSAwLjc3NywtMC41MzMgMS4yNDksLTAuNTNsMTAuNjk4LDBjMC40NzUsLTAuMDA2IDAuOTMsMC4xODcgMS4yNTgsMC41M2MwLjM0OCwwLjM0NSAwLjU0LDAuODE4IDAuNTMsMS4zMDhsMCwxMC41ODhsMC4wMDgsMFptLTAuMTExLC0yMC44NDJjLTAuMDQ1LDAuMzggLTAuMjYzLDAuNzE4IC0wLjU5LDAuOTE2Yy0wLjM4OSwwLjI1IC0wLjg0NiwwLjM3NSAtMS4zMDgsMC4zNTlsLTEwLjMyMywwYy0wLjQ3LDAuMDEzIC0wLjkzNCwtMC4xMTIgLTEuMzM0LC0wLjM1OWMtMC4zMzgsLTAuMTg1IC0wLjU1MSwtMC41MzkgLTAuNTU2LC0wLjkyNGwtMC45NDksLTI1LjQ2OGMtMC4wMywtMC40NiAwLjE4MSwtMC45MDQgMC41NTYsLTEuMTcyYzAuMzU4LC0wLjM1NSAwLjgzMSwtMC41NzMgMS4zMzQsLTAuNjE2bDEyLjI3MiwwYzAuNTA2LDAuMDQgMC45ODIsMC4yNTggMS4zNDMsMC42MTZjMC4zNTcsMC4yMzIgMC41NjgsMC42MzUgMC41NTYsMS4wNmwtMS4wMDEsMjUuNTg4WiIgZmlsbD0iI2ZjYjIxNCIvPjwvc3ZnPg==");background-repeat:no-repeat;background-position:center center;background-size:80%}.wf-scanner-progress>.wf-scan-step>.wf-scan-step-icon>.wf-scan-step-disabled{display:none;width:50px;height:54px;background:#fff url("data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+PCFET0NUWVBFIHN2ZyBQVUJMSUMgIi0vL1czQy8vRFREIFNWRyAxLjEvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvR3JhcGhpY3MvU1ZHLzEuMS9EVEQvc3ZnMTEuZHRkIj48c3ZnIHdpZHRoPSI1MHB4IiBoZWlnaHQ9IjUwcHgiIHZpZXdCb3g9IjAgMCAxMDAgMTAwIiB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTk1Ljg5LDMwLjUyOGMtMi40OTYsLTUuOTQxIC02LjEwOCwtMTEuMzUxIC0xMC42NDIsLTE1LjkzOGMtNC41NzUsLTQuNTM4IC05Ljk5LC04LjE0OCAtMTUuOTQyLC0xMC42M2MtMTIuNDAxLC01LjI4IC0yNi40NDEsLTUuMjggLTM4Ljg0MiwwYy01Ljk2NSwyLjQ4NSAtMTEuMzg5LDYuMTAxIC0xNS45NzIsMTAuNjVjLTQuNTEsNC41ODYgLTguMTAxLDkuOTg5IC0xMC41ODIsMTUuOTE4Yy01LjI4NywxMi40MzIgLTUuMjg3LDI2LjQ5IDAsMzguOTIxYzIuNDk1LDUuOTQyIDYuMTA3LDExLjM1MyAxMC42NDIsMTUuOTM5YzQuNTgzLDQuNTQ4IDEwLjAwNyw4LjE2NSAxNS45NzIsMTAuNjQ5YzEyLjQsNS4yODQgMjYuNDQyLDUuMjg0IDM4Ljg0MiwwYzUuOTY1LC0yLjQ4NCAxMS4zODksLTYuMTAxIDE1Ljk3MiwtMTAuNjQ5YzQuNTM2LC00LjU4NSA4LjE0OSwtOS45OTYgMTAuNjQyLC0xNS45MzljNS4yODcsLTEyLjQzMSA1LjI4NywtMjYuNDg5IDAsLTM4LjkyMWwtMC4wOSwwWm0tNzUuNjA4LDM4Ljg1MWMtNy4zMDIsLTExLjIxMiAtNy42ODksLTI1LjYyIC0wLjk5OCwtMzcuMjA3YzMuMDc1LC01LjM3NSA3LjUyMiwtOS44NDQgMTIuODg3LC0xMi45NWM1LjM3NSwtMy4xMjkgMTEuNDk3LC00Ljc1NCAxNy43MTksLTQuNzAyYzYuOTU1LC0wLjA2IDEzLjc2NiwyLjAwMiAxOS41MTYsNS45MDdsLTQ5LjEyNCw0OC45NTJabTYyLjIwMSwtNS42NDhjLTEuNzU1LDQuMjI4IC00LjMxOCw4LjA3NiAtNy41NDcsMTEuMzI2Yy0zLjI0MywzLjIyOSAtNy4wNzYsNS44MDkgLTExLjI5LDcuNjAxYy00LjM0MywxLjg4MyAtOS4wMzEsMi44NDYgLTEzLjc2NiwyLjgyOWMtNi44NzIsMC4wMDggLTEzLjU5NSwtMi4wMTcgLTE5LjMxNiwtNS44MTdsNDkuMDU0LC00OC44MTNjMy43NDEsNS42ODcgNS43MTEsMTIuMzU0IDUuNjYsMTkuMTU3YzAuMDAzLDQuNzEzIC0wLjk0OCw5LjM3OSAtMi43OTUsMTMuNzE3bDAsMFoiIGZpbGw9IiNkMWQxZDEiLz48L3N2Zz4=");background-repeat:no-repeat;background-position:center center;background-size:80%}.wf-scanner-progress>.wf-scan-step>.wf-scan-step-icon>.wf-scan-step-premium{width:50px;height:54px;background:#fff url("data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPCFET0NUWVBFIHN2ZyBQVUJMSUMgIi0vL1czQy8vRFREIFNWRyAxLjEvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvR3JhcGhpY3MvU1ZHLzEuMS9EVEQvc3ZnMTEuZHRkIj4KPHN2ZyB3aWR0aD0iMjRweCIgaGVpZ2h0PSIzMHB4IiB2aWV3Qm94PSIwIDAgMjQgMzAiIHZlcnNpb249IjEuMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KCTxwYXRoIGQ9Ik0yMy45NDksMTQuMjMzYy0wLjM3OSwtMC4zOSAtMC45MDQsLTAuNjA2IC0xLjQ0OCwtMC41OTVsLTAuNjgzLDBsMCwtNC4wOTJjMC4wMzIsLTIuNTM1IC0wLjk4NiwtNC45NzMgLTIuODEyLC02LjczMWMtMS43NTksLTEuODI4IC00LjE5OCwtMi44NDcgLTYuNzM0LC0yLjgxNWMtMi41MzYsLTAuMDMyIC00Ljk3NiwwLjk4NyAtNi43MzQsMi44MTVjLTEuODI2LDEuNzU4IC0yLjg0NCw0LjE5NiAtMi44MTIsNi43MzFsMCw0LjA4OWwtMC42OCwwYy0wLjU0NCwtMC4wMTEgLTEuMDY5LDAuMjA1IC0xLjQ0OCwwLjU5NWMtMC4zOTUsMC4zODIgLTAuNjEyLDAuOTEyIC0wLjU5OCwxLjQ2MWwwLDEyLjI2NmMtMC4wMTEsMC41NDQgMC4yMDQsMS4wNjkgMC41OTUsMS40NDhjMC4zNzksMC4zOTEgMC45MDQsMC42MDYgMS40NDgsMC41OTVsMjAuNDU4LDBjMC4wMDMsMCAwLjAwNiwwIDAuMDEsMGMxLjExNywwIDIuMDM2LC0wLjkxOSAyLjAzNiwtMi4wMzdjMCwtMC4wMDMgMCwtMC4wMDYgMCwtMC4wMDlsMCwtMTIuMjYzYzAuMDExLC0wLjU0NCAtMC4yMDYsLTEuMDY5IC0wLjU5OCwtMS40NDhsMCwtMC4wMVptLTYuMjExLC0wLjU5NWwtMTAuOTE5LDBsMCwtNC4wOTJjLTAuMDIyLC0xLjQ1MSAwLjU1NywtMi44NDggMS41OTksLTMuODU4YzEuMDA5LC0xLjA0MiAyLjQwNywtMS42MjEgMy44NTcsLTEuNTk4YzEuNDUxLC0wLjAyMyAyLjg0OCwwLjU1NiAzLjg1OCwxLjU5OGMxLjA0MiwxLjAwOSAxLjYyMSwyLjQwNyAxLjU5OCwzLjg1OGwwLjAwNyw0LjA5MloiIGZpbGw9IiNkMWQxZDEiLz4KPC9zdmc+");background-repeat:no-repeat;background-position:center center;background-size:40%}.wf-scanner-progress>.wf-scan-step.wf-scan-step-premium>.wf-scan-step-icon>.wf-scan-step-pending{display:none}.wf-scanner-progress>.wf-scan-step.wf-scan-step-premium>.wf-scan-step-icon>.wf-scan-step-running{display:none}.wf-scanner-progress>.wf-scan-step.wf-scan-step-premium>.wf-scan-step-icon>.wf-scan-step-complete-success{display:none}.wf-scanner-progress>.wf-scan-step.wf-scan-step-premium>.wf-scan-step-icon>.wf-scan-step-complete-warning{display:none}.wf-scanner-progress>.wf-scan-step.wf-scan-step-premium>.wf-scan-step-icon>.wf-scan-step-disabled{display:none}.wf-scanner-progress>.wf-scan-step.wf-scan-step-running>.wf-scan-step-icon>.wf-scan-step-pending{display:none}.wf-scanner-progress>.wf-scan-step.wf-scan-step-running>.wf-scan-step-icon>.wf-scan-step-running{display:block}.wf-scanner-progress>.wf-scan-step.wf-scan-step-running>.wf-scan-step-icon>.wf-scan-step-complete-success{display:none}.wf-scanner-progress>.wf-scan-step.wf-scan-step-running>.wf-scan-step-icon>.wf-scan-step-complete-warning{display:none}.wf-scanner-progress>.wf-scan-step.wf-scan-step-running>.wf-scan-step-icon>.wf-scan-step-disabled{display:none}.wf-scanner-progress>.wf-scan-step.wf-scan-step-complete-success>.wf-scan-step-icon>.wf-scan-step-pending{display:none}.wf-scanner-progress>.wf-scan-step.wf-scan-step-complete-success>.wf-scan-step-icon>.wf-scan-step-running{display:none}.wf-scanner-progress>.wf-scan-step.wf-scan-step-complete-success>.wf-scan-step-icon>.wf-scan-step-complete-success{display:block}.wf-scanner-progress>.wf-scan-step.wf-scan-step-complete-success>.wf-scan-step-icon>.wf-scan-step-complete-warning{display:none}.wf-scanner-progress>.wf-scan-step.wf-scan-step-complete-success>.wf-scan-step-icon>.wf-scan-step-disabled{display:none}.wf-scanner-progress>.wf-scan-step.wf-scan-step-complete-warning>.wf-scan-step-icon>.wf-scan-step-pending{display:none}.wf-scanner-progress>.wf-scan-step.wf-scan-step-complete-warning>.wf-scan-step-icon>.wf-scan-step-running{display:none}.wf-scanner-progress>.wf-scan-step.wf-scan-step-complete-warning>.wf-scan-step-icon>.wf-scan-step-complete-success{display:none}.wf-scanner-progress>.wf-scan-step.wf-scan-step-complete-warning>.wf-scan-step-icon>.wf-scan-step-complete-warning{display:block}.wf-scanner-progress>.wf-scan-step.wf-scan-step-complete-warning>.wf-scan-step-icon>.wf-scan-step-disabled{display:none}.wf-scanner-progress>.wf-scan-step.wf-scan-step-disabled>.wf-scan-step-icon>.wf-scan-step-pending{display:none}.wf-scanner-progress>.wf-scan-step.wf-scan-step-disabled>.wf-scan-step-icon>.wf-scan-step-running{display:none}.wf-scanner-progress>.wf-scan-step.wf-scan-step-disabled>.wf-scan-step-icon>.wf-scan-step-complete-success{display:none}.wf-scanner-progress>.wf-scan-step.wf-scan-step-disabled>.wf-scan-step-icon>.wf-scan-step-complete-warning{display:none}.wf-scanner-progress>.wf-scan-step.wf-scan-step-disabled>.wf-scan-step-icon>.wf-scan-step-disabled{display:block}.wf-scanner-progress>.wf-scan-step>.wf-scan-step-title{font-size:0.7rem;padding-top:0.5rem;white-space:nowrap}.wf-scanner-progress>.wf-scan-step>.wf-scan-step-subtitle{font-size:0.7rem}#wf-scan-last-status{font-size:0.75rem;text-align:center}@media (min-width: 768px){#wf-scan-last-status{text-align:left}}#wf-scan-activity-log-controls{-webkit-flex-shrink:0;flex-shrink:0;text-align:center;white-space:nowrap}@media (min-width: 768px){#wf-scan-activity-log-controls{text-align:right}}#wf-scan-activity-log-controls a{text-transform:uppercase;font-size:0.75rem;white-space:nowrap}#wf-scan-toggle-activity-log .wf-scan-activity-log-visible{display:none}#wf-scan-toggle-activity-log .wf-scan-activity-log-hidden{display:inline}#wf-scan-toggle-activity-log.wf-active .wf-scan-activity-log-visible{display:inline}#wf-scan-toggle-activity-log.wf-active .wf-scan-activity-log-hidden{display:none}#wf-scan-running-bar{height:4px;border:1px solid #e2e2e2;background-color:#ffffff;-moz-border-radius:2px;-webkit-border-radius:2px;border-radius:2px}#wf-scan-running-bar-pill{height:4px;background-color:#00709e;width:33.3333%;-moz-border-radius:2px;-webkit-border-radius:2px;border-radius:2px;-webkit-animation:wf-scan-running-bar-pill-keyframes 1s linear infinite alternate both;-o-animation:wf-scan-running-bar-pill-keyframes 1s linear infinite alternate both;animation:wf-scan-running-bar-pill-keyframes 1s linear infinite alternate both}@-moz-keyframes wf-scan-running-bar-pill-keyframes{from{margin-left:0%}to{margin-left:66.6667%}}@-webkit-keyframes wf-scan-running-bar-pill-keyframes{from{margin-left:0%}to{margin-left:66.6667%}}@keyframes wf-scan-running-bar-pill-keyframes{from{margin-left:0%}to{margin-left:66.6667%}}#wf-scan-activity-log{display:none;overflow-x:hidden;overflow-y:auto;background-color:#ffffff;box-shadow:0 0 0 1px rgba(200,215,225,0.25),0 1px 2px #e9eff3;padding:0.5rem;height:7rem}#wf-scan-activity-log>li{margin:0;padding:0}#wf-scan-activity-log.wf-active{display:block}.wf-scan-tabs{display:-webkit-flex;display:flex;-webkit-align-items:center;align-items:center;-webkit-justify-content:flex-start;justify-content:flex-start;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;box-shadow:inset 0px 0px 0px 1px #f1f1f1,inset 0px -1px 0px 1px #e2e2e2;margin:0.5rem 0 0 0}.wf-scan-tabs>*{-webkit-flex-grow:0;flex-grow:0;min-width:0}.wf-scan-tabs .wf-tab{border:1px solid #d0d0d0;border-top-right-radius:0.5rem;border-top-left-radius:0.5rem;border-bottom:none;margin:0;margin-left:0.5rem;background:#e6e6e6;color:#333}.wf-scan-tabs .wf-tab:first-of-type{margin-left:0}.wf-scan-tabs .wf-tab a{display:block;padding:0.5rem 1rem;font-size:14px;line-height:24px;text-decoration:none;font-weight:bold;color:#333}.wf-scan-tabs .wf-tab.wf-active,.wf-scan-tabs .wf-tab:hover{border-bottom:1px solid #ffffff;background:#ffffff;color:#00709e;margin-bottom:-1px;-webkit-box-shadow:none;box-shadow:none}.wf-scan-tabs .wf-tab.wf-active a,.wf-scan-tabs .wf-tab:hover a{color:#00709e}.wf-scan-tabs #wf-scan-bulk-buttons{-webkit-flex-grow:1 !important;flex-grow:1 !important;text-align:right}.wf-scan-tab-content{display:none;margin-top:15px}.wf-scan-tab-content.wf-active{display:block}.wf-scan-results{margin:0;margin-top:-1px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;border-left:1px solid #e2e2e2;border-right:1px solid #e2e2e2;border-bottom:1px solid #e2e2e2}.wf-scan-results>.wf-scan-results-stats{margin:0}.wf-scan-results>.wf-scan-results-stats>.wf-block{box-shadow:none;margin:0}.wf-scan-results>.wf-scan-results-stats>.wf-block>.wf-block-content>.wf-block-list>li{border-top:0px;padding:0 1rem}.wf-scan-results>.wf-scan-results-stats>.wf-block>.wf-block-content>.wf-block-list .wf-flex-horizontal>li{font-size:0.75rem;white-space:nowrap;margin:0}.wf-scan-results>.wf-scan-results-stats>.wf-block>.wf-block-content>.wf-block-list .wf-flex-horizontal>li:last-of-type{text-align:right}.wf-scan-results-issues{padding:0;margin:0;display:none}.wf-scan-results-issues.wf-active{display:block}.wf-issue,.wf-issue-site-cleaning{display:-webkit-flex;display:flex;-webkit-align-items:stretch;align-items:stretch;-webkit-justify-content:flex-start;justify-content:flex-start;-webkit-flex-direction:column;flex-direction:column;border-top:1px solid #e2e2e2}.wf-issue:nth-of-type(2n),.wf-issue-site-cleaning:nth-of-type(2n){background-color:#fff}.wf-issue>li,.wf-issue-site-cleaning>li{margin:0}.wf-issue.wf-issue-severity-critical,.wf-issue-site-cleaning.wf-issue-severity-critical{border-left:4px solid #930000}.wf-issue.wf-issue-severity-warning,.wf-issue-site-cleaning.wf-issue-severity-warning{border-left:4px solid #fcb214}.wf-issue.wf-issue-severity-good,.wf-issue-site-cleaning.wf-issue-severity-good{border-left:4px solid #16bc9b}.wf-issue>.wf-issue-summary>ul,.wf-issue-site-cleaning>.wf-issue-summary>ul{display:-webkit-flex;display:flex;-webkit-align-items:center;align-items:center;-webkit-justify-content:flex-start;justify-content:flex-start;-webkit-flex-direction:row;flex-direction:row;padding:1.5rem}.wf-issue>.wf-issue-summary>ul>li,.wf-issue-site-cleaning>.wf-issue-summary>ul>li{margin:0;padding:0;padding-left:1.5rem}@media (max-width: 767px){.wf-issue>.wf-issue-summary>ul>li,.wf-issue-site-cleaning>.wf-issue-summary>ul>li{padding-left:0.5rem}}.wf-issue>.wf-issue-summary>ul>li:first-of-type,.wf-issue-site-cleaning>.wf-issue-summary>ul>li:first-of-type{padding-left:0}.wf-issue>.wf-issue-summary>ul>.wf-issue-icon,.wf-issue>.wf-issue-summary>ul>.wf-issue-icon-colored,.wf-issue-site-cleaning>.wf-issue-summary>ul>.wf-issue-icon,.wf-issue-site-cleaning>.wf-issue-summary>ul>.wf-issue-icon-colored{text-align:left;-webkit-flex-basis:50px;flex-basis:50px;-webkit-flex-shrink:0;flex-shrink:0}.wf-issue>.wf-issue-summary>ul>.wf-issue-icon>*,.wf-issue>.wf-issue-summary>ul>.wf-issue-icon-colored>*,.wf-issue-site-cleaning>.wf-issue-summary>ul>.wf-issue-icon>*,.wf-issue-site-cleaning>.wf-issue-summary>ul>.wf-issue-icon-colored>*{height:40px}.wf-issue>.wf-issue-summary>ul>.wf-issue-icon svg path,.wf-issue-site-cleaning>.wf-issue-summary>ul>.wf-issue-icon svg path{fill:#9e9e9e}.wf-issue>.wf-issue-summary>ul>.wf-issue-short,.wf-issue-site-cleaning>.wf-issue-summary>ul>.wf-issue-short{-webkit-flex-basis:40%;flex-basis:40%}.wf-issue>.wf-issue-summary>ul>.wf-issue-stats,.wf-issue-site-cleaning>.wf-issue-summary>ul>.wf-issue-stats{-webkit-flex-basis:25%;flex-basis:25%}.wf-issue>.wf-issue-summary>ul>.wf-issue-short-stats,.wf-issue-site-cleaning>.wf-issue-summary>ul>.wf-issue-short-stats{-webkit-flex-grow:1;flex-grow:1}.wf-issue>.wf-issue-summary>ul .wf-issue-severity-critical,.wf-issue>.wf-issue-summary>ul .wf-issue-severity-warning,.wf-issue-site-cleaning>.wf-issue-summary>ul .wf-issue-severity-critical,.wf-issue-site-cleaning>.wf-issue-summary>ul .wf-issue-severity-warning{background-repeat:no-repeat;background-position:left center;padding-left:18px}.wf-issue>.wf-issue-summary>ul .wf-issue-severity-critical,.wf-issue-site-cleaning>.wf-issue-summary>ul .wf-issue-severity-critical{background-image:url("data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPCFET0NUWVBFIHN2ZyBQVUJMSUMgIi0vL1czQy8vRFREIFNWRyAxLjEvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvR3JhcGhpY3MvU1ZHLzEuMS9EVEQvc3ZnMTEuZHRkIj4KPHN2ZyB3aWR0aD0iMTBweCIgaGVpZ2h0PSIxMHB4IiB2aWV3Qm94PSIwIDAgMTAgMTAiIHZlcnNpb249IjEuMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KCTxjaXJjbGUgY3g9IjUiIGN5PSI1IiByPSI1IiBmaWxsPSIjOTMwMDAwIi8+Cjwvc3ZnPg==")}.wf-issue>.wf-issue-summary>ul .wf-issue-severity-warning,.wf-issue-site-cleaning>.wf-issue-summary>ul .wf-issue-severity-warning{background-image:url("data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPCFET0NUWVBFIHN2ZyBQVUJMSUMgIi0vL1czQy8vRFREIFNWRyAxLjEvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvR3JhcGhpY3MvU1ZHLzEuMS9EVEQvc3ZnMTEuZHRkIj4KPHN2ZyB3aWR0aD0iMTBweCIgaGVpZ2h0PSIxMHB4IiB2aWV3Qm94PSIwIDAgMTAgMTAiIHZlcnNpb249IjEuMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KCTxjaXJjbGUgY3g9IjUiIGN5PSI1IiByPSI1IiBmaWxsPSIjZmNiMjE0Ii8+Cjwvc3ZnPg==")}.wf-issue>.wf-issue-summary>ul>.wf-issue-controls,.wf-issue>.wf-issue-summary>ul>.wf-issue-short-stats>.wf-issue-controls,.wf-issue-site-cleaning>.wf-issue-summary>ul>.wf-issue-controls,.wf-issue-site-cleaning>.wf-issue-summary>ul>.wf-issue-short-stats>.wf-issue-controls{-webkit-flex-grow:1;flex-grow:1;display:-webkit-flex;display:flex;-webkit-align-items:center;align-items:center;-webkit-justify-content:flex-end;justify-content:flex-end;-webkit-flex-direction:row;flex-direction:row}.wf-issue>.wf-issue-summary>ul>.wf-issue-controls>.wf-issue-control,.wf-issue>.wf-issue-summary>ul>.wf-issue-short-stats>.wf-issue-controls>.wf-issue-control,.wf-issue-site-cleaning>.wf-issue-summary>ul>.wf-issue-controls>.wf-issue-control,.wf-issue-site-cleaning>.wf-issue-summary>ul>.wf-issue-short-stats>.wf-issue-controls>.wf-issue-control{display:-webkit-flex;display:flex;-webkit-align-items:center;align-items:center;-webkit-justify-content:center;justify-content:center;-webkit-flex-direction:column;flex-direction:column;padding-left:2rem;text-decoration:none}.wf-issue>.wf-issue-summary>ul>.wf-issue-controls>.wf-issue-control:first-of-type,.wf-issue>.wf-issue-summary>ul>.wf-issue-short-stats>.wf-issue-controls>.wf-issue-control:first-of-type,.wf-issue-site-cleaning>.wf-issue-summary>ul>.wf-issue-controls>.wf-issue-control:first-of-type,.wf-issue-site-cleaning>.wf-issue-summary>ul>.wf-issue-short-stats>.wf-issue-controls>.wf-issue-control:first-of-type{padding-left:0}.wf-issue>.wf-issue-summary>ul>.wf-issue-controls>.wf-issue-control>.wf-issue-control-icon,.wf-issue>.wf-issue-summary>ul>.wf-issue-controls>.wf-issue-control .wf-issue-control-icon-inactive,.wf-issue>.wf-issue-summary>ul>.wf-issue-controls>.wf-issue-control .wf-issue-control-icon-active,.wf-issue>.wf-issue-summary>ul>.wf-issue-short-stats>.wf-issue-controls>.wf-issue-control>.wf-issue-control-icon,.wf-issue>.wf-issue-summary>ul>.wf-issue-short-stats>.wf-issue-controls>.wf-issue-control .wf-issue-control-icon-inactive,.wf-issue>.wf-issue-summary>ul>.wf-issue-short-stats>.wf-issue-controls>.wf-issue-control .wf-issue-control-icon-active,.wf-issue-site-cleaning>.wf-issue-summary>ul>.wf-issue-controls>.wf-issue-control>.wf-issue-control-icon,.wf-issue-site-cleaning>.wf-issue-summary>ul>.wf-issue-controls>.wf-issue-control .wf-issue-control-icon-inactive,.wf-issue-site-cleaning>.wf-issue-summary>ul>.wf-issue-controls>.wf-issue-control .wf-issue-control-icon-active,.wf-issue-site-cleaning>.wf-issue-summary>ul>.wf-issue-short-stats>.wf-issue-controls>.wf-issue-control>.wf-issue-control-icon,.wf-issue-site-cleaning>.wf-issue-summary>ul>.wf-issue-short-stats>.wf-issue-controls>.wf-issue-control .wf-issue-control-icon-inactive,.wf-issue-site-cleaning>.wf-issue-summary>ul>.wf-issue-short-stats>.wf-issue-controls>.wf-issue-control .wf-issue-control-icon-active{height:20px}.wf-issue>.wf-issue-summary>ul>.wf-issue-controls>.wf-issue-control>.wf-issue-control-icon path,.wf-issue>.wf-issue-summary>ul>.wf-issue-controls>.wf-issue-control .wf-issue-control-icon-inactive path,.wf-issue>.wf-issue-summary>ul>.wf-issue-controls>.wf-issue-control .wf-issue-control-icon-active path,.wf-issue>.wf-issue-summary>ul>.wf-issue-short-stats>.wf-issue-controls>.wf-issue-control>.wf-issue-control-icon path,.wf-issue>.wf-issue-summary>ul>.wf-issue-short-stats>.wf-issue-controls>.wf-issue-control .wf-issue-control-icon-inactive path,.wf-issue>.wf-issue-summary>ul>.wf-issue-short-stats>.wf-issue-controls>.wf-issue-control .wf-issue-control-icon-active path,.wf-issue-site-cleaning>.wf-issue-summary>ul>.wf-issue-controls>.wf-issue-control>.wf-issue-control-icon path,.wf-issue-site-cleaning>.wf-issue-summary>ul>.wf-issue-controls>.wf-issue-control .wf-issue-control-icon-inactive path,.wf-issue-site-cleaning>.wf-issue-summary>ul>.wf-issue-controls>.wf-issue-control .wf-issue-control-icon-active path,.wf-issue-site-cleaning>.wf-issue-summary>ul>.wf-issue-short-stats>.wf-issue-controls>.wf-issue-control>.wf-issue-control-icon path,.wf-issue-site-cleaning>.wf-issue-summary>ul>.wf-issue-short-stats>.wf-issue-controls>.wf-issue-control .wf-issue-control-icon-inactive path,.wf-issue-site-cleaning>.wf-issue-summary>ul>.wf-issue-short-stats>.wf-issue-controls>.wf-issue-control .wf-issue-control-icon-active path{fill:#9e9e9e;fill-rule:nonzero}.wf-issue>.wf-issue-summary>ul>.wf-issue-controls>.wf-issue-control>.wf-issue-control-label,.wf-issue>.wf-issue-summary>ul>.wf-issue-short-stats>.wf-issue-controls>.wf-issue-control>.wf-issue-control-label,.wf-issue-site-cleaning>.wf-issue-summary>ul>.wf-issue-controls>.wf-issue-control>.wf-issue-control-label,.wf-issue-site-cleaning>.wf-issue-summary>ul>.wf-issue-short-stats>.wf-issue-controls>.wf-issue-control>.wf-issue-control-label{padding-top:0.65rem;font-size:0.7rem;font-weight:500;text-transform:uppercase;color:#9e9e9e}.wf-issue>.wf-issue-summary>ul>.wf-issue-controls>.wf-issue-control:hover>.wf-issue-control-icon path,.wf-issue>.wf-issue-summary>ul>.wf-issue-controls>.wf-issue-control:hover .wf-issue-control-icon-inactive path,.wf-issue>.wf-issue-summary>ul>.wf-issue-controls>.wf-issue-control:hover .wf-issue-control-icon-active path,.wf-issue>.wf-issue-summary>ul>.wf-issue-short-stats>.wf-issue-controls>.wf-issue-control:hover>.wf-issue-control-icon path,.wf-issue>.wf-issue-summary>ul>.wf-issue-short-stats>.wf-issue-controls>.wf-issue-control:hover .wf-issue-control-icon-inactive path,.wf-issue>.wf-issue-summary>ul>.wf-issue-short-stats>.wf-issue-controls>.wf-issue-control:hover .wf-issue-control-icon-active path,.wf-issue-site-cleaning>.wf-issue-summary>ul>.wf-issue-controls>.wf-issue-control:hover>.wf-issue-control-icon path,.wf-issue-site-cleaning>.wf-issue-summary>ul>.wf-issue-controls>.wf-issue-control:hover .wf-issue-control-icon-inactive path,.wf-issue-site-cleaning>.wf-issue-summary>ul>.wf-issue-controls>.wf-issue-control:hover .wf-issue-control-icon-active path,.wf-issue-site-cleaning>.wf-issue-summary>ul>.wf-issue-short-stats>.wf-issue-controls>.wf-issue-control:hover>.wf-issue-control-icon path,.wf-issue-site-cleaning>.wf-issue-summary>ul>.wf-issue-short-stats>.wf-issue-controls>.wf-issue-control:hover .wf-issue-control-icon-inactive path,.wf-issue-site-cleaning>.wf-issue-summary>ul>.wf-issue-short-stats>.wf-issue-controls>.wf-issue-control:hover .wf-issue-control-icon-active path{fill:#00709e}.wf-issue>.wf-issue-summary>ul>.wf-issue-controls>.wf-issue-control:hover>.wf-issue-control-label,.wf-issue>.wf-issue-summary>ul>.wf-issue-short-stats>.wf-issue-controls>.wf-issue-control:hover>.wf-issue-control-label,.wf-issue-site-cleaning>.wf-issue-summary>ul>.wf-issue-controls>.wf-issue-control:hover>.wf-issue-control-label,.wf-issue-site-cleaning>.wf-issue-summary>ul>.wf-issue-short-stats>.wf-issue-controls>.wf-issue-control:hover>.wf-issue-control-label{color:#00709e}.wf-issue>.wf-issue-summary>ul>.wf-issue-short-stats>.wf-issue-controls,.wf-issue-site-cleaning>.wf-issue-summary>ul>.wf-issue-short-stats>.wf-issue-controls{margin-top:1rem;-webkit-justify-content:flex-start;justify-content:flex-start}.wf-issue .wf-issue-control-icon-active,.wf-issue-site-cleaning .wf-issue-control-icon-active{display:none}.wf-issue .wf-issue-control-icon-inactive,.wf-issue-site-cleaning .wf-issue-control-icon-inactive{display:block}.wf-issue>.wf-issue-detail,.wf-issue-site-cleaning>.wf-issue-detail{display:none;padding:1.5rem;border-top:1px solid #e2e2e2}.wf-issue>.wf-issue-detail .wf-issue-detail-spacer,.wf-issue-site-cleaning>.wf-issue-detail .wf-issue-detail-spacer{height:1rem;margin:0;padding:0}.wf-issue>.wf-issue-detail .wf-issue-detail-controls,.wf-issue-site-cleaning>.wf-issue-detail .wf-issue-detail-controls{display:-webkit-flex;display:flex;-webkit-align-items:center;align-items:center;-webkit-justify-content:flex-start;justify-content:flex-start;-webkit-flex-direction:row;flex-direction:row;margin:0;margin-top:1rem}.wf-issue>.wf-issue-detail .wf-issue-detail-controls>*,.wf-issue-site-cleaning>.wf-issue-detail .wf-issue-detail-controls>*{margin-left:1rem}.wf-issue>.wf-issue-detail .wf-issue-detail-controls>*:first-of-type,.wf-issue-site-cleaning>.wf-issue-detail .wf-issue-detail-controls>*:first-of-type{margin-left:0}@media (max-width: 767px){.wf-issue>.wf-issue-detail .wf-issue-detail-controls,.wf-issue-site-cleaning>.wf-issue-detail .wf-issue-detail-controls{-webkit-align-items:flex-start;align-items:flex-start;-webkit-flex-direction:column;flex-direction:column}.wf-issue>.wf-issue-detail .wf-issue-detail-controls>*,.wf-issue-site-cleaning>.wf-issue-detail .wf-issue-detail-controls>*{margin-left:0;margin-top:0.5rem}.wf-issue>.wf-issue-detail .wf-issue-detail-controls>*:first-of-type,.wf-issue-site-cleaning>.wf-issue-detail .wf-issue-detail-controls>*:first-of-type{margin-top:0}}.wf-issue.wf-active>.wf-issue-summary>ul>.wf-issue-controls .wf-issue-control-show-details>.wf-issue-control-icon path,.wf-issue.wf-active>.wf-issue-summary>ul>.wf-issue-controls .wf-issue-control-show-details .wf-issue-control-icon-inactive path,.wf-issue.wf-active>.wf-issue-summary>ul>.wf-issue-controls .wf-issue-control-show-details .wf-issue-control-icon-active path,.wf-issue-site-cleaning.wf-active>.wf-issue-summary>ul>.wf-issue-controls .wf-issue-control-show-details>.wf-issue-control-icon path,.wf-issue-site-cleaning.wf-active>.wf-issue-summary>ul>.wf-issue-controls .wf-issue-control-show-details .wf-issue-control-icon-inactive path,.wf-issue-site-cleaning.wf-active>.wf-issue-summary>ul>.wf-issue-controls .wf-issue-control-show-details .wf-issue-control-icon-active path{fill:#00709e}.wf-issue.wf-active>.wf-issue-summary>ul>.wf-issue-controls .wf-issue-control-show-details>.wf-issue-control-label,.wf-issue-site-cleaning.wf-active>.wf-issue-summary>ul>.wf-issue-controls .wf-issue-control-show-details>.wf-issue-control-label{color:#00709e}.wf-issue.wf-active>.wf-issue-summary>ul>.wf-issue-controls .wf-issue-control-icon-inactive,.wf-issue-site-cleaning.wf-active>.wf-issue-summary>ul>.wf-issue-controls .wf-issue-control-icon-inactive{display:none}.wf-issue.wf-active>.wf-issue-summary>ul>.wf-issue-controls .wf-issue-control-icon-active,.wf-issue-site-cleaning.wf-active>.wf-issue-summary>ul>.wf-issue-controls .wf-issue-control-icon-active{display:block}.wf-issue.wf-active>.wf-issue-detail,.wf-issue-site-cleaning.wf-active>.wf-issue-detail{display:block}.wf-issue-site-cleaning>.wf-issue-summary>ul>.wf-issue-short{-webkit-flex-basis:auto;flex-basis:auto}.wf-issue-site-cleaning>.wf-issue-summary>ul>.wf-issue-short p{padding:0;margin:0}.wf-option-scan-signatures>.wf-option-disclosure{-webkit-flex-grow:1;flex-grow:1;text-align:right}.wf-option-scan-signatures>.wf-option-disclosure>svg{transition:transform 0.15s cubic-bezier(0.175, 0.885, 0.32, 1.275)}#wf-scan-additional-signatures{display:none;margin-left:3rem;padding-left:30px;padding-bottom:1rem}#wf-scan-additional-signatures>h4{margin:0 0 0.5rem 0}#wf-scan-additional-signatures>textarea{width:300px;height:80px}.wf-scan-type-enabled{padding:1rem 0.5rem}.wf-scan-type-enabled>li:first-of-type{padding-right:1.5rem}.wf-scan-type-controls{display:-webkit-flex;display:flex;-webkit-align-items:stretch;align-items:stretch;-webkit-justify-content:flex-start;justify-content:flex-start;-webkit-flex-direction:column;flex-direction:column;margin:0 -0.5rem}.wf-scan-type{display:-webkit-flex;display:flex;-webkit-align-items:stretch;align-items:stretch;-webkit-justify-content:center;justify-content:center;-webkit-flex-direction:row;flex-direction:row;min-width:700px}@media (max-width: 767px){.wf-scan-type{-webkit-justify-content:flex-start;justify-content:flex-start}}.wf-scan-type>li{-webkit-flex-grow:1;flex-grow:1;-webkit-flex-shrink:0;flex-shrink:0;-webkit-flex-basis:25%;flex-basis:25%;display:-webkit-flex;display:flex;-webkit-align-items:stretch;align-items:stretch;-webkit-justify-content:center;justify-content:center;max-width:25%;padding:0.5rem}@media (min-width: 768px){.wf-scan-type>li{-webkit-flex-shrink:1;flex-shrink:1}}.wf-scan-type>li>ul.wf-scan-type-option{-webkit-flex-grow:1;flex-grow:1;margin:0;padding:0;border:1px solid #d9d9d9;min-height:100%;cursor:pointer}.wf-scan-type>li>ul.wf-scan-type-option.wf-scan-type-option-custom{cursor:inherit}.wf-scan-type>li>ul.wf-scan-type-option>.wf-scan-type-option-name{display:-webkit-flex;display:flex;-webkit-align-items:center;align-items:center;-webkit-justify-content:center;justify-content:center;-webkit-flex-direction:row;flex-direction:row;border-bottom:2px solid #d9d9d9;padding:0.5rem 1rem}.wf-scan-type>li>ul.wf-scan-type-option>.wf-scan-type-option-name .wf-option-checkbox{margin-right:0.5rem;width:20px;height:20px;min-width:20px;min-height:20px;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;line-height:20px !important;background-color:#ffffff;box-shadow:0px 0px 0px 1px rgba(185,185,185,0.75);color:#ffffff !important;font-size:25px !important}.wf-scan-type>li>ul.wf-scan-type-option>.wf-scan-type-option-name span{font-weight:400;font-size:0.95rem}.wf-scan-type>li>ul.wf-scan-type-option>.wf-scan-type-option-description{padding:1rem}.wf-scan-type>li>ul.wf-scan-type-option.wf-active>.wf-scan-type-option-name{background-color:#00709e}.wf-scan-type>li>ul.wf-scan-type-option.wf-active>.wf-scan-type-option-name .wf-option-checkbox{color:#00709e !important}.wf-scan-type>li>ul.wf-scan-type-option.wf-active>.wf-scan-type-option-name span{color:#ffffff}.wf-scan-scheduling-manual{display:none;margin-left:3rem;padding-left:30px}.wf-scan-scheduling-manual.wf-active{display:block}.wf-scan-scheduling-manual>li{display:-webkit-flex;display:flex;-webkit-align-items:center;align-items:center;-webkit-justify-content:flex-start;justify-content:flex-start;-webkit-flex-direction:row;flex-direction:row}.wf-scan-scheduling-manual .wf-scan-scheduling-manual-presets-label{padding-right:1rem}.wf-scan-scheduling-manual .wf-scan-scheduling-manual-presets{display:-webkit-flex;display:flex;-webkit-align-items:stretch;align-items:stretch;-webkit-justify-content:flex-start;justify-content:flex-start;-webkit-flex-direction:row;flex-direction:row;margin:0;padding:0}.wf-scan-scheduling-manual .wf-scan-scheduling-manual-presets>li{margin:0;padding:0.5rem 0.7rem;text-transform:uppercase;cursor:pointer;color:#aaa;font-weight:400;border-top:1px solid #bfbfbf;border-bottom:1px solid #bfbfbf;border-right:1px solid #bfbfbf}.wf-scan-scheduling-manual .wf-scan-scheduling-manual-presets>li:first-of-type{border-left:1px solid #bfbfbf;-moz-border-radius-topleft:6px;-webkit-border-top-left-radius:6px;border-top-left-radius:6px;-moz-border-radius-bottomleft:6px;-webkit-border-bottom-left-radius:6px;border-bottom-left-radius:6px}.wf-scan-scheduling-manual .wf-scan-scheduling-manual-presets>li:last-of-type{-moz-border-radius-topright:6px;-webkit-border-top-right-radius:6px;border-top-right-radius:6px;-moz-border-radius-bottomright:6px;-webkit-border-bottom-right-radius:6px;border-bottom-right-radius:6px}.wf-scan-scheduling-manual .wf-scan-scheduling-manual-presets>li.wf-active{color:#ffffff;background-color:#00709e}.wf-scan-scheduling-manual-preset-options .select2-container{min-width:100px}.wf-scan-scheduling-manual-preset-options:not(.wf-active),.wf-scan-scheduling-manual-custom-options:not(.wf-active){display:none !important}.wf-scan-scheduling-manual-custom-options{padding-bottom:1rem}.wf-schedule-times-wrapper{display:-webkit-flex;display:flex;-webkit-align-items:center;align-items:center;-webkit-justify-content:space-between;justify-content:space-between;-webkit-flex-direction:row;flex-direction:row;margin-top:1rem}@media (min-width: 768px){.wf-schedule-times-wrapper{margin-top:0.25rem}}.wf-schedule-times-wrapper:first-of-type{margin-top:0}@media (min-width: 768px){.wf-schedule-times-wrapper:first-of-type{margin-top:1rem}}.wf-schedule-times-wrapper>*{-webkit-flex-grow:1;flex-grow:1;min-width:0}.wf-schedule-times-wrapper>*:first-child{-webkit-flex-grow:0;flex-grow:0;min-width:initial;padding-right:0.25rem}.wf-schedule-times-wrapper .wf-schedule-period{font-weight:500;padding:0.5rem 0.7rem}.wf-schedule-times{display:-webkit-flex;display:flex;-webkit-align-items:stretch;align-items:stretch;-webkit-justify-content:flex-start;justify-content:flex-start;-webkit-flex-direction:row;flex-direction:row}.wf-schedule-times>li{margin:0;padding:0.5rem 0.7rem;text-transform:uppercase;cursor:pointer;color:#aaa;font-weight:400;border-top:1px solid #bfbfbf;border-bottom:1px solid #bfbfbf;border-right:1px solid #bfbfbf}.wf-schedule-times>li:first-of-type{border-left:1px solid #bfbfbf;-moz-border-radius-topleft:6px;-webkit-border-top-left-radius:6px;border-top-left-radius:6px;-moz-border-radius-bottomleft:6px;-webkit-border-bottom-left-radius:6px;border-bottom-left-radius:6px}.wf-schedule-times>li:last-of-type{-moz-border-radius-topright:6px;-webkit-border-top-right-radius:6px;border-top-right-radius:6px;-moz-border-radius-bottomright:6px;-webkit-border-bottom-right-radius:6px;border-bottom-right-radius:6px}.wf-schedule-times>li.wf-active{color:#ffffff;background-color:#00709e}.wf-issue-control-ignore-menu{position:absolute;z-index:9999;background-color:#ffffff;border:1px solid #bfbfbf}.wf-issue-control-ignore-menu>li{padding:0.5rem 1rem;margin:0;border-top:1px solid #bfbfbf;cursor:pointer}.wf-issue-control-ignore-menu>li:hover{color:#ffffff;background-color:#00709e}.wf-issue-control-ignore-menu>li:first-of-type{border-top:0}#wf-scan-failed .wf-alert{margin:0}#wf-site-cleaning-bottom h3{color:#00709e;font-weight:300;font-size:1.5rem;margin:1rem 0}#wf-site-cleaning-bottom p{max-width:750px}#wordfenceRightRail img{max-width:100%}#wordfenceRightRail ul{list-style-type:none;margin:0;margin-top:15px}#wordfenceRightRail .center{text-align:center}#wordfenceRightRail .button-primary{text-align:center;text-transform:uppercase;font-weight:bold;background-color:#00709e}.wordfenceRightRail img{width:100%}.wordfenceRightRailLiveTraffic,.wordfenceRightRailOptions,.wordfenceRightRailDiagnostics{margin-left:1055px}.wordfenceRightRailBlockedIPs,.wordfenceRightRailWAF,.wordfenceRightRailCountryBlocking,.wordfenceRightRailScanSchedule{margin-left:950px}.wordfenceRightRail ul{list-style-type:none;margin:0}.wordfenceRightRail .center{text-align:center}.wordfenceRightRail .button-primary{text-align:center;text-transform:uppercase;font-weight:bold;background-color:#00709e}.wordfenceWrap.wordfence-community{min-height:760px}#wfTwoFactorQRCodeTable{width:175px;height:175px;margin:0 auto}@media (min-width: 500px){#wfTwoFactorQRCodeTable{width:256px;height:256px}}#wfTwoFactorRecoveryCodes{list-style-type:none}#wfTwoFactorRecoveryCodes li{font-family:monospace;text-align:center}#wfTwoFactorDownload .dashicons{line-height:26px}.wf-twofactor-delete{font-size:1.5rem}.wf-twofactor-delete a{text-decoration:none;color:#333}.wf-twofactor-delete a i{font-size:1.5rem}.wf-table.wf-table-twofactor>tbody>tr>td{vertical-align:middle}.wf-form-twofactor{max-width:400px}.wf-form-twofactor .wf-radio label{padding-left:0}#twofactor .wf-block-list>li{padding:.8rem 1.5rem;min-height:0px}#twofactor .wf-block-list .wf-form-control{margin:0px 0px}.wf-block-list .wf-block-list-title{font-weight:bold;font-size:0.9rem}.wf-block-list .wf-block-list-subtitle{font-weight:bold;font-size:0.85rem;color:#008cc1}#wfTwoFacUsers{margin:0 auto 1.5rem}#wf-tools-two-factor #wf-two-factor-img1,#wf-tools-two-factor #wf-two-factor-img2,#wf-all-options #wf-two-factor-img1,#wf-all-options #wf-two-factor-img2{display:inline}#wf-tools-two-factor #wf-two-factor-img1,#wf-all-options #wf-two-factor-img1{max-width:316px}#wf-tools-two-factor #wf-two-factor-img2,#wf-all-options #wf-two-factor-img2{max-width:270px}#wfUsername{max-width:568px}@media screen and (max-width: 782px){#wf-tools-two-factor #wf-two-factor-img1,#wf-tools-two-factor #wf-two-factor-img2,#wf-all-options #wf-two-factor-img1,#wf-all-options #wf-two-factor-img2{display:block;margin:0px auto 20px}}fieldset{padding:0;margin:0;border:0;min-width:0}legend{display:block;width:100%;padding:0;margin-bottom:20px;font-size:21px;line-height:inherit;color:#333;border:0;border-bottom:1px solid #e5e5e5}label{display:inline-block;max-width:100%;margin-bottom:5px;font-weight:bold}label.wf-plain{font-weight:normal}label.wf-control-label.wf-disabled{pointer-events:none}input[type="search"]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}input[type="radio"],input[type="checkbox"]{margin-top:1px \9;line-height:normal}input[type="file"]{display:block}input[type="range"]{display:block;width:100%}select[multiple],select[size]{height:auto}input[type="file"]:focus,input[type="radio"]:focus,input[type="checkbox"]:focus{outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}output{display:block;padding-top:1.5rem;font-size:14px;line-height:1.42857;color:#555}.wf-form-control{display:block;width:100%;height:38px;padding:.5rem 1.25rem;font-size:14px;line-height:1.42857;color:#555;background-color:#fff;background-image:none;border:1px solid #ddd;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);-webkit-transition:border-color ease-in-out 0.15s,box-shadow ease-in-out 0.15s;-o-transition:border-color ease-in-out 0.15s,box-shadow ease-in-out 0.15s;transition:border-color ease-in-out 0.15s,box-shadow ease-in-out 0.15s}.wf-form-control:focus{border-color:#66afe9;outline:0;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 8px rgba(102,175,233,0.6);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 8px rgba(102,175,233,0.6)}.wf-form-control::-moz-placeholder{color:#bfbfbf;opacity:1}.wf-form-control:-ms-input-placeholder{color:#bfbfbf}.wf-form-control::-webkit-input-placeholder{color:#bfbfbf}.wf-form-control::-ms-expand{border:0;background-color:transparent}.wf-form-control[disabled],.wf-form-control[readonly],fieldset[disabled] .wf-form-control{background-color:#e2e2e2;opacity:1}.wf-form-control[disabled],.wf-form-control[readonly],fieldset[disabled] .wf-form-control{cursor:not-allowed;pointer-events:none}textarea.wf-form-control{height:auto}input[type="search"]{-webkit-appearance:none}@media screen and (-webkit-min-device-pixel-ratio: 0){input[type="date"].wf-form-control,input[type="time"].wf-form-control,input[type="datetime-local"].wf-form-control,input[type="month"].wf-form-control{line-height:38px}input[type="date"].wf-input-sm,.wf-input-group-sm input[type="date"],input[type="time"].wf-input-sm,.wf-input-group-sm input[type="time"],input[type="datetime-local"].wf-input-sm,.wf-input-group-sm input[type="datetime-local"],input[type="month"].wf-input-sm,.wf-input-group-sm input[type="month"]{line-height:30px}input[type="date"].wf-input-lg,.wf-input-group-lg input[type="date"],input[type="time"].wf-input-lg,.wf-input-group-lg input[type="time"],input[type="datetime-local"].wf-input-lg,.wf-input-group-lg input[type="datetime-local"],input[type="month"].wf-input-lg,.wf-input-group-lg input[type="month"]{line-height:46px}}.wf-form-group{margin-bottom:8px}.wf-form-group.wf-sub-group label{color:#666666;font-weight:normal;padding-left:20px}.wf-form-group.wf-focus{border-left:4px solid #11967a;padding-bottom:8px;background-color:#e5e5e5}.wf-form-group.wf-focus label{margin-left:-4px}.wf-radio,.wf-checkbox{position:relative;display:block;margin-top:10px;margin-bottom:10px}.wf-radio label,.wf-checkbox label{min-height:20px;padding-left:20px;margin-bottom:0;font-weight:normal;cursor:pointer}.wf-radio input[type="radio"],.wf-radio-inline input[type="radio"],.wf-checkbox input[type="checkbox"],.wf-checkbox-inline input[type="checkbox"]{margin-top:4px \9}.wf-radio-offset{padding-left:29px}@media (min-width: 768px){.wf-radio-offset{padding-left:20px}}.wf-radio+.wf-radio,.wf-checkbox+.wf-checkbox{margin-top:-5px}.wf-radio-inline,.wf-checkbox-inline{position:relative;display:inline-block;padding-left:20px;margin-bottom:0;vertical-align:middle;font-weight:normal;cursor:pointer}.wf-radio-inline+.wf-radio-inline,.wf-checkbox-inline+.wf-checkbox-inline{margin-top:0;margin-left:10px}input[type="radio"][disabled],input[type="radio"][readonly],input[type="radio"].wf-disabled,fieldset[disabled] input[type="radio"],input[type="checkbox"][disabled],input[type="checkbox"][readonly],input[type="checkbox"].wf-disabled,fieldset[disabled] input[type="checkbox"]{cursor:not-allowed;pointer-events:none}.wf-radio-inline.wf-disabled,fieldset[disabled] .wf-radio-inline,.wf-checkbox-inline.wf-disabled,fieldset[disabled] .wf-checkbox-inline{cursor:not-allowed}.wf-radio.wf-disabled label,fieldset[disabled] .wf-radio label,.wf-checkbox.wf-disabled label,fieldset[disabled] .wf-checkbox label{cursor:not-allowed;pointer-events:none}.wf-form-control-static{padding-top:1.5rem;padding-bottom:1.5rem;margin:0;line-height:1}.wf-form-control-static.wf-input-lg,.wf-form-control-static.wf-input-sm{padding-left:0;padding-right:0}.wf-input-sm{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}select.wf-input-sm{height:30px;line-height:30px}textarea.wf-input-sm,select[multiple].wf-input-sm{height:auto}.wf-form-group-sm .wf-form-control{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}.wf-form-group-sm select.wf-form-control{height:30px;line-height:30px}.wf-form-group-sm textarea.wf-form-control,.wf-form-group-sm select[multiple].wf-form-control{height:auto}.wf-form-group-sm .wf-form-control-static{height:30px;min-height:32px;padding:6px 10px;font-size:12px;line-height:1.5}.wf-input-lg{height:46px;padding:10px 16px;font-size:18px;line-height:1.33333;border-radius:6px}select.wf-input-lg{height:46px;line-height:46px}textarea.wf-input-lg,select[multiple].wf-input-lg{height:auto}.wf-form-group-lg .wf-form-control{height:46px;padding:10px 16px;font-size:18px;line-height:1.33333;border-radius:6px}.wf-form-group-lg select.wf-form-control{height:46px;line-height:46px}.wf-form-group-lg textarea.wf-form-control,.wf-form-group-lg select[multiple].wf-form-control{height:auto}.wf-form-group-lg .wf-form-control-static{height:46px;min-height:38px;padding:11px 16px;font-size:18px;line-height:1.33333}.wf-has-feedback{position:relative}.wf-has-feedback .wf-form-control{padding-right:47.5px}.wf-form-control-feedback{position:absolute;top:0;right:0;z-index:2;display:block;width:38px;height:38px;line-height:38px;text-align:center;pointer-events:none}.wf-input-lg+.wf-form-control-feedback,.wf-input-group-lg+.wf-form-control-feedback,.wf-form-group-lg .wf-form-control+.wf-form-control-feedback{width:46px;height:46px;line-height:46px}.wf-input-sm+.wf-form-control-feedback,.wf-input-group-sm+.wf-form-control-feedback,.wf-form-group-sm .wf-form-control+.wf-form-control-feedback{width:30px;height:30px;line-height:30px}.wf-has-success .wf-help-block,.wf-has-success .wf-control-label,.wf-has-success .wf-radio,.wf-has-success .wf-checkbox,.wf-has-success .wf-radio-inline,.wf-has-success .wf-checkbox-inline,.wf-has-success.wf-radio label,.wf-has-success.wf-checkbox label,.wf-has-success.wf-radio-inline label,.wf-has-success.wf-checkbox-inline label{color:#3c763d}.wf-has-success .wf-form-control{border-color:#3c763d;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.wf-has-success .wf-form-control:focus{border-color:#2b542c;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #67b168;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #67b168}.wf-has-success .wf-input-group-addon{color:#3c763d;border-color:#3c763d;background-color:#dff0d8}.wf-has-success .wf-form-control-feedback{color:#3c763d}.wf-has-warning .wf-help-block,.wf-has-warning .wf-control-label,.wf-has-warning .wf-radio,.wf-has-warning .wf-checkbox,.wf-has-warning .wf-radio-inline,.wf-has-warning .wf-checkbox-inline,.wf-has-warning.wf-radio label,.wf-has-warning.wf-checkbox label,.wf-has-warning.wf-radio-inline label,.wf-has-warning.wf-checkbox-inline label{color:#8a6d3b}.wf-has-warning .wf-form-control{border-color:#8a6d3b;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.wf-has-warning .wf-form-control:focus{border-color:#66512c;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #c0a16b;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #c0a16b}.wf-has-warning .wf-input-group-addon{color:#8a6d3b;border-color:#8a6d3b;background-color:#fcf8e3}.wf-has-warning .wf-form-control-feedback{color:#8a6d3b}.wf-has-error .wf-help-block,.wf-has-error .wf-control-label,.wf-has-error .wf-radio,.wf-has-error .wf-checkbox,.wf-has-error .wf-radio-inline,.wf-has-error .wf-checkbox-inline,.wf-has-error.wf-radio label,.wf-has-error.wf-checkbox label,.wf-has-error.wf-radio-inline label,.wf-has-error.wf-checkbox-inline label{color:#a94442}.wf-has-error .wf-form-control{border-color:#a94442;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.wf-has-error .wf-form-control:focus{border-color:#843534;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #ce8483;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #ce8483}.wf-has-error .wf-input-group-addon{color:#a94442;border-color:#a94442;background-color:#f2dede}.wf-has-error .wf-form-control-feedback{color:#a94442}.wf-has-feedback label ~ .wf-form-control-feedback{top:25px}.wf-has-feedback label.wf-sr-only ~ .wf-form-control-feedback{top:0}.wf-help-block{display:block;margin-top:5px;color:#737373}@media (min-width: 768px){.wf-form-inline .wf-form-group{display:inline-block;margin-bottom:0;vertical-align:middle}.wf-form-inline .wf-form-control{display:inline-block;width:auto;vertical-align:middle}.wf-form-inline .wf-form-control-static{display:inline-block}.wf-form-inline .wf-input-group{display:inline-table;vertical-align:middle}.wf-form-inline .wf-input-group .wf-input-group-addon,.wf-form-inline .wf-input-group .wf-input-group-btn,.wf-form-inline .wf-input-group .wf-form-control{width:auto}.wf-form-inline .wf-input-group>.wf-form-control{width:100%}.wf-form-inline .wf-control-label{margin-bottom:0;vertical-align:middle}.wf-form-inline .wf-radio,.wf-form-inline .wf-checkbox{display:inline-block;margin-top:0;margin-bottom:0;vertical-align:middle}.wf-form-inline .wf-radio label,.wf-form-inline .wf-checkbox label{padding-left:0}.wf-form-inline .wf-radio input[type="radio"],.wf-form-inline .wf-checkbox input[type="checkbox"]{position:relative;margin-left:0}.wf-form-inline .wf-has-feedback .wf-form-control-feedback{top:0}}.wf-form-horizontal .wf-radio,.wf-form-horizontal .wf-checkbox,.wf-form-horizontal .wf-radio-inline,.wf-form-horizontal .wf-checkbox-inline{margin-top:0;margin-bottom:0;padding-top:1.5rem}.wf-form-horizontal .wf-radio,.wf-form-horizontal .wf-checkbox{min-height:29px}.wf-form-horizontal .wf-form-group{margin-left:-15px;margin-right:-15px}.wf-form-horizontal .wf-form-group:before,.wf-form-horizontal .wf-form-group:after{content:" ";display:table}.wf-form-horizontal .wf-form-group:after{clear:both}@media (min-width: 768px){.wf-form-horizontal .wf-control-label{text-align:right;margin-bottom:0;padding-top:1.5rem}}.wf-form-horizontal .wf-has-feedback .wf-form-control-feedback{right:15px}@media (min-width: 768px){.wf-form-horizontal .wf-form-group-lg .wf-control-label{padding-top:11px;font-size:18px}}@media (min-width: 768px){.wf-form-horizontal .wf-form-group-sm .wf-control-label{padding-top:6px;font-size:12px}}#wf-dashboard .wf-block .wf-block-content .wf-block-labeled-value.wf-global-status .wf-block-labeled-value-value,#wf-global-options .wf-block .wf-block-content .wf-block-labeled-value.wf-global-status .wf-block-labeled-value-value{padding-top:0}#wf-dashboard .wf-block .wf-block-content .wf-block-labeled-value.wf-global-status .wf-block-labeled-value-value .wf-fa,#wf-global-options .wf-block .wf-block-content .wf-block-labeled-value.wf-global-status .wf-block-labeled-value-value .wf-fa{font-size:8rem}#wf-dashboard .wf-block .wf-block-content .wf-block-labeled-value.wf-global-status .wf-block-labeled-value-value svg,#wf-global-options .wf-block .wf-block-content .wf-block-labeled-value.wf-global-status .wf-block-labeled-value-value svg{width:140px}#wf-dashboard .wf-block .wf-block-content .wf-block-labeled-value.wf-global-status .wf-block-labeled-value-label,#wf-global-options .wf-block .wf-block-content .wf-block-labeled-value.wf-global-status .wf-block-labeled-value-label{font-size:1.3125rem;font-weight:300;line-height:1.5;padding-bottom:0}#wf-dashboard .wf-block .wf-block-content .wf-block-labeled-value.wf-global-status-full-enabled,#wf-global-options .wf-block .wf-block-content .wf-block-labeled-value.wf-global-status-full-enabled{background-color:#00709e}#wf-dashboard .wf-block .wf-block-content .wf-block-labeled-value.wf-global-status-full-enabled .wf-block-labeled-value-value,#wf-global-options .wf-block .wf-block-content .wf-block-labeled-value.wf-global-status-full-enabled .wf-block-labeled-value-value{color:#ffffff}#wf-dashboard .wf-block .wf-block-content .wf-block-labeled-value.wf-global-status-full-enabled .wf-block-labeled-value-label,#wf-global-options .wf-block .wf-block-content .wf-block-labeled-value.wf-global-status-full-enabled .wf-block-labeled-value-label{color:#ffffff;padding:0}#wf-dashboard .wf-block .wf-block-content .wf-block-labeled-value.wf-global-status-enabled .wf-block-labeled-value-value,#wf-global-options .wf-block .wf-block-content .wf-block-labeled-value.wf-global-status-enabled .wf-block-labeled-value-value{color:#11967a}#wf-dashboard .wf-block .wf-block-content .wf-block-labeled-value.wf-global-status-enabled .wf-block-labeled-value-value svg,#wf-global-options .wf-block .wf-block-content .wf-block-labeled-value.wf-global-status-enabled .wf-block-labeled-value-value svg{fill:#11967a}#wf-dashboard .wf-block .wf-block-content .wf-block-labeled-value.wf-global-status-enabled .wf-block-labeled-value-label,#wf-global-options .wf-block .wf-block-content .wf-block-labeled-value.wf-global-status-enabled .wf-block-labeled-value-label{color:#11967a}#wf-dashboard .wf-block .wf-block-content .wf-block-labeled-value.wf-global-status-learning-mode .wf-block-labeled-value-value,#wf-dashboard .wf-block .wf-block-content .wf-block-labeled-value.wf-global-status-disabled .wf-block-labeled-value-value,#wf-global-options .wf-block .wf-block-content .wf-block-labeled-value.wf-global-status-learning-mode .wf-block-labeled-value-value,#wf-global-options .wf-block .wf-block-content .wf-block-labeled-value.wf-global-status-disabled .wf-block-labeled-value-value{color:#9f9fa0}#wf-dashboard .wf-block .wf-block-content .wf-block-labeled-value.wf-global-status-learning-mode .wf-block-labeled-value-value svg,#wf-dashboard .wf-block .wf-block-content .wf-block-labeled-value.wf-global-status-disabled .wf-block-labeled-value-value svg,#wf-global-options .wf-block .wf-block-content .wf-block-labeled-value.wf-global-status-learning-mode .wf-block-labeled-value-value svg,#wf-global-options .wf-block .wf-block-content .wf-block-labeled-value.wf-global-status-disabled .wf-block-labeled-value-value svg{fill:#9f9fa0}#wf-dashboard .wf-block .wf-block-content .wf-block-labeled-value.wf-global-status-learning-mode .wf-block-labeled-value-label,#wf-dashboard .wf-block .wf-block-content .wf-block-labeled-value.wf-global-status-disabled .wf-block-labeled-value-label,#wf-global-options .wf-block .wf-block-content .wf-block-labeled-value.wf-global-status-learning-mode .wf-block-labeled-value-label,#wf-global-options .wf-block .wf-block-content .wf-block-labeled-value.wf-global-status-disabled .wf-block-labeled-value-label{color:#9f9fa0}#wf-dashboard .wf-block .wf-block-content .wf-block-labeled-value.wf-protection-status .wf-block-labeled-value-value .wf-fa,#wf-global-options .wf-block .wf-block-content .wf-block-labeled-value.wf-protection-status .wf-block-labeled-value-value .wf-fa{font-size:7rem}#wf-dashboard .wf-block .wf-block-content .wf-block-labeled-value.wf-protection-status .wf-block-labeled-value-value svg,#wf-global-options .wf-block .wf-block-content .wf-block-labeled-value.wf-protection-status .wf-block-labeled-value-value svg{width:120px}#wf-dashboard .wf-block .wf-block-content .wf-block-labeled-value.wf-protection-status .wf-block-labeled-value-label,#wf-global-options .wf-block .wf-block-content .wf-block-labeled-value.wf-protection-status .wf-block-labeled-value-label{font-size:1.15rem;font-weight:300}#wf-dashboard .wf-block .wf-block-content .wf-block-labeled-value.wf-protection-status-premium .wf-block-labeled-value-value,#wf-global-options .wf-block .wf-block-content .wf-block-labeled-value.wf-protection-status-premium .wf-block-labeled-value-value{color:#00709e}#wf-dashboard .wf-block .wf-block-content .wf-block-labeled-value.wf-protection-status-premium .wf-block-labeled-value-value svg,#wf-global-options .wf-block .wf-block-content .wf-block-labeled-value.wf-protection-status-premium .wf-block-labeled-value-value svg{fill:#00709e}#wf-dashboard .wf-block .wf-block-content .wf-block-labeled-value.wf-protection-status-premium .wf-block-labeled-value-label,#wf-global-options .wf-block .wf-block-content .wf-block-labeled-value.wf-protection-status-premium .wf-block-labeled-value-label{color:#00709e}.wf-dashboard-item{position:relative;margin:0 auto 1rem;padding:0 1rem;box-sizing:border-box;background:#fff;box-shadow:0 0 0 1px rgba(200,215,225,0.5),0 1px 2px #e9eff3}.wf-dashboard-item .wf-dashboard-item-inner{min-height:44px;padding:1rem 0;width:100%;box-sizing:border-box;display:-webkit-flex;display:flex;-webkit-align-items:center;align-items:center;-webkit-justify-content:space-between;justify-content:space-between;position:relative}.wf-dashboard-item .wf-dashboard-item-inner .wf-dashboard-item-content{max-width:75%}.wf-dashboard-item .wf-dashboard-item-inner .wf-dashboard-item-content .wf-dashboard-item-title{font-family:Roboto,"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:0.875rem;width:100%}.wf-dashboard-item .wf-dashboard-item-inner .wf-dashboard-item-content .wf-dashboard-item-subtitle{margin-top:.125rem;margin-bottom:.125rem;font-size:.575rem;color:#4f748e}.wf-dashboard-item .wf-dashboard-item-inner .wf-dashboard-item-action{position:absolute;top:0;right:0;height:100%;background:none;border:0;outline:0;width:48px;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;vertical-align:middle;transition:transform 0.15s cubic-bezier(0.175, 0.885, 0.32, 1.275),color 0.2s ease-in}.wf-dashboard-item .wf-dashboard-item-inner .wf-dashboard-item-action.wf-dashboard-item-action-text{width:auto}.wf-dashboard-item .wf-dashboard-item-inner .wf-dashboard-item-action.wf-dashboard-item-action-text.wf-dashboard-item-action-text-success{color:#11967a}.wf-dashboard-item .wf-dashboard-item-inner .wf-dashboard-item-action.wf-dashboard-item-action-text.wf-dashboard-item-action-text-warning{color:#930000}.wf-dashboard-item .wf-dashboard-item-inner .wf-dashboard-item-action.wf-dashboard-item-action-text.wf-dashboard-item-action-text-warning a{color:#930000}.wf-dashboard-item .wf-dashboard-item-inner .wf-dashboard-item-action .wf-dashboard-item-action-chevron{background:url("data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPCFET0NUWVBFIHN2ZyBQVUJMSUMgIi0vL1czQy8vRFREIFNWRyAxLjEvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvR3JhcGhpY3MvU1ZHLzEuMS9EVEQvc3ZnMTEuZHRkIj4KPHN2ZyB2ZXJzaW9uPSIxLjEiIGlkPSJjaGV2cm9uLW9iamVjdCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgeD0iMHB4IiB5PSIwcHgiCgkgd2lkdGg9IjI0cHgiIGhlaWdodD0iMjRweCIgdmlld0JveD0iMCAwIDI0IDI0IiBlbmFibGUtYmFja2dyb3VuZD0ibmV3IDAgMCAyNCAyNCIKCSB4bWw6c3BhY2U9InByZXNlcnZlIj4KPHBhdGggaWQ9ImNoZXZyb24iIGQ9Ik0yMCA5bC04IDgtOC04IDEuNDE0LTEuNDE0TDEyIDE0LjE3Mmw2LjU4Ni02LjU4NiIvPgo8L3N2Zz4K");background-repeat:no-repeat;background-position:center center;width:24px;height:24px;fill:#87a6bc}.wf-dashboard-item .wf-dashboard-item-inner .wf-dashboard-item-action .wf-dashboard-item-action-checkbox{background-image:url(../images/checkbox.png);background-repeat:no-repeat;background-position:left center;width:29px;height:29px}.wf-dashboard-item .wf-dashboard-item-inner .wf-dashboard-item-action .wf-dashboard-item-action-checkbox.checked{background-position:right center}.wf-dashboard-item .wf-dashboard-item-extra{display:none;margin:0 -1rem;padding:0 1rem}.wf-dashboard-item .wf-dashboard-item-extra .wf-dashboard-item-list{margin:0 -1rem;padding:0;list-style:none}.wf-dashboard-item .wf-dashboard-item-extra .wf-dashboard-item-list.wf-dashboard-item-list-striped>li:nth-of-type(odd){background-color:#f9f9f9}.wf-dashboard-item .wf-dashboard-item-extra .wf-dashboard-item-list.wf-dashboard-item-list-striped>li:nth-of-type(odd).wf-notification{border-left:4px solid #f9f9f9}.wf-dashboard-item .wf-dashboard-item-extra .wf-dashboard-item-list.wf-dashboard-item-list-striped>li:nth-of-type(odd).wf-notification.wf-notification-warning{border-left:4px solid #fcb214}.wf-dashboard-item .wf-dashboard-item-extra .wf-dashboard-item-list.wf-dashboard-item-list-striped>li:nth-of-type(odd).wf-notification.wf-notification-critical{border-left:4px solid #930000}.wf-dashboard-item .wf-dashboard-item-extra .wf-dashboard-item-list.wf-dashboard-item-list-striped>li:nth-of-type(even){background-color:#ffffff}.wf-dashboard-item .wf-dashboard-item-extra .wf-dashboard-item-list.wf-dashboard-item-list-striped>li:nth-of-type(even).wf-notification{border-left:4px solid #ffffff}.wf-dashboard-item .wf-dashboard-item-extra .wf-dashboard-item-list.wf-dashboard-item-list-striped>li:nth-of-type(even).wf-notification.wf-notification-warning{border-left:4px solid #fcb214}.wf-dashboard-item .wf-dashboard-item-extra .wf-dashboard-item-list.wf-dashboard-item-list-striped>li:nth-of-type(even).wf-notification.wf-notification-critical{border-left:4px solid #930000}.wf-dashboard-item .wf-dashboard-item-extra .wf-dashboard-item-list>li{display:block;min-height:44px;padding:0 1rem;margin:0;border-top:1px solid #eeeeee;box-sizing:border-box;display:-webkit-flex;display:flex;-webkit-align-items:center;align-items:center;-webkit-justify-content:space-between;justify-content:space-between}.wf-dashboard-item .wf-dashboard-item-extra .wf-dashboard-item-list>li>*:first-child{-webkit-flex-grow:1;flex-grow:1;min-width:0}.wf-dashboard-item .wf-dashboard-item-extra .wf-dashboard-item-list.wf-dashboard-item-list-horizontal{box-sizing:border-box;margin-top:-1px;display:-webkit-flex;display:flex;-webkit-align-items:stretch;align-items:stretch;-webkit-align-content:flex-start;align-content:flex-start;-webkit-justify-content:space-between;justify-content:space-between;-webkit-flex-wrap:wrap;flex-wrap:wrap}.wf-dashboard-item .wf-dashboard-item-extra .wf-dashboard-item-list.wf-dashboard-item-list-horizontal>li{-webkit-flex-grow:1;flex-grow:1;-webkit-flex-basis:100%;flex-basis:100%;border-left:1px solid #eeeeee}@media (min-width: 768px){.wf-dashboard-item .wf-dashboard-item-extra .wf-dashboard-item-list.wf-dashboard-item-list-horizontal>li{-webkit-flex-basis:50%;flex-basis:50%}}@media (min-width: 992px){.wf-dashboard-item .wf-dashboard-item-extra .wf-dashboard-item-list.wf-dashboard-item-list-horizontal>li{-webkit-flex-basis:25%;flex-basis:25%}}.wf-dashboard-item .wf-dashboard-item-extra .wf-dashboard-item-list.wf-dashboard-item-list-horizontal>*:first-child{border-left:0}@media (min-width: 768px){.wf-dashboard-item .wf-dashboard-item-extra .wf-dashboard-item-list.wf-dashboard-item-list-horizontal.wf-dashboard-item-list-equal>li{max-width:50%}}@media (min-width: 992px){.wf-dashboard-item .wf-dashboard-item-extra .wf-dashboard-item-list.wf-dashboard-item-list-horizontal.wf-dashboard-item-list-equal>li{max-width:25%}}.wf-dashboard-item .wf-dashboard-item-extra .wf-dashboard-item-list .wf-dashboard-item-list-state{text-align:center}@media (min-width: 1200px){.wf-dashboard-item .wf-dashboard-item-extra .wf-dashboard-item-list .wf-dashboard-item-list-state{text-align:left}}.wf-dashboard-item .wf-dashboard-item-extra .wf-dashboard-item-list .wf-dashboard-item-list-state-enabled .fa{color:#11967a}.wf-dashboard-item .wf-dashboard-item-extra .wf-dashboard-item-list .wf-dashboard-item-list-state-disabled .fa{color:#525355}.wf-dashboard-item .wf-dashboard-item-extra .wf-dashboard-item-list .wf-dashboard-item-list-state-premium{color:#9f9fa0}.wf-dashboard-item .wf-dashboard-item-extra .wf-dashboard-item-list .wf-dashboard-item-list-dismiss{padding-left:2rem;font-size:1.25rem}.wf-dashboard-item .wf-dashboard-item-extra .wf-dashboard-item-list .wf-dashboard-item-list-dismiss a{color:#525355}.wf-dashboard-item .wf-dashboard-item-extra .wf-dashboard-item-labeled-count{box-sizing:border-box;display:-webkit-flex;display:flex;-webkit-align-items:center;align-items:center;-webkit-justify-content:space-between;justify-content:space-between;-webkit-flex-direction:column;flex-direction:column}.wf-dashboard-item .wf-dashboard-item-extra .wf-dashboard-item-labeled-count-count{font-size:3rem;line-height:3rem;color:#9f9fa0;padding:1rem}.wf-dashboard-item .wf-dashboard-item-extra .wf-dashboard-item-labeled-count-label{font-size:0.75rem;color:#9f9fa0;padding:0 1rem 1rem 1rem}.wf-dashboard-item.active .wf-dashboard-item-extra{display:block}.wf-dashboard-item.wf-dashboard-item-left .wf-dashboard-item-content{margin-left:48px}.wf-dashboard-item.wf-dashboard-item-left .wf-dashboard-item-action{right:auto;left:0px}.wf-dashboard-item.disabled .wf-dashboard-item-content .wf-dashboard-item-title{color:#aaaaaa}.wf-dashboard-item.disabled .wf-dashboard-item-content .wf-dashboard-item-subtitle{color:#8ea6be}.wf-notifications-empty{font-size:0.9rem;color:#9f9fa0}.wf-dashboard-graph-wrapper{width:100%}.wf-dashboard-badge{display:inline-block;min-width:10px;padding:3px 7px;margin-left:0.5rem;font-size:12px;font-weight:bold;color:#fff;line-height:1;vertical-align:middle;white-space:nowrap;text-align:center;background-color:#fcb214;border-radius:10px}.wf-dashboard-badge:empty{display:none}.wf-btn .wf-dashboard-badge{position:relative;top:-1px}.wf-btn-xs .wf-dashboard-badge,.wf-btn-group-xs>.wf-btn .wf-dashboard-badge,.wf-btn-group-xs>.wf-btn .wf-dashboard-badge{top:0;padding:1px 5px}.wf-list-group-item.active>.wf-dashboard-badge,.wf-nav-pills>.active>a>.wf-dashboard-badge{color:#00709e;background-color:#fff}.wf-list-group-item>.wf-dashboard-badge{float:right}.wf-list-group-item>.wf-dashboard-badge+.wf-dashboard-badge{margin-right:5px}.wf-nav-pills>li>a>.wf-dashboard-badge{margin-left:3px}.wf-dashboard-toggle-btns{text-align:center}.wf-dashboard-toggle-btns .wf-pagination{margin:1rem 1rem 0.5rem 1rem}.wf-dashboard-show-more{position:relative;font-size:14px;color:#959595;text-align:center;line-height:1rem;background:#ffffff;width:60%;margin:20px auto 0 auto}.wf-dashboard-show-more:before{display:inline-block;content:"";position:absolute;height:1px;background:#dddddd;top:50%;width:100%;left:0;right:0}.wf-dashboard-show-more a{display:inline-block;position:relative;padding:0 10px;background-color:#ffffff}.wf-ips,.wf-recent-logins,.wf-countries{max-height:30rem;overflow-y:hidden;margin-bottom:20px}.wf-ips .wf-table,.wf-recent-logins .wf-table,.wf-countries .wf-table{margin-bottom:0}.wf-dashboard-last-updated{font-style:italic;font-size:0.6rem;text-align:center;padding-bottom:1rem;margin:0}.wf-dashboard-navigation .wf-block-navigation-option-content{padding:1rem 0 1rem 1rem}@media (min-width: 768px){.wf-dashboard-navigation .wf-block-navigation-option-content{padding:1.5rem 0 1.5rem 1rem}}.wf-dashboard-navigation .wf-block-navigation-option-content h4{margin:0 0 0.25rem 0}.wf-dashboard-navigation .wf-block-navigation-option-content p{margin:0 0 0.45rem 0}.wf-blocks-summary{width:100%;margin:1rem 0;border-spacing:0}.wf-blocks-summary>thead>tr>th,.wf-blocks-summary>tbody>tr>th,.wf-blocks-summary>tr>th{font-weight:600;padding:0.25rem 0.25rem;white-space:nowrap}@media (min-width: 768px){.wf-blocks-summary>thead>tr>th,.wf-blocks-summary>tbody>tr>th,.wf-blocks-summary>tr>th{padding:0.25rem 1rem}}.wf-blocks-summary>thead>tr>th.wf-premium,.wf-blocks-summary>tbody>tr>th.wf-premium,.wf-blocks-summary>tr>th.wf-premium{border-top:2px solid #00709e;border-left:2px solid #00709e;border-right:2px solid #00709e;border-top-left-radius:0.5rem;border-top-right-radius:0.5rem;color:#aaa}.wf-blocks-summary>thead>tr>th,.wf-blocks-summary>tr>th{text-align:center}.wf-blocks-summary>thead>tr>th:first-child,.wf-blocks-summary>tbody>tr>th{text-align:right}.wf-blocks-summary>tbody>tr>td,.wf-blocks-summary>tfoot>tr>td,.wf-blocks-summary>tr>td{text-align:center;padding:0.25rem 0.25rem}@media (min-width: 768px){.wf-blocks-summary>tbody>tr>td,.wf-blocks-summary>tfoot>tr>td,.wf-blocks-summary>tr>td{padding:0.25rem 1rem}}.wf-blocks-summary>tbody>tr>td.wf-premium,.wf-blocks-summary>tfoot>tr>td.wf-premium,.wf-blocks-summary>tr>td.wf-premium{border-left:2px solid #00709e;border-right:2px solid #00709e;color:#aaa}.wf-blocks-summary>tfoot>tr>td.wf-premium,.wf-blocks-summary>tr:last-child>td.wf-premium{border-bottom:2px solid #00709e;border-bottom-left-radius:0.5rem;border-bottom-right-radius:0.5rem;background-color:#00709e;color:#fff}#howGetIPs-trusted-proxies{display:none}ul.wf-option.wf-option-howgetips .wf-option-howgetips-details{display:-webkit-flex;display:flex;-webkit-align-items:flex-start;align-items:flex-start;-webkit-justify-content:flex-start;justify-content:flex-start;-webkit-flex-direction:column;flex-direction:column;font-family:Roboto,"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:0.8rem;margin-top:0.5rem}@media (min-width: 768px){ul.wf-option.wf-option-howgetips .wf-option-howgetips-details{-webkit-align-items:flex-end;align-items:flex-end}}table.wf-table{background-color:transparent;border-collapse:collapse;border-spacing:0}table.wf-table td,table.wf-table th{padding:0}.wf-table caption{padding-top:8px;padding-bottom:8px;color:#777;text-align:left}.wf-table th{text-align:left}.wf-table{width:100%;max-width:100%;margin-bottom:20px}.wf-table>thead>tr>th,.wf-table>thead>tr>td,.wf-table>tbody>tr>th,.wf-table>tbody>tr>td,.wf-table>tfoot>tr>th,.wf-table>tfoot>tr>td{padding:8px;line-height:1.42857;vertical-align:top;border-top:1px solid #ddd}.wf-table>thead>tr>th{vertical-align:bottom;border-bottom:2px solid #ddd}.wf-table>caption+thead>tr:first-child>th,.wf-table>caption+thead>tr:first-child>td,.wf-table>colgroup+thead>tr:first-child>th,.wf-table>colgroup+thead>tr:first-child>td,.wf-table>thead:first-child>tr:first-child>th,.wf-table>thead:first-child>tr:first-child>td{border-top:0}.wf-table>tbody+tbody{border-top:2px solid #ddd}.wf-table .wf-table{background-color:#fff}.wf-table-condensed>thead>tr>th,.wf-table-condensed>thead>tr>td,.wf-table-condensed>tbody>tr>th,.wf-table-condensed>tbody>tr>td,.wf-table-condensed>tfoot>tr>th,.wf-table-condensed>tfoot>tr>td{padding:5px}.wf-table-bordered{border:1px solid #ddd}.wf-table-bordered>thead>tr>th,.wf-table-bordered>thead>tr>td,.wf-table-bordered>tbody>tr>th,.wf-table-bordered>tbody>tr>td,.wf-table-bordered>tfoot>tr>th,.wf-table-bordered>tfoot>tr>td{border:1px solid #ddd}.wf-table-bordered>thead>tr>th,.wf-table-bordered>thead>tr>td{border-bottom-width:2px}.wf-table-striped>tbody>tr:nth-of-type(odd){background-color:#f9f9f9}.wf-table-hover>tbody>tr:hover{background-color:#f5f5f5}table.wf-table col[class*="col-"]{position:static;float:none;display:table-column}table.wf-table td[class*="col-"],table.wf-table th[class*="col-"]{position:static;float:none;display:table-cell}.wf-table>thead>tr>td.active,.wf-table>thead>tr>th.active,.wf-table>thead>tr.active>td,.wf-table>thead>tr.active>th,.wf-table>tbody>tr>td.active,.wf-table>tbody>tr>th.active,.wf-table>tbody>tr.active>td,.wf-table>tbody>tr.active>th,.wf-table>tfoot>tr>td.active,.wf-table>tfoot>tr>th.active,.wf-table>tfoot>tr.active>td,.wf-table>tfoot>tr.active>th{background-color:#f5f5f5}.wf-table-hover>tbody>tr>td.active:hover,.wf-table-hover>tbody>tr>th.active:hover,.wf-table-hover>tbody>tr.active:hover>td,.wf-table-hover>tbody>tr:hover>.active,.wf-table-hover>tbody>tr.active:hover>th{background-color:#e8e8e8}.wf-table>thead>tr>td.success,.wf-table>thead>tr>th.success,.wf-table>thead>tr.success>td,.wf-table>thead>tr.success>th,.wf-table>tbody>tr>td.success,.wf-table>tbody>tr>th.success,.wf-table>tbody>tr.success>td,.wf-table>tbody>tr.success>th,.wf-table>tfoot>tr>td.success,.wf-table>tfoot>tr>th.success,.wf-table>tfoot>tr.success>td,.wf-table>tfoot>tr.success>th{background-color:#dff0d8}.wf-table-hover>tbody>tr>td.success:hover,.wf-table-hover>tbody>tr>th.success:hover,.wf-table-hover>tbody>tr.success:hover>td,.wf-table-hover>tbody>tr:hover>.success,.wf-table-hover>tbody>tr.success:hover>th{background-color:#d0e9c6}.wf-table>thead>tr>td.info,.wf-table>thead>tr>th.info,.wf-table>thead>tr.info>td,.wf-table>thead>tr.info>th,.wf-table>tbody>tr>td.info,.wf-table>tbody>tr>th.info,.wf-table>tbody>tr.info>td,.wf-table>tbody>tr.info>th,.wf-table>tfoot>tr>td.info,.wf-table>tfoot>tr>th.info,.wf-table>tfoot>tr.info>td,.wf-table>tfoot>tr.info>th{background-color:#d9edf7}.wf-table-hover>tbody>tr>td.info:hover,.wf-table-hover>tbody>tr>th.info:hover,.wf-table-hover>tbody>tr.info:hover>td,.wf-table-hover>tbody>tr:hover>.info,.wf-table-hover>tbody>tr.info:hover>th{background-color:#c4e3f3}.wf-table>thead>tr>td.warning,.wf-table>thead>tr>th.warning,.wf-table>thead>tr.warning>td,.wf-table>thead>tr.warning>th,.wf-table>tbody>tr>td.warning,.wf-table>tbody>tr>th.warning,.wf-table>tbody>tr.warning>td,.wf-table>tbody>tr.warning>th,.wf-table>tfoot>tr>td.warning,.wf-table>tfoot>tr>th.warning,.wf-table>tfoot>tr.warning>td,.wf-table>tfoot>tr.warning>th{background-color:#fcf8e3}.wf-table-hover>tbody>tr>td.warning:hover,.wf-table-hover>tbody>tr>th.warning:hover,.wf-table-hover>tbody>tr.warning:hover>td,.wf-table-hover>tbody>tr:hover>.warning,.wf-table-hover>tbody>tr.warning:hover>th{background-color:#faf2cc}.wf-table>thead>tr>td.danger,.wf-table>thead>tr>th.danger,.wf-table>thead>tr.danger>td,.wf-table>thead>tr.danger>th,.wf-table>tbody>tr>td.danger,.wf-table>tbody>tr>th.danger,.wf-table>tbody>tr.danger>td,.wf-table>tbody>tr.danger>th,.wf-table>tfoot>tr>td.danger,.wf-table>tfoot>tr>th.danger,.wf-table>tfoot>tr.danger>td,.wf-table>tfoot>tr.danger>th{background-color:#f2dede}.wf-table-hover>tbody>tr>td.danger:hover,.wf-table-hover>tbody>tr>th.danger:hover,.wf-table-hover>tbody>tr.danger:hover>td,.wf-table-hover>tbody>tr:hover>.danger,.wf-table-hover>tbody>tr.danger:hover>th{background-color:#ebcccc}.wf-table-responsive{overflow-x:auto;min-height:0.01%}@media screen and (max-width: 767px){.wf-table-responsive{width:100%;margin-bottom:15px;overflow-y:hidden;-ms-overflow-style:-ms-autohiding-scrollbar;border:1px solid #ddd}.wf-table-responsive>.wf-table{margin-bottom:0}.wf-table-responsive>.wf-table>thead>tr>th,.wf-table-responsive>.wf-table>thead>tr>td,.wf-table-responsive>.wf-table>tbody>tr>th,.wf-table-responsive>.wf-table>tbody>tr>td,.wf-table-responsive>.wf-table>tfoot>tr>th,.wf-table-responsive>.wf-table>tfoot>tr>td{white-space:nowrap}.wf-table-responsive>.wf-table-bordered{border:0}.wf-table-responsive>.wf-table-bordered>thead>tr>th:first-child,.wf-table-responsive>.wf-table-bordered>thead>tr>td:first-child,.wf-table-responsive>.wf-table-bordered>tbody>tr>th:first-child,.wf-table-responsive>.wf-table-bordered>tbody>tr>td:first-child,.wf-table-responsive>.wf-table-bordered>tfoot>tr>th:first-child,.wf-table-responsive>.wf-table-bordered>tfoot>tr>td:first-child{border-left:0}.wf-table-responsive>.wf-table-bordered>thead>tr>th:last-child,.wf-table-responsive>.wf-table-bordered>thead>tr>td:last-child,.wf-table-responsive>.wf-table-bordered>tbody>tr>th:last-child,.wf-table-responsive>.wf-table-bordered>tbody>tr>td:last-child,.wf-table-responsive>.wf-table-bordered>tfoot>tr>th:last-child,.wf-table-responsive>.wf-table-bordered>tfoot>tr>td:last-child{border-right:0}.wf-table-responsive>.wf-table-bordered>tbody>tr:last-child>th,.wf-table-responsive>.wf-table-bordered>tbody>tr:last-child>td,.wf-table-responsive>.wf-table-bordered>tfoot>tr:last-child>th,.wf-table-responsive>.wf-table-bordered>tfoot>tr:last-child>td{border-bottom:0}}.wf-nav{margin-bottom:0;padding-left:0;list-style:none}.wf-nav:before,.wf-nav:after{content:" ";display:table}.wf-nav:after{clear:both}.wf-nav>li{position:relative;display:block}.wf-nav>li>a{position:relative;display:block;padding:8px 12px}.wf-nav>li>a:hover,.wf-nav>li>a:focus{text-decoration:none;background-color:#e2e2e2}.wf-nav>li.wf-disabled>a{color:#777}.wf-nav>li.wf-disabled>a:hover,.wf-nav>li.wf-disabled>a:focus{color:#777;text-decoration:none;background-color:transparent;cursor:not-allowed}.wf-nav .wf-open>a,.wf-nav .wf-open>a:hover,.wf-nav .wf-open>a:focus{background-color:#e2e2e2;border-color:#00709e}.wf-nav>li>a>img{max-width:none}.wf-nav-tabs{border-bottom:1px solid #d0d0d0}.wf-nav-tabs>li{float:left;margin-bottom:-1px}.wf-nav-tabs>li>a{margin-right:2px;line-height:1.42857;border:1px solid transparent;border-radius:4px 4px 0 0}.wf-nav-tabs>li>a:hover{border-color:#e2e2e2 #e2e2e2 #d0d0d0}.wf-nav-tabs>li.wf-active>a,.wf-nav-tabs>li.wf-active>a:hover,.wf-nav-tabs>li.wf-active>a:focus{color:#555;background-color:#fff;border:1px solid #ddd;border-bottom-color:transparent;cursor:default}.wf-nav-pills>li{float:left}.wf-nav-pills>li>a{border-radius:4px;text-decoration:none;position:relative;display:block;padding:8px 12px}.wf-nav-pills>li>a:hover,.wf-nav-pills>li>a:focus{text-decoration:none !important;background-color:#e2e2e2}.wf-nav-pills>li+li{margin-left:2px}.wf-nav-pills>li.wf-active>a,.wf-nav-pills>li.wf-active>a:hover,.wf-nav-pills>li.wf-active>a:focus{color:#fff;background-color:#00709e}.wf-nav-pills.wf-nav-pills-bordered>li>a{border:1px solid #e2e2e2}.wf-nav-pills.wf-nav-pills-connected>li>a{border-radius:0;border-right-width:0px}.wf-nav-pills.wf-nav-pills-connected>li+li{margin-left:0}.wf-nav-pills.wf-nav-pills-connected>li.active+li>a{border-left-width:0px}.wf-nav-pills.wf-nav-pills-connected>li:first-of-type>a{-moz-border-radius:4px 0 0 4px;-webkit-border-radius:4px;border-radius:4px 0 0 4px}.wf-nav-pills.wf-nav-pills-connected>li:last-of-type>a{-moz-border-radius:0 4px 4px 0;-webkit-border-radius:0;border-radius:0 4px 4px 0;border-right-width:1px}.wf-nav-stacked>li{float:none}.wf-nav-stacked>li+li{margin-top:2px;margin-left:0}.wf-nav-justified,.wf-nav-tabs.wf-nav-justified{width:100%}.wf-nav-justified>li,.wf-nav-tabs.wf-nav-justified>li{float:none}.wf-nav-justified>li>a,.wf-nav-tabs.wf-nav-justified>li>a{text-align:center;margin-bottom:5px}.wf-nav-justified>.wf-dropdown .wf-dropdown-menu{top:auto;left:auto}@media (min-width: 768px){.wf-nav-justified>li,.wf-nav-tabs.wf-nav-justified>li{display:table-cell;width:1%}.wf-nav-justified>li>a,.wf-nav-tabs.wf-nav-justified>li>a{margin-bottom:0}}.wf-nav-tabs-justified,.wf-nav-tabs.wf-nav-justified{border-bottom:0}.wf-nav-tabs-justified>li>a,.wf-nav-tabs.wf-nav-justified>li>a{margin-right:0;border-radius:4px}.wf-nav-tabs-justified>.wf-active>a,.wf-nav-tabs.wf-nav-justified>.wf-active>a,.wf-nav-tabs-justified>.wf-active>a:hover,.wf-nav-tabs.wf-nav-justified>.wf-active>a:hover,.wf-nav-tabs-justified>.wf-active>a:focus,.wf-nav-tabs.wf-nav-justified>.wf-active>a:focus{border:1px solid #ddd}@media (min-width: 768px){.wf-nav-tabs-justified>li>a,.wf-nav-tabs.wf-nav-justified>li>a{border-bottom:1px solid #ddd;border-radius:4px 4px 0 0}.wf-nav-tabs-justified>.wf-active>a,.wf-nav-tabs.wf-nav-justified>.wf-active>a,.wf-nav-tabs-justified>.wf-active>a:hover,.wf-nav-tabs.wf-nav-justified>.wf-active>a:hover,.wf-nav-tabs-justified>.wf-active>a:focus,.wf-nav-tabs.wf-nav-justified>.wf-active>a:focus{border-bottom-color:#fff}}.wf-tab-content>.wf-tab-pane{display:none}.wf-tab-content>.wf-active{display:block}.wf-nav-tabs .wf-dropdown-menu{margin-top:-1px;-moz-border-radius-topleft:0;-webkit-border-top-left-radius:0;border-top-left-radius:0;-moz-border-radius-topright:0;-webkit-border-top-right-radius:0;border-top-right-radius:0}.wf-navbar-brand{float:left;padding:12px 8px;font-size:18px;line-height:20px;margin:10px 0 0 0}.wf-navbar-brand:hover,.wf-navbar-brand:focus{text-decoration:none}.wf-navbar-brand>img{display:block}@media (min-width: 768px){.navbar>.container .wf-navbar-brand,.navbar>.container-fluid .wf-navbar-brand{margin-left:-8px}}.wf-caret{display:inline-block;width:0;height:0;margin-left:2px;vertical-align:middle;border-top:4px dashed;border-top:4px solid \9;border-right:4px solid transparent;border-left:4px solid transparent}.wf-dropup,.wf-dropdown{position:relative}.wf-dropdown-toggle:focus{outline:0}.wf-dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:160px;padding:5px 0;margin:2px 0 0;list-style:none;font-size:14px;text-align:left;background-color:#fff;border:1px solid #ccc;border:1px solid rgba(0,0,0,0.15);border-radius:4px;-webkit-box-shadow:0 6px 12px rgba(0,0,0,0.175);box-shadow:0 6px 12px rgba(0,0,0,0.175);background-clip:padding-box}.wf-dropdown-menu .wf-divider{height:1px;margin:9px 0;overflow:hidden;background-color:#e5e5e5}.wf-dropdown-menu>li>a{display:block;padding:3px 20px;clear:both;font-weight:normal;line-height:1.42857;color:#333;text-decoration:none;white-space:nowrap}.wf-dropdown-menu>li>a:hover,.wf-dropdown-menu>li>a:focus{text-decoration:none;color:#262626;background-color:#f5f5f5}.wf-dropdown-menu>.wf-active>a,.wf-dropdown-menu>.wf-active>a:hover,.wf-dropdown-menu>.wf-active>a:focus{color:#fff;text-decoration:none;outline:0;background-color:#00709e}.wf-dropdown-menu>.wf-disabled>a,.wf-dropdown-menu>.wf-disabled>a:hover,.wf-dropdown-menu>.wf-disabled>a:focus{color:#777}.wf-dropdown-menu>.wf-disabled>a:hover,.wf-dropdown-menu>.wf-disabled>a:focus{text-decoration:none;background-color:transparent;background-image:none;filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);cursor:not-allowed}.wf-open>.wf-dropdown-menu{display:block}.wf-open>a{outline:0}.wf-dropdown-menu-right{left:auto;right:0}.wf-dropdown-menu-left{left:0;right:auto}.wf-dropdown-header{display:block;padding:3px 20px;font-size:12px;line-height:1.42857;color:#777;white-space:nowrap}.wf-dropdown-backdrop{position:fixed;left:0;right:0;bottom:0;top:0;z-index:990}.wf-pull-right>.wf-dropdown-menu{right:0;left:auto}.wf-dropup .wf-caret,.wf-navbar-fixed-bottom .wf-dropdown .wf-caret{border-top:0;border-bottom:4px dashed;border-bottom:4px solid \9;content:""}.wf-dropup .wf-dropdown-menu,.wf-navbar-fixed-bottom .wf-dropdown .wf-dropdown-menu{top:auto;bottom:100%;margin-bottom:2px}@media (min-width: 768px){.wf-navbar-right .wf-dropdown-menu{right:0;left:auto}.wf-navbar-right .wf-dropdown-menu-left{left:0;right:auto}}.wf-mobile-dropdown{border:1px solid #ccc;margin-left:.5em;padding:5px 10px;font-size:14px;line-height:24px;margin:10px 10px 0 0;background:#f1f1f1;color:#000;font-weight:600;text-decoration:none}.wf-blocks-table tbody tr.wf-editing,.wf-blocks-table tbody tr.wf-editing td{background-color:#fffbd8}.wf-blocked-countries-section{display:-webkit-flex;display:flex;-webkit-align-items:center;align-items:center;-webkit-justify-content:flex-start;justify-content:flex-start;-webkit-align-content:stretch;align-content:stretch;-webkit-flex-wrap:nowrap;flex-wrap:nowrap}.wf-blocked-countries-section-title{font-size:1.1rem;padding-right:0.5rem}.wf-blocked-countries-section-spacer{-webkit-flex-basis:30px;flex-basis:30px;height:1px;background:#aaa}.wf-blocked-countries-section-options{margin-bottom:0;margin-top:0;padding-left:0.5rem;list-style:none;display:-webkit-flex;display:flex;-webkit-align-items:center;align-items:center;-webkit-justify-content:flex-start;justify-content:flex-start;-webkit-align-content:stretch;align-content:stretch;-webkit-flex-wrap:nowrap;flex-wrap:nowrap}.wf-blocked-countries-section-options li{padding:0;margin:0;color:#777}.wf-blocked-countries-section-options li a{padding:2px 4px;text-decoration:none;color:#777}.wf-blocked-countries-section-options li a.active-section{background-color:#777;color:#e2e2e2}.wf-option-bypass-redirect .wf-option-title,.wf-option-bypass-cookie .wf-option-title{-webkit-align-self:flex-start;align-self:flex-start}.wf-option-bypass-redirect *,.wf-option-bypass-cookie *{-webkit-flex-grow:1;flex-grow:1}.wf-option-bypass-redirect *:first-child,.wf-option-bypass-cookie *:first-child{-webkit-flex-grow:0;flex-grow:0}.wf-option-bypass-redirect>*:last-child,.wf-option-bypass-cookie>*:last-child{margin-right:1rem}.wf-country-block-map{width:300px}@media (min-width: 768px){.wf-country-block-map{width:500px}}@media (min-width: 992px){.wf-country-block-map{width:700px}}@media (min-width: 1200px){.wf-country-block-map{width:700px}}#wf-create-block{width:100%}#wf-create-block th{white-space:nowrap}#wf-create-block td{width:100%}#wf-create-block td.wf-block-type{width:auto}@media (min-width: 768px){#wf-create-block{width:500px}}@media (min-width: 992px){#wf-create-block{width:700px}}@media (min-width: 1200px){#wf-create-block{width:700px}}#wf-create-block .wf-block-add-country select{width:240px}@media (min-width: 768px){#wf-create-block .wf-block-add-country select{width:280px}}@media (min-width: 992px){#wf-create-block .wf-block-add-country select{width:320px}}#wf-create-block .wf-block-add-country .select2-container--default,#wf-create-block .wf-block-add-country .select2-container--default .select2-selection--multiple{border-color:#e2e2e2}#wf-create-block .wf-block-add-country .select2-container--default .select2-selection__choice,#wf-create-block .wf-block-add-country .select2-container--default .select2-selection--multiple .select2-selection__choice{background-color:#ffffff;border-color:#e2e2e2;padding:0.5rem}#wf-create-block .wf-block-add-country .select2-container--default .select2-search__field,#wf-create-block .wf-block-add-country .select2-container--default .select2-selection--multiple .select2-search__field{margin-right:5px;margin-top:5px;padding:0.5rem 0}#wfcolorbox .wf-country-selector-controls,.wf-drawer .wf-country-selector-controls{display:-webkit-flex;display:flex;-webkit-align-items:center;align-items:center;-webkit-justify-content:space-between;justify-content:space-between;-webkit-align-content:stretch;align-content:stretch;-webkit-flex-wrap:nowrap;flex-wrap:nowrap;-webkit-flex-shrink:0;flex-shrink:0}#wfcolorbox .wf-country-selector-controls .wf-country-selector-section-options,.wf-drawer .wf-country-selector-controls .wf-country-selector-section-options{display:-webkit-flex;display:flex;-webkit-align-items:center;align-items:center;-webkit-justify-content:space-between;justify-content:space-between;-webkit-align-content:stretch;align-content:stretch;-webkit-flex-wrap:nowrap;flex-wrap:nowrap}#wfcolorbox .wf-country-selector-controls .wf-country-selector-section-options>li,.wf-drawer .wf-country-selector-controls .wf-country-selector-section-options>li{border:1px solid #ffffff;border-radius:4px;padding:0.25rem;background-color:#ffffff}#wfcolorbox .wf-country-selector-controls .wf-country-selector-section-options>li:hover,#wfcolorbox .wf-country-selector-controls .wf-country-selector-section-options>li:focus,.wf-drawer .wf-country-selector-controls .wf-country-selector-section-options>li:hover,.wf-drawer .wf-country-selector-controls .wf-country-selector-section-options>li:focus{background-color:#00709e;border-color:#00709e}#wfcolorbox .wf-country-selector-controls .wf-country-selector-section-options>li:hover>a,#wfcolorbox .wf-country-selector-controls .wf-country-selector-section-options>li:focus>a,.wf-drawer .wf-country-selector-controls .wf-country-selector-section-options>li:hover>a,.wf-drawer .wf-country-selector-controls .wf-country-selector-section-options>li:focus>a{color:#ffffff}#wfcolorbox .wf-country-selector-controls .wf-country-selector-section-options>li>a,.wf-drawer .wf-country-selector-controls .wf-country-selector-section-options>li>a{text-decoration:none;color:#525355}#wfcolorbox .wf-country-selector-options .wf-blocked-countries,.wf-drawer .wf-country-selector-options .wf-blocked-countries{margin-bottom:0;margin-top:1rem;list-style:none;margin-left:-6px;display:-webkit-flex;display:flex;-webkit-align-items:stretch;align-items:stretch;-webkit-justify-content:flex-start;justify-content:flex-start;-webkit-align-content:stretch;align-content:stretch;-webkit-flex-wrap:wrap;flex-wrap:wrap}#wfcolorbox .wf-country-selector-options .wf-blocked-countries>li,.wf-drawer .wf-country-selector-options .wf-blocked-countries>li{display:-webkit-flex;display:flex;-webkit-align-items:center;align-items:center;-webkit-justify-content:center;justify-content:center;margin:0px 0px 2px 6px;text-align:center;border:1px solid #e2e2e2;border-radius:4px;padding:8px 12px;background-color:#ffffff;-webkit-flex-basis:38%;flex-basis:38%}@media (min-width: 768px){#wfcolorbox .wf-country-selector-options .wf-blocked-countries>li,.wf-drawer .wf-country-selector-options .wf-blocked-countries>li{-webkit-flex-basis:20%;flex-basis:20%}}@media (min-width: 992px){#wfcolorbox .wf-country-selector-options .wf-blocked-countries>li,.wf-drawer .wf-country-selector-options .wf-blocked-countries>li{-webkit-flex-basis:15%;flex-basis:15%}}@media (min-width: 1200px){#wfcolorbox .wf-country-selector-options .wf-blocked-countries>li,.wf-drawer .wf-country-selector-options .wf-blocked-countries>li{-webkit-flex-basis:10%;flex-basis:10%}}#wfcolorbox .wf-country-selector-options .wf-blocked-countries>li:hover,#wfcolorbox .wf-country-selector-options .wf-blocked-countries>li:focus,.wf-drawer .wf-country-selector-options .wf-blocked-countries>li:hover,.wf-drawer .wf-country-selector-options .wf-blocked-countries>li:focus{text-decoration:none;background-color:#e2e2e2}#wfcolorbox .wf-country-selector-options .wf-blocked-countries>li.disabled>a,.wf-drawer .wf-country-selector-options .wf-blocked-countries>li.disabled>a{color:#777}#wfcolorbox .wf-country-selector-options .wf-blocked-countries>li.disabled>a:hover,#wfcolorbox .wf-country-selector-options .wf-blocked-countries>li.disabled>a:focus,.wf-drawer .wf-country-selector-options .wf-blocked-countries>li.disabled>a:hover,.wf-drawer .wf-country-selector-options .wf-blocked-countries>li.disabled>a:focus{color:#777;text-decoration:none;background-color:transparent;cursor:not-allowed}#wfcolorbox .wf-country-selector-options .wf-blocked-countries>li>a,.wf-drawer .wf-country-selector-options .wf-blocked-countries>li>a{text-decoration:none;position:relative;display:block}#wfcolorbox .wf-country-selector-options .wf-blocked-countries>li.wf-active,#wfcolorbox .wf-country-selector-options .wf-blocked-countries>li.wf-active:hover,#wfcolorbox .wf-country-selector-options .wf-blocked-countries>li.wf-active:focus,.wf-drawer .wf-country-selector-options .wf-blocked-countries>li.wf-active,.wf-drawer .wf-country-selector-options .wf-blocked-countries>li.wf-active:hover,.wf-drawer .wf-country-selector-options .wf-blocked-countries>li.wf-active:focus{background-color:#00709e;border-color:#00709e}#wfcolorbox .wf-country-selector-options .wf-blocked-countries>li.wf-active>a,#wfcolorbox .wf-country-selector-options .wf-blocked-countries>li.wf-active:hover>a,#wfcolorbox .wf-country-selector-options .wf-blocked-countries>li.wf-active:focus>a,.wf-drawer .wf-country-selector-options .wf-blocked-countries>li.wf-active>a,.wf-drawer .wf-country-selector-options .wf-blocked-countries>li.wf-active:hover>a,.wf-drawer .wf-country-selector-options .wf-blocked-countries>li.wf-active:focus>a{color:#fff}#wfcolorbox .wf-country-selector-options .wf-blocked-countries>li.text-only,.wf-drawer .wf-country-selector-options .wf-blocked-countries>li.text-only{position:relative;display:block;padding:8px 12px}#wfcolorbox .wf-country-selector-options .wf-blocked-countries>li>a>img,.wf-drawer .wf-country-selector-options .wf-blocked-countries>li>a>img{max-width:none}.wf-tag-selected{background-color:#ffffff;border:1px solid #e2e2e2;border-radius:4px;cursor:default;float:left;margin-right:5px !important;margin-top:5px !important;list-style:none;padding:0.5rem !important}.wf-destroy-tag-selected{color:#999;cursor:pointer;display:inline-block;font-weight:bold;margin-right:2px}.wf-destroy-tag-selected:hover{text-decoration:none}.wf-tags-show-hide-more{float:left;margin-right:5px;margin-top:5px;list-style:none;padding:0.5rem}.wf-select2-hide-tags .select2-selection__choice{display:none}.wf-country-selector-outer-wrapper{position:relative;-webkit-flex-grow:1;flex-grow:1}.wf-country-selector-outer-wrapper .wf-country-selector-inner-wrapper{position:absolute;top:0px;right:0px;bottom:0px;left:0px;overflow-x:hidden;overflow-y:auto}table.wf-dataTable{width:auto;max-width:800px;clear:both;border-collapse:collapse;border-spacing:0}table.wf-dataTable>thead th,table.wf-dataTable>tfoot th{font-weight:bold}table.wf-dataTable>thead th,table.wf-dataTable>thead td{cursor:pointer;text-align:left;font-size:11px;border:1px solid #ccc;padding:8px 4px 5px 9px;text-transform:uppercase}table.wf-dataTable>thead th:active,table.wf-dataTable>thead td:active{outline:none}table.wf-dataTable>tfoot th,table.wf-dataTable>tfoot td{padding:10px 18px 6px 18px;border-top:1px solid #111}table.wf-dataTable>thead .sorting,table.wf-dataTable>thead .sorting_asc,table.wf-dataTable>thead .sorting_desc{cursor:pointer;*cursor:hand}table.wf-dataTable>thead .sorting,table.wf-dataTable>thead .sorting_asc,table.wf-dataTable>thead .sorting_desc,table.wf-dataTable>thead .sorting_asc_disabled,table.wf-dataTable>thead .sorting_desc_disabled{background-repeat:no-repeat;background-position:center right}table.wf-dataTable>thead .sorting{background-image:url(../images/sort_both.png)}table.wf-dataTable>thead .sorting_asc{background-image:url(../images/sort_asc.png)}table.wf-dataTable>thead .sorting_desc{background-image:url(../images/sort_desc.png)}table.wf-dataTable>thead .sorting_asc_disabled{background-image:url(../images/sort_asc_disabled.png)}table.wf-dataTable>thead .sorting_desc_disabled{background-image:url(../images/sort_desc_disabled.png)}table.wf-dataTable>tbody>tr{background-color:#ffffff}table.wf-dataTable>tbody>tr.selected{background-color:#B0BED9}table.wf-dataTable>tbody>tr>th,table.wf-dataTable>tbody>tr>td{padding:5px 8px}table.wf-dataTable.row-border>tbody>tr>th,table.wf-dataTable.row-border>tbody>tr>td,table.wf-dataTable.display>tbody>tr>th,table.wf-dataTable.display>tbody>tr>td{border:1px solid #cccccc}table.wf-dataTable.row-border>tbody>tr:first-child>th,table.wf-dataTable.row-border>tbody>tr:first-child>td,table.wf-dataTable.display>tbody>tr:first-child>th,table.wf-dataTable.display>tbody>tr:first-child>td{border-top:none}table.wf-dataTable.cell-border>tbody>tr>th,table.wf-dataTable.cell-border>tbody>tr>td{border-top:1px solid #ddd;border-right:1px solid #ddd}table.wf-dataTable.cell-border>tbody>tr>th:first-child,table.wf-dataTable.cell-border>tbody>tr>td:first-child{border-left:1px solid #ddd}table.wf-dataTable.cell-border>tbody>tr:first-child>th,table.wf-dataTable.cell-border>tbody>tr:first-child>td{border-top:none}table.wf-dataTable.stripe>tbody>tr.odd,table.wf-dataTable.display>tbody>tr.odd{background-color:#f9f9f9}table.wf-dataTable.stripe>tbody>tr.odd.selected,table.wf-dataTable.display>tbody>tr.odd.selected{background-color:#acbad4}table.wf-dataTable.hover>tbody>tr:hover,table.wf-dataTable.display>tbody>tr:hover{background-color:#f6f6f6}table.wf-dataTable.hover>tbody>tr:hover.selected,table.wf-dataTable.display>tbody>tr:hover.selected{background-color:#aab7d1}table.wf-dataTable.order-column>tbody>tr>.sorting_1,table.wf-dataTable.order-column>tbody>tr>.sorting_2,table.wf-dataTable.order-column>tbody>tr>.sorting_3,table.wf-dataTable.display tbody>tr>.sorting_1,table.wf-dataTable.display>tbody>tr>.sorting_2,table.wf-dataTable.display>tbody>tr>.sorting_3{background-color:#fafafa}table.wf-dataTable.order-column>tbody>tr.selected>.sorting_1,table.wf-dataTable.order-column>tbody>tr.selected>.sorting_2,table.wf-dataTable.order-column>tbody>tr.selected>.sorting_3,table.wf-dataTable.display>tbody>tr.selected>.sorting_1,table.wf-dataTable.display>tbody>tr.selected>.sorting_2,table.wf-dataTable.display>tbody>tr.selected>.sorting_3{background-color:#acbad5}table.wf-dataTable.display>tbody>tr.odd>.sorting_1,table.wf-dataTable.order-column.stripe>tbody>tr.odd>.sorting_1{background-color:#f1f1f1}table.wf-dataTable.display>tbody>tr.odd>.sorting_2,table.wf-dataTable.order-column.stripe>tbody>tr.odd>.sorting_2{background-color:#f3f3f3}table.wf-dataTable.display>tbody>tr.odd>.sorting_3,table.wf-dataTable.order-column.stripe>tbody>tr.odd>.sorting_3{background-color:whitesmoke}table.wf-dataTable.display>tbody>tr.odd.selected>.sorting_1,table.wf-dataTable.order-column.stripe>tbody>tr.odd.selected>.sorting_1{background-color:#a6b4cd}table.wf-dataTable.display>tbody>tr.odd.selected>.sorting_2,table.wf-dataTable.order-column.stripe>tbody>tr.odd.selected>.sorting_2{background-color:#a8b5cf}table.wf-dataTable.display>tbody>tr.odd.selected>.sorting_3,table.wf-dataTable.order-column.stripe>tbody>tr.odd.selected>.sorting_3{background-color:#a9b7d1}table.wf-dataTable.display>tbody>tr.even>.sorting_1,table.wf-dataTable.order-column.stripe>tbody>tr.even>.sorting_1{background-color:#fafafa}table.wf-dataTable.display>tbody>tr.even>.sorting_2,table.wf-dataTable.order-column.stripe>tbody>tr.even>.sorting_2{background-color:#fcfcfc}table.wf-dataTable.display>tbody>tr.even>.sorting_3,table.wf-dataTable.order-column.stripe>tbody>tr.even>.sorting_3{background-color:#fefefe}table.wf-dataTable.display>tbody>tr.even.selected>.sorting_1,table.wf-dataTable.order-column.stripe>tbody>tr.even.selected>.sorting_1{background-color:#acbad5}table.wf-dataTable.display>tbody>tr.even.selected>.sorting_2,table.wf-dataTable.order-column.stripe>tbody>tr.even.selected>.sorting_2{background-color:#aebcd6}table.wf-dataTable.display>tbody>tr.even.selected>.sorting_3,table.wf-dataTable.order-column.stripe>tbody>tr.even.selected>.sorting_3{background-color:#afbdd8}table.wf-dataTable.display>tbody>tr:hover>.sorting_1,table.wf-dataTable.order-column.hover>tbody>tr:hover>.sorting_1{background-color:#eaeaea}table.wf-dataTable.display>tbody>tr:hover>.sorting_2,table.wf-dataTable.order-column.hover>tbody>tr:hover>.sorting_2{background-color:#ececec}table.wf-dataTable.display>tbody>tr:hover>.sorting_3,table.wf-dataTable.order-column.hover>tbody>tr:hover>.sorting_3{background-color:#efefef}table.wf-dataTable.display>tbody>tr:hover.selected>.sorting_1,table.wf-dataTable.order-column.hover>tbody>tr:hover.selected>.sorting_1{background-color:#a2aec7}table.wf-dataTable.display>tbody>tr:hover.selected>.sorting_2,table.wf-dataTable.order-column.hover>tbody>tr:hover.selected>.sorting_2{background-color:#a3b0c9}table.wf-dataTable.display>tbody>tr:hover.selected>.sorting_3,table.wf-dataTable.order-column.hover>tbody>tr:hover.selected>.sorting_3{background-color:#a5b2cb}table.wf-dataTable.no-footer{border-bottom:1px solid #111}table.wf-dataTable.nowrap th,table.wf-dataTable.nowrap td{white-space:nowrap}table.wf-dataTable.compact thead th,table.wf-dataTable.compact thead td{padding:4px 17px 4px 4px}table.wf-dataTable.compact tfoot th,table.wf-dataTable.compact tfoot td{padding:4px}table.wf-dataTable.compact>tbody>tr>th,table.wf-dataTable.compact>tbody>tr>td{padding:4px}table.wf-dataTable th.dt-left,table.wf-dataTable td.dt-left{text-align:left}table.wf-dataTable th.dt-center,table.wf-dataTable td.dt-center,table.wf-dataTable td.dataTables_empty{text-align:center}table.wf-dataTable th.dt-right,table.wf-dataTable td.dt-right{text-align:right}table.wf-dataTable th.dt-justify,table.wf-dataTable td.dt-justify{text-align:justify}table.wf-dataTable th.dt-nowrap,table.wf-dataTable td.dt-nowrap{white-space:nowrap}table.wf-dataTable thead th.dt-head-left,table.wf-dataTable thead td.dt-head-left,table.wf-dataTable tfoot th.dt-head-left,table.wf-dataTable tfoot td.dt-head-left{text-align:left}table.wf-dataTable thead th.dt-head-center,table.wf-dataTable thead td.dt-head-center,table.wf-dataTable tfoot th.dt-head-center,table.wf-dataTable tfoot td.dt-head-center{text-align:center}table.wf-dataTable thead th.dt-head-right,table.wf-dataTable thead td.dt-head-right,table.wf-dataTable tfoot th.dt-head-right,table.wf-dataTable tfoot td.dt-head-right{text-align:right}table.wf-dataTable thead th.dt-head-justify,table.wf-dataTable thead td.dt-head-justify,table.wf-dataTable tfoot th.dt-head-justify,table.wf-dataTable tfoot td.dt-head-justify{text-align:justify}table.wf-dataTable thead th.dt-head-nowrap,table.wf-dataTable thead td.dt-head-nowrap,table.wf-dataTable tfoot th.dt-head-nowrap,table.wf-dataTable tfoot td.dt-head-nowrap{white-space:nowrap}table.wf-dataTable>tbody>tr>th.dt-body-left,table.wf-dataTable>tbody>tr>td.dt-body-left{text-align:left}table.wf-dataTable>tbody>tr>th.dt-body-center,table.wf-dataTable>tbody>tr>td.dt-body-center{text-align:center}table.wf-dataTable>tbody>tr>th.dt-body-right,table.wf-dataTable>tbody>tr>td.dt-body-right{text-align:right}table.wf-dataTable>tbody>tr>th.dt-body-justify,table.wf-dataTable>tbody>tr>td.dt-body-justify{text-align:justify}table.wf-dataTable>tbody>tr>th.dt-body-nowrap,table.wf-dataTable>tbody>tr>td.dt-body-nowrap{white-space:nowrap}table.wf-dataTable table.dataTable,table.wf-dataTable th,table.wf-dataTable td{-webkit-box-sizing:content-box;box-sizing:content-box}.wf-dataTables_wrapper{position:relative;clear:both;*zoom:1;zoom:1}.wf-dataTables_wrapper .dataTables_length{float:left}.wf-dataTables_wrapper .dataTables_filter{float:right;text-align:right}.wf-dataTables_wrapper .dataTables_filter input{margin-left:0.5em}.wf-dataTables_wrapper .dataTables_info{clear:both;float:left;padding-top:0.755em}.wf-dataTables_wrapper .dataTables_paginate{float:right;text-align:right;padding-top:0.25em}.wf-dataTables_wrapper .dataTables_paginate .paginate_button{box-sizing:border-box;display:inline-block;min-width:1.5em;padding:0.5em 1em;margin-left:2px;text-align:center;text-decoration:none !important;cursor:pointer;*cursor:hand;color:#333 !important;border:1px solid transparent;border-radius:2px}.wf-dataTables_wrapper .dataTables_paginate .paginate_button.current,.wf-dataTables_wrapper .dataTables_paginate .paginate_button.current:hover{color:#333 !important;border:1px solid #979797;background-color:white;background:-webkit-gradient(linear, left top, left bottom, color-stop(0%, #fff), color-stop(100%, #dcdcdc));background:-webkit-linear-gradient(top, #fff 0%, #dcdcdc 100%);background:-moz-linear-gradient(top, #fff 0%, #dcdcdc 100%);background:-ms-linear-gradient(top, #fff 0%, #dcdcdc 100%);background:-o-linear-gradient(top, #fff 0%, #dcdcdc 100%);background:linear-gradient(to bottom, #ffffff 0%,#dcdcdc 100%)}.wf-dataTables_wrapper .dataTables_paginate .paginate_button.disabled,.wf-dataTables_wrapper .dataTables_paginate .paginate_button.disabled:hover,.wf-dataTables_wrapper .dataTables_paginate .paginate_button.disabled:active{cursor:default;color:#666 !important;border:1px solid transparent;background:transparent;box-shadow:none}.wf-dataTables_wrapper .dataTables_paginate .paginate_button:hover{color:white !important;border:1px solid #111;background-color:#585858;background:-webkit-gradient(linear, left top, left bottom, color-stop(0%, #585858), color-stop(100%, #111));background:-webkit-linear-gradient(top, #585858 0%, #111 100%);background:-moz-linear-gradient(top, #585858 0%, #111 100%);background:-ms-linear-gradient(top, #585858 0%, #111 100%);background:-o-linear-gradient(top, #585858 0%, #111 100%);background:linear-gradient(to bottom, #585858 0%,#111111 100%)}.wf-dataTables_wrapper .dataTables_paginate .paginate_button:active{outline:none;background-color:#2b2b2b;background:-webkit-gradient(linear, left top, left bottom, color-stop(0%, #2b2b2b), color-stop(100%, #0c0c0c));background:-webkit-linear-gradient(top, #2b2b2b 0%, #0c0c0c 100%);background:-moz-linear-gradient(top, #2b2b2b 0%, #0c0c0c 100%);background:-ms-linear-gradient(top, #2b2b2b 0%, #0c0c0c 100%);background:-o-linear-gradient(top, #2b2b2b 0%, #0c0c0c 100%);background:linear-gradient(to bottom, #2b2b2b 0%,#0c0c0c 100%);box-shadow:inset 0 0 3px #111}.wf-dataTables_wrapper .dataTables_paginate .ellipsis{padding:0 1em}.wf-dataTables_wrapper .dataTables_processing{position:absolute;top:50%;left:50%;width:100%;height:40px;margin-left:-50%;margin-top:-25px;padding-top:20px;text-align:center;font-size:1.2em;background-color:white;background:-webkit-gradient(linear, left top, right top, color-stop(0%, rgba(255,255,255,0)), color-stop(25%, rgba(255,255,255,0.9)), color-stop(75%, rgba(255,255,255,0.9)), color-stop(100%, rgba(255,255,255,0)));background:-webkit-linear-gradient(left, rgba(255,255,255,0) 0%, rgba(255,255,255,0.9) 25%, rgba(255,255,255,0.9) 75%, rgba(255,255,255,0) 100%);background:-moz-linear-gradient(left, rgba(255,255,255,0) 0%, rgba(255,255,255,0.9) 25%, rgba(255,255,255,0.9) 75%, rgba(255,255,255,0) 100%);background:-ms-linear-gradient(left, rgba(255,255,255,0) 0%, rgba(255,255,255,0.9) 25%, rgba(255,255,255,0.9) 75%, rgba(255,255,255,0) 100%);background:-o-linear-gradient(left, rgba(255,255,255,0) 0%, rgba(255,255,255,0.9) 25%, rgba(255,255,255,0.9) 75%, rgba(255,255,255,0) 100%);background:linear-gradient(to right, rgba(255,255,255,0) 0%,rgba(255,255,255,0.9) 25%,rgba(255,255,255,0.9) 75%,rgba(255,255,255,0) 100%)}.wf-dataTables_wrapper .dataTables_length,.wf-dataTables_wrapper .dataTables_filter,.wf-dataTables_wrapper .dataTables_info,.wf-dataTables_wrapper .dataTables_processing,.wf-dataTables_wrapper .dataTables_paginate{color:#333}.wf-dataTables_wrapper .dataTables_scroll{clear:both}.wf-dataTables_wrapper .dataTables_scroll div.dataTables_scrollBody{*margin-top:-1px;-webkit-overflow-scrolling:touch}.wf-dataTables_wrapper .dataTables_scroll div.dataTables_scrollBody th,.wf-dataTables_wrapper .dataTables_scroll div.dataTables_scrollBody td{vertical-align:middle}.wf-dataTables_wrapper .dataTables_scroll div.dataTables_scrollBody th>div.dataTables_sizing,.wf-dataTables_wrapper .dataTables_scroll div.dataTables_scrollBody td>div.dataTables_sizing{height:0;overflow:hidden;margin:0 !important;padding:0 !important}.wf-dataTables_wrapper.no-footer .dataTables_scrollBody{border-bottom:1px solid #111}.wf-dataTables_wrapper.no-footer div.dataTables_scrollHead table,.wf-dataTables_wrapper.no-footer div.dataTables_scrollBody table{border-bottom:none}.wf-dataTables_wrapper:after{visibility:hidden;display:block;content:"";clear:both;height:0}@media screen and (max-width: 767px){.wf-dataTables_wrapper .dataTables_info,.wf-dataTables_wrapper .dataTables_paginate{float:none;text-align:center}.wf-dataTables_wrapper .dataTables_paginate{margin-top:0.5em}}@media screen and (max-width: 640px){.wf-dataTables_wrapper .dataTables_length,.wf-dataTables_wrapper .dataTables_filter{float:none;text-align:center}.wf-dataTables_wrapper .dataTables_filter{margin-top:0.5em}}.wf-alert{padding:15px;margin-bottom:20px;border:1px solid transparent;border-radius:4px}.wf-alert h4{margin-top:0;color:inherit}.wf-alert .wf-alert-link{font-weight:bold}.wf-alert>p,.wf-alert>ul{margin-bottom:0}.wf-alert>p+p{margin-top:5px}.wf-alert-dismissable,.wf-alert-dismissible{padding-right:35px}.wf-alert-dismissable .close,.wf-alert-dismissible .close{position:relative;top:-2px;right:-21px;color:inherit}.wf-alert-success{background-color:#dff0d8;border-color:#d6e9c6;color:#3c763d}.wf-alert-success hr{border-top-color:#c9e2b3}.wf-alert-success .alert-link{color:#2b542c}.wf-alert-info{background-color:#d9edf7;border-color:#bce8f1;color:#31708f}.wf-alert-info hr{border-top-color:#a6e1ec}.wf-alert-info .alert-link{color:#245269}.wf-alert-warning{background-color:#fcf8e3;border-color:#faebcc;color:#8a6d3b}.wf-alert-warning hr{border-top-color:#f7e1b5}.wf-alert-warning .alert-link{color:#66512c}.wf-alert-danger{background-color:#f2dede;border-color:#ebccd1;color:#a94442}.wf-alert-danger hr{border-top-color:#e4b9c0}.wf-alert-danger .alert-link{color:#843534}#wf-tools-password-audit .wf-premium-callout img{max-width:800px;margin:20px 0 0}#wf-tools-whois #wfrawhtml .wf-flex-row{margin:.5rem 0 1rem}#wf-tools-whois #wfrawhtml .wf-flex-row a.wf-flex-row-1{color:#444;text-decoration:none}#wf-tools-whois #wfrawhtml .wf-flex-row a.wf-flex-row-1:hover{color:#00a0d2;text-decoration:underline}.wf-diagnostic-fail.wf-block .wf-block-header .wf-block-header-content .wf-block-title{color:#d0514c}.wf-diagnostic-fail.wf-block .wf-block-header .wf-block-header-content .wf-block-title:before{content:'\f100';font-family:"Ionicons";display:inline-block;margin:0 .4rem 0 0}#wf-diagnostics .wf-block{margin:0 auto 0.5rem}#wf-diagnostics-other-tests .wf-btn-sm,#wf-diagnostics-other-tests .wf-btn-group-sm>.wf-btn{padding:2px 10px;vertical-align:top}#wfAdvancedCommentScanningOption .wf-premium-link{display:none}.wf-support-block{padding:1rem 0}.wf-support-block>h4{margin:0;padding:0 0 1rem 0}.wf-support-block>h4>a{text-decoration:none;font-size:1.3125rem;line-height:1.5;font-weight:300}.wf-support-block>p{margin:0;padding:0}.wf-support-block>ul{display:-webkit-flex;display:flex;-webkit-align-items:center;align-items:center;-webkit-justify-content:flex-start;justify-content:flex-start;-webkit-flex-direction:row;flex-direction:row;-webkit-flex-wrap:wrap;flex-wrap:wrap;margin:0;padding:0}.wf-support-block>ul>li{margin:0;padding:1rem 1rem 1rem 0}.wf-support-block>ul>li>a{text-decoration:none;font-size:.875rem;line-height:1.3125;font-weight:normal}.wf-support-top-block,.wf-support-missing-block{padding:1.5rem 0}.wf-support-top-block>h4,.wf-support-missing-block>h4{margin:0;padding:0}.wf-support-top-block>ol>li,.wf-support-missing-block>ol>li{margin:0.75rem 0;padding:0}.wf-support-top-block>ol>li>a,.wf-support-missing-block>ol>li>a{text-decoration:none;font-size:.875rem;line-height:1.3125;font-weight:normal}
|
css/{phpinfo.1517414961.css → phpinfo.1518460764.css}
RENAMED
File without changes
|
css/{select2.min.1517414961.css → select2.min.1518460764.css}
RENAMED
File without changes
|
css/{wf-adminbar.1517414961.css → wf-adminbar.1518460764.css}
RENAMED
File without changes
|
css/{wf-colorbox.1517414961.css → wf-colorbox.1518460764.css}
RENAMED
File without changes
|
css/{wf-font-awesome.1517414961.css → wf-font-awesome.1518460764.css}
RENAMED
File without changes
|
css/{wf-ionicons.1517414961.css → wf-ionicons.1518460764.css}
RENAMED
File without changes
|
css/wf-onboarding.1517414961.css
DELETED
@@ -1 +0,0 @@
|
|
1 |
-
#wordfenceWorking{padding:10px 40px 6px 16px;z-index:100000;position:fixed;left:180px;bottom:0px;background-color:#fcb214;border:5px solid #fcb214;border-width:6px 15px 6px 6px;color:#525355;font-size:12px;font-weight:bold;font-family:Roboto,"Helvetica Neue",Helvetica,Arial,sans-serif;background-image:url("../images/icons/working-indicator.gif");background-position:100% 50%;background-repeat:no-repeat}@media (max-width: 960px){#wordfenceWorking{left:auto;right:0}}.wf-padding-add-left{padding-left:1rem !important}.wf-padding-add-left-small{padding-left:0.5rem !important}.wf-padding-add-left-large{padding-left:1.5rem !important}.wf-onboarding-flex-horizontal{display:-webkit-flex !important;display:flex !important;-webkit-align-items:center !important;align-items:center !important;-webkit-justify-content:flex-start !important;justify-content:flex-start !important;-webkit-flex-direction:row !important;flex-direction:row !important}.wf-onboarding-flex-horizontal>*:first-child{-webkit-flex-grow:0 !important;flex-grow:0 !important}.wf-onboarding-flex-horizontal.wf-onboarding-flex-align-left{-webkit-align-items:flex-start !important;align-items:flex-start !important}.wf-onboarding-flex-horizontal.wf-onboarding-flex-align-right{-webkit-justify-content:flex-end !important;justify-content:flex-end !important}.wf-onboarding-flex-horizontal.wf-onboarding-full-width{width:100%}.wf-onboarding-flex-horizontal>li{padding:0;margin:0}#wf-onboarding-plugin-overlay{position:absolute;top:0px;right:0px;bottom:0px;left:160px;background-color:rgba(241,241,241,0.9);z-index:9980;padding:5rem 0;display:-webkit-flex;display:flex;-webkit-align-items:center;align-items:center;-webkit-justify-content:flex-start;justify-content:flex-start;-webkit-flex-direction:column;flex-direction:column}#wf-onboarding-tour-overlay{position:absolute;top:0px;right:0px;bottom:0px;left:160px;background-color:rgba(0,0,0,0.3);z-index:9980;padding:5rem 0;display:-webkit-flex;display:flex;-webkit-align-items:center;align-items:center;-webkit-justify-content:flex-start;justify-content:flex-start;-webkit-flex-direction:column;flex-direction:column}.folded #wf-onboarding-plugin-overlay,.folded #wf-onboarding-tour-overlay{left:36px}@media only screen and (max-width: 960px){.auto-fold #wf-onboarding-plugin-overlay,.auto-fold #wf-onboarding-tour-overlay{left:36px}}.rtl #wf-onboarding-plugin-overlay,.rtl #wf-onboarding-tour-overlay{right:160px;left:0px}.rtl .folded #wf-onboarding-plugin-overlay,.rtl .folded #wf-onboarding-tour-overlay{right:36px}@media only screen and (max-width: 960px){.rtl .auto-fold #wf-onboarding-plugin-overlay,.rtl .auto-fold #wf-onboarding-tour-overlay{right:36px}}@media screen and (max-width: 782px){#wf-onboarding-plugin-overlay,.folded #wf-onboarding-plugin-overlay,.auto-fold #wf-onboarding-plugin-overlay,.rtl #wf-onboarding-plugin-overlay,.rtl .folded #wf-onboarding-plugin-overlay,.rtl .auto-fold #wf-onboarding-plugin-overlay,#wf-onboarding-tour-overlay,.folded #wf-onboarding-tour-overlay,.auto-fold #wf-onboarding-tour-overlay,.rtl #wf-onboarding-tour-overlay,.rtl .folded #wf-onboarding-tour-overlay,.rtl .auto-fold #wf-onboarding-tour-overlay{left:0px;right:0px}}#wf-onboarding-dismiss{width:44px;height:44px;display:block;position:absolute;right:0px;top:0px;text-align:center;line-height:44px;font-size:1.35rem;color:#9f9fa0;text-decoration:none;z-index:9981}#wf-onboarding-dismiss:hover{color:#00709e}.wf-onboarding-btn{display:inline-block;margin-bottom:0;text-align:center;vertical-align:middle;touch-action:manipulation;cursor:pointer;background-image:none;border:1px solid transparent;white-space:nowrap;padding:.5rem 1.25rem;font-family:Roboto,"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:.875rem;line-height:1.3125rem;border-radius:4px;font-weight:400;text-transform:uppercase;-moz-user-select:-moz-none;-ms-user-select:none;-webkit-user-select:none;user-select:none}.wf-onboarding-btn:focus,.wf-onboarding-btn.wf-focus,.wf-onboarding-btn:active:focus,.wf-onboarding-btn:active.wf-focus,.wf-onboarding-btn.wf-active:focus,.wf-onboarding-btn.wf-active.wf-focus{outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}.wf-onboarding-btn:hover,.wf-onboarding-btn:focus,.wf-onboarding-btn.wf-focus{color:#00709e;text-decoration:none}.wf-onboarding-btn:active,.wf-onboarding-btn.wf-active{outline:0;background-image:none;-moz-box-shadow:inset 0 3px 5px rgba(0,0,0,0.125);-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,0.125);box-shadow:inset 0 3px 5px rgba(0,0,0,0.125)}.wf-onboarding-btn.wf-disabled,.wf-onboarding-btn[disabled],.wf-onboarding-btn[readonly],fieldset[disabled] .wf-onboarding-btn{cursor:not-allowed;filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=65);opacity:.65;-moz-box-shadow:none;-webkit-box-shadow:none;box-shadow:none}.wf-onboarding-btn.wf-onboarding-btn-primary{color:#fff;background-color:#00709e;border-color:#005e85}.wf-onboarding-btn.wf-onboarding-btn-primary:focus,.wf-onboarding-btn.wf-onboarding-btn-primary.focus{color:#fff;background-color:#004c6b;border-color:#000405}.wf-onboarding-btn.wf-onboarding-btn-primary:hover{color:#fff;background-color:#004c6b;border-color:#003347}.wf-onboarding-btn.wf-onboarding-btn-primary:active,.wf-onboarding-btn.wf-onboarding-btn-primary.active,.wf-open>.wf-onboarding-btn.wf-onboarding-btn-primary.wf-dropdown-toggle{color:#fff;background-color:#004c6b;border-color:#003347}.wf-onboarding-btn.wf-onboarding-btn-primary:active:hover,.wf-onboarding-btn.wf-onboarding-btn-primary:active:focus,.wf-onboarding-btn.wf-onboarding-btn-primary:active.focus,.wf-onboarding-btn.wf-onboarding-btn-primary.active:hover,.wf-onboarding-btn.wf-onboarding-btn-primary.active:focus,.wf-onboarding-btn.wf-onboarding-btn-primary.active.focus,.wf-open>.wf-onboarding-btn.wf-onboarding-btn-primary.wf-dropdown-toggle:hover,.wf-open>.wf-onboarding-btn.wf-onboarding-btn-primary.wf-dropdown-toggle:focus,.wf-open>.wf-onboarding-btn.wf-onboarding-btn-primary.wf-dropdown-toggle.focus{color:#fff;background-color:#003347;border-color:#000405}.wf-onboarding-btn.wf-onboarding-btn-primary:active,.wf-onboarding-btn.wf-onboarding-btn-primary.wf-active,.wf-open>.wf-onboarding-btn.wf-onboarding-btn-primary.wf-dropdown-toggle{background-image:none}.wf-onboarding-btn.wf-onboarding-btn-primary.wf-disabled:hover,.wf-onboarding-btn.wf-onboarding-btn-primary.wf-disabled:focus,.wf-onboarding-btn.wf-onboarding-btn-primary.wf-disabled.wf-focus,.wf-onboarding-btn.wf-onboarding-btn-primary[disabled]:hover,.wf-onboarding-btn.wf-onboarding-btn-primary[disabled]:focus,.wf-onboarding-btn.wf-onboarding-btn-primary[disabled].wf-focus,fieldset[disabled] .wf-onboarding-btn.wf-onboarding-btn-primary:hover,fieldset[disabled] .wf-onboarding-btn.wf-onboarding-btn-primary:focus,fieldset[disabled] .wf-onboarding-btn.wf-onboarding-btn-primary.wf-focus{background-color:#00709e;border-color:#005e85}.wf-onboarding-btn.wf-onboarding-btn-primary .wf-badge{color:#00709e;background-color:#fff}.wf-onboarding-btn.wf-onboarding-btn-default{color:#00709e;background-color:#fff;border-color:#00709e}.wf-onboarding-btn.wf-onboarding-btn-default:focus,.wf-onboarding-btn.wf-onboarding-btn-default.focus{color:#00709e;background-color:#e6e6e6;border-color:#00161f}.wf-onboarding-btn.wf-onboarding-btn-default:hover{color:#00709e;background-color:#e6e6e6;border-color:#004561}.wf-onboarding-btn.wf-onboarding-btn-default:active,.wf-onboarding-btn.wf-onboarding-btn-default.active,.wf-open>.wf-onboarding-btn.wf-onboarding-btn-default.wf-dropdown-toggle{color:#00709e;background-color:#e6e6e6;border-color:#004561}.wf-onboarding-btn.wf-onboarding-btn-default:active:hover,.wf-onboarding-btn.wf-onboarding-btn-default:active:focus,.wf-onboarding-btn.wf-onboarding-btn-default:active.focus,.wf-onboarding-btn.wf-onboarding-btn-default.active:hover,.wf-onboarding-btn.wf-onboarding-btn-default.active:focus,.wf-onboarding-btn.wf-onboarding-btn-default.active.focus,.wf-open>.wf-onboarding-btn.wf-onboarding-btn-default.wf-dropdown-toggle:hover,.wf-open>.wf-onboarding-btn.wf-onboarding-btn-default.wf-dropdown-toggle:focus,.wf-open>.wf-onboarding-btn.wf-onboarding-btn-default.wf-dropdown-toggle.focus{color:#00709e;background-color:#d4d4d4;border-color:#00161f}.wf-onboarding-btn.wf-onboarding-btn-default:active,.wf-onboarding-btn.wf-onboarding-btn-default.wf-active,.wf-open>.wf-onboarding-btn.wf-onboarding-btn-default.wf-dropdown-toggle{background-image:none}.wf-onboarding-btn.wf-onboarding-btn-default.wf-disabled:hover,.wf-onboarding-btn.wf-onboarding-btn-default.wf-disabled:focus,.wf-onboarding-btn.wf-onboarding-btn-default.wf-disabled.wf-focus,.wf-onboarding-btn.wf-onboarding-btn-default[disabled]:hover,.wf-onboarding-btn.wf-onboarding-btn-default[disabled]:focus,.wf-onboarding-btn.wf-onboarding-btn-default[disabled].wf-focus,fieldset[disabled] .wf-onboarding-btn.wf-onboarding-btn-default:hover,fieldset[disabled] .wf-onboarding-btn.wf-onboarding-btn-default:focus,fieldset[disabled] .wf-onboarding-btn.wf-onboarding-btn-default.wf-focus{background-color:#fff;border-color:#00709e}.wf-onboarding-btn.wf-onboarding-btn-default .wf-badge{color:#fff;background-color:#00709e}a.wf-onboarding-btn{text-decoration:none}a.wf-onboarding-btn.wf-disabled,fieldset[disabled] a.wf-onboarding-btn{pointer-events:none}.wf-onboarding-modal{background-color:#ffffff;z-index:9981;width:280px;padding:2rem}@media (min-width: 768px){.wf-onboarding-modal{width:450px}}@media (min-width: 992px){.wf-onboarding-modal{width:650px}}@media (min-width: 1200px){.wf-onboarding-modal{width:850px}}.wf-onboarding-modal>.wf-onboarding-modal-content{display:-webkit-flex;display:flex;-webkit-align-items:stretch;align-items:stretch;-webkit-justify-content:flex-start;justify-content:flex-start;-webkit-flex-direction:column;flex-direction:column}.wf-onboarding-modal .wf-onboarding-logo{text-align:center;padding-bottom:1rem}.wf-onboarding-modal .wf-onboarding-logo>img{max-width:350px}.wf-onboarding-modal h1,.wf-onboarding-modal h2,.wf-onboarding-modal h3,.wf-onboarding-modal h4,.wf-onboarding-modal h5,.wf-onboarding-modal h6{font-family:Roboto,"Helvetica Neue",Helvetica,Arial,sans-serif;color:#2d2d2d;font-weight:700;text-align:center;margin:0;padding:0.25rem 0}.wf-onboarding-modal h2{font-size:1.3125rem;line-height:1.5rem}.wf-onboarding-modal h3,.wf-onboarding-modal h4{font-size:1.15em}.wf-onboarding-modal p{text-align:center}.wf-onboarding-modal #wf-onboarding-alerts{margin:1.5rem auto 1rem auto}.wf-onboarding-modal #wf-onboarding-license{display:-webkit-flex;display:flex;-webkit-align-items:center;align-items:center;-webkit-justify-content:center;justify-content:center;-webkit-flex-direction:row;flex-direction:row;width:100%;margin:1rem auto 1rem auto}.wf-onboarding-modal #wf-onboarding-license>input{margin-right:1rem}.wf-onboarding-modal #wf-onboarding-or{position:relative;font-size:12px;font-weight:400;color:#00709e;text-align:center;line-height:30px;background:#ffffff;text-transform:uppercase;width:100%;max-width:800px;margin:0 auto}.wf-onboarding-modal #wf-onboarding-or:before{display:inline-block;content:"";position:absolute;height:1px;background:#e2e2e2;top:50%;width:100%;left:0;right:0}.wf-onboarding-modal #wf-onboarding-or>span{display:inline-block;position:relative;padding:0 0.75rem;background-color:#ffffff}.wf-onboarding-modal #wf-onboarding-subscribe{text-align:center}.wf-onboarding-modal [type=checkbox].wf-option-checkbox+label:before,.wf-onboarding-modal [type=radio].wf-option-radio+label:before{content:"";font-family:"Ionicons" !important;display:block;cursor:pointer;width:30px;height:30px;min-width:30px;min-height:30px;-moz-border-radius:15px;-webkit-border-radius:15px;border-radius:15px;line-height:30px !important;text-align:center !important;background-color:#ffffff !important;box-shadow:0px 0px 0px 1px rgba(185,185,185,0.75);color:#ffffff !important;font-size:30px !important;font-weight:normal !important}.wf-onboarding-modal [type=checkbox].wf-option-checkbox+label,.wf-onboarding-modal [type=radio].wf-option-radio+label{font-size:0.75rem !important}.wf-onboarding-modal [type=checkbox].wf-option-checkbox.wf-small+label:before,.wf-onboarding-modal [type=radio].wf-option-radio.wf-small+label:before{width:20px;height:20px;min-width:20px;min-height:20px;-moz-border-radius:10px;-webkit-border-radius:10px;border-radius:10px;line-height:21px !important;font-size:20px !important}.wf-onboarding-modal [type=checkbox].wf-option-checkbox+label:before,.wf-onboarding-modal [type=radio].wf-option-radio+label:before{line-height:1 !important;text-align:center !important;text-indent:2px;display:inline-block;vertical-align:-6px;margin:0px 0.75rem 0px 0px;font-weight:normal;font-style:normal}.wf-onboarding-modal [type=checkbox].wf-option-checkbox.wf-small+label:before,.wf-onboarding-modal [type=radio].wf-option-radio.wf-small+label:before{text-indent:0px;vertical-align:-3px}.wf-onboarding-modal [type=checkbox].wf-option-checkbox:checked+label:before,.wf-onboarding-modal [type=radio].wf-option-radio:checked+label:before{color:#fff !important;background-color:#00709e !important}.wf-onboarding-modal .wf-option-checkbox[type=checkbox],.wf-onboarding-modal .wf-option-checkbox[type=radio],.wf-onboarding-modal .wf-option-radio[type=checkbox],.wf-onboarding-modal .wf-option-radio[type=radio]{position:absolute;left:-9999px}.wf-onboarding-modal input[type="text"]{text-align:left;width:100%;max-width:700px;height:40px;border-radius:0;border:0;background-color:#ffffff;box-shadow:1px 1px 1px 2px rgba(215,215,215,0.65)}.wf-onboarding-modal #wf-onboarding-footer{margin:1.5rem auto 0 auto;border-top:1px solid #e2e2e2;padding-top:1.5rem;width:100%;max-width:800px}.wf-onboarding-modal #wf-onboarding-footer>ul{display:-webkit-flex;display:flex;-webkit-align-items:center;align-items:center;-webkit-justify-content:flex-start;justify-content:flex-start;-webkit-flex-direction:row;flex-direction:row;width:100%;max-width:700px;margin:0 auto;padding:0}.wf-onboarding-modal #wf-onboarding-footer>ul>li{margin:0;padding:0}.wf-onboarding-modal #wf-onboarding-footer>ul>*:last-child{-webkit-flex-grow:1;flex-grow:1;text-align:right}.wf-onboarding-modal #wf-onboarding-license-footer{margin:0 auto;max-width:800px}.wf-onboarding-modal #wf-onboarding-license-footer>ul{display:-webkit-flex;display:flex;-webkit-align-items:center;align-items:center;-webkit-justify-content:center;justify-content:center;-webkit-flex-direction:row;flex-direction:row;margin:0 auto;padding:0}.wf-onboarding-modal #wf-onboarding-license-footer>ul>li{margin:0;padding:0 0.5rem}#wf-onboarding-plugin-header{margin-bottom:1rem}#wf-onboarding-plugin-header #wf-onboarding-plugin-header-header{display:-webkit-flex;display:flex;-webkit-align-items:center;align-items:center;-webkit-justify-content:flex-start;justify-content:flex-start;-webkit-flex-direction:row;flex-direction:row;background-color:#00709e;color:#ffffff;padding:1rem 2rem}#wf-onboarding-plugin-header #wf-onboarding-plugin-header-header #wf-onboarding-plugin-header-dismiss{font-size:1.35rem;color:#ffffff;text-decoration:none}#wf-onboarding-plugin-header #wf-onboarding-plugin-header-header #wf-onboarding-plugin-header-dismiss:hover{color:#f1f1f1}#wf-onboarding-plugin-header #wf-onboarding-plugin-header-header>*:last-child{-webkit-flex-grow:1;flex-grow:1;text-align:right}#wf-onboarding-plugin-header #wf-onboarding-plugin-header-content{background-color:#ffffff}#wf-onboarding-plugin-header #wf-onboarding-plugin-header-content>ul{display:-webkit-flex;display:flex;-webkit-align-items:stretch;align-items:stretch;-webkit-justify-content:flex-start;justify-content:flex-start;-webkit-flex-direction:row;flex-direction:row;margin:0;padding:0}#wf-onboarding-plugin-header #wf-onboarding-plugin-header-content>ul>li{margin:0;padding:0}#wf-onboarding-plugin-header #wf-onboarding-plugin-header-content>ul #wf-onboarding-plugin-header-stage>ul{display:-webkit-flex;display:flex;-webkit-align-items:stretch;align-items:stretch;-webkit-justify-content:flex-start;justify-content:flex-start;-webkit-flex-direction:column;flex-direction:column;border-right:1px solid #f1f1f1}#wf-onboarding-plugin-header #wf-onboarding-plugin-header-content>ul #wf-onboarding-plugin-header-stage>ul>li{border-left:4px solid #ffffff;border-bottom:1px solid #f1f1f1;font-weight:normal;margin:0;padding:1rem 1rem 1rem 2rem}#wf-onboarding-plugin-header #wf-onboarding-plugin-header-content>ul #wf-onboarding-plugin-header-stage>ul>li.wf-active{border-left:4px solid #00709e;font-weight:600}#wf-onboarding-plugin-header #wf-onboarding-plugin-header-content>ul #wf-onboarding-plugin-header-stage>ul .wf-onboarding-plugin-header-stage-label>ul{display:-webkit-flex;display:flex;-webkit-align-items:stretch;align-items:stretch;-webkit-justify-content:flex-start;justify-content:flex-start;-webkit-flex-direction:row;flex-direction:row;margin:0;padding:0}#wf-onboarding-plugin-header #wf-onboarding-plugin-header-content>ul #wf-onboarding-plugin-header-stage>ul .wf-onboarding-plugin-header-stage-label>ul>li{margin:0;padding:0}#wf-onboarding-plugin-header #wf-onboarding-plugin-header-content>ul #wf-onboarding-plugin-header-stage>ul .wf-onboarding-plugin-header-stage-label>ul>*:last-child{visibility:hidden;-webkit-flex-grow:1;flex-grow:1;padding-left:1rem;text-align:right;font-size:1.5rem;color:#00709e;font-weight:600}#wf-onboarding-plugin-header #wf-onboarding-plugin-header-content>ul #wf-onboarding-plugin-header-stage>ul .wf-onboarding-plugin-header-stage-label.wf-complete>ul>*:last-child{visibility:visible}#wf-onboarding-plugin-header #wf-onboarding-plugin-header-content>ul #wf-onboarding-plugin-header-stage-content{padding:1rem 2rem}#wf-onboarding-plugin-header #wf-onboarding-plugin-header-content>ul h1,#wf-onboarding-plugin-header #wf-onboarding-plugin-header-content>ul h2,#wf-onboarding-plugin-header #wf-onboarding-plugin-header-content>ul h3,#wf-onboarding-plugin-header #wf-onboarding-plugin-header-content>ul h4,#wf-onboarding-plugin-header #wf-onboarding-plugin-header-content>ul h5,#wf-onboarding-plugin-header #wf-onboarding-plugin-header-content>ul h6{font-family:Roboto,"Helvetica Neue",Helvetica,Arial,sans-serif;color:#2d2d2d;font-weight:600;text-align:left;margin:0;padding:0.25rem 0}#wf-onboarding-plugin-header #wf-onboarding-plugin-header-content>ul h2{font-size:1.3125rem;line-height:1.5rem}#wf-onboarding-plugin-header #wf-onboarding-plugin-header-content>ul h3,#wf-onboarding-plugin-header #wf-onboarding-plugin-header-content>ul h4{font-size:1.15em}#wf-onboarding-plugin-header #wf-onboarding-plugin-header-content>ul #wf-onboarding-subscribe{text-align:center}#wf-onboarding-plugin-header #wf-onboarding-plugin-header-content>ul [type=checkbox].wf-option-checkbox+label:before,#wf-onboarding-plugin-header #wf-onboarding-plugin-header-content>ul [type=radio].wf-option-radio+label:before{content:"";font-family:"Ionicons" !important;display:block;cursor:pointer;width:30px;height:30px;min-width:30px;min-height:30px;-moz-border-radius:15px;-webkit-border-radius:15px;border-radius:15px;line-height:30px !important;text-align:center !important;background-color:#ffffff !important;box-shadow:0px 0px 0px 1px rgba(185,185,185,0.75);color:#aaa !important;font-size:30px !important;font-weight:normal !important}#wf-onboarding-plugin-header #wf-onboarding-plugin-header-content>ul [type=checkbox].wf-option-checkbox+label,#wf-onboarding-plugin-header #wf-onboarding-plugin-header-content>ul [type=radio].wf-option-radio+label{font-size:0.75rem !important}#wf-onboarding-plugin-header #wf-onboarding-plugin-header-content>ul [type=checkbox].wf-option-checkbox.wf-small+label:before,#wf-onboarding-plugin-header #wf-onboarding-plugin-header-content>ul [type=radio].wf-option-radio.wf-small+label:before{width:20px;height:20px;min-width:20px;min-height:20px;-moz-border-radius:10px;-webkit-border-radius:10px;border-radius:10px;line-height:21px !important;font-size:20px !important}#wf-onboarding-plugin-header #wf-onboarding-plugin-header-content>ul [type=checkbox].wf-option-checkbox+label:before,#wf-onboarding-plugin-header #wf-onboarding-plugin-header-content>ul [type=radio].wf-option-radio+label:before{line-height:1 !important;text-align:center !important;text-indent:2px;display:inline-block;vertical-align:-6px;margin:0px 0.75rem 0px 0px;font-weight:normal;font-style:normal}#wf-onboarding-plugin-header #wf-onboarding-plugin-header-content>ul [type=checkbox].wf-option-checkbox.wf-small+label:before,#wf-onboarding-plugin-header #wf-onboarding-plugin-header-content>ul [type=radio].wf-option-radio.wf-small+label:before{text-indent:0px;vertical-align:-3px}#wf-onboarding-plugin-header #wf-onboarding-plugin-header-content>ul [type=checkbox].wf-option-checkbox:checked+label:before,#wf-onboarding-plugin-header #wf-onboarding-plugin-header-content>ul [type=radio].wf-option-radio:checked+label:before{color:#fff !important;background-color:#00709e !important}#wf-onboarding-plugin-header #wf-onboarding-plugin-header-content>ul .wf-option-checkbox[type=checkbox],#wf-onboarding-plugin-header #wf-onboarding-plugin-header-content>ul .wf-option-checkbox[type=radio],#wf-onboarding-plugin-header #wf-onboarding-plugin-header-content>ul .wf-option-radio[type=checkbox],#wf-onboarding-plugin-header #wf-onboarding-plugin-header-content>ul .wf-option-radio[type=radio]{position:absolute;left:-9999px}#wf-onboarding-plugin-header #wf-onboarding-plugin-header-content>ul input[type="text"]{text-align:left;width:100%;margin:0.5rem 0;height:40px;border-radius:0;border:0;background-color:#ffffff;box-shadow:1px 1px 1px 2px rgba(215,215,215,0.65)}#wf-onboarding-plugin-header #wf-onboarding-plugin-header-content>ul #wf-onboarding2-license{display:-webkit-flex;display:flex;-webkit-align-items:center;align-items:center;-webkit-justify-content:center;justify-content:center;-webkit-flex-direction:row;flex-direction:row;margin:1rem auto 1rem auto}#wf-onboarding-plugin-header #wf-onboarding-plugin-header-content>ul #wf-onboarding2-license>input{margin-right:1rem}#wf-onboarding-plugin-header #wf-onboarding-plugin-header-footer{background-color:#525355;color:#ffffff;padding:0.5rem 2rem}#wf-onboarding-plugin-header #wf-onboarding-plugin-header-footer>ul{display:-webkit-flex;display:flex;-webkit-align-items:center;align-items:center;-webkit-justify-content:flex-end;justify-content:flex-end;-webkit-flex-direction:row;flex-direction:row;margin:0;padding:0}#wf-onboarding-plugin-header #wf-onboarding-plugin-header-footer>ul>li{margin:0;padding:0 0 0 1rem}#wf-onboarding-plugin-header #wf-onboarding-plugin-header-footer>ul a{color:#ffffff}#wf-onboarding-plugin-header #wf-onboarding-plugin-header-footer>ul a.wf-onboarding-btn-default{color:#525355}#wf-onboarding-plugin-header #wf-onboarding-plugin-header-footer>ul .wf-onboarding-btn.wf-onboarding-btn-default{color:#ffffff;background-color:#9f9fa0;border-color:#929293}#wf-onboarding-plugin-header #wf-onboarding-plugin-header-footer>ul .wf-onboarding-btn.wf-onboarding-btn-default:focus,#wf-onboarding-plugin-header #wf-onboarding-plugin-header-footer>ul .wf-onboarding-btn.wf-onboarding-btn-default.focus{color:#ffffff;background-color:#858587;border-color:#535353}#wf-onboarding-plugin-header #wf-onboarding-plugin-header-footer>ul .wf-onboarding-btn.wf-onboarding-btn-default:hover{color:#ffffff;background-color:#858587;border-color:#747475}#wf-onboarding-plugin-header #wf-onboarding-plugin-header-footer>ul .wf-onboarding-btn.wf-onboarding-btn-default:active,#wf-onboarding-plugin-header #wf-onboarding-plugin-header-footer>ul .wf-onboarding-btn.wf-onboarding-btn-default.active,.wf-open>#wf-onboarding-plugin-header #wf-onboarding-plugin-header-footer>ul .wf-onboarding-btn.wf-onboarding-btn-default.wf-dropdown-toggle{color:#ffffff;background-color:#858587;border-color:#747475}#wf-onboarding-plugin-header #wf-onboarding-plugin-header-footer>ul .wf-onboarding-btn.wf-onboarding-btn-default:active:hover,#wf-onboarding-plugin-header #wf-onboarding-plugin-header-footer>ul .wf-onboarding-btn.wf-onboarding-btn-default:active:focus,#wf-onboarding-plugin-header #wf-onboarding-plugin-header-footer>ul .wf-onboarding-btn.wf-onboarding-btn-default:active.focus,#wf-onboarding-plugin-header #wf-onboarding-plugin-header-footer>ul .wf-onboarding-btn.wf-onboarding-btn-default.active:hover,#wf-onboarding-plugin-header #wf-onboarding-plugin-header-footer>ul .wf-onboarding-btn.wf-onboarding-btn-default.active:focus,#wf-onboarding-plugin-header #wf-onboarding-plugin-header-footer>ul .wf-onboarding-btn.wf-onboarding-btn-default.active.focus,.wf-open>#wf-onboarding-plugin-header #wf-onboarding-plugin-header-footer>ul .wf-onboarding-btn.wf-onboarding-btn-default.wf-dropdown-toggle:hover,.wf-open>#wf-onboarding-plugin-header #wf-onboarding-plugin-header-footer>ul .wf-onboarding-btn.wf-onboarding-btn-default.wf-dropdown-toggle:focus,.wf-open>#wf-onboarding-plugin-header #wf-onboarding-plugin-header-footer>ul .wf-onboarding-btn.wf-onboarding-btn-default.wf-dropdown-toggle.focus{color:#ffffff;background-color:#747475;border-color:#535353}#wf-onboarding-plugin-header #wf-onboarding-plugin-header-footer>ul .wf-onboarding-btn.wf-onboarding-btn-default:active,#wf-onboarding-plugin-header #wf-onboarding-plugin-header-footer>ul .wf-onboarding-btn.wf-onboarding-btn-default.wf-active,.wf-open>#wf-onboarding-plugin-header #wf-onboarding-plugin-header-footer>ul .wf-onboarding-btn.wf-onboarding-btn-default.wf-dropdown-toggle{background-image:none}#wf-onboarding-plugin-header #wf-onboarding-plugin-header-footer>ul .wf-onboarding-btn.wf-onboarding-btn-default.wf-disabled:hover,#wf-onboarding-plugin-header #wf-onboarding-plugin-header-footer>ul .wf-onboarding-btn.wf-onboarding-btn-default.wf-disabled:focus,#wf-onboarding-plugin-header #wf-onboarding-plugin-header-footer>ul .wf-onboarding-btn.wf-onboarding-btn-default.wf-disabled.wf-focus,#wf-onboarding-plugin-header #wf-onboarding-plugin-header-footer>ul .wf-onboarding-btn.wf-onboarding-btn-default[disabled]:hover,#wf-onboarding-plugin-header #wf-onboarding-plugin-header-footer>ul .wf-onboarding-btn.wf-onboarding-btn-default[disabled]:focus,#wf-onboarding-plugin-header #wf-onboarding-plugin-header-footer>ul .wf-onboarding-btn.wf-onboarding-btn-default[disabled].wf-focus,fieldset[disabled] #wf-onboarding-plugin-header #wf-onboarding-plugin-header-footer>ul .wf-onboarding-btn.wf-onboarding-btn-default:hover,fieldset[disabled] #wf-onboarding-plugin-header #wf-onboarding-plugin-header-footer>ul .wf-onboarding-btn.wf-onboarding-btn-default:focus,fieldset[disabled] #wf-onboarding-plugin-header #wf-onboarding-plugin-header-footer>ul .wf-onboarding-btn.wf-onboarding-btn-default.wf-focus{background-color:#9f9fa0;border-color:#929293}#wf-onboarding-plugin-header #wf-onboarding-plugin-header-footer>ul .wf-onboarding-btn.wf-onboarding-btn-default .wf-badge{color:#9f9fa0;background-color:#ffffff}#wf-onboarding-final-attempt .wf-modal-header{background-color:#fcb214}#wf-onboarding-final-attempt .wf-onboarding-modal-content{display:-webkit-flex;display:flex;-webkit-align-items:stretch;align-items:stretch;-webkit-justify-content:flex-start;justify-content:flex-start;-webkit-flex-direction:column;flex-direction:column}#wf-onboarding-final-attempt h1,#wf-onboarding-final-attempt h2,#wf-onboarding-final-attempt h3,#wf-onboarding-final-attempt h4,#wf-onboarding-final-attempt h5,#wf-onboarding-final-attempt h6{font-family:Roboto,"Helvetica Neue",Helvetica,Arial,sans-serif;color:#2d2d2d;font-weight:700;text-align:center;margin:0;padding:0.5rem 0}#wf-onboarding-final-attempt h2{font-size:1.3125rem;line-height:1.5rem}#wf-onboarding-final-attempt h3,#wf-onboarding-final-attempt h4{font-size:1.5rem;font-weight:300}#wf-onboarding-final-attempt p{text-align:center}#wf-onboarding-final-attempt #wf-onboarding-alerts{margin:1.5rem auto 1rem auto}#wf-onboarding-final-attempt #wf-onboarding-license{display:-webkit-flex;display:flex;-webkit-align-items:center;align-items:center;-webkit-justify-content:center;justify-content:center;-webkit-flex-direction:row;flex-direction:row;width:100%;margin:1rem auto 1rem auto}#wf-onboarding-final-attempt #wf-onboarding-license>input{margin-right:1rem}#wf-onboarding-final-attempt #wf-onboarding-or{position:relative;font-size:12px;font-weight:400;color:#00709e;text-align:center;line-height:30px;background:#ffffff;text-transform:uppercase;width:100%;max-width:800px;margin:0 auto}#wf-onboarding-final-attempt #wf-onboarding-or:before{display:inline-block;content:"";position:absolute;height:1px;background:#e2e2e2;top:50%;width:100%;left:0;right:0}#wf-onboarding-final-attempt #wf-onboarding-or>span{display:inline-block;position:relative;padding:0 0.75rem;background-color:#ffffff}#wf-onboarding-final-attempt #wf-onboarding-subscribe{text-align:center}#wf-onboarding-final-attempt #wf-onboarding-subscribe label{font-weight:normal}#wf-onboarding-final-attempt input[type="text"]{text-align:left;width:100%;max-width:700px;height:40px;border-radius:0;border:0;background-color:#ffffff;box-shadow:1px 1px 1px 2px rgba(215,215,215,0.65)}#wf-onboarding-final-attempt #wf-onboarding-license-footer,#wf-onboarding-final-attempt #wf-onboarding-license-finished{margin:0 auto;max-width:800px}#wf-onboarding-final-attempt #wf-onboarding-license-footer>ul,#wf-onboarding-final-attempt #wf-onboarding-license-finished>ul{display:-webkit-flex;display:flex;-webkit-align-items:center;align-items:center;-webkit-justify-content:center;justify-content:center;-webkit-flex-direction:row;flex-direction:row;margin:0 auto;padding:0}#wf-onboarding-final-attempt #wf-onboarding-license-footer>ul>li,#wf-onboarding-final-attempt #wf-onboarding-license-finished>ul>li{margin:0;padding:0 0.5rem}#wf-onboarding-banner{background-color:#fcb214;font-family:Roboto,"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:.875rem;color:#2d2d2d;line-height:1.3125;font-weight:normal;display:-webkit-flex;display:flex;-webkit-align-items:center;align-items:center;-webkit-justify-content:space-between;justify-content:space-between;-webkit-flex-direction:row;flex-direction:row;margin:0 0 0 -20px;padding:0}#wf-onboarding-banner>li{margin:0;padding:0.5rem 1rem}.wf-tour-pointer>.wp-pointer-content{-moz-box-shadow:1px 1px 2px 0px rgba(50,50,50,0.75);-webkit-box-shadow:1px 1px 2px 0px rgba(50,50,50,0.75);box-shadow:1px 1px 2px 0px rgba(50,50,50,0.75)}.wf-tour-pointer>.wp-pointer-content>h3{background-color:#ffffff;border:0;text-align:center;color:#2d2d2d;font-weight:300;font-size:1.4rem;padding:1.5rem 1rem 0 1rem}.wf-tour-pointer>.wp-pointer-content>h3:before{content:""}.wf-tour-pointer>.wp-pointer-content>p{padding:0 3rem}.wf-tour-pointer>.wp-pointer-content svg.wf-icon{width:50px;min-width:50px;fill:#9f9fa0}.wf-tour-pointer.wp-pointer-top .wp-pointer-arrow,.wf-tour-pointer.wp-pointer-top .wp-pointer-arrow-inner,.wf-tour-pointer.wp-pointer-undefined .wp-pointer-arrow,.wf-tour-pointer.wp-pointer-undefined .wp-pointer-arrow-inner{border-bottom-color:#fff}.wf-tour-pointer #wf-tour-close{position:absolute;top:1rem;right:1rem}.wf-tour-pointer #wf-tour-close a{color:#525355}.wf-tour-pointer #wf-tour-close a:hover{color:#00709e}.wf-tour-pointer .wf-pointer-footer{position:relative;margin:1.5rem -1px -11px -1px;background-color:#f1f1f1;border-top:1px solid #d9d9d9}.wf-tour-pointer .wf-pointer-footer .wf-tour-pagination{display:-webkit-flex;display:flex;-webkit-align-items:center;align-items:center;-webkit-justify-content:center;justify-content:center;-webkit-flex-direction:row;flex-direction:row;margin:auto;padding:1.4rem}.wf-tour-pointer .wf-pointer-footer .wf-tour-pagination>li{padding:0.025rem;margin:0;color:#9f9fa0;font-size:1.4rem}.wf-tour-pointer .wf-pointer-footer .wf-tour-pagination>li.wf-active{color:#00709e}.wf-tour-pointer .wf-pointer-footer #wf-tour-previous{display:-webkit-flex;display:flex;-webkit-align-items:center;align-items:center;-webkit-justify-content:center;justify-content:center;-webkit-flex-direction:column;flex-direction:column;position:absolute;left:1rem;top:0px;bottom:0px}.wf-tour-pointer .wf-pointer-footer #wf-tour-continue{display:-webkit-flex;display:flex;-webkit-align-items:center;align-items:center;-webkit-justify-content:center;justify-content:center;-webkit-flex-direction:column;flex-direction:column;position:absolute;right:1rem;top:0px;bottom:0px}
|
|
css/wf-onboarding.1518460764.css
ADDED
@@ -0,0 +1 @@
|
|
|
1 |
+
#wordfenceWorking{padding:10px 40px 6px 16px;z-index:100000;position:fixed;left:180px;bottom:0px;background-color:#fcb214;border:5px solid #fcb214;border-width:6px 15px 6px 6px;color:#525355;font-size:12px;font-weight:bold;font-family:Roboto,"Helvetica Neue",Helvetica,Arial,sans-serif;background-image:url("../images/icons/working-indicator.gif");background-position:100% 50%;background-repeat:no-repeat}@media (max-width: 960px){#wordfenceWorking{left:auto;right:0}}.wf-padding-add-left{padding-left:1rem !important}.wf-padding-add-left-small{padding-left:0.5rem !important}.wf-padding-add-left-large{padding-left:1.5rem !important}.wf-onboarding-flex-horizontal{display:-webkit-flex !important;display:flex !important;-webkit-align-items:center !important;align-items:center !important;-webkit-justify-content:flex-start !important;justify-content:flex-start !important;-webkit-flex-direction:row !important;flex-direction:row !important}.wf-onboarding-flex-horizontal>*:first-child{-webkit-flex-grow:0 !important;flex-grow:0 !important}.wf-onboarding-flex-horizontal.wf-onboarding-flex-align-left{-webkit-align-items:flex-start !important;align-items:flex-start !important}.wf-onboarding-flex-horizontal.wf-onboarding-flex-align-right{-webkit-justify-content:flex-end !important;justify-content:flex-end !important}.wf-onboarding-flex-horizontal.wf-onboarding-full-width{width:100%}.wf-onboarding-flex-horizontal>li{padding:0;margin:0}#wf-onboarding-plugin-overlay{position:absolute;top:0px;right:0px;bottom:0px;left:160px;background-color:rgba(241,241,241,0.9);z-index:9980;padding:5rem 0;display:-webkit-flex;display:flex;-webkit-align-items:center;align-items:center;-webkit-justify-content:flex-start;justify-content:flex-start;-webkit-flex-direction:column;flex-direction:column}#wf-onboarding-tour-overlay{position:absolute;top:0px;right:0px;bottom:0px;left:160px;background-color:rgba(0,0,0,0.3);z-index:9980;padding:5rem 0;display:-webkit-flex;display:flex;-webkit-align-items:center;align-items:center;-webkit-justify-content:flex-start;justify-content:flex-start;-webkit-flex-direction:column;flex-direction:column}.folded #wf-onboarding-plugin-overlay,.folded #wf-onboarding-tour-overlay{left:36px}@media only screen and (max-width: 960px){.auto-fold #wf-onboarding-plugin-overlay,.auto-fold #wf-onboarding-tour-overlay{left:36px}}.rtl #wf-onboarding-plugin-overlay,.rtl #wf-onboarding-tour-overlay{right:160px;left:0px}.rtl .folded #wf-onboarding-plugin-overlay,.rtl .folded #wf-onboarding-tour-overlay{right:36px}@media only screen and (max-width: 960px){.rtl .auto-fold #wf-onboarding-plugin-overlay,.rtl .auto-fold #wf-onboarding-tour-overlay{right:36px}}@media screen and (max-width: 782px){#wf-onboarding-plugin-overlay,.folded #wf-onboarding-plugin-overlay,.auto-fold #wf-onboarding-plugin-overlay,.rtl #wf-onboarding-plugin-overlay,.rtl .folded #wf-onboarding-plugin-overlay,.rtl .auto-fold #wf-onboarding-plugin-overlay,#wf-onboarding-tour-overlay,.folded #wf-onboarding-tour-overlay,.auto-fold #wf-onboarding-tour-overlay,.rtl #wf-onboarding-tour-overlay,.rtl .folded #wf-onboarding-tour-overlay,.rtl .auto-fold #wf-onboarding-tour-overlay{left:0px;right:0px}}#wf-onboarding-dismiss{width:44px;height:44px;display:block;position:absolute;right:0px;top:0px;text-align:center;line-height:44px;font-size:1.35rem;color:#9f9fa0;text-decoration:none;z-index:9981}#wf-onboarding-dismiss:hover{color:#00709e}.wf-onboarding-btn{display:inline-block;margin-bottom:0;text-align:center;vertical-align:middle;touch-action:manipulation;cursor:pointer;background-image:none;border:1px solid transparent;white-space:nowrap;padding:.5rem 1.25rem;font-family:Roboto,"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:.875rem;line-height:1.3125rem;border-radius:4px;font-weight:400;text-transform:uppercase;-moz-user-select:-moz-none;-ms-user-select:none;-webkit-user-select:none;user-select:none}.wf-onboarding-btn:focus,.wf-onboarding-btn.wf-focus,.wf-onboarding-btn:active:focus,.wf-onboarding-btn:active.wf-focus,.wf-onboarding-btn.wf-active:focus,.wf-onboarding-btn.wf-active.wf-focus{outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}.wf-onboarding-btn:hover,.wf-onboarding-btn:focus,.wf-onboarding-btn.wf-focus{color:#00709e;text-decoration:none}.wf-onboarding-btn:active,.wf-onboarding-btn.wf-active{outline:0;background-image:none;-moz-box-shadow:inset 0 3px 5px rgba(0,0,0,0.125);-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,0.125);box-shadow:inset 0 3px 5px rgba(0,0,0,0.125)}.wf-onboarding-btn.wf-disabled,.wf-onboarding-btn[disabled],.wf-onboarding-btn[readonly],fieldset[disabled] .wf-onboarding-btn{cursor:not-allowed;filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=65);opacity:.65;-moz-box-shadow:none;-webkit-box-shadow:none;box-shadow:none}.wf-onboarding-btn.wf-onboarding-btn-primary{color:#fff;background-color:#00709e;border-color:#005e85}.wf-onboarding-btn.wf-onboarding-btn-primary:focus,.wf-onboarding-btn.wf-onboarding-btn-primary.focus{color:#fff;background-color:#004c6b;border-color:#000405}.wf-onboarding-btn.wf-onboarding-btn-primary:hover{color:#fff;background-color:#004c6b;border-color:#003347}.wf-onboarding-btn.wf-onboarding-btn-primary:active,.wf-onboarding-btn.wf-onboarding-btn-primary.active,.wf-open>.wf-onboarding-btn.wf-onboarding-btn-primary.wf-dropdown-toggle{color:#fff;background-color:#004c6b;border-color:#003347}.wf-onboarding-btn.wf-onboarding-btn-primary:active:hover,.wf-onboarding-btn.wf-onboarding-btn-primary:active:focus,.wf-onboarding-btn.wf-onboarding-btn-primary:active.focus,.wf-onboarding-btn.wf-onboarding-btn-primary.active:hover,.wf-onboarding-btn.wf-onboarding-btn-primary.active:focus,.wf-onboarding-btn.wf-onboarding-btn-primary.active.focus,.wf-open>.wf-onboarding-btn.wf-onboarding-btn-primary.wf-dropdown-toggle:hover,.wf-open>.wf-onboarding-btn.wf-onboarding-btn-primary.wf-dropdown-toggle:focus,.wf-open>.wf-onboarding-btn.wf-onboarding-btn-primary.wf-dropdown-toggle.focus{color:#fff;background-color:#003347;border-color:#000405}.wf-onboarding-btn.wf-onboarding-btn-primary:active,.wf-onboarding-btn.wf-onboarding-btn-primary.wf-active,.wf-open>.wf-onboarding-btn.wf-onboarding-btn-primary.wf-dropdown-toggle{background-image:none}.wf-onboarding-btn.wf-onboarding-btn-primary.wf-disabled:hover,.wf-onboarding-btn.wf-onboarding-btn-primary.wf-disabled:focus,.wf-onboarding-btn.wf-onboarding-btn-primary.wf-disabled.wf-focus,.wf-onboarding-btn.wf-onboarding-btn-primary[disabled]:hover,.wf-onboarding-btn.wf-onboarding-btn-primary[disabled]:focus,.wf-onboarding-btn.wf-onboarding-btn-primary[disabled].wf-focus,fieldset[disabled] .wf-onboarding-btn.wf-onboarding-btn-primary:hover,fieldset[disabled] .wf-onboarding-btn.wf-onboarding-btn-primary:focus,fieldset[disabled] .wf-onboarding-btn.wf-onboarding-btn-primary.wf-focus{background-color:#00709e;border-color:#005e85}.wf-onboarding-btn.wf-onboarding-btn-primary .wf-badge{color:#00709e;background-color:#fff}.wf-onboarding-btn.wf-onboarding-btn-default{color:#00709e;background-color:#fff;border-color:#00709e}.wf-onboarding-btn.wf-onboarding-btn-default:focus,.wf-onboarding-btn.wf-onboarding-btn-default.focus{color:#00709e;background-color:#e6e6e6;border-color:#00161f}.wf-onboarding-btn.wf-onboarding-btn-default:hover{color:#00709e;background-color:#e6e6e6;border-color:#004561}.wf-onboarding-btn.wf-onboarding-btn-default:active,.wf-onboarding-btn.wf-onboarding-btn-default.active,.wf-open>.wf-onboarding-btn.wf-onboarding-btn-default.wf-dropdown-toggle{color:#00709e;background-color:#e6e6e6;border-color:#004561}.wf-onboarding-btn.wf-onboarding-btn-default:active:hover,.wf-onboarding-btn.wf-onboarding-btn-default:active:focus,.wf-onboarding-btn.wf-onboarding-btn-default:active.focus,.wf-onboarding-btn.wf-onboarding-btn-default.active:hover,.wf-onboarding-btn.wf-onboarding-btn-default.active:focus,.wf-onboarding-btn.wf-onboarding-btn-default.active.focus,.wf-open>.wf-onboarding-btn.wf-onboarding-btn-default.wf-dropdown-toggle:hover,.wf-open>.wf-onboarding-btn.wf-onboarding-btn-default.wf-dropdown-toggle:focus,.wf-open>.wf-onboarding-btn.wf-onboarding-btn-default.wf-dropdown-toggle.focus{color:#00709e;background-color:#d4d4d4;border-color:#00161f}.wf-onboarding-btn.wf-onboarding-btn-default:active,.wf-onboarding-btn.wf-onboarding-btn-default.wf-active,.wf-open>.wf-onboarding-btn.wf-onboarding-btn-default.wf-dropdown-toggle{background-image:none}.wf-onboarding-btn.wf-onboarding-btn-default.wf-disabled:hover,.wf-onboarding-btn.wf-onboarding-btn-default.wf-disabled:focus,.wf-onboarding-btn.wf-onboarding-btn-default.wf-disabled.wf-focus,.wf-onboarding-btn.wf-onboarding-btn-default[disabled]:hover,.wf-onboarding-btn.wf-onboarding-btn-default[disabled]:focus,.wf-onboarding-btn.wf-onboarding-btn-default[disabled].wf-focus,fieldset[disabled] .wf-onboarding-btn.wf-onboarding-btn-default:hover,fieldset[disabled] .wf-onboarding-btn.wf-onboarding-btn-default:focus,fieldset[disabled] .wf-onboarding-btn.wf-onboarding-btn-default.wf-focus{background-color:#fff;border-color:#00709e}.wf-onboarding-btn.wf-onboarding-btn-default .wf-badge{color:#fff;background-color:#00709e}a.wf-onboarding-btn{text-decoration:none}a.wf-onboarding-btn.wf-disabled,fieldset[disabled] a.wf-onboarding-btn{pointer-events:none}.wf-onboarding-modal{background-color:#ffffff;z-index:9981;width:280px;padding:2rem}@media (min-width: 768px){.wf-onboarding-modal{width:450px}}@media (min-width: 992px){.wf-onboarding-modal{width:650px}}@media (min-width: 1200px){.wf-onboarding-modal{width:850px}}.wf-onboarding-modal>.wf-onboarding-modal-content{display:-webkit-flex;display:flex;-webkit-align-items:stretch;align-items:stretch;-webkit-justify-content:flex-start;justify-content:flex-start;-webkit-flex-direction:column;flex-direction:column}.wf-onboarding-modal .wf-onboarding-logo{text-align:center;padding-bottom:1rem}.wf-onboarding-modal .wf-onboarding-logo>img{max-width:350px}.wf-onboarding-modal h1,.wf-onboarding-modal h2,.wf-onboarding-modal h3,.wf-onboarding-modal h4,.wf-onboarding-modal h5,.wf-onboarding-modal h6{font-family:Roboto,"Helvetica Neue",Helvetica,Arial,sans-serif;color:#2d2d2d;font-weight:700;text-align:center;margin:0;padding:0.25rem 0}.wf-onboarding-modal h2{font-size:1.3125rem;line-height:1.5rem}.wf-onboarding-modal h3,.wf-onboarding-modal h4{font-size:1.15em}.wf-onboarding-modal p{text-align:center}.wf-onboarding-modal #wf-onboarding-alerts{margin:1.5rem auto 1rem auto}.wf-onboarding-modal #wf-onboarding-license{display:-webkit-flex;display:flex;-webkit-align-items:center;align-items:center;-webkit-justify-content:center;justify-content:center;-webkit-flex-direction:row;flex-direction:row;width:100%;margin:1rem auto 1rem auto}.wf-onboarding-modal #wf-onboarding-license>input{margin-right:1rem}.wf-onboarding-modal #wf-onboarding-or{position:relative;font-size:12px;font-weight:400;color:#00709e;text-align:center;line-height:30px;background:#ffffff;text-transform:uppercase;width:100%;max-width:800px;margin:0 auto}.wf-onboarding-modal #wf-onboarding-or:before{display:inline-block;content:"";position:absolute;height:1px;background:#e2e2e2;top:50%;width:100%;left:0;right:0}.wf-onboarding-modal #wf-onboarding-or>span{display:inline-block;position:relative;padding:0 0.75rem;background-color:#ffffff}.wf-onboarding-modal #wf-onboarding-subscribe{text-align:center}.wf-onboarding-modal [type=checkbox].wf-option-checkbox+label:before{content:"";font-family:"Ionicons" !important;display:block;cursor:pointer;width:30px;height:30px;min-width:30px;min-height:30px;-moz-border-radius:4px;-webkit-border-radius:4px;border-radius:4px;line-height:30px !important;text-align:center !important;background-color:#ffffff !important;box-shadow:0px 0px 0px 1px rgba(185,185,185,0.75);color:#ffffff !important;font-size:30px !important;font-weight:normal !important}.wf-onboarding-modal [type=radio].wf-option-radio+label:before{content:"";font-family:"Ionicons" !important;display:block;cursor:pointer;width:30px;height:30px;min-width:30px;min-height:30px;-moz-border-radius:15px;-webkit-border-radius:15px;border-radius:15px;line-height:30px !important;text-align:center !important;background-color:#ffffff !important;box-shadow:0px 0px 0px 1px rgba(185,185,185,0.75);color:#ffffff !important;font-size:30px !important;font-weight:normal !important}.wf-onboarding-modal [type=checkbox].wf-option-checkbox+label,.wf-onboarding-modal [type=radio].wf-option-radio+label{font-size:0.75rem !important}.wf-onboarding-modal [type=checkbox].wf-option-checkbox.wf-small+label:before{width:20px;height:20px;min-width:20px;min-height:20px;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;line-height:21px !important;font-size:20px !important}.wf-onboarding-modal [type=radio].wf-option-radio.wf-small+label:before{width:20px;height:20px;min-width:20px;min-height:20px;-moz-border-radius:10px;-webkit-border-radius:10px;border-radius:10px;line-height:21px !important;font-size:20px !important}.wf-onboarding-modal [type=checkbox].wf-option-checkbox+label:before,.wf-onboarding-modal [type=radio].wf-option-radio+label:before{line-height:1 !important;text-align:center !important;text-indent:2px;display:inline-block;vertical-align:-6px;margin:0px 0.75rem 0px 0px;font-weight:normal;font-style:normal}.wf-onboarding-modal [type=checkbox].wf-option-checkbox.wf-small+label:before,.wf-onboarding-modal [type=radio].wf-option-radio.wf-small+label:before{text-indent:0px;vertical-align:-3px}.wf-onboarding-modal [type=checkbox].wf-option-checkbox:checked+label:before,.wf-onboarding-modal [type=radio].wf-option-radio:checked+label:before{color:#fff !important;background-color:#00709e !important}.wf-onboarding-modal .wf-option-checkbox[type=checkbox],.wf-onboarding-modal .wf-option-checkbox[type=radio],.wf-onboarding-modal .wf-option-radio[type=checkbox],.wf-onboarding-modal .wf-option-radio[type=radio]{position:absolute;left:-9999px}.wf-onboarding-modal input[type="text"]{text-align:left;width:100%;max-width:700px;height:40px;border-radius:0;border:0;background-color:#ffffff;box-shadow:1px 1px 1px 2px rgba(215,215,215,0.65)}.wf-onboarding-modal #wf-onboarding-footer{margin:1.5rem auto 0 auto;border-top:1px solid #e2e2e2;padding-top:1.5rem;width:100%;max-width:800px}.wf-onboarding-modal #wf-onboarding-footer>ul{display:-webkit-flex;display:flex;-webkit-align-items:center;align-items:center;-webkit-justify-content:flex-start;justify-content:flex-start;-webkit-flex-direction:row;flex-direction:row;width:100%;max-width:700px;margin:0 auto;padding:0}.wf-onboarding-modal #wf-onboarding-footer>ul>li{margin:0;padding:0}.wf-onboarding-modal #wf-onboarding-footer>ul>*:last-child{-webkit-flex-grow:1;flex-grow:1;text-align:right}.wf-onboarding-modal #wf-onboarding-license-footer{margin:0 auto;max-width:800px}.wf-onboarding-modal #wf-onboarding-license-footer>ul{display:-webkit-flex;display:flex;-webkit-align-items:center;align-items:center;-webkit-justify-content:center;justify-content:center;-webkit-flex-direction:row;flex-direction:row;margin:0 auto;padding:0}.wf-onboarding-modal #wf-onboarding-license-footer>ul>li{margin:0;padding:0 0.5rem}#wf-onboarding-plugin-header{margin-bottom:1rem}#wf-onboarding-plugin-header #wf-onboarding-plugin-header-header{display:-webkit-flex;display:flex;-webkit-align-items:center;align-items:center;-webkit-justify-content:flex-start;justify-content:flex-start;-webkit-flex-direction:row;flex-direction:row;background-color:#00709e;color:#ffffff;padding:1rem 2rem}#wf-onboarding-plugin-header #wf-onboarding-plugin-header-header #wf-onboarding-plugin-header-dismiss{font-size:1.35rem;color:#ffffff;text-decoration:none}#wf-onboarding-plugin-header #wf-onboarding-plugin-header-header #wf-onboarding-plugin-header-dismiss:hover{color:#f1f1f1}#wf-onboarding-plugin-header #wf-onboarding-plugin-header-header>*:last-child{-webkit-flex-grow:1;flex-grow:1;text-align:right}#wf-onboarding-plugin-header #wf-onboarding-plugin-header-content{background-color:#ffffff}#wf-onboarding-plugin-header #wf-onboarding-plugin-header-content>ul{display:-webkit-flex;display:flex;-webkit-align-items:stretch;align-items:stretch;-webkit-justify-content:flex-start;justify-content:flex-start;-webkit-flex-direction:row;flex-direction:row;margin:0;padding:0}#wf-onboarding-plugin-header #wf-onboarding-plugin-header-content>ul>li{margin:0;padding:0}#wf-onboarding-plugin-header #wf-onboarding-plugin-header-content>ul #wf-onboarding-plugin-header-stage>ul{display:-webkit-flex;display:flex;-webkit-align-items:stretch;align-items:stretch;-webkit-justify-content:flex-start;justify-content:flex-start;-webkit-flex-direction:column;flex-direction:column;border-right:1px solid #f1f1f1}#wf-onboarding-plugin-header #wf-onboarding-plugin-header-content>ul #wf-onboarding-plugin-header-stage>ul>li{border-left:4px solid #ffffff;border-bottom:1px solid #f1f1f1;font-weight:normal;margin:0;padding:1rem 1rem 1rem 2rem}#wf-onboarding-plugin-header #wf-onboarding-plugin-header-content>ul #wf-onboarding-plugin-header-stage>ul>li.wf-active{border-left:4px solid #00709e;font-weight:600}#wf-onboarding-plugin-header #wf-onboarding-plugin-header-content>ul #wf-onboarding-plugin-header-stage>ul .wf-onboarding-plugin-header-stage-label>ul{display:-webkit-flex;display:flex;-webkit-align-items:stretch;align-items:stretch;-webkit-justify-content:flex-start;justify-content:flex-start;-webkit-flex-direction:row;flex-direction:row;margin:0;padding:0}#wf-onboarding-plugin-header #wf-onboarding-plugin-header-content>ul #wf-onboarding-plugin-header-stage>ul .wf-onboarding-plugin-header-stage-label>ul>li{margin:0;padding:0}#wf-onboarding-plugin-header #wf-onboarding-plugin-header-content>ul #wf-onboarding-plugin-header-stage>ul .wf-onboarding-plugin-header-stage-label>ul>*:last-child{visibility:hidden;-webkit-flex-grow:1;flex-grow:1;padding-left:1rem;text-align:right;font-size:1.5rem;color:#00709e;font-weight:600}#wf-onboarding-plugin-header #wf-onboarding-plugin-header-content>ul #wf-onboarding-plugin-header-stage>ul .wf-onboarding-plugin-header-stage-label.wf-complete>ul>*:last-child{visibility:visible}#wf-onboarding-plugin-header #wf-onboarding-plugin-header-content>ul #wf-onboarding-plugin-header-stage-content{padding:1rem 2rem}#wf-onboarding-plugin-header #wf-onboarding-plugin-header-content>ul h1,#wf-onboarding-plugin-header #wf-onboarding-plugin-header-content>ul h2,#wf-onboarding-plugin-header #wf-onboarding-plugin-header-content>ul h3,#wf-onboarding-plugin-header #wf-onboarding-plugin-header-content>ul h4,#wf-onboarding-plugin-header #wf-onboarding-plugin-header-content>ul h5,#wf-onboarding-plugin-header #wf-onboarding-plugin-header-content>ul h6{font-family:Roboto,"Helvetica Neue",Helvetica,Arial,sans-serif;color:#2d2d2d;font-weight:600;text-align:left;margin:0;padding:0.25rem 0}#wf-onboarding-plugin-header #wf-onboarding-plugin-header-content>ul h2{font-size:1.3125rem;line-height:1.5rem}#wf-onboarding-plugin-header #wf-onboarding-plugin-header-content>ul h3,#wf-onboarding-plugin-header #wf-onboarding-plugin-header-content>ul h4{font-size:1.15em}#wf-onboarding-plugin-header #wf-onboarding-plugin-header-content>ul #wf-onboarding-subscribe{text-align:center}#wf-onboarding-plugin-header #wf-onboarding-plugin-header-content>ul [type=checkbox].wf-option-checkbox+label:before,#wf-onboarding-plugin-header #wf-onboarding-plugin-header-content>ul [type=radio].wf-option-radio+label:before{content:"";font-family:"Ionicons" !important;display:block;cursor:pointer;width:30px;height:30px;min-width:30px;min-height:30px;-moz-border-radius:15px;-webkit-border-radius:15px;border-radius:15px;line-height:30px !important;text-align:center !important;background-color:#ffffff !important;box-shadow:0px 0px 0px 1px rgba(185,185,185,0.75);color:#aaa !important;font-size:30px !important;font-weight:normal !important}#wf-onboarding-plugin-header #wf-onboarding-plugin-header-content>ul [type=checkbox].wf-option-checkbox+label,#wf-onboarding-plugin-header #wf-onboarding-plugin-header-content>ul [type=radio].wf-option-radio+label{font-size:0.75rem !important}#wf-onboarding-plugin-header #wf-onboarding-plugin-header-content>ul [type=checkbox].wf-option-checkbox.wf-small+label:before,#wf-onboarding-plugin-header #wf-onboarding-plugin-header-content>ul [type=radio].wf-option-radio.wf-small+label:before{width:20px;height:20px;min-width:20px;min-height:20px;-moz-border-radius:10px;-webkit-border-radius:10px;border-radius:10px;line-height:21px !important;font-size:20px !important}#wf-onboarding-plugin-header #wf-onboarding-plugin-header-content>ul [type=checkbox].wf-option-checkbox+label:before,#wf-onboarding-plugin-header #wf-onboarding-plugin-header-content>ul [type=radio].wf-option-radio+label:before{line-height:1 !important;text-align:center !important;text-indent:2px;display:inline-block;vertical-align:-6px;margin:0px 0.75rem 0px 0px;font-weight:normal;font-style:normal}#wf-onboarding-plugin-header #wf-onboarding-plugin-header-content>ul [type=checkbox].wf-option-checkbox.wf-small+label:before,#wf-onboarding-plugin-header #wf-onboarding-plugin-header-content>ul [type=radio].wf-option-radio.wf-small+label:before{text-indent:0px;vertical-align:-3px}#wf-onboarding-plugin-header #wf-onboarding-plugin-header-content>ul [type=checkbox].wf-option-checkbox:checked+label:before,#wf-onboarding-plugin-header #wf-onboarding-plugin-header-content>ul [type=radio].wf-option-radio:checked+label:before{color:#fff !important;background-color:#00709e !important}#wf-onboarding-plugin-header #wf-onboarding-plugin-header-content>ul .wf-option-checkbox[type=checkbox],#wf-onboarding-plugin-header #wf-onboarding-plugin-header-content>ul .wf-option-checkbox[type=radio],#wf-onboarding-plugin-header #wf-onboarding-plugin-header-content>ul .wf-option-radio[type=checkbox],#wf-onboarding-plugin-header #wf-onboarding-plugin-header-content>ul .wf-option-radio[type=radio]{position:absolute;left:-9999px}#wf-onboarding-plugin-header #wf-onboarding-plugin-header-content>ul input[type="text"]{text-align:left;width:100%;margin:0.5rem 0;height:40px;border-radius:0;border:0;background-color:#ffffff;box-shadow:1px 1px 1px 2px rgba(215,215,215,0.65)}#wf-onboarding-plugin-header #wf-onboarding-plugin-header-content>ul #wf-onboarding2-license{display:-webkit-flex;display:flex;-webkit-align-items:center;align-items:center;-webkit-justify-content:center;justify-content:center;-webkit-flex-direction:row;flex-direction:row;margin:1rem auto 1rem auto}#wf-onboarding-plugin-header #wf-onboarding-plugin-header-content>ul #wf-onboarding2-license>input{margin-right:1rem}#wf-onboarding-plugin-header #wf-onboarding-plugin-header-footer{background-color:#525355;color:#ffffff;padding:0.5rem 2rem}#wf-onboarding-plugin-header #wf-onboarding-plugin-header-footer>ul{display:-webkit-flex;display:flex;-webkit-align-items:center;align-items:center;-webkit-justify-content:flex-end;justify-content:flex-end;-webkit-flex-direction:row;flex-direction:row;margin:0;padding:0}#wf-onboarding-plugin-header #wf-onboarding-plugin-header-footer>ul>li{margin:0;padding:0 0 0 1rem}#wf-onboarding-plugin-header #wf-onboarding-plugin-header-footer>ul a{color:#ffffff}#wf-onboarding-plugin-header #wf-onboarding-plugin-header-footer>ul a.wf-onboarding-btn-default{color:#525355}#wf-onboarding-plugin-header #wf-onboarding-plugin-header-footer>ul .wf-onboarding-btn.wf-onboarding-btn-default{color:#ffffff;background-color:#9f9fa0;border-color:#929293}#wf-onboarding-plugin-header #wf-onboarding-plugin-header-footer>ul .wf-onboarding-btn.wf-onboarding-btn-default:focus,#wf-onboarding-plugin-header #wf-onboarding-plugin-header-footer>ul .wf-onboarding-btn.wf-onboarding-btn-default.focus{color:#ffffff;background-color:#858587;border-color:#535353}#wf-onboarding-plugin-header #wf-onboarding-plugin-header-footer>ul .wf-onboarding-btn.wf-onboarding-btn-default:hover{color:#ffffff;background-color:#858587;border-color:#747475}#wf-onboarding-plugin-header #wf-onboarding-plugin-header-footer>ul .wf-onboarding-btn.wf-onboarding-btn-default:active,#wf-onboarding-plugin-header #wf-onboarding-plugin-header-footer>ul .wf-onboarding-btn.wf-onboarding-btn-default.active,.wf-open>#wf-onboarding-plugin-header #wf-onboarding-plugin-header-footer>ul .wf-onboarding-btn.wf-onboarding-btn-default.wf-dropdown-toggle{color:#ffffff;background-color:#858587;border-color:#747475}#wf-onboarding-plugin-header #wf-onboarding-plugin-header-footer>ul .wf-onboarding-btn.wf-onboarding-btn-default:active:hover,#wf-onboarding-plugin-header #wf-onboarding-plugin-header-footer>ul .wf-onboarding-btn.wf-onboarding-btn-default:active:focus,#wf-onboarding-plugin-header #wf-onboarding-plugin-header-footer>ul .wf-onboarding-btn.wf-onboarding-btn-default:active.focus,#wf-onboarding-plugin-header #wf-onboarding-plugin-header-footer>ul .wf-onboarding-btn.wf-onboarding-btn-default.active:hover,#wf-onboarding-plugin-header #wf-onboarding-plugin-header-footer>ul .wf-onboarding-btn.wf-onboarding-btn-default.active:focus,#wf-onboarding-plugin-header #wf-onboarding-plugin-header-footer>ul .wf-onboarding-btn.wf-onboarding-btn-default.active.focus,.wf-open>#wf-onboarding-plugin-header #wf-onboarding-plugin-header-footer>ul .wf-onboarding-btn.wf-onboarding-btn-default.wf-dropdown-toggle:hover,.wf-open>#wf-onboarding-plugin-header #wf-onboarding-plugin-header-footer>ul .wf-onboarding-btn.wf-onboarding-btn-default.wf-dropdown-toggle:focus,.wf-open>#wf-onboarding-plugin-header #wf-onboarding-plugin-header-footer>ul .wf-onboarding-btn.wf-onboarding-btn-default.wf-dropdown-toggle.focus{color:#ffffff;background-color:#747475;border-color:#535353}#wf-onboarding-plugin-header #wf-onboarding-plugin-header-footer>ul .wf-onboarding-btn.wf-onboarding-btn-default:active,#wf-onboarding-plugin-header #wf-onboarding-plugin-header-footer>ul .wf-onboarding-btn.wf-onboarding-btn-default.wf-active,.wf-open>#wf-onboarding-plugin-header #wf-onboarding-plugin-header-footer>ul .wf-onboarding-btn.wf-onboarding-btn-default.wf-dropdown-toggle{background-image:none}#wf-onboarding-plugin-header #wf-onboarding-plugin-header-footer>ul .wf-onboarding-btn.wf-onboarding-btn-default.wf-disabled:hover,#wf-onboarding-plugin-header #wf-onboarding-plugin-header-footer>ul .wf-onboarding-btn.wf-onboarding-btn-default.wf-disabled:focus,#wf-onboarding-plugin-header #wf-onboarding-plugin-header-footer>ul .wf-onboarding-btn.wf-onboarding-btn-default.wf-disabled.wf-focus,#wf-onboarding-plugin-header #wf-onboarding-plugin-header-footer>ul .wf-onboarding-btn.wf-onboarding-btn-default[disabled]:hover,#wf-onboarding-plugin-header #wf-onboarding-plugin-header-footer>ul .wf-onboarding-btn.wf-onboarding-btn-default[disabled]:focus,#wf-onboarding-plugin-header #wf-onboarding-plugin-header-footer>ul .wf-onboarding-btn.wf-onboarding-btn-default[disabled].wf-focus,fieldset[disabled] #wf-onboarding-plugin-header #wf-onboarding-plugin-header-footer>ul .wf-onboarding-btn.wf-onboarding-btn-default:hover,fieldset[disabled] #wf-onboarding-plugin-header #wf-onboarding-plugin-header-footer>ul .wf-onboarding-btn.wf-onboarding-btn-default:focus,fieldset[disabled] #wf-onboarding-plugin-header #wf-onboarding-plugin-header-footer>ul .wf-onboarding-btn.wf-onboarding-btn-default.wf-focus{background-color:#9f9fa0;border-color:#929293}#wf-onboarding-plugin-header #wf-onboarding-plugin-header-footer>ul .wf-onboarding-btn.wf-onboarding-btn-default .wf-badge{color:#9f9fa0;background-color:#ffffff}#wf-onboarding-final-attempt .wf-modal-header{background-color:#fcb214}#wf-onboarding-final-attempt .wf-onboarding-modal-content{display:-webkit-flex;display:flex;-webkit-align-items:stretch;align-items:stretch;-webkit-justify-content:flex-start;justify-content:flex-start;-webkit-flex-direction:column;flex-direction:column}#wf-onboarding-final-attempt h1,#wf-onboarding-final-attempt h2,#wf-onboarding-final-attempt h3,#wf-onboarding-final-attempt h4,#wf-onboarding-final-attempt h5,#wf-onboarding-final-attempt h6{font-family:Roboto,"Helvetica Neue",Helvetica,Arial,sans-serif;color:#2d2d2d;font-weight:700;text-align:center;margin:0;padding:0.5rem 0}#wf-onboarding-final-attempt h2{font-size:1.3125rem;line-height:1.5rem}#wf-onboarding-final-attempt h3,#wf-onboarding-final-attempt h4{font-size:1.5rem;font-weight:300}#wf-onboarding-final-attempt p{text-align:center}#wf-onboarding-final-attempt #wf-onboarding-alerts{margin:1.5rem auto 1rem auto}#wf-onboarding-final-attempt #wf-onboarding-license{display:-webkit-flex;display:flex;-webkit-align-items:center;align-items:center;-webkit-justify-content:center;justify-content:center;-webkit-flex-direction:row;flex-direction:row;width:100%;margin:1rem auto 1rem auto}#wf-onboarding-final-attempt #wf-onboarding-license>input{margin-right:1rem}#wf-onboarding-final-attempt #wf-onboarding-or{position:relative;font-size:12px;font-weight:400;color:#00709e;text-align:center;line-height:30px;background:#ffffff;text-transform:uppercase;width:100%;max-width:800px;margin:0 auto}#wf-onboarding-final-attempt #wf-onboarding-or:before{display:inline-block;content:"";position:absolute;height:1px;background:#e2e2e2;top:50%;width:100%;left:0;right:0}#wf-onboarding-final-attempt #wf-onboarding-or>span{display:inline-block;position:relative;padding:0 0.75rem;background-color:#ffffff}#wf-onboarding-final-attempt #wf-onboarding-subscribe{text-align:center}#wf-onboarding-final-attempt #wf-onboarding-subscribe label{font-weight:normal}#wf-onboarding-final-attempt input[type="text"]{text-align:left;width:100%;max-width:700px;height:40px;border-radius:0;border:0;background-color:#ffffff;box-shadow:1px 1px 1px 2px rgba(215,215,215,0.65)}#wf-onboarding-final-attempt #wf-onboarding-license-footer,#wf-onboarding-final-attempt #wf-onboarding-license-finished{margin:0 auto;max-width:800px}#wf-onboarding-final-attempt #wf-onboarding-license-footer>ul,#wf-onboarding-final-attempt #wf-onboarding-license-finished>ul{display:-webkit-flex;display:flex;-webkit-align-items:center;align-items:center;-webkit-justify-content:center;justify-content:center;-webkit-flex-direction:row;flex-direction:row;margin:0 auto;padding:0}#wf-onboarding-final-attempt #wf-onboarding-license-footer>ul>li,#wf-onboarding-final-attempt #wf-onboarding-license-finished>ul>li{margin:0;padding:0 0.5rem}#wf-onboarding-banner{background-color:#fcb214;font-family:Roboto,"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:.875rem;color:#2d2d2d;line-height:1.3125;font-weight:normal;display:-webkit-flex;display:flex;-webkit-align-items:center;align-items:center;-webkit-justify-content:space-between;justify-content:space-between;-webkit-flex-direction:row;flex-direction:row;margin:0 0 0 -20px;padding:0}#wf-onboarding-banner>li{margin:0;padding:0.5rem 1rem}.wf-tour-pointer>.wp-pointer-content{-moz-box-shadow:1px 1px 2px 0px rgba(50,50,50,0.75);-webkit-box-shadow:1px 1px 2px 0px rgba(50,50,50,0.75);box-shadow:1px 1px 2px 0px rgba(50,50,50,0.75)}.wf-tour-pointer>.wp-pointer-content>h3{background-color:#ffffff;border:0;text-align:center;color:#2d2d2d;font-weight:300;font-size:1.4rem;padding:1.5rem 1rem 0 1rem}.wf-tour-pointer>.wp-pointer-content>h3:before{content:""}.wf-tour-pointer>.wp-pointer-content>p{padding:0 3rem}.wf-tour-pointer>.wp-pointer-content svg.wf-icon{width:50px;min-width:50px;fill:#9f9fa0}.wf-tour-pointer.wp-pointer-top .wp-pointer-arrow,.wf-tour-pointer.wp-pointer-top .wp-pointer-arrow-inner,.wf-tour-pointer.wp-pointer-undefined .wp-pointer-arrow,.wf-tour-pointer.wp-pointer-undefined .wp-pointer-arrow-inner{border-bottom-color:#fff}.wf-tour-pointer #wf-tour-close{position:absolute;top:1rem;right:1rem}.wf-tour-pointer #wf-tour-close a{color:#525355}.wf-tour-pointer #wf-tour-close a:hover{color:#00709e}.wf-tour-pointer .wf-pointer-footer{position:relative;margin:1.5rem -1px -11px -1px;background-color:#f1f1f1;border-top:1px solid #d9d9d9}.wf-tour-pointer .wf-pointer-footer .wf-tour-pagination{display:-webkit-flex;display:flex;-webkit-align-items:center;align-items:center;-webkit-justify-content:center;justify-content:center;-webkit-flex-direction:row;flex-direction:row;margin:auto;padding:1.4rem}.wf-tour-pointer .wf-pointer-footer .wf-tour-pagination>li{padding:0.025rem;margin:0;color:#9f9fa0;font-size:1.4rem}.wf-tour-pointer .wf-pointer-footer .wf-tour-pagination>li.wf-active{color:#00709e}.wf-tour-pointer .wf-pointer-footer #wf-tour-previous{display:-webkit-flex;display:flex;-webkit-align-items:center;align-items:center;-webkit-justify-content:center;justify-content:center;-webkit-flex-direction:column;flex-direction:column;position:absolute;left:1rem;top:0px;bottom:0px}.wf-tour-pointer .wf-pointer-footer #wf-tour-continue{display:-webkit-flex;display:flex;-webkit-align-items:center;align-items:center;-webkit-justify-content:center;justify-content:center;-webkit-flex-direction:column;flex-direction:column;position:absolute;right:1rem;top:0px;bottom:0px}
|
css/{wordfenceBox.1517414961.css → wordfenceBox.1518460764.css}
RENAMED
File without changes
|
js/{Chart.bundle.min.1517414961.js → Chart.bundle.min.1518460764.js}
RENAMED
File without changes
|
js/{admin.1517414961.js → admin.1518460764.js}
RENAMED
@@ -866,7 +866,12 @@
|
|
866 |
showLoading: function() {
|
867 |
this.loadingCount++;
|
868 |
if (this.loadingCount == 1) {
|
869 |
-
|
|
|
|
|
|
|
|
|
|
|
870 |
}
|
871 |
},
|
872 |
removeLoading: function() {
|
@@ -1545,7 +1550,7 @@
|
|
1545 |
WFAD.colorboxModal((WFAD.isSmallScreen ? '300px' : '400px'), "Success deleting file", "The file " + res.file + " was successfully deleted.");
|
1546 |
}
|
1547 |
else if (res.errorMsg) {
|
1548 |
-
WFAD.
|
1549 |
}
|
1550 |
});
|
1551 |
});
|
@@ -1569,7 +1574,7 @@
|
|
1569 |
WFAD.colorboxModal((WFAD.isSmallScreen ? '300px' : '400px'), "Success restoring file", "The file " + res.file + " was successfully restored.");
|
1570 |
}
|
1571 |
else if (res.errorMsg) {
|
1572 |
-
WFAD.
|
1573 |
}
|
1574 |
});
|
1575 |
});
|
@@ -1593,7 +1598,7 @@
|
|
1593 |
WFAD.colorboxModal((WFAD.isSmallScreen ? '300px' : '400px'), "File hidden successfully", "The file " + res.file + " was successfully hidden from public view.");
|
1594 |
}
|
1595 |
else if (res.errorMsg) {
|
1596 |
-
WFAD.
|
1597 |
}
|
1598 |
});
|
1599 |
});
|
@@ -1763,7 +1768,7 @@
|
|
1763 |
self.nonce = json.nonce;
|
1764 |
}
|
1765 |
if (json && json.errorMsg) {
|
1766 |
-
|
1767 |
}
|
1768 |
cb(json);
|
1769 |
},
|
@@ -1828,6 +1833,40 @@
|
|
1828 |
};
|
1829 |
this.colorboxHTML(width, promptHTML, settings)
|
1830 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1831 |
colorboxHTML: function(width, html, settings) {
|
1832 |
if (typeof settings === 'undefined') {
|
1833 |
settings = {};
|
@@ -1861,9 +1900,6 @@
|
|
1861 |
this.colorboxIsOpen = false;
|
1862 |
jQuery.wfcolorbox.close();
|
1863 |
},
|
1864 |
-
errorMsg: function(msg) {
|
1865 |
-
this.colorboxModal((this.isSmallScreen ? '300px' : '400px'), "An error occurred:", msg);
|
1866 |
-
},
|
1867 |
bulkOperationConfirmed: function(op) {
|
1868 |
WFAD.colorboxClose();
|
1869 |
this.ajax('wordfence_bulkOperation', {
|
@@ -1911,7 +1947,7 @@
|
|
1911 |
});
|
1912 |
} else if (res.cerrorMsg) {
|
1913 |
this.loadIssues(function() {
|
1914 |
-
|
1915 |
});
|
1916 |
}
|
1917 |
},
|
@@ -1929,7 +1965,7 @@
|
|
1929 |
});
|
1930 |
} else if (res.cerrorMsg) {
|
1931 |
self.loadIssues(function() {
|
1932 |
-
|
1933 |
});
|
1934 |
}
|
1935 |
});
|
@@ -1963,7 +1999,7 @@
|
|
1963 |
});
|
1964 |
} else {
|
1965 |
self.loadIssues(function() {
|
1966 |
-
|
1967 |
});
|
1968 |
}
|
1969 |
});
|
@@ -2985,7 +3021,7 @@
|
|
2985 |
});
|
2986 |
} else if (res.errorMsg) {
|
2987 |
self.loadIssues(function() {
|
2988 |
-
|
2989 |
});
|
2990 |
}
|
2991 |
});
|
@@ -3002,7 +3038,7 @@
|
|
3002 |
});
|
3003 |
} else if (res.errorMsg) {
|
3004 |
self.loadIssues(function() {
|
3005 |
-
|
3006 |
});
|
3007 |
}
|
3008 |
});
|
@@ -3153,15 +3189,15 @@
|
|
3153 |
},
|
3154 |
|
3155 |
wafConfigPageRender: function() {
|
3156 |
-
|
3157 |
-
if (
|
3158 |
-
|
3159 |
}
|
3160 |
|
3161 |
-
var whitelistedIPsEl = $('#waf-whitelisted-urls-tmpl').tmpl(
|
3162 |
$('#waf-whitelisted-urls-wrapper').html(whitelistedIPsEl);
|
3163 |
|
3164 |
-
var rulesEl = $('#waf-rules-tmpl').tmpl(
|
3165 |
$('#waf-rules-wrapper').html(rulesEl);
|
3166 |
|
3167 |
$('#waf-show-all-rules-button').on('click', function(e) {
|
@@ -3171,9 +3207,9 @@
|
|
3171 |
$('#waf-rules-wrapper').addClass('wf-show-all');
|
3172 |
});
|
3173 |
|
3174 |
-
if (
|
3175 |
-
var date = new Date(
|
3176 |
-
|
3177 |
}
|
3178 |
$(window).trigger('wordfenceWAFConfigPageRender');
|
3179 |
},
|
@@ -3276,7 +3312,7 @@
|
|
3276 |
setOption: function(key, value, successCallback, failureCallback) {
|
3277 |
var changes = {};
|
3278 |
changes[key] = value;
|
3279 |
-
this.ajax('wordfence_saveOptions', {changes: JSON.stringify(changes)}, function(res) {
|
3280 |
if (res.success) {
|
3281 |
typeof successCallback == 'function' && successCallback(res);
|
3282 |
}
|
@@ -3293,7 +3329,7 @@
|
|
3293 |
}
|
3294 |
var self = this;
|
3295 |
|
3296 |
-
this.ajax('wordfence_saveOptions', {changes: JSON.stringify(WFAD.pendingChanges)}, function(res) {
|
3297 |
if (res.success) {
|
3298 |
typeof successCallback == 'function' && successCallback(res);
|
3299 |
}
|
@@ -3303,6 +3339,27 @@
|
|
3303 |
}
|
3304 |
});
|
3305 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
3306 |
|
3307 |
base64_decode: function(s) {
|
3308 |
var e = {}, i, b = 0, c, x, l = 0, a, r = '', w = String.fromCharCode, L = s.length;
|
@@ -3415,11 +3472,16 @@
|
|
3415 |
e.preventDefault();
|
3416 |
e.stopPropagation();
|
3417 |
|
3418 |
-
WFAD.saveOptions(function() {
|
3419 |
WFAD.pendingChanges = {};
|
3420 |
WFAD.updatePendingChanges();
|
3421 |
|
3422 |
-
|
|
|
|
|
|
|
|
|
|
|
3423 |
});
|
3424 |
});
|
3425 |
|
866 |
showLoading: function() {
|
867 |
this.loadingCount++;
|
868 |
if (this.loadingCount == 1) {
|
869 |
+
var offset = 0;
|
870 |
+
if ($('#wf-live-traffic-legend:visible').length > 0) {
|
871 |
+
offset = $('#wf-live-traffic-legend').height() + parseInt($('#wf-live-traffic-legend').css('padding-top')) + parseInt($('#wf-live-traffic-legend').css('padding-bottom'));
|
872 |
+
}
|
873 |
+
|
874 |
+
$('<div id="wordfenceWorking">Wordfence is working...</div>').css('bottom', offset + 'px').appendTo('body');
|
875 |
}
|
876 |
},
|
877 |
removeLoading: function() {
|
1550 |
WFAD.colorboxModal((WFAD.isSmallScreen ? '300px' : '400px'), "Success deleting file", "The file " + res.file + " was successfully deleted.");
|
1551 |
}
|
1552 |
else if (res.errorMsg) {
|
1553 |
+
WFAD.colorboxError(res.errorMsg, res.tokenInvalid);
|
1554 |
}
|
1555 |
});
|
1556 |
});
|
1574 |
WFAD.colorboxModal((WFAD.isSmallScreen ? '300px' : '400px'), "Success restoring file", "The file " + res.file + " was successfully restored.");
|
1575 |
}
|
1576 |
else if (res.errorMsg) {
|
1577 |
+
WFAD.colorboxError(res.errorMsg, res.tokenInvalid);
|
1578 |
}
|
1579 |
});
|
1580 |
});
|
1598 |
WFAD.colorboxModal((WFAD.isSmallScreen ? '300px' : '400px'), "File hidden successfully", "The file " + res.file + " was successfully hidden from public view.");
|
1599 |
}
|
1600 |
else if (res.errorMsg) {
|
1601 |
+
WFAD.colorboxError(res.errorMsg, res.tokenInvalid);
|
1602 |
}
|
1603 |
});
|
1604 |
});
|
1768 |
self.nonce = json.nonce;
|
1769 |
}
|
1770 |
if (json && json.errorMsg) {
|
1771 |
+
WFAD.colorboxError(json.errorMsg, json.tokenInvalid);
|
1772 |
}
|
1773 |
cb(json);
|
1774 |
},
|
1833 |
};
|
1834 |
this.colorboxHTML(width, promptHTML, settings)
|
1835 |
},
|
1836 |
+
colorboxError: function(errorMsg, isTokenError) {
|
1837 |
+
var callback = false;
|
1838 |
+
if (isTokenError) {
|
1839 |
+
if (WFAD.tokenErrorShowing) {
|
1840 |
+
return;
|
1841 |
+
}
|
1842 |
+
|
1843 |
+
callback = function() {
|
1844 |
+
setTimeout(function() {
|
1845 |
+
WFAD.tokenErrorShowing = false;
|
1846 |
+
}, 30000);
|
1847 |
+
};
|
1848 |
+
|
1849 |
+
WFAD.tokenErrorShowing = true;
|
1850 |
+
}
|
1851 |
+
|
1852 |
+
var prompt = $.tmpl(WordfenceAdminVars.tokenInvalidTemplate, {title: 'An error occurred', message: errorMsg});
|
1853 |
+
var promptHTML = $("<div />").append(prompt).html();
|
1854 |
+
var settings = {};
|
1855 |
+
settings.overlayClose = false;
|
1856 |
+
settings.closeButton = false;
|
1857 |
+
settings.className = 'wf-modal';
|
1858 |
+
settings.onComplete = function() {
|
1859 |
+
$('#wf-token-invalid-modal-reload').on('click', function(e) {
|
1860 |
+
e.preventDefault();
|
1861 |
+
e.stopPropagation();
|
1862 |
+
|
1863 |
+
window.location.reload(true);
|
1864 |
+
});
|
1865 |
+
|
1866 |
+
typeof callback === 'function' && callback();
|
1867 |
+
};
|
1868 |
+
WFAD.colorboxHTML((WFAD.isSmallScreen ? '300px' : '400px'), promptHTML, settings);
|
1869 |
+
},
|
1870 |
colorboxHTML: function(width, html, settings) {
|
1871 |
if (typeof settings === 'undefined') {
|
1872 |
settings = {};
|
1900 |
this.colorboxIsOpen = false;
|
1901 |
jQuery.wfcolorbox.close();
|
1902 |
},
|
|
|
|
|
|
|
1903 |
bulkOperationConfirmed: function(op) {
|
1904 |
WFAD.colorboxClose();
|
1905 |
this.ajax('wordfence_bulkOperation', {
|
1947 |
});
|
1948 |
} else if (res.cerrorMsg) {
|
1949 |
this.loadIssues(function() {
|
1950 |
+
WFAD.colorboxError(res.cerrorMsg, res.tokenInvalid);
|
1951 |
});
|
1952 |
}
|
1953 |
},
|
1965 |
});
|
1966 |
} else if (res.cerrorMsg) {
|
1967 |
self.loadIssues(function() {
|
1968 |
+
WFAD.colorboxError(res.cerrorMsg, res.tokenInvalid);
|
1969 |
});
|
1970 |
}
|
1971 |
});
|
1999 |
});
|
2000 |
} else {
|
2001 |
self.loadIssues(function() {
|
2002 |
+
WFAD.colorboxError(res.cerrorMsg, res.tokenInvalid);
|
2003 |
});
|
2004 |
}
|
2005 |
});
|
3021 |
});
|
3022 |
} else if (res.errorMsg) {
|
3023 |
self.loadIssues(function() {
|
3024 |
+
WFAD.colorboxError(res.errorMsg, res.tokenInvalid);
|
3025 |
});
|
3026 |
}
|
3027 |
});
|
3038 |
});
|
3039 |
} else if (res.errorMsg) {
|
3040 |
self.loadIssues(function() {
|
3041 |
+
WFAD.colorboxError(res.errorMsg, res.tokenInvalid);
|
3042 |
});
|
3043 |
}
|
3044 |
});
|
3189 |
},
|
3190 |
|
3191 |
wafConfigPageRender: function() {
|
3192 |
+
WFAD.wafData.ruleCount = 0;
|
3193 |
+
if (WFAD.wafData.rules) {
|
3194 |
+
WFAD.wafData.ruleCount = Object.keys(WFAD.wafData.rules).length;
|
3195 |
}
|
3196 |
|
3197 |
+
var whitelistedIPsEl = $('#waf-whitelisted-urls-tmpl').tmpl(WFAD.wafData);
|
3198 |
$('#waf-whitelisted-urls-wrapper').html(whitelistedIPsEl);
|
3199 |
|
3200 |
+
var rulesEl = $('#waf-rules-tmpl').tmpl(WFAD.wafData);
|
3201 |
$('#waf-rules-wrapper').html(rulesEl);
|
3202 |
|
3203 |
$('#waf-show-all-rules-button').on('click', function(e) {
|
3207 |
$('#waf-rules-wrapper').addClass('wf-show-all');
|
3208 |
});
|
3209 |
|
3210 |
+
if (WFAD.wafData['rulesLastUpdated']) {
|
3211 |
+
var date = new Date(WFAD.wafData['rulesLastUpdated'] * 1000);
|
3212 |
+
WFAD.renderWAFRulesLastUpdated(date);
|
3213 |
}
|
3214 |
$(window).trigger('wordfenceWAFConfigPageRender');
|
3215 |
},
|
3312 |
setOption: function(key, value, successCallback, failureCallback) {
|
3313 |
var changes = {};
|
3314 |
changes[key] = value;
|
3315 |
+
this.ajax('wordfence_saveOptions', {changes: JSON.stringify(changes), page: WFAD.getParameterByName('page')}, function(res) {
|
3316 |
if (res.success) {
|
3317 |
typeof successCallback == 'function' && successCallback(res);
|
3318 |
}
|
3329 |
}
|
3330 |
var self = this;
|
3331 |
|
3332 |
+
this.ajax('wordfence_saveOptions', {changes: JSON.stringify(WFAD.pendingChanges), page: WFAD.getParameterByName('page')}, function(res) {
|
3333 |
if (res.success) {
|
3334 |
typeof successCallback == 'function' && successCallback(res);
|
3335 |
}
|
3339 |
}
|
3340 |
});
|
3341 |
},
|
3342 |
+
|
3343 |
+
enableAllOptionsPage: function() {
|
3344 |
+
this.ajax('wordfence_enableAllOptionsPage', {}, function(res) {
|
3345 |
+
if (res.redirect) {
|
3346 |
+
window.location.href = res.redirect;
|
3347 |
+
}
|
3348 |
+
else {
|
3349 |
+
WFAD.colorboxModal((self.isSmallScreen ? '300px' : '400px'), 'Error Enabling All Options Page', res.error);
|
3350 |
+
}
|
3351 |
+
});
|
3352 |
+
},
|
3353 |
+
|
3354 |
+
getParameterByName: function(name, url) {
|
3355 |
+
if (!url) url = window.location.href;
|
3356 |
+
name = name.replace(/[\[\]]/g, "\\$&");
|
3357 |
+
var regex = new RegExp("[?&]" + name + "(=([^&#]*)|&|#|$)"),
|
3358 |
+
results = regex.exec(url);
|
3359 |
+
if (!results) return null;
|
3360 |
+
if (!results[2]) return '';
|
3361 |
+
return decodeURIComponent(results[2].replace(/\+/g, " "));
|
3362 |
+
},
|
3363 |
|
3364 |
base64_decode: function(s) {
|
3365 |
var e = {}, i, b = 0, c, x, l = 0, a, r = '', w = String.fromCharCode, L = s.length;
|
3472 |
e.preventDefault();
|
3473 |
e.stopPropagation();
|
3474 |
|
3475 |
+
WFAD.saveOptions(function(res) {
|
3476 |
WFAD.pendingChanges = {};
|
3477 |
WFAD.updatePendingChanges();
|
3478 |
|
3479 |
+
if (res.redirect) {
|
3480 |
+
window.location.href = res.redirect;
|
3481 |
+
}
|
3482 |
+
else {
|
3483 |
+
window.location.reload(true);
|
3484 |
+
}
|
3485 |
});
|
3486 |
});
|
3487 |
|
js/{admin.ajaxWatcher.1517414961.js → admin.ajaxWatcher.1518460764.js}
RENAMED
File without changes
|
js/{admin.liveTraffic.1517414961.js → admin.liveTraffic.1518460764.js}
RENAMED
@@ -145,6 +145,10 @@
|
|
145 |
var groupBy = '';
|
146 |
if (groupByKO) {
|
147 |
groupBy = groupByKO.param();
|
|
|
|
|
|
|
|
|
148 |
}
|
149 |
|
150 |
var newListings = [];
|
@@ -833,6 +837,7 @@
|
|
833 |
var legend = $('#wf-live-traffic-legend');
|
834 |
var adminBar = $('#wpadminbar');
|
835 |
var liveTrafficListings = $('#wf-lt-listings');
|
|
|
836 |
|
837 |
var hasScrolled = false;
|
838 |
var loadingListings = false;
|
@@ -856,8 +861,9 @@
|
|
856 |
placeholder.removeClass('sticky');
|
857 |
}
|
858 |
|
859 |
-
var
|
860 |
-
if (
|
|
|
861 |
if (WFAD.mode != 'liveTraffic_paused') {
|
862 |
WFAD.mode = 'liveTraffic_paused';
|
863 |
}
|
145 |
var groupBy = '';
|
146 |
if (groupByKO) {
|
147 |
groupBy = groupByKO.param();
|
148 |
+
WFAD.mode = 'liveTraffic_paused';
|
149 |
+
}
|
150 |
+
else {
|
151 |
+
WFAD.mode = 'liveTraffic';
|
152 |
}
|
153 |
|
154 |
var newListings = [];
|
837 |
var legend = $('#wf-live-traffic-legend');
|
838 |
var adminBar = $('#wpadminbar');
|
839 |
var liveTrafficListings = $('#wf-lt-listings');
|
840 |
+
var groupedListings = $('div#wf-live-traffic-group-by');
|
841 |
|
842 |
var hasScrolled = false;
|
843 |
var loadingListings = false;
|
861 |
placeholder.removeClass('sticky');
|
862 |
}
|
863 |
|
864 |
+
var firstLTRow = liveTrafficListings.children().filter(':visible').first();
|
865 |
+
if ((firstLTRow.length > 0 && firstLTRow.offset().top + firstLTRow.height() < win.scrollTop() + adminBar.outerHeight() + 20) ||
|
866 |
+
(groupedListings.filter(':visible').length > 0)) {
|
867 |
if (WFAD.mode != 'liveTraffic_paused') {
|
868 |
WFAD.mode = 'liveTraffic_paused';
|
869 |
}
|
js/{date.1517414961.js → date.1518460764.js}
RENAMED
File without changes
|
js/{jquery-ui-timepicker-addon.1517414961.js → jquery-ui-timepicker-addon.1518460764.js}
RENAMED
File without changes
|
js/{jquery.colorbox-min.1517414961.js → jquery.colorbox-min.1518460764.js}
RENAMED
File without changes
|
js/{jquery.colorbox.1517414961.js → jquery.colorbox.1518460764.js}
RENAMED
File without changes
|
js/{jquery.dataTables.min.1517414961.js → jquery.dataTables.min.1518460764.js}
RENAMED
File without changes
|
js/{jquery.qrcode.min.1517414961.js → jquery.qrcode.min.1518460764.js}
RENAMED
File without changes
|
js/{jquery.tmpl.min.1517414961.js → jquery.tmpl.min.1518460764.js}
RENAMED
File without changes
|
js/{jquery.tools.min.1517414961.js → jquery.tools.min.1518460764.js}
RENAMED
File without changes
|
js/{knockout-3.3.0.1517414961.js → knockout-3.3.0.1518460764.js}
RENAMED
File without changes
|
js/{perf.1517414961.js → perf.1518460764.js}
RENAMED
File without changes
|
js/{select2.min.1517414961.js → select2.min.1518460764.js}
RENAMED
File without changes
|
js/{wfdashboard.1517414961.js → wfdashboard.1518460764.js}
RENAMED
File without changes
|
js/{wfdropdown.1517414961.js → wfdropdown.1518460764.js}
RENAMED
File without changes
|
js/{wfglobal.1517414961.js → wfglobal.1518460764.js}
RENAMED
File without changes
|
js/{wfpopover.1517414961.js → wfpopover.1518460764.js}
RENAMED
File without changes
|
lib/Diff/Renderer/Html/SideBySide.php
CHANGED
@@ -62,8 +62,8 @@ class Diff_Renderer_Html_SideBySide extends Diff_Renderer_Html_Array
|
|
62 |
$html .= '<table class="Differences DifferencesSideBySide">';
|
63 |
$html .= '<thead>';
|
64 |
$html .= '<tr>';
|
65 |
-
$html .= '<th colspan="2">The Original Version of the file</th>';
|
66 |
-
$html .= '<th colspan="2">The Modified Version on your WordPress system</th>';
|
67 |
$html .= '</tr>';
|
68 |
$html .= '</thead>';
|
69 |
foreach($changes as $i => $blocks) {
|
62 |
$html .= '<table class="Differences DifferencesSideBySide">';
|
63 |
$html .= '<thead>';
|
64 |
$html .= '<tr>';
|
65 |
+
$html .= '<th colspan="2" width="50%">The Original Version of the file</th>';
|
66 |
+
$html .= '<th colspan="2" width="50%">The Modified Version on your WordPress system</th>';
|
67 |
$html .= '</tr>';
|
68 |
$html .= '</thead>';
|
69 |
foreach($changes as $i => $blocks) {
|
lib/menu_dashboard_options.php
CHANGED
@@ -229,759 +229,41 @@ if (wfOnboardingController::shouldShowAttempt3()) {
|
|
229 |
</div>
|
230 |
</div>
|
231 |
</div>
|
232 |
-
|
233 |
-
|
234 |
-
|
235 |
-
|
236 |
-
|
237 |
-
|
238 |
-
|
239 |
-
|
240 |
-
|
241 |
-
|
242 |
-
|
243 |
-
|
244 |
-
|
245 |
-
|
246 |
-
|
247 |
-
|
248 |
-
|
249 |
-
|
250 |
-
|
251 |
-
|
252 |
-
|
253 |
-
|
254 |
-
|
255 |
-
|
256 |
-
|
257 |
-
|
258 |
-
|
259 |
-
|
260 |
-
|
261 |
-
|
262 |
-
|
263 |
-
|
264 |
-
|
265 |
-
else if (wfConfig::get('isPaid')) {
|
266 |
-
_e('Premium License Active', 'wordfence');
|
267 |
-
}
|
268 |
-
else if (wfConfig::get('keyType') == wfAPI::KEY_TYPE_PAID_EXPIRED) {
|
269 |
-
_e('Premium License Expired', 'wordfence');
|
270 |
-
}
|
271 |
-
else {
|
272 |
-
_e('Free License Active', 'wordfence');
|
273 |
-
}
|
274 |
-
?>
|
275 |
-
</li>
|
276 |
-
<li class="wf-right wf-flex-vertical-xs wf-flex-align-left wf-left-xs wf-padding-add-top-xs" id="wf-license-controls">
|
277 |
-
<?php if (wfConfig::get('hasKeyConflict')): ?>
|
278 |
-
<a href="#" class="wf-btn wf-btn-default wf-btn-callout-subtle wf-downgrade-license"><?php _e('Downgrade to a free license', 'wordfence'); ?></a> <a href="https://www.wordfence.com/gnl1optMngKysReset/manage-wordfence-api-keys/" target="_blank" rel="noopener noreferrer" class="wf-btn wf-btn-primary wf-btn-callout-subtle"><?php _e('Reset Premium License', 'wordfence'); ?></a>
|
279 |
-
<?php elseif (wfConfig::get('keyExpDays') < 30 && wfConfig::get('premiumAutoRenew', null) === '0'): ?>
|
280 |
-
<a href="#" class="wf-btn wf-btn-default wf-btn-callout-subtle wf-downgrade-license"><?php _e('Downgrade to a free license', 'wordfence'); ?></a> <a href="https://www.wordfence.com/gnl1optMngKysExpiring/manage-wordfence-api-keys/" target="_blank" rel="noopener noreferrer" class="wf-btn wf-btn-primary wf-btn-callout-subtle"><?php _e('Renew Premium License', 'wordfence'); ?></a>
|
281 |
-
<?php elseif (wfConfig::get('keyExpDays') < 30 && (wfConfig::get('premiumPaymentExpiring') || wfConfig::get('premiumPaymentExpired') || wfConfig::get('premiumPaymentMissing') || wfConfig::get('premiumPaymentHold'))): ?>
|
282 |
-
<a href="#" class="wf-btn wf-btn-default wf-btn-callout-subtle wf-downgrade-license"><?php _e('Downgrade to a free license', 'wordfence'); ?></a> <a href="https://www.wordfence.com/gnl1optMngKysExpiring/manage-wordfence-api-keys/" target="_blank" rel="noopener noreferrer" class="wf-btn wf-btn-primary wf-btn-callout-subtle"><?php _e('Renew Premium License', 'wordfence'); ?></a>
|
283 |
-
<?php elseif (wfConfig::get('isPaid')): ?>
|
284 |
-
<a href="#" class="wf-btn wf-btn-default wf-btn-callout-subtle wf-downgrade-license"><?php _e('Downgrade to a free license', 'wordfence'); ?></a> <a href="https://www.wordfence.com/gnl1optMngKysReset/manage-wordfence-api-keys/" target="_blank" rel="noopener noreferrer" class="wf-btn wf-btn-default wf-btn-callout-subtle"><?php _e('Renew Premium License', 'wordfence'); ?></a>
|
285 |
-
<?php else: ?>
|
286 |
-
<a href="https://www.wordfence.com/gnl1optUpgrade/wordfence-signup/" target="_blank" rel="noopener noreferrer" class="wf-btn wf-btn-primary wf-btn-callout-subtle"><?php _e('Upgrade to Premium', 'wordfence'); ?></a>
|
287 |
-
<?php endif ?>
|
288 |
-
<a href="#" class="wf-btn wf-btn-primary wf-btn-callout-subtle" style="display: none;" id="wf-install-license"><?php _e('Install License', 'wordfence'); ?></a>
|
289 |
-
</li>
|
290 |
-
</ul>
|
291 |
-
|
292 |
-
<script type="application/javascript">
|
293 |
-
(function($) {
|
294 |
-
$(function() {
|
295 |
-
$('#wf-install-license').on('click', function(e) {
|
296 |
-
e.preventDefault();
|
297 |
-
e.stopPropagation();
|
298 |
-
|
299 |
-
WFAD.setOption('apiKey', $('#wf-license-input').val(), function() {
|
300 |
-
delete WFAD.pendingChanges['apiKey'];
|
301 |
-
WFAD.updatePendingChanges();
|
302 |
-
window.location.reload(true);
|
303 |
-
});
|
304 |
-
});
|
305 |
-
|
306 |
-
$('#wf-license-input').on('focus', function() {
|
307 |
-
var field = $(this);
|
308 |
-
setTimeout(function() {
|
309 |
-
field.select();
|
310 |
-
}, 100);
|
311 |
-
}).on('change paste keyup', function() {
|
312 |
-
setTimeout(function() {
|
313 |
-
var originalKey = $('#wf-license-input').closest('.wf-option').data('originalTextValue');
|
314 |
-
if (originalKey != $('#wf-license-input').val()) {
|
315 |
-
$('#wf-license-controls a').hide();
|
316 |
-
$('#wf-install-license').show();
|
317 |
-
}
|
318 |
-
}, 100);
|
319 |
-
});
|
320 |
-
|
321 |
-
$(window).on('wfOptionsReset', function() {
|
322 |
-
$('#wf-license-controls a').show();
|
323 |
-
$('#wf-install-license').hide();
|
324 |
-
});
|
325 |
-
|
326 |
-
$('.wf-downgrade-license').on('click', function(e) {
|
327 |
-
e.preventDefault();
|
328 |
-
e.stopPropagation();
|
329 |
-
|
330 |
-
var prompt = $('#wfTmpl_downgradePrompt').tmpl();
|
331 |
-
var promptHTML = $("<div />").append(prompt).html();
|
332 |
-
WFAD.colorboxHTML('400px', promptHTML, {overlayClose: false, closeButton: false, className: 'wf-modal', onComplete: function() {
|
333 |
-
$('#wf-downgrade-prompt-cancel').on('click', function(e) {
|
334 |
-
e.preventDefault();
|
335 |
-
e.stopPropagation();
|
336 |
-
|
337 |
-
WFAD.colorboxClose();
|
338 |
-
});
|
339 |
-
|
340 |
-
$('#wf-downgrade-prompt-downgrade').on('click', function(e) {
|
341 |
-
e.preventDefault();
|
342 |
-
e.stopPropagation();
|
343 |
-
|
344 |
-
WFAD.ajax('wordfence_downgradeLicense', {}, function(res) {
|
345 |
-
window.location.reload(true);
|
346 |
-
});
|
347 |
-
});
|
348 |
-
}});
|
349 |
-
});
|
350 |
-
});
|
351 |
-
})(jQuery);
|
352 |
-
</script>
|
353 |
-
</li>
|
354 |
-
</ul>
|
355 |
-
</li>
|
356 |
-
</ul>
|
357 |
-
</div>
|
358 |
-
</div>
|
359 |
-
</div>
|
360 |
-
</div> <!-- end license options -->
|
361 |
-
<div class="wf-row">
|
362 |
-
<div class="wf-col-xs-12">
|
363 |
-
<div class="wf-block<?php echo (wfPersistenceController::shared()->isActive('global-options-general') ? ' wf-active' : '') ?>" data-persistence-key="global-options-general">
|
364 |
-
<div class="wf-block-header">
|
365 |
-
<div class="wf-block-header-content">
|
366 |
-
<div class="wf-block-title">
|
367 |
-
<strong><?php _e('General Wordfence Options', 'wordfence'); ?></strong>
|
368 |
-
</div>
|
369 |
-
<div class="wf-block-header-action"><div class="wf-block-header-action-disclosure"></div></div>
|
370 |
-
</div>
|
371 |
-
</div>
|
372 |
-
<div class="wf-block-content">
|
373 |
-
<ul class="wf-block-list">
|
374 |
-
<li>
|
375 |
-
<?php
|
376 |
-
$subtitle = __('Automatically updates Wordfence to the newest version within 24 hours of a new release.', 'wordfence');
|
377 |
-
if (!wfConfig::get('other_bypassLitespeedNoabort', false) && getenv('noabort') != '1' && stristr($_SERVER['SERVER_SOFTWARE'], 'litespeed') !== false) {
|
378 |
-
$subtitle .= '<br><br>';
|
379 |
-
$subtitle .= __('<span class="wf-red-dark">Warning:</span> You are running the LiteSpeed web server and Wordfence can\'t determine whether "noabort" is set. Please verify that the environmental variable "noabort" is set for the local site, or the server\'s global External Application Abort is set to "No Abort".', 'wordfence');
|
380 |
-
$subtitle .= '<br>';
|
381 |
-
$subtitle .= '<a href="' . wfSupportController::esc_supportURL(wfSupportController::ITEM_DASHBOARD_OPTION_LITESPEED_WARNING) . '" target="_blank" rel="noopener noreferrer">' . __('Please read this article in our FAQ to make an important change that will ensure your site stability during an update.', 'wordfence') . '</a>';
|
382 |
-
}
|
383 |
-
|
384 |
-
echo wfView::create('options/option-toggled', array(
|
385 |
-
'optionName' => 'autoUpdate',
|
386 |
-
'enabledValue' => 1,
|
387 |
-
'disabledValue' => 0,
|
388 |
-
'value' => wfConfig::get('autoUpdate') ? 1 : 0,
|
389 |
-
'title' => __('Update Wordfence automatically when a new version is released?', 'wordfence'),
|
390 |
-
'subtitleHTML' => $subtitle,
|
391 |
-
'helpLink' => wfSupportController::supportURL(wfSupportController::ITEM_DASHBOARD_OPTION_AUTOMATIC_UPDATE),
|
392 |
-
))->render();
|
393 |
-
?>
|
394 |
-
</li>
|
395 |
-
<li>
|
396 |
-
<?php
|
397 |
-
echo wfView::create('options/option-text', array(
|
398 |
-
'textOptionName' => 'alertEmails',
|
399 |
-
'textValue' => wfConfig::get('alertEmails'),
|
400 |
-
'title' => __('Where to email alerts', 'wordfence'),
|
401 |
-
'placeholder' => __('Separate multiple addresses with commas', 'wordfence'),
|
402 |
-
'helpLink' => wfSupportController::supportURL(wfSupportController::ITEM_DASHBOARD_OPTION_ALERT_EMAILS),
|
403 |
-
))->render();
|
404 |
-
?>
|
405 |
-
</li>
|
406 |
-
<li>
|
407 |
-
<?php
|
408 |
-
echo wfView::create('dashboard/option-howgetips')->render();
|
409 |
-
?>
|
410 |
-
</li>
|
411 |
-
<li>
|
412 |
-
<?php
|
413 |
-
echo wfView::create('options/option-toggled', array(
|
414 |
-
'optionName' => 'other_hideWPVersion',
|
415 |
-
'enabledValue' => 1,
|
416 |
-
'disabledValue' => 0,
|
417 |
-
'value' => wfConfig::get('other_hideWPVersion') ? 1 : 0,
|
418 |
-
'title' => __('Hide WordPress version', 'wordfence'),
|
419 |
-
'helpLink' => wfSupportController::supportURL(wfSupportController::ITEM_DASHBOARD_OPTION_HIDE_VERSION),
|
420 |
-
))->render();
|
421 |
-
?>
|
422 |
-
</li>
|
423 |
-
<li>
|
424 |
-
<?php
|
425 |
-
echo wfView::create('options/option-toggled', array(
|
426 |
-
'optionName' => 'disableCodeExecutionUploads',
|
427 |
-
'enabledValue' => 1,
|
428 |
-
'disabledValue' => 0,
|
429 |
-
'value' => wfConfig::get('disableCodeExecutionUploads') ? 1 : 0,
|
430 |
-
'title' => __('Disable Code Execution for Uploads directory', 'wordfence'),
|
431 |
-
'helpLink' => wfSupportController::supportURL(wfSupportController::ITEM_DASHBOARD_OPTION_DISABLE_UPLOADS_EXECUTION),
|
432 |
-
))->render();
|
433 |
-
?>
|
434 |
-
</li>
|
435 |
-
<li>
|
436 |
-
<?php
|
437 |
-
echo wfView::create('options/option-toggled', array(
|
438 |
-
'optionName' => 'disableCookies',
|
439 |
-
'enabledValue' => 1,
|
440 |
-
'disabledValue' => 0,
|
441 |
-
'value' => wfConfig::get('disableCookies') ? 1 : 0,
|
442 |
-
'title' => __('Disable Wordfence Cookies', 'wordfence'),
|
443 |
-
'subtitle' => __('When enabled, all visits in live traffic will appear to be new visits.', 'wordfence'),
|
444 |
-
'helpLink' => wfSupportController::supportURL(wfSupportController::ITEM_DASHBOARD_OPTION_DISABLE_COOKIES),
|
445 |
-
))->render();
|
446 |
-
?>
|
447 |
-
</li>
|
448 |
-
<li>
|
449 |
-
<?php
|
450 |
-
echo wfView::create('options/option-toggled', array(
|
451 |
-
'optionName' => 'liveActivityPauseEnabled',
|
452 |
-
'enabledValue' => 1,
|
453 |
-
'disabledValue' => 0,
|
454 |
-
'value' => wfConfig::get('liveActivityPauseEnabled') ? 1 : 0,
|
455 |
-
'title' => __('Pause live updates when window loses focus', 'wordfence'),
|
456 |
-
'helpLink' => wfSupportController::supportURL(wfSupportController::ITEM_DASHBOARD_OPTION_PAUSE_LIVE_UPDATES),
|
457 |
-
))->render();
|
458 |
-
?>
|
459 |
-
</li>
|
460 |
-
<li>
|
461 |
-
<?php
|
462 |
-
echo wfView::create('options/option-text', array(
|
463 |
-
'textOptionName' => 'actUpdateInterval',
|
464 |
-
'textValue' => wfConfig::get('actUpdateInterval'),
|
465 |
-
'title' => __('Update interval in seconds', 'wordfence'),
|
466 |
-
'subtitle' => __('Setting higher will reduce browser traffic but slow scan starts, live traffic & status updates.', 'wordfence'),
|
467 |
-
'helpLink' => wfSupportController::supportURL(wfSupportController::ITEM_DASHBOARD_OPTION_UPDATE_INTERVAL),
|
468 |
-
))->render();
|
469 |
-
?>
|
470 |
-
</li>
|
471 |
-
<li>
|
472 |
-
<?php
|
473 |
-
echo wfView::create('options/option-toggled', array(
|
474 |
-
'optionName' => 'other_bypassLitespeedNoabort',
|
475 |
-
'enabledValue' => 1,
|
476 |
-
'disabledValue' => 0,
|
477 |
-
'value' => wfConfig::get('other_bypassLitespeedNoabort') ? 1 : 0,
|
478 |
-
'title' => __('Bypass the LiteSpeed "noabort" check', 'wordfence'),
|
479 |
-
'helpLink' => wfSupportController::supportURL(wfSupportController::ITEM_DASHBOARD_OPTION_BYPASS_LITESPEED_CHECK),
|
480 |
-
))->render();
|
481 |
-
?>
|
482 |
-
</li>
|
483 |
-
<li>
|
484 |
-
<?php
|
485 |
-
echo wfView::create('options/option-toggled', array(
|
486 |
-
'optionName' => 'deleteTablesOnDeact',
|
487 |
-
'enabledValue' => 1,
|
488 |
-
'disabledValue' => 0,
|
489 |
-
'value' => wfConfig::get('deleteTablesOnDeact') ? 1 : 0,
|
490 |
-
'title' => __('Delete Wordfence tables and data on deactivation', 'wordfence'),
|
491 |
-
'helpLink' => wfSupportController::supportURL(wfSupportController::ITEM_DASHBOARD_OPTION_DELETE_DEACTIVATION),
|
492 |
-
))->render();
|
493 |
-
?>
|
494 |
-
</li>
|
495 |
-
</ul>
|
496 |
-
</div>
|
497 |
-
</div>
|
498 |
-
</div>
|
499 |
-
</div> <!-- end general options -->
|
500 |
-
<div class="wf-row">
|
501 |
-
<div class="wf-col-xs-12">
|
502 |
-
<div class="wf-block<?php echo (wfPersistenceController::shared()->isActive('global-options-dashboard') ? ' wf-active' : '') ?>" data-persistence-key="global-options-dashboard">
|
503 |
-
<div class="wf-block-header">
|
504 |
-
<div class="wf-block-header-content">
|
505 |
-
<div class="wf-block-title">
|
506 |
-
<strong><?php _e('Dashboard Options', 'wordfence'); ?></strong>
|
507 |
-
</div>
|
508 |
-
<div class="wf-block-subtitle"><?php _e('Options to control the types of notifications you will receive on the Wordfence dashboard', 'wordfence'); ?></div>
|
509 |
-
<div class="wf-block-header-action"><div class="wf-block-header-action-disclosure"></div></div>
|
510 |
-
</div>
|
511 |
-
</div>
|
512 |
-
<div class="wf-block-content">
|
513 |
-
<ul class="wf-block-list">
|
514 |
-
<li>
|
515 |
-
<?php
|
516 |
-
echo wfView::create('options/option-toggled', array(
|
517 |
-
'optionName' => 'notification_updatesNeeded',
|
518 |
-
'enabledValue' => 1,
|
519 |
-
'disabledValue' => 0,
|
520 |
-
'value' => wfConfig::get('notification_updatesNeeded') ? 1 : 0,
|
521 |
-
'title' => __('Updates Needed (Plugin, Theme, or Core)', 'wordfence'),
|
522 |
-
))->render();
|
523 |
-
?>
|
524 |
-
</li>
|
525 |
-
<?php if (wfConfig::p()): ?>
|
526 |
-
<li>
|
527 |
-
<?php
|
528 |
-
echo wfView::create('options/option-toggled', array(
|
529 |
-
'optionName' => 'notification_securityAlerts',
|
530 |
-
'enabledValue' => 1,
|
531 |
-
'disabledValue' => 0,
|
532 |
-
'value' => wfConfig::get('notification_securityAlerts') ? 1 : 0,
|
533 |
-
'title' => __('Security Alerts', 'wordfence'),
|
534 |
-
'premium' => true,
|
535 |
-
))->render();
|
536 |
-
?>
|
537 |
-
</li>
|
538 |
-
<li>
|
539 |
-
<?php
|
540 |
-
echo wfView::create('options/option-toggled', array(
|
541 |
-
'optionName' => 'notification_promotions',
|
542 |
-
'enabledValue' => 1,
|
543 |
-
'disabledValue' => 0,
|
544 |
-
'value' => wfConfig::get('notification_promotions') ? 1 : 0,
|
545 |
-
'title' => __('Promotions', 'wordfence'),
|
546 |
-
'premium' => true,
|
547 |
-
))->render();
|
548 |
-
?>
|
549 |
-
</li>
|
550 |
-
<li>
|
551 |
-
<?php
|
552 |
-
echo wfView::create('options/option-toggled', array(
|
553 |
-
'optionName' => 'notification_blogHighlights',
|
554 |
-
'enabledValue' => 1,
|
555 |
-
'disabledValue' => 0,
|
556 |
-
'value' => wfConfig::get('notification_blogHighlights') ? 1 : 0,
|
557 |
-
'title' => __('Blog Highlights', 'wordfence'),
|
558 |
-
'premium' => true,
|
559 |
-
))->render();
|
560 |
-
?>
|
561 |
-
</li>
|
562 |
-
<li>
|
563 |
-
<?php
|
564 |
-
echo wfView::create('options/option-toggled', array(
|
565 |
-
'optionName' => 'notification_productUpdates',
|
566 |
-
'enabledValue' => 1,
|
567 |
-
'disabledValue' => 0,
|
568 |
-
'value' => wfConfig::get('notification_productUpdates') ? 1 : 0,
|
569 |
-
'title' => __('Product Updates', 'wordfence'),
|
570 |
-
'premium' => true,
|
571 |
-
))->render();
|
572 |
-
?>
|
573 |
-
</li>
|
574 |
-
<?php endif; ?>
|
575 |
-
<li>
|
576 |
-
<?php
|
577 |
-
echo wfView::create('options/option-toggled', array(
|
578 |
-
'optionName' => 'notification_scanStatus',
|
579 |
-
'enabledValue' => 1,
|
580 |
-
'disabledValue' => 0,
|
581 |
-
'value' => wfConfig::get('notification_scanStatus') ? 1 : 0,
|
582 |
-
'title' => __('Scan Status', 'wordfence'),
|
583 |
-
))->render();
|
584 |
-
?>
|
585 |
-
</li>
|
586 |
-
<?php if (!wfConfig::p()): ?>
|
587 |
-
<li>
|
588 |
-
<ul class="wf-option">
|
589 |
-
<li class="wf-option-spacer"></li>
|
590 |
-
<li class="wf-flex-vertical wf-flex-align-left">
|
591 |
-
<p><?php _e('Dashboard notifications will also be displayed for Security Alerts, Promotions, Blog Highlights, and Product Updates. These notifications can be disabled by upgrading to a premium license.', 'wordfence'); ?></p>
|
592 |
-
<p class="wf-no-top"><a class="wf-btn wf-btn-primary wf-btn-callout-subtle" href="https://www.wordfence.com/gnl1dashboardUpgrade/wordfence-signup/#premium-order-form" target="_blank" rel="noopener noreferrer"><?php _e('Upgrade to Premium', 'wordfence'); ?></a> <a class="wf-btn wf-btn-callout-subtle wf-btn-default" href="https://www.wordfence.com/gnl1dashboardLearn/wordfence-signup/" target="_blank" rel="noopener noreferrer"><?php _e('Learn More', 'wordfence'); ?></a></p>
|
593 |
-
</li>
|
594 |
-
</ul>
|
595 |
-
</li>
|
596 |
-
<?php endif; ?>
|
597 |
-
</ul>
|
598 |
-
</div>
|
599 |
-
</div>
|
600 |
-
</div>
|
601 |
-
</div> <!-- end dashboard options -->
|
602 |
-
<div class="wf-row">
|
603 |
-
<div class="wf-col-xs-12">
|
604 |
-
<div class="wf-block<?php echo (wfPersistenceController::shared()->isActive('global-options-alert') ? ' wf-active' : '') ?>" data-persistence-key="global-options-alert">
|
605 |
-
<div class="wf-block-header">
|
606 |
-
<div class="wf-block-header-content">
|
607 |
-
<div class="wf-block-title">
|
608 |
-
<strong><?php _e('Alert Preferences', 'wordfence'); ?></strong>
|
609 |
-
</div>
|
610 |
-
<div class="wf-block-header-action"><div class="wf-block-header-action-disclosure"></div></div>
|
611 |
-
</div>
|
612 |
-
</div>
|
613 |
-
<div class="wf-block-content">
|
614 |
-
<ul class="wf-block-list">
|
615 |
-
<li>
|
616 |
-
<?php
|
617 |
-
echo wfView::create('options/option-toggled', array(
|
618 |
-
'optionName' => 'alertOn_update',
|
619 |
-
'enabledValue' => 1,
|
620 |
-
'disabledValue' => 0,
|
621 |
-
'value' => wfConfig::get('alertOn_update') ? 1 : 0,
|
622 |
-
'title' => __('Email me when Wordfence is automatically updated', 'wordfence'),
|
623 |
-
'subtitle' => __('If you have automatic updates enabled (see above), you\'ll get an email when an update occurs.', 'wordfence'),
|
624 |
-
))->render();
|
625 |
-
?>
|
626 |
-
</li>
|
627 |
-
<li>
|
628 |
-
<?php
|
629 |
-
echo wfView::create('options/option-toggled', array(
|
630 |
-
'optionName' => 'alertOn_wordfenceDeactivated',
|
631 |
-
'enabledValue' => 1,
|
632 |
-
'disabledValue' => 0,
|
633 |
-
'value' => wfConfig::get('alertOn_wordfenceDeactivated') ? 1 : 0,
|
634 |
-
'title' => __('Email me if Wordfence is deactivated', 'wordfence'),
|
635 |
-
))->render();
|
636 |
-
?>
|
637 |
-
</li>
|
638 |
-
<li>
|
639 |
-
<?php
|
640 |
-
echo wfView::create('options/option-toggled', array(
|
641 |
-
'optionName' => 'alertOn_critical',
|
642 |
-
'enabledValue' => 1,
|
643 |
-
'disabledValue' => 0,
|
644 |
-
'value' => wfConfig::get('alertOn_critical') ? 1 : 0,
|
645 |
-
'title' => __('Alert on critical problems', 'wordfence'),
|
646 |
-
))->render();
|
647 |
-
?>
|
648 |
-
</li>
|
649 |
-
<li>
|
650 |
-
<?php
|
651 |
-
echo wfView::create('options/option-toggled', array(
|
652 |
-
'optionName' => 'alertOn_warnings',
|
653 |
-
'enabledValue' => 1,
|
654 |
-
'disabledValue' => 0,
|
655 |
-
'value' => wfConfig::get('alertOn_warnings') ? 1 : 0,
|
656 |
-
'title' => __('Alert on warnings', 'wordfence'),
|
657 |
-
))->render();
|
658 |
-
?>
|
659 |
-
</li>
|
660 |
-
<li>
|
661 |
-
<?php
|
662 |
-
echo wfView::create('options/option-toggled', array(
|
663 |
-
'optionName' => 'alertOn_block',
|
664 |
-
'enabledValue' => 1,
|
665 |
-
'disabledValue' => 0,
|
666 |
-
'value' => wfConfig::get('alertOn_block') ? 1 : 0,
|
667 |
-
'title' => __('Alert when an IP address is blocked', 'wordfence'),
|
668 |
-
))->render();
|
669 |
-
?>
|
670 |
-
</li>
|
671 |
-
<li>
|
672 |
-
<?php
|
673 |
-
echo wfView::create('options/option-toggled', array(
|
674 |
-
'optionName' => 'alertOn_loginLockout',
|
675 |
-
'enabledValue' => 1,
|
676 |
-
'disabledValue' => 0,
|
677 |
-
'value' => wfConfig::get('alertOn_loginLockout') ? 1 : 0,
|
678 |
-
'title' => __('Alert when someone is locked out from login', 'wordfence'),
|
679 |
-
))->render();
|
680 |
-
?>
|
681 |
-
</li>
|
682 |
-
<li>
|
683 |
-
<?php
|
684 |
-
echo wfView::create('options/option-toggled', array(
|
685 |
-
'optionName' => 'alertOn_lostPasswdForm',
|
686 |
-
'enabledValue' => 1,
|
687 |
-
'disabledValue' => 0,
|
688 |
-
'value' => wfConfig::get('alertOn_lostPasswdForm') ? 1 : 0,
|
689 |
-
'title' => __('Alert when the "lost password" form is used for a valid user', 'wordfence'),
|
690 |
-
))->render();
|
691 |
-
?>
|
692 |
-
</li>
|
693 |
-
<li>
|
694 |
-
<?php
|
695 |
-
echo wfView::create('options/option-toggled-sub', array(
|
696 |
-
'optionName' => 'alertOn_adminLogin',
|
697 |
-
'enabledValue' => 1,
|
698 |
-
'disabledValue' => 0,
|
699 |
-
'value' => wfConfig::get('alertOn_adminLogin') ? 1 : 0,
|
700 |
-
'title' => __('Alert me when someone with administrator access signs in', 'wordfence'),
|
701 |
-
|
702 |
-
'subOptionName' => 'alertOn_firstAdminLoginOnly',
|
703 |
-
'subEnabledValue' => 1,
|
704 |
-
'subDisabledValue' => 0,
|
705 |
-
'subValue' => wfConfig::get('alertOn_firstAdminLoginOnly') ? 1 : 0,
|
706 |
-
'subTitle' => __('Only alert me when that administrator signs in from a new device or location', 'wordfence'),
|
707 |
-
))->render();
|
708 |
-
?>
|
709 |
-
</li>
|
710 |
-
<li>
|
711 |
-
<?php
|
712 |
-
echo wfView::create('options/option-toggled-sub', array(
|
713 |
-
'optionName' => 'alertOn_nonAdminLogin',
|
714 |
-
'enabledValue' => 1,
|
715 |
-
'disabledValue' => 0,
|
716 |
-
'value' => wfConfig::get('alertOn_nonAdminLogin') ? 1 : 0,
|
717 |
-
'title' => __('Alert me when a non-admin user signs in', 'wordfence'),
|
718 |
-
|
719 |
-
'subOptionName' => 'alertOn_firstNonAdminLoginOnly',
|
720 |
-
'subEnabledValue' => 1,
|
721 |
-
'subDisabledValue' => 0,
|
722 |
-
'subValue' => wfConfig::get('alertOn_firstNonAdminLoginOnly') ? 1 : 0,
|
723 |
-
'subTitle' => __('Only alert me when that user signs in from a new device or location', 'wordfence'),
|
724 |
-
))->render();
|
725 |
-
?>
|
726 |
-
</li>
|
727 |
-
<li>
|
728 |
-
<?php
|
729 |
-
echo wfView::create('options/option-toggled', array(
|
730 |
-
'optionName' => 'wafAlertOnAttacks',
|
731 |
-
'enabledValue' => 1,
|
732 |
-
'disabledValue' => 0,
|
733 |
-
'value' => wfConfig::get('wafAlertOnAttacks') ? 1 : 0,
|
734 |
-
'title' => __('Alert me when there\'s a large increase in attacks detected on my site', 'wordfence'),
|
735 |
-
))->render();
|
736 |
-
?>
|
737 |
-
</li>
|
738 |
-
<li>
|
739 |
-
<?php
|
740 |
-
echo wfView::create('options/option-text', array(
|
741 |
-
'textOptionName' => 'alert_maxHourly',
|
742 |
-
'textValue' => wfConfig::get('alert_maxHourly'),
|
743 |
-
'title' => __('Maximum email alerts to send per hour', 'wordfence'),
|
744 |
-
'subtitle' => __('0 means unlimited alerts will be sent.', 'wordfence'),
|
745 |
-
))->render();
|
746 |
-
?>
|
747 |
-
</li>
|
748 |
-
</ul>
|
749 |
-
</div>
|
750 |
-
</div>
|
751 |
-
</div>
|
752 |
-
</div> <!-- end alert options -->
|
753 |
-
<div class="wf-row">
|
754 |
-
<div class="wf-col-xs-12">
|
755 |
-
<div class="wf-block<?php echo (wfPersistenceController::shared()->isActive('global-options-email-summary') ? ' wf-active' : '') ?>" data-persistence-key="global-options-email-summary">
|
756 |
-
<div class="wf-block-header">
|
757 |
-
<div class="wf-block-header-content">
|
758 |
-
<div class="wf-block-title">
|
759 |
-
<strong><?php _e('Activity Report', 'wordfence'); ?></strong>
|
760 |
-
</div>
|
761 |
-
<div class="wf-block-header-action"><div class="wf-block-header-action-disclosure"></div></div>
|
762 |
-
</div>
|
763 |
-
</div>
|
764 |
-
<div class="wf-block-content">
|
765 |
-
<ul class="wf-block-list">
|
766 |
-
<li>
|
767 |
-
<?php
|
768 |
-
echo wfView::create('options/option-toggled-select', array(
|
769 |
-
'toggleOptionName' => 'email_summary_enabled',
|
770 |
-
'enabledToggleValue' => 1,
|
771 |
-
'disabledToggleValue' => 0,
|
772 |
-
'toggleValue' => wfConfig::get('email_summary_enabled') ? 1 : 0,
|
773 |
-
'selectOptionName' => 'email_summary_interval',
|
774 |
-
'selectOptions' => array(
|
775 |
-
array('value' => 'daily', 'label' => __('Once a day', 'wordfence')),
|
776 |
-
array('value' => 'weekly', 'label' => __('Once a week', 'wordfence')),
|
777 |
-
array('value' => 'monthly', 'label' => __('Once a month', 'wordfence')),
|
778 |
-
),
|
779 |
-
'selectValue' => wfConfig::get('email_summary_interval'),
|
780 |
-
'title' => __('Enable email summary', 'wordfence'),
|
781 |
-
))->render();
|
782 |
-
?>
|
783 |
-
</li>
|
784 |
-
<li>
|
785 |
-
<?php
|
786 |
-
echo wfView::create('options/option-textarea', array(
|
787 |
-
'textOptionName' => 'email_summary_excluded_directories',
|
788 |
-
'textValue' => wfUtils::cleanupOneEntryPerLine(wfConfig::get('email_summary_excluded_directories')),
|
789 |
-
'title' => __('List of directories to exclude from recently modified file list', 'wordfence'),
|
790 |
-
))->render();
|
791 |
-
?>
|
792 |
-
</li>
|
793 |
-
<li>
|
794 |
-
<?php
|
795 |
-
echo wfView::create('options/option-toggled', array(
|
796 |
-
'optionName' => 'email_summary_dashboard_widget_enabled',
|
797 |
-
'enabledValue' => 1,
|
798 |
-
'disabledValue' => 0,
|
799 |
-
'value' => wfConfig::get('email_summary_dashboard_widget_enabled') ? 1 : 0,
|
800 |
-
'title' => __('Enable activity report widget on the WordPress dashboard', 'wordfence'),
|
801 |
-
))->render();
|
802 |
-
?>
|
803 |
-
</li>
|
804 |
-
</ul>
|
805 |
-
</div>
|
806 |
-
</div>
|
807 |
-
</div>
|
808 |
-
</div> <!-- end email summary options -->
|
809 |
-
<div class="wf-row">
|
810 |
-
<div class="wf-col-xs-12">
|
811 |
-
<div class="wf-block<?php echo (wfPersistenceController::shared()->isActive('global-options-import') ? ' wf-active' : '') ?>" data-persistence-key="global-options-import">
|
812 |
-
<div class="wf-block-header">
|
813 |
-
<div class="wf-block-header-content">
|
814 |
-
<div class="wf-block-title">
|
815 |
-
<strong><?php _e('Import/Export Options', 'wordfence'); ?></strong>
|
816 |
-
</div>
|
817 |
-
<div class="wf-block-header-action"><div class="wf-block-header-action-disclosure"></div></div>
|
818 |
-
</div>
|
819 |
-
</div>
|
820 |
-
<div class="wf-block-content">
|
821 |
-
<ul class="wf-block-list">
|
822 |
-
<li>
|
823 |
-
<ul class="wf-flex-horizontal wf-flex-vertical-xs wf-flex-full-width wf-add-top wf-add-bottom">
|
824 |
-
<li><?php _e('Export this site\'s Wordfence options for import on another site', 'wordfence'); ?> <a href="<?php echo wfSupportController::esc_supportURL(wfSupportController::ITEM_DASHBOARD_OPTION_EXPORT); ?>" target="_blank" rel="noopener noreferrer" class="wf-inline-help"><i class="wf-fa wf-fa-question-circle-o" aria-hidden="true"></i></a></li>
|
825 |
-
<li class="wf-right wf-left-xs wf-padding-add-top-xs-small">
|
826 |
-
<a href="#" class="wf-btn wf-btn-primary wf-btn-callout-subtle" id="wf-export-options"><?php _e('Export<span class="wf-hidden-xs"> Wordfence</span> Options', 'wordfence'); ?></a>
|
827 |
-
</li>
|
828 |
-
</ul>
|
829 |
-
</li>
|
830 |
-
<li>
|
831 |
-
<ul class="wf-flex-vertical wf-flex-full-width wf-add-bottom">
|
832 |
-
<li>
|
833 |
-
<ul class="wf-option wf-option-text">
|
834 |
-
<li class="wf-option-content">
|
835 |
-
<ul>
|
836 |
-
<li class="wf-option-title">
|
837 |
-
<?php _e('Import Wordfence options from another site using a token', 'wordfence'); ?> <a href="<?php echo wfSupportController::esc_supportURL(wfSupportController::ITEM_DASHBOARD_OPTION_IMPORT); ?>" target="_blank" rel="noopener noreferrer" class="wf-inline-help"><i class="wf-fa wf-fa-question-circle-o" aria-hidden="true"></i></a>
|
838 |
-
</li>
|
839 |
-
<li class="wf-option-text wf-option-full-width wf-no-right">
|
840 |
-
<input type="text" value="" id="wf-import-token">
|
841 |
-
</li>
|
842 |
-
</ul>
|
843 |
-
</li>
|
844 |
-
</ul>
|
845 |
-
</li>
|
846 |
-
<li>
|
847 |
-
<ul class="wf-flex-horizontal wf-flex-full-width">
|
848 |
-
<li class="wf-right wf-left-xs" id="wf-license-controls">
|
849 |
-
<a href="#" class="wf-btn wf-btn-primary wf-btn-callout-subtle wf-disabled" id="wf-import-options"><?php _e('Import<span class="wf-hidden-xs"> Wordfence</span> Options', 'wordfence'); ?></a>
|
850 |
-
</li>
|
851 |
-
</ul>
|
852 |
-
</li>
|
853 |
-
</ul>
|
854 |
-
</li>
|
855 |
-
</ul>
|
856 |
-
<script type="application/javascript">
|
857 |
-
(function($) {
|
858 |
-
$(function() {
|
859 |
-
$('#wf-export-options').on('click', function(e) {
|
860 |
-
e.preventDefault();
|
861 |
-
e.stopPropagation();
|
862 |
-
|
863 |
-
WFAD.ajax('wordfence_exportSettings', {}, function(res) {
|
864 |
-
if (res.ok && res.token) {
|
865 |
-
var prompt = $('#wfTmpl_exportPromptSuccess').tmpl(res);
|
866 |
-
var promptHTML = $("<div />").append(prompt).html();
|
867 |
-
WFAD.colorboxHTML((WFAD.isSmallScreen ? '300px' : '400px'), promptHTML, {overlayClose: false, closeButton: false, className: 'wf-modal', onComplete: function() {
|
868 |
-
$('#wf-export-prompt-close').on('click', function(e) {
|
869 |
-
e.preventDefault();
|
870 |
-
e.stopPropagation();
|
871 |
-
|
872 |
-
WFAD.colorboxClose();
|
873 |
-
});
|
874 |
-
}});
|
875 |
-
}
|
876 |
-
else {
|
877 |
-
var prompt = $('#wfTmpl_exportPromptError').tmpl({err: res.err || 'An unknown error occurred during the export. We received an undefined error from your web server.'});
|
878 |
-
var promptHTML = $("<div />").append(prompt).html();
|
879 |
-
WFAD.colorboxHTML((WFAD.isSmallScreen ? '300px' : '400px'), promptHTML, {overlayClose: false, closeButton: false, className: 'wf-modal', onComplete: function() {
|
880 |
-
$('#wf-export-prompt-close').on('click', function(e) {
|
881 |
-
e.preventDefault();
|
882 |
-
e.stopPropagation();
|
883 |
-
|
884 |
-
WFAD.colorboxClose();
|
885 |
-
});
|
886 |
-
}});
|
887 |
-
}
|
888 |
-
});
|
889 |
-
});
|
890 |
-
|
891 |
-
$('#wf-import-token').on('keyup', function() {
|
892 |
-
$('#wf-import-options').toggleClass('wf-disabled', $(this).val() == '');
|
893 |
-
});
|
894 |
-
|
895 |
-
$('#wf-import-options').on('click', function(e) {
|
896 |
-
e.preventDefault();
|
897 |
-
e.stopPropagation();
|
898 |
-
|
899 |
-
WFAD.ajax('wordfence_importSettings', {token: $('#wf-import-token').val()}, function(res) {
|
900 |
-
if (res.ok) {
|
901 |
-
var prompt = $('#wfTmpl_importPromptSuccess').tmpl(res);
|
902 |
-
var promptHTML = $("<div />").append(prompt).html();
|
903 |
-
WFAD.colorboxHTML((WFAD.isSmallScreen ? '300px' : '400px'), promptHTML, {overlayClose: false, closeButton: false, className: 'wf-modal', onComplete: function() {
|
904 |
-
$('#wf-import-prompt-reload').on('click', function(e) {
|
905 |
-
e.preventDefault();
|
906 |
-
e.stopPropagation();
|
907 |
-
|
908 |
-
window.location.reload(true);
|
909 |
-
});
|
910 |
-
}});
|
911 |
-
}
|
912 |
-
else {
|
913 |
-
var prompt = $('#wfTmpl_importPromptError').tmpl({err: res.err || 'An unknown error occurred during the import.'});
|
914 |
-
var promptHTML = $("<div />").append(prompt).html();
|
915 |
-
WFAD.colorboxHTML((WFAD.isSmallScreen ? '300px' : '400px'), promptHTML, {overlayClose: false, closeButton: false, className: 'wf-modal', onComplete: function() {
|
916 |
-
$('#wf-import-prompt-close').on('click', function(e) {
|
917 |
-
e.preventDefault();
|
918 |
-
e.stopPropagation();
|
919 |
-
|
920 |
-
WFAD.colorboxClose();
|
921 |
-
});
|
922 |
-
}});
|
923 |
-
}
|
924 |
-
});
|
925 |
-
});
|
926 |
-
});
|
927 |
-
})(jQuery);
|
928 |
-
</script>
|
929 |
-
</div>
|
930 |
-
</div>
|
931 |
-
</div>
|
932 |
-
</div> <!-- end import options -->
|
933 |
</div> <!-- end options block -->
|
934 |
</div> <!-- end content block -->
|
935 |
</div> <!-- end row -->
|
936 |
</div> <!-- end container -->
|
937 |
</div>
|
938 |
-
<script type="text/x-jquery-template" id="wfTmpl_downgradePrompt">
|
939 |
-
<?php
|
940 |
-
echo wfView::create('common/modal-prompt', array(
|
941 |
-
'title' => __('Confirm Downgrade', 'wordfence'),
|
942 |
-
'message' => __('Are you sure you want to downgrade your Wordfence Premium License? This will disable all Premium features and return you to the free version of Wordfence.', 'wordfence'),
|
943 |
-
'primaryButton' => array('id' => 'wf-downgrade-prompt-cancel', 'label' => __('Cancel', 'wordfence'), 'link' => '#'),
|
944 |
-
'secondaryButtons' => array(array('id' => 'wf-downgrade-prompt-downgrade', 'label' => __('Downgrade', 'wordfence'), 'link' => '#')),
|
945 |
-
))->render();
|
946 |
-
?>
|
947 |
-
</script>
|
948 |
-
|
949 |
-
<script type="text/x-jquery-template" id="wfTmpl_exportPromptSuccess">
|
950 |
-
<?php
|
951 |
-
echo wfView::create('common/modal-prompt', array(
|
952 |
-
'title' => __('Export Successful', 'wordfence'),
|
953 |
-
'messageHTML' => '<p>' . __('We successfully exported your site options. To import your site options on another site, copy and paste the token below into the import text box on the destination site. Keep this token secret — it is like a password. If anyone else discovers the token it will allow them to import your options excluding your license.', 'wordfence') . '</p><p><input type="text" class="wf-full-width" value="${token}" onclick="this.select();" /></p>',
|
954 |
-
'primaryButton' => array('id' => 'wf-export-prompt-close', 'label' => __('Close', 'wordfence'), 'link' => '#'),
|
955 |
-
))->render();
|
956 |
-
?>
|
957 |
-
</script>
|
958 |
-
|
959 |
-
<script type="text/x-jquery-template" id="wfTmpl_exportPromptError">
|
960 |
-
<?php
|
961 |
-
echo wfView::create('common/modal-prompt', array(
|
962 |
-
'title' => __('Error during Export', 'wordfence'),
|
963 |
-
'message' => '${err}',
|
964 |
-
'primaryButton' => array('id' => 'wf-export-prompt-close', 'label' => __('Close', 'wordfence'), 'link' => '#'),
|
965 |
-
))->render();
|
966 |
-
?>
|
967 |
-
</script>
|
968 |
-
|
969 |
-
<script type="text/x-jquery-template" id="wfTmpl_importPromptSuccess">
|
970 |
-
<?php
|
971 |
-
echo wfView::create('common/modal-prompt', array(
|
972 |
-
'title' => __('Import Successful', 'wordfence'),
|
973 |
-
'messageHTML' => __('We successfully imported the site options.', 'wordfence'),
|
974 |
-
'primaryButton' => array('id' => 'wf-import-prompt-reload', 'label' => __('Reload', 'wordfence'), 'link' => '#'),
|
975 |
-
))->render();
|
976 |
-
?>
|
977 |
-
</script>
|
978 |
-
|
979 |
-
<script type="text/x-jquery-template" id="wfTmpl_importPromptError">
|
980 |
-
<?php
|
981 |
-
echo wfView::create('common/modal-prompt', array(
|
982 |
-
'title' => __('Error during Import', 'wordfence'),
|
983 |
-
'message' => '${err}',
|
984 |
-
'primaryButton' => array('id' => 'wf-import-prompt-close', 'label' => __('Close', 'wordfence'), 'link' => '#'),
|
985 |
-
))->render();
|
986 |
-
?>
|
987 |
-
</script>
|
229 |
</div>
|
230 |
</div>
|
231 |
</div>
|
232 |
+
<?php
|
233 |
+
echo wfView::create('dashboard/options-group-license', array(
|
234 |
+
'stateKey' => 'global-options-license',
|
235 |
+
))->render();
|
236 |
+
|
237 |
+
echo wfView::create('dashboard/options-group-view-customization', array(
|
238 |
+
'stateKey' => 'global-options-view-customization',
|
239 |
+
))->render();
|
240 |
+
|
241 |
+
echo wfView::create('dashboard/options-group-general', array(
|
242 |
+
'stateKey' => 'global-options-general',
|
243 |
+
))->render();
|
244 |
+
|
245 |
+
echo wfView::create('dashboard/options-group-dashboard', array(
|
246 |
+
'stateKey' => 'global-options-dashboard',
|
247 |
+
))->render();
|
248 |
+
|
249 |
+
echo wfView::create('dashboard/options-group-alert', array(
|
250 |
+
'stateKey' => 'global-options-alert',
|
251 |
+
))->render();
|
252 |
+
|
253 |
+
echo wfView::create('dashboard/options-group-email-summary', array(
|
254 |
+
'stateKey' => 'global-options-email-summary',
|
255 |
+
))->render();
|
256 |
+
|
257 |
+
echo wfView::create('dashboard/options-group-import', array(
|
258 |
+
'stateKey' => 'global-options-import',
|
259 |
+
))->render();
|
260 |
+
?>
|
261 |
+
|
262 |
+
|
263 |
+
|
264 |
+
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
265 |
</div> <!-- end options block -->
|
266 |
</div> <!-- end content block -->
|
267 |
</div> <!-- end row -->
|
268 |
</div> <!-- end container -->
|
269 |
</div>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
lib/menu_firewall_blocking_options.php
CHANGED
@@ -108,7 +108,7 @@ if (wfOnboardingController::shouldShowAttempt3()) {
|
|
108 |
'enabledValue' => 1,
|
109 |
'disabledValue' => 0,
|
110 |
'value' => wfConfig::get('displayTopLevelBlocking') ? 1 : 0,
|
111 |
-
'title' => __('Display
|
112 |
))->render();
|
113 |
?>
|
114 |
</li>
|
@@ -117,82 +117,12 @@ if (wfOnboardingController::shouldShowAttempt3()) {
|
|
117 |
</div>
|
118 |
</div>
|
119 |
</div> <!-- end general options -->
|
120 |
-
|
121 |
-
|
122 |
-
|
123 |
-
|
124 |
-
|
125 |
-
|
126 |
-
<strong><?php _e('Advanced Country Blocking', 'wordfence'); ?></strong>
|
127 |
-
</div>
|
128 |
-
<div class="wf-block-header-action"><div class="wf-block-header-action-disclosure"></div></div>
|
129 |
-
</div>
|
130 |
-
</div>
|
131 |
-
<div class="wf-block-content">
|
132 |
-
<?php if (wfConfig::get('isPaid')): ?>
|
133 |
-
<ul class="wf-block-list">
|
134 |
-
<li>
|
135 |
-
<?php
|
136 |
-
echo wfView::create('options/option-select', array(
|
137 |
-
'selectOptionName' => 'cbl_action',
|
138 |
-
'selectOptions' => array(
|
139 |
-
array('value' => 'block', 'label' => 'Show the standard Wordfence blocked message'),
|
140 |
-
array('value' => 'redir', 'label' => 'Redirect to the URL below'),
|
141 |
-
),
|
142 |
-
'selectValue' => wfConfig::get('cbl_action'),
|
143 |
-
'title' => __('What to do when we block someone', 'wordfence'),
|
144 |
-
'helpLink' => wfSupportController::supportURL(wfSupportController::ITEM_FIREWALL_BLOCKING_OPTION_WHAT_TO_DO),
|
145 |
-
))->render();
|
146 |
-
?>
|
147 |
-
</li>
|
148 |
-
<li>
|
149 |
-
<?php
|
150 |
-
echo wfView::create('options/option-text', array(
|
151 |
-
'textOptionName' => 'cbl_redirURL',
|
152 |
-
'textValue' => wfConfig::get('cbl_redirURL'),
|
153 |
-
'title' => __('URL to redirect blocked users to', 'wordfence'),
|
154 |
-
'placeholder' => __('Must be a full URL (e.g., http://example.com/blocked/)', 'wordfence'),
|
155 |
-
'helpLink' => wfSupportController::supportURL(wfSupportController::ITEM_FIREWALL_BLOCKING_OPTION_REDIRECT),
|
156 |
-
))->render();
|
157 |
-
?>
|
158 |
-
</li>
|
159 |
-
<li>
|
160 |
-
<?php
|
161 |
-
echo wfView::create('options/option-toggled', array(
|
162 |
-
'optionName' => 'cbl_loggedInBlocked',
|
163 |
-
'enabledValue' => 1,
|
164 |
-
'disabledValue' => 0,
|
165 |
-
'value' => wfConfig::get('cbl_loggedInBlocked') ? 1 : 0,
|
166 |
-
'title' => __('Block countries even if they are logged in', 'wordfence'),
|
167 |
-
'helpLink' => wfSupportController::supportURL(wfSupportController::ITEM_FIREWALL_BLOCKING_OPTION_BLOCK_LOGGED_IN),
|
168 |
-
))->render();
|
169 |
-
?>
|
170 |
-
</li>
|
171 |
-
<li>
|
172 |
-
<?php
|
173 |
-
echo wfView::create('blocking/option-bypass-redirect', array(
|
174 |
-
))->render();
|
175 |
-
?>
|
176 |
-
</li>
|
177 |
-
<li>
|
178 |
-
<?php
|
179 |
-
echo wfView::create('blocking/option-bypass-cookie', array(
|
180 |
-
))->render();
|
181 |
-
?>
|
182 |
-
</li>
|
183 |
-
</ul>
|
184 |
-
<?php else: ?>
|
185 |
-
<ul class="wf-flex-vertical wf-padding-add-right-large wf-padding-add-bottom-large">
|
186 |
-
<li><h3><?php _e('Put Geographic Protection In Place With Country Blocking', 'wordfence'); ?></h3></li>
|
187 |
-
<li><p class="wf-no-top"><?php _e('Wordfence country blocking is designed to stop an attack, prevent content theft, or end malicious activity that originates from a geographic region in less than 1/300,000th of a second. Blocking countries who are regularly creating failed logins, a large number of page not found errors, and are clearly engaged in malicious activity is an effective way to protect your site during an attack.', 'wordfence'); ?></p></li>
|
188 |
-
<li><?php echo wfView::create('blocking/country-block-map')->render(); ?></li>
|
189 |
-
<li><a class="wf-btn wf-btn-primary wf-btn-callout-subtle" href="https://www.wordfence.com/gnl1countryBlockUpgrade/wordfence-signup/" target="_blank" rel="noopener noreferrer"><?php _e('Upgrade to Premium', 'wordfence'); ?></a></li>
|
190 |
-
</ul>
|
191 |
-
<?php endif; ?>
|
192 |
-
</div>
|
193 |
-
</div>
|
194 |
-
</div>
|
195 |
-
</div> <!-- end country blocking -->
|
196 |
</div> <!-- end blocking options block -->
|
197 |
</div> <!-- end content block -->
|
198 |
</div> <!-- end row -->
|
108 |
'enabledValue' => 1,
|
109 |
'disabledValue' => 0,
|
110 |
'value' => wfConfig::get('displayTopLevelBlocking') ? 1 : 0,
|
111 |
+
'title' => __('Display Blocking menu option', 'wordfence'),
|
112 |
))->render();
|
113 |
?>
|
114 |
</li>
|
117 |
</div>
|
118 |
</div>
|
119 |
</div> <!-- end general options -->
|
120 |
+
<?php
|
121 |
+
echo wfView::create('blocking/options-group-advanced-country', array(
|
122 |
+
'stateKey' => 'blocking-options-country',
|
123 |
+
'collapseable' => false,
|
124 |
+
))->render();
|
125 |
+
?>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
126 |
</div> <!-- end blocking options block -->
|
127 |
</div> <!-- end content block -->
|
128 |
</div> <!-- end row -->
|
lib/menu_firewall_waf_options.php
CHANGED
@@ -16,8 +16,56 @@ if (isset($_GET['source']) && wfPage::isValidPage($_GET['source'])) {
|
|
16 |
?>
|
17 |
<script type="application/javascript">
|
18 |
(function($) {
|
|
|
|
|
|
|
19 |
$(function() {
|
20 |
document.title = "<?php esc_attr_e('Firewall Options', 'wordfence'); ?>" + " \u2039 " + WFAD.basePageName;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
21 |
});
|
22 |
})(jQuery);
|
23 |
</script>
|
@@ -147,1382 +195,44 @@ if (wfOnboardingController::shouldShowAttempt3()) {
|
|
147 |
</div>
|
148 |
</div>
|
149 |
</div>
|
150 |
-
|
151 |
-
|
152 |
-
|
153 |
-
|
154 |
-
|
155 |
-
|
156 |
-
|
157 |
-
|
158 |
-
|
159 |
-
|
160 |
-
|
161 |
-
|
162 |
-
|
163 |
-
|
164 |
-
|
165 |
-
|
166 |
-
|
167 |
-
|
168 |
-
|
169 |
-
|
170 |
-
|
171 |
-
|
172 |
-
|
173 |
-
|
174 |
-
|
175 |
-
|
176 |
-
|
177 |
-
|
178 |
-
|
179 |
-
|
180 |
-
|
181 |
-
|
182 |
-
|
183 |
-
|
184 |
-
|
185 |
-
|
186 |
-
var select = $(this);
|
187 |
-
var value = select.val();
|
188 |
-
var container = $($(this).data('select2').$container);
|
189 |
-
container.removeClass('wafStatus-enabled wafStatus-learning-mode wafStatus-disabled')
|
190 |
-
.addClass('wafStatus-' + value);
|
191 |
-
|
192 |
-
$('.wafStatus-description').hide();
|
193 |
-
$('#wafStatus-' + value + '-description').show();
|
194 |
-
if (value == 'learning-mode') {
|
195 |
-
$('#waf-learning-mode-grace-period').show();
|
196 |
-
}
|
197 |
-
else {
|
198 |
-
$('#waf-learning-mode-grace-period').hide();
|
199 |
-
}
|
200 |
-
|
201 |
-
var originalValue = select.data('originalValue');
|
202 |
-
if (originalValue == value) {
|
203 |
-
delete WFAD.pendingChanges['wafStatus'];
|
204 |
-
}
|
205 |
-
else {
|
206 |
-
WFAD.pendingChanges['wafStatus'] = value;
|
207 |
-
}
|
208 |
-
|
209 |
-
WFAD.updatePendingChanges();
|
210 |
-
}).val(<?php echo json_encode($wafStatus) ?>).triggerHandler('change');
|
211 |
-
|
212 |
-
$('#waf-learning-mode-grace-period .wf-datetime').datetimepicker({
|
213 |
-
timeFormat: 'hh:mmtt z'
|
214 |
-
}).each(function() {
|
215 |
-
var el = $(this);
|
216 |
-
if (el.attr('data-value')) {
|
217 |
-
el.datetimepicker('setDate', new Date(el.attr('data-value') * 1000));
|
218 |
-
}
|
219 |
-
}).on('change', function() {
|
220 |
-
var value = Math.floor($(this).datetimepicker('getDate').getTime() / 1000);
|
221 |
-
var originalValue = $('#input-learningModeGracePeriod').data('originalValue');
|
222 |
-
if (originalValue == value) {
|
223 |
-
delete WFAD.pendingChanges['learningModeGracePeriod'];
|
224 |
-
}
|
225 |
-
else {
|
226 |
-
WFAD.pendingChanges['learningModeGracePeriod'] = $(this).val();
|
227 |
-
}
|
228 |
-
WFAD.updatePendingChanges();
|
229 |
-
});
|
230 |
-
|
231 |
-
$('#waf-learning-mode-grace-period .wf-option-checkbox').on('click', function(e) {
|
232 |
-
e.preventDefault();
|
233 |
-
e.stopPropagation();
|
234 |
-
|
235 |
-
var originalValue = $(this).data('originalValue');
|
236 |
-
var value = originalValue;
|
237 |
-
var isActive = $(this).hasClass('wf-checked');
|
238 |
-
if (isActive) {
|
239 |
-
$(this).removeClass('wf-checked');
|
240 |
-
$('#waf-learning-mode-grace-period .wf-datetime').attr('disabled', true);
|
241 |
-
value = 0;
|
242 |
-
}
|
243 |
-
else {
|
244 |
-
$(this).addClass('wf-checked');
|
245 |
-
$('#waf-learning-mode-grace-period .wf-datetime').attr('disabled', false);
|
246 |
-
value = 1;
|
247 |
-
|
248 |
-
if (!$('#input-learningModeGracePeriod').val()) {
|
249 |
-
var date = new Date();
|
250 |
-
date.setDate(date.getDate() + 7);
|
251 |
-
$('#input-learningModeGracePeriod').datetimepicker('setDate', date);
|
252 |
-
}
|
253 |
-
}
|
254 |
-
|
255 |
-
if (originalValue == value) {
|
256 |
-
delete WFAD.pendingChanges['learningModeGracePeriodEnabled'];
|
257 |
-
}
|
258 |
-
else {
|
259 |
-
WFAD.pendingChanges['learningModeGracePeriodEnabled'] = value;
|
260 |
-
}
|
261 |
-
|
262 |
-
WFAD.updatePendingChanges();
|
263 |
-
});
|
264 |
-
|
265 |
-
$(window).on('wfOptionsReset', function() {
|
266 |
-
$('#input-wafStatus').val($('#input-wafStatus').data('originalValue')).trigger('change');
|
267 |
-
$('#waf-learning-mode-grace-period .wf-option-checkbox').each(function() {
|
268 |
-
var originalValue = $(this).data('originalValue');
|
269 |
-
$(this).toggleClass('wf-checked', !!originalValue);
|
270 |
-
$('#waf-learning-mode-grace-period .wf-datetime').attr('disabled', !originalValue);
|
271 |
-
});
|
272 |
-
$('.wf-datetime').each(function() {
|
273 |
-
var el = $(this);
|
274 |
-
if (el.attr('data-value')) {
|
275 |
-
el.datetimepicker('setDate', new Date(el.attr('data-value') * 1000));
|
276 |
-
}
|
277 |
-
else {
|
278 |
-
el.val('');
|
279 |
-
}
|
280 |
-
})
|
281 |
-
});
|
282 |
-
});
|
283 |
-
})(jQuery);
|
284 |
-
</script>
|
285 |
-
</p>
|
286 |
-
<div id="waf-learning-mode-grace-period" class="wf-add-bottom" style="display: none;"><div class="waf-learning-mode wf-option-checkbox<?php echo $config->getConfig('learningModeGracePeriodEnabled') ? ' wf-checked' : ''; ?>" data-original-value="<?php echo $config->getConfig('learningModeGracePeriodEnabled') ? 1 : 0; ?>"><i class="wf-ion-ios-checkmark-empty" aria-hidden="true"></i></div><span> <?php _e('Automatically enable on', 'wordfence'); ?> </span><input type="text" name="learningModeGracePeriod" id="input-learningModeGracePeriod" class="wf-datetime wf-form-control" placeholder="Enabled until..." data-value="<?php echo esc_attr($config->getConfig('learningModeGracePeriod') ? (int) $config->getConfig('learningModeGracePeriod') : '') ?>" data-original-value="<?php echo esc_attr($config->getConfig('learningModeGracePeriod') ? (int) $config->getConfig('learningModeGracePeriod') : '') ?>"<?php echo $config->getConfig('learningModeGracePeriodEnabled') ? '' : ' disabled'; ?>></div>
|
287 |
-
<?php endif; ?>
|
288 |
-
</li>
|
289 |
-
<li class="wf-flex-vertical wf-flex-align-left">
|
290 |
-
<h3><?php esc_html_e('Protection Level', 'wordfence'); ?></h3>
|
291 |
-
<?php if ($firewall->protectionMode() == wfFirewall::PROTECTION_MODE_EXTENDED && !$firewall->isSubDirectoryInstallation()): ?>
|
292 |
-
<p class="wf-no-top"><strong><?php _e('Extended Protection:', 'wordfence'); ?></strong> <?php _e('All PHP requests will be processed by the firewall prior to running.', 'wordfence'); ?></p>
|
293 |
-
<p><?php printf(__('If you\'re moving to a new host or a new installation location, you may need to temporarily disable extended protection to avoid any file not found errors. Use this action to remove the configuration changes that enable extended protection mode or you can <a href="%s" target="_blank" rel="noopener noreferrer">remove them manually</a>.', 'wordfence'), wfSupportController::esc_supportURL(wfSupportController::ITEM_FIREWALL_WAF_REMOVE_MANUALLY)); ?></p>
|
294 |
-
<p class="wf-no-top"><a class="wf-btn wf-btn-default" href="#" id="wf-waf-uninstall"><?php _e('Remove Extended Protection', 'wordfence'); ?></a></p>
|
295 |
-
<?php elseif ($firewall->isSubDirectoryInstallation()): ?>
|
296 |
-
<p class="wf-no-top"><strong><?php _e('Existing WAF Installation Detected:', 'wordfence'); ?></strong> <?php _e('You are currently running the Wordfence Web Application Firewall from another WordPress installation. Please configure the firewall to run correctly on this site.', 'wordfence'); ?></p>
|
297 |
-
<p><a class="wf-btn wf-btn-primary" href="#" id="wf-waf-install"><?php _e('Optimize the Wordfence Firewall', 'wordfence'); ?></a></p>
|
298 |
-
<?php else: ?>
|
299 |
-
<p class="wf-no-top"><strong><?php _e('Basic WordPress Protection:', 'wordfence'); ?></strong> <?php _e('The plugin will load as a regular plugin after WordPress has been loaded, and while it can block many malicious requests, some vulnerable plugins or WordPress itself may run vulnerable code before all plugins are loaded.', 'wordfence'); ?></p>
|
300 |
-
<p><a class="wf-btn wf-btn-primary" href="#" id="wf-waf-install"><?php _e('Optimize the Wordfence Firewall', 'wordfence'); ?></a></p>
|
301 |
-
<?php endif; ?>
|
302 |
-
<script type="application/javascript">
|
303 |
-
|
304 |
-
(function($) {
|
305 |
-
$(function() {
|
306 |
-
var validateContinue = function() {
|
307 |
-
var backupsAvailable = $('.wf-waf-backups:visible').data('backups');
|
308 |
-
var backupsDownloaded = $('#wf-waf-server-config').data('backups');
|
309 |
-
|
310 |
-
var matchCount = 0;
|
311 |
-
backupsAvailable = backupsAvailable.sort();
|
312 |
-
backupsDownloaded = backupsDownloaded.sort();
|
313 |
-
for (var i = 0; i < backupsAvailable.length; i++) {
|
314 |
-
for (var n = 0; n < backupsDownloaded.length; n++) {
|
315 |
-
if (backupsAvailable[i] == backupsDownloaded[n]) {
|
316 |
-
matchCount++;
|
317 |
-
}
|
318 |
-
}
|
319 |
-
}
|
320 |
-
|
321 |
-
$('#wf-waf-install-continue, #wf-waf-uninstall-continue').toggleClass('wf-disabled', matchCount != backupsAvailable.length);
|
322 |
-
};
|
323 |
-
|
324 |
-
var installUninstallResponseHandler = function(action, res) {
|
325 |
-
var modal = $('.wf-modal-title').closest('.wf-modal');
|
326 |
-
if (res.needsCredentials) {
|
327 |
-
var replacement = $(res.html);
|
328 |
-
modal.replaceWith(replacement);
|
329 |
-
modal = replacement;
|
330 |
-
|
331 |
-
var form = replacement.find('#request-filesystem-credentials-form').closest('form');
|
332 |
-
form.find('input[type="submit"]').attr('type', 'hidden');
|
333 |
-
form.on('submit', function(e) {
|
334 |
-
e.preventDefault();
|
335 |
-
e.stopPropagation();
|
336 |
-
|
337 |
-
WFAD.ajax(action, form.serialize(), function(res) {
|
338 |
-
installUninstallResponseHandler(action, res);
|
339 |
-
});
|
340 |
-
});
|
341 |
-
modal.find('#wf-waf-modal-continue').on('click', function(e) {
|
342 |
-
e.preventDefault();
|
343 |
-
e.stopPropagation();
|
344 |
-
|
345 |
-
form.trigger('submit');
|
346 |
-
});
|
347 |
-
$.wfcolorbox.resize();
|
348 |
-
}
|
349 |
-
else if (res.credentialsFailed || res.installationFailed || res.uninstallationFailed) {
|
350 |
-
var replacement = $(res.html);
|
351 |
-
modal.replaceWith(replacement);
|
352 |
-
modal = replacement;
|
353 |
-
modal.find('#wf-waf-modal-continue').on('click', function(e) {
|
354 |
-
e.preventDefault();
|
355 |
-
e.stopPropagation();
|
356 |
-
|
357 |
-
WFAD.colorboxClose();
|
358 |
-
});
|
359 |
-
$.wfcolorbox.resize();
|
360 |
-
}
|
361 |
-
else if (res.uninstallationWaiting) {
|
362 |
-
var replacement = $(res.html);
|
363 |
-
modal.replaceWith(replacement);
|
364 |
-
modal = replacement;
|
365 |
-
modal.find('#wf-waf-modal-continue').on('click', function(e) {
|
366 |
-
e.preventDefault();
|
367 |
-
e.stopPropagation();
|
368 |
-
|
369 |
-
WFAD.colorboxClose();
|
370 |
-
}).addClass('wf-disabled');
|
371 |
-
|
372 |
-
var timeout = res.timeout; //In seconds
|
373 |
-
setTimeout(function() {
|
374 |
-
modal.find('#wf-waf-modal-continue').removeClass('wf-disabled');
|
375 |
-
var payload = {serverConfiguration: res.serverConfiguration, iniModified: 1};
|
376 |
-
if (res.credentials) {
|
377 |
-
payload['credentials'] = res.credentials;
|
378 |
-
payload['credentialsSignature'] = res.credentialsSignature;
|
379 |
-
}
|
380 |
-
WFAD.ajax(action, payload, function(res) {
|
381 |
-
installUninstallResponseHandler(action, res);
|
382 |
-
});
|
383 |
-
}, (timeout + 10) * 1000);
|
384 |
-
$.wfcolorbox.resize();
|
385 |
-
}
|
386 |
-
else if (res.ok) {
|
387 |
-
var replacement = $(res.html);
|
388 |
-
modal.replaceWith(replacement);
|
389 |
-
modal = replacement;
|
390 |
-
modal.find('#wf-waf-modal-continue').on('click', function(e) {
|
391 |
-
e.preventDefault();
|
392 |
-
e.stopPropagation();
|
393 |
-
|
394 |
-
window.location.reload(true);
|
395 |
-
});
|
396 |
-
$.wfcolorbox.resize();
|
397 |
-
}
|
398 |
-
else {
|
399 |
-
WFAD.colorboxModal((WFAD.isSmallScreen ? '300px' : '400px'), 'Error During Setup', res.errorMsg);
|
400 |
-
}
|
401 |
-
};
|
402 |
-
|
403 |
-
var installUninstallHandler = function(html) {
|
404 |
-
WFAD.colorboxHTML('800px', html, {overlayClose: false, closeButton: false, className: 'wf-modal', onComplete: function() {
|
405 |
-
$('#wf-waf-server-config').data('backups', []);
|
406 |
-
$('.wf-waf-backup-download').on('click', function(e) {
|
407 |
-
var backupIndex = parseInt($(this).data('backupIndex'));
|
408 |
-
var backupsAvailable = $(this).closest('.wf-waf-backups').data('backups');
|
409 |
-
var backupsDownloaded = $('#wf-waf-server-config').data('backups');
|
410 |
-
var found = false;
|
411 |
-
for (var i = 0; i < backupsDownloaded.length; i++) {
|
412 |
-
if (backupsDownloaded[i] == backupsAvailable[backupIndex]) {
|
413 |
-
found = true;
|
414 |
-
break;
|
415 |
-
}
|
416 |
-
}
|
417 |
-
|
418 |
-
if (!found) {
|
419 |
-
backupsDownloaded.push(backupsAvailable[backupIndex]);
|
420 |
-
$('#wf-waf-server-config').data('backups', backupsDownloaded);
|
421 |
-
validateContinue();
|
422 |
-
}
|
423 |
-
});
|
424 |
-
|
425 |
-
$('#wf-waf-server-config').select2();
|
426 |
-
|
427 |
-
$('#wf-waf-include-prepend > li').each(function(index, element) {
|
428 |
-
$(element).on('click', function(e) {
|
429 |
-
e.preventDefault();
|
430 |
-
e.stopPropagation();
|
431 |
-
|
432 |
-
var control = $(this).closest('.wf-switch');
|
433 |
-
var value = $(this).data('optionValue');
|
434 |
-
|
435 |
-
control.find('li').each(function() {
|
436 |
-
$(this).toggleClass('wf-active', value == $(this).data('optionValue'));
|
437 |
-
});
|
438 |
-
});
|
439 |
-
});
|
440 |
-
|
441 |
-
var nginxNotice = $('.wf-nginx-waf-config');
|
442 |
-
$('#wf-waf-server-config').on('change', function() {
|
443 |
-
var el = $(this);
|
444 |
-
$('.wf-waf-backups').hide();
|
445 |
-
$('.wf-waf-backups-' + el.val().replace(/[^a-z0-9\-]/i, '')).show();
|
446 |
-
|
447 |
-
if (nginxNotice.length) { //Install only
|
448 |
-
if (el.val() == 'nginx') {
|
449 |
-
nginxNotice.fadeIn(400, function () {
|
450 |
-
$.wfcolorbox.resize();
|
451 |
-
});
|
452 |
-
}
|
453 |
-
else {
|
454 |
-
nginxNotice.fadeOut(400, function () {
|
455 |
-
$.wfcolorbox.resize();
|
456 |
-
});
|
457 |
-
}
|
458 |
-
}
|
459 |
-
else {
|
460 |
-
$.wfcolorbox.resize();
|
461 |
-
}
|
462 |
-
|
463 |
-
validateContinue();
|
464 |
-
}).triggerHandler('change');
|
465 |
-
|
466 |
-
$('#wf-waf-install-continue').on('click', function(e) {
|
467 |
-
e.preventDefault();
|
468 |
-
e.stopPropagation();
|
469 |
-
|
470 |
-
var serverConfiguration = $('#wf-waf-server-config').val();
|
471 |
-
var currentAutoPrepend = $('#wf-waf-include-prepend .wf-active').data('optionValue');
|
472 |
-
|
473 |
-
WFAD.ajax('wordfence_installAutoPrepend', {serverConfiguration: serverConfiguration, currentAutoPrepend: currentAutoPrepend}, function(res) {
|
474 |
-
installUninstallResponseHandler('wordfence_installAutoPrepend', res);
|
475 |
-
});
|
476 |
-
});
|
477 |
-
|
478 |
-
$('#wf-waf-uninstall-continue').on('click', function(e) {
|
479 |
-
e.preventDefault();
|
480 |
-
e.stopPropagation();
|
481 |
-
|
482 |
-
var serverConfiguration = $('#wf-waf-server-config').val();
|
483 |
-
|
484 |
-
WFAD.ajax('wordfence_uninstallAutoPrepend', {serverConfiguration: serverConfiguration}, function(res) {
|
485 |
-
installUninstallResponseHandler('wordfence_uninstallAutoPrepend', res);
|
486 |
-
});
|
487 |
-
});
|
488 |
-
}});
|
489 |
-
};
|
490 |
-
|
491 |
-
$('#wf-waf-install').on('click', function(e) {
|
492 |
-
e.preventDefault();
|
493 |
-
e.stopPropagation();
|
494 |
-
|
495 |
-
var installer = $('#wafTmpl_install').tmpl();
|
496 |
-
var installerHTML = $("<div />").append(installer).html();
|
497 |
-
installUninstallHandler(installerHTML);
|
498 |
-
});
|
499 |
-
|
500 |
-
$('#wf-waf-uninstall').on('click', function(e) {
|
501 |
-
e.preventDefault();
|
502 |
-
e.stopPropagation();
|
503 |
-
|
504 |
-
var uninstaller = $('#wafTmpl_uninstall').tmpl();
|
505 |
-
var uninstallerHTML = $("<div />").append(uninstaller).html();
|
506 |
-
installUninstallHandler(uninstallerHTML);
|
507 |
-
});
|
508 |
-
|
509 |
-
if (window.location.hash) {
|
510 |
-
var hashes = window.location.hash.split('#');
|
511 |
-
for (var i = 0; i < hashes.length; i++) {
|
512 |
-
if (hashes[i] == 'configureAutoPrepend') {
|
513 |
-
$('#wf-waf-install').trigger('click');
|
514 |
-
history.replaceState('', document.title, window.location.pathname + window.location.search);
|
515 |
-
}
|
516 |
-
else if (hashes[i] == 'removeAutoPrepend') {
|
517 |
-
$('#wf-waf-uninstall').trigger('click');
|
518 |
-
history.replaceState('', document.title, window.location.pathname + window.location.search);
|
519 |
-
}
|
520 |
-
}
|
521 |
-
}
|
522 |
-
|
523 |
-
$(window).on('hashchange', function () {
|
524 |
-
var hashes = window.location.hash.split('#');
|
525 |
-
for (var i = 0; i < hashes.length; i++) {
|
526 |
-
if (hashes[i] == 'configureAutoPrepend') {
|
527 |
-
$('#wf-waf-install').trigger('click');
|
528 |
-
history.replaceState('', document.title, window.location.pathname + window.location.search);
|
529 |
-
}
|
530 |
-
else if (hashes[i] == 'removeAutoPrepend') {
|
531 |
-
$('#wf-waf-uninstall').trigger('click');
|
532 |
-
history.replaceState('', document.title, window.location.pathname + window.location.search);
|
533 |
-
}
|
534 |
-
}
|
535 |
-
});
|
536 |
-
});
|
537 |
-
})(jQuery);
|
538 |
-
</script>
|
539 |
-
</li>
|
540 |
-
<li class="wf-flex-vertical wf-flex-align-left">
|
541 |
-
<h3><?php esc_html_e('Real-Time IP Blacklist', 'wordfence'); ?></h3>
|
542 |
-
<?php if ($firewall->ruleMode() == wfFirewall::RULE_MODE_COMMUNITY): ?>
|
543 |
-
<p class="wf-no-top"><strong><?php _e('Premium Feature:', 'wordfence'); ?></strong> <?php _e('This feature blocks all traffic from IPs with a high volume of recent malicious activity using Wordfence\'s real-time blacklist.', 'wordfence'); ?></p>
|
544 |
-
<p><a class="wf-btn wf-btn-primary wf-btn-callout-subtle" href="https://www.wordfence.com/gnl1blacklistUpgrade/wordfence-signup/#premium-order-form" target="_blank" rel="noopener noreferrer"><?php _e('Upgrade to Premium', 'wordfence'); ?></a> <a class="wf-btn wf-btn-callout-subtle wf-btn-default" href="https://www.wordfence.com/gnl1blacklistLearn/wordfence-signup/" target="_blank" rel="noopener noreferrer"><?php _e('Learn More', 'wordfence'); ?></a></p>
|
545 |
-
<?php elseif ($firewall->isSubDirectoryInstallation()): ?>
|
546 |
-
<p class="wf-no-top"><?php printf(__('You are currently running the Wordfence Web Application Firewall from another WordPress installation. Please <a href="%s">click here</a> to configure the Firewall to run correctly on this site.', 'wordfence'), esc_attr(network_admin_url('admin.php?page=WordfenceWAF&subpage=waf_options#configureAutoPrepend'))); ?></p>
|
547 |
-
<?php else: ?>
|
548 |
-
<p class="wf-no-top"><?php _e('This feature blocks all traffic from IPs with a high volume of recent malicious activity using Wordfence\'s real-time blacklist.', 'wordfence'); ?></p>
|
549 |
-
<div class="wf-option wf-option-switch wf-padding-add-bottom" data-option-name="disableWAFBlacklistBlocking" data-original-value="<?php echo $config->getConfig('disableWAFBlacklistBlocking') ? '1': '0'; ?>">
|
550 |
-
<ul class="wf-switch">
|
551 |
-
<?php
|
552 |
-
$states = array(
|
553 |
-
array('value' => '1', 'label' => __('Disabled', 'wordfence')),
|
554 |
-
array('value' => '0', 'label' => __('Enabled', 'wordfence')),
|
555 |
-
);
|
556 |
-
|
557 |
-
foreach ($states as $s):
|
558 |
-
?>
|
559 |
-
<li<?php if ($s['value'] == ($config->getConfig('disableWAFBlacklistBlocking') ? '1': '0')) { echo ' class="wf-active"'; } ?> data-option-value="<?php echo esc_attr($s['value']); ?>"><?php echo esc_html($s['label']); ?></li>
|
560 |
-
<?php endforeach; ?>
|
561 |
-
</ul>
|
562 |
-
</div>
|
563 |
-
<?php endif; ?>
|
564 |
-
<script type="application/javascript">
|
565 |
-
|
566 |
-
(function($) {
|
567 |
-
$(function() {
|
568 |
-
|
569 |
-
});
|
570 |
-
})(jQuery);
|
571 |
-
</script>
|
572 |
-
</li>
|
573 |
-
</ul>
|
574 |
-
</div>
|
575 |
-
</div>
|
576 |
-
</div>
|
577 |
-
</div> <!-- end firewall status -->
|
578 |
-
<div class="wf-row">
|
579 |
-
<div class="wf-col-xs-12">
|
580 |
-
<div class="wf-block<?php echo (wfPersistenceController::shared()->isActive('waf-options-advanced') ? ' wf-active' : '') ?>" data-persistence-key="waf-options-advanced">
|
581 |
-
<div class="wf-block-header">
|
582 |
-
<div class="wf-block-header-content">
|
583 |
-
<div class="wf-block-title">
|
584 |
-
<strong><?php _e('Advanced Firewall Options', 'wordfence'); ?></strong>
|
585 |
-
</div>
|
586 |
-
<div class="wf-block-header-action"><div class="wf-block-header-action-disclosure"></div></div>
|
587 |
-
</div>
|
588 |
-
</div>
|
589 |
-
<div class="wf-block-content">
|
590 |
-
<ul class="wf-block-list">
|
591 |
-
<li>
|
592 |
-
<?php
|
593 |
-
echo wfView::create('options/option-toggled', array(
|
594 |
-
'optionName' => 'disableWAFIPBlocking',
|
595 |
-
'enabledValue' => 1,
|
596 |
-
'disabledValue' => 0,
|
597 |
-
'value' => $config->getConfig('disableWAFIPBlocking') ? 1 : 0,
|
598 |
-
'title' => __('Delay IP and Country blocking until after WordPress and plugins have loaded (only process firewall rules early)', 'wordfence'),
|
599 |
-
'subtitle' => ($firewall->isSubDirectoryInstallation() ? __('You are currently running the WAF from another WordPress installation. This option can be changed once you configure the firewall to run correctly on this site.', 'wordfence') : ''),
|
600 |
-
'helpLink' => wfSupportController::supportURL(wfSupportController::ITEM_FIREWALL_WAF_OPTION_DELAY_BLOCKING),
|
601 |
-
'disabled' => $firewall->isSubDirectoryInstallation(),
|
602 |
-
))->render();
|
603 |
-
?>
|
604 |
-
</li>
|
605 |
-
<li>
|
606 |
-
<?php
|
607 |
-
echo wfView::create('options/option-textarea', array(
|
608 |
-
'textOptionName' => 'whitelisted',
|
609 |
-
'textValue' => wfUtils::cleanupOneEntryPerLine(wfConfig::get('whitelisted')),
|
610 |
-
'title' => __('Whitelisted IP addresses that bypass all rules', 'wordfence'),
|
611 |
-
'subtitleHTML' => __('Whitelisted IPs must be separated by commas or placed on separate lines. You can specify ranges using the following formats: 127.0.0.1/24, 127.0.0.[1-100], or 127.0.0.1 - 127.0.1.100<br/>Wordfence automatically whitelists <a href="http://en.wikipedia.org/wiki/Private_network" target="_blank" rel="noopener noreferrer">private networks</a> because these are not routable on the public Internet.', 'wordfence'),
|
612 |
-
'helpLink' => wfSupportController::supportURL(wfSupportController::ITEM_FIREWALL_WAF_OPTION_WHITELISTED_IPS),
|
613 |
-
))->render();
|
614 |
-
?>
|
615 |
-
</li>
|
616 |
-
<li>
|
617 |
-
<?php
|
618 |
-
echo wfView::create('options/option-textarea', array(
|
619 |
-
'textOptionName' => 'bannedURLs',
|
620 |
-
'textValue' => wfUtils::cleanupOneEntryPerLine(wfConfig::get('bannedURLs')),
|
621 |
-
'title' => __('Immediately block IPs that access these URLs', 'wordfence'),
|
622 |
-
'subtitle' => __('Separate multiple URLs with commas or place them on separate lines. Asterisks are wildcards, but use with care. If you see an attacker repeatedly probing your site for a known vulnerability you can use this to immediately block them. All URLs must start with a "/" without quotes and must be relative. e.g. /badURLone/, /bannedPage.html, /dont-access/this/URL/, /starts/with-*', 'wordfence'),
|
623 |
-
'helpLink' => wfSupportController::supportURL(wfSupportController::ITEM_FIREWALL_WAF_OPTION_IMMEDIATELY_BLOCK_URLS),
|
624 |
-
))->render();
|
625 |
-
?>
|
626 |
-
</li>
|
627 |
-
<li>
|
628 |
-
<?php
|
629 |
-
echo wfView::create('options/option-textarea', array(
|
630 |
-
'textOptionName' => 'wafAlertWhitelist',
|
631 |
-
'textValue' => wfUtils::cleanupOneEntryPerLine(wfConfig::get('wafAlertWhitelist')),
|
632 |
-
'title' => __('Ignored IP addresses for Wordfence Web Application Firewall alerting', 'wordfence'),
|
633 |
-
'subtitle' => __('Ignored IPs must be separated by commas or placed on separate lines. These addresses will be ignored from any alerts about increased attacks and can be used to ignore things like standalone website security scanners.', 'wordfence'),
|
634 |
-
'helpLink' => wfSupportController::supportURL(wfSupportController::ITEM_FIREWALL_WAF_IGNORED_ALERT_IPS),
|
635 |
-
))->render();
|
636 |
-
?>
|
637 |
-
</li>
|
638 |
-
<li>
|
639 |
-
<?php
|
640 |
-
echo wfView::create('waf/option-rules', array(
|
641 |
-
'firewall' => $firewall,
|
642 |
-
))->render();
|
643 |
-
?>
|
644 |
-
</li>
|
645 |
-
</ul>
|
646 |
-
</div>
|
647 |
-
</div>
|
648 |
-
</div>
|
649 |
-
</div> <!-- end advanced firewall options -->
|
650 |
-
<div class="wf-row">
|
651 |
-
<div class="wf-col-xs-12">
|
652 |
-
<div class="wf-block<?php echo (wfPersistenceController::shared()->isActive('waf-options-bruteforce') ? ' wf-active' : '') ?>" data-persistence-key="waf-options-bruteforce">
|
653 |
-
<div class="wf-block-header">
|
654 |
-
<div class="wf-block-header-content">
|
655 |
-
<div class="wf-block-title">
|
656 |
-
<strong><?php _e('Brute Force Protection', 'wordfence'); ?></strong>
|
657 |
-
</div>
|
658 |
-
<div class="wf-block-header-action"><div class="wf-block-header-action-disclosure"></div></div>
|
659 |
-
</div>
|
660 |
-
</div>
|
661 |
-
<div class="wf-block-content">
|
662 |
-
<ul class="wf-block-list">
|
663 |
-
<li>
|
664 |
-
<?php
|
665 |
-
echo wfView::create('options/option-switch', array(
|
666 |
-
'optionName' => 'loginSecurityEnabled',
|
667 |
-
'value' => wfConfig::get('loginSecurityEnabled') ? '1': '0',
|
668 |
-
'titleHTML' => '<strong>' . __('Enable brute force protection', 'wordfence') . '</strong>',
|
669 |
-
'subtitle' => __('This option enables all "Brute Force Protection" options, including two-factor authentication, strong password enforcement, and invalid login throttling. You can modify individual options below.', 'wordfence'),
|
670 |
-
'states' => array(
|
671 |
-
array('value' => '0', 'label' => __('Off', 'wordfence')),
|
672 |
-
array('value' => '1', 'label' => __('On', 'wordfence')),
|
673 |
-
),
|
674 |
-
'helpLink' => wfSupportController::supportURL(wfSupportController::ITEM_FIREWALL_WAF_OPTION_ENABLE_LOGIN_SECURITY),
|
675 |
-
'noSpacer' => true,
|
676 |
-
'alignment' => 'wf-right',
|
677 |
-
))->render();
|
678 |
-
?>
|
679 |
-
</li>
|
680 |
-
<li>
|
681 |
-
<?php
|
682 |
-
$breakpoints = array(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 20, 30, 40, 50, 100, 200, 500);
|
683 |
-
$options = array();
|
684 |
-
foreach ($breakpoints as $b) {
|
685 |
-
$options[] = array('value' => $b, 'label' => $b);
|
686 |
-
}
|
687 |
-
echo wfView::create('options/option-select', array(
|
688 |
-
'selectOptionName' => 'loginSec_maxFailures',
|
689 |
-
'selectOptions' => $options,
|
690 |
-
'selectValue' => wfConfig::get('loginSec_maxFailures'),
|
691 |
-
'title' => __('Lock out after how many login failures', 'wordfence'),
|
692 |
-
'helpLink' => wfSupportController::supportURL(wfSupportController::ITEM_FIREWALL_WAF_OPTION_LOCK_OUT_FAILURE_COUNT),
|
693 |
-
))->render();
|
694 |
-
?>
|
695 |
-
</li>
|
696 |
-
<li>
|
697 |
-
<?php
|
698 |
-
$breakpoints = array(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 20, 30, 40, 50, 100, 200, 500);
|
699 |
-
$options = array();
|
700 |
-
foreach ($breakpoints as $b) {
|
701 |
-
$options[] = array('value' => $b, 'label' => $b);
|
702 |
-
}
|
703 |
-
echo wfView::create('options/option-select', array(
|
704 |
-
'selectOptionName' => 'loginSec_maxForgotPasswd',
|
705 |
-
'selectOptions' => $options,
|
706 |
-
'selectValue' => wfConfig::get('loginSec_maxForgotPasswd'),
|
707 |
-
'title' => __('Lock out after how many forgot password attempts', 'wordfence'),
|
708 |
-
'helpLink' => wfSupportController::supportURL(wfSupportController::ITEM_FIREWALL_WAF_OPTION_LOCK_OUT_FORGOT_PASSWORD_COUNT),
|
709 |
-
))->render();
|
710 |
-
?>
|
711 |
-
</li>
|
712 |
-
<li>
|
713 |
-
<?php
|
714 |
-
$breakpoints = array(5, 10, 30, 60, 120, 240, 360, 720, 1440);
|
715 |
-
$options = array();
|
716 |
-
foreach ($breakpoints as $b) {
|
717 |
-
$options[] = array('value' => $b, 'label' => wfUtils::makeDuration($b * 60));
|
718 |
-
}
|
719 |
-
echo wfView::create('options/option-select', array(
|
720 |
-
'selectOptionName' => 'loginSec_countFailMins',
|
721 |
-
'selectOptions' => $options,
|
722 |
-
'selectValue' => wfConfig::getInt('loginSec_countFailMins'),
|
723 |
-
'title' => __('Count failures over what time period', 'wordfence'),
|
724 |
-
'helpLink' => wfSupportController::supportURL(wfSupportController::ITEM_FIREWALL_WAF_OPTION_COUNT_TIME_PERIOD),
|
725 |
-
))->render();
|
726 |
-
?>
|
727 |
-
</li>
|
728 |
-
<li>
|
729 |
-
<?php
|
730 |
-
$breakpoints = array(5, 10, 30, 60, 120, 240, 360, 720, 1440, 2880, 7200, 14400, 28800, 43200, 86400);
|
731 |
-
$options = array();
|
732 |
-
foreach ($breakpoints as $b) {
|
733 |
-
$options[] = array('value' => $b, 'label' => wfUtils::makeDuration($b * 60));
|
734 |
-
}
|
735 |
-
echo wfView::create('options/option-select', array(
|
736 |
-
'selectOptionName' => 'loginSec_lockoutMins',
|
737 |
-
'selectOptions' => $options,
|
738 |
-
'selectValue' => wfConfig::getInt('loginSec_lockoutMins'),
|
739 |
-
'title' => __('Amount of time a user is locked out', 'wordfence'),
|
740 |
-
'helpLink' => wfSupportController::supportURL(wfSupportController::ITEM_FIREWALL_WAF_OPTION_LOCKOUT_DURATION),
|
741 |
-
))->render();
|
742 |
-
?>
|
743 |
-
</li>
|
744 |
-
<li>
|
745 |
-
<?php
|
746 |
-
echo wfView::create('options/option-toggled', array(
|
747 |
-
'optionName' => 'loginSec_lockInvalidUsers',
|
748 |
-
'enabledValue' => 1,
|
749 |
-
'disabledValue' => 0,
|
750 |
-
'value' => wfConfig::get('loginSec_lockInvalidUsers') ? 1 : 0,
|
751 |
-
'title' => __('Immediately lock out invalid usernames', 'wordfence'),
|
752 |
-
'helpLink' => wfSupportController::supportURL(wfSupportController::ITEM_FIREWALL_WAF_OPTION_IMMEDIATELY_LOCK_OUT_INVALID_USERS),
|
753 |
-
))->render();
|
754 |
-
?>
|
755 |
-
</li>
|
756 |
-
<li>
|
757 |
-
<?php
|
758 |
-
$blacklist = wfConfig::get('loginSec_userBlacklist', '');
|
759 |
-
if (empty($blacklist)) {
|
760 |
-
$users = array();
|
761 |
-
}
|
762 |
-
else {
|
763 |
-
$users = explode("\n", wfUtils::cleanupOneEntryPerLine($blacklist));
|
764 |
-
}
|
765 |
-
|
766 |
-
echo wfView::create('options/option-token', array(
|
767 |
-
'tokenOptionName' => 'loginSec_userBlacklist',
|
768 |
-
'tokenValue' => $users,
|
769 |
-
'title' => __('Immediately block the IP of users who try to sign in as these usernames', 'wordfence'),
|
770 |
-
'subtitle' => __('Hit enter to add a username', 'wordfence'),
|
771 |
-
'helpLink' => wfSupportController::supportURL(wfSupportController::ITEM_FIREWALL_WAF_OPTION_IMMEDIATELY_BLOCK_USERS),
|
772 |
-
))->render();
|
773 |
-
?>
|
774 |
-
</li>
|
775 |
-
<li>
|
776 |
-
<?php
|
777 |
-
echo wfView::create('options/option-label', array(
|
778 |
-
'titleHTML' => '<strong>' . __('Additional Options', 'wordfence') . '</strong>',
|
779 |
-
'noSpacer' => true,
|
780 |
-
))->render();
|
781 |
-
?>
|
782 |
-
</li>
|
783 |
-
<li>
|
784 |
-
<?php
|
785 |
-
echo wfView::create('options/option-toggled-select', array(
|
786 |
-
'toggleOptionName' => 'loginSec_strongPasswds_enabled',
|
787 |
-
'enabledToggleValue' => 1,
|
788 |
-
'disabledToggleValue' => 0,
|
789 |
-
'toggleValue' => !!wfConfig::get('loginSec_strongPasswds_enabled') ? 1 : 0,
|
790 |
-
'selectOptionName' => 'loginSec_strongPasswds',
|
791 |
-
'selectOptions' => array(array('value' => 'pubs', 'label' => __('Force admins and publishers to use strong passwords (recommended)', 'wordfence')), array('value' => 'all', 'label' => __('Force all members to use strong passwords', 'wordfence'))),
|
792 |
-
'selectValue' => wfConfig::get('loginSec_strongPasswds'),
|
793 |
-
'title' => __('Enforce strong passwords', 'wordfence'),
|
794 |
-
'helpLink' => wfSupportController::supportURL(wfSupportController::ITEM_FIREWALL_WAF_OPTION_ENFORCE_STRONG_PASSWORDS),
|
795 |
-
))->render();
|
796 |
-
?>
|
797 |
-
</li>
|
798 |
-
<li>
|
799 |
-
<?php
|
800 |
-
echo wfView::create('options/option-toggled', array(
|
801 |
-
'optionName' => 'loginSec_maskLoginErrors',
|
802 |
-
'enabledValue' => 1,
|
803 |
-
'disabledValue' => 0,
|
804 |
-
'value' => wfConfig::get('loginSec_maskLoginErrors') ? 1 : 0,
|
805 |
-
'title' => __('Don\'t let WordPress reveal valid users in login errors', 'wordfence'),
|
806 |
-
'helpLink' => wfSupportController::supportURL(wfSupportController::ITEM_FIREWALL_WAF_OPTION_MASK_LOGIN_ERRORS),
|
807 |
-
))->render();
|
808 |
-
?>
|
809 |
-
</li>
|
810 |
-
<li>
|
811 |
-
<?php
|
812 |
-
echo wfView::create('options/option-toggled', array(
|
813 |
-
'optionName' => 'loginSec_blockAdminReg',
|
814 |
-
'enabledValue' => 1,
|
815 |
-
'disabledValue' => 0,
|
816 |
-
'value' => wfConfig::get('loginSec_blockAdminReg') ? 1 : 0,
|
817 |
-
'title' => __('Prevent users registering \'admin\' username if it doesn\'t exist', 'wordfence'),
|
818 |
-
'helpLink' => wfSupportController::supportURL(wfSupportController::ITEM_FIREWALL_WAF_OPTION_PREVENT_ADMIN_REGISTRATION),
|
819 |
-
))->render();
|
820 |
-
?>
|
821 |
-
</li>
|
822 |
-
<li>
|
823 |
-
<?php
|
824 |
-
echo wfView::create('options/option-toggled', array(
|
825 |
-
'optionName' => 'loginSec_disableAuthorScan',
|
826 |
-
'enabledValue' => 1,
|
827 |
-
'disabledValue' => 0,
|
828 |
-
'value' => wfConfig::get('loginSec_disableAuthorScan') ? 1 : 0,
|
829 |
-
'title' => __('Prevent discovery of usernames through \'/?author=N\' scans, the oEmbed API, and the WordPress REST API', 'wordfence'),
|
830 |
-
'helpLink' => wfSupportController::supportURL(wfSupportController::ITEM_FIREWALL_WAF_OPTION_PREVENT_AUTHOR_SCAN),
|
831 |
-
))->render();
|
832 |
-
?>
|
833 |
-
</li>
|
834 |
-
<li>
|
835 |
-
<?php
|
836 |
-
echo wfView::create('options/option-toggled', array(
|
837 |
-
'optionName' => 'other_blockBadPOST',
|
838 |
-
'enabledValue' => 1,
|
839 |
-
'disabledValue' => 0,
|
840 |
-
'value' => wfConfig::get('other_blockBadPOST') ? 1 : 0,
|
841 |
-
'title' => __('Block IPs who send POST requests with blank User-Agent and Referer', 'wordfence'),
|
842 |
-
'helpLink' => wfSupportController::supportURL(wfSupportController::ITEM_FIREWALL_WAF_OPTION_BLOCK_BAD_POST),
|
843 |
-
))->render();
|
844 |
-
?>
|
845 |
-
</li>
|
846 |
-
<li>
|
847 |
-
<?php
|
848 |
-
echo wfView::create('options/option-toggled', array(
|
849 |
-
'optionName' => 'other_pwStrengthOnUpdate',
|
850 |
-
'enabledValue' => 1,
|
851 |
-
'disabledValue' => 0,
|
852 |
-
'value' => wfConfig::get('other_pwStrengthOnUpdate') ? 1 : 0,
|
853 |
-
'title' => __('Check password strength on profile update', 'wordfence'),
|
854 |
-
'helpLink' => wfSupportController::supportURL(wfSupportController::ITEM_FIREWALL_WAF_OPTION_CHECK_PASSWORD),
|
855 |
-
))->render();
|
856 |
-
?>
|
857 |
-
</li>
|
858 |
-
<li>
|
859 |
-
<?php
|
860 |
-
echo wfView::create('options/option-toggled', array(
|
861 |
-
'optionName' => 'other_WFNet',
|
862 |
-
'enabledValue' => 1,
|
863 |
-
'disabledValue' => 0,
|
864 |
-
'value' => wfConfig::get('other_WFNet') ? 1 : 0,
|
865 |
-
'title' => __('Participate in the Real-Time WordPress Security Network', 'wordfence'),
|
866 |
-
'helpLink' => wfSupportController::supportURL(wfSupportController::ITEM_FIREWALL_WAF_OPTION_PARTICIPATE_WFSN),
|
867 |
-
))->render();
|
868 |
-
?>
|
869 |
-
</li>
|
870 |
-
</ul>
|
871 |
-
</div>
|
872 |
-
</div>
|
873 |
-
</div>
|
874 |
-
</div> <!-- end brute force protection -->
|
875 |
-
<div class="wf-row">
|
876 |
-
<div class="wf-col-xs-12">
|
877 |
-
<div class="wf-block<?php echo (wfPersistenceController::shared()->isActive('waf-options-ratelimiting') ? ' wf-active' : '') ?>" data-persistence-key="waf-options-ratelimiting">
|
878 |
-
<div class="wf-block-header">
|
879 |
-
<div class="wf-block-header-content">
|
880 |
-
<div class="wf-block-title">
|
881 |
-
<strong><?php _e('Rate Limiting', 'wordfence'); ?></strong>
|
882 |
-
</div>
|
883 |
-
<div class="wf-block-header-action"><div class="wf-block-header-action-disclosure"></div></div>
|
884 |
-
</div>
|
885 |
-
</div>
|
886 |
-
<div class="wf-block-content">
|
887 |
-
<ul class="wf-block-list">
|
888 |
-
<li>
|
889 |
-
<?php
|
890 |
-
echo wfView::create('options/option-switch', array(
|
891 |
-
'optionName' => 'firewallEnabled',
|
892 |
-
'value' => wfConfig::get('firewallEnabled') ? '1': '0',
|
893 |
-
'title' => __('Enable Rate Limiting and Advanced Blocking', 'wordfence'),
|
894 |
-
'subtitle' => __('NOTE: This checkbox enables ALL blocking/throttling functions including IP, country and advanced blocking, and the "Rate Limiting Rules" below.', 'wordfence'),
|
895 |
-
'states' => array(
|
896 |
-
array('value' => '0', 'label' => __('Off', 'wordfence')),
|
897 |
-
array('value' => '1', 'label' => __('On', 'wordfence')),
|
898 |
-
),
|
899 |
-
'helpLink' => wfSupportController::supportURL(wfSupportController::ITEM_FIREWALL_WAF_OPTION_ENABLE_ADVANCED_BLOCKING),
|
900 |
-
'noSpacer' => true,
|
901 |
-
'alignment' => 'wf-right',
|
902 |
-
))->render();
|
903 |
-
?>
|
904 |
-
</li>
|
905 |
-
<li>
|
906 |
-
<?php
|
907 |
-
echo wfView::create('options/option-toggled', array(
|
908 |
-
'optionName' => 'blockFakeBots',
|
909 |
-
'enabledValue' => 1,
|
910 |
-
'disabledValue' => 0,
|
911 |
-
'value' => wfConfig::get('blockFakeBots') ? 1 : 0,
|
912 |
-
'title' => __('Immediately block fake Google crawlers', 'wordfence'),
|
913 |
-
'helpLink' => wfSupportController::supportURL(wfSupportController::ITEM_FIREWALL_WAF_OPTION_IMMEDIATELY_BLOCK_FAKE_GOOGLE),
|
914 |
-
))->render();
|
915 |
-
?>
|
916 |
-
</li>
|
917 |
-
<li>
|
918 |
-
<?php
|
919 |
-
echo wfView::create('options/option-select', array(
|
920 |
-
'selectOptionName' => 'neverBlockBG',
|
921 |
-
'selectOptions' => array(
|
922 |
-
array('value' => 'neverBlockVerified', 'label' => __('Verified Google crawlers have unlimited access to this site', 'wordfence')),
|
923 |
-
array('value' => 'neverBlockUA', 'label' => __('Anyone claiming to be Google has unlimited access', 'wordfence')),
|
924 |
-
array('value' => 'treatAsOtherCrawlers', 'label' => __('Treat Google like any other Crawler', 'wordfence')),
|
925 |
-
),
|
926 |
-
'selectValue' => wfConfig::get('neverBlockBG'),
|
927 |
-
'title' => __('How should we treat Google\'s crawlers', 'wordfence'),
|
928 |
-
'helpLink' => wfSupportController::supportURL(wfSupportController::ITEM_FIREWALL_WAF_OPTION_GOOGLE_ACTION),
|
929 |
-
))->render();
|
930 |
-
?>
|
931 |
-
</li>
|
932 |
-
<?php
|
933 |
-
$rateOptions = array(
|
934 |
-
array('value' => 'DISABLED', 'label' => __('Unlimited', 'wordfence')),
|
935 |
-
array('value' => 1, 'label' => sprintf(__('%d per minute', 'wordfence'), 1)),
|
936 |
-
array('value' => 2, 'label' => sprintf(__('%d per minute', 'wordfence'), 2)),
|
937 |
-
array('value' => 3, 'label' => sprintf(__('%d per minute', 'wordfence'), 3)),
|
938 |
-
array('value' => 4, 'label' => sprintf(__('%d per minute', 'wordfence'), 4)),
|
939 |
-
array('value' => 5, 'label' => sprintf(__('%d per minute', 'wordfence'), 5)),
|
940 |
-
array('value' => 10, 'label' => sprintf(__('%d per minute', 'wordfence'), 10)),
|
941 |
-
array('value' => 15, 'label' => sprintf(__('%d per minute', 'wordfence'), 15)),
|
942 |
-
array('value' => 30, 'label' => sprintf(__('%d per minute', 'wordfence'), 30)),
|
943 |
-
array('value' => 60, 'label' => sprintf(__('%d per minute', 'wordfence'), 60)),
|
944 |
-
array('value' => 120, 'label' => sprintf(__('%d per minute', 'wordfence'), 120)),
|
945 |
-
array('value' => 240, 'label' => sprintf(__('%d per minute', 'wordfence'), 240)),
|
946 |
-
array('value' => 480, 'label' => sprintf(__('%d per minute', 'wordfence'), 480)),
|
947 |
-
array('value' => 960, 'label' => sprintf(__('%d per minute', 'wordfence'), 960)),
|
948 |
-
array('value' => 1920, 'label' => sprintf(__('%d per minute', 'wordfence'), 1920)),
|
949 |
-
);
|
950 |
-
$actionOptions = array(
|
951 |
-
array('value' => 'throttle', 'label' => __('throttle it', 'wordfence')),
|
952 |
-
array('value' => 'block', 'label' => __('block it', 'wordfence')),
|
953 |
-
);
|
954 |
-
?>
|
955 |
-
<li>
|
956 |
-
<?php
|
957 |
-
echo wfView::create('waf/option-rate-limit', array(
|
958 |
-
'toggleOptionName' => 'maxGlobalRequests_enabled',
|
959 |
-
'toggleValue' => !!wfConfig::get('maxGlobalRequests_enabled') ? 1 : 0,
|
960 |
-
'rateOptionName' => 'maxGlobalRequests',
|
961 |
-
'rateOptions' => $rateOptions,
|
962 |
-
'rateValue' => wfConfig::get('maxGlobalRequests'),
|
963 |
-
'actionOptionName' => 'maxGlobalRequests_action',
|
964 |
-
'actionOptions' => $actionOptions,
|
965 |
-
'actionValue' => wfConfig::get('maxGlobalRequests_action'),
|
966 |
-
'title' => __('If anyone\'s requests exceed', 'wordfence'),
|
967 |
-
'helpLink' => wfSupportController::supportURL(wfSupportController::ITEM_FIREWALL_WAF_OPTION_RATE_LIMIT_ANY),
|
968 |
-
))->render();
|
969 |
-
?>
|
970 |
-
</li>
|
971 |
-
<li>
|
972 |
-
<?php
|
973 |
-
echo wfView::create('waf/option-rate-limit', array(
|
974 |
-
'toggleOptionName' => 'maxRequestsCrawlers_enabled',
|
975 |
-
'toggleValue' => !!wfConfig::get('maxRequestsCrawlers_enabled') ? 1 : 0,
|
976 |
-
'rateOptionName' => 'maxRequestsCrawlers',
|
977 |
-
'rateOptions' => $rateOptions,
|
978 |
-
'rateValue' => wfConfig::get('maxRequestsCrawlers'),
|
979 |
-
'actionOptionName' => 'maxRequestsCrawlers_action',
|
980 |
-
'actionOptions' => $actionOptions,
|
981 |
-
'actionValue' => wfConfig::get('maxRequestsCrawlers_action'),
|
982 |
-
'title' => __('If a crawler\'s page views exceed', 'wordfence'),
|
983 |
-
'helpLink' => wfSupportController::supportURL(wfSupportController::ITEM_FIREWALL_WAF_OPTION_RATE_LIMIT_CRAWLER),
|
984 |
-
))->render();
|
985 |
-
?>
|
986 |
-
</li>
|
987 |
-
<li>
|
988 |
-
<?php
|
989 |
-
echo wfView::create('waf/option-rate-limit', array(
|
990 |
-
'toggleOptionName' => 'max404Crawlers_enabled',
|
991 |
-
'toggleValue' => !!wfConfig::get('max404Crawlers_enabled') ? 1 : 0,
|
992 |
-
'rateOptionName' => 'max404Crawlers',
|
993 |
-
'rateOptions' => $rateOptions,
|
994 |
-
'rateValue' => wfConfig::get('max404Crawlers'),
|
995 |
-
'actionOptionName' => 'max404Crawlers_action',
|
996 |
-
'actionOptions' => $actionOptions,
|
997 |
-
'actionValue' => wfConfig::get('max404Crawlers_action'),
|
998 |
-
'title' => __('If a crawler\'s pages not found (404s) exceed', 'wordfence'),
|
999 |
-
'helpLink' => wfSupportController::supportURL(wfSupportController::ITEM_FIREWALL_WAF_OPTION_RATE_LIMIT_CRAWLER_404),
|
1000 |
-
))->render();
|
1001 |
-
?>
|
1002 |
-
</li>
|
1003 |
-
<li>
|
1004 |
-
<?php
|
1005 |
-
echo wfView::create('waf/option-rate-limit', array(
|
1006 |
-
'toggleOptionName' => 'maxRequestsHumans_enabled',
|
1007 |
-
'toggleValue' => !!wfConfig::get('maxRequestsHumans_enabled') ? 1 : 0,
|
1008 |
-
'rateOptionName' => 'maxRequestsHumans',
|
1009 |
-
'rateOptions' => $rateOptions,
|
1010 |
-
'rateValue' => wfConfig::get('maxRequestsHumans'),
|
1011 |
-
'actionOptionName' => 'maxRequestsHumans_action',
|
1012 |
-
'actionOptions' => $actionOptions,
|
1013 |
-
'actionValue' => wfConfig::get('maxRequestsHumans_action'),
|
1014 |
-
'title' => __('If a human\'s page views exceed', 'wordfence'),
|
1015 |
-
'helpLink' => wfSupportController::supportURL(wfSupportController::ITEM_FIREWALL_WAF_OPTION_RATE_LIMIT_HUMAN),
|
1016 |
-
))->render();
|
1017 |
-
?>
|
1018 |
-
</li>
|
1019 |
-
<li>
|
1020 |
-
<?php
|
1021 |
-
echo wfView::create('waf/option-rate-limit', array(
|
1022 |
-
'toggleOptionName' => 'max404Humans_enabled',
|
1023 |
-
'toggleValue' => !!wfConfig::get('max404Humans_enabled') ? 1 : 0,
|
1024 |
-
'rateOptionName' => 'max404Humans',
|
1025 |
-
'rateOptions' => $rateOptions,
|
1026 |
-
'rateValue' => wfConfig::get('max404Humans'),
|
1027 |
-
'actionOptionName' => 'max404Humans_action',
|
1028 |
-
'actionOptions' => $actionOptions,
|
1029 |
-
'actionValue' => wfConfig::get('max404Humans_action'),
|
1030 |
-
'title' => __('If a human\'s pages not found (404s) exceed', 'wordfence'),
|
1031 |
-
'helpLink' => wfSupportController::supportURL(wfSupportController::ITEM_FIREWALL_WAF_OPTION_RATE_LIMIT_HUMAN_404),
|
1032 |
-
))->render();
|
1033 |
-
?>
|
1034 |
-
</li>
|
1035 |
-
<li>
|
1036 |
-
<?php
|
1037 |
-
echo wfView::create('waf/option-rate-limit', array(
|
1038 |
-
'toggleOptionName' => 'maxScanHits_enabled',
|
1039 |
-
'toggleValue' => !!wfConfig::get('maxScanHits_enabled') ? 1 : 0,
|
1040 |
-
'rateOptionName' => 'maxScanHits',
|
1041 |
-
'rateOptions' => $rateOptions,
|
1042 |
-
'rateValue' => wfConfig::get('maxScanHits'),
|
1043 |
-
'actionOptionName' => 'maxScanHits_action',
|
1044 |
-
'actionOptions' => $actionOptions,
|
1045 |
-
'actionValue' => wfConfig::get('maxScanHits_action'),
|
1046 |
-
'title' => __('If 404s for known vulnerable URLs exceed', 'wordfence'),
|
1047 |
-
'helpLink' => wfSupportController::supportURL(wfSupportController::ITEM_FIREWALL_WAF_OPTION_RATE_LIMIT_ANY_404),
|
1048 |
-
))->render();
|
1049 |
-
?>
|
1050 |
-
</li>
|
1051 |
-
<li>
|
1052 |
-
<?php
|
1053 |
-
$breakpoints = array(60, 300, 1800, 3600, 7200, 21600, 43200, 86400, 172800, 432000, 864000, 2592000);
|
1054 |
-
$options = array();
|
1055 |
-
foreach ($breakpoints as $b) {
|
1056 |
-
$options[] = array('value' => $b, 'label' => wfUtils::makeDuration($b));
|
1057 |
-
}
|
1058 |
-
echo wfView::create('options/option-select', array(
|
1059 |
-
'selectOptionName' => 'blockedTime',
|
1060 |
-
'selectOptions' => $options,
|
1061 |
-
'selectValue' => wfConfig::getInt('blockedTime'),
|
1062 |
-
'title' => __('How long is an IP address blocked when it breaks a rule', 'wordfence'),
|
1063 |
-
'helpLink' => wfSupportController::supportURL(wfSupportController::ITEM_FIREWALL_WAF_OPTION_AUTOMATIC_BLOCK_DURATION),
|
1064 |
-
))->render();
|
1065 |
-
?>
|
1066 |
-
</li>
|
1067 |
-
<li>
|
1068 |
-
<?php
|
1069 |
-
echo wfView::create('options/option-textarea', array(
|
1070 |
-
'textOptionName' => 'allowed404s',
|
1071 |
-
'textValue' => wfUtils::cleanupOneEntryPerLine(wfConfig::get('allowed404s')),
|
1072 |
-
'title' => __('Whitelisted 404 URLs', 'wordfence'),
|
1073 |
-
'subtitle' => __('These URL patterns will be excluded from the throttling rules used to limit crawlers.', 'wordfence'),
|
1074 |
-
'helpLink' => wfSupportController::supportURL(wfSupportController::ITEM_FIREWALL_WAF_OPTION_WHITELISTED_404),
|
1075 |
-
))->render();
|
1076 |
-
?>
|
1077 |
-
</li>
|
1078 |
-
</ul>
|
1079 |
-
<script type="application/javascript">
|
1080 |
-
(function($) {
|
1081 |
-
$(function() {
|
1082 |
-
$('.wf-option.wf-option-rate-limit > .wf-option-content > ul > li.wf-option-select select').select2({
|
1083 |
-
minimumResultsForSearch: -1
|
1084 |
-
}).on('change', function () {
|
1085 |
-
var optionElement = $(this).closest('.wf-option');
|
1086 |
-
if ($(this).hasClass('wf-rate-limit-rate')) {
|
1087 |
-
var option = optionElement.data('rateOption');
|
1088 |
-
var value = $(this).val();
|
1089 |
-
|
1090 |
-
var originalValue = optionElement.data('originalRateValue');
|
1091 |
-
if (originalValue == value) {
|
1092 |
-
delete WFAD.pendingChanges[option];
|
1093 |
-
}
|
1094 |
-
else {
|
1095 |
-
WFAD.pendingChanges[option] = value;
|
1096 |
-
}
|
1097 |
-
}
|
1098 |
-
else if ($(this).hasClass('wf-rate-limit-action')) {
|
1099 |
-
var option = optionElement.data('actionOption');
|
1100 |
-
var value = $(this).val();
|
1101 |
-
|
1102 |
-
var originalValue = optionElement.data('originalActionValue');
|
1103 |
-
if (originalValue == value) {
|
1104 |
-
delete WFAD.pendingChanges[option];
|
1105 |
-
}
|
1106 |
-
else {
|
1107 |
-
WFAD.pendingChanges[option] = value;
|
1108 |
-
}
|
1109 |
-
}
|
1110 |
-
|
1111 |
-
WFAD.updatePendingChanges();
|
1112 |
-
}).triggerHandler('change');
|
1113 |
-
});
|
1114 |
-
})(jQuery);
|
1115 |
-
</script>
|
1116 |
-
</div>
|
1117 |
-
</div>
|
1118 |
-
</div>
|
1119 |
-
</div> <!-- end rate limiting -->
|
1120 |
-
<div class="wf-row">
|
1121 |
-
<div class="wf-col-xs-12">
|
1122 |
-
<div class="wf-block<?php echo (wfPersistenceController::shared()->isActive('waf-options-whitelisted') ? ' wf-active' : '') ?>" data-persistence-key="waf-options-whitelisted">
|
1123 |
-
<div class="wf-block-header">
|
1124 |
-
<div class="wf-block-header-content">
|
1125 |
-
<div class="wf-block-title">
|
1126 |
-
<strong><?php _e('Whitelisted URLs', 'wordfence'); ?></strong>
|
1127 |
-
</div>
|
1128 |
-
<div class="wf-block-header-action"><div class="wf-block-header-action-disclosure"></div></div>
|
1129 |
-
</div>
|
1130 |
-
</div>
|
1131 |
-
<div class="wf-block-content">
|
1132 |
-
<ul class="wf-block-list">
|
1133 |
-
<?php if ($firewall->isSubDirectoryInstallation()): ?>
|
1134 |
-
<li>
|
1135 |
-
<p><?php printf(__('You are currently running the Wordfence Web Application Firewall from another WordPress installation. Please <a href="%s">click here</a> to configure the Firewall to run correctly on this site.', 'wordfence'), esc_attr(network_admin_url('admin.php?page=WordfenceWAF&subpage=waf_options#configureAutoPrepend'))); ?></p>
|
1136 |
-
</li>
|
1137 |
-
<?php else: ?>
|
1138 |
-
<li>
|
1139 |
-
<?php
|
1140 |
-
echo wfView::create('waf/option-whitelist', array(
|
1141 |
-
))->render();
|
1142 |
-
?>
|
1143 |
-
</li>
|
1144 |
-
<li>
|
1145 |
-
<?php
|
1146 |
-
echo wfView::create('options/option-toggled-multiple', array(
|
1147 |
-
'options' => array(
|
1148 |
-
array(
|
1149 |
-
'name' => 'ajaxWatcherDisabled_front',
|
1150 |
-
'enabledValue' => 0,
|
1151 |
-
'disabledValue' => 1,
|
1152 |
-
'value' => wfConfig::get('ajaxWatcherDisabled_front') ? 1 : 0,
|
1153 |
-
'title' => __('Front-end Website', 'wordfence'),
|
1154 |
-
),
|
1155 |
-
array(
|
1156 |
-
'name' => 'ajaxWatcherDisabled_admin',
|
1157 |
-
'enabledValue' => 0,
|
1158 |
-
'disabledValue' => 1,
|
1159 |
-
'value' => wfConfig::get('ajaxWatcherDisabled_admin') ? 1 : 0,
|
1160 |
-
'title' => __('Admin Panel', 'wordfence'),
|
1161 |
-
),
|
1162 |
-
),
|
1163 |
-
'title' => __('Monitor background requests from an administrator\'s web browser for false positives', 'wordfence'),
|
1164 |
-
'helpLink' => wfSupportController::supportURL(wfSupportController::ITEM_FIREWALL_WAF_OPTION_MONITOR_AJAX),
|
1165 |
-
))->render();
|
1166 |
-
?>
|
1167 |
-
</li>
|
1168 |
-
<?php endif; ?>
|
1169 |
-
</ul>
|
1170 |
-
</div>
|
1171 |
-
</div>
|
1172 |
-
</div>
|
1173 |
-
</div> <!-- end whitelisted urls -->
|
1174 |
</div> <!-- end waf options block -->
|
1175 |
</div> <!-- end content block -->
|
1176 |
</div> <!-- end row -->
|
1177 |
</div> <!-- end container -->
|
1178 |
-
</div>
|
1179 |
-
<script type="application/javascript">
|
1180 |
-
(function($) {
|
1181 |
-
WFAD.wafData = <?php echo json_encode($wafData); ?>;
|
1182 |
-
WFAD.restoreWAFData = JSON.parse(JSON.stringify(WFAD.wafData)); //Copied into wafData when canceling changes
|
1183 |
-
|
1184 |
-
$(function() {
|
1185 |
-
WFAD.wafConfigPageRender();
|
1186 |
-
|
1187 |
-
//Hash-based option block linking
|
1188 |
-
if (window.location.hash) {
|
1189 |
-
var hashes = window.location.hash.split('#');
|
1190 |
-
var hash = hashes[hashes.length - 1];
|
1191 |
-
var block = $('.wf-block[data-persistence-key="' + hash + '"]');
|
1192 |
-
if (block.length) {
|
1193 |
-
if (!block.hasClass('wf-active')) {
|
1194 |
-
block.find('.wf-block-content').slideDown({
|
1195 |
-
always: function() {
|
1196 |
-
block.addClass('wf-active');
|
1197 |
-
$('html, body').animate({
|
1198 |
-
scrollTop: block.offset().top - 100
|
1199 |
-
}, 1000);
|
1200 |
-
}
|
1201 |
-
});
|
1202 |
-
|
1203 |
-
WFAD.ajax('wordfence_saveDisclosureState', {name: block.data('persistenceKey'), state: true}, function() {});
|
1204 |
-
}
|
1205 |
-
else {
|
1206 |
-
$('html, body').animate({
|
1207 |
-
scrollTop: block.offset().top - 100
|
1208 |
-
}, 1000);
|
1209 |
-
}
|
1210 |
-
|
1211 |
-
history.replaceState('', document.title, window.location.pathname + window.location.search);
|
1212 |
-
}
|
1213 |
-
}
|
1214 |
-
});
|
1215 |
-
|
1216 |
-
function whitelistCheckAllVisible() {
|
1217 |
-
$('.wf-whitelist-bulk-select.wf-option-checkbox').toggleClass('wf-checked', true);
|
1218 |
-
$('.wf-whitelist-table-bulk-checkbox.wf-option-checkbox').each(function() {
|
1219 |
-
$(this).toggleClass('wf-checked', $(this).closest('tr').is(':visible'));
|
1220 |
-
});
|
1221 |
-
}
|
1222 |
-
|
1223 |
-
function whitelistUncheckAll() {
|
1224 |
-
$('.wf-whitelist-bulk-select.wf-option-checkbox').toggleClass('wf-checked', false);
|
1225 |
-
$('.wf-whitelist-table-bulk-checkbox.wf-option-checkbox').toggleClass('wf-checked', false);
|
1226 |
-
}
|
1227 |
-
|
1228 |
-
$(window).on('wordfenceWAFInstallWhitelistEventHandlers', function() {
|
1229 |
-
//Enabled/Disabled
|
1230 |
-
$('.wf-whitelist-item-enabled.wf-option-checkbox').each(function() {
|
1231 |
-
$(this).on('click', function(e) {
|
1232 |
-
e.preventDefault();
|
1233 |
-
e.stopPropagation();
|
1234 |
-
|
1235 |
-
var row = $(this).closest('tr');
|
1236 |
-
var key = row.data('key');
|
1237 |
-
var value = $(this).hasClass('wf-checked') ? 1 : 0;
|
1238 |
-
if (value) {
|
1239 |
-
$(this).removeClass('wf-checked');
|
1240 |
-
value = 0;
|
1241 |
-
}
|
1242 |
-
else {
|
1243 |
-
$(this).addClass('wf-checked');
|
1244 |
-
value = 1;
|
1245 |
-
}
|
1246 |
-
|
1247 |
-
WFAD.wafWhitelistedChangeEnabled(key, value);
|
1248 |
-
WFAD.updatePendingChanges();
|
1249 |
-
});
|
1250 |
-
});
|
1251 |
-
|
1252 |
-
//Header/Footer Bulk Action
|
1253 |
-
$('.wf-whitelist-bulk-select.wf-option-checkbox').each(function() {
|
1254 |
-
$(this).on('click', function(e) {
|
1255 |
-
e.preventDefault();
|
1256 |
-
e.stopPropagation();
|
1257 |
-
|
1258 |
-
if ($(this).hasClass('wf-checked')) {
|
1259 |
-
$(this).removeClass('wf-checked');
|
1260 |
-
whitelistUncheckAll();
|
1261 |
-
}
|
1262 |
-
else {
|
1263 |
-
$(this).addClass('wf-checked');
|
1264 |
-
whitelistCheckAllVisible();
|
1265 |
-
}
|
1266 |
-
});
|
1267 |
-
});
|
1268 |
-
|
1269 |
-
//Row Bulk Action
|
1270 |
-
$('.wf-whitelist-table-bulk-checkbox.wf-option-checkbox').each(function() {
|
1271 |
-
$(this).on('click', function(e) {
|
1272 |
-
e.preventDefault();
|
1273 |
-
e.stopPropagation();
|
1274 |
-
|
1275 |
-
var row = $(this).closest('tr');
|
1276 |
-
var key = row.data('key');
|
1277 |
-
var value = $(this).hasClass('wf-checked') ? 1 : 0;
|
1278 |
-
if (value) {
|
1279 |
-
$(this).removeClass('wf-checked');
|
1280 |
-
}
|
1281 |
-
else {
|
1282 |
-
$(this).addClass('wf-checked');
|
1283 |
-
}
|
1284 |
-
|
1285 |
-
var totalCount = $('.wf-whitelist-table-bulk-checkbox.wf-option-checkbox:visible').length;
|
1286 |
-
var checkedCount = $('.wf-whitelist-table-bulk-checkbox.wf-option-checkbox.wf-checked:visible').length;
|
1287 |
-
if (totalCount == 0 || (checkedCount != totalCount)) {
|
1288 |
-
$('.wf-whitelist-bulk-select.wf-option-checkbox').removeClass('wf-checked');
|
1289 |
-
}
|
1290 |
-
else {
|
1291 |
-
$('.wf-whitelist-bulk-select.wf-option-checkbox').addClass('wf-checked');
|
1292 |
-
}
|
1293 |
-
});
|
1294 |
-
});
|
1295 |
-
|
1296 |
-
$(window).trigger('wordfenceWAFApplyWhitelistFilter');
|
1297 |
-
});
|
1298 |
-
|
1299 |
-
$(window).on('wordfenceWAFApplyWhitelistFilter', function() {
|
1300 |
-
if (WFAD.wafData.whitelistedURLParams.length == 0) {
|
1301 |
-
return;
|
1302 |
-
}
|
1303 |
-
|
1304 |
-
var filterColumn = $('#whitelist-table-controls select').val();
|
1305 |
-
var filterValue = $('input[name="filterValue"]').val();
|
1306 |
-
if (typeof filterValue != 'string' || filterValue.length == 0) {
|
1307 |
-
$('#waf-whitelisted-urls-wrapper .whitelist-table > tbody > tr[data-index]').show();
|
1308 |
-
}
|
1309 |
-
else {
|
1310 |
-
$('#waf-whitelisted-urls-wrapper .whitelist-table > tbody > tr[data-index]').each(function() {
|
1311 |
-
var text = $(this).find('td[data-column="' + filterColumn + '"]').text();
|
1312 |
-
if (text.indexOf(filterValue) > -1) {
|
1313 |
-
$(this).show();
|
1314 |
-
}
|
1315 |
-
else {
|
1316 |
-
$(this).hide();
|
1317 |
-
}
|
1318 |
-
});
|
1319 |
-
}
|
1320 |
-
});
|
1321 |
-
|
1322 |
-
$(window).on('wordfenceWAFConfigPageRender', function() {
|
1323 |
-
delete WFAD.pendingChanges['wafRules'];
|
1324 |
-
|
1325 |
-
//Add event handler to rule checkboxes
|
1326 |
-
$('.wf-rule-toggle.wf-boolean-switch').each(function() {
|
1327 |
-
$(this).on('click', function(e) {
|
1328 |
-
e.preventDefault();
|
1329 |
-
e.stopPropagation();
|
1330 |
-
|
1331 |
-
$(this).find('.wf-boolean-switch-handle').trigger('click');
|
1332 |
-
});
|
1333 |
-
|
1334 |
-
$(this).find('.wf-boolean-switch-handle').on('click', function(e) {
|
1335 |
-
e.preventDefault();
|
1336 |
-
e.stopPropagation();
|
1337 |
-
|
1338 |
-
var control = $(this).closest('.wf-boolean-switch');
|
1339 |
-
var row = $(this).closest('tr');
|
1340 |
-
var ruleID = row.data('ruleId');
|
1341 |
-
var value = control.hasClass('wf-active') ? 1 : 0;
|
1342 |
-
if (value) {
|
1343 |
-
control.removeClass('wf-active');
|
1344 |
-
value = 0;
|
1345 |
-
}
|
1346 |
-
else {
|
1347 |
-
control.addClass('wf-active');
|
1348 |
-
value = 1;
|
1349 |
-
}
|
1350 |
-
|
1351 |
-
var originalValue = row.data('originalValue');
|
1352 |
-
if (originalValue == value) {
|
1353 |
-
delete WFAD.pendingChanges['wafRules'][ruleID];
|
1354 |
-
if (Object.keys(WFAD.pendingChanges['wafRules']).length == 0) {
|
1355 |
-
delete WFAD.pendingChanges['wafRules']
|
1356 |
-
}
|
1357 |
-
}
|
1358 |
-
else {
|
1359 |
-
if (!(WFAD.pendingChanges['wafRules'] instanceof Object)) {
|
1360 |
-
WFAD.pendingChanges['wafRules'] = {};
|
1361 |
-
}
|
1362 |
-
WFAD.pendingChanges['wafRules'][ruleID] = value;
|
1363 |
-
}
|
1364 |
-
|
1365 |
-
$(control).trigger('change', [false]);
|
1366 |
-
WFAD.updatePendingChanges();
|
1367 |
-
});
|
1368 |
-
});
|
1369 |
-
|
1370 |
-
//Add event handler to whitelist checkboxes
|
1371 |
-
$(window).trigger('wordfenceWAFInstallWhitelistEventHandlers');
|
1372 |
-
});
|
1373 |
-
|
1374 |
-
$(window).on('wfOptionsReset', function() {
|
1375 |
-
WFAD.wafData = JSON.parse(JSON.stringify(WFAD.restoreWAFData));
|
1376 |
-
WFAD.wafConfigPageRender();
|
1377 |
-
});
|
1378 |
-
})(jQuery);
|
1379 |
-
</script>
|
1380 |
-
<script type="text/x-jquery-template" id="waf-whitelisted-urls-tmpl">
|
1381 |
-
<div class="whitelist-table-container">
|
1382 |
-
<table class="wf-striped-table whitelist-table">
|
1383 |
-
<thead>
|
1384 |
-
<tr>
|
1385 |
-
<th style="width: 2%;text-align: center"><div class="wf-whitelist-bulk-select wf-option-checkbox"><i class="wf-ion-ios-checkmark-empty" aria-hidden="true"></i></div></th>
|
1386 |
-
<th style="width: 5%;"><?php _e('Enabled', 'wordfence'); ?></th>
|
1387 |
-
<th><?php _e('URL', 'wordfence'); ?></th>
|
1388 |
-
<th><?php _e('Param', 'wordfence'); ?></th>
|
1389 |
-
<th><?php _e('Created', 'wordfence'); ?></th>
|
1390 |
-
<th><?php _e('Source', 'wordfence'); ?></th>
|
1391 |
-
<th><?php _e('User', 'wordfence'); ?></th>
|
1392 |
-
<th><?php _e('IP', 'wordfence'); ?></th>
|
1393 |
-
</tr>
|
1394 |
-
</thead>
|
1395 |
-
{{if whitelistedURLParams.length > 5}}
|
1396 |
-
<tfoot>
|
1397 |
-
<tr>
|
1398 |
-
<th style="width: 2%;text-align: center"><div class="wf-whitelist-bulk-select wf-option-checkbox"><i class="wf-ion-ios-checkmark-empty" aria-hidden="true"></i></div></th>
|
1399 |
-
<th style="width: 5%;"><?php _e('Enabled', 'wordfence'); ?></th>
|
1400 |
-
<th><?php _e('URL', 'wordfence'); ?></th>
|
1401 |
-
<th><?php _e('Param', 'wordfence'); ?></th>
|
1402 |
-
<th><?php _e('Created', 'wordfence'); ?></th>
|
1403 |
-
<th><?php _e('Source', 'wordfence'); ?></th>
|
1404 |
-
<th><?php _e('User', 'wordfence'); ?></th>
|
1405 |
-
<th><?php _e('IP', 'wordfence'); ?></th>
|
1406 |
-
</tr>
|
1407 |
-
{{/if}}
|
1408 |
-
</tfoot>
|
1409 |
-
<tbody>
|
1410 |
-
{{each(idx, whitelistedURLParam) whitelistedURLParams}}
|
1411 |
-
<tr data-index="${idx}" data-adding="{{if (whitelistedURLParam.adding)}}1{{else}}0{{/if}}" data-key="${whitelistedURLParam.path}|${whitelistedURLParam.paramKey}">
|
1412 |
-
<td style="text-align: center;"><div class="wf-whitelist-table-bulk-checkbox wf-option-checkbox"><i class="wf-ion-ios-checkmark-empty" aria-hidden="true"></i></div></td>
|
1413 |
-
<td style="text-align: center;"><div class="wf-whitelist-item-enabled wf-option-checkbox{{if (!whitelistedURLParam.data.disabled)}} wf-checked{{/if}}" data-original-value="{{if (!whitelistedURLParam.data.disabled)}}1{{else}}0{{/if}}"><i class="wf-ion-ios-checkmark-empty" aria-hidden="true"></i></div></td>
|
1414 |
-
<td data-column="url">
|
1415 |
-
<input name="replaceWhitelistedPath" type="hidden" value="${whitelistedURLParam.path}">
|
1416 |
-
<span class="whitelist-display">${WFAD.htmlEscape(WFAD.base64_decode(whitelistedURLParam.path))}</span>
|
1417 |
-
<input name="whitelistedPath" class="whitelist-edit whitelist-path" type="text"
|
1418 |
-
value="${WFAD.htmlEscape(WFAD.base64_decode(whitelistedURLParam.path))}">
|
1419 |
-
</td>
|
1420 |
-
<td data-column="param">
|
1421 |
-
<input name="replaceWhitelistedParam" type="hidden" value="${whitelistedURLParam.paramKey}">
|
1422 |
-
<span class="whitelist-display">${WFAD.htmlEscape(WFAD.base64_decode(whitelistedURLParam.paramKey))}</span>
|
1423 |
-
<input name="whitelistedParam" class="whitelist-edit whitelist-param-key"
|
1424 |
-
type="text" value="${WFAD.htmlEscape(WFAD.base64_decode(whitelistedURLParam.paramKey))}">
|
1425 |
-
</td>
|
1426 |
-
<td>
|
1427 |
-
{{if (whitelistedURLParam.data.timestamp)}}
|
1428 |
-
${WFAD.dateFormat((new Date(whitelistedURLParam.data.timestamp * 1000)))}
|
1429 |
-
{{else}}
|
1430 |
-
-
|
1431 |
-
{{/if}}
|
1432 |
-
</td>
|
1433 |
-
<td data-column="source">
|
1434 |
-
{{if (whitelistedURLParam.data.description)}}
|
1435 |
-
${whitelistedURLParam.data.description}
|
1436 |
-
{{else}}
|
1437 |
-
-
|
1438 |
-
{{/if}}
|
1439 |
-
</td>
|
1440 |
-
<td data-column="user">
|
1441 |
-
{{if (whitelistedURLParam.data.userID)}}
|
1442 |
-
{{if (whitelistedURLParam.data.username)}}
|
1443 |
-
${whitelistedURLParam.data.username}
|
1444 |
-
{{else}}
|
1445 |
-
${whitelistedURLParam.data.userID}
|
1446 |
-
{{/if}}
|
1447 |
-
{{else}}
|
1448 |
-
-
|
1449 |
-
{{/if}}
|
1450 |
-
</td>
|
1451 |
-
<td data-column="ip">
|
1452 |
-
{{if (whitelistedURLParam.data.ip)}}
|
1453 |
-
${whitelistedURLParam.data.ip}
|
1454 |
-
{{else}}
|
1455 |
-
-
|
1456 |
-
{{/if}}
|
1457 |
-
</td>
|
1458 |
-
</tr>
|
1459 |
-
{{/each}}
|
1460 |
-
{{if (whitelistedURLParams.length == 0)}}
|
1461 |
-
<tr>
|
1462 |
-
<td colspan="8"><?php _e('No whitelisted URLs currently set.', 'wordfence'); ?></td>
|
1463 |
-
</tr>
|
1464 |
-
{{/if}}
|
1465 |
-
</tbody>
|
1466 |
-
</table>
|
1467 |
-
</div>
|
1468 |
-
</script>
|
1469 |
-
<script type="text/x-jquery-template" id="waf-rules-tmpl">
|
1470 |
-
<table class="wf-striped-table">
|
1471 |
-
<thead>
|
1472 |
-
<tr>
|
1473 |
-
<th style="width: 5%"></th>
|
1474 |
-
<th><?php _e('Category', 'wordfence'); ?></th>
|
1475 |
-
<th><?php _e('Description', 'wordfence'); ?></th>
|
1476 |
-
</tr>
|
1477 |
-
</thead>
|
1478 |
-
<tbody>
|
1479 |
-
{{each(idx, rule) rules}}
|
1480 |
-
<tr data-rule-id="${rule.ruleID}" data-original-value="{{if (!disabledRules[rule.ruleID])}}1{{else}}0{{/if}}">
|
1481 |
-
<td style="text-align: center">
|
1482 |
-
<div class="wf-rule-toggle wf-boolean-switch{{if (!disabledRules[rule.ruleID])}} wf-active{{/if}}<?php echo ($firewall->isSubDirectoryInstallation() ? ' wf-disabled' : ''); ?>"><a href="#" class="wf-boolean-switch-handle"></a></div>
|
1483 |
-
</td>
|
1484 |
-
<td>${rule.category}</td>
|
1485 |
-
<td>${rule.description}</td>
|
1486 |
-
</tr>
|
1487 |
-
{{/each}}
|
1488 |
-
{{if (rules.length == 0)}}
|
1489 |
-
<tr>
|
1490 |
-
<td colspan="4"><?php _e('No rules currently set.', 'wordfence'); ?> <?php if (!($firewall->protectionMode() == wfFirewall::PROTECTION_MODE_EXTENDED && $firewall->isSubDirectoryInstallation())) { _e('<a href="#" onclick="WFAD.wafUpdateRules();return false;">Click here</a> to pull down the latest from the Wordfence servers.', 'wordfence'); } ?>
|
1491 |
-
</td>
|
1492 |
-
</tr>
|
1493 |
-
{{/if}}
|
1494 |
-
</tbody>
|
1495 |
-
<tfoot>
|
1496 |
-
{{if (ruleCount >= 10)}}
|
1497 |
-
<tr id="waf-show-all-rules">
|
1498 |
-
<td class="wf-center" colspan="4"><a href="#" id="waf-show-all-rules-button"><?php _e('SHOW ALL RULES', 'wordfence'); ?></a></td>
|
1499 |
-
</tr>
|
1500 |
-
{{/if}}
|
1501 |
-
</tfoot>
|
1502 |
-
</table>
|
1503 |
-
</script>
|
1504 |
-
<?php
|
1505 |
-
if ($firewall->protectionMode() == wfFirewall::PROTECTION_MODE_BASIC || ($firewall->protectionMode() == wfFirewall::PROTECTION_MODE_EXTENDED && $firewall->isSubDirectoryInstallation())) {
|
1506 |
-
echo wfView::create('waf/waf-install', array(
|
1507 |
-
))->render();
|
1508 |
-
}
|
1509 |
-
else {
|
1510 |
-
echo wfView::create('waf/waf-uninstall', array(
|
1511 |
-
))->render();
|
1512 |
-
}
|
1513 |
-
?>
|
1514 |
-
<script type="application/javascript">
|
1515 |
-
(function($) {
|
1516 |
-
$(function() {
|
1517 |
-
var updatePendingCircles = function() {
|
1518 |
-
$('#circle-waf-coverage, #circle-waf-rules, #circle-waf-blacklist, #circle-waf-brute').wfCircularProgress({pendingOverlay: Object.keys(WFAD.pendingChanges).length > 0});
|
1519 |
-
};
|
1520 |
-
var coalescingUpdateTimer = false;
|
1521 |
-
|
1522 |
-
$('.wf-option, .wf-rule-toggle').on('change', function() {
|
1523 |
-
clearTimeout(coalescingUpdateTimer);
|
1524 |
-
coalescingUpdateTimer = setTimeout(updatePendingCircles, 100);
|
1525 |
-
});
|
1526 |
-
});
|
1527 |
-
})(jQuery);
|
1528 |
-
</script>
|
16 |
?>
|
17 |
<script type="application/javascript">
|
18 |
(function($) {
|
19 |
+
WFAD.wafData = <?php echo json_encode($wafData); ?>;
|
20 |
+
WFAD.restoreWAFData = JSON.parse(JSON.stringify(WFAD.wafData)); //Copied into wafData when canceling changes
|
21 |
+
|
22 |
$(function() {
|
23 |
document.title = "<?php esc_attr_e('Firewall Options', 'wordfence'); ?>" + " \u2039 " + WFAD.basePageName;
|
24 |
+
|
25 |
+
WFAD.wafConfigPageRender();
|
26 |
+
|
27 |
+
//Hash-based option block linking
|
28 |
+
if (window.location.hash) {
|
29 |
+
var hashes = window.location.hash.split('#');
|
30 |
+
var hash = hashes[hashes.length - 1];
|
31 |
+
var block = $('.wf-block[data-persistence-key="' + hash + '"]');
|
32 |
+
if (block.length) {
|
33 |
+
if (!block.hasClass('wf-active')) {
|
34 |
+
block.find('.wf-block-content').slideDown({
|
35 |
+
always: function() {
|
36 |
+
block.addClass('wf-active');
|
37 |
+
$('html, body').animate({
|
38 |
+
scrollTop: block.offset().top - 100
|
39 |
+
}, 1000);
|
40 |
+
}
|
41 |
+
});
|
42 |
+
|
43 |
+
WFAD.ajax('wordfence_saveDisclosureState', {name: block.data('persistenceKey'), state: true}, function() {});
|
44 |
+
}
|
45 |
+
else {
|
46 |
+
$('html, body').animate({
|
47 |
+
scrollTop: block.offset().top - 100
|
48 |
+
}, 1000);
|
49 |
+
}
|
50 |
+
|
51 |
+
history.replaceState('', document.title, window.location.pathname + window.location.search);
|
52 |
+
}
|
53 |
+
}
|
54 |
+
|
55 |
+
var updatePendingCircles = function() {
|
56 |
+
$('#circle-waf-coverage, #circle-waf-rules, #circle-waf-blacklist, #circle-waf-brute').wfCircularProgress({pendingOverlay: Object.keys(WFAD.pendingChanges).length > 0});
|
57 |
+
};
|
58 |
+
var coalescingUpdateTimer = false;
|
59 |
+
|
60 |
+
$('.wf-option, .wf-rule-toggle').on('change', function() {
|
61 |
+
clearTimeout(coalescingUpdateTimer);
|
62 |
+
coalescingUpdateTimer = setTimeout(updatePendingCircles, 100);
|
63 |
+
});
|
64 |
+
});
|
65 |
+
|
66 |
+
$(window).on('wfOptionsReset', function() {
|
67 |
+
WFAD.wafData = JSON.parse(JSON.stringify(WFAD.restoreWAFData));
|
68 |
+
WFAD.wafConfigPageRender();
|
69 |
});
|
70 |
})(jQuery);
|
71 |
</script>
|
195 |
</div>
|
196 |
</div>
|
197 |
</div>
|
198 |
+
<?php
|
199 |
+
echo wfView::create('waf/options-group-basic-firewall', array(
|
200 |
+
'firewall' => $firewall,
|
201 |
+
'waf' => $waf,
|
202 |
+
'stateKey' => 'waf-options-basic',
|
203 |
+
'collapseable' => false,
|
204 |
+
))->render();
|
205 |
+
?>
|
206 |
+
<?php
|
207 |
+
echo wfView::create('waf/options-group-advanced-firewall', array(
|
208 |
+
'firewall' => $firewall,
|
209 |
+
'waf' => $waf,
|
210 |
+
'stateKey' => 'waf-options-advanced',
|
211 |
+
))->render();
|
212 |
+
?>
|
213 |
+
<?php
|
214 |
+
echo wfView::create('waf/options-group-brute-force', array(
|
215 |
+
'firewall' => $firewall,
|
216 |
+
'waf' => $waf,
|
217 |
+
'stateKey' => 'waf-options-bruteforce',
|
218 |
+
))->render();
|
219 |
+
?>
|
220 |
+
<?php
|
221 |
+
echo wfView::create('waf/options-group-rate-limiting', array(
|
222 |
+
'firewall' => $firewall,
|
223 |
+
'waf' => $waf,
|
224 |
+
'stateKey' => 'waf-options-ratelimiting',
|
225 |
+
))->render();
|
226 |
+
?>
|
227 |
+
<?php
|
228 |
+
echo wfView::create('waf/options-group-whitelisted', array(
|
229 |
+
'firewall' => $firewall,
|
230 |
+
'waf' => $waf,
|
231 |
+
'stateKey' => 'waf-options-whitelisted',
|
232 |
+
))->render();
|
233 |
+
?>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
234 |
</div> <!-- end waf options block -->
|
235 |
</div> <!-- end content block -->
|
236 |
</div> <!-- end row -->
|
237 |
</div> <!-- end container -->
|
238 |
+
</div>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
lib/menu_options.php
ADDED
@@ -0,0 +1,402 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
if (!defined('WORDFENCE_VERSION')) { exit; }
|
3 |
+
$waf = wfWAF::getInstance();
|
4 |
+
$d = new wfDashboard(); unset($d->countriesNetwork);
|
5 |
+
$firewall = new wfFirewall();
|
6 |
+
$scanner = wfScanner::shared();
|
7 |
+
$config = $waf->getStorageEngine();
|
8 |
+
$wafURL = wfPage::pageURL(wfPage::PAGE_FIREWALL);
|
9 |
+
$wafConfigURL = network_admin_url('admin.php?page=WordfenceWAF&subpage=waf_options#configureAutoPrepend');
|
10 |
+
$wafRemoveURL = network_admin_url('admin.php?page=WordfenceWAF&subpage=waf_options#removeAutoPrepend');
|
11 |
+
/** @var array $wafData */
|
12 |
+
|
13 |
+
$backPage = new wfPage(wfPage::PAGE_FIREWALL);
|
14 |
+
if (isset($_GET['source']) && wfPage::isValidPage($_GET['source'])) {
|
15 |
+
$backPage = new wfPage($_GET['source']);
|
16 |
+
}
|
17 |
+
?>
|
18 |
+
<script type="application/javascript">
|
19 |
+
(function($) {
|
20 |
+
WFAD.wafData = <?php echo json_encode($wafData); ?>;
|
21 |
+
WFAD.restoreWAFData = JSON.parse(JSON.stringify(WFAD.wafData)); //Copied into wafData when canceling changes
|
22 |
+
|
23 |
+
$(function() {
|
24 |
+
document.title = "<?php esc_attr_e('All Options', 'wordfence'); ?>" + " \u2039 " + WFAD.basePageName;
|
25 |
+
|
26 |
+
WFAD.wafConfigPageRender();
|
27 |
+
|
28 |
+
//Hash-based option block linking
|
29 |
+
if (window.location.hash) {
|
30 |
+
var hashes = window.location.hash.split('#');
|
31 |
+
var hash = hashes[hashes.length - 1];
|
32 |
+
var block = $('.wf-block[data-persistence-key="' + hash + '"]');
|
33 |
+
if (block.length) {
|
34 |
+
if (!block.hasClass('wf-active')) {
|
35 |
+
block.find('.wf-block-content').slideDown({
|
36 |
+
always: function() {
|
37 |
+
block.addClass('wf-active');
|
38 |
+
$('html, body').animate({
|
39 |
+
scrollTop: block.offset().top - 100
|
40 |
+
}, 1000);
|
41 |
+
}
|
42 |
+
});
|
43 |
+
|
44 |
+
WFAD.ajax('wordfence_saveDisclosureState', {name: block.data('persistenceKey'), state: true}, function() {}, function() {}, true);
|
45 |
+
}
|
46 |
+
else {
|
47 |
+
$('html, body').animate({
|
48 |
+
scrollTop: block.offset().top - 100
|
49 |
+
}, 1000);
|
50 |
+
}
|
51 |
+
|
52 |
+
history.replaceState('', document.title, window.location.pathname + window.location.search);
|
53 |
+
}
|
54 |
+
}
|
55 |
+
});
|
56 |
+
|
57 |
+
$(window).on('wfOptionsReset', function() {
|
58 |
+
WFAD.wafData = JSON.parse(JSON.stringify(WFAD.restoreWAFData));
|
59 |
+
WFAD.wafConfigPageRender();
|
60 |
+
});
|
61 |
+
})(jQuery);
|
62 |
+
</script>
|
63 |
+
<div class="wf-options-controls">
|
64 |
+
<div class="wf-row">
|
65 |
+
<div class="wf-col-xs-12">
|
66 |
+
<?php
|
67 |
+
$indexOptions = array(
|
68 |
+
'wf-option-apiKey' => __('License Key', 'wordfence'),
|
69 |
+
'wf-option-displayTopLevelOptions' => __('Display All Options menu option', 'wordfence'),
|
70 |
+
'wf-option-displayTopLevelBlocking' => __('Display Blocking menu option', 'wordfence'),
|
71 |
+
'wf-option-displayTopLevelLiveTraffic' => __('Display Live Traffic menu option', 'wordfence'),
|
72 |
+
'wf-option-autoUpdate' => __('Update Wordfence automatically when a new version is released?', 'wordfence'),
|
73 |
+
'wf-option-alertEmails' => __('Where to email alerts', 'wordfence'),
|
74 |
+
'wf-option-howGetIPs' => __('How does Wordfence get IPs', 'wordfence'),
|
75 |
+
'wf-option-howGetIPs-trusted-proxies' => __('Trusted Proxies', 'wordfence'),
|
76 |
+
'wf-option-other-hideWPVersion' => __('Hide WordPress version', 'wordfence'),
|
77 |
+
'wf-option-disableCodeExecutionUploads' => __('Disable Code Execution for Uploads directory', 'wordfence'),
|
78 |
+
'wf-option-disableCookies' => __('Disable Wordfence Cookies', 'wordfence'),
|
79 |
+
'wf-option-liveActivityPauseEnabled' => __('Pause live updates when window loses focus', 'wordfence'),
|
80 |
+
'wf-option-actUpdateInterval' => __('Update interval in seconds', 'wordfence'),
|
81 |
+
'wf-option-other-bypassLitespeedNoabort' => __('Bypass the LiteSpeed "noabort" check', 'wordfence'),
|
82 |
+
'wf-option-deleteTablesOnDeact' => __('Delete Wordfence tables and data on deactivation', 'wordfence'),
|
83 |
+
'wf-option-notification-updatesNeeded' => __('Updates Needed (Plugin, Theme, or Core)', 'wordfence'),
|
84 |
+
'wf-option-notification-securityAlerts' => __('Security Alerts', 'wordfence'),
|
85 |
+
'wf-option-notification-promotions' => __('Promotions', 'wordfence'),
|
86 |
+
'wf-option-notification-blogHighlights' => __('Blog Highlights', 'wordfence'),
|
87 |
+
'wf-option-notification-productUpdates' => __('Product Updates', 'wordfence'),
|
88 |
+
'wf-option-notification-scanStatus' => __('Scan Status', 'wordfence'),
|
89 |
+
'wf-option-alertOn-update' => __('Email me when Wordfence is automatically updated', 'wordfence'),
|
90 |
+
'wf-option-alertOn-wordfenceDeactivated' => __('Email me if Wordfence is deactivated', 'wordfence'),
|
91 |
+
'wf-option-alertOn-critical' => __('Alert on critical problems', 'wordfence'),
|
92 |
+
'wf-option-alertOn-warnings' => __('Alert on warnings', 'wordfence'),
|
93 |
+
'wf-option-alertOn-block' => __('Alert when an IP address is blocked', 'wordfence'),
|
94 |
+
'wf-option-alertOn-loginLockout' => __('Alert when someone is locked out from login', 'wordfence'),
|
95 |
+
'wf-option-alertOn-lostPasswdForm' => __('Alert when the "lost password" form is used for a valid user', 'wordfence'),
|
96 |
+
'wf-option-alertOn-adminLogin' => __('Alert me when someone with administrator access signs in', 'wordfence'),
|
97 |
+
'wf-option-alertOn-firstAdminLoginOnly' => __('Only alert me when that administrator signs in from a new device or location', 'wordfence'),
|
98 |
+
'wf-option-alertOn-nonAdminLogin' => __('Alert me when a non-admin user signs in', 'wordfence'),
|
99 |
+
'wf-option-alertOn-firstNonAdminLoginOnly' => __('Only alert me when that user signs in from a new device or location', 'wordfence'),
|
100 |
+
'wf-option-wafAlertOnAttacks' => __('Alert me when there\'s a large increase in attacks detected on my site', 'wordfence'),
|
101 |
+
'wf-option-alert-maxHourly' => __('Maximum email alerts to send per hour', 'wordfence'),
|
102 |
+
'wf-option-email-summary-enabled' => __('Enable email summary', 'wordfence'),
|
103 |
+
'wf-option-email-summary-excluded-directories' => __('List of directories to exclude from recently modified file list', 'wordfence'),
|
104 |
+
'wf-option-email-summary-dashboard-widget-enabled' => __('Enable activity report widget on the WordPress dashboard', 'wordfence'),
|
105 |
+
'wf-option-exportOptions' => __('Export this site\'s Wordfence options for import on another site', 'wordfence'),
|
106 |
+
'wf-option-importOptions' => __('Import Wordfence options from another site using a token', 'wordfence'),
|
107 |
+
'wf-option-wafStatus' => __('Web Application Firewall Status', 'wordfence'),
|
108 |
+
'wf-option-protectionMode' => __('Web Application Firewall Protection Level', 'wordfence'),
|
109 |
+
'wf-option-disableWAFBlacklistBlocking' => __('Real-Time IP Blacklist', 'wordfence'),
|
110 |
+
'wf-option-disableWAFIPBlocking' => __('Delay IP and Country blocking until after WordPress and plugins have loaded (only process firewall rules early)', 'wordfence'),
|
111 |
+
'wf-option-whitelisted' => __('Whitelisted IP addresses that bypass all rules', 'wordfence'),
|
112 |
+
'wf-option-bannedURLs' => __('Immediately block IPs that access these URLs', 'wordfence'),
|
113 |
+
'wf-option-wafAlertWhitelist' => __('Ignored IP addresses for Wordfence Web Application Firewall alerting', 'wordfence'),
|
114 |
+
'wf-option-wafRules' => __('Web Application Firewall Rules', 'wordfence'),
|
115 |
+
'wf-option-loginSecurityEnabled' => __('Enable brute force protection', 'wordfence'),
|
116 |
+
'wf-option-loginSec-maxFailures' => __('Lock out after how many login failures', 'wordfence'),
|
117 |
+
'wf-option-loginSec-maxForgotPasswd' => __('Lock out after how many forgot password attempts', 'wordfence'),
|
118 |
+
'wf-option-loginSec-countFailMins' => __('Count failures over what time period', 'wordfence'),
|
119 |
+
'wf-option-loginSec-lockoutMins' => __('Amount of time a user is locked out', 'wordfence'),
|
120 |
+
'wf-option-loginSec-lockInvalidUsers' => __('Immediately lock out invalid usernames', 'wordfence'),
|
121 |
+
'wf-option-loginSec-userBlacklist' => __('Immediately block the IP of users who try to sign in as these usernames', 'wordfence'),
|
122 |
+
'wf-option-loginSec-strongPasswds-enabled' => __('Enforce strong passwords', 'wordfence'),
|
123 |
+
'wf-option-loginSec-maskLoginErrors' => __('Don\'t let WordPress reveal valid users in login errors', 'wordfence'),
|
124 |
+
'wf-option-loginSec-blockAdminReg' => __('Prevent users registering "admin" username if it doesn\'t exist', 'wordfence'),
|
125 |
+
'wf-option-loginSec-disableAuthorScan' => __('Prevent discovery of usernames through "/?author=N" scans, the oEmbed API, and the WordPress REST API', 'wordfence'),
|
126 |
+
'wf-option-other-blockBadPOST' => __('Block IPs who send POST requests with blank User-Agent and Referer', 'wordfence'),
|
127 |
+
'wf-option-other-pwStrengthOnUpdate' => __('Check password strength on profile update', 'wordfence'),
|
128 |
+
'wf-option-other-WFNet' => __('Participate in the Real-Time WordPress Security Network', 'wordfence'),
|
129 |
+
'wf-option-firewallEnabled' => __('Enable Rate Limiting and Advanced Blocking', 'wordfence'),
|
130 |
+
'wf-option-blockFakeBots' => __('Immediately block fake Google crawlers', 'wordfence'),
|
131 |
+
'wf-option-neverBlockBG' => __('How should we treat Google\'s crawlers', 'wordfence'),
|
132 |
+
'wf-option-maxGlobalRequests' => __('If anyone\'s requests exceed', 'wordfence'),
|
133 |
+
'wf-option-maxRequestsCrawlers' => __('If a crawler\'s page views exceed', 'wordfence'),
|
134 |
+
'wf-option-max404Crawlers' => __('If a crawler\'s pages not found (404s) exceed', 'wordfence'),
|
135 |
+
'wf-option-maxRequestsHumans' => __('If a human\'s page views exceed', 'wordfence'),
|
136 |
+
'wf-option-max404Humans' => __('If a human\'s pages not found (404s) exceed', 'wordfence'),
|
137 |
+
'wf-option-maxScanHits' => __('If 404s for known vulnerable URLs exceed', 'wordfence'),
|
138 |
+
'wf-option-blockedTime' => __('How long is an IP address blocked when it breaks a rule', 'wordfence'),
|
139 |
+
'wf-option-allowed404s' => __('Whitelisted 404 URLs', 'wordfence'),
|
140 |
+
'wf-option-wafWhitelist' => __('Web Application Firewall Whitelisted URLs', 'wordfence'),
|
141 |
+
'wf-option-ajaxWatcherDisabled-front' => __('Monitor background requests from an administrator\'s web browser for false positives (Front-end Website)', 'wordfence'),
|
142 |
+
'wf-option-ajaxWatcherDisabled-adminMonitor background requests from an administrator\'s web browser for false positives (Admin Panel)
|
143 |
+
wf-option-cbl-action' => __('What to do when we block someone visiting from a blocked country', 'wordfence'),
|
144 |
+
'wf-option-cbl-redirURL' => __('URL to redirect blocked countries to', 'wordfence'),
|
145 |
+
'wf-option-cbl-loggedInBlocked' => __('Block countries even if they are logged in', 'wordfence'),
|
146 |
+
'wf-option-cbl-bypassRedirURL If user from a blocked country hits the relative URL ____ then redirect that user to ____ and set a cookie that will bypass all country blocking
|
147 |
+
wf-option-cbl-bypassViewURL' => __('If user who is allowed to access the site views the relative URL ____ then set a cookie that will bypass country blocking in future in case that user hits the site from a blocked country', 'wordfence'),
|
148 |
+
'wf-option-scheduledScansEnabled' => __('Schedule Wordfence Scans', 'wordfence'),
|
149 |
+
'wf-option-scanType' => __('Scan Type', 'wordfence'),
|
150 |
+
'wf-option-scansEnabled-checkGSB' => __('Check if this website is on a domain blacklist', 'wordfence'),
|
151 |
+
'wf-option-spamvertizeCheck' => __('Check if this website is being "Spamvertised"', 'wordfence'),
|
152 |
+
'wf-option-checkSpamIP' => __('Check if this website IP is generating spam', 'wordfence'),
|
153 |
+
'wf-option-scansEnabled-checkHowGetIPs' => __('Scan for misconfigured How does Wordfence get IPs', 'wordfence'),
|
154 |
+
'wf-option-scansEnabled-checkReadableConfig' => __('Scan for publicly accessible configuration, backup, or log files', 'wordfence'),
|
155 |
+
'wf-option-scansEnabled-suspectedFiles' => __('Scan for publicly accessible quarantined files', 'wordfence'),
|
156 |
+
'wf-option-scansEnabled-core' => __('Scan core files against repository versions for changes', 'wordfence'),
|
157 |
+
'wf-option-scansEnabled-themes' => __('Scan theme files against repository versions for changes', 'wordfence'),
|
158 |
+
'wf-option-scansEnabled-plugins' => __('Scan plugin files against repository versions for changes', 'wordfence'),
|
159 |
+
'wf-option-scansEnabled-coreUnknown' => __('Scan wp-admin and wp-includes for files not bundled with WordPress', 'wordfence'),
|
160 |
+
'wf-option-scansEnabled-malware' => __('Scan for signatures of known malicious files', 'wordfence'),
|
161 |
+
'wf-option-scansEnabled-fileContents' => __('Scan file contents for backdoors, trojans and suspicious code', 'wordfence'),
|
162 |
+
'wf-option-scansEnabled-fileContentsGSB' => __('Scan file contents for malicious URLs', 'wordfence'),
|
163 |
+
'wf-option-scansEnabled-posts' => __('Scan posts for known dangerous URLs and suspicious content', 'wordfence'),
|
164 |
+
'wf-option-scansEnabled-comments' => __('Scan comments for known dangerous URLs and suspicious content', 'wordfence'),
|
165 |
+
'wf-option-scansEnabled-suspiciousOptions' => __('Scan WordPress core, plugin, and theme options for known dangerous URLs and suspicious content', 'wordfence'),
|
166 |
+
'wf-option-scansEnabled-oldVersions' => __('Scan for out of date, abandoned, and vulnerable plugins, themes, and WordPress versions', 'wordfence'),
|
167 |
+
'wf-option-scansEnabled-suspiciousAdminUsers' => __('Scan for admin users created outside of WordPress', 'wordfence'),
|
168 |
+
'wf-option-scansEnabled-passwds' => __('Check the strength of passwords', 'wordfence'),
|
169 |
+
'wf-option-scansEnabled-diskSpace' => __('Monitor disk space', 'wordfence'),
|
170 |
+
'wf-option-scansEnabled-dns' => __('Scan for unauthorized DNS changes', 'wordfence'),
|
171 |
+
'wf-option-other-scanOutside' => __('Scan files outside your WordPress installation', 'wordfence'),
|
172 |
+
'wf-option-scansEnabled-scanImages' => __('Scan images, binary, and other files as if they were executable', 'wordfence'),
|
173 |
+
'wf-option-scansEnabled-highSense' => __('Enable HIGH SENSITIVITY scanning (may give false positives)', 'wordfence'),
|
174 |
+
'wf-option-lowResourceScansEnabled' => __('Use low resource scanning (reduces server load by lengthening the scan duration)', 'wordfence'),
|
175 |
+
'wf-option-scan-maxIssues' => __('Limit the number of issues sent in the scan results email', 'wordfence'),
|
176 |
+
'wf-option-scan-maxDuration' => __('Time limit that a scan can run in seconds', 'wordfence'),
|
177 |
+
'wf-option-maxMem' => __('How much memory should Wordfence request when scanning', 'wordfence'),
|
178 |
+
'wf-option-maxExecutionTime' => __('Maximum execution time for each scan stage', 'wordfence'),
|
179 |
+
'wf-option-scan-exclude' => __('Exclude files from scan that match these wildcard patterns', 'wordfence'),
|
180 |
+
'wf-option-scan-include-extra' => __('Additional scan signatures', 'wordfence'),
|
181 |
+
'wf-option-loginSec-requireAdminTwoFactor' => __('Require Cellphone Sign-in for all Administrators', 'wordfence'),
|
182 |
+
'wf-option-loginSec-enableSeparateTwoFactor' => __('Enable Separate Prompt for Two Factor Code', 'wordfence'),
|
183 |
+
'wf-option-liveTrafficEnabled' => __('Enable live traffic logging', 'wordfence'),
|
184 |
+
'wf-option-liveTraf-ignorePublishers' => __('Don\'t log signed-in users with publishing access', 'wordfence'),
|
185 |
+
'wf-option-liveTraf-ignoreUsers' => __('List of comma separated usernames to ignore', 'wordfence'),
|
186 |
+
'wf-option-liveTraf-ignoreIPs' => __('List of comma separated IP addresses to ignore', 'wordfence'),
|
187 |
+
'wf-option-liveTraf-ignoreUA' => __('Browser user-agent to ignore', 'wordfence'),
|
188 |
+
'wf-option-liveTraf-maxRows' => __('Amount of Live Traffic data to store (number of rows)', 'wordfence'),
|
189 |
+
'wf-option-other-noAnonMemberComments' => __('Hold anonymous comments using member emails for moderation', 'wordfence'),
|
190 |
+
'wf-option-other-scanComments' => __('Filter comments for malware and phishing URLs', 'wordfence'),
|
191 |
+
'wf-option-advancedCommentScanning' => __('Advanced Comment Spam Filter', 'wordfence'),
|
192 |
+
);
|
193 |
+
|
194 |
+
echo wfView::create('options/block-all-options-controls', array(
|
195 |
+
'showIcon' => false,
|
196 |
+
'indexOptions' => $indexOptions,
|
197 |
+
'restoreDefaultsSection' => wfConfig::OPTIONS_TYPE_ALL,
|
198 |
+
'restoreDefaultsMessage' => __('Are you sure you want to restore the default settings? This will undo any custom changes you have made to the options on this page. If you have manually disabled any rules or added any custom whitelisted URLs, those changes will not be overwritten.', 'wordfence'),
|
199 |
+
))->render();
|
200 |
+
?>
|
201 |
+
</div>
|
202 |
+
</div>
|
203 |
+
</div>
|
204 |
+
<div class="wf-options-controls-spacer"></div>
|
205 |
+
<?php
|
206 |
+
if (wfOnboardingController::shouldShowAttempt3()) {
|
207 |
+
echo wfView::create('onboarding/banner')->render();
|
208 |
+
}
|
209 |
+
?>
|
210 |
+
<div class="wrap wordfence">
|
211 |
+
<div class="wf-container-fluid">
|
212 |
+
<?php
|
213 |
+
if (function_exists('network_admin_url') && is_multisite()) {
|
214 |
+
$firewallURL = network_admin_url('admin.php?page=WordfenceWAF#top#waf');
|
215 |
+
$blockingURL = network_admin_url('admin.php?page=WordfenceWAF#top#blocking');
|
216 |
+
}
|
217 |
+
else {
|
218 |
+
$firewallURL = admin_url('admin.php?page=WordfenceWAF#top#waf');
|
219 |
+
$blockingURL = admin_url('admin.php?page=WordfenceWAF#top#blocking');
|
220 |
+
}
|
221 |
+
?>
|
222 |
+
<div class="wf-row">
|
223 |
+
<div class="wf-col-xs-12">
|
224 |
+
<div class="wp-header-end"></div>
|
225 |
+
</div>
|
226 |
+
</div>
|
227 |
+
<div class="wf-row">
|
228 |
+
<div class="<?php echo wfStyle::contentClasses(); ?>">
|
229 |
+
<div id="wf-all-options" class="wf-fixed-tab-content">
|
230 |
+
<?php
|
231 |
+
$stateKeys = array(
|
232 |
+
'wf-unified-global-options-license',
|
233 |
+
'wf-unified-global-options-view-customization',
|
234 |
+
'wf-unified-global-options-general',
|
235 |
+
'wf-unified-global-options-dashboard',
|
236 |
+
'wf-unified-global-options-alert',
|
237 |
+
'wf-unified-global-options-email-summary',
|
238 |
+
'wf-unified-global-options-import',
|
239 |
+
'wf-unified-waf-options-basic',
|
240 |
+
'wf-unified-waf-options-advanced',
|
241 |
+
'wf-unified-waf-options-bruteforce',
|
242 |
+
'wf-unified-waf-options-ratelimiting',
|
243 |
+
'wf-unified-waf-options-whitelisted',
|
244 |
+
'wf-unified-blocking-options-country',
|
245 |
+
'wf-unified-scanner-options-schedule',
|
246 |
+
'wf-unified-scanner-options-basic',
|
247 |
+
'wf-unified-scanner-options-general',
|
248 |
+
'wf-unified-scanner-options-performance',
|
249 |
+
'wf-unified-scanner-options-custom',
|
250 |
+
'wf-unified-2fa-options',
|
251 |
+
'wf-unified-live-traffic-options',
|
252 |
+
//'wf-unified-comment-spam-options', //Does not currently support collapsing
|
253 |
+
);
|
254 |
+
|
255 |
+
echo wfView::create('options/options-title', array(
|
256 |
+
'title' => __('All Options', 'wordfence'),
|
257 |
+
'stateKeys' => $stateKeys,
|
258 |
+
'showIcon' => true,
|
259 |
+
))->render();
|
260 |
+
?>
|
261 |
+
|
262 |
+
<p><?php _e('These options are also available throughout the plugin pages, in the relevant sections. This page is provided for easier setup for experienced Wordfence users.', 'wordfence'); ?></p>
|
263 |
+
|
264 |
+
<?php
|
265 |
+
echo wfView::create('common/section-subtitle', array(
|
266 |
+
'title' => __('Wordfence Global Options', 'wordfence'),
|
267 |
+
'showIcon' => false,
|
268 |
+
))->render();
|
269 |
+
|
270 |
+
echo wfView::create('dashboard/options-group-license', array(
|
271 |
+
'stateKey' => 'wf-unified-global-options-license',
|
272 |
+
))->render();
|
273 |
+
|
274 |
+
echo wfView::create('dashboard/options-group-view-customization', array(
|
275 |
+
'stateKey' => 'wf-unified-global-options-view-customization',
|
276 |
+
))->render();
|
277 |
+
|
278 |
+
echo wfView::create('dashboard/options-group-general', array(
|
279 |
+
'stateKey' => 'wf-unified-global-options-general',
|
280 |
+
))->render();
|
281 |
+
|
282 |
+
echo wfView::create('dashboard/options-group-dashboard', array(
|
283 |
+
'stateKey' => 'wf-unified-global-options-dashboard',
|
284 |
+
))->render();
|
285 |
+
|
286 |
+
echo wfView::create('dashboard/options-group-alert', array(
|
287 |
+
'stateKey' => 'wf-unified-global-options-alert',
|
288 |
+
))->render();
|
289 |
+
|
290 |
+
echo wfView::create('dashboard/options-group-email-summary', array(
|
291 |
+
'stateKey' => 'wf-unified-global-options-email-summary',
|
292 |
+
))->render();
|
293 |
+
|
294 |
+
echo wfView::create('dashboard/options-group-import', array(
|
295 |
+
'stateKey' => 'wf-unified-global-options-import',
|
296 |
+
))->render();
|
297 |
+
?>
|
298 |
+
|
299 |
+
<?php
|
300 |
+
echo wfView::create('common/section-subtitle', array(
|
301 |
+
'title' => __('Firewall Options', 'wordfence'),
|
302 |
+
'showIcon' => false,
|
303 |
+
))->render();
|
304 |
+
|
305 |
+
echo wfView::create('waf/options-group-basic-firewall', array(
|
306 |
+
'firewall' => $firewall,
|
307 |
+
'waf' => $waf,
|
308 |
+
'stateKey' => 'wf-unified-waf-options-basic',
|
309 |
+
))->render();
|
310 |
+
|
311 |
+
echo wfView::create('waf/options-group-advanced-firewall', array(
|
312 |
+
'firewall' => $firewall,
|
313 |
+
'waf' => $waf,
|
314 |
+
'stateKey' => 'wf-unified-waf-options-advanced',
|
315 |
+
))->render();
|
316 |
+
|
317 |
+
echo wfView::create('waf/options-group-brute-force', array(
|
318 |
+
'firewall' => $firewall,
|
319 |
+
'waf' => $waf,
|
320 |
+
'stateKey' => 'wf-unified-waf-options-bruteforce',
|
321 |
+
))->render();
|
322 |
+
|
323 |
+
echo wfView::create('waf/options-group-rate-limiting', array(
|
324 |
+
'firewall' => $firewall,
|
325 |
+
'waf' => $waf,
|
326 |
+
'stateKey' => 'wf-unified-waf-options-ratelimiting',
|
327 |
+
))->render();
|
328 |
+
|
329 |
+
echo wfView::create('waf/options-group-whitelisted', array(
|
330 |
+
'firewall' => $firewall,
|
331 |
+
'waf' => $waf,
|
332 |
+
'stateKey' => 'wf-unified-waf-options-whitelisted',
|
333 |
+
))->render();
|
334 |
+
?>
|
335 |
+
|
336 |
+
<?php
|
337 |
+
echo wfView::create('common/section-subtitle', array(
|
338 |
+
'title' => __('Blocking Options', 'wordfence'),
|
339 |
+
'showIcon' => false,
|
340 |
+
))->render();
|
341 |
+
|
342 |
+
echo wfView::create('blocking/options-group-advanced-country', array(
|
343 |
+
'stateKey' => 'wf-unified-blocking-options-country',
|
344 |
+
))->render();
|
345 |
+
?>
|
346 |
+
|
347 |
+
<?php
|
348 |
+
echo wfView::create('common/section-subtitle', array(
|
349 |
+
'title' => __('Scan Options', 'wordfence'),
|
350 |
+
'showIcon' => false,
|
351 |
+
))->render();
|
352 |
+
|
353 |
+
echo wfView::create('scanner/options-group-scan-schedule', array(
|
354 |
+
'scanner' => $scanner,
|
355 |
+
'stateKey' => 'wf-unified-scanner-options-schedule',
|
356 |
+
))->render();
|
357 |
+
|
358 |
+
echo wfView::create('scanner/options-group-basic', array(
|
359 |
+
'scanner' => $scanner,
|
360 |
+
'stateKey' => 'wf-unified-scanner-options-basic',
|
361 |
+
))->render();
|
362 |
+
|
363 |
+
echo wfView::create('scanner/options-group-general', array(
|
364 |
+
'scanner' => $scanner,
|
365 |
+
'stateKey' => 'wf-unified-scanner-options-general',
|
366 |
+
))->render();
|
367 |
+
|
368 |
+
echo wfView::create('scanner/options-group-performance', array(
|
369 |
+
'scanner' => $scanner,
|
370 |
+
'stateKey' => 'wf-unified-scanner-options-performance',
|
371 |
+
))->render();
|
372 |
+
|
373 |
+
echo wfView::create('scanner/options-group-advanced', array(
|
374 |
+
'scanner' => $scanner,
|
375 |
+
'stateKey' => 'wf-unified-scanner-options-custom',
|
376 |
+
))->render();
|
377 |
+
?>
|
378 |
+
|
379 |
+
<?php
|
380 |
+
echo wfView::create('common/section-subtitle', array(
|
381 |
+
'title' => __('Tool Options', 'wordfence'),
|
382 |
+
'showIcon' => false,
|
383 |
+
))->render();
|
384 |
+
|
385 |
+
echo wfView::create('tools/options-group-2fa', array(
|
386 |
+
'stateKey' => 'wf-unified-2fa-options',
|
387 |
+
))->render();
|
388 |
+
|
389 |
+
echo wfView::create('tools/options-group-live-traffic', array(
|
390 |
+
'stateKey' => 'wf-unified-live-traffic-options',
|
391 |
+
'hideShowMenuItem' => true,
|
392 |
+
))->render();
|
393 |
+
|
394 |
+
echo wfView::create('tools/options-group-comment-spam', array(
|
395 |
+
'stateKey' => 'wf-unified-comment-spam-options',
|
396 |
+
))->render();
|
397 |
+
?>
|
398 |
+
</div> <!-- end waf options block -->
|
399 |
+
</div> <!-- end content block -->
|
400 |
+
</div> <!-- end row -->
|
401 |
+
</div> <!-- end container -->
|
402 |
+
</div>
|
lib/menu_scanner_options.php
CHANGED
@@ -143,215 +143,33 @@ if (wfOnboardingController::shouldShowAttempt3()) {
|
|
143 |
</div>
|
144 |
</div>
|
145 |
</div>
|
146 |
-
|
147 |
-
|
148 |
-
|
149 |
-
|
150 |
-
|
151 |
-
|
152 |
-
|
153 |
-
|
154 |
-
|
155 |
-
|
156 |
-
|
157 |
-
|
158 |
-
|
159 |
-
|
160 |
-
|
161 |
-
|
162 |
-
|
163 |
-
|
164 |
-
|
165 |
-
|
166 |
-
|
167 |
-
|
168 |
-
|
169 |
-
|
170 |
-
|
171 |
-
|
172 |
-
|
173 |
-
<div class="wf-block-header-content">
|
174 |
-
<div class="wf-block-title">
|
175 |
-
<strong><?php _e('Basic Scan Type Options', 'wordfence'); ?></strong>
|
176 |
-
</div>
|
177 |
-
</div>
|
178 |
-
</div>
|
179 |
-
<div class="wf-block-content">
|
180 |
-
<?php
|
181 |
-
echo wfView::create('scanner/scan-type', array(
|
182 |
-
'scanner' => $scanner,
|
183 |
-
))->render();
|
184 |
-
?>
|
185 |
-
</div>
|
186 |
-
</div>
|
187 |
-
</div>
|
188 |
-
</div> <!-- end scan type -->
|
189 |
-
<div class="wf-row">
|
190 |
-
<div class="wf-col-xs-12">
|
191 |
-
<div class="wf-block<?php echo (wfPersistenceController::shared()->isActive('wf-scanner-options-general') ? ' wf-active' : '') ?>" data-persistence-key="wf-scanner-options-general">
|
192 |
-
<div class="wf-block-header">
|
193 |
-
<div class="wf-block-header-content">
|
194 |
-
<div class="wf-block-title">
|
195 |
-
<strong><?php _e('General Options', 'wordfence'); ?></strong>
|
196 |
-
</div>
|
197 |
-
<div class="wf-block-header-action"><div class="wf-block-header-action-disclosure"></div></div>
|
198 |
-
</div>
|
199 |
-
</div>
|
200 |
-
<div class="wf-block-content">
|
201 |
-
<ul class="wf-block-list">
|
202 |
-
<?php
|
203 |
-
$options = array(
|
204 |
-
array('key' => 'scansEnabled_checkGSB', 'label' => __('Check if this website is on a domain blacklist', 'wordfence'), 'helpLink' => wfSupportController::supportURL(wfSupportController::ITEM_SCAN_OPTION_CHECK_SITE_BLACKLISTED), 'premium' => true, 'subtitleHTML' => __('<em>Reputation check</em>', 'wordfence')),
|
205 |
-
array('key' => 'spamvertizeCheck', 'label' => __('Check if this website is being "Spamvertised"', 'wordfence'), 'helpLink' => wfSupportController::supportURL(wfSupportController::ITEM_SCAN_OPTION_CHECK_SITE_SPAMVERTIZED), 'premium' => true, 'subtitleHTML' => __('<em>Reputation check</em>', 'wordfence')),
|
206 |
-
array('key' => 'checkSpamIP', 'label' => __('Check if this website IP is generating spam', 'wordfence'), 'helpLink' => wfSupportController::supportURL(wfSupportController::ITEM_SCAN_OPTION_CHECK_IP_SPAMMING), 'premium' => true, 'subtitleHTML' => __('<em>Reputation check</em>', 'wordfence')),
|
207 |
-
array('key' => 'scansEnabled_checkHowGetIPs', 'label' => __('Scan for misconfigured How does Wordfence get IPs', 'wordfence'), 'helpLink' => wfSupportController::supportURL(wfSupportController::ITEM_SCAN_OPTION_CHECK_MISCONFIGURED_HOW_GET_IPS)),
|
208 |
-
array('key' => 'scansEnabled_checkReadableConfig', 'label' => __('Scan for publicly accessible configuration, backup, or log files', 'wordfence'), 'helpLink' => wfSupportController::supportURL(wfSupportController::ITEM_SCAN_OPTION_PUBLIC_CONFIG)),
|
209 |
-
array('key' => 'scansEnabled_suspectedFiles', 'label' => __('Scan for publicly accessible quarantined files', 'wordfence'), 'helpLink' => wfSupportController::supportURL(wfSupportController::ITEM_SCAN_OPTION_PUBLIC_QUARANTINED)),
|
210 |
-
array('key' => 'scansEnabled_core', 'label' => __('Scan core files against repository versions for changes', 'wordfence'), 'helpLink' => wfSupportController::supportURL(wfSupportController::ITEM_SCAN_OPTION_CORE_CHANGES)),
|
211 |
-
array('key' => 'scansEnabled_themes', 'label' => __('Scan theme files against repository versions for changes', 'wordfence'), 'helpLink' => wfSupportController::supportURL(wfSupportController::ITEM_SCAN_OPTION_THEME_CHANGES)),
|
212 |
-
array('key' => 'scansEnabled_plugins', 'label' => __('Scan plugin files against repository versions for changes', 'wordfence'), 'helpLink' => wfSupportController::supportURL(wfSupportController::ITEM_SCAN_OPTION_PLUGIN_CHANGES)),
|
213 |
-
array('key' => 'scansEnabled_coreUnknown', 'label' => __('Scan wp-admin and wp-includes for files not bundled with WordPress', 'wordfence'), 'helpLink' => wfSupportController::supportURL(wfSupportController::ITEM_SCAN_OPTION_UNKNOWN_CORE)),
|
214 |
-
array('key' => 'scansEnabled_malware', 'label' => __('Scan for signatures of known malicious files', 'wordfence'), 'helpLink' => wfSupportController::supportURL(wfSupportController::ITEM_SCAN_OPTION_MALWARE_HASHES)),
|
215 |
-
array('key' => 'scansEnabled_fileContents', 'label' => __('Scan file contents for backdoors, trojans and suspicious code', 'wordfence'), 'helpLink' => wfSupportController::supportURL(wfSupportController::ITEM_SCAN_OPTION_MALWARE_SIGNATURES)),
|
216 |
-
array('key' => 'scansEnabled_fileContentsGSB', 'label' => __('Scan file contents for malicious URLs', 'wordfence'), 'helpLink' => wfSupportController::supportURL(wfSupportController::ITEM_SCAN_OPTION_MALWARE_URLS)),
|
217 |
-
array('key' => 'scansEnabled_posts', 'label' => __('Scan posts for known dangerous URLs and suspicious content', 'wordfence'), 'helpLink' => wfSupportController::supportURL(wfSupportController::ITEM_SCAN_OPTION_POST_URLS)),
|
218 |
-
array('key' => 'scansEnabled_comments', 'label' => __('Scan comments for known dangerous URLs and suspicious content', 'wordfence'), 'helpLink' => wfSupportController::supportURL(wfSupportController::ITEM_SCAN_OPTION_COMMENT_URLS)),
|
219 |
-
array('key' => 'scansEnabled_suspiciousOptions', 'label' => __('Scan WordPress core, plugin, and theme options for known dangerous URLs and suspicious content', 'wordfence'), 'helpLink' => wfSupportController::supportURL(wfSupportController::ITEM_SCAN_OPTION_MALWARE_OPTIONS)),
|
220 |
-
array('key' => 'scansEnabled_oldVersions', 'label' => __('Scan for out of date, abandoned, and vulnerable plugins, themes, and WordPress versions', 'wordfence'), 'helpLink' => wfSupportController::supportURL(wfSupportController::ITEM_SCAN_OPTION_UPDATES)),
|
221 |
-
array('key' => 'scansEnabled_suspiciousAdminUsers', 'label' => __('Scan for admin users created outside of WordPress', 'wordfence'), 'helpLink' => wfSupportController::supportURL(wfSupportController::ITEM_SCAN_OPTION_UNKNOWN_ADMINS)),
|
222 |
-
array('key' => 'scansEnabled_passwds', 'label' => __('Check the strength of passwords', 'wordfence'), 'helpLink' => wfSupportController::supportURL(wfSupportController::ITEM_SCAN_OPTION_PASSWORD_STRENGTH)),
|
223 |
-
array('key' => 'scansEnabled_diskSpace', 'label' => __('Monitor disk space', 'wordfence'), 'helpLink' => wfSupportController::supportURL(wfSupportController::ITEM_SCAN_OPTION_DISK_SPACE)),
|
224 |
-
array('key' => 'scansEnabled_dns', 'label' => __('Scan for unauthorized DNS changes', 'wordfence'), 'helpLink' => wfSupportController::supportURL(wfSupportController::ITEM_SCAN_OPTION_DNS_CHANGES)),
|
225 |
-
array('key' => 'other_scanOutside', 'label' => __('Scan files outside your WordPress installation', 'wordfence'), 'helpLink' => wfSupportController::supportURL(wfSupportController::ITEM_SCAN_OPTION_OUTSIDE_WORDPRESS)),
|
226 |
-
array('key' => 'scansEnabled_scanImages', 'label' => __('Scan images, binary, and other files as if they were executable', 'wordfence'), 'helpLink' => wfSupportController::supportURL(wfSupportController::ITEM_SCAN_OPTION_IMAGES_EXECUTABLE)),
|
227 |
-
array('key' => 'scansEnabled_highSense', 'label' => __('Enable HIGH SENSITIVITY scanning (may give false positives)', 'wordfence'), 'helpLink' => wfSupportController::supportURL(wfSupportController::ITEM_SCAN_OPTION_HIGH_SENSITIVITY)),
|
228 |
-
);
|
229 |
-
foreach ($options as $o):
|
230 |
-
?>
|
231 |
-
<li>
|
232 |
-
<?php
|
233 |
-
if (isset($o['view'])) {
|
234 |
-
echo wfView::create($o['view'], array(
|
235 |
-
'optionName' => $o['key'],
|
236 |
-
'value' => wfConfig::get($o['key']) ? 1 : 0,
|
237 |
-
'title' => $o['label'],
|
238 |
-
'helpLink' => $o['helpLink'],
|
239 |
-
'premium' => isset($o['premium']) && $o['premium'],
|
240 |
-
))->render();
|
241 |
-
}
|
242 |
-
else {
|
243 |
-
echo wfView::create('options/option-toggled', array(
|
244 |
-
'optionName' => $o['key'],
|
245 |
-
'enabledValue' => 1,
|
246 |
-
'disabledValue' => 0,
|
247 |
-
'value' => wfConfig::get($o['key']) ? 1 : 0,
|
248 |
-
'title' => $o['label'],
|
249 |
-
'subtitleHTML' => isset($o['subtitleHTML']) ? $o['subtitleHTML'] : null,
|
250 |
-
'helpLink' => $o['helpLink'],
|
251 |
-
'premium' => isset($o['premium']) && $o['premium'],
|
252 |
-
))->render();
|
253 |
-
}
|
254 |
-
?>
|
255 |
-
</li>
|
256 |
-
<?php endforeach; ?>
|
257 |
-
</ul>
|
258 |
-
</div>
|
259 |
-
</div>
|
260 |
-
</div>
|
261 |
-
</div> <!-- end general options -->
|
262 |
-
<div class="wf-row">
|
263 |
-
<div class="wf-col-xs-12">
|
264 |
-
<div class="wf-block<?php echo (wfPersistenceController::shared()->isActive('wf-scanner-options-performance') ? ' wf-active' : '') ?>" data-persistence-key="wf-scanner-options-performance">
|
265 |
-
<div class="wf-block-header">
|
266 |
-
<div class="wf-block-header-content">
|
267 |
-
<div class="wf-block-title">
|
268 |
-
<strong><?php _e('Performance Options', 'wordfence'); ?></strong>
|
269 |
-
</div>
|
270 |
-
<div class="wf-block-header-action"><div class="wf-block-header-action-disclosure"></div></div>
|
271 |
-
</div>
|
272 |
-
</div>
|
273 |
-
<div class="wf-block-content">
|
274 |
-
<ul class="wf-block-list">
|
275 |
-
<?php
|
276 |
-
$options = array(
|
277 |
-
array('key' => 'lowResourceScansEnabled', 'label' => __('Use low resource scanning (reduces server load by lengthening the scan duration)', 'wordfence'), 'helpLink' => wfSupportController::supportURL(wfSupportController::ITEM_SCAN_OPTION_LOW_RESOURCE)),
|
278 |
-
array('key' => 'scan_maxIssues', 'label' => __('Limit the number of issues sent in the scan results email', 'wordfence'), 'helpLink' => wfSupportController::supportURL(wfSupportController::ITEM_SCAN_OPTION_LIMIT_ISSUES), 'view' => 'options/option-text', 'parameters' => array('subtitle' => __('0 or empty means unlimited issues will be sent', 'wordfence'))),
|
279 |
-
array('key' => 'scan_maxDuration', 'label' => __('Time limit that a scan can run in seconds', 'wordfence'), 'helpLink' => wfSupportController::supportURL(wfSupportController::ITEM_SCAN_OPTION_OVERALL_TIME_LIMIT), 'view' => 'options/option-text', 'parameters' => array('subtitle' => sprintf(__('0 or empty means the default of %s will be used', 'wordfence'), wfUtils::makeDuration(WORDFENCE_DEFAULT_MAX_SCAN_TIME)))),
|
280 |
-
array('key' => 'maxMem', 'label' => __('How much memory should Wordfence request when scanning', 'wordfence'), 'helpLink' => wfSupportController::supportURL(wfSupportController::ITEM_SCAN_OPTION_MEMORY_LIMIT), 'view' => 'options/option-text', 'parameters' => array('subtitle' => __('Memory size in megabytes', 'wordfence'))),
|
281 |
-
array('key' => 'maxExecutionTime', 'label' => __('Maximum execution time for each scan stage ', 'wordfence'), 'helpLink' => wfSupportController::supportURL(wfSupportController::ITEM_SCAN_OPTION_STAGE_TIME_LIMIT), 'view' => 'options/option-text', 'parameters' => array('subtitle' => sprintf(__('Blank for default. Must be greater than %d and 10-20 or higher is recommended for most servers', 'wordfence'), intval(WORDFENCE_SCAN_MIN_EXECUTION_TIME) - 1))),
|
282 |
-
);
|
283 |
-
foreach ($options as $o):
|
284 |
-
?>
|
285 |
-
<li>
|
286 |
-
<?php
|
287 |
-
if (isset($o['view']) && $o['view'] == 'options/option-text') {
|
288 |
-
if (!isset($o['parameters'])) { $o['parameters'] = array(); }
|
289 |
-
echo wfView::create($o['view'], array_merge(array(
|
290 |
-
'textOptionName' => $o['key'],
|
291 |
-
'textValue' => wfConfig::get($o['key']),
|
292 |
-
'title' => $o['label'],
|
293 |
-
'helpLink' => $o['helpLink'],
|
294 |
-
), $o['parameters']))->render();
|
295 |
-
}
|
296 |
-
else {
|
297 |
-
echo wfView::create('options/option-toggled', array(
|
298 |
-
'optionName' => $o['key'],
|
299 |
-
'enabledValue' => 1,
|
300 |
-
'disabledValue' => 0,
|
301 |
-
'value' => wfConfig::get($o['key']) ? 1 : 0,
|
302 |
-
'title' => $o['label'],
|
303 |
-
'helpLink' => $o['helpLink'],
|
304 |
-
'disabled' => isset($o['disabled']) ? $o['disabled'] : false,
|
305 |
-
))->render();
|
306 |
-
}
|
307 |
-
?>
|
308 |
-
</li>
|
309 |
-
<?php endforeach; ?>
|
310 |
-
</ul>
|
311 |
-
</div>
|
312 |
-
</div>
|
313 |
-
</div>
|
314 |
-
</div> <!-- end performance options -->
|
315 |
-
<div class="wf-row">
|
316 |
-
<div class="wf-col-xs-12">
|
317 |
-
<div class="wf-block<?php echo (wfPersistenceController::shared()->isActive('wf-scanner-options-custom') ? ' wf-active' : '') ?>" data-persistence-key="wf-scanner-options-custom">
|
318 |
-
<div class="wf-block-header">
|
319 |
-
<div class="wf-block-header-content">
|
320 |
-
<div class="wf-block-title">
|
321 |
-
<strong><?php _e('Advanced Scan Options', 'wordfence'); ?></strong>
|
322 |
-
</div>
|
323 |
-
<div class="wf-block-header-action"><div class="wf-block-header-action-disclosure"></div></div>
|
324 |
-
</div>
|
325 |
-
</div>
|
326 |
-
<div class="wf-block-content">
|
327 |
-
<ul class="wf-block-list">
|
328 |
-
<li>
|
329 |
-
<?php
|
330 |
-
echo wfView::create('options/option-textarea', array(
|
331 |
-
'textOptionName' => 'scan_exclude',
|
332 |
-
'textValue' => wfUtils::cleanupOneEntryPerLine(wfConfig::get('scan_exclude')),
|
333 |
-
'title' => __('Exclude files from scan that match these wildcard patterns (one per line)', 'wordfence'),
|
334 |
-
'helpLink' => wfSupportController::supportURL(wfSupportController::ITEM_SCAN_OPTION_EXCLUDE_PATTERNS),
|
335 |
-
'noSpacer' => true,
|
336 |
-
))->render();
|
337 |
-
?>
|
338 |
-
</li>
|
339 |
-
<li>
|
340 |
-
<?php
|
341 |
-
echo wfView::create('options/option-textarea', array(
|
342 |
-
'textOptionName' => 'scan_include_extra',
|
343 |
-
'textValue' => wfConfig::get('scan_include_extra'),
|
344 |
-
'title' => __('Additional scan signatures (one per line)', 'wordfence'),
|
345 |
-
'helpLink' => wfSupportController::supportURL(wfSupportController::ITEM_SCAN_OPTION_CUSTOM_MALWARE_SIGNATURES),
|
346 |
-
'noSpacer' => true,
|
347 |
-
))->render();
|
348 |
-
?>
|
349 |
-
</li>
|
350 |
-
</ul>
|
351 |
-
</div>
|
352 |
-
</div>
|
353 |
-
</div>
|
354 |
-
</div> <!-- end custom scan options -->
|
355 |
</div> <!-- end wf-scan-options block -->
|
356 |
</div> <!-- end content block -->
|
357 |
</div> <!-- end row -->
|
143 |
</div>
|
144 |
</div>
|
145 |
</div>
|
146 |
+
<?php
|
147 |
+
echo wfView::create('scanner/options-group-scan-schedule', array(
|
148 |
+
'scanner' => $scanner,
|
149 |
+
'stateKey' => 'wf-scanner-options-schedule',
|
150 |
+
))->render();
|
151 |
+
|
152 |
+
echo wfView::create('scanner/options-group-basic', array(
|
153 |
+
'scanner' => $scanner,
|
154 |
+
'stateKey' => 'wf-scanner-options-basic',
|
155 |
+
'collapseable' => false,
|
156 |
+
))->render();
|
157 |
+
|
158 |
+
echo wfView::create('scanner/options-group-general', array(
|
159 |
+
'scanner' => $scanner,
|
160 |
+
'stateKey' => 'wf-scanner-options-general',
|
161 |
+
))->render();
|
162 |
+
|
163 |
+
echo wfView::create('scanner/options-group-performance', array(
|
164 |
+
'scanner' => $scanner,
|
165 |
+
'stateKey' => 'wf-scanner-options-performance',
|
166 |
+
))->render();
|
167 |
+
|
168 |
+
echo wfView::create('scanner/options-group-advanced', array(
|
169 |
+
'scanner' => $scanner,
|
170 |
+
'stateKey' => 'wf-scanner-options-custom',
|
171 |
+
))->render();
|
172 |
+
?>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
173 |
</div> <!-- end wf-scan-options block -->
|
174 |
</div> <!-- end content block -->
|
175 |
</div> <!-- end row -->
|
lib/menu_tools_commentSpam.php
CHANGED
@@ -43,86 +43,12 @@ WHERE unixday >= FLOOR(UNIX_TIMESTAMP() / 86400) - 31");
|
|
43 |
?>
|
44 |
</div>
|
45 |
</div>
|
46 |
-
|
47 |
-
|
48 |
-
|
49 |
-
|
50 |
-
|
51 |
-
|
52 |
-
<ul class="wf-dashboard-item-list wf-dashboard-item-list-horizontal">
|
53 |
-
<li>
|
54 |
-
<strong><?php _e('Comment Spam Filter Options', 'wordfence') ?></strong>
|
55 |
-
</li>
|
56 |
-
<li>
|
57 |
-
<strong><?php _e('Advanced Comment Spam Filter Options', 'wordfence') ?>
|
58 |
-
<?php if (!wfConfig::p()): ?>
|
59 |
-
<a href="https://www.wordfence.com/gnl1optionUpgrade/wordfence-signup/" target="_blank" rel="noopener noreferrer" class="wf-premium-link"><?php _e('Premium Feature', 'wordfence') ?></a>
|
60 |
-
<?php endif ?>
|
61 |
-
</strong>
|
62 |
-
</li>
|
63 |
-
</ul>
|
64 |
-
</li>
|
65 |
-
</ul>
|
66 |
-
<ul class="wf-dashboard-item-list">
|
67 |
-
<li>
|
68 |
-
<ul class="wf-dashboard-item-list wf-dashboard-item-list-horizontal">
|
69 |
-
<li>
|
70 |
-
<div>
|
71 |
-
<?php
|
72 |
-
echo wfView::create('options/option-toggled-segmented', array(
|
73 |
-
'optionName' => 'other_noAnonMemberComments',
|
74 |
-
'helpLink' => wfSupportController::supportURL(wfSupportController::ITEM_TOOLS_COMMENT_SPAM_OPTION_HOLD_ANONYMOUS),
|
75 |
-
'enabledValue' => 1,
|
76 |
-
'disabledValue' => 0,
|
77 |
-
'value' => wfConfig::get('other_noAnonMemberComments') ? 1 : 0,
|
78 |
-
'htmlTitle' => __(<<<HTML
|
79 |
-
<strong>Hold anonymous comments using member emails for moderation</strong><br>Blocks when the comment is posted without being logged in, but provides an email address for the registered user.
|
80 |
-
HTML
|
81 |
-
, 'wordfence'),
|
82 |
-
))->render();
|
83 |
-
?>
|
84 |
-
<?php
|
85 |
-
echo wfView::create('options/option-toggled-segmented', array(
|
86 |
-
'optionName' => 'other_scanComments',
|
87 |
-
'helpLink' => wfSupportController::supportURL(wfSupportController::ITEM_TOOLS_COMMENT_SPAM_OPTION_SCAN),
|
88 |
-
'enabledValue' => 1,
|
89 |
-
'disabledValue' => 0,
|
90 |
-
'value' => wfConfig::get('other_scanComments') ? 1 : 0,
|
91 |
-
'htmlTitle' => __(<<<HTML
|
92 |
-
<strong>Filter comments for malware and phishing URLs</strong><br>Blocks when a comment contains a URL on a domain blacklist.
|
93 |
-
HTML
|
94 |
-
, 'wordfence'),
|
95 |
-
))->render();
|
96 |
-
?>
|
97 |
-
</div>
|
98 |
-
</li>
|
99 |
-
<li>
|
100 |
-
<div id="wfAdvancedCommentScanningOption" style="align-self:flex-start">
|
101 |
-
<?php
|
102 |
-
echo wfView::create('options/option-toggled-segmented', array(
|
103 |
-
'optionName' => 'advancedCommentScanning',
|
104 |
-
'helpLink' => wfSupportController::supportURL(wfSupportController::ITEM_TOOLS_COMMENT_SPAM_OPTION_ADVANCED),
|
105 |
-
'premium' => !wfConfig::p(),
|
106 |
-
'enabledValue' => 1,
|
107 |
-
'disabledValue' => 0,
|
108 |
-
'value' => wfConfig::get('advancedCommentScanning') ? 1 : 0,
|
109 |
-
'htmlTitle' => __(<<<HTML
|
110 |
-
<strong>Advanced Comment Spam Filter</strong><br>In addtion to free comment filtering, this option filters comments against several additional real-time lists of known spammers and infected hosts.
|
111 |
-
HTML
|
112 |
-
, 'wordfence'),
|
113 |
-
|
114 |
-
))->render();
|
115 |
-
?>
|
116 |
-
|
117 |
-
</div>
|
118 |
-
</li>
|
119 |
-
</ul>
|
120 |
-
</li>
|
121 |
-
</ul>
|
122 |
-
</div>
|
123 |
-
</div>
|
124 |
-
</div>
|
125 |
-
</div>
|
126 |
|
127 |
<div class="wf-row">
|
128 |
|
43 |
?>
|
44 |
</div>
|
45 |
</div>
|
46 |
+
<?php
|
47 |
+
echo wfView::create('tools/options-group-comment-spam', array(
|
48 |
+
'stateKey' => 'wf-comment-spam-options',
|
49 |
+
'collapseable' => false,
|
50 |
+
))->render();
|
51 |
+
?>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
52 |
|
53 |
<div class="wf-row">
|
54 |
|
lib/menu_tools_livetraffic.php
CHANGED
@@ -28,127 +28,12 @@ $w = new wfConfig();
|
|
28 |
|
29 |
<div class="wordfenceModeElem" id="wordfenceMode_liveTraffic"></div>
|
30 |
|
31 |
-
|
32 |
-
|
33 |
-
|
34 |
-
|
35 |
-
|
36 |
-
|
37 |
-
<strong><?php _e('Live Traffic Options', 'wordfence'); ?></strong>
|
38 |
-
</div>
|
39 |
-
<div class="wf-block-header-action">
|
40 |
-
<div class="wf-block-header-action-disclosure"></div>
|
41 |
-
</div>
|
42 |
-
</div>
|
43 |
-
</div>
|
44 |
-
<div class="wf-block-content wf-clearfix">
|
45 |
-
|
46 |
-
<p>
|
47 |
-
<?php _e('These options let you ignore certain types of visitors, based on their level of access, usernames, IP address or browser type. If you run a very high traffic website where it is not feasible to see your visitors in real-time, simply un-check the live traffic option and nothing will be written to the Wordfence tracking tables.', 'wordfence') ?>
|
48 |
-
</p>
|
49 |
-
|
50 |
-
<div class="wf-row">
|
51 |
-
<div class="wf-col-xs-12">
|
52 |
-
<?php
|
53 |
-
echo wfView::create('options/block-controls', array(
|
54 |
-
'suppressLogo' => true,
|
55 |
-
'restoreDefaultsSection' => wfConfig::OPTIONS_TYPE_LIVE_TRAFFIC,
|
56 |
-
'restoreDefaultsMessage' => __('Are you sure you want to restore the default Live Traffic settings? This will undo any custom changes you have made to the options on this page.', 'wordfence'),
|
57 |
-
))->render();
|
58 |
-
?>
|
59 |
-
</div>
|
60 |
-
</div>
|
61 |
-
|
62 |
-
<ul class="wf-block-list">
|
63 |
-
<li>
|
64 |
-
<?php
|
65 |
-
echo wfView::create('options/option-switch', array(
|
66 |
-
'optionName' => 'liveTrafficEnabled',
|
67 |
-
'value' => wfConfig::get('liveTrafficEnabled') ? '1': '0',
|
68 |
-
'title' => __('Enable live traffic logging', 'wordfence'),
|
69 |
-
'states' => array(
|
70 |
-
array('value' => '0', 'label' => __('Off', 'wordfence')),
|
71 |
-
array('value' => '1', 'label' => __('On', 'wordfence')),
|
72 |
-
),
|
73 |
-
'helpLink' => wfSupportController::supportURL(wfSupportController::ITEM_TOOLS_LIVE_TRAFFIC_OPTION_ENABLE),
|
74 |
-
'alignment' => 'wf-right',
|
75 |
-
))->render();
|
76 |
-
?>
|
77 |
-
</li>
|
78 |
-
<li>
|
79 |
-
<?php
|
80 |
-
echo wfView::create('options/option-toggled', array(
|
81 |
-
'optionName' => 'liveTraf_ignorePublishers',
|
82 |
-
'enabledValue' => 1,
|
83 |
-
'disabledValue' => 0,
|
84 |
-
'value' => wfConfig::get('liveTraf_ignorePublishers') ? 1 : 0,
|
85 |
-
'title' => __("Don't log signed-in users with publishing access.", 'wordfence'),
|
86 |
-
))->render();
|
87 |
-
?>
|
88 |
-
</li>
|
89 |
-
<li>
|
90 |
-
<?php
|
91 |
-
echo wfView::create('options/option-toggled', array(
|
92 |
-
'optionName' => 'liveTraf_displayExpandedRecords',
|
93 |
-
'enabledValue' => 1,
|
94 |
-
'disabledValue' => 0,
|
95 |
-
'value' => wfConfig::get('liveTraf_displayExpandedRecords') ? 1 : 0,
|
96 |
-
'title' => __("Always display expanded Live Traffic records.", 'wordfence'),
|
97 |
-
))->render();
|
98 |
-
?>
|
99 |
-
</li>
|
100 |
-
<li>
|
101 |
-
<?php
|
102 |
-
echo wfView::create('options/option-text', array(
|
103 |
-
'textOptionName' => 'liveTraf_ignoreUsers',
|
104 |
-
'textValue' => wfConfig::get('liveTraf_ignoreUsers'),
|
105 |
-
'title' => __('List of comma separated usernames to ignore.', 'wordfence'),
|
106 |
-
))->render();
|
107 |
-
?>
|
108 |
-
</li>
|
109 |
-
<li>
|
110 |
-
<?php
|
111 |
-
echo wfView::create('options/option-text', array(
|
112 |
-
'textOptionName' => 'liveTraf_ignoreIPs',
|
113 |
-
'textValue' => wfConfig::get('liveTraf_ignoreIPs'),
|
114 |
-
'title' => __('List of comma separated IP addresses to ignore.', 'wordfence'),
|
115 |
-
))->render();
|
116 |
-
?>
|
117 |
-
</li>
|
118 |
-
<li>
|
119 |
-
<?php
|
120 |
-
echo wfView::create('options/option-text', array(
|
121 |
-
'textOptionName' => 'liveTraf_ignoreUA',
|
122 |
-
'textValue' => wfConfig::get('liveTraf_ignoreUA'),
|
123 |
-
'title' => __('Browser user-agent to ignore.', 'wordfence'),
|
124 |
-
))->render();
|
125 |
-
?>
|
126 |
-
</li>
|
127 |
-
<li>
|
128 |
-
<?php
|
129 |
-
echo wfView::create('options/option-text', array(
|
130 |
-
'textOptionName' => 'liveTraf_maxRows',
|
131 |
-
'textValue' => wfConfig::get('liveTraf_maxRows'),
|
132 |
-
'title' => __('Amount of Live Traffic data to store (number of rows).', 'wordfence'),
|
133 |
-
))->render();
|
134 |
-
?>
|
135 |
-
</li>
|
136 |
-
<li>
|
137 |
-
<?php
|
138 |
-
echo wfView::create('options/option-toggled', array(
|
139 |
-
'optionName' => 'displayTopLevelLiveTraffic',
|
140 |
-
'enabledValue' => 1,
|
141 |
-
'disabledValue' => 0,
|
142 |
-
'value' => wfConfig::get('displayTopLevelLiveTraffic') ? 1 : 0,
|
143 |
-
'title' => __('Display top level Live Traffic menu option', 'wordfence'),
|
144 |
-
))->render();
|
145 |
-
?>
|
146 |
-
</li>
|
147 |
-
</ul>
|
148 |
-
</div>
|
149 |
-
</div>
|
150 |
-
</div>
|
151 |
-
</div>
|
152 |
<div id="wf-live-traffic" class="wf-row<?php echo wfConfig::get('liveTraf_displayExpandedRecords') ? ' wf-live-traffic-display-expanded' : '' ?>">
|
153 |
<div class="wf-col-xs-12">
|
154 |
<div class="wf-block wf-active">
|
@@ -171,32 +56,37 @@ $w = new wfConfig();
|
|
171 |
} ?>.</strong> <?php _e('Login and firewall activity will still appear below.', 'wordfence') ?></p>
|
172 |
</div>
|
173 |
<?php endif ?>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
174 |
<div class="wf-row wf-add-bottom-small">
|
175 |
<div class="wf-col-xs-12" id="wf-live-traffic-legend-wrapper">
|
176 |
|
177 |
<form data-bind="submit: reloadListings">
|
178 |
|
179 |
-
<
|
180 |
-
<
|
181 |
-
|
182 |
-
<ul>
|
183 |
-
<li class="wfHuman"><?php _e('Human', 'wordfence') ?></li>
|
184 |
-
<li class="wfBot"><?php _e('Bot', 'wordfence') ?></li>
|
185 |
-
<li class="wfNotice"><?php _e('Warning', 'wordfence') ?></li>
|
186 |
-
<li class="wfBlocked"><?php _e('Blocked', 'wordfence') ?></li>
|
187 |
-
</ul>
|
188 |
-
</div>
|
189 |
-
|
190 |
-
<div class="wfActEvent wf-live-traffic-filter">
|
191 |
-
<select id="wf-lt-preset-filters" data-bind="options: presetFiltersOptions, optionsText: presetFiltersOptionsText, value: selectedPresetFilter">
|
192 |
-
</select>
|
193 |
|
194 |
<input id="wf-live-traffic-filter-show-advanced" class="wf-option-checkbox" data-bind="checked: showAdvancedFilters" type="checkbox">
|
195 |
<label for="wf-live-traffic-filter-show-advanced">
|
196 |
<?php _e('Show Advanced Filters', 'wordfence') ?>
|
197 |
</label>
|
198 |
-
</
|
199 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
200 |
|
201 |
<div data-bind="visible: showAdvancedFilters" id="wf-lt-advanced-filters">
|
202 |
<div class="wf-live-traffic-filter-detail">
|
@@ -289,15 +179,6 @@ $w = new wfConfig();
|
|
289 |
<div>
|
290 |
<strong>IP:</strong>
|
291 |
<span data-bind="text: IP" target="_blank" rel="noopener noreferrer"></span>
|
292 |
-
<span data-bind="if: blocked()">
|
293 |
-
[<a data-bind="click: $root.unblockIP">unblock</a>]
|
294 |
-
</span>
|
295 |
-
<span data-bind="if: rangeBlocked()">
|
296 |
-
[<a data-bind="click: $root.unblockNetwork">unblock this range</a>]
|
297 |
-
</span>
|
298 |
-
<span data-bind="if: !blocked() && !rangeBlocked()">
|
299 |
-
[<a data-bind="click: $root.blockIP">block</a>]
|
300 |
-
</span>
|
301 |
</div>
|
302 |
<div>
|
303 |
<span class="wfReverseLookup"><span data-bind="text: IP" style="display:none;"></span></span>
|
@@ -339,6 +220,19 @@ $w = new wfConfig();
|
|
339 |
data-bind="attr: { 'data-timestamp': ctime, text: 'Last hit was ' + ctime() + ' ago.' }"
|
340 |
class="wfTimeAgo wfTimeAgo-timestamp"></span>
|
341 |
</div>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
342 |
</div>
|
343 |
<div class="wf-flex-row-0 wf-padding-add-left">
|
344 |
<span class="wf-filtered-traffic-hits" data-bind="text: hitCount"></span> hits
|
@@ -575,6 +469,20 @@ $w = new wfConfig();
|
|
575 |
</div>
|
576 |
</div>
|
577 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
578 |
<div id="wf-live-traffic-util-overlay-wrapper" style="display: none">
|
579 |
<div class="wf-live-traffic-util-overlay">
|
580 |
<div class="wf-live-traffic-util-overlay-header"></div>
|
@@ -608,7 +516,7 @@ $w = new wfConfig();
|
|
608 |
<script type="text/x-jquery-template" id="wfNewTour1">
|
609 |
<div>
|
610 |
<h3><?php _e('Live Traffic', 'wordfence'); ?></h3>
|
611 |
-
<p><?php _e('Live traffic defaults to a summary view. Details are viewable by clicking anywhere within the summary record. To switch to expanded view,
|
612 |
<div class="wf-pointer-footer">
|
613 |
<ul class="wf-tour-pagination">
|
614 |
<li class="wf-active">•</li>
|
@@ -639,7 +547,7 @@ $w = new wfConfig();
|
|
639 |
<script type="text/x-jquery-template" id="wfUpgradeTour1">
|
640 |
<div>
|
641 |
<h3><?php _e('Live Traffic', 'wordfence'); ?></h3>
|
642 |
-
<p><?php _e('Live traffic now defaults to a summary view. Details are viewable by clicking anywhere within the summary record. To switch to expanded view,
|
643 |
<div class="wf-pointer-footer">
|
644 |
<ul class="wf-tour-pagination">
|
645 |
<li class="wf-active">•</li>
|
28 |
|
29 |
<div class="wordfenceModeElem" id="wordfenceMode_liveTraffic"></div>
|
30 |
|
31 |
+
<?php
|
32 |
+
echo wfView::create('tools/options-group-live-traffic', array(
|
33 |
+
'stateKey' => 'live-traffic-options',
|
34 |
+
'showControls' => true,
|
35 |
+
))->render();
|
36 |
+
?>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
37 |
<div id="wf-live-traffic" class="wf-row<?php echo wfConfig::get('liveTraf_displayExpandedRecords') ? ' wf-live-traffic-display-expanded' : '' ?>">
|
38 |
<div class="wf-col-xs-12">
|
39 |
<div class="wf-block wf-active">
|
56 |
} ?>.</strong> <?php _e('Login and firewall activity will still appear below.', 'wordfence') ?></p>
|
57 |
</div>
|
58 |
<?php endif ?>
|
59 |
+
<div id="wf-live-traffic-legend">
|
60 |
+
<ul>
|
61 |
+
<li class="wfHuman"><?php _e('Human', 'wordfence') ?></li>
|
62 |
+
<li class="wfBot"><?php _e('Bot', 'wordfence') ?></li>
|
63 |
+
<li class="wfNotice"><?php _e('Warning', 'wordfence') ?></li>
|
64 |
+
<li class="wfBlocked"><?php _e('Blocked', 'wordfence') ?></li>
|
65 |
+
</ul>
|
66 |
+
</div>
|
67 |
<div class="wf-row wf-add-bottom-small">
|
68 |
<div class="wf-col-xs-12" id="wf-live-traffic-legend-wrapper">
|
69 |
|
70 |
<form data-bind="submit: reloadListings">
|
71 |
|
72 |
+
<ul class="wf-live-traffic-controls">
|
73 |
+
<li class="wf-live-traffic-filter">
|
74 |
+
<div class="wf-padding-no-left"><select id="wf-lt-preset-filters" data-bind="options: presetFiltersOptions, optionsText: presetFiltersOptionsText, value: selectedPresetFilter"></select></div>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
75 |
|
76 |
<input id="wf-live-traffic-filter-show-advanced" class="wf-option-checkbox" data-bind="checked: showAdvancedFilters" type="checkbox">
|
77 |
<label for="wf-live-traffic-filter-show-advanced">
|
78 |
<?php _e('Show Advanced Filters', 'wordfence') ?>
|
79 |
</label>
|
80 |
+
</li>
|
81 |
+
<li class="wf-live-traffic-show-expanded">
|
82 |
+
<ul class="wf-option wf-option-toggled-boolean-switch wf-option-no-spacing" data-option="liveTraf_displayExpandedRecords" data-enabled-value="1" data-disabled-value="0" data-original-value="<?php echo wfConfig::get('liveTraf_displayExpandedRecords') ? 1 : 0; ?>">
|
83 |
+
<li class="wf-boolean-switch<?php echo wfConfig::get('liveTraf_displayExpandedRecords') ? ' wf-active' : ''; ?>"><a href="#" class="wf-boolean-switch-handle"></a></li>
|
84 |
+
<li class="wf-option-title wf-padding-add-left wf-no-right wf-padding-no-right">
|
85 |
+
<?php echo __('Expand All Results', 'wordfence'); ?>
|
86 |
+
</li>
|
87 |
+
</ul>
|
88 |
+
</li>
|
89 |
+
</ul>
|
90 |
|
91 |
<div data-bind="visible: showAdvancedFilters" id="wf-lt-advanced-filters">
|
92 |
<div class="wf-live-traffic-filter-detail">
|
179 |
<div>
|
180 |
<strong>IP:</strong>
|
181 |
<span data-bind="text: IP" target="_blank" rel="noopener noreferrer"></span>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
182 |
</div>
|
183 |
<div>
|
184 |
<span class="wfReverseLookup"><span data-bind="text: IP" style="display:none;"></span></span>
|
220 |
data-bind="attr: { 'data-timestamp': ctime, text: 'Last hit was ' + ctime() + ' ago.' }"
|
221 |
class="wfTimeAgo wfTimeAgo-timestamp"></span>
|
222 |
</div>
|
223 |
+
<!-- ko if: $root.groupBy().param() == 'ip' -->
|
224 |
+
<div class="wf-add-top-small">
|
225 |
+
<span data-bind="if: blocked()">
|
226 |
+
<a href="#" class="wf-btn wf-btn-default wf-btn-sm" data-bind="click: unblockIP">Unblock IP</a>
|
227 |
+
</span>
|
228 |
+
<span data-bind="if: rangeBlocked()">
|
229 |
+
<a href="#" class="wf-btn wf-btn-default wf-btn-sm" data-bind="click: unblockNetwork">Unblock range</a>
|
230 |
+
</span>
|
231 |
+
<span data-bind="if: !blocked() && !rangeBlocked()">
|
232 |
+
<a class="wf-btn wf-btn-default wf-btn-sm" data-bind="click: blockIP">Block IP</a>
|
233 |
+
</span>
|
234 |
+
</div>
|
235 |
+
<!-- /ko -->
|
236 |
</div>
|
237 |
<div class="wf-flex-row-0 wf-padding-add-left">
|
238 |
<span class="wf-filtered-traffic-hits" data-bind="text: hitCount"></span> hits
|
469 |
</div>
|
470 |
</div>
|
471 |
|
472 |
+
<script type="application/javascript">
|
473 |
+
(function($) {
|
474 |
+
$(function() {
|
475 |
+
$('.wf-option.wf-option-toggled-boolean-switch[data-option="liveTraf_displayExpandedRecords"]').on('change', function() {
|
476 |
+
delete WFAD.pendingChanges['liveTraf_displayExpandedRecords'];
|
477 |
+
var isOn = $(this).find('.wf-boolean-switch').hasClass('wf-active');
|
478 |
+
WFAD.setOption($(this).data('option'), (isOn ? $(this).data('enabledValue') : $(this).data('disabledValue')), function() {
|
479 |
+
$('#wf-live-traffic').toggleClass('wf-live-traffic-display-expanded', isOn);
|
480 |
+
});
|
481 |
+
});
|
482 |
+
});
|
483 |
+
})(jQuery);
|
484 |
+
</script>
|
485 |
+
|
486 |
<div id="wf-live-traffic-util-overlay-wrapper" style="display: none">
|
487 |
<div class="wf-live-traffic-util-overlay">
|
488 |
<div class="wf-live-traffic-util-overlay-header"></div>
|
516 |
<script type="text/x-jquery-template" id="wfNewTour1">
|
517 |
<div>
|
518 |
<h3><?php _e('Live Traffic', 'wordfence'); ?></h3>
|
519 |
+
<p><?php _e('Live traffic defaults to a summary view. Details are viewable by clicking anywhere within the summary record. To switch to the expanded view, click the <strong>Expand All Records</strong> switch.', 'wordfence'); ?></p>
|
520 |
<div class="wf-pointer-footer">
|
521 |
<ul class="wf-tour-pagination">
|
522 |
<li class="wf-active">•</li>
|
547 |
<script type="text/x-jquery-template" id="wfUpgradeTour1">
|
548 |
<div>
|
549 |
<h3><?php _e('Live Traffic', 'wordfence'); ?></h3>
|
550 |
+
<p><?php _e('Live traffic now defaults to a summary view. Details are viewable by clicking anywhere within the summary record. To switch to the expanded view, click the <strong>Expand All Records</strong> switch.', 'wordfence'); ?></p>
|
551 |
<div class="wf-pointer-footer">
|
552 |
<ul class="wf-tour-pagination">
|
553 |
<li class="wf-active">•</li>
|
lib/menu_tools_twoFactor.php
CHANGED
@@ -120,50 +120,11 @@ echo wfView::create('common/section-title', array(
|
|
120 |
<div id="wfTwoFacUsers"></div>
|
121 |
</div>
|
122 |
</div>
|
123 |
-
|
124 |
-
|
125 |
-
|
126 |
-
|
127 |
-
|
128 |
-
<div class="wf-block-title">
|
129 |
-
<strong><?php _e('Security Options', 'wordfence') ?></strong>
|
130 |
-
</div>
|
131 |
-
<div class="wf-block-header-action">
|
132 |
-
<div class="wf-block-header-action-disclosure"></div>
|
133 |
-
</div>
|
134 |
-
</div>
|
135 |
-
</div>
|
136 |
-
<div class="wf-block-content">
|
137 |
-
<ul class="wf-block-list">
|
138 |
-
<li>
|
139 |
-
<?php
|
140 |
-
echo wfView::create('options/option-toggled', array(
|
141 |
-
'optionName' => 'loginSec_requireAdminTwoFactor',
|
142 |
-
'enabledValue' => 1,
|
143 |
-
'disabledValue' => 0,
|
144 |
-
'value' => wfConfig::get('loginSec_requireAdminTwoFactor') ? 1 : 0,
|
145 |
-
'htmlTitle' => sprintf(__('<strong>Require Cellphone Sign-in for all Administrators<a href="%s" target="_blank" rel="noopener noreferrer" class="wfhelp wf-inline-help"></a></strong><br><em>Note:</em> This setting requires at least one administrator to have Cellphone Sign-in enabled. On multisite, this option applies only to super admins.', 'wordfence'), esc_url($helpLink)),
|
146 |
-
))->render();
|
147 |
-
?>
|
148 |
-
</li>
|
149 |
-
<li>
|
150 |
-
<?php
|
151 |
-
$allowSeparatePrompt = ini_get('output_buffering') > 0;
|
152 |
-
echo wfView::create('options/option-toggled', array(
|
153 |
-
'optionName' => 'loginSec_enableSeparateTwoFactor',
|
154 |
-
'enabledValue' => 1,
|
155 |
-
'disabledValue' => 0,
|
156 |
-
'value' => wfConfig::get('loginSec_enableSeparateTwoFactor') ? 1 : 0,
|
157 |
-
'htmlTitle' => sprintf(__('<strong>Enable Separate Prompt for Two Factor Code<a href="%s" target="_blank" rel="noopener noreferrer" class="wfhelp wf-inline-help"></a></strong><br><em>Note:</em> This setting changes the behavior for obtaining the two factor authentication code from using the password field to showing a separate prompt. If your theme overrides the default login page, you may not be able to use this option.', 'wordfence'), $helpLink) .
|
158 |
-
($allowSeparatePrompt ? '' : __('<br><strong>This setting will be ignored because the PHP configuration option <code>output_buffering</code> is off.</strong>', 'wordfence')),
|
159 |
-
))->render();
|
160 |
-
?>
|
161 |
-
</li>
|
162 |
-
</ul>
|
163 |
-
</div>
|
164 |
-
</div>
|
165 |
-
</div>
|
166 |
-
</div>
|
167 |
|
168 |
<script type="text/javascript">
|
169 |
jQuery('.twoFactorOption').on('click', function() {
|
120 |
<div id="wfTwoFacUsers"></div>
|
121 |
</div>
|
122 |
</div>
|
123 |
+
<?php
|
124 |
+
echo wfView::create('tools/options-group-2fa', array(
|
125 |
+
'stateKey' => 'wf-2fa-options',
|
126 |
+
))->render();
|
127 |
+
?>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
128 |
|
129 |
<script type="text/javascript">
|
130 |
jQuery('.twoFactorOption').on('click', function() {
|
lib/wfConfig.php
CHANGED
@@ -18,6 +18,7 @@ class wfConfig {
|
|
18 |
const OPTIONS_TYPE_LIVE_TRAFFIC = 'livetraffic';
|
19 |
const OPTIONS_TYPE_COMMENT_SPAM = 'commentspam';
|
20 |
const OPTIONS_TYPE_DIAGNOSTICS = 'diagnostics';
|
|
|
21 |
|
22 |
public static $diskCache = array();
|
23 |
private static $diskCacheDisabled = false; //enables if we detect a write fail so we don't keep calling stat()
|
@@ -119,6 +120,7 @@ class wfConfig {
|
|
119 |
'wafAlertOnAttacks' => array('value' => true, 'autoload' => self::AUTOLOAD),
|
120 |
'disableWAFIPBlocking' => array('value' => false, 'autoload' => self::AUTOLOAD),
|
121 |
'showAdminBarMenu' => array('value' => true, 'autoload' => self::AUTOLOAD),
|
|
|
122 |
'displayTopLevelBlocking' => array('value' => false, 'autoload' => self::AUTOLOAD),
|
123 |
'displayTopLevelLiveTraffic' => array('value' => false, 'autoload' => self::AUTOLOAD),
|
124 |
'displayAutomaticBlocks' => array('value' => true, 'autoload' => self::AUTOLOAD),
|
@@ -423,7 +425,7 @@ SQL
|
|
423 |
self::removeCachedOption($key);
|
424 |
|
425 |
if (!WFWAF_SUBDIRECTORY_INSTALL && class_exists('wfWAFIPBlocksController') && (substr($key, 0, 4) == 'cbl_' || $key == 'blockedTime' || $key == 'disableWAFIPBlocking')) {
|
426 |
-
wfWAFIPBlocksController::
|
427 |
}
|
428 |
}
|
429 |
public static function set($key, $val, $autoload = self::AUTOLOAD) {
|
@@ -457,7 +459,7 @@ SQL
|
|
457 |
}
|
458 |
|
459 |
if (!WFWAF_SUBDIRECTORY_INSTALL && class_exists('wfWAFIPBlocksController') && (substr($key, 0, 4) == 'cbl_' || $key == 'blockedTime' || $key == 'disableWAFIPBlocking')) {
|
460 |
-
wfWAFIPBlocksController::
|
461 |
}
|
462 |
}
|
463 |
public static function get($key, $default = false, $allowCached = true) {
|
@@ -1629,6 +1631,7 @@ Options -ExecCGI
|
|
1629 |
'email_summary_interval',
|
1630 |
'email_summary_excluded_directories',
|
1631 |
'howGetIPs_trusted_proxies',
|
|
|
1632 |
);
|
1633 |
break;
|
1634 |
case self::OPTIONS_TYPE_FIREWALL:
|
@@ -1764,6 +1767,144 @@ Options -ExecCGI
|
|
1764 |
'betaThreatDefenseFeed',
|
1765 |
);
|
1766 |
break;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1767 |
}
|
1768 |
|
1769 |
if (isset($options)) {
|
18 |
const OPTIONS_TYPE_LIVE_TRAFFIC = 'livetraffic';
|
19 |
const OPTIONS_TYPE_COMMENT_SPAM = 'commentspam';
|
20 |
const OPTIONS_TYPE_DIAGNOSTICS = 'diagnostics';
|
21 |
+
const OPTIONS_TYPE_ALL = 'all';
|
22 |
|
23 |
public static $diskCache = array();
|
24 |
private static $diskCacheDisabled = false; //enables if we detect a write fail so we don't keep calling stat()
|
120 |
'wafAlertOnAttacks' => array('value' => true, 'autoload' => self::AUTOLOAD),
|
121 |
'disableWAFIPBlocking' => array('value' => false, 'autoload' => self::AUTOLOAD),
|
122 |
'showAdminBarMenu' => array('value' => true, 'autoload' => self::AUTOLOAD),
|
123 |
+
'displayTopLevelOptions' => array('value' => true, 'autoload' => self::AUTOLOAD),
|
124 |
'displayTopLevelBlocking' => array('value' => false, 'autoload' => self::AUTOLOAD),
|
125 |
'displayTopLevelLiveTraffic' => array('value' => false, 'autoload' => self::AUTOLOAD),
|
126 |
'displayAutomaticBlocks' => array('value' => true, 'autoload' => self::AUTOLOAD),
|
425 |
self::removeCachedOption($key);
|
426 |
|
427 |
if (!WFWAF_SUBDIRECTORY_INSTALL && class_exists('wfWAFIPBlocksController') && (substr($key, 0, 4) == 'cbl_' || $key == 'blockedTime' || $key == 'disableWAFIPBlocking')) {
|
428 |
+
wfWAFIPBlocksController::setNeedsSynchronizeConfigSettings();
|
429 |
}
|
430 |
}
|
431 |
public static function set($key, $val, $autoload = self::AUTOLOAD) {
|
459 |
}
|
460 |
|
461 |
if (!WFWAF_SUBDIRECTORY_INSTALL && class_exists('wfWAFIPBlocksController') && (substr($key, 0, 4) == 'cbl_' || $key == 'blockedTime' || $key == 'disableWAFIPBlocking')) {
|
462 |
+
wfWAFIPBlocksController::setNeedsSynchronizeConfigSettings();
|
463 |
}
|
464 |
}
|
465 |
public static function get($key, $default = false, $allowCached = true) {
|
1631 |
'email_summary_interval',
|
1632 |
'email_summary_excluded_directories',
|
1633 |
'howGetIPs_trusted_proxies',
|
1634 |
+
'displayTopLevelOptions',
|
1635 |
);
|
1636 |
break;
|
1637 |
case self::OPTIONS_TYPE_FIREWALL:
|
1767 |
'betaThreatDefenseFeed',
|
1768 |
);
|
1769 |
break;
|
1770 |
+
case self::OPTIONS_TYPE_ALL:
|
1771 |
+
$options = array(
|
1772 |
+
'alertOn_critical',
|
1773 |
+
'alertOn_update',
|
1774 |
+
'alertOn_warnings',
|
1775 |
+
'alertOn_throttle',
|
1776 |
+
'alertOn_block',
|
1777 |
+
'alertOn_loginLockout',
|
1778 |
+
'alertOn_lostPasswdForm',
|
1779 |
+
'alertOn_adminLogin',
|
1780 |
+
'alertOn_firstAdminLoginOnly',
|
1781 |
+
'alertOn_nonAdminLogin',
|
1782 |
+
'alertOn_firstNonAdminLoginOnly',
|
1783 |
+
'alertOn_wordfenceDeactivated',
|
1784 |
+
'liveActivityPauseEnabled',
|
1785 |
+
'notification_updatesNeeded',
|
1786 |
+
'notification_securityAlerts',
|
1787 |
+
'notification_promotions',
|
1788 |
+
'notification_blogHighlights',
|
1789 |
+
'notification_productUpdates',
|
1790 |
+
'notification_scanStatus',
|
1791 |
+
'other_hideWPVersion',
|
1792 |
+
'other_bypassLitespeedNoabort',
|
1793 |
+
'deleteTablesOnDeact',
|
1794 |
+
'autoUpdate',
|
1795 |
+
'disableCookies',
|
1796 |
+
'disableCodeExecutionUploads',
|
1797 |
+
'email_summary_enabled',
|
1798 |
+
'email_summary_dashboard_widget_enabled',
|
1799 |
+
'howGetIPs',
|
1800 |
+
'actUpdateInterval',
|
1801 |
+
'alert_maxHourly',
|
1802 |
+
'email_summary_interval',
|
1803 |
+
'email_summary_excluded_directories',
|
1804 |
+
'howGetIPs_trusted_proxies',
|
1805 |
+
'firewallEnabled',
|
1806 |
+
'blockFakeBots',
|
1807 |
+
'autoBlockScanners',
|
1808 |
+
'loginSecurityEnabled',
|
1809 |
+
'loginSec_strongPasswds_enabled',
|
1810 |
+
'loginSec_lockInvalidUsers',
|
1811 |
+
'loginSec_maskLoginErrors',
|
1812 |
+
'loginSec_blockAdminReg',
|
1813 |
+
'loginSec_disableAuthorScan',
|
1814 |
+
'loginSec_disableOEmbedAuthor',
|
1815 |
+
'other_blockBadPOST',
|
1816 |
+
'other_pwStrengthOnUpdate',
|
1817 |
+
'other_WFNet',
|
1818 |
+
'ajaxWatcherDisabled_front',
|
1819 |
+
'ajaxWatcherDisabled_admin',
|
1820 |
+
'wafAlertOnAttacks',
|
1821 |
+
'disableWAFIPBlocking',
|
1822 |
+
'whitelisted',
|
1823 |
+
'bannedURLs',
|
1824 |
+
'loginSec_userBlacklist',
|
1825 |
+
'neverBlockBG',
|
1826 |
+
'loginSec_countFailMins',
|
1827 |
+
'loginSec_lockoutMins',
|
1828 |
+
'loginSec_strongPasswds',
|
1829 |
+
'loginSec_maxFailures',
|
1830 |
+
'loginSec_maxForgotPasswd',
|
1831 |
+
'maxGlobalRequests',
|
1832 |
+
'maxGlobalRequests_action',
|
1833 |
+
'maxRequestsCrawlers',
|
1834 |
+
'maxRequestsCrawlers_action',
|
1835 |
+
'maxRequestsHumans',
|
1836 |
+
'maxRequestsHumans_action',
|
1837 |
+
'max404Crawlers',
|
1838 |
+
'max404Crawlers_action',
|
1839 |
+
'max404Humans',
|
1840 |
+
'max404Humans_action',
|
1841 |
+
'maxScanHits',
|
1842 |
+
'maxScanHits_action',
|
1843 |
+
'blockedTime',
|
1844 |
+
'allowed404s',
|
1845 |
+
'wafAlertWhitelist',
|
1846 |
+
'wafAlertInterval',
|
1847 |
+
'wafAlertThreshold',
|
1848 |
+
'dismissAutoPrependNotice',
|
1849 |
+
'displayTopLevelBlocking',
|
1850 |
+
'cbl_loggedInBlocked',
|
1851 |
+
'cbl_action',
|
1852 |
+
'cbl_redirURL',
|
1853 |
+
'cbl_bypassRedirURL',
|
1854 |
+
'cbl_bypassRedirDest',
|
1855 |
+
'cbl_bypassViewURL',
|
1856 |
+
'checkSpamIP',
|
1857 |
+
'spamvertizeCheck',
|
1858 |
+
'scheduledScansEnabled',
|
1859 |
+
'lowResourceScansEnabled',
|
1860 |
+
'scansEnabled_checkGSB',
|
1861 |
+
'scansEnabled_checkHowGetIPs',
|
1862 |
+
'scansEnabled_core',
|
1863 |
+
'scansEnabled_themes',
|
1864 |
+
'scansEnabled_plugins',
|
1865 |
+
'scansEnabled_coreUnknown',
|
1866 |
+
'scansEnabled_malware',
|
1867 |
+
'scansEnabled_fileContents',
|
1868 |
+
'scansEnabled_fileContentsGSB',
|
1869 |
+
'scansEnabled_checkReadableConfig',
|
1870 |
+
'scansEnabled_suspectedFiles',
|
1871 |
+
'scansEnabled_posts',
|
1872 |
+
'scansEnabled_comments',
|
1873 |
+
'scansEnabled_suspiciousOptions',
|
1874 |
+
'scansEnabled_passwds',
|
1875 |
+
'scansEnabled_diskSpace',
|
1876 |
+
'scansEnabled_options',
|
1877 |
+
'scansEnabled_wpscan_fullPathDisclosure',
|
1878 |
+
'scansEnabled_wpscan_directoryListingEnabled',
|
1879 |
+
'scansEnabled_dns',
|
1880 |
+
'scansEnabled_scanImages',
|
1881 |
+
'scansEnabled_highSense',
|
1882 |
+
'scansEnabled_oldVersions',
|
1883 |
+
'scansEnabled_suspiciousAdminUsers',
|
1884 |
+
'scan_include_extra',
|
1885 |
+
'maxMem',
|
1886 |
+
'scan_exclude',
|
1887 |
+
'scan_maxIssues',
|
1888 |
+
'scan_maxDuration',
|
1889 |
+
'maxExecutionTime',
|
1890 |
+
'scanType',
|
1891 |
+
'manualScanType',
|
1892 |
+
'schedMode',
|
1893 |
+
'loginSec_requireAdminTwoFactor',
|
1894 |
+
'loginSec_enableSeparateTwoFactor',
|
1895 |
+
'liveTrafficEnabled',
|
1896 |
+
'liveTraf_ignorePublishers',
|
1897 |
+
'liveTraf_displayExpandedRecords',
|
1898 |
+
'liveTraf_ignoreUsers',
|
1899 |
+
'liveTraf_ignoreIPs',
|
1900 |
+
'liveTraf_ignoreUA',
|
1901 |
+
'liveTraf_maxRows',
|
1902 |
+
'displayTopLevelLiveTraffic',
|
1903 |
+
'other_noAnonMemberComments',
|
1904 |
+
'other_scanComments',
|
1905 |
+
'advancedCommentScanning',
|
1906 |
+
);
|
1907 |
+
break;
|
1908 |
}
|
1909 |
|
1910 |
if (isset($options)) {
|
lib/wfLog.php
CHANGED
@@ -1323,6 +1323,15 @@ class wfRequestModel extends wfModel {
|
|
1323 |
public function hasColumn($column) {
|
1324 |
return in_array($column, $this->columns);
|
1325 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1326 |
}
|
1327 |
|
1328 |
|
1323 |
public function hasColumn($column) {
|
1324 |
return in_array($column, $this->columns);
|
1325 |
}
|
1326 |
+
|
1327 |
+
public function save() {
|
1328 |
+
$sapi = @php_sapi_name();
|
1329 |
+
if ($sapi == "cli") {
|
1330 |
+
return false;
|
1331 |
+
}
|
1332 |
+
|
1333 |
+
parent::save();
|
1334 |
+
}
|
1335 |
}
|
1336 |
|
1337 |
|
lib/wfScanEngine.php
CHANGED
@@ -46,6 +46,8 @@ class wfScanEngine {
|
|
46 |
private $pluginRepoStatus = array();
|
47 |
private $malwarePrefixesHash;
|
48 |
private $scanMode = wfScanner::SCAN_TYPE_STANDARD;
|
|
|
|
|
49 |
|
50 |
/**
|
51 |
* @var wfScanner
|
@@ -128,7 +130,7 @@ class wfScanEngine {
|
|
128 |
}
|
129 |
|
130 |
public function __sleep(){ //Same order here as above for properties that are included in serialization
|
131 |
-
return array('hasher', 'jobList', 'i', 'wp_version', 'apiKey', 'startTime', 'maxExecTime', 'publicScanEnabled', 'fileContentsResults', 'scanner', 'scanQueue', 'hoover', 'scanData', 'statusIDX', 'userPasswdQueue', 'passwdHasIssues', 'suspectedFiles', 'dbScanner', 'knownFilesLoader', 'metrics', 'checkHowGetIPsRequestTime', 'gsbMultisiteBlogOffset', 'updateCheck', 'pluginRepoStatus', 'malwarePrefixesHash', 'scanMode');
|
132 |
}
|
133 |
public function __construct($malwarePrefixesHash = '', $scanMode = wfScanner::SCAN_TYPE_STANDARD) {
|
134 |
$this->startTime = time();
|
@@ -1591,8 +1593,8 @@ class wfScanEngine {
|
|
1591 |
}
|
1592 |
}
|
1593 |
$key = 'wfPluginUpgrade' . ' ' . $plugin['pluginFile'] . ' ' . $plugin['newVersion'] . ' ' . $plugin['Version'];
|
1594 |
-
$shortMsg = "The Plugin \"" . $plugin['Name'] . "\" needs an upgrade (" . $plugin['Version'] . " -> " . $plugin['newVersion'] . ").";
|
1595 |
-
$added = $this->addIssue('wfPluginUpgrade', $severity, $key, $key, $shortMsg, "You need to upgrade \"" . $plugin['Name'] . "\" to the newest version to ensure you have any security fixes the developer has released.", $plugin);
|
1596 |
if ($added == wfIssues::ISSUE_ADDED || $added == wfIssues::ISSUE_UPDATED) { $haveIssues = wfIssues::STATUS_PROBLEM; }
|
1597 |
else if ($haveIssues != wfIssues::STATUS_PROBLEM && ($added == wfIssues::ISSUE_IGNOREP || $added == wfIssues::ISSUE_IGNOREC)) { $haveIssues = wfIssues::STATUS_IGNORED; }
|
1598 |
|
@@ -1651,7 +1653,7 @@ class wfScanEngine {
|
|
1651 |
}
|
1652 |
|
1653 |
$key = "wfPluginAbandoned {$slug} {$statusArray['version']}";
|
1654 |
-
$shortMsg = 'The Plugin "' . $statusArray['name'] . '" appears to be abandoned (updated ' . wfUtils::formatLocalTime(get_option('date_format'), $lastUpdateTimestamp) . "{$testedShort}).";
|
1655 |
$longMsg = 'It was last updated ' . wfUtils::makeTimeAgo(time() - $lastUpdateTimestamp) . " ago{$testedLong}.";
|
1656 |
if ($statusArray['vulnerable']) {
|
1657 |
$longMsg .= ' It has unpatched security issues and may have compatibility problems with the current version of WordPress.';
|
@@ -1686,7 +1688,7 @@ class wfScanEngine {
|
|
1686 |
}
|
1687 |
|
1688 |
$key = "wfPluginRemoved {$slug} {$pluginData['Version']}";
|
1689 |
-
$shortMsg = 'The Plugin "' . $pluginData['Name'] . '" has been removed from wordpress.org.';
|
1690 |
if ($pluginData['vulnerable']) {
|
1691 |
$longMsg = 'It has unpatched security issues and may have compatibility problems with the current version of WordPress.';
|
1692 |
}
|
@@ -2011,8 +2013,10 @@ class wfScanEngine {
|
|
2011 |
'FullDir' => $pluginFullDir
|
2012 |
);
|
2013 |
}
|
2014 |
-
$this->scanController->incrementSummaryItem(wfScanner::SUMMARY_SCANNED_PLUGINS);
|
2015 |
}
|
|
|
|
|
2016 |
return $plugins;
|
2017 |
}
|
2018 |
|
@@ -2041,8 +2045,10 @@ class wfScanEngine {
|
|
2041 |
'FullDir' => $fullDir
|
2042 |
);
|
2043 |
}
|
2044 |
-
$this->scanController->incrementSummaryItem(wfScanner::SUMMARY_SCANNED_THEMES);
|
2045 |
}
|
|
|
|
|
2046 |
return $themes;
|
2047 |
}
|
2048 |
|
46 |
private $pluginRepoStatus = array();
|
47 |
private $malwarePrefixesHash;
|
48 |
private $scanMode = wfScanner::SCAN_TYPE_STANDARD;
|
49 |
+
private $pluginsCounted = false;
|
50 |
+
private $themesCounted = false;
|
51 |
|
52 |
/**
|
53 |
* @var wfScanner
|
130 |
}
|
131 |
|
132 |
public function __sleep(){ //Same order here as above for properties that are included in serialization
|
133 |
+
return array('hasher', 'jobList', 'i', 'wp_version', 'apiKey', 'startTime', 'maxExecTime', 'publicScanEnabled', 'fileContentsResults', 'scanner', 'scanQueue', 'hoover', 'scanData', 'statusIDX', 'userPasswdQueue', 'passwdHasIssues', 'suspectedFiles', 'dbScanner', 'knownFilesLoader', 'metrics', 'checkHowGetIPsRequestTime', 'gsbMultisiteBlogOffset', 'updateCheck', 'pluginRepoStatus', 'malwarePrefixesHash', 'scanMode', 'pluginsCounted', 'themesCounted');
|
134 |
}
|
135 |
public function __construct($malwarePrefixesHash = '', $scanMode = wfScanner::SCAN_TYPE_STANDARD) {
|
136 |
$this->startTime = time();
|
1593 |
}
|
1594 |
}
|
1595 |
$key = 'wfPluginUpgrade' . ' ' . $plugin['pluginFile'] . ' ' . $plugin['newVersion'] . ' ' . $plugin['Version'];
|
1596 |
+
$shortMsg = "The Plugin \"" . (empty($plugin['Name']) ? $plugin['pluginFile'] : $plugin['Name']) . "\" needs an upgrade (" . $plugin['Version'] . " -> " . $plugin['newVersion'] . ").";
|
1597 |
+
$added = $this->addIssue('wfPluginUpgrade', $severity, $key, $key, $shortMsg, "You need to upgrade \"" . (empty($plugin['Name']) ? $plugin['pluginFile'] : $plugin['Name']) . "\" to the newest version to ensure you have any security fixes the developer has released.", $plugin);
|
1598 |
if ($added == wfIssues::ISSUE_ADDED || $added == wfIssues::ISSUE_UPDATED) { $haveIssues = wfIssues::STATUS_PROBLEM; }
|
1599 |
else if ($haveIssues != wfIssues::STATUS_PROBLEM && ($added == wfIssues::ISSUE_IGNOREP || $added == wfIssues::ISSUE_IGNOREC)) { $haveIssues = wfIssues::STATUS_IGNORED; }
|
1600 |
|
1653 |
}
|
1654 |
|
1655 |
$key = "wfPluginAbandoned {$slug} {$statusArray['version']}";
|
1656 |
+
$shortMsg = 'The Plugin "' . (empty($statusArray['name']) ? $slug : $statusArray['name']) . '" appears to be abandoned (updated ' . wfUtils::formatLocalTime(get_option('date_format'), $lastUpdateTimestamp) . "{$testedShort}).";
|
1657 |
$longMsg = 'It was last updated ' . wfUtils::makeTimeAgo(time() - $lastUpdateTimestamp) . " ago{$testedLong}.";
|
1658 |
if ($statusArray['vulnerable']) {
|
1659 |
$longMsg .= ' It has unpatched security issues and may have compatibility problems with the current version of WordPress.';
|
1688 |
}
|
1689 |
|
1690 |
$key = "wfPluginRemoved {$slug} {$pluginData['Version']}";
|
1691 |
+
$shortMsg = 'The Plugin "' . (empty($pluginData['Name']) ? $slug : $pluginData['Name']) . '" has been removed from wordpress.org.';
|
1692 |
if ($pluginData['vulnerable']) {
|
1693 |
$longMsg = 'It has unpatched security issues and may have compatibility problems with the current version of WordPress.';
|
1694 |
}
|
2013 |
'FullDir' => $pluginFullDir
|
2014 |
);
|
2015 |
}
|
2016 |
+
if (!$this->pluginsCounted) { $this->scanController->incrementSummaryItem(wfScanner::SUMMARY_SCANNED_PLUGINS); }
|
2017 |
}
|
2018 |
+
|
2019 |
+
$this->pluginsCounted = true;
|
2020 |
return $plugins;
|
2021 |
}
|
2022 |
|
2045 |
'FullDir' => $fullDir
|
2046 |
);
|
2047 |
}
|
2048 |
+
if (!$this->themesCounted) { $this->scanController->incrementSummaryItem(wfScanner::SUMMARY_SCANNED_THEMES); }
|
2049 |
}
|
2050 |
+
|
2051 |
+
$this->themesCounted = true;
|
2052 |
return $themes;
|
2053 |
}
|
2054 |
|
lib/wordfenceClass.php
CHANGED
@@ -984,6 +984,13 @@ SQL
|
|
984 |
wfConfig::set('blocks702Migration', 1);
|
985 |
}
|
986 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
987 |
//Check the How does Wordfence get IPs setting
|
988 |
wfUtils::requestDetectProxyCallback();
|
989 |
|
@@ -1314,7 +1321,7 @@ SQL
|
|
1314 |
$func = (isset($_POST['action']) && $_POST['action']) ? $_POST['action'] : $_GET['action'];
|
1315 |
$nonce = (isset($_POST['nonce']) && $_POST['nonce']) ? $_POST['nonce'] : $_GET['nonce'];
|
1316 |
if(! wp_verify_nonce($nonce, 'wp-ajax')){
|
1317 |
-
die(json_encode(array('errorMsg' => "Your browser sent an invalid security token to Wordfence. Please try reloading this page or signing out and in again.")));
|
1318 |
}
|
1319 |
//func is e.g. wordfence_ticker so need to munge it
|
1320 |
$func = str_replace('wordfence_', '', $func);
|
@@ -1508,14 +1515,14 @@ SQL
|
|
1508 |
|
1509 |
if($_GET['func'] == 'unlockMyIP'){
|
1510 |
wfBlock::unblockIP(wfUtils::getIP());
|
1511 |
-
if (class_exists('wfWAFIPBlocksController')) { wfWAFIPBlocksController::
|
1512 |
delete_transient('wflginfl_' . bin2hex(wfUtils::inet_pton(wfUtils::getIP()))); //Reset login failure counter
|
1513 |
header('Location: ' . wp_login_url());
|
1514 |
exit();
|
1515 |
} else if($_GET['func'] == 'unlockAllIPs'){
|
1516 |
wordfence::status(1, 'info', "Request received via unlock email link to unblock all IPs.");
|
1517 |
wfBlock::removeAllIPBlocks();
|
1518 |
-
if (class_exists('wfWAFIPBlocksController')) { wfWAFIPBlocksController::
|
1519 |
delete_transient('wflginfl_' . bin2hex(wfUtils::inet_pton(wfUtils::getIP()))); //Reset login failure counter
|
1520 |
header('Location: ' . wp_login_url());
|
1521 |
exit();
|
@@ -1525,7 +1532,7 @@ SQL
|
|
1525 |
wordfence::status(1, 'info', "Request received via unlock email link to unblock all IPs via disabling firewall rules.");
|
1526 |
wfBlock::removeAllIPBlocks();
|
1527 |
wfBlock::removeAllCountryBlocks();
|
1528 |
-
if (class_exists('wfWAFIPBlocksController')) { wfWAFIPBlocksController::
|
1529 |
delete_transient('wflginfl_' . bin2hex(wfUtils::inet_pton(wfUtils::getIP()))); //Reset login failure counter
|
1530 |
header('Location: ' . wp_login_url());
|
1531 |
exit();
|
@@ -1575,7 +1582,7 @@ SQL
|
|
1575 |
}
|
1576 |
|
1577 |
if (class_exists('wfWAFIPBlocksController')) {
|
1578 |
-
wfWAFIPBlocksController::
|
1579 |
}
|
1580 |
|
1581 |
if (empty($_GET['wordfence_syncAttackData'])) {
|
@@ -3064,24 +3071,11 @@ SQL
|
|
3064 |
if ($countries == array_keys($wfBulkCountries)) {
|
3065 |
$entry['detailDisplay'] = __('All Countries', 'wordfence');
|
3066 |
}
|
3067 |
-
else if (count($countries)
|
3068 |
-
|
3069 |
-
if (!empty($entry['detailDisplay'])) {
|
3070 |
-
$entry['detailDisplay'] .= ', ';
|
3071 |
-
}
|
3072 |
-
$entry['detailDisplay'] .= esc_html($wfBulkCountries[$c]);
|
3073 |
-
}
|
3074 |
-
|
3075 |
-
$entry['detailDisplay'] .= ', ' . sprintf(count($countries) - 3 == 1 ? __('and %d other country', 'wordfence') : __(' and %d other countries', 'wordfence'), count($countries) - 3);
|
3076 |
-
}
|
3077 |
-
else if (count($countries) == 3) {
|
3078 |
-
$entry['detailDisplay'] = esc_html($wfBulkCountries[$countries[0]]) . ', ' . esc_html($wfBulkCountries[$countries[1]]) . __(', and ', 'wordfence') . esc_html($wfBulkCountries[$countries[2]]);
|
3079 |
-
}
|
3080 |
-
else if (count($countries) == 2) {
|
3081 |
-
$entry['detailDisplay'] = esc_html($wfBulkCountries[$countries[0]]) . __(' and ', 'wordfence') . esc_html($wfBulkCountries[$countries[1]]);
|
3082 |
}
|
3083 |
else {
|
3084 |
-
$entry['detailDisplay'] =
|
3085 |
}
|
3086 |
|
3087 |
if ($b->blockLogin && $b->blockSite) {
|
@@ -3132,7 +3126,6 @@ SQL
|
|
3132 |
$offset = (int) $_POST['offset'];
|
3133 |
}
|
3134 |
|
3135 |
-
//TODO: support pagination
|
3136 |
$hasCountryBlock = false;
|
3137 |
$blocks = self::_blocksAJAXReponse($hasCountryBlock, $offset);
|
3138 |
return array('blocks' => $blocks, 'hasCountryBlock' => $hasCountryBlock);
|
@@ -3243,6 +3236,23 @@ SQL
|
|
3243 |
'error' => __('No license was provided to install.', 'wordfence'),
|
3244 |
);
|
3245 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
3246 |
public static function ajax_restoreDefaults_callback() {
|
3247 |
if (!empty($_POST['section'])) {
|
3248 |
if (wfConfig::restoreDefaults($_POST['section'])) {
|
@@ -3287,7 +3297,20 @@ SQL
|
|
3287 |
}
|
3288 |
|
3289 |
wfConfig::save($changes);
|
3290 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
3291 |
}
|
3292 |
catch (wfWAFStorageFileException $e) {
|
3293 |
return array(
|
@@ -4811,7 +4834,7 @@ HTML;
|
|
4811 |
'hideFileHtaccess', 'saveDebuggingConfig',
|
4812 |
'whitelistBulkDelete', 'whitelistBulkEnable', 'whitelistBulkDisable',
|
4813 |
'dismissNotification', 'utilityScanForBlacklisted', 'dashboardShowMore',
|
4814 |
-
'saveOptions', 'restoreDefaults', 'createBlock', 'deleteBlocks', 'makePermanentBlocks', 'getBlocks',
|
4815 |
'installAutoPrepend', 'uninstallAutoPrepend',
|
4816 |
'installLicense',
|
4817 |
) as $func){
|
@@ -4900,6 +4923,7 @@ HTML;
|
|
4900 |
'allowsPausing' => wfConfig::get('liveActivityPauseEnabled'),
|
4901 |
'scanRunning' => wfScanner::shared()->isRunning() ? '1' : '0',
|
4902 |
'modalTemplate' => wfView::create('common/modal-prompt', array('title' => '${title}', 'message' => '${message}', 'primaryButton' => array('id' => 'wf-generic-modal-close', 'label' => __('Close', 'wordfence'), 'link' => '#')))->render(),
|
|
|
4903 |
'modalHTMLTemplate' => wfView::create('common/modal-prompt', array('title' => '${title}', 'message' => '{{html message}}', 'primaryButton' => array('id' => 'wf-generic-modal-close', 'label' => __('Close', 'wordfence'), 'link' => '#')))->render(),
|
4904 |
));
|
4905 |
}
|
@@ -5075,6 +5099,9 @@ HTML;
|
|
5075 |
if (wfConfig::get('displayTopLevelLiveTraffic')) {
|
5076 |
add_submenu_page("Wordfence", "Live Traffic", "Live Traffic", "activate_plugins", "WordfenceLiveTraffic", 'wordfence::menu_tools');
|
5077 |
}
|
|
|
|
|
|
|
5078 |
add_submenu_page('Wordfence', 'Help', 'Help', 'activate_plugins', 'WordfenceSupport', 'wordfence::menu_support');
|
5079 |
|
5080 |
if (wfConfig::get('isPaid')) {
|
@@ -5207,6 +5234,43 @@ JQUERY;
|
|
5207 |
require 'menu_tools.php';
|
5208 |
}
|
5209 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
5210 |
public static function menu_blocking() {
|
5211 |
// Do nothing -- this action is forwarded in admin_init
|
5212 |
}
|
@@ -5791,6 +5855,28 @@ to your httpd.conf if using Apache, or find documentation on how to disable dire
|
|
5791 |
return array('ok' => 1);
|
5792 |
}
|
5793 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
5794 |
|
5795 |
return array(
|
5796 |
'err' => 1,
|
984 |
wfConfig::set('blocks702Migration', 1);
|
985 |
}
|
986 |
|
987 |
+
//7.0.3
|
988 |
+
/*if (!wfConfig::get('generateAllOptionsNotification')) {
|
989 |
+
new wfNotification(null, wfNotification::PRIORITY_HIGH_WARNING, '<p>Developers: If you prefer to edit all Wordfence options on one page, you can enable the "All Options" page here:</p>
|
990 |
+
<p><a href="javascript:WFAD.enableAllOptionsPage();" class="wf-btn wf-btn-primary wf-btn-callout-subtle">Enable "All Options" Page</a></p>', 'wfplugin_devalloptions');
|
991 |
+
wfConfig::set('generateAllOptionsNotification', 1);
|
992 |
+
}*/
|
993 |
+
|
994 |
//Check the How does Wordfence get IPs setting
|
995 |
wfUtils::requestDetectProxyCallback();
|
996 |
|
1321 |
$func = (isset($_POST['action']) && $_POST['action']) ? $_POST['action'] : $_GET['action'];
|
1322 |
$nonce = (isset($_POST['nonce']) && $_POST['nonce']) ? $_POST['nonce'] : $_GET['nonce'];
|
1323 |
if(! wp_verify_nonce($nonce, 'wp-ajax')){
|
1324 |
+
die(json_encode(array('errorMsg' => "Your browser sent an invalid security token to Wordfence. Please try reloading this page or signing out and in again.", 'tokenInvalid' => 1)));
|
1325 |
}
|
1326 |
//func is e.g. wordfence_ticker so need to munge it
|
1327 |
$func = str_replace('wordfence_', '', $func);
|
1515 |
|
1516 |
if($_GET['func'] == 'unlockMyIP'){
|
1517 |
wfBlock::unblockIP(wfUtils::getIP());
|
1518 |
+
if (class_exists('wfWAFIPBlocksController')) { wfWAFIPBlocksController::setNeedsSynchronizeConfigSettings(); }
|
1519 |
delete_transient('wflginfl_' . bin2hex(wfUtils::inet_pton(wfUtils::getIP()))); //Reset login failure counter
|
1520 |
header('Location: ' . wp_login_url());
|
1521 |
exit();
|
1522 |
} else if($_GET['func'] == 'unlockAllIPs'){
|
1523 |
wordfence::status(1, 'info', "Request received via unlock email link to unblock all IPs.");
|
1524 |
wfBlock::removeAllIPBlocks();
|
1525 |
+
if (class_exists('wfWAFIPBlocksController')) { wfWAFIPBlocksController::setNeedsSynchronizeConfigSettings(); }
|
1526 |
delete_transient('wflginfl_' . bin2hex(wfUtils::inet_pton(wfUtils::getIP()))); //Reset login failure counter
|
1527 |
header('Location: ' . wp_login_url());
|
1528 |
exit();
|
1532 |
wordfence::status(1, 'info', "Request received via unlock email link to unblock all IPs via disabling firewall rules.");
|
1533 |
wfBlock::removeAllIPBlocks();
|
1534 |
wfBlock::removeAllCountryBlocks();
|
1535 |
+
if (class_exists('wfWAFIPBlocksController')) { wfWAFIPBlocksController::setNeedsSynchronizeConfigSettings(); }
|
1536 |
delete_transient('wflginfl_' . bin2hex(wfUtils::inet_pton(wfUtils::getIP()))); //Reset login failure counter
|
1537 |
header('Location: ' . wp_login_url());
|
1538 |
exit();
|
1582 |
}
|
1583 |
|
1584 |
if (class_exists('wfWAFIPBlocksController')) {
|
1585 |
+
wfWAFIPBlocksController::setNeedsSynchronizeConfigSettings();
|
1586 |
}
|
1587 |
|
1588 |
if (empty($_GET['wordfence_syncAttackData'])) {
|
3071 |
if ($countries == array_keys($wfBulkCountries)) {
|
3072 |
$entry['detailDisplay'] = __('All Countries', 'wordfence');
|
3073 |
}
|
3074 |
+
else if (count($countries) == 1) {
|
3075 |
+
$entry['detailDisplay'] = __('1 Country', 'wordfence');
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
3076 |
}
|
3077 |
else {
|
3078 |
+
$entry['detailDisplay'] = sprintf(__('%d Countries', 'wordfence'), count($countries));
|
3079 |
}
|
3080 |
|
3081 |
if ($b->blockLogin && $b->blockSite) {
|
3126 |
$offset = (int) $_POST['offset'];
|
3127 |
}
|
3128 |
|
|
|
3129 |
$hasCountryBlock = false;
|
3130 |
$blocks = self::_blocksAJAXReponse($hasCountryBlock, $offset);
|
3131 |
return array('blocks' => $blocks, 'hasCountryBlock' => $hasCountryBlock);
|
3236 |
'error' => __('No license was provided to install.', 'wordfence'),
|
3237 |
);
|
3238 |
}
|
3239 |
+
public static function ajax_enableAllOptionsPage_callback() {
|
3240 |
+
wfConfig::set('displayTopLevelOptions', 1);
|
3241 |
+
$n = wfNotification::getNotificationForCategory('wfplugin_devalloptions');
|
3242 |
+
if ($n !== null) {
|
3243 |
+
$n->markAsRead();
|
3244 |
+
}
|
3245 |
+
|
3246 |
+
$response = array('success' => true);
|
3247 |
+
if (function_exists('network_admin_url') && is_multisite()) {
|
3248 |
+
$response['redirect'] = network_admin_url('admin.php?page=WordfenceOptions');
|
3249 |
+
}
|
3250 |
+
else {
|
3251 |
+
$response['redirect'] = admin_url('admin.php?page=WordfenceOptions');
|
3252 |
+
}
|
3253 |
+
|
3254 |
+
return $response;
|
3255 |
+
}
|
3256 |
public static function ajax_restoreDefaults_callback() {
|
3257 |
if (!empty($_POST['section'])) {
|
3258 |
if (wfConfig::restoreDefaults($_POST['section'])) {
|
3297 |
}
|
3298 |
|
3299 |
wfConfig::save($changes);
|
3300 |
+
|
3301 |
+
$response = array('success' => true);
|
3302 |
+
if (!empty($_POST['page']) && preg_match('/^Wordfence/i', $_POST['page'])) {
|
3303 |
+
if ($_POST['page'] == 'WordfenceOptions' && isset($changes['displayTopLevelOptions']) && !wfUtils::truthyToBoolean($changes['displayTopLevelOptions'])) {
|
3304 |
+
if (function_exists('network_admin_url') && is_multisite()) {
|
3305 |
+
$response['redirect'] = network_admin_url('admin.php?page=Wordfence');
|
3306 |
+
}
|
3307 |
+
else {
|
3308 |
+
$response['redirect'] = admin_url('admin.php?page=Wordfence');
|
3309 |
+
}
|
3310 |
+
}
|
3311 |
+
}
|
3312 |
+
|
3313 |
+
return $response;
|
3314 |
}
|
3315 |
catch (wfWAFStorageFileException $e) {
|
3316 |
return array(
|
4834 |
'hideFileHtaccess', 'saveDebuggingConfig',
|
4835 |
'whitelistBulkDelete', 'whitelistBulkEnable', 'whitelistBulkDisable',
|
4836 |
'dismissNotification', 'utilityScanForBlacklisted', 'dashboardShowMore',
|
4837 |
+
'saveOptions', 'restoreDefaults', 'enableAllOptionsPage', 'createBlock', 'deleteBlocks', 'makePermanentBlocks', 'getBlocks',
|
4838 |
'installAutoPrepend', 'uninstallAutoPrepend',
|
4839 |
'installLicense',
|
4840 |
) as $func){
|
4923 |
'allowsPausing' => wfConfig::get('liveActivityPauseEnabled'),
|
4924 |
'scanRunning' => wfScanner::shared()->isRunning() ? '1' : '0',
|
4925 |
'modalTemplate' => wfView::create('common/modal-prompt', array('title' => '${title}', 'message' => '${message}', 'primaryButton' => array('id' => 'wf-generic-modal-close', 'label' => __('Close', 'wordfence'), 'link' => '#')))->render(),
|
4926 |
+
'tokenInvalidTemplate' => wfView::create('common/modal-prompt', array('title' => '${title}', 'message' => '${message}', 'primaryButton' => array('id' => 'wf-token-invalid-modal-reload', 'label' => __('Reload', 'wordfence'), 'link' => '#')))->render(),
|
4927 |
'modalHTMLTemplate' => wfView::create('common/modal-prompt', array('title' => '${title}', 'message' => '{{html message}}', 'primaryButton' => array('id' => 'wf-generic-modal-close', 'label' => __('Close', 'wordfence'), 'link' => '#')))->render(),
|
4928 |
));
|
4929 |
}
|
5099 |
if (wfConfig::get('displayTopLevelLiveTraffic')) {
|
5100 |
add_submenu_page("Wordfence", "Live Traffic", "Live Traffic", "activate_plugins", "WordfenceLiveTraffic", 'wordfence::menu_tools');
|
5101 |
}
|
5102 |
+
if (wfConfig::get('displayTopLevelOptions')) {
|
5103 |
+
add_submenu_page("Wordfence", "All Options", "All Options", "activate_plugins", "WordfenceOptions", 'wordfence::menu_options');
|
5104 |
+
}
|
5105 |
add_submenu_page('Wordfence', 'Help', 'Help', 'activate_plugins', 'WordfenceSupport', 'wordfence::menu_support');
|
5106 |
|
5107 |
if (wfConfig::get('isPaid')) {
|
5234 |
require 'menu_tools.php';
|
5235 |
}
|
5236 |
|
5237 |
+
public static function menu_options() {
|
5238 |
+
wp_enqueue_style('wordfence-jquery-ui-css', wfUtils::getBaseURL() . wfUtils::versionedAsset('css/jquery-ui.min.css'), array(), WORDFENCE_VERSION);
|
5239 |
+
wp_enqueue_style('wordfence-jquery-ui-structure-css', wfUtils::getBaseURL() . wfUtils::versionedAsset('css/jquery-ui.structure.min.css'), array(), WORDFENCE_VERSION);
|
5240 |
+
wp_enqueue_style('wordfence-jquery-ui-theme-css', wfUtils::getBaseURL() . wfUtils::versionedAsset('css/jquery-ui.theme.min.css'), array(), WORDFENCE_VERSION);
|
5241 |
+
wp_enqueue_style('wordfence-jquery-ui-timepicker-css', wfUtils::getBaseURL() . wfUtils::versionedAsset('css/jquery-ui-timepicker-addon.css'), array(), WORDFENCE_VERSION);
|
5242 |
+
wp_enqueue_style('wordfence-select2-css', wfUtils::getBaseURL() . wfUtils::versionedAsset('css/select2.min.css'), array(), WORDFENCE_VERSION);
|
5243 |
+
|
5244 |
+
wp_enqueue_script('wordfence-timepicker-js', wfUtils::getBaseURL() . wfUtils::versionedAsset('js/jquery-ui-timepicker-addon.js'), array('jquery', 'jquery-ui-datepicker', 'jquery-ui-slider'), WORDFENCE_VERSION);
|
5245 |
+
wp_enqueue_script('wordfence-select2-js', wfUtils::getBaseURL() . wfUtils::versionedAsset('js/select2.min.js'), array('jquery', 'jquery-ui-tooltip'), WORDFENCE_VERSION);
|
5246 |
+
|
5247 |
+
try {
|
5248 |
+
$wafData = self::_getWAFData();
|
5249 |
+
}
|
5250 |
+
catch (wfWAFStorageFileConfigException $e) {
|
5251 |
+
// We don't have anywhere to write files in this scenario. Let's notify the user to update the permissions.
|
5252 |
+
$wafData = array();
|
5253 |
+
$logPath = str_replace(ABSPATH, '~/', WFWAF_LOG_PATH);
|
5254 |
+
if (function_exists('network_admin_url') && is_multisite()) {
|
5255 |
+
$wafMenuURL = network_admin_url('admin.php?page=WordfenceWAF&wafconfigrebuild=1');
|
5256 |
+
} else {
|
5257 |
+
$wafMenuURL = admin_url('admin.php?page=WordfenceWAF&wafconfigrebuild=1');
|
5258 |
+
}
|
5259 |
+
$wafMenuURL = add_query_arg(array(
|
5260 |
+
'waf-nonce' => wp_create_nonce('wafconfigrebuild'),
|
5261 |
+
), $wafMenuURL);
|
5262 |
+
$storageExceptionMessage = $e->getMessage() . ' <a href="' . esc_url($wafMenuURL) . '">Click here</a> to rebuild the configuration file.';
|
5263 |
+
} catch (wfWAFStorageFileException $e) {
|
5264 |
+
// We don't have anywhere to write files in this scenario. Let's notify the user to update the permissions.
|
5265 |
+
$wafData = array();
|
5266 |
+
$logPath = str_replace(ABSPATH, '~/', WFWAF_LOG_PATH);
|
5267 |
+
$storageExceptionMessage = 'We were unable to write to ' . $logPath . ' which the WAF uses for storage. Please
|
5268 |
+
update permissions on the parent directory so the web server can write to it.';
|
5269 |
+
}
|
5270 |
+
|
5271 |
+
require 'menu_options.php';
|
5272 |
+
}
|
5273 |
+
|
5274 |
public static function menu_blocking() {
|
5275 |
// Do nothing -- this action is forwarded in admin_init
|
5276 |
}
|
5855 |
return array('ok' => 1);
|
5856 |
}
|
5857 |
}
|
5858 |
+
else if (isset($_POST['names']) && isset($_POST['state'])) {
|
5859 |
+
$rawNames = $_POST['names'];
|
5860 |
+
if (is_array($rawNames)) {
|
5861 |
+
$filteredNames = array();
|
5862 |
+
foreach ($rawNames as $name) {
|
5863 |
+
$name = preg_replace('/[^a-zA-Z0-9_\-]/', '', $name);
|
5864 |
+
if (!empty($name)) {
|
5865 |
+
$filteredNames[] = $name;
|
5866 |
+
}
|
5867 |
+
}
|
5868 |
+
|
5869 |
+
$state = wfUtils::truthyToBoolean($_POST['state']);
|
5870 |
+
if (!empty($filteredNames)) {
|
5871 |
+
$disclosureStates = wfConfig::get_ser('disclosureStates', array());
|
5872 |
+
foreach ($filteredNames as $name) {
|
5873 |
+
$disclosureStates[$name] = $state;
|
5874 |
+
}
|
5875 |
+
wfConfig::set_ser('disclosureStates', $disclosureStates);
|
5876 |
+
return array('ok' => 1);
|
5877 |
+
}
|
5878 |
+
}
|
5879 |
+
}
|
5880 |
|
5881 |
return array(
|
5882 |
'err' => 1,
|
lib/wordfenceScanner.php
CHANGED
@@ -442,7 +442,8 @@ class wordfenceScanner {
|
|
442 |
}
|
443 |
|
444 |
if (!$dontScanForURLs && $options['scansEnabled_fileContentsGSB']) {
|
445 |
-
$this->urlHoover->hoover($file, $data, $hooverExclusions);
|
|
|
446 |
}
|
447 |
|
448 |
if ($totalRead > 2 * 1024 * 1024) {
|
442 |
}
|
443 |
|
444 |
if (!$dontScanForURLs && $options['scansEnabled_fileContentsGSB']) {
|
445 |
+
$found = $this->urlHoover->hoover($file, $data, $hooverExclusions);
|
446 |
+
$this->scanEngine->scanController()->incrementSummaryItem(wfScanner::SUMMARY_SCANNED_URLS, $found);
|
447 |
}
|
448 |
|
449 |
if ($totalRead > 2 * 1024 * 1024) {
|
lib/wordfenceURLHoover.php
CHANGED
@@ -123,6 +123,8 @@ class wordfenceURLHoover {
|
|
123 |
return;
|
124 |
}
|
125 |
|
|
|
|
|
126 |
$host = (isset($components['host']) ? $components['host'] : '');
|
127 |
$path = (isset($components['path']) && !empty($components['path']) ? $components['path'] : '/');
|
128 |
$hashes = $this->_generateHashes($url);
|
@@ -138,7 +140,6 @@ class wordfenceURLHoover {
|
|
138 |
if ($this->useDB) {
|
139 |
$sql = "INSERT INTO " . $this->table . " (owner, host, path, hostKey) VALUES ";
|
140 |
while ($elem = $this->hostsToAdd->shift()) {
|
141 |
-
$this->_foundSome++;
|
142 |
//This may be an issue for hyperDB or other abstraction layers, but leaving it for now.
|
143 |
$sql .= sprintf("('%s', '%s', '%s', '%s'),",
|
144 |
$this->db->realEscape($elem['owner']),
|
@@ -153,7 +154,6 @@ class wordfenceURLHoover {
|
|
153 |
}
|
154 |
else {
|
155 |
while ($elem = $this->hostsToAdd->shift()) {
|
156 |
-
$this->_foundSome++;
|
157 |
$keys = str_split($elem['hostKey'], 4);
|
158 |
foreach ($keys as $k) {
|
159 |
$this->hostKeys[] = $k;
|
123 |
return;
|
124 |
}
|
125 |
|
126 |
+
$this->_foundSome++;
|
127 |
+
|
128 |
$host = (isset($components['host']) ? $components['host'] : '');
|
129 |
$path = (isset($components['path']) && !empty($components['path']) ? $components['path'] : '/');
|
130 |
$hashes = $this->_generateHashes($url);
|
140 |
if ($this->useDB) {
|
141 |
$sql = "INSERT INTO " . $this->table . " (owner, host, path, hostKey) VALUES ";
|
142 |
while ($elem = $this->hostsToAdd->shift()) {
|
|
|
143 |
//This may be an issue for hyperDB or other abstraction layers, but leaving it for now.
|
144 |
$sql .= sprintf("('%s', '%s', '%s', '%s'),",
|
145 |
$this->db->realEscape($elem['owner']),
|
154 |
}
|
155 |
else {
|
156 |
while ($elem = $this->hostsToAdd->shift()) {
|
|
|
157 |
$keys = str_split($elem['hostKey'], 4);
|
158 |
foreach ($keys as $k) {
|
159 |
$this->hostKeys[] = $k;
|
models/block/wfBlock.php
CHANGED
@@ -829,6 +829,14 @@ END AS `sortOrder` FROM `{$blocksTable}` WHERE ";
|
|
829 |
$blockIDs = array_map('intval', $blockIDs);
|
830 |
$query = $wpdb->prepare("UPDATE `{$blocksTable}` SET `expiration` = %d, `type` = %d WHERE `id` IN (" . implode(', ', $blockIDs) . ") AND `type` IN (" . implode(', ', $supportedTypes) . ") AND (`expiration` > UNIX_TIMESTAMP())", self::DURATION_FOREVER, self::TYPE_IP_AUTOMATIC_PERMANENT);
|
831 |
$wpdb->query($query);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
832 |
}
|
833 |
|
834 |
/**
|
829 |
$blockIDs = array_map('intval', $blockIDs);
|
830 |
$query = $wpdb->prepare("UPDATE `{$blocksTable}` SET `expiration` = %d, `type` = %d WHERE `id` IN (" . implode(', ', $blockIDs) . ") AND `type` IN (" . implode(', ', $supportedTypes) . ") AND (`expiration` > UNIX_TIMESTAMP())", self::DURATION_FOREVER, self::TYPE_IP_AUTOMATIC_PERMANENT);
|
831 |
$wpdb->query($query);
|
832 |
+
|
833 |
+
$supportedTypes = array(
|
834 |
+
self::TYPE_IP_MANUAL,
|
835 |
+
);
|
836 |
+
|
837 |
+
$blockIDs = array_map('intval', $blockIDs);
|
838 |
+
$query = $wpdb->prepare("UPDATE `{$blocksTable}` SET `expiration` = %d, `type` = %d WHERE `id` IN (" . implode(', ', $blockIDs) . ") AND `type` IN (" . implode(', ', $supportedTypes) . ") AND (`expiration` > UNIX_TIMESTAMP())", self::DURATION_FOREVER, self::TYPE_IP_MANUAL);
|
839 |
+
$wpdb->query($query);
|
840 |
}
|
841 |
|
842 |
/**
|
readme.txt
CHANGED
@@ -2,8 +2,8 @@
|
|
2 |
Contributors: mmaunder
|
3 |
Tags: security, firewall, malware scanner, web application firewall, antivirus, block hackers, country blocking, clean hacked site, blacklist, waf, login security
|
4 |
Requires at least: 3.9
|
5 |
-
Tested up to: 4.9.
|
6 |
-
Stable tag: 7.0.
|
7 |
|
8 |
Secure your website with the most comprehensive WordPress security plugin. Firewall, malware scan, blocking, live traffic, login security & more.
|
9 |
|
@@ -169,6 +169,22 @@ Secure your website with Wordfence.
|
|
169 |
|
170 |
== Changelog ==
|
171 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
172 |
= 7.0.2 =
|
173 |
* Improvement: Added CSS/JS filename versioning to address caching plugins not refreshing for plugin updates.
|
174 |
* Improvement: The premium key is no longer prompted for during installation if already present from an earlier version.
|
2 |
Contributors: mmaunder
|
3 |
Tags: security, firewall, malware scanner, web application firewall, antivirus, block hackers, country blocking, clean hacked site, blacklist, waf, login security
|
4 |
Requires at least: 3.9
|
5 |
+
Tested up to: 4.9.4
|
6 |
+
Stable tag: 7.0.3
|
7 |
|
8 |
Secure your website with the most comprehensive WordPress security plugin. Firewall, malware scan, blocking, live traffic, login security & more.
|
9 |
|
169 |
|
170 |
== Changelog ==
|
171 |
|
172 |
+
= 7.0.3 =
|
173 |
+
* Improvement: Added an "All Options" page to enable developers and others to more rapidly configure Wordfence.
|
174 |
+
* Improvement: Improved messaging for when a page has been open for more than a day and the security token expires.
|
175 |
+
* Improvement: Relocated the "Always display expanded Live Traffic records" option to be more accessible.
|
176 |
+
* Improvement: Improved appearance and behavior of option checkboxes.
|
177 |
+
* Improvement: For plugins with incomplete header information, they're now shown with a fallback title in scan results as appropriate.
|
178 |
+
* Improvement: The country block rule in the blocks table now shows a count rather than a potentially large list of countries.
|
179 |
+
* Change: Modified behavior of the advanced country blocking options to always show.
|
180 |
+
* Fix: Fixed the "Make Permanent" button behavior for blocks created from Live Traffic.
|
181 |
+
* Fix: Better synchronization of block records to the WAF config to avoid duplicate queries.
|
182 |
+
* Fix: The diff viewer now forces wrapping to prevent long lines of text from stretching the layout.
|
183 |
+
* Fix: Fixed an issue where the scanned plugin count could be inaccurate due to forking during the plugin scan.
|
184 |
+
* Fix: Adjusted sizing on the country blocking options to prevent placeholder text from being cut off at some screen sizes.
|
185 |
+
* Fix: Block/Unblock now works correctly when viewing Live Traffic with it grouped by IP.
|
186 |
+
* Fix: Fixed an issue where the count of URLs checked was incorrect.
|
187 |
+
|
188 |
= 7.0.2 =
|
189 |
* Improvement: Added CSS/JS filename versioning to address caching plugins not refreshing for plugin updates.
|
190 |
* Improvement: The premium key is no longer prompted for during installation if already present from an earlier version.
|
views/blocking/option-bypass-cookie.php
CHANGED
@@ -1,7 +1,7 @@
|
|
1 |
<?php
|
2 |
if (!defined('WORDFENCE_VERSION')) { exit; }
|
3 |
?>
|
4 |
-
<ul class="wf-option wf-option-bypass-cookie">
|
5 |
<li class="wf-option-spacer"></li>
|
6 |
<li class="wf-option-content">
|
7 |
<ul>
|
1 |
<?php
|
2 |
if (!defined('WORDFENCE_VERSION')) { exit; }
|
3 |
?>
|
4 |
+
<ul id="wf-option-cbl-bypassViewURL" class="wf-option wf-option-bypass-cookie">
|
5 |
<li class="wf-option-spacer"></li>
|
6 |
<li class="wf-option-content">
|
7 |
<ul>
|
views/blocking/option-bypass-redirect.php
CHANGED
@@ -10,11 +10,11 @@ if (!defined('WORDFENCE_VERSION')) { exit; }
|
|
10 |
<table class="wf-full-width">
|
11 |
<tr>
|
12 |
<td class="wf-right wf-padding-add-right"><?php _e('If user hits the relative URL', 'wordfence'); ?></td>
|
13 |
-
<td class="wf-option-text"><input id="wf-bypass-redir-url" type="text" value="<?php echo esc_attr(wfConfig::get('cbl_bypassRedirURL'), array()); ?>" placeholder="<?php esc_attr_e('/bypassurl/', 'wordfence'); ?>" data-option="cbl_bypassRedirURL" data-original-value="<?php echo esc_attr(wfConfig::get('cbl_bypassRedirURL')); ?>"></td>
|
14 |
</tr>
|
15 |
<tr>
|
16 |
<td class="wf-right wf-padding-add-right wf-padding-add-top-small"><?php _e('then redirect that user to', 'wordfence'); ?></td>
|
17 |
-
<td class="wf-option-text wf-padding-add-top-small"><input id="wf-bypass-redir-dest" type="text" value="<?php echo esc_attr(wfConfig::get('cbl_bypassRedirDest')); ?>" placeholder="<?php esc_attr_e('/page-name/', 'wordfence'); ?>" data-option="cbl_bypassRedirDest" data-original-value="<?php echo esc_attr(wfConfig::get('cbl_bypassRedirDest')); ?>"></td>
|
18 |
</tr>
|
19 |
<tr>
|
20 |
<td></td>
|
10 |
<table class="wf-full-width">
|
11 |
<tr>
|
12 |
<td class="wf-right wf-padding-add-right"><?php _e('If user hits the relative URL', 'wordfence'); ?></td>
|
13 |
+
<td id="wf-option-cbl-bypassRedirURL" class="wf-option-text"><input id="wf-bypass-redir-url" type="text" value="<?php echo esc_attr(wfConfig::get('cbl_bypassRedirURL'), array()); ?>" placeholder="<?php esc_attr_e('/bypassurl/', 'wordfence'); ?>" data-option="cbl_bypassRedirURL" data-original-value="<?php echo esc_attr(wfConfig::get('cbl_bypassRedirURL')); ?>"></td>
|
14 |
</tr>
|
15 |
<tr>
|
16 |
<td class="wf-right wf-padding-add-right wf-padding-add-top-small"><?php _e('then redirect that user to', 'wordfence'); ?></td>
|
17 |
+
<td id="wf-option-cbl-bypassRedirDest" class="wf-option-text wf-padding-add-top-small"><input id="wf-bypass-redir-dest" type="text" value="<?php echo esc_attr(wfConfig::get('cbl_bypassRedirDest')); ?>" placeholder="<?php esc_attr_e('/page-name/', 'wordfence'); ?>" data-option="cbl_bypassRedirDest" data-original-value="<?php echo esc_attr(wfConfig::get('cbl_bypassRedirDest')); ?>"></td>
|
18 |
</tr>
|
19 |
<tr>
|
20 |
<td></td>
|
views/blocking/options-group-advanced-country.php
ADDED
@@ -0,0 +1,91 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
if (!defined('WORDFENCE_VERSION')) { exit; }
|
3 |
+
/**
|
4 |
+
* Presents the Advanced Country Blocking Options group.
|
5 |
+
*
|
6 |
+
* Expects $stateKey.
|
7 |
+
*
|
8 |
+
* @var string $stateKey The key under which the collapse state is stored.
|
9 |
+
* @var bool $collapseable If defined, specifies whether or not this grouping can be collapsed. Defaults to true.
|
10 |
+
*/
|
11 |
+
|
12 |
+
if (!isset($collapseable)) {
|
13 |
+
$collapseable = true;
|
14 |
+
}
|
15 |
+
?>
|
16 |
+
<div class="wf-row">
|
17 |
+
<div class="wf-col-xs-12">
|
18 |
+
<div class="wf-block<?php if (!$collapseable) { echo ' wf-always-active'; } else { echo (wfPersistenceController::shared()->isActive($stateKey) ? ' wf-active' : ''); } ?>" data-persistence-key="<?php echo esc_attr($stateKey); ?>">
|
19 |
+
<div class="wf-block-header">
|
20 |
+
<div class="wf-block-header-content">
|
21 |
+
<div class="wf-block-title">
|
22 |
+
<strong><?php _e('Advanced Country Blocking Options', 'wordfence'); ?></strong>
|
23 |
+
</div>
|
24 |
+
<?php if ($collapseable): ?><div class="wf-block-header-action"><div class="wf-block-header-action-disclosure"></div></div><?php endif; ?>
|
25 |
+
</div>
|
26 |
+
</div>
|
27 |
+
<div class="wf-block-content">
|
28 |
+
<?php if (wfConfig::get('isPaid')): ?>
|
29 |
+
<ul class="wf-block-list">
|
30 |
+
<li>
|
31 |
+
<?php
|
32 |
+
echo wfView::create('options/option-select', array(
|
33 |
+
'selectOptionName' => 'cbl_action',
|
34 |
+
'selectOptions' => array(
|
35 |
+
array('value' => 'block', 'label' => 'Show the standard Wordfence blocked message'),
|
36 |
+
array('value' => 'redir', 'label' => 'Redirect to the URL below'),
|
37 |
+
),
|
38 |
+
'selectValue' => wfConfig::get('cbl_action'),
|
39 |
+
'title' => __('What to do when we block someone', 'wordfence'),
|
40 |
+
'helpLink' => wfSupportController::supportURL(wfSupportController::ITEM_FIREWALL_BLOCKING_OPTION_WHAT_TO_DO),
|
41 |
+
))->render();
|
42 |
+
?>
|
43 |
+
</li>
|
44 |
+
<li>
|
45 |
+
<?php
|
46 |
+
echo wfView::create('options/option-text', array(
|
47 |
+
'textOptionName' => 'cbl_redirURL',
|
48 |
+
'textValue' => wfConfig::get('cbl_redirURL'),
|
49 |
+
'title' => __('URL to redirect blocked users to', 'wordfence'),
|
50 |
+
'placeholder' => __('Enter a full URL (e.g., http://example.com/blocked/)', 'wordfence'),
|
51 |
+
'helpLink' => wfSupportController::supportURL(wfSupportController::ITEM_FIREWALL_BLOCKING_OPTION_REDIRECT),
|
52 |
+
))->render();
|
53 |
+
?>
|
54 |
+
</li>
|
55 |
+
<li>
|
56 |
+
<?php
|
57 |
+
echo wfView::create('options/option-toggled', array(
|
58 |
+
'optionName' => 'cbl_loggedInBlocked',
|
59 |
+
'enabledValue' => 1,
|
60 |
+
'disabledValue' => 0,
|
61 |
+
'value' => wfConfig::get('cbl_loggedInBlocked') ? 1 : 0,
|
62 |
+
'title' => __('Block countries even if they are logged in', 'wordfence'),
|
63 |
+
'helpLink' => wfSupportController::supportURL(wfSupportController::ITEM_FIREWALL_BLOCKING_OPTION_BLOCK_LOGGED_IN),
|
64 |
+
))->render();
|
65 |
+
?>
|
66 |
+
</li>
|
67 |
+
<li>
|
68 |
+
<?php
|
69 |
+
echo wfView::create('blocking/option-bypass-redirect', array(
|
70 |
+
))->render();
|
71 |
+
?>
|
72 |
+
</li>
|
73 |
+
<li>
|
74 |
+
<?php
|
75 |
+
echo wfView::create('blocking/option-bypass-cookie', array(
|
76 |
+
))->render();
|
77 |
+
?>
|
78 |
+
</li>
|
79 |
+
</ul>
|
80 |
+
<?php else: ?>
|
81 |
+
<ul class="wf-flex-vertical wf-padding-add-right-large wf-padding-add-bottom-large">
|
82 |
+
<li><h3><?php _e('Put Geographic Protection In Place With Country Blocking', 'wordfence'); ?></h3></li>
|
83 |
+
<li><p class="wf-no-top"><?php _e('Wordfence country blocking is designed to stop an attack, prevent content theft, or end malicious activity that originates from a geographic region in less than 1/300,000th of a second. Blocking countries who are regularly creating failed logins, a large number of page not found errors, and are clearly engaged in malicious activity is an effective way to protect your site during an attack.', 'wordfence'); ?></p></li>
|
84 |
+
<li><?php echo wfView::create('blocking/country-block-map')->render(); ?></li>
|
85 |
+
<li><a class="wf-btn wf-btn-primary wf-btn-callout-subtle" href="https://www.wordfence.com/gnl1countryBlockUpgrade/wordfence-signup/" target="_blank" rel="noopener noreferrer"><?php _e('Upgrade to Premium', 'wordfence'); ?></a></li>
|
86 |
+
</ul>
|
87 |
+
<?php endif; ?>
|
88 |
+
</div>
|
89 |
+
</div>
|
90 |
+
</div>
|
91 |
+
</div> <!-- end country blocking -->
|
views/common/section-subtitle.php
ADDED
@@ -0,0 +1,29 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
if (!defined('WORDFENCE_VERSION')) { exit; }
|
3 |
+
/**
|
4 |
+
* Expects $title (or $titleHTML) to be defined. If $helpLink and $helpLabel (or $helpLabelHTML) are defined, the help link will be shown.
|
5 |
+
*
|
6 |
+
* @var $title string The page title.
|
7 |
+
* @var $titleHTML string The page title as raw HTML
|
8 |
+
* @var $helpLink string The URL for the help link.
|
9 |
+
* @var $helpLabel string The help link's text.
|
10 |
+
* @var $helpLabelHTML string The help link's text as raw HTML.
|
11 |
+
*/
|
12 |
+
|
13 |
+
if (isset($title) && !isset($titleHTML)) {
|
14 |
+
$titleHTML = esc_html($title);
|
15 |
+
}
|
16 |
+
|
17 |
+
if (isset($helpLabel) && !isset($helpLabelHTML)) {
|
18 |
+
$helpLabelHTML = esc_html($helpLabel);
|
19 |
+
}
|
20 |
+
?>
|
21 |
+
<div class="wf-section-title wf-add-top">
|
22 |
+
<?php if (isset($showIcon) && $showIcon): ?>
|
23 |
+
<div class="wordfence-lock-icon wordfence-icon32 wf-hidden-xs"></div>
|
24 |
+
<?php endif; ?>
|
25 |
+
<h3 class="wf-center-xs"<?php echo (isset($headerID) ? ' id="' . $headerID . '"' : ''); ?>><?php echo $titleHTML; ?></h3>
|
26 |
+
<?php if (isset($helpLink) && isset($helpLabelHTML)): ?>
|
27 |
+
<span class="wf-hidden-xs"><a href="<?php echo esc_attr($helpLink); ?>" target="_blank" rel="noopener noreferrer" class="wf-help-link"><?php echo $helpLabelHTML; ?></a> <i class="wf-fa wf-fa-external-link" aria-hidden="true"></i></span>
|
28 |
+
<?php endif; ?>
|
29 |
+
</div>
|
views/dashboard/option-howgetips.php
CHANGED
@@ -14,7 +14,7 @@ $selectOptions = array(
|
|
14 |
?>
|
15 |
<ul class="wf-flex-vertical wf-flex-full-width">
|
16 |
<li>
|
17 |
-
<ul class="wf-option wf-option-select wf-option-howgetips" data-select-option="howGetIPs" data-original-select-value="<?php echo esc_attr(wfConfig::get('howGetIPs')); ?>" data-text-area-option="howGetIPs_trusted_proxies" data-original-text-area-value="<?php echo esc_attr(wfConfig::get('howGetIPs_trusted_proxies')); ?>">
|
18 |
<li class="wf-option-spacer"></li>
|
19 |
<li class="wf-option-content">
|
20 |
<ul>
|
@@ -41,7 +41,7 @@ $selectOptions = array(
|
|
41 |
</ul>
|
42 |
</li>
|
43 |
<li id="howGetIPs-trusted-proxies">
|
44 |
-
<ul class="wf-option wf-option-textarea" data-text-option="howGetIPs_trusted_proxies" data-original-text-value="<?php echo esc_attr(wfConfig::get('howGetIPs_trusted_proxies')); ?>">
|
45 |
<li class="wf-option-spacer"></li>
|
46 |
<li class="wf-option-content">
|
47 |
<ul>
|
14 |
?>
|
15 |
<ul class="wf-flex-vertical wf-flex-full-width">
|
16 |
<li>
|
17 |
+
<ul id="wf-option-howGetIPs" class="wf-option wf-option-select wf-option-howgetips" data-select-option="howGetIPs" data-original-select-value="<?php echo esc_attr(wfConfig::get('howGetIPs')); ?>" data-text-area-option="howGetIPs_trusted_proxies" data-original-text-area-value="<?php echo esc_attr(wfConfig::get('howGetIPs_trusted_proxies')); ?>">
|
18 |
<li class="wf-option-spacer"></li>
|
19 |
<li class="wf-option-content">
|
20 |
<ul>
|
41 |
</ul>
|
42 |
</li>
|
43 |
<li id="howGetIPs-trusted-proxies">
|
44 |
+
<ul id="wf-option-howGetIPs-trusted-proxies" class="wf-option wf-option-textarea" data-text-option="howGetIPs_trusted_proxies" data-original-text-value="<?php echo esc_attr(wfConfig::get('howGetIPs_trusted_proxies')); ?>">
|
45 |
<li class="wf-option-spacer"></li>
|
46 |
<li class="wf-option-content">
|
47 |
<ul>
|
views/dashboard/options-group-alert.php
ADDED
@@ -0,0 +1,166 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
if (!defined('WORDFENCE_VERSION')) { exit; }
|
3 |
+
/**
|
4 |
+
* Presents the Email Alert Preferences group.
|
5 |
+
*
|
6 |
+
* Expects $stateKey.
|
7 |
+
*
|
8 |
+
* @var string $stateKey The key under which the collapse state is stored.
|
9 |
+
* @var bool $collapseable If defined, specifies whether or not this grouping can be collapsed. Defaults to true.
|
10 |
+
*/
|
11 |
+
|
12 |
+
if (!isset($collapseable)) {
|
13 |
+
$collapseable = true;
|
14 |
+
}
|
15 |
+
?>
|
16 |
+
<div class="wf-row">
|
17 |
+
<div class="wf-col-xs-12">
|
18 |
+
<div class="wf-block<?php if (!$collapseable) { echo ' wf-always-active'; } else { echo (wfPersistenceController::shared()->isActive($stateKey) ? ' wf-active' : ''); } ?>" data-persistence-key="<?php echo esc_attr($stateKey); ?>">
|
19 |
+
<div class="wf-block-header">
|
20 |
+
<div class="wf-block-header-content">
|
21 |
+
<div class="wf-block-title">
|
22 |
+
<strong><?php _e('Email Alert Preferences', 'wordfence'); ?></strong>
|
23 |
+
</div>
|
24 |
+
<?php if ($collapseable): ?><div class="wf-block-header-action"><div class="wf-block-header-action-disclosure"></div></div><?php endif; ?>
|
25 |
+
</div>
|
26 |
+
</div>
|
27 |
+
<div class="wf-block-content">
|
28 |
+
<ul class="wf-block-list">
|
29 |
+
<li>
|
30 |
+
<?php
|
31 |
+
echo wfView::create('options/option-toggled', array(
|
32 |
+
'optionName' => 'alertOn_update',
|
33 |
+
'enabledValue' => 1,
|
34 |
+
'disabledValue' => 0,
|
35 |
+
'value' => wfConfig::get('alertOn_update') ? 1 : 0,
|
36 |
+
'title' => __('Email me when Wordfence is automatically updated', 'wordfence'),
|
37 |
+
'subtitle' => __('If you have automatic updates enabled (see above), you\'ll get an email when an update occurs.', 'wordfence'),
|
38 |
+
))->render();
|
39 |
+
?>
|
40 |
+
</li>
|
41 |
+
<li>
|
42 |
+
<?php
|
43 |
+
echo wfView::create('options/option-toggled', array(
|
44 |
+
'optionName' => 'alertOn_wordfenceDeactivated',
|
45 |
+
'enabledValue' => 1,
|
46 |
+
'disabledValue' => 0,
|
47 |
+
'value' => wfConfig::get('alertOn_wordfenceDeactivated') ? 1 : 0,
|
48 |
+
'title' => __('Email me if Wordfence is deactivated', 'wordfence'),
|
49 |
+
))->render();
|
50 |
+
?>
|
51 |
+
</li>
|
52 |
+
<li>
|
53 |
+
<?php
|
54 |
+
echo wfView::create('options/option-toggled', array(
|
55 |
+
'optionName' => 'alertOn_critical',
|
56 |
+
'enabledValue' => 1,
|
57 |
+
'disabledValue' => 0,
|
58 |
+
'value' => wfConfig::get('alertOn_critical') ? 1 : 0,
|
59 |
+
'title' => __('Alert on critical problems', 'wordfence'),
|
60 |
+
))->render();
|
61 |
+
?>
|
62 |
+
</li>
|
63 |
+
<li>
|
64 |
+
<?php
|
65 |
+
echo wfView::create('options/option-toggled', array(
|
66 |
+
'optionName' => 'alertOn_warnings',
|
67 |
+
'enabledValue' => 1,
|
68 |
+
'disabledValue' => 0,
|
69 |
+
'value' => wfConfig::get('alertOn_warnings') ? 1 : 0,
|
70 |
+
'title' => __('Alert on warnings', 'wordfence'),
|
71 |
+
))->render();
|
72 |
+
?>
|
73 |
+
</li>
|
74 |
+
<li>
|
75 |
+
<?php
|
76 |
+
echo wfView::create('options/option-toggled', array(
|
77 |
+
'optionName' => 'alertOn_block',
|
78 |
+
'enabledValue' => 1,
|
79 |
+
'disabledValue' => 0,
|
80 |
+
'value' => wfConfig::get('alertOn_block') ? 1 : 0,
|
81 |
+
'title' => __('Alert when an IP address is blocked', 'wordfence'),
|
82 |
+
))->render();
|
83 |
+
?>
|
84 |
+
</li>
|
85 |
+
<li>
|
86 |
+
<?php
|
87 |
+
echo wfView::create('options/option-toggled', array(
|
88 |
+
'optionName' => 'alertOn_loginLockout',
|
89 |
+
'enabledValue' => 1,
|
90 |
+
'disabledValue' => 0,
|
91 |
+
'value' => wfConfig::get('alertOn_loginLockout') ? 1 : 0,
|
92 |
+
'title' => __('Alert when someone is locked out from login', 'wordfence'),
|
93 |
+
))->render();
|
94 |
+
?>
|
95 |
+
</li>
|
96 |
+
<li>
|
97 |
+
<?php
|
98 |
+
echo wfView::create('options/option-toggled', array(
|
99 |
+
'optionName' => 'alertOn_lostPasswdForm',
|
100 |
+
'enabledValue' => 1,
|
101 |
+
'disabledValue' => 0,
|
102 |
+
'value' => wfConfig::get('alertOn_lostPasswdForm') ? 1 : 0,
|
103 |
+
'title' => __('Alert when the "lost password" form is used for a valid user', 'wordfence'),
|
104 |
+
))->render();
|
105 |
+
?>
|
106 |
+
</li>
|
107 |
+
<li>
|
108 |
+
<?php
|
109 |
+
echo wfView::create('options/option-toggled-sub', array(
|
110 |
+
'optionName' => 'alertOn_adminLogin',
|
111 |
+
'enabledValue' => 1,
|
112 |
+
'disabledValue' => 0,
|
113 |
+
'value' => wfConfig::get('alertOn_adminLogin') ? 1 : 0,
|
114 |
+
'title' => __('Alert me when someone with administrator access signs in', 'wordfence'),
|
115 |
+
|
116 |
+
'subOptionName' => 'alertOn_firstAdminLoginOnly',
|
117 |
+
'subEnabledValue' => 1,
|
118 |
+
'subDisabledValue' => 0,
|
119 |
+
'subValue' => wfConfig::get('alertOn_firstAdminLoginOnly') ? 1 : 0,
|
120 |
+
'subTitle' => __('Only alert me when that administrator signs in from a new device or location', 'wordfence'),
|
121 |
+
))->render();
|
122 |
+
?>
|
123 |
+
</li>
|
124 |
+
<li>
|
125 |
+
<?php
|
126 |
+
echo wfView::create('options/option-toggled-sub', array(
|
127 |
+
'optionName' => 'alertOn_nonAdminLogin',
|
128 |
+
'enabledValue' => 1,
|
129 |
+
'disabledValue' => 0,
|
130 |
+
'value' => wfConfig::get('alertOn_nonAdminLogin') ? 1 : 0,
|
131 |
+
'title' => __('Alert me when a non-admin user signs in', 'wordfence'),
|
132 |
+
|
133 |
+
'subOptionName' => 'alertOn_firstNonAdminLoginOnly',
|
134 |
+
'subEnabledValue' => 1,
|
135 |
+
'subDisabledValue' => 0,
|
136 |
+
'subValue' => wfConfig::get('alertOn_firstNonAdminLoginOnly') ? 1 : 0,
|
137 |
+
'subTitle' => __('Only alert me when that user signs in from a new device or location', 'wordfence'),
|
138 |
+
))->render();
|
139 |
+
?>
|
140 |
+
</li>
|
141 |
+
<li>
|
142 |
+
<?php
|
143 |
+
echo wfView::create('options/option-toggled', array(
|
144 |
+
'optionName' => 'wafAlertOnAttacks',
|
145 |
+
'enabledValue' => 1,
|
146 |
+
'disabledValue' => 0,
|
147 |
+
'value' => wfConfig::get('wafAlertOnAttacks') ? 1 : 0,
|
148 |
+
'title' => __('Alert me when there\'s a large increase in attacks detected on my site', 'wordfence'),
|
149 |
+
))->render();
|
150 |
+
?>
|
151 |
+
</li>
|
152 |
+
<li>
|
153 |
+
<?php
|
154 |
+
echo wfView::create('options/option-text', array(
|
155 |
+
'textOptionName' => 'alert_maxHourly',
|
156 |
+
'textValue' => wfConfig::get('alert_maxHourly'),
|
157 |
+
'title' => __('Maximum email alerts to send per hour', 'wordfence'),
|
158 |
+
'subtitle' => __('0 means unlimited alerts will be sent.', 'wordfence'),
|
159 |
+
))->render();
|
160 |
+
?>
|
161 |
+
</li>
|
162 |
+
</ul>
|
163 |
+
</div>
|
164 |
+
</div>
|
165 |
+
</div>
|
166 |
+
</div> <!-- end alert options -->
|
views/dashboard/options-group-dashboard.php
ADDED
@@ -0,0 +1,116 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
if (!defined('WORDFENCE_VERSION')) { exit; }
|
3 |
+
/**
|
4 |
+
* Presents the Dashboard Notification Options group.
|
5 |
+
*
|
6 |
+
* Expects $stateKey.
|
7 |
+
*
|
8 |
+
* @var string $stateKey The key under which the collapse state is stored.
|
9 |
+
* @var bool $collapseable If defined, specifies whether or not this grouping can be collapsed. Defaults to true.
|
10 |
+
*/
|
11 |
+
|
12 |
+
if (!isset($collapseable)) {
|
13 |
+
$collapseable = true;
|
14 |
+
}
|
15 |
+
?>
|
16 |
+
<div class="wf-row">
|
17 |
+
<div class="wf-col-xs-12">
|
18 |
+
<div class="wf-block<?php if (!$collapseable) { echo ' wf-always-active'; } else { echo (wfPersistenceController::shared()->isActive($stateKey) ? ' wf-active' : ''); } ?>" data-persistence-key="<?php echo esc_attr($stateKey); ?>">
|
19 |
+
<div class="wf-block-header">
|
20 |
+
<div class="wf-block-header-content">
|
21 |
+
<div class="wf-block-title">
|
22 |
+
<strong><?php _e('Dashboard Notification Options', 'wordfence'); ?></strong>
|
23 |
+
</div>
|
24 |
+
<?php if ($collapseable): ?><div class="wf-block-header-action"><div class="wf-block-header-action-disclosure"></div></div><?php endif; ?>
|
25 |
+
</div>
|
26 |
+
</div>
|
27 |
+
<div class="wf-block-content">
|
28 |
+
<ul class="wf-block-list">
|
29 |
+
<li>
|
30 |
+
<?php
|
31 |
+
echo wfView::create('options/option-toggled', array(
|
32 |
+
'optionName' => 'notification_updatesNeeded',
|
33 |
+
'enabledValue' => 1,
|
34 |
+
'disabledValue' => 0,
|
35 |
+
'value' => wfConfig::get('notification_updatesNeeded') ? 1 : 0,
|
36 |
+
'title' => __('Updates Needed (Plugin, Theme, or Core)', 'wordfence'),
|
37 |
+
))->render();
|
38 |
+
?>
|
39 |
+
</li>
|
40 |
+
<?php if (wfConfig::p()): ?>
|
41 |
+
<li>
|
42 |
+
<?php
|
43 |
+
echo wfView::create('options/option-toggled', array(
|
44 |
+
'optionName' => 'notification_securityAlerts',
|
45 |
+
'enabledValue' => 1,
|
46 |
+
'disabledValue' => 0,
|
47 |
+
'value' => wfConfig::get('notification_securityAlerts') ? 1 : 0,
|
48 |
+
'title' => __('Security Alerts', 'wordfence'),
|
49 |
+
'premium' => true,
|
50 |
+
))->render();
|
51 |
+
?>
|
52 |
+
</li>
|
53 |
+
<li>
|
54 |
+
<?php
|
55 |
+
echo wfView::create('options/option-toggled', array(
|
56 |
+
'optionName' => 'notification_promotions',
|
57 |
+
'enabledValue' => 1,
|
58 |
+
'disabledValue' => 0,
|
59 |
+
'value' => wfConfig::get('notification_promotions') ? 1 : 0,
|
60 |
+
'title' => __('Promotions', 'wordfence'),
|
61 |
+
'premium' => true,
|
62 |
+
))->render();
|
63 |
+
?>
|
64 |
+
</li>
|
65 |
+
<li>
|
66 |
+
<?php
|
67 |
+
echo wfView::create('options/option-toggled', array(
|
68 |
+
'optionName' => 'notification_blogHighlights',
|
69 |
+
'enabledValue' => 1,
|
70 |
+
'disabledValue' => 0,
|
71 |
+
'value' => wfConfig::get('notification_blogHighlights') ? 1 : 0,
|
72 |
+
'title' => __('Blog Highlights', 'wordfence'),
|
73 |
+
'premium' => true,
|
74 |
+
))->render();
|
75 |
+
?>
|
76 |
+
</li>
|
77 |
+
<li>
|
78 |
+
<?php
|
79 |
+
echo wfView::create('options/option-toggled', array(
|
80 |
+
'optionName' => 'notification_productUpdates',
|
81 |
+
'enabledValue' => 1,
|
82 |
+
'disabledValue' => 0,
|
83 |
+
'value' => wfConfig::get('notification_productUpdates') ? 1 : 0,
|
84 |
+
'title' => __('Product Updates', 'wordfence'),
|
85 |
+
'premium' => true,
|
86 |
+
))->render();
|
87 |
+
?>
|
88 |
+
</li>
|
89 |
+
<?php endif; ?>
|
90 |
+
<li>
|
91 |
+
<?php
|
92 |
+
echo wfView::create('options/option-toggled', array(
|
93 |
+
'optionName' => 'notification_scanStatus',
|
94 |
+
'enabledValue' => 1,
|
95 |
+
'disabledValue' => 0,
|
96 |
+
'value' => wfConfig::get('notification_scanStatus') ? 1 : 0,
|
97 |
+
'title' => __('Scan Status', 'wordfence'),
|
98 |
+
))->render();
|
99 |
+
?>
|
100 |
+
</li>
|
101 |
+
<?php if (!wfConfig::p()): ?>
|
102 |
+
<li>
|
103 |
+
<ul class="wf-option">
|
104 |
+
<li class="wf-option-spacer"></li>
|
105 |
+
<li class="wf-flex-vertical wf-flex-align-left">
|
106 |
+
<p><?php _e('Dashboard notifications will also be displayed for Security Alerts, Promotions, Blog Highlights, and Product Updates. These notifications can be disabled by upgrading to a premium license.', 'wordfence'); ?></p>
|
107 |
+
<p class="wf-no-top"><a class="wf-btn wf-btn-primary wf-btn-callout-subtle" href="https://www.wordfence.com/gnl1dashboardUpgrade/wordfence-signup/#premium-order-form" target="_blank" rel="noopener noreferrer"><?php _e('Upgrade to Premium', 'wordfence'); ?></a> <a class="wf-btn wf-btn-callout-subtle wf-btn-default" href="https://www.wordfence.com/gnl1dashboardLearn/wordfence-signup/" target="_blank" rel="noopener noreferrer"><?php _e('Learn More', 'wordfence'); ?></a></p>
|
108 |
+
</li>
|
109 |
+
</ul>
|
110 |
+
</li>
|
111 |
+
<?php endif; ?>
|
112 |
+
</ul>
|
113 |
+
</div>
|
114 |
+
</div>
|
115 |
+
</div>
|
116 |
+
</div> <!-- end dashboard options -->
|
views/dashboard/options-group-email-summary.php
ADDED
@@ -0,0 +1,71 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
if (!defined('WORDFENCE_VERSION')) { exit; }
|
3 |
+
/**
|
4 |
+
* Presents the Activity Report group.
|
5 |
+
*
|
6 |
+
* Expects $stateKey.
|
7 |
+
*
|
8 |
+
* @var string $stateKey The key under which the collapse state is stored.
|
9 |
+
* @var bool $collapseable If defined, specifies whether or not this grouping can be collapsed. Defaults to true.
|
10 |
+
*/
|
11 |
+
|
12 |
+
if (!isset($collapseable)) {
|
13 |
+
$collapseable = true;
|
14 |
+
}
|
15 |
+
?>
|
16 |
+
<div class="wf-row">
|
17 |
+
<div class="wf-col-xs-12">
|
18 |
+
<div class="wf-block<?php if (!$collapseable) { echo ' wf-always-active'; } else { echo (wfPersistenceController::shared()->isActive($stateKey) ? ' wf-active' : ''); } ?>" data-persistence-key="<?php echo esc_attr($stateKey); ?>">
|
19 |
+
<div class="wf-block-header">
|
20 |
+
<div class="wf-block-header-content">
|
21 |
+
<div class="wf-block-title">
|
22 |
+
<strong><?php _e('Activity Report', 'wordfence'); ?></strong>
|
23 |
+
</div>
|
24 |
+
<?php if ($collapseable): ?><div class="wf-block-header-action"><div class="wf-block-header-action-disclosure"></div></div><?php endif; ?>
|
25 |
+
</div>
|
26 |
+
</div>
|
27 |
+
<div class="wf-block-content">
|
28 |
+
<ul class="wf-block-list">
|
29 |
+
<li>
|
30 |
+
<?php
|
31 |
+
echo wfView::create('options/option-toggled-select', array(
|
32 |
+
'toggleOptionName' => 'email_summary_enabled',
|
33 |
+
'enabledToggleValue' => 1,
|
34 |
+
'disabledToggleValue' => 0,
|
35 |
+
'toggleValue' => wfConfig::get('email_summary_enabled') ? 1 : 0,
|
36 |
+
'selectOptionName' => 'email_summary_interval',
|
37 |
+
'selectOptions' => array(
|
38 |
+
array('value' => 'daily', 'label' => __('Once a day', 'wordfence')),
|
39 |
+
array('value' => 'weekly', 'label' => __('Once a week', 'wordfence')),
|
40 |
+
array('value' => 'monthly', 'label' => __('Once a month', 'wordfence')),
|
41 |
+
),
|
42 |
+
'selectValue' => wfConfig::get('email_summary_interval'),
|
43 |
+
'title' => __('Enable email summary', 'wordfence'),
|
44 |
+
))->render();
|
45 |
+
?>
|
46 |
+
</li>
|
47 |
+
<li>
|
48 |
+
<?php
|
49 |
+
echo wfView::create('options/option-textarea', array(
|
50 |
+
'textOptionName' => 'email_summary_excluded_directories',
|
51 |
+
'textValue' => wfUtils::cleanupOneEntryPerLine(wfConfig::get('email_summary_excluded_directories')),
|
52 |
+
'title' => __('List of directories to exclude from recently modified file list', 'wordfence'),
|
53 |
+
))->render();
|
54 |
+
?>
|
55 |
+
</li>
|
56 |
+
<li>
|
57 |
+
<?php
|
58 |
+
echo wfView::create('options/option-toggled', array(
|
59 |
+
'optionName' => 'email_summary_dashboard_widget_enabled',
|
60 |
+
'enabledValue' => 1,
|
61 |
+
'disabledValue' => 0,
|
62 |
+
'value' => wfConfig::get('email_summary_dashboard_widget_enabled') ? 1 : 0,
|
63 |
+
'title' => __('Enable activity report widget on the WordPress dashboard', 'wordfence'),
|
64 |
+
))->render();
|
65 |
+
?>
|
66 |
+
</li>
|
67 |
+
</ul>
|
68 |
+
</div>
|
69 |
+
</div>
|
70 |
+
</div>
|
71 |
+
</div> <!-- end email summary options -->
|
views/dashboard/options-group-general.php
ADDED
@@ -0,0 +1,154 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
if (!defined('WORDFENCE_VERSION')) { exit; }
|
3 |
+
/**
|
4 |
+
* Presents the General Options group.
|
5 |
+
*
|
6 |
+
* Expects $stateKey.
|
7 |
+
*
|
8 |
+
* @var string $stateKey The key under which the collapse state is stored.
|
9 |
+
* @var bool $collapseable If defined, specifies whether or not this grouping can be collapsed. Defaults to true.
|
10 |
+
*/
|
11 |
+
|
12 |
+
if (!isset($collapseable)) {
|
13 |
+
$collapseable = true;
|
14 |
+
}
|
15 |
+
?>
|
16 |
+
<div class="wf-row">
|
17 |
+
<div class="wf-col-xs-12">
|
18 |
+
<div class="wf-block<?php if (!$collapseable) { echo ' wf-always-active'; } else { echo (wfPersistenceController::shared()->isActive($stateKey) ? ' wf-active' : ''); } ?>" data-persistence-key="<?php echo esc_attr($stateKey); ?>">
|
19 |
+
<div class="wf-block-header">
|
20 |
+
<div class="wf-block-header-content">
|
21 |
+
<div class="wf-block-title">
|
22 |
+
<strong><?php _e('General Wordfence Options', 'wordfence'); ?></strong>
|
23 |
+
</div>
|
24 |
+
<?php if ($collapseable): ?><div class="wf-block-header-action"><div class="wf-block-header-action-disclosure"></div></div><?php endif; ?>
|
25 |
+
</div>
|
26 |
+
</div>
|
27 |
+
<div class="wf-block-content">
|
28 |
+
<ul class="wf-block-list">
|
29 |
+
<li>
|
30 |
+
<?php
|
31 |
+
$subtitle = __('Automatically updates Wordfence to the newest version within 24 hours of a new release.', 'wordfence');
|
32 |
+
if (!wfConfig::get('other_bypassLitespeedNoabort', false) && getenv('noabort') != '1' && stristr($_SERVER['SERVER_SOFTWARE'], 'litespeed') !== false) {
|
33 |
+
$subtitle .= '<br><br>';
|
34 |
+
$subtitle .= __('<span class="wf-red-dark">Warning:</span> You are running the LiteSpeed web server and Wordfence can\'t determine whether "noabort" is set. Please verify that the environmental variable "noabort" is set for the local site, or the server\'s global External Application Abort is set to "No Abort".', 'wordfence');
|
35 |
+
$subtitle .= '<br>';
|
36 |
+
$subtitle .= '<a href="' . wfSupportController::esc_supportURL(wfSupportController::ITEM_DASHBOARD_OPTION_LITESPEED_WARNING) . '" target="_blank" rel="noopener noreferrer">' . __('Please read this article in our FAQ to make an important change that will ensure your site stability during an update.', 'wordfence') . '</a>';
|
37 |
+
}
|
38 |
+
|
39 |
+
echo wfView::create('options/option-toggled', array(
|
40 |
+
'optionName' => 'autoUpdate',
|
41 |
+
'enabledValue' => 1,
|
42 |
+
'disabledValue' => 0,
|
43 |
+
'value' => wfConfig::get('autoUpdate') ? 1 : 0,
|
44 |
+
'title' => __('Update Wordfence automatically when a new version is released?', 'wordfence'),
|
45 |
+
'subtitleHTML' => $subtitle,
|
46 |
+
'helpLink' => wfSupportController::supportURL(wfSupportController::ITEM_DASHBOARD_OPTION_AUTOMATIC_UPDATE),
|
47 |
+
))->render();
|
48 |
+
?>
|
49 |
+
</li>
|
50 |
+
<li>
|
51 |
+
<?php
|
52 |
+
echo wfView::create('options/option-text', array(
|
53 |
+
'textOptionName' => 'alertEmails',
|
54 |
+
'textValue' => wfConfig::get('alertEmails'),
|
55 |
+
'title' => __('Where to email alerts', 'wordfence'),
|
56 |
+
'placeholder' => __('Separate multiple addresses with commas', 'wordfence'),
|
57 |
+
'helpLink' => wfSupportController::supportURL(wfSupportController::ITEM_DASHBOARD_OPTION_ALERT_EMAILS),
|
58 |
+
))->render();
|
59 |
+
?>
|
60 |
+
</li>
|
61 |
+
<li>
|
62 |
+
<?php
|
63 |
+
echo wfView::create('dashboard/option-howgetips')->render();
|
64 |
+
?>
|
65 |
+
</li>
|
66 |
+
<li>
|
67 |
+
<?php
|
68 |
+
echo wfView::create('options/option-toggled', array(
|
69 |
+
'optionName' => 'other_hideWPVersion',
|
70 |
+
'enabledValue' => 1,
|
71 |
+
'disabledValue' => 0,
|
72 |
+
'value' => wfConfig::get('other_hideWPVersion') ? 1 : 0,
|
73 |
+
'title' => __('Hide WordPress version', 'wordfence'),
|
74 |
+
'helpLink' => wfSupportController::supportURL(wfSupportController::ITEM_DASHBOARD_OPTION_HIDE_VERSION),
|
75 |
+
))->render();
|
76 |
+
?>
|
77 |
+
</li>
|
78 |
+
<li>
|
79 |
+
<?php
|
80 |
+
echo wfView::create('options/option-toggled', array(
|
81 |
+
'optionName' => 'disableCodeExecutionUploads',
|
82 |
+
'enabledValue' => 1,
|
83 |
+
'disabledValue' => 0,
|
84 |
+
'value' => wfConfig::get('disableCodeExecutionUploads') ? 1 : 0,
|
85 |
+
'title' => __('Disable Code Execution for Uploads directory', 'wordfence'),
|
86 |
+
'helpLink' => wfSupportController::supportURL(wfSupportController::ITEM_DASHBOARD_OPTION_DISABLE_UPLOADS_EXECUTION),
|
87 |
+
))->render();
|
88 |
+
?>
|
89 |
+
</li>
|
90 |
+
<li>
|
91 |
+
<?php
|
92 |
+
echo wfView::create('options/option-toggled', array(
|
93 |
+
'optionName' => 'disableCookies',
|
94 |
+
'enabledValue' => 1,
|
95 |
+
'disabledValue' => 0,
|
96 |
+
'value' => wfConfig::get('disableCookies') ? 1 : 0,
|
97 |
+
'title' => __('Disable Wordfence Cookies', 'wordfence'),
|
98 |
+
'subtitle' => __('When enabled, all visits in live traffic will appear to be new visits.', 'wordfence'),
|
99 |
+
'helpLink' => wfSupportController::supportURL(wfSupportController::ITEM_DASHBOARD_OPTION_DISABLE_COOKIES),
|
100 |
+
))->render();
|
101 |
+
?>
|
102 |
+
</li>
|
103 |
+
<li>
|
104 |
+
<?php
|
105 |
+
echo wfView::create('options/option-toggled', array(
|
106 |
+
'optionName' => 'liveActivityPauseEnabled',
|
107 |
+
'enabledValue' => 1,
|
108 |
+
'disabledValue' => 0,
|
109 |
+
'value' => wfConfig::get('liveActivityPauseEnabled') ? 1 : 0,
|
110 |
+
'title' => __('Pause live updates when window loses focus', 'wordfence'),
|
111 |
+
'helpLink' => wfSupportController::supportURL(wfSupportController::ITEM_DASHBOARD_OPTION_PAUSE_LIVE_UPDATES),
|
112 |
+
))->render();
|
113 |
+
?>
|
114 |
+
</li>
|
115 |
+
<li>
|
116 |
+
<?php
|
117 |
+
echo wfView::create('options/option-text', array(
|
118 |
+
'textOptionName' => 'actUpdateInterval',
|
119 |
+
'textValue' => wfConfig::get('actUpdateInterval'),
|
120 |
+
'title' => __('Update interval in seconds', 'wordfence'),
|
121 |
+
'subtitle' => __('Setting higher will reduce browser traffic but slow scan starts, live traffic & status updates.', 'wordfence'),
|
122 |
+
'helpLink' => wfSupportController::supportURL(wfSupportController::ITEM_DASHBOARD_OPTION_UPDATE_INTERVAL),
|
123 |
+
))->render();
|
124 |
+
?>
|
125 |
+
</li>
|
126 |
+
<li>
|
127 |
+
<?php
|
128 |
+
echo wfView::create('options/option-toggled', array(
|
129 |
+
'optionName' => 'other_bypassLitespeedNoabort',
|
130 |
+
'enabledValue' => 1,
|
131 |
+
'disabledValue' => 0,
|
132 |
+
'value' => wfConfig::get('other_bypassLitespeedNoabort') ? 1 : 0,
|
133 |
+
'title' => __('Bypass the LiteSpeed "noabort" check', 'wordfence'),
|
134 |
+
'helpLink' => wfSupportController::supportURL(wfSupportController::ITEM_DASHBOARD_OPTION_BYPASS_LITESPEED_CHECK),
|
135 |
+
))->render();
|
136 |
+
?>
|
137 |
+
</li>
|
138 |
+
<li>
|
139 |
+
<?php
|
140 |
+
echo wfView::create('options/option-toggled', array(
|
141 |
+
'optionName' => 'deleteTablesOnDeact',
|
142 |
+
'enabledValue' => 1,
|
143 |
+
'disabledValue' => 0,
|
144 |
+
'value' => wfConfig::get('deleteTablesOnDeact') ? 1 : 0,
|
145 |
+
'title' => __('Delete Wordfence tables and data on deactivation', 'wordfence'),
|
146 |
+
'helpLink' => wfSupportController::supportURL(wfSupportController::ITEM_DASHBOARD_OPTION_DELETE_DEACTIVATION),
|
147 |
+
))->render();
|
148 |
+
?>
|
149 |
+
</li>
|
150 |
+
</ul>
|
151 |
+
</div>
|
152 |
+
</div>
|
153 |
+
</div>
|
154 |
+
</div> <!-- end general options -->
|
views/dashboard/options-group-import.php
ADDED
@@ -0,0 +1,178 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
if (!defined('WORDFENCE_VERSION')) { exit; }
|
3 |
+
/**
|
4 |
+
* Presents the Import/Export Options group.
|
5 |
+
*
|
6 |
+
* Expects $stateKey.
|
7 |
+
*
|
8 |
+
* @var string $stateKey The key under which the collapse state is stored.
|
9 |
+
* @var bool $collapseable If defined, specifies whether or not this grouping can be collapsed. Defaults to true.
|
10 |
+
*/
|
11 |
+
|
12 |
+
if (!isset($collapseable)) {
|
13 |
+
$collapseable = true;
|
14 |
+
}
|
15 |
+
?>
|
16 |
+
<div class="wf-row">
|
17 |
+
<div class="wf-col-xs-12">
|
18 |
+
<div class="wf-block<?php if (!$collapseable) { echo ' wf-always-active'; } else { echo (wfPersistenceController::shared()->isActive($stateKey) ? ' wf-active' : ''); } ?>" data-persistence-key="<?php echo esc_attr($stateKey); ?>">
|
19 |
+
<div class="wf-block-header">
|
20 |
+
<div class="wf-block-header-content">
|
21 |
+
<div class="wf-block-title">
|
22 |
+
<strong><?php _e('Import/Export Options', 'wordfence'); ?></strong>
|
23 |
+
</div>
|
24 |
+
<?php if ($collapseable): ?><div class="wf-block-header-action"><div class="wf-block-header-action-disclosure"></div></div><?php endif; ?>
|
25 |
+
</div>
|
26 |
+
</div>
|
27 |
+
<div class="wf-block-content">
|
28 |
+
<ul class="wf-block-list">
|
29 |
+
<li>
|
30 |
+
<ul id="wf-option-exportOptions" class="wf-flex-horizontal wf-flex-vertical-xs wf-flex-full-width wf-add-top wf-add-bottom">
|
31 |
+
<li><?php _e('Export this site\'s Wordfence options for import on another site', 'wordfence'); ?> <a href="<?php echo wfSupportController::esc_supportURL(wfSupportController::ITEM_DASHBOARD_OPTION_EXPORT); ?>" target="_blank" rel="noopener noreferrer" class="wf-inline-help"><i class="wf-fa wf-fa-question-circle-o" aria-hidden="true"></i></a></li>
|
32 |
+
<li class="wf-right wf-left-xs wf-padding-add-top-xs-small">
|
33 |
+
<a href="#" class="wf-btn wf-btn-primary wf-btn-callout-subtle" id="wf-export-options"><?php _e('Export<span class="wf-hidden-xs"> Wordfence</span> Options', 'wordfence'); ?></a>
|
34 |
+
</li>
|
35 |
+
</ul>
|
36 |
+
</li>
|
37 |
+
<li>
|
38 |
+
<ul id="wf-option-importOptions" class="wf-flex-vertical wf-flex-full-width wf-add-bottom">
|
39 |
+
<li>
|
40 |
+
<ul class="wf-option wf-option-text">
|
41 |
+
<li class="wf-option-content">
|
42 |
+
<ul>
|
43 |
+
<li class="wf-option-title">
|
44 |
+
<?php _e('Import Wordfence options from another site using a token', 'wordfence'); ?> <a href="<?php echo wfSupportController::esc_supportURL(wfSupportController::ITEM_DASHBOARD_OPTION_IMPORT); ?>" target="_blank" rel="noopener noreferrer" class="wf-inline-help"><i class="wf-fa wf-fa-question-circle-o" aria-hidden="true"></i></a>
|
45 |
+
</li>
|
46 |
+
<li class="wf-option-text wf-option-full-width wf-no-right">
|
47 |
+
<input type="text" value="" id="wf-import-token">
|
48 |
+
</li>
|
49 |
+
</ul>
|
50 |
+
</li>
|
51 |
+
</ul>
|
52 |
+
</li>
|
53 |
+
<li>
|
54 |
+
<ul class="wf-flex-horizontal wf-flex-full-width">
|
55 |
+
<li class="wf-right wf-left-xs" id="wf-license-controls">
|
56 |
+
<a href="#" class="wf-btn wf-btn-primary wf-btn-callout-subtle wf-disabled" id="wf-import-options"><?php _e('Import<span class="wf-hidden-xs"> Wordfence</span> Options', 'wordfence'); ?></a>
|
57 |
+
</li>
|
58 |
+
</ul>
|
59 |
+
</li>
|
60 |
+
</ul>
|
61 |
+
</li>
|
62 |
+
</ul>
|
63 |
+
<script type="application/javascript">
|
64 |
+
(function($) {
|
65 |
+
$(function() {
|
66 |
+
$('#wf-export-options').on('click', function(e) {
|
67 |
+
e.preventDefault();
|
68 |
+
e.stopPropagation();
|
69 |
+
|
70 |
+
WFAD.ajax('wordfence_exportSettings', {}, function(res) {
|
71 |
+
if (res.ok && res.token) {
|
72 |
+
var prompt = $('#wfTmpl_exportPromptSuccess').tmpl(res);
|
73 |
+
var promptHTML = $("<div />").append(prompt).html();
|
74 |
+
WFAD.colorboxHTML((WFAD.isSmallScreen ? '300px' : '400px'), promptHTML, {overlayClose: false, closeButton: false, className: 'wf-modal', onComplete: function() {
|
75 |
+
$('#wf-export-prompt-close').on('click', function(e) {
|
76 |
+
e.preventDefault();
|
77 |
+
e.stopPropagation();
|
78 |
+
|
79 |
+
WFAD.colorboxClose();
|
80 |
+
});
|
81 |
+
}});
|
82 |
+
}
|
83 |
+
else {
|
84 |
+
var prompt = $('#wfTmpl_exportPromptError').tmpl({err: res.err || 'An unknown error occurred during the export. We received an undefined error from your web server.'});
|
85 |
+
var promptHTML = $("<div />").append(prompt).html();
|
86 |
+
WFAD.colorboxHTML((WFAD.isSmallScreen ? '300px' : '400px'), promptHTML, {overlayClose: false, closeButton: false, className: 'wf-modal', onComplete: function() {
|
87 |
+
$('#wf-export-prompt-close').on('click', function(e) {
|
88 |
+
e.preventDefault();
|
89 |
+
e.stopPropagation();
|
90 |
+
|
91 |
+
WFAD.colorboxClose();
|
92 |
+
});
|
93 |
+
}});
|
94 |
+
}
|
95 |
+
});
|
96 |
+
});
|
97 |
+
|
98 |
+
$('#wf-import-token').on('keyup', function() {
|
99 |
+
$('#wf-import-options').toggleClass('wf-disabled', $(this).val() == '');
|
100 |
+
});
|
101 |
+
|
102 |
+
$('#wf-import-options').on('click', function(e) {
|
103 |
+
e.preventDefault();
|
104 |
+
e.stopPropagation();
|
105 |
+
|
106 |
+
WFAD.ajax('wordfence_importSettings', {token: $('#wf-import-token').val()}, function(res) {
|
107 |
+
if (res.ok) {
|
108 |
+
var prompt = $('#wfTmpl_importPromptSuccess').tmpl(res);
|
109 |
+
var promptHTML = $("<div />").append(prompt).html();
|
110 |
+
WFAD.colorboxHTML((WFAD.isSmallScreen ? '300px' : '400px'), promptHTML, {overlayClose: false, closeButton: false, className: 'wf-modal', onComplete: function() {
|
111 |
+
$('#wf-import-prompt-reload').on('click', function(e) {
|
112 |
+
e.preventDefault();
|
113 |
+
e.stopPropagation();
|
114 |
+
|
115 |
+
window.location.reload(true);
|
116 |
+
});
|
117 |
+
}});
|
118 |
+
}
|
119 |
+
else {
|
120 |
+
var prompt = $('#wfTmpl_importPromptError').tmpl({err: res.err || 'An unknown error occurred during the import.'});
|
121 |
+
var promptHTML = $("<div />").append(prompt).html();
|
122 |
+
WFAD.colorboxHTML((WFAD.isSmallScreen ? '300px' : '400px'), promptHTML, {overlayClose: false, closeButton: false, className: 'wf-modal', onComplete: function() {
|
123 |
+
$('#wf-import-prompt-close').on('click', function(e) {
|
124 |
+
e.preventDefault();
|
125 |
+
e.stopPropagation();
|
126 |
+
|
127 |
+
WFAD.colorboxClose();
|
128 |
+
});
|
129 |
+
}});
|
130 |
+
}
|
131 |
+
});
|
132 |
+
});
|
133 |
+
});
|
134 |
+
})(jQuery);
|
135 |
+
</script>
|
136 |
+
</div>
|
137 |
+
</div>
|
138 |
+
</div>
|
139 |
+
</div> <!-- end import options -->
|
140 |
+
<script type="text/x-jquery-template" id="wfTmpl_exportPromptSuccess">
|
141 |
+
<?php
|
142 |
+
echo wfView::create('common/modal-prompt', array(
|
143 |
+
'title' => __('Export Successful', 'wordfence'),
|
144 |
+
'messageHTML' => '<p>' . __('We successfully exported your site options. To import your site options on another site, copy and paste the token below into the import text box on the destination site. Keep this token secret — it is like a password. If anyone else discovers the token it will allow them to import your options excluding your license.', 'wordfence') . '</p><p><input type="text" class="wf-full-width" value="${token}" onclick="this.select();" /></p>',
|
145 |
+
'primaryButton' => array('id' => 'wf-export-prompt-close', 'label' => __('Close', 'wordfence'), 'link' => '#'),
|
146 |
+
))->render();
|
147 |
+
?>
|
148 |
+
</script>
|
149 |
+
|
150 |
+
<script type="text/x-jquery-template" id="wfTmpl_exportPromptError">
|
151 |
+
<?php
|
152 |
+
echo wfView::create('common/modal-prompt', array(
|
153 |
+
'title' => __('Error during Export', 'wordfence'),
|
154 |
+
'message' => '${err}',
|
155 |
+
'primaryButton' => array('id' => 'wf-export-prompt-close', 'label' => __('Close', 'wordfence'), 'link' => '#'),
|
156 |
+
))->render();
|
157 |
+
?>
|
158 |
+
</script>
|
159 |
+
|
160 |
+
<script type="text/x-jquery-template" id="wfTmpl_importPromptSuccess">
|
161 |
+
<?php
|
162 |
+
echo wfView::create('common/modal-prompt', array(
|
163 |
+
'title' => __('Import Successful', 'wordfence'),
|
164 |
+
'messageHTML' => __('We successfully imported the site options.', 'wordfence'),
|
165 |
+
'primaryButton' => array('id' => 'wf-import-prompt-reload', 'label' => __('Reload', 'wordfence'), 'link' => '#'),
|
166 |
+
))->render();
|
167 |
+
?>
|
168 |
+
</script>
|
169 |
+
|
170 |
+
<script type="text/x-jquery-template" id="wfTmpl_importPromptError">
|
171 |
+
<?php
|
172 |
+
echo wfView::create('common/modal-prompt', array(
|
173 |
+
'title' => __('Error during Import', 'wordfence'),
|
174 |
+
'message' => '${err}',
|
175 |
+
'primaryButton' => array('id' => 'wf-import-prompt-close', 'label' => __('Close', 'wordfence'), 'link' => '#'),
|
176 |
+
))->render();
|
177 |
+
?>
|
178 |
+
</script>
|
views/dashboard/options-group-license.php
ADDED
@@ -0,0 +1,154 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
if (!defined('WORDFENCE_VERSION')) { exit; }
|
3 |
+
/**
|
4 |
+
* Presents the License group.
|
5 |
+
*
|
6 |
+
* Expects $stateKey.
|
7 |
+
*
|
8 |
+
* @var string $stateKey The key under which the collapse state is stored.
|
9 |
+
* @var bool $collapseable If defined, specifies whether or not this grouping can be collapsed. Defaults to true.
|
10 |
+
*/
|
11 |
+
|
12 |
+
if (!isset($collapseable)) {
|
13 |
+
$collapseable = true;
|
14 |
+
}
|
15 |
+
?>
|
16 |
+
<div class="wf-row">
|
17 |
+
<div class="wf-col-xs-12">
|
18 |
+
<div class="wf-block<?php if (!$collapseable) { echo ' wf-always-active'; } else { echo (wfPersistenceController::shared()->isActive($stateKey) ? ' wf-active' : ''); } ?>" data-persistence-key="<?php echo esc_attr($stateKey); ?>">
|
19 |
+
<div class="wf-block-header">
|
20 |
+
<div class="wf-block-header-content">
|
21 |
+
<div class="wf-block-title">
|
22 |
+
<strong><?php _e('Wordfence License', 'wordfence'); ?></strong>
|
23 |
+
</div>
|
24 |
+
<?php if ($collapseable): ?><div class="wf-block-header-action"><div class="wf-block-header-action-disclosure"></div></div><?php endif; ?>
|
25 |
+
</div>
|
26 |
+
</div>
|
27 |
+
<div class="wf-block-content">
|
28 |
+
<ul class="wf-block-list">
|
29 |
+
<li>
|
30 |
+
<ul class="wf-flex-vertical wf-flex-full-width wf-add-top wf-add-bottom">
|
31 |
+
<li><strong><?php _e('Your Wordfence License', 'wordfence'); ?></strong></li>
|
32 |
+
<li>
|
33 |
+
<ul id="wf-option-apiKey" class="wf-option wf-option-text" data-text-option="apiKey" data-original-text-value="<?php echo esc_attr(wfConfig::get('apiKey')); ?>">
|
34 |
+
<li class="wf-option-title">
|
35 |
+
<?php _e('License Key', 'wordfence'); ?> <a href="<?php echo wfSupportController::esc_supportURL(wfSupportController::ITEM_DASHBOARD_OPTION_API_KEY); ?>" target="_blank" rel="noopener noreferrer" class="wf-inline-help"><i class="wf-fa wf-fa-question-circle-o" aria-hidden="true"></i></a>
|
36 |
+
</li>
|
37 |
+
<li class="wf-option-text wf-option-full-width wf-no-right">
|
38 |
+
<input type="text" value="<?php echo esc_attr(wfConfig::get('apiKey')); ?>" id="wf-license-input">
|
39 |
+
</li>
|
40 |
+
</ul>
|
41 |
+
</li>
|
42 |
+
<li>
|
43 |
+
<ul class="wf-flex-horizontal wf-flex-vertical-xs wf-flex-full-width">
|
44 |
+
<li><strong><?php _e('License Status:', 'wordfence'); ?></strong>
|
45 |
+
<?php
|
46 |
+
if (wfConfig::get('hasKeyConflict')) {
|
47 |
+
_e('Premium License already in use', 'wordfence');
|
48 |
+
}
|
49 |
+
else if (wfConfig::get('isPaid')) {
|
50 |
+
_e('Premium License Active', 'wordfence');
|
51 |
+
}
|
52 |
+
else if (wfConfig::get('keyType') == wfAPI::KEY_TYPE_PAID_EXPIRED) {
|
53 |
+
_e('Premium License Expired', 'wordfence');
|
54 |
+
}
|
55 |
+
else {
|
56 |
+
_e('Free License Active', 'wordfence');
|
57 |
+
}
|
58 |
+
?>
|
59 |
+
</li>
|
60 |
+
<li class="wf-right wf-flex-vertical-xs wf-flex-align-left wf-left-xs wf-padding-add-top-xs" id="wf-license-controls">
|
61 |
+
<?php if (wfConfig::get('hasKeyConflict')): ?>
|
62 |
+
<a href="#" class="wf-btn wf-btn-default wf-btn-callout-subtle wf-downgrade-license"><?php _e('Downgrade to a free license', 'wordfence'); ?></a> <a href="https://www.wordfence.com/gnl1optMngKysReset/manage-wordfence-api-keys/" target="_blank" rel="noopener noreferrer" class="wf-btn wf-btn-primary wf-btn-callout-subtle"><?php _e('Reset Premium License', 'wordfence'); ?></a>
|
63 |
+
<?php elseif (wfConfig::get('keyExpDays') < 30 && wfConfig::get('premiumAutoRenew', null) === '0'): ?>
|
64 |
+
<a href="#" class="wf-btn wf-btn-default wf-btn-callout-subtle wf-downgrade-license"><?php _e('Downgrade to a free license', 'wordfence'); ?></a> <a href="https://www.wordfence.com/gnl1optMngKysExpiring/manage-wordfence-api-keys/" target="_blank" rel="noopener noreferrer" class="wf-btn wf-btn-primary wf-btn-callout-subtle"><?php _e('Renew Premium License', 'wordfence'); ?></a>
|
65 |
+
<?php elseif (wfConfig::get('keyExpDays') < 30 && (wfConfig::get('premiumPaymentExpiring') || wfConfig::get('premiumPaymentExpired') || wfConfig::get('premiumPaymentMissing') || wfConfig::get('premiumPaymentHold'))): ?>
|
66 |
+
<a href="#" class="wf-btn wf-btn-default wf-btn-callout-subtle wf-downgrade-license"><?php _e('Downgrade to a free license', 'wordfence'); ?></a> <a href="https://www.wordfence.com/gnl1optMngKysExpiring/manage-wordfence-api-keys/" target="_blank" rel="noopener noreferrer" class="wf-btn wf-btn-primary wf-btn-callout-subtle"><?php _e('Renew Premium License', 'wordfence'); ?></a>
|
67 |
+
<?php elseif (wfConfig::get('isPaid')): ?>
|
68 |
+
<a href="#" class="wf-btn wf-btn-default wf-btn-callout-subtle wf-downgrade-license"><?php _e('Downgrade to a free license', 'wordfence'); ?></a> <a href="https://www.wordfence.com/gnl1optMngKysReset/manage-wordfence-api-keys/" target="_blank" rel="noopener noreferrer" class="wf-btn wf-btn-default wf-btn-callout-subtle"><?php _e('Renew Premium License', 'wordfence'); ?></a>
|
69 |
+
<?php else: ?>
|
70 |
+
<a href="https://www.wordfence.com/gnl1optUpgrade/wordfence-signup/" target="_blank" rel="noopener noreferrer" class="wf-btn wf-btn-primary wf-btn-callout-subtle"><?php _e('Upgrade to Premium', 'wordfence'); ?></a>
|
71 |
+
<?php endif ?>
|
72 |
+
<a href="#" class="wf-btn wf-btn-primary wf-btn-callout-subtle" style="display: none;" id="wf-install-license"><?php _e('Install License', 'wordfence'); ?></a>
|
73 |
+
</li>
|
74 |
+
</ul>
|
75 |
+
|
76 |
+
<script type="application/javascript">
|
77 |
+
(function($) {
|
78 |
+
$(function() {
|
79 |
+
$('#wf-install-license').on('click', function(e) {
|
80 |
+
e.preventDefault();
|
81 |
+
e.stopPropagation();
|
82 |
+
|
83 |
+
WFAD.setOption('apiKey', $('#wf-license-input').val(), function() {
|
84 |
+
delete WFAD.pendingChanges['apiKey'];
|
85 |
+
WFAD.updatePendingChanges();
|
86 |
+
window.location.reload(true);
|
87 |
+
});
|
88 |
+
});
|
89 |
+
|
90 |
+
$('#wf-license-input').on('focus', function() {
|
91 |
+
var field = $(this);
|
92 |
+
setTimeout(function() {
|
93 |
+
field.select();
|
94 |
+
}, 100);
|
95 |
+
}).on('change paste keyup', function() {
|
96 |
+
setTimeout(function() {
|
97 |
+
var originalKey = $('#wf-license-input').closest('.wf-option').data('originalTextValue');
|
98 |
+
if (originalKey != $('#wf-license-input').val()) {
|
99 |
+
$('#wf-license-controls a').hide();
|
100 |
+
$('#wf-install-license').show();
|
101 |
+
}
|
102 |
+
}, 100);
|
103 |
+
});
|
104 |
+
|
105 |
+
$(window).on('wfOptionsReset', function() {
|
106 |
+
$('#wf-license-controls a').show();
|
107 |
+
$('#wf-install-license').hide();
|
108 |
+
});
|
109 |
+
|
110 |
+
$('.wf-downgrade-license').on('click', function(e) {
|
111 |
+
e.preventDefault();
|
112 |
+
e.stopPropagation();
|
113 |
+
|
114 |
+
var prompt = $('#wfTmpl_downgradePrompt').tmpl();
|
115 |
+
var promptHTML = $("<div />").append(prompt).html();
|
116 |
+
WFAD.colorboxHTML('400px', promptHTML, {overlayClose: false, closeButton: false, className: 'wf-modal', onComplete: function() {
|
117 |
+
$('#wf-downgrade-prompt-cancel').on('click', function(e) {
|
118 |
+
e.preventDefault();
|
119 |
+
e.stopPropagation();
|
120 |
+
|
121 |
+
WFAD.colorboxClose();
|
122 |
+
});
|
123 |
+
|
124 |
+
$('#wf-downgrade-prompt-downgrade').on('click', function(e) {
|
125 |
+
e.preventDefault();
|
126 |
+
e.stopPropagation();
|
127 |
+
|
128 |
+
WFAD.ajax('wordfence_downgradeLicense', {}, function(res) {
|
129 |
+
window.location.reload(true);
|
130 |
+
});
|
131 |
+
});
|
132 |
+
}});
|
133 |
+
});
|
134 |
+
});
|
135 |
+
})(jQuery);
|
136 |
+
</script>
|
137 |
+
</li>
|
138 |
+
</ul>
|
139 |
+
</li>
|
140 |
+
</ul>
|
141 |
+
</div>
|
142 |
+
</div>
|
143 |
+
</div>
|
144 |
+
</div> <!-- end license options -->
|
145 |
+
<script type="text/x-jquery-template" id="wfTmpl_downgradePrompt">
|
146 |
+
<?php
|
147 |
+
echo wfView::create('common/modal-prompt', array(
|
148 |
+
'title' => __('Confirm Downgrade', 'wordfence'),
|
149 |
+
'message' => __('Are you sure you want to downgrade your Wordfence Premium License? This will disable all Premium features and return you to the free version of Wordfence.', 'wordfence'),
|
150 |
+
'primaryButton' => array('id' => 'wf-downgrade-prompt-cancel', 'label' => __('Cancel', 'wordfence'), 'link' => '#'),
|
151 |
+
'secondaryButtons' => array(array('id' => 'wf-downgrade-prompt-downgrade', 'label' => __('Downgrade', 'wordfence'), 'link' => '#')),
|
152 |
+
))->render();
|
153 |
+
?>
|
154 |
+
</script>
|
views/dashboard/options-group-view-customization.php
ADDED
@@ -0,0 +1,66 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
if (!defined('WORDFENCE_VERSION')) { exit; }
|
3 |
+
/**
|
4 |
+
* Presents the View Customization group.
|
5 |
+
*
|
6 |
+
* Expects $stateKey.
|
7 |
+
*
|
8 |
+
* @var string $stateKey The key under which the collapse state is stored.
|
9 |
+
* @var bool $collapseable If defined, specifies whether or not this grouping can be collapsed. Defaults to true.
|
10 |
+
*/
|
11 |
+
|
12 |
+
if (!isset($collapseable)) {
|
13 |
+
$collapseable = true;
|
14 |
+
}
|
15 |
+
?>
|
16 |
+
<div class="wf-row">
|
17 |
+
<div class="wf-col-xs-12">
|
18 |
+
<div class="wf-block<?php if (!$collapseable) { echo ' wf-always-active'; } else { echo (wfPersistenceController::shared()->isActive($stateKey) ? ' wf-active' : ''); } ?>" data-persistence-key="<?php echo esc_attr($stateKey); ?>">
|
19 |
+
<div class="wf-block-header">
|
20 |
+
<div class="wf-block-header-content">
|
21 |
+
<div class="wf-block-title">
|
22 |
+
<strong><?php _e('View Customization', 'wordfence'); ?></strong>
|
23 |
+
</div>
|
24 |
+
<?php if ($collapseable): ?><div class="wf-block-header-action"><div class="wf-block-header-action-disclosure"></div></div><?php endif; ?>
|
25 |
+
</div>
|
26 |
+
</div>
|
27 |
+
<div class="wf-block-content">
|
28 |
+
<ul class="wf-block-list">
|
29 |
+
<li>
|
30 |
+
<?php
|
31 |
+
echo wfView::create('options/option-toggled', array(
|
32 |
+
'optionName' => 'displayTopLevelOptions',
|
33 |
+
'enabledValue' => 1,
|
34 |
+
'disabledValue' => 0,
|
35 |
+
'value' => wfConfig::get('displayTopLevelOptions') ? 1 : 0,
|
36 |
+
'title' => __('Display "All Options" menu item', 'wordfence'),
|
37 |
+
))->render();
|
38 |
+
?>
|
39 |
+
</li>
|
40 |
+
<li>
|
41 |
+
<?php
|
42 |
+
echo wfView::create('options/option-toggled', array(
|
43 |
+
'optionName' => 'displayTopLevelBlocking',
|
44 |
+
'enabledValue' => 1,
|
45 |
+
'disabledValue' => 0,
|
46 |
+
'value' => wfConfig::get('displayTopLevelBlocking') ? 1 : 0,
|
47 |
+
'title' => __('Display "Blocking" menu item', 'wordfence'),
|
48 |
+
))->render();
|
49 |
+
?>
|
50 |
+
</li>
|
51 |
+
<li>
|
52 |
+
<?php
|
53 |
+
echo wfView::create('options/option-toggled', array(
|
54 |
+
'optionName' => 'displayTopLevelLiveTraffic',
|
55 |
+
'enabledValue' => 1,
|
56 |
+
'disabledValue' => 0,
|
57 |
+
'value' => wfConfig::get('displayTopLevelLiveTraffic') ? 1 : 0,
|
58 |
+
'title' => __('Display "Live Traffic" menu item', 'wordfence'),
|
59 |
+
))->render();
|
60 |
+
?>
|
61 |
+
</li>
|
62 |
+
</ul>
|
63 |
+
</div>
|
64 |
+
</div>
|
65 |
+
</div>
|
66 |
+
</div> <!-- end custom scan options -->
|
views/options/block-all-options-controls.php
ADDED
@@ -0,0 +1,150 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
if (!defined('WORDFENCE_VERSION')) { exit; }
|
3 |
+
/**
|
4 |
+
* Presents the top controls on the All Options page.
|
5 |
+
*
|
6 |
+
* Expects $indexOptions. $suppressControls may be defined to hide the options-saving controls. If not truthy, $restoreDefaultsSection and $restoreDefaultsMessage must also be defined.
|
7 |
+
*
|
8 |
+
* @var array $indexOptions An array of the index options to allow searching. The key should be the element ID to scroll to and the value is the name of the option.
|
9 |
+
* @var string $restoreDefaultsMessage The message shown in the restore defaults prompt
|
10 |
+
*/
|
11 |
+
|
12 |
+
if (isset($backLabel) && !isset($backLabelHTML)) {
|
13 |
+
$backLabelHTML = esc_html($backLabel);
|
14 |
+
}
|
15 |
+
?>
|
16 |
+
<div class="wf-block wf-block-transparent wf-active">
|
17 |
+
<div class="wf-block-content">
|
18 |
+
<ul class="wf-block-left-right wf-block-left-right-nowrap wf-hidden-xs">
|
19 |
+
<li class="wf-left">
|
20 |
+
<ul class="wf-flex-horizontal">
|
21 |
+
<?php if (isset($showIcon) && $showIcon): ?>
|
22 |
+
<li><div class="wordfence-lock-icon wordfence-icon32 wf-no-top wf-no-right wf-hidden-xs"></div></li>
|
23 |
+
<?php endif; ?>
|
24 |
+
<li id="wf-all-options-search"<?php if (isset($showIcon) && $showIcon): ?> class="wf-padding-add-left"<?php endif; ?>>
|
25 |
+
<select class="wf-options-searcher" multiple>
|
26 |
+
<?php
|
27 |
+
foreach ($indexOptions as $element => $label):
|
28 |
+
?>
|
29 |
+
<option value="<?php echo esc_attr($element); ?>"><?php echo esc_html($label); ?></option>
|
30 |
+
<?php
|
31 |
+
endforeach;
|
32 |
+
?>
|
33 |
+
</select>
|
34 |
+
</li>
|
35 |
+
</ul>
|
36 |
+
</li>
|
37 |
+
<?php if (!isset($suppressControls) || !$suppressControls): ?>
|
38 |
+
<li class="wf-right">
|
39 |
+
<a id="wf-restore-defaults" class="wf-btn wf-btn-default wf-btn-callout-subtle" href="#" data-restore-defaults-section="<?php echo esc_attr($restoreDefaultsSection); ?>"><?php _e('<span class="wf-hidden-xs">Restore </span>Defaults', 'wordfence'); ?></a> <a id="wf-cancel-changes" class="wf-btn wf-btn-default wf-btn-callout-subtle wf-disabled" href="#"><?php _e('Cancel<span class="wf-hidden-xs wf-hidden-sm"> Changes</span>', 'wordfence'); ?></a> <a id="wf-save-changes" class="wf-btn wf-btn-primary wf-btn-callout-subtle wf-disabled" href="#"><?php _e('Save<span class="wf-hidden-xs wf-hidden-sm"> Changes</span>', 'wordfence'); ?></a>
|
40 |
+
</li>
|
41 |
+
<?php endif; ?>
|
42 |
+
</ul>
|
43 |
+
<ul class="wf-block-left-center-right wf-hidden-sm wf-hidden-md wf-hidden-lg">
|
44 |
+
<li class="wf-left">
|
45 |
+
<?php if (!isset($suppressLogo) || !$suppressLogo): ?>
|
46 |
+
<div class="wordfence-lock-icon wordfence-icon32"></div>
|
47 |
+
<?php endif; ?>
|
48 |
+
</li>
|
49 |
+
<li class="wf-center">
|
50 |
+
<select class="wf-options-searcher" multiple>
|
51 |
+
<?php
|
52 |
+
foreach ($indexOptions as $element => $label):
|
53 |
+
?>
|
54 |
+
<option value="<?php echo esc_attr($element); ?>"><?php echo esc_html($label); ?></option>
|
55 |
+
<?php
|
56 |
+
endforeach;
|
57 |
+
?>
|
58 |
+
</select>
|
59 |
+
</li>
|
60 |
+
<?php if (!isset($suppressControls) || !$suppressControls): ?>
|
61 |
+
<li class="wf-right">
|
62 |
+
<a id="wf-mobile-controls" href="#" data-restore-defaults-section="<?php echo esc_attr($restoreDefaultsSection); ?>">•••</a>
|
63 |
+
</li>
|
64 |
+
<?php endif; ?>
|
65 |
+
</ul>
|
66 |
+
</div>
|
67 |
+
</div>
|
68 |
+
<?php if (!isset($suppressControls) || !$suppressControls): ?>
|
69 |
+
<script type="application/javascript">
|
70 |
+
(function($) {
|
71 |
+
$('.wf-options-searcher').css('display', 'none');
|
72 |
+
|
73 |
+
$(function() {
|
74 |
+
var initialTop = parseInt($('.wf-options-controls').css('top'));
|
75 |
+
$(window).bind("scroll", function() {
|
76 |
+
if (window.matchMedia("only screen and (max-width: 615px)").matches) {
|
77 |
+
$(this).scrollTop() > initialTop ? $('.wf-options-controls').css('top', '0px').css('position', 'fixed').css('left', '0px') : $('.wf-options-controls').css('top', initialTop + 'px').css('position', 'absolute').css('left', '-10px');
|
78 |
+
}
|
79 |
+
});
|
80 |
+
|
81 |
+
$('.wf-options-searcher').select2({
|
82 |
+
tags: true,
|
83 |
+
tokenSeparators: [','],
|
84 |
+
placeholder: "Search All Options",
|
85 |
+
width: 'element',
|
86 |
+
minimumResultsForSearch: -1,
|
87 |
+
minimumInputLength: 2,
|
88 |
+
selectOnClose: false,
|
89 |
+
width: (WFAD.isSmallScreen ? '300px' : '500px'),
|
90 |
+
createTag: function (params) {
|
91 |
+
return null; //No custom tags
|
92 |
+
}
|
93 |
+
}).on('change', function () {
|
94 |
+
var selection = $(this).val();
|
95 |
+
if (Array.isArray(selection)) {
|
96 |
+
if (selection.length > 0) {
|
97 |
+
selection = selection[0];
|
98 |
+
}
|
99 |
+
else {
|
100 |
+
selection = false;
|
101 |
+
}
|
102 |
+
}
|
103 |
+
else if (typeof selection !== 'string') {
|
104 |
+
selection = false;
|
105 |
+
}
|
106 |
+
|
107 |
+
if (selection !== false) {
|
108 |
+
var el = $('#' + selection);
|
109 |
+
if (el.is(':visible')) {
|
110 |
+
$('html, body').animate({
|
111 |
+
scrollTop: el.offset().top - 100
|
112 |
+
}, 750);
|
113 |
+
}
|
114 |
+
else {
|
115 |
+
var block = el.closest('.wf-block[data-persistence-key]');
|
116 |
+
if (!block.hasClass('wf-active')) {
|
117 |
+
block.find('.wf-block-content').slideDown({
|
118 |
+
always: function() {
|
119 |
+
block.addClass('wf-active');
|
120 |
+
$('html, body').animate({
|
121 |
+
scrollTop: el.offset().top - 100
|
122 |
+
}, 750);
|
123 |
+
}
|
124 |
+
});
|
125 |
+
|
126 |
+
WFAD.ajax('wordfence_saveDisclosureState', {name: block.data('persistenceKey'), state: true}, function() {}, function() {}, true);
|
127 |
+
}
|
128 |
+
}
|
129 |
+
|
130 |
+
$('.wf-options-searcher').val('').change();
|
131 |
+
}
|
132 |
+
});
|
133 |
+
|
134 |
+
if ($('.wf-options-searcher').length > 0) {
|
135 |
+
$('.wf-options-searcher').data('select2').$container.addClass('wf-select2-placeholder-fix wf-select2-hide-tags');
|
136 |
+
}
|
137 |
+
});
|
138 |
+
})(jQuery);
|
139 |
+
</script>
|
140 |
+
<script type="text/x-jquery-template" id="wfTmpl_restoreDefaultsPrompt">
|
141 |
+
<?php
|
142 |
+
echo wfView::create('common/modal-prompt', array(
|
143 |
+
'title' => __('Confirm Restore Defaults', 'wordfence'),
|
144 |
+
'message' => $restoreDefaultsMessage,
|
145 |
+
'primaryButton' => array('id' => 'wf-restore-defaults-prompt-cancel', 'label' => __('Cancel', 'wordfence'), 'link' => '#'),
|
146 |
+
'secondaryButtons' => array(array('id' => 'wf-restore-defaults-prompt-confirm', 'labelHTML' => __('Restore<span class="wf-hidden-xs"> Defaults</span>', 'wordfence'), 'link' => '#')),
|
147 |
+
))->render();
|
148 |
+
?>
|
149 |
+
</script>
|
150 |
+
<?php endif; ?>
|
views/options/option-select.php
CHANGED
@@ -12,8 +12,10 @@ if (!defined('WORDFENCE_VERSION')) { exit; }
|
|
12 |
* @var string $helpLink If defined, the link to the corresponding external help page.
|
13 |
* @var bool $premium If defined, the option will be tagged as premium only and not allow its value to change for free users.
|
14 |
*/
|
|
|
|
|
15 |
?>
|
16 |
-
<ul class="wf-option wf-option-select<?php if (!wfConfig::p() && isset($premium) && $premium) { echo ' wf-option-premium'; } ?>" data-select-option="<?php echo esc_attr($selectOptionName); ?>" data-original-select-value="<?php echo esc_attr($selectValue); ?>">
|
17 |
<li class="wf-option-spacer"></li>
|
18 |
<li class="wf-option-content">
|
19 |
<ul>
|
12 |
* @var string $helpLink If defined, the link to the corresponding external help page.
|
13 |
* @var bool $premium If defined, the option will be tagged as premium only and not allow its value to change for free users.
|
14 |
*/
|
15 |
+
|
16 |
+
$id = 'wf-option-' . preg_replace('/[^a-z0-9]/i', '-', $selectOptionName);
|
17 |
?>
|
18 |
+
<ul id="<?php echo esc_attr($id); ?>" class="wf-option wf-option-select<?php if (!wfConfig::p() && isset($premium) && $premium) { echo ' wf-option-premium'; } ?>" data-select-option="<?php echo esc_attr($selectOptionName); ?>" data-original-select-value="<?php echo esc_attr($selectValue); ?>">
|
19 |
<li class="wf-option-spacer"></li>
|
20 |
<li class="wf-option-content">
|
21 |
<ul>
|
views/options/option-text.php
CHANGED
@@ -16,8 +16,9 @@ if (!defined('WORDFENCE_VERSION')) { exit; }
|
|
16 |
if (!isset($placeholder)) {
|
17 |
$placeholder = '';
|
18 |
}
|
|
|
19 |
?>
|
20 |
-
<ul class="wf-option wf-option-text<?php if (!wfConfig::p() && isset($premium) && $premium) { echo ' wf-option-premium'; } ?>" data-text-option="<?php echo esc_attr($textOptionName); ?>" data-original-text-value="<?php echo esc_attr($textValue); ?>">
|
21 |
<li class="wf-option-spacer"></li>
|
22 |
<li class="wf-option-content">
|
23 |
<ul>
|
16 |
if (!isset($placeholder)) {
|
17 |
$placeholder = '';
|
18 |
}
|
19 |
+
$id = 'wf-option-' . preg_replace('/[^a-z0-9]/i', '-', $textOptionName);
|
20 |
?>
|
21 |
+
<ul id="<?php echo esc_attr($id); ?>" class="wf-option wf-option-text<?php if (!wfConfig::p() && isset($premium) && $premium) { echo ' wf-option-premium'; } ?>" data-text-option="<?php echo esc_attr($textOptionName); ?>" data-original-text-value="<?php echo esc_attr($textValue); ?>">
|
22 |
<li class="wf-option-spacer"></li>
|
23 |
<li class="wf-option-content">
|
24 |
<ul>
|
views/options/option-textarea.php
CHANGED
@@ -16,8 +16,10 @@ if (!defined('WORDFENCE_VERSION')) { exit; }
|
|
16 |
if (!isset($subtitleHTML) && isset($subtitle)) {
|
17 |
$subtitleHTML = esc_html($subtitle);
|
18 |
}
|
|
|
|
|
19 |
?>
|
20 |
-
<ul class="wf-option wf-option-textarea<?php if (!wfConfig::p() && isset($premium) && $premium) { echo ' wf-option-premium'; } ?>" data-text-option="<?php echo esc_attr($textOptionName); ?>" data-original-text-value="<?php echo esc_attr($textValue); ?>">
|
21 |
<?php if (!isset($noSpacer) || !$noSpacer): ?>
|
22 |
<li class="wf-option-spacer"></li>
|
23 |
<?php endif; ?>
|
16 |
if (!isset($subtitleHTML) && isset($subtitle)) {
|
17 |
$subtitleHTML = esc_html($subtitle);
|
18 |
}
|
19 |
+
|
20 |
+
$id = 'wf-option-' . preg_replace('/[^a-z0-9]/i', '-', $textOptionName);
|
21 |
?>
|
22 |
+
<ul id="<?php echo esc_attr($id); ?>" class="wf-option wf-option-textarea<?php if (!wfConfig::p() && isset($premium) && $premium) { echo ' wf-option-premium'; } ?>" data-text-option="<?php echo esc_attr($textOptionName); ?>" data-original-text-value="<?php echo esc_attr($textValue); ?>">
|
23 |
<?php if (!isset($noSpacer) || !$noSpacer): ?>
|
24 |
<li class="wf-option-spacer"></li>
|
25 |
<?php endif; ?>
|
views/options/option-toggled-boolean-switch.php
CHANGED
@@ -19,8 +19,10 @@ if (!defined('WORDFENCE_VERSION')) { exit; }
|
|
19 |
if (isset($subtitle) && !isset($subtitleHTML)) {
|
20 |
$subtitleHTML = esc_html($subtitle);
|
21 |
}
|
|
|
|
|
22 |
?>
|
23 |
-
<ul class="wf-option wf-option-toggled-boolean-switch<?php if (!wfConfig::p() && isset($premium) && $premium) { echo ' wf-option-premium'; } ?><?php if (isset($disabled) && $disabled) { echo ' wf-disabled'; } ?>" data-option="<?php echo esc_attr($optionName); ?>" data-enabled-value="<?php echo esc_attr($enabledValue); ?>" data-disabled-value="<?php echo esc_attr($disabledValue); ?>" data-original-value="<?php echo esc_attr($value == $enabledValue ? $enabledValue : $disabledValue); ?>">
|
24 |
<li class="wf-boolean-switch<?php echo ($value == $enabledValue ? ' wf-active' : ''); ?>"><a href="#" class="wf-boolean-switch-handle"></a></li>
|
25 |
<li class="wf-option-title">
|
26 |
<?php if (isset($subtitleHTML)): ?>
|
19 |
if (isset($subtitle) && !isset($subtitleHTML)) {
|
20 |
$subtitleHTML = esc_html($subtitle);
|
21 |
}
|
22 |
+
|
23 |
+
$id = 'wf-option-' . preg_replace('/[^a-z0-9]/i', '-', $optionName);
|
24 |
?>
|
25 |
+
<ul id="<?php echo esc_attr($id); ?>" class="wf-option wf-option-toggled-boolean-switch<?php if (!wfConfig::p() && isset($premium) && $premium) { echo ' wf-option-premium'; } ?><?php if (isset($disabled) && $disabled) { echo ' wf-disabled'; } ?>" data-option="<?php echo esc_attr($optionName); ?>" data-enabled-value="<?php echo esc_attr($enabledValue); ?>" data-disabled-value="<?php echo esc_attr($disabledValue); ?>" data-original-value="<?php echo esc_attr($value == $enabledValue ? $enabledValue : $disabledValue); ?>">
|
26 |
<li class="wf-boolean-switch<?php echo ($value == $enabledValue ? ' wf-active' : ''); ?>"><a href="#" class="wf-boolean-switch-handle"></a></li>
|
27 |
<li class="wf-option-title">
|
28 |
<?php if (isset($subtitleHTML)): ?>
|
views/options/option-toggled-multiple.php
CHANGED
@@ -25,8 +25,9 @@ if (!defined('WORDFENCE_VERSION')) { exit; }
|
|
25 |
<li class="wf-option-checkboxes">
|
26 |
<?php
|
27 |
foreach ($options as $o):
|
|
|
28 |
?>
|
29 |
-
<ul data-option="<?php echo esc_attr($o['name']); ?>" data-enabled-value="<?php echo esc_attr($o['enabledValue']); ?>" data-disabled-value="<?php echo esc_attr($o['disabledValue']); ?>" data-original-value="<?php echo esc_attr($o['value'] == $o['enabledValue'] ? $o['enabledValue'] : $o['disabledValue']); ?>">
|
30 |
<li class="wf-option-checkbox<?php echo ($o['value'] == $o['enabledValue'] ? ' wf-checked' : ''); ?>"><i class="wf-ion-ios-checkmark-empty" aria-hidden="true"></i></li>
|
31 |
<li class="wf-option-title"><?php echo esc_html($o['title']); ?></li>
|
32 |
</ul>
|
25 |
<li class="wf-option-checkboxes">
|
26 |
<?php
|
27 |
foreach ($options as $o):
|
28 |
+
$id = 'wf-option-' . preg_replace('/[^a-z0-9]/i', '-', $o['name']);
|
29 |
?>
|
30 |
+
<ul id="<?php echo esc_attr($id); ?>" data-option="<?php echo esc_attr($o['name']); ?>" data-enabled-value="<?php echo esc_attr($o['enabledValue']); ?>" data-disabled-value="<?php echo esc_attr($o['disabledValue']); ?>" data-original-value="<?php echo esc_attr($o['value'] == $o['enabledValue'] ? $o['enabledValue'] : $o['disabledValue']); ?>">
|
31 |
<li class="wf-option-checkbox<?php echo ($o['value'] == $o['enabledValue'] ? ' wf-checked' : ''); ?>"><i class="wf-ion-ios-checkmark-empty" aria-hidden="true"></i></li>
|
32 |
<li class="wf-option-title"><?php echo esc_html($o['title']); ?></li>
|
33 |
</ul>
|
views/options/option-toggled-segmented.php
CHANGED
@@ -14,8 +14,10 @@ if (!defined('WORDFENCE_VERSION')) { exit; }
|
|
14 |
* @var string $helpLink If defined, the link to the corresponding external help page.
|
15 |
* @var bool $premium If defined, the option will be tagged as premium only and not allow its value to change for free users.
|
16 |
*/
|
|
|
|
|
17 |
?>
|
18 |
-
<ul class="wf-option wf-option-toggled-segmented<?php if (!wfConfig::p() && isset($premium) && $premium) { echo ' wf-option-premium'; } ?>" data-option="<?php echo esc_attr($optionName); ?>" data-enabled-value="<?php echo esc_attr($enabledValue); ?>" data-disabled-value="<?php echo esc_attr($disabledValue); ?>" data-original-value="<?php echo esc_attr($value == $enabledValue ? $enabledValue : $disabledValue); ?>">
|
19 |
<li class="wf-option-title"><?php echo (!empty($title)) ? esc_html($title) : ''; echo (!empty($htmlTitle)) ? wp_kses($htmlTitle, 'post') : ''; ?><?php if (!wfConfig::p() && isset($premium) && $premium) { echo ' <a href="https://www.wordfence.com/gnl1optionUpgrade/wordfence-signup/" target="_blank" rel="noopener noreferrer" class="wf-premium-link">' . __('Premium Feature', 'wordfence') . '</a>'; } ?><?php if (isset($helpLink)) { echo ' <a href="' . esc_attr($helpLink) . '" target="_blank" rel="noopener noreferrer" class="wf-inline-help"><i class="wf-fa wf-fa-question-circle-o" aria-hidden="true"></i></a>'; } ?></li>
|
20 |
<li class="wf-option-segments">
|
21 |
<?php
|
14 |
* @var string $helpLink If defined, the link to the corresponding external help page.
|
15 |
* @var bool $premium If defined, the option will be tagged as premium only and not allow its value to change for free users.
|
16 |
*/
|
17 |
+
|
18 |
+
$id = 'wf-option-' . preg_replace('/[^a-z0-9]/i', '-', $optionName);
|
19 |
?>
|
20 |
+
<ul id="<?php echo esc_attr($id); ?>" class="wf-option wf-option-toggled-segmented<?php if (!wfConfig::p() && isset($premium) && $premium) { echo ' wf-option-premium'; } ?>" data-option="<?php echo esc_attr($optionName); ?>" data-enabled-value="<?php echo esc_attr($enabledValue); ?>" data-disabled-value="<?php echo esc_attr($disabledValue); ?>" data-original-value="<?php echo esc_attr($value == $enabledValue ? $enabledValue : $disabledValue); ?>">
|
21 |
<li class="wf-option-title"><?php echo (!empty($title)) ? esc_html($title) : ''; echo (!empty($htmlTitle)) ? wp_kses($htmlTitle, 'post') : ''; ?><?php if (!wfConfig::p() && isset($premium) && $premium) { echo ' <a href="https://www.wordfence.com/gnl1optionUpgrade/wordfence-signup/" target="_blank" rel="noopener noreferrer" class="wf-premium-link">' . __('Premium Feature', 'wordfence') . '</a>'; } ?><?php if (isset($helpLink)) { echo ' <a href="' . esc_attr($helpLink) . '" target="_blank" rel="noopener noreferrer" class="wf-inline-help"><i class="wf-fa wf-fa-question-circle-o" aria-hidden="true"></i></a>'; } ?></li>
|
22 |
<li class="wf-option-segments">
|
23 |
<?php
|
views/options/option-toggled-select.php
CHANGED
@@ -16,11 +16,14 @@ if (!defined('WORDFENCE_VERSION')) { exit; }
|
|
16 |
* @var string $helpLink If defined, the link to the corresponding external help page.
|
17 |
* @var bool $premium If defined, the option will be tagged as premium only and not allow its value to change for free users.
|
18 |
*/
|
|
|
|
|
|
|
19 |
?>
|
20 |
<ul class="wf-option wf-option-toggled-select<?php if (!wfConfig::p() && isset($premium) && $premium) { echo ' wf-option-premium'; } ?>" data-toggle-option="<?php echo esc_attr($toggleOptionName); ?>" data-enabled-toggle-value="<?php echo esc_attr($enabledToggleValue); ?>" data-disabled-toggle-value="<?php echo esc_attr($disabledToggleValue); ?>" data-original-toggle-value="<?php echo esc_attr($toggleValue == $enabledToggleValue ? $enabledToggleValue : $disabledToggleValue); ?>" data-select-option="<?php echo esc_attr($selectOptionName); ?>" data-original-select-value="<?php echo esc_attr($selectValue); ?>">
|
21 |
-
<li class="wf-option-checkbox<?php echo ($toggleValue == $enabledToggleValue ? ' wf-checked' : ''); ?>"><i class="wf-ion-ios-checkmark-empty" aria-hidden="true"></i></li>
|
22 |
<li class="wf-option-content">
|
23 |
-
<ul>
|
24 |
<li class="wf-option-title"><?php echo esc_html($title); ?><?php if (!wfConfig::p() && isset($premium) && $premium) { echo ' <a href="https://www.wordfence.com/gnl1optionUpgrade/wordfence-signup/" target="_blank" rel="noopener noreferrer" class="wf-premium-link">' . __('Premium Feature', 'wordfence') . '</a>'; } ?><?php if (isset($helpLink)) { echo ' <a href="' . esc_attr($helpLink) . '" target="_blank" rel="noopener noreferrer" class="wf-inline-help"><i class="wf-fa wf-fa-question-circle-o" aria-hidden="true"></i></a>'; } ?></li>
|
25 |
<li class="wf-option-select wf-padding-add-top-xs-small">
|
26 |
<select<?php echo ($toggleValue == $enabledToggleValue && !(!wfConfig::p() && isset($premium) && $premium) ? '' : ' disabled'); ?>>
|
16 |
* @var string $helpLink If defined, the link to the corresponding external help page.
|
17 |
* @var bool $premium If defined, the option will be tagged as premium only and not allow its value to change for free users.
|
18 |
*/
|
19 |
+
|
20 |
+
$toggleID = 'wf-option-' . preg_replace('/[^a-z0-9]/i', '-', $toggleOptionName);
|
21 |
+
$selectID = 'wf-option-' . preg_replace('/[^a-z0-9]/i', '-', $selectOptionName);
|
22 |
?>
|
23 |
<ul class="wf-option wf-option-toggled-select<?php if (!wfConfig::p() && isset($premium) && $premium) { echo ' wf-option-premium'; } ?>" data-toggle-option="<?php echo esc_attr($toggleOptionName); ?>" data-enabled-toggle-value="<?php echo esc_attr($enabledToggleValue); ?>" data-disabled-toggle-value="<?php echo esc_attr($disabledToggleValue); ?>" data-original-toggle-value="<?php echo esc_attr($toggleValue == $enabledToggleValue ? $enabledToggleValue : $disabledToggleValue); ?>" data-select-option="<?php echo esc_attr($selectOptionName); ?>" data-original-select-value="<?php echo esc_attr($selectValue); ?>">
|
24 |
+
<li id="<?php echo esc_attr($toggleID); ?>" class="wf-option-checkbox<?php echo ($toggleValue == $enabledToggleValue ? ' wf-checked' : ''); ?>"><i class="wf-ion-ios-checkmark-empty" aria-hidden="true"></i></li>
|
25 |
<li class="wf-option-content">
|
26 |
+
<ul id="<?php echo esc_attr($selectID); ?>">
|
27 |
<li class="wf-option-title"><?php echo esc_html($title); ?><?php if (!wfConfig::p() && isset($premium) && $premium) { echo ' <a href="https://www.wordfence.com/gnl1optionUpgrade/wordfence-signup/" target="_blank" rel="noopener noreferrer" class="wf-premium-link">' . __('Premium Feature', 'wordfence') . '</a>'; } ?><?php if (isset($helpLink)) { echo ' <a href="' . esc_attr($helpLink) . '" target="_blank" rel="noopener noreferrer" class="wf-inline-help"><i class="wf-fa wf-fa-question-circle-o" aria-hidden="true"></i></a>'; } ?></li>
|
28 |
<li class="wf-option-select wf-padding-add-top-xs-small">
|
29 |
<select<?php echo ($toggleValue == $enabledToggleValue && !(!wfConfig::p() && isset($premium) && $premium) ? '' : ' disabled'); ?>>
|
views/options/option-toggled-sub.php
CHANGED
@@ -32,10 +32,13 @@ if (isset($title) && !isset($htmlTitle)) {
|
|
32 |
if (isset($subTitle) && !isset($subHtmlTitle)) {
|
33 |
$subHtmlTitle = esc_html($subTitle);
|
34 |
}
|
|
|
|
|
|
|
35 |
?>
|
36 |
<ul class="wf-flex-vertical wf-flex-full-width">
|
37 |
<li>
|
38 |
-
<ul class="wf-option wf-option-toggled<?php if (!wfConfig::p() && isset($premium) && $premium) { echo ' wf-option-premium'; } ?>" data-option="<?php echo esc_attr($optionName); ?>" data-enabled-value="<?php echo esc_attr($enabledValue); ?>" data-disabled-value="<?php echo esc_attr($disabledValue); ?>" data-original-value="<?php echo esc_attr($value == $enabledValue ? $enabledValue : $disabledValue); ?>">
|
39 |
<li class="wf-option-checkbox<?php echo ($value == $enabledValue ? ' wf-checked' : ''); ?>"><i class="wf-ion-ios-checkmark-empty" aria-hidden="true"></i></li>
|
40 |
<li class="wf-option-title">
|
41 |
<?php echo $htmlTitle; ?><?php if (!wfConfig::p() && isset($premium) && $premium) { echo ' <a href="https://www.wordfence.com/gnl1optionUpgrade/wordfence-signup/" target="_blank" rel="noopener noreferrer" class="wf-premium-link">' . __('Premium Feature', 'wordfence') . '</a>'; } ?><?php if (isset($helpLink)) { echo ' <a href="' . esc_attr($helpLink) . '" target="_blank" rel="noopener noreferrer" class="wf-inline-help"><i class="wf-fa wf-fa-question-circle-o" aria-hidden="true"></i></a>'; } ?>
|
@@ -43,7 +46,7 @@ if (isset($subTitle) && !isset($subHtmlTitle)) {
|
|
43 |
</ul>
|
44 |
</li>
|
45 |
<li class="wf-option-sub">
|
46 |
-
<ul class="wf-option wf-option-toggled<?php if (!wfConfig::p() && isset($subPremium) && $subPremium) { echo ' wf-option-premium'; } ?>" data-option="<?php echo esc_attr($subOptionName); ?>" data-enabled-value="<?php echo esc_attr($subEnabledValue); ?>" data-disabled-value="<?php echo esc_attr($subDisabledValue); ?>" data-original-value="<?php echo esc_attr($subValue == $subEnabledValue ? $subEnabledValue : $subDisabledValue); ?>">
|
47 |
<li class="wf-option-checkbox<?php echo ($subValue == $subEnabledValue ? ' wf-checked' : ''); ?>"><i class="wf-ion-ios-checkmark-empty" aria-hidden="true"></i></li>
|
48 |
<li class="wf-option-title">
|
49 |
<?php echo $subHtmlTitle; ?><?php if (!wfConfig::p() && isset($subPremium) && $subPremium) { echo ' <a href="https://www.wordfence.com/gnl1optionUpgrade/wordfence-signup/" target="_blank" rel="noopener noreferrer" class="wf-premium-link">' . __('Premium Feature', 'wordfence') . '</a>'; } ?><?php if (isset($subHelpLink)) { echo ' <a href="' . esc_attr($subHelpLink) . '" target="_blank" rel="noopener noreferrer" class="wf-inline-help"><i class="wf-fa wf-fa-question-circle-o" aria-hidden="true"></i></a>'; } ?>
|
32 |
if (isset($subTitle) && !isset($subHtmlTitle)) {
|
33 |
$subHtmlTitle = esc_html($subTitle);
|
34 |
}
|
35 |
+
|
36 |
+
$id = 'wf-option-' . preg_replace('/[^a-z0-9]/i', '-', $optionName);
|
37 |
+
$subID = 'wf-option-' . preg_replace('/[^a-z0-9]/i', '-', $subOptionName);
|
38 |
?>
|
39 |
<ul class="wf-flex-vertical wf-flex-full-width">
|
40 |
<li>
|
41 |
+
<ul id="<?php echo esc_attr($id); ?>" class="wf-option wf-option-toggled<?php if (!wfConfig::p() && isset($premium) && $premium) { echo ' wf-option-premium'; } ?>" data-option="<?php echo esc_attr($optionName); ?>" data-enabled-value="<?php echo esc_attr($enabledValue); ?>" data-disabled-value="<?php echo esc_attr($disabledValue); ?>" data-original-value="<?php echo esc_attr($value == $enabledValue ? $enabledValue : $disabledValue); ?>">
|
42 |
<li class="wf-option-checkbox<?php echo ($value == $enabledValue ? ' wf-checked' : ''); ?>"><i class="wf-ion-ios-checkmark-empty" aria-hidden="true"></i></li>
|
43 |
<li class="wf-option-title">
|
44 |
<?php echo $htmlTitle; ?><?php if (!wfConfig::p() && isset($premium) && $premium) { echo ' <a href="https://www.wordfence.com/gnl1optionUpgrade/wordfence-signup/" target="_blank" rel="noopener noreferrer" class="wf-premium-link">' . __('Premium Feature', 'wordfence') . '</a>'; } ?><?php if (isset($helpLink)) { echo ' <a href="' . esc_attr($helpLink) . '" target="_blank" rel="noopener noreferrer" class="wf-inline-help"><i class="wf-fa wf-fa-question-circle-o" aria-hidden="true"></i></a>'; } ?>
|
46 |
</ul>
|
47 |
</li>
|
48 |
<li class="wf-option-sub">
|
49 |
+
<ul id="<?php echo esc_attr($subID); ?>" class="wf-option wf-option-toggled<?php if (!wfConfig::p() && isset($subPremium) && $subPremium) { echo ' wf-option-premium'; } ?>" data-option="<?php echo esc_attr($subOptionName); ?>" data-enabled-value="<?php echo esc_attr($subEnabledValue); ?>" data-disabled-value="<?php echo esc_attr($subDisabledValue); ?>" data-original-value="<?php echo esc_attr($subValue == $subEnabledValue ? $subEnabledValue : $subDisabledValue); ?>">
|
50 |
<li class="wf-option-checkbox<?php echo ($subValue == $subEnabledValue ? ' wf-checked' : ''); ?>"><i class="wf-ion-ios-checkmark-empty" aria-hidden="true"></i></li>
|
51 |
<li class="wf-option-title">
|
52 |
<?php echo $subHtmlTitle; ?><?php if (!wfConfig::p() && isset($subPremium) && $subPremium) { echo ' <a href="https://www.wordfence.com/gnl1optionUpgrade/wordfence-signup/" target="_blank" rel="noopener noreferrer" class="wf-premium-link">' . __('Premium Feature', 'wordfence') . '</a>'; } ?><?php if (isset($subHelpLink)) { echo ' <a href="' . esc_attr($subHelpLink) . '" target="_blank" rel="noopener noreferrer" class="wf-inline-help"><i class="wf-fa wf-fa-question-circle-o" aria-hidden="true"></i></a>'; } ?>
|
views/options/option-toggled-textarea.php
CHANGED
@@ -15,11 +15,14 @@ if (!defined('WORDFENCE_VERSION')) { exit; }
|
|
15 |
* @var string $helpLink If defined, the link to the corresponding external help page.
|
16 |
* @var bool $premium If defined, the option will be tagged as premium only and not allow its value to change for free users.
|
17 |
*/
|
|
|
|
|
|
|
18 |
?>
|
19 |
<ul class="wf-option wf-option-toggled-textarea<?php if (!wfConfig::p() && isset($premium) && $premium) { echo ' wf-option-premium'; } ?>" data-toggle-option="<?php echo esc_attr($toggleOptionName); ?>" data-enabled-toggle-value="<?php echo esc_attr($enabledToggleValue); ?>" data-disabled-toggle-value="<?php echo esc_attr($disabledToggleValue); ?>" data-original-toggle-value="<?php echo esc_attr($toggleValue == $enabledToggleValue ? $enabledToggleValue : $disabledToggleValue); ?>" data-text-area-option="<?php echo esc_attr($textAreaOptionName); ?>" data-original-text-area-value="<?php echo esc_attr($textAreaValue); ?>">
|
20 |
-
<li class="wf-option-checkbox<?php echo ($toggleValue == $enabledToggleValue ? ' wf-checked' : ''); ?>"><i class="wf-ion-ios-checkmark-empty" aria-hidden="true"></i></li>
|
21 |
<li class="wf-option-title"><?php echo esc_html($title); ?><?php if (!wfConfig::p() && isset($premium) && $premium) { echo ' <a href="https://www.wordfence.com/gnl1optionUpgrade/wordfence-signup/" target="_blank" rel="noopener noreferrer" class="wf-premium-link">' . __('Premium Feature', 'wordfence') . '</a>'; } ?><?php if (isset($helpLink)) { echo ' <a href="' . esc_attr($helpLink) . '" target="_blank" rel="noopener noreferrer" class="wf-inline-help"><i class="wf-fa wf-fa-question-circle-o" aria-hidden="true"></i></a>'; } ?></li>
|
22 |
-
<li class="wf-option-textarea">
|
23 |
<select<?php echo ($toggleValue == $enabledToggleValue && !(!wfConfig::p() && isset($premium) && $premium) ? '' : ' disabled'); ?>>
|
24 |
<textarea<?php echo (!(!wfConfig::p() && isset($premium) && $premium) ? '' : ' disabled'); ?>><?php echo esc_html($textAreaValue); ?></textarea>
|
25 |
</select>
|
15 |
* @var string $helpLink If defined, the link to the corresponding external help page.
|
16 |
* @var bool $premium If defined, the option will be tagged as premium only and not allow its value to change for free users.
|
17 |
*/
|
18 |
+
|
19 |
+
$toggleID = 'wf-option-' . preg_replace('/[^a-z0-9]/i', '-', $toggleOptionName);
|
20 |
+
$textAreaID = 'wf-option-' . preg_replace('/[^a-z0-9]/i', '-', $textAreaOptionName);
|
21 |
?>
|
22 |
<ul class="wf-option wf-option-toggled-textarea<?php if (!wfConfig::p() && isset($premium) && $premium) { echo ' wf-option-premium'; } ?>" data-toggle-option="<?php echo esc_attr($toggleOptionName); ?>" data-enabled-toggle-value="<?php echo esc_attr($enabledToggleValue); ?>" data-disabled-toggle-value="<?php echo esc_attr($disabledToggleValue); ?>" data-original-toggle-value="<?php echo esc_attr($toggleValue == $enabledToggleValue ? $enabledToggleValue : $disabledToggleValue); ?>" data-text-area-option="<?php echo esc_attr($textAreaOptionName); ?>" data-original-text-area-value="<?php echo esc_attr($textAreaValue); ?>">
|
23 |
+
<li id="<?php echo esc_attr($toggleID); ?>" class="wf-option-checkbox<?php echo ($toggleValue == $enabledToggleValue ? ' wf-checked' : ''); ?>"><i class="wf-ion-ios-checkmark-empty" aria-hidden="true"></i></li>
|
24 |
<li class="wf-option-title"><?php echo esc_html($title); ?><?php if (!wfConfig::p() && isset($premium) && $premium) { echo ' <a href="https://www.wordfence.com/gnl1optionUpgrade/wordfence-signup/" target="_blank" rel="noopener noreferrer" class="wf-premium-link">' . __('Premium Feature', 'wordfence') . '</a>'; } ?><?php if (isset($helpLink)) { echo ' <a href="' . esc_attr($helpLink) . '" target="_blank" rel="noopener noreferrer" class="wf-inline-help"><i class="wf-fa wf-fa-question-circle-o" aria-hidden="true"></i></a>'; } ?></li>
|
25 |
+
<li id="<?php echo esc_attr($textAreaID); ?>" class="wf-option-textarea">
|
26 |
<select<?php echo ($toggleValue == $enabledToggleValue && !(!wfConfig::p() && isset($premium) && $premium) ? '' : ' disabled'); ?>>
|
27 |
<textarea<?php echo (!(!wfConfig::p() && isset($premium) && $premium) ? '' : ' disabled'); ?>><?php echo esc_html($textAreaValue); ?></textarea>
|
28 |
</select>
|
views/options/option-toggled.php
CHANGED
@@ -19,8 +19,10 @@ if (!defined('WORDFENCE_VERSION')) { exit; }
|
|
19 |
if (isset($subtitle) && !isset($subtitleHTML)) {
|
20 |
$subtitleHTML = esc_html($subtitle);
|
21 |
}
|
|
|
|
|
22 |
?>
|
23 |
-
<ul class="wf-option wf-option-toggled<?php if (!wfConfig::p() && isset($premium) && $premium) { echo ' wf-option-premium'; } ?><?php if (isset($disabled) && $disabled) { echo ' wf-disabled'; } ?>" data-option="<?php echo esc_attr($optionName); ?>" data-enabled-value="<?php echo esc_attr($enabledValue); ?>" data-disabled-value="<?php echo esc_attr($disabledValue); ?>" data-original-value="<?php echo esc_attr($value == $enabledValue ? $enabledValue : $disabledValue); ?>">
|
24 |
<?php if (!wfConfig::p() && isset($premium) && $premium): ?>
|
25 |
<li class="wf-option-premium-lock"></li>
|
26 |
<?php else: ?>
|
19 |
if (isset($subtitle) && !isset($subtitleHTML)) {
|
20 |
$subtitleHTML = esc_html($subtitle);
|
21 |
}
|
22 |
+
|
23 |
+
$id = 'wf-option-' . preg_replace('/[^a-z0-9]/i', '-', $optionName);
|
24 |
?>
|
25 |
+
<ul id="<?php echo esc_attr($id); ?>" class="wf-option wf-option-toggled<?php if (!wfConfig::p() && isset($premium) && $premium) { echo ' wf-option-premium'; } ?><?php if (isset($disabled) && $disabled) { echo ' wf-disabled'; } ?>" data-option="<?php echo esc_attr($optionName); ?>" data-enabled-value="<?php echo esc_attr($enabledValue); ?>" data-disabled-value="<?php echo esc_attr($disabledValue); ?>" data-original-value="<?php echo esc_attr($value == $enabledValue ? $enabledValue : $disabledValue); ?>">
|
26 |
<?php if (!wfConfig::p() && isset($premium) && $premium): ?>
|
27 |
<li class="wf-option-premium-lock"></li>
|
28 |
<?php else: ?>
|
views/options/option-token.php
CHANGED
@@ -11,8 +11,10 @@ if (!defined('WORDFENCE_VERSION')) { exit; }
|
|
11 |
* @var string $helpLink If defined, the link to the corresponding external help page.
|
12 |
* @var bool $premium If defined, the option will be tagged as premium only and not allow its value to change for free users.
|
13 |
*/
|
|
|
|
|
14 |
?>
|
15 |
-
<ul class="wf-option wf-option-token<?php if (!wfConfig::p() && isset($premium) && $premium) { echo ' wf-option-premium'; } ?>" data-token-option="<?php echo esc_attr($tokenOptionName); ?>" data-original-token-value="<?php echo esc_attr(json_encode($tokenValue)); ?>">
|
16 |
<li class="wf-option-spacer"></li>
|
17 |
<li class="wf-flex-vertical wf-flex-align-left">
|
18 |
<div class="wf-option-title">
|
11 |
* @var string $helpLink If defined, the link to the corresponding external help page.
|
12 |
* @var bool $premium If defined, the option will be tagged as premium only and not allow its value to change for free users.
|
13 |
*/
|
14 |
+
|
15 |
+
$id = 'wf-option-' . preg_replace('/[^a-z0-9]/i', '-', $tokenOptionName);
|
16 |
?>
|
17 |
+
<ul id="<?php echo esc_attr($id); ?>" class="wf-option wf-option-token<?php if (!wfConfig::p() && isset($premium) && $premium) { echo ' wf-option-premium'; } ?>" data-token-option="<?php echo esc_attr($tokenOptionName); ?>" data-original-token-value="<?php echo esc_attr(json_encode($tokenValue)); ?>">
|
18 |
<li class="wf-option-spacer"></li>
|
19 |
<li class="wf-flex-vertical wf-flex-align-left">
|
20 |
<div class="wf-option-title">
|
views/options/options-title.php
ADDED
@@ -0,0 +1,80 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
if (!defined('WORDFENCE_VERSION')) { exit; }
|
3 |
+
/**
|
4 |
+
* Expects $title (or $titleHTML) and $stateKeys to be defined.
|
5 |
+
*
|
6 |
+
* @var string $title The page title.
|
7 |
+
* @var string $titleHTML The page title as raw HTML
|
8 |
+
* @var string[] $stateKeys An array of state keys that will be controlled by the expand/collapse all button
|
9 |
+
*/
|
10 |
+
|
11 |
+
if (isset($title) && !isset($titleHTML)) {
|
12 |
+
$titleHTML = esc_html($title);
|
13 |
+
}
|
14 |
+
|
15 |
+
if (isset($helpLabel) && !isset($helpLabelHTML)) {
|
16 |
+
$helpLabelHTML = esc_html($helpLabel);
|
17 |
+
}
|
18 |
+
|
19 |
+
$expanded = true;
|
20 |
+
foreach ($stateKeys as $k) {
|
21 |
+
if (!wfPersistenceController::shared()->isActive($k)) {
|
22 |
+
$expanded = false;
|
23 |
+
break;
|
24 |
+
}
|
25 |
+
}
|
26 |
+
?>
|
27 |
+
<div class="wf-section-title">
|
28 |
+
<?php if (isset($showIcon) && $showIcon): ?>
|
29 |
+
<div class="wordfence-lock-icon wordfence-icon32 wf-hidden-xs"></div>
|
30 |
+
<?php endif; ?>
|
31 |
+
<h2<?php echo (isset($headerID) ? ' id="' . $headerID . '"' : ''); ?>><?php echo $titleHTML; ?></h2>
|
32 |
+
<div><a href="#" class="wf-toggle-all-sections wf-btn wf-btn-callout-subtle wf-btn-default" data-collapsed-title="<?php esc_attr_e('Expand All', 'wordfence'); ?>" data-expanded-title="<?php esc_attr_e('Collapse All', 'wordfence'); ?>" data-expanded="<?php echo wfUtils::truthyToInt($expanded); ?>"></a></div>
|
33 |
+
</div>
|
34 |
+
<script type="application/javascript">
|
35 |
+
(function($) {
|
36 |
+
$('.wf-toggle-all-sections').text($('.wf-toggle-all-sections').data('expanded') == 1 ? $('.wf-toggle-all-sections').data('expandedTitle') : $('.wf-toggle-all-sections').data('collapsedTitle'));
|
37 |
+
|
38 |
+
$(function() {
|
39 |
+
$('.wf-toggle-all-sections').on('click', function(e) {
|
40 |
+
e.preventDefault();
|
41 |
+
e.stopPropagation();
|
42 |
+
|
43 |
+
if ($(this).data('expanded') == 1) {
|
44 |
+
$('.wf-block[data-persistence-key]').each(function() {
|
45 |
+
var block = $(this);
|
46 |
+
if (block.hasClass('wf-active')) {
|
47 |
+
block.find('.wf-block-content').slideUp({
|
48 |
+
always: function() {
|
49 |
+
block.removeClass('wf-active');
|
50 |
+
}
|
51 |
+
});
|
52 |
+
}
|
53 |
+
});
|
54 |
+
|
55 |
+
WFAD.ajax('wordfence_saveDisclosureState', {names: <?php echo json_encode($stateKeys) ?>, state: false}, function() {}, function() {}, true);
|
56 |
+
|
57 |
+
$(this).data('expanded', 0);
|
58 |
+
$('.wf-toggle-all-sections').text($('.wf-toggle-all-sections').data('collapsedTitle'));
|
59 |
+
}
|
60 |
+
else {
|
61 |
+
$('.wf-block[data-persistence-key]').each(function() {
|
62 |
+
var block = $(this);
|
63 |
+
if (!block.hasClass('wf-active')) {
|
64 |
+
block.find('.wf-block-content').slideDown({
|
65 |
+
always: function() {
|
66 |
+
block.addClass('wf-active');
|
67 |
+
}
|
68 |
+
});
|
69 |
+
}
|
70 |
+
});
|
71 |
+
|
72 |
+
WFAD.ajax('wordfence_saveDisclosureState', {names: <?php echo json_encode($stateKeys) ?>, state: true}, function() {}, function() {}, true);
|
73 |
+
|
74 |
+
$(this).data('expanded', 1);
|
75 |
+
$('.wf-toggle-all-sections').text($('.wf-toggle-all-sections').data('expandedTitle'));
|
76 |
+
}
|
77 |
+
});
|
78 |
+
});
|
79 |
+
})(jQuery);
|
80 |
+
</script>
|
views/scanner/option-scan-signatures.php
CHANGED
@@ -17,7 +17,7 @@ if (!defined('WORDFENCE_VERSION')) { exit; }
|
|
17 |
?>
|
18 |
<ul class="wf-flex-vertical wf-flex-full-width">
|
19 |
<li>
|
20 |
-
<ul class="wf-option wf-option-scan-signatures" data-toggle-option="scansEnabled_fileContents" data-enabled-toggle-value="1" data-disabled-toggle-value="0" data-original-toggle-value="<?php echo wfConfig::get('scansEnabled_fileContents') ? 1 : 0; ?>" data-text-area-option="scan_include_extra" data-original-text-area-value="<?php echo esc_attr(wfConfig::get('scan_include_extra')); ?>">
|
21 |
<li class="wf-option-checkbox<?php echo (wfConfig::get('scansEnabled_fileContents') ? ' wf-checked' : ''); ?>"><i class="wf-ion-ios-checkmark-empty" aria-hidden="true"></i></li>
|
22 |
<li class="wf-option-title"><?php echo esc_html($title); ?> <a href="<?php echo wfSupportController::esc_supportURL(wfSupportController::ITEM_SCAN_OPTION_MALWARE_SIGNATURES); ?>" target="_blank" rel="noopener noreferrer" class="wf-inline-help"><i class="wf-fa wf-fa-question-circle-o" aria-hidden="true"></i></a></li>
|
23 |
<li class="wf-option-disclosure"><svg width="12px" height="12px" viewBox="0 0 12 12"><path id="disclosure-closed" d="M 6 0 l 6 6 -6 6 0 -12" fill="#777"/></svg></li>
|
@@ -25,7 +25,7 @@ if (!defined('WORDFENCE_VERSION')) { exit; }
|
|
25 |
</li>
|
26 |
<li id="wf-scan-additional-signatures">
|
27 |
<h4>Add Additional Signatures</h4>
|
28 |
-
<textarea spellcheck="false" autocapitalize="none" autocomplete="off"><?php echo esc_html(wfConfig::get('scan_include_extra')); ?></textarea>
|
29 |
</li>
|
30 |
</ul>
|
31 |
<script type="application/javascript">
|
17 |
?>
|
18 |
<ul class="wf-flex-vertical wf-flex-full-width">
|
19 |
<li>
|
20 |
+
<ul id="wf-option-scansEnabled-fileContents" class="wf-option wf-option-scan-signatures" data-toggle-option="scansEnabled_fileContents" data-enabled-toggle-value="1" data-disabled-toggle-value="0" data-original-toggle-value="<?php echo wfConfig::get('scansEnabled_fileContents') ? 1 : 0; ?>" data-text-area-option="scan_include_extra" data-original-text-area-value="<?php echo esc_attr(wfConfig::get('scan_include_extra')); ?>">
|
21 |
<li class="wf-option-checkbox<?php echo (wfConfig::get('scansEnabled_fileContents') ? ' wf-checked' : ''); ?>"><i class="wf-ion-ios-checkmark-empty" aria-hidden="true"></i></li>
|
22 |
<li class="wf-option-title"><?php echo esc_html($title); ?> <a href="<?php echo wfSupportController::esc_supportURL(wfSupportController::ITEM_SCAN_OPTION_MALWARE_SIGNATURES); ?>" target="_blank" rel="noopener noreferrer" class="wf-inline-help"><i class="wf-fa wf-fa-question-circle-o" aria-hidden="true"></i></a></li>
|
23 |
<li class="wf-option-disclosure"><svg width="12px" height="12px" viewBox="0 0 12 12"><path id="disclosure-closed" d="M 6 0 l 6 6 -6 6 0 -12" fill="#777"/></svg></li>
|
25 |
</li>
|
26 |
<li id="wf-scan-additional-signatures">
|
27 |
<h4>Add Additional Signatures</h4>
|
28 |
+
<textarea id="wf-option-scan-include-extra" spellcheck="false" autocapitalize="none" autocomplete="off"><?php echo esc_html(wfConfig::get('scan_include_extra')); ?></textarea>
|
29 |
</li>
|
30 |
</ul>
|
31 |
<script type="application/javascript">
|
views/scanner/options-group-advanced.php
ADDED
@@ -0,0 +1,56 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
if (!defined('WORDFENCE_VERSION')) { exit; }
|
3 |
+
/**
|
4 |
+
* Presents the Advanced Scan Options group.
|
5 |
+
*
|
6 |
+
* Expects $scanner and $stateKey.
|
7 |
+
*
|
8 |
+
* @var wfScanner $scanner
|
9 |
+
* @var string $stateKey The key under which the collapse state is stored.
|
10 |
+
* @var bool $collapseable If defined, specifies whether or not this grouping can be collapsed. Defaults to true.
|
11 |
+
*/
|
12 |
+
|
13 |
+
if (!isset($collapseable)) {
|
14 |
+
$collapseable = true;
|
15 |
+
}
|
16 |
+
?>
|
17 |
+
<div class="wf-row">
|
18 |
+
<div class="wf-col-xs-12">
|
19 |
+
<div class="wf-block<?php if (!$collapseable) { echo ' wf-always-active'; } else { echo (wfPersistenceController::shared()->isActive($stateKey) ? ' wf-active' : ''); } ?>" data-persistence-key="<?php echo esc_attr($stateKey); ?>">
|
20 |
+
<div class="wf-block-header">
|
21 |
+
<div class="wf-block-header-content">
|
22 |
+
<div class="wf-block-title">
|
23 |
+
<strong><?php _e('Advanced Scan Options', 'wordfence'); ?></strong>
|
24 |
+
</div>
|
25 |
+
<?php if ($collapseable): ?><div class="wf-block-header-action"><div class="wf-block-header-action-disclosure"></div></div><?php endif; ?>
|
26 |
+
</div>
|
27 |
+
</div>
|
28 |
+
<div class="wf-block-content">
|
29 |
+
<ul class="wf-block-list">
|
30 |
+
<li>
|
31 |
+
<?php
|
32 |
+
echo wfView::create('options/option-textarea', array(
|
33 |
+
'textOptionName' => 'scan_exclude',
|
34 |
+
'textValue' => wfUtils::cleanupOneEntryPerLine(wfConfig::get('scan_exclude')),
|
35 |
+
'title' => __('Exclude files from scan that match these wildcard patterns (one per line)', 'wordfence'),
|
36 |
+
'helpLink' => wfSupportController::supportURL(wfSupportController::ITEM_SCAN_OPTION_EXCLUDE_PATTERNS),
|
37 |
+
'noSpacer' => true,
|
38 |
+
))->render();
|
39 |
+
?>
|
40 |
+
</li>
|
41 |
+
<li>
|
42 |
+
<?php
|
43 |
+
echo wfView::create('options/option-textarea', array(
|
44 |
+
'textOptionName' => 'scan_include_extra',
|
45 |
+
'textValue' => wfConfig::get('scan_include_extra'),
|
46 |
+
'title' => __('Additional scan signatures (one per line)', 'wordfence'),
|
47 |
+
'helpLink' => wfSupportController::supportURL(wfSupportController::ITEM_SCAN_OPTION_CUSTOM_MALWARE_SIGNATURES),
|
48 |
+
'noSpacer' => true,
|
49 |
+
))->render();
|
50 |
+
?>
|
51 |
+
</li>
|
52 |
+
</ul>
|
53 |
+
</div>
|
54 |
+
</div>
|
55 |
+
</div>
|
56 |
+
</div> <!-- end custom scan options -->
|
views/scanner/options-group-basic.php
ADDED
@@ -0,0 +1,37 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
if (!defined('WORDFENCE_VERSION')) { exit; }
|
3 |
+
/**
|
4 |
+
* Presents the Basic Scan Type Options group.
|
5 |
+
*
|
6 |
+
* Expects $scanner and $stateKey.
|
7 |
+
*
|
8 |
+
* @var wfScanner $scanner
|
9 |
+
* @var string $stateKey The key under which the collapse state is stored.
|
10 |
+
* @var bool $collapseable If defined, specifies whether or not this grouping can be collapsed. Defaults to true.
|
11 |
+
*/
|
12 |
+
|
13 |
+
if (!isset($collapseable)) {
|
14 |
+
$collapseable = true;
|
15 |
+
}
|
16 |
+
?>
|
17 |
+
<div class="wf-row">
|
18 |
+
<div class="wf-col-xs-12">
|
19 |
+
<div class="wf-block<?php if (!$collapseable) { echo ' wf-always-active'; } else { echo (wfPersistenceController::shared()->isActive($stateKey) ? ' wf-active' : ''); } ?>" data-persistence-key="<?php echo esc_attr($stateKey); ?>">
|
20 |
+
<div class="wf-block-header">
|
21 |
+
<div class="wf-block-header-content">
|
22 |
+
<div class="wf-block-title">
|
23 |
+
<strong><?php _e('Basic Scan Type Options', 'wordfence'); ?></strong>
|
24 |
+
</div>
|
25 |
+
<?php if ($collapseable): ?><div class="wf-block-header-action"><div class="wf-block-header-action-disclosure"></div></div><?php endif; ?>
|
26 |
+
</div>
|
27 |
+
</div>
|
28 |
+
<div class="wf-block-content">
|
29 |
+
<?php
|
30 |
+
echo wfView::create('scanner/scan-type', array(
|
31 |
+
'scanner' => $scanner,
|
32 |
+
))->render();
|
33 |
+
?>
|
34 |
+
</div>
|
35 |
+
</div>
|
36 |
+
</div>
|
37 |
+
</div> <!-- end scan type -->
|
views/scanner/options-group-general.php
ADDED
@@ -0,0 +1,89 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
if (!defined('WORDFENCE_VERSION')) { exit; }
|
3 |
+
/**
|
4 |
+
* Presents the General Options group.
|
5 |
+
*
|
6 |
+
* Expects $scanner and $stateKey.
|
7 |
+
*
|
8 |
+
* @var wfScanner $scanner
|
9 |
+
* @var string $stateKey The key under which the collapse state is stored.
|
10 |
+
* @var bool $collapseable If defined, specifies whether or not this grouping can be collapsed. Defaults to true.
|
11 |
+
*/
|
12 |
+
|
13 |
+
if (!isset($collapseable)) {
|
14 |
+
$collapseable = true;
|
15 |
+
}
|
16 |
+
?>
|
17 |
+
<div class="wf-row">
|
18 |
+
<div class="wf-col-xs-12">
|
19 |
+
<div class="wf-block<?php if (!$collapseable) { echo ' wf-always-active'; } else { echo (wfPersistenceController::shared()->isActive($stateKey) ? ' wf-active' : ''); } ?>" data-persistence-key="<?php echo esc_attr($stateKey); ?>">
|
20 |
+
<div class="wf-block-header">
|
21 |
+
<div class="wf-block-header-content">
|
22 |
+
<div class="wf-block-title">
|
23 |
+
<strong><?php _e('General Options', 'wordfence'); ?></strong>
|
24 |
+
</div>
|
25 |
+
<?php if ($collapseable): ?><div class="wf-block-header-action"><div class="wf-block-header-action-disclosure"></div></div><?php endif; ?>
|
26 |
+
</div>
|
27 |
+
</div>
|
28 |
+
<div class="wf-block-content">
|
29 |
+
<ul class="wf-block-list">
|
30 |
+
<?php
|
31 |
+
$options = array(
|
32 |
+
array('key' => 'scansEnabled_checkGSB', 'label' => __('Check if this website is on a domain blacklist', 'wordfence'), 'helpLink' => wfSupportController::supportURL(wfSupportController::ITEM_SCAN_OPTION_CHECK_SITE_BLACKLISTED), 'premium' => true, 'subtitleHTML' => __('<em>Reputation check</em>', 'wordfence')),
|
33 |
+
array('key' => 'spamvertizeCheck', 'label' => __('Check if this website is being "Spamvertised"', 'wordfence'), 'helpLink' => wfSupportController::supportURL(wfSupportController::ITEM_SCAN_OPTION_CHECK_SITE_SPAMVERTIZED), 'premium' => true, 'subtitleHTML' => __('<em>Reputation check</em>', 'wordfence')),
|
34 |
+
array('key' => 'checkSpamIP', 'label' => __('Check if this website IP is generating spam', 'wordfence'), 'helpLink' => wfSupportController::supportURL(wfSupportController::ITEM_SCAN_OPTION_CHECK_IP_SPAMMING), 'premium' => true, 'subtitleHTML' => __('<em>Reputation check</em>', 'wordfence')),
|
35 |
+
array('key' => 'scansEnabled_checkHowGetIPs', 'label' => __('Scan for misconfigured How does Wordfence get IPs', 'wordfence'), 'helpLink' => wfSupportController::supportURL(wfSupportController::ITEM_SCAN_OPTION_CHECK_MISCONFIGURED_HOW_GET_IPS)),
|
36 |
+
array('key' => 'scansEnabled_checkReadableConfig', 'label' => __('Scan for publicly accessible configuration, backup, or log files', 'wordfence'), 'helpLink' => wfSupportController::supportURL(wfSupportController::ITEM_SCAN_OPTION_PUBLIC_CONFIG)),
|
37 |
+
array('key' => 'scansEnabled_suspectedFiles', 'label' => __('Scan for publicly accessible quarantined files', 'wordfence'), 'helpLink' => wfSupportController::supportURL(wfSupportController::ITEM_SCAN_OPTION_PUBLIC_QUARANTINED)),
|
38 |
+
array('key' => 'scansEnabled_core', 'label' => __('Scan core files against repository versions for changes', 'wordfence'), 'helpLink' => wfSupportController::supportURL(wfSupportController::ITEM_SCAN_OPTION_CORE_CHANGES)),
|
39 |
+
array('key' => 'scansEnabled_themes', 'label' => __('Scan theme files against repository versions for changes', 'wordfence'), 'helpLink' => wfSupportController::supportURL(wfSupportController::ITEM_SCAN_OPTION_THEME_CHANGES)),
|
40 |
+
array('key' => 'scansEnabled_plugins', 'label' => __('Scan plugin files against repository versions for changes', 'wordfence'), 'helpLink' => wfSupportController::supportURL(wfSupportController::ITEM_SCAN_OPTION_PLUGIN_CHANGES)),
|
41 |
+
array('key' => 'scansEnabled_coreUnknown', 'label' => __('Scan wp-admin and wp-includes for files not bundled with WordPress', 'wordfence'), 'helpLink' => wfSupportController::supportURL(wfSupportController::ITEM_SCAN_OPTION_UNKNOWN_CORE)),
|
42 |
+
array('key' => 'scansEnabled_malware', 'label' => __('Scan for signatures of known malicious files', 'wordfence'), 'helpLink' => wfSupportController::supportURL(wfSupportController::ITEM_SCAN_OPTION_MALWARE_HASHES)),
|
43 |
+
array('key' => 'scansEnabled_fileContents', 'label' => __('Scan file contents for backdoors, trojans and suspicious code', 'wordfence'), 'helpLink' => wfSupportController::supportURL(wfSupportController::ITEM_SCAN_OPTION_MALWARE_SIGNATURES)),
|
44 |
+
array('key' => 'scansEnabled_fileContentsGSB', 'label' => __('Scan file contents for malicious URLs', 'wordfence'), 'helpLink' => wfSupportController::supportURL(wfSupportController::ITEM_SCAN_OPTION_MALWARE_URLS)),
|
45 |
+
array('key' => 'scansEnabled_posts', 'label' => __('Scan posts for known dangerous URLs and suspicious content', 'wordfence'), 'helpLink' => wfSupportController::supportURL(wfSupportController::ITEM_SCAN_OPTION_POST_URLS)),
|
46 |
+
array('key' => 'scansEnabled_comments', 'label' => __('Scan comments for known dangerous URLs and suspicious content', 'wordfence'), 'helpLink' => wfSupportController::supportURL(wfSupportController::ITEM_SCAN_OPTION_COMMENT_URLS)),
|
47 |
+
array('key' => 'scansEnabled_suspiciousOptions', 'label' => __('Scan WordPress core, plugin, and theme options for known dangerous URLs and suspicious content', 'wordfence'), 'helpLink' => wfSupportController::supportURL(wfSupportController::ITEM_SCAN_OPTION_MALWARE_OPTIONS)),
|
48 |
+
array('key' => 'scansEnabled_oldVersions', 'label' => __('Scan for out of date, abandoned, and vulnerable plugins, themes, and WordPress versions', 'wordfence'), 'helpLink' => wfSupportController::supportURL(wfSupportController::ITEM_SCAN_OPTION_UPDATES)),
|
49 |
+
array('key' => 'scansEnabled_suspiciousAdminUsers', 'label' => __('Scan for admin users created outside of WordPress', 'wordfence'), 'helpLink' => wfSupportController::supportURL(wfSupportController::ITEM_SCAN_OPTION_UNKNOWN_ADMINS)),
|
50 |
+
array('key' => 'scansEnabled_passwds', 'label' => __('Check the strength of passwords', 'wordfence'), 'helpLink' => wfSupportController::supportURL(wfSupportController::ITEM_SCAN_OPTION_PASSWORD_STRENGTH)),
|
51 |
+
array('key' => 'scansEnabled_diskSpace', 'label' => __('Monitor disk space', 'wordfence'), 'helpLink' => wfSupportController::supportURL(wfSupportController::ITEM_SCAN_OPTION_DISK_SPACE)),
|
52 |
+
array('key' => 'scansEnabled_dns', 'label' => __('Scan for unauthorized DNS changes', 'wordfence'), 'helpLink' => wfSupportController::supportURL(wfSupportController::ITEM_SCAN_OPTION_DNS_CHANGES)),
|
53 |
+
array('key' => 'other_scanOutside', 'label' => __('Scan files outside your WordPress installation', 'wordfence'), 'helpLink' => wfSupportController::supportURL(wfSupportController::ITEM_SCAN_OPTION_OUTSIDE_WORDPRESS)),
|
54 |
+
array('key' => 'scansEnabled_scanImages', 'label' => __('Scan images, binary, and other files as if they were executable', 'wordfence'), 'helpLink' => wfSupportController::supportURL(wfSupportController::ITEM_SCAN_OPTION_IMAGES_EXECUTABLE)),
|
55 |
+
array('key' => 'scansEnabled_highSense', 'label' => __('Enable HIGH SENSITIVITY scanning (may give false positives)', 'wordfence'), 'helpLink' => wfSupportController::supportURL(wfSupportController::ITEM_SCAN_OPTION_HIGH_SENSITIVITY)),
|
56 |
+
);
|
57 |
+
foreach ($options as $o):
|
58 |
+
?>
|
59 |
+
<li>
|
60 |
+
<?php
|
61 |
+
if (isset($o['view'])) {
|
62 |
+
echo wfView::create($o['view'], array(
|
63 |
+
'optionName' => $o['key'],
|
64 |
+
'value' => wfConfig::get($o['key']) ? 1 : 0,
|
65 |
+
'title' => $o['label'],
|
66 |
+
'helpLink' => $o['helpLink'],
|
67 |
+
'premium' => isset($o['premium']) && $o['premium'],
|
68 |
+
))->render();
|
69 |
+
}
|
70 |
+
else {
|
71 |
+
echo wfView::create('options/option-toggled', array(
|
72 |
+
'optionName' => $o['key'],
|
73 |
+
'enabledValue' => 1,
|
74 |
+
'disabledValue' => 0,
|
75 |
+
'value' => wfConfig::get($o['key']) ? 1 : 0,
|
76 |
+
'title' => $o['label'],
|
77 |
+
'subtitleHTML' => isset($o['subtitleHTML']) ? $o['subtitleHTML'] : null,
|
78 |
+
'helpLink' => $o['helpLink'],
|
79 |
+
'premium' => isset($o['premium']) && $o['premium'],
|
80 |
+
))->render();
|
81 |
+
}
|
82 |
+
?>
|
83 |
+
</li>
|
84 |
+
<?php endforeach; ?>
|
85 |
+
</ul>
|
86 |
+
</div>
|
87 |
+
</div>
|
88 |
+
</div>
|
89 |
+
</div> <!-- end general options -->
|
views/scanner/options-group-performance.php
ADDED
@@ -0,0 +1,69 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
if (!defined('WORDFENCE_VERSION')) { exit; }
|
3 |
+
/**
|
4 |
+
* Presents the Performance Options group.
|
5 |
+
*
|
6 |
+
* Expects $scanner and $stateKey.
|
7 |
+
*
|
8 |
+
* @var wfScanner $scanner
|
9 |
+
* @var string $stateKey The key under which the collapse state is stored.
|
10 |
+
* @var bool $collapseable If defined, specifies whether or not this grouping can be collapsed. Defaults to true.
|
11 |
+
*/
|
12 |
+
|
13 |
+
if (!isset($collapseable)) {
|
14 |
+
$collapseable = true;
|
15 |
+
}
|
16 |
+
?>
|
17 |
+
<div class="wf-row">
|
18 |
+
<div class="wf-col-xs-12">
|
19 |
+
<div class="wf-block<?php if (!$collapseable) { echo ' wf-always-active'; } else { echo (wfPersistenceController::shared()->isActive($stateKey) ? ' wf-active' : ''); } ?>" data-persistence-key="<?php echo esc_attr($stateKey); ?>">
|
20 |
+
<div class="wf-block-header">
|
21 |
+
<div class="wf-block-header-content">
|
22 |
+
<div class="wf-block-title">
|
23 |
+
<strong><?php _e('Performance Options', 'wordfence'); ?></strong>
|
24 |
+
</div>
|
25 |
+
<?php if ($collapseable): ?><div class="wf-block-header-action"><div class="wf-block-header-action-disclosure"></div></div><?php endif; ?>
|
26 |
+
</div>
|
27 |
+
</div>
|
28 |
+
<div class="wf-block-content">
|
29 |
+
<ul class="wf-block-list">
|
30 |
+
<?php
|
31 |
+
$options = array(
|
32 |
+
array('key' => 'lowResourceScansEnabled', 'label' => __('Use low resource scanning (reduces server load by lengthening the scan duration)', 'wordfence'), 'helpLink' => wfSupportController::supportURL(wfSupportController::ITEM_SCAN_OPTION_LOW_RESOURCE)),
|
33 |
+
array('key' => 'scan_maxIssues', 'label' => __('Limit the number of issues sent in the scan results email', 'wordfence'), 'helpLink' => wfSupportController::supportURL(wfSupportController::ITEM_SCAN_OPTION_LIMIT_ISSUES), 'view' => 'options/option-text', 'parameters' => array('subtitle' => __('0 or empty means unlimited issues will be sent', 'wordfence'))),
|
34 |
+
array('key' => 'scan_maxDuration', 'label' => __('Time limit that a scan can run in seconds', 'wordfence'), 'helpLink' => wfSupportController::supportURL(wfSupportController::ITEM_SCAN_OPTION_OVERALL_TIME_LIMIT), 'view' => 'options/option-text', 'parameters' => array('subtitle' => sprintf(__('0 or empty means the default of %s will be used', 'wordfence'), wfUtils::makeDuration(WORDFENCE_DEFAULT_MAX_SCAN_TIME)))),
|
35 |
+
array('key' => 'maxMem', 'label' => __('How much memory should Wordfence request when scanning', 'wordfence'), 'helpLink' => wfSupportController::supportURL(wfSupportController::ITEM_SCAN_OPTION_MEMORY_LIMIT), 'view' => 'options/option-text', 'parameters' => array('subtitle' => __('Memory size in megabytes', 'wordfence'))),
|
36 |
+
array('key' => 'maxExecutionTime', 'label' => __('Maximum execution time for each scan stage ', 'wordfence'), 'helpLink' => wfSupportController::supportURL(wfSupportController::ITEM_SCAN_OPTION_STAGE_TIME_LIMIT), 'view' => 'options/option-text', 'parameters' => array('subtitle' => sprintf(__('Blank for default. Must be greater than %d and 10-20 or higher is recommended for most servers', 'wordfence'), intval(WORDFENCE_SCAN_MIN_EXECUTION_TIME) - 1))),
|
37 |
+
);
|
38 |
+
foreach ($options as $o):
|
39 |
+
?>
|
40 |
+
<li>
|
41 |
+
<?php
|
42 |
+
if (isset($o['view']) && $o['view'] == 'options/option-text') {
|
43 |
+
if (!isset($o['parameters'])) { $o['parameters'] = array(); }
|
44 |
+
echo wfView::create($o['view'], array_merge(array(
|
45 |
+
'textOptionName' => $o['key'],
|
46 |
+
'textValue' => wfConfig::get($o['key']),
|
47 |
+
'title' => $o['label'],
|
48 |
+
'helpLink' => $o['helpLink'],
|
49 |
+
), $o['parameters']))->render();
|
50 |
+
}
|
51 |
+
else {
|
52 |
+
echo wfView::create('options/option-toggled', array(
|
53 |
+
'optionName' => $o['key'],
|
54 |
+
'enabledValue' => 1,
|
55 |
+
'disabledValue' => 0,
|
56 |
+
'value' => wfConfig::get($o['key']) ? 1 : 0,
|
57 |
+
'title' => $o['label'],
|
58 |
+
'helpLink' => $o['helpLink'],
|
59 |
+
'disabled' => isset($o['disabled']) ? $o['disabled'] : false,
|
60 |
+
))->render();
|
61 |
+
}
|
62 |
+
?>
|
63 |
+
</li>
|
64 |
+
<?php endforeach; ?>
|
65 |
+
</ul>
|
66 |
+
</div>
|
67 |
+
</div>
|
68 |
+
</div>
|
69 |
+
</div> <!-- end performance options -->
|
views/scanner/options-group-scan-schedule.php
ADDED
@@ -0,0 +1,39 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
if (!defined('WORDFENCE_VERSION')) { exit; }
|
3 |
+
/**
|
4 |
+
* Presents the Scan Scheduling group.
|
5 |
+
*
|
6 |
+
* Expects $scanner and $stateKey.
|
7 |
+
*
|
8 |
+
* @var wfScanner $scanner
|
9 |
+
* @var string $stateKey The key under which the collapse state is stored.
|
10 |
+
* @var bool $collapseable If defined, specifies whether or not this grouping can be collapsed. Defaults to true.
|
11 |
+
*/
|
12 |
+
|
13 |
+
if (!isset($collapseable)) {
|
14 |
+
$collapseable = true;
|
15 |
+
}
|
16 |
+
?>
|
17 |
+
<div class="wf-row">
|
18 |
+
<div class="wf-col-xs-12">
|
19 |
+
<div class="wf-block<?php if (!$collapseable) { echo ' wf-always-active'; } else { echo (wfPersistenceController::shared()->isActive($stateKey) ? ' wf-active' : ''); } ?>" data-persistence-key="<?php echo esc_attr($stateKey); ?>">
|
20 |
+
<div class="wf-block-header">
|
21 |
+
<div class="wf-block-header-content">
|
22 |
+
<div class="wf-block-title">
|
23 |
+
<strong><?php _e('Scan Scheduling', 'wordfence'); ?></strong>
|
24 |
+
</div>
|
25 |
+
<?php if ($collapseable): ?><div class="wf-block-header-action"><div class="wf-block-header-action-disclosure"></div></div><?php endif; ?>
|
26 |
+
</div>
|
27 |
+
</div>
|
28 |
+
<div class="wf-block-content">
|
29 |
+
<ul class="wf-block-list">
|
30 |
+
<?php
|
31 |
+
echo wfView::create('scanner/scan-scheduling', array(
|
32 |
+
'scanner' => $scanner,
|
33 |
+
))->render();
|
34 |
+
?>
|
35 |
+
</ul>
|
36 |
+
</div>
|
37 |
+
</div>
|
38 |
+
</div>
|
39 |
+
</div> <!-- end scan schedule -->
|
views/scanner/scan-type.php
CHANGED
@@ -12,7 +12,7 @@ $limitedOptions = array_filter(wfScanner::limitedScanTypeOptions(), '_wfAllowOnl
|
|
12 |
$standardOptions = array_filter(wfScanner::standardScanTypeOptions(), '_wfAllowOnlyBoolean');
|
13 |
$highSensitivityOptions = array_filter(wfScanner::highSensitivityScanTypeOptions(), '_wfAllowOnlyBoolean');
|
14 |
?>
|
15 |
-
<ul class="wf-scan-type-controls">
|
16 |
<li class="wf-scan-type-selector wf-overflow-x-auto-xs">
|
17 |
<ul class="wf-scan-type" data-option-name="scanType" data-original-value="<?php echo esc_attr($scanner->scanType()); ?>">
|
18 |
<li>
|
12 |
$standardOptions = array_filter(wfScanner::standardScanTypeOptions(), '_wfAllowOnlyBoolean');
|
13 |
$highSensitivityOptions = array_filter(wfScanner::highSensitivityScanTypeOptions(), '_wfAllowOnlyBoolean');
|
14 |
?>
|
15 |
+
<ul id="wf-option-scanType" class="wf-scan-type-controls">
|
16 |
<li class="wf-scan-type-selector wf-overflow-x-auto-xs">
|
17 |
<ul class="wf-scan-type" data-option-name="scanType" data-original-value="<?php echo esc_attr($scanner->scanType()); ?>">
|
18 |
<li>
|
views/tools/options-group-2fa.php
ADDED
@@ -0,0 +1,73 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
if (!defined('WORDFENCE_VERSION')) { exit; }
|
3 |
+
/**
|
4 |
+
* Presents the Two Factor Authentication Options group.
|
5 |
+
*
|
6 |
+
* Expects $stateKey.
|
7 |
+
*
|
8 |
+
* @var string $stateKey The key under which the collapse state is stored.
|
9 |
+
* @var bool $collapseable If defined, specifies whether or not this grouping can be collapsed. Defaults to true.
|
10 |
+
*/
|
11 |
+
|
12 |
+
if (!isset($collapseable)) {
|
13 |
+
$collapseable = true;
|
14 |
+
}
|
15 |
+
|
16 |
+
$helpLink = wfSupportController::supportURL(wfSupportController::ITEM_TOOLS_TWO_FACTOR);
|
17 |
+
?>
|
18 |
+
<div class="wf-row">
|
19 |
+
<div class="wf-col-xs-12">
|
20 |
+
<div class="wf-block<?php if (!$collapseable) { echo ' wf-always-active'; } else { echo (wfPersistenceController::shared()->isActive($stateKey) ? ' wf-active' : ''); } ?>" data-persistence-key="<?php echo esc_attr($stateKey); ?>">
|
21 |
+
<div class="wf-block-header">
|
22 |
+
<div class="wf-block-header-content">
|
23 |
+
<div class="wf-block-title">
|
24 |
+
<strong><?php _e('Two Factor Authentication Options', 'wordfence') ?></strong>
|
25 |
+
</div>
|
26 |
+
<?php if ($collapseable): ?><div class="wf-block-header-action"><div class="wf-block-header-action-disclosure"></div></div><?php endif; ?>
|
27 |
+
</div>
|
28 |
+
</div>
|
29 |
+
<div class="wf-block-content">
|
30 |
+
<?php if (!wfConfig::get('isPaid')): ?>
|
31 |
+
<h3><?php _e("Take Login Security to the next level with Two Factor Authentication", 'wordfence') ?></h3>
|
32 |
+
<p><?php _e('Used by banks, government agencies, and military worldwide, two factor authentication is one of the most secure forms of remote system authentication available. With it enabled, an attacker needs to know your username, password, <em>and</em> have control of your phone to log into your site. Upgrade to Premium now to enable this powerful feature.', 'wordfence') ?></p>
|
33 |
+
|
34 |
+
<p class="wf-nowrap wf-center">
|
35 |
+
<img id="wf-two-factor-img1" src="<?php echo wfUtils::getBaseURL() . 'images/2fa1.svg' ?>" alt="">
|
36 |
+
<img id="wf-two-factor-img2" src="<?php echo wfUtils::getBaseURL() . 'images/2fa2.svg' ?>" alt="">
|
37 |
+
</p>
|
38 |
+
|
39 |
+
<p class="wf-center wf-padding-add-bottom">
|
40 |
+
<a class="wf-btn wf-btn-primary wf-btn-callout" href="https://www.wordfence.com/gnl1twoFac1/wordfence-signup/" target="_blank" rel="noopener noreferrer"><?php _e('Upgrade to Premium', 'wordfence') ?></a>
|
41 |
+
</p>
|
42 |
+
<?php else: ?>
|
43 |
+
<ul class="wf-block-list">
|
44 |
+
<li>
|
45 |
+
<?php
|
46 |
+
echo wfView::create('options/option-toggled', array(
|
47 |
+
'optionName' => 'loginSec_requireAdminTwoFactor',
|
48 |
+
'enabledValue' => 1,
|
49 |
+
'disabledValue' => 0,
|
50 |
+
'value' => wfConfig::get('loginSec_requireAdminTwoFactor') ? 1 : 0,
|
51 |
+
'htmlTitle' => sprintf(__('<strong>Require Cellphone Sign-in for all Administrators<a href="%s" target="_blank" rel="noopener noreferrer" class="wfhelp wf-inline-help"></a></strong><br><em>Note:</em> This setting requires at least one administrator to have Cellphone Sign-in enabled. On multisite, this option applies only to super admins.', 'wordfence'), esc_url($helpLink)),
|
52 |
+
))->render();
|
53 |
+
?>
|
54 |
+
</li>
|
55 |
+
<li>
|
56 |
+
<?php
|
57 |
+
$allowSeparatePrompt = ini_get('output_buffering') > 0;
|
58 |
+
echo wfView::create('options/option-toggled', array(
|
59 |
+
'optionName' => 'loginSec_enableSeparateTwoFactor',
|
60 |
+
'enabledValue' => 1,
|
61 |
+
'disabledValue' => 0,
|
62 |
+
'value' => wfConfig::get('loginSec_enableSeparateTwoFactor') ? 1 : 0,
|
63 |
+
'htmlTitle' => sprintf(__('<strong>Enable Separate Prompt for Two Factor Code<a href="%s" target="_blank" rel="noopener noreferrer" class="wfhelp wf-inline-help"></a></strong><br><em>Note:</em> This setting changes the behavior for obtaining the two factor authentication code from using the password field to showing a separate prompt. If your theme overrides the default login page, you may not be able to use this option.', 'wordfence'), $helpLink) .
|
64 |
+
($allowSeparatePrompt ? '' : __('<br><strong>This setting will be ignored because the PHP configuration option <code>output_buffering</code> is off.</strong>', 'wordfence')),
|
65 |
+
))->render();
|
66 |
+
?>
|
67 |
+
</li>
|
68 |
+
</ul>
|
69 |
+
<?php endif; ?>
|
70 |
+
</div>
|
71 |
+
</div>
|
72 |
+
</div>
|
73 |
+
</div>
|
views/tools/options-group-comment-spam.php
ADDED
@@ -0,0 +1,94 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
if (!defined('WORDFENCE_VERSION')) { exit; }
|
3 |
+
/**
|
4 |
+
* Presents the Comment Spam Filter Options group.
|
5 |
+
*
|
6 |
+
* Expects $stateKey.
|
7 |
+
*
|
8 |
+
* @var string $stateKey The key under which the collapse state is stored.
|
9 |
+
* @var bool $collapseable If defined, specifies whether or not this grouping can be collapsed. Defaults to true.
|
10 |
+
*/
|
11 |
+
|
12 |
+
if (!isset($collapseable)) {
|
13 |
+
$collapseable = true;
|
14 |
+
}
|
15 |
+
?>
|
16 |
+
<div class="wf-row">
|
17 |
+
<div class="wf-col-xs-12">
|
18 |
+
<div class="wf-dashboard-item active">
|
19 |
+
<div class="wf-dashboard-item-extra">
|
20 |
+
<ul class="wf-dashboard-item-list">
|
21 |
+
<li>
|
22 |
+
<ul class="wf-dashboard-item-list wf-dashboard-item-list-horizontal">
|
23 |
+
<li>
|
24 |
+
<strong><?php _e('Comment Spam Filter Options', 'wordfence') ?></strong>
|
25 |
+
</li>
|
26 |
+
<li>
|
27 |
+
<strong><?php _e('Advanced Comment Spam Filter Options', 'wordfence') ?>
|
28 |
+
<?php if (!wfConfig::p()): ?>
|
29 |
+
<a href="https://www.wordfence.com/gnl1optionUpgrade/wordfence-signup/" target="_blank" rel="noopener noreferrer" class="wf-premium-link"><?php _e('Premium Feature', 'wordfence') ?></a>
|
30 |
+
<?php endif ?>
|
31 |
+
</strong>
|
32 |
+
</li>
|
33 |
+
</ul>
|
34 |
+
</li>
|
35 |
+
</ul>
|
36 |
+
<ul class="wf-dashboard-item-list">
|
37 |
+
<li>
|
38 |
+
<ul class="wf-dashboard-item-list wf-dashboard-item-list-horizontal">
|
39 |
+
<li>
|
40 |
+
<div>
|
41 |
+
<?php
|
42 |
+
echo wfView::create('options/option-toggled-segmented', array(
|
43 |
+
'optionName' => 'other_noAnonMemberComments',
|
44 |
+
'helpLink' => wfSupportController::supportURL(wfSupportController::ITEM_TOOLS_COMMENT_SPAM_OPTION_HOLD_ANONYMOUS),
|
45 |
+
'enabledValue' => 1,
|
46 |
+
'disabledValue' => 0,
|
47 |
+
'value' => wfConfig::get('other_noAnonMemberComments') ? 1 : 0,
|
48 |
+
'htmlTitle' => __(<<<HTML
|
49 |
+
<strong>Hold anonymous comments using member emails for moderation</strong><br>Blocks when the comment is posted without being logged in, but provides an email address for the registered user.
|
50 |
+
HTML
|
51 |
+
, 'wordfence'),
|
52 |
+
))->render();
|
53 |
+
?>
|
54 |
+
<?php
|
55 |
+
echo wfView::create('options/option-toggled-segmented', array(
|
56 |
+
'optionName' => 'other_scanComments',
|
57 |
+
'helpLink' => wfSupportController::supportURL(wfSupportController::ITEM_TOOLS_COMMENT_SPAM_OPTION_SCAN),
|
58 |
+
'enabledValue' => 1,
|
59 |
+
'disabledValue' => 0,
|
60 |
+
'value' => wfConfig::get('other_scanComments') ? 1 : 0,
|
61 |
+
'htmlTitle' => __(<<<HTML
|
62 |
+
<strong>Filter comments for malware and phishing URLs</strong><br>Blocks when a comment contains a URL on a domain blacklist.
|
63 |
+
HTML
|
64 |
+
, 'wordfence'),
|
65 |
+
))->render();
|
66 |
+
?>
|
67 |
+
</div>
|
68 |
+
</li>
|
69 |
+
<li>
|
70 |
+
<div id="wfAdvancedCommentScanningOption" style="align-self:flex-start">
|
71 |
+
<?php
|
72 |
+
echo wfView::create('options/option-toggled-segmented', array(
|
73 |
+
'optionName' => 'advancedCommentScanning',
|
74 |
+
'helpLink' => wfSupportController::supportURL(wfSupportController::ITEM_TOOLS_COMMENT_SPAM_OPTION_ADVANCED),
|
75 |
+
'premium' => !wfConfig::p(),
|
76 |
+
'enabledValue' => 1,
|
77 |
+
'disabledValue' => 0,
|
78 |
+
'value' => wfConfig::get('advancedCommentScanning') ? 1 : 0,
|
79 |
+
'htmlTitle' => __(<<<HTML
|
80 |
+
<strong>Advanced Comment Spam Filter</strong><br>In addtion to free comment filtering, this option filters comments against several additional real-time lists of known spammers and infected hosts.
|
81 |
+
HTML
|
82 |
+
, 'wordfence'),
|
83 |
+
|
84 |
+
))->render();
|
85 |
+
?>
|
86 |
+
</div>
|
87 |
+
</li>
|
88 |
+
</ul>
|
89 |
+
</li>
|
90 |
+
</ul>
|
91 |
+
</div>
|
92 |
+
</div>
|
93 |
+
</div>
|
94 |
+
</div>
|
views/tools/options-group-live-traffic.php
ADDED
@@ -0,0 +1,135 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
if (!defined('WORDFENCE_VERSION')) { exit; }
|
3 |
+
/**
|
4 |
+
* Presents the Live Traffic Options group.
|
5 |
+
*
|
6 |
+
* Expects $stateKey.
|
7 |
+
*
|
8 |
+
* @var string $stateKey The key under which the collapse state is stored.
|
9 |
+
* @var bool $collapseable If defined, specifies whether or not this grouping can be collapsed. Defaults to true.
|
10 |
+
* @var bool $showControls If defined, specifies whether or not the save/cancel/restore controls are shown. Defaults to false.
|
11 |
+
* @var bool $hideShowMenuItem If defined, specifies whether or not the show menu item option is shown. Defaults to false.
|
12 |
+
*/
|
13 |
+
|
14 |
+
if (!isset($collapseable)) {
|
15 |
+
$collapseable = true;
|
16 |
+
}
|
17 |
+
|
18 |
+
if (!isset($showControls)) {
|
19 |
+
$showControls = false;
|
20 |
+
}
|
21 |
+
|
22 |
+
if (!isset($hideShowMenuItem)) {
|
23 |
+
$hideShowMenuItem = false;
|
24 |
+
}
|
25 |
+
?>
|
26 |
+
<div id="wf-live-traffic-options" class="wf-row">
|
27 |
+
<div class="wf-col-xs-12">
|
28 |
+
<div class="wf-block<?php if (!$collapseable) { echo ' wf-always-active'; } else { echo (wfPersistenceController::shared()->isActive($stateKey) ? ' wf-active' : ''); } ?>" data-persistence-key="<?php echo esc_attr($stateKey); ?>">
|
29 |
+
<div class="wf-block-header">
|
30 |
+
<div class="wf-block-header-content">
|
31 |
+
<div class="wf-block-title">
|
32 |
+
<strong><?php _e('Live Traffic Options', 'wordfence'); ?></strong>
|
33 |
+
</div>
|
34 |
+
<?php if ($collapseable): ?><div class="wf-block-header-action"><div class="wf-block-header-action-disclosure"></div></div><?php endif; ?>
|
35 |
+
</div>
|
36 |
+
</div>
|
37 |
+
<div class="wf-block-content wf-clearfix">
|
38 |
+
<?php if ($showControls): ?>
|
39 |
+
<p>
|
40 |
+
<?php _e('These options let you ignore certain types of visitors, based on their level of access, usernames, IP address or browser type. If you run a very high traffic website where it is not feasible to see your visitors in real-time, simply un-check the live traffic option and nothing will be written to the Wordfence tracking tables.', 'wordfence') ?>
|
41 |
+
</p>
|
42 |
+
|
43 |
+
<div class="wf-row">
|
44 |
+
<div class="wf-col-xs-12">
|
45 |
+
<?php
|
46 |
+
echo wfView::create('options/block-controls', array(
|
47 |
+
'suppressLogo' => true,
|
48 |
+
'restoreDefaultsSection' => wfConfig::OPTIONS_TYPE_LIVE_TRAFFIC,
|
49 |
+
'restoreDefaultsMessage' => __('Are you sure you want to restore the default Live Traffic settings? This will undo any custom changes you have made to the options on this page.', 'wordfence'),
|
50 |
+
))->render();
|
51 |
+
?>
|
52 |
+
</div>
|
53 |
+
</div>
|
54 |
+
<?php endif; ?>
|
55 |
+
<ul class="wf-block-list">
|
56 |
+
<li>
|
57 |
+
<?php
|
58 |
+
echo wfView::create('options/option-switch', array(
|
59 |
+
'optionName' => 'liveTrafficEnabled',
|
60 |
+
'value' => wfConfig::get('liveTrafficEnabled') ? '1': '0',
|
61 |
+
'title' => __('Enable live traffic logging', 'wordfence'),
|
62 |
+
'states' => array(
|
63 |
+
array('value' => '0', 'label' => __('Off', 'wordfence')),
|
64 |
+
array('value' => '1', 'label' => __('On', 'wordfence')),
|
65 |
+
),
|
66 |
+
'helpLink' => wfSupportController::supportURL(wfSupportController::ITEM_TOOLS_LIVE_TRAFFIC_OPTION_ENABLE),
|
67 |
+
'alignment' => 'wf-right',
|
68 |
+
))->render();
|
69 |
+
?>
|
70 |
+
</li>
|
71 |
+
<li>
|
72 |
+
<?php
|
73 |
+
echo wfView::create('options/option-toggled', array(
|
74 |
+
'optionName' => 'liveTraf_ignorePublishers',
|
75 |
+
'enabledValue' => 1,
|
76 |
+
'disabledValue' => 0,
|
77 |
+
'value' => wfConfig::get('liveTraf_ignorePublishers') ? 1 : 0,
|
78 |
+
'title' => __("Don't log signed-in users with publishing access.", 'wordfence'),
|
79 |
+
))->render();
|
80 |
+
?>
|
81 |
+
</li>
|
82 |
+
<li>
|
83 |
+
<?php
|
84 |
+
echo wfView::create('options/option-text', array(
|
85 |
+
'textOptionName' => 'liveTraf_ignoreUsers',
|
86 |
+
'textValue' => wfConfig::get('liveTraf_ignoreUsers'),
|
87 |
+
'title' => __('List of comma separated usernames to ignore.', 'wordfence'),
|
88 |
+
))->render();
|
89 |
+
?>
|
90 |
+
</li>
|
91 |
+
<li>
|
92 |
+
<?php
|
93 |
+
echo wfView::create('options/option-text', array(
|
94 |
+
'textOptionName' => 'liveTraf_ignoreIPs',
|
95 |
+
'textValue' => wfConfig::get('liveTraf_ignoreIPs'),
|
96 |
+
'title' => __('List of comma separated IP addresses to ignore.', 'wordfence'),
|
97 |
+
))->render();
|
98 |
+
?>
|
99 |
+
</li>
|
100 |
+
<li>
|
101 |
+
<?php
|
102 |
+
echo wfView::create('options/option-text', array(
|
103 |
+
'textOptionName' => 'liveTraf_ignoreUA',
|
104 |
+
'textValue' => wfConfig::get('liveTraf_ignoreUA'),
|
105 |
+
'title' => __('Browser user-agent to ignore.', 'wordfence'),
|
106 |
+
))->render();
|
107 |
+
?>
|
108 |
+
</li>
|
109 |
+
<li>
|
110 |
+
<?php
|
111 |
+
echo wfView::create('options/option-text', array(
|
112 |
+
'textOptionName' => 'liveTraf_maxRows',
|
113 |
+
'textValue' => wfConfig::get('liveTraf_maxRows'),
|
114 |
+
'title' => __('Amount of Live Traffic data to store (number of rows).', 'wordfence'),
|
115 |
+
))->render();
|
116 |
+
?>
|
117 |
+
</li>
|
118 |
+
<?php if (!$hideShowMenuItem): ?>
|
119 |
+
<li>
|
120 |
+
<?php
|
121 |
+
echo wfView::create('options/option-toggled', array(
|
122 |
+
'optionName' => 'displayTopLevelLiveTraffic',
|
123 |
+
'enabledValue' => 1,
|
124 |
+
'disabledValue' => 0,
|
125 |
+
'value' => wfConfig::get('displayTopLevelLiveTraffic') ? 1 : 0,
|
126 |
+
'title' => __('Display Live Traffic menu option', 'wordfence'),
|
127 |
+
))->render();
|
128 |
+
?>
|
129 |
+
</li>
|
130 |
+
<?php endif; ?>
|
131 |
+
</ul>
|
132 |
+
</div>
|
133 |
+
</div>
|
134 |
+
</div>
|
135 |
+
</div>
|
views/waf/option-rate-limit.php
CHANGED
@@ -15,6 +15,9 @@ if (!defined('WORDFENCE_VERSION')) { exit; }
|
|
15 |
* @var string $helpLink If defined, the link to the corresponding external help page.
|
16 |
* @var bool $premium If defined, the option will be tagged as premium only and not allow its value to change for free users.
|
17 |
*/
|
|
|
|
|
|
|
18 |
?>
|
19 |
<ul class="wf-option wf-option-rate-limit<?php if (!wfConfig::p() && isset($premium) && $premium) { echo ' wf-option-premium'; } ?>" data-rate-option="<?php echo esc_attr($rateOptionName); ?>" data-original-rate-value="<?php echo esc_attr($rateValue); ?>" data-action-option="<?php echo esc_attr($actionOptionName); ?>" data-original-action-value="<?php echo esc_attr($actionValue); ?>">
|
20 |
<li class="wf-option-spacer"></li>
|
@@ -22,13 +25,13 @@ if (!defined('WORDFENCE_VERSION')) { exit; }
|
|
22 |
<ul>
|
23 |
<li class="wf-option-title"><?php echo esc_html($title); ?><?php if (!wfConfig::p() && isset($premium) && $premium) { echo ' <a href="https://www.wordfence.com/gnl1optionUpgrade/wordfence-signup/" target="_blank" rel="noopener noreferrer" class="wf-premium-link">' . __('Premium Feature', 'wordfence') . '</a>'; } ?><?php if (isset($helpLink)) { echo ' <a href="' . esc_attr($helpLink) . '" target="_blank" rel="noopener noreferrer" class="wf-inline-help"><i class="wf-fa wf-fa-question-circle-o" aria-hidden="true"></i></a>'; } ?></li>
|
24 |
<li class="wf-option-select wf-left-xs wf-padding-add-top-xs-small wf-nowrap">
|
25 |
-
<select<?php echo (!(!wfConfig::p() && isset($premium) && $premium) ? '' : ' disabled'); ?> class="wf-rate-limit-rate">
|
26 |
<?php foreach ($rateOptions as $o): ?>
|
27 |
<option class="wf-option-select-option" value="<?php echo esc_attr($o['value']); ?>"<?php if ($o['value'] == $rateValue) { echo ' selected'; } ?>><?php echo esc_html($o['label']); ?></option>
|
28 |
<?php endforeach; ?>
|
29 |
</select>
|
30 |
<span class="wf-padding-add-left-small wf-padding-add-right-small wf-padding-add-top-xs-small wf-padding-add-bottom-xs-small wf-inline-block-xs"><?php _e('then', 'wordfence'); ?></span>
|
31 |
-
<select<?php echo (!(!wfConfig::p() && isset($premium) && $premium) ? '' : ' disabled'); ?> class="wf-rate-limit-action">
|
32 |
<?php foreach ($actionOptions as $o): ?>
|
33 |
<option class="wf-option-select-option" value="<?php echo esc_attr($o['value']); ?>"<?php if ($o['value'] == $actionValue) { echo ' selected'; } ?>><?php echo esc_html($o['label']); ?></option>
|
34 |
<?php endforeach; ?>
|
15 |
* @var string $helpLink If defined, the link to the corresponding external help page.
|
16 |
* @var bool $premium If defined, the option will be tagged as premium only and not allow its value to change for free users.
|
17 |
*/
|
18 |
+
|
19 |
+
$rateID = 'wf-option-' . preg_replace('/[^a-z0-9]/i', '-', $rateOptionName);
|
20 |
+
$actionID = 'wf-option-' . preg_replace('/[^a-z0-9]/i', '-', $actionOptionName);
|
21 |
?>
|
22 |
<ul class="wf-option wf-option-rate-limit<?php if (!wfConfig::p() && isset($premium) && $premium) { echo ' wf-option-premium'; } ?>" data-rate-option="<?php echo esc_attr($rateOptionName); ?>" data-original-rate-value="<?php echo esc_attr($rateValue); ?>" data-action-option="<?php echo esc_attr($actionOptionName); ?>" data-original-action-value="<?php echo esc_attr($actionValue); ?>">
|
23 |
<li class="wf-option-spacer"></li>
|
25 |
<ul>
|
26 |
<li class="wf-option-title"><?php echo esc_html($title); ?><?php if (!wfConfig::p() && isset($premium) && $premium) { echo ' <a href="https://www.wordfence.com/gnl1optionUpgrade/wordfence-signup/" target="_blank" rel="noopener noreferrer" class="wf-premium-link">' . __('Premium Feature', 'wordfence') . '</a>'; } ?><?php if (isset($helpLink)) { echo ' <a href="' . esc_attr($helpLink) . '" target="_blank" rel="noopener noreferrer" class="wf-inline-help"><i class="wf-fa wf-fa-question-circle-o" aria-hidden="true"></i></a>'; } ?></li>
|
27 |
<li class="wf-option-select wf-left-xs wf-padding-add-top-xs-small wf-nowrap">
|
28 |
+
<select<?php echo (!(!wfConfig::p() && isset($premium) && $premium) ? '' : ' disabled'); ?> id="<?php echo esc_attr($rateID); ?>" class="wf-rate-limit-rate">
|
29 |
<?php foreach ($rateOptions as $o): ?>
|
30 |
<option class="wf-option-select-option" value="<?php echo esc_attr($o['value']); ?>"<?php if ($o['value'] == $rateValue) { echo ' selected'; } ?>><?php echo esc_html($o['label']); ?></option>
|
31 |
<?php endforeach; ?>
|
32 |
</select>
|
33 |
<span class="wf-padding-add-left-small wf-padding-add-right-small wf-padding-add-top-xs-small wf-padding-add-bottom-xs-small wf-inline-block-xs"><?php _e('then', 'wordfence'); ?></span>
|
34 |
+
<select<?php echo (!(!wfConfig::p() && isset($premium) && $premium) ? '' : ' disabled'); ?> id="<?php echo esc_attr($actionID); ?>" class="wf-rate-limit-action">
|
35 |
<?php foreach ($actionOptions as $o): ?>
|
36 |
<option class="wf-option-select-option" value="<?php echo esc_attr($o['value']); ?>"<?php if ($o['value'] == $actionValue) { echo ' selected'; } ?>><?php echo esc_html($o['label']); ?></option>
|
37 |
<?php endforeach; ?>
|
views/waf/option-rules.php
CHANGED
@@ -1,7 +1,7 @@
|
|
1 |
<?php
|
2 |
if (!defined('WORDFENCE_VERSION')) { exit; }
|
3 |
?>
|
4 |
-
<ul class="wf-option wf-flex-vertical wf-flex-align-left">
|
5 |
<li class="wf-option-title"><strong>Rules</strong> <a href="<?php echo wfSupportController::esc_supportURL(wfSupportController::ITEM_FIREWALL_WAF_RULES); ?>" target="_blank" rel="noopener noreferrer" class="wf-inline-help"><i class="wf-fa wf-fa-question-circle-o" aria-hidden="true"></i></a></li>
|
6 |
<li class="wf-option-subtitle"><?php echo ($firewall->isSubDirectoryInstallation() ? __('You are currently running the WAF from another WordPress installation. These rules can be disabled or enabled once you configure the firewall to run correctly on this site.', 'wordfence') : ''); ?></li>
|
7 |
<li id="waf-rules-wrapper" class="wf-add-top"></li>
|
1 |
<?php
|
2 |
if (!defined('WORDFENCE_VERSION')) { exit; }
|
3 |
?>
|
4 |
+
<ul id="wf-option-wafRules" class="wf-option wf-flex-vertical wf-flex-align-left">
|
5 |
<li class="wf-option-title"><strong>Rules</strong> <a href="<?php echo wfSupportController::esc_supportURL(wfSupportController::ITEM_FIREWALL_WAF_RULES); ?>" target="_blank" rel="noopener noreferrer" class="wf-inline-help"><i class="wf-fa wf-fa-question-circle-o" aria-hidden="true"></i></a></li>
|
6 |
<li class="wf-option-subtitle"><?php echo ($firewall->isSubDirectoryInstallation() ? __('You are currently running the WAF from another WordPress installation. These rules can be disabled or enabled once you configure the firewall to run correctly on this site.', 'wordfence') : ''); ?></li>
|
7 |
<li id="waf-rules-wrapper" class="wf-add-top"></li>
|
views/waf/option-whitelist.php
CHANGED
@@ -1,7 +1,7 @@
|
|
1 |
<?php
|
2 |
if (!defined('WORDFENCE_VERSION')) { exit; }
|
3 |
?>
|
4 |
-
<ul class="wf-option wf-flex-vertical wf-flex-full-width">
|
5 |
<li><strong>Add Whitelisted URL/Param</strong> <a href="<?php echo wfSupportController::esc_supportURL(wfSupportController::ITEM_FIREWALL_WAF_WHITELIST); ?>" target="_blank" rel="noopener noreferrer" class="wf-inline-help"><i class="wf-fa wf-fa-question-circle-o" aria-hidden="true"></i></a> The URL/parameters in this table will not be tested by the firewall. They are typically added while the firewall is in Learning Mode or by an admin who identifies a particular action/request is a false positive.</li>
|
6 |
<li id="whitelist-form">
|
7 |
<div class="wf-form-inline">
|
1 |
<?php
|
2 |
if (!defined('WORDFENCE_VERSION')) { exit; }
|
3 |
?>
|
4 |
+
<ul id="wf-option-wafWhitelist" class="wf-option wf-flex-vertical wf-flex-full-width">
|
5 |
<li><strong>Add Whitelisted URL/Param</strong> <a href="<?php echo wfSupportController::esc_supportURL(wfSupportController::ITEM_FIREWALL_WAF_WHITELIST); ?>" target="_blank" rel="noopener noreferrer" class="wf-inline-help"><i class="wf-fa wf-fa-question-circle-o" aria-hidden="true"></i></a> The URL/parameters in this table will not be tested by the firewall. They are typically added while the firewall is in Learning Mode or by an admin who identifies a particular action/request is a false positive.</li>
|
6 |
<li id="whitelist-form">
|
7 |
<div class="wf-form-inline">
|
views/waf/options-group-advanced-firewall.php
ADDED
@@ -0,0 +1,178 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
if (!defined('WORDFENCE_VERSION')) { exit; }
|
3 |
+
/**
|
4 |
+
* Presents the Advanced Firewall Options group.
|
5 |
+
*
|
6 |
+
* Expects $firewall, $waf, and $stateKey.
|
7 |
+
*
|
8 |
+
* @var wfFirewall $firewall
|
9 |
+
* @var wfWAF $waf
|
10 |
+
* @var string $stateKey The key under which the collapse state is stored.
|
11 |
+
* @var bool $collapseable If defined, specifies whether or not this grouping can be collapsed. Defaults to true.
|
12 |
+
*/
|
13 |
+
|
14 |
+
$config = $waf->getStorageEngine();
|
15 |
+
|
16 |
+
if (!isset($collapseable)) {
|
17 |
+
$collapseable = true;
|
18 |
+
}
|
19 |
+
?>
|
20 |
+
<div class="wf-row">
|
21 |
+
<div class="wf-col-xs-12">
|
22 |
+
<div class="wf-block<?php if (!$collapseable) { echo ' wf-always-active'; } else { echo (wfPersistenceController::shared()->isActive($stateKey) ? ' wf-active' : ''); } ?>" data-persistence-key="<?php echo esc_attr($stateKey); ?>">
|
23 |
+
<div class="wf-block-header">
|
24 |
+
<div class="wf-block-header-content">
|
25 |
+
<div class="wf-block-title">
|
26 |
+
<strong><?php _e('Advanced Firewall Options', 'wordfence'); ?></strong>
|
27 |
+
</div>
|
28 |
+
<?php if ($collapseable): ?><div class="wf-block-header-action"><div class="wf-block-header-action-disclosure"></div></div><?php endif; ?>
|
29 |
+
</div>
|
30 |
+
</div>
|
31 |
+
<div class="wf-block-content">
|
32 |
+
<ul class="wf-block-list">
|
33 |
+
<li>
|
34 |
+
<?php
|
35 |
+
echo wfView::create('options/option-toggled', array(
|
36 |
+
'optionName' => 'disableWAFIPBlocking',
|
37 |
+
'enabledValue' => 1,
|
38 |
+
'disabledValue' => 0,
|
39 |
+
'value' => $config->getConfig('disableWAFIPBlocking') ? 1 : 0,
|
40 |
+
'title' => __('Delay IP and Country blocking until after WordPress and plugins have loaded (only process firewall rules early)', 'wordfence'),
|
41 |
+
'subtitle' => ($firewall->isSubDirectoryInstallation() ? __('You are currently running the WAF from another WordPress installation. This option can be changed once you configure the firewall to run correctly on this site.', 'wordfence') : ''),
|
42 |
+
'helpLink' => wfSupportController::supportURL(wfSupportController::ITEM_FIREWALL_WAF_OPTION_DELAY_BLOCKING),
|
43 |
+
'disabled' => $firewall->isSubDirectoryInstallation(),
|
44 |
+
))->render();
|
45 |
+
?>
|
46 |
+
</li>
|
47 |
+
<li>
|
48 |
+
<?php
|
49 |
+
echo wfView::create('options/option-textarea', array(
|
50 |
+
'textOptionName' => 'whitelisted',
|
51 |
+
'textValue' => wfUtils::cleanupOneEntryPerLine(wfConfig::get('whitelisted')),
|
52 |
+
'title' => __('Whitelisted IP addresses that bypass all rules', 'wordfence'),
|
53 |
+
'subtitleHTML' => __('Whitelisted IPs must be separated by commas or placed on separate lines. You can specify ranges using the following formats: 127.0.0.1/24, 127.0.0.[1-100], or 127.0.0.1 - 127.0.1.100<br/>Wordfence automatically whitelists <a href="http://en.wikipedia.org/wiki/Private_network" target="_blank" rel="noopener noreferrer">private networks</a> because these are not routable on the public Internet.', 'wordfence'),
|
54 |
+
'helpLink' => wfSupportController::supportURL(wfSupportController::ITEM_FIREWALL_WAF_OPTION_WHITELISTED_IPS),
|
55 |
+
))->render();
|
56 |
+
?>
|
57 |
+
</li>
|
58 |
+
<li>
|
59 |
+
<?php
|
60 |
+
echo wfView::create('options/option-textarea', array(
|
61 |
+
'textOptionName' => 'bannedURLs',
|
62 |
+
'textValue' => wfUtils::cleanupOneEntryPerLine(wfConfig::get('bannedURLs')),
|
63 |
+
'title' => __('Immediately block IPs that access these URLs', 'wordfence'),
|
64 |
+
'subtitle' => __('Separate multiple URLs with commas or place them on separate lines. Asterisks are wildcards, but use with care. If you see an attacker repeatedly probing your site for a known vulnerability you can use this to immediately block them. All URLs must start with a "/" without quotes and must be relative. e.g. /badURLone/, /bannedPage.html, /dont-access/this/URL/, /starts/with-*', 'wordfence'),
|
65 |
+
'helpLink' => wfSupportController::supportURL(wfSupportController::ITEM_FIREWALL_WAF_OPTION_IMMEDIATELY_BLOCK_URLS),
|
66 |
+
))->render();
|
67 |
+
?>
|
68 |
+
</li>
|
69 |
+
<li>
|
70 |
+
<?php
|
71 |
+
echo wfView::create('options/option-textarea', array(
|
72 |
+
'textOptionName' => 'wafAlertWhitelist',
|
73 |
+
'textValue' => wfUtils::cleanupOneEntryPerLine(wfConfig::get('wafAlertWhitelist')),
|
74 |
+
'title' => __('Ignored IP addresses for Wordfence Web Application Firewall alerting', 'wordfence'),
|
75 |
+
'subtitle' => __('Ignored IPs must be separated by commas or placed on separate lines. These addresses will be ignored from any alerts about increased attacks and can be used to ignore things like standalone website security scanners.', 'wordfence'),
|
76 |
+
'helpLink' => wfSupportController::supportURL(wfSupportController::ITEM_FIREWALL_WAF_IGNORED_ALERT_IPS),
|
77 |
+
))->render();
|
78 |
+
?>
|
79 |
+
</li>
|
80 |
+
<li>
|
81 |
+
<?php
|
82 |
+
echo wfView::create('waf/option-rules', array(
|
83 |
+
'firewall' => $firewall,
|
84 |
+
))->render();
|
85 |
+
?>
|
86 |
+
</li>
|
87 |
+
</ul>
|
88 |
+
</div>
|
89 |
+
</div>
|
90 |
+
</div>
|
91 |
+
</div> <!-- end advanced firewall options -->
|
92 |
+
<script type="text/x-jquery-template" id="waf-rules-tmpl">
|
93 |
+
<table class="wf-striped-table">
|
94 |
+
<thead>
|
95 |
+
<tr>
|
96 |
+
<th style="width: 5%"></th>
|
97 |
+
<th><?php _e('Category', 'wordfence'); ?></th>
|
98 |
+
<th><?php _e('Description', 'wordfence'); ?></th>
|
99 |
+
</tr>
|
100 |
+
</thead>
|
101 |
+
<tbody>
|
102 |
+
{{each(idx, rule) rules}}
|
103 |
+
<tr data-rule-id="${rule.ruleID}" data-original-value="{{if (!disabledRules[rule.ruleID])}}1{{else}}0{{/if}}">
|
104 |
+
<td style="text-align: center">
|
105 |
+
<div class="wf-rule-toggle wf-boolean-switch{{if (!disabledRules[rule.ruleID])}} wf-active{{/if}}<?php echo ($firewall->isSubDirectoryInstallation() ? ' wf-disabled' : ''); ?>"><a href="#" class="wf-boolean-switch-handle"></a></div>
|
106 |
+
</td>
|
107 |
+
<td>${rule.category}</td>
|
108 |
+
<td>${rule.description}</td>
|
109 |
+
</tr>
|
110 |
+
{{/each}}
|
111 |
+
{{if (rules.length == 0)}}
|
112 |
+
<tr>
|
113 |
+
<td colspan="4"><?php _e('No rules currently set.', 'wordfence'); ?> <?php if (!($firewall->protectionMode() == wfFirewall::PROTECTION_MODE_EXTENDED && $firewall->isSubDirectoryInstallation())) { _e('<a href="#" onclick="WFAD.wafUpdateRules();return false;">Click here</a> to pull down the latest from the Wordfence servers.', 'wordfence'); } ?>
|
114 |
+
</td>
|
115 |
+
</tr>
|
116 |
+
{{/if}}
|
117 |
+
</tbody>
|
118 |
+
<tfoot>
|
119 |
+
{{if (ruleCount >= 10)}}
|
120 |
+
<tr id="waf-show-all-rules">
|
121 |
+
<td class="wf-center" colspan="4"><a href="#" id="waf-show-all-rules-button"><?php _e('SHOW ALL RULES', 'wordfence'); ?></a></td>
|
122 |
+
</tr>
|
123 |
+
{{/if}}
|
124 |
+
</tfoot>
|
125 |
+
</table>
|
126 |
+
</script>
|
127 |
+
<script type="application/javascript">
|
128 |
+
(function($) {
|
129 |
+
$(window).on('wordfenceWAFConfigPageRender', function() {
|
130 |
+
delete WFAD.pendingChanges['wafRules'];
|
131 |
+
|
132 |
+
//Add event handler to rule checkboxes
|
133 |
+
$('.wf-rule-toggle.wf-boolean-switch').each(function() {
|
134 |
+
$(this).on('click', function(e) {
|
135 |
+
e.preventDefault();
|
136 |
+
e.stopPropagation();
|
137 |
+
|
138 |
+
$(this).find('.wf-boolean-switch-handle').trigger('click');
|
139 |
+
});
|
140 |
+
|
141 |
+
$(this).find('.wf-boolean-switch-handle').on('click', function(e) {
|
142 |
+
e.preventDefault();
|
143 |
+
e.stopPropagation();
|
144 |
+
|
145 |
+
var control = $(this).closest('.wf-boolean-switch');
|
146 |
+
var row = $(this).closest('tr');
|
147 |
+
var ruleID = row.data('ruleId');
|
148 |
+
var value = control.hasClass('wf-active') ? 1 : 0;
|
149 |
+
if (value) {
|
150 |
+
control.removeClass('wf-active');
|
151 |
+
value = 0;
|
152 |
+
}
|
153 |
+
else {
|
154 |
+
control.addClass('wf-active');
|
155 |
+
value = 1;
|
156 |
+
}
|
157 |
+
|
158 |
+
var originalValue = row.data('originalValue');
|
159 |
+
if (originalValue == value) {
|
160 |
+
delete WFAD.pendingChanges['wafRules'][ruleID];
|
161 |
+
if (Object.keys(WFAD.pendingChanges['wafRules']).length == 0) {
|
162 |
+
delete WFAD.pendingChanges['wafRules']
|
163 |
+
}
|
164 |
+
}
|
165 |
+
else {
|
166 |
+
if (!(WFAD.pendingChanges['wafRules'] instanceof Object)) {
|
167 |
+
WFAD.pendingChanges['wafRules'] = {};
|
168 |
+
}
|
169 |
+
WFAD.pendingChanges['wafRules'][ruleID] = value;
|
170 |
+
}
|
171 |
+
|
172 |
+
$(control).trigger('change', [false]);
|
173 |
+
WFAD.updatePendingChanges();
|
174 |
+
});
|
175 |
+
});
|
176 |
+
});
|
177 |
+
})(jQuery);
|
178 |
+
</script>
|
views/waf/options-group-basic-firewall.php
ADDED
@@ -0,0 +1,450 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
if (!defined('WORDFENCE_VERSION')) { exit; }
|
3 |
+
/**
|
4 |
+
* Presents the Basic Firewall Options group.
|
5 |
+
*
|
6 |
+
* Expects $firewall, $waf, and $stateKey.
|
7 |
+
*
|
8 |
+
* @var wfFirewall $firewall
|
9 |
+
* @var wfWAF $waf
|
10 |
+
* @var string $stateKey The key under which the collapse state is stored.
|
11 |
+
* @var bool $collapseable If defined, specifies whether or not this grouping can be collapsed. Defaults to true.
|
12 |
+
*/
|
13 |
+
|
14 |
+
$config = $waf->getStorageEngine();
|
15 |
+
|
16 |
+
if (!isset($collapseable)) {
|
17 |
+
$collapseable = true;
|
18 |
+
}
|
19 |
+
?>
|
20 |
+
<div class="wf-row">
|
21 |
+
<div class="wf-col-xs-12">
|
22 |
+
<div class="wf-block<?php if (!$collapseable) { echo ' wf-always-active'; } else { echo (wfPersistenceController::shared()->isActive($stateKey) ? ' wf-active' : ''); } ?>" data-persistence-key="<?php echo esc_attr($stateKey); ?>">
|
23 |
+
<div class="wf-block-header">
|
24 |
+
<div class="wf-block-header-content">
|
25 |
+
<div class="wf-block-title">
|
26 |
+
<strong><?php _e('Basic Firewall Options', 'wordfence'); ?></strong>
|
27 |
+
</div>
|
28 |
+
<?php if ($collapseable): ?><div class="wf-block-header-action"><div class="wf-block-header-action-disclosure"></div></div><?php endif; ?>
|
29 |
+
</div>
|
30 |
+
</div>
|
31 |
+
<div class="wf-block-content">
|
32 |
+
<ul class="wf-block-list wf-block-list-horizontal">
|
33 |
+
<li id="wf-option-wafStatus" class="wf-flex-vertical wf-flex-align-left wf-flex-full-width">
|
34 |
+
<h3><?php esc_html_e('Web Application Firewall Status', 'wordfence'); ?></h3>
|
35 |
+
<?php if ($firewall->isSubDirectoryInstallation()): ?>
|
36 |
+
<p class="wf-no-top"><?php printf(__('You are currently running the Wordfence Web Application Firewall from another WordPress installation. Please <a href="%s">click here</a> to configure the Firewall to run correctly on this site.', 'wordfence'), esc_attr(network_admin_url('admin.php?page=WordfenceWAF&subpage=waf_options#configureAutoPrepend'))); ?></p>
|
37 |
+
<?php else: ?>
|
38 |
+
<p class="wf-no-top">
|
39 |
+
<?php $wafStatus = $firewall->firewallMode(); ?>
|
40 |
+
<span id="wafStatus-enabled-description" class="wafStatus-description"<?php if ($wafStatus != wfFirewall::FIREWALL_MODE_ENABLED) { echo ' style="display: none;"'; } ?>><strong><?php _e('Enabled and Protecting:', 'wordfence'); ?></strong> <?php _e('In this mode, the Wordfence Web Application Firewall is actively blocking requests matching known attack patterns and is actively protecting your site from attackers.', 'wordfence'); ?></span>
|
41 |
+
<span id="wafStatus-learning-mode-description" class="wafStatus-description"<?php if ($wafStatus != wfFirewall::FIREWALL_MODE_LEARNING) { echo ' style="display: none;"'; } ?>><strong><?php _e('Learning Mode:', 'wordfence'); ?></strong> <?php printf(__('When you first install the Wordfence Web Application Firewall, it will be in learning mode. This allows Wordfence to learn about your site so that we can understand how to protect it and how to allow normal visitors through the firewall. We recommend you let Wordfence learn for a week before you enable the firewall. <a href="%s" target="_blank" rel="noopener noreferrer">Learn More</a>', 'wordfence'), wfSupportController::supportURL(wfSupportController::ITEM_FIREWALL_WAF_LEARNING_MODE)); ?></span>
|
42 |
+
<span id="wafStatus-disabled-description" class="wafStatus-description"<?php if ($wafStatus != wfFirewall::FIREWALL_MODE_DISABLED) { echo ' style="display: none;"'; } ?>><strong><?php _e('Disabled:', 'wordfence'); ?></strong> <?php _e('In this mode, the Wordfence Web Application Firewall is functionally turned off and does not run any of its rules or analyze the request in any way.', 'wordfence'); ?></span>
|
43 |
+
</p>
|
44 |
+
<p class="wf-no-top wf-add-bottom">
|
45 |
+
<select id="input-wafStatus" data-original-value="<?php echo esc_attr($wafStatus); ?>" name="wafStatus" class="wf-form-control"<?php echo !WFWAF_ENABLED ? ' disabled' : '' ?>>
|
46 |
+
<option<?php echo $wafStatus == wfFirewall::FIREWALL_MODE_ENABLED ? ' selected' : '' ?> class="wafStatus-enabled" value="enabled"><?php _e('Enabled and Protecting', 'wordfence'); ?></option>
|
47 |
+
<option<?php echo $wafStatus == wfFirewall::FIREWALL_MODE_LEARNING ? ' selected' : '' ?> class="wafStatus-learning-mode" value="learning-mode"><?php _e('Learning Mode', 'wordfence'); ?></option>
|
48 |
+
<option<?php echo $wafStatus == wfFirewall::FIREWALL_MODE_DISABLED ? ' selected' : '' ?> class="wafStatus-disabled" value="disabled"><?php _e('Disabled', 'wordfence'); ?></option>
|
49 |
+
</select>
|
50 |
+
<script type="application/javascript">
|
51 |
+
(function($) {
|
52 |
+
$(function() {
|
53 |
+
$('#input-wafStatus').select2({
|
54 |
+
minimumResultsForSearch: -1,
|
55 |
+
width: '200px'
|
56 |
+
}).on('change', function() {
|
57 |
+
var select = $(this);
|
58 |
+
var value = select.val();
|
59 |
+
var container = $($(this).data('select2').$container);
|
60 |
+
container.removeClass('wafStatus-enabled wafStatus-learning-mode wafStatus-disabled')
|
61 |
+
.addClass('wafStatus-' + value);
|
62 |
+
|
63 |
+
$('.wafStatus-description').hide();
|
64 |
+
$('#wafStatus-' + value + '-description').show();
|
65 |
+
if (value == 'learning-mode') {
|
66 |
+
$('#waf-learning-mode-grace-period').show();
|
67 |
+
}
|
68 |
+
else {
|
69 |
+
$('#waf-learning-mode-grace-period').hide();
|
70 |
+
}
|
71 |
+
|
72 |
+
var originalValue = select.data('originalValue');
|
73 |
+
if (originalValue == value) {
|
74 |
+
delete WFAD.pendingChanges['wafStatus'];
|
75 |
+
}
|
76 |
+
else {
|
77 |
+
WFAD.pendingChanges['wafStatus'] = value;
|
78 |
+
}
|
79 |
+
|
80 |
+
WFAD.updatePendingChanges();
|
81 |
+
}).val(<?php echo json_encode($wafStatus) ?>).triggerHandler('change');
|
82 |
+
|
83 |
+
$('#waf-learning-mode-grace-period .wf-datetime').datetimepicker({
|
84 |
+
timeFormat: 'hh:mmtt z'
|
85 |
+
}).each(function() {
|
86 |
+
var el = $(this);
|
87 |
+
if (el.attr('data-value')) {
|
88 |
+
el.datetimepicker('setDate', new Date(el.attr('data-value') * 1000));
|
89 |
+
}
|
90 |
+
}).on('change', function() {
|
91 |
+
var value = Math.floor($(this).datetimepicker('getDate').getTime() / 1000);
|
92 |
+
var originalValue = $('#input-learningModeGracePeriod').data('originalValue');
|
93 |
+
if (originalValue == value) {
|
94 |
+
delete WFAD.pendingChanges['learningModeGracePeriod'];
|
95 |
+
}
|
96 |
+
else {
|
97 |
+
WFAD.pendingChanges['learningModeGracePeriod'] = $(this).val();
|
98 |
+
}
|
99 |
+
WFAD.updatePendingChanges();
|
100 |
+
});
|
101 |
+
|
102 |
+
$('#waf-learning-mode-grace-period .wf-option-checkbox').on('click', function(e) {
|
103 |
+
e.preventDefault();
|
104 |
+
e.stopPropagation();
|
105 |
+
|
106 |
+
var originalValue = $(this).data('originalValue');
|
107 |
+
var value = originalValue;
|
108 |
+
var isActive = $(this).hasClass('wf-checked');
|
109 |
+
if (isActive) {
|
110 |
+
$(this).removeClass('wf-checked');
|
111 |
+
$('#waf-learning-mode-grace-period .wf-datetime').attr('disabled', true);
|
112 |
+
value = 0;
|
113 |
+
}
|
114 |
+
else {
|
115 |
+
$(this).addClass('wf-checked');
|
116 |
+
$('#waf-learning-mode-grace-period .wf-datetime').attr('disabled', false);
|
117 |
+
value = 1;
|
118 |
+
|
119 |
+
if (!$('#input-learningModeGracePeriod').val()) {
|
120 |
+
var date = new Date();
|
121 |
+
date.setDate(date.getDate() + 7);
|
122 |
+
$('#input-learningModeGracePeriod').datetimepicker('setDate', date);
|
123 |
+
}
|
124 |
+
}
|
125 |
+
|
126 |
+
if (originalValue == value) {
|
127 |
+
delete WFAD.pendingChanges['learningModeGracePeriodEnabled'];
|
128 |
+
}
|
129 |
+
else {
|
130 |
+
WFAD.pendingChanges['learningModeGracePeriodEnabled'] = value;
|
131 |
+
}
|
132 |
+
|
133 |
+
WFAD.updatePendingChanges();
|
134 |
+
});
|
135 |
+
|
136 |
+
$(window).on('wfOptionsReset', function() {
|
137 |
+
$('#input-wafStatus').val($('#input-wafStatus').data('originalValue')).trigger('change');
|
138 |
+
$('#waf-learning-mode-grace-period .wf-option-checkbox').each(function() {
|
139 |
+
var originalValue = $(this).data('originalValue');
|
140 |
+
$(this).toggleClass('wf-checked', !!originalValue);
|
141 |
+
$('#waf-learning-mode-grace-period .wf-datetime').attr('disabled', !originalValue);
|
142 |
+
});
|
143 |
+
$('.wf-datetime').each(function() {
|
144 |
+
var el = $(this);
|
145 |
+
if (el.attr('data-value')) {
|
146 |
+
el.datetimepicker('setDate', new Date(el.attr('data-value') * 1000));
|
147 |
+
}
|
148 |
+
else {
|
149 |
+
el.val('');
|
150 |
+
}
|
151 |
+
})
|
152 |
+
});
|
153 |
+
});
|
154 |
+
})(jQuery);
|
155 |
+
</script>
|
156 |
+
</p>
|
157 |
+
<div id="waf-learning-mode-grace-period" class="wf-add-bottom" style="display: none;"><div class="waf-learning-mode wf-option-checkbox<?php echo $config->getConfig('learningModeGracePeriodEnabled') ? ' wf-checked' : ''; ?>" data-original-value="<?php echo $config->getConfig('learningModeGracePeriodEnabled') ? 1 : 0; ?>"><i class="wf-ion-ios-checkmark-empty" aria-hidden="true"></i></div><span> <?php _e('Automatically enable on', 'wordfence'); ?> </span><input type="text" name="learningModeGracePeriod" id="input-learningModeGracePeriod" class="wf-datetime wf-form-control" placeholder="Enabled until..." data-value="<?php echo esc_attr($config->getConfig('learningModeGracePeriod') ? (int) $config->getConfig('learningModeGracePeriod') : '') ?>" data-original-value="<?php echo esc_attr($config->getConfig('learningModeGracePeriod') ? (int) $config->getConfig('learningModeGracePeriod') : '') ?>"<?php echo $config->getConfig('learningModeGracePeriodEnabled') ? '' : ' disabled'; ?>></div>
|
158 |
+
<?php endif; ?>
|
159 |
+
</li>
|
160 |
+
<li id="wf-option-protectionMode" class="wf-flex-vertical wf-flex-align-left">
|
161 |
+
<h3><?php esc_html_e('Protection Level', 'wordfence'); ?></h3>
|
162 |
+
<?php if ($firewall->protectionMode() == wfFirewall::PROTECTION_MODE_EXTENDED && !$firewall->isSubDirectoryInstallation()): ?>
|
163 |
+
<p class="wf-no-top"><strong><?php _e('Extended Protection:', 'wordfence'); ?></strong> <?php _e('All PHP requests will be processed by the firewall prior to running.', 'wordfence'); ?></p>
|
164 |
+
<p><?php printf(__('If you\'re moving to a new host or a new installation location, you may need to temporarily disable extended protection to avoid any file not found errors. Use this action to remove the configuration changes that enable extended protection mode or you can <a href="%s" target="_blank" rel="noopener noreferrer">remove them manually</a>.', 'wordfence'), wfSupportController::esc_supportURL(wfSupportController::ITEM_FIREWALL_WAF_REMOVE_MANUALLY)); ?></p>
|
165 |
+
<p class="wf-no-top"><a class="wf-btn wf-btn-default" href="#" id="wf-waf-uninstall"><?php _e('Remove Extended Protection', 'wordfence'); ?></a></p>
|
166 |
+
<?php elseif ($firewall->isSubDirectoryInstallation()): ?>
|
167 |
+
<p class="wf-no-top"><strong><?php _e('Existing WAF Installation Detected:', 'wordfence'); ?></strong> <?php _e('You are currently running the Wordfence Web Application Firewall from another WordPress installation. Please configure the firewall to run correctly on this site.', 'wordfence'); ?></p>
|
168 |
+
<p><a class="wf-btn wf-btn-primary" href="#" id="wf-waf-install"><?php _e('Optimize the Wordfence Firewall', 'wordfence'); ?></a></p>
|
169 |
+
<?php else: ?>
|
170 |
+
<p class="wf-no-top"><strong><?php _e('Basic WordPress Protection:', 'wordfence'); ?></strong> <?php _e('The plugin will load as a regular plugin after WordPress has been loaded, and while it can block many malicious requests, some vulnerable plugins or WordPress itself may run vulnerable code before all plugins are loaded.', 'wordfence'); ?></p>
|
171 |
+
<p><a class="wf-btn wf-btn-primary" href="#" id="wf-waf-install"><?php _e('Optimize the Wordfence Firewall', 'wordfence'); ?></a></p>
|
172 |
+
<?php endif; ?>
|
173 |
+
<script type="application/javascript">
|
174 |
+
|
175 |
+
(function($) {
|
176 |
+
$(function() {
|
177 |
+
var validateContinue = function() {
|
178 |
+
var backupsAvailable = $('.wf-waf-backups:visible').data('backups');
|
179 |
+
var backupsDownloaded = $('#wf-waf-server-config').data('backups');
|
180 |
+
|
181 |
+
var matchCount = 0;
|
182 |
+
backupsAvailable = backupsAvailable.sort();
|
183 |
+
backupsDownloaded = backupsDownloaded.sort();
|
184 |
+
for (var i = 0; i < backupsAvailable.length; i++) {
|
185 |
+
for (var n = 0; n < backupsDownloaded.length; n++) {
|
186 |
+
if (backupsAvailable[i] == backupsDownloaded[n]) {
|
187 |
+
matchCount++;
|
188 |
+
}
|
189 |
+
}
|
190 |
+
}
|
191 |
+
|
192 |
+
$('#wf-waf-install-continue, #wf-waf-uninstall-continue').toggleClass('wf-disabled', matchCount != backupsAvailable.length);
|
193 |
+
};
|
194 |
+
|
195 |
+
var installUninstallResponseHandler = function(action, res) {
|
196 |
+
var modal = $('.wf-modal-title').closest('.wf-modal');
|
197 |
+
if (res.needsCredentials) {
|
198 |
+
var replacement = $(res.html);
|
199 |
+
modal.replaceWith(replacement);
|
200 |
+
modal = replacement;
|
201 |
+
|
202 |
+
var form = replacement.find('#request-filesystem-credentials-form').closest('form');
|
203 |
+
form.find('input[type="submit"]').attr('type', 'hidden');
|
204 |
+
form.on('submit', function(e) {
|
205 |
+
e.preventDefault();
|
206 |
+
e.stopPropagation();
|
207 |
+
|
208 |
+
WFAD.ajax(action, form.serialize(), function(res) {
|
209 |
+
installUninstallResponseHandler(action, res);
|
210 |
+
});
|
211 |
+
});
|
212 |
+
modal.find('#wf-waf-modal-continue').on('click', function(e) {
|
213 |
+
e.preventDefault();
|
214 |
+
e.stopPropagation();
|
215 |
+
|
216 |
+
form.trigger('submit');
|
217 |
+
});
|
218 |
+
$.wfcolorbox.resize();
|
219 |
+
}
|
220 |
+
else if (res.credentialsFailed || res.installationFailed || res.uninstallationFailed) {
|
221 |
+
var replacement = $(res.html);
|
222 |
+
modal.replaceWith(replacement);
|
223 |
+
modal = replacement;
|
224 |
+
modal.find('#wf-waf-modal-continue').on('click', function(e) {
|
225 |
+
e.preventDefault();
|
226 |
+
e.stopPropagation();
|
227 |
+
|
228 |
+
WFAD.colorboxClose();
|
229 |
+
});
|
230 |
+
$.wfcolorbox.resize();
|
231 |
+
}
|
232 |
+
else if (res.uninstallationWaiting) {
|
233 |
+
var replacement = $(res.html);
|
234 |
+
modal.replaceWith(replacement);
|
235 |
+
modal = replacement;
|
236 |
+
modal.find('#wf-waf-modal-continue').on('click', function(e) {
|
237 |
+
e.preventDefault();
|
238 |
+
e.stopPropagation();
|
239 |
+
|
240 |
+
WFAD.colorboxClose();
|
241 |
+
}).addClass('wf-disabled');
|
242 |
+
|
243 |
+
var timeout = res.timeout; //In seconds
|
244 |
+
setTimeout(function() {
|
245 |
+
modal.find('#wf-waf-modal-continue').removeClass('wf-disabled');
|
246 |
+
var payload = {serverConfiguration: res.serverConfiguration, iniModified: 1};
|
247 |
+
if (res.credentials) {
|
248 |
+
payload['credentials'] = res.credentials;
|
249 |
+
payload['credentialsSignature'] = res.credentialsSignature;
|
250 |
+
}
|
251 |
+
WFAD.ajax(action, payload, function(res) {
|
252 |
+
installUninstallResponseHandler(action, res);
|
253 |
+
});
|
254 |
+
}, (timeout + 10) * 1000);
|
255 |
+
$.wfcolorbox.resize();
|
256 |
+
}
|
257 |
+
else if (res.ok) {
|
258 |
+
var replacement = $(res.html);
|
259 |
+
modal.replaceWith(replacement);
|
260 |
+
modal = replacement;
|
261 |
+
modal.find('#wf-waf-modal-continue').on('click', function(e) {
|
262 |
+
e.preventDefault();
|
263 |
+
e.stopPropagation();
|
264 |
+
|
265 |
+
window.location.reload(true);
|
266 |
+
});
|
267 |
+
$.wfcolorbox.resize();
|
268 |
+
}
|
269 |
+
else {
|
270 |
+
WFAD.colorboxModal((WFAD.isSmallScreen ? '300px' : '400px'), 'Error During Setup', res.errorMsg);
|
271 |
+
}
|
272 |
+
};
|
273 |
+
|
274 |
+
var installUninstallHandler = function(html) {
|
275 |
+
WFAD.colorboxHTML('800px', html, {overlayClose: false, closeButton: false, className: 'wf-modal', onComplete: function() {
|
276 |
+
$('#wf-waf-server-config').data('backups', []);
|
277 |
+
$('.wf-waf-backup-download').on('click', function(e) {
|
278 |
+
var backupIndex = parseInt($(this).data('backupIndex'));
|
279 |
+
var backupsAvailable = $(this).closest('.wf-waf-backups').data('backups');
|
280 |
+
var backupsDownloaded = $('#wf-waf-server-config').data('backups');
|
281 |
+
var found = false;
|
282 |
+
for (var i = 0; i < backupsDownloaded.length; i++) {
|
283 |
+
if (backupsDownloaded[i] == backupsAvailable[backupIndex]) {
|
284 |
+
found = true;
|
285 |
+
break;
|
286 |
+
}
|
287 |
+
}
|
288 |
+
|
289 |
+
if (!found) {
|
290 |
+
backupsDownloaded.push(backupsAvailable[backupIndex]);
|
291 |
+
$('#wf-waf-server-config').data('backups', backupsDownloaded);
|
292 |
+
validateContinue();
|
293 |
+
}
|
294 |
+
});
|
295 |
+
|
296 |
+
$('#wf-waf-server-config').select2();
|
297 |
+
|
298 |
+
$('#wf-waf-include-prepend > li').each(function(index, element) {
|
299 |
+
$(element).on('click', function(e) {
|
300 |
+
e.preventDefault();
|
301 |
+
e.stopPropagation();
|
302 |
+
|
303 |
+
var control = $(this).closest('.wf-switch');
|
304 |
+
var value = $(this).data('optionValue');
|
305 |
+
|
306 |
+
control.find('li').each(function() {
|
307 |
+
$(this).toggleClass('wf-active', value == $(this).data('optionValue'));
|
308 |
+
});
|
309 |
+
});
|
310 |
+
});
|
311 |
+
|
312 |
+
var nginxNotice = $('.wf-nginx-waf-config');
|
313 |
+
$('#wf-waf-server-config').on('change', function() {
|
314 |
+
var el = $(this);
|
315 |
+
$('.wf-waf-backups').hide();
|
316 |
+
$('.wf-waf-backups-' + el.val().replace(/[^a-z0-9\-]/i, '')).show();
|
317 |
+
|
318 |
+
if (nginxNotice.length) { //Install only
|
319 |
+
if (el.val() == 'nginx') {
|
320 |
+
nginxNotice.fadeIn(400, function () {
|
321 |
+
$.wfcolorbox.resize();
|
322 |
+
});
|
323 |
+
}
|
324 |
+
else {
|
325 |
+
nginxNotice.fadeOut(400, function () {
|
326 |
+
$.wfcolorbox.resize();
|
327 |
+
});
|
328 |
+
}
|
329 |
+
}
|
330 |
+
else {
|
331 |
+
$.wfcolorbox.resize();
|
332 |
+
}
|
333 |
+
|
334 |
+
validateContinue();
|
335 |
+
}).triggerHandler('change');
|
336 |
+
|
337 |
+
$('#wf-waf-install-continue').on('click', function(e) {
|
338 |
+
e.preventDefault();
|
339 |
+
e.stopPropagation();
|
340 |
+
|
341 |
+
var serverConfiguration = $('#wf-waf-server-config').val();
|
342 |
+
var currentAutoPrepend = $('#wf-waf-include-prepend .wf-active').data('optionValue');
|
343 |
+
|
344 |
+
WFAD.ajax('wordfence_installAutoPrepend', {serverConfiguration: serverConfiguration, currentAutoPrepend: currentAutoPrepend}, function(res) {
|
345 |
+
installUninstallResponseHandler('wordfence_installAutoPrepend', res);
|
346 |
+
});
|
347 |
+
});
|
348 |
+
|
349 |
+
$('#wf-waf-uninstall-continue').on('click', function(e) {
|
350 |
+
e.preventDefault();
|
351 |
+
e.stopPropagation();
|
352 |
+
|
353 |
+
var serverConfiguration = $('#wf-waf-server-config').val();
|
354 |
+
|
355 |
+
WFAD.ajax('wordfence_uninstallAutoPrepend', {serverConfiguration: serverConfiguration}, function(res) {
|
356 |
+
installUninstallResponseHandler('wordfence_uninstallAutoPrepend', res);
|
357 |
+
});
|
358 |
+
});
|
359 |
+
}});
|
360 |
+
};
|
361 |
+
|
362 |
+
$('#wf-waf-install').on('click', function(e) {
|
363 |
+
e.preventDefault();
|
364 |
+
e.stopPropagation();
|
365 |
+
|
366 |
+
var installer = $('#wafTmpl_install').tmpl();
|
367 |
+
var installerHTML = $("<div />").append(installer).html();
|
368 |
+
installUninstallHandler(installerHTML);
|
369 |
+
});
|
370 |
+
|
371 |
+
$('#wf-waf-uninstall').on('click', function(e) {
|
372 |
+
e.preventDefault();
|
373 |
+
e.stopPropagation();
|
374 |
+
|
375 |
+
var uninstaller = $('#wafTmpl_uninstall').tmpl();
|
376 |
+
var uninstallerHTML = $("<div />").append(uninstaller).html();
|
377 |
+
installUninstallHandler(uninstallerHTML);
|
378 |
+
});
|
379 |
+
|
380 |
+
if (window.location.hash) {
|
381 |
+
var hashes = window.location.hash.split('#');
|
382 |
+
for (var i = 0; i < hashes.length; i++) {
|
383 |
+
if (hashes[i] == 'configureAutoPrepend') {
|
384 |
+
$('#wf-waf-install').trigger('click');
|
385 |
+
history.replaceState('', document.title, window.location.pathname + window.location.search);
|
386 |
+
}
|
387 |
+
else if (hashes[i] == 'removeAutoPrepend') {
|
388 |
+
$('#wf-waf-uninstall').trigger('click');
|
389 |
+
history.replaceState('', document.title, window.location.pathname + window.location.search);
|
390 |
+
}
|
391 |
+
}
|
392 |
+
}
|
393 |
+
|
394 |
+
$(window).on('hashchange', function () {
|
395 |
+
var hashes = window.location.hash.split('#');
|
396 |
+
for (var i = 0; i < hashes.length; i++) {
|
397 |
+
if (hashes[i] == 'configureAutoPrepend') {
|
398 |
+
$('#wf-waf-install').trigger('click');
|
399 |
+
history.replaceState('', document.title, window.location.pathname + window.location.search);
|
400 |
+
}
|
401 |
+
else if (hashes[i] == 'removeAutoPrepend') {
|
402 |
+
$('#wf-waf-uninstall').trigger('click');
|
403 |
+
history.replaceState('', document.title, window.location.pathname + window.location.search);
|
404 |
+
}
|
405 |
+
}
|
406 |
+
});
|
407 |
+
});
|
408 |
+
})(jQuery);
|
409 |
+
</script>
|
410 |
+
</li>
|
411 |
+
<li id="wf-option-disableWAFBlacklistBlocking" class="wf-flex-vertical wf-flex-align-left">
|
412 |
+
<h3><?php esc_html_e('Real-Time IP Blacklist', 'wordfence'); ?></h3>
|
413 |
+
<?php if ($firewall->ruleMode() == wfFirewall::RULE_MODE_COMMUNITY): ?>
|
414 |
+
<p class="wf-no-top"><strong><?php _e('Premium Feature:', 'wordfence'); ?></strong> <?php _e('This feature blocks all traffic from IPs with a high volume of recent malicious activity using Wordfence\'s real-time blacklist.', 'wordfence'); ?></p>
|
415 |
+
<p><a class="wf-btn wf-btn-primary wf-btn-callout-subtle" href="https://www.wordfence.com/gnl1blacklistUpgrade/wordfence-signup/#premium-order-form" target="_blank" rel="noopener noreferrer"><?php _e('Upgrade to Premium', 'wordfence'); ?></a> <a class="wf-btn wf-btn-callout-subtle wf-btn-default" href="https://www.wordfence.com/gnl1blacklistLearn/wordfence-signup/" target="_blank" rel="noopener noreferrer"><?php _e('Learn More', 'wordfence'); ?></a></p>
|
416 |
+
<?php elseif ($firewall->isSubDirectoryInstallation()): ?>
|
417 |
+
<p class="wf-no-top"><?php printf(__('You are currently running the Wordfence Web Application Firewall from another WordPress installation. Please <a href="%s">click here</a> to configure the Firewall to run correctly on this site.', 'wordfence'), esc_attr(network_admin_url('admin.php?page=WordfenceWAF&subpage=waf_options#configureAutoPrepend'))); ?></p>
|
418 |
+
<?php else: ?>
|
419 |
+
<p class="wf-no-top"><?php _e('This feature blocks all traffic from IPs with a high volume of recent malicious activity using Wordfence\'s real-time blacklist.', 'wordfence'); ?></p>
|
420 |
+
<div class="wf-option wf-option-switch wf-padding-add-bottom" data-option-name="disableWAFBlacklistBlocking" data-original-value="<?php echo $config->getConfig('disableWAFBlacklistBlocking') ? '1': '0'; ?>">
|
421 |
+
<ul class="wf-switch">
|
422 |
+
<?php
|
423 |
+
$states = array(
|
424 |
+
array('value' => '1', 'label' => __('Disabled', 'wordfence')),
|
425 |
+
array('value' => '0', 'label' => __('Enabled', 'wordfence')),
|
426 |
+
);
|
427 |
+
|
428 |
+
foreach ($states as $s):
|
429 |
+
?>
|
430 |
+
<li<?php if ($s['value'] == ($config->getConfig('disableWAFBlacklistBlocking') ? '1': '0')) { echo ' class="wf-active"'; } ?> data-option-value="<?php echo esc_attr($s['value']); ?>"><?php echo esc_html($s['label']); ?></li>
|
431 |
+
<?php endforeach; ?>
|
432 |
+
</ul>
|
433 |
+
</div>
|
434 |
+
<?php endif; ?>
|
435 |
+
</li>
|
436 |
+
</ul>
|
437 |
+
</div>
|
438 |
+
</div>
|
439 |
+
</div>
|
440 |
+
</div> <!-- end basic firewall options -->
|
441 |
+
<?php
|
442 |
+
if ($firewall->protectionMode() == wfFirewall::PROTECTION_MODE_BASIC || ($firewall->protectionMode() == wfFirewall::PROTECTION_MODE_EXTENDED && $firewall->isSubDirectoryInstallation())) {
|
443 |
+
echo wfView::create('waf/waf-install', array(
|
444 |
+
))->render();
|
445 |
+
}
|
446 |
+
else {
|
447 |
+
echo wfView::create('waf/waf-uninstall', array(
|
448 |
+
))->render();
|
449 |
+
}
|
450 |
+
?>
|
views/waf/options-group-brute-force.php
ADDED
@@ -0,0 +1,244 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
if (!defined('WORDFENCE_VERSION')) { exit; }
|
3 |
+
/**
|
4 |
+
* Presents the Brute Force Protection group.
|
5 |
+
*
|
6 |
+
* Expects $firewall, $waf, and $stateKey.
|
7 |
+
*
|
8 |
+
* @var wfFirewall $firewall
|
9 |
+
* @var wfWAF $waf
|
10 |
+
* @var string $stateKey The key under which the collapse state is stored.
|
11 |
+
* @var bool $collapseable If defined, specifies whether or not this grouping can be collapsed. Defaults to true.
|
12 |
+
*/
|
13 |
+
|
14 |
+
$config = $waf->getStorageEngine();
|
15 |
+
|
16 |
+
if (!isset($collapseable)) {
|
17 |
+
$collapseable = true;
|
18 |
+
}
|
19 |
+
?>
|
20 |
+
<div class="wf-row">
|
21 |
+
<div class="wf-col-xs-12">
|
22 |
+
<div class="wf-block<?php if (!$collapseable) { echo ' wf-always-active'; } else { echo (wfPersistenceController::shared()->isActive($stateKey) ? ' wf-active' : ''); } ?>" data-persistence-key="<?php echo esc_attr($stateKey); ?>">
|
23 |
+
<div class="wf-block-header">
|
24 |
+
<div class="wf-block-header-content">
|
25 |
+
<div class="wf-block-title">
|
26 |
+
<strong><?php _e('Brute Force Protection', 'wordfence'); ?></strong>
|
27 |
+
</div>
|
28 |
+
<?php if ($collapseable): ?><div class="wf-block-header-action"><div class="wf-block-header-action-disclosure"></div></div><?php endif; ?>
|
29 |
+
</div>
|
30 |
+
</div>
|
31 |
+
<div class="wf-block-content">
|
32 |
+
<ul class="wf-block-list">
|
33 |
+
<li>
|
34 |
+
<?php
|
35 |
+
echo wfView::create('options/option-switch', array(
|
36 |
+
'optionName' => 'loginSecurityEnabled',
|
37 |
+
'value' => wfConfig::get('loginSecurityEnabled') ? '1': '0',
|
38 |
+
'titleHTML' => '<strong>' . __('Enable brute force protection', 'wordfence') . '</strong>',
|
39 |
+
'subtitle' => __('This option enables all "Brute Force Protection" options, including two-factor authentication, strong password enforcement, and invalid login throttling. You can modify individual options below.', 'wordfence'),
|
40 |
+
'states' => array(
|
41 |
+
array('value' => '0', 'label' => __('Off', 'wordfence')),
|
42 |
+
array('value' => '1', 'label' => __('On', 'wordfence')),
|
43 |
+
),
|
44 |
+
'helpLink' => wfSupportController::supportURL(wfSupportController::ITEM_FIREWALL_WAF_OPTION_ENABLE_LOGIN_SECURITY),
|
45 |
+
'noSpacer' => true,
|
46 |
+
'alignment' => 'wf-right',
|
47 |
+
))->render();
|
48 |
+
?>
|
49 |
+
</li>
|
50 |
+
<li>
|
51 |
+
<?php
|
52 |
+
$breakpoints = array(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 20, 30, 40, 50, 100, 200, 500);
|
53 |
+
$options = array();
|
54 |
+
foreach ($breakpoints as $b) {
|
55 |
+
$options[] = array('value' => $b, 'label' => $b);
|
56 |
+
}
|
57 |
+
echo wfView::create('options/option-select', array(
|
58 |
+
'selectOptionName' => 'loginSec_maxFailures',
|
59 |
+
'selectOptions' => $options,
|
60 |
+
'selectValue' => wfConfig::get('loginSec_maxFailures'),
|
61 |
+
'title' => __('Lock out after how many login failures', 'wordfence'),
|
62 |
+
'helpLink' => wfSupportController::supportURL(wfSupportController::ITEM_FIREWALL_WAF_OPTION_LOCK_OUT_FAILURE_COUNT),
|
63 |
+
))->render();
|
64 |
+
?>
|
65 |
+
</li>
|
66 |
+
<li>
|
67 |
+
<?php
|
68 |
+
$breakpoints = array(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 20, 30, 40, 50, 100, 200, 500);
|
69 |
+
$options = array();
|
70 |
+
foreach ($breakpoints as $b) {
|
71 |
+
$options[] = array('value' => $b, 'label' => $b);
|
72 |
+
}
|
73 |
+
echo wfView::create('options/option-select', array(
|
74 |
+
'selectOptionName' => 'loginSec_maxForgotPasswd',
|
75 |
+
'selectOptions' => $options,
|
76 |
+
'selectValue' => wfConfig::get('loginSec_maxForgotPasswd'),
|
77 |
+
'title' => __('Lock out after how many forgot password attempts', 'wordfence'),
|
78 |
+
'helpLink' => wfSupportController::supportURL(wfSupportController::ITEM_FIREWALL_WAF_OPTION_LOCK_OUT_FORGOT_PASSWORD_COUNT),
|
79 |
+
))->render();
|
80 |
+
?>
|
81 |
+
</li>
|
82 |
+
<li>
|
83 |
+
<?php
|
84 |
+
$breakpoints = array(5, 10, 30, 60, 120, 240, 360, 720, 1440);
|
85 |
+
$options = array();
|
86 |
+
foreach ($breakpoints as $b) {
|
87 |
+
$options[] = array('value' => $b, 'label' => wfUtils::makeDuration($b * 60));
|
88 |
+
}
|
89 |
+
echo wfView::create('options/option-select', array(
|
90 |
+
'selectOptionName' => 'loginSec_countFailMins',
|
91 |
+
'selectOptions' => $options,
|
92 |
+
'selectValue' => wfConfig::getInt('loginSec_countFailMins'),
|
93 |
+
'title' => __('Count failures over what time period', 'wordfence'),
|
94 |
+
'helpLink' => wfSupportController::supportURL(wfSupportController::ITEM_FIREWALL_WAF_OPTION_COUNT_TIME_PERIOD),
|
95 |
+
))->render();
|
96 |
+
?>
|
97 |
+
</li>
|
98 |
+
<li>
|
99 |
+
<?php
|
100 |
+
$breakpoints = array(5, 10, 30, 60, 120, 240, 360, 720, 1440, 2880, 7200, 14400, 28800, 43200, 86400);
|
101 |
+
$options = array();
|
102 |
+
foreach ($breakpoints as $b) {
|
103 |
+
$options[] = array('value' => $b, 'label' => wfUtils::makeDuration($b * 60));
|
104 |
+
}
|
105 |
+
echo wfView::create('options/option-select', array(
|
106 |
+
'selectOptionName' => 'loginSec_lockoutMins',
|
107 |
+
'selectOptions' => $options,
|
108 |
+
'selectValue' => wfConfig::getInt('loginSec_lockoutMins'),
|
109 |
+
'title' => __('Amount of time a user is locked out', 'wordfence'),
|
110 |
+
'helpLink' => wfSupportController::supportURL(wfSupportController::ITEM_FIREWALL_WAF_OPTION_LOCKOUT_DURATION),
|
111 |
+
))->render();
|
112 |
+
?>
|
113 |
+
</li>
|
114 |
+
<li>
|
115 |
+
<?php
|
116 |
+
echo wfView::create('options/option-toggled', array(
|
117 |
+
'optionName' => 'loginSec_lockInvalidUsers',
|
118 |
+
'enabledValue' => 1,
|
119 |
+
'disabledValue' => 0,
|
120 |
+
'value' => wfConfig::get('loginSec_lockInvalidUsers') ? 1 : 0,
|
121 |
+
'title' => __('Immediately lock out invalid usernames', 'wordfence'),
|
122 |
+
'helpLink' => wfSupportController::supportURL(wfSupportController::ITEM_FIREWALL_WAF_OPTION_IMMEDIATELY_LOCK_OUT_INVALID_USERS),
|
123 |
+
))->render();
|
124 |
+
?>
|
125 |
+
</li>
|
126 |
+
<li>
|
127 |
+
<?php
|
128 |
+
$blacklist = wfConfig::get('loginSec_userBlacklist', '');
|
129 |
+
if (empty($blacklist)) {
|
130 |
+
$users = array();
|
131 |
+
}
|
132 |
+
else {
|
133 |
+
$users = explode("\n", wfUtils::cleanupOneEntryPerLine($blacklist));
|
134 |
+
}
|
135 |
+
|
136 |
+
echo wfView::create('options/option-token', array(
|
137 |
+
'tokenOptionName' => 'loginSec_userBlacklist',
|
138 |
+
'tokenValue' => $users,
|
139 |
+
'title' => __('Immediately block the IP of users who try to sign in as these usernames', 'wordfence'),
|
140 |
+
'subtitle' => __('Hit enter to add a username', 'wordfence'),
|
141 |
+
'helpLink' => wfSupportController::supportURL(wfSupportController::ITEM_FIREWALL_WAF_OPTION_IMMEDIATELY_BLOCK_USERS),
|
142 |
+
))->render();
|
143 |
+
?>
|
144 |
+
</li>
|
145 |
+
<li>
|
146 |
+
<?php
|
147 |
+
echo wfView::create('options/option-label', array(
|
148 |
+
'titleHTML' => '<strong>' . __('Additional Options', 'wordfence') . '</strong>',
|
149 |
+
'noSpacer' => true,
|
150 |
+
))->render();
|
151 |
+
?>
|
152 |
+
</li>
|
153 |
+
<li>
|
154 |
+
<?php
|
155 |
+
echo wfView::create('options/option-toggled-select', array(
|
156 |
+
'toggleOptionName' => 'loginSec_strongPasswds_enabled',
|
157 |
+
'enabledToggleValue' => 1,
|
158 |
+
'disabledToggleValue' => 0,
|
159 |
+
'toggleValue' => !!wfConfig::get('loginSec_strongPasswds_enabled') ? 1 : 0,
|
160 |
+
'selectOptionName' => 'loginSec_strongPasswds',
|
161 |
+
'selectOptions' => array(array('value' => 'pubs', 'label' => __('Force admins and publishers to use strong passwords (recommended)', 'wordfence')), array('value' => 'all', 'label' => __('Force all members to use strong passwords', 'wordfence'))),
|
162 |
+
'selectValue' => wfConfig::get('loginSec_strongPasswds'),
|
163 |
+
'title' => __('Enforce strong passwords', 'wordfence'),
|
164 |
+
'helpLink' => wfSupportController::supportURL(wfSupportController::ITEM_FIREWALL_WAF_OPTION_ENFORCE_STRONG_PASSWORDS),
|
165 |
+
))->render();
|
166 |
+
?>
|
167 |
+
</li>
|
168 |
+
<li>
|
169 |
+
<?php
|
170 |
+
echo wfView::create('options/option-toggled', array(
|
171 |
+
'optionName' => 'loginSec_maskLoginErrors',
|
172 |
+
'enabledValue' => 1,
|
173 |
+
'disabledValue' => 0,
|
174 |
+
'value' => wfConfig::get('loginSec_maskLoginErrors') ? 1 : 0,
|
175 |
+
'title' => __('Don\'t let WordPress reveal valid users in login errors', 'wordfence'),
|
176 |
+
'helpLink' => wfSupportController::supportURL(wfSupportController::ITEM_FIREWALL_WAF_OPTION_MASK_LOGIN_ERRORS),
|
177 |
+
))->render();
|
178 |
+
?>
|
179 |
+
</li>
|
180 |
+
<li>
|
181 |
+
<?php
|
182 |
+
echo wfView::create('options/option-toggled', array(
|
183 |
+
'optionName' => 'loginSec_blockAdminReg',
|
184 |
+
'enabledValue' => 1,
|
185 |
+
'disabledValue' => 0,
|
186 |
+
'value' => wfConfig::get('loginSec_blockAdminReg') ? 1 : 0,
|
187 |
+
'title' => __('Prevent users registering \'admin\' username if it doesn\'t exist', 'wordfence'),
|
188 |
+
'helpLink' => wfSupportController::supportURL(wfSupportController::ITEM_FIREWALL_WAF_OPTION_PREVENT_ADMIN_REGISTRATION),
|
189 |
+
))->render();
|
190 |
+
?>
|
191 |
+
</li>
|
192 |
+
<li>
|
193 |
+
<?php
|
194 |
+
echo wfView::create('options/option-toggled', array(
|
195 |
+
'optionName' => 'loginSec_disableAuthorScan',
|
196 |
+
'enabledValue' => 1,
|
197 |
+
'disabledValue' => 0,
|
198 |
+
'value' => wfConfig::get('loginSec_disableAuthorScan') ? 1 : 0,
|
199 |
+
'title' => __('Prevent discovery of usernames through \'/?author=N\' scans, the oEmbed API, and the WordPress REST API', 'wordfence'),
|
200 |
+
'helpLink' => wfSupportController::supportURL(wfSupportController::ITEM_FIREWALL_WAF_OPTION_PREVENT_AUTHOR_SCAN),
|
201 |
+
))->render();
|
202 |
+
?>
|
203 |
+
</li>
|
204 |
+
<li>
|
205 |
+
<?php
|
206 |
+
echo wfView::create('options/option-toggled', array(
|
207 |
+
'optionName' => 'other_blockBadPOST',
|
208 |
+
'enabledValue' => 1,
|
209 |
+
'disabledValue' => 0,
|
210 |
+
'value' => wfConfig::get('other_blockBadPOST') ? 1 : 0,
|
211 |
+
'title' => __('Block IPs who send POST requests with blank User-Agent and Referer', 'wordfence'),
|
212 |
+
'helpLink' => wfSupportController::supportURL(wfSupportController::ITEM_FIREWALL_WAF_OPTION_BLOCK_BAD_POST),
|
213 |
+
))->render();
|
214 |
+
?>
|
215 |
+
</li>
|
216 |
+
<li>
|
217 |
+
<?php
|
218 |
+
echo wfView::create('options/option-toggled', array(
|
219 |
+
'optionName' => 'other_pwStrengthOnUpdate',
|
220 |
+
'enabledValue' => 1,
|
221 |
+
'disabledValue' => 0,
|
222 |
+
'value' => wfConfig::get('other_pwStrengthOnUpdate') ? 1 : 0,
|
223 |
+
'title' => __('Check password strength on profile update', 'wordfence'),
|
224 |
+
'helpLink' => wfSupportController::supportURL(wfSupportController::ITEM_FIREWALL_WAF_OPTION_CHECK_PASSWORD),
|
225 |
+
))->render();
|
226 |
+
?>
|
227 |
+
</li>
|
228 |
+
<li>
|
229 |
+
<?php
|
230 |
+
echo wfView::create('options/option-toggled', array(
|
231 |
+
'optionName' => 'other_WFNet',
|
232 |
+
'enabledValue' => 1,
|
233 |
+
'disabledValue' => 0,
|
234 |
+
'value' => wfConfig::get('other_WFNet') ? 1 : 0,
|
235 |
+
'title' => __('Participate in the Real-Time WordPress Security Network', 'wordfence'),
|
236 |
+
'helpLink' => wfSupportController::supportURL(wfSupportController::ITEM_FIREWALL_WAF_OPTION_PARTICIPATE_WFSN),
|
237 |
+
))->render();
|
238 |
+
?>
|
239 |
+
</li>
|
240 |
+
</ul>
|
241 |
+
</div>
|
242 |
+
</div>
|
243 |
+
</div>
|
244 |
+
</div> <!-- end brute force protection -->
|
views/waf/options-group-rate-limiting.php
ADDED
@@ -0,0 +1,264 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
if (!defined('WORDFENCE_VERSION')) { exit; }
|
3 |
+
/**
|
4 |
+
* Presents the Rate Limiting group.
|
5 |
+
*
|
6 |
+
* Expects $firewall, $waf, and $stateKey.
|
7 |
+
*
|
8 |
+
* @var wfFirewall $firewall
|
9 |
+
* @var wfWAF $waf
|
10 |
+
* @var string $stateKey The key under which the collapse state is stored.
|
11 |
+
* @var bool $collapseable If defined, specifies whether or not this grouping can be collapsed. Defaults to true.
|
12 |
+
*/
|
13 |
+
|
14 |
+
$config = $waf->getStorageEngine();
|
15 |
+
|
16 |
+
if (!isset($collapseable)) {
|
17 |
+
$collapseable = true;
|
18 |
+
}
|
19 |
+
?>
|
20 |
+
<div class="wf-row">
|
21 |
+
<div class="wf-col-xs-12">
|
22 |
+
<div class="wf-block<?php if (!$collapseable) { echo ' wf-always-active'; } else { echo (wfPersistenceController::shared()->isActive($stateKey) ? ' wf-active' : ''); } ?>" data-persistence-key="<?php echo esc_attr($stateKey); ?>">
|
23 |
+
<div class="wf-block-header">
|
24 |
+
<div class="wf-block-header-content">
|
25 |
+
<div class="wf-block-title">
|
26 |
+
<strong><?php _e('Rate Limiting', 'wordfence'); ?></strong>
|
27 |
+
</div>
|
28 |
+
<?php if ($collapseable): ?><div class="wf-block-header-action"><div class="wf-block-header-action-disclosure"></div></div><?php endif; ?>
|
29 |
+
</div>
|
30 |
+
</div>
|
31 |
+
<div class="wf-block-content">
|
32 |
+
<ul class="wf-block-list">
|
33 |
+
<li>
|
34 |
+
<?php
|
35 |
+
echo wfView::create('options/option-switch', array(
|
36 |
+
'optionName' => 'firewallEnabled',
|
37 |
+
'value' => wfConfig::get('firewallEnabled') ? '1': '0',
|
38 |
+
'title' => __('Enable Rate Limiting and Advanced Blocking', 'wordfence'),
|
39 |
+
'subtitle' => __('NOTE: This checkbox enables ALL blocking/throttling functions including IP, country and advanced blocking, and the "Rate Limiting Rules" below.', 'wordfence'),
|
40 |
+
'states' => array(
|
41 |
+
array('value' => '0', 'label' => __('Off', 'wordfence')),
|
42 |
+
array('value' => '1', 'label' => __('On', 'wordfence')),
|
43 |
+
),
|
44 |
+
'helpLink' => wfSupportController::supportURL(wfSupportController::ITEM_FIREWALL_WAF_OPTION_ENABLE_ADVANCED_BLOCKING),
|
45 |
+
'noSpacer' => true,
|
46 |
+
'alignment' => 'wf-right',
|
47 |
+
))->render();
|
48 |
+
?>
|
49 |
+
</li>
|
50 |
+
<li>
|
51 |
+
<?php
|
52 |
+
echo wfView::create('options/option-toggled', array(
|
53 |
+
'optionName' => 'blockFakeBots',
|
54 |
+
'enabledValue' => 1,
|
55 |
+
'disabledValue' => 0,
|
56 |
+
'value' => wfConfig::get('blockFakeBots') ? 1 : 0,
|
57 |
+
'title' => __('Immediately block fake Google crawlers', 'wordfence'),
|
58 |
+
'helpLink' => wfSupportController::supportURL(wfSupportController::ITEM_FIREWALL_WAF_OPTION_IMMEDIATELY_BLOCK_FAKE_GOOGLE),
|
59 |
+
))->render();
|
60 |
+
?>
|
61 |
+
</li>
|
62 |
+
<li>
|
63 |
+
<?php
|
64 |
+
echo wfView::create('options/option-select', array(
|
65 |
+
'selectOptionName' => 'neverBlockBG',
|
66 |
+
'selectOptions' => array(
|
67 |
+
array('value' => 'neverBlockVerified', 'label' => __('Verified Google crawlers have unlimited access to this site', 'wordfence')),
|
68 |
+
array('value' => 'neverBlockUA', 'label' => __('Anyone claiming to be Google has unlimited access', 'wordfence')),
|
69 |
+
array('value' => 'treatAsOtherCrawlers', 'label' => __('Treat Google like any other Crawler', 'wordfence')),
|
70 |
+
),
|
71 |
+
'selectValue' => wfConfig::get('neverBlockBG'),
|
72 |
+
'title' => __('How should we treat Google\'s crawlers', 'wordfence'),
|
73 |
+
'helpLink' => wfSupportController::supportURL(wfSupportController::ITEM_FIREWALL_WAF_OPTION_GOOGLE_ACTION),
|
74 |
+
))->render();
|
75 |
+
?>
|
76 |
+
</li>
|
77 |
+
<?php
|
78 |
+
$rateOptions = array(
|
79 |
+
array('value' => 'DISABLED', 'label' => __('Unlimited', 'wordfence')),
|
80 |
+
array('value' => 1, 'label' => sprintf(__('%d per minute', 'wordfence'), 1)),
|
81 |
+
array('value' => 2, 'label' => sprintf(__('%d per minute', 'wordfence'), 2)),
|
82 |
+
array('value' => 3, 'label' => sprintf(__('%d per minute', 'wordfence'), 3)),
|
83 |
+
array('value' => 4, 'label' => sprintf(__('%d per minute', 'wordfence'), 4)),
|
84 |
+
array('value' => 5, 'label' => sprintf(__('%d per minute', 'wordfence'), 5)),
|
85 |
+
array('value' => 10, 'label' => sprintf(__('%d per minute', 'wordfence'), 10)),
|
86 |
+
array('value' => 15, 'label' => sprintf(__('%d per minute', 'wordfence'), 15)),
|
87 |
+
array('value' => 30, 'label' => sprintf(__('%d per minute', 'wordfence'), 30)),
|
88 |
+
array('value' => 60, 'label' => sprintf(__('%d per minute', 'wordfence'), 60)),
|
89 |
+
array('value' => 120, 'label' => sprintf(__('%d per minute', 'wordfence'), 120)),
|
90 |
+
array('value' => 240, 'label' => sprintf(__('%d per minute', 'wordfence'), 240)),
|
91 |
+
array('value' => 480, 'label' => sprintf(__('%d per minute', 'wordfence'), 480)),
|
92 |
+
array('value' => 960, 'label' => sprintf(__('%d per minute', 'wordfence'), 960)),
|
93 |
+
array('value' => 1920, 'label' => sprintf(__('%d per minute', 'wordfence'), 1920)),
|
94 |
+
);
|
95 |
+
$actionOptions = array(
|
96 |
+
array('value' => 'throttle', 'label' => __('throttle it', 'wordfence')),
|
97 |
+
array('value' => 'block', 'label' => __('block it', 'wordfence')),
|
98 |
+
);
|
99 |
+
?>
|
100 |
+
<li>
|
101 |
+
<?php
|
102 |
+
echo wfView::create('waf/option-rate-limit', array(
|
103 |
+
'toggleOptionName' => 'maxGlobalRequests_enabled',
|
104 |
+
'toggleValue' => !!wfConfig::get('maxGlobalRequests_enabled') ? 1 : 0,
|
105 |
+
'rateOptionName' => 'maxGlobalRequests',
|
106 |
+
'rateOptions' => $rateOptions,
|
107 |
+
'rateValue' => wfConfig::get('maxGlobalRequests'),
|
108 |
+
'actionOptionName' => 'maxGlobalRequests_action',
|
109 |
+
'actionOptions' => $actionOptions,
|
110 |
+
'actionValue' => wfConfig::get('maxGlobalRequests_action'),
|
111 |
+
'title' => __('If anyone\'s requests exceed', 'wordfence'),
|
112 |
+
'helpLink' => wfSupportController::supportURL(wfSupportController::ITEM_FIREWALL_WAF_OPTION_RATE_LIMIT_ANY),
|
113 |
+
))->render();
|
114 |
+
?>
|
115 |
+
</li>
|
116 |
+
<li>
|
117 |
+
<?php
|
118 |
+
echo wfView::create('waf/option-rate-limit', array(
|
119 |
+
'toggleOptionName' => 'maxRequestsCrawlers_enabled',
|
120 |
+
'toggleValue' => !!wfConfig::get('maxRequestsCrawlers_enabled') ? 1 : 0,
|
121 |
+
'rateOptionName' => 'maxRequestsCrawlers',
|
122 |
+
'rateOptions' => $rateOptions,
|
123 |
+
'rateValue' => wfConfig::get('maxRequestsCrawlers'),
|
124 |
+
'actionOptionName' => 'maxRequestsCrawlers_action',
|
125 |
+
'actionOptions' => $actionOptions,
|
126 |
+
'actionValue' => wfConfig::get('maxRequestsCrawlers_action'),
|
127 |
+
'title' => __('If a crawler\'s page views exceed', 'wordfence'),
|
128 |
+
'helpLink' => wfSupportController::supportURL(wfSupportController::ITEM_FIREWALL_WAF_OPTION_RATE_LIMIT_CRAWLER),
|
129 |
+
))->render();
|
130 |
+
?>
|
131 |
+
</li>
|
132 |
+
<li>
|
133 |
+
<?php
|
134 |
+
echo wfView::create('waf/option-rate-limit', array(
|
135 |
+
'toggleOptionName' => 'max404Crawlers_enabled',
|
136 |
+
'toggleValue' => !!wfConfig::get('max404Crawlers_enabled') ? 1 : 0,
|
137 |
+
'rateOptionName' => 'max404Crawlers',
|
138 |
+
'rateOptions' => $rateOptions,
|
139 |
+
'rateValue' => wfConfig::get('max404Crawlers'),
|
140 |
+
'actionOptionName' => 'max404Crawlers_action',
|
141 |
+
'actionOptions' => $actionOptions,
|
142 |
+
'actionValue' => wfConfig::get('max404Crawlers_action'),
|
143 |
+
'title' => __('If a crawler\'s pages not found (404s) exceed', 'wordfence'),
|
144 |
+
'helpLink' => wfSupportController::supportURL(wfSupportController::ITEM_FIREWALL_WAF_OPTION_RATE_LIMIT_CRAWLER_404),
|
145 |
+
))->render();
|
146 |
+
?>
|
147 |
+
</li>
|
148 |
+
<li>
|
149 |
+
<?php
|
150 |
+
echo wfView::create('waf/option-rate-limit', array(
|
151 |
+
'toggleOptionName' => 'maxRequestsHumans_enabled',
|
152 |
+
'toggleValue' => !!wfConfig::get('maxRequestsHumans_enabled') ? 1 : 0,
|
153 |
+
'rateOptionName' => 'maxRequestsHumans',
|
154 |
+
'rateOptions' => $rateOptions,
|
155 |
+
'rateValue' => wfConfig::get('maxRequestsHumans'),
|
156 |
+
'actionOptionName' => 'maxRequestsHumans_action',
|
157 |
+
'actionOptions' => $actionOptions,
|
158 |
+
'actionValue' => wfConfig::get('maxRequestsHumans_action'),
|
159 |
+
'title' => __('If a human\'s page views exceed', 'wordfence'),
|
160 |
+
'helpLink' => wfSupportController::supportURL(wfSupportController::ITEM_FIREWALL_WAF_OPTION_RATE_LIMIT_HUMAN),
|
161 |
+
))->render();
|
162 |
+
?>
|
163 |
+
</li>
|
164 |
+
<li>
|
165 |
+
<?php
|
166 |
+
echo wfView::create('waf/option-rate-limit', array(
|
167 |
+
'toggleOptionName' => 'max404Humans_enabled',
|
168 |
+
'toggleValue' => !!wfConfig::get('max404Humans_enabled') ? 1 : 0,
|
169 |
+
'rateOptionName' => 'max404Humans',
|
170 |
+
'rateOptions' => $rateOptions,
|
171 |
+
'rateValue' => wfConfig::get('max404Humans'),
|
172 |
+
'actionOptionName' => 'max404Humans_action',
|
173 |
+
'actionOptions' => $actionOptions,
|
174 |
+
'actionValue' => wfConfig::get('max404Humans_action'),
|
175 |
+
'title' => __('If a human\'s pages not found (404s) exceed', 'wordfence'),
|
176 |
+
'helpLink' => wfSupportController::supportURL(wfSupportController::ITEM_FIREWALL_WAF_OPTION_RATE_LIMIT_HUMAN_404),
|
177 |
+
))->render();
|
178 |
+
?>
|
179 |
+
</li>
|
180 |
+
<li>
|
181 |
+
<?php
|
182 |
+
echo wfView::create('waf/option-rate-limit', array(
|
183 |
+
'toggleOptionName' => 'maxScanHits_enabled',
|
184 |
+
'toggleValue' => !!wfConfig::get('maxScanHits_enabled') ? 1 : 0,
|
185 |
+
'rateOptionName' => 'maxScanHits',
|
186 |
+
'rateOptions' => $rateOptions,
|
187 |
+
'rateValue' => wfConfig::get('maxScanHits'),
|
188 |
+
'actionOptionName' => 'maxScanHits_action',
|
189 |
+
'actionOptions' => $actionOptions,
|
190 |
+
'actionValue' => wfConfig::get('maxScanHits_action'),
|
191 |
+
'title' => __('If 404s for known vulnerable URLs exceed', 'wordfence'),
|
192 |
+
'helpLink' => wfSupportController::supportURL(wfSupportController::ITEM_FIREWALL_WAF_OPTION_RATE_LIMIT_ANY_404),
|
193 |
+
))->render();
|
194 |
+
?>
|
195 |
+
</li>
|
196 |
+
<li>
|
197 |
+
<?php
|
198 |
+
$breakpoints = array(60, 300, 1800, 3600, 7200, 21600, 43200, 86400, 172800, 432000, 864000, 2592000);
|
199 |
+
$options = array();
|
200 |
+
foreach ($breakpoints as $b) {
|
201 |
+
$options[] = array('value' => $b, 'label' => wfUtils::makeDuration($b));
|
202 |
+
}
|
203 |
+
echo wfView::create('options/option-select', array(
|
204 |
+
'selectOptionName' => 'blockedTime',
|
205 |
+
'selectOptions' => $options,
|
206 |
+
'selectValue' => wfConfig::getInt('blockedTime'),
|
207 |
+
'title' => __('How long is an IP address blocked when it breaks a rule', 'wordfence'),
|
208 |
+
'helpLink' => wfSupportController::supportURL(wfSupportController::ITEM_FIREWALL_WAF_OPTION_AUTOMATIC_BLOCK_DURATION),
|
209 |
+
))->render();
|
210 |
+
?>
|
211 |
+
</li>
|
212 |
+
<li>
|
213 |
+
<?php
|
214 |
+
echo wfView::create('options/option-textarea', array(
|
215 |
+
'textOptionName' => 'allowed404s',
|
216 |
+
'textValue' => wfUtils::cleanupOneEntryPerLine(wfConfig::get('allowed404s')),
|
217 |
+
'title' => __('Whitelisted 404 URLs', 'wordfence'),
|
218 |
+
'subtitle' => __('These URL patterns will be excluded from the throttling rules used to limit crawlers.', 'wordfence'),
|
219 |
+
'helpLink' => wfSupportController::supportURL(wfSupportController::ITEM_FIREWALL_WAF_OPTION_WHITELISTED_404),
|
220 |
+
))->render();
|
221 |
+
?>
|
222 |
+
</li>
|
223 |
+
</ul>
|
224 |
+
<script type="application/javascript">
|
225 |
+
(function($) {
|
226 |
+
$(function() {
|
227 |
+
$('.wf-option.wf-option-rate-limit > .wf-option-content > ul > li.wf-option-select select').select2({
|
228 |
+
minimumResultsForSearch: -1
|
229 |
+
}).on('change', function () {
|
230 |
+
var optionElement = $(this).closest('.wf-option');
|
231 |
+
if ($(this).hasClass('wf-rate-limit-rate')) {
|
232 |
+
var option = optionElement.data('rateOption');
|
233 |
+
var value = $(this).val();
|
234 |
+
|
235 |
+
var originalValue = optionElement.data('originalRateValue');
|
236 |
+
if (originalValue == value) {
|
237 |
+
delete WFAD.pendingChanges[option];
|
238 |
+
}
|
239 |
+
else {
|
240 |
+
WFAD.pendingChanges[option] = value;
|
241 |
+
}
|
242 |
+
}
|
243 |
+
else if ($(this).hasClass('wf-rate-limit-action')) {
|
244 |
+
var option = optionElement.data('actionOption');
|
245 |
+
var value = $(this).val();
|
246 |
+
|
247 |
+
var originalValue = optionElement.data('originalActionValue');
|
248 |
+
if (originalValue == value) {
|
249 |
+
delete WFAD.pendingChanges[option];
|
250 |
+
}
|
251 |
+
else {
|
252 |
+
WFAD.pendingChanges[option] = value;
|
253 |
+
}
|
254 |
+
}
|
255 |
+
|
256 |
+
WFAD.updatePendingChanges();
|
257 |
+
}).triggerHandler('change');
|
258 |
+
});
|
259 |
+
})(jQuery);
|
260 |
+
</script>
|
261 |
+
</div>
|
262 |
+
</div>
|
263 |
+
</div>
|
264 |
+
</div> <!-- end rate limiting -->
|
views/waf/options-group-whitelisted.php
ADDED
@@ -0,0 +1,276 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
if (!defined('WORDFENCE_VERSION')) { exit; }
|
3 |
+
/**
|
4 |
+
* Presents the Whitelisted URLs group.
|
5 |
+
*
|
6 |
+
* Expects $firewall, $waf, and $stateKey.
|
7 |
+
*
|
8 |
+
* @var wfFirewall $firewall
|
9 |
+
* @var wfWAF $waf
|
10 |
+
* @var string $stateKey The key under which the collapse state is stored.
|
11 |
+
* @var bool $collapseable If defined, specifies whether or not this grouping can be collapsed. Defaults to true.
|
12 |
+
*/
|
13 |
+
|
14 |
+
$config = $waf->getStorageEngine();
|
15 |
+
|
16 |
+
if (!isset($collapseable)) {
|
17 |
+
$collapseable = true;
|
18 |
+
}
|
19 |
+
?>
|
20 |
+
<div class="wf-row">
|
21 |
+
<div class="wf-col-xs-12">
|
22 |
+
<div class="wf-block<?php if (!$collapseable) { echo ' wf-always-active'; } else { echo (wfPersistenceController::shared()->isActive($stateKey) ? ' wf-active' : ''); } ?>" data-persistence-key="<?php echo esc_attr($stateKey); ?>">
|
23 |
+
<div class="wf-block-header">
|
24 |
+
<div class="wf-block-header-content">
|
25 |
+
<div class="wf-block-title">
|
26 |
+
<strong><?php _e('Whitelisted URLs', 'wordfence'); ?></strong>
|
27 |
+
</div>
|
28 |
+
<?php if ($collapseable): ?><div class="wf-block-header-action"><div class="wf-block-header-action-disclosure"></div></div><?php endif; ?>
|
29 |
+
</div>
|
30 |
+
</div>
|
31 |
+
<div class="wf-block-content">
|
32 |
+
<ul class="wf-block-list">
|
33 |
+
<?php if ($firewall->isSubDirectoryInstallation()): ?>
|
34 |
+
<li>
|
35 |
+
<p><?php printf(__('You are currently running the Wordfence Web Application Firewall from another WordPress installation. Please <a href="%s">click here</a> to configure the Firewall to run correctly on this site.', 'wordfence'), esc_attr(network_admin_url('admin.php?page=WordfenceWAF&subpage=waf_options#configureAutoPrepend'))); ?></p>
|
36 |
+
</li>
|
37 |
+
<?php else: ?>
|
38 |
+
<li>
|
39 |
+
<?php
|
40 |
+
echo wfView::create('waf/option-whitelist', array(
|
41 |
+
))->render();
|
42 |
+
?>
|
43 |
+
</li>
|
44 |
+
<li>
|
45 |
+
<?php
|
46 |
+
echo wfView::create('options/option-toggled-multiple', array(
|
47 |
+
'options' => array(
|
48 |
+
array(
|
49 |
+
'name' => 'ajaxWatcherDisabled_front',
|
50 |
+
'enabledValue' => 0,
|
51 |
+
'disabledValue' => 1,
|
52 |
+
'value' => wfConfig::get('ajaxWatcherDisabled_front') ? 1 : 0,
|
53 |
+
'title' => __('Front-end Website', 'wordfence'),
|
54 |
+
),
|
55 |
+
array(
|
56 |
+
'name' => 'ajaxWatcherDisabled_admin',
|
57 |
+
'enabledValue' => 0,
|
58 |
+
'disabledValue' => 1,
|
59 |
+
'value' => wfConfig::get('ajaxWatcherDisabled_admin') ? 1 : 0,
|
60 |
+
'title' => __('Admin Panel', 'wordfence'),
|
61 |
+
),
|
62 |
+
),
|
63 |
+
'title' => __('Monitor background requests from an administrator\'s web browser for false positives', 'wordfence'),
|
64 |
+
'helpLink' => wfSupportController::supportURL(wfSupportController::ITEM_FIREWALL_WAF_OPTION_MONITOR_AJAX),
|
65 |
+
))->render();
|
66 |
+
?>
|
67 |
+
</li>
|
68 |
+
<?php endif; ?>
|
69 |
+
</ul>
|
70 |
+
</div>
|
71 |
+
</div>
|
72 |
+
</div>
|
73 |
+
</div> <!-- end whitelisted urls -->
|
74 |
+
<script type="text/x-jquery-template" id="waf-whitelisted-urls-tmpl">
|
75 |
+
<div class="whitelist-table-container">
|
76 |
+
<table class="wf-striped-table whitelist-table">
|
77 |
+
<thead>
|
78 |
+
<tr>
|
79 |
+
<th style="width: 2%;text-align: center"><div class="wf-whitelist-bulk-select wf-option-checkbox"><i class="wf-ion-ios-checkmark-empty" aria-hidden="true"></i></div></th>
|
80 |
+
<th style="width: 5%;"><?php _e('Enabled', 'wordfence'); ?></th>
|
81 |
+
<th><?php _e('URL', 'wordfence'); ?></th>
|
82 |
+
<th><?php _e('Param', 'wordfence'); ?></th>
|
83 |
+
<th><?php _e('Created', 'wordfence'); ?></th>
|
84 |
+
<th><?php _e('Source', 'wordfence'); ?></th>
|
85 |
+
<th><?php _e('User', 'wordfence'); ?></th>
|
86 |
+
<th><?php _e('IP', 'wordfence'); ?></th>
|
87 |
+
</tr>
|
88 |
+
</thead>
|
89 |
+
{{if whitelistedURLParams.length > 5}}
|
90 |
+
<tfoot>
|
91 |
+
<tr>
|
92 |
+
<th style="width: 2%;text-align: center"><div class="wf-whitelist-bulk-select wf-option-checkbox"><i class="wf-ion-ios-checkmark-empty" aria-hidden="true"></i></div></th>
|
93 |
+
<th style="width: 5%;"><?php _e('Enabled', 'wordfence'); ?></th>
|
94 |
+
<th><?php _e('URL', 'wordfence'); ?></th>
|
95 |
+
<th><?php _e('Param', 'wordfence'); ?></th>
|
96 |
+
<th><?php _e('Created', 'wordfence'); ?></th>
|
97 |
+
<th><?php _e('Source', 'wordfence'); ?></th>
|
98 |
+
<th><?php _e('User', 'wordfence'); ?></th>
|
99 |
+
<th><?php _e('IP', 'wordfence'); ?></th>
|
100 |
+
</tr>
|
101 |
+
{{/if}}
|
102 |
+
</tfoot>
|
103 |
+
<tbody>
|
104 |
+
{{each(idx, whitelistedURLParam) whitelistedURLParams}}
|
105 |
+
<tr data-index="${idx}" data-adding="{{if (whitelistedURLParam.adding)}}1{{else}}0{{/if}}" data-key="${whitelistedURLParam.path}|${whitelistedURLParam.paramKey}">
|
106 |
+
<td style="text-align: center;"><div class="wf-whitelist-table-bulk-checkbox wf-option-checkbox"><i class="wf-ion-ios-checkmark-empty" aria-hidden="true"></i></div></td>
|
107 |
+
<td style="text-align: center;"><div class="wf-whitelist-item-enabled wf-option-checkbox{{if (!whitelistedURLParam.data.disabled)}} wf-checked{{/if}}" data-original-value="{{if (!whitelistedURLParam.data.disabled)}}1{{else}}0{{/if}}"><i class="wf-ion-ios-checkmark-empty" aria-hidden="true"></i></div></td>
|
108 |
+
<td data-column="url">
|
109 |
+
<input name="replaceWhitelistedPath" type="hidden" value="${whitelistedURLParam.path}">
|
110 |
+
<span class="whitelist-display">${WFAD.htmlEscape(WFAD.base64_decode(whitelistedURLParam.path))}</span>
|
111 |
+
<input name="whitelistedPath" class="whitelist-edit whitelist-path" type="text"
|
112 |
+
value="${WFAD.htmlEscape(WFAD.base64_decode(whitelistedURLParam.path))}">
|
113 |
+
</td>
|
114 |
+
<td data-column="param">
|
115 |
+
<input name="replaceWhitelistedParam" type="hidden" value="${whitelistedURLParam.paramKey}">
|
116 |
+
<span class="whitelist-display">${WFAD.htmlEscape(WFAD.base64_decode(whitelistedURLParam.paramKey))}</span>
|
117 |
+
<input name="whitelistedParam" class="whitelist-edit whitelist-param-key"
|
118 |
+
type="text" value="${WFAD.htmlEscape(WFAD.base64_decode(whitelistedURLParam.paramKey))}">
|
119 |
+
</td>
|
120 |
+
<td>
|
121 |
+
{{if (whitelistedURLParam.data.timestamp)}}
|
122 |
+
${WFAD.dateFormat((new Date(whitelistedURLParam.data.timestamp * 1000)))}
|
123 |
+
{{else}}
|
124 |
+
-
|
125 |
+
{{/if}}
|
126 |
+
</td>
|
127 |
+
<td data-column="source">
|
128 |
+
{{if (whitelistedURLParam.data.description)}}
|
129 |
+
${whitelistedURLParam.data.description}
|
130 |
+
{{else}}
|
131 |
+
-
|
132 |
+
{{/if}}
|
133 |
+
</td>
|
134 |
+
<td data-column="user">
|
135 |
+
{{if (whitelistedURLParam.data.userID)}}
|
136 |
+
{{if (whitelistedURLParam.data.username)}}
|
137 |
+
${whitelistedURLParam.data.username}
|
138 |
+
{{else}}
|
139 |
+
${whitelistedURLParam.data.userID}
|
140 |
+
{{/if}}
|
141 |
+
{{else}}
|
142 |
+
-
|
143 |
+
{{/if}}
|
144 |
+
</td>
|
145 |
+
<td data-column="ip">
|
146 |
+
{{if (whitelistedURLParam.data.ip)}}
|
147 |
+
${whitelistedURLParam.data.ip}
|
148 |
+
{{else}}
|
149 |
+
-
|
150 |
+
{{/if}}
|
151 |
+
</td>
|
152 |
+
</tr>
|
153 |
+
{{/each}}
|
154 |
+
{{if (whitelistedURLParams.length == 0)}}
|
155 |
+
<tr>
|
156 |
+
<td colspan="8"><?php _e('No whitelisted URLs currently set.', 'wordfence'); ?></td>
|
157 |
+
</tr>
|
158 |
+
{{/if}}
|
159 |
+
</tbody>
|
160 |
+
</table>
|
161 |
+
</div>
|
162 |
+
</script>
|
163 |
+
<script type="application/javascript">
|
164 |
+
(function($) {
|
165 |
+
function whitelistCheckAllVisible() {
|
166 |
+
$('.wf-whitelist-bulk-select.wf-option-checkbox').toggleClass('wf-checked', true);
|
167 |
+
$('.wf-whitelist-table-bulk-checkbox.wf-option-checkbox').each(function() {
|
168 |
+
$(this).toggleClass('wf-checked', $(this).closest('tr').is(':visible'));
|
169 |
+
});
|
170 |
+
}
|
171 |
+
|
172 |
+
function whitelistUncheckAll() {
|
173 |
+
$('.wf-whitelist-bulk-select.wf-option-checkbox').toggleClass('wf-checked', false);
|
174 |
+
$('.wf-whitelist-table-bulk-checkbox.wf-option-checkbox').toggleClass('wf-checked', false);
|
175 |
+
}
|
176 |
+
|
177 |
+
$(window).on('wordfenceWAFInstallWhitelistEventHandlers', function() {
|
178 |
+
//Enabled/Disabled
|
179 |
+
$('.wf-whitelist-item-enabled.wf-option-checkbox').each(function() {
|
180 |
+
$(this).on('click', function(e) {
|
181 |
+
e.preventDefault();
|
182 |
+
e.stopPropagation();
|
183 |
+
|
184 |
+
var row = $(this).closest('tr');
|
185 |
+
var key = row.data('key');
|
186 |
+
var value = $(this).hasClass('wf-checked') ? 1 : 0;
|
187 |
+
if (value) {
|
188 |
+
$(this).removeClass('wf-checked');
|
189 |
+
value = 0;
|
190 |
+
}
|
191 |
+
else {
|
192 |
+
$(this).addClass('wf-checked');
|
193 |
+
value = 1;
|
194 |
+
}
|
195 |
+
|
196 |
+
WFAD.wafWhitelistedChangeEnabled(key, value);
|
197 |
+
WFAD.updatePendingChanges();
|
198 |
+
});
|
199 |
+
});
|
200 |
+
|
201 |
+
//Header/Footer Bulk Action
|
202 |
+
$('.wf-whitelist-bulk-select.wf-option-checkbox').each(function() {
|
203 |
+
$(this).on('click', function(e) {
|
204 |
+
e.preventDefault();
|
205 |
+
e.stopPropagation();
|
206 |
+
|
207 |
+
if ($(this).hasClass('wf-checked')) {
|
208 |
+
$(this).removeClass('wf-checked');
|
209 |
+
whitelistUncheckAll();
|
210 |
+
}
|
211 |
+
else {
|
212 |
+
$(this).addClass('wf-checked');
|
213 |
+
whitelistCheckAllVisible();
|
214 |
+
}
|
215 |
+
});
|
216 |
+
});
|
217 |
+
|
218 |
+
//Row Bulk Action
|
219 |
+
$('.wf-whitelist-table-bulk-checkbox.wf-option-checkbox').each(function() {
|
220 |
+
$(this).on('click', function(e) {
|
221 |
+
e.preventDefault();
|
222 |
+
e.stopPropagation();
|
223 |
+
|
224 |
+
var row = $(this).closest('tr');
|
225 |
+
var key = row.data('key');
|
226 |
+
var value = $(this).hasClass('wf-checked') ? 1 : 0;
|
227 |
+
if (value) {
|
228 |
+
$(this).removeClass('wf-checked');
|
229 |
+
}
|
230 |
+
else {
|
231 |
+
$(this).addClass('wf-checked');
|
232 |
+
}
|
233 |
+
|
234 |
+
var totalCount = $('.wf-whitelist-table-bulk-checkbox.wf-option-checkbox:visible').length;
|
235 |
+
var checkedCount = $('.wf-whitelist-table-bulk-checkbox.wf-option-checkbox.wf-checked:visible').length;
|
236 |
+
if (totalCount == 0 || (checkedCount != totalCount)) {
|
237 |
+
$('.wf-whitelist-bulk-select.wf-option-checkbox').removeClass('wf-checked');
|
238 |
+
}
|
239 |
+
else {
|
240 |
+
$('.wf-whitelist-bulk-select.wf-option-checkbox').addClass('wf-checked');
|
241 |
+
}
|
242 |
+
});
|
243 |
+
});
|
244 |
+
|
245 |
+
$(window).trigger('wordfenceWAFApplyWhitelistFilter');
|
246 |
+
});
|
247 |
+
|
248 |
+
$(window).on('wordfenceWAFApplyWhitelistFilter', function() {
|
249 |
+
if (WFAD.wafData.whitelistedURLParams.length == 0) {
|
250 |
+
return;
|
251 |
+
}
|
252 |
+
|
253 |
+
var filterColumn = $('#whitelist-table-controls select').val();
|
254 |
+
var filterValue = $('input[name="filterValue"]').val();
|
255 |
+
if (typeof filterValue != 'string' || filterValue.length == 0) {
|
256 |
+
$('#waf-whitelisted-urls-wrapper .whitelist-table > tbody > tr[data-index]').show();
|
257 |
+
}
|
258 |
+
else {
|
259 |
+
$('#waf-whitelisted-urls-wrapper .whitelist-table > tbody > tr[data-index]').each(function() {
|
260 |
+
var text = $(this).find('td[data-column="' + filterColumn + '"]').text();
|
261 |
+
if (text.indexOf(filterValue) > -1) {
|
262 |
+
$(this).show();
|
263 |
+
}
|
264 |
+
else {
|
265 |
+
$(this).hide();
|
266 |
+
}
|
267 |
+
});
|
268 |
+
}
|
269 |
+
});
|
270 |
+
|
271 |
+
$(window).on('wordfenceWAFConfigPageRender', function() {
|
272 |
+
//Add event handler to whitelist checkboxes
|
273 |
+
$(window).trigger('wordfenceWAFInstallWhitelistEventHandlers');
|
274 |
+
});
|
275 |
+
})(jQuery);
|
276 |
+
</script>
|
wordfence.php
CHANGED
@@ -4,15 +4,15 @@ Plugin Name: Wordfence Security
|
|
4 |
Plugin URI: http://www.wordfence.com/
|
5 |
Description: Wordfence Security - Anti-virus, Firewall and Malware Scan
|
6 |
Author: Wordfence
|
7 |
-
Version: 7.0.
|
8 |
Author URI: http://www.wordfence.com/
|
9 |
Network: true
|
10 |
*/
|
11 |
if(defined('WP_INSTALLING') && WP_INSTALLING){
|
12 |
return;
|
13 |
}
|
14 |
-
define('WORDFENCE_VERSION', '7.0.
|
15 |
-
define('WORDFENCE_BUILD_NUMBER', '
|
16 |
define('WORDFENCE_BASENAME', function_exists('plugin_basename') ? plugin_basename(__FILE__) :
|
17 |
basename(dirname(__FILE__)) . '/' . basename(__FILE__));
|
18 |
|
4 |
Plugin URI: http://www.wordfence.com/
|
5 |
Description: Wordfence Security - Anti-virus, Firewall and Malware Scan
|
6 |
Author: Wordfence
|
7 |
+
Version: 7.0.3
|
8 |
Author URI: http://www.wordfence.com/
|
9 |
Network: true
|
10 |
*/
|
11 |
if(defined('WP_INSTALLING') && WP_INSTALLING){
|
12 |
return;
|
13 |
}
|
14 |
+
define('WORDFENCE_VERSION', '7.0.3');
|
15 |
+
define('WORDFENCE_BUILD_NUMBER', '1518460764');
|
16 |
define('WORDFENCE_BASENAME', function_exists('plugin_basename') ? plugin_basename(__FILE__) :
|
17 |
basename(dirname(__FILE__)) . '/' . basename(__FILE__));
|
18 |
|