Version Description
- Fixed authentication error issue experienced by some users.
- Added re-authentication button for easier changing or relinking of Google Analytics accounts.
- Added Send Debug button for faster technical troubleshooting.
- Added refresh button for Google Analytics within dashboard.
- Included new alert for missing Google Analytics account.
- Included new alert for unsupported PHP version.
Download this release
Release Info
Developer | ShareThis |
Plugin | Google Analytics |
Version | 2.1.2 |
Comparing to | |
See all releases |
Code changes from version 2.1 to 2.1.2
- class/Ga_Admin.php +63 -24
- class/Ga_Helper.php +44 -12
- class/Ga_Stats.php +30 -0
- class/controller/Ga_Admin_Controller.php +27 -2
- class/core/Ga_Controller_Core.php +1 -1
- css/ga_additional.css +7 -0
- css/googleanalytics.css +18 -0
- googleanalytics.php +13 -2
- js/googleanalytics_dashboard.js +125 -51
- js/googleanalytics_page.js +43 -1
- lib/Ga_Lib_Api_Client.php +2 -1
- lib/Ga_Lib_Api_Request.php +30 -19
- lib/Ga_Lib_Google_Api_Client.php +18 -12
- lib/cert/cacerts.pem +738 -0
- overwrite/ga_overwrite.php +0 -0
- readme.txt +15 -3
- screenshot-3.png +0 -0
- screenshot-4.png +0 -0
- screenshot-5.png +0 -0
- tools/class-support-logging.php +161 -0
- view/ga_auth_button.php +7 -0
- view/ga_dashboard_widget.php +37 -18
- view/ga_debug_modal.php +35 -0
- view/page.php +12 -13
- view/statistics.php +0 -0
class/Ga_Admin.php
CHANGED
@@ -23,7 +23,7 @@ class Ga_Admin {
|
|
23 |
const NOTICE_ERROR = 'error';
|
24 |
const GA_SHARETHIS_API_ALIAS = 'sharethis';
|
25 |
const GA_DISABLE_ALL_FEATURES = 'googleanalytics_disable_all_features';
|
26 |
-
const GA_HEARTBEAT_API_CACHE_UPDATE =
|
27 |
|
28 |
/**
|
29 |
* Instantiate API client.
|
@@ -82,6 +82,7 @@ class Ga_Admin {
|
|
82 |
delete_option( self::GA_WEB_PROPERTY_ID_MANUALLY_OPTION_NAME );
|
83 |
delete_option( self::GA_WEB_PROPERTY_ID_MANUALLY_VALUE_OPTION_NAME );
|
84 |
delete_option( self::GA_DISABLE_ALL_FEATURES );
|
|
|
85 |
Ga_Cache::delete_cache_options();
|
86 |
}
|
87 |
|
@@ -254,7 +255,9 @@ class Ga_Admin {
|
|
254 |
if ( !Ga_Helper::is_wp_version_valid() || !Ga_Helper::is_php_version_valid() ) {
|
255 |
return false;
|
256 |
}
|
257 |
-
|
|
|
|
|
258 |
/**
|
259 |
* Keeps data to be extracted as variables in the view.
|
260 |
*
|
@@ -285,9 +288,12 @@ class Ga_Admin {
|
|
285 |
|
286 |
if ( Ga_Helper::is_authorized() ) {
|
287 |
$data[ 'ga_accounts_selector' ] = self::get_accounts_selector();
|
|
|
288 |
} else {
|
289 |
$data[ 'popup_url' ] = self::get_auth_popup_url();
|
|
|
290 |
}
|
|
|
291 |
if ( !empty( $_GET[ 'err' ] ) ) {
|
292 |
switch ( $_GET[ 'err' ] ) {
|
293 |
case 1:
|
@@ -320,9 +326,12 @@ class Ga_Admin {
|
|
320 |
*/
|
321 |
public static function get_accounts_selector() {
|
322 |
$selected = Ga_Helper::get_selected_account_data();
|
323 |
-
|
|
|
|
|
|
|
324 |
return Ga_View_Core::load( 'ga_accounts_selector', array(
|
325 |
-
'selector' =>
|
326 |
'selected' => $selected ? implode( "_", $selected ) : null,
|
327 |
'add_manually_enabled' => Ga_Helper::is_code_manually_enabled() || Ga_Helper::is_all_feature_disabled()
|
328 |
), true );
|
@@ -332,7 +341,7 @@ class Ga_Admin {
|
|
332 |
* Adds JS scripts for the settings page.
|
333 |
*/
|
334 |
public static function enqueue_ga_scripts() {
|
335 |
-
wp_register_script( GA_NAME . '-page-js',
|
336 |
'jquery'
|
337 |
) );
|
338 |
wp_enqueue_script( GA_NAME . '-page-js' );
|
@@ -342,15 +351,15 @@ class Ga_Admin {
|
|
342 |
* Adds CSS plugin's scripts.
|
343 |
*/
|
344 |
public static function enqueue_ga_css() {
|
345 |
-
wp_register_style( GA_NAME . '-css',
|
346 |
-
wp_register_style( GA_NAME . '-additional-css',
|
347 |
wp_enqueue_style( GA_NAME . '-css' );
|
348 |
wp_enqueue_style( GA_NAME . '-additional-css' );
|
349 |
if ( Ga_Helper::is_wp_old() ) {
|
350 |
-
wp_register_style( GA_NAME . '-old-wp-support-css',
|
351 |
wp_enqueue_style( GA_NAME . '-old-wp-support-css' );
|
352 |
}
|
353 |
-
wp_register_style( GA_NAME . '-modal-css',
|
354 |
wp_enqueue_style( GA_NAME . '-modal-css' );
|
355 |
}
|
356 |
|
@@ -358,9 +367,9 @@ class Ga_Admin {
|
|
358 |
* Enqueues dashboard JS scripts.
|
359 |
*/
|
360 |
private static function enqueue_dashboard_scripts() {
|
361 |
-
wp_register_script( GA_NAME . '-dashboard-js',
|
362 |
'jquery'
|
363 |
-
) );
|
364 |
wp_enqueue_script( GA_NAME . '-dashboard-js' );
|
365 |
}
|
366 |
|
@@ -369,9 +378,9 @@ class Ga_Admin {
|
|
369 |
*/
|
370 |
public static function enqueue_scripts() {
|
371 |
if ( Ga_Helper::is_dashboard_page() || Ga_Helper::is_plugin_page() ) {
|
372 |
-
wp_register_script( GA_NAME . '-js',
|
373 |
'jquery'
|
374 |
-
) );
|
375 |
wp_enqueue_script( GA_NAME . '-js' );
|
376 |
|
377 |
wp_register_script( 'googlecharts', 'https://www.gstatic.com/charts/loader.js', null, null, false );
|
@@ -478,7 +487,7 @@ class Ga_Admin {
|
|
478 |
add_action( 'wp_ajax_ga_ajax_data_change', 'Ga_Admin::ga_ajax_data_change' );
|
479 |
add_action( 'admin_notices', 'Ga_Admin::admin_notice_googleanalytics' );
|
480 |
add_action( 'heartbeat_tick', 'Ga_Admin::run_heartbeat_jobs' );
|
481 |
-
|
482 |
if ( !get_option( self::GA_SHARETHIS_TERMS_OPTION_NAME ) && !get_option( self::GA_HIDE_TERMS_OPTION_NAME ) ) {
|
483 |
add_action( 'wp_ajax_googleanalytics_hide_terms', 'Ga_Admin::admin_notice_hide_googleanalytics' );
|
484 |
}
|
@@ -496,9 +505,9 @@ class Ga_Admin {
|
|
496 |
self::api_client()->set_disable_cache( true );
|
497 |
|
498 |
// Try to regenerate cache if needed
|
499 |
-
|
|
|
500 |
}
|
501 |
-
}
|
502 |
|
503 |
/**
|
504 |
* Adds plugin's filters
|
@@ -528,7 +537,7 @@ class Ga_Admin {
|
|
528 |
|
529 |
$code = Ga_Helper::get_option( self::GA_OAUTH_AUTH_CODE_OPTION_NAME );
|
530 |
|
531 |
-
if ( !
|
532 |
Ga_Helper::update_option( self::GA_OAUTH_AUTH_CODE_OPTION_NAME, "" );
|
533 |
|
534 |
// Get access token
|
@@ -541,10 +550,10 @@ class Ga_Admin {
|
|
541 |
$param = '&err=1';
|
542 |
} else {
|
543 |
self::api_client()->set_access_token( $response->getData() );
|
544 |
-
|
545 |
// Get accounts data
|
546 |
$account_summaries = self::api_client()->call( 'ga_api_account_summaries' );
|
547 |
self::save_ga_account_summaries( $account_summaries->getData() );
|
|
|
548 |
}
|
549 |
|
550 |
wp_redirect( admin_url( Ga_Helper::GA_SETTINGS_PAGE_URL . $param ) );
|
@@ -611,9 +620,11 @@ class Ga_Admin {
|
|
611 |
}
|
612 |
|
613 |
update_option( self::GA_ACCOUNT_DATA_OPTION_NAME, wp_json_encode( $return ) );
|
614 |
-
update_option( self::GA_WEB_PROPERTY_ID_OPTION_NAME, "" );
|
615 |
}
|
616 |
-
|
|
|
|
|
|
|
617 |
return $return;
|
618 |
}
|
619 |
|
@@ -621,12 +632,16 @@ class Ga_Admin {
|
|
621 |
* Handle AJAX data for the GA dashboard widget.
|
622 |
*/
|
623 |
public static function ga_ajax_data_change() {
|
624 |
-
|
625 |
-
|
626 |
-
|
|
|
|
|
|
|
|
|
627 |
wp_die();
|
628 |
}
|
629 |
-
|
630 |
/**
|
631 |
* Displays API error messages.
|
632 |
*/
|
@@ -670,5 +685,29 @@ class Ga_Admin {
|
|
670 |
|
671 |
return array( $chart, $boxes, $labels, $sources );
|
672 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
673 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
674 |
}
|
23 |
const NOTICE_ERROR = 'error';
|
24 |
const GA_SHARETHIS_API_ALIAS = 'sharethis';
|
25 |
const GA_DISABLE_ALL_FEATURES = 'googleanalytics_disable_all_features';
|
26 |
+
const GA_HEARTBEAT_API_CACHE_UPDATE = false;
|
27 |
|
28 |
/**
|
29 |
* Instantiate API client.
|
82 |
delete_option( self::GA_WEB_PROPERTY_ID_MANUALLY_OPTION_NAME );
|
83 |
delete_option( self::GA_WEB_PROPERTY_ID_MANUALLY_VALUE_OPTION_NAME );
|
84 |
delete_option( self::GA_DISABLE_ALL_FEATURES );
|
85 |
+
delete_option( Ga_SupportLogger::LOG_OPTION );
|
86 |
Ga_Cache::delete_cache_options();
|
87 |
}
|
88 |
|
255 |
if ( !Ga_Helper::is_wp_version_valid() || !Ga_Helper::is_php_version_valid() ) {
|
256 |
return false;
|
257 |
}
|
258 |
+
if ( Ga_Helper::are_features_enabled() && Ga_Helper::is_curl_disabled() ) {
|
259 |
+
echo Ga_Helper::ga_wp_notice( _( 'Looks like cURL is not configured on your server. In order to authenticate your Google Analytics account and display statistics, cURL is required. Please contact your server administrator to enable it, or manually enter your Tracking ID.' ), self::NOTICE_WARNING );
|
260 |
+
}
|
261 |
/**
|
262 |
* Keeps data to be extracted as variables in the view.
|
263 |
*
|
288 |
|
289 |
if ( Ga_Helper::is_authorized() ) {
|
290 |
$data[ 'ga_accounts_selector' ] = self::get_accounts_selector();
|
291 |
+
$data[ 'auth_button' ] = self::get_auth_button( 'Re-authenticate with Google' );
|
292 |
} else {
|
293 |
$data[ 'popup_url' ] = self::get_auth_popup_url();
|
294 |
+
$data[ 'auth_button' ] = self::get_auth_button( 'Authenticate with Google' );
|
295 |
}
|
296 |
+
$data['debug_modal'] = self::get_debug_modal();
|
297 |
if ( !empty( $_GET[ 'err' ] ) ) {
|
298 |
switch ( $_GET[ 'err' ] ) {
|
299 |
case 1:
|
326 |
*/
|
327 |
public static function get_accounts_selector() {
|
328 |
$selected = Ga_Helper::get_selected_account_data();
|
329 |
+
$selector = json_decode( get_option( self::GA_ACCOUNT_DATA_OPTION_NAME ), true );
|
330 |
+
if ( !Ga_Helper::is_code_manually_enabled() && empty( $selector ) ) {
|
331 |
+
echo Ga_Helper::ga_wp_notice( "Hi there! It seems like we weren't able to locate a Google Analytics account attached to your email account. Can you please register for Google Analytics and then deactivate and reactivate the plugin?", self::NOTICE_WARNING );
|
332 |
+
}
|
333 |
return Ga_View_Core::load( 'ga_accounts_selector', array(
|
334 |
+
'selector' => $selector,
|
335 |
'selected' => $selected ? implode( "_", $selected ) : null,
|
336 |
'add_manually_enabled' => Ga_Helper::is_code_manually_enabled() || Ga_Helper::is_all_feature_disabled()
|
337 |
), true );
|
341 |
* Adds JS scripts for the settings page.
|
342 |
*/
|
343 |
public static function enqueue_ga_scripts() {
|
344 |
+
wp_register_script( GA_NAME . '-page-js', Ga_Helper::get_plugin_url_with_correct_protocol() . '/js/' . GA_NAME . '_page.js', array(
|
345 |
'jquery'
|
346 |
) );
|
347 |
wp_enqueue_script( GA_NAME . '-page-js' );
|
351 |
* Adds CSS plugin's scripts.
|
352 |
*/
|
353 |
public static function enqueue_ga_css() {
|
354 |
+
wp_register_style( GA_NAME . '-css', Ga_Helper::get_plugin_url_with_correct_protocol() . '/css/' . GA_NAME . '.css', false, GOOGLEANALYTICS_VERSION, 'all' );
|
355 |
+
wp_register_style( GA_NAME . '-additional-css', Ga_Helper::get_plugin_url_with_correct_protocol(). '/css/ga_additional.css', false, GOOGLEANALYTICS_VERSION, 'all' );
|
356 |
wp_enqueue_style( GA_NAME . '-css' );
|
357 |
wp_enqueue_style( GA_NAME . '-additional-css' );
|
358 |
if ( Ga_Helper::is_wp_old() ) {
|
359 |
+
wp_register_style( GA_NAME . '-old-wp-support-css', Ga_Helper::get_plugin_url_with_correct_protocol() . '/css/ga_old_wp_support.css', false, GOOGLEANALYTICS_VERSION, 'all' );
|
360 |
wp_enqueue_style( GA_NAME . '-old-wp-support-css' );
|
361 |
}
|
362 |
+
wp_register_style( GA_NAME . '-modal-css', Ga_Helper::get_plugin_url_with_correct_protocol() . '/css/ga_modal.css', false, GOOGLEANALYTICS_VERSION, 'all' );
|
363 |
wp_enqueue_style( GA_NAME . '-modal-css' );
|
364 |
}
|
365 |
|
367 |
* Enqueues dashboard JS scripts.
|
368 |
*/
|
369 |
private static function enqueue_dashboard_scripts() {
|
370 |
+
wp_register_script( GA_NAME . '-dashboard-js', Ga_Helper::get_plugin_url_with_correct_protocol() . '/js/' . GA_NAME . '_dashboard.js', array(
|
371 |
'jquery'
|
372 |
+
), GOOGLEANALYTICS_VERSION );
|
373 |
wp_enqueue_script( GA_NAME . '-dashboard-js' );
|
374 |
}
|
375 |
|
378 |
*/
|
379 |
public static function enqueue_scripts() {
|
380 |
if ( Ga_Helper::is_dashboard_page() || Ga_Helper::is_plugin_page() ) {
|
381 |
+
wp_register_script( GA_NAME . '-js', Ga_Helper::get_plugin_url_with_correct_protocol() . '/js/' . GA_NAME . '.js', array(
|
382 |
'jquery'
|
383 |
+
), GOOGLEANALYTICS_VERSION );
|
384 |
wp_enqueue_script( GA_NAME . '-js' );
|
385 |
|
386 |
wp_register_script( 'googlecharts', 'https://www.gstatic.com/charts/loader.js', null, null, false );
|
487 |
add_action( 'wp_ajax_ga_ajax_data_change', 'Ga_Admin::ga_ajax_data_change' );
|
488 |
add_action( 'admin_notices', 'Ga_Admin::admin_notice_googleanalytics' );
|
489 |
add_action( 'heartbeat_tick', 'Ga_Admin::run_heartbeat_jobs' );
|
490 |
+
add_action( 'wp_ajax_googleanalytics_send_debug_email', 'Ga_SupportLogger::send_email' );
|
491 |
if ( !get_option( self::GA_SHARETHIS_TERMS_OPTION_NAME ) && !get_option( self::GA_HIDE_TERMS_OPTION_NAME ) ) {
|
492 |
add_action( 'wp_ajax_googleanalytics_hide_terms', 'Ga_Admin::admin_notice_hide_googleanalytics' );
|
493 |
}
|
505 |
self::api_client()->set_disable_cache( true );
|
506 |
|
507 |
// Try to regenerate cache if needed
|
508 |
+
self::generate_stats_data();
|
509 |
+
}
|
510 |
}
|
|
|
511 |
|
512 |
/**
|
513 |
* Adds plugin's filters
|
537 |
|
538 |
$code = Ga_Helper::get_option( self::GA_OAUTH_AUTH_CODE_OPTION_NAME );
|
539 |
|
540 |
+
if ( !empty( $code ) ) {
|
541 |
Ga_Helper::update_option( self::GA_OAUTH_AUTH_CODE_OPTION_NAME, "" );
|
542 |
|
543 |
// Get access token
|
550 |
$param = '&err=1';
|
551 |
} else {
|
552 |
self::api_client()->set_access_token( $response->getData() );
|
|
|
553 |
// Get accounts data
|
554 |
$account_summaries = self::api_client()->call( 'ga_api_account_summaries' );
|
555 |
self::save_ga_account_summaries( $account_summaries->getData() );
|
556 |
+
update_option( self::GA_SELECTED_ACCOUNT, "" );
|
557 |
}
|
558 |
|
559 |
wp_redirect( admin_url( Ga_Helper::GA_SETTINGS_PAGE_URL . $param ) );
|
620 |
}
|
621 |
|
622 |
update_option( self::GA_ACCOUNT_DATA_OPTION_NAME, wp_json_encode( $return ) );
|
|
|
623 |
}
|
624 |
+
else{
|
625 |
+
update_option( self::GA_ACCOUNT_DATA_OPTION_NAME, "" );
|
626 |
+
}
|
627 |
+
update_option( self::GA_WEB_PROPERTY_ID_OPTION_NAME, "" );
|
628 |
return $return;
|
629 |
}
|
630 |
|
632 |
* Handle AJAX data for the GA dashboard widget.
|
633 |
*/
|
634 |
public static function ga_ajax_data_change() {
|
635 |
+
if ( Ga_Admin_Controller::validate_ajax_data_change_post( $_POST ) ) {
|
636 |
+
$date_range = !empty( $_POST[ 'date_range' ] ) ? $_POST[ 'date_range' ] : null;
|
637 |
+
$metric = !empty( $_POST[ 'metric' ] ) ? $_POST[ 'metric' ] : null;
|
638 |
+
echo Ga_Helper::get_ga_dashboard_widget_data_json( $date_range, $metric, false, true );
|
639 |
+
} else {
|
640 |
+
echo wp_json_encode( array( 'error' => _( 'Invalid request.' ) ) );
|
641 |
+
}
|
642 |
wp_die();
|
643 |
}
|
644 |
+
|
645 |
/**
|
646 |
* Displays API error messages.
|
647 |
*/
|
685 |
|
686 |
return array( $chart, $boxes, $labels, $sources );
|
687 |
}
|
688 |
+
/**
|
689 |
+
* Returns auth or re-auth button
|
690 |
+
*
|
691 |
+
* @return string
|
692 |
+
*/
|
693 |
+
public static function get_auth_button( $label ) {
|
694 |
|
695 |
+
return Ga_View_Core::load( 'ga_auth_button', array(
|
696 |
+
'label' => $label,
|
697 |
+
'url' => self::get_auth_popup_url(),
|
698 |
+
'manually_id' => get_option( self::GA_WEB_PROPERTY_ID_MANUALLY_OPTION_NAME )
|
699 |
+
), true );
|
700 |
+
}
|
701 |
+
|
702 |
+
/**
|
703 |
+
* Returns debug modal
|
704 |
+
*
|
705 |
+
* @return string
|
706 |
+
*/
|
707 |
+
public static function get_debug_modal( ) {
|
708 |
+
|
709 |
+
return Ga_View_Core::load( 'ga_debug_modal', array(
|
710 |
+
'debug_info' => Ga_SupportLogger::$debug_info
|
711 |
+
), true );
|
712 |
+
}
|
713 |
}
|
class/Ga_Helper.php
CHANGED
@@ -161,7 +161,7 @@ class Ga_Helper {
|
|
161 |
* Dashboard widget hook.
|
162 |
*/
|
163 |
public static function add_ga_dashboard_widget() {
|
164 |
-
echo self::get_ga_dashboard_widget();
|
165 |
}
|
166 |
|
167 |
/**
|
@@ -173,24 +173,37 @@ class Ga_Helper {
|
|
173 |
*
|
174 |
* @return null | string HTML dashboard widget code.
|
175 |
*/
|
176 |
-
public static function get_ga_dashboard_widget( $date_range = null, $text_mode = false, $ajax = false ) {
|
177 |
if ( empty( $date_range ) ) {
|
178 |
$date_range = '30daysAgo';
|
179 |
}
|
180 |
|
181 |
-
|
182 |
-
|
|
|
183 |
|
184 |
-
|
185 |
-
|
186 |
-
|
187 |
-
|
188 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
189 |
} else {
|
190 |
echo self::get_chart_page( 'ga_dashboard_widget' . ( $ajax ? "_ajax" : "" ), array(
|
191 |
-
'chart'
|
192 |
-
'boxes'
|
193 |
-
'more_details_url'
|
|
|
|
|
|
|
194 |
) );
|
195 |
}
|
196 |
|
@@ -485,6 +498,16 @@ class Ga_Helper {
|
|
485 |
return $data;
|
486 |
}
|
487 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
488 |
/**
|
489 |
* Create base64 url message
|
490 |
*
|
@@ -561,5 +584,14 @@ class Ga_Helper {
|
|
561 |
|
562 |
return ! empty( $account_id[0] ) ? $account_id[0] : '';
|
563 |
}
|
|
|
|
|
|
|
|
|
564 |
|
|
|
|
|
|
|
|
|
|
|
565 |
}
|
161 |
* Dashboard widget hook.
|
162 |
*/
|
163 |
public static function add_ga_dashboard_widget() {
|
164 |
+
echo self::get_ga_dashboard_widget( null, false, false, true );
|
165 |
}
|
166 |
|
167 |
/**
|
173 |
*
|
174 |
* @return null | string HTML dashboard widget code.
|
175 |
*/
|
176 |
+
public static function get_ga_dashboard_widget( $date_range = null, $text_mode = false, $ajax = false, $trigger_request = false ) {
|
177 |
if ( empty( $date_range ) ) {
|
178 |
$date_range = '30daysAgo';
|
179 |
}
|
180 |
|
181 |
+
if ( !$trigger_request ) {
|
182 |
+
// Get chart and boxes data
|
183 |
+
$data = self::get_dashboard_widget_data( $date_range );
|
184 |
|
185 |
+
if ( $text_mode ) {
|
186 |
+
return self::get_chart_page( 'ga_dashboard_widget' . ( $ajax ? "_ajax" : "" ), array(
|
187 |
+
'chart' => $data[ 'chart' ],
|
188 |
+
'boxes' => $data[ 'boxes' ]
|
189 |
+
) );
|
190 |
+
} else {
|
191 |
+
echo self::get_chart_page( 'ga_dashboard_widget' . ( $ajax ? "_ajax" : "" ), array(
|
192 |
+
'chart' => $data[ 'chart' ],
|
193 |
+
'boxes' => $data[ 'boxes' ],
|
194 |
+
'more_details_url' => admin_url( self::GA_STATISTICS_PAGE_URL ),
|
195 |
+
'ga_nonce' => wp_create_nonce( 'ga_ajax_data_change' ),
|
196 |
+
'ga_nonce_name' => Ga_Admin_Controller::GA_NONCE_FIELD_NAME
|
197 |
+
) );
|
198 |
+
}
|
199 |
} else {
|
200 |
echo self::get_chart_page( 'ga_dashboard_widget' . ( $ajax ? "_ajax" : "" ), array(
|
201 |
+
'chart' => array(),
|
202 |
+
'boxes' => Ga_Stats::get_empty_boxes_structure(),
|
203 |
+
'more_details_url' => admin_url( self::GA_STATISTICS_PAGE_URL ),
|
204 |
+
'show_trigger_button' => true,
|
205 |
+
'ga_nonce' => wp_create_nonce( 'ga_ajax_data_change' ),
|
206 |
+
'ga_nonce_name' => Ga_Admin_Controller::GA_NONCE_FIELD_NAME
|
207 |
) );
|
208 |
}
|
209 |
|
498 |
return $data;
|
499 |
}
|
500 |
|
501 |
+
public static function get_url_message_text() {
|
502 |
+
$ga_msg = '';
|
503 |
+
$invite_result = json_decode( base64_decode( $_GET[ 'ga_msg' ] ), true );
|
504 |
+
if ( !empty( $invite_result[ 'status' ] ) && !empty( $invite_result[ 'message' ] ) ) {
|
505 |
+
$ga_msg = $invite_result[ 'message' ];
|
506 |
+
}
|
507 |
+
|
508 |
+
return $ga_msg;
|
509 |
+
}
|
510 |
+
|
511 |
/**
|
512 |
* Create base64 url message
|
513 |
*
|
584 |
|
585 |
return ! empty( $account_id[0] ) ? $account_id[0] : '';
|
586 |
}
|
587 |
+
|
588 |
+
public static function is_curl_disabled(){
|
589 |
+
return ! function_exists( 'curl_version' );
|
590 |
+
}
|
591 |
|
592 |
+
|
593 |
+
public static function get_plugin_url_with_correct_protocol() {
|
594 |
+
$url = parse_url( GA_PLUGIN_URL );
|
595 |
+
return ( ( is_ssl() ) ? 'https://' : 'http://' ) . $url['host'] . $url['path'];
|
596 |
+
}
|
597 |
}
|
class/Ga_Stats.php
CHANGED
@@ -701,4 +701,34 @@ class Ga_Stats {
|
|
701 |
}
|
702 |
}
|
703 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
704 |
}
|
701 |
}
|
702 |
}
|
703 |
|
704 |
+
public static function get_empty_boxes_structure() {
|
705 |
+
$boxes_data = array();
|
706 |
+
$boxes_data[ 'Sessions' ] = array(
|
707 |
+
'label' => 'Visits',
|
708 |
+
'value' => 0,
|
709 |
+
);
|
710 |
+
$boxes_data[ 'Pageviews' ] = array(
|
711 |
+
'label' => 'Pageviews',
|
712 |
+
'value' => 0,
|
713 |
+
);
|
714 |
+
$boxes_data[ 'pageviewsPerSession' ] = array(
|
715 |
+
'label' => 'Pages / Visit',
|
716 |
+
'value' => self::number_format_clean( 0, 2, '.', ',' ),
|
717 |
+
);
|
718 |
+
$boxes_data[ 'BounceRate' ] = array(
|
719 |
+
'label' => 'Bounce Rate',
|
720 |
+
'value' => self::number_format_clean( 0, 2, '.', ',' ) . '%',
|
721 |
+
);
|
722 |
+
$boxes_data[ 'avgTimeOnPage' ] = array(
|
723 |
+
'label' => 'Avg. Time on Site',
|
724 |
+
'value' => gmdate( "H:i:s", 0 ),
|
725 |
+
);
|
726 |
+
$boxes_data[ 'percentNewSessions' ] = array(
|
727 |
+
'label' => '% of New Visits',
|
728 |
+
'value' => self::number_format_clean( 0, 2, '.', ',' ),
|
729 |
+
);
|
730 |
+
|
731 |
+
return $boxes_data;
|
732 |
+
}
|
733 |
+
|
734 |
}
|
class/controller/Ga_Admin_Controller.php
CHANGED
@@ -29,8 +29,6 @@ class Ga_Admin_Controller extends Ga_Controller_Core {
|
|
29 |
public static function ga_action_sharethis_invite() {
|
30 |
|
31 |
if ( self::verify_nonce( self::ACTION_SHARETHIS_INVITE ) ) {
|
32 |
-
$msg = Ga_Helper::create_url_msg( _( 'Invalid request.' ), Ga_Admin::NOTICE_ERROR );
|
33 |
-
} else {
|
34 |
$email = !empty( $_POST[ 'sharethis_invite_email' ] ) ? $_POST[ 'sharethis_invite_email' ] : null;
|
35 |
$response = null;
|
36 |
if ( !empty( $email ) ) {
|
@@ -55,6 +53,8 @@ class Ga_Admin_Controller extends Ga_Controller_Core {
|
|
55 |
$msg = Ga_Helper::create_url_msg( _( 'An invite was sent to this email' ), Ga_Admin::NOTICE_SUCCESS );
|
56 |
}
|
57 |
}
|
|
|
|
|
58 |
}
|
59 |
|
60 |
wp_redirect( admin_url( Ga_Helper::create_url( Ga_Helper::GA_TRENDING_PAGE_URL, array( 'ga_msg' => $msg ) ) ) );
|
@@ -90,5 +90,30 @@ class Ga_Admin_Controller extends Ga_Controller_Core {
|
|
90 |
|
91 |
wp_redirect( $url );
|
92 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
93 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
94 |
}
|
29 |
public static function ga_action_sharethis_invite() {
|
30 |
|
31 |
if ( self::verify_nonce( self::ACTION_SHARETHIS_INVITE ) ) {
|
|
|
|
|
32 |
$email = !empty( $_POST[ 'sharethis_invite_email' ] ) ? $_POST[ 'sharethis_invite_email' ] : null;
|
33 |
$response = null;
|
34 |
if ( !empty( $email ) ) {
|
53 |
$msg = Ga_Helper::create_url_msg( _( 'An invite was sent to this email' ), Ga_Admin::NOTICE_SUCCESS );
|
54 |
}
|
55 |
}
|
56 |
+
} else {
|
57 |
+
$msg = Ga_Helper::create_url_msg( _( 'Invalid request.' ), Ga_Admin::NOTICE_ERROR );
|
58 |
}
|
59 |
|
60 |
wp_redirect( admin_url( Ga_Helper::create_url( Ga_Helper::GA_TRENDING_PAGE_URL, array( 'ga_msg' => $msg ) ) ) );
|
90 |
|
91 |
wp_redirect( $url );
|
92 |
}
|
93 |
+
|
94 |
+
public static function validate_ajax_data_change_post( $post ) {
|
95 |
+
$error = 0;
|
96 |
+
|
97 |
+
if ( self::verify_nonce( 'ga_ajax_data_change' ) ) {
|
98 |
+
if ( !empty( $post[ 'date_range' ] ) ) {
|
99 |
+
if ( !is_string( $post[ 'date_range' ] ) ) {
|
100 |
+
$error ++;
|
101 |
+
}
|
102 |
+
} else {
|
103 |
+
$error ++;
|
104 |
+
}
|
105 |
|
106 |
+
if ( !empty( $post[ 'metric' ] ) ) {
|
107 |
+
if ( !is_string( $post[ 'metric' ] ) ) {
|
108 |
+
$error ++;
|
109 |
+
}
|
110 |
+
} else {
|
111 |
+
$error ++;
|
112 |
+
}
|
113 |
+
} else {
|
114 |
+
$error ++;
|
115 |
+
}
|
116 |
+
|
117 |
+
return $error == 0;
|
118 |
+
}
|
119 |
}
|
class/core/Ga_Controller_Core.php
CHANGED
@@ -35,6 +35,6 @@ class Ga_Controller_Core {
|
|
35 |
* @return bool
|
36 |
*/
|
37 |
protected static function verify_nonce( $action ) {
|
38 |
-
return
|
39 |
}
|
40 |
}
|
35 |
* @return bool
|
36 |
*/
|
37 |
protected static function verify_nonce( $action ) {
|
38 |
+
return isset( $_POST[ self::GA_NONCE_FIELD_NAME ] ) && wp_verify_nonce( $_POST[ self::GA_NONCE_FIELD_NAME ], $action );
|
39 |
}
|
40 |
}
|
css/ga_additional.css
CHANGED
@@ -262,6 +262,13 @@
|
|
262 |
border-radius: 4px;
|
263 |
}
|
264 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
265 |
.ga-alert-warning {
|
266 |
color: #8a6d3b;
|
267 |
background-color: #fcf8e3;
|
262 |
border-radius: 4px;
|
263 |
}
|
264 |
|
265 |
+
.ga-alert-success {
|
266 |
+
color: #3c763d;
|
267 |
+
background-color: #dff0d8;
|
268 |
+
border-color: #d6e9c6;
|
269 |
+
max-width: 95%;
|
270 |
+
}
|
271 |
+
|
272 |
.ga-alert-warning {
|
273 |
color: #8a6d3b;
|
274 |
background-color: #fcf8e3;
|
css/googleanalytics.css
CHANGED
@@ -239,4 +239,22 @@ label.ga_checkbox_label {
|
|
239 |
font-size: 12pt;
|
240 |
height: 65px;
|
241 |
float: left;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
242 |
}
|
239 |
font-size: 12pt;
|
240 |
height: 65px;
|
241 |
float: left;
|
242 |
+
}
|
243 |
+
|
244 |
+
.ga-debug-form-div{
|
245 |
+
margin:5px;
|
246 |
+
}
|
247 |
+
|
248 |
+
.ga-debug-form-label {
|
249 |
+
vertical-align: top;
|
250 |
+
display: inline-block;
|
251 |
+
width: 20%;
|
252 |
+
}
|
253 |
+
|
254 |
+
.ga-debug-form-field {
|
255 |
+
width: 50%;
|
256 |
+
}
|
257 |
+
|
258 |
+
.ga-debug-form-loader {
|
259 |
+
width: 20%;
|
260 |
}
|
googleanalytics.php
CHANGED
@@ -4,7 +4,7 @@
|
|
4 |
* Plugin Name: Google Analytics
|
5 |
* Plugin URI: http://wordpress.org/extend/plugins/googleanalytics/
|
6 |
* Description: Use Google Analytics on your Wordpress site without touching any code, and view visitor reports right in your Wordpress admin dashboard!
|
7 |
-
* Version: 2.1
|
8 |
* Author: ShareThis
|
9 |
* Author URI: http://sharethis.com
|
10 |
*/
|
@@ -36,9 +36,20 @@ if ( !defined( 'GA_SHARETHIS_SCRIPTS_INCLUDED' ) ) {
|
|
36 |
define( 'GA_SHARETHIS_SCRIPTS_INCLUDED', 0 );
|
37 |
}
|
38 |
|
39 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
40 |
include_once GA_PLUGIN_DIR . '/overwrite/ga_overwrite.php';
|
41 |
include_once GA_PLUGIN_DIR . '/class/Ga_Autoloader.php';
|
|
|
42 |
Ga_Autoloader::register();
|
43 |
Ga_Hook::add_hooks( GA_MAIN_FILE_PATH );
|
44 |
|
4 |
* Plugin Name: Google Analytics
|
5 |
* Plugin URI: http://wordpress.org/extend/plugins/googleanalytics/
|
6 |
* Description: Use Google Analytics on your Wordpress site without touching any code, and view visitor reports right in your Wordpress admin dashboard!
|
7 |
+
* Version: 2.1.2
|
8 |
* Author: ShareThis
|
9 |
* Author URI: http://sharethis.com
|
10 |
*/
|
36 |
define( 'GA_SHARETHIS_SCRIPTS_INCLUDED', 0 );
|
37 |
}
|
38 |
|
39 |
+
/**
|
40 |
+
* Prevent to launch the plugin within different plugin dir name
|
41 |
+
*/
|
42 |
+
if ( !preg_match( '/(\/|\\\)' . GA_NAME . '(\/|\\\)/', realpath( __FILE__ ), $test ) ) {
|
43 |
+
echo _( 'Invalid plugin installation directory. Please verify if the plugin\'s dir name is equal to "' . GA_NAME . '".' );
|
44 |
+
|
45 |
+
// To make able the message above to be displayed in the activation error notice.
|
46 |
+
die();
|
47 |
+
}
|
48 |
+
|
49 |
+
define( 'GOOGLEANALYTICS_VERSION', '2.1.2' );
|
50 |
include_once GA_PLUGIN_DIR . '/overwrite/ga_overwrite.php';
|
51 |
include_once GA_PLUGIN_DIR . '/class/Ga_Autoloader.php';
|
52 |
+
include_once GA_PLUGIN_DIR . '/tools/class-support-logging.php';
|
53 |
Ga_Autoloader::register();
|
54 |
Ga_Hook::add_hooks( GA_MAIN_FILE_PATH );
|
55 |
|
js/googleanalytics_dashboard.js
CHANGED
@@ -6,12 +6,16 @@
|
|
6 |
|
7 |
ga_dashboard = {
|
8 |
chartData: [],
|
9 |
-
init: function (dataArr) {
|
10 |
-
|
|
|
|
|
11 |
google.charts.load('current', {'packages': ['corechart']});
|
12 |
google.charts.setOnLoadCallback(function () {
|
13 |
-
|
14 |
-
|
|
|
|
|
15 |
});
|
16 |
},
|
17 |
events: function (data) {
|
@@ -23,29 +27,39 @@
|
|
23 |
|
24 |
ga_loader.show();
|
25 |
|
|
|
|
|
|
|
|
|
|
|
|
|
26 |
$.ajax({
|
27 |
type: "post",
|
28 |
dataType: "json",
|
29 |
url: ajaxurl,
|
30 |
-
data:
|
31 |
success: function (response) {
|
32 |
|
33 |
ga_loader.hide();
|
34 |
|
35 |
-
|
36 |
-
|
37 |
-
|
38 |
-
|
|
|
|
|
|
|
39 |
|
40 |
-
|
41 |
-
|
42 |
-
|
43 |
-
|
44 |
|
45 |
-
|
46 |
|
47 |
-
|
48 |
-
|
|
|
49 |
}
|
50 |
});
|
51 |
});
|
@@ -57,21 +71,77 @@
|
|
57 |
|
58 |
ga_loader.show();
|
59 |
|
|
|
|
|
|
|
|
|
|
|
|
|
60 |
$.ajax({
|
61 |
type: "post",
|
62 |
dataType: "json",
|
63 |
url: ajaxurl,
|
64 |
-
data:
|
65 |
success: function (response) {
|
66 |
ga_loader.hide();
|
67 |
-
|
68 |
-
|
69 |
-
|
70 |
-
}
|
71 |
-
|
72 |
-
|
73 |
-
|
74 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
75 |
}
|
76 |
});
|
77 |
});
|
@@ -102,32 +172,36 @@
|
|
102 |
title = 'Pageviews';
|
103 |
}
|
104 |
|
105 |
-
|
106 |
-
|
107 |
-
|
108 |
-
|
109 |
-
|
110 |
-
|
111 |
-
|
112 |
-
|
113 |
-
|
114 |
-
|
115 |
-
|
116 |
-
|
117 |
-
|
118 |
-
|
119 |
-
|
120 |
-
|
121 |
-
|
122 |
-
|
123 |
-
|
124 |
-
|
125 |
-
|
126 |
-
|
127 |
-
|
128 |
-
|
129 |
-
|
|
|
|
|
|
|
|
|
130 |
}
|
131 |
};
|
132 |
|
133 |
-
})(jQuery);
|
6 |
|
7 |
ga_dashboard = {
|
8 |
chartData: [],
|
9 |
+
init: function (dataArr, showLoader) {
|
10 |
+
if (showLoader) {
|
11 |
+
ga_loader.show();
|
12 |
+
}
|
13 |
google.charts.load('current', {'packages': ['corechart']});
|
14 |
google.charts.setOnLoadCallback(function () {
|
15 |
+
if (dataArr) {
|
16 |
+
ga_dashboard.drawChart(dataArr);
|
17 |
+
ga_dashboard.setChartData(dataArr);
|
18 |
+
}
|
19 |
});
|
20 |
},
|
21 |
events: function (data) {
|
27 |
|
28 |
ga_loader.show();
|
29 |
|
30 |
+
var dataObj = {};
|
31 |
+
dataObj['action'] = "ga_ajax_data_change";
|
32 |
+
dataObj['date_range'] = selected;
|
33 |
+
dataObj['metric'] = selected_metric;
|
34 |
+
dataObj[GA_NONCE_FIELD] = GA_NONCE;
|
35 |
+
|
36 |
$.ajax({
|
37 |
type: "post",
|
38 |
dataType: "json",
|
39 |
url: ajaxurl,
|
40 |
+
data: dataObj,
|
41 |
success: function (response) {
|
42 |
|
43 |
ga_loader.hide();
|
44 |
|
45 |
+
if (typeof response.error !== "undefined") {
|
46 |
+
$('#ga_widget_error').show().html(response.error);
|
47 |
+
} else {
|
48 |
+
var dataT = [['Day', selected_name]];
|
49 |
+
$.each(response.chart, function (k, v) {
|
50 |
+
dataT.push([v.day, parseInt(v.current)]);
|
51 |
+
});
|
52 |
|
53 |
+
$.each(response.boxes, function (k, v) {
|
54 |
+
$('#ga_box_dashboard_label_' + k).html(v.label)
|
55 |
+
$('#ga_box_dashboard_value_' + k).html(v.value);
|
56 |
+
});
|
57 |
|
58 |
+
ga_dashboard.drawChart(dataT, selected_name);
|
59 |
|
60 |
+
// Set new data
|
61 |
+
ga_dashboard.setChartData(dataT);
|
62 |
+
}
|
63 |
}
|
64 |
});
|
65 |
});
|
71 |
|
72 |
ga_loader.show();
|
73 |
|
74 |
+
var dataObj = {};
|
75 |
+
dataObj['action'] = "ga_ajax_data_change";
|
76 |
+
dataObj['metric'] = selected;
|
77 |
+
dataObj['date_range'] = selected_range;
|
78 |
+
dataObj[GA_NONCE_FIELD] = GA_NONCE;
|
79 |
+
|
80 |
$.ajax({
|
81 |
type: "post",
|
82 |
dataType: "json",
|
83 |
url: ajaxurl,
|
84 |
+
data: dataObj,
|
85 |
success: function (response) {
|
86 |
ga_loader.hide();
|
87 |
+
|
88 |
+
if (typeof response.error !== "undefined") {
|
89 |
+
$('#ga_widget_error').show().html(response.error);
|
90 |
+
} else {
|
91 |
+
var dataT = [['Day', selected_name]];
|
92 |
+
$.each(response.chart, function (k, v) {
|
93 |
+
dataT.push([v.day, parseInt(v.current)]);
|
94 |
+
});
|
95 |
+
|
96 |
+
ga_dashboard.drawChart(dataT, selected_name);
|
97 |
+
|
98 |
+
// Set new data
|
99 |
+
ga_dashboard.setChartData(dataT);
|
100 |
+
}
|
101 |
+
}
|
102 |
+
});
|
103 |
+
});
|
104 |
+
|
105 |
+
$('#ga-widget-trigger').on('click', function () {
|
106 |
+
const selected_name = $('#metrics-selector option:selected').html();
|
107 |
+
const selected_metric = $('#metrics-selector option:selected').val() || null;
|
108 |
+
const selected_range = $('#range-selector option:selected').val() || null;
|
109 |
+
|
110 |
+
ga_loader.show();
|
111 |
+
|
112 |
+
var dataObj = {};
|
113 |
+
dataObj['action'] = "ga_ajax_data_change";
|
114 |
+
dataObj['metric'] = selected_metric;
|
115 |
+
dataObj['date_range'] = selected_range;
|
116 |
+
dataObj[GA_NONCE_FIELD] = GA_NONCE;
|
117 |
+
|
118 |
+
$.ajax({
|
119 |
+
type: "post",
|
120 |
+
dataType: "json",
|
121 |
+
url: ajaxurl,
|
122 |
+
data: dataObj,
|
123 |
+
success: function (response) {
|
124 |
+
|
125 |
+
ga_loader.hide();
|
126 |
+
|
127 |
+
if (typeof response.error !== "undefined") {
|
128 |
+
$('#ga_widget_error').show().html(response.error);
|
129 |
+
} else {
|
130 |
+
var dataT = [['Day', selected_name]];
|
131 |
+
$.each(response.chart, function (k, v) {
|
132 |
+
dataT.push([v.day, parseInt(v.current)]);
|
133 |
+
});
|
134 |
+
|
135 |
+
$.each(response.boxes, function (k, v) {
|
136 |
+
$('#ga_box_dashboard_label_' + k).html(v.label)
|
137 |
+
$('#ga_box_dashboard_value_' + k).html(v.value);
|
138 |
+
});
|
139 |
+
|
140 |
+
ga_dashboard.drawChart(dataT, selected_name);
|
141 |
+
|
142 |
+
// Set new data
|
143 |
+
ga_dashboard.setChartData(dataT);
|
144 |
+
}
|
145 |
}
|
146 |
});
|
147 |
});
|
172 |
title = 'Pageviews';
|
173 |
}
|
174 |
|
175 |
+
if (dataArr.length > 1) {
|
176 |
+
const data = google.visualization.arrayToDataTable(dataArr);
|
177 |
+
|
178 |
+
const options = {
|
179 |
+
/*title: title,*/
|
180 |
+
legend: 'top',
|
181 |
+
lineWidth: 2,
|
182 |
+
chartArea: {
|
183 |
+
left: 10,
|
184 |
+
top: 60,
|
185 |
+
bottom: 50,
|
186 |
+
right: 10
|
187 |
+
|
188 |
+
},
|
189 |
+
width: '95%',
|
190 |
+
height: 300,
|
191 |
+
hAxis: {title: 'Day', titleTextStyle: {color: '#333'}, direction: 1},
|
192 |
+
vAxis: {minValue: 0},
|
193 |
+
pointSize: 5
|
194 |
+
};
|
195 |
+
|
196 |
+
var chart = new google.visualization.AreaChart(chart_dom_element);
|
197 |
+
google.visualization.events.addListener(chart, 'ready', function () {
|
198 |
+
ga_loader.hide();
|
199 |
+
});
|
200 |
+
chart.draw(data, options);
|
201 |
+
} else {
|
202 |
+
$('#ga_widget_error').show().html('No data available for selected range.');
|
203 |
+
}
|
204 |
}
|
205 |
};
|
206 |
|
207 |
+
})(jQuery);
|
js/googleanalytics_page.js
CHANGED
@@ -1,4 +1,8 @@
|
|
1 |
const GA_ACCESS_CODE_MODAL_ID = "ga_access_code_modal";
|
|
|
|
|
|
|
|
|
2 |
const GA_ACCESS_CODE_TMP_ID = "ga_access_code_tmp";
|
3 |
const GA_ACCESS_CODE_ID = "ga_access_code";
|
4 |
const GA_FORM_ID = "ga_form";
|
@@ -40,6 +44,7 @@ const GA_SAVE_ACCESS_CODE_BTN_ID = 'ga_save_access_code';
|
|
40 |
ga_modal = {
|
41 |
hide: function () {
|
42 |
$('#' + GA_ACCESS_CODE_MODAL_ID).hide();
|
|
|
43 |
ga_loader.hide();
|
44 |
$('#' + GA_SAVE_ACCESS_CODE_BTN_ID).removeAttr('disabled');
|
45 |
}
|
@@ -75,9 +80,12 @@ const GA_SAVE_ACCESS_CODE_BTN_ID = 'ga_save_access_code';
|
|
75 |
$('#' + GA_ACCESS_CODE_TMP_ID).focus();
|
76 |
});
|
77 |
|
78 |
-
$('#' + GA_MODAL_CLOSE_ID + ', #' + GA_MODAL_BTN_CLOSE_ID).on('click', function () {
|
79 |
ga_modal.hide();
|
80 |
});
|
|
|
|
|
|
|
81 |
}
|
82 |
};
|
83 |
|
@@ -190,4 +198,38 @@ const GA_SAVE_ACCESS_CODE_BTN_ID = 'ga_save_access_code';
|
|
190 |
chart.draw(data, options);
|
191 |
}
|
192 |
};
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
193 |
})(jQuery);
|
1 |
const GA_ACCESS_CODE_MODAL_ID = "ga_access_code_modal";
|
2 |
+
const GA_DEBUG_MODAL_ID = "ga_debug_modal";
|
3 |
+
const GA_DEBUG_MODAL_CONTENT_ID = "ga_debug_modal_content";
|
4 |
+
const GA_DEBUG_EMAIL = "ga_debug_email";
|
5 |
+
const GA_DEBUG_DESCRIPTION = "ga_debug_description";
|
6 |
const GA_ACCESS_CODE_TMP_ID = "ga_access_code_tmp";
|
7 |
const GA_ACCESS_CODE_ID = "ga_access_code";
|
8 |
const GA_FORM_ID = "ga_form";
|
44 |
ga_modal = {
|
45 |
hide: function () {
|
46 |
$('#' + GA_ACCESS_CODE_MODAL_ID).hide();
|
47 |
+
$('#' + GA_DEBUG_MODAL_ID).hide();
|
48 |
ga_loader.hide();
|
49 |
$('#' + GA_SAVE_ACCESS_CODE_BTN_ID).removeAttr('disabled');
|
50 |
}
|
80 |
$('#' + GA_ACCESS_CODE_TMP_ID).focus();
|
81 |
});
|
82 |
|
83 |
+
$('#' + GA_MODAL_CLOSE_ID + ', #' + GA_MODAL_BTN_CLOSE_ID + ', #' + GA_DEBUG_MODAL_ID ).on('click', function () {
|
84 |
ga_modal.hide();
|
85 |
});
|
86 |
+
$('#' + GA_DEBUG_MODAL_CONTENT_ID ).click(function(event){
|
87 |
+
event.stopPropagation();
|
88 |
+
});
|
89 |
}
|
90 |
};
|
91 |
|
198 |
chart.draw(data, options);
|
199 |
}
|
200 |
};
|
201 |
+
ga_debug = {
|
202 |
+
url: '',
|
203 |
+
open_modal: function (e) {
|
204 |
+
e.preventDefault();
|
205 |
+
$('#' + GA_DEBUG_MODAL_ID).appendTo("body").show();
|
206 |
+
$('#ga-send-debug-email').removeAttr('disabled');
|
207 |
+
$('#ga_debug_error').hide();
|
208 |
+
$('#ga_debug_success').hide();
|
209 |
+
},
|
210 |
+
send_email: function (e) {
|
211 |
+
e.preventDefault();
|
212 |
+
ga_loader.show();
|
213 |
+
var dataObj = {};
|
214 |
+
dataObj['action'] = "googleanalytics_send_debug_email";
|
215 |
+
dataObj['email'] = $('#' + GA_DEBUG_EMAIL).val();
|
216 |
+
dataObj['description'] = $('#' + GA_DEBUG_DESCRIPTION).val();
|
217 |
+
$.ajax({
|
218 |
+
type: "post",
|
219 |
+
dataType: "json",
|
220 |
+
url: ajaxurl,
|
221 |
+
data: dataObj,
|
222 |
+
success: function (response) {
|
223 |
+
ga_loader.hide();
|
224 |
+
if (typeof response.error !== "undefined") {
|
225 |
+
$('#ga_debug_error').show().html(response.error);
|
226 |
+
} else if (typeof response.success !== "undefined"){
|
227 |
+
$('#ga_debug_error').hide();
|
228 |
+
$('#ga-send-debug-email').attr('disabled','disabled');
|
229 |
+
$('#ga_debug_success').show().html(response.success);
|
230 |
+
}
|
231 |
+
}
|
232 |
+
});
|
233 |
+
}
|
234 |
+
};
|
235 |
})(jQuery);
|
lib/Ga_Lib_Api_Client.php
CHANGED
@@ -60,6 +60,7 @@ abstract class Ga_Lib_Api_Client {
|
|
60 |
*/
|
61 |
protected function add_error( Exception $e ) {
|
62 |
$this->errors[ $e->getCode() ] = array( 'class' => get_class( $e ), 'message' => $e->getMessage() );
|
|
|
63 |
}
|
64 |
|
65 |
public function add_own_error( $code, $message, $class = '' ) {
|
@@ -69,5 +70,5 @@ abstract class Ga_Lib_Api_Client {
|
|
69 |
}
|
70 |
|
71 |
class Ga_Lib_Api_Client_Exception extends Exception {
|
72 |
-
|
73 |
}
|
60 |
*/
|
61 |
protected function add_error( Exception $e ) {
|
62 |
$this->errors[ $e->getCode() ] = array( 'class' => get_class( $e ), 'message' => $e->getMessage() );
|
63 |
+
do_action( 'st_support_save_error', $e );
|
64 |
}
|
65 |
|
66 |
public function add_own_error( $code, $message, $class = '' ) {
|
70 |
}
|
71 |
|
72 |
class Ga_Lib_Api_Client_Exception extends Exception {
|
73 |
+
|
74 |
}
|
lib/Ga_Lib_Api_Request.php
CHANGED
@@ -11,10 +11,10 @@ class Ga_Lib_Api_Request {
|
|
11 |
const USER_AGENT = 'googleanalytics-wordpress-plugin';
|
12 |
|
13 |
private $headers = array();
|
14 |
-
|
15 |
// Whether to cache or not
|
16 |
private $cache = false;
|
17 |
-
|
18 |
private $appendix = '';
|
19 |
|
20 |
private function __construct( $cache = false, $appendix = '' ) {
|
@@ -59,23 +59,23 @@ class Ga_Lib_Api_Request {
|
|
59 |
* @return string Response
|
60 |
* @throws Exception
|
61 |
*/
|
62 |
-
public function make_request( $url, $rawPostBody = null, $json = false, $force_no_cache = false) {
|
63 |
|
64 |
// Return cached data if exist
|
65 |
if ( ! $force_no_cache ) {
|
66 |
-
|
67 |
$wp_transient_name = Ga_Cache::get_transient_name( $url, $rawPostBody, $this->appendix );
|
68 |
|
69 |
-
|
70 |
if ( ! Ga_Cache::is_data_cache_outdated( $wp_transient_name, $this->appendix ) ) {
|
71 |
-
|
72 |
-
|
73 |
-
|
74 |
|
75 |
// Check if the next request after error is allowed
|
76 |
if ( false === Ga_Cache::is_next_request_allowed( $wp_transient_name ) ) {
|
77 |
-
|
78 |
-
|
79 |
}
|
80 |
}
|
81 |
|
@@ -92,7 +92,6 @@ class Ga_Lib_Api_Request {
|
|
92 |
|
93 |
$ch = curl_init( $url );
|
94 |
$headers = $this->headers;
|
95 |
-
curl_setopt( $ch, CURLOPT_HTTPHEADER, $headers );
|
96 |
|
97 |
$curl_timeout = self::TIMEOUT;
|
98 |
$php_execution_time = ini_get( 'max_execution_time' );
|
@@ -122,7 +121,15 @@ class Ga_Lib_Api_Request {
|
|
122 |
curl_setopt( $ch, CURLOPT_CONNECTTIMEOUT, $curl_timeout );
|
123 |
curl_setopt( $ch, CURLOPT_TIMEOUT, $curl_timeout );
|
124 |
curl_setopt( $ch, CURLOPT_HEADER, true );
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
125 |
curl_setopt( $ch, CURLINFO_HEADER_OUT, true );
|
|
|
126 |
curl_setopt( $ch, CURLOPT_RETURNTRANSFER, true );
|
127 |
curl_setopt( $ch, CURLOPT_USERAGENT, self::USER_AGENT );
|
128 |
if ( defined( 'CURLOPT_IPRESOLVE' ) && defined( 'CURL_IPRESOLVE_V4' ) ) {
|
@@ -132,7 +139,7 @@ class Ga_Lib_Api_Request {
|
|
132 |
// POST body
|
133 |
if ( !empty( $rawPostBody ) ) {
|
134 |
curl_setopt( $ch, CURLOPT_POST, true );
|
135 |
-
curl_setopt( $ch, CURLOPT_POSTFIELDS, ( $json ? $rawPostBody : http_build_query( $rawPostBody ) ) );
|
136 |
}
|
137 |
|
138 |
// Execute request
|
@@ -145,8 +152,8 @@ class Ga_Lib_Api_Request {
|
|
145 |
// Store last cache time when unsuccessful
|
146 |
if ( false === $force_no_cache ) {
|
147 |
if ( true === $this->cache ) {
|
148 |
-
|
149 |
-
|
150 |
}
|
151 |
}
|
152 |
|
@@ -161,8 +168,8 @@ class Ga_Lib_Api_Request {
|
|
161 |
// Store last cache time when unsuccessful
|
162 |
if ( false === $force_no_cache ) {
|
163 |
if ( true === $this->cache ) {
|
164 |
-
|
165 |
-
|
166 |
}
|
167 |
}
|
168 |
|
@@ -175,9 +182,9 @@ class Ga_Lib_Api_Request {
|
|
175 |
|
176 |
// Cache result
|
177 |
if ( false === $force_no_cache ) {
|
178 |
-
if (true === $this->cache) {
|
179 |
-
|
180 |
-
|
181 |
}
|
182 |
|
183 |
|
@@ -185,6 +192,10 @@ class Ga_Lib_Api_Request {
|
|
185 |
}
|
186 |
}
|
187 |
|
|
|
|
|
|
|
|
|
188 |
}
|
189 |
|
190 |
class Ga_Lib_Api_Request_Exception extends Exception {
|
11 |
const USER_AGENT = 'googleanalytics-wordpress-plugin';
|
12 |
|
13 |
private $headers = array();
|
14 |
+
|
15 |
// Whether to cache or not
|
16 |
private $cache = false;
|
17 |
+
|
18 |
private $appendix = '';
|
19 |
|
20 |
private function __construct( $cache = false, $appendix = '' ) {
|
59 |
* @return string Response
|
60 |
* @throws Exception
|
61 |
*/
|
62 |
+
public function make_request( $url, $rawPostBody = null, $json = false, $force_no_cache = false ) {
|
63 |
|
64 |
// Return cached data if exist
|
65 |
if ( ! $force_no_cache ) {
|
66 |
+
if ( $this->cache ) {
|
67 |
$wp_transient_name = Ga_Cache::get_transient_name( $url, $rawPostBody, $this->appendix );
|
68 |
|
69 |
+
if ( $cached = Ga_Cache::get_cached_result( $wp_transient_name ) ) {
|
70 |
if ( ! Ga_Cache::is_data_cache_outdated( $wp_transient_name, $this->appendix ) ) {
|
71 |
+
return $cached;
|
72 |
+
}
|
73 |
+
}
|
74 |
|
75 |
// Check if the next request after error is allowed
|
76 |
if ( false === Ga_Cache::is_next_request_allowed( $wp_transient_name ) ) {
|
77 |
+
throw new Ga_Lib_Api_Client_Exception( _( 'There are temporary connection issues, please try again later.' ) );
|
78 |
+
}
|
79 |
}
|
80 |
}
|
81 |
|
92 |
|
93 |
$ch = curl_init( $url );
|
94 |
$headers = $this->headers;
|
|
|
95 |
|
96 |
$curl_timeout = self::TIMEOUT;
|
97 |
$php_execution_time = ini_get( 'max_execution_time' );
|
121 |
curl_setopt( $ch, CURLOPT_CONNECTTIMEOUT, $curl_timeout );
|
122 |
curl_setopt( $ch, CURLOPT_TIMEOUT, $curl_timeout );
|
123 |
curl_setopt( $ch, CURLOPT_HEADER, true );
|
124 |
+
curl_setopt( $ch, CURLOPT_SSL_VERIFYPEER, true );
|
125 |
+
curl_setopt( $ch, CURLOPT_SSL_VERIFYHOST, 2 );
|
126 |
+
|
127 |
+
if ( !function_exists( 'ini_get' ) || ! ini_get( 'curl.cainfo' ) ) {
|
128 |
+
curl_setopt( $ch, CURLOPT_CAINFO, $this->get_cert_path() );
|
129 |
+
}
|
130 |
+
|
131 |
curl_setopt( $ch, CURLINFO_HEADER_OUT, true );
|
132 |
+
curl_setopt( $ch, CURLOPT_HTTPHEADER, $headers );
|
133 |
curl_setopt( $ch, CURLOPT_RETURNTRANSFER, true );
|
134 |
curl_setopt( $ch, CURLOPT_USERAGENT, self::USER_AGENT );
|
135 |
if ( defined( 'CURLOPT_IPRESOLVE' ) && defined( 'CURL_IPRESOLVE_V4' ) ) {
|
139 |
// POST body
|
140 |
if ( !empty( $rawPostBody ) ) {
|
141 |
curl_setopt( $ch, CURLOPT_POST, true );
|
142 |
+
curl_setopt( $ch, CURLOPT_POSTFIELDS, ( $json ? $rawPostBody : http_build_query( $rawPostBody , null, '&' ) ) );
|
143 |
}
|
144 |
|
145 |
// Execute request
|
152 |
// Store last cache time when unsuccessful
|
153 |
if ( false === $force_no_cache ) {
|
154 |
if ( true === $this->cache ) {
|
155 |
+
Ga_Cache::set_last_cache_time( $wp_transient_name );
|
156 |
+
Ga_Cache::set_last_time_attempt();
|
157 |
}
|
158 |
}
|
159 |
|
168 |
// Store last cache time when unsuccessful
|
169 |
if ( false === $force_no_cache ) {
|
170 |
if ( true === $this->cache ) {
|
171 |
+
Ga_Cache::set_last_cache_time( $wp_transient_name );
|
172 |
+
Ga_Cache::set_last_time_attempt();
|
173 |
}
|
174 |
}
|
175 |
|
182 |
|
183 |
// Cache result
|
184 |
if ( false === $force_no_cache ) {
|
185 |
+
if ( true === $this->cache ) {
|
186 |
+
Ga_Cache::set_cache( $wp_transient_name, $response_data );
|
187 |
+
}
|
188 |
}
|
189 |
|
190 |
|
192 |
}
|
193 |
}
|
194 |
|
195 |
+
private function get_cert_path() {
|
196 |
+
return GA_PLUGIN_DIR . '/lib/cert/cacerts.pem';
|
197 |
+
}
|
198 |
+
|
199 |
}
|
200 |
|
201 |
class Ga_Lib_Api_Request_Exception extends Exception {
|
lib/Ga_Lib_Google_Api_Client.php
CHANGED
@@ -53,7 +53,7 @@ class Ga_Lib_Google_Api_Client extends Ga_Lib_Api_Client {
|
|
53 |
return self::$instance;
|
54 |
}
|
55 |
|
56 |
-
public function set_disable_cache($value) {
|
57 |
$this->disable_cache = $value;
|
58 |
}
|
59 |
|
@@ -113,7 +113,7 @@ class Ga_Lib_Google_Api_Client extends Ga_Lib_Api_Client {
|
|
113 |
'approval_prompt' => urlencode( $this->config['approval_prompt'] )
|
114 |
);
|
115 |
|
116 |
-
return self::OAUTH2_AUTH_ENDPOINT . "?" . http_build_query( $params );
|
117 |
}
|
118 |
|
119 |
/**
|
@@ -133,7 +133,7 @@ class Ga_Lib_Google_Api_Client extends Ga_Lib_Api_Client {
|
|
133 |
);
|
134 |
try {
|
135 |
$response = Ga_Lib_Api_Request::get_instance()->make_request( self::OAUTH2_TOKEN_ENDPOINT,
|
136 |
-
$request, false, true);
|
137 |
} catch ( Ga_Lib_Api_Request_Exception $e ) {
|
138 |
throw new Ga_Lib_Google_Api_Client_AuthCode_Exception( $e->getMessage() );
|
139 |
}
|
@@ -157,9 +157,9 @@ class Ga_Lib_Google_Api_Client extends Ga_Lib_Api_Client {
|
|
157 |
);
|
158 |
|
159 |
try {
|
160 |
-
|
161 |
-
|
162 |
-
} catch (Ga_Lib_Api_Request_Exception $e) {
|
163 |
throw new Ga_Lib_Google_Api_Client_RefreshToken_Exception( $e->getMessage() );
|
164 |
}
|
165 |
|
@@ -175,8 +175,8 @@ class Ga_Lib_Google_Api_Client extends Ga_Lib_Api_Client {
|
|
175 |
$request = Ga_Lib_Api_Request::get_instance();
|
176 |
$request = $this->sign( $request );
|
177 |
try {
|
178 |
-
|
179 |
-
} catch (Ga_Lib_Api_Request_Exception $e) {
|
180 |
throw new Ga_Lib_Google_Api_Client_AccountSummaries_Exception( $e->getMessage() );
|
181 |
}
|
182 |
|
@@ -302,7 +302,6 @@ class Ga_Lib_Google_Api_Client extends Ga_Lib_Api_Client {
|
|
302 |
public function is_cache_enabled() {
|
303 |
return self::USE_CACHE && ! $this->disable_cache;
|
304 |
}
|
305 |
-
|
306 |
}
|
307 |
|
308 |
class Ga_Lib_Google_Api_Client_Exception extends Ga_Lib_Api_Client_Exception {
|
@@ -350,8 +349,15 @@ class Ga_Lib_Google_Api_Client_Exception extends Ga_Lib_Api_Client_Exception {
|
|
350 |
*/
|
351 |
protected function get_error_response_data( $response ) {
|
352 |
$data = json_decode( $response, true );
|
353 |
-
if ( ! empty( $data['error'] ) && ! empty( $data['error']['message'] ) && ! empty( $data['error']['code'] ) ) {
|
354 |
return $data;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
355 |
} else {
|
356 |
return array(
|
357 |
'error' => array(
|
@@ -371,10 +377,10 @@ class Ga_Lib_Google_Api_Client_AuthCode_Exception extends Ga_Lib_Google_Api_Clie
|
|
371 |
|
372 |
protected function get_error_response_data( $response ) {
|
373 |
$data = json_decode( $response, true );
|
374 |
-
if ( ! empty( $data['error'] )
|
375 |
return array(
|
376 |
'error' => array(
|
377 |
-
'message' =>
|
378 |
'code' => 500
|
379 |
)
|
380 |
);
|
53 |
return self::$instance;
|
54 |
}
|
55 |
|
56 |
+
public function set_disable_cache( $value ) {
|
57 |
$this->disable_cache = $value;
|
58 |
}
|
59 |
|
113 |
'approval_prompt' => urlencode( $this->config['approval_prompt'] )
|
114 |
);
|
115 |
|
116 |
+
return self::OAUTH2_AUTH_ENDPOINT . "?" . http_build_query( $params, null, '&' );
|
117 |
}
|
118 |
|
119 |
/**
|
133 |
);
|
134 |
try {
|
135 |
$response = Ga_Lib_Api_Request::get_instance()->make_request( self::OAUTH2_TOKEN_ENDPOINT,
|
136 |
+
$request, false, true );
|
137 |
} catch ( Ga_Lib_Api_Request_Exception $e ) {
|
138 |
throw new Ga_Lib_Google_Api_Client_AuthCode_Exception( $e->getMessage() );
|
139 |
}
|
157 |
);
|
158 |
|
159 |
try {
|
160 |
+
$response = Ga_Lib_Api_Request::get_instance()->make_request( self::OAUTH2_TOKEN_ENDPOINT,
|
161 |
+
$request, false, true );
|
162 |
+
} catch ( Ga_Lib_Api_Request_Exception $e ) {
|
163 |
throw new Ga_Lib_Google_Api_Client_RefreshToken_Exception( $e->getMessage() );
|
164 |
}
|
165 |
|
175 |
$request = Ga_Lib_Api_Request::get_instance();
|
176 |
$request = $this->sign( $request );
|
177 |
try {
|
178 |
+
$response = $request->make_request( self::GA_ACCOUNT_SUMMARIES_ENDPOINT, null, false, true );
|
179 |
+
} catch ( Ga_Lib_Api_Request_Exception $e ) {
|
180 |
throw new Ga_Lib_Google_Api_Client_AccountSummaries_Exception( $e->getMessage() );
|
181 |
}
|
182 |
|
302 |
public function is_cache_enabled() {
|
303 |
return self::USE_CACHE && ! $this->disable_cache;
|
304 |
}
|
|
|
305 |
}
|
306 |
|
307 |
class Ga_Lib_Google_Api_Client_Exception extends Ga_Lib_Api_Client_Exception {
|
349 |
*/
|
350 |
protected function get_error_response_data( $response ) {
|
351 |
$data = json_decode( $response, true );
|
352 |
+
if ( is_array( $data['error'] ) && ! empty( $data['error'] ) && ! empty( $data['error']['message'] ) && ! empty( $data['error']['code'] ) ) {
|
353 |
return $data;
|
354 |
+
} elseif ( ! empty( $data['error'] ) ) {
|
355 |
+
return array(
|
356 |
+
'error' => array(
|
357 |
+
'message' => $data['error'],
|
358 |
+
'code' => 500
|
359 |
+
)
|
360 |
+
);
|
361 |
} else {
|
362 |
return array(
|
363 |
'error' => array(
|
377 |
|
378 |
protected function get_error_response_data( $response ) {
|
379 |
$data = json_decode( $response, true );
|
380 |
+
if ( ! empty( $data['error'] ) ) {
|
381 |
return array(
|
382 |
'error' => array(
|
383 |
+
'message' => $data['error'],
|
384 |
'code' => 500
|
385 |
)
|
386 |
);
|
lib/cert/cacerts.pem
ADDED
@@ -0,0 +1,738 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
# Certifcate Authority certificates for validating SSL connections.
|
2 |
+
#
|
3 |
+
# This file contains PEM format certificates generated from
|
4 |
+
# http://mxr.mozilla.org/seamonkey/source/security/nss/lib/ckfw/builtins/certdata.txt
|
5 |
+
#
|
6 |
+
# ***** BEGIN LICENSE BLOCK *****
|
7 |
+
# Version: MPL 1.1/GPL 2.0/LGPL 2.1
|
8 |
+
#
|
9 |
+
# The contents of this file are subject to the Mozilla Public License Version
|
10 |
+
# 1.1 (the "License"); you may not use this file except in compliance with
|
11 |
+
# the License. You may obtain a copy of the License at
|
12 |
+
# http://www.mozilla.org/MPL/
|
13 |
+
#
|
14 |
+
# Software distributed under the License is distributed on an "AS IS" basis,
|
15 |
+
# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
|
16 |
+
# for the specific language governing rights and limitations under the
|
17 |
+
# License.
|
18 |
+
#
|
19 |
+
# The Original Code is the Netscape security libraries.
|
20 |
+
#
|
21 |
+
# The Initial Developer of the Original Code is
|
22 |
+
# Netscape Communications Corporation.
|
23 |
+
# Portions created by the Initial Developer are Copyright (C) 1994-2000
|
24 |
+
# the Initial Developer. All Rights Reserved.
|
25 |
+
#
|
26 |
+
# Contributor(s):
|
27 |
+
#
|
28 |
+
# Alternatively, the contents of this file may be used under the terms of
|
29 |
+
# either the GNU General Public License Version 2 or later (the "GPL"), or
|
30 |
+
# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
|
31 |
+
# in which case the provisions of the GPL or the LGPL are applicable instead
|
32 |
+
# of those above. If you wish to allow use of your version of this file only
|
33 |
+
# under the terms of either the GPL or the LGPL, and not to allow others to
|
34 |
+
# use your version of this file under the terms of the MPL, indicate your
|
35 |
+
# decision by deleting the provisions above and replace them with the notice
|
36 |
+
# and other provisions required by the GPL or the LGPL. If you do not delete
|
37 |
+
# the provisions above, a recipient may use your version of this file under
|
38 |
+
# the terms of any one of the MPL, the GPL or the LGPL.
|
39 |
+
#
|
40 |
+
# ***** END LICENSE BLOCK *****
|
41 |
+
|
42 |
+
Verisign/RSA Secure Server CA
|
43 |
+
=============================
|
44 |
+
|
45 |
+
-----BEGIN CERTIFICATE-----
|
46 |
+
MIICNDCCAaECEAKtZn5ORf5eV288mBle3cAwDQYJKoZIhvcNAQECBQAwXzELMAkG
|
47 |
+
A1UEBhMCVVMxIDAeBgNVBAoTF1JTQSBEYXRhIFNlY3VyaXR5LCBJbmMuMS4wLAYD
|
48 |
+
VQQLEyVTZWN1cmUgU2VydmVyIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MB4XDTk0
|
49 |
+
MTEwOTAwMDAwMFoXDTEwMDEwNzIzNTk1OVowXzELMAkGA1UEBhMCVVMxIDAeBgNV
|
50 |
+
BAoTF1JTQSBEYXRhIFNlY3VyaXR5LCBJbmMuMS4wLAYDVQQLEyVTZWN1cmUgU2Vy
|
51 |
+
dmVyIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MIGbMA0GCSqGSIb3DQEBAQUAA4GJ
|
52 |
+
ADCBhQJ+AJLOesGugz5aqomDV6wlAXYMra6OLDfO6zV4ZFQD5YRAUcm/jwjiioII
|
53 |
+
0haGN1XpsSECrXZogZoFokvJSyVmIlZsiAeP94FZbYQHZXATcXY+m3dM41CJVphI
|
54 |
+
uR2nKRoTLkoRWZweFdVJVCxzOmmCsZc5nG1wZ0jl3S3WyB57AgMBAAEwDQYJKoZI
|
55 |
+
hvcNAQECBQADfgBl3X7hsuyw4jrg7HFGmhkRuNPHoLQDQCYCPgmc4RKz0Vr2N6W3
|
56 |
+
YQO2WxZpO8ZECAyIUwxrl0nHPjXcbLm7qt9cuzovk2C2qUtN8iD3zV9/ZHuO3ABc
|
57 |
+
1/p3yjkWWW8O6tO1g39NTUJWdrTJXwT4OPjr0l91X817/OWOgHz8UA==
|
58 |
+
-----END CERTIFICATE-----
|
59 |
+
|
60 |
+
Thawte Personal Basic CA
|
61 |
+
========================
|
62 |
+
|
63 |
+
-----BEGIN CERTIFICATE-----
|
64 |
+
MIIDITCCAoqgAwIBAgIBADANBgkqhkiG9w0BAQQFADCByzELMAkGA1UEBhMCWkEx
|
65 |
+
FTATBgNVBAgTDFdlc3Rlcm4gQ2FwZTESMBAGA1UEBxMJQ2FwZSBUb3duMRowGAYD
|
66 |
+
VQQKExFUaGF3dGUgQ29uc3VsdGluZzEoMCYGA1UECxMfQ2VydGlmaWNhdGlvbiBT
|
67 |
+
ZXJ2aWNlcyBEaXZpc2lvbjEhMB8GA1UEAxMYVGhhd3RlIFBlcnNvbmFsIEJhc2lj
|
68 |
+
IENBMSgwJgYJKoZIhvcNAQkBFhlwZXJzb25hbC1iYXNpY0B0aGF3dGUuY29tMB4X
|
69 |
+
DTk2MDEwMTAwMDAwMFoXDTIwMTIzMTIzNTk1OVowgcsxCzAJBgNVBAYTAlpBMRUw
|
70 |
+
EwYDVQQIEwxXZXN0ZXJuIENhcGUxEjAQBgNVBAcTCUNhcGUgVG93bjEaMBgGA1UE
|
71 |
+
ChMRVGhhd3RlIENvbnN1bHRpbmcxKDAmBgNVBAsTH0NlcnRpZmljYXRpb24gU2Vy
|
72 |
+
dmljZXMgRGl2aXNpb24xITAfBgNVBAMTGFRoYXd0ZSBQZXJzb25hbCBCYXNpYyBD
|
73 |
+
QTEoMCYGCSqGSIb3DQEJARYZcGVyc29uYWwtYmFzaWNAdGhhd3RlLmNvbTCBnzAN
|
74 |
+
BgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAvLyTU23AUE+CFeZIlDWmWr5vQvoPR+53
|
75 |
+
dXLdjUmbllegeNTKP1GzaQuRdhciB5dqxFGTS+CN7zeVoQxN2jSQHReJl+A1OFdK
|
76 |
+
wPQIcOk8RHtQfmGakOMj04gRRif1CwcOu93RfyAKiLlWCy4cgNrx454p7xS9CkT7
|
77 |
+
G1sY0b8jkyECAwEAAaMTMBEwDwYDVR0TAQH/BAUwAwEB/zANBgkqhkiG9w0BAQQF
|
78 |
+
AAOBgQAt4plrsD16iddZopQBHyvdEktTwq1/qqcAXJFAVyVKOKqEcLnZgA+le1z7
|
79 |
+
c8a914phXAPjLSeoF+CEhULcXpvGt7Jtu3Sv5D/Lp7ew4F2+eIMllNLbgQ95B21P
|
80 |
+
9DkVWlIBe94y1k049hJcBlDfBVu9FEuh3ym6O0GN92NWod8isQ==
|
81 |
+
-----END CERTIFICATE-----
|
82 |
+
|
83 |
+
Thawte Personal Premium CA
|
84 |
+
==========================
|
85 |
+
|
86 |
+
-----BEGIN CERTIFICATE-----
|
87 |
+
MIIDKTCCApKgAwIBAgIBADANBgkqhkiG9w0BAQQFADCBzzELMAkGA1UEBhMCWkEx
|
88 |
+
FTATBgNVBAgTDFdlc3Rlcm4gQ2FwZTESMBAGA1UEBxMJQ2FwZSBUb3duMRowGAYD
|
89 |
+
VQQKExFUaGF3dGUgQ29uc3VsdGluZzEoMCYGA1UECxMfQ2VydGlmaWNhdGlvbiBT
|
90 |
+
ZXJ2aWNlcyBEaXZpc2lvbjEjMCEGA1UEAxMaVGhhd3RlIFBlcnNvbmFsIFByZW1p
|
91 |
+
dW0gQ0ExKjAoBgkqhkiG9w0BCQEWG3BlcnNvbmFsLXByZW1pdW1AdGhhd3RlLmNv
|
92 |
+
bTAeFw05NjAxMDEwMDAwMDBaFw0yMDEyMzEyMzU5NTlaMIHPMQswCQYDVQQGEwJa
|
93 |
+
QTEVMBMGA1UECBMMV2VzdGVybiBDYXBlMRIwEAYDVQQHEwlDYXBlIFRvd24xGjAY
|
94 |
+
BgNVBAoTEVRoYXd0ZSBDb25zdWx0aW5nMSgwJgYDVQQLEx9DZXJ0aWZpY2F0aW9u
|
95 |
+
IFNlcnZpY2VzIERpdmlzaW9uMSMwIQYDVQQDExpUaGF3dGUgUGVyc29uYWwgUHJl
|
96 |
+
bWl1bSBDQTEqMCgGCSqGSIb3DQEJARYbcGVyc29uYWwtcHJlbWl1bUB0aGF3dGUu
|
97 |
+
Y29tMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDJZtn4B0TPuYwu8KHvE0Vs
|
98 |
+
Bd/eJxZRNkERbGw77f4QfRKe5ZtCmv5gMcNmt3M6SK5O0DI3lIi1DbbZ8/JE2dWI
|
99 |
+
Et12TfIa/G8jHnrx2JhFTgcQ7xZC0EN1bUre4qrJMf8fAHB8Zs8QJQi6+u4A6UYD
|
100 |
+
ZicRFTuqW/KY3TZCstqIdQIDAQABoxMwETAPBgNVHRMBAf8EBTADAQH/MA0GCSqG
|
101 |
+
SIb3DQEBBAUAA4GBAGk2ifc0KjNyL2071CKyuG+axTZmDhs8obF1Wub9NdP4qPIH
|
102 |
+
b4Vnjt4rueIXsDqg8A6iAJrf8xQVbrvIhVqYgPn/vnQdPfP+MCXRNzRn+qVxeTBh
|
103 |
+
KXLA4CxM+1bkOqhv5TJZUtt1KFBZDPgLGeSs2a+WjS9Q2wfD6h+rM+D1KzGJ
|
104 |
+
-----END CERTIFICATE-----
|
105 |
+
|
106 |
+
Thawte Personal Freemail CA
|
107 |
+
===========================
|
108 |
+
|
109 |
+
-----BEGIN CERTIFICATE-----
|
110 |
+
MIIDLTCCApagAwIBAgIBADANBgkqhkiG9w0BAQQFADCB0TELMAkGA1UEBhMCWkEx
|
111 |
+
FTATBgNVBAgTDFdlc3Rlcm4gQ2FwZTESMBAGA1UEBxMJQ2FwZSBUb3duMRowGAYD
|
112 |
+
VQQKExFUaGF3dGUgQ29uc3VsdGluZzEoMCYGA1UECxMfQ2VydGlmaWNhdGlvbiBT
|
113 |
+
ZXJ2aWNlcyBEaXZpc2lvbjEkMCIGA1UEAxMbVGhhd3RlIFBlcnNvbmFsIEZyZWVt
|
114 |
+
YWlsIENBMSswKQYJKoZIhvcNAQkBFhxwZXJzb25hbC1mcmVlbWFpbEB0aGF3dGUu
|
115 |
+
Y29tMB4XDTk2MDEwMTAwMDAwMFoXDTIwMTIzMTIzNTk1OVowgdExCzAJBgNVBAYT
|
116 |
+
AlpBMRUwEwYDVQQIEwxXZXN0ZXJuIENhcGUxEjAQBgNVBAcTCUNhcGUgVG93bjEa
|
117 |
+
MBgGA1UEChMRVGhhd3RlIENvbnN1bHRpbmcxKDAmBgNVBAsTH0NlcnRpZmljYXRp
|
118 |
+
b24gU2VydmljZXMgRGl2aXNpb24xJDAiBgNVBAMTG1RoYXd0ZSBQZXJzb25hbCBG
|
119 |
+
cmVlbWFpbCBDQTErMCkGCSqGSIb3DQEJARYccGVyc29uYWwtZnJlZW1haWxAdGhh
|
120 |
+
d3RlLmNvbTCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEA1GnX1LCUZFtx6UfY
|
121 |
+
DFG26nKRsIRefS0Nj3sS34UldSh0OkIsYyeflXtL734Zhx2G6qPduc6WZBrCFG5E
|
122 |
+
rHzmj+hND3EfQDimAKOHePb5lIZererAXnbr2RSjXW56fAylS1V/Bhkpf56aJtVq
|
123 |
+
uzgkCGqYx7Hao5iR/Xnb5VrEHLkCAwEAAaMTMBEwDwYDVR0TAQH/BAUwAwEB/zAN
|
124 |
+
BgkqhkiG9w0BAQQFAAOBgQDH7JJ+Tvj1lqVnYiqk8E0RYNBvjWBYYawmu1I1XAjP
|
125 |
+
MPuoSpaKH2JCI4wXD/S6ZJwXrEcp352YXtJsYHFcoqzceePnbgBHH7UNKOgCneSa
|
126 |
+
/RP0ptl8sfjcXyMmCZGAc9AUG95DqYMl8uacLxXK/qarigd1iwzdUYRr5PjRznei
|
127 |
+
gQ==
|
128 |
+
-----END CERTIFICATE-----
|
129 |
+
|
130 |
+
Thawte Server CA
|
131 |
+
================
|
132 |
+
|
133 |
+
-----BEGIN CERTIFICATE-----
|
134 |
+
MIIDEzCCAnygAwIBAgIBATANBgkqhkiG9w0BAQQFADCBxDELMAkGA1UEBhMCWkEx
|
135 |
+
FTATBgNVBAgTDFdlc3Rlcm4gQ2FwZTESMBAGA1UEBxMJQ2FwZSBUb3duMR0wGwYD
|
136 |
+
VQQKExRUaGF3dGUgQ29uc3VsdGluZyBjYzEoMCYGA1UECxMfQ2VydGlmaWNhdGlv
|
137 |
+
biBTZXJ2aWNlcyBEaXZpc2lvbjEZMBcGA1UEAxMQVGhhd3RlIFNlcnZlciBDQTEm
|
138 |
+
MCQGCSqGSIb3DQEJARYXc2VydmVyLWNlcnRzQHRoYXd0ZS5jb20wHhcNOTYwODAx
|
139 |
+
MDAwMDAwWhcNMjAxMjMxMjM1OTU5WjCBxDELMAkGA1UEBhMCWkExFTATBgNVBAgT
|
140 |
+
DFdlc3Rlcm4gQ2FwZTESMBAGA1UEBxMJQ2FwZSBUb3duMR0wGwYDVQQKExRUaGF3
|
141 |
+
dGUgQ29uc3VsdGluZyBjYzEoMCYGA1UECxMfQ2VydGlmaWNhdGlvbiBTZXJ2aWNl
|
142 |
+
cyBEaXZpc2lvbjEZMBcGA1UEAxMQVGhhd3RlIFNlcnZlciBDQTEmMCQGCSqGSIb3
|
143 |
+
DQEJARYXc2VydmVyLWNlcnRzQHRoYXd0ZS5jb20wgZ8wDQYJKoZIhvcNAQEBBQAD
|
144 |
+
gY0AMIGJAoGBANOkUG7I/1Zr5s9dtuoMaHVHoqrC2oQl/Kj0R1HahbUgdJSGHg91
|
145 |
+
yekIYfUGbTBuFRkC6VLAYttNmZ7iagxEOM3+vuNkCXDF/rFrKbYvScg71CcEJRCX
|
146 |
+
L+eQbcAoQpnXTEPew/UhbVSfXcNY4cDk2VuwuNy0e982OsK1ZiIS1ocNAgMBAAGj
|
147 |
+
EzARMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQEEBQADgYEAB/pMaVz7lcxG
|
148 |
+
7oWDTSEwjsrZqG9JGubaUeNgcGyEYRGhGshIPllDfU+VPaGLtwtimHp1it2ITk6e
|
149 |
+
QNuozDJ0uW8NxuOzRAvZim+aKZuZGCg70eNAKJpaPNW15yAbi8qkq43pUdniTCxZ
|
150 |
+
qdq5snUb9kLy78fyGPmJvKP/iiMucEc=
|
151 |
+
-----END CERTIFICATE-----
|
152 |
+
|
153 |
+
Thawte Premium Server CA
|
154 |
+
========================
|
155 |
+
|
156 |
+
-----BEGIN CERTIFICATE-----
|
157 |
+
MIIDJzCCApCgAwIBAgIBATANBgkqhkiG9w0BAQQFADCBzjELMAkGA1UEBhMCWkEx
|
158 |
+
FTATBgNVBAgTDFdlc3Rlcm4gQ2FwZTESMBAGA1UEBxMJQ2FwZSBUb3duMR0wGwYD
|
159 |
+
VQQKExRUaGF3dGUgQ29uc3VsdGluZyBjYzEoMCYGA1UECxMfQ2VydGlmaWNhdGlv
|
160 |
+
biBTZXJ2aWNlcyBEaXZpc2lvbjEhMB8GA1UEAxMYVGhhd3RlIFByZW1pdW0gU2Vy
|
161 |
+
dmVyIENBMSgwJgYJKoZIhvcNAQkBFhlwcmVtaXVtLXNlcnZlckB0aGF3dGUuY29t
|
162 |
+
MB4XDTk2MDgwMTAwMDAwMFoXDTIwMTIzMTIzNTk1OVowgc4xCzAJBgNVBAYTAlpB
|
163 |
+
MRUwEwYDVQQIEwxXZXN0ZXJuIENhcGUxEjAQBgNVBAcTCUNhcGUgVG93bjEdMBsG
|
164 |
+
A1UEChMUVGhhd3RlIENvbnN1bHRpbmcgY2MxKDAmBgNVBAsTH0NlcnRpZmljYXRp
|
165 |
+
b24gU2VydmljZXMgRGl2aXNpb24xITAfBgNVBAMTGFRoYXd0ZSBQcmVtaXVtIFNl
|
166 |
+
cnZlciBDQTEoMCYGCSqGSIb3DQEJARYZcHJlbWl1bS1zZXJ2ZXJAdGhhd3RlLmNv
|
167 |
+
bTCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEA0jY2aovXwlue2oFBYo847kkE
|
168 |
+
VdbQ7xwblRZH7xhINTpS9CtqBo87L+pW46+GjZ4X9560ZXUCTe/LCaIhUdib0GfQ
|
169 |
+
ug2SBhRz1JPLlyoAnFxODLz6FVL88kRu2hFKbgifLy3j+ao6hnO2RlNYyIkFvYMR
|
170 |
+
uHM/qgeN9EJN50CdHDcCAwEAAaMTMBEwDwYDVR0TAQH/BAUwAwEB/zANBgkqhkiG
|
171 |
+
9w0BAQQFAAOBgQAmSCwWwlj66BZ0DKqqX1Q/8tfJeGBeXm43YyJ3Nn6yF8Q0ufUI
|
172 |
+
hfzJATj/Tb7yFkJD57taRvvBxhEf8UqwKEbJw8RCfbz6q1lu1bdRiBHjpIUZa4JM
|
173 |
+
pAwSremkrj/xw0llmozFyD4lt5SZu5IycQfwhl7tUCemDaYj+bvLpgcUQg==
|
174 |
+
-----END CERTIFICATE-----
|
175 |
+
|
176 |
+
Equifax Secure CA
|
177 |
+
=================
|
178 |
+
|
179 |
+
-----BEGIN CERTIFICATE-----
|
180 |
+
MIIDIDCCAomgAwIBAgIENd70zzANBgkqhkiG9w0BAQUFADBOMQswCQYDVQQGEwJV
|
181 |
+
UzEQMA4GA1UEChMHRXF1aWZheDEtMCsGA1UECxMkRXF1aWZheCBTZWN1cmUgQ2Vy
|
182 |
+
dGlmaWNhdGUgQXV0aG9yaXR5MB4XDTk4MDgyMjE2NDE1MVoXDTE4MDgyMjE2NDE1
|
183 |
+
MVowTjELMAkGA1UEBhMCVVMxEDAOBgNVBAoTB0VxdWlmYXgxLTArBgNVBAsTJEVx
|
184 |
+
dWlmYXggU2VjdXJlIENlcnRpZmljYXRlIEF1dGhvcml0eTCBnzANBgkqhkiG9w0B
|
185 |
+
AQEFAAOBjQAwgYkCgYEAwV2xWGcIYu6gmi0fCG2RFGiYCh7+2gRvE4RiIcPRfM6f
|
186 |
+
BeC4AfBONOziipUEZKzxa1NfBbPLZ4C/QgKO/t0BCezhABRP/PvwDN1Dulsr4R+A
|
187 |
+
cJkVV5MW8Q+XarfCaCMczE1ZMKxRHjuvK9buY0V7xdlfUNLjUA86iOe/FP3gx7kC
|
188 |
+
AwEAAaOCAQkwggEFMHAGA1UdHwRpMGcwZaBjoGGkXzBdMQswCQYDVQQGEwJVUzEQ
|
189 |
+
MA4GA1UEChMHRXF1aWZheDEtMCsGA1UECxMkRXF1aWZheCBTZWN1cmUgQ2VydGlm
|
190 |
+
aWNhdGUgQXV0aG9yaXR5MQ0wCwYDVQQDEwRDUkwxMBoGA1UdEAQTMBGBDzIwMTgw
|
191 |
+
ODIyMTY0MTUxWjALBgNVHQ8EBAMCAQYwHwYDVR0jBBgwFoAUSOZo+SvSspXXR9gj
|
192 |
+
IBBPM5iQn9QwHQYDVR0OBBYEFEjmaPkr0rKV10fYIyAQTzOYkJ/UMAwGA1UdEwQF
|
193 |
+
MAMBAf8wGgYJKoZIhvZ9B0EABA0wCxsFVjMuMGMDAgbAMA0GCSqGSIb3DQEBBQUA
|
194 |
+
A4GBAFjOKer89961zgK5F7WF0bnj4JXMJTENAKaSbn+2kmOeUJXRmm/kEd5jhW6Y
|
195 |
+
7qj/WsjTVbJmcVfewCHrPSqnI0kBBIZCe/zuf6IWUrVnZ9NA2zsmWLIodz2uFHdh
|
196 |
+
1voqZiegDfqnc1zqcPGUIWVEX/r87yloqaKHee9570+sB3c4
|
197 |
+
-----END CERTIFICATE-----
|
198 |
+
|
199 |
+
Verisign Class 1 Public Primary Certification Authority
|
200 |
+
=======================================================
|
201 |
+
|
202 |
+
-----BEGIN CERTIFICATE-----
|
203 |
+
MIICPTCCAaYCEQDNun9W8N/kvFT+IqyzcqpVMA0GCSqGSIb3DQEBAgUAMF8xCzAJ
|
204 |
+
BgNVBAYTAlVTMRcwFQYDVQQKEw5WZXJpU2lnbiwgSW5jLjE3MDUGA1UECxMuQ2xh
|
205 |
+
c3MgMSBQdWJsaWMgUHJpbWFyeSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAeFw05
|
206 |
+
NjAxMjkwMDAwMDBaFw0yODA4MDEyMzU5NTlaMF8xCzAJBgNVBAYTAlVTMRcwFQYD
|
207 |
+
VQQKEw5WZXJpU2lnbiwgSW5jLjE3MDUGA1UECxMuQ2xhc3MgMSBQdWJsaWMgUHJp
|
208 |
+
bWFyeSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTCBnzANBgkqhkiG9w0BAQEFAAOB
|
209 |
+
jQAwgYkCgYEA5Rm/baNWYS2ZSHH2Z965jeu3noaACpEO+jglr0aIguVzqKCbJF0N
|
210 |
+
H8xlbgyw0FaEGIeaBpsQoXPftFg5a27B9hXVqKg/qhIGjTGsf7A01480Z4gJzRQR
|
211 |
+
4k5FVmkfeAKA2txHkSm7NsljXMXg1y2He6G3MrB7MLoqLzGq7qNn2tsCAwEAATAN
|
212 |
+
BgkqhkiG9w0BAQIFAAOBgQBMP7iLxmjf7kMzDl3ppssHhE16M/+SG/Q2rdiVIjZo
|
213 |
+
EWx8QszznC7EBz8UsA9P/5CSdvnivErpj82ggAr3xSnxgiJduLHdgSOjeyUVRjB5
|
214 |
+
FvjqBUuUfx3CHMjjt/QQQDwTw18fU+hI5Ia0e6E1sHslurjTjqs/OJ0ANACY89Fx
|
215 |
+
lA==
|
216 |
+
-----END CERTIFICATE-----
|
217 |
+
|
218 |
+
Verisign Class 2 Public Primary Certification Authority
|
219 |
+
=======================================================
|
220 |
+
|
221 |
+
-----BEGIN CERTIFICATE-----
|
222 |
+
MIICPDCCAaUCEC0b/EoXjaOR6+f/9YtFvgswDQYJKoZIhvcNAQECBQAwXzELMAkG
|
223 |
+
A1UEBhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMTcwNQYDVQQLEy5DbGFz
|
224 |
+
cyAyIFB1YmxpYyBQcmltYXJ5IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MB4XDTk2
|
225 |
+
MDEyOTAwMDAwMFoXDTI4MDgwMTIzNTk1OVowXzELMAkGA1UEBhMCVVMxFzAVBgNV
|
226 |
+
BAoTDlZlcmlTaWduLCBJbmMuMTcwNQYDVQQLEy5DbGFzcyAyIFB1YmxpYyBQcmlt
|
227 |
+
YXJ5IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MIGfMA0GCSqGSIb3DQEBAQUAA4GN
|
228 |
+
ADCBiQKBgQC2WoujDWojg4BrzzmH9CETMwZMJaLtVRKXxaeAufqDwSCg+i8VDXyh
|
229 |
+
YGt+eSz6Bg86rvYbb7HS/y8oUl+DfUvEerf4Zh+AVPy3wo5ZShRXRtGak75BkQO7
|
230 |
+
FYCTXOvnzAhsPz6zSvz/S2wj1VCCJkQZjiPDceoZJEcEnnW/yKYAHwIDAQABMA0G
|
231 |
+
CSqGSIb3DQEBAgUAA4GBAIobK/o5wXTXXtgZZKJYSi034DNHD6zt96rbHuSLBlxg
|
232 |
+
J8pFUs4W7z8GZOeUaHxgMxURaa+dYo2jA1Rrpr7l7gUYYAS/QoD90KioHgE796Nc
|
233 |
+
r6Pc5iaAIzy4RHT3Cq5Ji2F4zCS/iIqnDupzGUH9TQPwiNHleI2lKk/2lw0Xd8rY
|
234 |
+
-----END CERTIFICATE-----
|
235 |
+
|
236 |
+
Verisign Class 3 Public Primary Certification Authority
|
237 |
+
=======================================================
|
238 |
+
|
239 |
+
-----BEGIN CERTIFICATE-----
|
240 |
+
MIICPDCCAaUCEHC65B0Q2Sk0tjjKewPMur8wDQYJKoZIhvcNAQECBQAwXzELMAkG
|
241 |
+
A1UEBhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMTcwNQYDVQQLEy5DbGFz
|
242 |
+
cyAzIFB1YmxpYyBQcmltYXJ5IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MB4XDTk2
|
243 |
+
MDEyOTAwMDAwMFoXDTI4MDgwMTIzNTk1OVowXzELMAkGA1UEBhMCVVMxFzAVBgNV
|
244 |
+
BAoTDlZlcmlTaWduLCBJbmMuMTcwNQYDVQQLEy5DbGFzcyAzIFB1YmxpYyBQcmlt
|
245 |
+
YXJ5IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MIGfMA0GCSqGSIb3DQEBAQUAA4GN
|
246 |
+
ADCBiQKBgQDJXFme8huKARS0EN8EQNvjV69qRUCPhAwL0TPZ2RHP7gJYHyX3KqhE
|
247 |
+
BarsAx94f56TuZoAqiN91qyFomNFx3InzPRMxnVx0jnvT0Lwdd8KkMaOIG+YD/is
|
248 |
+
I19wKTakyYbnsZogy1Olhec9vn2a/iRFM9x2Fe0PonFkTGUugWhFpwIDAQABMA0G
|
249 |
+
CSqGSIb3DQEBAgUAA4GBALtMEivPLCYATxQT3ab7/AoRhIzzKBxnki98tsX63/Do
|
250 |
+
lbwdj2wsqFHMc9ikwFPwTtYmwHYBV4GSXiHx0bH/59AhWM1pF+NEHJwZRDmJXNyc
|
251 |
+
AA9WjQKZ7aKQRUzkuxCkPfAyAw7xzvjoyVGM5mKf5p/AfbdynMk2OmufTqj/ZA1k
|
252 |
+
-----END CERTIFICATE-----
|
253 |
+
|
254 |
+
Verisign Class 1 Public Primary Certification Authority - G2
|
255 |
+
============================================================
|
256 |
+
|
257 |
+
-----BEGIN CERTIFICATE-----
|
258 |
+
MIIDAjCCAmsCEEzH6qqYPnHTkxD4PTqJkZIwDQYJKoZIhvcNAQEFBQAwgcExCzAJ
|
259 |
+
BgNVBAYTAlVTMRcwFQYDVQQKEw5WZXJpU2lnbiwgSW5jLjE8MDoGA1UECxMzQ2xh
|
260 |
+
c3MgMSBQdWJsaWMgUHJpbWFyeSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSAtIEcy
|
261 |
+
MTowOAYDVQQLEzEoYykgMTk5OCBWZXJpU2lnbiwgSW5jLiAtIEZvciBhdXRob3Jp
|
262 |
+
emVkIHVzZSBvbmx5MR8wHQYDVQQLExZWZXJpU2lnbiBUcnVzdCBOZXR3b3JrMB4X
|
263 |
+
DTk4MDUxODAwMDAwMFoXDTI4MDgwMTIzNTk1OVowgcExCzAJBgNVBAYTAlVTMRcw
|
264 |
+
FQYDVQQKEw5WZXJpU2lnbiwgSW5jLjE8MDoGA1UECxMzQ2xhc3MgMSBQdWJsaWMg
|
265 |
+
UHJpbWFyeSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSAtIEcyMTowOAYDVQQLEzEo
|
266 |
+
YykgMTk5OCBWZXJpU2lnbiwgSW5jLiAtIEZvciBhdXRob3JpemVkIHVzZSBvbmx5
|
267 |
+
MR8wHQYDVQQLExZWZXJpU2lnbiBUcnVzdCBOZXR3b3JrMIGfMA0GCSqGSIb3DQEB
|
268 |
+
AQUAA4GNADCBiQKBgQCq0Lq+Fi24g9TK0g+8djHKlNgdk4xWArzZbxpvUjZudVYK
|
269 |
+
VdPfQ4chEWWKfo+9Id5rMj8bhDSVBZ1BNeuS65bdqlk/AVNtmU/t5eIqWpDBucSm
|
270 |
+
Fc/IReumXY6cPvBkJHalzasab7bYe1FhbqZ/h8jit+U03EGI6glAvnOSPWvndQID
|
271 |
+
AQABMA0GCSqGSIb3DQEBBQUAA4GBAKlPww3HZ74sy9mozS11534Vnjty637rXC0J
|
272 |
+
h9ZrbWB85a7FkCMMXErQr7Fd88e2CtvgFZMN3QO8x3aKtd1Pw5sTdbgBwObJW2ul
|
273 |
+
uIncrKTdcu1OofdPvAbT6shkdHvClUGcZXNY8ZCaPGqxmMnEh7zPRW1F4m4iP/68
|
274 |
+
DzFc6PLZ
|
275 |
+
-----END CERTIFICATE-----
|
276 |
+
|
277 |
+
Verisign Class 2 Public Primary Certification Authority - G2
|
278 |
+
============================================================
|
279 |
+
|
280 |
+
-----BEGIN CERTIFICATE-----
|
281 |
+
MIIDAzCCAmwCEQC5L2DMiJ+hekYJuFtwbIqvMA0GCSqGSIb3DQEBBQUAMIHBMQsw
|
282 |
+
CQYDVQQGEwJVUzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xPDA6BgNVBAsTM0Ns
|
283 |
+
YXNzIDIgUHVibGljIFByaW1hcnkgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkgLSBH
|
284 |
+
MjE6MDgGA1UECxMxKGMpIDE5OTggVmVyaVNpZ24sIEluYy4gLSBGb3IgYXV0aG9y
|
285 |
+
aXplZCB1c2Ugb25seTEfMB0GA1UECxMWVmVyaVNpZ24gVHJ1c3QgTmV0d29yazAe
|
286 |
+
Fw05ODA1MTgwMDAwMDBaFw0yODA4MDEyMzU5NTlaMIHBMQswCQYDVQQGEwJVUzEX
|
287 |
+
MBUGA1UEChMOVmVyaVNpZ24sIEluYy4xPDA6BgNVBAsTM0NsYXNzIDIgUHVibGlj
|
288 |
+
IFByaW1hcnkgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkgLSBHMjE6MDgGA1UECxMx
|
289 |
+
KGMpIDE5OTggVmVyaVNpZ24sIEluYy4gLSBGb3IgYXV0aG9yaXplZCB1c2Ugb25s
|
290 |
+
eTEfMB0GA1UECxMWVmVyaVNpZ24gVHJ1c3QgTmV0d29yazCBnzANBgkqhkiG9w0B
|
291 |
+
AQEFAAOBjQAwgYkCgYEAp4gBIXQs5xoD8JjhlzwPIQjxnNuX6Zr8wgQGE75fUsjM
|
292 |
+
HiwSViy4AWkszJkfrbCWrnkE8hM5wXuYuggs6MKEEyyqaekJ9MepAqRCwiNPStjw
|
293 |
+
DqL7MWzJ5m+ZJwf15vRMeJ5t60aG+rmGyVTyssSv1EYcWskVMP8NbPUtDm3Of3cC
|
294 |
+
AwEAATANBgkqhkiG9w0BAQUFAAOBgQByLvl/0fFx+8Se9sVeUYpAmLho+Jscg9ji
|
295 |
+
nb3/7aHmZuovCfTK1+qlK5X2JGCGTUQug6XELaDTrnhpb3LabK4I8GOSN+a7xDAX
|
296 |
+
rXfMSTWqz9iP0b63GJZHc2pUIjRkLbYWm1lbtFFZOrMLFPQS32eg9K0yZF6xRnIn
|
297 |
+
jBJ7xUS0rg==
|
298 |
+
-----END CERTIFICATE-----
|
299 |
+
|
300 |
+
Verisign Class 3 Public Primary Certification Authority - G2
|
301 |
+
============================================================
|
302 |
+
|
303 |
+
-----BEGIN CERTIFICATE-----
|
304 |
+
MIIDAjCCAmsCEH3Z/gfPqB63EHln+6eJNMYwDQYJKoZIhvcNAQEFBQAwgcExCzAJ
|
305 |
+
BgNVBAYTAlVTMRcwFQYDVQQKEw5WZXJpU2lnbiwgSW5jLjE8MDoGA1UECxMzQ2xh
|
306 |
+
c3MgMyBQdWJsaWMgUHJpbWFyeSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSAtIEcy
|
307 |
+
MTowOAYDVQQLEzEoYykgMTk5OCBWZXJpU2lnbiwgSW5jLiAtIEZvciBhdXRob3Jp
|
308 |
+
emVkIHVzZSBvbmx5MR8wHQYDVQQLExZWZXJpU2lnbiBUcnVzdCBOZXR3b3JrMB4X
|
309 |
+
DTk4MDUxODAwMDAwMFoXDTI4MDgwMTIzNTk1OVowgcExCzAJBgNVBAYTAlVTMRcw
|
310 |
+
FQYDVQQKEw5WZXJpU2lnbiwgSW5jLjE8MDoGA1UECxMzQ2xhc3MgMyBQdWJsaWMg
|
311 |
+
UHJpbWFyeSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSAtIEcyMTowOAYDVQQLEzEo
|
312 |
+
YykgMTk5OCBWZXJpU2lnbiwgSW5jLiAtIEZvciBhdXRob3JpemVkIHVzZSBvbmx5
|
313 |
+
MR8wHQYDVQQLExZWZXJpU2lnbiBUcnVzdCBOZXR3b3JrMIGfMA0GCSqGSIb3DQEB
|
314 |
+
AQUAA4GNADCBiQKBgQDMXtERXVxp0KvTuWpMmR9ZmDCOFoUgRm1HP9SFIIThbbP4
|
315 |
+
pO0M8RcPO/mn+SXXwc+EY/J8Y8+iR/LGWzOOZEAEaMGAuWQcRXfH2G71lSk8UOg0
|
316 |
+
13gfqLptQ5GVj0VXXn7F+8qkBOvqlzdUMG+7AUcyM83cV5tkaWH4mx0ciU9cZwID
|
317 |
+
AQABMA0GCSqGSIb3DQEBBQUAA4GBAFFNzb5cy5gZnBWyATl4Lk0PZ3BwmcYQWpSk
|
318 |
+
U01UbSuvDV1Ai2TT1+7eVmGSX6bEHRBhNtMsJzzoKQm5EWR0zLVznxxIqbxhAe7i
|
319 |
+
F6YM40AIOw7n60RzKprxaZLvcRTDOaxxp5EJb+RxBrO6WVcmeQD2+A2iMzAo1KpY
|
320 |
+
oJ2daZH9
|
321 |
+
-----END CERTIFICATE-----
|
322 |
+
|
323 |
+
Verisign Class 4 Public Primary Certification Authority - G2
|
324 |
+
============================================================
|
325 |
+
|
326 |
+
-----BEGIN CERTIFICATE-----
|
327 |
+
MIIDAjCCAmsCEDKIjprS9esTR/h/xCA3JfgwDQYJKoZIhvcNAQEFBQAwgcExCzAJ
|
328 |
+
BgNVBAYTAlVTMRcwFQYDVQQKEw5WZXJpU2lnbiwgSW5jLjE8MDoGA1UECxMzQ2xh
|
329 |
+
c3MgNCBQdWJsaWMgUHJpbWFyeSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSAtIEcy
|
330 |
+
MTowOAYDVQQLEzEoYykgMTk5OCBWZXJpU2lnbiwgSW5jLiAtIEZvciBhdXRob3Jp
|
331 |
+
emVkIHVzZSBvbmx5MR8wHQYDVQQLExZWZXJpU2lnbiBUcnVzdCBOZXR3b3JrMB4X
|
332 |
+
DTk4MDUxODAwMDAwMFoXDTI4MDgwMTIzNTk1OVowgcExCzAJBgNVBAYTAlVTMRcw
|
333 |
+
FQYDVQQKEw5WZXJpU2lnbiwgSW5jLjE8MDoGA1UECxMzQ2xhc3MgNCBQdWJsaWMg
|
334 |
+
UHJpbWFyeSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSAtIEcyMTowOAYDVQQLEzEo
|
335 |
+
YykgMTk5OCBWZXJpU2lnbiwgSW5jLiAtIEZvciBhdXRob3JpemVkIHVzZSBvbmx5
|
336 |
+
MR8wHQYDVQQLExZWZXJpU2lnbiBUcnVzdCBOZXR3b3JrMIGfMA0GCSqGSIb3DQEB
|
337 |
+
AQUAA4GNADCBiQKBgQC68OTP+cSuhVS5B1f5j8V/aBH4xBewRNzjMHPVKmIquNDM
|
338 |
+
HO0oW369atyzkSTKQWI8/AIBvxwWMZQFl3Zuoq29YRdsTjCG8FE3KlDHqGKB3FtK
|
339 |
+
qsGgtG7rL+VXxbErQHDbWk2hjh+9Ax/YA9SPTJlxvOKCzFjomDqG04Y48wApHwID
|
340 |
+
AQABMA0GCSqGSIb3DQEBBQUAA4GBAIWMEsGnuVAVess+rLhDityq3RS6iYF+ATwj
|
341 |
+
cSGIL4LcY/oCRaxFWdcqWERbt5+BO5JoPeI3JPV7bI92NZYJqFmduc4jq3TWg/0y
|
342 |
+
cyfYaT5DdPauxYma51N86Xv2S/PBZYPejYqcPIiNOVn8qj8ijaHBZlCBckztImRP
|
343 |
+
T8qAkbYp
|
344 |
+
-----END CERTIFICATE-----
|
345 |
+
|
346 |
+
Verisign Class 1 Public Primary Certification Authority - G3
|
347 |
+
============================================================
|
348 |
+
|
349 |
+
-----BEGIN CERTIFICATE-----
|
350 |
+
MIIEGjCCAwICEQCLW3VWhFSFCwDPrzhIzrGkMA0GCSqGSIb3DQEBBQUAMIHKMQsw
|
351 |
+
CQYDVQQGEwJVUzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xHzAdBgNVBAsTFlZl
|
352 |
+
cmlTaWduIFRydXN0IE5ldHdvcmsxOjA4BgNVBAsTMShjKSAxOTk5IFZlcmlTaWdu
|
353 |
+
LCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxRTBDBgNVBAMTPFZlcmlT
|
354 |
+
aWduIENsYXNzIDEgUHVibGljIFByaW1hcnkgQ2VydGlmaWNhdGlvbiBBdXRob3Jp
|
355 |
+
dHkgLSBHMzAeFw05OTEwMDEwMDAwMDBaFw0zNjA3MTYyMzU5NTlaMIHKMQswCQYD
|
356 |
+
VQQGEwJVUzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xHzAdBgNVBAsTFlZlcmlT
|
357 |
+
aWduIFRydXN0IE5ldHdvcmsxOjA4BgNVBAsTMShjKSAxOTk5IFZlcmlTaWduLCBJ
|
358 |
+
bmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxRTBDBgNVBAMTPFZlcmlTaWdu
|
359 |
+
IENsYXNzIDEgUHVibGljIFByaW1hcnkgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkg
|
360 |
+
LSBHMzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAN2E1Lm0+afY8wR4
|
361 |
+
nN493GwTFtl63SRRZsDHJlkNrAYIwpTRMx/wgzUfbhvI3qpuFU5UJ+/EbRrsC+MO
|
362 |
+
8ESlV8dAWB6jRx9x7GD2bZTIGDnt/kIYVt/kTEkQeE4BdjVjEjbdZrwBBDajVWjV
|
363 |
+
ojYJrKshJlQGrT/KFOCsyq0GHZXi+J3x4GD/wn91K0zM2v6HmSHquv4+VNfSWXjb
|
364 |
+
PG7PoBMAGrgnoeS+Z5bKoMWznN3JdZ7rMJpfo83ZrngZPyPpXNspva1VyBtUjGP2
|
365 |
+
6KbqxzcSXKMpHgLZ2x87tNcPVkeBFQRKr4Mn0cVYiMHd9qqnoxjaaKptEVHhv2Vr
|
366 |
+
n5Z20T0CAwEAATANBgkqhkiG9w0BAQUFAAOCAQEAq2aN17O6x5q25lXQBfGfMY1a
|
367 |
+
qtmqRiYPce2lrVNWYgFHKkTp/j90CxObufRNG7LRX7K20ohcs5/Ny9Sn2WCVhDr4
|
368 |
+
wTcdYcrnsMXlkdpUpqwxga6X3s0IrLjAl4B/bnKk52kTlWUfxJM8/XmPBNQ+T+r3
|
369 |
+
ns7NZ3xPZQL/kYVUc8f/NveGLezQXk//EZ9yBta4GvFMDSZl4kSAHsef493oCtrs
|
370 |
+
pSCAaWihT37ha88HQfqDjrw43bAuEbFrskLMmrz5SCJ5ShkPshw+IHTZasO+8ih4
|
371 |
+
E1Z5T21Q6huwtVexN2ZYI/PcD98Kh8TvhgXVOBRgmaNL3gaWcSzy27YfpO8/7g==
|
372 |
+
-----END CERTIFICATE-----
|
373 |
+
|
374 |
+
Verisign Class 2 Public Primary Certification Authority - G3
|
375 |
+
============================================================
|
376 |
+
|
377 |
+
-----BEGIN CERTIFICATE-----
|
378 |
+
MIIEGTCCAwECEGFwy0mMX5hFKeewptlQW3owDQYJKoZIhvcNAQEFBQAwgcoxCzAJ
|
379 |
+
BgNVBAYTAlVTMRcwFQYDVQQKEw5WZXJpU2lnbiwgSW5jLjEfMB0GA1UECxMWVmVy
|
380 |
+
aVNpZ24gVHJ1c3QgTmV0d29yazE6MDgGA1UECxMxKGMpIDE5OTkgVmVyaVNpZ24s
|
381 |
+
IEluYy4gLSBGb3IgYXV0aG9yaXplZCB1c2Ugb25seTFFMEMGA1UEAxM8VmVyaVNp
|
382 |
+
Z24gQ2xhc3MgMiBQdWJsaWMgUHJpbWFyeSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0
|
383 |
+
eSAtIEczMB4XDTk5MTAwMTAwMDAwMFoXDTM2MDcxNjIzNTk1OVowgcoxCzAJBgNV
|
384 |
+
BAYTAlVTMRcwFQYDVQQKEw5WZXJpU2lnbiwgSW5jLjEfMB0GA1UECxMWVmVyaVNp
|
385 |
+
Z24gVHJ1c3QgTmV0d29yazE6MDgGA1UECxMxKGMpIDE5OTkgVmVyaVNpZ24sIElu
|
386 |
+
Yy4gLSBGb3IgYXV0aG9yaXplZCB1c2Ugb25seTFFMEMGA1UEAxM8VmVyaVNpZ24g
|
387 |
+
Q2xhc3MgMiBQdWJsaWMgUHJpbWFyeSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSAt
|
388 |
+
IEczMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEArwoNwtUs22e5LeWU
|
389 |
+
J92lvuCwTY+zYVY81nzD9M0+hsuiiOLh2KRpxbXiv8GmR1BeRjmL1Za6tW8UvxDO
|
390 |
+
JxOeBUebMXoT2B/Z0wI3i60sR/COgQanDTAM6/c8DyAd3HJG7qUCyFvDyVZpTMUY
|
391 |
+
wZF7C9UTAJu878NIPkZgIIUq1ZC2zYugzDLdt/1AVbJQHFauzI13TccgTacxdu9o
|
392 |
+
koqQHgiBVrKtaaNS0MscxCM9H5n+TOgWY47GCI72MfbS+uV23bUckqNJzc0BzWjN
|
393 |
+
qWm6o+sdDZykIKbBoMXRRkwXbdKsZj+WjOCE1Db/IlnF+RFgqF8EffIa9iVCYQ/E
|
394 |
+
Srg+iQIDAQABMA0GCSqGSIb3DQEBBQUAA4IBAQA0JhU8wI1NQ0kdvekhktdmnLfe
|
395 |
+
xbjQ5F1fdiLAJvmEOjr5jLX77GDx6M4EsMjdpwOPMPOY36TmpDHf0xwLRtxyID+u
|
396 |
+
7gU8pDM/CzmscHhzS5kr3zDCVLCoO1Wh/hYozUK9dG6A2ydEp85EXdQbkJgNHkKU
|
397 |
+
sQAsBNB0owIFImNjzYO1+8FtYmtpdf1dcEG59b98377BMnMiIYtYgXsVkXq642RI
|
398 |
+
sH/7NiXaldDxJBQX3RiAa0YjOVT1jmIJBB2UkKab5iXiQkWquJCtvgiPqQtCGJTP
|
399 |
+
cjnhsUPgKM+351psE2tJs//jGHyJizNdrDPXp/naOlXJWBD5qu9ats9LS98q
|
400 |
+
-----END CERTIFICATE-----
|
401 |
+
|
402 |
+
Verisign Class 3 Public Primary Certification Authority - G3
|
403 |
+
============================================================
|
404 |
+
|
405 |
+
-----BEGIN CERTIFICATE-----
|
406 |
+
MIIEGjCCAwICEQCbfgZJoz5iudXukEhxKe9XMA0GCSqGSIb3DQEBBQUAMIHKMQsw
|
407 |
+
CQYDVQQGEwJVUzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xHzAdBgNVBAsTFlZl
|
408 |
+
cmlTaWduIFRydXN0IE5ldHdvcmsxOjA4BgNVBAsTMShjKSAxOTk5IFZlcmlTaWdu
|
409 |
+
LCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxRTBDBgNVBAMTPFZlcmlT
|
410 |
+
aWduIENsYXNzIDMgUHVibGljIFByaW1hcnkgQ2VydGlmaWNhdGlvbiBBdXRob3Jp
|
411 |
+
dHkgLSBHMzAeFw05OTEwMDEwMDAwMDBaFw0zNjA3MTYyMzU5NTlaMIHKMQswCQYD
|
412 |
+
VQQGEwJVUzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xHzAdBgNVBAsTFlZlcmlT
|
413 |
+
aWduIFRydXN0IE5ldHdvcmsxOjA4BgNVBAsTMShjKSAxOTk5IFZlcmlTaWduLCBJ
|
414 |
+
bmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxRTBDBgNVBAMTPFZlcmlTaWdu
|
415 |
+
IENsYXNzIDMgUHVibGljIFByaW1hcnkgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkg
|
416 |
+
LSBHMzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMu6nFL8eB8aHm8b
|
417 |
+
N3O9+MlrlBIwT/A2R/XQkQr1F8ilYcEWQE37imGQ5XYgwREGfassbqb1EUGO+i2t
|
418 |
+
KmFZpGcmTNDovFJbcCAEWNF6yaRpvIMXZK0Fi7zQWM6NjPXr8EJJC52XJ2cybuGu
|
419 |
+
kxUccLwgTS8Y3pKI6GyFVxEa6X7jJhFUokWWVYPKMIno3Nij7SqAP395ZVc+FSBm
|
420 |
+
CC+Vk7+qRy+oRpfwEuL+wgorUeZ25rdGt+INpsyow0xZVYnm6FNcHOqd8GIWC6fJ
|
421 |
+
Xwzw3sJ2zq/3avL6QaaiMxTJ5Xpj055iN9WFZZ4O5lMkdBteHRJTW8cs54NJOxWu
|
422 |
+
imi5V5cCAwEAATANBgkqhkiG9w0BAQUFAAOCAQEAERSWwauSCPc/L8my/uRan2Te
|
423 |
+
2yFPhpk0djZX3dAVL8WtfxUfN2JzPtTnX84XA9s1+ivbrmAJXx5fj267Cz3qWhMe
|
424 |
+
DGBvtcC1IyIuBwvLqXTLR7sdwdela8wv0kL9Sd2nic9TutoAWii/gt/4uhMdUIaC
|
425 |
+
/Y4wjylGsB49Ndo4YhYYSq3mtlFs3q9i6wHQHiT+eo8SGhJouPtmmRQURVyu565p
|
426 |
+
F4ErWjfJXir0xuKhXFSbplQAz/DxwceYMBo7Nhbbo27q/a2ywtrvAkcTisDxszGt
|
427 |
+
TxzhT5yvDwyd93gN2PQ1VoDat20Xj50egWTh/sVFuq1ruQp6Tk9LhO5L8X3dEQ==
|
428 |
+
-----END CERTIFICATE-----
|
429 |
+
|
430 |
+
Verisign Class 4 Public Primary Certification Authority - G3
|
431 |
+
============================================================
|
432 |
+
|
433 |
+
-----BEGIN CERTIFICATE-----
|
434 |
+
MIIEGjCCAwICEQDsoKeLbnVqAc/EfMwvlF7XMA0GCSqGSIb3DQEBBQUAMIHKMQsw
|
435 |
+
CQYDVQQGEwJVUzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xHzAdBgNVBAsTFlZl
|
436 |
+
cmlTaWduIFRydXN0IE5ldHdvcmsxOjA4BgNVBAsTMShjKSAxOTk5IFZlcmlTaWdu
|
437 |
+
LCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxRTBDBgNVBAMTPFZlcmlT
|
438 |
+
aWduIENsYXNzIDQgUHVibGljIFByaW1hcnkgQ2VydGlmaWNhdGlvbiBBdXRob3Jp
|
439 |
+
dHkgLSBHMzAeFw05OTEwMDEwMDAwMDBaFw0zNjA3MTYyMzU5NTlaMIHKMQswCQYD
|
440 |
+
VQQGEwJVUzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xHzAdBgNVBAsTFlZlcmlT
|
441 |
+
aWduIFRydXN0IE5ldHdvcmsxOjA4BgNVBAsTMShjKSAxOTk5IFZlcmlTaWduLCBJ
|
442 |
+
bmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxRTBDBgNVBAMTPFZlcmlTaWdu
|
443 |
+
IENsYXNzIDQgUHVibGljIFByaW1hcnkgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkg
|
444 |
+
LSBHMzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAK3LpRFpxlmr8Y+1
|
445 |
+
GQ9Wzsy1HyDkniYlS+BzZYlZ3tCD5PUPtbut8XzoIfzk6AzufEUiGXaStBO3IFsJ
|
446 |
+
+mGuqPKljYXCKtbeZjbSmwL0qJJgfJxptI8kHtCGUvYynEFYHiK9zUVilQhu0Gbd
|
447 |
+
U6LM8BDcVHOLBKFGMzNcF0C5nk3T875Vg+ixiY5afJqWIpA7iCXy0lOIAgwLePLm
|
448 |
+
NxdLMEYH5IBtptiWLugs+BGzOA1mppvqySNb247i8xOOGlktqgLw7KSHZtzBP/XY
|
449 |
+
ufTsgsbSPZUd5cBPhMnZo0QoBmrXRazwa2rvTl/4EYIeOGM0ZlDUPpNz+jDDZq3/
|
450 |
+
ky2X7wMCAwEAATANBgkqhkiG9w0BAQUFAAOCAQEAj/ola09b5KROJ1WrIhVZPMq1
|
451 |
+
CtRK26vdoV9TxaBXOcLORyu+OshWv8LZJxA6sQU8wHcxuzrTBXttmhwwjIDLk5Mq
|
452 |
+
g6sFUYICABFna/OIYUdfA5PVWw3g8dShMjWFsjrbsIKr0csKvE+MW8VLADsfKoKm
|
453 |
+
fjaF3H48ZwC15DtS4KjrXRX5xm3wrR0OhbepmnMUWluPQSjA1egtTaRezarZ7c7c
|
454 |
+
2NU8Qh0XwRJdRTjDOPP8hS6DRkiy1yBfkjaP53kPmF6Z6PDQpLv1U70qzlmwr25/
|
455 |
+
bLvSHgCwIe34QWKCudiyxLtGUPMxxY8BqHTr9Xgn2uf3ZkPznoM+IKrDNWCRzg==
|
456 |
+
-----END CERTIFICATE-----
|
457 |
+
|
458 |
+
Equifax Secure Global eBusiness CA
|
459 |
+
==================================
|
460 |
+
|
461 |
+
-----BEGIN CERTIFICATE-----
|
462 |
+
MIICkDCCAfmgAwIBAgIBATANBgkqhkiG9w0BAQQFADBaMQswCQYDVQQGEwJVUzEc
|
463 |
+
MBoGA1UEChMTRXF1aWZheCBTZWN1cmUgSW5jLjEtMCsGA1UEAxMkRXF1aWZheCBT
|
464 |
+
ZWN1cmUgR2xvYmFsIGVCdXNpbmVzcyBDQS0xMB4XDTk5MDYyMTA0MDAwMFoXDTIw
|
465 |
+
MDYyMTA0MDAwMFowWjELMAkGA1UEBhMCVVMxHDAaBgNVBAoTE0VxdWlmYXggU2Vj
|
466 |
+
dXJlIEluYy4xLTArBgNVBAMTJEVxdWlmYXggU2VjdXJlIEdsb2JhbCBlQnVzaW5l
|
467 |
+
c3MgQ0EtMTCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAuucXkAJlsTRVPEnC
|
468 |
+
UdXfp9E3j9HngXNBUmCbnaEXJnitx7HoJpQytd4zjTov2/KaelpzmKNc6fuKcxtc
|
469 |
+
58O/gGzNqfTWK8D3+ZmqY6KxRwIP1ORROhI8bIpaVIRw28HFkM9yRcuoWcDNM50/
|
470 |
+
o5brhTMhHD4ePmBudpxnhcXIw2ECAwEAAaNmMGQwEQYJYIZIAYb4QgEBBAQDAgAH
|
471 |
+
MA8GA1UdEwEB/wQFMAMBAf8wHwYDVR0jBBgwFoAUvqigdHJQa0S3ySPY+6j/s1dr
|
472 |
+
aGwwHQYDVR0OBBYEFL6ooHRyUGtEt8kj2Puo/7NXa2hsMA0GCSqGSIb3DQEBBAUA
|
473 |
+
A4GBADDiAVGqx+pf2rnQZQ8w1j7aDRRJbpGTJxQx78T3LUX47Me/okENI7SS+RkA
|
474 |
+
Z70Br83gcfxaz2TE4JaY0KNA4gGK7ycH8WUBikQtBmV1UsCGECAhX2xrD2yuCRyv
|
475 |
+
8qIYNMR1pHMc8Y3c7635s3a0kr/clRAevsvIO1qEYBlWlKlV
|
476 |
+
-----END CERTIFICATE-----
|
477 |
+
|
478 |
+
Equifax Secure eBusiness CA 1
|
479 |
+
=============================
|
480 |
+
|
481 |
+
-----BEGIN CERTIFICATE-----
|
482 |
+
MIICgjCCAeugAwIBAgIBBDANBgkqhkiG9w0BAQQFADBTMQswCQYDVQQGEwJVUzEc
|
483 |
+
MBoGA1UEChMTRXF1aWZheCBTZWN1cmUgSW5jLjEmMCQGA1UEAxMdRXF1aWZheCBT
|
484 |
+
ZWN1cmUgZUJ1c2luZXNzIENBLTEwHhcNOTkwNjIxMDQwMDAwWhcNMjAwNjIxMDQw
|
485 |
+
MDAwWjBTMQswCQYDVQQGEwJVUzEcMBoGA1UEChMTRXF1aWZheCBTZWN1cmUgSW5j
|
486 |
+
LjEmMCQGA1UEAxMdRXF1aWZheCBTZWN1cmUgZUJ1c2luZXNzIENBLTEwgZ8wDQYJ
|
487 |
+
KoZIhvcNAQEBBQADgY0AMIGJAoGBAM4vGbwXt3fek6lfWg0XTzQaDJj0ItlZ1MRo
|
488 |
+
RvC0NcWFAyDGr0WlIVFFQesWWDYyb+JQYmT5/VGcqiTZ9J2DKocKIdMSODRsjQBu
|
489 |
+
WqDZQu4aIZX5UkxVWsUPOE9G+m34LjXWHXzr4vCwdYDIqROsvojvOm6rXyo4YgKw
|
490 |
+
Env+j6YDAgMBAAGjZjBkMBEGCWCGSAGG+EIBAQQEAwIABzAPBgNVHRMBAf8EBTAD
|
491 |
+
AQH/MB8GA1UdIwQYMBaAFEp4MlIR21kWNl7fwRQ2QGpHfEyhMB0GA1UdDgQWBBRK
|
492 |
+
eDJSEdtZFjZe38EUNkBqR3xMoTANBgkqhkiG9w0BAQQFAAOBgQB1W6ibAxHm6VZM
|
493 |
+
zfmpTMANmvPMZWnmJXbMWbfWVMMdzZmsGd20hdXgPfxiIKeES1hl8eL5lSE/9dR+
|
494 |
+
WB5Hh1Q+WKG1tfgq73HnvMP2sUlG4tega+VWeponmHxGYhTnyfxuAxJ5gDgdSIKN
|
495 |
+
/Bf+KpYrtWKmpj29f5JZzVoqgrI3eQ==
|
496 |
+
-----END CERTIFICATE-----
|
497 |
+
|
498 |
+
Equifax Secure eBusiness CA 2
|
499 |
+
=============================
|
500 |
+
|
501 |
+
-----BEGIN CERTIFICATE-----
|
502 |
+
MIIDIDCCAomgAwIBAgIEN3DPtTANBgkqhkiG9w0BAQUFADBOMQswCQYDVQQGEwJV
|
503 |
+
UzEXMBUGA1UEChMORXF1aWZheCBTZWN1cmUxJjAkBgNVBAsTHUVxdWlmYXggU2Vj
|
504 |
+
dXJlIGVCdXNpbmVzcyBDQS0yMB4XDTk5MDYyMzEyMTQ0NVoXDTE5MDYyMzEyMTQ0
|
505 |
+
NVowTjELMAkGA1UEBhMCVVMxFzAVBgNVBAoTDkVxdWlmYXggU2VjdXJlMSYwJAYD
|
506 |
+
VQQLEx1FcXVpZmF4IFNlY3VyZSBlQnVzaW5lc3MgQ0EtMjCBnzANBgkqhkiG9w0B
|
507 |
+
AQEFAAOBjQAwgYkCgYEA5Dk5kx5SBhsoNviyoynF7Y6yEb3+6+e0dMKP/wXn2Z0G
|
508 |
+
vxLIPw7y1tEkshHe0XMJitSxLJgJDR5QRrKDpkWNYmi7hRsgcDKqQM2mll/EcTc/
|
509 |
+
BPO3QSQ5BxoeLmFYoBIL5aXfxavqN3HMHMg3OrmXUqesxWoklE6ce8/AatbfIb0C
|
510 |
+
AwEAAaOCAQkwggEFMHAGA1UdHwRpMGcwZaBjoGGkXzBdMQswCQYDVQQGEwJVUzEX
|
511 |
+
MBUGA1UEChMORXF1aWZheCBTZWN1cmUxJjAkBgNVBAsTHUVxdWlmYXggU2VjdXJl
|
512 |
+
IGVCdXNpbmVzcyBDQS0yMQ0wCwYDVQQDEwRDUkwxMBoGA1UdEAQTMBGBDzIwMTkw
|
513 |
+
NjIzMTIxNDQ1WjALBgNVHQ8EBAMCAQYwHwYDVR0jBBgwFoAUUJ4L6q9euSBIplBq
|
514 |
+
y/3YIHqngnYwHQYDVR0OBBYEFFCeC+qvXrkgSKZQasv92CB6p4J2MAwGA1UdEwQF
|
515 |
+
MAMBAf8wGgYJKoZIhvZ9B0EABA0wCxsFVjMuMGMDAgbAMA0GCSqGSIb3DQEBBQUA
|
516 |
+
A4GBAAyGgq3oThr1jokn4jVYPSm0B482UJW/bsGe68SQsoWou7dC4A8HOd/7npCy
|
517 |
+
0cE+U58DRLB+S/Rv5Hwf5+Kx5Lia78O9zt4LMjTZ3ijtM2vE1Nc9ElirfQkty3D1
|
518 |
+
E4qUoSek1nDFbZS1yX2doNLGCEnZZpum0/QL3MUmV+GRMOrN
|
519 |
+
-----END CERTIFICATE-----
|
520 |
+
|
521 |
+
Thawte Time Stamping CA
|
522 |
+
=======================
|
523 |
+
|
524 |
+
-----BEGIN CERTIFICATE-----
|
525 |
+
MIICoTCCAgqgAwIBAgIBADANBgkqhkiG9w0BAQQFADCBizELMAkGA1UEBhMCWkEx
|
526 |
+
FTATBgNVBAgTDFdlc3Rlcm4gQ2FwZTEUMBIGA1UEBxMLRHVyYmFudmlsbGUxDzAN
|
527 |
+
BgNVBAoTBlRoYXd0ZTEdMBsGA1UECxMUVGhhd3RlIENlcnRpZmljYXRpb24xHzAd
|
528 |
+
BgNVBAMTFlRoYXd0ZSBUaW1lc3RhbXBpbmcgQ0EwHhcNOTcwMTAxMDAwMDAwWhcN
|
529 |
+
MjAxMjMxMjM1OTU5WjCBizELMAkGA1UEBhMCWkExFTATBgNVBAgTDFdlc3Rlcm4g
|
530 |
+
Q2FwZTEUMBIGA1UEBxMLRHVyYmFudmlsbGUxDzANBgNVBAoTBlRoYXd0ZTEdMBsG
|
531 |
+
A1UECxMUVGhhd3RlIENlcnRpZmljYXRpb24xHzAdBgNVBAMTFlRoYXd0ZSBUaW1l
|
532 |
+
c3RhbXBpbmcgQ0EwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBANYrWHhhRYZT
|
533 |
+
6jR7UZztsOYuGA7+4F+oJ9O0yeB8WU4WDnNUYMF/9p8u6TqFJBU820cEY8OexJQa
|
534 |
+
Wt9MevPZQx08EHp5JduQ/vBR5zDWQQD9nyjfeb6Uu522FOMjhdepQeBMpHmwKxqL
|
535 |
+
8vg7ij5FrHGSALSQQZj7X+36ty6K+Ig3AgMBAAGjEzARMA8GA1UdEwEB/wQFMAMB
|
536 |
+
Af8wDQYJKoZIhvcNAQEEBQADgYEAZ9viwuaHPUCDhjc1fR/OmsMMZiCouqoEiYbC
|
537 |
+
9RAIDb/LogWK0E02PvTX72nGXuSwlG9KuefeW4i2e9vjJ+V2w/A1wcu1J5szedyQ
|
538 |
+
pgCed/r8zSeUQhac0xxo7L9c3eWpexAKMnRUEzGLhQOEkbdYATAUOK8oyvyxUBkZ
|
539 |
+
CayJSdM=
|
540 |
+
-----END CERTIFICATE-----
|
541 |
+
|
542 |
+
thawte Primary Root CA
|
543 |
+
======================
|
544 |
+
|
545 |
+
-----BEGIN CERTIFICATE-----
|
546 |
+
MIIEIDCCAwigAwIBAgIQNE7VVyDV7exJ9C/ON9srbTANBgkqhkiG9w0BAQUFADCB
|
547 |
+
qTELMAkGA1UEBhMCVVMxFTATBgNVBAoTDHRoYXd0ZSwgSW5jLjEoMCYGA1UECxMf
|
548 |
+
Q2VydGlmaWNhdGlvbiBTZXJ2aWNlcyBEaXZpc2lvbjE4MDYGA1UECxMvKGMpIDIw
|
549 |
+
MDYgdGhhd3RlLCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxHzAdBgNV
|
550 |
+
BAMTFnRoYXd0ZSBQcmltYXJ5IFJvb3QgQ0EwHhcNMDYxMTE3MDAwMDAwWhcNMzYw
|
551 |
+
NzE2MjM1OTU5WjCBqTELMAkGA1UEBhMCVVMxFTATBgNVBAoTDHRoYXd0ZSwgSW5j
|
552 |
+
LjEoMCYGA1UECxMfQ2VydGlmaWNhdGlvbiBTZXJ2aWNlcyBEaXZpc2lvbjE4MDYG
|
553 |
+
A1UECxMvKGMpIDIwMDYgdGhhd3RlLCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNl
|
554 |
+
IG9ubHkxHzAdBgNVBAMTFnRoYXd0ZSBQcmltYXJ5IFJvb3QgQ0EwggEiMA0GCSqG
|
555 |
+
SIb3DQEBAQUAA4IBDwAwggEKAoIBAQCsoPD7gFnUnMekz52hWXMJEEUMDSxuaPFs
|
556 |
+
W0hoSVk3/AszGcJ3f8wQLZU0HObrTQmnHNK4yZc2AreJ1CRfBsDMRJSUjQJib+ta
|
557 |
+
3RGNKJpchJAQeg29dGYvajig4tVUROsdB58Hum/u6f1OCyn1PoSgAfGcq/gcfomk
|
558 |
+
6KHYcWUNo1F77rzSImANuVud37r8UVsLr5iy6S7pBOhih94ryNdOwUxkHt3Ph1i6
|
559 |
+
Sk/KaAcdHJ1KxtUvkcx8cXIcxcBn6zL9yZJclNqFwJu/U30rCfSMnZEfl2pSy94J
|
560 |
+
NqR32HuHUETVPm4pafs5SSYeCaWAe0At6+gnhcn+Yf1+5nyXHdWdAgMBAAGjQjBA
|
561 |
+
MA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBR7W0XP
|
562 |
+
r87Lev0xkhpqtvNG61dIUDANBgkqhkiG9w0BAQUFAAOCAQEAeRHAS7ORtvzw6WfU
|
563 |
+
DW5FvlXok9LOAz/t2iWwHVfLHjp2oEzsUHboZHIMpKnxuIvW1oeEuzLlQRHAd9mz
|
564 |
+
YJ3rG9XRbkREqaYB7FViHXe4XI5ISXycO1cRrK1zN44veFyQaEfZYGDm/Ac9IiAX
|
565 |
+
xPcW6cTYcvnIc3zfFi8VqT79aie2oetaupgf1eNNZAqdE8hhuvU5HIe6uL17In/2
|
566 |
+
/qxAeeWsEG89jxt5dovEN7MhGITlNgDrYyCZuen+MwS7QcjBAvlEYyCegc5C09Y/
|
567 |
+
LHbTY5xZ3Y+m4Q6gLkH3LpVHz7z9M/P2C2F+fpErgUfCJzDupxBdN49cOSvkBPB7
|
568 |
+
jVaMaA==
|
569 |
+
-----END CERTIFICATE-----
|
570 |
+
|
571 |
+
VeriSign Class 3 Public Primary Certification Authority - G5
|
572 |
+
============================================================
|
573 |
+
|
574 |
+
-----BEGIN CERTIFICATE-----
|
575 |
+
MIIE0zCCA7ugAwIBAgIQGNrRniZ96LtKIVjNzGs7SjANBgkqhkiG9w0BAQUFADCB
|
576 |
+
yjELMAkGA1UEBhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYDVQQL
|
577 |
+
ExZWZXJpU2lnbiBUcnVzdCBOZXR3b3JrMTowOAYDVQQLEzEoYykgMjAwNiBWZXJp
|
578 |
+
U2lnbiwgSW5jLiAtIEZvciBhdXRob3JpemVkIHVzZSBvbmx5MUUwQwYDVQQDEzxW
|
579 |
+
ZXJpU2lnbiBDbGFzcyAzIFB1YmxpYyBQcmltYXJ5IENlcnRpZmljYXRpb24gQXV0
|
580 |
+
aG9yaXR5IC0gRzUwHhcNMDYxMTA4MDAwMDAwWhcNMzYwNzE2MjM1OTU5WjCByjEL
|
581 |
+
MAkGA1UEBhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYDVQQLExZW
|
582 |
+
ZXJpU2lnbiBUcnVzdCBOZXR3b3JrMTowOAYDVQQLEzEoYykgMjAwNiBWZXJpU2ln
|
583 |
+
biwgSW5jLiAtIEZvciBhdXRob3JpemVkIHVzZSBvbmx5MUUwQwYDVQQDEzxWZXJp
|
584 |
+
U2lnbiBDbGFzcyAzIFB1YmxpYyBQcmltYXJ5IENlcnRpZmljYXRpb24gQXV0aG9y
|
585 |
+
aXR5IC0gRzUwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCvJAgIKXo1
|
586 |
+
nmAMqudLO07cfLw8RRy7K+D+KQL5VwijZIUVJ/XxrcgxiV0i6CqqpkKzj/i5Vbex
|
587 |
+
t0uz/o9+B1fs70PbZmIVYc9gDaTY3vjgw2IIPVQT60nKWVSFJuUrjxuf6/WhkcIz
|
588 |
+
SdhDY2pSS9KP6HBRTdGJaXvHcPaz3BJ023tdS1bTlr8Vd6Gw9KIl8q8ckmcY5fQG
|
589 |
+
BO+QueQA5N06tRn/Arr0PO7gi+s3i+z016zy9vA9r911kTMZHRxAy3QkGSGT2RT+
|
590 |
+
rCpSx4/VBEnkjWNHiDxpg8v+R70rfk/Fla4OndTRQ8Bnc+MUCH7lP59zuDMKz10/
|
591 |
+
NIeWiu5T6CUVAgMBAAGjgbIwga8wDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8E
|
592 |
+
BAMCAQYwbQYIKwYBBQUHAQwEYTBfoV2gWzBZMFcwVRYJaW1hZ2UvZ2lmMCEwHzAH
|
593 |
+
BgUrDgMCGgQUj+XTGoasjY5rw8+AatRIGCx7GS4wJRYjaHR0cDovL2xvZ28udmVy
|
594 |
+
aXNpZ24uY29tL3ZzbG9nby5naWYwHQYDVR0OBBYEFH/TZafC3ey78DAJ80M5+gKv
|
595 |
+
MzEzMA0GCSqGSIb3DQEBBQUAA4IBAQCTJEowX2LP2BqYLz3q3JktvXf2pXkiOOzE
|
596 |
+
p6B4Eq1iDkVwZMXnl2YtmAl+X6/WzChl8gGqCBpH3vn5fJJaCGkgDdk+bW48DW7Y
|
597 |
+
5gaRQBi5+MHt39tBquCWIMnNZBU4gcmU7qKEKQsTb47bDN0lAtukixlE0kF6BWlK
|
598 |
+
WE9gyn6CagsCqiUXObXbf+eEZSqVir2G3l6BFoMtEMze/aiCKm0oHw0LxOXnGiYZ
|
599 |
+
4fQRbxC1lfznQgUy286dUV4otp6F01vvpX1FQHKOtw5rDgb7MzVIcbidJ4vEZV8N
|
600 |
+
hnacRHr2lVz2XTIIM6RUthg/aFzyQkqFOFSDX9HoLPKsEdao7WNq
|
601 |
+
-----END CERTIFICATE-----
|
602 |
+
|
603 |
+
Entrust.net Secure Server Certification Authority
|
604 |
+
=================================================
|
605 |
+
|
606 |
+
-----BEGIN CERTIFICATE-----
|
607 |
+
MIIE2DCCBEGgAwIBAgIEN0rSQzANBgkqhkiG9w0BAQUFADCBwzELMAkGA1UEBhMC
|
608 |
+
VVMxFDASBgNVBAoTC0VudHJ1c3QubmV0MTswOQYDVQQLEzJ3d3cuZW50cnVzdC5u
|
609 |
+
ZXQvQ1BTIGluY29ycC4gYnkgcmVmLiAobGltaXRzIGxpYWIuKTElMCMGA1UECxMc
|
610 |
+
KGMpIDE5OTkgRW50cnVzdC5uZXQgTGltaXRlZDE6MDgGA1UEAxMxRW50cnVzdC5u
|
611 |
+
ZXQgU2VjdXJlIFNlcnZlciBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAeFw05OTA1
|
612 |
+
MjUxNjA5NDBaFw0xOTA1MjUxNjM5NDBaMIHDMQswCQYDVQQGEwJVUzEUMBIGA1UE
|
613 |
+
ChMLRW50cnVzdC5uZXQxOzA5BgNVBAsTMnd3dy5lbnRydXN0Lm5ldC9DUFMgaW5j
|
614 |
+
b3JwLiBieSByZWYuIChsaW1pdHMgbGlhYi4pMSUwIwYDVQQLExwoYykgMTk5OSBF
|
615 |
+
bnRydXN0Lm5ldCBMaW1pdGVkMTowOAYDVQQDEzFFbnRydXN0Lm5ldCBTZWN1cmUg
|
616 |
+
U2VydmVyIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MIGdMA0GCSqGSIb3DQEBAQUA
|
617 |
+
A4GLADCBhwKBgQDNKIM0VBuJ8w+vN5Ex/68xYMmo6LIQaO2f55M28Qpku0f1BBc/
|
618 |
+
I0dNxScZgSYMVHINiC3ZH5oSn7yzcdOAGT9HZnuMNSjSuQrfJNqc1lB5gXpa0zf3
|
619 |
+
wkrYKZImZNHkmGw6AIr1NJtl+O3jEP/9uElY3KDegjlrgbEWGWG5VLbmQwIBA6OC
|
620 |
+
AdcwggHTMBEGCWCGSAGG+EIBAQQEAwIABzCCARkGA1UdHwSCARAwggEMMIHeoIHb
|
621 |
+
oIHYpIHVMIHSMQswCQYDVQQGEwJVUzEUMBIGA1UEChMLRW50cnVzdC5uZXQxOzA5
|
622 |
+
BgNVBAsTMnd3dy5lbnRydXN0Lm5ldC9DUFMgaW5jb3JwLiBieSByZWYuIChsaW1p
|
623 |
+
dHMgbGlhYi4pMSUwIwYDVQQLExwoYykgMTk5OSBFbnRydXN0Lm5ldCBMaW1pdGVk
|
624 |
+
MTowOAYDVQQDEzFFbnRydXN0Lm5ldCBTZWN1cmUgU2VydmVyIENlcnRpZmljYXRp
|
625 |
+
b24gQXV0aG9yaXR5MQ0wCwYDVQQDEwRDUkwxMCmgJ6AlhiNodHRwOi8vd3d3LmVu
|
626 |
+
dHJ1c3QubmV0L0NSTC9uZXQxLmNybDArBgNVHRAEJDAigA8xOTk5MDUyNTE2MDk0
|
627 |
+
MFqBDzIwMTkwNTI1MTYwOTQwWjALBgNVHQ8EBAMCAQYwHwYDVR0jBBgwFoAU8Bdi
|
628 |
+
E1U9s/8KAGv7UISX8+1i0BowHQYDVR0OBBYEFPAXYhNVPbP/CgBr+1CEl/PtYtAa
|
629 |
+
MAwGA1UdEwQFMAMBAf8wGQYJKoZIhvZ9B0EABAwwChsEVjQuMAMCBJAwDQYJKoZI
|
630 |
+
hvcNAQEFBQADgYEAkNwwAvpkdMKnCqV8IY00F6j7Rw7/JXyNEwr75Ji174z4xRAN
|
631 |
+
95K+8cPV1ZVqBLssziY2ZcgxxufuP+NXdYR6Ee9GTxj005i7qIcyunL2POI9n9cd
|
632 |
+
2cNgQ4xYDiKWL2KjLB+6rQXvqzJ4h6BUcxm1XAX5Uj5tLUUL9wqT6u0G+bI=
|
633 |
+
-----END CERTIFICATE-----
|
634 |
+
|
635 |
+
Go Daddy Certification Authority Root Certificate Bundle
|
636 |
+
========================================================
|
637 |
+
|
638 |
+
-----BEGIN CERTIFICATE-----
|
639 |
+
MIIE3jCCA8agAwIBAgICAwEwDQYJKoZIhvcNAQEFBQAwYzELMAkGA1UEBhMCVVMx
|
640 |
+
ITAfBgNVBAoTGFRoZSBHbyBEYWRkeSBHcm91cCwgSW5jLjExMC8GA1UECxMoR28g
|
641 |
+
RGFkZHkgQ2xhc3MgMiBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAeFw0wNjExMTYw
|
642 |
+
MTU0MzdaFw0yNjExMTYwMTU0MzdaMIHKMQswCQYDVQQGEwJVUzEQMA4GA1UECBMH
|
643 |
+
QXJpem9uYTETMBEGA1UEBxMKU2NvdHRzZGFsZTEaMBgGA1UEChMRR29EYWRkeS5j
|
644 |
+
b20sIEluYy4xMzAxBgNVBAsTKmh0dHA6Ly9jZXJ0aWZpY2F0ZXMuZ29kYWRkeS5j
|
645 |
+
b20vcmVwb3NpdG9yeTEwMC4GA1UEAxMnR28gRGFkZHkgU2VjdXJlIENlcnRpZmlj
|
646 |
+
YXRpb24gQXV0aG9yaXR5MREwDwYDVQQFEwgwNzk2OTI4NzCCASIwDQYJKoZIhvcN
|
647 |
+
AQEBBQADggEPADCCAQoCggEBAMQt1RWMnCZM7DI161+4WQFapmGBWTtwY6vj3D3H
|
648 |
+
KrjJM9N55DrtPDAjhI6zMBS2sofDPZVUBJ7fmd0LJR4h3mUpfjWoqVTr9vcyOdQm
|
649 |
+
VZWt7/v+WIbXnvQAjYwqDL1CBM6nPwT27oDyqu9SoWlm2r4arV3aLGbqGmu75RpR
|
650 |
+
SgAvSMeYddi5Kcju+GZtCpyz8/x4fKL4o/K1w/O5epHBp+YlLpyo7RJlbmr2EkRT
|
651 |
+
cDCVw5wrWCs9CHRK8r5RsL+H0EwnWGu1NcWdrxcx+AuP7q2BNgWJCJjPOq8lh8BJ
|
652 |
+
6qf9Z/dFjpfMFDniNoW1fho3/Rb2cRGadDAW/hOUoz+EDU8CAwEAAaOCATIwggEu
|
653 |
+
MB0GA1UdDgQWBBT9rGEyk2xF1uLuhV+auud2mWjM5zAfBgNVHSMEGDAWgBTSxLDS
|
654 |
+
kdRMEXGzYcs9of7dqGrU4zASBgNVHRMBAf8ECDAGAQH/AgEAMDMGCCsGAQUFBwEB
|
655 |
+
BCcwJTAjBggrBgEFBQcwAYYXaHR0cDovL29jc3AuZ29kYWRkeS5jb20wRgYDVR0f
|
656 |
+
BD8wPTA7oDmgN4Y1aHR0cDovL2NlcnRpZmljYXRlcy5nb2RhZGR5LmNvbS9yZXBv
|
657 |
+
c2l0b3J5L2dkcm9vdC5jcmwwSwYDVR0gBEQwQjBABgRVHSAAMDgwNgYIKwYBBQUH
|
658 |
+
AgEWKmh0dHA6Ly9jZXJ0aWZpY2F0ZXMuZ29kYWRkeS5jb20vcmVwb3NpdG9yeTAO
|
659 |
+
BgNVHQ8BAf8EBAMCAQYwDQYJKoZIhvcNAQEFBQADggEBANKGwOy9+aG2Z+5mC6IG
|
660 |
+
OgRQjhVyrEp0lVPLN8tESe8HkGsz2ZbwlFalEzAFPIUyIXvJxwqoJKSQ3kbTJSMU
|
661 |
+
A2fCENZvD117esyfxVgqwcSeIaha86ykRvOe5GPLL5CkKSkB2XIsKd83ASe8T+5o
|
662 |
+
0yGPwLPk9Qnt0hCqU7S+8MxZC9Y7lhyVJEnfzuz9p0iRFEUOOjZv2kWzRaJBydTX
|
663 |
+
RE4+uXR21aITVSzGh6O1mawGhId/dQb8vxRMDsxuxN89txJx9OjxUUAiKEngHUuH
|
664 |
+
qDTMBqLdElrRhjZkAzVvb3du6/KFUJheqwNTrZEjYx8WnM25sgVjOuH0aBsXBTWV
|
665 |
+
U+4=
|
666 |
+
-----END CERTIFICATE-----
|
667 |
+
-----BEGIN CERTIFICATE-----
|
668 |
+
MIIE+zCCBGSgAwIBAgICAQ0wDQYJKoZIhvcNAQEFBQAwgbsxJDAiBgNVBAcTG1Zh
|
669 |
+
bGlDZXJ0IFZhbGlkYXRpb24gTmV0d29yazEXMBUGA1UEChMOVmFsaUNlcnQsIElu
|
670 |
+
Yy4xNTAzBgNVBAsTLFZhbGlDZXJ0IENsYXNzIDIgUG9saWN5IFZhbGlkYXRpb24g
|
671 |
+
QXV0aG9yaXR5MSEwHwYDVQQDExhodHRwOi8vd3d3LnZhbGljZXJ0LmNvbS8xIDAe
|
672 |
+
BgkqhkiG9w0BCQEWEWluZm9AdmFsaWNlcnQuY29tMB4XDTA0MDYyOTE3MDYyMFoX
|
673 |
+
DTI0MDYyOTE3MDYyMFowYzELMAkGA1UEBhMCVVMxITAfBgNVBAoTGFRoZSBHbyBE
|
674 |
+
YWRkeSBHcm91cCwgSW5jLjExMC8GA1UECxMoR28gRGFkZHkgQ2xhc3MgMiBDZXJ0
|
675 |
+
aWZpY2F0aW9uIEF1dGhvcml0eTCCASAwDQYJKoZIhvcNAQEBBQADggENADCCAQgC
|
676 |
+
ggEBAN6d1+pXGEmhW+vXX0iG6r7d/+TvZxz0ZWizV3GgXne77ZtJ6XCAPVYYYwhv
|
677 |
+
2vLM0D9/AlQiVBDYsoHUwHU9S3/Hd8M+eKsaA7Ugay9qK7HFiH7Eux6wwdhFJ2+q
|
678 |
+
N1j3hybX2C32qRe3H3I2TqYXP2WYktsqbl2i/ojgC95/5Y0V4evLOtXiEqITLdiO
|
679 |
+
r18SPaAIBQi2XKVlOARFmR6jYGB0xUGlcmIbYsUfb18aQr4CUWWoriMYavx4A6lN
|
680 |
+
f4DD+qta/KFApMoZFv6yyO9ecw3ud72a9nmYvLEHZ6IVDd2gWMZEewo+YihfukEH
|
681 |
+
U1jPEX44dMX4/7VpkI+EdOqXG68CAQOjggHhMIIB3TAdBgNVHQ4EFgQU0sSw0pHU
|
682 |
+
TBFxs2HLPaH+3ahq1OMwgdIGA1UdIwSByjCBx6GBwaSBvjCBuzEkMCIGA1UEBxMb
|
683 |
+
VmFsaUNlcnQgVmFsaWRhdGlvbiBOZXR3b3JrMRcwFQYDVQQKEw5WYWxpQ2VydCwg
|
684 |
+
SW5jLjE1MDMGA1UECxMsVmFsaUNlcnQgQ2xhc3MgMiBQb2xpY3kgVmFsaWRhdGlv
|
685 |
+
biBBdXRob3JpdHkxITAfBgNVBAMTGGh0dHA6Ly93d3cudmFsaWNlcnQuY29tLzEg
|
686 |
+
MB4GCSqGSIb3DQEJARYRaW5mb0B2YWxpY2VydC5jb22CAQEwDwYDVR0TAQH/BAUw
|
687 |
+
AwEB/zAzBggrBgEFBQcBAQQnMCUwIwYIKwYBBQUHMAGGF2h0dHA6Ly9vY3NwLmdv
|
688 |
+
ZGFkZHkuY29tMEQGA1UdHwQ9MDswOaA3oDWGM2h0dHA6Ly9jZXJ0aWZpY2F0ZXMu
|
689 |
+
Z29kYWRkeS5jb20vcmVwb3NpdG9yeS9yb290LmNybDBLBgNVHSAERDBCMEAGBFUd
|
690 |
+
IAAwODA2BggrBgEFBQcCARYqaHR0cDovL2NlcnRpZmljYXRlcy5nb2RhZGR5LmNv
|
691 |
+
bS9yZXBvc2l0b3J5MA4GA1UdDwEB/wQEAwIBBjANBgkqhkiG9w0BAQUFAAOBgQC1
|
692 |
+
QPmnHfbq/qQaQlpE9xXUhUaJwL6e4+PrxeNYiY+Sn1eocSxI0YGyeR+sBjUZsE4O
|
693 |
+
WBsUs5iB0QQeyAfJg594RAoYC5jcdnplDQ1tgMQLARzLrUc+cb53S8wGd9D0Vmsf
|
694 |
+
SxOaFIqII6hR8INMqzW/Rn453HWkrugp++85j09VZw==
|
695 |
+
-----END CERTIFICATE-----
|
696 |
+
-----BEGIN CERTIFICATE-----
|
697 |
+
MIIC5zCCAlACAQEwDQYJKoZIhvcNAQEFBQAwgbsxJDAiBgNVBAcTG1ZhbGlDZXJ0
|
698 |
+
IFZhbGlkYXRpb24gTmV0d29yazEXMBUGA1UEChMOVmFsaUNlcnQsIEluYy4xNTAz
|
699 |
+
BgNVBAsTLFZhbGlDZXJ0IENsYXNzIDIgUG9saWN5IFZhbGlkYXRpb24gQXV0aG9y
|
700 |
+
aXR5MSEwHwYDVQQDExhodHRwOi8vd3d3LnZhbGljZXJ0LmNvbS8xIDAeBgkqhkiG
|
701 |
+
9w0BCQEWEWluZm9AdmFsaWNlcnQuY29tMB4XDTk5MDYyNjAwMTk1NFoXDTE5MDYy
|
702 |
+
NjAwMTk1NFowgbsxJDAiBgNVBAcTG1ZhbGlDZXJ0IFZhbGlkYXRpb24gTmV0d29y
|
703 |
+
azEXMBUGA1UEChMOVmFsaUNlcnQsIEluYy4xNTAzBgNVBAsTLFZhbGlDZXJ0IENs
|
704 |
+
YXNzIDIgUG9saWN5IFZhbGlkYXRpb24gQXV0aG9yaXR5MSEwHwYDVQQDExhodHRw
|
705 |
+
Oi8vd3d3LnZhbGljZXJ0LmNvbS8xIDAeBgkqhkiG9w0BCQEWEWluZm9AdmFsaWNl
|
706 |
+
cnQuY29tMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDOOnHK5avIWZJV16vY
|
707 |
+
dA757tn2VUdZZUcOBVXc65g2PFxTXdMwzzjsvUGJ7SVCCSRrCl6zfN1SLUzm1NZ9
|
708 |
+
WlmpZdRJEy0kTRxQb7XBhVQ7/nHk01xC+YDgkRoKWzk2Z/M/VXwbP7RfZHM047QS
|
709 |
+
v4dk+NoS/zcnwbNDu+97bi5p9wIDAQABMA0GCSqGSIb3DQEBBQUAA4GBADt/UG9v
|
710 |
+
UJSZSWI4OB9L+KXIPqeCgfYrx+jFzug6EILLGACOTb2oWH+heQC1u+mNr0HZDzTu
|
711 |
+
IYEZoDJJKPTEjlbVUjP9UNV+mWwD5MlM/Mtsq2azSiGM5bUMMj4QssxsodyamEwC
|
712 |
+
W/POuZ6lcg5Ktz885hZo+L7tdEy8W9ViH0Pd
|
713 |
+
-----END CERTIFICATE-----
|
714 |
+
|
715 |
+
GeoTrust Global CA
|
716 |
+
==================
|
717 |
+
|
718 |
+
-----BEGIN CERTIFICATE-----
|
719 |
+
MIIDfTCCAuagAwIBAgIDErvmMA0GCSqGSIb3DQEBBQUAME4xCzAJBgNVBAYTAlVT
|
720 |
+
MRAwDgYDVQQKEwdFcXVpZmF4MS0wKwYDVQQLEyRFcXVpZmF4IFNlY3VyZSBDZXJ0
|
721 |
+
aWZpY2F0ZSBBdXRob3JpdHkwHhcNMDIwNTIxMDQwMDAwWhcNMTgwODIxMDQwMDAw
|
722 |
+
WjBCMQswCQYDVQQGEwJVUzEWMBQGA1UEChMNR2VvVHJ1c3QgSW5jLjEbMBkGA1UE
|
723 |
+
AxMSR2VvVHJ1c3QgR2xvYmFsIENBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIB
|
724 |
+
CgKCAQEA2swYYzD99BcjGlZ+W988bDjkcbd4kdS8odhM+KhDtgPpTSEHCIjaWC9m
|
725 |
+
OSm9BXiLnTjoBbdqfnGk5sRgprDvgOSJKA+eJdbtg/OtppHHmMlCGDUUna2YRpIu
|
726 |
+
T8rxh0PBFpVXLVDviS2Aelet8u5fa9IAjbkU+BQVNdnARqN7csiRv8lVK83Qlz6c
|
727 |
+
JmTM386DGXHKTubU1XupGc1V3sjs0l44U+VcT4wt/lAjNvxm5suOpDkZALeVAjmR
|
728 |
+
Cw7+OC7RHQWa9k0+bw8HHa8sHo9gOeL6NlMTOdReJivbPagUvTLrGAMoUgRx5asz
|
729 |
+
PeE4uwc2hGKceeoWMPRfwCvocWvk+QIDAQABo4HwMIHtMB8GA1UdIwQYMBaAFEjm
|
730 |
+
aPkr0rKV10fYIyAQTzOYkJ/UMB0GA1UdDgQWBBTAephojYn7qwVkDBF9qn1luMrM
|
731 |
+
TjAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBBjA6BgNVHR8EMzAxMC+g
|
732 |
+
LaArhilodHRwOi8vY3JsLmdlb3RydXN0LmNvbS9jcmxzL3NlY3VyZWNhLmNybDBO
|
733 |
+
BgNVHSAERzBFMEMGBFUdIAAwOzA5BggrBgEFBQcCARYtaHR0cHM6Ly93d3cuZ2Vv
|
734 |
+
dHJ1c3QuY29tL3Jlc291cmNlcy9yZXBvc2l0b3J5MA0GCSqGSIb3DQEBBQUAA4GB
|
735 |
+
AHbhEm5OSxYShjAGsoEIz/AIx8dxfmbuwu3UOx//8PDITtZDOLC5MH0Y0FWDomrL
|
736 |
+
NhGc6Ehmo21/uBPUR/6LWlxz/K7ZGzIZOKuXNBSqltLroxwUCEm2u+WR74M26x1W
|
737 |
+
b8ravHNjkOR/ez4iyz0H7V84dJzjA1BOoa+Y7mHyhD8S
|
738 |
+
-----END CERTIFICATE-----
|
overwrite/ga_overwrite.php
CHANGED
File without changes
|
readme.txt
CHANGED
@@ -3,7 +3,7 @@ Contributors: ShareThis
|
|
3 |
Tags: analytics, dashboard, google, google analytics, google analytics plugin, javascript, marketing, pageviews, statistics, stats, tracking, visits, web stats, widget, analytics dashboard, google analytics dashboard, google analytics widget, google analytics dashboard
|
4 |
Requires at least: 3.8
|
5 |
Tested up to: 4.7.2
|
6 |
-
Stable tag: 2.1
|
7 |
|
8 |
Use Google Analytics on your Wordpress site without touching any code, and view visitor reports right in your Wordpress admin dashboard!
|
9 |
|
@@ -33,7 +33,7 @@ If you don't have a Google Analytics account, you can sign up for free here: htt
|
|
33 |
By downloading and installing this plugin you are agreeing to the <a href="http://www.sharethis.com/privacy/" target="_blank">Privacy Policy</a> and <a href="http://www.sharethis.com/publisher-terms-of-use/" target="_blank">Terms of Service</a>.
|
34 |
|
35 |
= Support =
|
36 |
-
If you have any questions please let us know directly at support@googleanalytics.zendesk.com or create a new topic within our support portal here:
|
37 |
|
38 |
== Installation ==
|
39 |
|
@@ -57,7 +57,8 @@ This is likely caused by AdBlocker that is blocking anything related to "google
|
|
57 |
It learns about your traffic patterns to spot "spikes" of visitors and then sends an alert. If your website doesn't have good amount of visitors you might not see any Trending Content Alerts because the algorithm needs more data to see "trends".
|
58 |
|
59 |
= I have other questions, where I can get support or provide feedback? =
|
60 |
-
If you have any questions please let us know directly at support@googleanalytics.zendesk.com or create a new topic within our support portal here:
|
|
|
61 |
|
62 |
== Screenshots ==
|
63 |
|
@@ -70,6 +71,17 @@ If you have any questions please let us know directly at support@googleanalytics
|
|
70 |
|
71 |
== Changelog ==
|
72 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
73 |
= 2.1 =
|
74 |
* NEW: Trending Content - trending content shows you a list of content that is performing better than average
|
75 |
* NEW: Alerts - option to sign up for alerts via email or Slack when your content is taking off
|
3 |
Tags: analytics, dashboard, google, google analytics, google analytics plugin, javascript, marketing, pageviews, statistics, stats, tracking, visits, web stats, widget, analytics dashboard, google analytics dashboard, google analytics widget, google analytics dashboard
|
4 |
Requires at least: 3.8
|
5 |
Tested up to: 4.7.2
|
6 |
+
Stable tag: 2.1.2
|
7 |
|
8 |
Use Google Analytics on your Wordpress site without touching any code, and view visitor reports right in your Wordpress admin dashboard!
|
9 |
|
33 |
By downloading and installing this plugin you are agreeing to the <a href="http://www.sharethis.com/privacy/" target="_blank">Privacy Policy</a> and <a href="http://www.sharethis.com/publisher-terms-of-use/" target="_blank">Terms of Service</a>.
|
34 |
|
35 |
= Support =
|
36 |
+
If you have any questions please let us know directly at support@googleanalytics.zendesk.com or create a new topic within our support portal here: <a href=”https://googleanalytics.zendesk.com/hc/en-us/community/posts/new> https://googleanalytics.zendesk.com/hc/en-us/community/posts/new</a>
|
37 |
|
38 |
== Installation ==
|
39 |
|
57 |
It learns about your traffic patterns to spot "spikes" of visitors and then sends an alert. If your website doesn't have good amount of visitors you might not see any Trending Content Alerts because the algorithm needs more data to see "trends".
|
58 |
|
59 |
= I have other questions, where I can get support or provide feedback? =
|
60 |
+
If you have any questions please let us know directly at support@googleanalytics.zendesk.com or create a new topic within our support portal here: <a href=”https://googleanalytics.zendesk.com/hc/en-us/community/posts/new> https://googleanalytics.zendesk.com/hc/en-us/community/posts/new</a>
|
61 |
+
We are always happy to help.
|
62 |
|
63 |
== Screenshots ==
|
64 |
|
71 |
|
72 |
== Changelog ==
|
73 |
|
74 |
+
= 2.1.2 =
|
75 |
+
* Fixed authentication error issue experienced by some users.
|
76 |
+
* Added re-authentication button for easier changing or relinking of Google Analytics accounts.
|
77 |
+
* Added “Send Debug” button for faster technical troubleshooting.
|
78 |
+
* Added refresh button for Google Analytics within dashboard.
|
79 |
+
* Included new alert for missing Google Analytics account.
|
80 |
+
* Included new alert for unsupported PHP version.
|
81 |
+
|
82 |
+
= 2.1.1 =
|
83 |
+
* Reduced requests to Google API to help with Google Analytics quotas
|
84 |
+
|
85 |
= 2.1 =
|
86 |
* NEW: Trending Content - trending content shows you a list of content that is performing better than average
|
87 |
* NEW: Alerts - option to sign up for alerts via email or Slack when your content is taking off
|
screenshot-3.png
CHANGED
File without changes
|
screenshot-4.png
CHANGED
File without changes
|
screenshot-5.png
CHANGED
File without changes
|
tools/class-support-logging.php
ADDED
@@ -0,0 +1,161 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
|
4 |
+
class Ga_SupportLogger {
|
5 |
+
|
6 |
+
const EMAIL = 'support@googleanalytics.zendesk.com';
|
7 |
+
const LOG_OPTION = 'googleanalytics_sherethis_error_log';
|
8 |
+
|
9 |
+
static $debug_info;
|
10 |
+
/**
|
11 |
+
* Constructor.
|
12 |
+
* @return void
|
13 |
+
*/
|
14 |
+
public function __construct() {
|
15 |
+
add_action( 'st_support_show_button', array( $this, 'display_button' ) );
|
16 |
+
add_action( 'st_support_save_error', array( $this, 'save_error' ) );
|
17 |
+
$this->get_debug_body();
|
18 |
+
}
|
19 |
+
|
20 |
+
public static function send_email() {
|
21 |
+
$email = !empty( $_POST[ 'email' ] ) ? sanitize_text_field( $_POST[ 'email' ] ) : '';
|
22 |
+
$description = !empty( $_POST[ 'description' ] ) ? __( 'Description of the issue:' ). PHP_EOL . PHP_EOL . sanitize_text_field( $_POST[ 'description' ] ) . PHP_EOL . PHP_EOL : '';
|
23 |
+
|
24 |
+
if ( !is_email( $email ) ) {
|
25 |
+
$response['error'] = 'Don\'t forget to provide your email address!';
|
26 |
+
}
|
27 |
+
else if ( wp_mail( self::EMAIL, __( 'Debug Report' ), $description . self::$debug_info, 'From: ' . $email ) ) {
|
28 |
+
$response['success'] = 'Success! Thank you for sending your debug report, you should receive a confirmation email from us. If you don\'t, please email us directly at <a href="mailto:support@googleanalytics.zendesk.com">support@googleanalytics.zendesk.com</a>.';
|
29 |
+
} else {
|
30 |
+
$response['error'] = 'Oops! Looks like we weren\'t able to send the email. Please copy and paste the "debug info" into your favorite email client to: <a href="mailto:support@googleanalytics.zendesk.com">support@googleanalytics.zendesk.com</a>. We hope to help soon!';
|
31 |
+
}
|
32 |
+
|
33 |
+
echo wp_json_encode( $response );
|
34 |
+
wp_die();
|
35 |
+
}
|
36 |
+
|
37 |
+
/**
|
38 |
+
* Displays a button to email the debugging info.
|
39 |
+
* @return void
|
40 |
+
*/
|
41 |
+
public function display_button() {
|
42 |
+
printf(
|
43 |
+
'<a href="%s" class="button button-secondary" target="_blank">Send Debugging Info</a>',
|
44 |
+
esc_url( $this->get_mail_link() )
|
45 |
+
);
|
46 |
+
}
|
47 |
+
|
48 |
+
|
49 |
+
/**
|
50 |
+
* Saves an error to the log.
|
51 |
+
* @param Exception $err Error to save.
|
52 |
+
* @return void
|
53 |
+
*/
|
54 |
+
public function save_error( Exception $err ) {
|
55 |
+
$cur_log = get_option( self::LOG_OPTION, array() );
|
56 |
+
|
57 |
+
// Creates the error object.
|
58 |
+
$new_log = array(
|
59 |
+
'message' => $err->getMessage(),
|
60 |
+
'stack' => $err->getTraceAsString(),
|
61 |
+
'date' => current_time( 'r' ),
|
62 |
+
);
|
63 |
+
|
64 |
+
if ( method_exists( $err, 'get_google_error_response' ) ) {
|
65 |
+
$new_log['response'] = $err->get_google_error_response();
|
66 |
+
}
|
67 |
+
|
68 |
+
$cur_log[] = $new_log;
|
69 |
+
|
70 |
+
// Cap the log at 20 entries for space purposes.
|
71 |
+
if ( count( $cur_log ) > 20 ) {
|
72 |
+
array_pop( $cur_log );
|
73 |
+
}
|
74 |
+
|
75 |
+
// Save.
|
76 |
+
update_option( self::LOG_OPTION, $cur_log );
|
77 |
+
}
|
78 |
+
|
79 |
+
public function get_debug_body(){
|
80 |
+
$body = 'Debug Info:' . PHP_EOL . PHP_EOL;
|
81 |
+
$body .= implode( $this->get_debug_info(), PHP_EOL );
|
82 |
+
$body .= PHP_EOL . PHP_EOL . 'Error Log:' . PHP_EOL . PHP_EOL;
|
83 |
+
$body .= $this->get_formatted_log();
|
84 |
+
self::$debug_info = $body;
|
85 |
+
}
|
86 |
+
|
87 |
+
/**
|
88 |
+
* Returns a string used for providing an email link.
|
89 |
+
* @return string
|
90 |
+
*/
|
91 |
+
private function get_mail_link() {
|
92 |
+
|
93 |
+
$body = 'DESCRIBE ISSUE HERE:' . str_repeat( '%0A', 10 );
|
94 |
+
$body .= 'Debug Info:%0A%0A';
|
95 |
+
$body .= implode( $this->get_debug_info(), '%0A' );
|
96 |
+
$body .= '%0A%0AError Log:%0A%0A';
|
97 |
+
$body .= str_replace( "\n", '%0A', $this->get_formatted_log() );
|
98 |
+
|
99 |
+
return add_query_arg( array(
|
100 |
+
'subject' => __( 'Debug Report' ),
|
101 |
+
'body' => $body,
|
102 |
+
), 'mailto:' . self::EMAIL );
|
103 |
+
}
|
104 |
+
|
105 |
+
|
106 |
+
/**
|
107 |
+
* Gets an array of debugging information about the current system.
|
108 |
+
* @return array
|
109 |
+
*/
|
110 |
+
private function get_debug_info() {
|
111 |
+
$theme = wp_get_theme();
|
112 |
+
$plugins = wp_get_active_and_valid_plugins();
|
113 |
+
|
114 |
+
$data = array(
|
115 |
+
'Plugin Version' => GOOGLEANALYTICS_VERSION,
|
116 |
+
'WordPress Version' => get_bloginfo( 'version' ),
|
117 |
+
'PHP Version' => phpversion(),
|
118 |
+
'Site URL' => get_bloginfo( 'wpurl' ),
|
119 |
+
'Theme Name' => $theme->get( 'Name' ),
|
120 |
+
'Theme URL' => $theme->get( 'ThemeURI' ),
|
121 |
+
'Theme Version' => $theme->get( 'Version' ),
|
122 |
+
'Active Plugins' => implode( $plugins, ', ' ),
|
123 |
+
'Operating System' => php_uname(),
|
124 |
+
'Web Server' => $_SERVER['SERVER_SOFTWARE'],
|
125 |
+
'Current Time' => current_time( 'r' ),
|
126 |
+
'Browser' => $_SERVER['HTTP_USER_AGENT'],
|
127 |
+
);
|
128 |
+
$formatted = array();
|
129 |
+
foreach ( $data as $text => $value ) {
|
130 |
+
$formatted[] = sprintf(
|
131 |
+
__( $text ) . ': %s',
|
132 |
+
$value
|
133 |
+
);
|
134 |
+
}
|
135 |
+
return $formatted;
|
136 |
+
}
|
137 |
+
|
138 |
+
|
139 |
+
/**
|
140 |
+
* Gets a string of formatted error log entries.
|
141 |
+
* @return string
|
142 |
+
*/
|
143 |
+
private function get_formatted_log() {
|
144 |
+
$log = get_option( self::LOG_OPTION );
|
145 |
+
if ( ! $log ) {
|
146 |
+
return 'None';
|
147 |
+
}
|
148 |
+
|
149 |
+
$text = '';
|
150 |
+
foreach ( $log as $error ) {
|
151 |
+
foreach ( $error as $key => $value ) {
|
152 |
+
$text .= ucwords( $key ) . ': ' . $value . "\n";
|
153 |
+
}
|
154 |
+
}
|
155 |
+
|
156 |
+
return $text;
|
157 |
+
}
|
158 |
+
|
159 |
+
}
|
160 |
+
|
161 |
+
new Ga_SupportLogger();
|
view/ga_auth_button.php
ADDED
@@ -0,0 +1,7 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<button id="ga_authorize_with_google_button" class="button-primary"
|
2 |
+
<?php if ( Ga_Helper::are_features_enabled() ) : ?>
|
3 |
+
onclick="ga_popup.authorize( event, '<?php echo esc_attr( $url ); ?>' )"
|
4 |
+
<?php endif; ?>
|
5 |
+
<?php echo( ( esc_attr( $manually_id ) || ! Ga_Helper::are_features_enabled() || Ga_Helper::is_curl_disabled() ) ? 'disabled="disabled"' : '' ); ?>
|
6 |
+
><?php _e( $label ) ?>
|
7 |
+
</button>
|
view/ga_dashboard_widget.php
CHANGED
@@ -21,25 +21,36 @@
|
|
21 |
</div>
|
22 |
|
23 |
<div>
|
24 |
-
<div id="chart_div" style="width: 100%;"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
25 |
<div>
|
26 |
<div id="boxes-container">
|
27 |
<div class="ga-box-row">
|
28 |
-
|
29 |
-
|
30 |
-
|
31 |
<div class="ga-box-column ga-box-dashboard">
|
32 |
<div style="color: grey; font-size: 13px;"
|
33 |
id="ga_box_dashboard_label_<?php echo $k; ?>"><?php echo $v['label'] ?></div>
|
34 |
<div style="font-size: 15px;"
|
35 |
id="ga_box_dashboard_value_<?php echo $k; ?>"><?php echo $v['value'] ?></div>
|
36 |
</div>
|
37 |
-
|
38 |
</div>
|
39 |
<div class="ga-box-row">
|
40 |
-
|
41 |
-
|
42 |
-
|
43 |
</div>
|
44 |
</div>
|
45 |
</div>
|
@@ -50,20 +61,28 @@
|
|
50 |
</div>
|
51 |
|
52 |
<script type="text/javascript">
|
|
|
|
|
|
|
53 |
<?php if ( ! empty( $chart ) ) : ?>
|
54 |
dataArr = [['Day', 'Pageviews'],<?php
|
55 |
-
|
56 |
-
|
57 |
-
|
58 |
-
|
59 |
-
|
60 |
-
|
61 |
-
|
62 |
|
63 |
-
|
64 |
-
|
65 |
|
66 |
-
ga_dashboard.init(dataArr);
|
67 |
ga_dashboard.events(dataArr);
|
68 |
<?php endif; ?>
|
|
|
|
|
|
|
|
|
|
|
69 |
</script>
|
21 |
</div>
|
22 |
|
23 |
<div>
|
24 |
+
<div id="chart_div" style="width: 100%;">
|
25 |
+
<?php if ( $show_trigger_button ): ?>
|
26 |
+
<div style="text-align: center">
|
27 |
+
<div style="margin: 20px auto;">
|
28 |
+
<button id="ga-widget-trigger" style="border: 1px solid #cccccc;width: 60%; padding: 10px"
|
29 |
+
class="button-link">Click here to get data
|
30 |
+
</button>
|
31 |
+
</div>
|
32 |
+
</div>
|
33 |
+
<?php endif; ?>
|
34 |
+
</div>
|
35 |
+
<div id="ga_widget_error" class="notice notice-warning" style="display: none;"></div>
|
36 |
<div>
|
37 |
<div id="boxes-container">
|
38 |
<div class="ga-box-row">
|
39 |
+
<?php if ( ! empty( $boxes ) ) : ?>
|
40 |
+
<?php $iter = 1; ?>
|
41 |
+
<?php foreach ( $boxes as $k => $v ) : ?>
|
42 |
<div class="ga-box-column ga-box-dashboard">
|
43 |
<div style="color: grey; font-size: 13px;"
|
44 |
id="ga_box_dashboard_label_<?php echo $k; ?>"><?php echo $v['label'] ?></div>
|
45 |
<div style="font-size: 15px;"
|
46 |
id="ga_box_dashboard_value_<?php echo $k; ?>"><?php echo $v['value'] ?></div>
|
47 |
</div>
|
48 |
+
<?php if ( ( ( $iter ++ ) % 3 ) == 0 ) : ?>
|
49 |
</div>
|
50 |
<div class="ga-box-row">
|
51 |
+
<?php endif; ?>
|
52 |
+
<?php endforeach; ?>
|
53 |
+
<?php endif; ?>
|
54 |
</div>
|
55 |
</div>
|
56 |
</div>
|
61 |
</div>
|
62 |
|
63 |
<script type="text/javascript">
|
64 |
+
const GA_NONCE = '<?php echo $ga_nonce; ?>';
|
65 |
+
const GA_NONCE_FIELD = '<?php echo Ga_Admin_Controller::GA_NONCE_FIELD_NAME; ?>';
|
66 |
+
<?php if ( empty( $show_trigger_button ) ): ?>
|
67 |
<?php if ( ! empty( $chart ) ) : ?>
|
68 |
dataArr = [['Day', 'Pageviews'],<?php
|
69 |
+
$arr = "";
|
70 |
+
foreach ( $chart as $row ) {
|
71 |
+
if ( $arr ) {
|
72 |
+
$arr .= ",";
|
73 |
+
}
|
74 |
+
$arr .= "['" . $row['day'] . "'," . $row['current'] . "]";
|
75 |
+
}
|
76 |
|
77 |
+
echo $arr;
|
78 |
+
?>];
|
79 |
|
80 |
+
ga_dashboard.init(dataArr, true);
|
81 |
ga_dashboard.events(dataArr);
|
82 |
<?php endif; ?>
|
83 |
+
<?php else: ?>
|
84 |
+
dataArr = [['Day', 'Pageviews'], []];
|
85 |
+
ga_dashboard.init(false, false);
|
86 |
+
ga_dashboard.events();
|
87 |
+
<?php endif; ?>
|
88 |
</script>
|
view/ga_debug_modal.php
ADDED
@@ -0,0 +1,35 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<div id="ga_debug_modal" class="ga-modal" tabindex="-1">
|
2 |
+
<div class="ga-modal-dialog">
|
3 |
+
<div id="ga_debug_modal_content" class="ga-modal-content">
|
4 |
+
<div class="ga-modal-header">
|
5 |
+
<span id="ga_close" class="ga-close">×</span>
|
6 |
+
<h4 class="ga-modal-title"><?php _e( 'Please send debug info:' ) ?></h4>
|
7 |
+
</div>
|
8 |
+
<div class="ga-modal-body">
|
9 |
+
<div id="ga_debug_error" class="ga-alert ga-alert-danger" style="display: none;"></div>
|
10 |
+
<div id="ga_debug_success" class="ga-alert ga-alert-success" style="display: none;"></div>
|
11 |
+
<div class="ga-loader-wrapper">
|
12 |
+
<div class="ga-loader"></div>
|
13 |
+
</div>
|
14 |
+
<div class="ga-debug-form-div">
|
15 |
+
<label for="ga_debug_email" class="ga-debug-form-label"><strong><?php _e( 'Your Email' ); ?></strong>:</label>
|
16 |
+
<input id="ga_debug_email" class="ga-debug-form-field" type="text" placeholder="<?php _e( 'Type your email here' ) ?>"/>
|
17 |
+
</div>
|
18 |
+
<div class="ga-debug-form-div">
|
19 |
+
<label id="ga_debug_description_label" for="ga_debug_description" class="ga-debug-form-label"><strong><?php _e( 'Description of the issue' ); ?></strong>:</label>
|
20 |
+
<textarea id="ga_debug_description" class="ga-debug-form-field" rows="4" cols="50"></textarea>
|
21 |
+
</div>
|
22 |
+
<div class="ga-debug-form-div">
|
23 |
+
<label for="ga_debug_info" class="ga-debug-form-label"><strong><?php _e( 'Debug info' ); ?></strong>:</label>
|
24 |
+
<textarea id="ga_debug_info" class="ga-debug-form-field" rows="8" cols="50"><?php echo $debug_info ?></textarea>
|
25 |
+
</div>
|
26 |
+
</div>
|
27 |
+
<div class="ga-modal-footer">
|
28 |
+
<button id="ga_btn_close" type="button" class="button">Close</button>
|
29 |
+
<button type="button" class="button-primary"
|
30 |
+
id="ga-send-debug-email"
|
31 |
+
onclick="ga_debug.send_email( event )"><?php _e( 'Send' ); ?></button>
|
32 |
+
</div>
|
33 |
+
</div><!-- /.modal-content -->
|
34 |
+
</div><!-- /.modal-dialog -->
|
35 |
+
</div><!-- /.modal -->
|
view/page.php
CHANGED
@@ -22,7 +22,7 @@
|
|
22 |
</div><!-- /.modal-content -->
|
23 |
</div><!-- /.modal-dialog -->
|
24 |
</div><!-- /.modal -->
|
25 |
-
|
26 |
<div class="wrap ga-wrap">
|
27 |
<h2>Google Analytics - <?php _e( 'Settings' ); ?></h2>
|
28 |
<div class="ga_container">
|
@@ -43,14 +43,7 @@
|
|
43 |
</label>
|
44 |
</th>
|
45 |
<td <?php echo ( ! Ga_Helper::are_features_enabled() ) ? 'class="ga-tooltip"' : ''; ?>>
|
46 |
-
|
47 |
-
<?php if ( Ga_Helper::are_features_enabled() ) : ?>
|
48 |
-
onclick="ga_popup.authorize( event, '<?php echo esc_attr( $data['popup_url'] ); ?>' )"
|
49 |
-
<?php endif; ?>
|
50 |
-
<?php echo( ( esc_attr( $data[ Ga_Admin::GA_WEB_PROPERTY_ID_MANUALLY_OPTION_NAME ] ) || ! Ga_Helper::are_features_enabled() ) ? 'disabled="disabled"' : '' ); ?>
|
51 |
-
><?php _e( 'Authenticate
|
52 |
-
with Google' ) ?>
|
53 |
-
</button>
|
54 |
<span class="ga-tooltiptext"><?php _e( $tooltip ); ?></span>
|
55 |
<?php if ( ! empty( $data[ Ga_Admin::GA_WEB_PROPERTY_ID_MANUALLY_OPTION_NAME ] ) ): ?>
|
56 |
<div class="ga_warning">
|
@@ -62,7 +55,9 @@
|
|
62 |
|
63 |
<?php if ( ! empty( $data['ga_accounts_selector'] ) ): ?>
|
64 |
<th scope="row"><?php echo _e( 'Google Analytics Account' ) ?>:</th>
|
65 |
-
<td><?php echo $data['ga_accounts_selector'];
|
|
|
|
|
66 |
<?php endif; ?>
|
67 |
|
68 |
</tr>
|
@@ -146,6 +141,13 @@
|
|
146 |
|
147 |
</td>
|
148 |
</tr>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
149 |
<tr valign="top">
|
150 |
<th scope="row"><?php _e( 'Disable all features' ) ?>:</th>
|
151 |
<td>
|
@@ -164,9 +166,6 @@
|
|
164 |
</p>
|
165 |
</form>
|
166 |
</div>
|
167 |
-
<p class="ga-love-text"><?php _e( 'Experiencing a problem or have feedback for us?' ); ?> <a
|
168 |
-
href="https://googleanalytics.zendesk.com/hc/en-us"><?php _e( 'We\'d love to hear from you!' ); ?> </a>
|
169 |
-
</p>
|
170 |
<p class="ga-love-text"><?php _e( 'Love this plugin?' ); ?> <a
|
171 |
href="https://wordpress.org/support/plugin/googleanalytics/reviews/#new-post"><?php _e( ' Please help spread the word by leaving a 5-star review!' ); ?> </a>
|
172 |
</p>
|
22 |
</div><!-- /.modal-content -->
|
23 |
</div><!-- /.modal-dialog -->
|
24 |
</div><!-- /.modal -->
|
25 |
+
<?php echo $data[ 'debug_modal' ] ?>
|
26 |
<div class="wrap ga-wrap">
|
27 |
<h2>Google Analytics - <?php _e( 'Settings' ); ?></h2>
|
28 |
<div class="ga_container">
|
43 |
</label>
|
44 |
</th>
|
45 |
<td <?php echo ( ! Ga_Helper::are_features_enabled() ) ? 'class="ga-tooltip"' : ''; ?>>
|
46 |
+
<?php echo $data[ 'auth_button' ] ?>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
47 |
<span class="ga-tooltiptext"><?php _e( $tooltip ); ?></span>
|
48 |
<?php if ( ! empty( $data[ Ga_Admin::GA_WEB_PROPERTY_ID_MANUALLY_OPTION_NAME ] ) ): ?>
|
49 |
<div class="ga_warning">
|
55 |
|
56 |
<?php if ( ! empty( $data['ga_accounts_selector'] ) ): ?>
|
57 |
<th scope="row"><?php echo _e( 'Google Analytics Account' ) ?>:</th>
|
58 |
+
<td><?php echo $data['ga_accounts_selector']; ?>
|
59 |
+
<div class="wrap"><?php echo $data[ 'auth_button' ] ?></div>
|
60 |
+
</td>
|
61 |
<?php endif; ?>
|
62 |
|
63 |
</tr>
|
141 |
|
142 |
</td>
|
143 |
</tr>
|
144 |
+
<tr valign="top">
|
145 |
+
<td colspan="2">
|
146 |
+
<p>If you experience an issue with this plugin, we are here to help! You can visit our <a href="https://googleanalytics.zendesk.com/hc/en-us">support portal</a> to find answers to the most frequently asked questions and to submit a support request. We aim to respond to everyone within one business day.</p>
|
147 |
+
<p>If your issue is difficult to debug, click the button below to automatically send us your error logs and debugging info.</p>
|
148 |
+
<p><button id="ga_debug_button" class="button button-secondary" onclick="ga_debug.open_modal( event )" >Send Debugging Info</button></p>
|
149 |
+
</td>
|
150 |
+
</tr>
|
151 |
<tr valign="top">
|
152 |
<th scope="row"><?php _e( 'Disable all features' ) ?>:</th>
|
153 |
<td>
|
166 |
</p>
|
167 |
</form>
|
168 |
</div>
|
|
|
|
|
|
|
169 |
<p class="ga-love-text"><?php _e( 'Love this plugin?' ); ?> <a
|
170 |
href="https://wordpress.org/support/plugin/googleanalytics/reviews/#new-post"><?php _e( ' Please help spread the word by leaving a 5-star review!' ); ?> </a>
|
171 |
</p>
|
view/statistics.php
CHANGED
File without changes
|