Shield Security for WordPress - Version 7.0.0

Version Description

  • Current Release = Released: 28th January, 2018 - Release Notes
Download this release

Release Info

Developer paultgoodchild
Plugin Icon 128x128 Shield Security for WordPress
Version 7.0.0
Comparing to
See all releases

Code changes from version 6.10.9 to 7.0.0

icwp-plugin-controller.php CHANGED
@@ -1,6 +1,6 @@
1
  <?php
2
  /**
3
- * Copyright (c) 2018 One Dollar Plugin <support@onedollarplugin.com>
4
  * All rights reserved.
5
  * "Shield" (formerly WordPress Simple Firewall) is distributed under the GNU
6
  * General Public License, Version 2, June 1991. Copyright (C) 1989, 1991 Free
@@ -17,14 +17,12 @@
17
  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
18
  */
19
 
20
- if ( class_exists( 'ICWP_WPSF_Plugin_Controller', false ) ) {
21
- return;
22
- }
23
 
24
  class ICWP_WPSF_Plugin_Controller extends ICWP_WPSF_Foundation {
25
 
26
  /**
27
- * @var stdClass
28
  */
29
  private static $oControllerOptions;
30
 
@@ -36,7 +34,7 @@ class ICWP_WPSF_Plugin_Controller extends ICWP_WPSF_Foundation {
36
  /**
37
  * @var string
38
  */
39
- private static $sRootFile;
40
 
41
  /**
42
  * @var boolean
@@ -49,14 +47,14 @@ class ICWP_WPSF_Plugin_Controller extends ICWP_WPSF_Foundation {
49
  protected $sForceOffFile;
50
 
51
  /**
52
- * @var boolean
53
  */
54
  protected $bResetPlugin;
55
 
56
  /**
57
- * @var string
58
  */
59
- private $sPluginUrl;
60
 
61
  /**
62
  * @var string
@@ -68,11 +66,6 @@ class ICWP_WPSF_Plugin_Controller extends ICWP_WPSF_Foundation {
68
  */
69
  private $aRequirementsMessages;
70
 
71
- /**
72
- * @var array
73
- */
74
- private $aImportedOptions;
75
-
76
  /**
77
  * @var string
78
  */
@@ -109,10 +102,11 @@ class ICWP_WPSF_Plugin_Controller extends ICWP_WPSF_Foundation {
109
  protected $aModules;
110
 
111
  /**
112
- * @param $sRootFile
113
  * @return ICWP_WPSF_Plugin_Controller
 
114
  */
115
- public static function GetInstance( $sRootFile ) {
116
  if ( !isset( self::$oInstance ) ) {
117
  self::$oInstance = new self( $sRootFile );
118
  }
@@ -124,23 +118,23 @@ class ICWP_WPSF_Plugin_Controller extends ICWP_WPSF_Foundation {
124
  * @throws Exception
125
  */
126
  private function __construct( $sRootFile ) {
127
- self::$sRootFile = $sRootFile;
 
128
  $this->checkMinimumRequirements();
129
  $this->doRegisterHooks();
130
- $this->loadFactory(); // so we know it's loaded whenever we need it. Cuz we need it.
131
  $this->doLoadTextDomain();
 
132
 
133
- // Rather than rely on the play nice of other plugins (which they don't do) we now must
134
- // forcefully use the autoloader. We do only if it's OUR module page and PHP version is supported.
135
- // This was added in v6.7 because All-In-One Events Cal was forcing their crap TWIG setup upon us
136
- if ( $this->isThisPluginModuleRequest() && $this->loadDP()->getPhpVersionIsAtLeast( '5.4' ) ) {
137
- $this->loadAutoload();
138
- }
139
  }
140
 
141
  /**
142
  * @return array
143
- * @throws Exception
144
  */
145
  private function readPluginSpecification() {
146
  $aSpec = array();
@@ -148,7 +142,7 @@ class ICWP_WPSF_Plugin_Controller extends ICWP_WPSF_Foundation {
148
  if ( !empty( $sContents ) ) {
149
  $aSpec = json_decode( $sContents, true );
150
  if ( empty( $aSpec ) ) {
151
- throw new Exception( 'YAML parser could not load to process the plugin spec configuration.' );
152
  }
153
  }
154
  return $aSpec;
@@ -168,7 +162,7 @@ class ICWP_WPSF_Plugin_Controller extends ICWP_WPSF_Foundation {
168
 
169
  $sMinimumPhp = $this->getPluginSpec_Requirement( 'php' );
170
  if ( !empty( $sMinimumPhp ) ) {
171
- if ( version_compare( phpversion(), $sMinimumPhp, '<' ) ) {
172
  $aRequirementsMessages[] = sprintf( 'PHP does not meet minimum version. Your version: %s. Required Version: %s.', PHP_VERSION, $sMinimumPhp );
173
  $bMeetsRequirements = false;
174
  }
@@ -242,7 +236,9 @@ class ICWP_WPSF_Plugin_Controller extends ICWP_WPSF_Foundation {
242
  */
243
  protected function getRequirementsMessages() {
244
  if ( !isset( $this->aRequirementsMessages ) ) {
245
- $this->aRequirementsMessages = array();
 
 
246
  }
247
  return $this->aRequirementsMessages;
248
  }
@@ -259,9 +255,14 @@ class ICWP_WPSF_Plugin_Controller extends ICWP_WPSF_Foundation {
259
  /**
260
  */
261
  public function onWpDeactivatePlugin() {
262
- if ( $this->isPluginAdmin() && apply_filters( $this->prefix( 'delete_on_deactivate' ), false ) ) {
263
- do_action( $this->prefix( 'delete_plugin' ) );
264
- $this->deletePluginControllerOptions();
 
 
 
 
 
265
  }
266
  $this->deleteCronJobs();
267
  }
@@ -329,7 +330,6 @@ class ICWP_WPSF_Plugin_Controller extends ICWP_WPSF_Foundation {
329
  public function onWpLoaded() {
330
  if ( $this->isValidAdminArea() ) {
331
  $this->doPluginFormSubmit();
332
- $this->downloadOptionsExport();
333
  }
334
  }
335
 
@@ -365,24 +365,6 @@ class ICWP_WPSF_Plugin_Controller extends ICWP_WPSF_Foundation {
365
  echo implode( '', $aContent );
366
  }
367
 
368
- /**
369
- * @uses die()
370
- */
371
- private function downloadOptionsExport() {
372
- $oDp = $this->loadRequest();
373
- if ( $oDp->query( 'icwp_shield_export' ) == 1 ) {
374
- $aExportOptions = apply_filters( $this->prefix( 'gather_options_for_export' ), array() );
375
- if ( !empty( $aExportOptions ) && is_array( $aExportOptions ) ) {
376
- $oDp->downloadStringAsFile(
377
- wp_json_encode( $aExportOptions ),
378
- 'shield_options_export-'
379
- .$this->loadDP()->urlStripSchema( $this->loadWp()->getHomeUrl() )
380
- .'-'.date( 'y-m-d__H-i-s' ).'.txt'
381
- );
382
- }
383
- }
384
- }
385
-
386
  public function ajaxAction() {
387
  $sNonceAction = $this->loadRequest()->request( 'exec' );
388
  check_ajax_referer( $sNonceAction, 'exec_nonce' );
@@ -420,30 +402,6 @@ class ICWP_WPSF_Plugin_Controller extends ICWP_WPSF_Foundation {
420
  return in_array( $sEncoding, array( 'yaml', 'json' ) ) ? $sEncoding : 'yaml';
421
  }
422
 
423
- /**
424
- * @uses die()
425
- */
426
- public function getOptionsImportFromFile() {
427
-
428
- if ( !isset( $this->aImportedOptions ) ) {
429
- $this->aImportedOptions = array();
430
-
431
- $sFile = path_join( $this->getRootDir(), 'shield_options_export.txt' );
432
- $oFS = $this->loadFS();
433
- if ( $oFS->isFile( $sFile ) ) {
434
- $sOptionsString = $oFS->getFileContent( $sFile );
435
- if ( !empty( $sOptionsString ) && is_string( $sOptionsString ) ) {
436
- $aOptions = json_decode( $sOptionsString, true );
437
- if ( !empty( $aOptions ) && is_array( $aOptions ) ) {
438
- $this->aImportedOptions = $aOptions;
439
- }
440
- }
441
- $oFS->deleteFile( $sFile );
442
- }
443
- }
444
- return $this->aImportedOptions;
445
- }
446
-
447
  /**
448
  * @return bool
449
  */
@@ -530,15 +488,6 @@ class ICWP_WPSF_Plugin_Controller extends ICWP_WPSF_Foundation {
530
  $sSettingsLink = sprintf( $sLinkTemplate, $aMetaLink[ 'href' ], "_blank", $aMetaLink[ 'name' ] );;
531
  array_push( $aPluginMeta, $sSettingsLink );
532
  }
533
-
534
- if ( !$this->loadDP()->getPhpVersionIsAtLeast( '5.4' ) ) {
535
- $aPluginMeta[] = sprintf(
536
- '<a href="%s" target="_blank" title="%s" style="color: red;">%s</a>',
537
- 'https://icwp.io/dj',
538
- 'Upgrades Not Available',
539
- 'PHP Too Old!'
540
- );
541
- }
542
  }
543
  return $aPluginMeta;
544
  }
@@ -551,6 +500,10 @@ class ICWP_WPSF_Plugin_Controller extends ICWP_WPSF_Foundation {
551
 
552
  if ( $this->isValidAdminArea() ) {
553
 
 
 
 
 
554
  $aLinksToAdd = $this->getPluginSpec_ActionLinks( 'add' );
555
  if ( is_array( $aLinksToAdd ) ) {
556
 
@@ -692,8 +645,7 @@ class ICWP_WPSF_Plugin_Controller extends ICWP_WPSF_Foundation {
692
  * Displays a message in the plugins listing when a plugin has an update available.
693
  */
694
  public function onWpPluginUpdateMessage() {
695
- $sDefault = sprintf( 'Upgrade Now To Get The Latest Available %s Features.', $this->getHumanName() );
696
- $sMessage = apply_filters( $this->prefix( 'plugin_update_message' ), $sDefault );
697
  if ( empty( $sMessage ) ) {
698
  $sMessage = '';
699
  }
@@ -708,11 +660,13 @@ class ICWP_WPSF_Plugin_Controller extends ICWP_WPSF_Foundation {
708
  }
709
 
710
  /**
711
- * We protect against providing updates for Shield v7.0.0
712
  * @param stdClass $oUpdates
713
  * @return stdClass
714
  */
715
  public function blockIncompatibleUpdates( $oUpdates ) {
 
 
716
  $sFile = $this->getPluginBaseFile();
717
  if ( !empty( $oUpdates->response ) && isset( $oUpdates->response[ $sFile ] ) ) {
718
  if ( version_compare( $oUpdates->response[ $sFile ]->new_version, '7.0.0', '>=' )
@@ -720,6 +674,7 @@ class ICWP_WPSF_Plugin_Controller extends ICWP_WPSF_Foundation {
720
  unset( $oUpdates->response[ $sFile ] );
721
  }
722
  }
 
723
  return $oUpdates;
724
  }
725
 
@@ -1086,6 +1041,13 @@ class ICWP_WPSF_Plugin_Controller extends ICWP_WPSF_Foundation {
1086
  return false;
1087
  }
1088
 
 
 
 
 
 
 
 
1089
  /**
1090
  * only ever consider after WP INIT (when a logged-in user is recognised)
1091
  * @return bool
@@ -1097,6 +1059,13 @@ class ICWP_WPSF_Plugin_Controller extends ICWP_WPSF_Foundation {
1097
  );
1098
  }
1099
 
 
 
 
 
 
 
 
1100
  /**
1101
  * DO NOT CHANGE THIS IMPLEMENTATION. We call this as early as possible so that the
1102
  * current_user_can() never gets caught up in an infinite loop of permissions checking
@@ -1203,6 +1172,13 @@ class ICWP_WPSF_Plugin_Controller extends ICWP_WPSF_Foundation {
1203
  return $this->bRebuildOptions;
1204
  }
1205
 
 
 
 
 
 
 
 
1206
  /**
1207
  * @return boolean
1208
  */
@@ -1251,10 +1227,7 @@ class ICWP_WPSF_Plugin_Controller extends ICWP_WPSF_Foundation {
1251
  * @return string
1252
  */
1253
  public function getPluginUrl( $sPath = '' ) {
1254
- if ( empty( $this->sPluginUrl ) ) {
1255
- $this->sPluginUrl = plugins_url( '/', $this->getRootFile() );
1256
- }
1257
- return add_query_arg( array( 'ver' => $this->getVersion() ), $this->sPluginUrl.$sPath );
1258
  }
1259
 
1260
  /**
@@ -1383,6 +1356,13 @@ class ICWP_WPSF_Plugin_Controller extends ICWP_WPSF_Foundation {
1383
  return $this->getPath_SourceFile( 'lib/'.$sLibFile );
1384
  }
1385
 
 
 
 
 
 
 
 
1386
  /**
1387
  * Get the directory for the plugin source files with the trailing slash
1388
  * @param string $sSourceFile
@@ -1427,10 +1407,10 @@ class ICWP_WPSF_Plugin_Controller extends ICWP_WPSF_Foundation {
1427
  * @return string
1428
  */
1429
  public function getRootFile() {
1430
- if ( !isset( self::$sRootFile ) ) {
1431
- self::$sRootFile = __FILE__;
1432
  }
1433
- return self::$sRootFile;
1434
  }
1435
 
1436
  /**
@@ -1455,7 +1435,7 @@ class ICWP_WPSF_Plugin_Controller extends ICWP_WPSF_Foundation {
1455
  }
1456
 
1457
  /**
1458
- * @return stdClass
1459
  */
1460
  protected function getPluginControllerOptions() {
1461
  if ( !isset( self::$oControllerOptions ) ) {
@@ -1681,6 +1661,7 @@ class ICWP_WPSF_Plugin_Controller extends ICWP_WPSF_Foundation {
1681
  $this->loadFeatureHandler(
1682
  array(
1683
  'slug' => 'plugin',
 
1684
  'load_priority' => 10
1685
  )
1686
  );
@@ -1755,27 +1736,19 @@ class ICWP_WPSF_Plugin_Controller extends ICWP_WPSF_Foundation {
1755
  return $oHandler;
1756
  }
1757
 
1758
- if ( !empty( $aModProps[ 'min_php' ] ) && !$this->loadDP()
1759
- ->getPhpVersionIsAtLeast( $aModProps[ 'min_php' ] ) ) {
1760
  return null;
1761
  }
1762
 
1763
  $sFeatureName = str_replace( ' ', '', ucwords( str_replace( '_', ' ', $sModSlug ) ) );
1764
  $sOptionsVarName = sprintf( 'oFeatureHandler%s', $sFeatureName ); // e.g. oFeatureHandlerPlugin
1765
 
1766
- // e.g. features/firewall.php
1767
- $sSourceFile = $this->getPath_SourceFile( sprintf( 'features/%s.php', $sModSlug ) );
1768
- $sClassName = sprintf(
1769
- '%s_%s_FeatureHandler_%s',
1770
- strtoupper( $this->getParentSlug() ),
1771
- strtoupper( $this->getPluginSlug() ),
1772
- $sFeatureName
1773
- ); // e.g. ICWP_WPSF_FeatureHandler_Plugin
1774
 
1775
  // All this to prevent fatal errors if the plugin doesn't install/upgrade correctly
1776
- $bIncluded = @include_once( $sSourceFile );
1777
- $bClassExists = class_exists( $sClassName, false );
1778
- if ( $bClassExists ) {
1779
  if ( !isset( $this->{$sOptionsVarName} ) || $bRecreate ) {
1780
  $this->{$sOptionsVarName} = new $sClassName( $this, $aModProps );
1781
  }
@@ -1784,8 +1757,7 @@ class ICWP_WPSF_Plugin_Controller extends ICWP_WPSF_Foundation {
1784
  }
1785
  }
1786
  else {
1787
- $sMessage = sprintf( 'Source file for feature %s %s. ', $sModSlug, $bIncluded ? 'exists' : 'missing' );
1788
- $sMessage .= sprintf( 'Class "%s" %s', $sClassName, $bClassExists ? 'exists' : 'missing' );
1789
  throw new Exception( $sMessage );
1790
  }
1791
 
1
  <?php
2
  /**
3
+ * Copyright (c) 2019 One Dollar Plugin <support@onedollarplugin.com>
4
  * All rights reserved.
5
  * "Shield" (formerly WordPress Simple Firewall) is distributed under the GNU
6
  * General Public License, Version 2, June 1991. Copyright (C) 1989, 1991 Free
17
  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
18
  */
19
 
20
+ use \FernleafSystems\Wordpress\Services\Services;
 
 
21
 
22
  class ICWP_WPSF_Plugin_Controller extends ICWP_WPSF_Foundation {
23
 
24
  /**
25
+ * @var \stdClass
26
  */
27
  private static $oControllerOptions;
28
 
34
  /**
35
  * @var string
36
  */
37
+ private $sRootFile;
38
 
39
  /**
40
  * @var boolean
47
  protected $sForceOffFile;
48
 
49
  /**
50
+ * @var bool
51
  */
52
  protected $bResetPlugin;
53
 
54
  /**
55
+ * @var bool
56
  */
57
+ protected $bPluginDeleting = false;
58
 
59
  /**
60
  * @var string
66
  */
67
  private $aRequirementsMessages;
68
 
 
 
 
 
 
69
  /**
70
  * @var string
71
  */
102
  protected $aModules;
103
 
104
  /**
105
+ * @param string $sRootFile
106
  * @return ICWP_WPSF_Plugin_Controller
107
+ * @throws Exception
108
  */
109
+ public static function GetInstance( $sRootFile = null ) {
110
  if ( !isset( self::$oInstance ) ) {
111
  self::$oInstance = new self( $sRootFile );
112
  }
118
  * @throws Exception
119
  */
120
  private function __construct( $sRootFile ) {
121
+ $this->sRootFile = $sRootFile;
122
+ $this->loadServices();
123
  $this->checkMinimumRequirements();
124
  $this->doRegisterHooks();
 
125
  $this->doLoadTextDomain();
126
+ }
127
 
128
+ /**
129
+ * @throws Exception
130
+ */
131
+ private function loadServices() {
132
+ Services::GetInstance();
 
133
  }
134
 
135
  /**
136
  * @return array
137
+ * @throws \Exception
138
  */
139
  private function readPluginSpecification() {
140
  $aSpec = array();
142
  if ( !empty( $sContents ) ) {
143
  $aSpec = json_decode( $sContents, true );
144
  if ( empty( $aSpec ) ) {
145
+ throw new Exception( 'Could not load to process the plugin spec configuration.' );
146
  }
147
  }
148
  return $aSpec;
162
 
163
  $sMinimumPhp = $this->getPluginSpec_Requirement( 'php' );
164
  if ( !empty( $sMinimumPhp ) ) {
165
+ if ( version_compare( $this->loadDP()->getPhpVersion(), $sMinimumPhp, '<' ) ) {
166
  $aRequirementsMessages[] = sprintf( 'PHP does not meet minimum version. Your version: %s. Required Version: %s.', PHP_VERSION, $sMinimumPhp );
167
  $bMeetsRequirements = false;
168
  }
236
  */
237
  protected function getRequirementsMessages() {
238
  if ( !isset( $this->aRequirementsMessages ) ) {
239
+ $this->aRequirementsMessages = array(
240
+ '<h4>Shield Security Plugin - minimum site requirements are not met:</h4>'
241
+ );
242
  }
243
  return $this->aRequirementsMessages;
244
  }
255
  /**
256
  */
257
  public function onWpDeactivatePlugin() {
258
+ do_action( $this->prefix( 'pre_deactivate_plugin' ) );
259
+ if ( $this->isPluginAdmin() ) {
260
+ do_action( $this->prefix( 'deactivate_plugin' ) );
261
+ if ( apply_filters( $this->prefix( 'delete_on_deactivate' ), false ) ) {
262
+ $this->bPluginDeleting = true;
263
+ do_action( $this->prefix( 'delete_plugin' ) );
264
+ $this->deletePluginControllerOptions();
265
+ }
266
  }
267
  $this->deleteCronJobs();
268
  }
330
  public function onWpLoaded() {
331
  if ( $this->isValidAdminArea() ) {
332
  $this->doPluginFormSubmit();
 
333
  }
334
  }
335
 
365
  echo implode( '', $aContent );
366
  }
367
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
368
  public function ajaxAction() {
369
  $sNonceAction = $this->loadRequest()->request( 'exec' );
370
  check_ajax_referer( $sNonceAction, 'exec_nonce' );
402
  return in_array( $sEncoding, array( 'yaml', 'json' ) ) ? $sEncoding : 'yaml';
403
  }
404
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
405
  /**
406
  * @return bool
407
  */
488
  $sSettingsLink = sprintf( $sLinkTemplate, $aMetaLink[ 'href' ], "_blank", $aMetaLink[ 'name' ] );;
489
  array_push( $aPluginMeta, $sSettingsLink );
490
  }
 
 
 
 
 
 
 
 
 
491
  }
492
  return $aPluginMeta;
493
  }
500
 
501
  if ( $this->isValidAdminArea() ) {
502
 
503
+ if ( array_key_exists( 'edit', $aActionLinks ) ) {
504
+ unset( $aActionLinks[ 'edit' ] );
505
+ }
506
+
507
  $aLinksToAdd = $this->getPluginSpec_ActionLinks( 'add' );
508
  if ( is_array( $aLinksToAdd ) ) {
509
 
645
  * Displays a message in the plugins listing when a plugin has an update available.
646
  */
647
  public function onWpPluginUpdateMessage() {
648
+ $sMessage = _wpsf__( 'Upgrade Now To Keep Your Security Up-To-Date With The Latest Features.' );
 
649
  if ( empty( $sMessage ) ) {
650
  $sMessage = '';
651
  }
660
  }
661
 
662
  /**
663
+ * Use logic in here to prevent display of future incompatible updates
664
  * @param stdClass $oUpdates
665
  * @return stdClass
666
  */
667
  public function blockIncompatibleUpdates( $oUpdates ) {
668
+ /*
669
+ * No longer used: prevent upgrades to v7.0 for php < 5.4
670
  $sFile = $this->getPluginBaseFile();
671
  if ( !empty( $oUpdates->response ) && isset( $oUpdates->response[ $sFile ] ) ) {
672
  if ( version_compare( $oUpdates->response[ $sFile ]->new_version, '7.0.0', '>=' )
674
  unset( $oUpdates->response[ $sFile ] );
675
  }
676
  }
677
+ */
678
  return $oUpdates;
679
  }
680
 
1041
  return false;
1042
  }
1043
 
1044
+ /**
1045
+ * @return bool
1046
+ */
1047
+ public function isModulePage() {
1048
+ return strpos( Services::Request()->query( 'page' ), $this->prefix() ) === 0;
1049
+ }
1050
+
1051
  /**
1052
  * only ever consider after WP INIT (when a logged-in user is recognised)
1053
  * @return bool
1059
  );
1060
  }
1061
 
1062
+ /**
1063
+ * @return bool
1064
+ */
1065
+ public function isPluginDeleting() {
1066
+ return (bool)$this->bPluginDeleting;
1067
+ }
1068
+
1069
  /**
1070
  * DO NOT CHANGE THIS IMPLEMENTATION. We call this as early as possible so that the
1071
  * current_user_can() never gets caught up in an infinite loop of permissions checking
1172
  return $this->bRebuildOptions;
1173
  }
1174
 
1175
+ /**
1176
+ * @return bool
1177
+ */
1178
+ public function isUpgrading() {
1179
+ return $this->getIsRebuildOptionsFromFile();
1180
+ }
1181
+
1182
  /**
1183
  * @return boolean
1184
  */
1227
  * @return string
1228
  */
1229
  public function getPluginUrl( $sPath = '' ) {
1230
+ return add_query_arg( array( 'ver' => $this->getVersion() ), plugins_url( $sPath, $this->getRootFile() ) );
 
 
 
1231
  }
1232
 
1233
  /**
1356
  return $this->getPath_SourceFile( 'lib/'.$sLibFile );
1357
  }
1358
 
1359
+ /**
1360
+ * @return string
1361
+ */
1362
+ public function getPath_Autoload() {
1363
+ return $this->getPath_SourceFile( $this->getPluginSpec_Path( 'autoload' ) );
1364
+ }
1365
+
1366
  /**
1367
  * Get the directory for the plugin source files with the trailing slash
1368
  * @param string $sSourceFile
1407
  * @return string
1408
  */
1409
  public function getRootFile() {
1410
+ if ( !isset( $this->sRootFile ) ) {
1411
+ $this->sRootFile = __FILE__;
1412
  }
1413
+ return $this->sRootFile;
1414
  }
1415
 
1416
  /**
1435
  }
1436
 
1437
  /**
1438
+ * @return mixed|stdClass
1439
  */
1440
  protected function getPluginControllerOptions() {
1441
  if ( !isset( self::$oControllerOptions ) ) {
1661
  $this->loadFeatureHandler(
1662
  array(
1663
  'slug' => 'plugin',
1664
+ 'storage_key' => 'plugin',
1665
  'load_priority' => 10
1666
  )
1667
  );
1736
  return $oHandler;
1737
  }
1738
 
1739
+ if ( !empty( $aModProps[ 'min_php' ] )
1740
+ && !$this->loadDP()->getPhpVersionIsAtLeast( $aModProps[ 'min_php' ] ) ) {
1741
  return null;
1742
  }
1743
 
1744
  $sFeatureName = str_replace( ' ', '', ucwords( str_replace( '_', ' ', $sModSlug ) ) );
1745
  $sOptionsVarName = sprintf( 'oFeatureHandler%s', $sFeatureName ); // e.g. oFeatureHandlerPlugin
1746
 
1747
+ // e.g. ICWP_WPSF_FeatureHandler_Plugin
1748
+ $sClassName = sprintf( '%s_FeatureHandler_%s', strtoupper( $this->getPluginPrefix( '_' ) ), $sFeatureName );
 
 
 
 
 
 
1749
 
1750
  // All this to prevent fatal errors if the plugin doesn't install/upgrade correctly
1751
+ if ( class_exists( $sClassName ) ) {
 
 
1752
  if ( !isset( $this->{$sOptionsVarName} ) || $bRecreate ) {
1753
  $this->{$sOptionsVarName} = new $sClassName( $this, $aModProps );
1754
  }
1757
  }
1758
  }
1759
  else {
1760
+ $sMessage = sprintf( 'Class "%s" is missing', $sClassName );
 
1761
  throw new Exception( $sMessage );
1762
  }
1763
 
icwp-wpsf.php CHANGED
@@ -3,7 +3,7 @@
3
  * Plugin Name: Shield Security
4
  * Plugin URI: https://icwp.io/2f
5
  * Description: Powerful, Easy-To-Use #1 Rated WordPress Security System
6
- * Version: 6.10.9
7
  * Text Domain: wp-simple-firewall
8
  * Domain Path: /languages/
9
  * Author: One Dollar Plugin
@@ -11,7 +11,7 @@
11
  */
12
 
13
  /**
14
- * Copyright (c) 2018 One Dollar Plugin <support@onedollarplugin.com>
15
  * All rights reserved.
16
  * "Shield" (formerly WordPress Simple Firewall) is distributed under the GNU
17
  * General Public License, Version 2, June 1991. Copyright (C) 1989, 1991 Free
@@ -28,8 +28,11 @@
28
  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
29
  */
30
 
31
- if ( !defined( 'ICWP_DS' ) ) {
32
- define( 'ICWP_DS', DIRECTORY_SEPARATOR );
 
 
 
33
  }
34
 
35
  if ( !function_exists( '_wpsf_e' ) ) {
@@ -43,8 +46,7 @@ if ( !function_exists( '_wpsf__' ) ) {
43
  }
44
  }
45
 
46
- // makes it available to the extension also.
47
- require_once( dirname( __FILE__ ).'/src/common/icwp-foundation.php' );
48
 
49
  add_action( 'plugins_loaded', 'icwp_wpsf_init', 1 ); // use 0 for extensions to ensure hooks have been added.
50
  function icwp_wpsf_init() {
3
  * Plugin Name: Shield Security
4
  * Plugin URI: https://icwp.io/2f
5
  * Description: Powerful, Easy-To-Use #1 Rated WordPress Security System
6
+ * Version: 7.0.0
7
  * Text Domain: wp-simple-firewall
8
  * Domain Path: /languages/
9
  * Author: One Dollar Plugin
11
  */
12
 
13
  /**
14
+ * Copyright (c) 2019 One Dollar Plugin <support@onedollarplugin.com>
15
  * All rights reserved.
16
  * "Shield" (formerly WordPress Simple Firewall) is distributed under the GNU
17
  * General Public License, Version 2, June 1991. Copyright (C) 1989, 1991 Free
28
  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
29
  */
30
 
31
+ if ( version_compare( PHP_VERSION, '5.4.0', '<' ) ) {
32
+ global $sIcwpWpsfPluginFile;
33
+ $sIcwpWpsfPluginFile = plugin_basename( __FILE__ );
34
+ include_once( dirname( __FILE__ ).'/unsupported.php' );
35
+ return;
36
  }
37
 
38
  if ( !function_exists( '_wpsf_e' ) ) {
46
  }
47
  }
48
 
49
+ require_once( dirname( __FILE__ ).'/src/lib/vendor/autoload.php' );
 
50
 
51
  add_action( 'plugins_loaded', 'icwp_wpsf_init', 1 ); // use 0 for extensions to ensure hooks have been added.
52
  function icwp_wpsf_init() {
init.php CHANGED
@@ -8,86 +8,38 @@ if ( isset( $oICWP_Wpsf ) ) {
8
  }
9
 
10
  // By requiring this file here, we assume we wont need to require it anywhere else.
11
- require_once( dirname( __FILE__ ).'/icwp-plugin-controller.php' );
12
 
13
- class ICWP_Wordpress_Simple_Firewall extends ICWP_WPSF_Foundation {
14
 
15
  /**
16
- * @var ICWP_WPSF_Plugin_Controller
17
  */
18
- protected static $oPluginController;
19
 
20
  /**
21
  * @param ICWP_WPSF_Plugin_Controller $oController
22
  */
23
- protected function __construct( ICWP_WPSF_Plugin_Controller $oController ) {
24
-
25
- // All core values of the plugin are derived from the values stored in this value object.
26
- self::$oPluginController = $oController;
27
- $this->getController()->loadAllFeatures();
28
- add_filter( $oController->prefix( 'plugin_update_message' ), array(
29
- $this,
30
- 'getPluginsListUpdateMessage'
31
- ) );
32
- add_action( 'plugin_action_links', array( $this, 'onWpPluginActionLinks' ), 10, 4 );
33
  }
34
 
35
  /**
36
  * @return ICWP_WPSF_Plugin_Controller
 
37
  */
38
- public static function getController() {
39
- return self::$oPluginController;
40
- }
41
-
42
- /**
43
- * @param string $sMessage
44
- * @return string
45
- */
46
- public function getPluginsListUpdateMessage( $sMessage ) {
47
- return _wpsf__( 'Upgrade Now To Keep Your Security Up-To-Date With The Latest Features.' );
48
- }
49
-
50
- /**
51
- * On the plugins listing page, hides the edit and deactivate links
52
- * for this plugin based on permissions
53
- * @param $aActionLinks
54
- * @param $sPluginFile
55
- * @return mixed
56
- */
57
- public function onWpPluginActionLinks( $aActionLinks, $sPluginFile ) {
58
- $oCon = $this->getController();
59
-
60
- if ( $oCon->isValidAdminArea() && !$oCon->isPluginAdmin()
61
- && $sPluginFile == $oCon->getPluginBaseFile() ) {
62
-
63
- if ( array_key_exists( 'edit', $aActionLinks ) ) {
64
- unset( $aActionLinks[ 'edit' ] );
65
- }
66
- if ( array_key_exists( 'deactivate', $aActionLinks ) ) {
67
- unset( $aActionLinks[ 'deactivate' ] );
68
- }
69
- }
70
-
71
- return $aActionLinks;
72
  }
73
- }
74
-
75
- class ICWP_WPSF_Shield_Security extends ICWP_Wordpress_Simple_Firewall {
76
-
77
- /**
78
- * @var ICWP_Wordpress_Simple_Firewall
79
- */
80
- protected static $oInstance = null;
81
 
82
  /**
83
  * @param ICWP_WPSF_Plugin_Controller $oController
84
  * @return self
85
- * @throws Exception
86
  */
87
  public static function GetInstance( $oController = null ) {
88
  if ( is_null( self::$oInstance ) ) {
89
- if ( is_null( $oController ) || !( $oController instanceof ICWP_WPSF_Plugin_Controller ) ) {
90
- throw new Exception( 'Trying to create a Shield Plugin instance without a valid Controller' );
91
  }
92
  self::$oInstance = new self( $oController );
93
  }
@@ -99,7 +51,7 @@ try {
99
  $oICWP_Wpsf_Controller = ICWP_WPSF_Plugin_Controller::GetInstance( $sRootFile );
100
  $oICWP_Wpsf = ICWP_WPSF_Shield_Security::GetInstance( $oICWP_Wpsf_Controller );
101
  }
102
- catch ( Exception $oE ) {
103
  if ( is_admin() ) {
104
  error_log( 'Perhaps due to a failed upgrade, the Shield plugin failed to load certain component(s) - you should remove the plugin and reinstall.' );
105
  error_log( $oE->getMessage() );
8
  }
9
 
10
  // By requiring this file here, we assume we wont need to require it anywhere else.
 
11
 
12
+ class ICWP_WPSF_Shield_Security extends ICWP_WPSF_Foundation {
13
 
14
  /**
15
+ * @var ICWP_WPSF_Shield_Security
16
  */
17
+ private static $oInstance = null;
18
 
19
  /**
20
  * @param ICWP_WPSF_Plugin_Controller $oController
21
  */
22
+ private function __construct( ICWP_WPSF_Plugin_Controller $oController ) {
23
+ $oController->loadAllFeatures();
 
 
 
 
 
 
 
 
24
  }
25
 
26
  /**
27
  * @return ICWP_WPSF_Plugin_Controller
28
+ * @throws \Exception
29
  */
30
+ public function getController() {
31
+ return ICWP_WPSF_Plugin_Controller::GetInstance();
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
32
  }
 
 
 
 
 
 
 
 
33
 
34
  /**
35
  * @param ICWP_WPSF_Plugin_Controller $oController
36
  * @return self
37
+ * @throws \Exception
38
  */
39
  public static function GetInstance( $oController = null ) {
40
  if ( is_null( self::$oInstance ) ) {
41
+ if ( !$oController instanceof ICWP_WPSF_Plugin_Controller ) {
42
+ throw new \Exception( 'Trying to create a Shield Plugin instance without a valid Controller' );
43
  }
44
  self::$oInstance = new self( $oController );
45
  }
51
  $oICWP_Wpsf_Controller = ICWP_WPSF_Plugin_Controller::GetInstance( $sRootFile );
52
  $oICWP_Wpsf = ICWP_WPSF_Shield_Security::GetInstance( $oICWP_Wpsf_Controller );
53
  }
54
+ catch ( \Exception $oE ) {
55
  if ( is_admin() ) {
56
  error_log( 'Perhaps due to a failed upgrade, the Shield plugin failed to load certain component(s) - you should remove the plugin and reinstall.' );
57
  error_log( $oE->getMessage() );
languages/default.po CHANGED
@@ -1,6858 +1,6858 @@
1
- msgid ""
2
- msgstr ""
3
- "Project-Id-Version: WPSF v2.0\n"
4
- "POT-Creation-Date: 2018-09-19 17:21+0100\n"
5
- "PO-Revision-Date: 2018-09-19 17:21+0100\n"
6
- "Last-Translator: \n"
7
- "Language-Team: \n"
8
- "Language: en_GB\n"
9
- "MIME-Version: 1.0\n"
10
- "Content-Type: text/plain; charset=UTF-8\n"
11
- "Content-Transfer-Encoding: 8bit\n"
12
- "X-Generator: Poedit 2.1.1\n"
13
- "X-Poedit-KeywordsList: _wpsf__;gettext;gettext_noop;_wpsf_e;_n;_n:1,2\n"
14
- "X-Poedit-Basepath: ..\n"
15
- "X-Poedit-SourceCharset: UTF-8\n"
16
- "Plural-Forms: nplurals=2; plural=(n != 1);\n"
17
- "X-Poedit-SearchPath-0: .\n"
18
- "X-Poedit-SearchPathExcluded-0: .git\n"
19
- "X-Poedit-SearchPathExcluded-1: .idea\n"
20
-
21
- #: init.php:47
22
- msgid "Upgrade Now To Keep Your Security Up-To-Date With The Latest Features."
23
- msgstr ""
24
-
25
- #: src/common/Components/Tables/AuditTrailTable.php:26
26
- #: src/common/Components/Tables/LiveTrafficTable.php:15
27
- msgid "Refresh"
28
- msgstr ""
29
-
30
- #: src/features/admin_access_restriction.php:72
31
- #: src/features/admin_access_restriction.php:106
32
- msgid "Security Admin Access Key Accepted."
33
- msgstr ""
34
-
35
- #: src/features/admin_access_restriction.php:73
36
- #: src/features/admin_access_restriction.php:107
37
- msgid "Please wait"
38
- msgstr ""
39
-
40
- #: src/features/admin_access_restriction.php:76
41
- #: src/features/admin_access_restriction.php:110
42
- msgid "Failed to process key - you may need to re-login to WordPress."
43
- msgstr ""
44
-
45
- #: src/features/admin_access_restriction.php:80
46
- #: src/features/admin_access_restriction.php:114
47
- msgid "Error - Invalid Key"
48
- msgstr ""
49
-
50
- #: src/features/admin_access_restriction.php:131
51
- msgid "Enter your Security Admin Access Key"
52
- msgstr ""
53
-
54
- #: src/features/admin_access_restriction.php:266
55
- msgid "Security Admin key accepted."
56
- msgstr ""
57
-
58
- #: src/features/admin_access_restriction.php:269
59
- msgid "Security Admin key not accepted."
60
- msgstr ""
61
-
62
- #: src/features/admin_access_restriction.php:439
63
- msgid "Security Admin Protection"
64
- msgstr ""
65
-
66
- #: src/features/admin_access_restriction.php:448
67
- msgid "The Security Admin protection is not active."
68
- msgstr ""
69
-
70
- #: src/features/admin_access_restriction.php:452
71
- #: src/features/audit_trail.php:304 src/features/base_wpsf.php:169
72
- #: src/features/base_wpsf.php:209 src/features/hack_protect.php:656
73
- #: src/features/hack_protect.php:677 src/features/hack_protect.php:698
74
- #: src/features/hack_protect.php:719 src/features/insights.php:438
75
- #: src/features/lockdown.php:62 src/features/user_management.php:288
76
- msgid "Options"
77
- msgstr ""
78
-
79
- #: src/features/admin_access_restriction.php:453
80
- msgid "Security Admin should be turned-on to protect your security settings."
81
- msgstr ""
82
-
83
- #: src/features/admin_access_restriction.php:483
84
- #: src/features/audit_trail.php:290 src/features/autoupdates.php:186
85
- #: src/features/comments_filter.php:103 src/features/firewall.php:59
86
- #: src/features/hack_protect.php:759 src/features/headers.php:120
87
- #: src/features/ips.php:302 src/features/lockdown.php:85
88
- #: src/features/login_protect.php:604 src/features/sessions.php:51
89
- #: src/features/statistics.php:51 src/features/statistics.php:60
90
- #: src/features/traffic.php:465 src/features/user_management.php:311
91
- #, php-format
92
- msgid "Enable Module: %s"
93
- msgstr ""
94
-
95
- #: src/features/admin_access_restriction.php:485
96
- #: src/features/admin_access_restriction.php:495
97
- #: src/features/admin_access_restriction.php:504
98
- #: src/features/admin_access_restriction.php:514
99
- #: src/features/audit_trail.php:292 src/features/audit_trail.php:301
100
- #: src/features/audit_trail.php:310 src/features/autoupdates.php:188
101
- #: src/features/autoupdates.php:197 src/features/autoupdates.php:206
102
- #: src/features/autoupdates.php:216 src/features/autoupdates.php:226
103
- #: src/features/base_wpsf.php:322 src/features/comments_filter.php:105
104
- #: src/features/comments_filter.php:114 src/features/comments_filter.php:124
105
- #: src/features/comments_filter.php:133 src/features/firewall.php:61
106
- #: src/features/hack_protect.php:754 src/features/hack_protect.php:761
107
- #: src/features/hack_protect.php:770 src/features/hack_protect.php:780
108
- #: src/features/hack_protect.php:789 src/features/hack_protect.php:798
109
- #: src/features/hack_protect.php:808 src/features/hack_protect.php:818
110
- #: src/features/headers.php:122 src/features/headers.php:131
111
- #: src/features/headers.php:140 src/features/ips.php:304
112
- #: src/features/ips.php:314 src/features/ips.php:324
113
- #: src/features/license.php:691 src/features/lockdown.php:87
114
- #: src/features/lockdown.php:96 src/features/lockdown.php:105
115
- #: src/features/lockdown.php:114 src/features/login_protect.php:607
116
- #: src/features/login_protect.php:616 src/features/login_protect.php:627
117
- #: src/features/login_protect.php:636 src/features/login_protect.php:645
118
- #: src/features/login_protect.php:655 src/features/login_protect.php:664
119
- #: src/features/login_protect.php:673 src/features/plugin.php:733
120
- #: src/features/plugin.php:740 src/features/plugin.php:755
121
- #: src/features/sessions.php:53 src/features/statistics.php:53
122
- #: src/features/statistics.php:62 src/features/statistics.php:71
123
- #: src/features/traffic.php:467 src/features/traffic.php:476
124
- #: src/features/user_management.php:313 src/features/user_management.php:323
125
- #: src/features/user_management.php:332 src/features/user_management.php:341
126
- #: src/features/user_management.php:350
127
- msgid "Purpose"
128
- msgstr ""
129
-
130
- #: src/features/admin_access_restriction.php:485
131
- #: src/features/admin_access_restriction.php:495
132
- msgid ""
133
- "Restricts access to this plugin preventing unauthorized changes to your "
134
- "security settings."
135
- msgstr ""
136
-
137
- #: src/features/admin_access_restriction.php:486
138
- #: src/features/admin_access_restriction.php:496
139
- #: src/features/admin_access_restriction.php:505
140
- #: src/features/audit_trail.php:293 src/features/audit_trail.php:302
141
- #: src/features/audit_trail.php:311 src/features/autoupdates.php:189
142
- #: src/features/autoupdates.php:198 src/features/autoupdates.php:208
143
- #: src/features/autoupdates.php:217 src/features/base_wpsf.php:323
144
- #: src/features/comments_filter.php:106 src/features/comments_filter.php:115
145
- #: src/features/comments_filter.php:125 src/features/comments_filter.php:134
146
- #: src/features/firewall.php:62 src/features/firewall.php:71
147
- #: src/features/firewall.php:82 src/features/firewall.php:91
148
- #: src/features/hack_protect.php:762 src/features/hack_protect.php:771
149
- #: src/features/hack_protect.php:781 src/features/hack_protect.php:790
150
- #: src/features/hack_protect.php:799 src/features/hack_protect.php:809
151
- #: src/features/hack_protect.php:819 src/features/headers.php:123
152
- #: src/features/headers.php:132 src/features/headers.php:141
153
- #: src/features/ips.php:305 src/features/ips.php:315 src/features/ips.php:325
154
- #: src/features/license.php:692 src/features/lockdown.php:88
155
- #: src/features/lockdown.php:97 src/features/lockdown.php:106
156
- #: src/features/lockdown.php:115 src/features/login_protect.php:608
157
- #: src/features/login_protect.php:617 src/features/login_protect.php:628
158
- #: src/features/login_protect.php:646 src/features/login_protect.php:665
159
- #: src/features/login_protect.php:776 src/features/plugin.php:757
160
- #: src/features/sessions.php:54 src/features/statistics.php:54
161
- #: src/features/statistics.php:63 src/features/statistics.php:72
162
- #: src/features/traffic.php:468 src/features/traffic.php:477
163
- #: src/features/user_management.php:314 src/features/user_management.php:324
164
- #: src/features/user_management.php:333 src/features/user_management.php:342
165
- #: src/features/user_management.php:351
166
- msgid "Recommendation"
167
- msgstr ""
168
-
169
- #: src/features/admin_access_restriction.php:486
170
- #: src/features/audit_trail.php:293 src/features/autoupdates.php:189
171
- #: src/features/comments_filter.php:106 src/features/firewall.php:62
172
- #: src/features/hack_protect.php:762 src/features/hack_protect.php:771
173
- #: src/features/hack_protect.php:781 src/features/hack_protect.php:790
174
- #: src/features/hack_protect.php:799 src/features/ips.php:305
175
- #: src/features/ips.php:315 src/features/lockdown.php:88
176
- #: src/features/login_protect.php:608 src/features/sessions.php:54
177
- #: src/features/statistics.php:54 src/features/statistics.php:63
178
- #: src/features/user_management.php:314
179
- #, php-format
180
- msgid "Keep the %s feature turned on."
181
- msgstr ""
182
-
183
- #: src/features/admin_access_restriction.php:486
184
- #: src/features/admin_access_restriction.php:548 src/features/plugin.php:945
185
- #: src/features/plugin.php:947 src/wizards/base_wpsf.php:65
186
- msgid "Security Admin"
187
- msgstr ""
188
-
189
- #: src/features/admin_access_restriction.php:487
190
- msgid "You need to also enter a new Access Key to enable this feature."
191
- msgstr ""
192
-
193
- #: src/features/admin_access_restriction.php:489
194
- #: src/features/audit_trail.php:295 src/features/autoupdates.php:191
195
- #: src/features/comments_filter.php:108 src/features/firewall.php:64
196
- #: src/features/hack_protect.php:764 src/features/headers.php:125
197
- #: src/features/ips.php:308 src/features/lockdown.php:90
198
- #: src/features/login_protect.php:605 src/features/sessions.php:56
199
- #: src/features/statistics.php:56 src/features/statistics.php:65
200
- #: src/features/traffic.php:470 src/features/user_management.php:316
201
- #, php-format
202
- msgid "%s/%s Module"
203
- msgstr ""
204
-
205
- #: src/features/admin_access_restriction.php:489
206
- #: src/features/admin_access_restriction.php:619
207
- #: src/features/audit_trail.php:295 src/features/autoupdates.php:191
208
- #: src/features/comments_filter.php:108 src/features/firewall.php:64
209
- #: src/features/hack_protect.php:764 src/features/headers.php:125
210
- #: src/features/ips.php:308 src/features/lockdown.php:90
211
- #: src/features/login_protect.php:605 src/features/sessions.php:56
212
- #: src/features/statistics.php:56 src/features/statistics.php:65
213
- #: src/features/traffic.php:470 src/features/user_management.php:316
214
- msgid "Enable"
215
- msgstr ""
216
-
217
- #: src/features/admin_access_restriction.php:489
218
- #: src/features/audit_trail.php:295 src/features/autoupdates.php:191
219
- #: src/features/comments_filter.php:108 src/features/firewall.php:64
220
- #: src/features/hack_protect.php:764 src/features/headers.php:125
221
- #: src/features/ips.php:308 src/features/lockdown.php:90
222
- #: src/features/login_protect.php:605 src/features/sessions.php:56
223
- #: src/features/statistics.php:56 src/features/statistics.php:65
224
- #: src/features/traffic.php:470 src/features/user_management.php:316
225
- msgid "Disable"
226
- msgstr ""
227
-
228
- #: src/features/admin_access_restriction.php:493
229
- msgid "Security Admin Restriction Settings"
230
- msgstr ""
231
-
232
- #: src/features/admin_access_restriction.php:496
233
- #: src/features/admin_access_restriction.php:505
234
- #: src/features/comments_filter.php:115 src/features/comments_filter.php:134
235
- #: src/features/login_protect.php:646 src/features/login_protect.php:665
236
- #: src/features/plugin.php:758 src/features/user_management.php:324
237
- #: src/features/user_management.php:333 src/features/user_management.php:342
238
- #: src/features/user_management.php:351
239
- msgid "Use of this feature is highly recommend."
240
- msgstr ""
241
-
242
- #: src/features/admin_access_restriction.php:498
243
- msgid "Security Admin Settings"
244
- msgstr ""
245
-
246
- #: src/features/admin_access_restriction.php:502
247
- msgid "Security Admin Restriction Zones"
248
- msgstr ""
249
-
250
- #: src/features/admin_access_restriction.php:504
251
- msgid ""
252
- "Restricts access to key WordPress areas for all users not authenticated with "
253
- "the Security Admin Access system."
254
- msgstr ""
255
-
256
- #: src/features/admin_access_restriction.php:507
257
- msgid "Access Restriction Zones"
258
- msgstr ""
259
-
260
- #: src/features/admin_access_restriction.php:511
261
- #: src/features/admin_access_restriction.php:524
262
- #: src/features/admin_access_restriction.php:619
263
- msgid "White Label"
264
- msgstr ""
265
-
266
- #: src/features/admin_access_restriction.php:515
267
- #, php-format
268
- msgid "Rename and re-brand the %s plugin for your client site installations."
269
- msgstr ""
270
-
271
- #: src/features/admin_access_restriction.php:519
272
- #: src/features/login_protect.php:756
273
- #: src/processors/loginprotect_backupcodes.php:33
274
- msgid "Important"
275
- msgstr ""
276
-
277
- #: src/features/admin_access_restriction.php:520
278
- msgid "The Security Admin system must be active for these settings to apply."
279
- msgstr ""
280
-
281
- #: src/features/admin_access_restriction.php:548
282
- #: src/features/audit_trail.php:338 src/features/autoupdates.php:251
283
- #: src/features/comments_filter.php:188 src/features/firewall.php:115
284
- #: src/features/hack_protect.php:842 src/features/headers.php:166
285
- #: src/features/ips.php:347 src/features/lockdown.php:140
286
- #: src/features/login_protect.php:698 src/features/plugin.php:805
287
- #: src/features/sessions.php:79 src/features/statistics.php:99
288
- #: src/features/statistics.php:105 src/features/traffic.php:502
289
- #: src/features/user_management.php:376
290
- #, php-format
291
- msgid "Enable %s Module"
292
- msgstr ""
293
-
294
- #: src/features/admin_access_restriction.php:549
295
- msgid "Enforce Security Admin Access Restriction"
296
- msgstr ""
297
-
298
- #: src/features/admin_access_restriction.php:550
299
- msgid ""
300
- "Enable this with great care and consideration. Ensure that you set a key "
301
- "that you have set an access key that you will remember."
302
- msgstr ""
303
-
304
- #: src/features/admin_access_restriction.php:554
305
- msgid "Security Admin Access Key"
306
- msgstr ""
307
-
308
- #: src/features/admin_access_restriction.php:555
309
- msgid "Provide/Update Security Admin Access Key"
310
- msgstr ""
311
-
312
- #: src/features/admin_access_restriction.php:556
313
- #: src/features/admin_access_restriction.php:577
314
- #: src/features/admin_access_restriction.php:584
315
- #: src/features/admin_access_restriction.php:591
316
- #: src/features/admin_access_restriction.php:597
317
- #: src/features/admin_access_restriction.php:603
318
- msgid "Careful"
319
- msgstr ""
320
-
321
- #: src/features/admin_access_restriction.php:556
322
- msgid ""
323
- "If you forget this, you could potentially lock yourself out from using this "
324
- "plugin."
325
- msgstr ""
326
-
327
- #: src/features/admin_access_restriction.php:557
328
- msgid "Security Key Currently Set"
329
- msgstr ""
330
-
331
- #: src/features/admin_access_restriction.php:557
332
- msgid "Security Key NOT Currently Set"
333
- msgstr ""
334
-
335
- #: src/features/admin_access_restriction.php:558
336
- #, php-format
337
- msgid "To delete the current security key, type exactly \"%s\" and save."
338
- msgstr ""
339
-
340
- #: src/features/admin_access_restriction.php:562
341
- msgid "Security Admin Timeout"
342
- msgstr ""
343
-
344
- #: src/features/admin_access_restriction.php:563
345
- msgid "Specify An Automatic Timeout Interval For Security Admin Access"
346
- msgstr ""
347
-
348
- #: src/features/admin_access_restriction.php:564
349
- msgid "This will automatically expire your Security Admin Session."
350
- msgstr ""
351
-
352
- #: src/features/admin_access_restriction.php:568
353
- #: src/features/hack_protect.php:850 src/features/hack_protect.php:916
354
- #: src/features/login_protect.php:784 src/features/login_protect.php:827
355
- #: src/features/login_protect.php:834 src/features/user_management.php:399
356
- msgid "Default"
357
- msgstr ""
358
-
359
- #: src/features/admin_access_restriction.php:575
360
- msgid "Pages"
361
- msgstr ""
362
-
363
- #: src/features/admin_access_restriction.php:576
364
- msgid "Restrict Access To Key WordPress Posts And Pages Actions"
365
- msgstr ""
366
-
367
- #: src/features/admin_access_restriction.php:577
368
- msgid "This will restrict access to page/post creation, editing and deletion."
369
- msgstr ""
370
-
371
- #: src/features/admin_access_restriction.php:578
372
- #: src/features/admin_access_restriction.php:585
373
- #: src/features/admin_access_restriction.php:606
374
- #: src/features/comments_filter.php:126 src/features/headers.php:239
375
- #: src/features/login_protect.php:618 src/features/login_protect.php:647
376
- #: src/features/login_protect.php:656 src/features/login_protect.php:674
377
- #: src/features/login_protect.php:747 src/features/login_protect.php:755
378
- #: src/features/login_protect.php:769 src/features/plugin.php:759
379
- #: src/features/plugin.php:763 src/features/plugin.php:857
380
- msgid "Note"
381
- msgstr ""
382
-
383
- #: src/features/admin_access_restriction.php:578
384
- #: src/features/admin_access_restriction.php:585
385
- #: src/features/admin_access_restriction.php:608
386
- #, php-format
387
- msgid "Selecting \"%s\" will also restrict all other options."
388
- msgstr ""
389
-
390
- #: src/features/admin_access_restriction.php:578
391
- msgid "Edit"
392
- msgstr ""
393
-
394
- #: src/features/admin_access_restriction.php:582
395
- #: src/features/audit_trail.php:187 src/features/audit_trail.php:362
396
- #: src/features/audit_trail.php:363 src/features/autoupdates.php:282
397
- #: src/features/hack_protect.php:728 src/features/insights.php:330
398
- #: src/features/insights.php:347
399
- msgid "Plugins"
400
- msgstr ""
401
-
402
- #: src/features/admin_access_restriction.php:583
403
- msgid "Restrict Access To Key WordPress Plugin Actions"
404
- msgstr ""
405
-
406
- #: src/features/admin_access_restriction.php:584
407
- msgid ""
408
- "This will restrict access to plugin installation, update, activation and "
409
- "deletion."
410
- msgstr ""
411
-
412
- #: src/features/admin_access_restriction.php:585
413
- #: src/features/admin_access_restriction.php:611
414
- msgid "Activate"
415
- msgstr ""
416
-
417
- #: src/features/admin_access_restriction.php:589
418
- msgid "WordPress Options"
419
- msgstr ""
420
-
421
- #: src/features/admin_access_restriction.php:590
422
- msgid "Restrict Access To Certain WordPress Admin Options"
423
- msgstr ""
424
-
425
- #: src/features/admin_access_restriction.php:591
426
- msgid ""
427
- "This will restrict the ability of WordPress administrators from changing key "
428
- "WordPress settings."
429
- msgstr ""
430
-
431
- #: src/features/admin_access_restriction.php:595
432
- msgid "Admin Users"
433
- msgstr ""
434
-
435
- #: src/features/admin_access_restriction.php:596
436
- msgid "Restrict Access To Create/Delete/Modify Other Admin Users"
437
- msgstr ""
438
-
439
- #: src/features/admin_access_restriction.php:597
440
- msgid ""
441
- "This will restrict the ability of WordPress administrators from creating, "
442
- "modifying or promoting other administrators."
443
- msgstr ""
444
-
445
- #: src/features/admin_access_restriction.php:601
446
- #: src/features/audit_trail.php:188 src/features/audit_trail.php:368
447
- #: src/features/audit_trail.php:369 src/features/autoupdates.php:294
448
- #: src/features/insights.php:376 src/features/insights.php:387
449
- msgid "Themes"
450
- msgstr ""
451
-
452
- #: src/features/admin_access_restriction.php:602
453
- msgid "Restrict Access To WordPress Theme Actions"
454
- msgstr ""
455
-
456
- #: src/features/admin_access_restriction.php:603
457
- msgid ""
458
- "This will restrict access to theme installation, update, activation and "
459
- "deletion."
460
- msgstr ""
461
-
462
- #: src/features/admin_access_restriction.php:610
463
- #, php-format
464
- msgid "%s and %s"
465
- msgstr ""
466
-
467
- #: src/features/admin_access_restriction.php:612
468
- msgid "Edit Theme Options"
469
- msgstr ""
470
-
471
- #: src/features/admin_access_restriction.php:620
472
- msgid "Activate Your White Label Settings"
473
- msgstr ""
474
-
475
- #: src/features/admin_access_restriction.php:621
476
- msgid "Turn on/off the application of your White Label settings."
477
- msgstr ""
478
-
479
- #: src/features/admin_access_restriction.php:624
480
- msgid "Hide Updates"
481
- msgstr ""
482
-
483
- #: src/features/admin_access_restriction.php:625
484
- msgid "Hide Plugin Updates From Non-Security Admins"
485
- msgstr ""
486
-
487
- #: src/features/admin_access_restriction.php:626
488
- #, php-format
489
- msgid "Hide available %s updates from non-security administrators."
490
- msgstr ""
491
-
492
- #: src/features/admin_access_restriction.php:629
493
- #: src/features/admin_access_restriction.php:636
494
- msgid "Plugin Name"
495
- msgstr ""
496
-
497
- #: src/features/admin_access_restriction.php:630
498
- msgid "The Name Of The Plugin"
499
- msgstr ""
500
-
501
- #: src/features/admin_access_restriction.php:631
502
- msgid "The name of the plugin that will be displayed to your site users."
503
- msgstr ""
504
-
505
- #: src/features/admin_access_restriction.php:634
506
- msgid "Menu Title"
507
- msgstr ""
508
-
509
- #: src/features/admin_access_restriction.php:635
510
- msgid "The Main Menu Title Of The Plugin"
511
- msgstr ""
512
-
513
- #: src/features/admin_access_restriction.php:636
514
- #, php-format
515
- msgid ""
516
- "The Main Menu Title Of The Plugin. If left empty, the \"%s\" will be used."
517
- msgstr ""
518
-
519
- #: src/features/admin_access_restriction.php:639
520
- msgid "Company Name"
521
- msgstr ""
522
-
523
- #: src/features/admin_access_restriction.php:640
524
- msgid "The Name Of Your Company"
525
- msgstr ""
526
-
527
- #: src/features/admin_access_restriction.php:641
528
- msgid "Provide the name of your company."
529
- msgstr ""
530
-
531
- #: src/features/admin_access_restriction.php:644
532
- msgid "Description"
533
- msgstr ""
534
-
535
- #: src/features/admin_access_restriction.php:645
536
- msgid "The Description Of The Plugin"
537
- msgstr ""
538
-
539
- #: src/features/admin_access_restriction.php:646
540
- msgid "The description of the plugin displayed on the plugins page."
541
- msgstr ""
542
-
543
- #: src/features/admin_access_restriction.php:649
544
- msgid "Home URL"
545
- msgstr ""
546
-
547
- #: src/features/admin_access_restriction.php:650
548
- msgid "Plugin Home Page URL"
549
- msgstr ""
550
-
551
- #: src/features/admin_access_restriction.php:651
552
- msgid ""
553
- "When a user clicks the home link for this plugin, this is where they'll be "
554
- "directed."
555
- msgstr ""
556
-
557
- #: src/features/admin_access_restriction.php:654
558
- msgid "Menu Icon"
559
- msgstr ""
560
-
561
- #: src/features/admin_access_restriction.php:655
562
- msgid "Menu Icon URL"
563
- msgstr ""
564
-
565
- #: src/features/admin_access_restriction.php:656
566
- msgid "The URL of the icon to display in the menu."
567
- msgstr ""
568
-
569
- #: src/features/admin_access_restriction.php:657
570
- #: src/features/admin_access_restriction.php:663
571
- #, php-format
572
- msgid "The %s should measure %s."
573
- msgstr ""
574
-
575
- #: src/features/admin_access_restriction.php:657
576
- msgid "icon"
577
- msgstr ""
578
-
579
- #: src/features/admin_access_restriction.php:660
580
- msgid "Dashboard Logo"
581
- msgstr ""
582
-
583
- #: src/features/admin_access_restriction.php:661
584
- msgid "Dashboard Logo URL"
585
- msgstr ""
586
-
587
- #: src/features/admin_access_restriction.php:662
588
- msgid "The URL of the logo to display in the admin pages."
589
- msgstr ""
590
-
591
- #: src/features/admin_access_restriction.php:663
592
- msgid "logo"
593
- msgstr ""
594
-
595
- #: src/features/admin_access_restriction.php:666
596
- #: src/features/admin_access_restriction.php:667
597
- msgid "2FA Login Logo URL"
598
- msgstr ""
599
-
600
- #: src/features/admin_access_restriction.php:668
601
- msgid ""
602
- "The URL of the logo to display on the Two-Factor Authentication login page."
603
- msgstr ""
604
-
605
- #: src/features/audit_trail.php:139
606
- msgid "Your IP"
607
- msgstr ""
608
-
609
- #: src/features/audit_trail.php:169 src/features/audit_trail.php:183
610
- #: src/features/license.php:94 src/features/plugin.php:950
611
- msgid "Audit Trail Viewer"
612
- msgstr ""
613
-
614
- #: src/features/audit_trail.php:184 src/features/license.php:95
615
- msgid "Review audit trail logs "
616
- msgstr ""
617
-
618
- #: src/features/audit_trail.php:186 src/features/user_management.php:266
619
- msgid "Users"
620
- msgstr ""
621
-
622
- #: src/features/audit_trail.php:189
623
- msgid "WordPress"
624
- msgstr ""
625
-
626
- #: src/features/audit_trail.php:190
627
- msgid "Posts"
628
- msgstr ""
629
-
630
- #: src/features/audit_trail.php:191 src/features/audit_trail.php:386
631
- #: src/features/audit_trail.php:387
632
- msgid "Emails"
633
- msgstr ""
634
-
635
- #: src/features/audit_trail.php:192 src/processors/user_management.php:238
636
- msgid "Time"
637
- msgstr ""
638
-
639
- #: src/features/audit_trail.php:193
640
- msgid "Event"
641
- msgstr ""
642
-
643
- #: src/features/audit_trail.php:194
644
- msgid "Message"
645
- msgstr ""
646
-
647
- #: src/features/audit_trail.php:195 src/features/user_management.php:157
648
- #: src/processors/loginprotect_backupcodes.php:175
649
- #: src/processors/loginprotect_twofactorauth.php:161
650
- #: src/processors/user_management.php:208
651
- #: src/processors/user_management.php:236
652
- msgid "Username"
653
- msgstr ""
654
-
655
- #: src/features/audit_trail.php:196
656
- msgid "Category"
657
- msgstr ""
658
-
659
- #: src/features/audit_trail.php:197 src/features/plugin.php:937
660
- #: src/processors/firewall.php:477
661
- #: src/processors/loginprotect_backupcodes.php:176
662
- #: src/processors/loginprotect_twofactorauth.php:162
663
- #: src/processors/user_management.php:210
664
- #: src/processors/user_management.php:237
665
- msgid "IP Address"
666
- msgstr ""
667
-
668
- #: src/features/audit_trail.php:198 src/features/traffic.php:391
669
- msgid "You"
670
- msgstr ""
671
-
672
- #: src/features/audit_trail.php:199
673
- msgid "There are currently no audit entries this is section."
674
- msgstr ""
675
-
676
- #: src/features/audit_trail.php:219
677
- #, php-format
678
- msgid "[%s] Audit Trail Entries"
679
- msgstr ""
680
-
681
- #: src/features/audit_trail.php:292
682
- msgid ""
683
- "The Audit Trail is designed so you can look back on events and analyse what "
684
- "happened and what may have gone wrong."
685
- msgstr ""
686
-
687
- #: src/features/audit_trail.php:293 src/features/plugin.php:948
688
- #: src/wizards/plugin.php:492 src/wizards/plugin.php:497
689
- msgid "Audit Trail"
690
- msgstr ""
691
-
692
- #: src/features/audit_trail.php:299
693
- msgid "Audit Trail Options"
694
- msgstr ""
695
-
696
- #: src/features/audit_trail.php:301
697
- msgid "Provides finer control over the audit trail itself."
698
- msgstr ""
699
-
700
- #: src/features/audit_trail.php:302 src/features/audit_trail.php:311
701
- #: src/features/traffic.php:477
702
- msgid "These settings are dependent on your requirements."
703
- msgstr ""
704
-
705
- #: src/features/audit_trail.php:308
706
- msgid "Enable Audit Contexts"
707
- msgstr ""
708
-
709
- #: src/features/audit_trail.php:310
710
- msgid "Specify which types of actions on your site are logged."
711
- msgstr ""
712
-
713
- #: src/features/audit_trail.php:313
714
- msgid "Audit Contexts"
715
- msgstr ""
716
-
717
- #: src/features/audit_trail.php:339 src/features/autoupdates.php:252
718
- #: src/features/firewall.php:116 src/features/hack_protect.php:843
719
- #: src/features/headers.php:167 src/features/ips.php:348
720
- #: src/features/lockdown.php:141 src/features/login_protect.php:699
721
- #: src/features/sessions.php:80 src/features/statistics.php:100
722
- #: src/features/statistics.php:106 src/features/traffic.php:503
723
- #: src/features/user_management.php:377
724
- #, php-format
725
- msgid "Enable (or Disable) The %s Module"
726
- msgstr ""
727
-
728
- #: src/features/audit_trail.php:340 src/features/autoupdates.php:253
729
- #: src/features/comments_filter.php:190 src/features/firewall.php:117
730
- #: src/features/hack_protect.php:844 src/features/headers.php:168
731
- #: src/features/ips.php:349 src/features/lockdown.php:142
732
- #: src/features/login_protect.php:700 src/features/sessions.php:81
733
- #: src/features/statistics.php:101 src/features/statistics.php:107
734
- #: src/features/traffic.php:504 src/features/user_management.php:378
735
- #, php-format
736
- msgid "Un-Checking this option will completely disable the %s module."
737
- msgstr ""
738
-
739
- #: src/features/audit_trail.php:344
740
- msgid "Max Trail Length"
741
- msgstr ""
742
-
743
- #: src/features/audit_trail.php:345
744
- msgid "Maximum Audit Trail Length To Keep"
745
- msgstr ""
746
-
747
- #: src/features/audit_trail.php:346
748
- msgid ""
749
- "Automatically remove any audit trail entries when this limit is exceeded."
750
- msgstr ""
751
-
752
- #: src/features/audit_trail.php:350
753
- msgid "Auto Clean"
754
- msgstr ""
755
-
756
- #: src/features/audit_trail.php:351
757
- msgid "Enable Audit Auto Cleaning"
758
- msgstr ""
759
-
760
- #: src/features/audit_trail.php:352
761
- msgid ""
762
- "Events older than the number of days specified will be automatically cleaned "
763
- "from the database."
764
- msgstr ""
765
-
766
- #: src/features/audit_trail.php:356 src/features/audit_trail.php:357
767
- #: src/features/audit_trail.php:358
768
- msgid "Users And Logins"
769
- msgstr ""
770
-
771
- #: src/features/audit_trail.php:357 src/features/audit_trail.php:363
772
- #: src/features/audit_trail.php:369 src/features/audit_trail.php:375
773
- #: src/features/audit_trail.php:381 src/features/audit_trail.php:387
774
- #: src/features/audit_trail.php:393
775
- #, php-format
776
- msgid "Enable Audit Context - %s"
777
- msgstr ""
778
-
779
- #: src/features/audit_trail.php:358 src/features/audit_trail.php:364
780
- #: src/features/audit_trail.php:370 src/features/audit_trail.php:376
781
- #: src/features/audit_trail.php:382 src/features/audit_trail.php:388
782
- #: src/features/audit_trail.php:394
783
- #, php-format
784
- msgid ""
785
- "When this context is enabled, the audit trail will track activity relating "
786
- "to: %s"
787
- msgstr ""
788
-
789
- #: src/features/audit_trail.php:364
790
- msgid "WordPress Plugins"
791
- msgstr ""
792
-
793
- #: src/features/audit_trail.php:370
794
- msgid "WordPress Themes"
795
- msgstr ""
796
-
797
- #: src/features/audit_trail.php:374 src/features/audit_trail.php:375
798
- msgid "Posts And Pages"
799
- msgstr ""
800
-
801
- #: src/features/audit_trail.php:376
802
- msgid "Editing and publishing of posts and pages"
803
- msgstr ""
804
-
805
- #: src/features/audit_trail.php:380 src/features/audit_trail.php:381
806
- msgid "WordPress And Settings"
807
- msgstr ""
808
-
809
- #: src/features/audit_trail.php:382
810
- msgid "WordPress upgrades and changes to particular WordPress settings"
811
- msgstr ""
812
-
813
- #: src/features/audit_trail.php:388
814
- msgid "Email Sending"
815
- msgstr ""
816
-
817
- #: src/features/autoupdates.php:140
818
- #, php-format
819
- msgid "Plugin \"%s\" will %s."
820
- msgstr ""
821
-
822
- #: src/features/autoupdates.php:143
823
- msgid "update automatically"
824
- msgstr ""
825
-
826
- #: src/features/autoupdates.php:143
827
- msgid "not update automatically"
828
- msgstr ""
829
-
830
- #: src/features/autoupdates.php:148
831
- msgid "Failed to change the update status of the plugin."
832
- msgstr ""
833
-
834
- #: src/features/autoupdates.php:188
835
- msgid ""
836
- "Automatic Updates lets you manage the WordPress automatic updates engine so "
837
- "you choose what exactly gets updated automatically."
838
- msgstr ""
839
-
840
- #: src/features/autoupdates.php:189 src/features/hack_protect.php:873
841
- #: src/features/plugin.php:951
842
- msgid "Automatic Updates"
843
- msgstr ""
844
-
845
- #: src/features/autoupdates.php:195
846
- msgid "Disable ALL WordPress Automatic Updates"
847
- msgstr ""
848
-
849
- #: src/features/autoupdates.php:197
850
- msgid ""
851
- "If you never want WordPress to automatically update anything on your site, "
852
- "turn on this option."
853
- msgstr ""
854
-
855
- #: src/features/autoupdates.php:198
856
- msgid "Do not turn on this option unless you really need to block updates."
857
- msgstr ""
858
-
859
- #: src/features/autoupdates.php:200
860
- msgid "Turn Off"
861
- msgstr ""
862
-
863
- #: src/features/autoupdates.php:204
864
- msgid "Automatic Plugin Self-Update"
865
- msgstr ""
866
-
867
- #: src/features/autoupdates.php:206
868
- #, php-format
869
- msgid ""
870
- "Allows the %s plugin to automatically update itself when an update is "
871
- "available."
872
- msgstr ""
873
-
874
- #: src/features/autoupdates.php:208
875
- msgid "Keep this option turned on."
876
- msgstr ""
877
-
878
- #: src/features/autoupdates.php:210
879
- msgid "Self-Update"
880
- msgstr ""
881
-
882
- #: src/features/autoupdates.php:214
883
- msgid "Automatic Updates For WordPress Components"
884
- msgstr ""
885
-
886
- #: src/features/autoupdates.php:216
887
- msgid "Control how automatic updates for each WordPress component is handled."
888
- msgstr ""
889
-
890
- #: src/features/autoupdates.php:217
891
- msgid "You should at least allow minor updates for the WordPress core."
892
- msgstr ""
893
-
894
- #: src/features/autoupdates.php:219
895
- msgid "WordPress Components"
896
- msgstr ""
897
-
898
- #: src/features/autoupdates.php:223 src/features/autoupdates.php:224
899
- msgid "Auto-Update Options"
900
- msgstr ""
901
-
902
- #: src/features/autoupdates.php:226
903
- msgid "Make adjustments to how automatic updates are handled on your site."
904
- msgstr ""
905
-
906
- #: src/features/autoupdates.php:257
907
- msgid "Disable All"
908
- msgstr ""
909
-
910
- #: src/features/autoupdates.php:258
911
- msgid "Completely Disable WordPress Automatic Updates"
912
- msgstr ""
913
-
914
- #: src/features/autoupdates.php:259
915
- msgid ""
916
- "When selected, regardless of any other settings, all WordPress automatic "
917
- "updates on this site will be completely disabled!"
918
- msgstr ""
919
-
920
- #: src/features/autoupdates.php:263
921
- msgid "Auto Update Plugin"
922
- msgstr ""
923
-
924
- #: src/features/autoupdates.php:264
925
- msgid "Always Automatically Update This Plugin"
926
- msgstr ""
927
-
928
- #: src/features/autoupdates.php:265
929
- #, php-format
930
- msgid ""
931
- "Regardless of any component settings below, automatically update the \"%s\" "
932
- "plugin."
933
- msgstr ""
934
-
935
- #: src/features/autoupdates.php:270
936
- msgid "WordPress Core Updates"
937
- msgstr ""
938
-
939
- #: src/features/autoupdates.php:271
940
- msgid "Decide how the WordPress Core will automatically update, if at all"
941
- msgstr ""
942
-
943
- #: src/features/autoupdates.php:272
944
- msgid ""
945
- "At least automatically upgrading minor versions is recommended (and is the "
946
- "WordPress default)."
947
- msgstr ""
948
-
949
- #: src/features/autoupdates.php:276
950
- msgid "Translations"
951
- msgstr ""
952
-
953
- #: src/features/autoupdates.php:277
954
- msgid "Automatically Update Translations"
955
- msgstr ""
956
-
957
- #: src/features/autoupdates.php:278
958
- msgid ""
959
- "Note: Automatic updates for translations are enabled on WordPress by default."
960
- msgstr ""
961
-
962
- #: src/features/autoupdates.php:283
963
- msgid "Automatically Update All Plugins"
964
- msgstr ""
965
-
966
- #: src/features/autoupdates.php:284
967
- msgid ""
968
- "Note: Automatic updates for plugins are disabled on WordPress by default."
969
- msgstr ""
970
-
971
- #: src/features/autoupdates.php:288
972
- msgid "Individually Select Plugins"
973
- msgstr ""
974
-
975
- #: src/features/autoupdates.php:289
976
- msgid "Select Individual Plugins To Automatically Update"
977
- msgstr ""
978
-
979
- #: src/features/autoupdates.php:290
980
- msgid ""
981
- "Turning this on will provide an option on the plugins page to select whether "
982
- "a plugin is automatically updated."
983
- msgstr ""
984
-
985
- #: src/features/autoupdates.php:295
986
- msgid "Automatically Update Themes"
987
- msgstr ""
988
-
989
- #: src/features/autoupdates.php:296
990
- msgid ""
991
- "Note: Automatic updates for themes are disabled on WordPress by default."
992
- msgstr ""
993
-
994
- #: src/features/autoupdates.php:300
995
- msgid "Ignore Version Control"
996
- msgstr ""
997
-
998
- #: src/features/autoupdates.php:301
999
- msgid "Ignore Version Control Systems Such As GIT and SVN"
1000
- msgstr ""
1001
-
1002
- #: src/features/autoupdates.php:302
1003
- msgid ""
1004
- "If you use SVN or GIT and WordPress detects it, automatic updates are "
1005
- "disabled by default. Check this box to ignore version control systems and "
1006
- "allow automatic updates."
1007
- msgstr ""
1008
-
1009
- #: src/features/autoupdates.php:306
1010
- msgid "Send Report Email"
1011
- msgstr ""
1012
-
1013
- #: src/features/autoupdates.php:307
1014
- msgid "Send email notices after automatic updates"
1015
- msgstr ""
1016
-
1017
- #: src/features/autoupdates.php:308
1018
- msgid ""
1019
- "You can turn on/off email notices from automatic updates by un/checking this "
1020
- "box."
1021
- msgstr ""
1022
-
1023
- #: src/features/autoupdates.php:312
1024
- msgid "Report Email Address"
1025
- msgstr ""
1026
-
1027
- #: src/features/autoupdates.php:313
1028
- msgid "Where to send upgrade notification reports"
1029
- msgstr ""
1030
-
1031
- #: src/features/autoupdates.php:314
1032
- msgid "If this is empty, it will default to the Site Admin email address"
1033
- msgstr ""
1034
-
1035
- #: src/features/autoupdates.php:318
1036
- msgid "Update Delay"
1037
- msgstr ""
1038
-
1039
- #: src/features/autoupdates.php:319
1040
- msgid "Delay Automatic Updates For Period Of Stability"
1041
- msgstr ""
1042
-
1043
- #: src/features/autoupdates.php:320
1044
- #, php-format
1045
- msgid ""
1046
- "%s will delay upgrades until the new update has been available for the set "
1047
- "number of days."
1048
- msgstr ""
1049
-
1050
- #: src/features/autoupdates.php:321
1051
- msgid ""
1052
- "This helps ensure updates are more stable before they're automatically "
1053
- "applied to your site."
1054
- msgstr ""
1055
-
1056
- #: src/features/base.php:971
1057
- msgid ""
1058
- "Unfortunately your WordPress and/or PHP versions are too old to support this "
1059
- "feature."
1060
- msgstr ""
1061
-
1062
- #: src/features/base.php:1122
1063
- #, php-format
1064
- msgid "%s Plugin options updated successfully."
1065
- msgstr ""
1066
-
1067
- #: src/features/base.php:1126
1068
- #, php-format
1069
- msgid "Failed to update %s plugin options."
1070
- msgstr ""
1071
-
1072
- #: src/features/base.php:1166
1073
- msgid "You don't currently have permission to save settings."
1074
- msgstr ""
1075
-
1076
- #: src/features/base.php:1194
1077
- msgid "Plugin options updated successfully."
1078
- msgstr ""
1079
-
1080
- #: src/features/base.php:1286
1081
- msgid "Password values do not match."
1082
- msgstr ""
1083
-
1084
- #: src/features/base.php:1587
1085
- msgid "Support Forums"
1086
- msgstr ""
1087
-
1088
- #: src/features/base_wpsf.php:49 src/features/base_wpsf.php:51
1089
- msgid "Security Admin session has timed-out."
1090
- msgstr ""
1091
-
1092
- #: src/features/base_wpsf.php:49
1093
- msgid "Reload now?"
1094
- msgstr ""
1095
-
1096
- #: src/features/base_wpsf.php:50
1097
- msgid "Security Admin session has nearly timed-out."
1098
- msgstr ""
1099
-
1100
- #: src/features/base_wpsf.php:163 src/features/base_wpsf.php:203
1101
- msgid "Settings"
1102
- msgstr ""
1103
-
1104
- #: src/features/base_wpsf.php:164 src/features/base_wpsf.php:204
1105
- msgid "On"
1106
- msgstr ""
1107
-
1108
- #: src/features/base_wpsf.php:165 src/features/base_wpsf.php:205
1109
- msgid "Off"
1110
- msgstr ""
1111
-
1112
- #: src/features/base_wpsf.php:166 src/features/base_wpsf.php:206
1113
- #: src/processors/hackprotect_corechecksumscan.php:280
1114
- #: src/processors/hackprotect_pluginvulnerabilities.php:156
1115
- #: src/processors/hackprotect_wpvulnscan.php:147
1116
- #: src/processors/loginprotect_intent.php:293
1117
- msgid "More Info"
1118
- msgstr ""
1119
-
1120
- #: src/features/base_wpsf.php:167 src/features/base_wpsf.php:207
1121
- msgid "Blog"
1122
- msgstr ""
1123
-
1124
- #: src/features/base_wpsf.php:168 src/features/base_wpsf.php:208
1125
- msgid "Save All Settings"
1126
- msgstr ""
1127
-
1128
- #: src/features/base_wpsf.php:170 src/features/base_wpsf.php:210
1129
- msgid "Configure Module"
1130
- msgstr ""
1131
-
1132
- #: src/features/base_wpsf.php:171 src/features/base_wpsf.php:211
1133
- msgid "Actions and Info"
1134
- msgstr ""
1135
-
1136
- #: src/features/base_wpsf.php:172 src/features/base_wpsf.php:212
1137
- msgid "Perform actions for this module"
1138
- msgstr ""
1139
-
1140
- #: src/features/base_wpsf.php:173 src/features/base_wpsf.php:213
1141
- msgid "Help"
1142
- msgstr ""
1143
-
1144
- #: src/features/base_wpsf.php:174 src/features/base_wpsf.php:214
1145
- msgid "Learn More"
1146
- msgstr ""
1147
-
1148
- #: src/features/base_wpsf.php:175
1149
- msgid "Supply Password"
1150
- msgstr ""
1151
-
1152
- #: src/features/base_wpsf.php:176
1153
- msgid "Confirm Password"
1154
- msgstr ""
1155
-
1156
- #: src/features/base_wpsf.php:178 src/features/base_wpsf.php:216
1157
- msgid "Plugin Access Restricted"
1158
- msgstr ""
1159
-
1160
- #: src/features/base_wpsf.php:179 src/features/base_wpsf.php:217
1161
- msgid ""
1162
- "This security plugin is restricted to administrators with the Security "
1163
- "Access Key."
1164
- msgstr ""
1165
-
1166
- #: src/features/base_wpsf.php:180 src/features/base_wpsf.php:218
1167
- msgid "Please provide the Security Access Key to manage this plugin."
1168
- msgstr ""
1169
-
1170
- #: src/features/base_wpsf.php:181 src/features/base_wpsf.php:219
1171
- msgid "To manage this plugin you must enter the access key."
1172
- msgstr ""
1173
-
1174
- #: src/features/base_wpsf.php:182 src/features/base_wpsf.php:220
1175
- msgid "Enter Access Key"
1176
- msgstr ""
1177
-
1178
- #: src/features/base_wpsf.php:183 src/features/base_wpsf.php:221
1179
- msgid "Submit Security Admin Key"
1180
- msgstr ""
1181
-
1182
- #: src/features/base_wpsf.php:184 src/features/base_wpsf.php:222
1183
- msgid "Forgotten Key"
1184
- msgstr ""
1185
-
1186
- #: src/features/base_wpsf.php:236
1187
- msgid "Nonce security checking failed - the nonce value was empty."
1188
- msgstr ""
1189
-
1190
- #: src/features/base_wpsf.php:237
1191
- #, php-format
1192
- msgid "Nonce security checking failed - the nonce supplied was \"%s\"."
1193
- msgstr ""
1194
-
1195
- #: src/features/base_wpsf.php:319 src/features/base_wpsf.php:320
1196
- msgid "User Messages"
1197
- msgstr ""
1198
-
1199
- #: src/features/base_wpsf.php:322
1200
- msgid "Customize the messages displayed to the user."
1201
- msgstr ""
1202
-
1203
- #: src/features/base_wpsf.php:323
1204
- msgid ""
1205
- "Use this section if you need to communicate to the user in a particular "
1206
- "manner."
1207
- msgstr ""
1208
-
1209
- #: src/features/base_wpsf.php:324
1210
- msgid "Hint"
1211
- msgstr ""
1212
-
1213
- #: src/features/base_wpsf.php:324
1214
- #, php-format
1215
- msgid "To reset any message to its default, enter the text exactly: %s"
1216
- msgstr ""
1217
-
1218
- #: src/features/comments_filter.php:44
1219
- msgid "I'm not a spammer."
1220
- msgstr ""
1221
-
1222
- #: src/features/comments_filter.php:47
1223
- msgid "Please check the box to confirm you're not a spammer."
1224
- msgstr ""
1225
-
1226
- #: src/features/comments_filter.php:50
1227
- #, php-format
1228
- msgid "Please wait %s seconds before posting your comment."
1229
- msgstr ""
1230
-
1231
- #: src/features/comments_filter.php:53
1232
- msgid "Please reload this page to post a comment."
1233
- msgstr ""
1234
-
1235
- #: src/features/comments_filter.php:103
1236
- msgid "Comments SPAM Protection"
1237
- msgstr ""
1238
-
1239
- #: src/features/comments_filter.php:105
1240
- #, php-format
1241
- msgid ""
1242
- "The Comments Filter can block 100% of automated spam bots and also offer the "
1243
- "option to analyse human-generated spam."
1244
- msgstr ""
1245
-
1246
- #: src/features/comments_filter.php:106
1247
- msgid "Comments Filter"
1248
- msgstr ""
1249
-
1250
- #: src/features/comments_filter.php:112
1251
- #, php-format
1252
- msgid "%s Comment SPAM Protection"
1253
- msgstr ""
1254
-
1255
- #: src/features/comments_filter.php:112
1256
- msgid "Automatic Bot"
1257
- msgstr ""
1258
-
1259
- #: src/features/comments_filter.php:114
1260
- #, php-format
1261
- msgid "Blocks 100% of all automated bot-generated comment SPAM."
1262
- msgstr ""
1263
-
1264
- #: src/features/comments_filter.php:117
1265
- msgid "Bot SPAM"
1266
- msgstr ""
1267
-
1268
- #: src/features/comments_filter.php:124
1269
- msgid "Adds Google reCAPTCHA to the Comment Forms."
1270
- msgstr ""
1271
-
1272
- #: src/features/comments_filter.php:125 src/features/login_protect.php:617
1273
- msgid "Keep this turned on."
1274
- msgstr ""
1275
-
1276
- #: src/features/comments_filter.php:126 src/features/login_protect.php:618
1277
- msgid ""
1278
- "You will need to register for Google reCAPTCHA keys and store them in the "
1279
- "Shield 'Dashboard' settings."
1280
- msgstr ""
1281
-
1282
- #: src/features/comments_filter.php:131
1283
- #, php-format
1284
- msgid "%s Comment SPAM Protection Filter"
1285
- msgstr ""
1286
-
1287
- #: src/features/comments_filter.php:131
1288
- msgid "Human"
1289
- msgstr ""
1290
-
1291
- #: src/features/comments_filter.php:133
1292
- msgid "Uses a 3rd party SPAM dictionary to detect human-based comment SPAM."
1293
- msgstr ""
1294
-
1295
- #: src/features/comments_filter.php:135
1296
- msgid ""
1297
- "This tool, unlike other SPAM tools such as Akismet, will not send your "
1298
- "comment data to 3rd party services for analysis."
1299
- msgstr ""
1300
-
1301
- #: src/features/comments_filter.php:137
1302
- msgid "Human SPAM"
1303
- msgstr ""
1304
-
1305
- #: src/features/comments_filter.php:189
1306
- msgid "Enable (or Disable) The Comment SPAM Protection Feature"
1307
- msgstr ""
1308
-
1309
- #: src/features/comments_filter.php:190 src/wizards/plugin.php:707
1310
- #: src/wizards/plugin.php:712
1311
- msgid "Comment SPAM Protection"
1312
- msgstr ""
1313
-
1314
- #: src/features/comments_filter.php:194 src/features/comments_filter.php:195
1315
- msgid "Human SPAM Filter"
1316
- msgstr ""
1317
-
1318
- #: src/features/comments_filter.php:195
1319
- #, php-format
1320
- msgid "Enable (or Disable) The %s Feature"
1321
- msgstr ""
1322
-
1323
- #: src/features/comments_filter.php:196
1324
- msgid ""
1325
- "Scans the content of WordPress comments for keywords that are indicative of "
1326
- "SPAM and marks the comment according to your preferred setting below."
1327
- msgstr ""
1328
-
1329
- #: src/features/comments_filter.php:200
1330
- msgid "Comment Filter Items"
1331
- msgstr ""
1332
-
1333
- #: src/features/comments_filter.php:201
1334
- msgid "Select The Items To Scan For SPAM"
1335
- msgstr ""
1336
-
1337
- #: src/features/comments_filter.php:202
1338
- msgid ""
1339
- "When a user submits a comment, only the selected parts of the comment data "
1340
- "will be scanned for SPAM content."
1341
- msgstr ""
1342
-
1343
- #: src/features/comments_filter.php:202
1344
- #, php-format
1345
- msgid "Recommended: %s"
1346
- msgstr ""
1347
-
1348
- #: src/features/comments_filter.php:202
1349
- msgid "All"
1350
- msgstr ""
1351
-
1352
- #: src/features/comments_filter.php:206 src/features/comments_filter.php:218
1353
- msgid "Default SPAM Action"
1354
- msgstr ""
1355
-
1356
- #: src/features/comments_filter.php:207 src/features/comments_filter.php:219
1357
- msgid "How To Categorise Comments When Identified To Be SPAM"
1358
- msgstr ""
1359
-
1360
- #: src/features/comments_filter.php:208 src/features/comments_filter.php:220
1361
- #, php-format
1362
- msgid ""
1363
- "When a comment is detected as being SPAM from %s, the comment will be "
1364
- "categorised based on this setting."
1365
- msgstr ""
1366
-
1367
- #: src/features/comments_filter.php:208
1368
- msgid "a human commenter"
1369
- msgstr ""
1370
-
1371
- #: src/features/comments_filter.php:212
1372
- msgid "SPAM Bot Protection"
1373
- msgstr ""
1374
-
1375
- #: src/features/comments_filter.php:213
1376
- msgid "Block Automatic Comment SPAM By Bots"
1377
- msgstr ""
1378
-
1379
- #: src/features/comments_filter.php:214
1380
- msgid ""
1381
- "Simple, yet highly effective SPAM Bot protection for your WordPress comments."
1382
- msgstr ""
1383
-
1384
- #: src/features/comments_filter.php:220
1385
- msgid "an automatic bot"
1386
- msgstr ""
1387
-
1388
- #: src/features/comments_filter.php:224
1389
- msgid "Comments Cooldown"
1390
- msgstr ""
1391
-
1392
- #: src/features/comments_filter.php:225
1393
- msgid "Limit posting comments to X seconds after the page has loaded"
1394
- msgstr ""
1395
-
1396
- #: src/features/comments_filter.php:226
1397
- msgid ""
1398
- "By forcing a comments cooldown period, you restrict a Spambot's ability to "
1399
- "post multiple times to your posts."
1400
- msgstr ""
1401
-
1402
- #: src/features/comments_filter.php:230
1403
- msgid "Comment Token Expire"
1404
- msgstr ""
1405
-
1406
- #: src/features/comments_filter.php:231
1407
- msgid "A visitor has X seconds within which to post a comment"
1408
- msgstr ""
1409
-
1410
- #: src/features/comments_filter.php:232
1411
- msgid ""
1412
- "Default: 600 seconds (10 minutes). Each visitor is given a unique 'Token' so "
1413
- "they can comment. This restricts spambots, but we need to force these tokens "
1414
- "to expire and at the same time not bother the visitors."
1415
- msgstr ""
1416
-
1417
- #: src/features/comments_filter.php:236
1418
- msgid "GASP Checkbox Message"
1419
- msgstr ""
1420
-
1421
- #: src/features/comments_filter.php:237
1422
- msgid "If you want a custom checkbox message, please provide this here"
1423
- msgstr ""
1424
-
1425
- #: src/features/comments_filter.php:238
1426
- msgid "You can customise the message beside the checkbox."
1427
- msgstr ""
1428
-
1429
- #: src/features/comments_filter.php:239 src/features/comments_filter.php:258
1430
- #: src/features/comments_filter.php:265 src/features/comments_filter.php:272
1431
- #, php-format
1432
- msgid "Default Message: %s"
1433
- msgstr ""
1434
-
1435
- #: src/features/comments_filter.php:239 src/features/comments_filter.php:258
1436
- msgid "Please check the box to confirm you're not a spammer"
1437
- msgstr ""
1438
-
1439
- #: src/features/comments_filter.php:244
1440
- msgid "Enable Google reCAPTCHA For Comments"
1441
- msgstr ""
1442
-
1443
- #: src/features/comments_filter.php:245
1444
- msgid "Use Google reCAPTCHA on the comments form to prevent bot-spam comments."
1445
- msgstr ""
1446
-
1447
- #: src/features/comments_filter.php:249 src/features/login_protect.php:760
1448
- #: src/features/plugin.php:907
1449
- msgid "reCAPTCHA Style"
1450
- msgstr ""
1451
-
1452
- #: src/features/comments_filter.php:250 src/features/login_protect.php:761
1453
- msgid "How Google reCAPTCHA Will Be Displayed"
1454
- msgstr ""
1455
-
1456
- #: src/features/comments_filter.php:251 src/features/login_protect.php:762
1457
- #: src/features/plugin.php:909
1458
- msgid ""
1459
- "You can choose the reCAPTCHA display format that best suits your site, "
1460
- "including the new Invisible Recaptcha"
1461
- msgstr ""
1462
-
1463
- #: src/features/comments_filter.php:255
1464
- msgid "GASP Alert Message"
1465
- msgstr ""
1466
-
1467
- #: src/features/comments_filter.php:256
1468
- msgid "If you want a custom alert message, please provide this here"
1469
- msgstr ""
1470
-
1471
- #: src/features/comments_filter.php:257
1472
- msgid ""
1473
- "This alert message is displayed when a visitor attempts to submit a comment "
1474
- "without checking the box."
1475
- msgstr ""
1476
-
1477
- #: src/features/comments_filter.php:262
1478
- msgid "GASP Wait Message"
1479
- msgstr ""
1480
-
1481
- #: src/features/comments_filter.php:263
1482
- msgid ""
1483
- "If you want a custom submit-button wait message, please provide this here."
1484
- msgstr ""
1485
-
1486
- #: src/features/comments_filter.php:264
1487
- #, php-format
1488
- msgid ""
1489
- "Where you see the '%s' this will be the number of seconds. You must ensure "
1490
- "you include 1, and only 1, of these."
1491
- msgstr ""
1492
-
1493
- #: src/features/comments_filter.php:265
1494
- #, php-format
1495
- msgid "Please wait %s seconds before posting your comment"
1496
- msgstr ""
1497
-
1498
- #: src/features/comments_filter.php:269
1499
- msgid "GASP Reload Message"
1500
- msgstr ""
1501
-
1502
- #: src/features/comments_filter.php:270
1503
- msgid ""
1504
- "If you want a custom message when the comment token has expired, please "
1505
- "provide this here."
1506
- msgstr ""
1507
-
1508
- #: src/features/comments_filter.php:271
1509
- msgid ""
1510
- "This message is displayed on the submit-button when the comment token is "
1511
- "expired"
1512
- msgstr ""
1513
-
1514
- #: src/features/comments_filter.php:272
1515
- msgid "Please reload this page to post a comment"
1516
- msgstr ""
1517
-
1518
- #: src/features/email.php:33
1519
- msgid "Email Options"
1520
- msgstr ""
1521
-
1522
- #: src/features/email.php:53
1523
- msgid "Email Throttle Limit"
1524
- msgstr ""
1525
-
1526
- #: src/features/email.php:54
1527
- msgid "Limit Emails Per Second"
1528
- msgstr ""
1529
-
1530
- #: src/features/email.php:55
1531
- msgid ""
1532
- "You throttle emails sent by this plugin by limiting the number of emails "
1533
- "sent every second. This is useful in case you get hit by a bot attack. Zero "
1534
- "(0) turns this off. Suggested: 10"
1535
- msgstr ""
1536
-
1537
- #: src/features/firewall.php:36
1538
- #, php-format
1539
- msgid "You were blocked by the %s."
1540
- msgstr ""
1541
-
1542
- #: src/features/firewall.php:61
1543
- msgid ""
1544
- "The Firewall is designed to analyse data sent to your website and block any "
1545
- "requests that appear to be malicious."
1546
- msgstr ""
1547
-
1548
- #: src/features/firewall.php:62 src/features/plugin.php:956
1549
- msgid "Firewall"
1550
- msgstr ""
1551
-
1552
- #: src/features/firewall.php:68
1553
- msgid "Firewall Blocking Options"
1554
- msgstr ""
1555
-
1556
- #: src/features/firewall.php:70
1557
- msgid "Here you choose what kind of malicious data to scan for."
1558
- msgstr ""
1559
-
1560
- #: src/features/firewall.php:72
1561
- msgid "Turn on as many options here as you can."
1562
- msgstr ""
1563
-
1564
- #: src/features/firewall.php:73
1565
- msgid ""
1566
- "If you find an incompatibility or something stops working, un-check 1 option "
1567
- "at a time until you find the problem or review the Audit Trail."
1568
- msgstr ""
1569
-
1570
- #: src/features/firewall.php:75
1571
- msgid "Firewall Blocking"
1572
- msgstr ""
1573
-
1574
- #: src/features/firewall.php:79
1575
- msgid "Choose Firewall Block Response"
1576
- msgstr ""
1577
-
1578
- #: src/features/firewall.php:81
1579
- msgid ""
1580
- "Here you choose how the plugin will respond when it detects malicious data."
1581
- msgstr ""
1582
-
1583
- #: src/features/firewall.php:82
1584
- #, php-format
1585
- msgid "Choose the option \"%s\"."
1586
- msgstr ""
1587
-
1588
- #: src/features/firewall.php:82
1589
- msgid "Die With Message"
1590
- msgstr ""
1591
-
1592
- #: src/features/firewall.php:84
1593
- msgid "Firewall Response"
1594
- msgstr ""
1595
-
1596
- #: src/features/firewall.php:88
1597
- msgid ""
1598
- "Whitelists - IPs, Pages, Parameters, and Users that by-pass the Firewall"
1599
- msgstr ""
1600
-
1601
- #: src/features/firewall.php:90
1602
- msgid ""
1603
- "In principle you should not need to whitelist anything or anyone unless you "
1604
- "have discovered a collision with another plugin."
1605
- msgstr ""
1606
-
1607
- #: src/features/firewall.php:91
1608
- msgid ""
1609
- "Do not whitelist anything unless you are confident in what you are doing."
1610
- msgstr ""
1611
-
1612
- #: src/features/firewall.php:93
1613
- msgid "Whitelist"
1614
- msgstr ""
1615
-
1616
- #: src/features/firewall.php:121
1617
- msgid "Include Cookies"
1618
- msgstr ""
1619
-
1620
- #: src/features/firewall.php:122
1621
- msgid "Also Test Cookie Values In Firewall Tests"
1622
- msgstr ""
1623
-
1624
- #: src/features/firewall.php:123
1625
- msgid ""
1626
- "The firewall tests GET and POST, but with this option checked it will also "
1627
- "check COOKIE values."
1628
- msgstr ""
1629
-
1630
- #: src/features/firewall.php:127
1631
- msgid "Directory Traversals"
1632
- msgstr ""
1633
-
1634
- #: src/features/firewall.php:128
1635
- msgid "Block Directory Traversals"
1636
- msgstr ""
1637
-
1638
- #: src/features/firewall.php:129
1639
- #, php-format
1640
- msgid ""
1641
- "This will block directory traversal paths in in application parameters (e.g. "
1642
- "%s, etc)."
1643
- msgstr ""
1644
-
1645
- #: src/features/firewall.php:133 src/processors/firewall.php:545
1646
- msgid "SQL Queries"
1647
- msgstr ""
1648
-
1649
- #: src/features/firewall.php:134
1650
- msgid "Block SQL Queries"
1651
- msgstr ""
1652
-
1653
- #: src/features/firewall.php:135
1654
- #, php-format
1655
- msgid "This will block sql in application parameters (e.g. %s, etc)."
1656
- msgstr ""
1657
-
1658
- #: src/features/firewall.php:139 src/processors/firewall.php:539
1659
- msgid "WordPress Terms"
1660
- msgstr ""
1661
-
1662
- #: src/features/firewall.php:140
1663
- msgid "Block WordPress Specific Terms"
1664
- msgstr ""
1665
-
1666
- #: src/features/firewall.php:141
1667
- msgid ""
1668
- "This will block WordPress specific terms in application parameters (wp_, "
1669
- "user_login, etc.)."
1670
- msgstr ""
1671
-
1672
- #: src/features/firewall.php:145 src/processors/firewall.php:542
1673
- msgid "Field Truncation"
1674
- msgstr ""
1675
-
1676
- #: src/features/firewall.php:146
1677
- msgid "Block Field Truncation Attacks"
1678
- msgstr ""
1679
-
1680
- #: src/features/firewall.php:147
1681
- msgid "This will block field truncation attacks in application parameters."
1682
- msgstr ""
1683
-
1684
- #: src/features/firewall.php:151 src/processors/firewall.php:554
1685
- msgid "PHP Code"
1686
- msgstr ""
1687
-
1688
- #: src/features/firewall.php:152
1689
- #, php-format
1690
- msgid "Block %s"
1691
- msgstr ""
1692
-
1693
- #: src/features/firewall.php:152
1694
- msgid "PHP Code Includes"
1695
- msgstr ""
1696
-
1697
- #: src/features/firewall.php:153
1698
- msgid "This will block any data that appears to try and include PHP files."
1699
- msgstr ""
1700
-
1701
- #: src/features/firewall.php:154
1702
- msgid "Will probably block saving within the Plugin/Theme file editors."
1703
- msgstr ""
1704
-
1705
- #: src/features/firewall.php:158
1706
- msgid "Exe File Uploads"
1707
- msgstr ""
1708
-
1709
- #: src/features/firewall.php:159
1710
- msgid "Block Executable File Uploads"
1711
- msgstr ""
1712
-
1713
- #: src/features/firewall.php:160
1714
- msgid "This will block executable file uploads (.php, .exe, etc.)."
1715
- msgstr ""
1716
-
1717
- #: src/features/firewall.php:164
1718
- msgid "Leading Schemas"
1719
- msgstr ""
1720
-
1721
- #: src/features/firewall.php:165
1722
- msgid "Block Leading Schemas (HTTPS / HTTP)"
1723
- msgstr ""
1724
-
1725
- #: src/features/firewall.php:166
1726
- msgid ""
1727
- "This will block leading schemas http:// and https:// in application "
1728
- "parameters (off by default; may cause problems with other plugins)."
1729
- msgstr ""
1730
-
1731
- #: src/features/firewall.php:170
1732
- msgid "Aggressive Scan"
1733
- msgstr ""
1734
-
1735
- #: src/features/firewall.php:171
1736
- msgid "Aggressively Block Data"
1737
- msgstr ""
1738
-
1739
- #: src/features/firewall.php:172
1740
- msgid ""
1741
- "Employs a set of aggressive rules to detect and block malicious data "
1742
- "submitted to your site."
1743
- msgstr ""
1744
-
1745
- #: src/features/firewall.php:173 src/features/hack_protect.php:906
1746
- #: src/features/hack_protect.php:930 src/features/hack_protect.php:931
1747
- #: src/features/ips.php:272 src/features/ips.php:279
1748
- #: src/features/lockdown.php:181 src/features/lockdown.php:194
1749
- #: src/features/plugin.php:873
1750
- #: src/processors/hackprotect_corechecksumscan.php:244
1751
- #: src/processors/hackprotect_filecleanerscan.php:232
1752
- #: src/processors/hackprotect_pluginvulnerabilities.php:110
1753
- #: src/processors/hackprotect_ptguard.php:526
1754
- #: src/processors/hackprotect_wpvulnscan.php:220
1755
- #: src/processors/loginprotect_wplogin.php:74
1756
- #: src/processors/loginprotect_wplogin.php:93 src/processors/plugin.php:206
1757
- msgid "Warning"
1758
- msgstr ""
1759
-
1760
- #: src/features/firewall.php:173
1761
- msgid "May cause an increase in false-positive firewall blocks."
1762
- msgstr ""
1763
-
1764
- #: src/features/firewall.php:177
1765
- msgid "Block Response"
1766
- msgstr ""
1767
-
1768
- #: src/features/firewall.php:178
1769
- msgid "Choose how the firewall responds when it blocks a request"
1770
- msgstr ""
1771
-
1772
- #: src/features/firewall.php:179
1773
- msgid ""
1774
- "We recommend dying with a message so you know what might have occurred when "
1775
- "the firewall blocks you"
1776
- msgstr ""
1777
-
1778
- #: src/features/firewall.php:183
1779
- msgid "Send Email Report"
1780
- msgstr ""
1781
-
1782
- #: src/features/firewall.php:184
1783
- msgid ""
1784
- "When a visitor is blocked the firewall will send an email to the configured "
1785
- "email address"
1786
- msgstr ""
1787
-
1788
- #: src/features/firewall.php:185
1789
- msgid ""
1790
- "Use with caution - if you get hit by automated bots you may send out too "
1791
- "many emails and you could get blocked by your host"
1792
- msgstr ""
1793
-
1794
- #: src/features/firewall.php:189
1795
- msgid "Whitelist Parameters"
1796
- msgstr ""
1797
-
1798
- #: src/features/firewall.php:190
1799
- msgid ""
1800
- "Detail pages and parameters that are whitelisted (ignored by the firewall)"
1801
- msgstr ""
1802
-
1803
- #: src/features/firewall.php:191
1804
- msgid ""
1805
- "This should be used with caution and you should only provide parameter names "
1806
- "that you must have excluded"
1807
- msgstr ""
1808
-
1809
- #: src/features/firewall.php:195 src/features/firewall.php:196
1810
- #: src/features/firewall.php:201
1811
- #, php-format
1812
- msgid "Ignore %s"
1813
- msgstr ""
1814
-
1815
- #: src/features/firewall.php:195 src/features/firewall.php:196
1816
- #: src/features/login_protect.php:165
1817
- msgid "Administrators"
1818
- msgstr ""
1819
-
1820
- #: src/features/firewall.php:197
1821
- msgid ""
1822
- "Authenticated administrator users will not be processed by the firewall "
1823
- "rules."
1824
- msgstr ""
1825
-
1826
- #: src/features/firewall.php:201
1827
- msgid "Search Engines"
1828
- msgstr ""
1829
-
1830
- #: src/features/firewall.php:202
1831
- msgid "Ignore Search Engine Bot Traffic"
1832
- msgstr ""
1833
-
1834
- #: src/features/firewall.php:203
1835
- msgid ""
1836
- "The firewall will try to recognise search engine spiders/bots and not apply "
1837
- "firewall rules to them."
1838
- msgstr ""
1839
-
1840
- #: src/features/firewall.php:207
1841
- msgid "Firewall Block Message"
1842
- msgstr ""
1843
-
1844
- #: src/features/firewall.php:208
1845
- msgid "Message Displayed To Visitor When A Firewall Block Is Triggered"
1846
- msgstr ""
1847
-
1848
- #: src/features/firewall.php:209
1849
- msgid "This is the message displayed to visitors that trigger the firewall."
1850
- msgstr ""
1851
-
1852
- #: src/features/hack_protect.php:142
1853
- #, php-format
1854
- msgid "%s per day"
1855
- msgstr ""
1856
-
1857
- #: src/features/hack_protect.php:618 src/features/license.php:42
1858
- msgid "Never"
1859
- msgstr ""
1860
-
1861
- #: src/features/hack_protect.php:619
1862
- #, php-format
1863
- msgid "Last Scan Time: %s"
1864
- msgstr ""
1865
-
1866
- #: src/features/hack_protect.php:633
1867
- #, php-format
1868
- msgid ""
1869
- "Sorry, this feature is not available because we cannot write to disk at this "
1870
- "location: \"%s\""
1871
- msgstr ""
1872
-
1873
- #: src/features/hack_protect.php:646
1874
- msgid "Scans"
1875
- msgstr ""
1876
-
1877
- #: src/features/hack_protect.php:654
1878
- msgid "Core File scanner is not enabled."
1879
- msgstr ""
1880
-
1881
- #: src/features/hack_protect.php:657
1882
- msgid "Automatic WordPress Core File scanner should be turned-on."
1883
- msgstr ""
1884
-
1885
- #: src/features/hack_protect.php:663
1886
- msgid "Modified WordPress core files found."
1887
- msgstr ""
1888
-
1889
- #: src/features/hack_protect.php:665 src/features/hack_protect.php:686
1890
- #: src/features/hack_protect.php:707
1891
- msgid "Run Scan"
1892
- msgstr ""
1893
-
1894
- #: src/features/hack_protect.php:666
1895
- msgid "Scan WP core files and repair any files that are flagged as modified."
1896
- msgstr ""
1897
-
1898
- #: src/features/hack_protect.php:675
1899
- msgid "Unrecognised File scanner is not enabled."
1900
- msgstr ""
1901
-
1902
- #: src/features/hack_protect.php:678
1903
- msgid "Automatic scanning for non-WordPress core files is recommended."
1904
- msgstr ""
1905
-
1906
- #: src/features/hack_protect.php:684
1907
- msgid "Unrecognised files found in WordPress Core directory."
1908
- msgstr ""
1909
-
1910
- #: src/features/hack_protect.php:687
1911
- msgid ""
1912
- "Scan and remove any files that are not meant to be in the WP core "
1913
- "directories."
1914
- msgstr ""
1915
-
1916
- #: src/features/hack_protect.php:696
1917
- msgid "Automatic Plugin/Themes Guard is not enabled."
1918
- msgstr ""
1919
-
1920
- #: src/features/hack_protect.php:699
1921
- msgid "Automatic detection of plugin/theme modifications is recommended."
1922
- msgstr ""
1923
-
1924
- #: src/features/hack_protect.php:705
1925
- msgid "A plugin/theme was found to have been modified."
1926
- msgstr ""
1927
-
1928
- #: src/features/hack_protect.php:708
1929
- msgid "Reviewing modifications to your plugins/themes is recommended."
1930
- msgstr ""
1931
-
1932
- #: src/features/hack_protect.php:717
1933
- msgid "Plugin Vulnerability Scanner is not enabled."
1934
- msgstr ""
1935
-
1936
- #: src/features/hack_protect.php:720
1937
- msgid "Automatic detection of plugin vulnerabilities is recommended."
1938
- msgstr ""
1939
-
1940
- #: src/features/hack_protect.php:726
1941
- msgid "At least 1 plugin has known vulnerabilities."
1942
- msgstr ""
1943
-
1944
- #: src/features/hack_protect.php:729
1945
- msgid ""
1946
- "Plugins with known vulnerabilities should be updated, removed, or replaced."
1947
- msgstr ""
1948
-
1949
- #: src/features/hack_protect.php:751 src/features/hack_protect.php:752
1950
- msgid "Scan Options"
1951
- msgstr ""
1952
-
1953
- #: src/features/hack_protect.php:754
1954
- msgid "Set how frequently the Hack Guard scans will run."
1955
- msgstr ""
1956
-
1957
- #: src/features/hack_protect.php:761
1958
- msgid ""
1959
- "Hack Guard is a set of tools to warn you and protect you against hacks on "
1960
- "your site."
1961
- msgstr ""
1962
-
1963
- #: src/features/hack_protect.php:762 src/features/plugin.php:958
1964
- msgid "Hack Guard"
1965
- msgstr ""
1966
-
1967
- #: src/features/hack_protect.php:768 src/features/hack_protect.php:774
1968
- msgid "Vulnerabilities Scanner"
1969
- msgstr ""
1970
-
1971
- #: src/features/hack_protect.php:770
1972
- msgid ""
1973
- "Regularly scan your WordPress plugins and themes for known security "
1974
- "vulnerabilities."
1975
- msgstr ""
1976
-
1977
- #: src/features/hack_protect.php:771 src/features/hack_protect.php:778
1978
- #: src/features/hack_protect.php:781 src/features/hack_protect.php:861
1979
- msgid "Plugin Vulnerabilities Scanner"
1980
- msgstr ""
1981
-
1982
- #: src/features/hack_protect.php:772
1983
- msgid ""
1984
- "Ensure this is turned on and you will always know if any of your assets have "
1985
- "known security vulnerabilities."
1986
- msgstr ""
1987
-
1988
- #: src/features/hack_protect.php:780
1989
- msgid ""
1990
- "Regularly scan your plugins against a database of known vulnerabilities."
1991
- msgstr ""
1992
-
1993
- #: src/features/hack_protect.php:783
1994
- msgid "Plugin Vulnerabilities"
1995
- msgstr ""
1996
-
1997
- #: src/features/hack_protect.php:787 src/features/hack_protect.php:790
1998
- msgid "Core File Integrity Scanner"
1999
- msgstr ""
2000
-
2001
- #: src/features/hack_protect.php:789
2002
- msgid ""
2003
- "Regularly scan your WordPress core files for changes compared to official "
2004
- "WordPress files."
2005
- msgstr ""
2006
-
2007
- #: src/features/hack_protect.php:792 src/features/hack_protect.php:885
2008
- msgid "Core File Scanner"
2009
- msgstr ""
2010
-
2011
- #: src/features/hack_protect.php:796 src/features/hack_protect.php:799
2012
- #: src/features/hack_protect.php:801 src/features/hack_protect.php:898
2013
- msgid "Unrecognised Files Scanner"
2014
- msgstr ""
2015
-
2016
- #: src/features/hack_protect.php:798
2017
- msgid "Regularly scan your WordPress core folders for files that don't belong."
2018
- msgstr ""
2019
-
2020
- #: src/features/hack_protect.php:805
2021
- msgid "Plugins and Themes Guard"
2022
- msgstr ""
2023
-
2024
- #: src/features/hack_protect.php:806
2025
- msgid "Plugins/Themes Guard"
2026
- msgstr ""
2027
-
2028
- #: src/features/hack_protect.php:808
2029
- msgid "Detect malicious changes to your themes and plugins."
2030
- msgstr ""
2031
-
2032
- #: src/features/hack_protect.php:809
2033
- msgid "Keep the Plugins/Theme Guard feature turned on."
2034
- msgstr ""
2035
-
2036
- #: src/features/hack_protect.php:810 src/features/user_management.php:325
2037
- msgid "Requirements"
2038
- msgstr ""
2039
-
2040
- #: src/features/hack_protect.php:815 src/features/hack_protect.php:816
2041
- msgid "Integrity Checks"
2042
- msgstr ""
2043
-
2044
- #: src/features/hack_protect.php:818
2045
- msgid "Monitor for unrecognised changes to your system."
2046
- msgstr ""
2047
-
2048
- #: src/features/hack_protect.php:819
2049
- msgid "Enable these to prevent unauthorized changes to your WordPress site."
2050
- msgstr ""
2051
-
2052
- #: src/features/hack_protect.php:848
2053
- msgid "Daily Scan Frequency"
2054
- msgstr ""
2055
-
2056
- #: src/features/hack_protect.php:849
2057
- msgid "Number Of Times To Automatically Run File Scan In 24hrs"
2058
- msgstr ""
2059
-
2060
- #: src/features/hack_protect.php:850
2061
- msgid "Once every 24hrs."
2062
- msgstr ""
2063
-
2064
- #: src/features/hack_protect.php:851
2065
- msgid "To improve security, increase the number of scans per day."
2066
- msgstr ""
2067
-
2068
- #: src/features/hack_protect.php:855
2069
- msgid "Email Files List"
2070
- msgstr ""
2071
-
2072
- #: src/features/hack_protect.php:856
2073
- msgid "Scan Notification Emails Should Include Full Listing Of Files"
2074
- msgstr ""
2075
-
2076
- #: src/features/hack_protect.php:857
2077
- msgid ""
2078
- "Scanner notification emails will include a summary list of all affected "
2079
- "files."
2080
- msgstr ""
2081
-
2082
- #: src/features/hack_protect.php:862
2083
- #, php-format
2084
- msgid "Daily Cron - %s"
2085
- msgstr ""
2086
-
2087
- #: src/features/hack_protect.php:862
2088
- msgid "Scans Plugins For Known Vulnerabilities"
2089
- msgstr ""
2090
-
2091
- #: src/features/hack_protect.php:863
2092
- msgid ""
2093
- "Runs a scan of all your plugins against a database of known WordPress plugin "
2094
- "vulnerabilities."
2095
- msgstr ""
2096
-
2097
- #: src/features/hack_protect.php:867
2098
- msgid "Vulnerability Scanner"
2099
- msgstr ""
2100
-
2101
- #: src/features/hack_protect.php:868
2102
- msgid "Enable The Vulnerability Scanner"
2103
- msgstr ""
2104
-
2105
- #: src/features/hack_protect.php:869
2106
- msgid ""
2107
- "Runs a scan of all your plugins against a database of known WordPress "
2108
- "vulnerabilities."
2109
- msgstr ""
2110
-
2111
- #: src/features/hack_protect.php:874
2112
- msgid "Apply Updates Automatically To Vulnerable Plugins"
2113
- msgstr ""
2114
-
2115
- #: src/features/hack_protect.php:875
2116
- msgid ""
2117
- "When an update becomes available, automatically apply updates to items with "
2118
- "known vulnerabilities."
2119
- msgstr ""
2120
-
2121
- #: src/features/hack_protect.php:879
2122
- msgid "Highlight Plugins"
2123
- msgstr ""
2124
-
2125
- #: src/features/hack_protect.php:880
2126
- msgid "Highlight Vulnerable Plugins Upon Display"
2127
- msgstr ""
2128
-
2129
- #: src/features/hack_protect.php:881
2130
- msgid "Vulnerable plugins will be highlighted on the main plugins page."
2131
- msgstr ""
2132
-
2133
- #: src/features/hack_protect.php:886
2134
- msgid "Scans WordPress Core Files For Alterations"
2135
- msgstr ""
2136
-
2137
- #: src/features/hack_protect.php:887
2138
- msgid ""
2139
- "Compares all WordPress core files on your site against the official "
2140
- "WordPress files."
2141
- msgstr ""
2142
-
2143
- #: src/features/hack_protect.php:888
2144
- msgid "WordPress Core files should never be altered for any reason."
2145
- msgstr ""
2146
-
2147
- #: src/features/hack_protect.php:892
2148
- msgid "Auto Repair"
2149
- msgstr ""
2150
-
2151
- #: src/features/hack_protect.php:893
2152
- msgid "Automatically Repair WordPress Core Files That Have Been Altered"
2153
- msgstr ""
2154
-
2155
- #: src/features/hack_protect.php:894
2156
- msgid ""
2157
- "Attempts to automatically repair WordPress Core files with the official "
2158
- "WordPress file data, for files that have been altered or are missing."
2159
- msgstr ""
2160
-
2161
- #: src/features/hack_protect.php:899
2162
- msgid "Daily Scan For Unrecognised Files In Core Directories"
2163
- msgstr ""
2164
-
2165
- #: src/features/hack_protect.php:900
2166
- msgid ""
2167
- "Scans for, and automatically deletes, any files in your core WordPress "
2168
- "folders that are not part of your WordPress installation."
2169
- msgstr ""
2170
-
2171
- #: src/features/hack_protect.php:904
2172
- msgid "Scan Uploads"
2173
- msgstr ""
2174
-
2175
- #: src/features/hack_protect.php:905
2176
- msgid "Scan Uploads Folder For PHP and Javascript"
2177
- msgstr ""
2178
-
2179
- #: src/features/hack_protect.php:906
2180
- msgid ""
2181
- "Take care when turning on this option - if you are unsure, leave it disabled."
2182
- msgstr ""
2183
-
2184
- #: src/features/hack_protect.php:907
2185
- msgid ""
2186
- "The Uploads folder is primarily for media, but could be used to store "
2187
- "nefarious files."
2188
- msgstr ""
2189
-
2190
- #: src/features/hack_protect.php:911
2191
- msgid "File Exclusions"
2192
- msgstr ""
2193
-
2194
- #: src/features/hack_protect.php:912
2195
- msgid "Provide A List Of Files To Be Excluded From The Scan"
2196
- msgstr ""
2197
-
2198
- #: src/features/hack_protect.php:914
2199
- msgid "Take a new line for each file you wish to exclude from the scan."
2200
- msgstr ""
2201
-
2202
- #: src/features/hack_protect.php:915
2203
- msgid "No commas are necessary."
2204
- msgstr ""
2205
-
2206
- #: src/features/hack_protect.php:920
2207
- msgid "Enable Integrity Scan"
2208
- msgstr ""
2209
-
2210
- #: src/features/hack_protect.php:921
2211
- msgid "Scans For Critical Changes Made To Your WordPress Site"
2212
- msgstr ""
2213
-
2214
- #: src/features/hack_protect.php:922
2215
- msgid "Detects changes made to your WordPress site outside of WordPress."
2216
- msgstr ""
2217
-
2218
- #: src/features/hack_protect.php:926
2219
- msgid "Monitor User Accounts"
2220
- msgstr ""
2221
-
2222
- #: src/features/hack_protect.php:927
2223
- msgid "Scans For Critical Changes Made To User Accounts"
2224
- msgstr ""
2225
-
2226
- #: src/features/hack_protect.php:928
2227
- msgid ""
2228
- "Detects changes made to critical user account information that were made "
2229
- "directly on the database and outside of the WordPress system."
2230
- msgstr ""
2231
-
2232
- #: src/features/hack_protect.php:929
2233
- msgid "An example of this might be some form of SQL Injection attack."
2234
- msgstr ""
2235
-
2236
- #: src/features/hack_protect.php:930
2237
- msgid ""
2238
- "Enabling this option for every page low may slow down your site with large "
2239
- "numbers of users."
2240
- msgstr ""
2241
-
2242
- #: src/features/hack_protect.php:931
2243
- msgid ""
2244
- "This option may cause critical problem with 3rd party plugins that manage "
2245
- "user accounts."
2246
- msgstr ""
2247
-
2248
- #: src/features/hack_protect.php:935 src/features/headers.php:197
2249
- #: src/features/headers.php:198 src/features/login_protect.php:714
2250
- #: src/features/login_protect.php:732 src/features/login_protect.php:738
2251
- #: src/features/plugin.php:799
2252
- #, php-format
2253
- msgid "Enable %s"
2254
- msgstr ""
2255
-
2256
- #: src/features/hack_protect.php:935
2257
- msgid "Guard"
2258
- msgstr ""
2259
-
2260
- #: src/features/hack_protect.php:936
2261
- msgid "Enable The Guard For Plugin And Theme Files"
2262
- msgstr ""
2263
-
2264
- #: src/features/hack_protect.php:937
2265
- msgid ""
2266
- "When enabled the Guard will automatically scan for changes to your Plugin "
2267
- "and Theme files."
2268
- msgstr ""
2269
-
2270
- #: src/features/hack_protect.php:941
2271
- msgid "Guard/Scan Depth"
2272
- msgstr ""
2273
-
2274
- #: src/features/hack_protect.php:942
2275
- msgid "How Deep Into The Plugin Directories To Scan And Guard"
2276
- msgstr ""
2277
-
2278
- #: src/features/hack_protect.php:943
2279
- msgid ""
2280
- "The Guard normally scans only the top level of a folder. Increasing depth "
2281
- "will increase scan times."
2282
- msgstr ""
2283
-
2284
- #: src/features/hack_protect.php:944
2285
- #, php-format
2286
- msgid ""
2287
- "Setting it to %s will remove this limit and all sub-folders will be scanned "
2288
- "- not recommended"
2289
- msgstr ""
2290
-
2291
- #: src/features/hack_protect.php:948
2292
- msgid "Included File Types"
2293
- msgstr ""
2294
-
2295
- #: src/features/hack_protect.php:949
2296
- msgid "The File Types (by File Extension) Included In The Scan"
2297
- msgstr ""
2298
-
2299
- #: src/features/hack_protect.php:950
2300
- msgid "Take a new line for each file extension."
2301
- msgstr ""
2302
-
2303
- #: src/features/hack_protect.php:951
2304
- msgid "No commas(,) or periods(.) necessary."
2305
- msgstr ""
2306
-
2307
- #: src/features/hack_protect.php:952
2308
- msgid "Remove all extensions to scan all file type (not recommended)."
2309
- msgstr ""
2310
-
2311
- #: src/features/hack_protect.php:956
2312
- msgid "Show Re-Install Links"
2313
- msgstr ""
2314
-
2315
- #: src/features/hack_protect.php:957
2316
- msgid "Show Re-Install Links For Plugins"
2317
- msgstr ""
2318
-
2319
- #: src/features/hack_protect.php:958
2320
- msgid ""
2321
- "Show links to re-install plugins and offer re-install when activating "
2322
- "plugins."
2323
- msgstr ""
2324
-
2325
- #: src/features/headers.php:122 src/features/headers.php:131
2326
- msgid ""
2327
- "Protect visitors to your site by implementing increased security response "
2328
- "headers."
2329
- msgstr ""
2330
-
2331
- #: src/features/headers.php:123 src/features/headers.php:132
2332
- #: src/features/headers.php:141
2333
- msgid ""
2334
- "Enabling these features are advised, but you must test them on your site "
2335
- "thoroughly."
2336
- msgstr ""
2337
-
2338
- #: src/features/headers.php:129
2339
- msgid "Advanced Security Headers"
2340
- msgstr ""
2341
-
2342
- #: src/features/headers.php:134
2343
- msgid "Security Headers"
2344
- msgstr ""
2345
-
2346
- #: src/features/headers.php:138 src/features/headers.php:143
2347
- #: src/features/headers.php:198
2348
- msgid "Content Security Policy"
2349
- msgstr ""
2350
-
2351
- #: src/features/headers.php:140
2352
- msgid ""
2353
- "Restrict the sources and types of content that may be loaded and processed "
2354
- "by visitor browsers."
2355
- msgstr ""
2356
-
2357
- #: src/features/headers.php:172
2358
- msgid "Block iFrames"
2359
- msgstr ""
2360
-
2361
- #: src/features/headers.php:173
2362
- msgid "Block Remote iFrames Of This Site"
2363
- msgstr ""
2364
-
2365
- #: src/features/headers.php:174
2366
- msgid ""
2367
- "The setting prevents any external website from embedding your site in an "
2368
- "iFrame."
2369
- msgstr ""
2370
-
2371
- #: src/features/headers.php:175
2372
- msgid "This is useful for preventing so-called \"ClickJack attacks\"."
2373
- msgstr ""
2374
-
2375
- #: src/features/headers.php:179
2376
- msgid "Referrer Policy"
2377
- msgstr ""
2378
-
2379
- #: src/features/headers.php:180
2380
- msgid "Referrer Policy Header"
2381
- msgstr ""
2382
-
2383
- #: src/features/headers.php:181
2384
- msgid ""
2385
- "The Referrer Policy Header allows you to control when and what referral "
2386
- "information a browser may pass along with links clicked on your site."
2387
- msgstr ""
2388
-
2389
- #: src/features/headers.php:185
2390
- msgid "XSS Protection"
2391
- msgstr ""
2392
-
2393
- #: src/features/headers.php:186
2394
- msgid "Employ Built-In Browser XSS Protection"
2395
- msgstr ""
2396
-
2397
- #: src/features/headers.php:187
2398
- msgid ""
2399
- "Directs compatible browsers to block what they detect as Reflective XSS "
2400
- "attacks."
2401
- msgstr ""
2402
-
2403
- #: src/features/headers.php:191
2404
- msgid "Prevent Mime-Sniff"
2405
- msgstr ""
2406
-
2407
- #: src/features/headers.php:192
2408
- msgid "Turn-Off Browser Mime-Sniff"
2409
- msgstr ""
2410
-
2411
- #: src/features/headers.php:193
2412
- msgid "Reduces visitor exposure to malicious user-uploaded content."
2413
- msgstr ""
2414
-
2415
- #: src/features/headers.php:199
2416
- msgid ""
2417
- "Allows for permission and restriction of all resources loaded on your site."
2418
- msgstr ""
2419
-
2420
- #: src/features/headers.php:203
2421
- msgid "Self"
2422
- msgstr ""
2423
-
2424
- #: src/features/headers.php:204
2425
- msgid "Allow 'self' Directive"
2426
- msgstr ""
2427
-
2428
- #: src/features/headers.php:205
2429
- msgid "Using 'self' is generally recommended."
2430
- msgstr ""
2431
-
2432
- #: src/features/headers.php:206
2433
- msgid ""
2434
- "It essentially means that resources from your own host:protocol are "
2435
- "permitted."
2436
- msgstr ""
2437
-
2438
- #: src/features/headers.php:210
2439
- msgid "Inline Entities"
2440
- msgstr ""
2441
-
2442
- #: src/features/headers.php:211
2443
- msgid "Allow Inline Scripts and CSS"
2444
- msgstr ""
2445
-
2446
- #: src/features/headers.php:212
2447
- msgid ""
2448
- "Allows parsing of Javascript and CSS declared in-line in your html document."
2449
- msgstr ""
2450
-
2451
- #: src/features/headers.php:216
2452
- msgid "Embedded Data"
2453
- msgstr ""
2454
-
2455
- #: src/features/headers.php:217
2456
- msgid "Allow \"data:\" Directives"
2457
- msgstr ""
2458
-
2459
- #: src/features/headers.php:218
2460
- msgid ""
2461
- "Allows use of embedded data directives, most commonly used for images and "
2462
- "fonts."
2463
- msgstr ""
2464
-
2465
- #: src/features/headers.php:222
2466
- msgid "Allow eval()"
2467
- msgstr ""
2468
-
2469
- #: src/features/headers.php:223
2470
- msgid "Allow Javascript eval()"
2471
- msgstr ""
2472
-
2473
- #: src/features/headers.php:224
2474
- msgid "Permits the use of Javascript the eval() function."
2475
- msgstr ""
2476
-
2477
- #: src/features/headers.php:228
2478
- msgid "HTTPS"
2479
- msgstr ""
2480
-
2481
- #: src/features/headers.php:229
2482
- msgid "HTTPS Resource Loading"
2483
- msgstr ""
2484
-
2485
- #: src/features/headers.php:230
2486
- msgid "Allows loading of any content provided over HTTPS."
2487
- msgstr ""
2488
-
2489
- #: src/features/headers.php:234
2490
- msgid "Permitted Hosts"
2491
- msgstr ""
2492
-
2493
- #: src/features/headers.php:235
2494
- msgid "Permitted Hosts and Domains"
2495
- msgstr ""
2496
-
2497
- #: src/features/headers.php:236
2498
- msgid ""
2499
- "You can explicitly state which hosts/domain from which content may be loaded."
2500
- msgstr ""
2501
-
2502
- #: src/features/headers.php:237
2503
- msgid ""
2504
- "Take great care and test your site as you may block legitimate resources."
2505
- msgstr ""
2506
-
2507
- #: src/features/headers.php:238
2508
- msgid "If in-doubt, leave blank or use \"*\" only."
2509
- msgstr ""
2510
-
2511
- #: src/features/headers.php:239
2512
- msgid ""
2513
- "You can force only HTTPS for a given domain by prefixing it with \"https://"
2514
- "\"."
2515
- msgstr ""
2516
-
2517
- #: src/features/insights.php:118
2518
- msgid "Sorry, Admin Notes is only available for Pro subscriptions."
2519
- msgstr ""
2520
-
2521
- #: src/features/insights.php:121
2522
- msgid "Sorry, but it appears your note was empty."
2523
- msgstr ""
2524
-
2525
- #: src/features/insights.php:130
2526
- msgid "Note created successfully."
2527
- msgstr ""
2528
-
2529
- #: src/features/insights.php:130
2530
- msgid "Note could not be created."
2531
- msgstr ""
2532
-
2533
- #: src/features/insights.php:194
2534
- #, php-format
2535
- msgid "%s Security Insights"
2536
- msgstr ""
2537
-
2538
- #: src/features/insights.php:195
2539
- msgid "recommendation"
2540
- msgstr ""
2541
-
2542
- #: src/features/insights.php:196
2543
- msgid "suggestion"
2544
- msgstr ""
2545
-
2546
- #: src/features/insights.php:197
2547
- #, php-format
2548
- msgid "Welcome To %s Security Insights Dashboard"
2549
- msgstr ""
2550
-
2551
- #: src/features/insights.php:198
2552
- #, php-format
2553
- msgid "Some of the most recent %s events"
2554
- msgstr ""
2555
-
2556
- #: src/features/insights.php:256
2557
- msgid "Site"
2558
- msgstr ""
2559
-
2560
- #: src/features/insights.php:280
2561
- msgid "SSL certificate for this site has expired."
2562
- msgstr ""
2563
-
2564
- #: src/features/insights.php:283
2565
- #, php-format
2566
- msgid "SSL certificate will expire soon (in %s days)"
2567
- msgstr ""
2568
-
2569
- #: src/features/insights.php:290
2570
- msgid "Check or renew your SSL certificate."
2571
- msgstr ""
2572
-
2573
- #: src/features/insights.php:313
2574
- msgid "DB Password appears to be weak."
2575
- msgstr ""
2576
-
2577
- #: src/features/insights.php:315
2578
- msgid "The database password should be strong."
2579
- msgstr ""
2580
-
2581
- #: src/features/insights.php:345
2582
- #, php-format
2583
- msgid "%s inactive plugin(s)"
2584
- msgstr ""
2585
-
2586
- #: src/features/insights.php:348
2587
- msgid "Unused plugins should be removed."
2588
- msgstr ""
2589
-
2590
- #: src/features/insights.php:358
2591
- #, php-format
2592
- msgid "%s plugin update(s)"
2593
- msgstr ""
2594
-
2595
- #: src/features/insights.php:360 src/features/insights.php:400
2596
- #: src/features/insights.php:426
2597
- msgid "Updates"
2598
- msgstr ""
2599
-
2600
- #: src/features/insights.php:361 src/features/insights.php:401
2601
- #: src/features/insights.php:427
2602
- msgid "Updates should be applied as early as possible."
2603
- msgstr ""
2604
-
2605
- #: src/features/insights.php:385
2606
- #, php-format
2607
- msgid "%s inactive themes(s)"
2608
- msgstr ""
2609
-
2610
- #: src/features/insights.php:388
2611
- msgid "Unused themes should be removed."
2612
- msgstr ""
2613
-
2614
- #: src/features/insights.php:398
2615
- #, php-format
2616
- msgid "%s theme update(s)"
2617
- msgstr ""
2618
-
2619
- #: src/features/insights.php:416
2620
- msgid "WordPress Core"
2621
- msgstr ""
2622
-
2623
- #: src/features/insights.php:424
2624
- msgid "WordPress Core has an update available."
2625
- msgstr ""
2626
-
2627
- #: src/features/insights.php:436
2628
- msgid "WordPress does not automatically install updates."
2629
- msgstr ""
2630
-
2631
- #: src/features/insights.php:439
2632
- msgid "Minor WordPress upgrades should be applied automatically."
2633
- msgstr ""
2634
-
2635
- #: src/features/insights.php:489
2636
- msgid "Transgressions"
2637
- msgstr ""
2638
-
2639
- #: src/features/insights.php:491
2640
- msgid "Total transgression against the site."
2641
- msgstr ""
2642
-
2643
- #: src/features/insights.php:494
2644
- msgid "IP Blocks"
2645
- msgstr ""
2646
-
2647
- #: src/features/insights.php:496
2648
- msgid "Total connections blocked/killed after too many transgressions."
2649
- msgstr ""
2650
-
2651
- #: src/features/insights.php:499 src/processors/statistics.php:201
2652
- msgid "Login Blocks"
2653
- msgstr ""
2654
-
2655
- #: src/features/insights.php:501
2656
- msgid "Total login attempts blocked."
2657
- msgstr ""
2658
-
2659
- #: src/features/insights.php:504 src/processors/statistics.php:200
2660
- msgid "Firewall Blocks"
2661
- msgstr ""
2662
-
2663
- #: src/features/insights.php:506
2664
- msgid "Total requests blocked by firewall rules."
2665
- msgstr ""
2666
-
2667
- #: src/features/insights.php:509 src/processors/statistics.php:199
2668
- msgid "Comment Blocks"
2669
- msgstr ""
2670
-
2671
- #: src/features/insights.php:511
2672
- msgid "Total SPAM comments blocked."
2673
- msgstr ""
2674
-
2675
- #: src/features/insights.php:514
2676
- msgid "Active Sessions"
2677
- msgstr ""
2678
-
2679
- #: src/features/insights.php:516
2680
- msgid "Currently active user sessions."
2681
- msgstr ""
2682
-
2683
- #: src/features/insights.php:519
2684
- msgid "Blacklist IPs"
2685
- msgstr ""
2686
-
2687
- #: src/features/insights.php:521
2688
- msgid "Current IP addresses with transgressions against the site."
2689
- msgstr ""
2690
-
2691
- #: src/features/insights.php:524
2692
- msgid "Pro"
2693
- msgstr ""
2694
-
2695
- #: src/features/insights.php:525 src/features/traffic.php:365
2696
- msgid "Yes"
2697
- msgstr ""
2698
-
2699
- #: src/features/insights.php:525 src/features/traffic.php:341
2700
- #: src/features/traffic.php:365
2701
- msgid "No"
2702
- msgstr ""
2703
-
2704
- #: src/features/insights.php:526
2705
- #, php-format
2706
- msgid "Is this site running %s Pro"
2707
- msgstr ""
2708
-
2709
- #: src/features/insights.php:548
2710
- msgid "Not yet recorded"
2711
- msgstr ""
2712
-
2713
- #: src/features/insights.php:585
2714
- msgid "Simple Test Cron"
2715
- msgstr ""
2716
-
2717
- #: src/features/insights.php:586
2718
- msgid "Unrecognised Files Scan"
2719
- msgstr ""
2720
-
2721
- #: src/features/insights.php:587
2722
- msgid "WordPress Core Files Scan"
2723
- msgstr ""
2724
-
2725
- #: src/features/insights.php:588
2726
- msgid "Plugin/Themes Guard Scan"
2727
- msgstr ""
2728
-
2729
- #: src/features/insights.php:589
2730
- msgid "Plugin Vulnerabilities Scan"
2731
- msgstr ""
2732
-
2733
- #: src/features/insights.php:590
2734
- msgid "Successful 2-FA Login"
2735
- msgstr ""
2736
-
2737
- #: src/features/insights.php:591
2738
- msgid "Login Block"
2739
- msgstr ""
2740
-
2741
- #: src/features/insights.php:592
2742
- msgid "User Registration Block"
2743
- msgstr ""
2744
-
2745
- #: src/features/insights.php:593
2746
- msgid "Reset Password Block"
2747
- msgstr ""
2748
-
2749
- #: src/features/insights.php:594
2750
- msgid "Firewall Block"
2751
- msgstr ""
2752
-
2753
- #: src/features/insights.php:595
2754
- msgid "Idle Logout"
2755
- msgstr ""
2756
-
2757
- #: src/features/insights.php:596
2758
- msgid "Password Block"
2759
- msgstr ""
2760
-
2761
- #: src/features/insights.php:597
2762
- msgid "Comment SPAM Block"
2763
- msgstr ""
2764
-
2765
- #: src/features/insights.php:598
2766
- msgid "XML-RPC Block"
2767
- msgstr ""
2768
-
2769
- #: src/features/insights.php:599
2770
- msgid "Anonymous Rest API Block"
2771
- msgstr ""
2772
-
2773
- #: src/features/insights.php:600
2774
- #, php-format
2775
- msgid "%s Transgression"
2776
- msgstr ""
2777
-
2778
- #: src/features/insights.php:601
2779
- msgid "IP Connection Blocked"
2780
- msgstr ""
2781
-
2782
- #: src/features/ips.php:30
2783
- msgid "Manage IP Lists"
2784
- msgstr ""
2785
-
2786
- #: src/features/ips.php:31
2787
- msgid "Add/Remove IPs"
2788
- msgstr ""
2789
-
2790
- #: src/features/ips.php:228
2791
- msgid "now"
2792
- msgstr ""
2793
-
2794
- #: src/features/ips.php:273
2795
- msgid ""
2796
- "Repeated login attempts that fail will result in a complete ban of your IP "
2797
- "Address."
2798
- msgstr ""
2799
-
2800
- #: src/features/ips.php:280
2801
- #, php-format
2802
- msgid ""
2803
- "You have %s remaining transgression(s) against this site and then you will "
2804
- "be black listed."
2805
- msgstr ""
2806
-
2807
- #: src/features/ips.php:281
2808
- msgid "Seriously, stop repeating what you are doing or you will be locked out."
2809
- msgstr ""
2810
-
2811
- #: src/features/ips.php:304
2812
- msgid ""
2813
- "The IP Manager allows you to whitelist, blacklist and configure auto-"
2814
- "blacklist rules."
2815
- msgstr ""
2816
-
2817
- #: src/features/ips.php:305 src/features/plugin.php:961
2818
- #: src/wizards/plugin.php:525 src/wizards/plugin.php:530
2819
- msgid "IP Manager"
2820
- msgstr ""
2821
-
2822
- #: src/features/ips.php:306
2823
- msgid "You should also carefully review the automatic black list settings."
2824
- msgstr ""
2825
-
2826
- #: src/features/ips.php:312 src/features/ips.php:315 src/features/ips.php:358
2827
- msgid "Automatic IP Black List"
2828
- msgstr ""
2829
-
2830
- #: src/features/ips.php:314
2831
- msgid ""
2832
- "The Automatic IP Black List system will block the IP addresses of naughty "
2833
- "visitors after a specified number of transgressions."
2834
- msgstr ""
2835
-
2836
- #: src/features/ips.php:317
2837
- msgid "Auto Black List"
2838
- msgstr ""
2839
-
2840
- #: src/features/ips.php:321
2841
- msgid "Bad Request Tracking"
2842
- msgstr ""
2843
-
2844
- #: src/features/ips.php:322
2845
- msgid "Request Tracking"
2846
- msgstr ""
2847
-
2848
- #: src/features/ips.php:324
2849
- msgid "Track strange behaviour to determine whether visitors are legitimate."
2850
- msgstr ""
2851
-
2852
- #: src/features/ips.php:325
2853
- msgid ""
2854
- "These aren't security issues in their own right, but may indicate probing "
2855
- "bots."
2856
- msgstr ""
2857
-
2858
- #: src/features/ips.php:353
2859
- msgid "Transgression Limit"
2860
- msgstr ""
2861
-
2862
- #: src/features/ips.php:354
2863
- msgid ""
2864
- "Visitor IP address will be Black Listed after X bad actions on your site"
2865
- msgstr ""
2866
-
2867
- #: src/features/ips.php:355
2868
- #, php-format
2869
- msgid ""
2870
- "A black mark is set against an IP address each time a visitor trips the "
2871
- "defenses of the %s plugin."
2872
- msgstr ""
2873
-
2874
- #: src/features/ips.php:357
2875
- msgid ""
2876
- "When the number of these transgressions exceeds specified limit, they are "
2877
- "automatically blocked from accessing the site."
2878
- msgstr ""
2879
-
2880
- #: src/features/ips.php:358
2881
- #, php-format
2882
- msgid "Set this to \"0\" to turn off the %s feature."
2883
- msgstr ""
2884
-
2885
- #: src/features/ips.php:362
2886
- msgid "Auto Block Expiration"
2887
- msgstr ""
2888
-
2889
- #: src/features/ips.php:363
2890
- msgid "After 1 \"X\" a black listed IP will be removed from the black list"
2891
- msgstr ""
2892
-
2893
- #: src/features/ips.php:364
2894
- msgid "Permanent and lengthy IP Black Lists are harmful to performance."
2895
- msgstr ""
2896
-
2897
- #: src/features/ips.php:365
2898
- msgid ""
2899
- "You should allow IP addresses on the black list to be eventually removed "
2900
- "over time."
2901
- msgstr ""
2902
-
2903
- #: src/features/ips.php:366
2904
- msgid ""
2905
- "Shorter IP black lists are more efficient and a more intelligent use of an "
2906
- "IP-based blocking system."
2907
- msgstr ""
2908
-
2909
- #: src/features/ips.php:370
2910
- msgid "Track 404s"
2911
- msgstr ""
2912
-
2913
- #: src/features/ips.php:371
2914
- msgid "Use 404s As An Transgression"
2915
- msgstr ""
2916
-
2917
- #: src/features/ips.php:372
2918
- msgid "Repeated 404s may indicate a probing bot."
2919
- msgstr ""
2920
-
2921
- #: src/features/ips.php:376
2922
- msgid "Login Failed"
2923
- msgstr ""
2924
-
2925
- #: src/features/ips.php:377
2926
- msgid "Visitor Triggers The IP Transgression System Through A Failed Login"
2927
- msgstr ""
2928
-
2929
- #: src/features/ips.php:378
2930
- msgid "This message is displayed if the visitor fails a login attempt."
2931
- msgstr ""
2932
-
2933
- #: src/features/ips.php:382
2934
- msgid "Remaining Transgressions"
2935
- msgstr ""
2936
-
2937
- #: src/features/ips.php:383
2938
- msgid "Visitor Triggers The IP Transgression System Through A Firewall Block"
2939
- msgstr ""
2940
-
2941
- #: src/features/ips.php:384
2942
- msgid ""
2943
- "This message is displayed if the visitor triggered the IP Transgression "
2944
- "system and reports how many transgressions remain before being blocked."
2945
- msgstr ""
2946
-
2947
- #: src/features/ips.php:426
2948
- #, php-format
2949
- msgid ""
2950
- "Sorry, the %s feature may not be disabled while there are IP addresses in "
2951
- "the White List"
2952
- msgstr ""
2953
-
2954
- #: src/features/license.php:39 src/features/license.php:98
2955
- msgid "Active"
2956
- msgstr ""
2957
-
2958
- #: src/features/license.php:39
2959
- msgid "Not Active"
2960
- msgstr ""
2961
-
2962
- #: src/features/license.php:97
2963
- msgid "Name"
2964
- msgstr ""
2965
-
2966
- #: src/features/license.php:99
2967
- msgid "Status"
2968
- msgstr ""
2969
-
2970
- #: src/features/license.php:100
2971
- msgid "Key"
2972
- msgstr ""
2973
-
2974
- #: src/features/license.php:101
2975
- msgid "Expires"
2976
- msgstr ""
2977
-
2978
- #: src/features/license.php:102
2979
- msgid "Owner"
2980
- msgstr ""
2981
-
2982
- #: src/features/license.php:103
2983
- msgid "Checked"
2984
- msgstr ""
2985
-
2986
- #: src/features/license.php:104
2987
- msgid "Error"
2988
- msgstr ""
2989
-
2990
- #: src/features/license.php:176
2991
- #, php-format
2992
- msgid "Please wait %s before attempting another license check."
2993
- msgstr ""
2994
-
2995
- #: src/features/license.php:177
2996
- #, php-format
2997
- msgid "%s second"
2998
- msgid_plural "%s seconds"
2999
- msgstr[0] ""
3000
- msgstr[1] ""
3001
-
3002
- #: src/features/license.php:183
3003
- msgid "Valid license found."
3004
- msgstr ""
3005
-
3006
- #: src/features/license.php:183
3007
- msgid "Valid license couldn't be found."
3008
- msgstr ""
3009
-
3010
- #: src/features/license.php:305
3011
- #, php-format
3012
- msgid "Automatic license verification failed after %s days."
3013
- msgstr ""
3014
-
3015
- #: src/features/license.php:351
3016
- msgid "Attempts to verify Shield Pro license has just failed."
3017
- msgstr ""
3018
-
3019
- #: src/features/license.php:352 src/features/license.php:369
3020
- #, php-format
3021
- msgid "Please check your license on-site: %s"
3022
- msgstr ""
3023
-
3024
- #: src/features/license.php:353 src/features/license.php:370
3025
- #, php-format
3026
- msgid "If this problem persists, please contact support: %s"
3027
- msgstr ""
3028
-
3029
- #: src/features/license.php:368
3030
- msgid "All attempts to verify Shield Pro license have failed."
3031
- msgstr ""
3032
-
3033
- #: src/features/license.php:688 src/features/license.php:689
3034
- msgid "License Options"
3035
- msgstr ""
3036
-
3037
- #: src/features/license.php:691
3038
- #, php-format
3039
- msgid "Activate %s Pro Extensions."
3040
- msgstr ""
3041
-
3042
- #: src/features/license.php:692
3043
- msgid "TODO."
3044
- msgstr ""
3045
-
3046
- #: src/features/license.php:716 src/features/license.php:717
3047
- #: src/features/license.php:718
3048
- msgid "License Key"
3049
- msgstr ""
3050
-
3051
- #: src/features/lockdown.php:52 src/features/lockdown.php:88
3052
- #: src/features/plugin.php:963
3053
- msgid "Lockdown"
3054
- msgstr ""
3055
-
3056
- #: src/features/lockdown.php:60
3057
- msgid "Direct editing of plugin/theme files is permitted."
3058
- msgstr ""
3059
-
3060
- #: src/features/lockdown.php:63
3061
- msgid "WP Plugin file editing should be disabled."
3062
- msgstr ""
3063
-
3064
- #: src/features/lockdown.php:87
3065
- msgid ""
3066
- "Lockdown helps secure-up certain loosely-controlled WordPress settings on "
3067
- "your site."
3068
- msgstr ""
3069
-
3070
- #: src/features/lockdown.php:94 src/features/lockdown.php:99
3071
- msgid "API & XML-RPC"
3072
- msgstr ""
3073
-
3074
- #: src/features/lockdown.php:96
3075
- msgid "Lockdown certain core WordPress system features."
3076
- msgstr ""
3077
-
3078
- #: src/features/lockdown.php:97
3079
- msgid ""
3080
- "This depends on your usage and needs for certain WordPress functions and "
3081
- "features."
3082
- msgstr ""
3083
-
3084
- #: src/features/lockdown.php:103
3085
- msgid "Permissions and Access Options"
3086
- msgstr ""
3087
-
3088
- #: src/features/lockdown.php:105
3089
- msgid "Provides finer control of certain WordPress permissions."
3090
- msgstr ""
3091
-
3092
- #: src/features/lockdown.php:106
3093
- msgid "Only enable SSL if you have a valid certificate installed."
3094
- msgstr ""
3095
-
3096
- #: src/features/lockdown.php:108
3097
- msgid "Permissions"
3098
- msgstr ""
3099
-
3100
- #: src/features/lockdown.php:112
3101
- msgid "WordPress Obscurity Options"
3102
- msgstr ""
3103
-
3104
- #: src/features/lockdown.php:114
3105
- msgid "Obscures certain WordPress settings from public view."
3106
- msgstr ""
3107
-
3108
- #: src/features/lockdown.php:115
3109
- msgid ""
3110
- "Obscurity is not true security and so these settings are down to your "
3111
- "personal tastes."
3112
- msgstr ""
3113
-
3114
- #: src/features/lockdown.php:117
3115
- msgid "Obscurity"
3116
- msgstr ""
3117
-
3118
- #: src/features/lockdown.php:146 src/features/plugin.php:726
3119
- #, php-format
3120
- msgid "Disable %s"
3121
- msgstr ""
3122
-
3123
- #: src/features/lockdown.php:147 src/features/lockdown.php:153
3124
- #, php-format
3125
- msgid "Disable The %s System"
3126
- msgstr ""
3127
-
3128
- #: src/features/lockdown.php:148
3129
- #, php-format
3130
- msgid "Checking this option will completely turn off the whole %s system."
3131
- msgstr ""
3132
-
3133
- #: src/features/lockdown.php:152 src/features/lockdown.php:153
3134
- msgid "Anonymous Rest API"
3135
- msgstr ""
3136
-
3137
- #: src/features/lockdown.php:154
3138
- msgid "You can choose to completely disable anonymous access to the REST API."
3139
- msgstr ""
3140
-
3141
- #: src/features/lockdown.php:158
3142
- msgid "Rest API Exclusions"
3143
- msgstr ""
3144
-
3145
- #: src/features/lockdown.php:159
3146
- msgid "Anonymous REST API Exclusions"
3147
- msgstr ""
3148
-
3149
- #: src/features/lockdown.php:160
3150
- msgid ""
3151
- "Any namespaces provided here will be excluded from the Anonymous API "
3152
- "restriction."
3153
- msgstr ""
3154
-
3155
- #: src/features/lockdown.php:164
3156
- msgid "Disable File Editing"
3157
- msgstr ""
3158
-
3159
- #: src/features/lockdown.php:165
3160
- msgid "Disable Ability To Edit Files From Within WordPress"
3161
- msgstr ""
3162
-
3163
- #: src/features/lockdown.php:166
3164
- msgid ""
3165
- "Removes the option to directly edit any files from within the WordPress "
3166
- "admin area."
3167
- msgstr ""
3168
-
3169
- #: src/features/lockdown.php:167
3170
- msgid "Equivalent to setting \"DISALLOW_FILE_EDIT\" to TRUE."
3171
- msgstr ""
3172
-
3173
- #: src/features/lockdown.php:171
3174
- msgid "Force SSL Admin"
3175
- msgstr ""
3176
-
3177
- #: src/features/lockdown.php:172
3178
- msgid "Forces WordPress Admin Dashboard To Be Delivered Over SSL"
3179
- msgstr ""
3180
-
3181
- #: src/features/lockdown.php:173
3182
- msgid ""
3183
- "Please only enable this option if you have a valid SSL certificate installed."
3184
- msgstr ""
3185
-
3186
- #: src/features/lockdown.php:174
3187
- msgid "Equivalent to setting \"FORCE_SSL_ADMIN\" to TRUE."
3188
- msgstr ""
3189
-
3190
- #: src/features/lockdown.php:178
3191
- msgid "Mask WordPress Version"
3192
- msgstr ""
3193
-
3194
- #: src/features/lockdown.php:179
3195
- msgid "Prevents Public Display Of Your WordPress Version"
3196
- msgstr ""
3197
-
3198
- #: src/features/lockdown.php:180
3199
- msgid ""
3200
- "Enter how you would like your WordPress version displayed publicly. Leave "
3201
- "blank to disable this feature."
3202
- msgstr ""
3203
-
3204
- #: src/features/lockdown.php:181
3205
- msgid ""
3206
- "This may interfere with WordPress plugins that rely on the $wp_version "
3207
- "variable."
3208
- msgstr ""
3209
-
3210
- #: src/features/lockdown.php:185
3211
- msgid "WP Generator Tag"
3212
- msgstr ""
3213
-
3214
- #: src/features/lockdown.php:186
3215
- msgid "Remove WP Generator Meta Tag"
3216
- msgstr ""
3217
-
3218
- #: src/features/lockdown.php:187
3219
- msgid ""
3220
- "Remove a meta tag from your WordPress pages that publicly displays that your "
3221
- "site is WordPress and its current version."
3222
- msgstr ""
3223
-
3224
- #: src/features/lockdown.php:191
3225
- msgid "Block Username Fishing"
3226
- msgstr ""
3227
-
3228
- #: src/features/lockdown.php:192
3229
- msgid "Block the ability to discover WordPress usernames based on author IDs"
3230
- msgstr ""
3231
-
3232
- #: src/features/lockdown.php:193
3233
- #, php-format
3234
- msgid "When enabled, any URL requests containing \"%s\" will be killed."
3235
- msgstr ""
3236
-
3237
- #: src/features/lockdown.php:194
3238
- msgid ""
3239
- "Enabling this option may interfere with expected operations of your site."
3240
- msgstr ""
3241
-
3242
- #: src/features/login_protect.php:25
3243
- msgid "Email verification completed successfully."
3244
- msgstr ""
3245
-
3246
- #: src/features/login_protect.php:28
3247
- msgid "Email verification could not be completed."
3248
- msgstr ""
3249
-
3250
- #: src/features/login_protect.php:86
3251
- msgid ""
3252
- "Before enabling 2-factor email authentication for your WordPress site, you "
3253
- "must verify you can receive this email."
3254
- msgstr ""
3255
-
3256
- #: src/features/login_protect.php:87
3257
- msgid ""
3258
- "This verifies your website can send email and that your account can receive "
3259
- "emails sent from your site."
3260
- msgstr ""
3261
-
3262
- #: src/features/login_protect.php:92
3263
- #, php-format
3264
- msgid "Click the verify link: %s"
3265
- msgstr ""
3266
-
3267
- #: src/features/login_protect.php:95
3268
- #, php-format
3269
- msgid "Here's your code for the guided wizard: %s"
3270
- msgstr ""
3271
-
3272
- #: src/features/login_protect.php:98
3273
- msgid "Email Sending Verification"
3274
- msgstr ""
3275
-
3276
- #: src/features/login_protect.php:161
3277
- msgid "Subscribers"
3278
- msgstr ""
3279
-
3280
- #: src/features/login_protect.php:162
3281
- msgid "Contributors"
3282
- msgstr ""
3283
-
3284
- #: src/features/login_protect.php:163
3285
- msgid "Authors"
3286
- msgstr ""
3287
-
3288
- #: src/features/login_protect.php:164
3289
- msgid "Editors"
3290
- msgstr ""
3291
-
3292
- #: src/features/login_protect.php:429
3293
- msgid "I'm a human."
3294
- msgstr ""
3295
-
3296
- #: src/features/login_protect.php:433
3297
- msgid "Please check the box to show us you're a human."
3298
- msgstr ""
3299
-
3300
- #: src/features/login_protect.php:468
3301
- #, php-format
3302
- msgid "Support for login protection with %s is a Pro-only feature."
3303
- msgstr ""
3304
-
3305
- #: src/features/login_protect.php:474
3306
- msgid ""
3307
- "2FA by email demands that your WP site is properly configured to send email."
3308
- msgstr ""
3309
-
3310
- #: src/features/login_protect.php:475
3311
- msgid ""
3312
- "This is a common problem and you may get locked out in the future if you "
3313
- "ignore this."
3314
- msgstr ""
3315
-
3316
- #: src/features/login_protect.php:476 src/processors/lockdown.php:219
3317
- #: src/processors/plugin_tracking.php:37
3318
- msgid "Learn More."
3319
- msgstr ""
3320
-
3321
- #: src/features/login_protect.php:573
3322
- msgid "Multi-factor login backup code has been removed from your profile"
3323
- msgstr ""
3324
-
3325
- #: src/features/login_protect.php:607
3326
- msgid ""
3327
- "Login Guard blocks all automated and brute force attempts to log in to your "
3328
- "site."
3329
- msgstr ""
3330
-
3331
- #: src/features/login_protect.php:608 src/features/plugin.php:965
3332
- #: src/wizards/plugin.php:561 src/wizards/plugin.php:566
3333
- msgid "Login Guard"
3334
- msgstr ""
3335
-
3336
- #: src/features/login_protect.php:616
3337
- msgid "Adds Google reCAPTCHA to the Login Forms."
3338
- msgstr ""
3339
-
3340
- #: src/features/login_protect.php:623
3341
- msgid "Hide WordPress Login Page"
3342
- msgstr ""
3343
-
3344
- #: src/features/login_protect.php:624
3345
- #, php-format
3346
- msgid "Rename \"%s\""
3347
- msgstr ""
3348
-
3349
- #: src/features/login_protect.php:625
3350
- msgid "Hide Login Page"
3351
- msgstr ""
3352
-
3353
- #: src/features/login_protect.php:627
3354
- msgid ""
3355
- "To hide your wp-login.php page from brute force attacks and hacking attempts "
3356
- "- if your login page cannot be found, no-one can login."
3357
- msgstr ""
3358
-
3359
- #: src/features/login_protect.php:628
3360
- msgid ""
3361
- "This is not required for complete security and if your site has irregular or "
3362
- "inconsistent configuration it may not work for you."
3363
- msgstr ""
3364
-
3365
- #: src/features/login_protect.php:633 src/features/login_protect.php:714
3366
- #: src/features/user_management.php:344
3367
- msgid "Multi-Factor Authentication"
3368
- msgstr ""
3369
-
3370
- #: src/features/login_protect.php:634
3371
- msgid "Multi-Factor Auth"
3372
- msgstr ""
3373
-
3374
- #: src/features/login_protect.php:636 src/features/user_management.php:341
3375
- msgid ""
3376
- "Verifies the identity of users who log in to your site - i.e. they are who "
3377
- "they say they are."
3378
- msgstr ""
3379
-
3380
- #: src/features/login_protect.php:637 src/features/login_protect.php:647
3381
- #: src/features/login_protect.php:656 src/features/login_protect.php:674
3382
- msgid "You may combine multiple authentication factors for increased security."
3383
- msgstr ""
3384
-
3385
- #: src/features/login_protect.php:642
3386
- msgid "Email Two-Factor Authentication"
3387
- msgstr ""
3388
-
3389
- #: src/features/login_protect.php:643
3390
- msgid "2FA - Email"
3391
- msgstr ""
3392
-
3393
- #: src/features/login_protect.php:645
3394
- msgid ""
3395
- "Verifies the identity of users who log in to your site using email-based one-"
3396
- "time-passwords."
3397
- msgstr ""
3398
-
3399
- #: src/features/login_protect.php:646 src/features/user_management.php:342
3400
- msgid "However, if your host blocks email sending you may lock yourself out."
3401
- msgstr ""
3402
-
3403
- #: src/features/login_protect.php:652
3404
- msgid "Google Authenticator Two-Factor Authentication"
3405
- msgstr ""
3406
-
3407
- #: src/features/login_protect.php:653
3408
- msgid "2FA - Google Authenticator"
3409
- msgstr ""
3410
-
3411
- #: src/features/login_protect.php:655
3412
- msgid ""
3413
- "Verifies the identity of users who log in to your site using Google "
3414
- "Authenticator one-time-passwords."
3415
- msgstr ""
3416
-
3417
- #: src/features/login_protect.php:661
3418
- msgid "Brute Force Login Protection"
3419
- msgstr ""
3420
-
3421
- #: src/features/login_protect.php:662
3422
- msgid "reCAPTCHA & Bots"
3423
- msgstr ""
3424
-
3425
- #: src/features/login_protect.php:664
3426
- msgid ""
3427
- "Blocks brute force hacking attacks against your login and registration pages."
3428
- msgstr ""
3429
-
3430
- #: src/features/login_protect.php:670
3431
- msgid "Yubikey Two-Factor Authentication"
3432
- msgstr ""
3433
-
3434
- #: src/features/login_protect.php:671
3435
- msgid "2FA -Yubikey"
3436
- msgstr ""
3437
-
3438
- #: src/features/login_protect.php:673
3439
- msgid ""
3440
- "Verifies the identity of users who log in to your site using Yubikey one-"
3441
- "time-passwords."
3442
- msgstr ""
3443
-
3444
- #: src/features/login_protect.php:704
3445
- msgid "Hide WP Login Page"
3446
- msgstr ""
3447
-
3448
- #: src/features/login_protect.php:705
3449
- msgid "Hide The WordPress Login Page"
3450
- msgstr ""
3451
-
3452
- #: src/features/login_protect.php:706
3453
- msgid "Creating a path here will disable your wp-login.php"
3454
- msgstr ""
3455
-
3456
- #: src/features/login_protect.php:708
3457
- #, php-format
3458
- msgid "Only letters and numbers are permitted: %s"
3459
- msgstr ""
3460
-
3461
- #: src/features/login_protect.php:710
3462
- #, php-format
3463
- msgid "Your current login URL is: %s"
3464
- msgstr ""
3465
-
3466
- #: src/features/login_protect.php:715
3467
- msgid "Require All Active Authentication Factors"
3468
- msgstr ""
3469
-
3470
- #: src/features/login_protect.php:716
3471
- msgid ""
3472
- "When enabled, all multi-factor authentication methods will be applied to a "
3473
- "user login. Disable to require only one to login."
3474
- msgstr ""
3475
-
3476
- #: src/features/login_protect.php:720
3477
- msgid "Multi-Factor By-Pass"
3478
- msgstr ""
3479
-
3480
- #: src/features/login_protect.php:721
3481
- msgid ""
3482
- "A User Can By-Pass Multi-Factor Authentication (MFA) For The Set Number Of "
3483
- "Days"
3484
- msgstr ""
3485
-
3486
- #: src/features/login_protect.php:722
3487
- msgid ""
3488
- "Enter the number of days a user can by-pass future MFA after a successful "
3489
- "MFA-login. 0 to disable."
3490
- msgstr ""
3491
-
3492
- #: src/features/login_protect.php:726
3493
- msgid "Allow Backup Codes"
3494
- msgstr ""
3495
-
3496
- #: src/features/login_protect.php:727
3497
- msgid "Allow Users To Generate A Backup Code"
3498
- msgstr ""
3499
-
3500
- #: src/features/login_protect.php:728
3501
- msgid ""
3502
- "Allow users to generate a backup code that can be used to login if MFA "
3503
- "factors are unavailable."
3504
- msgstr ""
3505
-
3506
- #: src/features/login_protect.php:732
3507
- #: src/processors/loginprotect_backupcodes.php:40
3508
- #: src/processors/loginprotect_googleauthenticator.php:41
3509
- #: src/processors/loginprotect_googleauthenticator.php:45
3510
- #: src/processors/loginprotect_googleauthenticator.php:47
3511
- #: src/processors/loginprotect_googleauthenticator.php:184
3512
- #: src/processors/loginprotect_googleauthenticator.php:289
3513
- #: src/processors/loginprotect_googleauthenticator.php:297
3514
- msgid "Google Authenticator"
3515
- msgstr ""
3516
-
3517
- #: src/features/login_protect.php:733
3518
- msgid "Allow Users To Use Google Authenticator"
3519
- msgstr ""
3520
-
3521
- #: src/features/login_protect.php:734
3522
- msgid ""
3523
- "When enabled, users will have the option to add Google Authenticator to "
3524
- "their WordPress user profile"
3525
- msgstr ""
3526
-
3527
- #: src/features/login_protect.php:738 src/features/login_protect.php:744
3528
- #: src/features/login_protect.php:747
3529
- #: src/processors/loginprotect_twofactorauth.php:201
3530
- #: src/processors/loginprotect_twofactorauth.php:202
3531
- msgid "Email Authentication"
3532
- msgstr ""
3533
-
3534
- #: src/features/login_protect.php:739
3535
- #, php-format
3536
- msgid "Two-Factor Login Authentication By %s"
3537
- msgstr ""
3538
-
3539
- #: src/features/login_protect.php:739 src/features/plugin.php:955
3540
- #: src/processors/user_management.php:209
3541
- msgid "Email"
3542
- msgstr ""
3543
-
3544
- #: src/features/login_protect.php:740
3545
- msgid ""
3546
- "All users will be required to verify their login by email-based two-factor "
3547
- "authentication."
3548
- msgstr ""
3549
-
3550
- #: src/features/login_protect.php:744
3551
- msgid "Enforce"
3552
- msgstr ""
3553
-
3554
- #: src/features/login_protect.php:745
3555
- msgid "All User Roles Subject To Email Authentication"
3556
- msgstr ""
3557
-
3558
- #: src/features/login_protect.php:746
3559
- msgid ""
3560
- "Enforces email-based authentication on all users with the selected roles."
3561
- msgstr ""
3562
-
3563
- #: src/features/login_protect.php:747
3564
- #, php-format
3565
- msgid "This setting only applies to %s."
3566
- msgstr ""
3567
-
3568
- #: src/features/login_protect.php:751
3569
- msgid "Google reCAPTCHA"
3570
- msgstr ""
3571
-
3572
- #: src/features/login_protect.php:752
3573
- msgid "Protect WordPress Account Access Requests With Google reCAPTCHA"
3574
- msgstr ""
3575
-
3576
- #: src/features/login_protect.php:753
3577
- msgid ""
3578
- "Use Google reCAPTCHA on the user account forms such as login, register, etc."
3579
- msgstr ""
3580
-
3581
- #: src/features/login_protect.php:754
3582
- #, php-format
3583
- msgid "Use of any theme other than \"%s\", requires a Pro license."
3584
- msgstr ""
3585
-
3586
- #: src/features/login_protect.php:754
3587
- msgid "Light Theme"
3588
- msgstr ""
3589
-
3590
- #: src/features/login_protect.php:755
3591
- msgid ""
3592
- "You'll need to setup your Google reCAPTCHA API Keys in 'General' settings."
3593
- msgstr ""
3594
-
3595
- #: src/features/login_protect.php:756
3596
- msgid ""
3597
- "Some forms are more dynamic than others so if you experience problems, "
3598
- "please use non-Invisible reCAPTCHA."
3599
- msgstr ""
3600
-
3601
- #: src/features/login_protect.php:766
3602
- msgid "Protection Locations"
3603
- msgstr ""
3604
-
3605
- #: src/features/login_protect.php:767
3606
- msgid "Which Forms Should Be Protected"
3607
- msgstr ""
3608
-
3609
- #: src/features/login_protect.php:768
3610
- msgid "Choose the forms for which bot protection measures will be deployed."
3611
- msgstr ""
3612
-
3613
- #: src/features/login_protect.php:769
3614
- #, php-format
3615
- msgid "Use with 3rd party systems such as %s, requires a Pro license."
3616
- msgstr ""
3617
-
3618
- #: src/features/login_protect.php:773
3619
- msgid "Bot Protection"
3620
- msgstr ""
3621
-
3622
- #: src/features/login_protect.php:774
3623
- msgid "Protect WP Login From Automated Login Attempts By Bots"
3624
- msgstr ""
3625
-
3626
- #: src/features/login_protect.php:775
3627
- msgid ""
3628
- "Adds a dynamically (Javascript) generated checkbox to the login form that "
3629
- "prevents bots using automated login techniques."
3630
- msgstr ""
3631
-
3632
- #: src/features/login_protect.php:776
3633
- msgid "ON"
3634
- msgstr ""
3635
-
3636
- #: src/features/login_protect.php:780
3637
- msgid "Cooldown Period"
3638
- msgstr ""
3639
-
3640
- #: src/features/login_protect.php:781
3641
- msgid "Limit account access requests to every X seconds"
3642
- msgstr ""
3643
-
3644
- #: src/features/login_protect.php:782
3645
- msgid ""
3646
- "WordPress will process only ONE account access attempt per number of seconds "
3647
- "specified."
3648
- msgstr ""
3649
-
3650
- #: src/features/login_protect.php:783
3651
- msgid "Zero (0) turns this off."
3652
- msgstr ""
3653
-
3654
- #: src/features/login_protect.php:789
3655
- msgid "User Registration"
3656
- msgstr ""
3657
-
3658
- #: src/features/login_protect.php:790
3659
- msgid "Apply Brute Force Protection To User Registration And Lost Passwords"
3660
- msgstr ""
3661
-
3662
- #: src/features/login_protect.php:791
3663
- msgid ""
3664
- "When enabled, settings in this section will also apply to new user "
3665
- "registration and users trying to reset passwords."
3666
- msgstr ""
3667
-
3668
- #: src/features/login_protect.php:795
3669
- msgid "Enable Yubikey Authentication"
3670
- msgstr ""
3671
-
3672
- #: src/features/login_protect.php:796
3673
- msgid "Turn On / Off Yubikey Authentication On This Site"
3674
- msgstr ""
3675
-
3676
- #: src/features/login_protect.php:797
3677
- msgid ""
3678
- "Combined with your Yubikey API details this will form the basis of your "
3679
- "Yubikey Authentication"
3680
- msgstr ""
3681
-
3682
- #: src/features/login_protect.php:801
3683
- msgid "Yubikey App ID"
3684
- msgstr ""
3685
-
3686
- #: src/features/login_protect.php:802
3687
- msgid "Your Unique Yubikey App ID"
3688
- msgstr ""
3689
-
3690
- #: src/features/login_protect.php:803
3691
- msgid ""
3692
- "Combined with your Yubikey API Key this will form the basis of your Yubikey "
3693
- "Authentication"
3694
- msgstr ""
3695
-
3696
- #: src/features/login_protect.php:804
3697
- msgid ""
3698
- "Please review the info link on how to obtain your own Yubikey App ID and API "
3699
- "Key."
3700
- msgstr ""
3701
-
3702
- #: src/features/login_protect.php:808
3703
- msgid "Yubikey API Key"
3704
- msgstr ""
3705
-
3706
- #: src/features/login_protect.php:809
3707
- msgid "Your Unique Yubikey App API Key"
3708
- msgstr ""
3709
-
3710
- #: src/features/login_protect.php:810
3711
- msgid ""
3712
- "Combined with your Yubikey App ID this will form the basis of your Yubikey "
3713
- "Authentication."
3714
- msgstr ""
3715
-
3716
- #: src/features/login_protect.php:811
3717
- msgid ""
3718
- "Please review the info link on how to get your own Yubikey App ID and API "
3719
- "Key."
3720
- msgstr ""
3721
-
3722
- #: src/features/login_protect.php:815
3723
- msgid "Yubikey Unique Keys"
3724
- msgstr ""
3725
-
3726
- #: src/features/login_protect.php:816
3727
- msgid ""
3728
- "This method for Yubikeys is no longer supported. Please see your user profile"
3729
- msgstr ""
3730
-
3731
- #: src/features/login_protect.php:817
3732
- msgid "Format"
3733
- msgstr ""
3734
-
3735
- #: src/features/login_protect.php:818
3736
- msgid "Provide Username<->Yubikey Pairs that are usable for this site."
3737
- msgstr ""
3738
-
3739
- #: src/features/login_protect.php:819
3740
- msgid ""
3741
- "If a Username if not assigned a Yubikey, Yubikey Authentication is OFF for "
3742
- "that user."
3743
- msgstr ""
3744
-
3745
- #: src/features/login_protect.php:820
3746
- msgid ""
3747
- "Each [Username,Key] pair should be separated by a new line: you only need to "
3748
- "provide the first 12 characters of the yubikey."
3749
- msgstr ""
3750
-
3751
- #: src/features/login_protect.php:824
3752
- msgid "GASP Checkbox Text"
3753
- msgstr ""
3754
-
3755
- #: src/features/login_protect.php:825
3756
- msgid "The User Message Displayed Next To The GASP Checkbox"
3757
- msgstr ""
3758
-
3759
- #: src/features/login_protect.php:826
3760
- msgid ""
3761
- "You can change the text displayed to the user beside the checkbox if you "
3762
- "need a custom message."
3763
- msgstr ""
3764
-
3765
- #: src/features/login_protect.php:831
3766
- msgid "GASP Alert Text"
3767
- msgstr ""
3768
-
3769
- #: src/features/login_protect.php:832
3770
- msgid "The Message Displayed If The User Doesn't Check The Box"
3771
- msgstr ""
3772
-
3773
- #: src/features/login_protect.php:833
3774
- msgid ""
3775
- "You can change the text displayed to the user in the alert message if they "
3776
- "don't check the box."
3777
- msgstr ""
3778
-
3779
- #: src/features/plugin.php:234
3780
- msgid "File could not be automatically removed."
3781
- msgstr ""
3782
-
3783
- #: src/features/plugin.php:297
3784
- msgid "Sorry, you do not have permission to disable this plugin."
3785
- msgstr ""
3786
-
3787
- #: src/features/plugin.php:298
3788
- msgid "You need to authenticate first."
3789
- msgstr ""
3790
-
3791
- #: src/features/plugin.php:648
3792
- #, php-format
3793
- msgid "This Site Is Protected By %s"
3794
- msgstr ""
3795
-
3796
- #: src/features/plugin.php:671
3797
- msgid "Plugin Actions"
3798
- msgstr ""
3799
-
3800
- #: src/features/plugin.php:672
3801
- msgid "E.g. Import/Export"
3802
- msgstr ""
3803
-
3804
- #: src/features/plugin.php:725
3805
- msgid "Global Security Plugin Disable"
3806
- msgstr ""
3807
-
3808
- #: src/features/plugin.php:730 src/features/plugin.php:731
3809
- msgid "Plugin Defaults"
3810
- msgstr ""
3811
-
3812
- #: src/features/plugin.php:733
3813
- msgid "Important default settings used throughout the plugin."
3814
- msgstr ""
3815
-
3816
- #: src/features/plugin.php:738 src/features/plugin.php:743
3817
- msgid "Import"
3818
- msgstr ""
3819
-
3820
- #: src/features/plugin.php:738 src/features/plugin.php:743
3821
- msgid "Export"
3822
- msgstr ""
3823
-
3824
- #: src/features/plugin.php:740
3825
- msgid ""
3826
- "Automatically import options, and deploy configurations across your entire "
3827
- "network."
3828
- msgstr ""
3829
-
3830
- #: src/features/plugin.php:741
3831
- msgid "This is a Pro-only feature."
3832
- msgstr ""
3833
-
3834
- #: src/features/plugin.php:747
3835
- msgid "General Plugin Options"
3836
- msgstr ""
3837
-
3838
- #: src/features/plugin.php:748
3839
- msgid "General Options"
3840
- msgstr ""
3841
-
3842
- #: src/features/plugin.php:752 src/features/plugin.php:753
3843
- msgid "Google"
3844
- msgstr ""
3845
-
3846
- #: src/features/plugin.php:755
3847
- #, php-format
3848
- msgid "Setup Google reCAPTCHA for use across %s."
3849
- msgstr ""
3850
-
3851
- #: src/features/plugin.php:759
3852
- msgid "You must create your own Google reCAPTCHA API Keys."
3853
- msgstr ""
3854
-
3855
- #: src/features/plugin.php:761
3856
- msgid "API Keys"
3857
- msgstr ""
3858
-
3859
- #: src/features/plugin.php:763
3860
- #, php-format
3861
- msgid "Invisible Google reCAPTCHA is available with %s Pro."
3862
- msgstr ""
3863
-
3864
- #: src/features/plugin.php:768 src/features/plugin.php:769
3865
- msgid "Duo Security"
3866
- msgstr ""
3867
-
3868
- #: src/features/plugin.php:792
3869
- msgid "Enable/Disable Plugin Modules"
3870
- msgstr ""
3871
-
3872
- #: src/features/plugin.php:793
3873
- msgid "Enable/Disable All Plugin Modules"
3874
- msgstr ""
3875
-
3876
- #: src/features/plugin.php:794
3877
- #, php-format
3878
- msgid "Uncheck this option to disable all %s features."
3879
- msgstr ""
3880
-
3881
- #: src/features/plugin.php:799
3882
- msgid "Admin Notes"
3883
- msgstr ""
3884
-
3885
- #: src/features/plugin.php:800
3886
- msgid "Turn-On Admin Notes Section In Insights Dashboard"
3887
- msgstr ""
3888
-
3889
- #: src/features/plugin.php:801
3890
- msgid ""
3891
- "When turned-on it enables administrators to enter custom notes in the "
3892
- "Insights Dashboard."
3893
- msgstr ""
3894
-
3895
- #: src/features/plugin.php:805
3896
- msgid "Information Gathering"
3897
- msgstr ""
3898
-
3899
- #: src/features/plugin.php:806
3900
- msgid "Permit Anonymous Usage Information Gathering"
3901
- msgstr ""
3902
-
3903
- #: src/features/plugin.php:807
3904
- msgid ""
3905
- "Allows us to gather information on statistics and features in-use across our "
3906
- "client installations."
3907
- msgstr ""
3908
-
3909
- #: src/features/plugin.php:808
3910
- msgid ""
3911
- "This information is strictly anonymous and contains no personally, or "
3912
- "otherwise, identifiable data."
3913
- msgstr ""
3914
-
3915
- #: src/features/plugin.php:809
3916
- msgid "Click to see the exact data that would be sent."
3917
- msgstr ""
3918
-
3919
- #: src/features/plugin.php:813
3920
- msgid "IP Source"
3921
- msgstr ""
3922
-
3923
- #: src/features/plugin.php:814
3924
- msgid "Which IP Address Is Yours"
3925
- msgstr ""
3926
-
3927
- #: src/features/plugin.php:815
3928
- msgid ""
3929
- "There are many possible ways to detect visitor IP addresses. If Auto-Detect "
3930
- "is not working, please select yours from the list."
3931
- msgstr ""
3932
-
3933
- #: src/features/plugin.php:816
3934
- msgid ""
3935
- "If the option you select becomes unavailable, we will revert to auto "
3936
- "detection."
3937
- msgstr ""
3938
-
3939
- #: src/features/plugin.php:817
3940
- #, php-format
3941
- msgid "Current source is: %s"
3942
- msgstr ""
3943
-
3944
- #: src/features/plugin.php:822
3945
- msgid "Report Email"
3946
- msgstr ""
3947
-
3948
- #: src/features/plugin.php:823
3949
- msgid "Where to send email reports"
3950
- msgstr ""
3951
-
3952
- #: src/features/plugin.php:824
3953
- #, php-format
3954
- msgid "If this is empty, it will default to the blog admin email address: %s"
3955
- msgstr ""
3956
-
3957
- #: src/features/plugin.php:828
3958
- msgid "In-Plugin Notices"
3959
- msgstr ""
3960
-
3961
- #: src/features/plugin.php:829
3962
- msgid "Display Plugin Specific Notices"
3963
- msgstr ""
3964
-
3965
- #: src/features/plugin.php:830
3966
- msgid ""
3967
- "Disable this option to hide certain plugin admin notices about available "
3968
- "updates and post-update notices."
3969
- msgstr ""
3970
-
3971
- #: src/features/plugin.php:834
3972
- msgid "Show Plugin Badge"
3973
- msgstr ""
3974
-
3975
- #: src/features/plugin.php:835
3976
- msgid "Display Plugin Badge On Your Site"
3977
- msgstr ""
3978
-
3979
- #: src/features/plugin.php:836
3980
- msgid ""
3981
- "Enabling this option helps support the plugin by spreading the word about it "
3982
- "on your website."
3983
- msgstr ""
3984
-
3985
- #: src/features/plugin.php:837
3986
- msgid ""
3987
- "The plugin badge also lets visitors know your are taking your website "
3988
- "security seriously."
3989
- msgstr ""
3990
-
3991
- #: src/features/plugin.php:838
3992
- msgid "Read this carefully before enabling this option."
3993
- msgstr ""
3994
-
3995
- #: src/features/plugin.php:842
3996
- msgid "Delete Plugin Settings"
3997
- msgstr ""
3998
-
3999
- #: src/features/plugin.php:843
4000
- msgid "Delete All Plugin Settings Upon Plugin Deactivation"
4001
- msgstr ""
4002
-
4003
- #: src/features/plugin.php:844
4004
- msgid "Careful: Removes all plugin options when you deactivate the plugin"
4005
- msgstr ""
4006
-
4007
- #: src/features/plugin.php:848
4008
- msgid "XML-RPC Compatibility"
4009
- msgstr ""
4010
-
4011
- #: src/features/plugin.php:849
4012
- msgid "Allow Login Through XML-RPC To By-Pass Accounts Management Rules"
4013
- msgstr ""
4014
-
4015
- #: src/features/plugin.php:850
4016
- msgid ""
4017
- "Enable this if you need XML-RPC functionality e.g. if you use the WordPress "
4018
- "iPhone/Android App."
4019
- msgstr ""
4020
-
4021
- #: src/features/plugin.php:854
4022
- msgid "Allow Import/Export"
4023
- msgstr ""
4024
-
4025
- #: src/features/plugin.php:855
4026
- msgid "Allow Import And Export Of Options On This Site"
4027
- msgstr ""
4028
-
4029
- #: src/features/plugin.php:856
4030
- msgid "Uncheck this box to completely disable import and export of options."
4031
- msgstr ""
4032
-
4033
- #: src/features/plugin.php:857
4034
- msgid "Import/Export is a premium-only feature."
4035
- msgstr ""
4036
-
4037
- #: src/features/plugin.php:861
4038
- msgid "Export Whitelist"
4039
- msgstr ""
4040
-
4041
- #: src/features/plugin.php:862
4042
- msgid "Whitelisted Sites To Export Options From This Site"
4043
- msgstr ""
4044
-
4045
- #: src/features/plugin.php:863
4046
- msgid "Whitelisted sites may export options from this site without the key."
4047
- msgstr ""
4048
-
4049
- #: src/features/plugin.php:864
4050
- msgid "List each site URL on a new line."
4051
- msgstr ""
4052
-
4053
- #: src/features/plugin.php:865
4054
- msgid "This is to be used in conjunction with the Master Import Site feature."
4055
- msgstr ""
4056
-
4057
- #: src/features/plugin.php:869
4058
- msgid "Master Import Site"
4059
- msgstr ""
4060
-
4061
- #: src/features/plugin.php:870
4062
- msgid "Automatically Import Options From This Site URL"
4063
- msgstr ""
4064
-
4065
- #: src/features/plugin.php:871
4066
- msgid "Supplying a site URL here will make this site an 'Options Slave'."
4067
- msgstr ""
4068
-
4069
- #: src/features/plugin.php:872
4070
- msgid "Options will be automatically exported from the Master site each day."
4071
- msgstr ""
4072
-
4073
- #: src/features/plugin.php:873
4074
- msgid ""
4075
- "Use of this feature will overwrite existing options and replace them with "
4076
- "those from the Master Import Site."
4077
- msgstr ""
4078
-
4079
- #: src/features/plugin.php:877
4080
- msgid "Notify Whitelist"
4081
- msgstr ""
4082
-
4083
- #: src/features/plugin.php:878
4084
- msgid "Notify Sites On The Whitelist To Update Options From Master"
4085
- msgstr ""
4086
-
4087
- #: src/features/plugin.php:879
4088
- msgid ""
4089
- "When enabled, manual options saving will notify sites on the whitelist to "
4090
- "export options from the Master site."
4091
- msgstr ""
4092
-
4093
- #: src/features/plugin.php:883
4094
- msgid "Secret Key"
4095
- msgstr ""
4096
-
4097
- #: src/features/plugin.php:884
4098
- msgid "Import/Export Secret Key"
4099
- msgstr ""
4100
-
4101
- #: src/features/plugin.php:885
4102
- msgid ""
4103
- "Keep this Secret Key private as it will allow the import and export of "
4104
- "options."
4105
- msgstr ""
4106
-
4107
- #: src/features/plugin.php:889
4108
- msgid "Installation ID"
4109
- msgstr ""
4110
-
4111
- #: src/features/plugin.php:890
4112
- msgid "Unique Plugin Installation ID"
4113
- msgstr ""
4114
-
4115
- #: src/features/plugin.php:891
4116
- msgid "Keep this ID private."
4117
- msgstr ""
4118
-
4119
- #: src/features/plugin.php:895
4120
- msgid "reCAPTCHA Secret"
4121
- msgstr ""
4122
-
4123
- #: src/features/plugin.php:896
4124
- msgid "Google reCAPTCHA Secret Key"
4125
- msgstr ""
4126
-
4127
- #: src/features/plugin.php:897
4128
- msgid "Enter your Google reCAPTCHA secret key for use throughout the plugin."
4129
- msgstr ""
4130
-
4131
- #: src/features/plugin.php:901
4132
- msgid "reCAPTCHA Site Key"
4133
- msgstr ""
4134
-
4135
- #: src/features/plugin.php:902
4136
- msgid "Google reCAPTCHA Site Key"
4137
- msgstr ""
4138
-
4139
- #: src/features/plugin.php:903
4140
- msgid "Enter your Google reCAPTCHA site key for use throughout the plugin"
4141
- msgstr ""
4142
-
4143
- #: src/features/plugin.php:908
4144
- msgid "How Google reCAPTCHA Will Be Displayed By Default"
4145
- msgstr ""
4146
-
4147
- #: src/features/plugin.php:926
4148
- msgid "IP Whitelist"
4149
- msgstr ""
4150
-
4151
- #: src/features/plugin.php:927
4152
- msgid "IP Address White List"
4153
- msgstr ""
4154
-
4155
- #: src/features/plugin.php:928
4156
- msgid ""
4157
- "Any IP addresses on this list will by-pass all Plugin Security Checking."
4158
- msgstr ""
4159
-
4160
- #: src/features/plugin.php:929 src/processors/ips.php:91
4161
- #: src/processors/plugin.php:189 src/processors/plugin_badge.php:47
4162
- #, php-format
4163
- msgid "Your IP address is: %s"
4164
- msgstr ""
4165
-
4166
- #: src/features/plugin.php:930
4167
- msgid "Choose IP Addresses To Blacklist"
4168
- msgstr ""
4169
-
4170
- #: src/features/plugin.php:931
4171
- #, php-format
4172
- msgid "Recommendation - %s"
4173
- msgstr ""
4174
-
4175
- #: src/features/plugin.php:932
4176
- msgid "Blacklist"
4177
- msgstr ""
4178
-
4179
- #: src/features/plugin.php:933
4180
- msgid "Logging"
4181
- msgstr ""
4182
-
4183
- #: src/features/plugin.php:934
4184
- #, php-format
4185
- msgid ""
4186
- "User \"%s\" was forcefully logged out as they were not verified by either "
4187
- "cookie or IP address (or both)."
4188
- msgstr ""
4189
-
4190
- #: src/features/plugin.php:935
4191
- #, php-format
4192
- msgid ""
4193
- "User \"%s\" was found to be un-verified at the given IP Address: \"%s\"."
4194
- msgstr ""
4195
-
4196
- #: src/features/plugin.php:936
4197
- msgid "Cookie"
4198
- msgstr ""
4199
-
4200
- #: src/features/plugin.php:938 src/features/traffic.php:395
4201
- msgid "IP"
4202
- msgstr ""
4203
-
4204
- #: src/features/plugin.php:939
4205
- msgid ""
4206
- "This will restrict all user login sessions to a single browser. Use this if "
4207
- "your users have dynamic IP addresses."
4208
- msgstr ""
4209
-
4210
- #: src/features/plugin.php:940
4211
- msgid ""
4212
- "All users will be required to authenticate their login by email-based two-"
4213
- "factor authentication, when logging in from a new IP address"
4214
- msgstr ""
4215
-
4216
- #: src/features/plugin.php:941
4217
- msgid "2-Factor Auth"
4218
- msgstr ""
4219
-
4220
- #: src/features/plugin.php:942
4221
- msgid "Include Logged-In Users"
4222
- msgstr ""
4223
-
4224
- #: src/features/plugin.php:943
4225
- msgid "You may also enable GASP for logged in users"
4226
- msgstr ""
4227
-
4228
- #: src/features/plugin.php:944
4229
- msgid ""
4230
- "Since logged-in users would be expected to be vetted already, this is off by "
4231
- "default."
4232
- msgstr ""
4233
-
4234
- #: src/features/plugin.php:946
4235
- msgid "Protect your security plugin not just your WordPress site"
4236
- msgstr ""
4237
-
4238
- #: src/features/plugin.php:949
4239
- msgid "Get a view on what happens on your site, when it happens"
4240
- msgstr ""
4241
-
4242
- #: src/features/plugin.php:952
4243
- msgid "Take back full control of WordPress automatic updates"
4244
- msgstr ""
4245
-
4246
- #: src/features/plugin.php:953
4247
- msgid "Comments SPAM"
4248
- msgstr ""
4249
-
4250
- #: src/features/plugin.php:954
4251
- msgid "Block comment SPAM and retain your privacy"
4252
- msgstr ""
4253
-
4254
- #: src/features/plugin.php:957
4255
- msgid "Automatically block malicious URLs and data sent to your site"
4256
- msgstr ""
4257
-
4258
- #: src/features/plugin.php:959
4259
- msgid "HTTP Headers"
4260
- msgstr ""
4261
-
4262
- #: src/features/plugin.php:960
4263
- msgid "Control HTTP Security Headers"
4264
- msgstr ""
4265
-
4266
- #: src/features/plugin.php:962
4267
- msgid "Manage Visitor IP Address"
4268
- msgstr ""
4269
-
4270
- #: src/features/plugin.php:964
4271
- msgid "Harden the more loosely controlled settings of your site"
4272
- msgstr ""
4273
-
4274
- #: src/features/plugin.php:966
4275
- msgid ""
4276
- "Block brute force attacks and secure user identities with Two-Factor "
4277
- "Authentication"
4278
- msgstr ""
4279
-
4280
- #: src/features/plugin.php:967
4281
- msgid "Dashboard"
4282
- msgstr ""
4283
-
4284
- #: src/features/plugin.php:968
4285
- msgid "General Plugin Settings"
4286
- msgstr ""
4287
-
4288
- #: src/features/plugin.php:969
4289
- msgid "Statistics"
4290
- msgstr ""
4291
-
4292
- #: src/features/plugin.php:970
4293
- msgid "Summary of the main security actions taken by this plugin"
4294
- msgstr ""
4295
-
4296
- #: src/features/plugin.php:971
4297
- msgid "Stats Viewer"
4298
- msgstr ""
4299
-
4300
- #: src/features/plugin.php:972
4301
- msgid "Premium Support"
4302
- msgstr ""
4303
-
4304
- #: src/features/plugin.php:973
4305
- msgid "Premium Plugin Support Centre"
4306
- msgstr ""
4307
-
4308
- #: src/features/plugin.php:974 src/features/sessions.php:54
4309
- #: src/features/traffic.php:477 src/features/user_management.php:314
4310
- msgid "User Management"
4311
- msgstr ""
4312
-
4313
- #: src/features/plugin.php:975
4314
- msgid ""
4315
- "Get true user sessions and control account sharing, session duration and "
4316
- "timeouts"
4317
- msgstr ""
4318
-
4319
- #: src/features/plugin.php:976
4320
- msgid "Two-Factor Authentication"
4321
- msgstr ""
4322
-
4323
- #: src/features/sessions.php:53
4324
- msgid "Creates and Manages User Sessions."
4325
- msgstr ""
4326
-
4327
- #: src/features/statistics.php:53
4328
- msgid "Helps you see at a glance how effective the plugin has been."
4329
- msgstr ""
4330
-
4331
- #: src/features/statistics.php:62
4332
- msgid "To track stats and issue reports."
4333
- msgstr ""
4334
-
4335
- #: src/features/statistics.php:69
4336
- msgid "Statistics Sharing"
4337
- msgstr ""
4338
-
4339
- #: src/features/statistics.php:71
4340
- msgid ""
4341
- "Help us to provide globally accessible statistics on the effectiveness of "
4342
- "the plugin."
4343
- msgstr ""
4344
-
4345
- #: src/features/statistics.php:72
4346
- msgid "Enabling this option helps us improve our plugin over time."
4347
- msgstr ""
4348
-
4349
- #: src/features/statistics.php:73
4350
- msgid "All statistics data collection is 100% anonymous."
4351
- msgstr ""
4352
-
4353
- #: src/features/statistics.php:73
4354
- msgid ""
4355
- "Neither we nor anyone else will be able to trace the data back to the "
4356
- "originating site."
4357
- msgstr ""
4358
-
4359
- #: src/features/statistics.php:76
4360
- msgid "Sharing"
4361
- msgstr ""
4362
-
4363
- #: src/features/traffic.php:72
4364
- #, php-format
4365
- msgid "%s is a Pro-only feature."
4366
- msgstr ""
4367
-
4368
- #: src/features/traffic.php:72
4369
- msgid "Traffic Watch"
4370
- msgstr ""
4371
-
4372
- #: src/features/traffic.php:77
4373
- msgid ""
4374
- "Traffic Watcher will not run because visitor IP address detection is not "
4375
- "correctly configured."
4376
- msgstr ""
4377
-
4378
- #: src/features/traffic.php:198
4379
- msgid "Traffic Watch Viewer"
4380
- msgstr ""
4381
-
4382
- #: src/features/traffic.php:374
4383
- msgid "unknown"
4384
- msgstr ""
4385
-
4386
- #: src/features/traffic.php:382 src/processors/firewall.php:271
4387
- msgid "Unknown"
4388
- msgstr ""
4389
-
4390
- #: src/features/traffic.php:396
4391
- msgid "Logged-In"
4392
- msgstr ""
4393
-
4394
- #: src/features/traffic.php:397
4395
- msgid "Location"
4396
- msgstr ""
4397
-
4398
- #: src/features/traffic.php:398
4399
- msgid "User Agent"
4400
- msgstr ""
4401
-
4402
- #: src/features/traffic.php:403
4403
- msgid "Response"
4404
- msgstr ""
4405
-
4406
- #: src/features/traffic.php:404
4407
- msgid "Transgression"
4408
- msgstr ""
4409
-
4410
- #: src/features/traffic.php:448
4411
- msgid "Traffic Watch Log"
4412
- msgstr ""
4413
-
4414
- #: src/features/traffic.php:449
4415
- msgid "Review Site Traffic Logs "
4416
- msgstr ""
4417
-
4418
- #: src/features/traffic.php:467
4419
- msgid "Monitor and review all requests to your site."
4420
- msgstr ""
4421
-
4422
- #: src/features/traffic.php:468
4423
- msgid ""
4424
- "Required only if you need to review and investigate and monitor requests to "
4425
- "your site"
4426
- msgstr ""
4427
-
4428
- #: src/features/traffic.php:474
4429
- msgid "Traffic Watch Options"
4430
- msgstr ""
4431
-
4432
- #: src/features/traffic.php:476
4433
- msgid "Provides finer control over the Traffic Watch system."
4434
- msgstr ""
4435
-
4436
- #: src/features/traffic.php:479
4437
- msgid "Traffic Logging Options"
4438
- msgstr ""
4439
-
4440
- #: src/features/traffic.php:508
4441
- msgid "Traffic Log Exclusions"
4442
- msgstr ""
4443
-
4444
- #: src/features/traffic.php:509
4445
- msgid "Select Which Types Of Requests To Exclude"
4446
- msgstr ""
4447
-
4448
- #: src/features/traffic.php:510
4449
- msgid ""
4450
- "Select request types that you don't want to appear in the traffic viewer."
4451
- msgstr ""
4452
-
4453
- #: src/features/traffic.php:511
4454
- msgid ""
4455
- "If a request matches any exclusion rule, it will not show on the traffic "
4456
- "viewer."
4457
- msgstr ""
4458
-
4459
- #: src/features/traffic.php:515
4460
- msgid "Custom Exclusions"
4461
- msgstr ""
4462
-
4463
- #: src/features/traffic.php:516
4464
- msgid "Provide Custom Traffic Exclusions"
4465
- msgstr ""
4466
-
4467
- #: src/features/traffic.php:517
4468
- msgid ""
4469
- "For each entry, if the text is present in either the User Agent or request "
4470
- "Path, it will be excluded."
4471
- msgstr ""
4472
-
4473
- #: src/features/traffic.php:518
4474
- msgid "Take a new line for each entry."
4475
- msgstr ""
4476
-
4477
- #: src/features/traffic.php:519
4478
- msgid "Comparisons are case-insensitive."
4479
- msgstr ""
4480
-
4481
- #: src/features/traffic.php:523
4482
- msgid "Auto Expiry Cleaning"
4483
- msgstr ""
4484
-
4485
- #: src/features/traffic.php:524
4486
- msgid "Enable Traffic Log Auto Expiry"
4487
- msgstr ""
4488
-
4489
- #: src/features/traffic.php:525
4490
- msgid "DB cleanup will delete logs older than this maximum value (in days)."
4491
- msgstr ""
4492
-
4493
- #: src/features/traffic.php:529
4494
- msgid "Max Log Length"
4495
- msgstr ""
4496
-
4497
- #: src/features/traffic.php:530
4498
- msgid "Maximum Traffic Log Length To Keep"
4499
- msgstr ""
4500
-
4501
- #: src/features/traffic.php:531
4502
- msgid "DB cleanup will delete logs to maintain this maximum number of records."
4503
- msgstr ""
4504
-
4505
- #: src/features/traffic.php:535
4506
- msgid "Auto Disable"
4507
- msgstr ""
4508
-
4509
- #: src/features/traffic.php:536
4510
- msgid "Auto Disable Traffic Logging After 1 Week"
4511
- msgstr ""
4512
-
4513
- #: src/features/traffic.php:539
4514
- #, php-format
4515
- msgid "Auto Disable At: %s"
4516
- msgstr ""
4517
-
4518
- #: src/features/traffic.php:544
4519
- msgid "Turn on to prevent unnecessary long-term traffic logging."
4520
- msgstr ""
4521
-
4522
- #: src/features/traffic.php:545
4523
- msgid "Timer resets after options save."
4524
- msgstr ""
4525
-
4526
- #: src/features/user_management.php:47
4527
- #, php-format
4528
- msgid "now: %s"
4529
- msgstr ""
4530
-
4531
- #: src/features/user_management.php:153 src/processors/statistics.php:203
4532
- msgid "User Sessions"
4533
- msgstr ""
4534
-
4535
- #: src/features/user_management.php:154
4536
- msgid "Review user sessions"
4537
- msgstr ""
4538
-
4539
- #: src/features/user_management.php:156
4540
- msgid "Current User Sessions"
4541
- msgstr ""
4542
-
4543
- #: src/features/user_management.php:158
4544
- msgid "Logged In At"
4545
- msgstr ""
4546
-
4547
- #: src/features/user_management.php:159
4548
- msgid "Last Activity At"
4549
- msgstr ""
4550
-
4551
- #: src/features/user_management.php:160
4552
- msgid "Last Activity URI"
4553
- msgstr ""
4554
-
4555
- #: src/features/user_management.php:161
4556
- msgid "Login IP"
4557
- msgstr ""
4558
-
4559
- #: src/features/user_management.php:162
4560
- msgid ""
4561
- "You need to enable the User Management feature to view and manage user "
4562
- "sessions."
4563
- msgstr ""
4564
-
4565
- #: src/features/user_management.php:227
4566
- msgid "Very Weak"
4567
- msgstr ""
4568
-
4569
- #: src/features/user_management.php:228
4570
- msgid "Weak"
4571
- msgstr ""
4572
-
4573
- #: src/features/user_management.php:229
4574
- msgid "Medium"
4575
- msgstr ""
4576
-
4577
- #: src/features/user_management.php:230
4578
- msgid "Strong"
4579
- msgstr ""
4580
-
4581
- #: src/features/user_management.php:231
4582
- msgid "Very Strong"
4583
- msgstr ""
4584
-
4585
- #: src/features/user_management.php:275
4586
- msgid "Default 'admin' user still available."
4587
- msgstr ""
4588
-
4589
- #: src/features/user_management.php:277
4590
- msgid "Default 'admin' user should be disabled or removed."
4591
- msgstr ""
4592
-
4593
- #: src/features/user_management.php:286
4594
- msgid "Strong password policies are not enforced."
4595
- msgstr ""
4596
-
4597
- #: src/features/user_management.php:289
4598
- msgid "Password policies should be turned-on."
4599
- msgstr ""
4600
-
4601
- #: src/features/user_management.php:313
4602
- msgid ""
4603
- "User Management offers real user sessions, finer control over user session "
4604
- "time-out, and ensures users have logged-in in a correct manner."
4605
- msgstr ""
4606
-
4607
- #: src/features/user_management.php:320 src/features/user_management.php:321
4608
- msgid "Password Policies"
4609
- msgstr ""
4610
-
4611
- #: src/features/user_management.php:323
4612
- msgid "Have full control over passwords used by users on the site."
4613
- msgstr ""
4614
-
4615
- #: src/features/user_management.php:330
4616
- msgid "Admin Login Notification"
4617
- msgstr ""
4618
-
4619
- #: src/features/user_management.php:332
4620
- msgid ""
4621
- "So you can be made aware of when a WordPress administrator has logged into "
4622
- "your site when you are not expecting it."
4623
- msgstr ""
4624
-
4625
- #: src/features/user_management.php:335
4626
- msgid "Notifications"
4627
- msgstr ""
4628
-
4629
- #: src/features/user_management.php:339
4630
- msgid "Multi-Factor User Authentication"
4631
- msgstr ""
4632
-
4633
- #: src/features/user_management.php:348
4634
- msgid "User Session Management"
4635
- msgstr ""
4636
-
4637
- #: src/features/user_management.php:350
4638
- msgid ""
4639
- "Allows you to better control user sessions on your site and expire idle "
4640
- "sessions and prevent account sharing."
4641
- msgstr ""
4642
-
4643
- #: src/features/user_management.php:353
4644
- msgid "Session Options"
4645
- msgstr ""
4646
-
4647
- #: src/features/user_management.php:382
4648
- msgid "Admin Login Notification Email"
4649
- msgstr ""
4650
-
4651
- #: src/features/user_management.php:383
4652
- msgid "Send An Notification Email When Administrator Logs In"
4653
- msgstr ""
4654
-
4655
- #: src/features/user_management.php:384
4656
- msgid ""
4657
- "If you would like to be notified every time an administrator user logs into "
4658
- "this WordPress site, enter a notification email address."
4659
- msgstr ""
4660
-
4661
- #: src/features/user_management.php:385
4662
- msgid "No email address - No Notification."
4663
- msgstr ""
4664
-
4665
- #: src/features/user_management.php:389
4666
- msgid "User Login Notification Email"
4667
- msgstr ""
4668
-
4669
- #: src/features/user_management.php:390
4670
- msgid "Send Email Notification To Each User Upon Successful Login"
4671
- msgstr ""
4672
-
4673
- #: src/features/user_management.php:391
4674
- msgid ""
4675
- "A notification is sent to each user when a successful login occurs for their "
4676
- "account."
4677
- msgstr ""
4678
-
4679
- #: src/features/user_management.php:395
4680
- msgid "Session Timeout"
4681
- msgstr ""
4682
-
4683
- #: src/features/user_management.php:396
4684
- msgid "Specify How Many Days After Login To Automatically Force Re-Login"
4685
- msgstr ""
4686
-
4687
- #: src/features/user_management.php:397
4688
- msgid ""
4689
- "WordPress default is 2 days, or 14 days if you check the \"Remember Me\" box."
4690
- msgstr ""
4691
-
4692
- #: src/features/user_management.php:398
4693
- #, php-format
4694
- msgid "This cannot be less than %s."
4695
- msgstr ""
4696
-
4697
- #: src/features/user_management.php:404
4698
- msgid "Idle Timeout"
4699
- msgstr ""
4700
-
4701
- #: src/features/user_management.php:405
4702
- msgid "Specify How Many Hours After Inactivity To Automatically Logout User"
4703
- msgstr ""
4704
-
4705
- #: src/features/user_management.php:406
4706
- msgid ""
4707
- "If the user is inactive for the number of hours specified, they will be "
4708
- "forcefully logged out next time they return."
4709
- msgstr ""
4710
-
4711
- #: src/features/user_management.php:407
4712
- #, php-format
4713
- msgid "Set to %s to turn off this option."
4714
- msgstr ""
4715
-
4716
- #: src/features/user_management.php:411
4717
- msgid "Lock To Location"
4718
- msgstr ""
4719
-
4720
- #: src/features/user_management.php:412
4721
- msgid "Locks A User Session To IP address"
4722
- msgstr ""
4723
-
4724
- #: src/features/user_management.php:413
4725
- msgid ""
4726
- "When selected, a session is restricted to the same IP address as when the "
4727
- "user logged in."
4728
- msgstr ""
4729
-
4730
- #: src/features/user_management.php:414
4731
- msgid ""
4732
- "If a logged-in user's IP address changes, the session will be invalidated "
4733
- "and they'll be forced to re-login to WordPress."
4734
- msgstr ""
4735
-
4736
- #: src/features/user_management.php:418
4737
- msgid "Max Simultaneous Sessions"
4738
- msgstr ""
4739
-
4740
- #: src/features/user_management.php:419
4741
- msgid "Limit Simultaneous Sessions For The Same Username"
4742
- msgstr ""
4743
-
4744
- #: src/features/user_management.php:420
4745
- msgid ""
4746
- "The number provided here is the maximum number of simultaneous, distinct, "
4747
- "sessions allowed for any given username."
4748
- msgstr ""
4749
-
4750
- #: src/features/user_management.php:421
4751
- msgid "Zero (0) will allow unlimited simultaneous sessions."
4752
- msgstr ""
4753
-
4754
- #: src/features/user_management.php:425
4755
- msgid "Enable Password Policies"
4756
- msgstr ""
4757
-
4758
- #: src/features/user_management.php:426
4759
- msgid "Enable The Password Policies Detailed Below"
4760
- msgstr ""
4761
-
4762
- #: src/features/user_management.php:427
4763
- msgid "Turn on/off all password policy settings."
4764
- msgstr ""
4765
-
4766
- #: src/features/user_management.php:431
4767
- msgid "Prevent Pwned Passwords"
4768
- msgstr ""
4769
-
4770
- #: src/features/user_management.php:432
4771
- msgid "Prevent Use Of \"Pwned\" Passwords"
4772
- msgstr ""
4773
-
4774
- #: src/features/user_management.php:433
4775
- msgid ""
4776
- "Prevents users from using any passwords found on the public available list "
4777
- "of \"pwned\" passwords."
4778
- msgstr ""
4779
-
4780
- #: src/features/user_management.php:437
4781
- msgid "Minimum Length"
4782
- msgstr ""
4783
-
4784
- #: src/features/user_management.php:438
4785
- msgid "Minimum Password Length"
4786
- msgstr ""
4787
-
4788
- #: src/features/user_management.php:439
4789
- msgid ""
4790
- "All passwords that a user sets must be at least this many characters in "
4791
- "length."
4792
- msgstr ""
4793
-
4794
- #: src/features/user_management.php:440 src/features/user_management.php:460
4795
- msgid "Set to Zero(0) to disable."
4796
- msgstr ""
4797
-
4798
- #: src/features/user_management.php:444
4799
- msgid "Minimum Strength"
4800
- msgstr ""
4801
-
4802
- #: src/features/user_management.php:445
4803
- msgid "Minimum Password Strength"
4804
- msgstr ""
4805
-
4806
- #: src/features/user_management.php:446
4807
- msgid "All passwords that a user sets must meet this minimum strength."
4808
- msgstr ""
4809
-
4810
- #: src/features/user_management.php:450
4811
- msgid "Apply To Existing Users"
4812
- msgstr ""
4813
-
4814
- #: src/features/user_management.php:451
4815
- msgid "Apply Password Policies To Existing Users and Their Passwords"
4816
- msgstr ""
4817
-
4818
- #: src/features/user_management.php:452
4819
- msgid ""
4820
- "Forces existing users to update their passwords if they don't meet "
4821
- "requirements, after they next login."
4822
- msgstr ""
4823
-
4824
- #: src/features/user_management.php:453
4825
- msgid "Note: You may want to warn users prior to enabling this option."
4826
- msgstr ""
4827
-
4828
- #: src/features/user_management.php:457
4829
- msgid "Password Expiration"
4830
- msgstr ""
4831
-
4832
- #: src/features/user_management.php:458
4833
- msgid "Passwords Expire After This Many Days"
4834
- msgstr ""
4835
-
4836
- #: src/features/user_management.php:459
4837
- msgid ""
4838
- "Users will be forced to reset their passwords after the number of days "
4839
- "specified."
4840
- msgstr ""
4841
-
4842
- #: src/processors/admin_access_restriction.php:201
4843
- #: src/processors/admin_access_restriction.php:237
4844
- #, php-format
4845
- msgid "%s Security Restrictions Applied"
4846
- msgstr ""
4847
-
4848
- #: src/processors/admin_access_restriction.php:202
4849
- msgid ""
4850
- "Altering certain options has been restricted by your WordPress security "
4851
- "administrator."
4852
- msgstr ""
4853
-
4854
- #: src/processors/admin_access_restriction.php:203
4855
- msgid ""
4856
- "Repeated failed attempts to authenticate will probably lock you out of this "
4857
- "site."
4858
- msgstr ""
4859
-
4860
- #: src/processors/admin_access_restriction.php:209
4861
- msgid "Admin Access Login"
4862
- msgstr ""
4863
-
4864
- #: src/processors/admin_access_restriction.php:210
4865
- #: src/processors/admin_access_restriction.php:247
4866
- #, php-format
4867
- msgid "Go here to manage settings and authenticate with the %s plugin."
4868
- msgstr ""
4869
-
4870
- #: src/processors/admin_access_restriction.php:238
4871
- msgid ""
4872
- "Editing existing administrators, promoting existing users to the "
4873
- "administrator role, or deleting administrator users is currently restricted."
4874
- msgstr ""
4875
-
4876
- #: src/processors/admin_access_restriction.php:239
4877
- msgid ""
4878
- "Please authenticate with the Security Admin system before attempting any "
4879
- "administrator user modifications."
4880
- msgstr ""
4881
-
4882
- #: src/processors/admin_access_restriction.php:240
4883
- msgid "Unlock Now"
4884
- msgstr ""
4885
-
4886
- #: src/processors/admin_access_restriction.php:246
4887
- #: src/processors/admin_access_restriction.php:483
4888
- msgid "Security Admin Login"
4889
- msgstr ""
4890
-
4891
- #: src/processors/admin_access_restriction.php:458
4892
- #: src/processors/hackprotect_ptguard.php:63
4893
- msgid "Editing this option is currently restricted."
4894
- msgstr ""
4895
-
4896
- #: src/processors/admin_access_restriction.php:478
4897
- msgid "Unlock"
4898
- msgstr ""
4899
-
4900
- #: src/processors/audit_trail_emails.php:32
4901
- #, php-format
4902
- msgid "There was an attempt to send an email using the \"%s\" function."
4903
- msgstr ""
4904
-
4905
- #: src/processors/audit_trail_emails.php:33
4906
- #, php-format
4907
- msgid "It was sent to \"%s\" with the subject \"%s\"."
4908
- msgstr ""
4909
-
4910
- #: src/processors/audit_trail_emails.php:36
4911
- #, php-format
4912
- msgid "The \"%s\" function was called from the file \"%s\" on line %s."
4913
- msgstr ""
4914
-
4915
- #: src/processors/audit_trail_emails.php:44
4916
- #, php-format
4917
- msgid "Attempting to log email, but data was not of the correct type (%s)"
4918
- msgstr ""
4919
-
4920
- #: src/processors/audit_trail_plugins.php:28
4921
- #, php-format
4922
- msgid "Plugin \"%s\" was activated."
4923
- msgstr ""
4924
-
4925
- #: src/processors/audit_trail_plugins.php:41
4926
- #, php-format
4927
- msgid "Plugin \"%s\" was deactivated."
4928
- msgstr ""
4929
-
4930
- #: src/processors/audit_trail_plugins.php:59
4931
- #, php-format
4932
- msgid ""
4933
- "An attempt was made to edit the plugin file \"%s\" directly through the "
4934
- "WordPress editor."
4935
- msgstr ""
4936
-
4937
- #: src/processors/audit_trail_posts.php:26
4938
- #, php-format
4939
- msgid "WordPress Post entitled \"%s\" was permanently deleted from trash."
4940
- msgstr ""
4941
-
4942
- #: src/processors/audit_trail_posts.php:45
4943
- msgid "moved to trash"
4944
- msgstr ""
4945
-
4946
- #: src/processors/audit_trail_posts.php:49
4947
- msgid "recovered from trash"
4948
- msgstr ""
4949
-
4950
- #: src/processors/audit_trail_posts.php:55
4951
- #: src/processors/audit_trail_posts.php:68
4952
- msgid "updated"
4953
- msgstr ""
4954
-
4955
- #: src/processors/audit_trail_posts.php:59
4956
- msgid "published"
4957
- msgstr ""
4958
-
4959
- #: src/processors/audit_trail_posts.php:64
4960
- msgid "unpublished"
4961
- msgstr ""
4962
-
4963
- #: src/processors/audit_trail_posts.php:72
4964
- #, php-format
4965
- msgid "Post entitled \"%s\" was %s."
4966
- msgstr ""
4967
-
4968
- #: src/processors/audit_trail_posts.php:73
4969
- msgid "Post Type"
4970
- msgstr ""
4971
-
4972
- #: src/processors/audit_trail_themes.php:25
4973
- #, php-format
4974
- msgid "Theme \"%s\" was activated."
4975
- msgstr ""
4976
-
4977
- #: src/processors/audit_trail_themes.php:41
4978
- #, php-format
4979
- msgid ""
4980
- "An attempt was made to edit the theme file \"%s\" directly through the "
4981
- "WordPress editor."
4982
- msgstr ""
4983
-
4984
- #: src/processors/audit_trail_users.php:27
4985
- #, php-format
4986
- msgid "Attempted user login by \"%s\" was successful."
4987
- msgstr ""
4988
-
4989
- #: src/processors/audit_trail_users.php:40
4990
- #, php-format
4991
- msgid "Attempted user login by \"%s\" failed."
4992
- msgstr ""
4993
-
4994
- #: src/processors/audit_trail_users.php:53
4995
- msgid "New WordPress user registered."
4996
- msgstr ""
4997
-
4998
- #: src/processors/audit_trail_users.php:55
4999
- #, php-format
5000
- msgid "New username is \"%s\" with email address \"%s\"."
5001
- msgstr ""
5002
-
5003
- #: src/processors/audit_trail_users.php:69
5004
- msgid "WordPress user deleted."
5005
- msgstr ""
5006
-
5007
- #: src/processors/audit_trail_users.php:73
5008
- msgid "User is unknown as it could not be loaded."
5009
- msgstr ""
5010
-
5011
- #: src/processors/audit_trail_users.php:76
5012
- #, php-format
5013
- msgid "Username was \"%s\" with email address \"%s\"."
5014
- msgstr ""
5015
-
5016
- #: src/processors/audit_trail_users.php:83
5017
- msgid "Their posts were not reassigned to another user."
5018
- msgstr ""
5019
-
5020
- #: src/processors/audit_trail_users.php:86
5021
- #, php-format
5022
- msgid "Their posts were reassigned to user \"%s\"."
5023
- msgstr ""
5024
-
5025
- #: src/processors/audit_trail_wordpress.php:24
5026
- #, php-format
5027
- msgid "WordPress Core was updated from \"v%s\" to \"v%s\"."
5028
- msgstr ""
5029
-
5030
- #: src/processors/audit_trail_wordpress.php:34
5031
- #, php-format
5032
- msgid "WordPress Permalinks Structure was updated from \"%s\" to \"%s\"."
5033
- msgstr ""
5034
-
5035
- #: src/processors/autoupdates.php:459
5036
- #, php-format
5037
- msgid ""
5038
- "This is a quick notification from the %s that WordPress Automatic Updates "
5039
- "just completed on your site with the following results."
5040
- msgstr ""
5041
-
5042
- #: src/processors/autoupdates.php:471
5043
- msgid "Plugins Updated:"
5044
- msgstr ""
5045
-
5046
- #: src/processors/autoupdates.php:479
5047
- #, php-format
5048
- msgid "Plugin \"%s\" auto-updated from \"%s\" to version \"%s\""
5049
- msgstr ""
5050
-
5051
- #: src/processors/autoupdates.php:496
5052
- msgid "Themes Updated:"
5053
- msgstr ""
5054
-
5055
- #: src/processors/autoupdates.php:504
5056
- #, php-format
5057
- msgid "Theme \"%s\" auto-updated from \"%s\" to version \"%s\""
5058
- msgstr ""
5059
-
5060
- #: src/processors/autoupdates.php:519
5061
- msgid "WordPress Core Updated:"
5062
- msgstr ""
5063
-
5064
- #: src/processors/autoupdates.php:538
5065
- msgid "Thank you."
5066
- msgstr ""
5067
-
5068
- #: src/processors/autoupdates.php:540
5069
- #: src/processors/loginprotect_backupcodes.php:181
5070
- #, php-format
5071
- msgid "Notice: %s"
5072
- msgstr ""
5073
-
5074
- #: src/processors/autoupdates.php:540
5075
- msgid "Automatic Updates Completed"
5076
- msgstr ""
5077
-
5078
- #: src/processors/autoupdates.php:562
5079
- msgid ""
5080
- "Automatic updates for this plugin is controlled by another plugin or setting."
5081
- msgstr ""
5082
-
5083
- #: src/processors/base_commentsfilter.php:116
5084
- #: src/processors/commentsfilter_antibotspam.php:497
5085
- #, php-format
5086
- msgid "%s plugin marked this comment as \"%s\"."
5087
- msgstr ""
5088
-
5089
- #: src/processors/base_commentsfilter.php:116
5090
- #: src/processors/commentsfilter_antibotspam.php:497
5091
- #, php-format
5092
- msgid "Reason: %s"
5093
- msgstr ""
5094
-
5095
- #: src/processors/base_plugin.php:68
5096
- msgid "I'd rather not show this support"
5097
- msgstr ""
5098
-
5099
- #: src/processors/base_plugin.php:68
5100
- msgid "I've done this already"
5101
- msgstr ""
5102
-
5103
- #: src/processors/base_plugin.php:92
5104
- msgid "I don't need the setup wizard just now"
5105
- msgstr ""
5106
-
5107
- #: src/processors/base_plugin.php:93
5108
- #, php-format
5109
- msgid "Get started quickly with the %s Setup Wizard"
5110
- msgstr ""
5111
-
5112
- #: src/processors/base_plugin.php:94
5113
- #, php-format
5114
- msgid ""
5115
- "The welcome wizard will help you get setup quickly and become familiar with "
5116
- "some of the core %s features"
5117
- msgstr ""
5118
-
5119
- #: src/processors/base_plugin.php:95
5120
- #, php-format
5121
- msgid ""
5122
- "%s has a helpful setup wizard to walk you through the main features. "
5123
- "Unfortunately your PHP version is reeeaally old as it needs PHP 5.4+"
5124
- msgstr ""
5125
-
5126
- #: src/processors/base_plugin.php:123
5127
- #, php-format
5128
- msgid "Your PHP version is very old: %s"
5129
- msgstr ""
5130
-
5131
- #: src/processors/base_plugin.php:124
5132
- #, php-format
5133
- msgid "Newer features of %s do not support your PHP version."
5134
- msgstr ""
5135
-
5136
- #: src/processors/base_plugin.php:125
5137
- msgid ""
5138
- "You should ask your host to upgrade or provide a much newer PHP version."
5139
- msgstr ""
5140
-
5141
- #: src/processors/base_plugin.php:126
5142
- msgid "Please read here for further information:"
5143
- msgstr ""
5144
-
5145
- #: src/processors/base_plugin.php:127 src/processors/base_plugin.php:168
5146
- #: src/processors/base_plugin.php:192
5147
- msgid "Dismiss this notice"
5148
- msgstr ""
5149
-
5150
- #: src/processors/base_plugin.php:128
5151
- msgid "Dropping support for PHP 5.2 and 5.3"
5152
- msgstr ""
5153
-
5154
- #: src/processors/base_plugin.php:165
5155
- #, php-format
5156
- msgid "Update available for the %s plugin."
5157
- msgstr ""
5158
-
5159
- #: src/processors/base_plugin.php:167
5160
- msgid "Please click to update immediately"
5161
- msgstr ""
5162
-
5163
- #: src/processors/base_plugin.php:188
5164
- #, php-format
5165
- msgid "Can you help translate the %s plugin?"
5166
- msgstr ""
5167
-
5168
- #: src/processors/base_plugin.php:190
5169
- #, php-format
5170
- msgid "Head over to: %s"
5171
- msgstr ""
5172
-
5173
- #: src/processors/base_wpsf.php:99 src/processors/base_wpsf.php:107
5174
- msgid "Whoops."
5175
- msgstr ""
5176
-
5177
- #: src/processors/base_wpsf.php:99
5178
- msgid "Google reCAPTCHA was not submitted."
5179
- msgstr ""
5180
-
5181
- #: src/processors/base_wpsf.php:107
5182
- msgid "Google reCAPTCHA verification failed."
5183
- msgstr ""
5184
-
5185
- #: src/processors/base_wpsf.php:108
5186
- msgid "Maybe refresh the page and try again."
5187
- msgstr ""
5188
-
5189
- #: src/processors/comments_filter.php:70
5190
- msgid ""
5191
- "It appears you have Akismet Anti-SPAM running alongside the our human Anti-"
5192
- "SPAM filter."
5193
- msgstr ""
5194
-
5195
- #: src/processors/comments_filter.php:71
5196
- msgid "This is not recommended and you should disable Akismet."
5197
- msgstr ""
5198
-
5199
- #: src/processors/comments_filter.php:72
5200
- msgid "Click to deactivate Akismet now."
5201
- msgstr ""
5202
-
5203
- #: src/processors/commentsfilter_antibotspam.php:182
5204
- #: src/processors/commentsfilter_antibotspam.php:187
5205
- #: src/processors/commentsfilter_antibotspam.php:192
5206
- #, php-format
5207
- msgid "Failed GASP Bot Filter Test (%s)"
5208
- msgstr ""
5209
-
5210
- #: src/processors/commentsfilter_antibotspam.php:182
5211
- msgid "checkbox"
5212
- msgstr ""
5213
-
5214
- #: src/processors/commentsfilter_antibotspam.php:187
5215
- msgid "honeypot"
5216
- msgstr ""
5217
-
5218
- #: src/processors/commentsfilter_antibotspam.php:192
5219
- msgid "comment token failure"
5220
- msgstr ""
5221
-
5222
- #: src/processors/commentsfilter_humanspam.php:131
5223
- #, php-format
5224
- msgid "Human SPAM filter found \"%s\" in \"%s\""
5225
- msgstr ""
5226
-
5227
- #: src/processors/email.php:63
5228
- msgid "Hi !"
5229
- msgstr ""
5230
-
5231
- #: src/processors/email.php:74
5232
- #, php-format
5233
- msgid "Email sent from the %s Plugin v%s, on %s."
5234
- msgstr ""
5235
-
5236
- #: src/processors/email.php:79
5237
- msgid "Note: Email delays are caused by website hosting and email providers."
5238
- msgstr ""
5239
-
5240
- #: src/processors/email.php:80
5241
- #, php-format
5242
- msgid "Time Sent: %s"
5243
- msgstr ""
5244
-
5245
- #: src/processors/firewall.php:70 src/processors/firewall.php:83
5246
- #, php-format
5247
- msgid "Skipping firewall checking for this visit: %s."
5248
- msgstr ""
5249
-
5250
- #: src/processors/firewall.php:70
5251
- msgid "Parsing the URI failed"
5252
- msgstr ""
5253
-
5254
- #: src/processors/firewall.php:83
5255
- msgid "Visitor detected as Search Engine Bot"
5256
- msgstr ""
5257
-
5258
- #: src/processors/firewall.php:160 src/processors/firewall.php:218
5259
- #, php-format
5260
- msgid "Firewall Trigger: %s."
5261
- msgstr ""
5262
-
5263
- #: src/processors/firewall.php:160 src/processors/firewall.php:548
5264
- msgid "EXE File Uploads"
5265
- msgstr ""
5266
-
5267
- #: src/processors/firewall.php:211
5268
- msgid "Something in the URL, Form or Cookie data wasn't appropriate."
5269
- msgstr ""
5270
-
5271
- #: src/processors/firewall.php:212
5272
- msgid "Page parameter failed firewall check."
5273
- msgstr ""
5274
-
5275
- #: src/processors/firewall.php:213
5276
- #, php-format
5277
- msgid "The offending parameter was \"%s\" with a value of \"%s\"."
5278
- msgstr ""
5279
-
5280
- #: src/processors/firewall.php:259
5281
- msgid "Visitor connection was killed with wp_die()"
5282
- msgstr ""
5283
-
5284
- #: src/processors/firewall.php:262
5285
- msgid "Visitor connection was killed with wp_die() and a message"
5286
- msgstr ""
5287
-
5288
- #: src/processors/firewall.php:265
5289
- msgid "Visitor was sent HOME"
5290
- msgstr ""
5291
-
5292
- #: src/processors/firewall.php:268
5293
- msgid "Visitor was sent 404"
5294
- msgstr ""
5295
-
5296
- #: src/processors/firewall.php:279
5297
- #, php-format
5298
- msgid "Successfully sent Firewall Block email alert to: %s"
5299
- msgstr ""
5300
-
5301
- #: src/processors/firewall.php:282
5302
- #, php-format
5303
- msgid "Failed to send Firewall Block email alert to: %s"
5304
- msgstr ""
5305
-
5306
- #: src/processors/firewall.php:287
5307
- #, php-format
5308
- msgid "Firewall Block Response: %s."
5309
- msgstr ""
5310
-
5311
- #: src/processors/firewall.php:475
5312
- #, php-format
5313
- msgid "%s has blocked a page visit to your site."
5314
- msgstr ""
5315
-
5316
- #: src/processors/firewall.php:476
5317
- msgid "Log details for this visitor are below:"
5318
- msgstr ""
5319
-
5320
- #: src/processors/firewall.php:481
5321
- #, php-format
5322
- msgid "You can look up the offending IP Address here: %s"
5323
- msgstr ""
5324
-
5325
- #: src/processors/firewall.php:482
5326
- msgid "Firewall Block Alert"
5327
- msgstr ""
5328
-
5329
- #: src/processors/firewall.php:536
5330
- msgid "Directory Traversal"
5331
- msgstr ""
5332
-
5333
- #: src/processors/firewall.php:551
5334
- msgid "Leading Schema"
5335
- msgstr ""
5336
-
5337
- #: src/processors/firewall.php:557
5338
- msgid "Aggressive Rules"
5339
- msgstr ""
5340
-
5341
- #: src/processors/firewall.php:560
5342
- msgid "Unknown Rules"
5343
- msgstr ""
5344
-
5345
- #: src/processors/hack_protect.php:156
5346
- #, php-format
5347
- msgid "%s escaped HTML the following comment due to its size: %s"
5348
- msgstr ""
5349
-
5350
- #: src/processors/hackprotect_corechecksumscan.php:27
5351
- msgid "File was successfully replaced with an original from WordPress.org"
5352
- msgstr ""
5353
-
5354
- #: src/processors/hackprotect_corechecksumscan.php:30
5355
- msgid "File was not replaced"
5356
- msgstr ""
5357
-
5358
- #: src/processors/hackprotect_corechecksumscan.php:244
5359
- msgid "Modified Core WordPress Files Discovered"
5360
- msgstr ""
5361
-
5362
- #: src/processors/hackprotect_corechecksumscan.php:249
5363
- #, php-format
5364
- msgid "Sent Checksum Scan Notification email alert to: %s"
5365
- msgstr ""
5366
-
5367
- #: src/processors/hackprotect_corechecksumscan.php:264
5368
- #, php-format
5369
- msgid "The %s Core File Scanner found files with potential problems."
5370
- msgstr ""
5371
-
5372
- #: src/processors/hackprotect_corechecksumscan.php:265
5373
- #: src/processors/hackprotect_filecleanerscan.php:254
5374
- #: src/processors/hackprotect_ptguard.php:495
5375
- #: src/processors/user_management.php:207
5376
- #: src/processors/user_management.php:235
5377
- msgid "Site URL"
5378
- msgstr ""
5379
-
5380
- #: src/processors/hackprotect_corechecksumscan.php:274
5381
- #, php-format
5382
- msgid "%s has already attempted to repair the files."
5383
- msgstr ""
5384
-
5385
- #: src/processors/hackprotect_corechecksumscan.php:275
5386
- msgid ""
5387
- "But, you should always check these files to ensure everything is as you "
5388
- "expect."
5389
- msgstr ""
5390
-
5391
- #: src/processors/hackprotect_corechecksumscan.php:278
5392
- msgid ""
5393
- "You should review these files and replace them with official versions if "
5394
- "required."
5395
- msgstr ""
5396
-
5397
- #: src/processors/hackprotect_corechecksumscan.php:279
5398
- msgid ""
5399
- "Alternatively you can have the plugin attempt to repair/replace these files "
5400
- "automatically."
5401
- msgstr ""
5402
-
5403
- #: src/processors/hackprotect_corechecksumscan.php:286
5404
- #: src/processors/hackprotect_filecleanerscan.php:272
5405
- msgid "We recommend you run the scanner to review your site"
5406
- msgstr ""
5407
-
5408
- #: src/processors/hackprotect_corechecksumscan.php:290
5409
- #: src/processors/hackprotect_filecleanerscan.php:276
5410
- msgid "Run Scanner"
5411
- msgstr ""
5412
-
5413
- #: src/processors/hackprotect_corechecksumscan.php:296
5414
- #: src/processors/hackprotect_filecleanerscan.php:282
5415
- msgid "More Info On This Scanner"
5416
- msgstr ""
5417
-
5418
- #: src/processors/hackprotect_corechecksumscan.php:327
5419
- msgid ""
5420
- "The contents of the core files listed below don't match official WordPress "
5421
- "files:"
5422
- msgstr ""
5423
-
5424
- #: src/processors/hackprotect_corechecksumscan.php:333
5425
- msgid "The WordPress Core Files listed below are missing:"
5426
- msgstr ""
5427
-
5428
- #: src/processors/hackprotect_corechecksumscan.php:354
5429
- #: src/processors/hackprotect_filecleanerscan.php:312
5430
- msgid "Repair file now"
5431
- msgstr ""
5432
-
5433
- #: src/processors/hackprotect_corechecksumscan.php:357
5434
- #: src/processors/hackprotect_filecleanerscan.php:315
5435
- msgid "WordPress.org source file"
5436
- msgstr ""
5437
-
5438
- #: src/processors/hackprotect_filecleanerscan.php:232
5439
- msgid "Unrecognised WordPress Files Detected"
5440
- msgstr ""
5441
-
5442
- #: src/processors/hackprotect_filecleanerscan.php:237
5443
- #, php-format
5444
- msgid "Sent Unrecognised File Scan Notification email alert to: %s"
5445
- msgstr ""
5446
-
5447
- #: src/processors/hackprotect_filecleanerscan.php:253
5448
- #, php-format
5449
- msgid "The %s Unrecognised File Scanner found files which you need to review."
5450
- msgstr ""
5451
-
5452
- #: src/processors/hackprotect_filecleanerscan.php:259
5453
- msgid "Files that were discovered"
5454
- msgstr ""
5455
-
5456
- #: src/processors/hackprotect_filecleanerscan.php:266
5457
- #, php-format
5458
- msgid "%s has attempted to delete these files based on your current settings."
5459
- msgstr ""
5460
-
5461
- #: src/processors/hackprotect_pluginvulnerabilities.php:82
5462
- #: src/processors/hackprotect_wpvulnscan.php:177
5463
- #, php-format
5464
- msgid "Plugin Name: %s"
5465
- msgstr ""
5466
-
5467
- #: src/processors/hackprotect_pluginvulnerabilities.php:83
5468
- #: src/processors/hackprotect_wpvulnscan.php:179
5469
- #, php-format
5470
- msgid "Vulnerability Type: %s"
5471
- msgstr ""
5472
-
5473
- #: src/processors/hackprotect_pluginvulnerabilities.php:84
5474
- #, php-format
5475
- msgid "Vulnerable Plugin Version Range: %s"
5476
- msgstr ""
5477
-
5478
- #: src/processors/hackprotect_pluginvulnerabilities.php:85
5479
- #: src/processors/hackprotect_wpvulnscan.php:181
5480
- #, php-format
5481
- msgid "Further Information: %s"
5482
- msgstr ""
5483
-
5484
- #: src/processors/hackprotect_pluginvulnerabilities.php:102
5485
- #, php-format
5486
- msgid ""
5487
- "%s has detected a plugin with a known security vulnerability on your site."
5488
- msgstr ""
5489
-
5490
- #: src/processors/hackprotect_pluginvulnerabilities.php:103
5491
- #: src/processors/hackprotect_wpvulnscan.php:212
5492
- msgid "Details for the plugin(s) are below:"
5493
- msgstr ""
5494
-
5495
- #: src/processors/hackprotect_pluginvulnerabilities.php:108
5496
- #: src/processors/hackprotect_wpvulnscan.php:217
5497
- msgid "You should update or remove these plugins at your earliest convenience."
5498
- msgstr ""
5499
-
5500
- #: src/processors/hackprotect_pluginvulnerabilities.php:110
5501
- #: src/processors/hackprotect_wpvulnscan.php:220
5502
- msgid "Plugin(s) Discovered With Known Security Vulnerabilities."
5503
- msgstr ""
5504
-
5505
- #: src/processors/hackprotect_pluginvulnerabilities.php:116
5506
- #: src/processors/hackprotect_wpvulnscan.php:226
5507
- #, php-format
5508
- msgid "Successfully sent Plugin Vulnerability Notification email alert to: %s"
5509
- msgstr ""
5510
-
5511
- #: src/processors/hackprotect_pluginvulnerabilities.php:119
5512
- #: src/processors/hackprotect_wpvulnscan.php:229
5513
- #, php-format
5514
- msgid "Failed to send Plugin Vulnerability Notification email alert to: %s"
5515
- msgstr ""
5516
-
5517
- #: src/processors/hackprotect_pluginvulnerabilities.php:152
5518
- #, php-format
5519
- msgid ""
5520
- "%s has discovered that the currently installed version of the \"%s\" plugin "
5521
- "has a known security vulnerability."
5522
- msgstr ""
5523
-
5524
- #: src/processors/hackprotect_pluginvulnerabilities.php:153
5525
- #: src/processors/hackprotect_wpvulnscan.php:145
5526
- msgid "Vulnerability Type"
5527
- msgstr ""
5528
-
5529
- #: src/processors/hackprotect_pluginvulnerabilities.php:155
5530
- msgid "Vulnerable Versions"
5531
- msgstr ""
5532
-
5533
- #: src/processors/hackprotect_ptguard.php:178
5534
- #, php-format
5535
- msgid "File signatures removed for item \"%s\""
5536
- msgstr ""
5537
-
5538
- #: src/processors/hackprotect_ptguard.php:204
5539
- #, php-format
5540
- msgid "File signatures updated for item \"%s\""
5541
- msgstr ""
5542
-
5543
- #: src/processors/hackprotect_ptguard.php:449
5544
- msgid "Silenced repeated email alert from Plugin/Theme Scan Guard"
5545
- msgstr ""
5546
-
5547
- #: src/processors/hackprotect_ptguard.php:491
5548
- #, php-format
5549
- msgid ""
5550
- "%s has detected at least 1 Plugins/Themes have been modified on your site."
5551
- msgstr ""
5552
-
5553
- #: src/processors/hackprotect_ptguard.php:493
5554
- msgid ""
5555
- "You will receive only 1 email notification about these changes in a 1 week "
5556
- "period."
5557
- msgstr ""
5558
-
5559
- #: src/processors/hackprotect_ptguard.php:497
5560
- msgid "Details of the problem items are below:"
5561
- msgstr ""
5562
-
5563
- #: src/processors/hackprotect_ptguard.php:502
5564
- msgid "Modified Plugins:"
5565
- msgstr ""
5566
-
5567
- #: src/processors/hackprotect_ptguard.php:510
5568
- msgid "Modified Themes:"
5569
- msgstr ""
5570
-
5571
- #: src/processors/hackprotect_ptguard.php:520
5572
- msgid "Run the scanner"
5573
- msgstr ""
5574
-
5575
- #: src/processors/hackprotect_ptguard.php:526
5576
- msgid "Plugins/Themes Have Been Altered"
5577
- msgstr ""
5578
-
5579
- #: src/processors/hackprotect_ptguard.php:531
5580
- #, php-format
5581
- msgid "Successfully sent Plugin/Theme Guard email alert to: %s"
5582
- msgstr ""
5583
-
5584
- #: src/processors/hackprotect_ptguard.php:534
5585
- #, php-format
5586
- msgid "Failed to send Plugin/Theme Guard email alert to: %s"
5587
- msgstr ""
5588
-
5589
- #: src/processors/hackprotect_ptguard.php:689
5590
- msgid "Plugin/Theme Guard"
5591
- msgstr ""
5592
-
5593
- #: src/processors/hackprotect_wpvulnscan.php:112
5594
- msgid "Vulnerable"
5595
- msgstr ""
5596
-
5597
- #: src/processors/hackprotect_wpvulnscan.php:142
5598
- #, php-format
5599
- msgid ""
5600
- "%s has discovered that the currently installed version of the %s plugin has "
5601
- "known security vulnerabilities."
5602
- msgstr ""
5603
-
5604
- #: src/processors/hackprotect_wpvulnscan.php:144
5605
- msgid "Vulnerability Name"
5606
- msgstr ""
5607
-
5608
- #: src/processors/hackprotect_wpvulnscan.php:146
5609
- msgid "Fixed Versions"
5610
- msgstr ""
5611
-
5612
- #: src/processors/hackprotect_wpvulnscan.php:178
5613
- #, php-format
5614
- msgid "Vulnerability Title: %s"
5615
- msgstr ""
5616
-
5617
- #: src/processors/hackprotect_wpvulnscan.php:180
5618
- #, php-format
5619
- msgid "Fixed Version: %s"
5620
- msgstr ""
5621
-
5622
- #: src/processors/hackprotect_wpvulnscan.php:211
5623
- #, php-format
5624
- msgid "%s has detected plugins with known security vulnerabilities."
5625
- msgstr ""
5626
-
5627
- #: src/processors/hackprotect_wpvulnscan.php:218
5628
- #, php-format
5629
- msgid "Go To Your Plugins: %s"
5630
- msgstr ""
5631
-
5632
- #: src/processors/ips.php:60
5633
- #, php-format
5634
- msgid "404 detected at \"%s\""
5635
- msgstr ""
5636
-
5637
- #: src/processors/ips.php:90
5638
- #, php-format
5639
- msgid "%s is ignoring you"
5640
- msgstr ""
5641
-
5642
- #: src/processors/ips.php:92
5643
- msgid ""
5644
- "Your IP address is whitelisted and NO features you activate apply to you."
5645
- msgstr ""
5646
-
5647
- #: src/processors/ips.php:93
5648
- msgid "Including the hiding the WP Login page."
5649
- msgstr ""
5650
-
5651
- #: src/processors/ips.php:225
5652
- #, php-format
5653
- msgid ""
5654
- "Visitor was found to be on the Black List with IP address \"%s\" and their "
5655
- "connection was killed."
5656
- msgstr ""
5657
-
5658
- #: src/processors/ips.php:235
5659
- #, php-format
5660
- msgid "You have been black listed by the %s plugin."
5661
- msgstr ""
5662
-
5663
- #: src/processors/ips.php:239
5664
- #, php-format
5665
- msgid ""
5666
- "You tripped the security plugin defenses a total of %s times making you a "
5667
- "suspect."
5668
- msgstr ""
5669
-
5670
- #: src/processors/ips.php:240
5671
- msgid "If you believe this to be in error, please contact the site owner."
5672
- msgstr ""
5673
-
5674
- #: src/processors/ips.php:241
5675
- #, php-format
5676
- msgid ""
5677
- "Time remaining until you are automatically removed from the black list: %s "
5678
- "minute(s)"
5679
- msgstr ""
5680
-
5681
- #: src/processors/ips.php:242
5682
- msgid ""
5683
- "If you attempt to access the site within this period the counter will be "
5684
- "reset."
5685
- msgstr ""
5686
-
5687
- #: src/processors/ips.php:293
5688
- #, php-format
5689
- msgid "Auto Black List transgression counter was incremented from %s to %s."
5690
- msgstr ""
5691
-
5692
- #: src/processors/ips.php:302
5693
- msgid "Auto Black List transgression counter was started for visitor."
5694
- msgstr ""
5695
-
5696
- #: src/processors/ips.php:470
5697
- msgid "No Label"
5698
- msgstr ""
5699
-
5700
- #: src/processors/lockdown.php:106
5701
- #, php-format
5702
- msgid "Anonymous access to the WordPress Rest API has been restricted by %s."
5703
- msgstr ""
5704
-
5705
- #: src/processors/lockdown.php:216
5706
- #, php-format
5707
- msgid ""
5708
- "The \"author\" query parameter has been blocked by %s to protect against "
5709
- "user login name fishing."
5710
- msgstr ""
5711
-
5712
- #: src/processors/login_protect.php:68
5713
- msgid "Please verify email has been received"
5714
- msgstr ""
5715
-
5716
- #: src/processors/login_protect.php:69
5717
- msgid ""
5718
- "Before we can activate email 2-factor authentication, we need you to confirm "
5719
- "your website can send emails."
5720
- msgstr ""
5721
-
5722
- #: src/processors/login_protect.php:70
5723
- msgid "Please click the link in the email you received."
5724
- msgstr ""
5725
-
5726
- #: src/processors/login_protect.php:72
5727
- #, php-format
5728
- msgid "The email has been sent to you at blog admin address: %s"
5729
- msgstr ""
5730
-
5731
- #: src/processors/login_protect.php:75
5732
- msgid "To resend the email, re-save your Login Guard settings."
5733
- msgstr ""
5734
-
5735
- #: src/processors/login_protect.php:76
5736
- msgid "To turn this notice off, disable 2-Factor Authentication."
5737
- msgstr ""
5738
-
5739
- #: src/processors/loginprotect_backupcodes.php:28
5740
- msgid "Generate ONE-Time Backup 2FA Login Code"
5741
- msgstr ""
5742
-
5743
- #: src/processors/loginprotect_backupcodes.php:29
5744
- msgid "Delete Login Backup Code"
5745
- msgstr ""
5746
-
5747
- #: src/processors/loginprotect_backupcodes.php:30
5748
- msgid ""
5749
- "Backup login codes are not available if you do not have any other two-factor "
5750
- "authentication modes active."
5751
- msgstr ""
5752
-
5753
- #: src/processors/loginprotect_backupcodes.php:31
5754
- msgid ""
5755
- "Click to generate a backup login code for your two-factor authentication."
5756
- msgstr ""
5757
-
5758
- #: src/processors/loginprotect_backupcodes.php:34
5759
- msgid ""
5760
- "This code will be displayed only once and you may use it to verify your "
5761
- "login only once."
5762
- msgstr ""
5763
-
5764
- #: src/processors/loginprotect_backupcodes.php:35
5765
- msgid "Store it somewhere safe."
5766
- msgstr ""
5767
-
5768
- #: src/processors/loginprotect_backupcodes.php:36
5769
- msgid "Generating a new code will replace your existing code."
5770
- msgstr ""
5771
-
5772
- #: src/processors/loginprotect_backupcodes.php:37
5773
- #: src/processors/loginprotect_googleauthenticator.php:38
5774
- msgid ""
5775
- "Use your Google Authenticator app to scan this QR code and enter the one "
5776
- "time password below."
5777
- msgstr ""
5778
-
5779
- #: src/processors/loginprotect_backupcodes.php:38
5780
- #: src/processors/loginprotect_googleauthenticator.php:39
5781
- msgid ""
5782
- "If you have a problem with scanning the QR code enter this code manually "
5783
- "into the app."
5784
- msgstr ""
5785
-
5786
- #: src/processors/loginprotect_backupcodes.php:39
5787
- #: src/processors/loginprotect_googleauthenticator.php:40
5788
- msgid "Check the box to remove Google Authenticator login authentication."
5789
- msgstr ""
5790
-
5791
- #: src/processors/loginprotect_backupcodes.php:40
5792
- #: src/processors/loginprotect_googleauthenticator.php:41
5793
- #, php-format
5794
- msgid "Remove %s"
5795
- msgstr ""
5796
-
5797
- #: src/processors/loginprotect_backupcodes.php:41
5798
- msgid "Create Backup 2FA Login Code"
5799
- msgstr ""
5800
-
5801
- #: src/processors/loginprotect_backupcodes.php:42
5802
- #: src/processors/loginprotect_googleauthenticator.php:43
5803
- msgid "Manual Code"
5804
- msgstr ""
5805
-
5806
- #: src/processors/loginprotect_backupcodes.php:43
5807
- #: src/processors/loginprotect_googleauthenticator.php:44
5808
- msgid "Scan This QR Code"
5809
- msgstr ""
5810
-
5811
- #: src/processors/loginprotect_backupcodes.php:44
5812
- msgid "Backup Login Code"
5813
- msgstr ""
5814
-
5815
- #: src/processors/loginprotect_backupcodes.php:45
5816
- #: src/processors/loginprotect_googleauthenticator.php:46
5817
- #: src/processors/loginprotect_yubikey.php:46
5818
- #, php-format
5819
- msgid "Sorry, %s may not be added to another user's account."
5820
- msgstr ""
5821
-
5822
- #: src/processors/loginprotect_backupcodes.php:46
5823
- #: src/processors/loginprotect_googleauthenticator.php:47
5824
- #: src/processors/loginprotect_yubikey.php:47
5825
- #, php-format
5826
- msgid ""
5827
- "Sorry, %s may only be removed from another user's account by a Security "
5828
- "Administrator."
5829
- msgstr ""
5830
-
5831
- #: src/processors/loginprotect_backupcodes.php:46
5832
- msgid "Backup Codes"
5833
- msgstr ""
5834
-
5835
- #: src/processors/loginprotect_backupcodes.php:47
5836
- #: src/processors/loginprotect_googleauthenticator.php:48
5837
- #: src/processors/loginprotect_twofactorauth.php:204
5838
- #: src/processors/loginprotect_yubikey.php:48
5839
- #, php-format
5840
- msgid "Provided by %s"
5841
- msgstr ""
5842
-
5843
- #: src/processors/loginprotect_backupcodes.php:48
5844
- #: src/processors/loginprotect_googleauthenticator.php:49
5845
- #: src/processors/loginprotect_yubikey.php:49
5846
- msgid "Understand how to remove Google Authenticator"
5847
- msgstr ""
5848
-
5849
- #: src/processors/loginprotect_backupcodes.php:75
5850
- msgid "Please use your Backup Code to login."
5851
- msgstr ""
5852
-
5853
- #: src/processors/loginprotect_backupcodes.php:76
5854
- msgid "Login Backup Code"
5855
- msgstr ""
5856
-
5857
- #: src/processors/loginprotect_backupcodes.php:133
5858
- #: src/processors/loginprotect_googleauthenticator.php:288
5859
- #: src/processors/loginprotect_twofactorauth.php:41
5860
- #: src/processors/loginprotect_yubikey.php:239
5861
- #, php-format
5862
- msgid "User \"%s\" verified their identity using %s method."
5863
- msgstr ""
5864
-
5865
- #: src/processors/loginprotect_backupcodes.php:134
5866
- #: src/processors/loginprotect_backupcodes.php:142
5867
- msgid "Backup Code"
5868
- msgstr ""
5869
-
5870
- #: src/processors/loginprotect_backupcodes.php:141
5871
- #: src/processors/loginprotect_googleauthenticator.php:296
5872
- #: src/processors/loginprotect_twofactorauth.php:49
5873
- #: src/processors/loginprotect_yubikey.php:247
5874
- #, php-format
5875
- msgid "User \"%s\" failed to verify their identity using %s method."
5876
- msgstr ""
5877
-
5878
- #: src/processors/loginprotect_backupcodes.php:169
5879
- msgid ""
5880
- "This is a quick notice to inform you that your Backup Login code was just "
5881
- "used."
5882
- msgstr ""
5883
-
5884
- #: src/processors/loginprotect_backupcodes.php:170
5885
- msgid "Your WordPress account had only 1 backup login code."
5886
- msgstr ""
5887
-
5888
- #: src/processors/loginprotect_backupcodes.php:171
5889
- msgid ""
5890
- "You must go to your profile and regenerate a new code if you want to use "
5891
- "this method again."
5892
- msgstr ""
5893
-
5894
- #: src/processors/loginprotect_backupcodes.php:173
5895
- #: src/processors/loginprotect_twofactorauth.php:159
5896
- msgid "Login Details"
5897
- msgstr ""
5898
-
5899
- #: src/processors/loginprotect_backupcodes.php:174
5900
- #: src/processors/loginprotect_twofactorauth.php:160
5901
- msgid "URL"
5902
- msgstr ""
5903
-
5904
- #: src/processors/loginprotect_backupcodes.php:178
5905
- msgid "Thank You."
5906
- msgstr ""
5907
-
5908
- #: src/processors/loginprotect_backupcodes.php:181
5909
- msgid "Backup Login Code Just Used"
5910
- msgstr ""
5911
-
5912
- #: src/processors/loginprotect_cooldown.php:24
5913
- msgid "Request Cooldown in effect."
5914
- msgstr ""
5915
-
5916
- #: src/processors/loginprotect_cooldown.php:26
5917
- #, php-format
5918
- msgid "You must wait %s seconds before attempting this action again."
5919
- msgstr ""
5920
-
5921
- #: src/processors/loginprotect_cooldown.php:31
5922
- msgid ""
5923
- "Cooldown triggered and request (login/register/lost-password) was blocked."
5924
- msgstr ""
5925
-
5926
- #: src/processors/loginprotect_gasp.php:29
5927
- msgid "You MUST enable Javascript to be able to login"
5928
- msgstr ""
5929
-
5930
- #: src/processors/loginprotect_gasp.php:60
5931
- #: src/processors/loginprotect_gasp.php:104
5932
- #, php-format
5933
- msgid "User \"%s\" attempted to %s but GASP checkbox was not present."
5934
- msgstr ""
5935
-
5936
- #: src/processors/loginprotect_gasp.php:62
5937
- #: src/processors/loginprotect_gasp.php:71
5938
- #: src/processors/loginprotect_gasp.php:106
5939
- #: src/processors/loginprotect_gasp.php:115
5940
- msgid "Probably a BOT."
5941
- msgstr ""
5942
-
5943
- #: src/processors/loginprotect_gasp.php:65
5944
- #: src/processors/loginprotect_gasp.php:109
5945
- msgid "You must check that box to say you're not a bot."
5946
- msgstr ""
5947
-
5948
- #: src/processors/loginprotect_gasp.php:69
5949
- #: src/processors/loginprotect_gasp.php:113
5950
- #, php-format
5951
- msgid "User \"%s\" attempted to %s but they were caught by the GASP honeypot."
5952
- msgstr ""
5953
-
5954
- #: src/processors/loginprotect_gasp.php:74
5955
- #: src/processors/loginprotect_gasp.php:118
5956
- #, php-format
5957
- msgid "You appear to be a bot - terminating %s attempt."
5958
- msgstr ""
5959
-
5960
- #: src/processors/loginprotect_googleauthenticator.php:36
5961
- msgid "Provide the current code generated by your Google Authenticator app."
5962
- msgstr ""
5963
-
5964
- #: src/processors/loginprotect_googleauthenticator.php:37
5965
- msgid "To reset this QR Code enter fake data here."
5966
- msgstr ""
5967
-
5968
- #: src/processors/loginprotect_googleauthenticator.php:42
5969
- #: src/processors/loginprotect_googleauthenticator.php:206
5970
- msgid "Google Authenticator Code"
5971
- msgstr ""
5972
-
5973
- #: src/processors/loginprotect_googleauthenticator.php:107
5974
- #: src/processors/loginprotect_googleauthenticator.php:152
5975
- msgid "Google Authenticator was successfully removed from the account."
5976
- msgstr ""
5977
-
5978
- #: src/processors/loginprotect_googleauthenticator.php:110
5979
- msgid ""
5980
- "Google Authenticator could not be removed from the account - ensure your "
5981
- "code is correct."
5982
- msgstr ""
5983
-
5984
- #: src/processors/loginprotect_googleauthenticator.php:144
5985
- #: src/processors/loginprotect_yubikey.php:80
5986
- msgid "One Time Password (OTP) was not valid."
5987
- msgstr ""
5988
-
5989
- #: src/processors/loginprotect_googleauthenticator.php:144
5990
- #: src/processors/loginprotect_yubikey.php:80
5991
- msgid "Please try again."
5992
- msgstr ""
5993
-
5994
- #: src/processors/loginprotect_googleauthenticator.php:157
5995
- msgid ""
5996
- "An email has been sent to you in order to confirm Google Authenticator "
5997
- "removal"
5998
- msgstr ""
5999
-
6000
- #: src/processors/loginprotect_googleauthenticator.php:161
6001
- msgid ""
6002
- "We tried to send an email for you to confirm Google Authenticator removal "
6003
- "but it failed."
6004
- msgstr ""
6005
-
6006
- #: src/processors/loginprotect_googleauthenticator.php:183
6007
- #, php-format
6008
- msgid "%s was successfully added to your account."
6009
- msgstr ""
6010
-
6011
- #: src/processors/loginprotect_googleauthenticator.php:205
6012
- msgid "Please use your Google Authenticator App to retrieve your code."
6013
- msgstr ""
6014
-
6015
- #: src/processors/loginprotect_googleauthenticator.php:224
6016
- msgid ""
6017
- "You have requested the removal of Google Authenticator from your WordPress "
6018
- "account."
6019
- msgstr ""
6020
-
6021
- #: src/processors/loginprotect_googleauthenticator.php:225
6022
- msgid "Please click the link below to confirm."
6023
- msgstr ""
6024
-
6025
- #: src/processors/loginprotect_googleauthenticator.php:230
6026
- msgid "Google Authenticator Removal Confirmation"
6027
- msgstr ""
6028
-
6029
- #: src/processors/loginprotect_googleauthenticator.php:254
6030
- msgid "Google Authenticator was successfully removed from this account."
6031
- msgstr ""
6032
-
6033
- #: src/processors/loginprotect_intent.php:121
6034
- msgid "Success"
6035
- msgstr ""
6036
-
6037
- #: src/processors/loginprotect_intent.php:121
6038
- msgid "Thank you for authenticating your login."
6039
- msgstr ""
6040
-
6041
- #: src/processors/loginprotect_intent.php:123
6042
- msgid "If you used your Backup Code, you will need to reset it."
6043
- msgstr ""
6044
-
6045
- #: src/processors/loginprotect_intent.php:131
6046
- msgid "One or more of your authentication codes failed or was missing"
6047
- msgstr ""
6048
-
6049
- #: src/processors/loginprotect_intent.php:269
6050
- msgid "Please supply all authentication codes"
6051
- msgstr ""
6052
-
6053
- #: src/processors/loginprotect_intent.php:272
6054
- msgid "Please supply at least 1 authentication code"
6055
- msgstr ""
6056
-
6057
- #: src/processors/loginprotect_intent.php:287
6058
- msgid "Cancel Login"
6059
- msgstr ""
6060
-
6061
- #: src/processors/loginprotect_intent.php:288
6062
- msgid "Time Remaining"
6063
- msgstr ""
6064
-
6065
- #: src/processors/loginprotect_intent.php:289
6066
- msgid "Calculating"
6067
- msgstr ""
6068
-
6069
- #: src/processors/loginprotect_intent.php:290
6070
- msgid "Seconds"
6071
- msgstr ""
6072
-
6073
- #: src/processors/loginprotect_intent.php:291
6074
- msgid "Login Expired"
6075
- msgstr ""
6076
-
6077
- #: src/processors/loginprotect_intent.php:292
6078
- msgid "Verify My Login"
6079
- msgstr ""
6080
-
6081
- #: src/processors/loginprotect_intent.php:294
6082
- msgid "What is this?"
6083
- msgstr ""
6084
-
6085
- #: src/processors/loginprotect_intent.php:296
6086
- #, php-format
6087
- msgid "%s Login Verification"
6088
- msgstr ""
6089
-
6090
- #: src/processors/loginprotect_intent.php:298
6091
- #, php-format
6092
- msgid "Don't ask again on this browser for %s."
6093
- msgstr ""
6094
-
6095
- #: src/processors/loginprotect_intent.php:299
6096
- #, php-format
6097
- msgid "%s day"
6098
- msgid_plural "%s days"
6099
- msgstr[0] ""
6100
- msgstr[1] ""
6101
-
6102
- #: src/processors/loginprotect_twofactorauth.php:42
6103
- #: src/processors/loginprotect_twofactorauth.php:50
6104
- msgid "Email Auth"
6105
- msgstr ""
6106
-
6107
- #: src/processors/loginprotect_twofactorauth.php:80
6108
- msgid "This code was just sent to your registered Email address."
6109
- msgstr ""
6110
-
6111
- #: src/processors/loginprotect_twofactorauth.php:81
6112
- msgid "Email OTP"
6113
- msgstr ""
6114
-
6115
- #: src/processors/loginprotect_twofactorauth.php:154
6116
- msgid "Someone attempted to login into this WordPress site using your account."
6117
- msgstr ""
6118
-
6119
- #: src/processors/loginprotect_twofactorauth.php:155
6120
- msgid "Login requires verification with the following code."
6121
- msgstr ""
6122
-
6123
- #: src/processors/loginprotect_twofactorauth.php:157
6124
- #, php-format
6125
- msgid "Verification Code: %s"
6126
- msgstr ""
6127
-
6128
- #: src/processors/loginprotect_twofactorauth.php:167
6129
- msgid "Why no login link?"
6130
- msgstr ""
6131
-
6132
- #: src/processors/loginprotect_twofactorauth.php:171
6133
- msgid "Two-Factor Login Verification"
6134
- msgstr ""
6135
-
6136
- #: src/processors/loginprotect_twofactorauth.php:176
6137
- #, php-format
6138
- msgid ""
6139
- "User \"%s\" was sent an email to verify their Identity using Two-Factor "
6140
- "Login Auth for IP address \"%s\"."
6141
- msgstr ""
6142
-
6143
- #: src/processors/loginprotect_twofactorauth.php:180
6144
- #, php-format
6145
- msgid ""
6146
- "Tried to send email to User \"%s\" to verify their identity using Two-Factor "
6147
- "Login Auth for IP address \"%s\", but email sending failed."
6148
- msgstr ""
6149
-
6150
- #: src/processors/loginprotect_twofactorauth.php:203
6151
- msgid "Check the box to enable email-based login authentication."
6152
- msgstr ""
6153
-
6154
- #: src/processors/loginprotect_wplogin.php:52
6155
- msgid ""
6156
- "Your login URL is unchanged because the Rename WP Login feature is not "
6157
- "currently supported on WPMS."
6158
- msgstr ""
6159
-
6160
- #: src/processors/loginprotect_wplogin.php:56
6161
- #: src/processors/loginprotect_wplogin.php:60
6162
- #, php-format
6163
- msgid ""
6164
- "Can not use the Rename WP Login feature because you have the \"%s\" plugin "
6165
- "installed and it is active."
6166
- msgstr ""
6167
-
6168
- #: src/processors/loginprotect_wplogin.php:64
6169
- #, php-format
6170
- msgid ""
6171
- "Can not use the Rename WP Login feature because you have not enabled %s."
6172
- msgstr ""
6173
-
6174
- #: src/processors/loginprotect_wplogin.php:68
6175
- #, php-format
6176
- msgid ""
6177
- "Can not use the Rename WP Login feature because you have chosen a path (\"%s"
6178
- "\") that is reserved on your WordPress site."
6179
- msgstr ""
6180
-
6181
- #: src/processors/loginprotect_wplogin.php:94
6182
- msgid ""
6183
- "Your login URL is unchanged because your current hosting/PHP configuration "
6184
- "cannot parse the necessary information."
6185
- msgstr ""
6186
-
6187
- #: src/processors/loginprotect_yubikey.php:33
6188
- msgid "This is your unique Yubikey Device ID."
6189
- msgstr ""
6190
-
6191
- #: src/processors/loginprotect_yubikey.php:34
6192
- #: src/processors/loginprotect_yubikey.php:41
6193
- msgid "Pro Only"
6194
- msgstr ""
6195
-
6196
- #: src/processors/loginprotect_yubikey.php:35
6197
- msgid "Multiple Yubikey Device IDs are separated by a comma."
6198
- msgstr ""
6199
-
6200
- #: src/processors/loginprotect_yubikey.php:36
6201
- msgid "Provide a One Time Password from your Yubikey."
6202
- msgstr ""
6203
-
6204
- #: src/processors/loginprotect_yubikey.php:38
6205
- msgid "This will remove the Yubikey Device ID from your profile."
6206
- msgstr ""
6207
-
6208
- #: src/processors/loginprotect_yubikey.php:39
6209
- msgid "This will add the Yubikey Device ID to your profile."
6210
- msgstr ""
6211
-
6212
- #: src/processors/loginprotect_yubikey.php:41
6213
- msgid ""
6214
- "If you provide a OTP from an alternative Yubikey device, it will also be "
6215
- "added to your profile."
6216
- msgstr ""
6217
-
6218
- #: src/processors/loginprotect_yubikey.php:43
6219
- msgid "Yubikey ID"
6220
- msgstr ""
6221
-
6222
- #: src/processors/loginprotect_yubikey.php:44
6223
- #: src/processors/loginprotect_yubikey.php:240
6224
- #: src/processors/loginprotect_yubikey.php:248
6225
- #: src/processors/loginprotect_yubikey.php:266
6226
- msgid "Yubikey OTP"
6227
- msgstr ""
6228
-
6229
- #: src/processors/loginprotect_yubikey.php:45
6230
- msgid "Yubikey Authentication"
6231
- msgstr ""
6232
-
6233
- #: src/processors/loginprotect_yubikey.php:47
6234
- msgid "Yubikey"
6235
- msgstr ""
6236
-
6237
- #: src/processors/loginprotect_yubikey.php:99
6238
- #, php-format
6239
- msgid "%s was removed from your profile."
6240
- msgstr ""
6241
-
6242
- #: src/processors/loginprotect_yubikey.php:100
6243
- #: src/processors/loginprotect_yubikey.php:107
6244
- msgid "Yubikey Device"
6245
- msgstr ""
6246
-
6247
- #: src/processors/loginprotect_yubikey.php:106
6248
- #, php-format
6249
- msgid "%s was added to your profile."
6250
- msgstr ""
6251
-
6252
- #: src/processors/loginprotect_yubikey.php:112
6253
- msgid "No changes were made to your Yubikey configuration"
6254
- msgstr ""
6255
-
6256
- #: src/processors/loginprotect_yubikey.php:264
6257
- msgid "Use your Yubikey to generate a new code."
6258
- msgstr ""
6259
-
6260
- #: src/processors/loginprotect_yubikey.php:341
6261
- #, php-format
6262
- msgid ""
6263
- "User \"%s\" logged in without a Yubikey One Time Password because no "
6264
- "username-yubikey pair was found for this user."
6265
- msgstr ""
6266
-
6267
- #: src/processors/loginprotect_yubikey.php:348
6268
- #, php-format
6269
- msgid ""
6270
- "User \"%s\" attempted to login but Yubikey ID \"%s\" used was not in list of "
6271
- "authorised keys."
6272
- msgstr ""
6273
-
6274
- #: src/processors/loginprotect_yubikey.php:354
6275
- #: src/processors/loginprotect_yubikey.php:372
6276
- #, php-format
6277
- msgid "ERROR: %s"
6278
- msgstr ""
6279
-
6280
- #: src/processors/loginprotect_yubikey.php:354
6281
- msgid ""
6282
- "The Yubikey provided is not on the list of permitted keys for this user."
6283
- msgstr ""
6284
-
6285
- #: src/processors/loginprotect_yubikey.php:361
6286
- #, php-format
6287
- msgid ""
6288
- "User \"%s\" successfully logged in using a validated Yubikey One Time "
6289
- "Password."
6290
- msgstr ""
6291
-
6292
- #: src/processors/loginprotect_yubikey.php:367
6293
- #, php-format
6294
- msgid ""
6295
- "User \"%s\" attempted to login but Yubikey One Time Password failed to "
6296
- "validate due to invalid Yubi API response.\"."
6297
- msgstr ""
6298
-
6299
- #: src/processors/loginprotect_yubikey.php:372
6300
- msgid "The Yubikey authentication was not validated successfully."
6301
- msgstr ""
6302
-
6303
- #: src/processors/plugin.php:206
6304
- #, php-format
6305
- msgid "%s plugin is not currently processing requests"
6306
- msgstr ""
6307
-
6308
- #: src/processors/plugin.php:208
6309
- #, php-format
6310
- msgid "Please delete the \"%s\" file to reactivate the %s protection"
6311
- msgstr ""
6312
-
6313
- #: src/processors/plugin.php:212
6314
- msgid "Click here to automatically delete the file"
6315
- msgstr ""
6316
-
6317
- #: src/processors/plugin.php:239
6318
- msgid "Your Name"
6319
- msgstr ""
6320
-
6321
- #: src/processors/plugin.php:240
6322
- msgid "Your Email"
6323
- msgstr ""
6324
-
6325
- #: src/processors/plugin_badge.php:40
6326
- #, php-format
6327
- msgid "%s is provided by %s"
6328
- msgstr ""
6329
-
6330
- #: src/processors/plugin_badge.php:45
6331
- #, php-format
6332
- msgid "Days Installed: %s"
6333
- msgstr ""
6334
-
6335
- #: src/processors/plugin_badgewidget.php:20
6336
- #, php-format
6337
- msgid "%s Plugin Badge"
6338
- msgstr ""
6339
-
6340
- #: src/processors/plugin_badgewidget.php:22
6341
- #, php-format
6342
- msgid ""
6343
- "You can now help spread the word about the %s plugin anywhere on your site"
6344
- msgstr ""
6345
-
6346
- #: src/processors/plugin_badgewidget.php:55
6347
- msgid "Site Secured"
6348
- msgstr ""
6349
-
6350
- #: src/processors/plugin_importexport.php:45
6351
- msgid "Sent notifications to whitelisted sites for required options import."
6352
- msgstr ""
6353
-
6354
- #: src/processors/plugin_importexport.php:119
6355
- msgid "Received notification that options import required."
6356
- msgstr ""
6357
-
6358
- #: src/processors/plugin_importexport.php:120
6359
- #, php-format
6360
- msgid "Current master site: %s"
6361
- msgstr ""
6362
-
6363
- #: src/processors/plugin_importexport.php:148
6364
- #, php-format
6365
- msgid "Not currently running %s Pro."
6366
- msgstr ""
6367
-
6368
- #: src/processors/plugin_importexport.php:152
6369
- msgid "Export of options is currently disabled."
6370
- msgstr ""
6371
-
6372
- #: src/processors/plugin_importexport.php:156
6373
- msgid "Handshake verification failed."
6374
- msgstr ""
6375
-
6376
- #: src/processors/plugin_importexport.php:165
6377
- #, php-format
6378
- msgid "Options exported to site %s."
6379
- msgstr ""
6380
-
6381
- #: src/processors/plugin_importexport.php:171
6382
- #, php-format
6383
- msgid "Site added to export white list: %s."
6384
- msgstr ""
6385
-
6386
- #: src/processors/plugin_importexport.php:314
6387
- #, php-format
6388
- msgid "Options imported from %s."
6389
- msgstr ""
6390
-
6391
- #: src/processors/plugin_importexport.php:329
6392
- #, php-format
6393
- msgid "Master Site URL set to %s."
6394
- msgstr ""
6395
-
6396
- #: src/processors/plugin_tracking.php:31
6397
- #, php-format
6398
- msgid "Make %s even better by sharing usage info?"
6399
- msgstr ""
6400
-
6401
- #: src/processors/plugin_tracking.php:32
6402
- #, php-format
6403
- msgid "We're hoping to understand how %s is configured and used."
6404
- msgstr ""
6405
-
6406
- #: src/processors/plugin_tracking.php:33
6407
- msgid "We'd like to understand how effective it is on a global scale."
6408
- msgstr ""
6409
-
6410
- #: src/processors/plugin_tracking.php:34
6411
- msgid ""
6412
- "The data sent is always completely anonymous and we can never track you or "
6413
- "your site."
6414
- msgstr ""
6415
-
6416
- #: src/processors/plugin_tracking.php:35
6417
- msgid "It can be turned-off at any time within the plugin options."
6418
- msgstr ""
6419
-
6420
- #: src/processors/plugin_tracking.php:36
6421
- msgid "Click to see the RAW data that would be sent"
6422
- msgstr ""
6423
-
6424
- #: src/processors/plugin_tracking.php:39
6425
- msgid "Absolutely"
6426
- msgstr ""
6427
-
6428
- #: src/processors/sessions.php:109
6429
- msgid "You're already logged-in."
6430
- msgstr ""
6431
-
6432
- #: src/processors/sessions.php:114
6433
- msgid "Go To Admin"
6434
- msgstr ""
6435
-
6436
- #: src/processors/statistics.php:202
6437
- msgid "Login Verified"
6438
- msgstr ""
6439
-
6440
- #: src/processors/statistics.php:204
6441
- msgid "IP Auto Black-Listed"
6442
- msgstr ""
6443
-
6444
- #: src/processors/statistics.php:205
6445
- msgid "Total Transgressions"
6446
- msgstr ""
6447
-
6448
- #: src/processors/statistics.php:209
6449
- #, php-format
6450
- msgid "%s Statistics"
6451
- msgstr ""
6452
-
6453
- #: src/processors/user_management.php:127
6454
- msgid "Last Login"
6455
- msgstr ""
6456
-
6457
- #: src/processors/user_management.php:149
6458
- msgid "Not Recorded"
6459
- msgstr ""
6460
-
6461
- #: src/processors/user_management.php:199
6462
- #, php-format
6463
- msgid ""
6464
- "As requested, %s is notifying you of a successful %s login to a WordPress "
6465
- "site that you manage."
6466
- msgstr ""
6467
-
6468
- #: src/processors/user_management.php:204
6469
- #, php-format
6470
- msgid "Important: %s"
6471
- msgstr ""
6472
-
6473
- #: src/processors/user_management.php:204
6474
- msgid ""
6475
- "This user may now be subject to additional Two-Factor Authentication before "
6476
- "completing their login."
6477
- msgstr ""
6478
-
6479
- #: src/processors/user_management.php:206
6480
- msgid "Details for this user are below:"
6481
- msgstr ""
6482
-
6483
- #: src/processors/user_management.php:212
6484
- #: src/processors/user_management.php:242
6485
- msgid "Thanks."
6486
- msgstr ""
6487
-
6488
- #: src/processors/user_management.php:220
6489
- #: src/processors/user_management.php:250
6490
- msgid "Notice"
6491
- msgstr ""
6492
-
6493
- #: src/processors/user_management.php:220
6494
- #, php-format
6495
- msgid "%s Just Logged Into %s"
6496
- msgstr ""
6497
-
6498
- #: src/processors/user_management.php:231
6499
- #, php-format
6500
- msgid "%s is notifying you of a successful login to your WordPress account."
6501
- msgstr ""
6502
-
6503
- #: src/processors/user_management.php:234
6504
- msgid "Details for this login are below:"
6505
- msgstr ""
6506
-
6507
- #: src/processors/user_management.php:240
6508
- msgid ""
6509
- "If this is unexpected or suspicious, please contact your site administrator "
6510
- "immediately."
6511
- msgstr ""
6512
-
6513
- #: src/processors/user_management.php:250
6514
- msgid "A login to your WordPress account just occurred"
6515
- msgstr ""
6516
-
6517
- #: src/processors/usermanagement_passwords.php:90
6518
- msgid "Forcing user to update expired password."
6519
- msgstr ""
6520
-
6521
- #: src/processors/usermanagement_passwords.php:92
6522
- #, php-format
6523
- msgid "Your password has expired (%s days)."
6524
- msgstr ""
6525
-
6526
- #: src/processors/usermanagement_passwords.php:108
6527
- msgid "Forcing user to update password that fails to meet policies."
6528
- msgstr ""
6529
-
6530
- #: src/processors/usermanagement_passwords.php:112
6531
- msgid ""
6532
- "Your password doesn't meet requirements set by your security administrator."
6533
- msgstr ""
6534
-
6535
- #: src/processors/usermanagement_passwords.php:122
6536
- #: src/processors/usermanagement_passwords.php:145
6537
- msgid ""
6538
- "For your security, please use the password section below to update your "
6539
- "password."
6540
- msgstr ""
6541
-
6542
- #: src/processors/usermanagement_passwords.php:172
6543
- msgid ""
6544
- "Your security administrator has imposed requirements for password quality."
6545
- msgstr ""
6546
-
6547
- #: src/processors/usermanagement_passwords.php:173
6548
- msgid "Reason"
6549
- msgstr ""
6550
-
6551
- #: src/processors/usermanagement_passwords.php:181
6552
- msgid "Blocked attempted password update that failed policy requirements."
6553
- msgstr ""
6554
-
6555
- #: src/processors/usermanagement_passwords.php:238
6556
- #, php-format
6557
- msgid "Password length (%s) too short (min: %s characters)"
6558
- msgstr ""
6559
-
6560
- #: src/processors/usermanagement_passwords.php:300
6561
- #: src/processors/usermanagement_passwords.php:367
6562
- msgid "Please use a different password."
6563
- msgstr ""
6564
-
6565
- #: src/processors/usermanagement_passwords.php:301
6566
- msgid "This password has already been pwned."
6567
- msgstr ""
6568
-
6569
- #: src/processors/usermanagement_passwords.php:305
6570
- #: src/processors/usermanagement_passwords.php:372
6571
- #, php-format
6572
- msgid "%s times"
6573
- msgstr ""
6574
-
6575
- #: src/processors/usermanagement_passwords.php:368
6576
- msgid "This password has been pwned."
6577
- msgstr ""
6578
-
6579
- #: src/processors/usermanagement_sessions.php:278
6580
- msgid "Your session has expired."
6581
- msgstr ""
6582
-
6583
- #: src/processors/usermanagement_sessions.php:282
6584
- msgid "Your session was idle for too long."
6585
- msgstr ""
6586
-
6587
- #: src/processors/usermanagement_sessions.php:286
6588
- msgid "Your session was locked to another IP Address."
6589
- msgstr ""
6590
-
6591
- #: src/processors/usermanagement_sessions.php:290
6592
- #, php-format
6593
- msgid "You do not currently have a %s user session."
6594
- msgstr ""
6595
-
6596
- #: src/processors/usermanagement_sessions.php:295
6597
- msgid "An administrator has terminated this session."
6598
- msgstr ""
6599
-
6600
- #: src/processors/usermanagement_sessions.php:299
6601
- msgid "Not a user."
6602
- msgstr ""
6603
-
6604
- #: src/processors/usermanagement_sessions.php:303
6605
- msgid "Your session was terminated."
6606
- msgstr ""
6607
-
6608
- #: src/processors/usermanagement_sessions.php:307
6609
- msgid "Please login again."
6610
- msgstr ""
6611
-
6612
- #: src/wizards/base.php:374
6613
- #, php-format
6614
- msgid "%s Wizard"
6615
- msgstr ""
6616
-
6617
- #: src/wizards/base.php:517
6618
- msgid "No Access"
6619
- msgstr ""
6620
-
6621
- #: src/wizards/base_wpsf.php:113
6622
- msgid "Security Admin Key was not correct."
6623
- msgstr ""
6624
-
6625
- #: src/wizards/hack_protect.php:18
6626
- #, php-format
6627
- msgid "%s Hack Protect Wizard"
6628
- msgstr ""
6629
-
6630
- #: src/wizards/hack_protect.php:302
6631
- msgid "All changes detected have been ignored."
6632
- msgstr ""
6633
-
6634
- #: src/wizards/hack_protect.php:309
6635
- msgid "The plugin has been deactivated."
6636
- msgstr ""
6637
-
6638
- #: src/wizards/login_protect.php:18
6639
- #, php-format
6640
- msgid "%s Multi-Factor Authentication Wizard"
6641
- msgstr ""
6642
-
6643
- #: src/wizards/login_protect.php:62
6644
- msgid "Invalid email address"
6645
- msgstr ""
6646
-
6647
- #: src/wizards/login_protect.php:69
6648
- msgid "Verification email sent (please check your email including your SPAM)."
6649
- msgstr ""
6650
-
6651
- #: src/wizards/login_protect.php:70
6652
- msgid ""
6653
- "Enter the code from the email into the form above and click the button to "
6654
- "verify."
6655
- msgstr ""
6656
-
6657
- #: src/wizards/login_protect.php:119
6658
- msgid "Code was empty."
6659
- msgstr ""
6660
-
6661
- #: src/wizards/login_protect.php:146
6662
- msgid "Google Authenticator was enabled for the site."
6663
- msgstr ""
6664
-
6665
- #: src/wizards/login_protect.php:161
6666
- #, php-format
6667
- msgid "Multi-Factor Authentication was %s for the site."
6668
- msgstr ""
6669
-
6670
- #: src/wizards/login_protect.php:162
6671
- msgid "enabled"
6672
- msgstr ""
6673
-
6674
- #: src/wizards/login_protect.php:162
6675
- msgid "disabled"
6676
- msgstr ""
6677
-
6678
- #: src/wizards/plugin.php:18
6679
- #, php-format
6680
- msgid "%s Welcome Wizard"
6681
- msgstr ""
6682
-
6683
- #: src/wizards/plugin.php:252
6684
- msgid "Where to find Shield"
6685
- msgstr ""
6686
-
6687
- #: src/wizards/plugin.php:253
6688
- msgid "Accessing Each Module"
6689
- msgstr ""
6690
-
6691
- #: src/wizards/plugin.php:254
6692
- msgid "Accessing Options"
6693
- msgstr ""
6694
-
6695
- #: src/wizards/plugin.php:255
6696
- msgid "Launching Wizards"
6697
- msgstr ""
6698
-
6699
- #: src/wizards/plugin.php:256
6700
- msgid "Finding Help"
6701
- msgstr ""
6702
-
6703
- #: src/wizards/plugin.php:257
6704
- msgid "Actions (not Options)"
6705
- msgstr ""
6706
-
6707
- #: src/wizards/plugin.php:258
6708
- msgid "Help For Each Option"
6709
- msgstr ""
6710
-
6711
- #: src/wizards/plugin.php:259
6712
- msgid "Module On/Off Switch"
6713
- msgstr ""
6714
-
6715
- #: src/wizards/plugin.php:262
6716
- #, php-format
6717
- msgid "You'll find the main %s settings in the left-hand WordPress menu."
6718
- msgstr ""
6719
-
6720
- #: src/wizards/plugin.php:263
6721
- msgid ""
6722
- "Shield is split up into independent modules for accessing the options of "
6723
- "each feature."
6724
- msgstr ""
6725
-
6726
- #: src/wizards/plugin.php:264
6727
- msgid ""
6728
- "When you load a module, you can access the options by clicking on the "
6729
- "Options Panel link."
6730
- msgstr ""
6731
-
6732
- #: src/wizards/plugin.php:265
6733
- msgid "Launch helpful walk-through wizards for modules that have them."
6734
- msgstr ""
6735
-
6736
- #: src/wizards/plugin.php:266
6737
- msgid ""
6738
- "Each module also has a brief overview help section - there is more in-depth "
6739
- "help available."
6740
- msgstr ""
6741
-
6742
- #: src/wizards/plugin.php:267
6743
- msgid ""
6744
- "Certain modules have extra actions and features, e.g. Audit Trail Viewer."
6745
- msgstr ""
6746
-
6747
- #: src/wizards/plugin.php:268
6748
- msgid "Note: Not all modules have the actions section"
6749
- msgstr ""
6750
-
6751
- #: src/wizards/plugin.php:269
6752
- msgid ""
6753
- "Each module has an Enable/Disable checkbox to turn on/off all processing for "
6754
- "that module"
6755
- msgstr ""
6756
-
6757
- #: src/wizards/plugin.php:270
6758
- msgid ""
6759
- "To help you understand each option, most of them have a more info link, and/"
6760
- "or a blog link, to read more"
6761
- msgstr ""
6762
-
6763
- #: src/wizards/plugin.php:365
6764
- msgid "Success!"
6765
- msgstr ""
6766
-
6767
- #: src/wizards/plugin.php:386
6768
- msgid "License was found and successfully installed."
6769
- msgstr ""
6770
-
6771
- #: src/wizards/plugin.php:389
6772
- msgid "License could not be found."
6773
- msgstr ""
6774
-
6775
- #: src/wizards/plugin.php:419
6776
- msgid "Options imported successfully to your site."
6777
- msgstr ""
6778
-
6779
- #: src/wizards/plugin.php:420
6780
- msgid "Secret key was empty."
6781
- msgstr ""
6782
-
6783
- #: src/wizards/plugin.php:421
6784
- msgid "Secret key was not 40 characters long."
6785
- msgstr ""
6786
-
6787
- #: src/wizards/plugin.php:422
6788
- msgid ""
6789
- "Secret key contains invalid characters - it should be letters and numbers "
6790
- "only."
6791
- msgstr ""
6792
-
6793
- #: src/wizards/plugin.php:423
6794
- msgid "Source site URL could not be parsed correctly."
6795
- msgstr ""
6796
-
6797
- #: src/wizards/plugin.php:424
6798
- msgid "Could not parse the response from the site."
6799
- msgstr ""
6800
-
6801
- #: src/wizards/plugin.php:425
6802
- msgid "Check the secret key is correct for the remote site."
6803
- msgstr ""
6804
-
6805
- #: src/wizards/plugin.php:426
6806
- msgid "Failure response returned from the site."
6807
- msgstr ""
6808
-
6809
- #: src/wizards/plugin.php:427
6810
- #, php-format
6811
- msgid "Remote site responded with - %s"
6812
- msgstr ""
6813
-
6814
- #: src/wizards/plugin.php:428
6815
- msgid "Data returned from the site was empty."
6816
- msgstr ""
6817
-
6818
- #: src/wizards/plugin.php:462
6819
- msgid "Security Admin setup was successful."
6820
- msgstr ""
6821
-
6822
- #: src/wizards/plugin.php:480 src/wizards/plugin.php:513
6823
- #: src/wizards/plugin.php:546 src/wizards/plugin.php:584
6824
- #: src/wizards/plugin.php:692
6825
- msgid "No changes were made as no option was selected"
6826
- msgstr ""
6827
-
6828
- #: src/wizards/plugin.php:493 src/wizards/plugin.php:526
6829
- #: src/wizards/plugin.php:562 src/wizards/plugin.php:708
6830
- msgid "Enabled"
6831
- msgstr ""
6832
-
6833
- #: src/wizards/plugin.php:493 src/wizards/plugin.php:526
6834
- #: src/wizards/plugin.php:562 src/wizards/plugin.php:708
6835
- msgid "Disabled"
6836
- msgstr ""
6837
-
6838
- #: src/wizards/plugin.php:497 src/wizards/plugin.php:530
6839
- #: src/wizards/plugin.php:566 src/wizards/plugin.php:712
6840
- #, php-format
6841
- msgid "%s setting could not be changed at this time."
6842
- msgstr ""
6843
-
6844
- #: src/wizards/plugin.php:594 src/wizards/plugin.php:604
6845
- msgid "Preferences have been saved."
6846
- msgstr ""
6847
-
6848
- #: src/wizards/plugin.php:657
6849
- msgid "Search item added."
6850
- msgstr ""
6851
-
6852
- #: src/wizards/plugin.php:674
6853
- msgid "All entries were deleted"
6854
- msgstr ""
6855
-
6856
- #: src/wizards/plugin.php:677
6857
- msgid "Please check the box to confirm deletion."
6858
- msgstr ""
1
+ msgid ""
2
+ msgstr ""
3
+ "Project-Id-Version: WPSF v2.0\n"
4
+ "POT-Creation-Date: 2018-09-19 17:21+0100\n"
5
+ "PO-Revision-Date: 2018-09-19 17:21+0100\n"
6
+ "Last-Translator: \n"
7
+ "Language-Team: \n"
8
+ "Language: en_GB\n"
9
+ "MIME-Version: 1.0\n"
10
+ "Content-Type: text/plain; charset=UTF-8\n"
11
+ "Content-Transfer-Encoding: 8bit\n"
12
+ "X-Generator: Poedit 2.1.1\n"
13
+ "X-Poedit-KeywordsList: _wpsf__;gettext;gettext_noop;_wpsf_e;_n;_n:1,2\n"
14
+ "X-Poedit-Basepath: ..\n"
15
+ "X-Poedit-SourceCharset: UTF-8\n"
16
+ "Plural-Forms: nplurals=2; plural=(n != 1);\n"
17
+ "X-Poedit-SearchPath-0: .\n"
18
+ "X-Poedit-SearchPathExcluded-0: .git\n"
19
+ "X-Poedit-SearchPathExcluded-1: .idea\n"
20
+
21
+ #: init.php:47
22
+ msgid "Upgrade Now To Keep Your Security Up-To-Date With The Latest Features."
23
+ msgstr ""
24
+
25
+ #: src/common/Components/Tables/AuditTrailTable.php:26
26
+ #: src/common/Components/Tables/LiveTrafficTable.php:15
27
+ msgid "Refresh"
28
+ msgstr ""
29
+
30
+ #: src/features/admin_access_restriction.php:72
31
+ #: src/features/admin_access_restriction.php:106
32
+ msgid "Security Admin Access Key Accepted."
33
+ msgstr ""
34
+
35
+ #: src/features/admin_access_restriction.php:73
36
+ #: src/features/admin_access_restriction.php:107
37
+ msgid "Please wait"
38
+ msgstr ""
39
+
40
+ #: src/features/admin_access_restriction.php:76
41
+ #: src/features/admin_access_restriction.php:110
42
+ msgid "Failed to process key - you may need to re-login to WordPress."
43
+ msgstr ""
44
+
45
+ #: src/features/admin_access_restriction.php:80
46
+ #: src/features/admin_access_restriction.php:114
47
+ msgid "Error - Invalid Key"
48
+ msgstr ""
49
+
50
+ #: src/features/admin_access_restriction.php:131
51
+ msgid "Enter your Security Admin Access Key"
52
+ msgstr ""
53
+
54
+ #: src/features/admin_access_restriction.php:266
55
+ msgid "Security Admin key accepted."
56
+ msgstr ""
57
+
58
+ #: src/features/admin_access_restriction.php:269
59
+ msgid "Security Admin key not accepted."
60
+ msgstr ""
61
+
62
+ #: src/features/admin_access_restriction.php:439
63
+ msgid "Security Admin Protection"
64
+ msgstr ""
65
+
66
+ #: src/features/admin_access_restriction.php:448
67
+ msgid "The Security Admin protection is not active."
68
+ msgstr ""
69
+
70
+ #: src/features/admin_access_restriction.php:452
71
+ #: src/features/audit_trail.php:304 src/features/base_wpsf.php:169
72
+ #: src/features/base_wpsf.php:209 src/features/hack_protect.php:656
73
+ #: src/features/hack_protect.php:677 src/features/hack_protect.php:698
74
+ #: src/features/hack_protect.php:719 src/features/insights.php:438
75
+ #: src/features/lockdown.php:62 src/features/user_management.php:288
76
+ msgid "Options"
77
+ msgstr ""
78
+
79
+ #: src/features/admin_access_restriction.php:453
80
+ msgid "Security Admin should be turned-on to protect your security settings."
81
+ msgstr ""
82
+
83
+ #: src/features/admin_access_restriction.php:483
84
+ #: src/features/audit_trail.php:290 src/features/autoupdates.php:186
85
+ #: src/features/comments_filter.php:103 src/features/firewall.php:59
86
+ #: src/features/hack_protect.php:759 src/features/headers.php:120
87
+ #: src/features/ips.php:302 src/features/lockdown.php:85
88
+ #: src/features/login_protect.php:604 src/features/sessions.php:51
89
+ #: src/features/statistics.php:51 src/features/statistics.php:60
90
+ #: src/features/traffic.php:465 src/features/user_management.php:311
91
+ #, php-format
92
+ msgid "Enable Module: %s"
93
+ msgstr ""
94
+
95
+ #: src/features/admin_access_restriction.php:485
96
+ #: src/features/admin_access_restriction.php:495
97
+ #: src/features/admin_access_restriction.php:504
98
+ #: src/features/admin_access_restriction.php:514
99
+ #: src/features/audit_trail.php:292 src/features/audit_trail.php:301
100
+ #: src/features/audit_trail.php:310 src/features/autoupdates.php:188
101
+ #: src/features/autoupdates.php:197 src/features/autoupdates.php:206
102
+ #: src/features/autoupdates.php:216 src/features/autoupdates.php:226
103
+ #: src/features/base_wpsf.php:322 src/features/comments_filter.php:105
104
+ #: src/features/comments_filter.php:114 src/features/comments_filter.php:124
105
+ #: src/features/comments_filter.php:133 src/features/firewall.php:61
106
+ #: src/features/hack_protect.php:754 src/features/hack_protect.php:761
107
+ #: src/features/hack_protect.php:770 src/features/hack_protect.php:780
108
+ #: src/features/hack_protect.php:789 src/features/hack_protect.php:798
109
+ #: src/features/hack_protect.php:808 src/features/hack_protect.php:818
110
+ #: src/features/headers.php:122 src/features/headers.php:131
111
+ #: src/features/headers.php:140 src/features/ips.php:304
112
+ #: src/features/ips.php:314 src/features/ips.php:324
113
+ #: src/features/license.php:691 src/features/lockdown.php:87
114
+ #: src/features/lockdown.php:96 src/features/lockdown.php:105
115
+ #: src/features/lockdown.php:114 src/features/login_protect.php:607
116
+ #: src/features/login_protect.php:616 src/features/login_protect.php:627
117
+ #: src/features/login_protect.php:636 src/features/login_protect.php:645
118
+ #: src/features/login_protect.php:655 src/features/login_protect.php:664
119
+ #: src/features/login_protect.php:673 src/features/plugin.php:733
120
+ #: src/features/plugin.php:740 src/features/plugin.php:755
121
+ #: src/features/sessions.php:53 src/features/statistics.php:53
122
+ #: src/features/statistics.php:62 src/features/statistics.php:71
123
+ #: src/features/traffic.php:467 src/features/traffic.php:476
124
+ #: src/features/user_management.php:313 src/features/user_management.php:323
125
+ #: src/features/user_management.php:332 src/features/user_management.php:341
126
+ #: src/features/user_management.php:350
127
+ msgid "Purpose"
128
+ msgstr ""
129
+
130
+ #: src/features/admin_access_restriction.php:485
131
+ #: src/features/admin_access_restriction.php:495
132
+ msgid ""
133
+ "Restricts access to this plugin preventing unauthorized changes to your "
134
+ "security settings."
135
+ msgstr ""
136
+
137
+ #: src/features/admin_access_restriction.php:486
138
+ #: src/features/admin_access_restriction.php:496
139
+ #: src/features/admin_access_restriction.php:505
140
+ #: src/features/audit_trail.php:293 src/features/audit_trail.php:302
141
+ #: src/features/audit_trail.php:311 src/features/autoupdates.php:189
142
+ #: src/features/autoupdates.php:198 src/features/autoupdates.php:208
143
+ #: src/features/autoupdates.php:217 src/features/base_wpsf.php:323
144
+ #: src/features/comments_filter.php:106 src/features/comments_filter.php:115
145
+ #: src/features/comments_filter.php:125 src/features/comments_filter.php:134
146
+ #: src/features/firewall.php:62 src/features/firewall.php:71
147
+ #: src/features/firewall.php:82 src/features/firewall.php:91
148
+ #: src/features/hack_protect.php:762 src/features/hack_protect.php:771
149
+ #: src/features/hack_protect.php:781 src/features/hack_protect.php:790
150
+ #: src/features/hack_protect.php:799 src/features/hack_protect.php:809
151
+ #: src/features/hack_protect.php:819 src/features/headers.php:123
152
+ #: src/features/headers.php:132 src/features/headers.php:141
153
+ #: src/features/ips.php:305 src/features/ips.php:315 src/features/ips.php:325
154
+ #: src/features/license.php:692 src/features/lockdown.php:88
155
+ #: src/features/lockdown.php:97 src/features/lockdown.php:106
156
+ #: src/features/lockdown.php:115 src/features/login_protect.php:608
157
+ #: src/features/login_protect.php:617 src/features/login_protect.php:628
158
+ #: src/features/login_protect.php:646 src/features/login_protect.php:665
159
+ #: src/features/login_protect.php:776 src/features/plugin.php:757
160
+ #: src/features/sessions.php:54 src/features/statistics.php:54
161
+ #: src/features/statistics.php:63 src/features/statistics.php:72
162
+ #: src/features/traffic.php:468 src/features/traffic.php:477
163
+ #: src/features/user_management.php:314 src/features/user_management.php:324
164
+ #: src/features/user_management.php:333 src/features/user_management.php:342
165
+ #: src/features/user_management.php:351
166
+ msgid "Recommendation"
167
+ msgstr ""
168
+
169
+ #: src/features/admin_access_restriction.php:486
170
+ #: src/features/audit_trail.php:293 src/features/autoupdates.php:189
171
+ #: src/features/comments_filter.php:106 src/features/firewall.php:62
172
+ #: src/features/hack_protect.php:762 src/features/hack_protect.php:771
173
+ #: src/features/hack_protect.php:781 src/features/hack_protect.php:790
174
+ #: src/features/hack_protect.php:799 src/features/ips.php:305
175
+ #: src/features/ips.php:315 src/features/lockdown.php:88
176
+ #: src/features/login_protect.php:608 src/features/sessions.php:54
177
+ #: src/features/statistics.php:54 src/features/statistics.php:63
178
+ #: src/features/user_management.php:314
179
+ #, php-format
180
+ msgid "Keep the %s feature turned on."
181
+ msgstr ""
182
+
183
+ #: src/features/admin_access_restriction.php:486
184
+ #: src/features/admin_access_restriction.php:548 src/features/plugin.php:945
185
+ #: src/features/plugin.php:947 src/wizards/base_wpsf.php:65
186
+ msgid "Security Admin"
187
+ msgstr ""
188
+
189
+ #: src/features/admin_access_restriction.php:487
190
+ msgid "You need to also enter a new Access Key to enable this feature."
191
+ msgstr ""
192
+
193
+ #: src/features/admin_access_restriction.php:489
194
+ #: src/features/audit_trail.php:295 src/features/autoupdates.php:191
195
+ #: src/features/comments_filter.php:108 src/features/firewall.php:64
196
+ #: src/features/hack_protect.php:764 src/features/headers.php:125
197
+ #: src/features/ips.php:308 src/features/lockdown.php:90
198
+ #: src/features/login_protect.php:605 src/features/sessions.php:56
199
+ #: src/features/statistics.php:56 src/features/statistics.php:65
200
+ #: src/features/traffic.php:470 src/features/user_management.php:316
201
+ #, php-format
202
+ msgid "%s/%s Module"
203
+ msgstr ""
204
+
205
+ #: src/features/admin_access_restriction.php:489
206
+ #: src/features/admin_access_restriction.php:619
207
+ #: src/features/audit_trail.php:295 src/features/autoupdates.php:191
208
+ #: src/features/comments_filter.php:108 src/features/firewall.php:64
209
+ #: src/features/hack_protect.php:764 src/features/headers.php:125
210
+ #: src/features/ips.php:308 src/features/lockdown.php:90
211
+ #: src/features/login_protect.php:605 src/features/sessions.php:56
212
+ #: src/features/statistics.php:56 src/features/statistics.php:65
213
+ #: src/features/traffic.php:470 src/features/user_management.php:316
214
+ msgid "Enable"
215
+ msgstr ""
216
+
217
+ #: src/features/admin_access_restriction.php:489
218
+ #: src/features/audit_trail.php:295 src/features/autoupdates.php:191
219
+ #: src/features/comments_filter.php:108 src/features/firewall.php:64
220
+ #: src/features/hack_protect.php:764 src/features/headers.php:125
221
+ #: src/features/ips.php:308 src/features/lockdown.php:90
222
+ #: src/features/login_protect.php:605 src/features/sessions.php:56
223
+ #: src/features/statistics.php:56 src/features/statistics.php:65
224
+ #: src/features/traffic.php:470 src/features/user_management.php:316
225
+ msgid "Disable"
226
+ msgstr ""
227
+
228
+ #: src/features/admin_access_restriction.php:493
229
+ msgid "Security Admin Restriction Settings"
230
+ msgstr ""
231
+
232
+ #: src/features/admin_access_restriction.php:496
233
+ #: src/features/admin_access_restriction.php:505
234
+ #: src/features/comments_filter.php:115 src/features/comments_filter.php:134
235
+ #: src/features/login_protect.php:646 src/features/login_protect.php:665
236
+ #: src/features/plugin.php:758 src/features/user_management.php:324
237
+ #: src/features/user_management.php:333 src/features/user_management.php:342
238
+ #: src/features/user_management.php:351
239
+ msgid "Use of this feature is highly recommend."
240
+ msgstr ""
241
+
242
+ #: src/features/admin_access_restriction.php:498
243
+ msgid "Security Admin Settings"
244
+ msgstr ""
245
+
246
+ #: src/features/admin_access_restriction.php:502
247
+ msgid "Security Admin Restriction Zones"
248
+ msgstr ""
249
+
250
+ #: src/features/admin_access_restriction.php:504
251
+ msgid ""
252
+ "Restricts access to key WordPress areas for all users not authenticated with "
253
+ "the Security Admin Access system."
254
+ msgstr ""
255
+
256
+ #: src/features/admin_access_restriction.php:507
257
+ msgid "Access Restriction Zones"
258
+ msgstr ""
259
+
260
+ #: src/features/admin_access_restriction.php:511
261
+ #: src/features/admin_access_restriction.php:524
262
+ #: src/features/admin_access_restriction.php:619
263
+ msgid "White Label"
264
+ msgstr ""
265
+
266
+ #: src/features/admin_access_restriction.php:515
267
+ #, php-format
268
+ msgid "Rename and re-brand the %s plugin for your client site installations."
269
+ msgstr ""
270
+
271
+ #: src/features/admin_access_restriction.php:519
272
+ #: src/features/login_protect.php:756
273
+ #: src/processors/loginprotect_backupcodes.php:33
274
+ msgid "Important"
275
+ msgstr ""
276
+
277
+ #: src/features/admin_access_restriction.php:520
278
+ msgid "The Security Admin system must be active for these settings to apply."
279
+ msgstr ""
280
+
281
+ #: src/features/admin_access_restriction.php:548
282
+ #: src/features/audit_trail.php:338 src/features/autoupdates.php:251
283
+ #: src/features/comments_filter.php:188 src/features/firewall.php:115
284
+ #: src/features/hack_protect.php:842 src/features/headers.php:166
285
+ #: src/features/ips.php:347 src/features/lockdown.php:140
286
+ #: src/features/login_protect.php:698 src/features/plugin.php:805
287
+ #: src/features/sessions.php:79 src/features/statistics.php:99
288
+ #: src/features/statistics.php:105 src/features/traffic.php:502
289
+ #: src/features/user_management.php:376
290
+ #, php-format
291
+ msgid "Enable %s Module"
292
+ msgstr ""
293
+
294
+ #: src/features/admin_access_restriction.php:549
295
+ msgid "Enforce Security Admin Access Restriction"
296
+ msgstr ""
297
+
298
+ #: src/features/admin_access_restriction.php:550
299
+ msgid ""
300
+ "Enable this with great care and consideration. Ensure that you set a key "
301
+ "that you have set an access key that you will remember."
302
+ msgstr ""
303
+
304
+ #: src/features/admin_access_restriction.php:554
305
+ msgid "Security Admin Access Key"
306
+ msgstr ""
307
+
308
+ #: src/features/admin_access_restriction.php:555
309
+ msgid "Provide/Update Security Admin Access Key"
310
+ msgstr ""
311
+
312
+ #: src/features/admin_access_restriction.php:556
313
+ #: src/features/admin_access_restriction.php:577
314
+ #: src/features/admin_access_restriction.php:584
315
+ #: src/features/admin_access_restriction.php:591
316
+ #: src/features/admin_access_restriction.php:597
317
+ #: src/features/admin_access_restriction.php:603
318
+ msgid "Careful"
319
+ msgstr ""
320
+
321
+ #: src/features/admin_access_restriction.php:556
322
+ msgid ""
323
+ "If you forget this, you could potentially lock yourself out from using this "
324
+ "plugin."
325
+ msgstr ""
326
+
327
+ #: src/features/admin_access_restriction.php:557
328
+ msgid "Security Key Currently Set"
329
+ msgstr ""
330
+
331
+ #: src/features/admin_access_restriction.php:557
332
+ msgid "Security Key NOT Currently Set"
333
+ msgstr ""
334
+
335
+ #: src/features/admin_access_restriction.php:558
336
+ #, php-format
337
+ msgid "To delete the current security key, type exactly \"%s\" and save."
338
+ msgstr ""
339
+
340
+ #: src/features/admin_access_restriction.php:562
341
+ msgid "Security Admin Timeout"
342
+ msgstr ""
343
+
344
+ #: src/features/admin_access_restriction.php:563
345
+ msgid "Specify An Automatic Timeout Interval For Security Admin Access"
346
+ msgstr ""
347
+
348
+ #: src/features/admin_access_restriction.php:564
349
+ msgid "This will automatically expire your Security Admin Session."
350
+ msgstr ""
351
+
352
+ #: src/features/admin_access_restriction.php:568
353
+ #: src/features/hack_protect.php:850 src/features/hack_protect.php:916
354
+ #: src/features/login_protect.php:784 src/features/login_protect.php:827
355
+ #: src/features/login_protect.php:834 src/features/user_management.php:399
356
+ msgid "Default"
357
+ msgstr ""
358
+
359
+ #: src/features/admin_access_restriction.php:575
360
+ msgid "Pages"
361
+ msgstr ""
362
+
363
+ #: src/features/admin_access_restriction.php:576
364
+ msgid "Restrict Access To Key WordPress Posts And Pages Actions"
365
+ msgstr ""
366
+
367
+ #: src/features/admin_access_restriction.php:577
368
+ msgid "This will restrict access to page/post creation, editing and deletion."
369
+ msgstr ""
370
+
371
+ #: src/features/admin_access_restriction.php:578
372
+ #: src/features/admin_access_restriction.php:585
373
+ #: src/features/admin_access_restriction.php:606
374
+ #: src/features/comments_filter.php:126 src/features/headers.php:239
375
+ #: src/features/login_protect.php:618 src/features/login_protect.php:647
376
+ #: src/features/login_protect.php:656 src/features/login_protect.php:674
377
+ #: src/features/login_protect.php:747 src/features/login_protect.php:755
378
+ #: src/features/login_protect.php:769 src/features/plugin.php:759
379
+ #: src/features/plugin.php:763 src/features/plugin.php:857
380
+ msgid "Note"
381
+ msgstr ""
382
+
383
+ #: src/features/admin_access_restriction.php:578
384
+ #: src/features/admin_access_restriction.php:585
385
+ #: src/features/admin_access_restriction.php:608
386
+ #, php-format
387
+ msgid "Selecting \"%s\" will also restrict all other options."
388
+ msgstr ""
389
+
390
+ #: src/features/admin_access_restriction.php:578
391
+ msgid "Edit"
392
+ msgstr ""
393
+
394
+ #: src/features/admin_access_restriction.php:582
395
+ #: src/features/audit_trail.php:187 src/features/audit_trail.php:362
396
+ #: src/features/audit_trail.php:363 src/features/autoupdates.php:282
397
+ #: src/features/hack_protect.php:728 src/features/insights.php:330
398
+ #: src/features/insights.php:347
399
+ msgid "Plugins"
400
+ msgstr ""
401
+
402
+ #: src/features/admin_access_restriction.php:583
403
+ msgid "Restrict Access To Key WordPress Plugin Actions"
404
+ msgstr ""
405
+
406
+ #: src/features/admin_access_restriction.php:584
407
+ msgid ""
408
+ "This will restrict access to plugin installation, update, activation and "
409
+ "deletion."
410
+ msgstr ""
411
+
412
+ #: src/features/admin_access_restriction.php:585
413
+ #: src/features/admin_access_restriction.php:611
414
+ msgid "Activate"
415
+ msgstr ""
416
+
417
+ #: src/features/admin_access_restriction.php:589
418
+ msgid "WordPress Options"
419
+ msgstr ""
420
+
421
+ #: src/features/admin_access_restriction.php:590
422
+ msgid "Restrict Access To Certain WordPress Admin Options"
423
+ msgstr ""
424
+
425
+ #: src/features/admin_access_restriction.php:591
426
+ msgid ""
427
+ "This will restrict the ability of WordPress administrators from changing key "
428
+ "WordPress settings."
429
+ msgstr ""
430
+
431
+ #: src/features/admin_access_restriction.php:595
432
+ msgid "Admin Users"
433
+ msgstr ""
434
+
435
+ #: src/features/admin_access_restriction.php:596
436
+ msgid "Restrict Access To Create/Delete/Modify Other Admin Users"
437
+ msgstr ""
438
+
439
+ #: src/features/admin_access_restriction.php:597
440
+ msgid ""
441
+ "This will restrict the ability of WordPress administrators from creating, "
442
+ "modifying or promoting other administrators."
443
+ msgstr ""
444
+
445
+ #: src/features/admin_access_restriction.php:601
446
+ #: src/features/audit_trail.php:188 src/features/audit_trail.php:368
447
+ #: src/features/audit_trail.php:369 src/features/autoupdates.php:294
448
+ #: src/features/insights.php:376 src/features/insights.php:387
449
+ msgid "Themes"
450
+ msgstr ""
451
+
452
+ #: src/features/admin_access_restriction.php:602
453
+ msgid "Restrict Access To WordPress Theme Actions"
454
+ msgstr ""
455
+
456
+ #: src/features/admin_access_restriction.php:603
457
+ msgid ""
458
+ "This will restrict access to theme installation, update, activation and "
459
+ "deletion."
460
+ msgstr ""
461
+
462
+ #: src/features/admin_access_restriction.php:610
463
+ #, php-format
464
+ msgid "%s and %s"
465
+ msgstr ""
466
+
467
+ #: src/features/admin_access_restriction.php:612
468
+ msgid "Edit Theme Options"
469
+ msgstr ""
470
+
471
+ #: src/features/admin_access_restriction.php:620
472
+ msgid "Activate Your White Label Settings"
473
+ msgstr ""
474
+
475
+ #: src/features/admin_access_restriction.php:621
476
+ msgid "Turn on/off the application of your White Label settings."
477
+ msgstr ""
478
+
479
+ #: src/features/admin_access_restriction.php:624
480
+ msgid "Hide Updates"
481
+ msgstr ""
482
+
483
+ #: src/features/admin_access_restriction.php:625
484
+ msgid "Hide Plugin Updates From Non-Security Admins"
485
+ msgstr ""
486
+
487
+ #: src/features/admin_access_restriction.php:626
488
+ #, php-format
489
+ msgid "Hide available %s updates from non-security administrators."
490
+ msgstr ""
491
+
492
+ #: src/features/admin_access_restriction.php:629
493
+ #: src/features/admin_access_restriction.php:636
494
+ msgid "Plugin Name"
495
+ msgstr ""
496
+
497
+ #: src/features/admin_access_restriction.php:630
498
+ msgid "The Name Of The Plugin"
499
+ msgstr ""
500
+
501
+ #: src/features/admin_access_restriction.php:631
502
+ msgid "The name of the plugin that will be displayed to your site users."
503
+ msgstr ""
504
+
505
+ #: src/features/admin_access_restriction.php:634
506
+ msgid "Menu Title"
507
+ msgstr ""
508
+
509
+ #: src/features/admin_access_restriction.php:635
510
+ msgid "The Main Menu Title Of The Plugin"
511
+ msgstr ""
512
+
513
+ #: src/features/admin_access_restriction.php:636
514
+ #, php-format
515
+ msgid ""
516
+ "The Main Menu Title Of The Plugin. If left empty, the \"%s\" will be used."
517
+ msgstr ""
518
+
519
+ #: src/features/admin_access_restriction.php:639
520
+ msgid "Company Name"
521
+ msgstr ""
522
+
523
+ #: src/features/admin_access_restriction.php:640
524
+ msgid "The Name Of Your Company"
525
+ msgstr ""
526
+
527
+ #: src/features/admin_access_restriction.php:641
528
+ msgid "Provide the name of your company."
529
+ msgstr ""
530
+
531
+ #: src/features/admin_access_restriction.php:644
532
+ msgid "Description"
533
+ msgstr ""
534
+
535
+ #: src/features/admin_access_restriction.php:645
536
+ msgid "The Description Of The Plugin"
537
+ msgstr ""
538
+
539
+ #: src/features/admin_access_restriction.php:646
540
+ msgid "The description of the plugin displayed on the plugins page."
541
+ msgstr ""
542
+
543
+ #: src/features/admin_access_restriction.php:649
544
+ msgid "Home URL"
545
+ msgstr ""
546
+
547
+ #: src/features/admin_access_restriction.php:650
548
+ msgid "Plugin Home Page URL"
549
+ msgstr ""
550
+
551
+ #: src/features/admin_access_restriction.php:651
552
+ msgid ""
553
+ "When a user clicks the home link for this plugin, this is where they'll be "
554
+ "directed."
555
+ msgstr ""
556
+
557
+ #: src/features/admin_access_restriction.php:654
558
+ msgid "Menu Icon"
559
+ msgstr ""
560
+
561
+ #: src/features/admin_access_restriction.php:655
562
+ msgid "Menu Icon URL"
563
+ msgstr ""
564
+
565
+ #: src/features/admin_access_restriction.php:656
566
+ msgid "The URL of the icon to display in the menu."
567
+ msgstr ""
568
+
569
+ #: src/features/admin_access_restriction.php:657
570
+ #: src/features/admin_access_restriction.php:663
571
+ #, php-format
572
+ msgid "The %s should measure %s."
573
+ msgstr ""
574
+
575
+ #: src/features/admin_access_restriction.php:657
576
+ msgid "icon"
577
+ msgstr ""
578
+
579
+ #: src/features/admin_access_restriction.php:660
580
+ msgid "Dashboard Logo"
581
+ msgstr ""
582
+
583
+ #: src/features/admin_access_restriction.php:661
584
+ msgid "Dashboard Logo URL"
585
+ msgstr ""
586
+
587
+ #: src/features/admin_access_restriction.php:662
588
+ msgid "The URL of the logo to display in the admin pages."
589
+ msgstr ""
590
+
591
+ #: src/features/admin_access_restriction.php:663
592
+ msgid "logo"
593
+ msgstr ""
594
+
595
+ #: src/features/admin_access_restriction.php:666
596
+ #: src/features/admin_access_restriction.php:667
597
+ msgid "2FA Login Logo URL"
598
+ msgstr ""
599
+
600
+ #: src/features/admin_access_restriction.php:668
601
+ msgid ""
602
+ "The URL of the logo to display on the Two-Factor Authentication login page."
603
+ msgstr ""
604
+
605
+ #: src/features/audit_trail.php:139
606
+ msgid "Your IP"
607
+ msgstr ""
608
+
609
+ #: src/features/audit_trail.php:169 src/features/audit_trail.php:183
610
+ #: src/features/license.php:94 src/features/plugin.php:950
611
+ msgid "Audit Trail Viewer"
612
+ msgstr ""
613
+
614
+ #: src/features/audit_trail.php:184 src/features/license.php:95
615
+ msgid "Review audit trail logs "
616
+ msgstr ""
617
+
618
+ #: src/features/audit_trail.php:186 src/features/user_management.php:266
619
+ msgid "Users"
620
+ msgstr ""
621
+
622
+ #: src/features/audit_trail.php:189
623
+ msgid "WordPress"
624
+ msgstr ""
625
+
626
+ #: src/features/audit_trail.php:190
627
+ msgid "Posts"
628
+ msgstr ""
629
+
630
+ #: src/features/audit_trail.php:191 src/features/audit_trail.php:386
631
+ #: src/features/audit_trail.php:387
632
+ msgid "Emails"
633
+ msgstr ""
634
+
635
+ #: src/features/audit_trail.php:192 src/processors/user_management.php:238
636
+ msgid "Time"
637
+ msgstr ""
638
+
639
+ #: src/features/audit_trail.php:193
640
+ msgid "Event"
641
+ msgstr ""
642
+
643
+ #: src/features/audit_trail.php:194
644
+ msgid "Message"
645
+ msgstr ""
646
+
647
+ #: src/features/audit_trail.php:195 src/features/user_management.php:157
648
+ #: src/processors/loginprotect_backupcodes.php:175
649
+ #: src/processors/loginprotect_twofactorauth.php:161
650
+ #: src/processors/user_management.php:208
651
+ #: src/processors/user_management.php:236
652
+ msgid "Username"
653
+ msgstr ""
654
+
655
+ #: src/features/audit_trail.php:196
656
+ msgid "Category"
657
+ msgstr ""
658
+
659
+ #: src/features/audit_trail.php:197 src/features/plugin.php:937
660
+ #: src/processors/firewall.php:477
661
+ #: src/processors/loginprotect_backupcodes.php:176
662
+ #: src/processors/loginprotect_twofactorauth.php:162
663
+ #: src/processors/user_management.php:210
664
+ #: src/processors/user_management.php:237
665
+ msgid "IP Address"
666
+ msgstr ""
667
+
668
+ #: src/features/audit_trail.php:198 src/features/traffic.php:391
669
+ msgid "You"
670
+ msgstr ""
671
+
672
+ #: src/features/audit_trail.php:199
673
+ msgid "There are currently no audit entries this is section."
674
+ msgstr ""
675
+
676
+ #: src/features/audit_trail.php:219
677
+ #, php-format
678
+ msgid "[%s] Audit Trail Entries"
679
+ msgstr ""
680
+
681
+ #: src/features/audit_trail.php:292
682
+ msgid ""
683
+ "The Audit Trail is designed so you can look back on events and analyse what "
684
+ "happened and what may have gone wrong."
685
+ msgstr ""
686
+
687
+ #: src/features/audit_trail.php:293 src/features/plugin.php:948
688
+ #: src/wizards/plugin.php:492 src/wizards/plugin.php:497
689
+ msgid "Audit Trail"
690
+ msgstr ""
691
+
692
+ #: src/features/audit_trail.php:299
693
+ msgid "Audit Trail Options"
694
+ msgstr ""
695
+
696
+ #: src/features/audit_trail.php:301
697
+ msgid "Provides finer control over the audit trail itself."
698
+ msgstr ""
699
+
700
+ #: src/features/audit_trail.php:302 src/features/audit_trail.php:311
701
+ #: src/features/traffic.php:477
702
+ msgid "These settings are dependent on your requirements."
703
+ msgstr ""
704
+
705
+ #: src/features/audit_trail.php:308
706
+ msgid "Enable Audit Contexts"
707
+ msgstr ""
708
+
709
+ #: src/features/audit_trail.php:310
710
+ msgid "Specify which types of actions on your site are logged."
711
+ msgstr ""
712
+
713
+ #: src/features/audit_trail.php:313
714
+ msgid "Audit Contexts"
715
+ msgstr ""
716
+
717
+ #: src/features/audit_trail.php:339 src/features/autoupdates.php:252
718
+ #: src/features/firewall.php:116 src/features/hack_protect.php:843
719
+ #: src/features/headers.php:167 src/features/ips.php:348
720
+ #: src/features/lockdown.php:141 src/features/login_protect.php:699
721
+ #: src/features/sessions.php:80 src/features/statistics.php:100
722
+ #: src/features/statistics.php:106 src/features/traffic.php:503
723
+ #: src/features/user_management.php:377
724
+ #, php-format
725
+ msgid "Enable (or Disable) The %s Module"
726
+ msgstr ""
727
+
728
+ #: src/features/audit_trail.php:340 src/features/autoupdates.php:253
729
+ #: src/features/comments_filter.php:190 src/features/firewall.php:117
730
+ #: src/features/hack_protect.php:844 src/features/headers.php:168
731
+ #: src/features/ips.php:349 src/features/lockdown.php:142
732
+ #: src/features/login_protect.php:700 src/features/sessions.php:81
733
+ #: src/features/statistics.php:101 src/features/statistics.php:107
734
+ #: src/features/traffic.php:504 src/features/user_management.php:378
735
+ #, php-format
736
+ msgid "Un-Checking this option will completely disable the %s module."
737
+ msgstr ""
738
+
739
+ #: src/features/audit_trail.php:344
740
+ msgid "Max Trail Length"
741
+ msgstr ""
742
+
743
+ #: src/features/audit_trail.php:345
744
+ msgid "Maximum Audit Trail Length To Keep"
745
+ msgstr ""
746
+
747
+ #: src/features/audit_trail.php:346
748
+ msgid ""
749
+ "Automatically remove any audit trail entries when this limit is exceeded."
750
+ msgstr ""
751
+
752
+ #: src/features/audit_trail.php:350
753
+ msgid "Auto Clean"
754
+ msgstr ""
755
+
756
+ #: src/features/audit_trail.php:351
757
+ msgid "Enable Audit Auto Cleaning"
758
+ msgstr ""
759
+
760
+ #: src/features/audit_trail.php:352
761
+ msgid ""
762
+ "Events older than the number of days specified will be automatically cleaned "
763
+ "from the database."
764
+ msgstr ""
765
+
766
+ #: src/features/audit_trail.php:356 src/features/audit_trail.php:357
767
+ #: src/features/audit_trail.php:358
768
+ msgid "Users And Logins"
769
+ msgstr ""
770
+
771
+ #: src/features/audit_trail.php:357 src/features/audit_trail.php:363
772
+ #: src/features/audit_trail.php:369 src/features/audit_trail.php:375
773
+ #: src/features/audit_trail.php:381 src/features/audit_trail.php:387
774
+ #: src/features/audit_trail.php:393
775
+ #, php-format
776
+ msgid "Enable Audit Context - %s"
777
+ msgstr ""
778
+
779
+ #: src/features/audit_trail.php:358 src/features/audit_trail.php:364
780
+ #: src/features/audit_trail.php:370 src/features/audit_trail.php:376
781
+ #: src/features/audit_trail.php:382 src/features/audit_trail.php:388
782
+ #: src/features/audit_trail.php:394
783
+ #, php-format
784
+ msgid ""
785
+ "When this context is enabled, the audit trail will track activity relating "
786
+ "to: %s"
787
+ msgstr ""
788
+
789
+ #: src/features/audit_trail.php:364
790
+ msgid "WordPress Plugins"
791
+ msgstr ""
792
+
793
+ #: src/features/audit_trail.php:370
794
+ msgid "WordPress Themes"
795
+ msgstr ""
796
+
797
+ #: src/features/audit_trail.php:374 src/features/audit_trail.php:375
798
+ msgid "Posts And Pages"
799
+ msgstr ""
800
+
801
+ #: src/features/audit_trail.php:376
802
+ msgid "Editing and publishing of posts and pages"
803
+ msgstr ""
804
+
805
+ #: src/features/audit_trail.php:380 src/features/audit_trail.php:381
806
+ msgid "WordPress And Settings"
807
+ msgstr ""
808
+
809
+ #: src/features/audit_trail.php:382
810
+ msgid "WordPress upgrades and changes to particular WordPress settings"
811
+ msgstr ""
812
+
813
+ #: src/features/audit_trail.php:388
814
+ msgid "Email Sending"
815
+ msgstr ""
816
+
817
+ #: src/features/autoupdates.php:140
818
+ #, php-format
819
+ msgid "Plugin \"%s\" will %s."
820
+ msgstr ""
821
+
822
+ #: src/features/autoupdates.php:143
823
+ msgid "update automatically"
824
+ msgstr ""
825
+
826
+ #: src/features/autoupdates.php:143
827
+ msgid "not update automatically"
828
+ msgstr ""
829
+
830
+ #: src/features/autoupdates.php:148
831
+ msgid "Failed to change the update status of the plugin."
832
+ msgstr ""
833
+
834
+ #: src/features/autoupdates.php:188
835
+ msgid ""
836
+ "Automatic Updates lets you manage the WordPress automatic updates engine so "
837
+ "you choose what exactly gets updated automatically."
838
+ msgstr ""
839
+
840
+ #: src/features/autoupdates.php:189 src/features/hack_protect.php:873
841
+ #: src/features/plugin.php:951
842
+ msgid "Automatic Updates"
843
+ msgstr ""
844
+
845
+ #: src/features/autoupdates.php:195
846
+ msgid "Disable ALL WordPress Automatic Updates"
847
+ msgstr ""
848
+
849
+ #: src/features/autoupdates.php:197
850
+ msgid ""
851
+ "If you never want WordPress to automatically update anything on your site, "
852
+ "turn on this option."
853
+ msgstr ""
854
+
855
+ #: src/features/autoupdates.php:198
856
+ msgid "Do not turn on this option unless you really need to block updates."
857
+ msgstr ""
858
+
859
+ #: src/features/autoupdates.php:200
860
+ msgid "Turn Off"
861
+ msgstr ""
862
+
863
+ #: src/features/autoupdates.php:204
864
+ msgid "Automatic Plugin Self-Update"
865
+ msgstr ""
866
+
867
+ #: src/features/autoupdates.php:206
868
+ #, php-format
869
+ msgid ""
870
+ "Allows the %s plugin to automatically update itself when an update is "
871
+ "available."
872
+ msgstr ""
873
+
874
+ #: src/features/autoupdates.php:208
875
+ msgid "Keep this option turned on."
876
+ msgstr ""
877
+
878
+ #: src/features/autoupdates.php:210
879
+ msgid "Self-Update"
880
+ msgstr ""
881
+
882
+ #: src/features/autoupdates.php:214
883
+ msgid "Automatic Updates For WordPress Components"
884
+ msgstr ""
885
+
886
+ #: src/features/autoupdates.php:216
887
+ msgid "Control how automatic updates for each WordPress component is handled."
888
+ msgstr ""
889
+
890
+ #: src/features/autoupdates.php:217
891
+ msgid "You should at least allow minor updates for the WordPress core."
892
+ msgstr ""
893
+
894
+ #: src/features/autoupdates.php:219
895
+ msgid "WordPress Components"
896
+ msgstr ""
897
+
898
+ #: src/features/autoupdates.php:223 src/features/autoupdates.php:224
899
+ msgid "Auto-Update Options"
900
+ msgstr ""
901
+
902
+ #: src/features/autoupdates.php:226
903
+ msgid "Make adjustments to how automatic updates are handled on your site."
904
+ msgstr ""
905
+
906
+ #: src/features/autoupdates.php:257
907
+ msgid "Disable All"
908
+ msgstr ""
909
+
910
+ #: src/features/autoupdates.php:258
911
+ msgid "Completely Disable WordPress Automatic Updates"
912
+ msgstr ""
913
+
914
+ #: src/features/autoupdates.php:259
915
+ msgid ""
916
+ "When selected, regardless of any other settings, all WordPress automatic "
917
+ "updates on this site will be completely disabled!"
918
+ msgstr ""
919
+
920
+ #: src/features/autoupdates.php:263
921
+ msgid "Auto Update Plugin"
922
+ msgstr ""
923
+
924
+ #: src/features/autoupdates.php:264
925
+ msgid "Always Automatically Update This Plugin"
926
+ msgstr ""
927
+
928
+ #: src/features/autoupdates.php:265
929
+ #, php-format
930
+ msgid ""
931
+ "Regardless of any component settings below, automatically update the \"%s\" "
932
+ "plugin."
933
+ msgstr ""
934
+
935
+ #: src/features/autoupdates.php:270
936
+ msgid "WordPress Core Updates"
937
+ msgstr ""
938
+
939
+ #: src/features/autoupdates.php:271
940
+ msgid "Decide how the WordPress Core will automatically update, if at all"
941
+ msgstr ""
942
+
943
+ #: src/features/autoupdates.php:272
944
+ msgid ""
945
+ "At least automatically upgrading minor versions is recommended (and is the "
946
+ "WordPress default)."
947
+ msgstr ""
948
+
949
+ #: src/features/autoupdates.php:276
950
+ msgid "Translations"
951
+ msgstr ""
952
+
953
+ #: src/features/autoupdates.php:277
954
+ msgid "Automatically Update Translations"
955
+ msgstr ""
956
+
957
+ #: src/features/autoupdates.php:278
958
+ msgid ""
959
+ "Note: Automatic updates for translations are enabled on WordPress by default."
960
+ msgstr ""
961
+
962
+ #: src/features/autoupdates.php:283
963
+ msgid "Automatically Update All Plugins"
964
+ msgstr ""
965
+
966
+ #: src/features/autoupdates.php:284
967
+ msgid ""
968
+ "Note: Automatic updates for plugins are disabled on WordPress by default."
969
+ msgstr ""
970
+
971
+ #: src/features/autoupdates.php:288
972
+ msgid "Individually Select Plugins"
973
+ msgstr ""
974
+
975
+ #: src/features/autoupdates.php:289
976
+ msgid "Select Individual Plugins To Automatically Update"
977
+ msgstr ""
978
+
979
+ #: src/features/autoupdates.php:290
980
+ msgid ""
981
+ "Turning this on will provide an option on the plugins page to select whether "
982
+ "a plugin is automatically updated."
983
+ msgstr ""
984
+
985
+ #: src/features/autoupdates.php:295
986
+ msgid "Automatically Update Themes"
987
+ msgstr ""
988
+
989
+ #: src/features/autoupdates.php:296
990
+ msgid ""
991
+ "Note: Automatic updates for themes are disabled on WordPress by default."
992
+ msgstr ""
993
+
994
+ #: src/features/autoupdates.php:300
995
+ msgid "Ignore Version Control"
996
+ msgstr ""
997
+
998
+ #: src/features/autoupdates.php:301
999
+ msgid "Ignore Version Control Systems Such As GIT and SVN"
1000
+ msgstr ""
1001
+
1002
+ #: src/features/autoupdates.php:302
1003
+ msgid ""
1004
+ "If you use SVN or GIT and WordPress detects it, automatic updates are "
1005
+ "disabled by default. Check this box to ignore version control systems and "
1006
+ "allow automatic updates."
1007
+ msgstr ""
1008
+
1009
+ #: src/features/autoupdates.php:306
1010
+ msgid "Send Report Email"
1011
+ msgstr ""
1012
+
1013
+ #: src/features/autoupdates.php:307
1014
+ msgid "Send email notices after automatic updates"
1015
+ msgstr ""
1016
+
1017
+ #: src/features/autoupdates.php:308
1018
+ msgid ""
1019
+ "You can turn on/off email notices from automatic updates by un/checking this "
1020
+ "box."
1021
+ msgstr ""
1022
+
1023
+ #: src/features/autoupdates.php:312
1024
+ msgid "Report Email Address"
1025
+ msgstr ""
1026
+
1027
+ #: src/features/autoupdates.php:313
1028
+ msgid "Where to send upgrade notification reports"
1029
+ msgstr ""
1030
+
1031
+ #: src/features/autoupdates.php:314
1032
+ msgid "If this is empty, it will default to the Site Admin email address"
1033
+ msgstr ""
1034
+
1035
+ #: src/features/autoupdates.php:318
1036
+ msgid "Update Delay"
1037
+ msgstr ""
1038
+
1039
+ #: src/features/autoupdates.php:319
1040
+ msgid "Delay Automatic Updates For Period Of Stability"
1041
+ msgstr ""
1042
+
1043
+ #: src/features/autoupdates.php:320
1044
+ #, php-format
1045
+ msgid ""
1046
+ "%s will delay upgrades until the new update has been available for the set "
1047
+ "number of days."
1048
+ msgstr ""
1049
+
1050
+ #: src/features/autoupdates.php:321
1051
+ msgid ""
1052
+ "This helps ensure updates are more stable before they're automatically "
1053
+ "applied to your site."
1054
+ msgstr ""
1055
+
1056
+ #: src/features/base.php:971
1057
+ msgid ""
1058
+ "Unfortunately your WordPress and/or PHP versions are too old to support this "
1059
+ "feature."
1060
+ msgstr ""
1061
+
1062
+ #: src/features/base.php:1122
1063
+ #, php-format
1064
+ msgid "%s Plugin options updated successfully."
1065
+ msgstr ""
1066
+
1067
+ #: src/features/base.php:1126
1068
+ #, php-format
1069
+ msgid "Failed to update %s plugin options."
1070
+ msgstr ""
1071
+
1072
+ #: src/features/base.php:1166
1073
+ msgid "You don't currently have permission to save settings."
1074
+ msgstr ""
1075
+
1076
+ #: src/features/base.php:1194
1077
+ msgid "Plugin options updated successfully."
1078
+ msgstr ""
1079
+
1080
+ #: src/features/base.php:1286
1081
+ msgid "Password values do not match."
1082
+ msgstr ""
1083
+
1084
+ #: src/features/base.php:1587
1085
+ msgid "Support Forums"
1086
+ msgstr ""
1087
+
1088
+ #: src/features/base_wpsf.php:49 src/features/base_wpsf.php:51
1089
+ msgid "Security Admin session has timed-out."
1090
+ msgstr ""
1091
+
1092
+ #: src/features/base_wpsf.php:49
1093
+ msgid "Reload now?"
1094
+ msgstr ""
1095
+
1096
+ #: src/features/base_wpsf.php:50
1097
+ msgid "Security Admin session has nearly timed-out."
1098
+ msgstr ""
1099
+
1100
+ #: src/features/base_wpsf.php:163 src/features/base_wpsf.php:203
1101
+ msgid "Settings"
1102
+ msgstr ""
1103
+
1104
+ #: src/features/base_wpsf.php:164 src/features/base_wpsf.php:204
1105
+ msgid "On"
1106
+ msgstr ""
1107
+
1108
+ #: src/features/base_wpsf.php:165 src/features/base_wpsf.php:205
1109
+ msgid "Off"
1110
+ msgstr ""
1111
+
1112
+ #: src/features/base_wpsf.php:166 src/features/base_wpsf.php:206
1113
+ #: src/processors/hackprotect_corechecksumscan.php:280
1114
+ #: src/processors/hackprotect_pluginvulnerabilities.php:156
1115
+ #: src/processors/hackprotect_wpvulnscan.php:147
1116
+ #: src/processors/loginprotect_intent.php:293
1117
+ msgid "More Info"
1118
+ msgstr ""
1119
+
1120
+ #: src/features/base_wpsf.php:167 src/features/base_wpsf.php:207
1121
+ msgid "Blog"
1122
+ msgstr ""
1123
+
1124
+ #: src/features/base_wpsf.php:168 src/features/base_wpsf.php:208
1125
+ msgid "Save All Settings"
1126
+ msgstr ""
1127
+
1128
+ #: src/features/base_wpsf.php:170 src/features/base_wpsf.php:210
1129
+ msgid "Configure Module"
1130
+ msgstr ""
1131
+
1132
+ #: src/features/base_wpsf.php:171 src/features/base_wpsf.php:211
1133
+ msgid "Actions and Info"
1134
+ msgstr ""
1135
+
1136
+ #: src/features/base_wpsf.php:172 src/features/base_wpsf.php:212
1137
+ msgid "Perform actions for this module"
1138
+ msgstr ""
1139
+
1140
+ #: src/features/base_wpsf.php:173 src/features/base_wpsf.php:213
1141
+ msgid "Help"
1142
+ msgstr ""
1143
+
1144
+ #: src/features/base_wpsf.php:174 src/features/base_wpsf.php:214
1145
+ msgid "Learn More"
1146
+ msgstr ""
1147
+
1148
+ #: src/features/base_wpsf.php:175
1149
+ msgid "Supply Password"
1150
+ msgstr ""
1151
+
1152
+ #: src/features/base_wpsf.php:176
1153
+ msgid "Confirm Password"
1154
+ msgstr ""
1155
+
1156
+ #: src/features/base_wpsf.php:178 src/features/base_wpsf.php:216
1157
+ msgid "Plugin Access Restricted"
1158
+ msgstr ""
1159
+
1160
+ #: src/features/base_wpsf.php:179 src/features/base_wpsf.php:217
1161
+ msgid ""
1162
+ "This security plugin is restricted to administrators with the Security "
1163
+ "Access Key."
1164
+ msgstr ""
1165
+
1166
+ #: src/features/base_wpsf.php:180 src/features/base_wpsf.php:218
1167
+ msgid "Please provide the Security Access Key to manage this plugin."
1168
+ msgstr ""
1169
+
1170
+ #: src/features/base_wpsf.php:181 src/features/base_wpsf.php:219
1171
+ msgid "To manage this plugin you must enter the access key."
1172
+ msgstr ""
1173
+
1174
+ #: src/features/base_wpsf.php:182 src/features/base_wpsf.php:220
1175
+ msgid "Enter Access Key"
1176
+ msgstr ""
1177
+
1178
+ #: src/features/base_wpsf.php:183 src/features/base_wpsf.php:221
1179
+ msgid "Submit Security Admin Key"
1180
+ msgstr ""
1181
+
1182
+ #: src/features/base_wpsf.php:184 src/features/base_wpsf.php:222
1183
+ msgid "Forgotten Key"
1184
+ msgstr ""
1185
+
1186
+ #: src/features/base_wpsf.php:236
1187
+ msgid "Nonce security checking failed - the nonce value was empty."
1188
+ msgstr ""
1189
+
1190
+ #: src/features/base_wpsf.php:237
1191
+ #, php-format
1192
+ msgid "Nonce security checking failed - the nonce supplied was \"%s\"."
1193
+ msgstr ""
1194
+
1195
+ #: src/features/base_wpsf.php:319 src/features/base_wpsf.php:320
1196
+ msgid "User Messages"
1197
+ msgstr ""
1198
+
1199
+ #: src/features/base_wpsf.php:322
1200
+ msgid "Customize the messages displayed to the user."
1201
+ msgstr ""
1202
+
1203
+ #: src/features/base_wpsf.php:323
1204
+ msgid ""
1205
+ "Use this section if you need to communicate to the user in a particular "
1206
+ "manner."
1207
+ msgstr ""
1208
+
1209
+ #: src/features/base_wpsf.php:324
1210
+ msgid "Hint"
1211
+ msgstr ""
1212
+
1213
+ #: src/features/base_wpsf.php:324
1214
+ #, php-format
1215
+ msgid "To reset any message to its default, enter the text exactly: %s"
1216
+ msgstr ""
1217
+
1218
+ #: src/features/comments_filter.php:44
1219
+ msgid "I'm not a spammer."
1220
+ msgstr ""
1221
+
1222
+ #: src/features/comments_filter.php:47
1223
+ msgid "Please check the box to confirm you're not a spammer."
1224
+ msgstr ""
1225
+
1226
+ #: src/features/comments_filter.php:50
1227
+ #, php-format
1228
+ msgid "Please wait %s seconds before posting your comment."
1229
+ msgstr ""
1230
+
1231
+ #: src/features/comments_filter.php:53
1232
+ msgid "Please reload this page to post a comment."
1233
+ msgstr ""
1234
+
1235
+ #: src/features/comments_filter.php:103
1236
+ msgid "Comments SPAM Protection"
1237
+ msgstr ""
1238
+
1239
+ #: src/features/comments_filter.php:105
1240
+ #, php-format
1241
+ msgid ""
1242
+ "The Comments Filter can block 100% of automated spam bots and also offer the "
1243
+ "option to analyse human-generated spam."
1244
+ msgstr ""
1245
+
1246
+ #: src/features/comments_filter.php:106
1247
+ msgid "Comments Filter"
1248
+ msgstr ""
1249
+
1250
+ #: src/features/comments_filter.php:112
1251
+ #, php-format
1252
+ msgid "%s Comment SPAM Protection"
1253
+ msgstr ""
1254
+
1255
+ #: src/features/comments_filter.php:112
1256
+ msgid "Automatic Bot"
1257
+ msgstr ""
1258
+
1259
+ #: src/features/comments_filter.php:114
1260
+ #, php-format
1261
+ msgid "Blocks 100% of all automated bot-generated comment SPAM."
1262
+ msgstr ""
1263
+
1264
+ #: src/features/comments_filter.php:117
1265
+ msgid "Bot SPAM"
1266
+ msgstr ""
1267
+
1268
+ #: src/features/comments_filter.php:124
1269
+ msgid "Adds Google reCAPTCHA to the Comment Forms."
1270
+ msgstr ""
1271
+
1272
+ #: src/features/comments_filter.php:125 src/features/login_protect.php:617
1273
+ msgid "Keep this turned on."
1274
+ msgstr ""
1275
+
1276
+ #: src/features/comments_filter.php:126 src/features/login_protect.php:618
1277
+ msgid ""
1278
+ "You will need to register for Google reCAPTCHA keys and store them in the "
1279
+ "Shield 'Dashboard' settings."
1280
+ msgstr ""
1281
+
1282
+ #: src/features/comments_filter.php:131
1283
+ #, php-format
1284
+ msgid "%s Comment SPAM Protection Filter"
1285
+ msgstr ""
1286
+
1287
+ #: src/features/comments_filter.php:131
1288
+ msgid "Human"
1289
+ msgstr ""
1290
+
1291
+ #: src/features/comments_filter.php:133
1292
+ msgid "Uses a 3rd party SPAM dictionary to detect human-based comment SPAM."
1293
+ msgstr ""
1294
+
1295
+ #: src/features/comments_filter.php:135
1296
+ msgid ""
1297
+ "This tool, unlike other SPAM tools such as Akismet, will not send your "
1298
+ "comment data to 3rd party services for analysis."
1299
+ msgstr ""
1300
+
1301
+ #: src/features/comments_filter.php:137
1302
+ msgid "Human SPAM"
1303
+ msgstr ""
1304
+
1305
+ #: src/features/comments_filter.php:189
1306
+ msgid "Enable (or Disable) The Comment SPAM Protection Feature"
1307
+ msgstr ""
1308
+
1309
+ #: src/features/comments_filter.php:190 src/wizards/plugin.php:707
1310
+ #: src/wizards/plugin.php:712
1311
+ msgid "Comment SPAM Protection"
1312
+ msgstr ""
1313
+
1314
+ #: src/features/comments_filter.php:194 src/features/comments_filter.php:195
1315
+ msgid "Human SPAM Filter"
1316
+ msgstr ""
1317
+
1318
+ #: src/features/comments_filter.php:195
1319
+ #, php-format
1320
+ msgid "Enable (or Disable) The %s Feature"
1321
+ msgstr ""
1322
+
1323
+ #: src/features/comments_filter.php:196
1324
+ msgid ""
1325
+ "Scans the content of WordPress comments for keywords that are indicative of "
1326
+ "SPAM and marks the comment according to your preferred setting below."
1327
+ msgstr ""
1328
+
1329
+ #: src/features/comments_filter.php:200
1330
+ msgid "Comment Filter Items"
1331
+ msgstr ""
1332
+
1333
+ #: src/features/comments_filter.php:201
1334
+ msgid "Select The Items To Scan For SPAM"
1335
+ msgstr ""
1336
+
1337
+ #: src/features/comments_filter.php:202
1338
+ msgid ""
1339
+ "When a user submits a comment, only the selected parts of the comment data "
1340
+ "will be scanned for SPAM content."
1341
+ msgstr ""
1342
+
1343
+ #: src/features/comments_filter.php:202
1344
+ #, php-format
1345
+ msgid "Recommended: %s"
1346
+ msgstr ""
1347
+
1348
+ #: src/features/comments_filter.php:202
1349
+ msgid "All"
1350
+ msgstr ""
1351
+
1352
+ #: src/features/comments_filter.php:206 src/features/comments_filter.php:218
1353
+ msgid "Default SPAM Action"
1354
+ msgstr ""
1355
+
1356
+ #: src/features/comments_filter.php:207 src/features/comments_filter.php:219
1357
+ msgid "How To Categorise Comments When Identified To Be SPAM"
1358
+ msgstr ""
1359
+
1360
+ #: src/features/comments_filter.php:208 src/features/comments_filter.php:220
1361
+ #, php-format
1362
+ msgid ""
1363
+ "When a comment is detected as being SPAM from %s, the comment will be "
1364
+ "categorised based on this setting."
1365
+ msgstr ""
1366
+
1367
+ #: src/features/comments_filter.php:208
1368
+ msgid "a human commenter"
1369
+ msgstr ""
1370
+
1371
+ #: src/features/comments_filter.php:212
1372
+ msgid "SPAM Bot Protection"
1373
+ msgstr ""
1374
+
1375
+ #: src/features/comments_filter.php:213
1376
+ msgid "Block Automatic Comment SPAM By Bots"
1377
+ msgstr ""
1378
+
1379
+ #: src/features/comments_filter.php:214
1380
+ msgid ""
1381
+ "Simple, yet highly effective SPAM Bot protection for your WordPress comments."
1382
+ msgstr ""
1383
+
1384
+ #: src/features/comments_filter.php:220
1385
+ msgid "an automatic bot"
1386
+ msgstr ""
1387
+
1388
+ #: src/features/comments_filter.php:224
1389
+ msgid "Comments Cooldown"
1390
+ msgstr ""
1391
+
1392
+ #: src/features/comments_filter.php:225
1393
+ msgid "Limit posting comments to X seconds after the page has loaded"
1394
+ msgstr ""
1395
+
1396
+ #: src/features/comments_filter.php:226
1397
+ msgid ""
1398
+ "By forcing a comments cooldown period, you restrict a Spambot's ability to "
1399
+ "post multiple times to your posts."
1400
+ msgstr ""
1401
+
1402
+ #: src/features/comments_filter.php:230
1403
+ msgid "Comment Token Expire"
1404
+ msgstr ""
1405
+
1406
+ #: src/features/comments_filter.php:231
1407
+ msgid "A visitor has X seconds within which to post a comment"
1408
+ msgstr ""
1409
+
1410
+ #: src/features/comments_filter.php:232
1411
+ msgid ""
1412
+ "Default: 600 seconds (10 minutes). Each visitor is given a unique 'Token' so "
1413
+ "they can comment. This restricts spambots, but we need to force these tokens "
1414
+ "to expire and at the same time not bother the visitors."
1415
+ msgstr ""
1416
+
1417
+ #: src/features/comments_filter.php:236
1418
+ msgid "GASP Checkbox Message"
1419
+ msgstr ""
1420
+
1421
+ #: src/features/comments_filter.php:237
1422
+ msgid "If you want a custom checkbox message, please provide this here"
1423
+ msgstr ""
1424
+
1425
+ #: src/features/comments_filter.php:238
1426
+ msgid "You can customise the message beside the checkbox."
1427
+ msgstr ""
1428
+
1429
+ #: src/features/comments_filter.php:239 src/features/comments_filter.php:258
1430
+ #: src/features/comments_filter.php:265 src/features/comments_filter.php:272
1431
+ #, php-format
1432
+ msgid "Default Message: %s"
1433
+ msgstr ""
1434
+
1435
+ #: src/features/comments_filter.php:239 src/features/comments_filter.php:258
1436
+ msgid "Please check the box to confirm you're not a spammer"
1437
+ msgstr ""
1438
+
1439
+ #: src/features/comments_filter.php:244
1440
+ msgid "Enable Google reCAPTCHA For Comments"
1441
+ msgstr ""
1442
+
1443
+ #: src/features/comments_filter.php:245
1444
+ msgid "Use Google reCAPTCHA on the comments form to prevent bot-spam comments."
1445
+ msgstr ""
1446
+
1447
+ #: src/features/comments_filter.php:249 src/features/login_protect.php:760
1448
+ #: src/features/plugin.php:907
1449
+ msgid "reCAPTCHA Style"
1450
+ msgstr ""
1451
+
1452
+ #: src/features/comments_filter.php:250 src/features/login_protect.php:761
1453
+ msgid "How Google reCAPTCHA Will Be Displayed"
1454
+ msgstr ""
1455
+
1456
+ #: src/features/comments_filter.php:251 src/features/login_protect.php:762
1457
+ #: src/features/plugin.php:909
1458
+ msgid ""
1459
+ "You can choose the reCAPTCHA display format that best suits your site, "
1460
+ "including the new Invisible Recaptcha"
1461
+ msgstr ""
1462
+
1463
+ #: src/features/comments_filter.php:255
1464
+ msgid "GASP Alert Message"
1465
+ msgstr ""
1466
+
1467
+ #: src/features/comments_filter.php:256
1468
+ msgid "If you want a custom alert message, please provide this here"
1469
+ msgstr ""
1470
+
1471
+ #: src/features/comments_filter.php:257
1472
+ msgid ""
1473
+ "This alert message is displayed when a visitor attempts to submit a comment "
1474
+ "without checking the box."
1475
+ msgstr ""
1476
+
1477
+ #: src/features/comments_filter.php:262
1478
+ msgid "GASP Wait Message"
1479
+ msgstr ""
1480
+
1481
+ #: src/features/comments_filter.php:263
1482
+ msgid ""
1483
+ "If you want a custom submit-button wait message, please provide this here."
1484
+ msgstr ""
1485
+
1486
+ #: src/features/comments_filter.php:264
1487
+ #, php-format
1488
+ msgid ""
1489
+ "Where you see the '%s' this will be the number of seconds. You must ensure "
1490
+ "you include 1, and only 1, of these."
1491
+ msgstr ""
1492
+
1493
+ #: src/features/comments_filter.php:265
1494
+ #, php-format
1495
+ msgid "Please wait %s seconds before posting your comment"
1496
+ msgstr ""
1497
+
1498
+ #: src/features/comments_filter.php:269
1499
+ msgid "GASP Reload Message"
1500
+ msgstr ""
1501
+
1502
+ #: src/features/comments_filter.php:270
1503
+ msgid ""
1504
+ "If you want a custom message when the comment token has expired, please "
1505
+ "provide this here."
1506
+ msgstr ""
1507
+
1508
+ #: src/features/comments_filter.php:271
1509
+ msgid ""
1510
+ "This message is displayed on the submit-button when the comment token is "
1511
+ "expired"
1512
+ msgstr ""
1513
+
1514
+ #: src/features/comments_filter.php:272
1515
+ msgid "Please reload this page to post a comment"
1516
+ msgstr ""
1517
+
1518
+ #: src/features/email.php:33
1519
+ msgid "Email Options"
1520
+ msgstr ""
1521
+
1522
+ #: src/features/email.php:53
1523
+ msgid "Email Throttle Limit"
1524
+ msgstr ""
1525
+
1526
+ #: src/features/email.php:54
1527
+ msgid "Limit Emails Per Second"
1528
+ msgstr ""
1529
+
1530
+ #: src/features/email.php:55
1531
+ msgid ""
1532
+ "You throttle emails sent by this plugin by limiting the number of emails "
1533
+ "sent every second. This is useful in case you get hit by a bot attack. Zero "
1534
+ "(0) turns this off. Suggested: 10"
1535
+ msgstr ""
1536
+
1537
+ #: src/features/firewall.php:36
1538
+ #, php-format
1539
+ msgid "You were blocked by the %s."
1540
+ msgstr ""
1541
+
1542
+ #: src/features/firewall.php:61
1543
+ msgid ""
1544
+ "The Firewall is designed to analyse data sent to your website and block any "
1545
+ "requests that appear to be malicious."
1546
+ msgstr ""
1547
+
1548
+ #: src/features/firewall.php:62 src/features/plugin.php:956
1549
+ msgid "Firewall"
1550
+ msgstr ""
1551
+
1552
+ #: src/features/firewall.php:68
1553
+ msgid "Firewall Blocking Options"
1554
+ msgstr ""
1555
+
1556
+ #: src/features/firewall.php:70
1557
+ msgid "Here you choose what kind of malicious data to scan for."
1558
+ msgstr ""
1559
+
1560
+ #: src/features/firewall.php:72
1561
+ msgid "Turn on as many options here as you can."
1562
+ msgstr ""
1563
+
1564
+ #: src/features/firewall.php:73
1565
+ msgid ""
1566
+ "If you find an incompatibility or something stops working, un-check 1 option "
1567
+ "at a time until you find the problem or review the Audit Trail."
1568
+ msgstr ""
1569
+
1570
+ #: src/features/firewall.php:75
1571
+ msgid "Firewall Blocking"
1572
+ msgstr ""
1573
+
1574
+ #: src/features/firewall.php:79
1575
+ msgid "Choose Firewall Block Response"
1576
+ msgstr ""
1577
+
1578
+ #: src/features/firewall.php:81
1579
+ msgid ""
1580
+ "Here you choose how the plugin will respond when it detects malicious data."
1581
+ msgstr ""
1582
+
1583
+ #: src/features/firewall.php:82
1584
+ #, php-format
1585
+ msgid "Choose the option \"%s\"."
1586
+ msgstr ""
1587
+
1588
+ #: src/features/firewall.php:82
1589
+ msgid "Die With Message"
1590
+ msgstr ""
1591
+
1592
+ #: src/features/firewall.php:84
1593
+ msgid "Firewall Response"
1594
+ msgstr ""
1595
+
1596
+ #: src/features/firewall.php:88
1597
+ msgid ""
1598
+ "Whitelists - IPs, Pages, Parameters, and Users that by-pass the Firewall"
1599
+ msgstr ""
1600
+
1601
+ #: src/features/firewall.php:90
1602
+ msgid ""
1603
+ "In principle you should not need to whitelist anything or anyone unless you "
1604
+ "have discovered a collision with another plugin."
1605
+ msgstr ""
1606
+
1607
+ #: src/features/firewall.php:91
1608
+ msgid ""
1609
+ "Do not whitelist anything unless you are confident in what you are doing."
1610
+ msgstr ""
1611
+
1612
+ #: src/features/firewall.php:93
1613
+ msgid "Whitelist"
1614
+ msgstr ""
1615
+
1616
+ #: src/features/firewall.php:121
1617
+ msgid "Include Cookies"
1618
+ msgstr ""
1619
+
1620
+ #: src/features/firewall.php:122
1621
+ msgid "Also Test Cookie Values In Firewall Tests"
1622
+ msgstr ""
1623
+
1624
+ #: src/features/firewall.php:123
1625
+ msgid ""
1626
+ "The firewall tests GET and POST, but with this option checked it will also "
1627
+ "check COOKIE values."
1628
+ msgstr ""
1629
+
1630
+ #: src/features/firewall.php:127
1631
+ msgid "Directory Traversals"
1632
+ msgstr ""
1633
+
1634
+ #: src/features/firewall.php:128
1635
+ msgid "Block Directory Traversals"
1636
+ msgstr ""
1637
+
1638
+ #: src/features/firewall.php:129
1639
+ #, php-format
1640
+ msgid ""
1641
+ "This will block directory traversal paths in in application parameters (e.g. "
1642
+ "%s, etc)."
1643
+ msgstr ""
1644
+
1645
+ #: src/features/firewall.php:133 src/processors/firewall.php:545
1646
+ msgid "SQL Queries"
1647
+ msgstr ""
1648
+
1649
+ #: src/features/firewall.php:134
1650
+ msgid "Block SQL Queries"
1651
+ msgstr ""
1652
+
1653
+ #: src/features/firewall.php:135
1654
+ #, php-format
1655
+ msgid "This will block sql in application parameters (e.g. %s, etc)."
1656
+ msgstr ""
1657
+
1658
+ #: src/features/firewall.php:139 src/processors/firewall.php:539
1659
+ msgid "WordPress Terms"
1660
+ msgstr ""
1661
+
1662
+ #: src/features/firewall.php:140
1663
+ msgid "Block WordPress Specific Terms"
1664
+ msgstr ""
1665
+
1666
+ #: src/features/firewall.php:141
1667
+ msgid ""
1668
+ "This will block WordPress specific terms in application parameters (wp_, "
1669
+ "user_login, etc.)."
1670
+ msgstr ""
1671
+
1672
+ #: src/features/firewall.php:145 src/processors/firewall.php:542
1673
+ msgid "Field Truncation"
1674
+ msgstr ""
1675
+
1676
+ #: src/features/firewall.php:146
1677
+ msgid "Block Field Truncation Attacks"
1678
+ msgstr ""
1679
+
1680
+ #: src/features/firewall.php:147
1681
+ msgid "This will block field truncation attacks in application parameters."
1682
+ msgstr ""
1683
+
1684
+ #: src/features/firewall.php:151 src/processors/firewall.php:554
1685
+ msgid "PHP Code"
1686
+ msgstr ""
1687
+
1688
+ #: src/features/firewall.php:152
1689
+ #, php-format
1690
+ msgid "Block %s"
1691
+ msgstr ""
1692
+
1693
+ #: src/features/firewall.php:152
1694
+ msgid "PHP Code Includes"
1695
+ msgstr ""
1696
+
1697
+ #: src/features/firewall.php:153
1698
+ msgid "This will block any data that appears to try and include PHP files."
1699
+ msgstr ""
1700
+
1701
+ #: src/features/firewall.php:154
1702
+ msgid "Will probably block saving within the Plugin/Theme file editors."
1703
+ msgstr ""
1704
+
1705
+ #: src/features/firewall.php:158
1706
+ msgid "Exe File Uploads"
1707
+ msgstr ""
1708
+
1709
+ #: src/features/firewall.php:159
1710
+ msgid "Block Executable File Uploads"
1711
+ msgstr ""
1712
+
1713
+ #: src/features/firewall.php:160
1714
+ msgid "This will block executable file uploads (.php, .exe, etc.)."
1715
+ msgstr ""
1716
+
1717
+ #: src/features/firewall.php:164
1718
+ msgid "Leading Schemas"
1719
+ msgstr ""
1720
+
1721
+ #: src/features/firewall.php:165
1722
+ msgid "Block Leading Schemas (HTTPS / HTTP)"
1723
+ msgstr ""
1724
+
1725
+ #: src/features/firewall.php:166
1726
+ msgid ""
1727
+ "This will block leading schemas http:// and https:// in application "
1728
+ "parameters (off by default; may cause problems with other plugins)."
1729
+ msgstr ""
1730
+
1731
+ #: src/features/firewall.php:170
1732
+ msgid "Aggressive Scan"
1733
+ msgstr ""
1734
+
1735
+ #: src/features/firewall.php:171
1736
+ msgid "Aggressively Block Data"
1737
+ msgstr ""
1738
+
1739
+ #: src/features/firewall.php:172
1740
+ msgid ""
1741
+ "Employs a set of aggressive rules to detect and block malicious data "
1742
+ "submitted to your site."
1743
+ msgstr ""
1744
+
1745
+ #: src/features/firewall.php:173 src/features/hack_protect.php:906
1746
+ #: src/features/hack_protect.php:930 src/features/hack_protect.php:931
1747
+ #: src/features/ips.php:272 src/features/ips.php:279
1748
+ #: src/features/lockdown.php:181 src/features/lockdown.php:194
1749
+ #: src/features/plugin.php:873
1750
+ #: src/processors/hackprotect_corechecksumscan.php:244
1751
+ #: src/processors/hackprotect_filecleanerscan.php:232
1752
+ #: src/processors/hackprotect_pluginvulnerabilities.php:110
1753
+ #: src/processors/hackprotect_ptguard.php:526
1754
+ #: src/processors/hackprotect_wpvulnscan.php:220
1755
+ #: src/processors/loginprotect_wplogin.php:74
1756
+ #: src/processors/loginprotect_wplogin.php:93 src/processors/plugin.php:206
1757
+ msgid "Warning"
1758
+ msgstr ""
1759
+
1760
+ #: src/features/firewall.php:173
1761
+ msgid "May cause an increase in false-positive firewall blocks."
1762
+ msgstr ""
1763
+
1764
+ #: src/features/firewall.php:177
1765
+ msgid "Block Response"
1766
+ msgstr ""
1767
+
1768
+ #: src/features/firewall.php:178
1769
+ msgid "Choose how the firewall responds when it blocks a request"
1770
+ msgstr ""
1771
+
1772
+ #: src/features/firewall.php:179
1773
+ msgid ""
1774
+ "We recommend dying with a message so you know what might have occurred when "
1775
+ "the firewall blocks you"
1776
+ msgstr ""
1777
+
1778
+ #: src/features/firewall.php:183
1779
+ msgid "Send Email Report"
1780
+ msgstr ""
1781
+
1782
+ #: src/features/firewall.php:184
1783
+ msgid ""
1784
+ "When a visitor is blocked the firewall will send an email to the configured "
1785
+ "email address"
1786
+ msgstr ""
1787
+
1788
+ #: src/features/firewall.php:185
1789
+ msgid ""
1790
+ "Use with caution - if you get hit by automated bots you may send out too "
1791
+ "many emails and you could get blocked by your host"
1792
+ msgstr ""
1793
+
1794
+ #: src/features/firewall.php:189
1795
+ msgid "Whitelist Parameters"
1796
+ msgstr ""
1797
+
1798
+ #: src/features/firewall.php:190
1799
+ msgid ""
1800
+ "Detail pages and parameters that are whitelisted (ignored by the firewall)"
1801
+ msgstr ""
1802
+
1803
+ #: src/features/firewall.php:191
1804
+ msgid ""
1805
+ "This should be used with caution and you should only provide parameter names "
1806
+ "that you must have excluded"
1807
+ msgstr ""
1808
+
1809
+ #: src/features/firewall.php:195 src/features/firewall.php:196
1810
+ #: src/features/firewall.php:201
1811
+ #, php-format
1812
+ msgid "Ignore %s"
1813
+ msgstr ""
1814
+
1815
+ #: src/features/firewall.php:195 src/features/firewall.php:196
1816
+ #: src/features/login_protect.php:165
1817
+ msgid "Administrators"
1818
+ msgstr ""
1819
+
1820
+ #: src/features/firewall.php:197
1821
+ msgid ""
1822
+ "Authenticated administrator users will not be processed by the firewall "
1823
+ "rules."
1824
+ msgstr ""
1825
+
1826
+ #: src/features/firewall.php:201
1827
+ msgid "Search Engines"
1828
+ msgstr ""
1829
+
1830
+ #: src/features/firewall.php:202
1831
+ msgid "Ignore Search Engine Bot Traffic"
1832
+ msgstr ""
1833
+
1834
+ #: src/features/firewall.php:203
1835
+ msgid ""
1836
+ "The firewall will try to recognise search engine spiders/bots and not apply "
1837
+ "firewall rules to them."
1838
+ msgstr ""
1839
+
1840
+ #: src/features/firewall.php:207
1841
+ msgid "Firewall Block Message"
1842
+ msgstr ""
1843
+
1844
+ #: src/features/firewall.php:208
1845
+ msgid "Message Displayed To Visitor When A Firewall Block Is Triggered"
1846
+ msgstr ""
1847
+
1848
+ #: src/features/firewall.php:209
1849
+ msgid "This is the message displayed to visitors that trigger the firewall."
1850
+ msgstr ""
1851
+
1852
+ #: src/features/hack_protect.php:142
1853
+ #, php-format
1854
+ msgid "%s per day"
1855
+ msgstr ""
1856
+
1857
+ #: src/features/hack_protect.php:618 src/features/license.php:42
1858
+ msgid "Never"
1859
+ msgstr ""
1860
+
1861
+ #: src/features/hack_protect.php:619
1862
+ #, php-format
1863
+ msgid "Last Scan Time: %s"
1864
+ msgstr ""
1865
+
1866
+ #: src/features/hack_protect.php:633
1867
+ #, php-format
1868
+ msgid ""
1869
+ "Sorry, this feature is not available because we cannot write to disk at this "
1870
+ "location: \"%s\""
1871
+ msgstr ""
1872
+
1873
+ #: src/features/hack_protect.php:646
1874
+ msgid "Scans"
1875
+ msgstr ""
1876
+
1877
+ #: src/features/hack_protect.php:654
1878
+ msgid "Core File scanner is not enabled."
1879
+ msgstr ""
1880
+
1881
+ #: src/features/hack_protect.php:657
1882
+ msgid "Automatic WordPress Core File scanner should be turned-on."
1883
+ msgstr ""
1884
+
1885
+ #: src/features/hack_protect.php:663
1886
+ msgid "Modified WordPress core files found."
1887
+ msgstr ""
1888
+
1889
+ #: src/features/hack_protect.php:665 src/features/hack_protect.php:686
1890
+ #: src/features/hack_protect.php:707
1891
+ msgid "Run Scan"
1892
+ msgstr ""
1893
+
1894
+ #: src/features/hack_protect.php:666
1895
+ msgid "Scan WP core files and repair any files that are flagged as modified."
1896
+ msgstr ""
1897
+
1898
+ #: src/features/hack_protect.php:675
1899
+ msgid "Unrecognised File scanner is not enabled."
1900
+ msgstr ""
1901
+
1902
+ #: src/features/hack_protect.php:678
1903
+ msgid "Automatic scanning for non-WordPress core files is recommended."
1904
+ msgstr ""
1905
+
1906
+ #: src/features/hack_protect.php:684
1907
+ msgid "Unrecognised files found in WordPress Core directory."
1908
+ msgstr ""
1909
+
1910
+ #: src/features/hack_protect.php:687
1911
+ msgid ""
1912
+ "Scan and remove any files that are not meant to be in the WP core "
1913
+ "directories."
1914
+ msgstr ""
1915
+
1916
+ #: src/features/hack_protect.php:696
1917
+ msgid "Automatic Plugin/Themes Guard is not enabled."
1918
+ msgstr ""
1919
+
1920
+ #: src/features/hack_protect.php:699
1921
+ msgid "Automatic detection of plugin/theme modifications is recommended."
1922
+ msgstr ""
1923
+
1924
+ #: src/features/hack_protect.php:705
1925
+ msgid "A plugin/theme was found to have been modified."
1926
+ msgstr ""
1927
+
1928
+ #: src/features/hack_protect.php:708
1929
+ msgid "Reviewing modifications to your plugins/themes is recommended."
1930
+ msgstr ""
1931
+
1932
+ #: src/features/hack_protect.php:717
1933
+ msgid "Plugin Vulnerability Scanner is not enabled."
1934
+ msgstr ""
1935
+
1936
+ #: src/features/hack_protect.php:720
1937
+ msgid "Automatic detection of plugin vulnerabilities is recommended."
1938
+ msgstr ""
1939
+
1940
+ #: src/features/hack_protect.php:726
1941
+ msgid "At least 1 plugin has known vulnerabilities."
1942
+ msgstr ""
1943
+
1944
+ #: src/features/hack_protect.php:729
1945
+ msgid ""
1946
+ "Plugins with known vulnerabilities should be updated, removed, or replaced."
1947
+ msgstr ""
1948
+
1949
+ #: src/features/hack_protect.php:751 src/features/hack_protect.php:752
1950
+ msgid "Scan Options"
1951
+ msgstr ""
1952
+
1953
+ #: src/features/hack_protect.php:754
1954
+ msgid "Set how frequently the Hack Guard scans will run."
1955
+ msgstr ""
1956
+
1957
+ #: src/features/hack_protect.php:761
1958
+ msgid ""
1959
+ "Hack Guard is a set of tools to warn you and protect you against hacks on "
1960
+ "your site."
1961
+ msgstr ""
1962
+
1963
+ #: src/features/hack_protect.php:762 src/features/plugin.php:958
1964
+ msgid "Hack Guard"
1965
+ msgstr ""
1966
+
1967
+ #: src/features/hack_protect.php:768 src/features/hack_protect.php:774
1968
+ msgid "Vulnerabilities Scanner"
1969
+ msgstr ""
1970
+
1971
+ #: src/features/hack_protect.php:770
1972
+ msgid ""
1973
+ "Regularly scan your WordPress plugins and themes for known security "
1974
+ "vulnerabilities."
1975
+ msgstr ""
1976
+
1977
+ #: src/features/hack_protect.php:771 src/features/hack_protect.php:778
1978
+ #: src/features/hack_protect.php:781 src/features/hack_protect.php:861
1979
+ msgid "Plugin Vulnerabilities Scanner"
1980
+ msgstr ""
1981
+
1982
+ #: src/features/hack_protect.php:772
1983
+ msgid ""
1984
+ "Ensure this is turned on and you will always know if any of your assets have "
1985
+ "known security vulnerabilities."
1986
+ msgstr ""
1987
+
1988
+ #: src/features/hack_protect.php:780
1989
+ msgid ""
1990
+ "Regularly scan your plugins against a database of known vulnerabilities."
1991
+ msgstr ""
1992
+
1993
+ #: src/features/hack_protect.php:783
1994
+ msgid "Plugin Vulnerabilities"
1995
+ msgstr ""
1996
+
1997
+ #: src/features/hack_protect.php:787 src/features/hack_protect.php:790
1998
+ msgid "Core File Integrity Scanner"
1999
+ msgstr ""
2000
+
2001
+ #: src/features/hack_protect.php:789
2002
+ msgid ""
2003
+ "Regularly scan your WordPress core files for changes compared to official "
2004
+ "WordPress files."
2005
+ msgstr ""
2006
+
2007
+ #: src/features/hack_protect.php:792 src/features/hack_protect.php:885
2008
+ msgid "Core File Scanner"
2009
+ msgstr ""
2010
+
2011
+ #: src/features/hack_protect.php:796 src/features/hack_protect.php:799
2012
+ #: src/features/hack_protect.php:801 src/features/hack_protect.php:898
2013
+ msgid "Unrecognised Files Scanner"
2014
+ msgstr ""
2015
+
2016
+ #: src/features/hack_protect.php:798
2017
+ msgid "Regularly scan your WordPress core folders for files that don't belong."
2018
+ msgstr ""
2019
+
2020
+ #: src/features/hack_protect.php:805
2021
+ msgid "Plugins and Themes Guard"
2022
+ msgstr ""
2023
+
2024
+ #: src/features/hack_protect.php:806
2025
+ msgid "Plugins/Themes Guard"
2026
+ msgstr ""
2027
+
2028
+ #: src/features/hack_protect.php:808
2029
+ msgid "Detect malicious changes to your themes and plugins."
2030
+ msgstr ""
2031
+
2032
+ #: src/features/hack_protect.php:809
2033
+ msgid "Keep the Plugins/Theme Guard feature turned on."
2034
+ msgstr ""
2035
+
2036
+ #: src/features/hack_protect.php:810 src/features/user_management.php:325
2037
+ msgid "Requirements"
2038
+ msgstr ""
2039
+
2040
+ #: src/features/hack_protect.php:815 src/features/hack_protect.php:816
2041
+ msgid "Integrity Checks"
2042
+ msgstr ""
2043
+
2044
+ #: src/features/hack_protect.php:818
2045
+ msgid "Monitor for unrecognised changes to your system."
2046
+ msgstr ""
2047
+
2048
+ #: src/features/hack_protect.php:819
2049
+ msgid "Enable these to prevent unauthorized changes to your WordPress site."
2050
+ msgstr ""
2051
+
2052
+ #: src/features/hack_protect.php:848
2053
+ msgid "Daily Scan Frequency"
2054
+ msgstr ""
2055
+
2056
+ #: src/features/hack_protect.php:849
2057
+ msgid "Number Of Times To Automatically Run File Scan In 24hrs"
2058
+ msgstr ""
2059
+
2060
+ #: src/features/hack_protect.php:850
2061
+ msgid "Once every 24hrs."
2062
+ msgstr ""
2063
+
2064
+ #: src/features/hack_protect.php:851
2065
+ msgid "To improve security, increase the number of scans per day."
2066
+ msgstr ""
2067
+
2068
+ #: src/features/hack_protect.php:855
2069
+ msgid "Email Files List"
2070
+ msgstr ""
2071
+
2072
+ #: src/features/hack_protect.php:856
2073
+ msgid "Scan Notification Emails Should Include Full Listing Of Files"
2074
+ msgstr ""
2075
+
2076
+ #: src/features/hack_protect.php:857
2077
+ msgid ""
2078
+ "Scanner notification emails will include a summary list of all affected "
2079
+ "files."
2080
+ msgstr ""
2081
+
2082
+ #: src/features/hack_protect.php:862
2083
+ #, php-format
2084
+ msgid "Daily Cron - %s"
2085
+ msgstr ""
2086
+
2087
+ #: src/features/hack_protect.php:862
2088
+ msgid "Scans Plugins For Known Vulnerabilities"
2089
+ msgstr ""
2090
+
2091
+ #: src/features/hack_protect.php:863
2092
+ msgid ""
2093
+ "Runs a scan of all your plugins against a database of known WordPress plugin "
2094
+ "vulnerabilities."
2095
+ msgstr ""
2096
+
2097
+ #: src/features/hack_protect.php:867
2098
+ msgid "Vulnerability Scanner"
2099
+ msgstr ""
2100
+
2101
+ #: src/features/hack_protect.php:868
2102
+ msgid "Enable The Vulnerability Scanner"
2103
+ msgstr ""
2104
+
2105
+ #: src/features/hack_protect.php:869
2106
+ msgid ""
2107
+ "Runs a scan of all your plugins against a database of known WordPress "
2108
+ "vulnerabilities."
2109
+ msgstr ""
2110
+
2111
+ #: src/features/hack_protect.php:874
2112
+ msgid "Apply Updates Automatically To Vulnerable Plugins"
2113
+ msgstr ""
2114
+
2115
+ #: src/features/hack_protect.php:875
2116
+ msgid ""
2117
+ "When an update becomes available, automatically apply updates to items with "
2118
+ "known vulnerabilities."
2119
+ msgstr ""
2120
+
2121
+ #: src/features/hack_protect.php:879
2122
+ msgid "Highlight Plugins"
2123
+ msgstr ""
2124
+
2125
+ #: src/features/hack_protect.php:880
2126
+ msgid "Highlight Vulnerable Plugins Upon Display"
2127
+ msgstr ""
2128
+
2129
+ #: src/features/hack_protect.php:881
2130
+ msgid "Vulnerable plugins will be highlighted on the main plugins page."
2131
+ msgstr ""
2132
+
2133
+ #: src/features/hack_protect.php:886
2134
+ msgid "Scans WordPress Core Files For Alterations"
2135
+ msgstr ""
2136
+
2137
+ #: src/features/hack_protect.php:887
2138
+ msgid ""
2139
+ "Compares all WordPress core files on your site against the official "
2140
+ "WordPress files."
2141
+ msgstr ""
2142
+
2143
+ #: src/features/hack_protect.php:888
2144
+ msgid "WordPress Core files should never be altered for any reason."
2145
+ msgstr ""
2146
+
2147
+ #: src/features/hack_protect.php:892
2148
+ msgid "Auto Repair"
2149
+ msgstr ""
2150
+
2151
+ #: src/features/hack_protect.php:893
2152
+ msgid "Automatically Repair WordPress Core Files That Have Been Altered"
2153
+ msgstr ""
2154
+
2155
+ #: src/features/hack_protect.php:894
2156
+ msgid ""
2157
+ "Attempts to automatically repair WordPress Core files with the official "
2158
+ "WordPress file data, for files that have been altered or are missing."
2159
+ msgstr ""
2160
+
2161
+ #: src/features/hack_protect.php:899
2162
+ msgid "Daily Scan For Unrecognised Files In Core Directories"
2163
+ msgstr ""
2164
+
2165
+ #: src/features/hack_protect.php:900
2166
+ msgid ""
2167
+ "Scans for, and automatically deletes, any files in your core WordPress "
2168
+ "folders that are not part of your WordPress installation."
2169
+ msgstr ""
2170
+
2171
+ #: src/features/hack_protect.php:904
2172
+ msgid "Scan Uploads"
2173
+ msgstr ""
2174
+
2175
+ #: src/features/hack_protect.php:905
2176
+ msgid "Scan Uploads Folder For PHP and Javascript"
2177
+ msgstr ""
2178
+
2179
+ #: src/features/hack_protect.php:906
2180
+ msgid ""
2181
+ "Take care when turning on this option - if you are unsure, leave it disabled."
2182
+ msgstr ""
2183
+
2184
+ #: src/features/hack_protect.php:907
2185
+ msgid ""
2186
+ "The Uploads folder is primarily for media, but could be used to store "
2187
+ "nefarious files."
2188
+ msgstr ""
2189
+
2190
+ #: src/features/hack_protect.php:911
2191
+ msgid "File Exclusions"
2192
+ msgstr ""
2193
+
2194
+ #: src/features/hack_protect.php:912
2195
+ msgid "Provide A List Of Files To Be Excluded From The Scan"
2196
+ msgstr ""
2197
+
2198
+ #: src/features/hack_protect.php:914
2199
+ msgid "Take a new line for each file you wish to exclude from the scan."
2200
+ msgstr ""
2201
+
2202
+ #: src/features/hack_protect.php:915
2203
+ msgid "No commas are necessary."
2204
+ msgstr ""
2205
+
2206
+ #: src/features/hack_protect.php:920
2207
+ msgid "Enable Integrity Scan"
2208
+ msgstr ""
2209
+
2210
+ #: src/features/hack_protect.php:921
2211
+ msgid "Scans For Critical Changes Made To Your WordPress Site"
2212
+ msgstr ""
2213
+
2214
+ #: src/features/hack_protect.php:922
2215
+ msgid "Detects changes made to your WordPress site outside of WordPress."
2216
+ msgstr ""
2217
+
2218
+ #: src/features/hack_protect.php:926
2219
+ msgid "Monitor User Accounts"
2220
+ msgstr ""
2221
+
2222
+ #: src/features/hack_protect.php:927
2223
+ msgid "Scans For Critical Changes Made To User Accounts"
2224
+ msgstr ""
2225
+
2226
+ #: src/features/hack_protect.php:928
2227
+ msgid ""
2228
+ "Detects changes made to critical user account information that were made "
2229
+ "directly on the database and outside of the WordPress system."
2230
+ msgstr ""
2231
+
2232
+ #: src/features/hack_protect.php:929
2233
+ msgid "An example of this might be some form of SQL Injection attack."
2234
+ msgstr ""
2235
+
2236
+ #: src/features/hack_protect.php:930
2237
+ msgid ""
2238
+ "Enabling this option for every page low may slow down your site with large "
2239
+ "numbers of users."
2240
+ msgstr ""
2241
+
2242
+ #: src/features/hack_protect.php:931
2243
+ msgid ""
2244
+ "This option may cause critical problem with 3rd party plugins that manage "
2245
+ "user accounts."
2246
+ msgstr ""
2247
+
2248
+ #: src/features/hack_protect.php:935 src/features/headers.php:197
2249
+ #: src/features/headers.php:198 src/features/login_protect.php:714
2250
+ #: src/features/login_protect.php:732 src/features/login_protect.php:738
2251
+ #: src/features/plugin.php:799
2252
+ #, php-format
2253
+ msgid "Enable %s"
2254
+ msgstr ""
2255
+
2256
+ #: src/features/hack_protect.php:935
2257
+ msgid "Guard"
2258
+ msgstr ""
2259
+
2260
+ #: src/features/hack_protect.php:936
2261
+ msgid "Enable The Guard For Plugin And Theme Files"
2262
+ msgstr ""
2263
+
2264
+ #: src/features/hack_protect.php:937
2265
+ msgid ""
2266
+ "When enabled the Guard will automatically scan for changes to your Plugin "
2267
+ "and Theme files."
2268
+ msgstr ""
2269
+
2270
+ #: src/features/hack_protect.php:941
2271
+ msgid "Guard/Scan Depth"
2272
+ msgstr ""
2273
+
2274
+ #: src/features/hack_protect.php:942
2275
+ msgid "How Deep Into The Plugin Directories To Scan And Guard"
2276
+ msgstr ""
2277
+
2278
+ #: src/features/hack_protect.php:943
2279
+ msgid ""
2280
+ "The Guard normally scans only the top level of a folder. Increasing depth "
2281
+ "will increase scan times."
2282
+ msgstr ""
2283
+
2284
+ #: src/features/hack_protect.php:944
2285
+ #, php-format
2286
+ msgid ""
2287
+ "Setting it to %s will remove this limit and all sub-folders will be scanned "
2288
+ "- not recommended"
2289
+ msgstr ""
2290
+
2291
+ #: src/features/hack_protect.php:948
2292
+ msgid "Included File Types"
2293
+ msgstr ""
2294
+
2295
+ #: src/features/hack_protect.php:949
2296
+ msgid "The File Types (by File Extension) Included In The Scan"
2297
+ msgstr ""
2298
+
2299
+ #: src/features/hack_protect.php:950
2300
+ msgid "Take a new line for each file extension."
2301
+ msgstr ""
2302
+
2303
+ #: src/features/hack_protect.php:951
2304
+ msgid "No commas(,) or periods(.) necessary."
2305
+ msgstr ""
2306
+
2307
+ #: src/features/hack_protect.php:952
2308
+ msgid "Remove all extensions to scan all file type (not recommended)."
2309
+ msgstr ""
2310
+
2311
+ #: src/features/hack_protect.php:956
2312
+ msgid "Show Re-Install Links"
2313
+ msgstr ""
2314
+
2315
+ #: src/features/hack_protect.php:957
2316
+ msgid "Show Re-Install Links For Plugins"
2317
+ msgstr ""
2318
+
2319
+ #: src/features/hack_protect.php:958
2320
+ msgid ""
2321
+ "Show links to re-install plugins and offer re-install when activating "
2322
+ "plugins."
2323
+ msgstr ""
2324
+
2325
+ #: src/features/headers.php:122 src/features/headers.php:131
2326
+ msgid ""
2327
+ "Protect visitors to your site by implementing increased security response "
2328
+ "headers."
2329
+ msgstr ""
2330
+
2331
+ #: src/features/headers.php:123 src/features/headers.php:132
2332
+ #: src/features/headers.php:141
2333
+ msgid ""
2334
+ "Enabling these features are advised, but you must test them on your site "
2335
+ "thoroughly."
2336
+ msgstr ""
2337
+
2338
+ #: src/features/headers.php:129
2339
+ msgid "Advanced Security Headers"
2340
+ msgstr ""
2341
+
2342
+ #: src/features/headers.php:134
2343
+ msgid "Security Headers"
2344
+ msgstr ""
2345
+
2346
+ #: src/features/headers.php:138 src/features/headers.php:143
2347
+ #: src/features/headers.php:198
2348
+ msgid "Content Security Policy"
2349
+ msgstr ""
2350
+
2351
+ #: src/features/headers.php:140
2352
+ msgid ""
2353
+ "Restrict the sources and types of content that may be loaded and processed "
2354
+ "by visitor browsers."
2355
+ msgstr ""
2356
+
2357
+ #: src/features/headers.php:172
2358
+ msgid "Block iFrames"
2359
+ msgstr ""
2360
+
2361
+ #: src/features/headers.php:173
2362
+ msgid "Block Remote iFrames Of This Site"
2363
+ msgstr ""
2364
+
2365
+ #: src/features/headers.php:174
2366
+ msgid ""
2367
+ "The setting prevents any external website from embedding your site in an "
2368
+ "iFrame."
2369
+ msgstr ""
2370
+
2371
+ #: src/features/headers.php:175
2372
+ msgid "This is useful for preventing so-called \"ClickJack attacks\"."
2373
+ msgstr ""
2374
+
2375
+ #: src/features/headers.php:179
2376
+ msgid "Referrer Policy"
2377
+ msgstr ""
2378
+
2379
+ #: src/features/headers.php:180
2380
+ msgid "Referrer Policy Header"
2381
+ msgstr ""
2382
+
2383
+ #: src/features/headers.php:181
2384
+ msgid ""
2385
+ "The Referrer Policy Header allows you to control when and what referral "
2386
+ "information a browser may pass along with links clicked on your site."
2387
+ msgstr ""
2388
+
2389
+ #: src/features/headers.php:185
2390
+ msgid "XSS Protection"
2391
+ msgstr ""
2392
+
2393
+ #: src/features/headers.php:186
2394
+ msgid "Employ Built-In Browser XSS Protection"
2395
+ msgstr ""
2396
+
2397
+ #: src/features/headers.php:187
2398
+ msgid ""
2399
+ "Directs compatible browsers to block what they detect as Reflective XSS "
2400
+ "attacks."
2401
+ msgstr ""
2402
+
2403
+ #: src/features/headers.php:191
2404
+ msgid "Prevent Mime-Sniff"
2405
+ msgstr ""
2406
+
2407
+ #: src/features/headers.php:192
2408
+ msgid "Turn-Off Browser Mime-Sniff"
2409
+ msgstr ""
2410
+
2411
+ #: src/features/headers.php:193
2412
+ msgid "Reduces visitor exposure to malicious user-uploaded content."
2413
+ msgstr ""
2414
+
2415
+ #: src/features/headers.php:199
2416
+ msgid ""
2417
+ "Allows for permission and restriction of all resources loaded on your site."
2418
+ msgstr ""
2419
+
2420
+ #: src/features/headers.php:203
2421
+ msgid "Self"
2422
+ msgstr ""
2423
+
2424
+ #: src/features/headers.php:204
2425
+ msgid "Allow 'self' Directive"
2426
+ msgstr ""
2427
+
2428
+ #: src/features/headers.php:205
2429
+ msgid "Using 'self' is generally recommended."
2430
+ msgstr ""
2431
+
2432
+ #: src/features/headers.php:206
2433
+ msgid ""
2434
+ "It essentially means that resources from your own host:protocol are "
2435
+ "permitted."
2436
+ msgstr ""
2437
+
2438
+ #: src/features/headers.php:210
2439
+ msgid "Inline Entities"
2440
+ msgstr ""
2441
+
2442
+ #: src/features/headers.php:211
2443
+ msgid "Allow Inline Scripts and CSS"
2444
+ msgstr ""
2445
+
2446
+ #: src/features/headers.php:212
2447
+ msgid ""
2448
+ "Allows parsing of Javascript and CSS declared in-line in your html document."
2449
+ msgstr ""
2450
+
2451
+ #: src/features/headers.php:216
2452
+ msgid "Embedded Data"
2453
+ msgstr ""
2454
+
2455
+ #: src/features/headers.php:217
2456
+ msgid "Allow \"data:\" Directives"
2457
+ msgstr ""
2458
+
2459
+ #: src/features/headers.php:218
2460
+ msgid ""
2461
+ "Allows use of embedded data directives, most commonly used for images and "
2462
+ "fonts."
2463
+ msgstr ""
2464
+
2465
+ #: src/features/headers.php:222
2466
+ msgid "Allow eval()"
2467
+ msgstr ""
2468
+
2469
+ #: src/features/headers.php:223
2470
+ msgid "Allow Javascript eval()"
2471
+ msgstr ""
2472
+
2473
+ #: src/features/headers.php:224
2474
+ msgid "Permits the use of Javascript the eval() function."
2475
+ msgstr ""
2476
+
2477
+ #: src/features/headers.php:228
2478
+ msgid "HTTPS"
2479
+ msgstr ""
2480
+
2481
+ #: src/features/headers.php:229
2482
+ msgid "HTTPS Resource Loading"
2483
+ msgstr ""
2484
+
2485
+ #: src/features/headers.php:230
2486
+ msgid "Allows loading of any content provided over HTTPS."
2487
+ msgstr ""
2488
+
2489
+ #: src/features/headers.php:234
2490
+ msgid "Permitted Hosts"
2491
+ msgstr ""
2492
+
2493
+ #: src/features/headers.php:235
2494
+ msgid "Permitted Hosts and Domains"
2495
+ msgstr ""
2496
+
2497
+ #: src/features/headers.php:236
2498
+ msgid ""
2499
+ "You can explicitly state which hosts/domain from which content may be loaded."
2500
+ msgstr ""
2501
+
2502
+ #: src/features/headers.php:237
2503
+ msgid ""
2504
+ "Take great care and test your site as you may block legitimate resources."
2505
+ msgstr ""
2506
+
2507
+ #: src/features/headers.php:238
2508
+ msgid "If in-doubt, leave blank or use \"*\" only."
2509
+ msgstr ""
2510
+
2511
+ #: src/features/headers.php:239
2512
+ msgid ""
2513
+ "You can force only HTTPS for a given domain by prefixing it with \"https://"
2514
+ "\"."
2515
+ msgstr ""
2516
+
2517
+ #: src/features/insights.php:118
2518
+ msgid "Sorry, Admin Notes is only available for Pro subscriptions."
2519
+ msgstr ""
2520
+
2521
+ #: src/features/insights.php:121
2522
+ msgid "Sorry, but it appears your note was empty."
2523
+ msgstr ""
2524
+
2525
+ #: src/features/insights.php:130
2526
+ msgid "Note created successfully."
2527
+ msgstr ""
2528
+
2529
+ #: src/features/insights.php:130
2530
+ msgid "Note could not be created."
2531
+ msgstr ""
2532
+
2533
+ #: src/features/insights.php:194
2534
+ #, php-format
2535
+ msgid "%s Security Insights"
2536
+ msgstr ""
2537
+
2538
+ #: src/features/insights.php:195
2539
+ msgid "recommendation"
2540
+ msgstr ""
2541
+
2542
+ #: src/features/insights.php:196
2543
+ msgid "suggestion"
2544
+ msgstr ""
2545
+
2546
+ #: src/features/insights.php:197
2547
+ #, php-format
2548
+ msgid "Welcome To %s Security Insights Dashboard"
2549
+ msgstr ""
2550
+
2551
+ #: src/features/insights.php:198
2552
+ #, php-format
2553
+ msgid "Some of the most recent %s events"
2554
+ msgstr ""
2555
+
2556
+ #: src/features/insights.php:256
2557
+ msgid "Site"
2558
+ msgstr ""
2559
+
2560
+ #: src/features/insights.php:280
2561
+ msgid "SSL certificate for this site has expired."
2562
+ msgstr ""
2563
+
2564
+ #: src/features/insights.php:283
2565
+ #, php-format
2566
+ msgid "SSL certificate will expire soon (in %s days)"
2567
+ msgstr ""
2568
+
2569
+ #: src/features/insights.php:290
2570
+ msgid "Check or renew your SSL certificate."
2571
+ msgstr ""
2572
+
2573
+ #: src/features/insights.php:313
2574
+ msgid "DB Password appears to be weak."
2575
+ msgstr ""
2576
+
2577
+ #: src/features/insights.php:315
2578
+ msgid "The database password should be strong."
2579
+ msgstr ""
2580
+
2581
+ #: src/features/insights.php:345
2582
+ #, php-format
2583
+ msgid "%s inactive plugin(s)"
2584
+ msgstr ""
2585
+
2586
+ #: src/features/insights.php:348
2587
+ msgid "Unused plugins should be removed."
2588
+ msgstr ""
2589
+
2590
+ #: src/features/insights.php:358
2591
+ #, php-format
2592
+ msgid "%s plugin update(s)"
2593
+ msgstr ""
2594
+
2595
+ #: src/features/insights.php:360 src/features/insights.php:400
2596
+ #: src/features/insights.php:426
2597
+ msgid "Updates"
2598
+ msgstr ""
2599
+
2600
+ #: src/features/insights.php:361 src/features/insights.php:401
2601
+ #: src/features/insights.php:427
2602
+ msgid "Updates should be applied as early as possible."
2603
+ msgstr ""
2604
+
2605
+ #: src/features/insights.php:385
2606
+ #, php-format
2607
+ msgid "%s inactive themes(s)"
2608
+ msgstr ""
2609
+
2610
+ #: src/features/insights.php:388
2611
+ msgid "Unused themes should be removed."
2612
+ msgstr ""
2613
+
2614
+ #: src/features/insights.php:398
2615
+ #, php-format
2616
+ msgid "%s theme update(s)"
2617
+ msgstr ""
2618
+
2619
+ #: src/features/insights.php:416
2620
+ msgid "WordPress Core"
2621
+ msgstr ""
2622
+
2623
+ #: src/features/insights.php:424
2624
+ msgid "WordPress Core has an update available."
2625
+ msgstr ""
2626
+
2627
+ #: src/features/insights.php:436
2628
+ msgid "WordPress does not automatically install updates."
2629
+ msgstr ""
2630
+
2631
+ #: src/features/insights.php:439
2632
+ msgid "Minor WordPress upgrades should be applied automatically."
2633
+ msgstr ""
2634
+
2635
+ #: src/features/insights.php:489
2636
+ msgid "Transgressions"
2637
+ msgstr ""
2638
+
2639
+ #: src/features/insights.php:491
2640
+ msgid "Total transgression against the site."
2641
+ msgstr ""
2642
+
2643
+ #: src/features/insights.php:494
2644
+ msgid "IP Blocks"
2645
+ msgstr ""
2646
+
2647
+ #: src/features/insights.php:496
2648
+ msgid "Total connections blocked/killed after too many transgressions."
2649
+ msgstr ""
2650
+
2651
+ #: src/features/insights.php:499 src/processors/statistics.php:201
2652
+ msgid "Login Blocks"
2653
+ msgstr ""
2654
+
2655
+ #: src/features/insights.php:501
2656
+ msgid "Total login attempts blocked."
2657
+ msgstr ""
2658
+
2659
+ #: src/features/insights.php:504 src/processors/statistics.php:200
2660
+ msgid "Firewall Blocks"
2661
+ msgstr ""
2662
+
2663
+ #: src/features/insights.php:506
2664
+ msgid "Total requests blocked by firewall rules."
2665
+ msgstr ""
2666
+
2667
+ #: src/features/insights.php:509 src/processors/statistics.php:199
2668
+ msgid "Comment Blocks"
2669
+ msgstr ""
2670
+
2671
+ #: src/features/insights.php:511
2672
+ msgid "Total SPAM comments blocked."
2673
+ msgstr ""
2674
+
2675
+ #: src/features/insights.php:514
2676
+ msgid "Active Sessions"
2677
+ msgstr ""
2678
+
2679
+ #: src/features/insights.php:516
2680
+ msgid "Currently active user sessions."
2681
+ msgstr ""
2682
+
2683
+ #: src/features/insights.php:519
2684
+ msgid "Blacklist IPs"
2685
+ msgstr ""
2686
+
2687
+ #: src/features/insights.php:521
2688
+ msgid "Current IP addresses with transgressions against the site."
2689
+ msgstr ""
2690
+
2691
+ #: src/features/insights.php:524
2692
+ msgid "Pro"
2693
+ msgstr ""
2694
+
2695
+ #: src/features/insights.php:525 src/features/traffic.php:365
2696
+ msgid "Yes"
2697
+ msgstr ""
2698
+
2699
+ #: src/features/insights.php:525 src/features/traffic.php:341
2700
+ #: src/features/traffic.php:365
2701
+ msgid "No"
2702
+ msgstr ""
2703
+
2704
+ #: src/features/insights.php:526
2705
+ #, php-format
2706
+ msgid "Is this site running %s Pro"
2707
+ msgstr ""
2708
+
2709
+ #: src/features/insights.php:548
2710
+ msgid "Not yet recorded"
2711
+ msgstr ""
2712
+
2713
+ #: src/features/insights.php:585
2714
+ msgid "Simple Test Cron"
2715
+ msgstr ""
2716
+
2717
+ #: src/features/insights.php:586
2718
+ msgid "Unrecognised Files Scan"
2719
+ msgstr ""
2720
+
2721
+ #: src/features/insights.php:587
2722
+ msgid "WordPress Core Files Scan"
2723
+ msgstr ""
2724
+
2725
+ #: src/features/insights.php:588
2726
+ msgid "Plugin/Themes Guard Scan"
2727
+ msgstr ""
2728
+
2729
+ #: src/features/insights.php:589
2730
+ msgid "Plugin Vulnerabilities Scan"
2731
+ msgstr ""
2732
+
2733
+ #: src/features/insights.php:590
2734
+ msgid "Successful 2-FA Login"
2735
+ msgstr ""
2736
+
2737
+ #: src/features/insights.php:591
2738
+ msgid "Login Block"
2739
+ msgstr ""
2740
+
2741
+ #: src/features/insights.php:592
2742
+ msgid "User Registration Block"
2743
+ msgstr ""
2744
+
2745
+ #: src/features/insights.php:593
2746
+ msgid "Reset Password Block"
2747
+ msgstr ""
2748
+
2749
+ #: src/features/insights.php:594
2750
+ msgid "Firewall Block"
2751
+ msgstr ""
2752
+
2753
+ #: src/features/insights.php:595
2754
+ msgid "Idle Logout"
2755
+ msgstr ""
2756
+
2757
+ #: src/features/insights.php:596
2758
+ msgid "Password Block"
2759
+ msgstr ""
2760
+
2761
+ #: src/features/insights.php:597
2762
+ msgid "Comment SPAM Block"
2763
+ msgstr ""
2764
+
2765
+ #: src/features/insights.php:598
2766
+ msgid "XML-RPC Block"
2767
+ msgstr ""
2768
+
2769
+ #: src/features/insights.php:599
2770
+ msgid "Anonymous Rest API Block"
2771
+ msgstr ""
2772
+
2773
+ #: src/features/insights.php:600
2774
+ #, php-format
2775
+ msgid "%s Transgression"
2776
+ msgstr ""
2777
+
2778
+ #: src/features/insights.php:601
2779
+ msgid "IP Connection Blocked"
2780
+ msgstr ""
2781
+
2782
+ #: src/features/ips.php:30
2783
+ msgid "Manage IP Lists"
2784
+ msgstr ""
2785
+
2786
+ #: src/features/ips.php:31
2787
+ msgid "Add/Remove IPs"
2788
+ msgstr ""
2789
+
2790
+ #: src/features/ips.php:228
2791
+ msgid "now"
2792
+ msgstr ""
2793
+
2794
+ #: src/features/ips.php:273
2795
+ msgid ""
2796
+ "Repeated login attempts that fail will result in a complete ban of your IP "
2797
+ "Address."
2798
+ msgstr ""
2799
+
2800
+ #: src/features/ips.php:280
2801
+ #, php-format
2802
+ msgid ""
2803
+ "You have %s remaining transgression(s) against this site and then you will "
2804
+ "be black listed."
2805
+ msgstr ""
2806
+
2807
+ #: src/features/ips.php:281
2808
+ msgid "Seriously, stop repeating what you are doing or you will be locked out."
2809
+ msgstr ""
2810
+
2811
+ #: src/features/ips.php:304
2812
+ msgid ""
2813
+ "The IP Manager allows you to whitelist, blacklist and configure auto-"
2814
+ "blacklist rules."
2815
+ msgstr ""
2816
+
2817
+ #: src/features/ips.php:305 src/features/plugin.php:961
2818
+ #: src/wizards/plugin.php:525 src/wizards/plugin.php:530
2819
+ msgid "IP Manager"
2820
+ msgstr ""
2821
+
2822
+ #: src/features/ips.php:306
2823
+ msgid "You should also carefully review the automatic black list settings."
2824
+ msgstr ""
2825
+
2826
+ #: src/features/ips.php:312 src/features/ips.php:315 src/features/ips.php:358
2827
+ msgid "Automatic IP Black List"
2828
+ msgstr ""
2829
+
2830
+ #: src/features/ips.php:314
2831
+ msgid ""
2832
+ "The Automatic IP Black List system will block the IP addresses of naughty "
2833
+ "visitors after a specified number of transgressions."
2834
+ msgstr ""
2835
+
2836
+ #: src/features/ips.php:317
2837
+ msgid "Auto Black List"
2838
+ msgstr ""
2839
+
2840
+ #: src/features/ips.php:321
2841
+ msgid "Bad Request Tracking"
2842
+ msgstr ""
2843
+
2844
+ #: src/features/ips.php:322
2845
+ msgid "Request Tracking"
2846
+ msgstr ""
2847
+
2848
+ #: src/features/ips.php:324
2849
+ msgid "Track strange behaviour to determine whether visitors are legitimate."
2850
+ msgstr ""
2851
+
2852
+ #: src/features/ips.php:325
2853
+ msgid ""
2854
+ "These aren't security issues in their own right, but may indicate probing "
2855
+ "bots."
2856
+ msgstr ""
2857
+
2858
+ #: src/features/ips.php:353
2859
+ msgid "Transgression Limit"
2860
+ msgstr ""
2861
+
2862
+ #: src/features/ips.php:354
2863
+ msgid ""
2864
+ "Visitor IP address will be Black Listed after X bad actions on your site"
2865
+ msgstr ""
2866
+
2867
+ #: src/features/ips.php:355
2868
+ #, php-format
2869
+ msgid ""
2870
+ "A black mark is set against an IP address each time a visitor trips the "
2871
+ "defenses of the %s plugin."
2872
+ msgstr ""
2873
+
2874
+ #: src/features/ips.php:357
2875
+ msgid ""
2876
+ "When the number of these transgressions exceeds specified limit, they are "
2877
+ "automatically blocked from accessing the site."
2878
+ msgstr ""
2879
+
2880
+ #: src/features/ips.php:358
2881
+ #, php-format
2882
+ msgid "Set this to \"0\" to turn off the %s feature."
2883
+ msgstr ""
2884
+
2885
+ #: src/features/ips.php:362
2886
+ msgid "Auto Block Expiration"
2887
+ msgstr ""
2888
+
2889
+ #: src/features/ips.php:363
2890
+ msgid "After 1 \"X\" a black listed IP will be removed from the black list"
2891
+ msgstr ""
2892
+
2893
+ #: src/features/ips.php:364
2894
+ msgid "Permanent and lengthy IP Black Lists are harmful to performance."
2895
+ msgstr ""
2896
+
2897
+ #: src/features/ips.php:365
2898
+ msgid ""
2899
+ "You should allow IP addresses on the black list to be eventually removed "
2900
+ "over time."
2901
+ msgstr ""
2902
+
2903
+ #: src/features/ips.php:366
2904
+ msgid ""
2905
+ "Shorter IP black lists are more efficient and a more intelligent use of an "
2906
+ "IP-based blocking system."
2907
+ msgstr ""
2908
+
2909
+ #: src/features/ips.php:370
2910
+ msgid "Track 404s"
2911
+ msgstr ""
2912
+
2913
+ #: src/features/ips.php:371
2914
+ msgid "Use 404s As An Transgression"
2915
+ msgstr ""
2916
+
2917
+ #: src/features/ips.php:372
2918
+ msgid "Repeated 404s may indicate a probing bot."
2919
+ msgstr ""
2920
+
2921
+ #: src/features/ips.php:376
2922
+ msgid "Login Failed"
2923
+ msgstr ""
2924
+
2925
+ #: src/features/ips.php:377
2926
+ msgid "Visitor Triggers The IP Transgression System Through A Failed Login"
2927
+ msgstr ""
2928
+
2929
+ #: src/features/ips.php:378
2930
+ msgid "This message is displayed if the visitor fails a login attempt."
2931
+ msgstr ""
2932
+
2933
+ #: src/features/ips.php:382
2934
+ msgid "Remaining Transgressions"
2935
+ msgstr ""
2936
+
2937
+ #: src/features/ips.php:383
2938
+ msgid "Visitor Triggers The IP Transgression System Through A Firewall Block"
2939
+ msgstr ""
2940
+
2941
+ #: src/features/ips.php:384
2942
+ msgid ""
2943
+ "This message is displayed if the visitor triggered the IP Transgression "
2944
+ "system and reports how many transgressions remain before being blocked."
2945
+ msgstr ""
2946
+
2947
+ #: src/features/ips.php:426
2948
+ #, php-format
2949
+ msgid ""
2950
+ "Sorry, the %s feature may not be disabled while there are IP addresses in "
2951
+ "the White List"
2952
+ msgstr ""
2953
+
2954
+ #: src/features/license.php:39 src/features/license.php:98
2955
+ msgid "Active"
2956
+ msgstr ""
2957
+
2958
+ #: src/features/license.php:39
2959
+ msgid "Not Active"
2960
+ msgstr ""
2961
+
2962
+ #: src/features/license.php:97
2963
+ msgid "Name"
2964
+ msgstr ""
2965
+
2966
+ #: src/features/license.php:99
2967
+ msgid "Status"
2968
+ msgstr ""
2969
+
2970
+ #: src/features/license.php:100
2971
+ msgid "Key"
2972
+ msgstr ""
2973
+
2974
+ #: src/features/license.php:101
2975
+ msgid "Expires"
2976
+ msgstr ""
2977
+
2978
+ #: src/features/license.php:102
2979
+ msgid "Owner"
2980
+ msgstr ""
2981
+
2982
+ #: src/features/license.php:103
2983
+ msgid "Checked"
2984
+ msgstr ""
2985
+
2986
+ #: src/features/license.php:104
2987
+ msgid "Error"
2988
+ msgstr ""
2989
+
2990
+ #: src/features/license.php:176
2991
+ #, php-format
2992
+ msgid "Please wait %s before attempting another license check."
2993
+ msgstr ""
2994
+
2995
+ #: src/features/license.php:177
2996
+ #, php-format
2997
+ msgid "%s second"
2998
+ msgid_plural "%s seconds"
2999
+ msgstr[0] ""
3000
+ msgstr[1] ""
3001
+
3002
+ #: src/features/license.php:183
3003
+ msgid "Valid license found."
3004
+ msgstr ""
3005
+
3006
+ #: src/features/license.php:183
3007
+ msgid "Valid license couldn't be found."
3008
+ msgstr ""
3009
+
3010
+ #: src/features/license.php:305
3011
+ #, php-format
3012
+ msgid "Automatic license verification failed after %s days."
3013
+ msgstr ""
3014
+
3015
+ #: src/features/license.php:351
3016
+ msgid "Attempts to verify Shield Pro license has just failed."
3017
+ msgstr ""
3018
+
3019
+ #: src/features/license.php:352 src/features/license.php:369
3020
+ #, php-format
3021
+ msgid "Please check your license on-site: %s"
3022
+ msgstr ""
3023
+
3024
+ #: src/features/license.php:353 src/features/license.php:370
3025
+ #, php-format
3026
+ msgid "If this problem persists, please contact support: %s"
3027
+ msgstr ""
3028
+
3029
+ #: src/features/license.php:368
3030
+ msgid "All attempts to verify Shield Pro license have failed."
3031
+ msgstr ""
3032
+
3033
+ #: src/features/license.php:688 src/features/license.php:689
3034
+ msgid "License Options"
3035
+ msgstr ""
3036
+
3037
+ #: src/features/license.php:691
3038
+ #, php-format
3039
+ msgid "Activate %s Pro Extensions."
3040
+ msgstr ""
3041
+
3042
+ #: src/features/license.php:692
3043
+ msgid "TODO."
3044
+ msgstr ""
3045
+
3046
+ #: src/features/license.php:716 src/features/license.php:717
3047
+ #: src/features/license.php:718
3048
+ msgid "License Key"
3049
+ msgstr ""
3050
+
3051
+ #: src/features/lockdown.php:52 src/features/lockdown.php:88
3052
+ #: src/features/plugin.php:963
3053
+ msgid "Lockdown"
3054
+ msgstr ""
3055
+
3056
+ #: src/features/lockdown.php:60
3057
+ msgid "Direct editing of plugin/theme files is permitted."
3058
+ msgstr ""
3059
+
3060
+ #: src/features/lockdown.php:63
3061
+ msgid "WP Plugin file editing should be disabled."
3062
+ msgstr ""
3063
+
3064
+ #: src/features/lockdown.php:87
3065
+ msgid ""
3066
+ "Lockdown helps secure-up certain loosely-controlled WordPress settings on "
3067
+ "your site."
3068
+ msgstr ""
3069
+
3070
+ #: src/features/lockdown.php:94 src/features/lockdown.php:99
3071
+ msgid "API & XML-RPC"
3072
+ msgstr ""
3073
+
3074
+ #: src/features/lockdown.php:96
3075
+ msgid "Lockdown certain core WordPress system features."
3076
+ msgstr ""
3077
+
3078
+ #: src/features/lockdown.php:97
3079
+ msgid ""
3080
+ "This depends on your usage and needs for certain WordPress functions and "
3081
+ "features."
3082
+ msgstr ""
3083
+
3084
+ #: src/features/lockdown.php:103
3085
+ msgid "Permissions and Access Options"
3086
+ msgstr ""
3087
+
3088
+ #: src/features/lockdown.php:105
3089
+ msgid "Provides finer control of certain WordPress permissions."
3090
+ msgstr ""
3091
+
3092
+ #: src/features/lockdown.php:106
3093
+ msgid "Only enable SSL if you have a valid certificate installed."
3094
+ msgstr ""
3095
+
3096
+ #: src/features/lockdown.php:108
3097
+ msgid "Permissions"
3098
+ msgstr ""
3099
+
3100
+ #: src/features/lockdown.php:112
3101
+ msgid "WordPress Obscurity Options"
3102
+ msgstr ""
3103
+
3104
+ #: src/features/lockdown.php:114
3105
+ msgid "Obscures certain WordPress settings from public view."
3106
+ msgstr ""
3107
+
3108
+ #: src/features/lockdown.php:115
3109
+ msgid ""
3110
+ "Obscurity is not true security and so these settings are down to your "
3111
+ "personal tastes."
3112
+ msgstr ""
3113
+
3114
+ #: src/features/lockdown.php:117
3115
+ msgid "Obscurity"
3116
+ msgstr ""
3117
+
3118
+ #: src/features/lockdown.php:146 src/features/plugin.php:726
3119
+ #, php-format
3120
+ msgid "Disable %s"
3121
+ msgstr ""
3122
+
3123
+ #: src/features/lockdown.php:147 src/features/lockdown.php:153
3124
+ #, php-format
3125
+ msgid "Disable The %s System"
3126
+ msgstr ""
3127
+
3128
+ #: src/features/lockdown.php:148
3129
+ #, php-format
3130
+ msgid "Checking this option will completely turn off the whole %s system."
3131
+ msgstr ""
3132
+
3133
+ #: src/features/lockdown.php:152 src/features/lockdown.php:153
3134
+ msgid "Anonymous Rest API"
3135
+ msgstr ""
3136
+
3137
+ #: src/features/lockdown.php:154
3138
+ msgid "You can choose to completely disable anonymous access to the REST API."
3139
+ msgstr ""
3140
+
3141
+ #: src/features/lockdown.php:158
3142
+ msgid "Rest API Exclusions"
3143
+ msgstr ""
3144
+
3145
+ #: src/features/lockdown.php:159
3146
+ msgid "Anonymous REST API Exclusions"
3147
+ msgstr ""
3148
+
3149
+ #: src/features/lockdown.php:160
3150
+ msgid ""
3151
+ "Any namespaces provided here will be excluded from the Anonymous API "
3152
+ "restriction."
3153
+ msgstr ""
3154
+
3155
+ #: src/features/lockdown.php:164
3156
+ msgid "Disable File Editing"
3157
+ msgstr ""
3158
+
3159
+ #: src/features/lockdown.php:165
3160
+ msgid "Disable Ability To Edit Files From Within WordPress"
3161
+ msgstr ""
3162
+
3163
+ #: src/features/lockdown.php:166
3164
+ msgid ""
3165
+ "Removes the option to directly edit any files from within the WordPress "
3166
+ "admin area."
3167
+ msgstr ""
3168
+
3169
+ #: src/features/lockdown.php:167
3170
+ msgid "Equivalent to setting \"DISALLOW_FILE_EDIT\" to TRUE."
3171
+ msgstr ""
3172
+
3173
+ #: src/features/lockdown.php:171
3174
+ msgid "Force SSL Admin"
3175
+ msgstr ""
3176
+
3177
+ #: src/features/lockdown.php:172
3178
+ msgid "Forces WordPress Admin Dashboard To Be Delivered Over SSL"
3179
+ msgstr ""
3180
+
3181
+ #: src/features/lockdown.php:173
3182
+ msgid ""
3183
+ "Please only enable this option if you have a valid SSL certificate installed."
3184
+ msgstr ""
3185
+
3186
+ #: src/features/lockdown.php:174
3187
+ msgid "Equivalent to setting \"FORCE_SSL_ADMIN\" to TRUE."
3188
+ msgstr ""
3189
+
3190
+ #: src/features/lockdown.php:178
3191
+ msgid "Mask WordPress Version"
3192
+ msgstr ""
3193
+
3194
+ #: src/features/lockdown.php:179
3195
+ msgid "Prevents Public Display Of Your WordPress Version"
3196
+ msgstr ""
3197
+
3198
+ #: src/features/lockdown.php:180
3199
+ msgid ""
3200
+ "Enter how you would like your WordPress version displayed publicly. Leave "
3201
+ "blank to disable this feature."
3202
+ msgstr ""
3203
+
3204
+ #: src/features/lockdown.php:181
3205
+ msgid ""
3206
+ "This may interfere with WordPress plugins that rely on the $wp_version "
3207
+ "variable."
3208
+ msgstr ""
3209
+
3210
+ #: src/features/lockdown.php:185
3211
+ msgid "WP Generator Tag"
3212
+ msgstr ""
3213
+
3214
+ #: src/features/lockdown.php:186
3215
+ msgid "Remove WP Generator Meta Tag"
3216
+ msgstr ""
3217
+
3218
+ #: src/features/lockdown.php:187
3219
+ msgid ""
3220
+ "Remove a meta tag from your WordPress pages that publicly displays that your "
3221
+ "site is WordPress and its current version."
3222
+ msgstr ""
3223
+
3224
+ #: src/features/lockdown.php:191
3225
+ msgid "Block Username Fishing"
3226
+ msgstr ""
3227
+
3228
+ #: src/features/lockdown.php:192
3229
+ msgid "Block the ability to discover WordPress usernames based on author IDs"
3230
+ msgstr ""
3231
+
3232
+ #: src/features/lockdown.php:193
3233
+ #, php-format
3234
+ msgid "When enabled, any URL requests containing \"%s\" will be killed."
3235
+ msgstr ""
3236
+
3237
+ #: src/features/lockdown.php:194
3238
+ msgid ""
3239
+ "Enabling this option may interfere with expected operations of your site."
3240
+ msgstr ""
3241
+
3242
+ #: src/features/login_protect.php:25
3243
+ msgid "Email verification completed successfully."
3244
+ msgstr ""
3245
+
3246
+ #: src/features/login_protect.php:28
3247
+ msgid "Email verification could not be completed."
3248
+ msgstr ""
3249
+
3250
+ #: src/features/login_protect.php:86
3251
+ msgid ""
3252
+ "Before enabling 2-factor email authentication for your WordPress site, you "
3253
+ "must verify you can receive this email."
3254
+ msgstr ""
3255
+
3256
+ #: src/features/login_protect.php:87
3257
+ msgid ""
3258
+ "This verifies your website can send email and that your account can receive "
3259
+ "emails sent from your site."
3260
+ msgstr ""
3261
+
3262
+ #: src/features/login_protect.php:92
3263
+ #, php-format
3264
+ msgid "Click the verify link: %s"
3265
+ msgstr ""
3266
+
3267
+ #: src/features/login_protect.php:95
3268
+ #, php-format
3269
+ msgid "Here's your code for the guided wizard: %s"
3270
+ msgstr ""
3271
+
3272
+ #: src/features/login_protect.php:98
3273
+ msgid "Email Sending Verification"
3274
+ msgstr ""
3275
+
3276
+ #: src/features/login_protect.php:161
3277
+ msgid "Subscribers"
3278
+ msgstr ""
3279
+
3280
+ #: src/features/login_protect.php:162
3281
+ msgid "Contributors"
3282
+ msgstr ""
3283
+
3284
+ #: src/features/login_protect.php:163
3285
+ msgid "Authors"
3286
+ msgstr ""
3287
+
3288
+ #: src/features/login_protect.php:164
3289
+ msgid "Editors"
3290
+ msgstr ""
3291
+
3292
+ #: src/features/login_protect.php:429
3293
+ msgid "I'm a human."
3294
+ msgstr ""
3295
+
3296
+ #: src/features/login_protect.php:433
3297
+ msgid "Please check the box to show us you're a human."
3298
+ msgstr ""
3299
+
3300
+ #: src/features/login_protect.php:468
3301
+ #, php-format
3302
+ msgid "Support for login protection with %s is a Pro-only feature."
3303
+ msgstr ""
3304
+
3305
+ #: src/features/login_protect.php:474
3306
+ msgid ""
3307
+ "2FA by email demands that your WP site is properly configured to send email."
3308
+ msgstr ""
3309
+
3310
+ #: src/features/login_protect.php:475
3311
+ msgid ""
3312
+ "This is a common problem and you may get locked out in the future if you "
3313
+ "ignore this."
3314
+ msgstr ""
3315
+
3316
+ #: src/features/login_protect.php:476 src/processors/lockdown.php:219
3317
+ #: src/processors/plugin_tracking.php:37
3318
+ msgid "Learn More."
3319
+ msgstr ""
3320
+
3321
+ #: src/features/login_protect.php:573
3322
+ msgid "Multi-factor login backup code has been removed from your profile"
3323
+ msgstr ""
3324
+
3325
+ #: src/features/login_protect.php:607
3326
+ msgid ""
3327
+ "Login Guard blocks all automated and brute force attempts to log in to your "
3328
+ "site."
3329
+ msgstr ""
3330
+
3331
+ #: src/features/login_protect.php:608 src/features/plugin.php:965
3332
+ #: src/wizards/plugin.php:561 src/wizards/plugin.php:566
3333
+ msgid "Login Guard"
3334
+ msgstr ""
3335
+
3336
+ #: src/features/login_protect.php:616
3337
+ msgid "Adds Google reCAPTCHA to the Login Forms."
3338
+ msgstr ""
3339
+
3340
+ #: src/features/login_protect.php:623
3341
+ msgid "Hide WordPress Login Page"
3342
+ msgstr ""
3343
+
3344
+ #: src/features/login_protect.php:624
3345
+ #, php-format
3346
+ msgid "Rename \"%s\""
3347
+ msgstr ""
3348
+
3349
+ #: src/features/login_protect.php:625
3350
+ msgid "Hide Login Page"
3351
+ msgstr ""
3352
+
3353
+ #: src/features/login_protect.php:627
3354
+ msgid ""
3355
+ "To hide your wp-login.php page from brute force attacks and hacking attempts "
3356
+ "- if your login page cannot be found, no-one can login."
3357
+ msgstr ""
3358
+
3359
+ #: src/features/login_protect.php:628
3360
+ msgid ""
3361
+ "This is not required for complete security and if your site has irregular or "
3362
+ "inconsistent configuration it may not work for you."
3363
+ msgstr ""
3364
+
3365
+ #: src/features/login_protect.php:633 src/features/login_protect.php:714
3366
+ #: src/features/user_management.php:344
3367
+ msgid "Multi-Factor Authentication"
3368
+ msgstr ""
3369
+
3370
+ #: src/features/login_protect.php:634
3371
+ msgid "Multi-Factor Auth"
3372
+ msgstr ""
3373
+
3374
+ #: src/features/login_protect.php:636 src/features/user_management.php:341
3375
+ msgid ""
3376
+ "Verifies the identity of users who log in to your site - i.e. they are who "
3377
+ "they say they are."
3378
+ msgstr ""
3379
+
3380
+ #: src/features/login_protect.php:637 src/features/login_protect.php:647
3381
+ #: src/features/login_protect.php:656 src/features/login_protect.php:674
3382
+ msgid "You may combine multiple authentication factors for increased security."
3383
+ msgstr ""
3384
+
3385
+ #: src/features/login_protect.php:642
3386
+ msgid "Email Two-Factor Authentication"
3387
+ msgstr ""
3388
+
3389
+ #: src/features/login_protect.php:643
3390
+ msgid "2FA - Email"
3391
+ msgstr ""
3392
+
3393
+ #: src/features/login_protect.php:645
3394
+ msgid ""
3395
+ "Verifies the identity of users who log in to your site using email-based one-"
3396
+ "time-passwords."
3397
+ msgstr ""
3398
+
3399
+ #: src/features/login_protect.php:646 src/features/user_management.php:342
3400
+ msgid "However, if your host blocks email sending you may lock yourself out."
3401
+ msgstr ""
3402
+
3403
+ #: src/features/login_protect.php:652
3404
+ msgid "Google Authenticator Two-Factor Authentication"
3405
+ msgstr ""
3406
+
3407
+ #: src/features/login_protect.php:653
3408
+ msgid "2FA - Google Authenticator"
3409
+ msgstr ""
3410
+
3411
+ #: src/features/login_protect.php:655
3412
+ msgid ""
3413
+ "Verifies the identity of users who log in to your site using Google "
3414
+ "Authenticator one-time-passwords."
3415
+ msgstr ""
3416
+
3417
+ #: src/features/login_protect.php:661
3418
+ msgid "Brute Force Login Protection"
3419
+ msgstr ""
3420
+
3421
+ #: src/features/login_protect.php:662
3422
+ msgid "reCAPTCHA & Bots"
3423
+ msgstr ""
3424
+
3425
+ #: src/features/login_protect.php:664
3426
+ msgid ""
3427
+ "Blocks brute force hacking attacks against your login and registration pages."
3428
+ msgstr ""
3429
+
3430
+ #: src/features/login_protect.php:670
3431
+ msgid "Yubikey Two-Factor Authentication"
3432
+ msgstr ""
3433
+
3434
+ #: src/features/login_protect.php:671
3435
+ msgid "2FA -Yubikey"
3436
+ msgstr ""
3437
+
3438
+ #: src/features/login_protect.php:673
3439
+ msgid ""
3440
+ "Verifies the identity of users who log in to your site using Yubikey one-"
3441
+ "time-passwords."
3442
+ msgstr ""
3443
+
3444
+ #: src/features/login_protect.php:704
3445
+ msgid "Hide WP Login Page"
3446
+ msgstr ""
3447
+
3448
+ #: src/features/login_protect.php:705
3449
+ msgid "Hide The WordPress Login Page"
3450
+ msgstr ""
3451
+
3452
+ #: src/features/login_protect.php:706
3453
+ msgid "Creating a path here will disable your wp-login.php"
3454
+ msgstr ""
3455
+
3456
+ #: src/features/login_protect.php:708
3457
+ #, php-format
3458
+ msgid "Only letters and numbers are permitted: %s"
3459
+ msgstr ""
3460
+
3461
+ #: src/features/login_protect.php:710
3462
+ #, php-format
3463
+ msgid "Your current login URL is: %s"
3464
+ msgstr ""
3465
+
3466
+ #: src/features/login_protect.php:715
3467
+ msgid "Require All Active Authentication Factors"
3468
+ msgstr ""
3469
+
3470
+ #: src/features/login_protect.php:716
3471
+ msgid ""
3472
+ "When enabled, all multi-factor authentication methods will be applied to a "
3473
+ "user login. Disable to require only one to login."
3474
+ msgstr ""
3475
+
3476
+ #: src/features/login_protect.php:720
3477
+ msgid "Multi-Factor By-Pass"
3478
+ msgstr ""
3479
+
3480
+ #: src/features/login_protect.php:721
3481
+ msgid ""
3482
+ "A User Can By-Pass Multi-Factor Authentication (MFA) For The Set Number Of "
3483
+ "Days"
3484
+ msgstr ""
3485
+
3486
+ #: src/features/login_protect.php:722
3487
+ msgid ""
3488
+ "Enter the number of days a user can by-pass future MFA after a successful "
3489
+ "MFA-login. 0 to disable."
3490
+ msgstr ""
3491
+
3492
+ #: src/features/login_protect.php:726
3493
+ msgid "Allow Backup Codes"
3494
+ msgstr ""
3495
+
3496
+ #: src/features/login_protect.php:727
3497
+ msgid "Allow Users To Generate A Backup Code"
3498
+ msgstr ""
3499
+
3500
+ #: src/features/login_protect.php:728
3501
+ msgid ""
3502
+ "Allow users to generate a backup code that can be used to login if MFA "
3503
+ "factors are unavailable."
3504
+ msgstr ""
3505
+
3506
+ #: src/features/login_protect.php:732
3507
+ #: src/processors/loginprotect_backupcodes.php:40
3508
+ #: src/processors/loginprotect_googleauthenticator.php:41
3509
+ #: src/processors/loginprotect_googleauthenticator.php:45
3510
+ #: src/processors/loginprotect_googleauthenticator.php:47
3511
+ #: src/processors/loginprotect_googleauthenticator.php:184
3512
+ #: src/processors/loginprotect_googleauthenticator.php:289
3513
+ #: src/processors/loginprotect_googleauthenticator.php:297
3514
+ msgid "Google Authenticator"
3515
+ msgstr ""
3516
+
3517
+ #: src/features/login_protect.php:733
3518
+ msgid "Allow Users To Use Google Authenticator"
3519
+ msgstr ""
3520
+
3521
+ #: src/features/login_protect.php:734
3522
+ msgid ""
3523
+ "When enabled, users will have the option to add Google Authenticator to "
3524
+ "their WordPress user profile"
3525
+ msgstr ""
3526
+
3527
+ #: src/features/login_protect.php:738 src/features/login_protect.php:744
3528
+ #: src/features/login_protect.php:747
3529
+ #: src/processors/loginprotect_twofactorauth.php:201
3530
+ #: src/processors/loginprotect_twofactorauth.php:202
3531
+ msgid "Email Authentication"
3532
+ msgstr ""
3533
+
3534
+ #: src/features/login_protect.php:739
3535
+ #, php-format
3536
+ msgid "Two-Factor Login Authentication By %s"
3537
+ msgstr ""
3538
+
3539
+ #: src/features/login_protect.php:739 src/features/plugin.php:955
3540
+ #: src/processors/user_management.php:209
3541
+ msgid "Email"
3542
+ msgstr ""
3543
+
3544
+ #: src/features/login_protect.php:740
3545
+ msgid ""
3546
+ "All users will be required to verify their login by email-based two-factor "
3547
+ "authentication."
3548
+ msgstr ""
3549
+
3550
+ #: src/features/login_protect.php:744
3551
+ msgid "Enforce"
3552
+ msgstr ""
3553
+
3554
+ #: src/features/login_protect.php:745
3555
+ msgid "All User Roles Subject To Email Authentication"
3556
+ msgstr ""
3557
+
3558
+ #: src/features/login_protect.php:746
3559
+ msgid ""
3560
+ "Enforces email-based authentication on all users with the selected roles."
3561
+ msgstr ""
3562
+
3563
+ #: src/features/login_protect.php:747
3564
+ #, php-format
3565
+ msgid "This setting only applies to %s."
3566
+ msgstr ""
3567
+
3568
+ #: src/features/login_protect.php:751
3569
+ msgid "Google reCAPTCHA"
3570
+ msgstr ""
3571
+
3572
+ #: src/features/login_protect.php:752
3573
+ msgid "Protect WordPress Account Access Requests With Google reCAPTCHA"
3574
+ msgstr ""
3575
+
3576
+ #: src/features/login_protect.php:753
3577
+ msgid ""
3578
+ "Use Google reCAPTCHA on the user account forms such as login, register, etc."
3579
+ msgstr ""
3580
+
3581
+ #: src/features/login_protect.php:754
3582
+ #, php-format
3583
+ msgid "Use of any theme other than \"%s\", requires a Pro license."
3584
+ msgstr ""
3585
+
3586
+ #: src/features/login_protect.php:754
3587
+ msgid "Light Theme"
3588
+ msgstr ""
3589
+
3590
+ #: src/features/login_protect.php:755
3591
+ msgid ""
3592
+ "You'll need to setup your Google reCAPTCHA API Keys in 'General' settings."
3593
+ msgstr ""
3594
+
3595
+ #: src/features/login_protect.php:756
3596
+ msgid ""
3597
+ "Some forms are more dynamic than others so if you experience problems, "
3598
+ "please use non-Invisible reCAPTCHA."
3599
+ msgstr ""
3600
+
3601
+ #: src/features/login_protect.php:766
3602
+ msgid "Protection Locations"
3603
+ msgstr ""
3604
+
3605
+ #: src/features/login_protect.php:767
3606
+ msgid "Which Forms Should Be Protected"
3607
+ msgstr ""
3608
+
3609
+ #: src/features/login_protect.php:768
3610
+ msgid "Choose the forms for which bot protection measures will be deployed."
3611
+ msgstr ""
3612
+
3613
+ #: src/features/login_protect.php:769
3614
+ #, php-format
3615
+ msgid "Use with 3rd party systems such as %s, requires a Pro license."
3616
+ msgstr ""
3617
+
3618
+ #: src/features/login_protect.php:773
3619
+ msgid "Bot Protection"
3620
+ msgstr ""
3621
+
3622
+ #: src/features/login_protect.php:774
3623
+ msgid "Protect WP Login From Automated Login Attempts By Bots"
3624
+ msgstr ""
3625
+
3626
+ #: src/features/login_protect.php:775
3627
+ msgid ""
3628
+ "Adds a dynamically (Javascript) generated checkbox to the login form that "
3629
+ "prevents bots using automated login techniques."
3630
+ msgstr ""
3631
+
3632
+ #: src/features/login_protect.php:776
3633
+ msgid "ON"
3634
+ msgstr ""
3635
+
3636
+ #: src/features/login_protect.php:780
3637
+ msgid "Cooldown Period"
3638
+ msgstr ""
3639
+
3640
+ #: src/features/login_protect.php:781
3641
+ msgid "Limit account access requests to every X seconds"
3642
+ msgstr ""
3643
+
3644
+ #: src/features/login_protect.php:782
3645
+ msgid ""
3646
+ "WordPress will process only ONE account access attempt per number of seconds "
3647
+ "specified."
3648
+ msgstr ""
3649
+
3650
+ #: src/features/login_protect.php:783
3651
+ msgid "Zero (0) turns this off."
3652
+ msgstr ""
3653
+
3654
+ #: src/features/login_protect.php:789
3655
+ msgid "User Registration"
3656
+ msgstr ""
3657
+
3658
+ #: src/features/login_protect.php:790
3659
+ msgid "Apply Brute Force Protection To User Registration And Lost Passwords"
3660
+ msgstr ""
3661
+
3662
+ #: src/features/login_protect.php:791
3663
+ msgid ""
3664
+ "When enabled, settings in this section will also apply to new user "
3665
+ "registration and users trying to reset passwords."
3666
+ msgstr ""
3667
+
3668
+ #: src/features/login_protect.php:795
3669
+ msgid "Enable Yubikey Authentication"
3670
+ msgstr ""
3671
+
3672
+ #: src/features/login_protect.php:796
3673
+ msgid "Turn On / Off Yubikey Authentication On This Site"
3674
+ msgstr ""
3675
+
3676
+ #: src/features/login_protect.php:797
3677
+ msgid ""
3678
+ "Combined with your Yubikey API details this will form the basis of your "
3679
+ "Yubikey Authentication"
3680
+ msgstr ""
3681
+
3682
+ #: src/features/login_protect.php:801
3683
+ msgid "Yubikey App ID"
3684
+ msgstr ""
3685
+
3686
+ #: src/features/login_protect.php:802
3687
+ msgid "Your Unique Yubikey App ID"
3688
+ msgstr ""
3689
+
3690
+ #: src/features/login_protect.php:803
3691
+ msgid ""
3692
+ "Combined with your Yubikey API Key this will form the basis of your Yubikey "
3693
+ "Authentication"
3694
+ msgstr ""
3695
+
3696
+ #: src/features/login_protect.php:804
3697
+ msgid ""
3698
+ "Please review the info link on how to obtain your own Yubikey App ID and API "
3699
+ "Key."
3700
+ msgstr ""
3701
+
3702
+ #: src/features/login_protect.php:808
3703
+ msgid "Yubikey API Key"
3704
+ msgstr ""
3705
+
3706
+ #: src/features/login_protect.php:809
3707
+ msgid "Your Unique Yubikey App API Key"
3708
+ msgstr ""
3709
+
3710
+ #: src/features/login_protect.php:810
3711
+ msgid ""
3712
+ "Combined with your Yubikey App ID this will form the basis of your Yubikey "
3713
+ "Authentication."
3714
+ msgstr ""
3715
+
3716
+ #: src/features/login_protect.php:811
3717
+ msgid ""
3718
+ "Please review the info link on how to get your own Yubikey App ID and API "
3719
+ "Key."
3720
+ msgstr ""
3721
+
3722
+ #: src/features/login_protect.php:815
3723
+ msgid "Yubikey Unique Keys"
3724
+ msgstr ""
3725
+
3726
+ #: src/features/login_protect.php:816
3727
+ msgid ""
3728
+ "This method for Yubikeys is no longer supported. Please see your user profile"
3729
+ msgstr ""
3730
+
3731
+ #: src/features/login_protect.php:817
3732
+ msgid "Format"
3733
+ msgstr ""
3734
+
3735
+ #: src/features/login_protect.php:818
3736
+ msgid "Provide Username<->Yubikey Pairs that are usable for this site."
3737
+ msgstr ""
3738
+
3739
+ #: src/features/login_protect.php:819
3740
+ msgid ""
3741
+ "If a Username if not assigned a Yubikey, Yubikey Authentication is OFF for "
3742
+ "that user."
3743
+ msgstr ""
3744
+
3745
+ #: src/features/login_protect.php:820
3746
+ msgid ""
3747
+ "Each [Username,Key] pair should be separated by a new line: you only need to "
3748
+ "provide the first 12 characters of the yubikey."
3749
+ msgstr ""
3750
+
3751
+ #: src/features/login_protect.php:824
3752
+ msgid "GASP Checkbox Text"
3753
+ msgstr ""
3754
+
3755
+ #: src/features/login_protect.php:825
3756
+ msgid "The User Message Displayed Next To The GASP Checkbox"
3757
+ msgstr ""
3758
+
3759
+ #: src/features/login_protect.php:826
3760
+ msgid ""
3761
+ "You can change the text displayed to the user beside the checkbox if you "
3762
+ "need a custom message."
3763
+ msgstr ""
3764
+
3765
+ #: src/features/login_protect.php:831
3766
+ msgid "GASP Alert Text"
3767
+ msgstr ""
3768
+
3769
+ #: src/features/login_protect.php:832
3770
+ msgid "The Message Displayed If The User Doesn't Check The Box"
3771
+ msgstr ""
3772
+
3773
+ #: src/features/login_protect.php:833
3774
+ msgid ""
3775
+ "You can change the text displayed to the user in the alert message if they "
3776
+ "don't check the box."
3777
+ msgstr ""
3778
+
3779
+ #: src/features/plugin.php:234
3780
+ msgid "File could not be automatically removed."
3781
+ msgstr ""
3782
+
3783
+ #: src/features/plugin.php:297
3784
+ msgid "Sorry, you do not have permission to disable this plugin."
3785
+ msgstr ""
3786
+
3787
+ #: src/features/plugin.php:298
3788
+ msgid "You need to authenticate first."
3789
+ msgstr ""
3790
+
3791
+ #: src/features/plugin.php:648
3792
+ #, php-format
3793
+ msgid "This Site Is Protected By %s"
3794
+ msgstr ""
3795
+
3796
+ #: src/features/plugin.php:671
3797
+ msgid "Plugin Actions"
3798
+ msgstr ""
3799
+
3800
+ #: src/features/plugin.php:672
3801
+ msgid "E.g. Import/Export"
3802
+ msgstr ""
3803
+
3804
+ #: src/features/plugin.php:725
3805
+ msgid "Global Security Plugin Disable"
3806
+ msgstr ""
3807
+
3808
+ #: src/features/plugin.php:730 src/features/plugin.php:731
3809
+ msgid "Plugin Defaults"
3810
+ msgstr ""
3811
+
3812
+ #: src/features/plugin.php:733
3813
+ msgid "Important default settings used throughout the plugin."
3814
+ msgstr ""
3815
+
3816
+ #: src/features/plugin.php:738 src/features/plugin.php:743
3817
+ msgid "Import"
3818
+ msgstr ""
3819
+
3820
+ #: src/features/plugin.php:738 src/features/plugin.php:743
3821
+ msgid "Export"
3822
+ msgstr ""
3823
+
3824
+ #: src/features/plugin.php:740
3825
+ msgid ""
3826
+ "Automatically import options, and deploy configurations across your entire "
3827
+ "network."
3828
+ msgstr ""
3829
+
3830
+ #: src/features/plugin.php:741
3831
+ msgid "This is a Pro-only feature."
3832
+ msgstr ""
3833
+
3834
+ #: src/features/plugin.php:747
3835
+ msgid "General Plugin Options"
3836
+ msgstr ""
3837
+
3838
+ #: src/features/plugin.php:748
3839
+ msgid "General Options"
3840
+ msgstr ""
3841
+
3842
+ #: src/features/plugin.php:752 src/features/plugin.php:753
3843
+ msgid "Google"
3844
+ msgstr ""
3845
+
3846
+ #: src/features/plugin.php:755
3847
+ #, php-format
3848
+ msgid "Setup Google reCAPTCHA for use across %s."
3849
+ msgstr ""
3850
+
3851
+ #: src/features/plugin.php:759
3852
+ msgid "You must create your own Google reCAPTCHA API Keys."
3853
+ msgstr ""
3854
+
3855
+ #: src/features/plugin.php:761
3856
+ msgid "API Keys"
3857
+ msgstr ""
3858
+
3859
+ #: src/features/plugin.php:763
3860
+ #, php-format
3861
+ msgid "Invisible Google reCAPTCHA is available with %s Pro."
3862
+ msgstr ""
3863
+
3864
+ #: src/features/plugin.php:768 src/features/plugin.php:769
3865
+ msgid "Duo Security"
3866
+ msgstr ""
3867
+
3868
+ #: src/features/plugin.php:792
3869
+ msgid "Enable/Disable Plugin Modules"
3870
+ msgstr ""
3871
+
3872
+ #: src/features/plugin.php:793
3873
+ msgid "Enable/Disable All Plugin Modules"
3874
+ msgstr ""
3875
+
3876
+ #: src/features/plugin.php:794
3877
+ #, php-format
3878
+ msgid "Uncheck this option to disable all %s features."
3879
+ msgstr ""
3880
+
3881
+ #: src/features/plugin.php:799
3882
+ msgid "Admin Notes"
3883
+ msgstr ""
3884
+
3885
+ #: src/features/plugin.php:800
3886
+ msgid "Turn-On Admin Notes Section In Insights Dashboard"
3887
+ msgstr ""
3888
+
3889
+ #: src/features/plugin.php:801
3890
+ msgid ""
3891
+ "When turned-on it enables administrators to enter custom notes in the "
3892
+ "Insights Dashboard."
3893
+ msgstr ""
3894
+
3895
+ #: src/features/plugin.php:805
3896
+ msgid "Information Gathering"
3897
+ msgstr ""
3898
+
3899
+ #: src/features/plugin.php:806
3900
+ msgid "Permit Anonymous Usage Information Gathering"
3901
+ msgstr ""
3902
+
3903
+ #: src/features/plugin.php:807
3904
+ msgid ""
3905
+ "Allows us to gather information on statistics and features in-use across our "
3906
+ "client installations."
3907
+ msgstr ""
3908
+
3909
+ #: src/features/plugin.php:808
3910
+ msgid ""
3911
+ "This information is strictly anonymous and contains no personally, or "
3912
+ "otherwise, identifiable data."
3913
+ msgstr ""
3914
+
3915
+ #: src/features/plugin.php:809
3916
+ msgid "Click to see the exact data that would be sent."
3917
+ msgstr ""
3918
+
3919
+ #: src/features/plugin.php:813
3920
+ msgid "IP Source"
3921
+ msgstr ""
3922
+
3923
+ #: src/features/plugin.php:814
3924
+ msgid "Which IP Address Is Yours"
3925
+ msgstr ""
3926
+
3927
+ #: src/features/plugin.php:815
3928
+ msgid ""
3929
+ "There are many possible ways to detect visitor IP addresses. If Auto-Detect "
3930
+ "is not working, please select yours from the list."
3931
+ msgstr ""
3932
+
3933
+ #: src/features/plugin.php:816
3934
+ msgid ""
3935
+ "If the option you select becomes unavailable, we will revert to auto "
3936
+ "detection."
3937
+ msgstr ""
3938
+
3939
+ #: src/features/plugin.php:817
3940
+ #, php-format
3941
+ msgid "Current source is: %s"
3942
+ msgstr ""
3943
+
3944
+ #: src/features/plugin.php:822
3945
+ msgid "Report Email"
3946
+ msgstr ""
3947
+
3948
+ #: src/features/plugin.php:823
3949
+ msgid "Where to send email reports"
3950
+ msgstr ""
3951
+
3952
+ #: src/features/plugin.php:824
3953
+ #, php-format
3954
+ msgid "If this is empty, it will default to the blog admin email address: %s"
3955
+ msgstr ""
3956
+
3957
+ #: src/features/plugin.php:828
3958
+ msgid "In-Plugin Notices"
3959
+ msgstr ""
3960
+
3961
+ #: src/features/plugin.php:829
3962
+ msgid "Display Plugin Specific Notices"
3963
+ msgstr ""
3964
+
3965
+ #: src/features/plugin.php:830
3966
+ msgid ""
3967
+ "Disable this option to hide certain plugin admin notices about available "
3968
+ "updates and post-update notices."
3969
+ msgstr ""
3970
+
3971
+ #: src/features/plugin.php:834
3972
+ msgid "Show Plugin Badge"
3973
+ msgstr ""
3974
+
3975
+ #: src/features/plugin.php:835
3976
+ msgid "Display Plugin Badge On Your Site"
3977
+ msgstr ""
3978
+
3979
+ #: src/features/plugin.php:836
3980
+ msgid ""
3981
+ "Enabling this option helps support the plugin by spreading the word about it "
3982
+ "on your website."
3983
+ msgstr ""
3984
+
3985
+ #: src/features/plugin.php:837
3986
+ msgid ""
3987
+ "The plugin badge also lets visitors know your are taking your website "
3988
+ "security seriously."
3989
+ msgstr ""
3990
+
3991
+ #: src/features/plugin.php:838
3992
+ msgid "Read this carefully before enabling this option."
3993
+ msgstr ""
3994
+
3995
+ #: src/features/plugin.php:842
3996
+ msgid "Delete Plugin Settings"
3997
+ msgstr ""
3998
+
3999
+ #: src/features/plugin.php:843
4000
+ msgid "Delete All Plugin Settings Upon Plugin Deactivation"
4001
+ msgstr ""
4002
+
4003
+ #: src/features/plugin.php:844
4004
+ msgid "Careful: Removes all plugin options when you deactivate the plugin"
4005
+ msgstr ""
4006
+
4007
+ #: src/features/plugin.php:848
4008
+ msgid "XML-RPC Compatibility"
4009
+ msgstr ""
4010
+
4011
+ #: src/features/plugin.php:849
4012
+ msgid "Allow Login Through XML-RPC To By-Pass Accounts Management Rules"
4013
+ msgstr ""
4014
+
4015
+ #: src/features/plugin.php:850
4016
+ msgid ""
4017
+ "Enable this if you need XML-RPC functionality e.g. if you use the WordPress "
4018
+ "iPhone/Android App."
4019
+ msgstr ""
4020
+
4021
+ #: src/features/plugin.php:854
4022
+ msgid "Allow Import/Export"
4023
+ msgstr ""
4024
+
4025
+ #: src/features/plugin.php:855
4026
+ msgid "Allow Import And Export Of Options On This Site"
4027
+ msgstr ""
4028
+
4029
+ #: src/features/plugin.php:856
4030
+ msgid "Uncheck this box to completely disable import and export of options."
4031
+ msgstr ""
4032
+
4033
+ #: src/features/plugin.php:857
4034
+ msgid "Import/Export is a premium-only feature."
4035
+ msgstr ""
4036
+
4037
+ #: src/features/plugin.php:861
4038
+ msgid "Export Whitelist"
4039
+ msgstr ""
4040
+
4041
+ #: src/features/plugin.php:862
4042
+ msgid "Whitelisted Sites To Export Options From This Site"
4043
+ msgstr ""
4044
+
4045
+ #: src/features/plugin.php:863
4046
+ msgid "Whitelisted sites may export options from this site without the key."
4047
+ msgstr ""
4048
+
4049
+ #: src/features/plugin.php:864
4050
+ msgid "List each site URL on a new line."
4051
+ msgstr ""
4052
+
4053
+ #: src/features/plugin.php:865
4054
+ msgid "This is to be used in conjunction with the Master Import Site feature."
4055
+ msgstr ""
4056
+
4057
+ #: src/features/plugin.php:869
4058
+ msgid "Master Import Site"
4059
+ msgstr ""
4060
+
4061
+ #: src/features/plugin.php:870
4062
+ msgid "Automatically Import Options From This Site URL"
4063
+ msgstr ""
4064
+
4065
+ #: src/features/plugin.php:871
4066
+ msgid "Supplying a site URL here will make this site an 'Options Slave'."
4067
+ msgstr ""
4068
+
4069
+ #: src/features/plugin.php:872
4070
+ msgid "Options will be automatically exported from the Master site each day."
4071
+ msgstr ""
4072
+
4073
+ #: src/features/plugin.php:873
4074
+ msgid ""
4075
+ "Use of this feature will overwrite existing options and replace them with "
4076
+ "those from the Master Import Site."
4077
+ msgstr ""
4078
+
4079
+ #: src/features/plugin.php:877
4080
+ msgid "Notify Whitelist"
4081
+ msgstr ""
4082
+
4083
+ #: src/features/plugin.php:878
4084
+ msgid "Notify Sites On The Whitelist To Update Options From Master"
4085
+ msgstr ""
4086
+
4087
+ #: src/features/plugin.php:879
4088
+ msgid ""
4089
+ "When enabled, manual options saving will notify sites on the whitelist to "
4090
+ "export options from the Master site."
4091
+ msgstr ""
4092
+
4093
+ #: src/features/plugin.php:883
4094
+ msgid "Secret Key"
4095
+ msgstr ""
4096
+
4097
+ #: src/features/plugin.php:884
4098
+ msgid "Import/Export Secret Key"
4099
+ msgstr ""
4100
+
4101
+ #: src/features/plugin.php:885
4102
+ msgid ""
4103
+ "Keep this Secret Key private as it will allow the import and export of "
4104
+ "options."
4105
+ msgstr ""
4106
+
4107
+ #: src/features/plugin.php:889
4108
+ msgid "Installation ID"
4109
+ msgstr ""
4110
+
4111
+ #: src/features/plugin.php:890
4112
+ msgid "Unique Plugin Installation ID"
4113
+ msgstr ""
4114
+
4115
+ #: src/features/plugin.php:891
4116
+ msgid "Keep this ID private."
4117
+ msgstr ""
4118
+
4119
+ #: src/features/plugin.php:895
4120
+ msgid "reCAPTCHA Secret"
4121
+ msgstr ""
4122
+
4123
+ #: src/features/plugin.php:896
4124
+ msgid "Google reCAPTCHA Secret Key"
4125
+ msgstr ""
4126
+
4127
+ #: src/features/plugin.php:897
4128
+ msgid "Enter your Google reCAPTCHA secret key for use throughout the plugin."
4129
+ msgstr ""
4130
+
4131
+ #: src/features/plugin.php:901
4132
+ msgid "reCAPTCHA Site Key"
4133
+ msgstr ""
4134
+
4135
+ #: src/features/plugin.php:902
4136
+ msgid "Google reCAPTCHA Site Key"
4137
+ msgstr ""
4138
+
4139
+ #: src/features/plugin.php:903
4140
+ msgid "Enter your Google reCAPTCHA site key for use throughout the plugin"
4141
+ msgstr ""
4142
+
4143
+ #: src/features/plugin.php:908
4144
+ msgid "How Google reCAPTCHA Will Be Displayed By Default"
4145
+ msgstr ""
4146
+
4147
+ #: src/features/plugin.php:926
4148
+ msgid "IP Whitelist"
4149
+ msgstr ""
4150
+
4151
+ #: src/features/plugin.php:927
4152
+ msgid "IP Address White List"
4153
+ msgstr ""
4154
+
4155
+ #: src/features/plugin.php:928
4156
+ msgid ""
4157
+ "Any IP addresses on this list will by-pass all Plugin Security Checking."
4158
+ msgstr ""
4159
+
4160
+ #: src/features/plugin.php:929 src/processors/ips.php:91
4161
+ #: src/processors/plugin.php:189 src/processors/plugin_badge.php:47
4162
+ #, php-format
4163
+ msgid "Your IP address is: %s"
4164
+ msgstr ""
4165
+
4166
+ #: src/features/plugin.php:930
4167
+ msgid "Choose IP Addresses To Blacklist"
4168
+ msgstr ""
4169
+
4170
+ #: src/features/plugin.php:931
4171
+ #, php-format
4172
+ msgid "Recommendation - %s"
4173
+ msgstr ""
4174
+
4175
+ #: src/features/plugin.php:932
4176
+ msgid "Blacklist"
4177
+ msgstr ""
4178
+
4179
+ #: src/features/plugin.php:933
4180
+ msgid "Logging"
4181
+ msgstr ""
4182
+
4183
+ #: src/features/plugin.php:934
4184
+ #, php-format
4185
+ msgid ""
4186
+ "User \"%s\" was forcefully logged out as they were not verified by either "
4187
+ "cookie or IP address (or both)."
4188
+ msgstr ""
4189
+
4190
+ #: src/features/plugin.php:935
4191
+ #, php-format
4192
+ msgid ""
4193
+ "User \"%s\" was found to be un-verified at the given IP Address: \"%s\"."
4194
+ msgstr ""
4195
+
4196
+ #: src/features/plugin.php:936
4197
+ msgid "Cookie"
4198
+ msgstr ""
4199
+
4200
+ #: src/features/plugin.php:938 src/features/traffic.php:395
4201
+ msgid "IP"
4202
+ msgstr ""
4203
+
4204
+ #: src/features/plugin.php:939
4205
+ msgid ""
4206
+ "This will restrict all user login sessions to a single browser. Use this if "
4207
+ "your users have dynamic IP addresses."
4208
+ msgstr ""
4209
+
4210
+ #: src/features/plugin.php:940
4211
+ msgid ""
4212
+ "All users will be required to authenticate their login by email-based two-"
4213
+ "factor authentication, when logging in from a new IP address"
4214
+ msgstr ""
4215
+
4216
+ #: src/features/plugin.php:941
4217
+ msgid "2-Factor Auth"
4218
+ msgstr ""
4219
+
4220
+ #: src/features/plugin.php:942
4221
+ msgid "Include Logged-In Users"
4222
+ msgstr ""
4223
+
4224
+ #: src/features/plugin.php:943
4225
+ msgid "You may also enable GASP for logged in users"
4226
+ msgstr ""
4227
+
4228
+ #: src/features/plugin.php:944
4229
+ msgid ""
4230
+ "Since logged-in users would be expected to be vetted already, this is off by "
4231
+ "default."
4232
+ msgstr ""
4233
+
4234
+ #: src/features/plugin.php:946
4235
+ msgid "Protect your security plugin not just your WordPress site"
4236
+ msgstr ""
4237
+
4238
+ #: src/features/plugin.php:949
4239
+ msgid "Get a view on what happens on your site, when it happens"
4240
+ msgstr ""
4241
+
4242
+ #: src/features/plugin.php:952
4243
+ msgid "Take back full control of WordPress automatic updates"
4244
+ msgstr ""
4245
+
4246
+ #: src/features/plugin.php:953
4247
+ msgid "Comments SPAM"
4248
+ msgstr ""
4249
+
4250
+ #: src/features/plugin.php:954
4251
+ msgid "Block comment SPAM and retain your privacy"
4252
+ msgstr ""
4253
+
4254
+ #: src/features/plugin.php:957
4255
+ msgid "Automatically block malicious URLs and data sent to your site"
4256
+ msgstr ""
4257
+
4258
+ #: src/features/plugin.php:959
4259
+ msgid "HTTP Headers"
4260
+ msgstr ""
4261
+
4262
+ #: src/features/plugin.php:960
4263
+ msgid "Control HTTP Security Headers"
4264
+ msgstr ""
4265
+
4266
+ #: src/features/plugin.php:962
4267
+ msgid "Manage Visitor IP Address"
4268
+ msgstr ""
4269
+
4270
+ #: src/features/plugin.php:964
4271
+ msgid "Harden the more loosely controlled settings of your site"
4272
+ msgstr ""
4273
+
4274
+ #: src/features/plugin.php:966
4275
+ msgid ""
4276
+ "Block brute force attacks and secure user identities with Two-Factor "
4277
+ "Authentication"
4278
+ msgstr ""
4279
+
4280
+ #: src/features/plugin.php:967
4281
+ msgid "Dashboard"
4282
+ msgstr ""
4283
+
4284
+ #: src/features/plugin.php:968
4285
+ msgid "General Plugin Settings"
4286
+ msgstr ""
4287
+
4288
+ #: src/features/plugin.php:969
4289
+ msgid "Statistics"
4290
+ msgstr ""
4291
+
4292
+ #: src/features/plugin.php:970
4293
+ msgid "Summary of the main security actions taken by this plugin"
4294
+ msgstr ""
4295
+
4296
+ #: src/features/plugin.php:971
4297
+ msgid "Stats Viewer"
4298
+ msgstr ""
4299
+
4300
+ #: src/features/plugin.php:972
4301
+ msgid "Premium Support"
4302
+ msgstr ""
4303
+
4304
+ #: src/features/plugin.php:973
4305
+ msgid "Premium Plugin Support Centre"
4306
+ msgstr ""
4307
+
4308
+ #: src/features/plugin.php:974 src/features/sessions.php:54
4309
+ #: src/features/traffic.php:477 src/features/user_management.php:314
4310
+ msgid "User Management"
4311
+ msgstr ""
4312
+
4313
+ #: src/features/plugin.php:975
4314
+ msgid ""
4315
+ "Get true user sessions and control account sharing, session duration and "
4316
+ "timeouts"
4317
+ msgstr ""
4318
+
4319
+ #: src/features/plugin.php:976
4320
+ msgid "Two-Factor Authentication"
4321
+ msgstr ""
4322
+
4323
+ #: src/features/sessions.php:53
4324
+ msgid "Creates and Manages User Sessions."
4325
+ msgstr ""
4326
+
4327
+ #: src/features/statistics.php:53
4328
+ msgid "Helps you see at a glance how effective the plugin has been."
4329
+ msgstr ""
4330
+
4331
+ #: src/features/statistics.php:62
4332
+ msgid "To track stats and issue reports."
4333
+ msgstr ""
4334
+
4335
+ #: src/features/statistics.php:69
4336
+ msgid "Statistics Sharing"
4337
+ msgstr ""
4338
+
4339
+ #: src/features/statistics.php:71
4340
+ msgid ""
4341
+ "Help us to provide globally accessible statistics on the effectiveness of "
4342
+ "the plugin."
4343
+ msgstr ""
4344
+
4345
+ #: src/features/statistics.php:72
4346
+ msgid "Enabling this option helps us improve our plugin over time."
4347
+ msgstr ""
4348
+
4349
+ #: src/features/statistics.php:73
4350
+ msgid "All statistics data collection is 100% anonymous."
4351
+ msgstr ""
4352
+
4353
+ #: src/features/statistics.php:73
4354
+ msgid ""
4355
+ "Neither we nor anyone else will be able to trace the data back to the "
4356
+ "originating site."
4357
+ msgstr ""
4358
+
4359
+ #: src/features/statistics.php:76
4360
+ msgid "Sharing"
4361
+ msgstr ""
4362
+
4363
+ #: src/features/traffic.php:72
4364
+ #, php-format
4365
+ msgid "%s is a Pro-only feature."
4366
+ msgstr ""
4367
+
4368
+ #: src/features/traffic.php:72
4369
+ msgid "Traffic Watch"
4370
+ msgstr ""
4371
+
4372
+ #: src/features/traffic.php:77
4373
+ msgid ""
4374
+ "Traffic Watcher will not run because visitor IP address detection is not "
4375
+ "correctly configured."
4376
+ msgstr ""
4377
+
4378
+ #: src/features/traffic.php:198
4379
+ msgid "Traffic Watch Viewer"
4380
+ msgstr ""
4381
+
4382
+ #: src/features/traffic.php:374
4383
+ msgid "unknown"
4384
+ msgstr ""
4385
+
4386
+ #: src/features/traffic.php:382 src/processors/firewall.php:271
4387
+ msgid "Unknown"
4388
+ msgstr ""
4389
+
4390
+ #: src/features/traffic.php:396
4391
+ msgid "Logged-In"
4392
+ msgstr ""
4393
+
4394
+ #: src/features/traffic.php:397
4395
+ msgid "Location"
4396
+ msgstr ""
4397
+
4398
+ #: src/features/traffic.php:398
4399
+ msgid "User Agent"
4400
+ msgstr ""
4401
+
4402
+ #: src/features/traffic.php:403
4403
+ msgid "Response"
4404
+ msgstr ""
4405
+
4406
+ #: src/features/traffic.php:404
4407
+ msgid "Transgression"
4408
+ msgstr ""
4409
+
4410
+ #: src/features/traffic.php:448
4411
+ msgid "Traffic Watch Log"
4412
+ msgstr ""
4413
+
4414
+ #: src/features/traffic.php:449
4415
+ msgid "Review Site Traffic Logs "
4416
+ msgstr ""
4417
+
4418
+ #: src/features/traffic.php:467
4419
+ msgid "Monitor and review all requests to your site."
4420
+ msgstr ""
4421
+
4422
+ #: src/features/traffic.php:468
4423
+ msgid ""
4424
+ "Required only if you need to review and investigate and monitor requests to "
4425
+ "your site"
4426
+ msgstr ""
4427
+
4428
+ #: src/features/traffic.php:474
4429
+ msgid "Traffic Watch Options"
4430
+ msgstr ""
4431
+
4432
+ #: src/features/traffic.php:476
4433
+ msgid "Provides finer control over the Traffic Watch system."
4434
+ msgstr ""
4435
+
4436
+ #: src/features/traffic.php:479
4437
+ msgid "Traffic Logging Options"
4438
+ msgstr ""
4439
+
4440
+ #: src/features/traffic.php:508
4441
+ msgid "Traffic Log Exclusions"
4442
+ msgstr ""
4443
+
4444
+ #: src/features/traffic.php:509
4445
+ msgid "Select Which Types Of Requests To Exclude"
4446
+ msgstr ""
4447
+
4448
+ #: src/features/traffic.php:510
4449
+ msgid ""
4450
+ "Select request types that you don't want to appear in the traffic viewer."
4451
+ msgstr ""
4452
+
4453
+ #: src/features/traffic.php:511
4454
+ msgid ""
4455
+ "If a request matches any exclusion rule, it will not show on the traffic "
4456
+ "viewer."
4457
+ msgstr ""
4458
+
4459
+ #: src/features/traffic.php:515
4460
+ msgid "Custom Exclusions"
4461
+ msgstr ""
4462
+
4463
+ #: src/features/traffic.php:516
4464
+ msgid "Provide Custom Traffic Exclusions"
4465
+ msgstr ""
4466
+
4467
+ #: src/features/traffic.php:517
4468
+ msgid ""
4469
+ "For each entry, if the text is present in either the User Agent or request "
4470
+ "Path, it will be excluded."
4471
+ msgstr ""
4472
+
4473
+ #: src/features/traffic.php:518
4474
+ msgid "Take a new line for each entry."
4475
+ msgstr ""
4476
+
4477
+ #: src/features/traffic.php:519
4478
+ msgid "Comparisons are case-insensitive."
4479
+ msgstr ""
4480
+
4481
+ #: src/features/traffic.php:523
4482
+ msgid "Auto Expiry Cleaning"
4483
+ msgstr ""
4484
+
4485
+ #: src/features/traffic.php:524
4486
+ msgid "Enable Traffic Log Auto Expiry"
4487
+ msgstr ""
4488
+
4489
+ #: src/features/traffic.php:525
4490
+ msgid "DB cleanup will delete logs older than this maximum value (in days)."
4491
+ msgstr ""
4492
+
4493
+ #: src/features/traffic.php:529
4494
+ msgid "Max Log Length"
4495
+ msgstr ""
4496
+
4497
+ #: src/features/traffic.php:530
4498
+ msgid "Maximum Traffic Log Length To Keep"
4499
+ msgstr ""
4500
+
4501
+ #: src/features/traffic.php:531
4502
+ msgid "DB cleanup will delete logs to maintain this maximum number of records."
4503
+ msgstr ""
4504
+
4505
+ #: src/features/traffic.php:535
4506
+ msgid "Auto Disable"
4507
+ msgstr ""
4508
+
4509
+ #: src/features/traffic.php:536
4510
+ msgid "Auto Disable Traffic Logging After 1 Week"
4511
+ msgstr ""
4512
+
4513
+ #: src/features/traffic.php:539
4514
+ #, php-format
4515
+ msgid "Auto Disable At: %s"
4516
+ msgstr ""
4517
+
4518
+ #: src/features/traffic.php:544
4519
+ msgid "Turn on to prevent unnecessary long-term traffic logging."
4520
+ msgstr ""
4521
+
4522
+ #: src/features/traffic.php:545
4523
+ msgid "Timer resets after options save."
4524
+ msgstr ""
4525
+
4526
+ #: src/features/user_management.php:47
4527
+ #, php-format
4528
+ msgid "now: %s"
4529
+ msgstr ""
4530
+
4531
+ #: src/features/user_management.php:153 src/processors/statistics.php:203
4532
+ msgid "User Sessions"
4533
+ msgstr ""
4534
+
4535
+ #: src/features/user_management.php:154
4536
+ msgid "Review user sessions"
4537
+ msgstr ""
4538
+
4539
+ #: src/features/user_management.php:156
4540
+ msgid "Current User Sessions"
4541
+ msgstr ""
4542
+
4543
+ #: src/features/user_management.php:158
4544
+ msgid "Logged In At"
4545
+ msgstr ""
4546
+
4547
+ #: src/features/user_management.php:159
4548
+ msgid "Last Activity At"
4549
+ msgstr ""
4550
+
4551
+ #: src/features/user_management.php:160
4552
+ msgid "Last Activity URI"
4553
+ msgstr ""
4554
+
4555
+ #: src/features/user_management.php:161
4556
+ msgid "Login IP"
4557
+ msgstr ""
4558
+
4559
+ #: src/features/user_management.php:162
4560
+ msgid ""
4561
+ "You need to enable the User Management feature to view and manage user "
4562
+ "sessions."
4563
+ msgstr ""
4564
+
4565
+ #: src/features/user_management.php:227
4566
+ msgid "Very Weak"
4567
+ msgstr ""
4568
+
4569
+ #: src/features/user_management.php:228
4570
+ msgid "Weak"
4571
+ msgstr ""
4572
+
4573
+ #: src/features/user_management.php:229
4574
+ msgid "Medium"
4575
+ msgstr ""
4576
+
4577
+ #: src/features/user_management.php:230
4578
+ msgid "Strong"
4579
+ msgstr ""
4580
+
4581
+ #: src/features/user_management.php:231
4582
+ msgid "Very Strong"
4583
+ msgstr ""
4584
+
4585
+ #: src/features/user_management.php:275
4586
+ msgid "Default 'admin' user still available."
4587
+ msgstr ""
4588
+
4589
+ #: src/features/user_management.php:277
4590
+ msgid "Default 'admin' user should be disabled or removed."
4591
+ msgstr ""
4592
+
4593
+ #: src/features/user_management.php:286
4594
+ msgid "Strong password policies are not enforced."
4595
+ msgstr ""
4596
+
4597
+ #: src/features/user_management.php:289
4598
+ msgid "Password policies should be turned-on."
4599
+ msgstr ""
4600
+
4601
+ #: src/features/user_management.php:313
4602
+ msgid ""
4603
+ "User Management offers real user sessions, finer control over user session "
4604
+ "time-out, and ensures users have logged-in in a correct manner."
4605
+ msgstr ""
4606
+
4607
+ #: src/features/user_management.php:320 src/features/user_management.php:321
4608
+ msgid "Password Policies"
4609
+ msgstr ""
4610
+
4611
+ #: src/features/user_management.php:323
4612
+ msgid "Have full control over passwords used by users on the site."
4613
+ msgstr ""
4614
+
4615
+ #: src/features/user_management.php:330
4616
+ msgid "Admin Login Notification"
4617
+ msgstr ""
4618
+
4619
+ #: src/features/user_management.php:332
4620
+ msgid ""
4621
+ "So you can be made aware of when a WordPress administrator has logged into "
4622
+ "your site when you are not expecting it."
4623
+ msgstr ""
4624
+
4625
+ #: src/features/user_management.php:335
4626
+ msgid "Notifications"
4627
+ msgstr ""
4628
+
4629
+ #: src/features/user_management.php:339
4630
+ msgid "Multi-Factor User Authentication"
4631
+ msgstr ""
4632
+
4633
+ #: src/features/user_management.php:348
4634
+ msgid "User Session Management"
4635
+ msgstr ""
4636
+
4637
+ #: src/features/user_management.php:350
4638
+ msgid ""
4639
+ "Allows you to better control user sessions on your site and expire idle "
4640
+ "sessions and prevent account sharing."
4641
+ msgstr ""
4642
+
4643
+ #: src/features/user_management.php:353
4644
+ msgid "Session Options"
4645
+ msgstr ""
4646
+
4647
+ #: src/features/user_management.php:382
4648
+ msgid "Admin Login Notification Email"
4649
+ msgstr ""
4650
+
4651
+ #: src/features/user_management.php:383
4652
+ msgid "Send An Notification Email When Administrator Logs In"
4653
+ msgstr ""
4654
+
4655
+ #: src/features/user_management.php:384
4656
+ msgid ""
4657
+ "If you would like to be notified every time an administrator user logs into "
4658
+ "this WordPress site, enter a notification email address."
4659
+ msgstr ""
4660
+
4661
+ #: src/features/user_management.php:385
4662
+ msgid "No email address - No Notification."
4663
+ msgstr ""
4664
+
4665
+ #: src/features/user_management.php:389
4666
+ msgid "User Login Notification Email"
4667
+ msgstr ""
4668
+
4669
+ #: src/features/user_management.php:390
4670
+ msgid "Send Email Notification To Each User Upon Successful Login"
4671
+ msgstr ""
4672
+
4673
+ #: src/features/user_management.php:391
4674
+ msgid ""
4675
+ "A notification is sent to each user when a successful login occurs for their "
4676
+ "account."
4677
+ msgstr ""
4678
+
4679
+ #: src/features/user_management.php:395
4680
+ msgid "Session Timeout"
4681
+ msgstr ""
4682
+
4683
+ #: src/features/user_management.php:396
4684
+ msgid "Specify How Many Days After Login To Automatically Force Re-Login"
4685
+ msgstr ""
4686
+
4687
+ #: src/features/user_management.php:397
4688
+ msgid ""
4689
+ "WordPress default is 2 days, or 14 days if you check the \"Remember Me\" box."
4690
+ msgstr ""
4691
+
4692
+ #: src/features/user_management.php:398
4693
+ #, php-format
4694
+ msgid "This cannot be less than %s."
4695
+ msgstr ""
4696
+
4697
+ #: src/features/user_management.php:404
4698
+ msgid "Idle Timeout"
4699
+ msgstr ""
4700
+
4701
+ #: src/features/user_management.php:405
4702
+ msgid "Specify How Many Hours After Inactivity To Automatically Logout User"
4703
+ msgstr ""
4704
+
4705
+ #: src/features/user_management.php:406
4706
+ msgid ""
4707
+ "If the user is inactive for the number of hours specified, they will be "
4708
+ "forcefully logged out next time they return."
4709
+ msgstr ""
4710
+
4711
+ #: src/features/user_management.php:407
4712
+ #, php-format
4713
+ msgid "Set to %s to turn off this option."
4714
+ msgstr ""
4715
+
4716
+ #: src/features/user_management.php:411
4717
+ msgid "Lock To Location"
4718
+ msgstr ""
4719
+
4720
+ #: src/features/user_management.php:412
4721
+ msgid "Locks A User Session To IP address"
4722
+ msgstr ""
4723
+
4724
+ #: src/features/user_management.php:413
4725
+ msgid ""
4726
+ "When selected, a session is restricted to the same IP address as when the "
4727
+ "user logged in."
4728
+ msgstr ""
4729
+
4730
+ #: src/features/user_management.php:414
4731
+ msgid ""
4732
+ "If a logged-in user's IP address changes, the session will be invalidated "
4733
+ "and they'll be forced to re-login to WordPress."
4734
+ msgstr ""
4735
+
4736
+ #: src/features/user_management.php:418
4737
+ msgid "Max Simultaneous Sessions"
4738
+ msgstr ""
4739
+
4740
+ #: src/features/user_management.php:419
4741
+ msgid "Limit Simultaneous Sessions For The Same Username"
4742
+ msgstr ""
4743
+
4744
+ #: src/features/user_management.php:420
4745
+ msgid ""
4746
+ "The number provided here is the maximum number of simultaneous, distinct, "
4747
+ "sessions allowed for any given username."
4748
+ msgstr ""
4749
+
4750
+ #: src/features/user_management.php:421
4751
+ msgid "Zero (0) will allow unlimited simultaneous sessions."
4752
+ msgstr ""
4753
+
4754
+ #: src/features/user_management.php:425
4755
+ msgid "Enable Password Policies"
4756
+ msgstr ""
4757
+
4758
+ #: src/features/user_management.php:426
4759
+ msgid "Enable The Password Policies Detailed Below"
4760
+ msgstr ""
4761
+
4762
+ #: src/features/user_management.php:427
4763
+ msgid "Turn on/off all password policy settings."
4764
+ msgstr ""
4765
+
4766
+ #: src/features/user_management.php:431
4767
+ msgid "Prevent Pwned Passwords"
4768
+ msgstr ""
4769
+
4770
+ #: src/features/user_management.php:432
4771
+ msgid "Prevent Use Of \"Pwned\" Passwords"
4772
+ msgstr ""
4773
+
4774
+ #: src/features/user_management.php:433
4775
+ msgid ""
4776
+ "Prevents users from using any passwords found on the public available list "
4777
+ "of \"pwned\" passwords."
4778
+ msgstr ""
4779
+
4780
+ #: src/features/user_management.php:437
4781
+ msgid "Minimum Length"
4782
+ msgstr ""
4783
+
4784
+ #: src/features/user_management.php:438
4785
+ msgid "Minimum Password Length"
4786
+ msgstr ""
4787
+
4788
+ #: src/features/user_management.php:439
4789
+ msgid ""
4790
+ "All passwords that a user sets must be at least this many characters in "
4791
+ "length."
4792
+ msgstr ""
4793
+
4794
+ #: src/features/user_management.php:440 src/features/user_management.php:460
4795
+ msgid "Set to Zero(0) to disable."
4796
+ msgstr ""
4797
+
4798
+ #: src/features/user_management.php:444
4799
+ msgid "Minimum Strength"
4800
+ msgstr ""
4801
+
4802
+ #: src/features/user_management.php:445
4803
+ msgid "Minimum Password Strength"
4804
+ msgstr ""
4805
+
4806
+ #: src/features/user_management.php:446
4807
+ msgid "All passwords that a user sets must meet this minimum strength."
4808
+ msgstr ""
4809
+
4810
+ #: src/features/user_management.php:450
4811
+ msgid "Apply To Existing Users"
4812
+ msgstr ""
4813
+
4814
+ #: src/features/user_management.php:451
4815
+ msgid "Apply Password Policies To Existing Users and Their Passwords"
4816
+ msgstr ""
4817
+
4818
+ #: src/features/user_management.php:452
4819
+ msgid ""
4820
+ "Forces existing users to update their passwords if they don't meet "
4821
+ "requirements, after they next login."
4822
+ msgstr ""
4823
+
4824
+ #: src/features/user_management.php:453
4825
+ msgid "Note: You may want to warn users prior to enabling this option."
4826
+ msgstr ""
4827
+
4828
+ #: src/features/user_management.php:457
4829
+ msgid "Password Expiration"
4830
+ msgstr ""
4831
+
4832
+ #: src/features/user_management.php:458
4833
+ msgid "Passwords Expire After This Many Days"
4834
+ msgstr ""
4835
+
4836
+ #: src/features/user_management.php:459
4837
+ msgid ""
4838
+ "Users will be forced to reset their passwords after the number of days "
4839
+ "specified."
4840
+ msgstr ""
4841
+
4842
+ #: src/processors/admin_access_restriction.php:201
4843
+ #: src/processors/admin_access_restriction.php:237
4844
+ #, php-format
4845
+ msgid "%s Security Restrictions Applied"
4846
+ msgstr ""
4847
+
4848
+ #: src/processors/admin_access_restriction.php:202
4849
+ msgid ""
4850
+ "Altering certain options has been restricted by your WordPress security "
4851
+ "administrator."
4852
+ msgstr ""
4853
+
4854
+ #: src/processors/admin_access_restriction.php:203
4855
+ msgid ""
4856
+ "Repeated failed attempts to authenticate will probably lock you out of this "
4857
+ "site."
4858
+ msgstr ""
4859
+
4860
+ #: src/processors/admin_access_restriction.php:209
4861
+ msgid "Admin Access Login"
4862
+ msgstr ""
4863
+
4864
+ #: src/processors/admin_access_restriction.php:210
4865
+ #: src/processors/admin_access_restriction.php:247
4866
+ #, php-format
4867
+ msgid "Go here to manage settings and authenticate with the %s plugin."
4868
+ msgstr ""
4869
+
4870
+ #: src/processors/admin_access_restriction.php:238
4871
+ msgid ""
4872
+ "Editing existing administrators, promoting existing users to the "
4873
+ "administrator role, or deleting administrator users is currently restricted."
4874
+ msgstr ""
4875
+
4876
+ #: src/processors/admin_access_restriction.php:239
4877
+ msgid ""
4878
+ "Please authenticate with the Security Admin system before attempting any "
4879
+ "administrator user modifications."
4880
+ msgstr ""
4881
+
4882
+ #: src/processors/admin_access_restriction.php:240
4883
+ msgid "Unlock Now"
4884
+ msgstr ""
4885
+
4886
+ #: src/processors/admin_access_restriction.php:246
4887
+ #: src/processors/admin_access_restriction.php:483
4888
+ msgid "Security Admin Login"
4889
+ msgstr ""
4890
+
4891
+ #: src/processors/admin_access_restriction.php:458
4892
+ #: src/processors/hackprotect_ptguard.php:63
4893
+ msgid "Editing this option is currently restricted."
4894
+ msgstr ""
4895
+
4896
+ #: src/processors/admin_access_restriction.php:478
4897
+ msgid "Unlock"
4898
+ msgstr ""
4899
+
4900
+ #: src/processors/audit_trail_emails.php:32
4901
+ #, php-format
4902
+ msgid "There was an attempt to send an email using the \"%s\" function."
4903
+ msgstr ""
4904
+
4905
+ #: src/processors/audit_trail_emails.php:33
4906
+ #, php-format
4907
+ msgid "It was sent to \"%s\" with the subject \"%s\"."
4908
+ msgstr ""
4909
+
4910
+ #: src/processors/audit_trail_emails.php:36
4911
+ #, php-format
4912
+ msgid "The \"%s\" function was called from the file \"%s\" on line %s."
4913
+ msgstr ""
4914
+
4915
+ #: src/processors/audit_trail_emails.php:44
4916
+ #, php-format
4917
+ msgid "Attempting to log email, but data was not of the correct type (%s)"
4918
+ msgstr ""
4919
+
4920
+ #: src/processors/audit_trail_plugins.php:28
4921
+ #, php-format
4922
+ msgid "Plugin \"%s\" was activated."
4923
+ msgstr ""
4924
+
4925
+ #: src/processors/audit_trail_plugins.php:41
4926
+ #, php-format
4927
+ msgid "Plugin \"%s\" was deactivated."
4928
+ msgstr ""
4929
+
4930
+ #: src/processors/audit_trail_plugins.php:59
4931
+ #, php-format
4932
+ msgid ""
4933
+ "An attempt was made to edit the plugin file \"%s\" directly through the "
4934
+ "WordPress editor."
4935
+ msgstr ""
4936
+
4937
+ #: src/processors/audit_trail_posts.php:26
4938
+ #, php-format
4939
+ msgid "WordPress Post entitled \"%s\" was permanently deleted from trash."
4940
+ msgstr ""
4941
+
4942
+ #: src/processors/audit_trail_posts.php:45
4943
+ msgid "moved to trash"
4944
+ msgstr ""
4945
+
4946
+ #: src/processors/audit_trail_posts.php:49
4947
+ msgid "recovered from trash"
4948
+ msgstr ""
4949
+
4950
+ #: src/processors/audit_trail_posts.php:55
4951
+ #: src/processors/audit_trail_posts.php:68
4952
+ msgid "updated"
4953
+ msgstr ""
4954
+
4955
+ #: src/processors/audit_trail_posts.php:59
4956
+ msgid "published"
4957
+ msgstr ""
4958
+
4959
+ #: src/processors/audit_trail_posts.php:64
4960
+ msgid "unpublished"
4961
+ msgstr ""
4962
+
4963
+ #: src/processors/audit_trail_posts.php:72
4964
+ #, php-format
4965
+ msgid "Post entitled \"%s\" was %s."
4966
+ msgstr ""
4967
+
4968
+ #: src/processors/audit_trail_posts.php:73
4969
+ msgid "Post Type"
4970
+ msgstr ""
4971
+
4972
+ #: src/processors/audit_trail_themes.php:25
4973
+ #, php-format
4974
+ msgid "Theme \"%s\" was activated."
4975
+ msgstr ""
4976
+
4977
+ #: src/processors/audit_trail_themes.php:41
4978
+ #, php-format
4979
+ msgid ""
4980
+ "An attempt was made to edit the theme file \"%s\" directly through the "
4981
+ "WordPress editor."
4982
+ msgstr ""
4983
+
4984
+ #: src/processors/audit_trail_users.php:27
4985
+ #, php-format
4986
+ msgid "Attempted user login by \"%s\" was successful."
4987
+ msgstr ""
4988
+
4989
+ #: src/processors/audit_trail_users.php:40
4990
+ #, php-format
4991
+ msgid "Attempted user login by \"%s\" failed."
4992
+ msgstr ""
4993
+
4994
+ #: src/processors/audit_trail_users.php:53
4995
+ msgid "New WordPress user registered."
4996
+ msgstr ""
4997
+
4998
+ #: src/processors/audit_trail_users.php:55
4999
+ #, php-format
5000
+ msgid "New username is \"%s\" with email address \"%s\"."
5001
+ msgstr ""
5002
+
5003
+ #: src/processors/audit_trail_users.php:69
5004
+ msgid "WordPress user deleted."
5005
+ msgstr ""
5006
+
5007
+ #: src/processors/audit_trail_users.php:73
5008
+ msgid "User is unknown as it could not be loaded."
5009
+ msgstr ""
5010
+
5011
+ #: src/processors/audit_trail_users.php:76
5012
+ #, php-format
5013
+ msgid "Username was \"%s\" with email address \"%s\"."
5014
+ msgstr ""
5015
+
5016
+ #: src/processors/audit_trail_users.php:83
5017
+ msgid "Their posts were not reassigned to another user."
5018
+ msgstr ""
5019
+
5020
+ #: src/processors/audit_trail_users.php:86
5021
+ #, php-format
5022
+ msgid "Their posts were reassigned to user \"%s\"."
5023
+ msgstr ""
5024
+
5025
+ #: src/processors/audit_trail_wordpress.php:24
5026
+ #, php-format
5027
+ msgid "WordPress Core was updated from \"v%s\" to \"v%s\"."
5028
+ msgstr ""
5029
+
5030
+ #: src/processors/audit_trail_wordpress.php:34
5031
+ #, php-format
5032
+ msgid "WordPress Permalinks Structure was updated from \"%s\" to \"%s\"."
5033
+ msgstr ""
5034
+
5035
+ #: src/processors/autoupdates.php:459
5036
+ #, php-format
5037
+ msgid ""
5038
+ "This is a quick notification from the %s that WordPress Automatic Updates "
5039
+ "just completed on your site with the following results."
5040
+ msgstr ""
5041
+
5042
+ #: src/processors/autoupdates.php:471
5043
+ msgid "Plugins Updated:"
5044
+ msgstr ""
5045
+
5046
+ #: src/processors/autoupdates.php:479
5047
+ #, php-format
5048
+ msgid "Plugin \"%s\" auto-updated from \"%s\" to version \"%s\""
5049
+ msgstr ""
5050
+
5051
+ #: src/processors/autoupdates.php:496
5052
+ msgid "Themes Updated:"
5053
+ msgstr ""
5054
+
5055
+ #: src/processors/autoupdates.php:504
5056
+ #, php-format
5057
+ msgid "Theme \"%s\" auto-updated from \"%s\" to version \"%s\""
5058
+ msgstr ""
5059
+
5060
+ #: src/processors/autoupdates.php:519
5061
+ msgid "WordPress Core Updated:"
5062
+ msgstr ""
5063
+
5064
+ #: src/processors/autoupdates.php:538
5065
+ msgid "Thank you."
5066
+ msgstr ""
5067
+
5068
+ #: src/processors/autoupdates.php:540
5069
+ #: src/processors/loginprotect_backupcodes.php:181
5070
+ #, php-format
5071
+ msgid "Notice: %s"
5072
+ msgstr ""
5073
+
5074
+ #: src/processors/autoupdates.php:540
5075
+ msgid "Automatic Updates Completed"
5076
+ msgstr ""
5077
+
5078
+ #: src/processors/autoupdates.php:562
5079
+ msgid ""
5080
+ "Automatic updates for this plugin is controlled by another plugin or setting."
5081
+ msgstr ""
5082
+
5083
+ #: src/processors/base_commentsfilter.php:116
5084
+ #: src/processors/commentsfilter_antibotspam.php:497
5085
+ #, php-format
5086
+ msgid "%s plugin marked this comment as \"%s\"."
5087
+ msgstr ""
5088
+
5089
+ #: src/processors/base_commentsfilter.php:116
5090
+ #: src/processors/commentsfilter_antibotspam.php:497
5091
+ #, php-format
5092
+ msgid "Reason: %s"
5093
+ msgstr ""
5094
+
5095
+ #: src/processors/base_plugin.php:68
5096
+ msgid "I'd rather not show this support"
5097
+ msgstr ""
5098
+
5099
+ #: src/processors/base_plugin.php:68
5100
+ msgid "I've done this already"
5101
+ msgstr ""
5102
+
5103
+ #: src/processors/base_plugin.php:92
5104
+ msgid "I don't need the setup wizard just now"
5105
+ msgstr ""
5106
+
5107
+ #: src/processors/base_plugin.php:93
5108
+ #, php-format
5109
+ msgid "Get started quickly with the %s Setup Wizard"
5110
+ msgstr ""
5111
+
5112
+ #: src/processors/base_plugin.php:94
5113
+ #, php-format
5114
+ msgid ""
5115
+ "The welcome wizard will help you get setup quickly and become familiar with "
5116
+ "some of the core %s features"
5117
+ msgstr ""
5118
+
5119
+ #: src/processors/base_plugin.php:95
5120
+ #, php-format
5121
+ msgid ""
5122
+ "%s has a helpful setup wizard to walk you through the main features. "
5123
+ "Unfortunately your PHP version is reeeaally old as it needs PHP 5.4+"
5124
+ msgstr ""
5125
+
5126
+ #: src/processors/base_plugin.php:123
5127
+ #, php-format
5128
+ msgid "Your PHP version is very old: %s"
5129
+ msgstr ""
5130
+
5131
+ #: src/processors/base_plugin.php:124
5132
+ #, php-format
5133
+ msgid "Newer features of %s do not support your PHP version."
5134
+ msgstr ""
5135
+
5136
+ #: src/processors/base_plugin.php:125
5137
+ msgid ""
5138
+ "You should ask your host to upgrade or provide a much newer PHP version."
5139
+ msgstr ""
5140
+
5141
+ #: src/processors/base_plugin.php:126
5142
+ msgid "Please read here for further information:"
5143
+ msgstr ""
5144
+
5145
+ #: src/processors/base_plugin.php:127 src/processors/base_plugin.php:168
5146
+ #: src/processors/base_plugin.php:192
5147
+ msgid "Dismiss this notice"
5148
+ msgstr ""
5149
+
5150
+ #: src/processors/base_plugin.php:128
5151
+ msgid "Dropping support for PHP 5.2 and 5.3"
5152
+ msgstr ""
5153
+
5154
+ #: src/processors/base_plugin.php:165
5155
+ #, php-format
5156
+ msgid "Update available for the %s plugin."
5157
+ msgstr ""
5158
+
5159
+ #: src/processors/base_plugin.php:167
5160
+ msgid "Please click to update immediately"
5161
+ msgstr ""
5162
+
5163
+ #: src/processors/base_plugin.php:188
5164
+ #, php-format
5165
+ msgid "Can you help translate the %s plugin?"
5166
+ msgstr ""
5167
+
5168
+ #: src/processors/base_plugin.php:190
5169
+ #, php-format
5170
+ msgid "Head over to: %s"
5171
+ msgstr ""
5172
+
5173
+ #: src/processors/base_wpsf.php:99 src/processors/base_wpsf.php:107
5174
+ msgid "Whoops."
5175
+ msgstr ""
5176
+
5177
+ #: src/processors/base_wpsf.php:99
5178
+ msgid "Google reCAPTCHA was not submitted."
5179
+ msgstr ""
5180
+
5181
+ #: src/processors/base_wpsf.php:107
5182
+ msgid "Google reCAPTCHA verification failed."
5183
+ msgstr ""
5184
+
5185
+ #: src/processors/base_wpsf.php:108
5186
+ msgid "Maybe refresh the page and try again."
5187
+ msgstr ""
5188
+
5189
+ #: src/processors/comments_filter.php:70
5190
+ msgid ""
5191
+ "It appears you have Akismet Anti-SPAM running alongside the our human Anti-"
5192
+ "SPAM filter."
5193
+ msgstr ""
5194
+
5195
+ #: src/processors/comments_filter.php:71
5196
+ msgid "This is not recommended and you should disable Akismet."
5197
+ msgstr ""
5198
+
5199
+ #: src/processors/comments_filter.php:72
5200
+ msgid "Click to deactivate Akismet now."
5201
+ msgstr ""
5202
+
5203
+ #: src/processors/commentsfilter_antibotspam.php:182
5204
+ #: src/processors/commentsfilter_antibotspam.php:187
5205
+ #: src/processors/commentsfilter_antibotspam.php:192
5206
+ #, php-format
5207
+ msgid "Failed GASP Bot Filter Test (%s)"
5208
+ msgstr ""
5209
+
5210
+ #: src/processors/commentsfilter_antibotspam.php:182
5211
+ msgid "checkbox"
5212
+ msgstr ""
5213
+
5214
+ #: src/processors/commentsfilter_antibotspam.php:187
5215
+ msgid "honeypot"
5216
+ msgstr ""
5217
+
5218
+ #: src/processors/commentsfilter_antibotspam.php:192
5219
+ msgid "comment token failure"
5220
+ msgstr ""
5221
+
5222
+ #: src/processors/commentsfilter_humanspam.php:131
5223
+ #, php-format
5224
+ msgid "Human SPAM filter found \"%s\" in \"%s\""
5225
+ msgstr ""
5226
+
5227
+ #: src/processors/email.php:63
5228
+ msgid "Hi !"
5229
+ msgstr ""
5230
+
5231
+ #: src/processors/email.php:74
5232
+ #, php-format
5233
+ msgid "Email sent from the %s Plugin v%s, on %s."
5234
+ msgstr ""
5235
+
5236
+ #: src/processors/email.php:79
5237
+ msgid "Note: Email delays are caused by website hosting and email providers."
5238
+ msgstr ""
5239
+
5240
+ #: src/processors/email.php:80
5241
+ #, php-format
5242
+ msgid "Time Sent: %s"
5243
+ msgstr ""
5244
+
5245
+ #: src/processors/firewall.php:70 src/processors/firewall.php:83
5246
+ #, php-format
5247
+ msgid "Skipping firewall checking for this visit: %s."
5248
+ msgstr ""
5249
+
5250
+ #: src/processors/firewall.php:70
5251
+ msgid "Parsing the URI failed"
5252
+ msgstr ""
5253
+
5254
+ #: src/processors/firewall.php:83
5255
+ msgid "Visitor detected as Search Engine Bot"
5256
+ msgstr ""
5257
+
5258
+ #: src/processors/firewall.php:160 src/processors/firewall.php:218
5259
+ #, php-format
5260
+ msgid "Firewall Trigger: %s."
5261
+ msgstr ""
5262
+
5263
+ #: src/processors/firewall.php:160 src/processors/firewall.php:548
5264
+ msgid "EXE File Uploads"
5265
+ msgstr ""
5266
+
5267
+ #: src/processors/firewall.php:211
5268
+ msgid "Something in the URL, Form or Cookie data wasn't appropriate."
5269
+ msgstr ""
5270
+
5271
+ #: src/processors/firewall.php:212
5272
+ msgid "Page parameter failed firewall check."
5273
+ msgstr ""
5274
+
5275
+ #: src/processors/firewall.php:213
5276
+ #, php-format
5277
+ msgid "The offending parameter was \"%s\" with a value of \"%s\"."
5278
+ msgstr ""
5279
+
5280
+ #: src/processors/firewall.php:259
5281
+ msgid "Visitor connection was killed with wp_die()"
5282
+ msgstr ""
5283
+
5284
+ #: src/processors/firewall.php:262
5285
+ msgid "Visitor connection was killed with wp_die() and a message"
5286
+ msgstr ""
5287
+
5288
+ #: src/processors/firewall.php:265
5289
+ msgid "Visitor was sent HOME"
5290
+ msgstr ""
5291
+
5292
+ #: src/processors/firewall.php:268
5293
+ msgid "Visitor was sent 404"
5294
+ msgstr ""
5295
+
5296
+ #: src/processors/firewall.php:279
5297
+ #, php-format
5298
+ msgid "Successfully sent Firewall Block email alert to: %s"
5299
+ msgstr ""
5300
+
5301
+ #: src/processors/firewall.php:282
5302
+ #, php-format
5303
+ msgid "Failed to send Firewall Block email alert to: %s"
5304
+ msgstr ""
5305
+
5306
+ #: src/processors/firewall.php:287
5307
+ #, php-format
5308
+ msgid "Firewall Block Response: %s."
5309
+ msgstr ""
5310
+
5311
+ #: src/processors/firewall.php:475
5312
+ #, php-format
5313
+ msgid "%s has blocked a page visit to your site."
5314
+ msgstr ""
5315
+
5316
+ #: src/processors/firewall.php:476
5317
+ msgid "Log details for this visitor are below:"
5318
+ msgstr ""
5319
+
5320
+ #: src/processors/firewall.php:481
5321
+ #, php-format
5322
+ msgid "You can look up the offending IP Address here: %s"
5323
+ msgstr ""
5324
+
5325
+ #: src/processors/firewall.php:482
5326
+ msgid "Firewall Block Alert"
5327
+ msgstr ""
5328
+
5329
+ #: src/processors/firewall.php:536
5330
+ msgid "Directory Traversal"
5331
+ msgstr ""
5332
+
5333
+ #: src/processors/firewall.php:551
5334
+ msgid "Leading Schema"
5335
+ msgstr ""
5336
+
5337
+ #: src/processors/firewall.php:557
5338
+ msgid "Aggressive Rules"
5339
+ msgstr ""
5340
+
5341
+ #: src/processors/firewall.php:560
5342
+ msgid "Unknown Rules"
5343
+ msgstr ""
5344
+
5345
+ #: src/processors/hack_protect.php:156
5346
+ #, php-format
5347
+ msgid "%s escaped HTML the following comment due to its size: %s"
5348
+ msgstr ""
5349
+
5350
+ #: src/processors/hackprotect_corechecksumscan.php:27
5351
+ msgid "File was successfully replaced with an original from WordPress.org"
5352
+ msgstr ""
5353
+
5354
+ #: src/processors/hackprotect_corechecksumscan.php:30
5355
+ msgid "File was not replaced"
5356
+ msgstr ""
5357
+
5358
+ #: src/processors/hackprotect_corechecksumscan.php:244
5359
+ msgid "Modified Core WordPress Files Discovered"
5360
+ msgstr ""
5361
+
5362
+ #: src/processors/hackprotect_corechecksumscan.php:249
5363
+ #, php-format
5364
+ msgid "Sent Checksum Scan Notification email alert to: %s"
5365
+ msgstr ""
5366
+
5367
+ #: src/processors/hackprotect_corechecksumscan.php:264
5368
+ #, php-format
5369
+ msgid "The %s Core File Scanner found files with potential problems."
5370
+ msgstr ""
5371
+
5372
+ #: src/processors/hackprotect_corechecksumscan.php:265
5373
+ #: src/processors/hackprotect_filecleanerscan.php:254
5374
+ #: src/processors/hackprotect_ptguard.php:495
5375
+ #: src/processors/user_management.php:207
5376
+ #: src/processors/user_management.php:235
5377
+ msgid "Site URL"
5378
+ msgstr ""
5379
+
5380
+ #: src/processors/hackprotect_corechecksumscan.php:274
5381
+ #, php-format
5382
+ msgid "%s has already attempted to repair the files."
5383
+ msgstr ""
5384
+
5385
+ #: src/processors/hackprotect_corechecksumscan.php:275
5386
+ msgid ""
5387
+ "But, you should always check these files to ensure everything is as you "
5388
+ "expect."
5389
+ msgstr ""
5390
+
5391
+ #: src/processors/hackprotect_corechecksumscan.php:278
5392
+ msgid ""
5393
+ "You should review these files and replace them with official versions if "
5394
+ "required."
5395
+ msgstr ""
5396
+
5397
+ #: src/processors/hackprotect_corechecksumscan.php:279
5398
+ msgid ""
5399
+ "Alternatively you can have the plugin attempt to repair/replace these files "
5400
+ "automatically."
5401
+ msgstr ""
5402
+
5403
+ #: src/processors/hackprotect_corechecksumscan.php:286
5404
+ #: src/processors/hackprotect_filecleanerscan.php:272
5405
+ msgid "We recommend you run the scanner to review your site"
5406
+ msgstr ""
5407
+
5408
+ #: src/processors/hackprotect_corechecksumscan.php:290
5409
+ #: src/processors/hackprotect_filecleanerscan.php:276
5410
+ msgid "Run Scanner"
5411
+ msgstr ""
5412
+
5413
+ #: src/processors/hackprotect_corechecksumscan.php:296
5414
+ #: src/processors/hackprotect_filecleanerscan.php:282
5415
+ msgid "More Info On This Scanner"
5416
+ msgstr ""
5417
+
5418
+ #: src/processors/hackprotect_corechecksumscan.php:327
5419
+ msgid ""
5420
+ "The contents of the core files listed below don't match official WordPress "
5421
+ "files:"
5422
+ msgstr ""
5423
+
5424
+ #: src/processors/hackprotect_corechecksumscan.php:333
5425
+ msgid "The WordPress Core Files listed below are missing:"
5426
+ msgstr ""
5427
+
5428
+ #: src/processors/hackprotect_corechecksumscan.php:354
5429
+ #: src/processors/hackprotect_filecleanerscan.php:312
5430
+ msgid "Repair file now"
5431
+ msgstr ""
5432
+
5433
+ #: src/processors/hackprotect_corechecksumscan.php:357
5434
+ #: src/processors/hackprotect_filecleanerscan.php:315
5435
+ msgid "WordPress.org source file"
5436
+ msgstr ""
5437
+
5438
+ #: src/processors/hackprotect_filecleanerscan.php:232
5439
+ msgid "Unrecognised WordPress Files Detected"
5440
+ msgstr ""
5441
+
5442
+ #: src/processors/hackprotect_filecleanerscan.php:237
5443
+ #, php-format
5444
+ msgid "Sent Unrecognised File Scan Notification email alert to: %s"
5445
+ msgstr ""
5446
+
5447
+ #: src/processors/hackprotect_filecleanerscan.php:253
5448
+ #, php-format
5449
+ msgid "The %s Unrecognised File Scanner found files which you need to review."
5450
+ msgstr ""
5451
+
5452
+ #: src/processors/hackprotect_filecleanerscan.php:259
5453
+ msgid "Files that were discovered"
5454
+ msgstr ""
5455
+
5456
+ #: src/processors/hackprotect_filecleanerscan.php:266
5457
+ #, php-format
5458
+ msgid "%s has attempted to delete these files based on your current settings."
5459
+ msgstr ""
5460
+
5461
+ #: src/processors/hackprotect_pluginvulnerabilities.php:82
5462
+ #: src/processors/hackprotect_wpvulnscan.php:177
5463
+ #, php-format
5464
+ msgid "Plugin Name: %s"
5465
+ msgstr ""
5466
+
5467
+ #: src/processors/hackprotect_pluginvulnerabilities.php:83
5468
+ #: src/processors/hackprotect_wpvulnscan.php:179
5469
+ #, php-format
5470
+ msgid "Vulnerability Type: %s"
5471
+ msgstr ""
5472
+
5473
+ #: src/processors/hackprotect_pluginvulnerabilities.php:84
5474
+ #, php-format
5475
+ msgid "Vulnerable Plugin Version Range: %s"
5476
+ msgstr ""
5477
+
5478
+ #: src/processors/hackprotect_pluginvulnerabilities.php:85
5479
+ #: src/processors/hackprotect_wpvulnscan.php:181
5480
+ #, php-format
5481
+ msgid "Further Information: %s"
5482
+ msgstr ""
5483
+
5484
+ #: src/processors/hackprotect_pluginvulnerabilities.php:102
5485
+ #, php-format
5486
+ msgid ""
5487
+ "%s has detected a plugin with a known security vulnerability on your site."
5488
+ msgstr ""
5489
+
5490
+ #: src/processors/hackprotect_pluginvulnerabilities.php:103
5491
+ #: src/processors/hackprotect_wpvulnscan.php:212
5492
+ msgid "Details for the plugin(s) are below:"
5493
+ msgstr ""
5494
+
5495
+ #: src/processors/hackprotect_pluginvulnerabilities.php:108
5496
+ #: src/processors/hackprotect_wpvulnscan.php:217
5497
+ msgid "You should update or remove these plugins at your earliest convenience."
5498
+ msgstr ""
5499
+
5500
+ #: src/processors/hackprotect_pluginvulnerabilities.php:110
5501
+ #: src/processors/hackprotect_wpvulnscan.php:220
5502
+ msgid "Plugin(s) Discovered With Known Security Vulnerabilities."
5503
+ msgstr ""
5504
+
5505
+ #: src/processors/hackprotect_pluginvulnerabilities.php:116
5506
+ #: src/processors/hackprotect_wpvulnscan.php:226
5507
+ #, php-format
5508
+ msgid "Successfully sent Plugin Vulnerability Notification email alert to: %s"
5509
+ msgstr ""
5510
+
5511
+ #: src/processors/hackprotect_pluginvulnerabilities.php:119
5512
+ #: src/processors/hackprotect_wpvulnscan.php:229
5513
+ #, php-format
5514
+ msgid "Failed to send Plugin Vulnerability Notification email alert to: %s"
5515
+ msgstr ""
5516
+
5517
+ #: src/processors/hackprotect_pluginvulnerabilities.php:152
5518
+ #, php-format
5519
+ msgid ""
5520
+ "%s has discovered that the currently installed version of the \"%s\" plugin "
5521
+ "has a known security vulnerability."
5522
+ msgstr ""
5523
+
5524
+ #: src/processors/hackprotect_pluginvulnerabilities.php:153
5525
+ #: src/processors/hackprotect_wpvulnscan.php:145
5526
+ msgid "Vulnerability Type"
5527
+ msgstr ""
5528
+
5529
+ #: src/processors/hackprotect_pluginvulnerabilities.php:155
5530
+ msgid "Vulnerable Versions"
5531
+ msgstr ""
5532
+
5533
+ #: src/processors/hackprotect_ptguard.php:178
5534
+ #, php-format
5535
+ msgid "File signatures removed for item \"%s\""
5536
+ msgstr ""
5537
+
5538
+ #: src/processors/hackprotect_ptguard.php:204
5539
+ #, php-format
5540
+ msgid "File signatures updated for item \"%s\""
5541
+ msgstr ""
5542
+
5543
+ #: src/processors/hackprotect_ptguard.php:449
5544
+ msgid "Silenced repeated email alert from Plugin/Theme Scan Guard"
5545
+ msgstr ""
5546
+
5547
+ #: src/processors/hackprotect_ptguard.php:491
5548
+ #, php-format
5549
+ msgid ""
5550
+ "%s has detected at least 1 Plugins/Themes have been modified on your site."
5551
+ msgstr ""
5552
+
5553
+ #: src/processors/hackprotect_ptguard.php:493
5554
+ msgid ""
5555
+ "You will receive only 1 email notification about these changes in a 1 week "
5556
+ "period."
5557
+ msgstr ""
5558
+
5559
+ #: src/processors/hackprotect_ptguard.php:497
5560
+ msgid "Details of the problem items are below:"
5561
+ msgstr ""
5562
+
5563
+ #: src/processors/hackprotect_ptguard.php:502
5564
+ msgid "Modified Plugins:"
5565
+ msgstr ""
5566
+
5567
+ #: src/processors/hackprotect_ptguard.php:510
5568
+ msgid "Modified Themes:"
5569
+ msgstr ""
5570
+
5571
+ #: src/processors/hackprotect_ptguard.php:520
5572
+ msgid "Run the scanner"
5573
+ msgstr ""
5574
+
5575
+ #: src/processors/hackprotect_ptguard.php:526
5576
+ msgid "Plugins/Themes Have Been Altered"
5577
+ msgstr ""
5578
+
5579
+ #: src/processors/hackprotect_ptguard.php:531
5580
+ #, php-format
5581
+ msgid "Successfully sent Plugin/Theme Guard email alert to: %s"
5582
+ msgstr ""
5583
+
5584
+ #: src/processors/hackprotect_ptguard.php:534
5585
+ #, php-format
5586
+ msgid "Failed to send Plugin/Theme Guard email alert to: %s"
5587
+ msgstr ""
5588
+
5589
+ #: src/processors/hackprotect_ptguard.php:689
5590
+ msgid "Plugin/Theme Guard"
5591
+ msgstr ""
5592
+
5593
+ #: src/processors/hackprotect_wpvulnscan.php:112
5594
+ msgid "Vulnerable"
5595
+ msgstr ""
5596
+
5597
+ #: src/processors/hackprotect_wpvulnscan.php:142
5598
+ #, php-format
5599
+ msgid ""
5600
+ "%s has discovered that the currently installed version of the %s plugin has "
5601
+ "known security vulnerabilities."
5602
+ msgstr ""
5603
+
5604
+ #: src/processors/hackprotect_wpvulnscan.php:144
5605
+ msgid "Vulnerability Name"
5606
+ msgstr ""
5607
+
5608
+ #: src/processors/hackprotect_wpvulnscan.php:146
5609
+ msgid "Fixed Versions"
5610
+ msgstr ""
5611
+
5612
+ #: src/processors/hackprotect_wpvulnscan.php:178
5613
+ #, php-format
5614
+ msgid "Vulnerability Title: %s"
5615
+ msgstr ""
5616
+
5617
+ #: src/processors/hackprotect_wpvulnscan.php:180
5618
+ #, php-format
5619
+ msgid "Fixed Version: %s"
5620
+ msgstr ""
5621
+
5622
+ #: src/processors/hackprotect_wpvulnscan.php:211
5623
+ #, php-format
5624
+ msgid "%s has detected plugins with known security vulnerabilities."
5625
+ msgstr ""
5626
+
5627
+ #: src/processors/hackprotect_wpvulnscan.php:218
5628
+ #, php-format
5629
+ msgid "Go To Your Plugins: %s"
5630
+ msgstr ""
5631
+
5632
+ #: src/processors/ips.php:60
5633
+ #, php-format
5634
+ msgid "404 detected at \"%s\""
5635
+ msgstr ""
5636
+
5637
+ #: src/processors/ips.php:90
5638
+ #, php-format
5639
+ msgid "%s is ignoring you"
5640
+ msgstr ""
5641
+
5642
+ #: src/processors/ips.php:92
5643
+ msgid ""
5644
+ "Your IP address is whitelisted and NO features you activate apply to you."
5645
+ msgstr ""
5646
+
5647
+ #: src/processors/ips.php:93
5648
+ msgid "Including the hiding the WP Login page."
5649
+ msgstr ""
5650
+
5651
+ #: src/processors/ips.php:225
5652
+ #, php-format
5653
+ msgid ""
5654
+ "Visitor was found to be on the Black List with IP address \"%s\" and their "
5655
+ "connection was killed."
5656
+ msgstr ""
5657
+
5658
+ #: src/processors/ips.php:235
5659
+ #, php-format
5660
+ msgid "You have been black listed by the %s plugin."
5661
+ msgstr ""
5662
+
5663
+ #: src/processors/ips.php:239
5664
+ #, php-format
5665
+ msgid ""
5666
+ "You tripped the security plugin defenses a total of %s times making you a "
5667
+ "suspect."
5668
+ msgstr ""
5669
+
5670
+ #: src/processors/ips.php:240
5671
+ msgid "If you believe this to be in error, please contact the site owner."
5672
+ msgstr ""
5673
+
5674
+ #: src/processors/ips.php:241
5675
+ #, php-format
5676
+ msgid ""
5677
+ "Time remaining until you are automatically removed from the black list: %s "
5678
+ "minute(s)"
5679
+ msgstr ""
5680
+
5681
+ #: src/processors/ips.php:242
5682
+ msgid ""
5683
+ "If you attempt to access the site within this period the counter will be "
5684
+ "reset."
5685
+ msgstr ""
5686
+
5687
+ #: src/processors/ips.php:293
5688
+ #, php-format
5689
+ msgid "Auto Black List transgression counter was incremented from %s to %s."
5690
+ msgstr ""
5691
+
5692
+ #: src/processors/ips.php:302
5693
+ msgid "Auto Black List transgression counter was started for visitor."
5694
+ msgstr ""
5695
+
5696
+ #: src/processors/ips.php:470
5697
+ msgid "No Label"
5698
+ msgstr ""
5699
+
5700
+ #: src/processors/lockdown.php:106
5701
+ #, php-format
5702
+ msgid "Anonymous access to the WordPress Rest API has been restricted by %s."
5703
+ msgstr ""
5704
+
5705
+ #: src/processors/lockdown.php:216
5706
+ #, php-format
5707
+ msgid ""
5708
+ "The \"author\" query parameter has been blocked by %s to protect against "
5709
+ "user login name fishing."
5710
+ msgstr ""
5711
+
5712
+ #: src/processors/login_protect.php:68
5713
+ msgid "Please verify email has been received"
5714
+ msgstr ""
5715
+
5716
+ #: src/processors/login_protect.php:69
5717
+ msgid ""
5718
+ "Before we can activate email 2-factor authentication, we need you to confirm "
5719
+ "your website can send emails."
5720
+ msgstr ""
5721
+
5722
+ #: src/processors/login_protect.php:70
5723
+ msgid "Please click the link in the email you received."
5724
+ msgstr ""
5725
+
5726
+ #: src/processors/login_protect.php:72
5727
+ #, php-format
5728
+ msgid "The email has been sent to you at blog admin address: %s"
5729
+ msgstr ""
5730
+
5731
+ #: src/processors/login_protect.php:75
5732
+ msgid "To resend the email, re-save your Login Guard settings."
5733
+ msgstr ""
5734
+
5735
+ #: src/processors/login_protect.php:76
5736
+ msgid "To turn this notice off, disable 2-Factor Authentication."
5737
+ msgstr ""
5738
+
5739
+ #: src/processors/loginprotect_backupcodes.php:28
5740
+ msgid "Generate ONE-Time Backup 2FA Login Code"
5741
+ msgstr ""
5742
+
5743
+ #: src/processors/loginprotect_backupcodes.php:29
5744
+ msgid "Delete Login Backup Code"
5745
+ msgstr ""
5746
+
5747
+ #: src/processors/loginprotect_backupcodes.php:30
5748
+ msgid ""
5749
+ "Backup login codes are not available if you do not have any other two-factor "
5750
+ "authentication modes active."
5751
+ msgstr ""
5752
+
5753
+ #: src/processors/loginprotect_backupcodes.php:31
5754
+ msgid ""
5755
+ "Click to generate a backup login code for your two-factor authentication."
5756
+ msgstr ""
5757
+
5758
+ #: src/processors/loginprotect_backupcodes.php:34
5759
+ msgid ""
5760
+ "This code will be displayed only once and you may use it to verify your "
5761
+ "login only once."
5762
+ msgstr ""
5763
+
5764
+ #: src/processors/loginprotect_backupcodes.php:35
5765
+ msgid "Store it somewhere safe."
5766
+ msgstr ""
5767
+
5768
+ #: src/processors/loginprotect_backupcodes.php:36
5769
+ msgid "Generating a new code will replace your existing code."
5770
+ msgstr ""
5771
+
5772
+ #: src/processors/loginprotect_backupcodes.php:37
5773
+ #: src/processors/loginprotect_googleauthenticator.php:38
5774
+ msgid ""
5775
+ "Use your Google Authenticator app to scan this QR code and enter the one "
5776
+ "time password below."
5777
+ msgstr ""
5778
+
5779
+ #: src/processors/loginprotect_backupcodes.php:38
5780
+ #: src/processors/loginprotect_googleauthenticator.php:39
5781
+ msgid ""
5782
+ "If you have a problem with scanning the QR code enter this code manually "
5783
+ "into the app."
5784
+ msgstr ""
5785
+
5786
+ #: src/processors/loginprotect_backupcodes.php:39
5787
+ #: src/processors/loginprotect_googleauthenticator.php:40
5788
+ msgid "Check the box to remove Google Authenticator login authentication."
5789
+ msgstr ""
5790
+
5791
+ #: src/processors/loginprotect_backupcodes.php:40
5792
+ #: src/processors/loginprotect_googleauthenticator.php:41
5793
+ #, php-format
5794
+ msgid "Remove %s"
5795
+ msgstr ""
5796
+
5797
+ #: src/processors/loginprotect_backupcodes.php:41
5798
+ msgid "Create Backup 2FA Login Code"
5799
+ msgstr ""
5800
+
5801
+ #: src/processors/loginprotect_backupcodes.php:42
5802
+ #: src/processors/loginprotect_googleauthenticator.php:43
5803
+ msgid "Manual Code"
5804
+ msgstr ""
5805
+
5806
+ #: src/processors/loginprotect_backupcodes.php:43
5807
+ #: src/processors/loginprotect_googleauthenticator.php:44
5808
+ msgid "Scan This QR Code"
5809
+ msgstr ""
5810
+
5811
+ #: src/processors/loginprotect_backupcodes.php:44
5812
+ msgid "Backup Login Code"
5813
+ msgstr ""
5814
+
5815
+ #: src/processors/loginprotect_backupcodes.php:45
5816
+ #: src/processors/loginprotect_googleauthenticator.php:46
5817
+ #: src/processors/loginprotect_yubikey.php:46
5818
+ #, php-format
5819
+ msgid "Sorry, %s may not be added to another user's account."
5820
+ msgstr ""
5821
+
5822
+ #: src/processors/loginprotect_backupcodes.php:46
5823
+ #: src/processors/loginprotect_googleauthenticator.php:47
5824
+ #: src/processors/loginprotect_yubikey.php:47
5825
+ #, php-format
5826
+ msgid ""
5827
+ "Sorry, %s may only be removed from another user's account by a Security "
5828
+ "Administrator."
5829
+ msgstr ""
5830
+
5831
+ #: src/processors/loginprotect_backupcodes.php:46
5832
+ msgid "Backup Codes"
5833
+ msgstr ""
5834
+
5835
+ #: src/processors/loginprotect_backupcodes.php:47
5836
+ #: src/processors/loginprotect_googleauthenticator.php:48
5837
+ #: src/processors/loginprotect_twofactorauth.php:204
5838
+ #: src/processors/loginprotect_yubikey.php:48
5839
+ #, php-format
5840
+ msgid "Provided by %s"
5841
+ msgstr ""
5842
+
5843
+ #: src/processors/loginprotect_backupcodes.php:48
5844
+ #: src/processors/loginprotect_googleauthenticator.php:49
5845
+ #: src/processors/loginprotect_yubikey.php:49
5846
+ msgid "Understand how to remove Google Authenticator"
5847
+ msgstr ""
5848
+
5849
+ #: src/processors/loginprotect_backupcodes.php:75
5850
+ msgid "Please use your Backup Code to login."
5851
+ msgstr ""
5852
+
5853
+ #: src/processors/loginprotect_backupcodes.php:76
5854
+ msgid "Login Backup Code"
5855
+ msgstr ""
5856
+
5857
+ #: src/processors/loginprotect_backupcodes.php:133
5858
+ #: src/processors/loginprotect_googleauthenticator.php:288
5859
+ #: src/processors/loginprotect_twofactorauth.php:41
5860
+ #: src/processors/loginprotect_yubikey.php:239
5861
+ #, php-format
5862
+ msgid "User \"%s\" verified their identity using %s method."
5863
+ msgstr ""
5864
+
5865
+ #: src/processors/loginprotect_backupcodes.php:134
5866
+ #: src/processors/loginprotect_backupcodes.php:142
5867
+ msgid "Backup Code"
5868
+ msgstr ""
5869
+
5870
+ #: src/processors/loginprotect_backupcodes.php:141
5871
+ #: src/processors/loginprotect_googleauthenticator.php:296
5872
+ #: src/processors/loginprotect_twofactorauth.php:49
5873
+ #: src/processors/loginprotect_yubikey.php:247
5874
+ #, php-format
5875
+ msgid "User \"%s\" failed to verify their identity using %s method."
5876
+ msgstr ""
5877
+
5878
+ #: src/processors/loginprotect_backupcodes.php:169
5879
+ msgid ""
5880
+ "This is a quick notice to inform you that your Backup Login code was just "
5881
+ "used."
5882
+ msgstr ""
5883
+
5884
+ #: src/processors/loginprotect_backupcodes.php:170
5885
+ msgid "Your WordPress account had only 1 backup login code."
5886
+ msgstr ""
5887
+
5888
+ #: src/processors/loginprotect_backupcodes.php:171
5889
+ msgid ""
5890
+ "You must go to your profile and regenerate a new code if you want to use "
5891
+ "this method again."
5892
+ msgstr ""
5893
+
5894
+ #: src/processors/loginprotect_backupcodes.php:173
5895
+ #: src/processors/loginprotect_twofactorauth.php:159
5896
+ msgid "Login Details"
5897
+ msgstr ""
5898
+
5899
+ #: src/processors/loginprotect_backupcodes.php:174
5900
+ #: src/processors/loginprotect_twofactorauth.php:160
5901
+ msgid "URL"
5902
+ msgstr ""
5903
+
5904
+ #: src/processors/loginprotect_backupcodes.php:178
5905
+ msgid "Thank You."
5906
+ msgstr ""
5907
+
5908
+ #: src/processors/loginprotect_backupcodes.php:181
5909
+ msgid "Backup Login Code Just Used"
5910
+ msgstr ""
5911
+
5912
+ #: src/processors/loginprotect_cooldown.php:24
5913
+ msgid "Request Cooldown in effect."
5914
+ msgstr ""
5915
+
5916
+ #: src/processors/loginprotect_cooldown.php:26
5917
+ #, php-format
5918
+ msgid "You must wait %s seconds before attempting this action again."
5919
+ msgstr ""
5920
+
5921
+ #: src/processors/loginprotect_cooldown.php:31
5922
+ msgid ""
5923
+ "Cooldown triggered and request (login/register/lost-password) was blocked."
5924
+ msgstr ""
5925
+
5926
+ #: src/processors/loginprotect_gasp.php:29
5927
+ msgid "You MUST enable Javascript to be able to login"
5928
+ msgstr ""
5929
+
5930
+ #: src/processors/loginprotect_gasp.php:60
5931
+ #: src/processors/loginprotect_gasp.php:104
5932
+ #, php-format
5933
+ msgid "User \"%s\" attempted to %s but GASP checkbox was not present."
5934
+ msgstr ""
5935
+
5936
+ #: src/processors/loginprotect_gasp.php:62
5937
+ #: src/processors/loginprotect_gasp.php:71
5938
+ #: src/processors/loginprotect_gasp.php:106
5939
+ #: src/processors/loginprotect_gasp.php:115
5940
+ msgid "Probably a BOT."
5941
+ msgstr ""
5942
+
5943
+ #: src/processors/loginprotect_gasp.php:65
5944
+ #: src/processors/loginprotect_gasp.php:109
5945
+ msgid "You must check that box to say you're not a bot."
5946
+ msgstr ""
5947
+
5948
+ #: src/processors/loginprotect_gasp.php:69
5949
+ #: src/processors/loginprotect_gasp.php:113
5950
+ #, php-format
5951
+ msgid "User \"%s\" attempted to %s but they were caught by the GASP honeypot."
5952
+ msgstr ""
5953
+
5954
+ #: src/processors/loginprotect_gasp.php:74
5955
+ #: src/processors/loginprotect_gasp.php:118
5956
+ #, php-format
5957
+ msgid "You appear to be a bot - terminating %s attempt."
5958
+ msgstr ""
5959
+
5960
+ #: src/processors/loginprotect_googleauthenticator.php:36
5961
+ msgid "Provide the current code generated by your Google Authenticator app."
5962
+ msgstr ""
5963
+
5964
+ #: src/processors/loginprotect_googleauthenticator.php:37
5965
+ msgid "To reset this QR Code enter fake data here."
5966
+ msgstr ""
5967
+
5968
+ #: src/processors/loginprotect_googleauthenticator.php:42
5969
+ #: src/processors/loginprotect_googleauthenticator.php:206
5970
+ msgid "Google Authenticator Code"
5971
+ msgstr ""
5972
+
5973
+ #: src/processors/loginprotect_googleauthenticator.php:107
5974
+ #: src/processors/loginprotect_googleauthenticator.php:152
5975
+ msgid "Google Authenticator was successfully removed from the account."
5976
+ msgstr ""
5977
+
5978
+ #: src/processors/loginprotect_googleauthenticator.php:110
5979
+ msgid ""
5980
+ "Google Authenticator could not be removed from the account - ensure your "
5981
+ "code is correct."
5982
+ msgstr ""
5983
+
5984
+ #: src/processors/loginprotect_googleauthenticator.php:144
5985
+ #: src/processors/loginprotect_yubikey.php:80
5986
+ msgid "One Time Password (OTP) was not valid."
5987
+ msgstr ""
5988
+
5989
+ #: src/processors/loginprotect_googleauthenticator.php:144
5990
+ #: src/processors/loginprotect_yubikey.php:80
5991
+ msgid "Please try again."
5992
+ msgstr ""
5993
+
5994
+ #: src/processors/loginprotect_googleauthenticator.php:157
5995
+ msgid ""
5996
+ "An email has been sent to you in order to confirm Google Authenticator "
5997
+ "removal"
5998
+ msgstr ""
5999
+
6000
+ #: src/processors/loginprotect_googleauthenticator.php:161
6001
+ msgid ""
6002
+ "We tried to send an email for you to confirm Google Authenticator removal "
6003
+ "but it failed."
6004
+ msgstr ""
6005
+
6006
+ #: src/processors/loginprotect_googleauthenticator.php:183
6007
+ #, php-format
6008
+ msgid "%s was successfully added to your account."
6009
+ msgstr ""
6010
+
6011
+ #: src/processors/loginprotect_googleauthenticator.php:205
6012
+ msgid "Please use your Google Authenticator App to retrieve your code."
6013
+ msgstr ""
6014
+
6015
+ #: src/processors/loginprotect_googleauthenticator.php:224
6016
+ msgid ""
6017
+ "You have requested the removal of Google Authenticator from your WordPress "
6018
+ "account."
6019
+ msgstr ""
6020
+
6021
+ #: src/processors/loginprotect_googleauthenticator.php:225
6022
+ msgid "Please click the link below to confirm."
6023
+ msgstr ""
6024
+
6025
+ #: src/processors/loginprotect_googleauthenticator.php:230
6026
+ msgid "Google Authenticator Removal Confirmation"
6027
+ msgstr ""
6028
+
6029
+ #: src/processors/loginprotect_googleauthenticator.php:254
6030
+ msgid "Google Authenticator was successfully removed from this account."
6031
+ msgstr ""
6032
+
6033
+ #: src/processors/loginprotect_intent.php:121
6034
+ msgid "Success"
6035
+ msgstr ""
6036
+
6037
+ #: src/processors/loginprotect_intent.php:121
6038
+ msgid "Thank you for authenticating your login."
6039
+ msgstr ""
6040
+
6041
+ #: src/processors/loginprotect_intent.php:123
6042
+ msgid "If you used your Backup Code, you will need to reset it."
6043
+ msgstr ""
6044
+
6045
+ #: src/processors/loginprotect_intent.php:131
6046
+ msgid "One or more of your authentication codes failed or was missing"
6047
+ msgstr ""
6048
+
6049
+ #: src/processors/loginprotect_intent.php:269
6050
+ msgid "Please supply all authentication codes"
6051
+ msgstr ""
6052
+
6053
+ #: src/processors/loginprotect_intent.php:272
6054
+ msgid "Please supply at least 1 authentication code"
6055
+ msgstr ""
6056
+
6057
+ #: src/processors/loginprotect_intent.php:287
6058
+ msgid "Cancel Login"
6059
+ msgstr ""
6060
+
6061
+ #: src/processors/loginprotect_intent.php:288
6062
+ msgid "Time Remaining"
6063
+ msgstr ""
6064
+
6065
+ #: src/processors/loginprotect_intent.php:289
6066
+ msgid "Calculating"
6067
+ msgstr ""
6068
+
6069
+ #: src/processors/loginprotect_intent.php:290
6070
+ msgid "Seconds"
6071
+ msgstr ""
6072
+
6073
+ #: src/processors/loginprotect_intent.php:291
6074
+ msgid "Login Expired"
6075
+ msgstr ""
6076
+
6077
+ #: src/processors/loginprotect_intent.php:292
6078
+ msgid "Verify My Login"
6079
+ msgstr ""
6080
+
6081
+ #: src/processors/loginprotect_intent.php:294
6082
+ msgid "What is this?"
6083
+ msgstr ""
6084
+
6085
+ #: src/processors/loginprotect_intent.php:296
6086
+ #, php-format
6087
+ msgid "%s Login Verification"
6088
+ msgstr ""
6089
+
6090
+ #: src/processors/loginprotect_intent.php:298
6091
+ #, php-format
6092
+ msgid "Don't ask again on this browser for %s."
6093
+ msgstr ""
6094
+
6095
+ #: src/processors/loginprotect_intent.php:299
6096
+ #, php-format
6097
+ msgid "%s day"
6098
+ msgid_plural "%s days"
6099
+ msgstr[0] ""
6100
+ msgstr[1] ""
6101
+
6102
+ #: src/processors/loginprotect_twofactorauth.php:42
6103
+ #: src/processors/loginprotect_twofactorauth.php:50
6104
+ msgid "Email Auth"
6105
+ msgstr ""
6106
+
6107
+ #: src/processors/loginprotect_twofactorauth.php:80
6108
+ msgid "This code was just sent to your registered Email address."
6109
+ msgstr ""
6110
+
6111
+ #: src/processors/loginprotect_twofactorauth.php:81
6112
+ msgid "Email OTP"
6113
+ msgstr ""
6114
+
6115
+ #: src/processors/loginprotect_twofactorauth.php:154
6116
+ msgid "Someone attempted to login into this WordPress site using your account."
6117
+ msgstr ""
6118
+
6119
+ #: src/processors/loginprotect_twofactorauth.php:155
6120
+ msgid "Login requires verification with the following code."
6121
+ msgstr ""
6122
+
6123
+ #: src/processors/loginprotect_twofactorauth.php:157
6124
+ #, php-format
6125
+ msgid "Verification Code: %s"
6126
+ msgstr ""
6127
+
6128
+ #: src/processors/loginprotect_twofactorauth.php:167
6129
+ msgid "Why no login link?"
6130
+ msgstr ""
6131
+
6132
+ #: src/processors/loginprotect_twofactorauth.php:171
6133
+ msgid "Two-Factor Login Verification"
6134
+ msgstr ""
6135
+
6136
+ #: src/processors/loginprotect_twofactorauth.php:176
6137
+ #, php-format
6138
+ msgid ""
6139
+ "User \"%s\" was sent an email to verify their Identity using Two-Factor "
6140
+ "Login Auth for IP address \"%s\"."
6141
+ msgstr ""
6142
+
6143
+ #: src/processors/loginprotect_twofactorauth.php:180
6144
+ #, php-format
6145
+ msgid ""
6146
+ "Tried to send email to User \"%s\" to verify their identity using Two-Factor "
6147
+ "Login Auth for IP address \"%s\", but email sending failed."
6148
+ msgstr ""
6149
+
6150
+ #: src/processors/loginprotect_twofactorauth.php:203
6151
+ msgid "Check the box to enable email-based login authentication."
6152
+ msgstr ""
6153
+
6154
+ #: src/processors/loginprotect_wplogin.php:52
6155
+ msgid ""
6156
+ "Your login URL is unchanged because the Rename WP Login feature is not "
6157
+ "currently supported on WPMS."
6158
+ msgstr ""
6159
+
6160
+ #: src/processors/loginprotect_wplogin.php:56
6161
+ #: src/processors/loginprotect_wplogin.php:60
6162
+ #, php-format
6163
+ msgid ""
6164
+ "Can not use the Rename WP Login feature because you have the \"%s\" plugin "
6165
+ "installed and it is active."
6166
+ msgstr ""
6167
+
6168
+ #: src/processors/loginprotect_wplogin.php:64
6169
+ #, php-format
6170
+ msgid ""
6171
+ "Can not use the Rename WP Login feature because you have not enabled %s."
6172
+ msgstr ""
6173
+
6174
+ #: src/processors/loginprotect_wplogin.php:68
6175
+ #, php-format
6176
+ msgid ""
6177
+ "Can not use the Rename WP Login feature because you have chosen a path (\"%s"
6178
+ "\") that is reserved on your WordPress site."
6179
+ msgstr ""
6180
+
6181
+ #: src/processors/loginprotect_wplogin.php:94
6182
+ msgid ""
6183
+ "Your login URL is unchanged because your current hosting/PHP configuration "
6184
+ "cannot parse the necessary information."
6185
+ msgstr ""
6186
+
6187
+ #: src/processors/loginprotect_yubikey.php:33
6188
+ msgid "This is your unique Yubikey Device ID."
6189
+ msgstr ""
6190
+
6191
+ #: src/processors/loginprotect_yubikey.php:34
6192
+ #: src/processors/loginprotect_yubikey.php:41
6193
+ msgid "Pro Only"
6194
+ msgstr ""
6195
+
6196
+ #: src/processors/loginprotect_yubikey.php:35
6197
+ msgid "Multiple Yubikey Device IDs are separated by a comma."
6198
+ msgstr ""
6199
+
6200
+ #: src/processors/loginprotect_yubikey.php:36
6201
+ msgid "Provide a One Time Password from your Yubikey."
6202
+ msgstr ""
6203
+
6204
+ #: src/processors/loginprotect_yubikey.php:38
6205
+ msgid "This will remove the Yubikey Device ID from your profile."
6206
+ msgstr ""
6207
+
6208
+ #: src/processors/loginprotect_yubikey.php:39
6209
+ msgid "This will add the Yubikey Device ID to your profile."
6210
+ msgstr ""
6211
+
6212
+ #: src/processors/loginprotect_yubikey.php:41
6213
+ msgid ""
6214
+ "If you provide a OTP from an alternative Yubikey device, it will also be "
6215
+ "added to your profile."
6216
+ msgstr ""
6217
+
6218
+ #: src/processors/loginprotect_yubikey.php:43
6219
+ msgid "Yubikey ID"
6220
+ msgstr ""
6221
+
6222
+ #: src/processors/loginprotect_yubikey.php:44
6223
+ #: src/processors/loginprotect_yubikey.php:240
6224
+ #: src/processors/loginprotect_yubikey.php:248
6225
+ #: src/processors/loginprotect_yubikey.php:266
6226
+ msgid "Yubikey OTP"
6227
+ msgstr ""
6228
+
6229
+ #: src/processors/loginprotect_yubikey.php:45
6230
+ msgid "Yubikey Authentication"
6231
+ msgstr ""
6232
+
6233
+ #: src/processors/loginprotect_yubikey.php:47
6234
+ msgid "Yubikey"
6235
+ msgstr ""
6236
+
6237
+ #: src/processors/loginprotect_yubikey.php:99
6238
+ #, php-format
6239
+ msgid "%s was removed from your profile."
6240
+ msgstr ""
6241
+
6242
+ #: src/processors/loginprotect_yubikey.php:100
6243
+ #: src/processors/loginprotect_yubikey.php:107
6244
+ msgid "Yubikey Device"
6245
+ msgstr ""
6246
+
6247
+ #: src/processors/loginprotect_yubikey.php:106
6248
+ #, php-format
6249
+ msgid "%s was added to your profile."
6250
+ msgstr ""
6251
+
6252
+ #: src/processors/loginprotect_yubikey.php:112
6253
+ msgid "No changes were made to your Yubikey configuration"
6254
+ msgstr ""
6255
+
6256
+ #: src/processors/loginprotect_yubikey.php:264
6257
+ msgid "Use your Yubikey to generate a new code."
6258
+ msgstr ""
6259
+
6260
+ #: src/processors/loginprotect_yubikey.php:341
6261
+ #, php-format
6262
+ msgid ""
6263
+ "User \"%s\" logged in without a Yubikey One Time Password because no "
6264
+ "username-yubikey pair was found for this user."
6265
+ msgstr ""
6266
+
6267
+ #: src/processors/loginprotect_yubikey.php:348
6268
+ #, php-format
6269
+ msgid ""
6270
+ "User \"%s\" attempted to login but Yubikey ID \"%s\" used was not in list of "
6271
+ "authorised keys."
6272
+ msgstr ""
6273
+
6274
+ #: src/processors/loginprotect_yubikey.php:354
6275
+ #: src/processors/loginprotect_yubikey.php:372
6276
+ #, php-format
6277
+ msgid "ERROR: %s"
6278
+ msgstr ""
6279
+
6280
+ #: src/processors/loginprotect_yubikey.php:354
6281
+ msgid ""
6282
+ "The Yubikey provided is not on the list of permitted keys for this user."
6283
+ msgstr ""
6284
+
6285
+ #: src/processors/loginprotect_yubikey.php:361
6286
+ #, php-format
6287
+ msgid ""
6288
+ "User \"%s\" successfully logged in using a validated Yubikey One Time "
6289
+ "Password."
6290
+ msgstr ""
6291
+
6292
+ #: src/processors/loginprotect_yubikey.php:367
6293
+ #, php-format
6294
+ msgid ""
6295
+ "User \"%s\" attempted to login but Yubikey One Time Password failed to "
6296
+ "validate due to invalid Yubi API response.\"."
6297
+ msgstr ""
6298
+
6299
+ #: src/processors/loginprotect_yubikey.php:372
6300
+ msgid "The Yubikey authentication was not validated successfully."
6301
+ msgstr ""
6302
+
6303
+ #: src/processors/plugin.php:206
6304
+ #, php-format
6305
+ msgid "%s plugin is not currently processing requests"
6306
+ msgstr ""
6307
+
6308
+ #: src/processors/plugin.php:208
6309
+ #, php-format
6310
+ msgid "Please delete the \"%s\" file to reactivate the %s protection"
6311
+ msgstr ""
6312
+
6313
+ #: src/processors/plugin.php:212
6314
+ msgid "Click here to automatically delete the file"
6315
+ msgstr ""
6316
+
6317
+ #: src/processors/plugin.php:239
6318
+ msgid "Your Name"
6319
+ msgstr ""
6320
+
6321
+ #: src/processors/plugin.php:240
6322
+ msgid "Your Email"
6323
+ msgstr ""
6324
+
6325
+ #: src/processors/plugin_badge.php:40
6326
+ #, php-format
6327
+ msgid "%s is provided by %s"
6328
+ msgstr ""
6329
+
6330
+ #: src/processors/plugin_badge.php:45
6331
+ #, php-format
6332
+ msgid "Days Installed: %s"
6333
+ msgstr ""
6334
+
6335
+ #: src/processors/plugin_badgewidget.php:20
6336
+ #, php-format
6337
+ msgid "%s Plugin Badge"
6338
+ msgstr ""
6339
+
6340
+ #: src/processors/plugin_badgewidget.php:22
6341
+ #, php-format
6342
+ msgid ""
6343
+ "You can now help spread the word about the %s plugin anywhere on your site"
6344
+ msgstr ""
6345
+
6346
+ #: src/processors/plugin_badgewidget.php:55
6347
+ msgid "Site Secured"
6348
+ msgstr ""
6349
+
6350
+ #: src/processors/plugin_importexport.php:45
6351
+ msgid "Sent notifications to whitelisted sites for required options import."
6352
+ msgstr ""
6353
+
6354
+ #: src/processors/plugin_importexport.php:119
6355
+ msgid "Received notification that options import required."
6356
+ msgstr ""
6357
+
6358
+ #: src/processors/plugin_importexport.php:120
6359
+ #, php-format
6360
+ msgid "Current master site: %s"
6361
+ msgstr ""
6362
+
6363
+ #: src/processors/plugin_importexport.php:148
6364
+ #, php-format
6365
+ msgid "Not currently running %s Pro."
6366
+ msgstr ""
6367
+
6368
+ #: src/processors/plugin_importexport.php:152
6369
+ msgid "Export of options is currently disabled."
6370
+ msgstr ""
6371
+
6372
+ #: src/processors/plugin_importexport.php:156
6373
+ msgid "Handshake verification failed."
6374
+ msgstr ""
6375
+
6376
+ #: src/processors/plugin_importexport.php:165
6377
+ #, php-format
6378
+ msgid "Options exported to site %s."
6379
+ msgstr ""
6380
+
6381
+ #: src/processors/plugin_importexport.php:171
6382
+ #, php-format
6383
+ msgid "Site added to export white list: %s."
6384
+ msgstr ""
6385
+
6386
+ #: src/processors/plugin_importexport.php:314
6387
+ #, php-format
6388
+ msgid "Options imported from %s."
6389
+ msgstr ""
6390
+
6391
+ #: src/processors/plugin_importexport.php:329
6392
+ #, php-format
6393
+ msgid "Master Site URL set to %s."
6394
+ msgstr ""
6395
+
6396
+ #: src/processors/plugin_tracking.php:31
6397
+ #, php-format
6398
+ msgid "Make %s even better by sharing usage info?"
6399
+ msgstr ""
6400
+
6401
+ #: src/processors/plugin_tracking.php:32
6402
+ #, php-format
6403
+ msgid "We're hoping to understand how %s is configured and used."
6404
+ msgstr ""
6405
+
6406
+ #: src/processors/plugin_tracking.php:33
6407
+ msgid "We'd like to understand how effective it is on a global scale."
6408
+ msgstr ""
6409
+
6410
+ #: src/processors/plugin_tracking.php:34
6411
+ msgid ""
6412
+ "The data sent is always completely anonymous and we can never track you or "
6413
+ "your site."
6414
+ msgstr ""
6415
+
6416
+ #: src/processors/plugin_tracking.php:35
6417
+ msgid "It can be turned-off at any time within the plugin options."
6418
+ msgstr ""
6419
+
6420
+ #: src/processors/plugin_tracking.php:36
6421
+ msgid "Click to see the RAW data that would be sent"
6422
+ msgstr ""
6423
+
6424
+ #: src/processors/plugin_tracking.php:39
6425
+ msgid "Absolutely"
6426
+ msgstr ""
6427
+
6428
+ #: src/processors/sessions.php:109
6429
+ msgid "You're already logged-in."
6430
+ msgstr ""
6431
+
6432
+ #: src/processors/sessions.php:114
6433
+ msgid "Go To Admin"
6434
+ msgstr ""
6435
+
6436
+ #: src/processors/statistics.php:202
6437
+ msgid "Login Verified"
6438
+ msgstr ""
6439
+
6440
+ #: src/processors/statistics.php:204
6441
+ msgid "IP Auto Black-Listed"
6442
+ msgstr ""
6443
+
6444
+ #: src/processors/statistics.php:205
6445
+ msgid "Total Transgressions"
6446
+ msgstr ""
6447
+
6448
+ #: src/processors/statistics.php:209
6449
+ #, php-format
6450
+ msgid "%s Statistics"
6451
+ msgstr ""
6452
+
6453
+ #: src/processors/user_management.php:127
6454
+ msgid "Last Login"
6455
+ msgstr ""
6456
+
6457
+ #: src/processors/user_management.php:149
6458
+ msgid "Not Recorded"
6459
+ msgstr ""
6460
+
6461
+ #: src/processors/user_management.php:199
6462
+ #, php-format
6463
+ msgid ""
6464
+ "As requested, %s is notifying you of a successful %s login to a WordPress "
6465
+ "site that you manage."
6466
+ msgstr ""
6467
+
6468
+ #: src/processors/user_management.php:204
6469
+ #, php-format
6470
+ msgid "Important: %s"
6471
+ msgstr ""
6472
+
6473
+ #: src/processors/user_management.php:204
6474
+ msgid ""
6475
+ "This user may now be subject to additional Two-Factor Authentication before "
6476
+ "completing their login."
6477
+ msgstr ""
6478
+
6479
+ #: src/processors/user_management.php:206
6480
+ msgid "Details for this user are below:"
6481
+ msgstr ""
6482
+
6483
+ #: src/processors/user_management.php:212
6484
+ #: src/processors/user_management.php:242
6485
+ msgid "Thanks."
6486
+ msgstr ""
6487
+
6488
+ #: src/processors/user_management.php:220
6489
+ #: src/processors/user_management.php:250
6490
+ msgid "Notice"
6491
+ msgstr ""
6492
+
6493
+ #: src/processors/user_management.php:220
6494
+ #, php-format
6495
+ msgid "%s Just Logged Into %s"
6496
+ msgstr ""
6497
+
6498
+ #: src/processors/user_management.php:231
6499
+ #, php-format
6500
+ msgid "%s is notifying you of a successful login to your WordPress account."
6501
+ msgstr ""
6502
+
6503
+ #: src/processors/user_management.php:234
6504
+ msgid "Details for this login are below:"
6505
+ msgstr ""
6506
+
6507
+ #: src/processors/user_management.php:240
6508
+ msgid ""
6509
+ "If this is unexpected or suspicious, please contact your site administrator "
6510
+ "immediately."
6511
+ msgstr ""
6512
+
6513
+ #: src/processors/user_management.php:250
6514
+ msgid "A login to your WordPress account just occurred"
6515
+ msgstr ""
6516
+
6517
+ #: src/processors/usermanagement_passwords.php:90
6518
+ msgid "Forcing user to update expired password."
6519
+ msgstr ""
6520
+
6521
+ #: src/processors/usermanagement_passwords.php:92
6522
+ #, php-format
6523
+ msgid "Your password has expired (%s days)."
6524
+ msgstr ""
6525
+
6526
+ #: src/processors/usermanagement_passwords.php:108
6527
+ msgid "Forcing user to update password that fails to meet policies."
6528
+ msgstr ""
6529
+
6530
+ #: src/processors/usermanagement_passwords.php:112
6531
+ msgid ""
6532
+ "Your password doesn't meet requirements set by your security administrator."
6533
+ msgstr ""
6534
+
6535
+ #: src/processors/usermanagement_passwords.php:122
6536
+ #: src/processors/usermanagement_passwords.php:145
6537
+ msgid ""
6538
+ "For your security, please use the password section below to update your "
6539
+ "password."
6540
+ msgstr ""
6541
+
6542
+ #: src/processors/usermanagement_passwords.php:172
6543
+ msgid ""
6544
+ "Your security administrator has imposed requirements for password quality."
6545
+ msgstr ""
6546
+
6547
+ #: src/processors/usermanagement_passwords.php:173
6548
+ msgid "Reason"
6549
+ msgstr ""
6550
+
6551
+ #: src/processors/usermanagement_passwords.php:181
6552
+ msgid "Blocked attempted password update that failed policy requirements."
6553
+ msgstr ""
6554
+
6555
+ #: src/processors/usermanagement_passwords.php:238
6556
+ #, php-format
6557
+ msgid "Password length (%s) too short (min: %s characters)"
6558
+ msgstr ""
6559
+
6560
+ #: src/processors/usermanagement_passwords.php:300
6561
+ #: src/processors/usermanagement_passwords.php:367
6562
+ msgid "Please use a different password."
6563
+ msgstr ""
6564
+
6565
+ #: src/processors/usermanagement_passwords.php:301
6566
+ msgid "This password has already been pwned."
6567
+ msgstr ""
6568
+
6569
+ #: src/processors/usermanagement_passwords.php:305
6570
+ #: src/processors/usermanagement_passwords.php:372
6571
+ #, php-format
6572
+ msgid "%s times"
6573
+ msgstr ""
6574
+
6575
+ #: src/processors/usermanagement_passwords.php:368
6576
+ msgid "This password has been pwned."
6577
+ msgstr ""
6578
+
6579
+ #: src/processors/usermanagement_sessions.php:278
6580
+ msgid "Your session has expired."
6581
+ msgstr ""
6582
+
6583
+ #: src/processors/usermanagement_sessions.php:282
6584
+ msgid "Your session was idle for too long."
6585
+ msgstr ""
6586
+
6587
+ #: src/processors/usermanagement_sessions.php:286
6588
+ msgid "Your session was locked to another IP Address."
6589
+ msgstr ""
6590
+
6591
+ #: src/processors/usermanagement_sessions.php:290
6592
+ #, php-format
6593
+ msgid "You do not currently have a %s user session."
6594
+ msgstr ""
6595
+
6596
+ #: src/processors/usermanagement_sessions.php:295
6597
+ msgid "An administrator has terminated this session."
6598
+ msgstr ""
6599
+
6600
+ #: src/processors/usermanagement_sessions.php:299
6601
+ msgid "Not a user."
6602
+ msgstr ""
6603
+
6604
+ #: src/processors/usermanagement_sessions.php:303
6605
+ msgid "Your session was terminated."
6606
+ msgstr ""
6607
+
6608
+ #: src/processors/usermanagement_sessions.php:307
6609
+ msgid "Please login again."
6610
+ msgstr ""
6611
+
6612
+ #: src/wizards/base.php:374
6613
+ #, php-format
6614
+ msgid "%s Wizard"
6615
+ msgstr ""
6616
+
6617
+ #: src/wizards/base.php:517
6618
+ msgid "No Access"
6619
+ msgstr ""
6620
+
6621
+ #: src/wizards/base_wpsf.php:113
6622
+ msgid "Security Admin Key was not correct."
6623
+ msgstr ""
6624
+
6625
+ #: src/wizards/hack_protect.php:18
6626
+ #, php-format
6627
+ msgid "%s Hack Protect Wizard"
6628
+ msgstr ""
6629
+
6630
+ #: src/wizards/hack_protect.php:302
6631
+ msgid "All changes detected have been ignored."
6632
+ msgstr ""
6633
+
6634
+ #: src/wizards/hack_protect.php:309
6635
+ msgid "The plugin has been deactivated."
6636
+ msgstr ""
6637
+
6638
+ #: src/wizards/login_protect.php:18
6639
+ #, php-format
6640
+ msgid "%s Multi-Factor Authentication Wizard"
6641
+ msgstr ""
6642
+
6643
+ #: src/wizards/login_protect.php:62
6644
+ msgid "Invalid email address"
6645
+ msgstr ""
6646
+
6647
+ #: src/wizards/login_protect.php:69
6648
+ msgid "Verification email sent (please check your email including your SPAM)."
6649
+ msgstr ""
6650
+
6651
+ #: src/wizards/login_protect.php:70
6652
+ msgid ""
6653
+ "Enter the code from the email into the form above and click the button to "
6654
+ "verify."
6655
+ msgstr ""
6656
+
6657
+ #: src/wizards/login_protect.php:119
6658
+ msgid "Code was empty."
6659
+ msgstr ""
6660
+
6661
+ #: src/wizards/login_protect.php:146
6662
+ msgid "Google Authenticator was enabled for the site."
6663
+ msgstr ""
6664
+
6665
+ #: src/wizards/login_protect.php:161
6666
+ #, php-format
6667
+ msgid "Multi-Factor Authentication was %s for the site."
6668
+ msgstr ""
6669
+
6670
+ #: src/wizards/login_protect.php:162
6671
+ msgid "enabled"
6672
+ msgstr ""
6673
+
6674
+ #: src/wizards/login_protect.php:162
6675
+ msgid "disabled"
6676
+ msgstr ""
6677
+
6678
+ #: src/wizards/plugin.php:18
6679
+ #, php-format
6680
+ msgid "%s Welcome Wizard"
6681
+ msgstr ""
6682
+
6683
+ #: src/wizards/plugin.php:252
6684
+ msgid "Where to find Shield"
6685
+ msgstr ""
6686
+
6687
+ #: src/wizards/plugin.php:253
6688
+ msgid "Accessing Each Module"
6689
+ msgstr ""
6690
+
6691
+ #: src/wizards/plugin.php:254
6692
+ msgid "Accessing Options"
6693
+ msgstr ""
6694
+
6695
+ #: src/wizards/plugin.php:255
6696
+ msgid "Launching Wizards"
6697
+ msgstr ""
6698
+
6699
+ #: src/wizards/plugin.php:256
6700
+ msgid "Finding Help"
6701
+ msgstr ""
6702
+
6703
+ #: src/wizards/plugin.php:257
6704
+ msgid "Actions (not Options)"
6705
+ msgstr ""
6706
+
6707
+ #: src/wizards/plugin.php:258
6708
+ msgid "Help For Each Option"
6709
+ msgstr ""
6710
+
6711
+ #: src/wizards/plugin.php:259
6712
+ msgid "Module On/Off Switch"
6713
+ msgstr ""
6714
+
6715
+ #: src/wizards/plugin.php:262
6716
+ #, php-format
6717
+ msgid "You'll find the main %s settings in the left-hand WordPress menu."
6718
+ msgstr ""
6719
+
6720
+ #: src/wizards/plugin.php:263
6721
+ msgid ""
6722
+ "Shield is split up into independent modules for accessing the options of "
6723
+ "each feature."
6724
+ msgstr ""
6725
+
6726
+ #: src/wizards/plugin.php:264
6727
+ msgid ""
6728
+ "When you load a module, you can access the options by clicking on the "
6729
+ "Options Panel link."
6730
+ msgstr ""
6731
+
6732
+ #: src/wizards/plugin.php:265
6733
+ msgid "Launch helpful walk-through wizards for modules that have them."
6734
+ msgstr ""
6735
+
6736
+ #: src/wizards/plugin.php:266
6737
+ msgid ""
6738
+ "Each module also has a brief overview help section - there is more in-depth "
6739
+ "help available."
6740
+ msgstr ""
6741
+
6742
+ #: src/wizards/plugin.php:267
6743
+ msgid ""
6744
+ "Certain modules have extra actions and features, e.g. Audit Trail Viewer."
6745
+ msgstr ""
6746
+
6747
+ #: src/wizards/plugin.php:268
6748
+ msgid "Note: Not all modules have the actions section"
6749
+ msgstr ""
6750
+
6751
+ #: src/wizards/plugin.php:269
6752
+ msgid ""
6753
+ "Each module has an Enable/Disable checkbox to turn on/off all processing for "
6754
+ "that module"
6755
+ msgstr ""
6756
+
6757
+ #: src/wizards/plugin.php:270
6758
+ msgid ""
6759
+ "To help you understand each option, most of them have a more info link, and/"
6760
+ "or a blog link, to read more"
6761
+ msgstr ""
6762
+
6763
+ #: src/wizards/plugin.php:365
6764
+ msgid "Success!"
6765
+ msgstr ""
6766
+
6767
+ #: src/wizards/plugin.php:386
6768
+ msgid "License was found and successfully installed."
6769
+ msgstr ""
6770
+
6771
+ #: src/wizards/plugin.php:389
6772
+ msgid "License could not be found."
6773
+ msgstr ""
6774
+
6775
+ #: src/wizards/plugin.php:419
6776
+ msgid "Options imported successfully to your site."
6777
+ msgstr ""
6778
+
6779
+ #: src/wizards/plugin.php:420
6780
+ msgid "Secret key was empty."
6781
+ msgstr ""
6782
+
6783
+ #: src/wizards/plugin.php:421
6784
+ msgid "Secret key was not 40 characters long."
6785
+ msgstr ""
6786
+
6787
+ #: src/wizards/plugin.php:422
6788
+ msgid ""
6789
+ "Secret key contains invalid characters - it should be letters and numbers "
6790
+ "only."
6791
+ msgstr ""
6792
+
6793
+ #: src/wizards/plugin.php:423
6794
+ msgid "Source site URL could not be parsed correctly."
6795
+ msgstr ""
6796
+
6797
+ #: src/wizards/plugin.php:424
6798
+ msgid "Could not parse the response from the site."
6799
+ msgstr ""
6800
+
6801
+ #: src/wizards/plugin.php:425
6802
+ msgid "Check the secret key is correct for the remote site."
6803
+ msgstr ""
6804
+
6805
+ #: src/wizards/plugin.php:426
6806
+ msgid "Failure response returned from the site."
6807
+ msgstr ""
6808
+
6809
+ #: src/wizards/plugin.php:427
6810
+ #, php-format
6811
+ msgid "Remote site responded with - %s"
6812
+ msgstr ""
6813
+
6814
+ #: src/wizards/plugin.php:428
6815
+ msgid "Data returned from the site was empty."
6816
+ msgstr ""
6817
+
6818
+ #: src/wizards/plugin.php:462
6819
+ msgid "Security Admin setup was successful."
6820
+ msgstr ""
6821
+
6822
+ #: src/wizards/plugin.php:480 src/wizards/plugin.php:513
6823
+ #: src/wizards/plugin.php:546 src/wizards/plugin.php:584
6824
+ #: src/wizards/plugin.php:692
6825
+ msgid "No changes were made as no option was selected"
6826
+ msgstr ""
6827
+
6828
+ #: src/wizards/plugin.php:493 src/wizards/plugin.php:526
6829
+ #: src/wizards/plugin.php:562 src/wizards/plugin.php:708
6830
+ msgid "Enabled"
6831
+ msgstr ""
6832
+
6833
+ #: src/wizards/plugin.php:493 src/wizards/plugin.php:526
6834
+ #: src/wizards/plugin.php:562 src/wizards/plugin.php:708
6835
+ msgid "Disabled"
6836
+ msgstr ""
6837
+
6838
+ #: src/wizards/plugin.php:497 src/wizards/plugin.php:530
6839
+ #: src/wizards/plugin.php:566 src/wizards/plugin.php:712
6840
+ #, php-format
6841
+ msgid "%s setting could not be changed at this time."
6842
+ msgstr ""
6843
+
6844
+ #: src/wizards/plugin.php:594 src/wizards/plugin.php:604
6845
+ msgid "Preferences have been saved."
6846
+ msgstr ""
6847
+
6848
+ #: src/wizards/plugin.php:657
6849
+ msgid "Search item added."
6850
+ msgstr ""
6851
+
6852
+ #: src/wizards/plugin.php:674
6853
+ msgid "All entries were deleted"
6854
+ msgstr ""
6855
+
6856
+ #: src/wizards/plugin.php:677
6857
+ msgid "Please check the box to confirm deletion."
6858
+ msgstr ""
plugin-spec.php CHANGED
@@ -1,7 +1,7 @@
1
  {
2
  "properties": {
3
- "version": "6.10.9",
4
- "release_timestamp": 1544177090,
5
  "slug_parent": "icwp",
6
  "slug_plugin": "wpsf",
7
  "human_name": "Shield",
@@ -17,11 +17,12 @@
17
  "enable_premium": true
18
  },
19
  "requirements": {
20
- "php": "5.2.4",
21
  "wordpress": "3.5.0"
22
  },
23
  "paths": {
24
  "source": "src",
 
25
  "assets": "resources",
26
  "languages": "languages",
27
  "templates": "templates",
@@ -47,7 +48,8 @@
47
  "bootstrap4.bundle.min",
48
  "jquery",
49
  "plugin",
50
- "featherlight"
 
51
  ]
52
  },
53
  "frontend": {
1
  {
2
  "properties": {
3
+ "version": "7.0.0",
4
+ "release_timestamp": 1548664000,
5
  "slug_parent": "icwp",
6
  "slug_plugin": "wpsf",
7
  "human_name": "Shield",
17
  "enable_premium": true
18
  },
19
  "requirements": {
20
+ "php": "5.4.0",
21
  "wordpress": "3.5.0"
22
  },
23
  "paths": {
24
  "source": "src",
25
+ "autoload": "lib/vendor/autoload.php",
26
  "assets": "resources",
27
  "languages": "languages",
28
  "templates": "templates",
48
  "bootstrap4.bundle.min",
49
  "jquery",
50
  "plugin",
51
+ "featherlight",
52
+ "jquery.fileDownload"
53
  ]
54
  },
55
  "frontend": {
readme.txt CHANGED
@@ -5,10 +5,10 @@ License: GPLv3
5
  License URI: http://www.gnu.org/licenses/gpl.html
6
  Tags: security, all in one, scan, firewall, two factor authentication, spam, wordfence, cerber, ithemes
7
  Requires at least: 3.5.0
8
- Requires PHP: 5.2.4
9
- Recommended PHP: 5.4
10
- Tested up to: 5.0
11
- Stable tag: 6.10.9
12
 
13
  Complete All-In-One Protection for your WordPress sites, that makes Security Easy for Everyone - it doesn't have to be hard anymore.
14
 
@@ -345,8 +345,6 @@ Possible options are: network_admin, administrator, editor, author, contributor,
345
 
346
  == Changelog ==
347
 
348
- ** IMPORTANT ** : Shield Security v7+ will support only [PHP versions 5.4 and above](https://icwp.io/dh).
349
-
350
  Shield Pro brings exclusive features to the serious webmaster to maximise site security.
351
  You'll also have access to our email technical support team.
352
 
@@ -354,46 +352,16 @@ You will always be able to use Shield Security and its free features in-full.
354
 
355
  [Go Pro for just $1/month](https://icwp.io/aa).
356
 
357
- = 6.10.9 - Current Release =
358
- *Released: 7th December, 2018* - [Release Notes](https://icwp.io/dg)
359
-
360
- * **(v.9)** FIXED: Admin notices displaying to non-admins.
361
- * **(v.7)** ADDED: [**PRO**] New option to specify usernames for Security Admin role.
362
- * **(v.7)** IMPROVED: Idle user detection.
363
- * **(v.7)** IMPROVED: Support for redirect/cancel URLs in 2FA login page.
364
- * **(v.7)** CHANGED: Final release before Shield v7. Small warning shown on plugins page if PHP < 5.4
365
-
366
- = 6.10 - Series =
367
- *Released: 15th October, 2018* - [Release Notes](https://icwp.io/dg)
368
-
369
- * **(v.6)** ADDED: New option to control plugin automatic updates.
370
- * **(v.6)** IMPROVED: Enhancements to the experimental bot JS.
371
- * **(v.6)** IMPROVED: Support for Easy Digital Downloads forms.
372
- * **(v.5)** Release skipped.
373
- * **(v.4)** FIXED: Couldn't deactivate plugin.
374
- * **(v.3)** ADDED: Support for Ultimate Member forms
375
- * **(v.3)** ADDED: Support for LearnPress login/registration forms
376
- * **(v.3)** FIXED: Security Admin now correctly honours the WordPress Options zone setting.
377
- * **(v.3)** IMPROVED: Distinguish which sub-site (sub-domain) for WPMS installations on [Traffic Watcher](https://icwp.io/c1).
378
- * **(v.3)** IMPROVED: Server's own IP lookup is only attempted once.
379
- * **(v.3)** ADDED: Experimental feature to help with some custom 3rd party login/registration forms
380
- * **(v.2)** IMPROVED: Visitor IP address detection
381
- * **(v.2)** IMPROVED: Automatic whitelisting of Manage WP IP addresses
382
- * **(v.2)** IMPROVED: SPAM Comments code enhanced and optimised
383
- * **(v.2)** IMPROVED: IP Whitelisting code enhanced and optimised
384
- * **(v.2)** IMPROVED: Code cleaning and refactoring.
385
- * **(v.1)** FIXED: Googlebot PHP error notice.
386
- * **(v.0)** NEW: [**PRO**] 2FA Login Backup Codes - all users can create a backup login code in-case their MFA factors are temporarily unavailable.
387
- * **(v.0)** NEW: [**PRO**] White Label - you can now specify custom image for 2FA login screen.
388
- * **(v.0)** ADDED: [**PRO**] Custom Exclusion Rules for Traffic Watcher so you can exclude certain User Agents and request paths.
389
- * **(v.0)** ADDED: Detection of official spiders/bots for Google, Bing, Apple and Yandex - these visitors will never get blacklisted.
390
- * **(v.0)** IMPROVED: Two-Factor Authentication system much improved (+ critical bug fix).
391
- * **(v.0)** IMPROVED: Audit Trail entries for 2FA login factors.
392
- * **(v.0)** IMPROVED: Fixes for Two-Factor Authentication wizard UX.
393
- * **(v.0)** IMPROVED: Traffic Watcher now honours the IP Whitelist.
394
- * **(v.0)** IMPROVED: Security Admin restriction for creating/editing/deleting Administrator users is much improved.
395
- * **(v.0)** IMPROVED: All Shield cookies are SSL-only by default for HTTPS sites.
396
- * **(v.0)** FIXED: GASP checkbox Javascript breaking in a particular scenario.
397
- * **(v.0)** ADDED: Optional plugin deactivation survey.
398
 
399
  #### [Full Changelog](https://ps.w.org/wp-simple-firewall/trunk/changelog.html)
5
  License URI: http://www.gnu.org/licenses/gpl.html
6
  Tags: security, all in one, scan, firewall, two factor authentication, spam, wordfence, cerber, ithemes
7
  Requires at least: 3.5.0
8
+ Requires PHP: 5.4.0
9
+ Recommended PHP: 7.0
10
+ Tested up to: 5.1
11
+ Stable tag: 7.0.0
12
 
13
  Complete All-In-One Protection for your WordPress sites, that makes Security Easy for Everyone - it doesn't have to be hard anymore.
14
 
345
 
346
  == Changelog ==
347
 
 
 
348
  Shield Pro brings exclusive features to the serious webmaster to maximise site security.
349
  You'll also have access to our email technical support team.
350
 
352
 
353
  [Go Pro for just $1/month](https://icwp.io/aa).
354
 
355
+ = 7.0.0 - Current Release =
356
+ *Released: 28th January, 2018* - [Release Notes](https://icwp.io/ef)
357
+
358
+ = 7.0 - Series =
359
+ *Released: 28th January, 2018* - [Release Notes](https://icwp.io/ef)
360
+
361
+ * **(v.0)** NEW: New primary UI for Shield site security management. Easy access to scans, audit trail, user sessions etc.
362
+ * **(v.0)** NEW: Supports only PHP 5.4 or higher
363
+ * **(v.0)** NEW: Rebuilt scans architecture and UI
364
+ * **(v.0)** NEW: A huge amount of code cleaning and refactoring
365
+ * **(v.0)** CHANGED: Too many changes and bug fixes to list -best to just take a look! :)
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
366
 
367
  #### [Full Changelog](https://ps.w.org/wp-simple-firewall/trunk/changelog.html)
resources/css/bootstrap4.css CHANGED
@@ -1,5 +1,5 @@
1
  /*!
2
- * Bootstrap v4.1.3 (https://getbootstrap.com/)
3
  * Copyright 2011-2018 The Bootstrap Authors
4
  * Copyright 2011-2018 Twitter, Inc.
5
  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
@@ -31,7 +31,7 @@
31
  --breakpoint-md: 768px;
32
  --breakpoint-lg: 992px;
33
  --breakpoint-xl: 1200px;
34
- --font-family-sans-serif: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
35
  --font-family-monospace: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
36
  }
37
 
@@ -45,22 +45,16 @@ html {
45
  font-family: sans-serif;
46
  line-height: 1.15;
47
  -webkit-text-size-adjust: 100%;
48
- -ms-text-size-adjust: 100%;
49
- -ms-overflow-style: scrollbar;
50
  -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
51
  }
52
 
53
- @-ms-viewport {
54
- width: device-width;
55
- }
56
-
57
  article, aside, figcaption, figure, footer, header, hgroup, main, nav, section {
58
  display: block;
59
  }
60
 
61
  body {
62
  margin: 0;
63
- font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
64
  font-size: 1rem;
65
  font-weight: 400;
66
  line-height: 1.5;
@@ -96,6 +90,7 @@ abbr[data-original-title] {
96
  text-decoration: underline dotted;
97
  cursor: help;
98
  border-bottom: 0;
 
99
  }
100
 
101
  address {
@@ -131,10 +126,6 @@ blockquote {
131
  margin: 0 0 1rem;
132
  }
133
 
134
- dfn {
135
- font-style: italic;
136
- }
137
-
138
  b,
139
  strong {
140
  font-weight: bolder;
@@ -164,7 +155,6 @@ a {
164
  color: #007bff;
165
  text-decoration: none;
166
  background-color: transparent;
167
- -webkit-text-decoration-skip: objects;
168
  }
169
 
170
  a:hover {
@@ -198,7 +188,6 @@ pre {
198
  margin-top: 0;
199
  margin-bottom: 1rem;
200
  overflow: auto;
201
- -ms-overflow-style: scrollbar;
202
  }
203
 
204
  figure {
@@ -267,7 +256,7 @@ select {
267
  }
268
 
269
  button,
270
- html [type="button"],
271
  [type="reset"],
272
  [type="submit"] {
273
  -webkit-appearance: button;
@@ -332,7 +321,6 @@ progress {
332
  -webkit-appearance: none;
333
  }
334
 
335
- [type="search"]::-webkit-search-cancel-button,
336
  [type="search"]::-webkit-search-decoration {
337
  -webkit-appearance: none;
338
  }
@@ -475,7 +463,7 @@ mark,
475
  }
476
 
477
  .blockquote-footer::before {
478
- content: "\2014 \00A0";
479
  }
480
 
481
  .img-fluid {
@@ -615,7 +603,6 @@ pre code {
615
  .col-xl-auto {
616
  position: relative;
617
  width: 100%;
618
- min-height: 1px;
619
  padding-right: 15px;
620
  padding-left: 15px;
621
  }
@@ -632,7 +619,7 @@ pre code {
632
  -ms-flex: 0 0 auto;
633
  flex: 0 0 auto;
634
  width: auto;
635
- max-width: none;
636
  }
637
 
638
  .col-1 {
@@ -838,7 +825,7 @@ pre code {
838
  -ms-flex: 0 0 auto;
839
  flex: 0 0 auto;
840
  width: auto;
841
- max-width: none;
842
  }
843
  .col-sm-1 {
844
  -ms-flex: 0 0 8.333333%;
@@ -1010,7 +997,7 @@ pre code {
1010
  -ms-flex: 0 0 auto;
1011
  flex: 0 0 auto;
1012
  width: auto;
1013
- max-width: none;
1014
  }
1015
  .col-md-1 {
1016
  -ms-flex: 0 0 8.333333%;
@@ -1182,7 +1169,7 @@ pre code {
1182
  -ms-flex: 0 0 auto;
1183
  flex: 0 0 auto;
1184
  width: auto;
1185
- max-width: none;
1186
  }
1187
  .col-lg-1 {
1188
  -ms-flex: 0 0 8.333333%;
@@ -1354,7 +1341,7 @@ pre code {
1354
  -ms-flex: 0 0 auto;
1355
  flex: 0 0 auto;
1356
  width: auto;
1357
- max-width: none;
1358
  }
1359
  .col-xl-1 {
1360
  -ms-flex: 0 0 8.333333%;
@@ -1580,6 +1567,13 @@ pre code {
1580
  background-color: #b8daff;
1581
  }
1582
 
 
 
 
 
 
 
 
1583
  .table-hover .table-primary:hover {
1584
  background-color: #9fcdff;
1585
  }
@@ -1595,6 +1589,13 @@ pre code {
1595
  background-color: #d6d8db;
1596
  }
1597
 
 
 
 
 
 
 
 
1598
  .table-hover .table-secondary:hover {
1599
  background-color: #c8cbcf;
1600
  }
@@ -1610,6 +1611,13 @@ pre code {
1610
  background-color: #c3e6cb;
1611
  }
1612
 
 
 
 
 
 
 
 
1613
  .table-hover .table-success:hover {
1614
  background-color: #b1dfbb;
1615
  }
@@ -1625,6 +1633,13 @@ pre code {
1625
  background-color: #bee5eb;
1626
  }
1627
 
 
 
 
 
 
 
 
1628
  .table-hover .table-info:hover {
1629
  background-color: #abdde5;
1630
  }
@@ -1640,6 +1655,13 @@ pre code {
1640
  background-color: #ffeeba;
1641
  }
1642
 
 
 
 
 
 
 
 
1643
  .table-hover .table-warning:hover {
1644
  background-color: #ffe8a1;
1645
  }
@@ -1655,6 +1677,13 @@ pre code {
1655
  background-color: #f5c6cb;
1656
  }
1657
 
 
 
 
 
 
 
 
1658
  .table-hover .table-danger:hover {
1659
  background-color: #f1b0b7;
1660
  }
@@ -1670,6 +1699,13 @@ pre code {
1670
  background-color: #fdfdfe;
1671
  }
1672
 
 
 
 
 
 
 
 
1673
  .table-hover .table-light:hover {
1674
  background-color: #ececf6;
1675
  }
@@ -1685,6 +1721,13 @@ pre code {
1685
  background-color: #c6c8ca;
1686
  }
1687
 
 
 
 
 
 
 
 
1688
  .table-hover .table-dark:hover {
1689
  background-color: #b9bbbe;
1690
  }
@@ -1814,6 +1857,7 @@ pre code {
1814
  height: calc(2.25rem + 2px);
1815
  padding: 0.375rem 0.75rem;
1816
  font-size: 1rem;
 
1817
  line-height: 1.5;
1818
  color: #495057;
1819
  background-color: #fff;
@@ -2030,26 +2074,44 @@ textarea.form-control {
2030
  border-radius: 0.25rem;
2031
  }
2032
 
2033
- .was-validated .form-control:valid, .form-control.is-valid, .was-validated
2034
- .custom-select:valid,
2035
- .custom-select.is-valid {
2036
  border-color: #28a745;
 
 
 
 
 
2037
  }
2038
 
2039
- .was-validated .form-control:valid:focus, .form-control.is-valid:focus, .was-validated
2040
- .custom-select:valid:focus,
2041
- .custom-select.is-valid:focus {
2042
  border-color: #28a745;
2043
  box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.25);
2044
  }
2045
 
2046
  .was-validated .form-control:valid ~ .valid-feedback,
2047
  .was-validated .form-control:valid ~ .valid-tooltip, .form-control.is-valid ~ .valid-feedback,
2048
- .form-control.is-valid ~ .valid-tooltip, .was-validated
2049
- .custom-select:valid ~ .valid-feedback,
2050
- .was-validated
2051
- .custom-select:valid ~ .valid-tooltip,
2052
- .custom-select.is-valid ~ .valid-feedback,
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2053
  .custom-select.is-valid ~ .valid-tooltip {
2054
  display: block;
2055
  }
@@ -2075,7 +2137,7 @@ textarea.form-control {
2075
  }
2076
 
2077
  .was-validated .custom-control-input:valid ~ .custom-control-label::before, .custom-control-input.is-valid ~ .custom-control-label::before {
2078
- background-color: #71dd8a;
2079
  }
2080
 
2081
  .was-validated .custom-control-input:valid ~ .valid-feedback,
@@ -2085,19 +2147,20 @@ textarea.form-control {
2085
  }
2086
 
2087
  .was-validated .custom-control-input:valid:checked ~ .custom-control-label::before, .custom-control-input.is-valid:checked ~ .custom-control-label::before {
 
2088
  background-color: #34ce57;
2089
  }
2090
 
2091
  .was-validated .custom-control-input:valid:focus ~ .custom-control-label::before, .custom-control-input.is-valid:focus ~ .custom-control-label::before {
2092
- box-shadow: 0 0 0 1px #fff, 0 0 0 0.2rem rgba(40, 167, 69, 0.25);
2093
  }
2094
 
2095
- .was-validated .custom-file-input:valid ~ .custom-file-label, .custom-file-input.is-valid ~ .custom-file-label {
2096
  border-color: #28a745;
2097
  }
2098
 
2099
- .was-validated .custom-file-input:valid ~ .custom-file-label::after, .custom-file-input.is-valid ~ .custom-file-label::after {
2100
- border-color: inherit;
2101
  }
2102
 
2103
  .was-validated .custom-file-input:valid ~ .valid-feedback,
@@ -2107,6 +2170,7 @@ textarea.form-control {
2107
  }
2108
 
2109
  .was-validated .custom-file-input:valid:focus ~ .custom-file-label, .custom-file-input.is-valid:focus ~ .custom-file-label {
 
2110
  box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.25);
2111
  }
2112
 
@@ -2133,26 +2197,44 @@ textarea.form-control {
2133
  border-radius: 0.25rem;
2134
  }
2135
 
2136
- .was-validated .form-control:invalid, .form-control.is-invalid, .was-validated
2137
- .custom-select:invalid,
2138
- .custom-select.is-invalid {
2139
  border-color: #dc3545;
 
 
 
 
 
2140
  }
2141
 
2142
- .was-validated .form-control:invalid:focus, .form-control.is-invalid:focus, .was-validated
2143
- .custom-select:invalid:focus,
2144
- .custom-select.is-invalid:focus {
2145
  border-color: #dc3545;
2146
  box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.25);
2147
  }
2148
 
2149
  .was-validated .form-control:invalid ~ .invalid-feedback,
2150
  .was-validated .form-control:invalid ~ .invalid-tooltip, .form-control.is-invalid ~ .invalid-feedback,
2151
- .form-control.is-invalid ~ .invalid-tooltip, .was-validated
2152
- .custom-select:invalid ~ .invalid-feedback,
2153
- .was-validated
2154
- .custom-select:invalid ~ .invalid-tooltip,
2155
- .custom-select.is-invalid ~ .invalid-feedback,
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2156
  .custom-select.is-invalid ~ .invalid-tooltip {
2157
  display: block;
2158
  }
@@ -2178,7 +2260,7 @@ textarea.form-control {
2178
  }
2179
 
2180
  .was-validated .custom-control-input:invalid ~ .custom-control-label::before, .custom-control-input.is-invalid ~ .custom-control-label::before {
2181
- background-color: #efa2a9;
2182
  }
2183
 
2184
  .was-validated .custom-control-input:invalid ~ .invalid-feedback,
@@ -2188,19 +2270,20 @@ textarea.form-control {
2188
  }
2189
 
2190
  .was-validated .custom-control-input:invalid:checked ~ .custom-control-label::before, .custom-control-input.is-invalid:checked ~ .custom-control-label::before {
 
2191
  background-color: #e4606d;
2192
  }
2193
 
2194
  .was-validated .custom-control-input:invalid:focus ~ .custom-control-label::before, .custom-control-input.is-invalid:focus ~ .custom-control-label::before {
2195
- box-shadow: 0 0 0 1px #fff, 0 0 0 0.2rem rgba(220, 53, 69, 0.25);
2196
  }
2197
 
2198
- .was-validated .custom-file-input:invalid ~ .custom-file-label, .custom-file-input.is-invalid ~ .custom-file-label {
2199
  border-color: #dc3545;
2200
  }
2201
 
2202
- .was-validated .custom-file-input:invalid ~ .custom-file-label::after, .custom-file-input.is-invalid ~ .custom-file-label::after {
2203
- border-color: inherit;
2204
  }
2205
 
2206
  .was-validated .custom-file-input:invalid ~ .invalid-feedback,
@@ -2210,6 +2293,7 @@ textarea.form-control {
2210
  }
2211
 
2212
  .was-validated .custom-file-input:invalid:focus ~ .custom-file-label, .custom-file-input.is-invalid:focus ~ .custom-file-label {
 
2213
  box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.25);
2214
  }
2215
 
@@ -2289,13 +2373,14 @@ textarea.form-control {
2289
  .btn {
2290
  display: inline-block;
2291
  font-weight: 400;
 
2292
  text-align: center;
2293
- white-space: nowrap;
2294
  vertical-align: middle;
2295
  -webkit-user-select: none;
2296
  -moz-user-select: none;
2297
  -ms-user-select: none;
2298
  user-select: none;
 
2299
  border: 1px solid transparent;
2300
  padding: 0.375rem 0.75rem;
2301
  font-size: 1rem;
@@ -2310,7 +2395,8 @@ textarea.form-control {
2310
  }
2311
  }
2312
 
2313
- .btn:hover, .btn:focus {
 
2314
  text-decoration: none;
2315
  }
2316
 
@@ -2345,7 +2431,7 @@ fieldset:disabled a.btn {
2345
  }
2346
 
2347
  .btn-primary:focus, .btn-primary.focus {
2348
- box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.5);
2349
  }
2350
 
2351
  .btn-primary.disabled, .btn-primary:disabled {
@@ -2363,7 +2449,7 @@ fieldset:disabled a.btn {
2363
 
2364
  .btn-primary:not(:disabled):not(.disabled):active:focus, .btn-primary:not(:disabled):not(.disabled).active:focus,
2365
  .show > .btn-primary.dropdown-toggle:focus {
2366
- box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.5);
2367
  }
2368
 
2369
  .btn-secondary {
@@ -2379,7 +2465,7 @@ fieldset:disabled a.btn {
2379
  }
2380
 
2381
  .btn-secondary:focus, .btn-secondary.focus {
2382
- box-shadow: 0 0 0 0.2rem rgba(108, 117, 125, 0.5);
2383
  }
2384
 
2385
  .btn-secondary.disabled, .btn-secondary:disabled {
@@ -2397,7 +2483,7 @@ fieldset:disabled a.btn {
2397
 
2398
  .btn-secondary:not(:disabled):not(.disabled):active:focus, .btn-secondary:not(:disabled):not(.disabled).active:focus,
2399
  .show > .btn-secondary.dropdown-toggle:focus {
2400
- box-shadow: 0 0 0 0.2rem rgba(108, 117, 125, 0.5);
2401
  }
2402
 
2403
  .btn-success {
@@ -2413,7 +2499,7 @@ fieldset:disabled a.btn {
2413
  }
2414
 
2415
  .btn-success:focus, .btn-success.focus {
2416
- box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.5);
2417
  }
2418
 
2419
  .btn-success.disabled, .btn-success:disabled {
@@ -2431,7 +2517,7 @@ fieldset:disabled a.btn {
2431
 
2432
  .btn-success:not(:disabled):not(.disabled):active:focus, .btn-success:not(:disabled):not(.disabled).active:focus,
2433
  .show > .btn-success.dropdown-toggle:focus {
2434
- box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.5);
2435
  }
2436
 
2437
  .btn-info {
@@ -2447,7 +2533,7 @@ fieldset:disabled a.btn {
2447
  }
2448
 
2449
  .btn-info:focus, .btn-info.focus {
2450
- box-shadow: 0 0 0 0.2rem rgba(23, 162, 184, 0.5);
2451
  }
2452
 
2453
  .btn-info.disabled, .btn-info:disabled {
@@ -2465,7 +2551,7 @@ fieldset:disabled a.btn {
2465
 
2466
  .btn-info:not(:disabled):not(.disabled):active:focus, .btn-info:not(:disabled):not(.disabled).active:focus,
2467
  .show > .btn-info.dropdown-toggle:focus {
2468
- box-shadow: 0 0 0 0.2rem rgba(23, 162, 184, 0.5);
2469
  }
2470
 
2471
  .btn-warning {
@@ -2481,7 +2567,7 @@ fieldset:disabled a.btn {
2481
  }
2482
 
2483
  .btn-warning:focus, .btn-warning.focus {
2484
- box-shadow: 0 0 0 0.2rem rgba(255, 193, 7, 0.5);
2485
  }
2486
 
2487
  .btn-warning.disabled, .btn-warning:disabled {
@@ -2499,7 +2585,7 @@ fieldset:disabled a.btn {
2499
 
2500
  .btn-warning:not(:disabled):not(.disabled):active:focus, .btn-warning:not(:disabled):not(.disabled).active:focus,
2501
  .show > .btn-warning.dropdown-toggle:focus {
2502
- box-shadow: 0 0 0 0.2rem rgba(255, 193, 7, 0.5);
2503
  }
2504
 
2505
  .btn-danger {
@@ -2515,7 +2601,7 @@ fieldset:disabled a.btn {
2515
  }
2516
 
2517
  .btn-danger:focus, .btn-danger.focus {
2518
- box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.5);
2519
  }
2520
 
2521
  .btn-danger.disabled, .btn-danger:disabled {
@@ -2533,7 +2619,7 @@ fieldset:disabled a.btn {
2533
 
2534
  .btn-danger:not(:disabled):not(.disabled):active:focus, .btn-danger:not(:disabled):not(.disabled).active:focus,
2535
  .show > .btn-danger.dropdown-toggle:focus {
2536
- box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.5);
2537
  }
2538
 
2539
  .btn-light {
@@ -2549,7 +2635,7 @@ fieldset:disabled a.btn {
2549
  }
2550
 
2551
  .btn-light:focus, .btn-light.focus {
2552
- box-shadow: 0 0 0 0.2rem rgba(248, 249, 250, 0.5);
2553
  }
2554
 
2555
  .btn-light.disabled, .btn-light:disabled {
@@ -2567,7 +2653,7 @@ fieldset:disabled a.btn {
2567
 
2568
  .btn-light:not(:disabled):not(.disabled):active:focus, .btn-light:not(:disabled):not(.disabled).active:focus,
2569
  .show > .btn-light.dropdown-toggle:focus {
2570
- box-shadow: 0 0 0 0.2rem rgba(248, 249, 250, 0.5);
2571
  }
2572
 
2573
  .btn-dark {
@@ -2583,7 +2669,7 @@ fieldset:disabled a.btn {
2583
  }
2584
 
2585
  .btn-dark:focus, .btn-dark.focus {
2586
- box-shadow: 0 0 0 0.2rem rgba(52, 58, 64, 0.5);
2587
  }
2588
 
2589
  .btn-dark.disabled, .btn-dark:disabled {
@@ -2601,13 +2687,11 @@ fieldset:disabled a.btn {
2601
 
2602
  .btn-dark:not(:disabled):not(.disabled):active:focus, .btn-dark:not(:disabled):not(.disabled).active:focus,
2603
  .show > .btn-dark.dropdown-toggle:focus {
2604
- box-shadow: 0 0 0 0.2rem rgba(52, 58, 64, 0.5);
2605
  }
2606
 
2607
  .btn-outline-primary {
2608
  color: #007bff;
2609
- background-color: transparent;
2610
- background-image: none;
2611
  border-color: #007bff;
2612
  }
2613
 
@@ -2640,8 +2724,6 @@ fieldset:disabled a.btn {
2640
 
2641
  .btn-outline-secondary {
2642
  color: #6c757d;
2643
- background-color: transparent;
2644
- background-image: none;
2645
  border-color: #6c757d;
2646
  }
2647
 
@@ -2674,8 +2756,6 @@ fieldset:disabled a.btn {
2674
 
2675
  .btn-outline-success {
2676
  color: #28a745;
2677
- background-color: transparent;
2678
- background-image: none;
2679
  border-color: #28a745;
2680
  }
2681
 
@@ -2708,8 +2788,6 @@ fieldset:disabled a.btn {
2708
 
2709
  .btn-outline-info {
2710
  color: #17a2b8;
2711
- background-color: transparent;
2712
- background-image: none;
2713
  border-color: #17a2b8;
2714
  }
2715
 
@@ -2742,8 +2820,6 @@ fieldset:disabled a.btn {
2742
 
2743
  .btn-outline-warning {
2744
  color: #ffc107;
2745
- background-color: transparent;
2746
- background-image: none;
2747
  border-color: #ffc107;
2748
  }
2749
 
@@ -2776,8 +2852,6 @@ fieldset:disabled a.btn {
2776
 
2777
  .btn-outline-danger {
2778
  color: #dc3545;
2779
- background-color: transparent;
2780
- background-image: none;
2781
  border-color: #dc3545;
2782
  }
2783
 
@@ -2810,8 +2884,6 @@ fieldset:disabled a.btn {
2810
 
2811
  .btn-outline-light {
2812
  color: #f8f9fa;
2813
- background-color: transparent;
2814
- background-image: none;
2815
  border-color: #f8f9fa;
2816
  }
2817
 
@@ -2844,8 +2916,6 @@ fieldset:disabled a.btn {
2844
 
2845
  .btn-outline-dark {
2846
  color: #343a40;
2847
- background-color: transparent;
2848
- background-image: none;
2849
  border-color: #343a40;
2850
  }
2851
 
@@ -2879,19 +2949,15 @@ fieldset:disabled a.btn {
2879
  .btn-link {
2880
  font-weight: 400;
2881
  color: #007bff;
2882
- background-color: transparent;
2883
  }
2884
 
2885
  .btn-link:hover {
2886
  color: #0056b3;
2887
  text-decoration: underline;
2888
- background-color: transparent;
2889
- border-color: transparent;
2890
  }
2891
 
2892
  .btn-link:focus, .btn-link.focus {
2893
  text-decoration: underline;
2894
- border-color: transparent;
2895
  box-shadow: none;
2896
  }
2897
 
@@ -2969,8 +3035,6 @@ input[type="button"].btn-block {
2969
 
2970
  .dropdown-toggle::after {
2971
  display: inline-block;
2972
- width: 0;
2973
- height: 0;
2974
  margin-left: 0.255em;
2975
  vertical-align: 0.255em;
2976
  content: "";
@@ -3009,6 +3073,67 @@ input[type="button"].btn-block {
3009
  left: auto;
3010
  }
3011
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
3012
  .dropup .dropdown-menu {
3013
  top: auto;
3014
  bottom: 100%;
@@ -3018,8 +3143,6 @@ input[type="button"].btn-block {
3018
 
3019
  .dropup .dropdown-toggle::after {
3020
  display: inline-block;
3021
- width: 0;
3022
- height: 0;
3023
  margin-left: 0.255em;
3024
  vertical-align: 0.255em;
3025
  content: "";
@@ -3043,8 +3166,6 @@ input[type="button"].btn-block {
3043
 
3044
  .dropright .dropdown-toggle::after {
3045
  display: inline-block;
3046
- width: 0;
3047
- height: 0;
3048
  margin-left: 0.255em;
3049
  vertical-align: 0.255em;
3050
  content: "";
@@ -3072,8 +3193,6 @@ input[type="button"].btn-block {
3072
 
3073
  .dropleft .dropdown-toggle::after {
3074
  display: inline-block;
3075
- width: 0;
3076
- height: 0;
3077
  margin-left: 0.255em;
3078
  vertical-align: 0.255em;
3079
  content: "";
@@ -3085,8 +3204,6 @@ input[type="button"].btn-block {
3085
 
3086
  .dropleft .dropdown-toggle::before {
3087
  display: inline-block;
3088
- width: 0;
3089
- height: 0;
3090
  margin-right: 0.255em;
3091
  vertical-align: 0.255em;
3092
  content: "";
@@ -3128,6 +3245,16 @@ input[type="button"].btn-block {
3128
  border: 0;
3129
  }
3130
 
 
 
 
 
 
 
 
 
 
 
3131
  .dropdown-item:hover, .dropdown-item:focus {
3132
  color: #16181b;
3133
  text-decoration: none;
@@ -3142,6 +3269,7 @@ input[type="button"].btn-block {
3142
 
3143
  .dropdown-item.disabled, .dropdown-item:disabled {
3144
  color: #6c757d;
 
3145
  background-color: transparent;
3146
  }
3147
 
@@ -3175,8 +3303,8 @@ input[type="button"].btn-block {
3175
  .btn-group > .btn,
3176
  .btn-group-vertical > .btn {
3177
  position: relative;
3178
- -ms-flex: 0 1 auto;
3179
- flex: 0 1 auto;
3180
  }
3181
 
3182
  .btn-group > .btn:hover,
@@ -3191,17 +3319,6 @@ input[type="button"].btn-block {
3191
  z-index: 1;
3192
  }
3193
 
3194
- .btn-group .btn + .btn,
3195
- .btn-group .btn + .btn-group,
3196
- .btn-group .btn-group + .btn,
3197
- .btn-group .btn-group + .btn-group,
3198
- .btn-group-vertical .btn + .btn,
3199
- .btn-group-vertical .btn + .btn-group,
3200
- .btn-group-vertical .btn-group + .btn,
3201
- .btn-group-vertical .btn-group + .btn-group {
3202
- margin-left: -1px;
3203
- }
3204
-
3205
  .btn-toolbar {
3206
  display: -ms-flexbox;
3207
  display: flex;
@@ -3215,8 +3332,9 @@ input[type="button"].btn-block {
3215
  width: auto;
3216
  }
3217
 
3218
- .btn-group > .btn:first-child {
3219
- margin-left: 0;
 
3220
  }
3221
 
3222
  .btn-group > .btn:not(:last-child):not(.dropdown-toggle),
@@ -3265,17 +3383,14 @@ input[type="button"].btn-block {
3265
  justify-content: center;
3266
  }
3267
 
3268
- .btn-group-vertical .btn,
3269
- .btn-group-vertical .btn-group {
3270
  width: 100%;
3271
  }
3272
 
3273
- .btn-group-vertical > .btn + .btn,
3274
- .btn-group-vertical > .btn + .btn-group,
3275
- .btn-group-vertical > .btn-group + .btn,
3276
- .btn-group-vertical > .btn-group + .btn-group {
3277
  margin-top: -1px;
3278
- margin-left: 0;
3279
  }
3280
 
3281
  .btn-group-vertical > .btn:not(:last-child):not(.dropdown-toggle),
@@ -3316,6 +3431,7 @@ input[type="button"].btn-block {
3316
  }
3317
 
3318
  .input-group > .form-control,
 
3319
  .input-group > .custom-select,
3320
  .input-group > .custom-file {
3321
  position: relative;
@@ -3328,6 +3444,9 @@ input[type="button"].btn-block {
3328
  .input-group > .form-control + .form-control,
3329
  .input-group > .form-control + .custom-select,
3330
  .input-group > .form-control + .custom-file,
 
 
 
3331
  .input-group > .custom-select + .form-control,
3332
  .input-group > .custom-select + .custom-select,
3333
  .input-group > .custom-select + .custom-file,
@@ -3389,6 +3508,11 @@ input[type="button"].btn-block {
3389
  z-index: 2;
3390
  }
3391
 
 
 
 
 
 
3392
  .input-group-prepend .btn + .btn,
3393
  .input-group-prepend .btn + .input-group-text,
3394
  .input-group-prepend .input-group-text + .input-group-text,
@@ -3431,30 +3555,45 @@ input[type="button"].btn-block {
3431
  margin-top: 0;
3432
  }
3433
 
 
 
 
 
 
3434
  .input-group-lg > .form-control,
 
3435
  .input-group-lg > .input-group-prepend > .input-group-text,
3436
  .input-group-lg > .input-group-append > .input-group-text,
3437
  .input-group-lg > .input-group-prepend > .btn,
3438
  .input-group-lg > .input-group-append > .btn {
3439
- height: calc(2.875rem + 2px);
3440
  padding: 0.5rem 1rem;
3441
  font-size: 1.25rem;
3442
  line-height: 1.5;
3443
  border-radius: 0.3rem;
3444
  }
3445
 
 
 
 
 
 
3446
  .input-group-sm > .form-control,
 
3447
  .input-group-sm > .input-group-prepend > .input-group-text,
3448
  .input-group-sm > .input-group-append > .input-group-text,
3449
  .input-group-sm > .input-group-prepend > .btn,
3450
  .input-group-sm > .input-group-append > .btn {
3451
- height: calc(1.8125rem + 2px);
3452
  padding: 0.25rem 0.5rem;
3453
  font-size: 0.875rem;
3454
  line-height: 1.5;
3455
  border-radius: 0.2rem;
3456
  }
3457
 
 
 
 
 
 
3458
  .input-group > .input-group-prepend > .btn,
3459
  .input-group > .input-group-prepend > .input-group-text,
3460
  .input-group > .input-group-append:not(:last-child) > .btn,
@@ -3496,16 +3635,22 @@ input[type="button"].btn-block {
3496
 
3497
  .custom-control-input:checked ~ .custom-control-label::before {
3498
  color: #fff;
 
3499
  background-color: #007bff;
3500
  }
3501
 
3502
  .custom-control-input:focus ~ .custom-control-label::before {
3503
- box-shadow: 0 0 0 1px #fff, 0 0 0 0.2rem rgba(0, 123, 255, 0.25);
3504
  }
3505
 
3506
- .custom-control-input:active ~ .custom-control-label::before {
 
 
 
 
3507
  color: #fff;
3508
  background-color: #b3d7ff;
 
3509
  }
3510
 
3511
  .custom-control-input:disabled ~ .custom-control-label {
@@ -3519,6 +3664,7 @@ input[type="button"].btn-block {
3519
  .custom-control-label {
3520
  position: relative;
3521
  margin-bottom: 0;
 
3522
  }
3523
 
3524
  .custom-control-label::before {
@@ -3530,11 +3676,8 @@ input[type="button"].btn-block {
3530
  height: 1rem;
3531
  pointer-events: none;
3532
  content: "";
3533
- -webkit-user-select: none;
3534
- -moz-user-select: none;
3535
- -ms-user-select: none;
3536
- user-select: none;
3537
- background-color: #dee2e6;
3538
  }
3539
 
3540
  .custom-control-label::after {
@@ -3554,20 +3697,17 @@ input[type="button"].btn-block {
3554
  border-radius: 0.25rem;
3555
  }
3556
 
3557
- .custom-checkbox .custom-control-input:checked ~ .custom-control-label::before {
3558
- background-color: #007bff;
3559
- }
3560
-
3561
  .custom-checkbox .custom-control-input:checked ~ .custom-control-label::after {
3562
- background-image: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E");
3563
  }
3564
 
3565
  .custom-checkbox .custom-control-input:indeterminate ~ .custom-control-label::before {
 
3566
  background-color: #007bff;
3567
  }
3568
 
3569
  .custom-checkbox .custom-control-input:indeterminate ~ .custom-control-label::after {
3570
- background-image: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 4'%3E%3Cpath stroke='%23fff' d='M0 2h4'/%3E%3C/svg%3E");
3571
  }
3572
 
3573
  .custom-checkbox .custom-control-input:disabled:checked ~ .custom-control-label::before {
@@ -3582,28 +3722,64 @@ input[type="button"].btn-block {
3582
  border-radius: 50%;
3583
  }
3584
 
3585
- .custom-radio .custom-control-input:checked ~ .custom-control-label::before {
3586
- background-color: #007bff;
3587
- }
3588
-
3589
  .custom-radio .custom-control-input:checked ~ .custom-control-label::after {
3590
- background-image: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%23fff'/%3E%3C/svg%3E");
3591
  }
3592
 
3593
  .custom-radio .custom-control-input:disabled:checked ~ .custom-control-label::before {
3594
  background-color: rgba(0, 123, 255, 0.5);
3595
  }
3596
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
3597
  .custom-select {
3598
  display: inline-block;
3599
  width: 100%;
3600
  height: calc(2.25rem + 2px);
3601
  padding: 0.375rem 1.75rem 0.375rem 0.75rem;
 
3602
  line-height: 1.5;
3603
  color: #495057;
3604
  vertical-align: middle;
3605
- background: #fff url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 5'%3E%3Cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3E%3C/svg%3E") no-repeat right 0.75rem center;
3606
- background-size: 8px 10px;
3607
  border: 1px solid #ced4da;
3608
  border-radius: 0.25rem;
3609
  -webkit-appearance: none;
@@ -3639,16 +3815,18 @@ input[type="button"].btn-block {
3639
 
3640
  .custom-select-sm {
3641
  height: calc(1.8125rem + 2px);
3642
- padding-top: 0.375rem;
3643
- padding-bottom: 0.375rem;
3644
- font-size: 75%;
 
3645
  }
3646
 
3647
  .custom-select-lg {
3648
  height: calc(2.875rem + 2px);
3649
- padding-top: 0.375rem;
3650
- padding-bottom: 0.375rem;
3651
- font-size: 125%;
 
3652
  }
3653
 
3654
  .custom-file {
@@ -3673,10 +3851,6 @@ input[type="button"].btn-block {
3673
  box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25);
3674
  }
3675
 
3676
- .custom-file-input:focus ~ .custom-file-label::after {
3677
- border-color: #80bdff;
3678
- }
3679
-
3680
  .custom-file-input:disabled ~ .custom-file-label {
3681
  background-color: #e9ecef;
3682
  }
@@ -3685,6 +3859,10 @@ input[type="button"].btn-block {
3685
  content: "Browse";
3686
  }
3687
 
 
 
 
 
3688
  .custom-file-label {
3689
  position: absolute;
3690
  top: 0;
@@ -3693,6 +3871,7 @@ input[type="button"].btn-block {
3693
  z-index: 1;
3694
  height: calc(2.25rem + 2px);
3695
  padding: 0.375rem 0.75rem;
 
3696
  line-height: 1.5;
3697
  color: #495057;
3698
  background-color: #fff;
@@ -3713,13 +3892,14 @@ input[type="button"].btn-block {
3713
  color: #495057;
3714
  content: "Browse";
3715
  background-color: #e9ecef;
3716
- border-left: 1px solid #ced4da;
3717
  border-radius: 0 0.25rem 0.25rem 0;
3718
  }
3719
 
3720
  .custom-range {
3721
  width: 100%;
3722
- padding-left: 0;
 
3723
  background-color: transparent;
3724
  -webkit-appearance: none;
3725
  -moz-appearance: none;
@@ -3853,6 +4033,26 @@ input[type="button"].btn-block {
3853
  border-radius: 1rem;
3854
  }
3855
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
3856
  .custom-control-label::before,
3857
  .custom-file-label,
3858
  .custom-select {
@@ -3888,6 +4088,8 @@ input[type="button"].btn-block {
3888
 
3889
  .nav-link.disabled {
3890
  color: #6c757d;
 
 
3891
  }
3892
 
3893
  .nav-tabs {
@@ -4305,7 +4507,7 @@ input[type="button"].btn-block {
4305
  }
4306
 
4307
  .navbar-light .navbar-toggler-icon {
4308
- background-image: url("data:image/svg+xml;charset=utf8,%3Csvg viewBox='0 0 30 30' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath stroke='rgba(0, 0, 0, 0.5)' stroke-width='2' stroke-linecap='round' stroke-miterlimit='10' d='M4 7h22M4 15h22M4 23h22'/%3E%3C/svg%3E");
4309
  }
4310
 
4311
  .navbar-light .navbar-text {
@@ -4353,7 +4555,7 @@ input[type="button"].btn-block {
4353
  }
4354
 
4355
  .navbar-dark .navbar-toggler-icon {
4356
- background-image: url("data:image/svg+xml;charset=utf8,%3Csvg viewBox='0 0 30 30' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath stroke='rgba(255, 255, 255, 0.5)' stroke-width='2' stroke-linecap='round' stroke-miterlimit='10' d='M4 7h22M4 15h22M4 23h22'/%3E%3C/svg%3E");
4357
  }
4358
 
4359
  .navbar-dark .navbar-text {
@@ -4427,6 +4629,7 @@ input[type="button"].btn-block {
4427
  .card-header {
4428
  padding: 0.75rem 1.25rem;
4429
  margin-bottom: 0;
 
4430
  background-color: rgba(0, 0, 0, 0.03);
4431
  border-bottom: 1px solid rgba(0, 0, 0, 0.125);
4432
  }
@@ -4612,16 +4815,20 @@ input[type="button"].btn-block {
4612
  }
4613
  }
4614
 
4615
- .accordion .card:not(:first-of-type):not(:last-of-type) {
4616
- border-bottom: 0;
4617
- border-radius: 0;
4618
  }
4619
 
4620
  .accordion .card:not(:first-of-type) .card-header:first-child {
4621
  border-radius: 0;
4622
  }
4623
 
4624
- .accordion .card:first-of-type {
 
 
 
 
 
4625
  border-bottom: 0;
4626
  border-bottom-right-radius: 0;
4627
  border-bottom-left-radius: 0;
@@ -4632,6 +4839,10 @@ input[type="button"].btn-block {
4632
  border-top-right-radius: 0;
4633
  }
4634
 
 
 
 
 
4635
  .breadcrumb {
4636
  display: -ms-flexbox;
4637
  display: flex;
@@ -4774,6 +4985,10 @@ input[type="button"].btn-block {
4774
  border-radius: 0.25rem;
4775
  }
4776
 
 
 
 
 
4777
  .badge:empty {
4778
  display: none;
4779
  }
@@ -4794,9 +5009,8 @@ input[type="button"].btn-block {
4794
  background-color: #007bff;
4795
  }
4796
 
4797
- .badge-primary[href]:hover, .badge-primary[href]:focus {
4798
  color: #fff;
4799
- text-decoration: none;
4800
  background-color: #0062cc;
4801
  }
4802
 
@@ -4805,9 +5019,8 @@ input[type="button"].btn-block {
4805
  background-color: #6c757d;
4806
  }
4807
 
4808
- .badge-secondary[href]:hover, .badge-secondary[href]:focus {
4809
  color: #fff;
4810
- text-decoration: none;
4811
  background-color: #545b62;
4812
  }
4813
 
@@ -4816,9 +5029,8 @@ input[type="button"].btn-block {
4816
  background-color: #28a745;
4817
  }
4818
 
4819
- .badge-success[href]:hover, .badge-success[href]:focus {
4820
  color: #fff;
4821
- text-decoration: none;
4822
  background-color: #1e7e34;
4823
  }
4824
 
@@ -4827,9 +5039,8 @@ input[type="button"].btn-block {
4827
  background-color: #17a2b8;
4828
  }
4829
 
4830
- .badge-info[href]:hover, .badge-info[href]:focus {
4831
  color: #fff;
4832
- text-decoration: none;
4833
  background-color: #117a8b;
4834
  }
4835
 
@@ -4838,9 +5049,8 @@ input[type="button"].btn-block {
4838
  background-color: #ffc107;
4839
  }
4840
 
4841
- .badge-warning[href]:hover, .badge-warning[href]:focus {
4842
  color: #212529;
4843
- text-decoration: none;
4844
  background-color: #d39e00;
4845
  }
4846
 
@@ -4849,9 +5059,8 @@ input[type="button"].btn-block {
4849
  background-color: #dc3545;
4850
  }
4851
 
4852
- .badge-danger[href]:hover, .badge-danger[href]:focus {
4853
  color: #fff;
4854
- text-decoration: none;
4855
  background-color: #bd2130;
4856
  }
4857
 
@@ -4860,9 +5069,8 @@ input[type="button"].btn-block {
4860
  background-color: #f8f9fa;
4861
  }
4862
 
4863
- .badge-light[href]:hover, .badge-light[href]:focus {
4864
  color: #212529;
4865
- text-decoration: none;
4866
  background-color: #dae0e5;
4867
  }
4868
 
@@ -4871,9 +5079,8 @@ input[type="button"].btn-block {
4871
  background-color: #343a40;
4872
  }
4873
 
4874
- .badge-dark[href]:hover, .badge-dark[href]:focus {
4875
  color: #fff;
4876
- text-decoration: none;
4877
  background-color: #1d2124;
4878
  }
4879
 
@@ -5159,6 +5366,7 @@ input[type="button"].btn-block {
5159
 
5160
  .list-group-item.disabled, .list-group-item:disabled {
5161
  color: #6c757d;
 
5162
  background-color: #fff;
5163
  }
5164
 
@@ -5175,11 +5383,16 @@ input[type="button"].btn-block {
5175
  border-radius: 0;
5176
  }
5177
 
 
 
 
 
5178
  .list-group-flush:first-child .list-group-item:first-child {
5179
  border-top: 0;
5180
  }
5181
 
5182
  .list-group-flush:last-child .list-group-item:last-child {
 
5183
  border-bottom: 0;
5184
  }
5185
 
@@ -5321,13 +5534,16 @@ input[type="button"].btn-block {
5321
  opacity: .5;
5322
  }
5323
 
 
 
 
 
 
5324
  .close:not(:disabled):not(.disabled) {
5325
  cursor: pointer;
5326
  }
5327
 
5328
  .close:not(:disabled):not(.disabled):hover, .close:not(:disabled):not(.disabled):focus {
5329
- color: #000;
5330
- text-decoration: none;
5331
  opacity: .75;
5332
  }
5333
 
@@ -5336,6 +5552,59 @@ button.close {
5336
  background-color: transparent;
5337
  border: 0;
5338
  -webkit-appearance: none;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
5339
  }
5340
 
5341
  .modal-open {
@@ -5350,11 +5619,11 @@ button.close {
5350
  .modal {
5351
  position: fixed;
5352
  top: 0;
5353
- right: 0;
5354
- bottom: 0;
5355
  left: 0;
5356
  z-index: 1050;
5357
  display: none;
 
 
5358
  overflow: hidden;
5359
  outline: 0;
5360
  }
@@ -5370,8 +5639,8 @@ button.close {
5370
  transition: -webkit-transform 0.3s ease-out;
5371
  transition: transform 0.3s ease-out;
5372
  transition: transform 0.3s ease-out, -webkit-transform 0.3s ease-out;
5373
- -webkit-transform: translate(0, -25%);
5374
- transform: translate(0, -25%);
5375
  }
5376
 
5377
  @media screen and (prefers-reduced-motion: reduce) {
@@ -5381,8 +5650,8 @@ button.close {
5381
  }
5382
 
5383
  .modal.show .modal-dialog {
5384
- -webkit-transform: translate(0, 0);
5385
- transform: translate(0, 0);
5386
  }
5387
 
5388
  .modal-dialog-centered {
@@ -5417,10 +5686,10 @@ button.close {
5417
  .modal-backdrop {
5418
  position: fixed;
5419
  top: 0;
5420
- right: 0;
5421
- bottom: 0;
5422
  left: 0;
5423
  z-index: 1040;
 
 
5424
  background-color: #000;
5425
  }
5426
 
@@ -5439,14 +5708,14 @@ button.close {
5439
  align-items: flex-start;
5440
  -ms-flex-pack: justify;
5441
  justify-content: space-between;
5442
- padding: 1rem;
5443
  border-bottom: 1px solid #e9ecef;
5444
  border-top-left-radius: 0.3rem;
5445
  border-top-right-radius: 0.3rem;
5446
  }
5447
 
5448
  .modal-header .close {
5449
- padding: 1rem;
5450
  margin: -1rem -1rem -1rem auto;
5451
  }
5452
 
@@ -5471,6 +5740,8 @@ button.close {
5471
  justify-content: flex-end;
5472
  padding: 1rem;
5473
  border-top: 1px solid #e9ecef;
 
 
5474
  }
5475
 
5476
  .modal-footer > :not(:first-child) {
@@ -5506,17 +5777,24 @@ button.close {
5506
  }
5507
 
5508
  @media (min-width: 992px) {
5509
- .modal-lg {
 
5510
  max-width: 800px;
5511
  }
5512
  }
5513
 
 
 
 
 
 
 
5514
  .tooltip {
5515
  position: absolute;
5516
  z-index: 1070;
5517
  display: block;
5518
  margin: 0;
5519
- font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
5520
  font-style: normal;
5521
  font-weight: 400;
5522
  line-height: 1.5;
@@ -5629,7 +5907,7 @@ button.close {
5629
  z-index: 1060;
5630
  display: block;
5631
  max-width: 276px;
5632
- font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
5633
  font-style: normal;
5634
  font-weight: 400;
5635
  line-height: 1.5;
@@ -5812,123 +6090,85 @@ button.close {
5812
  position: relative;
5813
  }
5814
 
 
 
 
 
 
5815
  .carousel-inner {
5816
  position: relative;
5817
  width: 100%;
5818
  overflow: hidden;
5819
  }
5820
 
 
 
 
 
 
 
5821
  .carousel-item {
5822
  position: relative;
5823
  display: none;
5824
- -ms-flex-align: center;
5825
- align-items: center;
5826
  width: 100%;
 
5827
  -webkit-backface-visibility: hidden;
5828
  backface-visibility: hidden;
5829
- -webkit-perspective: 1000px;
5830
- perspective: 1000px;
5831
- }
5832
-
5833
- .carousel-item.active,
5834
- .carousel-item-next,
5835
- .carousel-item-prev {
5836
- display: block;
5837
- transition: -webkit-transform 0.6s ease;
5838
- transition: transform 0.6s ease;
5839
- transition: transform 0.6s ease, -webkit-transform 0.6s ease;
5840
  }
5841
 
5842
  @media screen and (prefers-reduced-motion: reduce) {
5843
- .carousel-item.active,
5844
- .carousel-item-next,
5845
- .carousel-item-prev {
5846
  transition: none;
5847
  }
5848
  }
5849
 
 
5850
  .carousel-item-next,
5851
  .carousel-item-prev {
5852
- position: absolute;
5853
- top: 0;
5854
- }
5855
-
5856
- .carousel-item-next.carousel-item-left,
5857
- .carousel-item-prev.carousel-item-right {
5858
- -webkit-transform: translateX(0);
5859
- transform: translateX(0);
5860
- }
5861
-
5862
- @supports ((-webkit-transform-style: preserve-3d) or (transform-style: preserve-3d)) {
5863
- .carousel-item-next.carousel-item-left,
5864
- .carousel-item-prev.carousel-item-right {
5865
- -webkit-transform: translate3d(0, 0, 0);
5866
- transform: translate3d(0, 0, 0);
5867
- }
5868
  }
5869
 
5870
- .carousel-item-next,
5871
  .active.carousel-item-right {
5872
  -webkit-transform: translateX(100%);
5873
  transform: translateX(100%);
5874
  }
5875
 
5876
- @supports ((-webkit-transform-style: preserve-3d) or (transform-style: preserve-3d)) {
5877
- .carousel-item-next,
5878
- .active.carousel-item-right {
5879
- -webkit-transform: translate3d(100%, 0, 0);
5880
- transform: translate3d(100%, 0, 0);
5881
- }
5882
- }
5883
-
5884
- .carousel-item-prev,
5885
  .active.carousel-item-left {
5886
  -webkit-transform: translateX(-100%);
5887
  transform: translateX(-100%);
5888
  }
5889
 
5890
- @supports ((-webkit-transform-style: preserve-3d) or (transform-style: preserve-3d)) {
5891
- .carousel-item-prev,
5892
- .active.carousel-item-left {
5893
- -webkit-transform: translate3d(-100%, 0, 0);
5894
- transform: translate3d(-100%, 0, 0);
5895
- }
5896
- }
5897
-
5898
  .carousel-fade .carousel-item {
5899
  opacity: 0;
5900
- transition-duration: .6s;
5901
  transition-property: opacity;
 
 
5902
  }
5903
 
5904
  .carousel-fade .carousel-item.active,
5905
  .carousel-fade .carousel-item-next.carousel-item-left,
5906
  .carousel-fade .carousel-item-prev.carousel-item-right {
 
5907
  opacity: 1;
5908
  }
5909
 
5910
  .carousel-fade .active.carousel-item-left,
5911
  .carousel-fade .active.carousel-item-right {
 
5912
  opacity: 0;
 
5913
  }
5914
 
5915
- .carousel-fade .carousel-item-next,
5916
- .carousel-fade .carousel-item-prev,
5917
- .carousel-fade .carousel-item.active,
5918
- .carousel-fade .active.carousel-item-left,
5919
- .carousel-fade .active.carousel-item-prev {
5920
- -webkit-transform: translateX(0);
5921
- transform: translateX(0);
5922
- }
5923
-
5924
- @supports ((-webkit-transform-style: preserve-3d) or (transform-style: preserve-3d)) {
5925
- .carousel-fade .carousel-item-next,
5926
- .carousel-fade .carousel-item-prev,
5927
- .carousel-fade .carousel-item.active,
5928
  .carousel-fade .active.carousel-item-left,
5929
- .carousel-fade .active.carousel-item-prev {
5930
- -webkit-transform: translate3d(0, 0, 0);
5931
- transform: translate3d(0, 0, 0);
5932
  }
5933
  }
5934
 
@@ -5937,6 +6177,7 @@ button.close {
5937
  position: absolute;
5938
  top: 0;
5939
  bottom: 0;
 
5940
  display: -ms-flexbox;
5941
  display: flex;
5942
  -ms-flex-align: center;
@@ -5947,6 +6188,14 @@ button.close {
5947
  color: #fff;
5948
  text-align: center;
5949
  opacity: 0.5;
 
 
 
 
 
 
 
 
5950
  }
5951
 
5952
  .carousel-control-prev:hover, .carousel-control-prev:focus,
@@ -5955,7 +6204,7 @@ button.close {
5955
  color: #fff;
5956
  text-decoration: none;
5957
  outline: 0;
5958
- opacity: .9;
5959
  }
5960
 
5961
  .carousel-control-prev {
@@ -5976,17 +6225,17 @@ button.close {
5976
  }
5977
 
5978
  .carousel-control-prev-icon {
5979
- background-image: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' viewBox='0 0 8 8'%3E%3Cpath d='M5.25 0l-4 4 4 4 1.5-1.5-2.5-2.5 2.5-2.5-1.5-1.5z'/%3E%3C/svg%3E");
5980
  }
5981
 
5982
  .carousel-control-next-icon {
5983
- background-image: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' viewBox='0 0 8 8'%3E%3Cpath d='M2.75 0l-1.5 1.5 2.5 2.5-2.5 2.5 1.5 1.5 4-4-4-4z'/%3E%3C/svg%3E");
5984
  }
5985
 
5986
  .carousel-indicators {
5987
  position: absolute;
5988
  right: 0;
5989
- bottom: 10px;
5990
  left: 0;
5991
  z-index: 15;
5992
  display: -ms-flexbox;
@@ -6000,7 +6249,7 @@ button.close {
6000
  }
6001
 
6002
  .carousel-indicators li {
6003
- position: relative;
6004
  -ms-flex: 0 1 auto;
6005
  flex: 0 1 auto;
6006
  width: 30px;
@@ -6009,31 +6258,22 @@ button.close {
6009
  margin-left: 3px;
6010
  text-indent: -999px;
6011
  cursor: pointer;
6012
- background-color: rgba(255, 255, 255, 0.5);
6013
- }
6014
-
6015
- .carousel-indicators li::before {
6016
- position: absolute;
6017
- top: -10px;
6018
- left: 0;
6019
- display: inline-block;
6020
- width: 100%;
6021
- height: 10px;
6022
- content: "";
6023
  }
6024
 
6025
- .carousel-indicators li::after {
6026
- position: absolute;
6027
- bottom: -10px;
6028
- left: 0;
6029
- display: inline-block;
6030
- width: 100%;
6031
- height: 10px;
6032
- content: "";
6033
  }
6034
 
6035
  .carousel-indicators .active {
6036
- background-color: #fff;
6037
  }
6038
 
6039
  .carousel-caption {
@@ -6048,6 +6288,75 @@ button.close {
6048
  text-align: center;
6049
  }
6050
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
6051
  .align-baseline {
6052
  vertical-align: baseline !important;
6053
  }
@@ -6264,6 +6573,10 @@ button.bg-dark:focus {
6264
  border-radius: 50% !important;
6265
  }
6266
 
 
 
 
 
6267
  .rounded-0 {
6268
  border-radius: 0 !important;
6269
  }
@@ -6507,8 +6820,8 @@ button.bg-dark:focus {
6507
  padding-top: 56.25%;
6508
  }
6509
 
6510
- .embed-responsive-4by3::before {
6511
- padding-top: 75%;
6512
  }
6513
 
6514
  .embed-responsive-1by1::before {
@@ -7301,6 +7614,14 @@ button.bg-dark:focus {
7301
  }
7302
  }
7303
 
 
 
 
 
 
 
 
 
7304
  .position-static {
7305
  position: static !important;
7306
  }
@@ -7431,6 +7752,22 @@ button.bg-dark:focus {
7431
  max-height: 100% !important;
7432
  }
7433
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
7434
  .m-0 {
7435
  margin: 0 !important;
7436
  }
@@ -7719,6 +8056,126 @@ button.bg-dark:focus {
7719
  padding-left: 3rem !important;
7720
  }
7721
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
7722
  .m-auto {
7723
  margin: auto !important;
7724
  }
@@ -7972,6 +8429,101 @@ button.bg-dark:focus {
7972
  .px-sm-5 {
7973
  padding-left: 3rem !important;
7974
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
7975
  .m-sm-auto {
7976
  margin: auto !important;
7977
  }
@@ -8222,6 +8774,101 @@ button.bg-dark:focus {
8222
  .px-md-5 {
8223
  padding-left: 3rem !important;
8224
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
8225
  .m-md-auto {
8226
  margin: auto !important;
8227
  }
@@ -8472,6 +9119,101 @@ button.bg-dark:focus {
8472
  .px-lg-5 {
8473
  padding-left: 3rem !important;
8474
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
8475
  .m-lg-auto {
8476
  margin: auto !important;
8477
  }
@@ -8722,6 +9464,101 @@ button.bg-dark:focus {
8722
  .px-xl-5 {
8723
  padding-left: 3rem !important;
8724
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
8725
  .m-xl-auto {
8726
  margin: auto !important;
8727
  }
@@ -8751,6 +9588,10 @@ button.bg-dark:focus {
8751
  text-align: justify !important;
8752
  }
8753
 
 
 
 
 
8754
  .text-nowrap {
8755
  white-space: nowrap !important;
8756
  }
@@ -8837,6 +9678,10 @@ button.bg-dark:focus {
8837
  font-weight: 300 !important;
8838
  }
8839
 
 
 
 
 
8840
  .font-weight-normal {
8841
  font-weight: 400 !important;
8842
  }
@@ -8845,6 +9690,10 @@ button.bg-dark:focus {
8845
  font-weight: 700 !important;
8846
  }
8847
 
 
 
 
 
8848
  .font-italic {
8849
  font-style: italic !important;
8850
  }
@@ -8858,7 +9707,7 @@ button.bg-dark:focus {
8858
  }
8859
 
8860
  a.text-primary:hover, a.text-primary:focus {
8861
- color: #0062cc !important;
8862
  }
8863
 
8864
  .text-secondary {
@@ -8866,7 +9715,7 @@ a.text-primary:hover, a.text-primary:focus {
8866
  }
8867
 
8868
  a.text-secondary:hover, a.text-secondary:focus {
8869
- color: #545b62 !important;
8870
  }
8871
 
8872
  .text-success {
@@ -8874,7 +9723,7 @@ a.text-secondary:hover, a.text-secondary:focus {
8874
  }
8875
 
8876
  a.text-success:hover, a.text-success:focus {
8877
- color: #1e7e34 !important;
8878
  }
8879
 
8880
  .text-info {
@@ -8882,7 +9731,7 @@ a.text-success:hover, a.text-success:focus {
8882
  }
8883
 
8884
  a.text-info:hover, a.text-info:focus {
8885
- color: #117a8b !important;
8886
  }
8887
 
8888
  .text-warning {
@@ -8890,7 +9739,7 @@ a.text-info:hover, a.text-info:focus {
8890
  }
8891
 
8892
  a.text-warning:hover, a.text-warning:focus {
8893
- color: #d39e00 !important;
8894
  }
8895
 
8896
  .text-danger {
@@ -8898,7 +9747,7 @@ a.text-warning:hover, a.text-warning:focus {
8898
  }
8899
 
8900
  a.text-danger:hover, a.text-danger:focus {
8901
- color: #bd2130 !important;
8902
  }
8903
 
8904
  .text-light {
@@ -8906,7 +9755,7 @@ a.text-danger:hover, a.text-danger:focus {
8906
  }
8907
 
8908
  a.text-light:hover, a.text-light:focus {
8909
- color: #dae0e5 !important;
8910
  }
8911
 
8912
  .text-dark {
@@ -8914,7 +9763,7 @@ a.text-light:hover, a.text-light:focus {
8914
  }
8915
 
8916
  a.text-dark:hover, a.text-dark:focus {
8917
- color: #1d2124 !important;
8918
  }
8919
 
8920
  .text-body {
@@ -8941,6 +9790,14 @@ a.text-dark:hover, a.text-dark:focus {
8941
  border: 0;
8942
  }
8943
 
 
 
 
 
 
 
 
 
8944
  .visible {
8945
  visibility: visible !important;
8946
  }
@@ -9026,4 +9883,5 @@ a.text-dark:hover, a.text-dark:focus {
9026
  color: inherit;
9027
  border-color: #dee2e6;
9028
  }
9029
- }
 
1
  /*!
2
+ * Bootstrap v4.2.1 (https://getbootstrap.com/)
3
  * Copyright 2011-2018 The Bootstrap Authors
4
  * Copyright 2011-2018 Twitter, Inc.
5
  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
31
  --breakpoint-md: 768px;
32
  --breakpoint-lg: 992px;
33
  --breakpoint-xl: 1200px;
34
+ --font-family-sans-serif: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
35
  --font-family-monospace: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
36
  }
37
 
45
  font-family: sans-serif;
46
  line-height: 1.15;
47
  -webkit-text-size-adjust: 100%;
 
 
48
  -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
49
  }
50
 
 
 
 
 
51
  article, aside, figcaption, figure, footer, header, hgroup, main, nav, section {
52
  display: block;
53
  }
54
 
55
  body {
56
  margin: 0;
57
+ font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
58
  font-size: 1rem;
59
  font-weight: 400;
60
  line-height: 1.5;
90
  text-decoration: underline dotted;
91
  cursor: help;
92
  border-bottom: 0;
93
+ text-decoration-skip-ink: none;
94
  }
95
 
96
  address {
126
  margin: 0 0 1rem;
127
  }
128
 
 
 
 
 
129
  b,
130
  strong {
131
  font-weight: bolder;
155
  color: #007bff;
156
  text-decoration: none;
157
  background-color: transparent;
 
158
  }
159
 
160
  a:hover {
188
  margin-top: 0;
189
  margin-bottom: 1rem;
190
  overflow: auto;
 
191
  }
192
 
193
  figure {
256
  }
257
 
258
  button,
259
+ [type="button"],
260
  [type="reset"],
261
  [type="submit"] {
262
  -webkit-appearance: button;
321
  -webkit-appearance: none;
322
  }
323
 
 
324
  [type="search"]::-webkit-search-decoration {
325
  -webkit-appearance: none;
326
  }
463
  }
464
 
465
  .blockquote-footer::before {
466
+ content: "\2014\00A0";
467
  }
468
 
469
  .img-fluid {
603
  .col-xl-auto {
604
  position: relative;
605
  width: 100%;
 
606
  padding-right: 15px;
607
  padding-left: 15px;
608
  }
619
  -ms-flex: 0 0 auto;
620
  flex: 0 0 auto;
621
  width: auto;
622
+ max-width: 100%;
623
  }
624
 
625
  .col-1 {
825
  -ms-flex: 0 0 auto;
826
  flex: 0 0 auto;
827
  width: auto;
828
+ max-width: 100%;
829
  }
830
  .col-sm-1 {
831
  -ms-flex: 0 0 8.333333%;
997
  -ms-flex: 0 0 auto;
998
  flex: 0 0 auto;
999
  width: auto;
1000
+ max-width: 100%;
1001
  }
1002
  .col-md-1 {
1003
  -ms-flex: 0 0 8.333333%;
1169
  -ms-flex: 0 0 auto;
1170
  flex: 0 0 auto;
1171
  width: auto;
1172
+ max-width: 100%;
1173
  }
1174
  .col-lg-1 {
1175
  -ms-flex: 0 0 8.333333%;
1341
  -ms-flex: 0 0 auto;
1342
  flex: 0 0 auto;
1343
  width: auto;
1344
+ max-width: 100%;
1345
  }
1346
  .col-xl-1 {
1347
  -ms-flex: 0 0 8.333333%;
1567
  background-color: #b8daff;
1568
  }
1569
 
1570
+ .table-primary th,
1571
+ .table-primary td,
1572
+ .table-primary thead th,
1573
+ .table-primary tbody + tbody {
1574
+ border-color: #7abaff;
1575
+ }
1576
+
1577
  .table-hover .table-primary:hover {
1578
  background-color: #9fcdff;
1579
  }
1589
  background-color: #d6d8db;
1590
  }
1591
 
1592
+ .table-secondary th,
1593
+ .table-secondary td,
1594
+ .table-secondary thead th,
1595
+ .table-secondary tbody + tbody {
1596
+ border-color: #b3b7bb;
1597
+ }
1598
+
1599
  .table-hover .table-secondary:hover {
1600
  background-color: #c8cbcf;
1601
  }
1611
  background-color: #c3e6cb;
1612
  }
1613
 
1614
+ .table-success th,
1615
+ .table-success td,
1616
+ .table-success thead th,
1617
+ .table-success tbody + tbody {
1618
+ border-color: #8fd19e;
1619
+ }
1620
+
1621
  .table-hover .table-success:hover {
1622
  background-color: #b1dfbb;
1623
  }
1633
  background-color: #bee5eb;
1634
  }
1635
 
1636
+ .table-info th,
1637
+ .table-info td,
1638
+ .table-info thead th,
1639
+ .table-info tbody + tbody {
1640
+ border-color: #86cfda;
1641
+ }
1642
+
1643
  .table-hover .table-info:hover {
1644
  background-color: #abdde5;
1645
  }
1655
  background-color: #ffeeba;
1656
  }
1657
 
1658
+ .table-warning th,
1659
+ .table-warning td,
1660
+ .table-warning thead th,
1661
+ .table-warning tbody + tbody {
1662
+ border-color: #ffdf7e;
1663
+ }
1664
+
1665
  .table-hover .table-warning:hover {
1666
  background-color: #ffe8a1;
1667
  }
1677
  background-color: #f5c6cb;
1678
  }
1679
 
1680
+ .table-danger th,
1681
+ .table-danger td,
1682
+ .table-danger thead th,
1683
+ .table-danger tbody + tbody {
1684
+ border-color: #ed969e;
1685
+ }
1686
+
1687
  .table-hover .table-danger:hover {
1688
  background-color: #f1b0b7;
1689
  }
1699
  background-color: #fdfdfe;
1700
  }
1701
 
1702
+ .table-light th,
1703
+ .table-light td,
1704
+ .table-light thead th,
1705
+ .table-light tbody + tbody {
1706
+ border-color: #fbfcfc;
1707
+ }
1708
+
1709
  .table-hover .table-light:hover {
1710
  background-color: #ececf6;
1711
  }
1721
  background-color: #c6c8ca;
1722
  }
1723
 
1724
+ .table-dark th,
1725
+ .table-dark td,
1726
+ .table-dark thead th,
1727
+ .table-dark tbody + tbody {
1728
+ border-color: #95999c;
1729
+ }
1730
+
1731
  .table-hover .table-dark:hover {
1732
  background-color: #b9bbbe;
1733
  }
1857
  height: calc(2.25rem + 2px);
1858
  padding: 0.375rem 0.75rem;
1859
  font-size: 1rem;
1860
+ font-weight: 400;
1861
  line-height: 1.5;
1862
  color: #495057;
1863
  background-color: #fff;
2074
  border-radius: 0.25rem;
2075
  }
2076
 
2077
+ .was-validated .form-control:valid, .form-control.is-valid {
 
 
2078
  border-color: #28a745;
2079
+ padding-right: 2.25rem;
2080
+ background-repeat: no-repeat;
2081
+ background-position: center right calc(2.25rem / 4);
2082
+ background-size: calc(2.25rem / 2) calc(2.25rem / 2);
2083
+ background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%2328a745' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e");
2084
  }
2085
 
2086
+ .was-validated .form-control:valid:focus, .form-control.is-valid:focus {
 
 
2087
  border-color: #28a745;
2088
  box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.25);
2089
  }
2090
 
2091
  .was-validated .form-control:valid ~ .valid-feedback,
2092
  .was-validated .form-control:valid ~ .valid-tooltip, .form-control.is-valid ~ .valid-feedback,
2093
+ .form-control.is-valid ~ .valid-tooltip {
2094
+ display: block;
2095
+ }
2096
+
2097
+ .was-validated textarea.form-control:valid, textarea.form-control.is-valid {
2098
+ padding-right: 2.25rem;
2099
+ background-position: top calc(2.25rem / 4) right calc(2.25rem / 4);
2100
+ }
2101
+
2102
+ .was-validated .custom-select:valid, .custom-select.is-valid {
2103
+ border-color: #28a745;
2104
+ padding-right: 3.4375rem;
2105
+ background: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e") no-repeat right 0.75rem center/8px 10px, url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%2328a745' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e") no-repeat center right 1.75rem/1.125rem 1.125rem;
2106
+ }
2107
+
2108
+ .was-validated .custom-select:valid:focus, .custom-select.is-valid:focus {
2109
+ border-color: #28a745;
2110
+ box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.25);
2111
+ }
2112
+
2113
+ .was-validated .custom-select:valid ~ .valid-feedback,
2114
+ .was-validated .custom-select:valid ~ .valid-tooltip, .custom-select.is-valid ~ .valid-feedback,
2115
  .custom-select.is-valid ~ .valid-tooltip {
2116
  display: block;
2117
  }
2137
  }
2138
 
2139
  .was-validated .custom-control-input:valid ~ .custom-control-label::before, .custom-control-input.is-valid ~ .custom-control-label::before {
2140
+ border-color: #28a745;
2141
  }
2142
 
2143
  .was-validated .custom-control-input:valid ~ .valid-feedback,
2147
  }
2148
 
2149
  .was-validated .custom-control-input:valid:checked ~ .custom-control-label::before, .custom-control-input.is-valid:checked ~ .custom-control-label::before {
2150
+ border-color: #34ce57;
2151
  background-color: #34ce57;
2152
  }
2153
 
2154
  .was-validated .custom-control-input:valid:focus ~ .custom-control-label::before, .custom-control-input.is-valid:focus ~ .custom-control-label::before {
2155
+ box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.25);
2156
  }
2157
 
2158
+ .was-validated .custom-control-input:valid:focus:not(:checked) ~ .custom-control-label::before, .custom-control-input.is-valid:focus:not(:checked) ~ .custom-control-label::before {
2159
  border-color: #28a745;
2160
  }
2161
 
2162
+ .was-validated .custom-file-input:valid ~ .custom-file-label, .custom-file-input.is-valid ~ .custom-file-label {
2163
+ border-color: #28a745;
2164
  }
2165
 
2166
  .was-validated .custom-file-input:valid ~ .valid-feedback,
2170
  }
2171
 
2172
  .was-validated .custom-file-input:valid:focus ~ .custom-file-label, .custom-file-input.is-valid:focus ~ .custom-file-label {
2173
+ border-color: #28a745;
2174
  box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.25);
2175
  }
2176
 
2197
  border-radius: 0.25rem;
2198
  }
2199
 
2200
+ .was-validated .form-control:invalid, .form-control.is-invalid {
 
 
2201
  border-color: #dc3545;
2202
+ padding-right: 2.25rem;
2203
+ background-repeat: no-repeat;
2204
+ background-position: center right calc(2.25rem / 4);
2205
+ background-size: calc(2.25rem / 2) calc(2.25rem / 2);
2206
+ background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23dc3545' viewBox='-2 -2 7 7'%3e%3cpath stroke='%23d9534f' d='M0 0l3 3m0-3L0 3'/%3e%3ccircle r='.5'/%3e%3ccircle cx='3' r='.5'/%3e%3ccircle cy='3' r='.5'/%3e%3ccircle cx='3' cy='3' r='.5'/%3e%3c/svg%3E");
2207
  }
2208
 
2209
+ .was-validated .form-control:invalid:focus, .form-control.is-invalid:focus {
 
 
2210
  border-color: #dc3545;
2211
  box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.25);
2212
  }
2213
 
2214
  .was-validated .form-control:invalid ~ .invalid-feedback,
2215
  .was-validated .form-control:invalid ~ .invalid-tooltip, .form-control.is-invalid ~ .invalid-feedback,
2216
+ .form-control.is-invalid ~ .invalid-tooltip {
2217
+ display: block;
2218
+ }
2219
+
2220
+ .was-validated textarea.form-control:invalid, textarea.form-control.is-invalid {
2221
+ padding-right: 2.25rem;
2222
+ background-position: top calc(2.25rem / 4) right calc(2.25rem / 4);
2223
+ }
2224
+
2225
+ .was-validated .custom-select:invalid, .custom-select.is-invalid {
2226
+ border-color: #dc3545;
2227
+ padding-right: 3.4375rem;
2228
+ background: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e") no-repeat right 0.75rem center/8px 10px, url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23dc3545' viewBox='-2 -2 7 7'%3e%3cpath stroke='%23d9534f' d='M0 0l3 3m0-3L0 3'/%3e%3ccircle r='.5'/%3e%3ccircle cx='3' r='.5'/%3e%3ccircle cy='3' r='.5'/%3e%3ccircle cx='3' cy='3' r='.5'/%3e%3c/svg%3E") no-repeat center right 1.75rem/1.125rem 1.125rem;
2229
+ }
2230
+
2231
+ .was-validated .custom-select:invalid:focus, .custom-select.is-invalid:focus {
2232
+ border-color: #dc3545;
2233
+ box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.25);
2234
+ }
2235
+
2236
+ .was-validated .custom-select:invalid ~ .invalid-feedback,
2237
+ .was-validated .custom-select:invalid ~ .invalid-tooltip, .custom-select.is-invalid ~ .invalid-feedback,
2238
  .custom-select.is-invalid ~ .invalid-tooltip {
2239
  display: block;
2240
  }
2260
  }
2261
 
2262
  .was-validated .custom-control-input:invalid ~ .custom-control-label::before, .custom-control-input.is-invalid ~ .custom-control-label::before {
2263
+ border-color: #dc3545;
2264
  }
2265
 
2266
  .was-validated .custom-control-input:invalid ~ .invalid-feedback,
2270
  }
2271
 
2272
  .was-validated .custom-control-input:invalid:checked ~ .custom-control-label::before, .custom-control-input.is-invalid:checked ~ .custom-control-label::before {
2273
+ border-color: #e4606d;
2274
  background-color: #e4606d;
2275
  }
2276
 
2277
  .was-validated .custom-control-input:invalid:focus ~ .custom-control-label::before, .custom-control-input.is-invalid:focus ~ .custom-control-label::before {
2278
+ box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.25);
2279
  }
2280
 
2281
+ .was-validated .custom-control-input:invalid:focus:not(:checked) ~ .custom-control-label::before, .custom-control-input.is-invalid:focus:not(:checked) ~ .custom-control-label::before {
2282
  border-color: #dc3545;
2283
  }
2284
 
2285
+ .was-validated .custom-file-input:invalid ~ .custom-file-label, .custom-file-input.is-invalid ~ .custom-file-label {
2286
+ border-color: #dc3545;
2287
  }
2288
 
2289
  .was-validated .custom-file-input:invalid ~ .invalid-feedback,
2293
  }
2294
 
2295
  .was-validated .custom-file-input:invalid:focus ~ .custom-file-label, .custom-file-input.is-invalid:focus ~ .custom-file-label {
2296
+ border-color: #dc3545;
2297
  box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.25);
2298
  }
2299
 
2373
  .btn {
2374
  display: inline-block;
2375
  font-weight: 400;
2376
+ color: #212529;
2377
  text-align: center;
 
2378
  vertical-align: middle;
2379
  -webkit-user-select: none;
2380
  -moz-user-select: none;
2381
  -ms-user-select: none;
2382
  user-select: none;
2383
+ background-color: transparent;
2384
  border: 1px solid transparent;
2385
  padding: 0.375rem 0.75rem;
2386
  font-size: 1rem;
2395
  }
2396
  }
2397
 
2398
+ .btn:hover {
2399
+ color: #212529;
2400
  text-decoration: none;
2401
  }
2402
 
2431
  }
2432
 
2433
  .btn-primary:focus, .btn-primary.focus {
2434
+ box-shadow: 0 0 0 0.2rem rgba(38, 143, 255, 0.5);
2435
  }
2436
 
2437
  .btn-primary.disabled, .btn-primary:disabled {
2449
 
2450
  .btn-primary:not(:disabled):not(.disabled):active:focus, .btn-primary:not(:disabled):not(.disabled).active:focus,
2451
  .show > .btn-primary.dropdown-toggle:focus {
2452
+ box-shadow: 0 0 0 0.2rem rgba(38, 143, 255, 0.5);
2453
  }
2454
 
2455
  .btn-secondary {
2465
  }
2466
 
2467
  .btn-secondary:focus, .btn-secondary.focus {
2468
+ box-shadow: 0 0 0 0.2rem rgba(130, 138, 145, 0.5);
2469
  }
2470
 
2471
  .btn-secondary.disabled, .btn-secondary:disabled {
2483
 
2484
  .btn-secondary:not(:disabled):not(.disabled):active:focus, .btn-secondary:not(:disabled):not(.disabled).active:focus,
2485
  .show > .btn-secondary.dropdown-toggle:focus {
2486
+ box-shadow: 0 0 0 0.2rem rgba(130, 138, 145, 0.5);
2487
  }
2488
 
2489
  .btn-success {
2499
  }
2500
 
2501
  .btn-success:focus, .btn-success.focus {
2502
+ box-shadow: 0 0 0 0.2rem rgba(72, 180, 97, 0.5);
2503
  }
2504
 
2505
  .btn-success.disabled, .btn-success:disabled {
2517
 
2518
  .btn-success:not(:disabled):not(.disabled):active:focus, .btn-success:not(:disabled):not(.disabled).active:focus,
2519
  .show > .btn-success.dropdown-toggle:focus {
2520
+ box-shadow: 0 0 0 0.2rem rgba(72, 180, 97, 0.5);
2521
  }
2522
 
2523
  .btn-info {
2533
  }
2534
 
2535
  .btn-info:focus, .btn-info.focus {
2536
+ box-shadow: 0 0 0 0.2rem rgba(58, 176, 195, 0.5);
2537
  }
2538
 
2539
  .btn-info.disabled, .btn-info:disabled {
2551
 
2552
  .btn-info:not(:disabled):not(.disabled):active:focus, .btn-info:not(:disabled):not(.disabled).active:focus,
2553
  .show > .btn-info.dropdown-toggle:focus {
2554
+ box-shadow: 0 0 0 0.2rem rgba(58, 176, 195, 0.5);
2555
  }
2556
 
2557
  .btn-warning {
2567
  }
2568
 
2569
  .btn-warning:focus, .btn-warning.focus {
2570
+ box-shadow: 0 0 0 0.2rem rgba(222, 170, 12, 0.5);
2571
  }
2572
 
2573
  .btn-warning.disabled, .btn-warning:disabled {
2585
 
2586
  .btn-warning:not(:disabled):not(.disabled):active:focus, .btn-warning:not(:disabled):not(.disabled).active:focus,
2587
  .show > .btn-warning.dropdown-toggle:focus {
2588
+ box-shadow: 0 0 0 0.2rem rgba(222, 170, 12, 0.5);
2589
  }
2590
 
2591
  .btn-danger {
2601
  }
2602
 
2603
  .btn-danger:focus, .btn-danger.focus {
2604
+ box-shadow: 0 0 0 0.2rem rgba(225, 83, 97, 0.5);
2605
  }
2606
 
2607
  .btn-danger.disabled, .btn-danger:disabled {
2619
 
2620
  .btn-danger:not(:disabled):not(.disabled):active:focus, .btn-danger:not(:disabled):not(.disabled).active:focus,
2621
  .show > .btn-danger.dropdown-toggle:focus {
2622
+ box-shadow: 0 0 0 0.2rem rgba(225, 83, 97, 0.5);
2623
  }
2624
 
2625
  .btn-light {
2635
  }
2636
 
2637
  .btn-light:focus, .btn-light.focus {
2638
+ box-shadow: 0 0 0 0.2rem rgba(216, 217, 219, 0.5);
2639
  }
2640
 
2641
  .btn-light.disabled, .btn-light:disabled {
2653
 
2654
  .btn-light:not(:disabled):not(.disabled):active:focus, .btn-light:not(:disabled):not(.disabled).active:focus,
2655
  .show > .btn-light.dropdown-toggle:focus {
2656
+ box-shadow: 0 0 0 0.2rem rgba(216, 217, 219, 0.5);
2657
  }
2658
 
2659
  .btn-dark {
2669
  }
2670
 
2671
  .btn-dark:focus, .btn-dark.focus {
2672
+ box-shadow: 0 0 0 0.2rem rgba(82, 88, 93, 0.5);
2673
  }
2674
 
2675
  .btn-dark.disabled, .btn-dark:disabled {
2687
 
2688
  .btn-dark:not(:disabled):not(.disabled):active:focus, .btn-dark:not(:disabled):not(.disabled).active:focus,
2689
  .show > .btn-dark.dropdown-toggle:focus {
2690
+ box-shadow: 0 0 0 0.2rem rgba(82, 88, 93, 0.5);
2691
  }
2692
 
2693
  .btn-outline-primary {
2694
  color: #007bff;
 
 
2695
  border-color: #007bff;
2696
  }
2697
 
2724
 
2725
  .btn-outline-secondary {
2726
  color: #6c757d;
 
 
2727
  border-color: #6c757d;
2728
  }
2729
 
2756
 
2757
  .btn-outline-success {
2758
  color: #28a745;
 
 
2759
  border-color: #28a745;
2760
  }
2761
 
2788
 
2789
  .btn-outline-info {
2790
  color: #17a2b8;
 
 
2791
  border-color: #17a2b8;
2792
  }
2793
 
2820
 
2821
  .btn-outline-warning {
2822
  color: #ffc107;
 
 
2823
  border-color: #ffc107;
2824
  }
2825
 
2852
 
2853
  .btn-outline-danger {
2854
  color: #dc3545;
 
 
2855
  border-color: #dc3545;
2856
  }
2857
 
2884
 
2885
  .btn-outline-light {
2886
  color: #f8f9fa;
 
 
2887
  border-color: #f8f9fa;
2888
  }
2889
 
2916
 
2917
  .btn-outline-dark {
2918
  color: #343a40;
 
 
2919
  border-color: #343a40;
2920
  }
2921
 
2949
  .btn-link {
2950
  font-weight: 400;
2951
  color: #007bff;
 
2952
  }
2953
 
2954
  .btn-link:hover {
2955
  color: #0056b3;
2956
  text-decoration: underline;
 
 
2957
  }
2958
 
2959
  .btn-link:focus, .btn-link.focus {
2960
  text-decoration: underline;
 
2961
  box-shadow: none;
2962
  }
2963
 
3035
 
3036
  .dropdown-toggle::after {
3037
  display: inline-block;
 
 
3038
  margin-left: 0.255em;
3039
  vertical-align: 0.255em;
3040
  content: "";
3073
  left: auto;
3074
  }
3075
 
3076
+ @media (min-width: 576px) {
3077
+ .dropdown-menu-sm-right {
3078
+ right: 0;
3079
+ left: auto;
3080
+ }
3081
+ }
3082
+
3083
+ @media (min-width: 768px) {
3084
+ .dropdown-menu-md-right {
3085
+ right: 0;
3086
+ left: auto;
3087
+ }
3088
+ }
3089
+
3090
+ @media (min-width: 992px) {
3091
+ .dropdown-menu-lg-right {
3092
+ right: 0;
3093
+ left: auto;
3094
+ }
3095
+ }
3096
+
3097
+ @media (min-width: 1200px) {
3098
+ .dropdown-menu-xl-right {
3099
+ right: 0;
3100
+ left: auto;
3101
+ }
3102
+ }
3103
+
3104
+ .dropdown-menu-left {
3105
+ right: auto;
3106
+ left: 0;
3107
+ }
3108
+
3109
+ @media (min-width: 576px) {
3110
+ .dropdown-menu-sm-left {
3111
+ right: auto;
3112
+ left: 0;
3113
+ }
3114
+ }
3115
+
3116
+ @media (min-width: 768px) {
3117
+ .dropdown-menu-md-left {
3118
+ right: auto;
3119
+ left: 0;
3120
+ }
3121
+ }
3122
+
3123
+ @media (min-width: 992px) {
3124
+ .dropdown-menu-lg-left {
3125
+ right: auto;
3126
+ left: 0;
3127
+ }
3128
+ }
3129
+
3130
+ @media (min-width: 1200px) {
3131
+ .dropdown-menu-xl-left {
3132
+ right: auto;
3133
+ left: 0;
3134
+ }
3135
+ }
3136
+
3137
  .dropup .dropdown-menu {
3138
  top: auto;
3139
  bottom: 100%;
3143
 
3144
  .dropup .dropdown-toggle::after {
3145
  display: inline-block;
 
 
3146
  margin-left: 0.255em;
3147
  vertical-align: 0.255em;
3148
  content: "";
3166
 
3167
  .dropright .dropdown-toggle::after {
3168
  display: inline-block;
 
 
3169
  margin-left: 0.255em;
3170
  vertical-align: 0.255em;
3171
  content: "";
3193
 
3194
  .dropleft .dropdown-toggle::after {
3195
  display: inline-block;
 
 
3196
  margin-left: 0.255em;
3197
  vertical-align: 0.255em;
3198
  content: "";
3204
 
3205
  .dropleft .dropdown-toggle::before {
3206
  display: inline-block;
 
 
3207
  margin-right: 0.255em;
3208
  vertical-align: 0.255em;
3209
  content: "";
3245
  border: 0;
3246
  }
3247
 
3248
+ .dropdown-item:first-child {
3249
+ border-top-left-radius: calc(0.25rem - 1px);
3250
+ border-top-right-radius: calc(0.25rem - 1px);
3251
+ }
3252
+
3253
+ .dropdown-item:last-child {
3254
+ border-bottom-right-radius: calc(0.25rem - 1px);
3255
+ border-bottom-left-radius: calc(0.25rem - 1px);
3256
+ }
3257
+
3258
  .dropdown-item:hover, .dropdown-item:focus {
3259
  color: #16181b;
3260
  text-decoration: none;
3269
 
3270
  .dropdown-item.disabled, .dropdown-item:disabled {
3271
  color: #6c757d;
3272
+ pointer-events: none;
3273
  background-color: transparent;
3274
  }
3275
 
3303
  .btn-group > .btn,
3304
  .btn-group-vertical > .btn {
3305
  position: relative;
3306
+ -ms-flex: 1 1 auto;
3307
+ flex: 1 1 auto;
3308
  }
3309
 
3310
  .btn-group > .btn:hover,
3319
  z-index: 1;
3320
  }
3321
 
 
 
 
 
 
 
 
 
 
 
 
3322
  .btn-toolbar {
3323
  display: -ms-flexbox;
3324
  display: flex;
3332
  width: auto;
3333
  }
3334
 
3335
+ .btn-group > .btn:not(:first-child),
3336
+ .btn-group > .btn-group:not(:first-child) {
3337
+ margin-left: -1px;
3338
  }
3339
 
3340
  .btn-group > .btn:not(:last-child):not(.dropdown-toggle),
3383
  justify-content: center;
3384
  }
3385
 
3386
+ .btn-group-vertical > .btn,
3387
+ .btn-group-vertical > .btn-group {
3388
  width: 100%;
3389
  }
3390
 
3391
+ .btn-group-vertical > .btn:not(:first-child),
3392
+ .btn-group-vertical > .btn-group:not(:first-child) {
 
 
3393
  margin-top: -1px;
 
3394
  }
3395
 
3396
  .btn-group-vertical > .btn:not(:last-child):not(.dropdown-toggle),
3431
  }
3432
 
3433
  .input-group > .form-control,
3434
+ .input-group > .form-control-plaintext,
3435
  .input-group > .custom-select,
3436
  .input-group > .custom-file {
3437
  position: relative;
3444
  .input-group > .form-control + .form-control,
3445
  .input-group > .form-control + .custom-select,
3446
  .input-group > .form-control + .custom-file,
3447
+ .input-group > .form-control-plaintext + .form-control,
3448
+ .input-group > .form-control-plaintext + .custom-select,
3449
+ .input-group > .form-control-plaintext + .custom-file,
3450
  .input-group > .custom-select + .form-control,
3451
  .input-group > .custom-select + .custom-select,
3452
  .input-group > .custom-select + .custom-file,
3508
  z-index: 2;
3509
  }
3510
 
3511
+ .input-group-prepend .btn:focus,
3512
+ .input-group-append .btn:focus {
3513
+ z-index: 3;
3514
+ }
3515
+
3516
  .input-group-prepend .btn + .btn,
3517
  .input-group-prepend .btn + .input-group-text,
3518
  .input-group-prepend .input-group-text + .input-group-text,
3555
  margin-top: 0;
3556
  }
3557
 
3558
+ .input-group-lg > .form-control:not(textarea),
3559
+ .input-group-lg > .custom-select {
3560
+ height: calc(2.875rem + 2px);
3561
+ }
3562
+
3563
  .input-group-lg > .form-control,
3564
+ .input-group-lg > .custom-select,
3565
  .input-group-lg > .input-group-prepend > .input-group-text,
3566
  .input-group-lg > .input-group-append > .input-group-text,
3567
  .input-group-lg > .input-group-prepend > .btn,
3568
  .input-group-lg > .input-group-append > .btn {
 
3569
  padding: 0.5rem 1rem;
3570
  font-size: 1.25rem;
3571
  line-height: 1.5;
3572
  border-radius: 0.3rem;
3573
  }
3574
 
3575
+ .input-group-sm > .form-control:not(textarea),
3576
+ .input-group-sm > .custom-select {
3577
+ height: calc(1.8125rem + 2px);
3578
+ }
3579
+
3580
  .input-group-sm > .form-control,
3581
+ .input-group-sm > .custom-select,
3582
  .input-group-sm > .input-group-prepend > .input-group-text,
3583
  .input-group-sm > .input-group-append > .input-group-text,
3584
  .input-group-sm > .input-group-prepend > .btn,
3585
  .input-group-sm > .input-group-append > .btn {
 
3586
  padding: 0.25rem 0.5rem;
3587
  font-size: 0.875rem;
3588
  line-height: 1.5;
3589
  border-radius: 0.2rem;
3590
  }
3591
 
3592
+ .input-group-lg > .custom-select,
3593
+ .input-group-sm > .custom-select {
3594
+ padding-right: 1.75rem;
3595
+ }
3596
+
3597
  .input-group > .input-group-prepend > .btn,
3598
  .input-group > .input-group-prepend > .input-group-text,
3599
  .input-group > .input-group-append:not(:last-child) > .btn,
3635
 
3636
  .custom-control-input:checked ~ .custom-control-label::before {
3637
  color: #fff;
3638
+ border-color: #007bff;
3639
  background-color: #007bff;
3640
  }
3641
 
3642
  .custom-control-input:focus ~ .custom-control-label::before {
3643
+ box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25);
3644
  }
3645
 
3646
+ .custom-control-input:focus:not(:checked) ~ .custom-control-label::before {
3647
+ border-color: #80bdff;
3648
+ }
3649
+
3650
+ .custom-control-input:not(:disabled):active ~ .custom-control-label::before {
3651
  color: #fff;
3652
  background-color: #b3d7ff;
3653
+ border-color: #b3d7ff;
3654
  }
3655
 
3656
  .custom-control-input:disabled ~ .custom-control-label {
3664
  .custom-control-label {
3665
  position: relative;
3666
  margin-bottom: 0;
3667
+ vertical-align: top;
3668
  }
3669
 
3670
  .custom-control-label::before {
3676
  height: 1rem;
3677
  pointer-events: none;
3678
  content: "";
3679
+ background-color: #fff;
3680
+ border: #adb5bd solid 1px;
 
 
 
3681
  }
3682
 
3683
  .custom-control-label::after {
3697
  border-radius: 0.25rem;
3698
  }
3699
 
 
 
 
 
3700
  .custom-checkbox .custom-control-input:checked ~ .custom-control-label::after {
3701
+ background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3e%3c/svg%3e");
3702
  }
3703
 
3704
  .custom-checkbox .custom-control-input:indeterminate ~ .custom-control-label::before {
3705
+ border-color: #007bff;
3706
  background-color: #007bff;
3707
  }
3708
 
3709
  .custom-checkbox .custom-control-input:indeterminate ~ .custom-control-label::after {
3710
+ background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 4'%3e%3cpath stroke='%23fff' d='M0 2h4'/%3e%3c/svg%3e");
3711
  }
3712
 
3713
  .custom-checkbox .custom-control-input:disabled:checked ~ .custom-control-label::before {
3722
  border-radius: 50%;
3723
  }
3724
 
 
 
 
 
3725
  .custom-radio .custom-control-input:checked ~ .custom-control-label::after {
3726
+ background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%23fff'/%3e%3c/svg%3e");
3727
  }
3728
 
3729
  .custom-radio .custom-control-input:disabled:checked ~ .custom-control-label::before {
3730
  background-color: rgba(0, 123, 255, 0.5);
3731
  }
3732
 
3733
+ .custom-switch {
3734
+ padding-left: 2.25rem;
3735
+ }
3736
+
3737
+ .custom-switch .custom-control-label::before {
3738
+ left: -2.25rem;
3739
+ width: 1.75rem;
3740
+ pointer-events: all;
3741
+ border-radius: 0.5rem;
3742
+ }
3743
+
3744
+ .custom-switch .custom-control-label::after {
3745
+ top: calc(0.25rem + 2px);
3746
+ left: calc(-2.25rem + 2px);
3747
+ width: calc(1rem - 4px);
3748
+ height: calc(1rem - 4px);
3749
+ background-color: #adb5bd;
3750
+ border-radius: 0.5rem;
3751
+ transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out, -webkit-transform 0.15s ease-in-out;
3752
+ transition: transform 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
3753
+ transition: transform 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out, -webkit-transform 0.15s ease-in-out;
3754
+ }
3755
+
3756
+ @media screen and (prefers-reduced-motion: reduce) {
3757
+ .custom-switch .custom-control-label::after {
3758
+ transition: none;
3759
+ }
3760
+ }
3761
+
3762
+ .custom-switch .custom-control-input:checked ~ .custom-control-label::after {
3763
+ background-color: #fff;
3764
+ -webkit-transform: translateX(0.75rem);
3765
+ transform: translateX(0.75rem);
3766
+ }
3767
+
3768
+ .custom-switch .custom-control-input:disabled:checked ~ .custom-control-label::before {
3769
+ background-color: rgba(0, 123, 255, 0.5);
3770
+ }
3771
+
3772
  .custom-select {
3773
  display: inline-block;
3774
  width: 100%;
3775
  height: calc(2.25rem + 2px);
3776
  padding: 0.375rem 1.75rem 0.375rem 0.75rem;
3777
+ font-weight: 400;
3778
  line-height: 1.5;
3779
  color: #495057;
3780
  vertical-align: middle;
3781
+ background: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e") no-repeat right 0.75rem center/8px 10px;
3782
+ background-color: #fff;
3783
  border: 1px solid #ced4da;
3784
  border-radius: 0.25rem;
3785
  -webkit-appearance: none;
3815
 
3816
  .custom-select-sm {
3817
  height: calc(1.8125rem + 2px);
3818
+ padding-top: 0.25rem;
3819
+ padding-bottom: 0.25rem;
3820
+ padding-left: 0.5rem;
3821
+ font-size: 0.875rem;
3822
  }
3823
 
3824
  .custom-select-lg {
3825
  height: calc(2.875rem + 2px);
3826
+ padding-top: 0.5rem;
3827
+ padding-bottom: 0.5rem;
3828
+ padding-left: 1rem;
3829
+ font-size: 1.25rem;
3830
  }
3831
 
3832
  .custom-file {
3851
  box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25);
3852
  }
3853
 
 
 
 
 
3854
  .custom-file-input:disabled ~ .custom-file-label {
3855
  background-color: #e9ecef;
3856
  }
3859
  content: "Browse";
3860
  }
3861
 
3862
+ .custom-file-input ~ .custom-file-label[data-browse]::after {
3863
+ content: attr(data-browse);
3864
+ }
3865
+
3866
  .custom-file-label {
3867
  position: absolute;
3868
  top: 0;
3871
  z-index: 1;
3872
  height: calc(2.25rem + 2px);
3873
  padding: 0.375rem 0.75rem;
3874
+ font-weight: 400;
3875
  line-height: 1.5;
3876
  color: #495057;
3877
  background-color: #fff;
3892
  color: #495057;
3893
  content: "Browse";
3894
  background-color: #e9ecef;
3895
+ border-left: inherit;
3896
  border-radius: 0 0.25rem 0.25rem 0;
3897
  }
3898
 
3899
  .custom-range {
3900
  width: 100%;
3901
+ height: calc(1rem + 0.4rem);
3902
+ padding: 0;
3903
  background-color: transparent;
3904
  -webkit-appearance: none;
3905
  -moz-appearance: none;
4033
  border-radius: 1rem;
4034
  }
4035
 
4036
+ .custom-range:disabled::-webkit-slider-thumb {
4037
+ background-color: #adb5bd;
4038
+ }
4039
+
4040
+ .custom-range:disabled::-webkit-slider-runnable-track {
4041
+ cursor: default;
4042
+ }
4043
+
4044
+ .custom-range:disabled::-moz-range-thumb {
4045
+ background-color: #adb5bd;
4046
+ }
4047
+
4048
+ .custom-range:disabled::-moz-range-track {
4049
+ cursor: default;
4050
+ }
4051
+
4052
+ .custom-range:disabled::-ms-thumb {
4053
+ background-color: #adb5bd;
4054
+ }
4055
+
4056
  .custom-control-label::before,
4057
  .custom-file-label,
4058
  .custom-select {
4088
 
4089
  .nav-link.disabled {
4090
  color: #6c757d;
4091
+ pointer-events: none;
4092
+ cursor: default;
4093
  }
4094
 
4095
  .nav-tabs {
4507
  }
4508
 
4509
  .navbar-light .navbar-toggler-icon {
4510
+ background-image: url("data:image/svg+xml,%3csvg viewBox='0 0 30 30' xmlns='http://www.w3.org/2000/svg'%3e%3cpath stroke='rgba(0, 0, 0, 0.5)' stroke-width='2' stroke-linecap='round' stroke-miterlimit='10' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e");
4511
  }
4512
 
4513
  .navbar-light .navbar-text {
4555
  }
4556
 
4557
  .navbar-dark .navbar-toggler-icon {
4558
+ background-image: url("data:image/svg+xml,%3csvg viewBox='0 0 30 30' xmlns='http://www.w3.org/2000/svg'%3e%3cpath stroke='rgba(255, 255, 255, 0.5)' stroke-width='2' stroke-linecap='round' stroke-miterlimit='10' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e");
4559
  }
4560
 
4561
  .navbar-dark .navbar-text {
4629
  .card-header {
4630
  padding: 0.75rem 1.25rem;
4631
  margin-bottom: 0;
4632
+ color: inherit;
4633
  background-color: rgba(0, 0, 0, 0.03);
4634
  border-bottom: 1px solid rgba(0, 0, 0, 0.125);
4635
  }
4815
  }
4816
  }
4817
 
4818
+ .accordion .card {
4819
+ overflow: hidden;
 
4820
  }
4821
 
4822
  .accordion .card:not(:first-of-type) .card-header:first-child {
4823
  border-radius: 0;
4824
  }
4825
 
4826
+ .accordion .card:not(:first-of-type):not(:last-of-type) {
4827
+ border-bottom: 0;
4828
+ border-radius: 0;
4829
+ }
4830
+
4831
+ .accordion .card:first-of-type {
4832
  border-bottom: 0;
4833
  border-bottom-right-radius: 0;
4834
  border-bottom-left-radius: 0;
4839
  border-top-right-radius: 0;
4840
  }
4841
 
4842
+ .accordion .card .card-header {
4843
+ margin-bottom: -1px;
4844
+ }
4845
+
4846
  .breadcrumb {
4847
  display: -ms-flexbox;
4848
  display: flex;
4985
  border-radius: 0.25rem;
4986
  }
4987
 
4988
+ a.badge:hover, a.badge:focus {
4989
+ text-decoration: none;
4990
+ }
4991
+
4992
  .badge:empty {
4993
  display: none;
4994
  }
5009
  background-color: #007bff;
5010
  }
5011
 
5012
+ a.badge-primary:hover, a.badge-primary:focus {
5013
  color: #fff;
 
5014
  background-color: #0062cc;
5015
  }
5016
 
5019
  background-color: #6c757d;
5020
  }
5021
 
5022
+ a.badge-secondary:hover, a.badge-secondary:focus {
5023
  color: #fff;
 
5024
  background-color: #545b62;
5025
  }
5026
 
5029
  background-color: #28a745;
5030
  }
5031
 
5032
+ a.badge-success:hover, a.badge-success:focus {
5033
  color: #fff;
 
5034
  background-color: #1e7e34;
5035
  }
5036
 
5039
  background-color: #17a2b8;
5040
  }
5041
 
5042
+ a.badge-info:hover, a.badge-info:focus {
5043
  color: #fff;
 
5044
  background-color: #117a8b;
5045
  }
5046
 
5049
  background-color: #ffc107;
5050
  }
5051
 
5052
+ a.badge-warning:hover, a.badge-warning:focus {
5053
  color: #212529;
 
5054
  background-color: #d39e00;
5055
  }
5056
 
5059
  background-color: #dc3545;
5060
  }
5061
 
5062
+ a.badge-danger:hover, a.badge-danger:focus {
5063
  color: #fff;
 
5064
  background-color: #bd2130;
5065
  }
5066
 
5069
  background-color: #f8f9fa;
5070
  }
5071
 
5072
+ a.badge-light:hover, a.badge-light:focus {
5073
  color: #212529;
 
5074
  background-color: #dae0e5;
5075
  }
5076
 
5079
  background-color: #343a40;
5080
  }
5081
 
5082
+ a.badge-dark:hover, a.badge-dark:focus {
5083
  color: #fff;
 
5084
  background-color: #1d2124;
5085
  }
5086
 
5366
 
5367
  .list-group-item.disabled, .list-group-item:disabled {
5368
  color: #6c757d;
5369
+ pointer-events: none;
5370
  background-color: #fff;
5371
  }
5372
 
5383
  border-radius: 0;
5384
  }
5385
 
5386
+ .list-group-flush .list-group-item:last-child {
5387
+ margin-bottom: -1px;
5388
+ }
5389
+
5390
  .list-group-flush:first-child .list-group-item:first-child {
5391
  border-top: 0;
5392
  }
5393
 
5394
  .list-group-flush:last-child .list-group-item:last-child {
5395
+ margin-bottom: 0;
5396
  border-bottom: 0;
5397
  }
5398
 
5534
  opacity: .5;
5535
  }
5536
 
5537
+ .close:hover {
5538
+ color: #000;
5539
+ text-decoration: none;
5540
+ }
5541
+
5542
  .close:not(:disabled):not(.disabled) {
5543
  cursor: pointer;
5544
  }
5545
 
5546
  .close:not(:disabled):not(.disabled):hover, .close:not(:disabled):not(.disabled):focus {
 
 
5547
  opacity: .75;
5548
  }
5549
 
5552
  background-color: transparent;
5553
  border: 0;
5554
  -webkit-appearance: none;
5555
+ -moz-appearance: none;
5556
+ appearance: none;
5557
+ }
5558
+
5559
+ a.close.disabled {
5560
+ pointer-events: none;
5561
+ }
5562
+
5563
+ .toast {
5564
+ max-width: 350px;
5565
+ overflow: hidden;
5566
+ font-size: 0.875rem;
5567
+ background-color: rgba(255, 255, 255, 0.85);
5568
+ background-clip: padding-box;
5569
+ border: 1px solid rgba(0, 0, 0, 0.1);
5570
+ border-radius: 0.25rem;
5571
+ box-shadow: 0 0.25rem 0.75rem rgba(0, 0, 0, 0.1);
5572
+ -webkit-backdrop-filter: blur(10px);
5573
+ backdrop-filter: blur(10px);
5574
+ opacity: 0;
5575
+ }
5576
+
5577
+ .toast:not(:last-child) {
5578
+ margin-bottom: 0.75rem;
5579
+ }
5580
+
5581
+ .toast.showing {
5582
+ opacity: 1;
5583
+ }
5584
+
5585
+ .toast.show {
5586
+ display: block;
5587
+ opacity: 1;
5588
+ }
5589
+
5590
+ .toast.hide {
5591
+ display: none;
5592
+ }
5593
+
5594
+ .toast-header {
5595
+ display: -ms-flexbox;
5596
+ display: flex;
5597
+ -ms-flex-align: center;
5598
+ align-items: center;
5599
+ padding: 0.25rem 0.75rem;
5600
+ color: #6c757d;
5601
+ background-color: rgba(255, 255, 255, 0.85);
5602
+ background-clip: padding-box;
5603
+ border-bottom: 1px solid rgba(0, 0, 0, 0.05);
5604
+ }
5605
+
5606
+ .toast-body {
5607
+ padding: 0.75rem;
5608
  }
5609
 
5610
  .modal-open {
5619
  .modal {
5620
  position: fixed;
5621
  top: 0;
 
 
5622
  left: 0;
5623
  z-index: 1050;
5624
  display: none;
5625
+ width: 100%;
5626
+ height: 100%;
5627
  overflow: hidden;
5628
  outline: 0;
5629
  }
5639
  transition: -webkit-transform 0.3s ease-out;
5640
  transition: transform 0.3s ease-out;
5641
  transition: transform 0.3s ease-out, -webkit-transform 0.3s ease-out;
5642
+ -webkit-transform: translate(0, -50px);
5643
+ transform: translate(0, -50px);
5644
  }
5645
 
5646
  @media screen and (prefers-reduced-motion: reduce) {
5650
  }
5651
 
5652
  .modal.show .modal-dialog {
5653
+ -webkit-transform: none;
5654
+ transform: none;
5655
  }
5656
 
5657
  .modal-dialog-centered {
5686
  .modal-backdrop {
5687
  position: fixed;
5688
  top: 0;
 
 
5689
  left: 0;
5690
  z-index: 1040;
5691
+ width: 100vw;
5692
+ height: 100vh;
5693
  background-color: #000;
5694
  }
5695
 
5708
  align-items: flex-start;
5709
  -ms-flex-pack: justify;
5710
  justify-content: space-between;
5711
+ padding: 1rem 1rem;
5712
  border-bottom: 1px solid #e9ecef;
5713
  border-top-left-radius: 0.3rem;
5714
  border-top-right-radius: 0.3rem;
5715
  }
5716
 
5717
  .modal-header .close {
5718
+ padding: 1rem 1rem;
5719
  margin: -1rem -1rem -1rem auto;
5720
  }
5721
 
5740
  justify-content: flex-end;
5741
  padding: 1rem;
5742
  border-top: 1px solid #e9ecef;
5743
+ border-bottom-right-radius: 0.3rem;
5744
+ border-bottom-left-radius: 0.3rem;
5745
  }
5746
 
5747
  .modal-footer > :not(:first-child) {
5777
  }
5778
 
5779
  @media (min-width: 992px) {
5780
+ .modal-lg,
5781
+ .modal-xl {
5782
  max-width: 800px;
5783
  }
5784
  }
5785
 
5786
+ @media (min-width: 1200px) {
5787
+ .modal-xl {
5788
+ max-width: 1140px;
5789
+ }
5790
+ }
5791
+
5792
  .tooltip {
5793
  position: absolute;
5794
  z-index: 1070;
5795
  display: block;
5796
  margin: 0;
5797
+ font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
5798
  font-style: normal;
5799
  font-weight: 400;
5800
  line-height: 1.5;
5907
  z-index: 1060;
5908
  display: block;
5909
  max-width: 276px;
5910
+ font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
5911
  font-style: normal;
5912
  font-weight: 400;
5913
  line-height: 1.5;
6090
  position: relative;
6091
  }
6092
 
6093
+ .carousel.pointer-event {
6094
+ -ms-touch-action: pan-y;
6095
+ touch-action: pan-y;
6096
+ }
6097
+
6098
  .carousel-inner {
6099
  position: relative;
6100
  width: 100%;
6101
  overflow: hidden;
6102
  }
6103
 
6104
+ .carousel-inner::after {
6105
+ display: block;
6106
+ clear: both;
6107
+ content: "";
6108
+ }
6109
+
6110
  .carousel-item {
6111
  position: relative;
6112
  display: none;
6113
+ float: left;
 
6114
  width: 100%;
6115
+ margin-right: -100%;
6116
  -webkit-backface-visibility: hidden;
6117
  backface-visibility: hidden;
6118
+ transition: -webkit-transform 0.6s ease-in-out;
6119
+ transition: transform 0.6s ease-in-out;
6120
+ transition: transform 0.6s ease-in-out, -webkit-transform 0.6s ease-in-out;
 
 
 
 
 
 
 
 
6121
  }
6122
 
6123
  @media screen and (prefers-reduced-motion: reduce) {
6124
+ .carousel-item {
 
 
6125
  transition: none;
6126
  }
6127
  }
6128
 
6129
+ .carousel-item.active,
6130
  .carousel-item-next,
6131
  .carousel-item-prev {
6132
+ display: block;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
6133
  }
6134
 
6135
+ .carousel-item-next:not(.carousel-item-left),
6136
  .active.carousel-item-right {
6137
  -webkit-transform: translateX(100%);
6138
  transform: translateX(100%);
6139
  }
6140
 
6141
+ .carousel-item-prev:not(.carousel-item-right),
 
 
 
 
 
 
 
 
6142
  .active.carousel-item-left {
6143
  -webkit-transform: translateX(-100%);
6144
  transform: translateX(-100%);
6145
  }
6146
 
 
 
 
 
 
 
 
 
6147
  .carousel-fade .carousel-item {
6148
  opacity: 0;
 
6149
  transition-property: opacity;
6150
+ -webkit-transform: none;
6151
+ transform: none;
6152
  }
6153
 
6154
  .carousel-fade .carousel-item.active,
6155
  .carousel-fade .carousel-item-next.carousel-item-left,
6156
  .carousel-fade .carousel-item-prev.carousel-item-right {
6157
+ z-index: 1;
6158
  opacity: 1;
6159
  }
6160
 
6161
  .carousel-fade .active.carousel-item-left,
6162
  .carousel-fade .active.carousel-item-right {
6163
+ z-index: 0;
6164
  opacity: 0;
6165
+ transition: 0s 0.6s opacity;
6166
  }
6167
 
6168
+ @media screen and (prefers-reduced-motion: reduce) {
 
 
 
 
 
 
 
 
 
 
 
 
6169
  .carousel-fade .active.carousel-item-left,
6170
+ .carousel-fade .active.carousel-item-right {
6171
+ transition: none;
 
6172
  }
6173
  }
6174
 
6177
  position: absolute;
6178
  top: 0;
6179
  bottom: 0;
6180
+ z-index: 1;
6181
  display: -ms-flexbox;
6182
  display: flex;
6183
  -ms-flex-align: center;
6188
  color: #fff;
6189
  text-align: center;
6190
  opacity: 0.5;
6191
+ transition: opacity 0.15s ease;
6192
+ }
6193
+
6194
+ @media screen and (prefers-reduced-motion: reduce) {
6195
+ .carousel-control-prev,
6196
+ .carousel-control-next {
6197
+ transition: none;
6198
+ }
6199
  }
6200
 
6201
  .carousel-control-prev:hover, .carousel-control-prev:focus,
6204
  color: #fff;
6205
  text-decoration: none;
6206
  outline: 0;
6207
+ opacity: 0.9;
6208
  }
6209
 
6210
  .carousel-control-prev {
6225
  }
6226
 
6227
  .carousel-control-prev-icon {
6228
+ background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' viewBox='0 0 8 8'%3e%3cpath d='M5.25 0l-4 4 4 4 1.5-1.5-2.5-2.5 2.5-2.5-1.5-1.5z'/%3e%3c/svg%3e");
6229
  }
6230
 
6231
  .carousel-control-next-icon {
6232
+ background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' viewBox='0 0 8 8'%3e%3cpath d='M2.75 0l-1.5 1.5 2.5 2.5-2.5 2.5 1.5 1.5 4-4-4-4z'/%3e%3c/svg%3e");
6233
  }
6234
 
6235
  .carousel-indicators {
6236
  position: absolute;
6237
  right: 0;
6238
+ bottom: 0;
6239
  left: 0;
6240
  z-index: 15;
6241
  display: -ms-flexbox;
6249
  }
6250
 
6251
  .carousel-indicators li {
6252
+ box-sizing: content-box;
6253
  -ms-flex: 0 1 auto;
6254
  flex: 0 1 auto;
6255
  width: 30px;
6258
  margin-left: 3px;
6259
  text-indent: -999px;
6260
  cursor: pointer;
6261
+ background-color: #fff;
6262
+ background-clip: padding-box;
6263
+ border-top: 10px solid transparent;
6264
+ border-bottom: 10px solid transparent;
6265
+ opacity: .5;
6266
+ transition: opacity 0.6s ease;
 
 
 
 
 
6267
  }
6268
 
6269
+ @media screen and (prefers-reduced-motion: reduce) {
6270
+ .carousel-indicators li {
6271
+ transition: none;
6272
+ }
 
 
 
 
6273
  }
6274
 
6275
  .carousel-indicators .active {
6276
+ opacity: 1;
6277
  }
6278
 
6279
  .carousel-caption {
6288
  text-align: center;
6289
  }
6290
 
6291
+ @-webkit-keyframes spinner-border {
6292
+ to {
6293
+ -webkit-transform: rotate(360deg);
6294
+ transform: rotate(360deg);
6295
+ }
6296
+ }
6297
+
6298
+ @keyframes spinner-border {
6299
+ to {
6300
+ -webkit-transform: rotate(360deg);
6301
+ transform: rotate(360deg);
6302
+ }
6303
+ }
6304
+
6305
+ .spinner-border {
6306
+ display: inline-block;
6307
+ width: 2rem;
6308
+ height: 2rem;
6309
+ vertical-align: text-bottom;
6310
+ border: 0.25em solid currentColor;
6311
+ border-right-color: transparent;
6312
+ border-radius: 50%;
6313
+ -webkit-animation: spinner-border .75s linear infinite;
6314
+ animation: spinner-border .75s linear infinite;
6315
+ }
6316
+
6317
+ .spinner-border-sm {
6318
+ width: 1rem;
6319
+ height: 1rem;
6320
+ border-width: 0.2em;
6321
+ }
6322
+
6323
+ @-webkit-keyframes spinner-grow {
6324
+ 0% {
6325
+ -webkit-transform: scale(0);
6326
+ transform: scale(0);
6327
+ }
6328
+ 50% {
6329
+ opacity: 1;
6330
+ }
6331
+ }
6332
+
6333
+ @keyframes spinner-grow {
6334
+ 0% {
6335
+ -webkit-transform: scale(0);
6336
+ transform: scale(0);
6337
+ }
6338
+ 50% {
6339
+ opacity: 1;
6340
+ }
6341
+ }
6342
+
6343
+ .spinner-grow {
6344
+ display: inline-block;
6345
+ width: 2rem;
6346
+ height: 2rem;
6347
+ vertical-align: text-bottom;
6348
+ background-color: currentColor;
6349
+ border-radius: 50%;
6350
+ opacity: 0;
6351
+ -webkit-animation: spinner-grow .75s linear infinite;
6352
+ animation: spinner-grow .75s linear infinite;
6353
+ }
6354
+
6355
+ .spinner-grow-sm {
6356
+ width: 1rem;
6357
+ height: 1rem;
6358
+ }
6359
+
6360
  .align-baseline {
6361
  vertical-align: baseline !important;
6362
  }
6573
  border-radius: 50% !important;
6574
  }
6575
 
6576
+ .rounded-pill {
6577
+ border-radius: 50rem !important;
6578
+ }
6579
+
6580
  .rounded-0 {
6581
  border-radius: 0 !important;
6582
  }
6820
  padding-top: 56.25%;
6821
  }
6822
 
6823
+ .embed-responsive-3by4::before {
6824
+ padding-top: 133.333333%;
6825
  }
6826
 
6827
  .embed-responsive-1by1::before {
7614
  }
7615
  }
7616
 
7617
+ .overflow-auto {
7618
+ overflow: auto !important;
7619
+ }
7620
+
7621
+ .overflow-hidden {
7622
+ overflow: hidden !important;
7623
+ }
7624
+
7625
  .position-static {
7626
  position: static !important;
7627
  }
7752
  max-height: 100% !important;
7753
  }
7754
 
7755
+ .min-vw-100 {
7756
+ min-width: 100vw !important;
7757
+ }
7758
+
7759
+ .min-vh-100 {
7760
+ min-height: 100vh !important;
7761
+ }
7762
+
7763
+ .vw-100 {
7764
+ width: 100vw !important;
7765
+ }
7766
+
7767
+ .vh-100 {
7768
+ height: 100vh !important;
7769
+ }
7770
+
7771
  .m-0 {
7772
  margin: 0 !important;
7773
  }
8056
  padding-left: 3rem !important;
8057
  }
8058
 
8059
+ .m-n1 {
8060
+ margin: -0.25rem !important;
8061
+ }
8062
+
8063
+ .mt-n1,
8064
+ .my-n1 {
8065
+ margin-top: -0.25rem !important;
8066
+ }
8067
+
8068
+ .mr-n1,
8069
+ .mx-n1 {
8070
+ margin-right: -0.25rem !important;
8071
+ }
8072
+
8073
+ .mb-n1,
8074
+ .my-n1 {
8075
+ margin-bottom: -0.25rem !important;
8076
+ }
8077
+
8078
+ .ml-n1,
8079
+ .mx-n1 {
8080
+ margin-left: -0.25rem !important;
8081
+ }
8082
+
8083
+ .m-n2 {
8084
+ margin: -0.5rem !important;
8085
+ }
8086
+
8087
+ .mt-n2,
8088
+ .my-n2 {
8089
+ margin-top: -0.5rem !important;
8090
+ }
8091
+
8092
+ .mr-n2,
8093
+ .mx-n2 {
8094
+ margin-right: -0.5rem !important;
8095
+ }
8096
+
8097
+ .mb-n2,
8098
+ .my-n2 {
8099
+ margin-bottom: -0.5rem !important;
8100
+ }
8101
+
8102
+ .ml-n2,
8103
+ .mx-n2 {
8104
+ margin-left: -0.5rem !important;
8105
+ }
8106
+
8107
+ .m-n3 {
8108
+ margin: -1rem !important;
8109
+ }
8110
+
8111
+ .mt-n3,
8112
+ .my-n3 {
8113
+ margin-top: -1rem !important;
8114
+ }
8115
+
8116
+ .mr-n3,
8117
+ .mx-n3 {
8118
+ margin-right: -1rem !important;
8119
+ }
8120
+
8121
+ .mb-n3,
8122
+ .my-n3 {
8123
+ margin-bottom: -1rem !important;
8124
+ }
8125
+
8126
+ .ml-n3,
8127
+ .mx-n3 {
8128
+ margin-left: -1rem !important;
8129
+ }
8130
+
8131
+ .m-n4 {
8132
+ margin: -1.5rem !important;
8133
+ }
8134
+
8135
+ .mt-n4,
8136
+ .my-n4 {
8137
+ margin-top: -1.5rem !important;
8138
+ }
8139
+
8140
+ .mr-n4,
8141
+ .mx-n4 {
8142
+ margin-right: -1.5rem !important;
8143
+ }
8144
+
8145
+ .mb-n4,
8146
+ .my-n4 {
8147
+ margin-bottom: -1.5rem !important;
8148
+ }
8149
+
8150
+ .ml-n4,
8151
+ .mx-n4 {
8152
+ margin-left: -1.5rem !important;
8153
+ }
8154
+
8155
+ .m-n5 {
8156
+ margin: -3rem !important;
8157
+ }
8158
+
8159
+ .mt-n5,
8160
+ .my-n5 {
8161
+ margin-top: -3rem !important;
8162
+ }
8163
+
8164
+ .mr-n5,
8165
+ .mx-n5 {
8166
+ margin-right: -3rem !important;
8167
+ }
8168
+
8169
+ .mb-n5,
8170
+ .my-n5 {
8171
+ margin-bottom: -3rem !important;
8172
+ }
8173
+
8174
+ .ml-n5,
8175
+ .mx-n5 {
8176
+ margin-left: -3rem !important;
8177
+ }
8178
+
8179
  .m-auto {
8180
  margin: auto !important;
8181
  }
8429
  .px-sm-5 {
8430
  padding-left: 3rem !important;
8431
  }
8432
+ .m-sm-n1 {
8433
+ margin: -0.25rem !important;
8434
+ }
8435
+ .mt-sm-n1,
8436
+ .my-sm-n1 {
8437
+ margin-top: -0.25rem !important;
8438
+ }
8439
+ .mr-sm-n1,
8440
+ .mx-sm-n1 {
8441
+ margin-right: -0.25rem !important;
8442
+ }
8443
+ .mb-sm-n1,
8444
+ .my-sm-n1 {
8445
+ margin-bottom: -0.25rem !important;
8446
+ }
8447
+ .ml-sm-n1,
8448
+ .mx-sm-n1 {
8449
+ margin-left: -0.25rem !important;
8450
+ }
8451
+ .m-sm-n2 {
8452
+ margin: -0.5rem !important;
8453
+ }
8454
+ .mt-sm-n2,
8455
+ .my-sm-n2 {
8456
+ margin-top: -0.5rem !important;
8457
+ }
8458
+ .mr-sm-n2,
8459
+ .mx-sm-n2 {
8460
+ margin-right: -0.5rem !important;
8461
+ }
8462
+ .mb-sm-n2,
8463
+ .my-sm-n2 {
8464
+ margin-bottom: -0.5rem !important;
8465
+ }
8466
+ .ml-sm-n2,
8467
+ .mx-sm-n2 {
8468
+ margin-left: -0.5rem !important;
8469
+ }
8470
+ .m-sm-n3 {
8471
+ margin: -1rem !important;
8472
+ }
8473
+ .mt-sm-n3,
8474
+ .my-sm-n3 {
8475
+ margin-top: -1rem !important;
8476
+ }
8477
+ .mr-sm-n3,
8478
+ .mx-sm-n3 {
8479
+ margin-right: -1rem !important;
8480
+ }
8481
+ .mb-sm-n3,
8482
+ .my-sm-n3 {
8483
+ margin-bottom: -1rem !important;
8484
+ }
8485
+ .ml-sm-n3,
8486
+ .mx-sm-n3 {
8487
+ margin-left: -1rem !important;
8488
+ }
8489
+ .m-sm-n4 {
8490
+ margin: -1.5rem !important;
8491
+ }
8492
+ .mt-sm-n4,
8493
+ .my-sm-n4 {
8494
+ margin-top: -1.5rem !important;
8495
+ }
8496
+ .mr-sm-n4,
8497
+ .mx-sm-n4 {
8498
+ margin-right: -1.5rem !important;
8499
+ }
8500
+ .mb-sm-n4,
8501
+ .my-sm-n4 {
8502
+ margin-bottom: -1.5rem !important;
8503
+ }
8504
+ .ml-sm-n4,
8505
+ .mx-sm-n4 {
8506
+ margin-left: -1.5rem !important;
8507
+ }
8508
+ .m-sm-n5 {
8509
+ margin: -3rem !important;
8510
+ }
8511
+ .mt-sm-n5,
8512
+ .my-sm-n5 {
8513
+ margin-top: -3rem !important;
8514
+ }
8515
+ .mr-sm-n5,
8516
+ .mx-sm-n5 {
8517
+ margin-right: -3rem !important;
8518
+ }
8519
+ .mb-sm-n5,
8520
+ .my-sm-n5 {
8521
+ margin-bottom: -3rem !important;
8522
+ }
8523
+ .ml-sm-n5,
8524
+ .mx-sm-n5 {
8525
+ margin-left: -3rem !important;
8526
+ }
8527
  .m-sm-auto {
8528
  margin: auto !important;
8529
  }
8774
  .px-md-5 {
8775
  padding-left: 3rem !important;
8776
  }
8777
+ .m-md-n1 {
8778
+ margin: -0.25rem !important;
8779
+ }
8780
+ .mt-md-n1,
8781
+ .my-md-n1 {
8782
+ margin-top: -0.25rem !important;
8783
+ }
8784
+ .mr-md-n1,
8785
+ .mx-md-n1 {
8786
+ margin-right: -0.25rem !important;
8787
+ }
8788
+ .mb-md-n1,
8789
+ .my-md-n1 {
8790
+ margin-bottom: -0.25rem !important;
8791
+ }
8792
+ .ml-md-n1,
8793
+ .mx-md-n1 {
8794
+ margin-left: -0.25rem !important;
8795
+ }
8796
+ .m-md-n2 {
8797
+ margin: -0.5rem !important;
8798
+ }
8799
+ .mt-md-n2,
8800
+ .my-md-n2 {
8801
+ margin-top: -0.5rem !important;
8802
+ }
8803
+ .mr-md-n2,
8804
+ .mx-md-n2 {
8805
+ margin-right: -0.5rem !important;
8806
+ }
8807
+ .mb-md-n2,
8808
+ .my-md-n2 {
8809
+ margin-bottom: -0.5rem !important;
8810
+ }
8811
+ .ml-md-n2,
8812
+ .mx-md-n2 {
8813
+ margin-left: -0.5rem !important;
8814
+ }
8815
+ .m-md-n3 {
8816
+ margin: -1rem !important;
8817
+ }
8818
+ .mt-md-n3,
8819
+ .my-md-n3 {
8820
+ margin-top: -1rem !important;
8821
+ }
8822
+ .mr-md-n3,
8823
+ .mx-md-n3 {
8824
+ margin-right: -1rem !important;
8825
+ }
8826
+ .mb-md-n3,
8827
+ .my-md-n3 {
8828
+ margin-bottom: -1rem !important;
8829
+ }
8830
+ .ml-md-n3,
8831
+ .mx-md-n3 {
8832
+ margin-left: -1rem !important;
8833
+ }
8834
+ .m-md-n4 {
8835
+ margin: -1.5rem !important;
8836
+ }
8837
+ .mt-md-n4,
8838
+ .my-md-n4 {
8839
+ margin-top: -1.5rem !important;
8840
+ }
8841
+ .mr-md-n4,
8842
+ .mx-md-n4 {
8843
+ margin-right: -1.5rem !important;
8844
+ }
8845
+ .mb-md-n4,
8846
+ .my-md-n4 {
8847
+ margin-bottom: -1.5rem !important;
8848
+ }
8849
+ .ml-md-n4,
8850
+ .mx-md-n4 {
8851
+ margin-left: -1.5rem !important;
8852
+ }
8853
+ .m-md-n5 {
8854
+ margin: -3rem !important;
8855
+ }
8856
+ .mt-md-n5,
8857
+ .my-md-n5 {
8858
+ margin-top: -3rem !important;
8859
+ }
8860
+ .mr-md-n5,
8861
+ .mx-md-n5 {
8862
+ margin-right: -3rem !important;
8863
+ }
8864
+ .mb-md-n5,
8865
+ .my-md-n5 {
8866
+ margin-bottom: -3rem !important;
8867
+ }
8868
+ .ml-md-n5,
8869
+ .mx-md-n5 {
8870
+ margin-left: -3rem !important;
8871
+ }
8872
  .m-md-auto {
8873
  margin: auto !important;
8874
  }
9119
  .px-lg-5 {
9120
  padding-left: 3rem !important;
9121
  }
9122
+ .m-lg-n1 {
9123
+ margin: -0.25rem !important;
9124
+ }
9125
+ .mt-lg-n1,
9126
+ .my-lg-n1 {
9127
+ margin-top: -0.25rem !important;
9128
+ }
9129
+ .mr-lg-n1,
9130
+ .mx-lg-n1 {
9131
+ margin-right: -0.25rem !important;
9132
+ }
9133
+ .mb-lg-n1,
9134
+ .my-lg-n1 {
9135
+ margin-bottom: -0.25rem !important;
9136
+ }
9137
+ .ml-lg-n1,
9138
+ .mx-lg-n1 {
9139
+ margin-left: -0.25rem !important;
9140
+ }
9141
+ .m-lg-n2 {
9142
+ margin: -0.5rem !important;
9143
+ }
9144
+ .mt-lg-n2,
9145
+ .my-lg-n2 {
9146
+ margin-top: -0.5rem !important;
9147
+ }
9148
+ .mr-lg-n2,
9149
+ .mx-lg-n2 {
9150
+ margin-right: -0.5rem !important;
9151
+ }
9152
+ .mb-lg-n2,
9153
+ .my-lg-n2 {
9154
+ margin-bottom: -0.5rem !important;
9155
+ }
9156
+ .ml-lg-n2,
9157
+ .mx-lg-n2 {
9158
+ margin-left: -0.5rem !important;
9159
+ }
9160
+ .m-lg-n3 {
9161
+ margin: -1rem !important;
9162
+ }
9163
+ .mt-lg-n3,
9164
+ .my-lg-n3 {
9165
+ margin-top: -1rem !important;
9166
+ }
9167
+ .mr-lg-n3,
9168
+ .mx-lg-n3 {
9169
+ margin-right: -1rem !important;
9170
+ }
9171
+ .mb-lg-n3,
9172
+ .my-lg-n3 {
9173
+ margin-bottom: -1rem !important;
9174
+ }
9175
+ .ml-lg-n3,
9176
+ .mx-lg-n3 {
9177
+ margin-left: -1rem !important;
9178
+ }
9179
+ .m-lg-n4 {
9180
+ margin: -1.5rem !important;
9181
+ }
9182
+ .mt-lg-n4,
9183
+ .my-lg-n4 {
9184
+ margin-top: -1.5rem !important;
9185
+ }
9186
+ .mr-lg-n4,
9187
+ .mx-lg-n4 {
9188
+ margin-right: -1.5rem !important;
9189
+ }
9190
+ .mb-lg-n4,
9191
+ .my-lg-n4 {
9192
+ margin-bottom: -1.5rem !important;
9193
+ }
9194
+ .ml-lg-n4,
9195
+ .mx-lg-n4 {
9196
+ margin-left: -1.5rem !important;
9197
+ }
9198
+ .m-lg-n5 {
9199
+ margin: -3rem !important;
9200
+ }
9201
+ .mt-lg-n5,
9202
+ .my-lg-n5 {
9203
+ margin-top: -3rem !important;
9204
+ }
9205
+ .mr-lg-n5,
9206
+ .mx-lg-n5 {
9207
+ margin-right: -3rem !important;
9208
+ }
9209
+ .mb-lg-n5,
9210
+ .my-lg-n5 {
9211
+ margin-bottom: -3rem !important;
9212
+ }
9213
+ .ml-lg-n5,
9214
+ .mx-lg-n5 {
9215
+ margin-left: -3rem !important;
9216
+ }
9217
  .m-lg-auto {
9218
  margin: auto !important;
9219
  }
9464
  .px-xl-5 {
9465
  padding-left: 3rem !important;
9466
  }
9467
+ .m-xl-n1 {
9468
+ margin: -0.25rem !important;
9469
+ }
9470
+ .mt-xl-n1,
9471
+ .my-xl-n1 {
9472
+ margin-top: -0.25rem !important;
9473
+ }
9474
+ .mr-xl-n1,
9475
+ .mx-xl-n1 {
9476
+ margin-right: -0.25rem !important;
9477
+ }
9478
+ .mb-xl-n1,
9479
+ .my-xl-n1 {
9480
+ margin-bottom: -0.25rem !important;
9481
+ }
9482
+ .ml-xl-n1,
9483
+ .mx-xl-n1 {
9484
+ margin-left: -0.25rem !important;
9485
+ }
9486
+ .m-xl-n2 {
9487
+ margin: -0.5rem !important;
9488
+ }
9489
+ .mt-xl-n2,
9490
+ .my-xl-n2 {
9491
+ margin-top: -0.5rem !important;
9492
+ }
9493
+ .mr-xl-n2,
9494
+ .mx-xl-n2 {
9495
+ margin-right: -0.5rem !important;
9496
+ }
9497
+ .mb-xl-n2,
9498
+ .my-xl-n2 {
9499
+ margin-bottom: -0.5rem !important;
9500
+ }
9501
+ .ml-xl-n2,
9502
+ .mx-xl-n2 {
9503
+ margin-left: -0.5rem !important;
9504
+ }
9505
+ .m-xl-n3 {
9506
+ margin: -1rem !important;
9507
+ }
9508
+ .mt-xl-n3,
9509
+ .my-xl-n3 {
9510
+ margin-top: -1rem !important;
9511
+ }
9512
+ .mr-xl-n3,
9513
+ .mx-xl-n3 {
9514
+ margin-right: -1rem !important;
9515
+ }
9516
+ .mb-xl-n3,
9517
+ .my-xl-n3 {
9518
+ margin-bottom: -1rem !important;
9519
+ }
9520
+ .ml-xl-n3,
9521
+ .mx-xl-n3 {
9522
+ margin-left: -1rem !important;
9523
+ }
9524
+ .m-xl-n4 {
9525
+ margin: -1.5rem !important;
9526
+ }
9527
+ .mt-xl-n4,
9528
+ .my-xl-n4 {
9529
+ margin-top: -1.5rem !important;
9530
+ }
9531
+ .mr-xl-n4,
9532
+ .mx-xl-n4 {
9533
+ margin-right: -1.5rem !important;
9534
+ }
9535
+ .mb-xl-n4,
9536
+ .my-xl-n4 {
9537
+ margin-bottom: -1.5rem !important;
9538
+ }
9539
+ .ml-xl-n4,
9540
+ .mx-xl-n4 {
9541
+ margin-left: -1.5rem !important;
9542
+ }
9543
+ .m-xl-n5 {
9544
+ margin: -3rem !important;
9545
+ }
9546
+ .mt-xl-n5,
9547
+ .my-xl-n5 {
9548
+ margin-top: -3rem !important;
9549
+ }
9550
+ .mr-xl-n5,
9551
+ .mx-xl-n5 {
9552
+ margin-right: -3rem !important;
9553
+ }
9554
+ .mb-xl-n5,
9555
+ .my-xl-n5 {
9556
+ margin-bottom: -3rem !important;
9557
+ }
9558
+ .ml-xl-n5,
9559
+ .mx-xl-n5 {
9560
+ margin-left: -3rem !important;
9561
+ }
9562
  .m-xl-auto {
9563
  margin: auto !important;
9564
  }
9588
  text-align: justify !important;
9589
  }
9590
 
9591
+ .text-wrap {
9592
+ white-space: normal !important;
9593
+ }
9594
+
9595
  .text-nowrap {
9596
  white-space: nowrap !important;
9597
  }
9678
  font-weight: 300 !important;
9679
  }
9680
 
9681
+ .font-weight-lighter {
9682
+ font-weight: lighter !important;
9683
+ }
9684
+
9685
  .font-weight-normal {
9686
  font-weight: 400 !important;
9687
  }
9690
  font-weight: 700 !important;
9691
  }
9692
 
9693
+ .font-weight-bolder {
9694
+ font-weight: bolder !important;
9695
+ }
9696
+
9697
  .font-italic {
9698
  font-style: italic !important;
9699
  }
9707
  }
9708
 
9709
  a.text-primary:hover, a.text-primary:focus {
9710
+ color: #0056b3 !important;
9711
  }
9712
 
9713
  .text-secondary {
9715
  }
9716
 
9717
  a.text-secondary:hover, a.text-secondary:focus {
9718
+ color: #494f54 !important;
9719
  }
9720
 
9721
  .text-success {
9723
  }
9724
 
9725
  a.text-success:hover, a.text-success:focus {
9726
+ color: #19692c !important;
9727
  }
9728
 
9729
  .text-info {
9731
  }
9732
 
9733
  a.text-info:hover, a.text-info:focus {
9734
+ color: #0f6674 !important;
9735
  }
9736
 
9737
  .text-warning {
9739
  }
9740
 
9741
  a.text-warning:hover, a.text-warning:focus {
9742
+ color: #ba8b00 !important;
9743
  }
9744
 
9745
  .text-danger {
9747
  }
9748
 
9749
  a.text-danger:hover, a.text-danger:focus {
9750
+ color: #a71d2a !important;
9751
  }
9752
 
9753
  .text-light {
9755
  }
9756
 
9757
  a.text-light:hover, a.text-light:focus {
9758
+ color: #cbd3da !important;
9759
  }
9760
 
9761
  .text-dark {
9763
  }
9764
 
9765
  a.text-dark:hover, a.text-dark:focus {
9766
+ color: #121416 !important;
9767
  }
9768
 
9769
  .text-body {
9790
  border: 0;
9791
  }
9792
 
9793
+ .text-decoration-none {
9794
+ text-decoration: none !important;
9795
+ }
9796
+
9797
+ .text-reset {
9798
+ color: inherit !important;
9799
+ }
9800
+
9801
  .visible {
9802
  visibility: visible !important;
9803
  }
9883
  color: inherit;
9884
  border-color: #dee2e6;
9885
  }
9886
+ }
9887
+ /*# sourceMappingURL=bootstrap.css.map */
resources/css/bootstrap4.min.css CHANGED
@@ -1,6 +1,7 @@
1
  /*!
2
- * Bootstrap v4.1.3 (https://getbootstrap.com/)
3
  * Copyright 2011-2018 The Bootstrap Authors
4
  * Copyright 2011-2018 Twitter, Inc.
5
  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
6
- */:root{--blue:#007bff;--indigo:#6610f2;--purple:#6f42c1;--pink:#e83e8c;--red:#dc3545;--orange:#fd7e14;--yellow:#ffc107;--green:#28a745;--teal:#20c997;--cyan:#17a2b8;--white:#fff;--gray:#6c757d;--gray-dark:#343a40;--primary:#007bff;--secondary:#6c757d;--success:#28a745;--info:#17a2b8;--warning:#ffc107;--danger:#dc3545;--light:#f8f9fa;--dark:#343a40;--breakpoint-xs:0;--breakpoint-sm:576px;--breakpoint-md:768px;--breakpoint-lg:992px;--breakpoint-xl:1200px;--font-family-sans-serif:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";--font-family-monospace:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace}*,::after,::before{box-sizing:border-box}html{font-family:sans-serif;line-height:1.15;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%;-ms-overflow-style:scrollbar;-webkit-tap-highlight-color:transparent}@-ms-viewport{width:device-width}article,aside,figcaption,figure,footer,header,hgroup,main,nav,section{display:block}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";font-size:1rem;font-weight:400;line-height:1.5;color:#212529;text-align:left;background-color:#fff}[tabindex="-1"]:focus{outline:0!important}hr{box-sizing:content-box;height:0;overflow:visible}h1,h2,h3,h4,h5,h6{margin-top:0;margin-bottom:.5rem}p{margin-top:0;margin-bottom:1rem}abbr[data-original-title],abbr[title]{text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted;cursor:help;border-bottom:0}address{margin-bottom:1rem;font-style:normal;line-height:inherit}dl,ol,ul{margin-top:0;margin-bottom:1rem}ol ol,ol ul,ul ol,ul ul{margin-bottom:0}dt{font-weight:700}dd{margin-bottom:.5rem;margin-left:0}blockquote{margin:0 0 1rem}dfn{font-style:italic}b,strong{font-weight:bolder}small{font-size:80%}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}a{color:#007bff;text-decoration:none;background-color:transparent;-webkit-text-decoration-skip:objects}a:hover{color:#0056b3;text-decoration:underline}a:not([href]):not([tabindex]){color:inherit;text-decoration:none}a:not([href]):not([tabindex]):focus,a:not([href]):not([tabindex]):hover{color:inherit;text-decoration:none}a:not([href]):not([tabindex]):focus{outline:0}code,kbd,pre,samp{font-family:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;font-size:1em}pre{margin-top:0;margin-bottom:1rem;overflow:auto;-ms-overflow-style:scrollbar}figure{margin:0 0 1rem}img{vertical-align:middle;border-style:none}svg{overflow:hidden;vertical-align:middle}table{border-collapse:collapse}caption{padding-top:.75rem;padding-bottom:.75rem;color:#6c757d;text-align:left;caption-side:bottom}th{text-align:inherit}label{display:inline-block;margin-bottom:.5rem}button{border-radius:0}button:focus{outline:1px dotted;outline:5px auto -webkit-focus-ring-color}button,input,optgroup,select,textarea{margin:0;font-family:inherit;font-size:inherit;line-height:inherit}button,input{overflow:visible}button,select{text-transform:none}[type=reset],[type=submit],button,html [type=button]{-webkit-appearance:button}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{padding:0;border-style:none}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0}input[type=date],input[type=datetime-local],input[type=month],input[type=time]{-webkit-appearance:listbox}textarea{overflow:auto;resize:vertical}fieldset{min-width:0;padding:0;margin:0;border:0}legend{display:block;width:100%;max-width:100%;padding:0;margin-bottom:.5rem;font-size:1.5rem;line-height:inherit;color:inherit;white-space:normal}progress{vertical-align:baseline}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{outline-offset:-2px;-webkit-appearance:none}[type=search]::-webkit-search-cancel-button,[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}output{display:inline-block}summary{display:list-item;cursor:pointer}template{display:none}[hidden]{display:none!important}.h1,.h2,.h3,.h4,.h5,.h6,h1,h2,h3,h4,h5,h6{margin-bottom:.5rem;font-family:inherit;font-weight:500;line-height:1.2;color:inherit}.h1,h1{font-size:2.5rem}.h2,h2{font-size:2rem}.h3,h3{font-size:1.75rem}.h4,h4{font-size:1.5rem}.h5,h5{font-size:1.25rem}.h6,h6{font-size:1rem}.lead{font-size:1.25rem;font-weight:300}.display-1{font-size:6rem;font-weight:300;line-height:1.2}.display-2{font-size:5.5rem;font-weight:300;line-height:1.2}.display-3{font-size:4.5rem;font-weight:300;line-height:1.2}.display-4{font-size:3.5rem;font-weight:300;line-height:1.2}hr{margin-top:1rem;margin-bottom:1rem;border:0;border-top:1px solid rgba(0,0,0,.1)}.small,small{font-size:80%;font-weight:400}.mark,mark{padding:.2em;background-color:#fcf8e3}.list-unstyled{padding-left:0;list-style:none}.list-inline{padding-left:0;list-style:none}.list-inline-item{display:inline-block}.list-inline-item:not(:last-child){margin-right:.5rem}.initialism{font-size:90%;text-transform:uppercase}.blockquote{margin-bottom:1rem;font-size:1.25rem}.blockquote-footer{display:block;font-size:80%;color:#6c757d}.blockquote-footer::before{content:"\2014 \00A0"}.img-fluid{max-width:100%;height:auto}.img-thumbnail{padding:.25rem;background-color:#fff;border:1px solid #dee2e6;border-radius:.25rem;max-width:100%;height:auto}.figure{display:inline-block}.figure-img{margin-bottom:.5rem;line-height:1}.figure-caption{font-size:90%;color:#6c757d}code{font-size:87.5%;color:#e83e8c;word-break:break-word}a>code{color:inherit}kbd{padding:.2rem .4rem;font-size:87.5%;color:#fff;background-color:#212529;border-radius:.2rem}kbd kbd{padding:0;font-size:100%;font-weight:700}pre{display:block;font-size:87.5%;color:#212529}pre code{font-size:inherit;color:inherit;word-break:normal}.pre-scrollable{max-height:340px;overflow-y:scroll}.container{width:100%;padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}@media (min-width:576px){.container{max-width:540px}}@media (min-width:768px){.container{max-width:720px}}@media (min-width:992px){.container{max-width:960px}}@media (min-width:1200px){.container{max-width:1140px}}.container-fluid{width:100%;padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}.row{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;margin-right:-15px;margin-left:-15px}.no-gutters{margin-right:0;margin-left:0}.no-gutters>.col,.no-gutters>[class*=col-]{padding-right:0;padding-left:0}.col,.col-1,.col-10,.col-11,.col-12,.col-2,.col-3,.col-4,.col-5,.col-6,.col-7,.col-8,.col-9,.col-auto,.col-lg,.col-lg-1,.col-lg-10,.col-lg-11,.col-lg-12,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9,.col-lg-auto,.col-md,.col-md-1,.col-md-10,.col-md-11,.col-md-12,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9,.col-md-auto,.col-sm,.col-sm-1,.col-sm-10,.col-sm-11,.col-sm-12,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9,.col-sm-auto,.col-xl,.col-xl-1,.col-xl-10,.col-xl-11,.col-xl-12,.col-xl-2,.col-xl-3,.col-xl-4,.col-xl-5,.col-xl-6,.col-xl-7,.col-xl-8,.col-xl-9,.col-xl-auto{position:relative;width:100%;min-height:1px;padding-right:15px;padding-left:15px}.col{-ms-flex-preferred-size:0;flex-basis:0;-ms-flex-positive:1;flex-grow:1;max-width:100%}.col-auto{-ms-flex:0 0 auto;flex:0 0 auto;width:auto;max-width:none}.col-1{-ms-flex:0 0 8.333333%;flex:0 0 8.333333%;max-width:8.333333%}.col-2{-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-3{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.col-4{-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.col-5{-ms-flex:0 0 41.666667%;flex:0 0 41.666667%;max-width:41.666667%}.col-6{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.col-7{-ms-flex:0 0 58.333333%;flex:0 0 58.333333%;max-width:58.333333%}.col-8{-ms-flex:0 0 66.666667%;flex:0 0 66.666667%;max-width:66.666667%}.col-9{-ms-flex:0 0 75%;flex:0 0 75%;max-width:75%}.col-10{-ms-flex:0 0 83.333333%;flex:0 0 83.333333%;max-width:83.333333%}.col-11{-ms-flex:0 0 91.666667%;flex:0 0 91.666667%;max-width:91.666667%}.col-12{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.order-first{-ms-flex-order:-1;order:-1}.order-last{-ms-flex-order:13;order:13}.order-0{-ms-flex-order:0;order:0}.order-1{-ms-flex-order:1;order:1}.order-2{-ms-flex-order:2;order:2}.order-3{-ms-flex-order:3;order:3}.order-4{-ms-flex-order:4;order:4}.order-5{-ms-flex-order:5;order:5}.order-6{-ms-flex-order:6;order:6}.order-7{-ms-flex-order:7;order:7}.order-8{-ms-flex-order:8;order:8}.order-9{-ms-flex-order:9;order:9}.order-10{-ms-flex-order:10;order:10}.order-11{-ms-flex-order:11;order:11}.order-12{-ms-flex-order:12;order:12}.offset-1{margin-left:8.333333%}.offset-2{margin-left:16.666667%}.offset-3{margin-left:25%}.offset-4{margin-left:33.333333%}.offset-5{margin-left:41.666667%}.offset-6{margin-left:50%}.offset-7{margin-left:58.333333%}.offset-8{margin-left:66.666667%}.offset-9{margin-left:75%}.offset-10{margin-left:83.333333%}.offset-11{margin-left:91.666667%}@media (min-width:576px){.col-sm{-ms-flex-preferred-size:0;flex-basis:0;-ms-flex-positive:1;flex-grow:1;max-width:100%}.col-sm-auto{-ms-flex:0 0 auto;flex:0 0 auto;width:auto;max-width:none}.col-sm-1{-ms-flex:0 0 8.333333%;flex:0 0 8.333333%;max-width:8.333333%}.col-sm-2{-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-sm-3{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.col-sm-4{-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.col-sm-5{-ms-flex:0 0 41.666667%;flex:0 0 41.666667%;max-width:41.666667%}.col-sm-6{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.col-sm-7{-ms-flex:0 0 58.333333%;flex:0 0 58.333333%;max-width:58.333333%}.col-sm-8{-ms-flex:0 0 66.666667%;flex:0 0 66.666667%;max-width:66.666667%}.col-sm-9{-ms-flex:0 0 75%;flex:0 0 75%;max-width:75%}.col-sm-10{-ms-flex:0 0 83.333333%;flex:0 0 83.333333%;max-width:83.333333%}.col-sm-11{-ms-flex:0 0 91.666667%;flex:0 0 91.666667%;max-width:91.666667%}.col-sm-12{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.order-sm-first{-ms-flex-order:-1;order:-1}.order-sm-last{-ms-flex-order:13;order:13}.order-sm-0{-ms-flex-order:0;order:0}.order-sm-1{-ms-flex-order:1;order:1}.order-sm-2{-ms-flex-order:2;order:2}.order-sm-3{-ms-flex-order:3;order:3}.order-sm-4{-ms-flex-order:4;order:4}.order-sm-5{-ms-flex-order:5;order:5}.order-sm-6{-ms-flex-order:6;order:6}.order-sm-7{-ms-flex-order:7;order:7}.order-sm-8{-ms-flex-order:8;order:8}.order-sm-9{-ms-flex-order:9;order:9}.order-sm-10{-ms-flex-order:10;order:10}.order-sm-11{-ms-flex-order:11;order:11}.order-sm-12{-ms-flex-order:12;order:12}.offset-sm-0{margin-left:0}.offset-sm-1{margin-left:8.333333%}.offset-sm-2{margin-left:16.666667%}.offset-sm-3{margin-left:25%}.offset-sm-4{margin-left:33.333333%}.offset-sm-5{margin-left:41.666667%}.offset-sm-6{margin-left:50%}.offset-sm-7{margin-left:58.333333%}.offset-sm-8{margin-left:66.666667%}.offset-sm-9{margin-left:75%}.offset-sm-10{margin-left:83.333333%}.offset-sm-11{margin-left:91.666667%}}@media (min-width:768px){.col-md{-ms-flex-preferred-size:0;flex-basis:0;-ms-flex-positive:1;flex-grow:1;max-width:100%}.col-md-auto{-ms-flex:0 0 auto;flex:0 0 auto;width:auto;max-width:none}.col-md-1{-ms-flex:0 0 8.333333%;flex:0 0 8.333333%;max-width:8.333333%}.col-md-2{-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-md-3{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.col-md-4{-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.col-md-5{-ms-flex:0 0 41.666667%;flex:0 0 41.666667%;max-width:41.666667%}.col-md-6{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.col-md-7{-ms-flex:0 0 58.333333%;flex:0 0 58.333333%;max-width:58.333333%}.col-md-8{-ms-flex:0 0 66.666667%;flex:0 0 66.666667%;max-width:66.666667%}.col-md-9{-ms-flex:0 0 75%;flex:0 0 75%;max-width:75%}.col-md-10{-ms-flex:0 0 83.333333%;flex:0 0 83.333333%;max-width:83.333333%}.col-md-11{-ms-flex:0 0 91.666667%;flex:0 0 91.666667%;max-width:91.666667%}.col-md-12{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.order-md-first{-ms-flex-order:-1;order:-1}.order-md-last{-ms-flex-order:13;order:13}.order-md-0{-ms-flex-order:0;order:0}.order-md-1{-ms-flex-order:1;order:1}.order-md-2{-ms-flex-order:2;order:2}.order-md-3{-ms-flex-order:3;order:3}.order-md-4{-ms-flex-order:4;order:4}.order-md-5{-ms-flex-order:5;order:5}.order-md-6{-ms-flex-order:6;order:6}.order-md-7{-ms-flex-order:7;order:7}.order-md-8{-ms-flex-order:8;order:8}.order-md-9{-ms-flex-order:9;order:9}.order-md-10{-ms-flex-order:10;order:10}.order-md-11{-ms-flex-order:11;order:11}.order-md-12{-ms-flex-order:12;order:12}.offset-md-0{margin-left:0}.offset-md-1{margin-left:8.333333%}.offset-md-2{margin-left:16.666667%}.offset-md-3{margin-left:25%}.offset-md-4{margin-left:33.333333%}.offset-md-5{margin-left:41.666667%}.offset-md-6{margin-left:50%}.offset-md-7{margin-left:58.333333%}.offset-md-8{margin-left:66.666667%}.offset-md-9{margin-left:75%}.offset-md-10{margin-left:83.333333%}.offset-md-11{margin-left:91.666667%}}@media (min-width:992px){.col-lg{-ms-flex-preferred-size:0;flex-basis:0;-ms-flex-positive:1;flex-grow:1;max-width:100%}.col-lg-auto{-ms-flex:0 0 auto;flex:0 0 auto;width:auto;max-width:none}.col-lg-1{-ms-flex:0 0 8.333333%;flex:0 0 8.333333%;max-width:8.333333%}.col-lg-2{-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-lg-3{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.col-lg-4{-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.col-lg-5{-ms-flex:0 0 41.666667%;flex:0 0 41.666667%;max-width:41.666667%}.col-lg-6{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.col-lg-7{-ms-flex:0 0 58.333333%;flex:0 0 58.333333%;max-width:58.333333%}.col-lg-8{-ms-flex:0 0 66.666667%;flex:0 0 66.666667%;max-width:66.666667%}.col-lg-9{-ms-flex:0 0 75%;flex:0 0 75%;max-width:75%}.col-lg-10{-ms-flex:0 0 83.333333%;flex:0 0 83.333333%;max-width:83.333333%}.col-lg-11{-ms-flex:0 0 91.666667%;flex:0 0 91.666667%;max-width:91.666667%}.col-lg-12{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.order-lg-first{-ms-flex-order:-1;order:-1}.order-lg-last{-ms-flex-order:13;order:13}.order-lg-0{-ms-flex-order:0;order:0}.order-lg-1{-ms-flex-order:1;order:1}.order-lg-2{-ms-flex-order:2;order:2}.order-lg-3{-ms-flex-order:3;order:3}.order-lg-4{-ms-flex-order:4;order:4}.order-lg-5{-ms-flex-order:5;order:5}.order-lg-6{-ms-flex-order:6;order:6}.order-lg-7{-ms-flex-order:7;order:7}.order-lg-8{-ms-flex-order:8;order:8}.order-lg-9{-ms-flex-order:9;order:9}.order-lg-10{-ms-flex-order:10;order:10}.order-lg-11{-ms-flex-order:11;order:11}.order-lg-12{-ms-flex-order:12;order:12}.offset-lg-0{margin-left:0}.offset-lg-1{margin-left:8.333333%}.offset-lg-2{margin-left:16.666667%}.offset-lg-3{margin-left:25%}.offset-lg-4{margin-left:33.333333%}.offset-lg-5{margin-left:41.666667%}.offset-lg-6{margin-left:50%}.offset-lg-7{margin-left:58.333333%}.offset-lg-8{margin-left:66.666667%}.offset-lg-9{margin-left:75%}.offset-lg-10{margin-left:83.333333%}.offset-lg-11{margin-left:91.666667%}}@media (min-width:1200px){.col-xl{-ms-flex-preferred-size:0;flex-basis:0;-ms-flex-positive:1;flex-grow:1;max-width:100%}.col-xl-auto{-ms-flex:0 0 auto;flex:0 0 auto;width:auto;max-width:none}.col-xl-1{-ms-flex:0 0 8.333333%;flex:0 0 8.333333%;max-width:8.333333%}.col-xl-2{-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-xl-3{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.col-xl-4{-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.col-xl-5{-ms-flex:0 0 41.666667%;flex:0 0 41.666667%;max-width:41.666667%}.col-xl-6{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.col-xl-7{-ms-flex:0 0 58.333333%;flex:0 0 58.333333%;max-width:58.333333%}.col-xl-8{-ms-flex:0 0 66.666667%;flex:0 0 66.666667%;max-width:66.666667%}.col-xl-9{-ms-flex:0 0 75%;flex:0 0 75%;max-width:75%}.col-xl-10{-ms-flex:0 0 83.333333%;flex:0 0 83.333333%;max-width:83.333333%}.col-xl-11{-ms-flex:0 0 91.666667%;flex:0 0 91.666667%;max-width:91.666667%}.col-xl-12{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.order-xl-first{-ms-flex-order:-1;order:-1}.order-xl-last{-ms-flex-order:13;order:13}.order-xl-0{-ms-flex-order:0;order:0}.order-xl-1{-ms-flex-order:1;order:1}.order-xl-2{-ms-flex-order:2;order:2}.order-xl-3{-ms-flex-order:3;order:3}.order-xl-4{-ms-flex-order:4;order:4}.order-xl-5{-ms-flex-order:5;order:5}.order-xl-6{-ms-flex-order:6;order:6}.order-xl-7{-ms-flex-order:7;order:7}.order-xl-8{-ms-flex-order:8;order:8}.order-xl-9{-ms-flex-order:9;order:9}.order-xl-10{-ms-flex-order:10;order:10}.order-xl-11{-ms-flex-order:11;order:11}.order-xl-12{-ms-flex-order:12;order:12}.offset-xl-0{margin-left:0}.offset-xl-1{margin-left:8.333333%}.offset-xl-2{margin-left:16.666667%}.offset-xl-3{margin-left:25%}.offset-xl-4{margin-left:33.333333%}.offset-xl-5{margin-left:41.666667%}.offset-xl-6{margin-left:50%}.offset-xl-7{margin-left:58.333333%}.offset-xl-8{margin-left:66.666667%}.offset-xl-9{margin-left:75%}.offset-xl-10{margin-left:83.333333%}.offset-xl-11{margin-left:91.666667%}}.table{width:100%;margin-bottom:1rem;background-color:transparent}.table td,.table th{padding:.75rem;vertical-align:top;border-top:1px solid #dee2e6}.table thead th{vertical-align:bottom;border-bottom:2px solid #dee2e6}.table tbody+tbody{border-top:2px solid #dee2e6}.table .table{background-color:#fff}.table-sm td,.table-sm th{padding:.3rem}.table-bordered{border:1px solid #dee2e6}.table-bordered td,.table-bordered th{border:1px solid #dee2e6}.table-bordered thead td,.table-bordered thead th{border-bottom-width:2px}.table-borderless tbody+tbody,.table-borderless td,.table-borderless th,.table-borderless thead th{border:0}.table-striped tbody tr:nth-of-type(odd){background-color:rgba(0,0,0,.05)}.table-hover tbody tr:hover{background-color:rgba(0,0,0,.075)}.table-primary,.table-primary>td,.table-primary>th{background-color:#b8daff}.table-hover .table-primary:hover{background-color:#9fcdff}.table-hover .table-primary:hover>td,.table-hover .table-primary:hover>th{background-color:#9fcdff}.table-secondary,.table-secondary>td,.table-secondary>th{background-color:#d6d8db}.table-hover .table-secondary:hover{background-color:#c8cbcf}.table-hover .table-secondary:hover>td,.table-hover .table-secondary:hover>th{background-color:#c8cbcf}.table-success,.table-success>td,.table-success>th{background-color:#c3e6cb}.table-hover .table-success:hover{background-color:#b1dfbb}.table-hover .table-success:hover>td,.table-hover .table-success:hover>th{background-color:#b1dfbb}.table-info,.table-info>td,.table-info>th{background-color:#bee5eb}.table-hover .table-info:hover{background-color:#abdde5}.table-hover .table-info:hover>td,.table-hover .table-info:hover>th{background-color:#abdde5}.table-warning,.table-warning>td,.table-warning>th{background-color:#ffeeba}.table-hover .table-warning:hover{background-color:#ffe8a1}.table-hover .table-warning:hover>td,.table-hover .table-warning:hover>th{background-color:#ffe8a1}.table-danger,.table-danger>td,.table-danger>th{background-color:#f5c6cb}.table-hover .table-danger:hover{background-color:#f1b0b7}.table-hover .table-danger:hover>td,.table-hover .table-danger:hover>th{background-color:#f1b0b7}.table-light,.table-light>td,.table-light>th{background-color:#fdfdfe}.table-hover .table-light:hover{background-color:#ececf6}.table-hover .table-light:hover>td,.table-hover .table-light:hover>th{background-color:#ececf6}.table-dark,.table-dark>td,.table-dark>th{background-color:#c6c8ca}.table-hover .table-dark:hover{background-color:#b9bbbe}.table-hover .table-dark:hover>td,.table-hover .table-dark:hover>th{background-color:#b9bbbe}.table-active,.table-active>td,.table-active>th{background-color:rgba(0,0,0,.075)}.table-hover .table-active:hover{background-color:rgba(0,0,0,.075)}.table-hover .table-active:hover>td,.table-hover .table-active:hover>th{background-color:rgba(0,0,0,.075)}.table .thead-dark th{color:#fff;background-color:#212529;border-color:#32383e}.table .thead-light th{color:#495057;background-color:#e9ecef;border-color:#dee2e6}.table-dark{color:#fff;background-color:#212529}.table-dark td,.table-dark th,.table-dark thead th{border-color:#32383e}.table-dark.table-bordered{border:0}.table-dark.table-striped tbody tr:nth-of-type(odd){background-color:rgba(255,255,255,.05)}.table-dark.table-hover tbody tr:hover{background-color:rgba(255,255,255,.075)}@media (max-width:575.98px){.table-responsive-sm{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;-ms-overflow-style:-ms-autohiding-scrollbar}.table-responsive-sm>.table-bordered{border:0}}@media (max-width:767.98px){.table-responsive-md{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;-ms-overflow-style:-ms-autohiding-scrollbar}.table-responsive-md>.table-bordered{border:0}}@media (max-width:991.98px){.table-responsive-lg{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;-ms-overflow-style:-ms-autohiding-scrollbar}.table-responsive-lg>.table-bordered{border:0}}@media (max-width:1199.98px){.table-responsive-xl{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;-ms-overflow-style:-ms-autohiding-scrollbar}.table-responsive-xl>.table-bordered{border:0}}.table-responsive{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;-ms-overflow-style:-ms-autohiding-scrollbar}.table-responsive>.table-bordered{border:0}.form-control{display:block;width:100%;height:calc(2.25rem + 2px);padding:.375rem .75rem;font-size:1rem;line-height:1.5;color:#495057;background-color:#fff;background-clip:padding-box;border:1px solid #ced4da;border-radius:.25rem;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media screen and (prefers-reduced-motion:reduce){.form-control{transition:none}}.form-control::-ms-expand{background-color:transparent;border:0}.form-control:focus{color:#495057;background-color:#fff;border-color:#80bdff;outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.form-control::-webkit-input-placeholder{color:#6c757d;opacity:1}.form-control::-moz-placeholder{color:#6c757d;opacity:1}.form-control:-ms-input-placeholder{color:#6c757d;opacity:1}.form-control::-ms-input-placeholder{color:#6c757d;opacity:1}.form-control::placeholder{color:#6c757d;opacity:1}.form-control:disabled,.form-control[readonly]{background-color:#e9ecef;opacity:1}select.form-control:focus::-ms-value{color:#495057;background-color:#fff}.form-control-file,.form-control-range{display:block;width:100%}.col-form-label{padding-top:calc(.375rem + 1px);padding-bottom:calc(.375rem + 1px);margin-bottom:0;font-size:inherit;line-height:1.5}.col-form-label-lg{padding-top:calc(.5rem + 1px);padding-bottom:calc(.5rem + 1px);font-size:1.25rem;line-height:1.5}.col-form-label-sm{padding-top:calc(.25rem + 1px);padding-bottom:calc(.25rem + 1px);font-size:.875rem;line-height:1.5}.form-control-plaintext{display:block;width:100%;padding-top:.375rem;padding-bottom:.375rem;margin-bottom:0;line-height:1.5;color:#212529;background-color:transparent;border:solid transparent;border-width:1px 0}.form-control-plaintext.form-control-lg,.form-control-plaintext.form-control-sm{padding-right:0;padding-left:0}.form-control-sm{height:calc(1.8125rem + 2px);padding:.25rem .5rem;font-size:.875rem;line-height:1.5;border-radius:.2rem}.form-control-lg{height:calc(2.875rem + 2px);padding:.5rem 1rem;font-size:1.25rem;line-height:1.5;border-radius:.3rem}select.form-control[multiple],select.form-control[size]{height:auto}textarea.form-control{height:auto}.form-group{margin-bottom:1rem}.form-text{display:block;margin-top:.25rem}.form-row{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;margin-right:-5px;margin-left:-5px}.form-row>.col,.form-row>[class*=col-]{padding-right:5px;padding-left:5px}.form-check{position:relative;display:block;padding-left:1.25rem}.form-check-input{position:absolute;margin-top:.3rem;margin-left:-1.25rem}.form-check-input:disabled~.form-check-label{color:#6c757d}.form-check-label{margin-bottom:0}.form-check-inline{display:-ms-inline-flexbox;display:inline-flex;-ms-flex-align:center;align-items:center;padding-left:0;margin-right:.75rem}.form-check-inline .form-check-input{position:static;margin-top:0;margin-right:.3125rem;margin-left:0}.valid-feedback{display:none;width:100%;margin-top:.25rem;font-size:80%;color:#28a745}.valid-tooltip{position:absolute;top:100%;z-index:5;display:none;max-width:100%;padding:.25rem .5rem;margin-top:.1rem;font-size:.875rem;line-height:1.5;color:#fff;background-color:rgba(40,167,69,.9);border-radius:.25rem}.custom-select.is-valid,.form-control.is-valid,.was-validated .custom-select:valid,.was-validated .form-control:valid{border-color:#28a745}.custom-select.is-valid:focus,.form-control.is-valid:focus,.was-validated .custom-select:valid:focus,.was-validated .form-control:valid:focus{border-color:#28a745;box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.custom-select.is-valid~.valid-feedback,.custom-select.is-valid~.valid-tooltip,.form-control.is-valid~.valid-feedback,.form-control.is-valid~.valid-tooltip,.was-validated .custom-select:valid~.valid-feedback,.was-validated .custom-select:valid~.valid-tooltip,.was-validated .form-control:valid~.valid-feedback,.was-validated .form-control:valid~.valid-tooltip{display:block}.form-control-file.is-valid~.valid-feedback,.form-control-file.is-valid~.valid-tooltip,.was-validated .form-control-file:valid~.valid-feedback,.was-validated .form-control-file:valid~.valid-tooltip{display:block}.form-check-input.is-valid~.form-check-label,.was-validated .form-check-input:valid~.form-check-label{color:#28a745}.form-check-input.is-valid~.valid-feedback,.form-check-input.is-valid~.valid-tooltip,.was-validated .form-check-input:valid~.valid-feedback,.was-validated .form-check-input:valid~.valid-tooltip{display:block}.custom-control-input.is-valid~.custom-control-label,.was-validated .custom-control-input:valid~.custom-control-label{color:#28a745}.custom-control-input.is-valid~.custom-control-label::before,.was-validated .custom-control-input:valid~.custom-control-label::before{background-color:#71dd8a}.custom-control-input.is-valid~.valid-feedback,.custom-control-input.is-valid~.valid-tooltip,.was-validated .custom-control-input:valid~.valid-feedback,.was-validated .custom-control-input:valid~.valid-tooltip{display:block}.custom-control-input.is-valid:checked~.custom-control-label::before,.was-validated .custom-control-input:valid:checked~.custom-control-label::before{background-color:#34ce57}.custom-control-input.is-valid:focus~.custom-control-label::before,.was-validated .custom-control-input:valid:focus~.custom-control-label::before{box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(40,167,69,.25)}.custom-file-input.is-valid~.custom-file-label,.was-validated .custom-file-input:valid~.custom-file-label{border-color:#28a745}.custom-file-input.is-valid~.custom-file-label::after,.was-validated .custom-file-input:valid~.custom-file-label::after{border-color:inherit}.custom-file-input.is-valid~.valid-feedback,.custom-file-input.is-valid~.valid-tooltip,.was-validated .custom-file-input:valid~.valid-feedback,.was-validated .custom-file-input:valid~.valid-tooltip{display:block}.custom-file-input.is-valid:focus~.custom-file-label,.was-validated .custom-file-input:valid:focus~.custom-file-label{box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.invalid-feedback{display:none;width:100%;margin-top:.25rem;font-size:80%;color:#dc3545}.invalid-tooltip{position:absolute;top:100%;z-index:5;display:none;max-width:100%;padding:.25rem .5rem;margin-top:.1rem;font-size:.875rem;line-height:1.5;color:#fff;background-color:rgba(220,53,69,.9);border-radius:.25rem}.custom-select.is-invalid,.form-control.is-invalid,.was-validated .custom-select:invalid,.was-validated .form-control:invalid{border-color:#dc3545}.custom-select.is-invalid:focus,.form-control.is-invalid:focus,.was-validated .custom-select:invalid:focus,.was-validated .form-control:invalid:focus{border-color:#dc3545;box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}.custom-select.is-invalid~.invalid-feedback,.custom-select.is-invalid~.invalid-tooltip,.form-control.is-invalid~.invalid-feedback,.form-control.is-invalid~.invalid-tooltip,.was-validated .custom-select:invalid~.invalid-feedback,.was-validated .custom-select:invalid~.invalid-tooltip,.was-validated .form-control:invalid~.invalid-feedback,.was-validated .form-control:invalid~.invalid-tooltip{display:block}.form-control-file.is-invalid~.invalid-feedback,.form-control-file.is-invalid~.invalid-tooltip,.was-validated .form-control-file:invalid~.invalid-feedback,.was-validated .form-control-file:invalid~.invalid-tooltip{display:block}.form-check-input.is-invalid~.form-check-label,.was-validated .form-check-input:invalid~.form-check-label{color:#dc3545}.form-check-input.is-invalid~.invalid-feedback,.form-check-input.is-invalid~.invalid-tooltip,.was-validated .form-check-input:invalid~.invalid-feedback,.was-validated .form-check-input:invalid~.invalid-tooltip{display:block}.custom-control-input.is-invalid~.custom-control-label,.was-validated .custom-control-input:invalid~.custom-control-label{color:#dc3545}.custom-control-input.is-invalid~.custom-control-label::before,.was-validated .custom-control-input:invalid~.custom-control-label::before{background-color:#efa2a9}.custom-control-input.is-invalid~.invalid-feedback,.custom-control-input.is-invalid~.invalid-tooltip,.was-validated .custom-control-input:invalid~.invalid-feedback,.was-validated .custom-control-input:invalid~.invalid-tooltip{display:block}.custom-control-input.is-invalid:checked~.custom-control-label::before,.was-validated .custom-control-input:invalid:checked~.custom-control-label::before{background-color:#e4606d}.custom-control-input.is-invalid:focus~.custom-control-label::before,.was-validated .custom-control-input:invalid:focus~.custom-control-label::before{box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(220,53,69,.25)}.custom-file-input.is-invalid~.custom-file-label,.was-validated .custom-file-input:invalid~.custom-file-label{border-color:#dc3545}.custom-file-input.is-invalid~.custom-file-label::after,.was-validated .custom-file-input:invalid~.custom-file-label::after{border-color:inherit}.custom-file-input.is-invalid~.invalid-feedback,.custom-file-input.is-invalid~.invalid-tooltip,.was-validated .custom-file-input:invalid~.invalid-feedback,.was-validated .custom-file-input:invalid~.invalid-tooltip{display:block}.custom-file-input.is-invalid:focus~.custom-file-label,.was-validated .custom-file-input:invalid:focus~.custom-file-label{box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}.form-inline{display:-ms-flexbox;display:flex;-ms-flex-flow:row wrap;flex-flow:row wrap;-ms-flex-align:center;align-items:center}.form-inline .form-check{width:100%}@media (min-width:576px){.form-inline label{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;margin-bottom:0}.form-inline .form-group{display:-ms-flexbox;display:flex;-ms-flex:0 0 auto;flex:0 0 auto;-ms-flex-flow:row wrap;flex-flow:row wrap;-ms-flex-align:center;align-items:center;margin-bottom:0}.form-inline .form-control{display:inline-block;width:auto;vertical-align:middle}.form-inline .form-control-plaintext{display:inline-block}.form-inline .custom-select,.form-inline .input-group{width:auto}.form-inline .form-check{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;width:auto;padding-left:0}.form-inline .form-check-input{position:relative;margin-top:0;margin-right:.25rem;margin-left:0}.form-inline .custom-control{-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center}.form-inline .custom-control-label{margin-bottom:0}}.btn{display:inline-block;font-weight:400;text-align:center;white-space:nowrap;vertical-align:middle;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;border:1px solid transparent;padding:.375rem .75rem;font-size:1rem;line-height:1.5;border-radius:.25rem;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media screen and (prefers-reduced-motion:reduce){.btn{transition:none}}.btn:focus,.btn:hover{text-decoration:none}.btn.focus,.btn:focus{outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.btn.disabled,.btn:disabled{opacity:.65}.btn:not(:disabled):not(.disabled){cursor:pointer}a.btn.disabled,fieldset:disabled a.btn{pointer-events:none}.btn-primary{color:#fff;background-color:#007bff;border-color:#007bff}.btn-primary:hover{color:#fff;background-color:#0069d9;border-color:#0062cc}.btn-primary.focus,.btn-primary:focus{box-shadow:0 0 0 .2rem rgba(0,123,255,.5)}.btn-primary.disabled,.btn-primary:disabled{color:#fff;background-color:#007bff;border-color:#007bff}.btn-primary:not(:disabled):not(.disabled).active,.btn-primary:not(:disabled):not(.disabled):active,.show>.btn-primary.dropdown-toggle{color:#fff;background-color:#0062cc;border-color:#005cbf}.btn-primary:not(:disabled):not(.disabled).active:focus,.btn-primary:not(:disabled):not(.disabled):active:focus,.show>.btn-primary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(0,123,255,.5)}.btn-secondary{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-secondary:hover{color:#fff;background-color:#5a6268;border-color:#545b62}.btn-secondary.focus,.btn-secondary:focus{box-shadow:0 0 0 .2rem rgba(108,117,125,.5)}.btn-secondary.disabled,.btn-secondary:disabled{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-secondary:not(:disabled):not(.disabled).active,.btn-secondary:not(:disabled):not(.disabled):active,.show>.btn-secondary.dropdown-toggle{color:#fff;background-color:#545b62;border-color:#4e555b}.btn-secondary:not(:disabled):not(.disabled).active:focus,.btn-secondary:not(:disabled):not(.disabled):active:focus,.show>.btn-secondary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(108,117,125,.5)}.btn-success{color:#fff;background-color:#28a745;border-color:#28a745}.btn-success:hover{color:#fff;background-color:#218838;border-color:#1e7e34}.btn-success.focus,.btn-success:focus{box-shadow:0 0 0 .2rem rgba(40,167,69,.5)}.btn-success.disabled,.btn-success:disabled{color:#fff;background-color:#28a745;border-color:#28a745}.btn-success:not(:disabled):not(.disabled).active,.btn-success:not(:disabled):not(.disabled):active,.show>.btn-success.dropdown-toggle{color:#fff;background-color:#1e7e34;border-color:#1c7430}.btn-success:not(:disabled):not(.disabled).active:focus,.btn-success:not(:disabled):not(.disabled):active:focus,.show>.btn-success.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(40,167,69,.5)}.btn-info{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-info:hover{color:#fff;background-color:#138496;border-color:#117a8b}.btn-info.focus,.btn-info:focus{box-shadow:0 0 0 .2rem rgba(23,162,184,.5)}.btn-info.disabled,.btn-info:disabled{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-info:not(:disabled):not(.disabled).active,.btn-info:not(:disabled):not(.disabled):active,.show>.btn-info.dropdown-toggle{color:#fff;background-color:#117a8b;border-color:#10707f}.btn-info:not(:disabled):not(.disabled).active:focus,.btn-info:not(:disabled):not(.disabled):active:focus,.show>.btn-info.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(23,162,184,.5)}.btn-warning{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-warning:hover{color:#212529;background-color:#e0a800;border-color:#d39e00}.btn-warning.focus,.btn-warning:focus{box-shadow:0 0 0 .2rem rgba(255,193,7,.5)}.btn-warning.disabled,.btn-warning:disabled{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-warning:not(:disabled):not(.disabled).active,.btn-warning:not(:disabled):not(.disabled):active,.show>.btn-warning.dropdown-toggle{color:#212529;background-color:#d39e00;border-color:#c69500}.btn-warning:not(:disabled):not(.disabled).active:focus,.btn-warning:not(:disabled):not(.disabled):active:focus,.show>.btn-warning.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(255,193,7,.5)}.btn-danger{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-danger:hover{color:#fff;background-color:#c82333;border-color:#bd2130}.btn-danger.focus,.btn-danger:focus{box-shadow:0 0 0 .2rem rgba(220,53,69,.5)}.btn-danger.disabled,.btn-danger:disabled{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-danger:not(:disabled):not(.disabled).active,.btn-danger:not(:disabled):not(.disabled):active,.show>.btn-danger.dropdown-toggle{color:#fff;background-color:#bd2130;border-color:#b21f2d}.btn-danger:not(:disabled):not(.disabled).active:focus,.btn-danger:not(:disabled):not(.disabled):active:focus,.show>.btn-danger.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(220,53,69,.5)}.btn-light{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-light:hover{color:#212529;background-color:#e2e6ea;border-color:#dae0e5}.btn-light.focus,.btn-light:focus{box-shadow:0 0 0 .2rem rgba(248,249,250,.5)}.btn-light.disabled,.btn-light:disabled{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-light:not(:disabled):not(.disabled).active,.btn-light:not(:disabled):not(.disabled):active,.show>.btn-light.dropdown-toggle{color:#212529;background-color:#dae0e5;border-color:#d3d9df}.btn-light:not(:disabled):not(.disabled).active:focus,.btn-light:not(:disabled):not(.disabled):active:focus,.show>.btn-light.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(248,249,250,.5)}.btn-dark{color:#fff;background-color:#343a40;border-color:#343a40}.btn-dark:hover{color:#fff;background-color:#23272b;border-color:#1d2124}.btn-dark.focus,.btn-dark:focus{box-shadow:0 0 0 .2rem rgba(52,58,64,.5)}.btn-dark.disabled,.btn-dark:disabled{color:#fff;background-color:#343a40;border-color:#343a40}.btn-dark:not(:disabled):not(.disabled).active,.btn-dark:not(:disabled):not(.disabled):active,.show>.btn-dark.dropdown-toggle{color:#fff;background-color:#1d2124;border-color:#171a1d}.btn-dark:not(:disabled):not(.disabled).active:focus,.btn-dark:not(:disabled):not(.disabled):active:focus,.show>.btn-dark.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(52,58,64,.5)}.btn-outline-primary{color:#007bff;background-color:transparent;background-image:none;border-color:#007bff}.btn-outline-primary:hover{color:#fff;background-color:#007bff;border-color:#007bff}.btn-outline-primary.focus,.btn-outline-primary:focus{box-shadow:0 0 0 .2rem rgba(0,123,255,.5)}.btn-outline-primary.disabled,.btn-outline-primary:disabled{color:#007bff;background-color:transparent}.btn-outline-primary:not(:disabled):not(.disabled).active,.btn-outline-primary:not(:disabled):not(.disabled):active,.show>.btn-outline-primary.dropdown-toggle{color:#fff;background-color:#007bff;border-color:#007bff}.btn-outline-primary:not(:disabled):not(.disabled).active:focus,.btn-outline-primary:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-primary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(0,123,255,.5)}.btn-outline-secondary{color:#6c757d;background-color:transparent;background-image:none;border-color:#6c757d}.btn-outline-secondary:hover{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-outline-secondary.focus,.btn-outline-secondary:focus{box-shadow:0 0 0 .2rem rgba(108,117,125,.5)}.btn-outline-secondary.disabled,.btn-outline-secondary:disabled{color:#6c757d;background-color:transparent}.btn-outline-secondary:not(:disabled):not(.disabled).active,.btn-outline-secondary:not(:disabled):not(.disabled):active,.show>.btn-outline-secondary.dropdown-toggle{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-outline-secondary:not(:disabled):not(.disabled).active:focus,.btn-outline-secondary:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-secondary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(108,117,125,.5)}.btn-outline-success{color:#28a745;background-color:transparent;background-image:none;border-color:#28a745}.btn-outline-success:hover{color:#fff;background-color:#28a745;border-color:#28a745}.btn-outline-success.focus,.btn-outline-success:focus{box-shadow:0 0 0 .2rem rgba(40,167,69,.5)}.btn-outline-success.disabled,.btn-outline-success:disabled{color:#28a745;background-color:transparent}.btn-outline-success:not(:disabled):not(.disabled).active,.btn-outline-success:not(:disabled):not(.disabled):active,.show>.btn-outline-success.dropdown-toggle{color:#fff;background-color:#28a745;border-color:#28a745}.btn-outline-success:not(:disabled):not(.disabled).active:focus,.btn-outline-success:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-success.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(40,167,69,.5)}.btn-outline-info{color:#17a2b8;background-color:transparent;background-image:none;border-color:#17a2b8}.btn-outline-info:hover{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-outline-info.focus,.btn-outline-info:focus{box-shadow:0 0 0 .2rem rgba(23,162,184,.5)}.btn-outline-info.disabled,.btn-outline-info:disabled{color:#17a2b8;background-color:transparent}.btn-outline-info:not(:disabled):not(.disabled).active,.btn-outline-info:not(:disabled):not(.disabled):active,.show>.btn-outline-info.dropdown-toggle{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-outline-info:not(:disabled):not(.disabled).active:focus,.btn-outline-info:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-info.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(23,162,184,.5)}.btn-outline-warning{color:#ffc107;background-color:transparent;background-image:none;border-color:#ffc107}.btn-outline-warning:hover{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-outline-warning.focus,.btn-outline-warning:focus{box-shadow:0 0 0 .2rem rgba(255,193,7,.5)}.btn-outline-warning.disabled,.btn-outline-warning:disabled{color:#ffc107;background-color:transparent}.btn-outline-warning:not(:disabled):not(.disabled).active,.btn-outline-warning:not(:disabled):not(.disabled):active,.show>.btn-outline-warning.dropdown-toggle{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-outline-warning:not(:disabled):not(.disabled).active:focus,.btn-outline-warning:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-warning.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(255,193,7,.5)}.btn-outline-danger{color:#dc3545;background-color:transparent;background-image:none;border-color:#dc3545}.btn-outline-danger:hover{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-outline-danger.focus,.btn-outline-danger:focus{box-shadow:0 0 0 .2rem rgba(220,53,69,.5)}.btn-outline-danger.disabled,.btn-outline-danger:disabled{color:#dc3545;background-color:transparent}.btn-outline-danger:not(:disabled):not(.disabled).active,.btn-outline-danger:not(:disabled):not(.disabled):active,.show>.btn-outline-danger.dropdown-toggle{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-outline-danger:not(:disabled):not(.disabled).active:focus,.btn-outline-danger:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-danger.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(220,53,69,.5)}.btn-outline-light{color:#f8f9fa;background-color:transparent;background-image:none;border-color:#f8f9fa}.btn-outline-light:hover{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-outline-light.focus,.btn-outline-light:focus{box-shadow:0 0 0 .2rem rgba(248,249,250,.5)}.btn-outline-light.disabled,.btn-outline-light:disabled{color:#f8f9fa;background-color:transparent}.btn-outline-light:not(:disabled):not(.disabled).active,.btn-outline-light:not(:disabled):not(.disabled):active,.show>.btn-outline-light.dropdown-toggle{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-outline-light:not(:disabled):not(.disabled).active:focus,.btn-outline-light:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-light.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(248,249,250,.5)}.btn-outline-dark{color:#343a40;background-color:transparent;background-image:none;border-color:#343a40}.btn-outline-dark:hover{color:#fff;background-color:#343a40;border-color:#343a40}.btn-outline-dark.focus,.btn-outline-dark:focus{box-shadow:0 0 0 .2rem rgba(52,58,64,.5)}.btn-outline-dark.disabled,.btn-outline-dark:disabled{color:#343a40;background-color:transparent}.btn-outline-dark:not(:disabled):not(.disabled).active,.btn-outline-dark:not(:disabled):not(.disabled):active,.show>.btn-outline-dark.dropdown-toggle{color:#fff;background-color:#343a40;border-color:#343a40}.btn-outline-dark:not(:disabled):not(.disabled).active:focus,.btn-outline-dark:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-dark.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(52,58,64,.5)}.btn-link{font-weight:400;color:#007bff;background-color:transparent}.btn-link:hover{color:#0056b3;text-decoration:underline;background-color:transparent;border-color:transparent}.btn-link.focus,.btn-link:focus{text-decoration:underline;border-color:transparent;box-shadow:none}.btn-link.disabled,.btn-link:disabled{color:#6c757d;pointer-events:none}.btn-group-lg>.btn,.btn-lg{padding:.5rem 1rem;font-size:1.25rem;line-height:1.5;border-radius:.3rem}.btn-group-sm>.btn,.btn-sm{padding:.25rem .5rem;font-size:.875rem;line-height:1.5;border-radius:.2rem}.btn-block{display:block;width:100%}.btn-block+.btn-block{margin-top:.5rem}input[type=button].btn-block,input[type=reset].btn-block,input[type=submit].btn-block{width:100%}.fade{transition:opacity .15s linear}@media screen and (prefers-reduced-motion:reduce){.fade{transition:none}}.fade:not(.show){opacity:0}.collapse:not(.show){display:none}.collapsing{position:relative;height:0;overflow:hidden;transition:height .35s ease}@media screen and (prefers-reduced-motion:reduce){.collapsing{transition:none}}.dropdown,.dropleft,.dropright,.dropup{position:relative}.dropdown-toggle::after{display:inline-block;width:0;height:0;margin-left:.255em;vertical-align:.255em;content:"";border-top:.3em solid;border-right:.3em solid transparent;border-bottom:0;border-left:.3em solid transparent}.dropdown-toggle:empty::after{margin-left:0}.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:10rem;padding:.5rem 0;margin:.125rem 0 0;font-size:1rem;color:#212529;text-align:left;list-style:none;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.15);border-radius:.25rem}.dropdown-menu-right{right:0;left:auto}.dropup .dropdown-menu{top:auto;bottom:100%;margin-top:0;margin-bottom:.125rem}.dropup .dropdown-toggle::after{display:inline-block;width:0;height:0;margin-left:.255em;vertical-align:.255em;content:"";border-top:0;border-right:.3em solid transparent;border-bottom:.3em solid;border-left:.3em solid transparent}.dropup .dropdown-toggle:empty::after{margin-left:0}.dropright .dropdown-menu{top:0;right:auto;left:100%;margin-top:0;margin-left:.125rem}.dropright .dropdown-toggle::after{display:inline-block;width:0;height:0;margin-left:.255em;vertical-align:.255em;content:"";border-top:.3em solid transparent;border-right:0;border-bottom:.3em solid transparent;border-left:.3em solid}.dropright .dropdown-toggle:empty::after{margin-left:0}.dropright .dropdown-toggle::after{vertical-align:0}.dropleft .dropdown-menu{top:0;right:100%;left:auto;margin-top:0;margin-right:.125rem}.dropleft .dropdown-toggle::after{display:inline-block;width:0;height:0;margin-left:.255em;vertical-align:.255em;content:""}.dropleft .dropdown-toggle::after{display:none}.dropleft .dropdown-toggle::before{display:inline-block;width:0;height:0;margin-right:.255em;vertical-align:.255em;content:"";border-top:.3em solid transparent;border-right:.3em solid;border-bottom:.3em solid transparent}.dropleft .dropdown-toggle:empty::after{margin-left:0}.dropleft .dropdown-toggle::before{vertical-align:0}.dropdown-menu[x-placement^=bottom],.dropdown-menu[x-placement^=left],.dropdown-menu[x-placement^=right],.dropdown-menu[x-placement^=top]{right:auto;bottom:auto}.dropdown-divider{height:0;margin:.5rem 0;overflow:hidden;border-top:1px solid #e9ecef}.dropdown-item{display:block;width:100%;padding:.25rem 1.5rem;clear:both;font-weight:400;color:#212529;text-align:inherit;white-space:nowrap;background-color:transparent;border:0}.dropdown-item:focus,.dropdown-item:hover{color:#16181b;text-decoration:none;background-color:#f8f9fa}.dropdown-item.active,.dropdown-item:active{color:#fff;text-decoration:none;background-color:#007bff}.dropdown-item.disabled,.dropdown-item:disabled{color:#6c757d;background-color:transparent}.dropdown-menu.show{display:block}.dropdown-header{display:block;padding:.5rem 1.5rem;margin-bottom:0;font-size:.875rem;color:#6c757d;white-space:nowrap}.dropdown-item-text{display:block;padding:.25rem 1.5rem;color:#212529}.btn-group,.btn-group-vertical{position:relative;display:-ms-inline-flexbox;display:inline-flex;vertical-align:middle}.btn-group-vertical>.btn,.btn-group>.btn{position:relative;-ms-flex:0 1 auto;flex:0 1 auto}.btn-group-vertical>.btn:hover,.btn-group>.btn:hover{z-index:1}.btn-group-vertical>.btn.active,.btn-group-vertical>.btn:active,.btn-group-vertical>.btn:focus,.btn-group>.btn.active,.btn-group>.btn:active,.btn-group>.btn:focus{z-index:1}.btn-group .btn+.btn,.btn-group .btn+.btn-group,.btn-group .btn-group+.btn,.btn-group .btn-group+.btn-group,.btn-group-vertical .btn+.btn,.btn-group-vertical .btn+.btn-group,.btn-group-vertical .btn-group+.btn,.btn-group-vertical .btn-group+.btn-group{margin-left:-1px}.btn-toolbar{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-pack:start;justify-content:flex-start}.btn-toolbar .input-group{width:auto}.btn-group>.btn:first-child{margin-left:0}.btn-group>.btn-group:not(:last-child)>.btn,.btn-group>.btn:not(:last-child):not(.dropdown-toggle){border-top-right-radius:0;border-bottom-right-radius:0}.btn-group>.btn-group:not(:first-child)>.btn,.btn-group>.btn:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.dropdown-toggle-split{padding-right:.5625rem;padding-left:.5625rem}.dropdown-toggle-split::after,.dropright .dropdown-toggle-split::after,.dropup .dropdown-toggle-split::after{margin-left:0}.dropleft .dropdown-toggle-split::before{margin-right:0}.btn-group-sm>.btn+.dropdown-toggle-split,.btn-sm+.dropdown-toggle-split{padding-right:.375rem;padding-left:.375rem}.btn-group-lg>.btn+.dropdown-toggle-split,.btn-lg+.dropdown-toggle-split{padding-right:.75rem;padding-left:.75rem}.btn-group-vertical{-ms-flex-direction:column;flex-direction:column;-ms-flex-align:start;align-items:flex-start;-ms-flex-pack:center;justify-content:center}.btn-group-vertical .btn,.btn-group-vertical .btn-group{width:100%}.btn-group-vertical>.btn+.btn,.btn-group-vertical>.btn+.btn-group,.btn-group-vertical>.btn-group+.btn,.btn-group-vertical>.btn-group+.btn-group{margin-top:-1px;margin-left:0}.btn-group-vertical>.btn-group:not(:last-child)>.btn,.btn-group-vertical>.btn:not(:last-child):not(.dropdown-toggle){border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn-group:not(:first-child)>.btn,.btn-group-vertical>.btn:not(:first-child){border-top-left-radius:0;border-top-right-radius:0}.btn-group-toggle>.btn,.btn-group-toggle>.btn-group>.btn{margin-bottom:0}.btn-group-toggle>.btn input[type=checkbox],.btn-group-toggle>.btn input[type=radio],.btn-group-toggle>.btn-group>.btn input[type=checkbox],.btn-group-toggle>.btn-group>.btn input[type=radio]{position:absolute;clip:rect(0,0,0,0);pointer-events:none}.input-group{position:relative;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-align:stretch;align-items:stretch;width:100%}.input-group>.custom-file,.input-group>.custom-select,.input-group>.form-control{position:relative;-ms-flex:1 1 auto;flex:1 1 auto;width:1%;margin-bottom:0}.input-group>.custom-file+.custom-file,.input-group>.custom-file+.custom-select,.input-group>.custom-file+.form-control,.input-group>.custom-select+.custom-file,.input-group>.custom-select+.custom-select,.input-group>.custom-select+.form-control,.input-group>.form-control+.custom-file,.input-group>.form-control+.custom-select,.input-group>.form-control+.form-control{margin-left:-1px}.input-group>.custom-file .custom-file-input:focus~.custom-file-label,.input-group>.custom-select:focus,.input-group>.form-control:focus{z-index:3}.input-group>.custom-file .custom-file-input:focus{z-index:4}.input-group>.custom-select:not(:last-child),.input-group>.form-control:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.input-group>.custom-select:not(:first-child),.input-group>.form-control:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.input-group>.custom-file{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center}.input-group>.custom-file:not(:last-child) .custom-file-label,.input-group>.custom-file:not(:last-child) .custom-file-label::after{border-top-right-radius:0;border-bottom-right-radius:0}.input-group>.custom-file:not(:first-child) .custom-file-label{border-top-left-radius:0;border-bottom-left-radius:0}.input-group-append,.input-group-prepend{display:-ms-flexbox;display:flex}.input-group-append .btn,.input-group-prepend .btn{position:relative;z-index:2}.input-group-append .btn+.btn,.input-group-append .btn+.input-group-text,.input-group-append .input-group-text+.btn,.input-group-append .input-group-text+.input-group-text,.input-group-prepend .btn+.btn,.input-group-prepend .btn+.input-group-text,.input-group-prepend .input-group-text+.btn,.input-group-prepend .input-group-text+.input-group-text{margin-left:-1px}.input-group-prepend{margin-right:-1px}.input-group-append{margin-left:-1px}.input-group-text{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;padding:.375rem .75rem;margin-bottom:0;font-size:1rem;font-weight:400;line-height:1.5;color:#495057;text-align:center;white-space:nowrap;background-color:#e9ecef;border:1px solid #ced4da;border-radius:.25rem}.input-group-text input[type=checkbox],.input-group-text input[type=radio]{margin-top:0}.input-group-lg>.form-control,.input-group-lg>.input-group-append>.btn,.input-group-lg>.input-group-append>.input-group-text,.input-group-lg>.input-group-prepend>.btn,.input-group-lg>.input-group-prepend>.input-group-text{height:calc(2.875rem + 2px);padding:.5rem 1rem;font-size:1.25rem;line-height:1.5;border-radius:.3rem}.input-group-sm>.form-control,.input-group-sm>.input-group-append>.btn,.input-group-sm>.input-group-append>.input-group-text,.input-group-sm>.input-group-prepend>.btn,.input-group-sm>.input-group-prepend>.input-group-text{height:calc(1.8125rem + 2px);padding:.25rem .5rem;font-size:.875rem;line-height:1.5;border-radius:.2rem}.input-group>.input-group-append:last-child>.btn:not(:last-child):not(.dropdown-toggle),.input-group>.input-group-append:last-child>.input-group-text:not(:last-child),.input-group>.input-group-append:not(:last-child)>.btn,.input-group>.input-group-append:not(:last-child)>.input-group-text,.input-group>.input-group-prepend>.btn,.input-group>.input-group-prepend>.input-group-text{border-top-right-radius:0;border-bottom-right-radius:0}.input-group>.input-group-append>.btn,.input-group>.input-group-append>.input-group-text,.input-group>.input-group-prepend:first-child>.btn:not(:first-child),.input-group>.input-group-prepend:first-child>.input-group-text:not(:first-child),.input-group>.input-group-prepend:not(:first-child)>.btn,.input-group>.input-group-prepend:not(:first-child)>.input-group-text{border-top-left-radius:0;border-bottom-left-radius:0}.custom-control{position:relative;display:block;min-height:1.5rem;padding-left:1.5rem}.custom-control-inline{display:-ms-inline-flexbox;display:inline-flex;margin-right:1rem}.custom-control-input{position:absolute;z-index:-1;opacity:0}.custom-control-input:checked~.custom-control-label::before{color:#fff;background-color:#007bff}.custom-control-input:focus~.custom-control-label::before{box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(0,123,255,.25)}.custom-control-input:active~.custom-control-label::before{color:#fff;background-color:#b3d7ff}.custom-control-input:disabled~.custom-control-label{color:#6c757d}.custom-control-input:disabled~.custom-control-label::before{background-color:#e9ecef}.custom-control-label{position:relative;margin-bottom:0}.custom-control-label::before{position:absolute;top:.25rem;left:-1.5rem;display:block;width:1rem;height:1rem;pointer-events:none;content:"";-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;background-color:#dee2e6}.custom-control-label::after{position:absolute;top:.25rem;left:-1.5rem;display:block;width:1rem;height:1rem;content:"";background-repeat:no-repeat;background-position:center center;background-size:50% 50%}.custom-checkbox .custom-control-label::before{border-radius:.25rem}.custom-checkbox .custom-control-input:checked~.custom-control-label::before{background-color:#007bff}.custom-checkbox .custom-control-input:checked~.custom-control-label::after{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E")}.custom-checkbox .custom-control-input:indeterminate~.custom-control-label::before{background-color:#007bff}.custom-checkbox .custom-control-input:indeterminate~.custom-control-label::after{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 4'%3E%3Cpath stroke='%23fff' d='M0 2h4'/%3E%3C/svg%3E")}.custom-checkbox .custom-control-input:disabled:checked~.custom-control-label::before{background-color:rgba(0,123,255,.5)}.custom-checkbox .custom-control-input:disabled:indeterminate~.custom-control-label::before{background-color:rgba(0,123,255,.5)}.custom-radio .custom-control-label::before{border-radius:50%}.custom-radio .custom-control-input:checked~.custom-control-label::before{background-color:#007bff}.custom-radio .custom-control-input:checked~.custom-control-label::after{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%23fff'/%3E%3C/svg%3E")}.custom-radio .custom-control-input:disabled:checked~.custom-control-label::before{background-color:rgba(0,123,255,.5)}.custom-select{display:inline-block;width:100%;height:calc(2.25rem + 2px);padding:.375rem 1.75rem .375rem .75rem;line-height:1.5;color:#495057;vertical-align:middle;background:#fff url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 5'%3E%3Cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3E%3C/svg%3E") no-repeat right .75rem center;background-size:8px 10px;border:1px solid #ced4da;border-radius:.25rem;-webkit-appearance:none;-moz-appearance:none;appearance:none}.custom-select:focus{border-color:#80bdff;outline:0;box-shadow:0 0 0 .2rem rgba(128,189,255,.5)}.custom-select:focus::-ms-value{color:#495057;background-color:#fff}.custom-select[multiple],.custom-select[size]:not([size="1"]){height:auto;padding-right:.75rem;background-image:none}.custom-select:disabled{color:#6c757d;background-color:#e9ecef}.custom-select::-ms-expand{opacity:0}.custom-select-sm{height:calc(1.8125rem + 2px);padding-top:.375rem;padding-bottom:.375rem;font-size:75%}.custom-select-lg{height:calc(2.875rem + 2px);padding-top:.375rem;padding-bottom:.375rem;font-size:125%}.custom-file{position:relative;display:inline-block;width:100%;height:calc(2.25rem + 2px);margin-bottom:0}.custom-file-input{position:relative;z-index:2;width:100%;height:calc(2.25rem + 2px);margin:0;opacity:0}.custom-file-input:focus~.custom-file-label{border-color:#80bdff;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.custom-file-input:focus~.custom-file-label::after{border-color:#80bdff}.custom-file-input:disabled~.custom-file-label{background-color:#e9ecef}.custom-file-input:lang(en)~.custom-file-label::after{content:"Browse"}.custom-file-label{position:absolute;top:0;right:0;left:0;z-index:1;height:calc(2.25rem + 2px);padding:.375rem .75rem;line-height:1.5;color:#495057;background-color:#fff;border:1px solid #ced4da;border-radius:.25rem}.custom-file-label::after{position:absolute;top:0;right:0;bottom:0;z-index:3;display:block;height:2.25rem;padding:.375rem .75rem;line-height:1.5;color:#495057;content:"Browse";background-color:#e9ecef;border-left:1px solid #ced4da;border-radius:0 .25rem .25rem 0}.custom-range{width:100%;padding-left:0;background-color:transparent;-webkit-appearance:none;-moz-appearance:none;appearance:none}.custom-range:focus{outline:0}.custom-range:focus::-webkit-slider-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(0,123,255,.25)}.custom-range:focus::-moz-range-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(0,123,255,.25)}.custom-range:focus::-ms-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(0,123,255,.25)}.custom-range::-moz-focus-outer{border:0}.custom-range::-webkit-slider-thumb{width:1rem;height:1rem;margin-top:-.25rem;background-color:#007bff;border:0;border-radius:1rem;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;-webkit-appearance:none;appearance:none}@media screen and (prefers-reduced-motion:reduce){.custom-range::-webkit-slider-thumb{transition:none}}.custom-range::-webkit-slider-thumb:active{background-color:#b3d7ff}.custom-range::-webkit-slider-runnable-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:#dee2e6;border-color:transparent;border-radius:1rem}.custom-range::-moz-range-thumb{width:1rem;height:1rem;background-color:#007bff;border:0;border-radius:1rem;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;-moz-appearance:none;appearance:none}@media screen and (prefers-reduced-motion:reduce){.custom-range::-moz-range-thumb{transition:none}}.custom-range::-moz-range-thumb:active{background-color:#b3d7ff}.custom-range::-moz-range-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:#dee2e6;border-color:transparent;border-radius:1rem}.custom-range::-ms-thumb{width:1rem;height:1rem;margin-top:0;margin-right:.2rem;margin-left:.2rem;background-color:#007bff;border:0;border-radius:1rem;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;appearance:none}@media screen and (prefers-reduced-motion:reduce){.custom-range::-ms-thumb{transition:none}}.custom-range::-ms-thumb:active{background-color:#b3d7ff}.custom-range::-ms-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:transparent;border-color:transparent;border-width:.5rem}.custom-range::-ms-fill-lower{background-color:#dee2e6;border-radius:1rem}.custom-range::-ms-fill-upper{margin-right:15px;background-color:#dee2e6;border-radius:1rem}.custom-control-label::before,.custom-file-label,.custom-select{transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media screen and (prefers-reduced-motion:reduce){.custom-control-label::before,.custom-file-label,.custom-select{transition:none}}.nav{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;padding-left:0;margin-bottom:0;list-style:none}.nav-link{display:block;padding:.5rem 1rem}.nav-link:focus,.nav-link:hover{text-decoration:none}.nav-link.disabled{color:#6c757d}.nav-tabs{border-bottom:1px solid #dee2e6}.nav-tabs .nav-item{margin-bottom:-1px}.nav-tabs .nav-link{border:1px solid transparent;border-top-left-radius:.25rem;border-top-right-radius:.25rem}.nav-tabs .nav-link:focus,.nav-tabs .nav-link:hover{border-color:#e9ecef #e9ecef #dee2e6}.nav-tabs .nav-link.disabled{color:#6c757d;background-color:transparent;border-color:transparent}.nav-tabs .nav-item.show .nav-link,.nav-tabs .nav-link.active{color:#495057;background-color:#fff;border-color:#dee2e6 #dee2e6 #fff}.nav-tabs .dropdown-menu{margin-top:-1px;border-top-left-radius:0;border-top-right-radius:0}.nav-pills .nav-link{border-radius:.25rem}.nav-pills .nav-link.active,.nav-pills .show>.nav-link{color:#fff;background-color:#007bff}.nav-fill .nav-item{-ms-flex:1 1 auto;flex:1 1 auto;text-align:center}.nav-justified .nav-item{-ms-flex-preferred-size:0;flex-basis:0;-ms-flex-positive:1;flex-grow:1;text-align:center}.tab-content>.tab-pane{display:none}.tab-content>.active{display:block}.navbar{position:relative;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-align:center;align-items:center;-ms-flex-pack:justify;justify-content:space-between;padding:.5rem 1rem}.navbar>.container,.navbar>.container-fluid{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-align:center;align-items:center;-ms-flex-pack:justify;justify-content:space-between}.navbar-brand{display:inline-block;padding-top:.3125rem;padding-bottom:.3125rem;margin-right:1rem;font-size:1.25rem;line-height:inherit;white-space:nowrap}.navbar-brand:focus,.navbar-brand:hover{text-decoration:none}.navbar-nav{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;padding-left:0;margin-bottom:0;list-style:none}.navbar-nav .nav-link{padding-right:0;padding-left:0}.navbar-nav .dropdown-menu{position:static;float:none}.navbar-text{display:inline-block;padding-top:.5rem;padding-bottom:.5rem}.navbar-collapse{-ms-flex-preferred-size:100%;flex-basis:100%;-ms-flex-positive:1;flex-grow:1;-ms-flex-align:center;align-items:center}.navbar-toggler{padding:.25rem .75rem;font-size:1.25rem;line-height:1;background-color:transparent;border:1px solid transparent;border-radius:.25rem}.navbar-toggler:focus,.navbar-toggler:hover{text-decoration:none}.navbar-toggler:not(:disabled):not(.disabled){cursor:pointer}.navbar-toggler-icon{display:inline-block;width:1.5em;height:1.5em;vertical-align:middle;content:"";background:no-repeat center center;background-size:100% 100%}@media (max-width:575.98px){.navbar-expand-sm>.container,.navbar-expand-sm>.container-fluid{padding-right:0;padding-left:0}}@media (min-width:576px){.navbar-expand-sm{-ms-flex-flow:row nowrap;flex-flow:row nowrap;-ms-flex-pack:start;justify-content:flex-start}.navbar-expand-sm .navbar-nav{-ms-flex-direction:row;flex-direction:row}.navbar-expand-sm .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-sm .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-sm>.container,.navbar-expand-sm>.container-fluid{-ms-flex-wrap:nowrap;flex-wrap:nowrap}.navbar-expand-sm .navbar-collapse{display:-ms-flexbox!important;display:flex!important;-ms-flex-preferred-size:auto;flex-basis:auto}.navbar-expand-sm .navbar-toggler{display:none}}@media (max-width:767.98px){.navbar-expand-md>.container,.navbar-expand-md>.container-fluid{padding-right:0;padding-left:0}}@media (min-width:768px){.navbar-expand-md{-ms-flex-flow:row nowrap;flex-flow:row nowrap;-ms-flex-pack:start;justify-content:flex-start}.navbar-expand-md .navbar-nav{-ms-flex-direction:row;flex-direction:row}.navbar-expand-md .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-md .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-md>.container,.navbar-expand-md>.container-fluid{-ms-flex-wrap:nowrap;flex-wrap:nowrap}.navbar-expand-md .navbar-collapse{display:-ms-flexbox!important;display:flex!important;-ms-flex-preferred-size:auto;flex-basis:auto}.navbar-expand-md .navbar-toggler{display:none}}@media (max-width:991.98px){.navbar-expand-lg>.container,.navbar-expand-lg>.container-fluid{padding-right:0;padding-left:0}}@media (min-width:992px){.navbar-expand-lg{-ms-flex-flow:row nowrap;flex-flow:row nowrap;-ms-flex-pack:start;justify-content:flex-start}.navbar-expand-lg .navbar-nav{-ms-flex-direction:row;flex-direction:row}.navbar-expand-lg .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-lg .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-lg>.container,.navbar-expand-lg>.container-fluid{-ms-flex-wrap:nowrap;flex-wrap:nowrap}.navbar-expand-lg .navbar-collapse{display:-ms-flexbox!important;display:flex!important;-ms-flex-preferred-size:auto;flex-basis:auto}.navbar-expand-lg .navbar-toggler{display:none}}@media (max-width:1199.98px){.navbar-expand-xl>.container,.navbar-expand-xl>.container-fluid{padding-right:0;padding-left:0}}@media (min-width:1200px){.navbar-expand-xl{-ms-flex-flow:row nowrap;flex-flow:row nowrap;-ms-flex-pack:start;justify-content:flex-start}.navbar-expand-xl .navbar-nav{-ms-flex-direction:row;flex-direction:row}.navbar-expand-xl .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-xl .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-xl>.container,.navbar-expand-xl>.container-fluid{-ms-flex-wrap:nowrap;flex-wrap:nowrap}.navbar-expand-xl .navbar-collapse{display:-ms-flexbox!important;display:flex!important;-ms-flex-preferred-size:auto;flex-basis:auto}.navbar-expand-xl .navbar-toggler{display:none}}.navbar-expand{-ms-flex-flow:row nowrap;flex-flow:row nowrap;-ms-flex-pack:start;justify-content:flex-start}.navbar-expand>.container,.navbar-expand>.container-fluid{padding-right:0;padding-left:0}.navbar-expand .navbar-nav{-ms-flex-direction:row;flex-direction:row}.navbar-expand .navbar-nav .dropdown-menu{position:absolute}.navbar-expand .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand>.container,.navbar-expand>.container-fluid{-ms-flex-wrap:nowrap;flex-wrap:nowrap}.navbar-expand .navbar-collapse{display:-ms-flexbox!important;display:flex!important;-ms-flex-preferred-size:auto;flex-basis:auto}.navbar-expand .navbar-toggler{display:none}.navbar-light .navbar-brand{color:rgba(0,0,0,.9)}.navbar-light .navbar-brand:focus,.navbar-light .navbar-brand:hover{color:rgba(0,0,0,.9)}.navbar-light .navbar-nav .nav-link{color:rgba(0,0,0,.5)}.navbar-light .navbar-nav .nav-link:focus,.navbar-light .navbar-nav .nav-link:hover{color:rgba(0,0,0,.7)}.navbar-light .navbar-nav .nav-link.disabled{color:rgba(0,0,0,.3)}.navbar-light .navbar-nav .active>.nav-link,.navbar-light .navbar-nav .nav-link.active,.navbar-light .navbar-nav .nav-link.show,.navbar-light .navbar-nav .show>.nav-link{color:rgba(0,0,0,.9)}.navbar-light .navbar-toggler{color:rgba(0,0,0,.5);border-color:rgba(0,0,0,.1)}.navbar-light .navbar-toggler-icon{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg viewBox='0 0 30 30' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath stroke='rgba(0, 0, 0, 0.5)' stroke-width='2' stroke-linecap='round' stroke-miterlimit='10' d='M4 7h22M4 15h22M4 23h22'/%3E%3C/svg%3E")}.navbar-light .navbar-text{color:rgba(0,0,0,.5)}.navbar-light .navbar-text a{color:rgba(0,0,0,.9)}.navbar-light .navbar-text a:focus,.navbar-light .navbar-text a:hover{color:rgba(0,0,0,.9)}.navbar-dark .navbar-brand{color:#fff}.navbar-dark .navbar-brand:focus,.navbar-dark .navbar-brand:hover{color:#fff}.navbar-dark .navbar-nav .nav-link{color:rgba(255,255,255,.5)}.navbar-dark .navbar-nav .nav-link:focus,.navbar-dark .navbar-nav .nav-link:hover{color:rgba(255,255,255,.75)}.navbar-dark .navbar-nav .nav-link.disabled{color:rgba(255,255,255,.25)}.navbar-dark .navbar-nav .active>.nav-link,.navbar-dark .navbar-nav .nav-link.active,.navbar-dark .navbar-nav .nav-link.show,.navbar-dark .navbar-nav .show>.nav-link{color:#fff}.navbar-dark .navbar-toggler{color:rgba(255,255,255,.5);border-color:rgba(255,255,255,.1)}.navbar-dark .navbar-toggler-icon{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg viewBox='0 0 30 30' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath stroke='rgba(255, 255, 255, 0.5)' stroke-width='2' stroke-linecap='round' stroke-miterlimit='10' d='M4 7h22M4 15h22M4 23h22'/%3E%3C/svg%3E")}.navbar-dark .navbar-text{color:rgba(255,255,255,.5)}.navbar-dark .navbar-text a{color:#fff}.navbar-dark .navbar-text a:focus,.navbar-dark .navbar-text a:hover{color:#fff}.card{position:relative;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;min-width:0;word-wrap:break-word;background-color:#fff;background-clip:border-box;border:1px solid rgba(0,0,0,.125);border-radius:.25rem}.card>hr{margin-right:0;margin-left:0}.card>.list-group:first-child .list-group-item:first-child{border-top-left-radius:.25rem;border-top-right-radius:.25rem}.card>.list-group:last-child .list-group-item:last-child{border-bottom-right-radius:.25rem;border-bottom-left-radius:.25rem}.card-body{-ms-flex:1 1 auto;flex:1 1 auto;padding:1.25rem}.card-title{margin-bottom:.75rem}.card-subtitle{margin-top:-.375rem;margin-bottom:0}.card-text:last-child{margin-bottom:0}.card-link:hover{text-decoration:none}.card-link+.card-link{margin-left:1.25rem}.card-header{padding:.75rem 1.25rem;margin-bottom:0;background-color:rgba(0,0,0,.03);border-bottom:1px solid rgba(0,0,0,.125)}.card-header:first-child{border-radius:calc(.25rem - 1px) calc(.25rem - 1px) 0 0}.card-header+.list-group .list-group-item:first-child{border-top:0}.card-footer{padding:.75rem 1.25rem;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.125)}.card-footer:last-child{border-radius:0 0 calc(.25rem - 1px) calc(.25rem - 1px)}.card-header-tabs{margin-right:-.625rem;margin-bottom:-.75rem;margin-left:-.625rem;border-bottom:0}.card-header-pills{margin-right:-.625rem;margin-left:-.625rem}.card-img-overlay{position:absolute;top:0;right:0;bottom:0;left:0;padding:1.25rem}.card-img{width:100%;border-radius:calc(.25rem - 1px)}.card-img-top{width:100%;border-top-left-radius:calc(.25rem - 1px);border-top-right-radius:calc(.25rem - 1px)}.card-img-bottom{width:100%;border-bottom-right-radius:calc(.25rem - 1px);border-bottom-left-radius:calc(.25rem - 1px)}.card-deck{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column}.card-deck .card{margin-bottom:15px}@media (min-width:576px){.card-deck{-ms-flex-flow:row wrap;flex-flow:row wrap;margin-right:-15px;margin-left:-15px}.card-deck .card{display:-ms-flexbox;display:flex;-ms-flex:1 0 0%;flex:1 0 0%;-ms-flex-direction:column;flex-direction:column;margin-right:15px;margin-bottom:0;margin-left:15px}}.card-group{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column}.card-group>.card{margin-bottom:15px}@media (min-width:576px){.card-group{-ms-flex-flow:row wrap;flex-flow:row wrap}.card-group>.card{-ms-flex:1 0 0%;flex:1 0 0%;margin-bottom:0}.card-group>.card+.card{margin-left:0;border-left:0}.card-group>.card:first-child{border-top-right-radius:0;border-bottom-right-radius:0}.card-group>.card:first-child .card-header,.card-group>.card:first-child .card-img-top{border-top-right-radius:0}.card-group>.card:first-child .card-footer,.card-group>.card:first-child .card-img-bottom{border-bottom-right-radius:0}.card-group>.card:last-child{border-top-left-radius:0;border-bottom-left-radius:0}.card-group>.card:last-child .card-header,.card-group>.card:last-child .card-img-top{border-top-left-radius:0}.card-group>.card:last-child .card-footer,.card-group>.card:last-child .card-img-bottom{border-bottom-left-radius:0}.card-group>.card:only-child{border-radius:.25rem}.card-group>.card:only-child .card-header,.card-group>.card:only-child .card-img-top{border-top-left-radius:.25rem;border-top-right-radius:.25rem}.card-group>.card:only-child .card-footer,.card-group>.card:only-child .card-img-bottom{border-bottom-right-radius:.25rem;border-bottom-left-radius:.25rem}.card-group>.card:not(:first-child):not(:last-child):not(:only-child){border-radius:0}.card-group>.card:not(:first-child):not(:last-child):not(:only-child) .card-footer,.card-group>.card:not(:first-child):not(:last-child):not(:only-child) .card-header,.card-group>.card:not(:first-child):not(:last-child):not(:only-child) .card-img-bottom,.card-group>.card:not(:first-child):not(:last-child):not(:only-child) .card-img-top{border-radius:0}}.card-columns .card{margin-bottom:.75rem}@media (min-width:576px){.card-columns{-webkit-column-count:3;-moz-column-count:3;column-count:3;-webkit-column-gap:1.25rem;-moz-column-gap:1.25rem;column-gap:1.25rem;orphans:1;widows:1}.card-columns .card{display:inline-block;width:100%}}.accordion .card:not(:first-of-type):not(:last-of-type){border-bottom:0;border-radius:0}.accordion .card:not(:first-of-type) .card-header:first-child{border-radius:0}.accordion .card:first-of-type{border-bottom:0;border-bottom-right-radius:0;border-bottom-left-radius:0}.accordion .card:last-of-type{border-top-left-radius:0;border-top-right-radius:0}.breadcrumb{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;padding:.75rem 1rem;margin-bottom:1rem;list-style:none;background-color:#e9ecef;border-radius:.25rem}.breadcrumb-item+.breadcrumb-item{padding-left:.5rem}.breadcrumb-item+.breadcrumb-item::before{display:inline-block;padding-right:.5rem;color:#6c757d;content:"/"}.breadcrumb-item+.breadcrumb-item:hover::before{text-decoration:underline}.breadcrumb-item+.breadcrumb-item:hover::before{text-decoration:none}.breadcrumb-item.active{color:#6c757d}.pagination{display:-ms-flexbox;display:flex;padding-left:0;list-style:none;border-radius:.25rem}.page-link{position:relative;display:block;padding:.5rem .75rem;margin-left:-1px;line-height:1.25;color:#007bff;background-color:#fff;border:1px solid #dee2e6}.page-link:hover{z-index:2;color:#0056b3;text-decoration:none;background-color:#e9ecef;border-color:#dee2e6}.page-link:focus{z-index:2;outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.page-link:not(:disabled):not(.disabled){cursor:pointer}.page-item:first-child .page-link{margin-left:0;border-top-left-radius:.25rem;border-bottom-left-radius:.25rem}.page-item:last-child .page-link{border-top-right-radius:.25rem;border-bottom-right-radius:.25rem}.page-item.active .page-link{z-index:1;color:#fff;background-color:#007bff;border-color:#007bff}.page-item.disabled .page-link{color:#6c757d;pointer-events:none;cursor:auto;background-color:#fff;border-color:#dee2e6}.pagination-lg .page-link{padding:.75rem 1.5rem;font-size:1.25rem;line-height:1.5}.pagination-lg .page-item:first-child .page-link{border-top-left-radius:.3rem;border-bottom-left-radius:.3rem}.pagination-lg .page-item:last-child .page-link{border-top-right-radius:.3rem;border-bottom-right-radius:.3rem}.pagination-sm .page-link{padding:.25rem .5rem;font-size:.875rem;line-height:1.5}.pagination-sm .page-item:first-child .page-link{border-top-left-radius:.2rem;border-bottom-left-radius:.2rem}.pagination-sm .page-item:last-child .page-link{border-top-right-radius:.2rem;border-bottom-right-radius:.2rem}.badge{display:inline-block;padding:.25em .4em;font-size:75%;font-weight:700;line-height:1;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:.25rem}.badge:empty{display:none}.btn .badge{position:relative;top:-1px}.badge-pill{padding-right:.6em;padding-left:.6em;border-radius:10rem}.badge-primary{color:#fff;background-color:#007bff}.badge-primary[href]:focus,.badge-primary[href]:hover{color:#fff;text-decoration:none;background-color:#0062cc}.badge-secondary{color:#fff;background-color:#6c757d}.badge-secondary[href]:focus,.badge-secondary[href]:hover{color:#fff;text-decoration:none;background-color:#545b62}.badge-success{color:#fff;background-color:#28a745}.badge-success[href]:focus,.badge-success[href]:hover{color:#fff;text-decoration:none;background-color:#1e7e34}.badge-info{color:#fff;background-color:#17a2b8}.badge-info[href]:focus,.badge-info[href]:hover{color:#fff;text-decoration:none;background-color:#117a8b}.badge-warning{color:#212529;background-color:#ffc107}.badge-warning[href]:focus,.badge-warning[href]:hover{color:#212529;text-decoration:none;background-color:#d39e00}.badge-danger{color:#fff;background-color:#dc3545}.badge-danger[href]:focus,.badge-danger[href]:hover{color:#fff;text-decoration:none;background-color:#bd2130}.badge-light{color:#212529;background-color:#f8f9fa}.badge-light[href]:focus,.badge-light[href]:hover{color:#212529;text-decoration:none;background-color:#dae0e5}.badge-dark{color:#fff;background-color:#343a40}.badge-dark[href]:focus,.badge-dark[href]:hover{color:#fff;text-decoration:none;background-color:#1d2124}.jumbotron{padding:2rem 1rem;margin-bottom:2rem;background-color:#e9ecef;border-radius:.3rem}@media (min-width:576px){.jumbotron{padding:4rem 2rem}}.jumbotron-fluid{padding-right:0;padding-left:0;border-radius:0}.alert{position:relative;padding:.75rem 1.25rem;margin-bottom:1rem;border:1px solid transparent;border-radius:.25rem}.alert-heading{color:inherit}.alert-link{font-weight:700}.alert-dismissible{padding-right:4rem}.alert-dismissible .close{position:absolute;top:0;right:0;padding:.75rem 1.25rem;color:inherit}.alert-primary{color:#004085;background-color:#cce5ff;border-color:#b8daff}.alert-primary hr{border-top-color:#9fcdff}.alert-primary .alert-link{color:#002752}.alert-secondary{color:#383d41;background-color:#e2e3e5;border-color:#d6d8db}.alert-secondary hr{border-top-color:#c8cbcf}.alert-secondary .alert-link{color:#202326}.alert-success{color:#155724;background-color:#d4edda;border-color:#c3e6cb}.alert-success hr{border-top-color:#b1dfbb}.alert-success .alert-link{color:#0b2e13}.alert-info{color:#0c5460;background-color:#d1ecf1;border-color:#bee5eb}.alert-info hr{border-top-color:#abdde5}.alert-info .alert-link{color:#062c33}.alert-warning{color:#856404;background-color:#fff3cd;border-color:#ffeeba}.alert-warning hr{border-top-color:#ffe8a1}.alert-warning .alert-link{color:#533f03}.alert-danger{color:#721c24;background-color:#f8d7da;border-color:#f5c6cb}.alert-danger hr{border-top-color:#f1b0b7}.alert-danger .alert-link{color:#491217}.alert-light{color:#818182;background-color:#fefefe;border-color:#fdfdfe}.alert-light hr{border-top-color:#ececf6}.alert-light .alert-link{color:#686868}.alert-dark{color:#1b1e21;background-color:#d6d8d9;border-color:#c6c8ca}.alert-dark hr{border-top-color:#b9bbbe}.alert-dark .alert-link{color:#040505}@-webkit-keyframes progress-bar-stripes{from{background-position:1rem 0}to{background-position:0 0}}@keyframes progress-bar-stripes{from{background-position:1rem 0}to{background-position:0 0}}.progress{display:-ms-flexbox;display:flex;height:1rem;overflow:hidden;font-size:.75rem;background-color:#e9ecef;border-radius:.25rem}.progress-bar{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;-ms-flex-pack:center;justify-content:center;color:#fff;text-align:center;white-space:nowrap;background-color:#007bff;transition:width .6s ease}@media screen and (prefers-reduced-motion:reduce){.progress-bar{transition:none}}.progress-bar-striped{background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-size:1rem 1rem}.progress-bar-animated{-webkit-animation:progress-bar-stripes 1s linear infinite;animation:progress-bar-stripes 1s linear infinite}.media{display:-ms-flexbox;display:flex;-ms-flex-align:start;align-items:flex-start}.media-body{-ms-flex:1;flex:1}.list-group{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;padding-left:0;margin-bottom:0}.list-group-item-action{width:100%;color:#495057;text-align:inherit}.list-group-item-action:focus,.list-group-item-action:hover{color:#495057;text-decoration:none;background-color:#f8f9fa}.list-group-item-action:active{color:#212529;background-color:#e9ecef}.list-group-item{position:relative;display:block;padding:.75rem 1.25rem;margin-bottom:-1px;background-color:#fff;border:1px solid rgba(0,0,0,.125)}.list-group-item:first-child{border-top-left-radius:.25rem;border-top-right-radius:.25rem}.list-group-item:last-child{margin-bottom:0;border-bottom-right-radius:.25rem;border-bottom-left-radius:.25rem}.list-group-item:focus,.list-group-item:hover{z-index:1;text-decoration:none}.list-group-item.disabled,.list-group-item:disabled{color:#6c757d;background-color:#fff}.list-group-item.active{z-index:2;color:#fff;background-color:#007bff;border-color:#007bff}.list-group-flush .list-group-item{border-right:0;border-left:0;border-radius:0}.list-group-flush:first-child .list-group-item:first-child{border-top:0}.list-group-flush:last-child .list-group-item:last-child{border-bottom:0}.list-group-item-primary{color:#004085;background-color:#b8daff}.list-group-item-primary.list-group-item-action:focus,.list-group-item-primary.list-group-item-action:hover{color:#004085;background-color:#9fcdff}.list-group-item-primary.list-group-item-action.active{color:#fff;background-color:#004085;border-color:#004085}.list-group-item-secondary{color:#383d41;background-color:#d6d8db}.list-group-item-secondary.list-group-item-action:focus,.list-group-item-secondary.list-group-item-action:hover{color:#383d41;background-color:#c8cbcf}.list-group-item-secondary.list-group-item-action.active{color:#fff;background-color:#383d41;border-color:#383d41}.list-group-item-success{color:#155724;background-color:#c3e6cb}.list-group-item-success.list-group-item-action:focus,.list-group-item-success.list-group-item-action:hover{color:#155724;background-color:#b1dfbb}.list-group-item-success.list-group-item-action.active{color:#fff;background-color:#155724;border-color:#155724}.list-group-item-info{color:#0c5460;background-color:#bee5eb}.list-group-item-info.list-group-item-action:focus,.list-group-item-info.list-group-item-action:hover{color:#0c5460;background-color:#abdde5}.list-group-item-info.list-group-item-action.active{color:#fff;background-color:#0c5460;border-color:#0c5460}.list-group-item-warning{color:#856404;background-color:#ffeeba}.list-group-item-warning.list-group-item-action:focus,.list-group-item-warning.list-group-item-action:hover{color:#856404;background-color:#ffe8a1}.list-group-item-warning.list-group-item-action.active{color:#fff;background-color:#856404;border-color:#856404}.list-group-item-danger{color:#721c24;background-color:#f5c6cb}.list-group-item-danger.list-group-item-action:focus,.list-group-item-danger.list-group-item-action:hover{color:#721c24;background-color:#f1b0b7}.list-group-item-danger.list-group-item-action.active{color:#fff;background-color:#721c24;border-color:#721c24}.list-group-item-light{color:#818182;background-color:#fdfdfe}.list-group-item-light.list-group-item-action:focus,.list-group-item-light.list-group-item-action:hover{color:#818182;background-color:#ececf6}.list-group-item-light.list-group-item-action.active{color:#fff;background-color:#818182;border-color:#818182}.list-group-item-dark{color:#1b1e21;background-color:#c6c8ca}.list-group-item-dark.list-group-item-action:focus,.list-group-item-dark.list-group-item-action:hover{color:#1b1e21;background-color:#b9bbbe}.list-group-item-dark.list-group-item-action.active{color:#fff;background-color:#1b1e21;border-color:#1b1e21}.close{float:right;font-size:1.5rem;font-weight:700;line-height:1;color:#000;text-shadow:0 1px 0 #fff;opacity:.5}.close:not(:disabled):not(.disabled){cursor:pointer}.close:not(:disabled):not(.disabled):focus,.close:not(:disabled):not(.disabled):hover{color:#000;text-decoration:none;opacity:.75}button.close{padding:0;background-color:transparent;border:0;-webkit-appearance:none}.modal-open{overflow:hidden}.modal-open .modal{overflow-x:hidden;overflow-y:auto}.modal{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1050;display:none;overflow:hidden;outline:0}.modal-dialog{position:relative;width:auto;margin:.5rem;pointer-events:none}.modal.fade .modal-dialog{transition:-webkit-transform .3s ease-out;transition:transform .3s ease-out;transition:transform .3s ease-out,-webkit-transform .3s ease-out;-webkit-transform:translate(0,-25%);transform:translate(0,-25%)}@media screen and (prefers-reduced-motion:reduce){.modal.fade .modal-dialog{transition:none}}.modal.show .modal-dialog{-webkit-transform:translate(0,0);transform:translate(0,0)}.modal-dialog-centered{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;min-height:calc(100% - (.5rem * 2))}.modal-dialog-centered::before{display:block;height:calc(100vh - (.5rem * 2));content:""}.modal-content{position:relative;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;width:100%;pointer-events:auto;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.2);border-radius:.3rem;outline:0}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1040;background-color:#000}.modal-backdrop.fade{opacity:0}.modal-backdrop.show{opacity:.5}.modal-header{display:-ms-flexbox;display:flex;-ms-flex-align:start;align-items:flex-start;-ms-flex-pack:justify;justify-content:space-between;padding:1rem;border-bottom:1px solid #e9ecef;border-top-left-radius:.3rem;border-top-right-radius:.3rem}.modal-header .close{padding:1rem;margin:-1rem -1rem -1rem auto}.modal-title{margin-bottom:0;line-height:1.5}.modal-body{position:relative;-ms-flex:1 1 auto;flex:1 1 auto;padding:1rem}.modal-footer{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:end;justify-content:flex-end;padding:1rem;border-top:1px solid #e9ecef}.modal-footer>:not(:first-child){margin-left:.25rem}.modal-footer>:not(:last-child){margin-right:.25rem}.modal-scrollbar-measure{position:absolute;top:-9999px;width:50px;height:50px;overflow:scroll}@media (min-width:576px){.modal-dialog{max-width:500px;margin:1.75rem auto}.modal-dialog-centered{min-height:calc(100% - (1.75rem * 2))}.modal-dialog-centered::before{height:calc(100vh - (1.75rem * 2))}.modal-sm{max-width:300px}}@media (min-width:992px){.modal-lg{max-width:800px}}.tooltip{position:absolute;z-index:1070;display:block;margin:0;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;white-space:normal;line-break:auto;font-size:.875rem;word-wrap:break-word;opacity:0}.tooltip.show{opacity:.9}.tooltip .arrow{position:absolute;display:block;width:.8rem;height:.4rem}.tooltip .arrow::before{position:absolute;content:"";border-color:transparent;border-style:solid}.bs-tooltip-auto[x-placement^=top],.bs-tooltip-top{padding:.4rem 0}.bs-tooltip-auto[x-placement^=top] .arrow,.bs-tooltip-top .arrow{bottom:0}.bs-tooltip-auto[x-placement^=top] .arrow::before,.bs-tooltip-top .arrow::before{top:0;border-width:.4rem .4rem 0;border-top-color:#000}.bs-tooltip-auto[x-placement^=right],.bs-tooltip-right{padding:0 .4rem}.bs-tooltip-auto[x-placement^=right] .arrow,.bs-tooltip-right .arrow{left:0;width:.4rem;height:.8rem}.bs-tooltip-auto[x-placement^=right] .arrow::before,.bs-tooltip-right .arrow::before{right:0;border-width:.4rem .4rem .4rem 0;border-right-color:#000}.bs-tooltip-auto[x-placement^=bottom],.bs-tooltip-bottom{padding:.4rem 0}.bs-tooltip-auto[x-placement^=bottom] .arrow,.bs-tooltip-bottom .arrow{top:0}.bs-tooltip-auto[x-placement^=bottom] .arrow::before,.bs-tooltip-bottom .arrow::before{bottom:0;border-width:0 .4rem .4rem;border-bottom-color:#000}.bs-tooltip-auto[x-placement^=left],.bs-tooltip-left{padding:0 .4rem}.bs-tooltip-auto[x-placement^=left] .arrow,.bs-tooltip-left .arrow{right:0;width:.4rem;height:.8rem}.bs-tooltip-auto[x-placement^=left] .arrow::before,.bs-tooltip-left .arrow::before{left:0;border-width:.4rem 0 .4rem .4rem;border-left-color:#000}.tooltip-inner{max-width:200px;padding:.25rem .5rem;color:#fff;text-align:center;background-color:#000;border-radius:.25rem}.popover{position:absolute;top:0;left:0;z-index:1060;display:block;max-width:276px;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;white-space:normal;line-break:auto;font-size:.875rem;word-wrap:break-word;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.2);border-radius:.3rem}.popover .arrow{position:absolute;display:block;width:1rem;height:.5rem;margin:0 .3rem}.popover .arrow::after,.popover .arrow::before{position:absolute;display:block;content:"";border-color:transparent;border-style:solid}.bs-popover-auto[x-placement^=top],.bs-popover-top{margin-bottom:.5rem}.bs-popover-auto[x-placement^=top] .arrow,.bs-popover-top .arrow{bottom:calc((.5rem + 1px) * -1)}.bs-popover-auto[x-placement^=top] .arrow::after,.bs-popover-auto[x-placement^=top] .arrow::before,.bs-popover-top .arrow::after,.bs-popover-top .arrow::before{border-width:.5rem .5rem 0}.bs-popover-auto[x-placement^=top] .arrow::before,.bs-popover-top .arrow::before{bottom:0;border-top-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=top] .arrow::after,.bs-popover-top .arrow::after{bottom:1px;border-top-color:#fff}.bs-popover-auto[x-placement^=right],.bs-popover-right{margin-left:.5rem}.bs-popover-auto[x-placement^=right] .arrow,.bs-popover-right .arrow{left:calc((.5rem + 1px) * -1);width:.5rem;height:1rem;margin:.3rem 0}.bs-popover-auto[x-placement^=right] .arrow::after,.bs-popover-auto[x-placement^=right] .arrow::before,.bs-popover-right .arrow::after,.bs-popover-right .arrow::before{border-width:.5rem .5rem .5rem 0}.bs-popover-auto[x-placement^=right] .arrow::before,.bs-popover-right .arrow::before{left:0;border-right-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=right] .arrow::after,.bs-popover-right .arrow::after{left:1px;border-right-color:#fff}.bs-popover-auto[x-placement^=bottom],.bs-popover-bottom{margin-top:.5rem}.bs-popover-auto[x-placement^=bottom] .arrow,.bs-popover-bottom .arrow{top:calc((.5rem + 1px) * -1)}.bs-popover-auto[x-placement^=bottom] .arrow::after,.bs-popover-auto[x-placement^=bottom] .arrow::before,.bs-popover-bottom .arrow::after,.bs-popover-bottom .arrow::before{border-width:0 .5rem .5rem .5rem}.bs-popover-auto[x-placement^=bottom] .arrow::before,.bs-popover-bottom .arrow::before{top:0;border-bottom-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=bottom] .arrow::after,.bs-popover-bottom .arrow::after{top:1px;border-bottom-color:#fff}.bs-popover-auto[x-placement^=bottom] .popover-header::before,.bs-popover-bottom .popover-header::before{position:absolute;top:0;left:50%;display:block;width:1rem;margin-left:-.5rem;content:"";border-bottom:1px solid #f7f7f7}.bs-popover-auto[x-placement^=left],.bs-popover-left{margin-right:.5rem}.bs-popover-auto[x-placement^=left] .arrow,.bs-popover-left .arrow{right:calc((.5rem + 1px) * -1);width:.5rem;height:1rem;margin:.3rem 0}.bs-popover-auto[x-placement^=left] .arrow::after,.bs-popover-auto[x-placement^=left] .arrow::before,.bs-popover-left .arrow::after,.bs-popover-left .arrow::before{border-width:.5rem 0 .5rem .5rem}.bs-popover-auto[x-placement^=left] .arrow::before,.bs-popover-left .arrow::before{right:0;border-left-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=left] .arrow::after,.bs-popover-left .arrow::after{right:1px;border-left-color:#fff}.popover-header{padding:.5rem .75rem;margin-bottom:0;font-size:1rem;color:inherit;background-color:#f7f7f7;border-bottom:1px solid #ebebeb;border-top-left-radius:calc(.3rem - 1px);border-top-right-radius:calc(.3rem - 1px)}.popover-header:empty{display:none}.popover-body{padding:.5rem .75rem;color:#212529}.carousel{position:relative}.carousel-inner{position:relative;width:100%;overflow:hidden}.carousel-item{position:relative;display:none;-ms-flex-align:center;align-items:center;width:100%;-webkit-backface-visibility:hidden;backface-visibility:hidden;-webkit-perspective:1000px;perspective:1000px}.carousel-item-next,.carousel-item-prev,.carousel-item.active{display:block;transition:-webkit-transform .6s ease;transition:transform .6s ease;transition:transform .6s ease,-webkit-transform .6s ease}@media screen and (prefers-reduced-motion:reduce){.carousel-item-next,.carousel-item-prev,.carousel-item.active{transition:none}}.carousel-item-next,.carousel-item-prev{position:absolute;top:0}.carousel-item-next.carousel-item-left,.carousel-item-prev.carousel-item-right{-webkit-transform:translateX(0);transform:translateX(0)}@supports ((-webkit-transform-style:preserve-3d) or (transform-style:preserve-3d)){.carousel-item-next.carousel-item-left,.carousel-item-prev.carousel-item-right{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}}.active.carousel-item-right,.carousel-item-next{-webkit-transform:translateX(100%);transform:translateX(100%)}@supports ((-webkit-transform-style:preserve-3d) or (transform-style:preserve-3d)){.active.carousel-item-right,.carousel-item-next{-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}}.active.carousel-item-left,.carousel-item-prev{-webkit-transform:translateX(-100%);transform:translateX(-100%)}@supports ((-webkit-transform-style:preserve-3d) or (transform-style:preserve-3d)){.active.carousel-item-left,.carousel-item-prev{-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}}.carousel-fade .carousel-item{opacity:0;transition-duration:.6s;transition-property:opacity}.carousel-fade .carousel-item-next.carousel-item-left,.carousel-fade .carousel-item-prev.carousel-item-right,.carousel-fade .carousel-item.active{opacity:1}.carousel-fade .active.carousel-item-left,.carousel-fade .active.carousel-item-right{opacity:0}.carousel-fade .active.carousel-item-left,.carousel-fade .active.carousel-item-prev,.carousel-fade .carousel-item-next,.carousel-fade .carousel-item-prev,.carousel-fade .carousel-item.active{-webkit-transform:translateX(0);transform:translateX(0)}@supports ((-webkit-transform-style:preserve-3d) or (transform-style:preserve-3d)){.carousel-fade .active.carousel-item-left,.carousel-fade .active.carousel-item-prev,.carousel-fade .carousel-item-next,.carousel-fade .carousel-item-prev,.carousel-fade .carousel-item.active{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}}.carousel-control-next,.carousel-control-prev{position:absolute;top:0;bottom:0;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;width:15%;color:#fff;text-align:center;opacity:.5}.carousel-control-next:focus,.carousel-control-next:hover,.carousel-control-prev:focus,.carousel-control-prev:hover{color:#fff;text-decoration:none;outline:0;opacity:.9}.carousel-control-prev{left:0}.carousel-control-next{right:0}.carousel-control-next-icon,.carousel-control-prev-icon{display:inline-block;width:20px;height:20px;background:transparent no-repeat center center;background-size:100% 100%}.carousel-control-prev-icon{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' viewBox='0 0 8 8'%3E%3Cpath d='M5.25 0l-4 4 4 4 1.5-1.5-2.5-2.5 2.5-2.5-1.5-1.5z'/%3E%3C/svg%3E")}.carousel-control-next-icon{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' viewBox='0 0 8 8'%3E%3Cpath d='M2.75 0l-1.5 1.5 2.5 2.5-2.5 2.5 1.5 1.5 4-4-4-4z'/%3E%3C/svg%3E")}.carousel-indicators{position:absolute;right:0;bottom:10px;left:0;z-index:15;display:-ms-flexbox;display:flex;-ms-flex-pack:center;justify-content:center;padding-left:0;margin-right:15%;margin-left:15%;list-style:none}.carousel-indicators li{position:relative;-ms-flex:0 1 auto;flex:0 1 auto;width:30px;height:3px;margin-right:3px;margin-left:3px;text-indent:-999px;cursor:pointer;background-color:rgba(255,255,255,.5)}.carousel-indicators li::before{position:absolute;top:-10px;left:0;display:inline-block;width:100%;height:10px;content:""}.carousel-indicators li::after{position:absolute;bottom:-10px;left:0;display:inline-block;width:100%;height:10px;content:""}.carousel-indicators .active{background-color:#fff}.carousel-caption{position:absolute;right:15%;bottom:20px;left:15%;z-index:10;padding-top:20px;padding-bottom:20px;color:#fff;text-align:center}.align-baseline{vertical-align:baseline!important}.align-top{vertical-align:top!important}.align-middle{vertical-align:middle!important}.align-bottom{vertical-align:bottom!important}.align-text-bottom{vertical-align:text-bottom!important}.align-text-top{vertical-align:text-top!important}.bg-primary{background-color:#007bff!important}a.bg-primary:focus,a.bg-primary:hover,button.bg-primary:focus,button.bg-primary:hover{background-color:#0062cc!important}.bg-secondary{background-color:#6c757d!important}a.bg-secondary:focus,a.bg-secondary:hover,button.bg-secondary:focus,button.bg-secondary:hover{background-color:#545b62!important}.bg-success{background-color:#28a745!important}a.bg-success:focus,a.bg-success:hover,button.bg-success:focus,button.bg-success:hover{background-color:#1e7e34!important}.bg-info{background-color:#17a2b8!important}a.bg-info:focus,a.bg-info:hover,button.bg-info:focus,button.bg-info:hover{background-color:#117a8b!important}.bg-warning{background-color:#ffc107!important}a.bg-warning:focus,a.bg-warning:hover,button.bg-warning:focus,button.bg-warning:hover{background-color:#d39e00!important}.bg-danger{background-color:#dc3545!important}a.bg-danger:focus,a.bg-danger:hover,button.bg-danger:focus,button.bg-danger:hover{background-color:#bd2130!important}.bg-light{background-color:#f8f9fa!important}a.bg-light:focus,a.bg-light:hover,button.bg-light:focus,button.bg-light:hover{background-color:#dae0e5!important}.bg-dark{background-color:#343a40!important}a.bg-dark:focus,a.bg-dark:hover,button.bg-dark:focus,button.bg-dark:hover{background-color:#1d2124!important}.bg-white{background-color:#fff!important}.bg-transparent{background-color:transparent!important}.border{border:1px solid #dee2e6!important}.border-top{border-top:1px solid #dee2e6!important}.border-right{border-right:1px solid #dee2e6!important}.border-bottom{border-bottom:1px solid #dee2e6!important}.border-left{border-left:1px solid #dee2e6!important}.border-0{border:0!important}.border-top-0{border-top:0!important}.border-right-0{border-right:0!important}.border-bottom-0{border-bottom:0!important}.border-left-0{border-left:0!important}.border-primary{border-color:#007bff!important}.border-secondary{border-color:#6c757d!important}.border-success{border-color:#28a745!important}.border-info{border-color:#17a2b8!important}.border-warning{border-color:#ffc107!important}.border-danger{border-color:#dc3545!important}.border-light{border-color:#f8f9fa!important}.border-dark{border-color:#343a40!important}.border-white{border-color:#fff!important}.rounded{border-radius:.25rem!important}.rounded-top{border-top-left-radius:.25rem!important;border-top-right-radius:.25rem!important}.rounded-right{border-top-right-radius:.25rem!important;border-bottom-right-radius:.25rem!important}.rounded-bottom{border-bottom-right-radius:.25rem!important;border-bottom-left-radius:.25rem!important}.rounded-left{border-top-left-radius:.25rem!important;border-bottom-left-radius:.25rem!important}.rounded-circle{border-radius:50%!important}.rounded-0{border-radius:0!important}.clearfix::after{display:block;clear:both;content:""}.d-none{display:none!important}.d-inline{display:inline!important}.d-inline-block{display:inline-block!important}.d-block{display:block!important}.d-table{display:table!important}.d-table-row{display:table-row!important}.d-table-cell{display:table-cell!important}.d-flex{display:-ms-flexbox!important;display:flex!important}.d-inline-flex{display:-ms-inline-flexbox!important;display:inline-flex!important}@media (min-width:576px){.d-sm-none{display:none!important}.d-sm-inline{display:inline!important}.d-sm-inline-block{display:inline-block!important}.d-sm-block{display:block!important}.d-sm-table{display:table!important}.d-sm-table-row{display:table-row!important}.d-sm-table-cell{display:table-cell!important}.d-sm-flex{display:-ms-flexbox!important;display:flex!important}.d-sm-inline-flex{display:-ms-inline-flexbox!important;display:inline-flex!important}}@media (min-width:768px){.d-md-none{display:none!important}.d-md-inline{display:inline!important}.d-md-inline-block{display:inline-block!important}.d-md-block{display:block!important}.d-md-table{display:table!important}.d-md-table-row{display:table-row!important}.d-md-table-cell{display:table-cell!important}.d-md-flex{display:-ms-flexbox!important;display:flex!important}.d-md-inline-flex{display:-ms-inline-flexbox!important;display:inline-flex!important}}@media (min-width:992px){.d-lg-none{display:none!important}.d-lg-inline{display:inline!important}.d-lg-inline-block{display:inline-block!important}.d-lg-block{display:block!important}.d-lg-table{display:table!important}.d-lg-table-row{display:table-row!important}.d-lg-table-cell{display:table-cell!important}.d-lg-flex{display:-ms-flexbox!important;display:flex!important}.d-lg-inline-flex{display:-ms-inline-flexbox!important;display:inline-flex!important}}@media (min-width:1200px){.d-xl-none{display:none!important}.d-xl-inline{display:inline!important}.d-xl-inline-block{display:inline-block!important}.d-xl-block{display:block!important}.d-xl-table{display:table!important}.d-xl-table-row{display:table-row!important}.d-xl-table-cell{display:table-cell!important}.d-xl-flex{display:-ms-flexbox!important;display:flex!important}.d-xl-inline-flex{display:-ms-inline-flexbox!important;display:inline-flex!important}}@media print{.d-print-none{display:none!important}.d-print-inline{display:inline!important}.d-print-inline-block{display:inline-block!important}.d-print-block{display:block!important}.d-print-table{display:table!important}.d-print-table-row{display:table-row!important}.d-print-table-cell{display:table-cell!important}.d-print-flex{display:-ms-flexbox!important;display:flex!important}.d-print-inline-flex{display:-ms-inline-flexbox!important;display:inline-flex!important}}.embed-responsive{position:relative;display:block;width:100%;padding:0;overflow:hidden}.embed-responsive::before{display:block;content:""}.embed-responsive .embed-responsive-item,.embed-responsive embed,.embed-responsive iframe,.embed-responsive object,.embed-responsive video{position:absolute;top:0;bottom:0;left:0;width:100%;height:100%;border:0}.embed-responsive-21by9::before{padding-top:42.857143%}.embed-responsive-16by9::before{padding-top:56.25%}.embed-responsive-4by3::before{padding-top:75%}.embed-responsive-1by1::before{padding-top:100%}.flex-row{-ms-flex-direction:row!important;flex-direction:row!important}.flex-column{-ms-flex-direction:column!important;flex-direction:column!important}.flex-row-reverse{-ms-flex-direction:row-reverse!important;flex-direction:row-reverse!important}.flex-column-reverse{-ms-flex-direction:column-reverse!important;flex-direction:column-reverse!important}.flex-wrap{-ms-flex-wrap:wrap!important;flex-wrap:wrap!important}.flex-nowrap{-ms-flex-wrap:nowrap!important;flex-wrap:nowrap!important}.flex-wrap-reverse{-ms-flex-wrap:wrap-reverse!important;flex-wrap:wrap-reverse!important}.flex-fill{-ms-flex:1 1 auto!important;flex:1 1 auto!important}.flex-grow-0{-ms-flex-positive:0!important;flex-grow:0!important}.flex-grow-1{-ms-flex-positive:1!important;flex-grow:1!important}.flex-shrink-0{-ms-flex-negative:0!important;flex-shrink:0!important}.flex-shrink-1{-ms-flex-negative:1!important;flex-shrink:1!important}.justify-content-start{-ms-flex-pack:start!important;justify-content:flex-start!important}.justify-content-end{-ms-flex-pack:end!important;justify-content:flex-end!important}.justify-content-center{-ms-flex-pack:center!important;justify-content:center!important}.justify-content-between{-ms-flex-pack:justify!important;justify-content:space-between!important}.justify-content-around{-ms-flex-pack:distribute!important;justify-content:space-around!important}.align-items-start{-ms-flex-align:start!important;align-items:flex-start!important}.align-items-end{-ms-flex-align:end!important;align-items:flex-end!important}.align-items-center{-ms-flex-align:center!important;align-items:center!important}.align-items-baseline{-ms-flex-align:baseline!important;align-items:baseline!important}.align-items-stretch{-ms-flex-align:stretch!important;align-items:stretch!important}.align-content-start{-ms-flex-line-pack:start!important;align-content:flex-start!important}.align-content-end{-ms-flex-line-pack:end!important;align-content:flex-end!important}.align-content-center{-ms-flex-line-pack:center!important;align-content:center!important}.align-content-between{-ms-flex-line-pack:justify!important;align-content:space-between!important}.align-content-around{-ms-flex-line-pack:distribute!important;align-content:space-around!important}.align-content-stretch{-ms-flex-line-pack:stretch!important;align-content:stretch!important}.align-self-auto{-ms-flex-item-align:auto!important;align-self:auto!important}.align-self-start{-ms-flex-item-align:start!important;align-self:flex-start!important}.align-self-end{-ms-flex-item-align:end!important;align-self:flex-end!important}.align-self-center{-ms-flex-item-align:center!important;align-self:center!important}.align-self-baseline{-ms-flex-item-align:baseline!important;align-self:baseline!important}.align-self-stretch{-ms-flex-item-align:stretch!important;align-self:stretch!important}@media (min-width:576px){.flex-sm-row{-ms-flex-direction:row!important;flex-direction:row!important}.flex-sm-column{-ms-flex-direction:column!important;flex-direction:column!important}.flex-sm-row-reverse{-ms-flex-direction:row-reverse!important;flex-direction:row-reverse!important}.flex-sm-column-reverse{-ms-flex-direction:column-reverse!important;flex-direction:column-reverse!important}.flex-sm-wrap{-ms-flex-wrap:wrap!important;flex-wrap:wrap!important}.flex-sm-nowrap{-ms-flex-wrap:nowrap!important;flex-wrap:nowrap!important}.flex-sm-wrap-reverse{-ms-flex-wrap:wrap-reverse!important;flex-wrap:wrap-reverse!important}.flex-sm-fill{-ms-flex:1 1 auto!important;flex:1 1 auto!important}.flex-sm-grow-0{-ms-flex-positive:0!important;flex-grow:0!important}.flex-sm-grow-1{-ms-flex-positive:1!important;flex-grow:1!important}.flex-sm-shrink-0{-ms-flex-negative:0!important;flex-shrink:0!important}.flex-sm-shrink-1{-ms-flex-negative:1!important;flex-shrink:1!important}.justify-content-sm-start{-ms-flex-pack:start!important;justify-content:flex-start!important}.justify-content-sm-end{-ms-flex-pack:end!important;justify-content:flex-end!important}.justify-content-sm-center{-ms-flex-pack:center!important;justify-content:center!important}.justify-content-sm-between{-ms-flex-pack:justify!important;justify-content:space-between!important}.justify-content-sm-around{-ms-flex-pack:distribute!important;justify-content:space-around!important}.align-items-sm-start{-ms-flex-align:start!important;align-items:flex-start!important}.align-items-sm-end{-ms-flex-align:end!important;align-items:flex-end!important}.align-items-sm-center{-ms-flex-align:center!important;align-items:center!important}.align-items-sm-baseline{-ms-flex-align:baseline!important;align-items:baseline!important}.align-items-sm-stretch{-ms-flex-align:stretch!important;align-items:stretch!important}.align-content-sm-start{-ms-flex-line-pack:start!important;align-content:flex-start!important}.align-content-sm-end{-ms-flex-line-pack:end!important;align-content:flex-end!important}.align-content-sm-center{-ms-flex-line-pack:center!important;align-content:center!important}.align-content-sm-between{-ms-flex-line-pack:justify!important;align-content:space-between!important}.align-content-sm-around{-ms-flex-line-pack:distribute!important;align-content:space-around!important}.align-content-sm-stretch{-ms-flex-line-pack:stretch!important;align-content:stretch!important}.align-self-sm-auto{-ms-flex-item-align:auto!important;align-self:auto!important}.align-self-sm-start{-ms-flex-item-align:start!important;align-self:flex-start!important}.align-self-sm-end{-ms-flex-item-align:end!important;align-self:flex-end!important}.align-self-sm-center{-ms-flex-item-align:center!important;align-self:center!important}.align-self-sm-baseline{-ms-flex-item-align:baseline!important;align-self:baseline!important}.align-self-sm-stretch{-ms-flex-item-align:stretch!important;align-self:stretch!important}}@media (min-width:768px){.flex-md-row{-ms-flex-direction:row!important;flex-direction:row!important}.flex-md-column{-ms-flex-direction:column!important;flex-direction:column!important}.flex-md-row-reverse{-ms-flex-direction:row-reverse!important;flex-direction:row-reverse!important}.flex-md-column-reverse{-ms-flex-direction:column-reverse!important;flex-direction:column-reverse!important}.flex-md-wrap{-ms-flex-wrap:wrap!important;flex-wrap:wrap!important}.flex-md-nowrap{-ms-flex-wrap:nowrap!important;flex-wrap:nowrap!important}.flex-md-wrap-reverse{-ms-flex-wrap:wrap-reverse!important;flex-wrap:wrap-reverse!important}.flex-md-fill{-ms-flex:1 1 auto!important;flex:1 1 auto!important}.flex-md-grow-0{-ms-flex-positive:0!important;flex-grow:0!important}.flex-md-grow-1{-ms-flex-positive:1!important;flex-grow:1!important}.flex-md-shrink-0{-ms-flex-negative:0!important;flex-shrink:0!important}.flex-md-shrink-1{-ms-flex-negative:1!important;flex-shrink:1!important}.justify-content-md-start{-ms-flex-pack:start!important;justify-content:flex-start!important}.justify-content-md-end{-ms-flex-pack:end!important;justify-content:flex-end!important}.justify-content-md-center{-ms-flex-pack:center!important;justify-content:center!important}.justify-content-md-between{-ms-flex-pack:justify!important;justify-content:space-between!important}.justify-content-md-around{-ms-flex-pack:distribute!important;justify-content:space-around!important}.align-items-md-start{-ms-flex-align:start!important;align-items:flex-start!important}.align-items-md-end{-ms-flex-align:end!important;align-items:flex-end!important}.align-items-md-center{-ms-flex-align:center!important;align-items:center!important}.align-items-md-baseline{-ms-flex-align:baseline!important;align-items:baseline!important}.align-items-md-stretch{-ms-flex-align:stretch!important;align-items:stretch!important}.align-content-md-start{-ms-flex-line-pack:start!important;align-content:flex-start!important}.align-content-md-end{-ms-flex-line-pack:end!important;align-content:flex-end!important}.align-content-md-center{-ms-flex-line-pack:center!important;align-content:center!important}.align-content-md-between{-ms-flex-line-pack:justify!important;align-content:space-between!important}.align-content-md-around{-ms-flex-line-pack:distribute!important;align-content:space-around!important}.align-content-md-stretch{-ms-flex-line-pack:stretch!important;align-content:stretch!important}.align-self-md-auto{-ms-flex-item-align:auto!important;align-self:auto!important}.align-self-md-start{-ms-flex-item-align:start!important;align-self:flex-start!important}.align-self-md-end{-ms-flex-item-align:end!important;align-self:flex-end!important}.align-self-md-center{-ms-flex-item-align:center!important;align-self:center!important}.align-self-md-baseline{-ms-flex-item-align:baseline!important;align-self:baseline!important}.align-self-md-stretch{-ms-flex-item-align:stretch!important;align-self:stretch!important}}@media (min-width:992px){.flex-lg-row{-ms-flex-direction:row!important;flex-direction:row!important}.flex-lg-column{-ms-flex-direction:column!important;flex-direction:column!important}.flex-lg-row-reverse{-ms-flex-direction:row-reverse!important;flex-direction:row-reverse!important}.flex-lg-column-reverse{-ms-flex-direction:column-reverse!important;flex-direction:column-reverse!important}.flex-lg-wrap{-ms-flex-wrap:wrap!important;flex-wrap:wrap!important}.flex-lg-nowrap{-ms-flex-wrap:nowrap!important;flex-wrap:nowrap!important}.flex-lg-wrap-reverse{-ms-flex-wrap:wrap-reverse!important;flex-wrap:wrap-reverse!important}.flex-lg-fill{-ms-flex:1 1 auto!important;flex:1 1 auto!important}.flex-lg-grow-0{-ms-flex-positive:0!important;flex-grow:0!important}.flex-lg-grow-1{-ms-flex-positive:1!important;flex-grow:1!important}.flex-lg-shrink-0{-ms-flex-negative:0!important;flex-shrink:0!important}.flex-lg-shrink-1{-ms-flex-negative:1!important;flex-shrink:1!important}.justify-content-lg-start{-ms-flex-pack:start!important;justify-content:flex-start!important}.justify-content-lg-end{-ms-flex-pack:end!important;justify-content:flex-end!important}.justify-content-lg-center{-ms-flex-pack:center!important;justify-content:center!important}.justify-content-lg-between{-ms-flex-pack:justify!important;justify-content:space-between!important}.justify-content-lg-around{-ms-flex-pack:distribute!important;justify-content:space-around!important}.align-items-lg-start{-ms-flex-align:start!important;align-items:flex-start!important}.align-items-lg-end{-ms-flex-align:end!important;align-items:flex-end!important}.align-items-lg-center{-ms-flex-align:center!important;align-items:center!important}.align-items-lg-baseline{-ms-flex-align:baseline!important;align-items:baseline!important}.align-items-lg-stretch{-ms-flex-align:stretch!important;align-items:stretch!important}.align-content-lg-start{-ms-flex-line-pack:start!important;align-content:flex-start!important}.align-content-lg-end{-ms-flex-line-pack:end!important;align-content:flex-end!important}.align-content-lg-center{-ms-flex-line-pack:center!important;align-content:center!important}.align-content-lg-between{-ms-flex-line-pack:justify!important;align-content:space-between!important}.align-content-lg-around{-ms-flex-line-pack:distribute!important;align-content:space-around!important}.align-content-lg-stretch{-ms-flex-line-pack:stretch!important;align-content:stretch!important}.align-self-lg-auto{-ms-flex-item-align:auto!important;align-self:auto!important}.align-self-lg-start{-ms-flex-item-align:start!important;align-self:flex-start!important}.align-self-lg-end{-ms-flex-item-align:end!important;align-self:flex-end!important}.align-self-lg-center{-ms-flex-item-align:center!important;align-self:center!important}.align-self-lg-baseline{-ms-flex-item-align:baseline!important;align-self:baseline!important}.align-self-lg-stretch{-ms-flex-item-align:stretch!important;align-self:stretch!important}}@media (min-width:1200px){.flex-xl-row{-ms-flex-direction:row!important;flex-direction:row!important}.flex-xl-column{-ms-flex-direction:column!important;flex-direction:column!important}.flex-xl-row-reverse{-ms-flex-direction:row-reverse!important;flex-direction:row-reverse!important}.flex-xl-column-reverse{-ms-flex-direction:column-reverse!important;flex-direction:column-reverse!important}.flex-xl-wrap{-ms-flex-wrap:wrap!important;flex-wrap:wrap!important}.flex-xl-nowrap{-ms-flex-wrap:nowrap!important;flex-wrap:nowrap!important}.flex-xl-wrap-reverse{-ms-flex-wrap:wrap-reverse!important;flex-wrap:wrap-reverse!important}.flex-xl-fill{-ms-flex:1 1 auto!important;flex:1 1 auto!important}.flex-xl-grow-0{-ms-flex-positive:0!important;flex-grow:0!important}.flex-xl-grow-1{-ms-flex-positive:1!important;flex-grow:1!important}.flex-xl-shrink-0{-ms-flex-negative:0!important;flex-shrink:0!important}.flex-xl-shrink-1{-ms-flex-negative:1!important;flex-shrink:1!important}.justify-content-xl-start{-ms-flex-pack:start!important;justify-content:flex-start!important}.justify-content-xl-end{-ms-flex-pack:end!important;justify-content:flex-end!important}.justify-content-xl-center{-ms-flex-pack:center!important;justify-content:center!important}.justify-content-xl-between{-ms-flex-pack:justify!important;justify-content:space-between!important}.justify-content-xl-around{-ms-flex-pack:distribute!important;justify-content:space-around!important}.align-items-xl-start{-ms-flex-align:start!important;align-items:flex-start!important}.align-items-xl-end{-ms-flex-align:end!important;align-items:flex-end!important}.align-items-xl-center{-ms-flex-align:center!important;align-items:center!important}.align-items-xl-baseline{-ms-flex-align:baseline!important;align-items:baseline!important}.align-items-xl-stretch{-ms-flex-align:stretch!important;align-items:stretch!important}.align-content-xl-start{-ms-flex-line-pack:start!important;align-content:flex-start!important}.align-content-xl-end{-ms-flex-line-pack:end!important;align-content:flex-end!important}.align-content-xl-center{-ms-flex-line-pack:center!important;align-content:center!important}.align-content-xl-between{-ms-flex-line-pack:justify!important;align-content:space-between!important}.align-content-xl-around{-ms-flex-line-pack:distribute!important;align-content:space-around!important}.align-content-xl-stretch{-ms-flex-line-pack:stretch!important;align-content:stretch!important}.align-self-xl-auto{-ms-flex-item-align:auto!important;align-self:auto!important}.align-self-xl-start{-ms-flex-item-align:start!important;align-self:flex-start!important}.align-self-xl-end{-ms-flex-item-align:end!important;align-self:flex-end!important}.align-self-xl-center{-ms-flex-item-align:center!important;align-self:center!important}.align-self-xl-baseline{-ms-flex-item-align:baseline!important;align-self:baseline!important}.align-self-xl-stretch{-ms-flex-item-align:stretch!important;align-self:stretch!important}}.float-left{float:left!important}.float-right{float:right!important}.float-none{float:none!important}@media (min-width:576px){.float-sm-left{float:left!important}.float-sm-right{float:right!important}.float-sm-none{float:none!important}}@media (min-width:768px){.float-md-left{float:left!important}.float-md-right{float:right!important}.float-md-none{float:none!important}}@media (min-width:992px){.float-lg-left{float:left!important}.float-lg-right{float:right!important}.float-lg-none{float:none!important}}@media (min-width:1200px){.float-xl-left{float:left!important}.float-xl-right{float:right!important}.float-xl-none{float:none!important}}.position-static{position:static!important}.position-relative{position:relative!important}.position-absolute{position:absolute!important}.position-fixed{position:fixed!important}.position-sticky{position:-webkit-sticky!important;position:sticky!important}.fixed-top{position:fixed;top:0;right:0;left:0;z-index:1030}.fixed-bottom{position:fixed;right:0;bottom:0;left:0;z-index:1030}@supports ((position:-webkit-sticky) or (position:sticky)){.sticky-top{position:-webkit-sticky;position:sticky;top:0;z-index:1020}}.sr-only{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;overflow:visible;clip:auto;white-space:normal}.shadow-sm{box-shadow:0 .125rem .25rem rgba(0,0,0,.075)!important}.shadow{box-shadow:0 .5rem 1rem rgba(0,0,0,.15)!important}.shadow-lg{box-shadow:0 1rem 3rem rgba(0,0,0,.175)!important}.shadow-none{box-shadow:none!important}.w-25{width:25%!important}.w-50{width:50%!important}.w-75{width:75%!important}.w-100{width:100%!important}.w-auto{width:auto!important}.h-25{height:25%!important}.h-50{height:50%!important}.h-75{height:75%!important}.h-100{height:100%!important}.h-auto{height:auto!important}.mw-100{max-width:100%!important}.mh-100{max-height:100%!important}.m-0{margin:0!important}.mt-0,.my-0{margin-top:0!important}.mr-0,.mx-0{margin-right:0!important}.mb-0,.my-0{margin-bottom:0!important}.ml-0,.mx-0{margin-left:0!important}.m-1{margin:.25rem!important}.mt-1,.my-1{margin-top:.25rem!important}.mr-1,.mx-1{margin-right:.25rem!important}.mb-1,.my-1{margin-bottom:.25rem!important}.ml-1,.mx-1{margin-left:.25rem!important}.m-2{margin:.5rem!important}.mt-2,.my-2{margin-top:.5rem!important}.mr-2,.mx-2{margin-right:.5rem!important}.mb-2,.my-2{margin-bottom:.5rem!important}.ml-2,.mx-2{margin-left:.5rem!important}.m-3{margin:1rem!important}.mt-3,.my-3{margin-top:1rem!important}.mr-3,.mx-3{margin-right:1rem!important}.mb-3,.my-3{margin-bottom:1rem!important}.ml-3,.mx-3{margin-left:1rem!important}.m-4{margin:1.5rem!important}.mt-4,.my-4{margin-top:1.5rem!important}.mr-4,.mx-4{margin-right:1.5rem!important}.mb-4,.my-4{margin-bottom:1.5rem!important}.ml-4,.mx-4{margin-left:1.5rem!important}.m-5{margin:3rem!important}.mt-5,.my-5{margin-top:3rem!important}.mr-5,.mx-5{margin-right:3rem!important}.mb-5,.my-5{margin-bottom:3rem!important}.ml-5,.mx-5{margin-left:3rem!important}.p-0{padding:0!important}.pt-0,.py-0{padding-top:0!important}.pr-0,.px-0{padding-right:0!important}.pb-0,.py-0{padding-bottom:0!important}.pl-0,.px-0{padding-left:0!important}.p-1{padding:.25rem!important}.pt-1,.py-1{padding-top:.25rem!important}.pr-1,.px-1{padding-right:.25rem!important}.pb-1,.py-1{padding-bottom:.25rem!important}.pl-1,.px-1{padding-left:.25rem!important}.p-2{padding:.5rem!important}.pt-2,.py-2{padding-top:.5rem!important}.pr-2,.px-2{padding-right:.5rem!important}.pb-2,.py-2{padding-bottom:.5rem!important}.pl-2,.px-2{padding-left:.5rem!important}.p-3{padding:1rem!important}.pt-3,.py-3{padding-top:1rem!important}.pr-3,.px-3{padding-right:1rem!important}.pb-3,.py-3{padding-bottom:1rem!important}.pl-3,.px-3{padding-left:1rem!important}.p-4{padding:1.5rem!important}.pt-4,.py-4{padding-top:1.5rem!important}.pr-4,.px-4{padding-right:1.5rem!important}.pb-4,.py-4{padding-bottom:1.5rem!important}.pl-4,.px-4{padding-left:1.5rem!important}.p-5{padding:3rem!important}.pt-5,.py-5{padding-top:3rem!important}.pr-5,.px-5{padding-right:3rem!important}.pb-5,.py-5{padding-bottom:3rem!important}.pl-5,.px-5{padding-left:3rem!important}.m-auto{margin:auto!important}.mt-auto,.my-auto{margin-top:auto!important}.mr-auto,.mx-auto{margin-right:auto!important}.mb-auto,.my-auto{margin-bottom:auto!important}.ml-auto,.mx-auto{margin-left:auto!important}@media (min-width:576px){.m-sm-0{margin:0!important}.mt-sm-0,.my-sm-0{margin-top:0!important}.mr-sm-0,.mx-sm-0{margin-right:0!important}.mb-sm-0,.my-sm-0{margin-bottom:0!important}.ml-sm-0,.mx-sm-0{margin-left:0!important}.m-sm-1{margin:.25rem!important}.mt-sm-1,.my-sm-1{margin-top:.25rem!important}.mr-sm-1,.mx-sm-1{margin-right:.25rem!important}.mb-sm-1,.my-sm-1{margin-bottom:.25rem!important}.ml-sm-1,.mx-sm-1{margin-left:.25rem!important}.m-sm-2{margin:.5rem!important}.mt-sm-2,.my-sm-2{margin-top:.5rem!important}.mr-sm-2,.mx-sm-2{margin-right:.5rem!important}.mb-sm-2,.my-sm-2{margin-bottom:.5rem!important}.ml-sm-2,.mx-sm-2{margin-left:.5rem!important}.m-sm-3{margin:1rem!important}.mt-sm-3,.my-sm-3{margin-top:1rem!important}.mr-sm-3,.mx-sm-3{margin-right:1rem!important}.mb-sm-3,.my-sm-3{margin-bottom:1rem!important}.ml-sm-3,.mx-sm-3{margin-left:1rem!important}.m-sm-4{margin:1.5rem!important}.mt-sm-4,.my-sm-4{margin-top:1.5rem!important}.mr-sm-4,.mx-sm-4{margin-right:1.5rem!important}.mb-sm-4,.my-sm-4{margin-bottom:1.5rem!important}.ml-sm-4,.mx-sm-4{margin-left:1.5rem!important}.m-sm-5{margin:3rem!important}.mt-sm-5,.my-sm-5{margin-top:3rem!important}.mr-sm-5,.mx-sm-5{margin-right:3rem!important}.mb-sm-5,.my-sm-5{margin-bottom:3rem!important}.ml-sm-5,.mx-sm-5{margin-left:3rem!important}.p-sm-0{padding:0!important}.pt-sm-0,.py-sm-0{padding-top:0!important}.pr-sm-0,.px-sm-0{padding-right:0!important}.pb-sm-0,.py-sm-0{padding-bottom:0!important}.pl-sm-0,.px-sm-0{padding-left:0!important}.p-sm-1{padding:.25rem!important}.pt-sm-1,.py-sm-1{padding-top:.25rem!important}.pr-sm-1,.px-sm-1{padding-right:.25rem!important}.pb-sm-1,.py-sm-1{padding-bottom:.25rem!important}.pl-sm-1,.px-sm-1{padding-left:.25rem!important}.p-sm-2{padding:.5rem!important}.pt-sm-2,.py-sm-2{padding-top:.5rem!important}.pr-sm-2,.px-sm-2{padding-right:.5rem!important}.pb-sm-2,.py-sm-2{padding-bottom:.5rem!important}.pl-sm-2,.px-sm-2{padding-left:.5rem!important}.p-sm-3{padding:1rem!important}.pt-sm-3,.py-sm-3{padding-top:1rem!important}.pr-sm-3,.px-sm-3{padding-right:1rem!important}.pb-sm-3,.py-sm-3{padding-bottom:1rem!important}.pl-sm-3,.px-sm-3{padding-left:1rem!important}.p-sm-4{padding:1.5rem!important}.pt-sm-4,.py-sm-4{padding-top:1.5rem!important}.pr-sm-4,.px-sm-4{padding-right:1.5rem!important}.pb-sm-4,.py-sm-4{padding-bottom:1.5rem!important}.pl-sm-4,.px-sm-4{padding-left:1.5rem!important}.p-sm-5{padding:3rem!important}.pt-sm-5,.py-sm-5{padding-top:3rem!important}.pr-sm-5,.px-sm-5{padding-right:3rem!important}.pb-sm-5,.py-sm-5{padding-bottom:3rem!important}.pl-sm-5,.px-sm-5{padding-left:3rem!important}.m-sm-auto{margin:auto!important}.mt-sm-auto,.my-sm-auto{margin-top:auto!important}.mr-sm-auto,.mx-sm-auto{margin-right:auto!important}.mb-sm-auto,.my-sm-auto{margin-bottom:auto!important}.ml-sm-auto,.mx-sm-auto{margin-left:auto!important}}@media (min-width:768px){.m-md-0{margin:0!important}.mt-md-0,.my-md-0{margin-top:0!important}.mr-md-0,.mx-md-0{margin-right:0!important}.mb-md-0,.my-md-0{margin-bottom:0!important}.ml-md-0,.mx-md-0{margin-left:0!important}.m-md-1{margin:.25rem!important}.mt-md-1,.my-md-1{margin-top:.25rem!important}.mr-md-1,.mx-md-1{margin-right:.25rem!important}.mb-md-1,.my-md-1{margin-bottom:.25rem!important}.ml-md-1,.mx-md-1{margin-left:.25rem!important}.m-md-2{margin:.5rem!important}.mt-md-2,.my-md-2{margin-top:.5rem!important}.mr-md-2,.mx-md-2{margin-right:.5rem!important}.mb-md-2,.my-md-2{margin-bottom:.5rem!important}.ml-md-2,.mx-md-2{margin-left:.5rem!important}.m-md-3{margin:1rem!important}.mt-md-3,.my-md-3{margin-top:1rem!important}.mr-md-3,.mx-md-3{margin-right:1rem!important}.mb-md-3,.my-md-3{margin-bottom:1rem!important}.ml-md-3,.mx-md-3{margin-left:1rem!important}.m-md-4{margin:1.5rem!important}.mt-md-4,.my-md-4{margin-top:1.5rem!important}.mr-md-4,.mx-md-4{margin-right:1.5rem!important}.mb-md-4,.my-md-4{margin-bottom:1.5rem!important}.ml-md-4,.mx-md-4{margin-left:1.5rem!important}.m-md-5{margin:3rem!important}.mt-md-5,.my-md-5{margin-top:3rem!important}.mr-md-5,.mx-md-5{margin-right:3rem!important}.mb-md-5,.my-md-5{margin-bottom:3rem!important}.ml-md-5,.mx-md-5{margin-left:3rem!important}.p-md-0{padding:0!important}.pt-md-0,.py-md-0{padding-top:0!important}.pr-md-0,.px-md-0{padding-right:0!important}.pb-md-0,.py-md-0{padding-bottom:0!important}.pl-md-0,.px-md-0{padding-left:0!important}.p-md-1{padding:.25rem!important}.pt-md-1,.py-md-1{padding-top:.25rem!important}.pr-md-1,.px-md-1{padding-right:.25rem!important}.pb-md-1,.py-md-1{padding-bottom:.25rem!important}.pl-md-1,.px-md-1{padding-left:.25rem!important}.p-md-2{padding:.5rem!important}.pt-md-2,.py-md-2{padding-top:.5rem!important}.pr-md-2,.px-md-2{padding-right:.5rem!important}.pb-md-2,.py-md-2{padding-bottom:.5rem!important}.pl-md-2,.px-md-2{padding-left:.5rem!important}.p-md-3{padding:1rem!important}.pt-md-3,.py-md-3{padding-top:1rem!important}.pr-md-3,.px-md-3{padding-right:1rem!important}.pb-md-3,.py-md-3{padding-bottom:1rem!important}.pl-md-3,.px-md-3{padding-left:1rem!important}.p-md-4{padding:1.5rem!important}.pt-md-4,.py-md-4{padding-top:1.5rem!important}.pr-md-4,.px-md-4{padding-right:1.5rem!important}.pb-md-4,.py-md-4{padding-bottom:1.5rem!important}.pl-md-4,.px-md-4{padding-left:1.5rem!important}.p-md-5{padding:3rem!important}.pt-md-5,.py-md-5{padding-top:3rem!important}.pr-md-5,.px-md-5{padding-right:3rem!important}.pb-md-5,.py-md-5{padding-bottom:3rem!important}.pl-md-5,.px-md-5{padding-left:3rem!important}.m-md-auto{margin:auto!important}.mt-md-auto,.my-md-auto{margin-top:auto!important}.mr-md-auto,.mx-md-auto{margin-right:auto!important}.mb-md-auto,.my-md-auto{margin-bottom:auto!important}.ml-md-auto,.mx-md-auto{margin-left:auto!important}}@media (min-width:992px){.m-lg-0{margin:0!important}.mt-lg-0,.my-lg-0{margin-top:0!important}.mr-lg-0,.mx-lg-0{margin-right:0!important}.mb-lg-0,.my-lg-0{margin-bottom:0!important}.ml-lg-0,.mx-lg-0{margin-left:0!important}.m-lg-1{margin:.25rem!important}.mt-lg-1,.my-lg-1{margin-top:.25rem!important}.mr-lg-1,.mx-lg-1{margin-right:.25rem!important}.mb-lg-1,.my-lg-1{margin-bottom:.25rem!important}.ml-lg-1,.mx-lg-1{margin-left:.25rem!important}.m-lg-2{margin:.5rem!important}.mt-lg-2,.my-lg-2{margin-top:.5rem!important}.mr-lg-2,.mx-lg-2{margin-right:.5rem!important}.mb-lg-2,.my-lg-2{margin-bottom:.5rem!important}.ml-lg-2,.mx-lg-2{margin-left:.5rem!important}.m-lg-3{margin:1rem!important}.mt-lg-3,.my-lg-3{margin-top:1rem!important}.mr-lg-3,.mx-lg-3{margin-right:1rem!important}.mb-lg-3,.my-lg-3{margin-bottom:1rem!important}.ml-lg-3,.mx-lg-3{margin-left:1rem!important}.m-lg-4{margin:1.5rem!important}.mt-lg-4,.my-lg-4{margin-top:1.5rem!important}.mr-lg-4,.mx-lg-4{margin-right:1.5rem!important}.mb-lg-4,.my-lg-4{margin-bottom:1.5rem!important}.ml-lg-4,.mx-lg-4{margin-left:1.5rem!important}.m-lg-5{margin:3rem!important}.mt-lg-5,.my-lg-5{margin-top:3rem!important}.mr-lg-5,.mx-lg-5{margin-right:3rem!important}.mb-lg-5,.my-lg-5{margin-bottom:3rem!important}.ml-lg-5,.mx-lg-5{margin-left:3rem!important}.p-lg-0{padding:0!important}.pt-lg-0,.py-lg-0{padding-top:0!important}.pr-lg-0,.px-lg-0{padding-right:0!important}.pb-lg-0,.py-lg-0{padding-bottom:0!important}.pl-lg-0,.px-lg-0{padding-left:0!important}.p-lg-1{padding:.25rem!important}.pt-lg-1,.py-lg-1{padding-top:.25rem!important}.pr-lg-1,.px-lg-1{padding-right:.25rem!important}.pb-lg-1,.py-lg-1{padding-bottom:.25rem!important}.pl-lg-1,.px-lg-1{padding-left:.25rem!important}.p-lg-2{padding:.5rem!important}.pt-lg-2,.py-lg-2{padding-top:.5rem!important}.pr-lg-2,.px-lg-2{padding-right:.5rem!important}.pb-lg-2,.py-lg-2{padding-bottom:.5rem!important}.pl-lg-2,.px-lg-2{padding-left:.5rem!important}.p-lg-3{padding:1rem!important}.pt-lg-3,.py-lg-3{padding-top:1rem!important}.pr-lg-3,.px-lg-3{padding-right:1rem!important}.pb-lg-3,.py-lg-3{padding-bottom:1rem!important}.pl-lg-3,.px-lg-3{padding-left:1rem!important}.p-lg-4{padding:1.5rem!important}.pt-lg-4,.py-lg-4{padding-top:1.5rem!important}.pr-lg-4,.px-lg-4{padding-right:1.5rem!important}.pb-lg-4,.py-lg-4{padding-bottom:1.5rem!important}.pl-lg-4,.px-lg-4{padding-left:1.5rem!important}.p-lg-5{padding:3rem!important}.pt-lg-5,.py-lg-5{padding-top:3rem!important}.pr-lg-5,.px-lg-5{padding-right:3rem!important}.pb-lg-5,.py-lg-5{padding-bottom:3rem!important}.pl-lg-5,.px-lg-5{padding-left:3rem!important}.m-lg-auto{margin:auto!important}.mt-lg-auto,.my-lg-auto{margin-top:auto!important}.mr-lg-auto,.mx-lg-auto{margin-right:auto!important}.mb-lg-auto,.my-lg-auto{margin-bottom:auto!important}.ml-lg-auto,.mx-lg-auto{margin-left:auto!important}}@media (min-width:1200px){.m-xl-0{margin:0!important}.mt-xl-0,.my-xl-0{margin-top:0!important}.mr-xl-0,.mx-xl-0{margin-right:0!important}.mb-xl-0,.my-xl-0{margin-bottom:0!important}.ml-xl-0,.mx-xl-0{margin-left:0!important}.m-xl-1{margin:.25rem!important}.mt-xl-1,.my-xl-1{margin-top:.25rem!important}.mr-xl-1,.mx-xl-1{margin-right:.25rem!important}.mb-xl-1,.my-xl-1{margin-bottom:.25rem!important}.ml-xl-1,.mx-xl-1{margin-left:.25rem!important}.m-xl-2{margin:.5rem!important}.mt-xl-2,.my-xl-2{margin-top:.5rem!important}.mr-xl-2,.mx-xl-2{margin-right:.5rem!important}.mb-xl-2,.my-xl-2{margin-bottom:.5rem!important}.ml-xl-2,.mx-xl-2{margin-left:.5rem!important}.m-xl-3{margin:1rem!important}.mt-xl-3,.my-xl-3{margin-top:1rem!important}.mr-xl-3,.mx-xl-3{margin-right:1rem!important}.mb-xl-3,.my-xl-3{margin-bottom:1rem!important}.ml-xl-3,.mx-xl-3{margin-left:1rem!important}.m-xl-4{margin:1.5rem!important}.mt-xl-4,.my-xl-4{margin-top:1.5rem!important}.mr-xl-4,.mx-xl-4{margin-right:1.5rem!important}.mb-xl-4,.my-xl-4{margin-bottom:1.5rem!important}.ml-xl-4,.mx-xl-4{margin-left:1.5rem!important}.m-xl-5{margin:3rem!important}.mt-xl-5,.my-xl-5{margin-top:3rem!important}.mr-xl-5,.mx-xl-5{margin-right:3rem!important}.mb-xl-5,.my-xl-5{margin-bottom:3rem!important}.ml-xl-5,.mx-xl-5{margin-left:3rem!important}.p-xl-0{padding:0!important}.pt-xl-0,.py-xl-0{padding-top:0!important}.pr-xl-0,.px-xl-0{padding-right:0!important}.pb-xl-0,.py-xl-0{padding-bottom:0!important}.pl-xl-0,.px-xl-0{padding-left:0!important}.p-xl-1{padding:.25rem!important}.pt-xl-1,.py-xl-1{padding-top:.25rem!important}.pr-xl-1,.px-xl-1{padding-right:.25rem!important}.pb-xl-1,.py-xl-1{padding-bottom:.25rem!important}.pl-xl-1,.px-xl-1{padding-left:.25rem!important}.p-xl-2{padding:.5rem!important}.pt-xl-2,.py-xl-2{padding-top:.5rem!important}.pr-xl-2,.px-xl-2{padding-right:.5rem!important}.pb-xl-2,.py-xl-2{padding-bottom:.5rem!important}.pl-xl-2,.px-xl-2{padding-left:.5rem!important}.p-xl-3{padding:1rem!important}.pt-xl-3,.py-xl-3{padding-top:1rem!important}.pr-xl-3,.px-xl-3{padding-right:1rem!important}.pb-xl-3,.py-xl-3{padding-bottom:1rem!important}.pl-xl-3,.px-xl-3{padding-left:1rem!important}.p-xl-4{padding:1.5rem!important}.pt-xl-4,.py-xl-4{padding-top:1.5rem!important}.pr-xl-4,.px-xl-4{padding-right:1.5rem!important}.pb-xl-4,.py-xl-4{padding-bottom:1.5rem!important}.pl-xl-4,.px-xl-4{padding-left:1.5rem!important}.p-xl-5{padding:3rem!important}.pt-xl-5,.py-xl-5{padding-top:3rem!important}.pr-xl-5,.px-xl-5{padding-right:3rem!important}.pb-xl-5,.py-xl-5{padding-bottom:3rem!important}.pl-xl-5,.px-xl-5{padding-left:3rem!important}.m-xl-auto{margin:auto!important}.mt-xl-auto,.my-xl-auto{margin-top:auto!important}.mr-xl-auto,.mx-xl-auto{margin-right:auto!important}.mb-xl-auto,.my-xl-auto{margin-bottom:auto!important}.ml-xl-auto,.mx-xl-auto{margin-left:auto!important}}.text-monospace{font-family:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace}.text-justify{text-align:justify!important}.text-nowrap{white-space:nowrap!important}.text-truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.text-left{text-align:left!important}.text-right{text-align:right!important}.text-center{text-align:center!important}@media (min-width:576px){.text-sm-left{text-align:left!important}.text-sm-right{text-align:right!important}.text-sm-center{text-align:center!important}}@media (min-width:768px){.text-md-left{text-align:left!important}.text-md-right{text-align:right!important}.text-md-center{text-align:center!important}}@media (min-width:992px){.text-lg-left{text-align:left!important}.text-lg-right{text-align:right!important}.text-lg-center{text-align:center!important}}@media (min-width:1200px){.text-xl-left{text-align:left!important}.text-xl-right{text-align:right!important}.text-xl-center{text-align:center!important}}.text-lowercase{text-transform:lowercase!important}.text-uppercase{text-transform:uppercase!important}.text-capitalize{text-transform:capitalize!important}.font-weight-light{font-weight:300!important}.font-weight-normal{font-weight:400!important}.font-weight-bold{font-weight:700!important}.font-italic{font-style:italic!important}.text-white{color:#fff!important}.text-primary{color:#007bff!important}a.text-primary:focus,a.text-primary:hover{color:#0062cc!important}.text-secondary{color:#6c757d!important}a.text-secondary:focus,a.text-secondary:hover{color:#545b62!important}.text-success{color:#28a745!important}a.text-success:focus,a.text-success:hover{color:#1e7e34!important}.text-info{color:#17a2b8!important}a.text-info:focus,a.text-info:hover{color:#117a8b!important}.text-warning{color:#ffc107!important}a.text-warning:focus,a.text-warning:hover{color:#d39e00!important}.text-danger{color:#dc3545!important}a.text-danger:focus,a.text-danger:hover{color:#bd2130!important}.text-light{color:#f8f9fa!important}a.text-light:focus,a.text-light:hover{color:#dae0e5!important}.text-dark{color:#343a40!important}a.text-dark:focus,a.text-dark:hover{color:#1d2124!important}.text-body{color:#212529!important}.text-muted{color:#6c757d!important}.text-black-50{color:rgba(0,0,0,.5)!important}.text-white-50{color:rgba(255,255,255,.5)!important}.text-hide{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.visible{visibility:visible!important}.invisible{visibility:hidden!important}@media print{*,::after,::before{text-shadow:none!important;box-shadow:none!important}a:not(.btn){text-decoration:underline}abbr[title]::after{content:" (" attr(title) ")"}pre{white-space:pre-wrap!important}blockquote,pre{border:1px solid #adb5bd;page-break-inside:avoid}thead{display:table-header-group}img,tr{page-break-inside:avoid}h2,h3,p{orphans:3;widows:3}h2,h3{page-break-after:avoid}@page{size:a3}body{min-width:992px!important}.container{min-width:992px!important}.navbar{display:none}.badge{border:1px solid #000}.table{border-collapse:collapse!important}.table td,.table th{background-color:#fff!important}.table-bordered td,.table-bordered th{border:1px solid #dee2e6!important}.table-dark{color:inherit}.table-dark tbody+tbody,.table-dark td,.table-dark th,.table-dark thead th{border-color:#dee2e6}.table .thead-dark th{color:inherit;border-color:#dee2e6}}
 
1
  /*!
2
+ * Bootstrap v4.2.1 (https://getbootstrap.com/)
3
  * Copyright 2011-2018 The Bootstrap Authors
4
  * Copyright 2011-2018 Twitter, Inc.
5
  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
6
+ */:root{--blue:#007bff;--indigo:#6610f2;--purple:#6f42c1;--pink:#e83e8c;--red:#dc3545;--orange:#fd7e14;--yellow:#ffc107;--green:#28a745;--teal:#20c997;--cyan:#17a2b8;--white:#fff;--gray:#6c757d;--gray-dark:#343a40;--primary:#007bff;--secondary:#6c757d;--success:#28a745;--info:#17a2b8;--warning:#ffc107;--danger:#dc3545;--light:#f8f9fa;--dark:#343a40;--breakpoint-xs:0;--breakpoint-sm:576px;--breakpoint-md:768px;--breakpoint-lg:992px;--breakpoint-xl:1200px;--font-family-sans-serif:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";--font-family-monospace:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace}*,::after,::before{box-sizing:border-box}html{font-family:sans-serif;line-height:1.15;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent}article,aside,figcaption,figure,footer,header,hgroup,main,nav,section{display:block}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";font-size:1rem;font-weight:400;line-height:1.5;color:#212529;text-align:left;background-color:#fff}[tabindex="-1"]:focus{outline:0!important}hr{box-sizing:content-box;height:0;overflow:visible}h1,h2,h3,h4,h5,h6{margin-top:0;margin-bottom:.5rem}p{margin-top:0;margin-bottom:1rem}abbr[data-original-title],abbr[title]{text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted;cursor:help;border-bottom:0;text-decoration-skip-ink:none}address{margin-bottom:1rem;font-style:normal;line-height:inherit}dl,ol,ul{margin-top:0;margin-bottom:1rem}ol ol,ol ul,ul ol,ul ul{margin-bottom:0}dt{font-weight:700}dd{margin-bottom:.5rem;margin-left:0}blockquote{margin:0 0 1rem}b,strong{font-weight:bolder}small{font-size:80%}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}a{color:#007bff;text-decoration:none;background-color:transparent}a:hover{color:#0056b3;text-decoration:underline}a:not([href]):not([tabindex]){color:inherit;text-decoration:none}a:not([href]):not([tabindex]):focus,a:not([href]):not([tabindex]):hover{color:inherit;text-decoration:none}a:not([href]):not([tabindex]):focus{outline:0}code,kbd,pre,samp{font-family:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;font-size:1em}pre{margin-top:0;margin-bottom:1rem;overflow:auto}figure{margin:0 0 1rem}img{vertical-align:middle;border-style:none}svg{overflow:hidden;vertical-align:middle}table{border-collapse:collapse}caption{padding-top:.75rem;padding-bottom:.75rem;color:#6c757d;text-align:left;caption-side:bottom}th{text-align:inherit}label{display:inline-block;margin-bottom:.5rem}button{border-radius:0}button:focus{outline:1px dotted;outline:5px auto -webkit-focus-ring-color}button,input,optgroup,select,textarea{margin:0;font-family:inherit;font-size:inherit;line-height:inherit}button,input{overflow:visible}button,select{text-transform:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{padding:0;border-style:none}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0}input[type=date],input[type=datetime-local],input[type=month],input[type=time]{-webkit-appearance:listbox}textarea{overflow:auto;resize:vertical}fieldset{min-width:0;padding:0;margin:0;border:0}legend{display:block;width:100%;max-width:100%;padding:0;margin-bottom:.5rem;font-size:1.5rem;line-height:inherit;color:inherit;white-space:normal}progress{vertical-align:baseline}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{outline-offset:-2px;-webkit-appearance:none}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}output{display:inline-block}summary{display:list-item;cursor:pointer}template{display:none}[hidden]{display:none!important}.h1,.h2,.h3,.h4,.h5,.h6,h1,h2,h3,h4,h5,h6{margin-bottom:.5rem;font-family:inherit;font-weight:500;line-height:1.2;color:inherit}.h1,h1{font-size:2.5rem}.h2,h2{font-size:2rem}.h3,h3{font-size:1.75rem}.h4,h4{font-size:1.5rem}.h5,h5{font-size:1.25rem}.h6,h6{font-size:1rem}.lead{font-size:1.25rem;font-weight:300}.display-1{font-size:6rem;font-weight:300;line-height:1.2}.display-2{font-size:5.5rem;font-weight:300;line-height:1.2}.display-3{font-size:4.5rem;font-weight:300;line-height:1.2}.display-4{font-size:3.5rem;font-weight:300;line-height:1.2}hr{margin-top:1rem;margin-bottom:1rem;border:0;border-top:1px solid rgba(0,0,0,.1)}.small,small{font-size:80%;font-weight:400}.mark,mark{padding:.2em;background-color:#fcf8e3}.list-unstyled{padding-left:0;list-style:none}.list-inline{padding-left:0;list-style:none}.list-inline-item{display:inline-block}.list-inline-item:not(:last-child){margin-right:.5rem}.initialism{font-size:90%;text-transform:uppercase}.blockquote{margin-bottom:1rem;font-size:1.25rem}.blockquote-footer{display:block;font-size:80%;color:#6c757d}.blockquote-footer::before{content:"\2014\00A0"}.img-fluid{max-width:100%;height:auto}.img-thumbnail{padding:.25rem;background-color:#fff;border:1px solid #dee2e6;border-radius:.25rem;max-width:100%;height:auto}.figure{display:inline-block}.figure-img{margin-bottom:.5rem;line-height:1}.figure-caption{font-size:90%;color:#6c757d}code{font-size:87.5%;color:#e83e8c;word-break:break-word}a>code{color:inherit}kbd{padding:.2rem .4rem;font-size:87.5%;color:#fff;background-color:#212529;border-radius:.2rem}kbd kbd{padding:0;font-size:100%;font-weight:700}pre{display:block;font-size:87.5%;color:#212529}pre code{font-size:inherit;color:inherit;word-break:normal}.pre-scrollable{max-height:340px;overflow-y:scroll}.container{width:100%;padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}@media (min-width:576px){.container{max-width:540px}}@media (min-width:768px){.container{max-width:720px}}@media (min-width:992px){.container{max-width:960px}}@media (min-width:1200px){.container{max-width:1140px}}.container-fluid{width:100%;padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}.row{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;margin-right:-15px;margin-left:-15px}.no-gutters{margin-right:0;margin-left:0}.no-gutters>.col,.no-gutters>[class*=col-]{padding-right:0;padding-left:0}.col,.col-1,.col-10,.col-11,.col-12,.col-2,.col-3,.col-4,.col-5,.col-6,.col-7,.col-8,.col-9,.col-auto,.col-lg,.col-lg-1,.col-lg-10,.col-lg-11,.col-lg-12,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9,.col-lg-auto,.col-md,.col-md-1,.col-md-10,.col-md-11,.col-md-12,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9,.col-md-auto,.col-sm,.col-sm-1,.col-sm-10,.col-sm-11,.col-sm-12,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9,.col-sm-auto,.col-xl,.col-xl-1,.col-xl-10,.col-xl-11,.col-xl-12,.col-xl-2,.col-xl-3,.col-xl-4,.col-xl-5,.col-xl-6,.col-xl-7,.col-xl-8,.col-xl-9,.col-xl-auto{position:relative;width:100%;padding-right:15px;padding-left:15px}.col{-ms-flex-preferred-size:0;flex-basis:0;-ms-flex-positive:1;flex-grow:1;max-width:100%}.col-auto{-ms-flex:0 0 auto;flex:0 0 auto;width:auto;max-width:100%}.col-1{-ms-flex:0 0 8.333333%;flex:0 0 8.333333%;max-width:8.333333%}.col-2{-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-3{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.col-4{-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.col-5{-ms-flex:0 0 41.666667%;flex:0 0 41.666667%;max-width:41.666667%}.col-6{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.col-7{-ms-flex:0 0 58.333333%;flex:0 0 58.333333%;max-width:58.333333%}.col-8{-ms-flex:0 0 66.666667%;flex:0 0 66.666667%;max-width:66.666667%}.col-9{-ms-flex:0 0 75%;flex:0 0 75%;max-width:75%}.col-10{-ms-flex:0 0 83.333333%;flex:0 0 83.333333%;max-width:83.333333%}.col-11{-ms-flex:0 0 91.666667%;flex:0 0 91.666667%;max-width:91.666667%}.col-12{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.order-first{-ms-flex-order:-1;order:-1}.order-last{-ms-flex-order:13;order:13}.order-0{-ms-flex-order:0;order:0}.order-1{-ms-flex-order:1;order:1}.order-2{-ms-flex-order:2;order:2}.order-3{-ms-flex-order:3;order:3}.order-4{-ms-flex-order:4;order:4}.order-5{-ms-flex-order:5;order:5}.order-6{-ms-flex-order:6;order:6}.order-7{-ms-flex-order:7;order:7}.order-8{-ms-flex-order:8;order:8}.order-9{-ms-flex-order:9;order:9}.order-10{-ms-flex-order:10;order:10}.order-11{-ms-flex-order:11;order:11}.order-12{-ms-flex-order:12;order:12}.offset-1{margin-left:8.333333%}.offset-2{margin-left:16.666667%}.offset-3{margin-left:25%}.offset-4{margin-left:33.333333%}.offset-5{margin-left:41.666667%}.offset-6{margin-left:50%}.offset-7{margin-left:58.333333%}.offset-8{margin-left:66.666667%}.offset-9{margin-left:75%}.offset-10{margin-left:83.333333%}.offset-11{margin-left:91.666667%}@media (min-width:576px){.col-sm{-ms-flex-preferred-size:0;flex-basis:0;-ms-flex-positive:1;flex-grow:1;max-width:100%}.col-sm-auto{-ms-flex:0 0 auto;flex:0 0 auto;width:auto;max-width:100%}.col-sm-1{-ms-flex:0 0 8.333333%;flex:0 0 8.333333%;max-width:8.333333%}.col-sm-2{-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-sm-3{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.col-sm-4{-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.col-sm-5{-ms-flex:0 0 41.666667%;flex:0 0 41.666667%;max-width:41.666667%}.col-sm-6{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.col-sm-7{-ms-flex:0 0 58.333333%;flex:0 0 58.333333%;max-width:58.333333%}.col-sm-8{-ms-flex:0 0 66.666667%;flex:0 0 66.666667%;max-width:66.666667%}.col-sm-9{-ms-flex:0 0 75%;flex:0 0 75%;max-width:75%}.col-sm-10{-ms-flex:0 0 83.333333%;flex:0 0 83.333333%;max-width:83.333333%}.col-sm-11{-ms-flex:0 0 91.666667%;flex:0 0 91.666667%;max-width:91.666667%}.col-sm-12{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.order-sm-first{-ms-flex-order:-1;order:-1}.order-sm-last{-ms-flex-order:13;order:13}.order-sm-0{-ms-flex-order:0;order:0}.order-sm-1{-ms-flex-order:1;order:1}.order-sm-2{-ms-flex-order:2;order:2}.order-sm-3{-ms-flex-order:3;order:3}.order-sm-4{-ms-flex-order:4;order:4}.order-sm-5{-ms-flex-order:5;order:5}.order-sm-6{-ms-flex-order:6;order:6}.order-sm-7{-ms-flex-order:7;order:7}.order-sm-8{-ms-flex-order:8;order:8}.order-sm-9{-ms-flex-order:9;order:9}.order-sm-10{-ms-flex-order:10;order:10}.order-sm-11{-ms-flex-order:11;order:11}.order-sm-12{-ms-flex-order:12;order:12}.offset-sm-0{margin-left:0}.offset-sm-1{margin-left:8.333333%}.offset-sm-2{margin-left:16.666667%}.offset-sm-3{margin-left:25%}.offset-sm-4{margin-left:33.333333%}.offset-sm-5{margin-left:41.666667%}.offset-sm-6{margin-left:50%}.offset-sm-7{margin-left:58.333333%}.offset-sm-8{margin-left:66.666667%}.offset-sm-9{margin-left:75%}.offset-sm-10{margin-left:83.333333%}.offset-sm-11{margin-left:91.666667%}}@media (min-width:768px){.col-md{-ms-flex-preferred-size:0;flex-basis:0;-ms-flex-positive:1;flex-grow:1;max-width:100%}.col-md-auto{-ms-flex:0 0 auto;flex:0 0 auto;width:auto;max-width:100%}.col-md-1{-ms-flex:0 0 8.333333%;flex:0 0 8.333333%;max-width:8.333333%}.col-md-2{-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-md-3{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.col-md-4{-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.col-md-5{-ms-flex:0 0 41.666667%;flex:0 0 41.666667%;max-width:41.666667%}.col-md-6{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.col-md-7{-ms-flex:0 0 58.333333%;flex:0 0 58.333333%;max-width:58.333333%}.col-md-8{-ms-flex:0 0 66.666667%;flex:0 0 66.666667%;max-width:66.666667%}.col-md-9{-ms-flex:0 0 75%;flex:0 0 75%;max-width:75%}.col-md-10{-ms-flex:0 0 83.333333%;flex:0 0 83.333333%;max-width:83.333333%}.col-md-11{-ms-flex:0 0 91.666667%;flex:0 0 91.666667%;max-width:91.666667%}.col-md-12{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.order-md-first{-ms-flex-order:-1;order:-1}.order-md-last{-ms-flex-order:13;order:13}.order-md-0{-ms-flex-order:0;order:0}.order-md-1{-ms-flex-order:1;order:1}.order-md-2{-ms-flex-order:2;order:2}.order-md-3{-ms-flex-order:3;order:3}.order-md-4{-ms-flex-order:4;order:4}.order-md-5{-ms-flex-order:5;order:5}.order-md-6{-ms-flex-order:6;order:6}.order-md-7{-ms-flex-order:7;order:7}.order-md-8{-ms-flex-order:8;order:8}.order-md-9{-ms-flex-order:9;order:9}.order-md-10{-ms-flex-order:10;order:10}.order-md-11{-ms-flex-order:11;order:11}.order-md-12{-ms-flex-order:12;order:12}.offset-md-0{margin-left:0}.offset-md-1{margin-left:8.333333%}.offset-md-2{margin-left:16.666667%}.offset-md-3{margin-left:25%}.offset-md-4{margin-left:33.333333%}.offset-md-5{margin-left:41.666667%}.offset-md-6{margin-left:50%}.offset-md-7{margin-left:58.333333%}.offset-md-8{margin-left:66.666667%}.offset-md-9{margin-left:75%}.offset-md-10{margin-left:83.333333%}.offset-md-11{margin-left:91.666667%}}@media (min-width:992px){.col-lg{-ms-flex-preferred-size:0;flex-basis:0;-ms-flex-positive:1;flex-grow:1;max-width:100%}.col-lg-auto{-ms-flex:0 0 auto;flex:0 0 auto;width:auto;max-width:100%}.col-lg-1{-ms-flex:0 0 8.333333%;flex:0 0 8.333333%;max-width:8.333333%}.col-lg-2{-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-lg-3{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.col-lg-4{-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.col-lg-5{-ms-flex:0 0 41.666667%;flex:0 0 41.666667%;max-width:41.666667%}.col-lg-6{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.col-lg-7{-ms-flex:0 0 58.333333%;flex:0 0 58.333333%;max-width:58.333333%}.col-lg-8{-ms-flex:0 0 66.666667%;flex:0 0 66.666667%;max-width:66.666667%}.col-lg-9{-ms-flex:0 0 75%;flex:0 0 75%;max-width:75%}.col-lg-10{-ms-flex:0 0 83.333333%;flex:0 0 83.333333%;max-width:83.333333%}.col-lg-11{-ms-flex:0 0 91.666667%;flex:0 0 91.666667%;max-width:91.666667%}.col-lg-12{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.order-lg-first{-ms-flex-order:-1;order:-1}.order-lg-last{-ms-flex-order:13;order:13}.order-lg-0{-ms-flex-order:0;order:0}.order-lg-1{-ms-flex-order:1;order:1}.order-lg-2{-ms-flex-order:2;order:2}.order-lg-3{-ms-flex-order:3;order:3}.order-lg-4{-ms-flex-order:4;order:4}.order-lg-5{-ms-flex-order:5;order:5}.order-lg-6{-ms-flex-order:6;order:6}.order-lg-7{-ms-flex-order:7;order:7}.order-lg-8{-ms-flex-order:8;order:8}.order-lg-9{-ms-flex-order:9;order:9}.order-lg-10{-ms-flex-order:10;order:10}.order-lg-11{-ms-flex-order:11;order:11}.order-lg-12{-ms-flex-order:12;order:12}.offset-lg-0{margin-left:0}.offset-lg-1{margin-left:8.333333%}.offset-lg-2{margin-left:16.666667%}.offset-lg-3{margin-left:25%}.offset-lg-4{margin-left:33.333333%}.offset-lg-5{margin-left:41.666667%}.offset-lg-6{margin-left:50%}.offset-lg-7{margin-left:58.333333%}.offset-lg-8{margin-left:66.666667%}.offset-lg-9{margin-left:75%}.offset-lg-10{margin-left:83.333333%}.offset-lg-11{margin-left:91.666667%}}@media (min-width:1200px){.col-xl{-ms-flex-preferred-size:0;flex-basis:0;-ms-flex-positive:1;flex-grow:1;max-width:100%}.col-xl-auto{-ms-flex:0 0 auto;flex:0 0 auto;width:auto;max-width:100%}.col-xl-1{-ms-flex:0 0 8.333333%;flex:0 0 8.333333%;max-width:8.333333%}.col-xl-2{-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-xl-3{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.col-xl-4{-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.col-xl-5{-ms-flex:0 0 41.666667%;flex:0 0 41.666667%;max-width:41.666667%}.col-xl-6{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.col-xl-7{-ms-flex:0 0 58.333333%;flex:0 0 58.333333%;max-width:58.333333%}.col-xl-8{-ms-flex:0 0 66.666667%;flex:0 0 66.666667%;max-width:66.666667%}.col-xl-9{-ms-flex:0 0 75%;flex:0 0 75%;max-width:75%}.col-xl-10{-ms-flex:0 0 83.333333%;flex:0 0 83.333333%;max-width:83.333333%}.col-xl-11{-ms-flex:0 0 91.666667%;flex:0 0 91.666667%;max-width:91.666667%}.col-xl-12{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.order-xl-first{-ms-flex-order:-1;order:-1}.order-xl-last{-ms-flex-order:13;order:13}.order-xl-0{-ms-flex-order:0;order:0}.order-xl-1{-ms-flex-order:1;order:1}.order-xl-2{-ms-flex-order:2;order:2}.order-xl-3{-ms-flex-order:3;order:3}.order-xl-4{-ms-flex-order:4;order:4}.order-xl-5{-ms-flex-order:5;order:5}.order-xl-6{-ms-flex-order:6;order:6}.order-xl-7{-ms-flex-order:7;order:7}.order-xl-8{-ms-flex-order:8;order:8}.order-xl-9{-ms-flex-order:9;order:9}.order-xl-10{-ms-flex-order:10;order:10}.order-xl-11{-ms-flex-order:11;order:11}.order-xl-12{-ms-flex-order:12;order:12}.offset-xl-0{margin-left:0}.offset-xl-1{margin-left:8.333333%}.offset-xl-2{margin-left:16.666667%}.offset-xl-3{margin-left:25%}.offset-xl-4{margin-left:33.333333%}.offset-xl-5{margin-left:41.666667%}.offset-xl-6{margin-left:50%}.offset-xl-7{margin-left:58.333333%}.offset-xl-8{margin-left:66.666667%}.offset-xl-9{margin-left:75%}.offset-xl-10{margin-left:83.333333%}.offset-xl-11{margin-left:91.666667%}}.table{width:100%;margin-bottom:1rem;background-color:transparent}.table td,.table th{padding:.75rem;vertical-align:top;border-top:1px solid #dee2e6}.table thead th{vertical-align:bottom;border-bottom:2px solid #dee2e6}.table tbody+tbody{border-top:2px solid #dee2e6}.table .table{background-color:#fff}.table-sm td,.table-sm th{padding:.3rem}.table-bordered{border:1px solid #dee2e6}.table-bordered td,.table-bordered th{border:1px solid #dee2e6}.table-bordered thead td,.table-bordered thead th{border-bottom-width:2px}.table-borderless tbody+tbody,.table-borderless td,.table-borderless th,.table-borderless thead th{border:0}.table-striped tbody tr:nth-of-type(odd){background-color:rgba(0,0,0,.05)}.table-hover tbody tr:hover{background-color:rgba(0,0,0,.075)}.table-primary,.table-primary>td,.table-primary>th{background-color:#b8daff}.table-primary tbody+tbody,.table-primary td,.table-primary th,.table-primary thead th{border-color:#7abaff}.table-hover .table-primary:hover{background-color:#9fcdff}.table-hover .table-primary:hover>td,.table-hover .table-primary:hover>th{background-color:#9fcdff}.table-secondary,.table-secondary>td,.table-secondary>th{background-color:#d6d8db}.table-secondary tbody+tbody,.table-secondary td,.table-secondary th,.table-secondary thead th{border-color:#b3b7bb}.table-hover .table-secondary:hover{background-color:#c8cbcf}.table-hover .table-secondary:hover>td,.table-hover .table-secondary:hover>th{background-color:#c8cbcf}.table-success,.table-success>td,.table-success>th{background-color:#c3e6cb}.table-success tbody+tbody,.table-success td,.table-success th,.table-success thead th{border-color:#8fd19e}.table-hover .table-success:hover{background-color:#b1dfbb}.table-hover .table-success:hover>td,.table-hover .table-success:hover>th{background-color:#b1dfbb}.table-info,.table-info>td,.table-info>th{background-color:#bee5eb}.table-info tbody+tbody,.table-info td,.table-info th,.table-info thead th{border-color:#86cfda}.table-hover .table-info:hover{background-color:#abdde5}.table-hover .table-info:hover>td,.table-hover .table-info:hover>th{background-color:#abdde5}.table-warning,.table-warning>td,.table-warning>th{background-color:#ffeeba}.table-warning tbody+tbody,.table-warning td,.table-warning th,.table-warning thead th{border-color:#ffdf7e}.table-hover .table-warning:hover{background-color:#ffe8a1}.table-hover .table-warning:hover>td,.table-hover .table-warning:hover>th{background-color:#ffe8a1}.table-danger,.table-danger>td,.table-danger>th{background-color:#f5c6cb}.table-danger tbody+tbody,.table-danger td,.table-danger th,.table-danger thead th{border-color:#ed969e}.table-hover .table-danger:hover{background-color:#f1b0b7}.table-hover .table-danger:hover>td,.table-hover .table-danger:hover>th{background-color:#f1b0b7}.table-light,.table-light>td,.table-light>th{background-color:#fdfdfe}.table-light tbody+tbody,.table-light td,.table-light th,.table-light thead th{border-color:#fbfcfc}.table-hover .table-light:hover{background-color:#ececf6}.table-hover .table-light:hover>td,.table-hover .table-light:hover>th{background-color:#ececf6}.table-dark,.table-dark>td,.table-dark>th{background-color:#c6c8ca}.table-dark tbody+tbody,.table-dark td,.table-dark th,.table-dark thead th{border-color:#95999c}.table-hover .table-dark:hover{background-color:#b9bbbe}.table-hover .table-dark:hover>td,.table-hover .table-dark:hover>th{background-color:#b9bbbe}.table-active,.table-active>td,.table-active>th{background-color:rgba(0,0,0,.075)}.table-hover .table-active:hover{background-color:rgba(0,0,0,.075)}.table-hover .table-active:hover>td,.table-hover .table-active:hover>th{background-color:rgba(0,0,0,.075)}.table .thead-dark th{color:#fff;background-color:#212529;border-color:#32383e}.table .thead-light th{color:#495057;background-color:#e9ecef;border-color:#dee2e6}.table-dark{color:#fff;background-color:#212529}.table-dark td,.table-dark th,.table-dark thead th{border-color:#32383e}.table-dark.table-bordered{border:0}.table-dark.table-striped tbody tr:nth-of-type(odd){background-color:rgba(255,255,255,.05)}.table-dark.table-hover tbody tr:hover{background-color:rgba(255,255,255,.075)}@media (max-width:575.98px){.table-responsive-sm{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;-ms-overflow-style:-ms-autohiding-scrollbar}.table-responsive-sm>.table-bordered{border:0}}@media (max-width:767.98px){.table-responsive-md{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;-ms-overflow-style:-ms-autohiding-scrollbar}.table-responsive-md>.table-bordered{border:0}}@media (max-width:991.98px){.table-responsive-lg{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;-ms-overflow-style:-ms-autohiding-scrollbar}.table-responsive-lg>.table-bordered{border:0}}@media (max-width:1199.98px){.table-responsive-xl{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;-ms-overflow-style:-ms-autohiding-scrollbar}.table-responsive-xl>.table-bordered{border:0}}.table-responsive{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;-ms-overflow-style:-ms-autohiding-scrollbar}.table-responsive>.table-bordered{border:0}.form-control{display:block;width:100%;height:calc(2.25rem + 2px);padding:.375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;color:#495057;background-color:#fff;background-clip:padding-box;border:1px solid #ced4da;border-radius:.25rem;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media screen and (prefers-reduced-motion:reduce){.form-control{transition:none}}.form-control::-ms-expand{background-color:transparent;border:0}.form-control:focus{color:#495057;background-color:#fff;border-color:#80bdff;outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.form-control::-webkit-input-placeholder{color:#6c757d;opacity:1}.form-control::-moz-placeholder{color:#6c757d;opacity:1}.form-control:-ms-input-placeholder{color:#6c757d;opacity:1}.form-control::-ms-input-placeholder{color:#6c757d;opacity:1}.form-control::placeholder{color:#6c757d;opacity:1}.form-control:disabled,.form-control[readonly]{background-color:#e9ecef;opacity:1}select.form-control:focus::-ms-value{color:#495057;background-color:#fff}.form-control-file,.form-control-range{display:block;width:100%}.col-form-label{padding-top:calc(.375rem + 1px);padding-bottom:calc(.375rem + 1px);margin-bottom:0;font-size:inherit;line-height:1.5}.col-form-label-lg{padding-top:calc(.5rem + 1px);padding-bottom:calc(.5rem + 1px);font-size:1.25rem;line-height:1.5}.col-form-label-sm{padding-top:calc(.25rem + 1px);padding-bottom:calc(.25rem + 1px);font-size:.875rem;line-height:1.5}.form-control-plaintext{display:block;width:100%;padding-top:.375rem;padding-bottom:.375rem;margin-bottom:0;line-height:1.5;color:#212529;background-color:transparent;border:solid transparent;border-width:1px 0}.form-control-plaintext.form-control-lg,.form-control-plaintext.form-control-sm{padding-right:0;padding-left:0}.form-control-sm{height:calc(1.8125rem + 2px);padding:.25rem .5rem;font-size:.875rem;line-height:1.5;border-radius:.2rem}.form-control-lg{height:calc(2.875rem + 2px);padding:.5rem 1rem;font-size:1.25rem;line-height:1.5;border-radius:.3rem}select.form-control[multiple],select.form-control[size]{height:auto}textarea.form-control{height:auto}.form-group{margin-bottom:1rem}.form-text{display:block;margin-top:.25rem}.form-row{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;margin-right:-5px;margin-left:-5px}.form-row>.col,.form-row>[class*=col-]{padding-right:5px;padding-left:5px}.form-check{position:relative;display:block;padding-left:1.25rem}.form-check-input{position:absolute;margin-top:.3rem;margin-left:-1.25rem}.form-check-input:disabled~.form-check-label{color:#6c757d}.form-check-label{margin-bottom:0}.form-check-inline{display:-ms-inline-flexbox;display:inline-flex;-ms-flex-align:center;align-items:center;padding-left:0;margin-right:.75rem}.form-check-inline .form-check-input{position:static;margin-top:0;margin-right:.3125rem;margin-left:0}.valid-feedback{display:none;width:100%;margin-top:.25rem;font-size:80%;color:#28a745}.valid-tooltip{position:absolute;top:100%;z-index:5;display:none;max-width:100%;padding:.25rem .5rem;margin-top:.1rem;font-size:.875rem;line-height:1.5;color:#fff;background-color:rgba(40,167,69,.9);border-radius:.25rem}.form-control.is-valid,.was-validated .form-control:valid{border-color:#28a745;padding-right:2.25rem;background-repeat:no-repeat;background-position:center right calc(2.25rem / 4);background-size:calc(2.25rem / 2) calc(2.25rem / 2);background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%2328a745' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e")}.form-control.is-valid:focus,.was-validated .form-control:valid:focus{border-color:#28a745;box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.form-control.is-valid~.valid-feedback,.form-control.is-valid~.valid-tooltip,.was-validated .form-control:valid~.valid-feedback,.was-validated .form-control:valid~.valid-tooltip{display:block}.was-validated textarea.form-control:valid,textarea.form-control.is-valid{padding-right:2.25rem;background-position:top calc(2.25rem / 4) right calc(2.25rem / 4)}.custom-select.is-valid,.was-validated .custom-select:valid{border-color:#28a745;padding-right:3.4375rem;background:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e") no-repeat right .75rem center/8px 10px,url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%2328a745' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e") no-repeat center right 1.75rem/1.125rem 1.125rem}.custom-select.is-valid:focus,.was-validated .custom-select:valid:focus{border-color:#28a745;box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.custom-select.is-valid~.valid-feedback,.custom-select.is-valid~.valid-tooltip,.was-validated .custom-select:valid~.valid-feedback,.was-validated .custom-select:valid~.valid-tooltip{display:block}.form-control-file.is-valid~.valid-feedback,.form-control-file.is-valid~.valid-tooltip,.was-validated .form-control-file:valid~.valid-feedback,.was-validated .form-control-file:valid~.valid-tooltip{display:block}.form-check-input.is-valid~.form-check-label,.was-validated .form-check-input:valid~.form-check-label{color:#28a745}.form-check-input.is-valid~.valid-feedback,.form-check-input.is-valid~.valid-tooltip,.was-validated .form-check-input:valid~.valid-feedback,.was-validated .form-check-input:valid~.valid-tooltip{display:block}.custom-control-input.is-valid~.custom-control-label,.was-validated .custom-control-input:valid~.custom-control-label{color:#28a745}.custom-control-input.is-valid~.custom-control-label::before,.was-validated .custom-control-input:valid~.custom-control-label::before{border-color:#28a745}.custom-control-input.is-valid~.valid-feedback,.custom-control-input.is-valid~.valid-tooltip,.was-validated .custom-control-input:valid~.valid-feedback,.was-validated .custom-control-input:valid~.valid-tooltip{display:block}.custom-control-input.is-valid:checked~.custom-control-label::before,.was-validated .custom-control-input:valid:checked~.custom-control-label::before{border-color:#34ce57;background-color:#34ce57}.custom-control-input.is-valid:focus~.custom-control-label::before,.was-validated .custom-control-input:valid:focus~.custom-control-label::before{box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.custom-control-input.is-valid:focus:not(:checked)~.custom-control-label::before,.was-validated .custom-control-input:valid:focus:not(:checked)~.custom-control-label::before{border-color:#28a745}.custom-file-input.is-valid~.custom-file-label,.was-validated .custom-file-input:valid~.custom-file-label{border-color:#28a745}.custom-file-input.is-valid~.valid-feedback,.custom-file-input.is-valid~.valid-tooltip,.was-validated .custom-file-input:valid~.valid-feedback,.was-validated .custom-file-input:valid~.valid-tooltip{display:block}.custom-file-input.is-valid:focus~.custom-file-label,.was-validated .custom-file-input:valid:focus~.custom-file-label{border-color:#28a745;box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.invalid-feedback{display:none;width:100%;margin-top:.25rem;font-size:80%;color:#dc3545}.invalid-tooltip{position:absolute;top:100%;z-index:5;display:none;max-width:100%;padding:.25rem .5rem;margin-top:.1rem;font-size:.875rem;line-height:1.5;color:#fff;background-color:rgba(220,53,69,.9);border-radius:.25rem}.form-control.is-invalid,.was-validated .form-control:invalid{border-color:#dc3545;padding-right:2.25rem;background-repeat:no-repeat;background-position:center right calc(2.25rem / 4);background-size:calc(2.25rem / 2) calc(2.25rem / 2);background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23dc3545' viewBox='-2 -2 7 7'%3e%3cpath stroke='%23d9534f' d='M0 0l3 3m0-3L0 3'/%3e%3ccircle r='.5'/%3e%3ccircle cx='3' r='.5'/%3e%3ccircle cy='3' r='.5'/%3e%3ccircle cx='3' cy='3' r='.5'/%3e%3c/svg%3E")}.form-control.is-invalid:focus,.was-validated .form-control:invalid:focus{border-color:#dc3545;box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}.form-control.is-invalid~.invalid-feedback,.form-control.is-invalid~.invalid-tooltip,.was-validated .form-control:invalid~.invalid-feedback,.was-validated .form-control:invalid~.invalid-tooltip{display:block}.was-validated textarea.form-control:invalid,textarea.form-control.is-invalid{padding-right:2.25rem;background-position:top calc(2.25rem / 4) right calc(2.25rem / 4)}.custom-select.is-invalid,.was-validated .custom-select:invalid{border-color:#dc3545;padding-right:3.4375rem;background:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e") no-repeat right .75rem center/8px 10px,url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23dc3545' viewBox='-2 -2 7 7'%3e%3cpath stroke='%23d9534f' d='M0 0l3 3m0-3L0 3'/%3e%3ccircle r='.5'/%3e%3ccircle cx='3' r='.5'/%3e%3ccircle cy='3' r='.5'/%3e%3ccircle cx='3' cy='3' r='.5'/%3e%3c/svg%3E") no-repeat center right 1.75rem/1.125rem 1.125rem}.custom-select.is-invalid:focus,.was-validated .custom-select:invalid:focus{border-color:#dc3545;box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}.custom-select.is-invalid~.invalid-feedback,.custom-select.is-invalid~.invalid-tooltip,.was-validated .custom-select:invalid~.invalid-feedback,.was-validated .custom-select:invalid~.invalid-tooltip{display:block}.form-control-file.is-invalid~.invalid-feedback,.form-control-file.is-invalid~.invalid-tooltip,.was-validated .form-control-file:invalid~.invalid-feedback,.was-validated .form-control-file:invalid~.invalid-tooltip{display:block}.form-check-input.is-invalid~.form-check-label,.was-validated .form-check-input:invalid~.form-check-label{color:#dc3545}.form-check-input.is-invalid~.invalid-feedback,.form-check-input.is-invalid~.invalid-tooltip,.was-validated .form-check-input:invalid~.invalid-feedback,.was-validated .form-check-input:invalid~.invalid-tooltip{display:block}.custom-control-input.is-invalid~.custom-control-label,.was-validated .custom-control-input:invalid~.custom-control-label{color:#dc3545}.custom-control-input.is-invalid~.custom-control-label::before,.was-validated .custom-control-input:invalid~.custom-control-label::before{border-color:#dc3545}.custom-control-input.is-invalid~.invalid-feedback,.custom-control-input.is-invalid~.invalid-tooltip,.was-validated .custom-control-input:invalid~.invalid-feedback,.was-validated .custom-control-input:invalid~.invalid-tooltip{display:block}.custom-control-input.is-invalid:checked~.custom-control-label::before,.was-validated .custom-control-input:invalid:checked~.custom-control-label::before{border-color:#e4606d;background-color:#e4606d}.custom-control-input.is-invalid:focus~.custom-control-label::before,.was-validated .custom-control-input:invalid:focus~.custom-control-label::before{box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}.custom-control-input.is-invalid:focus:not(:checked)~.custom-control-label::before,.was-validated .custom-control-input:invalid:focus:not(:checked)~.custom-control-label::before{border-color:#dc3545}.custom-file-input.is-invalid~.custom-file-label,.was-validated .custom-file-input:invalid~.custom-file-label{border-color:#dc3545}.custom-file-input.is-invalid~.invalid-feedback,.custom-file-input.is-invalid~.invalid-tooltip,.was-validated .custom-file-input:invalid~.invalid-feedback,.was-validated .custom-file-input:invalid~.invalid-tooltip{display:block}.custom-file-input.is-invalid:focus~.custom-file-label,.was-validated .custom-file-input:invalid:focus~.custom-file-label{border-color:#dc3545;box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}.form-inline{display:-ms-flexbox;display:flex;-ms-flex-flow:row wrap;flex-flow:row wrap;-ms-flex-align:center;align-items:center}.form-inline .form-check{width:100%}@media (min-width:576px){.form-inline label{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;margin-bottom:0}.form-inline .form-group{display:-ms-flexbox;display:flex;-ms-flex:0 0 auto;flex:0 0 auto;-ms-flex-flow:row wrap;flex-flow:row wrap;-ms-flex-align:center;align-items:center;margin-bottom:0}.form-inline .form-control{display:inline-block;width:auto;vertical-align:middle}.form-inline .form-control-plaintext{display:inline-block}.form-inline .custom-select,.form-inline .input-group{width:auto}.form-inline .form-check{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;width:auto;padding-left:0}.form-inline .form-check-input{position:relative;margin-top:0;margin-right:.25rem;margin-left:0}.form-inline .custom-control{-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center}.form-inline .custom-control-label{margin-bottom:0}}.btn{display:inline-block;font-weight:400;color:#212529;text-align:center;vertical-align:middle;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;background-color:transparent;border:1px solid transparent;padding:.375rem .75rem;font-size:1rem;line-height:1.5;border-radius:.25rem;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media screen and (prefers-reduced-motion:reduce){.btn{transition:none}}.btn:hover{color:#212529;text-decoration:none}.btn.focus,.btn:focus{outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.btn.disabled,.btn:disabled{opacity:.65}.btn:not(:disabled):not(.disabled){cursor:pointer}a.btn.disabled,fieldset:disabled a.btn{pointer-events:none}.btn-primary{color:#fff;background-color:#007bff;border-color:#007bff}.btn-primary:hover{color:#fff;background-color:#0069d9;border-color:#0062cc}.btn-primary.focus,.btn-primary:focus{box-shadow:0 0 0 .2rem rgba(38,143,255,.5)}.btn-primary.disabled,.btn-primary:disabled{color:#fff;background-color:#007bff;border-color:#007bff}.btn-primary:not(:disabled):not(.disabled).active,.btn-primary:not(:disabled):not(.disabled):active,.show>.btn-primary.dropdown-toggle{color:#fff;background-color:#0062cc;border-color:#005cbf}.btn-primary:not(:disabled):not(.disabled).active:focus,.btn-primary:not(:disabled):not(.disabled):active:focus,.show>.btn-primary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(38,143,255,.5)}.btn-secondary{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-secondary:hover{color:#fff;background-color:#5a6268;border-color:#545b62}.btn-secondary.focus,.btn-secondary:focus{box-shadow:0 0 0 .2rem rgba(130,138,145,.5)}.btn-secondary.disabled,.btn-secondary:disabled{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-secondary:not(:disabled):not(.disabled).active,.btn-secondary:not(:disabled):not(.disabled):active,.show>.btn-secondary.dropdown-toggle{color:#fff;background-color:#545b62;border-color:#4e555b}.btn-secondary:not(:disabled):not(.disabled).active:focus,.btn-secondary:not(:disabled):not(.disabled):active:focus,.show>.btn-secondary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(130,138,145,.5)}.btn-success{color:#fff;background-color:#28a745;border-color:#28a745}.btn-success:hover{color:#fff;background-color:#218838;border-color:#1e7e34}.btn-success.focus,.btn-success:focus{box-shadow:0 0 0 .2rem rgba(72,180,97,.5)}.btn-success.disabled,.btn-success:disabled{color:#fff;background-color:#28a745;border-color:#28a745}.btn-success:not(:disabled):not(.disabled).active,.btn-success:not(:disabled):not(.disabled):active,.show>.btn-success.dropdown-toggle{color:#fff;background-color:#1e7e34;border-color:#1c7430}.btn-success:not(:disabled):not(.disabled).active:focus,.btn-success:not(:disabled):not(.disabled):active:focus,.show>.btn-success.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(72,180,97,.5)}.btn-info{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-info:hover{color:#fff;background-color:#138496;border-color:#117a8b}.btn-info.focus,.btn-info:focus{box-shadow:0 0 0 .2rem rgba(58,176,195,.5)}.btn-info.disabled,.btn-info:disabled{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-info:not(:disabled):not(.disabled).active,.btn-info:not(:disabled):not(.disabled):active,.show>.btn-info.dropdown-toggle{color:#fff;background-color:#117a8b;border-color:#10707f}.btn-info:not(:disabled):not(.disabled).active:focus,.btn-info:not(:disabled):not(.disabled):active:focus,.show>.btn-info.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(58,176,195,.5)}.btn-warning{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-warning:hover{color:#212529;background-color:#e0a800;border-color:#d39e00}.btn-warning.focus,.btn-warning:focus{box-shadow:0 0 0 .2rem rgba(222,170,12,.5)}.btn-warning.disabled,.btn-warning:disabled{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-warning:not(:disabled):not(.disabled).active,.btn-warning:not(:disabled):not(.disabled):active,.show>.btn-warning.dropdown-toggle{color:#212529;background-color:#d39e00;border-color:#c69500}.btn-warning:not(:disabled):not(.disabled).active:focus,.btn-warning:not(:disabled):not(.disabled):active:focus,.show>.btn-warning.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(222,170,12,.5)}.btn-danger{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-danger:hover{color:#fff;background-color:#c82333;border-color:#bd2130}.btn-danger.focus,.btn-danger:focus{box-shadow:0 0 0 .2rem rgba(225,83,97,.5)}.btn-danger.disabled,.btn-danger:disabled{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-danger:not(:disabled):not(.disabled).active,.btn-danger:not(:disabled):not(.disabled):active,.show>.btn-danger.dropdown-toggle{color:#fff;background-color:#bd2130;border-color:#b21f2d}.btn-danger:not(:disabled):not(.disabled).active:focus,.btn-danger:not(:disabled):not(.disabled):active:focus,.show>.btn-danger.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(225,83,97,.5)}.btn-light{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-light:hover{color:#212529;background-color:#e2e6ea;border-color:#dae0e5}.btn-light.focus,.btn-light:focus{box-shadow:0 0 0 .2rem rgba(216,217,219,.5)}.btn-light.disabled,.btn-light:disabled{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-light:not(:disabled):not(.disabled).active,.btn-light:not(:disabled):not(.disabled):active,.show>.btn-light.dropdown-toggle{color:#212529;background-color:#dae0e5;border-color:#d3d9df}.btn-light:not(:disabled):not(.disabled).active:focus,.btn-light:not(:disabled):not(.disabled):active:focus,.show>.btn-light.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(216,217,219,.5)}.btn-dark{color:#fff;background-color:#343a40;border-color:#343a40}.btn-dark:hover{color:#fff;background-color:#23272b;border-color:#1d2124}.btn-dark.focus,.btn-dark:focus{box-shadow:0 0 0 .2rem rgba(82,88,93,.5)}.btn-dark.disabled,.btn-dark:disabled{color:#fff;background-color:#343a40;border-color:#343a40}.btn-dark:not(:disabled):not(.disabled).active,.btn-dark:not(:disabled):not(.disabled):active,.show>.btn-dark.dropdown-toggle{color:#fff;background-color:#1d2124;border-color:#171a1d}.btn-dark:not(:disabled):not(.disabled).active:focus,.btn-dark:not(:disabled):not(.disabled):active:focus,.show>.btn-dark.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(82,88,93,.5)}.btn-outline-primary{color:#007bff;border-color:#007bff}.btn-outline-primary:hover{color:#fff;background-color:#007bff;border-color:#007bff}.btn-outline-primary.focus,.btn-outline-primary:focus{box-shadow:0 0 0 .2rem rgba(0,123,255,.5)}.btn-outline-primary.disabled,.btn-outline-primary:disabled{color:#007bff;background-color:transparent}.btn-outline-primary:not(:disabled):not(.disabled).active,.btn-outline-primary:not(:disabled):not(.disabled):active,.show>.btn-outline-primary.dropdown-toggle{color:#fff;background-color:#007bff;border-color:#007bff}.btn-outline-primary:not(:disabled):not(.disabled).active:focus,.btn-outline-primary:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-primary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(0,123,255,.5)}.btn-outline-secondary{color:#6c757d;border-color:#6c757d}.btn-outline-secondary:hover{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-outline-secondary.focus,.btn-outline-secondary:focus{box-shadow:0 0 0 .2rem rgba(108,117,125,.5)}.btn-outline-secondary.disabled,.btn-outline-secondary:disabled{color:#6c757d;background-color:transparent}.btn-outline-secondary:not(:disabled):not(.disabled).active,.btn-outline-secondary:not(:disabled):not(.disabled):active,.show>.btn-outline-secondary.dropdown-toggle{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-outline-secondary:not(:disabled):not(.disabled).active:focus,.btn-outline-secondary:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-secondary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(108,117,125,.5)}.btn-outline-success{color:#28a745;border-color:#28a745}.btn-outline-success:hover{color:#fff;background-color:#28a745;border-color:#28a745}.btn-outline-success.focus,.btn-outline-success:focus{box-shadow:0 0 0 .2rem rgba(40,167,69,.5)}.btn-outline-success.disabled,.btn-outline-success:disabled{color:#28a745;background-color:transparent}.btn-outline-success:not(:disabled):not(.disabled).active,.btn-outline-success:not(:disabled):not(.disabled):active,.show>.btn-outline-success.dropdown-toggle{color:#fff;background-color:#28a745;border-color:#28a745}.btn-outline-success:not(:disabled):not(.disabled).active:focus,.btn-outline-success:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-success.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(40,167,69,.5)}.btn-outline-info{color:#17a2b8;border-color:#17a2b8}.btn-outline-info:hover{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-outline-info.focus,.btn-outline-info:focus{box-shadow:0 0 0 .2rem rgba(23,162,184,.5)}.btn-outline-info.disabled,.btn-outline-info:disabled{color:#17a2b8;background-color:transparent}.btn-outline-info:not(:disabled):not(.disabled).active,.btn-outline-info:not(:disabled):not(.disabled):active,.show>.btn-outline-info.dropdown-toggle{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-outline-info:not(:disabled):not(.disabled).active:focus,.btn-outline-info:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-info.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(23,162,184,.5)}.btn-outline-warning{color:#ffc107;border-color:#ffc107}.btn-outline-warning:hover{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-outline-warning.focus,.btn-outline-warning:focus{box-shadow:0 0 0 .2rem rgba(255,193,7,.5)}.btn-outline-warning.disabled,.btn-outline-warning:disabled{color:#ffc107;background-color:transparent}.btn-outline-warning:not(:disabled):not(.disabled).active,.btn-outline-warning:not(:disabled):not(.disabled):active,.show>.btn-outline-warning.dropdown-toggle{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-outline-warning:not(:disabled):not(.disabled).active:focus,.btn-outline-warning:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-warning.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(255,193,7,.5)}.btn-outline-danger{color:#dc3545;border-color:#dc3545}.btn-outline-danger:hover{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-outline-danger.focus,.btn-outline-danger:focus{box-shadow:0 0 0 .2rem rgba(220,53,69,.5)}.btn-outline-danger.disabled,.btn-outline-danger:disabled{color:#dc3545;background-color:transparent}.btn-outline-danger:not(:disabled):not(.disabled).active,.btn-outline-danger:not(:disabled):not(.disabled):active,.show>.btn-outline-danger.dropdown-toggle{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-outline-danger:not(:disabled):not(.disabled).active:focus,.btn-outline-danger:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-danger.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(220,53,69,.5)}.btn-outline-light{color:#f8f9fa;border-color:#f8f9fa}.btn-outline-light:hover{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-outline-light.focus,.btn-outline-light:focus{box-shadow:0 0 0 .2rem rgba(248,249,250,.5)}.btn-outline-light.disabled,.btn-outline-light:disabled{color:#f8f9fa;background-color:transparent}.btn-outline-light:not(:disabled):not(.disabled).active,.btn-outline-light:not(:disabled):not(.disabled):active,.show>.btn-outline-light.dropdown-toggle{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-outline-light:not(:disabled):not(.disabled).active:focus,.btn-outline-light:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-light.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(248,249,250,.5)}.btn-outline-dark{color:#343a40;border-color:#343a40}.btn-outline-dark:hover{color:#fff;background-color:#343a40;border-color:#343a40}.btn-outline-dark.focus,.btn-outline-dark:focus{box-shadow:0 0 0 .2rem rgba(52,58,64,.5)}.btn-outline-dark.disabled,.btn-outline-dark:disabled{color:#343a40;background-color:transparent}.btn-outline-dark:not(:disabled):not(.disabled).active,.btn-outline-dark:not(:disabled):not(.disabled):active,.show>.btn-outline-dark.dropdown-toggle{color:#fff;background-color:#343a40;border-color:#343a40}.btn-outline-dark:not(:disabled):not(.disabled).active:focus,.btn-outline-dark:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-dark.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(52,58,64,.5)}.btn-link{font-weight:400;color:#007bff}.btn-link:hover{color:#0056b3;text-decoration:underline}.btn-link.focus,.btn-link:focus{text-decoration:underline;box-shadow:none}.btn-link.disabled,.btn-link:disabled{color:#6c757d;pointer-events:none}.btn-group-lg>.btn,.btn-lg{padding:.5rem 1rem;font-size:1.25rem;line-height:1.5;border-radius:.3rem}.btn-group-sm>.btn,.btn-sm{padding:.25rem .5rem;font-size:.875rem;line-height:1.5;border-radius:.2rem}.btn-block{display:block;width:100%}.btn-block+.btn-block{margin-top:.5rem}input[type=button].btn-block,input[type=reset].btn-block,input[type=submit].btn-block{width:100%}.fade{transition:opacity .15s linear}@media screen and (prefers-reduced-motion:reduce){.fade{transition:none}}.fade:not(.show){opacity:0}.collapse:not(.show){display:none}.collapsing{position:relative;height:0;overflow:hidden;transition:height .35s ease}@media screen and (prefers-reduced-motion:reduce){.collapsing{transition:none}}.dropdown,.dropleft,.dropright,.dropup{position:relative}.dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:.3em solid;border-right:.3em solid transparent;border-bottom:0;border-left:.3em solid transparent}.dropdown-toggle:empty::after{margin-left:0}.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:10rem;padding:.5rem 0;margin:.125rem 0 0;font-size:1rem;color:#212529;text-align:left;list-style:none;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.15);border-radius:.25rem}.dropdown-menu-right{right:0;left:auto}@media (min-width:576px){.dropdown-menu-sm-right{right:0;left:auto}}@media (min-width:768px){.dropdown-menu-md-right{right:0;left:auto}}@media (min-width:992px){.dropdown-menu-lg-right{right:0;left:auto}}@media (min-width:1200px){.dropdown-menu-xl-right{right:0;left:auto}}.dropdown-menu-left{right:auto;left:0}@media (min-width:576px){.dropdown-menu-sm-left{right:auto;left:0}}@media (min-width:768px){.dropdown-menu-md-left{right:auto;left:0}}@media (min-width:992px){.dropdown-menu-lg-left{right:auto;left:0}}@media (min-width:1200px){.dropdown-menu-xl-left{right:auto;left:0}}.dropup .dropdown-menu{top:auto;bottom:100%;margin-top:0;margin-bottom:.125rem}.dropup .dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:0;border-right:.3em solid transparent;border-bottom:.3em solid;border-left:.3em solid transparent}.dropup .dropdown-toggle:empty::after{margin-left:0}.dropright .dropdown-menu{top:0;right:auto;left:100%;margin-top:0;margin-left:.125rem}.dropright .dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:.3em solid transparent;border-right:0;border-bottom:.3em solid transparent;border-left:.3em solid}.dropright .dropdown-toggle:empty::after{margin-left:0}.dropright .dropdown-toggle::after{vertical-align:0}.dropleft .dropdown-menu{top:0;right:100%;left:auto;margin-top:0;margin-right:.125rem}.dropleft .dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:""}.dropleft .dropdown-toggle::after{display:none}.dropleft .dropdown-toggle::before{display:inline-block;margin-right:.255em;vertical-align:.255em;content:"";border-top:.3em solid transparent;border-right:.3em solid;border-bottom:.3em solid transparent}.dropleft .dropdown-toggle:empty::after{margin-left:0}.dropleft .dropdown-toggle::before{vertical-align:0}.dropdown-menu[x-placement^=bottom],.dropdown-menu[x-placement^=left],.dropdown-menu[x-placement^=right],.dropdown-menu[x-placement^=top]{right:auto;bottom:auto}.dropdown-divider{height:0;margin:.5rem 0;overflow:hidden;border-top:1px solid #e9ecef}.dropdown-item{display:block;width:100%;padding:.25rem 1.5rem;clear:both;font-weight:400;color:#212529;text-align:inherit;white-space:nowrap;background-color:transparent;border:0}.dropdown-item:first-child{border-top-left-radius:calc(.25rem - 1px);border-top-right-radius:calc(.25rem - 1px)}.dropdown-item:last-child{border-bottom-right-radius:calc(.25rem - 1px);border-bottom-left-radius:calc(.25rem - 1px)}.dropdown-item:focus,.dropdown-item:hover{color:#16181b;text-decoration:none;background-color:#f8f9fa}.dropdown-item.active,.dropdown-item:active{color:#fff;text-decoration:none;background-color:#007bff}.dropdown-item.disabled,.dropdown-item:disabled{color:#6c757d;pointer-events:none;background-color:transparent}.dropdown-menu.show{display:block}.dropdown-header{display:block;padding:.5rem 1.5rem;margin-bottom:0;font-size:.875rem;color:#6c757d;white-space:nowrap}.dropdown-item-text{display:block;padding:.25rem 1.5rem;color:#212529}.btn-group,.btn-group-vertical{position:relative;display:-ms-inline-flexbox;display:inline-flex;vertical-align:middle}.btn-group-vertical>.btn,.btn-group>.btn{position:relative;-ms-flex:1 1 auto;flex:1 1 auto}.btn-group-vertical>.btn:hover,.btn-group>.btn:hover{z-index:1}.btn-group-vertical>.btn.active,.btn-group-vertical>.btn:active,.btn-group-vertical>.btn:focus,.btn-group>.btn.active,.btn-group>.btn:active,.btn-group>.btn:focus{z-index:1}.btn-toolbar{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-pack:start;justify-content:flex-start}.btn-toolbar .input-group{width:auto}.btn-group>.btn-group:not(:first-child),.btn-group>.btn:not(:first-child){margin-left:-1px}.btn-group>.btn-group:not(:last-child)>.btn,.btn-group>.btn:not(:last-child):not(.dropdown-toggle){border-top-right-radius:0;border-bottom-right-radius:0}.btn-group>.btn-group:not(:first-child)>.btn,.btn-group>.btn:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.dropdown-toggle-split{padding-right:.5625rem;padding-left:.5625rem}.dropdown-toggle-split::after,.dropright .dropdown-toggle-split::after,.dropup .dropdown-toggle-split::after{margin-left:0}.dropleft .dropdown-toggle-split::before{margin-right:0}.btn-group-sm>.btn+.dropdown-toggle-split,.btn-sm+.dropdown-toggle-split{padding-right:.375rem;padding-left:.375rem}.btn-group-lg>.btn+.dropdown-toggle-split,.btn-lg+.dropdown-toggle-split{padding-right:.75rem;padding-left:.75rem}.btn-group-vertical{-ms-flex-direction:column;flex-direction:column;-ms-flex-align:start;align-items:flex-start;-ms-flex-pack:center;justify-content:center}.btn-group-vertical>.btn,.btn-group-vertical>.btn-group{width:100%}.btn-group-vertical>.btn-group:not(:first-child),.btn-group-vertical>.btn:not(:first-child){margin-top:-1px}.btn-group-vertical>.btn-group:not(:last-child)>.btn,.btn-group-vertical>.btn:not(:last-child):not(.dropdown-toggle){border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn-group:not(:first-child)>.btn,.btn-group-vertical>.btn:not(:first-child){border-top-left-radius:0;border-top-right-radius:0}.btn-group-toggle>.btn,.btn-group-toggle>.btn-group>.btn{margin-bottom:0}.btn-group-toggle>.btn input[type=checkbox],.btn-group-toggle>.btn input[type=radio],.btn-group-toggle>.btn-group>.btn input[type=checkbox],.btn-group-toggle>.btn-group>.btn input[type=radio]{position:absolute;clip:rect(0,0,0,0);pointer-events:none}.input-group{position:relative;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-align:stretch;align-items:stretch;width:100%}.input-group>.custom-file,.input-group>.custom-select,.input-group>.form-control,.input-group>.form-control-plaintext{position:relative;-ms-flex:1 1 auto;flex:1 1 auto;width:1%;margin-bottom:0}.input-group>.custom-file+.custom-file,.input-group>.custom-file+.custom-select,.input-group>.custom-file+.form-control,.input-group>.custom-select+.custom-file,.input-group>.custom-select+.custom-select,.input-group>.custom-select+.form-control,.input-group>.form-control+.custom-file,.input-group>.form-control+.custom-select,.input-group>.form-control+.form-control,.input-group>.form-control-plaintext+.custom-file,.input-group>.form-control-plaintext+.custom-select,.input-group>.form-control-plaintext+.form-control{margin-left:-1px}.input-group>.custom-file .custom-file-input:focus~.custom-file-label,.input-group>.custom-select:focus,.input-group>.form-control:focus{z-index:3}.input-group>.custom-file .custom-file-input:focus{z-index:4}.input-group>.custom-select:not(:last-child),.input-group>.form-control:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.input-group>.custom-select:not(:first-child),.input-group>.form-control:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.input-group>.custom-file{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center}.input-group>.custom-file:not(:last-child) .custom-file-label,.input-group>.custom-file:not(:last-child) .custom-file-label::after{border-top-right-radius:0;border-bottom-right-radius:0}.input-group>.custom-file:not(:first-child) .custom-file-label{border-top-left-radius:0;border-bottom-left-radius:0}.input-group-append,.input-group-prepend{display:-ms-flexbox;display:flex}.input-group-append .btn,.input-group-prepend .btn{position:relative;z-index:2}.input-group-append .btn:focus,.input-group-prepend .btn:focus{z-index:3}.input-group-append .btn+.btn,.input-group-append .btn+.input-group-text,.input-group-append .input-group-text+.btn,.input-group-append .input-group-text+.input-group-text,.input-group-prepend .btn+.btn,.input-group-prepend .btn+.input-group-text,.input-group-prepend .input-group-text+.btn,.input-group-prepend .input-group-text+.input-group-text{margin-left:-1px}.input-group-prepend{margin-right:-1px}.input-group-append{margin-left:-1px}.input-group-text{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;padding:.375rem .75rem;margin-bottom:0;font-size:1rem;font-weight:400;line-height:1.5;color:#495057;text-align:center;white-space:nowrap;background-color:#e9ecef;border:1px solid #ced4da;border-radius:.25rem}.input-group-text input[type=checkbox],.input-group-text input[type=radio]{margin-top:0}.input-group-lg>.custom-select,.input-group-lg>.form-control:not(textarea){height:calc(2.875rem + 2px)}.input-group-lg>.custom-select,.input-group-lg>.form-control,.input-group-lg>.input-group-append>.btn,.input-group-lg>.input-group-append>.input-group-text,.input-group-lg>.input-group-prepend>.btn,.input-group-lg>.input-group-prepend>.input-group-text{padding:.5rem 1rem;font-size:1.25rem;line-height:1.5;border-radius:.3rem}.input-group-sm>.custom-select,.input-group-sm>.form-control:not(textarea){height:calc(1.8125rem + 2px)}.input-group-sm>.custom-select,.input-group-sm>.form-control,.input-group-sm>.input-group-append>.btn,.input-group-sm>.input-group-append>.input-group-text,.input-group-sm>.input-group-prepend>.btn,.input-group-sm>.input-group-prepend>.input-group-text{padding:.25rem .5rem;font-size:.875rem;line-height:1.5;border-radius:.2rem}.input-group-lg>.custom-select,.input-group-sm>.custom-select{padding-right:1.75rem}.input-group>.input-group-append:last-child>.btn:not(:last-child):not(.dropdown-toggle),.input-group>.input-group-append:last-child>.input-group-text:not(:last-child),.input-group>.input-group-append:not(:last-child)>.btn,.input-group>.input-group-append:not(:last-child)>.input-group-text,.input-group>.input-group-prepend>.btn,.input-group>.input-group-prepend>.input-group-text{border-top-right-radius:0;border-bottom-right-radius:0}.input-group>.input-group-append>.btn,.input-group>.input-group-append>.input-group-text,.input-group>.input-group-prepend:first-child>.btn:not(:first-child),.input-group>.input-group-prepend:first-child>.input-group-text:not(:first-child),.input-group>.input-group-prepend:not(:first-child)>.btn,.input-group>.input-group-prepend:not(:first-child)>.input-group-text{border-top-left-radius:0;border-bottom-left-radius:0}.custom-control{position:relative;display:block;min-height:1.5rem;padding-left:1.5rem}.custom-control-inline{display:-ms-inline-flexbox;display:inline-flex;margin-right:1rem}.custom-control-input{position:absolute;z-index:-1;opacity:0}.custom-control-input:checked~.custom-control-label::before{color:#fff;border-color:#007bff;background-color:#007bff}.custom-control-input:focus~.custom-control-label::before{box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.custom-control-input:focus:not(:checked)~.custom-control-label::before{border-color:#80bdff}.custom-control-input:not(:disabled):active~.custom-control-label::before{color:#fff;background-color:#b3d7ff;border-color:#b3d7ff}.custom-control-input:disabled~.custom-control-label{color:#6c757d}.custom-control-input:disabled~.custom-control-label::before{background-color:#e9ecef}.custom-control-label{position:relative;margin-bottom:0;vertical-align:top}.custom-control-label::before{position:absolute;top:.25rem;left:-1.5rem;display:block;width:1rem;height:1rem;pointer-events:none;content:"";background-color:#fff;border:#adb5bd solid 1px}.custom-control-label::after{position:absolute;top:.25rem;left:-1.5rem;display:block;width:1rem;height:1rem;content:"";background-repeat:no-repeat;background-position:center center;background-size:50% 50%}.custom-checkbox .custom-control-label::before{border-radius:.25rem}.custom-checkbox .custom-control-input:checked~.custom-control-label::after{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3e%3c/svg%3e")}.custom-checkbox .custom-control-input:indeterminate~.custom-control-label::before{border-color:#007bff;background-color:#007bff}.custom-checkbox .custom-control-input:indeterminate~.custom-control-label::after{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 4'%3e%3cpath stroke='%23fff' d='M0 2h4'/%3e%3c/svg%3e")}.custom-checkbox .custom-control-input:disabled:checked~.custom-control-label::before{background-color:rgba(0,123,255,.5)}.custom-checkbox .custom-control-input:disabled:indeterminate~.custom-control-label::before{background-color:rgba(0,123,255,.5)}.custom-radio .custom-control-label::before{border-radius:50%}.custom-radio .custom-control-input:checked~.custom-control-label::after{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%23fff'/%3e%3c/svg%3e")}.custom-radio .custom-control-input:disabled:checked~.custom-control-label::before{background-color:rgba(0,123,255,.5)}.custom-switch{padding-left:2.25rem}.custom-switch .custom-control-label::before{left:-2.25rem;width:1.75rem;pointer-events:all;border-radius:.5rem}.custom-switch .custom-control-label::after{top:calc(.25rem + 2px);left:calc(-2.25rem + 2px);width:calc(1rem - 4px);height:calc(1rem - 4px);background-color:#adb5bd;border-radius:.5rem;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out,-webkit-transform .15s ease-in-out;transition:transform .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:transform .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out,-webkit-transform .15s ease-in-out}@media screen and (prefers-reduced-motion:reduce){.custom-switch .custom-control-label::after{transition:none}}.custom-switch .custom-control-input:checked~.custom-control-label::after{background-color:#fff;-webkit-transform:translateX(.75rem);transform:translateX(.75rem)}.custom-switch .custom-control-input:disabled:checked~.custom-control-label::before{background-color:rgba(0,123,255,.5)}.custom-select{display:inline-block;width:100%;height:calc(2.25rem + 2px);padding:.375rem 1.75rem .375rem .75rem;font-weight:400;line-height:1.5;color:#495057;vertical-align:middle;background:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e") no-repeat right .75rem center/8px 10px;background-color:#fff;border:1px solid #ced4da;border-radius:.25rem;-webkit-appearance:none;-moz-appearance:none;appearance:none}.custom-select:focus{border-color:#80bdff;outline:0;box-shadow:0 0 0 .2rem rgba(128,189,255,.5)}.custom-select:focus::-ms-value{color:#495057;background-color:#fff}.custom-select[multiple],.custom-select[size]:not([size="1"]){height:auto;padding-right:.75rem;background-image:none}.custom-select:disabled{color:#6c757d;background-color:#e9ecef}.custom-select::-ms-expand{opacity:0}.custom-select-sm{height:calc(1.8125rem + 2px);padding-top:.25rem;padding-bottom:.25rem;padding-left:.5rem;font-size:.875rem}.custom-select-lg{height:calc(2.875rem + 2px);padding-top:.5rem;padding-bottom:.5rem;padding-left:1rem;font-size:1.25rem}.custom-file{position:relative;display:inline-block;width:100%;height:calc(2.25rem + 2px);margin-bottom:0}.custom-file-input{position:relative;z-index:2;width:100%;height:calc(2.25rem + 2px);margin:0;opacity:0}.custom-file-input:focus~.custom-file-label{border-color:#80bdff;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.custom-file-input:disabled~.custom-file-label{background-color:#e9ecef}.custom-file-input:lang(en)~.custom-file-label::after{content:"Browse"}.custom-file-input~.custom-file-label[data-browse]::after{content:attr(data-browse)}.custom-file-label{position:absolute;top:0;right:0;left:0;z-index:1;height:calc(2.25rem + 2px);padding:.375rem .75rem;font-weight:400;line-height:1.5;color:#495057;background-color:#fff;border:1px solid #ced4da;border-radius:.25rem}.custom-file-label::after{position:absolute;top:0;right:0;bottom:0;z-index:3;display:block;height:2.25rem;padding:.375rem .75rem;line-height:1.5;color:#495057;content:"Browse";background-color:#e9ecef;border-left:inherit;border-radius:0 .25rem .25rem 0}.custom-range{width:100%;height:calc(1rem + .4rem);padding:0;background-color:transparent;-webkit-appearance:none;-moz-appearance:none;appearance:none}.custom-range:focus{outline:0}.custom-range:focus::-webkit-slider-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(0,123,255,.25)}.custom-range:focus::-moz-range-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(0,123,255,.25)}.custom-range:focus::-ms-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(0,123,255,.25)}.custom-range::-moz-focus-outer{border:0}.custom-range::-webkit-slider-thumb{width:1rem;height:1rem;margin-top:-.25rem;background-color:#007bff;border:0;border-radius:1rem;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;-webkit-appearance:none;appearance:none}@media screen and (prefers-reduced-motion:reduce){.custom-range::-webkit-slider-thumb{transition:none}}.custom-range::-webkit-slider-thumb:active{background-color:#b3d7ff}.custom-range::-webkit-slider-runnable-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:#dee2e6;border-color:transparent;border-radius:1rem}.custom-range::-moz-range-thumb{width:1rem;height:1rem;background-color:#007bff;border:0;border-radius:1rem;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;-moz-appearance:none;appearance:none}@media screen and (prefers-reduced-motion:reduce){.custom-range::-moz-range-thumb{transition:none}}.custom-range::-moz-range-thumb:active{background-color:#b3d7ff}.custom-range::-moz-range-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:#dee2e6;border-color:transparent;border-radius:1rem}.custom-range::-ms-thumb{width:1rem;height:1rem;margin-top:0;margin-right:.2rem;margin-left:.2rem;background-color:#007bff;border:0;border-radius:1rem;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;appearance:none}@media screen and (prefers-reduced-motion:reduce){.custom-range::-ms-thumb{transition:none}}.custom-range::-ms-thumb:active{background-color:#b3d7ff}.custom-range::-ms-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:transparent;border-color:transparent;border-width:.5rem}.custom-range::-ms-fill-lower{background-color:#dee2e6;border-radius:1rem}.custom-range::-ms-fill-upper{margin-right:15px;background-color:#dee2e6;border-radius:1rem}.custom-range:disabled::-webkit-slider-thumb{background-color:#adb5bd}.custom-range:disabled::-webkit-slider-runnable-track{cursor:default}.custom-range:disabled::-moz-range-thumb{background-color:#adb5bd}.custom-range:disabled::-moz-range-track{cursor:default}.custom-range:disabled::-ms-thumb{background-color:#adb5bd}.custom-control-label::before,.custom-file-label,.custom-select{transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media screen and (prefers-reduced-motion:reduce){.custom-control-label::before,.custom-file-label,.custom-select{transition:none}}.nav{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;padding-left:0;margin-bottom:0;list-style:none}.nav-link{display:block;padding:.5rem 1rem}.nav-link:focus,.nav-link:hover{text-decoration:none}.nav-link.disabled{color:#6c757d;pointer-events:none;cursor:default}.nav-tabs{border-bottom:1px solid #dee2e6}.nav-tabs .nav-item{margin-bottom:-1px}.nav-tabs .nav-link{border:1px solid transparent;border-top-left-radius:.25rem;border-top-right-radius:.25rem}.nav-tabs .nav-link:focus,.nav-tabs .nav-link:hover{border-color:#e9ecef #e9ecef #dee2e6}.nav-tabs .nav-link.disabled{color:#6c757d;background-color:transparent;border-color:transparent}.nav-tabs .nav-item.show .nav-link,.nav-tabs .nav-link.active{color:#495057;background-color:#fff;border-color:#dee2e6 #dee2e6 #fff}.nav-tabs .dropdown-menu{margin-top:-1px;border-top-left-radius:0;border-top-right-radius:0}.nav-pills .nav-link{border-radius:.25rem}.nav-pills .nav-link.active,.nav-pills .show>.nav-link{color:#fff;background-color:#007bff}.nav-fill .nav-item{-ms-flex:1 1 auto;flex:1 1 auto;text-align:center}.nav-justified .nav-item{-ms-flex-preferred-size:0;flex-basis:0;-ms-flex-positive:1;flex-grow:1;text-align:center}.tab-content>.tab-pane{display:none}.tab-content>.active{display:block}.navbar{position:relative;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-align:center;align-items:center;-ms-flex-pack:justify;justify-content:space-between;padding:.5rem 1rem}.navbar>.container,.navbar>.container-fluid{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-align:center;align-items:center;-ms-flex-pack:justify;justify-content:space-between}.navbar-brand{display:inline-block;padding-top:.3125rem;padding-bottom:.3125rem;margin-right:1rem;font-size:1.25rem;line-height:inherit;white-space:nowrap}.navbar-brand:focus,.navbar-brand:hover{text-decoration:none}.navbar-nav{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;padding-left:0;margin-bottom:0;list-style:none}.navbar-nav .nav-link{padding-right:0;padding-left:0}.navbar-nav .dropdown-menu{position:static;float:none}.navbar-text{display:inline-block;padding-top:.5rem;padding-bottom:.5rem}.navbar-collapse{-ms-flex-preferred-size:100%;flex-basis:100%;-ms-flex-positive:1;flex-grow:1;-ms-flex-align:center;align-items:center}.navbar-toggler{padding:.25rem .75rem;font-size:1.25rem;line-height:1;background-color:transparent;border:1px solid transparent;border-radius:.25rem}.navbar-toggler:focus,.navbar-toggler:hover{text-decoration:none}.navbar-toggler:not(:disabled):not(.disabled){cursor:pointer}.navbar-toggler-icon{display:inline-block;width:1.5em;height:1.5em;vertical-align:middle;content:"";background:no-repeat center center;background-size:100% 100%}@media (max-width:575.98px){.navbar-expand-sm>.container,.navbar-expand-sm>.container-fluid{padding-right:0;padding-left:0}}@media (min-width:576px){.navbar-expand-sm{-ms-flex-flow:row nowrap;flex-flow:row nowrap;-ms-flex-pack:start;justify-content:flex-start}.navbar-expand-sm .navbar-nav{-ms-flex-direction:row;flex-direction:row}.navbar-expand-sm .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-sm .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-sm>.container,.navbar-expand-sm>.container-fluid{-ms-flex-wrap:nowrap;flex-wrap:nowrap}.navbar-expand-sm .navbar-collapse{display:-ms-flexbox!important;display:flex!important;-ms-flex-preferred-size:auto;flex-basis:auto}.navbar-expand-sm .navbar-toggler{display:none}}@media (max-width:767.98px){.navbar-expand-md>.container,.navbar-expand-md>.container-fluid{padding-right:0;padding-left:0}}@media (min-width:768px){.navbar-expand-md{-ms-flex-flow:row nowrap;flex-flow:row nowrap;-ms-flex-pack:start;justify-content:flex-start}.navbar-expand-md .navbar-nav{-ms-flex-direction:row;flex-direction:row}.navbar-expand-md .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-md .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-md>.container,.navbar-expand-md>.container-fluid{-ms-flex-wrap:nowrap;flex-wrap:nowrap}.navbar-expand-md .navbar-collapse{display:-ms-flexbox!important;display:flex!important;-ms-flex-preferred-size:auto;flex-basis:auto}.navbar-expand-md .navbar-toggler{display:none}}@media (max-width:991.98px){.navbar-expand-lg>.container,.navbar-expand-lg>.container-fluid{padding-right:0;padding-left:0}}@media (min-width:992px){.navbar-expand-lg{-ms-flex-flow:row nowrap;flex-flow:row nowrap;-ms-flex-pack:start;justify-content:flex-start}.navbar-expand-lg .navbar-nav{-ms-flex-direction:row;flex-direction:row}.navbar-expand-lg .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-lg .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-lg>.container,.navbar-expand-lg>.container-fluid{-ms-flex-wrap:nowrap;flex-wrap:nowrap}.navbar-expand-lg .navbar-collapse{display:-ms-flexbox!important;display:flex!important;-ms-flex-preferred-size:auto;flex-basis:auto}.navbar-expand-lg .navbar-toggler{display:none}}@media (max-width:1199.98px){.navbar-expand-xl>.container,.navbar-expand-xl>.container-fluid{padding-right:0;padding-left:0}}@media (min-width:1200px){.navbar-expand-xl{-ms-flex-flow:row nowrap;flex-flow:row nowrap;-ms-flex-pack:start;justify-content:flex-start}.navbar-expand-xl .navbar-nav{-ms-flex-direction:row;flex-direction:row}.navbar-expand-xl .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-xl .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-xl>.container,.navbar-expand-xl>.container-fluid{-ms-flex-wrap:nowrap;flex-wrap:nowrap}.navbar-expand-xl .navbar-collapse{display:-ms-flexbox!important;display:flex!important;-ms-flex-preferred-size:auto;flex-basis:auto}.navbar-expand-xl .navbar-toggler{display:none}}.navbar-expand{-ms-flex-flow:row nowrap;flex-flow:row nowrap;-ms-flex-pack:start;justify-content:flex-start}.navbar-expand>.container,.navbar-expand>.container-fluid{padding-right:0;padding-left:0}.navbar-expand .navbar-nav{-ms-flex-direction:row;flex-direction:row}.navbar-expand .navbar-nav .dropdown-menu{position:absolute}.navbar-expand .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand>.container,.navbar-expand>.container-fluid{-ms-flex-wrap:nowrap;flex-wrap:nowrap}.navbar-expand .navbar-collapse{display:-ms-flexbox!important;display:flex!important;-ms-flex-preferred-size:auto;flex-basis:auto}.navbar-expand .navbar-toggler{display:none}.navbar-light .navbar-brand{color:rgba(0,0,0,.9)}.navbar-light .navbar-brand:focus,.navbar-light .navbar-brand:hover{color:rgba(0,0,0,.9)}.navbar-light .navbar-nav .nav-link{color:rgba(0,0,0,.5)}.navbar-light .navbar-nav .nav-link:focus,.navbar-light .navbar-nav .nav-link:hover{color:rgba(0,0,0,.7)}.navbar-light .navbar-nav .nav-link.disabled{color:rgba(0,0,0,.3)}.navbar-light .navbar-nav .active>.nav-link,.navbar-light .navbar-nav .nav-link.active,.navbar-light .navbar-nav .nav-link.show,.navbar-light .navbar-nav .show>.nav-link{color:rgba(0,0,0,.9)}.navbar-light .navbar-toggler{color:rgba(0,0,0,.5);border-color:rgba(0,0,0,.1)}.navbar-light .navbar-toggler-icon{background-image:url("data:image/svg+xml,%3csvg viewBox='0 0 30 30' xmlns='http://www.w3.org/2000/svg'%3e%3cpath stroke='rgba(0, 0, 0, 0.5)' stroke-width='2' stroke-linecap='round' stroke-miterlimit='10' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e")}.navbar-light .navbar-text{color:rgba(0,0,0,.5)}.navbar-light .navbar-text a{color:rgba(0,0,0,.9)}.navbar-light .navbar-text a:focus,.navbar-light .navbar-text a:hover{color:rgba(0,0,0,.9)}.navbar-dark .navbar-brand{color:#fff}.navbar-dark .navbar-brand:focus,.navbar-dark .navbar-brand:hover{color:#fff}.navbar-dark .navbar-nav .nav-link{color:rgba(255,255,255,.5)}.navbar-dark .navbar-nav .nav-link:focus,.navbar-dark .navbar-nav .nav-link:hover{color:rgba(255,255,255,.75)}.navbar-dark .navbar-nav .nav-link.disabled{color:rgba(255,255,255,.25)}.navbar-dark .navbar-nav .active>.nav-link,.navbar-dark .navbar-nav .nav-link.active,.navbar-dark .navbar-nav .nav-link.show,.navbar-dark .navbar-nav .show>.nav-link{color:#fff}.navbar-dark .navbar-toggler{color:rgba(255,255,255,.5);border-color:rgba(255,255,255,.1)}.navbar-dark .navbar-toggler-icon{background-image:url("data:image/svg+xml,%3csvg viewBox='0 0 30 30' xmlns='http://www.w3.org/2000/svg'%3e%3cpath stroke='rgba(255, 255, 255, 0.5)' stroke-width='2' stroke-linecap='round' stroke-miterlimit='10' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e")}.navbar-dark .navbar-text{color:rgba(255,255,255,.5)}.navbar-dark .navbar-text a{color:#fff}.navbar-dark .navbar-text a:focus,.navbar-dark .navbar-text a:hover{color:#fff}.card{position:relative;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;min-width:0;word-wrap:break-word;background-color:#fff;background-clip:border-box;border:1px solid rgba(0,0,0,.125);border-radius:.25rem}.card>hr{margin-right:0;margin-left:0}.card>.list-group:first-child .list-group-item:first-child{border-top-left-radius:.25rem;border-top-right-radius:.25rem}.card>.list-group:last-child .list-group-item:last-child{border-bottom-right-radius:.25rem;border-bottom-left-radius:.25rem}.card-body{-ms-flex:1 1 auto;flex:1 1 auto;padding:1.25rem}.card-title{margin-bottom:.75rem}.card-subtitle{margin-top:-.375rem;margin-bottom:0}.card-text:last-child{margin-bottom:0}.card-link:hover{text-decoration:none}.card-link+.card-link{margin-left:1.25rem}.card-header{padding:.75rem 1.25rem;margin-bottom:0;color:inherit;background-color:rgba(0,0,0,.03);border-bottom:1px solid rgba(0,0,0,.125)}.card-header:first-child{border-radius:calc(.25rem - 1px) calc(.25rem - 1px) 0 0}.card-header+.list-group .list-group-item:first-child{border-top:0}.card-footer{padding:.75rem 1.25rem;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.125)}.card-footer:last-child{border-radius:0 0 calc(.25rem - 1px) calc(.25rem - 1px)}.card-header-tabs{margin-right:-.625rem;margin-bottom:-.75rem;margin-left:-.625rem;border-bottom:0}.card-header-pills{margin-right:-.625rem;margin-left:-.625rem}.card-img-overlay{position:absolute;top:0;right:0;bottom:0;left:0;padding:1.25rem}.card-img{width:100%;border-radius:calc(.25rem - 1px)}.card-img-top{width:100%;border-top-left-radius:calc(.25rem - 1px);border-top-right-radius:calc(.25rem - 1px)}.card-img-bottom{width:100%;border-bottom-right-radius:calc(.25rem - 1px);border-bottom-left-radius:calc(.25rem - 1px)}.card-deck{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column}.card-deck .card{margin-bottom:15px}@media (min-width:576px){.card-deck{-ms-flex-flow:row wrap;flex-flow:row wrap;margin-right:-15px;margin-left:-15px}.card-deck .card{display:-ms-flexbox;display:flex;-ms-flex:1 0 0%;flex:1 0 0%;-ms-flex-direction:column;flex-direction:column;margin-right:15px;margin-bottom:0;margin-left:15px}}.card-group{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column}.card-group>.card{margin-bottom:15px}@media (min-width:576px){.card-group{-ms-flex-flow:row wrap;flex-flow:row wrap}.card-group>.card{-ms-flex:1 0 0%;flex:1 0 0%;margin-bottom:0}.card-group>.card+.card{margin-left:0;border-left:0}.card-group>.card:first-child{border-top-right-radius:0;border-bottom-right-radius:0}.card-group>.card:first-child .card-header,.card-group>.card:first-child .card-img-top{border-top-right-radius:0}.card-group>.card:first-child .card-footer,.card-group>.card:first-child .card-img-bottom{border-bottom-right-radius:0}.card-group>.card:last-child{border-top-left-radius:0;border-bottom-left-radius:0}.card-group>.card:last-child .card-header,.card-group>.card:last-child .card-img-top{border-top-left-radius:0}.card-group>.card:last-child .card-footer,.card-group>.card:last-child .card-img-bottom{border-bottom-left-radius:0}.card-group>.card:only-child{border-radius:.25rem}.card-group>.card:only-child .card-header,.card-group>.card:only-child .card-img-top{border-top-left-radius:.25rem;border-top-right-radius:.25rem}.card-group>.card:only-child .card-footer,.card-group>.card:only-child .card-img-bottom{border-bottom-right-radius:.25rem;border-bottom-left-radius:.25rem}.card-group>.card:not(:first-child):not(:last-child):not(:only-child){border-radius:0}.card-group>.card:not(:first-child):not(:last-child):not(:only-child) .card-footer,.card-group>.card:not(:first-child):not(:last-child):not(:only-child) .card-header,.card-group>.card:not(:first-child):not(:last-child):not(:only-child) .card-img-bottom,.card-group>.card:not(:first-child):not(:last-child):not(:only-child) .card-img-top{border-radius:0}}.card-columns .card{margin-bottom:.75rem}@media (min-width:576px){.card-columns{-webkit-column-count:3;-moz-column-count:3;column-count:3;-webkit-column-gap:1.25rem;-moz-column-gap:1.25rem;column-gap:1.25rem;orphans:1;widows:1}.card-columns .card{display:inline-block;width:100%}}.accordion .card{overflow:hidden}.accordion .card:not(:first-of-type) .card-header:first-child{border-radius:0}.accordion .card:not(:first-of-type):not(:last-of-type){border-bottom:0;border-radius:0}.accordion .card:first-of-type{border-bottom:0;border-bottom-right-radius:0;border-bottom-left-radius:0}.accordion .card:last-of-type{border-top-left-radius:0;border-top-right-radius:0}.accordion .card .card-header{margin-bottom:-1px}.breadcrumb{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;padding:.75rem 1rem;margin-bottom:1rem;list-style:none;background-color:#e9ecef;border-radius:.25rem}.breadcrumb-item+.breadcrumb-item{padding-left:.5rem}.breadcrumb-item+.breadcrumb-item::before{display:inline-block;padding-right:.5rem;color:#6c757d;content:"/"}.breadcrumb-item+.breadcrumb-item:hover::before{text-decoration:underline}.breadcrumb-item+.breadcrumb-item:hover::before{text-decoration:none}.breadcrumb-item.active{color:#6c757d}.pagination{display:-ms-flexbox;display:flex;padding-left:0;list-style:none;border-radius:.25rem}.page-link{position:relative;display:block;padding:.5rem .75rem;margin-left:-1px;line-height:1.25;color:#007bff;background-color:#fff;border:1px solid #dee2e6}.page-link:hover{z-index:2;color:#0056b3;text-decoration:none;background-color:#e9ecef;border-color:#dee2e6}.page-link:focus{z-index:2;outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.page-link:not(:disabled):not(.disabled){cursor:pointer}.page-item:first-child .page-link{margin-left:0;border-top-left-radius:.25rem;border-bottom-left-radius:.25rem}.page-item:last-child .page-link{border-top-right-radius:.25rem;border-bottom-right-radius:.25rem}.page-item.active .page-link{z-index:1;color:#fff;background-color:#007bff;border-color:#007bff}.page-item.disabled .page-link{color:#6c757d;pointer-events:none;cursor:auto;background-color:#fff;border-color:#dee2e6}.pagination-lg .page-link{padding:.75rem 1.5rem;font-size:1.25rem;line-height:1.5}.pagination-lg .page-item:first-child .page-link{border-top-left-radius:.3rem;border-bottom-left-radius:.3rem}.pagination-lg .page-item:last-child .page-link{border-top-right-radius:.3rem;border-bottom-right-radius:.3rem}.pagination-sm .page-link{padding:.25rem .5rem;font-size:.875rem;line-height:1.5}.pagination-sm .page-item:first-child .page-link{border-top-left-radius:.2rem;border-bottom-left-radius:.2rem}.pagination-sm .page-item:last-child .page-link{border-top-right-radius:.2rem;border-bottom-right-radius:.2rem}.badge{display:inline-block;padding:.25em .4em;font-size:75%;font-weight:700;line-height:1;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:.25rem}a.badge:focus,a.badge:hover{text-decoration:none}.badge:empty{display:none}.btn .badge{position:relative;top:-1px}.badge-pill{padding-right:.6em;padding-left:.6em;border-radius:10rem}.badge-primary{color:#fff;background-color:#007bff}a.badge-primary:focus,a.badge-primary:hover{color:#fff;background-color:#0062cc}.badge-secondary{color:#fff;background-color:#6c757d}a.badge-secondary:focus,a.badge-secondary:hover{color:#fff;background-color:#545b62}.badge-success{color:#fff;background-color:#28a745}a.badge-success:focus,a.badge-success:hover{color:#fff;background-color:#1e7e34}.badge-info{color:#fff;background-color:#17a2b8}a.badge-info:focus,a.badge-info:hover{color:#fff;background-color:#117a8b}.badge-warning{color:#212529;background-color:#ffc107}a.badge-warning:focus,a.badge-warning:hover{color:#212529;background-color:#d39e00}.badge-danger{color:#fff;background-color:#dc3545}a.badge-danger:focus,a.badge-danger:hover{color:#fff;background-color:#bd2130}.badge-light{color:#212529;background-color:#f8f9fa}a.badge-light:focus,a.badge-light:hover{color:#212529;background-color:#dae0e5}.badge-dark{color:#fff;background-color:#343a40}a.badge-dark:focus,a.badge-dark:hover{color:#fff;background-color:#1d2124}.jumbotron{padding:2rem 1rem;margin-bottom:2rem;background-color:#e9ecef;border-radius:.3rem}@media (min-width:576px){.jumbotron{padding:4rem 2rem}}.jumbotron-fluid{padding-right:0;padding-left:0;border-radius:0}.alert{position:relative;padding:.75rem 1.25rem;margin-bottom:1rem;border:1px solid transparent;border-radius:.25rem}.alert-heading{color:inherit}.alert-link{font-weight:700}.alert-dismissible{padding-right:4rem}.alert-dismissible .close{position:absolute;top:0;right:0;padding:.75rem 1.25rem;color:inherit}.alert-primary{color:#004085;background-color:#cce5ff;border-color:#b8daff}.alert-primary hr{border-top-color:#9fcdff}.alert-primary .alert-link{color:#002752}.alert-secondary{color:#383d41;background-color:#e2e3e5;border-color:#d6d8db}.alert-secondary hr{border-top-color:#c8cbcf}.alert-secondary .alert-link{color:#202326}.alert-success{color:#155724;background-color:#d4edda;border-color:#c3e6cb}.alert-success hr{border-top-color:#b1dfbb}.alert-success .alert-link{color:#0b2e13}.alert-info{color:#0c5460;background-color:#d1ecf1;border-color:#bee5eb}.alert-info hr{border-top-color:#abdde5}.alert-info .alert-link{color:#062c33}.alert-warning{color:#856404;background-color:#fff3cd;border-color:#ffeeba}.alert-warning hr{border-top-color:#ffe8a1}.alert-warning .alert-link{color:#533f03}.alert-danger{color:#721c24;background-color:#f8d7da;border-color:#f5c6cb}.alert-danger hr{border-top-color:#f1b0b7}.alert-danger .alert-link{color:#491217}.alert-light{color:#818182;background-color:#fefefe;border-color:#fdfdfe}.alert-light hr{border-top-color:#ececf6}.alert-light .alert-link{color:#686868}.alert-dark{color:#1b1e21;background-color:#d6d8d9;border-color:#c6c8ca}.alert-dark hr{border-top-color:#b9bbbe}.alert-dark .alert-link{color:#040505}@-webkit-keyframes progress-bar-stripes{from{background-position:1rem 0}to{background-position:0 0}}@keyframes progress-bar-stripes{from{background-position:1rem 0}to{background-position:0 0}}.progress{display:-ms-flexbox;display:flex;height:1rem;overflow:hidden;font-size:.75rem;background-color:#e9ecef;border-radius:.25rem}.progress-bar{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;-ms-flex-pack:center;justify-content:center;color:#fff;text-align:center;white-space:nowrap;background-color:#007bff;transition:width .6s ease}@media screen and (prefers-reduced-motion:reduce){.progress-bar{transition:none}}.progress-bar-striped{background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-size:1rem 1rem}.progress-bar-animated{-webkit-animation:progress-bar-stripes 1s linear infinite;animation:progress-bar-stripes 1s linear infinite}.media{display:-ms-flexbox;display:flex;-ms-flex-align:start;align-items:flex-start}.media-body{-ms-flex:1;flex:1}.list-group{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;padding-left:0;margin-bottom:0}.list-group-item-action{width:100%;color:#495057;text-align:inherit}.list-group-item-action:focus,.list-group-item-action:hover{color:#495057;text-decoration:none;background-color:#f8f9fa}.list-group-item-action:active{color:#212529;background-color:#e9ecef}.list-group-item{position:relative;display:block;padding:.75rem 1.25rem;margin-bottom:-1px;background-color:#fff;border:1px solid rgba(0,0,0,.125)}.list-group-item:first-child{border-top-left-radius:.25rem;border-top-right-radius:.25rem}.list-group-item:last-child{margin-bottom:0;border-bottom-right-radius:.25rem;border-bottom-left-radius:.25rem}.list-group-item:focus,.list-group-item:hover{z-index:1;text-decoration:none}.list-group-item.disabled,.list-group-item:disabled{color:#6c757d;pointer-events:none;background-color:#fff}.list-group-item.active{z-index:2;color:#fff;background-color:#007bff;border-color:#007bff}.list-group-flush .list-group-item{border-right:0;border-left:0;border-radius:0}.list-group-flush .list-group-item:last-child{margin-bottom:-1px}.list-group-flush:first-child .list-group-item:first-child{border-top:0}.list-group-flush:last-child .list-group-item:last-child{margin-bottom:0;border-bottom:0}.list-group-item-primary{color:#004085;background-color:#b8daff}.list-group-item-primary.list-group-item-action:focus,.list-group-item-primary.list-group-item-action:hover{color:#004085;background-color:#9fcdff}.list-group-item-primary.list-group-item-action.active{color:#fff;background-color:#004085;border-color:#004085}.list-group-item-secondary{color:#383d41;background-color:#d6d8db}.list-group-item-secondary.list-group-item-action:focus,.list-group-item-secondary.list-group-item-action:hover{color:#383d41;background-color:#c8cbcf}.list-group-item-secondary.list-group-item-action.active{color:#fff;background-color:#383d41;border-color:#383d41}.list-group-item-success{color:#155724;background-color:#c3e6cb}.list-group-item-success.list-group-item-action:focus,.list-group-item-success.list-group-item-action:hover{color:#155724;background-color:#b1dfbb}.list-group-item-success.list-group-item-action.active{color:#fff;background-color:#155724;border-color:#155724}.list-group-item-info{color:#0c5460;background-color:#bee5eb}.list-group-item-info.list-group-item-action:focus,.list-group-item-info.list-group-item-action:hover{color:#0c5460;background-color:#abdde5}.list-group-item-info.list-group-item-action.active{color:#fff;background-color:#0c5460;border-color:#0c5460}.list-group-item-warning{color:#856404;background-color:#ffeeba}.list-group-item-warning.list-group-item-action:focus,.list-group-item-warning.list-group-item-action:hover{color:#856404;background-color:#ffe8a1}.list-group-item-warning.list-group-item-action.active{color:#fff;background-color:#856404;border-color:#856404}.list-group-item-danger{color:#721c24;background-color:#f5c6cb}.list-group-item-danger.list-group-item-action:focus,.list-group-item-danger.list-group-item-action:hover{color:#721c24;background-color:#f1b0b7}.list-group-item-danger.list-group-item-action.active{color:#fff;background-color:#721c24;border-color:#721c24}.list-group-item-light{color:#818182;background-color:#fdfdfe}.list-group-item-light.list-group-item-action:focus,.list-group-item-light.list-group-item-action:hover{color:#818182;background-color:#ececf6}.list-group-item-light.list-group-item-action.active{color:#fff;background-color:#818182;border-color:#818182}.list-group-item-dark{color:#1b1e21;background-color:#c6c8ca}.list-group-item-dark.list-group-item-action:focus,.list-group-item-dark.list-group-item-action:hover{color:#1b1e21;background-color:#b9bbbe}.list-group-item-dark.list-group-item-action.active{color:#fff;background-color:#1b1e21;border-color:#1b1e21}.close{float:right;font-size:1.5rem;font-weight:700;line-height:1;color:#000;text-shadow:0 1px 0 #fff;opacity:.5}.close:hover{color:#000;text-decoration:none}.close:not(:disabled):not(.disabled){cursor:pointer}.close:not(:disabled):not(.disabled):focus,.close:not(:disabled):not(.disabled):hover{opacity:.75}button.close{padding:0;background-color:transparent;border:0;-webkit-appearance:none;-moz-appearance:none;appearance:none}a.close.disabled{pointer-events:none}.toast{max-width:350px;overflow:hidden;font-size:.875rem;background-color:rgba(255,255,255,.85);background-clip:padding-box;border:1px solid rgba(0,0,0,.1);border-radius:.25rem;box-shadow:0 .25rem .75rem rgba(0,0,0,.1);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);opacity:0}.toast:not(:last-child){margin-bottom:.75rem}.toast.showing{opacity:1}.toast.show{display:block;opacity:1}.toast.hide{display:none}.toast-header{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;padding:.25rem .75rem;color:#6c757d;background-color:rgba(255,255,255,.85);background-clip:padding-box;border-bottom:1px solid rgba(0,0,0,.05)}.toast-body{padding:.75rem}.modal-open{overflow:hidden}.modal-open .modal{overflow-x:hidden;overflow-y:auto}.modal{position:fixed;top:0;left:0;z-index:1050;display:none;width:100%;height:100%;overflow:hidden;outline:0}.modal-dialog{position:relative;width:auto;margin:.5rem;pointer-events:none}.modal.fade .modal-dialog{transition:-webkit-transform .3s ease-out;transition:transform .3s ease-out;transition:transform .3s ease-out,-webkit-transform .3s ease-out;-webkit-transform:translate(0,-50px);transform:translate(0,-50px)}@media screen and (prefers-reduced-motion:reduce){.modal.fade .modal-dialog{transition:none}}.modal.show .modal-dialog{-webkit-transform:none;transform:none}.modal-dialog-centered{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;min-height:calc(100% - (.5rem * 2))}.modal-dialog-centered::before{display:block;height:calc(100vh - (.5rem * 2));content:""}.modal-content{position:relative;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;width:100%;pointer-events:auto;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.2);border-radius:.3rem;outline:0}.modal-backdrop{position:fixed;top:0;left:0;z-index:1040;width:100vw;height:100vh;background-color:#000}.modal-backdrop.fade{opacity:0}.modal-backdrop.show{opacity:.5}.modal-header{display:-ms-flexbox;display:flex;-ms-flex-align:start;align-items:flex-start;-ms-flex-pack:justify;justify-content:space-between;padding:1rem 1rem;border-bottom:1px solid #e9ecef;border-top-left-radius:.3rem;border-top-right-radius:.3rem}.modal-header .close{padding:1rem 1rem;margin:-1rem -1rem -1rem auto}.modal-title{margin-bottom:0;line-height:1.5}.modal-body{position:relative;-ms-flex:1 1 auto;flex:1 1 auto;padding:1rem}.modal-footer{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:end;justify-content:flex-end;padding:1rem;border-top:1px solid #e9ecef;border-bottom-right-radius:.3rem;border-bottom-left-radius:.3rem}.modal-footer>:not(:first-child){margin-left:.25rem}.modal-footer>:not(:last-child){margin-right:.25rem}.modal-scrollbar-measure{position:absolute;top:-9999px;width:50px;height:50px;overflow:scroll}@media (min-width:576px){.modal-dialog{max-width:500px;margin:1.75rem auto}.modal-dialog-centered{min-height:calc(100% - (1.75rem * 2))}.modal-dialog-centered::before{height:calc(100vh - (1.75rem * 2))}.modal-sm{max-width:300px}}@media (min-width:992px){.modal-lg,.modal-xl{max-width:800px}}@media (min-width:1200px){.modal-xl{max-width:1140px}}.tooltip{position:absolute;z-index:1070;display:block;margin:0;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;white-space:normal;line-break:auto;font-size:.875rem;word-wrap:break-word;opacity:0}.tooltip.show{opacity:.9}.tooltip .arrow{position:absolute;display:block;width:.8rem;height:.4rem}.tooltip .arrow::before{position:absolute;content:"";border-color:transparent;border-style:solid}.bs-tooltip-auto[x-placement^=top],.bs-tooltip-top{padding:.4rem 0}.bs-tooltip-auto[x-placement^=top] .arrow,.bs-tooltip-top .arrow{bottom:0}.bs-tooltip-auto[x-placement^=top] .arrow::before,.bs-tooltip-top .arrow::before{top:0;border-width:.4rem .4rem 0;border-top-color:#000}.bs-tooltip-auto[x-placement^=right],.bs-tooltip-right{padding:0 .4rem}.bs-tooltip-auto[x-placement^=right] .arrow,.bs-tooltip-right .arrow{left:0;width:.4rem;height:.8rem}.bs-tooltip-auto[x-placement^=right] .arrow::before,.bs-tooltip-right .arrow::before{right:0;border-width:.4rem .4rem .4rem 0;border-right-color:#000}.bs-tooltip-auto[x-placement^=bottom],.bs-tooltip-bottom{padding:.4rem 0}.bs-tooltip-auto[x-placement^=bottom] .arrow,.bs-tooltip-bottom .arrow{top:0}.bs-tooltip-auto[x-placement^=bottom] .arrow::before,.bs-tooltip-bottom .arrow::before{bottom:0;border-width:0 .4rem .4rem;border-bottom-color:#000}.bs-tooltip-auto[x-placement^=left],.bs-tooltip-left{padding:0 .4rem}.bs-tooltip-auto[x-placement^=left] .arrow,.bs-tooltip-left .arrow{right:0;width:.4rem;height:.8rem}.bs-tooltip-auto[x-placement^=left] .arrow::before,.bs-tooltip-left .arrow::before{left:0;border-width:.4rem 0 .4rem .4rem;border-left-color:#000}.tooltip-inner{max-width:200px;padding:.25rem .5rem;color:#fff;text-align:center;background-color:#000;border-radius:.25rem}.popover{position:absolute;top:0;left:0;z-index:1060;display:block;max-width:276px;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;white-space:normal;line-break:auto;font-size:.875rem;word-wrap:break-word;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.2);border-radius:.3rem}.popover .arrow{position:absolute;display:block;width:1rem;height:.5rem;margin:0 .3rem}.popover .arrow::after,.popover .arrow::before{position:absolute;display:block;content:"";border-color:transparent;border-style:solid}.bs-popover-auto[x-placement^=top],.bs-popover-top{margin-bottom:.5rem}.bs-popover-auto[x-placement^=top] .arrow,.bs-popover-top .arrow{bottom:calc((.5rem + 1px) * -1)}.bs-popover-auto[x-placement^=top] .arrow::after,.bs-popover-auto[x-placement^=top] .arrow::before,.bs-popover-top .arrow::after,.bs-popover-top .arrow::before{border-width:.5rem .5rem 0}.bs-popover-auto[x-placement^=top] .arrow::before,.bs-popover-top .arrow::before{bottom:0;border-top-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=top] .arrow::after,.bs-popover-top .arrow::after{bottom:1px;border-top-color:#fff}.bs-popover-auto[x-placement^=right],.bs-popover-right{margin-left:.5rem}.bs-popover-auto[x-placement^=right] .arrow,.bs-popover-right .arrow{left:calc((.5rem + 1px) * -1);width:.5rem;height:1rem;margin:.3rem 0}.bs-popover-auto[x-placement^=right] .arrow::after,.bs-popover-auto[x-placement^=right] .arrow::before,.bs-popover-right .arrow::after,.bs-popover-right .arrow::before{border-width:.5rem .5rem .5rem 0}.bs-popover-auto[x-placement^=right] .arrow::before,.bs-popover-right .arrow::before{left:0;border-right-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=right] .arrow::after,.bs-popover-right .arrow::after{left:1px;border-right-color:#fff}.bs-popover-auto[x-placement^=bottom],.bs-popover-bottom{margin-top:.5rem}.bs-popover-auto[x-placement^=bottom] .arrow,.bs-popover-bottom .arrow{top:calc((.5rem + 1px) * -1)}.bs-popover-auto[x-placement^=bottom] .arrow::after,.bs-popover-auto[x-placement^=bottom] .arrow::before,.bs-popover-bottom .arrow::after,.bs-popover-bottom .arrow::before{border-width:0 .5rem .5rem .5rem}.bs-popover-auto[x-placement^=bottom] .arrow::before,.bs-popover-bottom .arrow::before{top:0;border-bottom-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=bottom] .arrow::after,.bs-popover-bottom .arrow::after{top:1px;border-bottom-color:#fff}.bs-popover-auto[x-placement^=bottom] .popover-header::before,.bs-popover-bottom .popover-header::before{position:absolute;top:0;left:50%;display:block;width:1rem;margin-left:-.5rem;content:"";border-bottom:1px solid #f7f7f7}.bs-popover-auto[x-placement^=left],.bs-popover-left{margin-right:.5rem}.bs-popover-auto[x-placement^=left] .arrow,.bs-popover-left .arrow{right:calc((.5rem + 1px) * -1);width:.5rem;height:1rem;margin:.3rem 0}.bs-popover-auto[x-placement^=left] .arrow::after,.bs-popover-auto[x-placement^=left] .arrow::before,.bs-popover-left .arrow::after,.bs-popover-left .arrow::before{border-width:.5rem 0 .5rem .5rem}.bs-popover-auto[x-placement^=left] .arrow::before,.bs-popover-left .arrow::before{right:0;border-left-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=left] .arrow::after,.bs-popover-left .arrow::after{right:1px;border-left-color:#fff}.popover-header{padding:.5rem .75rem;margin-bottom:0;font-size:1rem;color:inherit;background-color:#f7f7f7;border-bottom:1px solid #ebebeb;border-top-left-radius:calc(.3rem - 1px);border-top-right-radius:calc(.3rem - 1px)}.popover-header:empty{display:none}.popover-body{padding:.5rem .75rem;color:#212529}.carousel{position:relative}.carousel.pointer-event{-ms-touch-action:pan-y;touch-action:pan-y}.carousel-inner{position:relative;width:100%;overflow:hidden}.carousel-inner::after{display:block;clear:both;content:""}.carousel-item{position:relative;display:none;float:left;width:100%;margin-right:-100%;-webkit-backface-visibility:hidden;backface-visibility:hidden;transition:-webkit-transform .6s ease-in-out;transition:transform .6s ease-in-out;transition:transform .6s ease-in-out,-webkit-transform .6s ease-in-out}@media screen and (prefers-reduced-motion:reduce){.carousel-item{transition:none}}.carousel-item-next,.carousel-item-prev,.carousel-item.active{display:block}.active.carousel-item-right,.carousel-item-next:not(.carousel-item-left){-webkit-transform:translateX(100%);transform:translateX(100%)}.active.carousel-item-left,.carousel-item-prev:not(.carousel-item-right){-webkit-transform:translateX(-100%);transform:translateX(-100%)}.carousel-fade .carousel-item{opacity:0;transition-property:opacity;-webkit-transform:none;transform:none}.carousel-fade .carousel-item-next.carousel-item-left,.carousel-fade .carousel-item-prev.carousel-item-right,.carousel-fade .carousel-item.active{z-index:1;opacity:1}.carousel-fade .active.carousel-item-left,.carousel-fade .active.carousel-item-right{z-index:0;opacity:0;transition:0s .6s opacity}@media screen and (prefers-reduced-motion:reduce){.carousel-fade .active.carousel-item-left,.carousel-fade .active.carousel-item-right{transition:none}}.carousel-control-next,.carousel-control-prev{position:absolute;top:0;bottom:0;z-index:1;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;width:15%;color:#fff;text-align:center;opacity:.5;transition:opacity .15s ease}@media screen and (prefers-reduced-motion:reduce){.carousel-control-next,.carousel-control-prev{transition:none}}.carousel-control-next:focus,.carousel-control-next:hover,.carousel-control-prev:focus,.carousel-control-prev:hover{color:#fff;text-decoration:none;outline:0;opacity:.9}.carousel-control-prev{left:0}.carousel-control-next{right:0}.carousel-control-next-icon,.carousel-control-prev-icon{display:inline-block;width:20px;height:20px;background:transparent no-repeat center center;background-size:100% 100%}.carousel-control-prev-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' viewBox='0 0 8 8'%3e%3cpath d='M5.25 0l-4 4 4 4 1.5-1.5-2.5-2.5 2.5-2.5-1.5-1.5z'/%3e%3c/svg%3e")}.carousel-control-next-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' viewBox='0 0 8 8'%3e%3cpath d='M2.75 0l-1.5 1.5 2.5 2.5-2.5 2.5 1.5 1.5 4-4-4-4z'/%3e%3c/svg%3e")}.carousel-indicators{position:absolute;right:0;bottom:0;left:0;z-index:15;display:-ms-flexbox;display:flex;-ms-flex-pack:center;justify-content:center;padding-left:0;margin-right:15%;margin-left:15%;list-style:none}.carousel-indicators li{box-sizing:content-box;-ms-flex:0 1 auto;flex:0 1 auto;width:30px;height:3px;margin-right:3px;margin-left:3px;text-indent:-999px;cursor:pointer;background-color:#fff;background-clip:padding-box;border-top:10px solid transparent;border-bottom:10px solid transparent;opacity:.5;transition:opacity .6s ease}@media screen and (prefers-reduced-motion:reduce){.carousel-indicators li{transition:none}}.carousel-indicators .active{opacity:1}.carousel-caption{position:absolute;right:15%;bottom:20px;left:15%;z-index:10;padding-top:20px;padding-bottom:20px;color:#fff;text-align:center}@-webkit-keyframes spinner-border{to{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes spinner-border{to{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}.spinner-border{display:inline-block;width:2rem;height:2rem;vertical-align:text-bottom;border:.25em solid currentColor;border-right-color:transparent;border-radius:50%;-webkit-animation:spinner-border .75s linear infinite;animation:spinner-border .75s linear infinite}.spinner-border-sm{width:1rem;height:1rem;border-width:.2em}@-webkit-keyframes spinner-grow{0%{-webkit-transform:scale(0);transform:scale(0)}50%{opacity:1}}@keyframes spinner-grow{0%{-webkit-transform:scale(0);transform:scale(0)}50%{opacity:1}}.spinner-grow{display:inline-block;width:2rem;height:2rem;vertical-align:text-bottom;background-color:currentColor;border-radius:50%;opacity:0;-webkit-animation:spinner-grow .75s linear infinite;animation:spinner-grow .75s linear infinite}.spinner-grow-sm{width:1rem;height:1rem}.align-baseline{vertical-align:baseline!important}.align-top{vertical-align:top!important}.align-middle{vertical-align:middle!important}.align-bottom{vertical-align:bottom!important}.align-text-bottom{vertical-align:text-bottom!important}.align-text-top{vertical-align:text-top!important}.bg-primary{background-color:#007bff!important}a.bg-primary:focus,a.bg-primary:hover,button.bg-primary:focus,button.bg-primary:hover{background-color:#0062cc!important}.bg-secondary{background-color:#6c757d!important}a.bg-secondary:focus,a.bg-secondary:hover,button.bg-secondary:focus,button.bg-secondary:hover{background-color:#545b62!important}.bg-success{background-color:#28a745!important}a.bg-success:focus,a.bg-success:hover,button.bg-success:focus,button.bg-success:hover{background-color:#1e7e34!important}.bg-info{background-color:#17a2b8!important}a.bg-info:focus,a.bg-info:hover,button.bg-info:focus,button.bg-info:hover{background-color:#117a8b!important}.bg-warning{background-color:#ffc107!important}a.bg-warning:focus,a.bg-warning:hover,button.bg-warning:focus,button.bg-warning:hover{background-color:#d39e00!important}.bg-danger{background-color:#dc3545!important}a.bg-danger:focus,a.bg-danger:hover,button.bg-danger:focus,button.bg-danger:hover{background-color:#bd2130!important}.bg-light{background-color:#f8f9fa!important}a.bg-light:focus,a.bg-light:hover,button.bg-light:focus,button.bg-light:hover{background-color:#dae0e5!important}.bg-dark{background-color:#343a40!important}a.bg-dark:focus,a.bg-dark:hover,button.bg-dark:focus,button.bg-dark:hover{background-color:#1d2124!important}.bg-white{background-color:#fff!important}.bg-transparent{background-color:transparent!important}.border{border:1px solid #dee2e6!important}.border-top{border-top:1px solid #dee2e6!important}.border-right{border-right:1px solid #dee2e6!important}.border-bottom{border-bottom:1px solid #dee2e6!important}.border-left{border-left:1px solid #dee2e6!important}.border-0{border:0!important}.border-top-0{border-top:0!important}.border-right-0{border-right:0!important}.border-bottom-0{border-bottom:0!important}.border-left-0{border-left:0!important}.border-primary{border-color:#007bff!important}.border-secondary{border-color:#6c757d!important}.border-success{border-color:#28a745!important}.border-info{border-color:#17a2b8!important}.border-warning{border-color:#ffc107!important}.border-danger{border-color:#dc3545!important}.border-light{border-color:#f8f9fa!important}.border-dark{border-color:#343a40!important}.border-white{border-color:#fff!important}.rounded{border-radius:.25rem!important}.rounded-top{border-top-left-radius:.25rem!important;border-top-right-radius:.25rem!important}.rounded-right{border-top-right-radius:.25rem!important;border-bottom-right-radius:.25rem!important}.rounded-bottom{border-bottom-right-radius:.25rem!important;border-bottom-left-radius:.25rem!important}.rounded-left{border-top-left-radius:.25rem!important;border-bottom-left-radius:.25rem!important}.rounded-circle{border-radius:50%!important}.rounded-pill{border-radius:50rem!important}.rounded-0{border-radius:0!important}.clearfix::after{display:block;clear:both;content:""}.d-none{display:none!important}.d-inline{display:inline!important}.d-inline-block{display:inline-block!important}.d-block{display:block!important}.d-table{display:table!important}.d-table-row{display:table-row!important}.d-table-cell{display:table-cell!important}.d-flex{display:-ms-flexbox!important;display:flex!important}.d-inline-flex{display:-ms-inline-flexbox!important;display:inline-flex!important}@media (min-width:576px){.d-sm-none{display:none!important}.d-sm-inline{display:inline!important}.d-sm-inline-block{display:inline-block!important}.d-sm-block{display:block!important}.d-sm-table{display:table!important}.d-sm-table-row{display:table-row!important}.d-sm-table-cell{display:table-cell!important}.d-sm-flex{display:-ms-flexbox!important;display:flex!important}.d-sm-inline-flex{display:-ms-inline-flexbox!important;display:inline-flex!important}}@media (min-width:768px){.d-md-none{display:none!important}.d-md-inline{display:inline!important}.d-md-inline-block{display:inline-block!important}.d-md-block{display:block!important}.d-md-table{display:table!important}.d-md-table-row{display:table-row!important}.d-md-table-cell{display:table-cell!important}.d-md-flex{display:-ms-flexbox!important;display:flex!important}.d-md-inline-flex{display:-ms-inline-flexbox!important;display:inline-flex!important}}@media (min-width:992px){.d-lg-none{display:none!important}.d-lg-inline{display:inline!important}.d-lg-inline-block{display:inline-block!important}.d-lg-block{display:block!important}.d-lg-table{display:table!important}.d-lg-table-row{display:table-row!important}.d-lg-table-cell{display:table-cell!important}.d-lg-flex{display:-ms-flexbox!important;display:flex!important}.d-lg-inline-flex{display:-ms-inline-flexbox!important;display:inline-flex!important}}@media (min-width:1200px){.d-xl-none{display:none!important}.d-xl-inline{display:inline!important}.d-xl-inline-block{display:inline-block!important}.d-xl-block{display:block!important}.d-xl-table{display:table!important}.d-xl-table-row{display:table-row!important}.d-xl-table-cell{display:table-cell!important}.d-xl-flex{display:-ms-flexbox!important;display:flex!important}.d-xl-inline-flex{display:-ms-inline-flexbox!important;display:inline-flex!important}}@media print{.d-print-none{display:none!important}.d-print-inline{display:inline!important}.d-print-inline-block{display:inline-block!important}.d-print-block{display:block!important}.d-print-table{display:table!important}.d-print-table-row{display:table-row!important}.d-print-table-cell{display:table-cell!important}.d-print-flex{display:-ms-flexbox!important;display:flex!important}.d-print-inline-flex{display:-ms-inline-flexbox!important;display:inline-flex!important}}.embed-responsive{position:relative;display:block;width:100%;padding:0;overflow:hidden}.embed-responsive::before{display:block;content:""}.embed-responsive .embed-responsive-item,.embed-responsive embed,.embed-responsive iframe,.embed-responsive object,.embed-responsive video{position:absolute;top:0;bottom:0;left:0;width:100%;height:100%;border:0}.embed-responsive-21by9::before{padding-top:42.857143%}.embed-responsive-16by9::before{padding-top:56.25%}.embed-responsive-3by4::before{padding-top:133.333333%}.embed-responsive-1by1::before{padding-top:100%}.flex-row{-ms-flex-direction:row!important;flex-direction:row!important}.flex-column{-ms-flex-direction:column!important;flex-direction:column!important}.flex-row-reverse{-ms-flex-direction:row-reverse!important;flex-direction:row-reverse!important}.flex-column-reverse{-ms-flex-direction:column-reverse!important;flex-direction:column-reverse!important}.flex-wrap{-ms-flex-wrap:wrap!important;flex-wrap:wrap!important}.flex-nowrap{-ms-flex-wrap:nowrap!important;flex-wrap:nowrap!important}.flex-wrap-reverse{-ms-flex-wrap:wrap-reverse!important;flex-wrap:wrap-reverse!important}.flex-fill{-ms-flex:1 1 auto!important;flex:1 1 auto!important}.flex-grow-0{-ms-flex-positive:0!important;flex-grow:0!important}.flex-grow-1{-ms-flex-positive:1!important;flex-grow:1!important}.flex-shrink-0{-ms-flex-negative:0!important;flex-shrink:0!important}.flex-shrink-1{-ms-flex-negative:1!important;flex-shrink:1!important}.justify-content-start{-ms-flex-pack:start!important;justify-content:flex-start!important}.justify-content-end{-ms-flex-pack:end!important;justify-content:flex-end!important}.justify-content-center{-ms-flex-pack:center!important;justify-content:center!important}.justify-content-between{-ms-flex-pack:justify!important;justify-content:space-between!important}.justify-content-around{-ms-flex-pack:distribute!important;justify-content:space-around!important}.align-items-start{-ms-flex-align:start!important;align-items:flex-start!important}.align-items-end{-ms-flex-align:end!important;align-items:flex-end!important}.align-items-center{-ms-flex-align:center!important;align-items:center!important}.align-items-baseline{-ms-flex-align:baseline!important;align-items:baseline!important}.align-items-stretch{-ms-flex-align:stretch!important;align-items:stretch!important}.align-content-start{-ms-flex-line-pack:start!important;align-content:flex-start!important}.align-content-end{-ms-flex-line-pack:end!important;align-content:flex-end!important}.align-content-center{-ms-flex-line-pack:center!important;align-content:center!important}.align-content-between{-ms-flex-line-pack:justify!important;align-content:space-between!important}.align-content-around{-ms-flex-line-pack:distribute!important;align-content:space-around!important}.align-content-stretch{-ms-flex-line-pack:stretch!important;align-content:stretch!important}.align-self-auto{-ms-flex-item-align:auto!important;align-self:auto!important}.align-self-start{-ms-flex-item-align:start!important;align-self:flex-start!important}.align-self-end{-ms-flex-item-align:end!important;align-self:flex-end!important}.align-self-center{-ms-flex-item-align:center!important;align-self:center!important}.align-self-baseline{-ms-flex-item-align:baseline!important;align-self:baseline!important}.align-self-stretch{-ms-flex-item-align:stretch!important;align-self:stretch!important}@media (min-width:576px){.flex-sm-row{-ms-flex-direction:row!important;flex-direction:row!important}.flex-sm-column{-ms-flex-direction:column!important;flex-direction:column!important}.flex-sm-row-reverse{-ms-flex-direction:row-reverse!important;flex-direction:row-reverse!important}.flex-sm-column-reverse{-ms-flex-direction:column-reverse!important;flex-direction:column-reverse!important}.flex-sm-wrap{-ms-flex-wrap:wrap!important;flex-wrap:wrap!important}.flex-sm-nowrap{-ms-flex-wrap:nowrap!important;flex-wrap:nowrap!important}.flex-sm-wrap-reverse{-ms-flex-wrap:wrap-reverse!important;flex-wrap:wrap-reverse!important}.flex-sm-fill{-ms-flex:1 1 auto!important;flex:1 1 auto!important}.flex-sm-grow-0{-ms-flex-positive:0!important;flex-grow:0!important}.flex-sm-grow-1{-ms-flex-positive:1!important;flex-grow:1!important}.flex-sm-shrink-0{-ms-flex-negative:0!important;flex-shrink:0!important}.flex-sm-shrink-1{-ms-flex-negative:1!important;flex-shrink:1!important}.justify-content-sm-start{-ms-flex-pack:start!important;justify-content:flex-start!important}.justify-content-sm-end{-ms-flex-pack:end!important;justify-content:flex-end!important}.justify-content-sm-center{-ms-flex-pack:center!important;justify-content:center!important}.justify-content-sm-between{-ms-flex-pack:justify!important;justify-content:space-between!important}.justify-content-sm-around{-ms-flex-pack:distribute!important;justify-content:space-around!important}.align-items-sm-start{-ms-flex-align:start!important;align-items:flex-start!important}.align-items-sm-end{-ms-flex-align:end!important;align-items:flex-end!important}.align-items-sm-center{-ms-flex-align:center!important;align-items:center!important}.align-items-sm-baseline{-ms-flex-align:baseline!important;align-items:baseline!important}.align-items-sm-stretch{-ms-flex-align:stretch!important;align-items:stretch!important}.align-content-sm-start{-ms-flex-line-pack:start!important;align-content:flex-start!important}.align-content-sm-end{-ms-flex-line-pack:end!important;align-content:flex-end!important}.align-content-sm-center{-ms-flex-line-pack:center!important;align-content:center!important}.align-content-sm-between{-ms-flex-line-pack:justify!important;align-content:space-between!important}.align-content-sm-around{-ms-flex-line-pack:distribute!important;align-content:space-around!important}.align-content-sm-stretch{-ms-flex-line-pack:stretch!important;align-content:stretch!important}.align-self-sm-auto{-ms-flex-item-align:auto!important;align-self:auto!important}.align-self-sm-start{-ms-flex-item-align:start!important;align-self:flex-start!important}.align-self-sm-end{-ms-flex-item-align:end!important;align-self:flex-end!important}.align-self-sm-center{-ms-flex-item-align:center!important;align-self:center!important}.align-self-sm-baseline{-ms-flex-item-align:baseline!important;align-self:baseline!important}.align-self-sm-stretch{-ms-flex-item-align:stretch!important;align-self:stretch!important}}@media (min-width:768px){.flex-md-row{-ms-flex-direction:row!important;flex-direction:row!important}.flex-md-column{-ms-flex-direction:column!important;flex-direction:column!important}.flex-md-row-reverse{-ms-flex-direction:row-reverse!important;flex-direction:row-reverse!important}.flex-md-column-reverse{-ms-flex-direction:column-reverse!important;flex-direction:column-reverse!important}.flex-md-wrap{-ms-flex-wrap:wrap!important;flex-wrap:wrap!important}.flex-md-nowrap{-ms-flex-wrap:nowrap!important;flex-wrap:nowrap!important}.flex-md-wrap-reverse{-ms-flex-wrap:wrap-reverse!important;flex-wrap:wrap-reverse!important}.flex-md-fill{-ms-flex:1 1 auto!important;flex:1 1 auto!important}.flex-md-grow-0{-ms-flex-positive:0!important;flex-grow:0!important}.flex-md-grow-1{-ms-flex-positive:1!important;flex-grow:1!important}.flex-md-shrink-0{-ms-flex-negative:0!important;flex-shrink:0!important}.flex-md-shrink-1{-ms-flex-negative:1!important;flex-shrink:1!important}.justify-content-md-start{-ms-flex-pack:start!important;justify-content:flex-start!important}.justify-content-md-end{-ms-flex-pack:end!important;justify-content:flex-end!important}.justify-content-md-center{-ms-flex-pack:center!important;justify-content:center!important}.justify-content-md-between{-ms-flex-pack:justify!important;justify-content:space-between!important}.justify-content-md-around{-ms-flex-pack:distribute!important;justify-content:space-around!important}.align-items-md-start{-ms-flex-align:start!important;align-items:flex-start!important}.align-items-md-end{-ms-flex-align:end!important;align-items:flex-end!important}.align-items-md-center{-ms-flex-align:center!important;align-items:center!important}.align-items-md-baseline{-ms-flex-align:baseline!important;align-items:baseline!important}.align-items-md-stretch{-ms-flex-align:stretch!important;align-items:stretch!important}.align-content-md-start{-ms-flex-line-pack:start!important;align-content:flex-start!important}.align-content-md-end{-ms-flex-line-pack:end!important;align-content:flex-end!important}.align-content-md-center{-ms-flex-line-pack:center!important;align-content:center!important}.align-content-md-between{-ms-flex-line-pack:justify!important;align-content:space-between!important}.align-content-md-around{-ms-flex-line-pack:distribute!important;align-content:space-around!important}.align-content-md-stretch{-ms-flex-line-pack:stretch!important;align-content:stretch!important}.align-self-md-auto{-ms-flex-item-align:auto!important;align-self:auto!important}.align-self-md-start{-ms-flex-item-align:start!important;align-self:flex-start!important}.align-self-md-end{-ms-flex-item-align:end!important;align-self:flex-end!important}.align-self-md-center{-ms-flex-item-align:center!important;align-self:center!important}.align-self-md-baseline{-ms-flex-item-align:baseline!important;align-self:baseline!important}.align-self-md-stretch{-ms-flex-item-align:stretch!important;align-self:stretch!important}}@media (min-width:992px){.flex-lg-row{-ms-flex-direction:row!important;flex-direction:row!important}.flex-lg-column{-ms-flex-direction:column!important;flex-direction:column!important}.flex-lg-row-reverse{-ms-flex-direction:row-reverse!important;flex-direction:row-reverse!important}.flex-lg-column-reverse{-ms-flex-direction:column-reverse!important;flex-direction:column-reverse!important}.flex-lg-wrap{-ms-flex-wrap:wrap!important;flex-wrap:wrap!important}.flex-lg-nowrap{-ms-flex-wrap:nowrap!important;flex-wrap:nowrap!important}.flex-lg-wrap-reverse{-ms-flex-wrap:wrap-reverse!important;flex-wrap:wrap-reverse!important}.flex-lg-fill{-ms-flex:1 1 auto!important;flex:1 1 auto!important}.flex-lg-grow-0{-ms-flex-positive:0!important;flex-grow:0!important}.flex-lg-grow-1{-ms-flex-positive:1!important;flex-grow:1!important}.flex-lg-shrink-0{-ms-flex-negative:0!important;flex-shrink:0!important}.flex-lg-shrink-1{-ms-flex-negative:1!important;flex-shrink:1!important}.justify-content-lg-start{-ms-flex-pack:start!important;justify-content:flex-start!important}.justify-content-lg-end{-ms-flex-pack:end!important;justify-content:flex-end!important}.justify-content-lg-center{-ms-flex-pack:center!important;justify-content:center!important}.justify-content-lg-between{-ms-flex-pack:justify!important;justify-content:space-between!important}.justify-content-lg-around{-ms-flex-pack:distribute!important;justify-content:space-around!important}.align-items-lg-start{-ms-flex-align:start!important;align-items:flex-start!important}.align-items-lg-end{-ms-flex-align:end!important;align-items:flex-end!important}.align-items-lg-center{-ms-flex-align:center!important;align-items:center!important}.align-items-lg-baseline{-ms-flex-align:baseline!important;align-items:baseline!important}.align-items-lg-stretch{-ms-flex-align:stretch!important;align-items:stretch!important}.align-content-lg-start{-ms-flex-line-pack:start!important;align-content:flex-start!important}.align-content-lg-end{-ms-flex-line-pack:end!important;align-content:flex-end!important}.align-content-lg-center{-ms-flex-line-pack:center!important;align-content:center!important}.align-content-lg-between{-ms-flex-line-pack:justify!important;align-content:space-between!important}.align-content-lg-around{-ms-flex-line-pack:distribute!important;align-content:space-around!important}.align-content-lg-stretch{-ms-flex-line-pack:stretch!important;align-content:stretch!important}.align-self-lg-auto{-ms-flex-item-align:auto!important;align-self:auto!important}.align-self-lg-start{-ms-flex-item-align:start!important;align-self:flex-start!important}.align-self-lg-end{-ms-flex-item-align:end!important;align-self:flex-end!important}.align-self-lg-center{-ms-flex-item-align:center!important;align-self:center!important}.align-self-lg-baseline{-ms-flex-item-align:baseline!important;align-self:baseline!important}.align-self-lg-stretch{-ms-flex-item-align:stretch!important;align-self:stretch!important}}@media (min-width:1200px){.flex-xl-row{-ms-flex-direction:row!important;flex-direction:row!important}.flex-xl-column{-ms-flex-direction:column!important;flex-direction:column!important}.flex-xl-row-reverse{-ms-flex-direction:row-reverse!important;flex-direction:row-reverse!important}.flex-xl-column-reverse{-ms-flex-direction:column-reverse!important;flex-direction:column-reverse!important}.flex-xl-wrap{-ms-flex-wrap:wrap!important;flex-wrap:wrap!important}.flex-xl-nowrap{-ms-flex-wrap:nowrap!important;flex-wrap:nowrap!important}.flex-xl-wrap-reverse{-ms-flex-wrap:wrap-reverse!important;flex-wrap:wrap-reverse!important}.flex-xl-fill{-ms-flex:1 1 auto!important;flex:1 1 auto!important}.flex-xl-grow-0{-ms-flex-positive:0!important;flex-grow:0!important}.flex-xl-grow-1{-ms-flex-positive:1!important;flex-grow:1!important}.flex-xl-shrink-0{-ms-flex-negative:0!important;flex-shrink:0!important}.flex-xl-shrink-1{-ms-flex-negative:1!important;flex-shrink:1!important}.justify-content-xl-start{-ms-flex-pack:start!important;justify-content:flex-start!important}.justify-content-xl-end{-ms-flex-pack:end!important;justify-content:flex-end!important}.justify-content-xl-center{-ms-flex-pack:center!important;justify-content:center!important}.justify-content-xl-between{-ms-flex-pack:justify!important;justify-content:space-between!important}.justify-content-xl-around{-ms-flex-pack:distribute!important;justify-content:space-around!important}.align-items-xl-start{-ms-flex-align:start!important;align-items:flex-start!important}.align-items-xl-end{-ms-flex-align:end!important;align-items:flex-end!important}.align-items-xl-center{-ms-flex-align:center!important;align-items:center!important}.align-items-xl-baseline{-ms-flex-align:baseline!important;align-items:baseline!important}.align-items-xl-stretch{-ms-flex-align:stretch!important;align-items:stretch!important}.align-content-xl-start{-ms-flex-line-pack:start!important;align-content:flex-start!important}.align-content-xl-end{-ms-flex-line-pack:end!important;align-content:flex-end!important}.align-content-xl-center{-ms-flex-line-pack:center!important;align-content:center!important}.align-content-xl-between{-ms-flex-line-pack:justify!important;align-content:space-between!important}.align-content-xl-around{-ms-flex-line-pack:distribute!important;align-content:space-around!important}.align-content-xl-stretch{-ms-flex-line-pack:stretch!important;align-content:stretch!important}.align-self-xl-auto{-ms-flex-item-align:auto!important;align-self:auto!important}.align-self-xl-start{-ms-flex-item-align:start!important;align-self:flex-start!important}.align-self-xl-end{-ms-flex-item-align:end!important;align-self:flex-end!important}.align-self-xl-center{-ms-flex-item-align:center!important;align-self:center!important}.align-self-xl-baseline{-ms-flex-item-align:baseline!important;align-self:baseline!important}.align-self-xl-stretch{-ms-flex-item-align:stretch!important;align-self:stretch!important}}.float-left{float:left!important}.float-right{float:right!important}.float-none{float:none!important}@media (min-width:576px){.float-sm-left{float:left!important}.float-sm-right{float:right!important}.float-sm-none{float:none!important}}@media (min-width:768px){.float-md-left{float:left!important}.float-md-right{float:right!important}.float-md-none{float:none!important}}@media (min-width:992px){.float-lg-left{float:left!important}.float-lg-right{float:right!important}.float-lg-none{float:none!important}}@media (min-width:1200px){.float-xl-left{float:left!important}.float-xl-right{float:right!important}.float-xl-none{float:none!important}}.overflow-auto{overflow:auto!important}.overflow-hidden{overflow:hidden!important}.position-static{position:static!important}.position-relative{position:relative!important}.position-absolute{position:absolute!important}.position-fixed{position:fixed!important}.position-sticky{position:-webkit-sticky!important;position:sticky!important}.fixed-top{position:fixed;top:0;right:0;left:0;z-index:1030}.fixed-bottom{position:fixed;right:0;bottom:0;left:0;z-index:1030}@supports ((position:-webkit-sticky) or (position:sticky)){.sticky-top{position:-webkit-sticky;position:sticky;top:0;z-index:1020}}.sr-only{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;overflow:visible;clip:auto;white-space:normal}.shadow-sm{box-shadow:0 .125rem .25rem rgba(0,0,0,.075)!important}.shadow{box-shadow:0 .5rem 1rem rgba(0,0,0,.15)!important}.shadow-lg{box-shadow:0 1rem 3rem rgba(0,0,0,.175)!important}.shadow-none{box-shadow:none!important}.w-25{width:25%!important}.w-50{width:50%!important}.w-75{width:75%!important}.w-100{width:100%!important}.w-auto{width:auto!important}.h-25{height:25%!important}.h-50{height:50%!important}.h-75{height:75%!important}.h-100{height:100%!important}.h-auto{height:auto!important}.mw-100{max-width:100%!important}.mh-100{max-height:100%!important}.min-vw-100{min-width:100vw!important}.min-vh-100{min-height:100vh!important}.vw-100{width:100vw!important}.vh-100{height:100vh!important}.m-0{margin:0!important}.mt-0,.my-0{margin-top:0!important}.mr-0,.mx-0{margin-right:0!important}.mb-0,.my-0{margin-bottom:0!important}.ml-0,.mx-0{margin-left:0!important}.m-1{margin:.25rem!important}.mt-1,.my-1{margin-top:.25rem!important}.mr-1,.mx-1{margin-right:.25rem!important}.mb-1,.my-1{margin-bottom:.25rem!important}.ml-1,.mx-1{margin-left:.25rem!important}.m-2{margin:.5rem!important}.mt-2,.my-2{margin-top:.5rem!important}.mr-2,.mx-2{margin-right:.5rem!important}.mb-2,.my-2{margin-bottom:.5rem!important}.ml-2,.mx-2{margin-left:.5rem!important}.m-3{margin:1rem!important}.mt-3,.my-3{margin-top:1rem!important}.mr-3,.mx-3{margin-right:1rem!important}.mb-3,.my-3{margin-bottom:1rem!important}.ml-3,.mx-3{margin-left:1rem!important}.m-4{margin:1.5rem!important}.mt-4,.my-4{margin-top:1.5rem!important}.mr-4,.mx-4{margin-right:1.5rem!important}.mb-4,.my-4{margin-bottom:1.5rem!important}.ml-4,.mx-4{margin-left:1.5rem!important}.m-5{margin:3rem!important}.mt-5,.my-5{margin-top:3rem!important}.mr-5,.mx-5{margin-right:3rem!important}.mb-5,.my-5{margin-bottom:3rem!important}.ml-5,.mx-5{margin-left:3rem!important}.p-0{padding:0!important}.pt-0,.py-0{padding-top:0!important}.pr-0,.px-0{padding-right:0!important}.pb-0,.py-0{padding-bottom:0!important}.pl-0,.px-0{padding-left:0!important}.p-1{padding:.25rem!important}.pt-1,.py-1{padding-top:.25rem!important}.pr-1,.px-1{padding-right:.25rem!important}.pb-1,.py-1{padding-bottom:.25rem!important}.pl-1,.px-1{padding-left:.25rem!important}.p-2{padding:.5rem!important}.pt-2,.py-2{padding-top:.5rem!important}.pr-2,.px-2{padding-right:.5rem!important}.pb-2,.py-2{padding-bottom:.5rem!important}.pl-2,.px-2{padding-left:.5rem!important}.p-3{padding:1rem!important}.pt-3,.py-3{padding-top:1rem!important}.pr-3,.px-3{padding-right:1rem!important}.pb-3,.py-3{padding-bottom:1rem!important}.pl-3,.px-3{padding-left:1rem!important}.p-4{padding:1.5rem!important}.pt-4,.py-4{padding-top:1.5rem!important}.pr-4,.px-4{padding-right:1.5rem!important}.pb-4,.py-4{padding-bottom:1.5rem!important}.pl-4,.px-4{padding-left:1.5rem!important}.p-5{padding:3rem!important}.pt-5,.py-5{padding-top:3rem!important}.pr-5,.px-5{padding-right:3rem!important}.pb-5,.py-5{padding-bottom:3rem!important}.pl-5,.px-5{padding-left:3rem!important}.m-n1{margin:-.25rem!important}.mt-n1,.my-n1{margin-top:-.25rem!important}.mr-n1,.mx-n1{margin-right:-.25rem!important}.mb-n1,.my-n1{margin-bottom:-.25rem!important}.ml-n1,.mx-n1{margin-left:-.25rem!important}.m-n2{margin:-.5rem!important}.mt-n2,.my-n2{margin-top:-.5rem!important}.mr-n2,.mx-n2{margin-right:-.5rem!important}.mb-n2,.my-n2{margin-bottom:-.5rem!important}.ml-n2,.mx-n2{margin-left:-.5rem!important}.m-n3{margin:-1rem!important}.mt-n3,.my-n3{margin-top:-1rem!important}.mr-n3,.mx-n3{margin-right:-1rem!important}.mb-n3,.my-n3{margin-bottom:-1rem!important}.ml-n3,.mx-n3{margin-left:-1rem!important}.m-n4{margin:-1.5rem!important}.mt-n4,.my-n4{margin-top:-1.5rem!important}.mr-n4,.mx-n4{margin-right:-1.5rem!important}.mb-n4,.my-n4{margin-bottom:-1.5rem!important}.ml-n4,.mx-n4{margin-left:-1.5rem!important}.m-n5{margin:-3rem!important}.mt-n5,.my-n5{margin-top:-3rem!important}.mr-n5,.mx-n5{margin-right:-3rem!important}.mb-n5,.my-n5{margin-bottom:-3rem!important}.ml-n5,.mx-n5{margin-left:-3rem!important}.m-auto{margin:auto!important}.mt-auto,.my-auto{margin-top:auto!important}.mr-auto,.mx-auto{margin-right:auto!important}.mb-auto,.my-auto{margin-bottom:auto!important}.ml-auto,.mx-auto{margin-left:auto!important}@media (min-width:576px){.m-sm-0{margin:0!important}.mt-sm-0,.my-sm-0{margin-top:0!important}.mr-sm-0,.mx-sm-0{margin-right:0!important}.mb-sm-0,.my-sm-0{margin-bottom:0!important}.ml-sm-0,.mx-sm-0{margin-left:0!important}.m-sm-1{margin:.25rem!important}.mt-sm-1,.my-sm-1{margin-top:.25rem!important}.mr-sm-1,.mx-sm-1{margin-right:.25rem!important}.mb-sm-1,.my-sm-1{margin-bottom:.25rem!important}.ml-sm-1,.mx-sm-1{margin-left:.25rem!important}.m-sm-2{margin:.5rem!important}.mt-sm-2,.my-sm-2{margin-top:.5rem!important}.mr-sm-2,.mx-sm-2{margin-right:.5rem!important}.mb-sm-2,.my-sm-2{margin-bottom:.5rem!important}.ml-sm-2,.mx-sm-2{margin-left:.5rem!important}.m-sm-3{margin:1rem!important}.mt-sm-3,.my-sm-3{margin-top:1rem!important}.mr-sm-3,.mx-sm-3{margin-right:1rem!important}.mb-sm-3,.my-sm-3{margin-bottom:1rem!important}.ml-sm-3,.mx-sm-3{margin-left:1rem!important}.m-sm-4{margin:1.5rem!important}.mt-sm-4,.my-sm-4{margin-top:1.5rem!important}.mr-sm-4,.mx-sm-4{margin-right:1.5rem!important}.mb-sm-4,.my-sm-4{margin-bottom:1.5rem!important}.ml-sm-4,.mx-sm-4{margin-left:1.5rem!important}.m-sm-5{margin:3rem!important}.mt-sm-5,.my-sm-5{margin-top:3rem!important}.mr-sm-5,.mx-sm-5{margin-right:3rem!important}.mb-sm-5,.my-sm-5{margin-bottom:3rem!important}.ml-sm-5,.mx-sm-5{margin-left:3rem!important}.p-sm-0{padding:0!important}.pt-sm-0,.py-sm-0{padding-top:0!important}.pr-sm-0,.px-sm-0{padding-right:0!important}.pb-sm-0,.py-sm-0{padding-bottom:0!important}.pl-sm-0,.px-sm-0{padding-left:0!important}.p-sm-1{padding:.25rem!important}.pt-sm-1,.py-sm-1{padding-top:.25rem!important}.pr-sm-1,.px-sm-1{padding-right:.25rem!important}.pb-sm-1,.py-sm-1{padding-bottom:.25rem!important}.pl-sm-1,.px-sm-1{padding-left:.25rem!important}.p-sm-2{padding:.5rem!important}.pt-sm-2,.py-sm-2{padding-top:.5rem!important}.pr-sm-2,.px-sm-2{padding-right:.5rem!important}.pb-sm-2,.py-sm-2{padding-bottom:.5rem!important}.pl-sm-2,.px-sm-2{padding-left:.5rem!important}.p-sm-3{padding:1rem!important}.pt-sm-3,.py-sm-3{padding-top:1rem!important}.pr-sm-3,.px-sm-3{padding-right:1rem!important}.pb-sm-3,.py-sm-3{padding-bottom:1rem!important}.pl-sm-3,.px-sm-3{padding-left:1rem!important}.p-sm-4{padding:1.5rem!important}.pt-sm-4,.py-sm-4{padding-top:1.5rem!important}.pr-sm-4,.px-sm-4{padding-right:1.5rem!important}.pb-sm-4,.py-sm-4{padding-bottom:1.5rem!important}.pl-sm-4,.px-sm-4{padding-left:1.5rem!important}.p-sm-5{padding:3rem!important}.pt-sm-5,.py-sm-5{padding-top:3rem!important}.pr-sm-5,.px-sm-5{padding-right:3rem!important}.pb-sm-5,.py-sm-5{padding-bottom:3rem!important}.pl-sm-5,.px-sm-5{padding-left:3rem!important}.m-sm-n1{margin:-.25rem!important}.mt-sm-n1,.my-sm-n1{margin-top:-.25rem!important}.mr-sm-n1,.mx-sm-n1{margin-right:-.25rem!important}.mb-sm-n1,.my-sm-n1{margin-bottom:-.25rem!important}.ml-sm-n1,.mx-sm-n1{margin-left:-.25rem!important}.m-sm-n2{margin:-.5rem!important}.mt-sm-n2,.my-sm-n2{margin-top:-.5rem!important}.mr-sm-n2,.mx-sm-n2{margin-right:-.5rem!important}.mb-sm-n2,.my-sm-n2{margin-bottom:-.5rem!important}.ml-sm-n2,.mx-sm-n2{margin-left:-.5rem!important}.m-sm-n3{margin:-1rem!important}.mt-sm-n3,.my-sm-n3{margin-top:-1rem!important}.mr-sm-n3,.mx-sm-n3{margin-right:-1rem!important}.mb-sm-n3,.my-sm-n3{margin-bottom:-1rem!important}.ml-sm-n3,.mx-sm-n3{margin-left:-1rem!important}.m-sm-n4{margin:-1.5rem!important}.mt-sm-n4,.my-sm-n4{margin-top:-1.5rem!important}.mr-sm-n4,.mx-sm-n4{margin-right:-1.5rem!important}.mb-sm-n4,.my-sm-n4{margin-bottom:-1.5rem!important}.ml-sm-n4,.mx-sm-n4{margin-left:-1.5rem!important}.m-sm-n5{margin:-3rem!important}.mt-sm-n5,.my-sm-n5{margin-top:-3rem!important}.mr-sm-n5,.mx-sm-n5{margin-right:-3rem!important}.mb-sm-n5,.my-sm-n5{margin-bottom:-3rem!important}.ml-sm-n5,.mx-sm-n5{margin-left:-3rem!important}.m-sm-auto{margin:auto!important}.mt-sm-auto,.my-sm-auto{margin-top:auto!important}.mr-sm-auto,.mx-sm-auto{margin-right:auto!important}.mb-sm-auto,.my-sm-auto{margin-bottom:auto!important}.ml-sm-auto,.mx-sm-auto{margin-left:auto!important}}@media (min-width:768px){.m-md-0{margin:0!important}.mt-md-0,.my-md-0{margin-top:0!important}.mr-md-0,.mx-md-0{margin-right:0!important}.mb-md-0,.my-md-0{margin-bottom:0!important}.ml-md-0,.mx-md-0{margin-left:0!important}.m-md-1{margin:.25rem!important}.mt-md-1,.my-md-1{margin-top:.25rem!important}.mr-md-1,.mx-md-1{margin-right:.25rem!important}.mb-md-1,.my-md-1{margin-bottom:.25rem!important}.ml-md-1,.mx-md-1{margin-left:.25rem!important}.m-md-2{margin:.5rem!important}.mt-md-2,.my-md-2{margin-top:.5rem!important}.mr-md-2,.mx-md-2{margin-right:.5rem!important}.mb-md-2,.my-md-2{margin-bottom:.5rem!important}.ml-md-2,.mx-md-2{margin-left:.5rem!important}.m-md-3{margin:1rem!important}.mt-md-3,.my-md-3{margin-top:1rem!important}.mr-md-3,.mx-md-3{margin-right:1rem!important}.mb-md-3,.my-md-3{margin-bottom:1rem!important}.ml-md-3,.mx-md-3{margin-left:1rem!important}.m-md-4{margin:1.5rem!important}.mt-md-4,.my-md-4{margin-top:1.5rem!important}.mr-md-4,.mx-md-4{margin-right:1.5rem!important}.mb-md-4,.my-md-4{margin-bottom:1.5rem!important}.ml-md-4,.mx-md-4{margin-left:1.5rem!important}.m-md-5{margin:3rem!important}.mt-md-5,.my-md-5{margin-top:3rem!important}.mr-md-5,.mx-md-5{margin-right:3rem!important}.mb-md-5,.my-md-5{margin-bottom:3rem!important}.ml-md-5,.mx-md-5{margin-left:3rem!important}.p-md-0{padding:0!important}.pt-md-0,.py-md-0{padding-top:0!important}.pr-md-0,.px-md-0{padding-right:0!important}.pb-md-0,.py-md-0{padding-bottom:0!important}.pl-md-0,.px-md-0{padding-left:0!important}.p-md-1{padding:.25rem!important}.pt-md-1,.py-md-1{padding-top:.25rem!important}.pr-md-1,.px-md-1{padding-right:.25rem!important}.pb-md-1,.py-md-1{padding-bottom:.25rem!important}.pl-md-1,.px-md-1{padding-left:.25rem!important}.p-md-2{padding:.5rem!important}.pt-md-2,.py-md-2{padding-top:.5rem!important}.pr-md-2,.px-md-2{padding-right:.5rem!important}.pb-md-2,.py-md-2{padding-bottom:.5rem!important}.pl-md-2,.px-md-2{padding-left:.5rem!important}.p-md-3{padding:1rem!important}.pt-md-3,.py-md-3{padding-top:1rem!important}.pr-md-3,.px-md-3{padding-right:1rem!important}.pb-md-3,.py-md-3{padding-bottom:1rem!important}.pl-md-3,.px-md-3{padding-left:1rem!important}.p-md-4{padding:1.5rem!important}.pt-md-4,.py-md-4{padding-top:1.5rem!important}.pr-md-4,.px-md-4{padding-right:1.5rem!important}.pb-md-4,.py-md-4{padding-bottom:1.5rem!important}.pl-md-4,.px-md-4{padding-left:1.5rem!important}.p-md-5{padding:3rem!important}.pt-md-5,.py-md-5{padding-top:3rem!important}.pr-md-5,.px-md-5{padding-right:3rem!important}.pb-md-5,.py-md-5{padding-bottom:3rem!important}.pl-md-5,.px-md-5{padding-left:3rem!important}.m-md-n1{margin:-.25rem!important}.mt-md-n1,.my-md-n1{margin-top:-.25rem!important}.mr-md-n1,.mx-md-n1{margin-right:-.25rem!important}.mb-md-n1,.my-md-n1{margin-bottom:-.25rem!important}.ml-md-n1,.mx-md-n1{margin-left:-.25rem!important}.m-md-n2{margin:-.5rem!important}.mt-md-n2,.my-md-n2{margin-top:-.5rem!important}.mr-md-n2,.mx-md-n2{margin-right:-.5rem!important}.mb-md-n2,.my-md-n2{margin-bottom:-.5rem!important}.ml-md-n2,.mx-md-n2{margin-left:-.5rem!important}.m-md-n3{margin:-1rem!important}.mt-md-n3,.my-md-n3{margin-top:-1rem!important}.mr-md-n3,.mx-md-n3{margin-right:-1rem!important}.mb-md-n3,.my-md-n3{margin-bottom:-1rem!important}.ml-md-n3,.mx-md-n3{margin-left:-1rem!important}.m-md-n4{margin:-1.5rem!important}.mt-md-n4,.my-md-n4{margin-top:-1.5rem!important}.mr-md-n4,.mx-md-n4{margin-right:-1.5rem!important}.mb-md-n4,.my-md-n4{margin-bottom:-1.5rem!important}.ml-md-n4,.mx-md-n4{margin-left:-1.5rem!important}.m-md-n5{margin:-3rem!important}.mt-md-n5,.my-md-n5{margin-top:-3rem!important}.mr-md-n5,.mx-md-n5{margin-right:-3rem!important}.mb-md-n5,.my-md-n5{margin-bottom:-3rem!important}.ml-md-n5,.mx-md-n5{margin-left:-3rem!important}.m-md-auto{margin:auto!important}.mt-md-auto,.my-md-auto{margin-top:auto!important}.mr-md-auto,.mx-md-auto{margin-right:auto!important}.mb-md-auto,.my-md-auto{margin-bottom:auto!important}.ml-md-auto,.mx-md-auto{margin-left:auto!important}}@media (min-width:992px){.m-lg-0{margin:0!important}.mt-lg-0,.my-lg-0{margin-top:0!important}.mr-lg-0,.mx-lg-0{margin-right:0!important}.mb-lg-0,.my-lg-0{margin-bottom:0!important}.ml-lg-0,.mx-lg-0{margin-left:0!important}.m-lg-1{margin:.25rem!important}.mt-lg-1,.my-lg-1{margin-top:.25rem!important}.mr-lg-1,.mx-lg-1{margin-right:.25rem!important}.mb-lg-1,.my-lg-1{margin-bottom:.25rem!important}.ml-lg-1,.mx-lg-1{margin-left:.25rem!important}.m-lg-2{margin:.5rem!important}.mt-lg-2,.my-lg-2{margin-top:.5rem!important}.mr-lg-2,.mx-lg-2{margin-right:.5rem!important}.mb-lg-2,.my-lg-2{margin-bottom:.5rem!important}.ml-lg-2,.mx-lg-2{margin-left:.5rem!important}.m-lg-3{margin:1rem!important}.mt-lg-3,.my-lg-3{margin-top:1rem!important}.mr-lg-3,.mx-lg-3{margin-right:1rem!important}.mb-lg-3,.my-lg-3{margin-bottom:1rem!important}.ml-lg-3,.mx-lg-3{margin-left:1rem!important}.m-lg-4{margin:1.5rem!important}.mt-lg-4,.my-lg-4{margin-top:1.5rem!important}.mr-lg-4,.mx-lg-4{margin-right:1.5rem!important}.mb-lg-4,.my-lg-4{margin-bottom:1.5rem!important}.ml-lg-4,.mx-lg-4{margin-left:1.5rem!important}.m-lg-5{margin:3rem!important}.mt-lg-5,.my-lg-5{margin-top:3rem!important}.mr-lg-5,.mx-lg-5{margin-right:3rem!important}.mb-lg-5,.my-lg-5{margin-bottom:3rem!important}.ml-lg-5,.mx-lg-5{margin-left:3rem!important}.p-lg-0{padding:0!important}.pt-lg-0,.py-lg-0{padding-top:0!important}.pr-lg-0,.px-lg-0{padding-right:0!important}.pb-lg-0,.py-lg-0{padding-bottom:0!important}.pl-lg-0,.px-lg-0{padding-left:0!important}.p-lg-1{padding:.25rem!important}.pt-lg-1,.py-lg-1{padding-top:.25rem!important}.pr-lg-1,.px-lg-1{padding-right:.25rem!important}.pb-lg-1,.py-lg-1{padding-bottom:.25rem!important}.pl-lg-1,.px-lg-1{padding-left:.25rem!important}.p-lg-2{padding:.5rem!important}.pt-lg-2,.py-lg-2{padding-top:.5rem!important}.pr-lg-2,.px-lg-2{padding-right:.5rem!important}.pb-lg-2,.py-lg-2{padding-bottom:.5rem!important}.pl-lg-2,.px-lg-2{padding-left:.5rem!important}.p-lg-3{padding:1rem!important}.pt-lg-3,.py-lg-3{padding-top:1rem!important}.pr-lg-3,.px-lg-3{padding-right:1rem!important}.pb-lg-3,.py-lg-3{padding-bottom:1rem!important}.pl-lg-3,.px-lg-3{padding-left:1rem!important}.p-lg-4{padding:1.5rem!important}.pt-lg-4,.py-lg-4{padding-top:1.5rem!important}.pr-lg-4,.px-lg-4{padding-right:1.5rem!important}.pb-lg-4,.py-lg-4{padding-bottom:1.5rem!important}.pl-lg-4,.px-lg-4{padding-left:1.5rem!important}.p-lg-5{padding:3rem!important}.pt-lg-5,.py-lg-5{padding-top:3rem!important}.pr-lg-5,.px-lg-5{padding-right:3rem!important}.pb-lg-5,.py-lg-5{padding-bottom:3rem!important}.pl-lg-5,.px-lg-5{padding-left:3rem!important}.m-lg-n1{margin:-.25rem!important}.mt-lg-n1,.my-lg-n1{margin-top:-.25rem!important}.mr-lg-n1,.mx-lg-n1{margin-right:-.25rem!important}.mb-lg-n1,.my-lg-n1{margin-bottom:-.25rem!important}.ml-lg-n1,.mx-lg-n1{margin-left:-.25rem!important}.m-lg-n2{margin:-.5rem!important}.mt-lg-n2,.my-lg-n2{margin-top:-.5rem!important}.mr-lg-n2,.mx-lg-n2{margin-right:-.5rem!important}.mb-lg-n2,.my-lg-n2{margin-bottom:-.5rem!important}.ml-lg-n2,.mx-lg-n2{margin-left:-.5rem!important}.m-lg-n3{margin:-1rem!important}.mt-lg-n3,.my-lg-n3{margin-top:-1rem!important}.mr-lg-n3,.mx-lg-n3{margin-right:-1rem!important}.mb-lg-n3,.my-lg-n3{margin-bottom:-1rem!important}.ml-lg-n3,.mx-lg-n3{margin-left:-1rem!important}.m-lg-n4{margin:-1.5rem!important}.mt-lg-n4,.my-lg-n4{margin-top:-1.5rem!important}.mr-lg-n4,.mx-lg-n4{margin-right:-1.5rem!important}.mb-lg-n4,.my-lg-n4{margin-bottom:-1.5rem!important}.ml-lg-n4,.mx-lg-n4{margin-left:-1.5rem!important}.m-lg-n5{margin:-3rem!important}.mt-lg-n5,.my-lg-n5{margin-top:-3rem!important}.mr-lg-n5,.mx-lg-n5{margin-right:-3rem!important}.mb-lg-n5,.my-lg-n5{margin-bottom:-3rem!important}.ml-lg-n5,.mx-lg-n5{margin-left:-3rem!important}.m-lg-auto{margin:auto!important}.mt-lg-auto,.my-lg-auto{margin-top:auto!important}.mr-lg-auto,.mx-lg-auto{margin-right:auto!important}.mb-lg-auto,.my-lg-auto{margin-bottom:auto!important}.ml-lg-auto,.mx-lg-auto{margin-left:auto!important}}@media (min-width:1200px){.m-xl-0{margin:0!important}.mt-xl-0,.my-xl-0{margin-top:0!important}.mr-xl-0,.mx-xl-0{margin-right:0!important}.mb-xl-0,.my-xl-0{margin-bottom:0!important}.ml-xl-0,.mx-xl-0{margin-left:0!important}.m-xl-1{margin:.25rem!important}.mt-xl-1,.my-xl-1{margin-top:.25rem!important}.mr-xl-1,.mx-xl-1{margin-right:.25rem!important}.mb-xl-1,.my-xl-1{margin-bottom:.25rem!important}.ml-xl-1,.mx-xl-1{margin-left:.25rem!important}.m-xl-2{margin:.5rem!important}.mt-xl-2,.my-xl-2{margin-top:.5rem!important}.mr-xl-2,.mx-xl-2{margin-right:.5rem!important}.mb-xl-2,.my-xl-2{margin-bottom:.5rem!important}.ml-xl-2,.mx-xl-2{margin-left:.5rem!important}.m-xl-3{margin:1rem!important}.mt-xl-3,.my-xl-3{margin-top:1rem!important}.mr-xl-3,.mx-xl-3{margin-right:1rem!important}.mb-xl-3,.my-xl-3{margin-bottom:1rem!important}.ml-xl-3,.mx-xl-3{margin-left:1rem!important}.m-xl-4{margin:1.5rem!important}.mt-xl-4,.my-xl-4{margin-top:1.5rem!important}.mr-xl-4,.mx-xl-4{margin-right:1.5rem!important}.mb-xl-4,.my-xl-4{margin-bottom:1.5rem!important}.ml-xl-4,.mx-xl-4{margin-left:1.5rem!important}.m-xl-5{margin:3rem!important}.mt-xl-5,.my-xl-5{margin-top:3rem!important}.mr-xl-5,.mx-xl-5{margin-right:3rem!important}.mb-xl-5,.my-xl-5{margin-bottom:3rem!important}.ml-xl-5,.mx-xl-5{margin-left:3rem!important}.p-xl-0{padding:0!important}.pt-xl-0,.py-xl-0{padding-top:0!important}.pr-xl-0,.px-xl-0{padding-right:0!important}.pb-xl-0,.py-xl-0{padding-bottom:0!important}.pl-xl-0,.px-xl-0{padding-left:0!important}.p-xl-1{padding:.25rem!important}.pt-xl-1,.py-xl-1{padding-top:.25rem!important}.pr-xl-1,.px-xl-1{padding-right:.25rem!important}.pb-xl-1,.py-xl-1{padding-bottom:.25rem!important}.pl-xl-1,.px-xl-1{padding-left:.25rem!important}.p-xl-2{padding:.5rem!important}.pt-xl-2,.py-xl-2{padding-top:.5rem!important}.pr-xl-2,.px-xl-2{padding-right:.5rem!important}.pb-xl-2,.py-xl-2{padding-bottom:.5rem!important}.pl-xl-2,.px-xl-2{padding-left:.5rem!important}.p-xl-3{padding:1rem!important}.pt-xl-3,.py-xl-3{padding-top:1rem!important}.pr-xl-3,.px-xl-3{padding-right:1rem!important}.pb-xl-3,.py-xl-3{padding-bottom:1rem!important}.pl-xl-3,.px-xl-3{padding-left:1rem!important}.p-xl-4{padding:1.5rem!important}.pt-xl-4,.py-xl-4{padding-top:1.5rem!important}.pr-xl-4,.px-xl-4{padding-right:1.5rem!important}.pb-xl-4,.py-xl-4{padding-bottom:1.5rem!important}.pl-xl-4,.px-xl-4{padding-left:1.5rem!important}.p-xl-5{padding:3rem!important}.pt-xl-5,.py-xl-5{padding-top:3rem!important}.pr-xl-5,.px-xl-5{padding-right:3rem!important}.pb-xl-5,.py-xl-5{padding-bottom:3rem!important}.pl-xl-5,.px-xl-5{padding-left:3rem!important}.m-xl-n1{margin:-.25rem!important}.mt-xl-n1,.my-xl-n1{margin-top:-.25rem!important}.mr-xl-n1,.mx-xl-n1{margin-right:-.25rem!important}.mb-xl-n1,.my-xl-n1{margin-bottom:-.25rem!important}.ml-xl-n1,.mx-xl-n1{margin-left:-.25rem!important}.m-xl-n2{margin:-.5rem!important}.mt-xl-n2,.my-xl-n2{margin-top:-.5rem!important}.mr-xl-n2,.mx-xl-n2{margin-right:-.5rem!important}.mb-xl-n2,.my-xl-n2{margin-bottom:-.5rem!important}.ml-xl-n2,.mx-xl-n2{margin-left:-.5rem!important}.m-xl-n3{margin:-1rem!important}.mt-xl-n3,.my-xl-n3{margin-top:-1rem!important}.mr-xl-n3,.mx-xl-n3{margin-right:-1rem!important}.mb-xl-n3,.my-xl-n3{margin-bottom:-1rem!important}.ml-xl-n3,.mx-xl-n3{margin-left:-1rem!important}.m-xl-n4{margin:-1.5rem!important}.mt-xl-n4,.my-xl-n4{margin-top:-1.5rem!important}.mr-xl-n4,.mx-xl-n4{margin-right:-1.5rem!important}.mb-xl-n4,.my-xl-n4{margin-bottom:-1.5rem!important}.ml-xl-n4,.mx-xl-n4{margin-left:-1.5rem!important}.m-xl-n5{margin:-3rem!important}.mt-xl-n5,.my-xl-n5{margin-top:-3rem!important}.mr-xl-n5,.mx-xl-n5{margin-right:-3rem!important}.mb-xl-n5,.my-xl-n5{margin-bottom:-3rem!important}.ml-xl-n5,.mx-xl-n5{margin-left:-3rem!important}.m-xl-auto{margin:auto!important}.mt-xl-auto,.my-xl-auto{margin-top:auto!important}.mr-xl-auto,.mx-xl-auto{margin-right:auto!important}.mb-xl-auto,.my-xl-auto{margin-bottom:auto!important}.ml-xl-auto,.mx-xl-auto{margin-left:auto!important}}.text-monospace{font-family:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace}.text-justify{text-align:justify!important}.text-wrap{white-space:normal!important}.text-nowrap{white-space:nowrap!important}.text-truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.text-left{text-align:left!important}.text-right{text-align:right!important}.text-center{text-align:center!important}@media (min-width:576px){.text-sm-left{text-align:left!important}.text-sm-right{text-align:right!important}.text-sm-center{text-align:center!important}}@media (min-width:768px){.text-md-left{text-align:left!important}.text-md-right{text-align:right!important}.text-md-center{text-align:center!important}}@media (min-width:992px){.text-lg-left{text-align:left!important}.text-lg-right{text-align:right!important}.text-lg-center{text-align:center!important}}@media (min-width:1200px){.text-xl-left{text-align:left!important}.text-xl-right{text-align:right!important}.text-xl-center{text-align:center!important}}.text-lowercase{text-transform:lowercase!important}.text-uppercase{text-transform:uppercase!important}.text-capitalize{text-transform:capitalize!important}.font-weight-light{font-weight:300!important}.font-weight-lighter{font-weight:lighter!important}.font-weight-normal{font-weight:400!important}.font-weight-bold{font-weight:700!important}.font-weight-bolder{font-weight:bolder!important}.font-italic{font-style:italic!important}.text-white{color:#fff!important}.text-primary{color:#007bff!important}a.text-primary:focus,a.text-primary:hover{color:#0056b3!important}.text-secondary{color:#6c757d!important}a.text-secondary:focus,a.text-secondary:hover{color:#494f54!important}.text-success{color:#28a745!important}a.text-success:focus,a.text-success:hover{color:#19692c!important}.text-info{color:#17a2b8!important}a.text-info:focus,a.text-info:hover{color:#0f6674!important}.text-warning{color:#ffc107!important}a.text-warning:focus,a.text-warning:hover{color:#ba8b00!important}.text-danger{color:#dc3545!important}a.text-danger:focus,a.text-danger:hover{color:#a71d2a!important}.text-light{color:#f8f9fa!important}a.text-light:focus,a.text-light:hover{color:#cbd3da!important}.text-dark{color:#343a40!important}a.text-dark:focus,a.text-dark:hover{color:#121416!important}.text-body{color:#212529!important}.text-muted{color:#6c757d!important}.text-black-50{color:rgba(0,0,0,.5)!important}.text-white-50{color:rgba(255,255,255,.5)!important}.text-hide{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.text-decoration-none{text-decoration:none!important}.text-reset{color:inherit!important}.visible{visibility:visible!important}.invisible{visibility:hidden!important}@media print{*,::after,::before{text-shadow:none!important;box-shadow:none!important}a:not(.btn){text-decoration:underline}abbr[title]::after{content:" (" attr(title) ")"}pre{white-space:pre-wrap!important}blockquote,pre{border:1px solid #adb5bd;page-break-inside:avoid}thead{display:table-header-group}img,tr{page-break-inside:avoid}h2,h3,p{orphans:3;widows:3}h2,h3{page-break-after:avoid}@page{size:a3}body{min-width:992px!important}.container{min-width:992px!important}.navbar{display:none}.badge{border:1px solid #000}.table{border-collapse:collapse!important}.table td,.table th{background-color:#fff!important}.table-bordered td,.table-bordered th{border:1px solid #dee2e6!important}.table-dark{color:inherit}.table-dark tbody+tbody,.table-dark td,.table-dark th,.table-dark thead th{border-color:#dee2e6}.table .thead-dark th{color:inherit;border-color:#dee2e6}}
7
+ /*# sourceMappingURL=bootstrap.min.css.map */
resources/css/global-plugin.css CHANGED
@@ -1,5 +1,9 @@
1
  @CHARSET "ISO-8859-1";
2
 
 
 
 
 
3
  #wpbody-content .icwp-admin-notice,
4
  #wpbody-content .icwp-admin-notice p {
5
  text-shadow: -1px -1px 0 rgba(255, 255, 255, 0.4);
@@ -55,6 +59,7 @@
55
  .notice-icon {
56
  display: block;
57
  }
 
58
  .notice-content {
59
  margin-left: 62px;
60
  }
@@ -277,14 +282,20 @@ tr.icwp-plugin-vulnerability dd {
277
  z-index: 10;
278
  }
279
  .icwp-waiting {
280
- width: 200px;
281
- height: 200px;
282
  position: fixed;
283
  top: 45%;
284
  left: 50%;
285
- background: url("https://media.giphy.com/media/LLd6Ma5vQtXyw/giphy.gif") no-repeat 0 0 transparent;
286
- background: url("https://media.giphy.com/media/sxJ1nCeUoNSfe/giphy.gif") no-repeat 0 0 transparent;
287
- background-size: 40px;
 
 
 
 
 
 
288
  }
289
  .icwpAjaxTableContainer .tablenav {
290
  padding: 5px 8px 5px 3px;
@@ -319,9 +330,9 @@ tr.icwp-plugin-vulnerability dd {
319
  .icwpAjaxTableContainer table th.column-created_at {
320
  }
321
  .icwpAjaxTableContainer table th.column-ip {
 
322
  }
323
  .icwpAjaxTableContainer table th.column-wp_username {
324
- width: 130px;
325
  }
326
  .icwpAjaxTableContainer table th.column-event {
327
  width: 110px;
1
  @CHARSET "ISO-8859-1";
2
 
3
+ #wpbody-content .odp-admin-notice.notice {
4
+ margin: 5px 0 15px;
5
+ }
6
+
7
  #wpbody-content .icwp-admin-notice,
8
  #wpbody-content .icwp-admin-notice p {
9
  text-shadow: -1px -1px 0 rgba(255, 255, 255, 0.4);
59
  .notice-icon {
60
  display: block;
61
  }
62
+
63
  .notice-content {
64
  margin-left: 62px;
65
  }
282
  z-index: 10;
283
  }
284
  .icwp-waiting {
285
+ width: 40px;
286
+ height: 100%;
287
  position: fixed;
288
  top: 45%;
289
  left: 50%;
290
+ }
291
+ .icwp-toaster {
292
+ position: fixed;
293
+ top: 60px;
294
+ right: 40px;
295
+ z-index: 12;
296
+ }
297
+ .icwp-toaster .toast-body {
298
+ white-space: nowrap;
299
  }
300
  .icwpAjaxTableContainer .tablenav {
301
  padding: 5px 8px 5px 3px;
330
  .icwpAjaxTableContainer table th.column-created_at {
331
  }
332
  .icwpAjaxTableContainer table th.column-ip {
333
+ white-space: pre;
334
  }
335
  .icwpAjaxTableContainer table th.column-wp_username {
 
336
  }
337
  .icwpAjaxTableContainer table th.column-event {
338
  width: 110px;
resources/css/plugin.css CHANGED
@@ -9,7 +9,17 @@ body {
9
  }
10
  #wpcontent .wrap {
11
  margin: 0;
 
 
 
 
 
 
 
 
 
12
  }
 
13
  .pluginlogo_16 {
14
  background: url("../images/pluginlogo_16x16.png?ver=1.0.0") no-repeat 0 3px transparent;
15
  }
@@ -188,10 +198,9 @@ p.code-description {
188
  -ms-user-select: none;
189
  user-select: none;
190
  }
191
-
192
  .row_section_summary button.section_help_video {
193
- position:relative;
194
- top:25%;
195
  }
196
  .row_section_summary button.section_help_video .dashicons {
197
  font-size: 33px;
@@ -260,7 +269,7 @@ p.code-description {
260
  .option_overlay:hover .overlay_message {
261
  display: block;
262
  color: #333333;
263
- font-size: 24px;
264
  margin: 15px auto auto auto;
265
  padding: 0 10px;
266
  width: auto;
@@ -401,6 +410,7 @@ label input[type=checkbox] {
401
  .feature-summary-blocks .summary-state p {
402
  font-size: 8px;
403
  }
 
404
  .feature-summary-blocks .feature-icon:before {
405
  font-size: 16px;
406
  }
@@ -661,7 +671,7 @@ input:checked + .icwp-slider:before {
661
  }
662
  #TopPluginIcon {
663
  background: url("../images/pluginlogo_128x128.png?ver=2.0") no-repeat 0 0 #f1f1f1;
664
- border-bottom: 1px solid #ccc;
665
 
666
  height: 128px;
667
  width: 128px;
@@ -673,12 +683,12 @@ input:checked + .icwp-slider:before {
673
  }
674
  #ColumnModules {
675
  max-width: 128px;
676
- border-right: 1px solid #ccc;
677
  }
678
  #ColumnOptions {
679
  background-color: #f1f1f1;
680
- border-bottom: 1px solid #ccc;
681
- border-right: 1px solid #ccc;
682
  min-width: 590px; /** prevents col breaking **/
683
  }
684
  .module-headline {
@@ -738,8 +748,8 @@ input:checked + .icwp-slider:before {
738
 
739
  margin-right: -1px;
740
  z-index: 2;
741
- border-bottom-color: #ccc;
742
- border-top-color: #ccc;
743
  }
744
  .icwp-options-page .tab-content {
745
  background-color: #fcfffc;
@@ -803,34 +813,35 @@ input:checked + .icwp-slider:before {
803
  background-color: white;
804
  padding: 40px;
805
  margin: 120px 0 40px;
806
- box-shadow: 6px 6px 0 rgba(0,0,0,0.2);
807
- border: 1px solid rgba(0,0,0,0.2);
808
  }
809
  .card.gopro-card {
810
  padding: 0; /* fix to override for bootstrap4 cuz WP has a .card style*/
811
  }
812
-
813
  @media (max-width: 848px) {
814
  #ColumnModules {
815
  max-width: 81px;
816
  }
 
817
  #TopPluginIcon {
818
  height: 76px;
819
  width: 76px;
820
  background-size: 76px 76px;
821
  }
 
822
  .modules a.module {
823
  font-size: 0.7rem;
824
  font-weight: normal;
825
  letter-spacing: -1px;
826
  padding: 0.4rem 0.6rem 0.4rem 0.8rem;
827
  }
 
828
  .modules .module-name .dashicons {
829
  font-size: 16px;
830
  left: -17px;
831
  }
832
  }
833
-
834
  #FooterWizardBanner {
835
  position: fixed;
836
  bottom: 0;
@@ -841,47 +852,59 @@ input:checked + .icwp-slider:before {
841
  #WizardTop {
842
  height: 40px;
843
  background-color: #fafafa;
844
- background: linear-gradient(to top, rgba(250,250,250,0.95), rgba(250,250,250,0.7));
845
  }
846
  #WizardBanner {
847
- height: 100px;
848
  background-color: #eaffea;
849
  border-top: 1px solid #bbbbbb;
850
  padding-top: 10px;
851
  text-align: center;
852
  word-break: keep-all;
853
  white-space: nowrap;
 
854
  }
855
  #WizardBanner p {
856
  margin: 0;
857
  line-height: 20px;
858
  text-align: left;
859
  }
860
-
861
  .icon-flag {
862
- vertical-align: bottom;
863
  }
864
-
865
  /** TABLE: Audit trail **/
866
  td.column-message textarea {
867
  width: 100%;
868
  background: transparent;
869
  box-shadow: none;
870
- border-color: rgba(0,0,0,0.05);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
871
  }
872
 
873
  /** TABLE: TRAFFIC **/
874
  th.column-visitor {
875
- width: 250px;
876
  }
877
  th.column-path {
878
- width: 100px;
879
  }
880
  td.column-path code {
881
  color: #4120a2;
882
  display: block;
883
  font-size: 0.9rem;
884
  background-color: transparent; /* rgba(245, 245, 245, 0.8); */
 
885
  }
886
  th.column-code {
887
  width: 84px;
@@ -891,4 +914,264 @@ th.column-trans {
891
  }
892
  th.column-request_info {
893
  width: 100px;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
894
  }
9
  }
10
  #wpcontent .wrap {
11
  margin: 0;
12
+ padding: 0;
13
+ }
14
+
15
+ /** Hide WordPress update nag **/
16
+ .update-nag {
17
+ display: none;
18
+ }
19
+ #wpbody-content .odp-admin-notice.notice {
20
+ margin: 5px 15px;
21
  }
22
+
23
  .pluginlogo_16 {
24
  background: url("../images/pluginlogo_16x16.png?ver=1.0.0") no-repeat 0 3px transparent;
25
  }
198
  -ms-user-select: none;
199
  user-select: none;
200
  }
 
201
  .row_section_summary button.section_help_video {
202
+ position: relative;
203
+ top: 25%;
204
  }
205
  .row_section_summary button.section_help_video .dashicons {
206
  font-size: 33px;
269
  .option_overlay:hover .overlay_message {
270
  display: block;
271
  color: #333333;
272
+ font-size: 18px;
273
  margin: 15px auto auto auto;
274
  padding: 0 10px;
275
  width: auto;
410
  .feature-summary-blocks .summary-state p {
411
  font-size: 8px;
412
  }
413
+
414
  .feature-summary-blocks .feature-icon:before {
415
  font-size: 16px;
416
  }
671
  }
672
  #TopPluginIcon {
673
  background: url("../images/pluginlogo_128x128.png?ver=2.0") no-repeat 0 0 #f1f1f1;
674
+ border-bottom: 1px solid #cccccc;
675
 
676
  height: 128px;
677
  width: 128px;
683
  }
684
  #ColumnModules {
685
  max-width: 128px;
686
+ border-right: 1px solid #cccccc;
687
  }
688
  #ColumnOptions {
689
  background-color: #f1f1f1;
690
+ border-bottom: 1px solid #cccccc;
691
+ border-right: 1px solid #cccccc;
692
  min-width: 590px; /** prevents col breaking **/
693
  }
694
  .module-headline {
748
 
749
  margin-right: -1px;
750
  z-index: 2;
751
+ border-bottom-color: #cccccc;
752
+ border-top-color: #cccccc;
753
  }
754
  .icwp-options-page .tab-content {
755
  background-color: #fcfffc;
813
  background-color: white;
814
  padding: 40px;
815
  margin: 120px 0 40px;
816
+ box-shadow: 6px 6px 0 rgba(0, 0, 0, 0.2);
817
+ border: 1px solid rgba(0, 0, 0, 0.2);
818
  }
819
  .card.gopro-card {
820
  padding: 0; /* fix to override for bootstrap4 cuz WP has a .card style*/
821
  }
 
822
  @media (max-width: 848px) {
823
  #ColumnModules {
824
  max-width: 81px;
825
  }
826
+
827
  #TopPluginIcon {
828
  height: 76px;
829
  width: 76px;
830
  background-size: 76px 76px;
831
  }
832
+
833
  .modules a.module {
834
  font-size: 0.7rem;
835
  font-weight: normal;
836
  letter-spacing: -1px;
837
  padding: 0.4rem 0.6rem 0.4rem 0.8rem;
838
  }
839
+
840
  .modules .module-name .dashicons {
841
  font-size: 16px;
842
  left: -17px;
843
  }
844
  }
 
845
  #FooterWizardBanner {
846
  position: fixed;
847
  bottom: 0;
852
  #WizardTop {
853
  height: 40px;
854
  background-color: #fafafa;
855
+ background: linear-gradient(to top, rgba(250, 250, 250, 0.95), rgba(250, 250, 250, 0.7));
856
  }
857
  #WizardBanner {
858
+ height: 66px;
859
  background-color: #eaffea;
860
  border-top: 1px solid #bbbbbb;
861
  padding-top: 10px;
862
  text-align: center;
863
  word-break: keep-all;
864
  white-space: nowrap;
865
+ box-shadow: 0 -2px 8px rgba(0, 0, 0, 0.2);
866
  }
867
  #WizardBanner p {
868
  margin: 0;
869
  line-height: 20px;
870
  text-align: left;
871
  }
 
872
  .icon-flag {
873
+ vertical-align: text-bottom;
874
  }
 
875
  /** TABLE: Audit trail **/
876
  td.column-message textarea {
877
  width: 100%;
878
  background: transparent;
879
  box-shadow: none;
880
+ border-color: rgba(0, 0, 0, 0.05);
881
+ }
882
+
883
+ .table-side-filter {
884
+ position: sticky;
885
+ top: 120px;
886
+ }
887
+
888
+ #SectionNotices tr.title_row th {
889
+ padding: 0.25rem 1.0rem;
890
+ border-bottom: 0 none;
891
+ letter-spacing: 0.1px;
892
+ }
893
+ #SectionNotices tr.title_row th h6 {
894
+ font-size: 0.85rem;
895
  }
896
 
897
  /** TABLE: TRAFFIC **/
898
  th.column-visitor {
 
899
  }
900
  th.column-path {
 
901
  }
902
  td.column-path code {
903
  color: #4120a2;
904
  display: block;
905
  font-size: 0.9rem;
906
  background-color: transparent; /* rgba(245, 245, 245, 0.8); */
907
+ word-break: break-all;
908
  }
909
  th.column-code {
910
  width: 84px;
914
  }
915
  th.column-request_info {
916
  width: 100px;
917
+ }
918
+ /** INSIGHTS **/
919
+
920
+ /* TABLES */
921
+ .tablenav-pages-navspan {
922
+ box-sizing: content-box;
923
+ }
924
+ #odp-PageContainer {
925
+ }
926
+ #odp-PageContainer .card {
927
+ box-shadow: none;
928
+ margin-top: 0;
929
+ max-width: none;
930
+ padding: 0;
931
+ }
932
+ #odp-PageHead {
933
+ }
934
+ .page-insights #odp-PageHead {
935
+ position: sticky;
936
+ top: 40px;
937
+ z-index: 3;
938
+ }
939
+ #odp-PageHead .navbar {
940
+ box-shadow: 1px 1px 2px rgba(0, 0, 0, 0.2);
941
+ }
942
+ #odp-PageHead .nav-link {
943
+ }
944
+ #odp-PageHead .nav-link.active {
945
+ font-weight: bold;
946
+ border: 1px solid rgba(0, 0, 0, 0.1);
947
+ border-radius: 3px;
948
+ background-color: rgba(0, 0, 0, 0.04);
949
+ color: green;
950
+ }
951
+ #NavItem-license {
952
+ color: #09b740;
953
+ text-shadow: 0 0 0 rgba(0, 0, 0, 0.2);
954
+ font-weight: bolder;
955
+ }
956
+ #odp-PageMain {
957
+ font-size: 13px;
958
+ }
959
+ .insights_section {
960
+ margin-top: 20px;
961
+ }
962
+ .insights_widget .card-body {
963
+ padding: 0 0 0 0;
964
+ }
965
+ .overflow_container {
966
+ max-height: 350px;
967
+ overflow-x: hidden;
968
+ overflow-y: auto;
969
+ padding-bottom: 1rem;
970
+ }
971
+ .overflow_inner {
972
+ padding: 1rem;
973
+ }
974
+ .overflow_inner dl {
975
+ margin-bottom: 1px;
976
+ }
977
+ .title_row th,
978
+ .title_row td {
979
+ background-color: #fbfbfb;
980
+ }
981
+ .message_row th,
982
+ .message_row td {
983
+ border-top: 1px solid #e9edf1; /** make bootstrap border lighter */
984
+ }
985
+ td.cell_delete_note {
986
+ max-width: 20px;
987
+ }
988
+ .icon-sign {
989
+ font-size: 14px;
990
+ }
991
+
992
+ #collapseConfigSummaryTitle:hover {
993
+ cursor: pointer;
994
+ }
995
+
996
+ #SectionStats {
997
+ max-height: 300px;
998
+ overflow: auto;
999
+ }
1000
+ .stat.card {
1001
+ }
1002
+ .stat.card .card-header {
1003
+ font-size: smaller;
1004
+ white-space: nowrap;
1005
+ }
1006
+ .stat.card .card-body {
1007
+ font-size: x-large;
1008
+ padding: 0.5rem;
1009
+ }
1010
+ #odp-PageMain .card.config {
1011
+ margin-top: 20px;
1012
+ }
1013
+ #SectionModuleSummaries .card-body table {
1014
+ margin-bottom: 0;
1015
+ }
1016
+ #SectionModuleSummaries table tr.row-key_opt {
1017
+ }
1018
+ /** TABLES **/
1019
+ .icwpAjaxTableContainer {
1020
+ }
1021
+ .icwpAjaxTableContainer .tablenav {
1022
+ height: auto;
1023
+ }
1024
+ th.column-created_at,
1025
+ th.column-last_access_at,
1026
+ th.column-logged_in_at,
1027
+ th.column-expires_at,
1028
+ th.column-last_activity_at {
1029
+ max-width: 165px;
1030
+ width: 165px;
1031
+ }
1032
+ td .timestamp-small {
1033
+ font-size: smaller;
1034
+ }
1035
+
1036
+ .odp-table td.check-column input[type=checkbox],
1037
+ .odp-table th.check-column input[type=checkbox] {
1038
+ margin: 0 4px;
1039
+ }
1040
+ a.ip-whois {
1041
+ color: #739e31;
1042
+ }
1043
+ /** END TABLES **/
1044
+
1045
+ /** Sessions Table **/
1046
+ th.column-is_secadmin {
1047
+ width: 80px;
1048
+ }
1049
+ /** End Sessions Table **/
1050
+ /** IPS Insights **/
1051
+ form.add-ip button.add {
1052
+ padding: 5px 6px;
1053
+ vertical-align: text-bottom;
1054
+ }
1055
+ form.add-ip button.add .dashicons {
1056
+ vertical-align: inherit;
1057
+ }
1058
+ .odp-table .actions-block {
1059
+ font-size: 0.75rem;
1060
+ opacity: 0.6;
1061
+ }
1062
+ .odp-table tr:hover .actions-block {
1063
+ opacity: 1;
1064
+ }
1065
+ .odp-table .actions-block .btn {
1066
+ font-size: 0.85rem;
1067
+ padding-left: 0;
1068
+ padding-right: 0;
1069
+ }
1070
+ /** unused
1071
+ th.column-actions,
1072
+ td.column-actions {
1073
+ text-align: center;
1074
+ width: 100px;
1075
+ }
1076
+ td.column-actions .actions-block button.btn {
1077
+ margin: 0 3px;
1078
+ height: 32px;
1079
+ width: 32px;
1080
+ padding: 3px 2px 3px 1px;
1081
+ }
1082
+ td.column-actions button > span {
1083
+ font-size: 20px;
1084
+ } */
1085
+ /** END IPS Insights **/
1086
+
1087
+
1088
+ .scan-select .form-text {
1089
+ white-space: normal;
1090
+ }
1091
+ /** TABLES SCANS **/
1092
+ @media (max-width: 782px) {
1093
+ table.scan-table.wp-list-table tr:not(.inline-edit-row):not(.no-items) td.column-primary ~ td:not(.check-column) {
1094
+ display: block;
1095
+ }
1096
+ }
1097
+ table.scan-table.wp-list-table button.toggle-row {
1098
+ display: none;
1099
+ }
1100
+
1101
+ /**
1102
+ PTG SCAN TABLES
1103
+ */
1104
+ .scan-table-for-slug {
1105
+ margin-top: 15px;
1106
+ }
1107
+ .scan-table-for-slug .tablenav.top {
1108
+ display: none;
1109
+ }
1110
+
1111
+
1112
+ .card.card-scan_results {
1113
+ /*background-color: transparent;*/
1114
+ /*border: 0 none;*/
1115
+ }
1116
+ .card.card-scan_results .card-header {
1117
+ background-color: transparent;
1118
+ border: 0 none;
1119
+ border-bottom: 1px solid rgba(0, 0, 0, 0.2);
1120
+ }
1121
+ .card.card-scan_results .card-body .ptg-asset-summary {
1122
+ padding: 1.25rem;
1123
+ }
1124
+ table.odp-table.scan-table {
1125
+ border-bottom: 0 none;
1126
+ border-top: 0 none;
1127
+ }
1128
+ table.odp-table.scan-table td.column-path code {
1129
+ font-size: 0.7rem;
1130
+ padding: 0;
1131
+ }
1132
+ .tablenav.top, .tablenav.bottom {
1133
+ /*display: none;*/
1134
+ }
1135
+ .container-scantable {
1136
+ max-height: 300px;
1137
+ overflow: auto;
1138
+ }
1139
+ .container-scantable .tablenav.top,
1140
+ .container-scantable .tablenav.top {
1141
+ /*display: none;*/
1142
+ }
1143
+
1144
+ #TableAdminNotes .tablenav.bottom,
1145
+ #TableSessions .tablenav.bottom,
1146
+ .container-scantable .tablenav.bottom {
1147
+ display: none;
1148
+ }
1149
+ #SectionScanResultsPtg .card-scan_results table.table td {
1150
+ padding: 2px 0.75rem;
1151
+ }
1152
+ /** END TABLES SCANS **/
1153
+ .insights_section.keys .alert {
1154
+ margin-bottom: 0;
1155
+ }
1156
+ #BackToInsights a {
1157
+ border-radius: 0;
1158
+ border-width: 2px 0;
1159
+ }
1160
+
1161
+ #navbar-bannerlogo {
1162
+ min-width: 170px;
1163
+ width: 170px;
1164
+ display: inline-block;
1165
+ background-repeat: no-repeat;
1166
+ }
1167
+ @media (max-width: 1160px) {
1168
+ .navbar .nav-item {
1169
+ letter-spacing: -1.7px;
1170
+ }
1171
+ }
1172
+ @media (max-width: 992px) {
1173
+ .navbar .nav-item {
1174
+ padding-left: 5px;
1175
+ letter-spacing: 0;
1176
+ }
1177
  }
resources/db/GeoIp2/GeoLite2-Country.mmdb ADDED
Binary file
resources/images/pluginlogo_banner-170x40.png ADDED
Binary file
resources/js/bootstrap4.bundle.js CHANGED
@@ -1,5 +1,5 @@
1
  /*!
2
- * Bootstrap v4.1.3 (https://getbootstrap.com/)
3
  * Copyright 2011-2018 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
4
  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
5
  */
@@ -69,1350 +69,1435 @@
69
 
70
  /**
71
  * --------------------------------------------------------------------------
72
- * Bootstrap (v4.1.3): util.js
73
  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
74
  * --------------------------------------------------------------------------
75
  */
 
 
 
 
 
76
 
77
- var Util = function ($$$1) {
78
- /**
79
- * ------------------------------------------------------------------------
80
- * Private TransitionEnd Helpers
81
- * ------------------------------------------------------------------------
82
- */
83
- var TRANSITION_END = 'transitionend';
84
- var MAX_UID = 1000000;
85
- var MILLISECONDS_MULTIPLIER = 1000; // Shoutout AngusCroll (https://goo.gl/pxwQGp)
86
-
87
- function toType(obj) {
88
- return {}.toString.call(obj).match(/\s([a-z]+)/i)[1].toLowerCase();
89
- }
90
 
91
- function getSpecialTransitionEndEvent() {
92
- return {
93
- bindType: TRANSITION_END,
94
- delegateType: TRANSITION_END,
95
- handle: function handle(event) {
96
- if ($$$1(event.target).is(this)) {
97
- return event.handleObj.handler.apply(this, arguments); // eslint-disable-line prefer-rest-params
98
- }
99
 
100
- return undefined; // eslint-disable-line no-undefined
 
 
 
 
 
 
101
  }
102
- };
103
- }
104
 
105
- function transitionEndEmulator(duration) {
106
- var _this = this;
 
 
107
 
108
- var called = false;
109
- $$$1(this).one(Util.TRANSITION_END, function () {
110
- called = true;
111
- });
112
- setTimeout(function () {
113
- if (!called) {
114
- Util.triggerTransitionEnd(_this);
115
- }
116
- }, duration);
117
- return this;
118
- }
119
 
120
- function setTransitionEndSupport() {
121
- $$$1.fn.emulateTransitionEnd = transitionEndEmulator;
122
- $$$1.event.special[Util.TRANSITION_END] = getSpecialTransitionEndEvent();
123
- }
124
- /**
125
- * --------------------------------------------------------------------------
126
- * Public Util Api
127
- * --------------------------------------------------------------------------
128
- */
 
 
 
 
 
 
 
 
 
 
 
 
129
 
130
 
131
- var Util = {
132
- TRANSITION_END: 'bsTransitionEnd',
133
- getUID: function getUID(prefix) {
134
- do {
135
- // eslint-disable-next-line no-bitwise
136
- prefix += ~~(Math.random() * MAX_UID); // "~~" acts like a faster Math.floor() here
137
- } while (document.getElementById(prefix));
138
 
139
- return prefix;
140
- },
141
- getSelectorFromElement: function getSelectorFromElement(element) {
142
- var selector = element.getAttribute('data-target');
143
 
144
- if (!selector || selector === '#') {
145
- selector = element.getAttribute('href') || '';
146
- }
 
147
 
148
- try {
149
- return document.querySelector(selector) ? selector : null;
150
- } catch (err) {
151
- return null;
152
- }
153
- },
154
- getTransitionDurationFromElement: function getTransitionDurationFromElement(element) {
155
- if (!element) {
156
- return 0;
157
- } // Get transition-duration of the element
158
 
159
 
160
- var transitionDuration = $$$1(element).css('transition-duration');
161
- var floatTransitionDuration = parseFloat(transitionDuration); // Return 0 if element or transition duration is not found
 
 
162
 
163
- if (!floatTransitionDuration) {
164
- return 0;
165
- } // If multiple durations are defined, take the first
166
 
167
 
168
- transitionDuration = transitionDuration.split(',')[0];
169
- return parseFloat(transitionDuration) * MILLISECONDS_MULTIPLIER;
170
- },
171
- reflow: function reflow(element) {
172
- return element.offsetHeight;
173
- },
174
- triggerTransitionEnd: function triggerTransitionEnd(element) {
175
- $$$1(element).trigger(TRANSITION_END);
176
- },
177
- // TODO: Remove in v5
178
- supportsTransitionEnd: function supportsTransitionEnd() {
179
- return Boolean(TRANSITION_END);
180
- },
181
- isElement: function isElement(obj) {
182
- return (obj[0] || obj).nodeType;
183
- },
184
- typeCheckConfig: function typeCheckConfig(componentName, config, configTypes) {
185
- for (var property in configTypes) {
186
- if (Object.prototype.hasOwnProperty.call(configTypes, property)) {
187
- var expectedTypes = configTypes[property];
188
- var value = config[property];
189
- var valueType = value && Util.isElement(value) ? 'element' : toType(value);
190
-
191
- if (!new RegExp(expectedTypes).test(valueType)) {
192
- throw new Error(componentName.toUpperCase() + ": " + ("Option \"" + property + "\" provided type \"" + valueType + "\" ") + ("but expected type \"" + expectedTypes + "\"."));
193
- }
194
  }
195
  }
196
  }
197
- };
198
- setTransitionEndSupport();
199
- return Util;
200
- }($);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
201
 
202
  /**
203
- * --------------------------------------------------------------------------
204
- * Bootstrap (v4.1.3): alert.js
205
- * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
206
- * --------------------------------------------------------------------------
207
  */
208
 
209
- var Alert = function ($$$1) {
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
210
  /**
211
  * ------------------------------------------------------------------------
212
- * Constants
213
  * ------------------------------------------------------------------------
214
  */
215
- var NAME = 'alert';
216
- var VERSION = '4.1.3';
217
- var DATA_KEY = 'bs.alert';
218
- var EVENT_KEY = "." + DATA_KEY;
219
- var DATA_API_KEY = '.data-api';
220
- var JQUERY_NO_CONFLICT = $$$1.fn[NAME];
221
- var Selector = {
222
- DISMISS: '[data-dismiss="alert"]'
223
- };
224
- var Event = {
225
- CLOSE: "close" + EVENT_KEY,
226
- CLOSED: "closed" + EVENT_KEY,
227
- CLICK_DATA_API: "click" + EVENT_KEY + DATA_API_KEY
228
- };
229
- var ClassName = {
230
- ALERT: 'alert',
231
- FADE: 'fade',
232
- SHOW: 'show'
233
- /**
234
- * ------------------------------------------------------------------------
235
- * Class Definition
236
- * ------------------------------------------------------------------------
237
- */
238
 
239
- };
240
 
241
- var Alert =
242
- /*#__PURE__*/
243
- function () {
244
- function Alert(element) {
245
- this._element = element;
246
- } // Getters
247
 
248
 
249
- var _proto = Alert.prototype;
250
 
251
- // Public
252
- _proto.close = function close(element) {
253
- var rootElement = this._element;
254
 
255
- if (element) {
256
- rootElement = this._getRootElement(element);
257
- }
258
 
259
- var customEvent = this._triggerCloseEvent(rootElement);
260
 
261
- if (customEvent.isDefaultPrevented()) {
262
- return;
263
- }
264
 
265
- this._removeElement(rootElement);
266
- };
267
 
268
- _proto.dispose = function dispose() {
269
- $$$1.removeData(this._element, DATA_KEY);
270
- this._element = null;
271
- }; // Private
272
 
273
 
274
- _proto._getRootElement = function _getRootElement(element) {
275
- var selector = Util.getSelectorFromElement(element);
276
- var parent = false;
277
 
278
- if (selector) {
279
- parent = document.querySelector(selector);
280
- }
281
 
282
- if (!parent) {
283
- parent = $$$1(element).closest("." + ClassName.ALERT)[0];
284
- }
285
 
286
- return parent;
287
- };
288
 
289
- _proto._triggerCloseEvent = function _triggerCloseEvent(element) {
290
- var closeEvent = $$$1.Event(Event.CLOSE);
291
- $$$1(element).trigger(closeEvent);
292
- return closeEvent;
293
- };
294
 
295
- _proto._removeElement = function _removeElement(element) {
296
- var _this = this;
297
 
298
- $$$1(element).removeClass(ClassName.SHOW);
299
 
300
- if (!$$$1(element).hasClass(ClassName.FADE)) {
301
- this._destroyElement(element);
302
 
303
- return;
304
- }
305
 
306
- var transitionDuration = Util.getTransitionDurationFromElement(element);
307
- $$$1(element).one(Util.TRANSITION_END, function (event) {
308
- return _this._destroyElement(element, event);
309
- }).emulateTransitionEnd(transitionDuration);
310
- };
311
 
312
- _proto._destroyElement = function _destroyElement(element) {
313
- $$$1(element).detach().trigger(Event.CLOSED).remove();
314
- }; // Static
315
 
316
 
317
- Alert._jQueryInterface = function _jQueryInterface(config) {
318
- return this.each(function () {
319
- var $element = $$$1(this);
320
- var data = $element.data(DATA_KEY);
321
 
322
- if (!data) {
323
- data = new Alert(this);
324
- $element.data(DATA_KEY, data);
325
- }
326
 
327
- if (config === 'close') {
328
- data[config](this);
329
- }
330
- });
331
- };
332
 
333
- Alert._handleDismiss = function _handleDismiss(alertInstance) {
334
- return function (event) {
335
- if (event) {
336
- event.preventDefault();
337
- }
338
 
339
- alertInstance.close(this);
340
- };
341
  };
 
342
 
343
- _createClass(Alert, null, [{
344
- key: "VERSION",
345
- get: function get() {
346
- return VERSION;
347
- }
348
- }]);
349
-
350
- return Alert;
351
- }();
352
- /**
353
- * ------------------------------------------------------------------------
354
- * Data Api implementation
355
- * ------------------------------------------------------------------------
356
- */
357
 
 
 
 
 
 
 
 
358
 
359
- $$$1(document).on(Event.CLICK_DATA_API, Selector.DISMISS, Alert._handleDismiss(new Alert()));
360
- /**
361
- * ------------------------------------------------------------------------
362
- * jQuery
363
- * ------------------------------------------------------------------------
364
- */
365
 
366
- $$$1.fn[NAME] = Alert._jQueryInterface;
367
- $$$1.fn[NAME].Constructor = Alert;
 
 
 
 
368
 
369
- $$$1.fn[NAME].noConflict = function () {
370
- $$$1.fn[NAME] = JQUERY_NO_CONFLICT;
371
- return Alert._jQueryInterface;
372
- };
373
 
374
- return Alert;
375
- }($);
 
 
376
 
377
  /**
378
- * --------------------------------------------------------------------------
379
- * Bootstrap (v4.1.3): button.js
380
- * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
381
- * --------------------------------------------------------------------------
382
  */
383
 
384
- var Button = function ($$$1) {
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
385
  /**
386
  * ------------------------------------------------------------------------
387
- * Constants
388
  * ------------------------------------------------------------------------
389
  */
390
- var NAME = 'button';
391
- var VERSION = '4.1.3';
392
- var DATA_KEY = 'bs.button';
393
- var EVENT_KEY = "." + DATA_KEY;
394
- var DATA_API_KEY = '.data-api';
395
- var JQUERY_NO_CONFLICT = $$$1.fn[NAME];
396
- var ClassName = {
397
- ACTIVE: 'active',
398
- BUTTON: 'btn',
399
- FOCUS: 'focus'
400
- };
401
- var Selector = {
402
- DATA_TOGGLE_CARROT: '[data-toggle^="button"]',
403
- DATA_TOGGLE: '[data-toggle="buttons"]',
404
- INPUT: 'input',
405
- ACTIVE: '.active',
406
- BUTTON: '.btn'
407
- };
408
- var Event = {
409
- CLICK_DATA_API: "click" + EVENT_KEY + DATA_API_KEY,
410
- FOCUS_BLUR_DATA_API: "focus" + EVENT_KEY + DATA_API_KEY + " " + ("blur" + EVENT_KEY + DATA_API_KEY)
411
- /**
412
- * ------------------------------------------------------------------------
413
- * Class Definition
414
- * ------------------------------------------------------------------------
415
- */
416
 
417
- };
418
 
419
- var Button =
420
- /*#__PURE__*/
421
- function () {
422
- function Button(element) {
423
- this._element = element;
424
- } // Getters
425
 
426
 
427
- var _proto = Button.prototype;
428
 
429
- // Public
430
- _proto.toggle = function toggle() {
431
- var triggerChangeEvent = true;
432
- var addAriaPressed = true;
433
- var rootElement = $$$1(this._element).closest(Selector.DATA_TOGGLE)[0];
434
 
435
- if (rootElement) {
436
- var input = this._element.querySelector(Selector.INPUT);
437
 
438
- if (input) {
439
- if (input.type === 'radio') {
440
- if (input.checked && this._element.classList.contains(ClassName.ACTIVE)) {
441
- triggerChangeEvent = false;
442
- } else {
443
- var activeElement = rootElement.querySelector(Selector.ACTIVE);
444
 
445
- if (activeElement) {
446
- $$$1(activeElement).removeClass(ClassName.ACTIVE);
447
- }
448
  }
449
  }
 
450
 
451
- if (triggerChangeEvent) {
452
- if (input.hasAttribute('disabled') || rootElement.hasAttribute('disabled') || input.classList.contains('disabled') || rootElement.classList.contains('disabled')) {
453
- return;
454
- }
455
-
456
- input.checked = !this._element.classList.contains(ClassName.ACTIVE);
457
- $$$1(input).trigger('change');
458
  }
459
 
460
- input.focus();
461
- addAriaPressed = false;
462
  }
463
- }
464
 
465
- if (addAriaPressed) {
466
- this._element.setAttribute('aria-pressed', !this._element.classList.contains(ClassName.ACTIVE));
467
  }
 
468
 
469
- if (triggerChangeEvent) {
470
- $$$1(this._element).toggleClass(ClassName.ACTIVE);
471
- }
472
- };
473
 
474
- _proto.dispose = function dispose() {
475
- $$$1.removeData(this._element, DATA_KEY);
476
- this._element = null;
477
- }; // Static
478
 
 
 
 
 
479
 
480
- Button._jQueryInterface = function _jQueryInterface(config) {
481
- return this.each(function () {
482
- var data = $$$1(this).data(DATA_KEY);
483
 
484
- if (!data) {
485
- data = new Button(this);
486
- $$$1(this).data(DATA_KEY, data);
487
- }
488
 
489
- if (config === 'toggle') {
490
- data[config]();
491
- }
492
- });
493
- };
494
 
495
- _createClass(Button, null, [{
496
- key: "VERSION",
497
- get: function get() {
498
- return VERSION;
499
  }
500
- }]);
 
501
 
502
- return Button;
503
- }();
504
- /**
505
- * ------------------------------------------------------------------------
506
- * Data Api implementation
507
- * ------------------------------------------------------------------------
508
- */
509
 
 
 
 
 
 
 
 
510
 
511
- $$$1(document).on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE_CARROT, function (event) {
512
- event.preventDefault();
513
- var button = event.target;
514
 
515
- if (!$$$1(button).hasClass(ClassName.BUTTON)) {
516
- button = $$$1(button).closest(Selector.BUTTON);
517
- }
518
 
519
- Button._jQueryInterface.call($$$1(button), 'toggle');
520
- }).on(Event.FOCUS_BLUR_DATA_API, Selector.DATA_TOGGLE_CARROT, function (event) {
521
- var button = $$$1(event.target).closest(Selector.BUTTON)[0];
522
- $$$1(button).toggleClass(ClassName.FOCUS, /^focus(in)?$/.test(event.type));
523
- });
524
- /**
525
- * ------------------------------------------------------------------------
526
- * jQuery
527
- * ------------------------------------------------------------------------
528
- */
529
 
530
- $$$1.fn[NAME] = Button._jQueryInterface;
531
- $$$1.fn[NAME].Constructor = Button;
 
 
 
 
 
 
 
 
532
 
533
- $$$1.fn[NAME].noConflict = function () {
534
- $$$1.fn[NAME] = JQUERY_NO_CONFLICT;
535
- return Button._jQueryInterface;
536
- };
537
 
538
- return Button;
539
- }($);
 
 
540
 
541
  /**
542
- * --------------------------------------------------------------------------
543
- * Bootstrap (v4.1.3): carousel.js
544
- * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
545
- * --------------------------------------------------------------------------
546
  */
547
 
548
- var Carousel = function ($$$1) {
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
549
  /**
550
  * ------------------------------------------------------------------------
551
- * Constants
552
  * ------------------------------------------------------------------------
553
  */
554
- var NAME = 'carousel';
555
- var VERSION = '4.1.3';
556
- var DATA_KEY = 'bs.carousel';
557
- var EVENT_KEY = "." + DATA_KEY;
558
- var DATA_API_KEY = '.data-api';
559
- var JQUERY_NO_CONFLICT = $$$1.fn[NAME];
560
- var ARROW_LEFT_KEYCODE = 37; // KeyboardEvent.which value for left arrow key
561
-
562
- var ARROW_RIGHT_KEYCODE = 39; // KeyboardEvent.which value for right arrow key
563
-
564
- var TOUCHEVENT_COMPAT_WAIT = 500; // Time for mouse compat events to fire after touch
565
-
566
- var Default = {
567
- interval: 5000,
568
- keyboard: true,
569
- slide: false,
570
- pause: 'hover',
571
- wrap: true
572
- };
573
- var DefaultType = {
574
- interval: '(number|boolean)',
575
- keyboard: 'boolean',
576
- slide: '(boolean|string)',
577
- pause: '(string|boolean)',
578
- wrap: 'boolean'
579
- };
580
- var Direction = {
581
- NEXT: 'next',
582
- PREV: 'prev',
583
- LEFT: 'left',
584
- RIGHT: 'right'
 
585
  };
586
- var Event = {
587
- SLIDE: "slide" + EVENT_KEY,
588
- SLID: "slid" + EVENT_KEY,
589
- KEYDOWN: "keydown" + EVENT_KEY,
590
- MOUSEENTER: "mouseenter" + EVENT_KEY,
591
- MOUSELEAVE: "mouseleave" + EVENT_KEY,
592
- TOUCHEND: "touchend" + EVENT_KEY,
593
- LOAD_DATA_API: "load" + EVENT_KEY + DATA_API_KEY,
594
- CLICK_DATA_API: "click" + EVENT_KEY + DATA_API_KEY
595
  };
596
- var ClassName = {
597
- CAROUSEL: 'carousel',
598
- ACTIVE: 'active',
599
- SLIDE: 'slide',
600
- RIGHT: 'carousel-item-right',
601
- LEFT: 'carousel-item-left',
602
- NEXT: 'carousel-item-next',
603
- PREV: 'carousel-item-prev',
604
- ITEM: 'carousel-item'
605
  };
606
- var Selector = {
607
- ACTIVE: '.active',
608
- ACTIVE_ITEM: '.active.carousel-item',
609
- ITEM: '.carousel-item',
610
- NEXT_PREV: '.carousel-item-next, .carousel-item-prev',
611
- INDICATORS: '.carousel-indicators',
612
- DATA_SLIDE: '[data-slide], [data-slide-to]',
613
- DATA_RIDE: '[data-ride="carousel"]'
614
- /**
615
- * ------------------------------------------------------------------------
616
- * Class Definition
617
- * ------------------------------------------------------------------------
618
- */
619
 
 
 
 
 
 
 
 
 
 
 
 
 
620
  };
621
 
622
- var Carousel =
623
- /*#__PURE__*/
624
- function () {
625
- function Carousel(element, config) {
626
- this._items = null;
627
- this._interval = null;
628
- this._activeElement = null;
629
  this._isPaused = false;
630
- this._isSliding = false;
631
- this.touchTimeout = null;
632
- this._config = this._getConfig(config);
633
- this._element = $$$1(element)[0];
634
- this._indicatorsElement = this._element.querySelector(Selector.INDICATORS);
635
 
636
- this._addEventListeners();
637
- } // Getters
 
 
638
 
 
 
 
 
639
 
640
- var _proto = Carousel.prototype;
 
641
 
642
- // Public
643
- _proto.next = function next() {
644
- if (!this._isSliding) {
645
- this._slide(Direction.NEXT);
646
- }
647
- };
648
 
649
- _proto.nextWhenVisible = function nextWhenVisible() {
650
- // Don't call next when the page isn't visible
651
- // or the carousel or its parent isn't visible
652
- if (!document.hidden && $$$1(this._element).is(':visible') && $$$1(this._element).css('visibility') !== 'hidden') {
653
- this.next();
654
- }
655
- };
656
 
657
- _proto.prev = function prev() {
658
- if (!this._isSliding) {
659
- this._slide(Direction.PREV);
660
- }
661
- };
662
 
663
- _proto.pause = function pause(event) {
664
- if (!event) {
665
- this._isPaused = true;
666
- }
 
 
667
 
668
- if (this._element.querySelector(Selector.NEXT_PREV)) {
669
- Util.triggerTransitionEnd(this._element);
670
- this.cycle(true);
671
- }
 
672
 
673
- clearInterval(this._interval);
674
- this._interval = null;
675
- };
676
 
677
- _proto.cycle = function cycle(event) {
678
- if (!event) {
679
- this._isPaused = false;
680
- }
681
 
682
- if (this._interval) {
683
- clearInterval(this._interval);
684
- this._interval = null;
685
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
686
 
687
- if (this._config.interval && !this._isPaused) {
688
- this._interval = setInterval((document.visibilityState ? this.nextWhenVisible : this.next).bind(this), this._config.interval);
689
- }
690
- };
691
 
692
- _proto.to = function to(index) {
693
- var _this = this;
 
694
 
695
- this._activeElement = this._element.querySelector(Selector.ACTIVE_ITEM);
696
 
697
- var activeIndex = this._getItemIndex(this._activeElement);
 
 
698
 
699
- if (index > this._items.length - 1 || index < 0) {
700
- return;
701
- }
702
 
703
- if (this._isSliding) {
704
- $$$1(this._element).one(Event.SLID, function () {
705
- return _this.to(index);
706
- });
707
- return;
708
- }
709
-
710
- if (activeIndex === index) {
711
- this.pause();
712
- this.cycle();
713
- return;
714
- }
715
 
716
- var direction = index > activeIndex ? Direction.NEXT : Direction.PREV;
 
717
 
718
- this._slide(direction, this._items[index]);
719
- };
 
 
 
720
 
721
- _proto.dispose = function dispose() {
722
- $$$1(this._element).off(EVENT_KEY);
723
- $$$1.removeData(this._element, DATA_KEY);
724
- this._items = null;
725
- this._config = null;
726
- this._element = null;
727
- this._interval = null;
728
- this._isPaused = null;
729
- this._isSliding = null;
730
- this._activeElement = null;
731
- this._indicatorsElement = null;
732
- }; // Private
733
 
 
 
734
 
735
- _proto._getConfig = function _getConfig(config) {
736
- config = _objectSpread({}, Default, config);
737
- Util.typeCheckConfig(NAME, config, DefaultType);
738
- return config;
739
- };
740
 
741
- _proto._addEventListeners = function _addEventListeners() {
742
- var _this2 = this;
 
743
 
744
- if (this._config.keyboard) {
745
- $$$1(this._element).on(Event.KEYDOWN, function (event) {
746
- return _this2._keydown(event);
747
- });
 
748
  }
 
749
 
750
- if (this._config.pause === 'hover') {
751
- $$$1(this._element).on(Event.MOUSEENTER, function (event) {
752
- return _this2.pause(event);
753
- }).on(Event.MOUSELEAVE, function (event) {
754
- return _this2.cycle(event);
755
- });
756
-
757
- if ('ontouchstart' in document.documentElement) {
758
- // If it's a touch-enabled device, mouseenter/leave are fired as
759
- // part of the mouse compatibility events on first tap - the carousel
760
- // would stop cycling until user tapped out of it;
761
- // here, we listen for touchend, explicitly pause the carousel
762
- // (as if it's the second time we tap on it, mouseenter compat event
763
- // is NOT fired) and after a timeout (to allow for mouse compatibility
764
- // events to fire) we explicitly restart cycling
765
- $$$1(this._element).on(Event.TOUCHEND, function () {
766
- _this2.pause();
767
-
768
- if (_this2.touchTimeout) {
769
- clearTimeout(_this2.touchTimeout);
770
- }
771
-
772
- _this2.touchTimeout = setTimeout(function (event) {
773
- return _this2.cycle(event);
774
- }, TOUCHEVENT_COMPAT_WAIT + _this2._config.interval);
775
- });
776
- }
777
  }
778
  };
779
 
780
- _proto._keydown = function _keydown(event) {
781
- if (/input|textarea/i.test(event.target.tagName)) {
782
- return;
783
  }
784
 
785
- switch (event.which) {
786
- case ARROW_LEFT_KEYCODE:
787
- event.preventDefault();
788
- this.prev();
789
- break;
790
 
791
- case ARROW_RIGHT_KEYCODE:
792
- event.preventDefault();
793
- this.next();
794
- break;
 
 
 
 
 
 
 
 
 
795
 
796
- default:
 
 
797
  }
798
  };
799
 
800
- _proto._getItemIndex = function _getItemIndex(element) {
801
- this._items = element && element.parentNode ? [].slice.call(element.parentNode.querySelectorAll(Selector.ITEM)) : [];
802
- return this._items.indexOf(element);
803
- };
804
 
805
- _proto._getItemByDirection = function _getItemByDirection(direction, activeElement) {
806
- var isNextDirection = direction === Direction.NEXT;
807
- var isPrevDirection = direction === Direction.PREV;
 
 
 
 
808
 
809
- var activeIndex = this._getItemIndex(activeElement);
 
 
 
 
 
 
 
 
 
 
 
 
810
 
811
- var lastItemIndex = this._items.length - 1;
812
- var isGoingToWrap = isPrevDirection && activeIndex === 0 || isNextDirection && activeIndex === lastItemIndex;
 
 
813
 
814
- if (isGoingToWrap && !this._config.wrap) {
815
- return activeElement;
816
- }
 
 
817
 
818
- var delta = direction === Direction.PREV ? -1 : 1;
819
- var itemIndex = (activeIndex + delta) % this._items.length;
820
- return itemIndex === -1 ? this._items[this._items.length - 1] : this._items[itemIndex];
821
- };
822
 
823
- _proto._triggerSlideEvent = function _triggerSlideEvent(relatedTarget, eventDirectionName) {
824
- var targetIndex = this._getItemIndex(relatedTarget);
 
825
 
826
- var fromIndex = this._getItemIndex(this._element.querySelector(Selector.ACTIVE_ITEM));
 
 
 
827
 
828
- var slideEvent = $$$1.Event(Event.SLIDE, {
829
- relatedTarget: relatedTarget,
830
- direction: eventDirectionName,
831
- from: fromIndex,
832
- to: targetIndex
833
- });
834
- $$$1(this._element).trigger(slideEvent);
835
- return slideEvent;
836
- };
837
 
838
- _proto._setActiveIndicatorElement = function _setActiveIndicatorElement(element) {
839
- if (this._indicatorsElement) {
840
- var indicators = [].slice.call(this._indicatorsElement.querySelectorAll(Selector.ACTIVE));
841
- $$$1(indicators).removeClass(ClassName.ACTIVE);
842
 
843
- var nextIndicator = this._indicatorsElement.children[this._getItemIndex(element)];
 
844
 
845
- if (nextIndicator) {
846
- $$$1(nextIndicator).addClass(ClassName.ACTIVE);
847
- }
848
- }
849
- };
850
 
851
- _proto._slide = function _slide(direction, element) {
852
- var _this3 = this;
 
 
853
 
854
- var activeElement = this._element.querySelector(Selector.ACTIVE_ITEM);
 
855
 
856
- var activeElementIndex = this._getItemIndex(activeElement);
857
 
858
- var nextElement = element || activeElement && this._getItemByDirection(direction, activeElement);
 
 
 
 
 
 
 
 
859
 
860
- var nextElementIndex = this._getItemIndex(nextElement);
 
 
 
861
 
862
- var isCycling = Boolean(this._interval);
863
- var directionalClassName;
864
- var orderClassName;
865
- var eventDirectionName;
866
 
867
- if (direction === Direction.NEXT) {
868
- directionalClassName = ClassName.LEFT;
869
- orderClassName = ClassName.NEXT;
870
- eventDirectionName = Direction.LEFT;
871
- } else {
872
- directionalClassName = ClassName.RIGHT;
873
- orderClassName = ClassName.PREV;
874
- eventDirectionName = Direction.RIGHT;
875
  }
 
 
876
 
877
- if (nextElement && $$$1(nextElement).hasClass(ClassName.ACTIVE)) {
878
- this._isSliding = false;
879
- return;
880
- }
881
 
882
- var slideEvent = this._triggerSlideEvent(nextElement, eventDirectionName);
883
 
884
- if (slideEvent.isDefaultPrevented()) {
885
- return;
886
- }
887
 
888
- if (!activeElement || !nextElement) {
889
- // Some weirdness is happening, so we bail
890
- return;
891
- }
892
 
893
- this._isSliding = true;
894
 
895
- if (isCycling) {
896
- this.pause();
897
- }
 
898
 
899
- this._setActiveIndicatorElement(nextElement);
 
 
 
 
 
 
 
 
900
 
901
- var slidEvent = $$$1.Event(Event.SLID, {
902
- relatedTarget: nextElement,
903
- direction: eventDirectionName,
904
- from: activeElementIndex,
905
- to: nextElementIndex
906
- });
907
 
908
- if ($$$1(this._element).hasClass(ClassName.SLIDE)) {
909
- $$$1(nextElement).addClass(orderClassName);
910
- Util.reflow(nextElement);
911
- $$$1(activeElement).addClass(directionalClassName);
912
- $$$1(nextElement).addClass(directionalClassName);
913
- var transitionDuration = Util.getTransitionDurationFromElement(activeElement);
914
- $$$1(activeElement).one(Util.TRANSITION_END, function () {
915
- $$$1(nextElement).removeClass(directionalClassName + " " + orderClassName).addClass(ClassName.ACTIVE);
916
- $$$1(activeElement).removeClass(ClassName.ACTIVE + " " + orderClassName + " " + directionalClassName);
917
- _this3._isSliding = false;
918
- setTimeout(function () {
919
- return $$$1(_this3._element).trigger(slidEvent);
920
- }, 0);
921
- }).emulateTransitionEnd(transitionDuration);
922
- } else {
923
- $$$1(activeElement).removeClass(ClassName.ACTIVE);
924
- $$$1(nextElement).addClass(ClassName.ACTIVE);
925
- this._isSliding = false;
926
- $$$1(this._element).trigger(slidEvent);
927
- }
928
 
929
- if (isCycling) {
930
- this.cycle();
931
- }
932
- }; // Static
933
 
 
 
 
 
934
 
935
- Carousel._jQueryInterface = function _jQueryInterface(config) {
936
- return this.each(function () {
937
- var data = $$$1(this).data(DATA_KEY);
938
 
939
- var _config = _objectSpread({}, Default, $$$1(this).data());
 
 
940
 
941
- if (typeof config === 'object') {
942
- _config = _objectSpread({}, _config, config);
943
- }
944
 
945
- var action = typeof config === 'string' ? config : _config.slide;
 
 
 
 
 
946
 
947
- if (!data) {
948
- data = new Carousel(this, _config);
949
- $$$1(this).data(DATA_KEY, data);
950
- }
 
 
951
 
952
- if (typeof config === 'number') {
953
- data.to(config);
954
- } else if (typeof action === 'string') {
955
- if (typeof data[action] === 'undefined') {
956
- throw new TypeError("No method named \"" + action + "\"");
957
- }
958
 
959
- data[action]();
960
- } else if (_config.interval) {
961
- data.pause();
962
- data.cycle();
963
- }
964
- });
965
- };
 
 
 
 
 
 
 
 
966
 
967
- Carousel._dataApiClickHandler = function _dataApiClickHandler(event) {
968
- var selector = Util.getSelectorFromElement(this);
 
 
969
 
970
- if (!selector) {
971
- return;
972
- }
973
 
974
- var target = $$$1(selector)[0];
 
 
975
 
976
- if (!target || !$$$1(target).hasClass(ClassName.CAROUSEL)) {
977
- return;
978
- }
979
 
980
- var config = _objectSpread({}, $$$1(target).data(), $$$1(this).data());
 
 
981
 
982
- var slideIndex = this.getAttribute('data-slide-to');
983
 
984
- if (slideIndex) {
985
- config.interval = false;
 
986
  }
987
 
988
- Carousel._jQueryInterface.call($$$1(target), config);
 
 
 
 
 
989
 
990
- if (slideIndex) {
991
- $$$1(target).data(DATA_KEY).to(slideIndex);
 
 
992
  }
 
 
993
 
994
- event.preventDefault();
995
- };
996
 
997
- _createClass(Carousel, null, [{
998
- key: "VERSION",
999
- get: function get() {
1000
- return VERSION;
1001
- }
1002
- }, {
1003
- key: "Default",
1004
- get: function get() {
1005
- return Default;
1006
- }
1007
- }]);
1008
 
1009
- return Carousel;
1010
- }();
1011
- /**
1012
- * ------------------------------------------------------------------------
1013
- * Data Api implementation
1014
- * ------------------------------------------------------------------------
1015
- */
1016
 
 
 
 
1017
 
1018
- $$$1(document).on(Event.CLICK_DATA_API, Selector.DATA_SLIDE, Carousel._dataApiClickHandler);
1019
- $$$1(window).on(Event.LOAD_DATA_API, function () {
1020
- var carousels = [].slice.call(document.querySelectorAll(Selector.DATA_RIDE));
1021
 
1022
- for (var i = 0, len = carousels.length; i < len; i++) {
1023
- var $carousel = $$$1(carousels[i]);
1024
 
1025
- Carousel._jQueryInterface.call($carousel, $carousel.data());
 
1026
  }
1027
- });
1028
- /**
1029
- * ------------------------------------------------------------------------
1030
- * jQuery
1031
- * ------------------------------------------------------------------------
1032
- */
1033
 
1034
- $$$1.fn[NAME] = Carousel._jQueryInterface;
1035
- $$$1.fn[NAME].Constructor = Carousel;
1036
 
1037
- $$$1.fn[NAME].noConflict = function () {
1038
- $$$1.fn[NAME] = JQUERY_NO_CONFLICT;
1039
- return Carousel._jQueryInterface;
 
 
1040
  };
1041
 
 
 
 
 
 
 
 
 
 
 
 
 
1042
  return Carousel;
1043
- }($);
 
 
 
 
 
 
1044
 
 
 
 
 
 
 
 
 
 
 
1045
  /**
1046
- * --------------------------------------------------------------------------
1047
- * Bootstrap (v4.1.3): collapse.js
1048
- * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
1049
- * --------------------------------------------------------------------------
 
 
 
 
 
 
 
 
 
 
 
 
 
1050
  */
1051
 
1052
- var Collapse = function ($$$1) {
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1053
  /**
1054
  * ------------------------------------------------------------------------
1055
- * Constants
1056
  * ------------------------------------------------------------------------
1057
  */
1058
- var NAME = 'collapse';
1059
- var VERSION = '4.1.3';
1060
- var DATA_KEY = 'bs.collapse';
1061
- var EVENT_KEY = "." + DATA_KEY;
1062
- var DATA_API_KEY = '.data-api';
1063
- var JQUERY_NO_CONFLICT = $$$1.fn[NAME];
1064
- var Default = {
1065
- toggle: true,
1066
- parent: ''
1067
- };
1068
- var DefaultType = {
1069
- toggle: 'boolean',
1070
- parent: '(string|element)'
1071
- };
1072
- var Event = {
1073
- SHOW: "show" + EVENT_KEY,
1074
- SHOWN: "shown" + EVENT_KEY,
1075
- HIDE: "hide" + EVENT_KEY,
1076
- HIDDEN: "hidden" + EVENT_KEY,
1077
- CLICK_DATA_API: "click" + EVENT_KEY + DATA_API_KEY
1078
- };
1079
- var ClassName = {
1080
- SHOW: 'show',
1081
- COLLAPSE: 'collapse',
1082
- COLLAPSING: 'collapsing',
1083
- COLLAPSED: 'collapsed'
1084
- };
1085
- var Dimension = {
1086
- WIDTH: 'width',
1087
- HEIGHT: 'height'
1088
- };
1089
- var Selector = {
1090
- ACTIVES: '.show, .collapsing',
1091
- DATA_TOGGLE: '[data-toggle="collapse"]'
1092
- /**
1093
- * ------------------------------------------------------------------------
1094
- * Class Definition
1095
- * ------------------------------------------------------------------------
1096
- */
1097
 
1098
- };
1099
 
1100
- var Collapse =
1101
- /*#__PURE__*/
1102
- function () {
1103
- function Collapse(element, config) {
1104
- this._isTransitioning = false;
1105
- this._element = element;
1106
- this._config = this._getConfig(config);
1107
- this._triggerArray = $$$1.makeArray(document.querySelectorAll("[data-toggle=\"collapse\"][href=\"#" + element.id + "\"]," + ("[data-toggle=\"collapse\"][data-target=\"#" + element.id + "\"]")));
1108
- var toggleList = [].slice.call(document.querySelectorAll(Selector.DATA_TOGGLE));
1109
-
1110
- for (var i = 0, len = toggleList.length; i < len; i++) {
1111
- var elem = toggleList[i];
1112
- var selector = Util.getSelectorFromElement(elem);
1113
- var filterElement = [].slice.call(document.querySelectorAll(selector)).filter(function (foundElem) {
1114
- return foundElem === element;
1115
- });
1116
 
1117
- if (selector !== null && filterElement.length > 0) {
1118
- this._selector = selector;
1119
 
1120
- this._triggerArray.push(elem);
1121
- }
1122
  }
 
1123
 
1124
- this._parent = this._config.parent ? this._getParent() : null;
1125
 
1126
- if (!this._config.parent) {
1127
- this._addAriaAndCollapsedClass(this._element, this._triggerArray);
1128
- }
1129
 
1130
- if (this._config.toggle) {
1131
- this.toggle();
1132
- }
1133
- } // Getters
1134
 
1135
 
1136
- var _proto = Collapse.prototype;
1137
 
1138
- // Public
1139
- _proto.toggle = function toggle() {
1140
- if ($$$1(this._element).hasClass(ClassName.SHOW)) {
1141
- this.hide();
1142
- } else {
1143
- this.show();
1144
- }
1145
- };
1146
 
1147
- _proto.show = function show() {
1148
- var _this = this;
1149
 
1150
- if (this._isTransitioning || $$$1(this._element).hasClass(ClassName.SHOW)) {
1151
- return;
1152
- }
1153
 
1154
- var actives;
1155
- var activesData;
1156
 
1157
- if (this._parent) {
1158
- actives = [].slice.call(this._parent.querySelectorAll(Selector.ACTIVES)).filter(function (elem) {
 
1159
  return elem.getAttribute('data-parent') === _this._config.parent;
1160
- });
1161
-
1162
- if (actives.length === 0) {
1163
- actives = null;
1164
  }
1165
- }
1166
 
1167
- if (actives) {
1168
- activesData = $$$1(actives).not(this._selector).data(DATA_KEY);
1169
 
1170
- if (activesData && activesData._isTransitioning) {
1171
- return;
1172
- }
1173
  }
 
1174
 
1175
- var startEvent = $$$1.Event(Event.SHOW);
1176
- $$$1(this._element).trigger(startEvent);
1177
 
1178
- if (startEvent.isDefaultPrevented()) {
1179
  return;
1180
  }
 
1181
 
1182
- if (actives) {
1183
- Collapse._jQueryInterface.call($$$1(actives).not(this._selector), 'hide');
1184
-
1185
- if (!activesData) {
1186
- $$$1(actives).data(DATA_KEY, null);
1187
- }
1188
- }
1189
 
1190
- var dimension = this._getDimension();
 
 
1191
 
1192
- $$$1(this._element).removeClass(ClassName.COLLAPSE).addClass(ClassName.COLLAPSING);
1193
- this._element.style[dimension] = 0;
1194
 
1195
- if (this._triggerArray.length) {
1196
- $$$1(this._triggerArray).removeClass(ClassName.COLLAPSED).attr('aria-expanded', true);
1197
  }
 
1198
 
1199
- this.setTransitioning(true);
1200
 
1201
- var complete = function complete() {
1202
- $$$1(_this._element).removeClass(ClassName.COLLAPSING).addClass(ClassName.COLLAPSE).addClass(ClassName.SHOW);
1203
- _this._element.style[dimension] = '';
1204
 
1205
- _this.setTransitioning(false);
 
 
1206
 
1207
- $$$1(_this._element).trigger(Event.SHOWN);
1208
- };
1209
 
1210
- var capitalizedDimension = dimension[0].toUpperCase() + dimension.slice(1);
1211
- var scrollSize = "scroll" + capitalizedDimension;
1212
- var transitionDuration = Util.getTransitionDurationFromElement(this._element);
1213
- $$$1(this._element).one(Util.TRANSITION_END, complete).emulateTransitionEnd(transitionDuration);
1214
- this._element.style[dimension] = this._element[scrollSize] + "px";
 
 
1215
  };
1216
 
1217
- _proto.hide = function hide() {
1218
- var _this2 = this;
 
 
 
 
 
 
 
1219
 
1220
- if (this._isTransitioning || !$$$1(this._element).hasClass(ClassName.SHOW)) {
1221
- return;
1222
- }
1223
 
1224
- var startEvent = $$$1.Event(Event.HIDE);
1225
- $$$1(this._element).trigger(startEvent);
1226
 
1227
- if (startEvent.isDefaultPrevented()) {
1228
- return;
1229
- }
1230
 
1231
- var dimension = this._getDimension();
1232
 
1233
- this._element.style[dimension] = this._element.getBoundingClientRect()[dimension] + "px";
1234
- Util.reflow(this._element);
1235
- $$$1(this._element).addClass(ClassName.COLLAPSING).removeClass(ClassName.COLLAPSE).removeClass(ClassName.SHOW);
1236
- var triggerArrayLength = this._triggerArray.length;
1237
 
1238
- if (triggerArrayLength > 0) {
1239
- for (var i = 0; i < triggerArrayLength; i++) {
1240
- var trigger = this._triggerArray[i];
1241
- var selector = Util.getSelectorFromElement(trigger);
1242
 
1243
- if (selector !== null) {
1244
- var $elem = $$$1([].slice.call(document.querySelectorAll(selector)));
1245
 
1246
- if (!$elem.hasClass(ClassName.SHOW)) {
1247
- $$$1(trigger).addClass(ClassName.COLLAPSED).attr('aria-expanded', false);
1248
- }
1249
  }
1250
  }
1251
  }
 
1252
 
1253
- this.setTransitioning(true);
1254
-
1255
- var complete = function complete() {
1256
- _this2.setTransitioning(false);
1257
 
1258
- $$$1(_this2._element).removeClass(ClassName.COLLAPSING).addClass(ClassName.COLLAPSE).trigger(Event.HIDDEN);
1259
- };
1260
 
1261
- this._element.style[dimension] = '';
1262
- var transitionDuration = Util.getTransitionDurationFromElement(this._element);
1263
- $$$1(this._element).one(Util.TRANSITION_END, complete).emulateTransitionEnd(transitionDuration);
1264
  };
1265
 
1266
- _proto.setTransitioning = function setTransitioning(isTransitioning) {
1267
- this._isTransitioning = isTransitioning;
1268
- };
 
1269
 
1270
- _proto.dispose = function dispose() {
1271
- $$$1.removeData(this._element, DATA_KEY);
1272
- this._config = null;
1273
- this._parent = null;
1274
- this._element = null;
1275
- this._triggerArray = null;
1276
- this._isTransitioning = null;
1277
- }; // Private
1278
 
 
 
 
 
 
 
 
 
1279
 
1280
- _proto._getConfig = function _getConfig(config) {
1281
- config = _objectSpread({}, Default, config);
1282
- config.toggle = Boolean(config.toggle); // Coerce string values
1283
 
1284
- Util.typeCheckConfig(NAME, config, DefaultType);
1285
- return config;
1286
- };
1287
 
1288
- _proto._getDimension = function _getDimension() {
1289
- var hasWidth = $$$1(this._element).hasClass(Dimension.WIDTH);
1290
- return hasWidth ? Dimension.WIDTH : Dimension.HEIGHT;
1291
- };
1292
 
1293
- _proto._getParent = function _getParent() {
1294
- var _this3 = this;
 
 
1295
 
1296
- var parent = null;
 
1297
 
1298
- if (Util.isElement(this._config.parent)) {
1299
- parent = this._config.parent; // It's a jQuery object
1300
 
1301
- if (typeof this._config.parent.jquery !== 'undefined') {
1302
- parent = this._config.parent[0];
1303
- }
1304
- } else {
1305
- parent = document.querySelector(this._config.parent);
1306
- }
1307
 
1308
- var selector = "[data-toggle=\"collapse\"][data-parent=\"" + this._config.parent + "\"]";
1309
- var children = [].slice.call(parent.querySelectorAll(selector));
1310
- $$$1(children).each(function (i, element) {
1311
- _this3._addAriaAndCollapsedClass(Collapse._getTargetFromElement(element), [element]);
1312
- });
1313
- return parent;
1314
- };
1315
 
1316
- _proto._addAriaAndCollapsedClass = function _addAriaAndCollapsedClass(element, triggerArray) {
1317
- if (element) {
1318
- var isOpen = $$$1(element).hasClass(ClassName.SHOW);
 
 
 
 
1319
 
1320
- if (triggerArray.length) {
1321
- $$$1(triggerArray).toggleClass(ClassName.COLLAPSED, !isOpen).attr('aria-expanded', isOpen);
1322
- }
1323
- }
1324
- }; // Static
1325
 
 
 
 
 
1326
 
1327
- Collapse._getTargetFromElement = function _getTargetFromElement(element) {
1328
- var selector = Util.getSelectorFromElement(element);
1329
- return selector ? document.querySelector(selector) : null;
1330
- };
1331
 
1332
- Collapse._jQueryInterface = function _jQueryInterface(config) {
1333
- return this.each(function () {
1334
- var $this = $$$1(this);
1335
- var data = $this.data(DATA_KEY);
1336
 
1337
- var _config = _objectSpread({}, Default, $this.data(), typeof config === 'object' && config ? config : {});
 
 
 
1338
 
1339
- if (!data && _config.toggle && /show|hide/.test(config)) {
1340
- _config.toggle = false;
1341
- }
1342
 
1343
- if (!data) {
1344
- data = new Collapse(this, _config);
1345
- $this.data(DATA_KEY, data);
1346
- }
1347
 
1348
- if (typeof config === 'string') {
1349
- if (typeof data[config] === 'undefined') {
1350
- throw new TypeError("No method named \"" + config + "\"");
1351
- }
1352
 
1353
- data[config]();
 
 
1354
  }
1355
- });
1356
- };
1357
 
1358
- _createClass(Collapse, null, [{
1359
- key: "VERSION",
1360
- get: function get() {
1361
- return VERSION;
1362
- }
1363
- }, {
1364
- key: "Default",
1365
- get: function get() {
1366
- return Default;
1367
  }
1368
- }]);
 
1369
 
1370
- return Collapse;
1371
- }();
1372
- /**
1373
- * ------------------------------------------------------------------------
1374
- * Data Api implementation
1375
- * ------------------------------------------------------------------------
1376
- */
 
 
 
 
1377
 
 
 
 
 
 
 
 
1378
 
1379
- $$$1(document).on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {
1380
- // preventDefault only for <a> elements (which change the URL) not inside the collapsible element
1381
- if (event.currentTarget.tagName === 'A') {
1382
- event.preventDefault();
1383
- }
1384
 
1385
- var $trigger = $$$1(this);
1386
- var selector = Util.getSelectorFromElement(this);
1387
- var selectors = [].slice.call(document.querySelectorAll(selector));
1388
- $$$1(selectors).each(function () {
1389
- var $target = $$$1(this);
1390
- var data = $target.data(DATA_KEY);
1391
- var config = data ? 'toggle' : $trigger.data();
1392
 
1393
- Collapse._jQueryInterface.call($target, config);
1394
- });
1395
- });
1396
- /**
1397
- * ------------------------------------------------------------------------
1398
- * jQuery
1399
- * ------------------------------------------------------------------------
1400
- */
1401
 
1402
- $$$1.fn[NAME] = Collapse._jQueryInterface;
1403
- $$$1.fn[NAME].Constructor = Collapse;
 
 
 
 
 
 
1404
 
1405
- $$$1.fn[NAME].noConflict = function () {
1406
- $$$1.fn[NAME] = JQUERY_NO_CONFLICT;
1407
- return Collapse._jQueryInterface;
1408
- };
1409
 
1410
- return Collapse;
1411
- }($);
 
 
1412
 
1413
  /**!
1414
  * @fileOverview Kickass library to create and place poppers near their reference elements.
1415
- * @version 1.14.3
1416
  * @license
1417
  * Copyright (c) 2016 Federico Zivolo and contributors
1418
  *
@@ -1509,7 +1594,8 @@
1509
  return [];
1510
  }
1511
  // NOTE: 1 DOM access here
1512
- var css = getComputedStyle(element, null);
 
1513
  return property ? css[property] : css;
1514
  }
1515
 
@@ -1597,7 +1683,7 @@
1597
  var noOffsetParent = isIE(10) ? document.body : null;
1598
 
1599
  // NOTE: 1 DOM access here
1600
- var offsetParent = element.offsetParent;
1601
  // Skip hidden elements which don't have an offsetParent
1602
  while (offsetParent === noOffsetParent && element.nextElementSibling) {
1603
  offsetParent = (element = element.nextElementSibling).offsetParent;
@@ -1609,9 +1695,9 @@
1609
  return element ? element.ownerDocument.documentElement : document.documentElement;
1610
  }
1611
 
1612
- // .offsetParent will return the closest TD or TABLE in case
1613
  // no offsetParent is present, I hate this job...
1614
- if (['TD', 'TABLE'].indexOf(offsetParent.nodeName) !== -1 && getStyleComputedProperty(offsetParent, 'position') === 'static') {
1615
  return getOffsetParent(offsetParent);
1616
  }
1617
 
@@ -1749,10 +1835,10 @@
1749
  }
1750
 
1751
  function getSize(axis, body, html, computedStyle) {
1752
- return Math.max(body['offset' + axis], body['scroll' + axis], html['client' + axis], html['offset' + axis], html['scroll' + axis], isIE(10) ? html['offset' + axis] + computedStyle['margin' + (axis === 'Height' ? 'Top' : 'Left')] + computedStyle['margin' + (axis === 'Height' ? 'Bottom' : 'Right')] : 0);
1753
  }
1754
 
1755
- function getWindowSizes() {
1756
  var body = document.body;
1757
  var html = document.documentElement;
1758
  var computedStyle = isIE(10) && getComputedStyle(html);
@@ -1869,7 +1955,7 @@
1869
  };
1870
 
1871
  // subtract scrollbar size from sizes
1872
- var sizes = element.nodeName === 'HTML' ? getWindowSizes() : {};
1873
  var width = sizes.width || element.clientWidth || result.right - result.left;
1874
  var height = sizes.height || element.clientHeight || result.bottom - result.top;
1875
 
@@ -1904,7 +1990,7 @@
1904
  var borderLeftWidth = parseFloat(styles.borderLeftWidth, 10);
1905
 
1906
  // In cases where the parent is fixed, we must ignore negative scroll in offset calc
1907
- if (fixedPosition && parent.nodeName === 'HTML') {
1908
  parentRect.top = Math.max(parentRect.top, 0);
1909
  parentRect.left = Math.max(parentRect.left, 0);
1910
  }
@@ -2042,7 +2128,7 @@
2042
 
2043
  // In case of HTML, we need a different computation
2044
  if (boundariesNode.nodeName === 'HTML' && !isFixed(offsetParent)) {
2045
- var _getWindowSizes = getWindowSizes(),
2046
  height = _getWindowSizes.height,
2047
  width = _getWindowSizes.width;
2048
 
@@ -2057,10 +2143,12 @@
2057
  }
2058
 
2059
  // Add paddings
2060
- boundaries.left += padding;
2061
- boundaries.top += padding;
2062
- boundaries.right -= padding;
2063
- boundaries.bottom -= padding;
 
 
2064
 
2065
  return boundaries;
2066
  }
@@ -2157,9 +2245,10 @@
2157
  * @returns {Object} object containing width and height properties
2158
  */
2159
  function getOuterSizes(element) {
2160
- var styles = getComputedStyle(element);
2161
- var x = parseFloat(styles.marginTop) + parseFloat(styles.marginBottom);
2162
- var y = parseFloat(styles.marginLeft) + parseFloat(styles.marginRight);
 
2163
  var result = {
2164
  width: element.offsetWidth + y,
2165
  height: element.offsetHeight + x
@@ -2385,7 +2474,7 @@
2385
  }
2386
 
2387
  /**
2388
- * Destroy the popper
2389
  * @method
2390
  * @memberof Popper
2391
  */
@@ -2492,7 +2581,7 @@
2492
 
2493
  /**
2494
  * It will remove resize/scroll events and won't recalculate popper position
2495
- * when they are triggered. It also won't trigger onUpdate callback anymore,
2496
  * unless you call `update` method manually.
2497
  * @method
2498
  * @memberof Popper
@@ -2609,6 +2698,52 @@
2609
  return options;
2610
  }
2611
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2612
  /**
2613
  * @function
2614
  * @memberof Modifiers
@@ -2639,15 +2774,7 @@
2639
  position: popper.position
2640
  };
2641
 
2642
- // Avoid blurry text by using full pixel integers.
2643
- // For pixel-perfect positioning, top/bottom prefers rounded
2644
- // values, while left/right prefers floored values.
2645
- var offsets = {
2646
- left: Math.floor(popper.left),
2647
- top: Math.round(popper.top),
2648
- bottom: Math.round(popper.bottom),
2649
- right: Math.floor(popper.right)
2650
- };
2651
 
2652
  var sideA = x === 'bottom' ? 'top' : 'bottom';
2653
  var sideB = y === 'right' ? 'left' : 'right';
@@ -2669,12 +2796,22 @@
2669
  var left = void 0,
2670
  top = void 0;
2671
  if (sideA === 'bottom') {
2672
- top = -offsetParentRect.height + offsets.bottom;
 
 
 
 
 
 
2673
  } else {
2674
  top = offsets.top;
2675
  }
2676
  if (sideB === 'right') {
2677
- left = -offsetParentRect.width + offsets.right;
 
 
 
 
2678
  } else {
2679
  left = offsets.left;
2680
  }
@@ -2783,7 +2920,7 @@
2783
 
2784
  //
2785
  // extends keepTogether behavior making sure the popper and its
2786
- // reference have enough pixels in conjuction
2787
  //
2788
 
2789
  // top/left side
@@ -2853,7 +2990,7 @@
2853
  * - `top-end` (on top of reference, right aligned)
2854
  * - `right-start` (on right of reference, top aligned)
2855
  * - `bottom` (on bottom, centered)
2856
- * - `auto-right` (on the side with more space available, alignment depends by placement)
2857
  *
2858
  * @static
2859
  * @type {Array}
@@ -3395,7 +3532,7 @@
3395
  * The `offset` modifier can shift your popper on both its axis.
3396
  *
3397
  * It accepts the following units:
3398
- * - `px` or unitless, interpreted as pixels
3399
  * - `%` or `%r`, percentage relative to the length of the reference element
3400
  * - `%p`, percentage relative to the length of the popper element
3401
  * - `vw`, CSS viewport width unit
@@ -3403,7 +3540,7 @@
3403
  *
3404
  * For length is intended the main axis relative to the placement of the popper.<br />
3405
  * This means that if the placement is `top` or `bottom`, the length will be the
3406
- * `width`. In case of `left` or `right`, it will be the height.
3407
  *
3408
  * You can provide a single value (as `Number` or `String`), or a pair of values
3409
  * as `String` divided by a comma or one (or more) white spaces.<br />
@@ -3424,7 +3561,7 @@
3424
  * ```
3425
  * > **NB**: If you desire to apply offsets to your poppers in a way that may make them overlap
3426
  * > with their reference element, unfortunately, you will have to disable the `flip` modifier.
3427
- * > More on this [reading this issue](https://github.com/FezVrasta/popper.js/issues/373)
3428
  *
3429
  * @memberof modifiers
3430
  * @inner
@@ -3445,7 +3582,7 @@
3445
  /**
3446
  * Modifier used to prevent the popper from being positioned outside the boundary.
3447
  *
3448
- * An scenario exists where the reference itself is not within the boundaries.<br />
3449
  * We can say it has "escaped the boundaries" — or just "escaped".<br />
3450
  * In this case we need to decide whether the popper should either:
3451
  *
@@ -3475,23 +3612,23 @@
3475
  /**
3476
  * @prop {number} padding=5
3477
  * Amount of pixel used to define a minimum distance between the boundaries
3478
- * and the popper this makes sure the popper has always a little padding
3479
  * between the edges of its container
3480
  */
3481
  padding: 5,
3482
  /**
3483
  * @prop {String|HTMLElement} boundariesElement='scrollParent'
3484
- * Boundaries used by the modifier, can be `scrollParent`, `window`,
3485
  * `viewport` or any DOM element.
3486
  */
3487
  boundariesElement: 'scrollParent'
3488
  },
3489
 
3490
  /**
3491
- * Modifier used to make sure the reference and its popper stay near eachothers
3492
- * without leaving any gap between the two. Expecially useful when the arrow is
3493
- * enabled and you want to assure it to point to its reference element.
3494
- * It cares only about the first axis, you can still have poppers with margin
3495
  * between the popper and its reference element.
3496
  * @memberof modifiers
3497
  * @inner
@@ -3509,7 +3646,7 @@
3509
  * This modifier is used to move the `arrowElement` of the popper to make
3510
  * sure it is positioned between the reference element and its popper element.
3511
  * It will read the outer size of the `arrowElement` node to detect how many
3512
- * pixels of conjuction are needed.
3513
  *
3514
  * It has no effect if no `arrowElement` is provided.
3515
  * @memberof modifiers
@@ -3548,7 +3685,7 @@
3548
  * @prop {String|Array} behavior='flip'
3549
  * The behavior used to change the popper's placement. It can be one of
3550
  * `flip`, `clockwise`, `counterclockwise` or an array with a list of valid
3551
- * placements (with optional variations).
3552
  */
3553
  behavior: 'flip',
3554
  /**
@@ -3558,9 +3695,9 @@
3558
  padding: 5,
3559
  /**
3560
  * @prop {String|HTMLElement} boundariesElement='viewport'
3561
- * The element which will define the boundaries of the popper position,
3562
- * the popper will never be placed outside of the defined boundaries
3563
- * (except if keepTogether is enabled)
3564
  */
3565
  boundariesElement: 'viewport'
3566
  },
@@ -3624,8 +3761,8 @@
3624
  fn: computeStyle,
3625
  /**
3626
  * @prop {Boolean} gpuAcceleration=true
3627
- * If true, it uses the CSS 3d transformation to position the popper.
3628
- * Otherwise, it will use the `top` and `left` properties.
3629
  */
3630
  gpuAcceleration: true,
3631
  /**
@@ -3652,7 +3789,7 @@
3652
  * Note that if you disable this modifier, you must make sure the popper element
3653
  * has its position set to `absolute` before Popper.js can do its work!
3654
  *
3655
- * Just disable this modifier and define you own to achieve the desired effect.
3656
  *
3657
  * @memberof modifiers
3658
  * @inner
@@ -3669,27 +3806,27 @@
3669
  /**
3670
  * @deprecated since version 1.10.0, the property moved to `computeStyle` modifier
3671
  * @prop {Boolean} gpuAcceleration=true
3672
- * If true, it uses the CSS 3d transformation to position the popper.
3673
- * Otherwise, it will use the `top` and `left` properties.
3674
  */
3675
  gpuAcceleration: undefined
3676
  }
3677
  };
3678
 
3679
  /**
3680
- * The `dataObject` is an object containing all the informations used by Popper.js
3681
- * this object get passed to modifiers and to the `onCreate` and `onUpdate` callbacks.
3682
  * @name dataObject
3683
  * @property {Object} data.instance The Popper.js instance
3684
  * @property {String} data.placement Placement applied to popper
3685
  * @property {String} data.originalPlacement Placement originally defined on init
3686
  * @property {Boolean} data.flipped True if popper has been flipped by flip modifier
3687
- * @property {Boolean} data.hide True if the reference element is out of boundaries, useful to know when to hide the popper.
3688
  * @property {HTMLElement} data.arrowElement Node used as arrow by arrow modifier
3689
- * @property {Object} data.styles Any CSS property defined here will be applied to the popper, it expects the JavaScript nomenclature (eg. `marginBottom`)
3690
- * @property {Object} data.arrowStyles Any CSS property defined here will be applied to the popper arrow, it expects the JavaScript nomenclature (eg. `marginBottom`)
3691
  * @property {Object} data.boundaries Offsets of the popper boundaries
3692
- * @property {Object} data.offsets The measurements of popper, reference and arrow elements.
3693
  * @property {Object} data.offsets.popper `top`, `left`, `width`, `height` values
3694
  * @property {Object} data.offsets.reference `top`, `left`, `width`, `height` values
3695
  * @property {Object} data.offsets.arrow] `top` and `left` offsets, only one of them will be different from 0
@@ -3697,9 +3834,9 @@
3697
 
3698
  /**
3699
  * Default options provided to Popper.js constructor.<br />
3700
- * These can be overriden using the `options` argument of Popper.js.<br />
3701
- * To override an option, simply pass as 3rd argument an object with the same
3702
- * structure of this object, example:
3703
  * ```
3704
  * new Popper(ref, pop, {
3705
  * modifiers: {
@@ -3713,7 +3850,7 @@
3713
  */
3714
  var Defaults = {
3715
  /**
3716
- * Popper's placement
3717
  * @prop {Popper.placements} placement='bottom'
3718
  */
3719
  placement: 'bottom',
@@ -3725,7 +3862,7 @@
3725
  positionFixed: false,
3726
 
3727
  /**
3728
- * Whether events (resize, scroll) are initially enabled
3729
  * @prop {Boolean} eventsEnabled=true
3730
  */
3731
  eventsEnabled: true,
@@ -3739,17 +3876,17 @@
3739
 
3740
  /**
3741
  * Callback called when the popper is created.<br />
3742
- * By default, is set to no-op.<br />
3743
  * Access Popper.js instance with `data.instance`.
3744
  * @prop {onCreate}
3745
  */
3746
  onCreate: function onCreate() {},
3747
 
3748
  /**
3749
- * Callback called when the popper is updated, this callback is not called
3750
  * on the initialization/creation of the popper, but only on subsequent
3751
  * updates.<br />
3752
- * By default, is set to no-op.<br />
3753
  * Access Popper.js instance with `data.instance`.
3754
  * @prop {onUpdate}
3755
  */
@@ -3757,7 +3894,7 @@
3757
 
3758
  /**
3759
  * List of modifiers used to modify the offsets before they are applied to the popper.
3760
- * They provide most of the functionalities of Popper.js
3761
  * @prop {modifiers}
3762
  */
3763
  modifiers: modifiers
@@ -3777,10 +3914,10 @@
3777
  // Methods
3778
  var Popper = function () {
3779
  /**
3780
- * Create a new Popper.js instance
3781
  * @class Popper
3782
  * @param {HTMLElement|referenceObject} reference - The reference element used to position the popper
3783
- * @param {HTMLElement} popper - The HTML element used as popper.
3784
  * @param {Object} options - Your custom options to override the ones defined in [Defaults](#defaults)
3785
  * @return {Object} instance - The generated Popper.js instance
3786
  */
@@ -3876,7 +4013,7 @@
3876
  }
3877
 
3878
  /**
3879
- * Schedule an update, it will run on the next UI update available
3880
  * @method scheduleUpdate
3881
  * @memberof Popper
3882
  */
@@ -3913,7 +4050,7 @@
3913
  * new Popper(referenceObject, popperNode);
3914
  * ```
3915
  *
3916
- * NB: This feature isn't supported in Internet Explorer 10
3917
  * @name referenceObject
3918
  * @property {Function} data.getBoundingClientRect
3919
  * A function that returns a set of coordinates compatible with the native `getBoundingClientRect` method.
@@ -3929,2509 +4066,2728 @@
3929
  Popper.Defaults = Defaults;
3930
 
3931
  /**
3932
- * --------------------------------------------------------------------------
3933
- * Bootstrap (v4.1.3): dropdown.js
3934
- * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
3935
- * --------------------------------------------------------------------------
3936
  */
3937
 
3938
- var Dropdown = function ($$$1) {
3939
- /**
3940
- * ------------------------------------------------------------------------
3941
- * Constants
3942
- * ------------------------------------------------------------------------
3943
- */
3944
- var NAME = 'dropdown';
3945
- var VERSION = '4.1.3';
3946
- var DATA_KEY = 'bs.dropdown';
3947
- var EVENT_KEY = "." + DATA_KEY;
3948
- var DATA_API_KEY = '.data-api';
3949
- var JQUERY_NO_CONFLICT = $$$1.fn[NAME];
3950
- var ESCAPE_KEYCODE = 27; // KeyboardEvent.which value for Escape (Esc) key
3951
-
3952
- var SPACE_KEYCODE = 32; // KeyboardEvent.which value for space key
3953
-
3954
- var TAB_KEYCODE = 9; // KeyboardEvent.which value for tab key
3955
-
3956
- var ARROW_UP_KEYCODE = 38; // KeyboardEvent.which value for up arrow key
3957
-
3958
- var ARROW_DOWN_KEYCODE = 40; // KeyboardEvent.which value for down arrow key
3959
-
3960
- var RIGHT_MOUSE_BUTTON_WHICH = 3; // MouseEvent.which value for the right button (assuming a right-handed mouse)
3961
-
3962
- var REGEXP_KEYDOWN = new RegExp(ARROW_UP_KEYCODE + "|" + ARROW_DOWN_KEYCODE + "|" + ESCAPE_KEYCODE);
3963
- var Event = {
3964
- HIDE: "hide" + EVENT_KEY,
3965
- HIDDEN: "hidden" + EVENT_KEY,
3966
- SHOW: "show" + EVENT_KEY,
3967
- SHOWN: "shown" + EVENT_KEY,
3968
- CLICK: "click" + EVENT_KEY,
3969
- CLICK_DATA_API: "click" + EVENT_KEY + DATA_API_KEY,
3970
- KEYDOWN_DATA_API: "keydown" + EVENT_KEY + DATA_API_KEY,
3971
- KEYUP_DATA_API: "keyup" + EVENT_KEY + DATA_API_KEY
3972
- };
3973
- var ClassName = {
3974
- DISABLED: 'disabled',
3975
- SHOW: 'show',
3976
- DROPUP: 'dropup',
3977
- DROPRIGHT: 'dropright',
3978
- DROPLEFT: 'dropleft',
3979
- MENURIGHT: 'dropdown-menu-right',
3980
- MENULEFT: 'dropdown-menu-left',
3981
- POSITION_STATIC: 'position-static'
3982
- };
3983
- var Selector = {
3984
- DATA_TOGGLE: '[data-toggle="dropdown"]',
3985
- FORM_CHILD: '.dropdown form',
3986
- MENU: '.dropdown-menu',
3987
- NAVBAR_NAV: '.navbar-nav',
3988
- VISIBLE_ITEMS: '.dropdown-menu .dropdown-item:not(.disabled):not(:disabled)'
3989
- };
3990
- var AttachmentMap = {
3991
- TOP: 'top-start',
3992
- TOPEND: 'top-end',
3993
- BOTTOM: 'bottom-start',
3994
- BOTTOMEND: 'bottom-end',
3995
- RIGHT: 'right-start',
3996
- RIGHTEND: 'right-end',
3997
- LEFT: 'left-start',
3998
- LEFTEND: 'left-end'
3999
- };
4000
- var Default = {
4001
- offset: 0,
4002
- flip: true,
4003
- boundary: 'scrollParent',
4004
- reference: 'toggle',
4005
- display: 'dynamic'
4006
- };
4007
- var DefaultType = {
4008
- offset: '(number|string|function)',
4009
- flip: 'boolean',
4010
- boundary: '(string|element)',
4011
- reference: '(string|element)',
4012
- display: 'string'
4013
- /**
4014
- * ------------------------------------------------------------------------
4015
- * Class Definition
4016
- * ------------------------------------------------------------------------
4017
- */
4018
-
4019
- };
4020
-
4021
- var Dropdown =
4022
- /*#__PURE__*/
4023
- function () {
4024
- function Dropdown(element, config) {
4025
- this._element = element;
4026
- this._popper = null;
4027
- this._config = this._getConfig(config);
4028
- this._menu = this._getMenuElement();
4029
- this._inNavbar = this._detectNavbar();
4030
 
4031
- this._addEventListeners();
4032
- } // Getters
4033
 
 
4034
 
4035
- var _proto = Dropdown.prototype;
4036
 
4037
- // Public
4038
- _proto.toggle = function toggle() {
4039
- if (this._element.disabled || $$$1(this._element).hasClass(ClassName.DISABLED)) {
4040
- return;
4041
- }
4042
 
4043
- var parent = Dropdown._getParentFromElement(this._element);
4044
 
4045
- var isActive = $$$1(this._menu).hasClass(ClassName.SHOW);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
4046
 
4047
- Dropdown._clearMenus();
4048
 
4049
- if (isActive) {
4050
- return;
4051
- }
 
 
 
 
 
 
4052
 
4053
- var relatedTarget = {
4054
- relatedTarget: this._element
4055
- };
4056
- var showEvent = $$$1.Event(Event.SHOW, relatedTarget);
4057
- $$$1(parent).trigger(showEvent);
4058
 
4059
- if (showEvent.isDefaultPrevented()) {
4060
- return;
4061
- } // Disable totally Popper.js for Dropdown in Navbar
4062
 
 
4063
 
4064
- if (!this._inNavbar) {
4065
- /**
4066
- * Check for Popper dependency
4067
- * Popper - https://popper.js.org
4068
- */
4069
- if (typeof Popper === 'undefined') {
4070
- throw new TypeError('Bootstrap dropdown require Popper.js (https://popper.js.org)');
4071
- }
4072
 
4073
- var referenceElement = this._element;
4074
 
4075
- if (this._config.reference === 'parent') {
4076
- referenceElement = parent;
4077
- } else if (Util.isElement(this._config.reference)) {
4078
- referenceElement = this._config.reference; // Check if it's jQuery element
4079
 
4080
- if (typeof this._config.reference.jquery !== 'undefined') {
4081
- referenceElement = this._config.reference[0];
4082
- }
4083
- } // If boundary is not `scrollParent`, then set position to `static`
4084
- // to allow the menu to "escape" the scroll parent's boundaries
4085
- // https://github.com/twbs/bootstrap/issues/24251
4086
 
 
 
 
4087
 
4088
- if (this._config.boundary !== 'scrollParent') {
4089
- $$$1(parent).addClass(ClassName.POSITION_STATIC);
4090
- }
 
 
4091
 
4092
- this._popper = new Popper(referenceElement, this._menu, this._getPopperConfig());
4093
- } // If this is a touch-enabled device we add extra
4094
- // empty mouseover listeners to the body's immediate children;
4095
- // only needed because of broken event delegation on iOS
4096
- // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html
4097
 
4098
 
4099
- if ('ontouchstart' in document.documentElement && $$$1(parent).closest(Selector.NAVBAR_NAV).length === 0) {
4100
- $$$1(document.body).children().on('mouseover', null, $$$1.noop);
 
 
 
 
 
4101
  }
4102
 
4103
- this._element.focus();
4104
-
4105
- this._element.setAttribute('aria-expanded', true);
4106
-
4107
- $$$1(this._menu).toggleClass(ClassName.SHOW);
4108
- $$$1(parent).toggleClass(ClassName.SHOW).trigger($$$1.Event(Event.SHOWN, relatedTarget));
4109
- };
4110
-
4111
- _proto.dispose = function dispose() {
4112
- $$$1.removeData(this._element, DATA_KEY);
4113
- $$$1(this._element).off(EVENT_KEY);
4114
- this._element = null;
4115
- this._menu = null;
4116
 
4117
- if (this._popper !== null) {
4118
- this._popper.destroy();
 
 
4119
 
4120
- this._popper = null;
4121
- }
4122
- };
 
 
 
4123
 
4124
- _proto.update = function update() {
4125
- this._inNavbar = this._detectNavbar();
4126
 
4127
- if (this._popper !== null) {
4128
- this._popper.scheduleUpdate();
4129
  }
4130
- }; // Private
4131
 
 
 
 
 
 
4132
 
4133
- _proto._addEventListeners = function _addEventListeners() {
4134
- var _this = this;
4135
 
4136
- $$$1(this._element).on(Event.CLICK, function (event) {
4137
- event.preventDefault();
4138
- event.stopPropagation();
4139
 
4140
- _this.toggle();
4141
- });
4142
- };
4143
 
4144
- _proto._getConfig = function _getConfig(config) {
4145
- config = _objectSpread({}, this.constructor.Default, $$$1(this._element).data(), config);
4146
- Util.typeCheckConfig(NAME, config, this.constructor.DefaultType);
4147
- return config;
4148
- };
4149
 
4150
- _proto._getMenuElement = function _getMenuElement() {
4151
- if (!this._menu) {
4152
- var parent = Dropdown._getParentFromElement(this._element);
4153
 
4154
- if (parent) {
4155
- this._menu = parent.querySelector(Selector.MENU);
4156
- }
4157
- }
4158
 
4159
- return this._menu;
 
4160
  };
 
4161
 
4162
- _proto._getPlacement = function _getPlacement() {
4163
- var $parentDropdown = $$$1(this._element.parentNode);
4164
- var placement = AttachmentMap.BOTTOM; // Handle dropup
4165
 
4166
- if ($parentDropdown.hasClass(ClassName.DROPUP)) {
4167
- placement = AttachmentMap.TOP;
4168
 
4169
- if ($$$1(this._menu).hasClass(ClassName.MENURIGHT)) {
4170
- placement = AttachmentMap.TOPEND;
4171
- }
4172
- } else if ($parentDropdown.hasClass(ClassName.DROPRIGHT)) {
4173
- placement = AttachmentMap.RIGHT;
4174
- } else if ($parentDropdown.hasClass(ClassName.DROPLEFT)) {
4175
- placement = AttachmentMap.LEFT;
4176
- } else if ($$$1(this._menu).hasClass(ClassName.MENURIGHT)) {
4177
- placement = AttachmentMap.BOTTOMEND;
4178
- }
4179
 
4180
- return placement;
4181
- };
 
4182
 
4183
- _proto._detectNavbar = function _detectNavbar() {
4184
- return $$$1(this._element).closest('.navbar').length > 0;
 
 
 
 
 
4185
  };
 
4186
 
4187
- _proto._getPopperConfig = function _getPopperConfig() {
4188
- var _this2 = this;
4189
 
4190
- var offsetConf = {};
4191
 
4192
- if (typeof this._config.offset === 'function') {
4193
- offsetConf.fn = function (data) {
4194
- data.offsets = _objectSpread({}, data.offsets, _this2._config.offset(data.offsets) || {});
4195
- return data;
4196
- };
4197
- } else {
4198
- offsetConf.offset = this._config.offset;
4199
- }
4200
 
4201
- var popperConfig = {
4202
- placement: this._getPlacement(),
4203
- modifiers: {
4204
- offset: offsetConf,
4205
- flip: {
4206
- enabled: this._config.flip
4207
- },
4208
- preventOverflow: {
4209
- boundariesElement: this._config.boundary
4210
- }
4211
- } // Disable Popper.js if we have a static display
4212
 
4213
- };
 
 
 
 
4214
 
4215
- if (this._config.display === 'static') {
4216
- popperConfig.modifiers.applyStyle = {
4217
- enabled: false
4218
- };
4219
- }
4220
 
4221
- return popperConfig;
4222
- }; // Static
 
4223
 
 
 
4224
 
4225
- Dropdown._jQueryInterface = function _jQueryInterface(config) {
4226
- return this.each(function () {
4227
- var data = $$$1(this).data(DATA_KEY);
 
4228
 
4229
- var _config = typeof config === 'object' ? config : null;
4230
 
4231
- if (!data) {
4232
- data = new Dropdown(this, _config);
4233
- $$$1(this).data(DATA_KEY, data);
4234
- }
4235
 
4236
- if (typeof config === 'string') {
4237
- if (typeof data[config] === 'undefined') {
4238
- throw new TypeError("No method named \"" + config + "\"");
4239
- }
4240
 
4241
- data[config]();
4242
- }
4243
- });
4244
- };
4245
 
4246
- Dropdown._clearMenus = function _clearMenus(event) {
4247
- if (event && (event.which === RIGHT_MOUSE_BUTTON_WHICH || event.type === 'keyup' && event.which !== TAB_KEYCODE)) {
4248
- return;
4249
- }
 
4250
 
4251
- var toggles = [].slice.call(document.querySelectorAll(Selector.DATA_TOGGLE));
 
 
4252
 
4253
- for (var i = 0, len = toggles.length; i < len; i++) {
4254
- var parent = Dropdown._getParentFromElement(toggles[i]);
 
 
4255
 
4256
- var context = $$$1(toggles[i]).data(DATA_KEY);
4257
- var relatedTarget = {
4258
- relatedTarget: toggles[i]
4259
- };
4260
 
4261
- if (event && event.type === 'click') {
4262
- relatedTarget.clickEvent = event;
4263
- }
4264
 
4265
- if (!context) {
4266
- continue;
4267
- }
4268
 
4269
- var dropdownMenu = context._menu;
 
 
 
 
 
 
 
 
 
4270
 
4271
- if (!$$$1(parent).hasClass(ClassName.SHOW)) {
4272
- continue;
4273
- }
4274
 
4275
- if (event && (event.type === 'click' && /input|textarea/i.test(event.target.tagName) || event.type === 'keyup' && event.which === TAB_KEYCODE) && $$$1.contains(parent, event.target)) {
4276
- continue;
4277
- }
4278
 
4279
- var hideEvent = $$$1.Event(Event.HIDE, relatedTarget);
4280
- $$$1(parent).trigger(hideEvent);
4281
 
4282
- if (hideEvent.isDefaultPrevented()) {
4283
- continue;
4284
- } // If this is a touch-enabled device we remove the extra
4285
- // empty mouseover listeners we added for iOS support
4286
 
 
 
 
 
 
 
 
 
4287
 
4288
- if ('ontouchstart' in document.documentElement) {
4289
- $$$1(document.body).children().off('mouseover', null, $$$1.noop);
 
 
 
 
 
 
 
4290
  }
 
4291
 
4292
- toggles[i].setAttribute('aria-expanded', 'false');
4293
- $$$1(dropdownMenu).removeClass(ClassName.SHOW);
4294
- $$$1(parent).removeClass(ClassName.SHOW).trigger($$$1.Event(Event.HIDDEN, relatedTarget));
4295
- }
4296
  };
4297
 
4298
- Dropdown._getParentFromElement = function _getParentFromElement(element) {
4299
- var parent;
4300
- var selector = Util.getSelectorFromElement(element);
4301
-
4302
- if (selector) {
4303
- parent = document.querySelector(selector);
4304
- }
4305
 
4306
- return parent || element.parentNode;
4307
- }; // eslint-disable-next-line complexity
4308
 
4309
 
4310
- Dropdown._dataApiKeydownHandler = function _dataApiKeydownHandler(event) {
4311
- // If not input/textarea:
4312
- // - And not a key in REGEXP_KEYDOWN => not a dropdown command
4313
- // If input/textarea:
4314
- // - If space key => not a dropdown command
4315
- // - If key is other than escape
4316
- // - If key is not up or down => not a dropdown command
4317
- // - If trigger inside the menu => not a dropdown command
4318
- if (/input|textarea/i.test(event.target.tagName) ? event.which === SPACE_KEYCODE || event.which !== ESCAPE_KEYCODE && (event.which !== ARROW_DOWN_KEYCODE && event.which !== ARROW_UP_KEYCODE || $$$1(event.target).closest(Selector.MENU).length) : !REGEXP_KEYDOWN.test(event.which)) {
4319
- return;
4320
- }
4321
 
4322
- event.preventDefault();
4323
- event.stopPropagation();
4324
 
4325
- if (this.disabled || $$$1(this).hasClass(ClassName.DISABLED)) {
4326
- return;
 
4327
  }
4328
 
4329
- var parent = Dropdown._getParentFromElement(this);
4330
-
4331
- var isActive = $$$1(parent).hasClass(ClassName.SHOW);
4332
-
4333
- if (!isActive && (event.which !== ESCAPE_KEYCODE || event.which !== SPACE_KEYCODE) || isActive && (event.which === ESCAPE_KEYCODE || event.which === SPACE_KEYCODE)) {
4334
- if (event.which === ESCAPE_KEYCODE) {
4335
- var toggle = parent.querySelector(Selector.DATA_TOGGLE);
4336
- $$$1(toggle).trigger('focus');
4337
  }
4338
 
4339
- $$$1(this).trigger('click');
4340
- return;
4341
  }
 
 
4342
 
4343
- var items = [].slice.call(parent.querySelectorAll(Selector.VISIBLE_ITEMS));
 
 
 
4344
 
4345
- if (items.length === 0) {
4346
- return;
4347
- }
4348
 
4349
- var index = items.indexOf(event.target);
 
4350
 
4351
- if (event.which === ARROW_UP_KEYCODE && index > 0) {
4352
- // Up
4353
- index--;
4354
- }
4355
 
4356
- if (event.which === ARROW_DOWN_KEYCODE && index < items.length - 1) {
4357
- // Down
4358
- index++;
4359
  }
4360
 
4361
- if (index < 0) {
4362
- index = 0;
4363
  }
4364
 
4365
- items[index].focus();
4366
- };
4367
 
4368
- _createClass(Dropdown, null, [{
4369
- key: "VERSION",
4370
- get: function get() {
4371
- return VERSION;
4372
  }
4373
- }, {
4374
- key: "Default",
4375
- get: function get() {
4376
- return Default;
4377
- }
4378
- }, {
4379
- key: "DefaultType",
4380
- get: function get() {
4381
- return DefaultType;
4382
- }
4383
- }]);
4384
 
4385
- return Dropdown;
4386
- }();
4387
- /**
4388
- * ------------------------------------------------------------------------
4389
- * Data Api implementation
4390
- * ------------------------------------------------------------------------
4391
- */
4392
 
 
 
4393
 
4394
- $$$1(document).on(Event.KEYDOWN_DATA_API, Selector.DATA_TOGGLE, Dropdown._dataApiKeydownHandler).on(Event.KEYDOWN_DATA_API, Selector.MENU, Dropdown._dataApiKeydownHandler).on(Event.CLICK_DATA_API + " " + Event.KEYUP_DATA_API, Dropdown._clearMenus).on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {
4395
- event.preventDefault();
4396
- event.stopPropagation();
 
4397
 
4398
- Dropdown._jQueryInterface.call($$$1(this), 'toggle');
4399
- }).on(Event.CLICK_DATA_API, Selector.FORM_CHILD, function (e) {
4400
- e.stopPropagation();
4401
- });
4402
- /**
4403
- * ------------------------------------------------------------------------
4404
- * jQuery
4405
- * ------------------------------------------------------------------------
4406
- */
4407
 
4408
- $$$1.fn[NAME] = Dropdown._jQueryInterface;
4409
- $$$1.fn[NAME].Constructor = Dropdown;
 
4410
 
4411
- $$$1.fn[NAME].noConflict = function () {
4412
- $$$1.fn[NAME] = JQUERY_NO_CONFLICT;
4413
- return Dropdown._jQueryInterface;
 
4414
  };
4415
 
4416
- return Dropdown;
4417
- }($, Popper);
 
4418
 
4419
- /**
4420
- * --------------------------------------------------------------------------
4421
- * Bootstrap (v4.1.3): modal.js
4422
- * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
4423
- * --------------------------------------------------------------------------
4424
- */
4425
 
4426
- var Modal = function ($$$1) {
4427
- /**
4428
- * ------------------------------------------------------------------------
4429
- * Constants
4430
- * ------------------------------------------------------------------------
4431
- */
4432
- var NAME = 'modal';
4433
- var VERSION = '4.1.3';
4434
- var DATA_KEY = 'bs.modal';
4435
- var EVENT_KEY = "." + DATA_KEY;
4436
- var DATA_API_KEY = '.data-api';
4437
- var JQUERY_NO_CONFLICT = $$$1.fn[NAME];
4438
- var ESCAPE_KEYCODE = 27; // KeyboardEvent.which value for Escape (Esc) key
4439
-
4440
- var Default = {
4441
- backdrop: true,
4442
- keyboard: true,
4443
- focus: true,
4444
- show: true
4445
- };
4446
- var DefaultType = {
4447
- backdrop: '(boolean|string)',
4448
- keyboard: 'boolean',
4449
- focus: 'boolean',
4450
- show: 'boolean'
4451
- };
4452
- var Event = {
4453
- HIDE: "hide" + EVENT_KEY,
4454
- HIDDEN: "hidden" + EVENT_KEY,
4455
- SHOW: "show" + EVENT_KEY,
4456
- SHOWN: "shown" + EVENT_KEY,
4457
- FOCUSIN: "focusin" + EVENT_KEY,
4458
- RESIZE: "resize" + EVENT_KEY,
4459
- CLICK_DISMISS: "click.dismiss" + EVENT_KEY,
4460
- KEYDOWN_DISMISS: "keydown.dismiss" + EVENT_KEY,
4461
- MOUSEUP_DISMISS: "mouseup.dismiss" + EVENT_KEY,
4462
- MOUSEDOWN_DISMISS: "mousedown.dismiss" + EVENT_KEY,
4463
- CLICK_DATA_API: "click" + EVENT_KEY + DATA_API_KEY
4464
- };
4465
- var ClassName = {
4466
- SCROLLBAR_MEASURER: 'modal-scrollbar-measure',
4467
- BACKDROP: 'modal-backdrop',
4468
- OPEN: 'modal-open',
4469
- FADE: 'fade',
4470
- SHOW: 'show'
4471
- };
4472
- var Selector = {
4473
- DIALOG: '.modal-dialog',
4474
- DATA_TOGGLE: '[data-toggle="modal"]',
4475
- DATA_DISMISS: '[data-dismiss="modal"]',
4476
- FIXED_CONTENT: '.fixed-top, .fixed-bottom, .is-fixed, .sticky-top',
4477
- STICKY_CONTENT: '.sticky-top'
4478
- /**
4479
- * ------------------------------------------------------------------------
4480
- * Class Definition
4481
- * ------------------------------------------------------------------------
4482
- */
4483
 
4484
- };
4485
 
4486
- var Modal =
4487
- /*#__PURE__*/
4488
- function () {
4489
- function Modal(element, config) {
4490
- this._config = this._getConfig(config);
4491
- this._element = element;
4492
- this._dialog = element.querySelector(Selector.DIALOG);
4493
- this._backdrop = null;
4494
- this._isShown = false;
4495
- this._isBodyOverflowing = false;
4496
- this._ignoreBackdropClick = false;
4497
- this._scrollbarWidth = 0;
4498
- } // Getters
4499
 
 
 
4500
 
4501
- var _proto = Modal.prototype;
 
 
4502
 
4503
- // Public
4504
- _proto.toggle = function toggle(relatedTarget) {
4505
- return this._isShown ? this.hide() : this.show(relatedTarget);
4506
- };
4507
 
4508
- _proto.show = function show(relatedTarget) {
4509
- var _this = this;
4510
 
4511
- if (this._isTransitioning || this._isShown) {
4512
- return;
 
 
4513
  }
4514
 
4515
- if ($$$1(this._element).hasClass(ClassName.FADE)) {
4516
- this._isTransitioning = true;
4517
- }
4518
 
4519
- var showEvent = $$$1.Event(Event.SHOW, {
4520
- relatedTarget: relatedTarget
4521
- });
4522
- $$$1(this._element).trigger(showEvent);
4523
 
4524
- if (this._isShown || showEvent.isDefaultPrevented()) {
4525
- return;
4526
- }
4527
 
4528
- this._isShown = true;
4529
 
4530
- this._checkScrollbar();
 
 
 
4531
 
4532
- this._setScrollbar();
 
 
 
4533
 
4534
- this._adjustDialog();
 
 
4535
 
4536
- $$$1(document.body).addClass(ClassName.OPEN);
 
4537
 
4538
- this._setEscapeEvent();
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
4539
 
4540
- this._setResizeEvent();
 
 
 
 
 
 
4541
 
4542
- $$$1(this._element).on(Event.CLICK_DISMISS, Selector.DATA_DISMISS, function (event) {
4543
- return _this.hide(event);
4544
- });
4545
- $$$1(this._dialog).on(Event.MOUSEDOWN_DISMISS, function () {
4546
- $$$1(_this._element).one(Event.MOUSEUP_DISMISS, function (event) {
4547
- if ($$$1(event.target).is(_this._element)) {
4548
- _this._ignoreBackdropClick = true;
4549
- }
4550
- });
4551
- });
4552
 
4553
- this._showBackdrop(function () {
4554
- return _this._showElement(relatedTarget);
4555
- });
4556
- };
4557
 
4558
- _proto.hide = function hide(event) {
4559
- var _this2 = this;
 
 
 
 
 
 
 
4560
 
4561
- if (event) {
4562
- event.preventDefault();
4563
- }
4564
 
4565
- if (this._isTransitioning || !this._isShown) {
4566
- return;
4567
- }
 
4568
 
4569
- var hideEvent = $$$1.Event(Event.HIDE);
4570
- $$$1(this._element).trigger(hideEvent);
 
 
 
4571
 
4572
- if (!this._isShown || hideEvent.isDefaultPrevented()) {
4573
- return;
4574
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
4575
 
4576
- this._isShown = false;
4577
- var transition = $$$1(this._element).hasClass(ClassName.FADE);
4578
 
4579
- if (transition) {
4580
- this._isTransitioning = true;
4581
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
4582
 
4583
- this._setEscapeEvent();
 
4584
 
4585
- this._setResizeEvent();
 
 
4586
 
4587
- $$$1(document).off(Event.FOCUSIN);
4588
- $$$1(this._element).removeClass(ClassName.SHOW);
4589
- $$$1(this._element).off(Event.CLICK_DISMISS);
4590
- $$$1(this._dialog).off(Event.MOUSEDOWN_DISMISS);
4591
 
4592
- if (transition) {
4593
- var transitionDuration = Util.getTransitionDurationFromElement(this._element);
4594
- $$$1(this._element).one(Util.TRANSITION_END, function (event) {
4595
- return _this2._hideModal(event);
4596
- }).emulateTransitionEnd(transitionDuration);
4597
- } else {
4598
- this._hideModal();
4599
- }
4600
- };
4601
 
4602
- _proto.dispose = function dispose() {
4603
- $$$1.removeData(this._element, DATA_KEY);
4604
- $$$1(window, document, this._element, this._backdrop).off(EVENT_KEY);
4605
- this._config = null;
4606
- this._element = null;
4607
- this._dialog = null;
4608
- this._backdrop = null;
4609
- this._isShown = null;
4610
- this._isBodyOverflowing = null;
4611
- this._ignoreBackdropClick = null;
4612
- this._scrollbarWidth = null;
4613
- };
4614
 
4615
- _proto.handleUpdate = function handleUpdate() {
4616
- this._adjustDialog();
4617
- }; // Private
4618
 
 
4619
 
4620
- _proto._getConfig = function _getConfig(config) {
4621
- config = _objectSpread({}, Default, config);
4622
- Util.typeCheckConfig(NAME, config, DefaultType);
4623
- return config;
4624
- };
4625
 
4626
- _proto._showElement = function _showElement(relatedTarget) {
4627
- var _this3 = this;
4628
 
4629
- var transition = $$$1(this._element).hasClass(ClassName.FADE);
4630
 
4631
- if (!this._element.parentNode || this._element.parentNode.nodeType !== Node.ELEMENT_NODE) {
4632
- // Don't move modal's DOM position
4633
- document.body.appendChild(this._element);
4634
- }
4635
 
4636
- this._element.style.display = 'block';
 
 
 
 
 
 
 
 
 
4637
 
4638
- this._element.removeAttribute('aria-hidden');
 
 
 
4639
 
4640
- this._element.scrollTop = 0;
 
4641
 
4642
- if (transition) {
4643
- Util.reflow(this._element);
4644
- }
4645
 
4646
- $$$1(this._element).addClass(ClassName.SHOW);
 
 
4647
 
4648
- if (this._config.focus) {
4649
- this._enforceFocus();
4650
- }
4651
 
4652
- var shownEvent = $$$1.Event(Event.SHOWN, {
4653
- relatedTarget: relatedTarget
4654
- });
4655
 
4656
- var transitionComplete = function transitionComplete() {
4657
- if (_this3._config.focus) {
4658
- _this3._element.focus();
4659
- }
4660
 
4661
- _this3._isTransitioning = false;
4662
- $$$1(_this3._element).trigger(shownEvent);
4663
- };
4664
 
4665
- if (transition) {
4666
- var transitionDuration = Util.getTransitionDurationFromElement(this._element);
4667
- $$$1(this._dialog).one(Util.TRANSITION_END, transitionComplete).emulateTransitionEnd(transitionDuration);
4668
- } else {
4669
- transitionComplete();
4670
- }
4671
- };
4672
 
4673
- _proto._enforceFocus = function _enforceFocus() {
4674
- var _this4 = this;
4675
 
4676
- $$$1(document).off(Event.FOCUSIN) // Guard against infinite focus loop
4677
- .on(Event.FOCUSIN, function (event) {
4678
- if (document !== event.target && _this4._element !== event.target && $$$1(_this4._element).has(event.target).length === 0) {
4679
- _this4._element.focus();
4680
- }
4681
- });
4682
- };
4683
 
4684
- _proto._setEscapeEvent = function _setEscapeEvent() {
4685
- var _this5 = this;
 
 
 
 
 
 
 
4686
 
4687
- if (this._isShown && this._config.keyboard) {
4688
- $$$1(this._element).on(Event.KEYDOWN_DISMISS, function (event) {
4689
- if (event.which === ESCAPE_KEYCODE) {
4690
- event.preventDefault();
 
 
 
 
 
4691
 
4692
- _this5.hide();
4693
- }
4694
- });
4695
- } else if (!this._isShown) {
4696
- $$$1(this._element).off(Event.KEYDOWN_DISMISS);
4697
- }
4698
- };
 
 
 
 
 
4699
 
4700
- _proto._setResizeEvent = function _setResizeEvent() {
4701
- var _this6 = this;
 
4702
 
4703
- if (this._isShown) {
4704
- $$$1(window).on(Event.RESIZE, function (event) {
4705
- return _this6.handleUpdate(event);
4706
- });
4707
- } else {
4708
- $$$1(window).off(Event.RESIZE);
4709
- }
4710
- };
4711
 
4712
- _proto._hideModal = function _hideModal() {
4713
- var _this7 = this;
 
 
 
4714
 
4715
- this._element.style.display = 'none';
 
4716
 
4717
- this._element.setAttribute('aria-hidden', true);
4718
 
4719
- this._isTransitioning = false;
 
 
 
4720
 
4721
- this._showBackdrop(function () {
4722
- $$$1(document.body).removeClass(ClassName.OPEN);
4723
 
4724
- _this7._resetAdjustments();
4725
 
4726
- _this7._resetScrollbar();
4727
 
4728
- $$$1(_this7._element).trigger(Event.HIDDEN);
4729
- });
4730
- };
4731
 
4732
- _proto._removeBackdrop = function _removeBackdrop() {
4733
- if (this._backdrop) {
4734
- $$$1(this._backdrop).remove();
4735
- this._backdrop = null;
4736
- }
4737
- };
4738
 
4739
- _proto._showBackdrop = function _showBackdrop(callback) {
4740
- var _this8 = this;
4741
 
4742
- var animate = $$$1(this._element).hasClass(ClassName.FADE) ? ClassName.FADE : '';
 
 
4743
 
4744
- if (this._isShown && this._config.backdrop) {
4745
- this._backdrop = document.createElement('div');
4746
- this._backdrop.className = ClassName.BACKDROP;
4747
 
4748
- if (animate) {
4749
- this._backdrop.classList.add(animate);
4750
- }
 
4751
 
4752
- $$$1(this._backdrop).appendTo(document.body);
4753
- $$$1(this._element).on(Event.CLICK_DISMISS, function (event) {
4754
- if (_this8._ignoreBackdropClick) {
4755
- _this8._ignoreBackdropClick = false;
4756
- return;
4757
- }
4758
 
4759
- if (event.target !== event.currentTarget) {
4760
- return;
4761
- }
 
 
 
 
4762
 
4763
- if (_this8._config.backdrop === 'static') {
4764
- _this8._element.focus();
4765
- } else {
4766
- _this8.hide();
4767
- }
4768
- });
4769
 
4770
- if (animate) {
4771
- Util.reflow(this._backdrop);
4772
- }
 
 
 
 
4773
 
4774
- $$$1(this._backdrop).addClass(ClassName.SHOW);
 
4775
 
4776
- if (!callback) {
4777
- return;
4778
- }
 
4779
 
4780
- if (!animate) {
4781
- callback();
4782
- return;
4783
  }
 
 
 
 
 
4784
 
4785
- var backdropTransitionDuration = Util.getTransitionDurationFromElement(this._backdrop);
4786
- $$$1(this._backdrop).one(Util.TRANSITION_END, callback).emulateTransitionEnd(backdropTransitionDuration);
4787
- } else if (!this._isShown && this._backdrop) {
4788
- $$$1(this._backdrop).removeClass(ClassName.SHOW);
4789
-
4790
- var callbackRemove = function callbackRemove() {
4791
- _this8._removeBackdrop();
4792
-
4793
- if (callback) {
4794
- callback();
4795
- }
4796
- };
4797
 
4798
- if ($$$1(this._element).hasClass(ClassName.FADE)) {
4799
- var _backdropTransitionDuration = Util.getTransitionDurationFromElement(this._backdrop);
 
 
 
 
 
 
4800
 
4801
- $$$1(this._backdrop).one(Util.TRANSITION_END, callbackRemove).emulateTransitionEnd(_backdropTransitionDuration);
4802
- } else {
4803
- callbackRemove();
4804
- }
4805
- } else if (callback) {
4806
- callback();
4807
- }
4808
- }; // ----------------------------------------------------------------------
4809
- // the following methods are used to handle overflowing modals
4810
- // todo (fat): these should probably be refactored out of modal.js
4811
- // ----------------------------------------------------------------------
4812
 
 
4813
 
4814
- _proto._adjustDialog = function _adjustDialog() {
4815
- var isModalOverflowing = this._element.scrollHeight > document.documentElement.clientHeight;
4816
 
4817
- if (!this._isBodyOverflowing && isModalOverflowing) {
4818
- this._element.style.paddingLeft = this._scrollbarWidth + "px";
4819
- }
4820
 
4821
- if (this._isBodyOverflowing && !isModalOverflowing) {
4822
- this._element.style.paddingRight = this._scrollbarWidth + "px";
4823
- }
4824
- };
4825
 
4826
- _proto._resetAdjustments = function _resetAdjustments() {
4827
- this._element.style.paddingLeft = '';
4828
- this._element.style.paddingRight = '';
4829
- };
4830
 
4831
- _proto._checkScrollbar = function _checkScrollbar() {
4832
- var rect = document.body.getBoundingClientRect();
4833
- this._isBodyOverflowing = rect.left + rect.right < window.innerWidth;
4834
- this._scrollbarWidth = this._getScrollbarWidth();
4835
- };
4836
 
4837
- _proto._setScrollbar = function _setScrollbar() {
4838
- var _this9 = this;
4839
-
4840
- if (this._isBodyOverflowing) {
4841
- // Note: DOMNode.style.paddingRight returns the actual value or '' if not set
4842
- // while $(DOMNode).css('padding-right') returns the calculated value or 0 if not set
4843
- var fixedContent = [].slice.call(document.querySelectorAll(Selector.FIXED_CONTENT));
4844
- var stickyContent = [].slice.call(document.querySelectorAll(Selector.STICKY_CONTENT)); // Adjust fixed content padding
4845
-
4846
- $$$1(fixedContent).each(function (index, element) {
4847
- var actualPadding = element.style.paddingRight;
4848
- var calculatedPadding = $$$1(element).css('padding-right');
4849
- $$$1(element).data('padding-right', actualPadding).css('padding-right', parseFloat(calculatedPadding) + _this9._scrollbarWidth + "px");
4850
- }); // Adjust sticky content margin
4851
-
4852
- $$$1(stickyContent).each(function (index, element) {
4853
- var actualMargin = element.style.marginRight;
4854
- var calculatedMargin = $$$1(element).css('margin-right');
4855
- $$$1(element).data('margin-right', actualMargin).css('margin-right', parseFloat(calculatedMargin) - _this9._scrollbarWidth + "px");
4856
- }); // Adjust body padding
4857
-
4858
- var actualPadding = document.body.style.paddingRight;
4859
- var calculatedPadding = $$$1(document.body).css('padding-right');
4860
- $$$1(document.body).data('padding-right', actualPadding).css('padding-right', parseFloat(calculatedPadding) + this._scrollbarWidth + "px");
4861
- }
4862
- };
4863
 
4864
- _proto._resetScrollbar = function _resetScrollbar() {
4865
- // Restore fixed content padding
4866
- var fixedContent = [].slice.call(document.querySelectorAll(Selector.FIXED_CONTENT));
4867
- $$$1(fixedContent).each(function (index, element) {
4868
- var padding = $$$1(element).data('padding-right');
4869
- $$$1(element).removeData('padding-right');
4870
- element.style.paddingRight = padding ? padding : '';
4871
- }); // Restore sticky content
4872
-
4873
- var elements = [].slice.call(document.querySelectorAll("" + Selector.STICKY_CONTENT));
4874
- $$$1(elements).each(function (index, element) {
4875
- var margin = $$$1(element).data('margin-right');
4876
-
4877
- if (typeof margin !== 'undefined') {
4878
- $$$1(element).css('margin-right', margin).removeData('margin-right');
4879
- }
4880
- }); // Restore body padding
4881
 
4882
- var padding = $$$1(document.body).data('padding-right');
4883
- $$$1(document.body).removeData('padding-right');
4884
- document.body.style.paddingRight = padding ? padding : '';
4885
- };
 
 
4886
 
4887
- _proto._getScrollbarWidth = function _getScrollbarWidth() {
4888
- // thx d.walsh
4889
- var scrollDiv = document.createElement('div');
4890
- scrollDiv.className = ClassName.SCROLLBAR_MEASURER;
4891
- document.body.appendChild(scrollDiv);
4892
- var scrollbarWidth = scrollDiv.getBoundingClientRect().width - scrollDiv.clientWidth;
4893
- document.body.removeChild(scrollDiv);
4894
- return scrollbarWidth;
4895
- }; // Static
4896
 
 
4897
 
4898
- Modal._jQueryInterface = function _jQueryInterface(config, relatedTarget) {
4899
- return this.each(function () {
4900
- var data = $$$1(this).data(DATA_KEY);
4901
 
4902
- var _config = _objectSpread({}, Default, $$$1(this).data(), typeof config === 'object' && config ? config : {});
 
 
4903
 
4904
- if (!data) {
4905
- data = new Modal(this, _config);
4906
- $$$1(this).data(DATA_KEY, data);
 
 
4907
  }
4908
 
4909
- if (typeof config === 'string') {
4910
- if (typeof data[config] === 'undefined') {
4911
- throw new TypeError("No method named \"" + config + "\"");
4912
- }
4913
 
4914
- data[config](relatedTarget);
4915
- } else if (_config.show) {
4916
- data.show(relatedTarget);
 
4917
  }
4918
  });
4919
- };
4920
 
4921
- _createClass(Modal, null, [{
4922
- key: "VERSION",
4923
- get: function get() {
4924
- return VERSION;
4925
  }
4926
- }, {
4927
- key: "Default",
4928
- get: function get() {
4929
- return Default;
4930
- }
4931
- }]);
4932
 
4933
- return Modal;
4934
- }();
4935
- /**
4936
- * ------------------------------------------------------------------------
4937
- * Data Api implementation
4938
- * ------------------------------------------------------------------------
4939
- */
4940
 
 
 
 
4941
 
4942
- $$$1(document).on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {
4943
- var _this10 = this;
 
 
4944
 
4945
- var target;
4946
- var selector = Util.getSelectorFromElement(this);
 
 
4947
 
4948
- if (selector) {
4949
- target = document.querySelector(selector);
4950
- }
4951
 
4952
- var config = $$$1(target).data(DATA_KEY) ? 'toggle' : _objectSpread({}, $$$1(target).data(), $$$1(this).data());
 
 
 
4953
 
4954
- if (this.tagName === 'A' || this.tagName === 'AREA') {
4955
- event.preventDefault();
4956
- }
4957
 
4958
- var $target = $$$1(target).one(Event.SHOW, function (showEvent) {
4959
- if (showEvent.isDefaultPrevented()) {
4960
- // Only register focus restorer if modal will actually get shown
4961
- return;
4962
  }
 
 
 
 
 
 
 
4963
 
4964
- $target.one(Event.HIDDEN, function () {
4965
- if ($$$1(_this10).is(':visible')) {
4966
- _this10.focus();
4967
- }
4968
- });
4969
- });
4970
 
4971
- Modal._jQueryInterface.call($$$1(target), config, this);
4972
- });
4973
- /**
4974
- * ------------------------------------------------------------------------
4975
- * jQuery
4976
- * ------------------------------------------------------------------------
4977
- */
4978
 
4979
- $$$1.fn[NAME] = Modal._jQueryInterface;
4980
- $$$1.fn[NAME].Constructor = Modal;
 
4981
 
4982
- $$$1.fn[NAME].noConflict = function () {
4983
- $$$1.fn[NAME] = JQUERY_NO_CONFLICT;
4984
- return Modal._jQueryInterface;
4985
  };
4986
 
4987
- return Modal;
4988
- }($);
4989
-
4990
- /**
4991
- * --------------------------------------------------------------------------
4992
- * Bootstrap (v4.1.3): tooltip.js
4993
- * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
4994
- * --------------------------------------------------------------------------
4995
- */
4996
-
4997
- var Tooltip = function ($$$1) {
4998
- /**
4999
- * ------------------------------------------------------------------------
5000
- * Constants
5001
- * ------------------------------------------------------------------------
5002
- */
5003
- var NAME = 'tooltip';
5004
- var VERSION = '4.1.3';
5005
- var DATA_KEY = 'bs.tooltip';
5006
- var EVENT_KEY = "." + DATA_KEY;
5007
- var JQUERY_NO_CONFLICT = $$$1.fn[NAME];
5008
- var CLASS_PREFIX = 'bs-tooltip';
5009
- var BSCLS_PREFIX_REGEX = new RegExp("(^|\\s)" + CLASS_PREFIX + "\\S+", 'g');
5010
- var DefaultType = {
5011
- animation: 'boolean',
5012
- template: 'string',
5013
- title: '(string|element|function)',
5014
- trigger: 'string',
5015
- delay: '(number|object)',
5016
- html: 'boolean',
5017
- selector: '(string|boolean)',
5018
- placement: '(string|function)',
5019
- offset: '(number|string)',
5020
- container: '(string|element|boolean)',
5021
- fallbackPlacement: '(string|array)',
5022
- boundary: '(string|element)'
5023
- };
5024
- var AttachmentMap = {
5025
- AUTO: 'auto',
5026
- TOP: 'top',
5027
- RIGHT: 'right',
5028
- BOTTOM: 'bottom',
5029
- LEFT: 'left'
5030
- };
5031
- var Default = {
5032
- animation: true,
5033
- template: '<div class="tooltip" role="tooltip">' + '<div class="arrow"></div>' + '<div class="tooltip-inner"></div></div>',
5034
- trigger: 'hover focus',
5035
- title: '',
5036
- delay: 0,
5037
- html: false,
5038
- selector: false,
5039
- placement: 'top',
5040
- offset: 0,
5041
- container: false,
5042
- fallbackPlacement: 'flip',
5043
- boundary: 'scrollParent'
5044
- };
5045
- var HoverState = {
5046
- SHOW: 'show',
5047
- OUT: 'out'
5048
- };
5049
- var Event = {
5050
- HIDE: "hide" + EVENT_KEY,
5051
- HIDDEN: "hidden" + EVENT_KEY,
5052
- SHOW: "show" + EVENT_KEY,
5053
- SHOWN: "shown" + EVENT_KEY,
5054
- INSERTED: "inserted" + EVENT_KEY,
5055
- CLICK: "click" + EVENT_KEY,
5056
- FOCUSIN: "focusin" + EVENT_KEY,
5057
- FOCUSOUT: "focusout" + EVENT_KEY,
5058
- MOUSEENTER: "mouseenter" + EVENT_KEY,
5059
- MOUSELEAVE: "mouseleave" + EVENT_KEY
5060
- };
5061
- var ClassName = {
5062
- FADE: 'fade',
5063
- SHOW: 'show'
5064
- };
5065
- var Selector = {
5066
- TOOLTIP: '.tooltip',
5067
- TOOLTIP_INNER: '.tooltip-inner',
5068
- ARROW: '.arrow'
5069
  };
5070
- var Trigger = {
5071
- HOVER: 'hover',
5072
- FOCUS: 'focus',
5073
- CLICK: 'click',
5074
- MANUAL: 'manual'
5075
- /**
5076
- * ------------------------------------------------------------------------
5077
- * Class Definition
5078
- * ------------------------------------------------------------------------
5079
- */
5080
 
 
 
 
 
5081
  };
5082
 
5083
- var Tooltip =
5084
- /*#__PURE__*/
5085
- function () {
5086
- function Tooltip(element, config) {
5087
- /**
5088
- * Check for Popper dependency
5089
- * Popper - https://popper.js.org
5090
- */
5091
- if (typeof Popper === 'undefined') {
5092
- throw new TypeError('Bootstrap tooltips require Popper.js (https://popper.js.org)');
5093
- } // private
 
 
 
 
 
 
 
 
 
 
 
 
 
 
5094
 
 
 
5095
 
5096
- this._isEnabled = true;
5097
- this._timeout = 0;
5098
- this._hoverState = '';
5099
- this._activeTrigger = {};
5100
- this._popper = null; // Protected
 
 
 
5101
 
5102
- this.element = element;
5103
- this.config = this._getConfig(config);
5104
- this.tip = null;
5105
 
5106
- this._setListeners();
5107
- } // Getters
 
 
5108
 
 
 
 
 
5109
 
5110
- var _proto = Tooltip.prototype;
 
 
 
 
 
 
 
 
5111
 
5112
- // Public
5113
- _proto.enable = function enable() {
5114
- this._isEnabled = true;
5115
- };
5116
 
5117
- _proto.disable = function disable() {
5118
- this._isEnabled = false;
5119
- };
5120
 
5121
- _proto.toggleEnabled = function toggleEnabled() {
5122
- this._isEnabled = !this._isEnabled;
5123
- };
5124
 
5125
- _proto.toggle = function toggle(event) {
5126
- if (!this._isEnabled) {
5127
- return;
5128
  }
5129
 
5130
- if (event) {
5131
- var dataKey = this.constructor.DATA_KEY;
5132
- var context = $$$1(event.currentTarget).data(dataKey);
5133
-
5134
- if (!context) {
5135
- context = new this.constructor(event.currentTarget, this._getDelegateConfig());
5136
- $$$1(event.currentTarget).data(dataKey, context);
5137
  }
5138
 
5139
- context._activeTrigger.click = !context._activeTrigger.click;
 
 
 
 
 
5140
 
5141
- if (context._isWithActiveTrigger()) {
5142
- context._enter(null, context);
5143
- } else {
5144
- context._leave(null, context);
5145
- }
5146
- } else {
5147
- if ($$$1(this.getTipElement()).hasClass(ClassName.SHOW)) {
5148
- this._leave(null, this);
 
 
 
5149
 
5150
- return;
5151
- }
 
 
 
 
 
5152
 
5153
- this._enter(null, this);
5154
- }
5155
- };
5156
 
5157
- _proto.dispose = function dispose() {
5158
- clearTimeout(this._timeout);
5159
- $$$1.removeData(this.element, this.constructor.DATA_KEY);
5160
- $$$1(this.element).off(this.constructor.EVENT_KEY);
5161
- $$$1(this.element).closest('.modal').off('hide.bs.modal');
5162
 
5163
- if (this.tip) {
5164
- $$$1(this.tip).remove();
5165
- }
5166
 
5167
- this._isEnabled = null;
5168
- this._timeout = null;
5169
- this._hoverState = null;
5170
- this._activeTrigger = null;
5171
 
5172
- if (this._popper !== null) {
5173
- this._popper.destroy();
5174
- }
5175
 
5176
- this._popper = null;
5177
- this.element = null;
5178
- this.config = null;
5179
- this.tip = null;
5180
- };
5181
 
5182
- _proto.show = function show() {
5183
- var _this = this;
 
 
 
5184
 
5185
- if ($$$1(this.element).css('display') === 'none') {
5186
- throw new Error('Please use show on visible elements');
 
5187
  }
 
 
5188
 
5189
- var showEvent = $$$1.Event(this.constructor.Event.SHOW);
 
 
 
 
 
 
5190
 
5191
- if (this.isWithContent() && this._isEnabled) {
5192
- $$$1(this.element).trigger(showEvent);
5193
- var isInTheDom = $$$1.contains(this.element.ownerDocument.documentElement, this.element);
5194
 
5195
- if (showEvent.isDefaultPrevented() || !isInTheDom) {
5196
- return;
5197
- }
 
5198
 
5199
- var tip = this.getTipElement();
5200
- var tipId = Util.getUID(this.constructor.NAME);
5201
- tip.setAttribute('id', tipId);
5202
- this.element.setAttribute('aria-describedby', tipId);
5203
- this.setContent();
5204
 
5205
- if (this.config.animation) {
5206
- $$$1(tip).addClass(ClassName.FADE);
5207
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
5208
 
5209
- var placement = typeof this.config.placement === 'function' ? this.config.placement.call(this, tip, this.element) : this.config.placement;
5210
 
5211
- var attachment = this._getAttachment(placement);
 
 
 
 
 
 
 
 
 
 
5212
 
5213
- this.addAttachmentClass(attachment);
5214
- var container = this.config.container === false ? document.body : $$$1(document).find(this.config.container);
5215
- $$$1(tip).data(this.constructor.DATA_KEY, this);
5216
 
5217
- if (!$$$1.contains(this.element.ownerDocument.documentElement, this.tip)) {
5218
- $$$1(tip).appendTo(container);
5219
- }
 
 
5220
 
5221
- $$$1(this.element).trigger(this.constructor.Event.INSERTED);
5222
- this._popper = new Popper(this.element, tip, {
5223
- placement: attachment,
5224
- modifiers: {
5225
- offset: {
5226
- offset: this.config.offset
5227
- },
5228
- flip: {
5229
- behavior: this.config.fallbackPlacement
5230
- },
5231
- arrow: {
5232
- element: Selector.ARROW
5233
- },
5234
- preventOverflow: {
5235
- boundariesElement: this.config.boundary
5236
- }
5237
- },
5238
- onCreate: function onCreate(data) {
5239
- if (data.originalPlacement !== data.placement) {
5240
- _this._handlePopperPlacementChange(data);
5241
- }
5242
- },
5243
- onUpdate: function onUpdate(data) {
5244
- _this._handlePopperPlacementChange(data);
5245
- }
5246
- });
5247
- $$$1(tip).addClass(ClassName.SHOW); // If this is a touch-enabled device we add extra
5248
- // empty mouseover listeners to the body's immediate children;
5249
- // only needed because of broken event delegation on iOS
5250
- // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html
5251
 
5252
- if ('ontouchstart' in document.documentElement) {
5253
- $$$1(document.body).children().on('mouseover', null, $$$1.noop);
5254
- }
5255
 
5256
- var complete = function complete() {
5257
- if (_this.config.animation) {
5258
- _this._fixTransition();
5259
- }
5260
 
5261
- var prevHoverState = _this._hoverState;
5262
- _this._hoverState = null;
5263
- $$$1(_this.element).trigger(_this.constructor.Event.SHOWN);
5264
 
5265
- if (prevHoverState === HoverState.OUT) {
5266
- _this._leave(null, _this);
5267
- }
5268
- };
5269
 
5270
- if ($$$1(this.tip).hasClass(ClassName.FADE)) {
5271
- var transitionDuration = Util.getTransitionDurationFromElement(this.tip);
5272
- $$$1(this.tip).one(Util.TRANSITION_END, complete).emulateTransitionEnd(transitionDuration);
5273
- } else {
5274
- complete();
5275
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
5276
  }
5277
- };
5278
 
5279
- _proto.hide = function hide(callback) {
5280
- var _this2 = this;
5281
 
5282
- var tip = this.getTipElement();
5283
- var hideEvent = $$$1.Event(this.constructor.Event.HIDE);
 
 
 
 
 
 
5284
 
5285
- var complete = function complete() {
5286
- if (_this2._hoverState !== HoverState.SHOW && tip.parentNode) {
5287
- tip.parentNode.removeChild(tip);
5288
- }
 
 
5289
 
5290
- _this2._cleanTipClass();
 
 
 
 
5291
 
5292
- _this2.element.removeAttribute('aria-describedby');
 
 
5293
 
5294
- $$$1(_this2.element).trigger(_this2.constructor.Event.HIDDEN);
 
 
 
5295
 
5296
- if (_this2._popper !== null) {
5297
- _this2._popper.destroy();
5298
- }
5299
 
5300
- if (callback) {
5301
- callback();
5302
- }
5303
- };
 
5304
 
5305
- $$$1(this.element).trigger(hideEvent);
 
5306
 
5307
- if (hideEvent.isDefaultPrevented()) {
 
 
 
 
 
 
 
 
 
 
 
5308
  return;
5309
  }
5310
 
5311
- $$$1(tip).removeClass(ClassName.SHOW); // If this is a touch-enabled device we remove the extra
5312
- // empty mouseover listeners we added for iOS support
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
5313
 
5314
  if ('ontouchstart' in document.documentElement) {
5315
- $$$1(document.body).children().off('mouseover', null, $$$1.noop);
5316
  }
5317
 
5318
- this._activeTrigger[Trigger.CLICK] = false;
5319
- this._activeTrigger[Trigger.FOCUS] = false;
5320
- this._activeTrigger[Trigger.HOVER] = false;
 
 
 
 
 
 
 
 
 
 
5321
 
5322
- if ($$$1(this.tip).hasClass(ClassName.FADE)) {
5323
- var transitionDuration = Util.getTransitionDurationFromElement(tip);
5324
- $$$1(tip).one(Util.TRANSITION_END, complete).emulateTransitionEnd(transitionDuration);
5325
  } else {
5326
  complete();
5327
  }
 
 
5328
 
5329
- this._hoverState = '';
5330
- };
 
 
 
5331
 
5332
- _proto.update = function update() {
5333
- if (this._popper !== null) {
5334
- this._popper.scheduleUpdate();
5335
  }
5336
- }; // Protected
5337
 
 
5338
 
5339
- _proto.isWithContent = function isWithContent() {
5340
- return Boolean(this.getTitle());
5341
- };
5342
 
5343
- _proto.addAttachmentClass = function addAttachmentClass(attachment) {
5344
- $$$1(this.getTipElement()).addClass(CLASS_PREFIX + "-" + attachment);
5345
- };
5346
 
5347
- _proto.getTipElement = function getTipElement() {
5348
- this.tip = this.tip || $$$1(this.config.template)[0];
5349
- return this.tip;
5350
- };
5351
 
5352
- _proto.setContent = function setContent() {
5353
- var tip = this.getTipElement();
5354
- this.setElementContent($$$1(tip.querySelectorAll(Selector.TOOLTIP_INNER)), this.getTitle());
5355
- $$$1(tip).removeClass(ClassName.FADE + " " + ClassName.SHOW);
5356
  };
5357
 
5358
- _proto.setElementContent = function setElementContent($element, content) {
5359
- var html = this.config.html;
5360
 
5361
- if (typeof content === 'object' && (content.nodeType || content.jquery)) {
5362
- // Content is a DOM node or a jQuery
5363
- if (html) {
5364
- if (!$$$1(content).parent().is($element)) {
5365
- $element.empty().append(content);
5366
- }
5367
- } else {
5368
- $element.text($$$1(content).text());
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
5369
  }
5370
  } else {
5371
- $element[html ? 'html' : 'text'](content);
5372
  }
5373
- };
 
 
 
5374
 
5375
- _proto.getTitle = function getTitle() {
5376
- var title = this.element.getAttribute('data-original-title');
5377
 
5378
- if (!title) {
5379
- title = typeof this.config.title === 'function' ? this.config.title.call(this.element) : this.config.title;
5380
- }
5381
 
5382
- return title;
5383
- }; // Private
5384
 
5385
 
5386
- _proto._getAttachment = function _getAttachment(placement) {
5387
- return AttachmentMap[placement.toUpperCase()];
5388
- };
 
5389
 
5390
- _proto._setListeners = function _setListeners() {
5391
- var _this3 = this;
5392
-
5393
- var triggers = this.config.trigger.split(' ');
5394
- triggers.forEach(function (trigger) {
5395
- if (trigger === 'click') {
5396
- $$$1(_this3.element).on(_this3.constructor.Event.CLICK, _this3.config.selector, function (event) {
5397
- return _this3.toggle(event);
5398
- });
5399
- } else if (trigger !== Trigger.MANUAL) {
5400
- var eventIn = trigger === Trigger.HOVER ? _this3.constructor.Event.MOUSEENTER : _this3.constructor.Event.FOCUSIN;
5401
- var eventOut = trigger === Trigger.HOVER ? _this3.constructor.Event.MOUSELEAVE : _this3.constructor.Event.FOCUSOUT;
5402
- $$$1(_this3.element).on(eventIn, _this3.config.selector, function (event) {
5403
- return _this3._enter(event);
5404
- }).on(eventOut, _this3.config.selector, function (event) {
5405
- return _this3._leave(event);
5406
- });
5407
- }
5408
 
5409
- $$$1(_this3.element).closest('.modal').on('hide.bs.modal', function () {
5410
- return _this3.hide();
5411
- });
5412
- });
 
 
5413
 
5414
- if (this.config.selector) {
5415
- this.config = _objectSpread({}, this.config, {
5416
- trigger: 'manual',
5417
- selector: ''
 
 
 
 
 
 
 
 
 
 
 
 
5418
  });
5419
- } else {
5420
- this._fixTitle();
5421
  }
5422
- };
 
 
 
 
 
5423
 
5424
- _proto._fixTitle = function _fixTitle() {
5425
- var titleType = typeof this.element.getAttribute('data-original-title');
 
 
 
 
 
 
 
5426
 
5427
- if (this.element.getAttribute('title') || titleType !== 'string') {
5428
- this.element.setAttribute('data-original-title', this.element.getAttribute('title') || '');
5429
- this.element.setAttribute('title', '');
5430
- }
5431
- };
5432
 
5433
- _proto._enter = function _enter(event, context) {
5434
- var dataKey = this.constructor.DATA_KEY;
5435
- context = context || $$$1(event.currentTarget).data(dataKey);
 
 
5436
 
5437
- if (!context) {
5438
- context = new this.constructor(event.currentTarget, this._getDelegateConfig());
5439
- $$$1(event.currentTarget).data(dataKey, context);
5440
- }
5441
 
5442
- if (event) {
5443
- context._activeTrigger[event.type === 'focusin' ? Trigger.FOCUS : Trigger.HOVER] = true;
5444
- }
 
5445
 
5446
- if ($$$1(context.getTipElement()).hasClass(ClassName.SHOW) || context._hoverState === HoverState.SHOW) {
5447
- context._hoverState = HoverState.SHOW;
5448
- return;
5449
- }
5450
 
5451
- clearTimeout(context._timeout);
5452
  context._hoverState = HoverState.SHOW;
 
 
 
 
 
 
 
 
 
 
5453
 
5454
- if (!context.config.delay || !context.config.delay.show) {
 
5455
  context.show();
5456
- return;
5457
  }
 
 
5458
 
5459
- context._timeout = setTimeout(function () {
5460
- if (context._hoverState === HoverState.SHOW) {
5461
- context.show();
5462
- }
5463
- }, context.config.delay.show);
5464
- };
5465
 
5466
- _proto._leave = function _leave(event, context) {
5467
- var dataKey = this.constructor.DATA_KEY;
5468
- context = context || $$$1(event.currentTarget).data(dataKey);
 
5469
 
5470
- if (!context) {
5471
- context = new this.constructor(event.currentTarget, this._getDelegateConfig());
5472
- $$$1(event.currentTarget).data(dataKey, context);
5473
- }
5474
 
5475
- if (event) {
5476
- context._activeTrigger[event.type === 'focusout' ? Trigger.FOCUS : Trigger.HOVER] = false;
5477
- }
5478
 
5479
- if (context._isWithActiveTrigger()) {
5480
- return;
5481
- }
5482
 
5483
- clearTimeout(context._timeout);
5484
- context._hoverState = HoverState.OUT;
 
 
5485
 
5486
- if (!context.config.delay || !context.config.delay.hide) {
 
5487
  context.hide();
5488
- return;
5489
  }
 
 
5490
 
5491
- context._timeout = setTimeout(function () {
5492
- if (context._hoverState === HoverState.OUT) {
5493
- context.hide();
5494
- }
5495
- }, context.config.delay.hide);
5496
- };
5497
-
5498
- _proto._isWithActiveTrigger = function _isWithActiveTrigger() {
5499
- for (var trigger in this._activeTrigger) {
5500
- if (this._activeTrigger[trigger]) {
5501
- return true;
5502
- }
5503
  }
 
5504
 
5505
- return false;
5506
- };
5507
 
5508
- _proto._getConfig = function _getConfig(config) {
5509
- config = _objectSpread({}, this.constructor.Default, $$$1(this.element).data(), typeof config === 'object' && config ? config : {});
5510
 
5511
- if (typeof config.delay === 'number') {
5512
- config.delay = {
5513
- show: config.delay,
5514
- hide: config.delay
5515
- };
5516
- }
5517
 
5518
- if (typeof config.title === 'number') {
5519
- config.title = config.title.toString();
5520
- }
5521
 
5522
- if (typeof config.content === 'number') {
5523
- config.content = config.content.toString();
5524
- }
5525
 
5526
- Util.typeCheckConfig(NAME, config, this.constructor.DefaultType);
5527
- return config;
5528
- };
5529
 
5530
- _proto._getDelegateConfig = function _getDelegateConfig() {
5531
- var config = {};
5532
 
5533
- if (this.config) {
5534
- for (var key in this.config) {
5535
- if (this.constructor.Default[key] !== this.config[key]) {
5536
- config[key] = this.config[key];
5537
- }
5538
  }
5539
  }
 
5540
 
5541
- return config;
5542
- };
5543
 
5544
- _proto._cleanTipClass = function _cleanTipClass() {
5545
- var $tip = $$$1(this.getTipElement());
5546
- var tabClass = $tip.attr('class').match(BSCLS_PREFIX_REGEX);
5547
 
5548
- if (tabClass !== null && tabClass.length) {
5549
- $tip.removeClass(tabClass.join(''));
5550
- }
5551
- };
5552
 
5553
- _proto._handlePopperPlacementChange = function _handlePopperPlacementChange(popperData) {
5554
- var popperInstance = popperData.instance;
5555
- this.tip = popperInstance.popper;
5556
 
5557
- this._cleanTipClass();
5558
 
5559
- this.addAttachmentClass(this._getAttachment(popperData.placement));
5560
- };
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
5561
 
5562
- _proto._fixTransition = function _fixTransition() {
5563
- var tip = this.getTipElement();
5564
- var initConfigAnimation = this.config.animation;
5565
 
5566
- if (tip.getAttribute('x-placement') !== null) {
 
 
 
 
 
 
5567
  return;
5568
  }
5569
 
5570
- $$$1(tip).removeClass(ClassName.FADE);
5571
- this.config.animation = false;
5572
- this.hide();
5573
- this.show();
5574
- this.config.animation = initConfigAnimation;
5575
- }; // Static
5576
 
 
 
 
 
5577
 
5578
- Tooltip._jQueryInterface = function _jQueryInterface(config) {
5579
- return this.each(function () {
5580
- var data = $$$1(this).data(DATA_KEY);
 
5581
 
5582
- var _config = typeof config === 'object' && config;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
5583
 
5584
- if (!data && /dispose|hide/.test(config)) {
5585
- return;
5586
- }
 
 
 
 
5587
 
5588
- if (!data) {
5589
- data = new Tooltip(this, _config);
5590
- $$$1(this).data(DATA_KEY, data);
5591
- }
5592
 
5593
- if (typeof config === 'string') {
5594
- if (typeof data[config] === 'undefined') {
5595
- throw new TypeError("No method named \"" + config + "\"");
5596
- }
5597
 
5598
- data[config]();
5599
- }
5600
- });
5601
- };
5602
 
5603
- _createClass(Tooltip, null, [{
5604
- key: "VERSION",
5605
- get: function get() {
5606
- return VERSION;
5607
- }
5608
- }, {
5609
- key: "Default",
5610
- get: function get() {
5611
- return Default;
5612
- }
5613
- }, {
5614
- key: "NAME",
5615
- get: function get() {
5616
- return NAME;
5617
- }
5618
- }, {
5619
- key: "DATA_KEY",
5620
- get: function get() {
5621
- return DATA_KEY;
5622
- }
5623
- }, {
5624
- key: "Event",
5625
- get: function get() {
5626
- return Event;
5627
- }
5628
- }, {
5629
- key: "EVENT_KEY",
5630
- get: function get() {
5631
- return EVENT_KEY;
5632
- }
5633
- }, {
5634
- key: "DefaultType",
5635
- get: function get() {
5636
- return DefaultType;
5637
- }
5638
- }]);
5639
 
5640
- return Tooltip;
5641
- }();
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
5642
  /**
5643
  * ------------------------------------------------------------------------
5644
- * jQuery
5645
  * ------------------------------------------------------------------------
5646
  */
5647
 
 
 
 
 
 
 
 
 
 
 
5648
 
5649
- $$$1.fn[NAME] = Tooltip._jQueryInterface;
5650
- $$$1.fn[NAME].Constructor = Tooltip;
5651
 
5652
- $$$1.fn[NAME].noConflict = function () {
5653
- $$$1.fn[NAME] = JQUERY_NO_CONFLICT;
5654
- return Tooltip._jQueryInterface;
5655
  };
5656
 
5657
- return Tooltip;
5658
- }($, Popper);
 
5659
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
5660
  /**
5661
- * --------------------------------------------------------------------------
5662
- * Bootstrap (v4.1.3): popover.js
5663
- * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
5664
- * --------------------------------------------------------------------------
 
 
 
 
 
 
 
 
 
 
 
 
 
 
5665
  */
5666
 
5667
- var Popover = function ($$$1) {
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
5668
  /**
5669
  * ------------------------------------------------------------------------
5670
- * Constants
5671
  * ------------------------------------------------------------------------
5672
  */
5673
- var NAME = 'popover';
5674
- var VERSION = '4.1.3';
5675
- var DATA_KEY = 'bs.popover';
5676
- var EVENT_KEY = "." + DATA_KEY;
5677
- var JQUERY_NO_CONFLICT = $$$1.fn[NAME];
5678
- var CLASS_PREFIX = 'bs-popover';
5679
- var BSCLS_PREFIX_REGEX = new RegExp("(^|\\s)" + CLASS_PREFIX + "\\S+", 'g');
5680
-
5681
- var Default = _objectSpread({}, Tooltip.Default, {
5682
- placement: 'right',
5683
- trigger: 'click',
5684
- content: '',
5685
- template: '<div class="popover" role="tooltip">' + '<div class="arrow"></div>' + '<h3 class="popover-header"></h3>' + '<div class="popover-body"></div></div>'
5686
- });
5687
 
5688
- var DefaultType = _objectSpread({}, Tooltip.DefaultType, {
5689
- content: '(string|element|function)'
5690
- });
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
5691
 
5692
- var ClassName = {
5693
- FADE: 'fade',
5694
- SHOW: 'show'
5695
  };
5696
- var Selector = {
5697
- TITLE: '.popover-header',
5698
- CONTENT: '.popover-body'
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
5699
  };
5700
- var Event = {
5701
- HIDE: "hide" + EVENT_KEY,
5702
- HIDDEN: "hidden" + EVENT_KEY,
5703
- SHOW: "show" + EVENT_KEY,
5704
- SHOWN: "shown" + EVENT_KEY,
5705
- INSERTED: "inserted" + EVENT_KEY,
5706
- CLICK: "click" + EVENT_KEY,
5707
- FOCUSIN: "focusin" + EVENT_KEY,
5708
- FOCUSOUT: "focusout" + EVENT_KEY,
5709
- MOUSEENTER: "mouseenter" + EVENT_KEY,
5710
- MOUSELEAVE: "mouseleave" + EVENT_KEY
5711
- /**
5712
- * ------------------------------------------------------------------------
5713
- * Class Definition
5714
- * ------------------------------------------------------------------------
5715
- */
5716
 
 
 
5717
  };
5718
 
5719
- var Popover =
5720
- /*#__PURE__*/
5721
- function (_Tooltip) {
5722
- _inheritsLoose(Popover, _Tooltip);
 
 
 
 
 
 
5723
 
5724
- function Popover() {
5725
- return _Tooltip.apply(this, arguments) || this;
5726
  }
5727
 
5728
- var _proto = Popover.prototype;
 
5729
 
5730
- // Overrides
5731
- _proto.isWithContent = function isWithContent() {
5732
- return this.getTitle() || this._getContent();
5733
- };
5734
 
5735
- _proto.addAttachmentClass = function addAttachmentClass(attachment) {
5736
- $$$1(this.getTipElement()).addClass(CLASS_PREFIX + "-" + attachment);
5737
- };
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
5738
 
5739
- _proto.getTipElement = function getTipElement() {
5740
- this.tip = this.tip || $$$1(this.config.template)[0];
5741
- return this.tip;
5742
- };
5743
 
5744
- _proto.setContent = function setContent() {
5745
- var $tip = $$$1(this.getTipElement()); // We use append for html objects to maintain js events
5746
 
5747
- this.setElementContent($tip.find(Selector.TITLE), this.getTitle());
 
 
5748
 
5749
- var content = this._getContent();
5750
 
5751
- if (typeof content === 'function') {
5752
- content = content.call(this.element);
5753
- }
 
 
 
 
5754
 
5755
- this.setElementContent($tip.find(Selector.CONTENT), content);
5756
- $tip.removeClass(ClassName.FADE + " " + ClassName.SHOW);
5757
- }; // Private
5758
 
 
 
5759
 
5760
- _proto._getContent = function _getContent() {
5761
- return this.element.getAttribute('data-content') || this.config.content;
5762
- };
 
5763
 
5764
- _proto._cleanTipClass = function _cleanTipClass() {
5765
- var $tip = $$$1(this.getTipElement());
5766
- var tabClass = $tip.attr('class').match(BSCLS_PREFIX_REGEX);
 
 
 
 
5767
 
5768
- if (tabClass !== null && tabClass.length > 0) {
5769
- $tip.removeClass(tabClass.join(''));
5770
- }
5771
- }; // Static
5772
 
 
 
 
5773
 
5774
- Popover._jQueryInterface = function _jQueryInterface(config) {
5775
- return this.each(function () {
5776
- var data = $$$1(this).data(DATA_KEY);
5777
 
5778
- var _config = typeof config === 'object' ? config : null;
 
 
 
5779
 
5780
- if (!data && /destroy|hide/.test(config)) {
5781
- return;
 
5782
  }
5783
 
5784
- if (!data) {
5785
- data = new Popover(this, _config);
5786
- $$$1(this).data(DATA_KEY, data);
5787
- }
5788
 
5789
- if (typeof config === 'string') {
5790
- if (typeof data[config] === 'undefined') {
5791
- throw new TypeError("No method named \"" + config + "\"");
5792
- }
 
 
 
 
 
 
 
5793
 
5794
- data[config]();
5795
- }
5796
- });
5797
- };
 
 
 
5798
 
5799
- _createClass(Popover, null, [{
5800
- key: "VERSION",
5801
- // Getters
5802
- get: function get() {
5803
- return VERSION;
5804
- }
5805
- }, {
5806
- key: "Default",
5807
- get: function get() {
5808
- return Default;
5809
- }
5810
- }, {
5811
- key: "NAME",
5812
- get: function get() {
5813
- return NAME;
5814
- }
5815
- }, {
5816
- key: "DATA_KEY",
5817
- get: function get() {
5818
- return DATA_KEY;
5819
- }
5820
- }, {
5821
- key: "Event",
5822
- get: function get() {
5823
- return Event;
5824
- }
5825
- }, {
5826
- key: "EVENT_KEY",
5827
- get: function get() {
5828
- return EVENT_KEY;
5829
- }
5830
- }, {
5831
- key: "DefaultType",
5832
- get: function get() {
5833
- return DefaultType;
5834
- }
5835
- }]);
5836
 
5837
- return Popover;
5838
- }(Tooltip);
5839
- /**
5840
- * ------------------------------------------------------------------------
5841
- * jQuery
5842
- * ------------------------------------------------------------------------
5843
- */
5844
 
 
 
5845
 
5846
- $$$1.fn[NAME] = Popover._jQueryInterface;
5847
- $$$1.fn[NAME].Constructor = Popover;
 
 
 
 
 
 
5848
 
5849
- $$$1.fn[NAME].noConflict = function () {
5850
- $$$1.fn[NAME] = JQUERY_NO_CONFLICT;
5851
- return Popover._jQueryInterface;
5852
- };
5853
 
5854
- return Popover;
5855
- }($);
 
 
5856
 
5857
  /**
5858
- * --------------------------------------------------------------------------
5859
- * Bootstrap (v4.1.3): scrollspy.js
5860
- * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
5861
- * --------------------------------------------------------------------------
5862
  */
5863
 
5864
- var ScrollSpy = function ($$$1) {
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
5865
  /**
5866
  * ------------------------------------------------------------------------
5867
- * Constants
5868
  * ------------------------------------------------------------------------
5869
  */
5870
- var NAME = 'scrollspy';
5871
- var VERSION = '4.1.3';
5872
- var DATA_KEY = 'bs.scrollspy';
5873
- var EVENT_KEY = "." + DATA_KEY;
5874
- var DATA_API_KEY = '.data-api';
5875
- var JQUERY_NO_CONFLICT = $$$1.fn[NAME];
5876
- var Default = {
5877
- offset: 10,
5878
- method: 'auto',
5879
- target: ''
5880
- };
5881
- var DefaultType = {
5882
- offset: 'number',
5883
- method: 'string',
5884
- target: '(string|element)'
5885
- };
5886
- var Event = {
5887
- ACTIVATE: "activate" + EVENT_KEY,
5888
- SCROLL: "scroll" + EVENT_KEY,
5889
- LOAD_DATA_API: "load" + EVENT_KEY + DATA_API_KEY
5890
- };
5891
- var ClassName = {
5892
- DROPDOWN_ITEM: 'dropdown-item',
5893
- DROPDOWN_MENU: 'dropdown-menu',
5894
- ACTIVE: 'active'
5895
- };
5896
- var Selector = {
5897
- DATA_SPY: '[data-spy="scroll"]',
5898
- ACTIVE: '.active',
5899
- NAV_LIST_GROUP: '.nav, .list-group',
5900
- NAV_LINKS: '.nav-link',
5901
- NAV_ITEMS: '.nav-item',
5902
- LIST_ITEMS: '.list-group-item',
5903
- DROPDOWN: '.dropdown',
5904
- DROPDOWN_ITEMS: '.dropdown-item',
5905
- DROPDOWN_TOGGLE: '.dropdown-toggle'
5906
- };
5907
- var OffsetMethod = {
5908
- OFFSET: 'offset',
5909
- POSITION: 'position'
5910
- /**
5911
- * ------------------------------------------------------------------------
5912
- * Class Definition
5913
- * ------------------------------------------------------------------------
5914
- */
5915
-
5916
- };
5917
-
5918
- var ScrollSpy =
5919
- /*#__PURE__*/
5920
- function () {
5921
- function ScrollSpy(element, config) {
5922
- var _this = this;
5923
-
5924
- this._element = element;
5925
- this._scrollElement = element.tagName === 'BODY' ? window : element;
5926
- this._config = this._getConfig(config);
5927
- this._selector = this._config.target + " " + Selector.NAV_LINKS + "," + (this._config.target + " " + Selector.LIST_ITEMS + ",") + (this._config.target + " " + Selector.DROPDOWN_ITEMS);
5928
- this._offsets = [];
5929
- this._targets = [];
5930
- this._activeTarget = null;
5931
- this._scrollHeight = 0;
5932
- $$$1(this._scrollElement).on(Event.SCROLL, function (event) {
5933
- return _this._process(event);
5934
- });
5935
- this.refresh();
5936
 
5937
- this._process();
5938
- } // Getters
5939
 
 
 
 
 
 
 
5940
 
5941
- var _proto = ScrollSpy.prototype;
5942
 
5943
- // Public
5944
- _proto.refresh = function refresh() {
5945
- var _this2 = this;
5946
 
5947
- var autoMethod = this._scrollElement === this._scrollElement.window ? OffsetMethod.OFFSET : OffsetMethod.POSITION;
5948
- var offsetMethod = this._config.method === 'auto' ? autoMethod : this._config.method;
5949
- var offsetBase = offsetMethod === OffsetMethod.POSITION ? this._getScrollTop() : 0;
5950
- this._offsets = [];
5951
- this._targets = [];
5952
- this._scrollHeight = this._getScrollHeight();
5953
- var targets = [].slice.call(document.querySelectorAll(this._selector));
5954
- targets.map(function (element) {
5955
- var target;
5956
- var targetSelector = Util.getSelectorFromElement(element);
5957
 
5958
- if (targetSelector) {
5959
- target = document.querySelector(targetSelector);
5960
- }
5961
 
5962
- if (target) {
5963
- var targetBCR = target.getBoundingClientRect();
 
 
 
 
 
 
 
 
5964
 
5965
- if (targetBCR.width || targetBCR.height) {
5966
- // TODO (fat): remove sketch reliance on jQuery position/offset
5967
- return [$$$1(target)[offsetMethod]().top + offsetBase, targetSelector];
5968
- }
5969
- }
 
5970
 
5971
- return null;
5972
- }).filter(function (item) {
5973
- return item;
5974
- }).sort(function (a, b) {
5975
- return a[0] - b[0];
5976
- }).forEach(function (item) {
5977
- _this2._offsets.push(item[0]);
5978
 
5979
- _this2._targets.push(item[1]);
5980
- });
5981
- };
5982
 
5983
- _proto.dispose = function dispose() {
5984
- $$$1.removeData(this._element, DATA_KEY);
5985
- $$$1(this._scrollElement).off(EVENT_KEY);
5986
- this._element = null;
5987
- this._scrollElement = null;
5988
- this._config = null;
5989
- this._selector = null;
5990
- this._offsets = null;
5991
- this._targets = null;
5992
- this._activeTarget = null;
5993
- this._scrollHeight = null;
5994
- }; // Private
5995
 
 
 
 
5996
 
5997
- _proto._getConfig = function _getConfig(config) {
5998
- config = _objectSpread({}, Default, typeof config === 'object' && config ? config : {});
5999
 
6000
- if (typeof config.target !== 'string') {
6001
- var id = $$$1(config.target).attr('id');
 
 
 
 
 
 
 
 
6002
 
6003
- if (!id) {
6004
- id = Util.getUID(NAME);
6005
- $$$1(config.target).attr('id', id);
6006
- }
 
 
6007
 
6008
- config.target = "#" + id;
6009
- }
 
 
6010
 
6011
- Util.typeCheckConfig(NAME, config, DefaultType);
6012
- return config;
6013
- };
6014
 
6015
- _proto._getScrollTop = function _getScrollTop() {
6016
- return this._scrollElement === window ? this._scrollElement.pageYOffset : this._scrollElement.scrollTop;
6017
- };
6018
 
6019
- _proto._getScrollHeight = function _getScrollHeight() {
6020
- return this._scrollElement.scrollHeight || Math.max(document.body.scrollHeight, document.documentElement.scrollHeight);
6021
- };
6022
 
6023
- _proto._getOffsetHeight = function _getOffsetHeight() {
6024
- return this._scrollElement === window ? window.innerHeight : this._scrollElement.getBoundingClientRect().height;
6025
  };
6026
 
6027
- _proto._process = function _process() {
6028
- var scrollTop = this._getScrollTop() + this._config.offset;
6029
-
6030
- var scrollHeight = this._getScrollHeight();
 
 
 
6031
 
6032
- var maxScroll = this._config.offset + scrollHeight - this._getOffsetHeight();
 
 
 
6033
 
6034
- if (this._scrollHeight !== scrollHeight) {
6035
- this.refresh();
6036
  }
6037
 
6038
- if (scrollTop >= maxScroll) {
6039
- var target = this._targets[this._targets.length - 1];
6040
-
6041
- if (this._activeTarget !== target) {
6042
- this._activate(target);
6043
- }
6044
-
6045
- return;
6046
  }
 
6047
 
6048
- if (this._activeTarget && scrollTop < this._offsets[0] && this._offsets[0] > 0) {
6049
- this._activeTarget = null;
6050
-
6051
- this._clear();
6052
 
6053
- return;
6054
- }
 
6055
 
6056
- var offsetLength = this._offsets.length;
 
6057
 
6058
- for (var i = offsetLength; i--;) {
6059
- var isActiveTarget = this._activeTarget !== this._targets[i] && scrollTop >= this._offsets[i] && (typeof this._offsets[i + 1] === 'undefined' || scrollTop < this._offsets[i + 1]);
6060
 
6061
- if (isActiveTarget) {
6062
- this._activate(this._targets[i]);
6063
- }
6064
  }
6065
- };
6066
-
6067
- _proto._activate = function _activate(target) {
6068
- this._activeTarget = target;
6069
-
6070
- this._clear();
6071
-
6072
- var queries = this._selector.split(','); // eslint-disable-next-line arrow-body-style
6073
 
 
 
6074
 
6075
- queries = queries.map(function (selector) {
6076
- return selector + "[data-target=\"" + target + "\"]," + (selector + "[href=\"" + target + "\"]");
6077
- });
6078
- var $link = $$$1([].slice.call(document.querySelectorAll(queries.join(','))));
6079
 
6080
- if ($link.hasClass(ClassName.DROPDOWN_ITEM)) {
6081
- $link.closest(Selector.DROPDOWN).find(Selector.DROPDOWN_TOGGLE).addClass(ClassName.ACTIVE);
6082
- $link.addClass(ClassName.ACTIVE);
6083
- } else {
6084
- // Set triggered link as active
6085
- $link.addClass(ClassName.ACTIVE); // Set triggered links parents as active
6086
- // With both <ul> and <nav> markup a parent is the previous sibling of any nav ancestor
6087
 
6088
- $link.parents(Selector.NAV_LIST_GROUP).prev(Selector.NAV_LINKS + ", " + Selector.LIST_ITEMS).addClass(ClassName.ACTIVE); // Handle special case when .nav-link is inside .nav-item
 
 
 
6089
 
6090
- $link.parents(Selector.NAV_LIST_GROUP).prev(Selector.NAV_ITEMS).children(Selector.NAV_LINKS).addClass(ClassName.ACTIVE);
 
 
6091
  }
6092
 
6093
- $$$1(this._scrollElement).trigger(Event.ACTIVATE, {
6094
- relatedTarget: target
6095
- });
6096
- };
6097
-
6098
- _proto._clear = function _clear() {
6099
- var nodes = [].slice.call(document.querySelectorAll(this._selector));
6100
- $$$1(nodes).filter(Selector.ACTIVE).removeClass(ClassName.ACTIVE);
6101
- }; // Static
6102
-
6103
-
6104
- ScrollSpy._jQueryInterface = function _jQueryInterface(config) {
6105
- return this.each(function () {
6106
- var data = $$$1(this).data(DATA_KEY);
6107
-
6108
- var _config = typeof config === 'object' && config;
6109
-
6110
- if (!data) {
6111
- data = new ScrollSpy(this, _config);
6112
- $$$1(this).data(DATA_KEY, data);
6113
- }
6114
-
6115
- if (typeof config === 'string') {
6116
- if (typeof data[config] === 'undefined') {
6117
- throw new TypeError("No method named \"" + config + "\"");
6118
- }
6119
-
6120
- data[config]();
6121
  }
6122
- });
6123
- };
6124
 
6125
- _createClass(ScrollSpy, null, [{
6126
- key: "VERSION",
6127
- get: function get() {
6128
- return VERSION;
6129
- }
6130
- }, {
6131
- key: "Default",
6132
- get: function get() {
6133
- return Default;
6134
  }
6135
- }]);
6136
-
6137
- return ScrollSpy;
6138
- }();
6139
- /**
6140
- * ------------------------------------------------------------------------
6141
- * Data Api implementation
6142
- * ------------------------------------------------------------------------
6143
- */
6144
 
 
 
 
 
 
 
6145
 
6146
- $$$1(window).on(Event.LOAD_DATA_API, function () {
6147
- var scrollSpys = [].slice.call(document.querySelectorAll(Selector.DATA_SPY));
6148
- var scrollSpysLength = scrollSpys.length;
 
 
 
 
6149
 
6150
- for (var i = scrollSpysLength; i--;) {
6151
- var $spy = $$$1(scrollSpys[i]);
6152
 
6153
- ScrollSpy._jQueryInterface.call($spy, $spy.data());
6154
- }
6155
- });
6156
- /**
6157
- * ------------------------------------------------------------------------
6158
- * jQuery
6159
- * ------------------------------------------------------------------------
6160
- */
6161
 
6162
- $$$1.fn[NAME] = ScrollSpy._jQueryInterface;
6163
- $$$1.fn[NAME].Constructor = ScrollSpy;
 
 
 
 
 
6164
 
6165
- $$$1.fn[NAME].noConflict = function () {
6166
- $$$1.fn[NAME] = JQUERY_NO_CONFLICT;
6167
- return ScrollSpy._jQueryInterface;
6168
- };
6169
 
6170
- return ScrollSpy;
6171
- }($);
 
 
6172
 
6173
  /**
6174
- * --------------------------------------------------------------------------
6175
- * Bootstrap (v4.1.3): tab.js
6176
- * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
6177
- * --------------------------------------------------------------------------
6178
  */
6179
 
6180
- var Tab = function ($$$1) {
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
6181
  /**
6182
  * ------------------------------------------------------------------------
6183
- * Constants
6184
  * ------------------------------------------------------------------------
6185
  */
6186
- var NAME = 'tab';
6187
- var VERSION = '4.1.3';
6188
- var DATA_KEY = 'bs.tab';
6189
- var EVENT_KEY = "." + DATA_KEY;
6190
- var DATA_API_KEY = '.data-api';
6191
- var JQUERY_NO_CONFLICT = $$$1.fn[NAME];
6192
- var Event = {
6193
- HIDE: "hide" + EVENT_KEY,
6194
- HIDDEN: "hidden" + EVENT_KEY,
6195
- SHOW: "show" + EVENT_KEY,
6196
- SHOWN: "shown" + EVENT_KEY,
6197
- CLICK_DATA_API: "click" + EVENT_KEY + DATA_API_KEY
6198
- };
6199
- var ClassName = {
6200
- DROPDOWN_MENU: 'dropdown-menu',
6201
- ACTIVE: 'active',
6202
- DISABLED: 'disabled',
6203
- FADE: 'fade',
6204
- SHOW: 'show'
6205
- };
6206
- var Selector = {
6207
- DROPDOWN: '.dropdown',
6208
- NAV_LIST_GROUP: '.nav, .list-group',
6209
- ACTIVE: '.active',
6210
- ACTIVE_UL: '> li > .active',
6211
- DATA_TOGGLE: '[data-toggle="tab"], [data-toggle="pill"], [data-toggle="list"]',
6212
- DROPDOWN_TOGGLE: '.dropdown-toggle',
6213
- DROPDOWN_ACTIVE_CHILD: '> .dropdown-menu .active'
6214
- /**
6215
- * ------------------------------------------------------------------------
6216
- * Class Definition
6217
- * ------------------------------------------------------------------------
6218
- */
6219
-
6220
- };
6221
-
6222
- var Tab =
6223
- /*#__PURE__*/
6224
- function () {
6225
- function Tab(element) {
6226
- this._element = element;
6227
- } // Getters
6228
 
 
6229
 
6230
- var _proto = Tab.prototype;
6231
-
6232
- // Public
6233
- _proto.show = function show() {
6234
- var _this = this;
 
 
6235
 
6236
- if (this._element.parentNode && this._element.parentNode.nodeType === Node.ELEMENT_NODE && $$$1(this._element).hasClass(ClassName.ACTIVE) || $$$1(this._element).hasClass(ClassName.DISABLED)) {
6237
- return;
6238
- }
6239
 
6240
- var target;
6241
- var previous;
6242
- var listElement = $$$1(this._element).closest(Selector.NAV_LIST_GROUP)[0];
6243
- var selector = Util.getSelectorFromElement(this._element);
6244
-
6245
- if (listElement) {
6246
- var itemSelector = listElement.nodeName === 'UL' ? Selector.ACTIVE_UL : Selector.ACTIVE;
6247
- previous = $$$1.makeArray($$$1(listElement).find(itemSelector));
6248
- previous = previous[previous.length - 1];
6249
- }
6250
 
6251
- var hideEvent = $$$1.Event(Event.HIDE, {
6252
- relatedTarget: this._element
6253
- });
6254
- var showEvent = $$$1.Event(Event.SHOW, {
6255
- relatedTarget: previous
6256
- });
6257
 
6258
- if (previous) {
6259
- $$$1(previous).trigger(hideEvent);
6260
- }
6261
 
6262
- $$$1(this._element).trigger(showEvent);
6263
 
6264
- if (showEvent.isDefaultPrevented() || hideEvent.isDefaultPrevented()) {
6265
- return;
6266
- }
6267
 
6268
- if (selector) {
6269
- target = document.querySelector(selector);
6270
- }
6271
 
6272
- this._activate(this._element, listElement);
6273
 
6274
- var complete = function complete() {
6275
- var hiddenEvent = $$$1.Event(Event.HIDDEN, {
6276
- relatedTarget: _this._element
6277
- });
6278
- var shownEvent = $$$1.Event(Event.SHOWN, {
6279
- relatedTarget: previous
6280
- });
6281
- $$$1(previous).trigger(hiddenEvent);
6282
- $$$1(_this._element).trigger(shownEvent);
6283
- };
6284
 
6285
- if (target) {
6286
- this._activate(target, target.parentNode, complete);
6287
- } else {
6288
- complete();
6289
  }
6290
  };
6291
 
6292
- _proto.dispose = function dispose() {
6293
- $$$1.removeData(this._element, DATA_KEY);
6294
- this._element = null;
6295
- }; // Private
6296
 
 
6297
 
6298
- _proto._activate = function _activate(element, container, callback) {
6299
- var _this2 = this;
6300
-
6301
- var activeElements;
 
 
 
6302
 
6303
- if (container.nodeName === 'UL') {
6304
- activeElements = $$$1(container).find(Selector.ACTIVE_UL);
6305
- } else {
6306
- activeElements = $$$1(container).children(Selector.ACTIVE);
6307
- }
6308
 
6309
- var active = activeElements[0];
6310
- var isTransitioning = callback && active && $$$1(active).hasClass(ClassName.FADE);
 
6311
 
6312
- var complete = function complete() {
6313
- return _this2._transitionComplete(element, active, callback);
6314
- };
6315
 
6316
- if (active && isTransitioning) {
6317
- var transitionDuration = Util.getTransitionDurationFromElement(active);
6318
- $$$1(active).one(Util.TRANSITION_END, complete).emulateTransitionEnd(transitionDuration);
6319
- } else {
6320
- complete();
6321
- }
6322
- };
 
6323
 
6324
- _proto._transitionComplete = function _transitionComplete(element, active, callback) {
6325
- if (active) {
6326
- $$$1(active).removeClass(ClassName.SHOW + " " + ClassName.ACTIVE);
6327
- var dropdownChild = $$$1(active.parentNode).find(Selector.DROPDOWN_ACTIVE_CHILD)[0];
6328
 
6329
- if (dropdownChild) {
6330
- $$$1(dropdownChild).removeClass(ClassName.ACTIVE);
6331
- }
6332
 
6333
- if (active.getAttribute('role') === 'tab') {
6334
- active.setAttribute('aria-selected', false);
6335
- }
6336
- }
 
6337
 
6338
- $$$1(element).addClass(ClassName.ACTIVE);
6339
 
6340
- if (element.getAttribute('role') === 'tab') {
6341
- element.setAttribute('aria-selected', true);
6342
- }
 
 
6343
 
6344
- Util.reflow(element);
6345
- $$$1(element).addClass(ClassName.SHOW);
6346
 
6347
- if (element.parentNode && $$$1(element.parentNode).hasClass(ClassName.DROPDOWN_MENU)) {
6348
- var dropdownElement = $$$1(element).closest(Selector.DROPDOWN)[0];
 
 
6349
 
6350
- if (dropdownElement) {
6351
- var dropdownToggleList = [].slice.call(dropdownElement.querySelectorAll(Selector.DROPDOWN_TOGGLE));
6352
- $$$1(dropdownToggleList).addClass(ClassName.ACTIVE);
6353
- }
6354
 
6355
- element.setAttribute('aria-expanded', true);
6356
- }
6357
 
6358
- if (callback) {
6359
- callback();
6360
- }
6361
- }; // Static
6362
 
 
6363
 
6364
- Tab._jQueryInterface = function _jQueryInterface(config) {
6365
- return this.each(function () {
6366
- var $this = $$$1(this);
6367
- var data = $this.data(DATA_KEY);
 
 
 
6368
 
6369
- if (!data) {
6370
- data = new Tab(this);
6371
- $this.data(DATA_KEY, data);
6372
- }
6373
 
6374
- if (typeof config === 'string') {
6375
- if (typeof data[config] === 'undefined') {
6376
- throw new TypeError("No method named \"" + config + "\"");
6377
- }
6378
 
6379
- data[config]();
6380
- }
6381
- });
6382
- };
6383
 
6384
- _createClass(Tab, null, [{
6385
- key: "VERSION",
6386
- get: function get() {
6387
- return VERSION;
6388
  }
6389
- }]);
6390
 
6391
- return Tab;
6392
- }();
6393
- /**
6394
- * ------------------------------------------------------------------------
6395
- * Data Api implementation
6396
- * ------------------------------------------------------------------------
6397
- */
6398
 
 
 
 
 
6399
 
6400
- $$$1(document).on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {
6401
- event.preventDefault();
 
 
 
 
 
 
 
 
 
6402
 
6403
- Tab._jQueryInterface.call($$$1(this), 'show');
6404
- });
6405
- /**
6406
- * ------------------------------------------------------------------------
6407
- * jQuery
6408
- * ------------------------------------------------------------------------
6409
- */
6410
 
6411
- $$$1.fn[NAME] = Tab._jQueryInterface;
6412
- $$$1.fn[NAME].Constructor = Tab;
6413
 
6414
- $$$1.fn[NAME].noConflict = function () {
6415
- $$$1.fn[NAME] = JQUERY_NO_CONFLICT;
6416
- return Tab._jQueryInterface;
6417
- };
6418
 
6419
- return Tab;
6420
- }($);
 
 
6421
 
6422
  /**
6423
  * --------------------------------------------------------------------------
6424
- * Bootstrap (v4.1.3): index.js
6425
  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
6426
  * --------------------------------------------------------------------------
6427
  */
6428
 
6429
- (function ($$$1) {
6430
- if (typeof $$$1 === 'undefined') {
6431
  throw new TypeError('Bootstrap\'s JavaScript requires jQuery. jQuery must be included before Bootstrap\'s JavaScript.');
6432
  }
6433
 
6434
- var version = $$$1.fn.jquery.split(' ')[0].split('.');
6435
  var minMajor = 1;
6436
  var ltMajor = 2;
6437
  var minMinor = 9;
@@ -6441,7 +6797,7 @@
6441
  if (version[0] < ltMajor && version[1] < minMinor || version[0] === minMajor && version[1] === minMinor && version[2] < minPatch || version[0] >= maxMajor) {
6442
  throw new Error('Bootstrap\'s JavaScript requires at least jQuery v1.9.1 but less than v4.0.0');
6443
  }
6444
- })($);
6445
 
6446
  exports.Util = Util;
6447
  exports.Alert = Alert;
@@ -6453,8 +6809,10 @@
6453
  exports.Popover = Popover;
6454
  exports.Scrollspy = ScrollSpy;
6455
  exports.Tab = Tab;
 
6456
  exports.Tooltip = Tooltip;
6457
 
6458
  Object.defineProperty(exports, '__esModule', { value: true });
6459
 
6460
- })));
 
1
  /*!
2
+ * Bootstrap v4.2.1 (https://getbootstrap.com/)
3
  * Copyright 2011-2018 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
4
  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
5
  */
69
 
70
  /**
71
  * --------------------------------------------------------------------------
72
+ * Bootstrap (v4.2.1): util.js
73
  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
74
  * --------------------------------------------------------------------------
75
  */
76
+ /**
77
+ * ------------------------------------------------------------------------
78
+ * Private TransitionEnd Helpers
79
+ * ------------------------------------------------------------------------
80
+ */
81
 
82
+ var TRANSITION_END = 'transitionend';
83
+ var MAX_UID = 1000000;
84
+ var MILLISECONDS_MULTIPLIER = 1000; // Shoutout AngusCroll (https://goo.gl/pxwQGp)
 
 
 
 
 
 
 
 
 
 
85
 
86
+ function toType(obj) {
87
+ return {}.toString.call(obj).match(/\s([a-z]+)/i)[1].toLowerCase();
88
+ }
 
 
 
 
 
89
 
90
+ function getSpecialTransitionEndEvent() {
91
+ return {
92
+ bindType: TRANSITION_END,
93
+ delegateType: TRANSITION_END,
94
+ handle: function handle(event) {
95
+ if ($(event.target).is(this)) {
96
+ return event.handleObj.handler.apply(this, arguments); // eslint-disable-line prefer-rest-params
97
  }
 
 
98
 
99
+ return undefined; // eslint-disable-line no-undefined
100
+ }
101
+ };
102
+ }
103
 
104
+ function transitionEndEmulator(duration) {
105
+ var _this = this;
 
 
 
 
 
 
 
 
 
106
 
107
+ var called = false;
108
+ $(this).one(Util.TRANSITION_END, function () {
109
+ called = true;
110
+ });
111
+ setTimeout(function () {
112
+ if (!called) {
113
+ Util.triggerTransitionEnd(_this);
114
+ }
115
+ }, duration);
116
+ return this;
117
+ }
118
+
119
+ function setTransitionEndSupport() {
120
+ $.fn.emulateTransitionEnd = transitionEndEmulator;
121
+ $.event.special[Util.TRANSITION_END] = getSpecialTransitionEndEvent();
122
+ }
123
+ /**
124
+ * --------------------------------------------------------------------------
125
+ * Public Util Api
126
+ * --------------------------------------------------------------------------
127
+ */
128
 
129
 
130
+ var Util = {
131
+ TRANSITION_END: 'bsTransitionEnd',
132
+ getUID: function getUID(prefix) {
133
+ do {
134
+ // eslint-disable-next-line no-bitwise
135
+ prefix += ~~(Math.random() * MAX_UID); // "~~" acts like a faster Math.floor() here
136
+ } while (document.getElementById(prefix));
137
 
138
+ return prefix;
139
+ },
140
+ getSelectorFromElement: function getSelectorFromElement(element) {
141
+ var selector = element.getAttribute('data-target');
142
 
143
+ if (!selector || selector === '#') {
144
+ var hrefAttr = element.getAttribute('href');
145
+ selector = hrefAttr && hrefAttr !== '#' ? hrefAttr.trim() : '';
146
+ }
147
 
148
+ return selector && document.querySelector(selector) ? selector : null;
149
+ },
150
+ getTransitionDurationFromElement: function getTransitionDurationFromElement(element) {
151
+ if (!element) {
152
+ return 0;
153
+ } // Get transition-duration of the element
 
 
 
 
154
 
155
 
156
+ var transitionDuration = $(element).css('transition-duration');
157
+ var transitionDelay = $(element).css('transition-delay');
158
+ var floatTransitionDuration = parseFloat(transitionDuration);
159
+ var floatTransitionDelay = parseFloat(transitionDelay); // Return 0 if element or transition duration is not found
160
 
161
+ if (!floatTransitionDuration && !floatTransitionDelay) {
162
+ return 0;
163
+ } // If multiple durations are defined, take the first
164
 
165
 
166
+ transitionDuration = transitionDuration.split(',')[0];
167
+ transitionDelay = transitionDelay.split(',')[0];
168
+ return (parseFloat(transitionDuration) + parseFloat(transitionDelay)) * MILLISECONDS_MULTIPLIER;
169
+ },
170
+ reflow: function reflow(element) {
171
+ return element.offsetHeight;
172
+ },
173
+ triggerTransitionEnd: function triggerTransitionEnd(element) {
174
+ $(element).trigger(TRANSITION_END);
175
+ },
176
+ // TODO: Remove in v5
177
+ supportsTransitionEnd: function supportsTransitionEnd() {
178
+ return Boolean(TRANSITION_END);
179
+ },
180
+ isElement: function isElement(obj) {
181
+ return (obj[0] || obj).nodeType;
182
+ },
183
+ typeCheckConfig: function typeCheckConfig(componentName, config, configTypes) {
184
+ for (var property in configTypes) {
185
+ if (Object.prototype.hasOwnProperty.call(configTypes, property)) {
186
+ var expectedTypes = configTypes[property];
187
+ var value = config[property];
188
+ var valueType = value && Util.isElement(value) ? 'element' : toType(value);
189
+
190
+ if (!new RegExp(expectedTypes).test(valueType)) {
191
+ throw new Error(componentName.toUpperCase() + ": " + ("Option \"" + property + "\" provided type \"" + valueType + "\" ") + ("but expected type \"" + expectedTypes + "\"."));
192
  }
193
  }
194
  }
195
+ },
196
+ findShadowRoot: function findShadowRoot(element) {
197
+ if (!document.documentElement.attachShadow) {
198
+ return null;
199
+ } // Can find the shadow root otherwise it'll return the document
200
+
201
+
202
+ if (typeof element.getRootNode === 'function') {
203
+ var root = element.getRootNode();
204
+ return root instanceof ShadowRoot ? root : null;
205
+ }
206
+
207
+ if (element instanceof ShadowRoot) {
208
+ return element;
209
+ } // when we don't find a shadow root
210
+
211
+
212
+ if (!element.parentNode) {
213
+ return null;
214
+ }
215
+
216
+ return Util.findShadowRoot(element.parentNode);
217
+ }
218
+ };
219
+ setTransitionEndSupport();
220
 
221
  /**
222
+ * ------------------------------------------------------------------------
223
+ * Constants
224
+ * ------------------------------------------------------------------------
 
225
  */
226
 
227
+ var NAME = 'alert';
228
+ var VERSION = '4.2.1';
229
+ var DATA_KEY = 'bs.alert';
230
+ var EVENT_KEY = "." + DATA_KEY;
231
+ var DATA_API_KEY = '.data-api';
232
+ var JQUERY_NO_CONFLICT = $.fn[NAME];
233
+ var Selector = {
234
+ DISMISS: '[data-dismiss="alert"]'
235
+ };
236
+ var Event = {
237
+ CLOSE: "close" + EVENT_KEY,
238
+ CLOSED: "closed" + EVENT_KEY,
239
+ CLICK_DATA_API: "click" + EVENT_KEY + DATA_API_KEY
240
+ };
241
+ var ClassName = {
242
+ ALERT: 'alert',
243
+ FADE: 'fade',
244
+ SHOW: 'show'
245
  /**
246
  * ------------------------------------------------------------------------
247
+ * Class Definition
248
  * ------------------------------------------------------------------------
249
  */
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
250
 
251
+ };
252
 
253
+ var Alert =
254
+ /*#__PURE__*/
255
+ function () {
256
+ function Alert(element) {
257
+ this._element = element;
258
+ } // Getters
259
 
260
 
261
+ var _proto = Alert.prototype;
262
 
263
+ // Public
264
+ _proto.close = function close(element) {
265
+ var rootElement = this._element;
266
 
267
+ if (element) {
268
+ rootElement = this._getRootElement(element);
269
+ }
270
 
271
+ var customEvent = this._triggerCloseEvent(rootElement);
272
 
273
+ if (customEvent.isDefaultPrevented()) {
274
+ return;
275
+ }
276
 
277
+ this._removeElement(rootElement);
278
+ };
279
 
280
+ _proto.dispose = function dispose() {
281
+ $.removeData(this._element, DATA_KEY);
282
+ this._element = null;
283
+ }; // Private
284
 
285
 
286
+ _proto._getRootElement = function _getRootElement(element) {
287
+ var selector = Util.getSelectorFromElement(element);
288
+ var parent = false;
289
 
290
+ if (selector) {
291
+ parent = document.querySelector(selector);
292
+ }
293
 
294
+ if (!parent) {
295
+ parent = $(element).closest("." + ClassName.ALERT)[0];
296
+ }
297
 
298
+ return parent;
299
+ };
300
 
301
+ _proto._triggerCloseEvent = function _triggerCloseEvent(element) {
302
+ var closeEvent = $.Event(Event.CLOSE);
303
+ $(element).trigger(closeEvent);
304
+ return closeEvent;
305
+ };
306
 
307
+ _proto._removeElement = function _removeElement(element) {
308
+ var _this = this;
309
 
310
+ $(element).removeClass(ClassName.SHOW);
311
 
312
+ if (!$(element).hasClass(ClassName.FADE)) {
313
+ this._destroyElement(element);
314
 
315
+ return;
316
+ }
317
 
318
+ var transitionDuration = Util.getTransitionDurationFromElement(element);
319
+ $(element).one(Util.TRANSITION_END, function (event) {
320
+ return _this._destroyElement(element, event);
321
+ }).emulateTransitionEnd(transitionDuration);
322
+ };
323
 
324
+ _proto._destroyElement = function _destroyElement(element) {
325
+ $(element).detach().trigger(Event.CLOSED).remove();
326
+ }; // Static
327
 
328
 
329
+ Alert._jQueryInterface = function _jQueryInterface(config) {
330
+ return this.each(function () {
331
+ var $element = $(this);
332
+ var data = $element.data(DATA_KEY);
333
 
334
+ if (!data) {
335
+ data = new Alert(this);
336
+ $element.data(DATA_KEY, data);
337
+ }
338
 
339
+ if (config === 'close') {
340
+ data[config](this);
341
+ }
342
+ });
343
+ };
344
 
345
+ Alert._handleDismiss = function _handleDismiss(alertInstance) {
346
+ return function (event) {
347
+ if (event) {
348
+ event.preventDefault();
349
+ }
350
 
351
+ alertInstance.close(this);
 
352
  };
353
+ };
354
 
355
+ _createClass(Alert, null, [{
356
+ key: "VERSION",
357
+ get: function get() {
358
+ return VERSION;
359
+ }
360
+ }]);
 
 
 
 
 
 
 
 
361
 
362
+ return Alert;
363
+ }();
364
+ /**
365
+ * ------------------------------------------------------------------------
366
+ * Data Api implementation
367
+ * ------------------------------------------------------------------------
368
+ */
369
 
 
 
 
 
 
 
370
 
371
+ $(document).on(Event.CLICK_DATA_API, Selector.DISMISS, Alert._handleDismiss(new Alert()));
372
+ /**
373
+ * ------------------------------------------------------------------------
374
+ * jQuery
375
+ * ------------------------------------------------------------------------
376
+ */
377
 
378
+ $.fn[NAME] = Alert._jQueryInterface;
379
+ $.fn[NAME].Constructor = Alert;
 
 
380
 
381
+ $.fn[NAME].noConflict = function () {
382
+ $.fn[NAME] = JQUERY_NO_CONFLICT;
383
+ return Alert._jQueryInterface;
384
+ };
385
 
386
  /**
387
+ * ------------------------------------------------------------------------
388
+ * Constants
389
+ * ------------------------------------------------------------------------
 
390
  */
391
 
392
+ var NAME$1 = 'button';
393
+ var VERSION$1 = '4.2.1';
394
+ var DATA_KEY$1 = 'bs.button';
395
+ var EVENT_KEY$1 = "." + DATA_KEY$1;
396
+ var DATA_API_KEY$1 = '.data-api';
397
+ var JQUERY_NO_CONFLICT$1 = $.fn[NAME$1];
398
+ var ClassName$1 = {
399
+ ACTIVE: 'active',
400
+ BUTTON: 'btn',
401
+ FOCUS: 'focus'
402
+ };
403
+ var Selector$1 = {
404
+ DATA_TOGGLE_CARROT: '[data-toggle^="button"]',
405
+ DATA_TOGGLE: '[data-toggle="buttons"]',
406
+ INPUT: 'input:not([type="hidden"])',
407
+ ACTIVE: '.active',
408
+ BUTTON: '.btn'
409
+ };
410
+ var Event$1 = {
411
+ CLICK_DATA_API: "click" + EVENT_KEY$1 + DATA_API_KEY$1,
412
+ FOCUS_BLUR_DATA_API: "focus" + EVENT_KEY$1 + DATA_API_KEY$1 + " " + ("blur" + EVENT_KEY$1 + DATA_API_KEY$1)
413
  /**
414
  * ------------------------------------------------------------------------
415
+ * Class Definition
416
  * ------------------------------------------------------------------------
417
  */
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
418
 
419
+ };
420
 
421
+ var Button =
422
+ /*#__PURE__*/
423
+ function () {
424
+ function Button(element) {
425
+ this._element = element;
426
+ } // Getters
427
 
428
 
429
+ var _proto = Button.prototype;
430
 
431
+ // Public
432
+ _proto.toggle = function toggle() {
433
+ var triggerChangeEvent = true;
434
+ var addAriaPressed = true;
435
+ var rootElement = $(this._element).closest(Selector$1.DATA_TOGGLE)[0];
436
 
437
+ if (rootElement) {
438
+ var input = this._element.querySelector(Selector$1.INPUT);
439
 
440
+ if (input) {
441
+ if (input.type === 'radio') {
442
+ if (input.checked && this._element.classList.contains(ClassName$1.ACTIVE)) {
443
+ triggerChangeEvent = false;
444
+ } else {
445
+ var activeElement = rootElement.querySelector(Selector$1.ACTIVE);
446
 
447
+ if (activeElement) {
448
+ $(activeElement).removeClass(ClassName$1.ACTIVE);
 
449
  }
450
  }
451
+ }
452
 
453
+ if (triggerChangeEvent) {
454
+ if (input.hasAttribute('disabled') || rootElement.hasAttribute('disabled') || input.classList.contains('disabled') || rootElement.classList.contains('disabled')) {
455
+ return;
 
 
 
 
456
  }
457
 
458
+ input.checked = !this._element.classList.contains(ClassName$1.ACTIVE);
459
+ $(input).trigger('change');
460
  }
 
461
 
462
+ input.focus();
463
+ addAriaPressed = false;
464
  }
465
+ }
466
 
467
+ if (addAriaPressed) {
468
+ this._element.setAttribute('aria-pressed', !this._element.classList.contains(ClassName$1.ACTIVE));
469
+ }
 
470
 
471
+ if (triggerChangeEvent) {
472
+ $(this._element).toggleClass(ClassName$1.ACTIVE);
473
+ }
474
+ };
475
 
476
+ _proto.dispose = function dispose() {
477
+ $.removeData(this._element, DATA_KEY$1);
478
+ this._element = null;
479
+ }; // Static
480
 
 
 
 
481
 
482
+ Button._jQueryInterface = function _jQueryInterface(config) {
483
+ return this.each(function () {
484
+ var data = $(this).data(DATA_KEY$1);
 
485
 
486
+ if (!data) {
487
+ data = new Button(this);
488
+ $(this).data(DATA_KEY$1, data);
489
+ }
 
490
 
491
+ if (config === 'toggle') {
492
+ data[config]();
 
 
493
  }
494
+ });
495
+ };
496
 
497
+ _createClass(Button, null, [{
498
+ key: "VERSION",
499
+ get: function get() {
500
+ return VERSION$1;
501
+ }
502
+ }]);
 
503
 
504
+ return Button;
505
+ }();
506
+ /**
507
+ * ------------------------------------------------------------------------
508
+ * Data Api implementation
509
+ * ------------------------------------------------------------------------
510
+ */
511
 
 
 
 
512
 
513
+ $(document).on(Event$1.CLICK_DATA_API, Selector$1.DATA_TOGGLE_CARROT, function (event) {
514
+ event.preventDefault();
515
+ var button = event.target;
516
 
517
+ if (!$(button).hasClass(ClassName$1.BUTTON)) {
518
+ button = $(button).closest(Selector$1.BUTTON);
519
+ }
 
 
 
 
 
 
 
520
 
521
+ Button._jQueryInterface.call($(button), 'toggle');
522
+ }).on(Event$1.FOCUS_BLUR_DATA_API, Selector$1.DATA_TOGGLE_CARROT, function (event) {
523
+ var button = $(event.target).closest(Selector$1.BUTTON)[0];
524
+ $(button).toggleClass(ClassName$1.FOCUS, /^focus(in)?$/.test(event.type));
525
+ });
526
+ /**
527
+ * ------------------------------------------------------------------------
528
+ * jQuery
529
+ * ------------------------------------------------------------------------
530
+ */
531
 
532
+ $.fn[NAME$1] = Button._jQueryInterface;
533
+ $.fn[NAME$1].Constructor = Button;
 
 
534
 
535
+ $.fn[NAME$1].noConflict = function () {
536
+ $.fn[NAME$1] = JQUERY_NO_CONFLICT$1;
537
+ return Button._jQueryInterface;
538
+ };
539
 
540
  /**
541
+ * ------------------------------------------------------------------------
542
+ * Constants
543
+ * ------------------------------------------------------------------------
 
544
  */
545
 
546
+ var NAME$2 = 'carousel';
547
+ var VERSION$2 = '4.2.1';
548
+ var DATA_KEY$2 = 'bs.carousel';
549
+ var EVENT_KEY$2 = "." + DATA_KEY$2;
550
+ var DATA_API_KEY$2 = '.data-api';
551
+ var JQUERY_NO_CONFLICT$2 = $.fn[NAME$2];
552
+ var ARROW_LEFT_KEYCODE = 37; // KeyboardEvent.which value for left arrow key
553
+
554
+ var ARROW_RIGHT_KEYCODE = 39; // KeyboardEvent.which value for right arrow key
555
+
556
+ var TOUCHEVENT_COMPAT_WAIT = 500; // Time for mouse compat events to fire after touch
557
+
558
+ var SWIPE_THRESHOLD = 40;
559
+ var Default = {
560
+ interval: 5000,
561
+ keyboard: true,
562
+ slide: false,
563
+ pause: 'hover',
564
+ wrap: true,
565
+ touch: true
566
+ };
567
+ var DefaultType = {
568
+ interval: '(number|boolean)',
569
+ keyboard: 'boolean',
570
+ slide: '(boolean|string)',
571
+ pause: '(string|boolean)',
572
+ wrap: 'boolean',
573
+ touch: 'boolean'
574
+ };
575
+ var Direction = {
576
+ NEXT: 'next',
577
+ PREV: 'prev',
578
+ LEFT: 'left',
579
+ RIGHT: 'right'
580
+ };
581
+ var Event$2 = {
582
+ SLIDE: "slide" + EVENT_KEY$2,
583
+ SLID: "slid" + EVENT_KEY$2,
584
+ KEYDOWN: "keydown" + EVENT_KEY$2,
585
+ MOUSEENTER: "mouseenter" + EVENT_KEY$2,
586
+ MOUSELEAVE: "mouseleave" + EVENT_KEY$2,
587
+ TOUCHSTART: "touchstart" + EVENT_KEY$2,
588
+ TOUCHMOVE: "touchmove" + EVENT_KEY$2,
589
+ TOUCHEND: "touchend" + EVENT_KEY$2,
590
+ POINTERDOWN: "pointerdown" + EVENT_KEY$2,
591
+ POINTERUP: "pointerup" + EVENT_KEY$2,
592
+ DRAG_START: "dragstart" + EVENT_KEY$2,
593
+ LOAD_DATA_API: "load" + EVENT_KEY$2 + DATA_API_KEY$2,
594
+ CLICK_DATA_API: "click" + EVENT_KEY$2 + DATA_API_KEY$2
595
+ };
596
+ var ClassName$2 = {
597
+ CAROUSEL: 'carousel',
598
+ ACTIVE: 'active',
599
+ SLIDE: 'slide',
600
+ RIGHT: 'carousel-item-right',
601
+ LEFT: 'carousel-item-left',
602
+ NEXT: 'carousel-item-next',
603
+ PREV: 'carousel-item-prev',
604
+ ITEM: 'carousel-item',
605
+ POINTER_EVENT: 'pointer-event'
606
+ };
607
+ var Selector$2 = {
608
+ ACTIVE: '.active',
609
+ ACTIVE_ITEM: '.active.carousel-item',
610
+ ITEM: '.carousel-item',
611
+ ITEM_IMG: '.carousel-item img',
612
+ NEXT_PREV: '.carousel-item-next, .carousel-item-prev',
613
+ INDICATORS: '.carousel-indicators',
614
+ DATA_SLIDE: '[data-slide], [data-slide-to]',
615
+ DATA_RIDE: '[data-ride="carousel"]'
616
+ };
617
+ var PointerType = {
618
+ TOUCH: 'touch',
619
+ PEN: 'pen'
620
  /**
621
  * ------------------------------------------------------------------------
622
+ * Class Definition
623
  * ------------------------------------------------------------------------
624
  */
625
+
626
+ };
627
+
628
+ var Carousel =
629
+ /*#__PURE__*/
630
+ function () {
631
+ function Carousel(element, config) {
632
+ this._items = null;
633
+ this._interval = null;
634
+ this._activeElement = null;
635
+ this._isPaused = false;
636
+ this._isSliding = false;
637
+ this.touchTimeout = null;
638
+ this.touchStartX = 0;
639
+ this.touchDeltaX = 0;
640
+ this._config = this._getConfig(config);
641
+ this._element = element;
642
+ this._indicatorsElement = this._element.querySelector(Selector$2.INDICATORS);
643
+ this._touchSupported = 'ontouchstart' in document.documentElement || navigator.maxTouchPoints > 0;
644
+ this._pointerEvent = Boolean(window.PointerEvent || window.MSPointerEvent);
645
+
646
+ this._addEventListeners();
647
+ } // Getters
648
+
649
+
650
+ var _proto = Carousel.prototype;
651
+
652
+ // Public
653
+ _proto.next = function next() {
654
+ if (!this._isSliding) {
655
+ this._slide(Direction.NEXT);
656
+ }
657
  };
658
+
659
+ _proto.nextWhenVisible = function nextWhenVisible() {
660
+ // Don't call next when the page isn't visible
661
+ // or the carousel or its parent isn't visible
662
+ if (!document.hidden && $(this._element).is(':visible') && $(this._element).css('visibility') !== 'hidden') {
663
+ this.next();
664
+ }
 
 
665
  };
666
+
667
+ _proto.prev = function prev() {
668
+ if (!this._isSliding) {
669
+ this._slide(Direction.PREV);
670
+ }
 
 
 
 
671
  };
 
 
 
 
 
 
 
 
 
 
 
 
 
672
 
673
+ _proto.pause = function pause(event) {
674
+ if (!event) {
675
+ this._isPaused = true;
676
+ }
677
+
678
+ if (this._element.querySelector(Selector$2.NEXT_PREV)) {
679
+ Util.triggerTransitionEnd(this._element);
680
+ this.cycle(true);
681
+ }
682
+
683
+ clearInterval(this._interval);
684
+ this._interval = null;
685
  };
686
 
687
+ _proto.cycle = function cycle(event) {
688
+ if (!event) {
 
 
 
 
 
689
  this._isPaused = false;
690
+ }
 
 
 
 
691
 
692
+ if (this._interval) {
693
+ clearInterval(this._interval);
694
+ this._interval = null;
695
+ }
696
 
697
+ if (this._config.interval && !this._isPaused) {
698
+ this._interval = setInterval((document.visibilityState ? this.nextWhenVisible : this.next).bind(this), this._config.interval);
699
+ }
700
+ };
701
 
702
+ _proto.to = function to(index) {
703
+ var _this = this;
704
 
705
+ this._activeElement = this._element.querySelector(Selector$2.ACTIVE_ITEM);
 
 
 
 
 
706
 
707
+ var activeIndex = this._getItemIndex(this._activeElement);
 
 
 
 
 
 
708
 
709
+ if (index > this._items.length - 1 || index < 0) {
710
+ return;
711
+ }
 
 
712
 
713
+ if (this._isSliding) {
714
+ $(this._element).one(Event$2.SLID, function () {
715
+ return _this.to(index);
716
+ });
717
+ return;
718
+ }
719
 
720
+ if (activeIndex === index) {
721
+ this.pause();
722
+ this.cycle();
723
+ return;
724
+ }
725
 
726
+ var direction = index > activeIndex ? Direction.NEXT : Direction.PREV;
 
 
727
 
728
+ this._slide(direction, this._items[index]);
729
+ };
 
 
730
 
731
+ _proto.dispose = function dispose() {
732
+ $(this._element).off(EVENT_KEY$2);
733
+ $.removeData(this._element, DATA_KEY$2);
734
+ this._items = null;
735
+ this._config = null;
736
+ this._element = null;
737
+ this._interval = null;
738
+ this._isPaused = null;
739
+ this._isSliding = null;
740
+ this._activeElement = null;
741
+ this._indicatorsElement = null;
742
+ }; // Private
743
+
744
+
745
+ _proto._getConfig = function _getConfig(config) {
746
+ config = _objectSpread({}, Default, config);
747
+ Util.typeCheckConfig(NAME$2, config, DefaultType);
748
+ return config;
749
+ };
750
 
751
+ _proto._handleSwipe = function _handleSwipe() {
752
+ var absDeltax = Math.abs(this.touchDeltaX);
 
 
753
 
754
+ if (absDeltax <= SWIPE_THRESHOLD) {
755
+ return;
756
+ }
757
 
758
+ var direction = absDeltax / this.touchDeltaX; // swipe left
759
 
760
+ if (direction > 0) {
761
+ this.prev();
762
+ } // swipe right
763
 
 
 
 
764
 
765
+ if (direction < 0) {
766
+ this.next();
767
+ }
768
+ };
 
 
 
 
 
 
 
 
769
 
770
+ _proto._addEventListeners = function _addEventListeners() {
771
+ var _this2 = this;
772
 
773
+ if (this._config.keyboard) {
774
+ $(this._element).on(Event$2.KEYDOWN, function (event) {
775
+ return _this2._keydown(event);
776
+ });
777
+ }
778
 
779
+ if (this._config.pause === 'hover') {
780
+ $(this._element).on(Event$2.MOUSEENTER, function (event) {
781
+ return _this2.pause(event);
782
+ }).on(Event$2.MOUSELEAVE, function (event) {
783
+ return _this2.cycle(event);
784
+ });
785
+ }
 
 
 
 
 
786
 
787
+ this._addTouchEventListeners();
788
+ };
789
 
790
+ _proto._addTouchEventListeners = function _addTouchEventListeners() {
791
+ var _this3 = this;
 
 
 
792
 
793
+ if (!this._touchSupported) {
794
+ return;
795
+ }
796
 
797
+ var start = function start(event) {
798
+ if (_this3._pointerEvent && PointerType[event.originalEvent.pointerType.toUpperCase()]) {
799
+ _this3.touchStartX = event.originalEvent.clientX;
800
+ } else if (!_this3._pointerEvent) {
801
+ _this3.touchStartX = event.originalEvent.touches[0].clientX;
802
  }
803
+ };
804
 
805
+ var move = function move(event) {
806
+ // ensure swiping with one touch and not pinching
807
+ if (event.originalEvent.touches && event.originalEvent.touches.length > 1) {
808
+ _this3.touchDeltaX = 0;
809
+ } else {
810
+ _this3.touchDeltaX = event.originalEvent.touches[0].clientX - _this3.touchStartX;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
811
  }
812
  };
813
 
814
+ var end = function end(event) {
815
+ if (_this3._pointerEvent && PointerType[event.originalEvent.pointerType.toUpperCase()]) {
816
+ _this3.touchDeltaX = event.originalEvent.clientX - _this3.touchStartX;
817
  }
818
 
819
+ _this3._handleSwipe();
 
 
 
 
820
 
821
+ if (_this3._config.pause === 'hover') {
822
+ // If it's a touch-enabled device, mouseenter/leave are fired as
823
+ // part of the mouse compatibility events on first tap - the carousel
824
+ // would stop cycling until user tapped out of it;
825
+ // here, we listen for touchend, explicitly pause the carousel
826
+ // (as if it's the second time we tap on it, mouseenter compat event
827
+ // is NOT fired) and after a timeout (to allow for mouse compatibility
828
+ // events to fire) we explicitly restart cycling
829
+ _this3.pause();
830
+
831
+ if (_this3.touchTimeout) {
832
+ clearTimeout(_this3.touchTimeout);
833
+ }
834
 
835
+ _this3.touchTimeout = setTimeout(function (event) {
836
+ return _this3.cycle(event);
837
+ }, TOUCHEVENT_COMPAT_WAIT + _this3._config.interval);
838
  }
839
  };
840
 
841
+ $(this._element.querySelectorAll(Selector$2.ITEM_IMG)).on(Event$2.DRAG_START, function (e) {
842
+ return e.preventDefault();
843
+ });
 
844
 
845
+ if (this._pointerEvent) {
846
+ $(this._element).on(Event$2.POINTERDOWN, function (event) {
847
+ return start(event);
848
+ });
849
+ $(this._element).on(Event$2.POINTERUP, function (event) {
850
+ return end(event);
851
+ });
852
 
853
+ this._element.classList.add(ClassName$2.POINTER_EVENT);
854
+ } else {
855
+ $(this._element).on(Event$2.TOUCHSTART, function (event) {
856
+ return start(event);
857
+ });
858
+ $(this._element).on(Event$2.TOUCHMOVE, function (event) {
859
+ return move(event);
860
+ });
861
+ $(this._element).on(Event$2.TOUCHEND, function (event) {
862
+ return end(event);
863
+ });
864
+ }
865
+ };
866
 
867
+ _proto._keydown = function _keydown(event) {
868
+ if (/input|textarea/i.test(event.target.tagName)) {
869
+ return;
870
+ }
871
 
872
+ switch (event.which) {
873
+ case ARROW_LEFT_KEYCODE:
874
+ event.preventDefault();
875
+ this.prev();
876
+ break;
877
 
878
+ case ARROW_RIGHT_KEYCODE:
879
+ event.preventDefault();
880
+ this.next();
881
+ break;
882
 
883
+ default:
884
+ }
885
+ };
886
 
887
+ _proto._getItemIndex = function _getItemIndex(element) {
888
+ this._items = element && element.parentNode ? [].slice.call(element.parentNode.querySelectorAll(Selector$2.ITEM)) : [];
889
+ return this._items.indexOf(element);
890
+ };
891
 
892
+ _proto._getItemByDirection = function _getItemByDirection(direction, activeElement) {
893
+ var isNextDirection = direction === Direction.NEXT;
894
+ var isPrevDirection = direction === Direction.PREV;
 
 
 
 
 
 
895
 
896
+ var activeIndex = this._getItemIndex(activeElement);
 
 
 
897
 
898
+ var lastItemIndex = this._items.length - 1;
899
+ var isGoingToWrap = isPrevDirection && activeIndex === 0 || isNextDirection && activeIndex === lastItemIndex;
900
 
901
+ if (isGoingToWrap && !this._config.wrap) {
902
+ return activeElement;
903
+ }
 
 
904
 
905
+ var delta = direction === Direction.PREV ? -1 : 1;
906
+ var itemIndex = (activeIndex + delta) % this._items.length;
907
+ return itemIndex === -1 ? this._items[this._items.length - 1] : this._items[itemIndex];
908
+ };
909
 
910
+ _proto._triggerSlideEvent = function _triggerSlideEvent(relatedTarget, eventDirectionName) {
911
+ var targetIndex = this._getItemIndex(relatedTarget);
912
 
913
+ var fromIndex = this._getItemIndex(this._element.querySelector(Selector$2.ACTIVE_ITEM));
914
 
915
+ var slideEvent = $.Event(Event$2.SLIDE, {
916
+ relatedTarget: relatedTarget,
917
+ direction: eventDirectionName,
918
+ from: fromIndex,
919
+ to: targetIndex
920
+ });
921
+ $(this._element).trigger(slideEvent);
922
+ return slideEvent;
923
+ };
924
 
925
+ _proto._setActiveIndicatorElement = function _setActiveIndicatorElement(element) {
926
+ if (this._indicatorsElement) {
927
+ var indicators = [].slice.call(this._indicatorsElement.querySelectorAll(Selector$2.ACTIVE));
928
+ $(indicators).removeClass(ClassName$2.ACTIVE);
929
 
930
+ var nextIndicator = this._indicatorsElement.children[this._getItemIndex(element)];
 
 
 
931
 
932
+ if (nextIndicator) {
933
+ $(nextIndicator).addClass(ClassName$2.ACTIVE);
 
 
 
 
 
 
934
  }
935
+ }
936
+ };
937
 
938
+ _proto._slide = function _slide(direction, element) {
939
+ var _this4 = this;
 
 
940
 
941
+ var activeElement = this._element.querySelector(Selector$2.ACTIVE_ITEM);
942
 
943
+ var activeElementIndex = this._getItemIndex(activeElement);
 
 
944
 
945
+ var nextElement = element || activeElement && this._getItemByDirection(direction, activeElement);
 
 
 
946
 
947
+ var nextElementIndex = this._getItemIndex(nextElement);
948
 
949
+ var isCycling = Boolean(this._interval);
950
+ var directionalClassName;
951
+ var orderClassName;
952
+ var eventDirectionName;
953
 
954
+ if (direction === Direction.NEXT) {
955
+ directionalClassName = ClassName$2.LEFT;
956
+ orderClassName = ClassName$2.NEXT;
957
+ eventDirectionName = Direction.LEFT;
958
+ } else {
959
+ directionalClassName = ClassName$2.RIGHT;
960
+ orderClassName = ClassName$2.PREV;
961
+ eventDirectionName = Direction.RIGHT;
962
+ }
963
 
964
+ if (nextElement && $(nextElement).hasClass(ClassName$2.ACTIVE)) {
965
+ this._isSliding = false;
966
+ return;
967
+ }
 
 
968
 
969
+ var slideEvent = this._triggerSlideEvent(nextElement, eventDirectionName);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
970
 
971
+ if (slideEvent.isDefaultPrevented()) {
972
+ return;
973
+ }
 
974
 
975
+ if (!activeElement || !nextElement) {
976
+ // Some weirdness is happening, so we bail
977
+ return;
978
+ }
979
 
980
+ this._isSliding = true;
 
 
981
 
982
+ if (isCycling) {
983
+ this.pause();
984
+ }
985
 
986
+ this._setActiveIndicatorElement(nextElement);
 
 
987
 
988
+ var slidEvent = $.Event(Event$2.SLID, {
989
+ relatedTarget: nextElement,
990
+ direction: eventDirectionName,
991
+ from: activeElementIndex,
992
+ to: nextElementIndex
993
+ });
994
 
995
+ if ($(this._element).hasClass(ClassName$2.SLIDE)) {
996
+ $(nextElement).addClass(orderClassName);
997
+ Util.reflow(nextElement);
998
+ $(activeElement).addClass(directionalClassName);
999
+ $(nextElement).addClass(directionalClassName);
1000
+ var nextElementInterval = parseInt(nextElement.getAttribute('data-interval'), 10);
1001
 
1002
+ if (nextElementInterval) {
1003
+ this._config.defaultInterval = this._config.defaultInterval || this._config.interval;
1004
+ this._config.interval = nextElementInterval;
1005
+ } else {
1006
+ this._config.interval = this._config.defaultInterval || this._config.interval;
1007
+ }
1008
 
1009
+ var transitionDuration = Util.getTransitionDurationFromElement(activeElement);
1010
+ $(activeElement).one(Util.TRANSITION_END, function () {
1011
+ $(nextElement).removeClass(directionalClassName + " " + orderClassName).addClass(ClassName$2.ACTIVE);
1012
+ $(activeElement).removeClass(ClassName$2.ACTIVE + " " + orderClassName + " " + directionalClassName);
1013
+ _this4._isSliding = false;
1014
+ setTimeout(function () {
1015
+ return $(_this4._element).trigger(slidEvent);
1016
+ }, 0);
1017
+ }).emulateTransitionEnd(transitionDuration);
1018
+ } else {
1019
+ $(activeElement).removeClass(ClassName$2.ACTIVE);
1020
+ $(nextElement).addClass(ClassName$2.ACTIVE);
1021
+ this._isSliding = false;
1022
+ $(this._element).trigger(slidEvent);
1023
+ }
1024
 
1025
+ if (isCycling) {
1026
+ this.cycle();
1027
+ }
1028
+ }; // Static
1029
 
 
 
 
1030
 
1031
+ Carousel._jQueryInterface = function _jQueryInterface(config) {
1032
+ return this.each(function () {
1033
+ var data = $(this).data(DATA_KEY$2);
1034
 
1035
+ var _config = _objectSpread({}, Default, $(this).data());
 
 
1036
 
1037
+ if (typeof config === 'object') {
1038
+ _config = _objectSpread({}, _config, config);
1039
+ }
1040
 
1041
+ var action = typeof config === 'string' ? config : _config.slide;
1042
 
1043
+ if (!data) {
1044
+ data = new Carousel(this, _config);
1045
+ $(this).data(DATA_KEY$2, data);
1046
  }
1047
 
1048
+ if (typeof config === 'number') {
1049
+ data.to(config);
1050
+ } else if (typeof action === 'string') {
1051
+ if (typeof data[action] === 'undefined') {
1052
+ throw new TypeError("No method named \"" + action + "\"");
1053
+ }
1054
 
1055
+ data[action]();
1056
+ } else if (_config.interval) {
1057
+ data.pause();
1058
+ data.cycle();
1059
  }
1060
+ });
1061
+ };
1062
 
1063
+ Carousel._dataApiClickHandler = function _dataApiClickHandler(event) {
1064
+ var selector = Util.getSelectorFromElement(this);
1065
 
1066
+ if (!selector) {
1067
+ return;
1068
+ }
 
 
 
 
 
 
 
 
1069
 
1070
+ var target = $(selector)[0];
 
 
 
 
 
 
1071
 
1072
+ if (!target || !$(target).hasClass(ClassName$2.CAROUSEL)) {
1073
+ return;
1074
+ }
1075
 
1076
+ var config = _objectSpread({}, $(target).data(), $(this).data());
 
 
1077
 
1078
+ var slideIndex = this.getAttribute('data-slide-to');
 
1079
 
1080
+ if (slideIndex) {
1081
+ config.interval = false;
1082
  }
 
 
 
 
 
 
1083
 
1084
+ Carousel._jQueryInterface.call($(target), config);
 
1085
 
1086
+ if (slideIndex) {
1087
+ $(target).data(DATA_KEY$2).to(slideIndex);
1088
+ }
1089
+
1090
+ event.preventDefault();
1091
  };
1092
 
1093
+ _createClass(Carousel, null, [{
1094
+ key: "VERSION",
1095
+ get: function get() {
1096
+ return VERSION$2;
1097
+ }
1098
+ }, {
1099
+ key: "Default",
1100
+ get: function get() {
1101
+ return Default;
1102
+ }
1103
+ }]);
1104
+
1105
  return Carousel;
1106
+ }();
1107
+ /**
1108
+ * ------------------------------------------------------------------------
1109
+ * Data Api implementation
1110
+ * ------------------------------------------------------------------------
1111
+ */
1112
+
1113
 
1114
+ $(document).on(Event$2.CLICK_DATA_API, Selector$2.DATA_SLIDE, Carousel._dataApiClickHandler);
1115
+ $(window).on(Event$2.LOAD_DATA_API, function () {
1116
+ var carousels = [].slice.call(document.querySelectorAll(Selector$2.DATA_RIDE));
1117
+
1118
+ for (var i = 0, len = carousels.length; i < len; i++) {
1119
+ var $carousel = $(carousels[i]);
1120
+
1121
+ Carousel._jQueryInterface.call($carousel, $carousel.data());
1122
+ }
1123
+ });
1124
  /**
1125
+ * ------------------------------------------------------------------------
1126
+ * jQuery
1127
+ * ------------------------------------------------------------------------
1128
+ */
1129
+
1130
+ $.fn[NAME$2] = Carousel._jQueryInterface;
1131
+ $.fn[NAME$2].Constructor = Carousel;
1132
+
1133
+ $.fn[NAME$2].noConflict = function () {
1134
+ $.fn[NAME$2] = JQUERY_NO_CONFLICT$2;
1135
+ return Carousel._jQueryInterface;
1136
+ };
1137
+
1138
+ /**
1139
+ * ------------------------------------------------------------------------
1140
+ * Constants
1141
+ * ------------------------------------------------------------------------
1142
  */
1143
 
1144
+ var NAME$3 = 'collapse';
1145
+ var VERSION$3 = '4.2.1';
1146
+ var DATA_KEY$3 = 'bs.collapse';
1147
+ var EVENT_KEY$3 = "." + DATA_KEY$3;
1148
+ var DATA_API_KEY$3 = '.data-api';
1149
+ var JQUERY_NO_CONFLICT$3 = $.fn[NAME$3];
1150
+ var Default$1 = {
1151
+ toggle: true,
1152
+ parent: ''
1153
+ };
1154
+ var DefaultType$1 = {
1155
+ toggle: 'boolean',
1156
+ parent: '(string|element)'
1157
+ };
1158
+ var Event$3 = {
1159
+ SHOW: "show" + EVENT_KEY$3,
1160
+ SHOWN: "shown" + EVENT_KEY$3,
1161
+ HIDE: "hide" + EVENT_KEY$3,
1162
+ HIDDEN: "hidden" + EVENT_KEY$3,
1163
+ CLICK_DATA_API: "click" + EVENT_KEY$3 + DATA_API_KEY$3
1164
+ };
1165
+ var ClassName$3 = {
1166
+ SHOW: 'show',
1167
+ COLLAPSE: 'collapse',
1168
+ COLLAPSING: 'collapsing',
1169
+ COLLAPSED: 'collapsed'
1170
+ };
1171
+ var Dimension = {
1172
+ WIDTH: 'width',
1173
+ HEIGHT: 'height'
1174
+ };
1175
+ var Selector$3 = {
1176
+ ACTIVES: '.show, .collapsing',
1177
+ DATA_TOGGLE: '[data-toggle="collapse"]'
1178
  /**
1179
  * ------------------------------------------------------------------------
1180
+ * Class Definition
1181
  * ------------------------------------------------------------------------
1182
  */
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1183
 
1184
+ };
1185
 
1186
+ var Collapse =
1187
+ /*#__PURE__*/
1188
+ function () {
1189
+ function Collapse(element, config) {
1190
+ this._isTransitioning = false;
1191
+ this._element = element;
1192
+ this._config = this._getConfig(config);
1193
+ this._triggerArray = [].slice.call(document.querySelectorAll("[data-toggle=\"collapse\"][href=\"#" + element.id + "\"]," + ("[data-toggle=\"collapse\"][data-target=\"#" + element.id + "\"]")));
1194
+ var toggleList = [].slice.call(document.querySelectorAll(Selector$3.DATA_TOGGLE));
1195
+
1196
+ for (var i = 0, len = toggleList.length; i < len; i++) {
1197
+ var elem = toggleList[i];
1198
+ var selector = Util.getSelectorFromElement(elem);
1199
+ var filterElement = [].slice.call(document.querySelectorAll(selector)).filter(function (foundElem) {
1200
+ return foundElem === element;
1201
+ });
1202
 
1203
+ if (selector !== null && filterElement.length > 0) {
1204
+ this._selector = selector;
1205
 
1206
+ this._triggerArray.push(elem);
 
1207
  }
1208
+ }
1209
 
1210
+ this._parent = this._config.parent ? this._getParent() : null;
1211
 
1212
+ if (!this._config.parent) {
1213
+ this._addAriaAndCollapsedClass(this._element, this._triggerArray);
1214
+ }
1215
 
1216
+ if (this._config.toggle) {
1217
+ this.toggle();
1218
+ }
1219
+ } // Getters
1220
 
1221
 
1222
+ var _proto = Collapse.prototype;
1223
 
1224
+ // Public
1225
+ _proto.toggle = function toggle() {
1226
+ if ($(this._element).hasClass(ClassName$3.SHOW)) {
1227
+ this.hide();
1228
+ } else {
1229
+ this.show();
1230
+ }
1231
+ };
1232
 
1233
+ _proto.show = function show() {
1234
+ var _this = this;
1235
 
1236
+ if (this._isTransitioning || $(this._element).hasClass(ClassName$3.SHOW)) {
1237
+ return;
1238
+ }
1239
 
1240
+ var actives;
1241
+ var activesData;
1242
 
1243
+ if (this._parent) {
1244
+ actives = [].slice.call(this._parent.querySelectorAll(Selector$3.ACTIVES)).filter(function (elem) {
1245
+ if (typeof _this._config.parent === 'string') {
1246
  return elem.getAttribute('data-parent') === _this._config.parent;
 
 
 
 
1247
  }
 
1248
 
1249
+ return elem.classList.contains(ClassName$3.COLLAPSE);
1250
+ });
1251
 
1252
+ if (actives.length === 0) {
1253
+ actives = null;
 
1254
  }
1255
+ }
1256
 
1257
+ if (actives) {
1258
+ activesData = $(actives).not(this._selector).data(DATA_KEY$3);
1259
 
1260
+ if (activesData && activesData._isTransitioning) {
1261
  return;
1262
  }
1263
+ }
1264
 
1265
+ var startEvent = $.Event(Event$3.SHOW);
1266
+ $(this._element).trigger(startEvent);
 
 
 
 
 
1267
 
1268
+ if (startEvent.isDefaultPrevented()) {
1269
+ return;
1270
+ }
1271
 
1272
+ if (actives) {
1273
+ Collapse._jQueryInterface.call($(actives).not(this._selector), 'hide');
1274
 
1275
+ if (!activesData) {
1276
+ $(actives).data(DATA_KEY$3, null);
1277
  }
1278
+ }
1279
 
1280
+ var dimension = this._getDimension();
1281
 
1282
+ $(this._element).removeClass(ClassName$3.COLLAPSE).addClass(ClassName$3.COLLAPSING);
1283
+ this._element.style[dimension] = 0;
 
1284
 
1285
+ if (this._triggerArray.length) {
1286
+ $(this._triggerArray).removeClass(ClassName$3.COLLAPSED).attr('aria-expanded', true);
1287
+ }
1288
 
1289
+ this.setTransitioning(true);
 
1290
 
1291
+ var complete = function complete() {
1292
+ $(_this._element).removeClass(ClassName$3.COLLAPSING).addClass(ClassName$3.COLLAPSE).addClass(ClassName$3.SHOW);
1293
+ _this._element.style[dimension] = '';
1294
+
1295
+ _this.setTransitioning(false);
1296
+
1297
+ $(_this._element).trigger(Event$3.SHOWN);
1298
  };
1299
 
1300
+ var capitalizedDimension = dimension[0].toUpperCase() + dimension.slice(1);
1301
+ var scrollSize = "scroll" + capitalizedDimension;
1302
+ var transitionDuration = Util.getTransitionDurationFromElement(this._element);
1303
+ $(this._element).one(Util.TRANSITION_END, complete).emulateTransitionEnd(transitionDuration);
1304
+ this._element.style[dimension] = this._element[scrollSize] + "px";
1305
+ };
1306
+
1307
+ _proto.hide = function hide() {
1308
+ var _this2 = this;
1309
 
1310
+ if (this._isTransitioning || !$(this._element).hasClass(ClassName$3.SHOW)) {
1311
+ return;
1312
+ }
1313
 
1314
+ var startEvent = $.Event(Event$3.HIDE);
1315
+ $(this._element).trigger(startEvent);
1316
 
1317
+ if (startEvent.isDefaultPrevented()) {
1318
+ return;
1319
+ }
1320
 
1321
+ var dimension = this._getDimension();
1322
 
1323
+ this._element.style[dimension] = this._element.getBoundingClientRect()[dimension] + "px";
1324
+ Util.reflow(this._element);
1325
+ $(this._element).addClass(ClassName$3.COLLAPSING).removeClass(ClassName$3.COLLAPSE).removeClass(ClassName$3.SHOW);
1326
+ var triggerArrayLength = this._triggerArray.length;
1327
 
1328
+ if (triggerArrayLength > 0) {
1329
+ for (var i = 0; i < triggerArrayLength; i++) {
1330
+ var trigger = this._triggerArray[i];
1331
+ var selector = Util.getSelectorFromElement(trigger);
1332
 
1333
+ if (selector !== null) {
1334
+ var $elem = $([].slice.call(document.querySelectorAll(selector)));
1335
 
1336
+ if (!$elem.hasClass(ClassName$3.SHOW)) {
1337
+ $(trigger).addClass(ClassName$3.COLLAPSED).attr('aria-expanded', false);
 
1338
  }
1339
  }
1340
  }
1341
+ }
1342
 
1343
+ this.setTransitioning(true);
 
 
 
1344
 
1345
+ var complete = function complete() {
1346
+ _this2.setTransitioning(false);
1347
 
1348
+ $(_this2._element).removeClass(ClassName$3.COLLAPSING).addClass(ClassName$3.COLLAPSE).trigger(Event$3.HIDDEN);
 
 
1349
  };
1350
 
1351
+ this._element.style[dimension] = '';
1352
+ var transitionDuration = Util.getTransitionDurationFromElement(this._element);
1353
+ $(this._element).one(Util.TRANSITION_END, complete).emulateTransitionEnd(transitionDuration);
1354
+ };
1355
 
1356
+ _proto.setTransitioning = function setTransitioning(isTransitioning) {
1357
+ this._isTransitioning = isTransitioning;
1358
+ };
 
 
 
 
 
1359
 
1360
+ _proto.dispose = function dispose() {
1361
+ $.removeData(this._element, DATA_KEY$3);
1362
+ this._config = null;
1363
+ this._parent = null;
1364
+ this._element = null;
1365
+ this._triggerArray = null;
1366
+ this._isTransitioning = null;
1367
+ }; // Private
1368
 
 
 
 
1369
 
1370
+ _proto._getConfig = function _getConfig(config) {
1371
+ config = _objectSpread({}, Default$1, config);
1372
+ config.toggle = Boolean(config.toggle); // Coerce string values
1373
 
1374
+ Util.typeCheckConfig(NAME$3, config, DefaultType$1);
1375
+ return config;
1376
+ };
 
1377
 
1378
+ _proto._getDimension = function _getDimension() {
1379
+ var hasWidth = $(this._element).hasClass(Dimension.WIDTH);
1380
+ return hasWidth ? Dimension.WIDTH : Dimension.HEIGHT;
1381
+ };
1382
 
1383
+ _proto._getParent = function _getParent() {
1384
+ var _this3 = this;
1385
 
1386
+ var parent;
 
1387
 
1388
+ if (Util.isElement(this._config.parent)) {
1389
+ parent = this._config.parent; // It's a jQuery object
 
 
 
 
1390
 
1391
+ if (typeof this._config.parent.jquery !== 'undefined') {
1392
+ parent = this._config.parent[0];
1393
+ }
1394
+ } else {
1395
+ parent = document.querySelector(this._config.parent);
1396
+ }
 
1397
 
1398
+ var selector = "[data-toggle=\"collapse\"][data-parent=\"" + this._config.parent + "\"]";
1399
+ var children = [].slice.call(parent.querySelectorAll(selector));
1400
+ $(children).each(function (i, element) {
1401
+ _this3._addAriaAndCollapsedClass(Collapse._getTargetFromElement(element), [element]);
1402
+ });
1403
+ return parent;
1404
+ };
1405
 
1406
+ _proto._addAriaAndCollapsedClass = function _addAriaAndCollapsedClass(element, triggerArray) {
1407
+ var isOpen = $(element).hasClass(ClassName$3.SHOW);
 
 
 
1408
 
1409
+ if (triggerArray.length) {
1410
+ $(triggerArray).toggleClass(ClassName$3.COLLAPSED, !isOpen).attr('aria-expanded', isOpen);
1411
+ }
1412
+ }; // Static
1413
 
 
 
 
 
1414
 
1415
+ Collapse._getTargetFromElement = function _getTargetFromElement(element) {
1416
+ var selector = Util.getSelectorFromElement(element);
1417
+ return selector ? document.querySelector(selector) : null;
1418
+ };
1419
 
1420
+ Collapse._jQueryInterface = function _jQueryInterface(config) {
1421
+ return this.each(function () {
1422
+ var $this = $(this);
1423
+ var data = $this.data(DATA_KEY$3);
1424
 
1425
+ var _config = _objectSpread({}, Default$1, $this.data(), typeof config === 'object' && config ? config : {});
 
 
1426
 
1427
+ if (!data && _config.toggle && /show|hide/.test(config)) {
1428
+ _config.toggle = false;
1429
+ }
 
1430
 
1431
+ if (!data) {
1432
+ data = new Collapse(this, _config);
1433
+ $this.data(DATA_KEY$3, data);
1434
+ }
1435
 
1436
+ if (typeof config === 'string') {
1437
+ if (typeof data[config] === 'undefined') {
1438
+ throw new TypeError("No method named \"" + config + "\"");
1439
  }
 
 
1440
 
1441
+ data[config]();
 
 
 
 
 
 
 
 
1442
  }
1443
+ });
1444
+ };
1445
 
1446
+ _createClass(Collapse, null, [{
1447
+ key: "VERSION",
1448
+ get: function get() {
1449
+ return VERSION$3;
1450
+ }
1451
+ }, {
1452
+ key: "Default",
1453
+ get: function get() {
1454
+ return Default$1;
1455
+ }
1456
+ }]);
1457
 
1458
+ return Collapse;
1459
+ }();
1460
+ /**
1461
+ * ------------------------------------------------------------------------
1462
+ * Data Api implementation
1463
+ * ------------------------------------------------------------------------
1464
+ */
1465
 
 
 
 
 
 
1466
 
1467
+ $(document).on(Event$3.CLICK_DATA_API, Selector$3.DATA_TOGGLE, function (event) {
1468
+ // preventDefault only for <a> elements (which change the URL) not inside the collapsible element
1469
+ if (event.currentTarget.tagName === 'A') {
1470
+ event.preventDefault();
1471
+ }
 
 
1472
 
1473
+ var $trigger = $(this);
1474
+ var selector = Util.getSelectorFromElement(this);
1475
+ var selectors = [].slice.call(document.querySelectorAll(selector));
1476
+ $(selectors).each(function () {
1477
+ var $target = $(this);
1478
+ var data = $target.data(DATA_KEY$3);
1479
+ var config = data ? 'toggle' : $trigger.data();
 
1480
 
1481
+ Collapse._jQueryInterface.call($target, config);
1482
+ });
1483
+ });
1484
+ /**
1485
+ * ------------------------------------------------------------------------
1486
+ * jQuery
1487
+ * ------------------------------------------------------------------------
1488
+ */
1489
 
1490
+ $.fn[NAME$3] = Collapse._jQueryInterface;
1491
+ $.fn[NAME$3].Constructor = Collapse;
 
 
1492
 
1493
+ $.fn[NAME$3].noConflict = function () {
1494
+ $.fn[NAME$3] = JQUERY_NO_CONFLICT$3;
1495
+ return Collapse._jQueryInterface;
1496
+ };
1497
 
1498
  /**!
1499
  * @fileOverview Kickass library to create and place poppers near their reference elements.
1500
+ * @version 1.14.6
1501
  * @license
1502
  * Copyright (c) 2016 Federico Zivolo and contributors
1503
  *
1594
  return [];
1595
  }
1596
  // NOTE: 1 DOM access here
1597
+ var window = element.ownerDocument.defaultView;
1598
+ var css = window.getComputedStyle(element, null);
1599
  return property ? css[property] : css;
1600
  }
1601
 
1683
  var noOffsetParent = isIE(10) ? document.body : null;
1684
 
1685
  // NOTE: 1 DOM access here
1686
+ var offsetParent = element.offsetParent || null;
1687
  // Skip hidden elements which don't have an offsetParent
1688
  while (offsetParent === noOffsetParent && element.nextElementSibling) {
1689
  offsetParent = (element = element.nextElementSibling).offsetParent;
1695
  return element ? element.ownerDocument.documentElement : document.documentElement;
1696
  }
1697
 
1698
+ // .offsetParent will return the closest TH, TD or TABLE in case
1699
  // no offsetParent is present, I hate this job...
1700
+ if (['TH', 'TD', 'TABLE'].indexOf(offsetParent.nodeName) !== -1 && getStyleComputedProperty(offsetParent, 'position') === 'static') {
1701
  return getOffsetParent(offsetParent);
1702
  }
1703
 
1835
  }
1836
 
1837
  function getSize(axis, body, html, computedStyle) {
1838
+ return Math.max(body['offset' + axis], body['scroll' + axis], html['client' + axis], html['offset' + axis], html['scroll' + axis], isIE(10) ? parseInt(html['offset' + axis]) + parseInt(computedStyle['margin' + (axis === 'Height' ? 'Top' : 'Left')]) + parseInt(computedStyle['margin' + (axis === 'Height' ? 'Bottom' : 'Right')]) : 0);
1839
  }
1840
 
1841
+ function getWindowSizes(document) {
1842
  var body = document.body;
1843
  var html = document.documentElement;
1844
  var computedStyle = isIE(10) && getComputedStyle(html);
1955
  };
1956
 
1957
  // subtract scrollbar size from sizes
1958
+ var sizes = element.nodeName === 'HTML' ? getWindowSizes(element.ownerDocument) : {};
1959
  var width = sizes.width || element.clientWidth || result.right - result.left;
1960
  var height = sizes.height || element.clientHeight || result.bottom - result.top;
1961
 
1990
  var borderLeftWidth = parseFloat(styles.borderLeftWidth, 10);
1991
 
1992
  // In cases where the parent is fixed, we must ignore negative scroll in offset calc
1993
+ if (fixedPosition && isHTML) {
1994
  parentRect.top = Math.max(parentRect.top, 0);
1995
  parentRect.left = Math.max(parentRect.left, 0);
1996
  }
2128
 
2129
  // In case of HTML, we need a different computation
2130
  if (boundariesNode.nodeName === 'HTML' && !isFixed(offsetParent)) {
2131
+ var _getWindowSizes = getWindowSizes(popper.ownerDocument),
2132
  height = _getWindowSizes.height,
2133
  width = _getWindowSizes.width;
2134
 
2143
  }
2144
 
2145
  // Add paddings
2146
+ padding = padding || 0;
2147
+ var isPaddingNumber = typeof padding === 'number';
2148
+ boundaries.left += isPaddingNumber ? padding : padding.left || 0;
2149
+ boundaries.top += isPaddingNumber ? padding : padding.top || 0;
2150
+ boundaries.right -= isPaddingNumber ? padding : padding.right || 0;
2151
+ boundaries.bottom -= isPaddingNumber ? padding : padding.bottom || 0;
2152
 
2153
  return boundaries;
2154
  }
2245
  * @returns {Object} object containing width and height properties
2246
  */
2247
  function getOuterSizes(element) {
2248
+ var window = element.ownerDocument.defaultView;
2249
+ var styles = window.getComputedStyle(element);
2250
+ var x = parseFloat(styles.marginTop || 0) + parseFloat(styles.marginBottom || 0);
2251
+ var y = parseFloat(styles.marginLeft || 0) + parseFloat(styles.marginRight || 0);
2252
  var result = {
2253
  width: element.offsetWidth + y,
2254
  height: element.offsetHeight + x
2474
  }
2475
 
2476
  /**
2477
+ * Destroys the popper.
2478
  * @method
2479
  * @memberof Popper
2480
  */
2581
 
2582
  /**
2583
  * It will remove resize/scroll events and won't recalculate popper position
2584
+ * when they are triggered. It also won't trigger `onUpdate` callback anymore,
2585
  * unless you call `update` method manually.
2586
  * @method
2587
  * @memberof Popper
2698
  return options;
2699
  }
2700
 
2701
+ /**
2702
+ * @function
2703
+ * @memberof Popper.Utils
2704
+ * @argument {Object} data - The data object generated by `update` method
2705
+ * @argument {Boolean} shouldRound - If the offsets should be rounded at all
2706
+ * @returns {Object} The popper's position offsets rounded
2707
+ *
2708
+ * The tale of pixel-perfect positioning. It's still not 100% perfect, but as
2709
+ * good as it can be within reason.
2710
+ * Discussion here: https://github.com/FezVrasta/popper.js/pull/715
2711
+ *
2712
+ * Low DPI screens cause a popper to be blurry if not using full pixels (Safari
2713
+ * as well on High DPI screens).
2714
+ *
2715
+ * Firefox prefers no rounding for positioning and does not have blurriness on
2716
+ * high DPI screens.
2717
+ *
2718
+ * Only horizontal placement and left/right values need to be considered.
2719
+ */
2720
+ function getRoundedOffsets(data, shouldRound) {
2721
+ var _data$offsets = data.offsets,
2722
+ popper = _data$offsets.popper,
2723
+ reference = _data$offsets.reference;
2724
+
2725
+
2726
+ var isVertical = ['left', 'right'].indexOf(data.placement) !== -1;
2727
+ var isVariation = data.placement.indexOf('-') !== -1;
2728
+ var sameWidthOddness = reference.width % 2 === popper.width % 2;
2729
+ var bothOddWidth = reference.width % 2 === 1 && popper.width % 2 === 1;
2730
+ var noRound = function noRound(v) {
2731
+ return v;
2732
+ };
2733
+
2734
+ var horizontalToInteger = !shouldRound ? noRound : isVertical || isVariation || sameWidthOddness ? Math.round : Math.floor;
2735
+ var verticalToInteger = !shouldRound ? noRound : Math.round;
2736
+
2737
+ return {
2738
+ left: horizontalToInteger(bothOddWidth && !isVariation && shouldRound ? popper.left - 1 : popper.left),
2739
+ top: verticalToInteger(popper.top),
2740
+ bottom: verticalToInteger(popper.bottom),
2741
+ right: horizontalToInteger(popper.right)
2742
+ };
2743
+ }
2744
+
2745
+ var isFirefox = isBrowser && /Firefox/i.test(navigator.userAgent);
2746
+
2747
  /**
2748
  * @function
2749
  * @memberof Modifiers
2774
  position: popper.position
2775
  };
2776
 
2777
+ var offsets = getRoundedOffsets(data, window.devicePixelRatio < 2 || !isFirefox);
 
 
 
 
 
 
 
 
2778
 
2779
  var sideA = x === 'bottom' ? 'top' : 'bottom';
2780
  var sideB = y === 'right' ? 'left' : 'right';
2796
  var left = void 0,
2797
  top = void 0;
2798
  if (sideA === 'bottom') {
2799
+ // when offsetParent is <html> the positioning is relative to the bottom of the screen (excluding the scrollbar)
2800
+ // and not the bottom of the html element
2801
+ if (offsetParent.nodeName === 'HTML') {
2802
+ top = -offsetParent.clientHeight + offsets.bottom;
2803
+ } else {
2804
+ top = -offsetParentRect.height + offsets.bottom;
2805
+ }
2806
  } else {
2807
  top = offsets.top;
2808
  }
2809
  if (sideB === 'right') {
2810
+ if (offsetParent.nodeName === 'HTML') {
2811
+ left = -offsetParent.clientWidth + offsets.right;
2812
+ } else {
2813
+ left = -offsetParentRect.width + offsets.right;
2814
+ }
2815
  } else {
2816
  left = offsets.left;
2817
  }
2920
 
2921
  //
2922
  // extends keepTogether behavior making sure the popper and its
2923
+ // reference have enough pixels in conjunction
2924
  //
2925
 
2926
  // top/left side
2990
  * - `top-end` (on top of reference, right aligned)
2991
  * - `right-start` (on right of reference, top aligned)
2992
  * - `bottom` (on bottom, centered)
2993
+ * - `auto-end` (on the side with more space available, alignment depends by placement)
2994
  *
2995
  * @static
2996
  * @type {Array}
3532
  * The `offset` modifier can shift your popper on both its axis.
3533
  *
3534
  * It accepts the following units:
3535
+ * - `px` or unit-less, interpreted as pixels
3536
  * - `%` or `%r`, percentage relative to the length of the reference element
3537
  * - `%p`, percentage relative to the length of the popper element
3538
  * - `vw`, CSS viewport width unit
3540
  *
3541
  * For length is intended the main axis relative to the placement of the popper.<br />
3542
  * This means that if the placement is `top` or `bottom`, the length will be the
3543
+ * `width`. In case of `left` or `right`, it will be the `height`.
3544
  *
3545
  * You can provide a single value (as `Number` or `String`), or a pair of values
3546
  * as `String` divided by a comma or one (or more) white spaces.<br />
3561
  * ```
3562
  * > **NB**: If you desire to apply offsets to your poppers in a way that may make them overlap
3563
  * > with their reference element, unfortunately, you will have to disable the `flip` modifier.
3564
+ * > You can read more on this at this [issue](https://github.com/FezVrasta/popper.js/issues/373).
3565
  *
3566
  * @memberof modifiers
3567
  * @inner
3582
  /**
3583
  * Modifier used to prevent the popper from being positioned outside the boundary.
3584
  *
3585
+ * A scenario exists where the reference itself is not within the boundaries.<br />
3586
  * We can say it has "escaped the boundaries" — or just "escaped".<br />
3587
  * In this case we need to decide whether the popper should either:
3588
  *
3612
  /**
3613
  * @prop {number} padding=5
3614
  * Amount of pixel used to define a minimum distance between the boundaries
3615
+ * and the popper. This makes sure the popper always has a little padding
3616
  * between the edges of its container
3617
  */
3618
  padding: 5,
3619
  /**
3620
  * @prop {String|HTMLElement} boundariesElement='scrollParent'
3621
+ * Boundaries used by the modifier. Can be `scrollParent`, `window`,
3622
  * `viewport` or any DOM element.
3623
  */
3624
  boundariesElement: 'scrollParent'
3625
  },
3626
 
3627
  /**
3628
+ * Modifier used to make sure the reference and its popper stay near each other
3629
+ * without leaving any gap between the two. Especially useful when the arrow is
3630
+ * enabled and you want to ensure that it points to its reference element.
3631
+ * It cares only about the first axis. You can still have poppers with margin
3632
  * between the popper and its reference element.
3633
  * @memberof modifiers
3634
  * @inner
3646
  * This modifier is used to move the `arrowElement` of the popper to make
3647
  * sure it is positioned between the reference element and its popper element.
3648
  * It will read the outer size of the `arrowElement` node to detect how many
3649
+ * pixels of conjunction are needed.
3650
  *
3651
  * It has no effect if no `arrowElement` is provided.
3652
  * @memberof modifiers
3685
  * @prop {String|Array} behavior='flip'
3686
  * The behavior used to change the popper's placement. It can be one of
3687
  * `flip`, `clockwise`, `counterclockwise` or an array with a list of valid
3688
+ * placements (with optional variations)
3689
  */
3690
  behavior: 'flip',
3691
  /**
3695
  padding: 5,
3696
  /**
3697
  * @prop {String|HTMLElement} boundariesElement='viewport'
3698
+ * The element which will define the boundaries of the popper position.
3699
+ * The popper will never be placed outside of the defined boundaries
3700
+ * (except if `keepTogether` is enabled)
3701
  */
3702
  boundariesElement: 'viewport'
3703
  },
3761
  fn: computeStyle,
3762
  /**
3763
  * @prop {Boolean} gpuAcceleration=true
3764
+ * If true, it uses the CSS 3D transformation to position the popper.
3765
+ * Otherwise, it will use the `top` and `left` properties
3766
  */
3767
  gpuAcceleration: true,
3768
  /**
3789
  * Note that if you disable this modifier, you must make sure the popper element
3790
  * has its position set to `absolute` before Popper.js can do its work!
3791
  *
3792
+ * Just disable this modifier and define your own to achieve the desired effect.
3793
  *
3794
  * @memberof modifiers
3795
  * @inner
3806
  /**
3807
  * @deprecated since version 1.10.0, the property moved to `computeStyle` modifier
3808
  * @prop {Boolean} gpuAcceleration=true
3809
+ * If true, it uses the CSS 3D transformation to position the popper.
3810
+ * Otherwise, it will use the `top` and `left` properties
3811
  */
3812
  gpuAcceleration: undefined
3813
  }
3814
  };
3815
 
3816
  /**
3817
+ * The `dataObject` is an object containing all the information used by Popper.js.
3818
+ * This object is passed to modifiers and to the `onCreate` and `onUpdate` callbacks.
3819
  * @name dataObject
3820
  * @property {Object} data.instance The Popper.js instance
3821
  * @property {String} data.placement Placement applied to popper
3822
  * @property {String} data.originalPlacement Placement originally defined on init
3823
  * @property {Boolean} data.flipped True if popper has been flipped by flip modifier
3824
+ * @property {Boolean} data.hide True if the reference element is out of boundaries, useful to know when to hide the popper
3825
  * @property {HTMLElement} data.arrowElement Node used as arrow by arrow modifier
3826
+ * @property {Object} data.styles Any CSS property defined here will be applied to the popper. It expects the JavaScript nomenclature (eg. `marginBottom`)
3827
+ * @property {Object} data.arrowStyles Any CSS property defined here will be applied to the popper arrow. It expects the JavaScript nomenclature (eg. `marginBottom`)
3828
  * @property {Object} data.boundaries Offsets of the popper boundaries
3829
+ * @property {Object} data.offsets The measurements of popper, reference and arrow elements
3830
  * @property {Object} data.offsets.popper `top`, `left`, `width`, `height` values
3831
  * @property {Object} data.offsets.reference `top`, `left`, `width`, `height` values
3832
  * @property {Object} data.offsets.arrow] `top` and `left` offsets, only one of them will be different from 0
3834
 
3835
  /**
3836
  * Default options provided to Popper.js constructor.<br />
3837
+ * These can be overridden using the `options` argument of Popper.js.<br />
3838
+ * To override an option, simply pass an object with the same
3839
+ * structure of the `options` object, as the 3rd argument. For example:
3840
  * ```
3841
  * new Popper(ref, pop, {
3842
  * modifiers: {
3850
  */
3851
  var Defaults = {
3852
  /**
3853
+ * Popper's placement.
3854
  * @prop {Popper.placements} placement='bottom'
3855
  */
3856
  placement: 'bottom',
3862
  positionFixed: false,
3863
 
3864
  /**
3865
+ * Whether events (resize, scroll) are initially enabled.
3866
  * @prop {Boolean} eventsEnabled=true
3867
  */
3868
  eventsEnabled: true,
3876
 
3877
  /**
3878
  * Callback called when the popper is created.<br />
3879
+ * By default, it is set to no-op.<br />
3880
  * Access Popper.js instance with `data.instance`.
3881
  * @prop {onCreate}
3882
  */
3883
  onCreate: function onCreate() {},
3884
 
3885
  /**
3886
+ * Callback called when the popper is updated. This callback is not called
3887
  * on the initialization/creation of the popper, but only on subsequent
3888
  * updates.<br />
3889
+ * By default, it is set to no-op.<br />
3890
  * Access Popper.js instance with `data.instance`.
3891
  * @prop {onUpdate}
3892
  */
3894
 
3895
  /**
3896
  * List of modifiers used to modify the offsets before they are applied to the popper.
3897
+ * They provide most of the functionalities of Popper.js.
3898
  * @prop {modifiers}
3899
  */
3900
  modifiers: modifiers
3914
  // Methods
3915
  var Popper = function () {
3916
  /**
3917
+ * Creates a new Popper.js instance.
3918
  * @class Popper
3919
  * @param {HTMLElement|referenceObject} reference - The reference element used to position the popper
3920
+ * @param {HTMLElement} popper - The HTML element used as the popper
3921
  * @param {Object} options - Your custom options to override the ones defined in [Defaults](#defaults)
3922
  * @return {Object} instance - The generated Popper.js instance
3923
  */
4013
  }
4014
 
4015
  /**
4016
+ * Schedules an update. It will run on the next UI update available.
4017
  * @method scheduleUpdate
4018
  * @memberof Popper
4019
  */
4050
  * new Popper(referenceObject, popperNode);
4051
  * ```
4052
  *
4053
+ * NB: This feature isn't supported in Internet Explorer 10.
4054
  * @name referenceObject
4055
  * @property {Function} data.getBoundingClientRect
4056
  * A function that returns a set of coordinates compatible with the native `getBoundingClientRect` method.
4066
  Popper.Defaults = Defaults;
4067
 
4068
  /**
4069
+ * ------------------------------------------------------------------------
4070
+ * Constants
4071
+ * ------------------------------------------------------------------------
 
4072
  */
4073
 
4074
+ var NAME$4 = 'dropdown';
4075
+ var VERSION$4 = '4.2.1';
4076
+ var DATA_KEY$4 = 'bs.dropdown';
4077
+ var EVENT_KEY$4 = "." + DATA_KEY$4;
4078
+ var DATA_API_KEY$4 = '.data-api';
4079
+ var JQUERY_NO_CONFLICT$4 = $.fn[NAME$4];
4080
+ var ESCAPE_KEYCODE = 27; // KeyboardEvent.which value for Escape (Esc) key
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
4081
 
4082
+ var SPACE_KEYCODE = 32; // KeyboardEvent.which value for space key
 
4083
 
4084
+ var TAB_KEYCODE = 9; // KeyboardEvent.which value for tab key
4085
 
4086
+ var ARROW_UP_KEYCODE = 38; // KeyboardEvent.which value for up arrow key
4087
 
4088
+ var ARROW_DOWN_KEYCODE = 40; // KeyboardEvent.which value for down arrow key
 
 
 
 
4089
 
4090
+ var RIGHT_MOUSE_BUTTON_WHICH = 3; // MouseEvent.which value for the right button (assuming a right-handed mouse)
4091
 
4092
+ var REGEXP_KEYDOWN = new RegExp(ARROW_UP_KEYCODE + "|" + ARROW_DOWN_KEYCODE + "|" + ESCAPE_KEYCODE);
4093
+ var Event$4 = {
4094
+ HIDE: "hide" + EVENT_KEY$4,
4095
+ HIDDEN: "hidden" + EVENT_KEY$4,
4096
+ SHOW: "show" + EVENT_KEY$4,
4097
+ SHOWN: "shown" + EVENT_KEY$4,
4098
+ CLICK: "click" + EVENT_KEY$4,
4099
+ CLICK_DATA_API: "click" + EVENT_KEY$4 + DATA_API_KEY$4,
4100
+ KEYDOWN_DATA_API: "keydown" + EVENT_KEY$4 + DATA_API_KEY$4,
4101
+ KEYUP_DATA_API: "keyup" + EVENT_KEY$4 + DATA_API_KEY$4
4102
+ };
4103
+ var ClassName$4 = {
4104
+ DISABLED: 'disabled',
4105
+ SHOW: 'show',
4106
+ DROPUP: 'dropup',
4107
+ DROPRIGHT: 'dropright',
4108
+ DROPLEFT: 'dropleft',
4109
+ MENURIGHT: 'dropdown-menu-right',
4110
+ MENULEFT: 'dropdown-menu-left',
4111
+ POSITION_STATIC: 'position-static'
4112
+ };
4113
+ var Selector$4 = {
4114
+ DATA_TOGGLE: '[data-toggle="dropdown"]',
4115
+ FORM_CHILD: '.dropdown form',
4116
+ MENU: '.dropdown-menu',
4117
+ NAVBAR_NAV: '.navbar-nav',
4118
+ VISIBLE_ITEMS: '.dropdown-menu .dropdown-item:not(.disabled):not(:disabled)'
4119
+ };
4120
+ var AttachmentMap = {
4121
+ TOP: 'top-start',
4122
+ TOPEND: 'top-end',
4123
+ BOTTOM: 'bottom-start',
4124
+ BOTTOMEND: 'bottom-end',
4125
+ RIGHT: 'right-start',
4126
+ RIGHTEND: 'right-end',
4127
+ LEFT: 'left-start',
4128
+ LEFTEND: 'left-end'
4129
+ };
4130
+ var Default$2 = {
4131
+ offset: 0,
4132
+ flip: true,
4133
+ boundary: 'scrollParent',
4134
+ reference: 'toggle',
4135
+ display: 'dynamic'
4136
+ };
4137
+ var DefaultType$2 = {
4138
+ offset: '(number|string|function)',
4139
+ flip: 'boolean',
4140
+ boundary: '(string|element)',
4141
+ reference: '(string|element)',
4142
+ display: 'string'
4143
+ /**
4144
+ * ------------------------------------------------------------------------
4145
+ * Class Definition
4146
+ * ------------------------------------------------------------------------
4147
+ */
4148
 
4149
+ };
4150
 
4151
+ var Dropdown =
4152
+ /*#__PURE__*/
4153
+ function () {
4154
+ function Dropdown(element, config) {
4155
+ this._element = element;
4156
+ this._popper = null;
4157
+ this._config = this._getConfig(config);
4158
+ this._menu = this._getMenuElement();
4159
+ this._inNavbar = this._detectNavbar();
4160
 
4161
+ this._addEventListeners();
4162
+ } // Getters
 
 
 
4163
 
 
 
 
4164
 
4165
+ var _proto = Dropdown.prototype;
4166
 
4167
+ // Public
4168
+ _proto.toggle = function toggle() {
4169
+ if (this._element.disabled || $(this._element).hasClass(ClassName$4.DISABLED)) {
4170
+ return;
4171
+ }
 
 
 
4172
 
4173
+ var parent = Dropdown._getParentFromElement(this._element);
4174
 
4175
+ var isActive = $(this._menu).hasClass(ClassName$4.SHOW);
 
 
 
4176
 
4177
+ Dropdown._clearMenus();
 
 
 
 
 
4178
 
4179
+ if (isActive) {
4180
+ return;
4181
+ }
4182
 
4183
+ var relatedTarget = {
4184
+ relatedTarget: this._element
4185
+ };
4186
+ var showEvent = $.Event(Event$4.SHOW, relatedTarget);
4187
+ $(parent).trigger(showEvent);
4188
 
4189
+ if (showEvent.isDefaultPrevented()) {
4190
+ return;
4191
+ } // Disable totally Popper.js for Dropdown in Navbar
 
 
4192
 
4193
 
4194
+ if (!this._inNavbar) {
4195
+ /**
4196
+ * Check for Popper dependency
4197
+ * Popper - https://popper.js.org
4198
+ */
4199
+ if (typeof Popper === 'undefined') {
4200
+ throw new TypeError('Bootstrap\'s dropdowns require Popper.js (https://popper.js.org/)');
4201
  }
4202
 
4203
+ var referenceElement = this._element;
 
 
 
 
 
 
 
 
 
 
 
 
4204
 
4205
+ if (this._config.reference === 'parent') {
4206
+ referenceElement = parent;
4207
+ } else if (Util.isElement(this._config.reference)) {
4208
+ referenceElement = this._config.reference; // Check if it's jQuery element
4209
 
4210
+ if (typeof this._config.reference.jquery !== 'undefined') {
4211
+ referenceElement = this._config.reference[0];
4212
+ }
4213
+ } // If boundary is not `scrollParent`, then set position to `static`
4214
+ // to allow the menu to "escape" the scroll parent's boundaries
4215
+ // https://github.com/twbs/bootstrap/issues/24251
4216
 
 
 
4217
 
4218
+ if (this._config.boundary !== 'scrollParent') {
4219
+ $(parent).addClass(ClassName$4.POSITION_STATIC);
4220
  }
 
4221
 
4222
+ this._popper = new Popper(referenceElement, this._menu, this._getPopperConfig());
4223
+ } // If this is a touch-enabled device we add extra
4224
+ // empty mouseover listeners to the body's immediate children;
4225
+ // only needed because of broken event delegation on iOS
4226
+ // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html
4227
 
 
 
4228
 
4229
+ if ('ontouchstart' in document.documentElement && $(parent).closest(Selector$4.NAVBAR_NAV).length === 0) {
4230
+ $(document.body).children().on('mouseover', null, $.noop);
4231
+ }
4232
 
4233
+ this._element.focus();
 
 
4234
 
4235
+ this._element.setAttribute('aria-expanded', true);
 
 
 
 
4236
 
4237
+ $(this._menu).toggleClass(ClassName$4.SHOW);
4238
+ $(parent).toggleClass(ClassName$4.SHOW).trigger($.Event(Event$4.SHOWN, relatedTarget));
4239
+ };
4240
 
4241
+ _proto.show = function show() {
4242
+ if (this._element.disabled || $(this._element).hasClass(ClassName$4.DISABLED) || $(this._menu).hasClass(ClassName$4.SHOW)) {
4243
+ return;
4244
+ }
4245
 
4246
+ var relatedTarget = {
4247
+ relatedTarget: this._element
4248
  };
4249
+ var showEvent = $.Event(Event$4.SHOW, relatedTarget);
4250
 
4251
+ var parent = Dropdown._getParentFromElement(this._element);
 
 
4252
 
4253
+ $(parent).trigger(showEvent);
 
4254
 
4255
+ if (showEvent.isDefaultPrevented()) {
4256
+ return;
4257
+ }
 
 
 
 
 
 
 
4258
 
4259
+ $(this._menu).toggleClass(ClassName$4.SHOW);
4260
+ $(parent).toggleClass(ClassName$4.SHOW).trigger($.Event(Event$4.SHOWN, relatedTarget));
4261
+ };
4262
 
4263
+ _proto.hide = function hide() {
4264
+ if (this._element.disabled || $(this._element).hasClass(ClassName$4.DISABLED) || !$(this._menu).hasClass(ClassName$4.SHOW)) {
4265
+ return;
4266
+ }
4267
+
4268
+ var relatedTarget = {
4269
+ relatedTarget: this._element
4270
  };
4271
+ var hideEvent = $.Event(Event$4.HIDE, relatedTarget);
4272
 
4273
+ var parent = Dropdown._getParentFromElement(this._element);
 
4274
 
4275
+ $(parent).trigger(hideEvent);
4276
 
4277
+ if (hideEvent.isDefaultPrevented()) {
4278
+ return;
4279
+ }
 
 
 
 
 
4280
 
4281
+ $(this._menu).toggleClass(ClassName$4.SHOW);
4282
+ $(parent).toggleClass(ClassName$4.SHOW).trigger($.Event(Event$4.HIDDEN, relatedTarget));
4283
+ };
 
 
 
 
 
 
 
 
4284
 
4285
+ _proto.dispose = function dispose() {
4286
+ $.removeData(this._element, DATA_KEY$4);
4287
+ $(this._element).off(EVENT_KEY$4);
4288
+ this._element = null;
4289
+ this._menu = null;
4290
 
4291
+ if (this._popper !== null) {
4292
+ this._popper.destroy();
 
 
 
4293
 
4294
+ this._popper = null;
4295
+ }
4296
+ };
4297
 
4298
+ _proto.update = function update() {
4299
+ this._inNavbar = this._detectNavbar();
4300
 
4301
+ if (this._popper !== null) {
4302
+ this._popper.scheduleUpdate();
4303
+ }
4304
+ }; // Private
4305
 
 
4306
 
4307
+ _proto._addEventListeners = function _addEventListeners() {
4308
+ var _this = this;
 
 
4309
 
4310
+ $(this._element).on(Event$4.CLICK, function (event) {
4311
+ event.preventDefault();
4312
+ event.stopPropagation();
 
4313
 
4314
+ _this.toggle();
4315
+ });
4316
+ };
 
4317
 
4318
+ _proto._getConfig = function _getConfig(config) {
4319
+ config = _objectSpread({}, this.constructor.Default, $(this._element).data(), config);
4320
+ Util.typeCheckConfig(NAME$4, config, this.constructor.DefaultType);
4321
+ return config;
4322
+ };
4323
 
4324
+ _proto._getMenuElement = function _getMenuElement() {
4325
+ if (!this._menu) {
4326
+ var parent = Dropdown._getParentFromElement(this._element);
4327
 
4328
+ if (parent) {
4329
+ this._menu = parent.querySelector(Selector$4.MENU);
4330
+ }
4331
+ }
4332
 
4333
+ return this._menu;
4334
+ };
 
 
4335
 
4336
+ _proto._getPlacement = function _getPlacement() {
4337
+ var $parentDropdown = $(this._element.parentNode);
4338
+ var placement = AttachmentMap.BOTTOM; // Handle dropup
4339
 
4340
+ if ($parentDropdown.hasClass(ClassName$4.DROPUP)) {
4341
+ placement = AttachmentMap.TOP;
 
4342
 
4343
+ if ($(this._menu).hasClass(ClassName$4.MENURIGHT)) {
4344
+ placement = AttachmentMap.TOPEND;
4345
+ }
4346
+ } else if ($parentDropdown.hasClass(ClassName$4.DROPRIGHT)) {
4347
+ placement = AttachmentMap.RIGHT;
4348
+ } else if ($parentDropdown.hasClass(ClassName$4.DROPLEFT)) {
4349
+ placement = AttachmentMap.LEFT;
4350
+ } else if ($(this._menu).hasClass(ClassName$4.MENURIGHT)) {
4351
+ placement = AttachmentMap.BOTTOMEND;
4352
+ }
4353
 
4354
+ return placement;
4355
+ };
 
4356
 
4357
+ _proto._detectNavbar = function _detectNavbar() {
4358
+ return $(this._element).closest('.navbar').length > 0;
4359
+ };
4360
 
4361
+ _proto._getPopperConfig = function _getPopperConfig() {
4362
+ var _this2 = this;
4363
 
4364
+ var offsetConf = {};
 
 
 
4365
 
4366
+ if (typeof this._config.offset === 'function') {
4367
+ offsetConf.fn = function (data) {
4368
+ data.offsets = _objectSpread({}, data.offsets, _this2._config.offset(data.offsets) || {});
4369
+ return data;
4370
+ };
4371
+ } else {
4372
+ offsetConf.offset = this._config.offset;
4373
+ }
4374
 
4375
+ var popperConfig = {
4376
+ placement: this._getPlacement(),
4377
+ modifiers: {
4378
+ offset: offsetConf,
4379
+ flip: {
4380
+ enabled: this._config.flip
4381
+ },
4382
+ preventOverflow: {
4383
+ boundariesElement: this._config.boundary
4384
  }
4385
+ } // Disable Popper.js if we have a static display
4386
 
 
 
 
 
4387
  };
4388
 
4389
+ if (this._config.display === 'static') {
4390
+ popperConfig.modifiers.applyStyle = {
4391
+ enabled: false
4392
+ };
4393
+ }
 
 
4394
 
4395
+ return popperConfig;
4396
+ }; // Static
4397
 
4398
 
4399
+ Dropdown._jQueryInterface = function _jQueryInterface(config) {
4400
+ return this.each(function () {
4401
+ var data = $(this).data(DATA_KEY$4);
 
 
 
 
 
 
 
 
4402
 
4403
+ var _config = typeof config === 'object' ? config : null;
 
4404
 
4405
+ if (!data) {
4406
+ data = new Dropdown(this, _config);
4407
+ $(this).data(DATA_KEY$4, data);
4408
  }
4409
 
4410
+ if (typeof config === 'string') {
4411
+ if (typeof data[config] === 'undefined') {
4412
+ throw new TypeError("No method named \"" + config + "\"");
 
 
 
 
 
4413
  }
4414
 
4415
+ data[config]();
 
4416
  }
4417
+ });
4418
+ };
4419
 
4420
+ Dropdown._clearMenus = function _clearMenus(event) {
4421
+ if (event && (event.which === RIGHT_MOUSE_BUTTON_WHICH || event.type === 'keyup' && event.which !== TAB_KEYCODE)) {
4422
+ return;
4423
+ }
4424
 
4425
+ var toggles = [].slice.call(document.querySelectorAll(Selector$4.DATA_TOGGLE));
 
 
4426
 
4427
+ for (var i = 0, len = toggles.length; i < len; i++) {
4428
+ var parent = Dropdown._getParentFromElement(toggles[i]);
4429
 
4430
+ var context = $(toggles[i]).data(DATA_KEY$4);
4431
+ var relatedTarget = {
4432
+ relatedTarget: toggles[i]
4433
+ };
4434
 
4435
+ if (event && event.type === 'click') {
4436
+ relatedTarget.clickEvent = event;
 
4437
  }
4438
 
4439
+ if (!context) {
4440
+ continue;
4441
  }
4442
 
4443
+ var dropdownMenu = context._menu;
 
4444
 
4445
+ if (!$(parent).hasClass(ClassName$4.SHOW)) {
4446
+ continue;
 
 
4447
  }
 
 
 
 
 
 
 
 
 
 
 
4448
 
4449
+ if (event && (event.type === 'click' && /input|textarea/i.test(event.target.tagName) || event.type === 'keyup' && event.which === TAB_KEYCODE) && $.contains(parent, event.target)) {
4450
+ continue;
4451
+ }
 
 
 
 
4452
 
4453
+ var hideEvent = $.Event(Event$4.HIDE, relatedTarget);
4454
+ $(parent).trigger(hideEvent);
4455
 
4456
+ if (hideEvent.isDefaultPrevented()) {
4457
+ continue;
4458
+ } // If this is a touch-enabled device we remove the extra
4459
+ // empty mouseover listeners we added for iOS support
4460
 
 
 
 
 
 
 
 
 
 
4461
 
4462
+ if ('ontouchstart' in document.documentElement) {
4463
+ $(document.body).children().off('mouseover', null, $.noop);
4464
+ }
4465
 
4466
+ toggles[i].setAttribute('aria-expanded', 'false');
4467
+ $(dropdownMenu).removeClass(ClassName$4.SHOW);
4468
+ $(parent).removeClass(ClassName$4.SHOW).trigger($.Event(Event$4.HIDDEN, relatedTarget));
4469
+ }
4470
  };
4471
 
4472
+ Dropdown._getParentFromElement = function _getParentFromElement(element) {
4473
+ var parent;
4474
+ var selector = Util.getSelectorFromElement(element);
4475
 
4476
+ if (selector) {
4477
+ parent = document.querySelector(selector);
4478
+ }
 
 
 
4479
 
4480
+ return parent || element.parentNode;
4481
+ }; // eslint-disable-next-line complexity
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
4482
 
 
4483
 
4484
+ Dropdown._dataApiKeydownHandler = function _dataApiKeydownHandler(event) {
4485
+ // If not input/textarea:
4486
+ // - And not a key in REGEXP_KEYDOWN => not a dropdown command
4487
+ // If input/textarea:
4488
+ // - If space key => not a dropdown command
4489
+ // - If key is other than escape
4490
+ // - If key is not up or down => not a dropdown command
4491
+ // - If trigger inside the menu => not a dropdown command
4492
+ if (/input|textarea/i.test(event.target.tagName) ? event.which === SPACE_KEYCODE || event.which !== ESCAPE_KEYCODE && (event.which !== ARROW_DOWN_KEYCODE && event.which !== ARROW_UP_KEYCODE || $(event.target).closest(Selector$4.MENU).length) : !REGEXP_KEYDOWN.test(event.which)) {
4493
+ return;
4494
+ }
 
 
4495
 
4496
+ event.preventDefault();
4497
+ event.stopPropagation();
4498
 
4499
+ if (this.disabled || $(this).hasClass(ClassName$4.DISABLED)) {
4500
+ return;
4501
+ }
4502
 
4503
+ var parent = Dropdown._getParentFromElement(this);
 
 
 
4504
 
4505
+ var isActive = $(parent).hasClass(ClassName$4.SHOW);
 
4506
 
4507
+ if (!isActive || isActive && (event.which === ESCAPE_KEYCODE || event.which === SPACE_KEYCODE)) {
4508
+ if (event.which === ESCAPE_KEYCODE) {
4509
+ var toggle = parent.querySelector(Selector$4.DATA_TOGGLE);
4510
+ $(toggle).trigger('focus');
4511
  }
4512
 
4513
+ $(this).trigger('click');
4514
+ return;
4515
+ }
4516
 
4517
+ var items = [].slice.call(parent.querySelectorAll(Selector$4.VISIBLE_ITEMS));
 
 
 
4518
 
4519
+ if (items.length === 0) {
4520
+ return;
4521
+ }
4522
 
4523
+ var index = items.indexOf(event.target);
4524
 
4525
+ if (event.which === ARROW_UP_KEYCODE && index > 0) {
4526
+ // Up
4527
+ index--;
4528
+ }
4529
 
4530
+ if (event.which === ARROW_DOWN_KEYCODE && index < items.length - 1) {
4531
+ // Down
4532
+ index++;
4533
+ }
4534
 
4535
+ if (index < 0) {
4536
+ index = 0;
4537
+ }
4538
 
4539
+ items[index].focus();
4540
+ };
4541
 
4542
+ _createClass(Dropdown, null, [{
4543
+ key: "VERSION",
4544
+ get: function get() {
4545
+ return VERSION$4;
4546
+ }
4547
+ }, {
4548
+ key: "Default",
4549
+ get: function get() {
4550
+ return Default$2;
4551
+ }
4552
+ }, {
4553
+ key: "DefaultType",
4554
+ get: function get() {
4555
+ return DefaultType$2;
4556
+ }
4557
+ }]);
4558
 
4559
+ return Dropdown;
4560
+ }();
4561
+ /**
4562
+ * ------------------------------------------------------------------------
4563
+ * Data Api implementation
4564
+ * ------------------------------------------------------------------------
4565
+ */
4566
 
 
 
 
 
 
 
 
 
 
 
4567
 
4568
+ $(document).on(Event$4.KEYDOWN_DATA_API, Selector$4.DATA_TOGGLE, Dropdown._dataApiKeydownHandler).on(Event$4.KEYDOWN_DATA_API, Selector$4.MENU, Dropdown._dataApiKeydownHandler).on(Event$4.CLICK_DATA_API + " " + Event$4.KEYUP_DATA_API, Dropdown._clearMenus).on(Event$4.CLICK_DATA_API, Selector$4.DATA_TOGGLE, function (event) {
4569
+ event.preventDefault();
4570
+ event.stopPropagation();
 
4571
 
4572
+ Dropdown._jQueryInterface.call($(this), 'toggle');
4573
+ }).on(Event$4.CLICK_DATA_API, Selector$4.FORM_CHILD, function (e) {
4574
+ e.stopPropagation();
4575
+ });
4576
+ /**
4577
+ * ------------------------------------------------------------------------
4578
+ * jQuery
4579
+ * ------------------------------------------------------------------------
4580
+ */
4581
 
4582
+ $.fn[NAME$4] = Dropdown._jQueryInterface;
4583
+ $.fn[NAME$4].Constructor = Dropdown;
 
4584
 
4585
+ $.fn[NAME$4].noConflict = function () {
4586
+ $.fn[NAME$4] = JQUERY_NO_CONFLICT$4;
4587
+ return Dropdown._jQueryInterface;
4588
+ };
4589
 
4590
+ /**
4591
+ * ------------------------------------------------------------------------
4592
+ * Constants
4593
+ * ------------------------------------------------------------------------
4594
+ */
4595
 
4596
+ var NAME$5 = 'modal';
4597
+ var VERSION$5 = '4.2.1';
4598
+ var DATA_KEY$5 = 'bs.modal';
4599
+ var EVENT_KEY$5 = "." + DATA_KEY$5;
4600
+ var DATA_API_KEY$5 = '.data-api';
4601
+ var JQUERY_NO_CONFLICT$5 = $.fn[NAME$5];
4602
+ var ESCAPE_KEYCODE$1 = 27; // KeyboardEvent.which value for Escape (Esc) key
4603
+
4604
+ var Default$3 = {
4605
+ backdrop: true,
4606
+ keyboard: true,
4607
+ focus: true,
4608
+ show: true
4609
+ };
4610
+ var DefaultType$3 = {
4611
+ backdrop: '(boolean|string)',
4612
+ keyboard: 'boolean',
4613
+ focus: 'boolean',
4614
+ show: 'boolean'
4615
+ };
4616
+ var Event$5 = {
4617
+ HIDE: "hide" + EVENT_KEY$5,
4618
+ HIDDEN: "hidden" + EVENT_KEY$5,
4619
+ SHOW: "show" + EVENT_KEY$5,
4620
+ SHOWN: "shown" + EVENT_KEY$5,
4621
+ FOCUSIN: "focusin" + EVENT_KEY$5,
4622
+ RESIZE: "resize" + EVENT_KEY$5,
4623
+ CLICK_DISMISS: "click.dismiss" + EVENT_KEY$5,
4624
+ KEYDOWN_DISMISS: "keydown.dismiss" + EVENT_KEY$5,
4625
+ MOUSEUP_DISMISS: "mouseup.dismiss" + EVENT_KEY$5,
4626
+ MOUSEDOWN_DISMISS: "mousedown.dismiss" + EVENT_KEY$5,
4627
+ CLICK_DATA_API: "click" + EVENT_KEY$5 + DATA_API_KEY$5
4628
+ };
4629
+ var ClassName$5 = {
4630
+ SCROLLBAR_MEASURER: 'modal-scrollbar-measure',
4631
+ BACKDROP: 'modal-backdrop',
4632
+ OPEN: 'modal-open',
4633
+ FADE: 'fade',
4634
+ SHOW: 'show'
4635
+ };
4636
+ var Selector$5 = {
4637
+ DIALOG: '.modal-dialog',
4638
+ DATA_TOGGLE: '[data-toggle="modal"]',
4639
+ DATA_DISMISS: '[data-dismiss="modal"]',
4640
+ FIXED_CONTENT: '.fixed-top, .fixed-bottom, .is-fixed, .sticky-top',
4641
+ STICKY_CONTENT: '.sticky-top'
4642
+ /**
4643
+ * ------------------------------------------------------------------------
4644
+ * Class Definition
4645
+ * ------------------------------------------------------------------------
4646
+ */
4647
 
4648
+ };
 
4649
 
4650
+ var Modal =
4651
+ /*#__PURE__*/
4652
+ function () {
4653
+ function Modal(element, config) {
4654
+ this._config = this._getConfig(config);
4655
+ this._element = element;
4656
+ this._dialog = element.querySelector(Selector$5.DIALOG);
4657
+ this._backdrop = null;
4658
+ this._isShown = false;
4659
+ this._isBodyOverflowing = false;
4660
+ this._ignoreBackdropClick = false;
4661
+ this._isTransitioning = false;
4662
+ this._scrollbarWidth = 0;
4663
+ } // Getters
4664
+
4665
+
4666
+ var _proto = Modal.prototype;
4667
+
4668
+ // Public
4669
+ _proto.toggle = function toggle(relatedTarget) {
4670
+ return this._isShown ? this.hide() : this.show(relatedTarget);
4671
+ };
4672
 
4673
+ _proto.show = function show(relatedTarget) {
4674
+ var _this = this;
4675
 
4676
+ if (this._isShown || this._isTransitioning) {
4677
+ return;
4678
+ }
4679
 
4680
+ if ($(this._element).hasClass(ClassName$5.FADE)) {
4681
+ this._isTransitioning = true;
4682
+ }
 
4683
 
4684
+ var showEvent = $.Event(Event$5.SHOW, {
4685
+ relatedTarget: relatedTarget
4686
+ });
4687
+ $(this._element).trigger(showEvent);
 
 
 
 
 
4688
 
4689
+ if (this._isShown || showEvent.isDefaultPrevented()) {
4690
+ return;
4691
+ }
 
 
 
 
 
 
 
 
 
4692
 
4693
+ this._isShown = true;
 
 
4694
 
4695
+ this._checkScrollbar();
4696
 
4697
+ this._setScrollbar();
 
 
 
 
4698
 
4699
+ this._adjustDialog();
 
4700
 
4701
+ this._setEscapeEvent();
4702
 
4703
+ this._setResizeEvent();
 
 
 
4704
 
4705
+ $(this._element).on(Event$5.CLICK_DISMISS, Selector$5.DATA_DISMISS, function (event) {
4706
+ return _this.hide(event);
4707
+ });
4708
+ $(this._dialog).on(Event$5.MOUSEDOWN_DISMISS, function () {
4709
+ $(_this._element).one(Event$5.MOUSEUP_DISMISS, function (event) {
4710
+ if ($(event.target).is(_this._element)) {
4711
+ _this._ignoreBackdropClick = true;
4712
+ }
4713
+ });
4714
+ });
4715
 
4716
+ this._showBackdrop(function () {
4717
+ return _this._showElement(relatedTarget);
4718
+ });
4719
+ };
4720
 
4721
+ _proto.hide = function hide(event) {
4722
+ var _this2 = this;
4723
 
4724
+ if (event) {
4725
+ event.preventDefault();
4726
+ }
4727
 
4728
+ if (!this._isShown || this._isTransitioning) {
4729
+ return;
4730
+ }
4731
 
4732
+ var hideEvent = $.Event(Event$5.HIDE);
4733
+ $(this._element).trigger(hideEvent);
 
4734
 
4735
+ if (!this._isShown || hideEvent.isDefaultPrevented()) {
4736
+ return;
4737
+ }
4738
 
4739
+ this._isShown = false;
4740
+ var transition = $(this._element).hasClass(ClassName$5.FADE);
 
 
4741
 
4742
+ if (transition) {
4743
+ this._isTransitioning = true;
4744
+ }
4745
 
4746
+ this._setEscapeEvent();
 
 
 
 
 
 
4747
 
4748
+ this._setResizeEvent();
 
4749
 
4750
+ $(document).off(Event$5.FOCUSIN);
4751
+ $(this._element).removeClass(ClassName$5.SHOW);
4752
+ $(this._element).off(Event$5.CLICK_DISMISS);
4753
+ $(this._dialog).off(Event$5.MOUSEDOWN_DISMISS);
 
 
 
4754
 
4755
+ if (transition) {
4756
+ var transitionDuration = Util.getTransitionDurationFromElement(this._element);
4757
+ $(this._element).one(Util.TRANSITION_END, function (event) {
4758
+ return _this2._hideModal(event);
4759
+ }).emulateTransitionEnd(transitionDuration);
4760
+ } else {
4761
+ this._hideModal();
4762
+ }
4763
+ };
4764
 
4765
+ _proto.dispose = function dispose() {
4766
+ [window, this._element, this._dialog].forEach(function (htmlElement) {
4767
+ return $(htmlElement).off(EVENT_KEY$5);
4768
+ });
4769
+ /**
4770
+ * `document` has 2 events `Event.FOCUSIN` and `Event.CLICK_DATA_API`
4771
+ * Do not move `document` in `htmlElements` array
4772
+ * It will remove `Event.CLICK_DATA_API` event that should remain
4773
+ */
4774
 
4775
+ $(document).off(Event$5.FOCUSIN);
4776
+ $.removeData(this._element, DATA_KEY$5);
4777
+ this._config = null;
4778
+ this._element = null;
4779
+ this._dialog = null;
4780
+ this._backdrop = null;
4781
+ this._isShown = null;
4782
+ this._isBodyOverflowing = null;
4783
+ this._ignoreBackdropClick = null;
4784
+ this._isTransitioning = null;
4785
+ this._scrollbarWidth = null;
4786
+ };
4787
 
4788
+ _proto.handleUpdate = function handleUpdate() {
4789
+ this._adjustDialog();
4790
+ }; // Private
4791
 
 
 
 
 
 
 
 
 
4792
 
4793
+ _proto._getConfig = function _getConfig(config) {
4794
+ config = _objectSpread({}, Default$3, config);
4795
+ Util.typeCheckConfig(NAME$5, config, DefaultType$3);
4796
+ return config;
4797
+ };
4798
 
4799
+ _proto._showElement = function _showElement(relatedTarget) {
4800
+ var _this3 = this;
4801
 
4802
+ var transition = $(this._element).hasClass(ClassName$5.FADE);
4803
 
4804
+ if (!this._element.parentNode || this._element.parentNode.nodeType !== Node.ELEMENT_NODE) {
4805
+ // Don't move modal's DOM position
4806
+ document.body.appendChild(this._element);
4807
+ }
4808
 
4809
+ this._element.style.display = 'block';
 
4810
 
4811
+ this._element.removeAttribute('aria-hidden');
4812
 
4813
+ this._element.setAttribute('aria-modal', true);
4814
 
4815
+ this._element.scrollTop = 0;
 
 
4816
 
4817
+ if (transition) {
4818
+ Util.reflow(this._element);
4819
+ }
 
 
 
4820
 
4821
+ $(this._element).addClass(ClassName$5.SHOW);
 
4822
 
4823
+ if (this._config.focus) {
4824
+ this._enforceFocus();
4825
+ }
4826
 
4827
+ var shownEvent = $.Event(Event$5.SHOWN, {
4828
+ relatedTarget: relatedTarget
4829
+ });
4830
 
4831
+ var transitionComplete = function transitionComplete() {
4832
+ if (_this3._config.focus) {
4833
+ _this3._element.focus();
4834
+ }
4835
 
4836
+ _this3._isTransitioning = false;
4837
+ $(_this3._element).trigger(shownEvent);
4838
+ };
 
 
 
4839
 
4840
+ if (transition) {
4841
+ var transitionDuration = Util.getTransitionDurationFromElement(this._dialog);
4842
+ $(this._dialog).one(Util.TRANSITION_END, transitionComplete).emulateTransitionEnd(transitionDuration);
4843
+ } else {
4844
+ transitionComplete();
4845
+ }
4846
+ };
4847
 
4848
+ _proto._enforceFocus = function _enforceFocus() {
4849
+ var _this4 = this;
 
 
 
 
4850
 
4851
+ $(document).off(Event$5.FOCUSIN) // Guard against infinite focus loop
4852
+ .on(Event$5.FOCUSIN, function (event) {
4853
+ if (document !== event.target && _this4._element !== event.target && $(_this4._element).has(event.target).length === 0) {
4854
+ _this4._element.focus();
4855
+ }
4856
+ });
4857
+ };
4858
 
4859
+ _proto._setEscapeEvent = function _setEscapeEvent() {
4860
+ var _this5 = this;
4861
 
4862
+ if (this._isShown && this._config.keyboard) {
4863
+ $(this._element).on(Event$5.KEYDOWN_DISMISS, function (event) {
4864
+ if (event.which === ESCAPE_KEYCODE$1) {
4865
+ event.preventDefault();
4866
 
4867
+ _this5.hide();
 
 
4868
  }
4869
+ });
4870
+ } else if (!this._isShown) {
4871
+ $(this._element).off(Event$5.KEYDOWN_DISMISS);
4872
+ }
4873
+ };
4874
 
4875
+ _proto._setResizeEvent = function _setResizeEvent() {
4876
+ var _this6 = this;
 
 
 
 
 
 
 
 
 
 
4877
 
4878
+ if (this._isShown) {
4879
+ $(window).on(Event$5.RESIZE, function (event) {
4880
+ return _this6.handleUpdate(event);
4881
+ });
4882
+ } else {
4883
+ $(window).off(Event$5.RESIZE);
4884
+ }
4885
+ };
4886
 
4887
+ _proto._hideModal = function _hideModal() {
4888
+ var _this7 = this;
 
 
 
 
 
 
 
 
 
4889
 
4890
+ this._element.style.display = 'none';
4891
 
4892
+ this._element.setAttribute('aria-hidden', true);
 
4893
 
4894
+ this._element.removeAttribute('aria-modal');
 
 
4895
 
4896
+ this._isTransitioning = false;
 
 
 
4897
 
4898
+ this._showBackdrop(function () {
4899
+ $(document.body).removeClass(ClassName$5.OPEN);
 
 
4900
 
4901
+ _this7._resetAdjustments();
 
 
 
 
4902
 
4903
+ _this7._resetScrollbar();
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
4904
 
4905
+ $(_this7._element).trigger(Event$5.HIDDEN);
4906
+ });
4907
+ };
 
 
 
 
 
 
 
 
 
 
 
 
 
 
4908
 
4909
+ _proto._removeBackdrop = function _removeBackdrop() {
4910
+ if (this._backdrop) {
4911
+ $(this._backdrop).remove();
4912
+ this._backdrop = null;
4913
+ }
4914
+ };
4915
 
4916
+ _proto._showBackdrop = function _showBackdrop(callback) {
4917
+ var _this8 = this;
 
 
 
 
 
 
 
4918
 
4919
+ var animate = $(this._element).hasClass(ClassName$5.FADE) ? ClassName$5.FADE : '';
4920
 
4921
+ if (this._isShown && this._config.backdrop) {
4922
+ this._backdrop = document.createElement('div');
4923
+ this._backdrop.className = ClassName$5.BACKDROP;
4924
 
4925
+ if (animate) {
4926
+ this._backdrop.classList.add(animate);
4927
+ }
4928
 
4929
+ $(this._backdrop).appendTo(document.body);
4930
+ $(this._element).on(Event$5.CLICK_DISMISS, function (event) {
4931
+ if (_this8._ignoreBackdropClick) {
4932
+ _this8._ignoreBackdropClick = false;
4933
+ return;
4934
  }
4935
 
4936
+ if (event.target !== event.currentTarget) {
4937
+ return;
4938
+ }
 
4939
 
4940
+ if (_this8._config.backdrop === 'static') {
4941
+ _this8._element.focus();
4942
+ } else {
4943
+ _this8.hide();
4944
  }
4945
  });
 
4946
 
4947
+ if (animate) {
4948
+ Util.reflow(this._backdrop);
 
 
4949
  }
 
 
 
 
 
 
4950
 
4951
+ $(this._backdrop).addClass(ClassName$5.SHOW);
 
 
 
 
 
 
4952
 
4953
+ if (!callback) {
4954
+ return;
4955
+ }
4956
 
4957
+ if (!animate) {
4958
+ callback();
4959
+ return;
4960
+ }
4961
 
4962
+ var backdropTransitionDuration = Util.getTransitionDurationFromElement(this._backdrop);
4963
+ $(this._backdrop).one(Util.TRANSITION_END, callback).emulateTransitionEnd(backdropTransitionDuration);
4964
+ } else if (!this._isShown && this._backdrop) {
4965
+ $(this._backdrop).removeClass(ClassName$5.SHOW);
4966
 
4967
+ var callbackRemove = function callbackRemove() {
4968
+ _this8._removeBackdrop();
 
4969
 
4970
+ if (callback) {
4971
+ callback();
4972
+ }
4973
+ };
4974
 
4975
+ if ($(this._element).hasClass(ClassName$5.FADE)) {
4976
+ var _backdropTransitionDuration = Util.getTransitionDurationFromElement(this._backdrop);
 
4977
 
4978
+ $(this._backdrop).one(Util.TRANSITION_END, callbackRemove).emulateTransitionEnd(_backdropTransitionDuration);
4979
+ } else {
4980
+ callbackRemove();
 
4981
  }
4982
+ } else if (callback) {
4983
+ callback();
4984
+ }
4985
+ }; // ----------------------------------------------------------------------
4986
+ // the following methods are used to handle overflowing modals
4987
+ // todo (fat): these should probably be refactored out of modal.js
4988
+ // ----------------------------------------------------------------------
4989
 
 
 
 
 
 
 
4990
 
4991
+ _proto._adjustDialog = function _adjustDialog() {
4992
+ var isModalOverflowing = this._element.scrollHeight > document.documentElement.clientHeight;
 
 
 
 
 
4993
 
4994
+ if (!this._isBodyOverflowing && isModalOverflowing) {
4995
+ this._element.style.paddingLeft = this._scrollbarWidth + "px";
4996
+ }
4997
 
4998
+ if (this._isBodyOverflowing && !isModalOverflowing) {
4999
+ this._element.style.paddingRight = this._scrollbarWidth + "px";
5000
+ }
5001
  };
5002
 
5003
+ _proto._resetAdjustments = function _resetAdjustments() {
5004
+ this._element.style.paddingLeft = '';
5005
+ this._element.style.paddingRight = '';
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
5006
  };
 
 
 
 
 
 
 
 
 
 
5007
 
5008
+ _proto._checkScrollbar = function _checkScrollbar() {
5009
+ var rect = document.body.getBoundingClientRect();
5010
+ this._isBodyOverflowing = rect.left + rect.right < window.innerWidth;
5011
+ this._scrollbarWidth = this._getScrollbarWidth();
5012
  };
5013
 
5014
+ _proto._setScrollbar = function _setScrollbar() {
5015
+ var _this9 = this;
5016
+
5017
+ if (this._isBodyOverflowing) {
5018
+ // Note: DOMNode.style.paddingRight returns the actual value or '' if not set
5019
+ // while $(DOMNode).css('padding-right') returns the calculated value or 0 if not set
5020
+ var fixedContent = [].slice.call(document.querySelectorAll(Selector$5.FIXED_CONTENT));
5021
+ var stickyContent = [].slice.call(document.querySelectorAll(Selector$5.STICKY_CONTENT)); // Adjust fixed content padding
5022
+
5023
+ $(fixedContent).each(function (index, element) {
5024
+ var actualPadding = element.style.paddingRight;
5025
+ var calculatedPadding = $(element).css('padding-right');
5026
+ $(element).data('padding-right', actualPadding).css('padding-right', parseFloat(calculatedPadding) + _this9._scrollbarWidth + "px");
5027
+ }); // Adjust sticky content margin
5028
+
5029
+ $(stickyContent).each(function (index, element) {
5030
+ var actualMargin = element.style.marginRight;
5031
+ var calculatedMargin = $(element).css('margin-right');
5032
+ $(element).data('margin-right', actualMargin).css('margin-right', parseFloat(calculatedMargin) - _this9._scrollbarWidth + "px");
5033
+ }); // Adjust body padding
5034
+
5035
+ var actualPadding = document.body.style.paddingRight;
5036
+ var calculatedPadding = $(document.body).css('padding-right');
5037
+ $(document.body).data('padding-right', actualPadding).css('padding-right', parseFloat(calculatedPadding) + this._scrollbarWidth + "px");
5038
+ }
5039
 
5040
+ $(document.body).addClass(ClassName$5.OPEN);
5041
+ };
5042
 
5043
+ _proto._resetScrollbar = function _resetScrollbar() {
5044
+ // Restore fixed content padding
5045
+ var fixedContent = [].slice.call(document.querySelectorAll(Selector$5.FIXED_CONTENT));
5046
+ $(fixedContent).each(function (index, element) {
5047
+ var padding = $(element).data('padding-right');
5048
+ $(element).removeData('padding-right');
5049
+ element.style.paddingRight = padding ? padding : '';
5050
+ }); // Restore sticky content
5051
 
5052
+ var elements = [].slice.call(document.querySelectorAll("" + Selector$5.STICKY_CONTENT));
5053
+ $(elements).each(function (index, element) {
5054
+ var margin = $(element).data('margin-right');
5055
 
5056
+ if (typeof margin !== 'undefined') {
5057
+ $(element).css('margin-right', margin).removeData('margin-right');
5058
+ }
5059
+ }); // Restore body padding
5060
 
5061
+ var padding = $(document.body).data('padding-right');
5062
+ $(document.body).removeData('padding-right');
5063
+ document.body.style.paddingRight = padding ? padding : '';
5064
+ };
5065
 
5066
+ _proto._getScrollbarWidth = function _getScrollbarWidth() {
5067
+ // thx d.walsh
5068
+ var scrollDiv = document.createElement('div');
5069
+ scrollDiv.className = ClassName$5.SCROLLBAR_MEASURER;
5070
+ document.body.appendChild(scrollDiv);
5071
+ var scrollbarWidth = scrollDiv.getBoundingClientRect().width - scrollDiv.clientWidth;
5072
+ document.body.removeChild(scrollDiv);
5073
+ return scrollbarWidth;
5074
+ }; // Static
5075
 
 
 
 
 
5076
 
5077
+ Modal._jQueryInterface = function _jQueryInterface(config, relatedTarget) {
5078
+ return this.each(function () {
5079
+ var data = $(this).data(DATA_KEY$5);
5080
 
5081
+ var _config = _objectSpread({}, Default$3, $(this).data(), typeof config === 'object' && config ? config : {});
 
 
5082
 
5083
+ if (!data) {
5084
+ data = new Modal(this, _config);
5085
+ $(this).data(DATA_KEY$5, data);
5086
  }
5087
 
5088
+ if (typeof config === 'string') {
5089
+ if (typeof data[config] === 'undefined') {
5090
+ throw new TypeError("No method named \"" + config + "\"");
 
 
 
 
5091
  }
5092
 
5093
+ data[config](relatedTarget);
5094
+ } else if (_config.show) {
5095
+ data.show(relatedTarget);
5096
+ }
5097
+ });
5098
+ };
5099
 
5100
+ _createClass(Modal, null, [{
5101
+ key: "VERSION",
5102
+ get: function get() {
5103
+ return VERSION$5;
5104
+ }
5105
+ }, {
5106
+ key: "Default",
5107
+ get: function get() {
5108
+ return Default$3;
5109
+ }
5110
+ }]);
5111
 
5112
+ return Modal;
5113
+ }();
5114
+ /**
5115
+ * ------------------------------------------------------------------------
5116
+ * Data Api implementation
5117
+ * ------------------------------------------------------------------------
5118
+ */
5119
 
 
 
 
5120
 
5121
+ $(document).on(Event$5.CLICK_DATA_API, Selector$5.DATA_TOGGLE, function (event) {
5122
+ var _this10 = this;
 
 
 
5123
 
5124
+ var target;
5125
+ var selector = Util.getSelectorFromElement(this);
 
5126
 
5127
+ if (selector) {
5128
+ target = document.querySelector(selector);
5129
+ }
 
5130
 
5131
+ var config = $(target).data(DATA_KEY$5) ? 'toggle' : _objectSpread({}, $(target).data(), $(this).data());
 
 
5132
 
5133
+ if (this.tagName === 'A' || this.tagName === 'AREA') {
5134
+ event.preventDefault();
5135
+ }
 
 
5136
 
5137
+ var $target = $(target).one(Event$5.SHOW, function (showEvent) {
5138
+ if (showEvent.isDefaultPrevented()) {
5139
+ // Only register focus restorer if modal will actually get shown
5140
+ return;
5141
+ }
5142
 
5143
+ $target.one(Event$5.HIDDEN, function () {
5144
+ if ($(_this10).is(':visible')) {
5145
+ _this10.focus();
5146
  }
5147
+ });
5148
+ });
5149
 
5150
+ Modal._jQueryInterface.call($(target), config, this);
5151
+ });
5152
+ /**
5153
+ * ------------------------------------------------------------------------
5154
+ * jQuery
5155
+ * ------------------------------------------------------------------------
5156
+ */
5157
 
5158
+ $.fn[NAME$5] = Modal._jQueryInterface;
5159
+ $.fn[NAME$5].Constructor = Modal;
 
5160
 
5161
+ $.fn[NAME$5].noConflict = function () {
5162
+ $.fn[NAME$5] = JQUERY_NO_CONFLICT$5;
5163
+ return Modal._jQueryInterface;
5164
+ };
5165
 
5166
+ /**
5167
+ * ------------------------------------------------------------------------
5168
+ * Constants
5169
+ * ------------------------------------------------------------------------
5170
+ */
5171
 
5172
+ var NAME$6 = 'tooltip';
5173
+ var VERSION$6 = '4.2.1';
5174
+ var DATA_KEY$6 = 'bs.tooltip';
5175
+ var EVENT_KEY$6 = "." + DATA_KEY$6;
5176
+ var JQUERY_NO_CONFLICT$6 = $.fn[NAME$6];
5177
+ var CLASS_PREFIX = 'bs-tooltip';
5178
+ var BSCLS_PREFIX_REGEX = new RegExp("(^|\\s)" + CLASS_PREFIX + "\\S+", 'g');
5179
+ var DefaultType$4 = {
5180
+ animation: 'boolean',
5181
+ template: 'string',
5182
+ title: '(string|element|function)',
5183
+ trigger: 'string',
5184
+ delay: '(number|object)',
5185
+ html: 'boolean',
5186
+ selector: '(string|boolean)',
5187
+ placement: '(string|function)',
5188
+ offset: '(number|string)',
5189
+ container: '(string|element|boolean)',
5190
+ fallbackPlacement: '(string|array)',
5191
+ boundary: '(string|element)'
5192
+ };
5193
+ var AttachmentMap$1 = {
5194
+ AUTO: 'auto',
5195
+ TOP: 'top',
5196
+ RIGHT: 'right',
5197
+ BOTTOM: 'bottom',
5198
+ LEFT: 'left'
5199
+ };
5200
+ var Default$4 = {
5201
+ animation: true,
5202
+ template: '<div class="tooltip" role="tooltip">' + '<div class="arrow"></div>' + '<div class="tooltip-inner"></div></div>',
5203
+ trigger: 'hover focus',
5204
+ title: '',
5205
+ delay: 0,
5206
+ html: false,
5207
+ selector: false,
5208
+ placement: 'top',
5209
+ offset: 0,
5210
+ container: false,
5211
+ fallbackPlacement: 'flip',
5212
+ boundary: 'scrollParent'
5213
+ };
5214
+ var HoverState = {
5215
+ SHOW: 'show',
5216
+ OUT: 'out'
5217
+ };
5218
+ var Event$6 = {
5219
+ HIDE: "hide" + EVENT_KEY$6,
5220
+ HIDDEN: "hidden" + EVENT_KEY$6,
5221
+ SHOW: "show" + EVENT_KEY$6,
5222
+ SHOWN: "shown" + EVENT_KEY$6,
5223
+ INSERTED: "inserted" + EVENT_KEY$6,
5224
+ CLICK: "click" + EVENT_KEY$6,
5225
+ FOCUSIN: "focusin" + EVENT_KEY$6,
5226
+ FOCUSOUT: "focusout" + EVENT_KEY$6,
5227
+ MOUSEENTER: "mouseenter" + EVENT_KEY$6,
5228
+ MOUSELEAVE: "mouseleave" + EVENT_KEY$6
5229
+ };
5230
+ var ClassName$6 = {
5231
+ FADE: 'fade',
5232
+ SHOW: 'show'
5233
+ };
5234
+ var Selector$6 = {
5235
+ TOOLTIP: '.tooltip',
5236
+ TOOLTIP_INNER: '.tooltip-inner',
5237
+ ARROW: '.arrow'
5238
+ };
5239
+ var Trigger = {
5240
+ HOVER: 'hover',
5241
+ FOCUS: 'focus',
5242
+ CLICK: 'click',
5243
+ MANUAL: 'manual'
5244
+ /**
5245
+ * ------------------------------------------------------------------------
5246
+ * Class Definition
5247
+ * ------------------------------------------------------------------------
5248
+ */
5249
 
5250
+ };
5251
 
5252
+ var Tooltip =
5253
+ /*#__PURE__*/
5254
+ function () {
5255
+ function Tooltip(element, config) {
5256
+ /**
5257
+ * Check for Popper dependency
5258
+ * Popper - https://popper.js.org
5259
+ */
5260
+ if (typeof Popper === 'undefined') {
5261
+ throw new TypeError('Bootstrap\'s tooltips require Popper.js (https://popper.js.org/)');
5262
+ } // private
5263
 
 
 
 
5264
 
5265
+ this._isEnabled = true;
5266
+ this._timeout = 0;
5267
+ this._hoverState = '';
5268
+ this._activeTrigger = {};
5269
+ this._popper = null; // Protected
5270
 
5271
+ this.element = element;
5272
+ this.config = this._getConfig(config);
5273
+ this.tip = null;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
5274
 
5275
+ this._setListeners();
5276
+ } // Getters
 
5277
 
 
 
 
 
5278
 
5279
+ var _proto = Tooltip.prototype;
 
 
5280
 
5281
+ // Public
5282
+ _proto.enable = function enable() {
5283
+ this._isEnabled = true;
5284
+ };
5285
 
5286
+ _proto.disable = function disable() {
5287
+ this._isEnabled = false;
5288
+ };
5289
+
5290
+ _proto.toggleEnabled = function toggleEnabled() {
5291
+ this._isEnabled = !this._isEnabled;
5292
+ };
5293
+
5294
+ _proto.toggle = function toggle(event) {
5295
+ if (!this._isEnabled) {
5296
+ return;
5297
+ }
5298
+
5299
+ if (event) {
5300
+ var dataKey = this.constructor.DATA_KEY;
5301
+ var context = $(event.currentTarget).data(dataKey);
5302
+
5303
+ if (!context) {
5304
+ context = new this.constructor(event.currentTarget, this._getDelegateConfig());
5305
+ $(event.currentTarget).data(dataKey, context);
5306
  }
 
5307
 
5308
+ context._activeTrigger.click = !context._activeTrigger.click;
 
5309
 
5310
+ if (context._isWithActiveTrigger()) {
5311
+ context._enter(null, context);
5312
+ } else {
5313
+ context._leave(null, context);
5314
+ }
5315
+ } else {
5316
+ if ($(this.getTipElement()).hasClass(ClassName$6.SHOW)) {
5317
+ this._leave(null, this);
5318
 
5319
+ return;
5320
+ }
5321
+
5322
+ this._enter(null, this);
5323
+ }
5324
+ };
5325
 
5326
+ _proto.dispose = function dispose() {
5327
+ clearTimeout(this._timeout);
5328
+ $.removeData(this.element, this.constructor.DATA_KEY);
5329
+ $(this.element).off(this.constructor.EVENT_KEY);
5330
+ $(this.element).closest('.modal').off('hide.bs.modal');
5331
 
5332
+ if (this.tip) {
5333
+ $(this.tip).remove();
5334
+ }
5335
 
5336
+ this._isEnabled = null;
5337
+ this._timeout = null;
5338
+ this._hoverState = null;
5339
+ this._activeTrigger = null;
5340
 
5341
+ if (this._popper !== null) {
5342
+ this._popper.destroy();
5343
+ }
5344
 
5345
+ this._popper = null;
5346
+ this.element = null;
5347
+ this.config = null;
5348
+ this.tip = null;
5349
+ };
5350
 
5351
+ _proto.show = function show() {
5352
+ var _this = this;
5353
 
5354
+ if ($(this.element).css('display') === 'none') {
5355
+ throw new Error('Please use show on visible elements');
5356
+ }
5357
+
5358
+ var showEvent = $.Event(this.constructor.Event.SHOW);
5359
+
5360
+ if (this.isWithContent() && this._isEnabled) {
5361
+ $(this.element).trigger(showEvent);
5362
+ var shadowRoot = Util.findShadowRoot(this.element);
5363
+ var isInTheDom = $.contains(shadowRoot !== null ? shadowRoot : this.element.ownerDocument.documentElement, this.element);
5364
+
5365
+ if (showEvent.isDefaultPrevented() || !isInTheDom) {
5366
  return;
5367
  }
5368
 
5369
+ var tip = this.getTipElement();
5370
+ var tipId = Util.getUID(this.constructor.NAME);
5371
+ tip.setAttribute('id', tipId);
5372
+ this.element.setAttribute('aria-describedby', tipId);
5373
+ this.setContent();
5374
+
5375
+ if (this.config.animation) {
5376
+ $(tip).addClass(ClassName$6.FADE);
5377
+ }
5378
+
5379
+ var placement = typeof this.config.placement === 'function' ? this.config.placement.call(this, tip, this.element) : this.config.placement;
5380
+
5381
+ var attachment = this._getAttachment(placement);
5382
+
5383
+ this.addAttachmentClass(attachment);
5384
+
5385
+ var container = this._getContainer();
5386
+
5387
+ $(tip).data(this.constructor.DATA_KEY, this);
5388
+
5389
+ if (!$.contains(this.element.ownerDocument.documentElement, this.tip)) {
5390
+ $(tip).appendTo(container);
5391
+ }
5392
+
5393
+ $(this.element).trigger(this.constructor.Event.INSERTED);
5394
+ this._popper = new Popper(this.element, tip, {
5395
+ placement: attachment,
5396
+ modifiers: {
5397
+ offset: {
5398
+ offset: this.config.offset
5399
+ },
5400
+ flip: {
5401
+ behavior: this.config.fallbackPlacement
5402
+ },
5403
+ arrow: {
5404
+ element: Selector$6.ARROW
5405
+ },
5406
+ preventOverflow: {
5407
+ boundariesElement: this.config.boundary
5408
+ }
5409
+ },
5410
+ onCreate: function onCreate(data) {
5411
+ if (data.originalPlacement !== data.placement) {
5412
+ _this._handlePopperPlacementChange(data);
5413
+ }
5414
+ },
5415
+ onUpdate: function onUpdate(data) {
5416
+ return _this._handlePopperPlacementChange(data);
5417
+ }
5418
+ });
5419
+ $(tip).addClass(ClassName$6.SHOW); // If this is a touch-enabled device we add extra
5420
+ // empty mouseover listeners to the body's immediate children;
5421
+ // only needed because of broken event delegation on iOS
5422
+ // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html
5423
 
5424
  if ('ontouchstart' in document.documentElement) {
5425
+ $(document.body).children().on('mouseover', null, $.noop);
5426
  }
5427
 
5428
+ var complete = function complete() {
5429
+ if (_this.config.animation) {
5430
+ _this._fixTransition();
5431
+ }
5432
+
5433
+ var prevHoverState = _this._hoverState;
5434
+ _this._hoverState = null;
5435
+ $(_this.element).trigger(_this.constructor.Event.SHOWN);
5436
+
5437
+ if (prevHoverState === HoverState.OUT) {
5438
+ _this._leave(null, _this);
5439
+ }
5440
+ };
5441
 
5442
+ if ($(this.tip).hasClass(ClassName$6.FADE)) {
5443
+ var transitionDuration = Util.getTransitionDurationFromElement(this.tip);
5444
+ $(this.tip).one(Util.TRANSITION_END, complete).emulateTransitionEnd(transitionDuration);
5445
  } else {
5446
  complete();
5447
  }
5448
+ }
5449
+ };
5450
 
5451
+ _proto.hide = function hide(callback) {
5452
+ var _this2 = this;
5453
+
5454
+ var tip = this.getTipElement();
5455
+ var hideEvent = $.Event(this.constructor.Event.HIDE);
5456
 
5457
+ var complete = function complete() {
5458
+ if (_this2._hoverState !== HoverState.SHOW && tip.parentNode) {
5459
+ tip.parentNode.removeChild(tip);
5460
  }
 
5461
 
5462
+ _this2._cleanTipClass();
5463
 
5464
+ _this2.element.removeAttribute('aria-describedby');
 
 
5465
 
5466
+ $(_this2.element).trigger(_this2.constructor.Event.HIDDEN);
 
 
5467
 
5468
+ if (_this2._popper !== null) {
5469
+ _this2._popper.destroy();
5470
+ }
 
5471
 
5472
+ if (callback) {
5473
+ callback();
5474
+ }
 
5475
  };
5476
 
5477
+ $(this.element).trigger(hideEvent);
 
5478
 
5479
+ if (hideEvent.isDefaultPrevented()) {
5480
+ return;
5481
+ }
5482
+
5483
+ $(tip).removeClass(ClassName$6.SHOW); // If this is a touch-enabled device we remove the extra
5484
+ // empty mouseover listeners we added for iOS support
5485
+
5486
+ if ('ontouchstart' in document.documentElement) {
5487
+ $(document.body).children().off('mouseover', null, $.noop);
5488
+ }
5489
+
5490
+ this._activeTrigger[Trigger.CLICK] = false;
5491
+ this._activeTrigger[Trigger.FOCUS] = false;
5492
+ this._activeTrigger[Trigger.HOVER] = false;
5493
+
5494
+ if ($(this.tip).hasClass(ClassName$6.FADE)) {
5495
+ var transitionDuration = Util.getTransitionDurationFromElement(tip);
5496
+ $(tip).one(Util.TRANSITION_END, complete).emulateTransitionEnd(transitionDuration);
5497
+ } else {
5498
+ complete();
5499
+ }
5500
+
5501
+ this._hoverState = '';
5502
+ };
5503
+
5504
+ _proto.update = function update() {
5505
+ if (this._popper !== null) {
5506
+ this._popper.scheduleUpdate();
5507
+ }
5508
+ }; // Protected
5509
+
5510
+
5511
+ _proto.isWithContent = function isWithContent() {
5512
+ return Boolean(this.getTitle());
5513
+ };
5514
+
5515
+ _proto.addAttachmentClass = function addAttachmentClass(attachment) {
5516
+ $(this.getTipElement()).addClass(CLASS_PREFIX + "-" + attachment);
5517
+ };
5518
+
5519
+ _proto.getTipElement = function getTipElement() {
5520
+ this.tip = this.tip || $(this.config.template)[0];
5521
+ return this.tip;
5522
+ };
5523
+
5524
+ _proto.setContent = function setContent() {
5525
+ var tip = this.getTipElement();
5526
+ this.setElementContent($(tip.querySelectorAll(Selector$6.TOOLTIP_INNER)), this.getTitle());
5527
+ $(tip).removeClass(ClassName$6.FADE + " " + ClassName$6.SHOW);
5528
+ };
5529
+
5530
+ _proto.setElementContent = function setElementContent($element, content) {
5531
+ var html = this.config.html;
5532
+
5533
+ if (typeof content === 'object' && (content.nodeType || content.jquery)) {
5534
+ // Content is a DOM node or a jQuery
5535
+ if (html) {
5536
+ if (!$(content).parent().is($element)) {
5537
+ $element.empty().append(content);
5538
  }
5539
  } else {
5540
+ $element.text($(content).text());
5541
  }
5542
+ } else {
5543
+ $element[html ? 'html' : 'text'](content);
5544
+ }
5545
+ };
5546
 
5547
+ _proto.getTitle = function getTitle() {
5548
+ var title = this.element.getAttribute('data-original-title');
5549
 
5550
+ if (!title) {
5551
+ title = typeof this.config.title === 'function' ? this.config.title.call(this.element) : this.config.title;
5552
+ }
5553
 
5554
+ return title;
5555
+ }; // Private
5556
 
5557
 
5558
+ _proto._getContainer = function _getContainer() {
5559
+ if (this.config.container === false) {
5560
+ return document.body;
5561
+ }
5562
 
5563
+ if (Util.isElement(this.config.container)) {
5564
+ return $(this.config.container);
5565
+ }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
5566
 
5567
+ return $(document).find(this.config.container);
5568
+ };
5569
+
5570
+ _proto._getAttachment = function _getAttachment(placement) {
5571
+ return AttachmentMap$1[placement.toUpperCase()];
5572
+ };
5573
 
5574
+ _proto._setListeners = function _setListeners() {
5575
+ var _this3 = this;
5576
+
5577
+ var triggers = this.config.trigger.split(' ');
5578
+ triggers.forEach(function (trigger) {
5579
+ if (trigger === 'click') {
5580
+ $(_this3.element).on(_this3.constructor.Event.CLICK, _this3.config.selector, function (event) {
5581
+ return _this3.toggle(event);
5582
+ });
5583
+ } else if (trigger !== Trigger.MANUAL) {
5584
+ var eventIn = trigger === Trigger.HOVER ? _this3.constructor.Event.MOUSEENTER : _this3.constructor.Event.FOCUSIN;
5585
+ var eventOut = trigger === Trigger.HOVER ? _this3.constructor.Event.MOUSELEAVE : _this3.constructor.Event.FOCUSOUT;
5586
+ $(_this3.element).on(eventIn, _this3.config.selector, function (event) {
5587
+ return _this3._enter(event);
5588
+ }).on(eventOut, _this3.config.selector, function (event) {
5589
+ return _this3._leave(event);
5590
  });
 
 
5591
  }
5592
+ });
5593
+ $(this.element).closest('.modal').on('hide.bs.modal', function () {
5594
+ if (_this3.element) {
5595
+ _this3.hide();
5596
+ }
5597
+ });
5598
 
5599
+ if (this.config.selector) {
5600
+ this.config = _objectSpread({}, this.config, {
5601
+ trigger: 'manual',
5602
+ selector: ''
5603
+ });
5604
+ } else {
5605
+ this._fixTitle();
5606
+ }
5607
+ };
5608
 
5609
+ _proto._fixTitle = function _fixTitle() {
5610
+ var titleType = typeof this.element.getAttribute('data-original-title');
 
 
 
5611
 
5612
+ if (this.element.getAttribute('title') || titleType !== 'string') {
5613
+ this.element.setAttribute('data-original-title', this.element.getAttribute('title') || '');
5614
+ this.element.setAttribute('title', '');
5615
+ }
5616
+ };
5617
 
5618
+ _proto._enter = function _enter(event, context) {
5619
+ var dataKey = this.constructor.DATA_KEY;
5620
+ context = context || $(event.currentTarget).data(dataKey);
 
5621
 
5622
+ if (!context) {
5623
+ context = new this.constructor(event.currentTarget, this._getDelegateConfig());
5624
+ $(event.currentTarget).data(dataKey, context);
5625
+ }
5626
 
5627
+ if (event) {
5628
+ context._activeTrigger[event.type === 'focusin' ? Trigger.FOCUS : Trigger.HOVER] = true;
5629
+ }
 
5630
 
5631
+ if ($(context.getTipElement()).hasClass(ClassName$6.SHOW) || context._hoverState === HoverState.SHOW) {
5632
  context._hoverState = HoverState.SHOW;
5633
+ return;
5634
+ }
5635
+
5636
+ clearTimeout(context._timeout);
5637
+ context._hoverState = HoverState.SHOW;
5638
+
5639
+ if (!context.config.delay || !context.config.delay.show) {
5640
+ context.show();
5641
+ return;
5642
+ }
5643
 
5644
+ context._timeout = setTimeout(function () {
5645
+ if (context._hoverState === HoverState.SHOW) {
5646
  context.show();
 
5647
  }
5648
+ }, context.config.delay.show);
5649
+ };
5650
 
5651
+ _proto._leave = function _leave(event, context) {
5652
+ var dataKey = this.constructor.DATA_KEY;
5653
+ context = context || $(event.currentTarget).data(dataKey);
 
 
 
5654
 
5655
+ if (!context) {
5656
+ context = new this.constructor(event.currentTarget, this._getDelegateConfig());
5657
+ $(event.currentTarget).data(dataKey, context);
5658
+ }
5659
 
5660
+ if (event) {
5661
+ context._activeTrigger[event.type === 'focusout' ? Trigger.FOCUS : Trigger.HOVER] = false;
5662
+ }
 
5663
 
5664
+ if (context._isWithActiveTrigger()) {
5665
+ return;
5666
+ }
5667
 
5668
+ clearTimeout(context._timeout);
5669
+ context._hoverState = HoverState.OUT;
 
5670
 
5671
+ if (!context.config.delay || !context.config.delay.hide) {
5672
+ context.hide();
5673
+ return;
5674
+ }
5675
 
5676
+ context._timeout = setTimeout(function () {
5677
+ if (context._hoverState === HoverState.OUT) {
5678
  context.hide();
 
5679
  }
5680
+ }, context.config.delay.hide);
5681
+ };
5682
 
5683
+ _proto._isWithActiveTrigger = function _isWithActiveTrigger() {
5684
+ for (var trigger in this._activeTrigger) {
5685
+ if (this._activeTrigger[trigger]) {
5686
+ return true;
 
 
 
 
 
 
 
 
5687
  }
5688
+ }
5689
 
5690
+ return false;
5691
+ };
5692
 
5693
+ _proto._getConfig = function _getConfig(config) {
5694
+ config = _objectSpread({}, this.constructor.Default, $(this.element).data(), typeof config === 'object' && config ? config : {});
5695
 
5696
+ if (typeof config.delay === 'number') {
5697
+ config.delay = {
5698
+ show: config.delay,
5699
+ hide: config.delay
5700
+ };
5701
+ }
5702
 
5703
+ if (typeof config.title === 'number') {
5704
+ config.title = config.title.toString();
5705
+ }
5706
 
5707
+ if (typeof config.content === 'number') {
5708
+ config.content = config.content.toString();
5709
+ }
5710
 
5711
+ Util.typeCheckConfig(NAME$6, config, this.constructor.DefaultType);
5712
+ return config;
5713
+ };
5714
 
5715
+ _proto._getDelegateConfig = function _getDelegateConfig() {
5716
+ var config = {};
5717
 
5718
+ if (this.config) {
5719
+ for (var key in this.config) {
5720
+ if (this.constructor.Default[key] !== this.config[key]) {
5721
+ config[key] = this.config[key];
 
5722
  }
5723
  }
5724
+ }
5725
 
5726
+ return config;
5727
+ };
5728
 
5729
+ _proto._cleanTipClass = function _cleanTipClass() {
5730
+ var $tip = $(this.getTipElement());
5731
+ var tabClass = $tip.attr('class').match(BSCLS_PREFIX_REGEX);
5732
 
5733
+ if (tabClass !== null && tabClass.length) {
5734
+ $tip.removeClass(tabClass.join(''));
5735
+ }
5736
+ };
5737
 
5738
+ _proto._handlePopperPlacementChange = function _handlePopperPlacementChange(popperData) {
5739
+ var popperInstance = popperData.instance;
5740
+ this.tip = popperInstance.popper;
5741
 
5742
+ this._cleanTipClass();
5743
 
5744
+ this.addAttachmentClass(this._getAttachment(popperData.placement));
5745
+ };
5746
+
5747
+ _proto._fixTransition = function _fixTransition() {
5748
+ var tip = this.getTipElement();
5749
+ var initConfigAnimation = this.config.animation;
5750
+
5751
+ if (tip.getAttribute('x-placement') !== null) {
5752
+ return;
5753
+ }
5754
+
5755
+ $(tip).removeClass(ClassName$6.FADE);
5756
+ this.config.animation = false;
5757
+ this.hide();
5758
+ this.show();
5759
+ this.config.animation = initConfigAnimation;
5760
+ }; // Static
5761
 
 
 
 
5762
 
5763
+ Tooltip._jQueryInterface = function _jQueryInterface(config) {
5764
+ return this.each(function () {
5765
+ var data = $(this).data(DATA_KEY$6);
5766
+
5767
+ var _config = typeof config === 'object' && config;
5768
+
5769
+ if (!data && /dispose|hide/.test(config)) {
5770
  return;
5771
  }
5772
 
5773
+ if (!data) {
5774
+ data = new Tooltip(this, _config);
5775
+ $(this).data(DATA_KEY$6, data);
5776
+ }
 
 
5777
 
5778
+ if (typeof config === 'string') {
5779
+ if (typeof data[config] === 'undefined') {
5780
+ throw new TypeError("No method named \"" + config + "\"");
5781
+ }
5782
 
5783
+ data[config]();
5784
+ }
5785
+ });
5786
+ };
5787
 
5788
+ _createClass(Tooltip, null, [{
5789
+ key: "VERSION",
5790
+ get: function get() {
5791
+ return VERSION$6;
5792
+ }
5793
+ }, {
5794
+ key: "Default",
5795
+ get: function get() {
5796
+ return Default$4;
5797
+ }
5798
+ }, {
5799
+ key: "NAME",
5800
+ get: function get() {
5801
+ return NAME$6;
5802
+ }
5803
+ }, {
5804
+ key: "DATA_KEY",
5805
+ get: function get() {
5806
+ return DATA_KEY$6;
5807
+ }
5808
+ }, {
5809
+ key: "Event",
5810
+ get: function get() {
5811
+ return Event$6;
5812
+ }
5813
+ }, {
5814
+ key: "EVENT_KEY",
5815
+ get: function get() {
5816
+ return EVENT_KEY$6;
5817
+ }
5818
+ }, {
5819
+ key: "DefaultType",
5820
+ get: function get() {
5821
+ return DefaultType$4;
5822
+ }
5823
+ }]);
5824
 
5825
+ return Tooltip;
5826
+ }();
5827
+ /**
5828
+ * ------------------------------------------------------------------------
5829
+ * jQuery
5830
+ * ------------------------------------------------------------------------
5831
+ */
5832
 
 
 
 
 
5833
 
5834
+ $.fn[NAME$6] = Tooltip._jQueryInterface;
5835
+ $.fn[NAME$6].Constructor = Tooltip;
 
 
5836
 
5837
+ $.fn[NAME$6].noConflict = function () {
5838
+ $.fn[NAME$6] = JQUERY_NO_CONFLICT$6;
5839
+ return Tooltip._jQueryInterface;
5840
+ };
5841
 
5842
+ /**
5843
+ * ------------------------------------------------------------------------
5844
+ * Constants
5845
+ * ------------------------------------------------------------------------
5846
+ */
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
5847
 
5848
+ var NAME$7 = 'popover';
5849
+ var VERSION$7 = '4.2.1';
5850
+ var DATA_KEY$7 = 'bs.popover';
5851
+ var EVENT_KEY$7 = "." + DATA_KEY$7;
5852
+ var JQUERY_NO_CONFLICT$7 = $.fn[NAME$7];
5853
+ var CLASS_PREFIX$1 = 'bs-popover';
5854
+ var BSCLS_PREFIX_REGEX$1 = new RegExp("(^|\\s)" + CLASS_PREFIX$1 + "\\S+", 'g');
5855
+
5856
+ var Default$5 = _objectSpread({}, Tooltip.Default, {
5857
+ placement: 'right',
5858
+ trigger: 'click',
5859
+ content: '',
5860
+ template: '<div class="popover" role="tooltip">' + '<div class="arrow"></div>' + '<h3 class="popover-header"></h3>' + '<div class="popover-body"></div></div>'
5861
+ });
5862
+
5863
+ var DefaultType$5 = _objectSpread({}, Tooltip.DefaultType, {
5864
+ content: '(string|element|function)'
5865
+ });
5866
+
5867
+ var ClassName$7 = {
5868
+ FADE: 'fade',
5869
+ SHOW: 'show'
5870
+ };
5871
+ var Selector$7 = {
5872
+ TITLE: '.popover-header',
5873
+ CONTENT: '.popover-body'
5874
+ };
5875
+ var Event$7 = {
5876
+ HIDE: "hide" + EVENT_KEY$7,
5877
+ HIDDEN: "hidden" + EVENT_KEY$7,
5878
+ SHOW: "show" + EVENT_KEY$7,
5879
+ SHOWN: "shown" + EVENT_KEY$7,
5880
+ INSERTED: "inserted" + EVENT_KEY$7,
5881
+ CLICK: "click" + EVENT_KEY$7,
5882
+ FOCUSIN: "focusin" + EVENT_KEY$7,
5883
+ FOCUSOUT: "focusout" + EVENT_KEY$7,
5884
+ MOUSEENTER: "mouseenter" + EVENT_KEY$7,
5885
+ MOUSELEAVE: "mouseleave" + EVENT_KEY$7
5886
  /**
5887
  * ------------------------------------------------------------------------
5888
+ * Class Definition
5889
  * ------------------------------------------------------------------------
5890
  */
5891
 
5892
+ };
5893
+
5894
+ var Popover =
5895
+ /*#__PURE__*/
5896
+ function (_Tooltip) {
5897
+ _inheritsLoose(Popover, _Tooltip);
5898
+
5899
+ function Popover() {
5900
+ return _Tooltip.apply(this, arguments) || this;
5901
+ }
5902
 
5903
+ var _proto = Popover.prototype;
 
5904
 
5905
+ // Overrides
5906
+ _proto.isWithContent = function isWithContent() {
5907
+ return this.getTitle() || this._getContent();
5908
  };
5909
 
5910
+ _proto.addAttachmentClass = function addAttachmentClass(attachment) {
5911
+ $(this.getTipElement()).addClass(CLASS_PREFIX$1 + "-" + attachment);
5912
+ };
5913
 
5914
+ _proto.getTipElement = function getTipElement() {
5915
+ this.tip = this.tip || $(this.config.template)[0];
5916
+ return this.tip;
5917
+ };
5918
+
5919
+ _proto.setContent = function setContent() {
5920
+ var $tip = $(this.getTipElement()); // We use append for html objects to maintain js events
5921
+
5922
+ this.setElementContent($tip.find(Selector$7.TITLE), this.getTitle());
5923
+
5924
+ var content = this._getContent();
5925
+
5926
+ if (typeof content === 'function') {
5927
+ content = content.call(this.element);
5928
+ }
5929
+
5930
+ this.setElementContent($tip.find(Selector$7.CONTENT), content);
5931
+ $tip.removeClass(ClassName$7.FADE + " " + ClassName$7.SHOW);
5932
+ }; // Private
5933
+
5934
+
5935
+ _proto._getContent = function _getContent() {
5936
+ return this.element.getAttribute('data-content') || this.config.content;
5937
+ };
5938
+
5939
+ _proto._cleanTipClass = function _cleanTipClass() {
5940
+ var $tip = $(this.getTipElement());
5941
+ var tabClass = $tip.attr('class').match(BSCLS_PREFIX_REGEX$1);
5942
+
5943
+ if (tabClass !== null && tabClass.length > 0) {
5944
+ $tip.removeClass(tabClass.join(''));
5945
+ }
5946
+ }; // Static
5947
+
5948
+
5949
+ Popover._jQueryInterface = function _jQueryInterface(config) {
5950
+ return this.each(function () {
5951
+ var data = $(this).data(DATA_KEY$7);
5952
+
5953
+ var _config = typeof config === 'object' ? config : null;
5954
+
5955
+ if (!data && /dispose|hide/.test(config)) {
5956
+ return;
5957
+ }
5958
+
5959
+ if (!data) {
5960
+ data = new Popover(this, _config);
5961
+ $(this).data(DATA_KEY$7, data);
5962
+ }
5963
+
5964
+ if (typeof config === 'string') {
5965
+ if (typeof data[config] === 'undefined') {
5966
+ throw new TypeError("No method named \"" + config + "\"");
5967
+ }
5968
+
5969
+ data[config]();
5970
+ }
5971
+ });
5972
+ };
5973
+
5974
+ _createClass(Popover, null, [{
5975
+ key: "VERSION",
5976
+ // Getters
5977
+ get: function get() {
5978
+ return VERSION$7;
5979
+ }
5980
+ }, {
5981
+ key: "Default",
5982
+ get: function get() {
5983
+ return Default$5;
5984
+ }
5985
+ }, {
5986
+ key: "NAME",
5987
+ get: function get() {
5988
+ return NAME$7;
5989
+ }
5990
+ }, {
5991
+ key: "DATA_KEY",
5992
+ get: function get() {
5993
+ return DATA_KEY$7;
5994
+ }
5995
+ }, {
5996
+ key: "Event",
5997
+ get: function get() {
5998
+ return Event$7;
5999
+ }
6000
+ }, {
6001
+ key: "EVENT_KEY",
6002
+ get: function get() {
6003
+ return EVENT_KEY$7;
6004
+ }
6005
+ }, {
6006
+ key: "DefaultType",
6007
+ get: function get() {
6008
+ return DefaultType$5;
6009
+ }
6010
+ }]);
6011
+
6012
+ return Popover;
6013
+ }(Tooltip);
6014
  /**
6015
+ * ------------------------------------------------------------------------
6016
+ * jQuery
6017
+ * ------------------------------------------------------------------------
6018
+ */
6019
+
6020
+
6021
+ $.fn[NAME$7] = Popover._jQueryInterface;
6022
+ $.fn[NAME$7].Constructor = Popover;
6023
+
6024
+ $.fn[NAME$7].noConflict = function () {
6025
+ $.fn[NAME$7] = JQUERY_NO_CONFLICT$7;
6026
+ return Popover._jQueryInterface;
6027
+ };
6028
+
6029
+ /**
6030
+ * ------------------------------------------------------------------------
6031
+ * Constants
6032
+ * ------------------------------------------------------------------------
6033
  */
6034
 
6035
+ var NAME$8 = 'scrollspy';
6036
+ var VERSION$8 = '4.2.1';
6037
+ var DATA_KEY$8 = 'bs.scrollspy';
6038
+ var EVENT_KEY$8 = "." + DATA_KEY$8;
6039
+ var DATA_API_KEY$6 = '.data-api';
6040
+ var JQUERY_NO_CONFLICT$8 = $.fn[NAME$8];
6041
+ var Default$6 = {
6042
+ offset: 10,
6043
+ method: 'auto',
6044
+ target: ''
6045
+ };
6046
+ var DefaultType$6 = {
6047
+ offset: 'number',
6048
+ method: 'string',
6049
+ target: '(string|element)'
6050
+ };
6051
+ var Event$8 = {
6052
+ ACTIVATE: "activate" + EVENT_KEY$8,
6053
+ SCROLL: "scroll" + EVENT_KEY$8,
6054
+ LOAD_DATA_API: "load" + EVENT_KEY$8 + DATA_API_KEY$6
6055
+ };
6056
+ var ClassName$8 = {
6057
+ DROPDOWN_ITEM: 'dropdown-item',
6058
+ DROPDOWN_MENU: 'dropdown-menu',
6059
+ ACTIVE: 'active'
6060
+ };
6061
+ var Selector$8 = {
6062
+ DATA_SPY: '[data-spy="scroll"]',
6063
+ ACTIVE: '.active',
6064
+ NAV_LIST_GROUP: '.nav, .list-group',
6065
+ NAV_LINKS: '.nav-link',
6066
+ NAV_ITEMS: '.nav-item',
6067
+ LIST_ITEMS: '.list-group-item',
6068
+ DROPDOWN: '.dropdown',
6069
+ DROPDOWN_ITEMS: '.dropdown-item',
6070
+ DROPDOWN_TOGGLE: '.dropdown-toggle'
6071
+ };
6072
+ var OffsetMethod = {
6073
+ OFFSET: 'offset',
6074
+ POSITION: 'position'
6075
  /**
6076
  * ------------------------------------------------------------------------
6077
+ * Class Definition
6078
  * ------------------------------------------------------------------------
6079
  */
 
 
 
 
 
 
 
 
 
 
 
 
 
 
6080
 
6081
+ };
6082
+
6083
+ var ScrollSpy =
6084
+ /*#__PURE__*/
6085
+ function () {
6086
+ function ScrollSpy(element, config) {
6087
+ var _this = this;
6088
+
6089
+ this._element = element;
6090
+ this._scrollElement = element.tagName === 'BODY' ? window : element;
6091
+ this._config = this._getConfig(config);
6092
+ this._selector = this._config.target + " " + Selector$8.NAV_LINKS + "," + (this._config.target + " " + Selector$8.LIST_ITEMS + ",") + (this._config.target + " " + Selector$8.DROPDOWN_ITEMS);
6093
+ this._offsets = [];
6094
+ this._targets = [];
6095
+ this._activeTarget = null;
6096
+ this._scrollHeight = 0;
6097
+ $(this._scrollElement).on(Event$8.SCROLL, function (event) {
6098
+ return _this._process(event);
6099
+ });
6100
+ this.refresh();
6101
+
6102
+ this._process();
6103
+ } // Getters
6104
+
6105
+
6106
+ var _proto = ScrollSpy.prototype;
6107
+
6108
+ // Public
6109
+ _proto.refresh = function refresh() {
6110
+ var _this2 = this;
6111
+
6112
+ var autoMethod = this._scrollElement === this._scrollElement.window ? OffsetMethod.OFFSET : OffsetMethod.POSITION;
6113
+ var offsetMethod = this._config.method === 'auto' ? autoMethod : this._config.method;
6114
+ var offsetBase = offsetMethod === OffsetMethod.POSITION ? this._getScrollTop() : 0;
6115
+ this._offsets = [];
6116
+ this._targets = [];
6117
+ this._scrollHeight = this._getScrollHeight();
6118
+ var targets = [].slice.call(document.querySelectorAll(this._selector));
6119
+ targets.map(function (element) {
6120
+ var target;
6121
+ var targetSelector = Util.getSelectorFromElement(element);
6122
+
6123
+ if (targetSelector) {
6124
+ target = document.querySelector(targetSelector);
6125
+ }
6126
+
6127
+ if (target) {
6128
+ var targetBCR = target.getBoundingClientRect();
6129
+
6130
+ if (targetBCR.width || targetBCR.height) {
6131
+ // TODO (fat): remove sketch reliance on jQuery position/offset
6132
+ return [$(target)[offsetMethod]().top + offsetBase, targetSelector];
6133
+ }
6134
+ }
6135
+
6136
+ return null;
6137
+ }).filter(function (item) {
6138
+ return item;
6139
+ }).sort(function (a, b) {
6140
+ return a[0] - b[0];
6141
+ }).forEach(function (item) {
6142
+ _this2._offsets.push(item[0]);
6143
 
6144
+ _this2._targets.push(item[1]);
6145
+ });
 
6146
  };
6147
+
6148
+ _proto.dispose = function dispose() {
6149
+ $.removeData(this._element, DATA_KEY$8);
6150
+ $(this._scrollElement).off(EVENT_KEY$8);
6151
+ this._element = null;
6152
+ this._scrollElement = null;
6153
+ this._config = null;
6154
+ this._selector = null;
6155
+ this._offsets = null;
6156
+ this._targets = null;
6157
+ this._activeTarget = null;
6158
+ this._scrollHeight = null;
6159
+ }; // Private
6160
+
6161
+
6162
+ _proto._getConfig = function _getConfig(config) {
6163
+ config = _objectSpread({}, Default$6, typeof config === 'object' && config ? config : {});
6164
+
6165
+ if (typeof config.target !== 'string') {
6166
+ var id = $(config.target).attr('id');
6167
+
6168
+ if (!id) {
6169
+ id = Util.getUID(NAME$8);
6170
+ $(config.target).attr('id', id);
6171
+ }
6172
+
6173
+ config.target = "#" + id;
6174
+ }
6175
+
6176
+ Util.typeCheckConfig(NAME$8, config, DefaultType$6);
6177
+ return config;
6178
+ };
6179
+
6180
+ _proto._getScrollTop = function _getScrollTop() {
6181
+ return this._scrollElement === window ? this._scrollElement.pageYOffset : this._scrollElement.scrollTop;
6182
  };
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
6183
 
6184
+ _proto._getScrollHeight = function _getScrollHeight() {
6185
+ return this._scrollElement.scrollHeight || Math.max(document.body.scrollHeight, document.documentElement.scrollHeight);
6186
  };
6187
 
6188
+ _proto._getOffsetHeight = function _getOffsetHeight() {
6189
+ return this._scrollElement === window ? window.innerHeight : this._scrollElement.getBoundingClientRect().height;
6190
+ };
6191
+
6192
+ _proto._process = function _process() {
6193
+ var scrollTop = this._getScrollTop() + this._config.offset;
6194
+
6195
+ var scrollHeight = this._getScrollHeight();
6196
+
6197
+ var maxScroll = this._config.offset + scrollHeight - this._getOffsetHeight();
6198
 
6199
+ if (this._scrollHeight !== scrollHeight) {
6200
+ this.refresh();
6201
  }
6202
 
6203
+ if (scrollTop >= maxScroll) {
6204
+ var target = this._targets[this._targets.length - 1];
6205
 
6206
+ if (this._activeTarget !== target) {
6207
+ this._activate(target);
6208
+ }
 
6209
 
6210
+ return;
6211
+ }
6212
+
6213
+ if (this._activeTarget && scrollTop < this._offsets[0] && this._offsets[0] > 0) {
6214
+ this._activeTarget = null;
6215
+
6216
+ this._clear();
6217
+
6218
+ return;
6219
+ }
6220
+
6221
+ var offsetLength = this._offsets.length;
6222
+
6223
+ for (var i = offsetLength; i--;) {
6224
+ var isActiveTarget = this._activeTarget !== this._targets[i] && scrollTop >= this._offsets[i] && (typeof this._offsets[i + 1] === 'undefined' || scrollTop < this._offsets[i + 1]);
6225
+
6226
+ if (isActiveTarget) {
6227
+ this._activate(this._targets[i]);
6228
+ }
6229
+ }
6230
+ };
6231
 
6232
+ _proto._activate = function _activate(target) {
6233
+ this._activeTarget = target;
 
 
6234
 
6235
+ this._clear();
 
6236
 
6237
+ var queries = this._selector.split(',').map(function (selector) {
6238
+ return selector + "[data-target=\"" + target + "\"]," + selector + "[href=\"" + target + "\"]";
6239
+ });
6240
 
6241
+ var $link = $([].slice.call(document.querySelectorAll(queries.join(','))));
6242
 
6243
+ if ($link.hasClass(ClassName$8.DROPDOWN_ITEM)) {
6244
+ $link.closest(Selector$8.DROPDOWN).find(Selector$8.DROPDOWN_TOGGLE).addClass(ClassName$8.ACTIVE);
6245
+ $link.addClass(ClassName$8.ACTIVE);
6246
+ } else {
6247
+ // Set triggered link as active
6248
+ $link.addClass(ClassName$8.ACTIVE); // Set triggered links parents as active
6249
+ // With both <ul> and <nav> markup a parent is the previous sibling of any nav ancestor
6250
 
6251
+ $link.parents(Selector$8.NAV_LIST_GROUP).prev(Selector$8.NAV_LINKS + ", " + Selector$8.LIST_ITEMS).addClass(ClassName$8.ACTIVE); // Handle special case when .nav-link is inside .nav-item
 
 
6252
 
6253
+ $link.parents(Selector$8.NAV_LIST_GROUP).prev(Selector$8.NAV_ITEMS).children(Selector$8.NAV_LINKS).addClass(ClassName$8.ACTIVE);
6254
+ }
6255
 
6256
+ $(this._scrollElement).trigger(Event$8.ACTIVATE, {
6257
+ relatedTarget: target
6258
+ });
6259
+ };
6260
 
6261
+ _proto._clear = function _clear() {
6262
+ [].slice.call(document.querySelectorAll(this._selector)).filter(function (node) {
6263
+ return node.classList.contains(ClassName$8.ACTIVE);
6264
+ }).forEach(function (node) {
6265
+ return node.classList.remove(ClassName$8.ACTIVE);
6266
+ });
6267
+ }; // Static
6268
 
 
 
 
 
6269
 
6270
+ ScrollSpy._jQueryInterface = function _jQueryInterface(config) {
6271
+ return this.each(function () {
6272
+ var data = $(this).data(DATA_KEY$8);
6273
 
6274
+ var _config = typeof config === 'object' && config;
 
 
6275
 
6276
+ if (!data) {
6277
+ data = new ScrollSpy(this, _config);
6278
+ $(this).data(DATA_KEY$8, data);
6279
+ }
6280
 
6281
+ if (typeof config === 'string') {
6282
+ if (typeof data[config] === 'undefined') {
6283
+ throw new TypeError("No method named \"" + config + "\"");
6284
  }
6285
 
6286
+ data[config]();
6287
+ }
6288
+ });
6289
+ };
6290
 
6291
+ _createClass(ScrollSpy, null, [{
6292
+ key: "VERSION",
6293
+ get: function get() {
6294
+ return VERSION$8;
6295
+ }
6296
+ }, {
6297
+ key: "Default",
6298
+ get: function get() {
6299
+ return Default$6;
6300
+ }
6301
+ }]);
6302
 
6303
+ return ScrollSpy;
6304
+ }();
6305
+ /**
6306
+ * ------------------------------------------------------------------------
6307
+ * Data Api implementation
6308
+ * ------------------------------------------------------------------------
6309
+ */
6310
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
6311
 
6312
+ $(window).on(Event$8.LOAD_DATA_API, function () {
6313
+ var scrollSpys = [].slice.call(document.querySelectorAll(Selector$8.DATA_SPY));
6314
+ var scrollSpysLength = scrollSpys.length;
 
 
 
 
6315
 
6316
+ for (var i = scrollSpysLength; i--;) {
6317
+ var $spy = $(scrollSpys[i]);
6318
 
6319
+ ScrollSpy._jQueryInterface.call($spy, $spy.data());
6320
+ }
6321
+ });
6322
+ /**
6323
+ * ------------------------------------------------------------------------
6324
+ * jQuery
6325
+ * ------------------------------------------------------------------------
6326
+ */
6327
 
6328
+ $.fn[NAME$8] = ScrollSpy._jQueryInterface;
6329
+ $.fn[NAME$8].Constructor = ScrollSpy;
 
 
6330
 
6331
+ $.fn[NAME$8].noConflict = function () {
6332
+ $.fn[NAME$8] = JQUERY_NO_CONFLICT$8;
6333
+ return ScrollSpy._jQueryInterface;
6334
+ };
6335
 
6336
  /**
6337
+ * ------------------------------------------------------------------------
6338
+ * Constants
6339
+ * ------------------------------------------------------------------------
 
6340
  */
6341
 
6342
+ var NAME$9 = 'tab';
6343
+ var VERSION$9 = '4.2.1';
6344
+ var DATA_KEY$9 = 'bs.tab';
6345
+ var EVENT_KEY$9 = "." + DATA_KEY$9;
6346
+ var DATA_API_KEY$7 = '.data-api';
6347
+ var JQUERY_NO_CONFLICT$9 = $.fn[NAME$9];
6348
+ var Event$9 = {
6349
+ HIDE: "hide" + EVENT_KEY$9,
6350
+ HIDDEN: "hidden" + EVENT_KEY$9,
6351
+ SHOW: "show" + EVENT_KEY$9,
6352
+ SHOWN: "shown" + EVENT_KEY$9,
6353
+ CLICK_DATA_API: "click" + EVENT_KEY$9 + DATA_API_KEY$7
6354
+ };
6355
+ var ClassName$9 = {
6356
+ DROPDOWN_MENU: 'dropdown-menu',
6357
+ ACTIVE: 'active',
6358
+ DISABLED: 'disabled',
6359
+ FADE: 'fade',
6360
+ SHOW: 'show'
6361
+ };
6362
+ var Selector$9 = {
6363
+ DROPDOWN: '.dropdown',
6364
+ NAV_LIST_GROUP: '.nav, .list-group',
6365
+ ACTIVE: '.active',
6366
+ ACTIVE_UL: '> li > .active',
6367
+ DATA_TOGGLE: '[data-toggle="tab"], [data-toggle="pill"], [data-toggle="list"]',
6368
+ DROPDOWN_TOGGLE: '.dropdown-toggle',
6369
+ DROPDOWN_ACTIVE_CHILD: '> .dropdown-menu .active'
6370
  /**
6371
  * ------------------------------------------------------------------------
6372
+ * Class Definition
6373
  * ------------------------------------------------------------------------
6374
  */
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
6375
 
6376
+ };
 
6377
 
6378
+ var Tab =
6379
+ /*#__PURE__*/
6380
+ function () {
6381
+ function Tab(element) {
6382
+ this._element = element;
6383
+ } // Getters
6384
 
 
6385
 
6386
+ var _proto = Tab.prototype;
 
 
6387
 
6388
+ // Public
6389
+ _proto.show = function show() {
6390
+ var _this = this;
 
 
 
 
 
 
 
6391
 
6392
+ if (this._element.parentNode && this._element.parentNode.nodeType === Node.ELEMENT_NODE && $(this._element).hasClass(ClassName$9.ACTIVE) || $(this._element).hasClass(ClassName$9.DISABLED)) {
6393
+ return;
6394
+ }
6395
 
6396
+ var target;
6397
+ var previous;
6398
+ var listElement = $(this._element).closest(Selector$9.NAV_LIST_GROUP)[0];
6399
+ var selector = Util.getSelectorFromElement(this._element);
6400
+
6401
+ if (listElement) {
6402
+ var itemSelector = listElement.nodeName === 'UL' || listElement.nodeName === 'OL' ? Selector$9.ACTIVE_UL : Selector$9.ACTIVE;
6403
+ previous = $.makeArray($(listElement).find(itemSelector));
6404
+ previous = previous[previous.length - 1];
6405
+ }
6406
 
6407
+ var hideEvent = $.Event(Event$9.HIDE, {
6408
+ relatedTarget: this._element
6409
+ });
6410
+ var showEvent = $.Event(Event$9.SHOW, {
6411
+ relatedTarget: previous
6412
+ });
6413
 
6414
+ if (previous) {
6415
+ $(previous).trigger(hideEvent);
6416
+ }
 
 
 
 
6417
 
6418
+ $(this._element).trigger(showEvent);
 
 
6419
 
6420
+ if (showEvent.isDefaultPrevented() || hideEvent.isDefaultPrevented()) {
6421
+ return;
6422
+ }
 
 
 
 
 
 
 
 
 
6423
 
6424
+ if (selector) {
6425
+ target = document.querySelector(selector);
6426
+ }
6427
 
6428
+ this._activate(this._element, listElement);
 
6429
 
6430
+ var complete = function complete() {
6431
+ var hiddenEvent = $.Event(Event$9.HIDDEN, {
6432
+ relatedTarget: _this._element
6433
+ });
6434
+ var shownEvent = $.Event(Event$9.SHOWN, {
6435
+ relatedTarget: previous
6436
+ });
6437
+ $(previous).trigger(hiddenEvent);
6438
+ $(_this._element).trigger(shownEvent);
6439
+ };
6440
 
6441
+ if (target) {
6442
+ this._activate(target, target.parentNode, complete);
6443
+ } else {
6444
+ complete();
6445
+ }
6446
+ };
6447
 
6448
+ _proto.dispose = function dispose() {
6449
+ $.removeData(this._element, DATA_KEY$9);
6450
+ this._element = null;
6451
+ }; // Private
6452
 
 
 
 
6453
 
6454
+ _proto._activate = function _activate(element, container, callback) {
6455
+ var _this2 = this;
 
6456
 
6457
+ var activeElements = container && (container.nodeName === 'UL' || container.nodeName === 'OL') ? $(container).find(Selector$9.ACTIVE_UL) : $(container).children(Selector$9.ACTIVE);
6458
+ var active = activeElements[0];
6459
+ var isTransitioning = callback && active && $(active).hasClass(ClassName$9.FADE);
6460
 
6461
+ var complete = function complete() {
6462
+ return _this2._transitionComplete(element, active, callback);
6463
  };
6464
 
6465
+ if (active && isTransitioning) {
6466
+ var transitionDuration = Util.getTransitionDurationFromElement(active);
6467
+ $(active).removeClass(ClassName$9.SHOW).one(Util.TRANSITION_END, complete).emulateTransitionEnd(transitionDuration);
6468
+ } else {
6469
+ complete();
6470
+ }
6471
+ };
6472
 
6473
+ _proto._transitionComplete = function _transitionComplete(element, active, callback) {
6474
+ if (active) {
6475
+ $(active).removeClass(ClassName$9.ACTIVE);
6476
+ var dropdownChild = $(active.parentNode).find(Selector$9.DROPDOWN_ACTIVE_CHILD)[0];
6477
 
6478
+ if (dropdownChild) {
6479
+ $(dropdownChild).removeClass(ClassName$9.ACTIVE);
6480
  }
6481
 
6482
+ if (active.getAttribute('role') === 'tab') {
6483
+ active.setAttribute('aria-selected', false);
 
 
 
 
 
 
6484
  }
6485
+ }
6486
 
6487
+ $(element).addClass(ClassName$9.ACTIVE);
 
 
 
6488
 
6489
+ if (element.getAttribute('role') === 'tab') {
6490
+ element.setAttribute('aria-selected', true);
6491
+ }
6492
 
6493
+ Util.reflow(element);
6494
+ $(element).addClass(ClassName$9.SHOW);
6495
 
6496
+ if (element.parentNode && $(element.parentNode).hasClass(ClassName$9.DROPDOWN_MENU)) {
6497
+ var dropdownElement = $(element).closest(Selector$9.DROPDOWN)[0];
6498
 
6499
+ if (dropdownElement) {
6500
+ var dropdownToggleList = [].slice.call(dropdownElement.querySelectorAll(Selector$9.DROPDOWN_TOGGLE));
6501
+ $(dropdownToggleList).addClass(ClassName$9.ACTIVE);
6502
  }
 
 
 
 
 
 
 
 
6503
 
6504
+ element.setAttribute('aria-expanded', true);
6505
+ }
6506
 
6507
+ if (callback) {
6508
+ callback();
6509
+ }
6510
+ }; // Static
6511
 
 
 
 
 
 
 
 
6512
 
6513
+ Tab._jQueryInterface = function _jQueryInterface(config) {
6514
+ return this.each(function () {
6515
+ var $this = $(this);
6516
+ var data = $this.data(DATA_KEY$9);
6517
 
6518
+ if (!data) {
6519
+ data = new Tab(this);
6520
+ $this.data(DATA_KEY$9, data);
6521
  }
6522
 
6523
+ if (typeof config === 'string') {
6524
+ if (typeof data[config] === 'undefined') {
6525
+ throw new TypeError("No method named \"" + config + "\"");
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
6526
  }
 
 
6527
 
6528
+ data[config]();
 
 
 
 
 
 
 
 
6529
  }
6530
+ });
6531
+ };
 
 
 
 
 
 
 
6532
 
6533
+ _createClass(Tab, null, [{
6534
+ key: "VERSION",
6535
+ get: function get() {
6536
+ return VERSION$9;
6537
+ }
6538
+ }]);
6539
 
6540
+ return Tab;
6541
+ }();
6542
+ /**
6543
+ * ------------------------------------------------------------------------
6544
+ * Data Api implementation
6545
+ * ------------------------------------------------------------------------
6546
+ */
6547
 
 
 
6548
 
6549
+ $(document).on(Event$9.CLICK_DATA_API, Selector$9.DATA_TOGGLE, function (event) {
6550
+ event.preventDefault();
 
 
 
 
 
 
6551
 
6552
+ Tab._jQueryInterface.call($(this), 'show');
6553
+ });
6554
+ /**
6555
+ * ------------------------------------------------------------------------
6556
+ * jQuery
6557
+ * ------------------------------------------------------------------------
6558
+ */
6559
 
6560
+ $.fn[NAME$9] = Tab._jQueryInterface;
6561
+ $.fn[NAME$9].Constructor = Tab;
 
 
6562
 
6563
+ $.fn[NAME$9].noConflict = function () {
6564
+ $.fn[NAME$9] = JQUERY_NO_CONFLICT$9;
6565
+ return Tab._jQueryInterface;
6566
+ };
6567
 
6568
  /**
6569
+ * ------------------------------------------------------------------------
6570
+ * Constants
6571
+ * ------------------------------------------------------------------------
 
6572
  */
6573
 
6574
+ var NAME$a = 'toast';
6575
+ var VERSION$a = '4.2.1';
6576
+ var DATA_KEY$a = 'bs.toast';
6577
+ var EVENT_KEY$a = "." + DATA_KEY$a;
6578
+ var JQUERY_NO_CONFLICT$a = $.fn[NAME$a];
6579
+ var Event$a = {
6580
+ CLICK_DISMISS: "click.dismiss" + EVENT_KEY$a,
6581
+ HIDE: "hide" + EVENT_KEY$a,
6582
+ HIDDEN: "hidden" + EVENT_KEY$a,
6583
+ SHOW: "show" + EVENT_KEY$a,
6584
+ SHOWN: "shown" + EVENT_KEY$a
6585
+ };
6586
+ var ClassName$a = {
6587
+ FADE: 'fade',
6588
+ HIDE: 'hide',
6589
+ SHOW: 'show',
6590
+ SHOWING: 'showing'
6591
+ };
6592
+ var DefaultType$7 = {
6593
+ animation: 'boolean',
6594
+ autohide: 'boolean',
6595
+ delay: 'number'
6596
+ };
6597
+ var Default$7 = {
6598
+ animation: true,
6599
+ autohide: true,
6600
+ delay: 500
6601
+ };
6602
+ var Selector$a = {
6603
+ DATA_DISMISS: '[data-dismiss="toast"]'
6604
  /**
6605
  * ------------------------------------------------------------------------
6606
+ * Class Definition
6607
  * ------------------------------------------------------------------------
6608
  */
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
6609
 
6610
+ };
6611
 
6612
+ var Toast =
6613
+ /*#__PURE__*/
6614
+ function () {
6615
+ function Toast(element, config) {
6616
+ this._element = element;
6617
+ this._config = this._getConfig(config);
6618
+ this._timeout = null;
6619
 
6620
+ this._setListeners();
6621
+ } // Getters
 
6622
 
 
 
 
 
 
 
 
 
 
 
6623
 
6624
+ var _proto = Toast.prototype;
 
 
 
 
 
6625
 
6626
+ // Public
6627
+ _proto.show = function show() {
6628
+ var _this = this;
6629
 
6630
+ $(this._element).trigger(Event$a.SHOW);
6631
 
6632
+ if (this._config.animation) {
6633
+ this._element.classList.add(ClassName$a.FADE);
6634
+ }
6635
 
6636
+ var complete = function complete() {
6637
+ _this._element.classList.remove(ClassName$a.SHOWING);
 
6638
 
6639
+ _this._element.classList.add(ClassName$a.SHOW);
6640
 
6641
+ $(_this._element).trigger(Event$a.SHOWN);
 
 
 
 
 
 
 
 
 
6642
 
6643
+ if (_this._config.autohide) {
6644
+ _this.hide();
 
 
6645
  }
6646
  };
6647
 
6648
+ this._element.classList.remove(ClassName$a.HIDE);
 
 
 
6649
 
6650
+ this._element.classList.add(ClassName$a.SHOWING);
6651
 
6652
+ if (this._config.animation) {
6653
+ var transitionDuration = Util.getTransitionDurationFromElement(this._element);
6654
+ $(this._element).one(Util.TRANSITION_END, complete).emulateTransitionEnd(transitionDuration);
6655
+ } else {
6656
+ complete();
6657
+ }
6658
+ };
6659
 
6660
+ _proto.hide = function hide(withoutTimeout) {
6661
+ var _this2 = this;
 
 
 
6662
 
6663
+ if (!this._element.classList.contains(ClassName$a.SHOW)) {
6664
+ return;
6665
+ }
6666
 
6667
+ $(this._element).trigger(Event$a.HIDE);
 
 
6668
 
6669
+ if (withoutTimeout) {
6670
+ this._close();
6671
+ } else {
6672
+ this._timeout = setTimeout(function () {
6673
+ _this2._close();
6674
+ }, this._config.delay);
6675
+ }
6676
+ };
6677
 
6678
+ _proto.dispose = function dispose() {
6679
+ clearTimeout(this._timeout);
6680
+ this._timeout = null;
 
6681
 
6682
+ if (this._element.classList.contains(ClassName$a.SHOW)) {
6683
+ this._element.classList.remove(ClassName$a.SHOW);
6684
+ }
6685
 
6686
+ $(this._element).off(Event$a.CLICK_DISMISS);
6687
+ $.removeData(this._element, DATA_KEY$a);
6688
+ this._element = null;
6689
+ this._config = null;
6690
+ }; // Private
6691
 
 
6692
 
6693
+ _proto._getConfig = function _getConfig(config) {
6694
+ config = _objectSpread({}, Default$7, $(this._element).data(), typeof config === 'object' && config ? config : {});
6695
+ Util.typeCheckConfig(NAME$a, config, this.constructor.DefaultType);
6696
+ return config;
6697
+ };
6698
 
6699
+ _proto._setListeners = function _setListeners() {
6700
+ var _this3 = this;
6701
 
6702
+ $(this._element).on(Event$a.CLICK_DISMISS, Selector$a.DATA_DISMISS, function () {
6703
+ return _this3.hide(true);
6704
+ });
6705
+ };
6706
 
6707
+ _proto._close = function _close() {
6708
+ var _this4 = this;
 
 
6709
 
6710
+ var complete = function complete() {
6711
+ _this4._element.classList.add(ClassName$a.HIDE);
6712
 
6713
+ $(_this4._element).trigger(Event$a.HIDDEN);
6714
+ };
 
 
6715
 
6716
+ this._element.classList.remove(ClassName$a.SHOW);
6717
 
6718
+ if (this._config.animation) {
6719
+ var transitionDuration = Util.getTransitionDurationFromElement(this._element);
6720
+ $(this._element).one(Util.TRANSITION_END, complete).emulateTransitionEnd(transitionDuration);
6721
+ } else {
6722
+ complete();
6723
+ }
6724
+ }; // Static
6725
 
 
 
 
 
6726
 
6727
+ Toast._jQueryInterface = function _jQueryInterface(config) {
6728
+ return this.each(function () {
6729
+ var $element = $(this);
6730
+ var data = $element.data(DATA_KEY$a);
6731
 
6732
+ var _config = typeof config === 'object' && config;
 
 
 
6733
 
6734
+ if (!data) {
6735
+ data = new Toast(this, _config);
6736
+ $element.data(DATA_KEY$a, data);
 
6737
  }
 
6738
 
6739
+ if (typeof config === 'string') {
6740
+ if (typeof data[config] === 'undefined') {
6741
+ throw new TypeError("No method named \"" + config + "\"");
6742
+ }
 
 
 
6743
 
6744
+ data[config](this);
6745
+ }
6746
+ });
6747
+ };
6748
 
6749
+ _createClass(Toast, null, [{
6750
+ key: "VERSION",
6751
+ get: function get() {
6752
+ return VERSION$a;
6753
+ }
6754
+ }, {
6755
+ key: "DefaultType",
6756
+ get: function get() {
6757
+ return DefaultType$7;
6758
+ }
6759
+ }]);
6760
 
6761
+ return Toast;
6762
+ }();
6763
+ /**
6764
+ * ------------------------------------------------------------------------
6765
+ * jQuery
6766
+ * ------------------------------------------------------------------------
6767
+ */
6768
 
 
 
6769
 
6770
+ $.fn[NAME$a] = Toast._jQueryInterface;
6771
+ $.fn[NAME$a].Constructor = Toast;
 
 
6772
 
6773
+ $.fn[NAME$a].noConflict = function () {
6774
+ $.fn[NAME$a] = JQUERY_NO_CONFLICT$a;
6775
+ return Toast._jQueryInterface;
6776
+ };
6777
 
6778
  /**
6779
  * --------------------------------------------------------------------------
6780
+ * Bootstrap (v4.2.1): index.js
6781
  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
6782
  * --------------------------------------------------------------------------
6783
  */
6784
 
6785
+ (function () {
6786
+ if (typeof $ === 'undefined') {
6787
  throw new TypeError('Bootstrap\'s JavaScript requires jQuery. jQuery must be included before Bootstrap\'s JavaScript.');
6788
  }
6789
 
6790
+ var version = $.fn.jquery.split(' ')[0].split('.');
6791
  var minMajor = 1;
6792
  var ltMajor = 2;
6793
  var minMinor = 9;
6797
  if (version[0] < ltMajor && version[1] < minMinor || version[0] === minMajor && version[1] === minMinor && version[2] < minPatch || version[0] >= maxMajor) {
6798
  throw new Error('Bootstrap\'s JavaScript requires at least jQuery v1.9.1 but less than v4.0.0');
6799
  }
6800
+ })();
6801
 
6802
  exports.Util = Util;
6803
  exports.Alert = Alert;
6809
  exports.Popover = Popover;
6810
  exports.Scrollspy = ScrollSpy;
6811
  exports.Tab = Tab;
6812
+ exports.Toast = Toast;
6813
  exports.Tooltip = Tooltip;
6814
 
6815
  Object.defineProperty(exports, '__esModule', { value: true });
6816
 
6817
+ })));
6818
+ //# sourceMappingURL=bootstrap.bundle.js.map
resources/js/bootstrap4.bundle.min.js CHANGED
@@ -1,6 +1,7 @@
1
  /*!
2
- * Bootstrap v4.1.3 (https://getbootstrap.com/)
3
  * Copyright 2011-2018 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
4
  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
5
  */
6
- !function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("jquery")):"function"==typeof define&&define.amd?define(["exports","jquery"],t):t(e.bootstrap={},e.jQuery)}(this,function(e,t){"use strict";function i(e,t){for(var n=0;n<t.length;n++){var i=t[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(e,i.key,i)}}function s(e,t,n){return t&&i(e.prototype,t),n&&i(e,n),e}function l(r){for(var e=1;e<arguments.length;e++){var o=null!=arguments[e]?arguments[e]:{},t=Object.keys(o);"function"==typeof Object.getOwnPropertySymbols&&(t=t.concat(Object.getOwnPropertySymbols(o).filter(function(e){return Object.getOwnPropertyDescriptor(o,e).enumerable}))),t.forEach(function(e){var t,n,i;t=r,i=o[n=e],n in t?Object.defineProperty(t,n,{value:i,enumerable:!0,configurable:!0,writable:!0}):t[n]=i})}return r}for(var r,n,o,a,c,u,f,h,d,p,m,g,_,v,y,E,b,w,C,T,S,D,A,I,O,N,k,x,P,L,j,H,M,F,W,R,U,B,q,K,Q,Y,V,z,G,J,Z,X,$,ee,te,ne,ie,re,oe,se,ae,le,ce,ue,fe,he,de,pe,me,ge,_e,ve,ye,Ee,be,we=function(i){var t="transitionend";function e(e){var t=this,n=!1;return i(this).one(l.TRANSITION_END,function(){n=!0}),setTimeout(function(){n||l.triggerTransitionEnd(t)},e),this}var l={TRANSITION_END:"bsTransitionEnd",getUID:function(e){for(;e+=~~(1e6*Math.random()),document.getElementById(e););return e},getSelectorFromElement:function(e){var t=e.getAttribute("data-target");t&&"#"!==t||(t=e.getAttribute("href")||"");try{return document.querySelector(t)?t:null}catch(e){return null}},getTransitionDurationFromElement:function(e){if(!e)return 0;var t=i(e).css("transition-duration");return parseFloat(t)?(t=t.split(",")[0],1e3*parseFloat(t)):0},reflow:function(e){return e.offsetHeight},triggerTransitionEnd:function(e){i(e).trigger(t)},supportsTransitionEnd:function(){return Boolean(t)},isElement:function(e){return(e[0]||e).nodeType},typeCheckConfig:function(e,t,n){for(var i in n)if(Object.prototype.hasOwnProperty.call(n,i)){var r=n[i],o=t[i],s=o&&l.isElement(o)?"element":(a=o,{}.toString.call(a).match(/\s([a-z]+)/i)[1].toLowerCase());if(!new RegExp(r).test(s))throw new Error(e.toUpperCase()+': Option "'+i+'" provided type "'+s+'" but expected type "'+r+'".')}var a}};return i.fn.emulateTransitionEnd=e,i.event.special[l.TRANSITION_END]={bindType:t,delegateType:t,handle:function(e){if(i(e.target).is(this))return e.handleObj.handler.apply(this,arguments)}},l}(t=t&&t.hasOwnProperty("default")?t.default:t),Ce=(n="alert",a="."+(o="bs.alert"),c=(r=t).fn[n],u={CLOSE:"close"+a,CLOSED:"closed"+a,CLICK_DATA_API:"click"+a+".data-api"},f="alert",h="fade",d="show",p=function(){function i(e){this._element=e}var e=i.prototype;return e.close=function(e){var t=this._element;e&&(t=this._getRootElement(e)),this._triggerCloseEvent(t).isDefaultPrevented()||this._removeElement(t)},e.dispose=function(){r.removeData(this._element,o),this._element=null},e._getRootElement=function(e){var t=we.getSelectorFromElement(e),n=!1;return t&&(n=document.querySelector(t)),n||(n=r(e).closest("."+f)[0]),n},e._triggerCloseEvent=function(e){var t=r.Event(u.CLOSE);return r(e).trigger(t),t},e._removeElement=function(t){var n=this;if(r(t).removeClass(d),r(t).hasClass(h)){var e=we.getTransitionDurationFromElement(t);r(t).one(we.TRANSITION_END,function(e){return n._destroyElement(t,e)}).emulateTransitionEnd(e)}else this._destroyElement(t)},e._destroyElement=function(e){r(e).detach().trigger(u.CLOSED).remove()},i._jQueryInterface=function(n){return this.each(function(){var e=r(this),t=e.data(o);t||(t=new i(this),e.data(o,t)),"close"===n&&t[n](this)})},i._handleDismiss=function(t){return function(e){e&&e.preventDefault(),t.close(this)}},s(i,null,[{key:"VERSION",get:function(){return"4.1.3"}}]),i}(),r(document).on(u.CLICK_DATA_API,'[data-dismiss="alert"]',p._handleDismiss(new p)),r.fn[n]=p._jQueryInterface,r.fn[n].Constructor=p,r.fn[n].noConflict=function(){return r.fn[n]=c,p._jQueryInterface},p),Te=(g="button",v="."+(_="bs.button"),y=".data-api",E=(m=t).fn[g],b="active",w="btn",T='[data-toggle^="button"]',S='[data-toggle="buttons"]',D="input",A=".active",I=".btn",O={CLICK_DATA_API:"click"+v+y,FOCUS_BLUR_DATA_API:(C="focus")+v+y+" blur"+v+y},N=function(){function n(e){this._element=e}var e=n.prototype;return e.toggle=function(){var e=!0,t=!0,n=m(this._element).closest(S)[0];if(n){var i=this._element.querySelector(D);if(i){if("radio"===i.type)if(i.checked&&this._element.classList.contains(b))e=!1;else{var r=n.querySelector(A);r&&m(r).removeClass(b)}if(e){if(i.hasAttribute("disabled")||n.hasAttribute("disabled")||i.classList.contains("disabled")||n.classList.contains("disabled"))return;i.checked=!this._element.classList.contains(b),m(i).trigger("change")}i.focus(),t=!1}}t&&this._element.setAttribute("aria-pressed",!this._element.classList.contains(b)),e&&m(this._element).toggleClass(b)},e.dispose=function(){m.removeData(this._element,_),this._element=null},n._jQueryInterface=function(t){return this.each(function(){var e=m(this).data(_);e||(e=new n(this),m(this).data(_,e)),"toggle"===t&&e[t]()})},s(n,null,[{key:"VERSION",get:function(){return"4.1.3"}}]),n}(),m(document).on(O.CLICK_DATA_API,T,function(e){e.preventDefault();var t=e.target;m(t).hasClass(w)||(t=m(t).closest(I)),N._jQueryInterface.call(m(t),"toggle")}).on(O.FOCUS_BLUR_DATA_API,T,function(e){var t=m(e.target).closest(I)[0];m(t).toggleClass(C,/^focus(in)?$/.test(e.type))}),m.fn[g]=N._jQueryInterface,m.fn[g].Constructor=N,m.fn[g].noConflict=function(){return m.fn[g]=E,N._jQueryInterface},N),Se=(x="carousel",L="."+(P="bs.carousel"),j=".data-api",H=(k=t).fn[x],M={interval:5e3,keyboard:!0,slide:!1,pause:"hover",wrap:!0},F={interval:"(number|boolean)",keyboard:"boolean",slide:"(boolean|string)",pause:"(string|boolean)",wrap:"boolean"},W="next",R="prev",U="left",B="right",q={SLIDE:"slide"+L,SLID:"slid"+L,KEYDOWN:"keydown"+L,MOUSEENTER:"mouseenter"+L,MOUSELEAVE:"mouseleave"+L,TOUCHEND:"touchend"+L,LOAD_DATA_API:"load"+L+j,CLICK_DATA_API:"click"+L+j},K="carousel",Q="active",Y="slide",V="carousel-item-right",z="carousel-item-left",G="carousel-item-next",J="carousel-item-prev",Z=".active",X=".active.carousel-item",$=".carousel-item",ee=".carousel-item-next, .carousel-item-prev",te=".carousel-indicators",ne="[data-slide], [data-slide-to]",ie='[data-ride="carousel"]',re=function(){function o(e,t){this._items=null,this._interval=null,this._activeElement=null,this._isPaused=!1,this._isSliding=!1,this.touchTimeout=null,this._config=this._getConfig(t),this._element=k(e)[0],this._indicatorsElement=this._element.querySelector(te),this._addEventListeners()}var e=o.prototype;return e.next=function(){this._isSliding||this._slide(W)},e.nextWhenVisible=function(){!document.hidden&&k(this._element).is(":visible")&&"hidden"!==k(this._element).css("visibility")&&this.next()},e.prev=function(){this._isSliding||this._slide(R)},e.pause=function(e){e||(this._isPaused=!0),this._element.querySelector(ee)&&(we.triggerTransitionEnd(this._element),this.cycle(!0)),clearInterval(this._interval),this._interval=null},e.cycle=function(e){e||(this._isPaused=!1),this._interval&&(clearInterval(this._interval),this._interval=null),this._config.interval&&!this._isPaused&&(this._interval=setInterval((document.visibilityState?this.nextWhenVisible:this.next).bind(this),this._config.interval))},e.to=function(e){var t=this;this._activeElement=this._element.querySelector(X);var n=this._getItemIndex(this._activeElement);if(!(e>this._items.length-1||e<0))if(this._isSliding)k(this._element).one(q.SLID,function(){return t.to(e)});else{if(n===e)return this.pause(),void this.cycle();var i=n<e?W:R;this._slide(i,this._items[e])}},e.dispose=function(){k(this._element).off(L),k.removeData(this._element,P),this._items=null,this._config=null,this._element=null,this._interval=null,this._isPaused=null,this._isSliding=null,this._activeElement=null,this._indicatorsElement=null},e._getConfig=function(e){return e=l({},M,e),we.typeCheckConfig(x,e,F),e},e._addEventListeners=function(){var t=this;this._config.keyboard&&k(this._element).on(q.KEYDOWN,function(e){return t._keydown(e)}),"hover"===this._config.pause&&(k(this._element).on(q.MOUSEENTER,function(e){return t.pause(e)}).on(q.MOUSELEAVE,function(e){return t.cycle(e)}),"ontouchstart"in document.documentElement&&k(this._element).on(q.TOUCHEND,function(){t.pause(),t.touchTimeout&&clearTimeout(t.touchTimeout),t.touchTimeout=setTimeout(function(e){return t.cycle(e)},500+t._config.interval)}))},e._keydown=function(e){if(!/input|textarea/i.test(e.target.tagName))switch(e.which){case 37:e.preventDefault(),this.prev();break;case 39:e.preventDefault(),this.next()}},e._getItemIndex=function(e){return this._items=e&&e.parentNode?[].slice.call(e.parentNode.querySelectorAll($)):[],this._items.indexOf(e)},e._getItemByDirection=function(e,t){var n=e===W,i=e===R,r=this._getItemIndex(t),o=this._items.length-1;if((i&&0===r||n&&r===o)&&!this._config.wrap)return t;var s=(r+(e===R?-1:1))%this._items.length;return-1===s?this._items[this._items.length-1]:this._items[s]},e._triggerSlideEvent=function(e,t){var n=this._getItemIndex(e),i=this._getItemIndex(this._element.querySelector(X)),r=k.Event(q.SLIDE,{relatedTarget:e,direction:t,from:i,to:n});return k(this._element).trigger(r),r},e._setActiveIndicatorElement=function(e){if(this._indicatorsElement){var t=[].slice.call(this._indicatorsElement.querySelectorAll(Z));k(t).removeClass(Q);var n=this._indicatorsElement.children[this._getItemIndex(e)];n&&k(n).addClass(Q)}},e._slide=function(e,t){var n,i,r,o=this,s=this._element.querySelector(X),a=this._getItemIndex(s),l=t||s&&this._getItemByDirection(e,s),c=this._getItemIndex(l),u=Boolean(this._interval);if(e===W?(n=z,i=G,r=U):(n=V,i=J,r=B),l&&k(l).hasClass(Q))this._isSliding=!1;else if(!this._triggerSlideEvent(l,r).isDefaultPrevented()&&s&&l){this._isSliding=!0,u&&this.pause(),this._setActiveIndicatorElement(l);var f=k.Event(q.SLID,{relatedTarget:l,direction:r,from:a,to:c});if(k(this._element).hasClass(Y)){k(l).addClass(i),we.reflow(l),k(s).addClass(n),k(l).addClass(n);var h=we.getTransitionDurationFromElement(s);k(s).one(we.TRANSITION_END,function(){k(l).removeClass(n+" "+i).addClass(Q),k(s).removeClass(Q+" "+i+" "+n),o._isSliding=!1,setTimeout(function(){return k(o._element).trigger(f)},0)}).emulateTransitionEnd(h)}else k(s).removeClass(Q),k(l).addClass(Q),this._isSliding=!1,k(this._element).trigger(f);u&&this.cycle()}},o._jQueryInterface=function(i){return this.each(function(){var e=k(this).data(P),t=l({},M,k(this).data());"object"==typeof i&&(t=l({},t,i));var n="string"==typeof i?i:t.slide;if(e||(e=new o(this,t),k(this).data(P,e)),"number"==typeof i)e.to(i);else if("string"==typeof n){if("undefined"==typeof e[n])throw new TypeError('No method named "'+n+'"');e[n]()}else t.interval&&(e.pause(),e.cycle())})},o._dataApiClickHandler=function(e){var t=we.getSelectorFromElement(this);if(t){var n=k(t)[0];if(n&&k(n).hasClass(K)){var i=l({},k(n).data(),k(this).data()),r=this.getAttribute("data-slide-to");r&&(i.interval=!1),o._jQueryInterface.call(k(n),i),r&&k(n).data(P).to(r),e.preventDefault()}}},s(o,null,[{key:"VERSION",get:function(){return"4.1.3"}},{key:"Default",get:function(){return M}}]),o}(),k(document).on(q.CLICK_DATA_API,ne,re._dataApiClickHandler),k(window).on(q.LOAD_DATA_API,function(){for(var e=[].slice.call(document.querySelectorAll(ie)),t=0,n=e.length;t<n;t++){var i=k(e[t]);re._jQueryInterface.call(i,i.data())}}),k.fn[x]=re._jQueryInterface,k.fn[x].Constructor=re,k.fn[x].noConflict=function(){return k.fn[x]=H,re._jQueryInterface},re),De=(se="collapse",le="."+(ae="bs.collapse"),ce=(oe=t).fn[se],ue={toggle:!0,parent:""},fe={toggle:"boolean",parent:"(string|element)"},he={SHOW:"show"+le,SHOWN:"shown"+le,HIDE:"hide"+le,HIDDEN:"hidden"+le,CLICK_DATA_API:"click"+le+".data-api"},de="show",pe="collapse",me="collapsing",ge="collapsed",_e="width",ve="height",ye=".show, .collapsing",Ee='[data-toggle="collapse"]',be=function(){function a(t,e){this._isTransitioning=!1,this._element=t,this._config=this._getConfig(e),this._triggerArray=oe.makeArray(document.querySelectorAll('[data-toggle="collapse"][href="#'+t.id+'"],[data-toggle="collapse"][data-target="#'+t.id+'"]'));for(var n=[].slice.call(document.querySelectorAll(Ee)),i=0,r=n.length;i<r;i++){var o=n[i],s=we.getSelectorFromElement(o),a=[].slice.call(document.querySelectorAll(s)).filter(function(e){return e===t});null!==s&&0<a.length&&(this._selector=s,this._triggerArray.push(o))}this._parent=this._config.parent?this._getParent():null,this._config.parent||this._addAriaAndCollapsedClass(this._element,this._triggerArray),this._config.toggle&&this.toggle()}var e=a.prototype;return e.toggle=function(){oe(this._element).hasClass(de)?this.hide():this.show()},e.show=function(){var e,t,n=this;if(!this._isTransitioning&&!oe(this._element).hasClass(de)&&(this._parent&&0===(e=[].slice.call(this._parent.querySelectorAll(ye)).filter(function(e){return e.getAttribute("data-parent")===n._config.parent})).length&&(e=null),!(e&&(t=oe(e).not(this._selector).data(ae))&&t._isTransitioning))){var i=oe.Event(he.SHOW);if(oe(this._element).trigger(i),!i.isDefaultPrevented()){e&&(a._jQueryInterface.call(oe(e).not(this._selector),"hide"),t||oe(e).data(ae,null));var r=this._getDimension();oe(this._element).removeClass(pe).addClass(me),this._element.style[r]=0,this._triggerArray.length&&oe(this._triggerArray).removeClass(ge).attr("aria-expanded",!0),this.setTransitioning(!0);var o="scroll"+(r[0].toUpperCase()+r.slice(1)),s=we.getTransitionDurationFromElement(this._element);oe(this._element).one(we.TRANSITION_END,function(){oe(n._element).removeClass(me).addClass(pe).addClass(de),n._element.style[r]="",n.setTransitioning(!1),oe(n._element).trigger(he.SHOWN)}).emulateTransitionEnd(s),this._element.style[r]=this._element[o]+"px"}}},e.hide=function(){var e=this;if(!this._isTransitioning&&oe(this._element).hasClass(de)){var t=oe.Event(he.HIDE);if(oe(this._element).trigger(t),!t.isDefaultPrevented()){var n=this._getDimension();this._element.style[n]=this._element.getBoundingClientRect()[n]+"px",we.reflow(this._element),oe(this._element).addClass(me).removeClass(pe).removeClass(de);var i=this._triggerArray.length;if(0<i)for(var r=0;r<i;r++){var o=this._triggerArray[r],s=we.getSelectorFromElement(o);if(null!==s)oe([].slice.call(document.querySelectorAll(s))).hasClass(de)||oe(o).addClass(ge).attr("aria-expanded",!1)}this.setTransitioning(!0);this._element.style[n]="";var a=we.getTransitionDurationFromElement(this._element);oe(this._element).one(we.TRANSITION_END,function(){e.setTransitioning(!1),oe(e._element).removeClass(me).addClass(pe).trigger(he.HIDDEN)}).emulateTransitionEnd(a)}}},e.setTransitioning=function(e){this._isTransitioning=e},e.dispose=function(){oe.removeData(this._element,ae),this._config=null,this._parent=null,this._element=null,this._triggerArray=null,this._isTransitioning=null},e._getConfig=function(e){return(e=l({},ue,e)).toggle=Boolean(e.toggle),we.typeCheckConfig(se,e,fe),e},e._getDimension=function(){return oe(this._element).hasClass(_e)?_e:ve},e._getParent=function(){var n=this,e=null;we.isElement(this._config.parent)?(e=this._config.parent,"undefined"!=typeof this._config.parent.jquery&&(e=this._config.parent[0])):e=document.querySelector(this._config.parent);var t='[data-toggle="collapse"][data-parent="'+this._config.parent+'"]',i=[].slice.call(e.querySelectorAll(t));return oe(i).each(function(e,t){n._addAriaAndCollapsedClass(a._getTargetFromElement(t),[t])}),e},e._addAriaAndCollapsedClass=function(e,t){if(e){var n=oe(e).hasClass(de);t.length&&oe(t).toggleClass(ge,!n).attr("aria-expanded",n)}},a._getTargetFromElement=function(e){var t=we.getSelectorFromElement(e);return t?document.querySelector(t):null},a._jQueryInterface=function(i){return this.each(function(){var e=oe(this),t=e.data(ae),n=l({},ue,e.data(),"object"==typeof i&&i?i:{});if(!t&&n.toggle&&/show|hide/.test(i)&&(n.toggle=!1),t||(t=new a(this,n),e.data(ae,t)),"string"==typeof i){if("undefined"==typeof t[i])throw new TypeError('No method named "'+i+'"');t[i]()}})},s(a,null,[{key:"VERSION",get:function(){return"4.1.3"}},{key:"Default",get:function(){return ue}}]),a}(),oe(document).on(he.CLICK_DATA_API,Ee,function(e){"A"===e.currentTarget.tagName&&e.preventDefault();var n=oe(this),t=we.getSelectorFromElement(this),i=[].slice.call(document.querySelectorAll(t));oe(i).each(function(){var e=oe(this),t=e.data(ae)?"toggle":n.data();be._jQueryInterface.call(e,t)})}),oe.fn[se]=be._jQueryInterface,oe.fn[se].Constructor=be,oe.fn[se].noConflict=function(){return oe.fn[se]=ce,be._jQueryInterface},be),Ae="undefined"!=typeof window&&"undefined"!=typeof document,Ie=["Edge","Trident","Firefox"],Oe=0,Ne=0;Ne<Ie.length;Ne+=1)if(Ae&&0<=navigator.userAgent.indexOf(Ie[Ne])){Oe=1;break}var ke=Ae&&window.Promise?function(e){var t=!1;return function(){t||(t=!0,window.Promise.resolve().then(function(){t=!1,e()}))}}:function(e){var t=!1;return function(){t||(t=!0,setTimeout(function(){t=!1,e()},Oe))}};function xe(e){return e&&"[object Function]"==={}.toString.call(e)}function Pe(e,t){if(1!==e.nodeType)return[];var n=getComputedStyle(e,null);return t?n[t]:n}function Le(e){return"HTML"===e.nodeName?e:e.parentNode||e.host}function je(e){if(!e)return document.body;switch(e.nodeName){case"HTML":case"BODY":return e.ownerDocument.body;case"#document":return e.body}var t=Pe(e),n=t.overflow,i=t.overflowX,r=t.overflowY;return/(auto|scroll|overlay)/.test(n+r+i)?e:je(Le(e))}var He=Ae&&!(!window.MSInputMethodContext||!document.documentMode),Me=Ae&&/MSIE 10/.test(navigator.userAgent);function Fe(e){return 11===e?He:10===e?Me:He||Me}function We(e){if(!e)return document.documentElement;for(var t=Fe(10)?document.body:null,n=e.offsetParent;n===t&&e.nextElementSibling;)n=(e=e.nextElementSibling).offsetParent;var i=n&&n.nodeName;return i&&"BODY"!==i&&"HTML"!==i?-1!==["TD","TABLE"].indexOf(n.nodeName)&&"static"===Pe(n,"position")?We(n):n:e?e.ownerDocument.documentElement:document.documentElement}function Re(e){return null!==e.parentNode?Re(e.parentNode):e}function Ue(e,t){if(!(e&&e.nodeType&&t&&t.nodeType))return document.documentElement;var n=e.compareDocumentPosition(t)&Node.DOCUMENT_POSITION_FOLLOWING,i=n?e:t,r=n?t:e,o=document.createRange();o.setStart(i,0),o.setEnd(r,0);var s,a,l=o.commonAncestorContainer;if(e!==l&&t!==l||i.contains(r))return"BODY"===(a=(s=l).nodeName)||"HTML"!==a&&We(s.firstElementChild)!==s?We(l):l;var c=Re(e);return c.host?Ue(c.host,t):Ue(e,Re(t).host)}function Be(e){var t="top"===(1<arguments.length&&void 0!==arguments[1]?arguments[1]:"top")?"scrollTop":"scrollLeft",n=e.nodeName;if("BODY"===n||"HTML"===n){var i=e.ownerDocument.documentElement;return(e.ownerDocument.scrollingElement||i)[t]}return e[t]}function qe(e,t){var n="x"===t?"Left":"Top",i="Left"===n?"Right":"Bottom";return parseFloat(e["border"+n+"Width"],10)+parseFloat(e["border"+i+"Width"],10)}function Ke(e,t,n,i){return Math.max(t["offset"+e],t["scroll"+e],n["client"+e],n["offset"+e],n["scroll"+e],Fe(10)?n["offset"+e]+i["margin"+("Height"===e?"Top":"Left")]+i["margin"+("Height"===e?"Bottom":"Right")]:0)}function Qe(){var e=document.body,t=document.documentElement,n=Fe(10)&&getComputedStyle(t);return{height:Ke("Height",e,t,n),width:Ke("Width",e,t,n)}}var Ye=function(){function i(e,t){for(var n=0;n<t.length;n++){var i=t[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(e,i.key,i)}}return function(e,t,n){return t&&i(e.prototype,t),n&&i(e,n),e}}(),Ve=function(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e},ze=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var i in n)Object.prototype.hasOwnProperty.call(n,i)&&(e[i]=n[i])}return e};function Ge(e){return ze({},e,{right:e.left+e.width,bottom:e.top+e.height})}function Je(e){var t={};try{if(Fe(10)){t=e.getBoundingClientRect();var n=Be(e,"top"),i=Be(e,"left");t.top+=n,t.left+=i,t.bottom+=n,t.right+=i}else t=e.getBoundingClientRect()}catch(e){}var r={left:t.left,top:t.top,width:t.right-t.left,height:t.bottom-t.top},o="HTML"===e.nodeName?Qe():{},s=o.width||e.clientWidth||r.right-r.left,a=o.height||e.clientHeight||r.bottom-r.top,l=e.offsetWidth-s,c=e.offsetHeight-a;if(l||c){var u=Pe(e);l-=qe(u,"x"),c-=qe(u,"y"),r.width-=l,r.height-=c}return Ge(r)}function Ze(e,t){var n=2<arguments.length&&void 0!==arguments[2]&&arguments[2],i=Fe(10),r="HTML"===t.nodeName,o=Je(e),s=Je(t),a=je(e),l=Pe(t),c=parseFloat(l.borderTopWidth,10),u=parseFloat(l.borderLeftWidth,10);n&&"HTML"===t.nodeName&&(s.top=Math.max(s.top,0),s.left=Math.max(s.left,0));var f=Ge({top:o.top-s.top-c,left:o.left-s.left-u,width:o.width,height:o.height});if(f.marginTop=0,f.marginLeft=0,!i&&r){var h=parseFloat(l.marginTop,10),d=parseFloat(l.marginLeft,10);f.top-=c-h,f.bottom-=c-h,f.left-=u-d,f.right-=u-d,f.marginTop=h,f.marginLeft=d}return(i&&!n?t.contains(a):t===a&&"BODY"!==a.nodeName)&&(f=function(e,t){var n=2<arguments.length&&void 0!==arguments[2]&&arguments[2],i=Be(t,"top"),r=Be(t,"left"),o=n?-1:1;return e.top+=i*o,e.bottom+=i*o,e.left+=r*o,e.right+=r*o,e}(f,t)),f}function Xe(e){if(!e||!e.parentElement||Fe())return document.documentElement;for(var t=e.parentElement;t&&"none"===Pe(t,"transform");)t=t.parentElement;return t||document.documentElement}function $e(e,t,n,i){var r=4<arguments.length&&void 0!==arguments[4]&&arguments[4],o={top:0,left:0},s=r?Xe(e):Ue(e,t);if("viewport"===i)o=function(e){var t=1<arguments.length&&void 0!==arguments[1]&&arguments[1],n=e.ownerDocument.documentElement,i=Ze(e,n),r=Math.max(n.clientWidth,window.innerWidth||0),o=Math.max(n.clientHeight,window.innerHeight||0),s=t?0:Be(n),a=t?0:Be(n,"left");return Ge({top:s-i.top+i.marginTop,left:a-i.left+i.marginLeft,width:r,height:o})}(s,r);else{var a=void 0;"scrollParent"===i?"BODY"===(a=je(Le(t))).nodeName&&(a=e.ownerDocument.documentElement):a="window"===i?e.ownerDocument.documentElement:i;var l=Ze(a,s,r);if("HTML"!==a.nodeName||function e(t){var n=t.nodeName;return"BODY"!==n&&"HTML"!==n&&("fixed"===Pe(t,"position")||e(Le(t)))}(s))o=l;else{var c=Qe(),u=c.height,f=c.width;o.top+=l.top-l.marginTop,o.bottom=u+l.top,o.left+=l.left-l.marginLeft,o.right=f+l.left}}return o.left+=n,o.top+=n,o.right-=n,o.bottom-=n,o}function et(e,t,i,n,r){var o=5<arguments.length&&void 0!==arguments[5]?arguments[5]:0;if(-1===e.indexOf("auto"))return e;var s=$e(i,n,o,r),a={top:{width:s.width,height:t.top-s.top},right:{width:s.right-t.right,height:s.height},bottom:{width:s.width,height:s.bottom-t.bottom},left:{width:t.left-s.left,height:s.height}},l=Object.keys(a).map(function(e){return ze({key:e},a[e],{area:(t=a[e],t.width*t.height)});var t}).sort(function(e,t){return t.area-e.area}),c=l.filter(function(e){var t=e.width,n=e.height;return t>=i.clientWidth&&n>=i.clientHeight}),u=0<c.length?c[0].key:l[0].key,f=e.split("-")[1];return u+(f?"-"+f:"")}function tt(e,t,n){var i=3<arguments.length&&void 0!==arguments[3]?arguments[3]:null;return Ze(n,i?Xe(t):Ue(t,n),i)}function nt(e){var t=getComputedStyle(e),n=parseFloat(t.marginTop)+parseFloat(t.marginBottom),i=parseFloat(t.marginLeft)+parseFloat(t.marginRight);return{width:e.offsetWidth+i,height:e.offsetHeight+n}}function it(e){var t={left:"right",right:"left",bottom:"top",top:"bottom"};return e.replace(/left|right|bottom|top/g,function(e){return t[e]})}function rt(e,t,n){n=n.split("-")[0];var i=nt(e),r={width:i.width,height:i.height},o=-1!==["right","left"].indexOf(n),s=o?"top":"left",a=o?"left":"top",l=o?"height":"width",c=o?"width":"height";return r[s]=t[s]+t[l]/2-i[l]/2,r[a]=n===a?t[a]-i[c]:t[it(a)],r}function ot(e,t){return Array.prototype.find?e.find(t):e.filter(t)[0]}function st(e,n,t){return(void 0===t?e:e.slice(0,function(e,t,n){if(Array.prototype.findIndex)return e.findIndex(function(e){return e[t]===n});var i=ot(e,function(e){return e[t]===n});return e.indexOf(i)}(e,"name",t))).forEach(function(e){e.function&&console.warn("`modifier.function` is deprecated, use `modifier.fn`!");var t=e.function||e.fn;e.enabled&&xe(t)&&(n.offsets.popper=Ge(n.offsets.popper),n.offsets.reference=Ge(n.offsets.reference),n=t(n,e))}),n}function at(e,n){return e.some(function(e){var t=e.name;return e.enabled&&t===n})}function lt(e){for(var t=[!1,"ms","Webkit","Moz","O"],n=e.charAt(0).toUpperCase()+e.slice(1),i=0;i<t.length;i++){var r=t[i],o=r?""+r+n:e;if("undefined"!=typeof document.body.style[o])return o}return null}function ct(e){var t=e.ownerDocument;return t?t.defaultView:window}function ut(e,t,n,i){n.updateBound=i,ct(e).addEventListener("resize",n.updateBound,{passive:!0});var r=je(e);return function e(t,n,i,r){var o="BODY"===t.nodeName,s=o?t.ownerDocument.defaultView:t;s.addEventListener(n,i,{passive:!0}),o||e(je(s.parentNode),n,i,r),r.push(s)}(r,"scroll",n.updateBound,n.scrollParents),n.scrollElement=r,n.eventsEnabled=!0,n}function ft(){var e,t;this.state.eventsEnabled&&(cancelAnimationFrame(this.scheduleUpdate),this.state=(e=this.reference,t=this.state,ct(e).removeEventListener("resize",t.updateBound),t.scrollParents.forEach(function(e){e.removeEventListener("scroll",t.updateBound)}),t.updateBound=null,t.scrollParents=[],t.scrollElement=null,t.eventsEnabled=!1,t))}function ht(e){return""!==e&&!isNaN(parseFloat(e))&&isFinite(e)}function dt(n,i){Object.keys(i).forEach(function(e){var t="";-1!==["width","height","top","right","bottom","left"].indexOf(e)&&ht(i[e])&&(t="px"),n.style[e]=i[e]+t})}function pt(e,t,n){var i=ot(e,function(e){return e.name===t}),r=!!i&&e.some(function(e){return e.name===n&&e.enabled&&e.order<i.order});if(!r){var o="`"+t+"`",s="`"+n+"`";console.warn(s+" modifier is required by "+o+" modifier in order to work, be sure to include it before "+o+"!")}return r}var mt=["auto-start","auto","auto-end","top-start","top","top-end","right-start","right","right-end","bottom-end","bottom","bottom-start","left-end","left","left-start"],gt=mt.slice(3);function _t(e){var t=1<arguments.length&&void 0!==arguments[1]&&arguments[1],n=gt.indexOf(e),i=gt.slice(n+1).concat(gt.slice(0,n));return t?i.reverse():i}var vt="flip",yt="clockwise",Et="counterclockwise";function bt(e,r,o,t){var s=[0,0],a=-1!==["right","left"].indexOf(t),n=e.split(/(\+|\-)/).map(function(e){return e.trim()}),i=n.indexOf(ot(n,function(e){return-1!==e.search(/,|\s/)}));n[i]&&-1===n[i].indexOf(",")&&console.warn("Offsets separated by white space(s) are deprecated, use a comma (,) instead.");var l=/\s*,\s*|\s+/,c=-1!==i?[n.slice(0,i).concat([n[i].split(l)[0]]),[n[i].split(l)[1]].concat(n.slice(i+1))]:[n];return(c=c.map(function(e,t){var n=(1===t?!a:a)?"height":"width",i=!1;return e.reduce(function(e,t){return""===e[e.length-1]&&-1!==["+","-"].indexOf(t)?(e[e.length-1]=t,i=!0,e):i?(e[e.length-1]+=t,i=!1,e):e.concat(t)},[]).map(function(e){return function(e,t,n,i){var r=e.match(/((?:\-|\+)?\d*\.?\d*)(.*)/),o=+r[1],s=r[2];if(!o)return e;if(0===s.indexOf("%")){var a=void 0;switch(s){case"%p":a=n;break;case"%":case"%r":default:a=i}return Ge(a)[t]/100*o}if("vh"===s||"vw"===s)return("vh"===s?Math.max(document.documentElement.clientHeight,window.innerHeight||0):Math.max(document.documentElement.clientWidth,window.innerWidth||0))/100*o;return o}(e,n,r,o)})})).forEach(function(n,i){n.forEach(function(e,t){ht(e)&&(s[i]+=e*("-"===n[t-1]?-1:1))})}),s}var wt={placement:"bottom",positionFixed:!1,eventsEnabled:!0,removeOnDestroy:!1,onCreate:function(){},onUpdate:function(){},modifiers:{shift:{order:100,enabled:!0,fn:function(e){var t=e.placement,n=t.split("-")[0],i=t.split("-")[1];if(i){var r=e.offsets,o=r.reference,s=r.popper,a=-1!==["bottom","top"].indexOf(n),l=a?"left":"top",c=a?"width":"height",u={start:Ve({},l,o[l]),end:Ve({},l,o[l]+o[c]-s[c])};e.offsets.popper=ze({},s,u[i])}return e}},offset:{order:200,enabled:!0,fn:function(e,t){var n=t.offset,i=e.placement,r=e.offsets,o=r.popper,s=r.reference,a=i.split("-")[0],l=void 0;return l=ht(+n)?[+n,0]:bt(n,o,s,a),"left"===a?(o.top+=l[0],o.left-=l[1]):"right"===a?(o.top+=l[0],o.left+=l[1]):"top"===a?(o.left+=l[0],o.top-=l[1]):"bottom"===a&&(o.left+=l[0],o.top+=l[1]),e.popper=o,e},offset:0},preventOverflow:{order:300,enabled:!0,fn:function(e,i){var t=i.boundariesElement||We(e.instance.popper);e.instance.reference===t&&(t=We(t));var n=lt("transform"),r=e.instance.popper.style,o=r.top,s=r.left,a=r[n];r.top="",r.left="",r[n]="";var l=$e(e.instance.popper,e.instance.reference,i.padding,t,e.positionFixed);r.top=o,r.left=s,r[n]=a,i.boundaries=l;var c=i.priority,u=e.offsets.popper,f={primary:function(e){var t=u[e];return u[e]<l[e]&&!i.escapeWithReference&&(t=Math.max(u[e],l[e])),Ve({},e,t)},secondary:function(e){var t="right"===e?"left":"top",n=u[t];return u[e]>l[e]&&!i.escapeWithReference&&(n=Math.min(u[t],l[e]-("right"===e?u.width:u.height))),Ve({},t,n)}};return c.forEach(function(e){var t=-1!==["left","top"].indexOf(e)?"primary":"secondary";u=ze({},u,f[t](e))}),e.offsets.popper=u,e},priority:["left","right","top","bottom"],padding:5,boundariesElement:"scrollParent"},keepTogether:{order:400,enabled:!0,fn:function(e){var t=e.offsets,n=t.popper,i=t.reference,r=e.placement.split("-")[0],o=Math.floor,s=-1!==["top","bottom"].indexOf(r),a=s?"right":"bottom",l=s?"left":"top",c=s?"width":"height";return n[a]<o(i[l])&&(e.offsets.popper[l]=o(i[l])-n[c]),n[l]>o(i[a])&&(e.offsets.popper[l]=o(i[a])),e}},arrow:{order:500,enabled:!0,fn:function(e,t){var n;if(!pt(e.instance.modifiers,"arrow","keepTogether"))return e;var i=t.element;if("string"==typeof i){if(!(i=e.instance.popper.querySelector(i)))return e}else if(!e.instance.popper.contains(i))return console.warn("WARNING: `arrow.element` must be child of its popper element!"),e;var r=e.placement.split("-")[0],o=e.offsets,s=o.popper,a=o.reference,l=-1!==["left","right"].indexOf(r),c=l?"height":"width",u=l?"Top":"Left",f=u.toLowerCase(),h=l?"left":"top",d=l?"bottom":"right",p=nt(i)[c];a[d]-p<s[f]&&(e.offsets.popper[f]-=s[f]-(a[d]-p)),a[f]+p>s[d]&&(e.offsets.popper[f]+=a[f]+p-s[d]),e.offsets.popper=Ge(e.offsets.popper);var m=a[f]+a[c]/2-p/2,g=Pe(e.instance.popper),_=parseFloat(g["margin"+u],10),v=parseFloat(g["border"+u+"Width"],10),y=m-e.offsets.popper[f]-_-v;return y=Math.max(Math.min(s[c]-p,y),0),e.arrowElement=i,e.offsets.arrow=(Ve(n={},f,Math.round(y)),Ve(n,h,""),n),e},element:"[x-arrow]"},flip:{order:600,enabled:!0,fn:function(p,m){if(at(p.instance.modifiers,"inner"))return p;if(p.flipped&&p.placement===p.originalPlacement)return p;var g=$e(p.instance.popper,p.instance.reference,m.padding,m.boundariesElement,p.positionFixed),_=p.placement.split("-")[0],v=it(_),y=p.placement.split("-")[1]||"",E=[];switch(m.behavior){case vt:E=[_,v];break;case yt:E=_t(_);break;case Et:E=_t(_,!0);break;default:E=m.behavior}return E.forEach(function(e,t){if(_!==e||E.length===t+1)return p;_=p.placement.split("-")[0],v=it(_);var n,i=p.offsets.popper,r=p.offsets.reference,o=Math.floor,s="left"===_&&o(i.right)>o(r.left)||"right"===_&&o(i.left)<o(r.right)||"top"===_&&o(i.bottom)>o(r.top)||"bottom"===_&&o(i.top)<o(r.bottom),a=o(i.left)<o(g.left),l=o(i.right)>o(g.right),c=o(i.top)<o(g.top),u=o(i.bottom)>o(g.bottom),f="left"===_&&a||"right"===_&&l||"top"===_&&c||"bottom"===_&&u,h=-1!==["top","bottom"].indexOf(_),d=!!m.flipVariations&&(h&&"start"===y&&a||h&&"end"===y&&l||!h&&"start"===y&&c||!h&&"end"===y&&u);(s||f||d)&&(p.flipped=!0,(s||f)&&(_=E[t+1]),d&&(y="end"===(n=y)?"start":"start"===n?"end":n),p.placement=_+(y?"-"+y:""),p.offsets.popper=ze({},p.offsets.popper,rt(p.instance.popper,p.offsets.reference,p.placement)),p=st(p.instance.modifiers,p,"flip"))}),p},behavior:"flip",padding:5,boundariesElement:"viewport"},inner:{order:700,enabled:!1,fn:function(e){var t=e.placement,n=t.split("-")[0],i=e.offsets,r=i.popper,o=i.reference,s=-1!==["left","right"].indexOf(n),a=-1===["top","left"].indexOf(n);return r[s?"left":"top"]=o[n]-(a?r[s?"width":"height"]:0),e.placement=it(t),e.offsets.popper=Ge(r),e}},hide:{order:800,enabled:!0,fn:function(e){if(!pt(e.instance.modifiers,"hide","preventOverflow"))return e;var t=e.offsets.reference,n=ot(e.instance.modifiers,function(e){return"preventOverflow"===e.name}).boundaries;if(t.bottom<n.top||t.left>n.right||t.top>n.bottom||t.right<n.left){if(!0===e.hide)return e;e.hide=!0,e.attributes["x-out-of-boundaries"]=""}else{if(!1===e.hide)return e;e.hide=!1,e.attributes["x-out-of-boundaries"]=!1}return e}},computeStyle:{order:850,enabled:!0,fn:function(e,t){var n=t.x,i=t.y,r=e.offsets.popper,o=ot(e.instance.modifiers,function(e){return"applyStyle"===e.name}).gpuAcceleration;void 0!==o&&console.warn("WARNING: `gpuAcceleration` option moved to `computeStyle` modifier and will not be supported in future versions of Popper.js!");var s=void 0!==o?o:t.gpuAcceleration,a=Je(We(e.instance.popper)),l={position:r.position},c={left:Math.floor(r.left),top:Math.round(r.top),bottom:Math.round(r.bottom),right:Math.floor(r.right)},u="bottom"===n?"top":"bottom",f="right"===i?"left":"right",h=lt("transform"),d=void 0,p=void 0;if(p="bottom"===u?-a.height+c.bottom:c.top,d="right"===f?-a.width+c.right:c.left,s&&h)l[h]="translate3d("+d+"px, "+p+"px, 0)",l[u]=0,l[f]=0,l.willChange="transform";else{var m="bottom"===u?-1:1,g="right"===f?-1:1;l[u]=p*m,l[f]=d*g,l.willChange=u+", "+f}var _={"x-placement":e.placement};return e.attributes=ze({},_,e.attributes),e.styles=ze({},l,e.styles),e.arrowStyles=ze({},e.offsets.arrow,e.arrowStyles),e},gpuAcceleration:!0,x:"bottom",y:"right"},applyStyle:{order:900,enabled:!0,fn:function(e){var t,n;return dt(e.instance.popper,e.styles),t=e.instance.popper,n=e.attributes,Object.keys(n).forEach(function(e){!1!==n[e]?t.setAttribute(e,n[e]):t.removeAttribute(e)}),e.arrowElement&&Object.keys(e.arrowStyles).length&&dt(e.arrowElement,e.arrowStyles),e},onLoad:function(e,t,n,i,r){var o=tt(r,t,e,n.positionFixed),s=et(n.placement,o,t,e,n.modifiers.flip.boundariesElement,n.modifiers.flip.padding);return t.setAttribute("x-placement",s),dt(t,{position:n.positionFixed?"fixed":"absolute"}),n},gpuAcceleration:void 0}}},Ct=function(){function o(e,t){var n=this,i=2<arguments.length&&void 0!==arguments[2]?arguments[2]:{};!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,o),this.scheduleUpdate=function(){return requestAnimationFrame(n.update)},this.update=ke(this.update.bind(this)),this.options=ze({},o.Defaults,i),this.state={isDestroyed:!1,isCreated:!1,scrollParents:[]},this.reference=e&&e.jquery?e[0]:e,this.popper=t&&t.jquery?t[0]:t,this.options.modifiers={},Object.keys(ze({},o.Defaults.modifiers,i.modifiers)).forEach(function(e){n.options.modifiers[e]=ze({},o.Defaults.modifiers[e]||{},i.modifiers?i.modifiers[e]:{})}),this.modifiers=Object.keys(this.options.modifiers).map(function(e){return ze({name:e},n.options.modifiers[e])}).sort(function(e,t){return e.order-t.order}),this.modifiers.forEach(function(e){e.enabled&&xe(e.onLoad)&&e.onLoad(n.reference,n.popper,n.options,e,n.state)}),this.update();var r=this.options.eventsEnabled;r&&this.enableEventListeners(),this.state.eventsEnabled=r}return Ye(o,[{key:"update",value:function(){return function(){if(!this.state.isDestroyed){var e={instance:this,styles:{},arrowStyles:{},attributes:{},flipped:!1,offsets:{}};e.offsets.reference=tt(this.state,this.popper,this.reference,this.options.positionFixed),e.placement=et(this.options.placement,e.offsets.reference,this.popper,this.reference,this.options.modifiers.flip.boundariesElement,this.options.modifiers.flip.padding),e.originalPlacement=e.placement,e.positionFixed=this.options.positionFixed,e.offsets.popper=rt(this.popper,e.offsets.reference,e.placement),e.offsets.popper.position=this.options.positionFixed?"fixed":"absolute",e=st(this.modifiers,e),this.state.isCreated?this.options.onUpdate(e):(this.state.isCreated=!0,this.options.onCreate(e))}}.call(this)}},{key:"destroy",value:function(){return function(){return this.state.isDestroyed=!0,at(this.modifiers,"applyStyle")&&(this.popper.removeAttribute("x-placement"),this.popper.style.position="",this.popper.style.top="",this.popper.style.left="",this.popper.style.right="",this.popper.style.bottom="",this.popper.style.willChange="",this.popper.style[lt("transform")]=""),this.disableEventListeners(),this.options.removeOnDestroy&&this.popper.parentNode.removeChild(this.popper),this}.call(this)}},{key:"enableEventListeners",value:function(){return function(){this.state.eventsEnabled||(this.state=ut(this.reference,this.options,this.state,this.scheduleUpdate))}.call(this)}},{key:"disableEventListeners",value:function(){return ft.call(this)}}]),o}();Ct.Utils=("undefined"!=typeof window?window:global).PopperUtils,Ct.placements=mt,Ct.Defaults=wt;var Tt,St,Dt,At,It,Ot,Nt,kt,xt,Pt,Lt,jt,Ht,Mt,Ft,Wt,Rt,Ut,Bt,qt,Kt,Qt,Yt,Vt,zt,Gt,Jt,Zt,Xt,$t,en,tn,nn,rn,on,sn,an,ln,cn,un,fn,hn,dn,pn,mn,gn,_n,vn,yn,En,bn,wn,Cn,Tn,Sn,Dn,An,In,On,Nn,kn,xn,Pn,Ln,jn,Hn,Mn,Fn,Wn,Rn,Un,Bn,qn,Kn,Qn,Yn,Vn,zn,Gn,Jn,Zn,Xn,$n,ei,ti,ni,ii,ri,oi,si,ai,li,ci,ui,fi,hi,di,pi,mi,gi,_i,vi,yi,Ei,bi,wi,Ci,Ti,Si,Di,Ai,Ii,Oi,Ni,ki,xi,Pi,Li,ji,Hi,Mi,Fi,Wi,Ri,Ui,Bi=(St="dropdown",At="."+(Dt="bs.dropdown"),It=".data-api",Ot=(Tt=t).fn[St],Nt=new RegExp("38|40|27"),kt={HIDE:"hide"+At,HIDDEN:"hidden"+At,SHOW:"show"+At,SHOWN:"shown"+At,CLICK:"click"+At,CLICK_DATA_API:"click"+At+It,KEYDOWN_DATA_API:"keydown"+At+It,KEYUP_DATA_API:"keyup"+At+It},xt="disabled",Pt="show",Lt="dropup",jt="dropright",Ht="dropleft",Mt="dropdown-menu-right",Ft="position-static",Wt='[data-toggle="dropdown"]',Rt=".dropdown form",Ut=".dropdown-menu",Bt=".navbar-nav",qt=".dropdown-menu .dropdown-item:not(.disabled):not(:disabled)",Kt="top-start",Qt="top-end",Yt="bottom-start",Vt="bottom-end",zt="right-start",Gt="left-start",Jt={offset:0,flip:!0,boundary:"scrollParent",reference:"toggle",display:"dynamic"},Zt={offset:"(number|string|function)",flip:"boolean",boundary:"(string|element)",reference:"(string|element)",display:"string"},Xt=function(){function c(e,t){this._element=e,this._popper=null,this._config=this._getConfig(t),this._menu=this._getMenuElement(),this._inNavbar=this._detectNavbar(),this._addEventListeners()}var e=c.prototype;return e.toggle=function(){if(!this._element.disabled&&!Tt(this._element).hasClass(xt)){var e=c._getParentFromElement(this._element),t=Tt(this._menu).hasClass(Pt);if(c._clearMenus(),!t){var n={relatedTarget:this._element},i=Tt.Event(kt.SHOW,n);if(Tt(e).trigger(i),!i.isDefaultPrevented()){if(!this._inNavbar){if("undefined"==typeof Ct)throw new TypeError("Bootstrap dropdown require Popper.js (https://popper.js.org)");var r=this._element;"parent"===this._config.reference?r=e:we.isElement(this._config.reference)&&(r=this._config.reference,"undefined"!=typeof this._config.reference.jquery&&(r=this._config.reference[0])),"scrollParent"!==this._config.boundary&&Tt(e).addClass(Ft),this._popper=new Ct(r,this._menu,this._getPopperConfig())}"ontouchstart"in document.documentElement&&0===Tt(e).closest(Bt).length&&Tt(document.body).children().on("mouseover",null,Tt.noop),this._element.focus(),this._element.setAttribute("aria-expanded",!0),Tt(this._menu).toggleClass(Pt),Tt(e).toggleClass(Pt).trigger(Tt.Event(kt.SHOWN,n))}}}},e.dispose=function(){Tt.removeData(this._element,Dt),Tt(this._element).off(At),this._element=null,(this._menu=null)!==this._popper&&(this._popper.destroy(),this._popper=null)},e.update=function(){this._inNavbar=this._detectNavbar(),null!==this._popper&&this._popper.scheduleUpdate()},e._addEventListeners=function(){var t=this;Tt(this._element).on(kt.CLICK,function(e){e.preventDefault(),e.stopPropagation(),t.toggle()})},e._getConfig=function(e){return e=l({},this.constructor.Default,Tt(this._element).data(),e),we.typeCheckConfig(St,e,this.constructor.DefaultType),e},e._getMenuElement=function(){if(!this._menu){var e=c._getParentFromElement(this._element);e&&(this._menu=e.querySelector(Ut))}return this._menu},e._getPlacement=function(){var e=Tt(this._element.parentNode),t=Yt;return e.hasClass(Lt)?(t=Kt,Tt(this._menu).hasClass(Mt)&&(t=Qt)):e.hasClass(jt)?t=zt:e.hasClass(Ht)?t=Gt:Tt(this._menu).hasClass(Mt)&&(t=Vt),t},e._detectNavbar=function(){return 0<Tt(this._element).closest(".navbar").length},e._getPopperConfig=function(){var t=this,e={};"function"==typeof this._config.offset?e.fn=function(e){return e.offsets=l({},e.offsets,t._config.offset(e.offsets)||{}),e}:e.offset=this._config.offset;var n={placement:this._getPlacement(),modifiers:{offset:e,flip:{enabled:this._config.flip},preventOverflow:{boundariesElement:this._config.boundary}}};return"static"===this._config.display&&(n.modifiers.applyStyle={enabled:!1}),n},c._jQueryInterface=function(t){return this.each(function(){var e=Tt(this).data(Dt);if(e||(e=new c(this,"object"==typeof t?t:null),Tt(this).data(Dt,e)),"string"==typeof t){if("undefined"==typeof e[t])throw new TypeError('No method named "'+t+'"');e[t]()}})},c._clearMenus=function(e){if(!e||3!==e.which&&("keyup"!==e.type||9===e.which))for(var t=[].slice.call(document.querySelectorAll(Wt)),n=0,i=t.length;n<i;n++){var r=c._getParentFromElement(t[n]),o=Tt(t[n]).data(Dt),s={relatedTarget:t[n]};if(e&&"click"===e.type&&(s.clickEvent=e),o){var a=o._menu;if(Tt(r).hasClass(Pt)&&!(e&&("click"===e.type&&/input|textarea/i.test(e.target.tagName)||"keyup"===e.type&&9===e.which)&&Tt.contains(r,e.target))){var l=Tt.Event(kt.HIDE,s);Tt(r).trigger(l),l.isDefaultPrevented()||("ontouchstart"in document.documentElement&&Tt(document.body).children().off("mouseover",null,Tt.noop),t[n].setAttribute("aria-expanded","false"),Tt(a).removeClass(Pt),Tt(r).removeClass(Pt).trigger(Tt.Event(kt.HIDDEN,s)))}}}},c._getParentFromElement=function(e){var t,n=we.getSelectorFromElement(e);return n&&(t=document.querySelector(n)),t||e.parentNode},c._dataApiKeydownHandler=function(e){if((/input|textarea/i.test(e.target.tagName)?!(32===e.which||27!==e.which&&(40!==e.which&&38!==e.which||Tt(e.target).closest(Ut).length)):Nt.test(e.which))&&(e.preventDefault(),e.stopPropagation(),!this.disabled&&!Tt(this).hasClass(xt))){var t=c._getParentFromElement(this),n=Tt(t).hasClass(Pt);if((n||27===e.which&&32===e.which)&&(!n||27!==e.which&&32!==e.which)){var i=[].slice.call(t.querySelectorAll(qt));if(0!==i.length){var r=i.indexOf(e.target);38===e.which&&0<r&&r--,40===e.which&&r<i.length-1&&r++,r<0&&(r=0),i[r].focus()}}else{if(27===e.which){var o=t.querySelector(Wt);Tt(o).trigger("focus")}Tt(this).trigger("click")}}},s(c,null,[{key:"VERSION",get:function(){return"4.1.3"}},{key:"Default",get:function(){return Jt}},{key:"DefaultType",get:function(){return Zt}}]),c}(),Tt(document).on(kt.KEYDOWN_DATA_API,Wt,Xt._dataApiKeydownHandler).on(kt.KEYDOWN_DATA_API,Ut,Xt._dataApiKeydownHandler).on(kt.CLICK_DATA_API+" "+kt.KEYUP_DATA_API,Xt._clearMenus).on(kt.CLICK_DATA_API,Wt,function(e){e.preventDefault(),e.stopPropagation(),Xt._jQueryInterface.call(Tt(this),"toggle")}).on(kt.CLICK_DATA_API,Rt,function(e){e.stopPropagation()}),Tt.fn[St]=Xt._jQueryInterface,Tt.fn[St].Constructor=Xt,Tt.fn[St].noConflict=function(){return Tt.fn[St]=Ot,Xt._jQueryInterface},Xt),qi=(en="modal",nn="."+(tn="bs.modal"),rn=($t=t).fn[en],on={backdrop:!0,keyboard:!0,focus:!0,show:!0},sn={backdrop:"(boolean|string)",keyboard:"boolean",focus:"boolean",show:"boolean"},an={HIDE:"hide"+nn,HIDDEN:"hidden"+nn,SHOW:"show"+nn,SHOWN:"shown"+nn,FOCUSIN:"focusin"+nn,RESIZE:"resize"+nn,CLICK_DISMISS:"click.dismiss"+nn,KEYDOWN_DISMISS:"keydown.dismiss"+nn,MOUSEUP_DISMISS:"mouseup.dismiss"+nn,MOUSEDOWN_DISMISS:"mousedown.dismiss"+nn,CLICK_DATA_API:"click"+nn+".data-api"},ln="modal-scrollbar-measure",cn="modal-backdrop",un="modal-open",fn="fade",hn="show",dn=".modal-dialog",pn='[data-toggle="modal"]',mn='[data-dismiss="modal"]',gn=".fixed-top, .fixed-bottom, .is-fixed, .sticky-top",_n=".sticky-top",vn=function(){function r(e,t){this._config=this._getConfig(t),this._element=e,this._dialog=e.querySelector(dn),this._backdrop=null,this._isShown=!1,this._isBodyOverflowing=!1,this._ignoreBackdropClick=!1,this._scrollbarWidth=0}var e=r.prototype;return e.toggle=function(e){return this._isShown?this.hide():this.show(e)},e.show=function(e){var t=this;if(!this._isTransitioning&&!this._isShown){$t(this._element).hasClass(fn)&&(this._isTransitioning=!0);var n=$t.Event(an.SHOW,{relatedTarget:e});$t(this._element).trigger(n),this._isShown||n.isDefaultPrevented()||(this._isShown=!0,this._checkScrollbar(),this._setScrollbar(),this._adjustDialog(),$t(document.body).addClass(un),this._setEscapeEvent(),this._setResizeEvent(),$t(this._element).on(an.CLICK_DISMISS,mn,function(e){return t.hide(e)}),$t(this._dialog).on(an.MOUSEDOWN_DISMISS,function(){$t(t._element).one(an.MOUSEUP_DISMISS,function(e){$t(e.target).is(t._element)&&(t._ignoreBackdropClick=!0)})}),this._showBackdrop(function(){return t._showElement(e)}))}},e.hide=function(e){var t=this;if(e&&e.preventDefault(),!this._isTransitioning&&this._isShown){var n=$t.Event(an.HIDE);if($t(this._element).trigger(n),this._isShown&&!n.isDefaultPrevented()){this._isShown=!1;var i=$t(this._element).hasClass(fn);if(i&&(this._isTransitioning=!0),this._setEscapeEvent(),this._setResizeEvent(),$t(document).off(an.FOCUSIN),$t(this._element).removeClass(hn),$t(this._element).off(an.CLICK_DISMISS),$t(this._dialog).off(an.MOUSEDOWN_DISMISS),i){var r=we.getTransitionDurationFromElement(this._element);$t(this._element).one(we.TRANSITION_END,function(e){return t._hideModal(e)}).emulateTransitionEnd(r)}else this._hideModal()}}},e.dispose=function(){$t.removeData(this._element,tn),$t(window,document,this._element,this._backdrop).off(nn),this._config=null,this._element=null,this._dialog=null,this._backdrop=null,this._isShown=null,this._isBodyOverflowing=null,this._ignoreBackdropClick=null,this._scrollbarWidth=null},e.handleUpdate=function(){this._adjustDialog()},e._getConfig=function(e){return e=l({},on,e),we.typeCheckConfig(en,e,sn),e},e._showElement=function(e){var t=this,n=$t(this._element).hasClass(fn);this._element.parentNode&&this._element.parentNode.nodeType===Node.ELEMENT_NODE||document.body.appendChild(this._element),this._element.style.display="block",this._element.removeAttribute("aria-hidden"),this._element.scrollTop=0,n&&we.reflow(this._element),$t(this._element).addClass(hn),this._config.focus&&this._enforceFocus();var i=$t.Event(an.SHOWN,{relatedTarget:e}),r=function(){t._config.focus&&t._element.focus(),t._isTransitioning=!1,$t(t._element).trigger(i)};if(n){var o=we.getTransitionDurationFromElement(this._element);$t(this._dialog).one(we.TRANSITION_END,r).emulateTransitionEnd(o)}else r()},e._enforceFocus=function(){var t=this;$t(document).off(an.FOCUSIN).on(an.FOCUSIN,function(e){document!==e.target&&t._element!==e.target&&0===$t(t._element).has(e.target).length&&t._element.focus()})},e._setEscapeEvent=function(){var t=this;this._isShown&&this._config.keyboard?$t(this._element).on(an.KEYDOWN_DISMISS,function(e){27===e.which&&(e.preventDefault(),t.hide())}):this._isShown||$t(this._element).off(an.KEYDOWN_DISMISS)},e._setResizeEvent=function(){var t=this;this._isShown?$t(window).on(an.RESIZE,function(e){return t.handleUpdate(e)}):$t(window).off(an.RESIZE)},e._hideModal=function(){var e=this;this._element.style.display="none",this._element.setAttribute("aria-hidden",!0),this._isTransitioning=!1,this._showBackdrop(function(){$t(document.body).removeClass(un),e._resetAdjustments(),e._resetScrollbar(),$t(e._element).trigger(an.HIDDEN)})},e._removeBackdrop=function(){this._backdrop&&($t(this._backdrop).remove(),this._backdrop=null)},e._showBackdrop=function(e){var t=this,n=$t(this._element).hasClass(fn)?fn:"";if(this._isShown&&this._config.backdrop){if(this._backdrop=document.createElement("div"),this._backdrop.className=cn,n&&this._backdrop.classList.add(n),$t(this._backdrop).appendTo(document.body),$t(this._element).on(an.CLICK_DISMISS,function(e){t._ignoreBackdropClick?t._ignoreBackdropClick=!1:e.target===e.currentTarget&&("static"===t._config.backdrop?t._element.focus():t.hide())}),n&&we.reflow(this._backdrop),$t(this._backdrop).addClass(hn),!e)return;if(!n)return void e();var i=we.getTransitionDurationFromElement(this._backdrop);$t(this._backdrop).one(we.TRANSITION_END,e).emulateTransitionEnd(i)}else if(!this._isShown&&this._backdrop){$t(this._backdrop).removeClass(hn);var r=function(){t._removeBackdrop(),e&&e()};if($t(this._element).hasClass(fn)){var o=we.getTransitionDurationFromElement(this._backdrop);$t(this._backdrop).one(we.TRANSITION_END,r).emulateTransitionEnd(o)}else r()}else e&&e()},e._adjustDialog=function(){var e=this._element.scrollHeight>document.documentElement.clientHeight;!this._isBodyOverflowing&&e&&(this._element.style.paddingLeft=this._scrollbarWidth+"px"),this._isBodyOverflowing&&!e&&(this._element.style.paddingRight=this._scrollbarWidth+"px")},e._resetAdjustments=function(){this._element.style.paddingLeft="",this._element.style.paddingRight=""},e._checkScrollbar=function(){var e=document.body.getBoundingClientRect();this._isBodyOverflowing=e.left+e.right<window.innerWidth,this._scrollbarWidth=this._getScrollbarWidth()},e._setScrollbar=function(){var r=this;if(this._isBodyOverflowing){var e=[].slice.call(document.querySelectorAll(gn)),t=[].slice.call(document.querySelectorAll(_n));$t(e).each(function(e,t){var n=t.style.paddingRight,i=$t(t).css("padding-right");$t(t).data("padding-right",n).css("padding-right",parseFloat(i)+r._scrollbarWidth+"px")}),$t(t).each(function(e,t){var n=t.style.marginRight,i=$t(t).css("margin-right");$t(t).data("margin-right",n).css("margin-right",parseFloat(i)-r._scrollbarWidth+"px")});var n=document.body.style.paddingRight,i=$t(document.body).css("padding-right");$t(document.body).data("padding-right",n).css("padding-right",parseFloat(i)+this._scrollbarWidth+"px")}},e._resetScrollbar=function(){var e=[].slice.call(document.querySelectorAll(gn));$t(e).each(function(e,t){var n=$t(t).data("padding-right");$t(t).removeData("padding-right"),t.style.paddingRight=n||""});var t=[].slice.call(document.querySelectorAll(""+_n));$t(t).each(function(e,t){var n=$t(t).data("margin-right");"undefined"!=typeof n&&$t(t).css("margin-right",n).removeData("margin-right")});var n=$t(document.body).data("padding-right");$t(document.body).removeData("padding-right"),document.body.style.paddingRight=n||""},e._getScrollbarWidth=function(){var e=document.createElement("div");e.className=ln,document.body.appendChild(e);var t=e.getBoundingClientRect().width-e.clientWidth;return document.body.removeChild(e),t},r._jQueryInterface=function(n,i){return this.each(function(){var e=$t(this).data(tn),t=l({},on,$t(this).data(),"object"==typeof n&&n?n:{});if(e||(e=new r(this,t),$t(this).data(tn,e)),"string"==typeof n){if("undefined"==typeof e[n])throw new TypeError('No method named "'+n+'"');e[n](i)}else t.show&&e.show(i)})},s(r,null,[{key:"VERSION",get:function(){return"4.1.3"}},{key:"Default",get:function(){return on}}]),r}(),$t(document).on(an.CLICK_DATA_API,pn,function(e){var t,n=this,i=we.getSelectorFromElement(this);i&&(t=document.querySelector(i));var r=$t(t).data(tn)?"toggle":l({},$t(t).data(),$t(this).data());"A"!==this.tagName&&"AREA"!==this.tagName||e.preventDefault();var o=$t(t).one(an.SHOW,function(e){e.isDefaultPrevented()||o.one(an.HIDDEN,function(){$t(n).is(":visible")&&n.focus()})});vn._jQueryInterface.call($t(t),r,this)}),$t.fn[en]=vn._jQueryInterface,$t.fn[en].Constructor=vn,$t.fn[en].noConflict=function(){return $t.fn[en]=rn,vn._jQueryInterface},vn),Ki=(En="tooltip",wn="."+(bn="bs.tooltip"),Cn=(yn=t).fn[En],Tn="bs-tooltip",Sn=new RegExp("(^|\\s)"+Tn+"\\S+","g"),In={animation:!0,template:'<div class="tooltip" role="tooltip"><div class="arrow"></div><div class="tooltip-inner"></div></div>',trigger:"hover focus",title:"",delay:0,html:!(An={AUTO:"auto",TOP:"top",RIGHT:"right",BOTTOM:"bottom",LEFT:"left"}),selector:!(Dn={animation:"boolean",template:"string",title:"(string|element|function)",trigger:"string",delay:"(number|object)",html:"boolean",selector:"(string|boolean)",placement:"(string|function)",offset:"(number|string)",container:"(string|element|boolean)",fallbackPlacement:"(string|array)",boundary:"(string|element)"}),placement:"top",offset:0,container:!1,fallbackPlacement:"flip",boundary:"scrollParent"},Nn="out",kn={HIDE:"hide"+wn,HIDDEN:"hidden"+wn,SHOW:(On="show")+wn,SHOWN:"shown"+wn,INSERTED:"inserted"+wn,CLICK:"click"+wn,FOCUSIN:"focusin"+wn,FOCUSOUT:"focusout"+wn,MOUSEENTER:"mouseenter"+wn,MOUSELEAVE:"mouseleave"+wn},xn="fade",Pn="show",Ln=".tooltip-inner",jn=".arrow",Hn="hover",Mn="focus",Fn="click",Wn="manual",Rn=function(){function i(e,t){if("undefined"==typeof Ct)throw new TypeError("Bootstrap tooltips require Popper.js (https://popper.js.org)");this._isEnabled=!0,this._timeout=0,this._hoverState="",this._activeTrigger={},this._popper=null,this.element=e,this.config=this._getConfig(t),this.tip=null,this._setListeners()}var e=i.prototype;return e.enable=function(){this._isEnabled=!0},e.disable=function(){this._isEnabled=!1},e.toggleEnabled=function(){this._isEnabled=!this._isEnabled},e.toggle=function(e){if(this._isEnabled)if(e){var t=this.constructor.DATA_KEY,n=yn(e.currentTarget).data(t);n||(n=new this.constructor(e.currentTarget,this._getDelegateConfig()),yn(e.currentTarget).data(t,n)),n._activeTrigger.click=!n._activeTrigger.click,n._isWithActiveTrigger()?n._enter(null,n):n._leave(null,n)}else{if(yn(this.getTipElement()).hasClass(Pn))return void this._leave(null,this);this._enter(null,this)}},e.dispose=function(){clearTimeout(this._timeout),yn.removeData(this.element,this.constructor.DATA_KEY),yn(this.element).off(this.constructor.EVENT_KEY),yn(this.element).closest(".modal").off("hide.bs.modal"),this.tip&&yn(this.tip).remove(),this._isEnabled=null,this._timeout=null,this._hoverState=null,(this._activeTrigger=null)!==this._popper&&this._popper.destroy(),this._popper=null,this.element=null,this.config=null,this.tip=null},e.show=function(){var t=this;if("none"===yn(this.element).css("display"))throw new Error("Please use show on visible elements");var e=yn.Event(this.constructor.Event.SHOW);if(this.isWithContent()&&this._isEnabled){yn(this.element).trigger(e);var n=yn.contains(this.element.ownerDocument.documentElement,this.element);if(e.isDefaultPrevented()||!n)return;var i=this.getTipElement(),r=we.getUID(this.constructor.NAME);i.setAttribute("id",r),this.element.setAttribute("aria-describedby",r),this.setContent(),this.config.animation&&yn(i).addClass(xn);var o="function"==typeof this.config.placement?this.config.placement.call(this,i,this.element):this.config.placement,s=this._getAttachment(o);this.addAttachmentClass(s);var a=!1===this.config.container?document.body:yn(document).find(this.config.container);yn(i).data(this.constructor.DATA_KEY,this),yn.contains(this.element.ownerDocument.documentElement,this.tip)||yn(i).appendTo(a),yn(this.element).trigger(this.constructor.Event.INSERTED),this._popper=new Ct(this.element,i,{placement:s,modifiers:{offset:{offset:this.config.offset},flip:{behavior:this.config.fallbackPlacement},arrow:{element:jn},preventOverflow:{boundariesElement:this.config.boundary}},onCreate:function(e){e.originalPlacement!==e.placement&&t._handlePopperPlacementChange(e)},onUpdate:function(e){t._handlePopperPlacementChange(e)}}),yn(i).addClass(Pn),"ontouchstart"in document.documentElement&&yn(document.body).children().on("mouseover",null,yn.noop);var l=function(){t.config.animation&&t._fixTransition();var e=t._hoverState;t._hoverState=null,yn(t.element).trigger(t.constructor.Event.SHOWN),e===Nn&&t._leave(null,t)};if(yn(this.tip).hasClass(xn)){var c=we.getTransitionDurationFromElement(this.tip);yn(this.tip).one(we.TRANSITION_END,l).emulateTransitionEnd(c)}else l()}},e.hide=function(e){var t=this,n=this.getTipElement(),i=yn.Event(this.constructor.Event.HIDE),r=function(){t._hoverState!==On&&n.parentNode&&n.parentNode.removeChild(n),t._cleanTipClass(),t.element.removeAttribute("aria-describedby"),yn(t.element).trigger(t.constructor.Event.HIDDEN),null!==t._popper&&t._popper.destroy(),e&&e()};if(yn(this.element).trigger(i),!i.isDefaultPrevented()){if(yn(n).removeClass(Pn),"ontouchstart"in document.documentElement&&yn(document.body).children().off("mouseover",null,yn.noop),this._activeTrigger[Fn]=!1,this._activeTrigger[Mn]=!1,this._activeTrigger[Hn]=!1,yn(this.tip).hasClass(xn)){var o=we.getTransitionDurationFromElement(n);yn(n).one(we.TRANSITION_END,r).emulateTransitionEnd(o)}else r();this._hoverState=""}},e.update=function(){null!==this._popper&&this._popper.scheduleUpdate()},e.isWithContent=function(){return Boolean(this.getTitle())},e.addAttachmentClass=function(e){yn(this.getTipElement()).addClass(Tn+"-"+e)},e.getTipElement=function(){return this.tip=this.tip||yn(this.config.template)[0],this.tip},e.setContent=function(){var e=this.getTipElement();this.setElementContent(yn(e.querySelectorAll(Ln)),this.getTitle()),yn(e).removeClass(xn+" "+Pn)},e.setElementContent=function(e,t){var n=this.config.html;"object"==typeof t&&(t.nodeType||t.jquery)?n?yn(t).parent().is(e)||e.empty().append(t):e.text(yn(t).text()):e[n?"html":"text"](t)},e.getTitle=function(){var e=this.element.getAttribute("data-original-title");return e||(e="function"==typeof this.config.title?this.config.title.call(this.element):this.config.title),e},e._getAttachment=function(e){return An[e.toUpperCase()]},e._setListeners=function(){var i=this;this.config.trigger.split(" ").forEach(function(e){if("click"===e)yn(i.element).on(i.constructor.Event.CLICK,i.config.selector,function(e){return i.toggle(e)});else if(e!==Wn){var t=e===Hn?i.constructor.Event.MOUSEENTER:i.constructor.Event.FOCUSIN,n=e===Hn?i.constructor.Event.MOUSELEAVE:i.constructor.Event.FOCUSOUT;yn(i.element).on(t,i.config.selector,function(e){return i._enter(e)}).on(n,i.config.selector,function(e){return i._leave(e)})}yn(i.element).closest(".modal").on("hide.bs.modal",function(){return i.hide()})}),this.config.selector?this.config=l({},this.config,{trigger:"manual",selector:""}):this._fixTitle()},e._fixTitle=function(){var e=typeof this.element.getAttribute("data-original-title");(this.element.getAttribute("title")||"string"!==e)&&(this.element.setAttribute("data-original-title",this.element.getAttribute("title")||""),this.element.setAttribute("title",""))},e._enter=function(e,t){var n=this.constructor.DATA_KEY;(t=t||yn(e.currentTarget).data(n))||(t=new this.constructor(e.currentTarget,this._getDelegateConfig()),yn(e.currentTarget).data(n,t)),e&&(t._activeTrigger["focusin"===e.type?Mn:Hn]=!0),yn(t.getTipElement()).hasClass(Pn)||t._hoverState===On?t._hoverState=On:(clearTimeout(t._timeout),t._hoverState=On,t.config.delay&&t.config.delay.show?t._timeout=setTimeout(function(){t._hoverState===On&&t.show()},t.config.delay.show):t.show())},e._leave=function(e,t){var n=this.constructor.DATA_KEY;(t=t||yn(e.currentTarget).data(n))||(t=new this.constructor(e.currentTarget,this._getDelegateConfig()),yn(e.currentTarget).data(n,t)),e&&(t._activeTrigger["focusout"===e.type?Mn:Hn]=!1),t._isWithActiveTrigger()||(clearTimeout(t._timeout),t._hoverState=Nn,t.config.delay&&t.config.delay.hide?t._timeout=setTimeout(function(){t._hoverState===Nn&&t.hide()},t.config.delay.hide):t.hide())},e._isWithActiveTrigger=function(){for(var e in this._activeTrigger)if(this._activeTrigger[e])return!0;return!1},e._getConfig=function(e){return"number"==typeof(e=l({},this.constructor.Default,yn(this.element).data(),"object"==typeof e&&e?e:{})).delay&&(e.delay={show:e.delay,hide:e.delay}),"number"==typeof e.title&&(e.title=e.title.toString()),"number"==typeof e.content&&(e.content=e.content.toString()),we.typeCheckConfig(En,e,this.constructor.DefaultType),e},e._getDelegateConfig=function(){var e={};if(this.config)for(var t in this.config)this.constructor.Default[t]!==this.config[t]&&(e[t]=this.config[t]);return e},e._cleanTipClass=function(){var e=yn(this.getTipElement()),t=e.attr("class").match(Sn);null!==t&&t.length&&e.removeClass(t.join(""))},e._handlePopperPlacementChange=function(e){var t=e.instance;this.tip=t.popper,this._cleanTipClass(),this.addAttachmentClass(this._getAttachment(e.placement))},e._fixTransition=function(){var e=this.getTipElement(),t=this.config.animation;null===e.getAttribute("x-placement")&&(yn(e).removeClass(xn),this.config.animation=!1,this.hide(),this.show(),this.config.animation=t)},i._jQueryInterface=function(n){return this.each(function(){var e=yn(this).data(bn),t="object"==typeof n&&n;if((e||!/dispose|hide/.test(n))&&(e||(e=new i(this,t),yn(this).data(bn,e)),"string"==typeof n)){if("undefined"==typeof e[n])throw new TypeError('No method named "'+n+'"');e[n]()}})},s(i,null,[{key:"VERSION",get:function(){return"4.1.3"}},{key:"Default",get:function(){return In}},{key:"NAME",get:function(){return En}},{key:"DATA_KEY",get:function(){return bn}},{key:"Event",get:function(){return kn}},{key:"EVENT_KEY",get:function(){return wn}},{key:"DefaultType",get:function(){return Dn}}]),i}(),yn.fn[En]=Rn._jQueryInterface,yn.fn[En].Constructor=Rn,yn.fn[En].noConflict=function(){return yn.fn[En]=Cn,Rn._jQueryInterface},Rn),Qi=(Bn="popover",Kn="."+(qn="bs.popover"),Qn=(Un=t).fn[Bn],Yn="bs-popover",Vn=new RegExp("(^|\\s)"+Yn+"\\S+","g"),zn=l({},Ki.Default,{placement:"right",trigger:"click",content:"",template:'<div class="popover" role="tooltip"><div class="arrow"></div><h3 class="popover-header"></h3><div class="popover-body"></div></div>'}),Gn=l({},Ki.DefaultType,{content:"(string|element|function)"}),Jn="fade",Xn=".popover-header",$n=".popover-body",ei={HIDE:"hide"+Kn,HIDDEN:"hidden"+Kn,SHOW:(Zn="show")+Kn,SHOWN:"shown"+Kn,INSERTED:"inserted"+Kn,CLICK:"click"+Kn,FOCUSIN:"focusin"+Kn,FOCUSOUT:"focusout"+Kn,MOUSEENTER:"mouseenter"+Kn,MOUSELEAVE:"mouseleave"+Kn},ti=function(e){var t,n;function i(){return e.apply(this,arguments)||this}n=e,(t=i).prototype=Object.create(n.prototype),(t.prototype.constructor=t).__proto__=n;var r=i.prototype;return r.isWithContent=function(){return this.getTitle()||this._getContent()},r.addAttachmentClass=function(e){Un(this.getTipElement()).addClass(Yn+"-"+e)},r.getTipElement=function(){return this.tip=this.tip||Un(this.config.template)[0],this.tip},r.setContent=function(){var e=Un(this.getTipElement());this.setElementContent(e.find(Xn),this.getTitle());var t=this._getContent();"function"==typeof t&&(t=t.call(this.element)),this.setElementContent(e.find($n),t),e.removeClass(Jn+" "+Zn)},r._getContent=function(){return this.element.getAttribute("data-content")||this.config.content},r._cleanTipClass=function(){var e=Un(this.getTipElement()),t=e.attr("class").match(Vn);null!==t&&0<t.length&&e.removeClass(t.join(""))},i._jQueryInterface=function(n){return this.each(function(){var e=Un(this).data(qn),t="object"==typeof n?n:null;if((e||!/destroy|hide/.test(n))&&(e||(e=new i(this,t),Un(this).data(qn,e)),"string"==typeof n)){if("undefined"==typeof e[n])throw new TypeError('No method named "'+n+'"');e[n]()}})},s(i,null,[{key:"VERSION",get:function(){return"4.1.3"}},{key:"Default",get:function(){return zn}},{key:"NAME",get:function(){return Bn}},{key:"DATA_KEY",get:function(){return qn}},{key:"Event",get:function(){return ei}},{key:"EVENT_KEY",get:function(){return Kn}},{key:"DefaultType",get:function(){return Gn}}]),i}(Ki),Un.fn[Bn]=ti._jQueryInterface,Un.fn[Bn].Constructor=ti,Un.fn[Bn].noConflict=function(){return Un.fn[Bn]=Qn,ti._jQueryInterface},ti),Yi=(ii="scrollspy",oi="."+(ri="bs.scrollspy"),si=(ni=t).fn[ii],ai={offset:10,method:"auto",target:""},li={offset:"number",method:"string",target:"(string|element)"},ci={ACTIVATE:"activate"+oi,SCROLL:"scroll"+oi,LOAD_DATA_API:"load"+oi+".data-api"},ui="dropdown-item",fi="active",hi='[data-spy="scroll"]',di=".active",pi=".nav, .list-group",mi=".nav-link",gi=".nav-item",_i=".list-group-item",vi=".dropdown",yi=".dropdown-item",Ei=".dropdown-toggle",bi="offset",wi="position",Ci=function(){function n(e,t){var n=this;this._element=e,this._scrollElement="BODY"===e.tagName?window:e,this._config=this._getConfig(t),this._selector=this._config.target+" "+mi+","+this._config.target+" "+_i+","+this._config.target+" "+yi,this._offsets=[],this._targets=[],this._activeTarget=null,this._scrollHeight=0,ni(this._scrollElement).on(ci.SCROLL,function(e){return n._process(e)}),this.refresh(),this._process()}var e=n.prototype;return e.refresh=function(){var t=this,e=this._scrollElement===this._scrollElement.window?bi:wi,r="auto"===this._config.method?e:this._config.method,o=r===wi?this._getScrollTop():0;this._offsets=[],this._targets=[],this._scrollHeight=this._getScrollHeight(),[].slice.call(document.querySelectorAll(this._selector)).map(function(e){var t,n=we.getSelectorFromElement(e);if(n&&(t=document.querySelector(n)),t){var i=t.getBoundingClientRect();if(i.width||i.height)return[ni(t)[r]().top+o,n]}return null}).filter(function(e){return e}).sort(function(e,t){return e[0]-t[0]}).forEach(function(e){t._offsets.push(e[0]),t._targets.push(e[1])})},e.dispose=function(){ni.removeData(this._element,ri),ni(this._scrollElement).off(oi),this._element=null,this._scrollElement=null,this._config=null,this._selector=null,this._offsets=null,this._targets=null,this._activeTarget=null,this._scrollHeight=null},e._getConfig=function(e){if("string"!=typeof(e=l({},ai,"object"==typeof e&&e?e:{})).target){var t=ni(e.target).attr("id");t||(t=we.getUID(ii),ni(e.target).attr("id",t)),e.target="#"+t}return we.typeCheckConfig(ii,e,li),e},e._getScrollTop=function(){return this._scrollElement===window?this._scrollElement.pageYOffset:this._scrollElement.scrollTop},e._getScrollHeight=function(){return this._scrollElement.scrollHeight||Math.max(document.body.scrollHeight,document.documentElement.scrollHeight)},e._getOffsetHeight=function(){return this._scrollElement===window?window.innerHeight:this._scrollElement.getBoundingClientRect().height},e._process=function(){var e=this._getScrollTop()+this._config.offset,t=this._getScrollHeight(),n=this._config.offset+t-this._getOffsetHeight();if(this._scrollHeight!==t&&this.refresh(),n<=e){var i=this._targets[this._targets.length-1];this._activeTarget!==i&&this._activate(i)}else{if(this._activeTarget&&e<this._offsets[0]&&0<this._offsets[0])return this._activeTarget=null,void this._clear();for(var r=this._offsets.length;r--;){this._activeTarget!==this._targets[r]&&e>=this._offsets[r]&&("undefined"==typeof this._offsets
1
  /*!
2
+ * Bootstrap v4.2.1 (https://getbootstrap.com/)
3
  * Copyright 2011-2018 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
4
  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
5
  */