Version Description
- New: Introducing Corona Banner that displays data about Coronavirus pandemia and five steps recommended by the WHO (World Health Organization)
- New: Option to set bar opacity
- New: Accept the notice with close icon
- Fix: Policy link added to message without policy option enabled
Download this release
Release Info
Developer | dfactory |
Plugin | Cookie Notice by dFactory |
Version | 1.3.0 |
Comparing to | |
See all releases |
Code changes from version 1.2.51 to 1.3.0
- cookie-notice.php +490 -144
- css/admin-notice.css +91 -0
- css/admin-notice.min.css +1 -0
- css/admin.css +30 -23
- css/admin.min.css +1 -1
- css/front.css +79 -85
- css/front.min.css +1 -1
- js/admin-notice.js +59 -0
- js/admin-notice.min.js +1 -0
- js/admin.js +9 -1
- js/admin.min.js +1 -1
- js/front.js +92 -9
- js/front.min.js +1 -1
- languages/cookie-notice.pot +226 -109
- readme.txt +12 -5
cookie-notice.php
CHANGED
@@ -2,7 +2,7 @@
|
|
2 |
/*
|
3 |
Plugin Name: Cookie Notice
|
4 |
Description: Cookie Notice allows you to elegantly inform users that your site uses cookies and helps you comply with the EU GDPR cookie law and CCPA regulations.
|
5 |
-
Version: 1.
|
6 |
Author: dFactory
|
7 |
Author URI: http://www.dfactory.eu/
|
8 |
Plugin URI: http://www.dfactory.eu/plugins/cookie-notice/
|
@@ -29,7 +29,7 @@ if ( ! defined( 'ABSPATH' ) )
|
|
29 |
* Cookie Notice class.
|
30 |
*
|
31 |
* @class Cookie_Notice
|
32 |
-
* @version 1.
|
33 |
*/
|
34 |
class Cookie_Notice {
|
35 |
|
@@ -41,10 +41,10 @@ class Cookie_Notice {
|
|
41 |
'position' => 'bottom',
|
42 |
'message_text' => '',
|
43 |
'css_style' => 'bootstrap',
|
44 |
-
'css_class' => '
|
45 |
'accept_text' => '',
|
46 |
'refuse_text' => '',
|
47 |
-
'refuse_opt' =>
|
48 |
'refuse_code' => '',
|
49 |
'refuse_code_head' => '',
|
50 |
'revoke_cookies' => false,
|
@@ -52,7 +52,7 @@ class Cookie_Notice {
|
|
52 |
'revoke_message_text' => '',
|
53 |
'revoke_text' => '',
|
54 |
'redirection' => false,
|
55 |
-
'see_more' =>
|
56 |
'link_target' => '_blank',
|
57 |
'link_position' => 'banner',
|
58 |
'time' => 'month',
|
@@ -62,8 +62,9 @@ class Cookie_Notice {
|
|
62 |
'on_scroll_offset' => 100,
|
63 |
'on_click' => false,
|
64 |
'colors' => array(
|
65 |
-
'text'
|
66 |
-
'bar'
|
|
|
67 |
),
|
68 |
'see_more_opt' => array(
|
69 |
'text' => '',
|
@@ -72,14 +73,32 @@ class Cookie_Notice {
|
|
72 |
'link' => '',
|
73 |
'sync' => false
|
74 |
),
|
75 |
-
'script_placement'
|
76 |
-
'
|
77 |
-
'
|
78 |
-
'
|
79 |
-
'
|
80 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
81 |
),
|
82 |
-
'version' => '1.
|
83 |
);
|
84 |
private $positions = array();
|
85 |
private $styles = array();
|
@@ -122,10 +141,16 @@ class Cookie_Notice {
|
|
122 |
public function __construct() {
|
123 |
register_activation_hook( __FILE__, array( $this, 'activation' ) );
|
124 |
register_deactivation_hook( __FILE__, array( $this, 'deactivation' ) );
|
|
|
|
|
|
|
125 |
|
126 |
-
//
|
|
|
|
|
|
|
127 |
$this->options = array(
|
128 |
-
'general' =>
|
129 |
);
|
130 |
|
131 |
if ( ! isset( $this->options['general']['see_more_opt']['sync'] ) )
|
@@ -141,10 +166,13 @@ class Cookie_Notice {
|
|
141 |
add_action( 'after_setup_theme', array( $this, 'load_defaults' ) );
|
142 |
add_action( 'admin_enqueue_scripts', array( $this, 'admin_enqueue_scripts' ) );
|
143 |
add_action( 'wp_enqueue_scripts', array( $this, 'wp_enqueue_scripts' ) );
|
|
|
144 |
add_action( 'wp_head', array( $this, 'wp_print_header_scripts' ) );
|
145 |
add_action( 'wp_print_footer_scripts', array( $this, 'wp_print_footer_scripts' ) );
|
146 |
add_action( 'wp_footer', array( $this, 'add_cookie_notice' ), 1000 );
|
147 |
-
add_action( 'wp_ajax_cn_dismiss_notice', array( $this, '
|
|
|
|
|
148 |
|
149 |
// filters
|
150 |
add_filter( 'plugin_row_meta', array( $this, 'plugin_row_meta' ), 10, 2 );
|
@@ -233,8 +261,23 @@ class Cookie_Notice {
|
|
233 |
$this->defaults['general']['revoke_message_text'] = __( 'You can revoke your consent any time using the Revoke consent button.', 'cookie-notice' );
|
234 |
$this->defaults['general']['revoke_text'] = __( 'Revoke consent', 'cookie-notice' );
|
235 |
$this->defaults['general']['see_more_opt']['text'] = __( 'Privacy policy', 'cookie-notice' );
|
236 |
-
|
237 |
-
// set
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
238 |
if ( $this->options['general']['translate'] === true ) {
|
239 |
$this->options['general']['translate'] = false;
|
240 |
|
@@ -245,6 +288,11 @@ class Cookie_Notice {
|
|
245 |
$this->options['general']['revoke_text'] = $this->defaults['general']['revoke_text'];
|
246 |
$this->options['general']['see_more_opt']['text'] = $this->defaults['general']['see_more_opt']['text'];
|
247 |
|
|
|
|
|
|
|
|
|
|
|
248 |
update_option( 'cookie_notice_options', $this->options['general'] );
|
249 |
}
|
250 |
|
@@ -260,6 +308,11 @@ class Cookie_Notice {
|
|
260 |
icl_register_string( 'Cookie Notice', 'Revoke button text', $this->options['general']['revoke_text'] );
|
261 |
icl_register_string( 'Cookie Notice', 'Privacy policy text', $this->options['general']['see_more_opt']['text'] );
|
262 |
icl_register_string( 'Cookie Notice', 'Custom link', $this->options['general']['see_more_opt']['link'] );
|
|
|
|
|
|
|
|
|
|
|
263 |
}
|
264 |
}
|
265 |
|
@@ -290,44 +343,70 @@ class Cookie_Notice {
|
|
290 |
public function update_notice() {
|
291 |
if ( ! current_user_can( 'install_plugins' ) )
|
292 |
return;
|
293 |
-
|
294 |
-
|
295 |
-
|
296 |
-
//
|
297 |
-
|
298 |
-
|
|
|
299 |
if ( $this->options['general']['update_version'] < $current_update ) {
|
300 |
// check version, if update version is lower than plugin version, set update notice to true
|
301 |
-
$this->options['general'] =
|
302 |
|
303 |
update_option( 'cookie_notice_options', $this->options['general'] );
|
304 |
-
|
305 |
-
// set activation date
|
306 |
-
$activation_date = get_option( 'cookie_notice_activation_date' );
|
307 |
-
|
308 |
-
if ( $activation_date === false )
|
309 |
-
update_option( 'cookie_notice_activation_date', $current_time );
|
310 |
}
|
311 |
-
|
312 |
// display current version notice
|
313 |
if ( $this->options['general']['update_notice'] === true ) {
|
314 |
-
// include notice js, only if needed
|
315 |
-
|
316 |
-
|
317 |
-
|
318 |
-
|
319 |
-
|
320 |
-
|
321 |
-
|
322 |
-
|
323 |
-
|
324 |
-
|
325 |
-
|
326 |
-
|
327 |
-
|
328 |
-
|
329 |
-
|
330 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
331 |
}
|
332 |
}
|
333 |
|
@@ -338,14 +417,14 @@ class Cookie_Notice {
|
|
338 |
* @param string $status
|
339 |
* @param bool $paragraph
|
340 |
*/
|
341 |
-
|
342 |
$this->notices[] = array(
|
343 |
'html' => $html,
|
344 |
'status' => $status,
|
345 |
-
'
|
346 |
);
|
347 |
|
348 |
-
add_action( 'admin_notices', array( $this, 'display_notice') );
|
349 |
}
|
350 |
|
351 |
/**
|
@@ -356,71 +435,47 @@ class Cookie_Notice {
|
|
356 |
public function display_notice() {
|
357 |
foreach( $this->notices as $notice ) {
|
358 |
echo '
|
359 |
-
<div class="' . $notice['status'] . '">
|
360 |
-
' . ( $notice['
|
361 |
' . $notice['html'] . '
|
362 |
-
' . ( $notice['
|
363 |
</div>';
|
364 |
}
|
365 |
}
|
366 |
|
367 |
/**
|
368 |
-
*
|
369 |
-
*
|
370 |
-
* @return mixed
|
371 |
-
*/
|
372 |
-
public function admin_inline_js() {
|
373 |
-
if ( ! current_user_can( 'install_plugins' ) )
|
374 |
-
return;
|
375 |
-
?>
|
376 |
-
<script type="text/javascript">
|
377 |
-
( function ( $ ) {
|
378 |
-
$( document ).ready( function () {
|
379 |
-
// save dismiss state
|
380 |
-
$( '.cn-notice.is-dismissible' ).on( 'click', '.notice-dismiss, .cn-dismissible-notice', function ( e ) {
|
381 |
-
var notice_action = 'hide';
|
382 |
-
|
383 |
-
if ( $( e.currentTarget ).hasClass( 'cn-delay-notice' ) ) {
|
384 |
-
notice_action = 'delay'
|
385 |
-
}
|
386 |
-
|
387 |
-
$.post( ajaxurl, {
|
388 |
-
action: 'cn_dismiss_notice',
|
389 |
-
notice_action: notice_action,
|
390 |
-
url: '<?php echo admin_url( 'admin-ajax.php' ); ?>',
|
391 |
-
nonce: '<?php echo wp_create_nonce( 'cn_dismiss_notice' ); ?>'
|
392 |
-
} );
|
393 |
-
|
394 |
-
$( e.delegateTarget ).slideUp( 'fast' );
|
395 |
-
} );
|
396 |
-
} );
|
397 |
-
} )( jQuery );
|
398 |
-
</script>
|
399 |
-
<?php
|
400 |
-
}
|
401 |
-
|
402 |
-
/**
|
403 |
-
* Dismiss notice.
|
404 |
*/
|
405 |
-
public function
|
406 |
if ( ! current_user_can( 'install_plugins' ) )
|
407 |
return;
|
408 |
|
409 |
if ( wp_verify_nonce( esc_attr( $_REQUEST['nonce'] ), 'cn_dismiss_notice' ) ) {
|
410 |
-
$notice_action = empty( $_REQUEST['notice_action'] ) || $_REQUEST['notice_action'] === '
|
411 |
|
412 |
switch ( $notice_action ) {
|
413 |
// delay notice
|
414 |
case 'delay':
|
415 |
// set delay period to 1 week from now
|
416 |
-
$this->options['general'] =
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
417 |
update_option( 'cookie_notice_options', $this->options['general'] );
|
418 |
break;
|
419 |
|
420 |
// hide notice
|
421 |
default:
|
422 |
-
$this->options['general'] =
|
423 |
-
$this->options['general'] =
|
424 |
|
425 |
update_option( 'cookie_notice_options', $this->options['general'] );
|
426 |
}
|
@@ -428,6 +483,28 @@ class Cookie_Notice {
|
|
428 |
|
429 |
exit;
|
430 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
431 |
|
432 |
/**
|
433 |
* Add new body classes.
|
@@ -557,6 +634,11 @@ class Cookie_Notice {
|
|
557 |
'Privacy policy text' => $this->options['general']['see_more_opt']['text'],
|
558 |
'Custom link' => $this->options['general']['see_more_opt']['link']
|
559 |
);
|
|
|
|
|
|
|
|
|
|
|
560 |
|
561 |
// get query results
|
562 |
$results = $wpdb->get_col( $wpdb->prepare( "SELECT name FROM " . $wpdb->prefix . "icl_strings WHERE context = %s", 'Cookie Notice' ) );
|
@@ -595,7 +677,7 @@ class Cookie_Notice {
|
|
595 |
<div class="wrap">
|
596 |
<h2>' . __( 'Cookie Notice', 'cookie-notice' ) . '</h2>
|
597 |
<div class="cookie-notice-settings">
|
598 |
-
<div class="
|
599 |
<h3 class="hndle">' . __( 'Cookie Notice', 'cookie-notice' ) . ' ' . $this->defaults['version'] . '</h3>
|
600 |
<div class="inside">
|
601 |
<h4 class="inner">' . __( 'Need support?', 'cookie-notice' ) . '</h4>
|
@@ -605,9 +687,7 @@ class Cookie_Notice {
|
|
605 |
<p class="inner">' . sprintf( __( '<a href="%s" target="_blank">Rate it 5</a> on WordPress.org', 'cookie-notice' ), 'https://wordpress.org/support/plugin/cookie-notice/reviews/?filter=5' ) . '<br />' .
|
606 |
sprintf( __( 'Blog about it & link to the <a href="%s" target="_blank">plugin page</a>.', 'cookie-notice' ), 'https://dfactory.eu/plugins/cookie-notice?utm_source=cookie-notice-settings&utm_medium=link&utm_campaign=blog-about' ) . '<br />' .
|
607 |
sprintf( __( 'Check out our other <a href="%s" target="_blank">WordPress plugins</a>.', 'cookie-notice' ), 'https://dfactory.eu/plugins/?utm_source=cookie-notice-settings&utm_medium=link&utm_campaign=other-plugins' ) . '
|
608 |
-
</p>
|
609 |
-
<hr />
|
610 |
-
<p class="df-link inner">Created by <a href="https://dfactory.eu/?utm_source=cookie-notice-settings&utm_medium=link&utm_campaign=created-by" target="_blank" title="dFactory - Quality plugins for WordPress"><img src="' . plugins_url( '/images/logo-dfactory.png', __FILE__ ) . '" title="dFactory - Quality plugins for WordPress" alt="dFactory - Quality plugins for WordPress" /></a></p>
|
611 |
</div>
|
612 |
</div>
|
613 |
<form action="options.php" method="post">';
|
@@ -650,6 +730,12 @@ class Cookie_Notice {
|
|
650 |
add_settings_field( 'cn_script_placement', __( 'Script placement', 'cookie-notice' ), array( $this, 'cn_script_placement' ), 'cookie_notice_options', 'cookie_notice_configuration' );
|
651 |
add_settings_field( 'cn_deactivation_delete', __( 'Deactivation', 'cookie-notice' ), array( $this, 'cn_deactivation_delete' ), 'cookie_notice_options', 'cookie_notice_configuration' );
|
652 |
|
|
|
|
|
|
|
|
|
|
|
|
|
653 |
// design
|
654 |
add_settings_section( 'cookie_notice_design', __( 'Design', 'cookie-notice' ), array( $this, 'cn_section_design' ), 'cookie_notice_options' );
|
655 |
add_settings_field( 'cn_position', __( 'Position', 'cookie-notice' ), array( $this, 'cn_position' ), 'cookie_notice_options', 'cookie_notice_design' );
|
@@ -664,14 +750,62 @@ class Cookie_Notice {
|
|
664 |
*/
|
665 |
public function cn_section_configuration() {}
|
666 |
public function cn_section_design() {}
|
667 |
-
|
|
|
668 |
/**
|
669 |
-
*
|
670 |
*/
|
671 |
-
public function
|
672 |
echo '
|
673 |
<fieldset>
|
674 |
-
<label><input id="
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
675 |
</fieldset>';
|
676 |
}
|
677 |
|
@@ -707,8 +841,8 @@ class Cookie_Notice {
|
|
707 |
public function cn_refuse_opt() {
|
708 |
echo '
|
709 |
<fieldset>
|
710 |
-
<label><input id="cn_refuse_opt" type="checkbox" name="cookie_notice_options[refuse_opt]" value="1" ' . checked(
|
711 |
-
<div id="cn_refuse_opt_container"' . ( $this->options['general']['refuse_opt'] ===
|
712 |
<div id="cn_refuse_text">
|
713 |
<input type="text" class="regular-text" name="cookie_notice_options[refuse_text]" value="' . esc_attr( $this->options['general']['refuse_text'] ) . '" />
|
714 |
<p class="description">' . __( 'The text of the button to refuse the consent.', 'cookie-notice' ) . '</p>
|
@@ -799,8 +933,8 @@ class Cookie_Notice {
|
|
799 |
|
800 |
echo '
|
801 |
<fieldset>
|
802 |
-
<label><input id="cn_see_more" type="checkbox" name="cookie_notice_options[see_more]" value="1" ' . checked(
|
803 |
-
<div id="cn_see_more_opt"' . ($this->options['general']['see_more'] ===
|
804 |
<input type="text" class="regular-text" name="cookie_notice_options[see_more_opt][text]" value="' . esc_attr( $this->options['general']['see_more_opt']['text'] ) . '" />
|
805 |
<p class="description">' . __( 'The text of the privacy policy button.', 'cookie-notice' ) . '</p>
|
806 |
<div id="cn_see_more_opt_custom_link">';
|
@@ -977,8 +1111,8 @@ class Cookie_Notice {
|
|
977 |
public function cn_on_scroll() {
|
978 |
echo '
|
979 |
<fieldset>
|
980 |
-
<label><input id="cn_on_scroll" type="checkbox" name="cookie_notice_options[on_scroll]" value="1" ' . checked(
|
981 |
-
<div id="cn_on_scroll_offset"' . ( $this->options['general']['on_scroll'] ===
|
982 |
<input type="text" class="text" name="cookie_notice_options[on_scroll_offset]" value="' . esc_attr( $this->options['general']['on_scroll_offset'] ) . '" /> <span>px</span>
|
983 |
<p class="description">' . __( 'Number of pixels user has to scroll to accept the notice and make it disappear.', 'cookie-notice' ) . '</p>
|
984 |
</div>
|
@@ -991,7 +1125,17 @@ class Cookie_Notice {
|
|
991 |
public function cn_on_click() {
|
992 |
echo '
|
993 |
<fieldset>
|
994 |
-
<label><input id="cn_on_click" type="checkbox" name="cookie_notice_options[on_click]" value="1" ' . checked(
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
995 |
</fieldset>';
|
996 |
}
|
997 |
|
@@ -1045,6 +1189,13 @@ class Cookie_Notice {
|
|
1045 |
'</div>';
|
1046 |
}
|
1047 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1048 |
echo '
|
1049 |
</fieldset>';
|
1050 |
}
|
@@ -1066,6 +1217,7 @@ class Cookie_Notice {
|
|
1066 |
// colors
|
1067 |
$input['colors']['text'] = sanitize_text_field( isset( $input['colors']['text'] ) && $input['colors']['text'] !== '' && preg_match( '/^#[a-f0-9]{6}$/', $input['colors']['text'] ) === 1 ? $input['colors']['text'] : $this->defaults['general']['colors']['text'] );
|
1068 |
$input['colors']['bar'] = sanitize_text_field( isset( $input['colors']['bar'] ) && $input['colors']['bar'] !== '' && preg_match( '/^#[a-f0-9]{6}$/', $input['colors']['bar'] ) === 1 ? $input['colors']['bar'] : $this->defaults['general']['colors']['bar'] );
|
|
|
1069 |
|
1070 |
// texts
|
1071 |
$input['message_text'] = wp_kses_post( isset( $input['message_text'] ) && $input['message_text'] !== '' ? $input['message_text'] : $this->defaults['general']['message_text'] );
|
@@ -1073,7 +1225,7 @@ class Cookie_Notice {
|
|
1073 |
$input['refuse_text'] = sanitize_text_field( isset( $input['refuse_text'] ) && $input['refuse_text'] !== '' ? $input['refuse_text'] : $this->defaults['general']['refuse_text'] );
|
1074 |
$input['revoke_message_text'] = wp_kses_post( isset( $input['revoke_message_text'] ) && $input['revoke_message_text'] !== '' ? $input['revoke_message_text'] : $this->defaults['general']['revoke_message_text'] );
|
1075 |
$input['revoke_text'] = sanitize_text_field( isset( $input['revoke_text'] ) && $input['revoke_text'] !== '' ? $input['revoke_text'] : $this->defaults['general']['revoke_text'] );
|
1076 |
-
$input['refuse_opt'] = (bool) isset( $input['refuse_opt'] )
|
1077 |
$input['revoke_cookies'] = isset( $input['revoke_cookies'] );
|
1078 |
$input['revoke_cookies_opt'] = isset( $input['revoke_cookies_opt'] ) && array_key_exists( $input['revoke_cookies_opt'], $this->revoke_opts ) ? $input['revoke_cookies_opt'] : $this->defaults['general']['revoke_cookies_opt'];
|
1079 |
|
@@ -1095,13 +1247,6 @@ class Cookie_Notice {
|
|
1095 |
// link target
|
1096 |
$input['link_target'] = sanitize_text_field( isset( $input['link_target'] ) && in_array( $input['link_target'], array_keys( $this->link_targets ) ) ? $input['link_target'] : $this->defaults['general']['link_target'] );
|
1097 |
|
1098 |
-
// link target
|
1099 |
-
$input['link_position'] = sanitize_text_field( isset( $input['link_position'] ) && in_array( $input['link_position'], array_keys( $this->link_positions ) ) ? $input['link_position'] : $this->defaults['general']['link_position'] );
|
1100 |
-
|
1101 |
-
// message link position?
|
1102 |
-
if ( $input['link_position'] === 'message' && strpos( $input['message_text'], '[cookies_policy_link' ) === false )
|
1103 |
-
$input['message_text'] .= ' [cookies_policy_link]';
|
1104 |
-
|
1105 |
// time
|
1106 |
$input['time'] = sanitize_text_field( isset( $input['time'] ) && in_array( $input['time'], array_keys( $this->times ) ) ? $input['time'] : $this->defaults['general']['time'] );
|
1107 |
$input['time_rejected'] = sanitize_text_field( isset( $input['time_rejected'] ) && in_array( $input['time_rejected'], array_keys( $this->times ) ) ? $input['time_rejected'] : $this->defaults['general']['time_rejected'] );
|
@@ -1116,32 +1261,55 @@ class Cookie_Notice {
|
|
1116 |
$input['redirection'] = isset( $input['redirection'] );
|
1117 |
|
1118 |
// on scroll
|
1119 |
-
$input['on_scroll'] =
|
1120 |
|
1121 |
// on scroll offset
|
1122 |
$input['on_scroll_offset'] = absint( isset( $input['on_scroll_offset'] ) && $input['on_scroll_offset'] !== '' ? $input['on_scroll_offset'] : $this->defaults['general']['on_scroll_offset'] );
|
1123 |
|
1124 |
// on click
|
1125 |
-
$input['on_click'] =
|
1126 |
|
1127 |
// deactivation
|
1128 |
-
$input['deactivation_delete'] =
|
1129 |
|
1130 |
// privacy policy
|
1131 |
-
$input['see_more'] =
|
1132 |
$input['see_more_opt']['text'] = sanitize_text_field( isset( $input['see_more_opt']['text'] ) && $input['see_more_opt']['text'] !== '' ? $input['see_more_opt']['text'] : $this->defaults['general']['see_more_opt']['text'] );
|
1133 |
$input['see_more_opt']['link_type'] = sanitize_text_field( isset( $input['see_more_opt']['link_type'] ) && in_array( $input['see_more_opt']['link_type'], array_keys( $this->links ) ) ? $input['see_more_opt']['link_type'] : $this->defaults['general']['see_more_opt']['link_type'] );
|
1134 |
|
1135 |
if ( $input['see_more_opt']['link_type'] === 'custom' )
|
1136 |
-
$input['see_more_opt']['link'] = esc_url( $input['see_more'] ===
|
1137 |
elseif ( $input['see_more_opt']['link_type'] === 'page' ) {
|
1138 |
-
$input['see_more_opt']['id'] = ( $input['see_more'] ===
|
1139 |
$input['see_more_opt']['sync'] = isset( $input['see_more_opt']['sync'] );
|
1140 |
|
1141 |
if ( $input['see_more_opt']['sync'] )
|
1142 |
update_option( 'wp_page_for_privacy_policy', $input['see_more_opt']['id'] );
|
1143 |
}
|
|
|
|
|
|
|
1144 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1145 |
$input['update_version'] = $this->options['general']['update_version'];
|
1146 |
$input['update_notice'] = $this->options['general']['update_notice'];
|
1147 |
|
@@ -1220,7 +1388,10 @@ class Cookie_Notice {
|
|
1220 |
'aria_label' => __( 'Cookie Notice', 'cookie-notice' )
|
1221 |
) );
|
1222 |
|
1223 |
-
|
|
|
|
|
|
|
1224 |
$options['message_text'] = do_shortcode( wp_kses_post( $options['message_text'] ) );
|
1225 |
else
|
1226 |
$options['message_text'] = wp_kses_post( $options['message_text'] );
|
@@ -1230,15 +1401,15 @@ class Cookie_Notice {
|
|
1230 |
// message output
|
1231 |
$output = '
|
1232 |
<!-- Cookie Notice plugin v' . $this->defaults['version'] . ' by Digital Factory https://dfactory.eu/ -->
|
1233 |
-
<div id="cookie-notice" role="banner" class="cookie-notice-hidden cookie-revoke-hidden cn-position-' . $options['position'] . '" aria-label="' . $options['aria_label'] . '" style="background-color: ' . $options['colors']['bar'] . ';">'
|
1234 |
. '<div class="cookie-notice-container" style="color: ' . $options['colors']['text'] . ';">'
|
1235 |
. '<span id="cn-notice-text" class="cn-text-container">'. $options['message_text'] . '</span>'
|
1236 |
. '<span id="cn-notice-buttons" class="cn-buttons-container"><a href="#" id="cn-accept-cookie" data-cookie-set="accept" class="cn-set-cookie ' . $options['button_class'] . ( $options['css_style'] !== 'none' ? ' ' . $options['css_style'] : '' ) . ( $options['css_class'] !== '' ? ' ' . $options['css_class'] : '' ) . '">' . $options['accept_text'] . '</a>'
|
1237 |
-
. ( $options['refuse_opt'] ===
|
1238 |
-
. ( $options['see_more'] ===
|
1239 |
-
. '</span
|
1240 |
. '</div>
|
1241 |
-
' . ( $options['refuse_opt'] ===
|
1242 |
'<div class="cookie-revoke-container" style="color: ' . $options['colors']['text'] . ';">'
|
1243 |
. ( ! empty( $options['revoke_message_text'] ) ? '<span id="cn-revoke-text" class="cn-text-container">'. $options['revoke_message_text'] . '</span>' : '' )
|
1244 |
. '<span id="cn-revoke-buttons" class="cn-buttons-container"><a href="#" class="cn-revoke-cookie ' . $options['button_class'] . ( $options['css_style'] !== 'none' ? ' ' . $options['css_style'] : '' ) . ( $options['css_class'] !== '' ? ' ' . $options['css_class'] : '' ) . '">' . esc_html( $options['revoke_text'] ) . '</a></span>
|
@@ -1334,9 +1505,10 @@ class Cookie_Notice {
|
|
1334 |
* Deactivate the plugin.
|
1335 |
*/
|
1336 |
public function deactivation() {
|
1337 |
-
if ( $this->options['general']['deactivation_delete'] ===
|
1338 |
delete_option( 'cookie_notice_options' );
|
1339 |
delete_option( 'cookie_notice_version' );
|
|
|
1340 |
}
|
1341 |
|
1342 |
// remove WP Super Cache cookie
|
@@ -1407,27 +1579,68 @@ class Cookie_Notice {
|
|
1407 |
'cookie-notice-front',
|
1408 |
'cnArgs',
|
1409 |
array(
|
1410 |
-
'
|
|
|
1411 |
'hideEffect' => $this->options['general']['hide_effect'],
|
1412 |
-
'
|
1413 |
-
'
|
1414 |
-
'
|
|
|
1415 |
'cookieName' => 'cookie_notice_accepted',
|
1416 |
'cookieTime' => $this->times[$this->options['general']['time']][1],
|
1417 |
-
'cookieTimeRejected'
|
1418 |
'cookiePath' => ( defined( 'COOKIEPATH' ) ? (string) COOKIEPATH : '' ),
|
1419 |
'cookieDomain' => ( defined( 'COOKIE_DOMAIN' ) ? (string) COOKIE_DOMAIN : '' ),
|
1420 |
-
'redirection' => $this->options['general']['redirection'],
|
1421 |
-
'cache' => defined( 'WP_CACHE' ) && WP_CACHE,
|
1422 |
-
'refuse' => $this->options['general']['refuse_opt'],
|
1423 |
-
'
|
1424 |
-
'
|
1425 |
-
'secure' => (int) is_ssl()
|
|
|
1426 |
)
|
1427 |
);
|
1428 |
|
1429 |
wp_enqueue_style( 'cookie-notice-front', plugins_url( 'css/front' . ( ! ( defined( 'SCRIPT_DEBUG' ) && SCRIPT_DEBUG ) ? '.min' : '' ) . '.css', __FILE__ ) );
|
1430 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1431 |
|
1432 |
/**
|
1433 |
* Print non functional JavaScript in body.
|
@@ -1454,9 +1667,142 @@ class Cookie_Notice {
|
|
1454 |
|
1455 |
if ( ! empty( $scripts ) )
|
1456 |
echo $scripts;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1457 |
}
|
|
|
|
|
1458 |
}
|
1459 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1460 |
/**
|
1461 |
* Indicate if current page is the Cookie Policy page
|
1462 |
*
|
2 |
/*
|
3 |
Plugin Name: Cookie Notice
|
4 |
Description: Cookie Notice allows you to elegantly inform users that your site uses cookies and helps you comply with the EU GDPR cookie law and CCPA regulations.
|
5 |
+
Version: 1.3.0
|
6 |
Author: dFactory
|
7 |
Author URI: http://www.dfactory.eu/
|
8 |
Plugin URI: http://www.dfactory.eu/plugins/cookie-notice/
|
29 |
* Cookie Notice class.
|
30 |
*
|
31 |
* @class Cookie_Notice
|
32 |
+
* @version 1.3.0
|
33 |
*/
|
34 |
class Cookie_Notice {
|
35 |
|
41 |
'position' => 'bottom',
|
42 |
'message_text' => '',
|
43 |
'css_style' => 'bootstrap',
|
44 |
+
'css_class' => '',
|
45 |
'accept_text' => '',
|
46 |
'refuse_text' => '',
|
47 |
+
'refuse_opt' => false,
|
48 |
'refuse_code' => '',
|
49 |
'refuse_code_head' => '',
|
50 |
'revoke_cookies' => false,
|
52 |
'revoke_message_text' => '',
|
53 |
'revoke_text' => '',
|
54 |
'redirection' => false,
|
55 |
+
'see_more' => false,
|
56 |
'link_target' => '_blank',
|
57 |
'link_position' => 'banner',
|
58 |
'time' => 'month',
|
62 |
'on_scroll_offset' => 100,
|
63 |
'on_click' => false,
|
64 |
'colors' => array(
|
65 |
+
'text' => '#fff',
|
66 |
+
'bar' => '#000',
|
67 |
+
'bar_opacity' => 80
|
68 |
),
|
69 |
'see_more_opt' => array(
|
70 |
'text' => '',
|
73 |
'link' => '',
|
74 |
'sync' => false
|
75 |
),
|
76 |
+
'script_placement' => 'header',
|
77 |
+
'coronabar' => false, // disabled by default
|
78 |
+
'coronabar_cases' => true,
|
79 |
+
'coronabar_texts' => false,
|
80 |
+
'coronabar_text_strings' => array(
|
81 |
+
'headline' => 'Spread the message. Stop the virus.',
|
82 |
+
'step_one_title' => 'Hands', // string
|
83 |
+
'step_one_desc' => 'Wash often', // string
|
84 |
+
'step_two_title' => 'Elbow', // string
|
85 |
+
'step_two_desc' => 'Cough into', // string
|
86 |
+
'step_three_title' => 'Face', // string
|
87 |
+
'step_three_desc' => 'Don\'t touch', // string
|
88 |
+
'step_four_title' => 'Space', // string
|
89 |
+
'step_four_desc' => 'Avoid crowds', // string
|
90 |
+
'step_five_title' => 'Home', // string
|
91 |
+
'step_five_desc' => 'Stay inside', // string
|
92 |
+
'confirmed' => 'Confirmed', // string
|
93 |
+
'recovered' => 'Recovered', // string
|
94 |
+
),
|
95 |
+
'translate' => true,
|
96 |
+
'deactivation_delete' => false,
|
97 |
+
'update_version' => 2,
|
98 |
+
'update_notice' => true,
|
99 |
+
'update_delay_date' => 0
|
100 |
),
|
101 |
+
'version' => '1.3.0'
|
102 |
);
|
103 |
private $positions = array();
|
104 |
private $styles = array();
|
141 |
public function __construct() {
|
142 |
register_activation_hook( __FILE__, array( $this, 'activation' ) );
|
143 |
register_deactivation_hook( __FILE__, array( $this, 'deactivation' ) );
|
144 |
+
|
145 |
+
// get options
|
146 |
+
$options = get_option( 'cookie_notice_options', $this->defaults['general'] );
|
147 |
|
148 |
+
// check legacy parameters
|
149 |
+
$options = $this->check_legacy_params( $options, array( 'refuse_opt', 'on_scroll', 'on_click', 'deactivation_delete', 'see_more' ) );
|
150 |
+
|
151 |
+
// merge old options with new ones
|
152 |
$this->options = array(
|
153 |
+
'general' => $this->multi_array_merge( $this->defaults['general'], $options )
|
154 |
);
|
155 |
|
156 |
if ( ! isset( $this->options['general']['see_more_opt']['sync'] ) )
|
166 |
add_action( 'after_setup_theme', array( $this, 'load_defaults' ) );
|
167 |
add_action( 'admin_enqueue_scripts', array( $this, 'admin_enqueue_scripts' ) );
|
168 |
add_action( 'wp_enqueue_scripts', array( $this, 'wp_enqueue_scripts' ) );
|
169 |
+
add_action( 'wp_head', array( $this, 'wp_head_corona' ) );
|
170 |
add_action( 'wp_head', array( $this, 'wp_print_header_scripts' ) );
|
171 |
add_action( 'wp_print_footer_scripts', array( $this, 'wp_print_footer_scripts' ) );
|
172 |
add_action( 'wp_footer', array( $this, 'add_cookie_notice' ), 1000 );
|
173 |
+
add_action( 'wp_ajax_cn_dismiss_notice', array( $this, 'ajax_dismiss_admin_notice' ) );
|
174 |
+
add_action( 'wp_ajax_cn_save_cases', array( $this, 'ajax_save_cases' ) );
|
175 |
+
add_action( 'wp_ajax_nopriv_cn_save_cases', array( $this, 'ajax_save_cases' ) );
|
176 |
|
177 |
// filters
|
178 |
add_filter( 'plugin_row_meta', array( $this, 'plugin_row_meta' ), 10, 2 );
|
261 |
$this->defaults['general']['revoke_message_text'] = __( 'You can revoke your consent any time using the Revoke consent button.', 'cookie-notice' );
|
262 |
$this->defaults['general']['revoke_text'] = __( 'Revoke consent', 'cookie-notice' );
|
263 |
$this->defaults['general']['see_more_opt']['text'] = __( 'Privacy policy', 'cookie-notice' );
|
264 |
+
|
265 |
+
// set default coronabar text strings
|
266 |
+
$this->defaults['general']['coronabar_text_strings']['headline'] = __( 'Spread the message. Stop the virus.', 'cookie-notice' );
|
267 |
+
$this->defaults['general']['coronabar_text_strings']['step_one_title'] = __( 'Hands', 'cookie-notice' );
|
268 |
+
$this->defaults['general']['coronabar_text_strings']['step_one_desc'] = __( 'Wash often', 'cookie-notice' );
|
269 |
+
$this->defaults['general']['coronabar_text_strings']['step_two_title'] = __( 'Elbow', 'cookie-notice' );
|
270 |
+
$this->defaults['general']['coronabar_text_strings']['step_two_desc'] = __( 'Cough into', 'cookie-notice' );
|
271 |
+
$this->defaults['general']['coronabar_text_strings']['step_three_title'] = __( 'Face', 'cookie-notice' );
|
272 |
+
$this->defaults['general']['coronabar_text_strings']['step_three_desc'] = __( 'Don\'t touch', 'cookie-notice' );
|
273 |
+
$this->defaults['general']['coronabar_text_strings']['step_four_title'] = __( 'Space', 'cookie-notice' );
|
274 |
+
$this->defaults['general']['coronabar_text_strings']['step_four_desc'] = __( 'Avoid crowds', 'cookie-notice' );
|
275 |
+
$this->defaults['general']['coronabar_text_strings']['step_five_title'] = __( 'Home', 'cookie-notice' );
|
276 |
+
$this->defaults['general']['coronabar_text_strings']['step_five_desc'] = __( 'Stay inside', 'cookie-notice' );
|
277 |
+
$this->defaults['general']['coronabar_text_strings']['confirmed'] = __( 'Confirmed', 'cookie-notice' );
|
278 |
+
$this->defaults['general']['coronabar_text_strings']['recovered'] = __( 'Recovered', 'cookie-notice' );
|
279 |
+
|
280 |
+
// set translation strings on plugin activation
|
281 |
if ( $this->options['general']['translate'] === true ) {
|
282 |
$this->options['general']['translate'] = false;
|
283 |
|
288 |
$this->options['general']['revoke_text'] = $this->defaults['general']['revoke_text'];
|
289 |
$this->options['general']['see_more_opt']['text'] = $this->defaults['general']['see_more_opt']['text'];
|
290 |
|
291 |
+
// coronabar strings
|
292 |
+
foreach ( $this->defaults['general']['coronabar_text_strings'] as $key => $label ) {
|
293 |
+
$this->options['general']['coronabar_text_strings'][$key] = $this->defaults['general']['coronabar_text_strings'][$key];
|
294 |
+
}
|
295 |
+
|
296 |
update_option( 'cookie_notice_options', $this->options['general'] );
|
297 |
}
|
298 |
|
308 |
icl_register_string( 'Cookie Notice', 'Revoke button text', $this->options['general']['revoke_text'] );
|
309 |
icl_register_string( 'Cookie Notice', 'Privacy policy text', $this->options['general']['see_more_opt']['text'] );
|
310 |
icl_register_string( 'Cookie Notice', 'Custom link', $this->options['general']['see_more_opt']['link'] );
|
311 |
+
|
312 |
+
// coronabar strings
|
313 |
+
foreach ( $this->defaults['general']['coronabar_text_strings'] as $key => $label ) {
|
314 |
+
icl_register_string( 'Cookie Notice', $key, $this->options['general']['coronabar_text_strings'][$key] );
|
315 |
+
}
|
316 |
}
|
317 |
}
|
318 |
|
343 |
public function update_notice() {
|
344 |
if ( ! current_user_can( 'install_plugins' ) )
|
345 |
return;
|
346 |
+
|
347 |
+
// test only
|
348 |
+
// $this->options['general'] = wp_parse_args( array( 'update_version' => 2, 'update_notice' => true ), $this->options['general'] );
|
349 |
+
// update_option( 'cookie_notice_options', $this->options['general'] );
|
350 |
+
|
351 |
+
$current_update = 3;
|
352 |
+
|
353 |
if ( $this->options['general']['update_version'] < $current_update ) {
|
354 |
// check version, if update version is lower than plugin version, set update notice to true
|
355 |
+
$this->options['general'] = wp_parse_args( array( 'update_version' => $current_update, 'update_notice' => true ), $this->options['general'] );
|
356 |
|
357 |
update_option( 'cookie_notice_options', $this->options['general'] );
|
|
|
|
|
|
|
|
|
|
|
|
|
358 |
}
|
359 |
+
|
360 |
// display current version notice
|
361 |
if ( $this->options['general']['update_notice'] === true ) {
|
362 |
+
// include notice js and css, only if needed
|
363 |
+
wp_enqueue_script(
|
364 |
+
'cookie-notice-admin-notice', plugins_url( 'js/admin-notice' . ( ! ( defined( 'SCRIPT_DEBUG' ) && SCRIPT_DEBUG ) ? '.min' : '' ) . '.js', __FILE__ ), array( 'jquery' ), $this->defaults['version']
|
365 |
+
);
|
366 |
+
wp_localize_script(
|
367 |
+
'cookie-notice-admin-notice', 'cnArgsNotice', array(
|
368 |
+
'ajaxUrl' => admin_url( 'admin-ajax.php' ),
|
369 |
+
'nonce' => wp_create_nonce( 'cn_dismiss_notice' )
|
370 |
+
)
|
371 |
+
);
|
372 |
+
wp_enqueue_style( 'cookie-notice-admin-notice', plugins_url( 'css/admin-notice' . ( ! ( defined( 'SCRIPT_DEBUG' ) && SCRIPT_DEBUG ) ? '.min' : '' ) . '.css', __FILE__ ) );
|
373 |
+
|
374 |
+
$notice_html =
|
375 |
+
'<div class="cn-notice-icon"><span></span></div>' .
|
376 |
+
'<div class="cn-notice-steps">' .
|
377 |
+
'<div class="cn-notice-step step-choice">' .
|
378 |
+
'<div class="cn-notice-actions">' .
|
379 |
+
'<a href="javascript:void(0);" class="cn-notice-dismiss cn-approve button button-primary" rel="noopener">' . __( 'Yes, I want to help', 'cookie-notice' ) . '</a><br /><a href="javascript:void(0);" class="cn-notice-dismiss button button-secondary" rel="noopener">' . __( 'No, thanks', 'cookie-notice' ) . '</a>' .
|
380 |
+
'</div>' .
|
381 |
+
'<div class="cn-notice-text">' .
|
382 |
+
'<h3>' . __( 'Help to slow the spread of the Coronavirus.', 'cookie-notice' ) . '</h3>' .
|
383 |
+
'<p>' . __( 'Join 1+ million WordPress admins who are adding the Corona Banner to their websites using the Cookie Notice plugin.', 'cookie-notice' ) . ' ' . __( 'The Corona Banner displays data about Coronavirus pandemia and <strong>five steps recommended by the WHO (World Health Organization)</strong> to help flatten the Coronavirus curve.', 'cookie-notice' ) . '</p>' .
|
384 |
+
'<p>' . __( 'Thank you and <em>#stayhome</em>', 'cookie-notice' ) . '</p>' .
|
385 |
+
'</div>' .
|
386 |
+
'</div>' .
|
387 |
+
/*
|
388 |
+
'<div class="cn-notice-step step-yes">' .
|
389 |
+
'<div class="cn-notice-actions">' .
|
390 |
+
'<a href="javascript:void(0);" class="cn-notice-dismiss button button-secondary" rel="noopener">' . __( 'Close', 'cookie-notice' ) . '</a>' .
|
391 |
+
'</div>' .
|
392 |
+
'<div class="cn-notice-text">' .
|
393 |
+
'<h3>' . __( 'Step Yes', 'cookie-notice' ) . '</h3>' .
|
394 |
+
'<p>' . __( 'Join 1+ million WordPress admins who are adding the Corona Banner to their websites using the Cookie Notice plugin.', 'cookie-notice' ) . '</p>' .
|
395 |
+
'</div>' .
|
396 |
+
'</div>' .
|
397 |
+
'<div class="cn-notice-step step-no">' .
|
398 |
+
'<div class="cn-notice-actions">' .
|
399 |
+
'<a href="javascript:void(0);" class="cn-notice-dismiss button button-secondary" rel="noopener">' . __( 'Close', 'cookie-notice' ) . '</a>' .
|
400 |
+
'</div>' .
|
401 |
+
'<div class="cn-notice-text">' .
|
402 |
+
'<h3>' . __( 'Step No', 'cookie-notice' ) . '</h3>' .
|
403 |
+
'<p>' . __( 'Join 1+ million WordPress admins who are adding the Corona Banner to their websites using the Cookie Notice plugin.', 'cookie-notice' ) . '</p>' .
|
404 |
+
'</div>' .
|
405 |
+
'</div>' .
|
406 |
+
*/
|
407 |
+
'</div>';
|
408 |
+
|
409 |
+
$this->add_notice( $notice_html, 'notice is-dismissible coronabar-notice', 'div' );
|
410 |
}
|
411 |
}
|
412 |
|
417 |
* @param string $status
|
418 |
* @param bool $paragraph
|
419 |
*/
|
420 |
+
private function add_notice( $html = '', $status = 'error', $container = '' ) {
|
421 |
$this->notices[] = array(
|
422 |
'html' => $html,
|
423 |
'status' => $status,
|
424 |
+
'container' => ( ! empty( $container ) && in_array( $container, array( 'p', 'div' ) ) ? $container : '' )
|
425 |
);
|
426 |
|
427 |
+
add_action( 'admin_notices', array( $this, 'display_notice'), 0 );
|
428 |
}
|
429 |
|
430 |
/**
|
435 |
public function display_notice() {
|
436 |
foreach( $this->notices as $notice ) {
|
437 |
echo '
|
438 |
+
<div class="cn-notice ' . $notice['status'] . '">
|
439 |
+
' . ( ! empty( $notice['container'] ) ? '<' . $notice['container'] . ' class="cn-notice-container">' : '' ) . '
|
440 |
' . $notice['html'] . '
|
441 |
+
' . ( ! empty( $notice['container'] ) ? '</' . $notice['container'] . ' class="cn-notice-container">' : '' ) . '
|
442 |
</div>';
|
443 |
}
|
444 |
}
|
445 |
|
446 |
/**
|
447 |
+
* Dismiss admin notice.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
448 |
*/
|
449 |
+
public function ajax_dismiss_admin_notice() {
|
450 |
if ( ! current_user_can( 'install_plugins' ) )
|
451 |
return;
|
452 |
|
453 |
if ( wp_verify_nonce( esc_attr( $_REQUEST['nonce'] ), 'cn_dismiss_notice' ) ) {
|
454 |
+
$notice_action = empty( $_REQUEST['notice_action'] ) || $_REQUEST['notice_action'] === 'dismiss' ? 'dismiss' : esc_attr( $_REQUEST['notice_action'] );
|
455 |
|
456 |
switch ( $notice_action ) {
|
457 |
// delay notice
|
458 |
case 'delay':
|
459 |
// set delay period to 1 week from now
|
460 |
+
$this->options['general'] = wp_parse_args( array( 'update_delay_date' => time() + 1209600 ), $this->options['general'] );
|
461 |
+
update_option( 'cookie_notice_options', $this->options['general'] );
|
462 |
+
break;
|
463 |
+
|
464 |
+
// delay notice
|
465 |
+
case 'approve':
|
466 |
+
// enable coronabar
|
467 |
+
$this->options['general'] = wp_parse_args( array( 'coronabar' => true), $this->options['general'] );
|
468 |
+
// hide notice
|
469 |
+
$this->options['general'] = wp_parse_args( array( 'update_notice' => false ), $this->options['general'] );
|
470 |
+
$this->options['general'] = wp_parse_args( array( 'update_delay_date' => 0 ), $this->options['general'] );
|
471 |
+
// update options
|
472 |
update_option( 'cookie_notice_options', $this->options['general'] );
|
473 |
break;
|
474 |
|
475 |
// hide notice
|
476 |
default:
|
477 |
+
$this->options['general'] = wp_parse_args( array( 'update_notice' => false ), $this->options['general'] );
|
478 |
+
$this->options['general'] = wp_parse_args( array( 'update_delay_date' => 0 ), $this->options['general'] );
|
479 |
|
480 |
update_option( 'cookie_notice_options', $this->options['general'] );
|
481 |
}
|
483 |
|
484 |
exit;
|
485 |
}
|
486 |
+
|
487 |
+
/**
|
488 |
+
* Save corona cases locally for caching.
|
489 |
+
*/
|
490 |
+
public function ajax_save_cases() {
|
491 |
+
// check if the bar is enabled
|
492 |
+
if ( ! $this->options['general']['coronabar'] )
|
493 |
+
return;
|
494 |
+
|
495 |
+
if ( ! wp_verify_nonce( esc_attr( $_REQUEST['nonce'] ), 'cn_save_cases' ) )
|
496 |
+
return;
|
497 |
+
|
498 |
+
$json_data = ! empty( $_REQUEST['data'] ) ? esc_attr( $_REQUEST['data'] ) : false;
|
499 |
+
$cases_data = array();
|
500 |
+
|
501 |
+
if ( ! empty( $json_data ) )
|
502 |
+
$cases_data = json_decode( stripslashes( html_entity_decode( $json_data ) ), true );
|
503 |
+
|
504 |
+
// save data
|
505 |
+
if ( $cases_data && is_array( $cases_data ) )
|
506 |
+
update_option( 'cookie_notice_coronadata', $cases_data, true );
|
507 |
+
}
|
508 |
|
509 |
/**
|
510 |
* Add new body classes.
|
634 |
'Privacy policy text' => $this->options['general']['see_more_opt']['text'],
|
635 |
'Custom link' => $this->options['general']['see_more_opt']['link']
|
636 |
);
|
637 |
+
|
638 |
+
// coronabar strings
|
639 |
+
foreach ( $this->defaults['general']['coronabar_text_strings'] as $key => $label ) {
|
640 |
+
$strings[$key] = $this->options['general']['coronabar_text_strings'];
|
641 |
+
}
|
642 |
|
643 |
// get query results
|
644 |
$results = $wpdb->get_col( $wpdb->prepare( "SELECT name FROM " . $wpdb->prefix . "icl_strings WHERE context = %s", 'Cookie Notice' ) );
|
677 |
<div class="wrap">
|
678 |
<h2>' . __( 'Cookie Notice', 'cookie-notice' ) . '</h2>
|
679 |
<div class="cookie-notice-settings">
|
680 |
+
<div class="cookie-notice-credits">
|
681 |
<h3 class="hndle">' . __( 'Cookie Notice', 'cookie-notice' ) . ' ' . $this->defaults['version'] . '</h3>
|
682 |
<div class="inside">
|
683 |
<h4 class="inner">' . __( 'Need support?', 'cookie-notice' ) . '</h4>
|
687 |
<p class="inner">' . sprintf( __( '<a href="%s" target="_blank">Rate it 5</a> on WordPress.org', 'cookie-notice' ), 'https://wordpress.org/support/plugin/cookie-notice/reviews/?filter=5' ) . '<br />' .
|
688 |
sprintf( __( 'Blog about it & link to the <a href="%s" target="_blank">plugin page</a>.', 'cookie-notice' ), 'https://dfactory.eu/plugins/cookie-notice?utm_source=cookie-notice-settings&utm_medium=link&utm_campaign=blog-about' ) . '<br />' .
|
689 |
sprintf( __( 'Check out our other <a href="%s" target="_blank">WordPress plugins</a>.', 'cookie-notice' ), 'https://dfactory.eu/plugins/?utm_source=cookie-notice-settings&utm_medium=link&utm_campaign=other-plugins' ) . '
|
690 |
+
</p>
|
|
|
|
|
691 |
</div>
|
692 |
</div>
|
693 |
<form action="options.php" method="post">';
|
730 |
add_settings_field( 'cn_script_placement', __( 'Script placement', 'cookie-notice' ), array( $this, 'cn_script_placement' ), 'cookie_notice_options', 'cookie_notice_configuration' );
|
731 |
add_settings_field( 'cn_deactivation_delete', __( 'Deactivation', 'cookie-notice' ), array( $this, 'cn_deactivation_delete' ), 'cookie_notice_options', 'cookie_notice_configuration' );
|
732 |
|
733 |
+
// coronabar
|
734 |
+
add_settings_section( 'cookie_notice_coronabar', __( 'Corona Banner', 'cookie-notice' ), array( $this, 'cn_section_coronabar' ), 'cookie_notice_options' );
|
735 |
+
add_settings_field( 'cn_coronabar', __( 'Display', 'cookie-notice' ), array( $this, 'cn_coronabar' ), 'cookie_notice_options', 'cookie_notice_coronabar' );
|
736 |
+
add_settings_field( 'cn_coronabar_cases', __( 'Current cases', 'cookie-notice' ), array( $this, 'cn_coronabar_cases' ), 'cookie_notice_options', 'cookie_notice_coronabar' );
|
737 |
+
add_settings_field( 'cn_coronabar_texts', __( 'Text strings', 'cookie-notice' ), array( $this, 'cn_coronabar_texts' ), 'cookie_notice_options', 'cookie_notice_coronabar' );
|
738 |
+
|
739 |
// design
|
740 |
add_settings_section( 'cookie_notice_design', __( 'Design', 'cookie-notice' ), array( $this, 'cn_section_design' ), 'cookie_notice_options' );
|
741 |
add_settings_field( 'cn_position', __( 'Position', 'cookie-notice' ), array( $this, 'cn_position' ), 'cookie_notice_options', 'cookie_notice_design' );
|
750 |
*/
|
751 |
public function cn_section_configuration() {}
|
752 |
public function cn_section_design() {}
|
753 |
+
public function cn_section_coronabar() {}
|
754 |
+
|
755 |
/**
|
756 |
+
* Display Corona Banner option.
|
757 |
*/
|
758 |
+
public function cn_coronabar() {
|
759 |
echo '
|
760 |
<fieldset>
|
761 |
+
<label><input id="cn_coronabar" type="checkbox" name="cookie_notice_options[coronabar]" value="1" ' . checked( true, $this->options['general']['coronabar'], false ) . '/>' . __( 'Enable to display the Corona Banner.', 'cookie-notice' ) . '</label>
|
762 |
+
<p class="description">' . __( 'The Corona Banner displays data about Coronavirus pandemia and <strong>five steps recommended by the WHO (World Health Organization)</strong> to help flatten the Coronavirus curve.', 'cookie-notice' ) . '</p>
|
763 |
+
</fieldset>';
|
764 |
+
}
|
765 |
+
|
766 |
+
/**
|
767 |
+
* Display current cases option.
|
768 |
+
*/
|
769 |
+
public function cn_coronabar_cases() {
|
770 |
+
echo '
|
771 |
+
<fieldset>
|
772 |
+
<label><input id="cn_coronabar_cases" type="checkbox" name="cookie_notice_options[coronabar_cases]" value="1" ' . checked( true, $this->options['general']['coronabar_cases'], false ) . '/>' . __( 'Display information about current cases.', 'cookie-notice' ) . '</label>
|
773 |
+
<p class="description">' . __( 'Provides up-to-date data about Coronavirus confirmed and recovered cases.', 'cookie-notice' ) . '</p>
|
774 |
+
</fieldset>';
|
775 |
+
}
|
776 |
+
|
777 |
+
/**
|
778 |
+
* Coronabar text strings.
|
779 |
+
*/
|
780 |
+
public function cn_coronabar_texts() {
|
781 |
+
$descriptions = array(
|
782 |
+
'headline' => __( 'Headline message', 'cookie-notice' ),
|
783 |
+
'recovered' => __( 'Current cases text strings', 'cookie-notice' ),
|
784 |
+
'step_one_desc' => __( 'Recommendation One', 'cookie-notice' ),
|
785 |
+
'step_two_desc' => __( 'Recommendation Two', 'cookie-notice' ),
|
786 |
+
'step_three_desc' => __( 'Recommendation Three', 'cookie-notice' ),
|
787 |
+
'step_four_desc' => __( 'Recommendation Four', 'cookie-notice' ),
|
788 |
+
'step_five_desc' => __( 'Recommendation Five', 'cookie-notice' )
|
789 |
+
);
|
790 |
+
|
791 |
+
echo '
|
792 |
+
<fieldset>
|
793 |
+
<label><input id="cn_coronabar_texts" type="checkbox" name="cookie_notice_options[coronabar_texts]" value="1" ' . checked( true, $this->options['general']['coronabar_texts'], false ) . ' />' . __( 'Enable if you\'d like to adjust the Corona Banner text strings.', 'cookie-notice' ) . '</label>
|
794 |
+
<div id="cn_coronabar_text_strings"' . ( $this->options['general']['coronabar_texts'] === false ? ' style="display: none;"' : '' ) . '>';
|
795 |
+
foreach ( $this->defaults['general']['coronabar_text_strings'] as $key => $label ) {
|
796 |
+
echo '
|
797 |
+
<span class="cn_coronabar_text_string">
|
798 |
+
<input type="text" class="regular-text" name="cookie_notice_options[coronabar_text_strings][' . $key .']" value="' . esc_html( $this->options['general']['coronabar_text_strings'][$key] ) . '" />
|
799 |
+
</span>';
|
800 |
+
|
801 |
+
// display description
|
802 |
+
if ( array_key_exists( $key, $descriptions ) ) {
|
803 |
+
echo '
|
804 |
+
<p class="description">' . $descriptions[$key] . '</p>';
|
805 |
+
}
|
806 |
+
}
|
807 |
+
echo '
|
808 |
+
</div>
|
809 |
</fieldset>';
|
810 |
}
|
811 |
|
841 |
public function cn_refuse_opt() {
|
842 |
echo '
|
843 |
<fieldset>
|
844 |
+
<label><input id="cn_refuse_opt" type="checkbox" name="cookie_notice_options[refuse_opt]" value="1" ' . checked( true, $this->options['general']['refuse_opt'], false ) . ' />' . __( 'Enable to give to the user the possibility to refuse third party non functional cookies.', 'cookie-notice' ) . '</label>
|
845 |
+
<div id="cn_refuse_opt_container"' . ( $this->options['general']['refuse_opt'] === false ? ' style="display: none;"' : '' ) . '>
|
846 |
<div id="cn_refuse_text">
|
847 |
<input type="text" class="regular-text" name="cookie_notice_options[refuse_text]" value="' . esc_attr( $this->options['general']['refuse_text'] ) . '" />
|
848 |
<p class="description">' . __( 'The text of the button to refuse the consent.', 'cookie-notice' ) . '</p>
|
933 |
|
934 |
echo '
|
935 |
<fieldset>
|
936 |
+
<label><input id="cn_see_more" type="checkbox" name="cookie_notice_options[see_more]" value="1" ' . checked( true, $this->options['general']['see_more'], false ) . ' />' . __( 'Enable privacy policy link.', 'cookie-notice' ) . '</label>
|
937 |
+
<div id="cn_see_more_opt"' . ($this->options['general']['see_more'] === false ? ' style="display: none;"' : '') . '>
|
938 |
<input type="text" class="regular-text" name="cookie_notice_options[see_more_opt][text]" value="' . esc_attr( $this->options['general']['see_more_opt']['text'] ) . '" />
|
939 |
<p class="description">' . __( 'The text of the privacy policy button.', 'cookie-notice' ) . '</p>
|
940 |
<div id="cn_see_more_opt_custom_link">';
|
1111 |
public function cn_on_scroll() {
|
1112 |
echo '
|
1113 |
<fieldset>
|
1114 |
+
<label><input id="cn_on_scroll" type="checkbox" name="cookie_notice_options[on_scroll]" value="1" ' . checked( true, $this->options['general']['on_scroll'], false ) . ' />' . __( 'Enable to accept the notice when user scrolls.', 'cookie-notice' ) . '</label>
|
1115 |
+
<div id="cn_on_scroll_offset"' . ( $this->options['general']['on_scroll'] === false || $this->options['general']['on_scroll'] == false ? ' style="display: none;"' : '' ) . '>
|
1116 |
<input type="text" class="text" name="cookie_notice_options[on_scroll_offset]" value="' . esc_attr( $this->options['general']['on_scroll_offset'] ) . '" /> <span>px</span>
|
1117 |
<p class="description">' . __( 'Number of pixels user has to scroll to accept the notice and make it disappear.', 'cookie-notice' ) . '</p>
|
1118 |
</div>
|
1125 |
public function cn_on_click() {
|
1126 |
echo '
|
1127 |
<fieldset>
|
1128 |
+
<label><input id="cn_on_click" type="checkbox" name="cookie_notice_options[on_click]" value="1" ' . checked( true, $this->options['general']['on_click'], false ) . ' />' . __( 'Enable to accept the notice on any click on the page.', 'cookie-notice' ) . '</label>
|
1129 |
+
</fieldset>';
|
1130 |
+
}
|
1131 |
+
|
1132 |
+
/**
|
1133 |
+
* Delete plugin data on deactivation.
|
1134 |
+
*/
|
1135 |
+
public function cn_deactivation_delete() {
|
1136 |
+
echo '
|
1137 |
+
<fieldset>
|
1138 |
+
<label><input id="cn_deactivation_delete" type="checkbox" name="cookie_notice_options[deactivation_delete]" value="1" ' . checked( true, $this->options['general']['deactivation_delete'], false ) . '/>' . __( 'Enable if you want all plugin data to be deleted on deactivation.', 'cookie-notice' ) . '</label>
|
1139 |
</fieldset>';
|
1140 |
}
|
1141 |
|
1189 |
'</div>';
|
1190 |
}
|
1191 |
|
1192 |
+
// print_r( $this->options['general']['colors'] );
|
1193 |
+
|
1194 |
+
echo '
|
1195 |
+
<div id="cn_colors-bar_opacity"><label>' . __( 'Bar opacity', 'cookie-notice' ) . '</label><br />
|
1196 |
+
<div><input id="cn_colors_bar_opacity_range" class="cn_range" type="range" min="50" max="100" step="1" name="cookie_notice_options[colors][bar_opacity]" value="' . absint( $this->options['general']['colors']['bar_opacity'] ) . '" onchange="cn_colors_bar_opacity_text.value = cn_colors_bar_opacity_range.value" /><input id="cn_colors_bar_opacity_text" class="small-text" type="text" value="' . absint( $this->options['general']['colors']['bar_opacity'] ) . '" /></div>' .
|
1197 |
+
'</div>';
|
1198 |
+
|
1199 |
echo '
|
1200 |
</fieldset>';
|
1201 |
}
|
1217 |
// colors
|
1218 |
$input['colors']['text'] = sanitize_text_field( isset( $input['colors']['text'] ) && $input['colors']['text'] !== '' && preg_match( '/^#[a-f0-9]{6}$/', $input['colors']['text'] ) === 1 ? $input['colors']['text'] : $this->defaults['general']['colors']['text'] );
|
1219 |
$input['colors']['bar'] = sanitize_text_field( isset( $input['colors']['bar'] ) && $input['colors']['bar'] !== '' && preg_match( '/^#[a-f0-9]{6}$/', $input['colors']['bar'] ) === 1 ? $input['colors']['bar'] : $this->defaults['general']['colors']['bar'] );
|
1220 |
+
$input['colors']['bar_opacity'] = absint( isset( $input['colors']['bar_opacity'] ) && $input['colors']['bar_opacity'] >= 50 ? $input['colors']['bar_opacity'] : $this->defaults['general']['colors']['bar_opacity'] );
|
1221 |
|
1222 |
// texts
|
1223 |
$input['message_text'] = wp_kses_post( isset( $input['message_text'] ) && $input['message_text'] !== '' ? $input['message_text'] : $this->defaults['general']['message_text'] );
|
1225 |
$input['refuse_text'] = sanitize_text_field( isset( $input['refuse_text'] ) && $input['refuse_text'] !== '' ? $input['refuse_text'] : $this->defaults['general']['refuse_text'] );
|
1226 |
$input['revoke_message_text'] = wp_kses_post( isset( $input['revoke_message_text'] ) && $input['revoke_message_text'] !== '' ? $input['revoke_message_text'] : $this->defaults['general']['revoke_message_text'] );
|
1227 |
$input['revoke_text'] = sanitize_text_field( isset( $input['revoke_text'] ) && $input['revoke_text'] !== '' ? $input['revoke_text'] : $this->defaults['general']['revoke_text'] );
|
1228 |
+
$input['refuse_opt'] = (bool) isset( $input['refuse_opt'] );
|
1229 |
$input['revoke_cookies'] = isset( $input['revoke_cookies'] );
|
1230 |
$input['revoke_cookies_opt'] = isset( $input['revoke_cookies_opt'] ) && array_key_exists( $input['revoke_cookies_opt'], $this->revoke_opts ) ? $input['revoke_cookies_opt'] : $this->defaults['general']['revoke_cookies_opt'];
|
1231 |
|
1247 |
// link target
|
1248 |
$input['link_target'] = sanitize_text_field( isset( $input['link_target'] ) && in_array( $input['link_target'], array_keys( $this->link_targets ) ) ? $input['link_target'] : $this->defaults['general']['link_target'] );
|
1249 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1250 |
// time
|
1251 |
$input['time'] = sanitize_text_field( isset( $input['time'] ) && in_array( $input['time'], array_keys( $this->times ) ) ? $input['time'] : $this->defaults['general']['time'] );
|
1252 |
$input['time_rejected'] = sanitize_text_field( isset( $input['time_rejected'] ) && in_array( $input['time_rejected'], array_keys( $this->times ) ) ? $input['time_rejected'] : $this->defaults['general']['time_rejected'] );
|
1261 |
$input['redirection'] = isset( $input['redirection'] );
|
1262 |
|
1263 |
// on scroll
|
1264 |
+
$input['on_scroll'] = isset( $input['on_scroll'] );
|
1265 |
|
1266 |
// on scroll offset
|
1267 |
$input['on_scroll_offset'] = absint( isset( $input['on_scroll_offset'] ) && $input['on_scroll_offset'] !== '' ? $input['on_scroll_offset'] : $this->defaults['general']['on_scroll_offset'] );
|
1268 |
|
1269 |
// on click
|
1270 |
+
$input['on_click'] = isset( $input['on_click'] );
|
1271 |
|
1272 |
// deactivation
|
1273 |
+
$input['deactivation_delete'] = isset( $input['deactivation_delete'] );
|
1274 |
|
1275 |
// privacy policy
|
1276 |
+
$input['see_more'] = isset( $input['see_more'] );
|
1277 |
$input['see_more_opt']['text'] = sanitize_text_field( isset( $input['see_more_opt']['text'] ) && $input['see_more_opt']['text'] !== '' ? $input['see_more_opt']['text'] : $this->defaults['general']['see_more_opt']['text'] );
|
1278 |
$input['see_more_opt']['link_type'] = sanitize_text_field( isset( $input['see_more_opt']['link_type'] ) && in_array( $input['see_more_opt']['link_type'], array_keys( $this->links ) ) ? $input['see_more_opt']['link_type'] : $this->defaults['general']['see_more_opt']['link_type'] );
|
1279 |
|
1280 |
if ( $input['see_more_opt']['link_type'] === 'custom' )
|
1281 |
+
$input['see_more_opt']['link'] = esc_url( $input['see_more'] === true ? $input['see_more_opt']['link'] : 'empty' );
|
1282 |
elseif ( $input['see_more_opt']['link_type'] === 'page' ) {
|
1283 |
+
$input['see_more_opt']['id'] = ( $input['see_more'] === true ? (int) $input['see_more_opt']['id'] : 'empty' );
|
1284 |
$input['see_more_opt']['sync'] = isset( $input['see_more_opt']['sync'] );
|
1285 |
|
1286 |
if ( $input['see_more_opt']['sync'] )
|
1287 |
update_option( 'wp_page_for_privacy_policy', $input['see_more_opt']['id'] );
|
1288 |
}
|
1289 |
+
|
1290 |
+
// policy link position
|
1291 |
+
$input['link_position'] = sanitize_text_field( isset( $input['link_position'] ) && in_array( $input['link_position'], array_keys( $this->link_positions ) ) ? $input['link_position'] : $this->defaults['general']['link_position'] );
|
1292 |
|
1293 |
+
// message link position?
|
1294 |
+
if ( $input['see_more'] === true && $input['link_position'] === 'message' && strpos( $input['message_text'], '[cookies_policy_link' ) === false )
|
1295 |
+
$input['message_text'] .= ' [cookies_policy_link]';
|
1296 |
+
|
1297 |
+
// coronabar
|
1298 |
+
$input['coronabar'] = isset( $input['coronabar'] );
|
1299 |
+
|
1300 |
+
// delete stored data
|
1301 |
+
if ( $input['coronabar'] )
|
1302 |
+
delete_option( 'cookie_notice_coronadata' );
|
1303 |
+
|
1304 |
+
// cases
|
1305 |
+
$input['coronabar_cases'] = isset( $input['coronabar_cases'] );
|
1306 |
+
// text adjustments
|
1307 |
+
$input['coronabar_texts'] = isset( $input['coronabar_texts'] );
|
1308 |
+
// text strings
|
1309 |
+
foreach ( $this->defaults['general']['coronabar_text_strings'] as $key => $label ) {
|
1310 |
+
$input['coronabar_text_strings'][$key] = sanitize_text_field( isset( $input['coronabar_text_strings'][$key] ) && $input['coronabar_text_strings'][$key] !== '' ? $input['coronabar_text_strings'][$key] : $this->defaults['general']['coronabar_text_strings'][$key] );
|
1311 |
+
}
|
1312 |
+
|
1313 |
$input['update_version'] = $this->options['general']['update_version'];
|
1314 |
$input['update_notice'] = $this->options['general']['update_notice'];
|
1315 |
|
1388 |
'aria_label' => __( 'Cookie Notice', 'cookie-notice' )
|
1389 |
) );
|
1390 |
|
1391 |
+
// check legacy parameters
|
1392 |
+
$options = $this->check_legacy_params( $options, array( 'refuse_opt', 'see_more' ) );
|
1393 |
+
|
1394 |
+
if ( $options['see_more'] === true && $options['link_position'] === 'message' )
|
1395 |
$options['message_text'] = do_shortcode( wp_kses_post( $options['message_text'] ) );
|
1396 |
else
|
1397 |
$options['message_text'] = wp_kses_post( $options['message_text'] );
|
1401 |
// message output
|
1402 |
$output = '
|
1403 |
<!-- Cookie Notice plugin v' . $this->defaults['version'] . ' by Digital Factory https://dfactory.eu/ -->
|
1404 |
+
<div id="cookie-notice" role="banner" class="cookie-notice-hidden cookie-revoke-hidden cn-position-' . $options['position'] . '" aria-label="' . $options['aria_label'] . '" style="background-color: rgba(' . implode( ',', $this->hex2rgb( $options['colors']['bar'] ) ) . ',' . $options['colors']['bar_opacity'] * 0.01 . ');">'
|
1405 |
. '<div class="cookie-notice-container" style="color: ' . $options['colors']['text'] . ';">'
|
1406 |
. '<span id="cn-notice-text" class="cn-text-container">'. $options['message_text'] . '</span>'
|
1407 |
. '<span id="cn-notice-buttons" class="cn-buttons-container"><a href="#" id="cn-accept-cookie" data-cookie-set="accept" class="cn-set-cookie ' . $options['button_class'] . ( $options['css_style'] !== 'none' ? ' ' . $options['css_style'] : '' ) . ( $options['css_class'] !== '' ? ' ' . $options['css_class'] : '' ) . '">' . $options['accept_text'] . '</a>'
|
1408 |
+
. ( $options['refuse_opt'] === true ? '<a href="#" id="cn-refuse-cookie" data-cookie-set="refuse" class="cn-set-cookie ' . $options['button_class'] . ( $options['css_style'] !== 'none' ? ' ' . $options['css_style'] : '' ) . ( $options['css_class'] !== '' ? ' ' . $options['css_class'] : '' ) . '">' . $options['refuse_text'] . '</a>' : '' )
|
1409 |
+
. ( $options['see_more'] === true && $options['link_position'] === 'banner' ? '<a href="' . ( $options['see_more_opt']['link_type'] === 'custom' ? $options['see_more_opt']['link'] : get_permalink( $options['see_more_opt']['id'] ) ) . '" target="' . $options['link_target'] . '" id="cn-more-info" class="cn-more-info ' . $options['button_class'] . ( $options['css_style'] !== 'none' ? ' ' . $options['css_style'] : '' ) . ( $options['css_class'] !== '' ? ' ' . $options['css_class'] : '' ) . '">' . $options['see_more_opt']['text'] . '</a>' : '' )
|
1410 |
+
. '</span><a href="javascript:void(0);" id="cn-close-notice" data-cookie-set="accept" class="cn-close-icon"></a>'
|
1411 |
. '</div>
|
1412 |
+
' . ( $options['refuse_opt'] === true && $options['revoke_cookies'] == true ?
|
1413 |
'<div class="cookie-revoke-container" style="color: ' . $options['colors']['text'] . ';">'
|
1414 |
. ( ! empty( $options['revoke_message_text'] ) ? '<span id="cn-revoke-text" class="cn-text-container">'. $options['revoke_message_text'] . '</span>' : '' )
|
1415 |
. '<span id="cn-revoke-buttons" class="cn-buttons-container"><a href="#" class="cn-revoke-cookie ' . $options['button_class'] . ( $options['css_style'] !== 'none' ? ' ' . $options['css_style'] : '' ) . ( $options['css_class'] !== '' ? ' ' . $options['css_class'] : '' ) . '">' . esc_html( $options['revoke_text'] ) . '</a></span>
|
1505 |
* Deactivate the plugin.
|
1506 |
*/
|
1507 |
public function deactivation() {
|
1508 |
+
if ( $this->options['general']['deactivation_delete'] === true ) {
|
1509 |
delete_option( 'cookie_notice_options' );
|
1510 |
delete_option( 'cookie_notice_version' );
|
1511 |
+
delete_option( 'cookie_notice_coronadata' );
|
1512 |
}
|
1513 |
|
1514 |
// remove WP Super Cache cookie
|
1579 |
'cookie-notice-front',
|
1580 |
'cnArgs',
|
1581 |
array(
|
1582 |
+
'ajaxUrl' => admin_url( 'admin-ajax.php' ),
|
1583 |
+
'nonce' => wp_create_nonce( 'cn_save_cases' ),
|
1584 |
'hideEffect' => $this->options['general']['hide_effect'],
|
1585 |
+
'position' => $this->options['general']['position'],
|
1586 |
+
'onScroll' => (int) $this->options['general']['on_scroll'],
|
1587 |
+
'onScrollOffset' => (int) $this->options['general']['on_scroll_offset'],
|
1588 |
+
'onClick' => (int) $this->options['general']['on_click'],
|
1589 |
'cookieName' => 'cookie_notice_accepted',
|
1590 |
'cookieTime' => $this->times[$this->options['general']['time']][1],
|
1591 |
+
'cookieTimeRejected' => $this->times[$this->options['general']['time_rejected']][1],
|
1592 |
'cookiePath' => ( defined( 'COOKIEPATH' ) ? (string) COOKIEPATH : '' ),
|
1593 |
'cookieDomain' => ( defined( 'COOKIE_DOMAIN' ) ? (string) COOKIE_DOMAIN : '' ),
|
1594 |
+
'redirection' => (int) $this->options['general']['redirection'],
|
1595 |
+
'cache' => (int) ( defined( 'WP_CACHE' ) && WP_CACHE ),
|
1596 |
+
'refuse' => (int) $this->options['general']['refuse_opt'],
|
1597 |
+
'revokeCookies' => (int) $this->options['general']['revoke_cookies'],
|
1598 |
+
'revokeCookiesOpt' => $this->options['general']['revoke_cookies_opt'],
|
1599 |
+
'secure' => (int) is_ssl(),
|
1600 |
+
'coronabarActive' => (int) $this->options['general']['coronabar'],
|
1601 |
)
|
1602 |
);
|
1603 |
|
1604 |
wp_enqueue_style( 'cookie-notice-front', plugins_url( 'css/front' . ( ! ( defined( 'SCRIPT_DEBUG' ) && SCRIPT_DEBUG ) ? '.min' : '' ) . '.css', __FILE__ ) );
|
1605 |
}
|
1606 |
+
|
1607 |
+
/**
|
1608 |
+
* Print Coronabar scripts.
|
1609 |
+
*
|
1610 |
+
* @return mixed
|
1611 |
+
*/
|
1612 |
+
public function wp_head_corona() {
|
1613 |
+
// coronabar
|
1614 |
+
if ( $this->options['general']['coronabar'] ) {
|
1615 |
+
|
1616 |
+
$options = array(
|
1617 |
+
'position' => $this->options['general']['position'],
|
1618 |
+
'displayCases' => $this->options['general']['coronabar_cases'],
|
1619 |
+
);
|
1620 |
+
|
1621 |
+
// text strings
|
1622 |
+
foreach ( $this->defaults['general']['coronabar_text_strings'] as $key => $label ) {
|
1623 |
+
$key_updated = $this->underscores_to_camelcase( 'text_' . $key );
|
1624 |
+
|
1625 |
+
$options[$key_updated] = $this->options['general']['coronabar_text_strings'][$key];
|
1626 |
+
}
|
1627 |
+
|
1628 |
+
// get cached data
|
1629 |
+
$cached_data = get_option( 'cookie_notice_coronadata', array() );
|
1630 |
+
|
1631 |
+
// if exists, send to js
|
1632 |
+
if ( ! empty( $cached_data ) ) {
|
1633 |
+
$options['cachedData'] = $cached_data;
|
1634 |
+
}
|
1635 |
+
|
1636 |
+
echo '
|
1637 |
+
<!-- Corona Banner -->
|
1638 |
+
<script type="text/javascript">
|
1639 |
+
var CoronaBarOptions = ' . json_encode( $options ) . ';
|
1640 |
+
</script>
|
1641 |
+
<script type="text/javascript" src="//coronabar-53eb.kxcdn.com/coronabar.min.js"></script>';
|
1642 |
+
}
|
1643 |
+
}
|
1644 |
|
1645 |
/**
|
1646 |
* Print non functional JavaScript in body.
|
1667 |
|
1668 |
if ( ! empty( $scripts ) )
|
1669 |
echo $scripts;
|
1670 |
+
}
|
1671 |
+
}
|
1672 |
+
|
1673 |
+
/**
|
1674 |
+
* Helper: convert hex color to rgb color.
|
1675 |
+
*
|
1676 |
+
* @param type $color
|
1677 |
+
* @return array
|
1678 |
+
*/
|
1679 |
+
public function hex2rgb( $color ) {
|
1680 |
+
if ( $color[0] == '#' )
|
1681 |
+
$color = substr( $color, 1 );
|
1682 |
+
|
1683 |
+
if ( strlen( $color ) == 6 )
|
1684 |
+
list( $r, $g, $b ) = array( $color[0] . $color[1], $color[2] . $color[3], $color[4] . $color[5] );
|
1685 |
+
elseif ( strlen( $color ) == 3 )
|
1686 |
+
list( $r, $g, $b ) = array( $color[0] . $color[0], $color[1] . $color[1], $color[2] . $color[2] );
|
1687 |
+
else
|
1688 |
+
return false;
|
1689 |
+
|
1690 |
+
$r = hexdec( $r );
|
1691 |
+
$g = hexdec( $g );
|
1692 |
+
$b = hexdec( $b );
|
1693 |
+
|
1694 |
+
return array( $r, $g, $b );
|
1695 |
+
}
|
1696 |
+
|
1697 |
+
/**
|
1698 |
+
* Helper: Convert undersocores to CamelCase/
|
1699 |
+
*
|
1700 |
+
* @param type $string
|
1701 |
+
* @param bool $capitalize_first_char
|
1702 |
+
* @return string
|
1703 |
+
*/
|
1704 |
+
public function underscores_to_camelcase( $string, $capitalize_first_char = false ) {
|
1705 |
+
$str = str_replace( ' ', '', ucwords( str_replace( '_', ' ', $string ) ) );
|
1706 |
+
|
1707 |
+
if ( ! $capitalize_first_char ) {
|
1708 |
+
$str[0] = strtolower( $str[0] );
|
1709 |
}
|
1710 |
+
|
1711 |
+
return $str;
|
1712 |
}
|
1713 |
|
1714 |
+
/**
|
1715 |
+
* Check legacy parameters that were yes/no strings.
|
1716 |
+
*
|
1717 |
+
* @param array $options
|
1718 |
+
* @param array $params
|
1719 |
+
* @return array
|
1720 |
+
*/
|
1721 |
+
public function check_legacy_params( $options, $params ) {
|
1722 |
+
foreach ( $params as $param ) {
|
1723 |
+
if ( ! is_bool( $options[$param] ) )
|
1724 |
+
$options[$param] = $options[$param] === 'yes';
|
1725 |
+
}
|
1726 |
+
|
1727 |
+
return $options;
|
1728 |
+
}
|
1729 |
+
|
1730 |
+
/**
|
1731 |
+
* Merge multidimensional associative arrays.
|
1732 |
+
* Works only with strings, integers and arrays as keys. Values can be any type but they have to have same type to be kept in the final array.
|
1733 |
+
* Every array should have the same type of elements. Only keys from $defaults array will be kept in the final array unless $siblings are not empty.
|
1734 |
+
* $siblings examples: array( '=>', 'only_first_level', 'first_level=>second_level', 'first_key=>next_key=>sibling' ) and so on.
|
1735 |
+
* Single '=>' means that all siblings of the highest level will be kept in the final array.
|
1736 |
+
*
|
1737 |
+
* @param array $default Array with defaults values
|
1738 |
+
* @param array $array Array to merge
|
1739 |
+
* @param boolean|array $siblings Whether to allow "string" siblings to copy from $array if they do not exist in $defaults, false otherwise
|
1740 |
+
* @return array Merged arrays
|
1741 |
+
*/
|
1742 |
+
public function multi_array_merge( $defaults, $array, $siblings = false ) {
|
1743 |
+
// make a copy for better performance and to prevent $default override in foreach
|
1744 |
+
$copy = $defaults;
|
1745 |
+
|
1746 |
+
// prepare siblings for recursive deeper level
|
1747 |
+
$new_siblings = array();
|
1748 |
+
|
1749 |
+
// allow siblings?
|
1750 |
+
if ( ! empty( $siblings ) && is_array( $siblings ) ) {
|
1751 |
+
foreach ( $siblings as $sibling ) {
|
1752 |
+
// highest level siblings
|
1753 |
+
if ( $sibling === '=>' ) {
|
1754 |
+
// copy all non-existent string siblings
|
1755 |
+
foreach( $array as $key => $value ) {
|
1756 |
+
if ( is_string( $key ) && ! array_key_exists( $key, $defaults ) ) {
|
1757 |
+
$defaults[$key] = null;
|
1758 |
+
}
|
1759 |
+
}
|
1760 |
+
// sublevel siblings
|
1761 |
+
} else {
|
1762 |
+
// explode siblings
|
1763 |
+
$ex = explode( '=>', $sibling );
|
1764 |
+
|
1765 |
+
// copy all non-existent siblings
|
1766 |
+
foreach ( array_keys( $array[$ex[0]] ) as $key ) {
|
1767 |
+
if ( ! array_key_exists( $key, $defaults[$ex[0]] ) )
|
1768 |
+
$defaults[$ex[0]][$key] = null;
|
1769 |
+
}
|
1770 |
+
|
1771 |
+
// more than one sibling child?
|
1772 |
+
if ( count( $ex ) > 1 )
|
1773 |
+
$new_siblings[$ex[0]] = array( substr_replace( $sibling, '', 0, strlen( $ex[0] . '=>' ) ) );
|
1774 |
+
// no more sibling children
|
1775 |
+
else
|
1776 |
+
$new_siblings[$ex[0]] = false;
|
1777 |
+
}
|
1778 |
+
}
|
1779 |
+
}
|
1780 |
+
|
1781 |
+
// loop through first array
|
1782 |
+
foreach ( $defaults as $key => $value ) {
|
1783 |
+
// integer key?
|
1784 |
+
if ( is_int( $key ) ) {
|
1785 |
+
$copy = array_unique( array_merge( $defaults, $array ), SORT_REGULAR );
|
1786 |
+
|
1787 |
+
break;
|
1788 |
+
// string key?
|
1789 |
+
} elseif ( is_string( $key ) && isset( $array[$key] ) ) {
|
1790 |
+
// string, boolean, integer or null values?
|
1791 |
+
if ( ( is_string( $value ) && is_string( $array[$key] ) ) || ( is_bool( $value ) && is_bool( $array[$key] ) ) || ( is_int( $value ) && is_int( $array[$key] ) ) || is_null( $value ) )
|
1792 |
+
$copy[$key] = $array[$key];
|
1793 |
+
// arrays
|
1794 |
+
elseif ( is_array( $value ) && isset( $array[$key] ) && is_array( $array[$key] ) ) {
|
1795 |
+
if ( empty( $value ) )
|
1796 |
+
$copy[$key] = $array[$key];
|
1797 |
+
else
|
1798 |
+
$copy[$key] = $this->multi_array_merge( $defaults[$key], $array[$key], ( isset( $new_siblings[$key] ) ? $new_siblings[$key] : false ) );
|
1799 |
+
}
|
1800 |
+
}
|
1801 |
+
}
|
1802 |
+
|
1803 |
+
return $copy;
|
1804 |
+
}
|
1805 |
+
|
1806 |
/**
|
1807 |
* Indicate if current page is the Cookie Policy page
|
1808 |
*
|
css/admin-notice.css
ADDED
@@ -0,0 +1,91 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
.coronabar-notice {
|
2 |
+
border-left-color: #00a99d;
|
3 |
+
padding-left: 0;
|
4 |
+
}
|
5 |
+
|
6 |
+
.coronabar-notice .cn-notice-container {
|
7 |
+
display: flex;
|
8 |
+
align-items: center;
|
9 |
+
padding-top: 1em;
|
10 |
+
padding-bottom: 1em;
|
11 |
+
}
|
12 |
+
|
13 |
+
.coronabar-notice .cn-notice-step {
|
14 |
+
display: flex;
|
15 |
+
align-items: center;
|
16 |
+
}
|
17 |
+
|
18 |
+
.coronabar-notice .step-yes,
|
19 |
+
.coronabar-notice .step-no {
|
20 |
+
display: none;
|
21 |
+
}
|
22 |
+
|
23 |
+
.coronabar-notice .cn-notice-icon span {
|
24 |
+
margin-left: 2em;
|
25 |
+
margin-right: 2em;
|
26 |
+
width: 55px;
|
27 |
+
height: 55px;
|
28 |
+
display: block;
|
29 |
+
background-position: center center;
|
30 |
+
background-repeat: no-repeat;
|
31 |
+
background-image: url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+PCFET0NUWVBFIHN2ZyBQVUJMSUMgIi0vL1czQy8vRFREIFNWRyAxLjEvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvR3JhcGhpY3MvU1ZHLzEuMS9EVEQvc3ZnMTEuZHRkIj48c3ZnIHdpZHRoPSIxMDAlIiBoZWlnaHQ9IjEwMCUiIHZpZXdCb3g9IjAgMCAxOTEgMTgzIiB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHhtbDpzcGFjZT0icHJlc2VydmUiIHhtbG5zOnNlcmlmPSJodHRwOi8vd3d3LnNlcmlmLmNvbS8iIHN0eWxlPSJmaWxsLXJ1bGU6ZXZlbm9kZDtjbGlwLXJ1bGU6ZXZlbm9kZDtzdHJva2UtbGluZWpvaW46cm91bmQ7c3Ryb2tlLW1pdGVybGltaXQ6MjsiPjxwYXRoIGQ9Ik0xNzQuNDY4LDQ3LjcyNmMtMS44NTUsMCAtMy42MTUsMC40MTQgLTUuMTk0LDEuMTU4bDAsLTI2LjUxNmMwLC02LjgyIC01LjUyMiwtMTIuMzY3IC0xMi4zMDksLTEyLjM2N2MtMS45NTQsMCAtMy44MDQsMC40NTggLTUuNDQ1LDEuMjc3Yy0wLjUwMywtMi40NTkgLTEuNzI3LC00Ljc1NiAtMy41MzQsLTYuNTMzYy0yLjM3NywtMi4zNDUgLTUuNDk4LC0zLjYwMyAtOC43NjEsLTMuNTM2Yy02LjY1NSwwLjEyNCAtMTIuMDcyLDUuNjcxIC0xMi4wNzIsMTIuMzYybDAsMS45ODJjLTEuNTc5LC0wLjc0MyAtMy4zMzksLTEuMTU4IC01LjE5NCwtMS4xNThjLTYuNzg3LDAgLTEyLjMxMyw1LjU0NyAtMTIuMzEzLDEyLjM2N2wwLDUuNTljLTEuNTEzLC0wLjcxNSAtMy4xODgsLTEuMTMgLTQuOTU3LC0xLjE2OGMtMy4yNzgsLTAuMDYyIC02LjM4NCwxLjE5NyAtOC43NjEsMy41NDFjLTAuMDc2LDAuMDcyIC0wLjE0NywwLjE1MyAtMC4yMjMsMC4yMjljLTAuMDcxLC0wLjA3NiAtMC4xNDIsLTAuMTUzIC0wLjIxMywtMC4yMjRjLTIuMzc3LC0yLjM0OSAtNS40OTMsLTMuNjA4IC04Ljc3MSwtMy41NDFjLTEuNzY0LDAuMDMzIC0zLjQ0MywwLjQ0OCAtNC45NTYsMS4xNjNsMCwtNS41OWMwLC02LjgyIC01LjUyMSwtMTIuMzY3IC0xMi4zMDksLTEyLjM2N2MtMS44NTUsMCAtMy42MTQsMC40MTUgLTUuMTk0LDEuMTU4bDAsLTEuOTgyYzAsLTYuNjkxIC01LjQxNywtMTIuMjM5IC0xMi4wNzIsLTEyLjM2MmMtMy4yNzUsLTAuMDY3IC02LjM4NywxLjE5MSAtOC43NjQsMy41MzZjLTEuODA0LDEuNzc3IC0zLjAzMSw0LjA3NCAtMy41MzEsNi41MzNjLTEuNjQzLC0wLjgxOSAtMy40OTIsLTEuMjc3IC01LjQ0NywtMS4yNzdjLTYuNzg3LDAgLTEyLjMwOSw1LjU0NyAtMTIuMzA5LDEyLjM2N2wwLDI2LjUxNmMtMS41NzksLTAuNzQ0IC0zLjMzOSwtMS4xNTggLTUuMTk0LC0xLjE1OGMtNi43ODcsMCAtMTIuMzA5LDUuNTUyIC0xMi4zMDksMTIuMzY3bDAsNDUuMzNjMCwxMC40OTkgNC45OTIsMjAuNTMxIDEzLjM1MiwyNi44MzFjMS45OTQsMS41MDEgNi43OTQsOC44MzggMTAuMTM1LDE0LjU0OWMtMS4xMTYsMC42MDMgLTEuODc0LDEuNzg3IC0xLjg3NCwzLjE0OGwwLDI4LjI2OWMwLDEuOTc1IDEuNTkzLDMuNTc1IDMuNTU4LDMuNTc1bDUwLjE0NiwwYzEuOTY0LDAgMy41NTgsLTEuNiAzLjU1OCwtMy41NzRsLTAuMDAxLC0yNS45MjVjMy45NjYsMC44NzYgOC4wNSwxLjMyNiAxMi4xOTUsMS4zMjZjNC4xNDYsMCA4LjIzNSwtMC40NTUgMTIuMiwtMS4zMzVsMCwyNS45MzRjMCwxLjk3NCAxLjU4OSwzLjU3NCAzLjU1OCwzLjU3NGw1MC4xNDYsMGMxLjk2NCwwIDMuNTU3LC0xLjYgMy41NTcsLTMuNTc0bDAsLTI4LjI3YzAsLTEuMzYxIC0wLjc1OSwtMi41NDUgLTEuODczLC0zLjE0OGMzLjMzOSwtNS43MSA4LjEzOSwtMTMuMDQ4IDEwLjEzMSwtMTQuNTQ5YzguMzYzLC02LjMgMTMuMzUzLC0xNi4zMzIgMTMuMzUzLC0yNi44MzFsLTAuMDAxLC00NS4zM2MwLC02LjgxNSAtNS41MjEsLTEyLjM2NyAtMTIuMzA4LC0xMi4zNjdabS01Mi41MDksLTI2LjE4MmMyLjg2NSwwIDUuMTk0LDIuMzQ0IDUuMTk0LDUuMjE4bDAsMjMuMTc1Yy0wLjQ0MSwtMC4zIC0wLjg4MiwtMC41OTEgLTEuMzI4LC0wLjg3MmMtMC4wOSwtMC4wNTcgLTAuMTc1LC0wLjExNCAtMC4yNjUsLTAuMTY3Yy0wLjUwMywtMC4zMTkgLTEuMDExLC0wLjYyOSAtMS41MjMsLTAuOTI5Yy0wLjA3NiwtMC4wNDMgLTAuMTQ3LC0wLjA4NiAtMC4yMjMsLTAuMTI5Yy0wLjUzMSwtMC4zMDUgLTEuMDY3LC0wLjYxIC0xLjYwOCwtMC45Yy0wLjAzMywtMC4wMTUgLTAuMDYyLC0wLjAyOSAtMC4wOSwtMC4wNDhjLTAuNTQxLC0wLjI5MSAtMS4wOTEsLTAuNTY3IC0xLjYzNiwtMC44MzljLTAuMDUzLC0wLjAyNCAtMC4xLC0wLjA0OCAtMC4xNDgsLTAuMDcxYy0wLjU0LC0wLjI2NyAtMS4wOSwtMC41MjUgLTEuNjQxLC0wLjc2OGMtMC4wODUsLTAuMDM4IC0wLjE3LC0wLjA4MSAtMC4yNTEsLTAuMTE0Yy0wLjUzNiwtMC4yMzggLTEuMDc3LC0wLjQ2NyAtMS42MjIsLTAuNjg2Yy0wLjAxNSwtMC4wMSAtMC4wMzQsLTAuMDE5IC0wLjA1MiwtMC4wMjRsLTAuMDAxLC0xNy42MjhjMCwtMi44NzQgMi4zMjksLTUuMjE4IDUuMTk0LC01LjIxOFptLTIxLjA0NiwxOC4yOGMxLjAwMSwtMC45ODYgMi4yODcsLTEuNTE1IDMuNjQzLC0xLjQ5MWMyLjI2OCwwLjA0MyA0LjE5OCwxLjU4MiA0Ljg1MywzLjY2Yy0wLjExNCwtMC4wMjkgLTAuMjMzLC0wLjA1NyAtMC4zNTEsLTAuMDg2Yy0wLjE4NSwtMC4wNDMgLTAuMzc1LC0wLjA5MSAtMC41NiwtMC4xMzNjLTAuMTgsLTAuMDQzIC0wLjM2MSwtMC4wODEgLTAuNTM2LC0wLjEyYy0wLjE5LC0wLjA0MiAtMC4zNzksLTAuMDg1IC0wLjU3NCwtMC4xMjNjLTAuMTc1LC0wLjAzOSAtMC4zNTYsLTAuMDc3IC0wLjUzNiwtMC4xMWMtMC4xOTQsLTAuMDM4IC0wLjM4NCwtMC4wNzYgLTAuNTc5LC0wLjExNGMtMC4xNzUsLTAuMDM0IC0wLjM1NSwtMC4wNjcgLTAuNTM2LC0wLjEwMWMtMC4xOTQsLTAuMDMzIC0wLjM4OSwtMC4wNjYgLTAuNTgzLC0wLjFjLTAuMTgsLTAuMDI4IC0wLjM2MSwtMC4wNTcgLTAuNTQxLC0wLjA4NWMtMC4xOTQsLTAuMDM0IC0wLjM4OSwtMC4wNjIgLTAuNTgzLC0wLjA5MWMtMC4xOCwtMC4wMjkgLTAuMzYxLC0wLjA1MiAtMC41NDEsLTAuMDc2Yy0wLjE5OSwtMC4wMjkgLTAuMzk0LC0wLjA1NyAtMC41OTMsLTAuMDgxYy0wLjE4LC0wLjAyNCAtMC4zNiwtMC4wNDMgLTAuNTQxLC0wLjA2N2MtMC4xOTksLTAuMDI0IC0wLjM5MywtMC4wNDMgLTAuNTkzLC0wLjA2N2MtMC4xOCwtMC4wMTkgLTAuMzY1LC0wLjAzOCAtMC41NDUsLTAuMDUyYy0wLjE5OSwtMC4wMTkgLTAuMzk4LC0wLjAzOCAtMC41OTgsLTAuMDU3Yy0wLjA5NSwtMC4wMDUgLTAuMTk0LC0wLjAxOSAtMC4yOTQsLTAuMDI0YzAuMTc2LC0wLjI0MyAwLjM3NSwtMC40NjcgMC41ODgsLTAuNjgyWm0yLjU5NSwxNC45MTJjMS45MDIsLTAuMTU3IDMuMzQ0LC0xLjc5MiAzLjI2MywtMy43MDhjLTAuMDQyLC0xLjA0MyAtMC41MjYsLTEuOTYzIC0xLjI2MSwtMi41ODdjMS4xOTUsMC4yNDMgMi4zNzYsMC41MTkgMy41NDMsMC44NDNjMTQuODIzLDQuMTQyIDI2Ljk0NywxNS4wNiAzMi41OTEsMjkuNzUybC0zLjAwMiwwYy0xLjU3NSwwIC0yLjkzNiwwLjkxIC0zLjU0OCwyLjM2OWMtMC4wMSwwLjAxNCAtMC4wMTUsMC4wMjggLTAuMDE5LDAuMDQyYy0wLjU5OCwxLjQ2OCAtMC4yNzUsMy4wNzkgMC44NDksNC4yMDhsMC44MTEsMC44MTVjMC44MiwwLjgyNSAxLjI3MSwxLjkyMSAxLjI3MSwzLjA4OGMwLDEuMTY4IC0wLjQ1MSwyLjI2NCAtMS4yNjYsMy4wODRjLTAuODAyLDAuODA1IC0xLjg2OSwxLjI0OCAtMy4wMDgsMS4yNDhjLTEuMTM4LDAgLTIuMjAxLC0wLjQ0MyAtMy4wMDIsLTEuMjQzbC0xLjk3MywtMS45ODhjLTIuNDM0LC0yLjQ0NCAtNS41MTIsLTMuOTk4IC04Ljg5NCwtNC40ODljLTEuNTEzLC0wLjIyNCAtMy4wMDMsMC41NTggLTMuNjksMS45MzVjLTAuNjg4LDEuMzcyIC0wLjQxOCwzLjAzNiAwLjY2NCw0LjEyN2wwLjU1LDAuNTUzYzEuNzUsMS43NTggMi43MTgsNC4wOTggMi43MTgsNi41ODZsMCwyLjg1YzAsMi4xNDkgMS43MzYsMy44OTMgMy44NywzLjg5M2MwLjExOSwwIDAuMjE0LDAuMDY3IDAuMjYxLDAuMTcyYzAuMDQ4LDAuMTE0IDAuMDI0LDAuMjI5IC0wLjA2MSwwLjMxNGwtMi43NjEsMi43ODhjLTIuMDk2LDIuMTE2IC0zLjkzNyw0LjQ4OSAtNS40NjksNy4wNTNsLTIuNDM4LDQuMDdjLTAuMDA1LDAuMDE0IC0wLjAxNCwwLjAyOSAtMC4wMjQsMC4wNDNsLTMuMDY5LDUuMDk5Yy0xLjAxLDEuNjczIC0xLjU0NiwzLjU5NCAtMS41NDYsNS41NDdsMCwwLjE1OGMwLDAuODg2IC0wLjcxNiwxLjYxMSAtMS42MDgsMS42MTFjLTAuOTcyLDAgLTEuODUsLTAuMzYzIC0yLjUzMywtMS4wNDljLTAuNjg4LC0wLjY5NiAtMS4wNTMsLTEuNTc3IC0xLjA1MywtMi41NWMwLC0yLjc1OSAtMS4wNjcsLTUuMzUxIC0zLjAwNywtNy4yOTZsLTEuMTQzLC0xLjE0OGMtMS45ODMsLTEuOTkyIC0zLjA3NCwtNC42NDIgLTMuMDc0LC03LjQ2M2wwLC03LjMzNGMwLC0yLjkxMiAtMi4zNTcsLTUuMjgxIC01LjI1NSwtNS4yODFsLTAuODY0LDBjLTIuODQxLDAgLTUuMTUxLC0yLjMyMSAtNS4xNTEsLTUuMTc1bDAsLTMuODE4YzAsLTMuMDIxIDIuNDQ4LC01LjQ4IDUuNDYsLTUuNDhsMjAuMzgxLDBjMS45NjksMCAzLjU1OCwtMS42MDEgMy41NTgsLTMuNTc0bDAsLTAuMjA1YzAsLTQuNDE4IC0xLjcxMiwtOC41NzMgLTQuODI0LC0xMS43Yy0wLjUwOCwtMC41MSAtMS4xNTcsLTAuODU4IC0xLjg2NCwtMC45ODZsLTE2LjIxNywtMy4wMjZjLTEuMTQ4LC0wLjIxNSAtMi4zMjksMC4xNTIgLTMuMTU1LDAuOTc3Yy0xLjA5NSwxLjA5MSAtMS42OTgsMi41NDkgLTEuNjk4LDQuMTAzYzAsMS40MjUgLTEuMTUyLDIuNTc4IC0yLjU2NiwyLjU3OGwtMi41LDBjLTAuNTc0LDAgLTEuMDQzLC0wLjQ2NyAtMS4wNDMsLTEuMDQ4bDAsLTMuMzc1YzAsLTIuNTMgMC45NzcsLTQuOTA4IDIuNzU2LC02LjY5bDEuNDYxLC0xLjQ2OGMxLjAyOSwtMS4wNDQgMS41OTMsLTIuNDIxIDEuNTkzLC0zLjg4NGwwLC0wLjUwNWMwLC0wLjg3MyAwLjcwNywtMS41ODMgMS41NzUsLTEuNTgzYzAuMDk1LDAgMC4xOTUsLTAuMDA0IDAuMjg5LC0wLjAwOWwxNS4xMjIsLTEuMjQ0Wm0tMTIuODE2LDI0LjQ5MWMxLjM4LC0xLjIzOSAyLjQwOSwtMi44NjkgMi45MDcsLTQuNzE0bDExLjgxMSwyLjIwMmMwLjYxMiwwLjc2MyAxLjA5MSwxLjYxMSAxLjQzNywyLjUxMmwtMTYuMTU1LDBabS0zLjgzMywtNDAuODk0bDAuMDk1LDBjMS4zMTQsMCAyLjU3MSwwLjUyOSAzLjU0OCwxLjQ5NmMwLjIxMywwLjIxIDAuNDEzLDAuNDM5IDAuNTg4LDAuNjgyYy0wLjAyOCwwIC0wLjA1NywwLjAwNCAtMC4wODEsMC4wMDRjLTAuMTk5LDAuMDIgLTAuMzkzLDAuMDM5IC0wLjU5MiwwLjA1OGMtMC4xOTUsMC4wMTkgLTAuMzg1LDAuMDMzIC0wLjU3OSwwLjA1N2MtMC4xOTksMC4wMTkgLTAuMzk0LDAuMDQzIC0wLjU4OCwwLjA2N2MtMC4xOTUsMC4wMjMgLTAuMzg5LDAuMDQyIC0wLjU3OSwwLjA2NmMtMC4xOTksMC4wMjQgLTAuMzk0LDAuMDUzIC0wLjU4OCwwLjA4MWMtMC4xOTUsMC4wMjQgLTAuMzg0LDAuMDUzIC0wLjU3OSwwLjA4MWMtMC4xOTQsMC4wMjkgLTAuMzg5LDAuMDYyIC0wLjU4MywwLjA5MWMtMC4xOSwwLjAyOCAtMC4zODQsMC4wNjIgLTAuNTc5LDAuMDk1Yy0wLjE5LDAuMDM0IC0wLjM4NCwwLjA2NyAtMC41NzksMC4xYy0wLjE4OSwwLjAzOCAtMC4zODQsMC4wNzIgLTAuNTc0LDAuMTA1Yy0wLjE5NCwwLjAzOCAtMC4zODQsMC4wNzYgLTAuNTc4LDAuMTE5Yy0wLjE5LDAuMDM4IC0wLjM4LDAuMDc2IC0wLjU3NCwwLjExNWMtMC4xOSwwLjA0MiAtMC4zOCwwLjA4NSAtMC41NjksMC4xMjhjLTAuMTk1LDAuMDQzIC0wLjM4NSwwLjA4NiAtMC41NzQsMC4xMjljLTAuMTksMC4wNDggLTAuMzgsMC4wOSAtMC41NywwLjEzOGMtMC4xMDksMC4wMjkgLTAuMjE4LDAuMDUzIC0wLjMyNywwLjA4MWMwLjY0NSwtMi4wOTcgMi41ODEsLTMuNjUgNC44NjIsLTMuNjkzWm0tMjIuNTk3LC0xMS41NjZjMCwtMi44NzkgMi4zMjksLTUuMjI0IDUuMTk0LC01LjIyNGMyLjg2NSwwIDUuMTk0LDIuMzQ1IDUuMTk0LDUuMjE5bDAsMTYuNzg5YzAsMC4yODYgMC4wMzMsMC41NjcgMC4wOTksMC44MzRjLTAuMDA0LDAgLTAuMDA5LDAgLTAuMDA5LDAuMDA1Yy0wLjU4OCwwLjIzMyAtMS4xNzIsMC40ODEgLTEuNzUsMC43MzljLTAuMDksMC4wMzggLTAuMTc2LDAuMDc2IC0wLjI2NiwwLjExNGMtMC41NSwwLjI0OCAtMS4xLDAuNTA1IC0xLjY0NiwwLjc3MmMtMC4wOTksMC4wNDggLTAuMjA0LDAuMSAtMC4zMDMsMC4xNDhjLTAuNTQ2LDAuMjcxIC0xLjA4NywwLjU0OCAtMS42MjMsMC44MzRjLTAuMDgsMC4wNDMgLTAuMTYxLDAuMDg1IC0wLjIzNywwLjEyOGMtMC41NTksMC4zMDUgLTEuMTEsMC42MSAtMS42NiwwLjkzNGMtMC4wMDUsMC4wMDUgLTAuMDE0LDAuMDA1IC0wLjAxOSwwLjAxYy0wLjU1LDAuMzI0IC0xLjA5MSwwLjY1OCAtMS42MzIsMS4wMDFjLTAuMDgsMC4wNDcgLTAuMTU2LDAuMDk1IC0wLjIzNywwLjE0N2MtMC4zNywwLjIzOSAtMC43NCwwLjQ4MiAtMS4xMDUsMC43MjVsMCwtMjMuMTc1Wm0tNDIuMDA1LDk5Ljc2OGMtNi41NzgsLTQuOTU2IC0xMC41MDYsLTEyLjg0OCAtMTAuNTA2LC0yMS4xMTJsMCwtNDUuMzNjMCwtMi44NzQgMi4zMywtNS4yMTkgNS4xOTQsLTUuMjE5YzIuODY1LDAgNS4xOTUsMi4zNDUgNS4xOTUsNS4yMjNjMCwwLjA0MyAwLjAwNSwwLjA4NiAwLjAwNiwwLjEyOWwwLDI5LjQ4NWMwLDEuOTc4IDEuNTkzLDMuNTc0IDMuNTU4LDMuNTc0YzEuOTY1LDAgMy41NTcsLTEuNTk2IDMuNTU3LC0zLjU3NGwtMC4wMDYsLTY3LjM0M2MwLC0yLjg3OSAyLjMzLC01LjIxOCA1LjE5NCwtNS4yMThjMi44NjQsMCA1LjE5NCwyLjMzOSA1LjE5NCw1LjIxOGwwLDI0LjIxOWMwLDEuOTczIDEuNTkzLDMuNTc0IDMuNTU4LDMuNTc0YzEuOTY1LDAgMy41NTcsLTEuNjAxIDMuNTU3LC0zLjU3NGwwLC0zMi44MTZjMCwtMS40NTkgMC42MDMsLTIuODg4IDEuNjUyLC0zLjkyMmMxLjAwMiwtMC45OTIgMi4yOTEsLTEuNTE2IDMuNjQzLC0xLjQ5MmMyLjgwOCwwLjA1MiA1LjA5NCwyLjM5MiA1LjA5NCw1LjIxOGwwLDQyLjA2N2MtMC42OTIsMC42NTIgLTEuMzY2LDEuMzIgLTIuMDI1LDIuMDA2Yy0wLjc3OCwwLjgxIC0xLjUzMiwxLjY0OSAtMi4yNjMsMi41MDdjLTAuMDc2LDAuMDkgLTAuMTUyLDAuMTgxIC0wLjIyNywwLjI3MWMtNS43NjQsNi44NjMgLTkuODgxLDE1LjA1IC0xMS44ODQsMjMuODE5Yy0wLjk0OCw0LjE1MSAtMS40MjgsOC40MyAtMS40MjgsMTIuNzI0YzAsMS43ODcgMC4wODgsMy41NjkgMC4yNTQsNS4zNDdjLTIuMDUzLC0wLjUzNCAtNC4yMDQsLTAuODIgLTYuNDIsLTAuODJsLTAuNjkxLDBjLTEuOTY1LDAgLTMuNTU3LDEuNTk3IC0zLjU1NywzLjU3NWMwLDEuOTczIDEuNTkyLDMuNTc0IDMuNTU3LDMuNTc0bDAuNjkxLDBjMy44MTgsMCA3LjM2OCwxLjE2NyAxMC4zMTcsMy4xNjljMC4wMDksMC4wMDUgMC4wMTcsMC4wMDkgMC4wMjUsMC4wMTRjMC43MjcsMC40OTYgMS40MTYsMS4wMzkgMi4wNjMsMS42M2MwLjAwOSwwLjAxIDAuMDE4LDAuMDE0IDAuMDI2LDAuMDI0YzAuNDEsMC4zNzYgMC44MDIsMC43NjcgMS4xNzYsMS4xNzdjMC4wNDIsMC4wNDggMC4wODQsMC4wOTUgMC4xMjUsMC4xMzhjMC4xNjgsMC4xOTEgMC4zMzIsMC4zNzcgMC40OTMsMC41NzJjMC4wNSwwLjA2MiAwLjA5OCwwLjEyNCAwLjE0NywwLjE4NmMwLjEwOCwwLjEzMyAwLjIxMywwLjI2NyAwLjMxNywwLjQwNWMwLjA3OSwwLjEwNSAwLjE1OCwwLjIxIDAuMjM1LDAuMzE1YzAuMDU5LDAuMDgxIDAuMTE3LDAuMTYyIDAuMTc1LDAuMjQ3YzAuMTgyLDAuMjU4IDAuMzYsMC41MjUgMC41MjksMC43OTFjMC4wMDgsMC4wMTUgMC4wMTgsMC4wMjkgMC4wMjcsMC4wNDNjMS4wNjUsMS43MDYgMS44NTMsMy41ODQgMi4zMjQsNS41NTdjMC4wMDQsMC4wMTkgMC4wMDcsMC4wMzggMC4wMTIsMC4wNTJjMC4wNzYsMC4zMjUgMC4xNDIsMC42NDkgMC4yLDAuOTc3YzAuMDE0LDAuMDgxIDAuMDMsMC4xNjIgMC4wNDMsMC4yMzljMC4wMjQsMC4xNDMgMC4wNDUsMC4yODYgMC4wNjUsMC40MjljMC4wMjIsMC4xNTcgMC4wNDIsMC4zMTkgMC4wNiwwLjQ3NmMwLjAxNCwwLjExNSAwLjAyNywwLjIzNCAwLjAzOSwwLjM0OGMwLjAyMiwwLjIzNCAwLjA0LDAuNDY3IDAuMDUzLDAuNzA1YzAuMDA1LDAuMDgxIDAuMDA5LDAuMTYyIDAuMDEyLDAuMjQzYzAuMDEyLDAuMjc3IDAuMDIxLDAuNTUzIDAuMDIxLDAuODNsMCwxOS4xNjZsLTE1LjU5MiwwYy0yLjcyOSwtNC45MjEgLTkuNjYxLC0xNi43MzEgLTEzLjc4OSwtMTkuODQzWm0zOC40OTUsLTEuMTI1Yy0wLjczLDAuNzM0IC0xLjM5NCwxLjUyNSAtMi4wMDIsMi4zNTRsMCwtMC41NDhjMCwtMC4zOSAtMC4wMDksLTAuNzc2IC0wLjAyOCwtMS4xNjJjLTAuMDA1LC0wLjA5NiAtMC4wMDksLTAuMTkxIC0wLjAxNCwtMC4yODZjLTAuMDE5LC0wLjM1MyAtMC4wNDMsLTAuNzAxIC0wLjA4MSwtMS4wNDljLTAuMDA5LC0wLjEzMyAtMC4wMjgsLTAuMjY3IC0wLjA0MywtMC40MDVjLTAuMDIzLC0wLjIxOSAtMC4wNTIsLTAuNDQzIC0wLjA4NSwtMC42NjJjLTAuMDM4LC0wLjI4NiAtMC4wODUsLTAuNTY3IC0wLjEzMywtMC44NDRjLTAuMDIzLC0wLjE1MiAtMC4wNTIsLTAuMyAtMC4wOCwtMC40NTNjLTAuMDQzLC0wLjIyOCAtMC4wOTEsLTAuNDU3IC0wLjE0MywtMC42ODZjLTAuMDA5LC0wLjA0MyAtMC4wMTksLTAuMDg2IC0wLjAyOCwtMC4xMjhjLTAuNTY5LC0yLjUzNiAtMS41MTMsLTQuOTI4IC0yLjc3LC03LjEyYy0wLjAzMywtMC4wNjIgLTAuMDcxLC0wLjEyNCAtMC4xMDUsLTAuMTgxYy0wLjExMywtMC4xOTYgLTAuMjI3LC0wLjM5MSAtMC4zNDYsLTAuNTgyYy0wLjExNCwtMC4xODEgLTAuMjMyLC0wLjM2MiAtMC4zNDYsLTAuNTQzYy0wLjExOSwtMC4xNzYgLTAuMjMzLC0wLjM0OCAtMC4zNTYsLTAuNTI0Yy0wLjEyOCwtMC4xOTEgLTAuMjYxLC0wLjM3NyAtMC4zOTgsLTAuNTYzYy0wLjA2NywtMC4wOSAtMC4xMzMsLTAuMTg1IC0wLjIsLTAuMjc2Yy0wLjIxMywtMC4yODEgLTAuNDMxLC0wLjU1OCAtMC42NTQsLTAuODM0Yy0wLjAzMywtMC4wNDMgLTAuMDcxLC0wLjA4NiAtMC4xMDQsLTAuMTI5Yy0xLjYwMywtMS45MzkgLTMuNDkzLC0zLjY1NSAtNS42MzUsLTUuMDdjLTAuNTA5LC0yLjg3NCAtMC43NjcsLTUuODEgLTAuNzY3LC04Ljc1YzAsLTIuNzc4IDAuMjMxLC01LjU1MiAwLjY4NiwtOC4yNzNjMi40MTEsMC4yODEgNC42NDUsMS4zNTggNi4zODksMy4xMDdsMi4xNzcsMi4xOTJjMS42MDMsMS42MDIgMy43MjgsMi40ODggNS45OTEsMi40ODhjMS43NzQsMCAzLjQzOSwwLjY5MSA0LjY5NiwxLjk1NGwwLjA0MywwLjA0N2MyLjA1OCwyLjA2OSAzLjE5Miw0LjgxNCAzLjE5Miw3LjczNWwwLDQuNDUxYzAsMy43NjUgLTEuNDYxLDcuMzExIC00LjExMyw5Ljk3NWwtNC43NDMsNC43NjVabTEuNjAzLDE3LjI0NmMwLjMwOSwwLjIyNiAwLjYxNywwLjQ1IDAuOTMsMC42N2MwLjEzOCwwLjA5NyAwLjI3LDAuMTk1IDAuNDEzLDAuMjkxYzAuOTIsMC42MzkgMS44NTQsMS4yNSAyLjgwOCwxLjgzYzAuMDMzLDAuMDIgMC4wNjYsMC4wMzkgMC4wOTUsMC4wNTljMC40OTMsMC4yOTkgMC45OTEsMC41ODkgMS40ODksMC44NzJsLTkuMzQsMGwwLC02LjYxOWMwLjA4NiwwLjA3MiAwLjE2NywwLjE0MiAwLjI1MiwwLjIxNGMwLjEzNywwLjEyIDAuMjgsMC4yNDIgMC40MTcsMC4zNmMwLjM0NywwLjI5MyAwLjY5OCwwLjU4MSAxLjA0OSwwLjg2NGMwLjA3NSwwLjA2NCAwLjE1NiwwLjEyOSAwLjIzMiwwLjE5MmMwLjQwMywwLjMyMSAwLjgxMSwwLjYzNSAxLjIxOSwwLjk0NGMwLjE0NywwLjEwOSAwLjI5NCwwLjIxNiAwLjQzNiwwLjMyM1ptLTI4Ljk5MSwzMS45OTFsMCwtMjEuMTIxbDQzLjAzMiwwbDAsMjEuMTIxbC00My4wMzIsMFptODAuNjEzLC0zMS42OTZjLTAuMjIzLDAuMDkgLTAuNDQ2LDAuMTc4IC0wLjY3NCwwLjI2NWMtNS41NSwyLjEzIC0xMS40OTgsMy4yNTggLTE3LjU5OCwzLjI1OGMtMC4zODgsMCAtMC43NzMsLTAuMDA0IC0xLjE2MiwtMC4wMTRjLTAuMTMyLC0wLjAwMyAtMC4yNjEsLTAuMDA5IC0wLjM5MywtMC4wMTNjLTAuMjU2LC0wLjAwNyAtMC41MTMsLTAuMDE2IC0wLjc2OSwtMC4wMjdjLTAuMTU2LC0wLjAwOCAtMC4zMDgsLTAuMDE4IC0wLjQ2NSwtMC4wMjZjLTAuMjMyLC0wLjAxMyAtMC40NiwtMC4wMjYgLTAuNjkyLC0wLjA0MmMtMC4xNjYsLTAuMDEyIC0wLjMyNywtMC4wMjYgLTAuNDg5LC0wLjAzOWMtMC4yMjMsLTAuMDE4IC0wLjQ0NiwtMC4wMzUgLTAuNjY4LC0wLjA1NmMtMC4xNjYsLTAuMDE2IC0wLjMzMiwtMC4wMzMgLTAuNDk5LC0wLjA1MWMtMC4yMTgsLTAuMDIyIC0wLjQzMSwtMC4wNDUgLTAuNjQ1LC0wLjA3Yy0wLjE3LC0wLjAyIC0wLjM0MSwtMC4wNDIgLTAuNTEyLC0wLjA2NGMtMC4yMDksLTAuMDI3IC0wLjQyMiwtMC4wNTQgLTAuNjMxLC0wLjA4NGMtMC4xNywtMC4wMjQgLTAuMzQxLC0wLjA1IC0wLjUxMiwtMC4wNzZjLTAuMjA5LC0wLjAzMSAtMC40MTcsLTAuMDY0IC0wLjYyNiwtMC4wOTljLTAuMTcxLC0wLjAyOCAtMC4zNDIsLTAuMDU3IC0wLjUxMiwtMC4wODdjLTAuMjA5LC0wLjAzNyAtMC40MTMsLTAuMDc0IC0wLjYyMiwtMC4xMTNjLTAuMTY2LC0wLjAzMiAtMC4zMzcsLTAuMDY2IC0wLjUwNywtMC4wOTljLTAuMjA0LC0wLjA0MiAtMC40MTMsLTAuMDg0IC0wLjYxNywtMC4xMjhjLTAuMTcxLC0wLjAzNiAtMC4zMzcsLTAuMDczIC0wLjUwMywtMC4xMWMtMC4yMDgsLTAuMDQ2IC0wLjQxMiwtMC4wOTUgLTAuNjE2LC0wLjE0NGMtMC4xNjYsLTAuMDM5IC0wLjMzMiwtMC4wNzkgLTAuNDk4LC0wLjEyYy0wLjIwOSwtMC4wNTIgLTAuNDEzLC0wLjEwNiAtMC42MTcsLTAuMTZjLTAuMTY2LC0wLjA0MyAtMC4zMjcsLTAuMDg1IC0wLjQ4OSwtMC4xM2MtMC4yMDgsLTAuMDU3IC0wLjQxNywtMC4xMTcgLTAuNjIxLC0wLjE3N2MtMC4xNjEsLTAuMDQ2IC0wLjMxOCwtMC4wOSAtMC40NzQsLTAuMTM3Yy0wLjIxNCwtMC4wNjQgLTAuNDI3LC0wLjEzMiAtMC42NDEsLTAuMTk4Yy0wLjE1MSwtMC4wNDggLTAuMjk4LC0wLjA5NCAtMC40NSwtMC4xNDJjLTAuMjIzLC0wLjA3NCAtMC40NTEsLTAuMTUgLTAuNjc0LC0wLjIyN2MtMC4xMzMsLTAuMDQ2IC0wLjI3LC0wLjA5MSAtMC40MDMsLTAuMTM4Yy0wLjI2MSwtMC4wOTIgLTAuNTIyLC0wLjE4NyAtMC43NzgsLTAuMjgzYy0wLjAxOSwtMC4wMDcgLTAuMDM4LC0wLjAxNCAtMC4wNTcsLTAuMDJjLTAuMDI4LC0wLjAxMyAtMC4wNjEsLTAuMDMgLTAuMDksLTAuMDQxYy0yLjM4MSwtMC44OTQgLTQuNjcyLC0xLjk1OSAtNi44NTksLTMuMTkzYy0wLjAxNCwtMC4wMDYgLTAuMDIzLC0wLjAxMyAtMC4wMzgsLTAuMDJjLTAuMzI3LC0wLjE4NCAtMC42NDksLTAuMzczIC0wLjk3MiwtMC41NjVjLTAuMDc2LC0wLjA0NSAtMC4xNTIsLTAuMDkyIC0wLjIyOCwtMC4xMzhjLTAuMjU2LC0wLjE1NSAtMC41MTIsLTAuMzEyIC0wLjc2MywtMC40NzFjLTAuMTI0LC0wLjA3NiAtMC4yNDIsLTAuMTUzIC0wLjM2NiwtMC4yM2MtMC4yMDQsLTAuMTMyIC0wLjQxMiwtMC4yNjcgLTAuNjE2LC0wLjQwM2MtMC4xNDMsLTAuMDk0IC0wLjI4NSwtMC4xODggLTAuNDIyLC0wLjI4M2MtMC4wMzQsLTAuMDI0IC0wLjA3MiwtMC4wNDcgLTAuMTA1LC0wLjA3MWMtMC4xNDcsLTAuMTAyIC0wLjI5OSwtMC4yMDUgLTAuNDQ2LC0wLjMwOGMtMC4xMzIsLTAuMDkzIC0wLjI2NSwtMC4xODYgLTAuMzk4LC0wLjI4Yy0wLjA4MSwtMC4wNTcgLTAuMTU3LC0wLjExNSAtMC4yMzcsLTAuMTcyYy0wLjEwOSwtMC4wNzkgLTAuMjIzLC0wLjE2IC0wLjMzMiwtMC4yNGMtMC4xMjQsLTAuMDkxIC0wLjI0NywtMC4xODIgLTAuMzY1LC0wLjI3M2MtMC4wOTUsLTAuMDcgLTAuMTksLTAuMTQgLTAuMjgsLTAuMjExYy0wLjEwOSwtMC4wOCAtMC4yMTQsLTAuMTYxIC0wLjMxOCwtMC4yNDJjLTAuMTA5LC0wLjA4NiAtMC4yMjMsLTAuMTcyIC0wLjMzMiwtMC4yNThjLTAuMDk1LC0wLjA3NyAtMC4xOTUsLTAuMTU1IC0wLjI5NCwtMC4yMzNjLTAuMTE0LC0wLjA5IC0wLjIyOCwtMC4xODMgLTAuMzQyLC0wLjI3NGMtMC4wOTUsLTAuMDgxIC0wLjE5LC0wLjE1NyAtMC4yODQsLTAuMjMzYy0wLjEsLTAuMDgxIC0wLjE5NSwtMC4xNjIgLTAuMjk0LC0wLjI0M2MtMC4xMzMsLTAuMTE1IC0wLjI2NiwtMC4yMjkgLTAuMzk5LC0wLjMzOWMtMC4wNzYsLTAuMDY2IC0wLjE1NiwtMC4xMzMgLTAuMjMyLC0wLjIwNWMtMC4wOSwtMC4wNzYgLTAuMTgxLC0wLjE1MiAtMC4yNzEsLTAuMjI4Yy0wLjAyOCwtMC4wMjkgLTAuMDU3LC0wLjA1NyAtMC4wOSwtMC4wODFjMC42NDEsLTEuMzYzIDEuNTE4LC0yLjYyMSAyLjU5NSwtMy43MDNsNC43NDMsLTQuNzY2YzMuOTk0LC00LjAxNyA2LjE5NSwtOS4zNTUgNi4xOTUsLTE1LjAyNmwwLC00LjQ1NmMwLC00LjgyNyAtMS44NzQsLTkuMzY5IC01LjI3NSwtMTIuNzg2bC0wLjA0MiwtMC4wNDhjLTIuNiwtMi42MTEgLTYuMDUzLC00LjA0NiAtOS43MjksLTQuMDQ2Yy0wLjM3LDAgLTAuNzAyLC0wLjEzOCAtMC45NTgsLTAuMzk1bC0yLjE3NywtMi4xOTJjLTIuNjg1LC0yLjY5MyAtNi4wNjIsLTQuNDI4IC05LjczLC01LjAzM2MwLjAwMSwtMC4wMDUgMC4wMDEsLTAuMDA1IDAuMDAyLC0wLjAwOWMwLjE4MywtMC41NzIgMC4zNzcsLTEuMTM1IDAuNTc4LC0xLjY5N2MwLjAyNSwtMC4wNjcgMC4wNDgsLTAuMTM4IDAuMDcyLC0wLjIwNWMwLjE5NCwtMC41MjkgMC4zOTcsLTEuMDU4IDAuNjA4LC0xLjU3N2MwLjAzNiwtMC4wOTEgMC4wNzMsLTAuMTgxIDAuMTEsLTAuMjcyYzAuMjA4LC0wLjUxIDAuNDI0LC0xLjAxNSAwLjY0OCwtMS41MTFjMC4wNDQsLTAuMSAwLjA4NywtMC4xOTUgMC4xMzEsLTAuMjljMC4yMjcsLTAuNDk2IDAuNDYxLC0wLjk4NyAwLjcwMiwtMS40NzNjMC4wNDMsLTAuMDkgMC4wODgsLTAuMTc2IDAuMTMyLC0wLjI2MmMwLjI0OCwtMC40OTYgMC41MDUsLTAuOTg2IDAuNzcsLTEuNDczYzAuMDMzLC0wLjA1NyAwLjA2NywtMC4xMTkgMC4xLC0wLjE3NmMwLjI2MSwtMC40NzYgMC41MzEsLTAuOTQzIDAuODExLC0xLjQxYzAuMDI4LC0wLjA0OCAwLjA1NywtMC4wOTYgMC4wODUsLTAuMTQzYzAuMjg1LC0wLjQ3MiAwLjU3NCwtMC45MzkgMC44NzMsLTEuMzk3YzAuMDU3LC0wLjA4NiAwLjEwOSwtMC4xNzEgMC4xNjYsLTAuMjUyYzAuMjg5LC0wLjQ0NCAwLjU4MywtMC44NzcgMC44ODcsLTEuMzA2YzAuMDY2LC0wLjA5NSAwLjEzOCwtMC4xOTYgMC4yMDQsLTAuMjkxYzAuMzA0LC0wLjQxOSAwLjYwNywtMC44MzQgMC45MiwtMS4yNDRjMC4wNzYsLTAuMDk1IDAuMTQ3LC0wLjE5IDAuMjIzLC0wLjI5YzAuMzE4LC0wLjQxIDAuNjQsLTAuODE1IDAuOTcyLC0xLjIxMWMwLjA2NywtMC4wODYgMC4xMzgsLTAuMTY3IDAuMjA5LC0wLjI1MmMwLjM0MiwtMC40MDUgMC42ODgsLTAuODExIDEuMDQ0LC0xLjIxMWMwLjA0NywtMC4wNTIgMC4wOTksLTAuMTA1IDAuMTQ3LC0wLjE2MmMwLjM0MSwtMC4zNzYgMC42ODMsLTAuNzQzIDEuMDM0LC0xLjEwNmMwLjA2MSwtMC4wNjEgMC4xMTgsLTAuMTIzIDAuMTgsLTAuMTg1YzAuMzYsLTAuMzc3IDAuNzM1LC0wLjc0NCAxLjExLC0xLjEwNmMwLjA4NSwtMC4wODEgMC4xNzEsLTAuMTY3IDAuMjU2LC0wLjI0OGMwLjM2NSwtMC4zNDggMC43NCwtMC42OTEgMS4xMTUsLTEuMDI5YzAuMDk5LC0wLjA4NiAwLjE5NCwtMC4xNzIgMC4yODksLTAuMjU4YzAuMzgsLTAuMzMzIDAuNzY0LC0wLjY1NyAxLjE1MywtMC45ODFjMC4wOTUsLTAuMDc2IDAuMTk0LC0wLjE1OCAwLjI4OSwtMC4yMzljMC4zOTgsLTAuMzE5IDAuNzk3LC0wLjYzOCAxLjIwNSwtMC45NDhjMC4wODUsLTAuMDY3IDAuMTcxLC0wLjEyOSAwLjI1NiwtMC4xOTFjMC40MTMsLTAuMzE0IDAuODMsLTAuNjE5IDEuMjUyLC0wLjkxNWMwLjA2NywtMC4wNDIgMC4xMjgsLTAuMDkgMC4xOTUsLTAuMTMzYzAuNDEyLC0wLjI5MSAwLjgzNCwtMC41NzIgMS4yNTcsLTAuODQ4YzAuMDgsLTAuMDUzIDAuMTYxLC0wLjEwNSAwLjI0MiwtMC4xNTdjMC40MzYsLTAuMjgyIDAuODc3LC0wLjU1MyAxLjMyMywtMC44MmMwLjEwNCwtMC4wNjIgMC4yMDQsLTAuMTI0IDAuMzA4LC0wLjE4NmMwLjQzNywtMC4yNTcgMC44ODIsLTAuNTEgMS4zMjgsLTAuNzUzYzAuMTA5LC0wLjA2MiAwLjIxOSwtMC4xMTkgMC4zMjgsLTAuMTc2YzAuNDU1LC0wLjI0MyAwLjkwNiwtMC40ODIgMS4zNjYsLTAuNzFjMC4xMDQsLTAuMDUzIDAuMjA4LC0wLjEgMC4zMTMsLTAuMTUzYzAuNDc0LC0wLjIyOSAwLjk0OCwtMC40NTcgMS40MjcsLTAuNjcyYzAuMDgxLC0wLjAzOCAwLjE2NywtMC4wNzEgMC4yNDcsLTAuMTA5YzAuNDg0LC0wLjIxIDAuOTY4LC0wLjQyIDEuNDYxLC0wLjYyYzAuMDQ4LC0wLjAxOSAwLjEsLTAuMDM4IDAuMTUyLC0wLjA2MmMwLjUwMywtMC4yIDEuMDE1LC0wLjM5NiAxLjUyNywtMC41NzdjMC4wODYsLTAuMDMzIDAuMTcxLC0wLjA2NiAwLjI1NiwtMC4wOTVjMC41MDMsLTAuMTgxIDEuMDExLC0wLjM0OCAxLjUyMywtMC41MTVjMC4xMDQsLTAuMDMzIDAuMjA5LC0wLjA2NiAwLjMxMywtMC4xYzAuNTAzLC0wLjE1NyAxLjAxNSwtMC4zMDUgMS41MjcsLTAuNDQ4YzAuMTA1LC0wLjAyOCAwLjIxNCwtMC4wNTcgMC4zMTgsLTAuMDg1YzAuNTIyLC0wLjE0MyAxLjA0NCwtMC4yNzIgMS41NjUsLTAuMzk2YzAuMDk1LC0wLjAyNCAwLjE5LC0wLjA0MyAwLjI4NSwtMC4wNjdjMC41NDUsLTAuMTI0IDEuMDkxLC0wLjI0MyAxLjY0MSwtMC4zNDhjMC4wNjIsLTAuMDA5IDAuMTE5LC0wLjAxOSAwLjE4LC0wLjAzM2MwLjU1NSwtMC4xMDUgMS4xMSwtMC4yIDEuNjcsLTAuMjg2YzAuMDQzLC0wLjAwNSAwLjA4NSwtMC4wMTQgMC4xMjgsLTAuMDE5YzAuNTY5LC0wLjA4NiAxLjEzOSwtMC4xNjIgMS43MTcsLTAuMjI5YzAuMDg2LC0wLjAwOSAwLjE2NiwtMC4wMTkgMC4yNTIsLTAuMDI4YzAuNTU5LC0wLjA2MiAxLjExOSwtMC4xMTUgMS42NzksLTAuMTU4YzAuMDk5LC0wLjAwNCAwLjIwNCwtMC4wMTQgMC4zMDMsLTAuMDE5YzAuNTYsLTAuMDQyIDEuMTIsLTAuMDcxIDEuNjc5LC0wLjA5YzAuMDQ4LC0wLjAwNSAwLjA5NSwtMC4wMDUgMC4xMzgsLTAuMDA1YzAuMDcxLDAuMjgxIDAuMTUyLDAuNTU4IDAuMjQ3LDAuODI5bC02LjMwOSwwLjUxNWMtNC42NTMsMC4wOTEgLTguNDI5LDMuODc0IC04LjUxOSw4LjU1bC0wLjk3NywwLjk4MWMtMy4xMjEsMy4xMzYgLTQuODM4LDcuMzExIC00LjgzOCwxMS43NDNsMCwzLjM3OWMwLDQuNTIyIDMuNjYyLDguMTk2IDguMTU4LDguMTk2bDEuNDIzLDBjLTMuMDk3LDIuMzA3IC01LjExMyw2LjAwNSAtNS4xMTMsMTAuMTY1bDAsMy44MThjMCw2LjQ1NyA0Ljk3MSwxMS43NzEgMTEuMjcsMTIuMjgxbDAsNS41MDljMCw0LjczMiAxLjgzMSw5LjE3OCA1LjE2MSwxMi41MTlsMS4xMzgsMS4xNDRjMC42MDMsMC42MSAwLjkyNSwxLjM4MiAwLjkyNSwyLjI0NGMwLDIuODY5IDEuMTE1LDUuNTcyIDMuMTM2LDcuNjA1YzIuMDI1LDIuMDI3IDQuNzEsMy4xNDQgNy41NywzLjE0NGM0LjgwNSwwIDguNzE4LC0zLjkzMiA4LjcxOCwtOC43NjFsMCwtMC4xNThjMCwtMC42NDggMC4xOCwtMS4yODYgMC41MTcsLTEuODQ0bDMuMDUsLTUuMDY2YzAuMDA5LC0wLjAxOSAwLjAxOSwtMC4wMzMgMC4wMzMsLTAuMDUybDIuNDYyLC00LjExM2MxLjIzOCwtMi4wNzMgMi43MjMsLTMuOTg0IDQuNDE2LC01LjY5NWwyLjc2LC0yLjc5MmMyLjExMSwtMi4xMzUgMi43MzMsLTUuMzA5IDEuNTg1LC04LjA5N2MtMC43MTIsLTEuNzExIC0yLjAwMiwtMy4wNSAtMy41ODYsLTMuODI3bDAsLTAuMzQzYzAsLTAuMTI5IC0wLjAwNSwtMC4yNjIgLTAuMDA1LC0wLjM5MWMxLjg5MywxLjMzNCA0LjE1LDIuMDU0IDYuNTE3LDIuMDU0YzMuMDM2LDAgNS44ODcsLTEuMTgyIDguMDM1LC0zLjMzNmMxLjQ3NiwtMS40ODIgMi41LC0zLjI5OCAyLjk5OCwtNS4yOGMwLjAzOCwwLjM3NiAwLjA3MSwwLjc1OCAwLjEsMS4xMzRjMCwwLjAyOSAwLDAuMDUzIDAuMDA1LDAuMDgxYzAuMDI4LDAuNDc3IDAuMDUyLDAuOTUzIDAuMDcxLDEuNDM1YzAuMDA0LDAuMTI4IDAuMDA5LDAuMjU3IDAuMDE0LDAuMzljMC4wMTQsMC41MDEgMC4wMjQsMS4wMDYgMC4wMjQsMS41MTFjMCwxLjQ2OCAtMC4wNjIsMi45MzYgLTAuMTk1LDQuMzk0Yy0wLjEyOCwxLjQ2MyAtMC4zMTgsMi45MTYgLTAuNTc0LDQuMzU2Yy0yLjEzNCwxLjQxIC00LjAyMiwzLjEyNiAtNS42MjEsNS4wNTZjLTAuMDQyLDAuMDUyIC0wLjA4LDAuMSAtMC4xMjMsMC4xNTNjLTAuMjE4LDAuMjY2IC0wLjQzMSwwLjU0MyAtMC42NCwwLjgxOWMtMC4wNzYsMC4wOTYgLTAuMTQ3LDAuMTk2IC0wLjIxOCwwLjI5NmMtMC4xMjgsMC4xNzYgLTAuMjUyLDAuMzUyIC0wLjM3NSwwLjUzM2MtMC4xNTcsMC4yMjQgLTAuMzA4LDAuNDUzIC0wLjQ1NSwwLjY4MmMtMC4wODYsMC4xMjkgLTAuMTcxLDAuMjYyIC0wLjI1MiwwLjM5MWMtMC4xMjMsMC4yIC0wLjI0MiwwLjQgLTAuMzYsMC42Yy0wLjAyOSwwLjA1MyAtMC4wNTcsMC4xIC0wLjA4NiwwLjE0OGMtMS4yNjEsMi4yMDIgLTIuMjE1LDQuNjA4IC0yLjc4NCw3LjE1M2MtMC4wMDksMC4wMzggLTAuMDE5LDAuMDc2IC0wLjAyOCwwLjExNGMtMC4wNDgsMC4yMjkgLTAuMDk1LDAuNDYzIC0wLjE0MywwLjY5NmMtMC4wMjgsMC4xNDMgLTAuMDUyLDAuMjg2IC0wLjA3NiwwLjQzNGMtMC4wNTIsMC4yODEgLTAuMDk1LDAuNTcyIC0wLjEzNywwLjg1OGMtMC4wMjksMC4yMTkgLTAuMDU3LDAuNDQzIC0wLjA4MSwwLjY2MmMtMC4wMTksMC4xMzQgLTAuMDMzLDAuMjY3IC0wLjA0NywwLjQwNWMtMC4wMzMsMC4zNDggLTAuMDU3LDAuNjk2IC0wLjA4MSwxLjA0OWMtMC4wMDUsMC4wOTUgLTAuMDA1LDAuMTkgLTAuMDA5LDAuMjg2Yy0wLjAxOSwwLjM4NiAtMC4wMzQsMC43NzIgLTAuMDM0LDEuMTU4bDAsMi40OTdjLTAuMzE3LDAuMzY3IC0wLjY0NSwwLjcyNCAtMC45ODEsMS4wODJjLTAuMDYyLDAuMDcxIC0wLjEyOSwwLjEzOCAtMC4xOTUsMC4yMDljLTAuMjc1LDAuMjg2IC0wLjU1LDAuNTc3IC0wLjgzLDAuODU4Yy0wLjA2NiwwLjA3MiAtMC4xMzgsMC4xMzggLTAuMjA0LDAuMjA1Yy0wLjI4OSwwLjI5MSAtMC41NzksMC41NzIgLTAuODczLDAuODUzYy0wLjA1NywwLjA1MyAtMC4xMDksMC4xMDUgLTAuMTY2LDAuMTU3Yy0wLjMyMiwwLjMwNSAtMC42NTQsMC42MSAtMC45ODYsMC45MDZjLTAuMDI0LDAuMDE5IC0wLjA0OCwwLjA0MyAtMC4wNzEsMC4wNjJjLTIuNjMzLDIuMzQxIC01LjUwMyw0LjM5NCAtOC41NjIsNi4xMmMwLDAuMDAxIC0wLjAwNSwwLjAwMiAtMC4wMDUsMC4wMDNjLTEuMjg1LDAuNzI0IC0yLjU5OSwxLjM4OSAtMy45NDYsMS45OTZjLTAuMTQzLDAuMDY1IC0wLjI5LDAuMTI2IC0wLjQzMiwwLjE4OWMtMC4yNzUsMC4xMjIgLTAuNTU1LDAuMjQxIC0wLjgzLDAuMzU3Yy0wLjE5OSwwLjA4NCAtMC40MDMsMC4xNjUgLTAuNjAyLDAuMjQ1Wm0xOC42ODMsLTMuMTk2bDAsNi42MjNsLTkuMzUzLDBjMy4zMTUsLTEuODczIDYuNDU1LC00LjA4OSA5LjM1MywtNi42MjNabTI1LjM5MSwzNC44OTJsLTQzLjAzMSwwbDAsLTIxLjEyMWw0My4wMzEsMGwwLDIxLjEyMVptMjEuNjExLC02OS4yMjRjMCw4LjI2NCAtMy45MjgsMTYuMTU2IC0xMC41MDcsMjEuMTEyYy00LjEyNiwzLjExMiAtMTEuMDU2LDE0LjkyMiAtMTMuNzg4LDE5Ljg0M2wtMTUuNTkyLDBsMCwtMTkuMTY2YzAsLTAuMjc3IDAuMDEsLTAuNTUzIDAuMDI0LC0wLjgzYzAuMDA1LC0wLjA4MSAwLjAwNSwtMC4xNjIgMC4wMSwtMC4yNDNjMC4wMTQsLTAuMjMzIDAuMDMzLC0wLjQ3MSAwLjA1NiwtMC43MDVjMC4wMSwtMC4xMTQgMC4wMjQsLTAuMjMzIDAuMDM4LC0wLjM1M2MwLjAxOSwtMC4xNTcgMC4wMzgsLTAuMzA5IDAuMDU3LC0wLjQ2N2MwLjAyNCwtMC4xNDMgMC4wNDMsLTAuMjkgMC4wNjcsLTAuNDMzYzAuMDE0LC0wLjA3NyAwLjAyOCwtMC4xNTMgMC4wNDIsLTAuMjI5YzAuMDU3LC0wLjMzNCAwLjEyOCwtMC42NjcgMC4yMDQsLTAuOTkxYzAsLTAuMDE1IDAuMDA1LC0wLjAyOSAwLjAxLC0wLjA0M2MwLjQ2OSwtMS45NzggMS4yNjIsLTMuODU2IDIuMzI5LC01LjU2NmMwLjE4LC0wLjI5MSAwLjM3LC0wLjU3MiAwLjU2NCwtMC44NTNjMC4wNTIsLTAuMDcyIDAuMTA1LC0wLjE0MyAwLjE1MiwtMC4yMTVjMC4wODUsLTAuMTEgMC4xNjYsLTAuMjI0IDAuMjUxLC0wLjMzM2MwLjA5NSwtMC4xMjQgMC4xOSwtMC4yNDggMC4yOSwtMC4zNzJjMC4wNjYsLTAuMDgxIDAuMTI4LC0wLjE1NyAwLjE5NCwtMC4yMzhjMC4xNDcsLTAuMTgyIDAuMzA0LC0wLjM1OCAwLjQ2LC0wLjUzNGMwLjA0MywtMC4wNTMgMC4wOSwtMC4xIDAuMTM4LC0wLjE1M2MwLjE3MSwtMC4xODYgMC4zNDYsLTAuMzcxIDAuNTIyLC0wLjU1M2MwLjAwNCwtMC4wMDQgMC4wMTQsLTAuMDA5IDAuMDE5LC0wLjAxNGMwLjIwNCwtMC4yMDUgMC40MDgsLTAuNDA1IDAuNjIxLC0wLjZjMC4wMTQsLTAuMDEgMC4wMjgsLTAuMDI0IDAuMDQzLC0wLjAzNGMwLjY0LC0wLjU4NiAxLjMyMywtMS4xMjQgMi4wNDQsLTEuNjE1YzAuMDE0LC0wLjAxIDAuMDI5LC0wLjAxOSAwLjAzOCwtMC4wMjljMi45NSwtMS45OTcgNi40OTgsLTMuMTY0IDEwLjMxMiwtMy4xNjRsMC42OTIsMGMxLjk2NCwwIDMuNTU4LC0xLjYwMSAzLjU1OCwtMy41NzRjMCwtMS45NzMgLTEuNTk0LC0zLjU3NSAtMy41NTgsLTMuNTc1bC0wLjY5MiwwYy0yLjIxNSwwIC00LjM2OSwwLjI4NiAtNi40MTgsMC44MmMwLjE2NiwtMS43NzggMC4yNTIsLTMuNTYgMC4yNTIsLTUuMzQ3YzAsLTUuMjA0IC0wLjcwMiwtMTAuMzU2IC0yLjA4NywtMTUuMzIxYy0yLjYxNCwtOS4zNzQgLTcuNTA5LC0xNy43NzEgLTE0LjI4NywtMjQuNjA1Yy0wLjQ3NSwtMC40NzcgLTAuOTU4LC0wLjk0OSAtMS40NTIsLTEuNDExbDAsLTQyLjA2MWMwLC0yLjgyMiAyLjI4NiwtNS4xNjIgNS4wOSwtNS4yMTRjMS4zNTIsLTAuMDI0IDIuNjQ3LDAuNSAzLjY0NywxLjQ5MmMxLjA0OSwxLjAzNCAxLjY1MSwyLjQ2NCAxLjY1MSwzLjkyMmwwLDMyLjgxMWMwLDEuOTc4IDEuNTk0LDMuNTc0IDMuNTU4LDMuNTc0YzEuOTYzLDAgMy41NTcsLTEuNTk2IDMuNTU3LC0zLjU3NGwwLC0yNC4yMTRjMCwtMi44NzggMi4zMjksLTUuMjE4IDUuMTk0LC01LjIxOGMyLjg2NSwwIDUuMTk0LDIuMzQgNS4xOTQsNS4yMThsLTAuMDA1LDY3LjM0M2MwLDEuOTc4IDEuNTk0LDMuNTc0IDMuNTU4LDMuNTc0YzEuOTYzLDAgMy41NTcsLTEuNTk2IDMuNTU3LC0zLjU3NGwwLC0yOS40OGMwLC0wLjA0MyAwLjAwNSwtMC4wOTEgMC4wMDUsLTAuMTM4YzAsLTIuODc0IDIuMzI5LC01LjIxOSA1LjE5NCwtNS4yMTljMi44NjUsMCA1LjE5NCwyLjM0NSA1LjE5NCw1LjIxOWwwLDQ1LjMzWiIgc3R5bGU9ImZpbGw6IzQ0NDtmaWxsLXJ1bGU6bm9uemVybzsiLz48cGF0aCBkPSJNNDYuNjg5LDU3LjkyOWMtMC4wNDYsLTAuMjI5IC0wLjExNCwtMC40NTcgLTAuMjAzLC0wLjY3MmMtMC4wODksLTAuMjE0IC0wLjE5OSwtMC40MTkgLTAuMzI3LC0wLjYxNWMtMC4xMjgsLTAuMTk1IC0wLjI3OCwtMC4zODEgLTAuNDQxLC0wLjU0M2MtMC4xNjQsLTAuMTY3IC0wLjM0OSwtMC4zMTUgLTAuNTQxLC0wLjQ0M2MtMC4xOTUsLTAuMTI5IC0wLjQwMiwtMC4yNDMgLTAuNjE2LC0wLjMyOWMtMC4yMTMsLTAuMDkxIC0wLjQzNywtMC4xNTcgLTAuNjY1LC0wLjIwNWMtMC40NTksLTAuMDk1IC0wLjkzMiwtMC4wOTUgLTEuMzksMGMtMC4yMjksMC4wNDggLTAuNDUyLDAuMTE0IC0wLjY2NiwwLjIwNWMtMC4yMTMsMC4wODYgLTAuNDIsMC4yIC0wLjYxNiwwLjMyOWMtMC4xOTEsMC4xMjggLTAuMzczLDAuMjc2IC0wLjU0LDAuNDQzYy0wLjE2NCwwLjE2MiAtMC4zMSwwLjM0OCAtMC40NDEsMC41NDNjLTAuMTI5LDAuMTk2IC0wLjIzOSwwLjQwMSAtMC4zMjcsMC42MTVjLTAuMDg5LDAuMjE1IC0wLjE1NywwLjQ0MyAtMC4yMDMsMC42NzJjLTAuMDQ3LDAuMjI5IC0wLjA3MSwwLjQ2MiAtMC4wNzEsMC42OTZjMCwwLjIzMyAwLjAyNCwwLjQ2NyAwLjA3MSwwLjdjMC4wNDYsMC4yMjkgMC4xMTQsMC40NTMgMC4yMDMsMC42NjhjMC4wODgsMC4yMTQgMC4xOTgsMC40MjQgMC4zMjcsMC42MTljMC4xMzEsMC4xOTEgMC4yNzcsMC4zNzcgMC40NDEsMC41NDNjMC4xNjcsMC4xNjIgMC4zNDgsMC4zMSAwLjU0LDAuNDQ0YzAuMTk2LDAuMTI4IDAuNDAzLDAuMjM4IDAuNjE2LDAuMzI4YzAuMjE0LDAuMDkxIDAuNDM3LDAuMTU4IDAuNjY2LDAuMjA1YzAuMjMxLDAuMDQzIDAuNDYyLDAuMDY3IDAuNjk3LDAuMDY3YzAuMjMxLDAgMC40NjIsLTAuMDI0IDAuNjkzLC0wLjA2N2MwLjIyOCwtMC4wNDcgMC40NTIsLTAuMTE0IDAuNjY1LC0wLjIwNWMwLjIxNCwtMC4wOSAwLjQyMSwtMC4yIDAuNjE2LC0wLjMyOGMwLjE5MiwtMC4xMzQgMC4zNzcsLTAuMjgyIDAuNTQxLC0wLjQ0NGMwLjE2MywtMC4xNjYgMC4zMTMsLTAuMzUyIDAuNDQxLC0wLjU0M2MwLjEyOCwtMC4xOTUgMC4yMzgsLTAuNDA1IDAuMzI3LC0wLjYxOWMwLjA4OSwtMC4yMTUgMC4xNTcsLTAuNDM5IDAuMjAzLC0wLjY2OGMwLjA0NiwtMC4yMzMgMC4wNjcsLTAuNDY3IDAuMDY3LC0wLjdjMCwtMC4yMzQgLTAuMDIxLC0wLjQ2NyAtMC4wNjcsLTAuNjk2WiIgc3R5bGU9ImZpbGw6IzQ0NDtmaWxsLXJ1bGU6bm9uemVybzsiLz48cGF0aCBkPSJNMTUxLjcsNTcuOTI5Yy0wLjA0MywtMC4yMjkgLTAuMTE0LC0wLjQ1NyAtMC4xOTksLTAuNjcyYy0wLjA5LC0wLjIxNCAtMC4yLC0wLjQxOSAtMC4zMjgsLTAuNjE1Yy0wLjEyOCwtMC4xOTUgLTAuMjc5LC0wLjM4MSAtMC40NDEsLTAuNTQzYy0wLjE3MSwtMC4xNjcgLTAuMzUxLC0wLjMxNCAtMC41NDEsLTAuNDQzYy0wLjE5OSwtMC4xMjkgLTAuNDAzLC0wLjI0MyAtMC42MTYsLTAuMzI5Yy0wLjIxNCwtMC4wOTEgLTAuNDM3LC0wLjE1NyAtMC42NjQsLTAuMjA1Yy0wLjQ2LC0wLjA5NSAtMC45MzUsLTAuMDk1IC0xLjM5NSwwYy0wLjIyNywwLjA0OCAtMC40NSwwLjExNCAtMC42NjQsMC4yMDVjLTAuMjEzLDAuMDg2IC0wLjQyMiwwLjIgLTAuNjE2LDAuMzI5Yy0wLjE5NSwwLjEyOSAtMC4zNzUsMC4yNzYgLTAuNTQxLDAuNDQzYy0wLjE2MSwwLjE2MiAtMC4zMTMsMC4zNDggLTAuNDQxLDAuNTQzYy0wLjEyOCwwLjE5NiAtMC4yMzcsMC40MDEgLTAuMzI4LDAuNjE1Yy0wLjA4NSwwLjIxNSAtMC4xNTYsMC40NDMgLTAuMTk5LDAuNjcyYy0wLjA0NywwLjIyOSAtMC4wNzEsMC40NjIgLTAuMDcxLDAuNjk2YzAsMC4yMzMgMC4wMjQsMC40NjcgMC4wNzEsMC43YzAuMDQzLDAuMjI5IDAuMTE0LDAuNDUzIDAuMTk5LDAuNjY4YzAuMDkxLDAuMjE0IDAuMiwwLjQyNCAwLjMyOCwwLjYxOWMwLjEyOCwwLjE5MSAwLjI4LDAuMzc3IDAuNDQxLDAuNTQzYzAuMTY2LDAuMTYyIDAuMzQ2LDAuMzE1IDAuNTQxLDAuNDQ0YzAuMTk0LDAuMTI4IDAuNDAzLDAuMjM4IDAuNjE2LDAuMzI4YzAuMjE0LDAuMDkxIDAuNDM3LDAuMTU4IDAuNjY0LDAuMjA1YzAuMjI4LDAuMDQzIDAuNDY1LDAuMDcyIDAuNjk4LDAuMDcyYzAuMjMyLDAgMC40NjQsLTAuMDI5IDAuNjk3LC0wLjA3MmMwLjIyNywtMC4wNDcgMC40NSwtMC4xMTQgMC42NjQsLTAuMjA1YzAuMjEzLC0wLjA5IDAuNDE3LC0wLjIgMC42MTcsLTAuMzI4YzAuMTg5LC0wLjEyOSAwLjM2OSwtMC4yODIgMC41NCwtMC40NDRjMC4xNjIsLTAuMTY2IDAuMzEzLC0wLjM1MiAwLjQ0MSwtMC41NDNjMC4xMjgsLTAuMTk1IDAuMjM4LC0wLjQwNSAwLjMyOCwtMC42MTljMC4wODUsLTAuMjE1IDAuMTU2LC0wLjQzOSAwLjE5OSwtMC42NjhjMC4wNDcsLTAuMjMzIDAuMDcxLC0wLjQ2NyAwLjA3MSwtMC43YzAsLTAuMjM0IC0wLjAyNCwtMC40NjcgLTAuMDcxLC0wLjY5NloiIHN0eWxlPSJmaWxsOiM0NDQ7ZmlsbC1ydWxlOm5vbnplcm87Ii8+PC9zdmc+);
|
32 |
+
}
|
33 |
+
|
34 |
+
.coronabar-notice .cn-notice-text {
|
35 |
+
margin-right: 2em;
|
36 |
+
margin-left: 2em;
|
37 |
+
}
|
38 |
+
|
39 |
+
.coronabar-notice .cn-notice-text p:last-child {
|
40 |
+
margin-bottom: 0;
|
41 |
+
}
|
42 |
+
|
43 |
+
.coronabar-notice .cn-notice-actions {
|
44 |
+
border-left: 1px solid #999;
|
45 |
+
border-right: 1px solid #999;
|
46 |
+
margin-left: 0;
|
47 |
+
margin-right: 0;
|
48 |
+
padding: 0.25em 2em;
|
49 |
+
text-align: center;
|
50 |
+
min-width: 140px;
|
51 |
+
}
|
52 |
+
|
53 |
+
.coronabar-notice .cn-notice-actions .button {
|
54 |
+
display: inline-block;
|
55 |
+
margin: 2px 0;
|
56 |
+
}
|
57 |
+
|
58 |
+
.coronabar-notice .cn-notice-text h3 {
|
59 |
+
margin-top: 0;
|
60 |
+
}
|
61 |
+
|
62 |
+
.coronabar-notice .cn-notice-text strong {
|
63 |
+
color: #000;
|
64 |
+
}
|
65 |
+
|
66 |
+
.coronabar-notice .cn-notice-icon svg path {
|
67 |
+
fill: #666 !important;
|
68 |
+
}
|
69 |
+
|
70 |
+
@media only screen and (max-width: 600px) {
|
71 |
+
.coronabar-notice .cn-notice-container {
|
72 |
+
flex-direction: column;
|
73 |
+
}
|
74 |
+
|
75 |
+
.coronabar-notice .cn-notice-step {
|
76 |
+
flex-direction: column;
|
77 |
+
}
|
78 |
+
|
79 |
+
.coronabar-notice .cn-notice-icon {
|
80 |
+
display: none;
|
81 |
+
}
|
82 |
+
|
83 |
+
.coronabar-notice .cn-notice-actions {
|
84 |
+
border: none;
|
85 |
+
margin: 1em 0 0;
|
86 |
+
}
|
87 |
+
|
88 |
+
.coronabar-notice .cn-notice-text {
|
89 |
+
order: -1;
|
90 |
+
}
|
91 |
+
}
|
css/admin-notice.min.css
ADDED
@@ -0,0 +1 @@
|
|
|
1 |
+
.coronabar-notice{border-left-color:#00a99d;padding-left:0}.coronabar-notice .cn-notice-container{display:flex;align-items:center;padding-top:1em;padding-bottom:1em}.coronabar-notice .cn-notice-step{display:flex;align-items:center}.coronabar-notice .step-no,.coronabar-notice .step-yes{display:none}.coronabar-notice .cn-notice-icon span{margin-left:2em;margin-right:2em;width:55px;height:55px;display:block;background-position:center center;background-repeat:no-repeat;background-image:url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+PCFET0NUWVBFIHN2ZyBQVUJMSUMgIi0vL1czQy8vRFREIFNWRyAxLjEvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvR3JhcGhpY3MvU1ZHLzEuMS9EVEQvc3ZnMTEuZHRkIj48c3ZnIHdpZHRoPSIxMDAlIiBoZWlnaHQ9IjEwMCUiIHZpZXdCb3g9IjAgMCAxOTEgMTgzIiB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHhtbDpzcGFjZT0icHJlc2VydmUiIHhtbG5zOnNlcmlmPSJodHRwOi8vd3d3LnNlcmlmLmNvbS8iIHN0eWxlPSJmaWxsLXJ1bGU6ZXZlbm9kZDtjbGlwLXJ1bGU6ZXZlbm9kZDtzdHJva2UtbGluZWpvaW46cm91bmQ7c3Ryb2tlLW1pdGVybGltaXQ6MjsiPjxwYXRoIGQ9Ik0xNzQuNDY4LDQ3LjcyNmMtMS44NTUsMCAtMy42MTUsMC40MTQgLTUuMTk0LDEuMTU4bDAsLTI2LjUxNmMwLC02LjgyIC01LjUyMiwtMTIuMzY3IC0xMi4zMDksLTEyLjM2N2MtMS45NTQsMCAtMy44MDQsMC40NTggLTUuNDQ1LDEuMjc3Yy0wLjUwMywtMi40NTkgLTEuNzI3LC00Ljc1NiAtMy41MzQsLTYuNTMzYy0yLjM3NywtMi4zNDUgLTUuNDk4LC0zLjYwMyAtOC43NjEsLTMuNTM2Yy02LjY1NSwwLjEyNCAtMTIuMDcyLDUuNjcxIC0xMi4wNzIsMTIuMzYybDAsMS45ODJjLTEuNTc5LC0wLjc0MyAtMy4zMzksLTEuMTU4IC01LjE5NCwtMS4xNThjLTYuNzg3LDAgLTEyLjMxMyw1LjU0NyAtMTIuMzEzLDEyLjM2N2wwLDUuNTljLTEuNTEzLC0wLjcxNSAtMy4xODgsLTEuMTMgLTQuOTU3LC0xLjE2OGMtMy4yNzgsLTAuMDYyIC02LjM4NCwxLjE5NyAtOC43NjEsMy41NDFjLTAuMDc2LDAuMDcyIC0wLjE0NywwLjE1MyAtMC4yMjMsMC4yMjljLTAuMDcxLC0wLjA3NiAtMC4xNDIsLTAuMTUzIC0wLjIxMywtMC4yMjRjLTIuMzc3LC0yLjM0OSAtNS40OTMsLTMuNjA4IC04Ljc3MSwtMy41NDFjLTEuNzY0LDAuMDMzIC0zLjQ0MywwLjQ0OCAtNC45NTYsMS4xNjNsMCwtNS41OWMwLC02LjgyIC01LjUyMSwtMTIuMzY3IC0xMi4zMDksLTEyLjM2N2MtMS44NTUsMCAtMy42MTQsMC40MTUgLTUuMTk0LDEuMTU4bDAsLTEuOTgyYzAsLTYuNjkxIC01LjQxNywtMTIuMjM5IC0xMi4wNzIsLTEyLjM2MmMtMy4yNzUsLTAuMDY3IC02LjM4NywxLjE5MSAtOC43NjQsMy41MzZjLTEuODA0LDEuNzc3IC0zLjAzMSw0LjA3NCAtMy41MzEsNi41MzNjLTEuNjQzLC0wLjgxOSAtMy40OTIsLTEuMjc3IC01LjQ0NywtMS4yNzdjLTYuNzg3LDAgLTEyLjMwOSw1LjU0NyAtMTIuMzA5LDEyLjM2N2wwLDI2LjUxNmMtMS41NzksLTAuNzQ0IC0zLjMzOSwtMS4xNTggLTUuMTk0LC0xLjE1OGMtNi43ODcsMCAtMTIuMzA5LDUuNTUyIC0xMi4zMDksMTIuMzY3bDAsNDUuMzNjMCwxMC40OTkgNC45OTIsMjAuNTMxIDEzLjM1MiwyNi44MzFjMS45OTQsMS41MDEgNi43OTQsOC44MzggMTAuMTM1LDE0LjU0OWMtMS4xMTYsMC42MDMgLTEuODc0LDEuNzg3IC0xLjg3NCwzLjE0OGwwLDI4LjI2OWMwLDEuOTc1IDEuNTkzLDMuNTc1IDMuNTU4LDMuNTc1bDUwLjE0NiwwYzEuOTY0LDAgMy41NTgsLTEuNiAzLjU1OCwtMy41NzRsLTAuMDAxLC0yNS45MjVjMy45NjYsMC44NzYgOC4wNSwxLjMyNiAxMi4xOTUsMS4zMjZjNC4xNDYsMCA4LjIzNSwtMC40NTUgMTIuMiwtMS4zMzVsMCwyNS45MzRjMCwxLjk3NCAxLjU4OSwzLjU3NCAzLjU1OCwzLjU3NGw1MC4xNDYsMGMxLjk2NCwwIDMuNTU3LC0xLjYgMy41NTcsLTMuNTc0bDAsLTI4LjI3YzAsLTEuMzYxIC0wLjc1OSwtMi41NDUgLTEuODczLC0zLjE0OGMzLjMzOSwtNS43MSA4LjEzOSwtMTMuMDQ4IDEwLjEzMSwtMTQuNTQ5YzguMzYzLC02LjMgMTMuMzUzLC0xNi4zMzIgMTMuMzUzLC0yNi44MzFsLTAuMDAxLC00NS4zM2MwLC02LjgxNSAtNS41MjEsLTEyLjM2NyAtMTIuMzA4LC0xMi4zNjdabS01Mi41MDksLTI2LjE4MmMyLjg2NSwwIDUuMTk0LDIuMzQ0IDUuMTk0LDUuMjE4bDAsMjMuMTc1Yy0wLjQ0MSwtMC4zIC0wLjg4MiwtMC41OTEgLTEuMzI4LC0wLjg3MmMtMC4wOSwtMC4wNTcgLTAuMTc1LC0wLjExNCAtMC4yNjUsLTAuMTY3Yy0wLjUwMywtMC4zMTkgLTEuMDExLC0wLjYyOSAtMS41MjMsLTAuOTI5Yy0wLjA3NiwtMC4wNDMgLTAuMTQ3LC0wLjA4NiAtMC4yMjMsLTAuMTI5Yy0wLjUzMSwtMC4zMDUgLTEuMDY3LC0wLjYxIC0xLjYwOCwtMC45Yy0wLjAzMywtMC4wMTUgLTAuMDYyLC0wLjAyOSAtMC4wOSwtMC4wNDhjLTAuNTQxLC0wLjI5MSAtMS4wOTEsLTAuNTY3IC0xLjYzNiwtMC44MzljLTAuMDUzLC0wLjAyNCAtMC4xLC0wLjA0OCAtMC4xNDgsLTAuMDcxYy0wLjU0LC0wLjI2NyAtMS4wOSwtMC41MjUgLTEuNjQxLC0wLjc2OGMtMC4wODUsLTAuMDM4IC0wLjE3LC0wLjA4MSAtMC4yNTEsLTAuMTE0Yy0wLjUzNiwtMC4yMzggLTEuMDc3LC0wLjQ2NyAtMS42MjIsLTAuNjg2Yy0wLjAxNSwtMC4wMSAtMC4wMzQsLTAuMDE5IC0wLjA1MiwtMC4wMjRsLTAuMDAxLC0xNy42MjhjMCwtMi44NzQgMi4zMjksLTUuMjE4IDUuMTk0LC01LjIxOFptLTIxLjA0NiwxOC4yOGMxLjAwMSwtMC45ODYgMi4yODcsLTEuNTE1IDMuNjQzLC0xLjQ5MWMyLjI2OCwwLjA0MyA0LjE5OCwxLjU4MiA0Ljg1MywzLjY2Yy0wLjExNCwtMC4wMjkgLTAuMjMzLC0wLjA1NyAtMC4zNTEsLTAuMDg2Yy0wLjE4NSwtMC4wNDMgLTAuMzc1LC0wLjA5MSAtMC41NiwtMC4xMzNjLTAuMTgsLTAuMDQzIC0wLjM2MSwtMC4wODEgLTAuNTM2LC0wLjEyYy0wLjE5LC0wLjA0MiAtMC4zNzksLTAuMDg1IC0wLjU3NCwtMC4xMjNjLTAuMTc1LC0wLjAzOSAtMC4zNTYsLTAuMDc3IC0wLjUzNiwtMC4xMWMtMC4xOTQsLTAuMDM4IC0wLjM4NCwtMC4wNzYgLTAuNTc5LC0wLjExNGMtMC4xNzUsLTAuMDM0IC0wLjM1NSwtMC4wNjcgLTAuNTM2LC0wLjEwMWMtMC4xOTQsLTAuMDMzIC0wLjM4OSwtMC4wNjYgLTAuNTgzLC0wLjFjLTAuMTgsLTAuMDI4IC0wLjM2MSwtMC4wNTcgLTAuNTQxLC0wLjA4NWMtMC4xOTQsLTAuMDM0IC0wLjM4OSwtMC4wNjIgLTAuNTgzLC0wLjA5MWMtMC4xOCwtMC4wMjkgLTAuMzYxLC0wLjA1MiAtMC41NDEsLTAuMDc2Yy0wLjE5OSwtMC4wMjkgLTAuMzk0LC0wLjA1NyAtMC41OTMsLTAuMDgxYy0wLjE4LC0wLjAyNCAtMC4zNiwtMC4wNDMgLTAuNTQxLC0wLjA2N2MtMC4xOTksLTAuMDI0IC0wLjM5MywtMC4wNDMgLTAuNTkzLC0wLjA2N2MtMC4xOCwtMC4wMTkgLTAuMzY1LC0wLjAzOCAtMC41NDUsLTAuMDUyYy0wLjE5OSwtMC4wMTkgLTAuMzk4LC0wLjAzOCAtMC41OTgsLTAuMDU3Yy0wLjA5NSwtMC4wMDUgLTAuMTk0LC0wLjAxOSAtMC4yOTQsLTAuMDI0YzAuMTc2LC0wLjI0MyAwLjM3NSwtMC40NjcgMC41ODgsLTAuNjgyWm0yLjU5NSwxNC45MTJjMS45MDIsLTAuMTU3IDMuMzQ0LC0xLjc5MiAzLjI2MywtMy43MDhjLTAuMDQyLC0xLjA0MyAtMC41MjYsLTEuOTYzIC0xLjI2MSwtMi41ODdjMS4xOTUsMC4yNDMgMi4zNzYsMC41MTkgMy41NDMsMC44NDNjMTQuODIzLDQuMTQyIDI2Ljk0NywxNS4wNiAzMi41OTEsMjkuNzUybC0zLjAwMiwwYy0xLjU3NSwwIC0yLjkzNiwwLjkxIC0zLjU0OCwyLjM2OWMtMC4wMSwwLjAxNCAtMC4wMTUsMC4wMjggLTAuMDE5LDAuMDQyYy0wLjU5OCwxLjQ2OCAtMC4yNzUsMy4wNzkgMC44NDksNC4yMDhsMC44MTEsMC44MTVjMC44MiwwLjgyNSAxLjI3MSwxLjkyMSAxLjI3MSwzLjA4OGMwLDEuMTY4IC0wLjQ1MSwyLjI2NCAtMS4yNjYsMy4wODRjLTAuODAyLDAuODA1IC0xLjg2OSwxLjI0OCAtMy4wMDgsMS4yNDhjLTEuMTM4LDAgLTIuMjAxLC0wLjQ0MyAtMy4wMDIsLTEuMjQzbC0xLjk3MywtMS45ODhjLTIuNDM0LC0yLjQ0NCAtNS41MTIsLTMuOTk4IC04Ljg5NCwtNC40ODljLTEuNTEzLC0wLjIyNCAtMy4wMDMsMC41NTggLTMuNjksMS45MzVjLTAuNjg4LDEuMzcyIC0wLjQxOCwzLjAzNiAwLjY2NCw0LjEyN2wwLjU1LDAuNTUzYzEuNzUsMS43NTggMi43MTgsNC4wOTggMi43MTgsNi41ODZsMCwyLjg1YzAsMi4xNDkgMS43MzYsMy44OTMgMy44NywzLjg5M2MwLjExOSwwIDAuMjE0LDAuMDY3IDAuMjYxLDAuMTcyYzAuMDQ4LDAuMTE0IDAuMDI0LDAuMjI5IC0wLjA2MSwwLjMxNGwtMi43NjEsMi43ODhjLTIuMDk2LDIuMTE2IC0zLjkzNyw0LjQ4OSAtNS40NjksNy4wNTNsLTIuNDM4LDQuMDdjLTAuMDA1LDAuMDE0IC0wLjAxNCwwLjAyOSAtMC4wMjQsMC4wNDNsLTMuMDY5LDUuMDk5Yy0xLjAxLDEuNjczIC0xLjU0NiwzLjU5NCAtMS41NDYsNS41NDdsMCwwLjE1OGMwLDAuODg2IC0wLjcxNiwxLjYxMSAtMS42MDgsMS42MTFjLTAuOTcyLDAgLTEuODUsLTAuMzYzIC0yLjUzMywtMS4wNDljLTAuNjg4LC0wLjY5NiAtMS4wNTMsLTEuNTc3IC0xLjA1MywtMi41NWMwLC0yLjc1OSAtMS4wNjcsLTUuMzUxIC0zLjAwNywtNy4yOTZsLTEuMTQzLC0xLjE0OGMtMS45ODMsLTEuOTkyIC0zLjA3NCwtNC42NDIgLTMuMDc0LC03LjQ2M2wwLC03LjMzNGMwLC0yLjkxMiAtMi4zNTcsLTUuMjgxIC01LjI1NSwtNS4yODFsLTAuODY0LDBjLTIuODQxLDAgLTUuMTUxLC0yLjMyMSAtNS4xNTEsLTUuMTc1bDAsLTMuODE4YzAsLTMuMDIxIDIuNDQ4LC01LjQ4IDUuNDYsLTUuNDhsMjAuMzgxLDBjMS45NjksMCAzLjU1OCwtMS42MDEgMy41NTgsLTMuNTc0bDAsLTAuMjA1YzAsLTQuNDE4IC0xLjcxMiwtOC41NzMgLTQuODI0LC0xMS43Yy0wLjUwOCwtMC41MSAtMS4xNTcsLTAuODU4IC0xLjg2NCwtMC45ODZsLTE2LjIxNywtMy4wMjZjLTEuMTQ4LC0wLjIxNSAtMi4zMjksMC4xNTIgLTMuMTU1LDAuOTc3Yy0xLjA5NSwxLjA5MSAtMS42OTgsMi41NDkgLTEuNjk4LDQuMTAzYzAsMS40MjUgLTEuMTUyLDIuNTc4IC0yLjU2NiwyLjU3OGwtMi41LDBjLTAuNTc0LDAgLTEuMDQzLC0wLjQ2NyAtMS4wNDMsLTEuMDQ4bDAsLTMuMzc1YzAsLTIuNTMgMC45NzcsLTQuOTA4IDIuNzU2LC02LjY5bDEuNDYxLC0xLjQ2OGMxLjAyOSwtMS4wNDQgMS41OTMsLTIuNDIxIDEuNTkzLC0zLjg4NGwwLC0wLjUwNWMwLC0wLjg3MyAwLjcwNywtMS41ODMgMS41NzUsLTEuNTgzYzAuMDk1LDAgMC4xOTUsLTAuMDA0IDAuMjg5LC0wLjAwOWwxNS4xMjIsLTEuMjQ0Wm0tMTIuODE2LDI0LjQ5MWMxLjM4LC0xLjIzOSAyLjQwOSwtMi44NjkgMi45MDcsLTQuNzE0bDExLjgxMSwyLjIwMmMwLjYxMiwwLjc2MyAxLjA5MSwxLjYxMSAxLjQzNywyLjUxMmwtMTYuMTU1LDBabS0zLjgzMywtNDAuODk0bDAuMDk1LDBjMS4zMTQsMCAyLjU3MSwwLjUyOSAzLjU0OCwxLjQ5NmMwLjIxMywwLjIxIDAuNDEzLDAuNDM5IDAuNTg4LDAuNjgyYy0wLjAyOCwwIC0wLjA1NywwLjAwNCAtMC4wODEsMC4wMDRjLTAuMTk5LDAuMDIgLTAuMzkzLDAuMDM5IC0wLjU5MiwwLjA1OGMtMC4xOTUsMC4wMTkgLTAuMzg1LDAuMDMzIC0wLjU3OSwwLjA1N2MtMC4xOTksMC4wMTkgLTAuMzk0LDAuMDQzIC0wLjU4OCwwLjA2N2MtMC4xOTUsMC4wMjMgLTAuMzg5LDAuMDQyIC0wLjU3OSwwLjA2NmMtMC4xOTksMC4wMjQgLTAuMzk0LDAuMDUzIC0wLjU4OCwwLjA4MWMtMC4xOTUsMC4wMjQgLTAuMzg0LDAuMDUzIC0wLjU3OSwwLjA4MWMtMC4xOTQsMC4wMjkgLTAuMzg5LDAuMDYyIC0wLjU4MywwLjA5MWMtMC4xOSwwLjAyOCAtMC4zODQsMC4wNjIgLTAuNTc5LDAuMDk1Yy0wLjE5LDAuMDM0IC0wLjM4NCwwLjA2NyAtMC41NzksMC4xYy0wLjE4OSwwLjAzOCAtMC4zODQsMC4wNzIgLTAuNTc0LDAuMTA1Yy0wLjE5NCwwLjAzOCAtMC4zODQsMC4wNzYgLTAuNTc4LDAuMTE5Yy0wLjE5LDAuMDM4IC0wLjM4LDAuMDc2IC0wLjU3NCwwLjExNWMtMC4xOSwwLjA0MiAtMC4zOCwwLjA4NSAtMC41NjksMC4xMjhjLTAuMTk1LDAuMDQzIC0wLjM4NSwwLjA4NiAtMC41NzQsMC4xMjljLTAuMTksMC4wNDggLTAuMzgsMC4wOSAtMC41NywwLjEzOGMtMC4xMDksMC4wMjkgLTAuMjE4LDAuMDUzIC0wLjMyNywwLjA4MWMwLjY0NSwtMi4wOTcgMi41ODEsLTMuNjUgNC44NjIsLTMuNjkzWm0tMjIuNTk3LC0xMS41NjZjMCwtMi44NzkgMi4zMjksLTUuMjI0IDUuMTk0LC01LjIyNGMyLjg2NSwwIDUuMTk0LDIuMzQ1IDUuMTk0LDUuMjE5bDAsMTYuNzg5YzAsMC4yODYgMC4wMzMsMC41NjcgMC4wOTksMC44MzRjLTAuMDA0LDAgLTAuMDA5LDAgLTAuMDA5LDAuMDA1Yy0wLjU4OCwwLjIzMyAtMS4xNzIsMC40ODEgLTEuNzUsMC43MzljLTAuMDksMC4wMzggLTAuMTc2LDAuMDc2IC0wLjI2NiwwLjExNGMtMC41NSwwLjI0OCAtMS4xLDAuNTA1IC0xLjY0NiwwLjc3MmMtMC4wOTksMC4wNDggLTAuMjA0LDAuMSAtMC4zMDMsMC4xNDhjLTAuNTQ2LDAuMjcxIC0xLjA4NywwLjU0OCAtMS42MjMsMC44MzRjLTAuMDgsMC4wNDMgLTAuMTYxLDAuMDg1IC0wLjIzNywwLjEyOGMtMC41NTksMC4zMDUgLTEuMTEsMC42MSAtMS42NiwwLjkzNGMtMC4wMDUsMC4wMDUgLTAuMDE0LDAuMDA1IC0wLjAxOSwwLjAxYy0wLjU1LDAuMzI0IC0xLjA5MSwwLjY1OCAtMS42MzIsMS4wMDFjLTAuMDgsMC4wNDcgLTAuMTU2LDAuMDk1IC0wLjIzNywwLjE0N2MtMC4zNywwLjIzOSAtMC43NCwwLjQ4MiAtMS4xMDUsMC43MjVsMCwtMjMuMTc1Wm0tNDIuMDA1LDk5Ljc2OGMtNi41NzgsLTQuOTU2IC0xMC41MDYsLTEyLjg0OCAtMTAuNTA2LC0yMS4xMTJsMCwtNDUuMzNjMCwtMi44NzQgMi4zMywtNS4yMTkgNS4xOTQsLTUuMjE5YzIuODY1LDAgNS4xOTUsMi4zNDUgNS4xOTUsNS4yMjNjMCwwLjA0MyAwLjAwNSwwLjA4NiAwLjAwNiwwLjEyOWwwLDI5LjQ4NWMwLDEuOTc4IDEuNTkzLDMuNTc0IDMuNTU4LDMuNTc0YzEuOTY1LDAgMy41NTcsLTEuNTk2IDMuNTU3LC0zLjU3NGwtMC4wMDYsLTY3LjM0M2MwLC0yLjg3OSAyLjMzLC01LjIxOCA1LjE5NCwtNS4yMThjMi44NjQsMCA1LjE5NCwyLjMzOSA1LjE5NCw1LjIxOGwwLDI0LjIxOWMwLDEuOTczIDEuNTkzLDMuNTc0IDMuNTU4LDMuNTc0YzEuOTY1LDAgMy41NTcsLTEuNjAxIDMuNTU3LC0zLjU3NGwwLC0zMi44MTZjMCwtMS40NTkgMC42MDMsLTIuODg4IDEuNjUyLC0zLjkyMmMxLjAwMiwtMC45OTIgMi4yOTEsLTEuNTE2IDMuNjQzLC0xLjQ5MmMyLjgwOCwwLjA1MiA1LjA5NCwyLjM5MiA1LjA5NCw1LjIxOGwwLDQyLjA2N2MtMC42OTIsMC42NTIgLTEuMzY2LDEuMzIgLTIuMDI1LDIuMDA2Yy0wLjc3OCwwLjgxIC0xLjUzMiwxLjY0OSAtMi4yNjMsMi41MDdjLTAuMDc2LDAuMDkgLTAuMTUyLDAuMTgxIC0wLjIyNywwLjI3MWMtNS43NjQsNi44NjMgLTkuODgxLDE1LjA1IC0xMS44ODQsMjMuODE5Yy0wLjk0OCw0LjE1MSAtMS40MjgsOC40MyAtMS40MjgsMTIuNzI0YzAsMS43ODcgMC4wODgsMy41NjkgMC4yNTQsNS4zNDdjLTIuMDUzLC0wLjUzNCAtNC4yMDQsLTAuODIgLTYuNDIsLTAuODJsLTAuNjkxLDBjLTEuOTY1LDAgLTMuNTU3LDEuNTk3IC0zLjU1NywzLjU3NWMwLDEuOTczIDEuNTkyLDMuNTc0IDMuNTU3LDMuNTc0bDAuNjkxLDBjMy44MTgsMCA3LjM2OCwxLjE2NyAxMC4zMTcsMy4xNjljMC4wMDksMC4wMDUgMC4wMTcsMC4wMDkgMC4wMjUsMC4wMTRjMC43MjcsMC40OTYgMS40MTYsMS4wMzkgMi4wNjMsMS42M2MwLjAwOSwwLjAxIDAuMDE4LDAuMDE0IDAuMDI2LDAuMDI0YzAuNDEsMC4zNzYgMC44MDIsMC43NjcgMS4xNzYsMS4xNzdjMC4wNDIsMC4wNDggMC4wODQsMC4wOTUgMC4xMjUsMC4xMzhjMC4xNjgsMC4xOTEgMC4zMzIsMC4zNzcgMC40OTMsMC41NzJjMC4wNSwwLjA2MiAwLjA5OCwwLjEyNCAwLjE0NywwLjE4NmMwLjEwOCwwLjEzMyAwLjIxMywwLjI2NyAwLjMxNywwLjQwNWMwLjA3OSwwLjEwNSAwLjE1OCwwLjIxIDAuMjM1LDAuMzE1YzAuMDU5LDAuMDgxIDAuMTE3LDAuMTYyIDAuMTc1LDAuMjQ3YzAuMTgyLDAuMjU4IDAuMzYsMC41MjUgMC41MjksMC43OTFjMC4wMDgsMC4wMTUgMC4wMTgsMC4wMjkgMC4wMjcsMC4wNDNjMS4wNjUsMS43MDYgMS44NTMsMy41ODQgMi4zMjQsNS41NTdjMC4wMDQsMC4wMTkgMC4wMDcsMC4wMzggMC4wMTIsMC4wNTJjMC4wNzYsMC4zMjUgMC4xNDIsMC42NDkgMC4yLDAuOTc3YzAuMDE0LDAuMDgxIDAuMDMsMC4xNjIgMC4wNDMsMC4yMzljMC4wMjQsMC4xNDMgMC4wNDUsMC4yODYgMC4wNjUsMC40MjljMC4wMjIsMC4xNTcgMC4wNDIsMC4zMTkgMC4wNiwwLjQ3NmMwLjAxNCwwLjExNSAwLjAyNywwLjIzNCAwLjAzOSwwLjM0OGMwLjAyMiwwLjIzNCAwLjA0LDAuNDY3IDAuMDUzLDAuNzA1YzAuMDA1LDAuMDgxIDAuMDA5LDAuMTYyIDAuMDEyLDAuMjQzYzAuMDEyLDAuMjc3IDAuMDIxLDAuNTUzIDAuMDIxLDAuODNsMCwxOS4xNjZsLTE1LjU5MiwwYy0yLjcyOSwtNC45MjEgLTkuNjYxLC0xNi43MzEgLTEzLjc4OSwtMTkuODQzWm0zOC40OTUsLTEuMTI1Yy0wLjczLDAuNzM0IC0xLjM5NCwxLjUyNSAtMi4wMDIsMi4zNTRsMCwtMC41NDhjMCwtMC4zOSAtMC4wMDksLTAuNzc2IC0wLjAyOCwtMS4xNjJjLTAuMDA1LC0wLjA5NiAtMC4wMDksLTAuMTkxIC0wLjAxNCwtMC4yODZjLTAuMDE5LC0wLjM1MyAtMC4wNDMsLTAuNzAxIC0wLjA4MSwtMS4wNDljLTAuMDA5LC0wLjEzMyAtMC4wMjgsLTAuMjY3IC0wLjA0MywtMC40MDVjLTAuMDIzLC0wLjIxOSAtMC4wNTIsLTAuNDQzIC0wLjA4NSwtMC42NjJjLTAuMDM4LC0wLjI4NiAtMC4wODUsLTAuNTY3IC0wLjEzMywtMC44NDRjLTAuMDIzLC0wLjE1MiAtMC4wNTIsLTAuMyAtMC4wOCwtMC40NTNjLTAuMDQzLC0wLjIyOCAtMC4wOTEsLTAuNDU3IC0wLjE0MywtMC42ODZjLTAuMDA5LC0wLjA0MyAtMC4wMTksLTAuMDg2IC0wLjAyOCwtMC4xMjhjLTAuNTY5LC0yLjUzNiAtMS41MTMsLTQuOTI4IC0yLjc3LC03LjEyYy0wLjAzMywtMC4wNjIgLTAuMDcxLC0wLjEyNCAtMC4xMDUsLTAuMTgxYy0wLjExMywtMC4xOTYgLTAuMjI3LC0wLjM5MSAtMC4zNDYsLTAuNTgyYy0wLjExNCwtMC4xODEgLTAuMjMyLC0wLjM2MiAtMC4zNDYsLTAuNTQzYy0wLjExOSwtMC4xNzYgLTAuMjMzLC0wLjM0OCAtMC4zNTYsLTAuNTI0Yy0wLjEyOCwtMC4xOTEgLTAuMjYxLC0wLjM3NyAtMC4zOTgsLTAuNTYzYy0wLjA2NywtMC4wOSAtMC4xMzMsLTAuMTg1IC0wLjIsLTAuMjc2Yy0wLjIxMywtMC4yODEgLTAuNDMxLC0wLjU1OCAtMC42NTQsLTAuODM0Yy0wLjAzMywtMC4wNDMgLTAuMDcxLC0wLjA4NiAtMC4xMDQsLTAuMTI5Yy0xLjYwMywtMS45MzkgLTMuNDkzLC0zLjY1NSAtNS42MzUsLTUuMDdjLTAuNTA5LC0yLjg3NCAtMC43NjcsLTUuODEgLTAuNzY3LC04Ljc1YzAsLTIuNzc4IDAuMjMxLC01LjU1MiAwLjY4NiwtOC4yNzNjMi40MTEsMC4yODEgNC42NDUsMS4zNTggNi4zODksMy4xMDdsMi4xNzcsMi4xOTJjMS42MDMsMS42MDIgMy43MjgsMi40ODggNS45OTEsMi40ODhjMS43NzQsMCAzLjQzOSwwLjY5MSA0LjY5NiwxLjk1NGwwLjA0MywwLjA0N2MyLjA1OCwyLjA2OSAzLjE5Miw0LjgxNCAzLjE5Miw3LjczNWwwLDQuNDUxYzAsMy43NjUgLTEuNDYxLDcuMzExIC00LjExMyw5Ljk3NWwtNC43NDMsNC43NjVabTEuNjAzLDE3LjI0NmMwLjMwOSwwLjIyNiAwLjYxNywwLjQ1IDAuOTMsMC42N2MwLjEzOCwwLjA5NyAwLjI3LDAuMTk1IDAuNDEzLDAuMjkxYzAuOTIsMC42MzkgMS44NTQsMS4yNSAyLjgwOCwxLjgzYzAuMDMzLDAuMDIgMC4wNjYsMC4wMzkgMC4wOTUsMC4wNTljMC40OTMsMC4yOTkgMC45OTEsMC41ODkgMS40ODksMC44NzJsLTkuMzQsMGwwLC02LjYxOWMwLjA4NiwwLjA3MiAwLjE2NywwLjE0MiAwLjI1MiwwLjIxNGMwLjEzNywwLjEyIDAuMjgsMC4yNDIgMC40MTcsMC4zNmMwLjM0NywwLjI5MyAwLjY5OCwwLjU4MSAxLjA0OSwwLjg2NGMwLjA3NSwwLjA2NCAwLjE1NiwwLjEyOSAwLjIzMiwwLjE5MmMwLjQwMywwLjMyMSAwLjgxMSwwLjYzNSAxLjIxOSwwLjk0NGMwLjE0NywwLjEwOSAwLjI5NCwwLjIxNiAwLjQzNiwwLjMyM1ptLTI4Ljk5MSwzMS45OTFsMCwtMjEuMTIxbDQzLjAzMiwwbDAsMjEuMTIxbC00My4wMzIsMFptODAuNjEzLC0zMS42OTZjLTAuMjIzLDAuMDkgLTAuNDQ2LDAuMTc4IC0wLjY3NCwwLjI2NWMtNS41NSwyLjEzIC0xMS40OTgsMy4yNTggLTE3LjU5OCwzLjI1OGMtMC4zODgsMCAtMC43NzMsLTAuMDA0IC0xLjE2MiwtMC4wMTRjLTAuMTMyLC0wLjAwMyAtMC4yNjEsLTAuMDA5IC0wLjM5MywtMC4wMTNjLTAuMjU2LC0wLjAwNyAtMC41MTMsLTAuMDE2IC0wLjc2OSwtMC4wMjdjLTAuMTU2LC0wLjAwOCAtMC4zMDgsLTAuMDE4IC0wLjQ2NSwtMC4wMjZjLTAuMjMyLC0wLjAxMyAtMC40NiwtMC4wMjYgLTAuNjkyLC0wLjA0MmMtMC4xNjYsLTAuMDEyIC0wLjMyNywtMC4wMjYgLTAuNDg5LC0wLjAzOWMtMC4yMjMsLTAuMDE4IC0wLjQ0NiwtMC4wMzUgLTAuNjY4LC0wLjA1NmMtMC4xNjYsLTAuMDE2IC0wLjMzMiwtMC4wMzMgLTAuNDk5LC0wLjA1MWMtMC4yMTgsLTAuMDIyIC0wLjQzMSwtMC4wNDUgLTAuNjQ1LC0wLjA3Yy0wLjE3LC0wLjAyIC0wLjM0MSwtMC4wNDIgLTAuNTEyLC0wLjA2NGMtMC4yMDksLTAuMDI3IC0wLjQyMiwtMC4wNTQgLTAuNjMxLC0wLjA4NGMtMC4xNywtMC4wMjQgLTAuMzQxLC0wLjA1IC0wLjUxMiwtMC4wNzZjLTAuMjA5LC0wLjAzMSAtMC40MTcsLTAuMDY0IC0wLjYyNiwtMC4wOTljLTAuMTcxLC0wLjAyOCAtMC4zNDIsLTAuMDU3IC0wLjUxMiwtMC4wODdjLTAuMjA5LC0wLjAzNyAtMC40MTMsLTAuMDc0IC0wLjYyMiwtMC4xMTNjLTAuMTY2LC0wLjAzMiAtMC4zMzcsLTAuMDY2IC0wLjUwNywtMC4wOTljLTAuMjA0LC0wLjA0MiAtMC40MTMsLTAuMDg0IC0wLjYxNywtMC4xMjhjLTAuMTcxLC0wLjAzNiAtMC4zMzcsLTAuMDczIC0wLjUwMywtMC4xMWMtMC4yMDgsLTAuMDQ2IC0wLjQxMiwtMC4wOTUgLTAuNjE2LC0wLjE0NGMtMC4xNjYsLTAuMDM5IC0wLjMzMiwtMC4wNzkgLTAuNDk4LC0wLjEyYy0wLjIwOSwtMC4wNTIgLTAuNDEzLC0wLjEwNiAtMC42MTcsLTAuMTZjLTAuMTY2LC0wLjA0MyAtMC4zMjcsLTAuMDg1IC0wLjQ4OSwtMC4xM2MtMC4yMDgsLTAuMDU3IC0wLjQxNywtMC4xMTcgLTAuNjIxLC0wLjE3N2MtMC4xNjEsLTAuMDQ2IC0wLjMxOCwtMC4wOSAtMC40NzQsLTAuMTM3Yy0wLjIxNCwtMC4wNjQgLTAuNDI3LC0wLjEzMiAtMC42NDEsLTAuMTk4Yy0wLjE1MSwtMC4wNDggLTAuMjk4LC0wLjA5NCAtMC40NSwtMC4xNDJjLTAuMjIzLC0wLjA3NCAtMC40NTEsLTAuMTUgLTAuNjc0LC0wLjIyN2MtMC4xMzMsLTAuMDQ2IC0wLjI3LC0wLjA5MSAtMC40MDMsLTAuMTM4Yy0wLjI2MSwtMC4wOTIgLTAuNTIyLC0wLjE4NyAtMC43NzgsLTAuMjgzYy0wLjAxOSwtMC4wMDcgLTAuMDM4LC0wLjAxNCAtMC4wNTcsLTAuMDJjLTAuMDI4LC0wLjAxMyAtMC4wNjEsLTAuMDMgLTAuMDksLTAuMDQxYy0yLjM4MSwtMC44OTQgLTQuNjcyLC0xLjk1OSAtNi44NTksLTMuMTkzYy0wLjAxNCwtMC4wMDYgLTAuMDIzLC0wLjAxMyAtMC4wMzgsLTAuMDJjLTAuMzI3LC0wLjE4NCAtMC42NDksLTAuMzczIC0wLjk3MiwtMC41NjVjLTAuMDc2LC0wLjA0NSAtMC4xNTIsLTAuMDkyIC0wLjIyOCwtMC4xMzhjLTAuMjU2LC0wLjE1NSAtMC41MTIsLTAuMzEyIC0wLjc2MywtMC40NzFjLTAuMTI0LC0wLjA3NiAtMC4yNDIsLTAuMTUzIC0wLjM2NiwtMC4yM2MtMC4yMDQsLTAuMTMyIC0wLjQxMiwtMC4yNjcgLTAuNjE2LC0wLjQwM2MtMC4xNDMsLTAuMDk0IC0wLjI4NSwtMC4xODggLTAuNDIyLC0wLjI4M2MtMC4wMzQsLTAuMDI0IC0wLjA3MiwtMC4wNDcgLTAuMTA1LC0wLjA3MWMtMC4xNDcsLTAuMTAyIC0wLjI5OSwtMC4yMDUgLTAuNDQ2LC0wLjMwOGMtMC4xMzIsLTAuMDkzIC0wLjI2NSwtMC4xODYgLTAuMzk4LC0wLjI4Yy0wLjA4MSwtMC4wNTcgLTAuMTU3LC0wLjExNSAtMC4yMzcsLTAuMTcyYy0wLjEwOSwtMC4wNzkgLTAuMjIzLC0wLjE2IC0wLjMzMiwtMC4yNGMtMC4xMjQsLTAuMDkxIC0wLjI0NywtMC4xODIgLTAuMzY1LC0wLjI3M2MtMC4wOTUsLTAuMDcgLTAuMTksLTAuMTQgLTAuMjgsLTAuMjExYy0wLjEwOSwtMC4wOCAtMC4yMTQsLTAuMTYxIC0wLjMxOCwtMC4yNDJjLTAuMTA5LC0wLjA4NiAtMC4yMjMsLTAuMTcyIC0wLjMzMiwtMC4yNThjLTAuMDk1LC0wLjA3NyAtMC4xOTUsLTAuMTU1IC0wLjI5NCwtMC4yMzNjLTAuMTE0LC0wLjA5IC0wLjIyOCwtMC4xODMgLTAuMzQyLC0wLjI3NGMtMC4wOTUsLTAuMDgxIC0wLjE5LC0wLjE1NyAtMC4yODQsLTAuMjMzYy0wLjEsLTAuMDgxIC0wLjE5NSwtMC4xNjIgLTAuMjk0LC0wLjI0M2MtMC4xMzMsLTAuMTE1IC0wLjI2NiwtMC4yMjkgLTAuMzk5LC0wLjMzOWMtMC4wNzYsLTAuMDY2IC0wLjE1NiwtMC4xMzMgLTAuMjMyLC0wLjIwNWMtMC4wOSwtMC4wNzYgLTAuMTgxLC0wLjE1MiAtMC4yNzEsLTAuMjI4Yy0wLjAyOCwtMC4wMjkgLTAuMDU3LC0wLjA1NyAtMC4wOSwtMC4wODFjMC42NDEsLTEuMzYzIDEuNTE4LC0yLjYyMSAyLjU5NSwtMy43MDNsNC43NDMsLTQuNzY2YzMuOTk0LC00LjAxNyA2LjE5NSwtOS4zNTUgNi4xOTUsLTE1LjAyNmwwLC00LjQ1NmMwLC00LjgyNyAtMS44NzQsLTkuMzY5IC01LjI3NSwtMTIuNzg2bC0wLjA0MiwtMC4wNDhjLTIuNiwtMi42MTEgLTYuMDUzLC00LjA0NiAtOS43MjksLTQuMDQ2Yy0wLjM3LDAgLTAuNzAyLC0wLjEzOCAtMC45NTgsLTAuMzk1bC0yLjE3NywtMi4xOTJjLTIuNjg1LC0yLjY5MyAtNi4wNjIsLTQuNDI4IC05LjczLC01LjAzM2MwLjAwMSwtMC4wMDUgMC4wMDEsLTAuMDA1IDAuMDAyLC0wLjAwOWMwLjE4MywtMC41NzIgMC4zNzcsLTEuMTM1IDAuNTc4LC0xLjY5N2MwLjAyNSwtMC4wNjcgMC4wNDgsLTAuMTM4IDAuMDcyLC0wLjIwNWMwLjE5NCwtMC41MjkgMC4zOTcsLTEuMDU4IDAuNjA4LC0xLjU3N2MwLjAzNiwtMC4wOTEgMC4wNzMsLTAuMTgxIDAuMTEsLTAuMjcyYzAuMjA4LC0wLjUxIDAuNDI0LC0xLjAxNSAwLjY0OCwtMS41MTFjMC4wNDQsLTAuMSAwLjA4NywtMC4xOTUgMC4xMzEsLTAuMjljMC4yMjcsLTAuNDk2IDAuNDYxLC0wLjk4NyAwLjcwMiwtMS40NzNjMC4wNDMsLTAuMDkgMC4wODgsLTAuMTc2IDAuMTMyLC0wLjI2MmMwLjI0OCwtMC40OTYgMC41MDUsLTAuOTg2IDAuNzcsLTEuNDczYzAuMDMzLC0wLjA1NyAwLjA2NywtMC4xMTkgMC4xLC0wLjE3NmMwLjI2MSwtMC40NzYgMC41MzEsLTAuOTQzIDAuODExLC0xLjQxYzAuMDI4LC0wLjA0OCAwLjA1NywtMC4wOTYgMC4wODUsLTAuMTQzYzAuMjg1LC0wLjQ3MiAwLjU3NCwtMC45MzkgMC44NzMsLTEuMzk3YzAuMDU3LC0wLjA4NiAwLjEwOSwtMC4xNzEgMC4xNjYsLTAuMjUyYzAuMjg5LC0wLjQ0NCAwLjU4MywtMC44NzcgMC44ODcsLTEuMzA2YzAuMDY2LC0wLjA5NSAwLjEzOCwtMC4xOTYgMC4yMDQsLTAuMjkxYzAuMzA0LC0wLjQxOSAwLjYwNywtMC44MzQgMC45MiwtMS4yNDRjMC4wNzYsLTAuMDk1IDAuMTQ3LC0wLjE5IDAuMjIzLC0wLjI5YzAuMzE4LC0wLjQxIDAuNjQsLTAuODE1IDAuOTcyLC0xLjIxMWMwLjA2NywtMC4wODYgMC4xMzgsLTAuMTY3IDAuMjA5LC0wLjI1MmMwLjM0MiwtMC40MDUgMC42ODgsLTAuODExIDEuMDQ0LC0xLjIxMWMwLjA0NywtMC4wNTIgMC4wOTksLTAuMTA1IDAuMTQ3LC0wLjE2MmMwLjM0MSwtMC4zNzYgMC42ODMsLTAuNzQzIDEuMDM0LC0xLjEwNmMwLjA2MSwtMC4wNjEgMC4xMTgsLTAuMTIzIDAuMTgsLTAuMTg1YzAuMzYsLTAuMzc3IDAuNzM1LC0wLjc0NCAxLjExLC0xLjEwNmMwLjA4NSwtMC4wODEgMC4xNzEsLTAuMTY3IDAuMjU2LC0wLjI0OGMwLjM2NSwtMC4zNDggMC43NCwtMC42OTEgMS4xMTUsLTEuMDI5YzAuMDk5LC0wLjA4NiAwLjE5NCwtMC4xNzIgMC4yODksLTAuMjU4YzAuMzgsLTAuMzMzIDAuNzY0LC0wLjY1NyAxLjE1MywtMC45ODFjMC4wOTUsLTAuMDc2IDAuMTk0LC0wLjE1OCAwLjI4OSwtMC4yMzljMC4zOTgsLTAuMzE5IDAuNzk3LC0wLjYzOCAxLjIwNSwtMC45NDhjMC4wODUsLTAuMDY3IDAuMTcxLC0wLjEyOSAwLjI1NiwtMC4xOTFjMC40MTMsLTAuMzE0IDAuODMsLTAuNjE5IDEuMjUyLC0wLjkxNWMwLjA2NywtMC4wNDIgMC4xMjgsLTAuMDkgMC4xOTUsLTAuMTMzYzAuNDEyLC0wLjI5MSAwLjgzNCwtMC41NzIgMS4yNTcsLTAuODQ4YzAuMDgsLTAuMDUzIDAuMTYxLC0wLjEwNSAwLjI0MiwtMC4xNTdjMC40MzYsLTAuMjgyIDAuODc3LC0wLjU1MyAxLjMyMywtMC44MmMwLjEwNCwtMC4wNjIgMC4yMDQsLTAuMTI0IDAuMzA4LC0wLjE4NmMwLjQzNywtMC4yNTcgMC44ODIsLTAuNTEgMS4zMjgsLTAuNzUzYzAuMTA5LC0wLjA2MiAwLjIxOSwtMC4xMTkgMC4zMjgsLTAuMTc2YzAuNDU1LC0wLjI0MyAwLjkwNiwtMC40ODIgMS4zNjYsLTAuNzFjMC4xMDQsLTAuMDUzIDAuMjA4LC0wLjEgMC4zMTMsLTAuMTUzYzAuNDc0LC0wLjIyOSAwLjk0OCwtMC40NTcgMS40MjcsLTAuNjcyYzAuMDgxLC0wLjAzOCAwLjE2NywtMC4wNzEgMC4yNDcsLTAuMTA5YzAuNDg0LC0wLjIxIDAuOTY4LC0wLjQyIDEuNDYxLC0wLjYyYzAuMDQ4LC0wLjAxOSAwLjEsLTAuMDM4IDAuMTUyLC0wLjA2MmMwLjUwMywtMC4yIDEuMDE1LC0wLjM5NiAxLjUyNywtMC41NzdjMC4wODYsLTAuMDMzIDAuMTcxLC0wLjA2NiAwLjI1NiwtMC4wOTVjMC41MDMsLTAuMTgxIDEuMDExLC0wLjM0OCAxLjUyMywtMC41MTVjMC4xMDQsLTAuMDMzIDAuMjA5LC0wLjA2NiAwLjMxMywtMC4xYzAuNTAzLC0wLjE1NyAxLjAxNSwtMC4zMDUgMS41MjcsLTAuNDQ4YzAuMTA1LC0wLjAyOCAwLjIxNCwtMC4wNTcgMC4zMTgsLTAuMDg1YzAuNTIyLC0wLjE0MyAxLjA0NCwtMC4yNzIgMS41NjUsLTAuMzk2YzAuMDk1LC0wLjAyNCAwLjE5LC0wLjA0MyAwLjI4NSwtMC4wNjdjMC41NDUsLTAuMTI0IDEuMDkxLC0wLjI0MyAxLjY0MSwtMC4zNDhjMC4wNjIsLTAuMDA5IDAuMTE5LC0wLjAxOSAwLjE4LC0wLjAzM2MwLjU1NSwtMC4xMDUgMS4xMSwtMC4yIDEuNjcsLTAuMjg2YzAuMDQzLC0wLjAwNSAwLjA4NSwtMC4wMTQgMC4xMjgsLTAuMDE5YzAuNTY5LC0wLjA4NiAxLjEzOSwtMC4xNjIgMS43MTcsLTAuMjI5YzAuMDg2LC0wLjAwOSAwLjE2NiwtMC4wMTkgMC4yNTIsLTAuMDI4YzAuNTU5LC0wLjA2MiAxLjExOSwtMC4xMTUgMS42NzksLTAuMTU4YzAuMDk5LC0wLjAwNCAwLjIwNCwtMC4wMTQgMC4zMDMsLTAuMDE5YzAuNTYsLTAuMDQyIDEuMTIsLTAuMDcxIDEuNjc5LC0wLjA5YzAuMDQ4LC0wLjAwNSAwLjA5NSwtMC4wMDUgMC4xMzgsLTAuMDA1YzAuMDcxLDAuMjgxIDAuMTUyLDAuNTU4IDAuMjQ3LDAuODI5bC02LjMwOSwwLjUxNWMtNC42NTMsMC4wOTEgLTguNDI5LDMuODc0IC04LjUxOSw4LjU1bC0wLjk3NywwLjk4MWMtMy4xMjEsMy4xMzYgLTQuODM4LDcuMzExIC00LjgzOCwxMS43NDNsMCwzLjM3OWMwLDQuNTIyIDMuNjYyLDguMTk2IDguMTU4LDguMTk2bDEuNDIzLDBjLTMuMDk3LDIuMzA3IC01LjExMyw2LjAwNSAtNS4xMTMsMTAuMTY1bDAsMy44MThjMCw2LjQ1NyA0Ljk3MSwxMS43NzEgMTEuMjcsMTIuMjgxbDAsNS41MDljMCw0LjczMiAxLjgzMSw5LjE3OCA1LjE2MSwxMi41MTlsMS4xMzgsMS4xNDRjMC42MDMsMC42MSAwLjkyNSwxLjM4MiAwLjkyNSwyLjI0NGMwLDIuODY5IDEuMTE1LDUuNTcyIDMuMTM2LDcuNjA1YzIuMDI1LDIuMDI3IDQuNzEsMy4xNDQgNy41NywzLjE0NGM0LjgwNSwwIDguNzE4LC0zLjkzMiA4LjcxOCwtOC43NjFsMCwtMC4xNThjMCwtMC42NDggMC4xOCwtMS4yODYgMC41MTcsLTEuODQ0bDMuMDUsLTUuMDY2YzAuMDA5LC0wLjAxOSAwLjAxOSwtMC4wMzMgMC4wMzMsLTAuMDUybDIuNDYyLC00LjExM2MxLjIzOCwtMi4wNzMgMi43MjMsLTMuOTg0IDQuNDE2LC01LjY5NWwyLjc2LC0yLjc5MmMyLjExMSwtMi4xMzUgMi43MzMsLTUuMzA5IDEuNTg1LC04LjA5N2MtMC43MTIsLTEuNzExIC0yLjAwMiwtMy4wNSAtMy41ODYsLTMuODI3bDAsLTAuMzQzYzAsLTAuMTI5IC0wLjAwNSwtMC4yNjIgLTAuMDA1LC0wLjM5MWMxLjg5MywxLjMzNCA0LjE1LDIuMDU0IDYuNTE3LDIuMDU0YzMuMDM2LDAgNS44ODcsLTEuMTgyIDguMDM1LC0zLjMzNmMxLjQ3NiwtMS40ODIgMi41LC0zLjI5OCAyLjk5OCwtNS4yOGMwLjAzOCwwLjM3NiAwLjA3MSwwLjc1OCAwLjEsMS4xMzRjMCwwLjAyOSAwLDAuMDUzIDAuMDA1LDAuMDgxYzAuMDI4LDAuNDc3IDAuMDUyLDAuOTUzIDAuMDcxLDEuNDM1YzAuMDA0LDAuMTI4IDAuMDA5LDAuMjU3IDAuMDE0LDAuMzljMC4wMTQsMC41MDEgMC4wMjQsMS4wMDYgMC4wMjQsMS41MTFjMCwxLjQ2OCAtMC4wNjIsMi45MzYgLTAuMTk1LDQuMzk0Yy0wLjEyOCwxLjQ2MyAtMC4zMTgsMi45MTYgLTAuNTc0LDQuMzU2Yy0yLjEzNCwxLjQxIC00LjAyMiwzLjEyNiAtNS42MjEsNS4wNTZjLTAuMDQyLDAuMDUyIC0wLjA4LDAuMSAtMC4xMjMsMC4xNTNjLTAuMjE4LDAuMjY2IC0wLjQzMSwwLjU0MyAtMC42NCwwLjgxOWMtMC4wNzYsMC4wOTYgLTAuMTQ3LDAuMTk2IC0wLjIxOCwwLjI5NmMtMC4xMjgsMC4xNzYgLTAuMjUyLDAuMzUyIC0wLjM3NSwwLjUzM2MtMC4xNTcsMC4yMjQgLTAuMzA4LDAuNDUzIC0wLjQ1NSwwLjY4MmMtMC4wODYsMC4xMjkgLTAuMTcxLDAuMjYyIC0wLjI1MiwwLjM5MWMtMC4xMjMsMC4yIC0wLjI0MiwwLjQgLTAuMzYsMC42Yy0wLjAyOSwwLjA1MyAtMC4wNTcsMC4xIC0wLjA4NiwwLjE0OGMtMS4yNjEsMi4yMDIgLTIuMjE1LDQuNjA4IC0yLjc4NCw3LjE1M2MtMC4wMDksMC4wMzggLTAuMDE5LDAuMDc2IC0wLjAyOCwwLjExNGMtMC4wNDgsMC4yMjkgLTAuMDk1LDAuNDYzIC0wLjE0MywwLjY5NmMtMC4wMjgsMC4xNDMgLTAuMDUyLDAuMjg2IC0wLjA3NiwwLjQzNGMtMC4wNTIsMC4yODEgLTAuMDk1LDAuNTcyIC0wLjEzNywwLjg1OGMtMC4wMjksMC4yMTkgLTAuMDU3LDAuNDQzIC0wLjA4MSwwLjY2MmMtMC4wMTksMC4xMzQgLTAuMDMzLDAuMjY3IC0wLjA0NywwLjQwNWMtMC4wMzMsMC4zNDggLTAuMDU3LDAuNjk2IC0wLjA4MSwxLjA0OWMtMC4wMDUsMC4wOTUgLTAuMDA1LDAuMTkgLTAuMDA5LDAuMjg2Yy0wLjAxOSwwLjM4NiAtMC4wMzQsMC43NzIgLTAuMDM0LDEuMTU4bDAsMi40OTdjLTAuMzE3LDAuMzY3IC0wLjY0NSwwLjcyNCAtMC45ODEsMS4wODJjLTAuMDYyLDAuMDcxIC0wLjEyOSwwLjEzOCAtMC4xOTUsMC4yMDljLTAuMjc1LDAuMjg2IC0wLjU1LDAuNTc3IC0wLjgzLDAuODU4Yy0wLjA2NiwwLjA3MiAtMC4xMzgsMC4xMzggLTAuMjA0LDAuMjA1Yy0wLjI4OSwwLjI5MSAtMC41NzksMC41NzIgLTAuODczLDAuODUzYy0wLjA1NywwLjA1MyAtMC4xMDksMC4xMDUgLTAuMTY2LDAuMTU3Yy0wLjMyMiwwLjMwNSAtMC42NTQsMC42MSAtMC45ODYsMC45MDZjLTAuMDI0LDAuMDE5IC0wLjA0OCwwLjA0MyAtMC4wNzEsMC4wNjJjLTIuNjMzLDIuMzQxIC01LjUwMyw0LjM5NCAtOC41NjIsNi4xMmMwLDAuMDAxIC0wLjAwNSwwLjAwMiAtMC4wMDUsMC4wMDNjLTEuMjg1LDAuNzI0IC0yLjU5OSwxLjM4OSAtMy45NDYsMS45OTZjLTAuMTQzLDAuMDY1IC0wLjI5LDAuMTI2IC0wLjQzMiwwLjE4OWMtMC4yNzUsMC4xMjIgLTAuNTU1LDAuMjQxIC0wLjgzLDAuMzU3Yy0wLjE5OSwwLjA4NCAtMC40MDMsMC4xNjUgLTAuNjAyLDAuMjQ1Wm0xOC42ODMsLTMuMTk2bDAsNi42MjNsLTkuMzUzLDBjMy4zMTUsLTEuODczIDYuNDU1LC00LjA4OSA5LjM1MywtNi42MjNabTI1LjM5MSwzNC44OTJsLTQzLjAzMSwwbDAsLTIxLjEyMWw0My4wMzEsMGwwLDIxLjEyMVptMjEuNjExLC02OS4yMjRjMCw4LjI2NCAtMy45MjgsMTYuMTU2IC0xMC41MDcsMjEuMTEyYy00LjEyNiwzLjExMiAtMTEuMDU2LDE0LjkyMiAtMTMuNzg4LDE5Ljg0M2wtMTUuNTkyLDBsMCwtMTkuMTY2YzAsLTAuMjc3IDAuMDEsLTAuNTUzIDAuMDI0LC0wLjgzYzAuMDA1LC0wLjA4MSAwLjAwNSwtMC4xNjIgMC4wMSwtMC4yNDNjMC4wMTQsLTAuMjMzIDAuMDMzLC0wLjQ3MSAwLjA1NiwtMC43MDVjMC4wMSwtMC4xMTQgMC4wMjQsLTAuMjMzIDAuMDM4LC0wLjM1M2MwLjAxOSwtMC4xNTcgMC4wMzgsLTAuMzA5IDAuMDU3LC0wLjQ2N2MwLjAyNCwtMC4xNDMgMC4wNDMsLTAuMjkgMC4wNjcsLTAuNDMzYzAuMDE0LC0wLjA3NyAwLjAyOCwtMC4xNTMgMC4wNDIsLTAuMjI5YzAuMDU3LC0wLjMzNCAwLjEyOCwtMC42NjcgMC4yMDQsLTAuOTkxYzAsLTAuMDE1IDAuMDA1LC0wLjAyOSAwLjAxLC0wLjA0M2MwLjQ2OSwtMS45NzggMS4yNjIsLTMuODU2IDIuMzI5LC01LjU2NmMwLjE4LC0wLjI5MSAwLjM3LC0wLjU3MiAwLjU2NCwtMC44NTNjMC4wNTIsLTAuMDcyIDAuMTA1LC0wLjE0MyAwLjE1MiwtMC4yMTVjMC4wODUsLTAuMTEgMC4xNjYsLTAuMjI0IDAuMjUxLC0wLjMzM2MwLjA5NSwtMC4xMjQgMC4xOSwtMC4yNDggMC4yOSwtMC4zNzJjMC4wNjYsLTAuMDgxIDAuMTI4LC0wLjE1NyAwLjE5NCwtMC4yMzhjMC4xNDcsLTAuMTgyIDAuMzA0LC0wLjM1OCAwLjQ2LC0wLjUzNGMwLjA0MywtMC4wNTMgMC4wOSwtMC4xIDAuMTM4LC0wLjE1M2MwLjE3MSwtMC4xODYgMC4zNDYsLTAuMzcxIDAuNTIyLC0wLjU1M2MwLjAwNCwtMC4wMDQgMC4wMTQsLTAuMDA5IDAuMDE5LC0wLjAxNGMwLjIwNCwtMC4yMDUgMC40MDgsLTAuNDA1IDAuNjIxLC0wLjZjMC4wMTQsLTAuMDEgMC4wMjgsLTAuMDI0IDAuMDQzLC0wLjAzNGMwLjY0LC0wLjU4NiAxLjMyMywtMS4xMjQgMi4wNDQsLTEuNjE1YzAuMDE0LC0wLjAxIDAuMDI5LC0wLjAxOSAwLjAzOCwtMC4wMjljMi45NSwtMS45OTcgNi40OTgsLTMuMTY0IDEwLjMxMiwtMy4xNjRsMC42OTIsMGMxLjk2NCwwIDMuNTU4LC0xLjYwMSAzLjU1OCwtMy41NzRjMCwtMS45NzMgLTEuNTk0LC0zLjU3NSAtMy41NTgsLTMuNTc1bC0wLjY5MiwwYy0yLjIxNSwwIC00LjM2OSwwLjI4NiAtNi40MTgsMC44MmMwLjE2NiwtMS43NzggMC4yNTIsLTMuNTYgMC4yNTIsLTUuMzQ3YzAsLTUuMjA0IC0wLjcwMiwtMTAuMzU2IC0yLjA4NywtMTUuMzIxYy0yLjYxNCwtOS4zNzQgLTcuNTA5LC0xNy43NzEgLTE0LjI4NywtMjQuNjA1Yy0wLjQ3NSwtMC40NzcgLTAuOTU4LC0wLjk0OSAtMS40NTIsLTEuNDExbDAsLTQyLjA2MWMwLC0yLjgyMiAyLjI4NiwtNS4xNjIgNS4wOSwtNS4yMTRjMS4zNTIsLTAuMDI0IDIuNjQ3LDAuNSAzLjY0NywxLjQ5MmMxLjA0OSwxLjAzNCAxLjY1MSwyLjQ2NCAxLjY1MSwzLjkyMmwwLDMyLjgxMWMwLDEuOTc4IDEuNTk0LDMuNTc0IDMuNTU4LDMuNTc0YzEuOTYzLDAgMy41NTcsLTEuNTk2IDMuNTU3LC0zLjU3NGwwLC0yNC4yMTRjMCwtMi44NzggMi4zMjksLTUuMjE4IDUuMTk0LC01LjIxOGMyLjg2NSwwIDUuMTk0LDIuMzQgNS4xOTQsNS4yMThsLTAuMDA1LDY3LjM0M2MwLDEuOTc4IDEuNTk0LDMuNTc0IDMuNTU4LDMuNTc0YzEuOTYzLDAgMy41NTcsLTEuNTk2IDMuNTU3LC0zLjU3NGwwLC0yOS40OGMwLC0wLjA0MyAwLjAwNSwtMC4wOTEgMC4wMDUsLTAuMTM4YzAsLTIuODc0IDIuMzI5LC01LjIxOSA1LjE5NCwtNS4yMTljMi44NjUsMCA1LjE5NCwyLjM0NSA1LjE5NCw1LjIxOWwwLDQ1LjMzWiIgc3R5bGU9ImZpbGw6IzQ0NDtmaWxsLXJ1bGU6bm9uemVybzsiLz48cGF0aCBkPSJNNDYuNjg5LDU3LjkyOWMtMC4wNDYsLTAuMjI5IC0wLjExNCwtMC40NTcgLTAuMjAzLC0wLjY3MmMtMC4wODksLTAuMjE0IC0wLjE5OSwtMC40MTkgLTAuMzI3LC0wLjYxNWMtMC4xMjgsLTAuMTk1IC0wLjI3OCwtMC4zODEgLTAuNDQxLC0wLjU0M2MtMC4xNjQsLTAuMTY3IC0wLjM0OSwtMC4zMTUgLTAuNTQxLC0wLjQ0M2MtMC4xOTUsLTAuMTI5IC0wLjQwMiwtMC4yNDMgLTAuNjE2LC0wLjMyOWMtMC4yMTMsLTAuMDkxIC0wLjQzNywtMC4xNTcgLTAuNjY1LC0wLjIwNWMtMC40NTksLTAuMDk1IC0wLjkzMiwtMC4wOTUgLTEuMzksMGMtMC4yMjksMC4wNDggLTAuNDUyLDAuMTE0IC0wLjY2NiwwLjIwNWMtMC4yMTMsMC4wODYgLTAuNDIsMC4yIC0wLjYxNiwwLjMyOWMtMC4xOTEsMC4xMjggLTAuMzczLDAuMjc2IC0wLjU0LDAuNDQzYy0wLjE2NCwwLjE2MiAtMC4zMSwwLjM0OCAtMC40NDEsMC41NDNjLTAuMTI5LDAuMTk2IC0wLjIzOSwwLjQwMSAtMC4zMjcsMC42MTVjLTAuMDg5LDAuMjE1IC0wLjE1NywwLjQ0MyAtMC4yMDMsMC42NzJjLTAuMDQ3LDAuMjI5IC0wLjA3MSwwLjQ2MiAtMC4wNzEsMC42OTZjMCwwLjIzMyAwLjAyNCwwLjQ2NyAwLjA3MSwwLjdjMC4wNDYsMC4yMjkgMC4xMTQsMC40NTMgMC4yMDMsMC42NjhjMC4wODgsMC4yMTQgMC4xOTgsMC40MjQgMC4zMjcsMC42MTljMC4xMzEsMC4xOTEgMC4yNzcsMC4zNzcgMC40NDEsMC41NDNjMC4xNjcsMC4xNjIgMC4zNDgsMC4zMSAwLjU0LDAuNDQ0YzAuMTk2LDAuMTI4IDAuNDAzLDAuMjM4IDAuNjE2LDAuMzI4YzAuMjE0LDAuMDkxIDAuNDM3LDAuMTU4IDAuNjY2LDAuMjA1YzAuMjMxLDAuMDQzIDAuNDYyLDAuMDY3IDAuNjk3LDAuMDY3YzAuMjMxLDAgMC40NjIsLTAuMDI0IDAuNjkzLC0wLjA2N2MwLjIyOCwtMC4wNDcgMC40NTIsLTAuMTE0IDAuNjY1LC0wLjIwNWMwLjIxNCwtMC4wOSAwLjQyMSwtMC4yIDAuNjE2LC0wLjMyOGMwLjE5MiwtMC4xMzQgMC4zNzcsLTAuMjgyIDAuNTQxLC0wLjQ0NGMwLjE2MywtMC4xNjYgMC4zMTMsLTAuMzUyIDAuNDQxLC0wLjU0M2MwLjEyOCwtMC4xOTUgMC4yMzgsLTAuNDA1IDAuMzI3LC0wLjYxOWMwLjA4OSwtMC4yMTUgMC4xNTcsLTAuNDM5IDAuMjAzLC0wLjY2OGMwLjA0NiwtMC4yMzMgMC4wNjcsLTAuNDY3IDAuMDY3LC0wLjdjMCwtMC4yMzQgLTAuMDIxLC0wLjQ2NyAtMC4wNjcsLTAuNjk2WiIgc3R5bGU9ImZpbGw6IzQ0NDtmaWxsLXJ1bGU6bm9uemVybzsiLz48cGF0aCBkPSJNMTUxLjcsNTcuOTI5Yy0wLjA0MywtMC4yMjkgLTAuMTE0LC0wLjQ1NyAtMC4xOTksLTAuNjcyYy0wLjA5LC0wLjIxNCAtMC4yLC0wLjQxOSAtMC4zMjgsLTAuNjE1Yy0wLjEyOCwtMC4xOTUgLTAuMjc5LC0wLjM4MSAtMC40NDEsLTAuNTQzYy0wLjE3MSwtMC4xNjcgLTAuMzUxLC0wLjMxNCAtMC41NDEsLTAuNDQzYy0wLjE5OSwtMC4xMjkgLTAuNDAzLC0wLjI0MyAtMC42MTYsLTAuMzI5Yy0wLjIxNCwtMC4wOTEgLTAuNDM3LC0wLjE1NyAtMC42NjQsLTAuMjA1Yy0wLjQ2LC0wLjA5NSAtMC45MzUsLTAuMDk1IC0xLjM5NSwwYy0wLjIyNywwLjA0OCAtMC40NSwwLjExNCAtMC42NjQsMC4yMDVjLTAuMjEzLDAuMDg2IC0wLjQyMiwwLjIgLTAuNjE2LDAuMzI5Yy0wLjE5NSwwLjEyOSAtMC4zNzUsMC4yNzYgLTAuNTQxLDAuNDQzYy0wLjE2MSwwLjE2MiAtMC4zMTMsMC4zNDggLTAuNDQxLDAuNTQzYy0wLjEyOCwwLjE5NiAtMC4yMzcsMC40MDEgLTAuMzI4LDAuNjE1Yy0wLjA4NSwwLjIxNSAtMC4xNTYsMC40NDMgLTAuMTk5LDAuNjcyYy0wLjA0NywwLjIyOSAtMC4wNzEsMC40NjIgLTAuMDcxLDAuNjk2YzAsMC4yMzMgMC4wMjQsMC40NjcgMC4wNzEsMC43YzAuMDQzLDAuMjI5IDAuMTE0LDAuNDUzIDAuMTk5LDAuNjY4YzAuMDkxLDAuMjE0IDAuMiwwLjQyNCAwLjMyOCwwLjYxOWMwLjEyOCwwLjE5MSAwLjI4LDAuMzc3IDAuNDQxLDAuNTQzYzAuMTY2LDAuMTYyIDAuMzQ2LDAuMzE1IDAuNTQxLDAuNDQ0YzAuMTk0LDAuMTI4IDAuNDAzLDAuMjM4IDAuNjE2LDAuMzI4YzAuMjE0LDAuMDkxIDAuNDM3LDAuMTU4IDAuNjY0LDAuMjA1YzAuMjI4LDAuMDQzIDAuNDY1LDAuMDcyIDAuNjk4LDAuMDcyYzAuMjMyLDAgMC40NjQsLTAuMDI5IDAuNjk3LC0wLjA3MmMwLjIyNywtMC4wNDcgMC40NSwtMC4xMTQgMC42NjQsLTAuMjA1YzAuMjEzLC0wLjA5IDAuNDE3LC0wLjIgMC42MTcsLTAuMzI4YzAuMTg5LC0wLjEyOSAwLjM2OSwtMC4yODIgMC41NCwtMC40NDRjMC4xNjIsLTAuMTY2IDAuMzEzLC0wLjM1MiAwLjQ0MSwtMC41NDNjMC4xMjgsLTAuMTk1IDAuMjM4LC0wLjQwNSAwLjMyOCwtMC42MTljMC4wODUsLTAuMjE1IDAuMTU2LC0wLjQzOSAwLjE5OSwtMC42NjhjMC4wNDcsLTAuMjMzIDAuMDcxLC0wLjQ2NyAwLjA3MSwtMC43YzAsLTAuMjM0IC0wLjAyNCwtMC40NjcgLTAuMDcxLC0wLjY5NloiIHN0eWxlPSJmaWxsOiM0NDQ7ZmlsbC1ydWxlOm5vbnplcm87Ii8+PC9zdmc+)}.coronabar-notice .cn-notice-text{margin-right:2em;margin-left:2em}.coronabar-notice .cn-notice-text p:last-child{margin-bottom:0}.coronabar-notice .cn-notice-actions{border-left:1px solid #999;border-right:1px solid #999;margin-left:0;margin-right:0;padding:.25em 2em;text-align:center;min-width:140px}.coronabar-notice .cn-notice-actions .button{display:inline-block;margin:2px 0}.coronabar-notice .cn-notice-text h3{margin-top:0}.coronabar-notice .cn-notice-text strong{color:#000}.coronabar-notice .cn-notice-icon svg path{fill:#666!important}@media only screen and (max-width:600px){.coronabar-notice .cn-notice-container{flex-direction:column}.coronabar-notice .cn-notice-step{flex-direction:column}.coronabar-notice .cn-notice-icon{display:none}.coronabar-notice .cn-notice-actions{border:none;margin:1em 0 0}.coronabar-notice .cn-notice-text{order:-1}}
|
css/admin.css
CHANGED
@@ -1,5 +1,5 @@
|
|
1 |
/* Cookie Notice settings */
|
2 |
-
.
|
3 |
float: right;
|
4 |
width: 280px;
|
5 |
background: #fff;
|
@@ -8,35 +8,23 @@
|
|
8 |
box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.05);
|
9 |
}
|
10 |
|
11 |
-
.
|
12 |
-
padding-left:
|
13 |
-
padding-right:
|
14 |
}
|
15 |
|
16 |
-
.
|
|
|
|
|
|
|
|
|
17 |
font-size: 14px;
|
18 |
line-height: 1.4;
|
19 |
margin: 0;
|
20 |
-
padding:
|
21 |
border-bottom: 1px solid #eee;
|
22 |
}
|
23 |
|
24 |
-
.df-credits .df-link {
|
25 |
-
font-family: Georgia, "Times New Roman", "Bitstream Charter", Times, serif;
|
26 |
-
font-style: italic;
|
27 |
-
padding-bottom: 10px;
|
28 |
-
margin: 0;
|
29 |
-
}
|
30 |
-
|
31 |
-
.df-credits .df-link a {
|
32 |
-
vertical-align: middle;
|
33 |
-
padding: 5px 0 0 4px;
|
34 |
-
}
|
35 |
-
|
36 |
-
.df-promo h4 {
|
37 |
-
margin-bottom: 0;
|
38 |
-
}
|
39 |
-
|
40 |
.cookie-notice-settings .df-credits form {
|
41 |
min-width: 260px;
|
42 |
margin-bottom: 1em;
|
@@ -58,6 +46,12 @@
|
|
58 |
height: 0;
|
59 |
}
|
60 |
|
|
|
|
|
|
|
|
|
|
|
|
|
61 |
.cookie-notice-settings form {
|
62 |
float: left;
|
63 |
min-width: 463px;
|
@@ -73,6 +67,10 @@
|
|
73 |
margin-bottom: 8px;
|
74 |
}
|
75 |
|
|
|
|
|
|
|
|
|
76 |
#cn_colors label {
|
77 |
min-width: 10em;
|
78 |
display: inline-block;
|
@@ -98,9 +96,18 @@
|
|
98 |
margin-top: 10px;
|
99 |
}
|
100 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
101 |
/* All Mobile Sizes (devices and browser) */
|
102 |
@media only screen and (max-width: 959px) {
|
103 |
-
.
|
104 |
width: 100%;
|
105 |
float: none;
|
106 |
margin: 20px 0;
|
1 |
/* Cookie Notice settings */
|
2 |
+
.cookie-notice-credits {
|
3 |
float: right;
|
4 |
width: 280px;
|
5 |
background: #fff;
|
8 |
box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.05);
|
9 |
}
|
10 |
|
11 |
+
.cookie-notice-credits .inner {
|
12 |
+
padding-left: 1.33em;
|
13 |
+
padding-right: 1.33em;
|
14 |
}
|
15 |
|
16 |
+
.cookie-notice-credits .inner:last-child {
|
17 |
+
padding-bottom: 0.66em;
|
18 |
+
}
|
19 |
+
|
20 |
+
.cookie-notice-credits h3 {
|
21 |
font-size: 14px;
|
22 |
line-height: 1.4;
|
23 |
margin: 0;
|
24 |
+
padding: 0.66em 1.33em;;
|
25 |
border-bottom: 1px solid #eee;
|
26 |
}
|
27 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
28 |
.cookie-notice-settings .df-credits form {
|
29 |
min-width: 260px;
|
30 |
margin-bottom: 1em;
|
46 |
height: 0;
|
47 |
}
|
48 |
|
49 |
+
.cookie-notice-settings h2 {
|
50 |
+
margin: 1.5em 0;
|
51 |
+
padding-bottom: 1em;
|
52 |
+
border-bottom: 1px solid #ccc;
|
53 |
+
}
|
54 |
+
|
55 |
.cookie-notice-settings form {
|
56 |
float: left;
|
57 |
min-width: 463px;
|
67 |
margin-bottom: 8px;
|
68 |
}
|
69 |
|
70 |
+
.cookie-notice-settings .description strong {
|
71 |
+
color: #444;
|
72 |
+
}
|
73 |
+
|
74 |
#cn_colors label {
|
75 |
min-width: 10em;
|
76 |
display: inline-block;
|
96 |
margin-top: 10px;
|
97 |
}
|
98 |
|
99 |
+
#cn_coronabar_text_strings {
|
100 |
+
margin-top: 10px;
|
101 |
+
}
|
102 |
+
|
103 |
+
#cn_colors_bar_opacity_range {
|
104 |
+
vertical-align: middle;
|
105 |
+
margin-right: 10px;
|
106 |
+
}
|
107 |
+
|
108 |
/* All Mobile Sizes (devices and browser) */
|
109 |
@media only screen and (max-width: 959px) {
|
110 |
+
.cookie-notice-credits {
|
111 |
width: 100%;
|
112 |
float: none;
|
113 |
margin: 20px 0;
|
css/admin.min.css
CHANGED
@@ -1 +1 @@
|
|
1 |
-
.
|
1 |
+
.cookie-notice-credits{float:right;width:280px;background:#fff;margin:20px -300px 20px 20px;position:relative;box-shadow:0 0 0 1px rgba(0,0,0,.05)}.cookie-notice-credits .inner{padding-left:1.33em;padding-right:1.33em}.cookie-notice-credits .inner:last-child{padding-bottom:.66em}.cookie-notice-credits h3{font-size:14px;line-height:1.4;margin:0;padding:.66em 1.33em;border-bottom:1px solid #eee}.cookie-notice-settings .df-credits form{min-width:260px;margin-bottom:1em}.cookie-notice-settings .df-credits form input{margin:0;padding:0}.cookie-notice-settings{margin-right:300px}.cookie-notice-settings hr,.df-credits hr{border:solid #eee;border-width:1px 0 0;clear:both;height:0}.cookie-notice-settings h2{margin:1.5em 0;padding-bottom:1em;border-bottom:1px solid #ccc}.cookie-notice-settings form{float:left;min-width:463px;width:100%}.cookie-notice-settings .ui-button{margin-bottom:5px}.cookie-notice-settings .description{font-size:13px;margin-bottom:8px}.cookie-notice-settings .description strong{color:#444}#cn_colors label{min-width:10em;display:inline-block}#cn_colors div{vertical-align:middle}#cn_refuse_code .nav-tab-wrapper{padding-top:0}#cn_refuse_code .refuse-code-tab{display:none}#cn_refuse_code .refuse-code-tab.active{display:block}#cn_refuse_code .refuse-code-tab .description{margin-top:10px}#cn_coronabar_text_strings{margin-top:10px}#cn_colors_bar_opacity_range{vertical-align:middle;margin-right:10px}@media only screen and (max-width:959px){.cookie-notice-credits{width:100%;float:none;margin:20px 0}.cookie-notice-settings{margin-right:0}}
|
css/front.css
CHANGED
@@ -4,9 +4,17 @@
|
|
4 |
height: auto;
|
5 |
z-index: 100000;
|
6 |
font-size: 13px;
|
|
|
7 |
line-height: 20px;
|
8 |
left: 0;
|
9 |
text-align: center;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
10 |
-webkit-box-sizing: border-box;
|
11 |
-moz-box-sizing: border-box;
|
12 |
box-sizing: border-box;
|
@@ -49,14 +57,14 @@
|
|
49 |
}
|
50 |
|
51 |
.cookie-notice-container {
|
52 |
-
padding: 15px;
|
53 |
text-align: center;
|
54 |
width: 100%;
|
55 |
z-index: 2;
|
56 |
}
|
57 |
|
58 |
.cookie-revoke-container {
|
59 |
-
padding: 15px;
|
60 |
width: 100%;
|
61 |
z-index: 1;
|
62 |
}
|
@@ -65,10 +73,12 @@
|
|
65 |
position: absolute;
|
66 |
right: 15px;
|
67 |
top: 50%;
|
68 |
-
margin-top: -
|
69 |
width: 15px;
|
70 |
height: 15px;
|
71 |
opacity: 0.5;
|
|
|
|
|
72 |
}
|
73 |
|
74 |
.cn-close-icon:hover {
|
@@ -80,6 +90,7 @@
|
|
80 |
content: ' ';
|
81 |
height: 15px;
|
82 |
width: 2px;
|
|
|
83 |
background-color: #fff;
|
84 |
}
|
85 |
.cn-close-icon:before {
|
@@ -93,94 +104,69 @@
|
|
93 |
margin: 0;
|
94 |
}
|
95 |
|
96 |
-
.cn-button.wp-default,
|
97 |
-
.cn-button.wp-default:hover,
|
98 |
-
.cn-button.bootstrap,
|
99 |
-
.cn-button.bootstrap:hover {
|
100 |
-
box-shadow: none;
|
101 |
-
text-decoration: none;
|
102 |
-
}
|
103 |
-
|
104 |
#cookie-notice .cn-button {
|
105 |
margin-left: 10px;
|
106 |
}
|
107 |
|
108 |
-
.cn-button
|
109 |
-
font-family: sans-serif;
|
110 |
-
|
111 |
-
|
112 |
-
|
113 |
-
|
114 |
-
|
115 |
-
|
116 |
-
|
117 |
-
|
118 |
-
border-width: 1px;
|
119 |
-
cursor: pointer;
|
120 |
display: inline-block;
|
121 |
-
|
122 |
-
|
123 |
-
text-decoration: none;
|
124 |
white-space: nowrap;
|
125 |
outline: none;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
126 |
}
|
127 |
|
128 |
.cn-button.wp-default:hover {
|
129 |
-
background: linear-gradient(to bottom, #FFFFFF, #F3F3F3) repeat scroll 0 0 #F3F3F3;
|
130 |
-
border-color: #999;
|
131 |
-
color: #222;
|
132 |
}
|
133 |
|
134 |
.cn-button.bootstrap {
|
135 |
-
font-family: sans-serif;
|
136 |
-
display: inline-block;
|
137 |
-
*display: inline;
|
138 |
-
padding: 4px 12px;
|
139 |
-
margin-right: .3em;
|
140 |
-
margin-bottom: 0;
|
141 |
-
*margin-left: .3em;
|
142 |
-
line-height: 20px;
|
143 |
-
color: #333;
|
144 |
-
text-align: center;
|
145 |
-
text-shadow: 0 1px 1px rgba(255, 255, 255, .75);
|
146 |
-
font-style: normal;
|
147 |
-
vertical-align: middle;
|
148 |
-
cursor: pointer;
|
149 |
color: #fff;
|
150 |
-
|
151 |
-
background-color: #006dcc;
|
152 |
-
*background-color: #04c;
|
153 |
-
background-image: -moz-linear-gradient(top, #0088cc, #0044cc);
|
154 |
-
background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#0088cc), to(#0044cc));
|
155 |
-
background-image: -webkit-linear-gradient(top, #0088cc, #0044cc);
|
156 |
-
background-image: -o-linear-gradient(top, #0088cc, #0044cc);
|
157 |
-
background-image: linear-gradient(to bottom, #0088cc, #0044cc);
|
158 |
-
background-repeat: repeat-x;
|
159 |
-
border-style: solid;
|
160 |
-
border-width: 1px;
|
161 |
-
border-color: #04c #04c #002a80;
|
162 |
-
border-color: rgba(0, 0, 0, .1) rgba(0, 0, 0, .1) rgba(0, 0, 0, .25);
|
163 |
-
box-shadow: 0 1px 0 rgba(255, 255, 255, .2) inset, 0 1px 2px rgba(0, 0, 0, .05);
|
164 |
-
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff0088cc', endColorstr='#ff0044cc', GradientType=0);
|
165 |
-
filter: progid:DXImageTransform.Microsoft.gradient(enabled=false);
|
166 |
-
padding: 2px 10px;
|
167 |
-
font-size: 12px;
|
168 |
-
text-decoration: none;
|
169 |
-
-webkit-border-radius: 3px;
|
170 |
-
-moz-border-radius: 3px;
|
171 |
-
border-radius: 3px;
|
172 |
-
outline: none;
|
173 |
}
|
174 |
|
175 |
.cn-button.bootstrap:hover {
|
176 |
-
|
177 |
-
|
178 |
-
|
179 |
-
|
180 |
-
|
181 |
-
|
182 |
-
|
183 |
-
|
|
|
184 |
}
|
185 |
|
186 |
#cookie-notice.cookie-notice-visible.cn-effect-none,
|
@@ -227,17 +213,6 @@
|
|
227 |
animation-name: slideOutUp;
|
228 |
}
|
229 |
|
230 |
-
@media all and (max-width: 900px) {
|
231 |
-
.cookie-notice-container #cn-notice-text {
|
232 |
-
display: block;
|
233 |
-
margin-bottom: 5px;
|
234 |
-
}
|
235 |
-
#cookie-notice .cn-button {
|
236 |
-
margin-left: 5px;
|
237 |
-
margin-right: 5px;
|
238 |
-
}
|
239 |
-
}
|
240 |
-
|
241 |
@-webkit-keyframes fadeIn {
|
242 |
from {
|
243 |
opacity: 0;
|
@@ -380,4 +355,23 @@
|
|
380 |
-webkit-transform: translate3d(0, -100%, 0);
|
381 |
transform: translate3d(0, -100%, 0);
|
382 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
383 |
}
|
4 |
height: auto;
|
5 |
z-index: 100000;
|
6 |
font-size: 13px;
|
7 |
+
letter-spacing: 0;
|
8 |
line-height: 20px;
|
9 |
left: 0;
|
10 |
text-align: center;
|
11 |
+
/* border-top: 2px solid #fbb03b; */
|
12 |
+
font-weight: normal;
|
13 |
+
font-family: -apple-system,BlinkMacSystemFont,Arial,Roboto,"Helvetica Neue",sans-serif;
|
14 |
+
}
|
15 |
+
|
16 |
+
#cookie-notice,
|
17 |
+
#cookie-notice * {
|
18 |
-webkit-box-sizing: border-box;
|
19 |
-moz-box-sizing: border-box;
|
20 |
box-sizing: border-box;
|
57 |
}
|
58 |
|
59 |
.cookie-notice-container {
|
60 |
+
padding: 15px 30px;
|
61 |
text-align: center;
|
62 |
width: 100%;
|
63 |
z-index: 2;
|
64 |
}
|
65 |
|
66 |
.cookie-revoke-container {
|
67 |
+
padding: 15px 30px;
|
68 |
width: 100%;
|
69 |
z-index: 1;
|
70 |
}
|
73 |
position: absolute;
|
74 |
right: 15px;
|
75 |
top: 50%;
|
76 |
+
margin-top: -10px;
|
77 |
width: 15px;
|
78 |
height: 15px;
|
79 |
opacity: 0.5;
|
80 |
+
padding: 10px;
|
81 |
+
outline: none;
|
82 |
}
|
83 |
|
84 |
.cn-close-icon:hover {
|
90 |
content: ' ';
|
91 |
height: 15px;
|
92 |
width: 2px;
|
93 |
+
top: 3px;
|
94 |
background-color: #fff;
|
95 |
}
|
96 |
.cn-close-icon:before {
|
104 |
margin: 0;
|
105 |
}
|
106 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
107 |
#cookie-notice .cn-button {
|
108 |
margin-left: 10px;
|
109 |
}
|
110 |
|
111 |
+
.cn-button {
|
112 |
+
font-family: -apple-system,BlinkMacSystemFont,Arial,Roboto,"Helvetica Neue",sans-serif;
|
113 |
+
font-weight: normal;
|
114 |
+
font-size: 13px;
|
115 |
+
letter-spacing: 0.25px;
|
116 |
+
line-height: 20px;
|
117 |
+
margin: 0;
|
118 |
+
padding: 0;
|
119 |
+
text-align: center;
|
120 |
+
text-transform: none;
|
|
|
|
|
121 |
display: inline-block;
|
122 |
+
cursor: pointer;
|
123 |
+
touch-action: manipulation;
|
|
|
124 |
white-space: nowrap;
|
125 |
outline: none;
|
126 |
+
box-shadow: none;
|
127 |
+
text-shadow: none;
|
128 |
+
border: none;
|
129 |
+
-webkit-border-radius: 3px;
|
130 |
+
-moz-border-radius: 3px;
|
131 |
+
border-radius: 3px;
|
132 |
+
}
|
133 |
+
|
134 |
+
.cn-button:hover {
|
135 |
+
box-shadow: inset 0 0 0 99999px rgba(0,0,0,0.05);
|
136 |
+
text-decoration: none;
|
137 |
+
}
|
138 |
+
|
139 |
+
.cn-button.wp-default,
|
140 |
+
.cn-button.bootstrap {
|
141 |
+
min-height: 30px;
|
142 |
+
text-decoration: none;
|
143 |
+
padding: 0 10px;
|
144 |
+
line-height: 2.15384615;
|
145 |
+
}
|
146 |
+
|
147 |
+
.cn-button.wp-default {
|
148 |
+
color: #fff;
|
149 |
+
background: #fbb03b;
|
150 |
}
|
151 |
|
152 |
.cn-button.wp-default:hover {
|
|
|
|
|
|
|
153 |
}
|
154 |
|
155 |
.cn-button.bootstrap {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
156 |
color: #fff;
|
157 |
+
background: #00a99d;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
158 |
}
|
159 |
|
160 |
.cn-button.bootstrap:hover {
|
161 |
+
}
|
162 |
+
|
163 |
+
.cn-text-container {
|
164 |
+
margin: 0 0 6px 0;
|
165 |
+
}
|
166 |
+
|
167 |
+
.cn-text-container,
|
168 |
+
.cn-buttons-container {
|
169 |
+
display: inline-block;
|
170 |
}
|
171 |
|
172 |
#cookie-notice.cookie-notice-visible.cn-effect-none,
|
213 |
animation-name: slideOutUp;
|
214 |
}
|
215 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
216 |
@-webkit-keyframes fadeIn {
|
217 |
from {
|
218 |
opacity: 0;
|
355 |
-webkit-transform: translate3d(0, -100%, 0);
|
356 |
transform: translate3d(0, -100%, 0);
|
357 |
}
|
358 |
+
}
|
359 |
+
|
360 |
+
@media all and (max-width: 900px) {
|
361 |
+
.cookie-notice-container #cn-notice-text {
|
362 |
+
display: block;
|
363 |
+
}
|
364 |
+
.cookie-notice-container #cn-notice-buttons {
|
365 |
+
display: block;
|
366 |
+
}
|
367 |
+
#cookie-notice .cn-button {
|
368 |
+
margin: 0 5px 5px 5px;
|
369 |
+
}
|
370 |
+
}
|
371 |
+
|
372 |
+
@media all and (max-width: 480px) {
|
373 |
+
.cookie-notice-container,
|
374 |
+
.cookie-revoke-container {
|
375 |
+
padding: 15px 25px;
|
376 |
+
}
|
377 |
}
|
css/front.min.css
CHANGED
@@ -1 +1 @@
|
|
1 |
-
#cookie-notice{position:fixed;min-width:100%;height:auto;z-index:100000;font-size:13px;line-height:20px;left:0;text-align:center
|
1 |
+
#cookie-notice{position:fixed;min-width:100%;height:auto;z-index:100000;font-size:13px;letter-spacing:0;line-height:20px;left:0;text-align:center;font-weight:400;font-family:-apple-system,BlinkMacSystemFont,Arial,Roboto,"Helvetica Neue",sans-serif}#cookie-notice,#cookie-notice *{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}#cookie-notice.cn-animated{-webkit-animation-duration:.5s!important;animation-duration:.5s!important;-webkit-animation-fill-mode:both;animation-fill-mode:both}#cookie-notice.cn-animated.cn-effect-none{-webkit-animation-duration:1ms!important;animation-duration:1ms!important}#cookie-notice .cookie-notice-container{display:block}#cookie-notice.cookie-notice-hidden .cookie-notice-container{display:none}#cookie-notice .cookie-revoke-container{display:block}#cookie-notice.cookie-revoke-hidden .cookie-revoke-container{display:none}.cn-position-top{top:0}.cn-position-bottom{bottom:0}.cookie-notice-container{padding:15px 30px;text-align:center;width:100%;z-index:2}.cookie-revoke-container{padding:15px 30px;width:100%;z-index:1}.cn-close-icon{position:absolute;right:15px;top:50%;margin-top:-10px;width:15px;height:15px;opacity:.5;padding:10px;outline:0}.cn-close-icon:hover{opacity:1}.cn-close-icon:after,.cn-close-icon:before{position:absolute;content:' ';height:15px;width:2px;top:3px;background-color:#fff}.cn-close-icon:before{transform:rotate(45deg)}.cn-close-icon:after{transform:rotate(-45deg)}#cookie-notice .cn-revoke-cookie{margin:0}#cookie-notice .cn-button{margin-left:10px}.cn-button{font-family:-apple-system,BlinkMacSystemFont,Arial,Roboto,"Helvetica Neue",sans-serif;font-weight:400;font-size:13px;letter-spacing:.25px;line-height:20px;margin:0;padding:0;text-align:center;text-transform:none;display:inline-block;cursor:pointer;touch-action:manipulation;white-space:nowrap;outline:0;box-shadow:none;text-shadow:none;border:none;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.cn-button:hover{box-shadow:inset 0 0 0 99999px rgba(0,0,0,.05);text-decoration:none}.cn-button.bootstrap,.cn-button.wp-default{min-height:30px;text-decoration:none;padding:0 10px;line-height:2.15384615}.cn-button.wp-default{color:#fff;background:#fbb03b}.cn-button.bootstrap{color:#fff;background:#00a99d}.cn-text-container{margin:0 0 6px 0}.cn-buttons-container,.cn-text-container{display:inline-block}#cookie-notice.cookie-notice-visible.cn-effect-none,#cookie-notice.cookie-revoke-visible.cn-effect-none{-webkit-animation-name:fadeIn;animation-name:fadeIn}#cookie-notice.cn-effect-none{-webkit-animation-name:fadeOut;animation-name:fadeOut}#cookie-notice.cookie-notice-visible.cn-effect-fade,#cookie-notice.cookie-revoke-visible.cn-effect-fade{-webkit-animation-name:fadeIn;animation-name:fadeIn}#cookie-notice.cn-effect-fade{-webkit-animation-name:fadeOut;animation-name:fadeOut}#cookie-notice.cookie-notice-visible.cn-effect-slide,#cookie-notice.cookie-revoke-visible.cn-effect-slide{-webkit-animation-name:slideInUp;animation-name:slideInUp}#cookie-notice.cn-effect-slide{-webkit-animation-name:slideOutDown;animation-name:slideOutDown}#cookie-notice.cookie-notice-visible.cn-position-top.cn-effect-slide,#cookie-notice.cookie-revoke-visible.cn-position-top.cn-effect-slide{-webkit-animation-name:slideInDown;animation-name:slideInDown}#cookie-notice.cn-position-top.cn-effect-slide{-webkit-animation-name:slideOutUp;animation-name:slideOutUp}@-webkit-keyframes fadeIn{from{opacity:0}to{opacity:1}}@keyframes fadeIn{from{opacity:0}to{opacity:1}}@-webkit-keyframes fadeOut{from{opacity:1}to{opacity:0}}@keyframes fadeOut{from{opacity:1}to{opacity:0}}@-webkit-keyframes slideInUp{from{-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0);visibility:visible}to{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}}@keyframes slideInUp{from{-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0);visibility:visible}to{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}}@-webkit-keyframes slideOutDown{from{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}to{visibility:hidden;-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0)}}@keyframes slideOutDown{from{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}to{visibility:hidden;-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0)}}@-webkit-keyframes slideInDown{from{-webkit-transform:translate3d(0,-100%,0);transform:translate3d(0,-100%,0);visibility:visible}to{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}}@keyframes slideInDown{from{-webkit-transform:translate3d(0,-100%,0);transform:translate3d(0,-100%,0);visibility:visible}to{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}}@-webkit-keyframes slideOutUp{from{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}to{visibility:hidden;-webkit-transform:translate3d(0,-100%,0);transform:translate3d(0,-100%,0)}}@keyframes slideOutUp{from{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}to{visibility:hidden;-webkit-transform:translate3d(0,-100%,0);transform:translate3d(0,-100%,0)}}@media all and (max-width:900px){.cookie-notice-container #cn-notice-text{display:block}.cookie-notice-container #cn-notice-buttons{display:block}#cookie-notice .cn-button{margin:0 5px 5px 5px}}@media all and (max-width:480px){.cookie-notice-container,.cookie-revoke-container{padding:15px 25px}}
|
js/admin-notice.js
ADDED
@@ -0,0 +1,59 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
( function ( $ ) {
|
2 |
+
$( document ).ready( function () {
|
3 |
+
// Save dismiss state
|
4 |
+
$( '.cn-notice.is-dismissible' ).on( 'click', '.notice-dismiss, .cn-notice-dismiss', function ( e ) {
|
5 |
+
if ( $( e.currentTarget ).hasClass( 'cn-approve' ) ) {
|
6 |
+
var notice_action = 'approve';
|
7 |
+
} else if ( $( e.currentTarget ).hasClass( 'cn-delay' ) ) {
|
8 |
+
var notice_action = 'delay';
|
9 |
+
} else {
|
10 |
+
var notice_action = 'dismiss';
|
11 |
+
}
|
12 |
+
|
13 |
+
$.ajax( {
|
14 |
+
url: cnArgsNotice.ajaxUrl,
|
15 |
+
type: 'POST',
|
16 |
+
dataType: 'json',
|
17 |
+
data: {
|
18 |
+
action: 'cn_dismiss_notice',
|
19 |
+
notice_action: notice_action,
|
20 |
+
nonce: cnArgsNotice.nonce
|
21 |
+
}
|
22 |
+
} );
|
23 |
+
|
24 |
+
$( e.delegateTarget ).slideUp( 'fast' );
|
25 |
+
} );
|
26 |
+
|
27 |
+
/* Steps
|
28 |
+
$( '.cn-notice .step-choice .cn-approve' ).on( 'click', function ( e ) {
|
29 |
+
e.preventDefault();
|
30 |
+
|
31 |
+
$( '.cn-notice .step-choice' ).slideUp( 'fast', 'linear', {
|
32 |
+
start: function () {
|
33 |
+
$( this ).css( {
|
34 |
+
display: "flex"
|
35 |
+
} )
|
36 |
+
}
|
37 |
+
} );
|
38 |
+
|
39 |
+
if ( $( e.target ).hasClass( 'cn-reply-yes' ) ) {
|
40 |
+
$( '.cn-notice .step-yes' ).slideDown( {
|
41 |
+
start: function () {
|
42 |
+
$( this ).css( {
|
43 |
+
display: "flex"
|
44 |
+
} )
|
45 |
+
}
|
46 |
+
} );
|
47 |
+
} else {
|
48 |
+
$( '.cn-notice .step-no' ).slideDown( {
|
49 |
+
start: function () {
|
50 |
+
$( this ).css( {
|
51 |
+
display: "flex"
|
52 |
+
} )
|
53 |
+
}
|
54 |
+
} );
|
55 |
+
};
|
56 |
+
} );
|
57 |
+
*/
|
58 |
+
} );
|
59 |
+
} )( jQuery );
|
js/admin-notice.min.js
ADDED
@@ -0,0 +1 @@
|
|
|
1 |
+
!function(s){s(document).ready(function(){s(".cn-notice.is-dismissible").on("click",".notice-dismiss, .cn-notice-dismiss",function(e){if(s(e.currentTarget).hasClass("cn-approve"))var n="approve";else if(s(e.currentTarget).hasClass("cn-delay"))n="delay";else n="dismiss";s.ajax({url:cnArgsNotice.ajaxUrl,type:"POST",dataType:"json",data:{action:"cn_dismiss_notice",notice_action:n,nonce:cnArgsNotice.nonce}}),s(e.delegateTarget).slideUp("fast")})})}(jQuery);
|
js/admin.js
CHANGED
@@ -28,13 +28,21 @@
|
|
28 |
$( '#cn_see_more_opt' ).slideUp( 'fast' );
|
29 |
} );
|
30 |
|
31 |
-
//
|
32 |
$( '#cn_on_scroll' ).change( function () {
|
33 |
if ( $( this ).is( ':checked' ) )
|
34 |
$( '#cn_on_scroll_offset' ).slideDown( 'fast' );
|
35 |
else
|
36 |
$( '#cn_on_scroll_offset' ).slideUp( 'fast' );
|
37 |
} );
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
38 |
|
39 |
// privacy policy link
|
40 |
$( '#cn_see_more_link-custom, #cn_see_more_link-page' ).change( function () {
|
28 |
$( '#cn_see_more_opt' ).slideUp( 'fast' );
|
29 |
} );
|
30 |
|
31 |
+
// on scroll option
|
32 |
$( '#cn_on_scroll' ).change( function () {
|
33 |
if ( $( this ).is( ':checked' ) )
|
34 |
$( '#cn_on_scroll_offset' ).slideDown( 'fast' );
|
35 |
else
|
36 |
$( '#cn_on_scroll_offset' ).slideUp( 'fast' );
|
37 |
} );
|
38 |
+
|
39 |
+
// coronabar text string option
|
40 |
+
$( '#cn_coronabar_texts' ).change( function () {
|
41 |
+
if ( $( this ).is( ':checked' ) )
|
42 |
+
$( '#cn_coronabar_text_strings' ).slideDown( 'fast' );
|
43 |
+
else
|
44 |
+
$( '#cn_coronabar_text_strings' ).slideUp( 'fast' );
|
45 |
+
} );
|
46 |
|
47 |
// privacy policy link
|
48 |
$( '#cn_see_more_link-custom, #cn_see_more_link-page' ).change( function () {
|
js/admin.min.js
CHANGED
@@ -1 +1 @@
|
|
1 |
-
!function(c){c(document).ready(function(){c(".cn_color").wpColorPicker(),c("#cn_refuse_opt").change(function(){c(this).is(":checked")?c("#cn_refuse_opt_container").slideDown("fast"):c("#cn_refuse_opt_container").slideUp("fast")}),c("#cn_revoke_cookies").change(function(){c(this).is(":checked")?c("#cn_revoke_opt_container").slideDown("fast"):c("#cn_revoke_opt_container").slideUp("fast")}),c("#cn_see_more").change(function(){c(this).is(":checked")?c("#cn_see_more_opt").slideDown("fast"):c("#cn_see_more_opt").slideUp("fast")}),c("#cn_on_scroll").change(function(){c(this).is(":checked")?c("#cn_on_scroll_offset").slideDown("fast"):c("#cn_on_scroll_offset").slideUp("fast")}),c("#cn_see_more_link-custom, #cn_see_more_link-page").change(function(){"custom"===c("#cn_see_more_link-custom:checked").val()?c("#cn_see_more_opt_page").slideUp("fast",function(){c("#cn_see_more_opt_link").slideDown("fast")}):"page"===c("#cn_see_more_link-page:checked").val()&&c("#cn_see_more_opt_link").slideUp("fast",function(){c("#cn_see_more_opt_page").slideDown("fast")})}),c("#cn_refuse_code_fields").find("a").click(function(e){e.preventDefault(),c("#cn_refuse_code_fields").find("a").removeClass("nav-tab-active"),c(".refuse-code-tab").removeClass("active");var n=c(this).attr("id").replace("-tab","");c("#"+n).addClass("active"),c(this).addClass("nav-tab-active")})}),c(document).on("click","input#reset_cookie_notice_options",function(){return confirm(cnArgs.resetToDefaults)})}(jQuery);
|
1 |
+
!function(c){c(document).ready(function(){c(".cn_color").wpColorPicker(),c("#cn_refuse_opt").change(function(){c(this).is(":checked")?c("#cn_refuse_opt_container").slideDown("fast"):c("#cn_refuse_opt_container").slideUp("fast")}),c("#cn_revoke_cookies").change(function(){c(this).is(":checked")?c("#cn_revoke_opt_container").slideDown("fast"):c("#cn_revoke_opt_container").slideUp("fast")}),c("#cn_see_more").change(function(){c(this).is(":checked")?c("#cn_see_more_opt").slideDown("fast"):c("#cn_see_more_opt").slideUp("fast")}),c("#cn_on_scroll").change(function(){c(this).is(":checked")?c("#cn_on_scroll_offset").slideDown("fast"):c("#cn_on_scroll_offset").slideUp("fast")}),c("#cn_coronabar_texts").change(function(){c(this).is(":checked")?c("#cn_coronabar_text_strings").slideDown("fast"):c("#cn_coronabar_text_strings").slideUp("fast")}),c("#cn_see_more_link-custom, #cn_see_more_link-page").change(function(){"custom"===c("#cn_see_more_link-custom:checked").val()?c("#cn_see_more_opt_page").slideUp("fast",function(){c("#cn_see_more_opt_link").slideDown("fast")}):"page"===c("#cn_see_more_link-page:checked").val()&&c("#cn_see_more_opt_link").slideUp("fast",function(){c("#cn_see_more_opt_page").slideDown("fast")})}),c("#cn_refuse_code_fields").find("a").click(function(e){e.preventDefault(),c("#cn_refuse_code_fields").find("a").removeClass("nav-tab-active"),c(".refuse-code-tab").removeClass("active");var n=c(this).attr("id").replace("-tab","");c("#"+n).addClass("active"),c(this).addClass("nav-tab-active")})}),c(document).on("click","input#reset_cookie_notice_options",function(){return confirm(cnArgs.resetToDefaults)})}(jQuery);
|
js/front.js
CHANGED
@@ -90,7 +90,7 @@
|
|
90 |
var _this = this;
|
91 |
|
92 |
// remove listening to scroll event
|
93 |
-
if ( cnArgs.onScroll === '
|
94 |
window.removeEventListener( 'scroll', this.handleScroll );
|
95 |
|
96 |
var date = new Date(),
|
@@ -131,7 +131,7 @@
|
|
131 |
this.hideCookieNotice();
|
132 |
|
133 |
// show revoke notice if enabled
|
134 |
-
if ( cnArgs.
|
135 |
// show cookie notice after the revoke is hidden
|
136 |
this.noticeContainer.addEventListener( 'animationend', function handler() {
|
137 |
_this.noticeContainer.removeEventListener( 'animationend', handler );
|
@@ -328,6 +328,34 @@
|
|
328 |
if ( scrollTop > parseInt( cnArgs.onScrollOffset ) )
|
329 |
this.setStatus( 'accept' );
|
330 |
};
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
331 |
|
332 |
// cross browser compatible closest function
|
333 |
this.getClosest = function ( elem, selector ) {
|
@@ -365,21 +393,65 @@
|
|
365 |
this.noticeContainer = document.getElementById( 'cookie-notice' );
|
366 |
|
367 |
var cookieButtons = document.getElementsByClassName( 'cn-set-cookie' ),
|
368 |
-
revokeButtons = document.getElementsByClassName( 'cn-revoke-cookie' )
|
|
|
369 |
|
370 |
// add effect class
|
371 |
this.noticeContainer.classList.add( 'cn-effect-' + cnArgs.hideEffect );
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
372 |
|
373 |
/*
|
374 |
// add refuse class
|
375 |
-
this.noticeContainer.classList.add( cnArgs.refuse === '
|
376 |
|
377 |
// add revoke class
|
378 |
-
if ( cnArgs.
|
379 |
this.noticeContainer.classList.add( 'cn-revoke-active' );
|
380 |
|
381 |
// add revoke type class (manual or automatic)
|
382 |
-
this.noticeContainer.classList.add( 'cn-revoke-' + cnArgs.
|
383 |
} else {
|
384 |
this.noticeContainer.classList.add( 'cn-revoke-inactive' );
|
385 |
}
|
@@ -388,13 +460,13 @@
|
|
388 |
// check cookies status
|
389 |
if ( this.cookiesAccepted === null ) {
|
390 |
// handle on scroll
|
391 |
-
if ( cnArgs.onScroll === '
|
392 |
window.addEventListener( 'scroll', function ( e ) {
|
393 |
_this.handleScroll();
|
394 |
} );
|
395 |
|
396 |
// handle on click
|
397 |
-
if ( cnArgs.onClick === '
|
398 |
window.addEventListener( 'click', function ( e ) {
|
399 |
var outerContainer = _this.getClosest( e.target, '#cookie-notice' );
|
400 |
|
@@ -411,7 +483,7 @@
|
|
411 |
this.setBodyClass( [ 'cookies-set', this.cookiesAccepted === true ? 'cookies-accepted' : 'cookies-refused' ] );
|
412 |
|
413 |
// show revoke notice if enabled
|
414 |
-
if ( cnArgs.
|
415 |
this.showRevokeNotice();
|
416 |
}
|
417 |
|
@@ -425,6 +497,17 @@
|
|
425 |
_this.setStatus( this.dataset.cookieSet );
|
426 |
} );
|
427 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
428 |
|
429 |
// handle revoke buttons click
|
430 |
for ( var i = 0; i < revokeButtons.length; i++ ) {
|
90 |
var _this = this;
|
91 |
|
92 |
// remove listening to scroll event
|
93 |
+
if ( cnArgs.onScroll === '1' )
|
94 |
window.removeEventListener( 'scroll', this.handleScroll );
|
95 |
|
96 |
var date = new Date(),
|
131 |
this.hideCookieNotice();
|
132 |
|
133 |
// show revoke notice if enabled
|
134 |
+
if ( cnArgs.revokeCookiesOpt === 'automatic' ) {
|
135 |
// show cookie notice after the revoke is hidden
|
136 |
this.noticeContainer.addEventListener( 'animationend', function handler() {
|
137 |
_this.noticeContainer.removeEventListener( 'animationend', handler );
|
328 |
if ( scrollTop > parseInt( cnArgs.onScrollOffset ) )
|
329 |
this.setStatus( 'accept' );
|
330 |
};
|
331 |
+
|
332 |
+
// adjust the notice offset
|
333 |
+
this.adjustOffset = function() {
|
334 |
+
var coronabarContainer = document.getElementById( 'coronabar' ),
|
335 |
+
adminbarContainer = document.getElementById( 'wpadminbar' ),
|
336 |
+
coronabarOffset = 0,
|
337 |
+
adminbarOffset = 0;
|
338 |
+
|
339 |
+
// adjust when admin bar is visible
|
340 |
+
if ( cnArgs.position === 'top' && adminbarContainer !== null ) {
|
341 |
+
adminbarOffset = adminbarContainer.offsetHeight;
|
342 |
+
|
343 |
+
this.noticeContainer.style.top = adminbarOffset + 'px';
|
344 |
+
}
|
345 |
+
|
346 |
+
// adjust when coronabar is visible
|
347 |
+
if ( coronabarContainer !== null ) {
|
348 |
+
coronabarOffset = coronabarContainer.offsetHeight - 1;
|
349 |
+
|
350 |
+
if ( cnArgs.position === 'top' ) {
|
351 |
+
coronabarContainer.style.top = adminbarOffset + 'px';
|
352 |
+
|
353 |
+
this.noticeContainer.style.top = coronabarOffset + adminbarOffset + 'px';
|
354 |
+
} else {
|
355 |
+
this.noticeContainer.style.bottom = coronabarOffset + 'px';
|
356 |
+
}
|
357 |
+
}
|
358 |
+
}
|
359 |
|
360 |
// cross browser compatible closest function
|
361 |
this.getClosest = function ( elem, selector ) {
|
393 |
this.noticeContainer = document.getElementById( 'cookie-notice' );
|
394 |
|
395 |
var cookieButtons = document.getElementsByClassName( 'cn-set-cookie' ),
|
396 |
+
revokeButtons = document.getElementsByClassName( 'cn-revoke-cookie' ),
|
397 |
+
closeIcon = document.getElementById( 'cn-close-notice' );
|
398 |
|
399 |
// add effect class
|
400 |
this.noticeContainer.classList.add( 'cn-effect-' + cnArgs.hideEffect );
|
401 |
+
|
402 |
+
// adjust on init
|
403 |
+
_this.adjustOffset();
|
404 |
+
|
405 |
+
// adjust on resize
|
406 |
+
window.addEventListener( 'resize', function( event ) {
|
407 |
+
_this.adjustOffset();
|
408 |
+
} );
|
409 |
+
|
410 |
+
// adjust when coronabar is active
|
411 |
+
if ( cnArgs.coronabarActive === '1' ) {
|
412 |
+
// on display
|
413 |
+
document.addEventListener( 'display.coronabar', function( event ) {
|
414 |
+
_this.adjustOffset();
|
415 |
+
} );
|
416 |
+
// on hide
|
417 |
+
document.addEventListener( 'hide.coronabar', function( event ) {
|
418 |
+
_this.adjustOffset();
|
419 |
+
} );
|
420 |
+
// on save data
|
421 |
+
document.addEventListener( 'saveData.coronabar', function( event ) {
|
422 |
+
var casesData = event.detail;
|
423 |
+
|
424 |
+
if ( casesData !== null ) {
|
425 |
+
// alpha JS request // no jQuery
|
426 |
+
var request = new XMLHttpRequest();
|
427 |
+
|
428 |
+
request.open( 'POST', cnArgs.ajaxUrl, true );
|
429 |
+
request.setRequestHeader( 'Content-Type', 'application/x-www-form-urlencoded;' );
|
430 |
+
request.onload = function () {
|
431 |
+
if ( this.status >= 200 && this.status < 400 ) {
|
432 |
+
// ff successful
|
433 |
+
} else {
|
434 |
+
// if fail
|
435 |
+
}
|
436 |
+
};
|
437 |
+
request.onerror = function () {
|
438 |
+
// connection error
|
439 |
+
};
|
440 |
+
request.send( 'action=cn_save_cases&nonce=' + cnArgs.nonce + '&data=' + JSON.stringify( casesData ) );
|
441 |
+
}
|
442 |
+
} );
|
443 |
+
}
|
444 |
|
445 |
/*
|
446 |
// add refuse class
|
447 |
+
this.noticeContainer.classList.add( cnArgs.refuse === '1' ? 'cn-refuse-active' : 'cn-refuse-inactive' );
|
448 |
|
449 |
// add revoke class
|
450 |
+
if ( cnArgs.revokeCookies === '1' ) {
|
451 |
this.noticeContainer.classList.add( 'cn-revoke-active' );
|
452 |
|
453 |
// add revoke type class (manual or automatic)
|
454 |
+
this.noticeContainer.classList.add( 'cn-revoke-' + cnArgs.revokeCookiesOpt );
|
455 |
} else {
|
456 |
this.noticeContainer.classList.add( 'cn-revoke-inactive' );
|
457 |
}
|
460 |
// check cookies status
|
461 |
if ( this.cookiesAccepted === null ) {
|
462 |
// handle on scroll
|
463 |
+
if ( cnArgs.onScroll === '1' )
|
464 |
window.addEventListener( 'scroll', function ( e ) {
|
465 |
_this.handleScroll();
|
466 |
} );
|
467 |
|
468 |
// handle on click
|
469 |
+
if ( cnArgs.onClick === '1' )
|
470 |
window.addEventListener( 'click', function ( e ) {
|
471 |
var outerContainer = _this.getClosest( e.target, '#cookie-notice' );
|
472 |
|
483 |
this.setBodyClass( [ 'cookies-set', this.cookiesAccepted === true ? 'cookies-accepted' : 'cookies-refused' ] );
|
484 |
|
485 |
// show revoke notice if enabled
|
486 |
+
if ( cnArgs.revokeCookies === '1' && cnArgs.revokeCookiesOpt === 'automatic' )
|
487 |
this.showRevokeNotice();
|
488 |
}
|
489 |
|
497 |
_this.setStatus( this.dataset.cookieSet );
|
498 |
} );
|
499 |
}
|
500 |
+
|
501 |
+
// handle close icon
|
502 |
+
if ( closeIcon !== 'null' ) {
|
503 |
+
closeIcon.addEventListener( 'click', function ( e ) {
|
504 |
+
e.preventDefault();
|
505 |
+
// Chrome double click event fix
|
506 |
+
e.stopPropagation();
|
507 |
+
|
508 |
+
_this.setStatus( this.dataset.cookieSet );
|
509 |
+
} );
|
510 |
+
}
|
511 |
|
512 |
// handle revoke buttons click
|
513 |
for ( var i = 0; i < revokeButtons.length; i++ ) {
|
js/front.min.js
CHANGED
@@ -1 +1 @@
|
|
1 |
-
!function(){function e(e,t){t=t||{bubbles:!1,cancelable:!1,detail:void 0};var n=document.createEvent("CustomEvent");return n.initCustomEvent(e,t.bubbles,t.cancelable,t.detail),n}"function"!=typeof window.CustomEvent&&(e.prototype=window.Event.prototype,window.CustomEvent=e)}(),function(){function t(e){return new RegExp("(^| )"+e+"( |$)")}function e(e,t,n){for(var i=0;i<e.length;i++)t.call(n,e[i])}function n(e){this.element=e}n.prototype={add:function(){e(arguments,function(e){this.contains(e)||(this.element.className+=0<this.element.className.length?" "+e:e)},this)},remove:function(){e(arguments,function(e){this.element.className=this.element.className.replace(t(e),"")},this)},toggle:function(e){return this.contains(e)?(this.remove(e),!1):(this.add(e),!0)},contains:function(e){return t(e).test(this.element.className)},replace:function(e,t){this.remove(e),this.add(t)}},"classList"in Element.prototype||Object.defineProperty(Element.prototype,"classList",{get:function(){return new n(this)}}),window.DOMTokenList&&null==DOMTokenList.prototype.replace&&(DOMTokenList.prototype.replace=n.prototype.replace)}(),function(a,r){var e=new function(){this.cookiesAccepted=null,this.noticeContainer=null,this.setStatus=function(e){var t=this;"
|
1 |
+
!function(){function e(e,t){t=t||{bubbles:!1,cancelable:!1,detail:void 0};var n=document.createEvent("CustomEvent");return n.initCustomEvent(e,t.bubbles,t.cancelable,t.detail),n}"function"!=typeof window.CustomEvent&&(e.prototype=window.Event.prototype,window.CustomEvent=e)}(),function(){function t(e){return new RegExp("(^| )"+e+"( |$)")}function e(e,t,n){for(var i=0;i<e.length;i++)t.call(n,e[i])}function n(e){this.element=e}n.prototype={add:function(){e(arguments,function(e){this.contains(e)||(this.element.className+=0<this.element.className.length?" "+e:e)},this)},remove:function(){e(arguments,function(e){this.element.className=this.element.className.replace(t(e),"")},this)},toggle:function(e){return this.contains(e)?(this.remove(e),!1):(this.add(e),!0)},contains:function(e){return t(e).test(this.element.className)},replace:function(e,t){this.remove(e),this.add(t)}},"classList"in Element.prototype||Object.defineProperty(Element.prototype,"classList",{get:function(){return new n(this)}}),window.DOMTokenList&&null==DOMTokenList.prototype.replace&&(DOMTokenList.prototype.replace=n.prototype.replace)}(),function(a,r){var e=new function(){this.cookiesAccepted=null,this.noticeContainer=null,this.setStatus=function(e){var t=this;"1"===cnArgs.onScroll&&a.removeEventListener("scroll",this.handleScroll);var n=new Date,i=new Date;"accept"===e?(e="true",i.setTime(parseInt(n.getTime())+1e3*parseInt(cnArgs.cookieTime))):(e="false",i.setTime(parseInt(n.getTime())+1e3*parseInt(cnArgs.cookieTimeRejected))),r.cookie=cnArgs.cookieName+"="+e+";expires="+i.toUTCString()+";"+(cnArgs.cookieDomain?"domain="+cnArgs.cookieDomain+";":"")+(cnArgs.cookiePath?"path="+cnArgs.cookiePath+";":"")+("1"===cnArgs.secure?"secure;":""),this.cookiesAccepted="true"===e;var o=new CustomEvent("setCookieNotice",{detail:{value:e,time:n,expires:i,data:cnArgs}});if(r.dispatchEvent(o),this.setBodyClass(["cookies-set","true"===e?"cookies-accepted":"cookies-refused"]),this.hideCookieNotice(),"automatic"===cnArgs.revokeCookiesOpt&&(this.noticeContainer.addEventListener("animationend",function e(){t.noticeContainer.removeEventListener("animationend",e),t.showRevokeNotice()}),this.noticeContainer.addEventListener("webkitAnimationEnd",function e(){t.noticeContainer.removeEventListener("webkitAnimationEnd",e),t.showRevokeNotice()})),"1"===cnArgs.redirection&&("true"===e&&null===this.cookiesAccepted||e!==this.cookiesAccepted&&null!==this.cookiesAccepted)){var s=a.location.protocol+"//",c=a.location.host+"/"+a.location.pathname;"1"===cnArgs.cache?(s=s+c.replace("//","/")+(""===a.location.search?"?":a.location.search+"&")+"cn-reloaded=1"+a.location.hash,a.location.href=s):(s=s+c.replace("//","/")+a.location.search+a.location.hash,a.location.reload(!0))}else;},this.getStatus=function(e){var t=("; "+r.cookie).split("; cookie_notice_accepted=");if(2!==t.length)return null;var n=t.pop().split(";").shift();return e?"true"===n:n},this.showCookieNotice=function(){var t=this,e=new CustomEvent("showCookieNotice",{detail:{data:cnArgs}});r.dispatchEvent(e),this.noticeContainer.classList.remove("cookie-notice-hidden"),this.noticeContainer.classList.add("cn-animated"),this.noticeContainer.classList.add("cookie-notice-visible"),this.noticeContainer.addEventListener("animationend",function e(){t.noticeContainer.removeEventListener("animationend",e),t.noticeContainer.classList.remove("cn-animated")}),this.noticeContainer.addEventListener("webkitAnimationEnd",function e(){t.noticeContainer.removeEventListener("webkitAnimationEnd",e),t.noticeContainer.classList.remove("cn-animated")})},this.hideCookieNotice=function(){var t=this,e=new CustomEvent("hideCookieNotice",{detail:{data:cnArgs}});r.dispatchEvent(e),this.noticeContainer.classList.add("cn-animated"),this.noticeContainer.classList.remove("cookie-notice-visible"),this.noticeContainer.addEventListener("animationend",function e(){t.noticeContainer.removeEventListener("animationend",e),t.noticeContainer.classList.remove("cn-animated"),t.noticeContainer.classList.add("cookie-notice-hidden")}),this.noticeContainer.addEventListener("webkitAnimationEnd",function e(){t.noticeContainer.removeEventListener("webkitAnimationEnd",e),t.noticeContainer.classList.remove("cn-animated"),t.noticeContainer.classList.add("cookie-notice-hidden")})},this.showRevokeNotice=function(){var t=this,e=new CustomEvent("showRevokeNotice",{detail:{data:cnArgs}});r.dispatchEvent(e),this.noticeContainer.classList.remove("cookie-revoke-hidden"),this.noticeContainer.classList.add("cn-animated"),this.noticeContainer.classList.add("cookie-revoke-visible"),this.noticeContainer.addEventListener("animationend",function e(){t.noticeContainer.removeEventListener("animationend",e),t.noticeContainer.classList.remove("cn-animated")}),this.noticeContainer.addEventListener("webkitAnimationEnd",function e(){t.noticeContainer.removeEventListener("webkitAnimationEnd",e),t.noticeContainer.classList.remove("cn-animated")})},this.hideRevokeNotice=function(){var t=this,e=new CustomEvent("hideRevokeNotice",{detail:{data:cnArgs}});r.dispatchEvent(e),this.noticeContainer.classList.add("cn-animated"),this.noticeContainer.classList.remove("cookie-revoke-visible"),this.noticeContainer.addEventListener("animationend",function e(){t.noticeContainer.removeEventListener("animationend",e),t.noticeContainer.classList.remove("cn-animated"),t.noticeContainer.classList.add("cookie-revoke-hidden")}),this.noticeContainer.addEventListener("webkitAnimationEnd",function e(){t.noticeContainer.removeEventListener("webkitAnimationEnd",e),t.noticeContainer.classList.remove("cn-animated"),t.noticeContainer.classList.add("cookie-revoke-hidden")})},this.setBodyClass=function(e){r.body.classList.remove("cookies-revoke"),r.body.classList.remove("cookies-accepted"),r.body.classList.remove("cookies-refused"),r.body.classList.remove("cookies-set"),r.body.classList.remove("cookies-not-set");for(var t=0;t<e.length;t++)r.body.classList.add(e[t])},this.handleScroll=function(){(a.pageYOffset||(r.documentElement||r.body.parentNode||r.body).scrollTop)>parseInt(cnArgs.onScrollOffset)&&this.setStatus("accept")},this.adjustOffset=function(){var e=r.getElementById("coronabar"),t=r.getElementById("wpadminbar"),n=0,i=0;"top"===cnArgs.position&&null!==t&&(i=t.offsetHeight,this.noticeContainer.style.top=i+"px"),null!==e&&(n=e.offsetHeight-1,"top"===cnArgs.position?(e.style.top=i+"px",this.noticeContainer.style.top=n+i+"px"):this.noticeContainer.style.bottom=n+"px")},this.getClosest=function(e,t){for(Element.prototype.matches||(Element.prototype.matches=Element.prototype.matchesSelector||Element.prototype.mozMatchesSelector||Element.prototype.msMatchesSelector||Element.prototype.oMatchesSelector||Element.prototype.webkitMatchesSelector||function(e){for(var t=(this.document||this.ownerDocument).querySelectorAll(e),n=t.length;0<=--n&&t.item(n)!==this;);return-1<n});e&&e!==r;e=e.parentNode)if(e.matches(t))return e;return null},this.init=function(){var t=this;this.cookiesAccepted=this.getStatus(!0),this.noticeContainer=r.getElementById("cookie-notice");var e=r.getElementsByClassName("cn-set-cookie"),n=r.getElementsByClassName("cn-revoke-cookie"),i=r.getElementById("cn-close-notice");this.noticeContainer.classList.add("cn-effect-"+cnArgs.hideEffect),t.adjustOffset(),a.addEventListener("resize",function(e){t.adjustOffset()}),"1"===cnArgs.coronabarActive&&(r.addEventListener("display.coronabar",function(e){t.adjustOffset()}),r.addEventListener("hide.coronabar",function(e){t.adjustOffset()}),r.addEventListener("saveData.coronabar",function(e){var t=e.detail;if(null!==t){var n=new XMLHttpRequest;n.open("POST",cnArgs.ajaxUrl,!0),n.setRequestHeader("Content-Type","application/x-www-form-urlencoded;"),n.onload=function(){200<=this.status&&this.status},n.onerror=function(){},n.send("action=cn_save_cases&nonce="+cnArgs.nonce+"&data="+JSON.stringify(t))}})),null===this.cookiesAccepted?("1"===cnArgs.onScroll&&a.addEventListener("scroll",function(e){t.handleScroll()}),"1"===cnArgs.onClick&&a.addEventListener("click",function(e){null===t.getClosest(e.target,"#cookie-notice")&&t.setStatus("accept")},!0),this.setBodyClass(["cookies-not-set"]),this.showCookieNotice()):(this.setBodyClass(["cookies-set",!0===this.cookiesAccepted?"cookies-accepted":"cookies-refused"]),"1"===cnArgs.revokeCookies&&"automatic"===cnArgs.revokeCookiesOpt&&this.showRevokeNotice());for(var o=0;o<e.length;o++)e[o].addEventListener("click",function(e){e.preventDefault(),e.stopPropagation(),t.setStatus(this.dataset.cookieSet)});"null"!==i&&i.addEventListener("click",function(e){e.preventDefault(),e.stopPropagation(),t.setStatus(this.dataset.cookieSet)});for(o=0;o<n.length;o++)n[o].addEventListener("click",function(e){e.preventDefault(),t.noticeContainer.classList.contains("cookie-revoke-visible")?(t.hideRevokeNotice(),t.noticeContainer.addEventListener("animationend",function e(){t.noticeContainer.removeEventListener("animationend",e),t.showCookieNotice()}),t.noticeContainer.addEventListener("webkitAnimationEnd",function e(){t.noticeContainer.removeEventListener("webkitAnimationEnd",e),t.showCookieNotice()})):t.noticeContainer.classList.contains("cookie-notice-hidden")&&t.noticeContainer.classList.contains("cookie-revoke-hidden")&&t.showCookieNotice()})}};a.addEventListener("load",function(){e.init()},!1)}(window,document);
|
languages/cookie-notice.pot
CHANGED
@@ -2,7 +2,7 @@
|
|
2 |
msgid ""
|
3 |
msgstr ""
|
4 |
"Project-Id-Version: Cookie Notice\n"
|
5 |
-
"POT-Creation-Date: 2020-
|
6 |
"PO-Revision-Date: 2015-03-24 11:30+0100\n"
|
7 |
"Last-Translator: Bartosz Arendt <info@dfactory.eu>\n"
|
8 |
"Language-Team: dFactory <info@dfactory.eu>\n"
|
@@ -16,402 +16,519 @@ msgstr ""
|
|
16 |
"X-Poedit-SourceCharset: UTF-8\n"
|
17 |
"X-Poedit-SearchPath-0: ..\n"
|
18 |
|
19 |
-
#: ../cookie-notice.php:
|
20 |
msgid "Top"
|
21 |
msgstr ""
|
22 |
|
23 |
-
#: ../cookie-notice.php:
|
24 |
msgid "Bottom"
|
25 |
msgstr ""
|
26 |
|
27 |
-
#: ../cookie-notice.php:
|
28 |
msgid "None"
|
29 |
msgstr ""
|
30 |
|
31 |
-
#: ../cookie-notice.php:
|
32 |
msgid "Light"
|
33 |
msgstr ""
|
34 |
|
35 |
-
#: ../cookie-notice.php:
|
36 |
msgid "Dark"
|
37 |
msgstr ""
|
38 |
|
39 |
-
#: ../cookie-notice.php:
|
40 |
msgid "Automatic"
|
41 |
msgstr ""
|
42 |
|
43 |
-
#: ../cookie-notice.php:
|
44 |
msgid "Manual"
|
45 |
msgstr ""
|
46 |
|
47 |
-
#: ../cookie-notice.php:
|
48 |
msgid "Page link"
|
49 |
msgstr ""
|
50 |
|
51 |
-
#: ../cookie-notice.php:
|
52 |
msgid "Custom link"
|
53 |
msgstr ""
|
54 |
|
55 |
-
#: ../cookie-notice.php:
|
56 |
msgid "Banner"
|
57 |
msgstr ""
|
58 |
|
59 |
-
#: ../cookie-notice.php:
|
60 |
msgid "Message"
|
61 |
msgstr ""
|
62 |
|
63 |
-
#: ../cookie-notice.php:
|
64 |
msgid "Text color"
|
65 |
msgstr ""
|
66 |
|
67 |
-
#: ../cookie-notice.php:
|
68 |
msgid "Bar color"
|
69 |
msgstr ""
|
70 |
|
71 |
-
#: ../cookie-notice.php:
|
72 |
msgid "An hour"
|
73 |
msgstr ""
|
74 |
|
75 |
-
#: ../cookie-notice.php:
|
76 |
msgid "1 day"
|
77 |
msgstr ""
|
78 |
|
79 |
-
#: ../cookie-notice.php:
|
80 |
msgid "1 week"
|
81 |
msgstr ""
|
82 |
|
83 |
-
#: ../cookie-notice.php:
|
84 |
msgid "1 month"
|
85 |
msgstr ""
|
86 |
|
87 |
-
#: ../cookie-notice.php:
|
88 |
msgid "3 months"
|
89 |
msgstr ""
|
90 |
|
91 |
-
#: ../cookie-notice.php:
|
92 |
msgid "6 months"
|
93 |
msgstr ""
|
94 |
|
95 |
-
#: ../cookie-notice.php:
|
96 |
msgid "1 year"
|
97 |
msgstr ""
|
98 |
|
99 |
-
#: ../cookie-notice.php:
|
100 |
msgid "infinity"
|
101 |
msgstr ""
|
102 |
|
103 |
-
#: ../cookie-notice.php:
|
104 |
msgid "Fade"
|
105 |
msgstr ""
|
106 |
|
107 |
-
#: ../cookie-notice.php:
|
108 |
msgid "Slide"
|
109 |
msgstr ""
|
110 |
|
111 |
-
#: ../cookie-notice.php:
|
112 |
msgid "Header"
|
113 |
msgstr ""
|
114 |
|
115 |
-
#: ../cookie-notice.php:
|
116 |
msgid "Footer"
|
117 |
msgstr ""
|
118 |
|
119 |
-
#: ../cookie-notice.php:
|
120 |
msgid "We use cookies to ensure that we give you the best experience on our website. If you continue to use this site we will assume that you are happy with it."
|
121 |
msgstr ""
|
122 |
|
123 |
-
#: ../cookie-notice.php:
|
124 |
msgid "Ok"
|
125 |
msgstr ""
|
126 |
|
127 |
-
#: ../cookie-notice.php:
|
128 |
msgid "No"
|
129 |
msgstr ""
|
130 |
|
131 |
-
#: ../cookie-notice.php:
|
132 |
msgid "You can revoke your consent any time using the Revoke consent button."
|
133 |
msgstr ""
|
134 |
|
135 |
-
#: ../cookie-notice.php:
|
136 |
msgid "Revoke consent"
|
137 |
msgstr ""
|
138 |
|
139 |
-
#: ../cookie-notice.php:
|
140 |
msgid "Privacy policy"
|
141 |
msgstr ""
|
142 |
|
143 |
-
#: ../cookie-notice.php:
|
144 |
-
|
145 |
-
msgid "Hey, you've been using <strong>Cookie Notice</strong> for more than %s."
|
146 |
msgstr ""
|
147 |
|
148 |
-
#: ../cookie-notice.php:
|
149 |
-
msgid "
|
150 |
msgstr ""
|
151 |
|
152 |
-
#: ../cookie-notice.php:
|
153 |
-
msgid "
|
154 |
msgstr ""
|
155 |
|
156 |
-
#: ../cookie-notice.php:
|
157 |
-
|
158 |
-
msgid "founder of <a href=\"%s\" target=\"_blank\">dFactory</a> plugins."
|
159 |
msgstr ""
|
160 |
|
161 |
-
#: ../cookie-notice.php:
|
162 |
-
|
163 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
164 |
msgstr ""
|
165 |
|
166 |
-
#: ../cookie-notice.php:
|
167 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
168 |
msgid "Cookie Notice"
|
169 |
msgstr ""
|
170 |
|
171 |
-
#: ../cookie-notice.php:
|
172 |
msgid "Need support?"
|
173 |
msgstr ""
|
174 |
|
175 |
-
#: ../cookie-notice.php:
|
176 |
#, php-format
|
177 |
msgid "If you are having problems with this plugin, please browse it's <a href=\"%s\" target=\"_blank\">Documentation</a> or talk about them in the <a href=\"%s\" target=\"_blank\">Support forum</a>"
|
178 |
msgstr ""
|
179 |
|
180 |
-
#: ../cookie-notice.php:
|
181 |
msgid "Do you like this plugin?"
|
182 |
msgstr ""
|
183 |
|
184 |
-
#: ../cookie-notice.php:
|
185 |
#, php-format
|
186 |
msgid "<a href=\"%s\" target=\"_blank\">Rate it 5</a> on WordPress.org"
|
187 |
msgstr ""
|
188 |
|
189 |
-
#: ../cookie-notice.php:
|
190 |
#, php-format
|
191 |
msgid "Blog about it & link to the <a href=\"%s\" target=\"_blank\">plugin page</a>."
|
192 |
msgstr ""
|
193 |
|
194 |
-
#: ../cookie-notice.php:
|
195 |
#, php-format
|
196 |
msgid "Check out our other <a href=\"%s\" target=\"_blank\">WordPress plugins</a>."
|
197 |
msgstr ""
|
198 |
|
199 |
-
#: ../cookie-notice.php:
|
200 |
msgid "Reset to defaults"
|
201 |
msgstr ""
|
202 |
|
203 |
-
#: ../cookie-notice.php:
|
204 |
msgid "Configuration"
|
205 |
msgstr ""
|
206 |
|
207 |
-
#: ../cookie-notice.php:
|
208 |
msgid "Button text"
|
209 |
msgstr ""
|
210 |
|
211 |
-
#: ../cookie-notice.php:
|
212 |
msgid "Refuse consent"
|
213 |
msgstr ""
|
214 |
|
215 |
-
#: ../cookie-notice.php:
|
216 |
msgid "Script blocking"
|
217 |
msgstr ""
|
218 |
|
219 |
-
#: ../cookie-notice.php:
|
220 |
msgid "Reloading"
|
221 |
msgstr ""
|
222 |
|
223 |
-
#: ../cookie-notice.php:
|
224 |
msgid "On scroll"
|
225 |
msgstr ""
|
226 |
|
227 |
-
#: ../cookie-notice.php:
|
228 |
msgid "On click"
|
229 |
msgstr ""
|
230 |
|
231 |
-
#: ../cookie-notice.php:
|
232 |
msgid "Accepted expiry"
|
233 |
msgstr ""
|
234 |
|
235 |
-
#: ../cookie-notice.php:
|
236 |
msgid "Rejected expiry"
|
237 |
msgstr ""
|
238 |
|
239 |
-
#: ../cookie-notice.php:
|
240 |
msgid "Script placement"
|
241 |
msgstr ""
|
242 |
|
243 |
-
#: ../cookie-notice.php:
|
244 |
msgid "Deactivation"
|
245 |
msgstr ""
|
246 |
|
247 |
-
#: ../cookie-notice.php:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
248 |
msgid "Design"
|
249 |
msgstr ""
|
250 |
|
251 |
-
#: ../cookie-notice.php:
|
252 |
msgid "Position"
|
253 |
msgstr ""
|
254 |
|
255 |
-
#: ../cookie-notice.php:
|
256 |
msgid "Animation"
|
257 |
msgstr ""
|
258 |
|
259 |
-
#: ../cookie-notice.php:
|
260 |
msgid "Button style"
|
261 |
msgstr ""
|
262 |
|
263 |
-
#: ../cookie-notice.php:
|
264 |
msgid "Button class"
|
265 |
msgstr ""
|
266 |
|
267 |
-
#: ../cookie-notice.php:
|
268 |
msgid "Colors"
|
269 |
msgstr ""
|
270 |
|
271 |
-
#: ../cookie-notice.php:
|
272 |
-
msgid "Enable
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
273 |
msgstr ""
|
274 |
|
275 |
-
#: ../cookie-notice.php:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
276 |
msgid "Enter the cookie notice message."
|
277 |
msgstr ""
|
278 |
|
279 |
-
#: ../cookie-notice.php:
|
280 |
msgid "The text of the option to accept the notice and make it disappear."
|
281 |
msgstr ""
|
282 |
|
283 |
-
#: ../cookie-notice.php:
|
284 |
msgid "Enable to give to the user the possibility to refuse third party non functional cookies."
|
285 |
msgstr ""
|
286 |
|
287 |
-
#: ../cookie-notice.php:
|
288 |
msgid "The text of the button to refuse the consent."
|
289 |
msgstr ""
|
290 |
|
291 |
-
#: ../cookie-notice.php:
|
292 |
msgid "Head"
|
293 |
msgstr ""
|
294 |
|
295 |
-
#: ../cookie-notice.php:
|
296 |
msgid "Body"
|
297 |
msgstr ""
|
298 |
|
299 |
-
#: ../cookie-notice.php:
|
300 |
msgid "The code to be used in your site header, before the closing head tag."
|
301 |
msgstr ""
|
302 |
|
303 |
-
#: ../cookie-notice.php:
|
304 |
msgid "The code to be used in your site footer, before the closing body tag."
|
305 |
msgstr ""
|
306 |
|
307 |
-
#: ../cookie-notice.php:
|
308 |
msgid "Enter non functional cookies Javascript code here (for e.g. Google Analitycs) to be used after the notice is accepted."
|
309 |
msgstr ""
|
310 |
|
311 |
-
#: ../cookie-notice.php:
|
312 |
msgid "To get the user consent status use the <code>cn_cookies_accepted()</code> function."
|
313 |
msgstr ""
|
314 |
|
315 |
-
#: ../cookie-notice.php:
|
316 |
msgid "Enable to give to the user the possibility to revoke their consent <i>(requires \"Refuse consent\" option enabled)</i>."
|
317 |
msgstr ""
|
318 |
|
319 |
-
#: ../cookie-notice.php:
|
320 |
msgid "Enter the revoke message."
|
321 |
msgstr ""
|
322 |
|
323 |
-
#: ../cookie-notice.php:
|
324 |
msgid "The text of the button to revoke the consent."
|
325 |
msgstr ""
|
326 |
|
327 |
-
#: ../cookie-notice.php:
|
328 |
msgid "Select the method for displaying the revoke button - automatic (in the banner) or manual using <code>[cookies_revoke]</code> shortcode."
|
329 |
msgstr ""
|
330 |
|
331 |
-
#: ../cookie-notice.php:
|
332 |
msgid "Enable to reload the page after the notice is accepted."
|
333 |
msgstr ""
|
334 |
|
335 |
-
#: ../cookie-notice.php:
|
336 |
msgid "Enable privacy policy link."
|
337 |
msgstr ""
|
338 |
|
339 |
-
#: ../cookie-notice.php:
|
340 |
msgid "The text of the privacy policy button."
|
341 |
msgstr ""
|
342 |
|
343 |
-
#: ../cookie-notice.php:
|
344 |
msgid "Select where to redirect user for more information."
|
345 |
msgstr ""
|
346 |
|
347 |
-
#: ../cookie-notice.php:
|
348 |
msgid "-- select page --"
|
349 |
msgstr ""
|
350 |
|
351 |
-
#: ../cookie-notice.php:
|
352 |
msgid "Select from one of your site's pages."
|
353 |
msgstr ""
|
354 |
|
355 |
-
#: ../cookie-notice.php:
|
356 |
msgid "Synchronize with WordPress Privacy Policy page."
|
357 |
msgstr ""
|
358 |
|
359 |
-
#: ../cookie-notice.php:
|
360 |
msgid "Enter the full URL starting with http(s)://"
|
361 |
msgstr ""
|
362 |
|
363 |
-
#: ../cookie-notice.php:
|
364 |
msgid "The amount of time that the cookie should be stored for when user accepts the notice."
|
365 |
msgstr ""
|
366 |
|
367 |
-
#: ../cookie-notice.php:
|
368 |
msgid "The amount of time that the cookie should be stored for when the user doesn't accept the notice."
|
369 |
msgstr ""
|
370 |
|
371 |
-
#: ../cookie-notice.php:
|
372 |
msgid "Select where all the plugin scripts should be placed."
|
373 |
msgstr ""
|
374 |
|
375 |
-
#: ../cookie-notice.php:
|
376 |
msgid "Select location for the notice."
|
377 |
msgstr ""
|
378 |
|
379 |
-
#: ../cookie-notice.php:
|
380 |
msgid "Select the animation style."
|
381 |
msgstr ""
|
382 |
|
383 |
-
#: ../cookie-notice.php:
|
384 |
msgid "Enable to accept the notice when user scrolls."
|
385 |
msgstr ""
|
386 |
|
387 |
-
#: ../cookie-notice.php:
|
388 |
msgid "Number of pixels user has to scroll to accept the notice and make it disappear."
|
389 |
msgstr ""
|
390 |
|
391 |
-
#: ../cookie-notice.php:
|
392 |
msgid "Enable to accept the notice on any click on the page."
|
393 |
msgstr ""
|
394 |
|
395 |
-
#: ../cookie-notice.php:
|
|
|
|
|
|
|
|
|
396 |
msgid "Select the buttons style."
|
397 |
msgstr ""
|
398 |
|
399 |
-
#: ../cookie-notice.php:
|
400 |
msgid "Enter additional button CSS classes separated by spaces."
|
401 |
msgstr ""
|
402 |
|
403 |
-
#: ../cookie-notice.php:
|
|
|
|
|
|
|
|
|
404 |
msgid "Settings restored to defaults."
|
405 |
msgstr ""
|
406 |
|
407 |
-
#: ../cookie-notice.php:
|
408 |
msgid "Support"
|
409 |
msgstr ""
|
410 |
|
411 |
-
#: ../cookie-notice.php:
|
412 |
msgid "Settings"
|
413 |
msgstr ""
|
414 |
|
415 |
-
#: ../cookie-notice.php:
|
416 |
msgid "Are you sure you want to reset these settings to defaults?"
|
417 |
msgstr ""
|
2 |
msgid ""
|
3 |
msgstr ""
|
4 |
"Project-Id-Version: Cookie Notice\n"
|
5 |
+
"POT-Creation-Date: 2020-04-07 00:08+0200\n"
|
6 |
"PO-Revision-Date: 2015-03-24 11:30+0100\n"
|
7 |
"Last-Translator: Bartosz Arendt <info@dfactory.eu>\n"
|
8 |
"Language-Team: dFactory <info@dfactory.eu>\n"
|
16 |
"X-Poedit-SourceCharset: UTF-8\n"
|
17 |
"X-Poedit-SearchPath-0: ..\n"
|
18 |
|
19 |
+
#: ../cookie-notice.php:197
|
20 |
msgid "Top"
|
21 |
msgstr ""
|
22 |
|
23 |
+
#: ../cookie-notice.php:198
|
24 |
msgid "Bottom"
|
25 |
msgstr ""
|
26 |
|
27 |
+
#: ../cookie-notice.php:202 ../cookie-notice.php:247
|
28 |
msgid "None"
|
29 |
msgstr ""
|
30 |
|
31 |
+
#: ../cookie-notice.php:203
|
32 |
msgid "Light"
|
33 |
msgstr ""
|
34 |
|
35 |
+
#: ../cookie-notice.php:204
|
36 |
msgid "Dark"
|
37 |
msgstr ""
|
38 |
|
39 |
+
#: ../cookie-notice.php:208
|
40 |
msgid "Automatic"
|
41 |
msgstr ""
|
42 |
|
43 |
+
#: ../cookie-notice.php:209
|
44 |
msgid "Manual"
|
45 |
msgstr ""
|
46 |
|
47 |
+
#: ../cookie-notice.php:213
|
48 |
msgid "Page link"
|
49 |
msgstr ""
|
50 |
|
51 |
+
#: ../cookie-notice.php:214
|
52 |
msgid "Custom link"
|
53 |
msgstr ""
|
54 |
|
55 |
+
#: ../cookie-notice.php:223
|
56 |
msgid "Banner"
|
57 |
msgstr ""
|
58 |
|
59 |
+
#: ../cookie-notice.php:224 ../cookie-notice.php:709
|
60 |
msgid "Message"
|
61 |
msgstr ""
|
62 |
|
63 |
+
#: ../cookie-notice.php:228
|
64 |
msgid "Text color"
|
65 |
msgstr ""
|
66 |
|
67 |
+
#: ../cookie-notice.php:229
|
68 |
msgid "Bar color"
|
69 |
msgstr ""
|
70 |
|
71 |
+
#: ../cookie-notice.php:235
|
72 |
msgid "An hour"
|
73 |
msgstr ""
|
74 |
|
75 |
+
#: ../cookie-notice.php:236
|
76 |
msgid "1 day"
|
77 |
msgstr ""
|
78 |
|
79 |
+
#: ../cookie-notice.php:237
|
80 |
msgid "1 week"
|
81 |
msgstr ""
|
82 |
|
83 |
+
#: ../cookie-notice.php:238
|
84 |
msgid "1 month"
|
85 |
msgstr ""
|
86 |
|
87 |
+
#: ../cookie-notice.php:239
|
88 |
msgid "3 months"
|
89 |
msgstr ""
|
90 |
|
91 |
+
#: ../cookie-notice.php:240
|
92 |
msgid "6 months"
|
93 |
msgstr ""
|
94 |
|
95 |
+
#: ../cookie-notice.php:241
|
96 |
msgid "1 year"
|
97 |
msgstr ""
|
98 |
|
99 |
+
#: ../cookie-notice.php:242
|
100 |
msgid "infinity"
|
101 |
msgstr ""
|
102 |
|
103 |
+
#: ../cookie-notice.php:248
|
104 |
msgid "Fade"
|
105 |
msgstr ""
|
106 |
|
107 |
+
#: ../cookie-notice.php:249
|
108 |
msgid "Slide"
|
109 |
msgstr ""
|
110 |
|
111 |
+
#: ../cookie-notice.php:253
|
112 |
msgid "Header"
|
113 |
msgstr ""
|
114 |
|
115 |
+
#: ../cookie-notice.php:254
|
116 |
msgid "Footer"
|
117 |
msgstr ""
|
118 |
|
119 |
+
#: ../cookie-notice.php:258
|
120 |
msgid "We use cookies to ensure that we give you the best experience on our website. If you continue to use this site we will assume that you are happy with it."
|
121 |
msgstr ""
|
122 |
|
123 |
+
#: ../cookie-notice.php:259
|
124 |
msgid "Ok"
|
125 |
msgstr ""
|
126 |
|
127 |
+
#: ../cookie-notice.php:260
|
128 |
msgid "No"
|
129 |
msgstr ""
|
130 |
|
131 |
+
#: ../cookie-notice.php:261
|
132 |
msgid "You can revoke your consent any time using the Revoke consent button."
|
133 |
msgstr ""
|
134 |
|
135 |
+
#: ../cookie-notice.php:262 ../cookie-notice.php:713
|
136 |
msgid "Revoke consent"
|
137 |
msgstr ""
|
138 |
|
139 |
+
#: ../cookie-notice.php:263 ../cookie-notice.php:711
|
140 |
msgid "Privacy policy"
|
141 |
msgstr ""
|
142 |
|
143 |
+
#: ../cookie-notice.php:266
|
144 |
+
msgid "Spread the message. Stop the virus."
|
|
|
145 |
msgstr ""
|
146 |
|
147 |
+
#: ../cookie-notice.php:267
|
148 |
+
msgid "Hands"
|
149 |
msgstr ""
|
150 |
|
151 |
+
#: ../cookie-notice.php:268
|
152 |
+
msgid "Wash often"
|
153 |
msgstr ""
|
154 |
|
155 |
+
#: ../cookie-notice.php:269
|
156 |
+
msgid "Elbow"
|
|
|
157 |
msgstr ""
|
158 |
|
159 |
+
#: ../cookie-notice.php:270
|
160 |
+
msgid "Cough into"
|
161 |
+
msgstr ""
|
162 |
+
|
163 |
+
#: ../cookie-notice.php:271
|
164 |
+
msgid "Face"
|
165 |
+
msgstr ""
|
166 |
+
|
167 |
+
#: ../cookie-notice.php:272
|
168 |
+
msgid "Don't touch"
|
169 |
+
msgstr ""
|
170 |
+
|
171 |
+
#: ../cookie-notice.php:273
|
172 |
+
msgid "Space"
|
173 |
+
msgstr ""
|
174 |
+
|
175 |
+
#: ../cookie-notice.php:274
|
176 |
+
msgid "Avoid crowds"
|
177 |
+
msgstr ""
|
178 |
+
|
179 |
+
#: ../cookie-notice.php:275
|
180 |
+
msgid "Home"
|
181 |
msgstr ""
|
182 |
|
183 |
+
#: ../cookie-notice.php:276
|
184 |
+
msgid "Stay inside"
|
185 |
+
msgstr ""
|
186 |
+
|
187 |
+
#: ../cookie-notice.php:277
|
188 |
+
msgid "Confirmed"
|
189 |
+
msgstr ""
|
190 |
+
|
191 |
+
#: ../cookie-notice.php:278
|
192 |
+
msgid "Recovered"
|
193 |
+
msgstr ""
|
194 |
+
|
195 |
+
#: ../cookie-notice.php:374
|
196 |
+
msgid "Yes, I want to help"
|
197 |
+
msgstr ""
|
198 |
+
|
199 |
+
#: ../cookie-notice.php:374
|
200 |
+
msgid "No, thanks"
|
201 |
+
msgstr ""
|
202 |
+
|
203 |
+
#: ../cookie-notice.php:377
|
204 |
+
msgid "Help to slow the spread of the Coronavirus."
|
205 |
+
msgstr ""
|
206 |
+
|
207 |
+
#: ../cookie-notice.php:378
|
208 |
+
msgid "Join 1+ million WordPress admins who are adding the Corona Banner to their websites using the Cookie Notice plugin."
|
209 |
+
msgstr ""
|
210 |
+
|
211 |
+
#: ../cookie-notice.php:378 ../cookie-notice.php:752
|
212 |
+
msgid "The Corona Banner displays data about Coronavirus pandemia and <strong>five steps recommended by the WHO (World Health Organization)</strong> to help flatten the Coronavirus curve."
|
213 |
+
msgstr ""
|
214 |
+
|
215 |
+
#: ../cookie-notice.php:379
|
216 |
+
msgid "Thank you and <em>#stayhome</em>"
|
217 |
+
msgstr ""
|
218 |
+
|
219 |
+
#: ../cookie-notice.php:657 ../cookie-notice.php:668 ../cookie-notice.php:671
|
220 |
+
#: ../cookie-notice.php:1378
|
221 |
msgid "Cookie Notice"
|
222 |
msgstr ""
|
223 |
|
224 |
+
#: ../cookie-notice.php:673
|
225 |
msgid "Need support?"
|
226 |
msgstr ""
|
227 |
|
228 |
+
#: ../cookie-notice.php:674
|
229 |
#, php-format
|
230 |
msgid "If you are having problems with this plugin, please browse it's <a href=\"%s\" target=\"_blank\">Documentation</a> or talk about them in the <a href=\"%s\" target=\"_blank\">Support forum</a>"
|
231 |
msgstr ""
|
232 |
|
233 |
+
#: ../cookie-notice.php:676
|
234 |
msgid "Do you like this plugin?"
|
235 |
msgstr ""
|
236 |
|
237 |
+
#: ../cookie-notice.php:677
|
238 |
#, php-format
|
239 |
msgid "<a href=\"%s\" target=\"_blank\">Rate it 5</a> on WordPress.org"
|
240 |
msgstr ""
|
241 |
|
242 |
+
#: ../cookie-notice.php:678
|
243 |
#, php-format
|
244 |
msgid "Blog about it & link to the <a href=\"%s\" target=\"_blank\">plugin page</a>."
|
245 |
msgstr ""
|
246 |
|
247 |
+
#: ../cookie-notice.php:679
|
248 |
#, php-format
|
249 |
msgid "Check out our other <a href=\"%s\" target=\"_blank\">WordPress plugins</a>."
|
250 |
msgstr ""
|
251 |
|
252 |
+
#: ../cookie-notice.php:692
|
253 |
msgid "Reset to defaults"
|
254 |
msgstr ""
|
255 |
|
256 |
+
#: ../cookie-notice.php:708
|
257 |
msgid "Configuration"
|
258 |
msgstr ""
|
259 |
|
260 |
+
#: ../cookie-notice.php:710
|
261 |
msgid "Button text"
|
262 |
msgstr ""
|
263 |
|
264 |
+
#: ../cookie-notice.php:712
|
265 |
msgid "Refuse consent"
|
266 |
msgstr ""
|
267 |
|
268 |
+
#: ../cookie-notice.php:714
|
269 |
msgid "Script blocking"
|
270 |
msgstr ""
|
271 |
|
272 |
+
#: ../cookie-notice.php:715
|
273 |
msgid "Reloading"
|
274 |
msgstr ""
|
275 |
|
276 |
+
#: ../cookie-notice.php:716
|
277 |
msgid "On scroll"
|
278 |
msgstr ""
|
279 |
|
280 |
+
#: ../cookie-notice.php:717
|
281 |
msgid "On click"
|
282 |
msgstr ""
|
283 |
|
284 |
+
#: ../cookie-notice.php:718
|
285 |
msgid "Accepted expiry"
|
286 |
msgstr ""
|
287 |
|
288 |
+
#: ../cookie-notice.php:719
|
289 |
msgid "Rejected expiry"
|
290 |
msgstr ""
|
291 |
|
292 |
+
#: ../cookie-notice.php:720
|
293 |
msgid "Script placement"
|
294 |
msgstr ""
|
295 |
|
296 |
+
#: ../cookie-notice.php:721
|
297 |
msgid "Deactivation"
|
298 |
msgstr ""
|
299 |
|
300 |
+
#: ../cookie-notice.php:724
|
301 |
+
msgid "Corona Banner"
|
302 |
+
msgstr ""
|
303 |
+
|
304 |
+
#: ../cookie-notice.php:725
|
305 |
+
msgid "Display"
|
306 |
+
msgstr ""
|
307 |
+
|
308 |
+
#: ../cookie-notice.php:726
|
309 |
+
msgid "Current cases"
|
310 |
+
msgstr ""
|
311 |
+
|
312 |
+
#: ../cookie-notice.php:727
|
313 |
+
msgid "Text strings"
|
314 |
+
msgstr ""
|
315 |
+
|
316 |
+
#: ../cookie-notice.php:730
|
317 |
msgid "Design"
|
318 |
msgstr ""
|
319 |
|
320 |
+
#: ../cookie-notice.php:731
|
321 |
msgid "Position"
|
322 |
msgstr ""
|
323 |
|
324 |
+
#: ../cookie-notice.php:732
|
325 |
msgid "Animation"
|
326 |
msgstr ""
|
327 |
|
328 |
+
#: ../cookie-notice.php:733
|
329 |
msgid "Button style"
|
330 |
msgstr ""
|
331 |
|
332 |
+
#: ../cookie-notice.php:734
|
333 |
msgid "Button class"
|
334 |
msgstr ""
|
335 |
|
336 |
+
#: ../cookie-notice.php:735
|
337 |
msgid "Colors"
|
338 |
msgstr ""
|
339 |
|
340 |
+
#: ../cookie-notice.php:751
|
341 |
+
msgid "Enable to display the Corona Banner."
|
342 |
+
msgstr ""
|
343 |
+
|
344 |
+
#: ../cookie-notice.php:762
|
345 |
+
msgid "Display information about current cases."
|
346 |
+
msgstr ""
|
347 |
+
|
348 |
+
#: ../cookie-notice.php:763
|
349 |
+
msgid "Provides up-to-date data about Coronavirus confirmed and recovered cases."
|
350 |
msgstr ""
|
351 |
|
352 |
+
#: ../cookie-notice.php:772
|
353 |
+
msgid "Headline message"
|
354 |
+
msgstr ""
|
355 |
+
|
356 |
+
#: ../cookie-notice.php:773
|
357 |
+
msgid "Current cases text strings"
|
358 |
+
msgstr ""
|
359 |
+
|
360 |
+
#: ../cookie-notice.php:774
|
361 |
+
msgid "Recommendation One"
|
362 |
+
msgstr ""
|
363 |
+
|
364 |
+
#: ../cookie-notice.php:775
|
365 |
+
msgid "Recommendation Two"
|
366 |
+
msgstr ""
|
367 |
+
|
368 |
+
#: ../cookie-notice.php:776
|
369 |
+
msgid "Recommendation Three"
|
370 |
+
msgstr ""
|
371 |
+
|
372 |
+
#: ../cookie-notice.php:777
|
373 |
+
msgid "Recommendation Four"
|
374 |
+
msgstr ""
|
375 |
+
|
376 |
+
#: ../cookie-notice.php:778
|
377 |
+
msgid "Recommendation Five"
|
378 |
+
msgstr ""
|
379 |
+
|
380 |
+
#: ../cookie-notice.php:783
|
381 |
+
msgid "Enable if you'd like to adjust the Corona Banner text strings."
|
382 |
+
msgstr ""
|
383 |
+
|
384 |
+
#: ../cookie-notice.php:810
|
385 |
msgid "Enter the cookie notice message."
|
386 |
msgstr ""
|
387 |
|
388 |
+
#: ../cookie-notice.php:823
|
389 |
msgid "The text of the option to accept the notice and make it disappear."
|
390 |
msgstr ""
|
391 |
|
392 |
+
#: ../cookie-notice.php:834
|
393 |
msgid "Enable to give to the user the possibility to refuse third party non functional cookies."
|
394 |
msgstr ""
|
395 |
|
396 |
+
#: ../cookie-notice.php:838
|
397 |
msgid "The text of the button to refuse the consent."
|
398 |
msgstr ""
|
399 |
|
400 |
+
#: ../cookie-notice.php:856
|
401 |
msgid "Head"
|
402 |
msgstr ""
|
403 |
|
404 |
+
#: ../cookie-notice.php:857
|
405 |
msgid "Body"
|
406 |
msgstr ""
|
407 |
|
408 |
+
#: ../cookie-notice.php:860
|
409 |
msgid "The code to be used in your site header, before the closing head tag."
|
410 |
msgstr ""
|
411 |
|
412 |
+
#: ../cookie-notice.php:864
|
413 |
msgid "The code to be used in your site footer, before the closing body tag."
|
414 |
msgstr ""
|
415 |
|
416 |
+
#: ../cookie-notice.php:868
|
417 |
msgid "Enter non functional cookies Javascript code here (for e.g. Google Analitycs) to be used after the notice is accepted."
|
418 |
msgstr ""
|
419 |
|
420 |
+
#: ../cookie-notice.php:868
|
421 |
msgid "To get the user consent status use the <code>cn_cookies_accepted()</code> function."
|
422 |
msgstr ""
|
423 |
|
424 |
+
#: ../cookie-notice.php:879
|
425 |
msgid "Enable to give to the user the possibility to revoke their consent <i>(requires \"Refuse consent\" option enabled)</i>."
|
426 |
msgstr ""
|
427 |
|
428 |
+
#: ../cookie-notice.php:882
|
429 |
msgid "Enter the revoke message."
|
430 |
msgstr ""
|
431 |
|
432 |
+
#: ../cookie-notice.php:884
|
433 |
msgid "The text of the button to revoke the consent."
|
434 |
msgstr ""
|
435 |
|
436 |
+
#: ../cookie-notice.php:892
|
437 |
msgid "Select the method for displaying the revoke button - automatic (in the banner) or manual using <code>[cookies_revoke]</code> shortcode."
|
438 |
msgstr ""
|
439 |
|
440 |
+
#: ../cookie-notice.php:903
|
441 |
msgid "Enable to reload the page after the notice is accepted."
|
442 |
msgstr ""
|
443 |
|
444 |
+
#: ../cookie-notice.php:926
|
445 |
msgid "Enable privacy policy link."
|
446 |
msgstr ""
|
447 |
|
448 |
+
#: ../cookie-notice.php:929
|
449 |
msgid "The text of the privacy policy button."
|
450 |
msgstr ""
|
451 |
|
452 |
+
#: ../cookie-notice.php:941
|
453 |
msgid "Select where to redirect user for more information."
|
454 |
msgstr ""
|
455 |
|
456 |
+
#: ../cookie-notice.php:944
|
457 |
msgid "-- select page --"
|
458 |
msgstr ""
|
459 |
|
460 |
+
#: ../cookie-notice.php:955
|
461 |
msgid "Select from one of your site's pages."
|
462 |
msgstr ""
|
463 |
|
464 |
+
#: ../cookie-notice.php:961
|
465 |
msgid "Synchronize with WordPress Privacy Policy page."
|
466 |
msgstr ""
|
467 |
|
468 |
+
#: ../cookie-notice.php:968
|
469 |
msgid "Enter the full URL starting with http(s)://"
|
470 |
msgstr ""
|
471 |
|
472 |
+
#: ../cookie-notice.php:1011
|
473 |
msgid "The amount of time that the cookie should be stored for when user accepts the notice."
|
474 |
msgstr ""
|
475 |
|
476 |
+
#: ../cookie-notice.php:1034
|
477 |
msgid "The amount of time that the cookie should be stored for when the user doesn't accept the notice."
|
478 |
msgstr ""
|
479 |
|
480 |
+
#: ../cookie-notice.php:1052
|
481 |
msgid "Select where all the plugin scripts should be placed."
|
482 |
msgstr ""
|
483 |
|
484 |
+
#: ../cookie-notice.php:1072
|
485 |
msgid "Select location for the notice."
|
486 |
msgstr ""
|
487 |
|
488 |
+
#: ../cookie-notice.php:1093
|
489 |
msgid "Select the animation style."
|
490 |
msgstr ""
|
491 |
|
492 |
+
#: ../cookie-notice.php:1104
|
493 |
msgid "Enable to accept the notice when user scrolls."
|
494 |
msgstr ""
|
495 |
|
496 |
+
#: ../cookie-notice.php:1107
|
497 |
msgid "Number of pixels user has to scroll to accept the notice and make it disappear."
|
498 |
msgstr ""
|
499 |
|
500 |
+
#: ../cookie-notice.php:1118
|
501 |
msgid "Enable to accept the notice on any click on the page."
|
502 |
msgstr ""
|
503 |
|
504 |
+
#: ../cookie-notice.php:1128
|
505 |
+
msgid "Enable if you want all plugin data to be deleted on deactivation."
|
506 |
+
msgstr ""
|
507 |
+
|
508 |
+
#: ../cookie-notice.php:1148
|
509 |
msgid "Select the buttons style."
|
510 |
msgstr ""
|
511 |
|
512 |
+
#: ../cookie-notice.php:1161
|
513 |
msgid "Enter additional button CSS classes separated by spaces."
|
514 |
msgstr ""
|
515 |
|
516 |
+
#: ../cookie-notice.php:1185
|
517 |
+
msgid "Bar opacity"
|
518 |
+
msgstr ""
|
519 |
+
|
520 |
+
#: ../cookie-notice.php:1324
|
521 |
msgid "Settings restored to defaults."
|
522 |
msgstr ""
|
523 |
|
524 |
+
#: ../cookie-notice.php:1464
|
525 |
msgid "Support"
|
526 |
msgstr ""
|
527 |
|
528 |
+
#: ../cookie-notice.php:1481
|
529 |
msgid "Settings"
|
530 |
msgstr ""
|
531 |
|
532 |
+
#: ../cookie-notice.php:1554
|
533 |
msgid "Are you sure you want to reset these settings to defaults?"
|
534 |
msgstr ""
|
readme.txt
CHANGED
@@ -4,8 +4,8 @@ Donate link: http://www.dfactory.eu/
|
|
4 |
Tags: gdpr, ccpa, cookie, cookies, notice, notification, notify, cookie, cookie law, privacy, policy, consent, law
|
5 |
Requires at least: 3.3
|
6 |
Requires PHP: 5.2.4
|
7 |
-
Tested up to: 5.
|
8 |
-
Stable tag: 1.
|
9 |
License: MIT License
|
10 |
License URI: http://opensource.org/licenses/MIT
|
11 |
|
@@ -68,6 +68,12 @@ No questions yet.
|
|
68 |
|
69 |
== Changelog ==
|
70 |
|
|
|
|
|
|
|
|
|
|
|
|
|
71 |
= 1.2.51 =
|
72 |
* Fix: Problems with iOS and OK/Reject button
|
73 |
* Tweak: Added Separate cookie expiry for Reject, props Carlos Buchart
|
@@ -288,6 +294,7 @@ Initial release
|
|
288 |
|
289 |
== Upgrade Notice ==
|
290 |
|
291 |
-
= 1.
|
292 |
-
*
|
293 |
-
*
|
|
4 |
Tags: gdpr, ccpa, cookie, cookies, notice, notification, notify, cookie, cookie law, privacy, policy, consent, law
|
5 |
Requires at least: 3.3
|
6 |
Requires PHP: 5.2.4
|
7 |
+
Tested up to: 5.4
|
8 |
+
Stable tag: 1.3.0
|
9 |
License: MIT License
|
10 |
License URI: http://opensource.org/licenses/MIT
|
11 |
|
68 |
|
69 |
== Changelog ==
|
70 |
|
71 |
+
= 1.3.0 =
|
72 |
+
* New: Introducing Corona Banner that displays data about Coronavirus pandemia and five steps recommended by the WHO (World Health Organization)
|
73 |
+
* New: Option to set bar opacity
|
74 |
+
* New: Accept the notice with close icon
|
75 |
+
* Fix: Policy link added to message without policy option enabled
|
76 |
+
|
77 |
= 1.2.51 =
|
78 |
* Fix: Problems with iOS and OK/Reject button
|
79 |
* Tweak: Added Separate cookie expiry for Reject, props Carlos Buchart
|
294 |
|
295 |
== Upgrade Notice ==
|
296 |
|
297 |
+
= 1.3.0 =
|
298 |
+
* New: Introducing Corona Banner that displays data about Coronavirus pandemia and five steps recommended by the WHO (World Health Organization)
|
299 |
+
* New: Option to set bar opacity
|
300 |
+
* New: Accept the notice with close icon
|