Wordfence Security – Firewall & Malware Scan - Version 7.0.3

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 Icon 128x128 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

Files changed (100) hide show
  1. css/{activity-report-widget.1517414961.css → activity-report-widget.1518460764.css} +0 -0
  2. css/{diff.1517414961.css → diff.1518460764.css} +5 -0
  3. css/{dt_table.1517414961.css → dt_table.1518460764.css} +0 -0
  4. css/{fullLog.1517414961.css → fullLog.1518460764.css} +0 -0
  5. css/{iptraf.1517414961.css → iptraf.1518460764.css} +0 -0
  6. css/{jquery-ui-timepicker-addon.1517414961.css → jquery-ui-timepicker-addon.1518460764.css} +0 -0
  7. css/{jquery-ui.min.1517414961.css → jquery-ui.min.1518460764.css} +0 -0
  8. css/{jquery-ui.structure.min.1517414961.css → jquery-ui.structure.min.1518460764.css} +0 -0
  9. css/{jquery-ui.theme.min.1517414961.css → jquery-ui.theme.min.1518460764.css} +0 -0
  10. css/main.1517414961.css +0 -1
  11. css/main.1518460764.css +1 -0
  12. css/{phpinfo.1517414961.css → phpinfo.1518460764.css} +0 -0
  13. css/{select2.min.1517414961.css → select2.min.1518460764.css} +0 -0
  14. css/{wf-adminbar.1517414961.css → wf-adminbar.1518460764.css} +0 -0
  15. css/{wf-colorbox.1517414961.css → wf-colorbox.1518460764.css} +0 -0
  16. css/{wf-font-awesome.1517414961.css → wf-font-awesome.1518460764.css} +0 -0
  17. css/{wf-ionicons.1517414961.css → wf-ionicons.1518460764.css} +0 -0
  18. css/wf-onboarding.1517414961.css +0 -1
  19. css/wf-onboarding.1518460764.css +1 -0
  20. css/{wordfenceBox.1517414961.css → wordfenceBox.1518460764.css} +0 -0
  21. js/{Chart.bundle.min.1517414961.js → Chart.bundle.min.1518460764.js} +0 -0
  22. js/{admin.1517414961.js → admin.1518460764.js} +87 -25
  23. js/{admin.ajaxWatcher.1517414961.js → admin.ajaxWatcher.1518460764.js} +0 -0
  24. js/{admin.liveTraffic.1517414961.js → admin.liveTraffic.1518460764.js} +8 -2
  25. js/{date.1517414961.js → date.1518460764.js} +0 -0
  26. js/{jquery-ui-timepicker-addon.1517414961.js → jquery-ui-timepicker-addon.1518460764.js} +0 -0
  27. js/{jquery.colorbox-min.1517414961.js → jquery.colorbox-min.1518460764.js} +0 -0
  28. js/{jquery.colorbox.1517414961.js → jquery.colorbox.1518460764.js} +0 -0
  29. js/{jquery.dataTables.min.1517414961.js → jquery.dataTables.min.1518460764.js} +0 -0
  30. js/{jquery.qrcode.min.1517414961.js → jquery.qrcode.min.1518460764.js} +0 -0
  31. js/{jquery.tmpl.min.1517414961.js → jquery.tmpl.min.1518460764.js} +0 -0
  32. js/{jquery.tools.min.1517414961.js → jquery.tools.min.1518460764.js} +0 -0
  33. js/{knockout-3.3.0.1517414961.js → knockout-3.3.0.1518460764.js} +0 -0
  34. js/{perf.1517414961.js → perf.1518460764.js} +0 -0
  35. js/{select2.min.1517414961.js → select2.min.1518460764.js} +0 -0
  36. js/{wfdashboard.1517414961.js → wfdashboard.1518460764.js} +0 -0
  37. js/{wfdropdown.1517414961.js → wfdropdown.1518460764.js} +0 -0
  38. js/{wfglobal.1517414961.js → wfglobal.1518460764.js} +0 -0
  39. js/{wfpopover.1517414961.js → wfpopover.1518460764.js} +0 -0
  40. lib/Diff/Renderer/Html/SideBySide.php +2 -2
  41. lib/menu_dashboard_options.php +33 -751
  42. lib/menu_firewall_blocking_options.php +7 -77
  43. lib/menu_firewall_waf_options.php +85 -1375
  44. lib/menu_options.php +402 -0
  45. lib/menu_scanner_options.php +27 -209
  46. lib/menu_tools_commentSpam.php +6 -80
  47. lib/menu_tools_livetraffic.php +56 -148
  48. lib/menu_tools_twoFactor.php +5 -44
  49. lib/wfConfig.php +143 -2
  50. lib/wfLog.php +9 -0
  51. lib/wfScanEngine.php +13 -7
  52. lib/wordfenceClass.php +110 -24
  53. lib/wordfenceScanner.php +2 -1
  54. lib/wordfenceURLHoover.php +2 -2
  55. models/block/wfBlock.php +8 -0
  56. readme.txt +18 -2
  57. views/blocking/option-bypass-cookie.php +1 -1
  58. views/blocking/option-bypass-redirect.php +2 -2
  59. views/blocking/options-group-advanced-country.php +91 -0
  60. views/common/section-subtitle.php +29 -0
  61. views/dashboard/option-howgetips.php +2 -2
  62. views/dashboard/options-group-alert.php +166 -0
  63. views/dashboard/options-group-dashboard.php +116 -0
  64. views/dashboard/options-group-email-summary.php +71 -0
  65. views/dashboard/options-group-general.php +154 -0
  66. views/dashboard/options-group-import.php +178 -0
  67. views/dashboard/options-group-license.php +154 -0
  68. views/dashboard/options-group-view-customization.php +66 -0
  69. views/options/block-all-options-controls.php +150 -0
  70. views/options/option-select.php +3 -1
  71. views/options/option-text.php +2 -1
  72. views/options/option-textarea.php +3 -1
  73. views/options/option-toggled-boolean-switch.php +3 -1
  74. views/options/option-toggled-multiple.php +2 -1
  75. views/options/option-toggled-segmented.php +3 -1
  76. views/options/option-toggled-select.php +5 -2
  77. views/options/option-toggled-sub.php +5 -2
  78. views/options/option-toggled-textarea.php +5 -2
  79. views/options/option-toggled.php +3 -1
  80. views/options/option-token.php +3 -1
  81. views/options/options-title.php +80 -0
  82. views/scanner/option-scan-signatures.php +2 -2
  83. views/scanner/options-group-advanced.php +56 -0
  84. views/scanner/options-group-basic.php +37 -0
  85. views/scanner/options-group-general.php +89 -0
  86. views/scanner/options-group-performance.php +69 -0
  87. views/scanner/options-group-scan-schedule.php +39 -0
  88. views/scanner/scan-type.php +1 -1
  89. views/tools/options-group-2fa.php +73 -0
  90. views/tools/options-group-comment-spam.php +94 -0
  91. views/tools/options-group-live-traffic.php +135 -0
  92. views/waf/option-rate-limit.php +5 -2
  93. views/waf/option-rules.php +1 -1
  94. views/waf/option-whitelist.php +1 -1
  95. views/waf/options-group-advanced-firewall.php +178 -0
  96. views/waf/options-group-basic-firewall.php +450 -0
  97. views/waf/options-group-brute-force.php +244 -0
  98. views/waf/options-group-rate-limiting.php +264 -0
  99. views/waf/options-group-whitelisted.php +276 -0
  100. 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
- jQuery('<div id="wordfenceWorking">Wordfence is working...</div>').appendTo('body');
 
 
 
 
 
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.colorboxModal((WFAD.isSmallScreen ? '300px' : '400px'), 'An error occurred', res.errorMsg);
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.colorboxModal((WFAD.isSmallScreen ? '300px' : '400px'), 'An error occurred', res.errorMsg);
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.colorboxModal((WFAD.isSmallScreen ? '300px' : '400px'), 'An error occurred', res.errorMsg);
1597
  }
1598
  });
1599
  });
@@ -1763,7 +1768,7 @@
1763
  self.nonce = json.nonce;
1764
  }
1765
  if (json && json.errorMsg) {
1766
- self.colorboxModal((self.isSmallScreen ? '300px' : '400px'), 'An error occurred', json.errorMsg);
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
- self.colorboxModal((self.isSmallScreen ? '300px' : '400px'), 'An error occurred', res.cerrorMsg);
1915
  });
1916
  }
1917
  },
@@ -1929,7 +1965,7 @@
1929
  });
1930
  } else if (res.cerrorMsg) {
1931
  self.loadIssues(function() {
1932
- self.colorboxModal((self.isSmallScreen ? '300px' : '400px'), 'An error occurred', res.cerrorMsg);
1933
  });
1934
  }
1935
  });
@@ -1963,7 +1999,7 @@
1963
  });
1964
  } else {
1965
  self.loadIssues(function() {
1966
- self.colorboxModal((self.isSmallScreen ? '300px' : '400px'), 'An error occurred', res.cerrorMsg);
1967
  });
1968
  }
1969
  });
@@ -2985,7 +3021,7 @@
2985
  });
2986
  } else if (res.errorMsg) {
2987
  self.loadIssues(function() {
2988
- self.colorboxModal((self.isSmallScreen ? '300px' : '400px'), 'An error occurred', res.errorMsg);
2989
  });
2990
  }
2991
  });
@@ -3002,7 +3038,7 @@
3002
  });
3003
  } else if (res.errorMsg) {
3004
  self.loadIssues(function() {
3005
- self.colorboxModal((self.isSmallScreen ? '300px' : '400px'), 'An error occurred', res.errorMsg);
3006
  });
3007
  }
3008
  });
@@ -3153,15 +3189,15 @@
3153
  },
3154
 
3155
  wafConfigPageRender: function() {
3156
- this.wafData.ruleCount = 0;
3157
- if (this.wafData.rules) {
3158
- this.wafData.ruleCount = Object.keys(this.wafData.rules).length;
3159
  }
3160
 
3161
- var whitelistedIPsEl = $('#waf-whitelisted-urls-tmpl').tmpl(this.wafData);
3162
  $('#waf-whitelisted-urls-wrapper').html(whitelistedIPsEl);
3163
 
3164
- var rulesEl = $('#waf-rules-tmpl').tmpl(this.wafData);
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 (this.wafData['rulesLastUpdated']) {
3175
- var date = new Date(this.wafData['rulesLastUpdated'] * 1000);
3176
- this.renderWAFRulesLastUpdated(date);
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
- window.location.reload(true);
 
 
 
 
 
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 firstRow = liveTrafficListings.children().filter(':visible').first();
860
- if (firstRow.length > 0 && firstRow.offset().top + firstRow.height() < win.scrollTop() + adminBar.outerHeight() + 20) {
 
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
- <div class="wf-row">
233
- <div class="wf-col-xs-12">
234
- <div class="wf-block<?php echo (wfPersistenceController::shared()->isActive('global-options-license') ? ' wf-active' : '') ?>" data-persistence-key="global-options-license">
235
- <div class="wf-block-header">
236
- <div class="wf-block-header-content">
237
- <div class="wf-block-title">
238
- <strong><?php _e('Wordfence License', 'wordfence'); ?></strong>
239
- </div>
240
- <div class="wf-block-header-action"><div class="wf-block-header-action-disclosure"></div></div>
241
- </div>
242
- </div>
243
- <div class="wf-block-content">
244
- <ul class="wf-block-list">
245
- <li>
246
- <ul class="wf-flex-vertical wf-flex-full-width wf-add-top wf-add-bottom">
247
- <li><strong><?php _e('Your Wordfence License', 'wordfence'); ?></strong></li>
248
- <li>
249
- <ul class="wf-option wf-option-text" data-text-option="apiKey" data-original-text-value="<?php echo esc_attr(wfConfig::get('apiKey')); ?>">
250
- <li class="wf-option-title">
251
- <?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>
252
- </li>
253
- <li class="wf-option-text wf-option-full-width wf-no-right">
254
- <input type="text" value="<?php echo esc_attr(wfConfig::get('apiKey')); ?>" id="wf-license-input">
255
- </li>
256
- </ul>
257
- </li>
258
- <li>
259
- <ul class="wf-flex-horizontal wf-flex-vertical-xs wf-flex-full-width">
260
- <li><strong><?php _e('License Status:', 'wordfence'); ?></strong>
261
- <?php
262
- if (wfConfig::get('hasKeyConflict')) {
263
- _e('Premium License already in use', 'wordfence');
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>&nbsp;&nbsp;<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>&nbsp;&nbsp;<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>&nbsp;&nbsp;<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>&nbsp;&nbsp;<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 &amp; 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>&nbsp;&nbsp;<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 &mdash; 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 top level Blocking menu option', 'wordfence'),
112
  ))->render();
113
  ?>
114
  </li>
@@ -117,82 +117,12 @@ if (wfOnboardingController::shouldShowAttempt3()) {
117
  </div>
118
  </div>
119
  </div> <!-- end general options -->
120
- <div class="wf-row">
121
- <div class="wf-col-xs-12">
122
- <div class="wf-block<?php echo ((!wfConfig::get('isPaid') && !wfPersistenceController::shared()->isConfigured('blocking-options-country')) || wfPersistenceController::shared()->isActive('blocking-options-country') ? ' wf-active' : '') ?>" data-persistence-key="blocking-options-country">
123
- <div class="wf-block-header">
124
- <div class="wf-block-header-content">
125
- <div class="wf-block-title">
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
- <div class="wf-row">
151
- <div class="wf-col-xs-12">
152
- <div class="wf-block wf-always-active">
153
- <div class="wf-block-header">
154
- <div class="wf-block-header-content">
155
- <div class="wf-block-title">
156
- <strong><?php _e('Basic Firewall Options', 'wordfence'); ?></strong>
157
- </div>
158
- </div>
159
- </div>
160
- <div class="wf-block-content">
161
- <ul class="wf-block-list wf-block-list-horizontal">
162
- <li class="wf-flex-vertical wf-flex-align-left wf-flex-full-width">
163
- <h3><?php esc_html_e('Web Application Firewall Status', 'wordfence'); ?></h3>
164
- <?php if ($firewall->isSubDirectoryInstallation()): ?>
165
- <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>
166
- <?php else: ?>
167
- <p class="wf-no-top">
168
- <?php $wafStatus = $firewall->firewallMode(); ?>
169
- <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>
170
- <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>
171
- <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>
172
- </p>
173
- <p class="wf-no-top wf-add-bottom">
174
- <select id="input-wafStatus" data-original-value="<?php echo esc_attr($wafStatus); ?>" name="wafStatus" class="wf-form-control"<?php echo !WFWAF_ENABLED ? ' disabled' : '' ?>>
175
- <option<?php echo $wafStatus == wfFirewall::FIREWALL_MODE_ENABLED ? ' selected' : '' ?> class="wafStatus-enabled" value="enabled"><?php _e('Enabled and Protecting', 'wordfence'); ?></option>
176
- <option<?php echo $wafStatus == wfFirewall::FIREWALL_MODE_LEARNING ? ' selected' : '' ?> class="wafStatus-learning-mode" value="learning-mode"><?php _e('Learning Mode', 'wordfence'); ?></option>
177
- <option<?php echo $wafStatus == wfFirewall::FIREWALL_MODE_DISABLED ? ' selected' : '' ?> class="wafStatus-disabled" value="disabled"><?php _e('Disabled', 'wordfence'); ?></option>
178
- </select>
179
- <script type="application/javascript">
180
- (function($) {
181
- $(function() {
182
- $('#input-wafStatus').select2({
183
- minimumResultsForSearch: -1,
184
- width: '200px'
185
- }).on('change', function() {
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>&nbsp;&nbsp;<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 &quot;Spamvertised&quot;', '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
- <div class="wf-row">
147
- <div class="wf-col-xs-12">
148
- <div class="wf-block<?php echo (wfPersistenceController::shared()->isActive('wf-scanner-options-schedule') ? ' wf-active' : '') ?>" data-persistence-key="wf-scanner-options-schedule">
149
- <div class="wf-block-header">
150
- <div class="wf-block-header-content">
151
- <div class="wf-block-title">
152
- <strong><?php _e('Scan Scheduling', 'wordfence'); ?></strong>
153
- </div>
154
- <div class="wf-block-header-action"><div class="wf-block-header-action-disclosure"></div></div>
155
- </div>
156
- </div>
157
- <div class="wf-block-content">
158
- <ul class="wf-block-list">
159
- <?php
160
- echo wfView::create('scanner/scan-scheduling', array(
161
- 'scanner' => $scanner,
162
- ))->render();
163
- ?>
164
- </ul>
165
- </div>
166
- </div>
167
- </div>
168
- </div> <!-- end scan schedule -->
169
- <div class="wf-row">
170
- <div class="wf-col-xs-12">
171
- <div class="wf-block wf-always-active">
172
- <div class="wf-block-header">
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
- <div class="wf-row">
47
- <div class="wf-col-xs-12">
48
- <div class="wf-dashboard-item active">
49
- <div class="wf-dashboard-item-extra">
50
- <ul class="wf-dashboard-item-list">
51
- <li>
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
- <div id="wf-live-traffic-options" class="wf-row">
32
- <div class="wf-col-xs-12">
33
- <div class="wf-block<?php echo(wfPersistenceController::shared()->isActive('live-traffic-options') ? ' wf-active' : '') ?>" data-persistence-key="live-traffic-options">
34
- <div class="wf-block-header">
35
- <div class="wf-block-header-content">
36
- <div class="wf-block-title">
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
- <div class="wf-clearfix">
180
- <div id="wf-live-traffic-legend-placeholder"></div>
181
- <div id="wf-live-traffic-legend">
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
  &nbsp;&nbsp;
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
- </div>
199
- </div>
 
 
 
 
 
 
 
 
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, simply enable the setting labeled <strong>Always display expanded Live Traffic records</strong> in the <strong>Live Traffic Options</strong> section at the top of the page.', 'wordfence'); ?></p>
612
  <div class="wf-pointer-footer">
613
  <ul class="wf-tour-pagination">
614
  <li class="wf-active">&bullet;</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, simply enable the setting labeled <strong>Always display expanded Live Traffic records</strong> in the <strong>Live Traffic Options</strong> section at the top of the page.', 'wordfence'); ?></p>
643
  <div class="wf-pointer-footer">
644
  <ul class="wf-tour-pagination">
645
  <li class="wf-active">&bullet;</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
  &nbsp;&nbsp;
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">&bullet;</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">&bullet;</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
- <div class="wf-row">
124
- <div class="wf-col-xs-12">
125
- <div class="wf-block<?php echo(wfPersistenceController::shared()->isActive('wf-2fa-options') ? ' wf-active' : '') ?>" data-persistence-key="<?php echo esc_attr('wf-2fa-options') ?>">
126
- <div class="wf-block-header">
127
- <div class="wf-block-header-content">
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::synchronizeConfigSettings();
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::synchronizeConfigSettings();
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::synchronizeConfigSettings(); }
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::synchronizeConfigSettings(); }
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::synchronizeConfigSettings(); }
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::synchronizeConfigSettings();
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) > 3) {
3068
- foreach($countries as $c) {
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'] = esc_html($wfBulkCountries[$countries[0]]);
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
- return array('success' => true);
 
 
 
 
 
 
 
 
 
 
 
 
 
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.3
6
- Stable tag: 7.0.2
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>&nbsp;&nbsp;<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 &amp; 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 &mdash; 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>&nbsp;&nbsp;<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>&nbsp;&nbsp;<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>&nbsp;&nbsp;<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>&nbsp;&nbsp;<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>&nbsp;&nbsp;<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>&nbsp;&nbsp;<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); ?>">&bullet;&bullet;&bullet;</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>&nbsp;&nbsp;<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.2
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.2');
15
- define('WORDFENCE_BUILD_NUMBER', '1517414961');
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