Version Description
Updated: Plugin name. Fixed: Admin escaping
Download this release
Release Info
Developer | chrisakelley |
Plugin | Google Apps Login |
Version | 3.4.5 |
Comparing to | |
See all releases |
Code changes from version 3.4.4 to 3.4.5
- autoload.php +34 -34
- changelog.txt +201 -0
- core/Google/Auth/Abstract.php +37 -36
- core/Google/Auth/AppIdentity.php +101 -105
- core/Google/Auth/AssertionCredentials.php +146 -144
- core/Google/Auth/Exception.php +22 -22
- core/Google/Auth/LoginTicket.php +71 -69
- core/Google/Auth/OAuth2.php +614 -629
- core/Google/Auth/Simple.php +62 -64
- core/Google/Cache/Abstract.php +52 -53
- core/Google/Cache/Apc.php +122 -111
- core/Google/Cache/Exception.php +22 -22
- core/Google/Cache/File.php +202 -190
- core/Google/Cache/Memcache.php +192 -182
- core/Google/Cache/Null.php +51 -55
- core/Google/Client.php +666 -686
- core/Google/Collection.php +85 -96
- core/Google/Config.php +403 -413
- core/Google/Exception.php +20 -20
- core/Google/Http/Batch.php +137 -141
- core/Google/Http/CacheParser.php +181 -184
- core/Google/Http/MediaFileUpload.php +297 -300
- core/Google/Http/REST.php +149 -147
- core/Google/Http/Request.php +451 -476
- core/Google/IO/Abstract.php +328 -329
- core/Google/IO/Curl.php +157 -159
- core/Google/IO/DebugVersionOfCurl.php +153 -155
- core/Google/IO/Exception.php +22 -22
- core/Google/IO/Stream.php +226 -230
- core/Google/IO/cacerts.pem +2183 -2183
- core/Google/Logger/Abstract.php +390 -406
- core/Google/Logger/Exception.php +22 -22
- core/Google/Logger/File.php +150 -156
- core/Google/Logger/Null.php +39 -41
- core/Google/Logger/Psr.php +86 -91
- core/Google/Model.php +265 -281
- core/Google/Service.php +38 -39
- core/Google/Service/AdExchangeBuyer.php +1687 -1909
- core/Google/Service/AdExchangeSeller.php +1544 -1712
- core/Google/Service/AdSense.php +3133 -3585
autoload.php
CHANGED
@@ -1,34 +1,34 @@
|
|
1 |
-
<?php
|
2 |
-
/*
|
3 |
-
* Copyright 2014 Google Inc.
|
4 |
-
*
|
5 |
-
* Licensed under the Apache License, Version 2.0 (the "License");
|
6 |
-
* you may not use this file except in compliance with the License.
|
7 |
-
* You may obtain a copy of the License at
|
8 |
-
*
|
9 |
-
* https://www.apache.org/licenses/LICENSE-2.0
|
10 |
-
*
|
11 |
-
* Unless required by applicable law or agreed to in writing, software
|
12 |
-
* distributed under the License is distributed on an "AS IS" BASIS,
|
13 |
-
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
14 |
-
* See the License for the specific language governing permissions and
|
15 |
-
* limitations under the License.
|
16 |
-
*/
|
17 |
-
|
18 |
-
function gal_google_api_php_client_autoload($className) {
|
19 |
-
|
20 |
-
|
21 |
-
|
22 |
-
|
23 |
-
|
24 |
-
|
25 |
-
|
26 |
-
|
27 |
-
|
28 |
-
|
29 |
-
|
30 |
-
|
31 |
-
|
32 |
-
}
|
33 |
-
|
34 |
-
spl_autoload_register('gal_google_api_php_client_autoload');
|
1 |
+
<?php
|
2 |
+
/*
|
3 |
+
* Copyright 2014 Google Inc.
|
4 |
+
*
|
5 |
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
6 |
+
* you may not use this file except in compliance with the License.
|
7 |
+
* You may obtain a copy of the License at
|
8 |
+
*
|
9 |
+
* https://www.apache.org/licenses/LICENSE-2.0
|
10 |
+
*
|
11 |
+
* Unless required by applicable law or agreed to in writing, software
|
12 |
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
13 |
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
14 |
+
* See the License for the specific language governing permissions and
|
15 |
+
* limitations under the License.
|
16 |
+
*/
|
17 |
+
|
18 |
+
function gal_google_api_php_client_autoload( $className ) {
|
19 |
+
$classPath = explode( '_', $className );
|
20 |
+
if ( $classPath[0] != 'GoogleGAL' ) { // Was Google
|
21 |
+
return;
|
22 |
+
}
|
23 |
+
if ( count( $classPath ) > 3 ) {
|
24 |
+
// Maximum class file path depth in this project is 3.
|
25 |
+
$classPath = array_slice( $classPath, 0, 3 );
|
26 |
+
}
|
27 |
+
$classPath = str_replace( 'GoogleGAL', 'Google', $classPath ); // Adjust back to Google's path
|
28 |
+
$filePath = dirname( __FILE__ ) . '/core/' . implode( '/', $classPath ) . '.php'; // was src -> now core
|
29 |
+
if ( file_exists( $filePath ) ) {
|
30 |
+
require_once $filePath;
|
31 |
+
}
|
32 |
+
}
|
33 |
+
|
34 |
+
spl_autoload_register( 'gal_google_api_php_client_autoload' );
|
changelog.txt
ADDED
@@ -0,0 +1,201 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
== Changelog ==
|
2 |
+
|
3 |
+
= 3.4.5 =
|
4 |
+
|
5 |
+
Updated: Plugin name.
|
6 |
+
Fixed: Admin escaping
|
7 |
+
|
8 |
+
= 3.4.4 =
|
9 |
+
|
10 |
+
Updated compatibility with the WordPress 5.7 release.
|
11 |
+
Login with the google button removed static images generated same button using HTML code and use google svg icon
|
12 |
+
Bug fixed for header already sent
|
13 |
+
|
14 |
+
= 3.4.3 =
|
15 |
+
|
16 |
+
Updated compatibility with the WordPress 5.6 release.
|
17 |
+
|
18 |
+
= 3.4.2 =
|
19 |
+
|
20 |
+
Added missing alt attribute in image tag.
|
21 |
+
Set httponly flag in cookie.
|
22 |
+
Added custom text support for login with google button.
|
23 |
+
|
24 |
+
= 3.4.1 =
|
25 |
+
|
26 |
+
Bug fixing for PHP Notice: Undefined index: approval_prompt.
|
27 |
+
Bug Fixing for PHP Deprecated: Array and string offset access syntax with curly braces is deprecated.
|
28 |
+
|
29 |
+
= 3.4 =
|
30 |
+
|
31 |
+
Bug fixing for Invalid parameter value for approval_prompt: 'auto'.
|
32 |
+
Updated compatibility with the WordPress 5.4 release.
|
33 |
+
|
34 |
+
|
35 |
+
= 3.3 =
|
36 |
+
|
37 |
+
Added permission check functionality
|
38 |
+
Added Google Drive Embedder insufficient permission error fixes
|
39 |
+
Added Login With Google buttons branding
|
40 |
+
Updated compatibility with the WordPress 5.3.1 release
|
41 |
+
|
42 |
+
= 3.2 =
|
43 |
+
|
44 |
+
Added workaround for incompatibility with WPMU Defender plugin's new 2FA feature.
|
45 |
+
Updated compatibility with the upcoming WordPress 4.9 release.
|
46 |
+
|
47 |
+
= 3.0 =
|
48 |
+
|
49 |
+
Internal changes to Google Client library. Essential for the latest versions of some extension plugins such as Google Drive Embedder.
|
50 |
+
|
51 |
+
= 2.10.5 =
|
52 |
+
|
53 |
+
Multisite improvements: better handling of COOKIE_DOMAIN configuration and also allows login redirects straight to sub-sites even when login is handled by the root site's wp-login.php page.
|
54 |
+
Login page cookies now last for the length of the current browser session instead of for a fixed time, so this should reduce unexpected 'Session mismatch' errors.
|
55 |
+
|
56 |
+
Ensures plugin options are not loaded until 'plugins_loaded' stage. This makes it easier to use the gal_options hook more reliably.
|
57 |
+
|
58 |
+
Added language files for be_BY.
|
59 |
+
Added filters 'gal_options' and 'gal_sa_options' so you can configure settings using PHP code.
|
60 |
+
|
61 |
+
Changed the way Google client library is included to avoid conflicts with other Google-related plugins that set the include path
|
62 |
+
in a way that doesn't allow for other plugins.
|
63 |
+
|
64 |
+
= 2.9.7 =
|
65 |
+
|
66 |
+
Added gal_set_login_cookie filter so you can prevent Login for Google Apps from setting its WordPress_google_apps_login cookie under
|
67 |
+
certain circumstances. It only technically needs to be set on the wp-login.php page in most installations, and you may find
|
68 |
+
that if it sets the cookie on any page load (which it does when not already set) then this prevents caching on heavy traffic pages.
|
69 |
+
|
70 |
+
= 2.9.6 =
|
71 |
+
|
72 |
+
New 'Remember Me' in advanced options. Check to ensure users are not automatically logged out at the end of their browser session.
|
73 |
+
This applies to all users using 'Login with Google'. It has the same functionality as checking the 'Remember Me' checkbox on
|
74 |
+
the login form when using regular WordPress username/password to login.
|
75 |
+
|
76 |
+
Improved handling of errors when multiple versions of the plugin are inadvertently activated.
|
77 |
+
|
78 |
+
= 2.8.17 =
|
79 |
+
|
80 |
+
Added filter gal_login_button_text so developers can customize the 'Login with Google' button in all versions (in Premium/Enterprise,
|
81 |
+
it is possible to set the button text in settings, and that will always take priority if set).
|
82 |
+
|
83 |
+
Fixed a text injection vulnerability whereby it was possible for a third party to trick a user into viewing a version of the login page
|
84 |
+
containing an error message entirely of their own choosing - all sites should upgrade to this plugin version.
|
85 |
+
|
86 |
+
= 2.8.16 =
|
87 |
+
|
88 |
+
Updated to work correctly alongside some plugins that change the login URL from /wp-login.php to something else.
|
89 |
+
|
90 |
+
= 2.8.15 =
|
91 |
+
|
92 |
+
Removed a WordPress function that is deprecated in WP 4.4 - force_ssl_login
|
93 |
+
This could have resulted in some visible warning messages.
|
94 |
+
|
95 |
+
= 2.8.14 =
|
96 |
+
|
97 |
+
Updated some URLs pointing to information about Premium/Enterprise upgrades.
|
98 |
+
Readme updated.
|
99 |
+
|
100 |
+
= 2.8.13 =
|
101 |
+
|
102 |
+
Ready for WordPress 4.4.
|
103 |
+
New translation strings for languages.
|
104 |
+
|
105 |
+
= 2.8.12 =
|
106 |
+
|
107 |
+
Opportunity to sign up for emails on Google Apps and WordPress, from settings page.
|
108 |
+
|
109 |
+
= 2.8.11 =
|
110 |
+
|
111 |
+
Service Account Client ID is imported from JSON key file so user can copy and paste it into admin.google.com
|
112 |
+
|
113 |
+
= 2.8.10 =
|
114 |
+
|
115 |
+
Changed name of login cookie from 'google_apps_login' to 'wp_google_apps_login'.
|
116 |
+
|
117 |
+
= 2.8.3 =
|
118 |
+
|
119 |
+
Resolved conflict with some other plugins over Google-related function names.
|
120 |
+
|
121 |
+
= 2.8.1 =
|
122 |
+
|
123 |
+
'Session mismatch' warning should be much less of a problem now.
|
124 |
+
|
125 |
+
= 2.8 =
|
126 |
+
|
127 |
+
Session mismatch (could be a problem setting cookies) should now occur less frequently. Service Account can have no admin email (for gmail.com accounts).
|
128 |
+
|
129 |
+
= 2.7 =
|
130 |
+
|
131 |
+
Accepts filter gal_client_config_ini containing filesystem path to an INI file to supply to Google's client library on instantiation, so you can override settings.
|
132 |
+
Added substitution version core/Google/IO/DebugVersionOfCurl.php to replace core/Google/IO/Curl.php temporarily to log communications to Google's server for debugging purposes.
|
133 |
+
|
134 |
+
= 2.5.2 =
|
135 |
+
|
136 |
+
Service Account settings can be uploaded by copy-and-paste of JSON file contents as well as just uploading the file directly.
|
137 |
+
|
138 |
+
= 2.5 =
|
139 |
+
|
140 |
+
Platform extended to provide Service Account settings.
|
141 |
+
|
142 |
+
= 2.4.4 =
|
143 |
+
|
144 |
+
Readme updates and tidied settings page.
|
145 |
+
|
146 |
+
= 2.4.3 =
|
147 |
+
|
148 |
+
New hooks for profile photos. Updated Google client library.
|
149 |
+
|
150 |
+
= 2.3.1 =
|
151 |
+
|
152 |
+
Fixed conflicts with some other plugins such as Google Analyticator which use similar Google client libraries.
|
153 |
+
|
154 |
+
= 2.3 =
|
155 |
+
|
156 |
+
Better organized config pages.
|
157 |
+
|
158 |
+
Uses latest Google client library.
|
159 |
+
|
160 |
+
Option to link to wp-glogin.com from login page.
|
161 |
+
|
162 |
+
= 2.2 =
|
163 |
+
|
164 |
+
Fix for an error seen on multisite admin. Added Arabic translation.
|
165 |
+
|
166 |
+
= 2.1 =
|
167 |
+
|
168 |
+
New design to support multiple languages. Includes Serbo-Croatian. Fixed some conflicts
|
169 |
+
with other plugins when used in 'auto redirect to Google' mode.
|
170 |
+
|
171 |
+
= 2.0 =
|
172 |
+
|
173 |
+
Our platform provides centralized setup and management of Google-related features in your
|
174 |
+
WordPress site and plugins.
|
175 |
+
|
176 |
+
Other developers can easily extend our Google authentication into their own plugins.
|
177 |
+
|
178 |
+
= 1.4 =
|
179 |
+
|
180 |
+
Added clearer instructions, plus new options: automatically redirect users
|
181 |
+
to Login via Google; plus force users to fully approve access to their
|
182 |
+
Google account every time they login (allowing them to switch accounts if only
|
183 |
+
logged into the wrong one, as well as making the process clearer).
|
184 |
+
|
185 |
+
= 1.3 =
|
186 |
+
Much neater support for redirecting users to most appropriate page post-login,
|
187 |
+
especially on multisite installations; Better notices guiding admins through
|
188 |
+
configuration
|
189 |
+
|
190 |
+
= 1.2 =
|
191 |
+
Upgrade to match WordPress 3.8;
|
192 |
+
More extensible code
|
193 |
+
|
194 |
+
= 1.1 =
|
195 |
+
Increased security - uses an extra authenticity check;
|
196 |
+
Better support for mal-configured Google credentials;
|
197 |
+
No longer uses PHP-based sessions - will work on even more WordPress configurations
|
198 |
+
|
199 |
+
= 1.0 =
|
200 |
+
All existing versions are functionally identical - no need to upgrade.
|
201 |
+
|
core/Google/Auth/Abstract.php
CHANGED
@@ -1,36 +1,37 @@
|
|
1 |
-
<?php
|
2 |
-
/*
|
3 |
-
* Copyright 2010 Google Inc.
|
4 |
-
*
|
5 |
-
* Licensed under the Apache License, Version 2.0 (the "License");
|
6 |
-
* you may not use this file except in compliance with the License.
|
7 |
-
* You may obtain a copy of the License at
|
8 |
-
*
|
9 |
-
* https://www.apache.org/licenses/LICENSE-2.0
|
10 |
-
*
|
11 |
-
* Unless required by applicable law or agreed to in writing, software
|
12 |
-
* distributed under the License is distributed on an "AS IS" BASIS,
|
13 |
-
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
14 |
-
* See the License for the specific language governing permissions and
|
15 |
-
* limitations under the License.
|
16 |
-
*/
|
17 |
-
|
18 |
-
require_once realpath(dirname(__FILE__) . '/../../../autoload.php');
|
19 |
-
|
20 |
-
/**
|
21 |
-
* Abstract class for the Authentication in the API client
|
22 |
-
*
|
23 |
-
*
|
24 |
-
*/
|
25 |
-
abstract class GoogleGAL_Auth_Abstract
|
26 |
-
|
27 |
-
|
28 |
-
|
29 |
-
|
30 |
-
|
31 |
-
|
32 |
-
|
33 |
-
|
34 |
-
|
35 |
-
|
36 |
-
|
|
1 |
+
<?php
|
2 |
+
/*
|
3 |
+
* Copyright 2010 Google Inc.
|
4 |
+
*
|
5 |
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
6 |
+
* you may not use this file except in compliance with the License.
|
7 |
+
* You may obtain a copy of the License at
|
8 |
+
*
|
9 |
+
* https://www.apache.org/licenses/LICENSE-2.0
|
10 |
+
*
|
11 |
+
* Unless required by applicable law or agreed to in writing, software
|
12 |
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
13 |
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
14 |
+
* See the License for the specific language governing permissions and
|
15 |
+
* limitations under the License.
|
16 |
+
*/
|
17 |
+
|
18 |
+
require_once realpath( dirname( __FILE__ ) . '/../../../autoload.php' );
|
19 |
+
|
20 |
+
/**
|
21 |
+
* Abstract class for the Authentication in the API client
|
22 |
+
*
|
23 |
+
* @author Chris Chabot <chabotc@google.com>
|
24 |
+
*/
|
25 |
+
abstract class GoogleGAL_Auth_Abstract {
|
26 |
+
|
27 |
+
/**
|
28 |
+
* An utility function that first calls $this->auth->sign($request) and then
|
29 |
+
* executes makeRequest() on that signed request. Used for when a request
|
30 |
+
* should be authenticated
|
31 |
+
*
|
32 |
+
* @param GoogleGAL_Http_Request $request
|
33 |
+
* @return GoogleGAL_Http_Request $request
|
34 |
+
*/
|
35 |
+
abstract public function authenticatedRequest( GoogleGAL_Http_Request $request);
|
36 |
+
abstract public function sign( GoogleGAL_Http_Request $request);
|
37 |
+
}
|
core/Google/Auth/AppIdentity.php
CHANGED
@@ -1,105 +1,101 @@
|
|
1 |
-
<?php
|
2 |
-
/*
|
3 |
-
* Copyright 2014 Google Inc.
|
4 |
-
*
|
5 |
-
* Licensed under the Apache License, Version 2.0 (the "License");
|
6 |
-
* you may not use this file except in compliance with the License.
|
7 |
-
* You may obtain a copy of the License at
|
8 |
-
*
|
9 |
-
* https://www.apache.org/licenses/LICENSE-2.0
|
10 |
-
*
|
11 |
-
* Unless required by applicable law or agreed to in writing, software
|
12 |
-
* distributed under the License is distributed on an "AS IS" BASIS,
|
13 |
-
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
14 |
-
* See the License for the specific language governing permissions and
|
15 |
-
* limitations under the License.
|
16 |
-
*/
|
17 |
-
|
18 |
-
/*
|
19 |
-
* WARNING - this class depends on the Google App Engine PHP library
|
20 |
-
* which is 5.3 and above only, so if you include this in a PHP 5.2
|
21 |
-
* setup or one without 5.3 things will blow up.
|
22 |
-
*/
|
23 |
-
use google\appengine\api\app_identity\AppIdentityService;
|
24 |
-
|
25 |
-
require_once realpath(dirname(__FILE__) . '/../../../autoload.php');
|
26 |
-
|
27 |
-
/**
|
28 |
-
* Authentication via the Google App Engine App Identity service.
|
29 |
-
*/
|
30 |
-
class GoogleGAL_Auth_AppIdentity extends GoogleGAL_Auth_Abstract
|
31 |
-
|
32 |
-
|
33 |
-
|
34 |
-
|
35 |
-
|
36 |
-
|
37 |
-
|
38 |
-
|
39 |
-
|
40 |
-
|
41 |
-
|
42 |
-
|
43 |
-
|
44 |
-
|
45 |
-
|
46 |
-
|
47 |
-
|
48 |
-
|
49 |
-
|
50 |
-
|
51 |
-
|
52 |
-
|
53 |
-
|
54 |
-
|
55 |
-
|
56 |
-
|
57 |
-
|
58 |
-
|
59 |
-
|
60 |
-
|
61 |
-
|
62 |
-
|
63 |
-
|
64 |
-
|
65 |
-
|
66 |
-
|
67 |
-
|
68 |
-
|
69 |
-
|
70 |
-
|
71 |
-
|
72 |
-
|
73 |
-
|
74 |
-
|
75 |
-
|
76 |
-
|
77 |
-
|
78 |
-
|
79 |
-
|
80 |
-
|
81 |
-
|
82 |
-
|
83 |
-
|
84 |
-
|
85 |
-
|
86 |
-
|
87 |
-
|
88 |
-
|
89 |
-
|
90 |
-
|
91 |
-
|
92 |
-
|
93 |
-
|
94 |
-
|
95 |
-
|
96 |
-
|
97 |
-
|
98 |
-
|
99 |
-
|
100 |
-
|
101 |
-
|
102 |
-
|
103 |
-
return $request;
|
104 |
-
}
|
105 |
-
}
|
1 |
+
<?php
|
2 |
+
/*
|
3 |
+
* Copyright 2014 Google Inc.
|
4 |
+
*
|
5 |
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
6 |
+
* you may not use this file except in compliance with the License.
|
7 |
+
* You may obtain a copy of the License at
|
8 |
+
*
|
9 |
+
* https://www.apache.org/licenses/LICENSE-2.0
|
10 |
+
*
|
11 |
+
* Unless required by applicable law or agreed to in writing, software
|
12 |
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
13 |
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
14 |
+
* See the License for the specific language governing permissions and
|
15 |
+
* limitations under the License.
|
16 |
+
*/
|
17 |
+
|
18 |
+
/*
|
19 |
+
* WARNING - this class depends on the Google App Engine PHP library
|
20 |
+
* which is 5.3 and above only, so if you include this in a PHP 5.2
|
21 |
+
* setup or one without 5.3 things will blow up.
|
22 |
+
*/
|
23 |
+
use google\appengine\api\app_identity\AppIdentityService;
|
24 |
+
|
25 |
+
require_once realpath( dirname( __FILE__ ) . '/../../../autoload.php' );
|
26 |
+
|
27 |
+
/**
|
28 |
+
* Authentication via the Google App Engine App Identity service.
|
29 |
+
*/
|
30 |
+
class GoogleGAL_Auth_AppIdentity extends GoogleGAL_Auth_Abstract {
|
31 |
+
|
32 |
+
const CACHE_PREFIX = 'GoogleGAL_Auth_AppIdentity::';
|
33 |
+
private $key = null;
|
34 |
+
private $client;
|
35 |
+
private $token = false;
|
36 |
+
private $tokenScopes = false;
|
37 |
+
|
38 |
+
public function __construct( GoogleGAL_Client $client, $config = null ) {
|
39 |
+
$this->client = $client;
|
40 |
+
}
|
41 |
+
|
42 |
+
/**
|
43 |
+
* Retrieve an access token for the scopes supplied.
|
44 |
+
*/
|
45 |
+
public function authenticateForScope( $scopes ) {
|
46 |
+
if ( $this->token && $this->tokenScopes == $scopes ) {
|
47 |
+
return $this->token;
|
48 |
+
}
|
49 |
+
|
50 |
+
$cacheKey = self::CACHE_PREFIX;
|
51 |
+
if ( is_string( $scopes ) ) {
|
52 |
+
$cacheKey .= $scopes;
|
53 |
+
} elseif ( is_array( $scopes ) ) {
|
54 |
+
$cacheKey .= implode( ':', $scopes );
|
55 |
+
}
|
56 |
+
|
57 |
+
$this->token = $this->client->getCache()->get( $cacheKey );
|
58 |
+
if ( ! $this->token ) {
|
59 |
+
$this->token = AppIdentityService::getAccessToken( $scopes );
|
60 |
+
if ( $this->token ) {
|
61 |
+
$this->client->getCache()->set(
|
62 |
+
$cacheKey,
|
63 |
+
$this->token
|
64 |
+
);
|
65 |
+
}
|
66 |
+
}
|
67 |
+
$this->tokenScopes = $scopes;
|
68 |
+
return $this->token;
|
69 |
+
}
|
70 |
+
|
71 |
+
/**
|
72 |
+
* Perform an authenticated / signed apiHttpRequest.
|
73 |
+
* This function takes the apiHttpRequest, calls apiAuth->sign on it
|
74 |
+
* (which can modify the request in what ever way fits the auth mechanism)
|
75 |
+
* and then calls apiCurlIO::makeRequest on the signed request
|
76 |
+
*
|
77 |
+
* @param GoogleGAL_Http_Request $request
|
78 |
+
* @return GoogleGAL_Http_Request The resulting HTTP response including the
|
79 |
+
* responseHttpCode, responseHeaders and responseBody.
|
80 |
+
*/
|
81 |
+
public function authenticatedRequest( GoogleGAL_Http_Request $request ) {
|
82 |
+
$request = $this->sign( $request );
|
83 |
+
return $this->client->getIo()->makeRequest( $request );
|
84 |
+
}
|
85 |
+
|
86 |
+
public function sign( GoogleGAL_Http_Request $request ) {
|
87 |
+
if ( ! $this->token ) {
|
88 |
+
// No token, so nothing to do.
|
89 |
+
return $request;
|
90 |
+
}
|
91 |
+
|
92 |
+
$this->client->getLogger()->debug( 'App Identity authentication' );
|
93 |
+
|
94 |
+
// Add the OAuth2 header to the request
|
95 |
+
$request->setRequestHeaders(
|
96 |
+
array( 'Authorization' => 'Bearer ' . $this->token['access_token'] )
|
97 |
+
);
|
98 |
+
|
99 |
+
return $request;
|
100 |
+
}
|
101 |
+
}
|
|
|
|
|
|
|
|
core/Google/Auth/AssertionCredentials.php
CHANGED
@@ -1,144 +1,146 @@
|
|
1 |
-
<?php
|
2 |
-
/*
|
3 |
-
* Copyright 2012 Google Inc.
|
4 |
-
*
|
5 |
-
* Licensed under the Apache License, Version 2.0 (the "License");
|
6 |
-
* you may not use this file except in compliance with the License.
|
7 |
-
* You may obtain a copy of the License at
|
8 |
-
*
|
9 |
-
* https://www.apache.org/licenses/LICENSE-2.0
|
10 |
-
*
|
11 |
-
* Unless required by applicable law or agreed to in writing, software
|
12 |
-
* distributed under the License is distributed on an "AS IS" BASIS,
|
13 |
-
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
14 |
-
* See the License for the specific language governing permissions and
|
15 |
-
* limitations under the License.
|
16 |
-
*
|
17 |
-
* Updated by Dan Lester 2014
|
18 |
-
*
|
19 |
-
*/
|
20 |
-
|
21 |
-
require_once realpath(dirname(__FILE__) . '/../../../autoload.php');
|
22 |
-
|
23 |
-
/**
|
24 |
-
* Credentials object used for OAuth 2.0 Signed JWT assertion grants.
|
25 |
-
*
|
26 |
-
* @author Chirag Shah <chirags@google.com>
|
27 |
-
*/
|
28 |
-
class GoogleGAL_Auth_AssertionCredentials
|
29 |
-
|
30 |
-
|
31 |
-
|
32 |
-
|
33 |
-
|
34 |
-
|
35 |
-
|
36 |
-
|
37 |
-
|
38 |
-
|
39 |
-
|
40 |
-
|
41 |
-
|
42 |
-
|
43 |
-
|
44 |
-
|
45 |
-
|
46 |
-
|
47 |
-
|
48 |
-
|
49 |
-
|
50 |
-
|
51 |
-
|
52 |
-
|
53 |
-
|
54 |
-
|
55 |
-
|
56 |
-
|
57 |
-
|
58 |
-
|
59 |
-
|
60 |
-
|
61 |
-
|
62 |
-
|
63 |
-
|
64 |
-
|
65 |
-
|
66 |
-
|
67 |
-
|
68 |
-
|
69 |
-
|
70 |
-
|
71 |
-
|
72 |
-
|
73 |
-
|
74 |
-
|
75 |
-
|
76 |
-
|
77 |
-
|
78 |
-
|
79 |
-
|
80 |
-
|
81 |
-
|
82 |
-
|
83 |
-
|
84 |
-
|
85 |
-
|
86 |
-
|
87 |
-
|
88 |
-
|
89 |
-
|
90 |
-
|
91 |
-
|
92 |
-
|
93 |
-
|
94 |
-
|
95 |
-
|
96 |
-
|
97 |
-
|
98 |
-
|
99 |
-
|
100 |
-
|
101 |
-
|
102 |
-
|
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 |
-
|
134 |
-
|
135 |
-
|
136 |
-
|
137 |
-
|
138 |
-
|
139 |
-
|
140 |
-
|
141 |
-
|
142 |
-
|
143 |
-
|
144 |
-
|
|
|
|
1 |
+
<?php
|
2 |
+
/*
|
3 |
+
* Copyright 2012 Google Inc.
|
4 |
+
*
|
5 |
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
6 |
+
* you may not use this file except in compliance with the License.
|
7 |
+
* You may obtain a copy of the License at
|
8 |
+
*
|
9 |
+
* https://www.apache.org/licenses/LICENSE-2.0
|
10 |
+
*
|
11 |
+
* Unless required by applicable law or agreed to in writing, software
|
12 |
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
13 |
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
14 |
+
* See the License for the specific language governing permissions and
|
15 |
+
* limitations under the License.
|
16 |
+
*
|
17 |
+
* Updated by Dan Lester 2014
|
18 |
+
*
|
19 |
+
*/
|
20 |
+
|
21 |
+
require_once realpath( dirname( __FILE__ ) . '/../../../autoload.php' );
|
22 |
+
|
23 |
+
/**
|
24 |
+
* Credentials object used for OAuth 2.0 Signed JWT assertion grants.
|
25 |
+
*
|
26 |
+
* @author Chirag Shah <chirags@google.com>
|
27 |
+
*/
|
28 |
+
class GoogleGAL_Auth_AssertionCredentials {
|
29 |
+
|
30 |
+
const MAX_TOKEN_LIFETIME_SECS = 3600;
|
31 |
+
|
32 |
+
public $serviceAccountName;
|
33 |
+
public $scopes;
|
34 |
+
public $privateKey;
|
35 |
+
public $privateKeyPassword;
|
36 |
+
public $assertionType;
|
37 |
+
public $sub;
|
38 |
+
public $signerClass = 'GoogleGAL_Signer_P12';
|
39 |
+
/**
|
40 |
+
* @deprecated
|
41 |
+
* @link http://tools.ietf.org/html/draft-ietf-oauth-json-web-token-06
|
42 |
+
*/
|
43 |
+
public $prn;
|
44 |
+
private $useCache;
|
45 |
+
|
46 |
+
/**
|
47 |
+
* @param $serviceAccountName
|
48 |
+
* @param $scopes array List of scopes
|
49 |
+
* @param $privateKey
|
50 |
+
* @param string $privateKeyPassword
|
51 |
+
* @param string $assertionType
|
52 |
+
* @param bool|string $sub The email address of the user for which the
|
53 |
+
* application is requesting delegated access.
|
54 |
+
* @param bool useCache Whether to generate a cache key and allow
|
55 |
+
* automatic caching of the generated token.
|
56 |
+
*/
|
57 |
+
public function __construct(
|
58 |
+
$serviceAccountName,
|
59 |
+
$scopes,
|
60 |
+
$privateKey,
|
61 |
+
$privateKeyPassword = 'notasecret',
|
62 |
+
$assertionType = 'http://oauth.net/grant_type/jwt/1.0/bearer',
|
63 |
+
$sub = false,
|
64 |
+
$useCache = true
|
65 |
+
) {
|
66 |
+
$this->serviceAccountName = $serviceAccountName;
|
67 |
+
$this->scopes = is_string( $scopes ) ? $scopes : implode( ' ', $scopes );
|
68 |
+
$this->privateKey = $privateKey;
|
69 |
+
$this->privateKeyPassword = $privateKeyPassword;
|
70 |
+
$this->assertionType = $assertionType;
|
71 |
+
$this->sub = $sub;
|
72 |
+
$this->prn = $sub;
|
73 |
+
$this->useCache = $useCache;
|
74 |
+
}
|
75 |
+
|
76 |
+
public function setSignerClass( $signerClass ) {
|
77 |
+
$this->signerClass = $signerClass;
|
78 |
+
}
|
79 |
+
|
80 |
+
/**
|
81 |
+
* Generate a unique key to represent this credential.
|
82 |
+
*
|
83 |
+
* @return string
|
84 |
+
*/
|
85 |
+
public function getCacheKey() {
|
86 |
+
if ( ! $this->useCache ) {
|
87 |
+
return false;
|
88 |
+
}
|
89 |
+
$h = $this->sub;
|
90 |
+
$h .= $this->assertionType;
|
91 |
+
$h .= $this->privateKey;
|
92 |
+
$h .= $this->scopes;
|
93 |
+
$h .= $this->serviceAccountName;
|
94 |
+
return md5( $h );
|
95 |
+
}
|
96 |
+
|
97 |
+
public function generateAssertion() {
|
98 |
+
$now = time();
|
99 |
+
|
100 |
+
$jwtParams = array(
|
101 |
+
'aud' => GoogleGAL_Auth_OAuth2::OAUTH2_TOKEN_URI,
|
102 |
+
'scope' => $this->scopes,
|
103 |
+
'iat' => $now,
|
104 |
+
'exp' => $now + self::MAX_TOKEN_LIFETIME_SECS,
|
105 |
+
'iss' => $this->serviceAccountName,
|
106 |
+
);
|
107 |
+
|
108 |
+
if ( $this->sub !== false ) {
|
109 |
+
$jwtParams['sub'] = $this->sub;
|
110 |
+
} elseif ( $this->prn !== false ) {
|
111 |
+
$jwtParams['prn'] = $this->prn;
|
112 |
+
}
|
113 |
+
|
114 |
+
return $this->makeSignedJwt( $jwtParams );
|
115 |
+
}
|
116 |
+
|
117 |
+
/**
|
118 |
+
* Creates a signed JWT.
|
119 |
+
*
|
120 |
+
* @param array $payload
|
121 |
+
* @return string The signed JWT.
|
122 |
+
*/
|
123 |
+
private function makeSignedJwt( $payload ) {
|
124 |
+
$header = array(
|
125 |
+
'typ' => 'JWT',
|
126 |
+
'alg' => 'RS256',
|
127 |
+
);
|
128 |
+
|
129 |
+
$payload = json_encode( $payload );
|
130 |
+
// Handle some overzealous escaping in PHP json that seemed to cause some errors
|
131 |
+
// with claimsets.
|
132 |
+
$payload = str_replace( '\/', '/', $payload );
|
133 |
+
|
134 |
+
$segments = array(
|
135 |
+
GoogleGAL_Utils::urlSafeB64Encode( json_encode( $header ) ),
|
136 |
+
GoogleGAL_Utils::urlSafeB64Encode( $payload ),
|
137 |
+
);
|
138 |
+
|
139 |
+
$signingInput = implode( '.', $segments );
|
140 |
+
$signer = new $this->signerClass( $this->privateKey, $this->privateKeyPassword );
|
141 |
+
$signature = $signer->sign( $signingInput );
|
142 |
+
$segments[] = GoogleGAL_Utils::urlSafeB64Encode( $signature );
|
143 |
+
|
144 |
+
return implode( '.', $segments );
|
145 |
+
}
|
146 |
+
}
|
core/Google/Auth/Exception.php
CHANGED
@@ -1,22 +1,22 @@
|
|
1 |
-
<?php
|
2 |
-
/*
|
3 |
-
* Copyright 2013 Google Inc.
|
4 |
-
*
|
5 |
-
* Licensed under the Apache License, Version 2.0 (the "License");
|
6 |
-
* you may not use this file except in compliance with the License.
|
7 |
-
* You may obtain a copy of the License at
|
8 |
-
*
|
9 |
-
* https://www.apache.org/licenses/LICENSE-2.0
|
10 |
-
*
|
11 |
-
* Unless required by applicable law or agreed to in writing, software
|
12 |
-
* distributed under the License is distributed on an "AS IS" BASIS,
|
13 |
-
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
14 |
-
* See the License for the specific language governing permissions and
|
15 |
-
* limitations under the License.
|
16 |
-
*/
|
17 |
-
|
18 |
-
require_once realpath(dirname(__FILE__) . '/../../../autoload.php');
|
19 |
-
|
20 |
-
class GoogleGAL_Auth_Exception extends GoogleGAL_Exception
|
21 |
-
|
22 |
-
}
|
1 |
+
<?php
|
2 |
+
/*
|
3 |
+
* Copyright 2013 Google Inc.
|
4 |
+
*
|
5 |
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
6 |
+
* you may not use this file except in compliance with the License.
|
7 |
+
* You may obtain a copy of the License at
|
8 |
+
*
|
9 |
+
* https://www.apache.org/licenses/LICENSE-2.0
|
10 |
+
*
|
11 |
+
* Unless required by applicable law or agreed to in writing, software
|
12 |
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
13 |
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
14 |
+
* See the License for the specific language governing permissions and
|
15 |
+
* limitations under the License.
|
16 |
+
*/
|
17 |
+
|
18 |
+
require_once realpath( dirname( __FILE__ ) . '/../../../autoload.php' );
|
19 |
+
|
20 |
+
class GoogleGAL_Auth_Exception extends GoogleGAL_Exception {
|
21 |
+
|
22 |
+
}
|
core/Google/Auth/LoginTicket.php
CHANGED
@@ -1,69 +1,71 @@
|
|
1 |
-
<?php
|
2 |
-
/*
|
3 |
-
* Copyright 2011 Google Inc.
|
4 |
-
*
|
5 |
-
* Licensed under the Apache License, Version 2.0 (the "License");
|
6 |
-
* you may not use this file except in compliance with the License.
|
7 |
-
* You may obtain a copy of the License at
|
8 |
-
*
|
9 |
-
* https://www.apache.org/licenses/LICENSE-2.0
|
10 |
-
*
|
11 |
-
* Unless required by applicable law or agreed to in writing, software
|
12 |
-
* distributed under the License is distributed on an "AS IS" BASIS,
|
13 |
-
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
14 |
-
* See the License for the specific language governing permissions and
|
15 |
-
* limitations under the License.
|
16 |
-
*/
|
17 |
-
|
18 |
-
require_once realpath(dirname(__FILE__) . '/../../../autoload.php');
|
19 |
-
|
20 |
-
/**
|
21 |
-
* Class to hold information about an authenticated login.
|
22 |
-
*
|
23 |
-
* @author Brian Eaton <beaton@google.com>
|
24 |
-
*/
|
25 |
-
class GoogleGAL_Auth_LoginTicket
|
26 |
-
|
27 |
-
|
28 |
-
|
29 |
-
|
30 |
-
|
31 |
-
|
32 |
-
|
33 |
-
|
34 |
-
|
35 |
-
|
36 |
-
|
37 |
-
|
38 |
-
|
39 |
-
|
40 |
-
|
41 |
-
|
42 |
-
|
43 |
-
|
44 |
-
|
45 |
-
|
46 |
-
|
47 |
-
|
48 |
-
|
49 |
-
|
50 |
-
|
51 |
-
|
52 |
-
|
53 |
-
|
54 |
-
|
55 |
-
|
56 |
-
|
57 |
-
|
58 |
-
|
59 |
-
|
60 |
-
|
61 |
-
|
62 |
-
|
63 |
-
|
64 |
-
|
65 |
-
|
66 |
-
|
67 |
-
|
68 |
-
|
69 |
-
|
|
|
|
1 |
+
<?php
|
2 |
+
/*
|
3 |
+
* Copyright 2011 Google Inc.
|
4 |
+
*
|
5 |
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
6 |
+
* you may not use this file except in compliance with the License.
|
7 |
+
* You may obtain a copy of the License at
|
8 |
+
*
|
9 |
+
* https://www.apache.org/licenses/LICENSE-2.0
|
10 |
+
*
|
11 |
+
* Unless required by applicable law or agreed to in writing, software
|
12 |
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
13 |
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
14 |
+
* See the License for the specific language governing permissions and
|
15 |
+
* limitations under the License.
|
16 |
+
*/
|
17 |
+
|
18 |
+
require_once realpath( dirname( __FILE__ ) . '/../../../autoload.php' );
|
19 |
+
|
20 |
+
/**
|
21 |
+
* Class to hold information about an authenticated login.
|
22 |
+
*
|
23 |
+
* @author Brian Eaton <beaton@google.com>
|
24 |
+
*/
|
25 |
+
class GoogleGAL_Auth_LoginTicket {
|
26 |
+
|
27 |
+
const USER_ATTR = 'sub';
|
28 |
+
|
29 |
+
// Information from id token envelope.
|
30 |
+
private $envelope;
|
31 |
+
|
32 |
+
// Information from id token payload.
|
33 |
+
private $payload;
|
34 |
+
|
35 |
+
/**
|
36 |
+
* Creates a user based on the supplied token.
|
37 |
+
*
|
38 |
+
* @param string $envelope Header from a verified authentication token.
|
39 |
+
* @param string $payload Information from a verified authentication token.
|
40 |
+
*/
|
41 |
+
public function __construct( $envelope, $payload ) {
|
42 |
+
$this->envelope = $envelope;
|
43 |
+
$this->payload = $payload;
|
44 |
+
}
|
45 |
+
|
46 |
+
/**
|
47 |
+
* Returns the numeric identifier for the user.
|
48 |
+
*
|
49 |
+
* @throws GoogleGAL_Auth_Exception
|
50 |
+
* @return
|
51 |
+
*/
|
52 |
+
public function getUserId() {
|
53 |
+
if ( array_key_exists( self::USER_ATTR, $this->payload ) ) {
|
54 |
+
return $this->payload[ self::USER_ATTR ];
|
55 |
+
}
|
56 |
+
throw new GoogleGAL_Auth_Exception( 'No user_id in token' );
|
57 |
+
}
|
58 |
+
|
59 |
+
/**
|
60 |
+
* Returns attributes from the login ticket. This can contain
|
61 |
+
* various information about the user session.
|
62 |
+
*
|
63 |
+
* @return array
|
64 |
+
*/
|
65 |
+
public function getAttributes() {
|
66 |
+
return array(
|
67 |
+
'envelope' => $this->envelope,
|
68 |
+
'payload' => $this->payload,
|
69 |
+
);
|
70 |
+
}
|
71 |
+
}
|
core/Google/Auth/OAuth2.php
CHANGED
@@ -1,629 +1,614 @@
|
|
1 |
-
<?php
|
2 |
-
/*
|
3 |
-
* Copyright 2008 Google Inc.
|
4 |
-
*
|
5 |
-
* Licensed under the Apache License, Version 2.0 (the "License");
|
6 |
-
* you may not use this file except in compliance with the License.
|
7 |
-
* You may obtain a copy of the License at
|
8 |
-
*
|
9 |
-
* https://www.apache.org/licenses/LICENSE-2.0
|
10 |
-
*
|
11 |
-
* Unless required by applicable law or agreed to in writing, software
|
12 |
-
* distributed under the License is distributed on an "AS IS" BASIS,
|
13 |
-
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
14 |
-
* See the License for the specific language governing permissions and
|
15 |
-
* limitations under the License.
|
16 |
-
*/
|
17 |
-
|
18 |
-
require_once realpath(dirname(__FILE__) . '/../../../autoload.php');
|
19 |
-
|
20 |
-
/**
|
21 |
-
* Authentication class that deals with the OAuth 2 web-server authentication flow
|
22 |
-
*
|
23 |
-
* @author Chris Chabot <chabotc@google.com>
|
24 |
-
* @author Chirag Shah <chirags@google.com>
|
25 |
-
|
26 |
-
|
27 |
-
|
28 |
-
|
29 |
-
|
30 |
-
|
31 |
-
|
32 |
-
|
33 |
-
|
34 |
-
|
35 |
-
|
36 |
-
|
37 |
-
|
38 |
-
|
39 |
-
|
40 |
-
|
41 |
-
|
42 |
-
|
43 |
-
|
44 |
-
|
45 |
-
|
46 |
-
|
47 |
-
|
48 |
-
|
49 |
-
|
50 |
-
|
51 |
-
|
52 |
-
|
53 |
-
|
54 |
-
|
55 |
-
|
56 |
-
|
57 |
-
|
58 |
-
|
59 |
-
|
60 |
-
|
61 |
-
|
62 |
-
|
63 |
-
|
64 |
-
|
65 |
-
|
66 |
-
|
67 |
-
|
68 |
-
|
69 |
-
|
70 |
-
|
71 |
-
|
72 |
-
|
73 |
-
|
74 |
-
|
75 |
-
|
76 |
-
|
77 |
-
|
78 |
-
|
79 |
-
|
80 |
-
|
81 |
-
|
82 |
-
|
83 |
-
|
84 |
-
|
85 |
-
|
86 |
-
|
87 |
-
|
88 |
-
|
89 |
-
|
90 |
-
|
91 |
-
|
92 |
-
|
93 |
-
|
94 |
-
|
95 |
-
|
96 |
-
|
97 |
-
|
98 |
-
|
99 |
-
|
100 |
-
|
101 |
-
|
102 |
-
|
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 |
-
|
134 |
-
|
135 |
-
|
136 |
-
|
137 |
-
|
138 |
-
|
139 |
-
|
140 |
-
|
141 |
-
|
142 |
-
|
143 |
-
|
144 |
-
|
145 |
-
|
146 |
-
|
147 |
-
|
148 |
-
|
149 |
-
|
150 |
-
|
151 |
-
|
152 |
-
|
153 |
-
|
154 |
-
|
155 |
-
|
156 |
-
|
157 |
-
|
158 |
-
|
159 |
-
|
160 |
-
|
161 |
-
|
162 |
-
|
163 |
-
|
164 |
-
|
165 |
-
|
166 |
-
|
167 |
-
|
168 |
-
|
169 |
-
|
170 |
-
|
171 |
-
|
172 |
-
|
173 |
-
|
174 |
-
|
175 |
-
|
176 |
-
|
177 |
-
|
178 |
-
|
179 |
-
|
180 |
-
|
181 |
-
|
182 |
-
|
183 |
-
|
184 |
-
|
185 |
-
|
186 |
-
|
187 |
-
|
188 |
-
|
189 |
-
|
190 |
-
|
191 |
-
|
192 |
-
|
193 |
-
|
194 |
-
|
195 |
-
|
196 |
-
|
197 |
-
|
198 |
-
|
199 |
-
|
200 |
-
|
201 |
-
|
202 |
-
|
203 |
-
|
204 |
-
|
205 |
-
|
206 |
-
|
207 |
-
|
208 |
-
|
209 |
-
|
210 |
-
|
211 |
-
|
212 |
-
|
213 |
-
|
214 |
-
|
215 |
-
|
216 |
-
|
217 |
-
|
218 |
-
|
219 |
-
|
220 |
-
|
221 |
-
|
222 |
-
|
223 |
-
|
224 |
-
|
225 |
-
|
226 |
-
|
227 |
-
|
228 |
-
|
229 |
-
|
230 |
-
|
231 |
-
|
232 |
-
|
233 |
-
|
234 |
-
|
235 |
-
|
236 |
-
|
237 |
-
|
238 |
-
|
239 |
-
|
240 |
-
|
241 |
-
|
242 |
-
|
243 |
-
|
244 |
-
|
245 |
-
|
246 |
-
|
247 |
-
|
248 |
-
|
249 |
-
|
250 |
-
|
251 |
-
|
252 |
-
|
253 |
-
|
254 |
-
|
255 |
-
|
256 |
-
|
257 |
-
|
258 |
-
|
259 |
-
|
260 |
-
|
261 |
-
|
262 |
-
|
263 |
-
|
264 |
-
|
265 |
-
|
266 |
-
|
267 |
-
|
268 |
-
|
269 |
-
|
270 |
-
|
271 |
-
|
272 |
-
|
273 |
-
|
274 |
-
|
275 |
-
|
276 |
-
|
277 |
-
|
278 |
-
|
279 |
-
|
280 |
-
|
281 |
-
|
282 |
-
|
283 |
-
|
284 |
-
|
285 |
-
|
286 |
-
|
287 |
-
|
288 |
-
|
289 |
-
|
290 |
-
|
291 |
-
|
292 |
-
|
293 |
-
|
294 |
-
|
295 |
-
|
296 |
-
|
297 |
-
|
298 |
-
|
299 |
-
|
300 |
-
|
301 |
-
|
302 |
-
|
303 |
-
|
304 |
-
|
305 |
-
|
306 |
-
|
307 |
-
|
308 |
-
|
309 |
-
|
310 |
-
|
311 |
-
|
312 |
-
|
313 |
-
|
314 |
-
|
315 |
-
|
316 |
-
|
317 |
-
|
318 |
-
|
319 |
-
|
320 |
-
|
321 |
-
|
322 |
-
|
323 |
-
|
324 |
-
|
325 |
-
|
326 |
-
|
327 |
-
|
328 |
-
|
329 |
-
|
330 |
-
|
331 |
-
|
332 |
-
|
333 |
-
|
334 |
-
|
335 |
-
|
336 |
-
|
337 |
-
|
338 |
-
|
339 |
-
|
340 |
-
|
341 |
-
|
342 |
-
|
343 |
-
|
344 |
-
|
345 |
-
|
346 |
-
|
347 |
-
|
348 |
-
|
349 |
-
|
350 |
-
|
351 |
-
|
352 |
-
|
353 |
-
|
354 |
-
|
355 |
-
|
356 |
-
|
357 |
-
|
358 |
-
|
359 |
-
|
360 |
-
|
361 |
-
|
362 |
-
|
363 |
-
|
364 |
-
|
365 |
-
|
366 |
-
|
367 |
-
|
368 |
-
|
369 |
-
|
370 |
-
|
371 |
-
|
372 |
-
|
373 |
-
|
374 |
-
|
375 |
-
|
376 |
-
|
377 |
-
|
378 |
-
|
379 |
-
|
380 |
-
|
381 |
-
|
382 |
-
|
383 |
-
|
384 |
-
|
385 |
-
|
386 |
-
|
387 |
-
|
388 |
-
|
389 |
-
|
390 |
-
|
391 |
-
|
392 |
-
|
393 |
-
|
394 |
-
|
395 |
-
|
396 |
-
|
397 |
-
|
398 |
-
|
399 |
-
|
400 |
-
|
401 |
-
|
402 |
-
|
403 |
-
|
404 |
-
|
405 |
-
|
406 |
-
|
407 |
-
|
408 |
-
|
409 |
-
|
410 |
-
|
411 |
-
|
412 |
-
|
413 |
-
|
414 |
-
|
415 |
-
|
416 |
-
|
417 |
-
|
418 |
-
|
419 |
-
|
420 |
-
|
421 |
-
|
422 |
-
|
423 |
-
|
424 |
-
|
425 |
-
|
426 |
-
|
427 |
-
|
428 |
-
|
429 |
-
|
430 |
-
|
431 |
-
|
432 |
-
|
433 |
-
|
434 |
-
|
435 |
-
|
436 |
-
|
437 |
-
|
438 |
-
|
439 |
-
|
440 |
-
|
441 |
-
|
442 |
-
|
443 |
-
|
444 |
-
|
445 |
-
|
446 |
-
|
447 |
-
|
448 |
-
|
449 |
-
|
450 |
-
|
451 |
-
|
452 |
-
|
453 |
-
|
454 |
-
|
455 |
-
|
456 |
-
|
457 |
-
|
458 |
-
|
459 |
-
|
460 |
-
|
461 |
-
|
462 |
-
|
463 |
-
|
464 |
-
|
465 |
-
|
466 |
-
|
467 |
-
|
468 |
-
|
469 |
-
|
470 |
-
|
471 |
-
|
472 |
-
|
473 |
-
|
474 |
-
|
475 |
-
|
476 |
-
|
477 |
-
|
478 |
-
|
479 |
-
|
480 |
-
|
481 |
-
|
482 |
-
|
483 |
-
|
484 |
-
|
485 |
-
|
486 |
-
|
487 |
-
|
488 |
-
|
489 |
-
|
490 |
-
|
491 |
-
|
492 |
-
|
493 |
-
|
494 |
-
|
495 |
-
|
496 |
-
|
497 |
-
|
498 |
-
|
499 |
-
|
500 |
-
|
501 |
-
|
502 |
-
|
503 |
-
|
504 |
-
|
505 |
-
|
506 |
-
|
507 |
-
|
508 |
-
|
509 |
-
|
510 |
-
|
511 |
-
|
512 |
-
|
513 |
-
|
514 |
-
|
515 |
-
|
516 |
-
|
517 |
-
|
518 |
-
|
519 |
-
|
520 |
-
|
521 |
-
|
522 |
-
|
523 |
-
|
524 |
-
|
525 |
-
|
526 |
-
|
527 |
-
|
528 |
-
|
529 |
-
|
530 |
-
|
531 |
-
|
532 |
-
|
533 |
-
|
534 |
-
|
535 |
-
|
536 |
-
|
537 |
-
|
538 |
-
|
539 |
-
|
540 |
-
|
541 |
-
|
542 |
-
|
543 |
-
|
544 |
-
|
545 |
-
|
546 |
-
|
547 |
-
|
548 |
-
|
549 |
-
|
550 |
-
|
551 |
-
|
552 |
-
|
553 |
-
|
554 |
-
|
555 |
-
|
556 |
-
|
557 |
-
|
558 |
-
|
559 |
-
|
560 |
-
|
561 |
-
|
562 |
-
|
563 |
-
|
564 |
-
|
565 |
-
|
566 |
-
|
567 |
-
|
568 |
-
|
569 |
-
|
570 |
-
|
571 |
-
|
572 |
-
|
573 |
-
|
574 |
-
|
575 |
-
|
576 |
-
|
577 |
-
|
578 |
-
|
579 |
-
|
580 |
-
|
581 |
-
|
582 |
-
|
583 |
-
|
584 |
-
|
585 |
-
|
586 |
-
|
587 |
-
|
588 |
-
|
589 |
-
|
590 |
-
|
591 |
-
|
592 |
-
|
593 |
-
|
594 |
-
|
595 |
-
|
596 |
-
|
597 |
-
|
598 |
-
|
599 |
-
|
600 |
-
|
601 |
-
|
602 |
-
|
603 |
-
|
604 |
-
|
605 |
-
|
606 |
-
|
607 |
-
|
608 |
-
|
609 |
-
|
610 |
-
|
611 |
-
|
612 |
-
|
613 |
-
|
614 |
-
|
615 |
-
return new GoogleGAL_Auth_LoginTicket($envelope, $payload);
|
616 |
-
}
|
617 |
-
|
618 |
-
/**
|
619 |
-
* Add a parameter to the auth params if not empty string.
|
620 |
-
*/
|
621 |
-
private function maybeAddParam($params, $name)
|
622 |
-
{
|
623 |
-
$param = $this->client->getClassConfig($this, $name);
|
624 |
-
if ($param != '') {
|
625 |
-
$params[$name] = $param;
|
626 |
-
}
|
627 |
-
return $params;
|
628 |
-
}
|
629 |
-
}
|
1 |
+
<?php
|
2 |
+
/*
|
3 |
+
* Copyright 2008 Google Inc.
|
4 |
+
*
|
5 |
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
6 |
+
* you may not use this file except in compliance with the License.
|
7 |
+
* You may obtain a copy of the License at
|
8 |
+
*
|
9 |
+
* https://www.apache.org/licenses/LICENSE-2.0
|
10 |
+
*
|
11 |
+
* Unless required by applicable law or agreed to in writing, software
|
12 |
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
13 |
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
14 |
+
* See the License for the specific language governing permissions and
|
15 |
+
* limitations under the License.
|
16 |
+
*/
|
17 |
+
|
18 |
+
require_once realpath( dirname( __FILE__ ) . '/../../../autoload.php' );
|
19 |
+
|
20 |
+
/**
|
21 |
+
* Authentication class that deals with the OAuth 2 web-server authentication flow
|
22 |
+
*
|
23 |
+
* @author Chris Chabot <chabotc@google.com>
|
24 |
+
* @author Chirag Shah <chirags@google.com>
|
25 |
+
*/
|
26 |
+
class GoogleGAL_Auth_OAuth2 extends GoogleGAL_Auth_Abstract {
|
27 |
+
|
28 |
+
const OAUTH2_REVOKE_URI = 'https://accounts.google.com/o/oauth2/revoke';
|
29 |
+
const OAUTH2_TOKEN_URI = 'https://accounts.google.com/o/oauth2/token';
|
30 |
+
const OAUTH2_AUTH_URL = 'https://accounts.google.com/o/oauth2/auth';
|
31 |
+
const CLOCK_SKEW_SECS = 300; // five minutes in seconds
|
32 |
+
const AUTH_TOKEN_LIFETIME_SECS = 300; // five minutes in seconds
|
33 |
+
const MAX_TOKEN_LIFETIME_SECS = 86400; // one day in seconds
|
34 |
+
const OAUTH2_ISSUER = 'accounts.google.com';
|
35 |
+
|
36 |
+
/** @var GoogleGAL_Auth_AssertionCredentials $assertionCredentials */
|
37 |
+
private $assertionCredentials;
|
38 |
+
|
39 |
+
/**
|
40 |
+
* @var string The state parameters for CSRF and other forgery protection.
|
41 |
+
*/
|
42 |
+
private $state;
|
43 |
+
|
44 |
+
/**
|
45 |
+
* @var array The token bundle.
|
46 |
+
*/
|
47 |
+
private $token = array();
|
48 |
+
|
49 |
+
/**
|
50 |
+
* @var GoogleGAL_Client the base client
|
51 |
+
*/
|
52 |
+
private $client;
|
53 |
+
|
54 |
+
/**
|
55 |
+
* Instantiates the class, but does not initiate the login flow, leaving it
|
56 |
+
* to the discretion of the caller.
|
57 |
+
*/
|
58 |
+
public function __construct( GoogleGAL_Client $client ) {
|
59 |
+
$this->client = $client;
|
60 |
+
}
|
61 |
+
|
62 |
+
/**
|
63 |
+
* Perform an authenticated / signed apiHttpRequest.
|
64 |
+
* This function takes the apiHttpRequest, calls apiAuth->sign on it
|
65 |
+
* (which can modify the request in what ever way fits the auth mechanism)
|
66 |
+
* and then calls apiCurlIO::makeRequest on the signed request
|
67 |
+
*
|
68 |
+
* @param GoogleGAL_Http_Request $request
|
69 |
+
* @return GoogleGAL_Http_Request The resulting HTTP response including the
|
70 |
+
* responseHttpCode, responseHeaders and responseBody.
|
71 |
+
*/
|
72 |
+
public function authenticatedRequest( GoogleGAL_Http_Request $request ) {
|
73 |
+
$request = $this->sign( $request );
|
74 |
+
return $this->client->getIo()->makeRequest( $request );
|
75 |
+
}
|
76 |
+
|
77 |
+
/**
|
78 |
+
* @param string $code
|
79 |
+
* @throws GoogleGAL_Auth_Exception
|
80 |
+
* @return string
|
81 |
+
*/
|
82 |
+
public function authenticate( $code ) {
|
83 |
+
if ( strlen( $code ) == 0 ) {
|
84 |
+
throw new GoogleGAL_Auth_Exception( 'Invalid code' );
|
85 |
+
}
|
86 |
+
|
87 |
+
// We got here from the redirect from a successful authorization grant,
|
88 |
+
// fetch the access token
|
89 |
+
$request = new GoogleGAL_Http_Request(
|
90 |
+
self::OAUTH2_TOKEN_URI,
|
91 |
+
'POST',
|
92 |
+
array(),
|
93 |
+
array(
|
94 |
+
'code' => $code,
|
95 |
+
'grant_type' => 'authorization_code',
|
96 |
+
'redirect_uri' => $this->client->getClassConfig( $this, 'redirect_uri' ),
|
97 |
+
'client_id' => $this->client->getClassConfig( $this, 'client_id' ),
|
98 |
+
'client_secret' => $this->client->getClassConfig( $this, 'client_secret' ),
|
99 |
+
)
|
100 |
+
);
|
101 |
+
$request->disableGzip();
|
102 |
+
$response = $this->client->getIo()->makeRequest( $request );
|
103 |
+
|
104 |
+
if ( $response->getResponseHttpCode() == 200 ) {
|
105 |
+
$this->setAccessToken( $response->getResponseBody() );
|
106 |
+
$this->token['created'] = time();
|
107 |
+
return $this->getAccessToken();
|
108 |
+
} else {
|
109 |
+
$decodedResponse = json_decode( $response->getResponseBody(), true );
|
110 |
+
if ( $decodedResponse != null && $decodedResponse['error'] ) {
|
111 |
+
$errorText = $decodedResponse['error'];
|
112 |
+
if ( isset( $decodedResponse['error_description'] ) ) {
|
113 |
+
$errorText .= ': ' . $decodedResponse['error_description'];
|
114 |
+
}
|
115 |
+
}
|
116 |
+
throw new GoogleGAL_Auth_Exception(
|
117 |
+
sprintf(
|
118 |
+
"Error fetching OAuth2 access token, message: '%s'",
|
119 |
+
$errorText
|
120 |
+
),
|
121 |
+
$response->getResponseHttpCode()
|
122 |
+
);
|
123 |
+
}
|
124 |
+
}
|
125 |
+
|
126 |
+
/**
|
127 |
+
* Create a URL to obtain user authorization.
|
128 |
+
* The authorization endpoint allows the user to first
|
129 |
+
* authenticate, and then grant/deny the access request.
|
130 |
+
*
|
131 |
+
* @param string $scope The scope is expressed as a list of space-delimited strings.
|
132 |
+
* @return string
|
133 |
+
*/
|
134 |
+
public function createAuthUrl( $scope ) {
|
135 |
+
$params = array(
|
136 |
+
'response_type' => 'code',
|
137 |
+
'redirect_uri' => $this->client->getClassConfig( $this, 'redirect_uri' ),
|
138 |
+
'client_id' => $this->client->getClassConfig( $this, 'client_id' ),
|
139 |
+
'scope' => $scope,
|
140 |
+
'access_type' => $this->client->getClassConfig( $this, 'access_type' ),
|
141 |
+
);
|
142 |
+
|
143 |
+
// Prefer prompt to approval prompt.
|
144 |
+
$params = $this->maybeAddParam( $params, 'prompt' );
|
145 |
+
$params = $this->maybeAddParam( $params, 'login_hint' );
|
146 |
+
$params = $this->maybeAddParam( $params, 'hd' );
|
147 |
+
$params = $this->maybeAddParam( $params, 'openid.realm' );
|
148 |
+
$params = $this->maybeAddParam( $params, 'include_granted_scopes' );
|
149 |
+
|
150 |
+
// If the list of scopes contains plus.login, add request_visible_actions
|
151 |
+
// to auth URL.
|
152 |
+
$rva = $this->client->getClassConfig( $this, 'request_visible_actions' );
|
153 |
+
if ( strpos( $scope, 'plus.login' ) && strlen( $rva ) > 0 ) {
|
154 |
+
$params['request_visible_actions'] = $rva;
|
155 |
+
}
|
156 |
+
|
157 |
+
if ( isset( $this->state ) ) {
|
158 |
+
$params['state'] = $this->state;
|
159 |
+
}
|
160 |
+
|
161 |
+
return self::OAUTH2_AUTH_URL . '?' . http_build_query( $params, '', '&' );
|
162 |
+
}
|
163 |
+
|
164 |
+
/**
|
165 |
+
* @param string $token
|
166 |
+
* @throws GoogleGAL_Auth_Exception
|
167 |
+
*/
|
168 |
+
public function setAccessToken( $token ) {
|
169 |
+
$token = json_decode( $token, true );
|
170 |
+
if ( $token == null ) {
|
171 |
+
throw new GoogleGAL_Auth_Exception( 'Could not json decode the token' );
|
172 |
+
}
|
173 |
+
if ( ! isset( $token['access_token'] ) ) {
|
174 |
+
throw new GoogleGAL_Auth_Exception( 'Invalid token format' );
|
175 |
+
}
|
176 |
+
$this->token = $token;
|
177 |
+
}
|
178 |
+
|
179 |
+
public function getAccessToken() {
|
180 |
+
return json_encode( $this->token );
|
181 |
+
}
|
182 |
+
|
183 |
+
public function getRefreshToken() {
|
184 |
+
if ( array_key_exists( 'refresh_token', $this->token ) ) {
|
185 |
+
return $this->token['refresh_token'];
|
186 |
+
} else {
|
187 |
+
return null;
|
188 |
+
}
|
189 |
+
}
|
190 |
+
|
191 |
+
public function setState( $state ) {
|
192 |
+
$this->state = $state;
|
193 |
+
}
|
194 |
+
|
195 |
+
public function setAssertionCredentials( GoogleGAL_Auth_AssertionCredentials $creds ) {
|
196 |
+
$this->assertionCredentials = $creds;
|
197 |
+
}
|
198 |
+
|
199 |
+
/**
|
200 |
+
* Include an accessToken in a given apiHttpRequest.
|
201 |
+
*
|
202 |
+
* @param GoogleGAL_Http_Request $request
|
203 |
+
* @return GoogleGAL_Http_Request
|
204 |
+
* @throws GoogleGAL_Auth_Exception
|
205 |
+
*/
|
206 |
+
public function sign( GoogleGAL_Http_Request $request ) {
|
207 |
+
// add the developer key to the request before signing it
|
208 |
+
if ( $this->client->getClassConfig( $this, 'developer_key' ) ) {
|
209 |
+
$request->setQueryParam( 'key', $this->client->getClassConfig( $this, 'developer_key' ) );
|
210 |
+
}
|
211 |
+
|
212 |
+
// Cannot sign the request without an OAuth access token.
|
213 |
+
if ( null == $this->token && null == $this->assertionCredentials ) {
|
214 |
+
return $request;
|
215 |
+
}
|
216 |
+
|
217 |
+
// Check if the token is set to expire in the next 30 seconds
|
218 |
+
// (or has already expired).
|
219 |
+
if ( $this->isAccessTokenExpired() ) {
|
220 |
+
if ( $this->assertionCredentials ) {
|
221 |
+
$this->refreshTokenWithAssertion();
|
222 |
+
} else {
|
223 |
+
$this->client->getLogger()->debug( 'OAuth2 access token expired' );
|
224 |
+
if ( ! array_key_exists( 'refresh_token', $this->token ) ) {
|
225 |
+
$error = 'The OAuth 2.0 access token has expired,'
|
226 |
+
. ' and a refresh token is not available. Refresh tokens'
|
227 |
+
. ' are not returned for responses that were auto-approved.';
|
228 |
+
|
229 |
+
$this->client->getLogger()->error( $error );
|
230 |
+
throw new GoogleGAL_Auth_Exception( $error );
|
231 |
+
}
|
232 |
+
$this->refreshToken( $this->token['refresh_token'] );
|
233 |
+
}
|
234 |
+
}
|
235 |
+
|
236 |
+
$this->client->getLogger()->debug( 'OAuth2 authentication' );
|
237 |
+
|
238 |
+
// Add the OAuth2 header to the request
|
239 |
+
$request->setRequestHeaders(
|
240 |
+
array( 'Authorization' => 'Bearer ' . $this->token['access_token'] )
|
241 |
+
);
|
242 |
+
|
243 |
+
return $request;
|
244 |
+
}
|
245 |
+
|
246 |
+
/**
|
247 |
+
* Fetches a fresh access token with the given refresh token.
|
248 |
+
*
|
249 |
+
* @param string $refreshToken
|
250 |
+
* @return void
|
251 |
+
*/
|
252 |
+
public function refreshToken( $refreshToken ) {
|
253 |
+
$this->refreshTokenRequest(
|
254 |
+
array(
|
255 |
+
'client_id' => $this->client->getClassConfig( $this, 'client_id' ),
|
256 |
+
'client_secret' => $this->client->getClassConfig( $this, 'client_secret' ),
|
257 |
+
'refresh_token' => $refreshToken,
|
258 |
+
'grant_type' => 'refresh_token',
|
259 |
+
)
|
260 |
+
);
|
261 |
+
}
|
262 |
+
|
263 |
+
/**
|
264 |
+
* Fetches a fresh access token with a given assertion token.
|
265 |
+
*
|
266 |
+
* @param GoogleGAL_Auth_AssertionCredentials $assertionCredentials optional.
|
267 |
+
* @return void
|
268 |
+
*/
|
269 |
+
public function refreshTokenWithAssertion( $assertionCredentials = null ) {
|
270 |
+
if ( ! $assertionCredentials ) {
|
271 |
+
$assertionCredentials = $this->assertionCredentials;
|
272 |
+
}
|
273 |
+
|
274 |
+
$cacheKey = $assertionCredentials->getCacheKey();
|
275 |
+
|
276 |
+
if ( $cacheKey ) {
|
277 |
+
// We can check whether we have a token available in the
|
278 |
+
// cache. If it is expired, we can retrieve a new one from
|
279 |
+
// the assertion.
|
280 |
+
$token = $this->client->getCache()->get( $cacheKey );
|
281 |
+
if ( $token ) {
|
282 |
+
$this->setAccessToken( $token );
|
283 |
+
}
|
284 |
+
if ( ! $this->isAccessTokenExpired() ) {
|
285 |
+
return;
|
286 |
+
}
|
287 |
+
}
|
288 |
+
|
289 |
+
$this->client->getLogger()->debug( 'OAuth2 access token expired' );
|
290 |
+
$this->refreshTokenRequest(
|
291 |
+
array(
|
292 |
+
'grant_type' => 'assertion',
|
293 |
+
'assertion_type' => $assertionCredentials->assertionType,
|
294 |
+
'assertion' => $assertionCredentials->generateAssertion(),
|
295 |
+
)
|
296 |
+
);
|
297 |
+
|
298 |
+
if ( $cacheKey ) {
|
299 |
+
// Attempt to cache the token.
|
300 |
+
$this->client->getCache()->set(
|
301 |
+
$cacheKey,
|
302 |
+
$this->getAccessToken()
|
303 |
+
);
|
304 |
+
}
|
305 |
+
}
|
306 |
+
|
307 |
+
private function refreshTokenRequest( $params ) {
|
308 |
+
if ( isset( $params['assertion'] ) ) {
|
309 |
+
$this->client->getLogger()->info(
|
310 |
+
'OAuth2 access token refresh with Signed JWT assertion grants.'
|
311 |
+
);
|
312 |
+
} else {
|
313 |
+
$this->client->getLogger()->info( 'OAuth2 access token refresh' );
|
314 |
+
}
|
315 |
+
|
316 |
+
$http = new GoogleGAL_Http_Request(
|
317 |
+
self::OAUTH2_TOKEN_URI,
|
318 |
+
'POST',
|
319 |
+
array(),
|
320 |
+
$params
|
321 |
+
);
|
322 |
+
$http->disableGzip();
|
323 |
+
$request = $this->client->getIo()->makeRequest( $http );
|
324 |
+
|
325 |
+
$code = $request->getResponseHttpCode();
|
326 |
+
$body = $request->getResponseBody();
|
327 |
+
if ( 200 == $code ) {
|
328 |
+
$token = json_decode( $body, true );
|
329 |
+
if ( $token == null ) {
|
330 |
+
throw new GoogleGAL_Auth_Exception( 'Could not json decode the access token' );
|
331 |
+
}
|
332 |
+
|
333 |
+
if ( ! isset( $token['access_token'] ) || ! isset( $token['expires_in'] ) ) {
|
334 |
+
throw new GoogleGAL_Auth_Exception( 'Invalid token format' );
|
335 |
+
}
|
336 |
+
|
337 |
+
if ( isset( $token['id_token'] ) ) {
|
338 |
+
$this->token['id_token'] = $token['id_token'];
|
339 |
+
}
|
340 |
+
$this->token['access_token'] = $token['access_token'];
|
341 |
+
$this->token['expires_in'] = $token['expires_in'];
|
342 |
+
$this->token['created'] = time();
|
343 |
+
} else {
|
344 |
+
throw new GoogleGAL_Auth_Exception( "Error refreshing the OAuth2 token, message: '$body'", $code );
|
345 |
+
}
|
346 |
+
}
|
347 |
+
|
348 |
+
/**
|
349 |
+
* Revoke an OAuth2 access token or refresh token. This method will revoke the current access
|
350 |
+
* token, if a token isn't provided.
|
351 |
+
*
|
352 |
+
* @throws GoogleGAL_Auth_Exception
|
353 |
+
* @param string|null $token The token (access token or a refresh token) that should be revoked.
|
354 |
+
* @return boolean Returns True if the revocation was successful, otherwise False.
|
355 |
+
*/
|
356 |
+
public function revokeToken( $token = null ) {
|
357 |
+
if ( ! $token ) {
|
358 |
+
if ( ! $this->token ) {
|
359 |
+
// Not initialized, no token to actually revoke
|
360 |
+
return false;
|
361 |
+
} elseif ( array_key_exists( 'refresh_token', $this->token ) ) {
|
362 |
+
$token = $this->token['refresh_token'];
|
363 |
+
} else {
|
364 |
+
$token = $this->token['access_token'];
|
365 |
+
}
|
366 |
+
}
|
367 |
+
$request = new GoogleGAL_Http_Request(
|
368 |
+
self::OAUTH2_REVOKE_URI,
|
369 |
+
'POST',
|
370 |
+
array(),
|
371 |
+
"token=$token"
|
372 |
+
);
|
373 |
+
$request->disableGzip();
|
374 |
+
$response = $this->client->getIo()->makeRequest( $request );
|
375 |
+
$code = $response->getResponseHttpCode();
|
376 |
+
if ( $code == 200 ) {
|
377 |
+
$this->token = null;
|
378 |
+
return true;
|
379 |
+
}
|
380 |
+
|
381 |
+
return false;
|
382 |
+
}
|
383 |
+
|
384 |
+
/**
|
385 |
+
* Returns if the access_token is expired.
|
386 |
+
*
|
387 |
+
* @return bool Returns True if the access_token is expired.
|
388 |
+
*/
|
389 |
+
public function isAccessTokenExpired() {
|
390 |
+
if ( ! $this->token || ! isset( $this->token['created'] ) ) {
|
391 |
+
return true;
|
392 |
+
}
|
393 |
+
|
394 |
+
// If the token is set to expire in the next 30 seconds.
|
395 |
+
$expired = ( $this->token['created']
|
396 |
+
+ ( $this->token['expires_in'] - 30 ) ) < time();
|
397 |
+
|
398 |
+
return $expired;
|
399 |
+
}
|
400 |
+
|
401 |
+
// Gets federated sign-on certificates to use for verifying identity tokens.
|
402 |
+
// Returns certs as array structure, where keys are key ids, and values
|
403 |
+
// are PEM encoded certificates.
|
404 |
+
private function getFederatedSignOnCerts() {
|
405 |
+
return $this->retrieveCertsFromLocation(
|
406 |
+
$this->client->getClassConfig( $this, 'federated_signon_certs_url' )
|
407 |
+
);
|
408 |
+
}
|
409 |
+
/**
|
410 |
+
* Retrieve and cache a certificates file.
|
411 |
+
*
|
412 |
+
* @param $url string location
|
413 |
+
* @throws GoogleGAL_Auth_Exception
|
414 |
+
* @return array certificates
|
415 |
+
*/
|
416 |
+
public function retrieveCertsFromLocation( $url ) {
|
417 |
+
// If we're retrieving a local file, just grab it.
|
418 |
+
if ( 'http' != substr( $url, 0, 4 ) ) {
|
419 |
+
$file = file_get_contents( $url );
|
420 |
+
if ( $file ) {
|
421 |
+
return json_decode( $file, true );
|
422 |
+
} else {
|
423 |
+
throw new GoogleGAL_Auth_Exception(
|
424 |
+
"Failed to retrieve verification certificates: '" .
|
425 |
+
$url . "'."
|
426 |
+
);
|
427 |
+
}
|
428 |
+
}
|
429 |
+
|
430 |
+
// This relies on makeRequest caching certificate responses.
|
431 |
+
$request = $this->client->getIo()->makeRequest(
|
432 |
+
new GoogleGAL_Http_Request(
|
433 |
+
$url
|
434 |
+
)
|
435 |
+
);
|
436 |
+
if ( $request->getResponseHttpCode() == 200 ) {
|
437 |
+
$certs = json_decode( $request->getResponseBody(), true );
|
438 |
+
if ( $certs ) {
|
439 |
+
return $certs;
|
440 |
+
}
|
441 |
+
}
|
442 |
+
throw new GoogleGAL_Auth_Exception(
|
443 |
+
"Failed to retrieve verification certificates: '" .
|
444 |
+
$request->getResponseBody() . "'.",
|
445 |
+
$request->getResponseHttpCode()
|
446 |
+
);
|
447 |
+
}
|
448 |
+
|
449 |
+
/**
|
450 |
+
* Verifies an id token and returns the authenticated apiLoginTicket.
|
451 |
+
* Throws an exception if the id token is not valid.
|
452 |
+
* The audience parameter can be used to control which id tokens are
|
453 |
+
* accepted. By default, the id token must have been issued to this OAuth2 client.
|
454 |
+
*
|
455 |
+
* @param $id_token
|
456 |
+
* @param $audience
|
457 |
+
* @return GoogleGAL_Auth_LoginTicket
|
458 |
+
*/
|
459 |
+
public function verifyIdToken( $id_token = null, $audience = null ) {
|
460 |
+
if ( ! $id_token ) {
|
461 |
+
$id_token = $this->token['id_token'];
|
462 |
+
}
|
463 |
+
$certs = $this->getFederatedSignonCerts();
|
464 |
+
if ( ! $audience ) {
|
465 |
+
$audience = $this->client->getClassConfig( $this, 'client_id' );
|
466 |
+
}
|
467 |
+
|
468 |
+
return $this->verifySignedJwtWithCerts( $id_token, $certs, $audience, self::OAUTH2_ISSUER );
|
469 |
+
}
|
470 |
+
|
471 |
+
/**
|
472 |
+
* Verifies the id token, returns the verified token contents.
|
473 |
+
*
|
474 |
+
* @param $jwt string the token
|
475 |
+
* @param $certs array of certificates
|
476 |
+
* @param $required_audience string the expected consumer of the token
|
477 |
+
* @param [ $issuer] the expected issues, defaults to Google
|
478 |
+
* @param [ $max_expiry] the max lifetime of a token, defaults to MAX_TOKEN_LIFETIME_SECS
|
479 |
+
* @throws GoogleGAL_Auth_Exception
|
480 |
+
* @return mixed token information if valid, false if not
|
481 |
+
*/
|
482 |
+
public function verifySignedJwtWithCerts(
|
483 |
+
$jwt,
|
484 |
+
$certs,
|
485 |
+
$required_audience,
|
486 |
+
$issuer = null,
|
487 |
+
$max_expiry = null
|
488 |
+
) {
|
489 |
+
if ( ! $max_expiry ) {
|
490 |
+
// Set the maximum time we will accept a token for.
|
491 |
+
$max_expiry = self::MAX_TOKEN_LIFETIME_SECS;
|
492 |
+
}
|
493 |
+
|
494 |
+
$segments = explode( '.', $jwt );
|
495 |
+
if ( count( $segments ) != 3 ) {
|
496 |
+
throw new GoogleGAL_Auth_Exception( "Wrong number of segments in token: $jwt" );
|
497 |
+
}
|
498 |
+
$signed = $segments[0] . '.' . $segments[1];
|
499 |
+
$signature = GoogleGAL_Utils::urlSafeB64Decode( $segments[2] );
|
500 |
+
|
501 |
+
// Parse envelope.
|
502 |
+
$envelope = json_decode( GoogleGAL_Utils::urlSafeB64Decode( $segments[0] ), true );
|
503 |
+
if ( ! $envelope ) {
|
504 |
+
throw new GoogleGAL_Auth_Exception( "Can't parse token envelope: " . $segments[0] );
|
505 |
+
}
|
506 |
+
|
507 |
+
// Parse token
|
508 |
+
$json_body = GoogleGAL_Utils::urlSafeB64Decode( $segments[1] );
|
509 |
+
$payload = json_decode( $json_body, true );
|
510 |
+
if ( ! $payload ) {
|
511 |
+
throw new GoogleGAL_Auth_Exception( "Can't parse token payload: " . $segments[1] );
|
512 |
+
}
|
513 |
+
|
514 |
+
// Check signature
|
515 |
+
$verified = false;
|
516 |
+
foreach ( $certs as $keyName => $pem ) {
|
517 |
+
$public_key = new GoogleGAL_Verifier_Pem( $pem );
|
518 |
+
if ( $public_key->verify( $signed, $signature ) ) {
|
519 |
+
$verified = true;
|
520 |
+
break;
|
521 |
+
}
|
522 |
+
}
|
523 |
+
|
524 |
+
if ( ! $verified ) {
|
525 |
+
throw new GoogleGAL_Auth_Exception( "Invalid token signature: $jwt" );
|
526 |
+
}
|
527 |
+
|
528 |
+
// Check issued-at timestamp
|
529 |
+
$iat = 0;
|
530 |
+
if ( array_key_exists( 'iat', $payload ) ) {
|
531 |
+
$iat = $payload['iat'];
|
532 |
+
}
|
533 |
+
if ( ! $iat ) {
|
534 |
+
throw new GoogleGAL_Auth_Exception( "No issue time in token: $json_body" );
|
535 |
+
}
|
536 |
+
$earliest = $iat - self::CLOCK_SKEW_SECS;
|
537 |
+
|
538 |
+
// Check expiration timestamp
|
539 |
+
$now = time();
|
540 |
+
$exp = 0;
|
541 |
+
if ( array_key_exists( 'exp', $payload ) ) {
|
542 |
+
$exp = $payload['exp'];
|
543 |
+
}
|
544 |
+
if ( ! $exp ) {
|
545 |
+
throw new GoogleGAL_Auth_Exception( "No expiration time in token: $json_body" );
|
546 |
+
}
|
547 |
+
if ( $exp >= $now + $max_expiry ) {
|
548 |
+
throw new GoogleGAL_Auth_Exception(
|
549 |
+
sprintf( 'Expiration time too far in future: %s', $json_body )
|
550 |
+
);
|
551 |
+
}
|
552 |
+
|
553 |
+
$latest = $exp + self::CLOCK_SKEW_SECS;
|
554 |
+
if ( $now < $earliest ) {
|
555 |
+
throw new GoogleGAL_Auth_Exception(
|
556 |
+
sprintf(
|
557 |
+
'Token used too early, %s < %s: %s',
|
558 |
+
$now,
|
559 |
+
$earliest,
|
560 |
+
$json_body
|
561 |
+
)
|
562 |
+
);
|
563 |
+
}
|
564 |
+
if ( $now > $latest ) {
|
565 |
+
throw new GoogleGAL_Auth_Exception(
|
566 |
+
sprintf(
|
567 |
+
'Token used too late, %s > %s: %s',
|
568 |
+
$now,
|
569 |
+
$latest,
|
570 |
+
$json_body
|
571 |
+
)
|
572 |
+
);
|
573 |
+
}
|
574 |
+
|
575 |
+
$iss = $payload['iss'];
|
576 |
+
if ( $issuer && $iss != $issuer ) {
|
577 |
+
throw new GoogleGAL_Auth_Exception(
|
578 |
+
sprintf(
|
579 |
+
'Invalid issuer, %s != %s: %s',
|
580 |
+
$iss,
|
581 |
+
$issuer,
|
582 |
+
$json_body
|
583 |
+
)
|
584 |
+
);
|
585 |
+
}
|
586 |
+
|
587 |
+
// Check audience
|
588 |
+
$aud = $payload['aud'];
|
589 |
+
if ( $aud != $required_audience ) {
|
590 |
+
throw new GoogleGAL_Auth_Exception(
|
591 |
+
sprintf(
|
592 |
+
'Wrong recipient, %s != %s:',
|
593 |
+
$aud,
|
594 |
+
$required_audience,
|
595 |
+
$json_body
|
596 |
+
)
|
597 |
+
);
|
598 |
+
}
|
599 |
+
|
600 |
+
// All good.
|
601 |
+
return new GoogleGAL_Auth_LoginTicket( $envelope, $payload );
|
602 |
+
}
|
603 |
+
|
604 |
+
/**
|
605 |
+
* Add a parameter to the auth params if not empty string.
|
606 |
+
*/
|
607 |
+
private function maybeAddParam( $params, $name ) {
|
608 |
+
$param = $this->client->getClassConfig( $this, $name );
|
609 |
+
if ( $param != '' ) {
|
610 |
+
$params[ $name ] = $param;
|
611 |
+
}
|
612 |
+
return $params;
|
613 |
+
}
|
614 |
+
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
core/Google/Auth/Simple.php
CHANGED
@@ -1,64 +1,62 @@
|
|
1 |
-
<?php
|
2 |
-
/*
|
3 |
-
* Copyright 2010 Google Inc.
|
4 |
-
*
|
5 |
-
* Licensed under the Apache License, Version 2.0 (the "License");
|
6 |
-
* you may not use this file except in compliance with the License.
|
7 |
-
* You may obtain a copy of the License at
|
8 |
-
*
|
9 |
-
* https://www.apache.org/licenses/LICENSE-2.0
|
10 |
-
*
|
11 |
-
* Unless required by applicable law or agreed to in writing, software
|
12 |
-
* distributed under the License is distributed on an "AS IS" BASIS,
|
13 |
-
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
14 |
-
* See the License for the specific language governing permissions and
|
15 |
-
* limitations under the License.
|
16 |
-
*/
|
17 |
-
|
18 |
-
require_once realpath(dirname(__FILE__) . '/../../../autoload.php');
|
19 |
-
|
20 |
-
/**
|
21 |
-
* Simple API access implementation. Can either be used to make requests
|
22 |
-
* completely unauthenticated, or by using a Simple API Access developer
|
23 |
-
* key.
|
24 |
-
*
|
25 |
-
* @author
|
26 |
-
|
27 |
-
|
28 |
-
{
|
29 |
-
|
30 |
-
|
31 |
-
|
32 |
-
|
33 |
-
|
34 |
-
|
35 |
-
|
36 |
-
|
37 |
-
|
38 |
-
|
39 |
-
|
40 |
-
|
41 |
-
|
42 |
-
|
43 |
-
|
44 |
-
|
45 |
-
|
46 |
-
|
47 |
-
|
48 |
-
|
49 |
-
|
50 |
-
|
51 |
-
|
52 |
-
|
53 |
-
|
54 |
-
|
55 |
-
|
56 |
-
|
57 |
-
|
58 |
-
|
59 |
-
|
60 |
-
|
61 |
-
|
62 |
-
|
63 |
-
}
|
64 |
-
}
|
1 |
+
<?php
|
2 |
+
/*
|
3 |
+
* Copyright 2010 Google Inc.
|
4 |
+
*
|
5 |
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
6 |
+
* you may not use this file except in compliance with the License.
|
7 |
+
* You may obtain a copy of the License at
|
8 |
+
*
|
9 |
+
* https://www.apache.org/licenses/LICENSE-2.0
|
10 |
+
*
|
11 |
+
* Unless required by applicable law or agreed to in writing, software
|
12 |
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
13 |
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
14 |
+
* See the License for the specific language governing permissions and
|
15 |
+
* limitations under the License.
|
16 |
+
*/
|
17 |
+
|
18 |
+
require_once realpath( dirname( __FILE__ ) . '/../../../autoload.php' );
|
19 |
+
|
20 |
+
/**
|
21 |
+
* Simple API access implementation. Can either be used to make requests
|
22 |
+
* completely unauthenticated, or by using a Simple API Access developer
|
23 |
+
* key.
|
24 |
+
*
|
25 |
+
* @author Chris Chabot <chabotc@google.com>
|
26 |
+
* @author Chirag Shah <chirags@google.com>
|
27 |
+
*/
|
28 |
+
class GoogleGAL_Auth_Simple extends GoogleGAL_Auth_Abstract {
|
29 |
+
|
30 |
+
private $key = null;
|
31 |
+
private $client;
|
32 |
+
|
33 |
+
public function __construct( GoogleGAL_Client $client, $config = null ) {
|
34 |
+
$this->client = $client;
|
35 |
+
}
|
36 |
+
|
37 |
+
/**
|
38 |
+
* Perform an authenticated / signed apiHttpRequest.
|
39 |
+
* This function takes the apiHttpRequest, calls apiAuth->sign on it
|
40 |
+
* (which can modify the request in what ever way fits the auth mechanism)
|
41 |
+
* and then calls apiCurlIO::makeRequest on the signed request
|
42 |
+
*
|
43 |
+
* @param GoogleGAL_Http_Request $request
|
44 |
+
* @return GoogleGAL_Http_Request The resulting HTTP response including the
|
45 |
+
* responseHttpCode, responseHeaders and responseBody.
|
46 |
+
*/
|
47 |
+
public function authenticatedRequest( GoogleGAL_Http_Request $request ) {
|
48 |
+
$request = $this->sign( $request );
|
49 |
+
return $this->io->makeRequest( $request );
|
50 |
+
}
|
51 |
+
|
52 |
+
public function sign( GoogleGAL_Http_Request $request ) {
|
53 |
+
$key = $this->client->getClassConfig( $this, 'developer_key' );
|
54 |
+
if ( $key ) {
|
55 |
+
$this->client->getLogger()->debug(
|
56 |
+
'Simple API Access developer key authentication'
|
57 |
+
);
|
58 |
+
$request->setQueryParam( 'key', $key );
|
59 |
+
}
|
60 |
+
return $request;
|
61 |
+
}
|
62 |
+
}
|
|
|
|
core/Google/Cache/Abstract.php
CHANGED
@@ -1,53 +1,52 @@
|
|
1 |
-
<?php
|
2 |
-
/*
|
3 |
-
* Copyright 2008 Google Inc.
|
4 |
-
*
|
5 |
-
* Licensed under the Apache License, Version 2.0 (the "License");
|
6 |
-
* you may not use this file except in compliance with the License.
|
7 |
-
* You may obtain a copy of the License at
|
8 |
-
*
|
9 |
-
* https://www.apache.org/licenses/LICENSE-2.0
|
10 |
-
*
|
11 |
-
* Unless required by applicable law or agreed to in writing, software
|
12 |
-
* distributed under the License is distributed on an "AS IS" BASIS,
|
13 |
-
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
14 |
-
* See the License for the specific language governing permissions and
|
15 |
-
* limitations under the License.
|
16 |
-
*/
|
17 |
-
|
18 |
-
/**
|
19 |
-
* Abstract storage class
|
20 |
-
*
|
21 |
-
* @author Chris Chabot <chabotc@google.com>
|
22 |
-
*/
|
23 |
-
abstract class GoogleGAL_Cache_Abstract
|
24 |
-
|
25 |
-
|
26 |
-
|
27 |
-
|
28 |
-
|
29 |
-
|
30 |
-
|
31 |
-
|
32 |
-
|
33 |
-
|
34 |
-
|
35 |
-
|
36 |
-
|
37 |
-
|
38 |
-
|
39 |
-
|
40 |
-
|
41 |
-
|
42 |
-
|
43 |
-
|
44 |
-
|
45 |
-
|
46 |
-
|
47 |
-
|
48 |
-
|
49 |
-
|
50 |
-
|
51 |
-
|
52 |
-
|
53 |
-
}
|
1 |
+
<?php
|
2 |
+
/*
|
3 |
+
* Copyright 2008 Google Inc.
|
4 |
+
*
|
5 |
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
6 |
+
* you may not use this file except in compliance with the License.
|
7 |
+
* You may obtain a copy of the License at
|
8 |
+
*
|
9 |
+
* https://www.apache.org/licenses/LICENSE-2.0
|
10 |
+
*
|
11 |
+
* Unless required by applicable law or agreed to in writing, software
|
12 |
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
13 |
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
14 |
+
* See the License for the specific language governing permissions and
|
15 |
+
* limitations under the License.
|
16 |
+
*/
|
17 |
+
|
18 |
+
/**
|
19 |
+
* Abstract storage class
|
20 |
+
*
|
21 |
+
* @author Chris Chabot <chabotc@google.com>
|
22 |
+
*/
|
23 |
+
abstract class GoogleGAL_Cache_Abstract {
|
24 |
+
|
25 |
+
|
26 |
+
abstract public function __construct( GoogleGAL_Client $client);
|
27 |
+
|
28 |
+
/**
|
29 |
+
* Retrieves the data for the given key, or false if they
|
30 |
+
* key is unknown or expired
|
31 |
+
*
|
32 |
+
* @param String $key The key who's data to retrieve
|
33 |
+
* @param boolean|int $expiration Expiration time in seconds
|
34 |
+
*/
|
35 |
+
abstract public function get( $key, $expiration = false);
|
36 |
+
|
37 |
+
/**
|
38 |
+
* Store the key => $value set. The $value is serialized
|
39 |
+
* by this function so can be of any type
|
40 |
+
*
|
41 |
+
* @param string $key Key of the data
|
42 |
+
* @param string $value data
|
43 |
+
*/
|
44 |
+
abstract public function set( $key, $value);
|
45 |
+
|
46 |
+
/**
|
47 |
+
* Removes the key/data pair for the given $key
|
48 |
+
*
|
49 |
+
* @param String $key
|
50 |
+
*/
|
51 |
+
abstract public function delete( $key);
|
52 |
+
}
|
|
core/Google/Cache/Apc.php
CHANGED
@@ -1,111 +1,122 @@
|
|
1 |
-
<?php
|
2 |
-
/*
|
3 |
-
* Copyright 2010 Google Inc.
|
4 |
-
*
|
5 |
-
* Licensed under the Apache License, Version 2.0 (the "License");
|
6 |
-
* you may not use this file except in compliance with the License.
|
7 |
-
* You may obtain a copy of the License at
|
8 |
-
*
|
9 |
-
* https://www.apache.org/licenses/LICENSE-2.0
|
10 |
-
*
|
11 |
-
* Unless required by applicable law or agreed to in writing, software
|
12 |
-
* distributed under the License is distributed on an "AS IS" BASIS,
|
13 |
-
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
14 |
-
* See the License for the specific language governing permissions and
|
15 |
-
* limitations under the License.
|
16 |
-
*/
|
17 |
-
|
18 |
-
require_once realpath(dirname(__FILE__) . '/../../../autoload.php');
|
19 |
-
|
20 |
-
/**
|
21 |
-
* A persistent storage class based on the APC cache, which is not
|
22 |
-
* really very persistent, as soon as you restart your web server
|
23 |
-
* the storage will be wiped, however for debugging and/or speed
|
24 |
-
* it can be useful, and cache is a lot cheaper then storage.
|
25 |
-
*
|
26 |
-
* @author Chris Chabot <chabotc@google.com>
|
27 |
-
*/
|
28 |
-
class GoogleGAL_Cache_Apc extends GoogleGAL_Cache_Abstract
|
29 |
-
|
30 |
-
|
31 |
-
|
32 |
-
|
33 |
-
|
34 |
-
|
35 |
-
|
36 |
-
|
37 |
-
|
38 |
-
|
39 |
-
|
40 |
-
|
41 |
-
|
42 |
-
|
43 |
-
|
44 |
-
|
45 |
-
|
46 |
-
|
47 |
-
|
48 |
-
|
49 |
-
|
50 |
-
|
51 |
-
|
52 |
-
|
53 |
-
|
54 |
-
|
55 |
-
|
56 |
-
|
57 |
-
|
58 |
-
|
59 |
-
|
60 |
-
|
61 |
-
|
62 |
-
|
63 |
-
|
64 |
-
|
65 |
-
|
66 |
-
|
67 |
-
|
68 |
-
|
69 |
-
|
70 |
-
|
71 |
-
|
72 |
-
|
73 |
-
|
74 |
-
|
75 |
-
|
76 |
-
|
77 |
-
|
78 |
-
|
79 |
-
|
80 |
-
|
81 |
-
|
82 |
-
|
83 |
-
|
84 |
-
|
85 |
-
|
86 |
-
|
87 |
-
|
88 |
-
|
89 |
-
|
90 |
-
|
91 |
-
|
92 |
-
|
93 |
-
|
94 |
-
|
95 |
-
|
96 |
-
|
97 |
-
|
98 |
-
|
99 |
-
|
100 |
-
|
101 |
-
|
102 |
-
|
103 |
-
|
104 |
-
|
105 |
-
|
106 |
-
|
107 |
-
|
108 |
-
|
109 |
-
|
110 |
-
|
111 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/*
|
3 |
+
* Copyright 2010 Google Inc.
|
4 |
+
*
|
5 |
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
6 |
+
* you may not use this file except in compliance with the License.
|
7 |
+
* You may obtain a copy of the License at
|
8 |
+
*
|
9 |
+
* https://www.apache.org/licenses/LICENSE-2.0
|
10 |
+
*
|
11 |
+
* Unless required by applicable law or agreed to in writing, software
|
12 |
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
13 |
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
14 |
+
* See the License for the specific language governing permissions and
|
15 |
+
* limitations under the License.
|
16 |
+
*/
|
17 |
+
|
18 |
+
require_once realpath( dirname( __FILE__ ) . '/../../../autoload.php' );
|
19 |
+
|
20 |
+
/**
|
21 |
+
* A persistent storage class based on the APC cache, which is not
|
22 |
+
* really very persistent, as soon as you restart your web server
|
23 |
+
* the storage will be wiped, however for debugging and/or speed
|
24 |
+
* it can be useful, and cache is a lot cheaper then storage.
|
25 |
+
*
|
26 |
+
* @author Chris Chabot <chabotc@google.com>
|
27 |
+
*/
|
28 |
+
class GoogleGAL_Cache_Apc extends GoogleGAL_Cache_Abstract {
|
29 |
+
|
30 |
+
/**
|
31 |
+
* @var GoogleGAL_Client the current client
|
32 |
+
*/
|
33 |
+
private $client;
|
34 |
+
|
35 |
+
public function __construct( GoogleGAL_Client $client ) {
|
36 |
+
if ( ! function_exists( 'apc_add' ) ) {
|
37 |
+
$error = 'Apc functions not available';
|
38 |
+
|
39 |
+
$client->getLogger()->error( $error );
|
40 |
+
throw new GoogleGAL_Cache_Exception( $error );
|
41 |
+
}
|
42 |
+
|
43 |
+
$this->client = $client;
|
44 |
+
}
|
45 |
+
|
46 |
+
/**
|
47 |
+
* @inheritDoc
|
48 |
+
*/
|
49 |
+
public function get( $key, $expiration = false ) {
|
50 |
+
$ret = apc_fetch( $key );
|
51 |
+
if ( $ret === false ) {
|
52 |
+
$this->client->getLogger()->debug(
|
53 |
+
'APC cache miss',
|
54 |
+
array( 'key' => $key )
|
55 |
+
);
|
56 |
+
return false;
|
57 |
+
}
|
58 |
+
if ( is_numeric( $expiration ) && ( time() - $ret['time'] > $expiration ) ) {
|
59 |
+
$this->client->getLogger()->debug(
|
60 |
+
'APC cache miss (expired)',
|
61 |
+
array(
|
62 |
+
'key' => $key,
|
63 |
+
'var' => $ret,
|
64 |
+
)
|
65 |
+
);
|
66 |
+
$this->delete( $key );
|
67 |
+
return false;
|
68 |
+
}
|
69 |
+
|
70 |
+
$this->client->getLogger()->debug(
|
71 |
+
'APC cache hit',
|
72 |
+
array(
|
73 |
+
'key' => $key,
|
74 |
+
'var' => $ret,
|
75 |
+
)
|
76 |
+
);
|
77 |
+
|
78 |
+
return $ret['data'];
|
79 |
+
}
|
80 |
+
|
81 |
+
/**
|
82 |
+
* @inheritDoc
|
83 |
+
*/
|
84 |
+
public function set( $key, $value ) {
|
85 |
+
$var = array(
|
86 |
+
'time' => time(),
|
87 |
+
'data' => $value,
|
88 |
+
);
|
89 |
+
$rc = apc_store( $key, $var );
|
90 |
+
|
91 |
+
if ( $rc == false ) {
|
92 |
+
$this->client->getLogger()->error(
|
93 |
+
'APC cache set failed',
|
94 |
+
array(
|
95 |
+
'key' => $key,
|
96 |
+
'var' => $var,
|
97 |
+
)
|
98 |
+
);
|
99 |
+
throw new GoogleGAL_Cache_Exception( "Couldn't store data" );
|
100 |
+
}
|
101 |
+
|
102 |
+
$this->client->getLogger()->debug(
|
103 |
+
'APC cache set',
|
104 |
+
array(
|
105 |
+
'key' => $key,
|
106 |
+
'var' => $var,
|
107 |
+
)
|
108 |
+
);
|
109 |
+
}
|
110 |
+
|
111 |
+
/**
|
112 |
+
* @inheritDoc
|
113 |
+
* @param String $key
|
114 |
+
*/
|
115 |
+
public function delete( $key ) {
|
116 |
+
$this->client->getLogger()->debug(
|
117 |
+
'APC cache delete',
|
118 |
+
array( 'key' => $key )
|
119 |
+
);
|
120 |
+
apc_delete( $key );
|
121 |
+
}
|
122 |
+
}
|
core/Google/Cache/Exception.php
CHANGED
@@ -1,22 +1,22 @@
|
|
1 |
-
<?php
|
2 |
-
/*
|
3 |
-
* Copyright 2013 Google Inc.
|
4 |
-
*
|
5 |
-
* Licensed under the Apache License, Version 2.0 (the "License");
|
6 |
-
* you may not use this file except in compliance with the License.
|
7 |
-
* You may obtain a copy of the License at
|
8 |
-
*
|
9 |
-
* https://www.apache.org/licenses/LICENSE-2.0
|
10 |
-
*
|
11 |
-
* Unless required by applicable law or agreed to in writing, software
|
12 |
-
* distributed under the License is distributed on an "AS IS" BASIS,
|
13 |
-
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
14 |
-
* See the License for the specific language governing permissions and
|
15 |
-
* limitations under the License.
|
16 |
-
*/
|
17 |
-
|
18 |
-
require_once realpath(dirname(__FILE__) . '/../../../autoload.php');
|
19 |
-
|
20 |
-
class GoogleGAL_Cache_Exception extends GoogleGAL_Exception
|
21 |
-
|
22 |
-
}
|
1 |
+
<?php
|
2 |
+
/*
|
3 |
+
* Copyright 2013 Google Inc.
|
4 |
+
*
|
5 |
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
6 |
+
* you may not use this file except in compliance with the License.
|
7 |
+
* You may obtain a copy of the License at
|
8 |
+
*
|
9 |
+
* https://www.apache.org/licenses/LICENSE-2.0
|
10 |
+
*
|
11 |
+
* Unless required by applicable law or agreed to in writing, software
|
12 |
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
13 |
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
14 |
+
* See the License for the specific language governing permissions and
|
15 |
+
* limitations under the License.
|
16 |
+
*/
|
17 |
+
|
18 |
+
require_once realpath( dirname( __FILE__ ) . '/../../../autoload.php' );
|
19 |
+
|
20 |
+
class GoogleGAL_Cache_Exception extends GoogleGAL_Exception {
|
21 |
+
|
22 |
+
}
|
core/Google/Cache/File.php
CHANGED
@@ -1,190 +1,202 @@
|
|
1 |
-
<?php
|
2 |
-
/*
|
3 |
-
* Copyright 2008 Google Inc.
|
4 |
-
*
|
5 |
-
* Licensed under the Apache License, Version 2.0 (the "License");
|
6 |
-
* you may not use this file except in compliance with the License.
|
7 |
-
* You may obtain a copy of the License at
|
8 |
-
*
|
9 |
-
* https://www.apache.org/licenses/LICENSE-2.0
|
10 |
-
*
|
11 |
-
* Unless required by applicable law or agreed to in writing, software
|
12 |
-
* distributed under the License is distributed on an "AS IS" BASIS,
|
13 |
-
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
14 |
-
* See the License for the specific language governing permissions and
|
15 |
-
* limitations under the License.
|
16 |
-
*/
|
17 |
-
|
18 |
-
require_once realpath(dirname(__FILE__) . '/../../../autoload.php');
|
19 |
-
|
20 |
-
/*
|
21 |
-
* This class implements a basic on disk storage. While that does
|
22 |
-
* work quite well it's not the most elegant and scalable solution.
|
23 |
-
* It will also get you into a heap of trouble when you try to run
|
24 |
-
* this in a clustered environment.
|
25 |
-
*
|
26 |
-
* @author Chris Chabot <chabotc@google.com>
|
27 |
-
*/
|
28 |
-
class GoogleGAL_Cache_File extends GoogleGAL_Cache_Abstract
|
29 |
-
|
30 |
-
|
31 |
-
|
32 |
-
|
33 |
-
|
34 |
-
|
35 |
-
|
36 |
-
|
37 |
-
|
38 |
-
|
39 |
-
|
40 |
-
|
41 |
-
|
42 |
-
|
43 |
-
|
44 |
-
|
45 |
-
|
46 |
-
|
47 |
-
|
48 |
-
|
49 |
-
|
50 |
-
|
51 |
-
|
52 |
-
|
53 |
-
|
54 |
-
|
55 |
-
|
56 |
-
|
57 |
-
|
58 |
-
|
59 |
-
|
60 |
-
|
61 |
-
|
62 |
-
|
63 |
-
|
64 |
-
|
65 |
-
|
66 |
-
|
67 |
-
|
68 |
-
|
69 |
-
|
70 |
-
|
71 |
-
|
72 |
-
|
73 |
-
|
74 |
-
|
75 |
-
|
76 |
-
|
77 |
-
|
78 |
-
|
79 |
-
|
80 |
-
|
81 |
-
|
82 |
-
|
83 |
-
|
84 |
-
|
85 |
-
|
86 |
-
|
87 |
-
|
88 |
-
|
89 |
-
|
90 |
-
|
91 |
-
|
92 |
-
|
93 |
-
|
94 |
-
|
95 |
-
|
96 |
-
|
97 |
-
|
98 |
-
|
99 |
-
|
100 |
-
|
101 |
-
|
102 |
-
|
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 |
-
|
134 |
-
|
135 |
-
|
136 |
-
|
137 |
-
|
138 |
-
|
139 |
-
|
140 |
-
|
141 |
-
|
142 |
-
|
143 |
-
|
144 |
-
|
145 |
-
|
146 |
-
|
147 |
-
|
148 |
-
|
149 |
-
|
150 |
-
|
151 |
-
|
152 |
-
|
153 |
-
|
154 |
-
|
155 |
-
|
156 |
-
|
157 |
-
|
158 |
-
|
159 |
-
|
160 |
-
|
161 |
-
|
162 |
-
|
163 |
-
|
164 |
-
|
165 |
-
|
166 |
-
|
167 |
-
|
168 |
-
|
169 |
-
|
170 |
-
|
171 |
-
|
172 |
-
|
173 |
-
|
174 |
-
|
175 |
-
|
176 |
-
|
177 |
-
|
178 |
-
|
179 |
-
|
180 |
-
|
181 |
-
|
182 |
-
|
183 |
-
|
184 |
-
|
185 |
-
|
186 |
-
|
187 |
-
|
188 |
-
|
189 |
-
|
190 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/*
|
3 |
+
* Copyright 2008 Google Inc.
|
4 |
+
*
|
5 |
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
6 |
+
* you may not use this file except in compliance with the License.
|
7 |
+
* You may obtain a copy of the License at
|
8 |
+
*
|
9 |
+
* https://www.apache.org/licenses/LICENSE-2.0
|
10 |
+
*
|
11 |
+
* Unless required by applicable law or agreed to in writing, software
|
12 |
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
13 |
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
14 |
+
* See the License for the specific language governing permissions and
|
15 |
+
* limitations under the License.
|
16 |
+
*/
|
17 |
+
|
18 |
+
require_once realpath( dirname( __FILE__ ) . '/../../../autoload.php' );
|
19 |
+
|
20 |
+
/*
|
21 |
+
* This class implements a basic on disk storage. While that does
|
22 |
+
* work quite well it's not the most elegant and scalable solution.
|
23 |
+
* It will also get you into a heap of trouble when you try to run
|
24 |
+
* this in a clustered environment.
|
25 |
+
*
|
26 |
+
* @author Chris Chabot <chabotc@google.com>
|
27 |
+
*/
|
28 |
+
class GoogleGAL_Cache_File extends GoogleGAL_Cache_Abstract {
|
29 |
+
|
30 |
+
const MAX_LOCK_RETRIES = 10;
|
31 |
+
private $path;
|
32 |
+
private $fh;
|
33 |
+
|
34 |
+
/**
|
35 |
+
* @var GoogleGAL_Client the current client
|
36 |
+
*/
|
37 |
+
private $client;
|
38 |
+
|
39 |
+
public function __construct( GoogleGAL_Client $client ) {
|
40 |
+
$this->client = $client;
|
41 |
+
$this->path = $this->client->getClassConfig( $this, 'directory' );
|
42 |
+
}
|
43 |
+
|
44 |
+
public function get( $key, $expiration = false ) {
|
45 |
+
$storageFile = $this->getCacheFile( $key );
|
46 |
+
$data = false;
|
47 |
+
|
48 |
+
if ( ! file_exists( $storageFile ) ) {
|
49 |
+
$this->client->getLogger()->debug(
|
50 |
+
'File cache miss',
|
51 |
+
array(
|
52 |
+
'key' => $key,
|
53 |
+
'file' => $storageFile,
|
54 |
+
)
|
55 |
+
);
|
56 |
+
return false;
|
57 |
+
}
|
58 |
+
|
59 |
+
if ( $expiration ) {
|
60 |
+
$mtime = filemtime( $storageFile );
|
61 |
+
if ( ( time() - $mtime ) >= $expiration ) {
|
62 |
+
$this->client->getLogger()->debug(
|
63 |
+
'File cache miss (expired)',
|
64 |
+
array(
|
65 |
+
'key' => $key,
|
66 |
+
'file' => $storageFile,
|
67 |
+
)
|
68 |
+
);
|
69 |
+
$this->delete( $key );
|
70 |
+
return false;
|
71 |
+
}
|
72 |
+
}
|
73 |
+
|
74 |
+
if ( $this->acquireReadLock( $storageFile ) ) {
|
75 |
+
$data = fread( $this->fh, filesize( $storageFile ) );
|
76 |
+
$data = unserialize( $data );
|
77 |
+
$this->unlock( $storageFile );
|
78 |
+
}
|
79 |
+
|
80 |
+
$this->client->getLogger()->debug(
|
81 |
+
'File cache hit',
|
82 |
+
array(
|
83 |
+
'key' => $key,
|
84 |
+
'file' => $storageFile,
|
85 |
+
'var' => $data,
|
86 |
+
)
|
87 |
+
);
|
88 |
+
|
89 |
+
return $data;
|
90 |
+
}
|
91 |
+
|
92 |
+
public function set( $key, $value ) {
|
93 |
+
$storageFile = $this->getWriteableCacheFile( $key );
|
94 |
+
if ( $this->acquireWriteLock( $storageFile ) ) {
|
95 |
+
// We serialize the whole request object, since we don't only want the
|
96 |
+
// responseContent but also the postBody used, headers, size, etc.
|
97 |
+
$data = serialize( $value );
|
98 |
+
$result = fwrite( $this->fh, $data );
|
99 |
+
$this->unlock( $storageFile );
|
100 |
+
|
101 |
+
$this->client->getLogger()->debug(
|
102 |
+
'File cache set',
|
103 |
+
array(
|
104 |
+
'key' => $key,
|
105 |
+
'file' => $storageFile,
|
106 |
+
'var' => $value,
|
107 |
+
)
|
108 |
+
);
|
109 |
+
} else {
|
110 |
+
$this->client->getLogger()->notice(
|
111 |
+
'File cache set failed',
|
112 |
+
array(
|
113 |
+
'key' => $key,
|
114 |
+
'file' => $storageFile,
|
115 |
+
)
|
116 |
+
);
|
117 |
+
}
|
118 |
+
}
|
119 |
+
|
120 |
+
public function delete( $key ) {
|
121 |
+
$file = $this->getCacheFile( $key );
|
122 |
+
if ( file_exists( $file ) && ! unlink( $file ) ) {
|
123 |
+
$this->client->getLogger()->error(
|
124 |
+
'File cache delete failed',
|
125 |
+
array(
|
126 |
+
'key' => $key,
|
127 |
+
'file' => $file,
|
128 |
+
)
|
129 |
+
);
|
130 |
+
throw new GoogleGAL_Cache_Exception( 'Cache file could not be deleted' );
|
131 |
+
}
|
132 |
+
|
133 |
+
$this->client->getLogger()->debug(
|
134 |
+
'File cache delete',
|
135 |
+
array(
|
136 |
+
'key' => $key,
|
137 |
+
'file' => $file,
|
138 |
+
)
|
139 |
+
);
|
140 |
+
}
|
141 |
+
|
142 |
+
private function getWriteableCacheFile( $file ) {
|
143 |
+
return $this->getCacheFile( $file, true );
|
144 |
+
}
|
145 |
+
|
146 |
+
private function getCacheFile( $file, $forWrite = false ) {
|
147 |
+
return $this->getCacheDir( $file, $forWrite ) . '/' . md5( $file );
|
148 |
+
}
|
149 |
+
|
150 |
+
private function getCacheDir( $file, $forWrite ) {
|
151 |
+
// use the first 2 characters of the hash as a directory prefix
|
152 |
+
// this should prevent slowdowns due to huge directory listings
|
153 |
+
// and thus give some basic amount of scalability
|
154 |
+
$storageDir = $this->path . '/' . substr( md5( $file ), 0, 2 );
|
155 |
+
if ( $forWrite && ! is_dir( $storageDir ) ) {
|
156 |
+
if ( ! mkdir( $storageDir, 0755, true ) ) {
|
157 |
+
$this->client->getLogger()->error(
|
158 |
+
'File cache creation failed',
|
159 |
+
array( 'dir' => $storageDir )
|
160 |
+
);
|
161 |
+
throw new GoogleGAL_Cache_Exception( "Could not create storage directory: $storageDir" );
|
162 |
+
}
|
163 |
+
}
|
164 |
+
return $storageDir;
|
165 |
+
}
|
166 |
+
|
167 |
+
private function acquireReadLock( $storageFile ) {
|
168 |
+
return $this->acquireLock( LOCK_SH, $storageFile );
|
169 |
+
}
|
170 |
+
|
171 |
+
private function acquireWriteLock( $storageFile ) {
|
172 |
+
$rc = $this->acquireLock( LOCK_EX, $storageFile );
|
173 |
+
if ( ! $rc ) {
|
174 |
+
$this->client->getLogger()->notice(
|
175 |
+
'File cache write lock failed',
|
176 |
+
array( 'file' => $storageFile )
|
177 |
+
);
|
178 |
+
$this->delete( $storageFile );
|
179 |
+
}
|
180 |
+
return $rc;
|
181 |
+
}
|
182 |
+
|
183 |
+
private function acquireLock( $type, $storageFile ) {
|
184 |
+
$mode = $type == LOCK_EX ? 'w' : 'r';
|
185 |
+
$this->fh = fopen( $storageFile, $mode );
|
186 |
+
$count = 0;
|
187 |
+
while ( ! flock( $this->fh, $type | LOCK_NB ) ) {
|
188 |
+
// Sleep for 10ms.
|
189 |
+
usleep( 10000 );
|
190 |
+
if ( ++$count < self::MAX_LOCK_RETRIES ) {
|
191 |
+
return false;
|
192 |
+
}
|
193 |
+
}
|
194 |
+
return true;
|
195 |
+
}
|
196 |
+
|
197 |
+
public function unlock( $storageFile ) {
|
198 |
+
if ( $this->fh ) {
|
199 |
+
flock( $this->fh, LOCK_UN );
|
200 |
+
}
|
201 |
+
}
|
202 |
+
}
|
core/Google/Cache/Memcache.php
CHANGED
@@ -1,182 +1,192 @@
|
|
1 |
-
<?php
|
2 |
-
/*
|
3 |
-
* Copyright 2008 Google Inc.
|
4 |
-
*
|
5 |
-
* Licensed under the Apache License, Version 2.0 (the "License");
|
6 |
-
* you may not use this file except in compliance with the License.
|
7 |
-
* You may obtain a copy of the License at
|
8 |
-
*
|
9 |
-
* https://www.apache.org/licenses/LICENSE-2.0
|
10 |
-
*
|
11 |
-
* Unless required by applicable law or agreed to in writing, software
|
12 |
-
* distributed under the License is distributed on an "AS IS" BASIS,
|
13 |
-
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
14 |
-
* See the License for the specific language governing permissions and
|
15 |
-
* limitations under the License.
|
16 |
-
*/
|
17 |
-
|
18 |
-
require_once realpath(dirname(__FILE__) . '/../../../autoload.php');
|
19 |
-
|
20 |
-
/**
|
21 |
-
* A persistent storage class based on the memcache, which is not
|
22 |
-
* really very persistent, as soon as you restart your memcache daemon
|
23 |
-
* the storage will be wiped.
|
24 |
-
*
|
25 |
-
* Will use either the memcache or memcached extensions, preferring
|
26 |
-
* memcached.
|
27 |
-
*
|
28 |
-
* @author Chris Chabot <chabotc@google.com>
|
29 |
-
*/
|
30 |
-
class GoogleGAL_Cache_Memcache extends GoogleGAL_Cache_Abstract
|
31 |
-
|
32 |
-
|
33 |
-
|
34 |
-
|
35 |
-
|
36 |
-
|
37 |
-
|
38 |
-
|
39 |
-
|
40 |
-
|
41 |
-
|
42 |
-
|
43 |
-
|
44 |
-
|
45 |
-
|
46 |
-
|
47 |
-
|
48 |
-
|
49 |
-
|
50 |
-
|
51 |
-
|
52 |
-
|
53 |
-
|
54 |
-
|
55 |
-
|
56 |
-
|
57 |
-
|
58 |
-
|
59 |
-
|
60 |
-
|
61 |
-
|
62 |
-
|
63 |
-
|
64 |
-
|
65 |
-
|
66 |
-
|
67 |
-
|
68 |
-
|
69 |
-
|
70 |
-
|
71 |
-
|
72 |
-
|
73 |
-
|
74 |
-
|
75 |
-
|
76 |
-
|
77 |
-
|
78 |
-
|
79 |
-
|
80 |
-
|
81 |
-
|
82 |
-
|
83 |
-
|
84 |
-
|
85 |
-
|
86 |
-
|
87 |
-
|
88 |
-
|
89 |
-
|
90 |
-
|
91 |
-
|
92 |
-
|
93 |
-
|
94 |
-
|
95 |
-
|
96 |
-
|
97 |
-
|
98 |
-
|
99 |
-
|
100 |
-
|
101 |
-
|
102 |
-
|
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 |
-
|
134 |
-
|
135 |
-
|
136 |
-
|
137 |
-
|
138 |
-
|
139 |
-
|
140 |
-
|
141 |
-
|
142 |
-
|
143 |
-
|
144 |
-
|
145 |
-
|
146 |
-
|
147 |
-
|
148 |
-
|
149 |
-
|
150 |
-
|
151 |
-
|
152 |
-
|
153 |
-
|
154 |
-
|
155 |
-
|
156 |
-
|
157 |
-
|
158 |
-
|
159 |
-
|
160 |
-
|
161 |
-
|
162 |
-
|
163 |
-
|
164 |
-
|
165 |
-
|
166 |
-
|
167 |
-
|
168 |
-
|
169 |
-
|
170 |
-
|
171 |
-
|
172 |
-
|
173 |
-
|
174 |
-
|
175 |
-
|
176 |
-
|
177 |
-
|
178 |
-
|
179 |
-
|
180 |
-
|
181 |
-
|
182 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/*
|
3 |
+
* Copyright 2008 Google Inc.
|
4 |
+
*
|
5 |
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
6 |
+
* you may not use this file except in compliance with the License.
|
7 |
+
* You may obtain a copy of the License at
|
8 |
+
*
|
9 |
+
* https://www.apache.org/licenses/LICENSE-2.0
|
10 |
+
*
|
11 |
+
* Unless required by applicable law or agreed to in writing, software
|
12 |
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
13 |
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
14 |
+
* See the License for the specific language governing permissions and
|
15 |
+
* limitations under the License.
|
16 |
+
*/
|
17 |
+
|
18 |
+
require_once realpath( dirname( __FILE__ ) . '/../../../autoload.php' );
|
19 |
+
|
20 |
+
/**
|
21 |
+
* A persistent storage class based on the memcache, which is not
|
22 |
+
* really very persistent, as soon as you restart your memcache daemon
|
23 |
+
* the storage will be wiped.
|
24 |
+
*
|
25 |
+
* Will use either the memcache or memcached extensions, preferring
|
26 |
+
* memcached.
|
27 |
+
*
|
28 |
+
* @author Chris Chabot <chabotc@google.com>
|
29 |
+
*/
|
30 |
+
class GoogleGAL_Cache_Memcache extends GoogleGAL_Cache_Abstract {
|
31 |
+
|
32 |
+
private $connection = false;
|
33 |
+
private $mc = false;
|
34 |
+
private $host;
|
35 |
+
private $port;
|
36 |
+
|
37 |
+
/**
|
38 |
+
* @var GoogleGAL_Client the current client
|
39 |
+
*/
|
40 |
+
private $client;
|
41 |
+
|
42 |
+
public function __construct( GoogleGAL_Client $client ) {
|
43 |
+
if ( ! function_exists( 'memcache_connect' ) && ! class_exists( 'Memcached' ) ) {
|
44 |
+
$error = 'Memcache functions not available';
|
45 |
+
|
46 |
+
$client->getLogger()->error( $error );
|
47 |
+
throw new GoogleGAL_Cache_Exception( $error );
|
48 |
+
}
|
49 |
+
|
50 |
+
$this->client = $client;
|
51 |
+
|
52 |
+
if ( $client->isAppEngine() ) {
|
53 |
+
// No credentials needed for GAE.
|
54 |
+
$this->mc = new Memcached();
|
55 |
+
$this->connection = true;
|
56 |
+
} else {
|
57 |
+
$this->host = $client->getClassConfig( $this, 'host' );
|
58 |
+
$this->port = $client->getClassConfig( $this, 'port' );
|
59 |
+
if ( empty( $this->host ) || ( empty( $this->port ) && (string) $this->port != '0' ) ) {
|
60 |
+
$error = 'You need to supply a valid memcache host and port';
|
61 |
+
|
62 |
+
$client->getLogger()->error( $error );
|
63 |
+
throw new GoogleGAL_Cache_Exception( $error );
|
64 |
+
}
|
65 |
+
}
|
66 |
+
}
|
67 |
+
|
68 |
+
/**
|
69 |
+
* @inheritDoc
|
70 |
+
*/
|
71 |
+
public function get( $key, $expiration = false ) {
|
72 |
+
$this->connect();
|
73 |
+
$ret = false;
|
74 |
+
if ( $this->mc ) {
|
75 |
+
$ret = $this->mc->get( $key );
|
76 |
+
} else {
|
77 |
+
$ret = memcache_get( $this->connection, $key );
|
78 |
+
}
|
79 |
+
if ( $ret === false ) {
|
80 |
+
$this->client->getLogger()->debug(
|
81 |
+
'Memcache cache miss',
|
82 |
+
array( 'key' => $key )
|
83 |
+
);
|
84 |
+
return false;
|
85 |
+
}
|
86 |
+
if ( is_numeric( $expiration ) && ( time() - $ret['time'] > $expiration ) ) {
|
87 |
+
$this->client->getLogger()->debug(
|
88 |
+
'Memcache cache miss (expired)',
|
89 |
+
array(
|
90 |
+
'key' => $key,
|
91 |
+
'var' => $ret,
|
92 |
+
)
|
93 |
+
);
|
94 |
+
$this->delete( $key );
|
95 |
+
return false;
|
96 |
+
}
|
97 |
+
|
98 |
+
$this->client->getLogger()->debug(
|
99 |
+
'Memcache cache hit',
|
100 |
+
array(
|
101 |
+
'key' => $key,
|
102 |
+
'var' => $ret,
|
103 |
+
)
|
104 |
+
);
|
105 |
+
|
106 |
+
return $ret['data'];
|
107 |
+
}
|
108 |
+
|
109 |
+
/**
|
110 |
+
* @inheritDoc
|
111 |
+
* @param string $key
|
112 |
+
* @param string $value
|
113 |
+
* @throws GoogleGAL_Cache_Exception
|
114 |
+
*/
|
115 |
+
public function set( $key, $value ) {
|
116 |
+
$this->connect();
|
117 |
+
// we store it with the cache_time default expiration so objects will at
|
118 |
+
// least get cleaned eventually.
|
119 |
+
$data = array(
|
120 |
+
'time' => time(),
|
121 |
+
'data' => $value,
|
122 |
+
);
|
123 |
+
$rc = false;
|
124 |
+
if ( $this->mc ) {
|
125 |
+
$rc = $this->mc->set( $key, $data );
|
126 |
+
} else {
|
127 |
+
$rc = memcache_set( $this->connection, $key, $data, false );
|
128 |
+
}
|
129 |
+
if ( $rc == false ) {
|
130 |
+
$this->client->getLogger()->error(
|
131 |
+
'Memcache cache set failed',
|
132 |
+
array(
|
133 |
+
'key' => $key,
|
134 |
+
'var' => $data,
|
135 |
+
)
|
136 |
+
);
|
137 |
+
|
138 |
+
throw new GoogleGAL_Cache_Exception( "Couldn't store data in cache" );
|
139 |
+
}
|
140 |
+
|
141 |
+
$this->client->getLogger()->debug(
|
142 |
+
'Memcache cache set',
|
143 |
+
array(
|
144 |
+
'key' => $key,
|
145 |
+
'var' => $data,
|
146 |
+
)
|
147 |
+
);
|
148 |
+
}
|
149 |
+
|
150 |
+
/**
|
151 |
+
* @inheritDoc
|
152 |
+
* @param String $key
|
153 |
+
*/
|
154 |
+
public function delete( $key ) {
|
155 |
+
$this->connect();
|
156 |
+
if ( $this->mc ) {
|
157 |
+
$this->mc->delete( $key, 0 );
|
158 |
+
} else {
|
159 |
+
memcache_delete( $this->connection, $key, 0 );
|
160 |
+
}
|
161 |
+
|
162 |
+
$this->client->getLogger()->debug(
|
163 |
+
'Memcache cache delete',
|
164 |
+
array( 'key' => $key )
|
165 |
+
);
|
166 |
+
}
|
167 |
+
|
168 |
+
/**
|
169 |
+
* Lazy initialiser for memcache connection. Uses pconnect for to take
|
170 |
+
* advantage of the persistence pool where possible.
|
171 |
+
*/
|
172 |
+
private function connect() {
|
173 |
+
if ( $this->connection ) {
|
174 |
+
return;
|
175 |
+
}
|
176 |
+
|
177 |
+
if ( class_exists( 'Memcached' ) ) {
|
178 |
+
$this->mc = new Memcached();
|
179 |
+
$this->mc->addServer( $this->host, $this->port );
|
180 |
+
$this->connection = true;
|
181 |
+
} else {
|
182 |
+
$this->connection = memcache_pconnect( $this->host, $this->port );
|
183 |
+
}
|
184 |
+
|
185 |
+
if ( ! $this->connection ) {
|
186 |
+
$error = "Couldn't connect to memcache server";
|
187 |
+
|
188 |
+
$this->client->getLogger()->error( $error );
|
189 |
+
throw new GoogleGAL_Cache_Exception( $error );
|
190 |
+
}
|
191 |
+
}
|
192 |
+
}
|
core/Google/Cache/Null.php
CHANGED
@@ -1,55 +1,51 @@
|
|
1 |
-
<?php
|
2 |
-
/*
|
3 |
-
* Copyright 2014 Google Inc.
|
4 |
-
*
|
5 |
-
* Licensed under the Apache License, Version 2.0 (the "License");
|
6 |
-
* you may not use this file except in compliance with the License.
|
7 |
-
* You may obtain a copy of the License at
|
8 |
-
*
|
9 |
-
* https://www.apache.org/licenses/LICENSE-2.0
|
10 |
-
*
|
11 |
-
* Unless required by applicable law or agreed to in writing, software
|
12 |
-
* distributed under the License is distributed on an "AS IS" BASIS,
|
13 |
-
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
14 |
-
* See the License for the specific language governing permissions and
|
15 |
-
* limitations under the License.
|
16 |
-
*/
|
17 |
-
|
18 |
-
require_once realpath(dirname(__FILE__) . '/../../../autoload.php');
|
19 |
-
|
20 |
-
/**
|
21 |
-
* A blank storage class, for cases where caching is not
|
22 |
-
* required.
|
23 |
-
*/
|
24 |
-
class GoogleGAL_Cache_Null extends GoogleGAL_Cache_Abstract
|
25 |
-
|
26 |
-
|
27 |
-
|
28 |
-
|
29 |
-
|
30 |
-
|
31 |
-
|
32 |
-
|
33 |
-
|
34 |
-
|
35 |
-
|
36 |
-
|
37 |
-
|
38 |
-
|
39 |
-
|
40 |
-
|
41 |
-
|
42 |
-
|
43 |
-
|
44 |
-
|
45 |
-
|
46 |
-
|
47 |
-
|
48 |
-
|
49 |
-
|
50 |
-
|
51 |
-
|
52 |
-
{
|
53 |
-
// Nop.
|
54 |
-
}
|
55 |
-
}
|
1 |
+
<?php
|
2 |
+
/*
|
3 |
+
* Copyright 2014 Google Inc.
|
4 |
+
*
|
5 |
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
6 |
+
* you may not use this file except in compliance with the License.
|
7 |
+
* You may obtain a copy of the License at
|
8 |
+
*
|
9 |
+
* https://www.apache.org/licenses/LICENSE-2.0
|
10 |
+
*
|
11 |
+
* Unless required by applicable law or agreed to in writing, software
|
12 |
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
13 |
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
14 |
+
* See the License for the specific language governing permissions and
|
15 |
+
* limitations under the License.
|
16 |
+
*/
|
17 |
+
|
18 |
+
require_once realpath( dirname( __FILE__ ) . '/../../../autoload.php' );
|
19 |
+
|
20 |
+
/**
|
21 |
+
* A blank storage class, for cases where caching is not
|
22 |
+
* required.
|
23 |
+
*/
|
24 |
+
class GoogleGAL_Cache_Null extends GoogleGAL_Cache_Abstract {
|
25 |
+
|
26 |
+
public function __construct( GoogleGAL_Client $client ) {
|
27 |
+
|
28 |
+
}
|
29 |
+
|
30 |
+
/**
|
31 |
+
* @inheritDoc
|
32 |
+
*/
|
33 |
+
public function get( $key, $expiration = false ) {
|
34 |
+
return false;
|
35 |
+
}
|
36 |
+
|
37 |
+
/**
|
38 |
+
* @inheritDoc
|
39 |
+
*/
|
40 |
+
public function set( $key, $value ) {
|
41 |
+
// Nop.
|
42 |
+
}
|
43 |
+
|
44 |
+
/**
|
45 |
+
* @inheritDoc
|
46 |
+
* @param String $key
|
47 |
+
*/
|
48 |
+
public function delete( $key ) {
|
49 |
+
// Nop.
|
50 |
+
}
|
51 |
+
}
|
|
|
|
|
|
|
|
core/Google/Client.php
CHANGED
@@ -1,686 +1,666 @@
|
|
1 |
-
<?php
|
2 |
-
/*
|
3 |
-
* Copyright 2010 Google Inc.
|
4 |
-
*
|
5 |
-
* Licensed under the Apache License, Version 2.0 (the "License");
|
6 |
-
* you may not use this file except in compliance with the License.
|
7 |
-
* You may obtain a copy of the License at
|
8 |
-
*
|
9 |
-
* https://www.apache.org/licenses/LICENSE-2.0
|
10 |
-
*
|
11 |
-
* Unless required by applicable law or agreed to in writing, software
|
12 |
-
* distributed under the License is distributed on an "AS IS" BASIS,
|
13 |
-
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
14 |
-
* See the License for the specific language governing permissions and
|
15 |
-
* limitations under the License.
|
16 |
-
*/
|
17 |
-
|
18 |
-
require_once realpath(dirname(__FILE__) . '/../../autoload.php');
|
19 |
-
|
20 |
-
/**
|
21 |
-
* The Google API Client
|
22 |
-
* https://github.com/googleapis/google-api-php-client
|
23 |
-
*
|
24 |
-
* @author Chris Chabot <chabotc@google.com>
|
25 |
-
* @author Chirag Shah <chirags@google.com>
|
26 |
-
*/
|
27 |
-
class GoogleGAL_Client
|
28 |
-
|
29 |
-
|
30 |
-
|
31 |
-
|
32 |
-
|
33 |
-
|
34 |
-
|
35 |
-
|
36 |
-
|
37 |
-
|
38 |
-
|
39 |
-
|
40 |
-
|
41 |
-
|
42 |
-
|
43 |
-
|
44 |
-
|
45 |
-
|
46 |
-
|
47 |
-
|
48 |
-
|
49 |
-
|
50 |
-
|
51 |
-
|
52 |
-
|
53 |
-
|
54 |
-
|
55 |
-
|
56 |
-
|
57 |
-
|
58 |
-
|
59 |
-
|
60 |
-
|
61 |
-
|
62 |
-
|
63 |
-
|
64 |
-
|
65 |
-
|
66 |
-
|
67 |
-
|
68 |
-
|
69 |
-
|
70 |
-
|
71 |
-
|
72 |
-
|
73 |
-
|
74 |
-
|
75 |
-
|
76 |
-
|
77 |
-
|
78 |
-
|
79 |
-
|
80 |
-
|
81 |
-
|
82 |
-
|
83 |
-
|
84 |
-
|
85 |
-
|
86 |
-
|
87 |
-
|
88 |
-
|
89 |
-
|
90 |
-
|
91 |
-
|
92 |
-
|
93 |
-
|
94 |
-
|
95 |
-
|
96 |
-
|
97 |
-
|
98 |
-
|
99 |
-
|
100 |
-
|
101 |
-
|
102 |
-
|
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 |
-
|
134 |
-
|
135 |
-
|
136 |
-
|
137 |
-
|
138 |
-
|
139 |
-
|
140 |
-
|
141 |
-
|
142 |
-
|
143 |
-
|
144 |
-
|
145 |
-
|
146 |
-
|
147 |
-
|
148 |
-
|
149 |
-
|
150 |
-
|
151 |
-
|
152 |
-
|
153 |
-
|
154 |
-
|
155 |
-
|
156 |
-
|
157 |
-
|
158 |
-
|
159 |
-
|
160 |
-
|
161 |
-
|
162 |
-
|
163 |
-
|
164 |
-
|
165 |
-
|
166 |
-
|
167 |
-
|
168 |
-
|
169 |
-
|
170 |
-
|
171 |
-
|
172 |
-
|
173 |
-
|
174 |
-
|
175 |
-
|
176 |
-
|
177 |
-
|
178 |
-
|
179 |
-
|
180 |
-
|
181 |
-
|
182 |
-
|
183 |
-
|
184 |
-
|
185 |
-
|
186 |
-
|
187 |
-
|
188 |
-
|
189 |
-
|
190 |
-
|
191 |
-
|
192 |
-
|
193 |
-
|
194 |
-
|
195 |
-
|
196 |
-
|
197 |
-
|
198 |
-
|
199 |
-
|
200 |
-
|
201 |
-
|
202 |
-
|
203 |
-
|
204 |
-
|
205 |
-
|
206 |
-
|
207 |
-
|
208 |
-
|
209 |
-
|
210 |
-
|
211 |
-
|
212 |
-
|
213 |
-
|
214 |
-
|
215 |
-
|
216 |
-
|
217 |
-
|
218 |
-
|
219 |
-
|
220 |
-
|
221 |
-
|
222 |
-
|
223 |
-
|
224 |
-
|
225 |
-
|
226 |
-
|
227 |
-
|
228 |
-
|
229 |
-
|
230 |
-
|
231 |
-
|
232 |
-
|
233 |
-
|
234 |
-
|
235 |
-
|
236 |
-
|
237 |
-
|
238 |
-
|
239 |
-
|
240 |
-
|
241 |
-
|
242 |
-
|
243 |
-
|
244 |
-
|
245 |
-
|
246 |
-
|
247 |
-
|
248 |
-
|
249 |
-
|
250 |
-
|
251 |
-
|
252 |
-
|
253 |
-
|
254 |
-
|
255 |
-
|
256 |
-
|
257 |
-
|
258 |
-
|
259 |
-
|
260 |
-
|
261 |
-
|
262 |
-
|
263 |
-
|
264 |
-
|
265 |
-
|
266 |
-
|
267 |
-
|
268 |
-
|
269 |
-
|
270 |
-
|
271 |
-
|
272 |
-
|
273 |
-
|
274 |
-
|
275 |
-
|
276 |
-
|
277 |
-
|
278 |
-
|
279 |
-
|
280 |
-
|
281 |
-
|
282 |
-
|
283 |
-
|
284 |
-
|
285 |
-
}
|
286 |
-
|
287 |
-
|
288 |
-
|
289 |
-
|
290 |
-
|
291 |
-
|
292 |
-
|
293 |
-
|
294 |
-
|
295 |
-
}
|
296 |
-
|
297 |
-
|
298 |
-
|
299 |
-
|
300 |
-
|
301 |
-
|
302 |
-
|
303 |
-
|
304 |
-
|
305 |
-
|
306 |
-
|
307 |
-
|
308 |
-
|
309 |
-
|
310 |
-
|
311 |
-
|
312 |
-
|
313 |
-
|
314 |
-
|
315 |
-
|
316 |
-
|
317 |
-
|
318 |
-
|
319 |
-
|
320 |
-
|
321 |
-
|
322 |
-
|
323 |
-
|
324 |
-
|
325 |
-
|
326 |
-
|
327 |
-
|
328 |
-
|
329 |
-
|
330 |
-
|
331 |
-
|
332 |
-
|
333 |
-
|
334 |
-
|
335 |
-
|
336 |
-
|
337 |
-
|
338 |
-
|
339 |
-
|
340 |
-
|
341 |
-
|
342 |
-
|
343 |
-
|
344 |
-
|
345 |
-
|
346 |
-
|
347 |
-
|
348 |
-
|
349 |
-
|
350 |
-
|
351 |
-
|
352 |
-
|
353 |
-
|
354 |
-
|
355 |
-
|
356 |
-
|
357 |
-
|
358 |
-
|
359 |
-
|
360 |
-
|
361 |
-
|
362 |
-
|
363 |
-
|
364 |
-
|
365 |
-
|
366 |
-
|
367 |
-
|
368 |
-
|
369 |
-
|
370 |
-
|
371 |
-
|
372 |
-
|
373 |
-
|
374 |
-
|
375 |
-
|
376 |
-
|
377 |
-
|
378 |
-
|
379 |
-
|
380 |
-
|
381 |
-
|
382 |
-
|
383 |
-
|
384 |
-
|
385 |
-
|
386 |
-
|
387 |
-
|
388 |
-
|
389 |
-
|
390 |
-
|
391 |
-
|
392 |
-
|
393 |
-
|
394 |
-
|
395 |
-
|
396 |
-
|
397 |
-
|
398 |
-
|
399 |
-
|
400 |
-
|
401 |
-
|
402 |
-
|
403 |
-
|
404 |
-
|
405 |
-
|
406 |
-
|
407 |
-
|
408 |
-
|
409 |
-
|
410 |
-
|
411 |
-
|
412 |
-
|
413 |
-
|
414 |
-
|
415 |
-
|
416 |
-
|
417 |
-
|
418 |
-
|
419 |
-
|
420 |
-
|
421 |
-
|
422 |
-
|
423 |
-
|
424 |
-
|
425 |
-
|
426 |
-
|
427 |
-
|
428 |
-
|
429 |
-
|
430 |
-
|
431 |
-
|
432 |
-
|
433 |
-
|
434 |
-
|
435 |
-
|
436 |
-
|
437 |
-
|
438 |
-
|
439 |
-
|
440 |
-
|
441 |
-
|
442 |
-
|
443 |
-
|
444 |
-
|
445 |
-
|
446 |
-
|
447 |
-
|
448 |
-
|
449 |
-
|
450 |
-
|
451 |
-
|
452 |
-
|
453 |
-
|
454 |
-
|
455 |
-
|
456 |
-
|
457 |
-
|
458 |
-
|
459 |
-
|
460 |
-
|
461 |
-
|
462 |
-
|
463 |
-
|
464 |
-
|
465 |
-
|
466 |
-
|
467 |
-
|
468 |
-
|
469 |
-
|
470 |
-
|
471 |
-
|
472 |
-
|
473 |
-
|
474 |
-
|
475 |
-
|
476 |
-
|
477 |
-
|
478 |
-
|
479 |
-
|
480 |
-
|
481 |
-
|
482 |
-
|
483 |
-
|
484 |
-
|
485 |
-
|
486 |
-
|
487 |
-
|
488 |
-
|
489 |
-
|
490 |
-
|
491 |
-
|
492 |
-
|
493 |
-
|
494 |
-
|
495 |
-
|
496 |
-
|
497 |
-
|
498 |
-
|
499 |
-
|
500 |
-
|
501 |
-
|
502 |
-
|
503 |
-
|
504 |
-
|
505 |
-
|
506 |
-
|
507 |
-
|
508 |
-
|
509 |
-
|
510 |
-
|
511 |
-
|
512 |
-
|
513 |
-
|
514 |
-
|
515 |
-
|
516 |
-
|
517 |
-
|
518 |
-
|
519 |
-
|
520 |
-
|
521 |
-
|
522 |
-
|
523 |
-
|
524 |
-
|
525 |
-
|
526 |
-
|
527 |
-
|
528 |
-
|
529 |
-
|
530 |
-
|
531 |
-
|
532 |
-
|
533 |
-
|
534 |
-
|
535 |
-
|
536 |
-
|
537 |
-
|
538 |
-
|
539 |
-
|
540 |
-
|
541 |
-
|
542 |
-
|
543 |
-
|
544 |
-
|
545 |
-
|
546 |
-
|
547 |
-
|
548 |
-
|
549 |
-
|
550 |
-
|
551 |
-
|
552 |
-
|
553 |
-
|
554 |
-
|
555 |
-
|
556 |
-
|
557 |
-
|
558 |
-
|
559 |
-
|
560 |
-
|
561 |
-
|
562 |
-
|
563 |
-
|
564 |
-
|
565 |
-
|
566 |
-
|
567 |
-
|
568 |
-
|
569 |
-
|
570 |
-
|
571 |
-
|
572 |
-
|
573 |
-
|
574 |
-
|
575 |
-
|
576 |
-
|
577 |
-
|
578 |
-
|
579 |
-
|
580 |
-
|
581 |
-
|
582 |
-
|
583 |
-
|
584 |
-
|
585 |
-
|
586 |
-
|
587 |
-
|
588 |
-
|
589 |
-
|
590 |
-
|
591 |
-
|
592 |
-
|
593 |
-
|
594 |
-
|
595 |
-
|
596 |
-
|
597 |
-
|
598 |
-
|
599 |
-
|
600 |
-
|
601 |
-
|
602 |
-
|
603 |
-
|
604 |
-
|
605 |
-
|
606 |
-
|
607 |
-
|
608 |
-
|
609 |
-
|
610 |
-
|
611 |
-
|
612 |
-
|
613 |
-
|
614 |
-
|
615 |
-
|
616 |
-
|
617 |
-
|
618 |
-
|
619 |
-
|
620 |
-
|
621 |
-
|
622 |
-
|
623 |
-
|
624 |
-
|
625 |
-
|
626 |
-
|
627 |
-
|
628 |
-
|
629 |
-
|
630 |
-
|
631 |
-
|
632 |
-
|
633 |
-
|
634 |
-
|
635 |
-
|
636 |
-
|
637 |
-
|
638 |
-
|
639 |
-
|
640 |
-
|
641 |
-
|
642 |
-
|
643 |
-
|
644 |
-
|
645 |
-
|
646 |
-
|
647 |
-
|
648 |
-
|
649 |
-
|
650 |
-
|
651 |
-
|
652 |
-
|
653 |
-
|
654 |
-
|
655 |
-
|
656 |
-
|
657 |
-
|
658 |
-
|
659 |
-
|
660 |
-
|
661 |
-
|
662 |
-
|
663 |
-
|
664 |
-
|
665 |
-
|
666 |
-
|
667 |
-
}
|
668 |
-
|
669 |
-
/**
|
670 |
-
* @return string the name of the application
|
671 |
-
*/
|
672 |
-
public function getApplicationName()
|
673 |
-
{
|
674 |
-
return $this->config->getApplicationName();
|
675 |
-
}
|
676 |
-
|
677 |
-
/**
|
678 |
-
* Are we running in Google AppEngine?
|
679 |
-
* return bool
|
680 |
-
*/
|
681 |
-
public function isAppEngine()
|
682 |
-
{
|
683 |
-
return (isset($_SERVER['SERVER_SOFTWARE']) &&
|
684 |
-
strpos($_SERVER['SERVER_SOFTWARE'], 'Google App Engine') !== false);
|
685 |
-
}
|
686 |
-
}
|
1 |
+
<?php
|
2 |
+
/*
|
3 |
+
* Copyright 2010 Google Inc.
|
4 |
+
*
|
5 |
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
6 |
+
* you may not use this file except in compliance with the License.
|
7 |
+
* You may obtain a copy of the License at
|
8 |
+
*
|
9 |
+
* https://www.apache.org/licenses/LICENSE-2.0
|
10 |
+
*
|
11 |
+
* Unless required by applicable law or agreed to in writing, software
|
12 |
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
13 |
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
14 |
+
* See the License for the specific language governing permissions and
|
15 |
+
* limitations under the License.
|
16 |
+
*/
|
17 |
+
|
18 |
+
require_once realpath( dirname( __FILE__ ) . '/../../autoload.php' );
|
19 |
+
|
20 |
+
/**
|
21 |
+
* The Google API Client
|
22 |
+
* https://github.com/googleapis/google-api-php-client
|
23 |
+
*
|
24 |
+
* @author Chris Chabot <chabotc@google.com>
|
25 |
+
* @author Chirag Shah <chirags@google.com>
|
26 |
+
*/
|
27 |
+
class GoogleGAL_Client {
|
28 |
+
|
29 |
+
const LIBVER = '1.1.1';
|
30 |
+
const USER_AGENT_SUFFIX = 'google-api-php-client/';
|
31 |
+
/**
|
32 |
+
* @var GoogleGAL_Auth_Abstract $auth
|
33 |
+
*/
|
34 |
+
private $auth;
|
35 |
+
|
36 |
+
/**
|
37 |
+
* @var GoogleGAL_IO_Abstract $io
|
38 |
+
*/
|
39 |
+
private $io;
|
40 |
+
|
41 |
+
/**
|
42 |
+
* @var GoogleGAL_Cache_Abstract $cache
|
43 |
+
*/
|
44 |
+
private $cache;
|
45 |
+
|
46 |
+
/**
|
47 |
+
* @var GoogleGAL_Config $config
|
48 |
+
*/
|
49 |
+
private $config;
|
50 |
+
|
51 |
+
/**
|
52 |
+
* @var GoogleGAL_Logger_Abstract $logger
|
53 |
+
*/
|
54 |
+
private $logger;
|
55 |
+
|
56 |
+
/**
|
57 |
+
* @var boolean $deferExecution
|
58 |
+
*/
|
59 |
+
private $deferExecution = false;
|
60 |
+
|
61 |
+
/** @var array $scopes */
|
62 |
+
// Scopes requested by the client
|
63 |
+
protected $requestedScopes = array();
|
64 |
+
|
65 |
+
// definitions of services that are discovered.
|
66 |
+
protected $services = array();
|
67 |
+
|
68 |
+
// Used to track authenticated state, can't discover services after doing authenticate()
|
69 |
+
private $authenticated = false;
|
70 |
+
|
71 |
+
/**
|
72 |
+
* Construct the Google Client.
|
73 |
+
*
|
74 |
+
* @param $config GoogleGAL_Config or string for the ini file to load
|
75 |
+
*/
|
76 |
+
public function __construct( $config = null ) {
|
77 |
+
if ( is_string( $config ) && strlen( $config ) ) {
|
78 |
+
$config = new GoogleGAL_Config( $config );
|
79 |
+
} elseif ( ! ( $config instanceof GoogleGAL_Config ) ) {
|
80 |
+
$config = new GoogleGAL_Config();
|
81 |
+
|
82 |
+
if ( $this->isAppEngine() ) {
|
83 |
+
// Automatically use Memcache if we're in AppEngine.
|
84 |
+
$config->setCacheClass( 'GoogleGAL_Cache_Memcache' );
|
85 |
+
}
|
86 |
+
|
87 |
+
if ( version_compare( phpversion(), '5.3.4', '<=' ) || $this->isAppEngine() ) {
|
88 |
+
// Automatically disable compress.zlib, as currently unsupported.
|
89 |
+
$config->setClassConfig( 'GoogleGAL_Http_Request', 'disable_gzip', true );
|
90 |
+
}
|
91 |
+
}
|
92 |
+
|
93 |
+
if ( $config->getIoClass() == GoogleGAL_Config::USE_AUTO_IO_SELECTION ) {
|
94 |
+
if ( function_exists( 'curl_version' ) && function_exists( 'curl_exec' )
|
95 |
+
&& ! $this->isAppEngine() ) {
|
96 |
+
$config->setIoClass( 'GoogleGAL_IO_Curl' );
|
97 |
+
} else {
|
98 |
+
$config->setIoClass( 'GoogleGAL_IO_Stream' );
|
99 |
+
}
|
100 |
+
}
|
101 |
+
|
102 |
+
$this->config = $config;
|
103 |
+
}
|
104 |
+
|
105 |
+
/**
|
106 |
+
* Get a string containing the version of the library.
|
107 |
+
*
|
108 |
+
* @return string
|
109 |
+
*/
|
110 |
+
public function getLibraryVersion() {
|
111 |
+
return self::LIBVER;
|
112 |
+
}
|
113 |
+
|
114 |
+
/**
|
115 |
+
* Attempt to exchange a code for an valid authentication token.
|
116 |
+
* Helper wrapped around the OAuth 2.0 implementation.
|
117 |
+
*
|
118 |
+
* @param $code string code from accounts.google.com
|
119 |
+
* @return string token
|
120 |
+
*/
|
121 |
+
public function authenticate( $code ) {
|
122 |
+
$this->authenticated = true;
|
123 |
+
return $this->getAuth()->authenticate( $code );
|
124 |
+
}
|
125 |
+
|
126 |
+
/**
|
127 |
+
* Set the auth config from the JSON string provided.
|
128 |
+
* This structure should match the file downloaded from
|
129 |
+
* the "Download JSON" button on in the Google Developer
|
130 |
+
* Console.
|
131 |
+
*
|
132 |
+
* @param string $json the configuration json
|
133 |
+
* @throws GoogleGAL_Exception
|
134 |
+
*/
|
135 |
+
public function setAuthConfig( $json ) {
|
136 |
+
$data = json_decode( $json );
|
137 |
+
$key = isset( $data->installed ) ? 'installed' : 'web';
|
138 |
+
if ( ! isset( $data->$key ) ) {
|
139 |
+
throw new GoogleGAL_Exception( 'Invalid client secret JSON file.' );
|
140 |
+
}
|
141 |
+
$this->setClientId( $data->$key->client_id );
|
142 |
+
$this->setClientSecret( $data->$key->client_secret );
|
143 |
+
if ( isset( $data->$key->redirect_uris ) ) {
|
144 |
+
$this->setRedirectUri( $data->$key->redirect_uris[0] );
|
145 |
+
}
|
146 |
+
}
|
147 |
+
|
148 |
+
/**
|
149 |
+
* Set the auth config from the JSON file in the path
|
150 |
+
* provided. This should match the file downloaded from
|
151 |
+
* the "Download JSON" button on in the Google Developer
|
152 |
+
* Console.
|
153 |
+
*
|
154 |
+
* @param string $file the file location of the client json
|
155 |
+
*/
|
156 |
+
public function setAuthConfigFile( $file ) {
|
157 |
+
$this->setAuthConfig( file_get_contents( $file ) );
|
158 |
+
}
|
159 |
+
|
160 |
+
/**
|
161 |
+
* @throws GoogleGAL_Auth_Exception
|
162 |
+
* @return array
|
163 |
+
* @visible For Testing
|
164 |
+
*/
|
165 |
+
public function prepareScopes() {
|
166 |
+
if ( empty( $this->requestedScopes ) ) {
|
167 |
+
throw new GoogleGAL_Auth_Exception( 'No scopes specified' );
|
168 |
+
}
|
169 |
+
$scopes = implode( ' ', $this->requestedScopes );
|
170 |
+
return $scopes;
|
171 |
+
}
|
172 |
+
|
173 |
+
/**
|
174 |
+
* Set the OAuth 2.0 access token using the string that resulted from calling createAuthUrl()
|
175 |
+
* or GoogleGAL_Client#getAccessToken().
|
176 |
+
*
|
177 |
+
* @param string $accessToken JSON encoded string containing in the following format:
|
178 |
+
* {"access_token":"TOKEN", "refresh_token":"TOKEN", "token_type":"Bearer",
|
179 |
+
* "expires_in":3600, "id_token":"TOKEN", "created":1320790426}
|
180 |
+
*/
|
181 |
+
public function setAccessToken( $accessToken ) {
|
182 |
+
if ( $accessToken == 'null' ) {
|
183 |
+
$accessToken = null;
|
184 |
+
}
|
185 |
+
$this->getAuth()->setAccessToken( $accessToken );
|
186 |
+
}
|
187 |
+
|
188 |
+
|
189 |
+
|
190 |
+
/**
|
191 |
+
* Set the authenticator object
|
192 |
+
*
|
193 |
+
* @param GoogleGAL_Auth_Abstract $auth
|
194 |
+
*/
|
195 |
+
public function setAuth( GoogleGAL_Auth_Abstract $auth ) {
|
196 |
+
$this->config->setAuthClass( get_class( $auth ) );
|
197 |
+
$this->auth = $auth;
|
198 |
+
}
|
199 |
+
|
200 |
+
/**
|
201 |
+
* Set the IO object
|
202 |
+
*
|
203 |
+
* @param GoogleGAL_IO_Abstract $io
|
204 |
+
*/
|
205 |
+
public function setIo( GoogleGAL_IO_Abstract $io ) {
|
206 |
+
$this->config->setIoClass( get_class( $io ) );
|
207 |
+
$this->io = $io;
|
208 |
+
}
|
209 |
+
|
210 |
+
/**
|
211 |
+
* Set the Cache object
|
212 |
+
*
|
213 |
+
* @param GoogleGAL_Cache_Abstract $cache
|
214 |
+
*/
|
215 |
+
public function setCache( GoogleGAL_Cache_Abstract $cache ) {
|
216 |
+
$this->config->setCacheClass( get_class( $cache ) );
|
217 |
+
$this->cache = $cache;
|
218 |
+
}
|
219 |
+
|
220 |
+
/**
|
221 |
+
* Set the Logger object
|
222 |
+
*
|
223 |
+
* @param GoogleGAL_Logger_Abstract $logger
|
224 |
+
*/
|
225 |
+
public function setLogger( GoogleGAL_Logger_Abstract $logger ) {
|
226 |
+
$this->config->setLoggerClass( get_class( $logger ) );
|
227 |
+
$this->logger = $logger;
|
228 |
+
}
|
229 |
+
|
230 |
+
/**
|
231 |
+
* Construct the OAuth 2.0 authorization request URI.
|
232 |
+
*
|
233 |
+
* @return string
|
234 |
+
*/
|
235 |
+
public function createAuthUrl() {
|
236 |
+
$scopes = $this->prepareScopes();
|
237 |
+
return $this->getAuth()->createAuthUrl( $scopes );
|
238 |
+
}
|
239 |
+
|
240 |
+
/**
|
241 |
+
* Get the OAuth 2.0 access token.
|
242 |
+
*
|
243 |
+
* @return string $accessToken JSON encoded string in the following format:
|
244 |
+
* {"access_token":"TOKEN", "refresh_token":"TOKEN", "token_type":"Bearer",
|
245 |
+
* "expires_in":3600,"id_token":"TOKEN", "created":1320790426}
|
246 |
+
*/
|
247 |
+
public function getAccessToken() {
|
248 |
+
$token = $this->getAuth()->getAccessToken();
|
249 |
+
// The response is json encoded, so could be the string null.
|
250 |
+
// It is arguable whether this check should be here or lower
|
251 |
+
// in the library.
|
252 |
+
return ( null == $token || 'null' == $token || '[]' == $token ) ? null : $token;
|
253 |
+
}
|
254 |
+
|
255 |
+
/**
|
256 |
+
* Get the OAuth 2.0 refresh token.
|
257 |
+
*
|
258 |
+
* @return string $refreshToken refresh token or null if not available
|
259 |
+
*/
|
260 |
+
public function getRefreshToken() {
|
261 |
+
return $this->getAuth()->getRefreshToken();
|
262 |
+
}
|
263 |
+
|
264 |
+
/**
|
265 |
+
* Returns if the access_token is expired.
|
266 |
+
*
|
267 |
+
* @return bool Returns True if the access_token is expired.
|
268 |
+
*/
|
269 |
+
public function isAccessTokenExpired() {
|
270 |
+
return $this->getAuth()->isAccessTokenExpired();
|
271 |
+
}
|
272 |
+
|
273 |
+
/**
|
274 |
+
* Set OAuth 2.0 "state" parameter to achieve per-request customization.
|
275 |
+
*
|
276 |
+
* @see http://tools.ietf.org/html/draft-ietf-oauth-v2-22#section-3.1.2.2
|
277 |
+
* @param string $state
|
278 |
+
*/
|
279 |
+
public function setState( $state ) {
|
280 |
+
$this->getAuth()->setState( $state );
|
281 |
+
}
|
282 |
+
|
283 |
+
/**
|
284 |
+
* @param string $accessType Possible values for access_type include:
|
285 |
+
* {@code "offline"} to request offline access from the user.
|
286 |
+
* {@code "online"} to request online access from the user.
|
287 |
+
*/
|
288 |
+
public function setAccessType( $accessType ) {
|
289 |
+
$this->config->setAccessType( $accessType );
|
290 |
+
}
|
291 |
+
|
292 |
+
/**
|
293 |
+
* @param string $approvalPrompt Possible values for approval_prompt include:
|
294 |
+
* {@code "force"} to force the approval UI to appear. (This is the default value)
|
295 |
+
* {@code "auto"} to request auto-approval when possible.
|
296 |
+
*/
|
297 |
+
public function setApprovalPrompt( $approvalPrompt ) {
|
298 |
+
$this->config->setApprovalPrompt( $approvalPrompt );
|
299 |
+
}
|
300 |
+
|
301 |
+
/**
|
302 |
+
* Set the login hint, email address or sub id.
|
303 |
+
*
|
304 |
+
* @param string $loginHint
|
305 |
+
*/
|
306 |
+
public function setLoginHint( $loginHint ) {
|
307 |
+
$this->config->setLoginHint( $loginHint );
|
308 |
+
}
|
309 |
+
|
310 |
+
/**
|
311 |
+
* Set the application name, this is included in the User-Agent HTTP header.
|
312 |
+
*
|
313 |
+
* @param string $applicationName
|
314 |
+
*/
|
315 |
+
public function setApplicationName( $applicationName ) {
|
316 |
+
$this->config->setApplicationName( $applicationName );
|
317 |
+
}
|
318 |
+
|
319 |
+
/**
|
320 |
+
* Set the OAuth 2.0 Client ID.
|
321 |
+
*
|
322 |
+
* @param string $clientId
|
323 |
+
*/
|
324 |
+
public function setClientId( $clientId ) {
|
325 |
+
$this->config->setClientId( $clientId );
|
326 |
+
}
|
327 |
+
|
328 |
+
/**
|
329 |
+
* Set the OAuth 2.0 Client Secret.
|
330 |
+
*
|
331 |
+
* @param string $clientSecret
|
332 |
+
*/
|
333 |
+
public function setClientSecret( $clientSecret ) {
|
334 |
+
$this->config->setClientSecret( $clientSecret );
|
335 |
+
}
|
336 |
+
|
337 |
+
/**
|
338 |
+
* Set the OAuth 2.0 Redirect URI.
|
339 |
+
*
|
340 |
+
* @param string $redirectUri
|
341 |
+
*/
|
342 |
+
public function setRedirectUri( $redirectUri ) {
|
343 |
+
$this->config->setRedirectUri( $redirectUri );
|
344 |
+
}
|
345 |
+
|
346 |
+
/**
|
347 |
+
* If 'plus.login' is included in the list of requested scopes, you can use
|
348 |
+
* this method to define types of app activities that your app will write.
|
349 |
+
* You can find a list of available types here:
|
350 |
+
*
|
351 |
+
* @link https://developers.google.com/+/api/moment-types
|
352 |
+
*
|
353 |
+
* @param array $requestVisibleActions Array of app activity types
|
354 |
+
*/
|
355 |
+
public function setRequestVisibleActions( $requestVisibleActions ) {
|
356 |
+
if ( is_array( $requestVisibleActions ) ) {
|
357 |
+
$requestVisibleActions = join( ' ', $requestVisibleActions );
|
358 |
+
}
|
359 |
+
$this->config->setRequestVisibleActions( $requestVisibleActions );
|
360 |
+
}
|
361 |
+
|
362 |
+
/**
|
363 |
+
* Set the developer key to use, these are obtained through the API Console.
|
364 |
+
*
|
365 |
+
* @see http://code.google.com/apis/console-help/#generatingdevkeys
|
366 |
+
* @param string $developerKey
|
367 |
+
*/
|
368 |
+
public function setDeveloperKey( $developerKey ) {
|
369 |
+
$this->config->setDeveloperKey( $developerKey );
|
370 |
+
}
|
371 |
+
|
372 |
+
/**
|
373 |
+
* Set the hd (hosted domain) parameter streamlines the login process for
|
374 |
+
* Google Apps hosted accounts. By including the domain of the user, you
|
375 |
+
* restrict sign-in to accounts at that domain.
|
376 |
+
*
|
377 |
+
* @param $hd string - the domain to use.
|
378 |
+
*/
|
379 |
+
public function setHostedDomain( $hd ) {
|
380 |
+
$this->config->setHostedDomain( $hd );
|
381 |
+
}
|
382 |
+
|
383 |
+
/**
|
384 |
+
* Set the prompt hint. Valid values are none, consent and select_account.
|
385 |
+
* If no value is specified and the user has not previously authorized
|
386 |
+
* access, then the user is shown a consent screen.
|
387 |
+
*
|
388 |
+
* @param $prompt string
|
389 |
+
*/
|
390 |
+
public function setPrompt( $prompt ) {
|
391 |
+
$this->config->setPrompt( $prompt );
|
392 |
+
}
|
393 |
+
|
394 |
+
/**
|
395 |
+
* openid.realm is a parameter from the OpenID 2.0 protocol, not from OAuth
|
396 |
+
* 2.0. It is used in OpenID 2.0 requests to signify the URL-space for which
|
397 |
+
* an authentication request is valid.
|
398 |
+
*
|
399 |
+
* @param $realm string - the URL-space to use.
|
400 |
+
*/
|
401 |
+
public function setOpenidRealm( $realm ) {
|
402 |
+
$this->config->setOpenidRealm( $realm );
|
403 |
+
}
|
404 |
+
|
405 |
+
/**
|
406 |
+
* If this is provided with the value true, and the authorization request is
|
407 |
+
* granted, the authorization will include any previous authorizations
|
408 |
+
* granted to this user/application combination for other scopes.
|
409 |
+
*
|
410 |
+
* @param $include boolean - the URL-space to use.
|
411 |
+
*/
|
412 |
+
public function setIncludeGrantedScopes( $include ) {
|
413 |
+
$this->config->setIncludeGrantedScopes( $include );
|
414 |
+
}
|
415 |
+
|
416 |
+
/**
|
417 |
+
* Fetches a fresh OAuth 2.0 access token with the given refresh token.
|
418 |
+
*
|
419 |
+
* @param string $refreshToken
|
420 |
+
*/
|
421 |
+
public function refreshToken( $refreshToken ) {
|
422 |
+
$this->getAuth()->refreshToken( $refreshToken );
|
423 |
+
}
|
424 |
+
|
425 |
+
/**
|
426 |
+
* Revoke an OAuth2 access token or refresh token. This method will revoke the current access
|
427 |
+
* token, if a token isn't provided.
|
428 |
+
*
|
429 |
+
* @throws GoogleGAL_Auth_Exception
|
430 |
+
* @param string|null $token The token (access token or a refresh token) that should be revoked.
|
431 |
+
* @return boolean Returns True if the revocation was successful, otherwise False.
|
432 |
+
*/
|
433 |
+
public function revokeToken( $token = null ) {
|
434 |
+
return $this->getAuth()->revokeToken( $token );
|
435 |
+
}
|
436 |
+
|
437 |
+
/**
|
438 |
+
* Verify an id_token. This method will verify the current id_token, if one
|
439 |
+
* isn't provided.
|
440 |
+
*
|
441 |
+
* @throws GoogleGAL_Auth_Exception
|
442 |
+
* @param string|null $token The token (id_token) that should be verified.
|
443 |
+
* @return GoogleGAL_Auth_LoginTicket Returns an apiLoginTicket if the verification was
|
444 |
+
* successful.
|
445 |
+
*/
|
446 |
+
public function verifyIdToken( $token = null ) {
|
447 |
+
return $this->getAuth()->verifyIdToken( $token );
|
448 |
+
}
|
449 |
+
|
450 |
+
/**
|
451 |
+
* Verify a JWT that was signed with your own certificates.
|
452 |
+
*
|
453 |
+
* @param $id_token string The JWT token
|
454 |
+
* @param $cert_location array of certificates
|
455 |
+
* @param $audience string the expected consumer of the token
|
456 |
+
* @param $issuer string the expected issuer, defaults to Google
|
457 |
+
* @param [ $max_expiry] the max lifetime of a token, defaults to MAX_TOKEN_LIFETIME_SECS
|
458 |
+
* @return mixed token information if valid, false if not
|
459 |
+
*/
|
460 |
+
public function verifySignedJwt( $id_token, $cert_location, $audience, $issuer, $max_expiry = null ) {
|
461 |
+
$auth = new GoogleGAL_Auth_OAuth2( $this );
|
462 |
+
$certs = $auth->retrieveCertsFromLocation( $cert_location );
|
463 |
+
return $auth->verifySignedJwtWithCerts( $id_token, $certs, $audience, $issuer, $max_expiry );
|
464 |
+
}
|
465 |
+
|
466 |
+
/**
|
467 |
+
* @param $creds GoogleGAL_Auth_AssertionCredentials
|
468 |
+
*/
|
469 |
+
public function setAssertionCredentials( GoogleGAL_Auth_AssertionCredentials $creds ) {
|
470 |
+
$this->getAuth()->setAssertionCredentials( $creds );
|
471 |
+
}
|
472 |
+
|
473 |
+
/**
|
474 |
+
* Set the scopes to be requested. Must be called before createAuthUrl().
|
475 |
+
* Will remove any previously configured scopes.
|
476 |
+
*
|
477 |
+
* @param array $scopes, ie: array('https://www.googleapis.com/auth/plus.login',
|
478 |
+
* 'https://www.googleapis.com/auth/moderator')
|
479 |
+
*/
|
480 |
+
public function setScopes( $scopes ) {
|
481 |
+
$this->requestedScopes = array();
|
482 |
+
$this->addScope( $scopes );
|
483 |
+
}
|
484 |
+
|
485 |
+
/**
|
486 |
+
* This functions adds a scope to be requested as part of the OAuth2.0 flow.
|
487 |
+
* Will append any scopes not previously requested to the scope parameter.
|
488 |
+
* A single string will be treated as a scope to request. An array of strings
|
489 |
+
* will each be appended.
|
490 |
+
*
|
491 |
+
* @param $scope_or_scopes string|array e.g. "profile"
|
492 |
+
*/
|
493 |
+
public function addScope( $scope_or_scopes ) {
|
494 |
+
if ( is_string( $scope_or_scopes ) && ! in_array( $scope_or_scopes, $this->requestedScopes ) ) {
|
495 |
+
$this->requestedScopes[] = $scope_or_scopes;
|
496 |
+
} elseif ( is_array( $scope_or_scopes ) ) {
|
497 |
+
foreach ( $scope_or_scopes as $scope ) {
|
498 |
+
$this->addScope( $scope );
|
499 |
+
}
|
500 |
+
}
|
501 |
+
}
|
502 |
+
|
503 |
+
/**
|
504 |
+
* Returns the list of scopes requested by the client
|
505 |
+
*
|
506 |
+
* @return array the list of scopes
|
507 |
+
*/
|
508 |
+
public function getScopes() {
|
509 |
+
return $this->requestedScopes;
|
510 |
+
}
|
511 |
+
|
512 |
+
/**
|
513 |
+
* Declare whether batch calls should be used. This may increase throughput
|
514 |
+
* by making multiple requests in one connection.
|
515 |
+
*
|
516 |
+
* @param boolean $useBatch True if the batch support should
|
517 |
+
* be enabled. Defaults to False.
|
518 |
+
*/
|
519 |
+
public function setUseBatch( $useBatch ) {
|
520 |
+
// This is actually an alias for setDefer.
|
521 |
+
$this->setDefer( $useBatch );
|
522 |
+
}
|
523 |
+
|
524 |
+
/**
|
525 |
+
* Declare whether making API calls should make the call immediately, or
|
526 |
+
* return a request which can be called with ->execute();
|
527 |
+
*
|
528 |
+
* @param boolean $defer True if calls should not be executed right away.
|
529 |
+
*/
|
530 |
+
public function setDefer( $defer ) {
|
531 |
+
$this->deferExecution = $defer;
|
532 |
+
}
|
533 |
+
|
534 |
+
/**
|
535 |
+
* Helper method to execute deferred HTTP requests.
|
536 |
+
*
|
537 |
+
* @param $request GoogleGAL_Http_Request|GoogleGAL_Http_Batch
|
538 |
+
* @throws GoogleGAL_Exception
|
539 |
+
* @return object of the type of the expected class or array.
|
540 |
+
*/
|
541 |
+
public function execute( $request ) {
|
542 |
+
if ( $request instanceof GoogleGAL_Http_Request ) {
|
543 |
+
$request->setUserAgent(
|
544 |
+
$this->getApplicationName()
|
545 |
+
. ' ' . self::USER_AGENT_SUFFIX
|
546 |
+
. $this->getLibraryVersion()
|
547 |
+
);
|
548 |
+
if ( ! $this->getClassConfig( 'GoogleGAL_Http_Request', 'disable_gzip' ) ) {
|
549 |
+
$request->enableGzip();
|
550 |
+
}
|
551 |
+
$request->maybeMoveParametersToBody();
|
552 |
+
return GoogleGAL_Http_REST::execute( $this, $request );
|
553 |
+
} elseif ( $request instanceof GoogleGAL_Http_Batch ) {
|
554 |
+
return $request->execute();
|
555 |
+
} else {
|
556 |
+
throw new GoogleGAL_Exception( 'Do not know how to execute this type of object.' );
|
557 |
+
}
|
558 |
+
}
|
559 |
+
|
560 |
+
/**
|
561 |
+
* Whether or not to return raw requests
|
562 |
+
*
|
563 |
+
* @return boolean
|
564 |
+
*/
|
565 |
+
public function shouldDefer() {
|
566 |
+
return $this->deferExecution;
|
567 |
+
}
|
568 |
+
|
569 |
+
/**
|
570 |
+
* @return GoogleGAL_Auth_Abstract Authentication implementation
|
571 |
+
*/
|
572 |
+
public function getAuth() {
|
573 |
+
if ( ! isset( $this->auth ) ) {
|
574 |
+
$class = $this->config->getAuthClass();
|
575 |
+
$this->auth = new $class( $this );
|
576 |
+
}
|
577 |
+
return $this->auth;
|
578 |
+
}
|
579 |
+
|
580 |
+
/**
|
581 |
+
* @return GoogleGAL_IO_Abstract IO implementation
|
582 |
+
*/
|
583 |
+
public function getIo() {
|
584 |
+
if ( ! isset( $this->io ) ) {
|
585 |
+
$class = $this->config->getIoClass();
|
586 |
+
$this->io = new $class( $this );
|
587 |
+
}
|
588 |
+
return $this->io;
|
589 |
+
}
|
590 |
+
|
591 |
+
/**
|
592 |
+
* @return GoogleGAL_Cache_Abstract Cache implementation
|
593 |
+
*/
|
594 |
+
public function getCache() {
|
595 |
+
if ( ! isset( $this->cache ) ) {
|
596 |
+
$class = $this->config->getCacheClass();
|
597 |
+
$this->cache = new $class( $this );
|
598 |
+
}
|
599 |
+
return $this->cache;
|
600 |
+
}
|
601 |
+
|
602 |
+
/**
|
603 |
+
* @return GoogleGAL_Logger_Abstract Logger implementation
|
604 |
+
*/
|
605 |
+
public function getLogger() {
|
606 |
+
if ( ! isset( $this->logger ) ) {
|
607 |
+
$class = $this->config->getLoggerClass();
|
608 |
+
$this->logger = new $class( $this );
|
609 |
+
}
|
610 |
+
return $this->logger;
|
611 |
+
}
|
612 |
+
|
613 |
+
/**
|
614 |
+
* Retrieve custom configuration for a specific class.
|
615 |
+
*
|
616 |
+
* @param $class string|object - class or instance of class to retrieve
|
617 |
+
* @param $key string optional - key to retrieve
|
618 |
+
* @return array
|
619 |
+
*/
|
620 |
+
public function getClassConfig( $class, $key = null ) {
|
621 |
+
if ( ! is_string( $class ) ) {
|
622 |
+
$class = get_class( $class );
|
623 |
+
}
|
624 |
+
return $this->config->getClassConfig( $class, $key );
|
625 |
+
}
|
626 |
+
|
627 |
+
/**
|
628 |
+
* Set configuration specific to a given class.
|
629 |
+
* $config->setClassConfig('GoogleGAL_Cache_File',
|
630 |
+
* array('directory' => '/tmp/cache'));
|
631 |
+
*
|
632 |
+
* @param $class string|object - The class name for the configuration
|
633 |
+
* @param $config string key or an array of configuration values
|
634 |
+
* @param value string optional - if $config is a key, the value
|
635 |
+
*/
|
636 |
+
public function setClassConfig( $class, $config, $value = null ) {
|
637 |
+
if ( ! is_string( $class ) ) {
|
638 |
+
$class = get_class( $class );
|
639 |
+
}
|
640 |
+
$this->config->setClassConfig( $class, $config, $value );
|
641 |
+
|
642 |
+
}
|
643 |
+
|
644 |
+
/**
|
645 |
+
* @return string the base URL to use for calls to the APIs
|
646 |
+
*/
|
647 |
+
public function getBasePath() {
|
648 |
+
return $this->config->getBasePath();
|
649 |
+
}
|
650 |
+
|
651 |
+
/**
|
652 |
+
* @return string the name of the application
|
653 |
+
*/
|
654 |
+
public function getApplicationName() {
|
655 |
+
return $this->config->getApplicationName();
|
656 |
+
}
|
657 |
+
|
658 |
+
/**
|
659 |
+
* Are we running in Google AppEngine?
|
660 |
+
* return bool
|
661 |
+
*/
|
662 |
+
public function isAppEngine() {
|
663 |
+
return ( isset( $_SERVER['SERVER_SOFTWARE'] ) &&
|
664 |
+
strpos( $_SERVER['SERVER_SOFTWARE'], 'Google App Engine' ) !== false );
|
665 |
+
}
|
666 |
+
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
core/Google/Collection.php
CHANGED
@@ -1,96 +1,85 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
require_once realpath(dirname(__FILE__) . '/../../autoload.php');
|
4 |
-
|
5 |
-
/**
|
6 |
-
* Extension to the regular GoogleGAL_Model that automatically
|
7 |
-
* exposes the items array for iteration, so you can just
|
8 |
-
* iterate over the object rather than a reference inside.
|
9 |
-
*/
|
10 |
-
class GoogleGAL_Collection extends GoogleGAL_Model implements Iterator, Countable
|
11 |
-
|
12 |
-
|
13 |
-
|
14 |
-
|
15 |
-
|
16 |
-
|
17 |
-
|
18 |
-
|
19 |
-
|
20 |
-
|
21 |
-
|
22 |
-
|
23 |
-
|
24 |
-
|
25 |
-
|
26 |
-
|
27 |
-
|
28 |
-
|
29 |
-
|
30 |
-
|
31 |
-
|
32 |
-
|
33 |
-
|
34 |
-
|
35 |
-
|
36 |
-
|
37 |
-
|
38 |
-
|
39 |
-
|
40 |
-
|
41 |
-
|
42 |
-
|
43 |
-
|
44 |
-
|
45 |
-
|
46 |
-
|
47 |
-
|
48 |
-
|
49 |
-
|
50 |
-
|
51 |
-
|
52 |
-
|
53 |
-
|
54 |
-
|
55 |
-
|
56 |
-
|
57 |
-
|
58 |
-
|
59 |
-
|
60 |
-
|
61 |
-
|
62 |
-
|
63 |
-
|
64 |
-
|
65 |
-
|
66 |
-
|
67 |
-
|
68 |
-
|
69 |
-
|
70 |
-
|
71 |
-
|
72 |
-
|
73 |
-
|
74 |
-
|
75 |
-
|
76 |
-
|
77 |
-
|
78 |
-
|
79 |
-
|
80 |
-
|
81 |
-
|
82 |
-
|
83 |
-
|
84 |
-
|
85 |
-
|
86 |
-
|
87 |
-
private function coerceType($offset)
|
88 |
-
{
|
89 |
-
$typeKey = $this->keyType($this->collection_key);
|
90 |
-
if (isset($this->$typeKey) && !is_object($this->modelData[$this->collection_key][$offset])) {
|
91 |
-
$type = $this->$typeKey;
|
92 |
-
$this->modelData[$this->collection_key][$offset] =
|
93 |
-
new $type($this->modelData[$this->collection_key][$offset]);
|
94 |
-
}
|
95 |
-
}
|
96 |
-
}
|
1 |
+
<?php
|
2 |
+
|
3 |
+
require_once realpath( dirname( __FILE__ ) . '/../../autoload.php' );
|
4 |
+
|
5 |
+
/**
|
6 |
+
* Extension to the regular GoogleGAL_Model that automatically
|
7 |
+
* exposes the items array for iteration, so you can just
|
8 |
+
* iterate over the object rather than a reference inside.
|
9 |
+
*/
|
10 |
+
class GoogleGAL_Collection extends GoogleGAL_Model implements Iterator, Countable {
|
11 |
+
|
12 |
+
protected $collection_key = 'items';
|
13 |
+
|
14 |
+
public function rewind() {
|
15 |
+
if ( isset( $this->modelData[ $this->collection_key ] )
|
16 |
+
&& is_array( $this->modelData[ $this->collection_key ] ) ) {
|
17 |
+
reset( $this->modelData[ $this->collection_key ] );
|
18 |
+
}
|
19 |
+
}
|
20 |
+
|
21 |
+
public function current() {
|
22 |
+
$this->coerceType( $this->key() );
|
23 |
+
if ( is_array( $this->modelData[ $this->collection_key ] ) ) {
|
24 |
+
return current( $this->modelData[ $this->collection_key ] );
|
25 |
+
}
|
26 |
+
}
|
27 |
+
|
28 |
+
public function key() {
|
29 |
+
if ( isset( $this->modelData[ $this->collection_key ] )
|
30 |
+
&& is_array( $this->modelData[ $this->collection_key ] ) ) {
|
31 |
+
return key( $this->modelData[ $this->collection_key ] );
|
32 |
+
}
|
33 |
+
}
|
34 |
+
|
35 |
+
public function next() {
|
36 |
+
return next( $this->modelData[ $this->collection_key ] );
|
37 |
+
}
|
38 |
+
|
39 |
+
public function valid() {
|
40 |
+
$key = $this->key();
|
41 |
+
return $key !== null && $key !== false;
|
42 |
+
}
|
43 |
+
|
44 |
+
public function count() {
|
45 |
+
return count( $this->modelData[ $this->collection_key ] );
|
46 |
+
}
|
47 |
+
|
48 |
+
public function offsetExists( $offset ) {
|
49 |
+
if ( ! is_numeric( $offset ) ) {
|
50 |
+
return parent::offsetExists( $offset );
|
51 |
+
}
|
52 |
+
return isset( $this->modelData[ $this->collection_key ][ $offset ] );
|
53 |
+
}
|
54 |
+
|
55 |
+
public function offsetGet( $offset ) {
|
56 |
+
if ( ! is_numeric( $offset ) ) {
|
57 |
+
return parent::offsetGet( $offset );
|
58 |
+
}
|
59 |
+
$this->coerceType( $offset );
|
60 |
+
return $this->modelData[ $this->collection_key ][ $offset ];
|
61 |
+
}
|
62 |
+
|
63 |
+
public function offsetSet( $offset, $value ) {
|
64 |
+
if ( ! is_numeric( $offset ) ) {
|
65 |
+
return parent::offsetSet( $offset, $value );
|
66 |
+
}
|
67 |
+
$this->modelData[ $this->collection_key ][ $offset ] = $value;
|
68 |
+
}
|
69 |
+
|
70 |
+
public function offsetUnset( $offset ) {
|
71 |
+
if ( ! is_numeric( $offset ) ) {
|
72 |
+
return parent::offsetUnset( $offset );
|
73 |
+
}
|
74 |
+
unset( $this->modelData[ $this->collection_key ][ $offset ] );
|
75 |
+
}
|
76 |
+
|
77 |
+
private function coerceType( $offset ) {
|
78 |
+
$typeKey = $this->keyType( $this->collection_key );
|
79 |
+
if ( isset( $this->$typeKey ) && ! is_object( $this->modelData[ $this->collection_key ][ $offset ] ) ) {
|
80 |
+
$type = $this->$typeKey;
|
81 |
+
$this->modelData[ $this->collection_key ][ $offset ] =
|
82 |
+
new $type( $this->modelData[ $this->collection_key ][ $offset ] );
|
83 |
+
}
|
84 |
+
}
|
85 |
+
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
core/Google/Config.php
CHANGED
@@ -1,413 +1,403 @@
|
|
1 |
-
<?php
|
2 |
-
/*
|
3 |
-
* Copyright 2010 Google Inc.
|
4 |
-
*
|
5 |
-
* Licensed under the Apache License, Version 2.0 (the "License");
|
6 |
-
* you may not use this file except in compliance with the License.
|
7 |
-
* You may obtain a copy of the License at
|
8 |
-
*
|
9 |
-
* https://www.apache.org/licenses/LICENSE-2.0
|
10 |
-
*
|
11 |
-
* Unless required by applicable law or agreed to in writing, software
|
12 |
-
* distributed under the License is distributed on an "AS IS" BASIS,
|
13 |
-
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
14 |
-
* See the License for the specific language governing permissions and
|
15 |
-
* limitations under the License.
|
16 |
-
*/
|
17 |
-
|
18 |
-
/**
|
19 |
-
* A class to contain the library configuration for the Google API client.
|
20 |
-
*/
|
21 |
-
class GoogleGAL_Config
|
22 |
-
|
23 |
-
|
24 |
-
|
25 |
-
|
26 |
-
|
27 |
-
|
28 |
-
|
29 |
-
|
30 |
-
|
31 |
-
|
32 |
-
|
33 |
-
|
34 |
-
|
35 |
-
|
36 |
-
|
37 |
-
|
38 |
-
|
39 |
-
|
40 |
-
|
41 |
-
|
42 |
-
|
43 |
-
|
44 |
-
|
45 |
-
|
46 |
-
|
47 |
-
|
48 |
-
|
49 |
-
|
50 |
-
|
51 |
-
|
52 |
-
|
53 |
-
|
54 |
-
|
55 |
-
|
56 |
-
|
57 |
-
|
58 |
-
|
59 |
-
|
60 |
-
|
61 |
-
|
62 |
-
|
63 |
-
|
64 |
-
|
65 |
-
|
66 |
-
|
67 |
-
|
68 |
-
|
69 |
-
|
70 |
-
|
71 |
-
|
72 |
-
|
73 |
-
|
74 |
-
|
75 |
-
|
76 |
-
|
77 |
-
|
78 |
-
|
79 |
-
|
80 |
-
|
81 |
-
|
82 |
-
|
83 |
-
|
84 |
-
|
85 |
-
|
86 |
-
|
87 |
-
|
88 |
-
|
89 |
-
|
90 |
-
|
91 |
-
|
92 |
-
|
93 |
-
|
94 |
-
|
95 |
-
|
96 |
-
|
97 |
-
|
98 |
-
|
99 |
-
|
100 |
-
|
101 |
-
|
102 |
-
|
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 |
-
|
134 |
-
|
135 |
-
|
136 |
-
|
137 |
-
|
138 |
-
|
139 |
-
|
140 |
-
|
141 |
-
|
142 |
-
|
143 |
-
|
144 |
-
|
145 |
-
|
146 |
-
|
147 |
-
|
148 |
-
|
149 |
-
|
150 |
-
|
151 |
-
|
152 |
-
|
153 |
-
|
154 |
-
|
155 |
-
|
156 |
-
|
157 |
-
|
158 |
-
|
159 |
-
|
160 |
-
|
161 |
-
|
162 |
-
|
163 |
-
|
164 |
-
|
165 |
-
|
166 |
-
|
167 |
-
|
168 |
-
|
169 |
-
|
170 |
-
|
171 |
-
|
172 |
-
|
173 |
-
|
174 |
-
|
175 |
-
|
176 |
-
|
177 |
-
|
178 |
-
|
179 |
-
|
180 |
-
|
181 |
-
|
182 |
-
|
183 |
-
|
184 |
-
|
185 |
-
|
186 |
-
|
187 |
-
|
188 |
-
|
189 |
-
|
190 |
-
|
191 |
-
|
192 |
-
|
193 |
-
|
194 |
-
|
195 |
-
|
196 |
-
|
197 |
-
|
198 |
-
|
199 |
-
|
200 |
-
|
201 |
-
|
202 |
-
|
203 |
-
|
204 |
-
|
205 |
-
|
206 |
-
|
207 |
-
|
208 |
-
|
209 |
-
|
210 |
-
|
211 |
-
|
212 |
-
|
213 |
-
|
214 |
-
|
215 |
-
|
216 |
-
|
217 |
-
|
218 |
-
|
219 |
-
|
220 |
-
|
221 |
-
|
222 |
-
|
223 |
-
|
224 |
-
|
225 |
-
|
226 |
-
|
227 |
-
|
228 |
-
|
229 |
-
|
230 |
-
|
231 |
-
|
232 |
-
|
233 |
-
|
234 |
-
|
235 |
-
|
236 |
-
|
237 |
-
|
238 |
-
|
239 |
-
|
240 |
-
|
241 |
-
|
242 |
-
|
243 |
-
|
244 |
-
|
245 |
-
|
246 |
-
|
247 |
-
|
248 |
-
|
249 |
-
|
250 |
-
|
251 |
-
|
252 |
-
|
253 |
-
|
254 |
-
|
255 |
-
|
256 |
-
|
257 |
-
|
258 |
-
|
259 |
-
|
260 |
-
|
261 |
-
|
262 |
-
|
263 |
-
|
264 |
-
|
265 |
-
|
266 |
-
|
267 |
-
|
268 |
-
|
269 |
-
|
270 |
-
|
271 |
-
|
272 |
-
|
273 |
-
|
274 |
-
|
275 |
-
|
276 |
-
|
277 |
-
|
278 |
-
|
279 |
-
|
280 |
-
|
281 |
-
|
282 |
-
|
283 |
-
|
284 |
-
|
285 |
-
|
286 |
-
|
287 |
-
|
288 |
-
|
289 |
-
|
290 |
-
|
291 |
-
|
292 |
-
|
293 |
-
|
294 |
-
|
295 |
-
|
296 |
-
|
297 |
-
|
298 |
-
|
299 |
-
|
300 |
-
|
301 |
-
|
302 |
-
|
303 |
-
|
304 |
-
|
305 |
-
|
306 |
-
|
307 |
-
|
308 |
-
|
309 |
-
|
310 |
-
|
311 |
-
|
312 |
-
|
313 |
-
|
314 |
-
|
315 |
-
|
316 |
-
|
317 |
-
|
318 |
-
|
319 |
-
|
320 |
-
|
321 |
-
|
322 |
-
|
323 |
-
|
324 |
-
|
325 |
-
|
326 |
-
|
327 |
-
|
328 |
-
|
329 |
-
|
330 |
-
|
331 |
-
|
332 |
-
|
333 |
-
|
334 |
-
|
335 |
-
|
336 |
-
|
337 |
-
|
338 |
-
|
339 |
-
|
340 |
-
|
341 |
-
|
342 |
-
|
343 |
-
|
344 |
-
|
345 |
-
|
346 |
-
|
347 |
-
|
348 |
-
|
349 |
-
|
350 |
-
|
351 |
-
|
352 |
-
|
353 |
-
|
354 |
-
|
355 |
-
|
356 |
-
|
357 |
-
|
358 |
-
|
359 |
-
|
360 |
-
|
361 |
-
|
362 |
-
|
363 |
-
|
364 |
-
|
365 |
-
|
366 |
-
|
367 |
-
|
368 |
-
|
369 |
-
|
370 |
-
|
371 |
-
|
372 |
-
|
373 |
-
|
374 |
-
|
375 |
-
|
376 |
-
|
377 |
-
|
378 |
-
|
379 |
-
|
380 |
-
|
381 |
-
|
382 |
-
|
383 |
-
|
384 |
-
|
385 |
-
|
386 |
-
|
387 |
-
|
388 |
-
|
389 |
-
|
390 |
-
|
391 |
-
|
392 |
-
|
393 |
-
|
394 |
-
|
395 |
-
|
396 |
-
|
397 |
-
|
398 |
-
|
399 |
-
|
400 |
-
|
401 |
-
|
402 |
-
|
403 |
-
|
404 |
-
* @param $value - the parameter value
|
405 |
-
*/
|
406 |
-
private function setAuthConfig($key, $value)
|
407 |
-
{
|
408 |
-
if (!isset($this->configuration['classes'][$this->getAuthClass()])) {
|
409 |
-
$this->configuration['classes'][$this->getAuthClass()] = array();
|
410 |
-
}
|
411 |
-
$this->configuration['classes'][$this->getAuthClass()][$key] = $value;
|
412 |
-
}
|
413 |
-
}
|
1 |
+
<?php
|
2 |
+
/*
|
3 |
+
* Copyright 2010 Google Inc.
|
4 |
+
*
|
5 |
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
6 |
+
* you may not use this file except in compliance with the License.
|
7 |
+
* You may obtain a copy of the License at
|
8 |
+
*
|
9 |
+
* https://www.apache.org/licenses/LICENSE-2.0
|
10 |
+
*
|
11 |
+
* Unless required by applicable law or agreed to in writing, software
|
12 |
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
13 |
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
14 |
+
* See the License for the specific language governing permissions and
|
15 |
+
* limitations under the License.
|
16 |
+
*/
|
17 |
+
|
18 |
+
/**
|
19 |
+
* A class to contain the library configuration for the Google API client.
|
20 |
+
*/
|
21 |
+
class GoogleGAL_Config {
|
22 |
+
|
23 |
+
const GZIP_DISABLED = true;
|
24 |
+
const GZIP_ENABLED = false;
|
25 |
+
const GZIP_UPLOADS_ENABLED = true;
|
26 |
+
const GZIP_UPLOADS_DISABLED = false;
|
27 |
+
const USE_AUTO_IO_SELECTION = 'auto';
|
28 |
+
protected $configuration;
|
29 |
+
|
30 |
+
/**
|
31 |
+
* Create a new GoogleGAL_Config. Can accept an ini file location with the
|
32 |
+
* local configuration. For example:
|
33 |
+
* application_name="My App"
|
34 |
+
*
|
35 |
+
* @param [ $ini_file_location] - optional - The location of the ini file to load
|
36 |
+
*/
|
37 |
+
public function __construct( $ini_file_location = null ) {
|
38 |
+
$this->configuration = array(
|
39 |
+
// The application_name is included in the User-Agent HTTP header.
|
40 |
+
'application_name' => '',
|
41 |
+
|
42 |
+
// Which Authentication, Storage and HTTP IO classes to use.
|
43 |
+
'auth_class' => 'GoogleGAL_Auth_OAuth2',
|
44 |
+
'io_class' => self::USE_AUTO_IO_SELECTION,
|
45 |
+
'cache_class' => 'GoogleGAL_Cache_File',
|
46 |
+
'logger_class' => 'GoogleGAL_Logger_Null',
|
47 |
+
|
48 |
+
// Don't change these unless you're working against a special development
|
49 |
+
// or testing environment.
|
50 |
+
'base_path' => 'https://www.googleapis.com',
|
51 |
+
|
52 |
+
// Definition of class specific values, like file paths and so on.
|
53 |
+
'classes' => array(
|
54 |
+
'GoogleGAL_IO_Abstract' => array(
|
55 |
+
'request_timeout_seconds' => 100,
|
56 |
+
),
|
57 |
+
'GoogleGAL_Logger_Abstract' => array(
|
58 |
+
'level' => 'debug',
|
59 |
+
'log_format' => "[%datetime%] %level%: %message% %context%\n",
|
60 |
+
'date_format' => 'd/M/Y:H:i:s O',
|
61 |
+
'allow_newlines' => true,
|
62 |
+
),
|
63 |
+
'GoogleGAL_Logger_File' => array(
|
64 |
+
'file' => 'php://stdout',
|
65 |
+
'mode' => 0640,
|
66 |
+
'lock' => false,
|
67 |
+
),
|
68 |
+
'GoogleGAL_Http_Request' => array(
|
69 |
+
// Disable the use of gzip on calls if set to true. Defaults to false.
|
70 |
+
'disable_gzip' => self::GZIP_ENABLED,
|
71 |
+
|
72 |
+
// We default gzip to disabled on uploads even if gzip is otherwise
|
73 |
+
// enabled, due to some issues seen with small packet sizes for uploads.
|
74 |
+
// Please test with this option before enabling gzip for uploads in
|
75 |
+
// a production environment.
|
76 |
+
'enable_gzip_for_uploads' => self::GZIP_UPLOADS_DISABLED,
|
77 |
+
),
|
78 |
+
// If you want to pass in OAuth 2.0 settings, they will need to be
|
79 |
+
// structured like this.
|
80 |
+
'GoogleGAL_Auth_OAuth2' => array(
|
81 |
+
// Keys for OAuth 2.0 access, see the API console at
|
82 |
+
// https://developers.google.com/console
|
83 |
+
'client_id' => '',
|
84 |
+
'client_secret' => '',
|
85 |
+
'redirect_uri' => '',
|
86 |
+
|
87 |
+
// Simple API access key, also from the API console. Ensure you get
|
88 |
+
// a Server key, and not a Browser key.
|
89 |
+
'developer_key' => '',
|
90 |
+
|
91 |
+
// Other parameters.
|
92 |
+
'hd' => '',
|
93 |
+
'prompt' => '',
|
94 |
+
'openid.realm' => '',
|
95 |
+
'include_granted_scopes' => '',
|
96 |
+
'login_hint' => '',
|
97 |
+
'request_visible_actions' => '',
|
98 |
+
'access_type' => 'online',
|
99 |
+
'federated_signon_certs_url' =>
|
100 |
+
'https://www.googleapis.com/oauth2/v1/certs',
|
101 |
+
),
|
102 |
+
// Set a default directory for the file cache.
|
103 |
+
'GoogleGAL_Cache_File' => array(
|
104 |
+
'directory' => sys_get_temp_dir() . '/GoogleGAL_Client',
|
105 |
+
),
|
106 |
+
),
|
107 |
+
);
|
108 |
+
if ( $ini_file_location ) {
|
109 |
+
$ini = parse_ini_file( $ini_file_location, true );
|
110 |
+
if ( is_array( $ini ) && count( $ini ) ) {
|
111 |
+
$merged_configuration = $ini + $this->configuration;
|
112 |
+
if ( isset( $ini['classes'] ) && isset( $this->configuration['classes'] ) ) {
|
113 |
+
$merged_configuration['classes'] = $ini['classes'] + $this->configuration['classes'];
|
114 |
+
}
|
115 |
+
$this->configuration = $merged_configuration;
|
116 |
+
}
|
117 |
+
}
|
118 |
+
}
|
119 |
+
|
120 |
+
/**
|
121 |
+
* Set configuration specific to a given class.
|
122 |
+
* $config->setClassConfig('GoogleGAL_Cache_File',
|
123 |
+
* array('directory' => '/tmp/cache'));
|
124 |
+
*
|
125 |
+
* @param $class string The class name for the configuration
|
126 |
+
* @param $config string key or an array of configuration values
|
127 |
+
* @param value string optional - if $config is a key, the value
|
128 |
+
*/
|
129 |
+
public function setClassConfig( $class, $config, $value = null ) {
|
130 |
+
if ( ! is_array( $config ) ) {
|
131 |
+
if ( ! isset( $this->configuration['classes'][ $class ] ) ) {
|
132 |
+
$this->configuration['classes'][ $class ] = array();
|
133 |
+
}
|
134 |
+
$this->configuration['classes'][ $class ][ $config ] = $value;
|
135 |
+
} else {
|
136 |
+
$this->configuration['classes'][ $class ] = $config;
|
137 |
+
}
|
138 |
+
}
|
139 |
+
|
140 |
+
public function getClassConfig( $class, $key = null ) {
|
141 |
+
if ( ! isset( $this->configuration['classes'][ $class ] ) ) {
|
142 |
+
return null;
|
143 |
+
}
|
144 |
+
if ( $key === null ) {
|
145 |
+
return $this->configuration['classes'][ $class ];
|
146 |
+
} else {
|
147 |
+
return $this->configuration['classes'][ $class ][ $key ];
|
148 |
+
}
|
149 |
+
}
|
150 |
+
|
151 |
+
/**
|
152 |
+
* Return the configured cache class.
|
153 |
+
*
|
154 |
+
* @return string
|
155 |
+
*/
|
156 |
+
public function getCacheClass() {
|
157 |
+
return $this->configuration['cache_class'];
|
158 |
+
}
|
159 |
+
|
160 |
+
/**
|
161 |
+
* Return the configured logger class.
|
162 |
+
*
|
163 |
+
* @return string
|
164 |
+
*/
|
165 |
+
public function getLoggerClass() {
|
166 |
+
return $this->configuration['logger_class'];
|
167 |
+
}
|
168 |
+
|
169 |
+
/**
|
170 |
+
* Return the configured Auth class.
|
171 |
+
*
|
172 |
+
* @return string
|
173 |
+
*/
|
174 |
+
public function getAuthClass() {
|
175 |
+
return $this->configuration['auth_class'];
|
176 |
+
}
|
177 |
+
|
178 |
+
/**
|
179 |
+
* Set the auth class.
|
180 |
+
*
|
181 |
+
* @param $class string the class name to set
|
182 |
+
*/
|
183 |
+
public function setAuthClass( $class ) {
|
184 |
+
$prev = $this->configuration['auth_class'];
|
185 |
+
if ( ! isset( $this->configuration['classes'][ $class ] ) &&
|
186 |
+
isset( $this->configuration['classes'][ $prev ] ) ) {
|
187 |
+
$this->configuration['classes'][ $class ] =
|
188 |
+
$this->configuration['classes'][ $prev ];
|
189 |
+
}
|
190 |
+
$this->configuration['auth_class'] = $class;
|
191 |
+
}
|
192 |
+
|
193 |
+
/**
|
194 |
+
* Set the IO class.
|
195 |
+
*
|
196 |
+
* @param $class string the class name to set
|
197 |
+
*/
|
198 |
+
public function setIoClass( $class ) {
|
199 |
+
$prev = $this->configuration['io_class'];
|
200 |
+
if ( ! isset( $this->configuration['classes'][ $class ] ) &&
|
201 |
+
isset( $this->configuration['classes'][ $prev ] ) ) {
|
202 |
+
$this->configuration['classes'][ $class ] =
|
203 |
+
$this->configuration['classes'][ $prev ];
|
204 |
+
}
|
205 |
+
$this->configuration['io_class'] = $class;
|
206 |
+
}
|
207 |
+
|
208 |
+
/**
|
209 |
+
* Set the cache class.
|
210 |
+
*
|
211 |
+
* @param $class string the class name to set
|
212 |
+
*/
|
213 |
+
public function setCacheClass( $class ) {
|
214 |
+
$prev = $this->configuration['cache_class'];
|
215 |
+
if ( ! isset( $this->configuration['classes'][ $class ] ) &&
|
216 |
+
isset( $this->configuration['classes'][ $prev ] ) ) {
|
217 |
+
$this->configuration['classes'][ $class ] =
|
218 |
+
$this->configuration['classes'][ $prev ];
|
219 |
+
}
|
220 |
+
$this->configuration['cache_class'] = $class;
|
221 |
+
}
|
222 |
+
|
223 |
+
/**
|
224 |
+
* Set the logger class.
|
225 |
+
*
|
226 |
+
* @param $class string the class name to set
|
227 |
+
*/
|
228 |
+
public function setLoggerClass( $class ) {
|
229 |
+
$prev = $this->configuration['logger_class'];
|
230 |
+
if ( ! isset( $this->configuration['classes'][ $class ] ) &&
|
231 |
+
isset( $this->configuration['classes'][ $prev ] ) ) {
|
232 |
+
$this->configuration['classes'][ $class ] =
|
233 |
+
$this->configuration['classes'][ $prev ];
|
234 |
+
}
|
235 |
+
$this->configuration['logger_class'] = $class;
|
236 |
+
}
|
237 |
+
|
238 |
+
/**
|
239 |
+
* Return the configured IO class.
|
240 |
+
*
|
241 |
+
* @return string
|
242 |
+
*/
|
243 |
+
public function getIoClass() {
|
244 |
+
return $this->configuration['io_class'];
|
245 |
+
}
|
246 |
+
|
247 |
+
/**
|
248 |
+
* Set the application name, this is included in the User-Agent HTTP header.
|
249 |
+
*
|
250 |
+
* @param string $name
|
251 |
+
*/
|
252 |
+
public function setApplicationName( $name ) {
|
253 |
+
$this->configuration['application_name'] = $name;
|
254 |
+
}
|
255 |
+
|
256 |
+
/**
|
257 |
+
* @return string the name of the application
|
258 |
+
*/
|
259 |
+
public function getApplicationName() {
|
260 |
+
return $this->configuration['application_name'];
|
261 |
+
}
|
262 |
+
|
263 |
+
/**
|
264 |
+
* Set the client ID for the auth class.
|
265 |
+
*
|
266 |
+
* @param $clientId string - the API console client ID
|
267 |
+
*/
|
268 |
+
public function setClientId( $clientId ) {
|
269 |
+
$this->setAuthConfig( 'client_id', $clientId );
|
270 |
+
}
|
271 |
+
|
272 |
+
/**
|
273 |
+
* Set the client secret for the auth class.
|
274 |
+
*
|
275 |
+
* @param $secret string - the API console client secret
|
276 |
+
*/
|
277 |
+
public function setClientSecret( $secret ) {
|
278 |
+
$this->setAuthConfig( 'client_secret', $secret );
|
279 |
+
}
|
280 |
+
|
281 |
+
/**
|
282 |
+
* Set the redirect uri for the auth class. Note that if using the
|
283 |
+
* Javascript based sign in flow, this should be the string 'postmessage'.
|
284 |
+
*
|
285 |
+
* @param $uri string - the URI that users should be redirected to
|
286 |
+
*/
|
287 |
+
public function setRedirectUri( $uri ) {
|
288 |
+
$this->setAuthConfig( 'redirect_uri', $uri );
|
289 |
+
}
|
290 |
+
|
291 |
+
/**
|
292 |
+
* Set the app activities for the auth class.
|
293 |
+
*
|
294 |
+
* @param $rva string a space separated list of app activity types
|
295 |
+
*/
|
296 |
+
public function setRequestVisibleActions( $rva ) {
|
297 |
+
$this->setAuthConfig( 'request_visible_actions', $rva );
|
298 |
+
}
|
299 |
+
|
300 |
+
/**
|
301 |
+
* Set the the access type requested (offline or online.)
|
302 |
+
*
|
303 |
+
* @param $access string - the access type
|
304 |
+
*/
|
305 |
+
public function setAccessType( $access ) {
|
306 |
+
$this->setAuthConfig( 'access_type', $access );
|
307 |
+
}
|
308 |
+
|
309 |
+
/**
|
310 |
+
* Set when to show the approval prompt (auto or force)
|
311 |
+
*
|
312 |
+
* @param $approval string - the approval request
|
313 |
+
*/
|
314 |
+
public function setApprovalPrompt( $approval ) {
|
315 |
+
$this->setAuthConfig( 'prompt', $approval );
|
316 |
+
}
|
317 |
+
|
318 |
+
/**
|
319 |
+
* Set the login hint (email address or sub identifier)
|
320 |
+
*
|
321 |
+
* @param $hint string
|
322 |
+
*/
|
323 |
+
public function setLoginHint( $hint ) {
|
324 |
+
$this->setAuthConfig( 'login_hint', $hint );
|
325 |
+
}
|
326 |
+
|
327 |
+
/**
|
328 |
+
* Set the developer key for the auth class. Note that this is separate value
|
329 |
+
* from the client ID - if it looks like a URL, its a client ID!
|
330 |
+
*
|
331 |
+
* @param $key string - the API console developer key
|
332 |
+
*/
|
333 |
+
public function setDeveloperKey( $key ) {
|
334 |
+
$this->setAuthConfig( 'developer_key', $key );
|
335 |
+
}
|
336 |
+
|
337 |
+
/**
|
338 |
+
* Set the hd (hosted domain) parameter streamlines the login process for
|
339 |
+
* Google Apps hosted accounts. By including the domain of the user, you
|
340 |
+
* restrict sign-in to accounts at that domain.
|
341 |
+
*
|
342 |
+
* @param $hd string - the domain to use.
|
343 |
+
*/
|
344 |
+
public function setHostedDomain( $hd ) {
|
345 |
+
$this->setAuthConfig( 'hd', $hd );
|
346 |
+
}
|
347 |
+
|
348 |
+
/**
|
349 |
+
* Set the prompt hint. Valid values are none, consent and select_account.
|
350 |
+
* If no value is specified and the user has not previously authorized
|
351 |
+
* access, then the user is shown a consent screen.
|
352 |
+
*
|
353 |
+
* @param $prompt string
|
354 |
+
*/
|
355 |
+
public function setPrompt( $prompt ) {
|
356 |
+
$this->setAuthConfig( 'prompt', $prompt );
|
357 |
+
}
|
358 |
+
|
359 |
+
/**
|
360 |
+
* openid.realm is a parameter from the OpenID 2.0 protocol, not from OAuth
|
361 |
+
* 2.0. It is used in OpenID 2.0 requests to signify the URL-space for which
|
362 |
+
* an authentication request is valid.
|
363 |
+
*
|
364 |
+
* @param $realm string - the URL-space to use.
|
365 |
+
*/
|
366 |
+
public function setOpenidRealm( $realm ) {
|
367 |
+
$this->setAuthConfig( 'openid.realm', $realm );
|
368 |
+
}
|
369 |
+
|
370 |
+
/**
|
371 |
+
* If this is provided with the value true, and the authorization request is
|
372 |
+
* granted, the authorization will include any previous authorizations
|
373 |
+
* granted to this user/application combination for other scopes.
|
374 |
+
*
|
375 |
+
* @param $include boolean - the URL-space to use.
|
376 |
+
*/
|
377 |
+
public function setIncludeGrantedScopes( $include ) {
|
378 |
+
$this->setAuthConfig(
|
379 |
+
'include_granted_scopes',
|
380 |
+
$include ? 'true' : 'false'
|
381 |
+
);
|
382 |
+
}
|
383 |
+
|
384 |
+
/**
|
385 |
+
* @return string the base URL to use for API calls
|
386 |
+
*/
|
387 |
+
public function getBasePath() {
|
388 |
+
return $this->configuration['base_path'];
|
389 |
+
}
|
390 |
+
|
391 |
+
/**
|
392 |
+
* Set the auth configuration for the current auth class.
|
393 |
+
*
|
394 |
+
* @param $key - the key to set
|
395 |
+
* @param $value - the parameter value
|
396 |
+
*/
|
397 |
+
private function setAuthConfig( $key, $value ) {
|
398 |
+
if ( ! isset( $this->configuration['classes'][ $this->getAuthClass() ] ) ) {
|
399 |
+
$this->configuration['classes'][ $this->getAuthClass() ] = array();
|
400 |
+
}
|
401 |
+
$this->configuration['classes'][ $this->getAuthClass() ][ $key ] = $value;
|
402 |
+
}
|
403 |
+
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
core/Google/Exception.php
CHANGED
@@ -1,20 +1,20 @@
|
|
1 |
-
<?php
|
2 |
-
/*
|
3 |
-
* Copyright 2013 Google Inc.
|
4 |
-
*
|
5 |
-
* Licensed under the Apache License, Version 2.0 (the "License");
|
6 |
-
* you may not use this file except in compliance with the License.
|
7 |
-
* You may obtain a copy of the License at
|
8 |
-
*
|
9 |
-
* https://www.apache.org/licenses/LICENSE-2.0
|
10 |
-
*
|
11 |
-
* Unless required by applicable law or agreed to in writing, software
|
12 |
-
* distributed under the License is distributed on an "AS IS" BASIS,
|
13 |
-
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
14 |
-
* See the License for the specific language governing permissions and
|
15 |
-
* limitations under the License.
|
16 |
-
*/
|
17 |
-
|
18 |
-
class GoogleGAL_Exception extends Exception
|
19 |
-
|
20 |
-
}
|
1 |
+
<?php
|
2 |
+
/*
|
3 |
+
* Copyright 2013 Google Inc.
|
4 |
+
*
|
5 |
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
6 |
+
* you may not use this file except in compliance with the License.
|
7 |
+
* You may obtain a copy of the License at
|
8 |
+
*
|
9 |
+
* https://www.apache.org/licenses/LICENSE-2.0
|
10 |
+
*
|
11 |
+
* Unless required by applicable law or agreed to in writing, software
|
12 |
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
13 |
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
14 |
+
* See the License for the specific language governing permissions and
|
15 |
+
* limitations under the License.
|
16 |
+
*/
|
17 |
+
|
18 |
+
class GoogleGAL_Exception extends Exception {
|
19 |
+
|
20 |
+
}
|
core/Google/Http/Batch.php
CHANGED
@@ -1,141 +1,137 @@
|
|
1 |
-
<?php
|
2 |
-
/*
|
3 |
-
* Copyright 2012 Google Inc.
|
4 |
-
*
|
5 |
-
* Licensed under the Apache License, Version 2.0 (the "License");
|
6 |
-
* you may not use this file except in compliance with the License.
|
7 |
-
* You may obtain a copy of the License at
|
8 |
-
*
|
9 |
-
* https://www.apache.org/licenses/LICENSE-2.0
|
10 |
-
*
|
11 |
-
* Unless required by applicable law or agreed to in writing, software
|
12 |
-
* distributed under the License is distributed on an "AS IS" BASIS,
|
13 |
-
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
14 |
-
* See the License for the specific language governing permissions and
|
15 |
-
* limitations under the License.
|
16 |
-
*/
|
17 |
-
|
18 |
-
require_once realpath(dirname(__FILE__) . '/../../../autoload.php');
|
19 |
-
|
20 |
-
/**
|
21 |
-
* @author Chirag Shah <chirags@google.com>
|
22 |
-
*/
|
23 |
-
class GoogleGAL_Http_Batch
|
24 |
-
|
25 |
-
|
26 |
-
|
27 |
-
|
28 |
-
|
29 |
-
|
30 |
-
|
31 |
-
|
32 |
-
|
33 |
-
|
34 |
-
|
35 |
-
|
36 |
-
|
37 |
-
|
38 |
-
|
39 |
-
|
40 |
-
|
41 |
-
|
42 |
-
|
43 |
-
|
44 |
-
|
45 |
-
|
46 |
-
|
47 |
-
|
48 |
-
|
49 |
-
|
50 |
-
|
51 |
-
|
52 |
-
|
53 |
-
|
54 |
-
|
55 |
-
|
56 |
-
|
57 |
-
|
58 |
-
|
59 |
-
|
60 |
-
|
61 |
-
|
62 |
-
|
63 |
-
|
64 |
-
|
65 |
-
|
66 |
-
|
67 |
-
|
68 |
-
|
69 |
-
|
70 |
-
|
71 |
-
|
72 |
-
|
73 |
-
|
74 |
-
|
75 |
-
|
76 |
-
|
77 |
-
|
78 |
-
|
79 |
-
|
80 |
-
|
81 |
-
|
82 |
-
|
83 |
-
|
84 |
-
|
85 |
-
|
86 |
-
|
87 |
-
|
88 |
-
|
89 |
-
|
90 |
-
|
91 |
-
|
92 |
-
|
93 |
-
|
94 |
-
|
95 |
-
|
96 |
-
|
97 |
-
|
98 |
-
|
99 |
-
|
100 |
-
|
101 |
-
|
102 |
-
|
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 |
-
|
134 |
-
|
135 |
-
|
136 |
-
|
137 |
-
|
138 |
-
|
139 |
-
return null;
|
140 |
-
}
|
141 |
-
}
|
1 |
+
<?php
|
2 |
+
/*
|
3 |
+
* Copyright 2012 Google Inc.
|
4 |
+
*
|
5 |
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
6 |
+
* you may not use this file except in compliance with the License.
|
7 |
+
* You may obtain a copy of the License at
|
8 |
+
*
|
9 |
+
* https://www.apache.org/licenses/LICENSE-2.0
|
10 |
+
*
|
11 |
+
* Unless required by applicable law or agreed to in writing, software
|
12 |
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
13 |
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
14 |
+
* See the License for the specific language governing permissions and
|
15 |
+
* limitations under the License.
|
16 |
+
*/
|
17 |
+
|
18 |
+
require_once realpath( dirname( __FILE__ ) . '/../../../autoload.php' );
|
19 |
+
|
20 |
+
/**
|
21 |
+
* @author Chirag Shah <chirags@google.com>
|
22 |
+
*/
|
23 |
+
class GoogleGAL_Http_Batch {
|
24 |
+
|
25 |
+
/** @var string Multipart Boundary. */
|
26 |
+
private $boundary;
|
27 |
+
|
28 |
+
/** @var array service requests to be executed. */
|
29 |
+
private $requests = array();
|
30 |
+
|
31 |
+
/** @var GoogleGAL_Client */
|
32 |
+
private $client;
|
33 |
+
|
34 |
+
private $expected_classes = array();
|
35 |
+
|
36 |
+
private $base_path;
|
37 |
+
|
38 |
+
public function __construct( GoogleGAL_Client $client, $boundary = false ) {
|
39 |
+
$this->client = $client;
|
40 |
+
$this->base_path = $this->client->getBasePath();
|
41 |
+
$this->expected_classes = array();
|
42 |
+
$boundary = ( false == $boundary ) ? mt_rand() : $boundary;
|
43 |
+
$this->boundary = str_replace( '"', '', $boundary );
|
44 |
+
}
|
45 |
+
|
46 |
+
public function add( GoogleGAL_Http_Request $request, $key = false ) {
|
47 |
+
if ( false == $key ) {
|
48 |
+
$key = mt_rand();
|
49 |
+
}
|
50 |
+
|
51 |
+
$this->requests[ $key ] = $request;
|
52 |
+
}
|
53 |
+
|
54 |
+
public function execute() {
|
55 |
+
$body = '';
|
56 |
+
|
57 |
+
/** @var GoogleGAL_Http_Request $req */
|
58 |
+
foreach ( $this->requests as $key => $req ) {
|
59 |
+
$body .= "--{$this->boundary}\n";
|
60 |
+
$body .= $req->toBatchString( $key ) . "\n";
|
61 |
+
$this->expected_classes[ 'response-' . $key ] = $req->getExpectedClass();
|
62 |
+
}
|
63 |
+
|
64 |
+
$body = rtrim( $body );
|
65 |
+
$body .= "\n--{$this->boundary}--";
|
66 |
+
|
67 |
+
$url = $this->base_path . '/batch';
|
68 |
+
$httpRequest = new GoogleGAL_Http_Request( $url, 'POST' );
|
69 |
+
$httpRequest->setRequestHeaders(
|
70 |
+
array( 'Content-Type' => 'multipart/mixed; boundary=' . $this->boundary )
|
71 |
+
);
|
72 |
+
|
73 |
+
$httpRequest->setPostBody( $body );
|
74 |
+
$response = $this->client->getIo()->makeRequest( $httpRequest );
|
75 |
+
|
76 |
+
return $this->parseResponse( $response );
|
77 |
+
}
|
78 |
+
|
79 |
+
public function parseResponse( GoogleGAL_Http_Request $response ) {
|
80 |
+
$contentType = $response->getResponseHeader( 'content-type' );
|
81 |
+
$contentType = explode( ';', $contentType );
|
82 |
+
$boundary = false;
|
83 |
+
foreach ( $contentType as $part ) {
|
84 |
+
$part = ( explode( '=', $part, 2 ) );
|
85 |
+
if ( isset( $part[0] ) && 'boundary' == trim( $part[0] ) ) {
|
86 |
+
$boundary = $part[1];
|
87 |
+
}
|
88 |
+
}
|
89 |
+
|
90 |
+
$body = $response->getResponseBody();
|
91 |
+
if ( $body ) {
|
92 |
+
$body = str_replace( "--$boundary--", "--$boundary", $body );
|
93 |
+
$parts = explode( "--$boundary", $body );
|
94 |
+
$responses = array();
|
95 |
+
|
96 |
+
foreach ( $parts as $part ) {
|
97 |
+
$part = trim( $part );
|
98 |
+
if ( ! empty( $part ) ) {
|
99 |
+
list($metaHeaders, $part) = explode( "\r\n\r\n", $part, 2 );
|
100 |
+
$metaHeaders = $this->client->getIo()->getHttpResponseHeaders( $metaHeaders );
|
101 |
+
|
102 |
+
$status = substr( $part, 0, strpos( $part, "\n" ) );
|
103 |
+
$status = explode( ' ', $status );
|
104 |
+
$status = $status[1];
|
105 |
+
|
106 |
+
list($partHeaders, $partBody) = $this->client->getIo()->ParseHttpResponse( $part, false );
|
107 |
+
$response = new GoogleGAL_Http_Request( '' );
|
108 |
+
$response->setResponseHttpCode( $status );
|
109 |
+
$response->setResponseHeaders( $partHeaders );
|
110 |
+
$response->setResponseBody( $partBody );
|
111 |
+
|
112 |
+
// Need content id.
|
113 |
+
$key = $metaHeaders['content-id'];
|
114 |
+
|
115 |
+
if ( isset( $this->expected_classes[ $key ] ) &&
|
116 |
+
strlen( $this->expected_classes[ $key ] ) > 0 ) {
|
117 |
+
$class = $this->expected_classes[ $key ];
|
118 |
+
$response->setExpectedClass( $class );
|
119 |
+
}
|
120 |
+
|
121 |
+
try {
|
122 |
+
$response = GoogleGAL_Http_REST::decodeHttpResponse( $response, $this->client );
|
123 |
+
$responses[ $key ] = $response;
|
124 |
+
} catch ( GoogleGAL_Service_Exception $e ) {
|
125 |
+
// Store the exception as the response, so successful responses
|
126 |
+
// can be processed.
|
127 |
+
$responses[ $key ] = $e;
|
128 |
+
}
|
129 |
+
}
|
130 |
+
}
|
131 |
+
|
132 |
+
return $responses;
|
133 |
+
}
|
134 |
+
|
135 |
+
return null;
|
136 |
+
}
|
137 |
+
}
|
|
|
|
|
|
|
|
core/Google/Http/CacheParser.php
CHANGED
@@ -1,184 +1,181 @@
|
|
1 |
-
<?php
|
2 |
-
/*
|
3 |
-
* Copyright 2012 Google Inc.
|
4 |
-
*
|
5 |
-
* Licensed under the Apache License, Version 2.0 (the "License");
|
6 |
-
* you may not use this file except in compliance with the License.
|
7 |
-
* You may obtain a copy of the License at
|
8 |
-
*
|
9 |
-
* https://www.apache.org/licenses/LICENSE-2.0
|
10 |
-
*
|
11 |
-
* Unless required by applicable law or agreed to in writing, software
|
12 |
-
* distributed under the License is distributed on an "AS IS" BASIS,
|
13 |
-
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
14 |
-
* See the License for the specific language governing permissions and
|
15 |
-
* limitations under the License.
|
16 |
-
*/
|
17 |
-
|
18 |
-
require_once realpath(dirname(__FILE__) . '/../../../autoload.php');
|
19 |
-
|
20 |
-
/**
|
21 |
-
* Implement the caching directives specified in rfc2616. This
|
22 |
-
* implementation is guided by the guidance offered in rfc2616-sec13.
|
23 |
-
*
|
24 |
-
|
25 |
-
|
26 |
-
{
|
27 |
-
|
28 |
-
|
29 |
-
|
30 |
-
|
31 |
-
|
32 |
-
|
33 |
-
|
34 |
-
|
35 |
-
|
36 |
-
|
37 |
-
|
38 |
-
|
39 |
-
|
40 |
-
|
41 |
-
|
42 |
-
|
43 |
-
|
44 |
-
|
45 |
-
|
46 |
-
|
47 |
-
|
48 |
-
|
49 |
-
|
50 |
-
|
51 |
-
|
52 |
-
|
53 |
-
|
54 |
-
|
55 |
-
|
56 |
-
|
57 |
-
|
58 |
-
|
59 |
-
|
60 |
-
|
61 |
-
|
62 |
-
|
63 |
-
|
64 |
-
|
65 |
-
|
66 |
-
|
67 |
-
|
68 |
-
|
69 |
-
|
70 |
-
|
71 |
-
|
72 |
-
|
73 |
-
|
74 |
-
|
75 |
-
|
76 |
-
|
77 |
-
|
78 |
-
|
79 |
-
|
80 |
-
|
81 |
-
|
82 |
-
|
83 |
-
|
84 |
-
|
85 |
-
|
86 |
-
|
87 |
-
|
88 |
-
|
89 |
-
|
90 |
-
|
91 |
-
|
92 |
-
|
93 |
-
|
94 |
-
|
95 |
-
|
96 |
-
|
97 |
-
|
98 |
-
|
99 |
-
|
100 |
-
|
101 |
-
|
102 |
-
|
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 |
-
|
134 |
-
|
135 |
-
|
136 |
-
|
137 |
-
|
138 |
-
|
139 |
-
|
140 |
-
|
141 |
-
|
142 |
-
|
143 |
-
|
144 |
-
|
145 |
-
|
146 |
-
|
147 |
-
|
148 |
-
|
149 |
-
|
150 |
-
|
151 |
-
|
152 |
-
|
153 |
-
|
154 |
-
|
155 |
-
|
156 |
-
|
157 |
-
|
158 |
-
|
159 |
-
|
160 |
-
|
161 |
-
|
162 |
-
|
163 |
-
|
164 |
-
|
165 |
-
|
166 |
-
|
167 |
-
|
168 |
-
|
169 |
-
|
170 |
-
|
171 |
-
|
172 |
-
|
173 |
-
|
174 |
-
|
175 |
-
|
176 |
-
|
177 |
-
|
178 |
-
|
179 |
-
|
180 |
-
|
181 |
-
|
182 |
-
return self::isExpired($response);
|
183 |
-
}
|
184 |
-
}
|
1 |
+
<?php
|
2 |
+
/*
|
3 |
+
* Copyright 2012 Google Inc.
|
4 |
+
*
|
5 |
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
6 |
+
* you may not use this file except in compliance with the License.
|
7 |
+
* You may obtain a copy of the License at
|
8 |
+
*
|
9 |
+
* https://www.apache.org/licenses/LICENSE-2.0
|
10 |
+
*
|
11 |
+
* Unless required by applicable law or agreed to in writing, software
|
12 |
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
13 |
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
14 |
+
* See the License for the specific language governing permissions and
|
15 |
+
* limitations under the License.
|
16 |
+
*/
|
17 |
+
|
18 |
+
require_once realpath( dirname( __FILE__ ) . '/../../../autoload.php' );
|
19 |
+
|
20 |
+
/**
|
21 |
+
* Implement the caching directives specified in rfc2616. This
|
22 |
+
* implementation is guided by the guidance offered in rfc2616-sec13.
|
23 |
+
*
|
24 |
+
* @author Chirag Shah <chirags@google.com>
|
25 |
+
*/
|
26 |
+
class GoogleGAL_Http_CacheParser {
|
27 |
+
|
28 |
+
public static $CACHEABLE_HTTP_METHODS = array( 'GET', 'HEAD' );
|
29 |
+
public static $CACHEABLE_STATUS_CODES = array( '200', '203', '300', '301' );
|
30 |
+
|
31 |
+
/**
|
32 |
+
* Check if an HTTP request can be cached by a private local cache.
|
33 |
+
*
|
34 |
+
* @static
|
35 |
+
* @param GoogleGAL_Http_Request $resp
|
36 |
+
* @return bool True if the request is cacheable.
|
37 |
+
* False if the request is uncacheable.
|
38 |
+
*/
|
39 |
+
public static function isRequestCacheable( GoogleGAL_Http_Request $resp ) {
|
40 |
+
$method = $resp->getRequestMethod();
|
41 |
+
if ( ! in_array( $method, self::$CACHEABLE_HTTP_METHODS ) ) {
|
42 |
+
return false;
|
43 |
+
}
|
44 |
+
|
45 |
+
// Don't cache authorized requests/responses.
|
46 |
+
// [rfc2616-14.8] When a shared cache receives a request containing an
|
47 |
+
// Authorization field, it MUST NOT return the corresponding response
|
48 |
+
// as a reply to any other request...
|
49 |
+
if ( $resp->getRequestHeader( 'authorization' ) ) {
|
50 |
+
return false;
|
51 |
+
}
|
52 |
+
|
53 |
+
return true;
|
54 |
+
}
|
55 |
+
|
56 |
+
/**
|
57 |
+
* Check if an HTTP response can be cached by a private local cache.
|
58 |
+
*
|
59 |
+
* @static
|
60 |
+
* @param GoogleGAL_Http_Request $resp
|
61 |
+
* @return bool True if the response is cacheable.
|
62 |
+
* False if the response is un-cacheable.
|
63 |
+
*/
|
64 |
+
public static function isResponseCacheable( GoogleGAL_Http_Request $resp ) {
|
65 |
+
// First, check if the HTTP request was cacheable before inspecting the
|
66 |
+
// HTTP response.
|
67 |
+
if ( false == self::isRequestCacheable( $resp ) ) {
|
68 |
+
return false;
|
69 |
+
}
|
70 |
+
|
71 |
+
$code = $resp->getResponseHttpCode();
|
72 |
+
if ( ! in_array( $code, self::$CACHEABLE_STATUS_CODES ) ) {
|
73 |
+
return false;
|
74 |
+
}
|
75 |
+
|
76 |
+
// The resource is uncacheable if the resource is already expired and
|
77 |
+
// the resource doesn't have an ETag for revalidation.
|
78 |
+
$etag = $resp->getResponseHeader( 'etag' );
|
79 |
+
if ( self::isExpired( $resp ) && $etag == false ) {
|
80 |
+
return false;
|
81 |
+
}
|
82 |
+
|
83 |
+
// [rfc2616-14.9.2] If [no-store is] sent in a response, a cache MUST NOT
|
84 |
+
// store any part of either this response or the request that elicited it.
|
85 |
+
$cacheControl = $resp->getParsedCacheControl();
|
86 |
+
if ( isset( $cacheControl['no-store'] ) ) {
|
87 |
+
return false;
|
88 |
+
}
|
89 |
+
|
90 |
+
// Pragma: no-cache is an http request directive, but is occasionally
|
91 |
+
// used as a response header incorrectly.
|
92 |
+
$pragma = $resp->getResponseHeader( 'pragma' );
|
93 |
+
if ( $pragma == 'no-cache' || strpos( $pragma, 'no-cache' ) !== false ) {
|
94 |
+
return false;
|
95 |
+
}
|
96 |
+
|
97 |
+
// [rfc2616-14.44] Vary: * is extremely difficult to cache. "It implies that
|
98 |
+
// a cache cannot determine from the request headers of a subsequent request
|
99 |
+
// whether this response is the appropriate representation."
|
100 |
+
// Given this, we deem responses with the Vary header as uncacheable.
|
101 |
+
$vary = $resp->getResponseHeader( 'vary' );
|
102 |
+
if ( $vary ) {
|
103 |
+
return false;
|
104 |
+
}
|
105 |
+
|
106 |
+
return true;
|
107 |
+
}
|
108 |
+
|
109 |
+
/**
|
110 |
+
* @static
|
111 |
+
* @param GoogleGAL_Http_Request $resp
|
112 |
+
* @return bool True if the HTTP response is considered to be expired.
|
113 |
+
* False if it is considered to be fresh.
|
114 |
+
*/
|
115 |
+
public static function isExpired( GoogleGAL_Http_Request $resp ) {
|
116 |
+
// HTTP/1.1 clients and caches MUST treat other invalid date formats,
|
117 |
+
// especially including the value “0”, as in the past.
|
118 |
+
$parsedExpires = false;
|
119 |
+
$responseHeaders = $resp->getResponseHeaders();
|
120 |
+
|
121 |
+
if ( isset( $responseHeaders['expires'] ) ) {
|
122 |
+
$rawExpires = $responseHeaders['expires'];
|
123 |
+
// Check for a malformed expires header first.
|
124 |
+
if ( empty( $rawExpires ) || ( is_numeric( $rawExpires ) && $rawExpires <= 0 ) ) {
|
125 |
+
return true;
|
126 |
+
}
|
127 |
+
|
128 |
+
// See if we can parse the expires header.
|
129 |
+
$parsedExpires = strtotime( $rawExpires );
|
130 |
+
if ( false == $parsedExpires || $parsedExpires <= 0 ) {
|
131 |
+
return true;
|
132 |
+
}
|
133 |
+
}
|
134 |
+
|
135 |
+
// Calculate the freshness of an http response.
|
136 |
+
$freshnessLifetime = false;
|
137 |
+
$cacheControl = $resp->getParsedCacheControl();
|
138 |
+
if ( isset( $cacheControl['max-age'] ) ) {
|
139 |
+
$freshnessLifetime = $cacheControl['max-age'];
|
140 |
+
}
|
141 |
+
|
142 |
+
$rawDate = $resp->getResponseHeader( 'date' );
|
143 |
+
$parsedDate = strtotime( $rawDate );
|
144 |
+
|
145 |
+
if ( empty( $rawDate ) || false == $parsedDate ) {
|
146 |
+
// We can't default this to now, as that means future cache reads
|
147 |
+
// will always pass with the logic below, so we will require a
|
148 |
+
// date be injected if not supplied.
|
149 |
+
throw new GoogleGAL_Exception( 'All cacheable requests must have creation dates.' );
|
150 |
+
}
|
151 |
+
|
152 |
+
if ( false == $freshnessLifetime && isset( $responseHeaders['expires'] ) ) {
|
153 |
+
$freshnessLifetime = $parsedExpires - $parsedDate;
|
154 |
+
}
|
155 |
+
|
156 |
+
if ( false == $freshnessLifetime ) {
|
157 |
+
return true;
|
158 |
+
}
|
159 |
+
|
160 |
+
// Calculate the age of an http response.
|
161 |
+
$age = max( 0, time() - $parsedDate );
|
162 |
+
if ( isset( $responseHeaders['age'] ) ) {
|
163 |
+
$age = max( $age, strtotime( $responseHeaders['age'] ) );
|
164 |
+
}
|
165 |
+
|
166 |
+
return $freshnessLifetime <= $age;
|
167 |
+
}
|
168 |
+
|
169 |
+
/**
|
170 |
+
* Determine if a cache entry should be revalidated with by the origin.
|
171 |
+
*
|
172 |
+
* @param GoogleGAL_Http_Request $response
|
173 |
+
* @return bool True if the entry is expired, else return false.
|
174 |
+
*/
|
175 |
+
public static function mustRevalidate( GoogleGAL_Http_Request $response ) {
|
176 |
+
// [13.3] When a cache has a stale entry that it would like to use as a
|
177 |
+
// response to a client's request, it first has to check with the origin
|
178 |
+
// server to see if its cached entry is still usable.
|
179 |
+
return self::isExpired( $response );
|
180 |
+
}
|
181 |
+
}
|
|
|
|
|
|
core/Google/Http/MediaFileUpload.php
CHANGED
@@ -1,300 +1,297 @@
|
|
1 |
-
<?php
|
2 |
-
/**
|
3 |
-
* Copyright 2012 Google Inc.
|
4 |
-
*
|
5 |
-
* Licensed under the Apache License, Version 2.0 (the "License");
|
6 |
-
* you may not use this file except in compliance with the License.
|
7 |
-
* You may obtain a copy of the License at
|
8 |
-
*
|
9 |
-
* https://www.apache.org/licenses/LICENSE-2.0
|
10 |
-
*
|
11 |
-
* Unless required by applicable law or agreed to in writing, software
|
12 |
-
* distributed under the License is distributed on an "AS IS" BASIS,
|
13 |
-
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
14 |
-
* See the License for the specific language governing permissions and
|
15 |
-
* limitations under the License.
|
16 |
-
*/
|
17 |
-
|
18 |
-
require_once realpath(dirname(__FILE__) . '/../../../autoload.php');
|
19 |
-
|
20 |
-
/**
|
21 |
-
* @author Chirag Shah <chirags@google.com>
|
22 |
-
|
23 |
-
|
24 |
-
|
25 |
-
|
26 |
-
|
27 |
-
|
28 |
-
|
29 |
-
|
30 |
-
|
31 |
-
|
32 |
-
|
33 |
-
|
34 |
-
|
35 |
-
|
36 |
-
|
37 |
-
|
38 |
-
|
39 |
-
|
40 |
-
|
41 |
-
|
42 |
-
|
43 |
-
|
44 |
-
|
45 |
-
|
46 |
-
|
47 |
-
|
48 |
-
|
49 |
-
|
50 |
-
|
51 |
-
|
52 |
-
|
53 |
-
|
54 |
-
|
55 |
-
|
56 |
-
|
57 |
-
|
58 |
-
|
59 |
-
|
60 |
-
|
61 |
-
|
62 |
-
|
63 |
-
|
64 |
-
|
65 |
-
|
66 |
-
|
67 |
-
|
68 |
-
|
69 |
-
|
70 |
-
|
71 |
-
|
72 |
-
|
73 |
-
|
74 |
-
|
75 |
-
|
76 |
-
|
77 |
-
|
78 |
-
|
79 |
-
|
80 |
-
|
81 |
-
|
82 |
-
|
83 |
-
|
84 |
-
|
85 |
-
|
86 |
-
|
87 |
-
|
88 |
-
|
89 |
-
|
90 |
-
|
91 |
-
|
92 |
-
|
93 |
-
|
94 |
-
|
95 |
-
|
96 |
-
|
97 |
-
|
98 |
-
|
99 |
-
|
100 |
-
|
101 |
-
|
102 |
-
|
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 |
-
|
134 |
-
|
135 |
-
|
136 |
-
|
137 |
-
|
138 |
-
|
139 |
-
|
140 |
-
|
141 |
-
|
142 |
-
|
143 |
-
|
144 |
-
|
145 |
-
|
146 |
-
|
147 |
-
|
148 |
-
|
149 |
-
|
150 |
-
|
151 |
-
|
152 |
-
|
153 |
-
|
154 |
-
|
155 |
-
|
156 |
-
|
157 |
-
|
158 |
-
|
159 |
-
|
160 |
-
|
161 |
-
|
162 |
-
|
163 |
-
|
164 |
-
|
165 |
-
|
166 |
-
|
167 |
-
|
168 |
-
|
169 |
-
|
170 |
-
|
171 |
-
|
172 |
-
|
173 |
-
|
174 |
-
|
175 |
-
|
176 |
-
|
177 |
-
|
178 |
-
|
179 |
-
|
180 |
-
|
181 |
-
|
182 |
-
|
183 |
-
|
184 |
-
|
185 |
-
|
186 |
-
|
187 |
-
|
188 |
-
|
189 |
-
|
190 |
-
|
191 |
-
|
192 |
-
|
193 |
-
|
194 |
-
|
195 |
-
|
196 |
-
|
197 |
-
|
198 |
-
|
199 |
-
|
200 |
-
|
201 |
-
|
202 |
-
|
203 |
-
|
204 |
-
|
205 |
-
|
206 |
-
|
207 |
-
|
208 |
-
|
209 |
-
|
210 |
-
|
211 |
-
|
212 |
-
|
213 |
-
|
214 |
-
|
215 |
-
|
216 |
-
|
217 |
-
|
218 |
-
|
219 |
-
|
220 |
-
|
221 |
-
|
222 |
-
|
223 |
-
|
224 |
-
|
225 |
-
|
226 |
-
|
227 |
-
|
228 |
-
|
229 |
-
|
230 |
-
|
231 |
-
|
232 |
-
|
233 |
-
|
234 |
-
|
235 |
-
|
236 |
-
|
237 |
-
|
238 |
-
|
239 |
-
|
240 |
-
|
241 |
-
|
242 |
-
|
243 |
-
|
244 |
-
|
245 |
-
|
246 |
-
|
247 |
-
|
248 |
-
|
249 |
-
|
250 |
-
|
251 |
-
|
252 |
-
|
253 |
-
|
254 |
-
|
255 |
-
|
256 |
-
|
257 |
-
|
258 |
-
|
259 |
-
|
260 |
-
|
261 |
-
|
262 |
-
|
263 |
-
|
264 |
-
|
265 |
-
|
266 |
-
|
267 |
-
|
268 |
-
|
269 |
-
|
270 |
-
|
271 |
-
|
272 |
-
|
273 |
-
|
274 |
-
|
275 |
-
|
276 |
-
|
277 |
-
|
278 |
-
|
279 |
-
|
280 |
-
|
281 |
-
|
282 |
-
|
283 |
-
|
284 |
-
|
285 |
-
|
286 |
-
|
287 |
-
|
288 |
-
|
289 |
-
|
290 |
-
|
291 |
-
|
292 |
-
|
293 |
-
|
294 |
-
|
295 |
-
|
296 |
-
|
297 |
-
|
298 |
-
throw new GoogleGAL_Exception($error);
|
299 |
-
}
|
300 |
-
}
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Copyright 2012 Google Inc.
|
4 |
+
*
|
5 |
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
6 |
+
* you may not use this file except in compliance with the License.
|
7 |
+
* You may obtain a copy of the License at
|
8 |
+
*
|
9 |
+
* https://www.apache.org/licenses/LICENSE-2.0
|
10 |
+
*
|
11 |
+
* Unless required by applicable law or agreed to in writing, software
|
12 |
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
13 |
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
14 |
+
* See the License for the specific language governing permissions and
|
15 |
+
* limitations under the License.
|
16 |
+
*/
|
17 |
+
|
18 |
+
require_once realpath( dirname( __FILE__ ) . '/../../../autoload.php' );
|
19 |
+
|
20 |
+
/**
|
21 |
+
* @author Chirag Shah <chirags@google.com>
|
22 |
+
*/
|
23 |
+
class GoogleGAL_Http_MediaFileUpload {
|
24 |
+
|
25 |
+
const UPLOAD_MEDIA_TYPE = 'media';
|
26 |
+
const UPLOAD_MULTIPART_TYPE = 'multipart';
|
27 |
+
const UPLOAD_RESUMABLE_TYPE = 'resumable';
|
28 |
+
|
29 |
+
/** @var string $mimeType */
|
30 |
+
private $mimeType;
|
31 |
+
|
32 |
+
/** @var string $data */
|
33 |
+
private $data;
|
34 |
+
|
35 |
+
/** @var bool $resumable */
|
36 |
+
private $resumable;
|
37 |
+
|
38 |
+
/** @var int $chunkSize */
|
39 |
+
private $chunkSize;
|
40 |
+
|
41 |
+
/** @var int $size */
|
42 |
+
private $size;
|
43 |
+
|
44 |
+
/** @var string $resumeUri */
|
45 |
+
private $resumeUri;
|
46 |
+
|
47 |
+
/** @var int $progress */
|
48 |
+
private $progress;
|
49 |
+
|
50 |
+
/** @var GoogleGAL_Client */
|
51 |
+
private $client;
|
52 |
+
|
53 |
+
/** @var GoogleGAL_Http_Request */
|
54 |
+
private $request;
|
55 |
+
|
56 |
+
/** @var string */
|
57 |
+
private $boundary;
|
58 |
+
|
59 |
+
/**
|
60 |
+
* Result code from last HTTP call
|
61 |
+
*
|
62 |
+
* @var int
|
63 |
+
*/
|
64 |
+
private $httpResultCode;
|
65 |
+
|
66 |
+
/**
|
67 |
+
* @param $mimeType string
|
68 |
+
* @param $data string The bytes you want to upload.
|
69 |
+
* @param $resumable bool
|
70 |
+
* @param bool $chunkSize File will be uploaded in chunks of this many bytes.
|
71 |
+
* only used if resumable=True
|
72 |
+
*/
|
73 |
+
public function __construct(
|
74 |
+
GoogleGAL_Client $client,
|
75 |
+
GoogleGAL_Http_Request $request,
|
76 |
+
$mimeType,
|
77 |
+
$data,
|
78 |
+
$resumable = false,
|
79 |
+
$chunkSize = false,
|
80 |
+
$boundary = false
|
81 |
+
) {
|
82 |
+
$this->client = $client;
|
83 |
+
$this->request = $request;
|
84 |
+
$this->mimeType = $mimeType;
|
85 |
+
$this->data = $data;
|
86 |
+
$this->size = strlen( $this->data );
|
87 |
+
$this->resumable = $resumable;
|
88 |
+
if ( ! $chunkSize ) {
|
89 |
+
$chunkSize = 256 * 1024;
|
90 |
+
}
|
91 |
+
$this->chunkSize = $chunkSize;
|
92 |
+
$this->progress = 0;
|
93 |
+
$this->boundary = $boundary;
|
94 |
+
|
95 |
+
// Process Media Request
|
96 |
+
$this->process();
|
97 |
+
}
|
98 |
+
|
99 |
+
/**
|
100 |
+
* Set the size of the file that is being uploaded.
|
101 |
+
*
|
102 |
+
* @param $size - int file size in bytes
|
103 |
+
*/
|
104 |
+
public function setFileSize( $size ) {
|
105 |
+
$this->size = $size;
|
106 |
+
}
|
107 |
+
|
108 |
+
/**
|
109 |
+
* Return the progress on the upload
|
110 |
+
*
|
111 |
+
* @return int progress in bytes uploaded.
|
112 |
+
*/
|
113 |
+
public function getProgress() {
|
114 |
+
return $this->progress;
|
115 |
+
}
|
116 |
+
|
117 |
+
/**
|
118 |
+
* Return the HTTP result code from the last call made.
|
119 |
+
*
|
120 |
+
* @return int code
|
121 |
+
*/
|
122 |
+
public function getHttpResultCode() {
|
123 |
+
return $this->httpResultCode;
|
124 |
+
}
|
125 |
+
|
126 |
+
/**
|
127 |
+
* Send the next part of the file to upload.
|
128 |
+
*
|
129 |
+
* @param [ $chunk] the next set of bytes to send. If false will used $data passed
|
130 |
+
* at construct time.
|
131 |
+
*/
|
132 |
+
public function nextChunk( $chunk = false ) {
|
133 |
+
if ( false == $this->resumeUri ) {
|
134 |
+
$this->resumeUri = $this->getResumeUri();
|
135 |
+
}
|
136 |
+
|
137 |
+
if ( false == $chunk ) {
|
138 |
+
$chunk = substr( $this->data, $this->progress, $this->chunkSize );
|
139 |
+
}
|
140 |
+
|
141 |
+
$lastBytePos = $this->progress + strlen( $chunk ) - 1;
|
142 |
+
$headers = array(
|
143 |
+
'content-range' => "bytes $this->progress-$lastBytePos/$this->size",
|
144 |
+
'content-type' => $this->request->getRequestHeader( 'content-type' ),
|
145 |
+
'content-length' => $this->chunkSize,
|
146 |
+
'expect' => '',
|
147 |
+
);
|
148 |
+
|
149 |
+
$httpRequest = new GoogleGAL_Http_Request(
|
150 |
+
$this->resumeUri,
|
151 |
+
'PUT',
|
152 |
+
$headers,
|
153 |
+
$chunk
|
154 |
+
);
|
155 |
+
|
156 |
+
if ( $this->client->getClassConfig( 'GoogleGAL_Http_Request', 'enable_gzip_for_uploads' ) ) {
|
157 |
+
$httpRequest->enableGzip();
|
158 |
+
} else {
|
159 |
+
$httpRequest->disableGzip();
|
160 |
+
}
|
161 |
+
|
162 |
+
$response = $this->client->getIo()->makeRequest( $httpRequest );
|
163 |
+
$response->setExpectedClass( $this->request->getExpectedClass() );
|
164 |
+
$code = $response->getResponseHttpCode();
|
165 |
+
$this->httpResultCode = $code;
|
166 |
+
|
167 |
+
if ( 308 == $code ) {
|
168 |
+
// Track the amount uploaded.
|
169 |
+
$range = explode( '-', $response->getResponseHeader( 'range' ) );
|
170 |
+
$this->progress = $range[1] + 1;
|
171 |
+
|
172 |
+
// Allow for changing upload URLs.
|
173 |
+
$location = $response->getResponseHeader( 'location' );
|
174 |
+
if ( $location ) {
|
175 |
+
$this->resumeUri = $location;
|
176 |
+
}
|
177 |
+
|
178 |
+
// No problems, but upload not complete.
|
179 |
+
return false;
|
180 |
+
} else {
|
181 |
+
return GoogleGAL_Http_REST::decodeHttpResponse( $response, $this->client );
|
182 |
+
}
|
183 |
+
}
|
184 |
+
|
185 |
+
/**
|
186 |
+
* @param $meta
|
187 |
+
* @param $params
|
188 |
+
* @return array|bool
|
189 |
+
* @visible for testing
|
190 |
+
*/
|
191 |
+
private function process() {
|
192 |
+
$postBody = false;
|
193 |
+
$contentType = false;
|
194 |
+
|
195 |
+
$meta = $this->request->getPostBody();
|
196 |
+
$meta = is_string( $meta ) ? json_decode( $meta, true ) : $meta;
|
197 |
+
|
198 |
+
$uploadType = $this->getUploadType( $meta );
|
199 |
+
$this->request->setQueryParam( 'uploadType', $uploadType );
|
200 |
+
$this->transformToUploadUrl();
|
201 |
+
$mimeType = $this->mimeType ?
|
202 |
+
$this->mimeType :
|
203 |
+
$this->request->getRequestHeader( 'content-type' );
|
204 |
+
|
205 |
+
if ( self::UPLOAD_RESUMABLE_TYPE == $uploadType ) {
|
206 |
+
$contentType = $mimeType;
|
207 |
+
$postBody = is_string( $meta ) ? $meta : json_encode( $meta );
|
208 |
+
} elseif ( self::UPLOAD_MEDIA_TYPE == $uploadType ) {
|
209 |
+
$contentType = $mimeType;
|
210 |
+
$postBody = $this->data;
|
211 |
+
} elseif ( self::UPLOAD_MULTIPART_TYPE == $uploadType ) {
|
212 |
+
// This is a multipart/related upload.
|
213 |
+
$boundary = $this->boundary ? $this->boundary : mt_rand();
|
214 |
+
$boundary = str_replace( '"', '', $boundary );
|
215 |
+
$contentType = 'multipart/related; boundary=' . $boundary;
|
216 |
+
$related = "--$boundary\r\n";
|
217 |
+
$related .= "Content-Type: application/json; charset=UTF-8\r\n";
|
218 |
+
$related .= "\r\n" . json_encode( $meta ) . "\r\n";
|
219 |
+
$related .= "--$boundary\r\n";
|
220 |
+
$related .= "Content-Type: $mimeType\r\n";
|
221 |
+
$related .= "Content-Transfer-Encoding: base64\r\n";
|
222 |
+
$related .= "\r\n" . base64_encode( $this->data ) . "\r\n";
|
223 |
+
$related .= "--$boundary--";
|
224 |
+
$postBody = $related;
|
225 |
+
}
|
226 |
+
|
227 |
+
$this->request->setPostBody( $postBody );
|
228 |
+
|
229 |
+
if ( isset( $contentType ) && $contentType ) {
|
230 |
+
$contentTypeHeader['content-type'] = $contentType;
|
231 |
+
$this->request->setRequestHeaders( $contentTypeHeader );
|
232 |
+
}
|
233 |
+
}
|
234 |
+
|
235 |
+
private function transformToUploadUrl() {
|
236 |
+
$base = $this->request->getBaseComponent();
|
237 |
+
$this->request->setBaseComponent( $base . '/upload' );
|
238 |
+
}
|
239 |
+
|
240 |
+
/**
|
241 |
+
* Valid upload types:
|
242 |
+
* - resumable (UPLOAD_RESUMABLE_TYPE)
|
243 |
+
* - media (UPLOAD_MEDIA_TYPE)
|
244 |
+
* - multipart (UPLOAD_MULTIPART_TYPE)
|
245 |
+
*
|
246 |
+
* @param $meta
|
247 |
+
* @return string
|
248 |
+
* @visible for testing
|
249 |
+
*/
|
250 |
+
public function getUploadType( $meta ) {
|
251 |
+
if ( $this->resumable ) {
|
252 |
+
return self::UPLOAD_RESUMABLE_TYPE;
|
253 |
+
}
|
254 |
+
|
255 |
+
if ( false == $meta && $this->data ) {
|
256 |
+
return self::UPLOAD_MEDIA_TYPE;
|
257 |
+
}
|
258 |
+
|
259 |
+
return self::UPLOAD_MULTIPART_TYPE;
|
260 |
+
}
|
261 |
+
|
262 |
+
private function getResumeUri() {
|
263 |
+
$result = null;
|
264 |
+
$body = $this->request->getPostBody();
|
265 |
+
if ( $body ) {
|
266 |
+
$headers = array(
|
267 |
+
'content-type' => 'application/json; charset=UTF-8',
|
268 |
+
'content-length' => GoogleGAL_Utils::getStrLen( $body ),
|
269 |
+
'x-upload-content-type' => $this->mimeType,
|
270 |
+
'x-upload-content-length' => $this->size,
|
271 |
+
'expect' => '',
|
272 |
+
);
|
273 |
+
$this->request->setRequestHeaders( $headers );
|
274 |
+
}
|
275 |
+
|
276 |
+
$response = $this->client->getIo()->makeRequest( $this->request );
|
277 |
+
$location = $response->getResponseHeader( 'location' );
|
278 |
+
$code = $response->getResponseHttpCode();
|
279 |
+
|
280 |
+
if ( 200 == $code && true == $location ) {
|
281 |
+
return $location;
|
282 |
+
}
|
283 |
+
$message = $code;
|
284 |
+
$body = @json_decode( $response->getResponseBody() );
|
285 |
+
if ( ! empty( $body->error->errors ) ) {
|
286 |
+
$message .= ': ';
|
287 |
+
foreach ( $body->error->errors as $error ) {
|
288 |
+
$message .= "{$error->domain}, {$error->message};";
|
289 |
+
}
|
290 |
+
$message = rtrim( $message, ';' );
|
291 |
+
}
|
292 |
+
|
293 |
+
$error = "Failed to start the resumable upload (HTTP {$message})";
|
294 |
+
$this->client->getLogger()->error( $error );
|
295 |
+
throw new GoogleGAL_Exception( $error );
|
296 |
+
}
|
297 |
+
}
|
|
|
|
|
|
core/Google/Http/REST.php
CHANGED
@@ -1,147 +1,149 @@
|
|
1 |
-
<?php
|
2 |
-
/*
|
3 |
-
* Copyright 2010 Google Inc.
|
4 |
-
*
|
5 |
-
* Licensed under the Apache License, Version 2.0 (the "License");
|
6 |
-
* you may not use this file except in compliance with the License.
|
7 |
-
* You may obtain a copy of the License at
|
8 |
-
*
|
9 |
-
* https://www.apache.org/licenses/LICENSE-2.0
|
10 |
-
*
|
11 |
-
* Unless required by applicable law or agreed to in writing, software
|
12 |
-
* distributed under the License is distributed on an "AS IS" BASIS,
|
13 |
-
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
14 |
-
* See the License for the specific language governing permissions and
|
15 |
-
* limitations under the License.
|
16 |
-
*/
|
17 |
-
|
18 |
-
require_once realpath(dirname(__FILE__) . '/../../../autoload.php');
|
19 |
-
|
20 |
-
/**
|
21 |
-
* This class implements the RESTful transport of apiServiceRequest()'s
|
22 |
-
*
|
23 |
-
* @author Chris Chabot <chabotc@google.com>
|
24 |
-
* @author Chirag Shah <chirags@google.com>
|
25 |
-
*/
|
26 |
-
class GoogleGAL_Http_REST
|
27 |
-
|
28 |
-
|
29 |
-
|
30 |
-
|
31 |
-
|
32 |
-
|
33 |
-
|
34 |
-
|
35 |
-
|
36 |
-
|
37 |
-
|
38 |
-
|
39 |
-
|
40 |
-
|
41 |
-
|
42 |
-
|
43 |
-
|
44 |
-
|
45 |
-
|
46 |
-
|
47 |
-
|
48 |
-
|
49 |
-
|
50 |
-
|
51 |
-
|
52 |
-
|
53 |
-
|
54 |
-
|
55 |
-
|
56 |
-
|
57 |
-
|
58 |
-
|
59 |
-
|
60 |
-
|
61 |
-
|
62 |
-
|
63 |
-
|
64 |
-
|
65 |
-
|
66 |
-
|
67 |
-
|
68 |
-
|
69 |
-
|
70 |
-
|
71 |
-
|
72 |
-
|
73 |
-
|
74 |
-
|
75 |
-
|
76 |
-
|
77 |
-
|
78 |
-
|
79 |
-
|
80 |
-
|
81 |
-
|
82 |
-
|
83 |
-
|
84 |
-
|
85 |
-
|
86 |
-
|
87 |
-
|
88 |
-
|
89 |
-
|
90 |
-
|
91 |
-
|
92 |
-
|
93 |
-
|
94 |
-
|
95 |
-
|
96 |
-
|
97 |
-
|
98 |
-
|
99 |
-
|
100 |
-
|
101 |
-
|
102 |
-
|
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 |
-
|
134 |
-
|
135 |
-
|
136 |
-
|
137 |
-
|
138 |
-
|
139 |
-
|
140 |
-
|
141 |
-
|
142 |
-
|
143 |
-
|
144 |
-
|
145 |
-
|
146 |
-
|
147 |
-
|
|
|
|
1 |
+
<?php
|
2 |
+
/*
|
3 |
+
* Copyright 2010 Google Inc.
|
4 |
+
*
|
5 |
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
6 |
+
* you may not use this file except in compliance with the License.
|
7 |
+
* You may obtain a copy of the License at
|
8 |
+
*
|
9 |
+
* https://www.apache.org/licenses/LICENSE-2.0
|
10 |
+
*
|
11 |
+
* Unless required by applicable law or agreed to in writing, software
|
12 |
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
13 |
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
14 |
+
* See the License for the specific language governing permissions and
|
15 |
+
* limitations under the License.
|
16 |
+
*/
|
17 |
+
|
18 |
+
require_once realpath( dirname( __FILE__ ) . '/../../../autoload.php' );
|
19 |
+
|
20 |
+
/**
|
21 |
+
* This class implements the RESTful transport of apiServiceRequest()'s
|
22 |
+
*
|
23 |
+
* @author Chris Chabot <chabotc@google.com>
|
24 |
+
* @author Chirag Shah <chirags@google.com>
|
25 |
+
*/
|
26 |
+
class GoogleGAL_Http_REST {
|
27 |
+
|
28 |
+
/**
|
29 |
+
* Executes a GoogleGAL_Http_Request
|
30 |
+
*
|
31 |
+
* @param GoogleGAL_Client $client
|
32 |
+
* @param GoogleGAL_Http_Request $req
|
33 |
+
* @return array decoded result
|
34 |
+
* @throws GoogleGAL_Service_Exception on server side error (ie: not authenticated,
|
35 |
+
* invalid or malformed post body, invalid url)
|
36 |
+
*/
|
37 |
+
public static function execute( GoogleGAL_Client $client, GoogleGAL_Http_Request $req ) {
|
38 |
+
$httpRequest = $client->getIo()->makeRequest( $req );
|
39 |
+
$httpRequest->setExpectedClass( $req->getExpectedClass() );
|
40 |
+
return self::decodeHttpResponse( $httpRequest, $client );
|
41 |
+
}
|
42 |
+
|
43 |
+
/**
|
44 |
+
* Decode an HTTP Response.
|
45 |
+
*
|
46 |
+
* @static
|
47 |
+
* @throws GoogleGAL_Service_Exception
|
48 |
+
* @param GoogleGAL_Http_Request $response The http response to be decoded.
|
49 |
+
* @param GoogleGAL_Client $client
|
50 |
+
* @return mixed|null
|
51 |
+
*/
|
52 |
+
public static function decodeHttpResponse( $response, GoogleGAL_Client $client = null ) {
|
53 |
+
$code = $response->getResponseHttpCode();
|
54 |
+
$body = $response->getResponseBody();
|
55 |
+
$decoded = null;
|
56 |
+
|
57 |
+
if ( ( intVal( $code ) ) >= 300 ) {
|
58 |
+
$decoded = json_decode( $body, true );
|
59 |
+
$err = 'Error calling ' . $response->getRequestMethod() . ' ' . $response->getUrl();
|
60 |
+
if ( isset( $decoded['error'] ) &&
|
61 |
+
isset( $decoded['error']['message'] ) &&
|
62 |
+
isset( $decoded['error']['code'] ) ) {
|
63 |
+
// if we're getting a json encoded error definition, use that instead of the raw response
|
64 |
+
// body for improved readability
|
65 |
+
$err .= ": ({$decoded['error']['code']}) {$decoded['error']['message']}";
|
66 |
+
} else {
|
67 |
+
$err .= ": ($code) $body";
|
68 |
+
}
|
69 |
+
|
70 |
+
$errors = null;
|
71 |
+
// Specific check for APIs which don't return error details, such as Blogger.
|
72 |
+
if ( isset( $decoded['error'] ) && isset( $decoded['error']['errors'] ) ) {
|
73 |
+
$errors = $decoded['error']['errors'];
|
74 |
+
}
|
75 |
+
|
76 |
+
if ( $client ) {
|
77 |
+
$client->getLogger()->error(
|
78 |
+
$err,
|
79 |
+
array(
|
80 |
+
'code' => $code,
|
81 |
+
'errors' => $errors,
|
82 |
+
)
|
83 |
+
);
|
84 |
+
}
|
85 |
+
throw new GoogleGAL_Service_Exception( $err, $code, null, $errors );
|
86 |
+
}
|
87 |
+
|
88 |
+
// Only attempt to decode the response, if the response code wasn't (204) 'no content'
|
89 |
+
if ( $code != '204' ) {
|
90 |
+
$decoded = json_decode( $body, true );
|
91 |
+
if ( $decoded === null || $decoded === '' ) {
|
92 |
+
$error = "Invalid json in service response: $body";
|
93 |
+
if ( $client ) {
|
94 |
+
$client->getLogger()->error( $error );
|
95 |
+
}
|
96 |
+
throw new GoogleGAL_Service_Exception( $error );
|
97 |
+
}
|
98 |
+
|
99 |
+
if ( $response->getExpectedClass() ) {
|
100 |
+
$class = $response->getExpectedClass();
|
101 |
+
$decoded = new $class( $decoded );
|
102 |
+
}
|
103 |
+
}
|
104 |
+
return $decoded;
|
105 |
+
}
|
106 |
+
|
107 |
+
/**
|
108 |
+
* Parse/expand request parameters and create a fully qualified
|
109 |
+
* request uri.
|
110 |
+
*
|
111 |
+
* @static
|
112 |
+
* @param string $servicePath
|
113 |
+
* @param string $restPath
|
114 |
+
* @param array $params
|
115 |
+
* @return string $requestUrl
|
116 |
+
*/
|
117 |
+
public static function createRequestUri( $servicePath, $restPath, $params ) {
|
118 |
+
$requestUrl = $servicePath . $restPath;
|
119 |
+
$uriTemplateVars = array();
|
120 |
+
$queryVars = array();
|
121 |
+
foreach ( $params as $paramName => $paramSpec ) {
|
122 |
+
if ( $paramSpec['type'] == 'boolean' ) {
|
123 |
+
$paramSpec['value'] = ( $paramSpec['value'] ) ? 'true' : 'false';
|
124 |
+
}
|
125 |
+
if ( $paramSpec['location'] == 'path' ) {
|
126 |
+
$uriTemplateVars[ $paramName ] = $paramSpec['value'];
|
127 |
+
} elseif ( $paramSpec['location'] == 'query' ) {
|
128 |
+
if ( isset( $paramSpec['repeated'] ) && is_array( $paramSpec['value'] ) ) {
|
129 |
+
foreach ( $paramSpec['value'] as $value ) {
|
130 |
+
$queryVars[] = $paramName . '=' . rawurlencode( $value );
|
131 |
+
}
|
132 |
+
} else {
|
133 |
+
$queryVars[] = $paramName . '=' . rawurlencode( $paramSpec['value'] );
|
134 |
+
}
|
135 |
+
}
|
136 |
+
}
|
137 |
+
|
138 |
+
if ( count( $uriTemplateVars ) ) {
|
139 |
+
$uriTemplateParser = new GoogleGAL_Utils_URITemplate();
|
140 |
+
$requestUrl = $uriTemplateParser->parse( $requestUrl, $uriTemplateVars );
|
141 |
+
}
|
142 |
+
|
143 |
+
if ( count( $queryVars ) ) {
|
144 |
+
$requestUrl .= '?' . implode( $queryVars, '&' );
|
145 |
+
}
|
146 |
+
|
147 |
+
return $requestUrl;
|
148 |
+
}
|
149 |
+
}
|
core/Google/Http/Request.php
CHANGED
@@ -1,476 +1,451 @@
|
|
1 |
-
<?php
|
2 |
-
/*
|
3 |
-
* Copyright 2010 Google Inc.
|
4 |
-
*
|
5 |
-
* Licensed under the Apache License, Version 2.0 (the "License");
|
6 |
-
* you may not use this file except in compliance with the License.
|
7 |
-
* You may obtain a copy of the License at
|
8 |
-
*
|
9 |
-
* https://www.apache.org/licenses/LICENSE-2.0
|
10 |
-
*
|
11 |
-
* Unless required by applicable law or agreed to in writing, software
|
12 |
-
* distributed under the License is distributed on an "AS IS" BASIS,
|
13 |
-
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
14 |
-
* See the License for the specific language governing permissions and
|
15 |
-
* limitations under the License.
|
16 |
-
*/
|
17 |
-
|
18 |
-
require_once realpath(dirname(__FILE__) . '/../../../autoload.php');
|
19 |
-
|
20 |
-
/**
|
21 |
-
* HTTP Request to be executed by IO classes. Upon execution, the
|
22 |
-
* responseHttpCode, responseHeaders and responseBody will be filled in.
|
23 |
-
*
|
24 |
-
* @author Chris Chabot <chabotc@google.com>
|
25 |
-
* @author Chirag Shah <chirags@google.com>
|
26 |
-
|
27 |
-
|
28 |
-
|
29 |
-
|
30 |
-
|
31 |
-
|
32 |
-
|
33 |
-
|
34 |
-
|
35 |
-
|
36 |
-
|
37 |
-
|
38 |
-
|
39 |
-
|
40 |
-
|
41 |
-
|
42 |
-
|
43 |
-
|
44 |
-
|
45 |
-
|
46 |
-
|
47 |
-
|
48 |
-
|
49 |
-
|
50 |
-
|
51 |
-
|
52 |
-
|
53 |
-
|
54 |
-
|
55 |
-
|
56 |
-
|
57 |
-
|
58 |
-
|
59 |
-
|
60 |
-
|
61 |
-
|
62 |
-
|
63 |
-
|
64 |
-
|
65 |
-
|
66 |
-
|
67 |
-
|
68 |
-
|
69 |
-
|
70 |
-
|
71 |
-
|
72 |
-
|
73 |
-
|
74 |
-
|
75 |
-
|
76 |
-
|
77 |
-
|
78 |
-
|
79 |
-
|
80 |
-
|
81 |
-
|
82 |
-
|
83 |
-
|
84 |
-
|
85 |
-
|
86 |
-
|
87 |
-
|
88 |
-
|
89 |
-
|
90 |
-
|
91 |
-
|
92 |
-
|
93 |
-
|
94 |
-
|
95 |
-
|
96 |
-
|
97 |
-
|
98 |
-
|
99 |
-
|
100 |
-
|
101 |
-
|
102 |
-
|
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 |
-
|
134 |
-
|
135 |
-
|
136 |
-
|
137 |
-
|
138 |
-
|
139 |
-
|
140 |
-
|
141 |
-
|
142 |
-
|
143 |
-
|
144 |
-
|
145 |
-
|
146 |
-
|
147 |
-
|
148 |
-
|
149 |
-
|
150 |
-
|
151 |
-
|
152 |
-
|
153 |
-
|
154 |
-
|
155 |
-
|
156 |
-
|
157 |
-
|
158 |
-
|
159 |
-
|
160 |
-
|
161 |
-
|
162 |
-
|
163 |
-
|
164 |
-
|
165 |
-
|
166 |
-
|
167 |
-
|
168 |
-
|
169 |
-
|
170 |
-
|
171 |
-
|
172 |
-
|
173 |
-
|
174 |
-
|
175 |
-
|
176 |
-
|
177 |
-
|
178 |
-
|
179 |
-
|
180 |
-
|
181 |
-
|
182 |
-
|
183 |
-
|
184 |
-
|
185 |
-
|
186 |
-
|
187 |
-
|
188 |
-
|
189 |
-
|
190 |
-
|
191 |
-
|
192 |
-
|
193 |
-
|
194 |
-
|
195 |
-
|
196 |
-
|
197 |
-
|
198 |
-
|
199 |
-
|
200 |
-
|
201 |
-
|
202 |
-
|
203 |
-
|
204 |
-
|
205 |
-
|
206 |
-
|
207 |
-
|
208 |
-
|
209 |
-
|
210 |
-
|
211 |
-
|
212 |
-
|
213 |
-
|
214 |
-
|
215 |
-
|
216 |
-
|
217 |
-
|
218 |
-
|
219 |
-
|
220 |
-
|
221 |
-
|
222 |
-
|
223 |
-
|
224 |
-
|
225 |
-
|
226 |
-
|
227 |
-
|
228 |
-
|
229 |
-
|
230 |
-
|
231 |
-
|
232 |
-
|
233 |
-
|
234 |
-
|
235 |
-
|
236 |
-
|
237 |
-
|
238 |
-
|
239 |
-
|
240 |
-
|
241 |
-
|
242 |
-
|
243 |
-
|
244 |
-
|
245 |
-
|
246 |
-
|
247 |
-
|
248 |
-
|
249 |
-
|
250 |
-
|
251 |
-
|
252 |
-
|
253 |
-
|
254 |
-
|
255 |
-
|
256 |
-
|
257 |
-
|
258 |
-
|
259 |
-
|
260 |
-
|
261 |
-
|
262 |
-
|
263 |
-
|
264 |
-
|
265 |
-
|
266 |
-
|
267 |
-
|
268 |
-
|
269 |
-
|
270 |
-
|
271 |
-
|
272 |
-
|
273 |
-
|
274 |
-
|
275 |
-
|
276 |
-
|
277 |
-
|
278 |
-
|
279 |
-
|
280 |
-
|
281 |
-
|
282 |
-
|
283 |
-
|
284 |
-
|
285 |
-
|
286 |
-
|
287 |
-
|
288 |
-
|
289 |
-
|
290 |
-
|
291 |
-
|
292 |
-
|
293 |
-
|
294 |
-
|
295 |
-
|
296 |
-
|
297 |
-
|
298 |
-
|
299 |
-
|
300 |
-
|
301 |
-
|
302 |
-
|
303 |
-
|
304 |
-
|
305 |
-
|
306 |
-
|
307 |
-
|
308 |
-
|
309 |
-
|
310 |
-
|
311 |
-
|
312 |
-
|
313 |
-
|
314 |
-
|
315 |
-
|
316 |
-
|
317 |
-
|
318 |
-
|
319 |
-
|
320 |
-
|
321 |
-
|
322 |
-
|
323 |
-
|
324 |
-
|
325 |
-
|
326 |
-
|
327 |
-
|
328 |
-
|
329 |
-
|
330 |
-
|
331 |
-
|
332 |
-
|
333 |
-
|
334 |
-
|
335 |
-
|
336 |
-
|
337 |
-
|
338 |
-
|
339 |
-
|
340 |
-
|
341 |
-
|
342 |
-
|
343 |
-
|
344 |
-
|
345 |
-
|
346 |
-
|
347 |
-
|
348 |
-
|
349 |
-
|
350 |
-
|
351 |
-
|
352 |
-
|
353 |
-
|
354 |
-
|
355 |
-
|
356 |
-
|
357 |
-
|
358 |
-
|
359 |
-
|
360 |
-
|
361 |
-
|
362 |
-
|
363 |
-
|
364 |
-
|
365 |
-
|
366 |
-
|
367 |
-
|
368 |
-
|
369 |
-
|
370 |
-
|
371 |
-
|
372 |
-
|
373 |
-
|
374 |
-
|
375 |
-
|
376 |
-
|
377 |
-
|
378 |
-
|
379 |
-
|
380 |
-
|
381 |
-
|
382 |
-
|
383 |
-
|
384 |
-
|
385 |
-
|
386 |
-
|
387 |
-
|
388 |
-
|
389 |
-
|
390 |
-
|
391 |
-
|
392 |
-
|
393 |
-
|
394 |
-
|
395 |
-
|
396 |
-
|
397 |
-
|
398 |
-
|
399 |
-
|
400 |
-
|
401 |
-
|
402 |
-
|
403 |
-
|
404 |
-
|
405 |
-
|
406 |
-
|
407 |
-
|
408 |
-
|
409 |
-
|
410 |
-
|
411 |
-
|
412 |
-
|
413 |
-
|
414 |
-
|
415 |
-
|
416 |
-
|
417 |
-
|
418 |
-
|
419 |
-
|
420 |
-
|
421 |
-
|
422 |
-
|
423 |
-
|
424 |
-
|
425 |
-
|
426 |
-
|
427 |
-
|
428 |
-
|
429 |
-
|
430 |
-
|
431 |
-
|
432 |
-
|
433 |
-
|
434 |
-
|
435 |
-
|
436 |
-
|
437 |
-
|
438 |
-
|
439 |
-
|
440 |
-
|
441 |
-
|
442 |
-
|
443 |
-
|
444 |
-
|
445 |
-
|
446 |
-
|
447 |
-
|
448 |
-
|
449 |
-
|
450 |
-
|
451 |
-
|
452 |
-
$return[] = urlencode($key) . "=" . urlencode($value);
|
453 |
-
}
|
454 |
-
}
|
455 |
-
return implode('&', $return);
|
456 |
-
}
|
457 |
-
|
458 |
-
/**
|
459 |
-
* If we're POSTing and have no body to send, we can send the query
|
460 |
-
* parameters in there, which avoids length issues with longer query
|
461 |
-
* params.
|
462 |
-
*/
|
463 |
-
public function maybeMoveParametersToBody()
|
464 |
-
{
|
465 |
-
if ($this->getRequestMethod() == "POST" && empty($this->postBody)) {
|
466 |
-
$this->setRequestHeaders(
|
467 |
-
array(
|
468 |
-
"content-type" =>
|
469 |
-
"application/x-www-form-urlencoded; charset=UTF-8"
|
470 |
-
)
|
471 |
-
);
|
472 |
-
$this->setPostBody($this->buildQuery($this->queryParams));
|
473 |
-
$this->queryParams = array();
|
474 |
-
}
|
475 |
-
}
|
476 |
-
}
|
1 |
+
<?php
|
2 |
+
/*
|
3 |
+
* Copyright 2010 Google Inc.
|
4 |
+
*
|
5 |
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
6 |
+
* you may not use this file except in compliance with the License.
|
7 |
+
* You may obtain a copy of the License at
|
8 |
+
*
|
9 |
+
* https://www.apache.org/licenses/LICENSE-2.0
|
10 |
+
*
|
11 |
+
* Unless required by applicable law or agreed to in writing, software
|
12 |
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
13 |
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
14 |
+
* See the License for the specific language governing permissions and
|
15 |
+
* limitations under the License.
|
16 |
+
*/
|
17 |
+
|
18 |
+
require_once realpath( dirname( __FILE__ ) . '/../../../autoload.php' );
|
19 |
+
|
20 |
+
/**
|
21 |
+
* HTTP Request to be executed by IO classes. Upon execution, the
|
22 |
+
* responseHttpCode, responseHeaders and responseBody will be filled in.
|
23 |
+
*
|
24 |
+
* @author Chris Chabot <chabotc@google.com>
|
25 |
+
* @author Chirag Shah <chirags@google.com>
|
26 |
+
*/
|
27 |
+
class GoogleGAL_Http_Request {
|
28 |
+
|
29 |
+
const GZIP_UA = ' (gzip)';
|
30 |
+
|
31 |
+
private $batchHeaders = array(
|
32 |
+
'Content-Type' => 'application/http',
|
33 |
+
'Content-Transfer-Encoding' => 'binary',
|
34 |
+
'MIME-Version' => '1.0',
|
35 |
+
);
|
36 |
+
|
37 |
+
protected $queryParams;
|
38 |
+
protected $requestMethod;
|
39 |
+
protected $requestHeaders;
|
40 |
+
protected $baseComponent = null;
|
41 |
+
protected $path;
|
42 |
+
protected $postBody;
|
43 |
+
protected $userAgent;
|
44 |
+
protected $canGzip = null;
|
45 |
+
|
46 |
+
protected $responseHttpCode;
|
47 |
+
protected $responseHeaders;
|
48 |
+
protected $responseBody;
|
49 |
+
|
50 |
+
protected $expectedClass;
|
51 |
+
|
52 |
+
public $accessKey;
|
53 |
+
|
54 |
+
public function __construct(
|
55 |
+
$url,
|
56 |
+
$method = 'GET',
|
57 |
+
$headers = array(),
|
58 |
+
$postBody = null
|
59 |
+
) {
|
60 |
+
$this->setUrl( $url );
|
61 |
+
$this->setRequestMethod( $method );
|
62 |
+
$this->setRequestHeaders( $headers );
|
63 |
+
$this->setPostBody( $postBody );
|
64 |
+
}
|
65 |
+
|
66 |
+
/**
|
67 |
+
* Misc function that returns the base url component of the $url
|
68 |
+
* used by the OAuth signing class to calculate the base string
|
69 |
+
*
|
70 |
+
* @return string The base url component of the $url.
|
71 |
+
*/
|
72 |
+
public function getBaseComponent() {
|
73 |
+
return $this->baseComponent;
|
74 |
+
}
|
75 |
+
|
76 |
+
/**
|
77 |
+
* Set the base URL that path and query parameters will be added to.
|
78 |
+
*
|
79 |
+
* @param $baseComponent string
|
80 |
+
*/
|
81 |
+
public function setBaseComponent( $baseComponent ) {
|
82 |
+
$this->baseComponent = $baseComponent;
|
83 |
+
}
|
84 |
+
|
85 |
+
/**
|
86 |
+
* Enable support for gzipped responses with this request.
|
87 |
+
*/
|
88 |
+
public function enableGzip() {
|
89 |
+
$this->setRequestHeaders( array( 'Accept-Encoding' => 'gzip' ) );
|
90 |
+
$this->canGzip = true;
|
91 |
+
$this->setUserAgent( $this->userAgent );
|
92 |
+
}
|
93 |
+
|
94 |
+
/**
|
95 |
+
* Disable support for gzip responses with this request.
|
96 |
+
*/
|
97 |
+
public function disableGzip() {
|
98 |
+
if (
|
99 |
+
isset( $this->requestHeaders['accept-encoding'] ) &&
|
100 |
+
$this->requestHeaders['accept-encoding'] == 'gzip'
|
101 |
+
) {
|
102 |
+
unset( $this->requestHeaders['accept-encoding'] );
|
103 |
+
}
|
104 |
+
$this->canGzip = false;
|
105 |
+
$this->userAgent = str_replace( self::GZIP_UA, '', $this->userAgent );
|
106 |
+
}
|
107 |
+
|
108 |
+
/**
|
109 |
+
* Can this request accept a gzip response?
|
110 |
+
*
|
111 |
+
* @return bool
|
112 |
+
*/
|
113 |
+
public function canGzip() {
|
114 |
+
return $this->canGzip;
|
115 |
+
}
|
116 |
+
|
117 |
+
/**
|
118 |
+
* Misc function that returns an array of the query parameters of the current
|
119 |
+
* url used by the OAuth signing class to calculate the signature
|
120 |
+
*
|
121 |
+
* @return array Query parameters in the query string.
|
122 |
+
*/
|
123 |
+
public function getQueryParams() {
|
124 |
+
return $this->queryParams;
|
125 |
+
}
|
126 |
+
|
127 |
+
/**
|
128 |
+
* Set a new query parameter.
|
129 |
+
*
|
130 |
+
* @param $key - string to set, does not need to be URL encoded
|
131 |
+
* @param $value - string to set, does not need to be URL encoded
|
132 |
+
*/
|
133 |
+
public function setQueryParam( $key, $value ) {
|
134 |
+
$this->queryParams[ $key ] = $value;
|
135 |
+
}
|
136 |
+
|
137 |
+
/**
|
138 |
+
* @return string HTTP Response Code.
|
139 |
+
*/
|
140 |
+
public function getResponseHttpCode() {
|
141 |
+
return (int) $this->responseHttpCode;
|
142 |
+
}
|
143 |
+
|
144 |
+
/**
|
145 |
+
* @param int $responseHttpCode HTTP Response Code.
|
146 |
+
*/
|
147 |
+
public function setResponseHttpCode( $responseHttpCode ) {
|
148 |
+
$this->responseHttpCode = $responseHttpCode;
|
149 |
+
}
|
150 |
+
|
151 |
+
/**
|
152 |
+
* @return $responseHeaders (array) HTTP Response Headers.
|
153 |
+
*/
|
154 |
+
public function getResponseHeaders() {
|
155 |
+
return $this->responseHeaders;
|
156 |
+
}
|
157 |
+
|
158 |
+
/**
|
159 |
+
* @return string HTTP Response Body
|
160 |
+
*/
|
161 |
+
public function getResponseBody() {
|
162 |
+
return $this->responseBody;
|
163 |
+
}
|
164 |
+
|
165 |
+
/**
|
166 |
+
* Set the class the response to this request should expect.
|
167 |
+
*
|
168 |
+
* @param $class string the class name
|
169 |
+
*/
|
170 |
+
public function setExpectedClass( $class ) {
|
171 |
+
$this->expectedClass = $class;
|
172 |
+
}
|
173 |
+
|
174 |
+
/**
|
175 |
+
* Retrieve the expected class the response should expect.
|
176 |
+
*
|
177 |
+
* @return string class name
|
178 |
+
*/
|
179 |
+
public function getExpectedClass() {
|
180 |
+
return $this->expectedClass;
|
181 |
+
}
|
182 |
+
|
183 |
+
/**
|
184 |
+
* @param array $headers The HTTP response headers
|
185 |
+
* to be normalized.
|
186 |
+
*/
|
187 |
+
public function setResponseHeaders( $headers ) {
|
188 |
+
$headers = GoogleGAL_Utils::normalize( $headers );
|
189 |
+
if ( $this->responseHeaders ) {
|
190 |
+
$headers = array_merge( $this->responseHeaders, $headers );
|
191 |
+
}
|
192 |
+
|
193 |
+
$this->responseHeaders = $headers;
|
194 |
+
}
|
195 |
+
|
196 |
+
/**
|
197 |
+
* @param string $key
|
198 |
+
* @return array|boolean Returns the requested HTTP header or
|
199 |
+
* false if unavailable.
|
200 |
+
*/
|
201 |
+
public function getResponseHeader( $key ) {
|
202 |
+
return isset( $this->responseHeaders[ $key ] )
|
203 |
+
? $this->responseHeaders[ $key ]
|
204 |
+
: false;
|
205 |
+
}
|
206 |
+
|
207 |
+
/**
|
208 |
+
* @param string $responseBody The HTTP response body.
|
209 |
+
*/
|
210 |
+
public function setResponseBody( $responseBody ) {
|
211 |
+
$this->responseBody = $responseBody;
|
212 |
+
}
|
213 |
+
|
214 |
+
/**
|
215 |
+
* @return string $url The request URL.
|
216 |
+
*/
|
217 |
+
public function getUrl() {
|
218 |
+
return $this->baseComponent . $this->path .
|
219 |
+
( count( $this->queryParams ) ?
|
220 |
+
'?' . $this->buildQuery( $this->queryParams ) :
|
221 |
+
'' );
|
222 |
+
}
|
223 |
+
|
224 |
+
/**
|
225 |
+
* @return string $method HTTP Request Method.
|
226 |
+
*/
|
227 |
+
public function getRequestMethod() {
|
228 |
+
return $this->requestMethod;
|
229 |
+
}
|
230 |
+
|
231 |
+
/**
|
232 |
+
* @return array $headers HTTP Request Headers.
|
233 |
+
*/
|
234 |
+
public function getRequestHeaders() {
|
235 |
+
return $this->requestHeaders;
|
236 |
+
}
|
237 |
+
|
238 |
+
/**
|
239 |
+
* @param string $key
|
240 |
+
* @return array|boolean Returns the requested HTTP header or
|
241 |
+
* false if unavailable.
|
242 |
+
*/
|
243 |
+
public function getRequestHeader( $key ) {
|
244 |
+
return isset( $this->requestHeaders[ $key ] )
|
245 |
+
? $this->requestHeaders[ $key ]
|
246 |
+
: false;
|
247 |
+
}
|
248 |
+
|
249 |
+
/**
|
250 |
+
* @return string $postBody HTTP Request Body.
|
251 |
+
*/
|
252 |
+
public function getPostBody() {
|
253 |
+
return $this->postBody;
|
254 |
+
}
|
255 |
+
|
256 |
+
/**
|
257 |
+
* @param string $url the url to set
|
258 |
+
*/
|
259 |
+
public function setUrl( $url ) {
|
260 |
+
if ( substr( $url, 0, 4 ) != 'http' ) {
|
261 |
+
// Force the path become relative.
|
262 |
+
if ( substr( $url, 0, 1 ) !== '/' ) {
|
263 |
+
$url = '/' . $url;
|
264 |
+
}
|
265 |
+
}
|
266 |
+
$parts = parse_url( $url );
|
267 |
+
if ( isset( $parts['host'] ) ) {
|
268 |
+
$this->baseComponent = sprintf(
|
269 |
+
'%s%s%s',
|
270 |
+
isset( $parts['scheme'] ) ? $parts['scheme'] . '://' : '',
|
271 |
+
isset( $parts['host'] ) ? $parts['host'] : '',
|
272 |
+
isset( $parts['port'] ) ? ':' . $parts['port'] : ''
|
273 |
+
);
|
274 |
+
}
|
275 |
+
$this->path = isset( $parts['path'] ) ? $parts['path'] : '';
|
276 |
+
$this->queryParams = array();
|
277 |
+
if ( isset( $parts['query'] ) ) {
|
278 |
+
$this->queryParams = $this->parseQuery( $parts['query'] );
|
279 |
+
}
|
280 |
+
}
|
281 |
+
|
282 |
+
/**
|
283 |
+
* @param string $method Set he HTTP Method and normalize
|
284 |
+
* it to upper-case, as required by HTTP.
|
285 |
+
*/
|
286 |
+
public function setRequestMethod( $method ) {
|
287 |
+
$this->requestMethod = strtoupper( $method );
|
288 |
+
}
|
289 |
+
|
290 |
+
/**
|
291 |
+
* @param array $headers The HTTP request headers
|
292 |
+
* to be set and normalized.
|
293 |
+
*/
|
294 |
+
public function setRequestHeaders( $headers ) {
|
295 |
+
$headers = GoogleGAL_Utils::normalize( $headers );
|
296 |
+
if ( $this->requestHeaders ) {
|
297 |
+
$headers = array_merge( $this->requestHeaders, $headers );
|
298 |
+
}
|
299 |
+
$this->requestHeaders = $headers;
|
300 |
+
}
|
301 |
+
|
302 |
+
/**
|
303 |
+
* @param string $postBody the postBody to set
|
304 |
+
*/
|
305 |
+
public function setPostBody( $postBody ) {
|
306 |
+
$this->postBody = $postBody;
|
307 |
+
}
|
308 |
+
|
309 |
+
/**
|
310 |
+
* Set the User-Agent Header.
|
311 |
+
*
|
312 |
+
* @param string $userAgent The User-Agent.
|
313 |
+
*/
|
314 |
+
public function setUserAgent( $userAgent ) {
|
315 |
+
$this->userAgent = $userAgent;
|
316 |
+
if ( $this->canGzip ) {
|
317 |
+
$this->userAgent = $userAgent . self::GZIP_UA;
|
318 |
+
}
|
319 |
+
}
|
320 |
+
|
321 |
+
/**
|
322 |
+
* @return string The User-Agent.
|
323 |
+
*/
|
324 |
+
public function getUserAgent() {
|
325 |
+
return $this->userAgent;
|
326 |
+
}
|
327 |
+
|
328 |
+
/**
|
329 |
+
* Returns a cache key depending on if this was an OAuth signed request
|
330 |
+
* in which case it will use the non-signed url and access key to make this
|
331 |
+
* cache key unique per authenticated user, else use the plain request url
|
332 |
+
*
|
333 |
+
* @return string The md5 hash of the request cache key.
|
334 |
+
*/
|
335 |
+
public function getCacheKey() {
|
336 |
+
$key = $this->getUrl();
|
337 |
+
|
338 |
+
if ( isset( $this->accessKey ) ) {
|
339 |
+
$key .= $this->accessKey;
|
340 |
+
}
|
341 |
+
|
342 |
+
if ( isset( $this->requestHeaders['authorization'] ) ) {
|
343 |
+
$key .= $this->requestHeaders['authorization'];
|
344 |
+
}
|
345 |
+
|
346 |
+
return md5( $key );
|
347 |
+
}
|
348 |
+
|
349 |
+
public function getParsedCacheControl() {
|
350 |
+
$parsed = array();
|
351 |
+
$rawCacheControl = $this->getResponseHeader( 'cache-control' );
|
352 |
+
if ( $rawCacheControl ) {
|
353 |
+
$rawCacheControl = str_replace( ', ', '&', $rawCacheControl );
|
354 |
+
parse_str( $rawCacheControl, $parsed );
|
355 |
+
}
|
356 |
+
|
357 |
+
return $parsed;
|
358 |
+
}
|
359 |
+
|
360 |
+
/**
|
361 |
+
* @param string $id
|
362 |
+
* @return string A string representation of the HTTP Request.
|
363 |
+
*/
|
364 |
+
public function toBatchString( $id ) {
|
365 |
+
$str = '';
|
366 |
+
$path = parse_url( $this->getUrl(), PHP_URL_PATH ) . '?' .
|
367 |
+
http_build_query( $this->queryParams );
|
368 |
+
$str .= $this->getRequestMethod() . ' ' . $path . " HTTP/1.1\n";
|
369 |
+
|
370 |
+
foreach ( $this->getRequestHeaders() as $key => $val ) {
|
371 |
+
$str .= $key . ': ' . $val . "\n";
|
372 |
+
}
|
373 |
+
|
374 |
+
if ( $this->getPostBody() ) {
|
375 |
+
$str .= "\n";
|
376 |
+
$str .= $this->getPostBody();
|
377 |
+
}
|
378 |
+
|
379 |
+
$headers = '';
|
380 |
+
foreach ( $this->batchHeaders as $key => $val ) {
|
381 |
+
$headers .= $key . ': ' . $val . "\n";
|
382 |
+
}
|
383 |
+
|
384 |
+
$headers .= "Content-ID: $id\n";
|
385 |
+
$str = $headers . "\n" . $str;
|
386 |
+
|
387 |
+
return $str;
|
388 |
+
}
|
389 |
+
|
390 |
+
/**
|
391 |
+
* Our own version of parse_str that allows for multiple variables
|
392 |
+
* with the same name.
|
393 |
+
*
|
394 |
+
* @param $string - the query string to parse
|
395 |
+
*/
|
396 |
+
private function parseQuery( $string ) {
|
397 |
+
$return = array();
|
398 |
+
$parts = explode( '&', $string );
|
399 |
+
foreach ( $parts as $part ) {
|
400 |
+
list($key, $value) = explode( '=', $part, 2 );
|
401 |
+
$value = urldecode( $value );
|
402 |
+
if ( isset( $return[ $key ] ) ) {
|
403 |
+
if ( ! is_array( $return[ $key ] ) ) {
|
404 |
+
$return[ $key ] = array( $return[ $key ] );
|
405 |
+
}
|
406 |
+
$return[ $key ][] = $value;
|
407 |
+
} else {
|
408 |
+
$return[ $key ] = $value;
|
409 |
+
}
|
410 |
+
}
|
411 |
+
return $return;
|
412 |
+
}
|
413 |
+
|
414 |
+
/**
|
415 |
+
* A version of build query that allows for multiple
|
416 |
+
* duplicate keys.
|
417 |
+
*
|
418 |
+
* @param $parts array of key value pairs
|
419 |
+
*/
|
420 |
+
private function buildQuery( $parts ) {
|
421 |
+
$return = array();
|
422 |
+
foreach ( $parts as $key => $value ) {
|
423 |
+
if ( is_array( $value ) ) {
|
424 |
+
foreach ( $value as $v ) {
|
425 |
+
$return[] = urlencode( $key ) . '=' . urlencode( $v );
|
426 |
+
}
|
427 |
+
} else {
|
428 |
+
$return[] = urlencode( $key ) . '=' . urlencode( $value );
|
429 |
+
}
|
430 |
+
}
|
431 |
+
return implode( '&', $return );
|
432 |
+
}
|
433 |
+
|
434 |
+
/**
|
435 |
+
* If we're POSTing and have no body to send, we can send the query
|
436 |
+
* parameters in there, which avoids length issues with longer query
|
437 |
+
* params.
|
438 |
+
*/
|
439 |
+
public function maybeMoveParametersToBody() {
|
440 |
+
if ( $this->getRequestMethod() == 'POST' && empty( $this->postBody ) ) {
|
441 |
+
$this->setRequestHeaders(
|
442 |
+
array(
|
443 |
+
'content-type' =>
|
444 |
+
'application/x-www-form-urlencoded; charset=UTF-8',
|
445 |
+
)
|
446 |
+
);
|
447 |
+
$this->setPostBody( $this->buildQuery( $this->queryParams ) );
|
448 |
+
$this->queryParams = array();
|
449 |
+
}
|
450 |
+
}
|
451 |
+
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
core/Google/IO/Abstract.php
CHANGED
@@ -1,329 +1,328 @@
|
|
1 |
-
<?php
|
2 |
-
/*
|
3 |
-
* Copyright 2013 Google Inc.
|
4 |
-
*
|
5 |
-
* Licensed under the Apache License, Version 2.0 (the "License");
|
6 |
-
* you may not use this file except in compliance with the License.
|
7 |
-
* You may obtain a copy of the License at
|
8 |
-
*
|
9 |
-
* https://www.apache.org/licenses/LICENSE-2.0
|
10 |
-
*
|
11 |
-
* Unless required by applicable law or agreed to in writing, software
|
12 |
-
* distributed under the License is distributed on an "AS IS" BASIS,
|
13 |
-
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
14 |
-
* See the License for the specific language governing permissions and
|
15 |
-
* limitations under the License.
|
16 |
-
*/
|
17 |
-
|
18 |
-
/**
|
19 |
-
* Abstract IO base class
|
20 |
-
*/
|
21 |
-
|
22 |
-
require_once realpath(dirname(__FILE__) . '/../../../autoload.php');
|
23 |
-
|
24 |
-
abstract class GoogleGAL_IO_Abstract
|
25 |
-
|
26 |
-
|
27 |
-
|
28 |
-
|
29 |
-
|
30 |
-
|
31 |
-
|
32 |
-
|
33 |
-
|
34 |
-
|
35 |
-
|
36 |
-
|
37 |
-
|
38 |
-
|
39 |
-
|
40 |
-
|
41 |
-
|
42 |
-
$
|
43 |
-
|
44 |
-
|
45 |
-
|
46 |
-
|
47 |
-
|
48 |
-
|
49 |
-
|
50 |
-
|
51 |
-
|
52 |
-
|
53 |
-
|
54 |
-
|
55 |
-
|
56 |
-
|
57 |
-
|
58 |
-
|
59 |
-
|
60 |
-
|
61 |
-
|
62 |
-
|
63 |
-
|
64 |
-
|
65 |
-
|
66 |
-
|
67 |
-
|
68 |
-
|
69 |
-
|
70 |
-
|
71 |
-
|
72 |
-
|
73 |
-
|
74 |
-
|
75 |
-
|
76 |
-
|
77 |
-
|
78 |
-
|
79 |
-
|
80 |
-
|
81 |
-
|
82 |
-
|
83 |
-
|
84 |
-
|
85 |
-
|
86 |
-
|
87 |
-
|
88 |
-
|
89 |
-
|
90 |
-
|
91 |
-
|
92 |
-
|
93 |
-
|
94 |
-
|
95 |
-
|
96 |
-
|
97 |
-
|
98 |
-
|
99 |
-
|
100 |
-
|
101 |
-
|
102 |
-
|
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 |
-
|
134 |
-
|
135 |
-
|
136 |
-
|
137 |
-
|
138 |
-
|
139 |
-
|
140 |
-
|
141 |
-
|
142 |
-
|
143 |
-
|
144 |
-
|
145 |
-
|
146 |
-
|
147 |
-
|
148 |
-
|
149 |
-
|
150 |
-
|
151 |
-
|
152 |
-
|
153 |
-
|
154 |
-
|
155 |
-
|
156 |
-
|
157 |
-
|
158 |
-
|
159 |
-
|
160 |
-
|
161 |
-
|
162 |
-
|
163 |
-
|
164 |
-
|
165 |
-
|
166 |
-
|
167 |
-
|
168 |
-
|
169 |
-
|
170 |
-
|
171 |
-
|
172 |
-
|
173 |
-
|
174 |
-
|
175 |
-
|
176 |
-
|
177 |
-
|
178 |
-
|
179 |
-
|
180 |
-
|
181 |
-
|
182 |
-
|
183 |
-
|
184 |
-
|
185 |
-
|
186 |
-
|
187 |
-
|
188 |
-
|
189 |
-
|
190 |
-
|
191 |
-
|
192 |
-
|
193 |
-
|
194 |
-
|
195 |
-
|
196 |
-
|
197 |
-
|
198 |
-
|
199 |
-
|
200 |
-
|
201 |
-
|
202 |
-
|
203 |
-
|
204 |
-
|
205 |
-
|
206 |
-
|
207 |
-
|
208 |
-
|
209 |
-
|
210 |
-
|
211 |
-
|
212 |
-
|
213 |
-
|
214 |
-
|
215 |
-
|
216 |
-
|
217 |
-
|
218 |
-
|
219 |
-
|
220 |
-
|
221 |
-
|
222 |
-
|
223 |
-
|
224 |
-
|
225 |
-
|
226 |
-
|
227 |
-
|
228 |
-
|
229 |
-
|
230 |
-
|
231 |
-
|
232 |
-
|
233 |
-
|
234 |
-
|
235 |
-
|
236 |
-
|
237 |
-
|
238 |
-
|
239 |
-
|
240 |
-
|
241 |
-
|
242 |
-
|
243 |
-
|
244 |
-
|
245 |
-
|
246 |
-
|
247 |
-
|
248 |
-
|
249 |
-
|
250 |
-
|
251 |
-
|
252 |
-
|
253 |
-
|
254 |
-
|
255 |
-
|
256 |
-
|
257 |
-
|
258 |
-
|
259 |
-
|
260 |
-
|
261 |
-
|
262 |
-
|
263 |
-
|
264 |
-
|
265 |
-
|
266 |
-
|
267 |
-
|
268 |
-
|
269 |
-
|
270 |
-
|
271 |
-
|
272 |
-
|
273 |
-
|
274 |
-
|
275 |
-
|
276 |
-
|
277 |
-
|
278 |
-
|
279 |
-
|
280 |
-
|
281 |
-
|
282 |
-
|
283 |
-
|
284 |
-
|
285 |
-
|
286 |
-
|
287 |
-
|
288 |
-
|
289 |
-
|
290 |
-
|
291 |
-
|
292 |
-
|
293 |
-
|
294 |
-
|
295 |
-
|
296 |
-
|
297 |
-
|
298 |
-
|
299 |
-
|
300 |
-
|
301 |
-
|
302 |
-
|
303 |
-
|
304 |
-
|
305 |
-
|
306 |
-
|
307 |
-
|
308 |
-
|
309 |
-
|
310 |
-
|
311 |
-
|
312 |
-
|
313 |
-
|
314 |
-
|
315 |
-
|
316 |
-
|
317 |
-
|
318 |
-
|
319 |
-
|
320 |
-
|
321 |
-
|
322 |
-
|
323 |
-
|
324 |
-
|
325 |
-
|
326 |
-
|
327 |
-
|
328 |
-
|
329 |
-
}
|
1 |
+
<?php
|
2 |
+
/*
|
3 |
+
* Copyright 2013 Google Inc.
|
4 |
+
*
|
5 |
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
6 |
+
* you may not use this file except in compliance with the License.
|
7 |
+
* You may obtain a copy of the License at
|
8 |
+
*
|
9 |
+
* https://www.apache.org/licenses/LICENSE-2.0
|
10 |
+
*
|
11 |
+
* Unless required by applicable law or agreed to in writing, software
|
12 |
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
13 |
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
14 |
+
* See the License for the specific language governing permissions and
|
15 |
+
* limitations under the License.
|
16 |
+
*/
|
17 |
+
|
18 |
+
/**
|
19 |
+
* Abstract IO base class
|
20 |
+
*/
|
21 |
+
|
22 |
+
require_once realpath( dirname( __FILE__ ) . '/../../../autoload.php' );
|
23 |
+
|
24 |
+
abstract class GoogleGAL_IO_Abstract {
|
25 |
+
|
26 |
+
const UNKNOWN_CODE = 0;
|
27 |
+
const FORM_URLENCODED = 'application/x-www-form-urlencoded';
|
28 |
+
private static $CONNECTION_ESTABLISHED_HEADERS = array(
|
29 |
+
"HTTP/1.0 200 Connection established\r\n\r\n",
|
30 |
+
"HTTP/1.1 200 Connection established\r\n\r\n",
|
31 |
+
);
|
32 |
+
private static $ENTITY_HTTP_METHODS = array(
|
33 |
+
'POST' => null,
|
34 |
+
'PUT' => null,
|
35 |
+
);
|
36 |
+
|
37 |
+
/** @var GoogleGAL_Client */
|
38 |
+
protected $client;
|
39 |
+
|
40 |
+
public function __construct( GoogleGAL_Client $client ) {
|
41 |
+
$this->client = $client;
|
42 |
+
$timeout = $client->getClassConfig( 'GoogleGAL_IO_Abstract', 'request_timeout_seconds' );
|
43 |
+
if ( $timeout > 0 ) {
|
44 |
+
$this->setTimeout( $timeout );
|
45 |
+
}
|
46 |
+
}
|
47 |
+
|
48 |
+
/**
|
49 |
+
* Executes a GoogleGAL_Http_Request and returns the resulting populated GoogleGAL_Http_Request
|
50 |
+
*
|
51 |
+
* @param GoogleGAL_Http_Request $request
|
52 |
+
* @return GoogleGAL_Http_Request $request
|
53 |
+
*/
|
54 |
+
abstract public function executeRequest( GoogleGAL_Http_Request $request);
|
55 |
+
|
56 |
+
/**
|
57 |
+
* Set options that update the transport implementation's behavior.
|
58 |
+
*
|
59 |
+
* @param $options
|
60 |
+
*/
|
61 |
+
abstract public function setOptions( $options);
|
62 |
+
|
63 |
+
/**
|
64 |
+
* Set the maximum request time in seconds.
|
65 |
+
*
|
66 |
+
* @param $timeout in seconds
|
67 |
+
*/
|
68 |
+
abstract public function setTimeout( $timeout);
|
69 |
+
|
70 |
+
/**
|
71 |
+
* Get the maximum request time in seconds.
|
72 |
+
*
|
73 |
+
* @return timeout in seconds
|
74 |
+
*/
|
75 |
+
abstract public function getTimeout();
|
76 |
+
|
77 |
+
/**
|
78 |
+
* Test for the presence of a cURL header processing bug
|
79 |
+
*
|
80 |
+
* The cURL bug was present in versions prior to 7.30.0 and caused the header
|
81 |
+
* length to be miscalculated when a "Connection established" header added by
|
82 |
+
* some proxies was present.
|
83 |
+
*
|
84 |
+
* @return boolean
|
85 |
+
*/
|
86 |
+
abstract protected function needsQuirk();
|
87 |
+
|
88 |
+
/**
|
89 |
+
* @visible for testing.
|
90 |
+
* Cache the response to an HTTP request if it is cacheable.
|
91 |
+
* @param GoogleGAL_Http_Request $request
|
92 |
+
* @return bool Returns true if the insertion was successful.
|
93 |
+
* Otherwise, return false.
|
94 |
+
*/
|
95 |
+
public function setCachedRequest( GoogleGAL_Http_Request $request ) {
|
96 |
+
// Determine if the request is cacheable.
|
97 |
+
if ( GoogleGAL_Http_CacheParser::isResponseCacheable( $request ) ) {
|
98 |
+
$this->client->getCache()->set( $request->getCacheKey(), $request );
|
99 |
+
return true;
|
100 |
+
}
|
101 |
+
|
102 |
+
return false;
|
103 |
+
}
|
104 |
+
|
105 |
+
/**
|
106 |
+
* Execute an HTTP Request
|
107 |
+
*
|
108 |
+
* @param GoogleGAL_HttpRequest $request the http request to be executed
|
109 |
+
* @return GoogleGAL_HttpRequest http request with the response http code,
|
110 |
+
* response headers and response body filled in
|
111 |
+
* @throws GoogleGAL_IO_Exception on curl or IO error
|
112 |
+
*/
|
113 |
+
public function makeRequest( GoogleGAL_Http_Request $request ) {
|
114 |
+
// First, check to see if we have a valid cached version.
|
115 |
+
$cached = $this->getCachedRequest( $request );
|
116 |
+
if ( $cached !== false && $cached instanceof GoogleGAL_Http_Request ) {
|
117 |
+
if ( ! $this->checkMustRevalidateCachedRequest( $cached, $request ) ) {
|
118 |
+
return $cached;
|
119 |
+
}
|
120 |
+
}
|
121 |
+
|
122 |
+
if ( array_key_exists( $request->getRequestMethod(), self::$ENTITY_HTTP_METHODS ) ) {
|
123 |
+
$request = $this->processEntityRequest( $request );
|
124 |
+
}
|
125 |
+
|
126 |
+
list($responseData, $responseHeaders, $respHttpCode) = $this->executeRequest( $request );
|
127 |
+
|
128 |
+
if ( $respHttpCode == 304 && $cached ) {
|
129 |
+
// If the server responded NOT_MODIFIED, return the cached request.
|
130 |
+
$this->updateCachedRequest( $cached, $responseHeaders );
|
131 |
+
return $cached;
|
132 |
+
}
|
133 |
+
|
134 |
+
if ( ! isset( $responseHeaders['Date'] ) && ! isset( $responseHeaders['date'] ) ) {
|
135 |
+
$responseHeaders['Date'] = date( 'r' );
|
136 |
+
}
|
137 |
+
|
138 |
+
$request->setResponseHttpCode( $respHttpCode );
|
139 |
+
$request->setResponseHeaders( $responseHeaders );
|
140 |
+
$request->setResponseBody( $responseData );
|
141 |
+
// Store the request in cache (the function checks to see if the request
|
142 |
+
// can actually be cached)
|
143 |
+
$this->setCachedRequest( $request );
|
144 |
+
return $request;
|
145 |
+
}
|
146 |
+
|
147 |
+
/**
|
148 |
+
* @visible for testing.
|
149 |
+
* @param GoogleGAL_Http_Request $request
|
150 |
+
* @return GoogleGAL_Http_Request|bool Returns the cached object or
|
151 |
+
* false if the operation was unsuccessful.
|
152 |
+
*/
|
153 |
+
public function getCachedRequest( GoogleGAL_Http_Request $request ) {
|
154 |
+
if ( false === GoogleGAL_Http_CacheParser::isRequestCacheable( $request ) ) {
|
155 |
+
return false;
|
156 |
+
}
|
157 |
+
|
158 |
+
return $this->client->getCache()->get( $request->getCacheKey() );
|
159 |
+
}
|
160 |
+
|
161 |
+
/**
|
162 |
+
* @visible for testing
|
163 |
+
* Process an http request that contains an enclosed entity.
|
164 |
+
* @param GoogleGAL_Http_Request $request
|
165 |
+
* @return GoogleGAL_Http_Request Processed request with the enclosed entity.
|
166 |
+
*/
|
167 |
+
public function processEntityRequest( GoogleGAL_Http_Request $request ) {
|
168 |
+
$postBody = $request->getPostBody();
|
169 |
+
$contentType = $request->getRequestHeader( 'content-type' );
|
170 |
+
|
171 |
+
// Set the default content-type as application/x-www-form-urlencoded.
|
172 |
+
if ( false == $contentType ) {
|
173 |
+
$contentType = self::FORM_URLENCODED;
|
174 |
+
$request->setRequestHeaders( array( 'content-type' => $contentType ) );
|
175 |
+
}
|
176 |
+
|
177 |
+
// Force the payload to match the content-type asserted in the header.
|
178 |
+
if ( $contentType == self::FORM_URLENCODED && is_array( $postBody ) ) {
|
179 |
+
$postBody = http_build_query( $postBody, '', '&' );
|
180 |
+
$request->setPostBody( $postBody );
|
181 |
+
}
|
182 |
+
|
183 |
+
// Make sure the content-length header is set.
|
184 |
+
if ( ! $postBody || is_string( $postBody ) ) {
|
185 |
+
$postsLength = strlen( $postBody );
|
186 |
+
$request->setRequestHeaders( array( 'content-length' => $postsLength ) );
|
187 |
+
}
|
188 |
+
|
189 |
+
return $request;
|
190 |
+
}
|
191 |
+
|
192 |
+
/**
|
193 |
+
* Check if an already cached request must be revalidated, and if so update
|
194 |
+
* the request with the correct ETag headers.
|
195 |
+
*
|
196 |
+
* @param GoogleGAL_Http_Request $cached A previously cached response.
|
197 |
+
* @param GoogleGAL_Http_Request $request The outbound request.
|
198 |
+
* return bool If the cached object needs to be revalidated, false if it is
|
199 |
+
* still current and can be re-used.
|
200 |
+
*/
|
201 |
+
protected function checkMustRevalidateCachedRequest( $cached, $request ) {
|
202 |
+
if ( GoogleGAL_Http_CacheParser::mustRevalidate( $cached ) ) {
|
203 |
+
$addHeaders = array();
|
204 |
+
if ( $cached->getResponseHeader( 'etag' ) ) {
|
205 |
+
// [13.3.4] If an entity tag has been provided by the origin server,
|
206 |
+
// we must use that entity tag in any cache-conditional request.
|
207 |
+
$addHeaders['If-None-Match'] = $cached->getResponseHeader( 'etag' );
|
208 |
+
} elseif ( $cached->getResponseHeader( 'date' ) ) {
|
209 |
+
$addHeaders['If-Modified-Since'] = $cached->getResponseHeader( 'date' );
|
210 |
+
}
|
211 |
+
|
212 |
+
$request->setRequestHeaders( $addHeaders );
|
213 |
+
return true;
|
214 |
+
} else {
|
215 |
+
return false;
|
216 |
+
}
|
217 |
+
}
|
218 |
+
|
219 |
+
/**
|
220 |
+
* Update a cached request, using the headers from the last response.
|
221 |
+
*
|
222 |
+
* @param GoogleGAL_HttpRequest $cached A previously cached response.
|
223 |
+
* @param mixed Associative array of response headers from the last request.
|
224 |
+
*/
|
225 |
+
protected function updateCachedRequest( $cached, $responseHeaders ) {
|
226 |
+
if ( isset( $responseHeaders['connection'] ) ) {
|
227 |
+
$hopByHop = array_merge(
|
228 |
+
self::$HOP_BY_HOP,
|
229 |
+
explode(
|
230 |
+
',',
|
231 |
+
$responseHeaders['connection']
|
232 |
+
)
|
233 |
+
);
|
234 |
+
|
235 |
+
$endToEnd = array();
|
236 |
+
foreach ( $hopByHop as $key ) {
|
237 |
+
if ( isset( $responseHeaders[ $key ] ) ) {
|
238 |
+
$endToEnd[ $key ] = $responseHeaders[ $key ];
|
239 |
+
}
|
240 |
+
}
|
241 |
+
$cached->setResponseHeaders( $endToEnd );
|
242 |
+
}
|
243 |
+
}
|
244 |
+
|
245 |
+
/**
|
246 |
+
* Used by the IO lib and also the batch processing.
|
247 |
+
*
|
248 |
+
* @param $respData
|
249 |
+
* @param $headerSize
|
250 |
+
* @return array
|
251 |
+
*/
|
252 |
+
public function parseHttpResponse( $respData, $headerSize ) {
|
253 |
+
// check proxy header
|
254 |
+
foreach ( self::$CONNECTION_ESTABLISHED_HEADERS as $established_header ) {
|
255 |
+
if ( stripos( $respData, $established_header ) !== false ) {
|
256 |
+
// existed, remove it
|
257 |
+
$respData = str_ireplace( $established_header, '', $respData );
|
258 |
+
// Subtract the proxy header size unless the cURL bug prior to 7.30.0
|
259 |
+
// is present which prevented the proxy header size from being taken into
|
260 |
+
// account.
|
261 |
+
if ( ! $this->needsQuirk() ) {
|
262 |
+
$headerSize -= strlen( $established_header );
|
263 |
+
}
|
264 |
+
break;
|
265 |
+
}
|
266 |
+
}
|
267 |
+
|
268 |
+
if ( $headerSize ) {
|
269 |
+
$responseBody = substr( $respData, $headerSize );
|
270 |
+
$responseHeaders = substr( $respData, 0, $headerSize );
|
271 |
+
} else {
|
272 |
+
$responseSegments = explode( "\r\n\r\n", $respData, 2 );
|
273 |
+
$responseHeaders = $responseSegments[0];
|
274 |
+
$responseBody = isset( $responseSegments[1] ) ? $responseSegments[1] :
|
275 |
+
null;
|
276 |
+
}
|
277 |
+
|
278 |
+
$responseHeaders = $this->getHttpResponseHeaders( $responseHeaders );
|
279 |
+
return array( $responseHeaders, $responseBody );
|
280 |
+
}
|
281 |
+
|
282 |
+
/**
|
283 |
+
* Parse out headers from raw headers
|
284 |
+
*
|
285 |
+
* @param rawHeaders array or string
|
286 |
+
* @return array
|
287 |
+
*/
|
288 |
+
public function getHttpResponseHeaders( $rawHeaders ) {
|
289 |
+
if ( is_array( $rawHeaders ) ) {
|
290 |
+
return $this->parseArrayHeaders( $rawHeaders );
|
291 |
+
} else {
|
292 |
+
return $this->parseStringHeaders( $rawHeaders );
|
293 |
+
}
|
294 |
+
}
|
295 |
+
|
296 |
+
private function parseStringHeaders( $rawHeaders ) {
|
297 |
+
$headers = array();
|
298 |
+
$responseHeaderLines = explode( "\r\n", $rawHeaders );
|
299 |
+
foreach ( $responseHeaderLines as $headerLine ) {
|
300 |
+
if ( $headerLine && strpos( $headerLine, ':' ) !== false ) {
|
301 |
+
list($header, $value) = explode( ': ', $headerLine, 2 );
|
302 |
+
$header = strtolower( $header );
|
303 |
+
if ( isset( $headers[ $header ] ) ) {
|
304 |
+
$headers[ $header ] .= "\n" . $value;
|
305 |
+
} else {
|
306 |
+
$headers[ $header ] = $value;
|
307 |
+
}
|
308 |
+
}
|
309 |
+
}
|
310 |
+
return $headers;
|
311 |
+
}
|
312 |
+
|
313 |
+
private function parseArrayHeaders( $rawHeaders ) {
|
314 |
+
$header_count = count( $rawHeaders );
|
315 |
+
$headers = array();
|
316 |
+
|
317 |
+
for ( $i = 0; $i < $header_count; $i++ ) {
|
318 |
+
$header = $rawHeaders[ $i ];
|
319 |
+
// Times will have colons in - so we just want the first match.
|
320 |
+
$header_parts = explode( ': ', $header, 2 );
|
321 |
+
if ( count( $header_parts ) == 2 ) {
|
322 |
+
$headers[ $header_parts[0] ] = $header_parts[1];
|
323 |
+
}
|
324 |
+
}
|
325 |
+
|
326 |
+
return $headers;
|
327 |
+
}
|
328 |
+
}
|
|
core/Google/IO/Curl.php
CHANGED
@@ -1,159 +1,157 @@
|
|
1 |
-
<?php
|
2 |
-
/*
|
3 |
-
* Copyright 2014 Google Inc.
|
4 |
-
*
|
5 |
-
* Licensed under the Apache License, Version 2.0 (the "License");
|
6 |
-
* you may not use this file except in compliance with the License.
|
7 |
-
* You may obtain a copy of the License at
|
8 |
-
*
|
9 |
-
* https://www.apache.org/licenses/LICENSE-2.0
|
10 |
-
*
|
11 |
-
* Unless required by applicable law or agreed to in writing, software
|
12 |
-
* distributed under the License is distributed on an "AS IS" BASIS,
|
13 |
-
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
14 |
-
* See the License for the specific language governing permissions and
|
15 |
-
* limitations under the License.
|
16 |
-
*/
|
17 |
-
|
18 |
-
/**
|
19 |
-
* Curl based implementation of GoogleGAL_IO.
|
20 |
-
*
|
21 |
-
* @author Stuart Langley <slangley@google.com>
|
22 |
-
*/
|
23 |
-
|
24 |
-
require_once realpath(dirname(__FILE__) . '/../../../autoload.php');
|
25 |
-
|
26 |
-
class GoogleGAL_IO_Curl extends GoogleGAL_IO_Abstract
|
27 |
-
|
28 |
-
|
29 |
-
|
30 |
-
|
31 |
-
|
32 |
-
|
33 |
-
|
34 |
-
|
35 |
-
|
36 |
-
|
37 |
-
|
38 |
-
|
39 |
-
|
40 |
-
|
41 |
-
|
42 |
-
|
43 |
-
|
44 |
-
|
45 |
-
|
46 |
-
|
47 |
-
|
48 |
-
|
49 |
-
|
50 |
-
|
51 |
-
|
52 |
-
|
53 |
-
|
54 |
-
|
55 |
-
|
56 |
-
|
57 |
-
|
58 |
-
|
59 |
-
|
60 |
-
|
61 |
-
|
62 |
-
|
63 |
-
|
64 |
-
|
65 |
-
|
66 |
-
|
67 |
-
|
68 |
-
|
69 |
-
|
70 |
-
|
71 |
-
|
72 |
-
|
73 |
-
|
74 |
-
|
75 |
-
|
76 |
-
|
77 |
-
|
78 |
-
|
79 |
-
|
80 |
-
|
81 |
-
|
82 |
-
|
83 |
-
|
84 |
-
|
85 |
-
|
86 |
-
|
87 |
-
|
88 |
-
|
89 |
-
|
90 |
-
|
91 |
-
|
92 |
-
|
93 |
-
|
94 |
-
|
95 |
-
|
96 |
-
|
97 |
-
|
98 |
-
|
99 |
-
|
100 |
-
|
101 |
-
|
102 |
-
|
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 |
-
|
134 |
-
|
135 |
-
|
136 |
-
|
137 |
-
|
138 |
-
|
139 |
-
|
140 |
-
|
141 |
-
|
142 |
-
|
143 |
-
|
144 |
-
|
145 |
-
|
146 |
-
|
147 |
-
|
148 |
-
|
149 |
-
|
150 |
-
|
151 |
-
|
152 |
-
|
153 |
-
|
154 |
-
|
155 |
-
|
156 |
-
|
157 |
-
|
158 |
-
}
|
159 |
-
}
|
1 |
+
<?php
|
2 |
+
/*
|
3 |
+
* Copyright 2014 Google Inc.
|
4 |
+
*
|
5 |
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
6 |
+
* you may not use this file except in compliance with the License.
|
7 |
+
* You may obtain a copy of the License at
|
8 |
+
*
|
9 |
+
* https://www.apache.org/licenses/LICENSE-2.0
|
10 |
+
*
|
11 |
+
* Unless required by applicable law or agreed to in writing, software
|
12 |
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
13 |
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
14 |
+
* See the License for the specific language governing permissions and
|
15 |
+
* limitations under the License.
|
16 |
+
*/
|
17 |
+
|
18 |
+
/**
|
19 |
+
* Curl based implementation of GoogleGAL_IO.
|
20 |
+
*
|
21 |
+
* @author Stuart Langley <slangley@google.com>
|
22 |
+
*/
|
23 |
+
|
24 |
+
require_once realpath( dirname( __FILE__ ) . '/../../../autoload.php' );
|
25 |
+
|
26 |
+
class GoogleGAL_IO_Curl extends GoogleGAL_IO_Abstract {
|
27 |
+
|
28 |
+
// cURL hex representation of version 7.30.0
|
29 |
+
const NO_QUIRK_VERSION = 0x071E00;
|
30 |
+
|
31 |
+
private $options = array();
|
32 |
+
/**
|
33 |
+
* Execute an HTTP Request
|
34 |
+
*
|
35 |
+
* @param GoogleGAL_HttpRequest $request the http request to be executed
|
36 |
+
* @return GoogleGAL_HttpRequest http request with the response http code,
|
37 |
+
* response headers and response body filled in
|
38 |
+
* @throws GoogleGAL_IO_Exception on curl or IO error
|
39 |
+
*/
|
40 |
+
public function executeRequest( GoogleGAL_Http_Request $request ) {
|
41 |
+
$curl = curl_init();
|
42 |
+
|
43 |
+
if ( $request->getPostBody() ) {
|
44 |
+
curl_setopt( $curl, CURLOPT_POSTFIELDS, $request->getPostBody() );
|
45 |
+
}
|
46 |
+
|
47 |
+
$requestHeaders = $request->getRequestHeaders();
|
48 |
+
if ( $requestHeaders && is_array( $requestHeaders ) ) {
|
49 |
+
$curlHeaders = array();
|
50 |
+
foreach ( $requestHeaders as $k => $v ) {
|
51 |
+
$curlHeaders[] = "$k: $v";
|
52 |
+
}
|
53 |
+
curl_setopt( $curl, CURLOPT_HTTPHEADER, $curlHeaders );
|
54 |
+
}
|
55 |
+
curl_setopt( $curl, CURLOPT_URL, $request->getUrl() );
|
56 |
+
|
57 |
+
curl_setopt( $curl, CURLOPT_CUSTOMREQUEST, $request->getRequestMethod() );
|
58 |
+
curl_setopt( $curl, CURLOPT_USERAGENT, $request->getUserAgent() );
|
59 |
+
|
60 |
+
curl_setopt( $curl, CURLOPT_FOLLOWLOCATION, false );
|
61 |
+
curl_setopt( $curl, CURLOPT_SSL_VERIFYPEER, true );
|
62 |
+
// 1 is CURL_SSLVERSION_TLSv1, which is not always defined in PHP.
|
63 |
+
curl_setopt( $curl, CURLOPT_SSLVERSION, 1 );
|
64 |
+
curl_setopt( $curl, CURLOPT_RETURNTRANSFER, true );
|
65 |
+
curl_setopt( $curl, CURLOPT_HEADER, true );
|
66 |
+
|
67 |
+
if ( $request->canGzip() ) {
|
68 |
+
curl_setopt( $curl, CURLOPT_ENCODING, 'gzip,deflate' );
|
69 |
+
}
|
70 |
+
|
71 |
+
foreach ( $this->options as $key => $var ) {
|
72 |
+
curl_setopt( $curl, $key, $var );
|
73 |
+
}
|
74 |
+
|
75 |
+
if ( ! isset( $this->options[ CURLOPT_CAINFO ] ) ) {
|
76 |
+
curl_setopt( $curl, CURLOPT_CAINFO, dirname( __FILE__ ) . '/cacerts.pem' );
|
77 |
+
}
|
78 |
+
|
79 |
+
$this->client->getLogger()->debug(
|
80 |
+
'cURL request',
|
81 |
+
array(
|
82 |
+
'url' => $request->getUrl(),
|
83 |
+
'method' => $request->getRequestMethod(),
|
84 |
+
'headers' => $requestHeaders,
|
85 |
+
'body' => $request->getPostBody(),
|
86 |
+
)
|
87 |
+
);
|
88 |
+
|
89 |
+
$response = curl_exec( $curl );
|
90 |
+
if ( $response === false ) {
|
91 |
+
$error = curl_error( $curl );
|
92 |
+
|
93 |
+
$this->client->getLogger()->error( 'cURL ' . $error );
|
94 |
+
throw new GoogleGAL_IO_Exception( $error );
|
95 |
+
}
|
96 |
+
$headerSize = curl_getinfo( $curl, CURLINFO_HEADER_SIZE );
|
97 |
+
|
98 |
+
list($responseHeaders, $responseBody) = $this->parseHttpResponse( $response, $headerSize );
|
99 |
+
$responseCode = curl_getinfo( $curl, CURLINFO_HTTP_CODE );
|
100 |
+
|
101 |
+
$this->client->getLogger()->debug(
|
102 |
+
'cURL response',
|
103 |
+
array(
|
104 |
+
'code' => $responseCode,
|
105 |
+
'headers' => $responseHeaders,
|
106 |
+
'body' => $responseBody,
|
107 |
+
)
|
108 |
+
);
|
109 |
+
|
110 |
+
return array( $responseBody, $responseHeaders, $responseCode );
|
111 |
+
}
|
112 |
+
|
113 |
+
/**
|
114 |
+
* Set options that update the transport implementation's behavior.
|
115 |
+
*
|
116 |
+
* @param $options
|
117 |
+
*/
|
118 |
+
public function setOptions( $options ) {
|
119 |
+
$this->options = $options + $this->options;
|
120 |
+
}
|
121 |
+
|
122 |
+
/**
|
123 |
+
* Set the maximum request time in seconds.
|
124 |
+
*
|
125 |
+
* @param $timeout in seconds
|
126 |
+
*/
|
127 |
+
public function setTimeout( $timeout ) {
|
128 |
+
// Since this timeout is really for putting a bound on the time
|
129 |
+
// we'll set them both to the same. If you need to specify a longer
|
130 |
+
// CURLOPT_TIMEOUT, or a tigher CONNECTTIMEOUT, the best thing to
|
131 |
+
// do is use the setOptions method for the values individually.
|
132 |
+
$this->options[ CURLOPT_CONNECTTIMEOUT ] = $timeout;
|
133 |
+
$this->options[ CURLOPT_TIMEOUT ] = $timeout;
|
134 |
+
}
|
135 |
+
|
136 |
+
/**
|
137 |
+
* Get the maximum request time in seconds.
|
138 |
+
*
|
139 |
+
* @return timeout in seconds
|
140 |
+
*/
|
141 |
+
public function getTimeout() {
|
142 |
+
return $this->options[ CURLOPT_TIMEOUT ];
|
143 |
+
}
|
144 |
+
|
145 |
+
/**
|
146 |
+
* Test for the presence of a cURL header processing bug
|
147 |
+
*
|
148 |
+
* {@inheritDoc}
|
149 |
+
*
|
150 |
+
* @return boolean
|
151 |
+
*/
|
152 |
+
protected function needsQuirk() {
|
153 |
+
$ver = curl_version();
|
154 |
+
$versionNum = $ver['version_number'];
|
155 |
+
return $versionNum < self::NO_QUIRK_VERSION;
|
156 |
+
}
|
157 |
+
}
|
|
|
|
core/Google/IO/DebugVersionOfCurl.php
CHANGED
@@ -1,155 +1,153 @@
|
|
1 |
-
<?php
|
2 |
-
/*
|
3 |
-
* Copyright 2014 Google Inc.
|
4 |
-
*
|
5 |
-
* Licensed under the Apache License, Version 2.0 (the "License");
|
6 |
-
* you may not use this file except in compliance with the License.
|
7 |
-
* You may obtain a copy of the License at
|
8 |
-
*
|
9 |
-
* https://www.apache.org/licenses/LICENSE-2.0
|
10 |
-
*
|
11 |
-
* Unless required by applicable law or agreed to in writing, software
|
12 |
-
* distributed under the License is distributed on an "AS IS" BASIS,
|
13 |
-
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
14 |
-
* See the License for the specific language governing permissions and
|
15 |
-
* limitations under the License.
|
16 |
-
*/
|
17 |
-
|
18 |
-
/**
|
19 |
-
* Curl based implementation of GoogleGAL_IO.
|
20 |
-
*
|
21 |
-
* @author Stuart Langley <slangley@google.com>
|
22 |
-
*/
|
23 |
-
|
24 |
-
require_once 'Google/IO/Abstract.php';
|
25 |
-
|
26 |
-
class GoogleGAL_IO_Curl extends GoogleGAL_IO_Abstract
|
27 |
-
|
28 |
-
|
29 |
-
|
30 |
-
|
31 |
-
|
32 |
-
|
33 |
-
|
34 |
-
|
35 |
-
|
36 |
-
|
37 |
-
|
38 |
-
|
39 |
-
|
40 |
-
|
41 |
-
|
42 |
-
|
43 |
-
|
44 |
-
|
45 |
-
|
46 |
-
|
47 |
-
|
48 |
-
|
49 |
-
|
50 |
-
|
51 |
-
|
52 |
-
|
53 |
-
|
54 |
-
|
55 |
-
|
56 |
-
|
57 |
-
|
58 |
-
|
59 |
-
|
60 |
-
|
61 |
-
|
62 |
-
|
63 |
-
|
64 |
-
|
65 |
-
|
66 |
-
|
67 |
-
|
68 |
-
|
69 |
-
|
70 |
-
|
71 |
-
|
72 |
-
|
73 |
-
|
74 |
-
|
75 |
-
|
76 |
-
|
77 |
-
|
78 |
-
|
79 |
-
|
80 |
-
|
81 |
-
|
82 |
-
|
83 |
-
|
84 |
-
|
85 |
-
|
86 |
-
|
87 |
-
|
88 |
-
|
89 |
-
|
90 |
-
|
91 |
-
|
92 |
-
|
93 |
-
|
94 |
-
|
95 |
-
|
96 |
-
|
97 |
-
|
98 |
-
|
99 |
-
|
100 |
-
|
101 |
-
|
102 |
-
|
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 |
-
|
134 |
-
|
135 |
-
|
136 |
-
|
137 |
-
|
138 |
-
|
139 |
-
|
140 |
-
|
141 |
-
|
142 |
-
|
143 |
-
|
144 |
-
|
145 |
-
|
146 |
-
|
147 |
-
|
148 |
-
|
149 |
-
|
150 |
-
|
151 |
-
|
152 |
-
|
153 |
-
|
154 |
-
}
|
155 |
-
}
|
1 |
+
<?php
|
2 |
+
/*
|
3 |
+
* Copyright 2014 Google Inc.
|
4 |
+
*
|
5 |
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
6 |
+
* you may not use this file except in compliance with the License.
|
7 |
+
* You may obtain a copy of the License at
|
8 |
+
*
|
9 |
+
* https://www.apache.org/licenses/LICENSE-2.0
|
10 |
+
*
|
11 |
+
* Unless required by applicable law or agreed to in writing, software
|
12 |
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
13 |
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
14 |
+
* See the License for the specific language governing permissions and
|
15 |
+
* limitations under the License.
|
16 |
+
*/
|
17 |
+
|
18 |
+
/**
|
19 |
+
* Curl based implementation of GoogleGAL_IO.
|
20 |
+
*
|
21 |
+
* @author Stuart Langley <slangley@google.com>
|
22 |
+
*/
|
23 |
+
|
24 |
+
require_once 'Google/IO/Abstract.php';
|
25 |
+
|
26 |
+
class GoogleGAL_IO_Curl extends GoogleGAL_IO_Abstract {
|
27 |
+
|
28 |
+
// cURL hex representation of version 7.30.0
|
29 |
+
const NO_QUIRK_VERSION = 0x071E00;
|
30 |
+
|
31 |
+
private $options = array();
|
32 |
+
/**
|
33 |
+
* Execute an HTTP Request
|
34 |
+
*
|
35 |
+
* @param GoogleGAL_HttpRequest $request the http request to be executed
|
36 |
+
* @return GoogleGAL_HttpRequest http request with the response http code,
|
37 |
+
* response headers and response body filled in
|
38 |
+
* @throws GoogleGAL_IO_Exception on curl or IO error
|
39 |
+
*/
|
40 |
+
public function executeRequest( GoogleGAL_Http_Request $request ) {
|
41 |
+
$curl = curl_init();
|
42 |
+
|
43 |
+
if ( $request->getPostBody() ) {
|
44 |
+
curl_setopt( $curl, CURLOPT_POSTFIELDS, $request->getPostBody() );
|
45 |
+
}
|
46 |
+
|
47 |
+
$requestHeaders = $request->getRequestHeaders();
|
48 |
+
if ( $requestHeaders && is_array( $requestHeaders ) ) {
|
49 |
+
$curlHeaders = array();
|
50 |
+
foreach ( $requestHeaders as $k => $v ) {
|
51 |
+
$curlHeaders[] = "$k: $v";
|
52 |
+
}
|
53 |
+
curl_setopt( $curl, CURLOPT_HTTPHEADER, $curlHeaders );
|
54 |
+
}
|
55 |
+
|
56 |
+
curl_setopt( $curl, CURLOPT_URL, $request->getUrl() );
|
57 |
+
|
58 |
+
curl_setopt( $curl, CURLOPT_CUSTOMREQUEST, $request->getRequestMethod() );
|
59 |
+
curl_setopt( $curl, CURLOPT_USERAGENT, $request->getUserAgent() );
|
60 |
+
|
61 |
+
curl_setopt( $curl, CURLOPT_FOLLOWLOCATION, false );
|
62 |
+
curl_setopt( $curl, CURLOPT_SSL_VERIFYPEER, true );
|
63 |
+
curl_setopt( $curl, CURLOPT_RETURNTRANSFER, true );
|
64 |
+
curl_setopt( $curl, CURLOPT_HEADER, true );
|
65 |
+
|
66 |
+
// Log request
|
67 |
+
curl_setopt( $curl, CURLOPT_VERBOSE, true );
|
68 |
+
$verbose = fopen( dirname( __FILE__ ) . '/../../../../../curloutput.log', 'a+' );
|
69 |
+
curl_setopt( $curl, CURLOPT_STDERR, $verbose );
|
70 |
+
// Log request
|
71 |
+
|
72 |
+
if ( $request->canGzip() ) {
|
73 |
+
curl_setopt( $curl, CURLOPT_ENCODING, 'gzip,deflate' );
|
74 |
+
}
|
75 |
+
|
76 |
+
foreach ( $this->options as $key => $var ) {
|
77 |
+
curl_setopt( $curl, $key, $var );
|
78 |
+
}
|
79 |
+
|
80 |
+
if ( ! isset( $this->options[ CURLOPT_CAINFO ] ) ) {
|
81 |
+
curl_setopt( $curl, CURLOPT_CAINFO, dirname( __FILE__ ) . '/cacerts.pem' );
|
82 |
+
}
|
83 |
+
|
84 |
+
// Log request
|
85 |
+
fwrite( $verbose, "--- Request Body --- \n\r" );
|
86 |
+
fwrite( $verbose, $request->getPostBody() );
|
87 |
+
fwrite( $verbose, "\n\r" );
|
88 |
+
// Log request
|
89 |
+
|
90 |
+
$response = curl_exec( $curl );
|
91 |
+
if ( $response === false ) {
|
92 |
+
throw new GoogleGAL_IO_Exception( curl_error( $curl ) );
|
93 |
+
}
|
94 |
+
$headerSize = curl_getinfo( $curl, CURLINFO_HEADER_SIZE );
|
95 |
+
|
96 |
+
list($responseHeaders, $responseBody) = $this->parseHttpResponse( $response, $headerSize );
|
97 |
+
|
98 |
+
// Log request
|
99 |
+
fwrite( $verbose, "--- Response Body --- \n\r" );
|
100 |
+
fwrite( $verbose, $responseBody );
|
101 |
+
fwrite( $verbose, "\n\r" );
|
102 |
+
// Log request
|
103 |
+
|
104 |
+
$responseCode = curl_getinfo( $curl, CURLINFO_HTTP_CODE );
|
105 |
+
|
106 |
+
return array( $responseBody, $responseHeaders, $responseCode );
|
107 |
+
}
|
108 |
+
|
109 |
+
/**
|
110 |
+
* Set options that update the transport implementation's behavior.
|
111 |
+
*
|
112 |
+
* @param $options
|
113 |
+
*/
|
114 |
+
public function setOptions( $options ) {
|
115 |
+
$this->options = $options + $this->options;
|
116 |
+
}
|
117 |
+
|
118 |
+
/**
|
119 |
+
* Set the maximum request time in seconds.
|
120 |
+
*
|
121 |
+
* @param $timeout in seconds
|
122 |
+
*/
|
123 |
+
public function setTimeout( $timeout ) {
|
124 |
+
// Since this timeout is really for putting a bound on the time
|
125 |
+
// we'll set them both to the same. If you need to specify a longer
|
126 |
+
// CURLOPT_TIMEOUT, or a tigher CONNECTTIMEOUT, the best thing to
|
127 |
+
// do is use the setOptions method for the values individually.
|
128 |
+
$this->options[ CURLOPT_CONNECTTIMEOUT ] = $timeout;
|
129 |
+
$this->options[ CURLOPT_TIMEOUT ] = $timeout;
|
130 |
+
}
|
131 |
+
|
132 |
+
/**
|
133 |
+
* Get the maximum request time in seconds.
|
134 |
+
*
|
135 |
+
* @return timeout in seconds
|
136 |
+
*/
|
137 |
+
public function getTimeout() {
|
138 |
+
return $this->options[ CURLOPT_TIMEOUT ];
|
139 |
+
}
|
140 |
+
|
141 |
+
/**
|
142 |
+
* Test for the presence of a cURL header processing bug
|
143 |
+
*
|
144 |
+
* {@inheritDoc}
|
145 |
+
*
|
146 |
+
* @return boolean
|
147 |
+
*/
|
148 |
+
protected function needsQuirk() {
|
149 |
+
$ver = curl_version();
|
150 |
+
$versionNum = $ver['version_number'];
|
151 |
+
return $versionNum < self::NO_QUIRK_VERSION;
|
152 |
+
}
|
153 |
+
}
|
|
|
|
core/Google/IO/Exception.php
CHANGED
@@ -1,22 +1,22 @@
|
|
1 |
-
<?php
|
2 |
-
/*
|
3 |
-
* Copyright 2013 Google Inc.
|
4 |
-
*
|
5 |
-
* Licensed under the Apache License, Version 2.0 (the "License");
|
6 |
-
* you may not use this file except in compliance with the License.
|
7 |
-
* You may obtain a copy of the License at
|
8 |
-
*
|
9 |
-
* https://www.apache.org/licenses/LICENSE-2.0
|
10 |
-
*
|
11 |
-
* Unless required by applicable law or agreed to in writing, software
|
12 |
-
* distributed under the License is distributed on an "AS IS" BASIS,
|
13 |
-
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
14 |
-
* See the License for the specific language governing permissions and
|
15 |
-
* limitations under the License.
|
16 |
-
*/
|
17 |
-
|
18 |
-
require_once realpath(dirname(__FILE__) . '/../../../autoload.php');
|
19 |
-
|
20 |
-
class GoogleGAL_IO_Exception extends GoogleGAL_Exception
|
21 |
-
|
22 |
-
}
|
1 |
+
<?php
|
2 |
+
/*
|
3 |
+
* Copyright 2013 Google Inc.
|
4 |
+
*
|
5 |
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
6 |
+
* you may not use this file except in compliance with the License.
|
7 |
+
* You may obtain a copy of the License at
|
8 |
+
*
|
9 |
+
* https://www.apache.org/licenses/LICENSE-2.0
|
10 |
+
*
|
11 |
+
* Unless required by applicable law or agreed to in writing, software
|
12 |
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
13 |
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
14 |
+
* See the License for the specific language governing permissions and
|
15 |
+
* limitations under the License.
|
16 |
+
*/
|
17 |
+
|
18 |
+
require_once realpath( dirname( __FILE__ ) . '/../../../autoload.php' );
|
19 |
+
|
20 |
+
class GoogleGAL_IO_Exception extends GoogleGAL_Exception {
|
21 |
+
|
22 |
+
}
|
core/Google/IO/Stream.php
CHANGED
@@ -1,230 +1,226 @@
|
|
1 |
-
<?php
|
2 |
-
/*
|
3 |
-
* Copyright 2013 Google Inc.
|
4 |
-
*
|
5 |
-
* Licensed under the Apache License, Version 2.0 (the "License");
|
6 |
-
* you may not use this file except in compliance with the License.
|
7 |
-
* You may obtain a copy of the License at
|
8 |
-
*
|
9 |
-
* https://www.apache.org/licenses/LICENSE-2.0
|
10 |
-
*
|
11 |
-
* Unless required by applicable law or agreed to in writing, software
|
12 |
-
* distributed under the License is distributed on an "AS IS" BASIS,
|
13 |
-
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
14 |
-
* See the License for the specific language governing permissions and
|
15 |
-
* limitations under the License.
|
16 |
-
*/
|
17 |
-
|
18 |
-
/**
|
19 |
-
* Http Streams based implementation of GoogleGAL_IO.
|
20 |
-
*
|
21 |
-
* @author Stuart Langley <slangley@google.com>
|
22 |
-
*/
|
23 |
-
|
24 |
-
require_once realpath(dirname(__FILE__) . '/../../../autoload.php');
|
25 |
-
|
26 |
-
class GoogleGAL_IO_Stream extends GoogleGAL_IO_Abstract
|
27 |
-
|
28 |
-
|
29 |
-
|
30 |
-
|
31 |
-
|
32 |
-
|
33 |
-
|
34 |
-
|
35 |
-
|
36 |
-
|
37 |
-
|
38 |
-
|
39 |
-
|
40 |
-
|
41 |
-
|
42 |
-
|
43 |
-
|
44 |
-
|
45 |
-
|
46 |
-
|
47 |
-
|
48 |
-
|
49 |
-
|
50 |
-
|
51 |
-
|
52 |
-
|
53 |
-
|
54 |
-
|
55 |
-
|
56 |
-
|
57 |
-
|
58 |
-
|
59 |
-
|
60 |
-
|
61 |
-
|
62 |
-
|
63 |
-
|
64 |
-
|
65 |
-
|
66 |
-
|
67 |
-
|
68 |
-
|
69 |
-
|
70 |
-
|
71 |
-
|
72 |
-
|
73 |
-
|
74 |
-
|
75 |
-
|
76 |
-
|
77 |
-
|
78 |
-
|
79 |
-
|
80 |
-
|
81 |
-
|
82 |
-
|
83 |
-
|
84 |
-
|
85 |
-
|
86 |
-
|
87 |
-
|
88 |
-
|
89 |
-
|
90 |
-
|
91 |
-
|
92 |
-
|
93 |
-
|
94 |
-
|
95 |
-
|
96 |
-
|
97 |
-
|
98 |
-
|
99 |
-
|
100 |
-
|
101 |
-
|
102 |
-
|
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 |
-
|
134 |
-
|
135 |
-
|
136 |
-
|
137 |
-
|
138 |
-
|
139 |
-
|
140 |
-
|
141 |
-
|
142 |
-
|
143 |
-
|
144 |
-
|
145 |
-
|
146 |
-
|
147 |
-
|
148 |
-
|
149 |
-
|
150 |
-
|
151 |
-
|
152 |
-
|
153 |
-
|
154 |
-
|
155 |
-
|
156 |
-
|
157 |
-
|
158 |
-
|
159 |
-
|
160 |
-
|
161 |
-
|
162 |
-
|
163 |
-
|
164 |
-
|
165 |
-
|
166 |
-
|
167 |
-
|
168 |
-
|
169 |
-
|
170 |
-
|
171 |
-
|
172 |
-
|
173 |
-
|
174 |
-
|
175 |
-
|
176 |
-
|
177 |
-
|
178 |
-
|
179 |
-
|
180 |
-
|
181 |
-
|
182 |
-
|
183 |
-
|
184 |
-
|
185 |
-
|
186 |
-
|
187 |
-
|
188 |
-
|
189 |
-
|
190 |
-
|
191 |
-
|
192 |
-
|
193 |
-
|
194 |
-
|
195 |
-
|
196 |
-
|
197 |
-
|
198 |
-
|
199 |
-
|
200 |
-
|
201 |
-
|
202 |
-
|
203 |
-
|
204 |
-
|
205 |
-
|
206 |
-
|
207 |
-
|
208 |
-
|
209 |
-
|
210 |
-
|
211 |
-
|
212 |
-
|
213 |
-
|
214 |
-
|
215 |
-
|
216 |
-
|
217 |
-
|
218 |
-
|
219 |
-
|
220 |
-
|
221 |
-
|
222 |
-
|
223 |
-
|
224 |
-
|
225 |
-
|
226 |
-
|
227 |
-
}
|
228 |
-
return self::UNKNOWN_CODE;
|
229 |
-
}
|
230 |
-
}
|
1 |
+
<?php
|
2 |
+
/*
|
3 |
+
* Copyright 2013 Google Inc.
|
4 |
+
*
|
5 |
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
6 |
+
* you may not use this file except in compliance with the License.
|
7 |
+
* You may obtain a copy of the License at
|
8 |
+
*
|
9 |
+
* https://www.apache.org/licenses/LICENSE-2.0
|
10 |
+
*
|
11 |
+
* Unless required by applicable law or agreed to in writing, software
|
12 |
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
13 |
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
14 |
+
* See the License for the specific language governing permissions and
|
15 |
+
* limitations under the License.
|
16 |
+
*/
|
17 |
+
|
18 |
+
/**
|
19 |
+
* Http Streams based implementation of GoogleGAL_IO.
|
20 |
+
*
|
21 |
+
* @author Stuart Langley <slangley@google.com>
|
22 |
+
*/
|
23 |
+
|
24 |
+
require_once realpath( dirname( __FILE__ ) . '/../../../autoload.php' );
|
25 |
+
|
26 |
+
class GoogleGAL_IO_Stream extends GoogleGAL_IO_Abstract {
|
27 |
+
|
28 |
+
const TIMEOUT = 'timeout';
|
29 |
+
const ZLIB = 'compress.zlib://';
|
30 |
+
private $options = array();
|
31 |
+
private $trappedErrorNumber;
|
32 |
+
private $trappedErrorString;
|
33 |
+
|
34 |
+
private static $DEFAULT_HTTP_CONTEXT = array(
|
35 |
+
'follow_location' => 0,
|
36 |
+
'ignore_errors' => 1,
|
37 |
+
);
|
38 |
+
|
39 |
+
private static $DEFAULT_SSL_CONTEXT = array(
|
40 |
+
'verify_peer' => true,
|
41 |
+
);
|
42 |
+
|
43 |
+
/**
|
44 |
+
* Execute an HTTP Request
|
45 |
+
*
|
46 |
+
* @param GoogleGAL_HttpRequest $request the http request to be executed
|
47 |
+
* @return GoogleGAL_HttpRequest http request with the response http code,
|
48 |
+
* response headers and response body filled in
|
49 |
+
* @throws GoogleGAL_IO_Exception on curl or IO error
|
50 |
+
*/
|
51 |
+
public function executeRequest( GoogleGAL_Http_Request $request ) {
|
52 |
+
$default_options = stream_context_get_options( stream_context_get_default() );
|
53 |
+
|
54 |
+
$requestHttpContext = array_key_exists( 'http', $default_options ) ?
|
55 |
+
$default_options['http'] : array();
|
56 |
+
|
57 |
+
if ( $request->getPostBody() ) {
|
58 |
+
$requestHttpContext['content'] = $request->getPostBody();
|
59 |
+
}
|
60 |
+
|
61 |
+
$requestHeaders = $request->getRequestHeaders();
|
62 |
+
if ( $requestHeaders && is_array( $requestHeaders ) ) {
|
63 |
+
$headers = '';
|
64 |
+
foreach ( $requestHeaders as $k => $v ) {
|
65 |
+
$headers .= "$k: $v\r\n";
|
66 |
+
}
|
67 |
+
$requestHttpContext['header'] = $headers;
|
68 |
+
}
|
69 |
+
|
70 |
+
$requestHttpContext['method'] = $request->getRequestMethod();
|
71 |
+
$requestHttpContext['user_agent'] = $request->getUserAgent();
|
72 |
+
|
73 |
+
$requestSslContext = array_key_exists( 'ssl', $default_options ) ?
|
74 |
+
$default_options['ssl'] : array();
|
75 |
+
|
76 |
+
if ( ! array_key_exists( 'cafile', $requestSslContext ) ) {
|
77 |
+
$requestSslContext['cafile'] = dirname( __FILE__ ) . '/cacerts.pem';
|
78 |
+
}
|
79 |
+
|
80 |
+
$options = array(
|
81 |
+
'http' => array_merge(
|
82 |
+
self::$DEFAULT_HTTP_CONTEXT,
|
83 |
+
$requestHttpContext
|
84 |
+
),
|
85 |
+
'ssl' => array_merge(
|
86 |
+
self::$DEFAULT_SSL_CONTEXT,
|
87 |
+
$requestSslContext
|
88 |
+
),
|
89 |
+
);
|
90 |
+
|
91 |
+
$context = stream_context_create( $options );
|
92 |
+
|
93 |
+
$url = $request->getUrl();
|
94 |
+
|
95 |
+
if ( $request->canGzip() ) {
|
96 |
+
$url = self::ZLIB . $url;
|
97 |
+
}
|
98 |
+
|
99 |
+
$this->client->getLogger()->debug(
|
100 |
+
'Stream request',
|
101 |
+
array(
|
102 |
+
'url' => $url,
|
103 |
+
'method' => $request->getRequestMethod(),
|
104 |
+
'headers' => $requestHeaders,
|
105 |
+
'body' => $request->getPostBody(),
|
106 |
+
)
|
107 |
+
);
|
108 |
+
|
109 |
+
// We are trapping any thrown errors in this method only and
|
110 |
+
// throwing an exception.
|
111 |
+
$this->trappedErrorNumber = null;
|
112 |
+
$this->trappedErrorString = null;
|
113 |
+
|
114 |
+
// START - error trap.
|
115 |
+
set_error_handler( array( $this, 'trapError' ) );
|
116 |
+
$fh = fopen( $url, 'r', false, $context );
|
117 |
+
restore_error_handler();
|
118 |
+
// END - error trap.
|
119 |
+
|
120 |
+
if ( $this->trappedErrorNumber ) {
|
121 |
+
$error = sprintf(
|
122 |
+
"HTTP Error: Unable to connect: '%s'",
|
123 |
+
$this->trappedErrorString
|
124 |
+
);
|
125 |
+
|
126 |
+
$this->client->getLogger()->error( 'Stream ' . $error );
|
127 |
+
throw new GoogleGAL_IO_Exception( $error, $this->trappedErrorNumber );
|
128 |
+
}
|
129 |
+
|
130 |
+
$response_data = false;
|
131 |
+
$respHttpCode = self::UNKNOWN_CODE;
|
132 |
+
if ( $fh ) {
|
133 |
+
if ( isset( $this->options[ self::TIMEOUT ] ) ) {
|
134 |
+
stream_set_timeout( $fh, $this->options[ self::TIMEOUT ] );
|
135 |
+
}
|
136 |
+
|
137 |
+
$response_data = stream_get_contents( $fh );
|
138 |
+
fclose( $fh );
|
139 |
+
|
140 |
+
$respHttpCode = $this->getHttpResponseCode( $http_response_header );
|
141 |
+
}
|
142 |
+
|
143 |
+
if ( false === $response_data ) {
|
144 |
+
$error = sprintf(
|
145 |
+
"HTTP Error: Unable to connect: '%s'",
|
146 |
+
$respHttpCode
|
147 |
+
);
|
148 |
+
|
149 |
+
$this->client->getLogger()->error( 'Stream ' . $error );
|
150 |
+
throw new GoogleGAL_IO_Exception( $error, $respHttpCode );
|
151 |
+
}
|
152 |
+
|
153 |
+
$responseHeaders = $this->getHttpResponseHeaders( $http_response_header );
|
154 |
+
|
155 |
+
$this->client->getLogger()->debug(
|
156 |
+
'Stream response',
|
157 |
+
array(
|
158 |
+
'code' => $respHttpCode,
|
159 |
+
'headers' => $responseHeaders,
|
160 |
+
'body' => $response_data,
|
161 |
+
)
|
162 |
+
);
|
163 |
+
|
164 |
+
return array( $response_data, $responseHeaders, $respHttpCode );
|
165 |
+
}
|
166 |
+
|
167 |
+
/**
|
168 |
+
* Set options that update the transport implementation's behavior.
|
169 |
+
*
|
170 |
+
* @param $options
|
171 |
+
*/
|
172 |
+
public function setOptions( $options ) {
|
173 |
+
$this->options = $options + $this->options;
|
174 |
+
}
|
175 |
+
|
176 |
+
/**
|
177 |
+
* Method to handle errors, used for error handling around
|
178 |
+
* stream connection methods.
|
179 |
+
*/
|
180 |
+
public function trapError( $errno, $errstr ) {
|
181 |
+
$this->trappedErrorNumber = $errno;
|
182 |
+
$this->trappedErrorString = $errstr;
|
183 |
+
}
|
184 |
+
|
185 |
+
/**
|
186 |
+
* Set the maximum request time in seconds.
|
187 |
+
*
|
188 |
+
* @param $timeout in seconds
|
189 |
+
*/
|
190 |
+
public function setTimeout( $timeout ) {
|
191 |
+
$this->options[ self::TIMEOUT ] = $timeout;
|
192 |
+
}
|
193 |
+
|
194 |
+
/**
|
195 |
+
* Get the maximum request time in seconds.
|
196 |
+
*
|
197 |
+
* @return timeout in seconds
|
198 |
+
*/
|
199 |
+
public function getTimeout() {
|
200 |
+
return $this->options[ self::TIMEOUT ];
|
201 |
+
}
|
202 |
+
|
203 |
+
/**
|
204 |
+
* Test for the presence of a cURL header processing bug
|
205 |
+
*
|
206 |
+
* {@inheritDoc}
|
207 |
+
*
|
208 |
+
* @return boolean
|
209 |
+
*/
|
210 |
+
protected function needsQuirk() {
|
211 |
+
return false;
|
212 |
+
}
|
213 |
+
|
214 |
+
protected function getHttpResponseCode( $response_headers ) {
|
215 |
+
$header_count = count( $response_headers );
|
216 |
+
|
217 |
+
for ( $i = 0; $i < $header_count; $i++ ) {
|
218 |
+
$header = $response_headers[ $i ];
|
219 |
+
if ( strncasecmp( 'HTTP', $header, strlen( 'HTTP' ) ) == 0 ) {
|
220 |
+
$response = explode( ' ', $header );
|
221 |
+
return $response[1];
|
222 |
+
}
|
223 |
+
}
|
224 |
+
return self::UNKNOWN_CODE;
|
225 |
+
}
|
226 |
+
}
|
|
|
|
|
|
|
|
core/Google/IO/cacerts.pem
CHANGED
@@ -1,2183 +1,2183 @@
|
|
1 |
-
# Issuer: CN=GTE CyberTrust Global Root O=GTE Corporation OU=GTE CyberTrust Solutions, Inc.
|
2 |
-
# Subject: CN=GTE CyberTrust Global Root O=GTE Corporation OU=GTE CyberTrust Solutions, Inc.
|
3 |
-
# Label: "GTE CyberTrust Global Root"
|
4 |
-
# Serial: 421
|
5 |
-
# MD5 Fingerprint: ca:3d:d3:68:f1:03:5c:d0:32:fa:b8:2b:59:e8:5a:db
|
6 |
-
# SHA1 Fingerprint: 97:81:79:50:d8:1c:96:70:cc:34:d8:09:cf:79:44:31:36:7e:f4:74
|
7 |
-
# SHA256 Fingerprint: a5:31:25:18:8d:21:10:aa:96:4b:02:c7:b7:c6:da:32:03:17:08:94:e5:fb:71:ff:fb:66:67:d5:e6:81:0a:36
|
8 |
-
-----BEGIN CERTIFICATE-----
|
9 |
-
MIICWjCCAcMCAgGlMA0GCSqGSIb3DQEBBAUAMHUxCzAJBgNVBAYTAlVTMRgwFgYD
|
10 |
-
VQQKEw9HVEUgQ29ycG9yYXRpb24xJzAlBgNVBAsTHkdURSBDeWJlclRydXN0IFNv
|
11 |
-
bHV0aW9ucywgSW5jLjEjMCEGA1UEAxMaR1RFIEN5YmVyVHJ1c3QgR2xvYmFsIFJv
|
12 |
-
b3QwHhcNOTgwODEzMDAyOTAwWhcNMTgwODEzMjM1OTAwWjB1MQswCQYDVQQGEwJV
|
13 |
-
UzEYMBYGA1UEChMPR1RFIENvcnBvcmF0aW9uMScwJQYDVQQLEx5HVEUgQ3liZXJU
|
14 |
-
cnVzdCBTb2x1dGlvbnMsIEluYy4xIzAhBgNVBAMTGkdURSBDeWJlclRydXN0IEds
|
15 |
-
b2JhbCBSb290MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCVD6C28FCc6HrH
|
16 |
-
iM3dFw4usJTQGz0O9pTAipTHBsiQl8i4ZBp6fmw8U+E3KHNgf7KXUwefU/ltWJTS
|
17 |
-
r41tiGeA5u2ylc9yMcqlHHK6XALnZELn+aks1joNrI1CqiQBOeacPwGFVw1Yh0X4
|
18 |
-
04Wqk2kmhXBIgD8SFcd5tB8FLztimQIDAQABMA0GCSqGSIb3DQEBBAUAA4GBAG3r
|
19 |
-
GwnpXtlR22ciYaQqPEh346B8pt5zohQDhT37qw4wxYMWM4ETCJ57NE7fQMh017l9
|
20 |
-
3PR2VX2bY1QY6fDq81yx2YtCHrnAlU66+tXifPVoYb+O7AWXX1uw16OFNMQkpw0P
|
21 |
-
lZPvy5TYnh+dXIVtx6quTx8itc2VrbqnzPmrC3p/
|
22 |
-
-----END CERTIFICATE-----
|
23 |
-
|
24 |
-
# Issuer: CN=Thawte Server CA O=Thawte Consulting cc OU=Certification Services Division
|
25 |
-
# Subject: CN=Thawte Server CA O=Thawte Consulting cc OU=Certification Services Division
|
26 |
-
# Label: "Thawte Server CA"
|
27 |
-
# Serial: 1
|
28 |
-
# MD5 Fingerprint: c5:70:c4:a2:ed:53:78:0c:c8:10:53:81:64:cb:d0:1d
|
29 |
-
# SHA1 Fingerprint: 23:e5:94:94:51:95:f2:41:48:03:b4:d5:64:d2:a3:a3:f5:d8:8b:8c
|
30 |
-
# SHA256 Fingerprint: b4:41:0b:73:e2:e6:ea:ca:47:fb:c4:2f:8f:a4:01:8a:f4:38:1d:c5:4c:fa:a8:44:50:46:1e:ed:09:45:4d:e9
|
31 |
-
-----BEGIN CERTIFICATE-----
|
32 |
-
MIIDEzCCAnygAwIBAgIBATANBgkqhkiG9w0BAQQFADCBxDELMAkGA1UEBhMCWkEx
|
33 |
-
FTATBgNVBAgTDFdlc3Rlcm4gQ2FwZTESMBAGA1UEBxMJQ2FwZSBUb3duMR0wGwYD
|
34 |
-
VQQKExRUaGF3dGUgQ29uc3VsdGluZyBjYzEoMCYGA1UECxMfQ2VydGlmaWNhdGlv
|
35 |
-
biBTZXJ2aWNlcyBEaXZpc2lvbjEZMBcGA1UEAxMQVGhhd3RlIFNlcnZlciBDQTEm
|
36 |
-
MCQGCSqGSIb3DQEJARYXc2VydmVyLWNlcnRzQHRoYXd0ZS5jb20wHhcNOTYwODAx
|
37 |
-
MDAwMDAwWhcNMjAxMjMxMjM1OTU5WjCBxDELMAkGA1UEBhMCWkExFTATBgNVBAgT
|
38 |
-
DFdlc3Rlcm4gQ2FwZTESMBAGA1UEBxMJQ2FwZSBUb3duMR0wGwYDVQQKExRUaGF3
|
39 |
-
dGUgQ29uc3VsdGluZyBjYzEoMCYGA1UECxMfQ2VydGlmaWNhdGlvbiBTZXJ2aWNl
|
40 |
-
cyBEaXZpc2lvbjEZMBcGA1UEAxMQVGhhd3RlIFNlcnZlciBDQTEmMCQGCSqGSIb3
|
41 |
-
DQEJARYXc2VydmVyLWNlcnRzQHRoYXd0ZS5jb20wgZ8wDQYJKoZIhvcNAQEBBQAD
|
42 |
-
gY0AMIGJAoGBANOkUG7I/1Zr5s9dtuoMaHVHoqrC2oQl/Kj0R1HahbUgdJSGHg91
|
43 |
-
yekIYfUGbTBuFRkC6VLAYttNmZ7iagxEOM3+vuNkCXDF/rFrKbYvScg71CcEJRCX
|
44 |
-
L+eQbcAoQpnXTEPew/UhbVSfXcNY4cDk2VuwuNy0e982OsK1ZiIS1ocNAgMBAAGj
|
45 |
-
EzARMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQEEBQADgYEAB/pMaVz7lcxG
|
46 |
-
7oWDTSEwjsrZqG9JGubaUeNgcGyEYRGhGshIPllDfU+VPaGLtwtimHp1it2ITk6e
|
47 |
-
QNuozDJ0uW8NxuOzRAvZim+aKZuZGCg70eNAKJpaPNW15yAbi8qkq43pUdniTCxZ
|
48 |
-
qdq5snUb9kLy78fyGPmJvKP/iiMucEc=
|
49 |
-
-----END CERTIFICATE-----
|
50 |
-
|
51 |
-
# Issuer: CN=Thawte Premium Server CA O=Thawte Consulting cc OU=Certification Services Division
|
52 |
-
# Subject: CN=Thawte Premium Server CA O=Thawte Consulting cc OU=Certification Services Division
|
53 |
-
# Label: "Thawte Premium Server CA"
|
54 |
-
# Serial: 1
|
55 |
-
# MD5 Fingerprint: 06:9f:69:79:16:66:90:02:1b:8c:8c:a2:c3:07:6f:3a
|
56 |
-
# SHA1 Fingerprint: 62:7f:8d:78:27:65:63:99:d2:7d:7f:90:44:c9:fe:b3:f3:3e:fa:9a
|
57 |
-
# SHA256 Fingerprint: ab:70:36:36:5c:71:54:aa:29:c2:c2:9f:5d:41:91:16:3b:16:2a:22:25:01:13:57:d5:6d:07:ff:a7:bc:1f:72
|
58 |
-
-----BEGIN CERTIFICATE-----
|
59 |
-
MIIDJzCCApCgAwIBAgIBATANBgkqhkiG9w0BAQQFADCBzjELMAkGA1UEBhMCWkEx
|
60 |
-
FTATBgNVBAgTDFdlc3Rlcm4gQ2FwZTESMBAGA1UEBxMJQ2FwZSBUb3duMR0wGwYD
|
61 |
-
VQQKExRUaGF3dGUgQ29uc3VsdGluZyBjYzEoMCYGA1UECxMfQ2VydGlmaWNhdGlv
|
62 |
-
biBTZXJ2aWNlcyBEaXZpc2lvbjEhMB8GA1UEAxMYVGhhd3RlIFByZW1pdW0gU2Vy
|
63 |
-
dmVyIENBMSgwJgYJKoZIhvcNAQkBFhlwcmVtaXVtLXNlcnZlckB0aGF3dGUuY29t
|
64 |
-
MB4XDTk2MDgwMTAwMDAwMFoXDTIwMTIzMTIzNTk1OVowgc4xCzAJBgNVBAYTAlpB
|
65 |
-
MRUwEwYDVQQIEwxXZXN0ZXJuIENhcGUxEjAQBgNVBAcTCUNhcGUgVG93bjEdMBsG
|
66 |
-
A1UEChMUVGhhd3RlIENvbnN1bHRpbmcgY2MxKDAmBgNVBAsTH0NlcnRpZmljYXRp
|
67 |
-
b24gU2VydmljZXMgRGl2aXNpb24xITAfBgNVBAMTGFRoYXd0ZSBQcmVtaXVtIFNl
|
68 |
-
cnZlciBDQTEoMCYGCSqGSIb3DQEJARYZcHJlbWl1bS1zZXJ2ZXJAdGhhd3RlLmNv
|
69 |
-
bTCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEA0jY2aovXwlue2oFBYo847kkE
|
70 |
-
VdbQ7xwblRZH7xhINTpS9CtqBo87L+pW46+GjZ4X9560ZXUCTe/LCaIhUdib0GfQ
|
71 |
-
ug2SBhRz1JPLlyoAnFxODLz6FVL88kRu2hFKbgifLy3j+ao6hnO2RlNYyIkFvYMR
|
72 |
-
uHM/qgeN9EJN50CdHDcCAwEAAaMTMBEwDwYDVR0TAQH/BAUwAwEB/zANBgkqhkiG
|
73 |
-
9w0BAQQFAAOBgQAmSCwWwlj66BZ0DKqqX1Q/8tfJeGBeXm43YyJ3Nn6yF8Q0ufUI
|
74 |
-
hfzJATj/Tb7yFkJD57taRvvBxhEf8UqwKEbJw8RCfbz6q1lu1bdRiBHjpIUZa4JM
|
75 |
-
pAwSremkrj/xw0llmozFyD4lt5SZu5IycQfwhl7tUCemDaYj+bvLpgcUQg==
|
76 |
-
-----END CERTIFICATE-----
|
77 |
-
|
78 |
-
# Issuer: O=Equifax OU=Equifax Secure Certificate Authority
|
79 |
-
# Subject: O=Equifax OU=Equifax Secure Certificate Authority
|
80 |
-
# Label: "Equifax Secure CA"
|
81 |
-
# Serial: 903804111
|
82 |
-
# MD5 Fingerprint: 67:cb:9d:c0:13:24:8a:82:9b:b2:17:1e:d1:1b:ec:d4
|
83 |
-
# SHA1 Fingerprint: d2:32:09:ad:23:d3:14:23:21:74:e4:0d:7f:9d:62:13:97:86:63:3a
|
84 |
-
# SHA256 Fingerprint: 08:29:7a:40:47:db:a2:36:80:c7:31:db:6e:31:76:53:ca:78:48:e1:be:bd:3a:0b:01:79:a7:07:f9:2c:f1:78
|
85 |
-
-----BEGIN CERTIFICATE-----
|
86 |
-
MIIDIDCCAomgAwIBAgIENd70zzANBgkqhkiG9w0BAQUFADBOMQswCQYDVQQGEwJV
|
87 |
-
UzEQMA4GA1UEChMHRXF1aWZheDEtMCsGA1UECxMkRXF1aWZheCBTZWN1cmUgQ2Vy
|
88 |
-
dGlmaWNhdGUgQXV0aG9yaXR5MB4XDTk4MDgyMjE2NDE1MVoXDTE4MDgyMjE2NDE1
|
89 |
-
MVowTjELMAkGA1UEBhMCVVMxEDAOBgNVBAoTB0VxdWlmYXgxLTArBgNVBAsTJEVx
|
90 |
-
dWlmYXggU2VjdXJlIENlcnRpZmljYXRlIEF1dGhvcml0eTCBnzANBgkqhkiG9w0B
|
91 |
-
AQEFAAOBjQAwgYkCgYEAwV2xWGcIYu6gmi0fCG2RFGiYCh7+2gRvE4RiIcPRfM6f
|
92 |
-
BeC4AfBONOziipUEZKzxa1NfBbPLZ4C/QgKO/t0BCezhABRP/PvwDN1Dulsr4R+A
|
93 |
-
cJkVV5MW8Q+XarfCaCMczE1ZMKxRHjuvK9buY0V7xdlfUNLjUA86iOe/FP3gx7kC
|
94 |
-
AwEAAaOCAQkwggEFMHAGA1UdHwRpMGcwZaBjoGGkXzBdMQswCQYDVQQGEwJVUzEQ
|
95 |
-
MA4GA1UEChMHRXF1aWZheDEtMCsGA1UECxMkRXF1aWZheCBTZWN1cmUgQ2VydGlm
|
96 |
-
aWNhdGUgQXV0aG9yaXR5MQ0wCwYDVQQDEwRDUkwxMBoGA1UdEAQTMBGBDzIwMTgw
|
97 |
-
ODIyMTY0MTUxWjALBgNVHQ8EBAMCAQYwHwYDVR0jBBgwFoAUSOZo+SvSspXXR9gj
|
98 |
-
IBBPM5iQn9QwHQYDVR0OBBYEFEjmaPkr0rKV10fYIyAQTzOYkJ/UMAwGA1UdEwQF
|
99 |
-
MAMBAf8wGgYJKoZIhvZ9B0EABA0wCxsFVjMuMGMDAgbAMA0GCSqGSIb3DQEBBQUA
|
100 |
-
A4GBAFjOKer89961zgK5F7WF0bnj4JXMJTENAKaSbn+2kmOeUJXRmm/kEd5jhW6Y
|
101 |
-
7qj/WsjTVbJmcVfewCHrPSqnI0kBBIZCe/zuf6IWUrVnZ9NA2zsmWLIodz2uFHdh
|
102 |
-
1voqZiegDfqnc1zqcPGUIWVEX/r87yloqaKHee9570+sB3c4
|
103 |
-
-----END CERTIFICATE-----
|
104 |
-
|
105 |
-
# Issuer: O=VeriSign, Inc. OU=Class 3 Public Primary Certification Authority
|
106 |
-
# Subject: O=VeriSign, Inc. OU=Class 3 Public Primary Certification Authority
|
107 |
-
# Label: "Verisign Class 3 Public Primary Certification Authority"
|
108 |
-
# Serial: 149843929435818692848040365716851702463
|
109 |
-
# MD5 Fingerprint: 10:fc:63:5d:f6:26:3e:0d:f3:25:be:5f:79:cd:67:67
|
110 |
-
# SHA1 Fingerprint: 74:2c:31:92:e6:07:e4:24:eb:45:49:54:2b:e1:bb:c5:3e:61:74:e2
|
111 |
-
# SHA256 Fingerprint: e7:68:56:34:ef:ac:f6:9a:ce:93:9a:6b:25:5b:7b:4f:ab:ef:42:93:5b:50:a2:65:ac:b5:cb:60:27:e4:4e:70
|
112 |
-
-----BEGIN CERTIFICATE-----
|
113 |
-
MIICPDCCAaUCEHC65B0Q2Sk0tjjKewPMur8wDQYJKoZIhvcNAQECBQAwXzELMAkG
|
114 |
-
A1UEBhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMTcwNQYDVQQLEy5DbGFz
|
115 |
-
cyAzIFB1YmxpYyBQcmltYXJ5IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MB4XDTk2
|
116 |
-
MDEyOTAwMDAwMFoXDTI4MDgwMTIzNTk1OVowXzELMAkGA1UEBhMCVVMxFzAVBgNV
|
117 |
-
BAoTDlZlcmlTaWduLCBJbmMuMTcwNQYDVQQLEy5DbGFzcyAzIFB1YmxpYyBQcmlt
|
118 |
-
YXJ5IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MIGfMA0GCSqGSIb3DQEBAQUAA4GN
|
119 |
-
ADCBiQKBgQDJXFme8huKARS0EN8EQNvjV69qRUCPhAwL0TPZ2RHP7gJYHyX3KqhE
|
120 |
-
BarsAx94f56TuZoAqiN91qyFomNFx3InzPRMxnVx0jnvT0Lwdd8KkMaOIG+YD/is
|
121 |
-
I19wKTakyYbnsZogy1Olhec9vn2a/iRFM9x2Fe0PonFkTGUugWhFpwIDAQABMA0G
|
122 |
-
CSqGSIb3DQEBAgUAA4GBALtMEivPLCYATxQT3ab7/AoRhIzzKBxnki98tsX63/Do
|
123 |
-
lbwdj2wsqFHMc9ikwFPwTtYmwHYBV4GSXiHx0bH/59AhWM1pF+NEHJwZRDmJXNyc
|
124 |
-
AA9WjQKZ7aKQRUzkuxCkPfAyAw7xzvjoyVGM5mKf5p/AfbdynMk2OmufTqj/ZA1k
|
125 |
-
-----END CERTIFICATE-----
|
126 |
-
|
127 |
-
# Issuer: O=VeriSign, Inc. OU=Class 3 Public Primary Certification Authority - G2/(c) 1998 VeriSign, Inc. - For authorized use only/VeriSign Trust Network
|
128 |
-
# Subject: O=VeriSign, Inc. OU=Class 3 Public Primary Certification Authority - G2/(c) 1998 VeriSign, Inc. - For authorized use only/VeriSign Trust Network
|
129 |
-
# Label: "Verisign Class 3 Public Primary Certification Authority - G2"
|
130 |
-
# Serial: 167285380242319648451154478808036881606
|
131 |
-
# MD5 Fingerprint: a2:33:9b:4c:74:78:73:d4:6c:e7:c1:f3:8d:cb:5c:e9
|
132 |
-
# SHA1 Fingerprint: 85:37:1c:a6:e5:50:14:3d:ce:28:03:47:1b:de:3a:09:e8:f8:77:0f
|
133 |
-
# SHA256 Fingerprint: 83:ce:3c:12:29:68:8a:59:3d:48:5f:81:97:3c:0f:91:95:43:1e:da:37:cc:5e:36:43:0e:79:c7:a8:88:63:8b
|
134 |
-
-----BEGIN CERTIFICATE-----
|
135 |
-
MIIDAjCCAmsCEH3Z/gfPqB63EHln+6eJNMYwDQYJKoZIhvcNAQEFBQAwgcExCzAJ
|
136 |
-
BgNVBAYTAlVTMRcwFQYDVQQKEw5WZXJpU2lnbiwgSW5jLjE8MDoGA1UECxMzQ2xh
|
137 |
-
c3MgMyBQdWJsaWMgUHJpbWFyeSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSAtIEcy
|
138 |
-
MTowOAYDVQQLEzEoYykgMTk5OCBWZXJpU2lnbiwgSW5jLiAtIEZvciBhdXRob3Jp
|
139 |
-
emVkIHVzZSBvbmx5MR8wHQYDVQQLExZWZXJpU2lnbiBUcnVzdCBOZXR3b3JrMB4X
|
140 |
-
DTk4MDUxODAwMDAwMFoXDTI4MDgwMTIzNTk1OVowgcExCzAJBgNVBAYTAlVTMRcw
|
141 |
-
FQYDVQQKEw5WZXJpU2lnbiwgSW5jLjE8MDoGA1UECxMzQ2xhc3MgMyBQdWJsaWMg
|
142 |
-
UHJpbWFyeSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSAtIEcyMTowOAYDVQQLEzEo
|
143 |
-
YykgMTk5OCBWZXJpU2lnbiwgSW5jLiAtIEZvciBhdXRob3JpemVkIHVzZSBvbmx5
|
144 |
-
MR8wHQYDVQQLExZWZXJpU2lnbiBUcnVzdCBOZXR3b3JrMIGfMA0GCSqGSIb3DQEB
|
145 |
-
AQUAA4GNADCBiQKBgQDMXtERXVxp0KvTuWpMmR9ZmDCOFoUgRm1HP9SFIIThbbP4
|
146 |
-
pO0M8RcPO/mn+SXXwc+EY/J8Y8+iR/LGWzOOZEAEaMGAuWQcRXfH2G71lSk8UOg0
|
147 |
-
13gfqLptQ5GVj0VXXn7F+8qkBOvqlzdUMG+7AUcyM83cV5tkaWH4mx0ciU9cZwID
|
148 |
-
AQABMA0GCSqGSIb3DQEBBQUAA4GBAFFNzb5cy5gZnBWyATl4Lk0PZ3BwmcYQWpSk
|
149 |
-
U01UbSuvDV1Ai2TT1+7eVmGSX6bEHRBhNtMsJzzoKQm5EWR0zLVznxxIqbxhAe7i
|
150 |
-
F6YM40AIOw7n60RzKprxaZLvcRTDOaxxp5EJb+RxBrO6WVcmeQD2+A2iMzAo1KpY
|
151 |
-
oJ2daZH9
|
152 |
-
-----END CERTIFICATE-----
|
153 |
-
|
154 |
-
# Issuer: CN=GlobalSign Root CA O=GlobalSign nv-sa OU=Root CA
|
155 |
-
# Subject: CN=GlobalSign Root CA O=GlobalSign nv-sa OU=Root CA
|
156 |
-
# Label: "GlobalSign Root CA"
|
157 |
-
# Serial: 4835703278459707669005204
|
158 |
-
# MD5 Fingerprint: 3e:45:52:15:09:51:92:e1:b7:5d:37:9f:b1:87:29:8a
|
159 |
-
# SHA1 Fingerprint: b1:bc:96:8b:d4:f4:9d:62:2a:a8:9a:81:f2:15:01:52:a4:1d:82:9c
|
160 |
-
# SHA256 Fingerprint: eb:d4:10:40:e4:bb:3e:c7:42:c9:e3:81:d3:1e:f2:a4:1a:48:b6:68:5c:96:e7:ce:f3:c1:df:6c:d4:33:1c:99
|
161 |
-
-----BEGIN CERTIFICATE-----
|
162 |
-
MIIDdTCCAl2gAwIBAgILBAAAAAABFUtaw5QwDQYJKoZIhvcNAQEFBQAwVzELMAkG
|
163 |
-
A1UEBhMCQkUxGTAXBgNVBAoTEEdsb2JhbFNpZ24gbnYtc2ExEDAOBgNVBAsTB1Jv
|
164 |
-
b3QgQ0ExGzAZBgNVBAMTEkdsb2JhbFNpZ24gUm9vdCBDQTAeFw05ODA5MDExMjAw
|
165 |
-
MDBaFw0yODAxMjgxMjAwMDBaMFcxCzAJBgNVBAYTAkJFMRkwFwYDVQQKExBHbG9i
|
166 |
-
YWxTaWduIG52LXNhMRAwDgYDVQQLEwdSb290IENBMRswGQYDVQQDExJHbG9iYWxT
|
167 |
-
aWduIFJvb3QgQ0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDaDuaZ
|
168 |
-
jc6j40+Kfvvxi4Mla+pIH/EqsLmVEQS98GPR4mdmzxzdzxtIK+6NiY6arymAZavp
|
169 |
-
xy0Sy6scTHAHoT0KMM0VjU/43dSMUBUc71DuxC73/OlS8pF94G3VNTCOXkNz8kHp
|
170 |
-
1Wrjsok6Vjk4bwY8iGlbKk3Fp1S4bInMm/k8yuX9ifUSPJJ4ltbcdG6TRGHRjcdG
|
171 |
-
snUOhugZitVtbNV4FpWi6cgKOOvyJBNPc1STE4U6G7weNLWLBYy5d4ux2x8gkasJ
|
172 |
-
U26Qzns3dLlwR5EiUWMWea6xrkEmCMgZK9FGqkjWZCrXgzT/LCrBbBlDSgeF59N8
|
173 |
-
9iFo7+ryUp9/k5DPAgMBAAGjQjBAMA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMBAf8E
|
174 |
-
BTADAQH/MB0GA1UdDgQWBBRge2YaRQ2XyolQL30EzTSo//z9SzANBgkqhkiG9w0B
|
175 |
-
AQUFAAOCAQEA1nPnfE920I2/7LqivjTFKDK1fPxsnCwrvQmeU79rXqoRSLblCKOz
|
176 |
-
yj1hTdNGCbM+w6DjY1Ub8rrvrTnhQ7k4o+YviiY776BQVvnGCv04zcQLcFGUl5gE
|
177 |
-
38NflNUVyRRBnMRddWQVDf9VMOyGj/8N7yy5Y0b2qvzfvGn9LhJIZJrglfCm7ymP
|
178 |
-
AbEVtQwdpf5pLGkkeB6zpxxxYu7KyJesF12KwvhHhm4qxFYxldBniYUr+WymXUad
|
179 |
-
DKqC5JlR3XC321Y9YeRq4VzW9v493kHMB65jUr9TU/Qr6cf9tveCX4XSQRjbgbME
|
180 |
-
HMUfpIBvFSDJ3gyICh3WZlXi/EjJKSZp4A==
|
181 |
-
-----END CERTIFICATE-----
|
182 |
-
|
183 |
-
# Issuer: CN=GlobalSign O=GlobalSign OU=GlobalSign Root CA - R2
|
184 |
-
# Subject: CN=GlobalSign O=GlobalSign OU=GlobalSign Root CA - R2
|
185 |
-
# Label: "GlobalSign Root CA - R2"
|
186 |
-
# Serial: 4835703278459682885658125
|
187 |
-
# MD5 Fingerprint: 94:14:77:7e:3e:5e:fd:8f:30:bd:41:b0:cf:e7:d0:30
|
188 |
-
# SHA1 Fingerprint: 75:e0:ab:b6:13:85:12:27:1c:04:f8:5f:dd:de:38:e4:b7:24:2e:fe
|
189 |
-
# SHA256 Fingerprint: ca:42:dd:41:74:5f:d0:b8:1e:b9:02:36:2c:f9:d8:bf:71:9d:a1:bd:1b:1e:fc:94:6f:5b:4c:99:f4:2c:1b:9e
|
190 |
-
-----BEGIN CERTIFICATE-----
|
191 |
-
MIIDujCCAqKgAwIBAgILBAAAAAABD4Ym5g0wDQYJKoZIhvcNAQEFBQAwTDEgMB4G
|
192 |
-
A1UECxMXR2xvYmFsU2lnbiBSb290IENBIC0gUjIxEzARBgNVBAoTCkdsb2JhbFNp
|
193 |
-
Z24xEzARBgNVBAMTCkdsb2JhbFNpZ24wHhcNMDYxMjE1MDgwMDAwWhcNMjExMjE1
|
194 |
-
MDgwMDAwWjBMMSAwHgYDVQQLExdHbG9iYWxTaWduIFJvb3QgQ0EgLSBSMjETMBEG
|
195 |
-
A1UEChMKR2xvYmFsU2lnbjETMBEGA1UEAxMKR2xvYmFsU2lnbjCCASIwDQYJKoZI
|
196 |
-
hvcNAQEBBQADggEPADCCAQoCggEBAKbPJA6+Lm8omUVCxKs+IVSbC9N/hHD6ErPL
|
197 |
-
v4dfxn+G07IwXNb9rfF73OX4YJYJkhD10FPe+3t+c4isUoh7SqbKSaZeqKeMWhG8
|
198 |
-
eoLrvozps6yWJQeXSpkqBy+0Hne/ig+1AnwblrjFuTosvNYSuetZfeLQBoZfXklq
|
199 |
-
tTleiDTsvHgMCJiEbKjNS7SgfQx5TfC4LcshytVsW33hoCmEofnTlEnLJGKRILzd
|
200 |
-
C9XZzPnqJworc5HGnRusyMvo4KD0L5CLTfuwNhv2GXqF4G3yYROIXJ/gkwpRl4pa
|
201 |
-
zq+r1feqCapgvdzZX99yqWATXgAByUr6P6TqBwMhAo6CygPCm48CAwEAAaOBnDCB
|
202 |
-
mTAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUm+IH
|
203 |
-
V2ccHsBqBt5ZtJot39wZhi4wNgYDVR0fBC8wLTAroCmgJ4YlaHR0cDovL2NybC5n
|
204 |
-
bG9iYWxzaWduLm5ldC9yb290LXIyLmNybDAfBgNVHSMEGDAWgBSb4gdXZxwewGoG
|
205 |
-
3lm0mi3f3BmGLjANBgkqhkiG9w0BAQUFAAOCAQEAmYFThxxol4aR7OBKuEQLq4Gs
|
206 |
-
J0/WwbgcQ3izDJr86iw8bmEbTUsp9Z8FHSbBuOmDAGJFtqkIk7mpM0sYmsL4h4hO
|
207 |
-
291xNBrBVNpGP+DTKqttVCL1OmLNIG+6KYnX3ZHu01yiPqFbQfXf5WRDLenVOavS
|
208 |
-
ot+3i9DAgBkcRcAtjOj4LaR0VknFBbVPFd5uRHg5h6h+u/N5GJG79G+dwfCMNYxd
|
209 |
-
AfvDbbnvRG15RjF+Cv6pgsH/76tuIMRQyV+dTZsXjAzlAcmgQWpzU/qlULRuJQ/7
|
210 |
-
TBj0/VLZjmmx6BEP3ojY+x1J96relc8geMJgEtslQIxq/H5COEBkEveegeGTLg==
|
211 |
-
-----END CERTIFICATE-----
|
212 |
-
|
213 |
-
# Issuer: CN=http://www.valicert.com/ O=ValiCert, Inc. OU=ValiCert Class 1 Policy Validation Authority
|
214 |
-
# Subject: CN=http://www.valicert.com/ O=ValiCert, Inc. OU=ValiCert Class 1 Policy Validation Authority
|
215 |
-
# Label: "ValiCert Class 1 VA"
|
216 |
-
# Serial: 1
|
217 |
-
# MD5 Fingerprint: 65:58:ab:15:ad:57:6c:1e:a8:a7:b5:69:ac:bf:ff:eb
|
218 |
-
# SHA1 Fingerprint: e5:df:74:3c:b6:01:c4:9b:98:43:dc:ab:8c:e8:6a:81:10:9f:e4:8e
|
219 |
-
# SHA256 Fingerprint: f4:c1:49:55:1a:30:13:a3:5b:c7:bf:fe:17:a7:f3:44:9b:c1:ab:5b:5a:0a:e7:4b:06:c2:3b:90:00:4c:01:04
|
220 |
-
-----BEGIN CERTIFICATE-----
|
221 |
-
MIIC5zCCAlACAQEwDQYJKoZIhvcNAQEFBQAwgbsxJDAiBgNVBAcTG1ZhbGlDZXJ0
|
222 |
-
IFZhbGlkYXRpb24gTmV0d29yazEXMBUGA1UEChMOVmFsaUNlcnQsIEluYy4xNTAz
|
223 |
-
BgNVBAsTLFZhbGlDZXJ0IENsYXNzIDEgUG9saWN5IFZhbGlkYXRpb24gQXV0aG9y
|
224 |
-
aXR5MSEwHwYDVQQDExhodHRwOi8vd3d3LnZhbGljZXJ0LmNvbS8xIDAeBgkqhkiG
|
225 |
-
9w0BCQEWEWluZm9AdmFsaWNlcnQuY29tMB4XDTk5MDYyNTIyMjM0OFoXDTE5MDYy
|
226 |
-
NTIyMjM0OFowgbsxJDAiBgNVBAcTG1ZhbGlDZXJ0IFZhbGlkYXRpb24gTmV0d29y
|
227 |
-
azEXMBUGA1UEChMOVmFsaUNlcnQsIEluYy4xNTAzBgNVBAsTLFZhbGlDZXJ0IENs
|
228 |
-
YXNzIDEgUG9saWN5IFZhbGlkYXRpb24gQXV0aG9yaXR5MSEwHwYDVQQDExhodHRw
|
229 |
-
Oi8vd3d3LnZhbGljZXJ0LmNvbS8xIDAeBgkqhkiG9w0BCQEWEWluZm9AdmFsaWNl
|
230 |
-
cnQuY29tMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDYWYJ6ibiWuqYvaG9Y
|
231 |
-
LqdUHAZu9OqNSLwxlBfw8068srg1knaw0KWlAdcAAxIiGQj4/xEjm84H9b9pGib+
|
232 |
-
TunRf50sQB1ZaG6m+FiwnRqP0z/x3BkGgagO4DrdyFNFCQbmD3DD+kCmDuJWBQ8Y
|
233 |
-
TfwggtFzVXSNdnKgHZ0dwN0/cQIDAQABMA0GCSqGSIb3DQEBBQUAA4GBAFBoPUn0
|
234 |
-
LBwGlN+VYH+Wexf+T3GtZMjdd9LvWVXoP+iOBSoh8gfStadS/pyxtuJbdxdA6nLW
|
235 |
-
I8sogTLDAHkY7FkXicnGah5xyf23dKUlRWnFSKsZ4UWKJWsZ7uW7EvV/96aNUcPw
|
236 |
-
nXS3qT6gpf+2SQMT2iLM7XGCK5nPOrf1LXLI
|
237 |
-
-----END CERTIFICATE-----
|
238 |
-
|
239 |
-
# Issuer: CN=http://www.valicert.com/ O=ValiCert, Inc. OU=ValiCert Class 2 Policy Validation Authority
|
240 |
-
# Subject: CN=http://www.valicert.com/ O=ValiCert, Inc. OU=ValiCert Class 2 Policy Validation Authority
|
241 |
-
# Label: "ValiCert Class 2 VA"
|
242 |
-
# Serial: 1
|
243 |
-
# MD5 Fingerprint: a9:23:75:9b:ba:49:36:6e:31:c2:db:f2:e7:66:ba:87
|
244 |
-
# SHA1 Fingerprint: 31:7a:2a:d0:7f:2b:33:5e:f5:a1:c3:4e:4b:57:e8:b7:d8:f1:fc:a6
|
245 |
-
# SHA256 Fingerprint: 58:d0:17:27:9c:d4:dc:63:ab:dd:b1:96:a6:c9:90:6c:30:c4:e0:87:83:ea:e8:c1:60:99:54:d6:93:55:59:6b
|
246 |
-
-----BEGIN CERTIFICATE-----
|
247 |
-
MIIC5zCCAlACAQEwDQYJKoZIhvcNAQEFBQAwgbsxJDAiBgNVBAcTG1ZhbGlDZXJ0
|
248 |
-
IFZhbGlkYXRpb24gTmV0d29yazEXMBUGA1UEChMOVmFsaUNlcnQsIEluYy4xNTAz
|
249 |
-
BgNVBAsTLFZhbGlDZXJ0IENsYXNzIDIgUG9saWN5IFZhbGlkYXRpb24gQXV0aG9y
|
250 |
-
aXR5MSEwHwYDVQQDExhodHRwOi8vd3d3LnZhbGljZXJ0LmNvbS8xIDAeBgkqhkiG
|
251 |
-
9w0BCQEWEWluZm9AdmFsaWNlcnQuY29tMB4XDTk5MDYyNjAwMTk1NFoXDTE5MDYy
|
252 |
-
NjAwMTk1NFowgbsxJDAiBgNVBAcTG1ZhbGlDZXJ0IFZhbGlkYXRpb24gTmV0d29y
|
253 |
-
azEXMBUGA1UEChMOVmFsaUNlcnQsIEluYy4xNTAzBgNVBAsTLFZhbGlDZXJ0IENs
|
254 |
-
YXNzIDIgUG9saWN5IFZhbGlkYXRpb24gQXV0aG9yaXR5MSEwHwYDVQQDExhodHRw
|
255 |
-
Oi8vd3d3LnZhbGljZXJ0LmNvbS8xIDAeBgkqhkiG9w0BCQEWEWluZm9AdmFsaWNl
|
256 |
-
cnQuY29tMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDOOnHK5avIWZJV16vY
|
257 |
-
dA757tn2VUdZZUcOBVXc65g2PFxTXdMwzzjsvUGJ7SVCCSRrCl6zfN1SLUzm1NZ9
|
258 |
-
WlmpZdRJEy0kTRxQb7XBhVQ7/nHk01xC+YDgkRoKWzk2Z/M/VXwbP7RfZHM047QS
|
259 |
-
v4dk+NoS/zcnwbNDu+97bi5p9wIDAQABMA0GCSqGSIb3DQEBBQUAA4GBADt/UG9v
|
260 |
-
UJSZSWI4OB9L+KXIPqeCgfYrx+jFzug6EILLGACOTb2oWH+heQC1u+mNr0HZDzTu
|
261 |
-
IYEZoDJJKPTEjlbVUjP9UNV+mWwD5MlM/Mtsq2azSiGM5bUMMj4QssxsodyamEwC
|
262 |
-
W/POuZ6lcg5Ktz885hZo+L7tdEy8W9ViH0Pd
|
263 |
-
-----END CERTIFICATE-----
|
264 |
-
|
265 |
-
# Issuer: CN=http://www.valicert.com/ O=ValiCert, Inc. OU=ValiCert Class 3 Policy Validation Authority
|
266 |
-
# Subject: CN=http://www.valicert.com/ O=ValiCert, Inc. OU=ValiCert Class 3 Policy Validation Authority
|
267 |
-
# Label: "RSA Root Certificate 1"
|
268 |
-
# Serial: 1
|
269 |
-
# MD5 Fingerprint: a2:6f:53:b7:ee:40:db:4a:68:e7:fa:18:d9:10:4b:72
|
270 |
-
# SHA1 Fingerprint: 69:bd:8c:f4:9c:d3:00:fb:59:2e:17:93:ca:55:6a:f3:ec:aa:35:fb
|
271 |
-
# SHA256 Fingerprint: bc:23:f9:8a:31:3c:b9:2d:e3:bb:fc:3a:5a:9f:44:61:ac:39:49:4c:4a:e1:5a:9e:9d:f1:31:e9:9b:73:01:9a
|
272 |
-
-----BEGIN CERTIFICATE-----
|
273 |
-
MIIC5zCCAlACAQEwDQYJKoZIhvcNAQEFBQAwgbsxJDAiBgNVBAcTG1ZhbGlDZXJ0
|
274 |
-
IFZhbGlkYXRpb24gTmV0d29yazEXMBUGA1UEChMOVmFsaUNlcnQsIEluYy4xNTAz
|
275 |
-
BgNVBAsTLFZhbGlDZXJ0IENsYXNzIDMgUG9saWN5IFZhbGlkYXRpb24gQXV0aG9y
|
276 |
-
aXR5MSEwHwYDVQQDExhodHRwOi8vd3d3LnZhbGljZXJ0LmNvbS8xIDAeBgkqhkiG
|
277 |
-
9w0BCQEWEWluZm9AdmFsaWNlcnQuY29tMB4XDTk5MDYyNjAwMjIzM1oXDTE5MDYy
|
278 |
-
NjAwMjIzM1owgbsxJDAiBgNVBAcTG1ZhbGlDZXJ0IFZhbGlkYXRpb24gTmV0d29y
|
279 |
-
azEXMBUGA1UEChMOVmFsaUNlcnQsIEluYy4xNTAzBgNVBAsTLFZhbGlDZXJ0IENs
|
280 |
-
YXNzIDMgUG9saWN5IFZhbGlkYXRpb24gQXV0aG9yaXR5MSEwHwYDVQQDExhodHRw
|
281 |
-
Oi8vd3d3LnZhbGljZXJ0LmNvbS8xIDAeBgkqhkiG9w0BCQEWEWluZm9AdmFsaWNl
|
282 |
-
cnQuY29tMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDjmFGWHOjVsQaBalfD
|
283 |
-
cnWTq8+epvzzFlLWLU2fNUSoLgRNB0mKOCn1dzfnt6td3zZxFJmP3MKS8edgkpfs
|
284 |
-
2Ejcv8ECIMYkpChMMFp2bbFc893enhBxoYjHW5tBbcqwuI4V7q0zK89HBFx1cQqY
|
285 |
-
JJgpp0lZpd34t0NiYfPT4tBVPwIDAQABMA0GCSqGSIb3DQEBBQUAA4GBAFa7AliE
|
286 |
-
Zwgs3x/be0kz9dNnnfS0ChCzycUs4pJqcXgn8nCDQtM+z6lU9PHYkhaM0QTLS6vJ
|
287 |
-
n0WuPIqpsHEzXcjFV9+vqDWzf4mH6eglkrh/hXqu1rweN1gqZ8mRzyqBPu3GOd/A
|
288 |
-
PhmcGcwTTYJBtYze4D1gCCAPRX5ron+jjBXu
|
289 |
-
-----END CERTIFICATE-----
|
290 |
-
|
291 |
-
# Issuer: CN=VeriSign Class 3 Public Primary Certification Authority - G3 O=VeriSign, Inc. OU=VeriSign Trust Network/(c) 1999 VeriSign, Inc. - For authorized use only
|
292 |
-
# Subject: CN=VeriSign Class 3 Public Primary Certification Authority - G3 O=VeriSign, Inc. OU=VeriSign Trust Network/(c) 1999 VeriSign, Inc. - For authorized use only
|
293 |
-
# Label: "Verisign Class 3 Public Primary Certification Authority - G3"
|
294 |
-
# Serial: 206684696279472310254277870180966723415
|
295 |
-
# MD5 Fingerprint: cd:68:b6:a7:c7:c4:ce:75:e0:1d:4f:57:44:61:92:09
|
296 |
-
# SHA1 Fingerprint: 13:2d:0d:45:53:4b:69:97:cd:b2:d5:c3:39:e2:55:76:60:9b:5c:c6
|
297 |
-
# SHA256 Fingerprint: eb:04:cf:5e:b1:f3:9a:fa:76:2f:2b:b1:20:f2:96:cb:a5:20:c1:b9:7d:b1:58:95:65:b8:1c:b9:a1:7b:72:44
|
298 |
-
-----BEGIN CERTIFICATE-----
|
299 |
-
MIIEGjCCAwICEQCbfgZJoz5iudXukEhxKe9XMA0GCSqGSIb3DQEBBQUAMIHKMQsw
|
300 |
-
CQYDVQQGEwJVUzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xHzAdBgNVBAsTFlZl
|
301 |
-
cmlTaWduIFRydXN0IE5ldHdvcmsxOjA4BgNVBAsTMShjKSAxOTk5IFZlcmlTaWdu
|
302 |
-
LCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxRTBDBgNVBAMTPFZlcmlT
|
303 |
-
aWduIENsYXNzIDMgUHVibGljIFByaW1hcnkgQ2VydGlmaWNhdGlvbiBBdXRob3Jp
|
304 |
-
dHkgLSBHMzAeFw05OTEwMDEwMDAwMDBaFw0zNjA3MTYyMzU5NTlaMIHKMQswCQYD
|
305 |
-
VQQGEwJVUzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xHzAdBgNVBAsTFlZlcmlT
|
306 |
-
aWduIFRydXN0IE5ldHdvcmsxOjA4BgNVBAsTMShjKSAxOTk5IFZlcmlTaWduLCBJ
|
307 |
-
bmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxRTBDBgNVBAMTPFZlcmlTaWdu
|
308 |
-
IENsYXNzIDMgUHVibGljIFByaW1hcnkgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkg
|
309 |
-
LSBHMzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMu6nFL8eB8aHm8b
|
310 |
-
N3O9+MlrlBIwT/A2R/XQkQr1F8ilYcEWQE37imGQ5XYgwREGfassbqb1EUGO+i2t
|
311 |
-
KmFZpGcmTNDovFJbcCAEWNF6yaRpvIMXZK0Fi7zQWM6NjPXr8EJJC52XJ2cybuGu
|
312 |
-
kxUccLwgTS8Y3pKI6GyFVxEa6X7jJhFUokWWVYPKMIno3Nij7SqAP395ZVc+FSBm
|
313 |
-
CC+Vk7+qRy+oRpfwEuL+wgorUeZ25rdGt+INpsyow0xZVYnm6FNcHOqd8GIWC6fJ
|
314 |
-
Xwzw3sJ2zq/3avL6QaaiMxTJ5Xpj055iN9WFZZ4O5lMkdBteHRJTW8cs54NJOxWu
|
315 |
-
imi5V5cCAwEAATANBgkqhkiG9w0BAQUFAAOCAQEAERSWwauSCPc/L8my/uRan2Te
|
316 |
-
2yFPhpk0djZX3dAVL8WtfxUfN2JzPtTnX84XA9s1+ivbrmAJXx5fj267Cz3qWhMe
|
317 |
-
DGBvtcC1IyIuBwvLqXTLR7sdwdela8wv0kL9Sd2nic9TutoAWii/gt/4uhMdUIaC
|
318 |
-
/Y4wjylGsB49Ndo4YhYYSq3mtlFs3q9i6wHQHiT+eo8SGhJouPtmmRQURVyu565p
|
319 |
-
F4ErWjfJXir0xuKhXFSbplQAz/DxwceYMBo7Nhbbo27q/a2ywtrvAkcTisDxszGt
|
320 |
-
TxzhT5yvDwyd93gN2PQ1VoDat20Xj50egWTh/sVFuq1ruQp6Tk9LhO5L8X3dEQ==
|
321 |
-
-----END CERTIFICATE-----
|
322 |
-
|
323 |
-
# Issuer: CN=VeriSign Class 4 Public Primary Certification Authority - G3 O=VeriSign, Inc. OU=VeriSign Trust Network/(c) 1999 VeriSign, Inc. - For authorized use only
|
324 |
-
# Subject: CN=VeriSign Class 4 Public Primary Certification Authority - G3 O=VeriSign, Inc. OU=VeriSign Trust Network/(c) 1999 VeriSign, Inc. - For authorized use only
|
325 |
-
# Label: "Verisign Class 4 Public Primary Certification Authority - G3"
|
326 |
-
# Serial: 314531972711909413743075096039378935511
|
327 |
-
# MD5 Fingerprint: db:c8:f2:27:2e:b1:ea:6a:29:23:5d:fe:56:3e:33:df
|
328 |
-
# SHA1 Fingerprint: c8:ec:8c:87:92:69:cb:4b:ab:39:e9:8d:7e:57:67:f3:14:95:73:9d
|
329 |
-
# SHA256 Fingerprint: e3:89:36:0d:0f:db:ae:b3:d2:50:58:4b:47:30:31:4e:22:2f:39:c1:56:a0:20:14:4e:8d:96:05:61:79:15:06
|
330 |
-
-----BEGIN CERTIFICATE-----
|
331 |
-
MIIEGjCCAwICEQDsoKeLbnVqAc/EfMwvlF7XMA0GCSqGSIb3DQEBBQUAMIHKMQsw
|
332 |
-
CQYDVQQGEwJVUzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xHzAdBgNVBAsTFlZl
|
333 |
-
cmlTaWduIFRydXN0IE5ldHdvcmsxOjA4BgNVBAsTMShjKSAxOTk5IFZlcmlTaWdu
|
334 |
-
LCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxRTBDBgNVBAMTPFZlcmlT
|
335 |
-
aWduIENsYXNzIDQgUHVibGljIFByaW1hcnkgQ2VydGlmaWNhdGlvbiBBdXRob3Jp
|
336 |
-
dHkgLSBHMzAeFw05OTEwMDEwMDAwMDBaFw0zNjA3MTYyMzU5NTlaMIHKMQswCQYD
|
337 |
-
VQQGEwJVUzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xHzAdBgNVBAsTFlZlcmlT
|
338 |
-
aWduIFRydXN0IE5ldHdvcmsxOjA4BgNVBAsTMShjKSAxOTk5IFZlcmlTaWduLCBJ
|
339 |
-
bmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxRTBDBgNVBAMTPFZlcmlTaWdu
|
340 |
-
IENsYXNzIDQgUHVibGljIFByaW1hcnkgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkg
|
341 |
-
LSBHMzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAK3LpRFpxlmr8Y+1
|
342 |
-
GQ9Wzsy1HyDkniYlS+BzZYlZ3tCD5PUPtbut8XzoIfzk6AzufEUiGXaStBO3IFsJ
|
343 |
-
+mGuqPKljYXCKtbeZjbSmwL0qJJgfJxptI8kHtCGUvYynEFYHiK9zUVilQhu0Gbd
|
344 |
-
U6LM8BDcVHOLBKFGMzNcF0C5nk3T875Vg+ixiY5afJqWIpA7iCXy0lOIAgwLePLm
|
345 |
-
NxdLMEYH5IBtptiWLugs+BGzOA1mppvqySNb247i8xOOGlktqgLw7KSHZtzBP/XY
|
346 |
-
ufTsgsbSPZUd5cBPhMnZo0QoBmrXRazwa2rvTl/4EYIeOGM0ZlDUPpNz+jDDZq3/
|
347 |
-
ky2X7wMCAwEAATANBgkqhkiG9w0BAQUFAAOCAQEAj/ola09b5KROJ1WrIhVZPMq1
|
348 |
-
CtRK26vdoV9TxaBXOcLORyu+OshWv8LZJxA6sQU8wHcxuzrTBXttmhwwjIDLk5Mq
|
349 |
-
g6sFUYICABFna/OIYUdfA5PVWw3g8dShMjWFsjrbsIKr0csKvE+MW8VLADsfKoKm
|
350 |
-
fjaF3H48ZwC15DtS4KjrXRX5xm3wrR0OhbepmnMUWluPQSjA1egtTaRezarZ7c7c
|
351 |
-
2NU8Qh0XwRJdRTjDOPP8hS6DRkiy1yBfkjaP53kPmF6Z6PDQpLv1U70qzlmwr25/
|
352 |
-
bLvSHgCwIe34QWKCudiyxLtGUPMxxY8BqHTr9Xgn2uf3ZkPznoM+IKrDNWCRzg==
|
353 |
-
-----END CERTIFICATE-----
|
354 |
-
|
355 |
-
# Issuer: CN=Entrust.net Secure Server Certification Authority O=Entrust.net OU=www.entrust.net/CPS incorp. by ref. (limits liab.)/(c) 1999 Entrust.net Limited
|
356 |
-
# Subject: CN=Entrust.net Secure Server Certification Authority O=Entrust.net OU=www.entrust.net/CPS incorp. by ref. (limits liab.)/(c) 1999 Entrust.net Limited
|
357 |
-
# Label: "Entrust.net Secure Server CA"
|
358 |
-
# Serial: 927650371
|
359 |
-
# MD5 Fingerprint: df:f2:80:73:cc:f1:e6:61:73:fc:f5:42:e9:c5:7c:ee
|
360 |
-
# SHA1 Fingerprint: 99:a6:9b:e6:1a:fe:88:6b:4d:2b:82:00:7c:b8:54:fc:31:7e:15:39
|
361 |
-
# SHA256 Fingerprint: 62:f2:40:27:8c:56:4c:4d:d8:bf:7d:9d:4f:6f:36:6e:a8:94:d2:2f:5f:34:d9:89:a9:83:ac:ec:2f:ff:ed:50
|
362 |
-
-----BEGIN CERTIFICATE-----
|
363 |
-
MIIE2DCCBEGgAwIBAgIEN0rSQzANBgkqhkiG9w0BAQUFADCBwzELMAkGA1UEBhMC
|
364 |
-
VVMxFDASBgNVBAoTC0VudHJ1c3QubmV0MTswOQYDVQQLEzJ3d3cuZW50cnVzdC5u
|
365 |
-
ZXQvQ1BTIGluY29ycC4gYnkgcmVmLiAobGltaXRzIGxpYWIuKTElMCMGA1UECxMc
|
366 |
-
KGMpIDE5OTkgRW50cnVzdC5uZXQgTGltaXRlZDE6MDgGA1UEAxMxRW50cnVzdC5u
|
367 |
-
ZXQgU2VjdXJlIFNlcnZlciBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAeFw05OTA1
|
368 |
-
MjUxNjA5NDBaFw0xOTA1MjUxNjM5NDBaMIHDMQswCQYDVQQGEwJVUzEUMBIGA1UE
|
369 |
-
ChMLRW50cnVzdC5uZXQxOzA5BgNVBAsTMnd3dy5lbnRydXN0Lm5ldC9DUFMgaW5j
|
370 |
-
b3JwLiBieSByZWYuIChsaW1pdHMgbGlhYi4pMSUwIwYDVQQLExwoYykgMTk5OSBF
|
371 |
-
bnRydXN0Lm5ldCBMaW1pdGVkMTowOAYDVQQDEzFFbnRydXN0Lm5ldCBTZWN1cmUg
|
372 |
-
U2VydmVyIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MIGdMA0GCSqGSIb3DQEBAQUA
|
373 |
-
A4GLADCBhwKBgQDNKIM0VBuJ8w+vN5Ex/68xYMmo6LIQaO2f55M28Qpku0f1BBc/
|
374 |
-
I0dNxScZgSYMVHINiC3ZH5oSn7yzcdOAGT9HZnuMNSjSuQrfJNqc1lB5gXpa0zf3
|
375 |
-
wkrYKZImZNHkmGw6AIr1NJtl+O3jEP/9uElY3KDegjlrgbEWGWG5VLbmQwIBA6OC
|
376 |
-
AdcwggHTMBEGCWCGSAGG+EIBAQQEAwIABzCCARkGA1UdHwSCARAwggEMMIHeoIHb
|
377 |
-
oIHYpIHVMIHSMQswCQYDVQQGEwJVUzEUMBIGA1UEChMLRW50cnVzdC5uZXQxOzA5
|
378 |
-
BgNVBAsTMnd3dy5lbnRydXN0Lm5ldC9DUFMgaW5jb3JwLiBieSByZWYuIChsaW1p
|
379 |
-
dHMgbGlhYi4pMSUwIwYDVQQLExwoYykgMTk5OSBFbnRydXN0Lm5ldCBMaW1pdGVk
|
380 |
-
MTowOAYDVQQDEzFFbnRydXN0Lm5ldCBTZWN1cmUgU2VydmVyIENlcnRpZmljYXRp
|
381 |
-
b24gQXV0aG9yaXR5MQ0wCwYDVQQDEwRDUkwxMCmgJ6AlhiNodHRwOi8vd3d3LmVu
|
382 |
-
dHJ1c3QubmV0L0NSTC9uZXQxLmNybDArBgNVHRAEJDAigA8xOTk5MDUyNTE2MDk0
|
383 |
-
MFqBDzIwMTkwNTI1MTYwOTQwWjALBgNVHQ8EBAMCAQYwHwYDVR0jBBgwFoAU8Bdi
|
384 |
-
E1U9s/8KAGv7UISX8+1i0BowHQYDVR0OBBYEFPAXYhNVPbP/CgBr+1CEl/PtYtAa
|
385 |
-
MAwGA1UdEwQFMAMBAf8wGQYJKoZIhvZ9B0EABAwwChsEVjQuMAMCBJAwDQYJKoZI
|
386 |
-
hvcNAQEFBQADgYEAkNwwAvpkdMKnCqV8IY00F6j7Rw7/JXyNEwr75Ji174z4xRAN
|
387 |
-
95K+8cPV1ZVqBLssziY2ZcgxxufuP+NXdYR6Ee9GTxj005i7qIcyunL2POI9n9cd
|
388 |
-
2cNgQ4xYDiKWL2KjLB+6rQXvqzJ4h6BUcxm1XAX5Uj5tLUUL9wqT6u0G+bI=
|
389 |
-
-----END CERTIFICATE-----
|
390 |
-
|
391 |
-
# Issuer: CN=Entrust.net Certification Authority (2048) O=Entrust.net OU=www.entrust.net/CPS_2048 incorp. by ref. (limits liab.)/(c) 1999 Entrust.net Limited
|
392 |
-
# Subject: CN=Entrust.net Certification Authority (2048) O=Entrust.net OU=www.entrust.net/CPS_2048 incorp. by ref. (limits liab.)/(c) 1999 Entrust.net Limited
|
393 |
-
# Label: "Entrust.net Premium 2048 Secure Server CA"
|
394 |
-
# Serial: 946059622
|
395 |
-
# MD5 Fingerprint: ba:21:ea:20:d6:dd:db:8f:c1:57:8b:40:ad:a1:fc:fc
|
396 |
-
# SHA1 Fingerprint: 80:1d:62:d0:7b:44:9d:5c:5c:03:5c:98:ea:61:fa:44:3c:2a:58:fe
|
397 |
-
# SHA256 Fingerprint: d1:c3:39:ea:27:84:eb:87:0f:93:4f:c5:63:4e:4a:a9:ad:55:05:01:64:01:f2:64:65:d3:7a:57:46:63:35:9f
|
398 |
-
-----BEGIN CERTIFICATE-----
|
399 |
-
MIIEXDCCA0SgAwIBAgIEOGO5ZjANBgkqhkiG9w0BAQUFADCBtDEUMBIGA1UEChML
|
400 |
-
RW50cnVzdC5uZXQxQDA+BgNVBAsUN3d3dy5lbnRydXN0Lm5ldC9DUFNfMjA0OCBp
|
401 |
-
bmNvcnAuIGJ5IHJlZi4gKGxpbWl0cyBsaWFiLikxJTAjBgNVBAsTHChjKSAxOTk5
|
402 |
-
IEVudHJ1c3QubmV0IExpbWl0ZWQxMzAxBgNVBAMTKkVudHJ1c3QubmV0IENlcnRp
|
403 |
-
ZmljYXRpb24gQXV0aG9yaXR5ICgyMDQ4KTAeFw05OTEyMjQxNzUwNTFaFw0xOTEy
|
404 |
-
MjQxODIwNTFaMIG0MRQwEgYDVQQKEwtFbnRydXN0Lm5ldDFAMD4GA1UECxQ3d3d3
|
405 |
-
LmVudHJ1c3QubmV0L0NQU18yMDQ4IGluY29ycC4gYnkgcmVmLiAobGltaXRzIGxp
|
406 |
-
YWIuKTElMCMGA1UECxMcKGMpIDE5OTkgRW50cnVzdC5uZXQgTGltaXRlZDEzMDEG
|
407 |
-
A1UEAxMqRW50cnVzdC5uZXQgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkgKDIwNDgp
|
408 |
-
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEArU1LqRKGsuqjIAcVFmQq
|
409 |
-
K0vRvwtKTY7tgHalZ7d4QMBzQshowNtTK91euHaYNZOLGp18EzoOH1u3Hs/lJBQe
|
410 |
-
sYGpjX24zGtLA/ECDNyrpUAkAH90lKGdCCmziAv1h3edVc3kw37XamSrhRSGlVuX
|
411 |
-
MlBvPci6Zgzj/L24ScF2iUkZ/cCovYmjZy/Gn7xxGWC4LeksyZB2ZnuU4q941mVT
|
412 |
-
XTzWnLLPKQP5L6RQstRIzgUyVYr9smRMDuSYB3Xbf9+5CFVghTAp+XtIpGmG4zU/
|
413 |
-
HoZdenoVve8AjhUiVBcAkCaTvA5JaJG/+EfTnZVCwQ5N328mz8MYIWJmQ3DW1cAH
|
414 |
-
4QIDAQABo3QwcjARBglghkgBhvhCAQEEBAMCAAcwHwYDVR0jBBgwFoAUVeSB0RGA
|
415 |
-
vtiJuQijMfmhJAkWuXAwHQYDVR0OBBYEFFXkgdERgL7YibkIozH5oSQJFrlwMB0G
|
416 |
-
CSqGSIb2fQdBAAQQMA4bCFY1LjA6NC4wAwIEkDANBgkqhkiG9w0BAQUFAAOCAQEA
|
417 |
-
WUesIYSKF8mciVMeuoCFGsY8Tj6xnLZ8xpJdGGQC49MGCBFhfGPjK50xA3B20qMo
|
418 |
-
oPS7mmNz7W3lKtvtFKkrxjYR0CvrB4ul2p5cGZ1WEvVUKcgF7bISKo30Axv/55IQ
|
419 |
-
h7A6tcOdBTcSo8f0FbnVpDkWm1M6I5HxqIKiaohowXkCIryqptau37AUX7iH0N18
|
420 |
-
f3v/rxzP5tsHrV7bhZ3QKw0z2wTR5klAEyt2+z7pnIkPFc4YsIV4IU9rTw76NmfN
|
421 |
-
B/L/CNDi3tm/Kq+4h4YhPATKt5Rof8886ZjXOP/swNlQ8C5LWK5Gb9Auw2DaclVy
|
422 |
-
vUxFnmG6v4SBkgPR0ml8xQ==
|
423 |
-
-----END CERTIFICATE-----
|
424 |
-
|
425 |
-
# Issuer: CN=Baltimore CyberTrust Root O=Baltimore OU=CyberTrust
|
426 |
-
# Subject: CN=Baltimore CyberTrust Root O=Baltimore OU=CyberTrust
|
427 |
-
# Label: "Baltimore CyberTrust Root"
|
428 |
-
# Serial: 33554617
|
429 |
-
# MD5 Fingerprint: ac:b6:94:a5:9c:17:e0:d7:91:52:9b:b1:97:06:a6:e4
|
430 |
-
# SHA1 Fingerprint: d4:de:20:d0:5e:66:fc:53:fe:1a:50:88:2c:78:db:28:52:ca:e4:74
|
431 |
-
# SHA256 Fingerprint: 16:af:57:a9:f6:76:b0:ab:12:60:95:aa:5e:ba:de:f2:2a:b3:11:19:d6:44:ac:95:cd:4b:93:db:f3:f2:6a:eb
|
432 |
-
-----BEGIN CERTIFICATE-----
|
433 |
-
MIIDdzCCAl+gAwIBAgIEAgAAuTANBgkqhkiG9w0BAQUFADBaMQswCQYDVQQGEwJJ
|
434 |
-
RTESMBAGA1UEChMJQmFsdGltb3JlMRMwEQYDVQQLEwpDeWJlclRydXN0MSIwIAYD
|
435 |
-
VQQDExlCYWx0aW1vcmUgQ3liZXJUcnVzdCBSb290MB4XDTAwMDUxMjE4NDYwMFoX
|
436 |
-
DTI1MDUxMjIzNTkwMFowWjELMAkGA1UEBhMCSUUxEjAQBgNVBAoTCUJhbHRpbW9y
|
437 |
-
ZTETMBEGA1UECxMKQ3liZXJUcnVzdDEiMCAGA1UEAxMZQmFsdGltb3JlIEN5YmVy
|
438 |
-
VHJ1c3QgUm9vdDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKMEuyKr
|
439 |
-
mD1X6CZymrV51Cni4eiVgLGw41uOKymaZN+hXe2wCQVt2yguzmKiYv60iNoS6zjr
|
440 |
-
IZ3AQSsBUnuId9Mcj8e6uYi1agnnc+gRQKfRzMpijS3ljwumUNKoUMMo6vWrJYeK
|
441 |
-
mpYcqWe4PwzV9/lSEy/CG9VwcPCPwBLKBsua4dnKM3p31vjsufFoREJIE9LAwqSu
|
442 |
-
XmD+tqYF/LTdB1kC1FkYmGP1pWPgkAx9XbIGevOF6uvUA65ehD5f/xXtabz5OTZy
|
443 |
-
dc93Uk3zyZAsuT3lySNTPx8kmCFcB5kpvcY67Oduhjprl3RjM71oGDHweI12v/ye
|
444 |
-
jl0qhqdNkNwnGjkCAwEAAaNFMEMwHQYDVR0OBBYEFOWdWTCCR1jMrPoIVDaGezq1
|
445 |
-
BE3wMBIGA1UdEwEB/wQIMAYBAf8CAQMwDgYDVR0PAQH/BAQDAgEGMA0GCSqGSIb3
|
446 |
-
DQEBBQUAA4IBAQCFDF2O5G9RaEIFoN27TyclhAO992T9Ldcw46QQF+vaKSm2eT92
|
447 |
-
9hkTI7gQCvlYpNRhcL0EYWoSihfVCr3FvDB81ukMJY2GQE/szKN+OMY3EU/t3Wgx
|
448 |
-
jkzSswF07r51XgdIGn9w/xZchMB5hbgF/X++ZRGjD8ACtPhSNzkE1akxehi/oCr0
|
449 |
-
Epn3o0WC4zxe9Z2etciefC7IpJ5OCBRLbf1wbWsaY71k5h+3zvDyny67G7fyUIhz
|
450 |
-
ksLi4xaNmjICq44Y3ekQEe5+NauQrz4wlHrQMz2nZQ/1/I6eYs9HRCwBXbsdtTLS
|
451 |
-
R9I4LtD+gdwyah617jzV/OeBHRnDJELqYzmp
|
452 |
-
-----END CERTIFICATE-----
|
453 |
-
|
454 |
-
# Issuer: CN=Equifax Secure Global eBusiness CA-1 O=Equifax Secure Inc.
|
455 |
-
# Subject: CN=Equifax Secure Global eBusiness CA-1 O=Equifax Secure Inc.
|
456 |
-
# Label: "Equifax Secure Global eBusiness CA"
|
457 |
-
# Serial: 1
|
458 |
-
# MD5 Fingerprint: 8f:5d:77:06:27:c4:98:3c:5b:93:78:e7:d7:7d:9b:cc
|
459 |
-
# SHA1 Fingerprint: 7e:78:4a:10:1c:82:65:cc:2d:e1:f1:6d:47:b4:40:ca:d9:0a:19:45
|
460 |
-
# SHA256 Fingerprint: 5f:0b:62:ea:b5:e3:53:ea:65:21:65:16:58:fb:b6:53:59:f4:43:28:0a:4a:fb:d1:04:d7:7d:10:f9:f0:4c:07
|
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 |
-
# Issuer: CN=Equifax Secure eBusiness CA-1 O=Equifax Secure Inc.
|
479 |
-
# Subject: CN=Equifax Secure eBusiness CA-1 O=Equifax Secure Inc.
|
480 |
-
# Label: "Equifax Secure eBusiness CA 1"
|
481 |
-
# Serial: 4
|
482 |
-
# MD5 Fingerprint: 64:9c:ef:2e:44:fc:c6:8f:52:07:d0:51:73:8f:cb:3d
|
483 |
-
# SHA1 Fingerprint: da:40:18:8b:91:89:a3:ed:ee:ae:da:97:fe:2f:9d:f5:b7:d1:8a:41
|
484 |
-
# SHA256 Fingerprint: cf:56:ff:46:a4:a1:86:10:9d:d9:65:84:b5:ee:b5:8a:51:0c:42:75:b0:e5:f9:4f:40:bb:ae:86:5e:19:f6:73
|
485 |
-
-----BEGIN CERTIFICATE-----
|
486 |
-
MIICgjCCAeugAwIBAgIBBDANBgkqhkiG9w0BAQQFADBTMQswCQYDVQQGEwJVUzEc
|
487 |
-
MBoGA1UEChMTRXF1aWZheCBTZWN1cmUgSW5jLjEmMCQGA1UEAxMdRXF1aWZheCBT
|
488 |
-
ZWN1cmUgZUJ1c2luZXNzIENBLTEwHhcNOTkwNjIxMDQwMDAwWhcNMjAwNjIxMDQw
|
489 |
-
MDAwWjBTMQswCQYDVQQGEwJVUzEcMBoGA1UEChMTRXF1aWZheCBTZWN1cmUgSW5j
|
490 |
-
LjEmMCQGA1UEAxMdRXF1aWZheCBTZWN1cmUgZUJ1c2luZXNzIENBLTEwgZ8wDQYJ
|
491 |
-
KoZIhvcNAQEBBQADgY0AMIGJAoGBAM4vGbwXt3fek6lfWg0XTzQaDJj0ItlZ1MRo
|
492 |
-
RvC0NcWFAyDGr0WlIVFFQesWWDYyb+JQYmT5/VGcqiTZ9J2DKocKIdMSODRsjQBu
|
493 |
-
WqDZQu4aIZX5UkxVWsUPOE9G+m34LjXWHXzr4vCwdYDIqROsvojvOm6rXyo4YgKw
|
494 |
-
Env+j6YDAgMBAAGjZjBkMBEGCWCGSAGG+EIBAQQEAwIABzAPBgNVHRMBAf8EBTAD
|
495 |
-
AQH/MB8GA1UdIwQYMBaAFEp4MlIR21kWNl7fwRQ2QGpHfEyhMB0GA1UdDgQWBBRK
|
496 |
-
eDJSEdtZFjZe38EUNkBqR3xMoTANBgkqhkiG9w0BAQQFAAOBgQB1W6ibAxHm6VZM
|
497 |
-
zfmpTMANmvPMZWnmJXbMWbfWVMMdzZmsGd20hdXgPfxiIKeES1hl8eL5lSE/9dR+
|
498 |
-
WB5Hh1Q+WKG1tfgq73HnvMP2sUlG4tega+VWeponmHxGYhTnyfxuAxJ5gDgdSIKN
|
499 |
-
/Bf+KpYrtWKmpj29f5JZzVoqgrI3eQ==
|
500 |
-
-----END CERTIFICATE-----
|
501 |
-
|
502 |
-
# Issuer: O=Equifax Secure OU=Equifax Secure eBusiness CA-2
|
503 |
-
# Subject: O=Equifax Secure OU=Equifax Secure eBusiness CA-2
|
504 |
-
# Label: "Equifax Secure eBusiness CA 2"
|
505 |
-
# Serial: 930140085
|
506 |
-
# MD5 Fingerprint: aa:bf:bf:64:97:da:98:1d:6f:c6:08:3a:95:70:33:ca
|
507 |
-
# SHA1 Fingerprint: 39:4f:f6:85:0b:06:be:52:e5:18:56:cc:10:e1:80:e8:82:b3:85:cc
|
508 |
-
# SHA256 Fingerprint: 2f:27:4e:48:ab:a4:ac:7b:76:59:33:10:17:75:50:6d:c3:0e:e3:8e:f6:ac:d5:c0:49:32:cf:e0:41:23:42:20
|
509 |
-
-----BEGIN CERTIFICATE-----
|
510 |
-
MIIDIDCCAomgAwIBAgIEN3DPtTANBgkqhkiG9w0BAQUFADBOMQswCQYDVQQGEwJV
|
511 |
-
UzEXMBUGA1UEChMORXF1aWZheCBTZWN1cmUxJjAkBgNVBAsTHUVxdWlmYXggU2Vj
|
512 |
-
dXJlIGVCdXNpbmVzcyBDQS0yMB4XDTk5MDYyMzEyMTQ0NVoXDTE5MDYyMzEyMTQ0
|
513 |
-
NVowTjELMAkGA1UEBhMCVVMxFzAVBgNVBAoTDkVxdWlmYXggU2VjdXJlMSYwJAYD
|
514 |
-
VQQLEx1FcXVpZmF4IFNlY3VyZSBlQnVzaW5lc3MgQ0EtMjCBnzANBgkqhkiG9w0B
|
515 |
-
AQEFAAOBjQAwgYkCgYEA5Dk5kx5SBhsoNviyoynF7Y6yEb3+6+e0dMKP/wXn2Z0G
|
516 |
-
vxLIPw7y1tEkshHe0XMJitSxLJgJDR5QRrKDpkWNYmi7hRsgcDKqQM2mll/EcTc/
|
517 |
-
BPO3QSQ5BxoeLmFYoBIL5aXfxavqN3HMHMg3OrmXUqesxWoklE6ce8/AatbfIb0C
|
518 |
-
AwEAAaOCAQkwggEFMHAGA1UdHwRpMGcwZaBjoGGkXzBdMQswCQYDVQQGEwJVUzEX
|
519 |
-
MBUGA1UEChMORXF1aWZheCBTZWN1cmUxJjAkBgNVBAsTHUVxdWlmYXggU2VjdXJl
|
520 |
-
IGVCdXNpbmVzcyBDQS0yMQ0wCwYDVQQDEwRDUkwxMBoGA1UdEAQTMBGBDzIwMTkw
|
521 |
-
NjIzMTIxNDQ1WjALBgNVHQ8EBAMCAQYwHwYDVR0jBBgwFoAUUJ4L6q9euSBIplBq
|
522 |
-
y/3YIHqngnYwHQYDVR0OBBYEFFCeC+qvXrkgSKZQasv92CB6p4J2MAwGA1UdEwQF
|
523 |
-
MAMBAf8wGgYJKoZIhvZ9B0EABA0wCxsFVjMuMGMDAgbAMA0GCSqGSIb3DQEBBQUA
|
524 |
-
A4GBAAyGgq3oThr1jokn4jVYPSm0B482UJW/bsGe68SQsoWou7dC4A8HOd/7npCy
|
525 |
-
0cE+U58DRLB+S/Rv5Hwf5+Kx5Lia78O9zt4LMjTZ3ijtM2vE1Nc9ElirfQkty3D1
|
526 |
-
E4qUoSek1nDFbZS1yX2doNLGCEnZZpum0/QL3MUmV+GRMOrN
|
527 |
-
-----END CERTIFICATE-----
|
528 |
-
|
529 |
-
# Issuer: CN=AddTrust Class 1 CA Root O=AddTrust AB OU=AddTrust TTP Network
|
530 |
-
# Subject: CN=AddTrust Class 1 CA Root O=AddTrust AB OU=AddTrust TTP Network
|
531 |
-
# Label: "AddTrust Low-Value Services Root"
|
532 |
-
# Serial: 1
|
533 |
-
# MD5 Fingerprint: 1e:42:95:02:33:92:6b:b9:5f:c0:7f:da:d6:b2:4b:fc
|
534 |
-
# SHA1 Fingerprint: cc:ab:0e:a0:4c:23:01:d6:69:7b:dd:37:9f:cd:12:eb:24:e3:94:9d
|
535 |
-
# SHA256 Fingerprint: 8c:72:09:27:9a:c0:4e:27:5e:16:d0:7f:d3:b7:75:e8:01:54:b5:96:80:46:e3:1f:52:dd:25:76:63:24:e9:a7
|
536 |
-
-----BEGIN CERTIFICATE-----
|
537 |
-
MIIEGDCCAwCgAwIBAgIBATANBgkqhkiG9w0BAQUFADBlMQswCQYDVQQGEwJTRTEU
|
538 |
-
MBIGA1UEChMLQWRkVHJ1c3QgQUIxHTAbBgNVBAsTFEFkZFRydXN0IFRUUCBOZXR3
|
539 |
-
b3JrMSEwHwYDVQQDExhBZGRUcnVzdCBDbGFzcyAxIENBIFJvb3QwHhcNMDAwNTMw
|
540 |
-
MTAzODMxWhcNMjAwNTMwMTAzODMxWjBlMQswCQYDVQQGEwJTRTEUMBIGA1UEChML
|
541 |
-
QWRkVHJ1c3QgQUIxHTAbBgNVBAsTFEFkZFRydXN0IFRUUCBOZXR3b3JrMSEwHwYD
|
542 |
-
VQQDExhBZGRUcnVzdCBDbGFzcyAxIENBIFJvb3QwggEiMA0GCSqGSIb3DQEBAQUA
|
543 |
-
A4IBDwAwggEKAoIBAQCWltQhSWDia+hBBwzexODcEyPNwTXH+9ZOEQpnXvUGW2ul
|
544 |
-
CDtbKRY654eyNAbFvAWlA3yCyykQruGIgb3WntP+LVbBFc7jJp0VLhD7Bo8wBN6n
|
545 |
-
tGO0/7Gcrjyvd7ZWxbWroulpOj0OM3kyP3CCkplhbY0wCI9xP6ZIVxn4JdxLZlyl
|
546 |
-
dI+Yrsj5wAYi56xz36Uu+1LcsRVlIPo1Zmne3yzxbrww2ywkEtvrNTVokMsAsJch
|
547 |
-
PXQhI2U0K7t4WaPW4XY5mqRJjox0r26kmqPZm9I4XJuiGMx1I4S+6+JNM3GOGvDC
|
548 |
-
+Mcdoq0Dlyz4zyXG9rgkMbFjXZJ/Y/AlyVMuH79NAgMBAAGjgdIwgc8wHQYDVR0O
|
549 |
-
BBYEFJWxtPCUtr3H2tERCSG+wa9J/RB7MAsGA1UdDwQEAwIBBjAPBgNVHRMBAf8E
|
550 |
-
BTADAQH/MIGPBgNVHSMEgYcwgYSAFJWxtPCUtr3H2tERCSG+wa9J/RB7oWmkZzBl
|
551 |
-
MQswCQYDVQQGEwJTRTEUMBIGA1UEChMLQWRkVHJ1c3QgQUIxHTAbBgNVBAsTFEFk
|
552 |
-
ZFRydXN0IFRUUCBOZXR3b3JrMSEwHwYDVQQDExhBZGRUcnVzdCBDbGFzcyAxIENB
|
553 |
-
IFJvb3SCAQEwDQYJKoZIhvcNAQEFBQADggEBACxtZBsfzQ3duQH6lmM0MkhHma6X
|
554 |
-
7f1yFqZzR1r0693p9db7RcwpiURdv0Y5PejuvE1Uhh4dbOMXJ0PhiVYrqW9yTkkz
|
555 |
-
43J8KiOavD7/KCrto/8cI7pDVwlnTUtiBi34/2ydYB7YHEt9tTEv2dB8Xfjea4MY
|
556 |
-
eDdXL+gzB2ffHsdrKpV2ro9Xo/D0UrSpUwjP4E/TelOL/bscVjby/rK25Xa71SJl
|
557 |
-
pz/+0WatC7xrmYbvP33zGDLKe8bjq2RGlfgmadlVg3sslgf/WSxEo8bl6ancoWOA
|
558 |
-
WiFeIc9TVPC6b4nbqKqVz4vjccweGyBECMB6tkD9xOQ14R0WHNC8K47Wcdk=
|
559 |
-
-----END CERTIFICATE-----
|
560 |
-
|
561 |
-
# Issuer: CN=AddTrust External CA Root O=AddTrust AB OU=AddTrust External TTP Network
|
562 |
-
# Subject: CN=AddTrust External CA Root O=AddTrust AB OU=AddTrust External TTP Network
|
563 |
-
# Label: "AddTrust External Root"
|
564 |
-
# Serial: 1
|
565 |
-
# MD5 Fingerprint: 1d:35:54:04:85:78:b0:3f:42:42:4d:bf:20:73:0a:3f
|
566 |
-
# SHA1 Fingerprint: 02:fa:f3:e2:91:43:54:68:60:78:57:69:4d:f5:e4:5b:68:85:18:68
|
567 |
-
# SHA256 Fingerprint: 68:7f:a4:51:38:22:78:ff:f0:c8:b1:1f:8d:43:d5:76:67:1c:6e:b2:bc:ea:b4:13:fb:83:d9:65:d0:6d:2f:f2
|
568 |
-
-----BEGIN CERTIFICATE-----
|
569 |
-
MIIENjCCAx6gAwIBAgIBATANBgkqhkiG9w0BAQUFADBvMQswCQYDVQQGEwJTRTEU
|
570 |
-
MBIGA1UEChMLQWRkVHJ1c3QgQUIxJjAkBgNVBAsTHUFkZFRydXN0IEV4dGVybmFs
|
571 |
-
IFRUUCBOZXR3b3JrMSIwIAYDVQQDExlBZGRUcnVzdCBFeHRlcm5hbCBDQSBSb290
|
572 |
-
MB4XDTAwMDUzMDEwNDgzOFoXDTIwMDUzMDEwNDgzOFowbzELMAkGA1UEBhMCU0Ux
|
573 |
-
FDASBgNVBAoTC0FkZFRydXN0IEFCMSYwJAYDVQQLEx1BZGRUcnVzdCBFeHRlcm5h
|
574 |
-
bCBUVFAgTmV0d29yazEiMCAGA1UEAxMZQWRkVHJ1c3QgRXh0ZXJuYWwgQ0EgUm9v
|
575 |
-
dDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALf3GjPm8gAELTngTlvt
|
576 |
-
H7xsD821+iO2zt6bETOXpClMfZOfvUq8k+0DGuOPz+VtUFrWlymUWoCwSXrbLpX9
|
577 |
-
uMq/NzgtHj6RQa1wVsfwTz/oMp50ysiQVOnGXw94nZpAPA6sYapeFI+eh6FqUNzX
|
578 |
-
mk6vBbOmcZSccbNQYArHE504B4YCqOmoaSYYkKtMsE8jqzpPhNjfzp/haW+710LX
|
579 |
-
a0Tkx63ubUFfclpxCDezeWWkWaCUN/cALw3CknLa0Dhy2xSoRcRdKn23tNbE7qzN
|
580 |
-
E0S3ySvdQwAl+mG5aWpYIxG3pzOPVnVZ9c0p10a3CitlttNCbxWyuHv77+ldU9U0
|
581 |
-
WicCAwEAAaOB3DCB2TAdBgNVHQ4EFgQUrb2YejS0Jvf6xCZU7wO94CTLVBowCwYD
|
582 |
-
VR0PBAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wgZkGA1UdIwSBkTCBjoAUrb2YejS0
|
583 |
-
Jvf6xCZU7wO94CTLVBqhc6RxMG8xCzAJBgNVBAYTAlNFMRQwEgYDVQQKEwtBZGRU
|
584 |
-
cnVzdCBBQjEmMCQGA1UECxMdQWRkVHJ1c3QgRXh0ZXJuYWwgVFRQIE5ldHdvcmsx
|
585 |
-
IjAgBgNVBAMTGUFkZFRydXN0IEV4dGVybmFsIENBIFJvb3SCAQEwDQYJKoZIhvcN
|
586 |
-
AQEFBQADggEBALCb4IUlwtYj4g+WBpKdQZic2YR5gdkeWxQHIzZlj7DYd7usQWxH
|
587 |
-
YINRsPkyPef89iYTx4AWpb9a/IfPeHmJIZriTAcKhjW88t5RxNKWt9x+Tu5w/Rw5
|
588 |
-
6wwCURQtjr0W4MHfRnXnJK3s9EK0hZNwEGe6nQY1ShjTK3rMUUKhemPR5ruhxSvC
|
589 |
-
Nr4TDea9Y355e6cJDUCrat2PisP29owaQgVR1EX1n6diIWgVIEM8med8vSTYqZEX
|
590 |
-
c4g/VhsxOBi0cQ+azcgOno4uG+GMmIPLHzHxREzGBHNJdmAPx/i9F4BrLunMTA5a
|
591 |
-
mnkPIAou1Z5jJh5VkpTYghdae9C8x49OhgQ=
|
592 |
-
-----END CERTIFICATE-----
|
593 |
-
|
594 |
-
# Issuer: CN=AddTrust Public CA Root O=AddTrust AB OU=AddTrust TTP Network
|
595 |
-
# Subject: CN=AddTrust Public CA Root O=AddTrust AB OU=AddTrust TTP Network
|
596 |
-
# Label: "AddTrust Public Services Root"
|
597 |
-
# Serial: 1
|
598 |
-
# MD5 Fingerprint: c1:62:3e:23:c5:82:73:9c:03:59:4b:2b:e9:77:49:7f
|
599 |
-
# SHA1 Fingerprint: 2a:b6:28:48:5e:78:fb:f3:ad:9e:79:10:dd:6b:df:99:72:2c:96:e5
|
600 |
-
# SHA256 Fingerprint: 07:91:ca:07:49:b2:07:82:aa:d3:c7:d7:bd:0c:df:c9:48:58:35:84:3e:b2:d7:99:60:09:ce:43:ab:6c:69:27
|
601 |
-
-----BEGIN CERTIFICATE-----
|
602 |
-
MIIEFTCCAv2gAwIBAgIBATANBgkqhkiG9w0BAQUFADBkMQswCQYDVQQGEwJTRTEU
|
603 |
-
MBIGA1UEChMLQWRkVHJ1c3QgQUIxHTAbBgNVBAsTFEFkZFRydXN0IFRUUCBOZXR3
|
604 |
-
b3JrMSAwHgYDVQQDExdBZGRUcnVzdCBQdWJsaWMgQ0EgUm9vdDAeFw0wMDA1MzAx
|
605 |
-
MDQxNTBaFw0yMDA1MzAxMDQxNTBaMGQxCzAJBgNVBAYTAlNFMRQwEgYDVQQKEwtB
|
606 |
-
ZGRUcnVzdCBBQjEdMBsGA1UECxMUQWRkVHJ1c3QgVFRQIE5ldHdvcmsxIDAeBgNV
|
607 |
-
BAMTF0FkZFRydXN0IFB1YmxpYyBDQSBSb290MIIBIjANBgkqhkiG9w0BAQEFAAOC
|
608 |
-
AQ8AMIIBCgKCAQEA6Rowj4OIFMEg2Dybjxt+A3S72mnTRqX4jsIMEZBRpS9mVEBV
|
609 |
-
6tsfSlbunyNu9DnLoblv8n75XYcmYZ4c+OLspoH4IcUkzBEMP9smcnrHAZcHF/nX
|
610 |
-
GCwwfQ56HmIexkvA/X1id9NEHif2P0tEs7c42TkfYNVRknMDtABp4/MUTu7R3AnP
|
611 |
-
dzRGULD4EfL+OHn3Bzn+UZKXC1sIXzSGAa2Il+tmzV7R/9x98oTaunet3IAIx6eH
|
612 |
-
1lWfl2royBFkuucZKT8Rs3iQhCBSWxHveNCD9tVIkNAwHM+A+WD+eeSI8t0A65RF
|
613 |
-
62WUaUC6wNW0uLp9BBGo6zEFlpROWCGOn9Bg/QIDAQABo4HRMIHOMB0GA1UdDgQW
|
614 |
-
BBSBPjfYkrAfd59ctKtzquf2NGAv+jALBgNVHQ8EBAMCAQYwDwYDVR0TAQH/BAUw
|
615 |
-
AwEB/zCBjgYDVR0jBIGGMIGDgBSBPjfYkrAfd59ctKtzquf2NGAv+qFopGYwZDEL
|
616 |
-
MAkGA1UEBhMCU0UxFDASBgNVBAoTC0FkZFRydXN0IEFCMR0wGwYDVQQLExRBZGRU
|
617 |
-
cnVzdCBUVFAgTmV0d29yazEgMB4GA1UEAxMXQWRkVHJ1c3QgUHVibGljIENBIFJv
|
618 |
-
b3SCAQEwDQYJKoZIhvcNAQEFBQADggEBAAP3FUr4JNojVhaTdt02KLmuG7jD8WS6
|
619 |
-
IBh4lSknVwW8fCr0uVFV2ocC3g8WFzH4qnkuCRO7r7IgGRLlk/lL+YPoRNWyQSW/
|
620 |
-
iHVv/xD8SlTQX/D67zZzfRs2RcYhbbQVuE7PnFylPVoAjgbjPGsye/Kf8Lb93/Ao
|
621 |
-
GEjwxrzQvzSAlsJKsW2Ox5BF3i9nrEUEo3rcVZLJR2bYGozH7ZxOmuASu7VqTITh
|
622 |
-
4SINhwBk/ox9Yjllpu9CtoAlEmEBqCQTcAARJl/6NVDFSMwGR+gn2HCNX2TmoUQm
|
623 |
-
XiLsks3/QppEIW1cxeMiHV9HEufOX1362KqxMy3ZdvJOOjMMK7MtkAY=
|
624 |
-
-----END CERTIFICATE-----
|
625 |
-
|
626 |
-
# Issuer: CN=AddTrust Qualified CA Root O=AddTrust AB OU=AddTrust TTP Network
|
627 |
-
# Subject: CN=AddTrust Qualified CA Root O=AddTrust AB OU=AddTrust TTP Network
|
628 |
-
# Label: "AddTrust Qualified Certificates Root"
|
629 |
-
# Serial: 1
|
630 |
-
# MD5 Fingerprint: 27:ec:39:47:cd:da:5a:af:e2:9a:01:65:21:a9:4c:bb
|
631 |
-
# SHA1 Fingerprint: 4d:23:78:ec:91:95:39:b5:00:7f:75:8f:03:3b:21:1e:c5:4d:8b:cf
|
632 |
-
# SHA256 Fingerprint: 80:95:21:08:05:db:4b:bc:35:5e:44:28:d8:fd:6e:c2:cd:e3:ab:5f:b9:7a:99:42:98:8e:b8:f4:dc:d0:60:16
|
633 |
-
-----BEGIN CERTIFICATE-----
|
634 |
-
MIIEHjCCAwagAwIBAgIBATANBgkqhkiG9w0BAQUFADBnMQswCQYDVQQGEwJTRTEU
|
635 |
-
MBIGA1UEChMLQWRkVHJ1c3QgQUIxHTAbBgNVBAsTFEFkZFRydXN0IFRUUCBOZXR3
|
636 |
-
b3JrMSMwIQYDVQQDExpBZGRUcnVzdCBRdWFsaWZpZWQgQ0EgUm9vdDAeFw0wMDA1
|
637 |
-
MzAxMDQ0NTBaFw0yMDA1MzAxMDQ0NTBaMGcxCzAJBgNVBAYTAlNFMRQwEgYDVQQK
|
638 |
-
EwtBZGRUcnVzdCBBQjEdMBsGA1UECxMUQWRkVHJ1c3QgVFRQIE5ldHdvcmsxIzAh
|
639 |
-
BgNVBAMTGkFkZFRydXN0IFF1YWxpZmllZCBDQSBSb290MIIBIjANBgkqhkiG9w0B
|
640 |
-
AQEFAAOCAQ8AMIIBCgKCAQEA5B6a/twJWoekn0e+EV+vhDTbYjx5eLfpMLXsDBwq
|
641 |
-
xBb/4Oxx64r1EW7tTw2R0hIYLUkVAcKkIhPHEWT/IhKauY5cLwjPcWqzZwFZ8V1G
|
642 |
-
87B4pfYOQnrjfxvM0PC3KP0q6p6zsLkEqv32x7SxuCqg+1jxGaBvcCV+PmlKfw8i
|
643 |
-
2O+tCBGaKZnhqkRFmhJePp1tUvznoD1oL/BLcHwTOK28FSXx1s6rosAx1i+f4P8U
|
644 |
-
WfyEk9mHfExUE+uf0S0R+Bg6Ot4l2ffTQO2kBhLEO+GRwVY18BTcZTYJbqukB8c1
|
645 |
-
0cIDMzZbdSZtQvESa0NvS3GU+jQd7RNuyoB/mC9suWXY6QIDAQABo4HUMIHRMB0G
|
646 |
-
A1UdDgQWBBQ5lYtii1zJ1IC6WA+XPxUIQ8yYpzALBgNVHQ8EBAMCAQYwDwYDVR0T
|
647 |
-
AQH/BAUwAwEB/zCBkQYDVR0jBIGJMIGGgBQ5lYtii1zJ1IC6WA+XPxUIQ8yYp6Fr
|
648 |
-
pGkwZzELMAkGA1UEBhMCU0UxFDASBgNVBAoTC0FkZFRydXN0IEFCMR0wGwYDVQQL
|
649 |
-
ExRBZGRUcnVzdCBUVFAgTmV0d29yazEjMCEGA1UEAxMaQWRkVHJ1c3QgUXVhbGlm
|
650 |
-
aWVkIENBIFJvb3SCAQEwDQYJKoZIhvcNAQEFBQADggEBABmrder4i2VhlRO6aQTv
|
651 |
-
hsoToMeqT2QbPxj2qC0sVY8FtzDqQmodwCVRLae/DLPt7wh/bDxGGuoYQ992zPlm
|
652 |
-
hpwsaPXpF/gxsxjE1kh9I0xowX67ARRvxdlu3rsEQmr49lx95dr6h+sNNVJn0J6X
|
653 |
-
dgWTP5XHAeZpVTh/EGGZyeNfpso+gmNIquIISD6q8rKFYqa0p9m9N5xotS1WfbC3
|
654 |
-
P6CxB9bpT9zeRXEwMn8bLgn5v1Kh7sKAPgZcLlVAwRv1cEWw3F369nJad9Jjzc9Y
|
655 |
-
iQBCYz95OdBEsIJuQRno3eDBiFrRHnGTHyQwdOUeqN48Jzd/g66ed8/wMLH/S5no
|
656 |
-
xqE=
|
657 |
-
-----END CERTIFICATE-----
|
658 |
-
|
659 |
-
# Issuer: CN=Entrust Root Certification Authority O=Entrust, Inc. OU=www.entrust.net/CPS is incorporated by reference/(c) 2006 Entrust, Inc.
|
660 |
-
# Subject: CN=Entrust Root Certification Authority O=Entrust, Inc. OU=www.entrust.net/CPS is incorporated by reference/(c) 2006 Entrust, Inc.
|
661 |
-
# Label: "Entrust Root Certification Authority"
|
662 |
-
# Serial: 1164660820
|
663 |
-
# MD5 Fingerprint: d6:a5:c3:ed:5d:dd:3e:00:c1:3d:87:92:1f:1d:3f:e4
|
664 |
-
# SHA1 Fingerprint: b3:1e:b1:b7:40:e3:6c:84:02:da:dc:37:d4:4d:f5:d4:67:49:52:f9
|
665 |
-
# SHA256 Fingerprint: 73:c1:76:43:4f:1b:c6:d5:ad:f4:5b:0e:76:e7:27:28:7c:8d:e5:76:16:c1:e6:e6:14:1a:2b:2c:bc:7d:8e:4c
|
666 |
-
-----BEGIN CERTIFICATE-----
|
667 |
-
MIIEkTCCA3mgAwIBAgIERWtQVDANBgkqhkiG9w0BAQUFADCBsDELMAkGA1UEBhMC
|
668 |
-
VVMxFjAUBgNVBAoTDUVudHJ1c3QsIEluYy4xOTA3BgNVBAsTMHd3dy5lbnRydXN0
|
669 |
-
Lm5ldC9DUFMgaXMgaW5jb3Jwb3JhdGVkIGJ5IHJlZmVyZW5jZTEfMB0GA1UECxMW
|
670 |
-
KGMpIDIwMDYgRW50cnVzdCwgSW5jLjEtMCsGA1UEAxMkRW50cnVzdCBSb290IENl
|
671 |
-
cnRpZmljYXRpb24gQXV0aG9yaXR5MB4XDTA2MTEyNzIwMjM0MloXDTI2MTEyNzIw
|
672 |
-
NTM0MlowgbAxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1FbnRydXN0LCBJbmMuMTkw
|
673 |
-
NwYDVQQLEzB3d3cuZW50cnVzdC5uZXQvQ1BTIGlzIGluY29ycG9yYXRlZCBieSBy
|
674 |
-
ZWZlcmVuY2UxHzAdBgNVBAsTFihjKSAyMDA2IEVudHJ1c3QsIEluYy4xLTArBgNV
|
675 |
-
BAMTJEVudHJ1c3QgUm9vdCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTCCASIwDQYJ
|
676 |
-
KoZIhvcNAQEBBQADggEPADCCAQoCggEBALaVtkNC+sZtKm9I35RMOVcF7sN5EUFo
|
677 |
-
Nu3s/poBj6E4KPz3EEZmLk0eGrEaTsbRwJWIsMn/MYszA9u3g3s+IIRe7bJWKKf4
|
678 |
-
4LlAcTfFy0cOlypowCKVYhXbR9n10Cv/gkvJrT7eTNuQgFA/CYqEAOwwCj0Yzfv9
|
679 |
-
KlmaI5UXLEWeH25DeW0MXJj+SKfFI0dcXv1u5x609mhF0YaDW6KKjbHjKYD+JXGI
|
680 |
-
rb68j6xSlkuqUY3kEzEZ6E5Nn9uss2rVvDlUccp6en+Q3X0dgNmBu1kmwhH+5pPi
|
681 |
-
94DkZfs0Nw4pgHBNrziGLp5/V6+eF67rHMsoIV+2HNjnogQi+dPa2MsCAwEAAaOB
|
682 |
-
sDCBrTAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zArBgNVHRAEJDAi
|
683 |
-
gA8yMDA2MTEyNzIwMjM0MlqBDzIwMjYxMTI3MjA1MzQyWjAfBgNVHSMEGDAWgBRo
|
684 |
-
kORnpKZTgMeGZqTx90tD+4S9bTAdBgNVHQ4EFgQUaJDkZ6SmU4DHhmak8fdLQ/uE
|
685 |
-
vW0wHQYJKoZIhvZ9B0EABBAwDhsIVjcuMTo0LjADAgSQMA0GCSqGSIb3DQEBBQUA
|
686 |
-
A4IBAQCT1DCw1wMgKtD5Y+iRDAUgqV8ZyntyTtSx29CW+1RaGSwMCPeyvIWonX9t
|
687 |
-
O1KzKtvn1ISMY/YPyyYBkVBs9F8U4pN0wBOeMDpQ47RgxRzwIkSNcUesyBrJ6Zua
|
688 |
-
AGAT/3B+XxFNSRuzFVJ7yVTav52Vr2ua2J7p8eRDjeIRRDq/r72DQnNSi6q7pynP
|
689 |
-
9WQcCk3RvKqsnyrQ/39/2n3qse0wJcGE2jTSW3iDVuycNsMm4hH2Z0kdkquM++v/
|
690 |
-
eu6FSqdQgPCnXEqULl8FmTxSQeDNtGPPAUO6nIPcj2A781q0tHuu2guQOHXvgR1m
|
691 |
-
0vdXcDazv/wor3ElhVsT/h5/WrQ8
|
692 |
-
-----END CERTIFICATE-----
|
693 |
-
|
694 |
-
# Issuer: CN=GeoTrust Global CA O=GeoTrust Inc.
|
695 |
-
# Subject: CN=GeoTrust Global CA O=GeoTrust Inc.
|
696 |
-
# Label: "GeoTrust Global CA"
|
697 |
-
# Serial: 144470
|
698 |
-
# MD5 Fingerprint: f7:75:ab:29:fb:51:4e:b7:77:5e:ff:05:3c:99:8e:f5
|
699 |
-
# SHA1 Fingerprint: de:28:f4:a4:ff:e5:b9:2f:a3:c5:03:d1:a3:49:a7:f9:96:2a:82:12
|
700 |
-
# SHA256 Fingerprint: ff:85:6a:2d:25:1d:cd:88:d3:66:56:f4:50:12:67:98:cf:ab:aa:de:40:79:9c:72:2d:e4:d2:b5:db:36:a7:3a
|
701 |
-
-----BEGIN CERTIFICATE-----
|
702 |
-
MIIDVDCCAjygAwIBAgIDAjRWMA0GCSqGSIb3DQEBBQUAMEIxCzAJBgNVBAYTAlVT
|
703 |
-
MRYwFAYDVQQKEw1HZW9UcnVzdCBJbmMuMRswGQYDVQQDExJHZW9UcnVzdCBHbG9i
|
704 |
-
YWwgQ0EwHhcNMDIwNTIxMDQwMDAwWhcNMjIwNTIxMDQwMDAwWjBCMQswCQYDVQQG
|
705 |
-
EwJVUzEWMBQGA1UEChMNR2VvVHJ1c3QgSW5jLjEbMBkGA1UEAxMSR2VvVHJ1c3Qg
|
706 |
-
R2xvYmFsIENBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA2swYYzD9
|
707 |
-
9BcjGlZ+W988bDjkcbd4kdS8odhM+KhDtgPpTSEHCIjaWC9mOSm9BXiLnTjoBbdq
|
708 |
-
fnGk5sRgprDvgOSJKA+eJdbtg/OtppHHmMlCGDUUna2YRpIuT8rxh0PBFpVXLVDv
|
709 |
-
iS2Aelet8u5fa9IAjbkU+BQVNdnARqN7csiRv8lVK83Qlz6cJmTM386DGXHKTubU
|
710 |
-
1XupGc1V3sjs0l44U+VcT4wt/lAjNvxm5suOpDkZALeVAjmRCw7+OC7RHQWa9k0+
|
711 |
-
bw8HHa8sHo9gOeL6NlMTOdReJivbPagUvTLrGAMoUgRx5aszPeE4uwc2hGKceeoW
|
712 |
-
MPRfwCvocWvk+QIDAQABo1MwUTAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBTA
|
713 |
-
ephojYn7qwVkDBF9qn1luMrMTjAfBgNVHSMEGDAWgBTAephojYn7qwVkDBF9qn1l
|
714 |
-
uMrMTjANBgkqhkiG9w0BAQUFAAOCAQEANeMpauUvXVSOKVCUn5kaFOSPeCpilKIn
|
715 |
-
Z57QzxpeR+nBsqTP3UEaBU6bS+5Kb1VSsyShNwrrZHYqLizz/Tt1kL/6cdjHPTfS
|
716 |
-
tQWVYrmm3ok9Nns4d0iXrKYgjy6myQzCsplFAMfOEVEiIuCl6rYVSAlk6l5PdPcF
|
717 |
-
PseKUgzbFbS9bZvlxrFUaKnjaZC2mqUPuLk/IH2uSrW4nOQdtqvmlKXBx4Ot2/Un
|
718 |
-
hw4EbNX/3aBd7YdStysVAq45pmp06drE57xNNB6pXE0zX5IJL4hmXXeXxx12E6nV
|
719 |
-
5fEWCRE11azbJHFwLJhWC9kXtNHjUStedejV0NxPNO3CBWaAocvmMw==
|
720 |
-
-----END CERTIFICATE-----
|
721 |
-
|
722 |
-
# Issuer: CN=GeoTrust Global CA 2 O=GeoTrust Inc.
|
723 |
-
# Subject: CN=GeoTrust Global CA 2 O=GeoTrust Inc.
|
724 |
-
# Label: "GeoTrust Global CA 2"
|
725 |
-
# Serial: 1
|
726 |
-
# MD5 Fingerprint: 0e:40:a7:6c:de:03:5d:8f:d1:0f:e4:d1:8d:f9:6c:a9
|
727 |
-
# SHA1 Fingerprint: a9:e9:78:08:14:37:58:88:f2:05:19:b0:6d:2b:0d:2b:60:16:90:7d
|
728 |
-
# SHA256 Fingerprint: ca:2d:82:a0:86:77:07:2f:8a:b6:76:4f:f0:35:67:6c:fe:3e:5e:32:5e:01:21:72:df:3f:92:09:6d:b7:9b:85
|
729 |
-
-----BEGIN CERTIFICATE-----
|
730 |
-
MIIDZjCCAk6gAwIBAgIBATANBgkqhkiG9w0BAQUFADBEMQswCQYDVQQGEwJVUzEW
|
731 |
-
MBQGA1UEChMNR2VvVHJ1c3QgSW5jLjEdMBsGA1UEAxMUR2VvVHJ1c3QgR2xvYmFs
|
732 |
-
IENBIDIwHhcNMDQwMzA0MDUwMDAwWhcNMTkwMzA0MDUwMDAwWjBEMQswCQYDVQQG
|
733 |
-
EwJVUzEWMBQGA1UEChMNR2VvVHJ1c3QgSW5jLjEdMBsGA1UEAxMUR2VvVHJ1c3Qg
|
734 |
-
R2xvYmFsIENBIDIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDvPE1A
|
735 |
-
PRDfO1MA4Wf+lGAVPoWI8YkNkMgoI5kF6CsgncbzYEbYwbLVjDHZ3CB5JIG/NTL8
|
736 |
-
Y2nbsSpr7iFY8gjpeMtvy/wWUsiRxP89c96xPqfCfWbB9X5SJBri1WeR0IIQ13hL
|
737 |
-
TytCOb1kLUCgsBDTOEhGiKEMuzozKmKY+wCdE1l/bztyqu6mD4b5BWHqZ38MN5aL
|
738 |
-
5mkWRxHCJ1kDs6ZgwiFAVvqgx306E+PsV8ez1q6diYD3Aecs9pYrEw15LNnA5IZ7
|
739 |
-
S4wMcoKK+xfNAGw6EzywhIdLFnopsk/bHdQL82Y3vdj2V7teJHq4PIu5+pIaGoSe
|
740 |
-
2HSPqht/XvT+RSIhAgMBAAGjYzBhMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYE
|
741 |
-
FHE4NvICMVNHK266ZUapEBVYIAUJMB8GA1UdIwQYMBaAFHE4NvICMVNHK266ZUap
|
742 |
-
EBVYIAUJMA4GA1UdDwEB/wQEAwIBhjANBgkqhkiG9w0BAQUFAAOCAQEAA/e1K6td
|
743 |
-
EPx7srJerJsOflN4WT5CBP51o62sgU7XAotexC3IUnbHLB/8gTKY0UvGkpMzNTEv
|
744 |
-
/NgdRN3ggX+d6YvhZJFiCzkIjKx0nVnZellSlxG5FntvRdOW2TF9AjYPnDtuzywN
|
745 |
-
A0ZF66D0f0hExghAzN4bcLUprbqLOzRldRtxIR0sFAqwlpW41uryZfspuk/qkZN0
|
746 |
-
abby/+Ea0AzRdoXLiiW9l14sbxWZJue2Kf8i7MkCx1YAzUm5s2x7UwQa4qjJqhIF
|
747 |
-
I8LO57sEAszAR6LkxCkvW0VXiVHuPOtSCP8HNR6fNWpHSlaY0VqFH4z1Ir+rzoPz
|
748 |
-
4iIprn2DQKi6bA==
|
749 |
-
-----END CERTIFICATE-----
|
750 |
-
|
751 |
-
# Issuer: CN=GeoTrust Universal CA O=GeoTrust Inc.
|
752 |
-
# Subject: CN=GeoTrust Universal CA O=GeoTrust Inc.
|
753 |
-
# Label: "GeoTrust Universal CA"
|
754 |
-
# Serial: 1
|
755 |
-
# MD5 Fingerprint: 92:65:58:8b:a2:1a:31:72:73:68:5c:b4:a5:7a:07:48
|
756 |
-
# SHA1 Fingerprint: e6:21:f3:35:43:79:05:9a:4b:68:30:9d:8a:2f:74:22:15:87:ec:79
|
757 |
-
# SHA256 Fingerprint: a0:45:9b:9f:63:b2:25:59:f5:fa:5d:4c:6d:b3:f9:f7:2f:f1:93:42:03:35:78:f0:73:bf:1d:1b:46:cb:b9:12
|
758 |
-
-----BEGIN CERTIFICATE-----
|
759 |
-
MIIFaDCCA1CgAwIBAgIBATANBgkqhkiG9w0BAQUFADBFMQswCQYDVQQGEwJVUzEW
|
760 |
-
MBQGA1UEChMNR2VvVHJ1c3QgSW5jLjEeMBwGA1UEAxMVR2VvVHJ1c3QgVW5pdmVy
|
761 |
-
c2FsIENBMB4XDTA0MDMwNDA1MDAwMFoXDTI5MDMwNDA1MDAwMFowRTELMAkGA1UE
|
762 |
-
BhMCVVMxFjAUBgNVBAoTDUdlb1RydXN0IEluYy4xHjAcBgNVBAMTFUdlb1RydXN0
|
763 |
-
IFVuaXZlcnNhbCBDQTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAKYV
|
764 |
-
VaCjxuAfjJ0hUNfBvitbtaSeodlyWL0AG0y/YckUHUWCq8YdgNY96xCcOq9tJPi8
|
765 |
-
cQGeBvV8Xx7BDlXKg5pZMK4ZyzBIle0iN430SppyZj6tlcDgFgDgEB8rMQ7XlFTT
|
766 |
-
QjOgNB0eRXbdT8oYN+yFFXoZCPzVx5zw8qkuEKmS5j1YPakWaDwvdSEYfyh3peFh
|
767 |
-
F7em6fgemdtzbvQKoiFs7tqqhZJmr/Z6a4LauiIINQ/PQvE1+mrufislzDoR5G2v
|
768 |
-
c7J2Ha3QsnhnGqQ5HFELZ1aD/ThdDc7d8Lsrlh/eezJS/R27tQahsiFepdaVaH/w
|
769 |
-
mZ7cRQg+59IJDTWU3YBOU5fXtQlEIGQWFwMCTFMNaN7VqnJNk22CDtucvc+081xd
|
770 |
-
VHppCZbW2xHBjXWotM85yM48vCR85mLK4b19p71XZQvk/iXttmkQ3CgaRr0BHdCX
|
771 |
-
teGYO8A3ZNY9lO4L4fUorgtWv3GLIylBjobFS1J72HGrH4oVpjuDWtdYAVHGTEHZ
|
772 |
-
f9hBZ3KiKN9gg6meyHv8U3NyWfWTehd2Ds735VzZC1U0oqpbtWpU5xPKV+yXbfRe
|
773 |
-
Bi9Fi1jUIxaS5BZuKGNZMN9QAZxjiRqf2xeUgnA3wySemkfWWspOqGmJch+RbNt+
|
774 |
-
nhutxx9z3SxPGWX9f5NAEC7S8O08ni4oPmkmM8V7AgMBAAGjYzBhMA8GA1UdEwEB
|
775 |
-
/wQFMAMBAf8wHQYDVR0OBBYEFNq7LqqwDLiIJlF0XG0D08DYj3rWMB8GA1UdIwQY
|
776 |
-
MBaAFNq7LqqwDLiIJlF0XG0D08DYj3rWMA4GA1UdDwEB/wQEAwIBhjANBgkqhkiG
|
777 |
-
9w0BAQUFAAOCAgEAMXjmx7XfuJRAyXHEqDXsRh3ChfMoWIawC/yOsjmPRFWrZIRc
|
778 |
-
aanQmjg8+uUfNeVE44B5lGiku8SfPeE0zTBGi1QrlaXv9z+ZhP015s8xxtxqv6fX
|
779 |
-
IwjhmF7DWgh2qaavdy+3YL1ERmrvl/9zlcGO6JP7/TG37FcREUWbMPEaiDnBTzyn
|
780 |
-
ANXH/KttgCJwpQzgXQQpAvvLoJHRfNbDflDVnVi+QTjruXU8FdmbyUqDWcDaU/0z
|
781 |
-
uzYYm4UPFd3uLax2k7nZAY1IEKj79TiG8dsKxr2EoyNB3tZ3b4XUhRxQ4K5RirqN
|
782 |
-
Pnbiucon8l+f725ZDQbYKxek0nxru18UGkiPGkzns0ccjkxFKyDuSN/n3QmOGKja
|
783 |
-
QI2SJhFTYXNd673nxE0pN2HrrDktZy4W1vUAg4WhzH92xH3kt0tm7wNFYGm2DFKW
|
784 |
-
koRepqO1pD4r2czYG0eq8kTaT/kD6PAUyz/zg97QwVTjt+gKN02LIFkDMBmhLMi9
|
785 |
-
ER/frslKxfMnZmaGrGiR/9nmUxwPi1xpZQomyB40w11Re9epnAahNt3ViZS82eQt
|
786 |
-
DF4JbAiXfKM9fJP/P6EUp8+1Xevb2xzEdt+Iub1FBZUbrvxGakyvSOPOrg/Sfuvm
|
787 |
-
bJxPgWp6ZKy7PtXny3YuxadIwVyQD8vIP/rmMuGNG2+k5o7Y+SlIis5z/iw=
|
788 |
-
-----END CERTIFICATE-----
|
789 |
-
|
790 |
-
# Issuer: CN=GeoTrust Universal CA 2 O=GeoTrust Inc.
|
791 |
-
# Subject: CN=GeoTrust Universal CA 2 O=GeoTrust Inc.
|
792 |
-
# Label: "GeoTrust Universal CA 2"
|
793 |
-
# Serial: 1
|
794 |
-
# MD5 Fingerprint: 34:fc:b8:d0:36:db:9e:14:b3:c2:f2:db:8f:e4:94:c7
|
795 |
-
# SHA1 Fingerprint: 37:9a:19:7b:41:85:45:35:0c:a6:03:69:f3:3c:2e:af:47:4f:20:79
|
796 |
-
# SHA256 Fingerprint: a0:23:4f:3b:c8:52:7c:a5:62:8e:ec:81:ad:5d:69:89:5d:a5:68:0d:c9:1d:1c:b8:47:7f:33:f8:78:b9:5b:0b
|
797 |
-
-----BEGIN CERTIFICATE-----
|
798 |
-
MIIFbDCCA1SgAwIBAgIBATANBgkqhkiG9w0BAQUFADBHMQswCQYDVQQGEwJVUzEW
|
799 |
-
MBQGA1UEChMNR2VvVHJ1c3QgSW5jLjEgMB4GA1UEAxMXR2VvVHJ1c3QgVW5pdmVy
|
800 |
-
c2FsIENBIDIwHhcNMDQwMzA0MDUwMDAwWhcNMjkwMzA0MDUwMDAwWjBHMQswCQYD
|
801 |
-
VQQGEwJVUzEWMBQGA1UEChMNR2VvVHJ1c3QgSW5jLjEgMB4GA1UEAxMXR2VvVHJ1
|
802 |
-
c3QgVW5pdmVyc2FsIENBIDIwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoIC
|
803 |
-
AQCzVFLByT7y2dyxUxpZKeexw0Uo5dfR7cXFS6GqdHtXr0om/Nj1XqduGdt0DE81
|
804 |
-
WzILAePb63p3NeqqWuDW6KFXlPCQo3RWlEQwAx5cTiuFJnSCegx2oG9NzkEtoBUG
|
805 |
-
FF+3Qs17j1hhNNwqCPkuwwGmIkQcTAeC5lvO0Ep8BNMZcyfwqph/Lq9O64ceJHdq
|
806 |
-
XbboW0W63MOhBW9Wjo8QJqVJwy7XQYci4E+GymC16qFjwAGXEHm9ADwSbSsVsaxL
|
807 |
-
se4YuU6W3Nx2/zu+z18DwPw76L5GG//aQMJS9/7jOvdqdzXQ2o3rXhhqMcceujwb
|
808 |
-
KNZrVMaqW9eiLBsZzKIC9ptZvTdrhrVtgrrY6slWvKk2WP0+GfPtDCapkzj4T8Fd
|
809 |
-
IgbQl+rhrcZV4IErKIM6+vR7IVEAvlI4zs1meaj0gVbi0IMJR1FbUGrP20gaXT73
|
810 |
-
y/Zl92zxlfgCOzJWgjl6W70viRu/obTo/3+NjN8D8WBOWBFM66M/ECuDmgFz2ZRt
|
811 |
-
hAAnZqzwcEAJQpKtT5MNYQlRJNiS1QuUYbKHsu3/mjX/hVTK7URDrBs8FmtISgoc
|
812 |
-
QIgfksILAAX/8sgCSqSqqcyZlpwvWOB94b67B9xfBHJcMTTD7F8t4D1kkCLm0ey4
|
813 |
-
Lt1ZrtmhN79UNdxzMk+MBB4zsslG8dhcyFVQyWi9qLo2CQIDAQABo2MwYTAPBgNV
|
814 |
-
HRMBAf8EBTADAQH/MB0GA1UdDgQWBBR281Xh+qQ2+/CfXGJx7Tz0RzgQKzAfBgNV
|
815 |
-
HSMEGDAWgBR281Xh+qQ2+/CfXGJx7Tz0RzgQKzAOBgNVHQ8BAf8EBAMCAYYwDQYJ
|
816 |
-
KoZIhvcNAQEFBQADggIBAGbBxiPz2eAubl/oz66wsCVNK/g7WJtAJDday6sWSf+z
|
817 |
-
dXkzoS9tcBc0kf5nfo/sm+VegqlVHy/c1FEHEv6sFj4sNcZj/NwQ6w2jqtB8zNHQ
|
818 |
-
L1EuxBRa3ugZ4T7GzKQp5y6EqgYweHZUcyiYWTjgAA1i00J9IZ+uPTqM1fp3DRgr
|
819 |
-
Fg5fNuH8KrUwJM/gYwx7WBr+mbpCErGR9Hxo4sjoryzqyX6uuyo9DRXcNJW2GHSo
|
820 |
-
ag/HtPQTxORb7QrSpJdMKu0vbBKJPfEncKpqA1Ihn0CoZ1Dy81of398j9tx4TuaY
|
821 |
-
T1U6U+Pv8vSfx3zYWK8pIpe44L2RLrB27FcRz+8pRPPphXpgY+RdM4kX2TGq2tbz
|
822 |
-
GDVyz4crL2MjhF2EjD9XoIj8mZEoJmmZ1I+XRL6O1UixpCgp8RW04eWe3fiPpm8m
|
823 |
-
1wk8OhwRDqZsN/etRIcsKMfYdIKz0G9KV7s1KSegi+ghp4dkNl3M2Basx7InQJJV
|
824 |
-
OCiNUW7dFGdTbHFcJoRNdVq2fmBWqU2t+5sel/MN2dKXVHfaPRK34B7vCAas+YWH
|
825 |
-
6aLcr34YEoP9VhdBLtUpgn2Z9DH2canPLAEnpQW5qrJITirvn5NSUZU8UnOOVkwX
|
826 |
-
QMAJKOSLakhT2+zNVVXxxvjpoixMptEmX36vWkzaH6byHCx+rgIW0lbQL1dTR+iS
|
827 |
-
-----END CERTIFICATE-----
|
828 |
-
|
829 |
-
# Issuer: CN=America Online Root Certification Authority 1 O=America Online Inc.
|
830 |
-
# Subject: CN=America Online Root Certification Authority 1 O=America Online Inc.
|
831 |
-
# Label: "America Online Root Certification Authority 1"
|
832 |
-
# Serial: 1
|
833 |
-
# MD5 Fingerprint: 14:f1:08:ad:9d:fa:64:e2:89:e7:1c:cf:a8:ad:7d:5e
|
834 |
-
# SHA1 Fingerprint: 39:21:c1:15:c1:5d:0e:ca:5c:cb:5b:c4:f0:7d:21:d8:05:0b:56:6a
|
835 |
-
# SHA256 Fingerprint: 77:40:73:12:c6:3a:15:3d:5b:c0:0b:4e:51:75:9c:df:da:c2:37:dc:2a:33:b6:79:46:e9:8e:9b:fa:68:0a:e3
|
836 |
-
-----BEGIN CERTIFICATE-----
|
837 |
-
MIIDpDCCAoygAwIBAgIBATANBgkqhkiG9w0BAQUFADBjMQswCQYDVQQGEwJVUzEc
|
838 |
-
MBoGA1UEChMTQW1lcmljYSBPbmxpbmUgSW5jLjE2MDQGA1UEAxMtQW1lcmljYSBP
|
839 |
-
bmxpbmUgUm9vdCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSAxMB4XDTAyMDUyODA2
|
840 |
-
MDAwMFoXDTM3MTExOTIwNDMwMFowYzELMAkGA1UEBhMCVVMxHDAaBgNVBAoTE0Ft
|
841 |
-
ZXJpY2EgT25saW5lIEluYy4xNjA0BgNVBAMTLUFtZXJpY2EgT25saW5lIFJvb3Qg
|
842 |
-
Q2VydGlmaWNhdGlvbiBBdXRob3JpdHkgMTCCASIwDQYJKoZIhvcNAQEBBQADggEP
|
843 |
-
ADCCAQoCggEBAKgv6KRpBgNHw+kqmP8ZonCaxlCyfqXfaE0bfA+2l2h9LaaLl+lk
|
844 |
-
hsmj76CGv2BlnEtUiMJIxUo5vxTjWVXlGbR0yLQFOVwWpeKVBeASrlmLojNoWBym
|
845 |
-
1BW32J/X3HGrfpq/m44zDyL9Hy7nBzbvYjnF3cu6JRQj3gzGPTzOggjmZj7aUTsW
|
846 |
-
OqMFf6Dch9Wc/HKpoH145LcxVR5lu9RhsCFg7RAycsWSJR74kEoYeEfffjA3PlAb
|
847 |
-
2xzTa5qGUwew76wGePiEmf4hjUyAtgyC9mZweRrTT6PP8c9GsEsPPt2IYriMqQko
|
848 |
-
O3rHl+Ee5fSfwMCuJKDIodkP1nsmgmkyPacCAwEAAaNjMGEwDwYDVR0TAQH/BAUw
|
849 |
-
AwEB/zAdBgNVHQ4EFgQUAK3Zo/Z59m50qX8zPYEX10zPM94wHwYDVR0jBBgwFoAU
|
850 |
-
AK3Zo/Z59m50qX8zPYEX10zPM94wDgYDVR0PAQH/BAQDAgGGMA0GCSqGSIb3DQEB
|
851 |
-
BQUAA4IBAQB8itEfGDeC4Liwo+1WlchiYZwFos3CYiZhzRAW18y0ZTTQEYqtqKkF
|
852 |
-
Zu90821fnZmv9ov761KyBZiibyrFVL0lvV+uyIbqRizBs73B6UlwGBaXCBOMIOAb
|
853 |
-
LjpHyx7kADCVW/RFo8AasAFOq73AI25jP4BKxQft3OJvx8Fi8eNy1gTIdGcL+oir
|
854 |
-
oQHIb/AUr9KZzVGTfu0uOMe9zkZQPXLjeSWdm4grECDdpbgyn43gKd8hdIaC2y+C
|
855 |
-
MMbHNYaz+ZZfRtsMRf3zUMNvxsNIrUam4SdHCh0Om7bCd39j8uB9Gr784N/Xx6ds
|
856 |
-
sPmuujz9dLQR6FgNgLzTqIA6me11zEZ7
|
857 |
-
-----END CERTIFICATE-----
|
858 |
-
|
859 |
-
# Issuer: CN=America Online Root Certification Authority 2 O=America Online Inc.
|
860 |
-
# Subject: CN=America Online Root Certification Authority 2 O=America Online Inc.
|
861 |
-
# Label: "America Online Root Certification Authority 2"
|
862 |
-
# Serial: 1
|
863 |
-
# MD5 Fingerprint: d6:ed:3c:ca:e2:66:0f:af:10:43:0d:77:9b:04:09:bf
|
864 |
-
# SHA1 Fingerprint: 85:b5:ff:67:9b:0c:79:96:1f:c8:6e:44:22:00:46:13:db:17:92:84
|
865 |
-
# SHA256 Fingerprint: 7d:3b:46:5a:60:14:e5:26:c0:af:fc:ee:21:27:d2:31:17:27:ad:81:1c:26:84:2d:00:6a:f3:73:06:cc:80:bd
|
866 |
-
-----BEGIN CERTIFICATE-----
|
867 |
-
MIIFpDCCA4ygAwIBAgIBATANBgkqhkiG9w0BAQUFADBjMQswCQYDVQQGEwJVUzEc
|
868 |
-
MBoGA1UEChMTQW1lcmljYSBPbmxpbmUgSW5jLjE2MDQGA1UEAxMtQW1lcmljYSBP
|
869 |
-
bmxpbmUgUm9vdCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSAyMB4XDTAyMDUyODA2
|
870 |
-
MDAwMFoXDTM3MDkyOTE0MDgwMFowYzELMAkGA1UEBhMCVVMxHDAaBgNVBAoTE0Ft
|
871 |
-
ZXJpY2EgT25saW5lIEluYy4xNjA0BgNVBAMTLUFtZXJpY2EgT25saW5lIFJvb3Qg
|
872 |
-
Q2VydGlmaWNhdGlvbiBBdXRob3JpdHkgMjCCAiIwDQYJKoZIhvcNAQEBBQADggIP
|
873 |
-
ADCCAgoCggIBAMxBRR3pPU0Q9oyxQcngXssNt79Hc9PwVU3dxgz6sWYFas14tNwC
|
874 |
-
206B89enfHG8dWOgXeMHDEjsJcQDIPT/DjsS/5uN4cbVG7RtIuOx238hZK+GvFci
|
875 |
-
KtZHgVdEglZTvYYUAQv8f3SkWq7xuhG1m1hagLQ3eAkzfDJHA1zEpYNI9FdWboE2
|
876 |
-
JxhP7JsowtS013wMPgwr38oE18aO6lhOqKSlGBxsRZijQdEt0sdtjRnxrXm3gT+9
|
877 |
-
BoInLRBYBbV4Bbkv2wxrkJB+FFk4u5QkE+XRnRTf04JNRvCAOVIyD+OEsnpD8l7e
|
878 |
-
Xz8d3eOyG6ChKiMDbi4BFYdcpnV1x5dhvt6G3NRI270qv0pV2uh9UPu0gBe4lL8B
|
879 |
-
PeraunzgWGcXuVjgiIZGZ2ydEEdYMtA1fHkqkKJaEBEjNa0vzORKW6fIJ/KD3l67
|
880 |
-
Xnfn6KVuY8INXWHQjNJsWiEOyiijzirplcdIz5ZvHZIlyMbGwcEMBawmxNJ10uEq
|
881 |
-
Z8A9W6Wa6897GqidFEXlD6CaZd4vKL3Ob5Rmg0gp2OpljK+T2WSfVVcmv2/LNzGZ
|
882 |
-
o2C7HK2JNDJiuEMhBnIMoVxtRsX6Kc8w3onccVvdtjc+31D1uAclJuW8tf48ArO3
|
883 |
-
+L5DwYcRlJ4jbBeKuIonDFRH8KmzwICMoCfrHRnjB453cMor9H124HhnAgMBAAGj
|
884 |
-
YzBhMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFE1FwWg4u3OpaaEg5+31IqEj
|
885 |
-
FNeeMB8GA1UdIwQYMBaAFE1FwWg4u3OpaaEg5+31IqEjFNeeMA4GA1UdDwEB/wQE
|
886 |
-
AwIBhjANBgkqhkiG9w0BAQUFAAOCAgEAZ2sGuV9FOypLM7PmG2tZTiLMubekJcmn
|
887 |
-
xPBUlgtk87FYT15R/LKXeydlwuXK5w0MJXti4/qftIe3RUavg6WXSIylvfEWK5t2
|
888 |
-
LHo1YGwRgJfMqZJS5ivmae2p+DYtLHe/YUjRYwu5W1LtGLBDQiKmsXeu3mnFzccc
|
889 |
-
obGlHBD7GL4acN3Bkku+KVqdPzW+5X1R+FXgJXUjhx5c3LqdsKyzadsXg8n33gy8
|
890 |
-
CNyRnqjQ1xU3c6U1uPx+xURABsPr+CKAXEfOAuMRn0T//ZoyzH1kUQ7rVyZ2OuMe
|
891 |
-
IjzCpjbdGe+n/BLzJsBZMYVMnNjP36TMzCmT/5RtdlwTCJfy7aULTd3oyWgOZtMA
|
892 |
-
DjMSW7yV5TKQqLPGbIOtd+6Lfn6xqavT4fG2wLHqiMDn05DpKJKUe2h7lyoKZy2F
|
893 |
-
AjgQ5ANh1NolNscIWC2hp1GvMApJ9aZphwctREZ2jirlmjvXGKL8nDgQzMY70rUX
|
894 |
-
Om/9riW99XJZZLF0KjhfGEzfz3EEWjbUvy+ZnOjZurGV5gJLIaFb1cFPj65pbVPb
|
895 |
-
AZO1XB4Y3WRayhgoPmMEEf0cjQAPuDffZ4qdZqkCapH/E8ovXYO8h5Ns3CRRFgQl
|
896 |
-
Zvqz2cK6Kb6aSDiCmfS/O0oxGfm/jiEzFMpPVF/7zvuPcX/9XhmgD0uRuMRUvAaw
|
897 |
-
RY8mkaKO/qk=
|
898 |
-
-----END CERTIFICATE-----
|
899 |
-
|
900 |
-
# Issuer: CN=AAA Certificate Services O=Comodo CA Limited
|
901 |
-
# Subject: CN=AAA Certificate Services O=Comodo CA Limited
|
902 |
-
# Label: "Comodo AAA Services root"
|
903 |
-
# Serial: 1
|
904 |
-
# MD5 Fingerprint: 49:79:04:b0:eb:87:19:ac:47:b0:bc:11:51:9b:74:d0
|
905 |
-
# SHA1 Fingerprint: d1:eb:23:a4:6d:17:d6:8f:d9:25:64:c2:f1:f1:60:17:64:d8:e3:49
|
906 |
-
# SHA256 Fingerprint: d7:a7:a0:fb:5d:7e:27:31:d7:71:e9:48:4e:bc:de:f7:1d:5f:0c:3e:0a:29:48:78:2b:c8:3e:e0:ea:69:9e:f4
|
907 |
-
-----BEGIN CERTIFICATE-----
|
908 |
-
MIIEMjCCAxqgAwIBAgIBATANBgkqhkiG9w0BAQUFADB7MQswCQYDVQQGEwJHQjEb
|
909 |
-
MBkGA1UECAwSR3JlYXRlciBNYW5jaGVzdGVyMRAwDgYDVQQHDAdTYWxmb3JkMRow
|
910 |
-
GAYDVQQKDBFDb21vZG8gQ0EgTGltaXRlZDEhMB8GA1UEAwwYQUFBIENlcnRpZmlj
|
911 |
-
YXRlIFNlcnZpY2VzMB4XDTA0MDEwMTAwMDAwMFoXDTI4MTIzMTIzNTk1OVowezEL
|
912 |
-
MAkGA1UEBhMCR0IxGzAZBgNVBAgMEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4GA1UE
|
913 |
-
BwwHU2FsZm9yZDEaMBgGA1UECgwRQ29tb2RvIENBIExpbWl0ZWQxITAfBgNVBAMM
|
914 |
-
GEFBQSBDZXJ0aWZpY2F0ZSBTZXJ2aWNlczCCASIwDQYJKoZIhvcNAQEBBQADggEP
|
915 |
-
ADCCAQoCggEBAL5AnfRu4ep2hxxNRUSOvkbIgwadwSr+GB+O5AL686tdUIoWMQua
|
916 |
-
BtDFcCLNSS1UY8y2bmhGC1Pqy0wkwLxyTurxFa70VJoSCsN6sjNg4tqJVfMiWPPe
|
917 |
-
3M/vg4aijJRPn2jymJBGhCfHdr/jzDUsi14HZGWCwEiwqJH5YZ92IFCokcdmtet4
|
918 |
-
YgNW8IoaE+oxox6gmf049vYnMlhvB/VruPsUK6+3qszWY19zjNoFmag4qMsXeDZR
|
919 |
-
rOme9Hg6jc8P2ULimAyrL58OAd7vn5lJ8S3frHRNG5i1R8XlKdH5kBjHYpy+g8cm
|
920 |
-
ez6KJcfA3Z3mNWgQIJ2P2N7Sw4ScDV7oL8kCAwEAAaOBwDCBvTAdBgNVHQ4EFgQU
|
921 |
-
oBEKIz6W8Qfs4q8p74Klf9AwpLQwDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQF
|
922 |
-
MAMBAf8wewYDVR0fBHQwcjA4oDagNIYyaHR0cDovL2NybC5jb21vZG9jYS5jb20v
|
923 |
-
QUFBQ2VydGlmaWNhdGVTZXJ2aWNlcy5jcmwwNqA0oDKGMGh0dHA6Ly9jcmwuY29t
|
924 |
-
b2RvLm5ldC9BQUFDZXJ0aWZpY2F0ZVNlcnZpY2VzLmNybDANBgkqhkiG9w0BAQUF
|
925 |
-
AAOCAQEACFb8AvCb6P+k+tZ7xkSAzk/ExfYAWMymtrwUSWgEdujm7l3sAg9g1o1Q
|
926 |
-
GE8mTgHj5rCl7r+8dFRBv/38ErjHT1r0iWAFf2C3BUrz9vHCv8S5dIa2LX1rzNLz
|
927 |
-
Rt0vxuBqw8M0Ayx9lt1awg6nCpnBBYurDC/zXDrPbDdVCYfeU0BsWO/8tqtlbgT2
|
928 |
-
G9w84FoVxp7Z8VlIMCFlA2zs6SFz7JsDoeA3raAVGI/6ugLOpyypEBMs1OUIJqsi
|
929 |
-
l2D4kF501KKaU73yqWjgom7C12yxow+ev+to51byrvLjKzg6CYG1a4XXvi3tPxq3
|
930 |
-
smPi9WIsgtRqAEFQ8TmDn5XpNpaYbg==
|
931 |
-
-----END CERTIFICATE-----
|
932 |
-
|
933 |
-
# Issuer: CN=Secure Certificate Services O=Comodo CA Limited
|
934 |
-
# Subject: CN=Secure Certificate Services O=Comodo CA Limited
|
935 |
-
# Label: "Comodo Secure Services root"
|
936 |
-
# Serial: 1
|
937 |
-
# MD5 Fingerprint: d3:d9:bd:ae:9f:ac:67:24:b3:c8:1b:52:e1:b9:a9:bd
|
938 |
-
# SHA1 Fingerprint: 4a:65:d5:f4:1d:ef:39:b8:b8:90:4a:4a:d3:64:81:33:cf:c7:a1:d1
|
939 |
-
# SHA256 Fingerprint: bd:81:ce:3b:4f:65:91:d1:1a:67:b5:fc:7a:47:fd:ef:25:52:1b:f9:aa:4e:18:b9:e3:df:2e:34:a7:80:3b:e8
|
940 |
-
-----BEGIN CERTIFICATE-----
|
941 |
-
MIIEPzCCAyegAwIBAgIBATANBgkqhkiG9w0BAQUFADB+MQswCQYDVQQGEwJHQjEb
|
942 |
-
MBkGA1UECAwSR3JlYXRlciBNYW5jaGVzdGVyMRAwDgYDVQQHDAdTYWxmb3JkMRow
|
943 |
-
GAYDVQQKDBFDb21vZG8gQ0EgTGltaXRlZDEkMCIGA1UEAwwbU2VjdXJlIENlcnRp
|
944 |
-
ZmljYXRlIFNlcnZpY2VzMB4XDTA0MDEwMTAwMDAwMFoXDTI4MTIzMTIzNTk1OVow
|
945 |
-
fjELMAkGA1UEBhMCR0IxGzAZBgNVBAgMEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4G
|
946 |
-
A1UEBwwHU2FsZm9yZDEaMBgGA1UECgwRQ29tb2RvIENBIExpbWl0ZWQxJDAiBgNV
|
947 |
-
BAMMG1NlY3VyZSBDZXJ0aWZpY2F0ZSBTZXJ2aWNlczCCASIwDQYJKoZIhvcNAQEB
|
948 |
-
BQADggEPADCCAQoCggEBAMBxM4KK0HDrc4eCQNUd5MvJDkKQ+d40uaG6EfQlhfPM
|
949 |
-
cm3ye5drswfxdySRXyWP9nQ95IDC+DwN879A6vfIUtFyb+/Iq0G4bi4XKpVpDM3S
|
950 |
-
HpR7LZQdqnXXs5jLrLxkU0C8j6ysNstcrbvd4JQX7NFc0L/vpZXJkMWwrPsbQ996
|
951 |
-
CF23uPJAGysnnlDOXmWCiIxe004MeuoIkbY2qitC++rCoznl2yY4rYsK7hljxxwk
|
952 |
-
3wN42ubqwUcaCwtGCd0C/N7Lh1/XMGNooa7cMqG6vv5Eq2i2pRcV/b3Vp6ea5EQz
|
953 |
-
6YiO/O1R65NxTq0B50SOqy3LqP4BSUjwwN3HaNiS/j0CAwEAAaOBxzCBxDAdBgNV
|
954 |
-
HQ4EFgQUPNiTiMLAggnMAZkGkyDpnnAJY08wDgYDVR0PAQH/BAQDAgEGMA8GA1Ud
|
955 |
-
EwEB/wQFMAMBAf8wgYEGA1UdHwR6MHgwO6A5oDeGNWh0dHA6Ly9jcmwuY29tb2Rv
|
956 |
-
Y2EuY29tL1NlY3VyZUNlcnRpZmljYXRlU2VydmljZXMuY3JsMDmgN6A1hjNodHRw
|
957 |
-
Oi8vY3JsLmNvbW9kby5uZXQvU2VjdXJlQ2VydGlmaWNhdGVTZXJ2aWNlcy5jcmww
|
958 |
-
DQYJKoZIhvcNAQEFBQADggEBAIcBbSMdflsXfcFhMs+P5/OKlFlm4J4oqF7Tt/Q0
|
959 |
-
5qo5spcWxYJvMqTpjOev/e/C6LlLqqP05tqNZSH7uoDrJiiFGv45jN5bBAS0VPmj
|
960 |
-
Z55B+glSzAVIqMk/IQQezkhr/IXownuvf7fM+F86/TXGDe+X3EyrEeFryzHRbPtI
|
961 |
-
gKvcnDe4IRRLDXE97IMzbtFuMhbsmMcWi1mmNKsFVy2T96oTy9IT4rcuO81rUBcJ
|
962 |
-
aD61JlfutuC23bkpgHl9j6PwpCikFcSF9CfUa7/lXORlAnZUtOM3ZiTTGWHIUhDl
|
963 |
-
izeauan5Hb/qmZJhlv8BzaFfDbxxvA6sCx1HRR3B7Hzs/Sk=
|
964 |
-
-----END CERTIFICATE-----
|
965 |
-
|
966 |
-
# Issuer: CN=Trusted Certificate Services O=Comodo CA Limited
|
967 |
-
# Subject: CN=Trusted Certificate Services O=Comodo CA Limited
|
968 |
-
# Label: "Comodo Trusted Services root"
|
969 |
-
# Serial: 1
|
970 |
-
# MD5 Fingerprint: 91:1b:3f:6e:cd:9e:ab:ee:07:fe:1f:71:d2:b3:61:27
|
971 |
-
# SHA1 Fingerprint: e1:9f:e3:0e:8b:84:60:9e:80:9b:17:0d:72:a8:c5:ba:6e:14:09:bd
|
972 |
-
# SHA256 Fingerprint: 3f:06:e5:56:81:d4:96:f5:be:16:9e:b5:38:9f:9f:2b:8f:f6:1e:17:08:df:68:81:72:48:49:cd:5d:27:cb:69
|
973 |
-
-----BEGIN CERTIFICATE-----
|
974 |
-
MIIEQzCCAyugAwIBAgIBATANBgkqhkiG9w0BAQUFADB/MQswCQYDVQQGEwJHQjEb
|
975 |
-
MBkGA1UECAwSR3JlYXRlciBNYW5jaGVzdGVyMRAwDgYDVQQHDAdTYWxmb3JkMRow
|
976 |
-
GAYDVQQKDBFDb21vZG8gQ0EgTGltaXRlZDElMCMGA1UEAwwcVHJ1c3RlZCBDZXJ0
|
977 |
-
aWZpY2F0ZSBTZXJ2aWNlczAeFw0wNDAxMDEwMDAwMDBaFw0yODEyMzEyMzU5NTla
|
978 |
-
MH8xCzAJBgNVBAYTAkdCMRswGQYDVQQIDBJHcmVhdGVyIE1hbmNoZXN0ZXIxEDAO
|
979 |
-
BgNVBAcMB1NhbGZvcmQxGjAYBgNVBAoMEUNvbW9kbyBDQSBMaW1pdGVkMSUwIwYD
|
980 |
-
VQQDDBxUcnVzdGVkIENlcnRpZmljYXRlIFNlcnZpY2VzMIIBIjANBgkqhkiG9w0B
|
981 |
-
AQEFAAOCAQ8AMIIBCgKCAQEA33FvNlhTWvI2VFeAxHQIIO0Yfyod5jWaHiWsnOWW
|
982 |
-
fnJSoBVC21ndZHoa0Lh73TkVvFVIxO06AOoxEbrycXQaZ7jPM8yoMa+j49d/vzMt
|
983 |
-
TGo87IvDktJTdyR0nAducPy9C1t2ul/y/9c3S0pgePfw+spwtOpZqqPOSC+pw7IL
|
984 |
-
fhdyFgymBwwbOM/JYrc/oJOlh0Hyt3BAd9i+FHzjqMB6juljatEPmsbS9Is6FARW
|
985 |
-
1O24zG71++IsWL1/T2sr92AkWCTOJu80kTrV44HQsvAEAtdbtz6SrGsSivnkBbA7
|
986 |
-
kUlcsutT6vifR4buv5XAwAaf0lteERv0xwQ1KdJVXOTt6wIDAQABo4HJMIHGMB0G
|
987 |
-
A1UdDgQWBBTFe1i97doladL3WRaoszLAeydb9DAOBgNVHQ8BAf8EBAMCAQYwDwYD
|
988 |
-
VR0TAQH/BAUwAwEB/zCBgwYDVR0fBHwwejA8oDqgOIY2aHR0cDovL2NybC5jb21v
|
989 |
-
ZG9jYS5jb20vVHJ1c3RlZENlcnRpZmljYXRlU2VydmljZXMuY3JsMDqgOKA2hjRo
|
990 |
-
dHRwOi8vY3JsLmNvbW9kby5uZXQvVHJ1c3RlZENlcnRpZmljYXRlU2VydmljZXMu
|
991 |
-
Y3JsMA0GCSqGSIb3DQEBBQUAA4IBAQDIk4E7ibSvuIQSTI3S8NtwuleGFTQQuS9/
|
992 |
-
HrCoiWChisJ3DFBKmwCL2Iv0QeLQg4pKHBQGsKNoBXAxMKdTmw7pSqBYaWcOrp32
|
993 |
-
pSxBvzwGa+RZzG0Q8ZZvH9/0BAKkn0U+yNj6NkZEUD+Cl5EfKNsYEYwq5GWDVxIS
|
994 |
-
jBc/lDb+XbDABHcTuPQV1T84zJQ6VdCsmPW6AF/ghhmBeC8owH7TzEIK9a5QoNE+
|
995 |
-
xqFx7D+gIIxmOom0jtTYsU0lR+4viMi14QVFwL4Ucd56/Y57fU0IlqUSc/Atyjcn
|
996 |
-
dBInTMu2l+nZrghtWjlA3QVHdWpaIbOjGM9O9y5Xt5hwXsjEeLBi
|
997 |
-
-----END CERTIFICATE-----
|
998 |
-
|
999 |
-
# Issuer: CN=UTN - DATACorp SGC O=The USERTRUST Network OU=http://www.usertrust.com
|
1000 |
-
# Subject: CN=UTN - DATACorp SGC O=The USERTRUST Network OU=http://www.usertrust.com
|
1001 |
-
# Label: "UTN DATACorp SGC Root CA"
|
1002 |
-
# Serial: 91374294542884689855167577680241077609
|
1003 |
-
# MD5 Fingerprint: b3:a5:3e:77:21:6d:ac:4a:c0:c9:fb:d5:41:3d:ca:06
|
1004 |
-
# SHA1 Fingerprint: 58:11:9f:0e:12:82:87:ea:50:fd:d9:87:45:6f:4f:78:dc:fa:d6:d4
|
1005 |
-
# SHA256 Fingerprint: 85:fb:2f:91:dd:12:27:5a:01:45:b6:36:53:4f:84:02:4a:d6:8b:69:b8:ee:88:68:4f:f7:11:37:58:05:b3:48
|
1006 |
-
-----BEGIN CERTIFICATE-----
|
1007 |
-
MIIEXjCCA0agAwIBAgIQRL4Mi1AAIbQR0ypoBqmtaTANBgkqhkiG9w0BAQUFADCB
|
1008 |
-
kzELMAkGA1UEBhMCVVMxCzAJBgNVBAgTAlVUMRcwFQYDVQQHEw5TYWx0IExha2Ug
|
1009 |
-
Q2l0eTEeMBwGA1UEChMVVGhlIFVTRVJUUlVTVCBOZXR3b3JrMSEwHwYDVQQLExho
|
1010 |
-
dHRwOi8vd3d3LnVzZXJ0cnVzdC5jb20xGzAZBgNVBAMTElVUTiAtIERBVEFDb3Jw
|
1011 |
-
IFNHQzAeFw05OTA2MjQxODU3MjFaFw0xOTA2MjQxOTA2MzBaMIGTMQswCQYDVQQG
|
1012 |
-
EwJVUzELMAkGA1UECBMCVVQxFzAVBgNVBAcTDlNhbHQgTGFrZSBDaXR5MR4wHAYD
|
1013 |
-
VQQKExVUaGUgVVNFUlRSVVNUIE5ldHdvcmsxITAfBgNVBAsTGGh0dHA6Ly93d3cu
|
1014 |
-
dXNlcnRydXN0LmNvbTEbMBkGA1UEAxMSVVROIC0gREFUQUNvcnAgU0dDMIIBIjAN
|
1015 |
-
BgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA3+5YEKIrblXEjr8uRgnn4AgPLit6
|
1016 |
-
E5Qbvfa2gI5lBZMAHryv4g+OGQ0SR+ysraP6LnD43m77VkIVni5c7yPeIbkFdicZ
|
1017 |
-
D0/Ww5y0vpQZY/KmEQrrU0icvvIpOxboGqBMpsn0GFlowHDyUwDAXlCCpVZvNvlK
|
1018 |
-
4ESGoE1O1kduSUrLZ9emxAW5jh70/P/N5zbgnAVssjMiFdC04MwXwLLA9P4yPykq
|
1019 |
-
lXvY8qdOD1R8oQ2AswkDwf9c3V6aPryuvEeKaq5xyh+xKrhfQgUL7EYw0XILyulW
|
1020 |
-
bfXv33i+Ybqypa4ETLyorGkVl73v67SMvzX41MPRKA5cOp9wGDMgd8SirwIDAQAB
|
1021 |
-
o4GrMIGoMAsGA1UdDwQEAwIBxjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBRT
|
1022 |
-
MtGzz3/64PGgXYVOktKeRR20TzA9BgNVHR8ENjA0MDKgMKAuhixodHRwOi8vY3Js
|
1023 |
-
LnVzZXJ0cnVzdC5jb20vVVROLURBVEFDb3JwU0dDLmNybDAqBgNVHSUEIzAhBggr
|
1024 |
-
BgEFBQcDAQYKKwYBBAGCNwoDAwYJYIZIAYb4QgQBMA0GCSqGSIb3DQEBBQUAA4IB
|
1025 |
-
AQAnNZcAiosovcYzMB4p/OL31ZjUQLtgyr+rFywJNn9Q+kHcrpY6CiM+iVnJowft
|
1026 |
-
Gzet/Hy+UUla3joKVAgWRcKZsYfNjGjgaQPpxE6YsjuMFrMOoAyYUJuTqXAJyCyj
|
1027 |
-
j98C5OBxOvG0I3KgqgHf35g+FFCgMSa9KOlaMCZ1+XtgHI3zzVAmbQQnmt/VDUVH
|
1028 |
-
KWss5nbZqSl9Mt3JNjy9rjXxEZ4du5A/EkdOjtd+D2JzHVImOBwYSf0wdJrE5SIv
|
1029 |
-
2MCN7ZF6TACPcn9d2t0bi0Vr591pl6jFVkwPDPafepE39peC4N1xaf92P2BNPM/3
|
1030 |
-
mfnGV/TJVTl4uix5yaaIK/QI
|
1031 |
-
-----END CERTIFICATE-----
|
1032 |
-
|
1033 |
-
# Issuer: CN=UTN-USERFirst-Hardware O=The USERTRUST Network OU=http://www.usertrust.com
|
1034 |
-
# Subject: CN=UTN-USERFirst-Hardware O=The USERTRUST Network OU=http://www.usertrust.com
|
1035 |
-
# Label: "UTN USERFirst Hardware Root CA"
|
1036 |
-
# Serial: 91374294542884704022267039221184531197
|
1037 |
-
# MD5 Fingerprint: 4c:56:41:e5:0d:bb:2b:e8:ca:a3:ed:18:08:ad:43:39
|
1038 |
-
# SHA1 Fingerprint: 04:83:ed:33:99:ac:36:08:05:87:22:ed:bc:5e:46:00:e3:be:f9:d7
|
1039 |
-
# SHA256 Fingerprint: 6e:a5:47:41:d0:04:66:7e:ed:1b:48:16:63:4a:a3:a7:9e:6e:4b:96:95:0f:82:79:da:fc:8d:9b:d8:81:21:37
|
1040 |
-
-----BEGIN CERTIFICATE-----
|
1041 |
-
MIIEdDCCA1ygAwIBAgIQRL4Mi1AAJLQR0zYq/mUK/TANBgkqhkiG9w0BAQUFADCB
|
1042 |
-
lzELMAkGA1UEBhMCVVMxCzAJBgNVBAgTAlVUMRcwFQYDVQQHEw5TYWx0IExha2Ug
|
1043 |
-
Q2l0eTEeMBwGA1UEChMVVGhlIFVTRVJUUlVTVCBOZXR3b3JrMSEwHwYDVQQLExho
|
1044 |
-
dHRwOi8vd3d3LnVzZXJ0cnVzdC5jb20xHzAdBgNVBAMTFlVUTi1VU0VSRmlyc3Qt
|
1045 |
-
SGFyZHdhcmUwHhcNOTkwNzA5MTgxMDQyWhcNMTkwNzA5MTgxOTIyWjCBlzELMAkG
|
1046 |
-
A1UEBhMCVVMxCzAJBgNVBAgTAlVUMRcwFQYDVQQHEw5TYWx0IExha2UgQ2l0eTEe
|
1047 |
-
MBwGA1UEChMVVGhlIFVTRVJUUlVTVCBOZXR3b3JrMSEwHwYDVQQLExhodHRwOi8v
|
1048 |
-
d3d3LnVzZXJ0cnVzdC5jb20xHzAdBgNVBAMTFlVUTi1VU0VSRmlyc3QtSGFyZHdh
|
1049 |
-
cmUwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCx98M4P7Sof885glFn
|
1050 |
-
0G2f0v9Y8+efK+wNiVSZuTiZFvfgIXlIwrthdBKWHTxqctU8EGc6Oe0rE81m65UJ
|
1051 |
-
M6Rsl7HoxuzBdXmcRl6Nq9Bq/bkqVRcQVLMZ8Jr28bFdtqdt++BxF2uiiPsA3/4a
|
1052 |
-
MXcMmgF6sTLjKwEHOG7DpV4jvEWbe1DByTCP2+UretNb+zNAHqDVmBe8i4fDidNd
|
1053 |
-
oI6yqqr2jmmIBsX6iSHzCJ1pLgkzmykNRg+MzEk0sGlRvfkGzWitZky8PqxhvQqI
|
1054 |
-
DsjfPe58BEydCl5rkdbux+0ojatNh4lz0G6k0B4WixThdkQDf2Os5M1JnMWS9Ksy
|
1055 |
-
oUhbAgMBAAGjgbkwgbYwCwYDVR0PBAQDAgHGMA8GA1UdEwEB/wQFMAMBAf8wHQYD
|
1056 |
-
VR0OBBYEFKFyXyYbKJhDlV0HN9WFlp1L0sNFMEQGA1UdHwQ9MDswOaA3oDWGM2h0
|
1057 |
-
dHA6Ly9jcmwudXNlcnRydXN0LmNvbS9VVE4tVVNFUkZpcnN0LUhhcmR3YXJlLmNy
|
1058 |
-
bDAxBgNVHSUEKjAoBggrBgEFBQcDAQYIKwYBBQUHAwUGCCsGAQUFBwMGBggrBgEF
|
1059 |
-
BQcDBzANBgkqhkiG9w0BAQUFAAOCAQEARxkP3nTGmZev/K0oXnWO6y1n7k57K9cM
|
1060 |
-
//bey1WiCuFMVGWTYGufEpytXoMs61quwOQt9ABjHbjAbPLPSbtNk28Gpgoiskli
|
1061 |
-
CE7/yMgUsogWXecB5BKV5UU0s4tpvc+0hY91UZ59Ojg6FEgSxvunOxqNDYJAB+gE
|
1062 |
-
CJChicsZUN/KHAG8HQQZexB2lzvukJDKxA4fFm517zP4029bHpbj4HR3dHuKom4t
|
1063 |
-
3XbWOTCC8KucUvIqx69JXn7HaOWCgchqJ/kniCrVWFCVH/A7HFe7fRQ5YiuayZSS
|
1064 |
-
KqMiDP+JJn1fIytH1xUdqWqeUQ0qUZ6B+dQ7XnASfxAynB67nfhmqA==
|
1065 |
-
-----END CERTIFICATE-----
|
1066 |
-
|
1067 |
-
# Issuer: CN=XRamp Global Certification Authority O=XRamp Security Services Inc OU=www.xrampsecurity.com
|
1068 |
-
# Subject: CN=XRamp Global Certification Authority O=XRamp Security Services Inc OU=www.xrampsecurity.com
|
1069 |
-
# Label: "XRamp Global CA Root"
|
1070 |
-
# Serial: 107108908803651509692980124233745014957
|
1071 |
-
# MD5 Fingerprint: a1:0b:44:b3:ca:10:d8:00:6e:9d:0f:d8:0f:92:0a:d1
|
1072 |
-
# SHA1 Fingerprint: b8:01:86:d1:eb:9c:86:a5:41:04:cf:30:54:f3:4c:52:b7:e5:58:c6
|
1073 |
-
# SHA256 Fingerprint: ce:cd:dc:90:50:99:d8:da:df:c5:b1:d2:09:b7:37:cb:e2:c1:8c:fb:2c:10:c0:ff:0b:cf:0d:32:86:fc:1a:a2
|
1074 |
-
-----BEGIN CERTIFICATE-----
|
1075 |
-
MIIEMDCCAxigAwIBAgIQUJRs7Bjq1ZxN1ZfvdY+grTANBgkqhkiG9w0BAQUFADCB
|
1076 |
-
gjELMAkGA1UEBhMCVVMxHjAcBgNVBAsTFXd3dy54cmFtcHNlY3VyaXR5LmNvbTEk
|
1077 |
-
MCIGA1UEChMbWFJhbXAgU2VjdXJpdHkgU2VydmljZXMgSW5jMS0wKwYDVQQDEyRY
|
1078 |
-
UmFtcCBHbG9iYWwgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwHhcNMDQxMTAxMTcx
|
1079 |
-
NDA0WhcNMzUwMTAxMDUzNzE5WjCBgjELMAkGA1UEBhMCVVMxHjAcBgNVBAsTFXd3
|
1080 |
-
dy54cmFtcHNlY3VyaXR5LmNvbTEkMCIGA1UEChMbWFJhbXAgU2VjdXJpdHkgU2Vy
|
1081 |
-
dmljZXMgSW5jMS0wKwYDVQQDEyRYUmFtcCBHbG9iYWwgQ2VydGlmaWNhdGlvbiBB
|
1082 |
-
dXRob3JpdHkwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCYJB69FbS6
|
1083 |
-
38eMpSe2OAtp87ZOqCwuIR1cRN8hXX4jdP5efrRKt6atH67gBhbim1vZZ3RrXYCP
|
1084 |
-
KZ2GG9mcDZhtdhAoWORlsH9KmHmf4MMxfoArtYzAQDsRhtDLooY2YKTVMIJt2W7Q
|
1085 |
-
DxIEM5dfT2Fa8OT5kavnHTu86M/0ay00fOJIYRyO82FEzG+gSqmUsE3a56k0enI4
|
1086 |
-
qEHMPJQRfevIpoy3hsvKMzvZPTeL+3o+hiznc9cKV6xkmxnr9A8ECIqsAxcZZPRa
|
1087 |
-
JSKNNCyy9mgdEm3Tih4U2sSPpuIjhdV6Db1q4Ons7Be7QhtnqiXtRYMh/MHJfNVi
|
1088 |
-
PvryxS3T/dRlAgMBAAGjgZ8wgZwwEwYJKwYBBAGCNxQCBAYeBABDAEEwCwYDVR0P
|
1089 |
-
BAQDAgGGMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFMZPoj0GY4QJnM5i5ASs
|
1090 |
-
jVy16bYbMDYGA1UdHwQvMC0wK6ApoCeGJWh0dHA6Ly9jcmwueHJhbXBzZWN1cml0
|
1091 |
-
eS5jb20vWEdDQS5jcmwwEAYJKwYBBAGCNxUBBAMCAQEwDQYJKoZIhvcNAQEFBQAD
|
1092 |
-
ggEBAJEVOQMBG2f7Shz5CmBbodpNl2L5JFMn14JkTpAuw0kbK5rc/Kh4ZzXxHfAR
|
1093 |
-
vbdI4xD2Dd8/0sm2qlWkSLoC295ZLhVbO50WfUfXN+pfTXYSNrsf16GBBEYgoyxt
|
1094 |
-
qZ4Bfj8pzgCT3/3JknOJiWSe5yvkHJEs0rnOfc5vMZnT5r7SHpDwCRR5XCOrTdLa
|
1095 |
-
IR9NmXmd4c8nnxCbHIgNsIpkQTG4DmyQJKSbXHGPurt+HBvbaoAPIbzp26a3QPSy
|
1096 |
-
i6mx5O+aGtA9aZnuqCij4Tyz8LIRnM98QObd50N9otg6tamN8jSZxNQQ4Qb9CYQQ
|
1097 |
-
O+7ETPTsJ3xCwnR8gooJybQDJbw=
|
1098 |
-
-----END CERTIFICATE-----
|
1099 |
-
|
1100 |
-
# Issuer: O=The Go Daddy Group, Inc. OU=Go Daddy Class 2 Certification Authority
|
1101 |
-
# Subject: O=The Go Daddy Group, Inc. OU=Go Daddy Class 2 Certification Authority
|
1102 |
-
# Label: "Go Daddy Class 2 CA"
|
1103 |
-
# Serial: 0
|
1104 |
-
# MD5 Fingerprint: 91:de:06:25:ab:da:fd:32:17:0c:bb:25:17:2a:84:67
|
1105 |
-
# SHA1 Fingerprint: 27:96:ba:e6:3f:18:01:e2:77:26:1b:a0:d7:77:70:02:8f:20:ee:e4
|
1106 |
-
# SHA256 Fingerprint: c3:84:6b:f2:4b:9e:93:ca:64:27:4c:0e:c6:7c:1e:cc:5e:02:4f:fc:ac:d2:d7:40:19:35:0e:81:fe:54:6a:e4
|
1107 |
-
-----BEGIN CERTIFICATE-----
|
1108 |
-
MIIEADCCAuigAwIBAgIBADANBgkqhkiG9w0BAQUFADBjMQswCQYDVQQGEwJVUzEh
|
1109 |
-
MB8GA1UEChMYVGhlIEdvIERhZGR5IEdyb3VwLCBJbmMuMTEwLwYDVQQLEyhHbyBE
|
1110 |
-
YWRkeSBDbGFzcyAyIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MB4XDTA0MDYyOTE3
|
1111 |
-
MDYyMFoXDTM0MDYyOTE3MDYyMFowYzELMAkGA1UEBhMCVVMxITAfBgNVBAoTGFRo
|
1112 |
-
ZSBHbyBEYWRkeSBHcm91cCwgSW5jLjExMC8GA1UECxMoR28gRGFkZHkgQ2xhc3Mg
|
1113 |
-
MiBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTCCASAwDQYJKoZIhvcNAQEBBQADggEN
|
1114 |
-
ADCCAQgCggEBAN6d1+pXGEmhW+vXX0iG6r7d/+TvZxz0ZWizV3GgXne77ZtJ6XCA
|
1115 |
-
PVYYYwhv2vLM0D9/AlQiVBDYsoHUwHU9S3/Hd8M+eKsaA7Ugay9qK7HFiH7Eux6w
|
1116 |
-
wdhFJ2+qN1j3hybX2C32qRe3H3I2TqYXP2WYktsqbl2i/ojgC95/5Y0V4evLOtXi
|
1117 |
-
EqITLdiOr18SPaAIBQi2XKVlOARFmR6jYGB0xUGlcmIbYsUfb18aQr4CUWWoriMY
|
1118 |
-
avx4A6lNf4DD+qta/KFApMoZFv6yyO9ecw3ud72a9nmYvLEHZ6IVDd2gWMZEewo+
|
1119 |
-
YihfukEHU1jPEX44dMX4/7VpkI+EdOqXG68CAQOjgcAwgb0wHQYDVR0OBBYEFNLE
|
1120 |
-
sNKR1EwRcbNhyz2h/t2oatTjMIGNBgNVHSMEgYUwgYKAFNLEsNKR1EwRcbNhyz2h
|
1121 |
-
/t2oatTjoWekZTBjMQswCQYDVQQGEwJVUzEhMB8GA1UEChMYVGhlIEdvIERhZGR5
|
1122 |
-
IEdyb3VwLCBJbmMuMTEwLwYDVQQLEyhHbyBEYWRkeSBDbGFzcyAyIENlcnRpZmlj
|
1123 |
-
YXRpb24gQXV0aG9yaXR5ggEAMAwGA1UdEwQFMAMBAf8wDQYJKoZIhvcNAQEFBQAD
|
1124 |
-
ggEBADJL87LKPpH8EsahB4yOd6AzBhRckB4Y9wimPQoZ+YeAEW5p5JYXMP80kWNy
|
1125 |
-
OO7MHAGjHZQopDH2esRU1/blMVgDoszOYtuURXO1v0XJJLXVggKtI3lpjbi2Tc7P
|
1126 |
-
TMozI+gciKqdi0FuFskg5YmezTvacPd+mSYgFFQlq25zheabIZ0KbIIOqPjCDPoQ
|
1127 |
-
HmyW74cNxA9hi63ugyuV+I6ShHI56yDqg+2DzZduCLzrTia2cyvk0/ZM/iZx4mER
|
1128 |
-
dEr/VxqHD3VILs9RaRegAhJhldXRQLIQTO7ErBBDpqWeCtWVYpoNz4iCxTIM5Cuf
|
1129 |
-
ReYNnyicsbkqWletNw+vHX/bvZ8=
|
1130 |
-
-----END CERTIFICATE-----
|
1131 |
-
|
1132 |
-
# Issuer: O=Starfield Technologies, Inc. OU=Starfield Class 2 Certification Authority
|
1133 |
-
# Subject: O=Starfield Technologies, Inc. OU=Starfield Class 2 Certification Authority
|
1134 |
-
# Label: "Starfield Class 2 CA"
|
1135 |
-
# Serial: 0
|
1136 |
-
# MD5 Fingerprint: 32:4a:4b:bb:c8:63:69:9b:be:74:9a:c6:dd:1d:46:24
|
1137 |
-
# SHA1 Fingerprint: ad:7e:1c:28:b0:64:ef:8f:60:03:40:20:14:c3:d0:e3:37:0e:b5:8a
|
1138 |
-
# SHA256 Fingerprint: 14:65:fa:20:53:97:b8:76:fa:a6:f0:a9:95:8e:55:90:e4:0f:cc:7f:aa:4f:b7:c2:c8:67:75:21:fb:5f:b6:58
|
1139 |
-
-----BEGIN CERTIFICATE-----
|
1140 |
-
MIIEDzCCAvegAwIBAgIBADANBgkqhkiG9w0BAQUFADBoMQswCQYDVQQGEwJVUzEl
|
1141 |
-
MCMGA1UEChMcU3RhcmZpZWxkIFRlY2hub2xvZ2llcywgSW5jLjEyMDAGA1UECxMp
|
1142 |
-
U3RhcmZpZWxkIENsYXNzIDIgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwHhcNMDQw
|
1143 |
-
NjI5MTczOTE2WhcNMzQwNjI5MTczOTE2WjBoMQswCQYDVQQGEwJVUzElMCMGA1UE
|
1144 |
-
ChMcU3RhcmZpZWxkIFRlY2hub2xvZ2llcywgSW5jLjEyMDAGA1UECxMpU3RhcmZp
|
1145 |
-
ZWxkIENsYXNzIDIgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwggEgMA0GCSqGSIb3
|
1146 |
-
DQEBAQUAA4IBDQAwggEIAoIBAQC3Msj+6XGmBIWtDBFk385N78gDGIc/oav7PKaf
|
1147 |
-
8MOh2tTYbitTkPskpD6E8J7oX+zlJ0T1KKY/e97gKvDIr1MvnsoFAZMej2YcOadN
|
1148 |
-
+lq2cwQlZut3f+dZxkqZJRRU6ybH838Z1TBwj6+wRir/resp7defqgSHo9T5iaU0
|
1149 |
-
X9tDkYI22WY8sbi5gv2cOj4QyDvvBmVmepsZGD3/cVE8MC5fvj13c7JdBmzDI1aa
|
1150 |
-
K4UmkhynArPkPw2vCHmCuDY96pzTNbO8acr1zJ3o/WSNF4Azbl5KXZnJHoe0nRrA
|
1151 |
-
1W4TNSNe35tfPe/W93bC6j67eA0cQmdrBNj41tpvi/JEoAGrAgEDo4HFMIHCMB0G
|
1152 |
-
A1UdDgQWBBS/X7fRzt0fhvRbVazc1xDCDqmI5zCBkgYDVR0jBIGKMIGHgBS/X7fR
|
1153 |
-
zt0fhvRbVazc1xDCDqmI56FspGowaDELMAkGA1UEBhMCVVMxJTAjBgNVBAoTHFN0
|
1154 |
-
YXJmaWVsZCBUZWNobm9sb2dpZXMsIEluYy4xMjAwBgNVBAsTKVN0YXJmaWVsZCBD
|
1155 |
-
bGFzcyAyIENlcnRpZmljYXRpb24gQXV0aG9yaXR5ggEAMAwGA1UdEwQFMAMBAf8w
|
1156 |
-
DQYJKoZIhvcNAQEFBQADggEBAAWdP4id0ckaVaGsafPzWdqbAYcaT1epoXkJKtv3
|
1157 |
-
L7IezMdeatiDh6GX70k1PncGQVhiv45YuApnP+yz3SFmH8lU+nLMPUxA2IGvd56D
|
1158 |
-
eruix/U0F47ZEUD0/CwqTRV/p2JdLiXTAAsgGh1o+Re49L2L7ShZ3U0WixeDyLJl
|
1159 |
-
xy16paq8U4Zt3VekyvggQQto8PT7dL5WXXp59fkdheMtlb71cZBDzI0fmgAKhynp
|
1160 |
-
VSJYACPq4xJDKVtHCN2MQWplBqjlIapBtJUhlbl90TSrE9atvNziPTnNvT51cKEY
|
1161 |
-
WQPJIrSPnNVeKtelttQKbfi3QBFGmh95DmK/D5fs4C8fF5Q=
|
1162 |
-
-----END CERTIFICATE-----
|
1163 |
-
|
1164 |
-
# Issuer: CN=StartCom Certification Authority O=StartCom Ltd. OU=Secure Digital Certificate Signing
|
1165 |
-
# Subject: CN=StartCom Certification Authority O=StartCom Ltd. OU=Secure Digital Certificate Signing
|
1166 |
-
# Label: "StartCom Certification Authority"
|
1167 |
-
# Serial: 1
|
1168 |
-
# MD5 Fingerprint: 22:4d:8f:8a:fc:f7:35:c2:bb:57:34:90:7b:8b:22:16
|
1169 |
-
# SHA1 Fingerprint: 3e:2b:f7:f2:03:1b:96:f3:8c:e6:c4:d8:a8:5d:3e:2d:58:47:6a:0f
|
1170 |
-
# SHA256 Fingerprint: c7:66:a9:be:f2:d4:07:1c:86:3a:31:aa:49:20:e8:13:b2:d1:98:60:8c:b7:b7:cf:e2:11:43:b8:36:df:09:ea
|
1171 |
-
-----BEGIN CERTIFICATE-----
|
1172 |
-
MIIHyTCCBbGgAwIBAgIBATANBgkqhkiG9w0BAQUFADB9MQswCQYDVQQGEwJJTDEW
|
1173 |
-
MBQGA1UEChMNU3RhcnRDb20gTHRkLjErMCkGA1UECxMiU2VjdXJlIERpZ2l0YWwg
|
1174 |
-
Q2VydGlmaWNhdGUgU2lnbmluZzEpMCcGA1UEAxMgU3RhcnRDb20gQ2VydGlmaWNh
|
1175 |
-
dGlvbiBBdXRob3JpdHkwHhcNMDYwOTE3MTk0NjM2WhcNMzYwOTE3MTk0NjM2WjB9
|
1176 |
-
MQswCQYDVQQGEwJJTDEWMBQGA1UEChMNU3RhcnRDb20gTHRkLjErMCkGA1UECxMi
|
1177 |
-
U2VjdXJlIERpZ2l0YWwgQ2VydGlmaWNhdGUgU2lnbmluZzEpMCcGA1UEAxMgU3Rh
|
1178 |
-
cnRDb20gQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwggIiMA0GCSqGSIb3DQEBAQUA
|
1179 |
-
A4ICDwAwggIKAoICAQDBiNsJvGxGfHiflXu1M5DycmLWwTYgIiRezul38kMKogZk
|
1180 |
-
pMyONvg45iPwbm2xPN1yo4UcodM9tDMr0y+v/uqwQVlntsQGfQqedIXWeUyAN3rf
|
1181 |
-
OQVSWff0G0ZDpNKFhdLDcfN1YjS6LIp/Ho/u7TTQEceWzVI9ujPW3U3eCztKS5/C
|
1182 |
-
Ji/6tRYccjV3yjxd5srhJosaNnZcAdt0FCX+7bWgiA/deMotHweXMAEtcnn6RtYT
|
1183 |
-
Kqi5pquDSR3l8u/d5AGOGAqPY1MWhWKpDhk6zLVmpsJrdAfkK+F2PrRt2PZE4XNi
|
1184 |
-
HzvEvqBTViVsUQn3qqvKv3b9bZvzndu/PWa8DFaqr5hIlTpL36dYUNk4dalb6kMM
|
1185 |
-
Av+Z6+hsTXBbKWWc3apdzK8BMewM69KN6Oqce+Zu9ydmDBpI125C4z/eIT574Q1w
|
1186 |
-
+2OqqGwaVLRcJXrJosmLFqa7LH4XXgVNWG4SHQHuEhANxjJ/GP/89PrNbpHoNkm+
|
1187 |
-
Gkhpi8KWTRoSsmkXwQqQ1vp5Iki/untp+HDH+no32NgN0nZPV/+Qt+OR0t3vwmC3
|
1188 |
-
Zzrd/qqc8NSLf3Iizsafl7b4r4qgEKjZ+xjGtrVcUjyJthkqcwEKDwOzEmDyei+B
|
1189 |
-
26Nu/yYwl/WL3YlXtq09s68rxbd2AvCl1iuahhQqcvbjM4xdCUsT37uMdBNSSwID
|
1190 |
-
AQABo4ICUjCCAk4wDAYDVR0TBAUwAwEB/zALBgNVHQ8EBAMCAa4wHQYDVR0OBBYE
|
1191 |
-
FE4L7xqkQFulF2mHMMo0aEPQQa7yMGQGA1UdHwRdMFswLKAqoCiGJmh0dHA6Ly9j
|
1192 |
-
ZXJ0LnN0YXJ0Y29tLm9yZy9zZnNjYS1jcmwuY3JsMCugKaAnhiVodHRwOi8vY3Js
|
1193 |
-
LnN0YXJ0Y29tLm9yZy9zZnNjYS1jcmwuY3JsMIIBXQYDVR0gBIIBVDCCAVAwggFM
|
1194 |
-
BgsrBgEEAYG1NwEBATCCATswLwYIKwYBBQUHAgEWI2h0dHA6Ly9jZXJ0LnN0YXJ0
|
1195 |
-
Y29tLm9yZy9wb2xpY3kucGRmMDUGCCsGAQUFBwIBFilodHRwOi8vY2VydC5zdGFy
|
1196 |
-
dGNvbS5vcmcvaW50ZXJtZWRpYXRlLnBkZjCB0AYIKwYBBQUHAgIwgcMwJxYgU3Rh
|
1197 |
-
cnQgQ29tbWVyY2lhbCAoU3RhcnRDb20pIEx0ZC4wAwIBARqBl0xpbWl0ZWQgTGlh
|
1198 |
-
YmlsaXR5LCByZWFkIHRoZSBzZWN0aW9uICpMZWdhbCBMaW1pdGF0aW9ucyogb2Yg
|
1199 |
-
dGhlIFN0YXJ0Q29tIENlcnRpZmljYXRpb24gQXV0aG9yaXR5IFBvbGljeSBhdmFp
|
1200 |
-
bGFibGUgYXQgaHR0cDovL2NlcnQuc3RhcnRjb20ub3JnL3BvbGljeS5wZGYwEQYJ
|
1201 |
-
YIZIAYb4QgEBBAQDAgAHMDgGCWCGSAGG+EIBDQQrFilTdGFydENvbSBGcmVlIFNT
|
1202 |
-
TCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTANBgkqhkiG9w0BAQUFAAOCAgEAFmyZ
|
1203 |
-
9GYMNPXQhV59CuzaEE44HF7fpiUFS5Eyweg78T3dRAlbB0mKKctmArexmvclmAk8
|
1204 |
-
jhvh3TaHK0u7aNM5Zj2gJsfyOZEdUauCe37Vzlrk4gNXcGmXCPleWKYK34wGmkUW
|
1205 |
-
FjgKXlf2Ysd6AgXmvB618p70qSmD+LIU424oh0TDkBreOKk8rENNZEXO3SipXPJz
|
1206 |
-
ewT4F+irsfMuXGRuczE6Eri8sxHkfY+BUZo7jYn0TZNmezwD7dOaHZrzZVD1oNB1
|
1207 |
-
ny+v8OqCQ5j4aZyJecRDjkZy42Q2Eq/3JR44iZB3fsNrarnDy0RLrHiQi+fHLB5L
|
1208 |
-
EUTINFInzQpdn4XBidUaePKVEFMy3YCEZnXZtWgo+2EuvoSoOMCZEoalHmdkrQYu
|
1209 |
-
L6lwhceWD3yJZfWOQ1QOq92lgDmUYMA0yZZwLKMS9R9Ie70cfmu3nZD0Ijuu+Pwq
|
1210 |
-
yvqCUqDvr0tVk+vBtfAii6w0TiYiBKGHLHVKt+V9E9e4DGTANtLJL4YSjCMJwRuC
|
1211 |
-
O3NJo2pXh5Tl1njFmUNj403gdy3hZZlyaQQaRwnmDwFWJPsfvw55qVguucQJAX6V
|
1212 |
-
um0ABj6y6koQOdjQK/W/7HW/lwLFCRsI3FU34oH7N4RDYiDK51ZLZer+bMEkkySh
|
1213 |
-
NOsF/5oirpt9P/FlUQqmMGqz9IgcgA38corog14=
|
1214 |
-
-----END CERTIFICATE-----
|
1215 |
-
|
1216 |
-
# Issuer: CN=DigiCert Assured ID Root CA O=DigiCert Inc OU=www.digicert.com
|
1217 |
-
# Subject: CN=DigiCert Assured ID Root CA O=DigiCert Inc OU=www.digicert.com
|
1218 |
-
# Label: "DigiCert Assured ID Root CA"
|
1219 |
-
# Serial: 17154717934120587862167794914071425081
|
1220 |
-
# MD5 Fingerprint: 87:ce:0b:7b:2a:0e:49:00:e1:58:71:9b:37:a8:93:72
|
1221 |
-
# SHA1 Fingerprint: 05:63:b8:63:0d:62:d7:5a:bb:c8:ab:1e:4b:df:b5:a8:99:b2:4d:43
|
1222 |
-
# SHA256 Fingerprint: 3e:90:99:b5:01:5e:8f:48:6c:00:bc:ea:9d:11:1e:e7:21:fa:ba:35:5a:89:bc:f1:df:69:56:1e:3d:c6:32:5c
|
1223 |
-
-----BEGIN CERTIFICATE-----
|
1224 |
-
MIIDtzCCAp+gAwIBAgIQDOfg5RfYRv6P5WD8G/AwOTANBgkqhkiG9w0BAQUFADBl
|
1225 |
-
MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3
|
1226 |
-
d3cuZGlnaWNlcnQuY29tMSQwIgYDVQQDExtEaWdpQ2VydCBBc3N1cmVkIElEIFJv
|
1227 |
-
b3QgQ0EwHhcNMDYxMTEwMDAwMDAwWhcNMzExMTEwMDAwMDAwWjBlMQswCQYDVQQG
|
1228 |
-
EwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNl
|
1229 |
-
cnQuY29tMSQwIgYDVQQDExtEaWdpQ2VydCBBc3N1cmVkIElEIFJvb3QgQ0EwggEi
|
1230 |
-
MA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCtDhXO5EOAXLGH87dg+XESpa7c
|
1231 |
-
JpSIqvTO9SA5KFhgDPiA2qkVlTJhPLWxKISKityfCgyDF3qPkKyK53lTXDGEKvYP
|
1232 |
-
mDI2dsze3Tyoou9q+yHyUmHfnyDXH+Kx2f4YZNISW1/5WBg1vEfNoTb5a3/UsDg+
|
1233 |
-
wRvDjDPZ2C8Y/igPs6eD1sNuRMBhNZYW/lmci3Zt1/GiSw0r/wty2p5g0I6QNcZ4
|
1234 |
-
VYcgoc/lbQrISXwxmDNsIumH0DJaoroTghHtORedmTpyoeb6pNnVFzF1roV9Iq4/
|
1235 |
-
AUaG9ih5yLHa5FcXxH4cDrC0kqZWs72yl+2qp/C3xag/lRbQ/6GW6whfGHdPAgMB
|
1236 |
-
AAGjYzBhMA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQW
|
1237 |
-
BBRF66Kv9JLLgjEtUYunpyGd823IDzAfBgNVHSMEGDAWgBRF66Kv9JLLgjEtUYun
|
1238 |
-
pyGd823IDzANBgkqhkiG9w0BAQUFAAOCAQEAog683+Lt8ONyc3pklL/3cmbYMuRC
|
1239 |
-
dWKuh+vy1dneVrOfzM4UKLkNl2BcEkxY5NM9g0lFWJc1aRqoR+pWxnmrEthngYTf
|
1240 |
-
fwk8lOa4JiwgvT2zKIn3X/8i4peEH+ll74fg38FnSbNd67IJKusm7Xi+fT8r87cm
|
1241 |
-
NW1fiQG2SVufAQWbqz0lwcy2f8Lxb4bG+mRo64EtlOtCt/qMHt1i8b5QZ7dsvfPx
|
1242 |
-
H2sMNgcWfzd8qVttevESRmCD1ycEvkvOl77DZypoEd+A5wwzZr8TDRRu838fYxAe
|
1243 |
-
+o0bJW1sj6W3YQGx0qMmoRBxna3iw/nDmVG3KwcIzi7mULKn+gpFL6Lw8g==
|
1244 |
-
-----END CERTIFICATE-----
|
1245 |
-
|
1246 |
-
# Issuer: CN=DigiCert Global Root CA O=DigiCert Inc OU=www.digicert.com
|
1247 |
-
# Subject: CN=DigiCert Global Root CA O=DigiCert Inc OU=www.digicert.com
|
1248 |
-
# Label: "DigiCert Global Root CA"
|
1249 |
-
# Serial: 10944719598952040374951832963794454346
|
1250 |
-
# MD5 Fingerprint: 79:e4:a9:84:0d:7d:3a:96:d7:c0:4f:e2:43:4c:89:2e
|
1251 |
-
# SHA1 Fingerprint: a8:98:5d:3a:65:e5:e5:c4:b2:d7:d6:6d:40:c6:dd:2f:b1:9c:54:36
|
1252 |
-
# SHA256 Fingerprint: 43:48:a0:e9:44:4c:78:cb:26:5e:05:8d:5e:89:44:b4:d8:4f:96:62:bd:26:db:25:7f:89:34:a4:43:c7:01:61
|
1253 |
-
-----BEGIN CERTIFICATE-----
|
1254 |
-
MIIDrzCCApegAwIBAgIQCDvgVpBCRrGhdWrJWZHHSjANBgkqhkiG9w0BAQUFADBh
|
1255 |
-
MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3
|
1256 |
-
d3cuZGlnaWNlcnQuY29tMSAwHgYDVQQDExdEaWdpQ2VydCBHbG9iYWwgUm9vdCBD
|
1257 |
-
QTAeFw0wNjExMTAwMDAwMDBaFw0zMTExMTAwMDAwMDBaMGExCzAJBgNVBAYTAlVT
|
1258 |
-
MRUwEwYDVQQKEwxEaWdpQ2VydCBJbmMxGTAXBgNVBAsTEHd3dy5kaWdpY2VydC5j
|
1259 |
-
b20xIDAeBgNVBAMTF0RpZ2lDZXJ0IEdsb2JhbCBSb290IENBMIIBIjANBgkqhkiG
|
1260 |
-
9w0BAQEFAAOCAQ8AMIIBCgKCAQEA4jvhEXLeqKTTo1eqUKKPC3eQyaKl7hLOllsB
|
1261 |
-
CSDMAZOnTjC3U/dDxGkAV53ijSLdhwZAAIEJzs4bg7/fzTtxRuLWZscFs3YnFo97
|
1262 |
-
nh6Vfe63SKMI2tavegw5BmV/Sl0fvBf4q77uKNd0f3p4mVmFaG5cIzJLv07A6Fpt
|
1263 |
-
43C/dxC//AH2hdmoRBBYMql1GNXRor5H4idq9Joz+EkIYIvUX7Q6hL+hqkpMfT7P
|
1264 |
-
T19sdl6gSzeRntwi5m3OFBqOasv+zbMUZBfHWymeMr/y7vrTC0LUq7dBMtoM1O/4
|
1265 |
-
gdW7jVg/tRvoSSiicNoxBN33shbyTApOB6jtSj1etX+jkMOvJwIDAQABo2MwYTAO
|
1266 |
-
BgNVHQ8BAf8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUA95QNVbR
|
1267 |
-
TLtm8KPiGxvDl7I90VUwHwYDVR0jBBgwFoAUA95QNVbRTLtm8KPiGxvDl7I90VUw
|
1268 |
-
DQYJKoZIhvcNAQEFBQADggEBAMucN6pIExIK+t1EnE9SsPTfrgT1eXkIoyQY/Esr
|
1269 |
-
hMAtudXH/vTBH1jLuG2cenTnmCmrEbXjcKChzUyImZOMkXDiqw8cvpOp/2PV5Adg
|
1270 |
-
06O/nVsJ8dWO41P0jmP6P6fbtGbfYmbW0W5BjfIttep3Sp+dWOIrWcBAI+0tKIJF
|
1271 |
-
PnlUkiaY4IBIqDfv8NZ5YBberOgOzW6sRBc4L0na4UU+Krk2U886UAb3LujEV0ls
|
1272 |
-
YSEY1QSteDwsOoBrp+uvFRTp2InBuThs4pFsiv9kuXclVzDAGySj4dzp30d8tbQk
|
1273 |
-
CAUw7C29C79Fv1C5qfPrmAESrciIxpg0X40KPMbp1ZWVbd4=
|
1274 |
-
-----END CERTIFICATE-----
|
1275 |
-
|
1276 |
-
# Issuer: CN=DigiCert High Assurance EV Root CA O=DigiCert Inc OU=www.digicert.com
|
1277 |
-
# Subject: CN=DigiCert High Assurance EV Root CA O=DigiCert Inc OU=www.digicert.com
|
1278 |
-
# Label: "DigiCert High Assurance EV Root CA"
|
1279 |
-
# Serial: 3553400076410547919724730734378100087
|
1280 |
-
# MD5 Fingerprint: d4:74:de:57:5c:39:b2:d3:9c:85:83:c5:c0:65:49:8a
|
1281 |
-
# SHA1 Fingerprint: 5f:b7:ee:06:33:e2:59:db:ad:0c:4c:9a:e6:d3:8f:1a:61:c7:dc:25
|
1282 |
-
# SHA256 Fingerprint: 74:31:e5:f4:c3:c1:ce:46:90:77:4f:0b:61:e0:54:40:88:3b:a9:a0:1e:d0:0b:a6:ab:d7:80:6e:d3:b1:18:cf
|
1283 |
-
-----BEGIN CERTIFICATE-----
|
1284 |
-
MIIDxTCCAq2gAwIBAgIQAqxcJmoLQJuPC3nyrkYldzANBgkqhkiG9w0BAQUFADBs
|
1285 |
-
MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3
|
1286 |
-
d3cuZGlnaWNlcnQuY29tMSswKQYDVQQDEyJEaWdpQ2VydCBIaWdoIEFzc3VyYW5j
|
1287 |
-
ZSBFViBSb290IENBMB4XDTA2MTExMDAwMDAwMFoXDTMxMTExMDAwMDAwMFowbDEL
|
1288 |
-
MAkGA1UEBhMCVVMxFTATBgNVBAoTDERpZ2lDZXJ0IEluYzEZMBcGA1UECxMQd3d3
|
1289 |
-
LmRpZ2ljZXJ0LmNvbTErMCkGA1UEAxMiRGlnaUNlcnQgSGlnaCBBc3N1cmFuY2Ug
|
1290 |
-
RVYgUm9vdCBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMbM5XPm
|
1291 |
-
+9S75S0tMqbf5YE/yc0lSbZxKsPVlDRnogocsF9ppkCxxLeyj9CYpKlBWTrT3JTW
|
1292 |
-
PNt0OKRKzE0lgvdKpVMSOO7zSW1xkX5jtqumX8OkhPhPYlG++MXs2ziS4wblCJEM
|
1293 |
-
xChBVfvLWokVfnHoNb9Ncgk9vjo4UFt3MRuNs8ckRZqnrG0AFFoEt7oT61EKmEFB
|
1294 |
-
Ik5lYYeBQVCmeVyJ3hlKV9Uu5l0cUyx+mM0aBhakaHPQNAQTXKFx01p8VdteZOE3
|
1295 |
-
hzBWBOURtCmAEvF5OYiiAhF8J2a3iLd48soKqDirCmTCv2ZdlYTBoSUeh10aUAsg
|
1296 |
-
EsxBu24LUTi4S8sCAwEAAaNjMGEwDgYDVR0PAQH/BAQDAgGGMA8GA1UdEwEB/wQF
|
1297 |
-
MAMBAf8wHQYDVR0OBBYEFLE+w2kD+L9HAdSYJhoIAu9jZCvDMB8GA1UdIwQYMBaA
|
1298 |
-
FLE+w2kD+L9HAdSYJhoIAu9jZCvDMA0GCSqGSIb3DQEBBQUAA4IBAQAcGgaX3Nec
|
1299 |
-
nzyIZgYIVyHbIUf4KmeqvxgydkAQV8GK83rZEWWONfqe/EW1ntlMMUu4kehDLI6z
|
1300 |
-
eM7b41N5cdblIZQB2lWHmiRk9opmzN6cN82oNLFpmyPInngiK3BD41VHMWEZ71jF
|
1301 |
-
hS9OMPagMRYjyOfiZRYzy78aG6A9+MpeizGLYAiJLQwGXFK3xPkKmNEVX58Svnw2
|
1302 |
-
Yzi9RKR/5CYrCsSXaQ3pjOLAEFe4yHYSkVXySGnYvCoCWw9E1CAx2/S6cCZdkGCe
|
1303 |
-
vEsXCS+0yx5DaMkHJ8HSXPfqIbloEpw8nL+e/IBcm2PN7EeqJSdnoDfzAIJ9VNep
|
1304 |
-
+OkuE6N36B9K
|
1305 |
-
-----END CERTIFICATE-----
|
1306 |
-
|
1307 |
-
# Issuer: CN=GeoTrust Primary Certification Authority O=GeoTrust Inc.
|
1308 |
-
# Subject: CN=GeoTrust Primary Certification Authority O=GeoTrust Inc.
|
1309 |
-
# Label: "GeoTrust Primary Certification Authority"
|
1310 |
-
# Serial: 32798226551256963324313806436981982369
|
1311 |
-
# MD5 Fingerprint: 02:26:c3:01:5e:08:30:37:43:a9:d0:7d:cf:37:e6:bf
|
1312 |
-
# SHA1 Fingerprint: 32:3c:11:8e:1b:f7:b8:b6:52:54:e2:e2:10:0d:d6:02:90:37:f0:96
|
1313 |
-
# SHA256 Fingerprint: 37:d5:10:06:c5:12:ea:ab:62:64:21:f1:ec:8c:92:01:3f:c5:f8:2a:e9:8e:e5:33:eb:46:19:b8:de:b4:d0:6c
|
1314 |
-
-----BEGIN CERTIFICATE-----
|
1315 |
-
MIIDfDCCAmSgAwIBAgIQGKy1av1pthU6Y2yv2vrEoTANBgkqhkiG9w0BAQUFADBY
|
1316 |
-
MQswCQYDVQQGEwJVUzEWMBQGA1UEChMNR2VvVHJ1c3QgSW5jLjExMC8GA1UEAxMo
|
1317 |
-
R2VvVHJ1c3QgUHJpbWFyeSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAeFw0wNjEx
|
1318 |
-
MjcwMDAwMDBaFw0zNjA3MTYyMzU5NTlaMFgxCzAJBgNVBAYTAlVTMRYwFAYDVQQK
|
1319 |
-
Ew1HZW9UcnVzdCBJbmMuMTEwLwYDVQQDEyhHZW9UcnVzdCBQcmltYXJ5IENlcnRp
|
1320 |
-
ZmljYXRpb24gQXV0aG9yaXR5MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKC
|
1321 |
-
AQEAvrgVe//UfH1nrYNke8hCUy3f9oQIIGHWAVlqnEQRr+92/ZV+zmEwu3qDXwK9
|
1322 |
-
AWbK7hWNb6EwnL2hhZ6UOvNWiAAxz9juapYC2e0DjPt1befquFUWBRaa9OBesYjA
|
1323 |
-
ZIVcFU2Ix7e64HXprQU9nceJSOC7KMgD4TCTZF5SwFlwIjVXiIrxlQqD17wxcwE0
|
1324 |
-
7e9GceBrAqg1cmuXm2bgyxx5X9gaBGgeRwLmnWDiNpcB3841kt++Z8dtd1k7j53W
|
1325 |
-
kBWUvEI0EME5+bEnPn7WinXFsq+W06Lem+SYvn3h6YGttm/81w7a4DSwDRp35+MI
|
1326 |
-
mO9Y+pyEtzavwt+s0vQQBnBxNQIDAQABo0IwQDAPBgNVHRMBAf8EBTADAQH/MA4G
|
1327 |
-
A1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQULNVQQZcVi/CPNmFbSvtr2ZnJM5IwDQYJ
|
1328 |
-
KoZIhvcNAQEFBQADggEBAFpwfyzdtzRP9YZRqSa+S7iq8XEN3GHHoOo0Hnp3DwQ1
|
1329 |
-
6CePbJC/kRYkRj5KTs4rFtULUh38H2eiAkUxT87z+gOneZ1TatnaYzr4gNfTmeGl
|
1330 |
-
4b7UVXGYNTq+k+qurUKykG/g/CFNNWMziUnWm07Kx+dOCQD32sfvmWKZd7aVIl6K
|
1331 |
-
oKv0uHiYyjgZmclynnjNS6yvGaBzEi38wkG6gZHaFloxt/m0cYASSJlyc1pZU8Fj
|
1332 |
-
UjPtp8nSOQJw+uCxQmYpqptR7TBUIhRf2asdweSU8Pj1K/fqynhG1riR/aYNKxoU
|
1333 |
-
AT6A8EKglQdebc3MS6RFjasS6LPeWuWgfOgPIh1a6Vk=
|
1334 |
-
-----END CERTIFICATE-----
|
1335 |
-
|
1336 |
-
# Issuer: CN=thawte Primary Root CA O=thawte, Inc. OU=Certification Services Division/(c) 2006 thawte, Inc. - For authorized use only
|
1337 |
-
# Subject: CN=thawte Primary Root CA O=thawte, Inc. OU=Certification Services Division/(c) 2006 thawte, Inc. - For authorized use only
|
1338 |
-
# Label: "thawte Primary Root CA"
|
1339 |
-
# Serial: 69529181992039203566298953787712940909
|
1340 |
-
# MD5 Fingerprint: 8c:ca:dc:0b:22:ce:f5:be:72:ac:41:1a:11:a8:d8:12
|
1341 |
-
# SHA1 Fingerprint: 91:c6:d6:ee:3e:8a:c8:63:84:e5:48:c2:99:29:5c:75:6c:81:7b:81
|
1342 |
-
# SHA256 Fingerprint: 8d:72:2f:81:a9:c1:13:c0:79:1d:f1:36:a2:96:6d:b2:6c:95:0a:97:1d:b4:6b:41:99:f4:ea:54:b7:8b:fb:9f
|
1343 |
-
-----BEGIN CERTIFICATE-----
|
1344 |
-
MIIEIDCCAwigAwIBAgIQNE7VVyDV7exJ9C/ON9srbTANBgkqhkiG9w0BAQUFADCB
|
1345 |
-
qTELMAkGA1UEBhMCVVMxFTATBgNVBAoTDHRoYXd0ZSwgSW5jLjEoMCYGA1UECxMf
|
1346 |
-
Q2VydGlmaWNhdGlvbiBTZXJ2aWNlcyBEaXZpc2lvbjE4MDYGA1UECxMvKGMpIDIw
|
1347 |
-
MDYgdGhhd3RlLCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxHzAdBgNV
|
1348 |
-
BAMTFnRoYXd0ZSBQcmltYXJ5IFJvb3QgQ0EwHhcNMDYxMTE3MDAwMDAwWhcNMzYw
|
1349 |
-
NzE2MjM1OTU5WjCBqTELMAkGA1UEBhMCVVMxFTATBgNVBAoTDHRoYXd0ZSwgSW5j
|
1350 |
-
LjEoMCYGA1UECxMfQ2VydGlmaWNhdGlvbiBTZXJ2aWNlcyBEaXZpc2lvbjE4MDYG
|
1351 |
-
A1UECxMvKGMpIDIwMDYgdGhhd3RlLCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNl
|
1352 |
-
IG9ubHkxHzAdBgNVBAMTFnRoYXd0ZSBQcmltYXJ5IFJvb3QgQ0EwggEiMA0GCSqG
|
1353 |
-
SIb3DQEBAQUAA4IBDwAwggEKAoIBAQCsoPD7gFnUnMekz52hWXMJEEUMDSxuaPFs
|
1354 |
-
W0hoSVk3/AszGcJ3f8wQLZU0HObrTQmnHNK4yZc2AreJ1CRfBsDMRJSUjQJib+ta
|
1355 |
-
3RGNKJpchJAQeg29dGYvajig4tVUROsdB58Hum/u6f1OCyn1PoSgAfGcq/gcfomk
|
1356 |
-
6KHYcWUNo1F77rzSImANuVud37r8UVsLr5iy6S7pBOhih94ryNdOwUxkHt3Ph1i6
|
1357 |
-
Sk/KaAcdHJ1KxtUvkcx8cXIcxcBn6zL9yZJclNqFwJu/U30rCfSMnZEfl2pSy94J
|
1358 |
-
NqR32HuHUETVPm4pafs5SSYeCaWAe0At6+gnhcn+Yf1+5nyXHdWdAgMBAAGjQjBA
|
1359 |
-
MA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBR7W0XP
|
1360 |
-
r87Lev0xkhpqtvNG61dIUDANBgkqhkiG9w0BAQUFAAOCAQEAeRHAS7ORtvzw6WfU
|
1361 |
-
DW5FvlXok9LOAz/t2iWwHVfLHjp2oEzsUHboZHIMpKnxuIvW1oeEuzLlQRHAd9mz
|
1362 |
-
YJ3rG9XRbkREqaYB7FViHXe4XI5ISXycO1cRrK1zN44veFyQaEfZYGDm/Ac9IiAX
|
1363 |
-
xPcW6cTYcvnIc3zfFi8VqT79aie2oetaupgf1eNNZAqdE8hhuvU5HIe6uL17In/2
|
1364 |
-
/qxAeeWsEG89jxt5dovEN7MhGITlNgDrYyCZuen+MwS7QcjBAvlEYyCegc5C09Y/
|
1365 |
-
LHbTY5xZ3Y+m4Q6gLkH3LpVHz7z9M/P2C2F+fpErgUfCJzDupxBdN49cOSvkBPB7
|
1366 |
-
jVaMaA==
|
1367 |
-
-----END CERTIFICATE-----
|
1368 |
-
|
1369 |
-
# Issuer: CN=VeriSign Class 3 Public Primary Certification Authority - G5 O=VeriSign, Inc. OU=VeriSign Trust Network/(c) 2006 VeriSign, Inc. - For authorized use only
|
1370 |
-
# Subject: CN=VeriSign Class 3 Public Primary Certification Authority - G5 O=VeriSign, Inc. OU=VeriSign Trust Network/(c) 2006 VeriSign, Inc. - For authorized use only
|
1371 |
-
# Label: "VeriSign Class 3 Public Primary Certification Authority - G5"
|
1372 |
-
# Serial: 33037644167568058970164719475676101450
|
1373 |
-
# MD5 Fingerprint: cb:17:e4:31:67:3e:e2:09:fe:45:57:93:f3:0a:fa:1c
|
1374 |
-
# SHA1 Fingerprint: 4e:b6:d5:78:49:9b:1c:cf:5f:58:1e:ad:56:be:3d:9b:67:44:a5:e5
|
1375 |
-
# SHA256 Fingerprint: 9a:cf:ab:7e:43:c8:d8:80:d0:6b:26:2a:94:de:ee:e4:b4:65:99:89:c3:d0:ca:f1:9b:af:64:05:e4:1a:b7:df
|
1376 |
-
-----BEGIN CERTIFICATE-----
|
1377 |
-
MIIE0zCCA7ugAwIBAgIQGNrRniZ96LtKIVjNzGs7SjANBgkqhkiG9w0BAQUFADCB
|
1378 |
-
yjELMAkGA1UEBhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYDVQQL
|
1379 |
-
ExZWZXJpU2lnbiBUcnVzdCBOZXR3b3JrMTowOAYDVQQLEzEoYykgMjAwNiBWZXJp
|
1380 |
-
U2lnbiwgSW5jLiAtIEZvciBhdXRob3JpemVkIHVzZSBvbmx5MUUwQwYDVQQDEzxW
|
1381 |
-
ZXJpU2lnbiBDbGFzcyAzIFB1YmxpYyBQcmltYXJ5IENlcnRpZmljYXRpb24gQXV0
|
1382 |
-
aG9yaXR5IC0gRzUwHhcNMDYxMTA4MDAwMDAwWhcNMzYwNzE2MjM1OTU5WjCByjEL
|
1383 |
-
MAkGA1UEBhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYDVQQLExZW
|
1384 |
-
ZXJpU2lnbiBUcnVzdCBOZXR3b3JrMTowOAYDVQQLEzEoYykgMjAwNiBWZXJpU2ln
|
1385 |
-
biwgSW5jLiAtIEZvciBhdXRob3JpemVkIHVzZSBvbmx5MUUwQwYDVQQDEzxWZXJp
|
1386 |
-
U2lnbiBDbGFzcyAzIFB1YmxpYyBQcmltYXJ5IENlcnRpZmljYXRpb24gQXV0aG9y
|
1387 |
-
aXR5IC0gRzUwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCvJAgIKXo1
|
1388 |
-
nmAMqudLO07cfLw8RRy7K+D+KQL5VwijZIUVJ/XxrcgxiV0i6CqqpkKzj/i5Vbex
|
1389 |
-
t0uz/o9+B1fs70PbZmIVYc9gDaTY3vjgw2IIPVQT60nKWVSFJuUrjxuf6/WhkcIz
|
1390 |
-
SdhDY2pSS9KP6HBRTdGJaXvHcPaz3BJ023tdS1bTlr8Vd6Gw9KIl8q8ckmcY5fQG
|
1391 |
-
BO+QueQA5N06tRn/Arr0PO7gi+s3i+z016zy9vA9r911kTMZHRxAy3QkGSGT2RT+
|
1392 |
-
rCpSx4/VBEnkjWNHiDxpg8v+R70rfk/Fla4OndTRQ8Bnc+MUCH7lP59zuDMKz10/
|
1393 |
-
NIeWiu5T6CUVAgMBAAGjgbIwga8wDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8E
|
1394 |
-
BAMCAQYwbQYIKwYBBQUHAQwEYTBfoV2gWzBZMFcwVRYJaW1hZ2UvZ2lmMCEwHzAH
|
1395 |
-
BgUrDgMCGgQUj+XTGoasjY5rw8+AatRIGCx7GS4wJRYjaHR0cDovL2xvZ28udmVy
|
1396 |
-
aXNpZ24uY29tL3ZzbG9nby5naWYwHQYDVR0OBBYEFH/TZafC3ey78DAJ80M5+gKv
|
1397 |
-
MzEzMA0GCSqGSIb3DQEBBQUAA4IBAQCTJEowX2LP2BqYLz3q3JktvXf2pXkiOOzE
|
1398 |
-
p6B4Eq1iDkVwZMXnl2YtmAl+X6/WzChl8gGqCBpH3vn5fJJaCGkgDdk+bW48DW7Y
|
1399 |
-
5gaRQBi5+MHt39tBquCWIMnNZBU4gcmU7qKEKQsTb47bDN0lAtukixlE0kF6BWlK
|
1400 |
-
WE9gyn6CagsCqiUXObXbf+eEZSqVir2G3l6BFoMtEMze/aiCKm0oHw0LxOXnGiYZ
|
1401 |
-
4fQRbxC1lfznQgUy286dUV4otp6F01vvpX1FQHKOtw5rDgb7MzVIcbidJ4vEZV8N
|
1402 |
-
hnacRHr2lVz2XTIIM6RUthg/aFzyQkqFOFSDX9HoLPKsEdao7WNq
|
1403 |
-
-----END CERTIFICATE-----
|
1404 |
-
|
1405 |
-
# Issuer: CN=COMODO Certification Authority O=COMODO CA Limited
|
1406 |
-
# Subject: CN=COMODO Certification Authority O=COMODO CA Limited
|
1407 |
-
# Label: "COMODO Certification Authority"
|
1408 |
-
# Serial: 104350513648249232941998508985834464573
|
1409 |
-
# MD5 Fingerprint: 5c:48:dc:f7:42:72:ec:56:94:6d:1c:cc:71:35:80:75
|
1410 |
-
# SHA1 Fingerprint: 66:31:bf:9e:f7:4f:9e:b6:c9:d5:a6:0c:ba:6a:be:d1:f7:bd:ef:7b
|
1411 |
-
# SHA256 Fingerprint: 0c:2c:d6:3d:f7:80:6f:a3:99:ed:e8:09:11:6b:57:5b:f8:79:89:f0:65:18:f9:80:8c:86:05:03:17:8b:af:66
|
1412 |
-
-----BEGIN CERTIFICATE-----
|
1413 |
-
MIIEHTCCAwWgAwIBAgIQToEtioJl4AsC7j41AkblPTANBgkqhkiG9w0BAQUFADCB
|
1414 |
-
gTELMAkGA1UEBhMCR0IxGzAZBgNVBAgTEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4G
|
1415 |
-
A1UEBxMHU2FsZm9yZDEaMBgGA1UEChMRQ09NT0RPIENBIExpbWl0ZWQxJzAlBgNV
|
1416 |
-
BAMTHkNPTU9ETyBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAeFw0wNjEyMDEwMDAw
|
1417 |
-
MDBaFw0yOTEyMzEyMzU5NTlaMIGBMQswCQYDVQQGEwJHQjEbMBkGA1UECBMSR3Jl
|
1418 |
-
YXRlciBNYW5jaGVzdGVyMRAwDgYDVQQHEwdTYWxmb3JkMRowGAYDVQQKExFDT01P
|
1419 |
-
RE8gQ0EgTGltaXRlZDEnMCUGA1UEAxMeQ09NT0RPIENlcnRpZmljYXRpb24gQXV0
|
1420 |
-
aG9yaXR5MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA0ECLi3LjkRv3
|
1421 |
-
UcEbVASY06m/weaKXTuH+7uIzg3jLz8GlvCiKVCZrts7oVewdFFxze1CkU1B/qnI
|
1422 |
-
2GqGd0S7WWaXUF601CxwRM/aN5VCaTwwxHGzUvAhTaHYujl8HJ6jJJ3ygxaYqhZ8
|
1423 |
-
Q5sVW7euNJH+1GImGEaaP+vB+fGQV+useg2L23IwambV4EajcNxo2f8ESIl33rXp
|
1424 |
-
+2dtQem8Ob0y2WIC8bGoPW43nOIv4tOiJovGuFVDiOEjPqXSJDlqR6sA1KGzqSX+
|
1425 |
-
DT+nHbrTUcELpNqsOO9VUCQFZUaTNE8tja3G1CEZ0o7KBWFxB3NH5YoZEr0ETc5O
|
1426 |
-
nKVIrLsm9wIDAQABo4GOMIGLMB0GA1UdDgQWBBQLWOWLxkwVN6RAqTCpIb5HNlpW
|
1427 |
-
/zAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zBJBgNVHR8EQjBAMD6g
|
1428 |
-
PKA6hjhodHRwOi8vY3JsLmNvbW9kb2NhLmNvbS9DT01PRE9DZXJ0aWZpY2F0aW9u
|
1429 |
-
QXV0aG9yaXR5LmNybDANBgkqhkiG9w0BAQUFAAOCAQEAPpiem/Yb6dc5t3iuHXIY
|
1430 |
-
SdOH5EOC6z/JqvWote9VfCFSZfnVDeFs9D6Mk3ORLgLETgdxb8CPOGEIqB6BCsAv
|
1431 |
-
IC9Bi5HcSEW88cbeunZrM8gALTFGTO3nnc+IlP8zwFboJIYmuNg4ON8qa90SzMc/
|
1432 |
-
RxdMosIGlgnW2/4/PEZB31jiVg88O8EckzXZOFKs7sjsLjBOlDW0JB9LeGna8gI4
|
1433 |
-
zJVSk/BwJVmcIGfE7vmLV2H0knZ9P4SNVbfo5azV8fUZVqZa+5Acr5Pr5RzUZ5dd
|
1434 |
-
BA6+C4OmF4O5MBKgxTMVBbkN+8cFduPYSo38NBejxiEovjBFMR7HeL5YYTisO+IB
|
1435 |
-
ZQ==
|
1436 |
-
-----END CERTIFICATE-----
|
1437 |
-
|
1438 |
-
# Issuer: CN=Network Solutions Certificate Authority O=Network Solutions L.L.C.
|
1439 |
-
# Subject: CN=Network Solutions Certificate Authority O=Network Solutions L.L.C.
|
1440 |
-
# Label: "Network Solutions Certificate Authority"
|
1441 |
-
# Serial: 116697915152937497490437556386812487904
|
1442 |
-
# MD5 Fingerprint: d3:f3:a6:16:c0:fa:6b:1d:59:b1:2d:96:4d:0e:11:2e
|
1443 |
-
# SHA1 Fingerprint: 74:f8:a3:c3:ef:e7:b3:90:06:4b:83:90:3c:21:64:60:20:e5:df:ce
|
1444 |
-
# SHA256 Fingerprint: 15:f0:ba:00:a3:ac:7a:f3:ac:88:4c:07:2b:10:11:a0:77:bd:77:c0:97:f4:01:64:b2:f8:59:8a:bd:83:86:0c
|
1445 |
-
-----BEGIN CERTIFICATE-----
|
1446 |
-
MIID5jCCAs6gAwIBAgIQV8szb8JcFuZHFhfjkDFo4DANBgkqhkiG9w0BAQUFADBi
|
1447 |
-
MQswCQYDVQQGEwJVUzEhMB8GA1UEChMYTmV0d29yayBTb2x1dGlvbnMgTC5MLkMu
|
1448 |
-
MTAwLgYDVQQDEydOZXR3b3JrIFNvbHV0aW9ucyBDZXJ0aWZpY2F0ZSBBdXRob3Jp
|
1449 |
-
dHkwHhcNMDYxMjAxMDAwMDAwWhcNMjkxMjMxMjM1OTU5WjBiMQswCQYDVQQGEwJV
|
1450 |
-
UzEhMB8GA1UEChMYTmV0d29yayBTb2x1dGlvbnMgTC5MLkMuMTAwLgYDVQQDEydO
|
1451 |
-
ZXR3b3JrIFNvbHV0aW9ucyBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkwggEiMA0GCSqG
|
1452 |
-
SIb3DQEBAQUAA4IBDwAwggEKAoIBAQDkvH6SMG3G2I4rC7xGzuAnlt7e+foS0zwz
|
1453 |
-
c7MEL7xxjOWftiJgPl9dzgn/ggwbmlFQGiaJ3dVhXRncEg8tCqJDXRfQNJIg6nPP
|
1454 |
-
OCwGJgl6cvf6UDL4wpPTaaIjzkGxzOTVHzbRijr4jGPiFFlp7Q3Tf2vouAPlT2rl
|
1455 |
-
mGNpSAW+Lv8ztumXWWn4Zxmuk2GWRBXTcrA/vGp97Eh/jcOrqnErU2lBUzS1sLnF
|
1456 |
-
BgrEsEX1QV1uiUV7PTsmjHTC5dLRfbIR1PtYMiKagMnc/Qzpf14Dl847ABSHJ3A4
|
1457 |
-
qY5usyd2mFHgBeMhqxrVhSI8KbWaFsWAqPS7azCPL0YCorEMIuDTAgMBAAGjgZcw
|
1458 |
-
gZQwHQYDVR0OBBYEFCEwyfsA106Y2oeqKtCnLrFAMadMMA4GA1UdDwEB/wQEAwIB
|
1459 |
-
BjAPBgNVHRMBAf8EBTADAQH/MFIGA1UdHwRLMEkwR6BFoEOGQWh0dHA6Ly9jcmwu
|
1460 |
-
bmV0c29sc3NsLmNvbS9OZXR3b3JrU29sdXRpb25zQ2VydGlmaWNhdGVBdXRob3Jp
|
1461 |
-
dHkuY3JsMA0GCSqGSIb3DQEBBQUAA4IBAQC7rkvnt1frf6ott3NHhWrB5KUd5Oc8
|
1462 |
-
6fRZZXe1eltajSU24HqXLjjAV2CDmAaDn7l2em5Q4LqILPxFzBiwmZVRDuwduIj/
|
1463 |
-
h1AcgsLj4DKAv6ALR8jDMe+ZZzKATxcheQxpXN5eNK4CtSbqUN9/GGUsyfJj4akH
|
1464 |
-
/nxxH2szJGoeBfcFaMBqEssuXmHLrijTfsK0ZpEmXzwuJF/LWA/rKOyvEZbz3Htv
|
1465 |
-
wKeI8lN3s2Berq4o2jUsbzRF0ybh3uxbTydrFny9RAQYgrOJeRcQcT16ohZO9QHN
|
1466 |
-
pGxlaKFJdlxDydi8NmdspZS11My5vWo1ViHe2MPr+8ukYEywVaCge1ey
|
1467 |
-
-----END CERTIFICATE-----
|
1468 |
-
|
1469 |
-
# Issuer: CN=COMODO ECC Certification Authority O=COMODO CA Limited
|
1470 |
-
# Subject: CN=COMODO ECC Certification Authority O=COMODO CA Limited
|
1471 |
-
# Label: "COMODO ECC Certification Authority"
|
1472 |
-
# Serial: 41578283867086692638256921589707938090
|
1473 |
-
# MD5 Fingerprint: 7c:62:ff:74:9d:31:53:5e:68:4a:d5:78:aa:1e:bf:23
|
1474 |
-
# SHA1 Fingerprint: 9f:74:4e:9f:2b:4d:ba:ec:0f:31:2c:50:b6:56:3b:8e:2d:93:c3:11
|
1475 |
-
# SHA256 Fingerprint: 17:93:92:7a:06:14:54:97:89:ad:ce:2f:8f:34:f7:f0:b6:6d:0f:3a:e3:a3:b8:4d:21:ec:15:db:ba:4f:ad:c7
|
1476 |
-
-----BEGIN CERTIFICATE-----
|
1477 |
-
MIICiTCCAg+gAwIBAgIQH0evqmIAcFBUTAGem2OZKjAKBggqhkjOPQQDAzCBhTEL
|
1478 |
-
MAkGA1UEBhMCR0IxGzAZBgNVBAgTEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4GA1UE
|
1479 |
-
BxMHU2FsZm9yZDEaMBgGA1UEChMRQ09NT0RPIENBIExpbWl0ZWQxKzApBgNVBAMT
|
1480 |
-
IkNPTU9ETyBFQ0MgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwHhcNMDgwMzA2MDAw
|
1481 |
-
MDAwWhcNMzgwMTE4MjM1OTU5WjCBhTELMAkGA1UEBhMCR0IxGzAZBgNVBAgTEkdy
|
1482 |
-
ZWF0ZXIgTWFuY2hlc3RlcjEQMA4GA1UEBxMHU2FsZm9yZDEaMBgGA1UEChMRQ09N
|
1483 |
-
T0RPIENBIExpbWl0ZWQxKzApBgNVBAMTIkNPTU9ETyBFQ0MgQ2VydGlmaWNhdGlv
|
1484 |
-
biBBdXRob3JpdHkwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAAQDR3svdcmCFYX7deSR
|
1485 |
-
FtSrYpn1PlILBs5BAH+X4QokPB0BBO490o0JlwzgdeT6+3eKKvUDYEs2ixYjFq0J
|
1486 |
-
cfRK9ChQtP6IHG4/bC8vCVlbpVsLM5niwz2J+Wos77LTBumjQjBAMB0GA1UdDgQW
|
1487 |
-
BBR1cacZSBm8nZ3qQUfflMRId5nTeTAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/
|
1488 |
-
BAUwAwEB/zAKBggqhkjOPQQDAwNoADBlAjEA7wNbeqy3eApyt4jf/7VGFAkK+qDm
|
1489 |
-
fQjGGoe9GKhzvSbKYAydzpmfz1wPMOG+FDHqAjAU9JM8SaczepBGR7NjfRObTrdv
|
1490 |
-
GDeAU/7dIOA1mjbRxwG55tzd8/8dLDoWV9mSOdY=
|
1491 |
-
-----END CERTIFICATE-----
|
1492 |
-
|
1493 |
-
# Issuer: CN=TC TrustCenter Class 2 CA II O=TC TrustCenter GmbH OU=TC TrustCenter Class 2 CA
|
1494 |
-
# Subject: CN=TC TrustCenter Class 2 CA II O=TC TrustCenter GmbH OU=TC TrustCenter Class 2 CA
|
1495 |
-
# Label: "TC TrustCenter Class 2 CA II"
|
1496 |
-
# Serial: 941389028203453866782103406992443
|
1497 |
-
# MD5 Fingerprint: ce:78:33:5c:59:78:01:6e:18:ea:b9:36:a0:b9:2e:23
|
1498 |
-
# SHA1 Fingerprint: ae:50:83:ed:7c:f4:5c:bc:8f:61:c6:21:fe:68:5d:79:42:21:15:6e
|
1499 |
-
# SHA256 Fingerprint: e6:b8:f8:76:64:85:f8:07:ae:7f:8d:ac:16:70:46:1f:07:c0:a1:3e:ef:3a:1f:f7:17:53:8d:7a:ba:d3:91:b4
|
1500 |
-
-----BEGIN CERTIFICATE-----
|
1501 |
-
MIIEqjCCA5KgAwIBAgIOLmoAAQACH9dSISwRXDswDQYJKoZIhvcNAQEFBQAwdjEL
|
1502 |
-
MAkGA1UEBhMCREUxHDAaBgNVBAoTE1RDIFRydXN0Q2VudGVyIEdtYkgxIjAgBgNV
|
1503 |
-
BAsTGVRDIFRydXN0Q2VudGVyIENsYXNzIDIgQ0ExJTAjBgNVBAMTHFRDIFRydXN0
|
1504 |
-
Q2VudGVyIENsYXNzIDIgQ0EgSUkwHhcNMDYwMTEyMTQzODQzWhcNMjUxMjMxMjI1
|
1505 |
-
OTU5WjB2MQswCQYDVQQGEwJERTEcMBoGA1UEChMTVEMgVHJ1c3RDZW50ZXIgR21i
|
1506 |
-
SDEiMCAGA1UECxMZVEMgVHJ1c3RDZW50ZXIgQ2xhc3MgMiBDQTElMCMGA1UEAxMc
|
1507 |
-
VEMgVHJ1c3RDZW50ZXIgQ2xhc3MgMiBDQSBJSTCCASIwDQYJKoZIhvcNAQEBBQAD
|
1508 |
-
ggEPADCCAQoCggEBAKuAh5uO8MN8h9foJIIRszzdQ2Lu+MNF2ujhoF/RKrLqk2jf
|
1509 |
-
tMjWQ+nEdVl//OEd+DFwIxuInie5e/060smp6RQvkL4DUsFJzfb95AhmC1eKokKg
|
1510 |
-
uNV/aVyQMrKXDcpK3EY+AlWJU+MaWss2xgdW94zPEfRMuzBwBJWl9jmM/XOBCH2J
|
1511 |
-
XjIeIqkiRUuwZi4wzJ9l/fzLganx4Duvo4bRierERXlQXa7pIXSSTYtZgo+U4+lK
|
1512 |
-
8edJsBTj9WLL1XK9H7nSn6DNqPoByNkN39r8R52zyFTfSUrxIan+GE7uSNQZu+99
|
1513 |
-
5OKdy1u2bv/jzVrndIIFuoAlOMvkaZ6vQaoahPUCAwEAAaOCATQwggEwMA8GA1Ud
|
1514 |
-
EwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBTjq1RMgKHbVkO3
|
1515 |
-
kUrL84J6E1wIqzCB7QYDVR0fBIHlMIHiMIHfoIHcoIHZhjVodHRwOi8vd3d3LnRy
|
1516 |
-
dXN0Y2VudGVyLmRlL2NybC92Mi90Y19jbGFzc18yX2NhX0lJLmNybIaBn2xkYXA6
|
1517 |
-
Ly93d3cudHJ1c3RjZW50ZXIuZGUvQ049VEMlMjBUcnVzdENlbnRlciUyMENsYXNz
|
1518 |
-
JTIwMiUyMENBJTIwSUksTz1UQyUyMFRydXN0Q2VudGVyJTIwR21iSCxPVT1yb290
|
1519 |
-
Y2VydHMsREM9dHJ1c3RjZW50ZXIsREM9ZGU/Y2VydGlmaWNhdGVSZXZvY2F0aW9u
|
1520 |
-
TGlzdD9iYXNlPzANBgkqhkiG9w0BAQUFAAOCAQEAjNfffu4bgBCzg/XbEeprS6iS
|
1521 |
-
GNn3Bzn1LL4GdXpoUxUc6krtXvwjshOg0wn/9vYua0Fxec3ibf2uWWuFHbhOIprt
|
1522 |
-
ZjluS5TmVfwLG4t3wVMTZonZKNaL80VKY7f9ewthXbhtvsPcW3nS7Yblok2+XnR8
|
1523 |
-
au0WOB9/WIFaGusyiC2y8zl3gK9etmF1KdsjTYjKUCjLhdLTEKJZbtOTVAB6okaV
|
1524 |
-
hgWcqRmY5TFyDADiZ9lA4CQze28suVyrZZ0srHbqNZn1l7kPJOzHdiEoZa5X6AeI
|
1525 |
-
dUpWoNIFOqTmjZKILPPy4cHGYdtBxceb9w4aUUXCYWvcZCcXjFq32nQozZfkvQ==
|
1526 |
-
-----END CERTIFICATE-----
|
1527 |
-
|
1528 |
-
# Issuer: CN=TC TrustCenter Class 3 CA II O=TC TrustCenter GmbH OU=TC TrustCenter Class 3 CA
|
1529 |
-
# Subject: CN=TC TrustCenter Class 3 CA II O=TC TrustCenter GmbH OU=TC TrustCenter Class 3 CA
|
1530 |
-
# Label: "TC TrustCenter Class 3 CA II"
|
1531 |
-
# Serial: 1506523511417715638772220530020799
|
1532 |
-
# MD5 Fingerprint: 56:5f:aa:80:61:12:17:f6:67:21:e6:2b:6d:61:56:8e
|
1533 |
-
# SHA1 Fingerprint: 80:25:ef:f4:6e:70:c8:d4:72:24:65:84:fe:40:3b:8a:8d:6a:db:f5
|
1534 |
-
# SHA256 Fingerprint: 8d:a0:84:fc:f9:9c:e0:77:22:f8:9b:32:05:93:98:06:fa:5c:b8:11:e1:c8:13:f6:a1:08:c7:d3:36:b3:40:8e
|
1535 |
-
-----BEGIN CERTIFICATE-----
|
1536 |
-
MIIEqjCCA5KgAwIBAgIOSkcAAQAC5aBd1j8AUb8wDQYJKoZIhvcNAQEFBQAwdjEL
|
1537 |
-
MAkGA1UEBhMCREUxHDAaBgNVBAoTE1RDIFRydXN0Q2VudGVyIEdtYkgxIjAgBgNV
|
1538 |
-
BAsTGVRDIFRydXN0Q2VudGVyIENsYXNzIDMgQ0ExJTAjBgNVBAMTHFRDIFRydXN0
|
1539 |
-
Q2VudGVyIENsYXNzIDMgQ0EgSUkwHhcNMDYwMTEyMTQ0MTU3WhcNMjUxMjMxMjI1
|
1540 |
-
OTU5WjB2MQswCQYDVQQGEwJERTEcMBoGA1UEChMTVEMgVHJ1c3RDZW50ZXIgR21i
|
1541 |
-
SDEiMCAGA1UECxMZVEMgVHJ1c3RDZW50ZXIgQ2xhc3MgMyBDQTElMCMGA1UEAxMc
|
1542 |
-
VEMgVHJ1c3RDZW50ZXIgQ2xhc3MgMyBDQSBJSTCCASIwDQYJKoZIhvcNAQEBBQAD
|
1543 |
-
ggEPADCCAQoCggEBALTgu1G7OVyLBMVMeRwjhjEQY0NVJz/GRcekPewJDRoeIMJW
|
1544 |
-
Ht4bNwcwIi9v8Qbxq63WyKthoy9DxLCyLfzDlml7forkzMA5EpBCYMnMNWju2l+Q
|
1545 |
-
Vl/NHE1bWEnrDgFPZPosPIlY2C8u4rBo6SI7dYnWRBpl8huXJh0obazovVkdKyT2
|
1546 |
-
1oQDZogkAHhg8fir/gKya/si+zXmFtGt9i4S5Po1auUZuV3bOx4a+9P/FRQI2Alq
|
1547 |
-
ukWdFHlgfa9Aigdzs5OW03Q0jTo3Kd5c7PXuLjHCINy+8U9/I1LZW+Jk2ZyqBwi1
|
1548 |
-
Rb3R0DHBq1SfqdLDYmAD8bs5SpJKPQq5ncWg/jcCAwEAAaOCATQwggEwMA8GA1Ud
|
1549 |
-
EwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBTUovyfs8PYA9NX
|
1550 |
-
XAek0CSnwPIA1DCB7QYDVR0fBIHlMIHiMIHfoIHcoIHZhjVodHRwOi8vd3d3LnRy
|
1551 |
-
dXN0Y2VudGVyLmRlL2NybC92Mi90Y19jbGFzc18zX2NhX0lJLmNybIaBn2xkYXA6
|
1552 |
-
Ly93d3cudHJ1c3RjZW50ZXIuZGUvQ049VEMlMjBUcnVzdENlbnRlciUyMENsYXNz
|
1553 |
-
JTIwMyUyMENBJTIwSUksTz1UQyUyMFRydXN0Q2VudGVyJTIwR21iSCxPVT1yb290
|
1554 |
-
Y2VydHMsREM9dHJ1c3RjZW50ZXIsREM9ZGU/Y2VydGlmaWNhdGVSZXZvY2F0aW9u
|
1555 |
-
TGlzdD9iYXNlPzANBgkqhkiG9w0BAQUFAAOCAQEANmDkcPcGIEPZIxpC8vijsrlN
|
1556 |
-
irTzwppVMXzEO2eatN9NDoqTSheLG43KieHPOh6sHfGcMrSOWXaiQYUlN6AT0PV8
|
1557 |
-
TtXqluJucsG7Kv5sbviRmEb8yRtXW+rIGjs/sFGYPAfaLFkB2otE6OF0/ado3VS6
|
1558 |
-
g0bsyEa1+K+XwDsJHI/OcpY9M1ZwvJbL2NV9IJqDnxrcOfHFcqMRA/07QlIp2+gB
|
1559 |
-
95tejNaNhk4Z+rwcvsUhpYeeeC422wlxo3I0+GzjBgnyXlal092Y+tTmBvTwtiBj
|
1560 |
-
S+opvaqCZh77gaqnN60TGOaSw4HBM7uIHqHn4rS9MWwOUT1v+5ZWgOI2F9Hc5A==
|
1561 |
-
-----END CERTIFICATE-----
|
1562 |
-
|
1563 |
-
# Issuer: CN=TC TrustCenter Universal CA I O=TC TrustCenter GmbH OU=TC TrustCenter Universal CA
|
1564 |
-
# Subject: CN=TC TrustCenter Universal CA I O=TC TrustCenter GmbH OU=TC TrustCenter Universal CA
|
1565 |
-
# Label: "TC TrustCenter Universal CA I"
|
1566 |
-
# Serial: 601024842042189035295619584734726
|
1567 |
-
# MD5 Fingerprint: 45:e1:a5:72:c5:a9:36:64:40:9e:f5:e4:58:84:67:8c
|
1568 |
-
# SHA1 Fingerprint: 6b:2f:34:ad:89:58:be:62:fd:b0:6b:5c:ce:bb:9d:d9:4f:4e:39:f3
|
1569 |
-
# SHA256 Fingerprint: eb:f3:c0:2a:87:89:b1:fb:7d:51:19:95:d6:63:b7:29:06:d9:13:ce:0d:5e:10:56:8a:8a:77:e2:58:61:67:e7
|
1570 |
-
-----BEGIN CERTIFICATE-----
|
1571 |
-
MIID3TCCAsWgAwIBAgIOHaIAAQAC7LdggHiNtgYwDQYJKoZIhvcNAQEFBQAweTEL
|
1572 |
-
MAkGA1UEBhMCREUxHDAaBgNVBAoTE1RDIFRydXN0Q2VudGVyIEdtYkgxJDAiBgNV
|
1573 |
-
BAsTG1RDIFRydXN0Q2VudGVyIFVuaXZlcnNhbCBDQTEmMCQGA1UEAxMdVEMgVHJ1
|
1574 |
-
c3RDZW50ZXIgVW5pdmVyc2FsIENBIEkwHhcNMDYwMzIyMTU1NDI4WhcNMjUxMjMx
|
1575 |
-
MjI1OTU5WjB5MQswCQYDVQQGEwJERTEcMBoGA1UEChMTVEMgVHJ1c3RDZW50ZXIg
|
1576 |
-
R21iSDEkMCIGA1UECxMbVEMgVHJ1c3RDZW50ZXIgVW5pdmVyc2FsIENBMSYwJAYD
|
1577 |
-
VQQDEx1UQyBUcnVzdENlbnRlciBVbml2ZXJzYWwgQ0EgSTCCASIwDQYJKoZIhvcN
|
1578 |
-
AQEBBQADggEPADCCAQoCggEBAKR3I5ZEr5D0MacQ9CaHnPM42Q9e3s9B6DGtxnSR
|
1579 |
-
JJZ4Hgmgm5qVSkr1YnwCqMqs+1oEdjneX/H5s7/zA1hV0qq34wQi0fiU2iIIAI3T
|
1580 |
-
fCZdzHd55yx4Oagmcw6iXSVphU9VDprvxrlE4Vc93x9UIuVvZaozhDrzznq+VZeu
|
1581 |
-
jRIPFDPiUHDDSYcTvFHe15gSWu86gzOSBnWLknwSaHtwag+1m7Z3W0hZneTvWq3z
|
1582 |
-
wZ7U10VOylY0Ibw+F1tvdwxIAUMpsN0/lm7mlaoMwCC2/T42J5zjXM9OgdwZu5GQ
|
1583 |
-
fezmlwQek8wiSdeXhrYTCjxDI3d+8NzmzSQfO4ObNDqDNOMCAwEAAaNjMGEwHwYD
|
1584 |
-
VR0jBBgwFoAUkqR1LKSevoFE63n8isWVpesQdXMwDwYDVR0TAQH/BAUwAwEB/zAO
|
1585 |
-
BgNVHQ8BAf8EBAMCAYYwHQYDVR0OBBYEFJKkdSyknr6BROt5/IrFlaXrEHVzMA0G
|
1586 |
-
CSqGSIb3DQEBBQUAA4IBAQAo0uCG1eb4e/CX3CJrO5UUVg8RMKWaTzqwOuAGy2X1
|
1587 |
-
7caXJ/4l8lfmXpWMPmRgFVp/Lw0BxbFg/UU1z/CyvwbZ71q+s2IhtNerNXxTPqYn
|
1588 |
-
8aEt2hojnczd7Dwtnic0XQ/CNnm8yUpiLe1r2X1BQ3y2qsrtYbE3ghUJGooWMNjs
|
1589 |
-
ydZHcnhLEEYUjl8Or+zHL6sQ17bxbuyGssLoDZJz3KL0Dzq/YSMQiZxIQG5wALPT
|
1590 |
-
ujdEWBF6AmqI8Dc08BnprNRlc/ZpjGSUOnmFKbAWKwyCPwacx/0QK54PLLae4xW/
|
1591 |
-
2TYcuiUaUj0a7CIMHOCkoj3w6DnPgcB77V0fb8XQC9eY
|
1592 |
-
-----END CERTIFICATE-----
|
1593 |
-
|
1594 |
-
# Issuer: CN=Cybertrust Global Root O=Cybertrust, Inc
|
1595 |
-
# Subject: CN=Cybertrust Global Root O=Cybertrust, Inc
|
1596 |
-
# Label: "Cybertrust Global Root"
|
1597 |
-
# Serial: 4835703278459682877484360
|
1598 |
-
# MD5 Fingerprint: 72:e4:4a:87:e3:69:40:80:77:ea:bc:e3:f4:ff:f0:e1
|
1599 |
-
# SHA1 Fingerprint: 5f:43:e5:b1:bf:f8:78:8c:ac:1c:c7:ca:4a:9a:c6:22:2b:cc:34:c6
|
1600 |
-
# SHA256 Fingerprint: 96:0a:df:00:63:e9:63:56:75:0c:29:65:dd:0a:08:67:da:0b:9c:bd:6e:77:71:4a:ea:fb:23:49:ab:39:3d:a3
|
1601 |
-
-----BEGIN CERTIFICATE-----
|
1602 |
-
MIIDoTCCAomgAwIBAgILBAAAAAABD4WqLUgwDQYJKoZIhvcNAQEFBQAwOzEYMBYG
|
1603 |
-
A1UEChMPQ3liZXJ0cnVzdCwgSW5jMR8wHQYDVQQDExZDeWJlcnRydXN0IEdsb2Jh
|
1604 |
-
bCBSb290MB4XDTA2MTIxNTA4MDAwMFoXDTIxMTIxNTA4MDAwMFowOzEYMBYGA1UE
|
1605 |
-
ChMPQ3liZXJ0cnVzdCwgSW5jMR8wHQYDVQQDExZDeWJlcnRydXN0IEdsb2JhbCBS
|
1606 |
-
b290MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA+Mi8vRRQZhP/8NN5
|
1607 |
-
7CPytxrHjoXxEnOmGaoQ25yiZXRadz5RfVb23CO21O1fWLE3TdVJDm71aofW0ozS
|
1608 |
-
J8bi/zafmGWgE07GKmSb1ZASzxQG9Dvj1Ci+6A74q05IlG2OlTEQXO2iLb3VOm2y
|
1609 |
-
HLtgwEZLAfVJrn5GitB0jaEMAs7u/OePuGtm839EAL9mJRQr3RAwHQeWP032a7iP
|
1610 |
-
t3sMpTjr3kfb1V05/Iin89cqdPHoWqI7n1C6poxFNcJQZZXcY4Lv3b93TZxiyWNz
|
1611 |
-
FtApD0mpSPCzqrdsxacwOUBdrsTiXSZT8M4cIwhhqJQZugRiQOwfOHB3EgZxpzAY
|
1612 |
-
XSUnpQIDAQABo4GlMIGiMA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMBAf8EBTADAQH/
|
1613 |
-
MB0GA1UdDgQWBBS2CHsNesysIEyGVjJez6tuhS1wVzA/BgNVHR8EODA2MDSgMqAw
|
1614 |
-
hi5odHRwOi8vd3d3Mi5wdWJsaWMtdHJ1c3QuY29tL2NybC9jdC9jdHJvb3QuY3Js
|
1615 |
-
MB8GA1UdIwQYMBaAFLYIew16zKwgTIZWMl7Pq26FLXBXMA0GCSqGSIb3DQEBBQUA
|
1616 |
-
A4IBAQBW7wojoFROlZfJ+InaRcHUowAl9B8Tq7ejhVhpwjCt2BWKLePJzYFa+HMj
|
1617 |
-
Wqd8BfP9IjsO0QbE2zZMcwSO5bAi5MXzLqXZI+O4Tkogp24CJJ8iYGd7ix1yCcUx
|
1618 |
-
XOl5n4BHPa2hCwcUPUf/A2kaDAtE52Mlp3+yybh2hO0j9n0Hq0V+09+zv+mKts2o
|
1619 |
-
omcrUtW3ZfA5TGOgkXmTUg9U3YO7n9GPp1Nzw8v/MOx8BLjYRB+TX3EJIrduPuoc
|
1620 |
-
A06dGiBh+4E37F78CkWr1+cXVdCg6mCbpvbjjFspwgZgFJ0tl0ypkxWdYcQBX0jW
|
1621 |
-
WL1WMRJOEcgh4LMRkWXbtKaIOM5V
|
1622 |
-
-----END CERTIFICATE-----
|
1623 |
-
|
1624 |
-
# Issuer: CN=GeoTrust Primary Certification Authority - G3 O=GeoTrust Inc. OU=(c) 2008 GeoTrust Inc. - For authorized use only
|
1625 |
-
# Subject: CN=GeoTrust Primary Certification Authority - G3 O=GeoTrust Inc. OU=(c) 2008 GeoTrust Inc. - For authorized use only
|
1626 |
-
# Label: "GeoTrust Primary Certification Authority - G3"
|
1627 |
-
# Serial: 28809105769928564313984085209975885599
|
1628 |
-
# MD5 Fingerprint: b5:e8:34:36:c9:10:44:58:48:70:6d:2e:83:d4:b8:05
|
1629 |
-
# SHA1 Fingerprint: 03:9e:ed:b8:0b:e7:a0:3c:69:53:89:3b:20:d2:d9:32:3a:4c:2a:fd
|
1630 |
-
# SHA256 Fingerprint: b4:78:b8:12:25:0d:f8:78:63:5c:2a:a7:ec:7d:15:5e:aa:62:5e:e8:29:16:e2:cd:29:43:61:88:6c:d1:fb:d4
|
1631 |
-
-----BEGIN CERTIFICATE-----
|
1632 |
-
MIID/jCCAuagAwIBAgIQFaxulBmyeUtB9iepwxgPHzANBgkqhkiG9w0BAQsFADCB
|
1633 |
-
mDELMAkGA1UEBhMCVVMxFjAUBgNVBAoTDUdlb1RydXN0IEluYy4xOTA3BgNVBAsT
|
1634 |
-
MChjKSAyMDA4IEdlb1RydXN0IEluYy4gLSBGb3IgYXV0aG9yaXplZCB1c2Ugb25s
|
1635 |
-
eTE2MDQGA1UEAxMtR2VvVHJ1c3QgUHJpbWFyeSBDZXJ0aWZpY2F0aW9uIEF1dGhv
|
1636 |
-
cml0eSAtIEczMB4XDTA4MDQwMjAwMDAwMFoXDTM3MTIwMTIzNTk1OVowgZgxCzAJ
|
1637 |
-
BgNVBAYTAlVTMRYwFAYDVQQKEw1HZW9UcnVzdCBJbmMuMTkwNwYDVQQLEzAoYykg
|
1638 |
-
MjAwOCBHZW9UcnVzdCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxNjA0
|
1639 |
-
BgNVBAMTLUdlb1RydXN0IFByaW1hcnkgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkg
|
1640 |
-
LSBHMzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANziXmJYHTNXOTIz
|
1641 |
-
+uvLh4yn1ErdBojqZI4xmKU4kB6Yzy5jK/BGvESyiaHAKAxJcCGVn2TAppMSAmUm
|
1642 |
-
hsalifD614SgcK9PGpc/BkTVyetyEH3kMSj7HGHmKAdEc5IiaacDiGydY8hS2pgn
|
1643 |
-
5whMcD60yRLBxWeDXTPzAxHsatBT4tG6NmCUgLthY2xbF37fQJQeqw3CIShwiP/W
|
1644 |
-
JmxsYAQlTlV+fe+/lEjetx3dcI0FX4ilm/LC7urRQEFtYjgdVgbFA0dRIBn8exAL
|
1645 |
-
DmKudlW/X3e+PkkBUz2YJQN2JFodtNuJ6nnltrM7P7pMKEF/BqxqjsHQ9gUdfeZC
|
1646 |
-
huOl1UcCAwEAAaNCMEAwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYw
|
1647 |
-
HQYDVR0OBBYEFMR5yo6hTgMdHNxr2zFblD4/MH8tMA0GCSqGSIb3DQEBCwUAA4IB
|
1648 |
-
AQAtxRPPVoB7eni9n64smefv2t+UXglpp+duaIy9cr5HqQ6XErhK8WTTOd8lNNTB
|
1649 |
-
zU6B8A8ExCSzNJbGpqow32hhc9f5joWJ7w5elShKKiePEI4ufIbEAp7aDHdlDkQN
|
1650 |
-
kv39sxY2+hENHYwOB4lqKVb3cvTdFZx3NWZXqxNT2I7BQMXXExZacse3aQHEerGD
|
1651 |
-
AWh9jUGhlBjBJVz88P6DAod8DQ3PLghcSkANPuyBYeYk28rgDi0Hsj5W3I31QYUH
|
1652 |
-
SJsMC8tJP33st/3LjWeJGqvtux6jAAgIFyqCXDFdRootD4abdNlF+9RAsXqqaC2G
|
1653 |
-
spki4cErx5z481+oghLrGREt
|
1654 |
-
-----END CERTIFICATE-----
|
1655 |
-
|
1656 |
-
# Issuer: CN=thawte Primary Root CA - G2 O=thawte, Inc. OU=(c) 2007 thawte, Inc. - For authorized use only
|
1657 |
-
# Subject: CN=thawte Primary Root CA - G2 O=thawte, Inc. OU=(c) 2007 thawte, Inc. - For authorized use only
|
1658 |
-
# Label: "thawte Primary Root CA - G2"
|
1659 |
-
# Serial: 71758320672825410020661621085256472406
|
1660 |
-
# MD5 Fingerprint: 74:9d:ea:60:24:c4:fd:22:53:3e:cc:3a:72:d9:29:4f
|
1661 |
-
# SHA1 Fingerprint: aa:db:bc:22:23:8f:c4:01:a1:27:bb:38:dd:f4:1d:db:08:9e:f0:12
|
1662 |
-
# SHA256 Fingerprint: a4:31:0d:50:af:18:a6:44:71:90:37:2a:86:af:af:8b:95:1f:fb:43:1d:83:7f:1e:56:88:b4:59:71:ed:15:57
|
1663 |
-
-----BEGIN CERTIFICATE-----
|
1664 |
-
MIICiDCCAg2gAwIBAgIQNfwmXNmET8k9Jj1Xm67XVjAKBggqhkjOPQQDAzCBhDEL
|
1665 |
-
MAkGA1UEBhMCVVMxFTATBgNVBAoTDHRoYXd0ZSwgSW5jLjE4MDYGA1UECxMvKGMp
|
1666 |
-
IDIwMDcgdGhhd3RlLCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxJDAi
|
1667 |
-
BgNVBAMTG3RoYXd0ZSBQcmltYXJ5IFJvb3QgQ0EgLSBHMjAeFw0wNzExMDUwMDAw
|
1668 |
-
MDBaFw0zODAxMTgyMzU5NTlaMIGEMQswCQYDVQQGEwJVUzEVMBMGA1UEChMMdGhh
|
1669 |
-
d3RlLCBJbmMuMTgwNgYDVQQLEy8oYykgMjAwNyB0aGF3dGUsIEluYy4gLSBGb3Ig
|
1670 |
-
YXV0aG9yaXplZCB1c2Ugb25seTEkMCIGA1UEAxMbdGhhd3RlIFByaW1hcnkgUm9v
|
1671 |
-
dCBDQSAtIEcyMHYwEAYHKoZIzj0CAQYFK4EEACIDYgAEotWcgnuVnfFSeIf+iha/
|
1672 |
-
BebfowJPDQfGAFG6DAJSLSKkQjnE/o/qycG+1E3/n3qe4rF8mq2nhglzh9HnmuN6
|
1673 |
-
papu+7qzcMBniKI11KOasf2twu8x+qi58/sIxpHR+ymVo0IwQDAPBgNVHRMBAf8E
|
1674 |
-
BTADAQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUmtgAMADna3+FGO6Lts6K
|
1675 |
-
DPgR4bswCgYIKoZIzj0EAwMDaQAwZgIxAN344FdHW6fmCsO99YCKlzUNG4k8VIZ3
|
1676 |
-
KMqh9HneteY4sPBlcIx/AlTCv//YoT7ZzwIxAMSNlPzcU9LcnXgWHxUzI1NS41ox
|
1677 |
-
XZ3Krr0TKUQNJ1uo52icEvdYPy5yAlejj6EULg==
|
1678 |
-
-----END CERTIFICATE-----
|
1679 |
-
|
1680 |
-
# Issuer: CN=thawte Primary Root CA - G3 O=thawte, Inc. OU=Certification Services Division/(c) 2008 thawte, Inc. - For authorized use only
|
1681 |
-
# Subject: CN=thawte Primary Root CA - G3 O=thawte, Inc. OU=Certification Services Division/(c) 2008 thawte, Inc. - For authorized use only
|
1682 |
-
# Label: "thawte Primary Root CA - G3"
|
1683 |
-
# Serial: 127614157056681299805556476275995414779
|
1684 |
-
# MD5 Fingerprint: fb:1b:5d:43:8a:94:cd:44:c6:76:f2:43:4b:47:e7:31
|
1685 |
-
# SHA1 Fingerprint: f1:8b:53:8d:1b:e9:03:b6:a6:f0:56:43:5b:17:15:89:ca:f3:6b:f2
|
1686 |
-
# SHA256 Fingerprint: 4b:03:f4:58:07:ad:70:f2:1b:fc:2c:ae:71:c9:fd:e4:60:4c:06:4c:f5:ff:b6:86:ba:e5:db:aa:d7:fd:d3:4c
|
1687 |
-
-----BEGIN CERTIFICATE-----
|
1688 |
-
MIIEKjCCAxKgAwIBAgIQYAGXt0an6rS0mtZLL/eQ+zANBgkqhkiG9w0BAQsFADCB
|
1689 |
-
rjELMAkGA1UEBhMCVVMxFTATBgNVBAoTDHRoYXd0ZSwgSW5jLjEoMCYGA1UECxMf
|
1690 |
-
Q2VydGlmaWNhdGlvbiBTZXJ2aWNlcyBEaXZpc2lvbjE4MDYGA1UECxMvKGMpIDIw
|
1691 |
-
MDggdGhhd3RlLCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxJDAiBgNV
|
1692 |
-
BAMTG3RoYXd0ZSBQcmltYXJ5IFJvb3QgQ0EgLSBHMzAeFw0wODA0MDIwMDAwMDBa
|
1693 |
-
Fw0zNzEyMDEyMzU5NTlaMIGuMQswCQYDVQQGEwJVUzEVMBMGA1UEChMMdGhhd3Rl
|
1694 |
-
LCBJbmMuMSgwJgYDVQQLEx9DZXJ0aWZpY2F0aW9uIFNlcnZpY2VzIERpdmlzaW9u
|
1695 |
-
MTgwNgYDVQQLEy8oYykgMjAwOCB0aGF3dGUsIEluYy4gLSBGb3IgYXV0aG9yaXpl
|
1696 |
-
ZCB1c2Ugb25seTEkMCIGA1UEAxMbdGhhd3RlIFByaW1hcnkgUm9vdCBDQSAtIEcz
|
1697 |
-
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAsr8nLPvb2FvdeHsbnndm
|
1698 |
-
gcs+vHyu86YnmjSjaDFxODNi5PNxZnmxqWWjpYvVj2AtP0LMqmsywCPLLEHd5N/8
|
1699 |
-
YZzic7IilRFDGF/Eth9XbAoFWCLINkw6fKXRz4aviKdEAhN0cXMKQlkC+BsUa0Lf
|
1700 |
-
b1+6a4KinVvnSr0eAXLbS3ToO39/fR8EtCab4LRarEc9VbjXsCZSKAExQGbY2SS9
|
1701 |
-
9irY7CFJXJv2eul/VTV+lmuNk5Mny5K76qxAwJ/C+IDPXfRa3M50hqY+bAtTyr2S
|
1702 |
-
zhkGcuYMXDhpxwTWvGzOW/b3aJzcJRVIiKHpqfiYnODz1TEoYRFsZ5aNOZnLwkUk
|
1703 |
-
OQIDAQABo0IwQDAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNV
|
1704 |
-
HQ4EFgQUrWyqlGCc7eT/+j4KdCtjA/e2Wb8wDQYJKoZIhvcNAQELBQADggEBABpA
|
1705 |
-
2JVlrAmSicY59BDlqQ5mU1143vokkbvnRFHfxhY0Cu9qRFHqKweKA3rD6z8KLFIW
|
1706 |
-
oCtDuSWQP3CpMyVtRRooOyfPqsMpQhvfO0zAMzRbQYi/aytlryjvsvXDqmbOe1bu
|
1707 |
-
t8jLZ8HJnBoYuMTDSQPxYA5QzUbF83d597YV4Djbxy8ooAw/dyZ02SUS2jHaGh7c
|
1708 |
-
KUGRIjxpp7sC8rZcJwOJ9Abqm+RyguOhCcHpABnTPtRwa7pxpqpYrvS76Wy274fM
|
1709 |
-
m7v/OeZWYdMKp8RcTGB7BXcmer/YB1IsYvdwY9k5vG8cwnncdimvzsUsZAReiDZu
|
1710 |
-
MdRAGmI0Nj81Aa6sY6A=
|
1711 |
-
-----END CERTIFICATE-----
|
1712 |
-
|
1713 |
-
# Issuer: CN=GeoTrust Primary Certification Authority - G2 O=GeoTrust Inc. OU=(c) 2007 GeoTrust Inc. - For authorized use only
|
1714 |
-
# Subject: CN=GeoTrust Primary Certification Authority - G2 O=GeoTrust Inc. OU=(c) 2007 GeoTrust Inc. - For authorized use only
|
1715 |
-
# Label: "GeoTrust Primary Certification Authority - G2"
|
1716 |
-
# Serial: 80682863203381065782177908751794619243
|
1717 |
-
# MD5 Fingerprint: 01:5e:d8:6b:bd:6f:3d:8e:a1:31:f8:12:e0:98:73:6a
|
1718 |
-
# SHA1 Fingerprint: 8d:17:84:d5:37:f3:03:7d:ec:70:fe:57:8b:51:9a:99:e6:10:d7:b0
|
1719 |
-
# SHA256 Fingerprint: 5e:db:7a:c4:3b:82:a0:6a:87:61:e8:d7:be:49:79:eb:f2:61:1f:7d:d7:9b:f9:1c:1c:6b:56:6a:21:9e:d7:66
|
1720 |
-
-----BEGIN CERTIFICATE-----
|
1721 |
-
MIICrjCCAjWgAwIBAgIQPLL0SAoA4v7rJDteYD7DazAKBggqhkjOPQQDAzCBmDEL
|
1722 |
-
MAkGA1UEBhMCVVMxFjAUBgNVBAoTDUdlb1RydXN0IEluYy4xOTA3BgNVBAsTMChj
|
1723 |
-
KSAyMDA3IEdlb1RydXN0IEluYy4gLSBGb3IgYXV0aG9yaXplZCB1c2Ugb25seTE2
|
1724 |
-
MDQGA1UEAxMtR2VvVHJ1c3QgUHJpbWFyeSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0
|
1725 |
-
eSAtIEcyMB4XDTA3MTEwNTAwMDAwMFoXDTM4MDExODIzNTk1OVowgZgxCzAJBgNV
|
1726 |
-
BAYTAlVTMRYwFAYDVQQKEw1HZW9UcnVzdCBJbmMuMTkwNwYDVQQLEzAoYykgMjAw
|
1727 |
-
NyBHZW9UcnVzdCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxNjA0BgNV
|
1728 |
-
BAMTLUdlb1RydXN0IFByaW1hcnkgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkgLSBH
|
1729 |
-
MjB2MBAGByqGSM49AgEGBSuBBAAiA2IABBWx6P0DFUPlrOuHNxFi79KDNlJ9RVcL
|
1730 |
-
So17VDs6bl8VAsBQps8lL33KSLjHUGMcKiEIfJo22Av+0SbFWDEwKCXzXV2juLal
|
1731 |
-
tJLtbCyf691DiaI8S0iRHVDsJt/WYC69IaNCMEAwDwYDVR0TAQH/BAUwAwEB/zAO
|
1732 |
-
BgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFBVfNVdRVfslsq0DafwBo/q+EVXVMAoG
|
1733 |
-
CCqGSM49BAMDA2cAMGQCMGSWWaboCd6LuvpaiIjwH5HTRqjySkwCY/tsXzjbLkGT
|
1734 |
-
qQ7mndwxHLKgpxgceeHHNgIwOlavmnRs9vuD4DPTCF+hnMJbn0bWtsuRBmOiBucz
|
1735 |
-
rD6ogRLQy7rQkgu2npaqBA+K
|
1736 |
-
-----END CERTIFICATE-----
|
1737 |
-
|
1738 |
-
# Issuer: CN=VeriSign Universal Root Certification Authority O=VeriSign, Inc. OU=VeriSign Trust Network/(c) 2008 VeriSign, Inc. - For authorized use only
|
1739 |
-
# Subject: CN=VeriSign Universal Root Certification Authority O=VeriSign, Inc. OU=VeriSign Trust Network/(c) 2008 VeriSign, Inc. - For authorized use only
|
1740 |
-
# Label: "VeriSign Universal Root Certification Authority"
|
1741 |
-
# Serial: 85209574734084581917763752644031726877
|
1742 |
-
# MD5 Fingerprint: 8e:ad:b5:01:aa:4d:81:e4:8c:1d:d1:e1:14:00:95:19
|
1743 |
-
# SHA1 Fingerprint: 36:79:ca:35:66:87:72:30:4d:30:a5:fb:87:3b:0f:a7:7b:b7:0d:54
|
1744 |
-
# SHA256 Fingerprint: 23:99:56:11:27:a5:71:25:de:8c:ef:ea:61:0d:df:2f:a0:78:b5:c8:06:7f:4e:82:82:90:bf:b8:60:e8:4b:3c
|
1745 |
-
-----BEGIN CERTIFICATE-----
|
1746 |
-
MIIEuTCCA6GgAwIBAgIQQBrEZCGzEyEDDrvkEhrFHTANBgkqhkiG9w0BAQsFADCB
|
1747 |
-
vTELMAkGA1UEBhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYDVQQL
|
1748 |
-
ExZWZXJpU2lnbiBUcnVzdCBOZXR3b3JrMTowOAYDVQQLEzEoYykgMjAwOCBWZXJp
|
1749 |
-
U2lnbiwgSW5jLiAtIEZvciBhdXRob3JpemVkIHVzZSBvbmx5MTgwNgYDVQQDEy9W
|
1750 |
-
ZXJpU2lnbiBVbml2ZXJzYWwgUm9vdCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAe
|
1751 |
-
Fw0wODA0MDIwMDAwMDBaFw0zNzEyMDEyMzU5NTlaMIG9MQswCQYDVQQGEwJVUzEX
|
1752 |
-
MBUGA1UEChMOVmVyaVNpZ24sIEluYy4xHzAdBgNVBAsTFlZlcmlTaWduIFRydXN0
|
1753 |
-
IE5ldHdvcmsxOjA4BgNVBAsTMShjKSAyMDA4IFZlcmlTaWduLCBJbmMuIC0gRm9y
|
1754 |
-
IGF1dGhvcml6ZWQgdXNlIG9ubHkxODA2BgNVBAMTL1ZlcmlTaWduIFVuaXZlcnNh
|
1755 |
-
bCBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MIIBIjANBgkqhkiG9w0BAQEF
|
1756 |
-
AAOCAQ8AMIIBCgKCAQEAx2E3XrEBNNti1xWb/1hajCMj1mCOkdeQmIN65lgZOIzF
|
1757 |
-
9uVkhbSicfvtvbnazU0AtMgtc6XHaXGVHzk8skQHnOgO+k1KxCHfKWGPMiJhgsWH
|
1758 |
-
H26MfF8WIFFE0XBPV+rjHOPMee5Y2A7Cs0WTwCznmhcrewA3ekEzeOEz4vMQGn+H
|
1759 |
-
LL729fdC4uW/h2KJXwBL38Xd5HVEMkE6HnFuacsLdUYI0crSK5XQz/u5QGtkjFdN
|
1760 |
-
/BMReYTtXlT2NJ8IAfMQJQYXStrxHXpma5hgZqTZ79IugvHw7wnqRMkVauIDbjPT
|
1761 |
-
rJ9VAMf2CGqUuV/c4DPxhGD5WycRtPwW8rtWaoAljQIDAQABo4GyMIGvMA8GA1Ud
|
1762 |
-
EwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMG0GCCsGAQUFBwEMBGEwX6FdoFsw
|
1763 |
-
WTBXMFUWCWltYWdlL2dpZjAhMB8wBwYFKw4DAhoEFI/l0xqGrI2Oa8PPgGrUSBgs
|
1764 |
-
exkuMCUWI2h0dHA6Ly9sb2dvLnZlcmlzaWduLmNvbS92c2xvZ28uZ2lmMB0GA1Ud
|
1765 |
-
DgQWBBS2d/ppSEefUxLVwuoHMnYH0ZcHGTANBgkqhkiG9w0BAQsFAAOCAQEASvj4
|
1766 |
-
sAPmLGd75JR3Y8xuTPl9Dg3cyLk1uXBPY/ok+myDjEedO2Pzmvl2MpWRsXe8rJq+
|
1767 |
-
seQxIcaBlVZaDrHC1LGmWazxY8u4TB1ZkErvkBYoH1quEPuBUDgMbMzxPcP1Y+Oz
|
1768 |
-
4yHJJDnp/RVmRvQbEdBNc6N9Rvk97ahfYtTxP/jgdFcrGJ2BtMQo2pSXpXDrrB2+
|
1769 |
-
BxHw1dvd5Yzw1TKwg+ZX4o+/vqGqvz0dtdQ46tewXDpPaj+PwGZsY6rp2aQW9IHR
|
1770 |
-
lRQOfc2VNNnSj3BzgXucfr2YYdhFh5iQxeuGMMY1v/D/w1WIg0vvBZIGcfK4mJO3
|
1771 |
-
7M2CYfE45k+XmCpajQ==
|
1772 |
-
-----END CERTIFICATE-----
|
1773 |
-
|
1774 |
-
# Issuer: CN=VeriSign Class 3 Public Primary Certification Authority - G4 O=VeriSign, Inc. OU=VeriSign Trust Network/(c) 2007 VeriSign, Inc. - For authorized use only
|
1775 |
-
# Subject: CN=VeriSign Class 3 Public Primary Certification Authority - G4 O=VeriSign, Inc. OU=VeriSign Trust Network/(c) 2007 VeriSign, Inc. - For authorized use only
|
1776 |
-
# Label: "VeriSign Class 3 Public Primary Certification Authority - G4"
|
1777 |
-
# Serial: 63143484348153506665311985501458640051
|
1778 |
-
# MD5 Fingerprint: 3a:52:e1:e7:fd:6f:3a:e3:6f:f3:6f:99:1b:f9:22:41
|
1779 |
-
# SHA1 Fingerprint: 22:d5:d8:df:8f:02:31:d1:8d:f7:9d:b7:cf:8a:2d:64:c9:3f:6c:3a
|
1780 |
-
# SHA256 Fingerprint: 69:dd:d7:ea:90:bb:57:c9:3e:13:5d:c8:5e:a6:fc:d5:48:0b:60:32:39:bd:c4:54:fc:75:8b:2a:26:cf:7f:79
|
1781 |
-
-----BEGIN CERTIFICATE-----
|
1782 |
-
MIIDhDCCAwqgAwIBAgIQL4D+I4wOIg9IZxIokYesszAKBggqhkjOPQQDAzCByjEL
|
1783 |
-
MAkGA1UEBhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYDVQQLExZW
|
1784 |
-
ZXJpU2lnbiBUcnVzdCBOZXR3b3JrMTowOAYDVQQLEzEoYykgMjAwNyBWZXJpU2ln
|
1785 |
-
biwgSW5jLiAtIEZvciBhdXRob3JpemVkIHVzZSBvbmx5MUUwQwYDVQQDEzxWZXJp
|
1786 |
-
U2lnbiBDbGFzcyAzIFB1YmxpYyBQcmltYXJ5IENlcnRpZmljYXRpb24gQXV0aG9y
|
1787 |
-
aXR5IC0gRzQwHhcNMDcxMTA1MDAwMDAwWhcNMzgwMTE4MjM1OTU5WjCByjELMAkG
|
1788 |
-
A1UEBhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYDVQQLExZWZXJp
|
1789 |
-
U2lnbiBUcnVzdCBOZXR3b3JrMTowOAYDVQQLEzEoYykgMjAwNyBWZXJpU2lnbiwg
|
1790 |
-
SW5jLiAtIEZvciBhdXRob3JpemVkIHVzZSBvbmx5MUUwQwYDVQQDEzxWZXJpU2ln
|
1791 |
-
biBDbGFzcyAzIFB1YmxpYyBQcmltYXJ5IENlcnRpZmljYXRpb24gQXV0aG9yaXR5
|
1792 |
-
IC0gRzQwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAASnVnp8Utpkmw4tXNherJI9/gHm
|
1793 |
-
GUo9FANL+mAnINmDiWn6VMaaGF5VKmTeBvaNSjutEDxlPZCIBIngMGGzrl0Bp3ve
|
1794 |
-
fLK+ymVhAIau2o970ImtTR1ZmkGxvEeA3J5iw/mjgbIwga8wDwYDVR0TAQH/BAUw
|
1795 |
-
AwEB/zAOBgNVHQ8BAf8EBAMCAQYwbQYIKwYBBQUHAQwEYTBfoV2gWzBZMFcwVRYJ
|
1796 |
-
aW1hZ2UvZ2lmMCEwHzAHBgUrDgMCGgQUj+XTGoasjY5rw8+AatRIGCx7GS4wJRYj
|
1797 |
-
aHR0cDovL2xvZ28udmVyaXNpZ24uY29tL3ZzbG9nby5naWYwHQYDVR0OBBYEFLMW
|
1798 |
-
kf3upm7ktS5Jj4d4gYDs5bG1MAoGCCqGSM49BAMDA2gAMGUCMGYhDBgmYFo4e1ZC
|
1799 |
-
4Kf8NoRRkSAsdk1DPcQdhCPQrNZ8NQbOzWm9kA3bbEhCHQ6qQgIxAJw9SDkjOVga
|
1800 |
-
FRJZap7v1VmyHVIsmXHNxynfGyphe3HR3vPA5Q06Sqotp9iGKt0uEA==
|
1801 |
-
-----END CERTIFICATE-----
|
1802 |
-
|
1803 |
-
# Issuer: O=VeriSign, Inc. OU=Class 3 Public Primary Certification Authority
|
1804 |
-
# Subject: O=VeriSign, Inc. OU=Class 3 Public Primary Certification Authority
|
1805 |
-
# Label: "Verisign Class 3 Public Primary Certification Authority"
|
1806 |
-
# Serial: 80507572722862485515306429940691309246
|
1807 |
-
# MD5 Fingerprint: ef:5a:f1:33:ef:f1:cd:bb:51:02:ee:12:14:4b:96:c4
|
1808 |
-
# SHA1 Fingerprint: a1:db:63:93:91:6f:17:e4:18:55:09:40:04:15:c7:02:40:b0:ae:6b
|
1809 |
-
# SHA256 Fingerprint: a4:b6:b3:99:6f:c2:f3:06:b3:fd:86:81:bd:63:41:3d:8c:50:09:cc:4f:a3:29:c2:cc:f0:e2:fa:1b:14:03:05
|
1810 |
-
-----BEGIN CERTIFICATE-----
|
1811 |
-
MIICPDCCAaUCEDyRMcsf9tAbDpq40ES/Er4wDQYJKoZIhvcNAQEFBQAwXzELMAkG
|
1812 |
-
A1UEBhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMTcwNQYDVQQLEy5DbGFz
|
1813 |
-
cyAzIFB1YmxpYyBQcmltYXJ5IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MB4XDTk2
|
1814 |
-
MDEyOTAwMDAwMFoXDTI4MDgwMjIzNTk1OVowXzELMAkGA1UEBhMCVVMxFzAVBgNV
|
1815 |
-
BAoTDlZlcmlTaWduLCBJbmMuMTcwNQYDVQQLEy5DbGFzcyAzIFB1YmxpYyBQcmlt
|
1816 |
-
YXJ5IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MIGfMA0GCSqGSIb3DQEBAQUAA4GN
|
1817 |
-
ADCBiQKBgQDJXFme8huKARS0EN8EQNvjV69qRUCPhAwL0TPZ2RHP7gJYHyX3KqhE
|
1818 |
-
BarsAx94f56TuZoAqiN91qyFomNFx3InzPRMxnVx0jnvT0Lwdd8KkMaOIG+YD/is
|
1819 |
-
I19wKTakyYbnsZogy1Olhec9vn2a/iRFM9x2Fe0PonFkTGUugWhFpwIDAQABMA0G
|
1820 |
-
CSqGSIb3DQEBBQUAA4GBABByUqkFFBkyCEHwxWsKzH4PIRnN5GfcX6kb5sroc50i
|
1821 |
-
2JhucwNhkcV8sEVAbkSdjbCxlnRhLQ2pRdKkkirWmnWXbj9T/UWZYB2oK0z5XqcJ
|
1822 |
-
2HUw19JlYD1n1khVdWk/kfVIC0dpImmClr7JyDiGSnoscxlIaU5rfGW/D/xwzoiQ
|
1823 |
-
-----END CERTIFICATE-----
|
1824 |
-
|
1825 |
-
# Issuer: CN=GlobalSign O=GlobalSign OU=GlobalSign Root CA - R3
|
1826 |
-
# Subject: CN=GlobalSign O=GlobalSign OU=GlobalSign Root CA - R3
|
1827 |
-
# Label: "GlobalSign Root CA - R3"
|
1828 |
-
# Serial: 4835703278459759426209954
|
1829 |
-
# MD5 Fingerprint: c5:df:b8:49:ca:05:13:55:ee:2d:ba:1a:c3:3e:b0:28
|
1830 |
-
# SHA1 Fingerprint: d6:9b:56:11:48:f0:1c:77:c5:45:78:c1:09:26:df:5b:85:69:76:ad
|
1831 |
-
# SHA256 Fingerprint: cb:b5:22:d7:b7:f1:27:ad:6a:01:13:86:5b:df:1c:d4:10:2e:7d:07:59:af:63:5a:7c:f4:72:0d:c9:63:c5:3b
|
1832 |
-
-----BEGIN CERTIFICATE-----
|
1833 |
-
MIIDXzCCAkegAwIBAgILBAAAAAABIVhTCKIwDQYJKoZIhvcNAQELBQAwTDEgMB4G
|
1834 |
-
A1UECxMXR2xvYmFsU2lnbiBSb290IENBIC0gUjMxEzARBgNVBAoTCkdsb2JhbFNp
|
1835 |
-
Z24xEzARBgNVBAMTCkdsb2JhbFNpZ24wHhcNMDkwMzE4MTAwMDAwWhcNMjkwMzE4
|
1836 |
-
MTAwMDAwWjBMMSAwHgYDVQQLExdHbG9iYWxTaWduIFJvb3QgQ0EgLSBSMzETMBEG
|
1837 |
-
A1UEChMKR2xvYmFsU2lnbjETMBEGA1UEAxMKR2xvYmFsU2lnbjCCASIwDQYJKoZI
|
1838 |
-
hvcNAQEBBQADggEPADCCAQoCggEBAMwldpB5BngiFvXAg7aEyiie/QV2EcWtiHL8
|
1839 |
-
RgJDx7KKnQRfJMsuS+FggkbhUqsMgUdwbN1k0ev1LKMPgj0MK66X17YUhhB5uzsT
|
1840 |
-
gHeMCOFJ0mpiLx9e+pZo34knlTifBtc+ycsmWQ1z3rDI6SYOgxXG71uL0gRgykmm
|
1841 |
-
KPZpO/bLyCiR5Z2KYVc3rHQU3HTgOu5yLy6c+9C7v/U9AOEGM+iCK65TpjoWc4zd
|
1842 |
-
QQ4gOsC0p6Hpsk+QLjJg6VfLuQSSaGjlOCZgdbKfd/+RFO+uIEn8rUAVSNECMWEZ
|
1843 |
-
XriX7613t2Saer9fwRPvm2L7DWzgVGkWqQPabumDk3F2xmmFghcCAwEAAaNCMEAw
|
1844 |
-
DgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFI/wS3+o
|
1845 |
-
LkUkrk1Q+mOai97i3Ru8MA0GCSqGSIb3DQEBCwUAA4IBAQBLQNvAUKr+yAzv95ZU
|
1846 |
-
RUm7lgAJQayzE4aGKAczymvmdLm6AC2upArT9fHxD4q/c2dKg8dEe3jgr25sbwMp
|
1847 |
-
jjM5RcOO5LlXbKr8EpbsU8Yt5CRsuZRj+9xTaGdWPoO4zzUhw8lo/s7awlOqzJCK
|
1848 |
-
6fBdRoyV3XpYKBovHd7NADdBj+1EbddTKJd+82cEHhXXipa0095MJ6RMG3NzdvQX
|
1849 |
-
mcIfeg7jLQitChws/zyrVQ4PkX4268NXSb7hLi18YIvDQVETI53O9zJrlAGomecs
|
1850 |
-
Mx86OyXShkDOOyyGeMlhLxS67ttVb9+E7gUJTb0o2HLO02JQZR7rkpeDMdmztcpH
|
1851 |
-
WD9f
|
1852 |
-
-----END CERTIFICATE-----
|
1853 |
-
|
1854 |
-
# Issuer: CN=TC TrustCenter Universal CA III O=TC TrustCenter GmbH OU=TC TrustCenter Universal CA
|
1855 |
-
# Subject: CN=TC TrustCenter Universal CA III O=TC TrustCenter GmbH OU=TC TrustCenter Universal CA
|
1856 |
-
# Label: "TC TrustCenter Universal CA III"
|
1857 |
-
# Serial: 2010889993983507346460533407902964
|
1858 |
-
# MD5 Fingerprint: 9f:dd:db:ab:ff:8e:ff:45:21:5f:f0:6c:9d:8f:fe:2b
|
1859 |
-
# SHA1 Fingerprint: 96:56:cd:7b:57:96:98:95:d0:e1:41:46:68:06:fb:b8:c6:11:06:87
|
1860 |
-
# SHA256 Fingerprint: 30:9b:4a:87:f6:ca:56:c9:31:69:aa:a9:9c:6d:98:88:54:d7:89:2b:d5:43:7e:2d:07:b2:9c:be:da:55:d3:5d
|
1861 |
-
-----BEGIN CERTIFICATE-----
|
1862 |
-
MIID4TCCAsmgAwIBAgIOYyUAAQACFI0zFQLkbPQwDQYJKoZIhvcNAQEFBQAwezEL
|
1863 |
-
MAkGA1UEBhMCREUxHDAaBgNVBAoTE1RDIFRydXN0Q2VudGVyIEdtYkgxJDAiBgNV
|
1864 |
-
BAsTG1RDIFRydXN0Q2VudGVyIFVuaXZlcnNhbCBDQTEoMCYGA1UEAxMfVEMgVHJ1
|
1865 |
-
c3RDZW50ZXIgVW5pdmVyc2FsIENBIElJSTAeFw0wOTA5MDkwODE1MjdaFw0yOTEy
|
1866 |
-
MzEyMzU5NTlaMHsxCzAJBgNVBAYTAkRFMRwwGgYDVQQKExNUQyBUcnVzdENlbnRl
|
1867 |
-
ciBHbWJIMSQwIgYDVQQLExtUQyBUcnVzdENlbnRlciBVbml2ZXJzYWwgQ0ExKDAm
|
1868 |
-
BgNVBAMTH1RDIFRydXN0Q2VudGVyIFVuaXZlcnNhbCBDQSBJSUkwggEiMA0GCSqG
|
1869 |
-
SIb3DQEBAQUAA4IBDwAwggEKAoIBAQDC2pxisLlxErALyBpXsq6DFJmzNEubkKLF
|
1870 |
-
5+cvAqBNLaT6hdqbJYUtQCggbergvbFIgyIpRJ9Og+41URNzdNW88jBmlFPAQDYv
|
1871 |
-
DIRlzg9uwliT6CwLOunBjvvya8o84pxOjuT5fdMnnxvVZ3iHLX8LR7PH6MlIfK8v
|
1872 |
-
zArZQe+f/prhsq75U7Xl6UafYOPfjdN/+5Z+s7Vy+EutCHnNaYlAJ/Uqwa1D7KRT
|
1873 |
-
yGG299J5KmcYdkhtWyUB0SbFt1dpIxVbYYqt8Bst2a9c8SaQaanVDED1M4BDj5yj
|
1874 |
-
dipFtK+/fz6HP3bFzSreIMUWWMv5G/UPyw0RUmS40nZid4PxWJ//AgMBAAGjYzBh
|
1875 |
-
MB8GA1UdIwQYMBaAFFbn4VslQ4Dg9ozhcbyO5YAvxEjiMA8GA1UdEwEB/wQFMAMB
|
1876 |
-
Af8wDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBRW5+FbJUOA4PaM4XG8juWAL8RI
|
1877 |
-
4jANBgkqhkiG9w0BAQUFAAOCAQEAg8ev6n9NCjw5sWi+e22JLumzCecYV42Fmhfz
|
1878 |
-
dkJQEw/HkG8zrcVJYCtsSVgZ1OK+t7+rSbyUyKu+KGwWaODIl0YgoGhnYIg5IFHY
|
1879 |
-
aAERzqf2EQf27OysGh+yZm5WZ2B6dF7AbZc2rrUNXWZzwCUyRdhKBgePxLcHsU0G
|
1880 |
-
DeGl6/R1yrqc0L2z0zIkTO5+4nYES0lT2PLpVDP85XEfPRRclkvxOvIAu2y0+pZV
|
1881 |
-
CIgJwcyRGSmwIC3/yzikQOEXvnlhgP8HA4ZMTnsGnxGGjYnuJ8Tb4rwZjgvDwxPH
|
1882 |
-
LQNjO9Po5KIqwoIIlBZU8O8fJ5AluA0OKBtHd0e9HKgl8ZS0Zg==
|
1883 |
-
-----END CERTIFICATE-----
|
1884 |
-
|
1885 |
-
# Issuer: CN=Go Daddy Root Certificate Authority - G2 O=GoDaddy.com, Inc.
|
1886 |
-
# Subject: CN=Go Daddy Root Certificate Authority - G2 O=GoDaddy.com, Inc.
|
1887 |
-
# Label: "Go Daddy Root Certificate Authority - G2"
|
1888 |
-
# Serial: 0
|
1889 |
-
# MD5 Fingerprint: 80:3a:bc:22:c1:e6:fb:8d:9b:3b:27:4a:32:1b:9a:01
|
1890 |
-
# SHA1 Fingerprint: 47:be:ab:c9:22:ea:e8:0e:78:78:34:62:a7:9f:45:c2:54:fd:e6:8b
|
1891 |
-
# SHA256 Fingerprint: 45:14:0b:32:47:eb:9c:c8:c5:b4:f0:d7:b5:30:91:f7:32:92:08:9e:6e:5a:63:e2:74:9d:d3:ac:a9:19:8e:da
|
1892 |
-
-----BEGIN CERTIFICATE-----
|
1893 |
-
MIIDxTCCAq2gAwIBAgIBADANBgkqhkiG9w0BAQsFADCBgzELMAkGA1UEBhMCVVMx
|
1894 |
-
EDAOBgNVBAgTB0FyaXpvbmExEzARBgNVBAcTClNjb3R0c2RhbGUxGjAYBgNVBAoT
|
1895 |
-
EUdvRGFkZHkuY29tLCBJbmMuMTEwLwYDVQQDEyhHbyBEYWRkeSBSb290IENlcnRp
|
1896 |
-
ZmljYXRlIEF1dGhvcml0eSAtIEcyMB4XDTA5MDkwMTAwMDAwMFoXDTM3MTIzMTIz
|
1897 |
-
NTk1OVowgYMxCzAJBgNVBAYTAlVTMRAwDgYDVQQIEwdBcml6b25hMRMwEQYDVQQH
|
1898 |
-
EwpTY290dHNkYWxlMRowGAYDVQQKExFHb0RhZGR5LmNvbSwgSW5jLjExMC8GA1UE
|
1899 |
-
AxMoR28gRGFkZHkgUm9vdCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkgLSBHMjCCASIw
|
1900 |
-
DQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAL9xYgjx+lk09xvJGKP3gElY6SKD
|
1901 |
-
E6bFIEMBO4Tx5oVJnyfq9oQbTqC023CYxzIBsQU+B07u9PpPL1kwIuerGVZr4oAH
|
1902 |
-
/PMWdYA5UXvl+TW2dE6pjYIT5LY/qQOD+qK+ihVqf94Lw7YZFAXK6sOoBJQ7Rnwy
|
1903 |
-
DfMAZiLIjWltNowRGLfTshxgtDj6AozO091GB94KPutdfMh8+7ArU6SSYmlRJQVh
|
1904 |
-
GkSBjCypQ5Yj36w6gZoOKcUcqeldHraenjAKOc7xiID7S13MMuyFYkMlNAJWJwGR
|
1905 |
-
tDtwKj9useiciAF9n9T521NtYJ2/LOdYq7hfRvzOxBsDPAnrSTFcaUaz4EcCAwEA
|
1906 |
-
AaNCMEAwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYE
|
1907 |
-
FDqahQcQZyi27/a9BUFuIMGU2g/eMA0GCSqGSIb3DQEBCwUAA4IBAQCZ21151fmX
|
1908 |
-
WWcDYfF+OwYxdS2hII5PZYe096acvNjpL9DbWu7PdIxztDhC2gV7+AJ1uP2lsdeu
|
1909 |
-
9tfeE8tTEH6KRtGX+rcuKxGrkLAngPnon1rpN5+r5N9ss4UXnT3ZJE95kTXWXwTr
|
1910 |
-
gIOrmgIttRD02JDHBHNA7XIloKmf7J6raBKZV8aPEjoJpL1E/QYVN8Gb5DKj7Tjo
|
1911 |
-
2GTzLH4U/ALqn83/B2gX2yKQOC16jdFU8WnjXzPKej17CuPKf1855eJ1usV2GDPO
|
1912 |
-
LPAvTK33sefOT6jEm0pUBsV/fdUID+Ic/n4XuKxe9tQWskMJDE32p2u0mYRlynqI
|
1913 |
-
4uJEvlz36hz1
|
1914 |
-
-----END CERTIFICATE-----
|
1915 |
-
|
1916 |
-
# Issuer: CN=Starfield Root Certificate Authority - G2 O=Starfield Technologies, Inc.
|
1917 |
-
# Subject: CN=Starfield Root Certificate Authority - G2 O=Starfield Technologies, Inc.
|
1918 |
-
# Label: "Starfield Root Certificate Authority - G2"
|
1919 |
-
# Serial: 0
|
1920 |
-
# MD5 Fingerprint: d6:39:81:c6:52:7e:96:69:fc:fc:ca:66:ed:05:f2:96
|
1921 |
-
# SHA1 Fingerprint: b5:1c:06:7c:ee:2b:0c:3d:f8:55:ab:2d:92:f4:fe:39:d4:e7:0f:0e
|
1922 |
-
# SHA256 Fingerprint: 2c:e1:cb:0b:f9:d2:f9:e1:02:99:3f:be:21:51:52:c3:b2:dd:0c:ab:de:1c:68:e5:31:9b:83:91:54:db:b7:f5
|
1923 |
-
-----BEGIN CERTIFICATE-----
|
1924 |
-
MIID3TCCAsWgAwIBAgIBADANBgkqhkiG9w0BAQsFADCBjzELMAkGA1UEBhMCVVMx
|
1925 |
-
EDAOBgNVBAgTB0FyaXpvbmExEzARBgNVBAcTClNjb3R0c2RhbGUxJTAjBgNVBAoT
|
1926 |
-
HFN0YXJmaWVsZCBUZWNobm9sb2dpZXMsIEluYy4xMjAwBgNVBAMTKVN0YXJmaWVs
|
1927 |
-
ZCBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAtIEcyMB4XDTA5MDkwMTAwMDAw
|
1928 |
-
MFoXDTM3MTIzMTIzNTk1OVowgY8xCzAJBgNVBAYTAlVTMRAwDgYDVQQIEwdBcml6
|
1929 |
-
b25hMRMwEQYDVQQHEwpTY290dHNkYWxlMSUwIwYDVQQKExxTdGFyZmllbGQgVGVj
|
1930 |
-
aG5vbG9naWVzLCBJbmMuMTIwMAYDVQQDEylTdGFyZmllbGQgUm9vdCBDZXJ0aWZp
|
1931 |
-
Y2F0ZSBBdXRob3JpdHkgLSBHMjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC
|
1932 |
-
ggEBAL3twQP89o/8ArFvW59I2Z154qK3A2FWGMNHttfKPTUuiUP3oWmb3ooa/RMg
|
1933 |
-
nLRJdzIpVv257IzdIvpy3Cdhl+72WoTsbhm5iSzchFvVdPtrX8WJpRBSiUZV9Lh1
|
1934 |
-
HOZ/5FSuS/hVclcCGfgXcVnrHigHdMWdSL5stPSksPNkN3mSwOxGXn/hbVNMYq/N
|
1935 |
-
Hwtjuzqd+/x5AJhhdM8mgkBj87JyahkNmcrUDnXMN/uLicFZ8WJ/X7NfZTD4p7dN
|
1936 |
-
dloedl40wOiWVpmKs/B/pM293DIxfJHP4F8R+GuqSVzRmZTRouNjWwl2tVZi4Ut0
|
1937 |
-
HZbUJtQIBFnQmA4O5t78w+wfkPECAwEAAaNCMEAwDwYDVR0TAQH/BAUwAwEB/zAO
|
1938 |
-
BgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFHwMMh+n2TB/xH1oo2Kooc6rB1snMA0G
|
1939 |
-
CSqGSIb3DQEBCwUAA4IBAQARWfolTwNvlJk7mh+ChTnUdgWUXuEok21iXQnCoKjU
|
1940 |
-
sHU48TRqneSfioYmUeYs0cYtbpUgSpIB7LiKZ3sx4mcujJUDJi5DnUox9g61DLu3
|
1941 |
-
4jd/IroAow57UvtruzvE03lRTs2Q9GcHGcg8RnoNAX3FWOdt5oUwF5okxBDgBPfg
|
1942 |
-
8n/Uqgr/Qh037ZTlZFkSIHc40zI+OIF1lnP6aI+xy84fxez6nH7PfrHxBy22/L/K
|
1943 |
-
pL/QlwVKvOoYKAKQvVR4CSFx09F9HdkWsKlhPdAKACL8x3vLCWRFCztAgfd9fDL1
|
1944 |
-
mMpYjn0q7pBZc2T5NnReJaH1ZgUufzkVqSr7UIuOhWn0
|
1945 |
-
-----END CERTIFICATE-----
|
1946 |
-
|
1947 |
-
# Issuer: CN=Starfield Services Root Certificate Authority - G2 O=Starfield Technologies, Inc.
|
1948 |
-
# Subject: CN=Starfield Services Root Certificate Authority - G2 O=Starfield Technologies, Inc.
|
1949 |
-
# Label: "Starfield Services Root Certificate Authority - G2"
|
1950 |
-
# Serial: 0
|
1951 |
-
# MD5 Fingerprint: 17:35:74:af:7b:61:1c:eb:f4:f9:3c:e2:ee:40:f9:a2
|
1952 |
-
# SHA1 Fingerprint: 92:5a:8f:8d:2c:6d:04:e0:66:5f:59:6a:ff:22:d8:63:e8:25:6f:3f
|
1953 |
-
# SHA256 Fingerprint: 56:8d:69:05:a2:c8:87:08:a4:b3:02:51:90:ed:cf:ed:b1:97:4a:60:6a:13:c6:e5:29:0f:cb:2a:e6:3e:da:b5
|
1954 |
-
-----BEGIN CERTIFICATE-----
|
1955 |
-
MIID7zCCAtegAwIBAgIBADANBgkqhkiG9w0BAQsFADCBmDELMAkGA1UEBhMCVVMx
|
1956 |
-
EDAOBgNVBAgTB0FyaXpvbmExEzARBgNVBAcTClNjb3R0c2RhbGUxJTAjBgNVBAoT
|
1957 |
-
HFN0YXJmaWVsZCBUZWNobm9sb2dpZXMsIEluYy4xOzA5BgNVBAMTMlN0YXJmaWVs
|
1958 |
-
ZCBTZXJ2aWNlcyBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAtIEcyMB4XDTA5
|
1959 |
-
MDkwMTAwMDAwMFoXDTM3MTIzMTIzNTk1OVowgZgxCzAJBgNVBAYTAlVTMRAwDgYD
|
1960 |
-
VQQIEwdBcml6b25hMRMwEQYDVQQHEwpTY290dHNkYWxlMSUwIwYDVQQKExxTdGFy
|
1961 |
-
ZmllbGQgVGVjaG5vbG9naWVzLCBJbmMuMTswOQYDVQQDEzJTdGFyZmllbGQgU2Vy
|
1962 |
-
dmljZXMgUm9vdCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkgLSBHMjCCASIwDQYJKoZI
|
1963 |
-
hvcNAQEBBQADggEPADCCAQoCggEBANUMOsQq+U7i9b4Zl1+OiFOxHz/Lz58gE20p
|
1964 |
-
OsgPfTz3a3Y4Y9k2YKibXlwAgLIvWX/2h/klQ4bnaRtSmpDhcePYLQ1Ob/bISdm2
|
1965 |
-
8xpWriu2dBTrz/sm4xq6HZYuajtYlIlHVv8loJNwU4PahHQUw2eeBGg6345AWh1K
|
1966 |
-
Ts9DkTvnVtYAcMtS7nt9rjrnvDH5RfbCYM8TWQIrgMw0R9+53pBlbQLPLJGmpufe
|
1967 |
-
hRhJfGZOozptqbXuNC66DQO4M99H67FrjSXZm86B0UVGMpZwh94CDklDhbZsc7tk
|
1968 |
-
6mFBrMnUVN+HL8cisibMn1lUaJ/8viovxFUcdUBgF4UCVTmLfwUCAwEAAaNCMEAw
|
1969 |
-
DwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFJxfAN+q
|
1970 |
-
AdcwKziIorhtSpzyEZGDMA0GCSqGSIb3DQEBCwUAA4IBAQBLNqaEd2ndOxmfZyMI
|
1971 |
-
bw5hyf2E3F/YNoHN2BtBLZ9g3ccaaNnRbobhiCPPE95Dz+I0swSdHynVv/heyNXB
|
1972 |
-
ve6SbzJ08pGCL72CQnqtKrcgfU28elUSwhXqvfdqlS5sdJ/PHLTyxQGjhdByPq1z
|
1973 |
-
qwubdQxtRbeOlKyWN7Wg0I8VRw7j6IPdj/3vQQF3zCepYoUz8jcI73HPdwbeyBkd
|
1974 |
-
iEDPfUYd/x7H4c7/I9vG+o1VTqkC50cRRj70/b17KSa7qWFiNyi2LSr2EIZkyXCn
|
1975 |
-
0q23KXB56jzaYyWf/Wi3MOxw+3WKt21gZ7IeyLnp2KhvAotnDU0mV3HaIPzBSlCN
|
1976 |
-
sSi6
|
1977 |
-
-----END CERTIFICATE-----
|
1978 |
-
|
1979 |
-
# Issuer: CN=AffirmTrust Commercial O=AffirmTrust
|
1980 |
-
# Subject: CN=AffirmTrust Commercial O=AffirmTrust
|
1981 |
-
# Label: "AffirmTrust Commercial"
|
1982 |
-
# Serial: 8608355977964138876
|
1983 |
-
# MD5 Fingerprint: 82:92:ba:5b:ef:cd:8a:6f:a6:3d:55:f9:84:f6:d6:b7
|
1984 |
-
# SHA1 Fingerprint: f9:b5:b6:32:45:5f:9c:be:ec:57:5f:80:dc:e9:6e:2c:c7:b2:78:b7
|
1985 |
-
# SHA256 Fingerprint: 03:76:ab:1d:54:c5:f9:80:3c:e4:b2:e2:01:a0:ee:7e:ef:7b:57:b6:36:e8:a9:3c:9b:8d:48:60:c9:6f:5f:a7
|
1986 |
-
-----BEGIN CERTIFICATE-----
|
1987 |
-
MIIDTDCCAjSgAwIBAgIId3cGJyapsXwwDQYJKoZIhvcNAQELBQAwRDELMAkGA1UE
|
1988 |
-
BhMCVVMxFDASBgNVBAoMC0FmZmlybVRydXN0MR8wHQYDVQQDDBZBZmZpcm1UcnVz
|
1989 |
-
dCBDb21tZXJjaWFsMB4XDTEwMDEyOTE0MDYwNloXDTMwMTIzMTE0MDYwNlowRDEL
|
1990 |
-
MAkGA1UEBhMCVVMxFDASBgNVBAoMC0FmZmlybVRydXN0MR8wHQYDVQQDDBZBZmZp
|
1991 |
-
cm1UcnVzdCBDb21tZXJjaWFsMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKC
|
1992 |
-
AQEA9htPZwcroRX1BiLLHwGy43NFBkRJLLtJJRTWzsO3qyxPxkEylFf6EqdbDuKP
|
1993 |
-
Hx6GGaeqtS25Xw2Kwq+FNXkyLbscYjfysVtKPcrNcV/pQr6U6Mje+SJIZMblq8Yr
|
1994 |
-
ba0F8PrVC8+a5fBQpIs7R6UjW3p6+DM/uO+Zl+MgwdYoic+U+7lF7eNAFxHUdPAL
|
1995 |
-
MeIrJmqbTFeurCA+ukV6BfO9m2kVrn1OIGPENXY6BwLJN/3HR+7o8XYdcxXyl6S1
|
1996 |
-
yHp52UKqK39c/s4mT6NmgTWvRLpUHhwwMmWd5jyTXlBOeuM61G7MGvv50jeuJCqr
|
1997 |
-
VwMiKA1JdX+3KNp1v47j3A55MQIDAQABo0IwQDAdBgNVHQ4EFgQUnZPGU4teyq8/
|
1998 |
-
nx4P5ZmVvCT2lI8wDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwDQYJ
|
1999 |
-
KoZIhvcNAQELBQADggEBAFis9AQOzcAN/wr91LoWXym9e2iZWEnStB03TX8nfUYG
|
2000 |
-
XUPGhi4+c7ImfU+TqbbEKpqrIZcUsd6M06uJFdhrJNTxFq7YpFzUf1GO7RgBsZNj
|
2001 |
-
vbz4YYCanrHOQnDiqX0GJX0nof5v7LMeJNrjS1UaADs1tDvZ110w/YETifLCBivt
|
2002 |
-
Z8SOyUOyXGsViQK8YvxO8rUzqrJv0wqiUOP2O+guRMLbZjipM1ZI8W0bM40NjD9g
|
2003 |
-
N53Tym1+NH4Nn3J2ixufcv1SNUFFApYvHLKac0khsUlHRUe072o0EclNmsxZt9YC
|
2004 |
-
nlpOZbWUrhvfKbAW8b8Angc6F2S1BLUjIZkKlTuXfO8=
|
2005 |
-
-----END CERTIFICATE-----
|
2006 |
-
|
2007 |
-
# Issuer: CN=AffirmTrust Networking O=AffirmTrust
|
2008 |
-
# Subject: CN=AffirmTrust Networking O=AffirmTrust
|
2009 |
-
# Label: "AffirmTrust Networking"
|
2010 |
-
# Serial: 8957382827206547757
|
2011 |
-
# MD5 Fingerprint: 42:65:ca:be:01:9a:9a:4c:a9:8c:41:49:cd:c0:d5:7f
|
2012 |
-
# SHA1 Fingerprint: 29:36:21:02:8b:20:ed:02:f5:66:c5:32:d1:d6:ed:90:9f:45:00:2f
|
2013 |
-
# SHA256 Fingerprint: 0a:81:ec:5a:92:97:77:f1:45:90:4a:f3:8d:5d:50:9f:66:b5:e2:c5:8f:cd:b5:31:05:8b:0e:17:f3:f0:b4:1b
|
2014 |
-
-----BEGIN CERTIFICATE-----
|
2015 |
-
MIIDTDCCAjSgAwIBAgIIfE8EORzUmS0wDQYJKoZIhvcNAQEFBQAwRDELMAkGA1UE
|
2016 |
-
BhMCVVMxFDASBgNVBAoMC0FmZmlybVRydXN0MR8wHQYDVQQDDBZBZmZpcm1UcnVz
|
2017 |
-
dCBOZXR3b3JraW5nMB4XDTEwMDEyOTE0MDgyNFoXDTMwMTIzMTE0MDgyNFowRDEL
|
2018 |
-
MAkGA1UEBhMCVVMxFDASBgNVBAoMC0FmZmlybVRydXN0MR8wHQYDVQQDDBZBZmZp
|
2019 |
-
cm1UcnVzdCBOZXR3b3JraW5nMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKC
|
2020 |
-
AQEAtITMMxcua5Rsa2FSoOujz3mUTOWUgJnLVWREZY9nZOIG41w3SfYvm4SEHi3y
|
2021 |
-
YJ0wTsyEheIszx6e/jarM3c1RNg1lho9Nuh6DtjVR6FqaYvZ/Ls6rnla1fTWcbua
|
2022 |
-
kCNrmreIdIcMHl+5ni36q1Mr3Lt2PpNMCAiMHqIjHNRqrSK6mQEubWXLviRmVSRL
|
2023 |
-
QESxG9fhwoXA3hA/Pe24/PHxI1Pcv2WXb9n5QHGNfb2V1M6+oF4nI979ptAmDgAp
|
2024 |
-
6zxG8D1gvz9Q0twmQVGeFDdCBKNwV6gbh+0t+nvujArjqWaJGctB+d1ENmHP4ndG
|
2025 |
-
yH329JKBNv3bNPFyfvMMFr20FQIDAQABo0IwQDAdBgNVHQ4EFgQUBx/S55zawm6i
|
2026 |
-
QLSwelAQUHTEyL0wDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwDQYJ
|
2027 |
-
KoZIhvcNAQEFBQADggEBAIlXshZ6qML91tmbmzTCnLQyFE2npN/svqe++EPbkTfO
|
2028 |
-
tDIuUFUaNU52Q3Eg75N3ThVwLofDwR1t3Mu1J9QsVtFSUzpE0nPIxBsFZVpikpzu
|
2029 |
-
QY0x2+c06lkh1QF612S4ZDnNye2v7UsDSKegmQGA3GWjNq5lWUhPgkvIZfFXHeVZ
|
2030 |
-
Lgo/bNjR9eUJtGxUAArgFU2HdW23WJZa3W3SAKD0m0i+wzekujbgfIeFlxoVot4u
|
2031 |
-
olu9rxj5kFDNcFn4J2dHy8egBzp90SxdbBk6ZrV9/ZFvgrG+CJPbFEfxojfHRZ48
|
2032 |
-
x3evZKiT3/Zpg4Jg8klCNO1aAFSFHBY2kgxc+qatv9s=
|
2033 |
-
-----END CERTIFICATE-----
|
2034 |
-
|
2035 |
-
# Issuer: CN=AffirmTrust Premium O=AffirmTrust
|
2036 |
-
# Subject: CN=AffirmTrust Premium O=AffirmTrust
|
2037 |
-
# Label: "AffirmTrust Premium"
|
2038 |
-
# Serial: 7893706540734352110
|
2039 |
-
# MD5 Fingerprint: c4:5d:0e:48:b6:ac:28:30:4e:0a:bc:f9:38:16:87:57
|
2040 |
-
# SHA1 Fingerprint: d8:a6:33:2c:e0:03:6f:b1:85:f6:63:4f:7d:6a:06:65:26:32:28:27
|
2041 |
-
# SHA256 Fingerprint: 70:a7:3f:7f:37:6b:60:07:42:48:90:45:34:b1:14:82:d5:bf:0e:69:8e:cc:49:8d:f5:25:77:eb:f2:e9:3b:9a
|
2042 |
-
-----BEGIN CERTIFICATE-----
|
2043 |
-
MIIFRjCCAy6gAwIBAgIIbYwURrGmCu4wDQYJKoZIhvcNAQEMBQAwQTELMAkGA1UE
|
2044 |
-
BhMCVVMxFDASBgNVBAoMC0FmZmlybVRydXN0MRwwGgYDVQQDDBNBZmZpcm1UcnVz
|
2045 |
-
dCBQcmVtaXVtMB4XDTEwMDEyOTE0MTAzNloXDTQwMTIzMTE0MTAzNlowQTELMAkG
|
2046 |
-
A1UEBhMCVVMxFDASBgNVBAoMC0FmZmlybVRydXN0MRwwGgYDVQQDDBNBZmZpcm1U
|
2047 |
-
cnVzdCBQcmVtaXVtMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAxBLf
|
2048 |
-
qV/+Qd3d9Z+K4/as4Tx4mrzY8H96oDMq3I0gW64tb+eT2TZwamjPjlGjhVtnBKAQ
|
2049 |
-
JG9dKILBl1fYSCkTtuG+kU3fhQxTGJoeJKJPj/CihQvL9Cl/0qRY7iZNyaqoe5rZ
|
2050 |
-
+jjeRFcV5fiMyNlI4g0WJx0eyIOFJbe6qlVBzAMiSy2RjYvmia9mx+n/K+k8rNrS
|
2051 |
-
s8PhaJyJ+HoAVt70VZVs+7pk3WKL3wt3MutizCaam7uqYoNMtAZ6MMgpv+0GTZe5
|
2052 |
-
HMQxK9VfvFMSF5yZVylmd2EhMQcuJUmdGPLu8ytxjLW6OQdJd/zvLpKQBY0tL3d7
|
2053 |
-
70O/Nbua2Plzpyzy0FfuKE4mX4+QaAkvuPjcBukumj5Rp9EixAqnOEhss/n/fauG
|
2054 |
-
V+O61oV4d7pD6kh/9ti+I20ev9E2bFhc8e6kGVQa9QPSdubhjL08s9NIS+LI+H+S
|
2055 |
-
qHZGnEJlPqQewQcDWkYtuJfzt9WyVSHvutxMAJf7FJUnM7/oQ0dG0giZFmA7mn7S
|
2056 |
-
5u046uwBHjxIVkkJx0w3AJ6IDsBz4W9m6XJHMD4Q5QsDyZpCAGzFlH5hxIrff4Ia
|
2057 |
-
C1nEWTJ3s7xgaVY5/bQGeyzWZDbZvUjthB9+pSKPKrhC9IK31FOQeE4tGv2Bb0TX
|
2058 |
-
OwF0lkLgAOIua+rF7nKsu7/+6qqo+Nz2snmKtmcCAwEAAaNCMEAwHQYDVR0OBBYE
|
2059 |
-
FJ3AZ6YMItkm9UWrpmVSESfYRaxjMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/
|
2060 |
-
BAQDAgEGMA0GCSqGSIb3DQEBDAUAA4ICAQCzV00QYk465KzquByvMiPIs0laUZx2
|
2061 |
-
KI15qldGF9X1Uva3ROgIRL8YhNILgM3FEv0AVQVhh0HctSSePMTYyPtwni94loMg
|
2062 |
-
Nt58D2kTiKV1NpgIpsbfrM7jWNa3Pt668+s0QNiigfV4Py/VpfzZotReBA4Xrf5B
|
2063 |
-
8OWycvpEgjNC6C1Y91aMYj+6QrCcDFx+LmUmXFNPALJ4fqENmS2NuB2OosSw/WDQ
|
2064 |
-
MKSOyARiqcTtNd56l+0OOF6SL5Nwpamcb6d9Ex1+xghIsV5n61EIJenmJWtSKZGc
|
2065 |
-
0jlzCFfemQa0W50QBuHCAKi4HEoCChTQwUHK+4w1IX2COPKpVJEZNZOUbWo6xbLQ
|
2066 |
-
u4mGk+ibyQ86p3q4ofB4Rvr8Ny/lioTz3/4E2aFooC8k4gmVBtWVyuEklut89pMF
|
2067 |
-
u+1z6S3RdTnX5yTb2E5fQ4+e0BQ5v1VwSJlXMbSc7kqYA5YwH2AG7hsj/oFgIxpH
|
2068 |
-
YoWlzBk0gG+zrBrjn/B7SK3VAdlntqlyk+otZrWyuOQ9PLLvTIzq6we/qzWaVYa8
|
2069 |
-
GKa1qF60g2xraUDTn9zxw2lrueFtCfTxqlB2Cnp9ehehVZZCmTEJ3WARjQUwfuaO
|
2070 |
-
RtGdFNrHF+QFlozEJLUbzxQHskD4o55BhrwE0GuWyCqANP2/7waj3VjFhT0+j/6e
|
2071 |
-
KeC2uAloGRwYQw==
|
2072 |
-
-----END CERTIFICATE-----
|
2073 |
-
|
2074 |
-
# Issuer: CN=AffirmTrust Premium ECC O=AffirmTrust
|
2075 |
-
# Subject: CN=AffirmTrust Premium ECC O=AffirmTrust
|
2076 |
-
# Label: "AffirmTrust Premium ECC"
|
2077 |
-
# Serial: 8401224907861490260
|
2078 |
-
# MD5 Fingerprint: 64:b0:09:55:cf:b1:d5:99:e2:be:13:ab:a6:5d:ea:4d
|
2079 |
-
# SHA1 Fingerprint: b8:23:6b:00:2f:1d:16:86:53:01:55:6c:11:a4:37:ca:eb:ff:c3:bb
|
2080 |
-
# SHA256 Fingerprint: bd:71:fd:f6:da:97:e4:cf:62:d1:64:7a:dd:25:81:b0:7d:79:ad:f8:39:7e:b4:ec:ba:9c:5e:84:88:82:14:23
|
2081 |
-
-----BEGIN CERTIFICATE-----
|
2082 |
-
MIIB/jCCAYWgAwIBAgIIdJclisc/elQwCgYIKoZIzj0EAwMwRTELMAkGA1UEBhMC
|
2083 |
-
VVMxFDASBgNVBAoMC0FmZmlybVRydXN0MSAwHgYDVQQDDBdBZmZpcm1UcnVzdCBQ
|
2084 |
-
cmVtaXVtIEVDQzAeFw0xMDAxMjkxNDIwMjRaFw00MDEyMzExNDIwMjRaMEUxCzAJ
|
2085 |
-
BgNVBAYTAlVTMRQwEgYDVQQKDAtBZmZpcm1UcnVzdDEgMB4GA1UEAwwXQWZmaXJt
|
2086 |
-
VHJ1c3QgUHJlbWl1bSBFQ0MwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAAQNMF4bFZ0D
|
2087 |
-
0KF5Nbc6PJJ6yhUczWLznCZcBz3lVPqj1swS6vQUX+iOGasvLkjmrBhDeKzQN8O9
|
2088 |
-
ss0s5kfiGuZjuD0uL3jET9v0D6RoTFVya5UdThhClXjMNzyR4ptlKymjQjBAMB0G
|
2089 |
-
A1UdDgQWBBSaryl6wBE1NSZRMADDav5A1a7WPDAPBgNVHRMBAf8EBTADAQH/MA4G
|
2090 |
-
A1UdDwEB/wQEAwIBBjAKBggqhkjOPQQDAwNnADBkAjAXCfOHiFBar8jAQr9HX/Vs
|
2091 |
-
aobgxCd05DhT1wV/GzTjxi+zygk8N53X57hG8f2h4nECMEJZh0PUUd+60wkyWs6I
|
2092 |
-
flc9nF9Ca/UHLbXwgpP5WW+uZPpY5Yse42O+tYHNbwKMeQ==
|
2093 |
-
-----END CERTIFICATE-----
|
2094 |
-
|
2095 |
-
# Issuer: CN=StartCom Certification Authority O=StartCom Ltd. OU=Secure Digital Certificate Signing
|
2096 |
-
# Subject: CN=StartCom Certification Authority O=StartCom Ltd. OU=Secure Digital Certificate Signing
|
2097 |
-
# Label: "StartCom Certification Authority"
|
2098 |
-
# Serial: 45
|
2099 |
-
# MD5 Fingerprint: c9:3b:0d:84:41:fc:a4:76:79:23:08:57:de:10:19:16
|
2100 |
-
# SHA1 Fingerprint: a3:f1:33:3f:e2:42:bf:cf:c5:d1:4e:8f:39:42:98:40:68:10:d1:a0
|
2101 |
-
# SHA256 Fingerprint: e1:78:90:ee:09:a3:fb:f4:f4:8b:9c:41:4a:17:d6:37:b7:a5:06:47:e9:bc:75:23:22:72:7f:cc:17:42:a9:11
|
2102 |
-
-----BEGIN CERTIFICATE-----
|
2103 |
-
MIIHhzCCBW+gAwIBAgIBLTANBgkqhkiG9w0BAQsFADB9MQswCQYDVQQGEwJJTDEW
|
2104 |
-
MBQGA1UEChMNU3RhcnRDb20gTHRkLjErMCkGA1UECxMiU2VjdXJlIERpZ2l0YWwg
|
2105 |
-
Q2VydGlmaWNhdGUgU2lnbmluZzEpMCcGA1UEAxMgU3RhcnRDb20gQ2VydGlmaWNh
|
2106 |
-
dGlvbiBBdXRob3JpdHkwHhcNMDYwOTE3MTk0NjM3WhcNMzYwOTE3MTk0NjM2WjB9
|
2107 |
-
MQswCQYDVQQGEwJJTDEWMBQGA1UEChMNU3RhcnRDb20gTHRkLjErMCkGA1UECxMi
|
2108 |
-
U2VjdXJlIERpZ2l0YWwgQ2VydGlmaWNhdGUgU2lnbmluZzEpMCcGA1UEAxMgU3Rh
|
2109 |
-
cnRDb20gQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwggIiMA0GCSqGSIb3DQEBAQUA
|
2110 |
-
A4ICDwAwggIKAoICAQDBiNsJvGxGfHiflXu1M5DycmLWwTYgIiRezul38kMKogZk
|
2111 |
-
pMyONvg45iPwbm2xPN1yo4UcodM9tDMr0y+v/uqwQVlntsQGfQqedIXWeUyAN3rf
|
2112 |
-
OQVSWff0G0ZDpNKFhdLDcfN1YjS6LIp/Ho/u7TTQEceWzVI9ujPW3U3eCztKS5/C
|
2113 |
-
Ji/6tRYccjV3yjxd5srhJosaNnZcAdt0FCX+7bWgiA/deMotHweXMAEtcnn6RtYT
|
2114 |
-
Kqi5pquDSR3l8u/d5AGOGAqPY1MWhWKpDhk6zLVmpsJrdAfkK+F2PrRt2PZE4XNi
|
2115 |
-
HzvEvqBTViVsUQn3qqvKv3b9bZvzndu/PWa8DFaqr5hIlTpL36dYUNk4dalb6kMM
|
2116 |
-
Av+Z6+hsTXBbKWWc3apdzK8BMewM69KN6Oqce+Zu9ydmDBpI125C4z/eIT574Q1w
|
2117 |
-
+2OqqGwaVLRcJXrJosmLFqa7LH4XXgVNWG4SHQHuEhANxjJ/GP/89PrNbpHoNkm+
|
2118 |
-
Gkhpi8KWTRoSsmkXwQqQ1vp5Iki/untp+HDH+no32NgN0nZPV/+Qt+OR0t3vwmC3
|
2119 |
-
Zzrd/qqc8NSLf3Iizsafl7b4r4qgEKjZ+xjGtrVcUjyJthkqcwEKDwOzEmDyei+B
|
2120 |
-
26Nu/yYwl/WL3YlXtq09s68rxbd2AvCl1iuahhQqcvbjM4xdCUsT37uMdBNSSwID
|
2121 |
-
AQABo4ICEDCCAgwwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYD
|
2122 |
-
VR0OBBYEFE4L7xqkQFulF2mHMMo0aEPQQa7yMB8GA1UdIwQYMBaAFE4L7xqkQFul
|
2123 |
-
F2mHMMo0aEPQQa7yMIIBWgYDVR0gBIIBUTCCAU0wggFJBgsrBgEEAYG1NwEBATCC
|
2124 |
-
ATgwLgYIKwYBBQUHAgEWImh0dHA6Ly93d3cuc3RhcnRzc2wuY29tL3BvbGljeS5w
|
2125 |
-
ZGYwNAYIKwYBBQUHAgEWKGh0dHA6Ly93d3cuc3RhcnRzc2wuY29tL2ludGVybWVk
|
2126 |
-
aWF0ZS5wZGYwgc8GCCsGAQUFBwICMIHCMCcWIFN0YXJ0IENvbW1lcmNpYWwgKFN0
|
2127 |
-
YXJ0Q29tKSBMdGQuMAMCAQEagZZMaW1pdGVkIExpYWJpbGl0eSwgcmVhZCB0aGUg
|
2128 |
-
c2VjdGlvbiAqTGVnYWwgTGltaXRhdGlvbnMqIG9mIHRoZSBTdGFydENvbSBDZXJ0
|
2129 |
-
aWZpY2F0aW9uIEF1dGhvcml0eSBQb2xpY3kgYXZhaWxhYmxlIGF0IGh0dHA6Ly93
|
2130 |
-
d3cuc3RhcnRzc2wuY29tL3BvbGljeS5wZGYwEQYJYIZIAYb4QgEBBAQDAgAHMDgG
|
2131 |
-
CWCGSAGG+EIBDQQrFilTdGFydENvbSBGcmVlIFNTTCBDZXJ0aWZpY2F0aW9uIEF1
|
2132 |
-
dGhvcml0eTANBgkqhkiG9w0BAQsFAAOCAgEAjo/n3JR5fPGFf59Jb2vKXfuM/gTF
|
2133 |
-
wWLRfUKKvFO3lANmMD+x5wqnUCBVJX92ehQN6wQOQOY+2IirByeDqXWmN3PH/UvS
|
2134 |
-
Ta0XQMhGvjt/UfzDtgUx3M2FIk5xt/JxXrAaxrqTi3iSSoX4eA+D/i+tLPfkpLst
|
2135 |
-
0OcNOrg+zvZ49q5HJMqjNTbOx8aHmNrs++myziebiMMEofYLWWivydsQD032ZGNc
|
2136 |
-
pRJvkrKTlMeIFw6Ttn5ii5B/q06f/ON1FE8qMt9bDeD1e5MNq6HPh+GlBEXoPBKl
|
2137 |
-
CcWw0bdT82AUuoVpaiF8H3VhFyAXe2w7QSlc4axa0c2Mm+tgHRns9+Ww2vl5GKVF
|
2138 |
-
P0lDV9LdJNUso/2RjSe15esUBppMeyG7Oq0wBhjA2MFrLH9ZXF2RsXAiV+uKa0hK
|
2139 |
-
1Q8p7MZAwC+ITGgBF3f0JBlPvfrhsiAhS90a2Cl9qrjeVOwhVYBsHvUwyKMQ5bLm
|
2140 |
-
KhQxw4UtjJixhlpPiVktucf3HMiKf8CdBUrmQk9io20ppB+Fq9vlgcitKj1MXVuE
|
2141 |
-
JnHEhV5xJMqlG2zYYdMa4FTbzrqpMrUi9nNBCV24F10OD5mQ1kfabwo6YigUZ4LZ
|
2142 |
-
8dCAWZvLMdibD4x3TrVoivJs9iQOLWxwxXPR3hTQcY+203sC9uO41Alua551hDnm
|
2143 |
-
fyWl8kgAwKQB2j8=
|
2144 |
-
-----END CERTIFICATE-----
|
2145 |
-
|
2146 |
-
# Issuer: CN=StartCom Certification Authority G2 O=StartCom Ltd.
|
2147 |
-
# Subject: CN=StartCom Certification Authority G2 O=StartCom Ltd.
|
2148 |
-
# Label: "StartCom Certification Authority G2"
|
2149 |
-
# Serial: 59
|
2150 |
-
# MD5 Fingerprint: 78:4b:fb:9e:64:82:0a:d3:b8:4c:62:f3:64:f2:90:64
|
2151 |
-
# SHA1 Fingerprint: 31:f1:fd:68:22:63:20:ee:c6:3b:3f:9d:ea:4a:3e:53:7c:7c:39:17
|
2152 |
-
# SHA256 Fingerprint: c7:ba:65:67:de:93:a7:98:ae:1f:aa:79:1e:71:2d:37:8f:ae:1f:93:c4:39:7f:ea:44:1b:b7:cb:e6:fd:59:95
|
2153 |
-
-----BEGIN CERTIFICATE-----
|
2154 |
-
MIIFYzCCA0ugAwIBAgIBOzANBgkqhkiG9w0BAQsFADBTMQswCQYDVQQGEwJJTDEW
|
2155 |
-
MBQGA1UEChMNU3RhcnRDb20gTHRkLjEsMCoGA1UEAxMjU3RhcnRDb20gQ2VydGlm
|
2156 |
-
aWNhdGlvbiBBdXRob3JpdHkgRzIwHhcNMTAwMTAxMDEwMDAxWhcNMzkxMjMxMjM1
|
2157 |
-
OTAxWjBTMQswCQYDVQQGEwJJTDEWMBQGA1UEChMNU3RhcnRDb20gTHRkLjEsMCoG
|
2158 |
-
A1UEAxMjU3RhcnRDb20gQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkgRzIwggIiMA0G
|
2159 |
-
CSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQC2iTZbB7cgNr2Cu+EWIAOVeq8Oo1XJ
|
2160 |
-
JZlKxdBWQYeQTSFgpBSHO839sj60ZwNq7eEPS8CRhXBF4EKe3ikj1AENoBB5uNsD
|
2161 |
-
vfOpL9HG4A/LnooUCri99lZi8cVytjIl2bLzvWXFDSxu1ZJvGIsAQRSCb0AgJnoo
|
2162 |
-
D/Uefyf3lLE3PbfHkffiAez9lInhzG7TNtYKGXmu1zSCZf98Qru23QumNK9LYP5/
|
2163 |
-
Q0kGi4xDuFby2X8hQxfqp0iVAXV16iulQ5XqFYSdCI0mblWbq9zSOdIxHWDirMxW
|
2164 |
-
RST1HFSr7obdljKF+ExP6JV2tgXdNiNnvP8V4so75qbsO+wmETRIjfaAKxojAuuK
|
2165 |
-
HDp2KntWFhxyKrOq42ClAJ8Em+JvHhRYW6Vsi1g8w7pOOlz34ZYrPu8HvKTlXcxN
|
2166 |
-
nw3h3Kq74W4a7I/htkxNeXJdFzULHdfBR9qWJODQcqhaX2YtENwvKhOuJv4KHBnM
|
2167 |
-
0D4LnMgJLvlblnpHnOl68wVQdJVznjAJ85eCXuaPOQgeWeU1FEIT/wCc976qUM/i
|
2168 |
-
UUjXuG+v+E5+M5iSFGI6dWPPe/regjupuznixL0sAA7IF6wT700ljtizkC+p2il9
|
2169 |
-
Ha90OrInwMEePnWjFqmveiJdnxMaz6eg6+OGCtP95paV1yPIN93EfKo2rJgaErHg
|
2170 |
-
TuixO/XWb/Ew1wIDAQABo0IwQDAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQE
|
2171 |
-
AwIBBjAdBgNVHQ4EFgQUS8W0QGutHLOlHGVuRjaJhwUMDrYwDQYJKoZIhvcNAQEL
|
2172 |
-
BQADggIBAHNXPyzVlTJ+N9uWkusZXn5T50HsEbZH77Xe7XRcxfGOSeD8bpkTzZ+K
|
2173 |
-
2s06Ctg6Wgk/XzTQLwPSZh0avZyQN8gMjgdalEVGKua+etqhqaRpEpKwfTbURIfX
|
2174 |
-
UfEpY9Z1zRbkJ4kd+MIySP3bmdCPX1R0zKxnNBFi2QwKN4fRoxdIjtIXHfbX/dtl
|
2175 |
-
6/2o1PXWT6RbdejF0mCy2wl+JYt7ulKSnj7oxXehPOBKc2thz4bcQ///If4jXSRK
|
2176 |
-
9dNtD2IEBVeC2m6kMyV5Sy5UGYvMLD0w6dEG/+gyRr61M3Z3qAFdlsHB1b6uJcDJ
|
2177 |
-
HgoJIIihDsnzb02CVAAgp9KP5DlUFy6NHrgbuxu9mk47EDTcnIhT76IxW1hPkWLI
|
2178 |
-
wpqazRVdOKnWvvgTtZ8SafJQYqz7Fzf07rh1Z2AQ+4NQ+US1dZxAF7L+/XldblhY
|
2179 |
-
XzD8AK6vM8EOTmy6p6ahfzLbOOCxchcKK5HsamMm7YnUeMx0HgX4a/6ManY5Ka5l
|
2180 |
-
IxKVCCIcl85bBu4M4ru8H0ST9tg4RQUh7eStqxK2A6RCLi3ECToDZ2mEmuFZkIoo
|
2181 |
-
hdVddLHRDiBYmxOlsGOm7XtH/UVVMKTumtTm4ofvmMkyghEpIrwACjFeLQ/Ajulr
|
2182 |
-
so8uBtjRkcfGEvRM/TAXw8HaOFvjqermobp573PYtlNXLfbQ4ddI
|
2183 |
-
-----END CERTIFICATE-----
|
1 |
+
# Issuer: CN=GTE CyberTrust Global Root O=GTE Corporation OU=GTE CyberTrust Solutions, Inc.
|
2 |
+
# Subject: CN=GTE CyberTrust Global Root O=GTE Corporation OU=GTE CyberTrust Solutions, Inc.
|
3 |
+
# Label: "GTE CyberTrust Global Root"
|
4 |
+
# Serial: 421
|
5 |
+
# MD5 Fingerprint: ca:3d:d3:68:f1:03:5c:d0:32:fa:b8:2b:59:e8:5a:db
|
6 |
+
# SHA1 Fingerprint: 97:81:79:50:d8:1c:96:70:cc:34:d8:09:cf:79:44:31:36:7e:f4:74
|
7 |
+
# SHA256 Fingerprint: a5:31:25:18:8d:21:10:aa:96:4b:02:c7:b7:c6:da:32:03:17:08:94:e5:fb:71:ff:fb:66:67:d5:e6:81:0a:36
|
8 |
+
-----BEGIN CERTIFICATE-----
|
9 |
+
MIICWjCCAcMCAgGlMA0GCSqGSIb3DQEBBAUAMHUxCzAJBgNVBAYTAlVTMRgwFgYD
|
10 |
+
VQQKEw9HVEUgQ29ycG9yYXRpb24xJzAlBgNVBAsTHkdURSBDeWJlclRydXN0IFNv
|
11 |
+
bHV0aW9ucywgSW5jLjEjMCEGA1UEAxMaR1RFIEN5YmVyVHJ1c3QgR2xvYmFsIFJv
|
12 |
+
b3QwHhcNOTgwODEzMDAyOTAwWhcNMTgwODEzMjM1OTAwWjB1MQswCQYDVQQGEwJV
|
13 |
+
UzEYMBYGA1UEChMPR1RFIENvcnBvcmF0aW9uMScwJQYDVQQLEx5HVEUgQ3liZXJU
|
14 |
+
cnVzdCBTb2x1dGlvbnMsIEluYy4xIzAhBgNVBAMTGkdURSBDeWJlclRydXN0IEds
|
15 |
+
b2JhbCBSb290MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCVD6C28FCc6HrH
|
16 |
+
iM3dFw4usJTQGz0O9pTAipTHBsiQl8i4ZBp6fmw8U+E3KHNgf7KXUwefU/ltWJTS
|
17 |
+
r41tiGeA5u2ylc9yMcqlHHK6XALnZELn+aks1joNrI1CqiQBOeacPwGFVw1Yh0X4
|
18 |
+
04Wqk2kmhXBIgD8SFcd5tB8FLztimQIDAQABMA0GCSqGSIb3DQEBBAUAA4GBAG3r
|
19 |
+
GwnpXtlR22ciYaQqPEh346B8pt5zohQDhT37qw4wxYMWM4ETCJ57NE7fQMh017l9
|
20 |
+
3PR2VX2bY1QY6fDq81yx2YtCHrnAlU66+tXifPVoYb+O7AWXX1uw16OFNMQkpw0P
|
21 |
+
lZPvy5TYnh+dXIVtx6quTx8itc2VrbqnzPmrC3p/
|
22 |
+
-----END CERTIFICATE-----
|
23 |
+
|
24 |
+
# Issuer: CN=Thawte Server CA O=Thawte Consulting cc OU=Certification Services Division
|
25 |
+
# Subject: CN=Thawte Server CA O=Thawte Consulting cc OU=Certification Services Division
|
26 |
+
# Label: "Thawte Server CA"
|
27 |
+
# Serial: 1
|
28 |
+
# MD5 Fingerprint: c5:70:c4:a2:ed:53:78:0c:c8:10:53:81:64:cb:d0:1d
|
29 |
+
# SHA1 Fingerprint: 23:e5:94:94:51:95:f2:41:48:03:b4:d5:64:d2:a3:a3:f5:d8:8b:8c
|
30 |
+
# SHA256 Fingerprint: b4:41:0b:73:e2:e6:ea:ca:47:fb:c4:2f:8f:a4:01:8a:f4:38:1d:c5:4c:fa:a8:44:50:46:1e:ed:09:45:4d:e9
|
31 |
+
-----BEGIN CERTIFICATE-----
|
32 |
+
MIIDEzCCAnygAwIBAgIBATANBgkqhkiG9w0BAQQFADCBxDELMAkGA1UEBhMCWkEx
|
33 |
+
FTATBgNVBAgTDFdlc3Rlcm4gQ2FwZTESMBAGA1UEBxMJQ2FwZSBUb3duMR0wGwYD
|
34 |
+
VQQKExRUaGF3dGUgQ29uc3VsdGluZyBjYzEoMCYGA1UECxMfQ2VydGlmaWNhdGlv
|
35 |
+
biBTZXJ2aWNlcyBEaXZpc2lvbjEZMBcGA1UEAxMQVGhhd3RlIFNlcnZlciBDQTEm
|
36 |
+
MCQGCSqGSIb3DQEJARYXc2VydmVyLWNlcnRzQHRoYXd0ZS5jb20wHhcNOTYwODAx
|
37 |
+
MDAwMDAwWhcNMjAxMjMxMjM1OTU5WjCBxDELMAkGA1UEBhMCWkExFTATBgNVBAgT
|
38 |
+
DFdlc3Rlcm4gQ2FwZTESMBAGA1UEBxMJQ2FwZSBUb3duMR0wGwYDVQQKExRUaGF3
|
39 |
+
dGUgQ29uc3VsdGluZyBjYzEoMCYGA1UECxMfQ2VydGlmaWNhdGlvbiBTZXJ2aWNl
|
40 |
+
cyBEaXZpc2lvbjEZMBcGA1UEAxMQVGhhd3RlIFNlcnZlciBDQTEmMCQGCSqGSIb3
|
41 |
+
DQEJARYXc2VydmVyLWNlcnRzQHRoYXd0ZS5jb20wgZ8wDQYJKoZIhvcNAQEBBQAD
|
42 |
+
gY0AMIGJAoGBANOkUG7I/1Zr5s9dtuoMaHVHoqrC2oQl/Kj0R1HahbUgdJSGHg91
|
43 |
+
yekIYfUGbTBuFRkC6VLAYttNmZ7iagxEOM3+vuNkCXDF/rFrKbYvScg71CcEJRCX
|
44 |
+
L+eQbcAoQpnXTEPew/UhbVSfXcNY4cDk2VuwuNy0e982OsK1ZiIS1ocNAgMBAAGj
|
45 |
+
EzARMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQEEBQADgYEAB/pMaVz7lcxG
|
46 |
+
7oWDTSEwjsrZqG9JGubaUeNgcGyEYRGhGshIPllDfU+VPaGLtwtimHp1it2ITk6e
|
47 |
+
QNuozDJ0uW8NxuOzRAvZim+aKZuZGCg70eNAKJpaPNW15yAbi8qkq43pUdniTCxZ
|
48 |
+
qdq5snUb9kLy78fyGPmJvKP/iiMucEc=
|
49 |
+
-----END CERTIFICATE-----
|
50 |
+
|
51 |
+
# Issuer: CN=Thawte Premium Server CA O=Thawte Consulting cc OU=Certification Services Division
|
52 |
+
# Subject: CN=Thawte Premium Server CA O=Thawte Consulting cc OU=Certification Services Division
|
53 |
+
# Label: "Thawte Premium Server CA"
|
54 |
+
# Serial: 1
|
55 |
+
# MD5 Fingerprint: 06:9f:69:79:16:66:90:02:1b:8c:8c:a2:c3:07:6f:3a
|
56 |
+
# SHA1 Fingerprint: 62:7f:8d:78:27:65:63:99:d2:7d:7f:90:44:c9:fe:b3:f3:3e:fa:9a
|
57 |
+
# SHA256 Fingerprint: ab:70:36:36:5c:71:54:aa:29:c2:c2:9f:5d:41:91:16:3b:16:2a:22:25:01:13:57:d5:6d:07:ff:a7:bc:1f:72
|
58 |
+
-----BEGIN CERTIFICATE-----
|
59 |
+
MIIDJzCCApCgAwIBAgIBATANBgkqhkiG9w0BAQQFADCBzjELMAkGA1UEBhMCWkEx
|
60 |
+
FTATBgNVBAgTDFdlc3Rlcm4gQ2FwZTESMBAGA1UEBxMJQ2FwZSBUb3duMR0wGwYD
|
61 |
+
VQQKExRUaGF3dGUgQ29uc3VsdGluZyBjYzEoMCYGA1UECxMfQ2VydGlmaWNhdGlv
|
62 |
+
biBTZXJ2aWNlcyBEaXZpc2lvbjEhMB8GA1UEAxMYVGhhd3RlIFByZW1pdW0gU2Vy
|
63 |
+
dmVyIENBMSgwJgYJKoZIhvcNAQkBFhlwcmVtaXVtLXNlcnZlckB0aGF3dGUuY29t
|
64 |
+
MB4XDTk2MDgwMTAwMDAwMFoXDTIwMTIzMTIzNTk1OVowgc4xCzAJBgNVBAYTAlpB
|
65 |
+
MRUwEwYDVQQIEwxXZXN0ZXJuIENhcGUxEjAQBgNVBAcTCUNhcGUgVG93bjEdMBsG
|
66 |
+
A1UEChMUVGhhd3RlIENvbnN1bHRpbmcgY2MxKDAmBgNVBAsTH0NlcnRpZmljYXRp
|
67 |
+
b24gU2VydmljZXMgRGl2aXNpb24xITAfBgNVBAMTGFRoYXd0ZSBQcmVtaXVtIFNl
|
68 |
+
cnZlciBDQTEoMCYGCSqGSIb3DQEJARYZcHJlbWl1bS1zZXJ2ZXJAdGhhd3RlLmNv
|
69 |
+
bTCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEA0jY2aovXwlue2oFBYo847kkE
|
70 |
+
VdbQ7xwblRZH7xhINTpS9CtqBo87L+pW46+GjZ4X9560ZXUCTe/LCaIhUdib0GfQ
|
71 |
+
ug2SBhRz1JPLlyoAnFxODLz6FVL88kRu2hFKbgifLy3j+ao6hnO2RlNYyIkFvYMR
|
72 |
+
uHM/qgeN9EJN50CdHDcCAwEAAaMTMBEwDwYDVR0TAQH/BAUwAwEB/zANBgkqhkiG
|
73 |
+
9w0BAQQFAAOBgQAmSCwWwlj66BZ0DKqqX1Q/8tfJeGBeXm43YyJ3Nn6yF8Q0ufUI
|
74 |
+
hfzJATj/Tb7yFkJD57taRvvBxhEf8UqwKEbJw8RCfbz6q1lu1bdRiBHjpIUZa4JM
|
75 |
+
pAwSremkrj/xw0llmozFyD4lt5SZu5IycQfwhl7tUCemDaYj+bvLpgcUQg==
|
76 |
+
-----END CERTIFICATE-----
|
77 |
+
|
78 |
+
# Issuer: O=Equifax OU=Equifax Secure Certificate Authority
|
79 |
+
# Subject: O=Equifax OU=Equifax Secure Certificate Authority
|
80 |
+
# Label: "Equifax Secure CA"
|
81 |
+
# Serial: 903804111
|
82 |
+
# MD5 Fingerprint: 67:cb:9d:c0:13:24:8a:82:9b:b2:17:1e:d1:1b:ec:d4
|
83 |
+
# SHA1 Fingerprint: d2:32:09:ad:23:d3:14:23:21:74:e4:0d:7f:9d:62:13:97:86:63:3a
|
84 |
+
# SHA256 Fingerprint: 08:29:7a:40:47:db:a2:36:80:c7:31:db:6e:31:76:53:ca:78:48:e1:be:bd:3a:0b:01:79:a7:07:f9:2c:f1:78
|
85 |
+
-----BEGIN CERTIFICATE-----
|
86 |
+
MIIDIDCCAomgAwIBAgIENd70zzANBgkqhkiG9w0BAQUFADBOMQswCQYDVQQGEwJV
|
87 |
+
UzEQMA4GA1UEChMHRXF1aWZheDEtMCsGA1UECxMkRXF1aWZheCBTZWN1cmUgQ2Vy
|
88 |
+
dGlmaWNhdGUgQXV0aG9yaXR5MB4XDTk4MDgyMjE2NDE1MVoXDTE4MDgyMjE2NDE1
|
89 |
+
MVowTjELMAkGA1UEBhMCVVMxEDAOBgNVBAoTB0VxdWlmYXgxLTArBgNVBAsTJEVx
|
90 |
+
dWlmYXggU2VjdXJlIENlcnRpZmljYXRlIEF1dGhvcml0eTCBnzANBgkqhkiG9w0B
|
91 |
+
AQEFAAOBjQAwgYkCgYEAwV2xWGcIYu6gmi0fCG2RFGiYCh7+2gRvE4RiIcPRfM6f
|
92 |
+
BeC4AfBONOziipUEZKzxa1NfBbPLZ4C/QgKO/t0BCezhABRP/PvwDN1Dulsr4R+A
|
93 |
+
cJkVV5MW8Q+XarfCaCMczE1ZMKxRHjuvK9buY0V7xdlfUNLjUA86iOe/FP3gx7kC
|
94 |
+
AwEAAaOCAQkwggEFMHAGA1UdHwRpMGcwZaBjoGGkXzBdMQswCQYDVQQGEwJVUzEQ
|
95 |
+
MA4GA1UEChMHRXF1aWZheDEtMCsGA1UECxMkRXF1aWZheCBTZWN1cmUgQ2VydGlm
|
96 |
+
aWNhdGUgQXV0aG9yaXR5MQ0wCwYDVQQDEwRDUkwxMBoGA1UdEAQTMBGBDzIwMTgw
|
97 |
+
ODIyMTY0MTUxWjALBgNVHQ8EBAMCAQYwHwYDVR0jBBgwFoAUSOZo+SvSspXXR9gj
|
98 |
+
IBBPM5iQn9QwHQYDVR0OBBYEFEjmaPkr0rKV10fYIyAQTzOYkJ/UMAwGA1UdEwQF
|
99 |
+
MAMBAf8wGgYJKoZIhvZ9B0EABA0wCxsFVjMuMGMDAgbAMA0GCSqGSIb3DQEBBQUA
|
100 |
+
A4GBAFjOKer89961zgK5F7WF0bnj4JXMJTENAKaSbn+2kmOeUJXRmm/kEd5jhW6Y
|
101 |
+
7qj/WsjTVbJmcVfewCHrPSqnI0kBBIZCe/zuf6IWUrVnZ9NA2zsmWLIodz2uFHdh
|
102 |
+
1voqZiegDfqnc1zqcPGUIWVEX/r87yloqaKHee9570+sB3c4
|
103 |
+
-----END CERTIFICATE-----
|
104 |
+
|
105 |
+
# Issuer: O=VeriSign, Inc. OU=Class 3 Public Primary Certification Authority
|
106 |
+
# Subject: O=VeriSign, Inc. OU=Class 3 Public Primary Certification Authority
|
107 |
+
# Label: "Verisign Class 3 Public Primary Certification Authority"
|
108 |
+
# Serial: 149843929435818692848040365716851702463
|
109 |
+
# MD5 Fingerprint: 10:fc:63:5d:f6:26:3e:0d:f3:25:be:5f:79:cd:67:67
|
110 |
+
# SHA1 Fingerprint: 74:2c:31:92:e6:07:e4:24:eb:45:49:54:2b:e1:bb:c5:3e:61:74:e2
|
111 |
+
# SHA256 Fingerprint: e7:68:56:34:ef:ac:f6:9a:ce:93:9a:6b:25:5b:7b:4f:ab:ef:42:93:5b:50:a2:65:ac:b5:cb:60:27:e4:4e:70
|
112 |
+
-----BEGIN CERTIFICATE-----
|
113 |
+
MIICPDCCAaUCEHC65B0Q2Sk0tjjKewPMur8wDQYJKoZIhvcNAQECBQAwXzELMAkG
|
114 |
+
A1UEBhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMTcwNQYDVQQLEy5DbGFz
|
115 |
+
cyAzIFB1YmxpYyBQcmltYXJ5IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MB4XDTk2
|
116 |
+
MDEyOTAwMDAwMFoXDTI4MDgwMTIzNTk1OVowXzELMAkGA1UEBhMCVVMxFzAVBgNV
|
117 |
+
BAoTDlZlcmlTaWduLCBJbmMuMTcwNQYDVQQLEy5DbGFzcyAzIFB1YmxpYyBQcmlt
|
118 |
+
YXJ5IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MIGfMA0GCSqGSIb3DQEBAQUAA4GN
|
119 |
+
ADCBiQKBgQDJXFme8huKARS0EN8EQNvjV69qRUCPhAwL0TPZ2RHP7gJYHyX3KqhE
|
120 |
+
BarsAx94f56TuZoAqiN91qyFomNFx3InzPRMxnVx0jnvT0Lwdd8KkMaOIG+YD/is
|
121 |
+
I19wKTakyYbnsZogy1Olhec9vn2a/iRFM9x2Fe0PonFkTGUugWhFpwIDAQABMA0G
|
122 |
+
CSqGSIb3DQEBAgUAA4GBALtMEivPLCYATxQT3ab7/AoRhIzzKBxnki98tsX63/Do
|
123 |
+
lbwdj2wsqFHMc9ikwFPwTtYmwHYBV4GSXiHx0bH/59AhWM1pF+NEHJwZRDmJXNyc
|
124 |
+
AA9WjQKZ7aKQRUzkuxCkPfAyAw7xzvjoyVGM5mKf5p/AfbdynMk2OmufTqj/ZA1k
|
125 |
+
-----END CERTIFICATE-----
|
126 |
+
|
127 |
+
# Issuer: O=VeriSign, Inc. OU=Class 3 Public Primary Certification Authority - G2/(c) 1998 VeriSign, Inc. - For authorized use only/VeriSign Trust Network
|
128 |
+
# Subject: O=VeriSign, Inc. OU=Class 3 Public Primary Certification Authority - G2/(c) 1998 VeriSign, Inc. - For authorized use only/VeriSign Trust Network
|
129 |
+
# Label: "Verisign Class 3 Public Primary Certification Authority - G2"
|
130 |
+
# Serial: 167285380242319648451154478808036881606
|
131 |
+
# MD5 Fingerprint: a2:33:9b:4c:74:78:73:d4:6c:e7:c1:f3:8d:cb:5c:e9
|
132 |
+
# SHA1 Fingerprint: 85:37:1c:a6:e5:50:14:3d:ce:28:03:47:1b:de:3a:09:e8:f8:77:0f
|
133 |
+
# SHA256 Fingerprint: 83:ce:3c:12:29:68:8a:59:3d:48:5f:81:97:3c:0f:91:95:43:1e:da:37:cc:5e:36:43:0e:79:c7:a8:88:63:8b
|
134 |
+
-----BEGIN CERTIFICATE-----
|
135 |
+
MIIDAjCCAmsCEH3Z/gfPqB63EHln+6eJNMYwDQYJKoZIhvcNAQEFBQAwgcExCzAJ
|
136 |
+
BgNVBAYTAlVTMRcwFQYDVQQKEw5WZXJpU2lnbiwgSW5jLjE8MDoGA1UECxMzQ2xh
|
137 |
+
c3MgMyBQdWJsaWMgUHJpbWFyeSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSAtIEcy
|
138 |
+
MTowOAYDVQQLEzEoYykgMTk5OCBWZXJpU2lnbiwgSW5jLiAtIEZvciBhdXRob3Jp
|
139 |
+
emVkIHVzZSBvbmx5MR8wHQYDVQQLExZWZXJpU2lnbiBUcnVzdCBOZXR3b3JrMB4X
|
140 |
+
DTk4MDUxODAwMDAwMFoXDTI4MDgwMTIzNTk1OVowgcExCzAJBgNVBAYTAlVTMRcw
|
141 |
+
FQYDVQQKEw5WZXJpU2lnbiwgSW5jLjE8MDoGA1UECxMzQ2xhc3MgMyBQdWJsaWMg
|
142 |
+
UHJpbWFyeSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSAtIEcyMTowOAYDVQQLEzEo
|
143 |
+
YykgMTk5OCBWZXJpU2lnbiwgSW5jLiAtIEZvciBhdXRob3JpemVkIHVzZSBvbmx5
|
144 |
+
MR8wHQYDVQQLExZWZXJpU2lnbiBUcnVzdCBOZXR3b3JrMIGfMA0GCSqGSIb3DQEB
|
145 |
+
AQUAA4GNADCBiQKBgQDMXtERXVxp0KvTuWpMmR9ZmDCOFoUgRm1HP9SFIIThbbP4
|
146 |
+
pO0M8RcPO/mn+SXXwc+EY/J8Y8+iR/LGWzOOZEAEaMGAuWQcRXfH2G71lSk8UOg0
|
147 |
+
13gfqLptQ5GVj0VXXn7F+8qkBOvqlzdUMG+7AUcyM83cV5tkaWH4mx0ciU9cZwID
|
148 |
+
AQABMA0GCSqGSIb3DQEBBQUAA4GBAFFNzb5cy5gZnBWyATl4Lk0PZ3BwmcYQWpSk
|
149 |
+
U01UbSuvDV1Ai2TT1+7eVmGSX6bEHRBhNtMsJzzoKQm5EWR0zLVznxxIqbxhAe7i
|
150 |
+
F6YM40AIOw7n60RzKprxaZLvcRTDOaxxp5EJb+RxBrO6WVcmeQD2+A2iMzAo1KpY
|
151 |
+
oJ2daZH9
|
152 |
+
-----END CERTIFICATE-----
|
153 |
+
|
154 |
+
# Issuer: CN=GlobalSign Root CA O=GlobalSign nv-sa OU=Root CA
|
155 |
+
# Subject: CN=GlobalSign Root CA O=GlobalSign nv-sa OU=Root CA
|
156 |
+
# Label: "GlobalSign Root CA"
|
157 |
+
# Serial: 4835703278459707669005204
|
158 |
+
# MD5 Fingerprint: 3e:45:52:15:09:51:92:e1:b7:5d:37:9f:b1:87:29:8a
|
159 |
+
# SHA1 Fingerprint: b1:bc:96:8b:d4:f4:9d:62:2a:a8:9a:81:f2:15:01:52:a4:1d:82:9c
|
160 |
+
# SHA256 Fingerprint: eb:d4:10:40:e4:bb:3e:c7:42:c9:e3:81:d3:1e:f2:a4:1a:48:b6:68:5c:96:e7:ce:f3:c1:df:6c:d4:33:1c:99
|
161 |
+
-----BEGIN CERTIFICATE-----
|
162 |
+
MIIDdTCCAl2gAwIBAgILBAAAAAABFUtaw5QwDQYJKoZIhvcNAQEFBQAwVzELMAkG
|
163 |
+
A1UEBhMCQkUxGTAXBgNVBAoTEEdsb2JhbFNpZ24gbnYtc2ExEDAOBgNVBAsTB1Jv
|
164 |
+
b3QgQ0ExGzAZBgNVBAMTEkdsb2JhbFNpZ24gUm9vdCBDQTAeFw05ODA5MDExMjAw
|
165 |
+
MDBaFw0yODAxMjgxMjAwMDBaMFcxCzAJBgNVBAYTAkJFMRkwFwYDVQQKExBHbG9i
|
166 |
+
YWxTaWduIG52LXNhMRAwDgYDVQQLEwdSb290IENBMRswGQYDVQQDExJHbG9iYWxT
|
167 |
+
aWduIFJvb3QgQ0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDaDuaZ
|
168 |
+
jc6j40+Kfvvxi4Mla+pIH/EqsLmVEQS98GPR4mdmzxzdzxtIK+6NiY6arymAZavp
|
169 |
+
xy0Sy6scTHAHoT0KMM0VjU/43dSMUBUc71DuxC73/OlS8pF94G3VNTCOXkNz8kHp
|
170 |
+
1Wrjsok6Vjk4bwY8iGlbKk3Fp1S4bInMm/k8yuX9ifUSPJJ4ltbcdG6TRGHRjcdG
|
171 |
+
snUOhugZitVtbNV4FpWi6cgKOOvyJBNPc1STE4U6G7weNLWLBYy5d4ux2x8gkasJ
|
172 |
+
U26Qzns3dLlwR5EiUWMWea6xrkEmCMgZK9FGqkjWZCrXgzT/LCrBbBlDSgeF59N8
|
173 |
+
9iFo7+ryUp9/k5DPAgMBAAGjQjBAMA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMBAf8E
|
174 |
+
BTADAQH/MB0GA1UdDgQWBBRge2YaRQ2XyolQL30EzTSo//z9SzANBgkqhkiG9w0B
|
175 |
+
AQUFAAOCAQEA1nPnfE920I2/7LqivjTFKDK1fPxsnCwrvQmeU79rXqoRSLblCKOz
|
176 |
+
yj1hTdNGCbM+w6DjY1Ub8rrvrTnhQ7k4o+YviiY776BQVvnGCv04zcQLcFGUl5gE
|
177 |
+
38NflNUVyRRBnMRddWQVDf9VMOyGj/8N7yy5Y0b2qvzfvGn9LhJIZJrglfCm7ymP
|
178 |
+
AbEVtQwdpf5pLGkkeB6zpxxxYu7KyJesF12KwvhHhm4qxFYxldBniYUr+WymXUad
|
179 |
+
DKqC5JlR3XC321Y9YeRq4VzW9v493kHMB65jUr9TU/Qr6cf9tveCX4XSQRjbgbME
|
180 |
+
HMUfpIBvFSDJ3gyICh3WZlXi/EjJKSZp4A==
|
181 |
+
-----END CERTIFICATE-----
|
182 |
+
|
183 |
+
# Issuer: CN=GlobalSign O=GlobalSign OU=GlobalSign Root CA - R2
|
184 |
+
# Subject: CN=GlobalSign O=GlobalSign OU=GlobalSign Root CA - R2
|
185 |
+
# Label: "GlobalSign Root CA - R2"
|
186 |
+
# Serial: 4835703278459682885658125
|
187 |
+
# MD5 Fingerprint: 94:14:77:7e:3e:5e:fd:8f:30:bd:41:b0:cf:e7:d0:30
|
188 |
+
# SHA1 Fingerprint: 75:e0:ab:b6:13:85:12:27:1c:04:f8:5f:dd:de:38:e4:b7:24:2e:fe
|
189 |
+
# SHA256 Fingerprint: ca:42:dd:41:74:5f:d0:b8:1e:b9:02:36:2c:f9:d8:bf:71:9d:a1:bd:1b:1e:fc:94:6f:5b:4c:99:f4:2c:1b:9e
|
190 |
+
-----BEGIN CERTIFICATE-----
|
191 |
+
MIIDujCCAqKgAwIBAgILBAAAAAABD4Ym5g0wDQYJKoZIhvcNAQEFBQAwTDEgMB4G
|
192 |
+
A1UECxMXR2xvYmFsU2lnbiBSb290IENBIC0gUjIxEzARBgNVBAoTCkdsb2JhbFNp
|
193 |
+
Z24xEzARBgNVBAMTCkdsb2JhbFNpZ24wHhcNMDYxMjE1MDgwMDAwWhcNMjExMjE1
|
194 |
+
MDgwMDAwWjBMMSAwHgYDVQQLExdHbG9iYWxTaWduIFJvb3QgQ0EgLSBSMjETMBEG
|
195 |
+
A1UEChMKR2xvYmFsU2lnbjETMBEGA1UEAxMKR2xvYmFsU2lnbjCCASIwDQYJKoZI
|
196 |
+
hvcNAQEBBQADggEPADCCAQoCggEBAKbPJA6+Lm8omUVCxKs+IVSbC9N/hHD6ErPL
|
197 |
+
v4dfxn+G07IwXNb9rfF73OX4YJYJkhD10FPe+3t+c4isUoh7SqbKSaZeqKeMWhG8
|
198 |
+
eoLrvozps6yWJQeXSpkqBy+0Hne/ig+1AnwblrjFuTosvNYSuetZfeLQBoZfXklq
|
199 |
+
tTleiDTsvHgMCJiEbKjNS7SgfQx5TfC4LcshytVsW33hoCmEofnTlEnLJGKRILzd
|
200 |
+
C9XZzPnqJworc5HGnRusyMvo4KD0L5CLTfuwNhv2GXqF4G3yYROIXJ/gkwpRl4pa
|
201 |
+
zq+r1feqCapgvdzZX99yqWATXgAByUr6P6TqBwMhAo6CygPCm48CAwEAAaOBnDCB
|
202 |
+
mTAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUm+IH
|
203 |
+
V2ccHsBqBt5ZtJot39wZhi4wNgYDVR0fBC8wLTAroCmgJ4YlaHR0cDovL2NybC5n
|
204 |
+
bG9iYWxzaWduLm5ldC9yb290LXIyLmNybDAfBgNVHSMEGDAWgBSb4gdXZxwewGoG
|
205 |
+
3lm0mi3f3BmGLjANBgkqhkiG9w0BAQUFAAOCAQEAmYFThxxol4aR7OBKuEQLq4Gs
|
206 |
+
J0/WwbgcQ3izDJr86iw8bmEbTUsp9Z8FHSbBuOmDAGJFtqkIk7mpM0sYmsL4h4hO
|
207 |
+
291xNBrBVNpGP+DTKqttVCL1OmLNIG+6KYnX3ZHu01yiPqFbQfXf5WRDLenVOavS
|
208 |
+
ot+3i9DAgBkcRcAtjOj4LaR0VknFBbVPFd5uRHg5h6h+u/N5GJG79G+dwfCMNYxd
|
209 |
+
AfvDbbnvRG15RjF+Cv6pgsH/76tuIMRQyV+dTZsXjAzlAcmgQWpzU/qlULRuJQ/7
|
210 |
+
TBj0/VLZjmmx6BEP3ojY+x1J96relc8geMJgEtslQIxq/H5COEBkEveegeGTLg==
|
211 |
+
-----END CERTIFICATE-----
|
212 |
+
|
213 |
+
# Issuer: CN=http://www.valicert.com/ O=ValiCert, Inc. OU=ValiCert Class 1 Policy Validation Authority
|
214 |
+
# Subject: CN=http://www.valicert.com/ O=ValiCert, Inc. OU=ValiCert Class 1 Policy Validation Authority
|
215 |
+
# Label: "ValiCert Class 1 VA"
|
216 |
+
# Serial: 1
|
217 |
+
# MD5 Fingerprint: 65:58:ab:15:ad:57:6c:1e:a8:a7:b5:69:ac:bf:ff:eb
|
218 |
+
# SHA1 Fingerprint: e5:df:74:3c:b6:01:c4:9b:98:43:dc:ab:8c:e8:6a:81:10:9f:e4:8e
|
219 |
+
# SHA256 Fingerprint: f4:c1:49:55:1a:30:13:a3:5b:c7:bf:fe:17:a7:f3:44:9b:c1:ab:5b:5a:0a:e7:4b:06:c2:3b:90:00:4c:01:04
|
220 |
+
-----BEGIN CERTIFICATE-----
|
221 |
+
MIIC5zCCAlACAQEwDQYJKoZIhvcNAQEFBQAwgbsxJDAiBgNVBAcTG1ZhbGlDZXJ0
|
222 |
+
IFZhbGlkYXRpb24gTmV0d29yazEXMBUGA1UEChMOVmFsaUNlcnQsIEluYy4xNTAz
|
223 |
+
BgNVBAsTLFZhbGlDZXJ0IENsYXNzIDEgUG9saWN5IFZhbGlkYXRpb24gQXV0aG9y
|
224 |
+
aXR5MSEwHwYDVQQDExhodHRwOi8vd3d3LnZhbGljZXJ0LmNvbS8xIDAeBgkqhkiG
|
225 |
+
9w0BCQEWEWluZm9AdmFsaWNlcnQuY29tMB4XDTk5MDYyNTIyMjM0OFoXDTE5MDYy
|
226 |
+
NTIyMjM0OFowgbsxJDAiBgNVBAcTG1ZhbGlDZXJ0IFZhbGlkYXRpb24gTmV0d29y
|
227 |
+
azEXMBUGA1UEChMOVmFsaUNlcnQsIEluYy4xNTAzBgNVBAsTLFZhbGlDZXJ0IENs
|
228 |
+
YXNzIDEgUG9saWN5IFZhbGlkYXRpb24gQXV0aG9yaXR5MSEwHwYDVQQDExhodHRw
|
229 |
+
Oi8vd3d3LnZhbGljZXJ0LmNvbS8xIDAeBgkqhkiG9w0BCQEWEWluZm9AdmFsaWNl
|
230 |
+
cnQuY29tMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDYWYJ6ibiWuqYvaG9Y
|
231 |
+
LqdUHAZu9OqNSLwxlBfw8068srg1knaw0KWlAdcAAxIiGQj4/xEjm84H9b9pGib+
|
232 |
+
TunRf50sQB1ZaG6m+FiwnRqP0z/x3BkGgagO4DrdyFNFCQbmD3DD+kCmDuJWBQ8Y
|
233 |
+
TfwggtFzVXSNdnKgHZ0dwN0/cQIDAQABMA0GCSqGSIb3DQEBBQUAA4GBAFBoPUn0
|
234 |
+
LBwGlN+VYH+Wexf+T3GtZMjdd9LvWVXoP+iOBSoh8gfStadS/pyxtuJbdxdA6nLW
|
235 |
+
I8sogTLDAHkY7FkXicnGah5xyf23dKUlRWnFSKsZ4UWKJWsZ7uW7EvV/96aNUcPw
|
236 |
+
nXS3qT6gpf+2SQMT2iLM7XGCK5nPOrf1LXLI
|
237 |
+
-----END CERTIFICATE-----
|
238 |
+
|
239 |
+
# Issuer: CN=http://www.valicert.com/ O=ValiCert, Inc. OU=ValiCert Class 2 Policy Validation Authority
|
240 |
+
# Subject: CN=http://www.valicert.com/ O=ValiCert, Inc. OU=ValiCert Class 2 Policy Validation Authority
|
241 |
+
# Label: "ValiCert Class 2 VA"
|
242 |
+
# Serial: 1
|
243 |
+
# MD5 Fingerprint: a9:23:75:9b:ba:49:36:6e:31:c2:db:f2:e7:66:ba:87
|
244 |
+
# SHA1 Fingerprint: 31:7a:2a:d0:7f:2b:33:5e:f5:a1:c3:4e:4b:57:e8:b7:d8:f1:fc:a6
|
245 |
+
# SHA256 Fingerprint: 58:d0:17:27:9c:d4:dc:63:ab:dd:b1:96:a6:c9:90:6c:30:c4:e0:87:83:ea:e8:c1:60:99:54:d6:93:55:59:6b
|
246 |
+
-----BEGIN CERTIFICATE-----
|
247 |
+
MIIC5zCCAlACAQEwDQYJKoZIhvcNAQEFBQAwgbsxJDAiBgNVBAcTG1ZhbGlDZXJ0
|
248 |
+
IFZhbGlkYXRpb24gTmV0d29yazEXMBUGA1UEChMOVmFsaUNlcnQsIEluYy4xNTAz
|
249 |
+
BgNVBAsTLFZhbGlDZXJ0IENsYXNzIDIgUG9saWN5IFZhbGlkYXRpb24gQXV0aG9y
|
250 |
+
aXR5MSEwHwYDVQQDExhodHRwOi8vd3d3LnZhbGljZXJ0LmNvbS8xIDAeBgkqhkiG
|
251 |
+
9w0BCQEWEWluZm9AdmFsaWNlcnQuY29tMB4XDTk5MDYyNjAwMTk1NFoXDTE5MDYy
|
252 |
+
NjAwMTk1NFowgbsxJDAiBgNVBAcTG1ZhbGlDZXJ0IFZhbGlkYXRpb24gTmV0d29y
|
253 |
+
azEXMBUGA1UEChMOVmFsaUNlcnQsIEluYy4xNTAzBgNVBAsTLFZhbGlDZXJ0IENs
|
254 |
+
YXNzIDIgUG9saWN5IFZhbGlkYXRpb24gQXV0aG9yaXR5MSEwHwYDVQQDExhodHRw
|
255 |
+
Oi8vd3d3LnZhbGljZXJ0LmNvbS8xIDAeBgkqhkiG9w0BCQEWEWluZm9AdmFsaWNl
|
256 |
+
cnQuY29tMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDOOnHK5avIWZJV16vY
|
257 |
+
dA757tn2VUdZZUcOBVXc65g2PFxTXdMwzzjsvUGJ7SVCCSRrCl6zfN1SLUzm1NZ9
|
258 |
+
WlmpZdRJEy0kTRxQb7XBhVQ7/nHk01xC+YDgkRoKWzk2Z/M/VXwbP7RfZHM047QS
|
259 |
+
v4dk+NoS/zcnwbNDu+97bi5p9wIDAQABMA0GCSqGSIb3DQEBBQUAA4GBADt/UG9v
|
260 |
+
UJSZSWI4OB9L+KXIPqeCgfYrx+jFzug6EILLGACOTb2oWH+heQC1u+mNr0HZDzTu
|
261 |
+
IYEZoDJJKPTEjlbVUjP9UNV+mWwD5MlM/Mtsq2azSiGM5bUMMj4QssxsodyamEwC
|
262 |
+
W/POuZ6lcg5Ktz885hZo+L7tdEy8W9ViH0Pd
|
263 |
+
-----END CERTIFICATE-----
|
264 |
+
|
265 |
+
# Issuer: CN=http://www.valicert.com/ O=ValiCert, Inc. OU=ValiCert Class 3 Policy Validation Authority
|
266 |
+
# Subject: CN=http://www.valicert.com/ O=ValiCert, Inc. OU=ValiCert Class 3 Policy Validation Authority
|
267 |
+
# Label: "RSA Root Certificate 1"
|
268 |
+
# Serial: 1
|
269 |
+
# MD5 Fingerprint: a2:6f:53:b7:ee:40:db:4a:68:e7:fa:18:d9:10:4b:72
|
270 |
+
# SHA1 Fingerprint: 69:bd:8c:f4:9c:d3:00:fb:59:2e:17:93:ca:55:6a:f3:ec:aa:35:fb
|
271 |
+
# SHA256 Fingerprint: bc:23:f9:8a:31:3c:b9:2d:e3:bb:fc:3a:5a:9f:44:61:ac:39:49:4c:4a:e1:5a:9e:9d:f1:31:e9:9b:73:01:9a
|
272 |
+
-----BEGIN CERTIFICATE-----
|
273 |
+
MIIC5zCCAlACAQEwDQYJKoZIhvcNAQEFBQAwgbsxJDAiBgNVBAcTG1ZhbGlDZXJ0
|
274 |
+
IFZhbGlkYXRpb24gTmV0d29yazEXMBUGA1UEChMOVmFsaUNlcnQsIEluYy4xNTAz
|
275 |
+
BgNVBAsTLFZhbGlDZXJ0IENsYXNzIDMgUG9saWN5IFZhbGlkYXRpb24gQXV0aG9y
|
276 |
+
aXR5MSEwHwYDVQQDExhodHRwOi8vd3d3LnZhbGljZXJ0LmNvbS8xIDAeBgkqhkiG
|
277 |
+
9w0BCQEWEWluZm9AdmFsaWNlcnQuY29tMB4XDTk5MDYyNjAwMjIzM1oXDTE5MDYy
|
278 |
+
NjAwMjIzM1owgbsxJDAiBgNVBAcTG1ZhbGlDZXJ0IFZhbGlkYXRpb24gTmV0d29y
|
279 |
+
azEXMBUGA1UEChMOVmFsaUNlcnQsIEluYy4xNTAzBgNVBAsTLFZhbGlDZXJ0IENs
|
280 |
+
YXNzIDMgUG9saWN5IFZhbGlkYXRpb24gQXV0aG9yaXR5MSEwHwYDVQQDExhodHRw
|
281 |
+
Oi8vd3d3LnZhbGljZXJ0LmNvbS8xIDAeBgkqhkiG9w0BCQEWEWluZm9AdmFsaWNl
|
282 |
+
cnQuY29tMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDjmFGWHOjVsQaBalfD
|
283 |
+
cnWTq8+epvzzFlLWLU2fNUSoLgRNB0mKOCn1dzfnt6td3zZxFJmP3MKS8edgkpfs
|
284 |
+
2Ejcv8ECIMYkpChMMFp2bbFc893enhBxoYjHW5tBbcqwuI4V7q0zK89HBFx1cQqY
|
285 |
+
JJgpp0lZpd34t0NiYfPT4tBVPwIDAQABMA0GCSqGSIb3DQEBBQUAA4GBAFa7AliE
|
286 |
+
Zwgs3x/be0kz9dNnnfS0ChCzycUs4pJqcXgn8nCDQtM+z6lU9PHYkhaM0QTLS6vJ
|
287 |
+
n0WuPIqpsHEzXcjFV9+vqDWzf4mH6eglkrh/hXqu1rweN1gqZ8mRzyqBPu3GOd/A
|
288 |
+
PhmcGcwTTYJBtYze4D1gCCAPRX5ron+jjBXu
|
289 |
+
-----END CERTIFICATE-----
|
290 |
+
|
291 |
+
# Issuer: CN=VeriSign Class 3 Public Primary Certification Authority - G3 O=VeriSign, Inc. OU=VeriSign Trust Network/(c) 1999 VeriSign, Inc. - For authorized use only
|
292 |
+
# Subject: CN=VeriSign Class 3 Public Primary Certification Authority - G3 O=VeriSign, Inc. OU=VeriSign Trust Network/(c) 1999 VeriSign, Inc. - For authorized use only
|
293 |
+
# Label: "Verisign Class 3 Public Primary Certification Authority - G3"
|
294 |
+
# Serial: 206684696279472310254277870180966723415
|
295 |
+
# MD5 Fingerprint: cd:68:b6:a7:c7:c4:ce:75:e0:1d:4f:57:44:61:92:09
|
296 |
+
# SHA1 Fingerprint: 13:2d:0d:45:53:4b:69:97:cd:b2:d5:c3:39:e2:55:76:60:9b:5c:c6
|
297 |
+
# SHA256 Fingerprint: eb:04:cf:5e:b1:f3:9a:fa:76:2f:2b:b1:20:f2:96:cb:a5:20:c1:b9:7d:b1:58:95:65:b8:1c:b9:a1:7b:72:44
|
298 |
+
-----BEGIN CERTIFICATE-----
|
299 |
+
MIIEGjCCAwICEQCbfgZJoz5iudXukEhxKe9XMA0GCSqGSIb3DQEBBQUAMIHKMQsw
|
300 |
+
CQYDVQQGEwJVUzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xHzAdBgNVBAsTFlZl
|
301 |
+
cmlTaWduIFRydXN0IE5ldHdvcmsxOjA4BgNVBAsTMShjKSAxOTk5IFZlcmlTaWdu
|
302 |
+
LCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxRTBDBgNVBAMTPFZlcmlT
|
303 |
+
aWduIENsYXNzIDMgUHVibGljIFByaW1hcnkgQ2VydGlmaWNhdGlvbiBBdXRob3Jp
|
304 |
+
dHkgLSBHMzAeFw05OTEwMDEwMDAwMDBaFw0zNjA3MTYyMzU5NTlaMIHKMQswCQYD
|
305 |
+
VQQGEwJVUzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xHzAdBgNVBAsTFlZlcmlT
|
306 |
+
aWduIFRydXN0IE5ldHdvcmsxOjA4BgNVBAsTMShjKSAxOTk5IFZlcmlTaWduLCBJ
|
307 |
+
bmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxRTBDBgNVBAMTPFZlcmlTaWdu
|
308 |
+
IENsYXNzIDMgUHVibGljIFByaW1hcnkgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkg
|
309 |
+
LSBHMzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMu6nFL8eB8aHm8b
|
310 |
+
N3O9+MlrlBIwT/A2R/XQkQr1F8ilYcEWQE37imGQ5XYgwREGfassbqb1EUGO+i2t
|
311 |
+
KmFZpGcmTNDovFJbcCAEWNF6yaRpvIMXZK0Fi7zQWM6NjPXr8EJJC52XJ2cybuGu
|
312 |
+
kxUccLwgTS8Y3pKI6GyFVxEa6X7jJhFUokWWVYPKMIno3Nij7SqAP395ZVc+FSBm
|
313 |
+
CC+Vk7+qRy+oRpfwEuL+wgorUeZ25rdGt+INpsyow0xZVYnm6FNcHOqd8GIWC6fJ
|
314 |
+
Xwzw3sJ2zq/3avL6QaaiMxTJ5Xpj055iN9WFZZ4O5lMkdBteHRJTW8cs54NJOxWu
|
315 |
+
imi5V5cCAwEAATANBgkqhkiG9w0BAQUFAAOCAQEAERSWwauSCPc/L8my/uRan2Te
|
316 |
+
2yFPhpk0djZX3dAVL8WtfxUfN2JzPtTnX84XA9s1+ivbrmAJXx5fj267Cz3qWhMe
|
317 |
+
DGBvtcC1IyIuBwvLqXTLR7sdwdela8wv0kL9Sd2nic9TutoAWii/gt/4uhMdUIaC
|
318 |
+
/Y4wjylGsB49Ndo4YhYYSq3mtlFs3q9i6wHQHiT+eo8SGhJouPtmmRQURVyu565p
|
319 |
+
F4ErWjfJXir0xuKhXFSbplQAz/DxwceYMBo7Nhbbo27q/a2ywtrvAkcTisDxszGt
|
320 |
+
TxzhT5yvDwyd93gN2PQ1VoDat20Xj50egWTh/sVFuq1ruQp6Tk9LhO5L8X3dEQ==
|
321 |
+
-----END CERTIFICATE-----
|
322 |
+
|
323 |
+
# Issuer: CN=VeriSign Class 4 Public Primary Certification Authority - G3 O=VeriSign, Inc. OU=VeriSign Trust Network/(c) 1999 VeriSign, Inc. - For authorized use only
|
324 |
+
# Subject: CN=VeriSign Class 4 Public Primary Certification Authority - G3 O=VeriSign, Inc. OU=VeriSign Trust Network/(c) 1999 VeriSign, Inc. - For authorized use only
|
325 |
+
# Label: "Verisign Class 4 Public Primary Certification Authority - G3"
|
326 |
+
# Serial: 314531972711909413743075096039378935511
|
327 |
+
# MD5 Fingerprint: db:c8:f2:27:2e:b1:ea:6a:29:23:5d:fe:56:3e:33:df
|
328 |
+
# SHA1 Fingerprint: c8:ec:8c:87:92:69:cb:4b:ab:39:e9:8d:7e:57:67:f3:14:95:73:9d
|
329 |
+
# SHA256 Fingerprint: e3:89:36:0d:0f:db:ae:b3:d2:50:58:4b:47:30:31:4e:22:2f:39:c1:56:a0:20:14:4e:8d:96:05:61:79:15:06
|
330 |
+
-----BEGIN CERTIFICATE-----
|
331 |
+
MIIEGjCCAwICEQDsoKeLbnVqAc/EfMwvlF7XMA0GCSqGSIb3DQEBBQUAMIHKMQsw
|
332 |
+
CQYDVQQGEwJVUzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xHzAdBgNVBAsTFlZl
|
333 |
+
cmlTaWduIFRydXN0IE5ldHdvcmsxOjA4BgNVBAsTMShjKSAxOTk5IFZlcmlTaWdu
|
334 |
+
LCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxRTBDBgNVBAMTPFZlcmlT
|
335 |
+
aWduIENsYXNzIDQgUHVibGljIFByaW1hcnkgQ2VydGlmaWNhdGlvbiBBdXRob3Jp
|
336 |
+
dHkgLSBHMzAeFw05OTEwMDEwMDAwMDBaFw0zNjA3MTYyMzU5NTlaMIHKMQswCQYD
|
337 |
+
VQQGEwJVUzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xHzAdBgNVBAsTFlZlcmlT
|
338 |
+
aWduIFRydXN0IE5ldHdvcmsxOjA4BgNVBAsTMShjKSAxOTk5IFZlcmlTaWduLCBJ
|
339 |
+
bmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxRTBDBgNVBAMTPFZlcmlTaWdu
|
340 |
+
IENsYXNzIDQgUHVibGljIFByaW1hcnkgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkg
|
341 |
+
LSBHMzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAK3LpRFpxlmr8Y+1
|
342 |
+
GQ9Wzsy1HyDkniYlS+BzZYlZ3tCD5PUPtbut8XzoIfzk6AzufEUiGXaStBO3IFsJ
|
343 |
+
+mGuqPKljYXCKtbeZjbSmwL0qJJgfJxptI8kHtCGUvYynEFYHiK9zUVilQhu0Gbd
|
344 |
+
U6LM8BDcVHOLBKFGMzNcF0C5nk3T875Vg+ixiY5afJqWIpA7iCXy0lOIAgwLePLm
|
345 |
+
NxdLMEYH5IBtptiWLugs+BGzOA1mppvqySNb247i8xOOGlktqgLw7KSHZtzBP/XY
|
346 |
+
ufTsgsbSPZUd5cBPhMnZo0QoBmrXRazwa2rvTl/4EYIeOGM0ZlDUPpNz+jDDZq3/
|
347 |
+
ky2X7wMCAwEAATANBgkqhkiG9w0BAQUFAAOCAQEAj/ola09b5KROJ1WrIhVZPMq1
|
348 |
+
CtRK26vdoV9TxaBXOcLORyu+OshWv8LZJxA6sQU8wHcxuzrTBXttmhwwjIDLk5Mq
|
349 |
+
g6sFUYICABFna/OIYUdfA5PVWw3g8dShMjWFsjrbsIKr0csKvE+MW8VLADsfKoKm
|
350 |
+
fjaF3H48ZwC15DtS4KjrXRX5xm3wrR0OhbepmnMUWluPQSjA1egtTaRezarZ7c7c
|
351 |
+
2NU8Qh0XwRJdRTjDOPP8hS6DRkiy1yBfkjaP53kPmF6Z6PDQpLv1U70qzlmwr25/
|
352 |
+
bLvSHgCwIe34QWKCudiyxLtGUPMxxY8BqHTr9Xgn2uf3ZkPznoM+IKrDNWCRzg==
|
353 |
+
-----END CERTIFICATE-----
|
354 |
+
|
355 |
+
# Issuer: CN=Entrust.net Secure Server Certification Authority O=Entrust.net OU=www.entrust.net/CPS incorp. by ref. (limits liab.)/(c) 1999 Entrust.net Limited
|
356 |
+
# Subject: CN=Entrust.net Secure Server Certification Authority O=Entrust.net OU=www.entrust.net/CPS incorp. by ref. (limits liab.)/(c) 1999 Entrust.net Limited
|
357 |
+
# Label: "Entrust.net Secure Server CA"
|
358 |
+
# Serial: 927650371
|
359 |
+
# MD5 Fingerprint: df:f2:80:73:cc:f1:e6:61:73:fc:f5:42:e9:c5:7c:ee
|
360 |
+
# SHA1 Fingerprint: 99:a6:9b:e6:1a:fe:88:6b:4d:2b:82:00:7c:b8:54:fc:31:7e:15:39
|
361 |
+
# SHA256 Fingerprint: 62:f2:40:27:8c:56:4c:4d:d8:bf:7d:9d:4f:6f:36:6e:a8:94:d2:2f:5f:34:d9:89:a9:83:ac:ec:2f:ff:ed:50
|
362 |
+
-----BEGIN CERTIFICATE-----
|
363 |
+
MIIE2DCCBEGgAwIBAgIEN0rSQzANBgkqhkiG9w0BAQUFADCBwzELMAkGA1UEBhMC
|
364 |
+
VVMxFDASBgNVBAoTC0VudHJ1c3QubmV0MTswOQYDVQQLEzJ3d3cuZW50cnVzdC5u
|
365 |
+
ZXQvQ1BTIGluY29ycC4gYnkgcmVmLiAobGltaXRzIGxpYWIuKTElMCMGA1UECxMc
|
366 |
+
KGMpIDE5OTkgRW50cnVzdC5uZXQgTGltaXRlZDE6MDgGA1UEAxMxRW50cnVzdC5u
|
367 |
+
ZXQgU2VjdXJlIFNlcnZlciBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAeFw05OTA1
|
368 |
+
MjUxNjA5NDBaFw0xOTA1MjUxNjM5NDBaMIHDMQswCQYDVQQGEwJVUzEUMBIGA1UE
|
369 |
+
ChMLRW50cnVzdC5uZXQxOzA5BgNVBAsTMnd3dy5lbnRydXN0Lm5ldC9DUFMgaW5j
|
370 |
+
b3JwLiBieSByZWYuIChsaW1pdHMgbGlhYi4pMSUwIwYDVQQLExwoYykgMTk5OSBF
|
371 |
+
bnRydXN0Lm5ldCBMaW1pdGVkMTowOAYDVQQDEzFFbnRydXN0Lm5ldCBTZWN1cmUg
|
372 |
+
U2VydmVyIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MIGdMA0GCSqGSIb3DQEBAQUA
|
373 |
+
A4GLADCBhwKBgQDNKIM0VBuJ8w+vN5Ex/68xYMmo6LIQaO2f55M28Qpku0f1BBc/
|
374 |
+
I0dNxScZgSYMVHINiC3ZH5oSn7yzcdOAGT9HZnuMNSjSuQrfJNqc1lB5gXpa0zf3
|
375 |
+
wkrYKZImZNHkmGw6AIr1NJtl+O3jEP/9uElY3KDegjlrgbEWGWG5VLbmQwIBA6OC
|
376 |
+
AdcwggHTMBEGCWCGSAGG+EIBAQQEAwIABzCCARkGA1UdHwSCARAwggEMMIHeoIHb
|
377 |
+
oIHYpIHVMIHSMQswCQYDVQQGEwJVUzEUMBIGA1UEChMLRW50cnVzdC5uZXQxOzA5
|
378 |
+
BgNVBAsTMnd3dy5lbnRydXN0Lm5ldC9DUFMgaW5jb3JwLiBieSByZWYuIChsaW1p
|
379 |
+
dHMgbGlhYi4pMSUwIwYDVQQLExwoYykgMTk5OSBFbnRydXN0Lm5ldCBMaW1pdGVk
|
380 |
+
MTowOAYDVQQDEzFFbnRydXN0Lm5ldCBTZWN1cmUgU2VydmVyIENlcnRpZmljYXRp
|
381 |
+
b24gQXV0aG9yaXR5MQ0wCwYDVQQDEwRDUkwxMCmgJ6AlhiNodHRwOi8vd3d3LmVu
|
382 |
+
dHJ1c3QubmV0L0NSTC9uZXQxLmNybDArBgNVHRAEJDAigA8xOTk5MDUyNTE2MDk0
|
383 |
+
MFqBDzIwMTkwNTI1MTYwOTQwWjALBgNVHQ8EBAMCAQYwHwYDVR0jBBgwFoAU8Bdi
|
384 |
+
E1U9s/8KAGv7UISX8+1i0BowHQYDVR0OBBYEFPAXYhNVPbP/CgBr+1CEl/PtYtAa
|
385 |
+
MAwGA1UdEwQFMAMBAf8wGQYJKoZIhvZ9B0EABAwwChsEVjQuMAMCBJAwDQYJKoZI
|
386 |
+
hvcNAQEFBQADgYEAkNwwAvpkdMKnCqV8IY00F6j7Rw7/JXyNEwr75Ji174z4xRAN
|
387 |
+
95K+8cPV1ZVqBLssziY2ZcgxxufuP+NXdYR6Ee9GTxj005i7qIcyunL2POI9n9cd
|
388 |
+
2cNgQ4xYDiKWL2KjLB+6rQXvqzJ4h6BUcxm1XAX5Uj5tLUUL9wqT6u0G+bI=
|
389 |
+
-----END CERTIFICATE-----
|
390 |
+
|
391 |
+
# Issuer: CN=Entrust.net Certification Authority (2048) O=Entrust.net OU=www.entrust.net/CPS_2048 incorp. by ref. (limits liab.)/(c) 1999 Entrust.net Limited
|
392 |
+
# Subject: CN=Entrust.net Certification Authority (2048) O=Entrust.net OU=www.entrust.net/CPS_2048 incorp. by ref. (limits liab.)/(c) 1999 Entrust.net Limited
|
393 |
+
# Label: "Entrust.net Premium 2048 Secure Server CA"
|
394 |
+
# Serial: 946059622
|
395 |
+
# MD5 Fingerprint: ba:21:ea:20:d6:dd:db:8f:c1:57:8b:40:ad:a1:fc:fc
|
396 |
+
# SHA1 Fingerprint: 80:1d:62:d0:7b:44:9d:5c:5c:03:5c:98:ea:61:fa:44:3c:2a:58:fe
|
397 |
+
# SHA256 Fingerprint: d1:c3:39:ea:27:84:eb:87:0f:93:4f:c5:63:4e:4a:a9:ad:55:05:01:64:01:f2:64:65:d3:7a:57:46:63:35:9f
|
398 |
+
-----BEGIN CERTIFICATE-----
|
399 |
+
MIIEXDCCA0SgAwIBAgIEOGO5ZjANBgkqhkiG9w0BAQUFADCBtDEUMBIGA1UEChML
|
400 |
+
RW50cnVzdC5uZXQxQDA+BgNVBAsUN3d3dy5lbnRydXN0Lm5ldC9DUFNfMjA0OCBp
|
401 |
+
bmNvcnAuIGJ5IHJlZi4gKGxpbWl0cyBsaWFiLikxJTAjBgNVBAsTHChjKSAxOTk5
|
402 |
+
IEVudHJ1c3QubmV0IExpbWl0ZWQxMzAxBgNVBAMTKkVudHJ1c3QubmV0IENlcnRp
|
403 |
+
ZmljYXRpb24gQXV0aG9yaXR5ICgyMDQ4KTAeFw05OTEyMjQxNzUwNTFaFw0xOTEy
|
404 |
+
MjQxODIwNTFaMIG0MRQwEgYDVQQKEwtFbnRydXN0Lm5ldDFAMD4GA1UECxQ3d3d3
|
405 |
+
LmVudHJ1c3QubmV0L0NQU18yMDQ4IGluY29ycC4gYnkgcmVmLiAobGltaXRzIGxp
|
406 |
+
YWIuKTElMCMGA1UECxMcKGMpIDE5OTkgRW50cnVzdC5uZXQgTGltaXRlZDEzMDEG
|
407 |
+
A1UEAxMqRW50cnVzdC5uZXQgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkgKDIwNDgp
|
408 |
+
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEArU1LqRKGsuqjIAcVFmQq
|
409 |
+
K0vRvwtKTY7tgHalZ7d4QMBzQshowNtTK91euHaYNZOLGp18EzoOH1u3Hs/lJBQe
|
410 |
+
sYGpjX24zGtLA/ECDNyrpUAkAH90lKGdCCmziAv1h3edVc3kw37XamSrhRSGlVuX
|
411 |
+
MlBvPci6Zgzj/L24ScF2iUkZ/cCovYmjZy/Gn7xxGWC4LeksyZB2ZnuU4q941mVT
|
412 |
+
XTzWnLLPKQP5L6RQstRIzgUyVYr9smRMDuSYB3Xbf9+5CFVghTAp+XtIpGmG4zU/
|
413 |
+
HoZdenoVve8AjhUiVBcAkCaTvA5JaJG/+EfTnZVCwQ5N328mz8MYIWJmQ3DW1cAH
|
414 |
+
4QIDAQABo3QwcjARBglghkgBhvhCAQEEBAMCAAcwHwYDVR0jBBgwFoAUVeSB0RGA
|
415 |
+
vtiJuQijMfmhJAkWuXAwHQYDVR0OBBYEFFXkgdERgL7YibkIozH5oSQJFrlwMB0G
|
416 |
+
CSqGSIb2fQdBAAQQMA4bCFY1LjA6NC4wAwIEkDANBgkqhkiG9w0BAQUFAAOCAQEA
|
417 |
+
WUesIYSKF8mciVMeuoCFGsY8Tj6xnLZ8xpJdGGQC49MGCBFhfGPjK50xA3B20qMo
|
418 |
+
oPS7mmNz7W3lKtvtFKkrxjYR0CvrB4ul2p5cGZ1WEvVUKcgF7bISKo30Axv/55IQ
|
419 |
+
h7A6tcOdBTcSo8f0FbnVpDkWm1M6I5HxqIKiaohowXkCIryqptau37AUX7iH0N18
|
420 |
+
f3v/rxzP5tsHrV7bhZ3QKw0z2wTR5klAEyt2+z7pnIkPFc4YsIV4IU9rTw76NmfN
|
421 |
+
B/L/CNDi3tm/Kq+4h4YhPATKt5Rof8886ZjXOP/swNlQ8C5LWK5Gb9Auw2DaclVy
|
422 |
+
vUxFnmG6v4SBkgPR0ml8xQ==
|
423 |
+
-----END CERTIFICATE-----
|
424 |
+
|
425 |
+
# Issuer: CN=Baltimore CyberTrust Root O=Baltimore OU=CyberTrust
|
426 |
+
# Subject: CN=Baltimore CyberTrust Root O=Baltimore OU=CyberTrust
|
427 |
+
# Label: "Baltimore CyberTrust Root"
|
428 |
+
# Serial: 33554617
|
429 |
+
# MD5 Fingerprint: ac:b6:94:a5:9c:17:e0:d7:91:52:9b:b1:97:06:a6:e4
|
430 |
+
# SHA1 Fingerprint: d4:de:20:d0:5e:66:fc:53:fe:1a:50:88:2c:78:db:28:52:ca:e4:74
|
431 |
+
# SHA256 Fingerprint: 16:af:57:a9:f6:76:b0:ab:12:60:95:aa:5e:ba:de:f2:2a:b3:11:19:d6:44:ac:95:cd:4b:93:db:f3:f2:6a:eb
|
432 |
+
-----BEGIN CERTIFICATE-----
|
433 |
+
MIIDdzCCAl+gAwIBAgIEAgAAuTANBgkqhkiG9w0BAQUFADBaMQswCQYDVQQGEwJJ
|
434 |
+
RTESMBAGA1UEChMJQmFsdGltb3JlMRMwEQYDVQQLEwpDeWJlclRydXN0MSIwIAYD
|
435 |
+
VQQDExlCYWx0aW1vcmUgQ3liZXJUcnVzdCBSb290MB4XDTAwMDUxMjE4NDYwMFoX
|
436 |
+
DTI1MDUxMjIzNTkwMFowWjELMAkGA1UEBhMCSUUxEjAQBgNVBAoTCUJhbHRpbW9y
|
437 |
+
ZTETMBEGA1UECxMKQ3liZXJUcnVzdDEiMCAGA1UEAxMZQmFsdGltb3JlIEN5YmVy
|
438 |
+
VHJ1c3QgUm9vdDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKMEuyKr
|
439 |
+
mD1X6CZymrV51Cni4eiVgLGw41uOKymaZN+hXe2wCQVt2yguzmKiYv60iNoS6zjr
|
440 |
+
IZ3AQSsBUnuId9Mcj8e6uYi1agnnc+gRQKfRzMpijS3ljwumUNKoUMMo6vWrJYeK
|
441 |
+
mpYcqWe4PwzV9/lSEy/CG9VwcPCPwBLKBsua4dnKM3p31vjsufFoREJIE9LAwqSu
|
442 |
+
XmD+tqYF/LTdB1kC1FkYmGP1pWPgkAx9XbIGevOF6uvUA65ehD5f/xXtabz5OTZy
|
443 |
+
dc93Uk3zyZAsuT3lySNTPx8kmCFcB5kpvcY67Oduhjprl3RjM71oGDHweI12v/ye
|
444 |
+
jl0qhqdNkNwnGjkCAwEAAaNFMEMwHQYDVR0OBBYEFOWdWTCCR1jMrPoIVDaGezq1
|
445 |
+
BE3wMBIGA1UdEwEB/wQIMAYBAf8CAQMwDgYDVR0PAQH/BAQDAgEGMA0GCSqGSIb3
|
446 |
+
DQEBBQUAA4IBAQCFDF2O5G9RaEIFoN27TyclhAO992T9Ldcw46QQF+vaKSm2eT92
|
447 |
+
9hkTI7gQCvlYpNRhcL0EYWoSihfVCr3FvDB81ukMJY2GQE/szKN+OMY3EU/t3Wgx
|
448 |
+
jkzSswF07r51XgdIGn9w/xZchMB5hbgF/X++ZRGjD8ACtPhSNzkE1akxehi/oCr0
|
449 |
+
Epn3o0WC4zxe9Z2etciefC7IpJ5OCBRLbf1wbWsaY71k5h+3zvDyny67G7fyUIhz
|
450 |
+
ksLi4xaNmjICq44Y3ekQEe5+NauQrz4wlHrQMz2nZQ/1/I6eYs9HRCwBXbsdtTLS
|
451 |
+
R9I4LtD+gdwyah617jzV/OeBHRnDJELqYzmp
|
452 |
+
-----END CERTIFICATE-----
|
453 |
+
|
454 |
+
# Issuer: CN=Equifax Secure Global eBusiness CA-1 O=Equifax Secure Inc.
|
455 |
+
# Subject: CN=Equifax Secure Global eBusiness CA-1 O=Equifax Secure Inc.
|
456 |
+
# Label: "Equifax Secure Global eBusiness CA"
|
457 |
+
# Serial: 1
|
458 |
+
# MD5 Fingerprint: 8f:5d:77:06:27:c4:98:3c:5b:93:78:e7:d7:7d:9b:cc
|
459 |
+
# SHA1 Fingerprint: 7e:78:4a:10:1c:82:65:cc:2d:e1:f1:6d:47:b4:40:ca:d9:0a:19:45
|
460 |
+
# SHA256 Fingerprint: 5f:0b:62:ea:b5:e3:53:ea:65:21:65:16:58:fb:b6:53:59:f4:43:28:0a:4a:fb:d1:04:d7:7d:10:f9:f0:4c:07
|
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 |
+
# Issuer: CN=Equifax Secure eBusiness CA-1 O=Equifax Secure Inc.
|
479 |
+
# Subject: CN=Equifax Secure eBusiness CA-1 O=Equifax Secure Inc.
|
480 |
+
# Label: "Equifax Secure eBusiness CA 1"
|
481 |
+
# Serial: 4
|
482 |
+
# MD5 Fingerprint: 64:9c:ef:2e:44:fc:c6:8f:52:07:d0:51:73:8f:cb:3d
|
483 |
+
# SHA1 Fingerprint: da:40:18:8b:91:89:a3:ed:ee:ae:da:97:fe:2f:9d:f5:b7:d1:8a:41
|
484 |
+
# SHA256 Fingerprint: cf:56:ff:46:a4:a1:86:10:9d:d9:65:84:b5:ee:b5:8a:51:0c:42:75:b0:e5:f9:4f:40:bb:ae:86:5e:19:f6:73
|
485 |
+
-----BEGIN CERTIFICATE-----
|
486 |
+
MIICgjCCAeugAwIBAgIBBDANBgkqhkiG9w0BAQQFADBTMQswCQYDVQQGEwJVUzEc
|
487 |
+
MBoGA1UEChMTRXF1aWZheCBTZWN1cmUgSW5jLjEmMCQGA1UEAxMdRXF1aWZheCBT
|
488 |
+
ZWN1cmUgZUJ1c2luZXNzIENBLTEwHhcNOTkwNjIxMDQwMDAwWhcNMjAwNjIxMDQw
|
489 |
+
MDAwWjBTMQswCQYDVQQGEwJVUzEcMBoGA1UEChMTRXF1aWZheCBTZWN1cmUgSW5j
|
490 |
+
LjEmMCQGA1UEAxMdRXF1aWZheCBTZWN1cmUgZUJ1c2luZXNzIENBLTEwgZ8wDQYJ
|
491 |
+
KoZIhvcNAQEBBQADgY0AMIGJAoGBAM4vGbwXt3fek6lfWg0XTzQaDJj0ItlZ1MRo
|
492 |
+
RvC0NcWFAyDGr0WlIVFFQesWWDYyb+JQYmT5/VGcqiTZ9J2DKocKIdMSODRsjQBu
|
493 |
+
WqDZQu4aIZX5UkxVWsUPOE9G+m34LjXWHXzr4vCwdYDIqROsvojvOm6rXyo4YgKw
|
494 |
+
Env+j6YDAgMBAAGjZjBkMBEGCWCGSAGG+EIBAQQEAwIABzAPBgNVHRMBAf8EBTAD
|
495 |
+
AQH/MB8GA1UdIwQYMBaAFEp4MlIR21kWNl7fwRQ2QGpHfEyhMB0GA1UdDgQWBBRK
|
496 |
+
eDJSEdtZFjZe38EUNkBqR3xMoTANBgkqhkiG9w0BAQQFAAOBgQB1W6ibAxHm6VZM
|
497 |
+
zfmpTMANmvPMZWnmJXbMWbfWVMMdzZmsGd20hdXgPfxiIKeES1hl8eL5lSE/9dR+
|
498 |
+
WB5Hh1Q+WKG1tfgq73HnvMP2sUlG4tega+VWeponmHxGYhTnyfxuAxJ5gDgdSIKN
|
499 |
+
/Bf+KpYrtWKmpj29f5JZzVoqgrI3eQ==
|
500 |
+
-----END CERTIFICATE-----
|
501 |
+
|
502 |
+
# Issuer: O=Equifax Secure OU=Equifax Secure eBusiness CA-2
|
503 |
+
# Subject: O=Equifax Secure OU=Equifax Secure eBusiness CA-2
|
504 |
+
# Label: "Equifax Secure eBusiness CA 2"
|
505 |
+
# Serial: 930140085
|
506 |
+
# MD5 Fingerprint: aa:bf:bf:64:97:da:98:1d:6f:c6:08:3a:95:70:33:ca
|
507 |
+
# SHA1 Fingerprint: 39:4f:f6:85:0b:06:be:52:e5:18:56:cc:10:e1:80:e8:82:b3:85:cc
|
508 |
+
# SHA256 Fingerprint: 2f:27:4e:48:ab:a4:ac:7b:76:59:33:10:17:75:50:6d:c3:0e:e3:8e:f6:ac:d5:c0:49:32:cf:e0:41:23:42:20
|
509 |
+
-----BEGIN CERTIFICATE-----
|
510 |
+
MIIDIDCCAomgAwIBAgIEN3DPtTANBgkqhkiG9w0BAQUFADBOMQswCQYDVQQGEwJV
|
511 |
+
UzEXMBUGA1UEChMORXF1aWZheCBTZWN1cmUxJjAkBgNVBAsTHUVxdWlmYXggU2Vj
|
512 |
+
dXJlIGVCdXNpbmVzcyBDQS0yMB4XDTk5MDYyMzEyMTQ0NVoXDTE5MDYyMzEyMTQ0
|
513 |
+
NVowTjELMAkGA1UEBhMCVVMxFzAVBgNVBAoTDkVxdWlmYXggU2VjdXJlMSYwJAYD
|
514 |
+
VQQLEx1FcXVpZmF4IFNlY3VyZSBlQnVzaW5lc3MgQ0EtMjCBnzANBgkqhkiG9w0B
|
515 |
+
AQEFAAOBjQAwgYkCgYEA5Dk5kx5SBhsoNviyoynF7Y6yEb3+6+e0dMKP/wXn2Z0G
|
516 |
+
vxLIPw7y1tEkshHe0XMJitSxLJgJDR5QRrKDpkWNYmi7hRsgcDKqQM2mll/EcTc/
|
517 |
+
BPO3QSQ5BxoeLmFYoBIL5aXfxavqN3HMHMg3OrmXUqesxWoklE6ce8/AatbfIb0C
|
518 |
+
AwEAAaOCAQkwggEFMHAGA1UdHwRpMGcwZaBjoGGkXzBdMQswCQYDVQQGEwJVUzEX
|
519 |
+
MBUGA1UEChMORXF1aWZheCBTZWN1cmUxJjAkBgNVBAsTHUVxdWlmYXggU2VjdXJl
|
520 |
+
IGVCdXNpbmVzcyBDQS0yMQ0wCwYDVQQDEwRDUkwxMBoGA1UdEAQTMBGBDzIwMTkw
|
521 |
+
NjIzMTIxNDQ1WjALBgNVHQ8EBAMCAQYwHwYDVR0jBBgwFoAUUJ4L6q9euSBIplBq
|
522 |
+
y/3YIHqngnYwHQYDVR0OBBYEFFCeC+qvXrkgSKZQasv92CB6p4J2MAwGA1UdEwQF
|
523 |
+
MAMBAf8wGgYJKoZIhvZ9B0EABA0wCxsFVjMuMGMDAgbAMA0GCSqGSIb3DQEBBQUA
|
524 |
+
A4GBAAyGgq3oThr1jokn4jVYPSm0B482UJW/bsGe68SQsoWou7dC4A8HOd/7npCy
|
525 |
+
0cE+U58DRLB+S/Rv5Hwf5+Kx5Lia78O9zt4LMjTZ3ijtM2vE1Nc9ElirfQkty3D1
|
526 |
+
E4qUoSek1nDFbZS1yX2doNLGCEnZZpum0/QL3MUmV+GRMOrN
|
527 |
+
-----END CERTIFICATE-----
|
528 |
+
|
529 |
+
# Issuer: CN=AddTrust Class 1 CA Root O=AddTrust AB OU=AddTrust TTP Network
|
530 |
+
# Subject: CN=AddTrust Class 1 CA Root O=AddTrust AB OU=AddTrust TTP Network
|
531 |
+
# Label: "AddTrust Low-Value Services Root"
|
532 |
+
# Serial: 1
|
533 |
+
# MD5 Fingerprint: 1e:42:95:02:33:92:6b:b9:5f:c0:7f:da:d6:b2:4b:fc
|
534 |
+
# SHA1 Fingerprint: cc:ab:0e:a0:4c:23:01:d6:69:7b:dd:37:9f:cd:12:eb:24:e3:94:9d
|
535 |
+
# SHA256 Fingerprint: 8c:72:09:27:9a:c0:4e:27:5e:16:d0:7f:d3:b7:75:e8:01:54:b5:96:80:46:e3:1f:52:dd:25:76:63:24:e9:a7
|
536 |
+
-----BEGIN CERTIFICATE-----
|
537 |
+
MIIEGDCCAwCgAwIBAgIBATANBgkqhkiG9w0BAQUFADBlMQswCQYDVQQGEwJTRTEU
|
538 |
+
MBIGA1UEChMLQWRkVHJ1c3QgQUIxHTAbBgNVBAsTFEFkZFRydXN0IFRUUCBOZXR3
|
539 |
+
b3JrMSEwHwYDVQQDExhBZGRUcnVzdCBDbGFzcyAxIENBIFJvb3QwHhcNMDAwNTMw
|
540 |
+
MTAzODMxWhcNMjAwNTMwMTAzODMxWjBlMQswCQYDVQQGEwJTRTEUMBIGA1UEChML
|
541 |
+
QWRkVHJ1c3QgQUIxHTAbBgNVBAsTFEFkZFRydXN0IFRUUCBOZXR3b3JrMSEwHwYD
|
542 |
+
VQQDExhBZGRUcnVzdCBDbGFzcyAxIENBIFJvb3QwggEiMA0GCSqGSIb3DQEBAQUA
|
543 |
+
A4IBDwAwggEKAoIBAQCWltQhSWDia+hBBwzexODcEyPNwTXH+9ZOEQpnXvUGW2ul
|
544 |
+
CDtbKRY654eyNAbFvAWlA3yCyykQruGIgb3WntP+LVbBFc7jJp0VLhD7Bo8wBN6n
|
545 |
+
tGO0/7Gcrjyvd7ZWxbWroulpOj0OM3kyP3CCkplhbY0wCI9xP6ZIVxn4JdxLZlyl
|
546 |
+
dI+Yrsj5wAYi56xz36Uu+1LcsRVlIPo1Zmne3yzxbrww2ywkEtvrNTVokMsAsJch
|
547 |
+
PXQhI2U0K7t4WaPW4XY5mqRJjox0r26kmqPZm9I4XJuiGMx1I4S+6+JNM3GOGvDC
|
548 |
+
+Mcdoq0Dlyz4zyXG9rgkMbFjXZJ/Y/AlyVMuH79NAgMBAAGjgdIwgc8wHQYDVR0O
|
549 |
+
BBYEFJWxtPCUtr3H2tERCSG+wa9J/RB7MAsGA1UdDwQEAwIBBjAPBgNVHRMBAf8E
|
550 |
+
BTADAQH/MIGPBgNVHSMEgYcwgYSAFJWxtPCUtr3H2tERCSG+wa9J/RB7oWmkZzBl
|
551 |
+
MQswCQYDVQQGEwJTRTEUMBIGA1UEChMLQWRkVHJ1c3QgQUIxHTAbBgNVBAsTFEFk
|
552 |
+
ZFRydXN0IFRUUCBOZXR3b3JrMSEwHwYDVQQDExhBZGRUcnVzdCBDbGFzcyAxIENB
|
553 |
+
IFJvb3SCAQEwDQYJKoZIhvcNAQEFBQADggEBACxtZBsfzQ3duQH6lmM0MkhHma6X
|
554 |
+
7f1yFqZzR1r0693p9db7RcwpiURdv0Y5PejuvE1Uhh4dbOMXJ0PhiVYrqW9yTkkz
|
555 |
+
43J8KiOavD7/KCrto/8cI7pDVwlnTUtiBi34/2ydYB7YHEt9tTEv2dB8Xfjea4MY
|
556 |
+
eDdXL+gzB2ffHsdrKpV2ro9Xo/D0UrSpUwjP4E/TelOL/bscVjby/rK25Xa71SJl
|
557 |
+
pz/+0WatC7xrmYbvP33zGDLKe8bjq2RGlfgmadlVg3sslgf/WSxEo8bl6ancoWOA
|
558 |
+
WiFeIc9TVPC6b4nbqKqVz4vjccweGyBECMB6tkD9xOQ14R0WHNC8K47Wcdk=
|
559 |
+
-----END CERTIFICATE-----
|
560 |
+
|
561 |
+
# Issuer: CN=AddTrust External CA Root O=AddTrust AB OU=AddTrust External TTP Network
|
562 |
+
# Subject: CN=AddTrust External CA Root O=AddTrust AB OU=AddTrust External TTP Network
|
563 |
+
# Label: "AddTrust External Root"
|
564 |
+
# Serial: 1
|
565 |
+
# MD5 Fingerprint: 1d:35:54:04:85:78:b0:3f:42:42:4d:bf:20:73:0a:3f
|
566 |
+
# SHA1 Fingerprint: 02:fa:f3:e2:91:43:54:68:60:78:57:69:4d:f5:e4:5b:68:85:18:68
|
567 |
+
# SHA256 Fingerprint: 68:7f:a4:51:38:22:78:ff:f0:c8:b1:1f:8d:43:d5:76:67:1c:6e:b2:bc:ea:b4:13:fb:83:d9:65:d0:6d:2f:f2
|
568 |
+
-----BEGIN CERTIFICATE-----
|
569 |
+
MIIENjCCAx6gAwIBAgIBATANBgkqhkiG9w0BAQUFADBvMQswCQYDVQQGEwJTRTEU
|
570 |
+
MBIGA1UEChMLQWRkVHJ1c3QgQUIxJjAkBgNVBAsTHUFkZFRydXN0IEV4dGVybmFs
|
571 |
+
IFRUUCBOZXR3b3JrMSIwIAYDVQQDExlBZGRUcnVzdCBFeHRlcm5hbCBDQSBSb290
|
572 |
+
MB4XDTAwMDUzMDEwNDgzOFoXDTIwMDUzMDEwNDgzOFowbzELMAkGA1UEBhMCU0Ux
|
573 |
+
FDASBgNVBAoTC0FkZFRydXN0IEFCMSYwJAYDVQQLEx1BZGRUcnVzdCBFeHRlcm5h
|
574 |
+
bCBUVFAgTmV0d29yazEiMCAGA1UEAxMZQWRkVHJ1c3QgRXh0ZXJuYWwgQ0EgUm9v
|
575 |
+
dDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALf3GjPm8gAELTngTlvt
|
576 |
+
H7xsD821+iO2zt6bETOXpClMfZOfvUq8k+0DGuOPz+VtUFrWlymUWoCwSXrbLpX9
|
577 |
+
uMq/NzgtHj6RQa1wVsfwTz/oMp50ysiQVOnGXw94nZpAPA6sYapeFI+eh6FqUNzX
|
578 |
+
mk6vBbOmcZSccbNQYArHE504B4YCqOmoaSYYkKtMsE8jqzpPhNjfzp/haW+710LX
|
579 |
+
a0Tkx63ubUFfclpxCDezeWWkWaCUN/cALw3CknLa0Dhy2xSoRcRdKn23tNbE7qzN
|
580 |
+
E0S3ySvdQwAl+mG5aWpYIxG3pzOPVnVZ9c0p10a3CitlttNCbxWyuHv77+ldU9U0
|
581 |
+
WicCAwEAAaOB3DCB2TAdBgNVHQ4EFgQUrb2YejS0Jvf6xCZU7wO94CTLVBowCwYD
|
582 |
+
VR0PBAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wgZkGA1UdIwSBkTCBjoAUrb2YejS0
|
583 |
+
Jvf6xCZU7wO94CTLVBqhc6RxMG8xCzAJBgNVBAYTAlNFMRQwEgYDVQQKEwtBZGRU
|
584 |
+
cnVzdCBBQjEmMCQGA1UECxMdQWRkVHJ1c3QgRXh0ZXJuYWwgVFRQIE5ldHdvcmsx
|
585 |
+
IjAgBgNVBAMTGUFkZFRydXN0IEV4dGVybmFsIENBIFJvb3SCAQEwDQYJKoZIhvcN
|
586 |
+
AQEFBQADggEBALCb4IUlwtYj4g+WBpKdQZic2YR5gdkeWxQHIzZlj7DYd7usQWxH
|
587 |
+
YINRsPkyPef89iYTx4AWpb9a/IfPeHmJIZriTAcKhjW88t5RxNKWt9x+Tu5w/Rw5
|
588 |
+
6wwCURQtjr0W4MHfRnXnJK3s9EK0hZNwEGe6nQY1ShjTK3rMUUKhemPR5ruhxSvC
|
589 |
+
Nr4TDea9Y355e6cJDUCrat2PisP29owaQgVR1EX1n6diIWgVIEM8med8vSTYqZEX
|
590 |
+
c4g/VhsxOBi0cQ+azcgOno4uG+GMmIPLHzHxREzGBHNJdmAPx/i9F4BrLunMTA5a
|
591 |
+
mnkPIAou1Z5jJh5VkpTYghdae9C8x49OhgQ=
|
592 |
+
-----END CERTIFICATE-----
|
593 |
+
|
594 |
+
# Issuer: CN=AddTrust Public CA Root O=AddTrust AB OU=AddTrust TTP Network
|
595 |
+
# Subject: CN=AddTrust Public CA Root O=AddTrust AB OU=AddTrust TTP Network
|
596 |
+
# Label: "AddTrust Public Services Root"
|
597 |
+
# Serial: 1
|
598 |
+
# MD5 Fingerprint: c1:62:3e:23:c5:82:73:9c:03:59:4b:2b:e9:77:49:7f
|
599 |
+
# SHA1 Fingerprint: 2a:b6:28:48:5e:78:fb:f3:ad:9e:79:10:dd:6b:df:99:72:2c:96:e5
|
600 |
+
# SHA256 Fingerprint: 07:91:ca:07:49:b2:07:82:aa:d3:c7:d7:bd:0c:df:c9:48:58:35:84:3e:b2:d7:99:60:09:ce:43:ab:6c:69:27
|
601 |
+
-----BEGIN CERTIFICATE-----
|
602 |
+
MIIEFTCCAv2gAwIBAgIBATANBgkqhkiG9w0BAQUFADBkMQswCQYDVQQGEwJTRTEU
|
603 |
+
MBIGA1UEChMLQWRkVHJ1c3QgQUIxHTAbBgNVBAsTFEFkZFRydXN0IFRUUCBOZXR3
|
604 |
+
b3JrMSAwHgYDVQQDExdBZGRUcnVzdCBQdWJsaWMgQ0EgUm9vdDAeFw0wMDA1MzAx
|
605 |
+
MDQxNTBaFw0yMDA1MzAxMDQxNTBaMGQxCzAJBgNVBAYTAlNFMRQwEgYDVQQKEwtB
|
606 |
+
ZGRUcnVzdCBBQjEdMBsGA1UECxMUQWRkVHJ1c3QgVFRQIE5ldHdvcmsxIDAeBgNV
|
607 |
+
BAMTF0FkZFRydXN0IFB1YmxpYyBDQSBSb290MIIBIjANBgkqhkiG9w0BAQEFAAOC
|
608 |
+
AQ8AMIIBCgKCAQEA6Rowj4OIFMEg2Dybjxt+A3S72mnTRqX4jsIMEZBRpS9mVEBV
|
609 |
+
6tsfSlbunyNu9DnLoblv8n75XYcmYZ4c+OLspoH4IcUkzBEMP9smcnrHAZcHF/nX
|
610 |
+
GCwwfQ56HmIexkvA/X1id9NEHif2P0tEs7c42TkfYNVRknMDtABp4/MUTu7R3AnP
|
611 |
+
dzRGULD4EfL+OHn3Bzn+UZKXC1sIXzSGAa2Il+tmzV7R/9x98oTaunet3IAIx6eH
|
612 |
+
1lWfl2royBFkuucZKT8Rs3iQhCBSWxHveNCD9tVIkNAwHM+A+WD+eeSI8t0A65RF
|
613 |
+
62WUaUC6wNW0uLp9BBGo6zEFlpROWCGOn9Bg/QIDAQABo4HRMIHOMB0GA1UdDgQW
|
614 |
+
BBSBPjfYkrAfd59ctKtzquf2NGAv+jALBgNVHQ8EBAMCAQYwDwYDVR0TAQH/BAUw
|
615 |
+
AwEB/zCBjgYDVR0jBIGGMIGDgBSBPjfYkrAfd59ctKtzquf2NGAv+qFopGYwZDEL
|
616 |
+
MAkGA1UEBhMCU0UxFDASBgNVBAoTC0FkZFRydXN0IEFCMR0wGwYDVQQLExRBZGRU
|
617 |
+
cnVzdCBUVFAgTmV0d29yazEgMB4GA1UEAxMXQWRkVHJ1c3QgUHVibGljIENBIFJv
|
618 |
+
b3SCAQEwDQYJKoZIhvcNAQEFBQADggEBAAP3FUr4JNojVhaTdt02KLmuG7jD8WS6
|
619 |
+
IBh4lSknVwW8fCr0uVFV2ocC3g8WFzH4qnkuCRO7r7IgGRLlk/lL+YPoRNWyQSW/
|
620 |
+
iHVv/xD8SlTQX/D67zZzfRs2RcYhbbQVuE7PnFylPVoAjgbjPGsye/Kf8Lb93/Ao
|
621 |
+
GEjwxrzQvzSAlsJKsW2Ox5BF3i9nrEUEo3rcVZLJR2bYGozH7ZxOmuASu7VqTITh
|
622 |
+
4SINhwBk/ox9Yjllpu9CtoAlEmEBqCQTcAARJl/6NVDFSMwGR+gn2HCNX2TmoUQm
|
623 |
+
XiLsks3/QppEIW1cxeMiHV9HEufOX1362KqxMy3ZdvJOOjMMK7MtkAY=
|
624 |
+
-----END CERTIFICATE-----
|
625 |
+
|
626 |
+
# Issuer: CN=AddTrust Qualified CA Root O=AddTrust AB OU=AddTrust TTP Network
|
627 |
+
# Subject: CN=AddTrust Qualified CA Root O=AddTrust AB OU=AddTrust TTP Network
|
628 |
+
# Label: "AddTrust Qualified Certificates Root"
|
629 |
+
# Serial: 1
|
630 |
+
# MD5 Fingerprint: 27:ec:39:47:cd:da:5a:af:e2:9a:01:65:21:a9:4c:bb
|
631 |
+
# SHA1 Fingerprint: 4d:23:78:ec:91:95:39:b5:00:7f:75:8f:03:3b:21:1e:c5:4d:8b:cf
|
632 |
+
# SHA256 Fingerprint: 80:95:21:08:05:db:4b:bc:35:5e:44:28:d8:fd:6e:c2:cd:e3:ab:5f:b9:7a:99:42:98:8e:b8:f4:dc:d0:60:16
|
633 |
+
-----BEGIN CERTIFICATE-----
|
634 |
+
MIIEHjCCAwagAwIBAgIBATANBgkqhkiG9w0BAQUFADBnMQswCQYDVQQGEwJTRTEU
|
635 |
+
MBIGA1UEChMLQWRkVHJ1c3QgQUIxHTAbBgNVBAsTFEFkZFRydXN0IFRUUCBOZXR3
|
636 |
+
b3JrMSMwIQYDVQQDExpBZGRUcnVzdCBRdWFsaWZpZWQgQ0EgUm9vdDAeFw0wMDA1
|
637 |
+
MzAxMDQ0NTBaFw0yMDA1MzAxMDQ0NTBaMGcxCzAJBgNVBAYTAlNFMRQwEgYDVQQK
|
638 |
+
EwtBZGRUcnVzdCBBQjEdMBsGA1UECxMUQWRkVHJ1c3QgVFRQIE5ldHdvcmsxIzAh
|
639 |
+
BgNVBAMTGkFkZFRydXN0IFF1YWxpZmllZCBDQSBSb290MIIBIjANBgkqhkiG9w0B
|
640 |
+
AQEFAAOCAQ8AMIIBCgKCAQEA5B6a/twJWoekn0e+EV+vhDTbYjx5eLfpMLXsDBwq
|
641 |
+
xBb/4Oxx64r1EW7tTw2R0hIYLUkVAcKkIhPHEWT/IhKauY5cLwjPcWqzZwFZ8V1G
|
642 |
+
87B4pfYOQnrjfxvM0PC3KP0q6p6zsLkEqv32x7SxuCqg+1jxGaBvcCV+PmlKfw8i
|
643 |
+
2O+tCBGaKZnhqkRFmhJePp1tUvznoD1oL/BLcHwTOK28FSXx1s6rosAx1i+f4P8U
|
644 |
+
WfyEk9mHfExUE+uf0S0R+Bg6Ot4l2ffTQO2kBhLEO+GRwVY18BTcZTYJbqukB8c1
|
645 |
+
0cIDMzZbdSZtQvESa0NvS3GU+jQd7RNuyoB/mC9suWXY6QIDAQABo4HUMIHRMB0G
|
646 |
+
A1UdDgQWBBQ5lYtii1zJ1IC6WA+XPxUIQ8yYpzALBgNVHQ8EBAMCAQYwDwYDVR0T
|
647 |
+
AQH/BAUwAwEB/zCBkQYDVR0jBIGJMIGGgBQ5lYtii1zJ1IC6WA+XPxUIQ8yYp6Fr
|
648 |
+
pGkwZzELMAkGA1UEBhMCU0UxFDASBgNVBAoTC0FkZFRydXN0IEFCMR0wGwYDVQQL
|
649 |
+
ExRBZGRUcnVzdCBUVFAgTmV0d29yazEjMCEGA1UEAxMaQWRkVHJ1c3QgUXVhbGlm
|
650 |
+
aWVkIENBIFJvb3SCAQEwDQYJKoZIhvcNAQEFBQADggEBABmrder4i2VhlRO6aQTv
|
651 |
+
hsoToMeqT2QbPxj2qC0sVY8FtzDqQmodwCVRLae/DLPt7wh/bDxGGuoYQ992zPlm
|
652 |
+
hpwsaPXpF/gxsxjE1kh9I0xowX67ARRvxdlu3rsEQmr49lx95dr6h+sNNVJn0J6X
|
653 |
+
dgWTP5XHAeZpVTh/EGGZyeNfpso+gmNIquIISD6q8rKFYqa0p9m9N5xotS1WfbC3
|
654 |
+
P6CxB9bpT9zeRXEwMn8bLgn5v1Kh7sKAPgZcLlVAwRv1cEWw3F369nJad9Jjzc9Y
|
655 |
+
iQBCYz95OdBEsIJuQRno3eDBiFrRHnGTHyQwdOUeqN48Jzd/g66ed8/wMLH/S5no
|
656 |
+
xqE=
|
657 |
+
-----END CERTIFICATE-----
|
658 |
+
|
659 |
+
# Issuer: CN=Entrust Root Certification Authority O=Entrust, Inc. OU=www.entrust.net/CPS is incorporated by reference/(c) 2006 Entrust, Inc.
|
660 |
+
# Subject: CN=Entrust Root Certification Authority O=Entrust, Inc. OU=www.entrust.net/CPS is incorporated by reference/(c) 2006 Entrust, Inc.
|
661 |
+
# Label: "Entrust Root Certification Authority"
|
662 |
+
# Serial: 1164660820
|
663 |
+
# MD5 Fingerprint: d6:a5:c3:ed:5d:dd:3e:00:c1:3d:87:92:1f:1d:3f:e4
|
664 |
+
# SHA1 Fingerprint: b3:1e:b1:b7:40:e3:6c:84:02:da:dc:37:d4:4d:f5:d4:67:49:52:f9
|
665 |
+
# SHA256 Fingerprint: 73:c1:76:43:4f:1b:c6:d5:ad:f4:5b:0e:76:e7:27:28:7c:8d:e5:76:16:c1:e6:e6:14:1a:2b:2c:bc:7d:8e:4c
|
666 |
+
-----BEGIN CERTIFICATE-----
|
667 |
+
MIIEkTCCA3mgAwIBAgIERWtQVDANBgkqhkiG9w0BAQUFADCBsDELMAkGA1UEBhMC
|
668 |
+
VVMxFjAUBgNVBAoTDUVudHJ1c3QsIEluYy4xOTA3BgNVBAsTMHd3dy5lbnRydXN0
|
669 |
+
Lm5ldC9DUFMgaXMgaW5jb3Jwb3JhdGVkIGJ5IHJlZmVyZW5jZTEfMB0GA1UECxMW
|
670 |
+
KGMpIDIwMDYgRW50cnVzdCwgSW5jLjEtMCsGA1UEAxMkRW50cnVzdCBSb290IENl
|
671 |
+
cnRpZmljYXRpb24gQXV0aG9yaXR5MB4XDTA2MTEyNzIwMjM0MloXDTI2MTEyNzIw
|
672 |
+
NTM0MlowgbAxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1FbnRydXN0LCBJbmMuMTkw
|
673 |
+
NwYDVQQLEzB3d3cuZW50cnVzdC5uZXQvQ1BTIGlzIGluY29ycG9yYXRlZCBieSBy
|
674 |
+
ZWZlcmVuY2UxHzAdBgNVBAsTFihjKSAyMDA2IEVudHJ1c3QsIEluYy4xLTArBgNV
|
675 |
+
BAMTJEVudHJ1c3QgUm9vdCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTCCASIwDQYJ
|
676 |
+
KoZIhvcNAQEBBQADggEPADCCAQoCggEBALaVtkNC+sZtKm9I35RMOVcF7sN5EUFo
|
677 |
+
Nu3s/poBj6E4KPz3EEZmLk0eGrEaTsbRwJWIsMn/MYszA9u3g3s+IIRe7bJWKKf4
|
678 |
+
4LlAcTfFy0cOlypowCKVYhXbR9n10Cv/gkvJrT7eTNuQgFA/CYqEAOwwCj0Yzfv9
|
679 |
+
KlmaI5UXLEWeH25DeW0MXJj+SKfFI0dcXv1u5x609mhF0YaDW6KKjbHjKYD+JXGI
|
680 |
+
rb68j6xSlkuqUY3kEzEZ6E5Nn9uss2rVvDlUccp6en+Q3X0dgNmBu1kmwhH+5pPi
|
681 |
+
94DkZfs0Nw4pgHBNrziGLp5/V6+eF67rHMsoIV+2HNjnogQi+dPa2MsCAwEAAaOB
|
682 |
+
sDCBrTAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zArBgNVHRAEJDAi
|
683 |
+
gA8yMDA2MTEyNzIwMjM0MlqBDzIwMjYxMTI3MjA1MzQyWjAfBgNVHSMEGDAWgBRo
|
684 |
+
kORnpKZTgMeGZqTx90tD+4S9bTAdBgNVHQ4EFgQUaJDkZ6SmU4DHhmak8fdLQ/uE
|
685 |
+
vW0wHQYJKoZIhvZ9B0EABBAwDhsIVjcuMTo0LjADAgSQMA0GCSqGSIb3DQEBBQUA
|
686 |
+
A4IBAQCT1DCw1wMgKtD5Y+iRDAUgqV8ZyntyTtSx29CW+1RaGSwMCPeyvIWonX9t
|
687 |
+
O1KzKtvn1ISMY/YPyyYBkVBs9F8U4pN0wBOeMDpQ47RgxRzwIkSNcUesyBrJ6Zua
|
688 |
+
AGAT/3B+XxFNSRuzFVJ7yVTav52Vr2ua2J7p8eRDjeIRRDq/r72DQnNSi6q7pynP
|
689 |
+
9WQcCk3RvKqsnyrQ/39/2n3qse0wJcGE2jTSW3iDVuycNsMm4hH2Z0kdkquM++v/
|
690 |
+
eu6FSqdQgPCnXEqULl8FmTxSQeDNtGPPAUO6nIPcj2A781q0tHuu2guQOHXvgR1m
|
691 |
+
0vdXcDazv/wor3ElhVsT/h5/WrQ8
|
692 |
+
-----END CERTIFICATE-----
|
693 |
+
|
694 |
+
# Issuer: CN=GeoTrust Global CA O=GeoTrust Inc.
|
695 |
+
# Subject: CN=GeoTrust Global CA O=GeoTrust Inc.
|
696 |
+
# Label: "GeoTrust Global CA"
|
697 |
+
# Serial: 144470
|
698 |
+
# MD5 Fingerprint: f7:75:ab:29:fb:51:4e:b7:77:5e:ff:05:3c:99:8e:f5
|
699 |
+
# SHA1 Fingerprint: de:28:f4:a4:ff:e5:b9:2f:a3:c5:03:d1:a3:49:a7:f9:96:2a:82:12
|
700 |
+
# SHA256 Fingerprint: ff:85:6a:2d:25:1d:cd:88:d3:66:56:f4:50:12:67:98:cf:ab:aa:de:40:79:9c:72:2d:e4:d2:b5:db:36:a7:3a
|
701 |
+
-----BEGIN CERTIFICATE-----
|
702 |
+
MIIDVDCCAjygAwIBAgIDAjRWMA0GCSqGSIb3DQEBBQUAMEIxCzAJBgNVBAYTAlVT
|
703 |
+
MRYwFAYDVQQKEw1HZW9UcnVzdCBJbmMuMRswGQYDVQQDExJHZW9UcnVzdCBHbG9i
|
704 |
+
YWwgQ0EwHhcNMDIwNTIxMDQwMDAwWhcNMjIwNTIxMDQwMDAwWjBCMQswCQYDVQQG
|
705 |
+
EwJVUzEWMBQGA1UEChMNR2VvVHJ1c3QgSW5jLjEbMBkGA1UEAxMSR2VvVHJ1c3Qg
|
706 |
+
R2xvYmFsIENBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA2swYYzD9
|
707 |
+
9BcjGlZ+W988bDjkcbd4kdS8odhM+KhDtgPpTSEHCIjaWC9mOSm9BXiLnTjoBbdq
|
708 |
+
fnGk5sRgprDvgOSJKA+eJdbtg/OtppHHmMlCGDUUna2YRpIuT8rxh0PBFpVXLVDv
|
709 |
+
iS2Aelet8u5fa9IAjbkU+BQVNdnARqN7csiRv8lVK83Qlz6cJmTM386DGXHKTubU
|
710 |
+
1XupGc1V3sjs0l44U+VcT4wt/lAjNvxm5suOpDkZALeVAjmRCw7+OC7RHQWa9k0+
|
711 |
+
bw8HHa8sHo9gOeL6NlMTOdReJivbPagUvTLrGAMoUgRx5aszPeE4uwc2hGKceeoW
|
712 |
+
MPRfwCvocWvk+QIDAQABo1MwUTAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBTA
|
713 |
+
ephojYn7qwVkDBF9qn1luMrMTjAfBgNVHSMEGDAWgBTAephojYn7qwVkDBF9qn1l
|
714 |
+
uMrMTjANBgkqhkiG9w0BAQUFAAOCAQEANeMpauUvXVSOKVCUn5kaFOSPeCpilKIn
|
715 |
+
Z57QzxpeR+nBsqTP3UEaBU6bS+5Kb1VSsyShNwrrZHYqLizz/Tt1kL/6cdjHPTfS
|
716 |
+
tQWVYrmm3ok9Nns4d0iXrKYgjy6myQzCsplFAMfOEVEiIuCl6rYVSAlk6l5PdPcF
|
717 |
+
PseKUgzbFbS9bZvlxrFUaKnjaZC2mqUPuLk/IH2uSrW4nOQdtqvmlKXBx4Ot2/Un
|
718 |
+
hw4EbNX/3aBd7YdStysVAq45pmp06drE57xNNB6pXE0zX5IJL4hmXXeXxx12E6nV
|
719 |
+
5fEWCRE11azbJHFwLJhWC9kXtNHjUStedejV0NxPNO3CBWaAocvmMw==
|
720 |
+
-----END CERTIFICATE-----
|
721 |
+
|
722 |
+
# Issuer: CN=GeoTrust Global CA 2 O=GeoTrust Inc.
|
723 |
+
# Subject: CN=GeoTrust Global CA 2 O=GeoTrust Inc.
|
724 |
+
# Label: "GeoTrust Global CA 2"
|
725 |
+
# Serial: 1
|
726 |
+
# MD5 Fingerprint: 0e:40:a7:6c:de:03:5d:8f:d1:0f:e4:d1:8d:f9:6c:a9
|
727 |
+
# SHA1 Fingerprint: a9:e9:78:08:14:37:58:88:f2:05:19:b0:6d:2b:0d:2b:60:16:90:7d
|
728 |
+
# SHA256 Fingerprint: ca:2d:82:a0:86:77:07:2f:8a:b6:76:4f:f0:35:67:6c:fe:3e:5e:32:5e:01:21:72:df:3f:92:09:6d:b7:9b:85
|
729 |
+
-----BEGIN CERTIFICATE-----
|
730 |
+
MIIDZjCCAk6gAwIBAgIBATANBgkqhkiG9w0BAQUFADBEMQswCQYDVQQGEwJVUzEW
|
731 |
+
MBQGA1UEChMNR2VvVHJ1c3QgSW5jLjEdMBsGA1UEAxMUR2VvVHJ1c3QgR2xvYmFs
|
732 |
+
IENBIDIwHhcNMDQwMzA0MDUwMDAwWhcNMTkwMzA0MDUwMDAwWjBEMQswCQYDVQQG
|
733 |
+
EwJVUzEWMBQGA1UEChMNR2VvVHJ1c3QgSW5jLjEdMBsGA1UEAxMUR2VvVHJ1c3Qg
|
734 |
+
R2xvYmFsIENBIDIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDvPE1A
|
735 |
+
PRDfO1MA4Wf+lGAVPoWI8YkNkMgoI5kF6CsgncbzYEbYwbLVjDHZ3CB5JIG/NTL8
|
736 |
+
Y2nbsSpr7iFY8gjpeMtvy/wWUsiRxP89c96xPqfCfWbB9X5SJBri1WeR0IIQ13hL
|
737 |
+
TytCOb1kLUCgsBDTOEhGiKEMuzozKmKY+wCdE1l/bztyqu6mD4b5BWHqZ38MN5aL
|
738 |
+
5mkWRxHCJ1kDs6ZgwiFAVvqgx306E+PsV8ez1q6diYD3Aecs9pYrEw15LNnA5IZ7
|
739 |
+
S4wMcoKK+xfNAGw6EzywhIdLFnopsk/bHdQL82Y3vdj2V7teJHq4PIu5+pIaGoSe
|
740 |
+
2HSPqht/XvT+RSIhAgMBAAGjYzBhMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYE
|
741 |
+
FHE4NvICMVNHK266ZUapEBVYIAUJMB8GA1UdIwQYMBaAFHE4NvICMVNHK266ZUap
|
742 |
+
EBVYIAUJMA4GA1UdDwEB/wQEAwIBhjANBgkqhkiG9w0BAQUFAAOCAQEAA/e1K6td
|
743 |
+
EPx7srJerJsOflN4WT5CBP51o62sgU7XAotexC3IUnbHLB/8gTKY0UvGkpMzNTEv
|
744 |
+
/NgdRN3ggX+d6YvhZJFiCzkIjKx0nVnZellSlxG5FntvRdOW2TF9AjYPnDtuzywN
|
745 |
+
A0ZF66D0f0hExghAzN4bcLUprbqLOzRldRtxIR0sFAqwlpW41uryZfspuk/qkZN0
|
746 |
+
abby/+Ea0AzRdoXLiiW9l14sbxWZJue2Kf8i7MkCx1YAzUm5s2x7UwQa4qjJqhIF
|
747 |
+
I8LO57sEAszAR6LkxCkvW0VXiVHuPOtSCP8HNR6fNWpHSlaY0VqFH4z1Ir+rzoPz
|
748 |
+
4iIprn2DQKi6bA==
|
749 |
+
-----END CERTIFICATE-----
|
750 |
+
|
751 |
+
# Issuer: CN=GeoTrust Universal CA O=GeoTrust Inc.
|
752 |
+
# Subject: CN=GeoTrust Universal CA O=GeoTrust Inc.
|
753 |
+
# Label: "GeoTrust Universal CA"
|
754 |
+
# Serial: 1
|
755 |
+
# MD5 Fingerprint: 92:65:58:8b:a2:1a:31:72:73:68:5c:b4:a5:7a:07:48
|
756 |
+
# SHA1 Fingerprint: e6:21:f3:35:43:79:05:9a:4b:68:30:9d:8a:2f:74:22:15:87:ec:79
|
757 |
+
# SHA256 Fingerprint: a0:45:9b:9f:63:b2:25:59:f5:fa:5d:4c:6d:b3:f9:f7:2f:f1:93:42:03:35:78:f0:73:bf:1d:1b:46:cb:b9:12
|
758 |
+
-----BEGIN CERTIFICATE-----
|
759 |
+
MIIFaDCCA1CgAwIBAgIBATANBgkqhkiG9w0BAQUFADBFMQswCQYDVQQGEwJVUzEW
|
760 |
+
MBQGA1UEChMNR2VvVHJ1c3QgSW5jLjEeMBwGA1UEAxMVR2VvVHJ1c3QgVW5pdmVy
|
761 |
+
c2FsIENBMB4XDTA0MDMwNDA1MDAwMFoXDTI5MDMwNDA1MDAwMFowRTELMAkGA1UE
|
762 |
+
BhMCVVMxFjAUBgNVBAoTDUdlb1RydXN0IEluYy4xHjAcBgNVBAMTFUdlb1RydXN0
|
763 |
+
IFVuaXZlcnNhbCBDQTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAKYV
|
764 |
+
VaCjxuAfjJ0hUNfBvitbtaSeodlyWL0AG0y/YckUHUWCq8YdgNY96xCcOq9tJPi8
|
765 |
+
cQGeBvV8Xx7BDlXKg5pZMK4ZyzBIle0iN430SppyZj6tlcDgFgDgEB8rMQ7XlFTT
|
766 |
+
QjOgNB0eRXbdT8oYN+yFFXoZCPzVx5zw8qkuEKmS5j1YPakWaDwvdSEYfyh3peFh
|
767 |
+
F7em6fgemdtzbvQKoiFs7tqqhZJmr/Z6a4LauiIINQ/PQvE1+mrufislzDoR5G2v
|
768 |
+
c7J2Ha3QsnhnGqQ5HFELZ1aD/ThdDc7d8Lsrlh/eezJS/R27tQahsiFepdaVaH/w
|
769 |
+
mZ7cRQg+59IJDTWU3YBOU5fXtQlEIGQWFwMCTFMNaN7VqnJNk22CDtucvc+081xd
|
770 |
+
VHppCZbW2xHBjXWotM85yM48vCR85mLK4b19p71XZQvk/iXttmkQ3CgaRr0BHdCX
|
771 |
+
teGYO8A3ZNY9lO4L4fUorgtWv3GLIylBjobFS1J72HGrH4oVpjuDWtdYAVHGTEHZ
|
772 |
+
f9hBZ3KiKN9gg6meyHv8U3NyWfWTehd2Ds735VzZC1U0oqpbtWpU5xPKV+yXbfRe
|
773 |
+
Bi9Fi1jUIxaS5BZuKGNZMN9QAZxjiRqf2xeUgnA3wySemkfWWspOqGmJch+RbNt+
|
774 |
+
nhutxx9z3SxPGWX9f5NAEC7S8O08ni4oPmkmM8V7AgMBAAGjYzBhMA8GA1UdEwEB
|
775 |
+
/wQFMAMBAf8wHQYDVR0OBBYEFNq7LqqwDLiIJlF0XG0D08DYj3rWMB8GA1UdIwQY
|
776 |
+
MBaAFNq7LqqwDLiIJlF0XG0D08DYj3rWMA4GA1UdDwEB/wQEAwIBhjANBgkqhkiG
|
777 |
+
9w0BAQUFAAOCAgEAMXjmx7XfuJRAyXHEqDXsRh3ChfMoWIawC/yOsjmPRFWrZIRc
|
778 |
+
aanQmjg8+uUfNeVE44B5lGiku8SfPeE0zTBGi1QrlaXv9z+ZhP015s8xxtxqv6fX
|
779 |
+
IwjhmF7DWgh2qaavdy+3YL1ERmrvl/9zlcGO6JP7/TG37FcREUWbMPEaiDnBTzyn
|
780 |
+
ANXH/KttgCJwpQzgXQQpAvvLoJHRfNbDflDVnVi+QTjruXU8FdmbyUqDWcDaU/0z
|
781 |
+
uzYYm4UPFd3uLax2k7nZAY1IEKj79TiG8dsKxr2EoyNB3tZ3b4XUhRxQ4K5RirqN
|
782 |
+
Pnbiucon8l+f725ZDQbYKxek0nxru18UGkiPGkzns0ccjkxFKyDuSN/n3QmOGKja
|
783 |
+
QI2SJhFTYXNd673nxE0pN2HrrDktZy4W1vUAg4WhzH92xH3kt0tm7wNFYGm2DFKW
|
784 |
+
koRepqO1pD4r2czYG0eq8kTaT/kD6PAUyz/zg97QwVTjt+gKN02LIFkDMBmhLMi9
|
785 |
+
ER/frslKxfMnZmaGrGiR/9nmUxwPi1xpZQomyB40w11Re9epnAahNt3ViZS82eQt
|
786 |
+
DF4JbAiXfKM9fJP/P6EUp8+1Xevb2xzEdt+Iub1FBZUbrvxGakyvSOPOrg/Sfuvm
|
787 |
+
bJxPgWp6ZKy7PtXny3YuxadIwVyQD8vIP/rmMuGNG2+k5o7Y+SlIis5z/iw=
|
788 |
+
-----END CERTIFICATE-----
|
789 |
+
|
790 |
+
# Issuer: CN=GeoTrust Universal CA 2 O=GeoTrust Inc.
|
791 |
+
# Subject: CN=GeoTrust Universal CA 2 O=GeoTrust Inc.
|
792 |
+
# Label: "GeoTrust Universal CA 2"
|
793 |
+
# Serial: 1
|
794 |
+
# MD5 Fingerprint: 34:fc:b8:d0:36:db:9e:14:b3:c2:f2:db:8f:e4:94:c7
|
795 |
+
# SHA1 Fingerprint: 37:9a:19:7b:41:85:45:35:0c:a6:03:69:f3:3c:2e:af:47:4f:20:79
|
796 |
+
# SHA256 Fingerprint: a0:23:4f:3b:c8:52:7c:a5:62:8e:ec:81:ad:5d:69:89:5d:a5:68:0d:c9:1d:1c:b8:47:7f:33:f8:78:b9:5b:0b
|
797 |
+
-----BEGIN CERTIFICATE-----
|
798 |
+
MIIFbDCCA1SgAwIBAgIBATANBgkqhkiG9w0BAQUFADBHMQswCQYDVQQGEwJVUzEW
|
799 |
+
MBQGA1UEChMNR2VvVHJ1c3QgSW5jLjEgMB4GA1UEAxMXR2VvVHJ1c3QgVW5pdmVy
|
800 |
+
c2FsIENBIDIwHhcNMDQwMzA0MDUwMDAwWhcNMjkwMzA0MDUwMDAwWjBHMQswCQYD
|
801 |
+
VQQGEwJVUzEWMBQGA1UEChMNR2VvVHJ1c3QgSW5jLjEgMB4GA1UEAxMXR2VvVHJ1
|
802 |
+
c3QgVW5pdmVyc2FsIENBIDIwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoIC
|
803 |
+
AQCzVFLByT7y2dyxUxpZKeexw0Uo5dfR7cXFS6GqdHtXr0om/Nj1XqduGdt0DE81
|
804 |
+
WzILAePb63p3NeqqWuDW6KFXlPCQo3RWlEQwAx5cTiuFJnSCegx2oG9NzkEtoBUG
|
805 |
+
FF+3Qs17j1hhNNwqCPkuwwGmIkQcTAeC5lvO0Ep8BNMZcyfwqph/Lq9O64ceJHdq
|
806 |
+
XbboW0W63MOhBW9Wjo8QJqVJwy7XQYci4E+GymC16qFjwAGXEHm9ADwSbSsVsaxL
|
807 |
+
se4YuU6W3Nx2/zu+z18DwPw76L5GG//aQMJS9/7jOvdqdzXQ2o3rXhhqMcceujwb
|
808 |
+
KNZrVMaqW9eiLBsZzKIC9ptZvTdrhrVtgrrY6slWvKk2WP0+GfPtDCapkzj4T8Fd
|
809 |
+
IgbQl+rhrcZV4IErKIM6+vR7IVEAvlI4zs1meaj0gVbi0IMJR1FbUGrP20gaXT73
|
810 |
+
y/Zl92zxlfgCOzJWgjl6W70viRu/obTo/3+NjN8D8WBOWBFM66M/ECuDmgFz2ZRt
|
811 |
+
hAAnZqzwcEAJQpKtT5MNYQlRJNiS1QuUYbKHsu3/mjX/hVTK7URDrBs8FmtISgoc
|
812 |
+
QIgfksILAAX/8sgCSqSqqcyZlpwvWOB94b67B9xfBHJcMTTD7F8t4D1kkCLm0ey4
|
813 |
+
Lt1ZrtmhN79UNdxzMk+MBB4zsslG8dhcyFVQyWi9qLo2CQIDAQABo2MwYTAPBgNV
|
814 |
+
HRMBAf8EBTADAQH/MB0GA1UdDgQWBBR281Xh+qQ2+/CfXGJx7Tz0RzgQKzAfBgNV
|
815 |
+
HSMEGDAWgBR281Xh+qQ2+/CfXGJx7Tz0RzgQKzAOBgNVHQ8BAf8EBAMCAYYwDQYJ
|
816 |
+
KoZIhvcNAQEFBQADggIBAGbBxiPz2eAubl/oz66wsCVNK/g7WJtAJDday6sWSf+z
|
817 |
+
dXkzoS9tcBc0kf5nfo/sm+VegqlVHy/c1FEHEv6sFj4sNcZj/NwQ6w2jqtB8zNHQ
|
818 |
+
L1EuxBRa3ugZ4T7GzKQp5y6EqgYweHZUcyiYWTjgAA1i00J9IZ+uPTqM1fp3DRgr
|
819 |
+
Fg5fNuH8KrUwJM/gYwx7WBr+mbpCErGR9Hxo4sjoryzqyX6uuyo9DRXcNJW2GHSo
|
820 |
+
ag/HtPQTxORb7QrSpJdMKu0vbBKJPfEncKpqA1Ihn0CoZ1Dy81of398j9tx4TuaY
|
821 |
+
T1U6U+Pv8vSfx3zYWK8pIpe44L2RLrB27FcRz+8pRPPphXpgY+RdM4kX2TGq2tbz
|
822 |
+
GDVyz4crL2MjhF2EjD9XoIj8mZEoJmmZ1I+XRL6O1UixpCgp8RW04eWe3fiPpm8m
|
823 |
+
1wk8OhwRDqZsN/etRIcsKMfYdIKz0G9KV7s1KSegi+ghp4dkNl3M2Basx7InQJJV
|
824 |
+
OCiNUW7dFGdTbHFcJoRNdVq2fmBWqU2t+5sel/MN2dKXVHfaPRK34B7vCAas+YWH
|
825 |
+
6aLcr34YEoP9VhdBLtUpgn2Z9DH2canPLAEnpQW5qrJITirvn5NSUZU8UnOOVkwX
|
826 |
+
QMAJKOSLakhT2+zNVVXxxvjpoixMptEmX36vWkzaH6byHCx+rgIW0lbQL1dTR+iS
|
827 |
+
-----END CERTIFICATE-----
|
828 |
+
|
829 |
+
# Issuer: CN=America Online Root Certification Authority 1 O=America Online Inc.
|
830 |
+
# Subject: CN=America Online Root Certification Authority 1 O=America Online Inc.
|
831 |
+
# Label: "America Online Root Certification Authority 1"
|
832 |
+
# Serial: 1
|
833 |
+
# MD5 Fingerprint: 14:f1:08:ad:9d:fa:64:e2:89:e7:1c:cf:a8:ad:7d:5e
|
834 |
+
# SHA1 Fingerprint: 39:21:c1:15:c1:5d:0e:ca:5c:cb:5b:c4:f0:7d:21:d8:05:0b:56:6a
|
835 |
+
# SHA256 Fingerprint: 77:40:73:12:c6:3a:15:3d:5b:c0:0b:4e:51:75:9c:df:da:c2:37:dc:2a:33:b6:79:46:e9:8e:9b:fa:68:0a:e3
|
836 |
+
-----BEGIN CERTIFICATE-----
|
837 |
+
MIIDpDCCAoygAwIBAgIBATANBgkqhkiG9w0BAQUFADBjMQswCQYDVQQGEwJVUzEc
|
838 |
+
MBoGA1UEChMTQW1lcmljYSBPbmxpbmUgSW5jLjE2MDQGA1UEAxMtQW1lcmljYSBP
|
839 |
+
bmxpbmUgUm9vdCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSAxMB4XDTAyMDUyODA2
|
840 |
+
MDAwMFoXDTM3MTExOTIwNDMwMFowYzELMAkGA1UEBhMCVVMxHDAaBgNVBAoTE0Ft
|
841 |
+
ZXJpY2EgT25saW5lIEluYy4xNjA0BgNVBAMTLUFtZXJpY2EgT25saW5lIFJvb3Qg
|
842 |
+
Q2VydGlmaWNhdGlvbiBBdXRob3JpdHkgMTCCASIwDQYJKoZIhvcNAQEBBQADggEP
|
843 |
+
ADCCAQoCggEBAKgv6KRpBgNHw+kqmP8ZonCaxlCyfqXfaE0bfA+2l2h9LaaLl+lk
|
844 |
+
hsmj76CGv2BlnEtUiMJIxUo5vxTjWVXlGbR0yLQFOVwWpeKVBeASrlmLojNoWBym
|
845 |
+
1BW32J/X3HGrfpq/m44zDyL9Hy7nBzbvYjnF3cu6JRQj3gzGPTzOggjmZj7aUTsW
|
846 |
+
OqMFf6Dch9Wc/HKpoH145LcxVR5lu9RhsCFg7RAycsWSJR74kEoYeEfffjA3PlAb
|
847 |
+
2xzTa5qGUwew76wGePiEmf4hjUyAtgyC9mZweRrTT6PP8c9GsEsPPt2IYriMqQko
|
848 |
+
O3rHl+Ee5fSfwMCuJKDIodkP1nsmgmkyPacCAwEAAaNjMGEwDwYDVR0TAQH/BAUw
|
849 |
+
AwEB/zAdBgNVHQ4EFgQUAK3Zo/Z59m50qX8zPYEX10zPM94wHwYDVR0jBBgwFoAU
|
850 |
+
AK3Zo/Z59m50qX8zPYEX10zPM94wDgYDVR0PAQH/BAQDAgGGMA0GCSqGSIb3DQEB
|
851 |
+
BQUAA4IBAQB8itEfGDeC4Liwo+1WlchiYZwFos3CYiZhzRAW18y0ZTTQEYqtqKkF
|
852 |
+
Zu90821fnZmv9ov761KyBZiibyrFVL0lvV+uyIbqRizBs73B6UlwGBaXCBOMIOAb
|
853 |
+
LjpHyx7kADCVW/RFo8AasAFOq73AI25jP4BKxQft3OJvx8Fi8eNy1gTIdGcL+oir
|
854 |
+
oQHIb/AUr9KZzVGTfu0uOMe9zkZQPXLjeSWdm4grECDdpbgyn43gKd8hdIaC2y+C
|
855 |
+
MMbHNYaz+ZZfRtsMRf3zUMNvxsNIrUam4SdHCh0Om7bCd39j8uB9Gr784N/Xx6ds
|
856 |
+
sPmuujz9dLQR6FgNgLzTqIA6me11zEZ7
|
857 |
+
-----END CERTIFICATE-----
|
858 |
+
|
859 |
+
# Issuer: CN=America Online Root Certification Authority 2 O=America Online Inc.
|
860 |
+
# Subject: CN=America Online Root Certification Authority 2 O=America Online Inc.
|
861 |
+
# Label: "America Online Root Certification Authority 2"
|
862 |
+
# Serial: 1
|
863 |
+
# MD5 Fingerprint: d6:ed:3c:ca:e2:66:0f:af:10:43:0d:77:9b:04:09:bf
|
864 |
+
# SHA1 Fingerprint: 85:b5:ff:67:9b:0c:79:96:1f:c8:6e:44:22:00:46:13:db:17:92:84
|
865 |
+
# SHA256 Fingerprint: 7d:3b:46:5a:60:14:e5:26:c0:af:fc:ee:21:27:d2:31:17:27:ad:81:1c:26:84:2d:00:6a:f3:73:06:cc:80:bd
|
866 |
+
-----BEGIN CERTIFICATE-----
|
867 |
+
MIIFpDCCA4ygAwIBAgIBATANBgkqhkiG9w0BAQUFADBjMQswCQYDVQQGEwJVUzEc
|
868 |
+
MBoGA1UEChMTQW1lcmljYSBPbmxpbmUgSW5jLjE2MDQGA1UEAxMtQW1lcmljYSBP
|
869 |
+
bmxpbmUgUm9vdCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSAyMB4XDTAyMDUyODA2
|
870 |
+
MDAwMFoXDTM3MDkyOTE0MDgwMFowYzELMAkGA1UEBhMCVVMxHDAaBgNVBAoTE0Ft
|
871 |
+
ZXJpY2EgT25saW5lIEluYy4xNjA0BgNVBAMTLUFtZXJpY2EgT25saW5lIFJvb3Qg
|
872 |
+
Q2VydGlmaWNhdGlvbiBBdXRob3JpdHkgMjCCAiIwDQYJKoZIhvcNAQEBBQADggIP
|
873 |
+
ADCCAgoCggIBAMxBRR3pPU0Q9oyxQcngXssNt79Hc9PwVU3dxgz6sWYFas14tNwC
|
874 |
+
206B89enfHG8dWOgXeMHDEjsJcQDIPT/DjsS/5uN4cbVG7RtIuOx238hZK+GvFci
|
875 |
+
KtZHgVdEglZTvYYUAQv8f3SkWq7xuhG1m1hagLQ3eAkzfDJHA1zEpYNI9FdWboE2
|
876 |
+
JxhP7JsowtS013wMPgwr38oE18aO6lhOqKSlGBxsRZijQdEt0sdtjRnxrXm3gT+9
|
877 |
+
BoInLRBYBbV4Bbkv2wxrkJB+FFk4u5QkE+XRnRTf04JNRvCAOVIyD+OEsnpD8l7e
|
878 |
+
Xz8d3eOyG6ChKiMDbi4BFYdcpnV1x5dhvt6G3NRI270qv0pV2uh9UPu0gBe4lL8B
|
879 |
+
PeraunzgWGcXuVjgiIZGZ2ydEEdYMtA1fHkqkKJaEBEjNa0vzORKW6fIJ/KD3l67
|
880 |
+
Xnfn6KVuY8INXWHQjNJsWiEOyiijzirplcdIz5ZvHZIlyMbGwcEMBawmxNJ10uEq
|
881 |
+
Z8A9W6Wa6897GqidFEXlD6CaZd4vKL3Ob5Rmg0gp2OpljK+T2WSfVVcmv2/LNzGZ
|
882 |
+
o2C7HK2JNDJiuEMhBnIMoVxtRsX6Kc8w3onccVvdtjc+31D1uAclJuW8tf48ArO3
|
883 |
+
+L5DwYcRlJ4jbBeKuIonDFRH8KmzwICMoCfrHRnjB453cMor9H124HhnAgMBAAGj
|
884 |
+
YzBhMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFE1FwWg4u3OpaaEg5+31IqEj
|
885 |
+
FNeeMB8GA1UdIwQYMBaAFE1FwWg4u3OpaaEg5+31IqEjFNeeMA4GA1UdDwEB/wQE
|
886 |
+
AwIBhjANBgkqhkiG9w0BAQUFAAOCAgEAZ2sGuV9FOypLM7PmG2tZTiLMubekJcmn
|
887 |
+
xPBUlgtk87FYT15R/LKXeydlwuXK5w0MJXti4/qftIe3RUavg6WXSIylvfEWK5t2
|
888 |
+
LHo1YGwRgJfMqZJS5ivmae2p+DYtLHe/YUjRYwu5W1LtGLBDQiKmsXeu3mnFzccc
|
889 |
+
obGlHBD7GL4acN3Bkku+KVqdPzW+5X1R+FXgJXUjhx5c3LqdsKyzadsXg8n33gy8
|
890 |
+
CNyRnqjQ1xU3c6U1uPx+xURABsPr+CKAXEfOAuMRn0T//ZoyzH1kUQ7rVyZ2OuMe
|
891 |
+
IjzCpjbdGe+n/BLzJsBZMYVMnNjP36TMzCmT/5RtdlwTCJfy7aULTd3oyWgOZtMA
|
892 |
+
DjMSW7yV5TKQqLPGbIOtd+6Lfn6xqavT4fG2wLHqiMDn05DpKJKUe2h7lyoKZy2F
|
893 |
+
AjgQ5ANh1NolNscIWC2hp1GvMApJ9aZphwctREZ2jirlmjvXGKL8nDgQzMY70rUX
|
894 |
+
Om/9riW99XJZZLF0KjhfGEzfz3EEWjbUvy+ZnOjZurGV5gJLIaFb1cFPj65pbVPb
|
895 |
+
AZO1XB4Y3WRayhgoPmMEEf0cjQAPuDffZ4qdZqkCapH/E8ovXYO8h5Ns3CRRFgQl
|
896 |
+
Zvqz2cK6Kb6aSDiCmfS/O0oxGfm/jiEzFMpPVF/7zvuPcX/9XhmgD0uRuMRUvAaw
|
897 |
+
RY8mkaKO/qk=
|
898 |
+
-----END CERTIFICATE-----
|
899 |
+
|
900 |
+
# Issuer: CN=AAA Certificate Services O=Comodo CA Limited
|
901 |
+
# Subject: CN=AAA Certificate Services O=Comodo CA Limited
|
902 |
+
# Label: "Comodo AAA Services root"
|
903 |
+
# Serial: 1
|
904 |
+
# MD5 Fingerprint: 49:79:04:b0:eb:87:19:ac:47:b0:bc:11:51:9b:74:d0
|
905 |
+
# SHA1 Fingerprint: d1:eb:23:a4:6d:17:d6:8f:d9:25:64:c2:f1:f1:60:17:64:d8:e3:49
|
906 |
+
# SHA256 Fingerprint: d7:a7:a0:fb:5d:7e:27:31:d7:71:e9:48:4e:bc:de:f7:1d:5f:0c:3e:0a:29:48:78:2b:c8:3e:e0:ea:69:9e:f4
|
907 |
+
-----BEGIN CERTIFICATE-----
|
908 |
+
MIIEMjCCAxqgAwIBAgIBATANBgkqhkiG9w0BAQUFADB7MQswCQYDVQQGEwJHQjEb
|
909 |
+
MBkGA1UECAwSR3JlYXRlciBNYW5jaGVzdGVyMRAwDgYDVQQHDAdTYWxmb3JkMRow
|
910 |
+
GAYDVQQKDBFDb21vZG8gQ0EgTGltaXRlZDEhMB8GA1UEAwwYQUFBIENlcnRpZmlj
|
911 |
+
YXRlIFNlcnZpY2VzMB4XDTA0MDEwMTAwMDAwMFoXDTI4MTIzMTIzNTk1OVowezEL
|
912 |
+
MAkGA1UEBhMCR0IxGzAZBgNVBAgMEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4GA1UE
|
913 |
+
BwwHU2FsZm9yZDEaMBgGA1UECgwRQ29tb2RvIENBIExpbWl0ZWQxITAfBgNVBAMM
|
914 |
+
GEFBQSBDZXJ0aWZpY2F0ZSBTZXJ2aWNlczCCASIwDQYJKoZIhvcNAQEBBQADggEP
|
915 |
+
ADCCAQoCggEBAL5AnfRu4ep2hxxNRUSOvkbIgwadwSr+GB+O5AL686tdUIoWMQua
|
916 |
+
BtDFcCLNSS1UY8y2bmhGC1Pqy0wkwLxyTurxFa70VJoSCsN6sjNg4tqJVfMiWPPe
|
917 |
+
3M/vg4aijJRPn2jymJBGhCfHdr/jzDUsi14HZGWCwEiwqJH5YZ92IFCokcdmtet4
|
918 |
+
YgNW8IoaE+oxox6gmf049vYnMlhvB/VruPsUK6+3qszWY19zjNoFmag4qMsXeDZR
|
919 |
+
rOme9Hg6jc8P2ULimAyrL58OAd7vn5lJ8S3frHRNG5i1R8XlKdH5kBjHYpy+g8cm
|
920 |
+
ez6KJcfA3Z3mNWgQIJ2P2N7Sw4ScDV7oL8kCAwEAAaOBwDCBvTAdBgNVHQ4EFgQU
|
921 |
+
oBEKIz6W8Qfs4q8p74Klf9AwpLQwDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQF
|
922 |
+
MAMBAf8wewYDVR0fBHQwcjA4oDagNIYyaHR0cDovL2NybC5jb21vZG9jYS5jb20v
|
923 |
+
QUFBQ2VydGlmaWNhdGVTZXJ2aWNlcy5jcmwwNqA0oDKGMGh0dHA6Ly9jcmwuY29t
|
924 |
+
b2RvLm5ldC9BQUFDZXJ0aWZpY2F0ZVNlcnZpY2VzLmNybDANBgkqhkiG9w0BAQUF
|
925 |
+
AAOCAQEACFb8AvCb6P+k+tZ7xkSAzk/ExfYAWMymtrwUSWgEdujm7l3sAg9g1o1Q
|
926 |
+
GE8mTgHj5rCl7r+8dFRBv/38ErjHT1r0iWAFf2C3BUrz9vHCv8S5dIa2LX1rzNLz
|
927 |
+
Rt0vxuBqw8M0Ayx9lt1awg6nCpnBBYurDC/zXDrPbDdVCYfeU0BsWO/8tqtlbgT2
|
928 |
+
G9w84FoVxp7Z8VlIMCFlA2zs6SFz7JsDoeA3raAVGI/6ugLOpyypEBMs1OUIJqsi
|
929 |
+
l2D4kF501KKaU73yqWjgom7C12yxow+ev+to51byrvLjKzg6CYG1a4XXvi3tPxq3
|
930 |
+
smPi9WIsgtRqAEFQ8TmDn5XpNpaYbg==
|
931 |
+
-----END CERTIFICATE-----
|
932 |
+
|
933 |
+
# Issuer: CN=Secure Certificate Services O=Comodo CA Limited
|
934 |
+
# Subject: CN=Secure Certificate Services O=Comodo CA Limited
|
935 |
+
# Label: "Comodo Secure Services root"
|
936 |
+
# Serial: 1
|
937 |
+
# MD5 Fingerprint: d3:d9:bd:ae:9f:ac:67:24:b3:c8:1b:52:e1:b9:a9:bd
|
938 |
+
# SHA1 Fingerprint: 4a:65:d5:f4:1d:ef:39:b8:b8:90:4a:4a:d3:64:81:33:cf:c7:a1:d1
|
939 |
+
# SHA256 Fingerprint: bd:81:ce:3b:4f:65:91:d1:1a:67:b5:fc:7a:47:fd:ef:25:52:1b:f9:aa:4e:18:b9:e3:df:2e:34:a7:80:3b:e8
|
940 |
+
-----BEGIN CERTIFICATE-----
|
941 |
+
MIIEPzCCAyegAwIBAgIBATANBgkqhkiG9w0BAQUFADB+MQswCQYDVQQGEwJHQjEb
|
942 |
+
MBkGA1UECAwSR3JlYXRlciBNYW5jaGVzdGVyMRAwDgYDVQQHDAdTYWxmb3JkMRow
|
943 |
+
GAYDVQQKDBFDb21vZG8gQ0EgTGltaXRlZDEkMCIGA1UEAwwbU2VjdXJlIENlcnRp
|
944 |
+
ZmljYXRlIFNlcnZpY2VzMB4XDTA0MDEwMTAwMDAwMFoXDTI4MTIzMTIzNTk1OVow
|
945 |
+
fjELMAkGA1UEBhMCR0IxGzAZBgNVBAgMEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4G
|
946 |
+
A1UEBwwHU2FsZm9yZDEaMBgGA1UECgwRQ29tb2RvIENBIExpbWl0ZWQxJDAiBgNV
|
947 |
+
BAMMG1NlY3VyZSBDZXJ0aWZpY2F0ZSBTZXJ2aWNlczCCASIwDQYJKoZIhvcNAQEB
|
948 |
+
BQADggEPADCCAQoCggEBAMBxM4KK0HDrc4eCQNUd5MvJDkKQ+d40uaG6EfQlhfPM
|
949 |
+
cm3ye5drswfxdySRXyWP9nQ95IDC+DwN879A6vfIUtFyb+/Iq0G4bi4XKpVpDM3S
|
950 |
+
HpR7LZQdqnXXs5jLrLxkU0C8j6ysNstcrbvd4JQX7NFc0L/vpZXJkMWwrPsbQ996
|
951 |
+
CF23uPJAGysnnlDOXmWCiIxe004MeuoIkbY2qitC++rCoznl2yY4rYsK7hljxxwk
|
952 |
+
3wN42ubqwUcaCwtGCd0C/N7Lh1/XMGNooa7cMqG6vv5Eq2i2pRcV/b3Vp6ea5EQz
|
953 |
+
6YiO/O1R65NxTq0B50SOqy3LqP4BSUjwwN3HaNiS/j0CAwEAAaOBxzCBxDAdBgNV
|
954 |
+
HQ4EFgQUPNiTiMLAggnMAZkGkyDpnnAJY08wDgYDVR0PAQH/BAQDAgEGMA8GA1Ud
|
955 |
+
EwEB/wQFMAMBAf8wgYEGA1UdHwR6MHgwO6A5oDeGNWh0dHA6Ly9jcmwuY29tb2Rv
|
956 |
+
Y2EuY29tL1NlY3VyZUNlcnRpZmljYXRlU2VydmljZXMuY3JsMDmgN6A1hjNodHRw
|
957 |
+
Oi8vY3JsLmNvbW9kby5uZXQvU2VjdXJlQ2VydGlmaWNhdGVTZXJ2aWNlcy5jcmww
|
958 |
+
DQYJKoZIhvcNAQEFBQADggEBAIcBbSMdflsXfcFhMs+P5/OKlFlm4J4oqF7Tt/Q0
|
959 |
+
5qo5spcWxYJvMqTpjOev/e/C6LlLqqP05tqNZSH7uoDrJiiFGv45jN5bBAS0VPmj
|
960 |
+
Z55B+glSzAVIqMk/IQQezkhr/IXownuvf7fM+F86/TXGDe+X3EyrEeFryzHRbPtI
|
961 |
+
gKvcnDe4IRRLDXE97IMzbtFuMhbsmMcWi1mmNKsFVy2T96oTy9IT4rcuO81rUBcJ
|
962 |
+
aD61JlfutuC23bkpgHl9j6PwpCikFcSF9CfUa7/lXORlAnZUtOM3ZiTTGWHIUhDl
|
963 |
+
izeauan5Hb/qmZJhlv8BzaFfDbxxvA6sCx1HRR3B7Hzs/Sk=
|
964 |
+
-----END CERTIFICATE-----
|
965 |
+
|
966 |
+
# Issuer: CN=Trusted Certificate Services O=Comodo CA Limited
|
967 |
+
# Subject: CN=Trusted Certificate Services O=Comodo CA Limited
|
968 |
+
# Label: "Comodo Trusted Services root"
|
969 |
+
# Serial: 1
|
970 |
+
# MD5 Fingerprint: 91:1b:3f:6e:cd:9e:ab:ee:07:fe:1f:71:d2:b3:61:27
|
971 |
+
# SHA1 Fingerprint: e1:9f:e3:0e:8b:84:60:9e:80:9b:17:0d:72:a8:c5:ba:6e:14:09:bd
|
972 |
+
# SHA256 Fingerprint: 3f:06:e5:56:81:d4:96:f5:be:16:9e:b5:38:9f:9f:2b:8f:f6:1e:17:08:df:68:81:72:48:49:cd:5d:27:cb:69
|
973 |
+
-----BEGIN CERTIFICATE-----
|
974 |
+
MIIEQzCCAyugAwIBAgIBATANBgkqhkiG9w0BAQUFADB/MQswCQYDVQQGEwJHQjEb
|
975 |
+
MBkGA1UECAwSR3JlYXRlciBNYW5jaGVzdGVyMRAwDgYDVQQHDAdTYWxmb3JkMRow
|
976 |
+
GAYDVQQKDBFDb21vZG8gQ0EgTGltaXRlZDElMCMGA1UEAwwcVHJ1c3RlZCBDZXJ0
|
977 |
+
aWZpY2F0ZSBTZXJ2aWNlczAeFw0wNDAxMDEwMDAwMDBaFw0yODEyMzEyMzU5NTla
|
978 |
+
MH8xCzAJBgNVBAYTAkdCMRswGQYDVQQIDBJHcmVhdGVyIE1hbmNoZXN0ZXIxEDAO
|
979 |
+
BgNVBAcMB1NhbGZvcmQxGjAYBgNVBAoMEUNvbW9kbyBDQSBMaW1pdGVkMSUwIwYD
|
980 |
+
VQQDDBxUcnVzdGVkIENlcnRpZmljYXRlIFNlcnZpY2VzMIIBIjANBgkqhkiG9w0B
|
981 |
+
AQEFAAOCAQ8AMIIBCgKCAQEA33FvNlhTWvI2VFeAxHQIIO0Yfyod5jWaHiWsnOWW
|
982 |
+
fnJSoBVC21ndZHoa0Lh73TkVvFVIxO06AOoxEbrycXQaZ7jPM8yoMa+j49d/vzMt
|
983 |
+
TGo87IvDktJTdyR0nAducPy9C1t2ul/y/9c3S0pgePfw+spwtOpZqqPOSC+pw7IL
|
984 |
+
fhdyFgymBwwbOM/JYrc/oJOlh0Hyt3BAd9i+FHzjqMB6juljatEPmsbS9Is6FARW
|
985 |
+
1O24zG71++IsWL1/T2sr92AkWCTOJu80kTrV44HQsvAEAtdbtz6SrGsSivnkBbA7
|
986 |
+
kUlcsutT6vifR4buv5XAwAaf0lteERv0xwQ1KdJVXOTt6wIDAQABo4HJMIHGMB0G
|
987 |
+
A1UdDgQWBBTFe1i97doladL3WRaoszLAeydb9DAOBgNVHQ8BAf8EBAMCAQYwDwYD
|
988 |
+
VR0TAQH/BAUwAwEB/zCBgwYDVR0fBHwwejA8oDqgOIY2aHR0cDovL2NybC5jb21v
|
989 |
+
ZG9jYS5jb20vVHJ1c3RlZENlcnRpZmljYXRlU2VydmljZXMuY3JsMDqgOKA2hjRo
|
990 |
+
dHRwOi8vY3JsLmNvbW9kby5uZXQvVHJ1c3RlZENlcnRpZmljYXRlU2VydmljZXMu
|
991 |
+
Y3JsMA0GCSqGSIb3DQEBBQUAA4IBAQDIk4E7ibSvuIQSTI3S8NtwuleGFTQQuS9/
|
992 |
+
HrCoiWChisJ3DFBKmwCL2Iv0QeLQg4pKHBQGsKNoBXAxMKdTmw7pSqBYaWcOrp32
|
993 |
+
pSxBvzwGa+RZzG0Q8ZZvH9/0BAKkn0U+yNj6NkZEUD+Cl5EfKNsYEYwq5GWDVxIS
|
994 |
+
jBc/lDb+XbDABHcTuPQV1T84zJQ6VdCsmPW6AF/ghhmBeC8owH7TzEIK9a5QoNE+
|
995 |
+
xqFx7D+gIIxmOom0jtTYsU0lR+4viMi14QVFwL4Ucd56/Y57fU0IlqUSc/Atyjcn
|
996 |
+
dBInTMu2l+nZrghtWjlA3QVHdWpaIbOjGM9O9y5Xt5hwXsjEeLBi
|
997 |
+
-----END CERTIFICATE-----
|
998 |
+
|
999 |
+
# Issuer: CN=UTN - DATACorp SGC O=The USERTRUST Network OU=http://www.usertrust.com
|
1000 |
+
# Subject: CN=UTN - DATACorp SGC O=The USERTRUST Network OU=http://www.usertrust.com
|
1001 |
+
# Label: "UTN DATACorp SGC Root CA"
|
1002 |
+
# Serial: 91374294542884689855167577680241077609
|
1003 |
+
# MD5 Fingerprint: b3:a5:3e:77:21:6d:ac:4a:c0:c9:fb:d5:41:3d:ca:06
|
1004 |
+
# SHA1 Fingerprint: 58:11:9f:0e:12:82:87:ea:50:fd:d9:87:45:6f:4f:78:dc:fa:d6:d4
|
1005 |
+
# SHA256 Fingerprint: 85:fb:2f:91:dd:12:27:5a:01:45:b6:36:53:4f:84:02:4a:d6:8b:69:b8:ee:88:68:4f:f7:11:37:58:05:b3:48
|
1006 |
+
-----BEGIN CERTIFICATE-----
|
1007 |
+
MIIEXjCCA0agAwIBAgIQRL4Mi1AAIbQR0ypoBqmtaTANBgkqhkiG9w0BAQUFADCB
|
1008 |
+
kzELMAkGA1UEBhMCVVMxCzAJBgNVBAgTAlVUMRcwFQYDVQQHEw5TYWx0IExha2Ug
|
1009 |
+
Q2l0eTEeMBwGA1UEChMVVGhlIFVTRVJUUlVTVCBOZXR3b3JrMSEwHwYDVQQLExho
|
1010 |
+
dHRwOi8vd3d3LnVzZXJ0cnVzdC5jb20xGzAZBgNVBAMTElVUTiAtIERBVEFDb3Jw
|
1011 |
+
IFNHQzAeFw05OTA2MjQxODU3MjFaFw0xOTA2MjQxOTA2MzBaMIGTMQswCQYDVQQG
|
1012 |
+
EwJVUzELMAkGA1UECBMCVVQxFzAVBgNVBAcTDlNhbHQgTGFrZSBDaXR5MR4wHAYD
|
1013 |
+
VQQKExVUaGUgVVNFUlRSVVNUIE5ldHdvcmsxITAfBgNVBAsTGGh0dHA6Ly93d3cu
|
1014 |
+
dXNlcnRydXN0LmNvbTEbMBkGA1UEAxMSVVROIC0gREFUQUNvcnAgU0dDMIIBIjAN
|
1015 |
+
BgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA3+5YEKIrblXEjr8uRgnn4AgPLit6
|
1016 |
+
E5Qbvfa2gI5lBZMAHryv4g+OGQ0SR+ysraP6LnD43m77VkIVni5c7yPeIbkFdicZ
|
1017 |
+
D0/Ww5y0vpQZY/KmEQrrU0icvvIpOxboGqBMpsn0GFlowHDyUwDAXlCCpVZvNvlK
|
1018 |
+
4ESGoE1O1kduSUrLZ9emxAW5jh70/P/N5zbgnAVssjMiFdC04MwXwLLA9P4yPykq
|
1019 |
+
lXvY8qdOD1R8oQ2AswkDwf9c3V6aPryuvEeKaq5xyh+xKrhfQgUL7EYw0XILyulW
|
1020 |
+
bfXv33i+Ybqypa4ETLyorGkVl73v67SMvzX41MPRKA5cOp9wGDMgd8SirwIDAQAB
|
1021 |
+
o4GrMIGoMAsGA1UdDwQEAwIBxjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBRT
|
1022 |
+
MtGzz3/64PGgXYVOktKeRR20TzA9BgNVHR8ENjA0MDKgMKAuhixodHRwOi8vY3Js
|
1023 |
+
LnVzZXJ0cnVzdC5jb20vVVROLURBVEFDb3JwU0dDLmNybDAqBgNVHSUEIzAhBggr
|
1024 |
+
BgEFBQcDAQYKKwYBBAGCNwoDAwYJYIZIAYb4QgQBMA0GCSqGSIb3DQEBBQUAA4IB
|
1025 |
+
AQAnNZcAiosovcYzMB4p/OL31ZjUQLtgyr+rFywJNn9Q+kHcrpY6CiM+iVnJowft
|
1026 |
+
Gzet/Hy+UUla3joKVAgWRcKZsYfNjGjgaQPpxE6YsjuMFrMOoAyYUJuTqXAJyCyj
|
1027 |
+
j98C5OBxOvG0I3KgqgHf35g+FFCgMSa9KOlaMCZ1+XtgHI3zzVAmbQQnmt/VDUVH
|
1028 |
+
KWss5nbZqSl9Mt3JNjy9rjXxEZ4du5A/EkdOjtd+D2JzHVImOBwYSf0wdJrE5SIv
|
1029 |
+
2MCN7ZF6TACPcn9d2t0bi0Vr591pl6jFVkwPDPafepE39peC4N1xaf92P2BNPM/3
|
1030 |
+
mfnGV/TJVTl4uix5yaaIK/QI
|
1031 |
+
-----END CERTIFICATE-----
|
1032 |
+
|
1033 |
+
# Issuer: CN=UTN-USERFirst-Hardware O=The USERTRUST Network OU=http://www.usertrust.com
|
1034 |
+
# Subject: CN=UTN-USERFirst-Hardware O=The USERTRUST Network OU=http://www.usertrust.com
|
1035 |
+
# Label: "UTN USERFirst Hardware Root CA"
|
1036 |
+
# Serial: 91374294542884704022267039221184531197
|
1037 |
+
# MD5 Fingerprint: 4c:56:41:e5:0d:bb:2b:e8:ca:a3:ed:18:08:ad:43:39
|
1038 |
+
# SHA1 Fingerprint: 04:83:ed:33:99:ac:36:08:05:87:22:ed:bc:5e:46:00:e3:be:f9:d7
|
1039 |
+
# SHA256 Fingerprint: 6e:a5:47:41:d0:04:66:7e:ed:1b:48:16:63:4a:a3:a7:9e:6e:4b:96:95:0f:82:79:da:fc:8d:9b:d8:81:21:37
|
1040 |
+
-----BEGIN CERTIFICATE-----
|
1041 |
+
MIIEdDCCA1ygAwIBAgIQRL4Mi1AAJLQR0zYq/mUK/TANBgkqhkiG9w0BAQUFADCB
|
1042 |
+
lzELMAkGA1UEBhMCVVMxCzAJBgNVBAgTAlVUMRcwFQYDVQQHEw5TYWx0IExha2Ug
|
1043 |
+
Q2l0eTEeMBwGA1UEChMVVGhlIFVTRVJUUlVTVCBOZXR3b3JrMSEwHwYDVQQLExho
|
1044 |
+
dHRwOi8vd3d3LnVzZXJ0cnVzdC5jb20xHzAdBgNVBAMTFlVUTi1VU0VSRmlyc3Qt
|
1045 |
+
SGFyZHdhcmUwHhcNOTkwNzA5MTgxMDQyWhcNMTkwNzA5MTgxOTIyWjCBlzELMAkG
|
1046 |
+
A1UEBhMCVVMxCzAJBgNVBAgTAlVUMRcwFQYDVQQHEw5TYWx0IExha2UgQ2l0eTEe
|
1047 |
+
MBwGA1UEChMVVGhlIFVTRVJUUlVTVCBOZXR3b3JrMSEwHwYDVQQLExhodHRwOi8v
|
1048 |
+
d3d3LnVzZXJ0cnVzdC5jb20xHzAdBgNVBAMTFlVUTi1VU0VSRmlyc3QtSGFyZHdh
|
1049 |
+
cmUwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCx98M4P7Sof885glFn
|
1050 |
+
0G2f0v9Y8+efK+wNiVSZuTiZFvfgIXlIwrthdBKWHTxqctU8EGc6Oe0rE81m65UJ
|
1051 |
+
M6Rsl7HoxuzBdXmcRl6Nq9Bq/bkqVRcQVLMZ8Jr28bFdtqdt++BxF2uiiPsA3/4a
|
1052 |
+
MXcMmgF6sTLjKwEHOG7DpV4jvEWbe1DByTCP2+UretNb+zNAHqDVmBe8i4fDidNd
|
1053 |
+
oI6yqqr2jmmIBsX6iSHzCJ1pLgkzmykNRg+MzEk0sGlRvfkGzWitZky8PqxhvQqI
|
1054 |
+
DsjfPe58BEydCl5rkdbux+0ojatNh4lz0G6k0B4WixThdkQDf2Os5M1JnMWS9Ksy
|
1055 |
+
oUhbAgMBAAGjgbkwgbYwCwYDVR0PBAQDAgHGMA8GA1UdEwEB/wQFMAMBAf8wHQYD
|
1056 |
+
VR0OBBYEFKFyXyYbKJhDlV0HN9WFlp1L0sNFMEQGA1UdHwQ9MDswOaA3oDWGM2h0
|
1057 |
+
dHA6Ly9jcmwudXNlcnRydXN0LmNvbS9VVE4tVVNFUkZpcnN0LUhhcmR3YXJlLmNy
|
1058 |
+
bDAxBgNVHSUEKjAoBggrBgEFBQcDAQYIKwYBBQUHAwUGCCsGAQUFBwMGBggrBgEF
|
1059 |
+
BQcDBzANBgkqhkiG9w0BAQUFAAOCAQEARxkP3nTGmZev/K0oXnWO6y1n7k57K9cM
|
1060 |
+
//bey1WiCuFMVGWTYGufEpytXoMs61quwOQt9ABjHbjAbPLPSbtNk28Gpgoiskli
|
1061 |
+
CE7/yMgUsogWXecB5BKV5UU0s4tpvc+0hY91UZ59Ojg6FEgSxvunOxqNDYJAB+gE
|
1062 |
+
CJChicsZUN/KHAG8HQQZexB2lzvukJDKxA4fFm517zP4029bHpbj4HR3dHuKom4t
|
1063 |
+
3XbWOTCC8KucUvIqx69JXn7HaOWCgchqJ/kniCrVWFCVH/A7HFe7fRQ5YiuayZSS
|
1064 |
+
KqMiDP+JJn1fIytH1xUdqWqeUQ0qUZ6B+dQ7XnASfxAynB67nfhmqA==
|
1065 |
+
-----END CERTIFICATE-----
|
1066 |
+
|
1067 |
+
# Issuer: CN=XRamp Global Certification Authority O=XRamp Security Services Inc OU=www.xrampsecurity.com
|
1068 |
+
# Subject: CN=XRamp Global Certification Authority O=XRamp Security Services Inc OU=www.xrampsecurity.com
|
1069 |
+
# Label: "XRamp Global CA Root"
|
1070 |
+
# Serial: 107108908803651509692980124233745014957
|
1071 |
+
# MD5 Fingerprint: a1:0b:44:b3:ca:10:d8:00:6e:9d:0f:d8:0f:92:0a:d1
|
1072 |
+
# SHA1 Fingerprint: b8:01:86:d1:eb:9c:86:a5:41:04:cf:30:54:f3:4c:52:b7:e5:58:c6
|
1073 |
+
# SHA256 Fingerprint: ce:cd:dc:90:50:99:d8:da:df:c5:b1:d2:09:b7:37:cb:e2:c1:8c:fb:2c:10:c0:ff:0b:cf:0d:32:86:fc:1a:a2
|
1074 |
+
-----BEGIN CERTIFICATE-----
|
1075 |
+
MIIEMDCCAxigAwIBAgIQUJRs7Bjq1ZxN1ZfvdY+grTANBgkqhkiG9w0BAQUFADCB
|
1076 |
+
gjELMAkGA1UEBhMCVVMxHjAcBgNVBAsTFXd3dy54cmFtcHNlY3VyaXR5LmNvbTEk
|
1077 |
+
MCIGA1UEChMbWFJhbXAgU2VjdXJpdHkgU2VydmljZXMgSW5jMS0wKwYDVQQDEyRY
|
1078 |
+
UmFtcCBHbG9iYWwgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwHhcNMDQxMTAxMTcx
|
1079 |
+
NDA0WhcNMzUwMTAxMDUzNzE5WjCBgjELMAkGA1UEBhMCVVMxHjAcBgNVBAsTFXd3
|
1080 |
+
dy54cmFtcHNlY3VyaXR5LmNvbTEkMCIGA1UEChMbWFJhbXAgU2VjdXJpdHkgU2Vy
|
1081 |
+
dmljZXMgSW5jMS0wKwYDVQQDEyRYUmFtcCBHbG9iYWwgQ2VydGlmaWNhdGlvbiBB
|
1082 |
+
dXRob3JpdHkwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCYJB69FbS6
|
1083 |
+
38eMpSe2OAtp87ZOqCwuIR1cRN8hXX4jdP5efrRKt6atH67gBhbim1vZZ3RrXYCP
|
1084 |
+
KZ2GG9mcDZhtdhAoWORlsH9KmHmf4MMxfoArtYzAQDsRhtDLooY2YKTVMIJt2W7Q
|
1085 |
+
DxIEM5dfT2Fa8OT5kavnHTu86M/0ay00fOJIYRyO82FEzG+gSqmUsE3a56k0enI4
|
1086 |
+
qEHMPJQRfevIpoy3hsvKMzvZPTeL+3o+hiznc9cKV6xkmxnr9A8ECIqsAxcZZPRa
|
1087 |
+
JSKNNCyy9mgdEm3Tih4U2sSPpuIjhdV6Db1q4Ons7Be7QhtnqiXtRYMh/MHJfNVi
|
1088 |
+
PvryxS3T/dRlAgMBAAGjgZ8wgZwwEwYJKwYBBAGCNxQCBAYeBABDAEEwCwYDVR0P
|
1089 |
+
BAQDAgGGMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFMZPoj0GY4QJnM5i5ASs
|
1090 |
+
jVy16bYbMDYGA1UdHwQvMC0wK6ApoCeGJWh0dHA6Ly9jcmwueHJhbXBzZWN1cml0
|
1091 |
+
eS5jb20vWEdDQS5jcmwwEAYJKwYBBAGCNxUBBAMCAQEwDQYJKoZIhvcNAQEFBQAD
|
1092 |
+
ggEBAJEVOQMBG2f7Shz5CmBbodpNl2L5JFMn14JkTpAuw0kbK5rc/Kh4ZzXxHfAR
|
1093 |
+
vbdI4xD2Dd8/0sm2qlWkSLoC295ZLhVbO50WfUfXN+pfTXYSNrsf16GBBEYgoyxt
|
1094 |
+
qZ4Bfj8pzgCT3/3JknOJiWSe5yvkHJEs0rnOfc5vMZnT5r7SHpDwCRR5XCOrTdLa
|
1095 |
+
IR9NmXmd4c8nnxCbHIgNsIpkQTG4DmyQJKSbXHGPurt+HBvbaoAPIbzp26a3QPSy
|
1096 |
+
i6mx5O+aGtA9aZnuqCij4Tyz8LIRnM98QObd50N9otg6tamN8jSZxNQQ4Qb9CYQQ
|
1097 |
+
O+7ETPTsJ3xCwnR8gooJybQDJbw=
|
1098 |
+
-----END CERTIFICATE-----
|
1099 |
+
|
1100 |
+
# Issuer: O=The Go Daddy Group, Inc. OU=Go Daddy Class 2 Certification Authority
|
1101 |
+
# Subject: O=The Go Daddy Group, Inc. OU=Go Daddy Class 2 Certification Authority
|
1102 |
+
# Label: "Go Daddy Class 2 CA"
|
1103 |
+
# Serial: 0
|
1104 |
+
# MD5 Fingerprint: 91:de:06:25:ab:da:fd:32:17:0c:bb:25:17:2a:84:67
|
1105 |
+
# SHA1 Fingerprint: 27:96:ba:e6:3f:18:01:e2:77:26:1b:a0:d7:77:70:02:8f:20:ee:e4
|
1106 |
+
# SHA256 Fingerprint: c3:84:6b:f2:4b:9e:93:ca:64:27:4c:0e:c6:7c:1e:cc:5e:02:4f:fc:ac:d2:d7:40:19:35:0e:81:fe:54:6a:e4
|
1107 |
+
-----BEGIN CERTIFICATE-----
|
1108 |
+
MIIEADCCAuigAwIBAgIBADANBgkqhkiG9w0BAQUFADBjMQswCQYDVQQGEwJVUzEh
|
1109 |
+
MB8GA1UEChMYVGhlIEdvIERhZGR5IEdyb3VwLCBJbmMuMTEwLwYDVQQLEyhHbyBE
|
1110 |
+
YWRkeSBDbGFzcyAyIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MB4XDTA0MDYyOTE3
|
1111 |
+
MDYyMFoXDTM0MDYyOTE3MDYyMFowYzELMAkGA1UEBhMCVVMxITAfBgNVBAoTGFRo
|
1112 |
+
ZSBHbyBEYWRkeSBHcm91cCwgSW5jLjExMC8GA1UECxMoR28gRGFkZHkgQ2xhc3Mg
|
1113 |
+
MiBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTCCASAwDQYJKoZIhvcNAQEBBQADggEN
|
1114 |
+
ADCCAQgCggEBAN6d1+pXGEmhW+vXX0iG6r7d/+TvZxz0ZWizV3GgXne77ZtJ6XCA
|
1115 |
+
PVYYYwhv2vLM0D9/AlQiVBDYsoHUwHU9S3/Hd8M+eKsaA7Ugay9qK7HFiH7Eux6w
|
1116 |
+
wdhFJ2+qN1j3hybX2C32qRe3H3I2TqYXP2WYktsqbl2i/ojgC95/5Y0V4evLOtXi
|
1117 |
+
EqITLdiOr18SPaAIBQi2XKVlOARFmR6jYGB0xUGlcmIbYsUfb18aQr4CUWWoriMY
|
1118 |
+
avx4A6lNf4DD+qta/KFApMoZFv6yyO9ecw3ud72a9nmYvLEHZ6IVDd2gWMZEewo+
|
1119 |
+
YihfukEHU1jPEX44dMX4/7VpkI+EdOqXG68CAQOjgcAwgb0wHQYDVR0OBBYEFNLE
|
1120 |
+
sNKR1EwRcbNhyz2h/t2oatTjMIGNBgNVHSMEgYUwgYKAFNLEsNKR1EwRcbNhyz2h
|
1121 |
+
/t2oatTjoWekZTBjMQswCQYDVQQGEwJVUzEhMB8GA1UEChMYVGhlIEdvIERhZGR5
|
1122 |
+
IEdyb3VwLCBJbmMuMTEwLwYDVQQLEyhHbyBEYWRkeSBDbGFzcyAyIENlcnRpZmlj
|
1123 |
+
YXRpb24gQXV0aG9yaXR5ggEAMAwGA1UdEwQFMAMBAf8wDQYJKoZIhvcNAQEFBQAD
|
1124 |
+
ggEBADJL87LKPpH8EsahB4yOd6AzBhRckB4Y9wimPQoZ+YeAEW5p5JYXMP80kWNy
|
1125 |
+
OO7MHAGjHZQopDH2esRU1/blMVgDoszOYtuURXO1v0XJJLXVggKtI3lpjbi2Tc7P
|
1126 |
+
TMozI+gciKqdi0FuFskg5YmezTvacPd+mSYgFFQlq25zheabIZ0KbIIOqPjCDPoQ
|
1127 |
+
HmyW74cNxA9hi63ugyuV+I6ShHI56yDqg+2DzZduCLzrTia2cyvk0/ZM/iZx4mER
|
1128 |
+
dEr/VxqHD3VILs9RaRegAhJhldXRQLIQTO7ErBBDpqWeCtWVYpoNz4iCxTIM5Cuf
|
1129 |
+
ReYNnyicsbkqWletNw+vHX/bvZ8=
|
1130 |
+
-----END CERTIFICATE-----
|
1131 |
+
|
1132 |
+
# Issuer: O=Starfield Technologies, Inc. OU=Starfield Class 2 Certification Authority
|
1133 |
+
# Subject: O=Starfield Technologies, Inc. OU=Starfield Class 2 Certification Authority
|
1134 |
+
# Label: "Starfield Class 2 CA"
|
1135 |
+
# Serial: 0
|
1136 |
+
# MD5 Fingerprint: 32:4a:4b:bb:c8:63:69:9b:be:74:9a:c6:dd:1d:46:24
|
1137 |
+
# SHA1 Fingerprint: ad:7e:1c:28:b0:64:ef:8f:60:03:40:20:14:c3:d0:e3:37:0e:b5:8a
|
1138 |
+
# SHA256 Fingerprint: 14:65:fa:20:53:97:b8:76:fa:a6:f0:a9:95:8e:55:90:e4:0f:cc:7f:aa:4f:b7:c2:c8:67:75:21:fb:5f:b6:58
|
1139 |
+
-----BEGIN CERTIFICATE-----
|
1140 |
+
MIIEDzCCAvegAwIBAgIBADANBgkqhkiG9w0BAQUFADBoMQswCQYDVQQGEwJVUzEl
|
1141 |
+
MCMGA1UEChMcU3RhcmZpZWxkIFRlY2hub2xvZ2llcywgSW5jLjEyMDAGA1UECxMp
|
1142 |
+
U3RhcmZpZWxkIENsYXNzIDIgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwHhcNMDQw
|
1143 |
+
NjI5MTczOTE2WhcNMzQwNjI5MTczOTE2WjBoMQswCQYDVQQGEwJVUzElMCMGA1UE
|
1144 |
+
ChMcU3RhcmZpZWxkIFRlY2hub2xvZ2llcywgSW5jLjEyMDAGA1UECxMpU3RhcmZp
|
1145 |
+
ZWxkIENsYXNzIDIgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwggEgMA0GCSqGSIb3
|
1146 |
+
DQEBAQUAA4IBDQAwggEIAoIBAQC3Msj+6XGmBIWtDBFk385N78gDGIc/oav7PKaf
|
1147 |
+
8MOh2tTYbitTkPskpD6E8J7oX+zlJ0T1KKY/e97gKvDIr1MvnsoFAZMej2YcOadN
|
1148 |
+
+lq2cwQlZut3f+dZxkqZJRRU6ybH838Z1TBwj6+wRir/resp7defqgSHo9T5iaU0
|
1149 |
+
X9tDkYI22WY8sbi5gv2cOj4QyDvvBmVmepsZGD3/cVE8MC5fvj13c7JdBmzDI1aa
|
1150 |
+
K4UmkhynArPkPw2vCHmCuDY96pzTNbO8acr1zJ3o/WSNF4Azbl5KXZnJHoe0nRrA
|
1151 |
+
1W4TNSNe35tfPe/W93bC6j67eA0cQmdrBNj41tpvi/JEoAGrAgEDo4HFMIHCMB0G
|
1152 |
+
A1UdDgQWBBS/X7fRzt0fhvRbVazc1xDCDqmI5zCBkgYDVR0jBIGKMIGHgBS/X7fR
|
1153 |
+
zt0fhvRbVazc1xDCDqmI56FspGowaDELMAkGA1UEBhMCVVMxJTAjBgNVBAoTHFN0
|
1154 |
+
YXJmaWVsZCBUZWNobm9sb2dpZXMsIEluYy4xMjAwBgNVBAsTKVN0YXJmaWVsZCBD
|
1155 |
+
bGFzcyAyIENlcnRpZmljYXRpb24gQXV0aG9yaXR5ggEAMAwGA1UdEwQFMAMBAf8w
|
1156 |
+
DQYJKoZIhvcNAQEFBQADggEBAAWdP4id0ckaVaGsafPzWdqbAYcaT1epoXkJKtv3
|
1157 |
+
L7IezMdeatiDh6GX70k1PncGQVhiv45YuApnP+yz3SFmH8lU+nLMPUxA2IGvd56D
|
1158 |
+
eruix/U0F47ZEUD0/CwqTRV/p2JdLiXTAAsgGh1o+Re49L2L7ShZ3U0WixeDyLJl
|
1159 |
+
xy16paq8U4Zt3VekyvggQQto8PT7dL5WXXp59fkdheMtlb71cZBDzI0fmgAKhynp
|
1160 |
+
VSJYACPq4xJDKVtHCN2MQWplBqjlIapBtJUhlbl90TSrE9atvNziPTnNvT51cKEY
|
1161 |
+
WQPJIrSPnNVeKtelttQKbfi3QBFGmh95DmK/D5fs4C8fF5Q=
|
1162 |
+
-----END CERTIFICATE-----
|
1163 |
+
|
1164 |
+
# Issuer: CN=StartCom Certification Authority O=StartCom Ltd. OU=Secure Digital Certificate Signing
|
1165 |
+
# Subject: CN=StartCom Certification Authority O=StartCom Ltd. OU=Secure Digital Certificate Signing
|
1166 |
+
# Label: "StartCom Certification Authority"
|
1167 |
+
# Serial: 1
|
1168 |
+
# MD5 Fingerprint: 22:4d:8f:8a:fc:f7:35:c2:bb:57:34:90:7b:8b:22:16
|
1169 |
+
# SHA1 Fingerprint: 3e:2b:f7:f2:03:1b:96:f3:8c:e6:c4:d8:a8:5d:3e:2d:58:47:6a:0f
|
1170 |
+
# SHA256 Fingerprint: c7:66:a9:be:f2:d4:07:1c:86:3a:31:aa:49:20:e8:13:b2:d1:98:60:8c:b7:b7:cf:e2:11:43:b8:36:df:09:ea
|
1171 |
+
-----BEGIN CERTIFICATE-----
|
1172 |
+
MIIHyTCCBbGgAwIBAgIBATANBgkqhkiG9w0BAQUFADB9MQswCQYDVQQGEwJJTDEW
|
1173 |
+
MBQGA1UEChMNU3RhcnRDb20gTHRkLjErMCkGA1UECxMiU2VjdXJlIERpZ2l0YWwg
|
1174 |
+
Q2VydGlmaWNhdGUgU2lnbmluZzEpMCcGA1UEAxMgU3RhcnRDb20gQ2VydGlmaWNh
|
1175 |
+
dGlvbiBBdXRob3JpdHkwHhcNMDYwOTE3MTk0NjM2WhcNMzYwOTE3MTk0NjM2WjB9
|
1176 |
+
MQswCQYDVQQGEwJJTDEWMBQGA1UEChMNU3RhcnRDb20gTHRkLjErMCkGA1UECxMi
|
1177 |
+
U2VjdXJlIERpZ2l0YWwgQ2VydGlmaWNhdGUgU2lnbmluZzEpMCcGA1UEAxMgU3Rh
|
1178 |
+
cnRDb20gQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwggIiMA0GCSqGSIb3DQEBAQUA
|
1179 |
+
A4ICDwAwggIKAoICAQDBiNsJvGxGfHiflXu1M5DycmLWwTYgIiRezul38kMKogZk
|
1180 |
+
pMyONvg45iPwbm2xPN1yo4UcodM9tDMr0y+v/uqwQVlntsQGfQqedIXWeUyAN3rf
|
1181 |
+
OQVSWff0G0ZDpNKFhdLDcfN1YjS6LIp/Ho/u7TTQEceWzVI9ujPW3U3eCztKS5/C
|
1182 |
+
Ji/6tRYccjV3yjxd5srhJosaNnZcAdt0FCX+7bWgiA/deMotHweXMAEtcnn6RtYT
|
1183 |
+
Kqi5pquDSR3l8u/d5AGOGAqPY1MWhWKpDhk6zLVmpsJrdAfkK+F2PrRt2PZE4XNi
|
1184 |
+
HzvEvqBTViVsUQn3qqvKv3b9bZvzndu/PWa8DFaqr5hIlTpL36dYUNk4dalb6kMM
|
1185 |
+
Av+Z6+hsTXBbKWWc3apdzK8BMewM69KN6Oqce+Zu9ydmDBpI125C4z/eIT574Q1w
|
1186 |
+
+2OqqGwaVLRcJXrJosmLFqa7LH4XXgVNWG4SHQHuEhANxjJ/GP/89PrNbpHoNkm+
|
1187 |
+
Gkhpi8KWTRoSsmkXwQqQ1vp5Iki/untp+HDH+no32NgN0nZPV/+Qt+OR0t3vwmC3
|
1188 |
+
Zzrd/qqc8NSLf3Iizsafl7b4r4qgEKjZ+xjGtrVcUjyJthkqcwEKDwOzEmDyei+B
|
1189 |
+
26Nu/yYwl/WL3YlXtq09s68rxbd2AvCl1iuahhQqcvbjM4xdCUsT37uMdBNSSwID
|
1190 |
+
AQABo4ICUjCCAk4wDAYDVR0TBAUwAwEB/zALBgNVHQ8EBAMCAa4wHQYDVR0OBBYE
|
1191 |
+
FE4L7xqkQFulF2mHMMo0aEPQQa7yMGQGA1UdHwRdMFswLKAqoCiGJmh0dHA6Ly9j
|
1192 |
+
ZXJ0LnN0YXJ0Y29tLm9yZy9zZnNjYS1jcmwuY3JsMCugKaAnhiVodHRwOi8vY3Js
|
1193 |
+
LnN0YXJ0Y29tLm9yZy9zZnNjYS1jcmwuY3JsMIIBXQYDVR0gBIIBVDCCAVAwggFM
|
1194 |
+
BgsrBgEEAYG1NwEBATCCATswLwYIKwYBBQUHAgEWI2h0dHA6Ly9jZXJ0LnN0YXJ0
|
1195 |
+
Y29tLm9yZy9wb2xpY3kucGRmMDUGCCsGAQUFBwIBFilodHRwOi8vY2VydC5zdGFy
|
1196 |
+
dGNvbS5vcmcvaW50ZXJtZWRpYXRlLnBkZjCB0AYIKwYBBQUHAgIwgcMwJxYgU3Rh
|
1197 |
+
cnQgQ29tbWVyY2lhbCAoU3RhcnRDb20pIEx0ZC4wAwIBARqBl0xpbWl0ZWQgTGlh
|
1198 |
+
YmlsaXR5LCByZWFkIHRoZSBzZWN0aW9uICpMZWdhbCBMaW1pdGF0aW9ucyogb2Yg
|
1199 |
+
dGhlIFN0YXJ0Q29tIENlcnRpZmljYXRpb24gQXV0aG9yaXR5IFBvbGljeSBhdmFp
|
1200 |
+
bGFibGUgYXQgaHR0cDovL2NlcnQuc3RhcnRjb20ub3JnL3BvbGljeS5wZGYwEQYJ
|
1201 |
+
YIZIAYb4QgEBBAQDAgAHMDgGCWCGSAGG+EIBDQQrFilTdGFydENvbSBGcmVlIFNT
|
1202 |
+
TCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTANBgkqhkiG9w0BAQUFAAOCAgEAFmyZ
|
1203 |
+
9GYMNPXQhV59CuzaEE44HF7fpiUFS5Eyweg78T3dRAlbB0mKKctmArexmvclmAk8
|
1204 |
+
jhvh3TaHK0u7aNM5Zj2gJsfyOZEdUauCe37Vzlrk4gNXcGmXCPleWKYK34wGmkUW
|
1205 |
+
FjgKXlf2Ysd6AgXmvB618p70qSmD+LIU424oh0TDkBreOKk8rENNZEXO3SipXPJz
|
1206 |
+
ewT4F+irsfMuXGRuczE6Eri8sxHkfY+BUZo7jYn0TZNmezwD7dOaHZrzZVD1oNB1
|
1207 |
+
ny+v8OqCQ5j4aZyJecRDjkZy42Q2Eq/3JR44iZB3fsNrarnDy0RLrHiQi+fHLB5L
|
1208 |
+
EUTINFInzQpdn4XBidUaePKVEFMy3YCEZnXZtWgo+2EuvoSoOMCZEoalHmdkrQYu
|
1209 |
+
L6lwhceWD3yJZfWOQ1QOq92lgDmUYMA0yZZwLKMS9R9Ie70cfmu3nZD0Ijuu+Pwq
|
1210 |
+
yvqCUqDvr0tVk+vBtfAii6w0TiYiBKGHLHVKt+V9E9e4DGTANtLJL4YSjCMJwRuC
|
1211 |
+
O3NJo2pXh5Tl1njFmUNj403gdy3hZZlyaQQaRwnmDwFWJPsfvw55qVguucQJAX6V
|
1212 |
+
um0ABj6y6koQOdjQK/W/7HW/lwLFCRsI3FU34oH7N4RDYiDK51ZLZer+bMEkkySh
|
1213 |
+
NOsF/5oirpt9P/FlUQqmMGqz9IgcgA38corog14=
|
1214 |
+
-----END CERTIFICATE-----
|
1215 |
+
|
1216 |
+
# Issuer: CN=DigiCert Assured ID Root CA O=DigiCert Inc OU=www.digicert.com
|
1217 |
+
# Subject: CN=DigiCert Assured ID Root CA O=DigiCert Inc OU=www.digicert.com
|
1218 |
+
# Label: "DigiCert Assured ID Root CA"
|
1219 |
+
# Serial: 17154717934120587862167794914071425081
|
1220 |
+
# MD5 Fingerprint: 87:ce:0b:7b:2a:0e:49:00:e1:58:71:9b:37:a8:93:72
|
1221 |
+
# SHA1 Fingerprint: 05:63:b8:63:0d:62:d7:5a:bb:c8:ab:1e:4b:df:b5:a8:99:b2:4d:43
|
1222 |
+
# SHA256 Fingerprint: 3e:90:99:b5:01:5e:8f:48:6c:00:bc:ea:9d:11:1e:e7:21:fa:ba:35:5a:89:bc:f1:df:69:56:1e:3d:c6:32:5c
|
1223 |
+
-----BEGIN CERTIFICATE-----
|
1224 |
+
MIIDtzCCAp+gAwIBAgIQDOfg5RfYRv6P5WD8G/AwOTANBgkqhkiG9w0BAQUFADBl
|
1225 |
+
MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3
|
1226 |
+
d3cuZGlnaWNlcnQuY29tMSQwIgYDVQQDExtEaWdpQ2VydCBBc3N1cmVkIElEIFJv
|
1227 |
+
b3QgQ0EwHhcNMDYxMTEwMDAwMDAwWhcNMzExMTEwMDAwMDAwWjBlMQswCQYDVQQG
|
1228 |
+
EwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNl
|
1229 |
+
cnQuY29tMSQwIgYDVQQDExtEaWdpQ2VydCBBc3N1cmVkIElEIFJvb3QgQ0EwggEi
|
1230 |
+
MA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCtDhXO5EOAXLGH87dg+XESpa7c
|
1231 |
+
JpSIqvTO9SA5KFhgDPiA2qkVlTJhPLWxKISKityfCgyDF3qPkKyK53lTXDGEKvYP
|
1232 |
+
mDI2dsze3Tyoou9q+yHyUmHfnyDXH+Kx2f4YZNISW1/5WBg1vEfNoTb5a3/UsDg+
|
1233 |
+
wRvDjDPZ2C8Y/igPs6eD1sNuRMBhNZYW/lmci3Zt1/GiSw0r/wty2p5g0I6QNcZ4
|
1234 |
+
VYcgoc/lbQrISXwxmDNsIumH0DJaoroTghHtORedmTpyoeb6pNnVFzF1roV9Iq4/
|
1235 |
+
AUaG9ih5yLHa5FcXxH4cDrC0kqZWs72yl+2qp/C3xag/lRbQ/6GW6whfGHdPAgMB
|
1236 |
+
AAGjYzBhMA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQW
|
1237 |
+
BBRF66Kv9JLLgjEtUYunpyGd823IDzAfBgNVHSMEGDAWgBRF66Kv9JLLgjEtUYun
|
1238 |
+
pyGd823IDzANBgkqhkiG9w0BAQUFAAOCAQEAog683+Lt8ONyc3pklL/3cmbYMuRC
|
1239 |
+
dWKuh+vy1dneVrOfzM4UKLkNl2BcEkxY5NM9g0lFWJc1aRqoR+pWxnmrEthngYTf
|
1240 |
+
fwk8lOa4JiwgvT2zKIn3X/8i4peEH+ll74fg38FnSbNd67IJKusm7Xi+fT8r87cm
|
1241 |
+
NW1fiQG2SVufAQWbqz0lwcy2f8Lxb4bG+mRo64EtlOtCt/qMHt1i8b5QZ7dsvfPx
|
1242 |
+
H2sMNgcWfzd8qVttevESRmCD1ycEvkvOl77DZypoEd+A5wwzZr8TDRRu838fYxAe
|
1243 |
+
+o0bJW1sj6W3YQGx0qMmoRBxna3iw/nDmVG3KwcIzi7mULKn+gpFL6Lw8g==
|
1244 |
+
-----END CERTIFICATE-----
|
1245 |
+
|
1246 |
+
# Issuer: CN=DigiCert Global Root CA O=DigiCert Inc OU=www.digicert.com
|
1247 |
+
# Subject: CN=DigiCert Global Root CA O=DigiCert Inc OU=www.digicert.com
|
1248 |
+
# Label: "DigiCert Global Root CA"
|
1249 |
+
# Serial: 10944719598952040374951832963794454346
|
1250 |
+
# MD5 Fingerprint: 79:e4:a9:84:0d:7d:3a:96:d7:c0:4f:e2:43:4c:89:2e
|
1251 |
+
# SHA1 Fingerprint: a8:98:5d:3a:65:e5:e5:c4:b2:d7:d6:6d:40:c6:dd:2f:b1:9c:54:36
|
1252 |
+
# SHA256 Fingerprint: 43:48:a0:e9:44:4c:78:cb:26:5e:05:8d:5e:89:44:b4:d8:4f:96:62:bd:26:db:25:7f:89:34:a4:43:c7:01:61
|
1253 |
+
-----BEGIN CERTIFICATE-----
|
1254 |
+
MIIDrzCCApegAwIBAgIQCDvgVpBCRrGhdWrJWZHHSjANBgkqhkiG9w0BAQUFADBh
|
1255 |
+
MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3
|
1256 |
+
d3cuZGlnaWNlcnQuY29tMSAwHgYDVQQDExdEaWdpQ2VydCBHbG9iYWwgUm9vdCBD
|
1257 |
+
QTAeFw0wNjExMTAwMDAwMDBaFw0zMTExMTAwMDAwMDBaMGExCzAJBgNVBAYTAlVT
|
1258 |
+
MRUwEwYDVQQKEwxEaWdpQ2VydCBJbmMxGTAXBgNVBAsTEHd3dy5kaWdpY2VydC5j
|
1259 |
+
b20xIDAeBgNVBAMTF0RpZ2lDZXJ0IEdsb2JhbCBSb290IENBMIIBIjANBgkqhkiG
|
1260 |
+
9w0BAQEFAAOCAQ8AMIIBCgKCAQEA4jvhEXLeqKTTo1eqUKKPC3eQyaKl7hLOllsB
|
1261 |
+
CSDMAZOnTjC3U/dDxGkAV53ijSLdhwZAAIEJzs4bg7/fzTtxRuLWZscFs3YnFo97
|
1262 |
+
nh6Vfe63SKMI2tavegw5BmV/Sl0fvBf4q77uKNd0f3p4mVmFaG5cIzJLv07A6Fpt
|
1263 |
+
43C/dxC//AH2hdmoRBBYMql1GNXRor5H4idq9Joz+EkIYIvUX7Q6hL+hqkpMfT7P
|
1264 |
+
T19sdl6gSzeRntwi5m3OFBqOasv+zbMUZBfHWymeMr/y7vrTC0LUq7dBMtoM1O/4
|
1265 |
+
gdW7jVg/tRvoSSiicNoxBN33shbyTApOB6jtSj1etX+jkMOvJwIDAQABo2MwYTAO
|
1266 |
+
BgNVHQ8BAf8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUA95QNVbR
|
1267 |
+
TLtm8KPiGxvDl7I90VUwHwYDVR0jBBgwFoAUA95QNVbRTLtm8KPiGxvDl7I90VUw
|
1268 |
+
DQYJKoZIhvcNAQEFBQADggEBAMucN6pIExIK+t1EnE9SsPTfrgT1eXkIoyQY/Esr
|
1269 |
+
hMAtudXH/vTBH1jLuG2cenTnmCmrEbXjcKChzUyImZOMkXDiqw8cvpOp/2PV5Adg
|
1270 |
+
06O/nVsJ8dWO41P0jmP6P6fbtGbfYmbW0W5BjfIttep3Sp+dWOIrWcBAI+0tKIJF
|
1271 |
+
PnlUkiaY4IBIqDfv8NZ5YBberOgOzW6sRBc4L0na4UU+Krk2U886UAb3LujEV0ls
|
1272 |
+
YSEY1QSteDwsOoBrp+uvFRTp2InBuThs4pFsiv9kuXclVzDAGySj4dzp30d8tbQk
|
1273 |
+
CAUw7C29C79Fv1C5qfPrmAESrciIxpg0X40KPMbp1ZWVbd4=
|
1274 |
+
-----END CERTIFICATE-----
|
1275 |
+
|
1276 |
+
# Issuer: CN=DigiCert High Assurance EV Root CA O=DigiCert Inc OU=www.digicert.com
|
1277 |
+
# Subject: CN=DigiCert High Assurance EV Root CA O=DigiCert Inc OU=www.digicert.com
|
1278 |
+
# Label: "DigiCert High Assurance EV Root CA"
|
1279 |
+
# Serial: 3553400076410547919724730734378100087
|
1280 |
+
# MD5 Fingerprint: d4:74:de:57:5c:39:b2:d3:9c:85:83:c5:c0:65:49:8a
|
1281 |
+
# SHA1 Fingerprint: 5f:b7:ee:06:33:e2:59:db:ad:0c:4c:9a:e6:d3:8f:1a:61:c7:dc:25
|
1282 |
+
# SHA256 Fingerprint: 74:31:e5:f4:c3:c1:ce:46:90:77:4f:0b:61:e0:54:40:88:3b:a9:a0:1e:d0:0b:a6:ab:d7:80:6e:d3:b1:18:cf
|
1283 |
+
-----BEGIN CERTIFICATE-----
|
1284 |
+
MIIDxTCCAq2gAwIBAgIQAqxcJmoLQJuPC3nyrkYldzANBgkqhkiG9w0BAQUFADBs
|
1285 |
+
MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3
|
1286 |
+
d3cuZGlnaWNlcnQuY29tMSswKQYDVQQDEyJEaWdpQ2VydCBIaWdoIEFzc3VyYW5j
|
1287 |
+
ZSBFViBSb290IENBMB4XDTA2MTExMDAwMDAwMFoXDTMxMTExMDAwMDAwMFowbDEL
|
1288 |
+
MAkGA1UEBhMCVVMxFTATBgNVBAoTDERpZ2lDZXJ0IEluYzEZMBcGA1UECxMQd3d3
|
1289 |
+
LmRpZ2ljZXJ0LmNvbTErMCkGA1UEAxMiRGlnaUNlcnQgSGlnaCBBc3N1cmFuY2Ug
|
1290 |
+
RVYgUm9vdCBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMbM5XPm
|
1291 |
+
+9S75S0tMqbf5YE/yc0lSbZxKsPVlDRnogocsF9ppkCxxLeyj9CYpKlBWTrT3JTW
|
1292 |
+
PNt0OKRKzE0lgvdKpVMSOO7zSW1xkX5jtqumX8OkhPhPYlG++MXs2ziS4wblCJEM
|
1293 |
+
xChBVfvLWokVfnHoNb9Ncgk9vjo4UFt3MRuNs8ckRZqnrG0AFFoEt7oT61EKmEFB
|
1294 |
+
Ik5lYYeBQVCmeVyJ3hlKV9Uu5l0cUyx+mM0aBhakaHPQNAQTXKFx01p8VdteZOE3
|
1295 |
+
hzBWBOURtCmAEvF5OYiiAhF8J2a3iLd48soKqDirCmTCv2ZdlYTBoSUeh10aUAsg
|
1296 |
+
EsxBu24LUTi4S8sCAwEAAaNjMGEwDgYDVR0PAQH/BAQDAgGGMA8GA1UdEwEB/wQF
|
1297 |
+
MAMBAf8wHQYDVR0OBBYEFLE+w2kD+L9HAdSYJhoIAu9jZCvDMB8GA1UdIwQYMBaA
|
1298 |
+
FLE+w2kD+L9HAdSYJhoIAu9jZCvDMA0GCSqGSIb3DQEBBQUAA4IBAQAcGgaX3Nec
|
1299 |
+
nzyIZgYIVyHbIUf4KmeqvxgydkAQV8GK83rZEWWONfqe/EW1ntlMMUu4kehDLI6z
|
1300 |
+
eM7b41N5cdblIZQB2lWHmiRk9opmzN6cN82oNLFpmyPInngiK3BD41VHMWEZ71jF
|
1301 |
+
hS9OMPagMRYjyOfiZRYzy78aG6A9+MpeizGLYAiJLQwGXFK3xPkKmNEVX58Svnw2
|
1302 |
+
Yzi9RKR/5CYrCsSXaQ3pjOLAEFe4yHYSkVXySGnYvCoCWw9E1CAx2/S6cCZdkGCe
|
1303 |
+
vEsXCS+0yx5DaMkHJ8HSXPfqIbloEpw8nL+e/IBcm2PN7EeqJSdnoDfzAIJ9VNep
|
1304 |
+
+OkuE6N36B9K
|
1305 |
+
-----END CERTIFICATE-----
|
1306 |
+
|
1307 |
+
# Issuer: CN=GeoTrust Primary Certification Authority O=GeoTrust Inc.
|
1308 |
+
# Subject: CN=GeoTrust Primary Certification Authority O=GeoTrust Inc.
|
1309 |
+
# Label: "GeoTrust Primary Certification Authority"
|
1310 |
+
# Serial: 32798226551256963324313806436981982369
|
1311 |
+
# MD5 Fingerprint: 02:26:c3:01:5e:08:30:37:43:a9:d0:7d:cf:37:e6:bf
|
1312 |
+
# SHA1 Fingerprint: 32:3c:11:8e:1b:f7:b8:b6:52:54:e2:e2:10:0d:d6:02:90:37:f0:96
|
1313 |
+
# SHA256 Fingerprint: 37:d5:10:06:c5:12:ea:ab:62:64:21:f1:ec:8c:92:01:3f:c5:f8:2a:e9:8e:e5:33:eb:46:19:b8:de:b4:d0:6c
|
1314 |
+
-----BEGIN CERTIFICATE-----
|
1315 |
+
MIIDfDCCAmSgAwIBAgIQGKy1av1pthU6Y2yv2vrEoTANBgkqhkiG9w0BAQUFADBY
|
1316 |
+
MQswCQYDVQQGEwJVUzEWMBQGA1UEChMNR2VvVHJ1c3QgSW5jLjExMC8GA1UEAxMo
|
1317 |
+
R2VvVHJ1c3QgUHJpbWFyeSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAeFw0wNjEx
|
1318 |
+
MjcwMDAwMDBaFw0zNjA3MTYyMzU5NTlaMFgxCzAJBgNVBAYTAlVTMRYwFAYDVQQK
|
1319 |
+
Ew1HZW9UcnVzdCBJbmMuMTEwLwYDVQQDEyhHZW9UcnVzdCBQcmltYXJ5IENlcnRp
|
1320 |
+
ZmljYXRpb24gQXV0aG9yaXR5MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKC
|
1321 |
+
AQEAvrgVe//UfH1nrYNke8hCUy3f9oQIIGHWAVlqnEQRr+92/ZV+zmEwu3qDXwK9
|
1322 |
+
AWbK7hWNb6EwnL2hhZ6UOvNWiAAxz9juapYC2e0DjPt1befquFUWBRaa9OBesYjA
|
1323 |
+
ZIVcFU2Ix7e64HXprQU9nceJSOC7KMgD4TCTZF5SwFlwIjVXiIrxlQqD17wxcwE0
|
1324 |
+
7e9GceBrAqg1cmuXm2bgyxx5X9gaBGgeRwLmnWDiNpcB3841kt++Z8dtd1k7j53W
|
1325 |
+
kBWUvEI0EME5+bEnPn7WinXFsq+W06Lem+SYvn3h6YGttm/81w7a4DSwDRp35+MI
|
1326 |
+
mO9Y+pyEtzavwt+s0vQQBnBxNQIDAQABo0IwQDAPBgNVHRMBAf8EBTADAQH/MA4G
|
1327 |
+
A1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQULNVQQZcVi/CPNmFbSvtr2ZnJM5IwDQYJ
|
1328 |
+
KoZIhvcNAQEFBQADggEBAFpwfyzdtzRP9YZRqSa+S7iq8XEN3GHHoOo0Hnp3DwQ1
|
1329 |
+
6CePbJC/kRYkRj5KTs4rFtULUh38H2eiAkUxT87z+gOneZ1TatnaYzr4gNfTmeGl
|
1330 |
+
4b7UVXGYNTq+k+qurUKykG/g/CFNNWMziUnWm07Kx+dOCQD32sfvmWKZd7aVIl6K
|
1331 |
+
oKv0uHiYyjgZmclynnjNS6yvGaBzEi38wkG6gZHaFloxt/m0cYASSJlyc1pZU8Fj
|
1332 |
+
UjPtp8nSOQJw+uCxQmYpqptR7TBUIhRf2asdweSU8Pj1K/fqynhG1riR/aYNKxoU
|
1333 |
+
AT6A8EKglQdebc3MS6RFjasS6LPeWuWgfOgPIh1a6Vk=
|
1334 |
+
-----END CERTIFICATE-----
|
1335 |
+
|
1336 |
+
# Issuer: CN=thawte Primary Root CA O=thawte, Inc. OU=Certification Services Division/(c) 2006 thawte, Inc. - For authorized use only
|
1337 |
+
# Subject: CN=thawte Primary Root CA O=thawte, Inc. OU=Certification Services Division/(c) 2006 thawte, Inc. - For authorized use only
|
1338 |
+
# Label: "thawte Primary Root CA"
|
1339 |
+
# Serial: 69529181992039203566298953787712940909
|
1340 |
+
# MD5 Fingerprint: 8c:ca:dc:0b:22:ce:f5:be:72:ac:41:1a:11:a8:d8:12
|
1341 |
+
# SHA1 Fingerprint: 91:c6:d6:ee:3e:8a:c8:63:84:e5:48:c2:99:29:5c:75:6c:81:7b:81
|
1342 |
+
# SHA256 Fingerprint: 8d:72:2f:81:a9:c1:13:c0:79:1d:f1:36:a2:96:6d:b2:6c:95:0a:97:1d:b4:6b:41:99:f4:ea:54:b7:8b:fb:9f
|
1343 |
+
-----BEGIN CERTIFICATE-----
|
1344 |
+
MIIEIDCCAwigAwIBAgIQNE7VVyDV7exJ9C/ON9srbTANBgkqhkiG9w0BAQUFADCB
|
1345 |
+
qTELMAkGA1UEBhMCVVMxFTATBgNVBAoTDHRoYXd0ZSwgSW5jLjEoMCYGA1UECxMf
|
1346 |
+
Q2VydGlmaWNhdGlvbiBTZXJ2aWNlcyBEaXZpc2lvbjE4MDYGA1UECxMvKGMpIDIw
|
1347 |
+
MDYgdGhhd3RlLCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxHzAdBgNV
|
1348 |
+
BAMTFnRoYXd0ZSBQcmltYXJ5IFJvb3QgQ0EwHhcNMDYxMTE3MDAwMDAwWhcNMzYw
|
1349 |
+
NzE2MjM1OTU5WjCBqTELMAkGA1UEBhMCVVMxFTATBgNVBAoTDHRoYXd0ZSwgSW5j
|
1350 |
+
LjEoMCYGA1UECxMfQ2VydGlmaWNhdGlvbiBTZXJ2aWNlcyBEaXZpc2lvbjE4MDYG
|
1351 |
+
A1UECxMvKGMpIDIwMDYgdGhhd3RlLCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNl
|
1352 |
+
IG9ubHkxHzAdBgNVBAMTFnRoYXd0ZSBQcmltYXJ5IFJvb3QgQ0EwggEiMA0GCSqG
|
1353 |
+
SIb3DQEBAQUAA4IBDwAwggEKAoIBAQCsoPD7gFnUnMekz52hWXMJEEUMDSxuaPFs
|
1354 |
+
W0hoSVk3/AszGcJ3f8wQLZU0HObrTQmnHNK4yZc2AreJ1CRfBsDMRJSUjQJib+ta
|
1355 |
+
3RGNKJpchJAQeg29dGYvajig4tVUROsdB58Hum/u6f1OCyn1PoSgAfGcq/gcfomk
|
1356 |
+
6KHYcWUNo1F77rzSImANuVud37r8UVsLr5iy6S7pBOhih94ryNdOwUxkHt3Ph1i6
|
1357 |
+
Sk/KaAcdHJ1KxtUvkcx8cXIcxcBn6zL9yZJclNqFwJu/U30rCfSMnZEfl2pSy94J
|
1358 |
+
NqR32HuHUETVPm4pafs5SSYeCaWAe0At6+gnhcn+Yf1+5nyXHdWdAgMBAAGjQjBA
|
1359 |
+
MA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBR7W0XP
|
1360 |
+
r87Lev0xkhpqtvNG61dIUDANBgkqhkiG9w0BAQUFAAOCAQEAeRHAS7ORtvzw6WfU
|
1361 |
+
DW5FvlXok9LOAz/t2iWwHVfLHjp2oEzsUHboZHIMpKnxuIvW1oeEuzLlQRHAd9mz
|
1362 |
+
YJ3rG9XRbkREqaYB7FViHXe4XI5ISXycO1cRrK1zN44veFyQaEfZYGDm/Ac9IiAX
|
1363 |
+
xPcW6cTYcvnIc3zfFi8VqT79aie2oetaupgf1eNNZAqdE8hhuvU5HIe6uL17In/2
|
1364 |
+
/qxAeeWsEG89jxt5dovEN7MhGITlNgDrYyCZuen+MwS7QcjBAvlEYyCegc5C09Y/
|
1365 |
+
LHbTY5xZ3Y+m4Q6gLkH3LpVHz7z9M/P2C2F+fpErgUfCJzDupxBdN49cOSvkBPB7
|
1366 |
+
jVaMaA==
|
1367 |
+
-----END CERTIFICATE-----
|
1368 |
+
|
1369 |
+
# Issuer: CN=VeriSign Class 3 Public Primary Certification Authority - G5 O=VeriSign, Inc. OU=VeriSign Trust Network/(c) 2006 VeriSign, Inc. - For authorized use only
|
1370 |
+
# Subject: CN=VeriSign Class 3 Public Primary Certification Authority - G5 O=VeriSign, Inc. OU=VeriSign Trust Network/(c) 2006 VeriSign, Inc. - For authorized use only
|
1371 |
+
# Label: "VeriSign Class 3 Public Primary Certification Authority - G5"
|
1372 |
+
# Serial: 33037644167568058970164719475676101450
|
1373 |
+
# MD5 Fingerprint: cb:17:e4:31:67:3e:e2:09:fe:45:57:93:f3:0a:fa:1c
|
1374 |
+
# SHA1 Fingerprint: 4e:b6:d5:78:49:9b:1c:cf:5f:58:1e:ad:56:be:3d:9b:67:44:a5:e5
|
1375 |
+
# SHA256 Fingerprint: 9a:cf:ab:7e:43:c8:d8:80:d0:6b:26:2a:94:de:ee:e4:b4:65:99:89:c3:d0:ca:f1:9b:af:64:05:e4:1a:b7:df
|
1376 |
+
-----BEGIN CERTIFICATE-----
|
1377 |
+
MIIE0zCCA7ugAwIBAgIQGNrRniZ96LtKIVjNzGs7SjANBgkqhkiG9w0BAQUFADCB
|
1378 |
+
yjELMAkGA1UEBhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYDVQQL
|
1379 |
+
ExZWZXJpU2lnbiBUcnVzdCBOZXR3b3JrMTowOAYDVQQLEzEoYykgMjAwNiBWZXJp
|
1380 |
+
U2lnbiwgSW5jLiAtIEZvciBhdXRob3JpemVkIHVzZSBvbmx5MUUwQwYDVQQDEzxW
|
1381 |
+
ZXJpU2lnbiBDbGFzcyAzIFB1YmxpYyBQcmltYXJ5IENlcnRpZmljYXRpb24gQXV0
|
1382 |
+
aG9yaXR5IC0gRzUwHhcNMDYxMTA4MDAwMDAwWhcNMzYwNzE2MjM1OTU5WjCByjEL
|
1383 |
+
MAkGA1UEBhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYDVQQLExZW
|
1384 |
+
ZXJpU2lnbiBUcnVzdCBOZXR3b3JrMTowOAYDVQQLEzEoYykgMjAwNiBWZXJpU2ln
|
1385 |
+
biwgSW5jLiAtIEZvciBhdXRob3JpemVkIHVzZSBvbmx5MUUwQwYDVQQDEzxWZXJp
|
1386 |
+
U2lnbiBDbGFzcyAzIFB1YmxpYyBQcmltYXJ5IENlcnRpZmljYXRpb24gQXV0aG9y
|
1387 |
+
aXR5IC0gRzUwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCvJAgIKXo1
|
1388 |
+
nmAMqudLO07cfLw8RRy7K+D+KQL5VwijZIUVJ/XxrcgxiV0i6CqqpkKzj/i5Vbex
|
1389 |
+
t0uz/o9+B1fs70PbZmIVYc9gDaTY3vjgw2IIPVQT60nKWVSFJuUrjxuf6/WhkcIz
|
1390 |
+
SdhDY2pSS9KP6HBRTdGJaXvHcPaz3BJ023tdS1bTlr8Vd6Gw9KIl8q8ckmcY5fQG
|
1391 |
+
BO+QueQA5N06tRn/Arr0PO7gi+s3i+z016zy9vA9r911kTMZHRxAy3QkGSGT2RT+
|
1392 |
+
rCpSx4/VBEnkjWNHiDxpg8v+R70rfk/Fla4OndTRQ8Bnc+MUCH7lP59zuDMKz10/
|
1393 |
+
NIeWiu5T6CUVAgMBAAGjgbIwga8wDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8E
|
1394 |
+
BAMCAQYwbQYIKwYBBQUHAQwEYTBfoV2gWzBZMFcwVRYJaW1hZ2UvZ2lmMCEwHzAH
|
1395 |
+
BgUrDgMCGgQUj+XTGoasjY5rw8+AatRIGCx7GS4wJRYjaHR0cDovL2xvZ28udmVy
|
1396 |
+
aXNpZ24uY29tL3ZzbG9nby5naWYwHQYDVR0OBBYEFH/TZafC3ey78DAJ80M5+gKv
|
1397 |
+
MzEzMA0GCSqGSIb3DQEBBQUAA4IBAQCTJEowX2LP2BqYLz3q3JktvXf2pXkiOOzE
|
1398 |
+
p6B4Eq1iDkVwZMXnl2YtmAl+X6/WzChl8gGqCBpH3vn5fJJaCGkgDdk+bW48DW7Y
|
1399 |
+
5gaRQBi5+MHt39tBquCWIMnNZBU4gcmU7qKEKQsTb47bDN0lAtukixlE0kF6BWlK
|
1400 |
+
WE9gyn6CagsCqiUXObXbf+eEZSqVir2G3l6BFoMtEMze/aiCKm0oHw0LxOXnGiYZ
|
1401 |
+
4fQRbxC1lfznQgUy286dUV4otp6F01vvpX1FQHKOtw5rDgb7MzVIcbidJ4vEZV8N
|
1402 |
+
hnacRHr2lVz2XTIIM6RUthg/aFzyQkqFOFSDX9HoLPKsEdao7WNq
|
1403 |
+
-----END CERTIFICATE-----
|
1404 |
+
|
1405 |
+
# Issuer: CN=COMODO Certification Authority O=COMODO CA Limited
|
1406 |
+
# Subject: CN=COMODO Certification Authority O=COMODO CA Limited
|
1407 |
+
# Label: "COMODO Certification Authority"
|
1408 |
+
# Serial: 104350513648249232941998508985834464573
|
1409 |
+
# MD5 Fingerprint: 5c:48:dc:f7:42:72:ec:56:94:6d:1c:cc:71:35:80:75
|
1410 |
+
# SHA1 Fingerprint: 66:31:bf:9e:f7:4f:9e:b6:c9:d5:a6:0c:ba:6a:be:d1:f7:bd:ef:7b
|
1411 |
+
# SHA256 Fingerprint: 0c:2c:d6:3d:f7:80:6f:a3:99:ed:e8:09:11:6b:57:5b:f8:79:89:f0:65:18:f9:80:8c:86:05:03:17:8b:af:66
|
1412 |
+
-----BEGIN CERTIFICATE-----
|
1413 |
+
MIIEHTCCAwWgAwIBAgIQToEtioJl4AsC7j41AkblPTANBgkqhkiG9w0BAQUFADCB
|
1414 |
+
gTELMAkGA1UEBhMCR0IxGzAZBgNVBAgTEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4G
|
1415 |
+
A1UEBxMHU2FsZm9yZDEaMBgGA1UEChMRQ09NT0RPIENBIExpbWl0ZWQxJzAlBgNV
|
1416 |
+
BAMTHkNPTU9ETyBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAeFw0wNjEyMDEwMDAw
|
1417 |
+
MDBaFw0yOTEyMzEyMzU5NTlaMIGBMQswCQYDVQQGEwJHQjEbMBkGA1UECBMSR3Jl
|
1418 |
+
YXRlciBNYW5jaGVzdGVyMRAwDgYDVQQHEwdTYWxmb3JkMRowGAYDVQQKExFDT01P
|
1419 |
+
RE8gQ0EgTGltaXRlZDEnMCUGA1UEAxMeQ09NT0RPIENlcnRpZmljYXRpb24gQXV0
|
1420 |
+
aG9yaXR5MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA0ECLi3LjkRv3
|
1421 |
+
UcEbVASY06m/weaKXTuH+7uIzg3jLz8GlvCiKVCZrts7oVewdFFxze1CkU1B/qnI
|
1422 |
+
2GqGd0S7WWaXUF601CxwRM/aN5VCaTwwxHGzUvAhTaHYujl8HJ6jJJ3ygxaYqhZ8
|
1423 |
+
Q5sVW7euNJH+1GImGEaaP+vB+fGQV+useg2L23IwambV4EajcNxo2f8ESIl33rXp
|
1424 |
+
+2dtQem8Ob0y2WIC8bGoPW43nOIv4tOiJovGuFVDiOEjPqXSJDlqR6sA1KGzqSX+
|
1425 |
+
DT+nHbrTUcELpNqsOO9VUCQFZUaTNE8tja3G1CEZ0o7KBWFxB3NH5YoZEr0ETc5O
|
1426 |
+
nKVIrLsm9wIDAQABo4GOMIGLMB0GA1UdDgQWBBQLWOWLxkwVN6RAqTCpIb5HNlpW
|
1427 |
+
/zAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zBJBgNVHR8EQjBAMD6g
|
1428 |
+
PKA6hjhodHRwOi8vY3JsLmNvbW9kb2NhLmNvbS9DT01PRE9DZXJ0aWZpY2F0aW9u
|
1429 |
+
QXV0aG9yaXR5LmNybDANBgkqhkiG9w0BAQUFAAOCAQEAPpiem/Yb6dc5t3iuHXIY
|
1430 |
+
SdOH5EOC6z/JqvWote9VfCFSZfnVDeFs9D6Mk3ORLgLETgdxb8CPOGEIqB6BCsAv
|
1431 |
+
IC9Bi5HcSEW88cbeunZrM8gALTFGTO3nnc+IlP8zwFboJIYmuNg4ON8qa90SzMc/
|
1432 |
+
RxdMosIGlgnW2/4/PEZB31jiVg88O8EckzXZOFKs7sjsLjBOlDW0JB9LeGna8gI4
|
1433 |
+
zJVSk/BwJVmcIGfE7vmLV2H0knZ9P4SNVbfo5azV8fUZVqZa+5Acr5Pr5RzUZ5dd
|
1434 |
+
BA6+C4OmF4O5MBKgxTMVBbkN+8cFduPYSo38NBejxiEovjBFMR7HeL5YYTisO+IB
|
1435 |
+
ZQ==
|
1436 |
+
-----END CERTIFICATE-----
|
1437 |
+
|
1438 |
+
# Issuer: CN=Network Solutions Certificate Authority O=Network Solutions L.L.C.
|
1439 |
+
# Subject: CN=Network Solutions Certificate Authority O=Network Solutions L.L.C.
|
1440 |
+
# Label: "Network Solutions Certificate Authority"
|
1441 |
+
# Serial: 116697915152937497490437556386812487904
|
1442 |
+
# MD5 Fingerprint: d3:f3:a6:16:c0:fa:6b:1d:59:b1:2d:96:4d:0e:11:2e
|
1443 |
+
# SHA1 Fingerprint: 74:f8:a3:c3:ef:e7:b3:90:06:4b:83:90:3c:21:64:60:20:e5:df:ce
|
1444 |
+
# SHA256 Fingerprint: 15:f0:ba:00:a3:ac:7a:f3:ac:88:4c:07:2b:10:11:a0:77:bd:77:c0:97:f4:01:64:b2:f8:59:8a:bd:83:86:0c
|
1445 |
+
-----BEGIN CERTIFICATE-----
|
1446 |
+
MIID5jCCAs6gAwIBAgIQV8szb8JcFuZHFhfjkDFo4DANBgkqhkiG9w0BAQUFADBi
|
1447 |
+
MQswCQYDVQQGEwJVUzEhMB8GA1UEChMYTmV0d29yayBTb2x1dGlvbnMgTC5MLkMu
|
1448 |
+
MTAwLgYDVQQDEydOZXR3b3JrIFNvbHV0aW9ucyBDZXJ0aWZpY2F0ZSBBdXRob3Jp
|
1449 |
+
dHkwHhcNMDYxMjAxMDAwMDAwWhcNMjkxMjMxMjM1OTU5WjBiMQswCQYDVQQGEwJV
|
1450 |
+
UzEhMB8GA1UEChMYTmV0d29yayBTb2x1dGlvbnMgTC5MLkMuMTAwLgYDVQQDEydO
|
1451 |
+
ZXR3b3JrIFNvbHV0aW9ucyBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkwggEiMA0GCSqG
|
1452 |
+
SIb3DQEBAQUAA4IBDwAwggEKAoIBAQDkvH6SMG3G2I4rC7xGzuAnlt7e+foS0zwz
|
1453 |
+
c7MEL7xxjOWftiJgPl9dzgn/ggwbmlFQGiaJ3dVhXRncEg8tCqJDXRfQNJIg6nPP
|
1454 |
+
OCwGJgl6cvf6UDL4wpPTaaIjzkGxzOTVHzbRijr4jGPiFFlp7Q3Tf2vouAPlT2rl
|
1455 |
+
mGNpSAW+Lv8ztumXWWn4Zxmuk2GWRBXTcrA/vGp97Eh/jcOrqnErU2lBUzS1sLnF
|
1456 |
+
BgrEsEX1QV1uiUV7PTsmjHTC5dLRfbIR1PtYMiKagMnc/Qzpf14Dl847ABSHJ3A4
|
1457 |
+
qY5usyd2mFHgBeMhqxrVhSI8KbWaFsWAqPS7azCPL0YCorEMIuDTAgMBAAGjgZcw
|
1458 |
+
gZQwHQYDVR0OBBYEFCEwyfsA106Y2oeqKtCnLrFAMadMMA4GA1UdDwEB/wQEAwIB
|
1459 |
+
BjAPBgNVHRMBAf8EBTADAQH/MFIGA1UdHwRLMEkwR6BFoEOGQWh0dHA6Ly9jcmwu
|
1460 |
+
bmV0c29sc3NsLmNvbS9OZXR3b3JrU29sdXRpb25zQ2VydGlmaWNhdGVBdXRob3Jp
|
1461 |
+
dHkuY3JsMA0GCSqGSIb3DQEBBQUAA4IBAQC7rkvnt1frf6ott3NHhWrB5KUd5Oc8
|
1462 |
+
6fRZZXe1eltajSU24HqXLjjAV2CDmAaDn7l2em5Q4LqILPxFzBiwmZVRDuwduIj/
|
1463 |
+
h1AcgsLj4DKAv6ALR8jDMe+ZZzKATxcheQxpXN5eNK4CtSbqUN9/GGUsyfJj4akH
|
1464 |
+
/nxxH2szJGoeBfcFaMBqEssuXmHLrijTfsK0ZpEmXzwuJF/LWA/rKOyvEZbz3Htv
|
1465 |
+
wKeI8lN3s2Berq4o2jUsbzRF0ybh3uxbTydrFny9RAQYgrOJeRcQcT16ohZO9QHN
|
1466 |
+
pGxlaKFJdlxDydi8NmdspZS11My5vWo1ViHe2MPr+8ukYEywVaCge1ey
|
1467 |
+
-----END CERTIFICATE-----
|
1468 |
+
|
1469 |
+
# Issuer: CN=COMODO ECC Certification Authority O=COMODO CA Limited
|
1470 |
+
# Subject: CN=COMODO ECC Certification Authority O=COMODO CA Limited
|
1471 |
+
# Label: "COMODO ECC Certification Authority"
|
1472 |
+
# Serial: 41578283867086692638256921589707938090
|
1473 |
+
# MD5 Fingerprint: 7c:62:ff:74:9d:31:53:5e:68:4a:d5:78:aa:1e:bf:23
|
1474 |
+
# SHA1 Fingerprint: 9f:74:4e:9f:2b:4d:ba:ec:0f:31:2c:50:b6:56:3b:8e:2d:93:c3:11
|
1475 |
+
# SHA256 Fingerprint: 17:93:92:7a:06:14:54:97:89:ad:ce:2f:8f:34:f7:f0:b6:6d:0f:3a:e3:a3:b8:4d:21:ec:15:db:ba:4f:ad:c7
|
1476 |
+
-----BEGIN CERTIFICATE-----
|
1477 |
+
MIICiTCCAg+gAwIBAgIQH0evqmIAcFBUTAGem2OZKjAKBggqhkjOPQQDAzCBhTEL
|
1478 |
+
MAkGA1UEBhMCR0IxGzAZBgNVBAgTEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4GA1UE
|
1479 |
+
BxMHU2FsZm9yZDEaMBgGA1UEChMRQ09NT0RPIENBIExpbWl0ZWQxKzApBgNVBAMT
|
1480 |
+
IkNPTU9ETyBFQ0MgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwHhcNMDgwMzA2MDAw
|
1481 |
+
MDAwWhcNMzgwMTE4MjM1OTU5WjCBhTELMAkGA1UEBhMCR0IxGzAZBgNVBAgTEkdy
|
1482 |
+
ZWF0ZXIgTWFuY2hlc3RlcjEQMA4GA1UEBxMHU2FsZm9yZDEaMBgGA1UEChMRQ09N
|
1483 |
+
T0RPIENBIExpbWl0ZWQxKzApBgNVBAMTIkNPTU9ETyBFQ0MgQ2VydGlmaWNhdGlv
|
1484 |
+
biBBdXRob3JpdHkwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAAQDR3svdcmCFYX7deSR
|
1485 |
+
FtSrYpn1PlILBs5BAH+X4QokPB0BBO490o0JlwzgdeT6+3eKKvUDYEs2ixYjFq0J
|
1486 |
+
cfRK9ChQtP6IHG4/bC8vCVlbpVsLM5niwz2J+Wos77LTBumjQjBAMB0GA1UdDgQW
|
1487 |
+
BBR1cacZSBm8nZ3qQUfflMRId5nTeTAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/
|
1488 |
+
BAUwAwEB/zAKBggqhkjOPQQDAwNoADBlAjEA7wNbeqy3eApyt4jf/7VGFAkK+qDm
|
1489 |
+
fQjGGoe9GKhzvSbKYAydzpmfz1wPMOG+FDHqAjAU9JM8SaczepBGR7NjfRObTrdv
|
1490 |
+
GDeAU/7dIOA1mjbRxwG55tzd8/8dLDoWV9mSOdY=
|
1491 |
+
-----END CERTIFICATE-----
|
1492 |
+
|
1493 |
+
# Issuer: CN=TC TrustCenter Class 2 CA II O=TC TrustCenter GmbH OU=TC TrustCenter Class 2 CA
|
1494 |
+
# Subject: CN=TC TrustCenter Class 2 CA II O=TC TrustCenter GmbH OU=TC TrustCenter Class 2 CA
|
1495 |
+
# Label: "TC TrustCenter Class 2 CA II"
|
1496 |
+
# Serial: 941389028203453866782103406992443
|
1497 |
+
# MD5 Fingerprint: ce:78:33:5c:59:78:01:6e:18:ea:b9:36:a0:b9:2e:23
|
1498 |
+
# SHA1 Fingerprint: ae:50:83:ed:7c:f4:5c:bc:8f:61:c6:21:fe:68:5d:79:42:21:15:6e
|
1499 |
+
# SHA256 Fingerprint: e6:b8:f8:76:64:85:f8:07:ae:7f:8d:ac:16:70:46:1f:07:c0:a1:3e:ef:3a:1f:f7:17:53:8d:7a:ba:d3:91:b4
|
1500 |
+
-----BEGIN CERTIFICATE-----
|
1501 |
+
MIIEqjCCA5KgAwIBAgIOLmoAAQACH9dSISwRXDswDQYJKoZIhvcNAQEFBQAwdjEL
|
1502 |
+
MAkGA1UEBhMCREUxHDAaBgNVBAoTE1RDIFRydXN0Q2VudGVyIEdtYkgxIjAgBgNV
|
1503 |
+
BAsTGVRDIFRydXN0Q2VudGVyIENsYXNzIDIgQ0ExJTAjBgNVBAMTHFRDIFRydXN0
|
1504 |
+
Q2VudGVyIENsYXNzIDIgQ0EgSUkwHhcNMDYwMTEyMTQzODQzWhcNMjUxMjMxMjI1
|
1505 |
+
OTU5WjB2MQswCQYDVQQGEwJERTEcMBoGA1UEChMTVEMgVHJ1c3RDZW50ZXIgR21i
|
1506 |
+
SDEiMCAGA1UECxMZVEMgVHJ1c3RDZW50ZXIgQ2xhc3MgMiBDQTElMCMGA1UEAxMc
|
1507 |
+
VEMgVHJ1c3RDZW50ZXIgQ2xhc3MgMiBDQSBJSTCCASIwDQYJKoZIhvcNAQEBBQAD
|
1508 |
+
ggEPADCCAQoCggEBAKuAh5uO8MN8h9foJIIRszzdQ2Lu+MNF2ujhoF/RKrLqk2jf
|
1509 |
+
tMjWQ+nEdVl//OEd+DFwIxuInie5e/060smp6RQvkL4DUsFJzfb95AhmC1eKokKg
|
1510 |
+
uNV/aVyQMrKXDcpK3EY+AlWJU+MaWss2xgdW94zPEfRMuzBwBJWl9jmM/XOBCH2J
|
1511 |
+
XjIeIqkiRUuwZi4wzJ9l/fzLganx4Duvo4bRierERXlQXa7pIXSSTYtZgo+U4+lK
|
1512 |
+
8edJsBTj9WLL1XK9H7nSn6DNqPoByNkN39r8R52zyFTfSUrxIan+GE7uSNQZu+99
|
1513 |
+
5OKdy1u2bv/jzVrndIIFuoAlOMvkaZ6vQaoahPUCAwEAAaOCATQwggEwMA8GA1Ud
|
1514 |
+
EwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBTjq1RMgKHbVkO3
|
1515 |
+
kUrL84J6E1wIqzCB7QYDVR0fBIHlMIHiMIHfoIHcoIHZhjVodHRwOi8vd3d3LnRy
|
1516 |
+
dXN0Y2VudGVyLmRlL2NybC92Mi90Y19jbGFzc18yX2NhX0lJLmNybIaBn2xkYXA6
|
1517 |
+
Ly93d3cudHJ1c3RjZW50ZXIuZGUvQ049VEMlMjBUcnVzdENlbnRlciUyMENsYXNz
|
1518 |
+
JTIwMiUyMENBJTIwSUksTz1UQyUyMFRydXN0Q2VudGVyJTIwR21iSCxPVT1yb290
|
1519 |
+
Y2VydHMsREM9dHJ1c3RjZW50ZXIsREM9ZGU/Y2VydGlmaWNhdGVSZXZvY2F0aW9u
|
1520 |
+
TGlzdD9iYXNlPzANBgkqhkiG9w0BAQUFAAOCAQEAjNfffu4bgBCzg/XbEeprS6iS
|
1521 |
+
GNn3Bzn1LL4GdXpoUxUc6krtXvwjshOg0wn/9vYua0Fxec3ibf2uWWuFHbhOIprt
|
1522 |
+
ZjluS5TmVfwLG4t3wVMTZonZKNaL80VKY7f9ewthXbhtvsPcW3nS7Yblok2+XnR8
|
1523 |
+
au0WOB9/WIFaGusyiC2y8zl3gK9etmF1KdsjTYjKUCjLhdLTEKJZbtOTVAB6okaV
|
1524 |
+
hgWcqRmY5TFyDADiZ9lA4CQze28suVyrZZ0srHbqNZn1l7kPJOzHdiEoZa5X6AeI
|
1525 |
+
dUpWoNIFOqTmjZKILPPy4cHGYdtBxceb9w4aUUXCYWvcZCcXjFq32nQozZfkvQ==
|
1526 |
+
-----END CERTIFICATE-----
|
1527 |
+
|
1528 |
+
# Issuer: CN=TC TrustCenter Class 3 CA II O=TC TrustCenter GmbH OU=TC TrustCenter Class 3 CA
|
1529 |
+
# Subject: CN=TC TrustCenter Class 3 CA II O=TC TrustCenter GmbH OU=TC TrustCenter Class 3 CA
|
1530 |
+
# Label: "TC TrustCenter Class 3 CA II"
|
1531 |
+
# Serial: 1506523511417715638772220530020799
|
1532 |
+
# MD5 Fingerprint: 56:5f:aa:80:61:12:17:f6:67:21:e6:2b:6d:61:56:8e
|
1533 |
+
# SHA1 Fingerprint: 80:25:ef:f4:6e:70:c8:d4:72:24:65:84:fe:40:3b:8a:8d:6a:db:f5
|
1534 |
+
# SHA256 Fingerprint: 8d:a0:84:fc:f9:9c:e0:77:22:f8:9b:32:05:93:98:06:fa:5c:b8:11:e1:c8:13:f6:a1:08:c7:d3:36:b3:40:8e
|
1535 |
+
-----BEGIN CERTIFICATE-----
|
1536 |
+
MIIEqjCCA5KgAwIBAgIOSkcAAQAC5aBd1j8AUb8wDQYJKoZIhvcNAQEFBQAwdjEL
|
1537 |
+
MAkGA1UEBhMCREUxHDAaBgNVBAoTE1RDIFRydXN0Q2VudGVyIEdtYkgxIjAgBgNV
|
1538 |
+
BAsTGVRDIFRydXN0Q2VudGVyIENsYXNzIDMgQ0ExJTAjBgNVBAMTHFRDIFRydXN0
|
1539 |
+
Q2VudGVyIENsYXNzIDMgQ0EgSUkwHhcNMDYwMTEyMTQ0MTU3WhcNMjUxMjMxMjI1
|
1540 |
+
OTU5WjB2MQswCQYDVQQGEwJERTEcMBoGA1UEChMTVEMgVHJ1c3RDZW50ZXIgR21i
|
1541 |
+
SDEiMCAGA1UECxMZVEMgVHJ1c3RDZW50ZXIgQ2xhc3MgMyBDQTElMCMGA1UEAxMc
|
1542 |
+
VEMgVHJ1c3RDZW50ZXIgQ2xhc3MgMyBDQSBJSTCCASIwDQYJKoZIhvcNAQEBBQAD
|
1543 |
+
ggEPADCCAQoCggEBALTgu1G7OVyLBMVMeRwjhjEQY0NVJz/GRcekPewJDRoeIMJW
|
1544 |
+
Ht4bNwcwIi9v8Qbxq63WyKthoy9DxLCyLfzDlml7forkzMA5EpBCYMnMNWju2l+Q
|
1545 |
+
Vl/NHE1bWEnrDgFPZPosPIlY2C8u4rBo6SI7dYnWRBpl8huXJh0obazovVkdKyT2
|
1546 |
+
1oQDZogkAHhg8fir/gKya/si+zXmFtGt9i4S5Po1auUZuV3bOx4a+9P/FRQI2Alq
|
1547 |
+
ukWdFHlgfa9Aigdzs5OW03Q0jTo3Kd5c7PXuLjHCINy+8U9/I1LZW+Jk2ZyqBwi1
|
1548 |
+
Rb3R0DHBq1SfqdLDYmAD8bs5SpJKPQq5ncWg/jcCAwEAAaOCATQwggEwMA8GA1Ud
|
1549 |
+
EwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBTUovyfs8PYA9NX
|
1550 |
+
XAek0CSnwPIA1DCB7QYDVR0fBIHlMIHiMIHfoIHcoIHZhjVodHRwOi8vd3d3LnRy
|
1551 |
+
dXN0Y2VudGVyLmRlL2NybC92Mi90Y19jbGFzc18zX2NhX0lJLmNybIaBn2xkYXA6
|
1552 |
+
Ly93d3cudHJ1c3RjZW50ZXIuZGUvQ049VEMlMjBUcnVzdENlbnRlciUyMENsYXNz
|
1553 |
+
JTIwMyUyMENBJTIwSUksTz1UQyUyMFRydXN0Q2VudGVyJTIwR21iSCxPVT1yb290
|
1554 |
+
Y2VydHMsREM9dHJ1c3RjZW50ZXIsREM9ZGU/Y2VydGlmaWNhdGVSZXZvY2F0aW9u
|
1555 |
+
TGlzdD9iYXNlPzANBgkqhkiG9w0BAQUFAAOCAQEANmDkcPcGIEPZIxpC8vijsrlN
|
1556 |
+
irTzwppVMXzEO2eatN9NDoqTSheLG43KieHPOh6sHfGcMrSOWXaiQYUlN6AT0PV8
|
1557 |
+
TtXqluJucsG7Kv5sbviRmEb8yRtXW+rIGjs/sFGYPAfaLFkB2otE6OF0/ado3VS6
|
1558 |
+
g0bsyEa1+K+XwDsJHI/OcpY9M1ZwvJbL2NV9IJqDnxrcOfHFcqMRA/07QlIp2+gB
|
1559 |
+
95tejNaNhk4Z+rwcvsUhpYeeeC422wlxo3I0+GzjBgnyXlal092Y+tTmBvTwtiBj
|
1560 |
+
S+opvaqCZh77gaqnN60TGOaSw4HBM7uIHqHn4rS9MWwOUT1v+5ZWgOI2F9Hc5A==
|
1561 |
+
-----END CERTIFICATE-----
|
1562 |
+
|
1563 |
+
# Issuer: CN=TC TrustCenter Universal CA I O=TC TrustCenter GmbH OU=TC TrustCenter Universal CA
|
1564 |
+
# Subject: CN=TC TrustCenter Universal CA I O=TC TrustCenter GmbH OU=TC TrustCenter Universal CA
|
1565 |
+
# Label: "TC TrustCenter Universal CA I"
|
1566 |
+
# Serial: 601024842042189035295619584734726
|
1567 |
+
# MD5 Fingerprint: 45:e1:a5:72:c5:a9:36:64:40:9e:f5:e4:58:84:67:8c
|
1568 |
+
# SHA1 Fingerprint: 6b:2f:34:ad:89:58:be:62:fd:b0:6b:5c:ce:bb:9d:d9:4f:4e:39:f3
|
1569 |
+
# SHA256 Fingerprint: eb:f3:c0:2a:87:89:b1:fb:7d:51:19:95:d6:63:b7:29:06:d9:13:ce:0d:5e:10:56:8a:8a:77:e2:58:61:67:e7
|
1570 |
+
-----BEGIN CERTIFICATE-----
|
1571 |
+
MIID3TCCAsWgAwIBAgIOHaIAAQAC7LdggHiNtgYwDQYJKoZIhvcNAQEFBQAweTEL
|
1572 |
+
MAkGA1UEBhMCREUxHDAaBgNVBAoTE1RDIFRydXN0Q2VudGVyIEdtYkgxJDAiBgNV
|
1573 |
+
BAsTG1RDIFRydXN0Q2VudGVyIFVuaXZlcnNhbCBDQTEmMCQGA1UEAxMdVEMgVHJ1
|
1574 |
+
c3RDZW50ZXIgVW5pdmVyc2FsIENBIEkwHhcNMDYwMzIyMTU1NDI4WhcNMjUxMjMx
|
1575 |
+
MjI1OTU5WjB5MQswCQYDVQQGEwJERTEcMBoGA1UEChMTVEMgVHJ1c3RDZW50ZXIg
|
1576 |
+
R21iSDEkMCIGA1UECxMbVEMgVHJ1c3RDZW50ZXIgVW5pdmVyc2FsIENBMSYwJAYD
|
1577 |
+
VQQDEx1UQyBUcnVzdENlbnRlciBVbml2ZXJzYWwgQ0EgSTCCASIwDQYJKoZIhvcN
|
1578 |
+
AQEBBQADggEPADCCAQoCggEBAKR3I5ZEr5D0MacQ9CaHnPM42Q9e3s9B6DGtxnSR
|
1579 |
+
JJZ4Hgmgm5qVSkr1YnwCqMqs+1oEdjneX/H5s7/zA1hV0qq34wQi0fiU2iIIAI3T
|
1580 |
+
fCZdzHd55yx4Oagmcw6iXSVphU9VDprvxrlE4Vc93x9UIuVvZaozhDrzznq+VZeu
|
1581 |
+
jRIPFDPiUHDDSYcTvFHe15gSWu86gzOSBnWLknwSaHtwag+1m7Z3W0hZneTvWq3z
|
1582 |
+
wZ7U10VOylY0Ibw+F1tvdwxIAUMpsN0/lm7mlaoMwCC2/T42J5zjXM9OgdwZu5GQ
|
1583 |
+
fezmlwQek8wiSdeXhrYTCjxDI3d+8NzmzSQfO4ObNDqDNOMCAwEAAaNjMGEwHwYD
|
1584 |
+
VR0jBBgwFoAUkqR1LKSevoFE63n8isWVpesQdXMwDwYDVR0TAQH/BAUwAwEB/zAO
|
1585 |
+
BgNVHQ8BAf8EBAMCAYYwHQYDVR0OBBYEFJKkdSyknr6BROt5/IrFlaXrEHVzMA0G
|
1586 |
+
CSqGSIb3DQEBBQUAA4IBAQAo0uCG1eb4e/CX3CJrO5UUVg8RMKWaTzqwOuAGy2X1
|
1587 |
+
7caXJ/4l8lfmXpWMPmRgFVp/Lw0BxbFg/UU1z/CyvwbZ71q+s2IhtNerNXxTPqYn
|
1588 |
+
8aEt2hojnczd7Dwtnic0XQ/CNnm8yUpiLe1r2X1BQ3y2qsrtYbE3ghUJGooWMNjs
|
1589 |
+
ydZHcnhLEEYUjl8Or+zHL6sQ17bxbuyGssLoDZJz3KL0Dzq/YSMQiZxIQG5wALPT
|
1590 |
+
ujdEWBF6AmqI8Dc08BnprNRlc/ZpjGSUOnmFKbAWKwyCPwacx/0QK54PLLae4xW/
|
1591 |
+
2TYcuiUaUj0a7CIMHOCkoj3w6DnPgcB77V0fb8XQC9eY
|
1592 |
+
-----END CERTIFICATE-----
|
1593 |
+
|
1594 |
+
# Issuer: CN=Cybertrust Global Root O=Cybertrust, Inc
|
1595 |
+
# Subject: CN=Cybertrust Global Root O=Cybertrust, Inc
|
1596 |
+
# Label: "Cybertrust Global Root"
|
1597 |
+
# Serial: 4835703278459682877484360
|
1598 |
+
# MD5 Fingerprint: 72:e4:4a:87:e3:69:40:80:77:ea:bc:e3:f4:ff:f0:e1
|
1599 |
+
# SHA1 Fingerprint: 5f:43:e5:b1:bf:f8:78:8c:ac:1c:c7:ca:4a:9a:c6:22:2b:cc:34:c6
|
1600 |
+
# SHA256 Fingerprint: 96:0a:df:00:63:e9:63:56:75:0c:29:65:dd:0a:08:67:da:0b:9c:bd:6e:77:71:4a:ea:fb:23:49:ab:39:3d:a3
|
1601 |
+
-----BEGIN CERTIFICATE-----
|
1602 |
+
MIIDoTCCAomgAwIBAgILBAAAAAABD4WqLUgwDQYJKoZIhvcNAQEFBQAwOzEYMBYG
|
1603 |
+
A1UEChMPQ3liZXJ0cnVzdCwgSW5jMR8wHQYDVQQDExZDeWJlcnRydXN0IEdsb2Jh
|
1604 |
+
bCBSb290MB4XDTA2MTIxNTA4MDAwMFoXDTIxMTIxNTA4MDAwMFowOzEYMBYGA1UE
|
1605 |
+
ChMPQ3liZXJ0cnVzdCwgSW5jMR8wHQYDVQQDExZDeWJlcnRydXN0IEdsb2JhbCBS
|
1606 |
+
b290MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA+Mi8vRRQZhP/8NN5
|
1607 |
+
7CPytxrHjoXxEnOmGaoQ25yiZXRadz5RfVb23CO21O1fWLE3TdVJDm71aofW0ozS
|
1608 |
+
J8bi/zafmGWgE07GKmSb1ZASzxQG9Dvj1Ci+6A74q05IlG2OlTEQXO2iLb3VOm2y
|
1609 |
+
HLtgwEZLAfVJrn5GitB0jaEMAs7u/OePuGtm839EAL9mJRQr3RAwHQeWP032a7iP
|
1610 |
+
t3sMpTjr3kfb1V05/Iin89cqdPHoWqI7n1C6poxFNcJQZZXcY4Lv3b93TZxiyWNz
|
1611 |
+
FtApD0mpSPCzqrdsxacwOUBdrsTiXSZT8M4cIwhhqJQZugRiQOwfOHB3EgZxpzAY
|
1612 |
+
XSUnpQIDAQABo4GlMIGiMA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMBAf8EBTADAQH/
|
1613 |
+
MB0GA1UdDgQWBBS2CHsNesysIEyGVjJez6tuhS1wVzA/BgNVHR8EODA2MDSgMqAw
|
1614 |
+
hi5odHRwOi8vd3d3Mi5wdWJsaWMtdHJ1c3QuY29tL2NybC9jdC9jdHJvb3QuY3Js
|
1615 |
+
MB8GA1UdIwQYMBaAFLYIew16zKwgTIZWMl7Pq26FLXBXMA0GCSqGSIb3DQEBBQUA
|
1616 |
+
A4IBAQBW7wojoFROlZfJ+InaRcHUowAl9B8Tq7ejhVhpwjCt2BWKLePJzYFa+HMj
|
1617 |
+
Wqd8BfP9IjsO0QbE2zZMcwSO5bAi5MXzLqXZI+O4Tkogp24CJJ8iYGd7ix1yCcUx
|
1618 |
+
XOl5n4BHPa2hCwcUPUf/A2kaDAtE52Mlp3+yybh2hO0j9n0Hq0V+09+zv+mKts2o
|
1619 |
+
omcrUtW3ZfA5TGOgkXmTUg9U3YO7n9GPp1Nzw8v/MOx8BLjYRB+TX3EJIrduPuoc
|
1620 |
+
A06dGiBh+4E37F78CkWr1+cXVdCg6mCbpvbjjFspwgZgFJ0tl0ypkxWdYcQBX0jW
|
1621 |
+
WL1WMRJOEcgh4LMRkWXbtKaIOM5V
|
1622 |
+
-----END CERTIFICATE-----
|
1623 |
+
|
1624 |
+
# Issuer: CN=GeoTrust Primary Certification Authority - G3 O=GeoTrust Inc. OU=(c) 2008 GeoTrust Inc. - For authorized use only
|
1625 |
+
# Subject: CN=GeoTrust Primary Certification Authority - G3 O=GeoTrust Inc. OU=(c) 2008 GeoTrust Inc. - For authorized use only
|
1626 |
+
# Label: "GeoTrust Primary Certification Authority - G3"
|
1627 |
+
# Serial: 28809105769928564313984085209975885599
|
1628 |
+
# MD5 Fingerprint: b5:e8:34:36:c9:10:44:58:48:70:6d:2e:83:d4:b8:05
|
1629 |
+
# SHA1 Fingerprint: 03:9e:ed:b8:0b:e7:a0:3c:69:53:89:3b:20:d2:d9:32:3a:4c:2a:fd
|
1630 |
+
# SHA256 Fingerprint: b4:78:b8:12:25:0d:f8:78:63:5c:2a:a7:ec:7d:15:5e:aa:62:5e:e8:29:16:e2:cd:29:43:61:88:6c:d1:fb:d4
|
1631 |
+
-----BEGIN CERTIFICATE-----
|
1632 |
+
MIID/jCCAuagAwIBAgIQFaxulBmyeUtB9iepwxgPHzANBgkqhkiG9w0BAQsFADCB
|
1633 |
+
mDELMAkGA1UEBhMCVVMxFjAUBgNVBAoTDUdlb1RydXN0IEluYy4xOTA3BgNVBAsT
|
1634 |
+
MChjKSAyMDA4IEdlb1RydXN0IEluYy4gLSBGb3IgYXV0aG9yaXplZCB1c2Ugb25s
|
1635 |
+
eTE2MDQGA1UEAxMtR2VvVHJ1c3QgUHJpbWFyeSBDZXJ0aWZpY2F0aW9uIEF1dGhv
|
1636 |
+
cml0eSAtIEczMB4XDTA4MDQwMjAwMDAwMFoXDTM3MTIwMTIzNTk1OVowgZgxCzAJ
|
1637 |
+
BgNVBAYTAlVTMRYwFAYDVQQKEw1HZW9UcnVzdCBJbmMuMTkwNwYDVQQLEzAoYykg
|
1638 |
+
MjAwOCBHZW9UcnVzdCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxNjA0
|
1639 |
+
BgNVBAMTLUdlb1RydXN0IFByaW1hcnkgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkg
|
1640 |
+
LSBHMzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANziXmJYHTNXOTIz
|
1641 |
+
+uvLh4yn1ErdBojqZI4xmKU4kB6Yzy5jK/BGvESyiaHAKAxJcCGVn2TAppMSAmUm
|
1642 |
+
hsalifD614SgcK9PGpc/BkTVyetyEH3kMSj7HGHmKAdEc5IiaacDiGydY8hS2pgn
|
1643 |
+
5whMcD60yRLBxWeDXTPzAxHsatBT4tG6NmCUgLthY2xbF37fQJQeqw3CIShwiP/W
|
1644 |
+
JmxsYAQlTlV+fe+/lEjetx3dcI0FX4ilm/LC7urRQEFtYjgdVgbFA0dRIBn8exAL
|
1645 |
+
DmKudlW/X3e+PkkBUz2YJQN2JFodtNuJ6nnltrM7P7pMKEF/BqxqjsHQ9gUdfeZC
|
1646 |
+
huOl1UcCAwEAAaNCMEAwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYw
|
1647 |
+
HQYDVR0OBBYEFMR5yo6hTgMdHNxr2zFblD4/MH8tMA0GCSqGSIb3DQEBCwUAA4IB
|
1648 |
+
AQAtxRPPVoB7eni9n64smefv2t+UXglpp+duaIy9cr5HqQ6XErhK8WTTOd8lNNTB
|
1649 |
+
zU6B8A8ExCSzNJbGpqow32hhc9f5joWJ7w5elShKKiePEI4ufIbEAp7aDHdlDkQN
|
1650 |
+
kv39sxY2+hENHYwOB4lqKVb3cvTdFZx3NWZXqxNT2I7BQMXXExZacse3aQHEerGD
|
1651 |
+
AWh9jUGhlBjBJVz88P6DAod8DQ3PLghcSkANPuyBYeYk28rgDi0Hsj5W3I31QYUH
|
1652 |
+
SJsMC8tJP33st/3LjWeJGqvtux6jAAgIFyqCXDFdRootD4abdNlF+9RAsXqqaC2G
|
1653 |
+
spki4cErx5z481+oghLrGREt
|
1654 |
+
-----END CERTIFICATE-----
|
1655 |
+
|
1656 |
+
# Issuer: CN=thawte Primary Root CA - G2 O=thawte, Inc. OU=(c) 2007 thawte, Inc. - For authorized use only
|
1657 |
+
# Subject: CN=thawte Primary Root CA - G2 O=thawte, Inc. OU=(c) 2007 thawte, Inc. - For authorized use only
|
1658 |
+
# Label: "thawte Primary Root CA - G2"
|
1659 |
+
# Serial: 71758320672825410020661621085256472406
|
1660 |
+
# MD5 Fingerprint: 74:9d:ea:60:24:c4:fd:22:53:3e:cc:3a:72:d9:29:4f
|
1661 |
+
# SHA1 Fingerprint: aa:db:bc:22:23:8f:c4:01:a1:27:bb:38:dd:f4:1d:db:08:9e:f0:12
|
1662 |
+
# SHA256 Fingerprint: a4:31:0d:50:af:18:a6:44:71:90:37:2a:86:af:af:8b:95:1f:fb:43:1d:83:7f:1e:56:88:b4:59:71:ed:15:57
|
1663 |
+
-----BEGIN CERTIFICATE-----
|
1664 |
+
MIICiDCCAg2gAwIBAgIQNfwmXNmET8k9Jj1Xm67XVjAKBggqhkjOPQQDAzCBhDEL
|
1665 |
+
MAkGA1UEBhMCVVMxFTATBgNVBAoTDHRoYXd0ZSwgSW5jLjE4MDYGA1UECxMvKGMp
|
1666 |
+
IDIwMDcgdGhhd3RlLCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxJDAi
|
1667 |
+
BgNVBAMTG3RoYXd0ZSBQcmltYXJ5IFJvb3QgQ0EgLSBHMjAeFw0wNzExMDUwMDAw
|
1668 |
+
MDBaFw0zODAxMTgyMzU5NTlaMIGEMQswCQYDVQQGEwJVUzEVMBMGA1UEChMMdGhh
|
1669 |
+
d3RlLCBJbmMuMTgwNgYDVQQLEy8oYykgMjAwNyB0aGF3dGUsIEluYy4gLSBGb3Ig
|
1670 |
+
YXV0aG9yaXplZCB1c2Ugb25seTEkMCIGA1UEAxMbdGhhd3RlIFByaW1hcnkgUm9v
|
1671 |
+
dCBDQSAtIEcyMHYwEAYHKoZIzj0CAQYFK4EEACIDYgAEotWcgnuVnfFSeIf+iha/
|
1672 |
+
BebfowJPDQfGAFG6DAJSLSKkQjnE/o/qycG+1E3/n3qe4rF8mq2nhglzh9HnmuN6
|
1673 |
+
papu+7qzcMBniKI11KOasf2twu8x+qi58/sIxpHR+ymVo0IwQDAPBgNVHRMBAf8E
|
1674 |
+
BTADAQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUmtgAMADna3+FGO6Lts6K
|
1675 |
+
DPgR4bswCgYIKoZIzj0EAwMDaQAwZgIxAN344FdHW6fmCsO99YCKlzUNG4k8VIZ3
|
1676 |
+
KMqh9HneteY4sPBlcIx/AlTCv//YoT7ZzwIxAMSNlPzcU9LcnXgWHxUzI1NS41ox
|
1677 |
+
XZ3Krr0TKUQNJ1uo52icEvdYPy5yAlejj6EULg==
|
1678 |
+
-----END CERTIFICATE-----
|
1679 |
+
|
1680 |
+
# Issuer: CN=thawte Primary Root CA - G3 O=thawte, Inc. OU=Certification Services Division/(c) 2008 thawte, Inc. - For authorized use only
|
1681 |
+
# Subject: CN=thawte Primary Root CA - G3 O=thawte, Inc. OU=Certification Services Division/(c) 2008 thawte, Inc. - For authorized use only
|
1682 |
+
# Label: "thawte Primary Root CA - G3"
|
1683 |
+
# Serial: 127614157056681299805556476275995414779
|
1684 |
+
# MD5 Fingerprint: fb:1b:5d:43:8a:94:cd:44:c6:76:f2:43:4b:47:e7:31
|
1685 |
+
# SHA1 Fingerprint: f1:8b:53:8d:1b:e9:03:b6:a6:f0:56:43:5b:17:15:89:ca:f3:6b:f2
|
1686 |
+
# SHA256 Fingerprint: 4b:03:f4:58:07:ad:70:f2:1b:fc:2c:ae:71:c9:fd:e4:60:4c:06:4c:f5:ff:b6:86:ba:e5:db:aa:d7:fd:d3:4c
|
1687 |
+
-----BEGIN CERTIFICATE-----
|
1688 |
+
MIIEKjCCAxKgAwIBAgIQYAGXt0an6rS0mtZLL/eQ+zANBgkqhkiG9w0BAQsFADCB
|
1689 |
+
rjELMAkGA1UEBhMCVVMxFTATBgNVBAoTDHRoYXd0ZSwgSW5jLjEoMCYGA1UECxMf
|
1690 |
+
Q2VydGlmaWNhdGlvbiBTZXJ2aWNlcyBEaXZpc2lvbjE4MDYGA1UECxMvKGMpIDIw
|
1691 |
+
MDggdGhhd3RlLCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxJDAiBgNV
|
1692 |
+
BAMTG3RoYXd0ZSBQcmltYXJ5IFJvb3QgQ0EgLSBHMzAeFw0wODA0MDIwMDAwMDBa
|
1693 |
+
Fw0zNzEyMDEyMzU5NTlaMIGuMQswCQYDVQQGEwJVUzEVMBMGA1UEChMMdGhhd3Rl
|
1694 |
+
LCBJbmMuMSgwJgYDVQQLEx9DZXJ0aWZpY2F0aW9uIFNlcnZpY2VzIERpdmlzaW9u
|
1695 |
+
MTgwNgYDVQQLEy8oYykgMjAwOCB0aGF3dGUsIEluYy4gLSBGb3IgYXV0aG9yaXpl
|
1696 |
+
ZCB1c2Ugb25seTEkMCIGA1UEAxMbdGhhd3RlIFByaW1hcnkgUm9vdCBDQSAtIEcz
|
1697 |
+
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAsr8nLPvb2FvdeHsbnndm
|
1698 |
+
gcs+vHyu86YnmjSjaDFxODNi5PNxZnmxqWWjpYvVj2AtP0LMqmsywCPLLEHd5N/8
|
1699 |
+
YZzic7IilRFDGF/Eth9XbAoFWCLINkw6fKXRz4aviKdEAhN0cXMKQlkC+BsUa0Lf
|
1700 |
+
b1+6a4KinVvnSr0eAXLbS3ToO39/fR8EtCab4LRarEc9VbjXsCZSKAExQGbY2SS9
|
1701 |
+
9irY7CFJXJv2eul/VTV+lmuNk5Mny5K76qxAwJ/C+IDPXfRa3M50hqY+bAtTyr2S
|
1702 |
+
zhkGcuYMXDhpxwTWvGzOW/b3aJzcJRVIiKHpqfiYnODz1TEoYRFsZ5aNOZnLwkUk
|
1703 |
+
OQIDAQABo0IwQDAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNV
|
1704 |
+
HQ4EFgQUrWyqlGCc7eT/+j4KdCtjA/e2Wb8wDQYJKoZIhvcNAQELBQADggEBABpA
|
1705 |
+
2JVlrAmSicY59BDlqQ5mU1143vokkbvnRFHfxhY0Cu9qRFHqKweKA3rD6z8KLFIW
|
1706 |
+
oCtDuSWQP3CpMyVtRRooOyfPqsMpQhvfO0zAMzRbQYi/aytlryjvsvXDqmbOe1bu
|
1707 |
+
t8jLZ8HJnBoYuMTDSQPxYA5QzUbF83d597YV4Djbxy8ooAw/dyZ02SUS2jHaGh7c
|
1708 |
+
KUGRIjxpp7sC8rZcJwOJ9Abqm+RyguOhCcHpABnTPtRwa7pxpqpYrvS76Wy274fM
|
1709 |
+
m7v/OeZWYdMKp8RcTGB7BXcmer/YB1IsYvdwY9k5vG8cwnncdimvzsUsZAReiDZu
|
1710 |
+
MdRAGmI0Nj81Aa6sY6A=
|
1711 |
+
-----END CERTIFICATE-----
|
1712 |
+
|
1713 |
+
# Issuer: CN=GeoTrust Primary Certification Authority - G2 O=GeoTrust Inc. OU=(c) 2007 GeoTrust Inc. - For authorized use only
|
1714 |
+
# Subject: CN=GeoTrust Primary Certification Authority - G2 O=GeoTrust Inc. OU=(c) 2007 GeoTrust Inc. - For authorized use only
|
1715 |
+
# Label: "GeoTrust Primary Certification Authority - G2"
|
1716 |
+
# Serial: 80682863203381065782177908751794619243
|
1717 |
+
# MD5 Fingerprint: 01:5e:d8:6b:bd:6f:3d:8e:a1:31:f8:12:e0:98:73:6a
|
1718 |
+
# SHA1 Fingerprint: 8d:17:84:d5:37:f3:03:7d:ec:70:fe:57:8b:51:9a:99:e6:10:d7:b0
|
1719 |
+
# SHA256 Fingerprint: 5e:db:7a:c4:3b:82:a0:6a:87:61:e8:d7:be:49:79:eb:f2:61:1f:7d:d7:9b:f9:1c:1c:6b:56:6a:21:9e:d7:66
|
1720 |
+
-----BEGIN CERTIFICATE-----
|
1721 |
+
MIICrjCCAjWgAwIBAgIQPLL0SAoA4v7rJDteYD7DazAKBggqhkjOPQQDAzCBmDEL
|
1722 |
+
MAkGA1UEBhMCVVMxFjAUBgNVBAoTDUdlb1RydXN0IEluYy4xOTA3BgNVBAsTMChj
|
1723 |
+
KSAyMDA3IEdlb1RydXN0IEluYy4gLSBGb3IgYXV0aG9yaXplZCB1c2Ugb25seTE2
|
1724 |
+
MDQGA1UEAxMtR2VvVHJ1c3QgUHJpbWFyeSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0
|
1725 |
+
eSAtIEcyMB4XDTA3MTEwNTAwMDAwMFoXDTM4MDExODIzNTk1OVowgZgxCzAJBgNV
|
1726 |
+
BAYTAlVTMRYwFAYDVQQKEw1HZW9UcnVzdCBJbmMuMTkwNwYDVQQLEzAoYykgMjAw
|
1727 |
+
NyBHZW9UcnVzdCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxNjA0BgNV
|
1728 |
+
BAMTLUdlb1RydXN0IFByaW1hcnkgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkgLSBH
|
1729 |
+
MjB2MBAGByqGSM49AgEGBSuBBAAiA2IABBWx6P0DFUPlrOuHNxFi79KDNlJ9RVcL
|
1730 |
+
So17VDs6bl8VAsBQps8lL33KSLjHUGMcKiEIfJo22Av+0SbFWDEwKCXzXV2juLal
|
1731 |
+
tJLtbCyf691DiaI8S0iRHVDsJt/WYC69IaNCMEAwDwYDVR0TAQH/BAUwAwEB/zAO
|
1732 |
+
BgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFBVfNVdRVfslsq0DafwBo/q+EVXVMAoG
|
1733 |
+
CCqGSM49BAMDA2cAMGQCMGSWWaboCd6LuvpaiIjwH5HTRqjySkwCY/tsXzjbLkGT
|
1734 |
+
qQ7mndwxHLKgpxgceeHHNgIwOlavmnRs9vuD4DPTCF+hnMJbn0bWtsuRBmOiBucz
|
1735 |
+
rD6ogRLQy7rQkgu2npaqBA+K
|
1736 |
+
-----END CERTIFICATE-----
|
1737 |
+
|
1738 |
+
# Issuer: CN=VeriSign Universal Root Certification Authority O=VeriSign, Inc. OU=VeriSign Trust Network/(c) 2008 VeriSign, Inc. - For authorized use only
|
1739 |
+
# Subject: CN=VeriSign Universal Root Certification Authority O=VeriSign, Inc. OU=VeriSign Trust Network/(c) 2008 VeriSign, Inc. - For authorized use only
|
1740 |
+
# Label: "VeriSign Universal Root Certification Authority"
|
1741 |
+
# Serial: 85209574734084581917763752644031726877
|
1742 |
+
# MD5 Fingerprint: 8e:ad:b5:01:aa:4d:81:e4:8c:1d:d1:e1:14:00:95:19
|
1743 |
+
# SHA1 Fingerprint: 36:79:ca:35:66:87:72:30:4d:30:a5:fb:87:3b:0f:a7:7b:b7:0d:54
|
1744 |
+
# SHA256 Fingerprint: 23:99:56:11:27:a5:71:25:de:8c:ef:ea:61:0d:df:2f:a0:78:b5:c8:06:7f:4e:82:82:90:bf:b8:60:e8:4b:3c
|
1745 |
+
-----BEGIN CERTIFICATE-----
|
1746 |
+
MIIEuTCCA6GgAwIBAgIQQBrEZCGzEyEDDrvkEhrFHTANBgkqhkiG9w0BAQsFADCB
|
1747 |
+
vTELMAkGA1UEBhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYDVQQL
|
1748 |
+
ExZWZXJpU2lnbiBUcnVzdCBOZXR3b3JrMTowOAYDVQQLEzEoYykgMjAwOCBWZXJp
|
1749 |
+
U2lnbiwgSW5jLiAtIEZvciBhdXRob3JpemVkIHVzZSBvbmx5MTgwNgYDVQQDEy9W
|
1750 |
+
ZXJpU2lnbiBVbml2ZXJzYWwgUm9vdCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAe
|
1751 |
+
Fw0wODA0MDIwMDAwMDBaFw0zNzEyMDEyMzU5NTlaMIG9MQswCQYDVQQGEwJVUzEX
|
1752 |
+
MBUGA1UEChMOVmVyaVNpZ24sIEluYy4xHzAdBgNVBAsTFlZlcmlTaWduIFRydXN0
|
1753 |
+
IE5ldHdvcmsxOjA4BgNVBAsTMShjKSAyMDA4IFZlcmlTaWduLCBJbmMuIC0gRm9y
|
1754 |
+
IGF1dGhvcml6ZWQgdXNlIG9ubHkxODA2BgNVBAMTL1ZlcmlTaWduIFVuaXZlcnNh
|
1755 |
+
bCBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MIIBIjANBgkqhkiG9w0BAQEF
|
1756 |
+
AAOCAQ8AMIIBCgKCAQEAx2E3XrEBNNti1xWb/1hajCMj1mCOkdeQmIN65lgZOIzF
|
1757 |
+
9uVkhbSicfvtvbnazU0AtMgtc6XHaXGVHzk8skQHnOgO+k1KxCHfKWGPMiJhgsWH
|
1758 |
+
H26MfF8WIFFE0XBPV+rjHOPMee5Y2A7Cs0WTwCznmhcrewA3ekEzeOEz4vMQGn+H
|
1759 |
+
LL729fdC4uW/h2KJXwBL38Xd5HVEMkE6HnFuacsLdUYI0crSK5XQz/u5QGtkjFdN
|
1760 |
+
/BMReYTtXlT2NJ8IAfMQJQYXStrxHXpma5hgZqTZ79IugvHw7wnqRMkVauIDbjPT
|
1761 |
+
rJ9VAMf2CGqUuV/c4DPxhGD5WycRtPwW8rtWaoAljQIDAQABo4GyMIGvMA8GA1Ud
|
1762 |
+
EwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMG0GCCsGAQUFBwEMBGEwX6FdoFsw
|
1763 |
+
WTBXMFUWCWltYWdlL2dpZjAhMB8wBwYFKw4DAhoEFI/l0xqGrI2Oa8PPgGrUSBgs
|
1764 |
+
exkuMCUWI2h0dHA6Ly9sb2dvLnZlcmlzaWduLmNvbS92c2xvZ28uZ2lmMB0GA1Ud
|
1765 |
+
DgQWBBS2d/ppSEefUxLVwuoHMnYH0ZcHGTANBgkqhkiG9w0BAQsFAAOCAQEASvj4
|
1766 |
+
sAPmLGd75JR3Y8xuTPl9Dg3cyLk1uXBPY/ok+myDjEedO2Pzmvl2MpWRsXe8rJq+
|
1767 |
+
seQxIcaBlVZaDrHC1LGmWazxY8u4TB1ZkErvkBYoH1quEPuBUDgMbMzxPcP1Y+Oz
|
1768 |
+
4yHJJDnp/RVmRvQbEdBNc6N9Rvk97ahfYtTxP/jgdFcrGJ2BtMQo2pSXpXDrrB2+
|
1769 |
+
BxHw1dvd5Yzw1TKwg+ZX4o+/vqGqvz0dtdQ46tewXDpPaj+PwGZsY6rp2aQW9IHR
|
1770 |
+
lRQOfc2VNNnSj3BzgXucfr2YYdhFh5iQxeuGMMY1v/D/w1WIg0vvBZIGcfK4mJO3
|
1771 |
+
7M2CYfE45k+XmCpajQ==
|
1772 |
+
-----END CERTIFICATE-----
|
1773 |
+
|
1774 |
+
# Issuer: CN=VeriSign Class 3 Public Primary Certification Authority - G4 O=VeriSign, Inc. OU=VeriSign Trust Network/(c) 2007 VeriSign, Inc. - For authorized use only
|
1775 |
+
# Subject: CN=VeriSign Class 3 Public Primary Certification Authority - G4 O=VeriSign, Inc. OU=VeriSign Trust Network/(c) 2007 VeriSign, Inc. - For authorized use only
|
1776 |
+
# Label: "VeriSign Class 3 Public Primary Certification Authority - G4"
|
1777 |
+
# Serial: 63143484348153506665311985501458640051
|
1778 |
+
# MD5 Fingerprint: 3a:52:e1:e7:fd:6f:3a:e3:6f:f3:6f:99:1b:f9:22:41
|
1779 |
+
# SHA1 Fingerprint: 22:d5:d8:df:8f:02:31:d1:8d:f7:9d:b7:cf:8a:2d:64:c9:3f:6c:3a
|
1780 |
+
# SHA256 Fingerprint: 69:dd:d7:ea:90:bb:57:c9:3e:13:5d:c8:5e:a6:fc:d5:48:0b:60:32:39:bd:c4:54:fc:75:8b:2a:26:cf:7f:79
|
1781 |
+
-----BEGIN CERTIFICATE-----
|
1782 |
+
MIIDhDCCAwqgAwIBAgIQL4D+I4wOIg9IZxIokYesszAKBggqhkjOPQQDAzCByjEL
|
1783 |
+
MAkGA1UEBhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYDVQQLExZW
|
1784 |
+
ZXJpU2lnbiBUcnVzdCBOZXR3b3JrMTowOAYDVQQLEzEoYykgMjAwNyBWZXJpU2ln
|
1785 |
+
biwgSW5jLiAtIEZvciBhdXRob3JpemVkIHVzZSBvbmx5MUUwQwYDVQQDEzxWZXJp
|
1786 |
+
U2lnbiBDbGFzcyAzIFB1YmxpYyBQcmltYXJ5IENlcnRpZmljYXRpb24gQXV0aG9y
|
1787 |
+
aXR5IC0gRzQwHhcNMDcxMTA1MDAwMDAwWhcNMzgwMTE4MjM1OTU5WjCByjELMAkG
|
1788 |
+
A1UEBhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYDVQQLExZWZXJp
|
1789 |
+
U2lnbiBUcnVzdCBOZXR3b3JrMTowOAYDVQQLEzEoYykgMjAwNyBWZXJpU2lnbiwg
|
1790 |
+
SW5jLiAtIEZvciBhdXRob3JpemVkIHVzZSBvbmx5MUUwQwYDVQQDEzxWZXJpU2ln
|
1791 |
+
biBDbGFzcyAzIFB1YmxpYyBQcmltYXJ5IENlcnRpZmljYXRpb24gQXV0aG9yaXR5
|
1792 |
+
IC0gRzQwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAASnVnp8Utpkmw4tXNherJI9/gHm
|
1793 |
+
GUo9FANL+mAnINmDiWn6VMaaGF5VKmTeBvaNSjutEDxlPZCIBIngMGGzrl0Bp3ve
|
1794 |
+
fLK+ymVhAIau2o970ImtTR1ZmkGxvEeA3J5iw/mjgbIwga8wDwYDVR0TAQH/BAUw
|
1795 |
+
AwEB/zAOBgNVHQ8BAf8EBAMCAQYwbQYIKwYBBQUHAQwEYTBfoV2gWzBZMFcwVRYJ
|
1796 |
+
aW1hZ2UvZ2lmMCEwHzAHBgUrDgMCGgQUj+XTGoasjY5rw8+AatRIGCx7GS4wJRYj
|
1797 |
+
aHR0cDovL2xvZ28udmVyaXNpZ24uY29tL3ZzbG9nby5naWYwHQYDVR0OBBYEFLMW
|
1798 |
+
kf3upm7ktS5Jj4d4gYDs5bG1MAoGCCqGSM49BAMDA2gAMGUCMGYhDBgmYFo4e1ZC
|
1799 |
+
4Kf8NoRRkSAsdk1DPcQdhCPQrNZ8NQbOzWm9kA3bbEhCHQ6qQgIxAJw9SDkjOVga
|
1800 |
+
FRJZap7v1VmyHVIsmXHNxynfGyphe3HR3vPA5Q06Sqotp9iGKt0uEA==
|
1801 |
+
-----END CERTIFICATE-----
|
1802 |
+
|
1803 |
+
# Issuer: O=VeriSign, Inc. OU=Class 3 Public Primary Certification Authority
|
1804 |
+
# Subject: O=VeriSign, Inc. OU=Class 3 Public Primary Certification Authority
|
1805 |
+
# Label: "Verisign Class 3 Public Primary Certification Authority"
|
1806 |
+
# Serial: 80507572722862485515306429940691309246
|
1807 |
+
# MD5 Fingerprint: ef:5a:f1:33:ef:f1:cd:bb:51:02:ee:12:14:4b:96:c4
|
1808 |
+
# SHA1 Fingerprint: a1:db:63:93:91:6f:17:e4:18:55:09:40:04:15:c7:02:40:b0:ae:6b
|
1809 |
+
# SHA256 Fingerprint: a4:b6:b3:99:6f:c2:f3:06:b3:fd:86:81:bd:63:41:3d:8c:50:09:cc:4f:a3:29:c2:cc:f0:e2:fa:1b:14:03:05
|
1810 |
+
-----BEGIN CERTIFICATE-----
|
1811 |
+
MIICPDCCAaUCEDyRMcsf9tAbDpq40ES/Er4wDQYJKoZIhvcNAQEFBQAwXzELMAkG
|
1812 |
+
A1UEBhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMTcwNQYDVQQLEy5DbGFz
|
1813 |
+
cyAzIFB1YmxpYyBQcmltYXJ5IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MB4XDTk2
|
1814 |
+
MDEyOTAwMDAwMFoXDTI4MDgwMjIzNTk1OVowXzELMAkGA1UEBhMCVVMxFzAVBgNV
|
1815 |
+
BAoTDlZlcmlTaWduLCBJbmMuMTcwNQYDVQQLEy5DbGFzcyAzIFB1YmxpYyBQcmlt
|
1816 |
+
YXJ5IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MIGfMA0GCSqGSIb3DQEBAQUAA4GN
|
1817 |
+
ADCBiQKBgQDJXFme8huKARS0EN8EQNvjV69qRUCPhAwL0TPZ2RHP7gJYHyX3KqhE
|
1818 |
+
BarsAx94f56TuZoAqiN91qyFomNFx3InzPRMxnVx0jnvT0Lwdd8KkMaOIG+YD/is
|
1819 |
+
I19wKTakyYbnsZogy1Olhec9vn2a/iRFM9x2Fe0PonFkTGUugWhFpwIDAQABMA0G
|
1820 |
+
CSqGSIb3DQEBBQUAA4GBABByUqkFFBkyCEHwxWsKzH4PIRnN5GfcX6kb5sroc50i
|
1821 |
+
2JhucwNhkcV8sEVAbkSdjbCxlnRhLQ2pRdKkkirWmnWXbj9T/UWZYB2oK0z5XqcJ
|
1822 |
+
2HUw19JlYD1n1khVdWk/kfVIC0dpImmClr7JyDiGSnoscxlIaU5rfGW/D/xwzoiQ
|
1823 |
+
-----END CERTIFICATE-----
|
1824 |
+
|
1825 |
+
# Issuer: CN=GlobalSign O=GlobalSign OU=GlobalSign Root CA - R3
|
1826 |
+
# Subject: CN=GlobalSign O=GlobalSign OU=GlobalSign Root CA - R3
|
1827 |
+
# Label: "GlobalSign Root CA - R3"
|
1828 |
+
# Serial: 4835703278459759426209954
|
1829 |
+
# MD5 Fingerprint: c5:df:b8:49:ca:05:13:55:ee:2d:ba:1a:c3:3e:b0:28
|
1830 |
+
# SHA1 Fingerprint: d6:9b:56:11:48:f0:1c:77:c5:45:78:c1:09:26:df:5b:85:69:76:ad
|
1831 |
+
# SHA256 Fingerprint: cb:b5:22:d7:b7:f1:27:ad:6a:01:13:86:5b:df:1c:d4:10:2e:7d:07:59:af:63:5a:7c:f4:72:0d:c9:63:c5:3b
|
1832 |
+
-----BEGIN CERTIFICATE-----
|
1833 |
+
MIIDXzCCAkegAwIBAgILBAAAAAABIVhTCKIwDQYJKoZIhvcNAQELBQAwTDEgMB4G
|
1834 |
+
A1UECxMXR2xvYmFsU2lnbiBSb290IENBIC0gUjMxEzARBgNVBAoTCkdsb2JhbFNp
|
1835 |
+
Z24xEzARBgNVBAMTCkdsb2JhbFNpZ24wHhcNMDkwMzE4MTAwMDAwWhcNMjkwMzE4
|
1836 |
+
MTAwMDAwWjBMMSAwHgYDVQQLExdHbG9iYWxTaWduIFJvb3QgQ0EgLSBSMzETMBEG
|
1837 |
+
A1UEChMKR2xvYmFsU2lnbjETMBEGA1UEAxMKR2xvYmFsU2lnbjCCASIwDQYJKoZI
|
1838 |
+
hvcNAQEBBQADggEPADCCAQoCggEBAMwldpB5BngiFvXAg7aEyiie/QV2EcWtiHL8
|
1839 |
+
RgJDx7KKnQRfJMsuS+FggkbhUqsMgUdwbN1k0ev1LKMPgj0MK66X17YUhhB5uzsT
|
1840 |
+
gHeMCOFJ0mpiLx9e+pZo34knlTifBtc+ycsmWQ1z3rDI6SYOgxXG71uL0gRgykmm
|
1841 |
+
KPZpO/bLyCiR5Z2KYVc3rHQU3HTgOu5yLy6c+9C7v/U9AOEGM+iCK65TpjoWc4zd
|
1842 |
+
QQ4gOsC0p6Hpsk+QLjJg6VfLuQSSaGjlOCZgdbKfd/+RFO+uIEn8rUAVSNECMWEZ
|
1843 |
+
XriX7613t2Saer9fwRPvm2L7DWzgVGkWqQPabumDk3F2xmmFghcCAwEAAaNCMEAw
|
1844 |
+
DgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFI/wS3+o
|
1845 |
+
LkUkrk1Q+mOai97i3Ru8MA0GCSqGSIb3DQEBCwUAA4IBAQBLQNvAUKr+yAzv95ZU
|
1846 |
+
RUm7lgAJQayzE4aGKAczymvmdLm6AC2upArT9fHxD4q/c2dKg8dEe3jgr25sbwMp
|
1847 |
+
jjM5RcOO5LlXbKr8EpbsU8Yt5CRsuZRj+9xTaGdWPoO4zzUhw8lo/s7awlOqzJCK
|
1848 |
+
6fBdRoyV3XpYKBovHd7NADdBj+1EbddTKJd+82cEHhXXipa0095MJ6RMG3NzdvQX
|
1849 |
+
mcIfeg7jLQitChws/zyrVQ4PkX4268NXSb7hLi18YIvDQVETI53O9zJrlAGomecs
|
1850 |
+
Mx86OyXShkDOOyyGeMlhLxS67ttVb9+E7gUJTb0o2HLO02JQZR7rkpeDMdmztcpH
|
1851 |
+
WD9f
|
1852 |
+
-----END CERTIFICATE-----
|
1853 |
+
|
1854 |
+
# Issuer: CN=TC TrustCenter Universal CA III O=TC TrustCenter GmbH OU=TC TrustCenter Universal CA
|
1855 |
+
# Subject: CN=TC TrustCenter Universal CA III O=TC TrustCenter GmbH OU=TC TrustCenter Universal CA
|
1856 |
+
# Label: "TC TrustCenter Universal CA III"
|
1857 |
+
# Serial: 2010889993983507346460533407902964
|
1858 |
+
# MD5 Fingerprint: 9f:dd:db:ab:ff:8e:ff:45:21:5f:f0:6c:9d:8f:fe:2b
|
1859 |
+
# SHA1 Fingerprint: 96:56:cd:7b:57:96:98:95:d0:e1:41:46:68:06:fb:b8:c6:11:06:87
|
1860 |
+
# SHA256 Fingerprint: 30:9b:4a:87:f6:ca:56:c9:31:69:aa:a9:9c:6d:98:88:54:d7:89:2b:d5:43:7e:2d:07:b2:9c:be:da:55:d3:5d
|
1861 |
+
-----BEGIN CERTIFICATE-----
|
1862 |
+
MIID4TCCAsmgAwIBAgIOYyUAAQACFI0zFQLkbPQwDQYJKoZIhvcNAQEFBQAwezEL
|
1863 |
+
MAkGA1UEBhMCREUxHDAaBgNVBAoTE1RDIFRydXN0Q2VudGVyIEdtYkgxJDAiBgNV
|
1864 |
+
BAsTG1RDIFRydXN0Q2VudGVyIFVuaXZlcnNhbCBDQTEoMCYGA1UEAxMfVEMgVHJ1
|
1865 |
+
c3RDZW50ZXIgVW5pdmVyc2FsIENBIElJSTAeFw0wOTA5MDkwODE1MjdaFw0yOTEy
|
1866 |
+
MzEyMzU5NTlaMHsxCzAJBgNVBAYTAkRFMRwwGgYDVQQKExNUQyBUcnVzdENlbnRl
|
1867 |
+
ciBHbWJIMSQwIgYDVQQLExtUQyBUcnVzdENlbnRlciBVbml2ZXJzYWwgQ0ExKDAm
|
1868 |
+
BgNVBAMTH1RDIFRydXN0Q2VudGVyIFVuaXZlcnNhbCBDQSBJSUkwggEiMA0GCSqG
|
1869 |
+
SIb3DQEBAQUAA4IBDwAwggEKAoIBAQDC2pxisLlxErALyBpXsq6DFJmzNEubkKLF
|
1870 |
+
5+cvAqBNLaT6hdqbJYUtQCggbergvbFIgyIpRJ9Og+41URNzdNW88jBmlFPAQDYv
|
1871 |
+
DIRlzg9uwliT6CwLOunBjvvya8o84pxOjuT5fdMnnxvVZ3iHLX8LR7PH6MlIfK8v
|
1872 |
+
zArZQe+f/prhsq75U7Xl6UafYOPfjdN/+5Z+s7Vy+EutCHnNaYlAJ/Uqwa1D7KRT
|
1873 |
+
yGG299J5KmcYdkhtWyUB0SbFt1dpIxVbYYqt8Bst2a9c8SaQaanVDED1M4BDj5yj
|
1874 |
+
dipFtK+/fz6HP3bFzSreIMUWWMv5G/UPyw0RUmS40nZid4PxWJ//AgMBAAGjYzBh
|
1875 |
+
MB8GA1UdIwQYMBaAFFbn4VslQ4Dg9ozhcbyO5YAvxEjiMA8GA1UdEwEB/wQFMAMB
|
1876 |
+
Af8wDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBRW5+FbJUOA4PaM4XG8juWAL8RI
|
1877 |
+
4jANBgkqhkiG9w0BAQUFAAOCAQEAg8ev6n9NCjw5sWi+e22JLumzCecYV42Fmhfz
|
1878 |
+
dkJQEw/HkG8zrcVJYCtsSVgZ1OK+t7+rSbyUyKu+KGwWaODIl0YgoGhnYIg5IFHY
|
1879 |
+
aAERzqf2EQf27OysGh+yZm5WZ2B6dF7AbZc2rrUNXWZzwCUyRdhKBgePxLcHsU0G
|
1880 |
+
DeGl6/R1yrqc0L2z0zIkTO5+4nYES0lT2PLpVDP85XEfPRRclkvxOvIAu2y0+pZV
|
1881 |
+
CIgJwcyRGSmwIC3/yzikQOEXvnlhgP8HA4ZMTnsGnxGGjYnuJ8Tb4rwZjgvDwxPH
|
1882 |
+
LQNjO9Po5KIqwoIIlBZU8O8fJ5AluA0OKBtHd0e9HKgl8ZS0Zg==
|
1883 |
+
-----END CERTIFICATE-----
|
1884 |
+
|
1885 |
+
# Issuer: CN=Go Daddy Root Certificate Authority - G2 O=GoDaddy.com, Inc.
|
1886 |
+
# Subject: CN=Go Daddy Root Certificate Authority - G2 O=GoDaddy.com, Inc.
|
1887 |
+
# Label: "Go Daddy Root Certificate Authority - G2"
|
1888 |
+
# Serial: 0
|
1889 |
+
# MD5 Fingerprint: 80:3a:bc:22:c1:e6:fb:8d:9b:3b:27:4a:32:1b:9a:01
|
1890 |
+
# SHA1 Fingerprint: 47:be:ab:c9:22:ea:e8:0e:78:78:34:62:a7:9f:45:c2:54:fd:e6:8b
|
1891 |
+
# SHA256 Fingerprint: 45:14:0b:32:47:eb:9c:c8:c5:b4:f0:d7:b5:30:91:f7:32:92:08:9e:6e:5a:63:e2:74:9d:d3:ac:a9:19:8e:da
|
1892 |
+
-----BEGIN CERTIFICATE-----
|
1893 |
+
MIIDxTCCAq2gAwIBAgIBADANBgkqhkiG9w0BAQsFADCBgzELMAkGA1UEBhMCVVMx
|
1894 |
+
EDAOBgNVBAgTB0FyaXpvbmExEzARBgNVBAcTClNjb3R0c2RhbGUxGjAYBgNVBAoT
|
1895 |
+
EUdvRGFkZHkuY29tLCBJbmMuMTEwLwYDVQQDEyhHbyBEYWRkeSBSb290IENlcnRp
|
1896 |
+
ZmljYXRlIEF1dGhvcml0eSAtIEcyMB4XDTA5MDkwMTAwMDAwMFoXDTM3MTIzMTIz
|
1897 |
+
NTk1OVowgYMxCzAJBgNVBAYTAlVTMRAwDgYDVQQIEwdBcml6b25hMRMwEQYDVQQH
|
1898 |
+
EwpTY290dHNkYWxlMRowGAYDVQQKExFHb0RhZGR5LmNvbSwgSW5jLjExMC8GA1UE
|
1899 |
+
AxMoR28gRGFkZHkgUm9vdCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkgLSBHMjCCASIw
|
1900 |
+
DQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAL9xYgjx+lk09xvJGKP3gElY6SKD
|
1901 |
+
E6bFIEMBO4Tx5oVJnyfq9oQbTqC023CYxzIBsQU+B07u9PpPL1kwIuerGVZr4oAH
|
1902 |
+
/PMWdYA5UXvl+TW2dE6pjYIT5LY/qQOD+qK+ihVqf94Lw7YZFAXK6sOoBJQ7Rnwy
|
1903 |
+
DfMAZiLIjWltNowRGLfTshxgtDj6AozO091GB94KPutdfMh8+7ArU6SSYmlRJQVh
|
1904 |
+
GkSBjCypQ5Yj36w6gZoOKcUcqeldHraenjAKOc7xiID7S13MMuyFYkMlNAJWJwGR
|
1905 |
+
tDtwKj9useiciAF9n9T521NtYJ2/LOdYq7hfRvzOxBsDPAnrSTFcaUaz4EcCAwEA
|
1906 |
+
AaNCMEAwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYE
|
1907 |
+
FDqahQcQZyi27/a9BUFuIMGU2g/eMA0GCSqGSIb3DQEBCwUAA4IBAQCZ21151fmX
|
1908 |
+
WWcDYfF+OwYxdS2hII5PZYe096acvNjpL9DbWu7PdIxztDhC2gV7+AJ1uP2lsdeu
|
1909 |
+
9tfeE8tTEH6KRtGX+rcuKxGrkLAngPnon1rpN5+r5N9ss4UXnT3ZJE95kTXWXwTr
|
1910 |
+
gIOrmgIttRD02JDHBHNA7XIloKmf7J6raBKZV8aPEjoJpL1E/QYVN8Gb5DKj7Tjo
|
1911 |
+
2GTzLH4U/ALqn83/B2gX2yKQOC16jdFU8WnjXzPKej17CuPKf1855eJ1usV2GDPO
|
1912 |
+
LPAvTK33sefOT6jEm0pUBsV/fdUID+Ic/n4XuKxe9tQWskMJDE32p2u0mYRlynqI
|
1913 |
+
4uJEvlz36hz1
|
1914 |
+
-----END CERTIFICATE-----
|
1915 |
+
|
1916 |
+
# Issuer: CN=Starfield Root Certificate Authority - G2 O=Starfield Technologies, Inc.
|
1917 |
+
# Subject: CN=Starfield Root Certificate Authority - G2 O=Starfield Technologies, Inc.
|
1918 |
+
# Label: "Starfield Root Certificate Authority - G2"
|
1919 |
+
# Serial: 0
|
1920 |
+
# MD5 Fingerprint: d6:39:81:c6:52:7e:96:69:fc:fc:ca:66:ed:05:f2:96
|
1921 |
+
# SHA1 Fingerprint: b5:1c:06:7c:ee:2b:0c:3d:f8:55:ab:2d:92:f4:fe:39:d4:e7:0f:0e
|
1922 |
+
# SHA256 Fingerprint: 2c:e1:cb:0b:f9:d2:f9:e1:02:99:3f:be:21:51:52:c3:b2:dd:0c:ab:de:1c:68:e5:31:9b:83:91:54:db:b7:f5
|
1923 |
+
-----BEGIN CERTIFICATE-----
|
1924 |
+
MIID3TCCAsWgAwIBAgIBADANBgkqhkiG9w0BAQsFADCBjzELMAkGA1UEBhMCVVMx
|
1925 |
+
EDAOBgNVBAgTB0FyaXpvbmExEzARBgNVBAcTClNjb3R0c2RhbGUxJTAjBgNVBAoT
|
1926 |
+
HFN0YXJmaWVsZCBUZWNobm9sb2dpZXMsIEluYy4xMjAwBgNVBAMTKVN0YXJmaWVs
|
1927 |
+
ZCBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAtIEcyMB4XDTA5MDkwMTAwMDAw
|
1928 |
+
MFoXDTM3MTIzMTIzNTk1OVowgY8xCzAJBgNVBAYTAlVTMRAwDgYDVQQIEwdBcml6
|
1929 |
+
b25hMRMwEQYDVQQHEwpTY290dHNkYWxlMSUwIwYDVQQKExxTdGFyZmllbGQgVGVj
|
1930 |
+
aG5vbG9naWVzLCBJbmMuMTIwMAYDVQQDEylTdGFyZmllbGQgUm9vdCBDZXJ0aWZp
|
1931 |
+
Y2F0ZSBBdXRob3JpdHkgLSBHMjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC
|
1932 |
+
ggEBAL3twQP89o/8ArFvW59I2Z154qK3A2FWGMNHttfKPTUuiUP3oWmb3ooa/RMg
|
1933 |
+
nLRJdzIpVv257IzdIvpy3Cdhl+72WoTsbhm5iSzchFvVdPtrX8WJpRBSiUZV9Lh1
|
1934 |
+
HOZ/5FSuS/hVclcCGfgXcVnrHigHdMWdSL5stPSksPNkN3mSwOxGXn/hbVNMYq/N
|
1935 |
+
Hwtjuzqd+/x5AJhhdM8mgkBj87JyahkNmcrUDnXMN/uLicFZ8WJ/X7NfZTD4p7dN
|
1936 |
+
dloedl40wOiWVpmKs/B/pM293DIxfJHP4F8R+GuqSVzRmZTRouNjWwl2tVZi4Ut0
|
1937 |
+
HZbUJtQIBFnQmA4O5t78w+wfkPECAwEAAaNCMEAwDwYDVR0TAQH/BAUwAwEB/zAO
|
1938 |
+
BgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFHwMMh+n2TB/xH1oo2Kooc6rB1snMA0G
|
1939 |
+
CSqGSIb3DQEBCwUAA4IBAQARWfolTwNvlJk7mh+ChTnUdgWUXuEok21iXQnCoKjU
|
1940 |
+
sHU48TRqneSfioYmUeYs0cYtbpUgSpIB7LiKZ3sx4mcujJUDJi5DnUox9g61DLu3
|
1941 |
+
4jd/IroAow57UvtruzvE03lRTs2Q9GcHGcg8RnoNAX3FWOdt5oUwF5okxBDgBPfg
|
1942 |
+
8n/Uqgr/Qh037ZTlZFkSIHc40zI+OIF1lnP6aI+xy84fxez6nH7PfrHxBy22/L/K
|
1943 |
+
pL/QlwVKvOoYKAKQvVR4CSFx09F9HdkWsKlhPdAKACL8x3vLCWRFCztAgfd9fDL1
|
1944 |
+
mMpYjn0q7pBZc2T5NnReJaH1ZgUufzkVqSr7UIuOhWn0
|
1945 |
+
-----END CERTIFICATE-----
|
1946 |
+
|
1947 |
+
# Issuer: CN=Starfield Services Root Certificate Authority - G2 O=Starfield Technologies, Inc.
|
1948 |
+
# Subject: CN=Starfield Services Root Certificate Authority - G2 O=Starfield Technologies, Inc.
|
1949 |
+
# Label: "Starfield Services Root Certificate Authority - G2"
|
1950 |
+
# Serial: 0
|
1951 |
+
# MD5 Fingerprint: 17:35:74:af:7b:61:1c:eb:f4:f9:3c:e2:ee:40:f9:a2
|
1952 |
+
# SHA1 Fingerprint: 92:5a:8f:8d:2c:6d:04:e0:66:5f:59:6a:ff:22:d8:63:e8:25:6f:3f
|
1953 |
+
# SHA256 Fingerprint: 56:8d:69:05:a2:c8:87:08:a4:b3:02:51:90:ed:cf:ed:b1:97:4a:60:6a:13:c6:e5:29:0f:cb:2a:e6:3e:da:b5
|
1954 |
+
-----BEGIN CERTIFICATE-----
|
1955 |
+
MIID7zCCAtegAwIBAgIBADANBgkqhkiG9w0BAQsFADCBmDELMAkGA1UEBhMCVVMx
|
1956 |
+
EDAOBgNVBAgTB0FyaXpvbmExEzARBgNVBAcTClNjb3R0c2RhbGUxJTAjBgNVBAoT
|
1957 |
+
HFN0YXJmaWVsZCBUZWNobm9sb2dpZXMsIEluYy4xOzA5BgNVBAMTMlN0YXJmaWVs
|
1958 |
+
ZCBTZXJ2aWNlcyBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAtIEcyMB4XDTA5
|
1959 |
+
MDkwMTAwMDAwMFoXDTM3MTIzMTIzNTk1OVowgZgxCzAJBgNVBAYTAlVTMRAwDgYD
|
1960 |
+
VQQIEwdBcml6b25hMRMwEQYDVQQHEwpTY290dHNkYWxlMSUwIwYDVQQKExxTdGFy
|
1961 |
+
ZmllbGQgVGVjaG5vbG9naWVzLCBJbmMuMTswOQYDVQQDEzJTdGFyZmllbGQgU2Vy
|
1962 |
+
dmljZXMgUm9vdCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkgLSBHMjCCASIwDQYJKoZI
|
1963 |
+
hvcNAQEBBQADggEPADCCAQoCggEBANUMOsQq+U7i9b4Zl1+OiFOxHz/Lz58gE20p
|
1964 |
+
OsgPfTz3a3Y4Y9k2YKibXlwAgLIvWX/2h/klQ4bnaRtSmpDhcePYLQ1Ob/bISdm2
|
1965 |
+
8xpWriu2dBTrz/sm4xq6HZYuajtYlIlHVv8loJNwU4PahHQUw2eeBGg6345AWh1K
|
1966 |
+
Ts9DkTvnVtYAcMtS7nt9rjrnvDH5RfbCYM8TWQIrgMw0R9+53pBlbQLPLJGmpufe
|
1967 |
+
hRhJfGZOozptqbXuNC66DQO4M99H67FrjSXZm86B0UVGMpZwh94CDklDhbZsc7tk
|
1968 |
+
6mFBrMnUVN+HL8cisibMn1lUaJ/8viovxFUcdUBgF4UCVTmLfwUCAwEAAaNCMEAw
|
1969 |
+
DwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFJxfAN+q
|
1970 |
+
AdcwKziIorhtSpzyEZGDMA0GCSqGSIb3DQEBCwUAA4IBAQBLNqaEd2ndOxmfZyMI
|
1971 |
+
bw5hyf2E3F/YNoHN2BtBLZ9g3ccaaNnRbobhiCPPE95Dz+I0swSdHynVv/heyNXB
|
1972 |
+
ve6SbzJ08pGCL72CQnqtKrcgfU28elUSwhXqvfdqlS5sdJ/PHLTyxQGjhdByPq1z
|
1973 |
+
qwubdQxtRbeOlKyWN7Wg0I8VRw7j6IPdj/3vQQF3zCepYoUz8jcI73HPdwbeyBkd
|
1974 |
+
iEDPfUYd/x7H4c7/I9vG+o1VTqkC50cRRj70/b17KSa7qWFiNyi2LSr2EIZkyXCn
|
1975 |
+
0q23KXB56jzaYyWf/Wi3MOxw+3WKt21gZ7IeyLnp2KhvAotnDU0mV3HaIPzBSlCN
|
1976 |
+
sSi6
|
1977 |
+
-----END CERTIFICATE-----
|
1978 |
+
|
1979 |
+
# Issuer: CN=AffirmTrust Commercial O=AffirmTrust
|
1980 |
+
# Subject: CN=AffirmTrust Commercial O=AffirmTrust
|
1981 |
+
# Label: "AffirmTrust Commercial"
|
1982 |
+
# Serial: 8608355977964138876
|
1983 |
+
# MD5 Fingerprint: 82:92:ba:5b:ef:cd:8a:6f:a6:3d:55:f9:84:f6:d6:b7
|
1984 |
+
# SHA1 Fingerprint: f9:b5:b6:32:45:5f:9c:be:ec:57:5f:80:dc:e9:6e:2c:c7:b2:78:b7
|
1985 |
+
# SHA256 Fingerprint: 03:76:ab:1d:54:c5:f9:80:3c:e4:b2:e2:01:a0:ee:7e:ef:7b:57:b6:36:e8:a9:3c:9b:8d:48:60:c9:6f:5f:a7
|
1986 |
+
-----BEGIN CERTIFICATE-----
|
1987 |
+
MIIDTDCCAjSgAwIBAgIId3cGJyapsXwwDQYJKoZIhvcNAQELBQAwRDELMAkGA1UE
|
1988 |
+
BhMCVVMxFDASBgNVBAoMC0FmZmlybVRydXN0MR8wHQYDVQQDDBZBZmZpcm1UcnVz
|
1989 |
+
dCBDb21tZXJjaWFsMB4XDTEwMDEyOTE0MDYwNloXDTMwMTIzMTE0MDYwNlowRDEL
|
1990 |
+
MAkGA1UEBhMCVVMxFDASBgNVBAoMC0FmZmlybVRydXN0MR8wHQYDVQQDDBZBZmZp
|
1991 |
+
cm1UcnVzdCBDb21tZXJjaWFsMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKC
|
1992 |
+
AQEA9htPZwcroRX1BiLLHwGy43NFBkRJLLtJJRTWzsO3qyxPxkEylFf6EqdbDuKP
|
1993 |
+
Hx6GGaeqtS25Xw2Kwq+FNXkyLbscYjfysVtKPcrNcV/pQr6U6Mje+SJIZMblq8Yr
|
1994 |
+
ba0F8PrVC8+a5fBQpIs7R6UjW3p6+DM/uO+Zl+MgwdYoic+U+7lF7eNAFxHUdPAL
|
1995 |
+
MeIrJmqbTFeurCA+ukV6BfO9m2kVrn1OIGPENXY6BwLJN/3HR+7o8XYdcxXyl6S1
|
1996 |
+
yHp52UKqK39c/s4mT6NmgTWvRLpUHhwwMmWd5jyTXlBOeuM61G7MGvv50jeuJCqr
|
1997 |
+
VwMiKA1JdX+3KNp1v47j3A55MQIDAQABo0IwQDAdBgNVHQ4EFgQUnZPGU4teyq8/
|
1998 |
+
nx4P5ZmVvCT2lI8wDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwDQYJ
|
1999 |
+
KoZIhvcNAQELBQADggEBAFis9AQOzcAN/wr91LoWXym9e2iZWEnStB03TX8nfUYG
|
2000 |
+
XUPGhi4+c7ImfU+TqbbEKpqrIZcUsd6M06uJFdhrJNTxFq7YpFzUf1GO7RgBsZNj
|
2001 |
+
vbz4YYCanrHOQnDiqX0GJX0nof5v7LMeJNrjS1UaADs1tDvZ110w/YETifLCBivt
|
2002 |
+
Z8SOyUOyXGsViQK8YvxO8rUzqrJv0wqiUOP2O+guRMLbZjipM1ZI8W0bM40NjD9g
|
2003 |
+
N53Tym1+NH4Nn3J2ixufcv1SNUFFApYvHLKac0khsUlHRUe072o0EclNmsxZt9YC
|
2004 |
+
nlpOZbWUrhvfKbAW8b8Angc6F2S1BLUjIZkKlTuXfO8=
|
2005 |
+
-----END CERTIFICATE-----
|
2006 |
+
|
2007 |
+
# Issuer: CN=AffirmTrust Networking O=AffirmTrust
|
2008 |
+
# Subject: CN=AffirmTrust Networking O=AffirmTrust
|
2009 |
+
# Label: "AffirmTrust Networking"
|
2010 |
+
# Serial: 8957382827206547757
|
2011 |
+
# MD5 Fingerprint: 42:65:ca:be:01:9a:9a:4c:a9:8c:41:49:cd:c0:d5:7f
|
2012 |
+
# SHA1 Fingerprint: 29:36:21:02:8b:20:ed:02:f5:66:c5:32:d1:d6:ed:90:9f:45:00:2f
|
2013 |
+
# SHA256 Fingerprint: 0a:81:ec:5a:92:97:77:f1:45:90:4a:f3:8d:5d:50:9f:66:b5:e2:c5:8f:cd:b5:31:05:8b:0e:17:f3:f0:b4:1b
|
2014 |
+
-----BEGIN CERTIFICATE-----
|
2015 |
+
MIIDTDCCAjSgAwIBAgIIfE8EORzUmS0wDQYJKoZIhvcNAQEFBQAwRDELMAkGA1UE
|
2016 |
+
BhMCVVMxFDASBgNVBAoMC0FmZmlybVRydXN0MR8wHQYDVQQDDBZBZmZpcm1UcnVz
|
2017 |
+
dCBOZXR3b3JraW5nMB4XDTEwMDEyOTE0MDgyNFoXDTMwMTIzMTE0MDgyNFowRDEL
|
2018 |
+
MAkGA1UEBhMCVVMxFDASBgNVBAoMC0FmZmlybVRydXN0MR8wHQYDVQQDDBZBZmZp
|
2019 |
+
cm1UcnVzdCBOZXR3b3JraW5nMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKC
|
2020 |
+
AQEAtITMMxcua5Rsa2FSoOujz3mUTOWUgJnLVWREZY9nZOIG41w3SfYvm4SEHi3y
|
2021 |
+
YJ0wTsyEheIszx6e/jarM3c1RNg1lho9Nuh6DtjVR6FqaYvZ/Ls6rnla1fTWcbua
|
2022 |
+
kCNrmreIdIcMHl+5ni36q1Mr3Lt2PpNMCAiMHqIjHNRqrSK6mQEubWXLviRmVSRL
|
2023 |
+
QESxG9fhwoXA3hA/Pe24/PHxI1Pcv2WXb9n5QHGNfb2V1M6+oF4nI979ptAmDgAp
|
2024 |
+
6zxG8D1gvz9Q0twmQVGeFDdCBKNwV6gbh+0t+nvujArjqWaJGctB+d1ENmHP4ndG
|
2025 |
+
yH329JKBNv3bNPFyfvMMFr20FQIDAQABo0IwQDAdBgNVHQ4EFgQUBx/S55zawm6i
|
2026 |
+
QLSwelAQUHTEyL0wDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwDQYJ
|
2027 |
+
KoZIhvcNAQEFBQADggEBAIlXshZ6qML91tmbmzTCnLQyFE2npN/svqe++EPbkTfO
|
2028 |
+
tDIuUFUaNU52Q3Eg75N3ThVwLofDwR1t3Mu1J9QsVtFSUzpE0nPIxBsFZVpikpzu
|
2029 |
+
QY0x2+c06lkh1QF612S4ZDnNye2v7UsDSKegmQGA3GWjNq5lWUhPgkvIZfFXHeVZ
|
2030 |
+
Lgo/bNjR9eUJtGxUAArgFU2HdW23WJZa3W3SAKD0m0i+wzekujbgfIeFlxoVot4u
|
2031 |
+
olu9rxj5kFDNcFn4J2dHy8egBzp90SxdbBk6ZrV9/ZFvgrG+CJPbFEfxojfHRZ48
|
2032 |
+
x3evZKiT3/Zpg4Jg8klCNO1aAFSFHBY2kgxc+qatv9s=
|
2033 |
+
-----END CERTIFICATE-----
|
2034 |
+
|
2035 |
+
# Issuer: CN=AffirmTrust Premium O=AffirmTrust
|
2036 |
+
# Subject: CN=AffirmTrust Premium O=AffirmTrust
|
2037 |
+
# Label: "AffirmTrust Premium"
|
2038 |
+
# Serial: 7893706540734352110
|
2039 |
+
# MD5 Fingerprint: c4:5d:0e:48:b6:ac:28:30:4e:0a:bc:f9:38:16:87:57
|
2040 |
+
# SHA1 Fingerprint: d8:a6:33:2c:e0:03:6f:b1:85:f6:63:4f:7d:6a:06:65:26:32:28:27
|
2041 |
+
# SHA256 Fingerprint: 70:a7:3f:7f:37:6b:60:07:42:48:90:45:34:b1:14:82:d5:bf:0e:69:8e:cc:49:8d:f5:25:77:eb:f2:e9:3b:9a
|
2042 |
+
-----BEGIN CERTIFICATE-----
|
2043 |
+
MIIFRjCCAy6gAwIBAgIIbYwURrGmCu4wDQYJKoZIhvcNAQEMBQAwQTELMAkGA1UE
|
2044 |
+
BhMCVVMxFDASBgNVBAoMC0FmZmlybVRydXN0MRwwGgYDVQQDDBNBZmZpcm1UcnVz
|
2045 |
+
dCBQcmVtaXVtMB4XDTEwMDEyOTE0MTAzNloXDTQwMTIzMTE0MTAzNlowQTELMAkG
|
2046 |
+
A1UEBhMCVVMxFDASBgNVBAoMC0FmZmlybVRydXN0MRwwGgYDVQQDDBNBZmZpcm1U
|
2047 |
+
cnVzdCBQcmVtaXVtMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAxBLf
|
2048 |
+
qV/+Qd3d9Z+K4/as4Tx4mrzY8H96oDMq3I0gW64tb+eT2TZwamjPjlGjhVtnBKAQ
|
2049 |
+
JG9dKILBl1fYSCkTtuG+kU3fhQxTGJoeJKJPj/CihQvL9Cl/0qRY7iZNyaqoe5rZ
|
2050 |
+
+jjeRFcV5fiMyNlI4g0WJx0eyIOFJbe6qlVBzAMiSy2RjYvmia9mx+n/K+k8rNrS
|
2051 |
+
s8PhaJyJ+HoAVt70VZVs+7pk3WKL3wt3MutizCaam7uqYoNMtAZ6MMgpv+0GTZe5
|
2052 |
+
HMQxK9VfvFMSF5yZVylmd2EhMQcuJUmdGPLu8ytxjLW6OQdJd/zvLpKQBY0tL3d7
|
2053 |
+
70O/Nbua2Plzpyzy0FfuKE4mX4+QaAkvuPjcBukumj5Rp9EixAqnOEhss/n/fauG
|
2054 |
+
V+O61oV4d7pD6kh/9ti+I20ev9E2bFhc8e6kGVQa9QPSdubhjL08s9NIS+LI+H+S
|
2055 |
+
qHZGnEJlPqQewQcDWkYtuJfzt9WyVSHvutxMAJf7FJUnM7/oQ0dG0giZFmA7mn7S
|
2056 |
+
5u046uwBHjxIVkkJx0w3AJ6IDsBz4W9m6XJHMD4Q5QsDyZpCAGzFlH5hxIrff4Ia
|
2057 |
+
C1nEWTJ3s7xgaVY5/bQGeyzWZDbZvUjthB9+pSKPKrhC9IK31FOQeE4tGv2Bb0TX
|
2058 |
+
OwF0lkLgAOIua+rF7nKsu7/+6qqo+Nz2snmKtmcCAwEAAaNCMEAwHQYDVR0OBBYE
|
2059 |
+
FJ3AZ6YMItkm9UWrpmVSESfYRaxjMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/
|
2060 |
+
BAQDAgEGMA0GCSqGSIb3DQEBDAUAA4ICAQCzV00QYk465KzquByvMiPIs0laUZx2
|
2061 |
+
KI15qldGF9X1Uva3ROgIRL8YhNILgM3FEv0AVQVhh0HctSSePMTYyPtwni94loMg
|
2062 |
+
Nt58D2kTiKV1NpgIpsbfrM7jWNa3Pt668+s0QNiigfV4Py/VpfzZotReBA4Xrf5B
|
2063 |
+
8OWycvpEgjNC6C1Y91aMYj+6QrCcDFx+LmUmXFNPALJ4fqENmS2NuB2OosSw/WDQ
|
2064 |
+
MKSOyARiqcTtNd56l+0OOF6SL5Nwpamcb6d9Ex1+xghIsV5n61EIJenmJWtSKZGc
|
2065 |
+
0jlzCFfemQa0W50QBuHCAKi4HEoCChTQwUHK+4w1IX2COPKpVJEZNZOUbWo6xbLQ
|
2066 |
+
u4mGk+ibyQ86p3q4ofB4Rvr8Ny/lioTz3/4E2aFooC8k4gmVBtWVyuEklut89pMF
|
2067 |
+
u+1z6S3RdTnX5yTb2E5fQ4+e0BQ5v1VwSJlXMbSc7kqYA5YwH2AG7hsj/oFgIxpH
|
2068 |
+
YoWlzBk0gG+zrBrjn/B7SK3VAdlntqlyk+otZrWyuOQ9PLLvTIzq6we/qzWaVYa8
|
2069 |
+
GKa1qF60g2xraUDTn9zxw2lrueFtCfTxqlB2Cnp9ehehVZZCmTEJ3WARjQUwfuaO
|
2070 |
+
RtGdFNrHF+QFlozEJLUbzxQHskD4o55BhrwE0GuWyCqANP2/7waj3VjFhT0+j/6e
|
2071 |
+
KeC2uAloGRwYQw==
|
2072 |
+
-----END CERTIFICATE-----
|
2073 |
+
|
2074 |
+
# Issuer: CN=AffirmTrust Premium ECC O=AffirmTrust
|
2075 |
+
# Subject: CN=AffirmTrust Premium ECC O=AffirmTrust
|
2076 |
+
# Label: "AffirmTrust Premium ECC"
|
2077 |
+
# Serial: 8401224907861490260
|
2078 |
+
# MD5 Fingerprint: 64:b0:09:55:cf:b1:d5:99:e2:be:13:ab:a6:5d:ea:4d
|
2079 |
+
# SHA1 Fingerprint: b8:23:6b:00:2f:1d:16:86:53:01:55:6c:11:a4:37:ca:eb:ff:c3:bb
|
2080 |
+
# SHA256 Fingerprint: bd:71:fd:f6:da:97:e4:cf:62:d1:64:7a:dd:25:81:b0:7d:79:ad:f8:39:7e:b4:ec:ba:9c:5e:84:88:82:14:23
|
2081 |
+
-----BEGIN CERTIFICATE-----
|
2082 |
+
MIIB/jCCAYWgAwIBAgIIdJclisc/elQwCgYIKoZIzj0EAwMwRTELMAkGA1UEBhMC
|
2083 |
+
VVMxFDASBgNVBAoMC0FmZmlybVRydXN0MSAwHgYDVQQDDBdBZmZpcm1UcnVzdCBQ
|
2084 |
+
cmVtaXVtIEVDQzAeFw0xMDAxMjkxNDIwMjRaFw00MDEyMzExNDIwMjRaMEUxCzAJ
|
2085 |
+
BgNVBAYTAlVTMRQwEgYDVQQKDAtBZmZpcm1UcnVzdDEgMB4GA1UEAwwXQWZmaXJt
|
2086 |
+
VHJ1c3QgUHJlbWl1bSBFQ0MwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAAQNMF4bFZ0D
|
2087 |
+
0KF5Nbc6PJJ6yhUczWLznCZcBz3lVPqj1swS6vQUX+iOGasvLkjmrBhDeKzQN8O9
|
2088 |
+
ss0s5kfiGuZjuD0uL3jET9v0D6RoTFVya5UdThhClXjMNzyR4ptlKymjQjBAMB0G
|
2089 |
+
A1UdDgQWBBSaryl6wBE1NSZRMADDav5A1a7WPDAPBgNVHRMBAf8EBTADAQH/MA4G
|
2090 |
+
A1UdDwEB/wQEAwIBBjAKBggqhkjOPQQDAwNnADBkAjAXCfOHiFBar8jAQr9HX/Vs
|
2091 |
+
aobgxCd05DhT1wV/GzTjxi+zygk8N53X57hG8f2h4nECMEJZh0PUUd+60wkyWs6I
|
2092 |
+
flc9nF9Ca/UHLbXwgpP5WW+uZPpY5Yse42O+tYHNbwKMeQ==
|
2093 |
+
-----END CERTIFICATE-----
|
2094 |
+
|
2095 |
+
# Issuer: CN=StartCom Certification Authority O=StartCom Ltd. OU=Secure Digital Certificate Signing
|
2096 |
+
# Subject: CN=StartCom Certification Authority O=StartCom Ltd. OU=Secure Digital Certificate Signing
|
2097 |
+
# Label: "StartCom Certification Authority"
|
2098 |
+
# Serial: 45
|
2099 |
+
# MD5 Fingerprint: c9:3b:0d:84:41:fc:a4:76:79:23:08:57:de:10:19:16
|
2100 |
+
# SHA1 Fingerprint: a3:f1:33:3f:e2:42:bf:cf:c5:d1:4e:8f:39:42:98:40:68:10:d1:a0
|
2101 |
+
# SHA256 Fingerprint: e1:78:90:ee:09:a3:fb:f4:f4:8b:9c:41:4a:17:d6:37:b7:a5:06:47:e9:bc:75:23:22:72:7f:cc:17:42:a9:11
|
2102 |
+
-----BEGIN CERTIFICATE-----
|
2103 |
+
MIIHhzCCBW+gAwIBAgIBLTANBgkqhkiG9w0BAQsFADB9MQswCQYDVQQGEwJJTDEW
|
2104 |
+
MBQGA1UEChMNU3RhcnRDb20gTHRkLjErMCkGA1UECxMiU2VjdXJlIERpZ2l0YWwg
|
2105 |
+
Q2VydGlmaWNhdGUgU2lnbmluZzEpMCcGA1UEAxMgU3RhcnRDb20gQ2VydGlmaWNh
|
2106 |
+
dGlvbiBBdXRob3JpdHkwHhcNMDYwOTE3MTk0NjM3WhcNMzYwOTE3MTk0NjM2WjB9
|
2107 |
+
MQswCQYDVQQGEwJJTDEWMBQGA1UEChMNU3RhcnRDb20gTHRkLjErMCkGA1UECxMi
|
2108 |
+
U2VjdXJlIERpZ2l0YWwgQ2VydGlmaWNhdGUgU2lnbmluZzEpMCcGA1UEAxMgU3Rh
|
2109 |
+
cnRDb20gQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwggIiMA0GCSqGSIb3DQEBAQUA
|
2110 |
+
A4ICDwAwggIKAoICAQDBiNsJvGxGfHiflXu1M5DycmLWwTYgIiRezul38kMKogZk
|
2111 |
+
pMyONvg45iPwbm2xPN1yo4UcodM9tDMr0y+v/uqwQVlntsQGfQqedIXWeUyAN3rf
|
2112 |
+
OQVSWff0G0ZDpNKFhdLDcfN1YjS6LIp/Ho/u7TTQEceWzVI9ujPW3U3eCztKS5/C
|
2113 |
+
Ji/6tRYccjV3yjxd5srhJosaNnZcAdt0FCX+7bWgiA/deMotHweXMAEtcnn6RtYT
|
2114 |
+
Kqi5pquDSR3l8u/d5AGOGAqPY1MWhWKpDhk6zLVmpsJrdAfkK+F2PrRt2PZE4XNi
|
2115 |
+
HzvEvqBTViVsUQn3qqvKv3b9bZvzndu/PWa8DFaqr5hIlTpL36dYUNk4dalb6kMM
|
2116 |
+
Av+Z6+hsTXBbKWWc3apdzK8BMewM69KN6Oqce+Zu9ydmDBpI125C4z/eIT574Q1w
|
2117 |
+
+2OqqGwaVLRcJXrJosmLFqa7LH4XXgVNWG4SHQHuEhANxjJ/GP/89PrNbpHoNkm+
|
2118 |
+
Gkhpi8KWTRoSsmkXwQqQ1vp5Iki/untp+HDH+no32NgN0nZPV/+Qt+OR0t3vwmC3
|
2119 |
+
Zzrd/qqc8NSLf3Iizsafl7b4r4qgEKjZ+xjGtrVcUjyJthkqcwEKDwOzEmDyei+B
|
2120 |
+
26Nu/yYwl/WL3YlXtq09s68rxbd2AvCl1iuahhQqcvbjM4xdCUsT37uMdBNSSwID
|
2121 |
+
AQABo4ICEDCCAgwwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYD
|
2122 |
+
VR0OBBYEFE4L7xqkQFulF2mHMMo0aEPQQa7yMB8GA1UdIwQYMBaAFE4L7xqkQFul
|
2123 |
+
F2mHMMo0aEPQQa7yMIIBWgYDVR0gBIIBUTCCAU0wggFJBgsrBgEEAYG1NwEBATCC
|
2124 |
+
ATgwLgYIKwYBBQUHAgEWImh0dHA6Ly93d3cuc3RhcnRzc2wuY29tL3BvbGljeS5w
|
2125 |
+
ZGYwNAYIKwYBBQUHAgEWKGh0dHA6Ly93d3cuc3RhcnRzc2wuY29tL2ludGVybWVk
|
2126 |
+
aWF0ZS5wZGYwgc8GCCsGAQUFBwICMIHCMCcWIFN0YXJ0IENvbW1lcmNpYWwgKFN0
|
2127 |
+
YXJ0Q29tKSBMdGQuMAMCAQEagZZMaW1pdGVkIExpYWJpbGl0eSwgcmVhZCB0aGUg
|
2128 |
+
c2VjdGlvbiAqTGVnYWwgTGltaXRhdGlvbnMqIG9mIHRoZSBTdGFydENvbSBDZXJ0
|
2129 |
+
aWZpY2F0aW9uIEF1dGhvcml0eSBQb2xpY3kgYXZhaWxhYmxlIGF0IGh0dHA6Ly93
|
2130 |
+
d3cuc3RhcnRzc2wuY29tL3BvbGljeS5wZGYwEQYJYIZIAYb4QgEBBAQDAgAHMDgG
|
2131 |
+
CWCGSAGG+EIBDQQrFilTdGFydENvbSBGcmVlIFNTTCBDZXJ0aWZpY2F0aW9uIEF1
|
2132 |
+
dGhvcml0eTANBgkqhkiG9w0BAQsFAAOCAgEAjo/n3JR5fPGFf59Jb2vKXfuM/gTF
|
2133 |
+
wWLRfUKKvFO3lANmMD+x5wqnUCBVJX92ehQN6wQOQOY+2IirByeDqXWmN3PH/UvS
|
2134 |
+
Ta0XQMhGvjt/UfzDtgUx3M2FIk5xt/JxXrAaxrqTi3iSSoX4eA+D/i+tLPfkpLst
|
2135 |
+
0OcNOrg+zvZ49q5HJMqjNTbOx8aHmNrs++myziebiMMEofYLWWivydsQD032ZGNc
|
2136 |
+
pRJvkrKTlMeIFw6Ttn5ii5B/q06f/ON1FE8qMt9bDeD1e5MNq6HPh+GlBEXoPBKl
|
2137 |
+
CcWw0bdT82AUuoVpaiF8H3VhFyAXe2w7QSlc4axa0c2Mm+tgHRns9+Ww2vl5GKVF
|
2138 |
+
P0lDV9LdJNUso/2RjSe15esUBppMeyG7Oq0wBhjA2MFrLH9ZXF2RsXAiV+uKa0hK
|
2139 |
+
1Q8p7MZAwC+ITGgBF3f0JBlPvfrhsiAhS90a2Cl9qrjeVOwhVYBsHvUwyKMQ5bLm
|
2140 |
+
KhQxw4UtjJixhlpPiVktucf3HMiKf8CdBUrmQk9io20ppB+Fq9vlgcitKj1MXVuE
|
2141 |
+
JnHEhV5xJMqlG2zYYdMa4FTbzrqpMrUi9nNBCV24F10OD5mQ1kfabwo6YigUZ4LZ
|
2142 |
+
8dCAWZvLMdibD4x3TrVoivJs9iQOLWxwxXPR3hTQcY+203sC9uO41Alua551hDnm
|
2143 |
+
fyWl8kgAwKQB2j8=
|
2144 |
+
-----END CERTIFICATE-----
|
2145 |
+
|
2146 |
+
# Issuer: CN=StartCom Certification Authority G2 O=StartCom Ltd.
|
2147 |
+
# Subject: CN=StartCom Certification Authority G2 O=StartCom Ltd.
|
2148 |
+
# Label: "StartCom Certification Authority G2"
|
2149 |
+
# Serial: 59
|
2150 |
+
# MD5 Fingerprint: 78:4b:fb:9e:64:82:0a:d3:b8:4c:62:f3:64:f2:90:64
|
2151 |
+
# SHA1 Fingerprint: 31:f1:fd:68:22:63:20:ee:c6:3b:3f:9d:ea:4a:3e:53:7c:7c:39:17
|
2152 |
+
# SHA256 Fingerprint: c7:ba:65:67:de:93:a7:98:ae:1f:aa:79:1e:71:2d:37:8f:ae:1f:93:c4:39:7f:ea:44:1b:b7:cb:e6:fd:59:95
|
2153 |
+
-----BEGIN CERTIFICATE-----
|
2154 |
+
MIIFYzCCA0ugAwIBAgIBOzANBgkqhkiG9w0BAQsFADBTMQswCQYDVQQGEwJJTDEW
|
2155 |
+
MBQGA1UEChMNU3RhcnRDb20gTHRkLjEsMCoGA1UEAxMjU3RhcnRDb20gQ2VydGlm
|
2156 |
+
aWNhdGlvbiBBdXRob3JpdHkgRzIwHhcNMTAwMTAxMDEwMDAxWhcNMzkxMjMxMjM1
|
2157 |
+
OTAxWjBTMQswCQYDVQQGEwJJTDEWMBQGA1UEChMNU3RhcnRDb20gTHRkLjEsMCoG
|
2158 |
+
A1UEAxMjU3RhcnRDb20gQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkgRzIwggIiMA0G
|
2159 |
+
CSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQC2iTZbB7cgNr2Cu+EWIAOVeq8Oo1XJ
|
2160 |
+
JZlKxdBWQYeQTSFgpBSHO839sj60ZwNq7eEPS8CRhXBF4EKe3ikj1AENoBB5uNsD
|
2161 |
+
vfOpL9HG4A/LnooUCri99lZi8cVytjIl2bLzvWXFDSxu1ZJvGIsAQRSCb0AgJnoo
|
2162 |
+
D/Uefyf3lLE3PbfHkffiAez9lInhzG7TNtYKGXmu1zSCZf98Qru23QumNK9LYP5/
|
2163 |
+
Q0kGi4xDuFby2X8hQxfqp0iVAXV16iulQ5XqFYSdCI0mblWbq9zSOdIxHWDirMxW
|
2164 |
+
RST1HFSr7obdljKF+ExP6JV2tgXdNiNnvP8V4so75qbsO+wmETRIjfaAKxojAuuK
|
2165 |
+
HDp2KntWFhxyKrOq42ClAJ8Em+JvHhRYW6Vsi1g8w7pOOlz34ZYrPu8HvKTlXcxN
|
2166 |
+
nw3h3Kq74W4a7I/htkxNeXJdFzULHdfBR9qWJODQcqhaX2YtENwvKhOuJv4KHBnM
|
2167 |
+
0D4LnMgJLvlblnpHnOl68wVQdJVznjAJ85eCXuaPOQgeWeU1FEIT/wCc976qUM/i
|
2168 |
+
UUjXuG+v+E5+M5iSFGI6dWPPe/regjupuznixL0sAA7IF6wT700ljtizkC+p2il9
|
2169 |
+
Ha90OrInwMEePnWjFqmveiJdnxMaz6eg6+OGCtP95paV1yPIN93EfKo2rJgaErHg
|
2170 |
+
TuixO/XWb/Ew1wIDAQABo0IwQDAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQE
|
2171 |
+
AwIBBjAdBgNVHQ4EFgQUS8W0QGutHLOlHGVuRjaJhwUMDrYwDQYJKoZIhvcNAQEL
|
2172 |
+
BQADggIBAHNXPyzVlTJ+N9uWkusZXn5T50HsEbZH77Xe7XRcxfGOSeD8bpkTzZ+K
|
2173 |
+
2s06Ctg6Wgk/XzTQLwPSZh0avZyQN8gMjgdalEVGKua+etqhqaRpEpKwfTbURIfX
|
2174 |
+
UfEpY9Z1zRbkJ4kd+MIySP3bmdCPX1R0zKxnNBFi2QwKN4fRoxdIjtIXHfbX/dtl
|
2175 |
+
6/2o1PXWT6RbdejF0mCy2wl+JYt7ulKSnj7oxXehPOBKc2thz4bcQ///If4jXSRK
|
2176 |
+
9dNtD2IEBVeC2m6kMyV5Sy5UGYvMLD0w6dEG/+gyRr61M3Z3qAFdlsHB1b6uJcDJ
|
2177 |
+
HgoJIIihDsnzb02CVAAgp9KP5DlUFy6NHrgbuxu9mk47EDTcnIhT76IxW1hPkWLI
|
2178 |
+
wpqazRVdOKnWvvgTtZ8SafJQYqz7Fzf07rh1Z2AQ+4NQ+US1dZxAF7L+/XldblhY
|
2179 |
+
XzD8AK6vM8EOTmy6p6ahfzLbOOCxchcKK5HsamMm7YnUeMx0HgX4a/6ManY5Ka5l
|
2180 |
+
IxKVCCIcl85bBu4M4ru8H0ST9tg4RQUh7eStqxK2A6RCLi3ECToDZ2mEmuFZkIoo
|
2181 |
+
hdVddLHRDiBYmxOlsGOm7XtH/UVVMKTumtTm4ofvmMkyghEpIrwACjFeLQ/Ajulr
|
2182 |
+
so8uBtjRkcfGEvRM/TAXw8HaOFvjqermobp573PYtlNXLfbQ4ddI
|
2183 |
+
-----END CERTIFICATE-----
|
core/Google/Logger/Abstract.php
CHANGED
@@ -1,406 +1,390 @@
|
|
1 |
-
<?php
|
2 |
-
/*
|
3 |
-
* Copyright 2014 Google Inc.
|
4 |
-
*
|
5 |
-
* Licensed under the Apache License, Version 2.0 (the "License");
|
6 |
-
* you may not use this file except in compliance with the License.
|
7 |
-
* You may obtain a copy of the License at
|
8 |
-
*
|
9 |
-
* https://www.apache.org/licenses/LICENSE-2.0
|
10 |
-
*
|
11 |
-
* Unless required by applicable law or agreed to in writing, software
|
12 |
-
* distributed under the License is distributed on an "AS IS" BASIS,
|
13 |
-
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
14 |
-
* See the License for the specific language governing permissions and
|
15 |
-
* limitations under the License.
|
16 |
-
*/
|
17 |
-
|
18 |
-
require_once realpath(dirname(__FILE__) . '/../../../autoload.php');
|
19 |
-
|
20 |
-
/**
|
21 |
-
* Abstract logging class based on the PSR-3 standard.
|
22 |
-
*
|
23 |
-
* NOTE: We don't implement `Psr\Log\LoggerInterface` because we need to
|
24 |
-
* maintain PHP 5.2 support.
|
25 |
-
*
|
26 |
-
* @see https://github.com/php-fig/fig-standards/blob/master/accepted/PSR-3-logger-interface.md
|
27 |
-
*/
|
28 |
-
abstract class GoogleGAL_Logger_Abstract
|
29 |
-
|
30 |
-
|
31 |
-
|
32 |
-
|
33 |
-
|
34 |
-
|
35 |
-
|
36 |
-
|
37 |
-
|
38 |
-
|
39 |
-
|
40 |
-
|
41 |
-
|
42 |
-
|
43 |
-
|
44 |
-
|
45 |
-
|
46 |
-
|
47 |
-
|
48 |
-
|
49 |
-
|
50 |
-
|
51 |
-
|
52 |
-
|
53 |
-
|
54 |
-
|
55 |
-
|
56 |
-
|
57 |
-
|
58 |
-
|
59 |
-
|
60 |
-
|
61 |
-
|
62 |
-
|
63 |
-
|
64 |
-
|
65 |
-
|
66 |
-
|
67 |
-
|
68 |
-
|
69 |
-
|
70 |
-
|
71 |
-
|
72 |
-
|
73 |
-
|
74 |
-
|
75 |
-
|
76 |
-
|
77 |
-
|
78 |
-
|
79 |
-
|
80 |
-
|
81 |
-
|
82 |
-
|
83 |
-
|
84 |
-
|
85 |
-
|
86 |
-
|
87 |
-
|
88 |
-
|
89 |
-
|
90 |
-
|
91 |
-
|
92 |
-
|
93 |
-
|
94 |
-
|
95 |
-
|
96 |
-
|
97 |
-
|
98 |
-
|
99 |
-
|
100 |
-
|
101 |
-
|
102 |
-
|
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 |
-
|
134 |
-
|
135 |
-
|
136 |
-
|
137 |
-
|
138 |
-
|
139 |
-
|
140 |
-
|
141 |
-
|
142 |
-
|
143 |
-
|
144 |
-
|
145 |
-
|
146 |
-
|
147 |
-
|
148 |
-
|
149 |
-
|
150 |
-
|
151 |
-
|
152 |
-
|
153 |
-
|
154 |
-
|
155 |
-
|
156 |
-
|
157 |
-
|
158 |
-
|
159 |
-
|
160 |
-
|
161 |
-
|
162 |
-
|
163 |
-
|
164 |
-
|
165 |
-
|
166 |
-
|
167 |
-
|
168 |
-
|
169 |
-
|
170 |
-
|
171 |
-
|
172 |
-
|
173 |
-
|
174 |
-
|
175 |
-
|
176 |
-
|
177 |
-
|
178 |
-
|
179 |
-
|
180 |
-
|
181 |
-
|
182 |
-
|
183 |
-
|
184 |
-
|
185 |
-
|
186 |
-
|
187 |
-
|
188 |
-
|
189 |
-
|
190 |
-
|
191 |
-
|
192 |
-
|
193 |
-
|
194 |
-
|
195 |
-
|
196 |
-
|
197 |
-
|
198 |
-
|
199 |
-
|
200 |
-
|
201 |
-
|
202 |
-
|
203 |
-
|
204 |
-
|
205 |
-
|
206 |
-
|
207 |
-
|
208 |
-
|
209 |
-
|
210 |
-
|
211 |
-
|
212 |
-
|
213 |
-
|
214 |
-
|
215 |
-
|
216 |
-
|
217 |
-
|
218 |
-
|
219 |
-
|
220 |
-
|
221 |
-
|
222 |
-
|
223 |
-
|
224 |
-
|
225 |
-
|
226 |
-
|
227 |
-
|
228 |
-
|
229 |
-
|
230 |
-
|
231 |
-
|
232 |
-
|
233 |
-
|
234 |
-
|
235 |
-
|
236 |
-
|
237 |
-
|
238 |
-
|
239 |
-
|
240 |
-
|
241 |
-
|
242 |
-
|
243 |
-
|
244 |
-
|
245 |
-
|
246 |
-
|
247 |
-
|
248 |
-
|
249 |
-
|
250 |
-
|
251 |
-
|
252 |
-
|
253 |
-
|
254 |
-
|
255 |
-
|
256 |
-
|
257 |
-
|
258 |
-
|
259 |
-
|
260 |
-
|
261 |
-
|
262 |
-
|
263 |
-
|
264 |
-
|
265 |
-
|
266 |
-
|
267 |
-
|
268 |
-
|
269 |
-
|
270 |
-
|
271 |
-
|
272 |
-
|
273 |
-
|
274 |
-
|
275 |
-
|
276 |
-
|
277 |
-
|
278 |
-
|
279 |
-
|
280 |
-
|
281 |
-
|
282 |
-
|
283 |
-
|
284 |
-
|
285 |
-
|
286 |
-
|
287 |
-
|
288 |
-
|
289 |
-
|
290 |
-
|
291 |
-
|
292 |
-
|
293 |
-
|
294 |
-
|
295 |
-
|
296 |
-
|
297 |
-
|
298 |
-
|
299 |
-
|
300 |
-
|
301 |
-
|
302 |
-
|
303 |
-
|
304 |
-
|
305 |
-
|
306 |
-
|
307 |
-
|
308 |
-
|
309 |
-
|
310 |
-
|
311 |
-
|
312 |
-
|
313 |
-
|
314 |
-
|
315 |
-
|
316 |
-
|
317 |
-
|
318 |
-
|
319 |
-
|
320 |
-
|
321 |
-
|
322 |
-
|
323 |
-
|
324 |
-
|
325 |
-
|
326 |
-
|
327 |
-
|
328 |
-
|
329 |
-
|
330 |
-
|
331 |
-
|
332 |
-
|
333 |
-
|
334 |
-
|
335 |
-
|
336 |
-
|
337 |
-
|
338 |
-
|
339 |
-
|
340 |
-
|
341 |
-
|
342 |
-
|
343 |
-
|
344 |
-
|
345 |
-
|
346 |
-
|
347 |
-
|
348 |
-
|
349 |
-
|
350 |
-
|
351 |
-
|
352 |
-
|
353 |
-
|
354 |
-
|
355 |
-
|
356 |
-
|
357 |
-
|
358 |
-
|
359 |
-
|
360 |
-
|
361 |
-
|
362 |
-
|
363 |
-
|
364 |
-
|
365 |
-
|
366 |
-
|
367 |
-
|
368 |
-
|
369 |
-
|
370 |
-
|
371 |
-
|
372 |
-
|
373 |
-
|
374 |
-
|
375 |
-
|
376 |
-
|
377 |
-
|
378 |
-
|
379 |
-
|
380 |
-
|
381 |
-
|
382 |
-
|
383 |
-
|
384 |
-
|
385 |
-
|
386 |
-
|
387 |
-
|
388 |
-
|
389 |
-
|
390 |
-
|
391 |
-
if (is_string($level) && isset(self::$levels[$level])) {
|
392 |
-
return self::$levels[$level];
|
393 |
-
}
|
394 |
-
|
395 |
-
throw new GoogleGAL_Logger_Exception(
|
396 |
-
sprintf("Unknown LogLevel: '%s'", $level)
|
397 |
-
);
|
398 |
-
}
|
399 |
-
|
400 |
-
/**
|
401 |
-
* Writes a message to the current log implementation.
|
402 |
-
*
|
403 |
-
* @param string $message The message
|
404 |
-
*/
|
405 |
-
abstract protected function write($message);
|
406 |
-
}
|
1 |
+
<?php
|
2 |
+
/*
|
3 |
+
* Copyright 2014 Google Inc.
|
4 |
+
*
|
5 |
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
6 |
+
* you may not use this file except in compliance with the License.
|
7 |
+
* You may obtain a copy of the License at
|
8 |
+
*
|
9 |
+
* https://www.apache.org/licenses/LICENSE-2.0
|
10 |
+
*
|
11 |
+
* Unless required by applicable law or agreed to in writing, software
|
12 |
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
13 |
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
14 |
+
* See the License for the specific language governing permissions and
|
15 |
+
* limitations under the License.
|
16 |
+
*/
|
17 |
+
|
18 |
+
require_once realpath( dirname( __FILE__ ) . '/../../../autoload.php' );
|
19 |
+
|
20 |
+
/**
|
21 |
+
* Abstract logging class based on the PSR-3 standard.
|
22 |
+
*
|
23 |
+
* NOTE: We don't implement `Psr\Log\LoggerInterface` because we need to
|
24 |
+
* maintain PHP 5.2 support.
|
25 |
+
*
|
26 |
+
* @see https://github.com/php-fig/fig-standards/blob/master/accepted/PSR-3-logger-interface.md
|
27 |
+
*/
|
28 |
+
abstract class GoogleGAL_Logger_Abstract {
|
29 |
+
|
30 |
+
/**
|
31 |
+
* Default log format
|
32 |
+
*/
|
33 |
+
const DEFAULT_LOG_FORMAT = "[%datetime%] %level%: %message% %context%\n";
|
34 |
+
/**
|
35 |
+
* Default date format
|
36 |
+
*
|
37 |
+
* Example: 16/Nov/2014:03:26:16 -0500
|
38 |
+
*/
|
39 |
+
const DEFAULT_DATE_FORMAT = 'd/M/Y:H:i:s O';
|
40 |
+
|
41 |
+
/**
|
42 |
+
* System is unusable
|
43 |
+
*/
|
44 |
+
const EMERGENCY = 'emergency';
|
45 |
+
/**
|
46 |
+
* Action must be taken immediately
|
47 |
+
*
|
48 |
+
* Example: Entire website down, database unavailable, etc. This should
|
49 |
+
* trigger the SMS alerts and wake you up.
|
50 |
+
*/
|
51 |
+
const ALERT = 'alert';
|
52 |
+
/**
|
53 |
+
* Critical conditions
|
54 |
+
*
|
55 |
+
* Example: Application component unavailable, unexpected exception.
|
56 |
+
*/
|
57 |
+
const CRITICAL = 'critical';
|
58 |
+
/**
|
59 |
+
* Runtime errors that do not require immediate action but should typically
|
60 |
+
* be logged and monitored.
|
61 |
+
*/
|
62 |
+
const ERROR = 'error';
|
63 |
+
/**
|
64 |
+
* Exceptional occurrences that are not errors.
|
65 |
+
*
|
66 |
+
* Example: Use of deprecated APIs, poor use of an API, undesirable things
|
67 |
+
* that are not necessarily wrong.
|
68 |
+
*/
|
69 |
+
const WARNING = 'warning';
|
70 |
+
/**
|
71 |
+
* Normal but significant events.
|
72 |
+
*/
|
73 |
+
const NOTICE = 'notice';
|
74 |
+
/**
|
75 |
+
* Interesting events.
|
76 |
+
*
|
77 |
+
* Example: User logs in, SQL logs.
|
78 |
+
*/
|
79 |
+
const INFO = 'info';
|
80 |
+
/**
|
81 |
+
* Detailed debug information.
|
82 |
+
*/
|
83 |
+
const DEBUG = 'debug';
|
84 |
+
|
85 |
+
/**
|
86 |
+
* @var array $levels Logging levels
|
87 |
+
*/
|
88 |
+
protected static $levels = array(
|
89 |
+
self::EMERGENCY => 600,
|
90 |
+
self::ALERT => 550,
|
91 |
+
self::CRITICAL => 500,
|
92 |
+
self::ERROR => 400,
|
93 |
+
self::WARNING => 300,
|
94 |
+
self::NOTICE => 250,
|
95 |
+
self::INFO => 200,
|
96 |
+
self::DEBUG => 100,
|
97 |
+
);
|
98 |
+
|
99 |
+
/**
|
100 |
+
* @var integer $level The minimum logging level
|
101 |
+
*/
|
102 |
+
protected $level = self::DEBUG;
|
103 |
+
|
104 |
+
/**
|
105 |
+
* @var string $logFormat The current log format
|
106 |
+
*/
|
107 |
+
protected $logFormat = self::DEFAULT_LOG_FORMAT;
|
108 |
+
/**
|
109 |
+
* @var string $dateFormat The current date format
|
110 |
+
*/
|
111 |
+
protected $dateFormat = self::DEFAULT_DATE_FORMAT;
|
112 |
+
|
113 |
+
/**
|
114 |
+
* @var boolean $allowNewLines If newlines are allowed
|
115 |
+
*/
|
116 |
+
protected $allowNewLines = false;
|
117 |
+
|
118 |
+
/**
|
119 |
+
* @param GoogleGAL_Client $client The current Google client
|
120 |
+
*/
|
121 |
+
public function __construct( GoogleGAL_Client $client ) {
|
122 |
+
$this->setLevel(
|
123 |
+
$client->getClassConfig( 'GoogleGAL_Logger_Abstract', 'level' )
|
124 |
+
);
|
125 |
+
|
126 |
+
$format = $client->getClassConfig( 'GoogleGAL_Logger_Abstract', 'log_format' );
|
127 |
+
$this->logFormat = $format ? $format : self::DEFAULT_LOG_FORMAT;
|
128 |
+
|
129 |
+
$format = $client->getClassConfig( 'GoogleGAL_Logger_Abstract', 'date_format' );
|
130 |
+
$this->dateFormat = $format ? $format : self::DEFAULT_DATE_FORMAT;
|
131 |
+
|
132 |
+
$this->allowNewLines = (bool) $client->getClassConfig(
|
133 |
+
'GoogleGAL_Logger_Abstract',
|
134 |
+
'allow_newlines'
|
135 |
+
);
|
136 |
+
}
|
137 |
+
|
138 |
+
/**
|
139 |
+
* Sets the minimum logging level that this logger handles.
|
140 |
+
*
|
141 |
+
* @param integer $level
|
142 |
+
*/
|
143 |
+
public function setLevel( $level ) {
|
144 |
+
$this->level = $this->normalizeLevel( $level );
|
145 |
+
}
|
146 |
+
|
147 |
+
/**
|
148 |
+
* Checks if the logger should handle messages at the provided level.
|
149 |
+
*
|
150 |
+
* @param integer $level
|
151 |
+
* @return boolean
|
152 |
+
*/
|
153 |
+
public function shouldHandle( $level ) {
|
154 |
+
return $this->normalizeLevel( $level ) >= $this->level;
|
155 |
+
}
|
156 |
+
|
157 |
+
/**
|
158 |
+
* System is unusable.
|
159 |
+
*
|
160 |
+
* @param string $message The log message
|
161 |
+
* @param array $context The log context
|
162 |
+
*/
|
163 |
+
public function emergency( $message, array $context = array() ) {
|
164 |
+
$this->log( self::EMERGENCY, $message, $context );
|
165 |
+
}
|
166 |
+
|
167 |
+
/**
|
168 |
+
* Action must be taken immediately.
|
169 |
+
*
|
170 |
+
* Example: Entire website down, database unavailable, etc. This should
|
171 |
+
* trigger the SMS alerts and wake you up.
|
172 |
+
*
|
173 |
+
* @param string $message The log message
|
174 |
+
* @param array $context The log context
|
175 |
+
*/
|
176 |
+
public function alert( $message, array $context = array() ) {
|
177 |
+
$this->log( self::ALERT, $message, $context );
|
178 |
+
}
|
179 |
+
|
180 |
+
/**
|
181 |
+
* Critical conditions.
|
182 |
+
*
|
183 |
+
* Example: Application component unavailable, unexpected exception.
|
184 |
+
*
|
185 |
+
* @param string $message The log message
|
186 |
+
* @param array $context The log context
|
187 |
+
*/
|
188 |
+
public function critical( $message, array $context = array() ) {
|
189 |
+
$this->log( self::CRITICAL, $message, $context );
|
190 |
+
}
|
191 |
+
|
192 |
+
/**
|
193 |
+
* Runtime errors that do not require immediate action but should typically
|
194 |
+
* be logged and monitored.
|
195 |
+
*
|
196 |
+
* @param string $message The log message
|
197 |
+
* @param array $context The log context
|
198 |
+
*/
|
199 |
+
public function error( $message, array $context = array() ) {
|
200 |
+
$this->log( self::ERROR, $message, $context );
|
201 |
+
}
|
202 |
+
|
203 |
+
/**
|
204 |
+
* Exceptional occurrences that are not errors.
|
205 |
+
*
|
206 |
+
* Example: Use of deprecated APIs, poor use of an API, undesirable things
|
207 |
+
* that are not necessarily wrong.
|
208 |
+
*
|
209 |
+
* @param string $message The log message
|
210 |
+
* @param array $context The log context
|
211 |
+
*/
|
212 |
+
public function warning( $message, array $context = array() ) {
|
213 |
+
$this->log( self::WARNING, $message, $context );
|
214 |
+
}
|
215 |
+
|
216 |
+
/**
|
217 |
+
* Normal but significant events.
|
218 |
+
*
|
219 |
+
* @param string $message The log message
|
220 |
+
* @param array $context The log context
|
221 |
+
*/
|
222 |
+
public function notice( $message, array $context = array() ) {
|
223 |
+
$this->log( self::NOTICE, $message, $context );
|
224 |
+
}
|
225 |
+
|
226 |
+
/**
|
227 |
+
* Interesting events.
|
228 |
+
*
|
229 |
+
* Example: User logs in, SQL logs.
|
230 |
+
*
|
231 |
+
* @param string $message The log message
|
232 |
+
* @param array $context The log context
|
233 |
+
*/
|
234 |
+
public function info( $message, array $context = array() ) {
|
235 |
+
$this->log( self::INFO, $message, $context );
|
236 |
+
}
|
237 |
+
|
238 |
+
/**
|
239 |
+
* Detailed debug information.
|
240 |
+
*
|
241 |
+
* @param string $message The log message
|
242 |
+
* @param array $context The log context
|
243 |
+
*/
|
244 |
+
public function debug( $message, array $context = array() ) {
|
245 |
+
$this->log( self::DEBUG, $message, $context );
|
246 |
+
}
|
247 |
+
|
248 |
+
/**
|
249 |
+
* Logs with an arbitrary level.
|
250 |
+
*
|
251 |
+
* @param mixed $level The log level
|
252 |
+
* @param string $message The log message
|
253 |
+
* @param array $context The log context
|
254 |
+
*/
|
255 |
+
public function log( $level, $message, array $context = array() ) {
|
256 |
+
if ( ! $this->shouldHandle( $level ) ) {
|
257 |
+
return false;
|
258 |
+
}
|
259 |
+
|
260 |
+
$levelName = is_int( $level ) ? array_search( $level, self::$levels ) : $level;
|
261 |
+
$message = $this->interpolate(
|
262 |
+
array(
|
263 |
+
'message' => $message,
|
264 |
+
'context' => $context,
|
265 |
+
'level' => strtoupper( $levelName ),
|
266 |
+
'datetime' => new DateTime(),
|
267 |
+
)
|
268 |
+
);
|
269 |
+
|
270 |
+
$this->write( $message );
|
271 |
+
}
|
272 |
+
|
273 |
+
/**
|
274 |
+
* Interpolates log variables into the defined log format.
|
275 |
+
*
|
276 |
+
* @param array $variables The log variables.
|
277 |
+
* @return string
|
278 |
+
*/
|
279 |
+
protected function interpolate( array $variables = array() ) {
|
280 |
+
$template = $this->logFormat;
|
281 |
+
|
282 |
+
if ( ! $variables['context'] ) {
|
283 |
+
$template = str_replace( '%context%', '', $template );
|
284 |
+
unset( $variables['context'] );
|
285 |
+
} else {
|
286 |
+
$this->reverseJsonInContext( $variables['context'] );
|
287 |
+
}
|
288 |
+
|
289 |
+
foreach ( $variables as $key => $value ) {
|
290 |
+
if ( strpos( $template, '%' . $key . '%' ) !== false ) {
|
291 |
+
$template = str_replace(
|
292 |
+
'%' . $key . '%',
|
293 |
+
$this->export( $value ),
|
294 |
+
$template
|
295 |
+
);
|
296 |
+
}
|
297 |
+
}
|
298 |
+
|
299 |
+
return $template;
|
300 |
+
}
|
301 |
+
|
302 |
+
/**
|
303 |
+
* Reverses JSON encoded PHP arrays and objects so that they log better.
|
304 |
+
*
|
305 |
+
* @param array $context The log context
|
306 |
+
*/
|
307 |
+
protected function reverseJsonInContext( array &$context ) {
|
308 |
+
if ( ! $context ) {
|
309 |
+
return;
|
310 |
+
}
|
311 |
+
|
312 |
+
foreach ( $context as $key => $val ) {
|
313 |
+
if ( ! $val || ! is_string( $val ) || ! ( $val[0] == '{' || $val[0] == '[' ) ) {
|
314 |
+
continue;
|
315 |
+
}
|
316 |
+
|
317 |
+
$json = @json_decode( $val );
|
318 |
+
if ( is_object( $json ) || is_array( $json ) ) {
|
319 |
+
$context[ $key ] = $json;
|
320 |
+
}
|
321 |
+
}
|
322 |
+
}
|
323 |
+
|
324 |
+
/**
|
325 |
+
* Exports a PHP value for logging to a string.
|
326 |
+
*
|
327 |
+
* @param mixed $value The value to
|
328 |
+
*/
|
329 |
+
protected function export( $value ) {
|
330 |
+
if ( is_string( $value ) ) {
|
331 |
+
if ( $this->allowNewLines ) {
|
332 |
+
return $value;
|
333 |
+
}
|
334 |
+
|
335 |
+
return preg_replace( '/[\r\n]+/', ' ', $value );
|
336 |
+
}
|
337 |
+
|
338 |
+
if ( is_resource( $value ) ) {
|
339 |
+
return sprintf(
|
340 |
+
'resource(%d) of type (%s)',
|
341 |
+
$value,
|
342 |
+
get_resource_type( $value )
|
343 |
+
);
|
344 |
+
}
|
345 |
+
|
346 |
+
if ( $value instanceof DateTime ) {
|
347 |
+
return $value->format( $this->dateFormat );
|
348 |
+
}
|
349 |
+
|
350 |
+
if ( version_compare( PHP_VERSION, '5.4.0', '>=' ) ) {
|
351 |
+
$options = JSON_UNESCAPED_SLASHES | JSON_UNESCAPED_UNICODE;
|
352 |
+
|
353 |
+
if ( $this->allowNewLines ) {
|
354 |
+
$options |= JSON_PRETTY_PRINT;
|
355 |
+
}
|
356 |
+
|
357 |
+
return @json_encode( $value, $options );
|
358 |
+
}
|
359 |
+
|
360 |
+
return str_replace( '\\/', '/', @json_encode( $value ) );
|
361 |
+
}
|
362 |
+
|
363 |
+
/**
|
364 |
+
* Converts a given log level to the integer form.
|
365 |
+
*
|
366 |
+
* @param mixed $level The logging level
|
367 |
+
* @return integer $level The normalized level
|
368 |
+
* @throws GoogleGAL_Logger_Exception If $level is invalid
|
369 |
+
*/
|
370 |
+
protected function normalizeLevel( $level ) {
|
371 |
+
if ( is_int( $level ) && array_search( $level, self::$levels ) !== false ) {
|
372 |
+
return $level;
|
373 |
+
}
|
374 |
+
|
375 |
+
if ( is_string( $level ) && isset( self::$levels[ $level ] ) ) {
|
376 |
+
return self::$levels[ $level ];
|
377 |
+
}
|
378 |
+
|
379 |
+
throw new GoogleGAL_Logger_Exception(
|
380 |
+
sprintf( "Unknown LogLevel: '%s'", $level )
|
381 |
+
);
|
382 |
+
}
|
383 |
+
|
384 |
+
/**
|
385 |
+
* Writes a message to the current log implementation.
|
386 |
+
*
|
387 |
+
* @param string $message The message
|
388 |
+
*/
|
389 |
+
abstract protected function write( $message);
|
390 |
+
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
core/Google/Logger/Exception.php
CHANGED
@@ -1,22 +1,22 @@
|
|
1 |
-
<?php
|
2 |
-
/*
|
3 |
-
* Copyright 2014 Google Inc.
|
4 |
-
*
|
5 |
-
* Licensed under the Apache License, Version 2.0 (the "License");
|
6 |
-
* you may not use this file except in compliance with the License.
|
7 |
-
* You may obtain a copy of the License at
|
8 |
-
*
|
9 |
-
* https://www.apache.org/licenses/LICENSE-2.0
|
10 |
-
*
|
11 |
-
* Unless required by applicable law or agreed to in writing, software
|
12 |
-
* distributed under the License is distributed on an "AS IS" BASIS,
|
13 |
-
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
14 |
-
* See the License for the specific language governing permissions and
|
15 |
-
* limitations under the License.
|
16 |
-
*/
|
17 |
-
|
18 |
-
require_once realpath(dirname(__FILE__) . '/../../../autoload.php');
|
19 |
-
|
20 |
-
class GoogleGAL_Logger_Exception extends GoogleGAL_Exception
|
21 |
-
|
22 |
-
}
|
1 |
+
<?php
|
2 |
+
/*
|
3 |
+
* Copyright 2014 Google Inc.
|
4 |
+
*
|
5 |
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
6 |
+
* you may not use this file except in compliance with the License.
|
7 |
+
* You may obtain a copy of the License at
|
8 |
+
*
|
9 |
+
* https://www.apache.org/licenses/LICENSE-2.0
|
10 |
+
*
|
11 |
+
* Unless required by applicable law or agreed to in writing, software
|
12 |
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
13 |
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
14 |
+
* See the License for the specific language governing permissions and
|
15 |
+
* limitations under the License.
|
16 |
+
*/
|
17 |
+
|
18 |
+
require_once realpath( dirname( __FILE__ ) . '/../../../autoload.php' );
|
19 |
+
|
20 |
+
class GoogleGAL_Logger_Exception extends GoogleGAL_Exception {
|
21 |
+
|
22 |
+
}
|
core/Google/Logger/File.php
CHANGED
@@ -1,156 +1,150 @@
|
|
1 |
-
<?php
|
2 |
-
/*
|
3 |
-
* Copyright 2014 Google Inc.
|
4 |
-
*
|
5 |
-
* Licensed under the Apache License, Version 2.0 (the "License");
|
6 |
-
* you may not use this file except in compliance with the License.
|
7 |
-
* You may obtain a copy of the License at
|
8 |
-
*
|
9 |
-
* https://www.apache.org/licenses/LICENSE-2.0
|
10 |
-
*
|
11 |
-
* Unless required by applicable law or agreed to in writing, software
|
12 |
-
* distributed under the License is distributed on an "AS IS" BASIS,
|
13 |
-
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
14 |
-
* See the License for the specific language governing permissions and
|
15 |
-
* limitations under the License.
|
16 |
-
*/
|
17 |
-
|
18 |
-
require_once realpath(dirname(__FILE__) . '/../../../autoload.php');
|
19 |
-
|
20 |
-
/**
|
21 |
-
* File logging class based on the PSR-3 standard.
|
22 |
-
*
|
23 |
-
* This logger writes to a PHP stream resource.
|
24 |
-
*/
|
25 |
-
class GoogleGAL_Logger_File extends GoogleGAL_Logger_Abstract
|
26 |
-
|
27 |
-
|
28 |
-
|
29 |
-
|
30 |
-
|
31 |
-
|
32 |
-
|
33 |
-
|
34 |
-
|
35 |
-
|
36 |
-
|
37 |
-
|
38 |
-
|
39 |
-
|
40 |
-
|
41 |
-
|
42 |
-
|
43 |
-
|
44 |
-
|
45 |
-
|
46 |
-
|
47 |
-
|
48 |
-
|
49 |
-
|
50 |
-
|
51 |
-
|
52 |
-
|
53 |
-
|
54 |
-
|
55 |
-
|
56 |
-
|
57 |
-
|
58 |
-
|
59 |
-
|
60 |
-
|
61 |
-
|
62 |
-
|
63 |
-
|
64 |
-
|
65 |
-
|
66 |
-
|
67 |
-
|
68 |
-
|
69 |
-
|
70 |
-
|
71 |
-
|
72 |
-
|
73 |
-
|
74 |
-
|
75 |
-
|
76 |
-
|
77 |
-
|
78 |
-
|
79 |
-
|
80 |
-
|
81 |
-
|
82 |
-
|
83 |
-
|
84 |
-
|
85 |
-
|
86 |
-
|
87 |
-
|
88 |
-
|
89 |
-
|
90 |
-
|
91 |
-
|
92 |
-
|
93 |
-
|
94 |
-
|
95 |
-
|
96 |
-
|
97 |
-
|
98 |
-
|
99 |
-
|
100 |
-
|
101 |
-
|
102 |
-
|
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 |
-
|
134 |
-
|
135 |
-
|
136 |
-
|
137 |
-
|
138 |
-
|
139 |
-
|
140 |
-
|
141 |
-
|
142 |
-
|
143 |
-
|
144 |
-
|
145 |
-
|
146 |
-
|
147 |
-
|
148 |
-
|
149 |
-
|
150 |
-
|
151 |
-
|
152 |
-
public function __destruct()
|
153 |
-
{
|
154 |
-
$this->close();
|
155 |
-
}
|
156 |
-
}
|
1 |
+
<?php
|
2 |
+
/*
|
3 |
+
* Copyright 2014 Google Inc.
|
4 |
+
*
|
5 |
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
6 |
+
* you may not use this file except in compliance with the License.
|
7 |
+
* You may obtain a copy of the License at
|
8 |
+
*
|
9 |
+
* https://www.apache.org/licenses/LICENSE-2.0
|
10 |
+
*
|
11 |
+
* Unless required by applicable law or agreed to in writing, software
|
12 |
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
13 |
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
14 |
+
* See the License for the specific language governing permissions and
|
15 |
+
* limitations under the License.
|
16 |
+
*/
|
17 |
+
|
18 |
+
require_once realpath( dirname( __FILE__ ) . '/../../../autoload.php' );
|
19 |
+
|
20 |
+
/**
|
21 |
+
* File logging class based on the PSR-3 standard.
|
22 |
+
*
|
23 |
+
* This logger writes to a PHP stream resource.
|
24 |
+
*/
|
25 |
+
class GoogleGAL_Logger_File extends GoogleGAL_Logger_Abstract {
|
26 |
+
|
27 |
+
/**
|
28 |
+
* @var string|resource $file Where logs are written
|
29 |
+
*/
|
30 |
+
private $file;
|
31 |
+
/**
|
32 |
+
* @var integer $mode The mode to use if the log file needs to be created
|
33 |
+
*/
|
34 |
+
private $mode = 0640;
|
35 |
+
/**
|
36 |
+
* @var boolean $lock If a lock should be attempted before writing to the log
|
37 |
+
*/
|
38 |
+
private $lock = false;
|
39 |
+
|
40 |
+
/**
|
41 |
+
* @var integer $trappedErrorNumber Trapped error number
|
42 |
+
*/
|
43 |
+
private $trappedErrorNumber;
|
44 |
+
/**
|
45 |
+
* @var string $trappedErrorString Trapped error string
|
46 |
+
*/
|
47 |
+
private $trappedErrorString;
|
48 |
+
|
49 |
+
/**
|
50 |
+
* {@inheritdoc}
|
51 |
+
*/
|
52 |
+
public function __construct( GoogleGAL_Client $client ) {
|
53 |
+
parent::__construct( $client );
|
54 |
+
|
55 |
+
$file = $client->getClassConfig( 'GoogleGAL_Logger_File', 'file' );
|
56 |
+
if ( ! is_string( $file ) && ! is_resource( $file ) ) {
|
57 |
+
throw new GoogleGAL_Logger_Exception(
|
58 |
+
'File logger requires a filename or a valid file pointer'
|
59 |
+
);
|
60 |
+
}
|
61 |
+
|
62 |
+
$mode = $client->getClassConfig( 'GoogleGAL_Logger_File', 'mode' );
|
63 |
+
if ( ! $mode ) {
|
64 |
+
$this->mode = $mode;
|
65 |
+
}
|
66 |
+
|
67 |
+
$this->lock = (bool) $client->getClassConfig( 'GoogleGAL_Logger_File', 'lock' );
|
68 |
+
$this->file = $file;
|
69 |
+
}
|
70 |
+
|
71 |
+
/**
|
72 |
+
* {@inheritdoc}
|
73 |
+
*/
|
74 |
+
protected function write( $message ) {
|
75 |
+
if ( is_string( $this->file ) ) {
|
76 |
+
$this->open();
|
77 |
+
} elseif ( ! is_resource( $this->file ) ) {
|
78 |
+
throw new GoogleGAL_Logger_Exception( 'File pointer is no longer available' );
|
79 |
+
}
|
80 |
+
|
81 |
+
if ( $this->lock ) {
|
82 |
+
flock( $this->file, LOCK_EX );
|
83 |
+
}
|
84 |
+
|
85 |
+
fwrite( $this->file, (string) $message );
|
86 |
+
|
87 |
+
if ( $this->lock ) {
|
88 |
+
flock( $this->file, LOCK_UN );
|
89 |
+
}
|
90 |
+
}
|
91 |
+
|
92 |
+
/**
|
93 |
+
* Opens the log for writing.
|
94 |
+
*
|
95 |
+
* @return resource
|
96 |
+
*/
|
97 |
+
private function open() {
|
98 |
+
// Used for trapping `fopen()` errors.
|
99 |
+
$this->trappedErrorNumber = null;
|
100 |
+
$this->trappedErrorString = null;
|
101 |
+
|
102 |
+
$old = set_error_handler( array( $this, 'trapError' ) );
|
103 |
+
|
104 |
+
$needsChmod = ! file_exists( $this->file );
|
105 |
+
$fh = fopen( $this->file, 'a' );
|
106 |
+
|
107 |
+
restore_error_handler();
|
108 |
+
|
109 |
+
// Handles trapped `fopen()` errors.
|
110 |
+
if ( $this->trappedErrorNumber ) {
|
111 |
+
throw new GoogleGAL_Logger_Exception(
|
112 |
+
sprintf(
|
113 |
+
"Logger Error: '%s'",
|
114 |
+
$this->trappedErrorString
|
115 |
+
),
|
116 |
+
$this->trappedErrorNumber
|
117 |
+
);
|
118 |
+
}
|
119 |
+
|
120 |
+
if ( $needsChmod ) {
|
121 |
+
@chmod( $this->file, $this->mode & ~umask() );
|
122 |
+
}
|
123 |
+
|
124 |
+
return $this->file = $fh;
|
125 |
+
}
|
126 |
+
|
127 |
+
/**
|
128 |
+
* Closes the log stream resource.
|
129 |
+
*/
|
130 |
+
private function close() {
|
131 |
+
if ( is_resource( $this->file ) ) {
|
132 |
+
fclose( $this->file );
|
133 |
+
}
|
134 |
+
}
|
135 |
+
|
136 |
+
/**
|
137 |
+
* Traps `fopen()` errors.
|
138 |
+
*
|
139 |
+
* @param integer $errno The error number
|
140 |
+
* @param string $errstr The error string
|
141 |
+
*/
|
142 |
+
private function trapError( $errno, $errstr ) {
|
143 |
+
$this->trappedErrorNumber = $errno;
|
144 |
+
$this->trappedErrorString = $errstr;
|
145 |
+
}
|
146 |
+
|
147 |
+
public function __destruct() {
|
148 |
+
$this->close();
|
149 |
+
}
|
150 |
+
}
|
|
|
|
|
|
|
|
|
|
|
|
core/Google/Logger/Null.php
CHANGED
@@ -1,41 +1,39 @@
|
|
1 |
-
<?php
|
2 |
-
/*
|
3 |
-
* Copyright 2014 Google Inc.
|
4 |
-
*
|
5 |
-
* Licensed under the Apache License, Version 2.0 (the "License");
|
6 |
-
* you may not use this file except in compliance with the License.
|
7 |
-
* You may obtain a copy of the License at
|
8 |
-
*
|
9 |
-
* https://www.apache.org/licenses/LICENSE-2.0
|
10 |
-
*
|
11 |
-
* Unless required by applicable law or agreed to in writing, software
|
12 |
-
* distributed under the License is distributed on an "AS IS" BASIS,
|
13 |
-
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
14 |
-
* See the License for the specific language governing permissions and
|
15 |
-
* limitations under the License.
|
16 |
-
*/
|
17 |
-
|
18 |
-
require_once realpath(dirname(__FILE__) . '/../../../autoload.php');
|
19 |
-
|
20 |
-
/**
|
21 |
-
* Null logger based on the PSR-3 standard.
|
22 |
-
*
|
23 |
-
* This logger simply discards all messages.
|
24 |
-
*/
|
25 |
-
class GoogleGAL_Logger_Null extends GoogleGAL_Logger_Abstract
|
26 |
-
|
27 |
-
|
28 |
-
|
29 |
-
|
30 |
-
|
31 |
-
|
32 |
-
|
33 |
-
|
34 |
-
|
35 |
-
|
36 |
-
|
37 |
-
|
38 |
-
|
39 |
-
|
40 |
-
}
|
41 |
-
}
|
1 |
+
<?php
|
2 |
+
/*
|
3 |
+
* Copyright 2014 Google Inc.
|
4 |
+
*
|
5 |
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
6 |
+
* you may not use this file except in compliance with the License.
|
7 |
+
* You may obtain a copy of the License at
|
8 |
+
*
|
9 |
+
* https://www.apache.org/licenses/LICENSE-2.0
|
10 |
+
*
|
11 |
+
* Unless required by applicable law or agreed to in writing, software
|
12 |
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
13 |
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
14 |
+
* See the License for the specific language governing permissions and
|
15 |
+
* limitations under the License.
|
16 |
+
*/
|
17 |
+
|
18 |
+
require_once realpath( dirname( __FILE__ ) . '/../../../autoload.php' );
|
19 |
+
|
20 |
+
/**
|
21 |
+
* Null logger based on the PSR-3 standard.
|
22 |
+
*
|
23 |
+
* This logger simply discards all messages.
|
24 |
+
*/
|
25 |
+
class GoogleGAL_Logger_Null extends GoogleGAL_Logger_Abstract {
|
26 |
+
|
27 |
+
/**
|
28 |
+
* {@inheritdoc}
|
29 |
+
*/
|
30 |
+
public function shouldHandle( $level ) {
|
31 |
+
return false;
|
32 |
+
}
|
33 |
+
|
34 |
+
/**
|
35 |
+
* {@inheritdoc}
|
36 |
+
*/
|
37 |
+
protected function write( $message, array $context = array() ) {
|
38 |
+
}
|
39 |
+
}
|
|
|
|
core/Google/Logger/Psr.php
CHANGED
@@ -1,91 +1,86 @@
|
|
1 |
-
<?php
|
2 |
-
/*
|
3 |
-
* Copyright 2014 Google Inc.
|
4 |
-
*
|
5 |
-
* Licensed under the Apache License, Version 2.0 (the "License");
|
6 |
-
* you may not use this file except in compliance with the License.
|
7 |
-
* You may obtain a copy of the License at
|
8 |
-
*
|
9 |
-
* https://www.apache.org/licenses/LICENSE-2.0
|
10 |
-
*
|
11 |
-
* Unless required by applicable law or agreed to in writing, software
|
12 |
-
* distributed under the License is distributed on an "AS IS" BASIS,
|
13 |
-
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
14 |
-
* See the License for the specific language governing permissions and
|
15 |
-
* limitations under the License.
|
16 |
-
*/
|
17 |
-
|
18 |
-
require_once realpath(dirname(__FILE__) . '/../../../autoload.php');
|
19 |
-
|
20 |
-
/**
|
21 |
-
* Psr logging class based on the PSR-3 standard.
|
22 |
-
*
|
23 |
-
* This logger will delegate all logging to a PSR-3 compatible logger specified
|
24 |
-
* with the `GoogleGAL_Logger_Psr::setLogger()` method.
|
25 |
-
*/
|
26 |
-
class GoogleGAL_Logger_Psr extends GoogleGAL_Logger_Abstract
|
27 |
-
|
28 |
-
|
29 |
-
|
30 |
-
|
31 |
-
|
32 |
-
|
33 |
-
|
34 |
-
|
35 |
-
|
36 |
-
|
37 |
-
|
38 |
-
|
39 |
-
|
40 |
-
|
41 |
-
|
42 |
-
|
43 |
-
|
44 |
-
|
45 |
-
|
46 |
-
|
47 |
-
|
48 |
-
|
49 |
-
|
50 |
-
|
51 |
-
|
52 |
-
|
53 |
-
|
54 |
-
|
55 |
-
|
56 |
-
|
57 |
-
|
58 |
-
|
59 |
-
|
60 |
-
|
61 |
-
|
62 |
-
|
63 |
-
|
64 |
-
|
65 |
-
|
66 |
-
|
67 |
-
|
68 |
-
|
69 |
-
|
70 |
-
|
71 |
-
|
72 |
-
|
73 |
-
|
74 |
-
|
75 |
-
|
76 |
-
|
77 |
-
|
78 |
-
|
79 |
-
|
80 |
-
|
81 |
-
|
82 |
-
|
83 |
-
|
84 |
-
|
85 |
-
|
86 |
-
|
87 |
-
*/
|
88 |
-
protected function write($message, array $context = array())
|
89 |
-
{
|
90 |
-
}
|
91 |
-
}
|
1 |
+
<?php
|
2 |
+
/*
|
3 |
+
* Copyright 2014 Google Inc.
|
4 |
+
*
|
5 |
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
6 |
+
* you may not use this file except in compliance with the License.
|
7 |
+
* You may obtain a copy of the License at
|
8 |
+
*
|
9 |
+
* https://www.apache.org/licenses/LICENSE-2.0
|
10 |
+
*
|
11 |
+
* Unless required by applicable law or agreed to in writing, software
|
12 |
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
13 |
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
14 |
+
* See the License for the specific language governing permissions and
|
15 |
+
* limitations under the License.
|
16 |
+
*/
|
17 |
+
|
18 |
+
require_once realpath( dirname( __FILE__ ) . '/../../../autoload.php' );
|
19 |
+
|
20 |
+
/**
|
21 |
+
* Psr logging class based on the PSR-3 standard.
|
22 |
+
*
|
23 |
+
* This logger will delegate all logging to a PSR-3 compatible logger specified
|
24 |
+
* with the `GoogleGAL_Logger_Psr::setLogger()` method.
|
25 |
+
*/
|
26 |
+
class GoogleGAL_Logger_Psr extends GoogleGAL_Logger_Abstract {
|
27 |
+
|
28 |
+
/**
|
29 |
+
* @param Psr\Log\LoggerInterface $logger The PSR-3 logger
|
30 |
+
*/
|
31 |
+
private $logger;
|
32 |
+
|
33 |
+
/**
|
34 |
+
* @param GoogleGAL_Client $client The current Google client
|
35 |
+
* @param Psr\Log\LoggerInterface $logger PSR-3 logger where logging will be delegated.
|
36 |
+
*/
|
37 |
+
public function __construct( GoogleGAL_Client $client, /*Psr\Log\LoggerInterface*/ $logger = null ) {
|
38 |
+
parent::__construct( $client );
|
39 |
+
|
40 |
+
if ( $logger ) {
|
41 |
+
$this->setLogger( $logger );
|
42 |
+
}
|
43 |
+
}
|
44 |
+
|
45 |
+
/**
|
46 |
+
* Sets the PSR-3 logger where logging will be delegated.
|
47 |
+
*
|
48 |
+
* NOTE: The `$logger` should technically implement
|
49 |
+
* `Psr\Log\LoggerInterface`, but we don't explicitly require this so that
|
50 |
+
* we can be compatible with PHP 5.2.
|
51 |
+
*
|
52 |
+
* @param Psr\Log\LoggerInterface $logger The PSR-3 logger
|
53 |
+
*/
|
54 |
+
public function setLogger( /*Psr\Log\LoggerInterface*/ $logger ) {
|
55 |
+
$this->logger = $logger;
|
56 |
+
}
|
57 |
+
|
58 |
+
/**
|
59 |
+
* {@inheritdoc}
|
60 |
+
*/
|
61 |
+
public function shouldHandle( $level ) {
|
62 |
+
return isset( $this->logger ) && parent::shouldHandle( $level );
|
63 |
+
}
|
64 |
+
|
65 |
+
/**
|
66 |
+
* {@inheritdoc}
|
67 |
+
*/
|
68 |
+
public function log( $level, $message, array $context = array() ) {
|
69 |
+
if ( ! $this->shouldHandle( $level ) ) {
|
70 |
+
return false;
|
71 |
+
}
|
72 |
+
|
73 |
+
if ( $context ) {
|
74 |
+
$this->reverseJsonInContext( $context );
|
75 |
+
}
|
76 |
+
|
77 |
+
$levelName = is_int( $level ) ? array_search( $level, self::$levels ) : $level;
|
78 |
+
$this->logger->log( $levelName, $message, $context );
|
79 |
+
}
|
80 |
+
|
81 |
+
/**
|
82 |
+
* {@inheritdoc}
|
83 |
+
*/
|
84 |
+
protected function write( $message, array $context = array() ) {
|
85 |
+
}
|
86 |
+
}
|
|
|
|
|
|
|
|
|
|
core/Google/Model.php
CHANGED
@@ -1,281 +1,265 @@
|
|
1 |
-
<?php
|
2 |
-
/*
|
3 |
-
* Copyright 2011 Google Inc.
|
4 |
-
*
|
5 |
-
* Licensed under the Apache License, Version 2.0 (the "License");
|
6 |
-
* you may not use this file except in compliance with the License.
|
7 |
-
* You may obtain a copy of the License at
|
8 |
-
*
|
9 |
-
* https://www.apache.org/licenses/LICENSE-2.0
|
10 |
-
*
|
11 |
-
* Unless required by applicable law or agreed to in writing, software
|
12 |
-
* distributed under the License is distributed on an "AS IS" BASIS,
|
13 |
-
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
14 |
-
* See the License for the specific language governing permissions and
|
15 |
-
* limitations under the License.
|
16 |
-
*/
|
17 |
-
|
18 |
-
/**
|
19 |
-
* This class defines attributes, valid values, and usage which is generated
|
20 |
-
* from a given json schema.
|
21 |
-
* http://tools.ietf.org/html/draft-zyp-json-schema-03#section-5
|
22 |
-
*
|
23 |
-
* @author Chirag Shah <chirags@google.com>
|
24 |
-
|
25 |
-
|
26 |
-
|
27 |
-
|
28 |
-
|
29 |
-
|
30 |
-
|
31 |
-
|
32 |
-
|
33 |
-
|
34 |
-
|
35 |
-
|
36 |
-
|
37 |
-
|
38 |
-
|
39 |
-
|
40 |
-
|
41 |
-
|
42 |
-
|
43 |
-
|
44 |
-
|
45 |
-
|
46 |
-
|
47 |
-
|
48 |
-
|
49 |
-
|
50 |
-
|
51 |
-
|
52 |
-
|
53 |
-
|
54 |
-
|
55 |
-
|
56 |
-
|
57 |
-
|
58 |
-
|
59 |
-
|
60 |
-
|
61 |
-
|
62 |
-
|
63 |
-
|
64 |
-
|
65 |
-
|
66 |
-
|
67 |
-
|
68 |
-
|
69 |
-
|
70 |
-
|
71 |
-
|
72 |
-
|
73 |
-
|
74 |
-
|
75 |
-
|
76 |
-
|
77 |
-
|
78 |
-
|
79 |
-
|
80 |
-
|
81 |
-
|
82 |
-
|
83 |
-
|
84 |
-
|
85 |
-
|
86 |
-
|
87 |
-
|
88 |
-
|
89 |
-
|
90 |
-
|
91 |
-
|
92 |
-
|
93 |
-
|
94 |
-
|
95 |
-
|
96 |
-
|
97 |
-
|
98 |
-
|
99 |
-
|
100 |
-
|
101 |
-
|
102 |
-
|
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 |
-
|
134 |
-
|
135 |
-
|
136 |
-
|
137 |
-
|
138 |
-
|
139 |
-
|
140 |
-
|
141 |
-
|
142 |
-
|
143 |
-
|
144 |
-
|
145 |
-
|
146 |
-
|
147 |
-
|
148 |
-
|
149 |
-
|
150 |
-
|
151 |
-
|
152 |
-
|
153 |
-
|
154 |
-
|
155 |
-
|
156 |
-
|
157 |
-
|
158 |
-
|
159 |
-
|
160 |
-
|
161 |
-
|
162 |
-
|
163 |
-
|
164 |
-
|
165 |
-
|
166 |
-
|
167 |
-
|
168 |
-
|
169 |
-
|
170 |
-
|
171 |
-
|
172 |
-
|
173 |
-
|
174 |
-
|
175 |
-
|
176 |
-
|
177 |
-
|
178 |
-
|
179 |
-
|
180 |
-
|
181 |
-
|
182 |
-
|
183 |
-
|
184 |
-
|
185 |
-
|
186 |
-
|
187 |
-
|
188 |
-
|
189 |
-
|
190 |
-
|
191 |
-
|
192 |
-
|
193 |
-
|
194 |
-
|
195 |
-
|
196 |
-
|
197 |
-
|
198 |
-
|
199 |
-
|
200 |
-
|
201 |
-
|
202 |
-
|
203 |
-
|
204 |
-
|
205 |
-
|
206 |
-
|
207 |
-
|
208 |
-
|
209 |
-
|
210 |
-
|
211 |
-
|
212 |
-
|
213 |
-
|
214 |
-
|
215 |
-
|
216 |
-
|
217 |
-
|
218 |
-
|
219 |
-
|
220 |
-
|
221 |
-
|
222 |
-
|
223 |
-
|
224 |
-
|
225 |
-
|
226 |
-
|
227 |
-
|
228 |
-
|
229 |
-
|
230 |
-
|
231 |
-
|
232 |
-
|
233 |
-
|
234 |
-
|
235 |
-
|
236 |
-
|
237 |
-
|
238 |
-
|
239 |
-
|
240 |
-
|
241 |
-
|
242 |
-
|
243 |
-
|
244 |
-
|
245 |
-
|
246 |
-
|
247 |
-
|
248 |
-
|
249 |
-
|
250 |
-
|
251 |
-
|
252 |
-
|
253 |
-
|
254 |
-
|
255 |
-
|
256 |
-
|
257 |
-
|
258 |
-
|
259 |
-
|
260 |
-
|
261 |
-
|
262 |
-
|
263 |
-
|
264 |
-
|
265 |
-
|
266 |
-
|
267 |
-
protected function dataType($key)
|
268 |
-
{
|
269 |
-
return $key . "DataType";
|
270 |
-
}
|
271 |
-
|
272 |
-
public function __isset($key)
|
273 |
-
{
|
274 |
-
return isset($this->modelData[$key]);
|
275 |
-
}
|
276 |
-
|
277 |
-
public function __unset($key)
|
278 |
-
{
|
279 |
-
unset($this->modelData[$key]);
|
280 |
-
}
|
281 |
-
}
|
1 |
+
<?php
|
2 |
+
/*
|
3 |
+
* Copyright 2011 Google Inc.
|
4 |
+
*
|
5 |
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
6 |
+
* you may not use this file except in compliance with the License.
|
7 |
+
* You may obtain a copy of the License at
|
8 |
+
*
|
9 |
+
* https://www.apache.org/licenses/LICENSE-2.0
|
10 |
+
*
|
11 |
+
* Unless required by applicable law or agreed to in writing, software
|
12 |
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
13 |
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
14 |
+
* See the License for the specific language governing permissions and
|
15 |
+
* limitations under the License.
|
16 |
+
*/
|
17 |
+
|
18 |
+
/**
|
19 |
+
* This class defines attributes, valid values, and usage which is generated
|
20 |
+
* from a given json schema.
|
21 |
+
* http://tools.ietf.org/html/draft-zyp-json-schema-03#section-5
|
22 |
+
*
|
23 |
+
* @author Chirag Shah <chirags@google.com>
|
24 |
+
*/
|
25 |
+
class GoogleGAL_Model implements ArrayAccess {
|
26 |
+
|
27 |
+
protected $internal_gapi_mappings = array();
|
28 |
+
protected $modelData = array();
|
29 |
+
protected $processed = array();
|
30 |
+
|
31 |
+
/**
|
32 |
+
* Polymorphic - accepts a variable number of arguments dependent
|
33 |
+
* on the type of the model subclass.
|
34 |
+
*/
|
35 |
+
final public function __construct() {
|
36 |
+
if ( func_num_args() == 1 && is_array( func_get_arg( 0 ) ) ) {
|
37 |
+
// Initialize the model with the array's contents.
|
38 |
+
$array = func_get_arg( 0 );
|
39 |
+
$this->mapTypes( $array );
|
40 |
+
}
|
41 |
+
$this->gapiInit();
|
42 |
+
}
|
43 |
+
|
44 |
+
/**
|
45 |
+
* Getter that handles passthrough access to the data array, and lazy object creation.
|
46 |
+
*
|
47 |
+
* @param string $key Property name.
|
48 |
+
* @return mixed The value if any, or null.
|
49 |
+
*/
|
50 |
+
public function __get( $key ) {
|
51 |
+
$keyTypeName = $this->keyType( $key );
|
52 |
+
$keyDataType = $this->dataType( $key );
|
53 |
+
if ( isset( $this->$keyTypeName ) && ! isset( $this->processed[ $key ] ) ) {
|
54 |
+
if ( isset( $this->modelData[ $key ] ) ) {
|
55 |
+
$val = $this->modelData[ $key ];
|
56 |
+
} elseif ( isset( $this->$keyDataType ) &&
|
57 |
+
( $this->$keyDataType == 'array' || $this->$keyDataType == 'map' ) ) {
|
58 |
+
$val = array();
|
59 |
+
} else {
|
60 |
+
$val = null;
|
61 |
+
}
|
62 |
+
|
63 |
+
if ( $this->isAssociativeArray( $val ) ) {
|
64 |
+
if ( isset( $this->$keyDataType ) && 'map' == $this->$keyDataType ) {
|
65 |
+
foreach ( $val as $arrayKey => $arrayItem ) {
|
66 |
+
$this->modelData[ $key ][ $arrayKey ] =
|
67 |
+
$this->createObjectFromName( $keyTypeName, $arrayItem );
|
68 |
+
}
|
69 |
+
} else {
|
70 |
+
$this->modelData[ $key ] = $this->createObjectFromName( $keyTypeName, $val );
|
71 |
+
}
|
72 |
+
} elseif ( is_array( $val ) ) {
|
73 |
+
$arrayObject = array();
|
74 |
+
foreach ( $val as $arrayIndex => $arrayItem ) {
|
75 |
+
$arrayObject[ $arrayIndex ] =
|
76 |
+
$this->createObjectFromName( $keyTypeName, $arrayItem );
|
77 |
+
}
|
78 |
+
$this->modelData[ $key ] = $arrayObject;
|
79 |
+
}
|
80 |
+
$this->processed[ $key ] = true;
|
81 |
+
}
|
82 |
+
|
83 |
+
return isset( $this->modelData[ $key ] ) ? $this->modelData[ $key ] : null;
|
84 |
+
}
|
85 |
+
|
86 |
+
/**
|
87 |
+
* Initialize this object's properties from an array.
|
88 |
+
*
|
89 |
+
* @param array $array Used to seed this object's properties.
|
90 |
+
* @return void
|
91 |
+
*/
|
92 |
+
protected function mapTypes( $array ) {
|
93 |
+
// Hard initilise simple types, lazy load more complex ones.
|
94 |
+
foreach ( $array as $key => $val ) {
|
95 |
+
if ( ! property_exists( $this, $this->keyType( $key ) ) &&
|
96 |
+
property_exists( $this, $key ) ) {
|
97 |
+
$this->$key = $val;
|
98 |
+
unset( $array[ $key ] );
|
99 |
+
} elseif ( property_exists( $this, $camelKey = GoogleGAL_Utils::camelCase( $key ) ) ) {
|
100 |
+
// This checks if property exists as camelCase, leaving it in array as snake_case
|
101 |
+
// in case of backwards compatibility issues.
|
102 |
+
$this->$camelKey = $val;
|
103 |
+
}
|
104 |
+
}
|
105 |
+
$this->modelData = $array;
|
106 |
+
}
|
107 |
+
|
108 |
+
/**
|
109 |
+
* Blank initialiser to be used in subclasses to do post-construction initialisation - this
|
110 |
+
* avoids the need for subclasses to have to implement the variadics handling in their
|
111 |
+
* constructors.
|
112 |
+
*/
|
113 |
+
protected function gapiInit() {
|
114 |
+
return;
|
115 |
+
}
|
116 |
+
|
117 |
+
/**
|
118 |
+
* Create a simplified object suitable for straightforward
|
119 |
+
* conversion to JSON. This is relatively expensive
|
120 |
+
* due to the usage of reflection, but shouldn't be called
|
121 |
+
* a whole lot, and is the most straightforward way to filter.
|
122 |
+
*/
|
123 |
+
public function toSimpleObject() {
|
124 |
+
$object = new stdClass();
|
125 |
+
|
126 |
+
// Process all other data.
|
127 |
+
foreach ( $this->modelData as $key => $val ) {
|
128 |
+
$result = $this->getSimpleValue( $val );
|
129 |
+
if ( $result !== null ) {
|
130 |
+
$object->$key = $result;
|
131 |
+
}
|
132 |
+
}
|
133 |
+
|
134 |
+
// Process all public properties.
|
135 |
+
$reflect = new ReflectionObject( $this );
|
136 |
+
$props = $reflect->getProperties( ReflectionProperty::IS_PUBLIC );
|
137 |
+
foreach ( $props as $member ) {
|
138 |
+
$name = $member->getName();
|
139 |
+
$result = $this->getSimpleValue( $this->$name );
|
140 |
+
if ( $result !== null ) {
|
141 |
+
$name = $this->getMappedName( $name );
|
142 |
+
$object->$name = $result;
|
143 |
+
}
|
144 |
+
}
|
145 |
+
|
146 |
+
return $object;
|
147 |
+
}
|
148 |
+
|
149 |
+
/**
|
150 |
+
* Handle different types of values, primarily
|
151 |
+
* other objects and map and array data types.
|
152 |
+
*/
|
153 |
+
private function getSimpleValue( $value ) {
|
154 |
+
if ( $value instanceof GoogleGAL_Model ) {
|
155 |
+
return $value->toSimpleObject();
|
156 |
+
} elseif ( is_array( $value ) ) {
|
157 |
+
$return = array();
|
158 |
+
foreach ( $value as $key => $a_value ) {
|
159 |
+
$a_value = $this->getSimpleValue( $a_value );
|
160 |
+
if ( $a_value !== null ) {
|
161 |
+
$key = $this->getMappedName( $key );
|
162 |
+
$return[ $key ] = $a_value;
|
163 |
+
}
|
164 |
+
}
|
165 |
+
return $return;
|
166 |
+
}
|
167 |
+
return $value;
|
168 |
+
}
|
169 |
+
|
170 |
+
/**
|
171 |
+
* If there is an internal name mapping, use that.
|
172 |
+
*/
|
173 |
+
private function getMappedName( $key ) {
|
174 |
+
if ( isset( $this->internal_gapi_mappings ) &&
|
175 |
+
isset( $this->internal_gapi_mappings[ $key ] ) ) {
|
176 |
+
$key = $this->internal_gapi_mappings[ $key ];
|
177 |
+
}
|
178 |
+
return $key;
|
179 |
+
}
|
180 |
+
|
181 |
+
/**
|
182 |
+
* Returns true only if the array is associative.
|
183 |
+
*
|
184 |
+
* @param array $array
|
185 |
+
* @return bool True if the array is associative.
|
186 |
+
*/
|
187 |
+
protected function isAssociativeArray( $array ) {
|
188 |
+
if ( ! is_array( $array ) ) {
|
189 |
+
return false;
|
190 |
+
}
|
191 |
+
$keys = array_keys( $array );
|
192 |
+
foreach ( $keys as $key ) {
|
193 |
+
if ( is_string( $key ) ) {
|
194 |
+
return true;
|
195 |
+
}
|
196 |
+
}
|
197 |
+
return false;
|
198 |
+
}
|
199 |
+
|
200 |
+
/**
|
201 |
+
* Given a variable name, discover its type.
|
202 |
+
*
|
203 |
+
* @param $name
|
204 |
+
* @param $item
|
205 |
+
* @return object The object from the item.
|
206 |
+
*/
|
207 |
+
private function createObjectFromName( $name, $item ) {
|
208 |
+
$type = $this->$name;
|
209 |
+
return new $type( $item );
|
210 |
+
}
|
211 |
+
|
212 |
+
/**
|
213 |
+
* Verify if $obj is an array.
|
214 |
+
*
|
215 |
+
* @throws GoogleGAL_Exception Thrown if $obj isn't an array.
|
216 |
+
* @param array $obj Items that should be validated.
|
217 |
+
* @param string $method Method expecting an array as an argument.
|
218 |
+
*/
|
219 |
+
public function assertIsArray( $obj, $method ) {
|
220 |
+
if ( $obj && ! is_array( $obj ) ) {
|
221 |
+
throw new GoogleGAL_Exception(
|
222 |
+
"Incorrect parameter type passed to $method(). Expected an array."
|
223 |
+
);
|
224 |
+
}
|
225 |
+
}
|
226 |
+
|
227 |
+
public function offsetExists( $offset ) {
|
228 |
+
return isset( $this->$offset ) || isset( $this->modelData[ $offset ] );
|
229 |
+
}
|
230 |
+
|
231 |
+
public function offsetGet( $offset ) {
|
232 |
+
return isset( $this->$offset ) ?
|
233 |
+
$this->$offset :
|
234 |
+
$this->__get( $offset );
|
235 |
+
}
|
236 |
+
|
237 |
+
public function offsetSet( $offset, $value ) {
|
238 |
+
if ( property_exists( $this, $offset ) ) {
|
239 |
+
$this->$offset = $value;
|
240 |
+
} else {
|
241 |
+
$this->modelData[ $offset ] = $value;
|
242 |
+
$this->processed[ $offset ] = true;
|
243 |
+
}
|
244 |
+
}
|
245 |
+
|
246 |
+
public function offsetUnset( $offset ) {
|
247 |
+
unset( $this->modelData[ $offset ] );
|
248 |
+
}
|
249 |
+
|
250 |
+
protected function keyType( $key ) {
|
251 |
+
return $key . 'Type';
|
252 |
+
}
|
253 |
+
|
254 |
+
protected function dataType( $key ) {
|
255 |
+
return $key . 'DataType';
|
256 |
+
}
|
257 |
+
|
258 |
+
public function __isset( $key ) {
|
259 |
+
return isset( $this->modelData[ $key ] );
|
260 |
+
}
|
261 |
+
|
262 |
+
public function __unset( $key ) {
|
263 |
+
unset( $this->modelData[ $key ] );
|
264 |
+
}
|
265 |
+
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
core/Google/Service.php
CHANGED
@@ -1,39 +1,38 @@
|
|
1 |
-
<?php
|
2 |
-
/*
|
3 |
-
* Copyright 2010 Google Inc.
|
4 |
-
*
|
5 |
-
* Licensed under the Apache License, Version 2.0 (the "License");
|
6 |
-
* you may not use this file except in compliance with the License.
|
7 |
-
* You may obtain a copy of the License at
|
8 |
-
*
|
9 |
-
* https://www.apache.org/licenses/LICENSE-2.0
|
10 |
-
*
|
11 |
-
* Unless required by applicable law or agreed to in writing, software
|
12 |
-
* distributed under the License is distributed on an "AS IS" BASIS,
|
13 |
-
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
14 |
-
* See the License for the specific language governing permissions and
|
15 |
-
* limitations under the License.
|
16 |
-
*/
|
17 |
-
|
18 |
-
class GoogleGAL_Service
|
19 |
-
|
20 |
-
|
21 |
-
|
22 |
-
|
23 |
-
|
24 |
-
|
25 |
-
|
26 |
-
|
27 |
-
|
28 |
-
|
29 |
-
|
30 |
-
|
31 |
-
|
32 |
-
|
33 |
-
|
34 |
-
|
35 |
-
|
36 |
-
|
37 |
-
|
38 |
-
|
39 |
-
}
|
1 |
+
<?php
|
2 |
+
/*
|
3 |
+
* Copyright 2010 Google Inc.
|
4 |
+
*
|
5 |
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
6 |
+
* you may not use this file except in compliance with the License.
|
7 |
+
* You may obtain a copy of the License at
|
8 |
+
*
|
9 |
+
* https://www.apache.org/licenses/LICENSE-2.0
|
10 |
+
*
|
11 |
+
* Unless required by applicable law or agreed to in writing, software
|
12 |
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
13 |
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
14 |
+
* See the License for the specific language governing permissions and
|
15 |
+
* limitations under the License.
|
16 |
+
*/
|
17 |
+
|
18 |
+
class GoogleGAL_Service {
|
19 |
+
|
20 |
+
public $version;
|
21 |
+
public $servicePath;
|
22 |
+
public $availableScopes;
|
23 |
+
public $resource;
|
24 |
+
private $client;
|
25 |
+
|
26 |
+
public function __construct( GoogleGAL_Client $client ) {
|
27 |
+
$this->client = $client;
|
28 |
+
}
|
29 |
+
|
30 |
+
/**
|
31 |
+
* Return the associated GoogleGAL_Client class.
|
32 |
+
*
|
33 |
+
* @return GoogleGAL_Client
|
34 |
+
*/
|
35 |
+
public function getClient() {
|
36 |
+
return $this->client;
|
37 |
+
}
|
38 |
+
}
|
|
core/Google/Service/AdExchangeBuyer.php
CHANGED
@@ -1,1909 +1,1687 @@
|
|
1 |
-
<?php
|
2 |
-
/*
|
3 |
-
* Copyright 2010 Google Inc.
|
4 |
-
*
|
5 |
-
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
|
6 |
-
* use this file except in compliance with the License. You may obtain a copy of
|
7 |
-
* the License at
|
8 |
-
*
|
9 |
-
* https://www.apache.org/licenses/LICENSE-2.0
|
10 |
-
*
|
11 |
-
* Unless required by applicable law or agreed to in writing, software
|
12 |
-
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
13 |
-
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
14 |
-
* License for the specific language governing permissions and limitations under
|
15 |
-
* the License.
|
16 |
-
*/
|
17 |
-
|
18 |
-
/**
|
19 |
-
* Service definition for AdExchangeBuyer (v1.3).
|
20 |
-
*
|
21 |
-
* <p>
|
22 |
-
* Accesses your bidding-account information, submits creatives for validation,
|
23 |
-
* finds available direct deals, and retrieves performance reports.</p>
|
24 |
-
*
|
25 |
-
* <p>
|
26 |
-
* For more information about this service, see the API
|
27 |
-
* <a href="https://developers.google.com/ad-exchange/buyer-rest" target="_blank">Documentation</a>
|
28 |
-
* </p>
|
29 |
-
*
|
30 |
-
* @author Google, Inc.
|
31 |
-
*/
|
32 |
-
class GoogleGAL_Service_AdExchangeBuyer extends GoogleGAL_Service
|
33 |
-
|
34 |
-
|
35 |
-
|
36 |
-
|
37 |
-
|
38 |
-
|
39 |
-
|
40 |
-
|
41 |
-
|
42 |
-
|
43 |
-
|
44 |
-
|
45 |
-
|
46 |
-
|
47 |
-
|
48 |
-
|
49 |
-
|
50 |
-
|
51 |
-
|
52 |
-
|
53 |
-
|
54 |
-
|
55 |
-
|
56 |
-
|
57 |
-
|
58 |
-
|
59 |
-
|
60 |
-
|
61 |
-
|
62 |
-
|
63 |
-
|
64 |
-
|
65 |
-
|
66 |
-
|
67 |
-
|
68 |
-
|
69 |
-
|
70 |
-
|
71 |
-
|
72 |
-
|
73 |
-
|
74 |
-
|
75 |
-
|
76 |
-
|
77 |
-
|
78 |
-
|
79 |
-
|
80 |
-
|
81 |
-
|
82 |
-
|
83 |
-
|
84 |
-
|
85 |
-
|
86 |
-
|
87 |
-
|
88 |
-
|
89 |
-
|
90 |
-
|
91 |
-
|
92 |
-
|
93 |
-
|
94 |
-
|
95 |
-
|
96 |
-
|
97 |
-
|
98 |
-
|
99 |
-
|
100 |
-
|
101 |
-
|
102 |
-
|
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 |
-
|
134 |
-
|
135 |
-
|
136 |
-
|
137 |
-
|
138 |
-
|
139 |
-
|
140 |
-
|
141 |
-
|
142 |
-
|
143 |
-
|
144 |
-
|
145 |
-
|
146 |
-
|
147 |
-
|
148 |
-
|
149 |
-
|
150 |
-
|
151 |
-
|
152 |
-
|
153 |
-
|
154 |
-
|
155 |
-
|
156 |
-
|
157 |
-
|
158 |
-
|
159 |
-
|
160 |
-
|
161 |
-
|
162 |
-
|
163 |
-
|
164 |
-
|
165 |
-
|
166 |
-
|
167 |
-
|
168 |
-
|
169 |
-
|
170 |
-
|
171 |
-
|
172 |
-
|
173 |
-
|
174 |
-
|
175 |
-
|
176 |
-
|
177 |
-
|
178 |
-
|
179 |
-
|
180 |
-
|
181 |
-
|
182 |
-
|
183 |
-
|
184 |
-
|
185 |
-
|
186 |
-
|
187 |
-
|
188 |
-
|
189 |
-
|
190 |
-
|
191 |
-
|
192 |
-
|
193 |
-
|
194 |
-
|
195 |
-
|
196 |
-
|
197 |
-
|
198 |
-
|
199 |
-
|
200 |
-
|
201 |
-
|
202 |
-
|
203 |
-
|
204 |
-
|
205 |
-
|
206 |
-
|
207 |
-
|
208 |
-
|
209 |
-
|
210 |
-
|
211 |
-
|
212 |
-
|
213 |
-
|
214 |
-
|
215 |
-
|
216 |
-
|
217 |
-
|
218 |
-
|
219 |
-
|
220 |
-
|
221 |
-
|
222 |
-
|
223 |
-
|
224 |
-
|
225 |
-
|
226 |
-
|
227 |
-
|
228 |
-
|
229 |
-
|
230 |
-
|
231 |
-
|
232 |
-
|
233 |
-
|
234 |
-
|
235 |
-
|
236 |
-
|
237 |
-
|
238 |
-
|
239 |
-
|
240 |
-
|
241 |
-
|
242 |
-
|
243 |
-
|
244 |
-
|
245 |
-
|
246 |
-
|
247 |
-
|
248 |
-
|
249 |
-
|
250 |
-
|
251 |
-
|
252 |
-
|
253 |
-
|
254 |
-
|
255 |
-
|
256 |
-
|
257 |
-
|
258 |
-
|
259 |
-
|
260 |
-
|
261 |
-
|
262 |
-
|
263 |
-
|
264 |
-
|
265 |
-
|
266 |
-
|
267 |
-
|
268 |
-
|
269 |
-
|
270 |
-
|
271 |
-
|
272 |
-
|
273 |
-
|
274 |
-
|
275 |
-
|
276 |
-
|
277 |
-
|
278 |
-
|
279 |
-
|
280 |
-
|
281 |
-
|
282 |
-
|
283 |
-
|
284 |
-
|
285 |
-
|
286 |
-
|
287 |
-
|
288 |
-
|
289 |
-
|
290 |
-
|
291 |
-
|
292 |
-
|
293 |
-
|
294 |
-
|
295 |
-
|
296 |
-
|
297 |
-
|
298 |
-
|
299 |
-
|
300 |
-
|
301 |
-
|
302 |
-
|
303 |
-
|
304 |
-
|
305 |
-
|
306 |
-
|
307 |
-
|
308 |
-
|
309 |
-
|
310 |
-
|
311 |
-
|
312 |
-
|
313 |
-
|
314 |
-
|
315 |
-
|
316 |
-
|
317 |
-
|
318 |
-
|
319 |
-
|
320 |
-
|
321 |
-
|
322 |
-
|
323 |
-
|
324 |
-
|
325 |
-
|
326 |
-
|
327 |
-
|
328 |
-
|
329 |
-
|
330 |
-
|
331 |
-
|
332 |
-
|
333 |
-
|
334 |
-
|
335 |
-
|
336 |
-
|
337 |
-
|
338 |
-
|
339 |
-
|
340 |
-
|
341 |
-
|
342 |
-
|
343 |
-
|
344 |
-
|
345 |
-
|
346 |
-
|
347 |
-
|
348 |
-
|
349 |
-
|
350 |
-
|
351 |
-
|
352 |
-
|
353 |
-
|
354 |
-
|
355 |
-
|
356 |
-
|
357 |
-
|
358 |
-
|
359 |
-
|
360 |
-
|
361 |
-
|
362 |
-
|
363 |
-
|
364 |
-
|
365 |
-
|
366 |
-
|
367 |
-
|
368 |
-
|
369 |
-
|
370 |
-
|
371 |
-
|
372 |
-
|
373 |
-
|
374 |
-
|
375 |
-
|
376 |
-
|
377 |
-
|
378 |
-
|
379 |
-
|
380 |
-
|
381 |
-
|
382 |
-
|
383 |
-
|
384 |
-
|
385 |
-
|
386 |
-
|
387 |
-
|
388 |
-
|
389 |
-
|
390 |
-
|
391 |
-
|
392 |
-
|
393 |
-
|
394 |
-
|
395 |
-
|
396 |
-
|
397 |
-
|
398 |
-
|
399 |
-
|
400 |
-
|
401 |
-
|
402 |
-
|
403 |
-
|
404 |
-
|
405 |
-
|
406 |
-
|
407 |
-
|
408 |
-
|
409 |
-
|
410 |
-
|
411 |
-
|
412 |
-
|
413 |
-
|
414 |
-
|
415 |
-
|
416 |
-
|
417 |
-
|
418 |
-
|
419 |
-
|
420 |
-
|
421 |
-
|
422 |
-
|
423 |
-
|
424 |
-
|
425 |
-
|
426 |
-
|
427 |
-
|
428 |
-
|
429 |
-
|
430 |
-
|
431 |
-
|
432 |
-
|
433 |
-
|
434 |
-
|
435 |
-
|
436 |
-
|
437 |
-
|
438 |
-
|
439 |
-
|
440 |
-
|
441 |
-
|
442 |
-
|
443 |
-
|
444 |
-
|
445 |
-
|
446 |
-
|
447 |
-
|
448 |
-
|
449 |
-
|
450 |
-
|
451 |
-
|
452 |
-
|
453 |
-
|
454 |
-
|
455 |
-
|
456 |
-
|
457 |
-
|
458 |
-
|
459 |
-
|
460 |
-
|
461 |
-
|
462 |
-
|
463 |
-
|
464 |
-
|
465 |
-
|
466 |
-
|
467 |
-
|
468 |
-
|
469 |
-
|
470 |
-
|
471 |
-
|
472 |
-
|
473 |
-
|
474 |
-
|
475 |
-
|
476 |
-
|
477 |
-
|
478 |
-
|
479 |
-
|
480 |
-
|
481 |
-
|
482 |
-
|
483 |
-
|
484 |
-
|
485 |
-
|
486 |
-
|
487 |
-
|
488 |
-
|
489 |
-
|
490 |
-
|
491 |
-
|
492 |
-
|
493 |
-
|
494 |
-
|
495 |
-
|
496 |
-
|
497 |
-
|
498 |
-
|
499 |
-
|
500 |
-
|
501 |
-
|
502 |
-
|
503 |
-
|
504 |
-
|
505 |
-
|
506 |
-
|
507 |
-
|
508 |
-
|
509 |
-
|
510 |
-
|
511 |
-
|
512 |
-
|
513 |
-
|
514 |
-
|
515 |
-
|
516 |
-
|
517 |
-
|
518 |
-
|
519 |
-
|
520 |
-
|
521 |
-
|
522 |
-
|
523 |
-
|
524 |
-
|
525 |
-
|
526 |
-
|
527 |
-
|
528 |
-
|
529 |
-
|
530 |
-
|
531 |
-
|
532 |
-
|
533 |
-
|
534 |
-
|
535 |
-
|
536 |
-
|
537 |
-
|
538 |
-
|
539 |
-
|
540 |
-
|
541 |
-
|
542 |
-
|
543 |
-
|
544 |
-
|
545 |
-
|
546 |
-
|
547 |
-
|
548 |
-
|
549 |
-
|
550 |
-
|
551 |
-
|
552 |
-
|
553 |
-
|
554 |
-
|
555 |
-
|
556 |
-
|
557 |
-
|
558 |
-
|
559 |
-
|
560 |
-
|
561 |
-
|
562 |
-
|
563 |
-
|
564 |
-
|
565 |
-
|
566 |
-
|
567 |
-
|
568 |
-
|
569 |
-
|
570 |
-
|
571 |
-
|
572 |
-
|
573 |
-
|
574 |
-
|
575 |
-
|
576 |
-
|
577 |
-
|
578 |
-
|
579 |
-
|
580 |
-
|
581 |
-
|
582 |
-
|
583 |
-
|
584 |
-
|
585 |
-
|
586 |
-
|
587 |
-
|
588 |
-
|
589 |
-
|
590 |
-
|
591 |
-
|
592 |
-
|
593 |
-
|
594 |
-
|
595 |
-
|
596 |
-
|
597 |
-
|
598 |
-
|
599 |
-
|
600 |
-
|
601 |
-
|
602 |
-
|
603 |
-
|
604 |
-
|
605 |
-
|
606 |
-
|
607 |
-
|
608 |
-
|
609 |
-
|
610 |
-
|
611 |
-
|
612 |
-
|
613 |
-
|
614 |
-
|
615 |
-
|
616 |
-
|
617 |
-
|
618 |
-
|
619 |
-
|
620 |
-
|
621 |
-
|
622 |
-
|
623 |
-
|
624 |
-
|
625 |
-
|
626 |
-
|
627 |
-
|
628 |
-
|
629 |
-
|
630 |
-
|
631 |
-
|
632 |
-
|
633 |
-
|
634 |
-
|
635 |
-
|
636 |
-
|
637 |
-
|
638 |
-
|
639 |
-
|
640 |
-
|
641 |
-
|
642 |
-
|
643 |
-
|
644 |
-
|
645 |
-
|
646 |
-
|
647 |
-
|
648 |
-
|
649 |
-
|
650 |
-
|
651 |
-
|
652 |
-
|
653 |
-
|
654 |
-
|
655 |
-
|
656 |
-
|
657 |
-
|
658 |
-
|
659 |
-
|
660 |
-
|
661 |
-
|
662 |
-
|
663 |
-
|
664 |
-
|
665 |
-
|
666 |
-
|
667 |
-
|
668 |
-
|
669 |
-
|
670 |
-
|
671 |
-
|
672 |
-
|
673 |
-
|
674 |
-
|
675 |
-
|
676 |
-
|
677 |
-
|
678 |
-
|
679 |
-
|
680 |
-
|
681 |
-
|
682 |
-
|
683 |
-
|
684 |
-
|
685 |
-
|
686 |
-
|
687 |
-
|
688 |
-
|
689 |
-
|
690 |
-
|
691 |
-
|
692 |
-
|
693 |
-
|
694 |
-
|
695 |
-
|
696 |
-
|
697 |
-
|
698 |
-
|
699 |
-
|
700 |
-
|
701 |
-
|
702 |
-
|
703 |
-
|
704 |
-
|
705 |
-
|
706 |
-
|
707 |
-
|
708 |
-
|
709 |
-
|
710 |
-
|
711 |
-
|
712 |
-
|
713 |
-
|
714 |
-
|
715 |
-
|
716 |
-
|
717 |
-
|
718 |
-
|
719 |
-
|
720 |
-
|
721 |
-
|
722 |
-
|
723 |
-
|
724 |
-
|
725 |
-
|
726 |
-
|
727 |
-
|
728 |
-
|
729 |
-
|
730 |
-
|
731 |
-
|
732 |
-
|
733 |
-
|
734 |
-
|
735 |
-
|
736 |
-
|
737 |
-
|
738 |
-
|
739 |
-
|
740 |
-
|
741 |
-
|
742 |
-
|
743 |
-
|
744 |
-
|
745 |
-
|
746 |
-
|
747 |
-
|
748 |
-
|
749 |
-
|
750 |
-
|
751 |
-
|
752 |
-
|
753 |
-
|
754 |
-
|
755 |
-
|
756 |
-
|
757 |
-
|
758 |
-
|
759 |
-
|
760 |
-
|
761 |
-
|
762 |
-
|
763 |
-
|
764 |
-
|
765 |
-
|
766 |
-
|
767 |
-
|
768 |
-
|
769 |
-
|
770 |
-
|
771 |
-
|
772 |
-
|
773 |
-
|
774 |
-
|
775 |
-
|
776 |
-
|
777 |
-
|
778 |
-
|
779 |
-
|
780 |
-
|
781 |
-
|
782 |
-
|
783 |
-
|
784 |
-
|
785 |
-
|
786 |
-
|
787 |
-
|
788 |
-
{
|
789 |
-
|
790 |
-
|
791 |
-
|
792 |
-
|
793 |
-
|
794 |
-
|
795 |
-
|
796 |
-
|
797 |
-
|
798 |
-
|
799 |
-
|
800 |
-
|
801 |
-
|
802 |
-
|
803 |
-
|
804 |
-
|
805 |
-
|
806 |
-
|
807 |
-
|
808 |
-
|
809 |
-
|
810 |
-
|
811 |
-
|
812 |
-
|
813 |
-
|
814 |
-
|
815 |
-
|
816 |
-
|
817 |
-
|
818 |
-
|
819 |
-
|
820 |
-
|
821 |
-
|
822 |
-
|
823 |
-
|
824 |
-
|
825 |
-
|
826 |
-
|
827 |
-
|
828 |
-
|
829 |
-
|
830 |
-
|
831 |
-
|
832 |
-
|
833 |
-
|
834 |
-
|
835 |
-
|
836 |
-
|
837 |
-
|
838 |
-
|
839 |
-
|
840 |
-
|
841 |
-
|
842 |
-
|
843 |
-
|
844 |
-
|
845 |
-
|
846 |
-
|
847 |
-
|
848 |
-
|
849 |
-
|
850 |
-
|
851 |
-
|
852 |
-
|
853 |
-
|
854 |
-
|
855 |
-
|
856 |
-
|
857 |
-
|
858 |
-
|
859 |
-
|
860 |
-
|
861 |
-
|
862 |
-
|
863 |
-
|
864 |
-
|
865 |
-
|
866 |
-
|
867 |
-
|
868 |
-
|
869 |
-
|
870 |
-
|
871 |
-
|
872 |
-
|
873 |
-
|
874 |
-
|
875 |
-
|
876 |
-
|
877 |
-
|
878 |
-
|
879 |
-
|
880 |
-
|
881 |
-
|
882 |
-
|
883 |
-
|
884 |
-
|
885 |
-
|
886 |
-
|
887 |
-
|
888 |
-
|
889 |
-
|
890 |
-
|
891 |
-
|
892 |
-
|
893 |
-
|
894 |
-
|
895 |
-
|
896 |
-
|
897 |
-
|
898 |
-
|
899 |
-
|
900 |
-
|
901 |
-
|
902 |
-
|
903 |
-
|
904 |
-
|
905 |
-
|
906 |
-
|
907 |
-
|
908 |
-
|
909 |
-
|
910 |
-
|
911 |
-
|
912 |
-
|
913 |
-
|
914 |
-
|
915 |
-
|
916 |
-
|
917 |
-
|
918 |
-
|
919 |
-
|
920 |
-
|
921 |
-
|
922 |
-
|
923 |
-
|
924 |
-
|
925 |
-
|
926 |
-
|
927 |
-
|
928 |
-
|
929 |
-
|
930 |
-
|
931 |
-
|
932 |
-
|
933 |
-
|
934 |
-
|
935 |
-
|
936 |
-
|
937 |
-
|
938 |
-
|
939 |
-
|
940 |
-
|
941 |
-
|
942 |
-
|
943 |
-
|
944 |
-
|
945 |
-
|
946 |
-
|
947 |
-
|
948 |
-
|
949 |
-
|
950 |
-
|
951 |
-
|
952 |
-
|
953 |
-
|
954 |
-
|
955 |
-
|
956 |
-
|
957 |
-
|
958 |
-
|
959 |
-
|
960 |
-
|
961 |
-
|
962 |
-
|
963 |
-
|
964 |
-
|
965 |
-
|
966 |
-
|
967 |
-
|
968 |
-
|
969 |
-
|
970 |
-
|
971 |
-
|
972 |
-
|
973 |
-
|
974 |
-
|
975 |
-
|
976 |
-
|
977 |
-
|
978 |
-
|
979 |
-
|
980 |
-
|
981 |
-
|
982 |
-
|
983 |
-
|
984 |
-
|
985 |
-
|
986 |
-
|
987 |
-
|
988 |
-
|
989 |
-
|
990 |
-
|
991 |
-
|
992 |
-
|
993 |
-
|
994 |
-
|
995 |
-
|
996 |
-
|
997 |
-
|
998 |
-
|
999 |
-
|
1000 |
-
|
1001 |
-
|
1002 |
-
|
1003 |
-
|
1004 |
-
|
1005 |
-
|
1006 |
-
|
1007 |
-
|
1008 |
-
|
1009 |
-
|
1010 |
-
|
1011 |
-
|
1012 |
-
|
1013 |
-
|
1014 |
-
|
1015 |
-
|
1016 |
-
|
1017 |
-
|
1018 |
-
|
1019 |
-
|
1020 |
-
|
1021 |
-
|
1022 |
-
|
1023 |
-
|
1024 |
-
|
1025 |
-
|
1026 |
-
|
1027 |
-
|
1028 |
-
|
1029 |
-
|
1030 |
-
|
1031 |
-
|
1032 |
-
|
1033 |
-
|
1034 |
-
|
1035 |
-
|
1036 |
-
|
1037 |
-
|
1038 |
-
|
1039 |
-
|
1040 |
-
|
1041 |
-
|
1042 |
-
|
1043 |
-
|
1044 |
-
|
1045 |
-
|
1046 |
-
|
1047 |
-
|
1048 |
-
|
1049 |
-
|
1050 |
-
|
1051 |
-
|
1052 |
-
|
1053 |
-
|
1054 |
-
|
1055 |
-
|
1056 |
-
|
1057 |
-
|
1058 |
-
|
1059 |
-
|
1060 |
-
|
1061 |
-
|
1062 |
-
|
1063 |
-
|
1064 |
-
|
1065 |
-
|
1066 |
-
|
1067 |
-
|
1068 |
-
|
1069 |
-
|
1070 |
-
|
1071 |
-
|
1072 |
-
|
1073 |
-
|
1074 |
-
|
1075 |
-
|
1076 |
-
|
1077 |
-
|
1078 |
-
|
1079 |
-
|
1080 |
-
|
1081 |
-
|
1082 |
-
|
1083 |
-
|
1084 |
-
|
1085 |
-
|
1086 |
-
|
1087 |
-
|
1088 |
-
|
1089 |
-
|
1090 |
-
|
1091 |
-
|
1092 |
-
|
1093 |
-
|
1094 |
-
|
1095 |
-
|
1096 |
-
|
1097 |
-
|
1098 |
-
|
1099 |
-
|
1100 |
-
|
1101 |
-
|
1102 |
-
|
1103 |
-
|
1104 |
-
|
1105 |
-
|
1106 |
-
|
1107 |
-
|
1108 |
-
|
1109 |
-
|
1110 |
-
|
1111 |
-
|
1112 |
-
|
1113 |
-
|
1114 |
-
}
|
1115 |
-
|
1116 |
-
|
1117 |
-
|
1118 |
-
|
1119 |
-
|
1120 |
-
|
1121 |
-
|
1122 |
-
|
1123 |
-
|
1124 |
-
|
1125 |
-
|
1126 |
-
|
1127 |
-
|
1128 |
-
|
1129 |
-
|
1130 |
-
|
1131 |
-
|
1132 |
-
|
1133 |
-
|
1134 |
-
|
1135 |
-
|
1136 |
-
|
1137 |
-
|
1138 |
-
|
1139 |
-
|
1140 |
-
|
1141 |
-
}
|
1142 |
-
|
1143 |
-
|
1144 |
-
{
|
1145 |
-
|
1146 |
-
|
1147 |
-
|
1148 |
-
|
1149 |
-
|
1150 |
-
|
1151 |
-
|
1152 |
-
|
1153 |
-
|
1154 |
-
|
1155 |
-
|
1156 |
-
|
1157 |
-
|
1158 |
-
|
1159 |
-
|
1160 |
-
|
1161 |
-
|
1162 |
-
|
1163 |
-
|
1164 |
-
|
1165 |
-
|
1166 |
-
|
1167 |
-
|
1168 |
-
}
|
1169 |
-
|
1170 |
-
|
1171 |
-
|
1172 |
-
|
1173 |
-
|
1174 |
-
|
1175 |
-
|
1176 |
-
|
1177 |
-
|
1178 |
-
|
1179 |
-
|
1180 |
-
|
1181 |
-
|
1182 |
-
|
1183 |
-
|
1184 |
-
|
1185 |
-
|
1186 |
-
|
1187 |
-
|
1188 |
-
|
1189 |
-
|
1190 |
-
|
1191 |
-
|
1192 |
-
|
1193 |
-
|
1194 |
-
|
1195 |
-
|
1196 |
-
}
|
1197 |
-
|
1198 |
-
|
1199 |
-
|
1200 |
-
|
1201 |
-
|
1202 |
-
|
1203 |
-
|
1204 |
-
|
1205 |
-
|
1206 |
-
|
1207 |
-
|
1208 |
-
|
1209 |
-
|
1210 |
-
|
1211 |
-
|
1212 |
-
|
1213 |
-
|
1214 |
-
|
1215 |
-
|
1216 |
-
|
1217 |
-
|
1218 |
-
|
1219 |
-
|
1220 |
-
|
1221 |
-
|
1222 |
-
|
1223 |
-
|
1224 |
-
|
1225 |
-
|
1226 |
-
|
1227 |
-
|
1228 |
-
|
1229 |
-
|
1230 |
-
|
1231 |
-
|
1232 |
-
|
1233 |
-
|
1234 |
-
|
1235 |
-
|
1236 |
-
|
1237 |
-
|
1238 |
-
|
1239 |
-
|
1240 |
-
|
1241 |
-
|
1242 |
-
|
1243 |
-
|
1244 |
-
|
1245 |
-
|
1246 |
-
|
1247 |
-
|
1248 |
-
|
1249 |
-
|
1250 |
-
|
1251 |
-
|
1252 |
-
|
1253 |
-
|
1254 |
-
|
1255 |
-
|
1256 |
-
|
1257 |
-
|
1258 |
-
|
1259 |
-
}
|
1260 |
-
|
1261 |
-
|
1262 |
-
|
1263 |
-
|
1264 |
-
|
1265 |
-
|
1266 |
-
|
1267 |
-
|
1268 |
-
|
1269 |
-
|
1270 |
-
|
1271 |
-
|
1272 |
-
|
1273 |
-
|
1274 |
-
|
1275 |
-
|
1276 |
-
|
1277 |
-
|
1278 |
-
|
1279 |
-
|
1280 |
-
|
1281 |
-
|
1282 |
-
|
1283 |
-
|
1284 |
-
|
1285 |
-
|
1286 |
-
|
1287 |
-
|
1288 |
-
|
1289 |
-
|
1290 |
-
|
1291 |
-
|
1292 |
-
|
1293 |
-
|
1294 |
-
|
1295 |
-
|
1296 |
-
|
1297 |
-
|
1298 |
-
|
1299 |
-
|
1300 |
-
|
1301 |
-
|
1302 |
-
|
1303 |
-
|
1304 |
-
|
1305 |
-
|
1306 |
-
|
1307 |
-
|
1308 |
-
|
1309 |
-
|
1310 |
-
|
1311 |
-
|
1312 |
-
|
1313 |
-
|
1314 |
-
|
1315 |
-
|
1316 |
-
|
1317 |
-
|
1318 |
-
|
1319 |
-
|
1320 |
-
|
1321 |
-
|
1322 |
-
|
1323 |
-
|
1324 |
-
|
1325 |
-
|
1326 |
-
|
1327 |
-
|
1328 |
-
|
1329 |
-
|
1330 |
-
|
1331 |
-
|
1332 |
-
|
1333 |
-
|
1334 |
-
|
1335 |
-
|
1336 |
-
|
1337 |
-
|
1338 |
-
|
1339 |
-
|
1340 |
-
|
1341 |
-
|
1342 |
-
|
1343 |
-
|
1344 |
-
|
1345 |
-
|
1346 |
-
|
1347 |
-
|
1348 |
-
|
1349 |
-
|
1350 |
-
|
1351 |
-
|
1352 |
-
|
1353 |
-
|
1354 |
-
|
1355 |
-
|
1356 |
-
|
1357 |
-
|
1358 |
-
|
1359 |
-
|
1360 |
-
|
1361 |
-
|
1362 |
-
|
1363 |
-
|
1364 |
-
|
1365 |
-
|
1366 |
-
|
1367 |
-
|
1368 |
-
|
1369 |
-
|
1370 |
-
|
1371 |
-
|
1372 |
-
|
1373 |
-
|
1374 |
-
|
1375 |
-
}
|
1376 |
-
|
1377 |
-
|
1378 |
-
|
1379 |
-
|
1380 |
-
|
1381 |
-
|
1382 |
-
|
1383 |
-
|
1384 |
-
|
1385 |
-
|
1386 |
-
|
1387 |
-
|
1388 |
-
|
1389 |
-
|
1390 |
-
|
1391 |
-
|
1392 |
-
|
1393 |
-
|
1394 |
-
|
1395 |
-
|
1396 |
-
|
1397 |
-
|
1398 |
-
|
1399 |
-
|
1400 |
-
|
1401 |
-
|
1402 |
-
|
1403 |
-
|
1404 |
-
|
1405 |
-
|
1406 |
-
|
1407 |
-
|
1408 |
-
|
1409 |
-
|
1410 |
-
|
1411 |
-
|
1412 |
-
|
1413 |
-
|
1414 |
-
|
1415 |
-
|
1416 |
-
|
1417 |
-
|
1418 |
-
|
1419 |
-
|
1420 |
-
|
1421 |
-
|
1422 |
-
|
1423 |
-
|
1424 |
-
|
1425 |
-
|
1426 |
-
|
1427 |
-
|
1428 |
-
|
1429 |
-
|
1430 |
-
|
1431 |
-
|
1432 |
-
|
1433 |
-
|
1434 |
-
|
1435 |
-
|
1436 |
-
|
1437 |
-
|
1438 |
-
|
1439 |
-
|
1440 |
-
|
1441 |
-
|
1442 |
-
|
1443 |
-
|
1444 |
-
|
1445 |
-
|
1446 |
-
|
1447 |
-
|
1448 |
-
|
1449 |
-
|
1450 |
-
|
1451 |
-
|
1452 |
-
|
1453 |
-
|
1454 |
-
|
1455 |
-
|
1456 |
-
|
1457 |
-
|
1458 |
-
|
1459 |
-
|
1460 |
-
|
1461 |
-
|
1462 |
-
|
1463 |
-
|
1464 |
-
|
1465 |
-
|
1466 |
-
|
1467 |
-
|
1468 |
-
|
1469 |
-
|
1470 |
-
|
1471 |
-
|
1472 |
-
|
1473 |
-
|
1474 |
-
|
1475 |
-
|
1476 |
-
|
1477 |
-
|
1478 |
-
|
1479 |
-
|
1480 |
-
|
1481 |
-
|
1482 |
-
|
1483 |
-
|
1484 |
-
|
1485 |
-
|
1486 |
-
|
1487 |
-
|
1488 |
-
|
1489 |
-
|
1490 |
-
|
1491 |
-
|
1492 |
-
|
1493 |
-
|
1494 |
-
|
1495 |
-
|
1496 |
-
|
1497 |
-
|
1498 |
-
|
1499 |
-
|
1500 |
-
|
1501 |
-
|
1502 |
-
|
1503 |
-
|
1504 |
-
|
1505 |
-
|
1506 |
-
|
1507 |
-
|
1508 |
-
|
1509 |
-
|
1510 |
-
|
1511 |
-
|
1512 |
-
|
1513 |
-
|
1514 |
-
|
1515 |
-
|
1516 |
-
|
1517 |
-
|
1518 |
-
|
1519 |
-
|
1520 |
-
|
1521 |
-
|
1522 |
-
|
1523 |
-
|
1524 |
-
|
1525 |
-
|
1526 |
-
|
1527 |
-
|
1528 |
-
|
1529 |
-
|
1530 |
-
|
1531 |
-
|
1532 |
-
|
1533 |
-
|
1534 |
-
|
1535 |
-
|
1536 |
-
|
1537 |
-
|
1538 |
-
|
1539 |
-
|
1540 |
-
|
1541 |
-
|
1542 |
-
|
1543 |
-
|
1544 |
-
|
1545 |
-
|
1546 |
-
|
1547 |
-
|
1548 |
-
|
1549 |
-
|
1550 |
-
|
1551 |
-
|
1552 |
-
|
1553 |
-
|
1554 |
-
|
1555 |
-
|
1556 |
-
|
1557 |
-
|
1558 |
-
|
1559 |
-
{
|
1560 |
-
|
1561 |
-
|
1562 |
-
|
1563 |
-
|
1564 |
-
|
1565 |
-
|
1566 |
-
|
1567 |
-
|
1568 |
-
|
1569 |
-
|
1570 |
-
|
1571 |
-
|
1572 |
-
|
1573 |
-
|
1574 |
-
|
1575 |
-
|
1576 |
-
|
1577 |
-
|
1578 |
-
|
1579 |
-
|
1580 |
-
|
1581 |
-
|
1582 |
-
|
1583 |
-
|
1584 |
-
|
1585 |
-
|
1586 |
-
|
1587 |
-
|
1588 |
-
|
1589 |
-
|
1590 |
-
|
1591 |
-
|
1592 |
-
|
1593 |
-
|
1594 |
-
|
1595 |
-
|
1596 |
-
|
1597 |
-
|
1598 |
-
|
1599 |
-
|
1600 |
-
|
1601 |
-
|
1602 |
-
|
1603 |
-
|
1604 |
-
|
1605 |
-
|
1606 |
-
|
1607 |
-
|
1608 |
-
|
1609 |
-
|
1610 |
-
|
1611 |
-
|
1612 |
-
|
1613 |
-
|
1614 |
-
|
1615 |
-
|
1616 |
-
|
1617 |
-
|
1618 |
-
|
1619 |
-
|
1620 |
-
|
1621 |
-
|
1622 |
-
|
1623 |
-
|
1624 |
-
|
1625 |
-
|
1626 |
-
|
1627 |
-
|
1628 |
-
|
1629 |
-
|
1630 |
-
|
1631 |
-
|
1632 |
-
|
1633 |
-
|
1634 |
-
|
1635 |
-
|
1636 |
-
|
1637 |
-
|
1638 |
-
|
1639 |
-
|
1640 |
-
|
1641 |
-
|
1642 |
-
|
1643 |
-
|
1644 |
-
|
1645 |
-
|
1646 |
-
|
1647 |
-
|
1648 |
-
|
1649 |
-
|
1650 |
-
|
1651 |
-
|
1652 |
-
|
1653 |
-
|
1654 |
-
|
1655 |
-
|
1656 |
-
|
1657 |
-
|
1658 |
-
|
1659 |
-
|
1660 |
-
|
1661 |
-
|
1662 |
-
|
1663 |
-
|
1664 |
-
|
1665 |
-
|
1666 |
-
|
1667 |
-
|
1668 |
-
|
1669 |
-
|
1670 |
-
|
1671 |
-
|
1672 |
-
|
1673 |
-
|
1674 |
-
|
1675 |
-
|
1676 |
-
|
1677 |
-
|
1678 |
-
|
1679 |
-
|
1680 |
-
|
1681 |
-
|
1682 |
-
|
1683 |
-
|
1684 |
-
|
1685 |
-
|
1686 |
-
|
1687 |
-
|
1688 |
-
{
|
1689 |
-
return $this->excludedUserLists;
|
1690 |
-
}
|
1691 |
-
public function setExcludedVerticals($excludedVerticals)
|
1692 |
-
{
|
1693 |
-
$this->excludedVerticals = $excludedVerticals;
|
1694 |
-
}
|
1695 |
-
public function getExcludedVerticals()
|
1696 |
-
{
|
1697 |
-
return $this->excludedVerticals;
|
1698 |
-
}
|
1699 |
-
public function setGeoCriteriaIds($geoCriteriaIds)
|
1700 |
-
{
|
1701 |
-
$this->geoCriteriaIds = $geoCriteriaIds;
|
1702 |
-
}
|
1703 |
-
public function getGeoCriteriaIds()
|
1704 |
-
{
|
1705 |
-
return $this->geoCriteriaIds;
|
1706 |
-
}
|
1707 |
-
public function setIsActive($isActive)
|
1708 |
-
{
|
1709 |
-
$this->isActive = $isActive;
|
1710 |
-
}
|
1711 |
-
public function getIsActive()
|
1712 |
-
{
|
1713 |
-
return $this->isActive;
|
1714 |
-
}
|
1715 |
-
public function setKind($kind)
|
1716 |
-
{
|
1717 |
-
$this->kind = $kind;
|
1718 |
-
}
|
1719 |
-
public function getKind()
|
1720 |
-
{
|
1721 |
-
return $this->kind;
|
1722 |
-
}
|
1723 |
-
public function setLanguages($languages)
|
1724 |
-
{
|
1725 |
-
$this->languages = $languages;
|
1726 |
-
}
|
1727 |
-
public function getLanguages()
|
1728 |
-
{
|
1729 |
-
return $this->languages;
|
1730 |
-
}
|
1731 |
-
public function setMobileCarriers($mobileCarriers)
|
1732 |
-
{
|
1733 |
-
$this->mobileCarriers = $mobileCarriers;
|
1734 |
-
}
|
1735 |
-
public function getMobileCarriers()
|
1736 |
-
{
|
1737 |
-
return $this->mobileCarriers;
|
1738 |
-
}
|
1739 |
-
public function setMobileDevices($mobileDevices)
|
1740 |
-
{
|
1741 |
-
$this->mobileDevices = $mobileDevices;
|
1742 |
-
}
|
1743 |
-
public function getMobileDevices()
|
1744 |
-
{
|
1745 |
-
return $this->mobileDevices;
|
1746 |
-
}
|
1747 |
-
public function setMobileOperatingSystemVersions($mobileOperatingSystemVersions)
|
1748 |
-
{
|
1749 |
-
$this->mobileOperatingSystemVersions = $mobileOperatingSystemVersions;
|
1750 |
-
}
|
1751 |
-
public function getMobileOperatingSystemVersions()
|
1752 |
-
{
|
1753 |
-
return $this->mobileOperatingSystemVersions;
|
1754 |
-
}
|
1755 |
-
public function setPlacements($placements)
|
1756 |
-
{
|
1757 |
-
$this->placements = $placements;
|
1758 |
-
}
|
1759 |
-
public function getPlacements()
|
1760 |
-
{
|
1761 |
-
return $this->placements;
|
1762 |
-
}
|
1763 |
-
public function setPlatforms($platforms)
|
1764 |
-
{
|
1765 |
-
$this->platforms = $platforms;
|
1766 |
-
}
|
1767 |
-
public function getPlatforms()
|
1768 |
-
{
|
1769 |
-
return $this->platforms;
|
1770 |
-
}
|
1771 |
-
public function setSupportedCreativeAttributes($supportedCreativeAttributes)
|
1772 |
-
{
|
1773 |
-
$this->supportedCreativeAttributes = $supportedCreativeAttributes;
|
1774 |
-
}
|
1775 |
-
public function getSupportedCreativeAttributes()
|
1776 |
-
{
|
1777 |
-
return $this->supportedCreativeAttributes;
|
1778 |
-
}
|
1779 |
-
public function setUserLists($userLists)
|
1780 |
-
{
|
1781 |
-
$this->userLists = $userLists;
|
1782 |
-
}
|
1783 |
-
public function getUserLists()
|
1784 |
-
{
|
1785 |
-
return $this->userLists;
|
1786 |
-
}
|
1787 |
-
public function setVendorTypes($vendorTypes)
|
1788 |
-
{
|
1789 |
-
$this->vendorTypes = $vendorTypes;
|
1790 |
-
}
|
1791 |
-
public function getVendorTypes()
|
1792 |
-
{
|
1793 |
-
return $this->vendorTypes;
|
1794 |
-
}
|
1795 |
-
public function setVerticals($verticals)
|
1796 |
-
{
|
1797 |
-
$this->verticals = $verticals;
|
1798 |
-
}
|
1799 |
-
public function getVerticals()
|
1800 |
-
{
|
1801 |
-
return $this->verticals;
|
1802 |
-
}
|
1803 |
-
}
|
1804 |
-
|
1805 |
-
class GoogleGAL_Service_AdExchangeBuyer_PretargetingConfigDimensions extends GoogleGAL_Model
|
1806 |
-
{
|
1807 |
-
protected $internal_gapi_mappings = array(
|
1808 |
-
);
|
1809 |
-
public $height;
|
1810 |
-
public $width;
|
1811 |
-
|
1812 |
-
|
1813 |
-
public function setHeight($height)
|
1814 |
-
{
|
1815 |
-
$this->height = $height;
|
1816 |
-
}
|
1817 |
-
public function getHeight()
|
1818 |
-
{
|
1819 |
-
return $this->height;
|
1820 |
-
}
|
1821 |
-
public function setWidth($width)
|
1822 |
-
{
|
1823 |
-
$this->width = $width;
|
1824 |
-
}
|
1825 |
-
public function getWidth()
|
1826 |
-
{
|
1827 |
-
return $this->width;
|
1828 |
-
}
|
1829 |
-
}
|
1830 |
-
|
1831 |
-
class GoogleGAL_Service_AdExchangeBuyer_PretargetingConfigExcludedPlacements extends GoogleGAL_Model
|
1832 |
-
{
|
1833 |
-
protected $internal_gapi_mappings = array(
|
1834 |
-
);
|
1835 |
-
public $token;
|
1836 |
-
public $type;
|
1837 |
-
|
1838 |
-
|
1839 |
-
public function setToken($token)
|
1840 |
-
{
|
1841 |
-
$this->token = $token;
|
1842 |
-
}
|
1843 |
-
public function getToken()
|
1844 |
-
{
|
1845 |
-
return $this->token;
|
1846 |
-
}
|
1847 |
-
public function setType($type)
|
1848 |
-
{
|
1849 |
-
$this->type = $type;
|
1850 |
-
}
|
1851 |
-
public function getType()
|
1852 |
-
{
|
1853 |
-
return $this->type;
|
1854 |
-
}
|
1855 |
-
}
|
1856 |
-
|
1857 |
-
class GoogleGAL_Service_AdExchangeBuyer_PretargetingConfigList extends GoogleGAL_Collection
|
1858 |
-
{
|
1859 |
-
protected $collection_key = 'items';
|
1860 |
-
protected $internal_gapi_mappings = array(
|
1861 |
-
);
|
1862 |
-
protected $itemsType = 'GoogleGAL_Service_AdExchangeBuyer_PretargetingConfig';
|
1863 |
-
protected $itemsDataType = 'array';
|
1864 |
-
public $kind;
|
1865 |
-
|
1866 |
-
|
1867 |
-
public function setItems($items)
|
1868 |
-
{
|
1869 |
-
$this->items = $items;
|
1870 |
-
}
|
1871 |
-
public function getItems()
|
1872 |
-
{
|
1873 |
-
return $this->items;
|
1874 |
-
}
|
1875 |
-
public function setKind($kind)
|
1876 |
-
{
|
1877 |
-
$this->kind = $kind;
|
1878 |
-
}
|
1879 |
-
public function getKind()
|
1880 |
-
{
|
1881 |
-
return $this->kind;
|
1882 |
-
}
|
1883 |
-
}
|
1884 |
-
|
1885 |
-
class GoogleGAL_Service_AdExchangeBuyer_PretargetingConfigPlacements extends GoogleGAL_Model
|
1886 |
-
{
|
1887 |
-
protected $internal_gapi_mappings = array(
|
1888 |
-
);
|
1889 |
-
public $token;
|
1890 |
-
public $type;
|
1891 |
-
|
1892 |
-
|
1893 |
-
public function setToken($token)
|
1894 |
-
{
|
1895 |
-
$this->token = $token;
|
1896 |
-
}
|
1897 |
-
public function getToken()
|
1898 |
-
{
|
1899 |
-
return $this->token;
|
1900 |
-
}
|
1901 |
-
public function setType($type)
|
1902 |
-
{
|
1903 |
-
$this->type = $type;
|
1904 |
-
}
|
1905 |
-
public function getType()
|
1906 |
-
{
|
1907 |
-
return $this->type;
|
1908 |
-
}
|
1909 |
-
}
|
1 |
+
<?php
|
2 |
+
/*
|
3 |
+
* Copyright 2010 Google Inc.
|
4 |
+
*
|
5 |
+
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
|
6 |
+
* use this file except in compliance with the License. You may obtain a copy of
|
7 |
+
* the License at
|
8 |
+
*
|
9 |
+
* https://www.apache.org/licenses/LICENSE-2.0
|
10 |
+
*
|
11 |
+
* Unless required by applicable law or agreed to in writing, software
|
12 |
+
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
13 |
+
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
14 |
+
* License for the specific language governing permissions and limitations under
|
15 |
+
* the License.
|
16 |
+
*/
|
17 |
+
|
18 |
+
/**
|
19 |
+
* Service definition for AdExchangeBuyer (v1.3).
|
20 |
+
*
|
21 |
+
* <p>
|
22 |
+
* Accesses your bidding-account information, submits creatives for validation,
|
23 |
+
* finds available direct deals, and retrieves performance reports.</p>
|
24 |
+
*
|
25 |
+
* <p>
|
26 |
+
* For more information about this service, see the API
|
27 |
+
* <a href="https://developers.google.com/ad-exchange/buyer-rest" target="_blank">Documentation</a>
|
28 |
+
* </p>
|
29 |
+
*
|
30 |
+
* @author Google, Inc.
|
31 |
+
*/
|
32 |
+
class GoogleGAL_Service_AdExchangeBuyer extends GoogleGAL_Service {
|
33 |
+
|
34 |
+
/** Manage your Ad Exchange buyer account configuration. */
|
35 |
+
const ADEXCHANGE_BUYER =
|
36 |
+
'https://www.googleapis.com/auth/adexchange.buyer';
|
37 |
+
|
38 |
+
public $accounts;
|
39 |
+
public $billingInfo;
|
40 |
+
public $creatives;
|
41 |
+
public $directDeals;
|
42 |
+
public $performanceReport;
|
43 |
+
public $pretargetingConfig;
|
44 |
+
|
45 |
+
|
46 |
+
/**
|
47 |
+
* Constructs the internal representation of the AdExchangeBuyer service.
|
48 |
+
*
|
49 |
+
* @param GoogleGAL_Client $client
|
50 |
+
*/
|
51 |
+
public function __construct( GoogleGAL_Client $client ) {
|
52 |
+
parent::__construct( $client );
|
53 |
+
$this->servicePath = 'adexchangebuyer/v1.3/';
|
54 |
+
$this->version = 'v1.3';
|
55 |
+
$this->serviceName = 'adexchangebuyer';
|
56 |
+
|
57 |
+
$this->accounts = new GoogleGAL_Service_AdExchangeBuyer_Accounts_Resource(
|
58 |
+
$this,
|
59 |
+
$this->serviceName,
|
60 |
+
'accounts',
|
61 |
+
array(
|
62 |
+
'methods' => array(
|
63 |
+
'get' => array(
|
64 |
+
'path' => 'accounts/{id}',
|
65 |
+
'httpMethod' => 'GET',
|
66 |
+
'parameters' => array(
|
67 |
+
'id' => array(
|
68 |
+
'location' => 'path',
|
69 |
+
'type' => 'integer',
|
70 |
+
'required' => true,
|
71 |
+
),
|
72 |
+
),
|
73 |
+
),
|
74 |
+
'list' => array(
|
75 |
+
'path' => 'accounts',
|
76 |
+
'httpMethod' => 'GET',
|
77 |
+
'parameters' => array(),
|
78 |
+
),
|
79 |
+
'patch' => array(
|
80 |
+
'path' => 'accounts/{id}',
|
81 |
+
'httpMethod' => 'PATCH',
|
82 |
+
'parameters' => array(
|
83 |
+
'id' => array(
|
84 |
+
'location' => 'path',
|
85 |
+
'type' => 'integer',
|
86 |
+
'required' => true,
|
87 |
+
),
|
88 |
+
),
|
89 |
+
),
|
90 |
+
'update' => array(
|
91 |
+
'path' => 'accounts/{id}',
|
92 |
+
'httpMethod' => 'PUT',
|
93 |
+
'parameters' => array(
|
94 |
+
'id' => array(
|
95 |
+
'location' => 'path',
|
96 |
+
'type' => 'integer',
|
97 |
+
'required' => true,
|
98 |
+
),
|
99 |
+
),
|
100 |
+
),
|
101 |
+
),
|
102 |
+
)
|
103 |
+
);
|
104 |
+
$this->billingInfo = new GoogleGAL_Service_AdExchangeBuyer_BillingInfo_Resource(
|
105 |
+
$this,
|
106 |
+
$this->serviceName,
|
107 |
+
'billingInfo',
|
108 |
+
array(
|
109 |
+
'methods' => array(
|
110 |
+
'get' => array(
|
111 |
+
'path' => 'billinginfo/{accountId}',
|
112 |
+
'httpMethod' => 'GET',
|
113 |
+
'parameters' => array(
|
114 |
+
'accountId' => array(
|
115 |
+
'location' => 'path',
|
116 |
+
'type' => 'integer',
|
117 |
+
'required' => true,
|
118 |
+
),
|
119 |
+
),
|
120 |
+
),
|
121 |
+
'list' => array(
|
122 |
+
'path' => 'billinginfo',
|
123 |
+
'httpMethod' => 'GET',
|
124 |
+
'parameters' => array(),
|
125 |
+
),
|
126 |
+
),
|
127 |
+
)
|
128 |
+
);
|
129 |
+
$this->creatives = new GoogleGAL_Service_AdExchangeBuyer_Creatives_Resource(
|
130 |
+
$this,
|
131 |
+
$this->serviceName,
|
132 |
+
'creatives',
|
133 |
+
array(
|
134 |
+
'methods' => array(
|
135 |
+
'get' => array(
|
136 |
+
'path' => 'creatives/{accountId}/{buyerCreativeId}',
|
137 |
+
'httpMethod' => 'GET',
|
138 |
+
'parameters' => array(
|
139 |
+
'accountId' => array(
|
140 |
+
'location' => 'path',
|
141 |
+
'type' => 'integer',
|
142 |
+
'required' => true,
|
143 |
+
),
|
144 |
+
'buyerCreativeId' => array(
|
145 |
+
'location' => 'path',
|
146 |
+
'type' => 'string',
|
147 |
+
'required' => true,
|
148 |
+
),
|
149 |
+
),
|
150 |
+
),
|
151 |
+
'insert' => array(
|
152 |
+
'path' => 'creatives',
|
153 |
+
'httpMethod' => 'POST',
|
154 |
+
'parameters' => array(),
|
155 |
+
),
|
156 |
+
'list' => array(
|
157 |
+
'path' => 'creatives',
|
158 |
+
'httpMethod' => 'GET',
|
159 |
+
'parameters' => array(
|
160 |
+
'statusFilter' => array(
|
161 |
+
'location' => 'query',
|
162 |
+
'type' => 'string',
|
163 |
+
),
|
164 |
+
'pageToken' => array(
|
165 |
+
'location' => 'query',
|
166 |
+
'type' => 'string',
|
167 |
+
),
|
168 |
+
'maxResults' => array(
|
169 |
+
'location' => 'query',
|
170 |
+
'type' => 'integer',
|
171 |
+
),
|
172 |
+
'buyerCreativeId' => array(
|
173 |
+
'location' => 'query',
|
174 |
+
'type' => 'string',
|
175 |
+
'repeated' => true,
|
176 |
+
),
|
177 |
+
'accountId' => array(
|
178 |
+
'location' => 'query',
|
179 |
+
'type' => 'integer',
|
180 |
+
'repeated' => true,
|
181 |
+
),
|
182 |
+
),
|
183 |
+
),
|
184 |
+
),
|
185 |
+
)
|
186 |
+
);
|
187 |
+
$this->directDeals = new GoogleGAL_Service_AdExchangeBuyer_DirectDeals_Resource(
|
188 |
+
$this,
|
189 |
+
$this->serviceName,
|
190 |
+
'directDeals',
|
191 |
+
array(
|
192 |
+
'methods' => array(
|
193 |
+
'get' => array(
|
194 |
+
'path' => 'directdeals/{id}',
|
195 |
+
'httpMethod' => 'GET',
|
196 |
+
'parameters' => array(
|
197 |
+
'id' => array(
|
198 |
+
'location' => 'path',
|
199 |
+
'type' => 'string',
|
200 |
+
'required' => true,
|
201 |
+
),
|
202 |
+
),
|
203 |
+
),
|
204 |
+
'list' => array(
|
205 |
+
'path' => 'directdeals',
|
206 |
+
'httpMethod' => 'GET',
|
207 |
+
'parameters' => array(),
|
208 |
+
),
|
209 |
+
),
|
210 |
+
)
|
211 |
+
);
|
212 |
+
$this->performanceReport = new GoogleGAL_Service_AdExchangeBuyer_PerformanceReport_Resource(
|
213 |
+
$this,
|
214 |
+
$this->serviceName,
|
215 |
+
'performanceReport',
|
216 |
+
array(
|
217 |
+
'methods' => array(
|
218 |
+
'list' => array(
|
219 |
+
'path' => 'performancereport',
|
220 |
+
'httpMethod' => 'GET',
|
221 |
+
'parameters' => array(
|
222 |
+
'accountId' => array(
|
223 |
+
'location' => 'query',
|
224 |
+
'type' => 'string',
|
225 |
+
'required' => true,
|
226 |
+
),
|
227 |
+
'endDateTime' => array(
|
228 |
+
'location' => 'query',
|
229 |
+
'type' => 'string',
|
230 |
+
'required' => true,
|
231 |
+
),
|
232 |
+
'startDateTime' => array(
|
233 |
+
'location' => 'query',
|
234 |
+
'type' => 'string',
|
235 |
+
'required' => true,
|
236 |
+
),
|
237 |
+
'pageToken' => array(
|
238 |
+
'location' => 'query',
|
239 |
+
'type' => 'string',
|
240 |
+
),
|
241 |
+
'maxResults' => array(
|
242 |
+
'location' => 'query',
|
243 |
+
'type' => 'integer',
|
244 |
+
),
|
245 |
+
),
|
246 |
+
),
|
247 |
+
),
|
248 |
+
)
|
249 |
+
);
|
250 |
+
$this->pretargetingConfig = new GoogleGAL_Service_AdExchangeBuyer_PretargetingConfig_Resource(
|
251 |
+
$this,
|
252 |
+
$this->serviceName,
|
253 |
+
'pretargetingConfig',
|
254 |
+
array(
|
255 |
+
'methods' => array(
|
256 |
+
'delete' => array(
|
257 |
+
'path' => 'pretargetingconfigs/{accountId}/{configId}',
|
258 |
+
'httpMethod' => 'DELETE',
|
259 |
+
'parameters' => array(
|
260 |
+
'accountId' => array(
|
261 |
+
'location' => 'path',
|
262 |
+
'type' => 'string',
|
263 |
+
'required' => true,
|
264 |
+
),
|
265 |
+
'configId' => array(
|
266 |
+
'location' => 'path',
|
267 |
+
'type' => 'string',
|
268 |
+
'required' => true,
|
269 |
+
),
|
270 |
+
),
|
271 |
+
),
|
272 |
+
'get' => array(
|
273 |
+
'path' => 'pretargetingconfigs/{accountId}/{configId}',
|
274 |
+
'httpMethod' => 'GET',
|
275 |
+
'parameters' => array(
|
276 |
+
'accountId' => array(
|
277 |
+
'location' => 'path',
|
278 |
+
'type' => 'string',
|
279 |
+
'required' => true,
|
280 |
+
),
|
281 |
+
'configId' => array(
|
282 |
+
'location' => 'path',
|
283 |
+
'type' => 'string',
|
284 |
+
'required' => true,
|
285 |
+
),
|
286 |
+
),
|
287 |
+
),
|
288 |
+
'insert' => array(
|
289 |
+
'path' => 'pretargetingconfigs/{accountId}',
|
290 |
+
'httpMethod' => 'POST',
|
291 |
+
'parameters' => array(
|
292 |
+
'accountId' => array(
|
293 |
+
'location' => 'path',
|
294 |
+
'type' => 'string',
|
295 |
+
'required' => true,
|
296 |
+
),
|
297 |
+
),
|
298 |
+
),
|
299 |
+
'list' => array(
|
300 |
+
'path' => 'pretargetingconfigs/{accountId}',
|
301 |
+
'httpMethod' => 'GET',
|
302 |
+
'parameters' => array(
|
303 |
+
'accountId' => array(
|
304 |
+
'location' => 'path',
|
305 |
+
'type' => 'string',
|
306 |
+
'required' => true,
|
307 |
+
),
|
308 |
+
),
|
309 |
+
),
|
310 |
+
'patch' => array(
|
311 |
+
'path' => 'pretargetingconfigs/{accountId}/{configId}',
|
312 |
+
'httpMethod' => 'PATCH',
|
313 |
+
'parameters' => array(
|
314 |
+
'accountId' => array(
|
315 |
+
'location' => 'path',
|
316 |
+
'type' => 'string',
|
317 |
+
'required' => true,
|
318 |
+
),
|
319 |
+
'configId' => array(
|
320 |
+
'location' => 'path',
|
321 |
+
'type' => 'string',
|
322 |
+
'required' => true,
|
323 |
+
),
|
324 |
+
),
|
325 |
+
),
|
326 |
+
'update' => array(
|
327 |
+
'path' => 'pretargetingconfigs/{accountId}/{configId}',
|
328 |
+
'httpMethod' => 'PUT',
|
329 |
+
'parameters' => array(
|
330 |
+
'accountId' => array(
|
331 |
+
'location' => 'path',
|
332 |
+
'type' => 'string',
|
333 |
+
'required' => true,
|
334 |
+
),
|
335 |
+
'configId' => array(
|
336 |
+
'location' => 'path',
|
337 |
+
'type' => 'string',
|
338 |
+
'required' => true,
|
339 |
+
),
|
340 |
+
),
|
341 |
+
),
|
342 |
+
),
|
343 |
+
)
|
344 |
+
);
|
345 |
+
}
|
346 |
+
}
|
347 |
+
|
348 |
+
|
349 |
+
/**
|
350 |
+
* The "accounts" collection of methods.
|
351 |
+
* Typical usage is:
|
352 |
+
* <code>
|
353 |
+
* $adexchangebuyerService = new GoogleGAL_Service_AdExchangeBuyer(...);
|
354 |
+
* $accounts = $adexchangebuyerService->accounts;
|
355 |
+
* </code>
|
356 |
+
*/
|
357 |
+
class GoogleGAL_Service_AdExchangeBuyer_Accounts_Resource extends GoogleGAL_Service_Resource {
|
358 |
+
|
359 |
+
|
360 |
+
/**
|
361 |
+
* Gets one account by ID. (accounts.get)
|
362 |
+
*
|
363 |
+
* @param int $id The account id
|
364 |
+
* @param array $optParams Optional parameters.
|
365 |
+
* @return GoogleGAL_Service_AdExchangeBuyer_Account
|
366 |
+
*/
|
367 |
+
public function get( $id, $optParams = array() ) {
|
368 |
+
$params = array( 'id' => $id );
|
369 |
+
$params = array_merge( $params, $optParams );
|
370 |
+
return $this->call( 'get', array( $params ), 'GoogleGAL_Service_AdExchangeBuyer_Account' );
|
371 |
+
}
|
372 |
+
|
373 |
+
/**
|
374 |
+
* Retrieves the authenticated user's list of accounts. (accounts.listAccounts)
|
375 |
+
*
|
376 |
+
* @param array $optParams Optional parameters.
|
377 |
+
* @return GoogleGAL_Service_AdExchangeBuyer_AccountsList
|
378 |
+
*/
|
379 |
+
public function listAccounts( $optParams = array() ) {
|
380 |
+
$params = array();
|
381 |
+
$params = array_merge( $params, $optParams );
|
382 |
+
return $this->call( 'list', array( $params ), 'GoogleGAL_Service_AdExchangeBuyer_AccountsList' );
|
383 |
+
}
|
384 |
+
|
385 |
+
/**
|
386 |
+
* Updates an existing account. This method supports patch semantics.
|
387 |
+
* (accounts.patch)
|
388 |
+
*
|
389 |
+
* @param int $id The account id
|
390 |
+
* @param GoogleGAL_Account $postBody
|
391 |
+
* @param array $optParams Optional parameters.
|
392 |
+
* @return GoogleGAL_Service_AdExchangeBuyer_Account
|
393 |
+
*/
|
394 |
+
public function patch( $id, GoogleGAL_Service_AdExchangeBuyer_Account $postBody, $optParams = array() ) {
|
395 |
+
$params = array(
|
396 |
+
'id' => $id,
|
397 |
+
'postBody' => $postBody,
|
398 |
+
);
|
399 |
+
$params = array_merge( $params, $optParams );
|
400 |
+
return $this->call( 'patch', array( $params ), 'GoogleGAL_Service_AdExchangeBuyer_Account' );
|
401 |
+
}
|
402 |
+
|
403 |
+
/**
|
404 |
+
* Updates an existing account. (accounts.update)
|
405 |
+
*
|
406 |
+
* @param int $id The account id
|
407 |
+
* @param GoogleGAL_Account $postBody
|
408 |
+
* @param array $optParams Optional parameters.
|
409 |
+
* @return GoogleGAL_Service_AdExchangeBuyer_Account
|
410 |
+
*/
|
411 |
+
public function update( $id, GoogleGAL_Service_AdExchangeBuyer_Account $postBody, $optParams = array() ) {
|
412 |
+
$params = array(
|
413 |
+
'id' => $id,
|
414 |
+
'postBody' => $postBody,
|
415 |
+
);
|
416 |
+
$params = array_merge( $params, $optParams );
|
417 |
+
return $this->call( 'update', array( $params ), 'GoogleGAL_Service_AdExchangeBuyer_Account' );
|
418 |
+
}
|
419 |
+
}
|
420 |
+
|
421 |
+
/**
|
422 |
+
* The "billingInfo" collection of methods.
|
423 |
+
* Typical usage is:
|
424 |
+
* <code>
|
425 |
+
* $adexchangebuyerService = new GoogleGAL_Service_AdExchangeBuyer(...);
|
426 |
+
* $billingInfo = $adexchangebuyerService->billingInfo;
|
427 |
+
* </code>
|
428 |
+
*/
|
429 |
+
class GoogleGAL_Service_AdExchangeBuyer_BillingInfo_Resource extends GoogleGAL_Service_Resource {
|
430 |
+
|
431 |
+
|
432 |
+
/**
|
433 |
+
* Returns the billing information for one account specified by account ID.
|
434 |
+
* (billingInfo.get)
|
435 |
+
*
|
436 |
+
* @param int $accountId The account id.
|
437 |
+
* @param array $optParams Optional parameters.
|
438 |
+
* @return GoogleGAL_Service_AdExchangeBuyer_BillingInfo
|
439 |
+
*/
|
440 |
+
public function get( $accountId, $optParams = array() ) {
|
441 |
+
$params = array( 'accountId' => $accountId );
|
442 |
+
$params = array_merge( $params, $optParams );
|
443 |
+
return $this->call( 'get', array( $params ), 'GoogleGAL_Service_AdExchangeBuyer_BillingInfo' );
|
444 |
+
}
|
445 |
+
|
446 |
+
/**
|
447 |
+
* Retrieves a list of billing information for all accounts of the authenticated
|
448 |
+
* user. (billingInfo.listBillingInfo)
|
449 |
+
*
|
450 |
+
* @param array $optParams Optional parameters.
|
451 |
+
* @return GoogleGAL_Service_AdExchangeBuyer_BillingInfoList
|
452 |
+
*/
|
453 |
+
public function listBillingInfo( $optParams = array() ) {
|
454 |
+
$params = array();
|
455 |
+
$params = array_merge( $params, $optParams );
|
456 |
+
return $this->call( 'list', array( $params ), 'GoogleGAL_Service_AdExchangeBuyer_BillingInfoList' );
|
457 |
+
}
|
458 |
+
}
|
459 |
+
|
460 |
+
/**
|
461 |
+
* The "creatives" collection of methods.
|
462 |
+
* Typical usage is:
|
463 |
+
* <code>
|
464 |
+
* $adexchangebuyerService = new GoogleGAL_Service_AdExchangeBuyer(...);
|
465 |
+
* $creatives = $adexchangebuyerService->creatives;
|
466 |
+
* </code>
|
467 |
+
*/
|
468 |
+
class GoogleGAL_Service_AdExchangeBuyer_Creatives_Resource extends GoogleGAL_Service_Resource {
|
469 |
+
|
470 |
+
|
471 |
+
/**
|
472 |
+
* Gets the status for a single creative. A creative will be available 30-40
|
473 |
+
* minutes after submission. (creatives.get)
|
474 |
+
*
|
475 |
+
* @param int $accountId The id for the account that will serve this creative.
|
476 |
+
* @param string $buyerCreativeId The buyer-specific id for this creative.
|
477 |
+
* @param array $optParams Optional parameters.
|
478 |
+
* @return GoogleGAL_Service_AdExchangeBuyer_Creative
|
479 |
+
*/
|
480 |
+
public function get( $accountId, $buyerCreativeId, $optParams = array() ) {
|
481 |
+
$params = array(
|
482 |
+
'accountId' => $accountId,
|
483 |
+
'buyerCreativeId' => $buyerCreativeId,
|
484 |
+
);
|
485 |
+
$params = array_merge( $params, $optParams );
|
486 |
+
return $this->call( 'get', array( $params ), 'GoogleGAL_Service_AdExchangeBuyer_Creative' );
|
487 |
+
}
|
488 |
+
|
489 |
+
/**
|
490 |
+
* Submit a new creative. (creatives.insert)
|
491 |
+
*
|
492 |
+
* @param GoogleGAL_Creative $postBody
|
493 |
+
* @param array $optParams Optional parameters.
|
494 |
+
* @return GoogleGAL_Service_AdExchangeBuyer_Creative
|
495 |
+
*/
|
496 |
+
public function insert( GoogleGAL_Service_AdExchangeBuyer_Creative $postBody, $optParams = array() ) {
|
497 |
+
$params = array( 'postBody' => $postBody );
|
498 |
+
$params = array_merge( $params, $optParams );
|
499 |
+
return $this->call( 'insert', array( $params ), 'GoogleGAL_Service_AdExchangeBuyer_Creative' );
|
500 |
+
}
|
501 |
+
|
502 |
+
/**
|
503 |
+
* Retrieves a list of the authenticated user's active creatives. A creative
|
504 |
+
* will be available 30-40 minutes after submission. (creatives.listCreatives)
|
505 |
+
*
|
506 |
+
* @param array $optParams Optional parameters.
|
507 |
+
*
|
508 |
+
* @opt_param string statusFilter When specified, only creatives having the
|
509 |
+
* given status are returned.
|
510 |
+
* @opt_param string pageToken A continuation token, used to page through ad
|
511 |
+
* clients. To retrieve the next page, set this parameter to the value of
|
512 |
+
* "nextPageToken" from the previous response. Optional.
|
513 |
+
* @opt_param string maxResults Maximum number of entries returned on one result
|
514 |
+
* page. If not set, the default is 100. Optional.
|
515 |
+
* @opt_param string buyerCreativeId When specified, only creatives for the
|
516 |
+
* given buyer creative ids are returned.
|
517 |
+
* @opt_param int accountId When specified, only creatives for the given account
|
518 |
+
* ids are returned.
|
519 |
+
* @return GoogleGAL_Service_AdExchangeBuyer_CreativesList
|
520 |
+
*/
|
521 |
+
public function listCreatives( $optParams = array() ) {
|
522 |
+
$params = array();
|
523 |
+
$params = array_merge( $params, $optParams );
|
524 |
+
return $this->call( 'list', array( $params ), 'GoogleGAL_Service_AdExchangeBuyer_CreativesList' );
|
525 |
+
}
|
526 |
+
}
|
527 |
+
|
528 |
+
/**
|
529 |
+
* The "directDeals" collection of methods.
|
530 |
+
* Typical usage is:
|
531 |
+
* <code>
|
532 |
+
* $adexchangebuyerService = new GoogleGAL_Service_AdExchangeBuyer(...);
|
533 |
+
* $directDeals = $adexchangebuyerService->directDeals;
|
534 |
+
* </code>
|
535 |
+
*/
|
536 |
+
class GoogleGAL_Service_AdExchangeBuyer_DirectDeals_Resource extends GoogleGAL_Service_Resource {
|
537 |
+
|
538 |
+
|
539 |
+
/**
|
540 |
+
* Gets one direct deal by ID. (directDeals.get)
|
541 |
+
*
|
542 |
+
* @param string $id The direct deal id
|
543 |
+
* @param array $optParams Optional parameters.
|
544 |
+
* @return GoogleGAL_Service_AdExchangeBuyer_DirectDeal
|
545 |
+
*/
|
546 |
+
public function get( $id, $optParams = array() ) {
|
547 |
+
$params = array( 'id' => $id );
|
548 |
+
$params = array_merge( $params, $optParams );
|
549 |
+
return $this->call( 'get', array( $params ), 'GoogleGAL_Service_AdExchangeBuyer_DirectDeal' );
|
550 |
+
}
|
551 |
+
|
552 |
+
/**
|
553 |
+
* Retrieves the authenticated user's list of direct deals.
|
554 |
+
* (directDeals.listDirectDeals)
|
555 |
+
*
|
556 |
+
* @param array $optParams Optional parameters.
|
557 |
+
* @return GoogleGAL_Service_AdExchangeBuyer_DirectDealsList
|
558 |
+
*/
|
559 |
+
public function listDirectDeals( $optParams = array() ) {
|
560 |
+
$params = array();
|
561 |
+
$params = array_merge( $params, $optParams );
|
562 |
+
return $this->call( 'list', array( $params ), 'GoogleGAL_Service_AdExchangeBuyer_DirectDealsList' );
|
563 |
+
}
|
564 |
+
}
|
565 |
+
|
566 |
+
/**
|
567 |
+
* The "performanceReport" collection of methods.
|
568 |
+
* Typical usage is:
|
569 |
+
* <code>
|
570 |
+
* $adexchangebuyerService = new GoogleGAL_Service_AdExchangeBuyer(...);
|
571 |
+
* $performanceReport = $adexchangebuyerService->performanceReport;
|
572 |
+
* </code>
|
573 |
+
*/
|
574 |
+
class GoogleGAL_Service_AdExchangeBuyer_PerformanceReport_Resource extends GoogleGAL_Service_Resource {
|
575 |
+
|
576 |
+
|
577 |
+
/**
|
578 |
+
* Retrieves the authenticated user's list of performance metrics.
|
579 |
+
* (performanceReport.listPerformanceReport)
|
580 |
+
*
|
581 |
+
* @param string $accountId The account id to get the reports.
|
582 |
+
* @param string $endDateTime The end time of the report in ISO 8601 timestamp
|
583 |
+
* format using UTC.
|
584 |
+
* @param string $startDateTime The start time of the report in ISO 8601
|
585 |
+
* timestamp format using UTC.
|
586 |
+
* @param array $optParams Optional parameters.
|
587 |
+
*
|
588 |
+
* @opt_param string pageToken A continuation token, used to page through
|
589 |
+
* performance reports. To retrieve the next page, set this parameter to the
|
590 |
+
* value of "nextPageToken" from the previous response. Optional.
|
591 |
+
* @opt_param string maxResults Maximum number of entries returned on one result
|
592 |
+
* page. If not set, the default is 100. Optional.
|
593 |
+
* @return GoogleGAL_Service_AdExchangeBuyer_PerformanceReportList
|
594 |
+
*/
|
595 |
+
public function listPerformanceReport( $accountId, $endDateTime, $startDateTime, $optParams = array() ) {
|
596 |
+
$params = array(
|
597 |
+
'accountId' => $accountId,
|
598 |
+
'endDateTime' => $endDateTime,
|
599 |
+
'startDateTime' => $startDateTime,
|
600 |
+
);
|
601 |
+
$params = array_merge( $params, $optParams );
|
602 |
+
return $this->call( 'list', array( $params ), 'GoogleGAL_Service_AdExchangeBuyer_PerformanceReportList' );
|
603 |
+
}
|
604 |
+
}
|
605 |
+
|
606 |
+
/**
|
607 |
+
* The "pretargetingConfig" collection of methods.
|
608 |
+
* Typical usage is:
|
609 |
+
* <code>
|
610 |
+
* $adexchangebuyerService = new GoogleGAL_Service_AdExchangeBuyer(...);
|
611 |
+
* $pretargetingConfig = $adexchangebuyerService->pretargetingConfig;
|
612 |
+
* </code>
|
613 |
+
*/
|
614 |
+
class GoogleGAL_Service_AdExchangeBuyer_PretargetingConfig_Resource extends GoogleGAL_Service_Resource {
|
615 |
+
|
616 |
+
|
617 |
+
/**
|
618 |
+
* Deletes an existing pretargeting config. (pretargetingConfig.delete)
|
619 |
+
*
|
620 |
+
* @param string $accountId The account id to delete the pretargeting config
|
621 |
+
* for.
|
622 |
+
* @param string $configId The specific id of the configuration to delete.
|
623 |
+
* @param array $optParams Optional parameters.
|
624 |
+
*/
|
625 |
+
public function delete( $accountId, $configId, $optParams = array() ) {
|
626 |
+
$params = array(
|
627 |
+
'accountId' => $accountId,
|
628 |
+
'configId' => $configId,
|
629 |
+
);
|
630 |
+
$params = array_merge( $params, $optParams );
|
631 |
+
return $this->call( 'delete', array( $params ) );
|
632 |
+
}
|
633 |
+
|
634 |
+
/**
|
635 |
+
* Gets a specific pretargeting configuration (pretargetingConfig.get)
|
636 |
+
*
|
637 |
+
* @param string $accountId The account id to get the pretargeting config for.
|
638 |
+
* @param string $configId The specific id of the configuration to retrieve.
|
639 |
+
* @param array $optParams Optional parameters.
|
640 |
+
* @return GoogleGAL_Service_AdExchangeBuyer_PretargetingConfig
|
641 |
+
*/
|
642 |
+
public function get( $accountId, $configId, $optParams = array() ) {
|
643 |
+
$params = array(
|
644 |
+
'accountId' => $accountId,
|
645 |
+
'configId' => $configId,
|
646 |
+
);
|
647 |
+
$params = array_merge( $params, $optParams );
|
648 |
+
return $this->call( 'get', array( $params ), 'GoogleGAL_Service_AdExchangeBuyer_PretargetingConfig' );
|
649 |
+
}
|
650 |
+
|
651 |
+
/**
|
652 |
+
* Inserts a new pretargeting configuration. (pretargetingConfig.insert)
|
653 |
+
*
|
654 |
+
* @param string $accountId The account id to insert the pretargeting config
|
655 |
+
* for.
|
656 |
+
* @param GoogleGAL_PretargetingConfig $postBody
|
657 |
+
* @param array $optParams Optional parameters.
|
658 |
+
* @return GoogleGAL_Service_AdExchangeBuyer_PretargetingConfig
|
659 |
+
*/
|
660 |
+
public function insert( $accountId, GoogleGAL_Service_AdExchangeBuyer_PretargetingConfig $postBody, $optParams = array() ) {
|
661 |
+
$params = array(
|
662 |
+
'accountId' => $accountId,
|
663 |
+
'postBody' => $postBody,
|
664 |
+
);
|
665 |
+
$params = array_merge( $params, $optParams );
|
666 |
+
return $this->call( 'insert', array( $params ), 'GoogleGAL_Service_AdExchangeBuyer_PretargetingConfig' );
|
667 |
+
}
|
668 |
+
|
669 |
+
/**
|
670 |
+
* Retrieves a list of the authenticated user's pretargeting configurations.
|
671 |
+
* (pretargetingConfig.listPretargetingConfig)
|
672 |
+
*
|
673 |
+
* @param string $accountId The account id to get the pretargeting configs for.
|
674 |
+
* @param array $optParams Optional parameters.
|
675 |
+
* @return GoogleGAL_Service_AdExchangeBuyer_PretargetingConfigList
|
676 |
+
*/
|
677 |
+
public function listPretargetingConfig( $accountId, $optParams = array() ) {
|
678 |
+
$params = array( 'accountId' => $accountId );
|
679 |
+
$params = array_merge( $params, $optParams );
|
680 |
+
return $this->call( 'list', array( $params ), 'GoogleGAL_Service_AdExchangeBuyer_PretargetingConfigList' );
|
681 |
+
}
|
682 |
+
|
683 |
+
/**
|
684 |
+
* Updates an existing pretargeting config. This method supports patch
|
685 |
+
* semantics. (pretargetingConfig.patch)
|
686 |
+
*
|
687 |
+
* @param string $accountId The account id to update the pretargeting config
|
688 |
+
* for.
|
689 |
+
* @param string $configId The specific id of the configuration to update.
|
690 |
+
* @param GoogleGAL_PretargetingConfig $postBody
|
691 |
+
* @param array $optParams Optional parameters.
|
692 |
+
* @return GoogleGAL_Service_AdExchangeBuyer_PretargetingConfig
|
693 |
+
*/
|
694 |
+
public function patch( $accountId, $configId, GoogleGAL_Service_AdExchangeBuyer_PretargetingConfig $postBody, $optParams = array() ) {
|
695 |
+
$params = array(
|
696 |
+
'accountId' => $accountId,
|
697 |
+
'configId' => $configId,
|
698 |
+
'postBody' => $postBody,
|
699 |
+
);
|
700 |
+
$params = array_merge( $params, $optParams );
|
701 |
+
return $this->call( 'patch', array( $params ), 'GoogleGAL_Service_AdExchangeBuyer_PretargetingConfig' );
|
702 |
+
}
|
703 |
+
|
704 |
+
/**
|
705 |
+
* Updates an existing pretargeting config. (pretargetingConfig.update)
|
706 |
+
*
|
707 |
+
* @param string $accountId The account id to update the pretargeting config
|
708 |
+
* for.
|
709 |
+
* @param string $configId The specific id of the configuration to update.
|
710 |
+
* @param GoogleGAL_PretargetingConfig $postBody
|
711 |
+
* @param array $optParams Optional parameters.
|
712 |
+
* @return GoogleGAL_Service_AdExchangeBuyer_PretargetingConfig
|
713 |
+
*/
|
714 |
+
public function update( $accountId, $configId, GoogleGAL_Service_AdExchangeBuyer_PretargetingConfig $postBody, $optParams = array() ) {
|
715 |
+
$params = array(
|
716 |
+
'accountId' => $accountId,
|
717 |
+
'configId' => $configId,
|
718 |
+
'postBody' => $postBody,
|
719 |
+
);
|
720 |
+
$params = array_merge( $params, $optParams );
|
721 |
+
return $this->call( 'update', array( $params ), 'GoogleGAL_Service_AdExchangeBuyer_PretargetingConfig' );
|
722 |
+
}
|
723 |
+
}
|
724 |
+
|
725 |
+
|
726 |
+
|
727 |
+
|
728 |
+
class GoogleGAL_Service_AdExchangeBuyer_Account extends GoogleGAL_Collection {
|
729 |
+
|
730 |
+
protected $collection_key = 'bidderLocation';
|
731 |
+
protected $internal_gapi_mappings = array();
|
732 |
+
protected $bidderLocationType = 'GoogleGAL_Service_AdExchangeBuyer_AccountBidderLocation';
|
733 |
+
protected $bidderLocationDataType = 'array';
|
734 |
+
public $cookieMatchingNid;
|
735 |
+
public $cookieMatchingUrl;
|
736 |
+
public $id;
|
737 |
+
public $kind;
|
738 |
+
public $maximumActiveCreatives;
|
739 |
+
public $maximumTotalQps;
|
740 |
+
public $numberActiveCreatives;
|
741 |
+
|
742 |
+
|
743 |
+
public function setBidderLocation( $bidderLocation ) {
|
744 |
+
$this->bidderLocation = $bidderLocation;
|
745 |
+
}
|
746 |
+
public function getBidderLocation() {
|
747 |
+
return $this->bidderLocation;
|
748 |
+
}
|
749 |
+
public function setCookieMatchingNid( $cookieMatchingNid ) {
|
750 |
+
$this->cookieMatchingNid = $cookieMatchingNid;
|
751 |
+
}
|
752 |
+
public function getCookieMatchingNid() {
|
753 |
+
return $this->cookieMatchingNid;
|
754 |
+
}
|
755 |
+
public function setCookieMatchingUrl( $cookieMatchingUrl ) {
|
756 |
+
$this->cookieMatchingUrl = $cookieMatchingUrl;
|
757 |
+
}
|
758 |
+
public function getCookieMatchingUrl() {
|
759 |
+
return $this->cookieMatchingUrl;
|
760 |
+
}
|
761 |
+
public function setId( $id ) {
|
762 |
+
$this->id = $id;
|
763 |
+
}
|
764 |
+
public function getId() {
|
765 |
+
return $this->id;
|
766 |
+
}
|
767 |
+
public function setKind( $kind ) {
|
768 |
+
$this->kind = $kind;
|
769 |
+
}
|
770 |
+
public function getKind() {
|
771 |
+
return $this->kind;
|
772 |
+
}
|
773 |
+
public function setMaximumActiveCreatives( $maximumActiveCreatives ) {
|
774 |
+
$this->maximumActiveCreatives = $maximumActiveCreatives;
|
775 |
+
}
|
776 |
+
public function getMaximumActiveCreatives() {
|
777 |
+
return $this->maximumActiveCreatives;
|
778 |
+
}
|
779 |
+
public function setMaximumTotalQps( $maximumTotalQps ) {
|
780 |
+
$this->maximumTotalQps = $maximumTotalQps;
|
781 |
+
}
|
782 |
+
public function getMaximumTotalQps() {
|
783 |
+
return $this->maximumTotalQps;
|
784 |
+
}
|
785 |
+
public function setNumberActiveCreatives( $numberActiveCreatives ) {
|
786 |
+
$this->numberActiveCreatives = $numberActiveCreatives;
|
787 |
+
}
|
788 |
+
public function getNumberActiveCreatives() {
|
789 |
+
return $this->numberActiveCreatives;
|
790 |
+
}
|
791 |
+
}
|
792 |
+
|
793 |
+
class GoogleGAL_Service_AdExchangeBuyer_AccountBidderLocation extends GoogleGAL_Model {
|
794 |
+
|
795 |
+
protected $internal_gapi_mappings = array();
|
796 |
+
public $maximumQps;
|
797 |
+
public $region;
|
798 |
+
public $url;
|
799 |
+
|
800 |
+
|
801 |
+
public function setMaximumQps( $maximumQps ) {
|
802 |
+
$this->maximumQps = $maximumQps;
|
803 |
+
}
|
804 |
+
public function getMaximumQps() {
|
805 |
+
return $this->maximumQps;
|
806 |
+
}
|
807 |
+
public function setRegion( $region ) {
|
808 |
+
$this->region = $region;
|
809 |
+
}
|
810 |
+
public function getRegion() {
|
811 |
+
return $this->region;
|
812 |
+
}
|
813 |
+
public function setUrl( $url ) {
|
814 |
+
$this->url = $url;
|
815 |
+
}
|
816 |
+
public function getUrl() {
|
817 |
+
return $this->url;
|
818 |
+
}
|
819 |
+
}
|
820 |
+
|
821 |
+
class GoogleGAL_Service_AdExchangeBuyer_AccountsList extends GoogleGAL_Collection {
|
822 |
+
|
823 |
+
protected $collection_key = 'items';
|
824 |
+
protected $internal_gapi_mappings = array();
|
825 |
+
protected $itemsType = 'GoogleGAL_Service_AdExchangeBuyer_Account';
|
826 |
+
protected $itemsDataType = 'array';
|
827 |
+
public $kind;
|
828 |
+
|
829 |
+
|
830 |
+
public function setItems( $items ) {
|
831 |
+
$this->items = $items;
|
832 |
+
}
|
833 |
+
public function getItems() {
|
834 |
+
return $this->items;
|
835 |
+
}
|
836 |
+
public function setKind( $kind ) {
|
837 |
+
$this->kind = $kind;
|
838 |
+
}
|
839 |
+
public function getKind() {
|
840 |
+
return $this->kind;
|
841 |
+
}
|
842 |
+
}
|
843 |
+
|
844 |
+
class GoogleGAL_Service_AdExchangeBuyer_BillingInfo extends GoogleGAL_Collection {
|
845 |
+
|
846 |
+
protected $collection_key = 'billingId';
|
847 |
+
protected $internal_gapi_mappings = array();
|
848 |
+
public $accountId;
|
849 |
+
public $accountName;
|
850 |
+
public $billingId;
|
851 |
+
public $kind;
|
852 |
+
|
853 |
+
|
854 |
+
public function setAccountId( $accountId ) {
|
855 |
+
$this->accountId = $accountId;
|
856 |
+
}
|
857 |
+
public function getAccountId() {
|
858 |
+
return $this->accountId;
|
859 |
+
}
|
860 |
+
public function setAccountName( $accountName ) {
|
861 |
+
$this->accountName = $accountName;
|
862 |
+
}
|
863 |
+
public function getAccountName() {
|
864 |
+
return $this->accountName;
|
865 |
+
}
|
866 |
+
public function setBillingId( $billingId ) {
|
867 |
+
$this->billingId = $billingId;
|
868 |
+
}
|
869 |
+
public function getBillingId() {
|
870 |
+
return $this->billingId;
|
871 |
+
}
|
872 |
+
public function setKind( $kind ) {
|
873 |
+
$this->kind = $kind;
|
874 |
+
}
|
875 |
+
public function getKind() {
|
876 |
+
return $this->kind;
|
877 |
+
}
|
878 |
+
}
|
879 |
+
|
880 |
+
class GoogleGAL_Service_AdExchangeBuyer_BillingInfoList extends GoogleGAL_Collection {
|
881 |
+
|
882 |
+
protected $collection_key = 'items';
|
883 |
+
protected $internal_gapi_mappings = array();
|
884 |
+
protected $itemsType = 'GoogleGAL_Service_AdExchangeBuyer_BillingInfo';
|
885 |
+
protected $itemsDataType = 'array';
|
886 |
+
public $kind;
|
887 |
+
|
888 |
+
|
889 |
+
public function setItems( $items ) {
|
890 |
+
$this->items = $items;
|
891 |
+
}
|
892 |
+
public function getItems() {
|
893 |
+
return $this->items;
|
894 |
+
}
|
895 |
+
public function setKind( $kind ) {
|
896 |
+
$this->kind = $kind;
|
897 |
+
}
|
898 |
+
public function getKind() {
|
899 |
+
return $this->kind;
|
900 |
+
}
|
901 |
+
}
|
902 |
+
|
903 |
+
class GoogleGAL_Service_AdExchangeBuyer_Creative extends GoogleGAL_Collection {
|
904 |
+
|
905 |
+
protected $collection_key = 'vendorType';
|
906 |
+
protected $internal_gapi_mappings = array(
|
907 |
+
'hTMLSnippet' => 'HTMLSnippet',
|
908 |
+
);
|
909 |
+
public $hTMLSnippet;
|
910 |
+
public $accountId;
|
911 |
+
public $advertiserId;
|
912 |
+
public $advertiserName;
|
913 |
+
public $agencyId;
|
914 |
+
public $attribute;
|
915 |
+
public $buyerCreativeId;
|
916 |
+
public $clickThroughUrl;
|
917 |
+
protected $correctionsType = 'GoogleGAL_Service_AdExchangeBuyer_CreativeCorrections';
|
918 |
+
protected $correctionsDataType = 'array';
|
919 |
+
protected $disapprovalReasonsType = 'GoogleGAL_Service_AdExchangeBuyer_CreativeDisapprovalReasons';
|
920 |
+
protected $disapprovalReasonsDataType = 'array';
|
921 |
+
protected $filteringReasonsType = 'GoogleGAL_Service_AdExchangeBuyer_CreativeFilteringReasons';
|
922 |
+
protected $filteringReasonsDataType = '';
|
923 |
+
public $height;
|
924 |
+
public $kind;
|
925 |
+
public $productCategories;
|
926 |
+
public $restrictedCategories;
|
927 |
+
public $sensitiveCategories;
|
928 |
+
public $status;
|
929 |
+
public $vendorType;
|
930 |
+
public $videoURL;
|
931 |
+
public $width;
|
932 |
+
|
933 |
+
|
934 |
+
public function setHTMLSnippet( $hTMLSnippet ) {
|
935 |
+
$this->hTMLSnippet = $hTMLSnippet;
|
936 |
+
}
|
937 |
+
public function getHTMLSnippet() {
|
938 |
+
return $this->hTMLSnippet;
|
939 |
+
}
|
940 |
+
public function setAccountId( $accountId ) {
|
941 |
+
$this->accountId = $accountId;
|
942 |
+
}
|
943 |
+
public function getAccountId() {
|
944 |
+
return $this->accountId;
|
945 |
+
}
|
946 |
+
public function setAdvertiserId( $advertiserId ) {
|
947 |
+
$this->advertiserId = $advertiserId;
|
948 |
+
}
|
949 |
+
public function getAdvertiserId() {
|
950 |
+
return $this->advertiserId;
|
951 |
+
}
|
952 |
+
public function setAdvertiserName( $advertiserName ) {
|
953 |
+
$this->advertiserName = $advertiserName;
|
954 |
+
}
|
955 |
+
public function getAdvertiserName() {
|
956 |
+
return $this->advertiserName;
|
957 |
+
}
|
958 |
+
public function setAgencyId( $agencyId ) {
|
959 |
+
$this->agencyId = $agencyId;
|
960 |
+
}
|
961 |
+
public function getAgencyId() {
|
962 |
+
return $this->agencyId;
|
963 |
+
}
|
964 |
+
public function setAttribute( $attribute ) {
|
965 |
+
$this->attribute = $attribute;
|
966 |
+
}
|
967 |
+
public function getAttribute() {
|
968 |
+
return $this->attribute;
|
969 |
+
}
|
970 |
+
public function setBuyerCreativeId( $buyerCreativeId ) {
|
971 |
+
$this->buyerCreativeId = $buyerCreativeId;
|
972 |
+
}
|
973 |
+
public function getBuyerCreativeId() {
|
974 |
+
return $this->buyerCreativeId;
|
975 |
+
}
|
976 |
+
public function setClickThroughUrl( $clickThroughUrl ) {
|
977 |
+
$this->clickThroughUrl = $clickThroughUrl;
|
978 |
+
}
|
979 |
+
public function getClickThroughUrl() {
|
980 |
+
return $this->clickThroughUrl;
|
981 |
+
}
|
982 |
+
public function setCorrections( $corrections ) {
|
983 |
+
$this->corrections = $corrections;
|
984 |
+
}
|
985 |
+
public function getCorrections() {
|
986 |
+
return $this->corrections;
|
987 |
+
}
|
988 |
+
public function setDisapprovalReasons( $disapprovalReasons ) {
|
989 |
+
$this->disapprovalReasons = $disapprovalReasons;
|
990 |
+
}
|
991 |
+
public function getDisapprovalReasons() {
|
992 |
+
return $this->disapprovalReasons;
|
993 |
+
}
|
994 |
+
public function setFilteringReasons( GoogleGAL_Service_AdExchangeBuyer_CreativeFilteringReasons $filteringReasons ) {
|
995 |
+
$this->filteringReasons = $filteringReasons;
|
996 |
+
}
|
997 |
+
public function getFilteringReasons() {
|
998 |
+
return $this->filteringReasons;
|
999 |
+
}
|
1000 |
+
public function setHeight( $height ) {
|
1001 |
+
$this->height = $height;
|
1002 |
+
}
|
1003 |
+
public function getHeight() {
|
1004 |
+
return $this->height;
|
1005 |
+
}
|
1006 |
+
public function setKind( $kind ) {
|
1007 |
+
$this->kind = $kind;
|
1008 |
+
}
|
1009 |
+
public function getKind() {
|
1010 |
+
return $this->kind;
|
1011 |
+
}
|
1012 |
+
public function setProductCategories( $productCategories ) {
|
1013 |
+
$this->productCategories = $productCategories;
|
1014 |
+
}
|
1015 |
+
public function getProductCategories() {
|
1016 |
+
return $this->productCategories;
|
1017 |
+
}
|
1018 |
+
public function setRestrictedCategories( $restrictedCategories ) {
|
1019 |
+
$this->restrictedCategories = $restrictedCategories;
|
1020 |
+
}
|
1021 |
+
public function getRestrictedCategories() {
|
1022 |
+
return $this->restrictedCategories;
|
1023 |
+
}
|
1024 |
+
public function setSensitiveCategories( $sensitiveCategories ) {
|
1025 |
+
$this->sensitiveCategories = $sensitiveCategories;
|
1026 |
+
}
|
1027 |
+
public function getSensitiveCategories() {
|
1028 |
+
return $this->sensitiveCategories;
|
1029 |
+
}
|
1030 |
+
public function setStatus( $status ) {
|
1031 |
+
$this->status = $status;
|
1032 |
+
}
|
1033 |
+
public function getStatus() {
|
1034 |
+
return $this->status;
|
1035 |
+
}
|
1036 |
+
public function setVendorType( $vendorType ) {
|
1037 |
+
$this->vendorType = $vendorType;
|
1038 |
+
}
|
1039 |
+
public function getVendorType() {
|
1040 |
+
return $this->vendorType;
|
1041 |
+
}
|
1042 |
+
public function setVideoURL( $videoURL ) {
|
1043 |
+
$this->videoURL = $videoURL;
|
1044 |
+
}
|
1045 |
+
public function getVideoURL() {
|
1046 |
+
return $this->videoURL;
|
1047 |
+
}
|
1048 |
+
public function setWidth( $width ) {
|
1049 |
+
$this->width = $width;
|
1050 |
+
}
|
1051 |
+
public function getWidth() {
|
1052 |
+
return $this->width;
|
1053 |
+
}
|
1054 |
+
}
|
1055 |
+
|
1056 |
+
class GoogleGAL_Service_AdExchangeBuyer_CreativeCorrections extends GoogleGAL_Collection {
|
1057 |
+
|
1058 |
+
protected $collection_key = 'details';
|
1059 |
+
protected $internal_gapi_mappings = array();
|
1060 |
+
public $details;
|
1061 |
+
public $reason;
|
1062 |
+
|
1063 |
+
|
1064 |
+
public function setDetails( $details ) {
|
1065 |
+
$this->details = $details;
|
1066 |
+
}
|
1067 |
+
public function getDetails() {
|
1068 |
+
return $this->details;
|
1069 |
+
}
|
1070 |
+
public function setReason( $reason ) {
|
1071 |
+
$this->reason = $reason;
|
1072 |
+
}
|
1073 |
+
public function getReason() {
|
1074 |
+
return $this->reason;
|
1075 |
+
}
|
1076 |
+
}
|
1077 |
+
|
1078 |
+
class GoogleGAL_Service_AdExchangeBuyer_CreativeDisapprovalReasons extends GoogleGAL_Collection {
|
1079 |
+
|
1080 |
+
protected $collection_key = 'details';
|
1081 |
+
protected $internal_gapi_mappings = array();
|
1082 |
+
public $details;
|
1083 |
+
public $reason;
|
1084 |
+
|
1085 |
+
|
1086 |
+
public function setDetails( $details ) {
|
1087 |
+
$this->details = $details;
|
1088 |
+
}
|
1089 |
+
public function getDetails() {
|
1090 |
+
return $this->details;
|
1091 |
+
}
|
1092 |
+
public function setReason( $reason ) {
|
1093 |
+
$this->reason = $reason;
|
1094 |
+
}
|
1095 |
+
public function getReason() {
|
1096 |
+
return $this->reason;
|
1097 |
+
}
|
1098 |
+
}
|
1099 |
+
|
1100 |
+
class GoogleGAL_Service_AdExchangeBuyer_CreativeFilteringReasons extends GoogleGAL_Collection {
|
1101 |
+
|
1102 |
+
protected $collection_key = 'reasons';
|
1103 |
+
protected $internal_gapi_mappings = array();
|
1104 |
+
public $date;
|
1105 |
+
protected $reasonsType = 'GoogleGAL_Service_AdExchangeBuyer_CreativeFilteringReasonsReasons';
|
1106 |
+
protected $reasonsDataType = 'array';
|
1107 |
+
|
1108 |
+
|
1109 |
+
public function setDate( $date ) {
|
1110 |
+
$this->date = $date;
|
1111 |
+
}
|
1112 |
+
public function getDate() {
|
1113 |
+
return $this->date;
|
1114 |
+
}
|
1115 |
+
public function setReasons( $reasons ) {
|
1116 |
+
$this->reasons = $reasons;
|
1117 |
+
}
|
1118 |
+
public function getReasons() {
|
1119 |
+
return $this->reasons;
|
1120 |
+
}
|
1121 |
+
}
|
1122 |
+
|
1123 |
+
class GoogleGAL_Service_AdExchangeBuyer_CreativeFilteringReasonsReasons extends GoogleGAL_Model {
|
1124 |
+
|
1125 |
+
protected $internal_gapi_mappings = array();
|
1126 |
+
public $filteringCount;
|
1127 |
+
public $filteringStatus;
|
1128 |
+
|
1129 |
+
|
1130 |
+
public function setFilteringCount( $filteringCount ) {
|
1131 |
+
$this->filteringCount = $filteringCount;
|
1132 |
+
}
|
1133 |
+
public function getFilteringCount() {
|
1134 |
+
return $this->filteringCount;
|
1135 |
+
}
|
1136 |
+
public function setFilteringStatus( $filteringStatus ) {
|
1137 |
+
$this->filteringStatus = $filteringStatus;
|
1138 |
+
}
|
1139 |
+
public function getFilteringStatus() {
|
1140 |
+
return $this->filteringStatus;
|
1141 |
+
}
|
1142 |
+
}
|
1143 |
+
|
1144 |
+
class GoogleGAL_Service_AdExchangeBuyer_CreativesList extends GoogleGAL_Collection {
|
1145 |
+
|
1146 |
+
protected $collection_key = 'items';
|
1147 |
+
protected $internal_gapi_mappings = array();
|
1148 |
+
protected $itemsType = 'GoogleGAL_Service_AdExchangeBuyer_Creative';
|
1149 |
+
protected $itemsDataType = 'array';
|
1150 |
+
public $kind;
|
1151 |
+
public $nextPageToken;
|
1152 |
+
|
1153 |
+
|
1154 |
+
public function setItems( $items ) {
|
1155 |
+
$this->items = $items;
|
1156 |
+
}
|
1157 |
+
public function getItems() {
|
1158 |
+
return $this->items;
|
1159 |
+
}
|
1160 |
+
public function setKind( $kind ) {
|
1161 |
+
$this->kind = $kind;
|
1162 |
+
}
|
1163 |
+
public function getKind() {
|
1164 |
+
return $this->kind;
|
1165 |
+
}
|
1166 |
+
public function setNextPageToken( $nextPageToken ) {
|
1167 |
+
$this->nextPageToken = $nextPageToken;
|
1168 |
+
}
|
1169 |
+
public function getNextPageToken() {
|
1170 |
+
return $this->nextPageToken;
|
1171 |
+
}
|
1172 |
+
}
|
1173 |
+
|
1174 |
+
class GoogleGAL_Service_AdExchangeBuyer_DirectDeal extends GoogleGAL_Model {
|
1175 |
+
|
1176 |
+
protected $internal_gapi_mappings = array();
|
1177 |
+
public $accountId;
|
1178 |
+
public $advertiser;
|
1179 |
+
public $currencyCode;
|
1180 |
+
public $endTime;
|
1181 |
+
public $fixedCpm;
|
1182 |
+
public $id;
|
1183 |
+
public $kind;
|
1184 |
+
public $name;
|
1185 |
+
public $privateExchangeMinCpm;
|
1186 |
+
public $publisherBlocksOverriden;
|
1187 |
+
public $sellerNetwork;
|
1188 |
+
public $startTime;
|
1189 |
+
|
1190 |
+
|
1191 |
+
public function setAccountId( $accountId ) {
|
1192 |
+
$this->accountId = $accountId;
|
1193 |
+
}
|
1194 |
+
public function getAccountId() {
|
1195 |
+
return $this->accountId;
|
1196 |
+
}
|
1197 |
+
public function setAdvertiser( $advertiser ) {
|
1198 |
+
$this->advertiser = $advertiser;
|
1199 |
+
}
|
1200 |
+
public function getAdvertiser() {
|
1201 |
+
return $this->advertiser;
|
1202 |
+
}
|
1203 |
+
public function setCurrencyCode( $currencyCode ) {
|
1204 |
+
$this->currencyCode = $currencyCode;
|
1205 |
+
}
|
1206 |
+
public function getCurrencyCode() {
|
1207 |
+
return $this->currencyCode;
|
1208 |
+
}
|
1209 |
+
public function setEndTime( $endTime ) {
|
1210 |
+
$this->endTime = $endTime;
|
1211 |
+
}
|
1212 |
+
public function getEndTime() {
|
1213 |
+
return $this->endTime;
|
1214 |
+
}
|
1215 |
+
public function setFixedCpm( $fixedCpm ) {
|
1216 |
+
$this->fixedCpm = $fixedCpm;
|
1217 |
+
}
|
1218 |
+
public function getFixedCpm() {
|
1219 |
+
return $this->fixedCpm;
|
1220 |
+
}
|
1221 |
+
public function setId( $id ) {
|
1222 |
+
$this->id = $id;
|
1223 |
+
}
|
1224 |
+
public function getId() {
|
1225 |
+
return $this->id;
|
1226 |
+
}
|
1227 |
+
public function setKind( $kind ) {
|
1228 |
+
$this->kind = $kind;
|
1229 |
+
}
|
1230 |
+
public function getKind() {
|
1231 |
+
return $this->kind;
|
1232 |
+
}
|
1233 |
+
public function setName( $name ) {
|
1234 |
+
$this->name = $name;
|
1235 |
+
}
|
1236 |
+
public function getName() {
|
1237 |
+
return $this->name;
|
1238 |
+
}
|
1239 |
+
public function setPrivateExchangeMinCpm( $privateExchangeMinCpm ) {
|
1240 |
+
$this->privateExchangeMinCpm = $privateExchangeMinCpm;
|
1241 |
+
}
|
1242 |
+
public function getPrivateExchangeMinCpm() {
|
1243 |
+
return $this->privateExchangeMinCpm;
|
1244 |
+
}
|
1245 |
+
public function setPublisherBlocksOverriden( $publisherBlocksOverriden ) {
|
1246 |
+
$this->publisherBlocksOverriden = $publisherBlocksOverriden;
|
1247 |
+
}
|
1248 |
+
public function getPublisherBlocksOverriden() {
|
1249 |
+
return $this->publisherBlocksOverriden;
|
1250 |
+
}
|
1251 |
+
public function setSellerNetwork( $sellerNetwork ) {
|
1252 |
+
$this->sellerNetwork = $sellerNetwork;
|
1253 |
+
}
|
1254 |
+
public function getSellerNetwork() {
|
1255 |
+
return $this->sellerNetwork;
|
1256 |
+
}
|
1257 |
+
public function setStartTime( $startTime ) {
|
1258 |
+
$this->startTime = $startTime;
|
1259 |
+
}
|
1260 |
+
public function getStartTime() {
|
1261 |
+
return $this->startTime;
|
1262 |
+
}
|
1263 |
+
}
|
1264 |
+
|
1265 |
+
class GoogleGAL_Service_AdExchangeBuyer_DirectDealsList extends GoogleGAL_Collection {
|
1266 |
+
|
1267 |
+
protected $collection_key = 'directDeals';
|
1268 |
+
protected $internal_gapi_mappings = array();
|
1269 |
+
protected $directDealsType = 'GoogleGAL_Service_AdExchangeBuyer_DirectDeal';
|
1270 |
+
protected $directDealsDataType = 'array';
|
1271 |
+
public $kind;
|
1272 |
+
|
1273 |
+
|
1274 |
+
public function setDirectDeals( $directDeals ) {
|
1275 |
+
$this->directDeals = $directDeals;
|
1276 |
+
}
|
1277 |
+
public function getDirectDeals() {
|
1278 |
+
return $this->directDeals;
|
1279 |
+
}
|
1280 |
+
public function setKind( $kind ) {
|
1281 |
+
$this->kind = $kind;
|
1282 |
+
}
|
1283 |
+
public function getKind() {
|
1284 |
+
return $this->kind;
|
1285 |
+
}
|
1286 |
+
}
|
1287 |
+
|
1288 |
+
class GoogleGAL_Service_AdExchangeBuyer_PerformanceReport extends GoogleGAL_Collection {
|
1289 |
+
|
1290 |
+
protected $collection_key = 'hostedMatchStatusRate';
|
1291 |
+
protected $internal_gapi_mappings = array();
|
1292 |
+
public $calloutStatusRate;
|
1293 |
+
public $cookieMatcherStatusRate;
|
1294 |
+
public $creativeStatusRate;
|
1295 |
+
public $hostedMatchStatusRate;
|
1296 |
+
public $kind;
|
1297 |
+
public $latency50thPercentile;
|
1298 |
+
public $latency85thPercentile;
|
1299 |
+
public $latency95thPercentile;
|
1300 |
+
public $noQuotaInRegion;
|
1301 |
+
public $outOfQuota;
|
1302 |
+
public $pixelMatchRequests;
|
1303 |
+
public $pixelMatchResponses;
|
1304 |
+
public $quotaConfiguredLimit;
|
1305 |
+
public $quotaThrottledLimit;
|
1306 |
+
public $region;
|
1307 |
+
public $timestamp;
|
1308 |
+
|
1309 |
+
|
1310 |
+
public function setCalloutStatusRate( $calloutStatusRate ) {
|
1311 |
+
$this->calloutStatusRate = $calloutStatusRate;
|
1312 |
+
}
|
1313 |
+
public function getCalloutStatusRate() {
|
1314 |
+
return $this->calloutStatusRate;
|
1315 |
+
}
|
1316 |
+
public function setCookieMatcherStatusRate( $cookieMatcherStatusRate ) {
|
1317 |
+
$this->cookieMatcherStatusRate = $cookieMatcherStatusRate;
|
1318 |
+
}
|
1319 |
+
public function getCookieMatcherStatusRate() {
|
1320 |
+
return $this->cookieMatcherStatusRate;
|
1321 |
+
}
|
1322 |
+
public function setCreativeStatusRate( $creativeStatusRate ) {
|
1323 |
+
$this->creativeStatusRate = $creativeStatusRate;
|
1324 |
+
}
|
1325 |
+
public function getCreativeStatusRate() {
|
1326 |
+
return $this->creativeStatusRate;
|
1327 |
+
}
|
1328 |
+
public function setHostedMatchStatusRate( $hostedMatchStatusRate ) {
|
1329 |
+
$this->hostedMatchStatusRate = $hostedMatchStatusRate;
|
1330 |
+
}
|
1331 |
+
public function getHostedMatchStatusRate() {
|
1332 |
+
return $this->hostedMatchStatusRate;
|
1333 |
+
}
|
1334 |
+
public function setKind( $kind ) {
|
1335 |
+
$this->kind = $kind;
|
1336 |
+
}
|
1337 |
+
public function getKind() {
|
1338 |
+
return $this->kind;
|
1339 |
+
}
|
1340 |
+
public function setLatency50thPercentile( $latency50thPercentile ) {
|
1341 |
+
$this->latency50thPercentile = $latency50thPercentile;
|
1342 |
+
}
|
1343 |
+
public function getLatency50thPercentile() {
|
1344 |
+
return $this->latency50thPercentile;
|
1345 |
+
}
|
1346 |
+
public function setLatency85thPercentile( $latency85thPercentile ) {
|
1347 |
+
$this->latency85thPercentile = $latency85thPercentile;
|
1348 |
+
}
|
1349 |
+
public function getLatency85thPercentile() {
|
1350 |
+
return $this->latency85thPercentile;
|
1351 |
+
}
|
1352 |
+
public function setLatency95thPercentile( $latency95thPercentile ) {
|
1353 |
+
$this->latency95thPercentile = $latency95thPercentile;
|
1354 |
+
}
|
1355 |
+
public function getLatency95thPercentile() {
|
1356 |
+
return $this->latency95thPercentile;
|
1357 |
+
}
|
1358 |
+
public function setNoQuotaInRegion( $noQuotaInRegion ) {
|
1359 |
+
$this->noQuotaInRegion = $noQuotaInRegion;
|
1360 |
+
}
|
1361 |
+
public function getNoQuotaInRegion() {
|
1362 |
+
return $this->noQuotaInRegion;
|
1363 |
+
}
|
1364 |
+
public function setOutOfQuota( $outOfQuota ) {
|
1365 |
+
$this->outOfQuota = $outOfQuota;
|
1366 |
+
}
|
1367 |
+
public function getOutOfQuota() {
|
1368 |
+
return $this->outOfQuota;
|
1369 |
+
}
|
1370 |
+
public function setPixelMatchRequests( $pixelMatchRequests ) {
|
1371 |
+
$this->pixelMatchRequests = $pixelMatchRequests;
|
1372 |
+
}
|
1373 |
+
public function getPixelMatchRequests() {
|
1374 |
+
return $this->pixelMatchRequests;
|
1375 |
+
}
|
1376 |
+
public function setPixelMatchResponses( $pixelMatchResponses ) {
|
1377 |
+
$this->pixelMatchResponses = $pixelMatchResponses;
|
1378 |
+
}
|
1379 |
+
public function getPixelMatchResponses() {
|
1380 |
+
return $this->pixelMatchResponses;
|
1381 |
+
}
|
1382 |
+
public function setQuotaConfiguredLimit( $quotaConfiguredLimit ) {
|
1383 |
+
$this->quotaConfiguredLimit = $quotaConfiguredLimit;
|
1384 |
+
}
|
1385 |
+
public function getQuotaConfiguredLimit() {
|
1386 |
+
return $this->quotaConfiguredLimit;
|
1387 |
+
}
|
1388 |
+
public function setQuotaThrottledLimit( $quotaThrottledLimit ) {
|
1389 |
+
$this->quotaThrottledLimit = $quotaThrottledLimit;
|
1390 |
+
}
|
1391 |
+
public function getQuotaThrottledLimit() {
|
1392 |
+
return $this->quotaThrottledLimit;
|
1393 |
+
}
|
1394 |
+
public function setRegion( $region ) {
|
1395 |
+
$this->region = $region;
|
1396 |
+
}
|
1397 |
+
public function getRegion() {
|
1398 |
+
return $this->region;
|
1399 |
+
}
|
1400 |
+
public function setTimestamp( $timestamp ) {
|
1401 |
+
$this->timestamp = $timestamp;
|
1402 |
+
}
|
1403 |
+
public function getTimestamp() {
|
1404 |
+
return $this->timestamp;
|
1405 |
+
}
|
1406 |
+
}
|
1407 |
+
|
1408 |
+
class GoogleGAL_Service_AdExchangeBuyer_PerformanceReportList extends GoogleGAL_Collection {
|
1409 |
+
|
1410 |
+
protected $collection_key = 'performanceReport';
|
1411 |
+
protected $internal_gapi_mappings = array();
|
1412 |
+
public $kind;
|
1413 |
+
protected $performanceReportType = 'GoogleGAL_Service_AdExchangeBuyer_PerformanceReport';
|
1414 |
+
protected $performanceReportDataType = 'array';
|
1415 |
+
|
1416 |
+
|
1417 |
+
public function setKind( $kind ) {
|
1418 |
+
$this->kind = $kind;
|
1419 |
+
}
|
1420 |
+
public function getKind() {
|
1421 |
+
return $this->kind;
|
1422 |
+
}
|
1423 |
+
public function setPerformanceReport( $performanceReport ) {
|
1424 |
+
$this->performanceReport = $performanceReport;
|
1425 |
+
}
|
1426 |
+
public function getPerformanceReport() {
|
1427 |
+
return $this->performanceReport;
|
1428 |
+
}
|
1429 |
+
}
|
1430 |
+
|
1431 |
+
class GoogleGAL_Service_AdExchangeBuyer_PretargetingConfig extends GoogleGAL_Collection {
|
1432 |
+
|
1433 |
+
protected $collection_key = 'verticals';
|
1434 |
+
protected $internal_gapi_mappings = array();
|
1435 |
+
public $billingId;
|
1436 |
+
public $configId;
|
1437 |
+
public $configName;
|
1438 |
+
public $creativeType;
|
1439 |
+
protected $dimensionsType = 'GoogleGAL_Service_AdExchangeBuyer_PretargetingConfigDimensions';
|
1440 |
+
protected $dimensionsDataType = 'array';
|
1441 |
+
public $excludedContentLabels;
|
1442 |
+
public $excludedGeoCriteriaIds;
|
1443 |
+
protected $excludedPlacementsType = 'GoogleGAL_Service_AdExchangeBuyer_PretargetingConfigExcludedPlacements';
|
1444 |
+
protected $excludedPlacementsDataType = 'array';
|
1445 |
+
public $excludedUserLists;
|
1446 |
+
public $excludedVerticals;
|
1447 |
+
public $geoCriteriaIds;
|
1448 |
+
public $isActive;
|
1449 |
+
public $kind;
|
1450 |
+
public $languages;
|
1451 |
+
public $mobileCarriers;
|
1452 |
+
public $mobileDevices;
|
1453 |
+
public $mobileOperatingSystemVersions;
|
1454 |
+
protected $placementsType = 'GoogleGAL_Service_AdExchangeBuyer_PretargetingConfigPlacements';
|
1455 |
+
protected $placementsDataType = 'array';
|
1456 |
+
public $platforms;
|
1457 |
+
public $supportedCreativeAttributes;
|
1458 |
+
public $userLists;
|
1459 |
+
public $vendorTypes;
|
1460 |
+
public $verticals;
|
1461 |
+
|
1462 |
+
|
1463 |
+
public function setBillingId( $billingId ) {
|
1464 |
+
$this->billingId = $billingId;
|
1465 |
+
}
|
1466 |
+
public function getBillingId() {
|
1467 |
+
return $this->billingId;
|
1468 |
+
}
|
1469 |
+
public function setConfigId( $configId ) {
|
1470 |
+
$this->configId = $configId;
|
1471 |
+
}
|
1472 |
+
public function getConfigId() {
|
1473 |
+
return $this->configId;
|
1474 |
+
}
|
1475 |
+
public function setConfigName( $configName ) {
|
1476 |
+
$this->configName = $configName;
|
1477 |
+
}
|
1478 |
+
public function getConfigName() {
|
1479 |
+
return $this->configName;
|
1480 |
+
}
|
1481 |
+
public function setCreativeType( $creativeType ) {
|
1482 |
+
$this->creativeType = $creativeType;
|
1483 |
+
}
|
1484 |
+
public function getCreativeType() {
|
1485 |
+
return $this->creativeType;
|
1486 |
+
}
|
1487 |
+
public function setDimensions( $dimensions ) {
|
1488 |
+
$this->dimensions = $dimensions;
|
1489 |
+
}
|
1490 |
+
public function getDimensions() {
|
1491 |
+
return $this->dimensions;
|
1492 |
+
}
|
1493 |
+
public function setExcludedContentLabels( $excludedContentLabels ) {
|
1494 |
+
$this->excludedContentLabels = $excludedContentLabels;
|
1495 |
+
}
|
1496 |
+
public function getExcludedContentLabels() {
|
1497 |
+
return $this->excludedContentLabels;
|
1498 |
+
}
|
1499 |
+
public function setExcludedGeoCriteriaIds( $excludedGeoCriteriaIds ) {
|
1500 |
+
$this->excludedGeoCriteriaIds = $excludedGeoCriteriaIds;
|
1501 |
+
}
|
1502 |
+
public function getExcludedGeoCriteriaIds() {
|
1503 |
+
return $this->excludedGeoCriteriaIds;
|
1504 |
+
}
|
1505 |
+
public function setExcludedPlacements( $excludedPlacements ) {
|
1506 |
+
$this->excludedPlacements = $excludedPlacements;
|
1507 |
+
}
|
1508 |
+
public function getExcludedPlacements() {
|
1509 |
+
return $this->excludedPlacements;
|
1510 |
+
}
|
1511 |
+
public function setExcludedUserLists( $excludedUserLists ) {
|
1512 |
+
$this->excludedUserLists = $excludedUserLists;
|
1513 |
+
}
|
1514 |
+
public function getExcludedUserLists() {
|
1515 |
+
return $this->excludedUserLists;
|
1516 |
+
}
|
1517 |
+
public function setExcludedVerticals( $excludedVerticals ) {
|
1518 |
+
$this->excludedVerticals = $excludedVerticals;
|
1519 |
+
}
|
1520 |
+
public function getExcludedVerticals() {
|
1521 |
+
return $this->excludedVerticals;
|
1522 |
+
}
|
1523 |
+
public function setGeoCriteriaIds( $geoCriteriaIds ) {
|
1524 |
+
$this->geoCriteriaIds = $geoCriteriaIds;
|
1525 |
+
}
|
1526 |
+
public function getGeoCriteriaIds() {
|
1527 |
+
return $this->geoCriteriaIds;
|
1528 |
+
}
|
1529 |
+
public function setIsActive( $isActive ) {
|
1530 |
+
$this->isActive = $isActive;
|
1531 |
+
}
|
1532 |
+
public function getIsActive() {
|
1533 |
+
return $this->isActive;
|
1534 |
+
}
|
1535 |
+
public function setKind( $kind ) {
|
1536 |
+
$this->kind = $kind;
|
1537 |
+
}
|
1538 |
+
public function getKind() {
|
1539 |
+
return $this->kind;
|
1540 |
+
}
|
1541 |
+
public function setLanguages( $languages ) {
|
1542 |
+
$this->languages = $languages;
|
1543 |
+
}
|
1544 |
+
public function getLanguages() {
|
1545 |
+
return $this->languages;
|
1546 |
+
}
|
1547 |
+
public function setMobileCarriers( $mobileCarriers ) {
|
1548 |
+
$this->mobileCarriers = $mobileCarriers;
|
1549 |
+
}
|
1550 |
+
public function getMobileCarriers() {
|
1551 |
+
return $this->mobileCarriers;
|
1552 |
+
}
|
1553 |
+
public function setMobileDevices( $mobileDevices ) {
|
1554 |
+
$this->mobileDevices = $mobileDevices;
|
1555 |
+
}
|
1556 |
+
public function getMobileDevices() {
|
1557 |
+
return $this->mobileDevices;
|
1558 |
+
}
|
1559 |
+
public function setMobileOperatingSystemVersions( $mobileOperatingSystemVersions ) {
|
1560 |
+
$this->mobileOperatingSystemVersions = $mobileOperatingSystemVersions;
|
1561 |
+
}
|
1562 |
+
public function getMobileOperatingSystemVersions() {
|
1563 |
+
return $this->mobileOperatingSystemVersions;
|
1564 |
+
}
|
1565 |
+
public function setPlacements( $placements ) {
|
1566 |
+
$this->placements = $placements;
|
1567 |
+
}
|
1568 |
+
public function getPlacements() {
|
1569 |
+
return $this->placements;
|
1570 |
+
}
|
1571 |
+
public function setPlatforms( $platforms ) {
|
1572 |
+
$this->platforms = $platforms;
|
1573 |
+
}
|
1574 |
+
public function getPlatforms() {
|
1575 |
+
return $this->platforms;
|
1576 |
+
}
|
1577 |
+
public function setSupportedCreativeAttributes( $supportedCreativeAttributes ) {
|
1578 |
+
$this->supportedCreativeAttributes = $supportedCreativeAttributes;
|
1579 |
+
}
|
1580 |
+
public function getSupportedCreativeAttributes() {
|
1581 |
+
return $this->supportedCreativeAttributes;
|
1582 |
+
}
|
1583 |
+
public function setUserLists( $userLists ) {
|
1584 |
+
$this->userLists = $userLists;
|
1585 |
+
}
|
1586 |
+
public function getUserLists() {
|
1587 |
+
return $this->userLists;
|
1588 |
+
}
|
1589 |
+
public function setVendorTypes( $vendorTypes ) {
|
1590 |
+
$this->vendorTypes = $vendorTypes;
|
1591 |
+
}
|
1592 |
+
public function getVendorTypes() {
|
1593 |
+
return $this->vendorTypes;
|
1594 |
+
}
|
1595 |
+
public function setVerticals( $verticals ) {
|
1596 |
+
$this->verticals = $verticals;
|
1597 |
+
}
|
1598 |
+
public function getVerticals() {
|
1599 |
+
return $this->verticals;
|
1600 |
+
}
|
1601 |
+
}
|
1602 |
+
|
1603 |
+
class GoogleGAL_Service_AdExchangeBuyer_PretargetingConfigDimensions extends GoogleGAL_Model {
|
1604 |
+
|
1605 |
+
protected $internal_gapi_mappings = array();
|
1606 |
+
public $height;
|
1607 |
+
public $width;
|
1608 |
+
|
1609 |
+
|
1610 |
+
public function setHeight( $height ) {
|
1611 |
+
$this->height = $height;
|
1612 |
+
}
|
1613 |
+
public function getHeight() {
|
1614 |
+
return $this->height;
|
1615 |
+
}
|
1616 |
+
public function setWidth( $width ) {
|
1617 |
+
$this->width = $width;
|
1618 |
+
}
|
1619 |
+
public function getWidth() {
|
1620 |
+
return $this->width;
|
1621 |
+
}
|
1622 |
+
}
|
1623 |
+
|
1624 |
+
class GoogleGAL_Service_AdExchangeBuyer_PretargetingConfigExcludedPlacements extends GoogleGAL_Model {
|
1625 |
+
|
1626 |
+
protected $internal_gapi_mappings = array();
|
1627 |
+
public $token;
|
1628 |
+
public $type;
|
1629 |
+
|
1630 |
+
|
1631 |
+
public function setToken( $token ) {
|
1632 |
+
$this->token = $token;
|
1633 |
+
}
|
1634 |
+
public function getToken() {
|
1635 |
+
return $this->token;
|
1636 |
+
}
|
1637 |
+
public function setType( $type ) {
|
1638 |
+
$this->type = $type;
|
1639 |
+
}
|
1640 |
+
public function getType() {
|
1641 |
+
return $this->type;
|
1642 |
+
}
|
1643 |
+
}
|
1644 |
+
|
1645 |
+
class GoogleGAL_Service_AdExchangeBuyer_PretargetingConfigList extends GoogleGAL_Collection {
|
1646 |
+
|
1647 |
+
protected $collection_key = 'items';
|
1648 |
+
protected $internal_gapi_mappings = array();
|
1649 |
+
protected $itemsType = 'GoogleGAL_Service_AdExchangeBuyer_PretargetingConfig';
|
1650 |
+
protected $itemsDataType = 'array';
|
1651 |
+
public $kind;
|
1652 |
+
|
1653 |
+
|
1654 |
+
public function setItems( $items ) {
|
1655 |
+
$this->items = $items;
|
1656 |
+
}
|
1657 |
+
public function getItems() {
|
1658 |
+
return $this->items;
|
1659 |
+
}
|
1660 |
+
public function setKind( $kind ) {
|
1661 |
+
$this->kind = $kind;
|
1662 |
+
}
|
1663 |
+
public function getKind() {
|
1664 |
+
return $this->kind;
|
1665 |
+
}
|
1666 |
+
}
|
1667 |
+
|
1668 |
+
class GoogleGAL_Service_AdExchangeBuyer_PretargetingConfigPlacements extends GoogleGAL_Model {
|
1669 |
+
|
1670 |
+
protected $internal_gapi_mappings = array();
|
1671 |
+
public $token;
|
1672 |
+
public $type;
|
1673 |
+
|
1674 |
+
|
1675 |
+
public function setToken( $token ) {
|
1676 |
+
$this->token = $token;
|
1677 |
+
}
|
1678 |
+
public function getToken() {
|
1679 |
+
return $this->token;
|
1680 |
+
}
|
1681 |
+
public function setType( $type ) {
|
1682 |
+
$this->type = $type;
|
1683 |
+
}
|
1684 |
+
public function getType() {
|
1685 |
+
return $this->type;
|
1686 |
+
}
|
1687 |
+
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
core/Google/Service/AdExchangeSeller.php
CHANGED
@@ -1,1712 +1,1544 @@
|
|
1 |
-
<?php
|
2 |
-
/*
|
3 |
-
* Copyright 2010 Google Inc.
|
4 |
-
*
|
5 |
-
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
|
6 |
-
* use this file except in compliance with the License. You may obtain a copy of
|
7 |
-
* the License at
|
8 |
-
*
|
9 |
-
* https://www.apache.org/licenses/LICENSE-2.0
|
10 |
-
*
|
11 |
-
* Unless required by applicable law or agreed to in writing, software
|
12 |
-
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
13 |
-
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
14 |
-
* License for the specific language governing permissions and limitations under
|
15 |
-
* the License.
|
16 |
-
*/
|
17 |
-
|
18 |
-
/**
|
19 |
-
* Service definition for AdExchangeSeller (v2.0).
|
20 |
-
*
|
21 |
-
* <p>
|
22 |
-
* Gives Ad Exchange seller users access to their inventory and the ability to
|
23 |
-
* generate reports</p>
|
24 |
-
*
|
25 |
-
* <p>
|
26 |
-
* For more information about this service, see the API
|
27 |
-
* <a href="https://developers.google.com/ad-exchange/seller-rest/" target="_blank">Documentation</a>
|
28 |
-
* </p>
|
29 |
-
*
|
30 |
-
* @author Google, Inc.
|
31 |
-
*/
|
32 |
-
class GoogleGAL_Service_AdExchangeSeller extends GoogleGAL_Service
|
33 |
-
|
34 |
-
|
35 |
-
|
36 |
-
|
37 |
-
|
38 |
-
|
39 |
-
|
40 |
-
|
41 |
-
|
42 |
-
|
43 |
-
|
44 |
-
|
45 |
-
|
46 |
-
|
47 |
-
|
48 |
-
|
49 |
-
|
50 |
-
|
51 |
-
|
52 |
-
|
53 |
-
|
54 |
-
|
55 |
-
|
56 |
-
|
57 |
-
|
58 |
-
|
59 |
-
|
60 |
-
|
61 |
-
|
62 |
-
|
63 |
-
|
64 |
-
|
65 |
-
|
66 |
-
|
67 |
-
|
68 |
-
|
69 |
-
|
70 |
-
|
71 |
-
|
72 |
-
|
73 |
-
|
74 |
-
|
75 |
-
|
76 |
-
|
77 |
-
|
78 |
-
|
79 |
-
|
80 |
-
|
81 |
-
|
82 |
-
|
83 |
-
|
84 |
-
|
85 |
-
|
86 |
-
|
87 |
-
|
88 |
-
|
89 |
-
|
90 |
-
|
91 |
-
|
92 |
-
|
93 |
-
|
94 |
-
|
95 |
-
|
96 |
-
|
97 |
-
|
98 |
-
|
99 |
-
|
100 |
-
|
101 |
-
|
102 |
-
|
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 |
-
|
134 |
-
|
135 |
-
|
136 |
-
|
137 |
-
|
138 |
-
|
139 |
-
|
140 |
-
|
141 |
-
|
142 |
-
|
143 |
-
|
144 |
-
|
145 |
-
|
146 |
-
|
147 |
-
|
148 |
-
|
149 |
-
|
150 |
-
|
151 |
-
|
152 |
-
|
153 |
-
|
154 |
-
|
155 |
-
|
156 |
-
|
157 |
-
|
158 |
-
|
159 |
-
|
160 |
-
|
161 |
-
|
162 |
-
|
163 |
-
|
164 |
-
|
165 |
-
|
166 |
-
|
167 |
-
|
168 |
-
|
169 |
-
|
170 |
-
|
171 |
-
|
172 |
-
|
173 |
-
|
174 |
-
|
175 |
-
|
176 |
-
|
177 |
-
|
178 |
-
|
179 |
-
|
180 |
-
|
181 |
-
|
182 |
-
|
183 |
-
|
184 |
-
|
185 |
-
|
186 |
-
|
187 |
-
|
188 |
-
|
189 |
-
|
190 |
-
|
191 |
-
|
192 |
-
|
193 |
-
|
194 |
-
|
195 |
-
|
196 |
-
|
197 |
-
|
198 |
-
|
199 |
-
|
200 |
-
|
201 |
-
|
202 |
-
|
203 |
-
|
204 |
-
|
205 |
-
|
206 |
-
|
207 |
-
|
208 |
-
|
209 |
-
|
210 |
-
|
211 |
-
|
212 |
-
|
213 |
-
|
214 |
-
|
215 |
-
|
216 |
-
|
217 |
-
|
218 |
-
|
219 |
-
|
220 |
-
|
221 |
-
|
222 |
-
|
223 |
-
|
224 |
-
|
225 |
-
|
226 |
-
|
227 |
-
|
228 |
-
|
229 |
-
|
230 |
-
|
231 |
-
|
232 |
-
|
233 |
-
|
234 |
-
|
235 |
-
|
236 |
-
|
237 |
-
|
238 |
-
|
239 |
-
|
240 |
-
|
241 |
-
|
242 |
-
|
243 |
-
|
244 |
-
|
245 |
-
|
246 |
-
|
247 |
-
|
248 |
-
|
249 |
-
|
250 |
-
|
251 |
-
|
252 |
-
|
253 |
-
|
254 |
-
|
255 |
-
|
256 |
-
|
257 |
-
|
258 |
-
|
259 |
-
|
260 |
-
|
261 |
-
|
262 |
-
|
263 |
-
|
264 |
-
|
265 |
-
|
266 |
-
|
267 |
-
|
268 |
-
|
269 |
-
|
270 |
-
|
271 |
-
|
272 |
-
|
273 |
-
|
274 |
-
|
275 |
-
|
276 |
-
|
277 |
-
|
278 |
-
|
279 |
-
|
280 |
-
|
281 |
-
|
282 |
-
|
283 |
-
|
284 |
-
|
285 |
-
|
286 |
-
|
287 |
-
|
288 |
-
|
289 |
-
|
290 |
-
|
291 |
-
|
292 |
-
|
293 |
-
|
294 |
-
|
295 |
-
|
296 |
-
|
297 |
-
|
298 |
-
|
299 |
-
|
300 |
-
|
301 |
-
|
302 |
-
|
303 |
-
|
304 |
-
|
305 |
-
|
306 |
-
|
307 |
-
|
308 |
-
|
309 |
-
|
310 |
-
|
311 |
-
|
312 |
-
|
313 |
-
|
314 |
-
|
315 |
-
|
316 |
-
|
317 |
-
|
318 |
-
|
319 |
-
|
320 |
-
|
321 |
-
|
322 |
-
|
323 |
-
|
324 |
-
|
325 |
-
|
326 |
-
|
327 |
-
|
328 |
-
|
329 |
-
|
330 |
-
|
331 |
-
|
332 |
-
|
333 |
-
|
334 |
-
|
335 |
-
|
336 |
-
|
337 |
-
|
338 |
-
|
339 |
-
|
340 |
-
|
341 |
-
|
342 |
-
|
343 |
-
|
344 |
-
|
345 |
-
|
346 |
-
|
347 |
-
|
348 |
-
|
349 |
-
|
350 |
-
|
351 |
-
|
352 |
-
|
353 |
-
|
354 |
-
|
355 |
-
|
356 |
-
|
357 |
-
|
358 |
-
|
359 |
-
|
360 |
-
|
361 |
-
|
362 |
-
|
363 |
-
|
364 |
-
|
365 |
-
|
366 |
-
|
367 |
-
|
368 |
-
|
369 |
-
|
370 |
-
|
371 |
-
|
372 |
-
|
373 |
-
|
374 |
-
|
375 |
-
|
376 |
-
|
377 |
-
|
378 |
-
|
379 |
-
|
380 |
-
|
381 |
-
|
382 |
-
|
383 |
-
|
384 |
-
|
385 |
-
|
386 |
-
|
387 |
-
|
388 |
-
|
389 |
-
|
390 |
-
|
391 |
-
|
392 |
-
|
393 |
-
|
394 |
-
|
395 |
-
|
396 |
-
|
397 |
-
|
398 |
-
|
399 |
-
|
400 |
-
|
401 |
-
|
402 |
-
|
403 |
-
|
404 |
-
|
405 |
-
|
406 |
-
|
407 |
-
|
408 |
-
|
409 |
-
|
410 |
-
|
411 |
-
|
412 |
-
|
413 |
-
|
414 |
-
|
415 |
-
|
416 |
-
|
417 |
-
|
418 |
-
|
419 |
-
|
420 |
-
|
421 |
-
|
422 |
-
|
423 |
-
|
424 |
-
|
425 |
-
|
426 |
-
|
427 |
-
|
428 |
-
|
429 |
-
|
430 |
-
|
431 |
-
|
432 |
-
|
433 |
-
|
434 |
-
|
435 |
-
|
436 |
-
*
|
437 |
-
*
|
438 |
-
*
|
439 |
-
|
440 |
-
|
441 |
-
|
442 |
-
|
443 |
-
|
444 |
-
|
445 |
-
|
446 |
-
|
447 |
-
|
448 |
-
|
449 |
-
|
450 |
-
|
451 |
-
|
452 |
-
|
453 |
-
|
454 |
-
|
455 |
-
|
456 |
-
|
457 |
-
|
458 |
-
|
459 |
-
|
460 |
-
|
461 |
-
|
462 |
-
|
463 |
-
|
464 |
-
|
465 |
-
|
466 |
-
|
467 |
-
|
468 |
-
|
469 |
-
|
470 |
-
|
471 |
-
|
472 |
-
|
473 |
-
|
474 |
-
|
475 |
-
|
476 |
-
|
477 |
-
}
|
478 |
-
|
479 |
-
|
480 |
-
|
481 |
-
*
|
482 |
-
*
|
483 |
-
*
|
484 |
-
* $
|
485 |
-
*
|
486 |
-
|
487 |
-
|
488 |
-
{
|
489 |
-
|
490 |
-
|
491 |
-
|
492 |
-
|
493 |
-
|
494 |
-
|
495 |
-
|
496 |
-
|
497 |
-
|
498 |
-
|
499 |
-
|
500 |
-
|
501 |
-
|
502 |
-
|
503 |
-
|
504 |
-
|
505 |
-
|
506 |
-
|
507 |
-
|
508 |
-
|
509 |
-
|
510 |
-
}
|
511 |
-
/**
|
512 |
-
* The "alerts" collection of methods.
|
513 |
-
* Typical usage is:
|
514 |
-
* <code>
|
515 |
-
* $adexchangesellerService = new GoogleGAL_Service_AdExchangeSeller(...);
|
516 |
-
* $alerts = $adexchangesellerService->alerts;
|
517 |
-
* </code>
|
518 |
-
*/
|
519 |
-
class GoogleGAL_Service_AdExchangeSeller_AccountsAlerts_Resource extends GoogleGAL_Service_Resource
|
520 |
-
|
521 |
-
|
522 |
-
|
523 |
-
|
524 |
-
|
525 |
-
|
526 |
-
|
527 |
-
|
528 |
-
|
529 |
-
|
530 |
-
|
531 |
-
|
532 |
-
|
533 |
-
|
534 |
-
|
535 |
-
|
536 |
-
|
537 |
-
|
538 |
-
|
539 |
-
|
540 |
-
|
541 |
-
*
|
542 |
-
*
|
543 |
-
*
|
544 |
-
* $
|
545 |
-
*
|
546 |
-
|
547 |
-
|
548 |
-
|
549 |
-
|
550 |
-
|
551 |
-
|
552 |
-
|
553 |
-
|
554 |
-
|
555 |
-
|
556 |
-
|
557 |
-
|
558 |
-
|
559 |
-
|
560 |
-
|
561 |
-
|
562 |
-
|
563 |
-
|
564 |
-
|
565 |
-
|
566 |
-
|
567 |
-
|
568 |
-
|
569 |
-
|
570 |
-
|
571 |
-
|
572 |
-
|
573 |
-
|
574 |
-
|
575 |
-
|
576 |
-
|
577 |
-
|
578 |
-
|
579 |
-
|
580 |
-
|
581 |
-
|
582 |
-
|
583 |
-
|
584 |
-
|
585 |
-
|
586 |
-
|
587 |
-
|
588 |
-
|
589 |
-
|
590 |
-
|
591 |
-
|
592 |
-
|
593 |
-
|
594 |
-
|
595 |
-
*
|
596 |
-
*
|
597 |
-
|
598 |
-
|
599 |
-
|
600 |
-
|
601 |
-
|
602 |
-
|
603 |
-
|
604 |
-
|
605 |
-
|
606 |
-
|
607 |
-
*
|
608 |
-
*
|
609 |
-
|
610 |
-
|
611 |
-
|
612 |
-
|
613 |
-
|
614 |
-
|
615 |
-
|
616 |
-
|
617 |
-
|
618 |
-
|
619 |
-
|
620 |
-
|
621 |
-
|
622 |
-
|
623 |
-
|
624 |
-
|
625 |
-
|
626 |
-
|
627 |
-
|
628 |
-
|
629 |
-
|
630 |
-
|
631 |
-
|
632 |
-
*
|
633 |
-
*
|
634 |
-
*
|
635 |
-
|
636 |
-
|
637 |
-
|
638 |
-
|
639 |
-
|
640 |
-
|
641 |
-
|
642 |
-
|
643 |
-
|
644 |
-
|
645 |
-
|
646 |
-
|
647 |
-
|
648 |
-
|
649 |
-
|
650 |
-
|
651 |
-
|
652 |
-
|
653 |
-
|
654 |
-
|
655 |
-
|
656 |
-
|
657 |
-
*
|
658 |
-
*
|
659 |
-
*
|
660 |
-
*
|
661 |
-
|
662 |
-
|
663 |
-
|
664 |
-
|
665 |
-
|
666 |
-
|
667 |
-
|
668 |
-
|
669 |
-
|
670 |
-
|
671 |
-
|
672 |
-
|
673 |
-
|
674 |
-
|
675 |
-
|
676 |
-
|
677 |
-
|
678 |
-
|
679 |
-
|
680 |
-
|
681 |
-
|
682 |
-
|
683 |
-
|
684 |
-
|
685 |
-
|
686 |
-
|
687 |
-
|
688 |
-
|
689 |
-
|
690 |
-
|
691 |
-
|
692 |
-
|
693 |
-
|
694 |
-
|
695 |
-
|
696 |
-
|
697 |
-
|
698 |
-
|
699 |
-
|
700 |
-
*
|
701 |
-
*
|
702 |
-
*
|
703 |
-
|
704 |
-
|
705 |
-
|
706 |
-
|
707 |
-
|
708 |
-
|
709 |
-
|
710 |
-
|
711 |
-
|
712 |
-
|
713 |
-
|
714 |
-
|
715 |
-
|
716 |
-
|
717 |
-
|
718 |
-
|
719 |
-
|
720 |
-
|
721 |
-
|
722 |
-
|
723 |
-
|
724 |
-
|
725 |
-
|
726 |
-
|
727 |
-
|
728 |
-
|
729 |
-
|
730 |
-
|
731 |
-
|
732 |
-
|
733 |
-
|
734 |
-
|
735 |
-
|
736 |
-
|
737 |
-
|
738 |
-
|
739 |
-
|
740 |
-
|
741 |
-
|
742 |
-
|
743 |
-
|
744 |
-
|
745 |
-
|
746 |
-
|
747 |
-
|
748 |
-
|
749 |
-
|
750 |
-
|
751 |
-
|
752 |
-
|
753 |
-
|
754 |
-
|
755 |
-
|
756 |
-
|
757 |
-
|
758 |
-
|
759 |
-
|
760 |
-
|
761 |
-
|
762 |
-
|
763 |
-
|
764 |
-
|
765 |
-
|
766 |
-
|
767 |
-
|
768 |
-
|
769 |
-
|
770 |
-
|
771 |
-
|
772 |
-
|
773 |
-
|
774 |
-
|
775 |
-
|
776 |
-
|
777 |
-
|
778 |
-
|
779 |
-
|
780 |
-
|
781 |
-
|
782 |
-
|
783 |
-
|
784 |
-
|
785 |
-
|
786 |
-
|
787 |
-
|
788 |
-
|
789 |
-
|
790 |
-
|
791 |
-
|
792 |
-
|
793 |
-
|
794 |
-
|
795 |
-
|
796 |
-
|
797 |
-
|
798 |
-
|
799 |
-
|
800 |
-
|
801 |
-
|
802 |
-
|
803 |
-
|
804 |
-
|
805 |
-
|
806 |
-
|
807 |
-
|
808 |
-
|
809 |
-
|
810 |
-
|
811 |
-
|
812 |
-
|
813 |
-
|
814 |
-
|
815 |
-
|
816 |
-
|
817 |
-
|
818 |
-
|
819 |
-
|
820 |
-
|
821 |
-
|
822 |
-
|
823 |
-
|
824 |
-
|
825 |
-
|
826 |
-
|
827 |
-
|
828 |
-
|
829 |
-
|
830 |
-
|
831 |
-
|
832 |
-
|
833 |
-
|
834 |
-
|
835 |
-
|
836 |
-
|
837 |
-
|
838 |
-
|
839 |
-
|
840 |
-
|
841 |
-
|
842 |
-
|
843 |
-
|
844 |
-
|
845 |
-
|
846 |
-
|
847 |
-
|
848 |
-
|
849 |
-
|
850 |
-
|
851 |
-
|
852 |
-
|
853 |
-
|
854 |
-
|
855 |
-
|
856 |
-
|
857 |
-
|
858 |
-
|
859 |
-
|
860 |
-
|
861 |
-
|
862 |
-
|
863 |
-
|
864 |
-
|
865 |
-
|
866 |
-
|
867 |
-
|
868 |
-
|
869 |
-
|
870 |
-
|
871 |
-
|
872 |
-
|
873 |
-
|
874 |
-
|
875 |
-
|
876 |
-
|
877 |
-
|
878 |
-
|
879 |
-
|
880 |
-
|
881 |
-
|
882 |
-
|
883 |
-
|
884 |
-
|
885 |
-
|
886 |
-
|
887 |
-
|
888 |
-
|
889 |
-
|
890 |
-
|
891 |
-
|
892 |
-
|
893 |
-
|
894 |
-
|
895 |
-
|
896 |
-
|
897 |
-
|
898 |
-
|
899 |
-
|
900 |
-
|
901 |
-
|
902 |
-
|
903 |
-
|
904 |
-
|
905 |
-
|
906 |
-
|
907 |
-
|
908 |
-
|
909 |
-
|
910 |
-
|
911 |
-
|
912 |
-
|
913 |
-
|
914 |
-
|
915 |
-
|
916 |
-
|
917 |
-
|
918 |
-
|
919 |
-
|
920 |
-
|
921 |
-
|
922 |
-
|
923 |
-
|
924 |
-
|
925 |
-
|
926 |
-
|
927 |
-
|
928 |
-
|
929 |
-
|
930 |
-
|
931 |
-
|
932 |
-
|
933 |
-
|
934 |
-
|
935 |
-
|
936 |
-
|
937 |
-
|
938 |
-
|
939 |
-
|
940 |
-
|
941 |
-
|
942 |
-
|
943 |
-
|
944 |
-
|
945 |
-
|
946 |
-
|
947 |
-
|
948 |
-
|
949 |
-
|
950 |
-
|
951 |
-
|
952 |
-
|
953 |
-
|
954 |
-
|
955 |
-
|
956 |
-
|
957 |
-
|
958 |
-
|
959 |
-
|
960 |
-
|
961 |
-
|
962 |
-
|
963 |
-
}
|
964 |
-
|
965 |
-
|
966 |
-
|
967 |
-
|
968 |
-
|
969 |
-
|
970 |
-
|
971 |
-
|
972 |
-
|
973 |
-
|
974 |
-
|
975 |
-
|
976 |
-
|
977 |
-
|
978 |
-
|
979 |
-
|
980 |
-
|
981 |
-
|
982 |
-
|
983 |
-
|
984 |
-
|
985 |
-
|
986 |
-
|
987 |
-
|
988 |
-
|
989 |
-
|
990 |
-
|
991 |
-
|
992 |
-
|
993 |
-
|
994 |
-
|
995 |
-
|
996 |
-
|
997 |
-
|
998 |
-
|
999 |
-
|
1000 |
-
|
1001 |
-
|
1002 |
-
|
1003 |
-
|
1004 |
-
|
1005 |
-
|
1006 |
-
|
1007 |
-
|
1008 |
-
|
1009 |
-
|
1010 |
-
|
1011 |
-
|
1012 |
-
{
|
1013 |
-
|
1014 |
-
|
1015 |
-
|
1016 |
-
|
1017 |
-
|
1018 |
-
|
1019 |
-
|
1020 |
-
|
1021 |
-
|
1022 |
-
|
1023 |
-
|
1024 |
-
|
1025 |
-
|
1026 |
-
|
1027 |
-
|
1028 |
-
|
1029 |
-
|
1030 |
-
|
1031 |
-
|
1032 |
-
|
1033 |
-
|
1034 |
-
|
1035 |
-
|
1036 |
-
|
1037 |
-
|
1038 |
-
|
1039 |
-
|
1040 |
-
|
1041 |
-
|
1042 |
-
|
1043 |
-
|
1044 |
-
|
1045 |
-
|
1046 |
-
|
1047 |
-
|
1048 |
-
|
1049 |
-
|
1050 |
-
|
1051 |
-
|
1052 |
-
|
1053 |
-
|
1054 |
-
|
1055 |
-
|
1056 |
-
|
1057 |
-
|
1058 |
-
|
1059 |
-
|
1060 |
-
|
1061 |
-
|
1062 |
-
}
|
1063 |
-
|
1064 |
-
|
1065 |
-
|
1066 |
-
|
1067 |
-
|
1068 |
-
|
1069 |
-
|
1070 |
-
|
1071 |
-
|
1072 |
-
|
1073 |
-
|
1074 |
-
|
1075 |
-
|
1076 |
-
|
1077 |
-
|
1078 |
-
|
1079 |
-
|
1080 |
-
|
1081 |
-
|
1082 |
-
|
1083 |
-
|
1084 |
-
|
1085 |
-
|
1086 |
-
|
1087 |
-
|
1088 |
-
|
1089 |
-
|
1090 |
-
}
|
1091 |
-
|
1092 |
-
class
|
1093 |
-
|
1094 |
-
|
1095 |
-
|
1096 |
-
|
1097 |
-
|
1098 |
-
|
1099 |
-
|
1100 |
-
|
1101 |
-
|
1102 |
-
|
1103 |
-
|
1104 |
-
|
1105 |
-
|
1106 |
-
|
1107 |
-
|
1108 |
-
|
1109 |
-
|
1110 |
-
|
1111 |
-
|
1112 |
-
|
1113 |
-
|
1114 |
-
|
1115 |
-
|
1116 |
-
|
1117 |
-
|
1118 |
-
|
1119 |
-
|
1120 |
-
|
1121 |
-
|
1122 |
-
|
1123 |
-
|
1124 |
-
|
1125 |
-
|
1126 |
-
|
1127 |
-
|
1128 |
-
|
1129 |
-
|
1130 |
-
|
1131 |
-
|
1132 |
-
|
1133 |
-
|
1134 |
-
|
1135 |
-
|
1136 |
-
|
1137 |
-
|
1138 |
-
|
1139 |
-
|
1140 |
-
|
1141 |
-
|
1142 |
-
|
1143 |
-
|
1144 |
-
|
1145 |
-
|
1146 |
-
|
1147 |
-
{
|
1148 |
-
|
1149 |
-
|
1150 |
-
|
1151 |
-
|
1152 |
-
|
1153 |
-
|
1154 |
-
|
1155 |
-
|
1156 |
-
|
1157 |
-
|
1158 |
-
|
1159 |
-
|
1160 |
-
|
1161 |
-
|
1162 |
-
|
1163 |
-
|
1164 |
-
|
1165 |
-
|
1166 |
-
|
1167 |
-
|
1168 |
-
|
1169 |
-
|
1170 |
-
|
1171 |
-
|
1172 |
-
|
1173 |
-
|
1174 |
-
|
1175 |
-
|
1176 |
-
|
1177 |
-
|
1178 |
-
|
1179 |
-
|
1180 |
-
|
1181 |
-
|
1182 |
-
|
1183 |
-
|
1184 |
-
|
1185 |
-
|
1186 |
-
|
1187 |
-
|
1188 |
-
|
1189 |
-
|
1190 |
-
|
1191 |
-
|
1192 |
-
|
1193 |
-
|
1194 |
-
|
1195 |
-
|
1196 |
-
|
1197 |
-
|
1198 |
-
|
1199 |
-
|
1200 |
-
|
1201 |
-
|
1202 |
-
|
1203 |
-
|
1204 |
-
|
1205 |
-
|
1206 |
-
|
1207 |
-
|
1208 |
-
|
1209 |
-
|
1210 |
-
|
1211 |
-
|
1212 |
-
|
1213 |
-
|
1214 |
-
|
1215 |
-
|
1216 |
-
|
1217 |
-
|
1218 |
-
|
1219 |
-
|
1220 |
-
|
1221 |
-
|
1222 |
-
|
1223 |
-
|
1224 |
-
|
1225 |
-
|
1226 |
-
|
1227 |
-
|
1228 |
-
|
1229 |
-
|
1230 |
-
|
1231 |
-
|
1232 |
-
|
1233 |
-
|
1234 |
-
|
1235 |
-
|
1236 |
-
|
1237 |
-
|
1238 |
-
|
1239 |
-
|
1240 |
-
|
1241 |
-
|
1242 |
-
|
1243 |
-
|
1244 |
-
|
1245 |
-
|
1246 |
-
|
1247 |
-
|
1248 |
-
|
1249 |
-
|
1250 |
-
|
1251 |
-
|
1252 |
-
|
1253 |
-
|
1254 |
-
|
1255 |
-
|
1256 |
-
|
1257 |
-
|
1258 |
-
|
1259 |
-
|
1260 |
-
|
1261 |
-
|
1262 |
-
|
1263 |
-
|
1264 |
-
|
1265 |
-
{
|
1266 |
-
|
1267 |
-
|
1268 |
-
|
1269 |
-
|
1270 |
-
|
1271 |
-
|
1272 |
-
|
1273 |
-
|
1274 |
-
|
1275 |
-
|
1276 |
-
|
1277 |
-
|
1278 |
-
|
1279 |
-
|
1280 |
-
|
1281 |
-
|
1282 |
-
|
1283 |
-
|
1284 |
-
|
1285 |
-
|
1286 |
-
|
1287 |
-
|
1288 |
-
|
1289 |
-
|
1290 |
-
|
1291 |
-
|
1292 |
-
|
1293 |
-
|
1294 |
-
|
1295 |
-
|
1296 |
-
|
1297 |
-
|
1298 |
-
|
1299 |
-
|
1300 |
-
|
1301 |
-
|
1302 |
-
|
1303 |
-
|
1304 |
-
|
1305 |
-
|
1306 |
-
|
1307 |
-
|
1308 |
-
|
1309 |
-
|
1310 |
-
|
1311 |
-
|
1312 |
-
|
1313 |
-
|
1314 |
-
|
1315 |
-
|
1316 |
-
|
1317 |
-
|
1318 |
-
|
1319 |
-
|
1320 |
-
|
1321 |
-
|
1322 |
-
|
1323 |
-
|
1324 |
-
|
1325 |
-
|
1326 |
-
|
1327 |
-
|
1328 |
-
|
1329 |
-
|
1330 |
-
|
1331 |
-
|
1332 |
-
|
1333 |
-
|
1334 |
-
|
1335 |
-
|
1336 |
-
|
1337 |
-
|
1338 |
-
|
1339 |
-
|
1340 |
-
|
1341 |
-
|
1342 |
-
|
1343 |
-
|
1344 |
-
|
1345 |
-
{
|
1346 |
-
|
1347 |
-
|
1348 |
-
|
1349 |
-
|
1350 |
-
|
1351 |
-
|
1352 |
-
|
1353 |
-
|
1354 |
-
|
1355 |
-
|
1356 |
-
|
1357 |
-
|
1358 |
-
|
1359 |
-
|
1360 |
-
|
1361 |
-
|
1362 |
-
|
1363 |
-
|
1364 |
-
|
1365 |
-
|
1366 |
-
|
1367 |
-
|
1368 |
-
|
1369 |
-
|
1370 |
-
|
1371 |
-
|
1372 |
-
|
1373 |
-
|
1374 |
-
|
1375 |
-
|
1376 |
-
|
1377 |
-
|
1378 |
-
|
1379 |
-
|
1380 |
-
|
1381 |
-
|
1382 |
-
|
1383 |
-
|
1384 |
-
|
1385 |
-
|
1386 |
-
|
1387 |
-
|
1388 |
-
|
1389 |
-
|
1390 |
-
|
1391 |
-
|
1392 |
-
|
1393 |
-
|
1394 |
-
|
1395 |
-
|
1396 |
-
|
1397 |
-
|
1398 |
-
|
1399 |
-
|
1400 |
-
|
1401 |
-
|
1402 |
-
|
1403 |
-
|
1404 |
-
|
1405 |
-
|
1406 |
-
|
1407 |
-
|
1408 |
-
|
1409 |
-
|
1410 |
-
|
1411 |
-
|
1412 |
-
|
1413 |
-
|
1414 |
-
|
1415 |
-
|
1416 |
-
|
1417 |
-
|
1418 |
-
|
1419 |
-
|
1420 |
-
|
1421 |
-
|
1422 |
-
|
1423 |
-
|
1424 |
-
|
1425 |
-
|
1426 |
-
|
1427 |
-
|
1428 |
-
|
1429 |
-
|
1430 |
-
|
1431 |
-
|
1432 |
-
|
1433 |
-
|
1434 |
-
|
1435 |
-
|
1436 |
-
|
1437 |
-
|
1438 |
-
|
1439 |
-
|
1440 |
-
|
1441 |
-
|
1442 |
-
|
1443 |
-
|
1444 |
-
|
1445 |
-
|
1446 |
-
|
1447 |
-
|
1448 |
-
|
1449 |
-
|
1450 |
-
|
1451 |
-
|
1452 |
-
|
1453 |
-
|
1454 |
-
|
1455 |
-
|
1456 |
-
|
1457 |
-
|
1458 |
-
|
1459 |
-
|
1460 |
-
|
1461 |
-
|
1462 |
-
|
1463 |
-
|
1464 |
-
|
1465 |
-
|
1466 |
-
|
1467 |
-
|
1468 |
-
|
1469 |
-
|
1470 |
-
|
1471 |
-
|
1472 |
-
|
1473 |
-
|
1474 |
-
|
1475 |
-
|
1476 |
-
|
1477 |
-
|
1478 |
-
}
|
1479 |
-
|
1480 |
-
|
1481 |
-
{
|
1482 |
-
|
1483 |
-
|
1484 |
-
|
1485 |
-
|
1486 |
-
|
1487 |
-
|
1488 |
-
|
1489 |
-
|
1490 |
-
|
1491 |
-
|
1492 |
-
|
1493 |
-
|
1494 |
-
|
1495 |
-
|
1496 |
-
|
1497 |
-
|
1498 |
-
|
1499 |
-
|
1500 |
-
|
1501 |
-
|
1502 |
-
|
1503 |
-
|
1504 |
-
|
1505 |
-
|
1506 |
-
|
1507 |
-
|
1508 |
-
|
1509 |
-
|
1510 |
-
|
1511 |
-
|
1512 |
-
|
1513 |
-
|
1514 |
-
|
1515 |
-
|
1516 |
-
|
1517 |
-
|
1518 |
-
|
1519 |
-
|
1520 |
-
|
1521 |
-
|
1522 |
-
|
1523 |
-
|
1524 |
-
|
1525 |
-
|
1526 |
-
|
1527 |
-
|
1528 |
-
|
1529 |
-
|
1530 |
-
|
1531 |
-
|
1532 |
-
|
1533 |
-
|
1534 |
-
|
1535 |
-
|
1536 |
-
|
1537 |
-
|
1538 |
-
|
1539 |
-
|
1540 |
-
|
1541 |
-
|
1542 |
-
|
1543 |
-
|
1544 |
-
|
1545 |
-
}
|
1546 |
-
public function getSupportedProducts()
|
1547 |
-
{
|
1548 |
-
return $this->supportedProducts;
|
1549 |
-
}
|
1550 |
-
}
|
1551 |
-
|
1552 |
-
class GoogleGAL_Service_AdExchangeSeller_SavedReport extends GoogleGAL_Model
|
1553 |
-
{
|
1554 |
-
protected $internal_gapi_mappings = array(
|
1555 |
-
);
|
1556 |
-
public $id;
|
1557 |
-
public $kind;
|
1558 |
-
public $name;
|
1559 |
-
|
1560 |
-
|
1561 |
-
public function setId($id)
|
1562 |
-
{
|
1563 |
-
$this->id = $id;
|
1564 |
-
}
|
1565 |
-
public function getId()
|
1566 |
-
{
|
1567 |
-
return $this->id;
|
1568 |
-
}
|
1569 |
-
public function setKind($kind)
|
1570 |
-
{
|
1571 |
-
$this->kind = $kind;
|
1572 |
-
}
|
1573 |
-
public function getKind()
|
1574 |
-
{
|
1575 |
-
return $this->kind;
|
1576 |
-
}
|
1577 |
-
public function setName($name)
|
1578 |
-
{
|
1579 |
-
$this->name = $name;
|
1580 |
-
}
|
1581 |
-
public function getName()
|
1582 |
-
{
|
1583 |
-
return $this->name;
|
1584 |
-
}
|
1585 |
-
}
|
1586 |
-
|
1587 |
-
class GoogleGAL_Service_AdExchangeSeller_SavedReports extends GoogleGAL_Collection
|
1588 |
-
{
|
1589 |
-
protected $collection_key = 'items';
|
1590 |
-
protected $internal_gapi_mappings = array(
|
1591 |
-
);
|
1592 |
-
public $etag;
|
1593 |
-
protected $itemsType = 'GoogleGAL_Service_AdExchangeSeller_SavedReport';
|
1594 |
-
protected $itemsDataType = 'array';
|
1595 |
-
public $kind;
|
1596 |
-
public $nextPageToken;
|
1597 |
-
|
1598 |
-
|
1599 |
-
public function setEtag($etag)
|
1600 |
-
{
|
1601 |
-
$this->etag = $etag;
|
1602 |
-
}
|
1603 |
-
public function getEtag()
|
1604 |
-
{
|
1605 |
-
return $this->etag;
|
1606 |
-
}
|
1607 |
-
public function setItems($items)
|
1608 |
-
{
|
1609 |
-
$this->items = $items;
|
1610 |
-
}
|
1611 |
-
public function getItems()
|
1612 |
-
{
|
1613 |
-
return $this->items;
|
1614 |
-
}
|
1615 |
-
public function setKind($kind)
|
1616 |
-
{
|
1617 |
-
$this->kind = $kind;
|
1618 |
-
}
|
1619 |
-
public function getKind()
|
1620 |
-
{
|
1621 |
-
return $this->kind;
|
1622 |
-
}
|
1623 |
-
public function setNextPageToken($nextPageToken)
|
1624 |
-
{
|
1625 |
-
$this->nextPageToken = $nextPageToken;
|
1626 |
-
}
|
1627 |
-
public function getNextPageToken()
|
1628 |
-
{
|
1629 |
-
return $this->nextPageToken;
|
1630 |
-
}
|
1631 |
-
}
|
1632 |
-
|
1633 |
-
class GoogleGAL_Service_AdExchangeSeller_UrlChannel extends GoogleGAL_Model
|
1634 |
-
{
|
1635 |
-
protected $internal_gapi_mappings = array(
|
1636 |
-
);
|
1637 |
-
public $id;
|
1638 |
-
public $kind;
|
1639 |
-
public $urlPattern;
|
1640 |
-
|
1641 |
-
|
1642 |
-
public function setId($id)
|
1643 |
-
{
|
1644 |
-
$this->id = $id;
|
1645 |
-
}
|
1646 |
-
public function getId()
|
1647 |
-
{
|
1648 |
-
return $this->id;
|
1649 |
-
}
|
1650 |
-
public function setKind($kind)
|
1651 |
-
{
|
1652 |
-
$this->kind = $kind;
|
1653 |
-
}
|
1654 |
-
public function getKind()
|
1655 |
-
{
|
1656 |
-
return $this->kind;
|
1657 |
-
}
|
1658 |
-
public function setUrlPattern($urlPattern)
|
1659 |
-
{
|
1660 |
-
$this->urlPattern = $urlPattern;
|
1661 |
-
}
|
1662 |
-
public function getUrlPattern()
|
1663 |
-
{
|
1664 |
-
return $this->urlPattern;
|
1665 |
-
}
|
1666 |
-
}
|
1667 |
-
|
1668 |
-
class GoogleGAL_Service_AdExchangeSeller_UrlChannels extends GoogleGAL_Collection
|
1669 |
-
{
|
1670 |
-
protected $collection_key = 'items';
|
1671 |
-
protected $internal_gapi_mappings = array(
|
1672 |
-
);
|
1673 |
-
public $etag;
|
1674 |
-
protected $itemsType = 'GoogleGAL_Service_AdExchangeSeller_UrlChannel';
|
1675 |
-
protected $itemsDataType = 'array';
|
1676 |
-
public $kind;
|
1677 |
-
public $nextPageToken;
|
1678 |
-
|
1679 |
-
|
1680 |
-
public function setEtag($etag)
|
1681 |
-
{
|
1682 |
-
$this->etag = $etag;
|
1683 |
-
}
|
1684 |
-
public function getEtag()
|
1685 |
-
{
|
1686 |
-
return $this->etag;
|
1687 |
-
}
|
1688 |
-
public function setItems($items)
|
1689 |
-
{
|
1690 |
-
$this->items = $items;
|
1691 |
-
}
|
1692 |
-
public function getItems()
|
1693 |
-
{
|
1694 |
-
return $this->items;
|
1695 |
-
}
|
1696 |
-
public function setKind($kind)
|
1697 |
-
{
|
1698 |
-
$this->kind = $kind;
|
1699 |
-
}
|
1700 |
-
public function getKind()
|
1701 |
-
{
|
1702 |
-
return $this->kind;
|
1703 |
-
}
|
1704 |
-
public function setNextPageToken($nextPageToken)
|
1705 |
-
{
|
1706 |
-
$this->nextPageToken = $nextPageToken;
|
1707 |
-
}
|
1708 |
-
public function getNextPageToken()
|
1709 |
-
{
|
1710 |
-
return $this->nextPageToken;
|
1711 |
-
}
|
1712 |
-
}
|
1 |
+
<?php
|
2 |
+
/*
|
3 |
+
* Copyright 2010 Google Inc.
|
4 |
+
*
|
5 |
+
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
|
6 |
+
* use this file except in compliance with the License. You may obtain a copy of
|
7 |
+
* the License at
|
8 |
+
*
|
9 |
+
* https://www.apache.org/licenses/LICENSE-2.0
|
10 |
+
*
|
11 |
+
* Unless required by applicable law or agreed to in writing, software
|
12 |
+
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
13 |
+
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
14 |
+
* License for the specific language governing permissions and limitations under
|
15 |
+
* the License.
|
16 |
+
*/
|
17 |
+
|
18 |
+
/**
|
19 |
+
* Service definition for AdExchangeSeller (v2.0).
|
20 |
+
*
|
21 |
+
* <p>
|
22 |
+
* Gives Ad Exchange seller users access to their inventory and the ability to
|
23 |
+
* generate reports</p>
|
24 |
+
*
|
25 |
+
* <p>
|
26 |
+
* For more information about this service, see the API
|
27 |
+
* <a href="https://developers.google.com/ad-exchange/seller-rest/" target="_blank">Documentation</a>
|
28 |
+
* </p>
|
29 |
+
*
|
30 |
+
* @author Google, Inc.
|
31 |
+
*/
|
32 |
+
class GoogleGAL_Service_AdExchangeSeller extends GoogleGAL_Service {
|
33 |
+
|
34 |
+
/** View and manage your Ad Exchange data. */
|
35 |
+
const ADEXCHANGE_SELLER =
|
36 |
+
'https://www.googleapis.com/auth/adexchange.seller';
|
37 |
+
/** View your Ad Exchange data. */
|
38 |
+
const ADEXCHANGE_SELLER_READONLY =
|
39 |
+
'https://www.googleapis.com/auth/adexchange.seller.readonly';
|
40 |
+
|
41 |
+
public $accounts;
|
42 |
+
public $accounts_adclients;
|
43 |
+
public $accounts_alerts;
|
44 |
+
public $accounts_customchannels;
|
45 |
+
public $accounts_metadata_dimensions;
|
46 |
+
public $accounts_metadata_metrics;
|
47 |
+
public $accounts_preferreddeals;
|
48 |
+
public $accounts_reports;
|
49 |
+
public $accounts_reports_saved;
|
50 |
+
public $accounts_urlchannels;
|
51 |
+
|
52 |
+
|
53 |
+
/**
|
54 |
+
* Constructs the internal representation of the AdExchangeSeller service.
|
55 |
+
*
|
56 |
+
* @param GoogleGAL_Client $client
|
57 |
+
*/
|
58 |
+
public function __construct( GoogleGAL_Client $client ) {
|
59 |
+
parent::__construct( $client );
|
60 |
+
$this->servicePath = 'adexchangeseller/v2.0/';
|
61 |
+
$this->version = 'v2.0';
|
62 |
+
$this->serviceName = 'adexchangeseller';
|
63 |
+
|
64 |
+
$this->accounts = new GoogleGAL_Service_AdExchangeSeller_Accounts_Resource(
|
65 |
+
$this,
|
66 |
+
$this->serviceName,
|
67 |
+
'accounts',
|
68 |
+
array(
|
69 |
+
'methods' => array(
|
70 |
+
'get' => array(
|
71 |
+
'path' => 'accounts/{accountId}',
|
72 |
+
'httpMethod' => 'GET',
|
73 |
+
'parameters' => array(
|
74 |
+
'accountId' => array(
|
75 |
+
'location' => 'path',
|
76 |
+
'type' => 'string',
|
77 |
+
'required' => true,
|
78 |
+
),
|
79 |
+
),
|
80 |
+
),
|
81 |
+
'list' => array(
|
82 |
+
'path' => 'accounts',
|
83 |
+
'httpMethod' => 'GET',
|
84 |
+
'parameters' => array(
|
85 |
+
'pageToken' => array(
|
86 |
+
'location' => 'query',
|
87 |
+
'type' => 'string',
|
88 |
+
),
|
89 |
+
'maxResults' => array(
|
90 |
+
'location' => 'query',
|
91 |
+
'type' => 'integer',
|
92 |
+
),
|
93 |
+
),
|
94 |
+
),
|
95 |
+
),
|
96 |
+
)
|
97 |
+
);
|
98 |
+
$this->accounts_adclients = new GoogleGAL_Service_AdExchangeSeller_AccountsAdclients_Resource(
|
99 |
+
$this,
|
100 |
+
$this->serviceName,
|
101 |
+
'adclients',
|
102 |
+
array(
|
103 |
+
'methods' => array(
|
104 |
+
'list' => array(
|
105 |
+
'path' => 'accounts/{accountId}/adclients',
|
106 |
+
'httpMethod' => 'GET',
|
107 |
+
'parameters' => array(
|
108 |
+
'accountId' => array(
|
109 |
+
'location' => 'path',
|
110 |
+
'type' => 'string',
|
111 |
+
'required' => true,
|
112 |
+
),
|
113 |
+
'pageToken' => array(
|
114 |
+
'location' => 'query',
|
115 |
+
'type' => 'string',
|
116 |
+
),
|
117 |
+
'maxResults' => array(
|
118 |
+
'location' => 'query',
|
119 |
+
'type' => 'integer',
|
120 |
+
),
|
121 |
+
),
|
122 |
+
),
|
123 |
+
),
|
124 |
+
)
|
125 |
+
);
|
126 |
+
$this->accounts_alerts = new GoogleGAL_Service_AdExchangeSeller_AccountsAlerts_Resource(
|
127 |
+
$this,
|
128 |
+
$this->serviceName,
|
129 |
+
'alerts',
|
130 |
+
array(
|
131 |
+
'methods' => array(
|
132 |
+
'list' => array(
|
133 |
+
'path' => 'accounts/{accountId}/alerts',
|
134 |
+
'httpMethod' => 'GET',
|
135 |
+
'parameters' => array(
|
136 |
+
'accountId' => array(
|
137 |
+
'location' => 'path',
|
138 |
+
'type' => 'string',
|
139 |
+
'required' => true,
|
140 |
+
),
|
141 |
+
'locale' => array(
|
142 |
+
'location' => 'query',
|
143 |
+
'type' => 'string',
|
144 |
+
),
|
145 |
+
),
|
146 |
+
),
|
147 |
+
),
|
148 |
+
)
|
149 |
+
);
|
150 |
+
$this->accounts_customchannels = new GoogleGAL_Service_AdExchangeSeller_AccountsCustomchannels_Resource(
|
151 |
+
$this,
|
152 |
+
$this->serviceName,
|
153 |
+
'customchannels',
|
154 |
+
array(
|
155 |
+
'methods' => array(
|
156 |
+
'get' => array(
|
157 |
+
'path' => 'accounts/{accountId}/adclients/{adClientId}/customchannels/{customChannelId}',
|
158 |
+
'httpMethod' => 'GET',
|
159 |
+
'parameters' => array(
|
160 |
+
'accountId' => array(
|
161 |
+
'location' => 'path',
|
162 |
+
'type' => 'string',
|
163 |
+
'required' => true,
|
164 |
+
),
|
165 |
+
'adClientId' => array(
|
166 |
+
'location' => 'path',
|
167 |
+
'type' => 'string',
|
168 |
+
'required' => true,
|
169 |
+
),
|
170 |
+
'customChannelId' => array(
|
171 |
+
'location' => 'path',
|
172 |
+
'type' => 'string',
|
173 |
+
'required' => true,
|
174 |
+
),
|
175 |
+
),
|
176 |
+
),
|
177 |
+
'list' => array(
|
178 |
+
'path' => 'accounts/{accountId}/adclients/{adClientId}/customchannels',
|
179 |
+
'httpMethod' => 'GET',
|
180 |
+
'parameters' => array(
|
181 |
+
'accountId' => array(
|
182 |
+
'location' => 'path',
|
183 |
+
'type' => 'string',
|
184 |
+
'required' => true,
|
185 |
+
),
|
186 |
+
'adClientId' => array(
|
187 |
+
'location' => 'path',
|
188 |
+
'type' => 'string',
|
189 |
+
'required' => true,
|
190 |
+
),
|
191 |
+
'pageToken' => array(
|
192 |
+
'location' => 'query',
|
193 |
+
'type' => 'string',
|
194 |
+
),
|
195 |
+
'maxResults' => array(
|
196 |
+
'location' => 'query',
|
197 |
+
'type' => 'integer',
|
198 |
+
),
|
199 |
+
),
|
200 |
+
),
|
201 |
+
),
|
202 |
+
)
|
203 |
+
);
|
204 |
+
$this->accounts_metadata_dimensions = new GoogleGAL_Service_AdExchangeSeller_AccountsMetadataDimensions_Resource(
|
205 |
+
$this,
|
206 |
+
$this->serviceName,
|
207 |
+
'dimensions',
|
208 |
+
array(
|
209 |
+
'methods' => array(
|
210 |
+
'list' => array(
|
211 |
+
'path' => 'accounts/{accountId}/metadata/dimensions',
|
212 |
+
'httpMethod' => 'GET',
|
213 |
+
'parameters' => array(
|
214 |
+
'accountId' => array(
|
215 |
+
'location' => 'path',
|
216 |
+
'type' => 'string',
|
217 |
+
'required' => true,
|
218 |
+
),
|
219 |
+
),
|
220 |
+
),
|
221 |
+
),
|
222 |
+
)
|
223 |
+
);
|
224 |
+
$this->accounts_metadata_metrics = new GoogleGAL_Service_AdExchangeSeller_AccountsMetadataMetrics_Resource(
|
225 |
+
$this,
|
226 |
+
$this->serviceName,
|
227 |
+
'metrics',
|
228 |
+
array(
|
229 |
+
'methods' => array(
|
230 |
+
'list' => array(
|
231 |
+
'path' => 'accounts/{accountId}/metadata/metrics',
|
232 |
+
'httpMethod' => 'GET',
|
233 |
+
'parameters' => array(
|
234 |
+
'accountId' => array(
|
235 |
+
'location' => 'path',
|
236 |
+
'type' => 'string',
|
237 |
+
'required' => true,
|
238 |
+
),
|
239 |
+
),
|
240 |
+
),
|
241 |
+
),
|
242 |
+
)
|
243 |
+
);
|
244 |
+
$this->accounts_preferreddeals = new GoogleGAL_Service_AdExchangeSeller_AccountsPreferreddeals_Resource(
|
245 |
+
$this,
|
246 |
+
$this->serviceName,
|
247 |
+
'preferreddeals',
|
248 |
+
array(
|
249 |
+
'methods' => array(
|
250 |
+
'get' => array(
|
251 |
+
'path' => 'accounts/{accountId}/preferreddeals/{dealId}',
|
252 |
+
'httpMethod' => 'GET',
|
253 |
+
'parameters' => array(
|
254 |
+
'accountId' => array(
|
255 |
+
'location' => 'path',
|
256 |
+
'type' => 'string',
|
257 |
+
'required' => true,
|
258 |
+
),
|
259 |
+
'dealId' => array(
|
260 |
+
'location' => 'path',
|
261 |
+
'type' => 'string',
|
262 |
+
'required' => true,
|
263 |
+
),
|
264 |
+
),
|
265 |
+
),
|
266 |
+
'list' => array(
|
267 |
+
'path' => 'accounts/{accountId}/preferreddeals',
|
268 |
+
'httpMethod' => 'GET',
|
269 |
+
'parameters' => array(
|
270 |
+
'accountId' => array(
|
271 |
+
'location' => 'path',
|
272 |
+
'type' => 'string',
|
273 |
+
'required' => true,
|
274 |
+
),
|
275 |
+
),
|
276 |
+
),
|
277 |
+
),
|
278 |
+
)
|
279 |
+
);
|
280 |
+
$this->accounts_reports = new GoogleGAL_Service_AdExchangeSeller_AccountsReports_Resource(
|
281 |
+
$this,
|
282 |
+
$this->serviceName,
|
283 |
+
'reports',
|
284 |
+
array(
|
285 |
+
'methods' => array(
|
286 |
+
'generate' => array(
|
287 |
+
'path' => 'accounts/{accountId}/reports',
|
288 |
+
'httpMethod' => 'GET',
|
289 |
+
'parameters' => array(
|
290 |
+
'accountId' => array(
|
291 |
+
'location' => 'path',
|
292 |
+
'type' => 'string',
|
293 |
+
'required' => true,
|
294 |
+
),
|
295 |
+
'startDate' => array(
|
296 |
+
'location' => 'query',
|
297 |
+
'type' => 'string',
|
298 |
+
'required' => true,
|
299 |
+
),
|
300 |
+
'endDate' => array(
|
301 |
+
'location' => 'query',
|
302 |
+
'type' => 'string',
|
303 |
+
'required' => true,
|
304 |
+
),
|
305 |
+
'sort' => array(
|
306 |
+
'location' => 'query',
|
307 |
+
'type' => 'string',
|
308 |
+
'repeated' => true,
|
309 |
+
),
|
310 |
+
'locale' => array(
|
311 |
+
'location' => 'query',
|
312 |
+
'type' => 'string',
|
313 |
+
),
|
314 |
+
'metric' => array(
|
315 |
+
'location' => 'query',
|
316 |
+
'type' => 'string',
|
317 |
+
'repeated' => true,
|
318 |
+
),
|
319 |
+
'maxResults' => array(
|
320 |
+
'location' => 'query',
|
321 |
+
'type' => 'integer',
|
322 |
+
),
|
323 |
+
'filter' => array(
|
324 |
+
'location' => 'query',
|
325 |
+
'type' => 'string',
|
326 |
+
'repeated' => true,
|
327 |
+
),
|
328 |
+
'startIndex' => array(
|
329 |
+
'location' => 'query',
|
330 |
+
'type' => 'integer',
|
331 |
+
),
|
332 |
+
'dimension' => array(
|
333 |
+
'location' => 'query',
|
334 |
+
'type' => 'string',
|
335 |
+
'repeated' => true,
|
336 |
+
),
|
337 |
+
),
|
338 |
+
),
|
339 |
+
),
|
340 |
+
)
|
341 |
+
);
|
342 |
+
$this->accounts_reports_saved = new GoogleGAL_Service_AdExchangeSeller_AccountsReportsSaved_Resource(
|
343 |
+
$this,
|
344 |
+
$this->serviceName,
|
345 |
+
'saved',
|
346 |
+
array(
|
347 |
+
'methods' => array(
|
348 |
+
'generate' => array(
|
349 |
+
'path' => 'accounts/{accountId}/reports/{savedReportId}',
|
350 |
+
'httpMethod' => 'GET',
|
351 |
+
'parameters' => array(
|
352 |
+
'accountId' => array(
|
353 |
+
'location' => 'path',
|
354 |
+
'type' => 'string',
|
355 |
+
'required' => true,
|
356 |
+
),
|
357 |
+
'savedReportId' => array(
|
358 |
+
'location' => 'path',
|
359 |
+
'type' => 'string',
|
360 |
+
'required' => true,
|
361 |
+
),
|
362 |
+
'locale' => array(
|
363 |
+
'location' => 'query',
|
364 |
+
'type' => 'string',
|
365 |
+
),
|
366 |
+
'startIndex' => array(
|
367 |
+
'location' => 'query',
|
368 |
+
'type' => 'integer',
|
369 |
+
),
|
370 |
+
'maxResults' => array(
|
371 |
+
'location' => 'query',
|
372 |
+
'type' => 'integer',
|
373 |
+
),
|
374 |
+
),
|
375 |
+
),
|
376 |
+
'list' => array(
|
377 |
+
'path' => 'accounts/{accountId}/reports/saved',
|
378 |
+
'httpMethod' => 'GET',
|
379 |
+
'parameters' => array(
|
380 |
+
'accountId' => array(
|
381 |
+
'location' => 'path',
|
382 |
+
'type' => 'string',
|
383 |
+
'required' => true,
|
384 |
+
),
|
385 |
+
'pageToken' => array(
|
386 |
+
'location' => 'query',
|
387 |
+
'type' => 'string',
|
388 |
+
),
|
389 |
+
'maxResults' => array(
|
390 |
+
'location' => 'query',
|
391 |
+
'type' => 'integer',
|
392 |
+
),
|
393 |
+
),
|
394 |
+
),
|
395 |
+
),
|
396 |
+
)
|
397 |
+
);
|
398 |
+
$this->accounts_urlchannels = new GoogleGAL_Service_AdExchangeSeller_AccountsUrlchannels_Resource(
|
399 |
+
$this,
|
400 |
+
$this->serviceName,
|
401 |
+
'urlchannels',
|
402 |
+
array(
|
403 |
+
'methods' => array(
|
404 |
+
'list' => array(
|
405 |
+
'path' => 'accounts/{accountId}/adclients/{adClientId}/urlchannels',
|
406 |
+
'httpMethod' => 'GET',
|
407 |
+
'parameters' => array(
|
408 |
+
'accountId' => array(
|
409 |
+
'location' => 'path',
|
410 |
+
'type' => 'string',
|
411 |
+
'required' => true,
|
412 |
+
),
|
413 |
+
'adClientId' => array(
|
414 |
+
'location' => 'path',
|
415 |
+
'type' => 'string',
|
416 |
+
'required' => true,
|
417 |
+
),
|
418 |
+
'pageToken' => array(
|
419 |
+
'location' => 'query',
|
420 |
+
'type' => 'string',
|
421 |
+
),
|
422 |
+
'maxResults' => array(
|
423 |
+
'location' => 'query',
|
424 |
+
'type' => 'integer',
|
425 |
+
),
|
426 |
+
),
|
427 |
+
),
|
428 |
+
),
|
429 |
+
)
|
430 |
+
);
|
431 |
+
}
|
432 |
+
}
|
433 |
+
|
434 |
+
|
435 |
+
/**
|
436 |
+
* The "accounts" collection of methods.
|
437 |
+
* Typical usage is:
|
438 |
+
* <code>
|
439 |
+
* $adexchangesellerService = new GoogleGAL_Service_AdExchangeSeller(...);
|
440 |
+
* $accounts = $adexchangesellerService->accounts;
|
441 |
+
* </code>
|
442 |
+
*/
|
443 |
+
class GoogleGAL_Service_AdExchangeSeller_Accounts_Resource extends GoogleGAL_Service_Resource {
|
444 |
+
|
445 |
+
|
446 |
+
/**
|
447 |
+
* Get information about the selected Ad Exchange account. (accounts.get)
|
448 |
+
*
|
449 |
+
* @param string $accountId Account to get information about. Tip: 'myaccount'
|
450 |
+
* is a valid ID.
|
451 |
+
* @param array $optParams Optional parameters.
|
452 |
+
* @return GoogleGAL_Service_AdExchangeSeller_Account
|
453 |
+
*/
|
454 |
+
public function get( $accountId, $optParams = array() ) {
|
455 |
+
$params = array( 'accountId' => $accountId );
|
456 |
+
$params = array_merge( $params, $optParams );
|
457 |
+
return $this->call( 'get', array( $params ), 'GoogleGAL_Service_AdExchangeSeller_Account' );
|
458 |
+
}
|
459 |
+
|
460 |
+
/**
|
461 |
+
* List all accounts available to this Ad Exchange account.
|
462 |
+
* (accounts.listAccounts)
|
463 |
+
*
|
464 |
+
* @param array $optParams Optional parameters.
|
465 |
+
*
|
466 |
+
* @opt_param string pageToken A continuation token, used to page through
|
467 |
+
* accounts. To retrieve the next page, set this parameter to the value of
|
468 |
+
* "nextPageToken" from the previous response.
|
469 |
+
* @opt_param int maxResults The maximum number of accounts to include in the
|
470 |
+
* response, used for paging.
|
471 |
+
* @return GoogleGAL_Service_AdExchangeSeller_Accounts
|
472 |
+
*/
|
473 |
+
public function listAccounts( $optParams = array() ) {
|
474 |
+
$params = array();
|
475 |
+
$params = array_merge( $params, $optParams );
|
476 |
+
return $this->call( 'list', array( $params ), 'GoogleGAL_Service_AdExchangeSeller_Accounts' );
|
477 |
+
}
|
478 |
+
}
|
479 |
+
|
480 |
+
/**
|
481 |
+
* The "adclients" collection of methods.
|
482 |
+
* Typical usage is:
|
483 |
+
* <code>
|
484 |
+
* $adexchangesellerService = new GoogleGAL_Service_AdExchangeSeller(...);
|
485 |
+
* $adclients = $adexchangesellerService->adclients;
|
486 |
+
* </code>
|
487 |
+
*/
|
488 |
+
class GoogleGAL_Service_AdExchangeSeller_AccountsAdclients_Resource extends GoogleGAL_Service_Resource {
|
489 |
+
|
490 |
+
|
491 |
+
/**
|
492 |
+
* List all ad clients in this Ad Exchange account.
|
493 |
+
* (adclients.listAccountsAdclients)
|
494 |
+
*
|
495 |
+
* @param string $accountId Account to which the ad client belongs.
|
496 |
+
* @param array $optParams Optional parameters.
|
497 |
+
*
|
498 |
+
* @opt_param string pageToken A continuation token, used to page through ad
|
499 |
+
* clients. To retrieve the next page, set this parameter to the value of
|
500 |
+
* "nextPageToken" from the previous response.
|
501 |
+
* @opt_param string maxResults The maximum number of ad clients to include in
|
502 |
+
* the response, used for paging.
|
503 |
+
* @return GoogleGAL_Service_AdExchangeSeller_AdClients
|
504 |
+
*/
|
505 |
+
public function listAccountsAdclients( $accountId, $optParams = array() ) {
|
506 |
+
$params = array( 'accountId' => $accountId );
|
507 |
+
$params = array_merge( $params, $optParams );
|
508 |
+
return $this->call( 'list', array( $params ), 'GoogleGAL_Service_AdExchangeSeller_AdClients' );
|
509 |
+
}
|
510 |
+
}
|
511 |
+
/**
|
512 |
+
* The "alerts" collection of methods.
|
513 |
+
* Typical usage is:
|
514 |
+
* <code>
|
515 |
+
* $adexchangesellerService = new GoogleGAL_Service_AdExchangeSeller(...);
|
516 |
+
* $alerts = $adexchangesellerService->alerts;
|
517 |
+
* </code>
|
518 |
+
*/
|
519 |
+
class GoogleGAL_Service_AdExchangeSeller_AccountsAlerts_Resource extends GoogleGAL_Service_Resource {
|
520 |
+
|
521 |
+
|
522 |
+
/**
|
523 |
+
* List the alerts for this Ad Exchange account. (alerts.listAccountsAlerts)
|
524 |
+
*
|
525 |
+
* @param string $accountId Account owning the alerts.
|
526 |
+
* @param array $optParams Optional parameters.
|
527 |
+
*
|
528 |
+
* @opt_param string locale The locale to use for translating alert messages.
|
529 |
+
* The account locale will be used if this is not supplied. The AdSense default
|
530 |
+
* (English) will be used if the supplied locale is invalid or unsupported.
|
531 |
+
* @return GoogleGAL_Service_AdExchangeSeller_Alerts
|
532 |
+
*/
|
533 |
+
public function listAccountsAlerts( $accountId, $optParams = array() ) {
|
534 |
+
$params = array( 'accountId' => $accountId );
|
535 |
+
$params = array_merge( $params, $optParams );
|
536 |
+
return $this->call( 'list', array( $params ), 'GoogleGAL_Service_AdExchangeSeller_Alerts' );
|
537 |
+
}
|
538 |
+
}
|
539 |
+
/**
|
540 |
+
* The "customchannels" collection of methods.
|
541 |
+
* Typical usage is:
|
542 |
+
* <code>
|
543 |
+
* $adexchangesellerService = new GoogleGAL_Service_AdExchangeSeller(...);
|
544 |
+
* $customchannels = $adexchangesellerService->customchannels;
|
545 |
+
* </code>
|
546 |
+
*/
|
547 |
+
class GoogleGAL_Service_AdExchangeSeller_AccountsCustomchannels_Resource extends GoogleGAL_Service_Resource {
|
548 |
+
|
549 |
+
|
550 |
+
/**
|
551 |
+
* Get the specified custom channel from the specified ad client.
|
552 |
+
* (customchannels.get)
|
553 |
+
*
|
554 |
+
* @param string $accountId Account to which the ad client belongs.
|
555 |
+
* @param string $adClientId Ad client which contains the custom channel.
|
556 |
+
* @param string $customChannelId Custom channel to retrieve.
|
557 |
+
* @param array $optParams Optional parameters.
|
558 |
+
* @return GoogleGAL_Service_AdExchangeSeller_CustomChannel
|
559 |
+
*/
|
560 |
+
public function get( $accountId, $adClientId, $customChannelId, $optParams = array() ) {
|
561 |
+
$params = array(
|
562 |
+
'accountId' => $accountId,
|
563 |
+
'adClientId' => $adClientId,
|
564 |
+
'customChannelId' => $customChannelId,
|
565 |
+
);
|
566 |
+
$params = array_merge( $params, $optParams );
|
567 |
+
return $this->call( 'get', array( $params ), 'GoogleGAL_Service_AdExchangeSeller_CustomChannel' );
|
568 |
+
}
|
569 |
+
|
570 |
+
/**
|
571 |
+
* List all custom channels in the specified ad client for this Ad Exchange
|
572 |
+
* account. (customchannels.listAccountsCustomchannels)
|
573 |
+
*
|
574 |
+
* @param string $accountId Account to which the ad client belongs.
|
575 |
+
* @param string $adClientId Ad client for which to list custom channels.
|
576 |
+
* @param array $optParams Optional parameters.
|
577 |
+
*
|
578 |
+
* @opt_param string pageToken A continuation token, used to page through custom
|
579 |
+
* channels. To retrieve the next page, set this parameter to the value of
|
580 |
+
* "nextPageToken" from the previous response.
|
581 |
+
* @opt_param string maxResults The maximum number of custom channels to include
|
582 |
+
* in the response, used for paging.
|
583 |
+
* @return GoogleGAL_Service_AdExchangeSeller_CustomChannels
|
584 |
+
*/
|
585 |
+
public function listAccountsCustomchannels( $accountId, $adClientId, $optParams = array() ) {
|
586 |
+
$params = array(
|
587 |
+
'accountId' => $accountId,
|
588 |
+
'adClientId' => $adClientId,
|
589 |
+
);
|
590 |
+
$params = array_merge( $params, $optParams );
|
591 |
+
return $this->call( 'list', array( $params ), 'GoogleGAL_Service_AdExchangeSeller_CustomChannels' );
|
592 |
+
}
|
593 |
+
}
|
594 |
+
/**
|
595 |
+
* The "metadata" collection of methods.
|
596 |
+
* Typical usage is:
|
597 |
+
* <code>
|
598 |
+
* $adexchangesellerService = new GoogleGAL_Service_AdExchangeSeller(...);
|
599 |
+
* $metadata = $adexchangesellerService->metadata;
|
600 |
+
* </code>
|
601 |
+
*/
|
602 |
+
class GoogleGAL_Service_AdExchangeSeller_AccountsMetadata_Resource extends GoogleGAL_Service_Resource {
|
603 |
+
|
604 |
+
}
|
605 |
+
|
606 |
+
/**
|
607 |
+
* The "dimensions" collection of methods.
|
608 |
+
* Typical usage is:
|
609 |
+
* <code>
|
610 |
+
* $adexchangesellerService = new GoogleGAL_Service_AdExchangeSeller(...);
|
611 |
+
* $dimensions = $adexchangesellerService->dimensions;
|
612 |
+
* </code>
|
613 |
+
*/
|
614 |
+
class GoogleGAL_Service_AdExchangeSeller_AccountsMetadataDimensions_Resource extends GoogleGAL_Service_Resource {
|
615 |
+
|
616 |
+
|
617 |
+
/**
|
618 |
+
* List the metadata for the dimensions available to this AdExchange account.
|
619 |
+
* (dimensions.listAccountsMetadataDimensions)
|
620 |
+
*
|
621 |
+
* @param string $accountId Account with visibility to the dimensions.
|
622 |
+
* @param array $optParams Optional parameters.
|
623 |
+
* @return GoogleGAL_Service_AdExchangeSeller_Metadata
|
624 |
+
*/
|
625 |
+
public function listAccountsMetadataDimensions( $accountId, $optParams = array() ) {
|
626 |
+
$params = array( 'accountId' => $accountId );
|
627 |
+
$params = array_merge( $params, $optParams );
|
628 |
+
return $this->call( 'list', array( $params ), 'GoogleGAL_Service_AdExchangeSeller_Metadata' );
|
629 |
+
}
|
630 |
+
}
|
631 |
+
/**
|
632 |
+
* The "metrics" collection of methods.
|
633 |
+
* Typical usage is:
|
634 |
+
* <code>
|
635 |
+
* $adexchangesellerService = new GoogleGAL_Service_AdExchangeSeller(...);
|
636 |
+
* $metrics = $adexchangesellerService->metrics;
|
637 |
+
* </code>
|
638 |
+
*/
|
639 |
+
class GoogleGAL_Service_AdExchangeSeller_AccountsMetadataMetrics_Resource extends GoogleGAL_Service_Resource {
|
640 |
+
|
641 |
+
|
642 |
+
/**
|
643 |
+
* List the metadata for the metrics available to this AdExchange account.
|
644 |
+
* (metrics.listAccountsMetadataMetrics)
|
645 |
+
*
|
646 |
+
* @param string $accountId Account with visibility to the metrics.
|
647 |
+
* @param array $optParams Optional parameters.
|
648 |
+
* @return GoogleGAL_Service_AdExchangeSeller_Metadata
|
649 |
+
*/
|
650 |
+
public function listAccountsMetadataMetrics( $accountId, $optParams = array() ) {
|
651 |
+
$params = array( 'accountId' => $accountId );
|
652 |
+
$params = array_merge( $params, $optParams );
|
653 |
+
return $this->call( 'list', array( $params ), 'GoogleGAL_Service_AdExchangeSeller_Metadata' );
|
654 |
+
}
|
655 |
+
}
|
656 |
+
/**
|
657 |
+
* The "preferreddeals" collection of methods.
|
658 |
+
* Typical usage is:
|
659 |
+
* <code>
|
660 |
+
* $adexchangesellerService = new GoogleGAL_Service_AdExchangeSeller(...);
|
661 |
+
* $preferreddeals = $adexchangesellerService->preferreddeals;
|
662 |
+
* </code>
|
663 |
+
*/
|
664 |
+
class GoogleGAL_Service_AdExchangeSeller_AccountsPreferreddeals_Resource extends GoogleGAL_Service_Resource {
|
665 |
+
|
666 |
+
|
667 |
+
/**
|
668 |
+
* Get information about the selected Ad Exchange Preferred Deal.
|
669 |
+
* (preferreddeals.get)
|
670 |
+
*
|
671 |
+
* @param string $accountId Account owning the deal.
|
672 |
+
* @param string $dealId Preferred deal to get information about.
|
673 |
+
* @param array $optParams Optional parameters.
|
674 |
+
* @return GoogleGAL_Service_AdExchangeSeller_PreferredDeal
|
675 |
+
*/
|
676 |
+
public function get( $accountId, $dealId, $optParams = array() ) {
|
677 |
+
$params = array(
|
678 |
+
'accountId' => $accountId,
|
679 |
+
'dealId' => $dealId,
|
680 |
+
);
|
681 |
+
$params = array_merge( $params, $optParams );
|
682 |
+
return $this->call( 'get', array( $params ), 'GoogleGAL_Service_AdExchangeSeller_PreferredDeal' );
|
683 |
+
}
|
684 |
+
|
685 |
+
/**
|
686 |
+
* List the preferred deals for this Ad Exchange account.
|
687 |
+
* (preferreddeals.listAccountsPreferreddeals)
|
688 |
+
*
|
689 |
+
* @param string $accountId Account owning the deals.
|
690 |
+
* @param array $optParams Optional parameters.
|
691 |
+
* @return GoogleGAL_Service_AdExchangeSeller_PreferredDeals
|
692 |
+
*/
|
693 |
+
public function listAccountsPreferreddeals( $accountId, $optParams = array() ) {
|
694 |
+
$params = array( 'accountId' => $accountId );
|
695 |
+
$params = array_merge( $params, $optParams );
|
696 |
+
return $this->call( 'list', array( $params ), 'GoogleGAL_Service_AdExchangeSeller_PreferredDeals' );
|
697 |
+
}
|
698 |
+
}
|
699 |
+
/**
|
700 |
+
* The "reports" collection of methods.
|
701 |
+
* Typical usage is:
|
702 |
+
* <code>
|
703 |
+
* $adexchangesellerService = new GoogleGAL_Service_AdExchangeSeller(...);
|
704 |
+
* $reports = $adexchangesellerService->reports;
|
705 |
+
* </code>
|
706 |
+
*/
|
707 |
+
class GoogleGAL_Service_AdExchangeSeller_AccountsReports_Resource extends GoogleGAL_Service_Resource {
|
708 |
+
|
709 |
+
|
710 |
+
/**
|
711 |
+
* Generate an Ad Exchange report based on the report request sent in the query
|
712 |
+
* parameters. Returns the result as JSON; to retrieve output in CSV format
|
713 |
+
* specify "alt=csv" as a query parameter. (reports.generate)
|
714 |
+
*
|
715 |
+
* @param string $accountId Account which owns the generated report.
|
716 |
+
* @param string $startDate Start of the date range to report on in "YYYY-MM-DD"
|
717 |
+
* format, inclusive.
|
718 |
+
* @param string $endDate End of the date range to report on in "YYYY-MM-DD"
|
719 |
+
* format, inclusive.
|
720 |
+
* @param array $optParams Optional parameters.
|
721 |
+
*
|
722 |
+
* @opt_param string sort The name of a dimension or metric to sort the
|
723 |
+
* resulting report on, optionally prefixed with "+" to sort ascending or "-" to
|
724 |
+
* sort descending. If no prefix is specified, the column is sorted ascending.
|
725 |
+
* @opt_param string locale Optional locale to use for translating report output
|
726 |
+
* to a local language. Defaults to "en_US" if not specified.
|
727 |
+
* @opt_param string metric Numeric columns to include in the report.
|
728 |
+
* @opt_param string maxResults The maximum number of rows of report data to
|
729 |
+
* return.
|
730 |
+
* @opt_param string filter Filters to be run on the report.
|
731 |
+
* @opt_param string startIndex Index of the first row of report data to return.
|
732 |
+
* @opt_param string dimension Dimensions to base the report on.
|
733 |
+
* @return GoogleGAL_Service_AdExchangeSeller_Report
|
734 |
+
*/
|
735 |
+
public function generate( $accountId, $startDate, $endDate, $optParams = array() ) {
|
736 |
+
$params = array(
|
737 |
+
'accountId' => $accountId,
|
738 |
+
'startDate' => $startDate,
|
739 |
+
'endDate' => $endDate,
|
740 |
+
);
|
741 |
+
$params = array_merge( $params, $optParams );
|
742 |
+
return $this->call( 'generate', array( $params ), 'GoogleGAL_Service_AdExchangeSeller_Report' );
|
743 |
+
}
|
744 |
+
}
|
745 |
+
|
746 |
+
/**
|
747 |
+
* The "saved" collection of methods.
|
748 |
+
* Typical usage is:
|
749 |
+
* <code>
|
750 |
+
* $adexchangesellerService = new GoogleGAL_Service_AdExchangeSeller(...);
|
751 |
+
* $saved = $adexchangesellerService->saved;
|
752 |
+
* </code>
|
753 |
+
*/
|
754 |
+
class GoogleGAL_Service_AdExchangeSeller_AccountsReportsSaved_Resource extends GoogleGAL_Service_Resource {
|
755 |
+
|
756 |
+
|
757 |
+
/**
|
758 |
+
* Generate an Ad Exchange report based on the saved report ID sent in the query
|
759 |
+
* parameters. (saved.generate)
|
760 |
+
*
|
761 |
+
* @param string $accountId Account owning the saved report.
|
762 |
+
* @param string $savedReportId The saved report to retrieve.
|
763 |
+
* @param array $optParams Optional parameters.
|
764 |
+
*
|
765 |
+
* @opt_param string locale Optional locale to use for translating report output
|
766 |
+
* to a local language. Defaults to "en_US" if not specified.
|
767 |
+
* @opt_param int startIndex Index of the first row of report data to return.
|
768 |
+
* @opt_param int maxResults The maximum number of rows of report data to
|
769 |
+
* return.
|
770 |
+
* @return GoogleGAL_Service_AdExchangeSeller_Report
|
771 |
+
*/
|
772 |
+
public function generate( $accountId, $savedReportId, $optParams = array() ) {
|
773 |
+
$params = array(
|
774 |
+
'accountId' => $accountId,
|
775 |
+
'savedReportId' => $savedReportId,
|
776 |
+
);
|
777 |
+
$params = array_merge( $params, $optParams );
|
778 |
+
return $this->call( 'generate', array( $params ), 'GoogleGAL_Service_AdExchangeSeller_Report' );
|
779 |
+
}
|
780 |
+
|
781 |
+
/**
|
782 |
+
* List all saved reports in this Ad Exchange account.
|
783 |
+
* (saved.listAccountsReportsSaved)
|
784 |
+
*
|
785 |
+
* @param string $accountId Account owning the saved reports.
|
786 |
+
* @param array $optParams Optional parameters.
|
787 |
+
*
|
788 |
+
* @opt_param string pageToken A continuation token, used to page through saved
|
789 |
+
* reports. To retrieve the next page, set this parameter to the value of
|
790 |
+
* "nextPageToken" from the previous response.
|
791 |
+
* @opt_param int maxResults The maximum number of saved reports to include in
|
792 |
+
* the response, used for paging.
|
793 |
+
* @return GoogleGAL_Service_AdExchangeSeller_SavedReports
|
794 |
+
*/
|
795 |
+
public function listAccountsReportsSaved( $accountId, $optParams = array() ) {
|
796 |
+
$params = array( 'accountId' => $accountId );
|
797 |
+
$params = array_merge( $params, $optParams );
|
798 |
+
return $this->call( 'list', array( $params ), 'GoogleGAL_Service_AdExchangeSeller_SavedReports' );
|
799 |
+
}
|
800 |
+
}
|
801 |
+
/**
|
802 |
+
* The "urlchannels" collection of methods.
|
803 |
+
* Typical usage is:
|
804 |
+
* <code>
|
805 |
+
* $adexchangesellerService = new GoogleGAL_Service_AdExchangeSeller(...);
|
806 |
+
* $urlchannels = $adexchangesellerService->urlchannels;
|
807 |
+
* </code>
|
808 |
+
*/
|
809 |
+
class GoogleGAL_Service_AdExchangeSeller_AccountsUrlchannels_Resource extends GoogleGAL_Service_Resource {
|
810 |
+
|
811 |
+
|
812 |
+
/**
|
813 |
+
* List all URL channels in the specified ad client for this Ad Exchange
|
814 |
+
* account. (urlchannels.listAccountsUrlchannels)
|
815 |
+
*
|
816 |
+
* @param string $accountId Account to which the ad client belongs.
|
817 |
+
* @param string $adClientId Ad client for which to list URL channels.
|
818 |
+
* @param array $optParams Optional parameters.
|
819 |
+
*
|
820 |
+
* @opt_param string pageToken A continuation token, used to page through URL
|
821 |
+
* channels. To retrieve the next page, set this parameter to the value of
|
822 |
+
* "nextPageToken" from the previous response.
|
823 |
+
* @opt_param string maxResults The maximum number of URL channels to include in
|
824 |
+
* the response, used for paging.
|
825 |
+
* @return GoogleGAL_Service_AdExchangeSeller_UrlChannels
|
826 |
+
*/
|
827 |
+
public function listAccountsUrlchannels( $accountId, $adClientId, $optParams = array() ) {
|
828 |
+
$params = array(
|
829 |
+
'accountId' => $accountId,
|
830 |
+
'adClientId' => $adClientId,
|
831 |
+
);
|
832 |
+
$params = array_merge( $params, $optParams );
|
833 |
+
return $this->call( 'list', array( $params ), 'GoogleGAL_Service_AdExchangeSeller_UrlChannels' );
|
834 |
+
}
|
835 |
+
}
|
836 |
+
|
837 |
+
|
838 |
+
|
839 |
+
|
840 |
+
class GoogleGAL_Service_AdExchangeSeller_Account extends GoogleGAL_Model {
|
841 |
+
|
842 |
+
protected $internal_gapi_mappings = array();
|
843 |
+
public $id;
|
844 |
+
public $kind;
|
845 |
+
public $name;
|
846 |
+
|
847 |
+
|
848 |
+
public function setId( $id ) {
|
849 |
+
$this->id = $id;
|
850 |
+
}
|
851 |
+
public function getId() {
|
852 |
+
return $this->id;
|
853 |
+
}
|
854 |
+
public function setKind( $kind ) {
|
855 |
+
$this->kind = $kind;
|
856 |
+
}
|
857 |
+
public function getKind() {
|
858 |
+
return $this->kind;
|
859 |
+
}
|
860 |
+
public function setName( $name ) {
|
861 |
+
$this->name = $name;
|
862 |
+
}
|
863 |
+
public function getName() {
|
864 |
+
return $this->name;
|
865 |
+
}
|
866 |
+
}
|
867 |
+
|
868 |
+
class GoogleGAL_Service_AdExchangeSeller_Accounts extends GoogleGAL_Collection {
|
869 |
+
|
870 |
+
protected $collection_key = 'items';
|
871 |
+
protected $internal_gapi_mappings = array();
|
872 |
+
public $etag;
|
873 |
+
protected $itemsType = 'GoogleGAL_Service_AdExchangeSeller_Account';
|
874 |
+
protected $itemsDataType = 'array';
|
875 |
+
public $kind;
|
876 |
+
public $nextPageToken;
|
877 |
+
|
878 |
+
|
879 |
+
public function setEtag( $etag ) {
|
880 |
+
$this->etag = $etag;
|
881 |
+
}
|
882 |
+
public function getEtag() {
|
883 |
+
return $this->etag;
|
884 |
+
}
|
885 |
+
public function setItems( $items ) {
|
886 |
+
$this->items = $items;
|
887 |
+
}
|
888 |
+
public function getItems() {
|
889 |
+
return $this->items;
|
890 |
+
}
|
891 |
+
public function setKind( $kind ) {
|
892 |
+
$this->kind = $kind;
|
893 |
+
}
|
894 |
+
public function getKind() {
|
895 |
+
return $this->kind;
|
896 |
+
}
|
897 |
+
public function setNextPageToken( $nextPageToken ) {
|
898 |
+
$this->nextPageToken = $nextPageToken;
|
899 |
+
}
|
900 |
+
public function getNextPageToken() {
|
901 |
+
return $this->nextPageToken;
|
902 |
+
}
|
903 |
+
}
|
904 |
+
|
905 |
+
class GoogleGAL_Service_AdExchangeSeller_AdClient extends GoogleGAL_Model {
|
906 |
+
|
907 |
+
protected $internal_gapi_mappings = array();
|
908 |
+
public $arcOptIn;
|
909 |
+
public $id;
|
910 |
+
public $kind;
|
911 |
+
public $productCode;
|
912 |
+
public $supportsReporting;
|
913 |
+
|
914 |
+
|
915 |
+
public function setArcOptIn( $arcOptIn ) {
|
916 |
+
$this->arcOptIn = $arcOptIn;
|
917 |
+
}
|
918 |
+
public function getArcOptIn() {
|
919 |
+
return $this->arcOptIn;
|
920 |
+
}
|
921 |
+
public function setId( $id ) {
|
922 |
+
$this->id = $id;
|
923 |
+
}
|
924 |
+
public function getId() {
|
925 |
+
return $this->id;
|
926 |
+
}
|
927 |
+
public function setKind( $kind ) {
|
928 |
+
$this->kind = $kind;
|
929 |
+
}
|
930 |
+
public function getKind() {
|
931 |
+
return $this->kind;
|
932 |
+
}
|
933 |
+
public function setProductCode( $productCode ) {
|
934 |
+
$this->productCode = $productCode;
|
935 |
+
}
|
936 |
+
public function getProductCode() {
|
937 |
+
return $this->productCode;
|
938 |
+
}
|
939 |
+
public function setSupportsReporting( $supportsReporting ) {
|
940 |
+
$this->supportsReporting = $supportsReporting;
|
941 |
+
}
|
942 |
+
public function getSupportsReporting() {
|
943 |
+
return $this->supportsReporting;
|
944 |
+
}
|
945 |
+
}
|
946 |
+
|
947 |
+
class GoogleGAL_Service_AdExchangeSeller_AdClients extends GoogleGAL_Collection {
|
948 |
+
|
949 |
+
protected $collection_key = 'items';
|
950 |
+
protected $internal_gapi_mappings = array();
|
951 |
+
public $etag;
|
952 |
+
protected $itemsType = 'GoogleGAL_Service_AdExchangeSeller_AdClient';
|
953 |
+
protected $itemsDataType = 'array';
|
954 |
+
public $kind;
|
955 |
+
public $nextPageToken;
|
956 |
+
|
957 |
+
|
958 |
+
public function setEtag( $etag ) {
|
959 |
+
$this->etag = $etag;
|
960 |
+
}
|
961 |
+
public function getEtag() {
|
962 |
+
return $this->etag;
|
963 |
+
}
|
964 |
+
public function setItems( $items ) {
|
965 |
+
$this->items = $items;
|
966 |
+
}
|
967 |
+
public function getItems() {
|
968 |
+
return $this->items;
|
969 |
+
}
|
970 |
+
public function setKind( $kind ) {
|
971 |
+
$this->kind = $kind;
|
972 |
+
}
|
973 |
+
public function getKind() {
|
974 |
+
return $this->kind;
|
975 |
+
}
|
976 |
+
public function setNextPageToken( $nextPageToken ) {
|
977 |
+
$this->nextPageToken = $nextPageToken;
|
978 |
+
}
|
979 |
+
public function getNextPageToken() {
|
980 |
+
return $this->nextPageToken;
|
981 |
+
}
|
982 |
+
}
|
983 |
+
|
984 |
+
class GoogleGAL_Service_AdExchangeSeller_Alert extends GoogleGAL_Model {
|
985 |
+
|
986 |
+
protected $internal_gapi_mappings = array();
|
987 |
+
public $id;
|
988 |
+
public $kind;
|
989 |
+
public $message;
|
990 |
+
public $severity;
|
991 |
+
public $type;
|
992 |
+
|
993 |
+
|
994 |
+
public function setId( $id ) {
|
995 |
+
$this->id = $id;
|
996 |
+
}
|
997 |
+
public function getId() {
|
998 |
+
return $this->id;
|
999 |
+
}
|
1000 |
+
public function setKind( $kind ) {
|
1001 |
+
$this->kind = $kind;
|
1002 |
+
}
|
1003 |
+
public function getKind() {
|
1004 |
+
return $this->kind;
|
1005 |
+
}
|
1006 |
+
public function setMessage( $message ) {
|
1007 |
+
$this->message = $message;
|
1008 |
+
}
|
1009 |
+
public function getMessage() {
|
1010 |
+
return $this->message;
|
1011 |
+
}
|
1012 |
+
public function setSeverity( $severity ) {
|
1013 |
+
$this->severity = $severity;
|
1014 |
+
}
|
1015 |
+
public function getSeverity() {
|
1016 |
+
return $this->severity;
|
1017 |
+
}
|
1018 |
+
public function setType( $type ) {
|
1019 |
+
$this->type = $type;
|
1020 |
+
}
|
1021 |
+
public function getType() {
|
1022 |
+
return $this->type;
|
1023 |
+
}
|
1024 |
+
}
|
1025 |
+
|
1026 |
+
class GoogleGAL_Service_AdExchangeSeller_Alerts extends GoogleGAL_Collection {
|
1027 |
+
|
1028 |
+
protected $collection_key = 'items';
|
1029 |
+
protected $internal_gapi_mappings = array();
|
1030 |
+
protected $itemsType = 'GoogleGAL_Service_AdExchangeSeller_Alert';
|
1031 |
+
protected $itemsDataType = 'array';
|
1032 |
+
public $kind;
|
1033 |
+
|
1034 |
+
|
1035 |
+
public function setItems( $items ) {
|
1036 |
+
$this->items = $items;
|
1037 |
+
}
|
1038 |
+
public function getItems() {
|
1039 |
+
return $this->items;
|
1040 |
+
}
|
1041 |
+
public function setKind( $kind ) {
|
1042 |
+
$this->kind = $kind;
|
1043 |
+
}
|
1044 |
+
public function getKind() {
|
1045 |
+
return $this->kind;
|
1046 |
+
}
|
1047 |
+
}
|
1048 |
+
|
1049 |
+
class GoogleGAL_Service_AdExchangeSeller_CustomChannel extends GoogleGAL_Model {
|
1050 |
+
|
1051 |
+
protected $internal_gapi_mappings = array();
|
1052 |
+
public $code;
|
1053 |
+
public $id;
|
1054 |
+
public $kind;
|
1055 |
+
public $name;
|
1056 |
+
protected $targetingInfoType = 'GoogleGAL_Service_AdExchangeSeller_CustomChannelTargetingInfo';
|
1057 |
+
protected $targetingInfoDataType = '';
|
1058 |
+
|
1059 |
+
|
1060 |
+
public function setCode( $code ) {
|
1061 |
+
$this->code = $code;
|
1062 |
+
}
|
1063 |
+
public function getCode() {
|
1064 |
+
return $this->code;
|
1065 |
+
}
|
1066 |
+
public function setId( $id ) {
|
1067 |
+
$this->id = $id;
|
1068 |
+
}
|
1069 |
+
public function getId() {
|
1070 |
+
return $this->id;
|
1071 |
+
}
|
1072 |
+
public function setKind( $kind ) {
|
1073 |
+
$this->kind = $kind;
|
1074 |
+
}
|
1075 |
+
public function getKind() {
|
1076 |
+
return $this->kind;
|
1077 |
+
}
|
1078 |
+
public function setName( $name ) {
|
1079 |
+
$this->name = $name;
|
1080 |
+
}
|
1081 |
+
public function getName() {
|
1082 |
+
return $this->name;
|
1083 |
+
}
|
1084 |
+
public function setTargetingInfo( GoogleGAL_Service_AdExchangeSeller_CustomChannelTargetingInfo $targetingInfo ) {
|
1085 |
+
$this->targetingInfo = $targetingInfo;
|
1086 |
+
}
|
1087 |
+
public function getTargetingInfo() {
|
1088 |
+
return $this->targetingInfo;
|
1089 |
+
}
|
1090 |
+
}
|
1091 |
+
|
1092 |
+
class GoogleGAL_Service_AdExchangeSeller_CustomChannelTargetingInfo extends GoogleGAL_Model {
|
1093 |
+
|
1094 |
+
protected $internal_gapi_mappings = array();
|
1095 |
+
public $adsAppearOn;
|
1096 |
+
public $description;
|
1097 |
+
public $location;
|
1098 |
+
public $siteLanguage;
|
1099 |
+
|
1100 |
+
|
1101 |
+
public function setAdsAppearOn( $adsAppearOn ) {
|
1102 |
+
$this->adsAppearOn = $adsAppearOn;
|
1103 |
+
}
|
1104 |
+
public function getAdsAppearOn() {
|
1105 |
+
return $this->adsAppearOn;
|
1106 |
+
}
|
1107 |
+
public function setDescription( $description ) {
|
1108 |
+
$this->description = $description;
|
1109 |
+
}
|
1110 |
+
public function getDescription() {
|
1111 |
+
return $this->description;
|
1112 |
+
}
|
1113 |
+
public function setLocation( $location ) {
|
1114 |
+
$this->location = $location;
|
1115 |
+
}
|
1116 |
+
public function getLocation() {
|
1117 |
+
return $this->location;
|
1118 |
+
}
|
1119 |
+
public function setSiteLanguage( $siteLanguage ) {
|
1120 |
+
$this->siteLanguage = $siteLanguage;
|
1121 |
+
}
|
1122 |
+
public function getSiteLanguage() {
|
1123 |
+
return $this->siteLanguage;
|
1124 |
+
}
|
1125 |
+
}
|
1126 |
+
|
1127 |
+
class GoogleGAL_Service_AdExchangeSeller_CustomChannels extends GoogleGAL_Collection {
|
1128 |
+
|
1129 |
+
protected $collection_key = 'items';
|
1130 |
+
protected $internal_gapi_mappings = array();
|
1131 |
+
public $etag;
|
1132 |
+
protected $itemsType = 'GoogleGAL_Service_AdExchangeSeller_CustomChannel';
|
1133 |
+
protected $itemsDataType = 'array';
|
1134 |
+
public $kind;
|
1135 |
+
public $nextPageToken;
|
1136 |
+
|
1137 |
+
|
1138 |
+
public function setEtag( $etag ) {
|
1139 |
+
$this->etag = $etag;
|
1140 |
+
}
|
1141 |
+
public function getEtag() {
|
1142 |
+
return $this->etag;
|
1143 |
+
}
|
1144 |
+
public function setItems( $items ) {
|
1145 |
+
$this->items = $items;
|
1146 |
+
}
|
1147 |
+
public function getItems() {
|
1148 |
+
return $this->items;
|
1149 |
+
}
|
1150 |
+
public function setKind( $kind ) {
|
1151 |
+
$this->kind = $kind;
|
1152 |
+
}
|
1153 |
+
public function getKind() {
|
1154 |
+
return $this->kind;
|
1155 |
+
}
|
1156 |
+
public function setNextPageToken( $nextPageToken ) {
|
1157 |
+
$this->nextPageToken = $nextPageToken;
|
1158 |
+
}
|
1159 |
+
public function getNextPageToken() {
|
1160 |
+
return $this->nextPageToken;
|
1161 |
+
}
|
1162 |
+
}
|
1163 |
+
|
1164 |
+
class GoogleGAL_Service_AdExchangeSeller_Metadata extends GoogleGAL_Collection {
|
1165 |
+
|
1166 |
+
protected $collection_key = 'items';
|
1167 |
+
protected $internal_gapi_mappings = array();
|
1168 |
+
protected $itemsType = 'GoogleGAL_Service_AdExchangeSeller_ReportingMetadataEntry';
|
1169 |
+
protected $itemsDataType = 'array';
|
1170 |
+
public $kind;
|
1171 |
+
|
1172 |
+
|
1173 |
+
public function setItems( $items ) {
|
1174 |
+
$this->items = $items;
|
1175 |
+
}
|
1176 |
+
public function getItems() {
|
1177 |
+
return $this->items;
|
1178 |
+
}
|
1179 |
+
public function setKind( $kind ) {
|
1180 |
+
$this->kind = $kind;
|
1181 |
+
}
|
1182 |
+
public function getKind() {
|
1183 |
+
return $this->kind;
|
1184 |
+
}
|
1185 |
+
}
|
1186 |
+
|
1187 |
+
class GoogleGAL_Service_AdExchangeSeller_PreferredDeal extends GoogleGAL_Model {
|
1188 |
+
|
1189 |
+
protected $internal_gapi_mappings = array();
|
1190 |
+
public $advertiserName;
|
1191 |
+
public $buyerNetworkName;
|
1192 |
+
public $currencyCode;
|
1193 |
+
public $endTime;
|
1194 |
+
public $fixedCpm;
|
1195 |
+
public $id;
|
1196 |
+
public $kind;
|
1197 |
+
public $startTime;
|
1198 |
+
|
1199 |
+
|
1200 |
+
public function setAdvertiserName( $advertiserName ) {
|
1201 |
+
$this->advertiserName = $advertiserName;
|
1202 |
+
}
|
1203 |
+
public function getAdvertiserName() {
|
1204 |
+
return $this->advertiserName;
|
1205 |
+
}
|
1206 |
+
public function setBuyerNetworkName( $buyerNetworkName ) {
|
1207 |
+
$this->buyerNetworkName = $buyerNetworkName;
|
1208 |
+
}
|
1209 |
+
public function getBuyerNetworkName() {
|
1210 |
+
return $this->buyerNetworkName;
|
1211 |
+
}
|
1212 |
+
public function setCurrencyCode( $currencyCode ) {
|
1213 |
+
$this->currencyCode = $currencyCode;
|
1214 |
+
}
|
1215 |
+
public function getCurrencyCode() {
|
1216 |
+
return $this->currencyCode;
|
1217 |
+
}
|
1218 |
+
public function setEndTime( $endTime ) {
|
1219 |
+
$this->endTime = $endTime;
|
1220 |
+
}
|
1221 |
+
public function getEndTime() {
|
1222 |
+
return $this->endTime;
|
1223 |
+
}
|
1224 |
+
public function setFixedCpm( $fixedCpm ) {
|
1225 |
+
$this->fixedCpm = $fixedCpm;
|
1226 |
+
}
|
1227 |
+
public function getFixedCpm() {
|
1228 |
+
return $this->fixedCpm;
|
1229 |
+
}
|
1230 |
+
public function setId( $id ) {
|
1231 |
+
$this->id = $id;
|
1232 |
+
}
|
1233 |
+
public function getId() {
|
1234 |
+
return $this->id;
|
1235 |
+
}
|
1236 |
+
public function setKind( $kind ) {
|
1237 |
+
$this->kind = $kind;
|
1238 |
+
}
|
1239 |
+
public function getKind() {
|
1240 |
+
return $this->kind;
|
1241 |
+
}
|
1242 |
+
public function setStartTime( $startTime ) {
|
1243 |
+
$this->startTime = $startTime;
|
1244 |
+
}
|
1245 |
+
public function getStartTime() {
|
1246 |
+
return $this->startTime;
|
1247 |
+
}
|
1248 |
+
}
|
1249 |
+
|
1250 |
+
class GoogleGAL_Service_AdExchangeSeller_PreferredDeals extends GoogleGAL_Collection {
|
1251 |
+
|
1252 |
+
protected $collection_key = 'items';
|
1253 |
+
protected $internal_gapi_mappings = array();
|
1254 |
+
protected $itemsType = 'GoogleGAL_Service_AdExchangeSeller_PreferredDeal';
|
1255 |
+
protected $itemsDataType = 'array';
|
1256 |
+
public $kind;
|
1257 |
+
|
1258 |
+
|
1259 |
+
public function setItems( $items ) {
|
1260 |
+
$this->items = $items;
|
1261 |
+
}
|
1262 |
+
public function getItems() {
|
1263 |
+
return $this->items;
|
1264 |
+
}
|
1265 |
+
public function setKind( $kind ) {
|
1266 |
+
$this->kind = $kind;
|
1267 |
+
}
|
1268 |
+
public function getKind() {
|
1269 |
+
return $this->kind;
|
1270 |
+
}
|
1271 |
+
}
|
1272 |
+
|
1273 |
+
class GoogleGAL_Service_AdExchangeSeller_Report extends GoogleGAL_Collection {
|
1274 |
+
|
1275 |
+
protected $collection_key = 'warnings';
|
1276 |
+
protected $internal_gapi_mappings = array();
|
1277 |
+
public $averages;
|
1278 |
+
protected $headersType = 'GoogleGAL_Service_AdExchangeSeller_ReportHeaders';
|
1279 |
+
protected $headersDataType = 'array';
|
1280 |
+
public $kind;
|
1281 |
+
public $rows;
|
1282 |
+
public $totalMatchedRows;
|
1283 |
+
public $totals;
|
1284 |
+
public $warnings;
|
1285 |
+
|
1286 |
+
|
1287 |
+
public function setAverages( $averages ) {
|
1288 |
+
$this->averages = $averages;
|
1289 |
+
}
|
1290 |
+
public function getAverages() {
|
1291 |
+
return $this->averages;
|
1292 |
+
}
|
1293 |
+
public function setHeaders( $headers ) {
|
1294 |
+
$this->headers = $headers;
|
1295 |
+
}
|
1296 |
+
public function getHeaders() {
|
1297 |
+
return $this->headers;
|
1298 |
+
}
|
1299 |
+
public function setKind( $kind ) {
|
1300 |
+
$this->kind = $kind;
|
1301 |
+
}
|
1302 |
+
public function getKind() {
|
1303 |
+
return $this->kind;
|
1304 |
+
}
|
1305 |
+
public function setRows( $rows ) {
|
1306 |
+
$this->rows = $rows;
|
1307 |
+
}
|
1308 |
+
public function getRows() {
|
1309 |
+
return $this->rows;
|
1310 |
+
}
|
1311 |
+
public function setTotalMatchedRows( $totalMatchedRows ) {
|
1312 |
+
$this->totalMatchedRows = $totalMatchedRows;
|
1313 |
+
}
|
1314 |
+
public function getTotalMatchedRows() {
|
1315 |
+
return $this->totalMatchedRows;
|
1316 |
+
}
|
1317 |
+
public function setTotals( $totals ) {
|
1318 |
+
$this->totals = $totals;
|
1319 |
+
}
|
1320 |
+
public function getTotals() {
|
1321 |
+
return $this->totals;
|
1322 |
+
}
|
1323 |
+
public function setWarnings( $warnings ) {
|
1324 |
+
$this->warnings = $warnings;
|
1325 |
+
}
|
1326 |
+
public function getWarnings() {
|
1327 |
+
return $this->warnings;
|
1328 |
+
}
|
1329 |
+
}
|
1330 |
+
|
1331 |
+
class GoogleGAL_Service_AdExchangeSeller_ReportHeaders extends GoogleGAL_Model {
|
1332 |
+
|
1333 |
+
protected $internal_gapi_mappings = array();
|
1334 |
+
public $currency;
|
1335 |
+
public $name;
|
1336 |
+
public $type;
|
1337 |
+
|
1338 |
+
|
1339 |
+
public function setCurrency( $currency ) {
|
1340 |
+
$this->currency = $currency;
|
1341 |
+
}
|
1342 |
+
public function getCurrency() {
|
1343 |
+
return $this->currency;
|
1344 |
+
}
|
1345 |
+
public function setName( $name ) {
|
1346 |
+
$this->name = $name;
|
1347 |
+
}
|
1348 |
+
public function getName() {
|
1349 |
+
return $this->name;
|
1350 |
+
}
|
1351 |
+
public function setType( $type ) {
|
1352 |
+
$this->type = $type;
|
1353 |
+
}
|
1354 |
+
public function getType() {
|
1355 |
+
return $this->type;
|
1356 |
+
}
|
1357 |
+
}
|
1358 |
+
|
1359 |
+
class GoogleGAL_Service_AdExchangeSeller_ReportingMetadataEntry extends GoogleGAL_Collection {
|
1360 |
+
|
1361 |
+
protected $collection_key = 'supportedProducts';
|
1362 |
+
protected $internal_gapi_mappings = array();
|
1363 |
+
public $compatibleDimensions;
|
1364 |
+
public $compatibleMetrics;
|
1365 |
+
public $id;
|
1366 |
+
public $kind;
|
1367 |
+
public $requiredDimensions;
|
1368 |
+
public $requiredMetrics;
|
1369 |
+
public $supportedProducts;
|
1370 |
+
|
1371 |
+
|
1372 |
+
public function setCompatibleDimensions( $compatibleDimensions ) {
|
1373 |
+
$this->compatibleDimensions = $compatibleDimensions;
|
1374 |
+
}
|
1375 |
+
public function getCompatibleDimensions() {
|
1376 |
+
return $this->compatibleDimensions;
|
1377 |
+
}
|
1378 |
+
public function setCompatibleMetrics( $compatibleMetrics ) {
|
1379 |
+
$this->compatibleMetrics = $compatibleMetrics;
|
1380 |
+
}
|
1381 |
+
public function getCompatibleMetrics() {
|
1382 |
+
return $this->compatibleMetrics;
|
1383 |
+
}
|
1384 |
+
public function setId( $id ) {
|
1385 |
+
$this->id = $id;
|
1386 |
+
}
|
1387 |
+
public function getId() {
|
1388 |
+
return $this->id;
|
1389 |
+
}
|
1390 |
+
public function setKind( $kind ) {
|
1391 |
+
$this->kind = $kind;
|
1392 |
+
}
|
1393 |
+
public function getKind() {
|
1394 |
+
return $this->kind;
|
1395 |
+
}
|
1396 |
+
public function setRequiredDimensions( $requiredDimensions ) {
|
1397 |
+
$this->requiredDimensions = $requiredDimensions;
|
1398 |
+
}
|
1399 |
+
public function getRequiredDimensions() {
|
1400 |
+
return $this->requiredDimensions;
|
1401 |
+
}
|
1402 |
+
public function setRequiredMetrics( $requiredMetrics ) {
|
1403 |
+
$this->requiredMetrics = $requiredMetrics;
|
1404 |
+
}
|
1405 |
+
public function getRequiredMetrics() {
|
1406 |
+
return $this->requiredMetrics;
|
1407 |
+
}
|
1408 |
+
public function setSupportedProducts( $supportedProducts ) {
|
1409 |
+
$this->supportedProducts = $supportedProducts;
|
1410 |
+
}
|
1411 |
+
public function getSupportedProducts() {
|
1412 |
+
return $this->supportedProducts;
|
1413 |
+
}
|
1414 |
+
}
|
1415 |
+
|
1416 |
+
class GoogleGAL_Service_AdExchangeSeller_SavedReport extends GoogleGAL_Model {
|
1417 |
+
|
1418 |
+
protected $internal_gapi_mappings = array();
|
1419 |
+
public $id;
|
1420 |
+
public $kind;
|
1421 |
+
public $name;
|
1422 |
+
|
1423 |
+
|
1424 |
+
public function setId( $id ) {
|
1425 |
+
$this->id = $id;
|
1426 |
+
}
|
1427 |
+
public function getId() {
|
1428 |
+
return $this->id;
|
1429 |
+
}
|
1430 |
+
public function setKind( $kind ) {
|
1431 |
+
$this->kind = $kind;
|
1432 |
+
}
|
1433 |
+
public function getKind() {
|
1434 |
+
return $this->kind;
|
1435 |
+
}
|
1436 |
+
public function setName( $name ) {
|
1437 |
+
$this->name = $name;
|
1438 |
+
}
|
1439 |
+
public function getName() {
|
1440 |
+
return $this->name;
|
1441 |
+
}
|
1442 |
+
}
|
1443 |
+
|
1444 |
+
class GoogleGAL_Service_AdExchangeSeller_SavedReports extends GoogleGAL_Collection {
|
1445 |
+
|
1446 |
+
protected $collection_key = 'items';
|
1447 |
+
protected $internal_gapi_mappings = array();
|
1448 |
+
public $etag;
|
1449 |
+
protected $itemsType = 'GoogleGAL_Service_AdExchangeSeller_SavedReport';
|
1450 |
+
protected $itemsDataType = 'array';
|
1451 |
+
public $kind;
|
1452 |
+
public $nextPageToken;
|
1453 |
+
|
1454 |
+
|
1455 |
+
public function setEtag( $etag ) {
|
1456 |
+
$this->etag = $etag;
|
1457 |
+
}
|
1458 |
+
public function getEtag() {
|
1459 |
+
return $this->etag;
|
1460 |
+
}
|
1461 |
+
public function setItems( $items ) {
|
1462 |
+
$this->items = $items;
|
1463 |
+
}
|
1464 |
+
public function getItems() {
|
1465 |
+
return $this->items;
|
1466 |
+
}
|
1467 |
+
public function setKind( $kind ) {
|
1468 |
+
$this->kind = $kind;
|
1469 |
+
}
|
1470 |
+
public function getKind() {
|
1471 |
+
return $this->kind;
|
1472 |
+
}
|
1473 |
+
public function setNextPageToken( $nextPageToken ) {
|
1474 |
+
$this->nextPageToken = $nextPageToken;
|
1475 |
+
}
|
1476 |
+
public function getNextPageToken() {
|
1477 |
+
return $this->nextPageToken;
|
1478 |
+
}
|
1479 |
+
}
|
1480 |
+
|
1481 |
+
class GoogleGAL_Service_AdExchangeSeller_UrlChannel extends GoogleGAL_Model {
|
1482 |
+
|
1483 |
+
protected $internal_gapi_mappings = array();
|
1484 |
+
public $id;
|
1485 |
+
public $kind;
|
1486 |
+
public $urlPattern;
|
1487 |
+
|
1488 |
+
|
1489 |
+
public function setId( $id ) {
|
1490 |
+
$this->id = $id;
|
1491 |
+
}
|
1492 |
+
public function getId() {
|
1493 |
+
return $this->id;
|
1494 |
+
}
|
1495 |
+
public function setKind( $kind ) {
|
1496 |
+
$this->kind = $kind;
|
1497 |
+
}
|
1498 |
+
public function getKind() {
|
1499 |
+
return $this->kind;
|
1500 |
+
}
|
1501 |
+
public function setUrlPattern( $urlPattern ) {
|
1502 |
+
$this->urlPattern = $urlPattern;
|
1503 |
+
}
|
1504 |
+
public function getUrlPattern() {
|
1505 |
+
return $this->urlPattern;
|
1506 |
+
}
|
1507 |
+
}
|
1508 |
+
|
1509 |
+
class GoogleGAL_Service_AdExchangeSeller_UrlChannels extends GoogleGAL_Collection {
|
1510 |
+
|
1511 |
+
protected $collection_key = 'items';
|
1512 |
+
protected $internal_gapi_mappings = array();
|
1513 |
+
public $etag;
|
1514 |
+
protected $itemsType = 'GoogleGAL_Service_AdExchangeSeller_UrlChannel';
|
1515 |
+
protected $itemsDataType = 'array';
|
1516 |
+
public $kind;
|
1517 |
+
public $nextPageToken;
|
1518 |
+
|
1519 |
+
|
1520 |
+
public function setEtag( $etag ) {
|
1521 |
+
$this->etag = $etag;
|
1522 |
+
}
|
1523 |
+
public function getEtag() {
|
1524 |
+
return $this->etag;
|
1525 |
+
}
|
1526 |
+
public function setItems( $items ) {
|
1527 |
+
$this->items = $items;
|
1528 |
+
}
|
1529 |
+
public function getItems() {
|
1530 |
+
return $this->items;
|
1531 |
+
}
|
1532 |
+
public function setKind( $kind ) {
|
1533 |
+
$this->kind = $kind;
|
1534 |
+
}
|
1535 |
+
public function getKind() {
|
1536 |
+
return $this->kind;
|
1537 |
+
}
|
1538 |
+
public function setNextPageToken( $nextPageToken ) {
|
1539 |
+
$this->nextPageToken = $nextPageToken;
|
1540 |
+
}
|
1541 |
+
public function getNextPageToken() {
|
1542 |
+
return $this->nextPageToken;
|
1543 |
+
}
|
1544 |
+
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
core/Google/Service/AdSense.php
CHANGED
@@ -1,3585 +1,3324 @@
|
|
1 |
-
<?php
|
2 |
-
/*
|
3 |
-
* Copyright 2010 Google Inc.
|
4 |
-
*
|
5 |
-
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
|
6 |
-
* use this file except in compliance with the License. You may obtain a copy of
|
7 |
-
* the License at
|
8 |
-
*
|
9 |
-
* https://www.apache.org/licenses/LICENSE-2.0
|
10 |
-
*
|
11 |
-
* Unless required by applicable law or agreed to in writing, software
|
12 |
-
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
13 |
-
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
14 |
-
* License for the specific language governing permissions and limitations under
|
15 |
-
* the License.
|
16 |
-
*/
|
17 |
-
|
18 |
-
/**
|
19 |
-
* Service definition for AdSense (v1.4).
|
20 |
-
*
|
21 |
-
* <p>
|
22 |
-
* Gives AdSense publishers access to their inventory and the ability to
|
23 |
-
* generate reports</p>
|
24 |
-
*
|
25 |
-
* <p>
|
26 |
-
* For more information about this service, see the API
|
27 |
-
* <a href="https://developers.google.com/adsense/management/" target="_blank">Documentation</a>
|
28 |
-
* </p>
|
29 |
-
*
|
30 |
-
* @author Google, Inc.
|
31 |
-
*/
|
32 |
-
class GoogleGAL_Service_AdSense extends GoogleGAL_Service
|
33 |
-
|
34 |
-
|
35 |
-
|
36 |
-
|
37 |
-
|
38 |
-
|
39 |
-
|
40 |
-
|
41 |
-
|
42 |
-
|
43 |
-
|
44 |
-
|
45 |
-
|
46 |
-
|
47 |
-
|
48 |
-
|
49 |
-
|
50 |
-
|
51 |
-
|
52 |
-
|
53 |
-
|
54 |
-
|
55 |
-
|
56 |
-
|
57 |
-
|
58 |
-
|
59 |
-
|
60 |
-
|
61 |
-
|
62 |
-
|
63 |
-
|
64 |
-
|
65 |
-
|
66 |
-
|
67 |
-
|
68 |
-
|
69 |
-
|
70 |
-
|
71 |
-
|
72 |
-
|
73 |
-
|
74 |
-
|
75 |
-
|
76 |
-
|
77 |
-
|
78 |
-
|
79 |
-
|
80 |
-
|
81 |
-
|
82 |
-
|
83 |
-
|
84 |
-
|
85 |
-
|
86 |
-
|
87 |
-
|
88 |
-
|
89 |
-
|
90 |
-
|
91 |
-
|
92 |
-
|
93 |
-
|
94 |
-
|
95 |
-
|
96 |
-
|
97 |
-
|
98 |
-
|
99 |
-
|
100 |
-
|
101 |
-
|
102 |
-
|
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 |
-
|
134 |
-
|
135 |
-
|
136 |
-
|
137 |
-
|
138 |
-
|
139 |
-
|
140 |
-
|
141 |
-
|
142 |
-
|
143 |
-
|
144 |
-
|
145 |
-
|
146 |
-
|
147 |
-
|
148 |
-
|
149 |
-
|
150 |
-
|
151 |
-
|
152 |
-
|
153 |
-
|
154 |
-
|
155 |
-
|
156 |
-
|
157 |
-
|
158 |
-
|
159 |
-
|
160 |
-
|
161 |
-
|
162 |
-
|
163 |
-
|
164 |
-
|
165 |
-
|
166 |
-
|
167 |
-
|
168 |
-
|
169 |
-
|
170 |
-
|
171 |
-
|
172 |
-
|
173 |
-
|
174 |
-
|
175 |
-
|
176 |
-
|
177 |
-
|
178 |
-
|
179 |
-
|
180 |
-
|
181 |
-
|
182 |
-
|
183 |
-
|
184 |
-
|
185 |
-
|
186 |
-
|
187 |
-
|
188 |
-
|
189 |
-
|
190 |
-
|
191 |
-
|
192 |
-
|
193 |
-
|
194 |
-
|
195 |
-
|
196 |
-
|
197 |
-
|
198 |
-
|
199 |
-
|
200 |
-
|
201 |
-
|
202 |
-
|
203 |
-
|
204 |
-
|
205 |
-
|
206 |
-
|
207 |
-
|
208 |
-
|
209 |
-
|
210 |
-
|
211 |
-
|
212 |
-
|
213 |
-
|
214 |
-
|
215 |
-
|
216 |
-
|
217 |
-
|
218 |
-
|
219 |
-
|
220 |
-
|
221 |
-
|
222 |
-
|
223 |
-
|
224 |
-
|
225 |
-
|
226 |
-
|
227 |
-
|
228 |
-
|
229 |
-
|
230 |
-
|
231 |
-
|
232 |
-
|
233 |
-
|
234 |
-
|
235 |
-
|
236 |
-
|
237 |
-
|
238 |
-
|
239 |
-
|
240 |
-
|
241 |
-
|
242 |
-
|
243 |
-
|
244 |
-
|
245 |
-
|
246 |
-
|
247 |
-
|
248 |
-
|
249 |
-
|
250 |
-
|
251 |
-
|
252 |
-
|
253 |
-
|
254 |
-
|
255 |
-
|
256 |
-
|
257 |
-
|
258 |
-
|
259 |
-
|
260 |
-
|
261 |
-
|
262 |
-
|
263 |
-
|
264 |
-
|
265 |
-
|
266 |
-
|
267 |
-
|
268 |
-
|
269 |
-
|
270 |
-
|
271 |
-
|
272 |
-
|
273 |
-
|
274 |
-
|
275 |
-
|
276 |
-
|
277 |
-
|
278 |
-
|
279 |
-
|
280 |
-
|
281 |
-
|
282 |
-
|
283 |
-
|
284 |
-
|
285 |
-
|
286 |
-
|
287 |
-
|
288 |
-
|
289 |
-
|
290 |
-
|
291 |
-
|
292 |
-
|
293 |
-
|
294 |
-
|
295 |
-
|
296 |
-
|
297 |
-
|
298 |
-
|
299 |
-
|
300 |
-
|
301 |
-
|
302 |
-
|
303 |
-
|
304 |
-
|
305 |
-
|
306 |
-
|
307 |
-
|
308 |
-
|
309 |
-
|
310 |
-
|
311 |
-
|
312 |
-
|
313 |
-
|
314 |
-
|
315 |
-
|
316 |
-
|
317 |
-
|
318 |
-
|
319 |
-
|
320 |
-
|
321 |
-
|
322 |
-
|
323 |
-
|
324 |
-
|
325 |
-
|
326 |
-
|
327 |
-
|
328 |
-
|
329 |
-
|
330 |
-
|
331 |
-
|
332 |
-
|
333 |
-
|
334 |
-
|
335 |
-
|
336 |
-
|
337 |
-
|
338 |
-
|
339 |
-
|
340 |
-
|
341 |
-
|
342 |
-
|
343 |
-
|
344 |
-
|
345 |
-
|
346 |
-
|
347 |
-
|
348 |
-
|
349 |
-
|
350 |
-
|
351 |
-
|
352 |
-
|
353 |
-
|
354 |
-
|
355 |
-
|
356 |
-
|
357 |
-
|
358 |
-
|
359 |
-
|
360 |
-
|
361 |
-
|
362 |
-
|
363 |
-
|
364 |
-
|
365 |
-
|
366 |
-
|
367 |
-
|
368 |
-
|
369 |
-
|
370 |
-
|
371 |
-
|
372 |
-
|
373 |
-
|
374 |
-
|
375 |
-
|
376 |
-
|
377 |
-
|
378 |
-
|
379 |
-
|
380 |
-
|
381 |
-
|
382 |
-
|
383 |
-
|
384 |
-
|
385 |
-
|
386 |
-
|
387 |
-
|
388 |
-
|
389 |
-
|
390 |
-
|
391 |
-
|
392 |
-
|
393 |
-
|
394 |
-
|
395 |
-
|
396 |
-
|
397 |
-
|
398 |
-
|
399 |
-
|
400 |
-
|
401 |
-
|
402 |
-
|
403 |
-
|
404 |
-
|
405 |
-
|
406 |
-
|
407 |
-
|
408 |
-
|
409 |
-
|
410 |
-
|
411 |
-
|
412 |
-
|
413 |
-
|
414 |
-
|
415 |
-
|
416 |
-
|
417 |
-
|
418 |
-
|
419 |
-
|
420 |
-
|
421 |
-
|
422 |
-
|
423 |
-
|
424 |
-
|
425 |
-
|
426 |
-
|
427 |
-
|
428 |
-
|
429 |
-
|
430 |
-
|
431 |
-
|
432 |
-
|
433 |
-
|
434 |
-
|
435 |
-
|
436 |
-
|
437 |
-
|
438 |
-
|
439 |
-
|
440 |
-
|
441 |
-
|
442 |
-
|
443 |
-
|
444 |
-
|
445 |
-
|
446 |
-
|
447 |
-
|
448 |
-
|
449 |
-
|
450 |
-
|
451 |
-
|
452 |
-
|
453 |
-
|
454 |
-
|
455 |
-
|
456 |
-
|
457 |
-
|
458 |
-
|
459 |
-
|
460 |
-
|
461 |
-
|
462 |
-
|
463 |
-
|
464 |
-
|
465 |
-
|
466 |
-
|
467 |
-
|
468 |
-
|
469 |
-
|
470 |
-
|
471 |
-
|
472 |
-
|
473 |
-
|
474 |
-
|
475 |
-
|
476 |
-
|
477 |
-
|
478 |
-
|
479 |
-
|
480 |
-
|
481 |
-
|
482 |
-
|
483 |
-
|
484 |
-
|
485 |
-
|
486 |
-
|
487 |
-
|
488 |
-
|
489 |
-
|
490 |
-
|
491 |
-
|
492 |
-
|
493 |
-
|
494 |
-
|
495 |
-
|
496 |
-
|
497 |
-
|
498 |
-
|
499 |
-
|
500 |
-
|
501 |
-
|
502 |
-
|
503 |
-
|
504 |
-
|
505 |
-
|
506 |
-
|
507 |
-
|
508 |
-
|
509 |
-
|
510 |
-
|
511 |
-
|
512 |
-
|
513 |
-
|
514 |
-
|
515 |
-
|
516 |
-
|
517 |
-
|
518 |
-
|
519 |
-
|
520 |
-
|
521 |
-
|
522 |
-
|
523 |
-
|
524 |
-
|
525 |
-
|
526 |
-
|
527 |
-
|
528 |
-
|
529 |
-
|
530 |
-
|
531 |
-
|
532 |
-
|
533 |
-
|
534 |
-
|
535 |
-
|
536 |
-
|
537 |
-
|
538 |
-
|
539 |
-
|
540 |
-
|
541 |
-
|
542 |
-
|
543 |
-
|
544 |
-
|
545 |
-
|
546 |
-
|
547 |
-
|
548 |
-
|
549 |
-
|
550 |
-
|
551 |
-
|
552 |
-
|
553 |
-
|
554 |
-
|
555 |
-
|
556 |
-
|
557 |
-
|
558 |
-
|
559 |
-
|
560 |
-
|
561 |
-
|
562 |
-
|
563 |
-
|
564 |
-
|
565 |
-
|
566 |
-
|
567 |
-
|
568 |
-
|
569 |
-
|
570 |
-
|
571 |
-
|
572 |
-
|
573 |
-
|
574 |
-
|
575 |
-
|
576 |
-
|
577 |
-
|
578 |
-
|
579 |
-
|
580 |
-
|
581 |
-
|
582 |
-
|
583 |
-
|
584 |
-
|
585 |
-
|
586 |
-
|
587 |
-
|
588 |
-
|
589 |
-
|
590 |
-
|
591 |
-
|
592 |
-
|
593 |
-
|
594 |
-
|
595 |
-
|
596 |
-
|
597 |
-
|
598 |
-
|
599 |
-
|
600 |
-
|
601 |
-
|
602 |
-
|
603 |
-
|
604 |
-
|
605 |
-
|
606 |
-
|
607 |
-
|
608 |
-
|
609 |
-
|
610 |
-
|
611 |
-
|
612 |
-
|
613 |
-
|
614 |
-
|
615 |
-
|
616 |
-
|
617 |
-
|
618 |
-
|
619 |
-
|
620 |
-
|
621 |
-
|
622 |
-
|
623 |
-
|
624 |
-
|
625 |
-
|
626 |
-
|
627 |
-
|
628 |
-
|
629 |
-
|
630 |
-
|
631 |
-
|
632 |
-
|
633 |
-
|
634 |
-
|
635 |
-
|
636 |
-
|
637 |
-
|
638 |
-
|
639 |
-
|
640 |
-
|
641 |
-
|
642 |
-
|
643 |
-
|
644 |
-
|
645 |
-
|
646 |
-
|
647 |
-
|
648 |
-
|
649 |
-
|
650 |
-
|
651 |
-
|
652 |
-
|
653 |
-
|
654 |
-
|
655 |
-
|
656 |
-
|
657 |
-
|
658 |
-
|
659 |
-
|
660 |
-
|
661 |
-
|
662 |
-
|
663 |
-
|
664 |
-
|
665 |
-
|
666 |
-
|
667 |
-
|
668 |
-
|
669 |
-
|
670 |
-
|
671 |
-
|
672 |
-
|
673 |
-
|
674 |
-
|
675 |
-
|
676 |
-
|
677 |
-
|
678 |
-
|
679 |
-
|
680 |
-
|
681 |
-
|
682 |
-
|
683 |
-
|
684 |
-
|
685 |
-
|
686 |
-
|
687 |
-
|
688 |
-
|
689 |
-
|
690 |
-
|
691 |
-
|
692 |
-
|
693 |
-
|
694 |
-
|
695 |
-
|
696 |
-
|
697 |
-
|
698 |
-
|
699 |
-
|
700 |
-
|
701 |
-
|
702 |
-
|
703 |
-
|
704 |
-
|
705 |
-
|
706 |
-
|
707 |
-
|
708 |
-
|
709 |
-
|
710 |
-
|
711 |
-
|
712 |
-
|
713 |
-
|
714 |
-
|
715 |
-
|
716 |
-
|
717 |
-
|
718 |
-
|
719 |
-
|
720 |
-
|
721 |
-
|
722 |
-
|
723 |
-
|
724 |
-
|
725 |
-
|
726 |
-
|
727 |
-
|
728 |
-
|
729 |
-
|
730 |
-
|
731 |
-
|
732 |
-
|
733 |
-
|
734 |
-
|
735 |
-
|
736 |
-
|
737 |
-
|
738 |
-
|
739 |
-
|
740 |
-
|
741 |
-
|
742 |
-
|
743 |
-
|
744 |
-
|
745 |
-
|
746 |
-
|
747 |
-
|
748 |
-
|
749 |
-
|
750 |
-
|
751 |
-
|
752 |
-
|
753 |
-
|
754 |
-
|
755 |
-
|
756 |
-
|
757 |
-
|
758 |
-
|
759 |
-
|
760 |
-
|
761 |
-
|
762 |
-
|
763 |
-
|
764 |
-
|
765 |
-
|
766 |
-
|
767 |
-
|
768 |
-
|
769 |
-
|
770 |
-
|
771 |
-
|
772 |
-
|
773 |
-
|
774 |
-
|
775 |
-
|
776 |
-
|
777 |
-
|
778 |
-
|
779 |
-
|
780 |
-
|
781 |
-
|
782 |
-
|
783 |
-
|
784 |
-
|
785 |
-
|
786 |
-
|
787 |
-
|
788 |
-
|
789 |
-
|
790 |
-
|
791 |
-
|
792 |
-
|
793 |
-
|
794 |
-
|
795 |
-
|
796 |
-
|
797 |
-
|
798 |
-
|
799 |
-
|
800 |
-
|
801 |
-
|
802 |
-
|
803 |
-
|
804 |
-
|
805 |
-
|
806 |
-
|
807 |
-
|
808 |
-
|
809 |
-
|
810 |
-
|
811 |
-
|
812 |
-
|
813 |
-
|
814 |
-
|
815 |
-
|
816 |
-
|
817 |
-
|
818 |
-
|
819 |
-
|
820 |
-
|
821 |
-
|
822 |
-
|
823 |
-
|
824 |
-
|
825 |
-
|
826 |
-
|
827 |
-
|
828 |
-
|
829 |
-
|
830 |
-
|
831 |
-
|
832 |
-
|
833 |
-
|
834 |
-
|
835 |
-
|
836 |
-
|
837 |
-
|
838 |
-
|
839 |
-
|
840 |
-
|
841 |
-
|
842 |
-
|
843 |
-
|
844 |
-
|
845 |
-
|
846 |
-
|
847 |
-
|
848 |
-
|
849 |
-
|
850 |
-
|
851 |
-
|
852 |
-
|
853 |
-
|
854 |
-
|
855 |
-
|
856 |
-
|
857 |
-
|
858 |
-
|
859 |
-
|
860 |
-
|
861 |
-
|
862 |
-
|
863 |
-
|
864 |
-
|
865 |
-
|
866 |
-
|
867 |
-
|
868 |
-
|
869 |
-
|
870 |
-
|
871 |
-
|
872 |
-
|
873 |
-
|
874 |
-
|
875 |
-
|
876 |
-
|
877 |
-
|
878 |
-
|
879 |
-
|
880 |
-
|
881 |
-
|
882 |
-
|
883 |
-
|
884 |
-
|
885 |
-
|
886 |
-
|
887 |
-
|
888 |
-
|
889 |
-
|
890 |
-
|
891 |
-
|
892 |
-
|
893 |
-
|
894 |
-
|
895 |
-
|
896 |
-
|
897 |
-
|
898 |
-
|
899 |
-
|
900 |
-
|
901 |
-
|
902 |
-
|
903 |
-
|
904 |
-
|
905 |
-
|
906 |
-
|
907 |
-
|
908 |
-
|
909 |
-
|
910 |
-
|
911 |
-
|
912 |
-
|
913 |
-
|
914 |
-
|
915 |
-
|
916 |
-
|
917 |
-
|
918 |
-
|
919 |
-
|
920 |
-
|
921 |
-
|
922 |
-
|
923 |
-
|
924 |
-
|
925 |
-
|
926 |
-
|
927 |
-
|
928 |
-
|
929 |
-
|
930 |
-
|
931 |
-
|
932 |
-
|
933 |
-
|
934 |
-
|
935 |
-
|
936 |
-
|
937 |
-
|
938 |
-
|
939 |
-
|
940 |
-
|
941 |
-
|
942 |
-
|
943 |
-
|
944 |
-
|
945 |
-
|
946 |
-
|
947 |
-
|
948 |
-
|
949 |
-
|
950 |
-
|
951 |
-
|
952 |
-
|
953 |
-
|
954 |
-
|
955 |
-
|
956 |
-
|
957 |
-
|
958 |
-
|
959 |
-
|
960 |
-
|
961 |
-
|
962 |
-
|
963 |
-
|
964 |
-
|
965 |
-
|
966 |
-
|
967 |
-
|
968 |
-
|
969 |
-
|
970 |
-
|
971 |
-
|
972 |
-
|
973 |
-
|
974 |
-
|
975 |
-
|
976 |
-
|
977 |
-
|
978 |
-
|
979 |
-
|
980 |
-
|
981 |
-
|
982 |
-
|
983 |
-
|
984 |
-
|
985 |
-
|
986 |
-
|
987 |
-
|
988 |
-
|
989 |
-
|
990 |
-
|
991 |
-
|
992 |
-
|
993 |
-
|
994 |
-
|
995 |
-
|
996 |
-
|
997 |
-
|
998 |
-
|
999 |
-
|
1000 |
-
|
1001 |
-
|
1002 |
-
|
1003 |
-
|
1004 |
-
|
1005 |
-
|
1006 |
-
|
1007 |
-
|
1008 |
-
|
1009 |
-
|
1010 |
-
|
1011 |
-
|
1012 |
-
|
1013 |
-
|
1014 |
-
|
1015 |
-
|
1016 |
-
|
1017 |
-
|
1018 |
-
|
1019 |
-
|
1020 |
-
|
1021 |
-
|
1022 |
-
|
1023 |
-
|
1024 |
-
|
1025 |
-
|
1026 |
-
|
1027 |
-
|
1028 |
-
|
1029 |
-
|
1030 |
-
|
1031 |
-
|
1032 |
-
|
1033 |
-
|
1034 |
-
|
1035 |
-
|
1036 |
-
|
1037 |
-
|
1038 |
-
|
1039 |
-
|
1040 |
-
|
1041 |
-
|
1042 |
-
|
1043 |
-
|
1044 |
-
|
1045 |
-
|
1046 |
-
|
1047 |
-
|
1048 |
-
|
1049 |
-
|
1050 |
-
|
1051 |
-
|
1052 |
-
|
1053 |
-
|
1054 |
-
|
1055 |
-
|
1056 |
-
|
1057 |
-
|
1058 |
-
|
1059 |
-
|
1060 |
-
|
1061 |
-
|
1062 |
-
|
1063 |
-
|
1064 |
-
|
1065 |
-
|
1066 |
-
|
1067 |
-
|
1068 |
-
|
1069 |
-
|
1070 |
-
|
1071 |
-
|
1072 |
-
|
1073 |
-
|
1074 |
-
|
1075 |
-
|
1076 |
-
|
1077 |
-
|
1078 |
-
|
1079 |
-
|
1080 |
-
|
1081 |
-
|
1082 |
-
|
1083 |
-
|
1084 |
-
|
1085 |
-
|
1086 |
-
|
1087 |
-
|
1088 |
-
|
1089 |
-
|
1090 |
-
|
1091 |
-
|
1092 |
-
|
1093 |
-
|
1094 |
-
|
1095 |
-
|
1096 |
-
|
1097 |
-
|
1098 |
-
|
1099 |
-
|
1100 |
-
|
1101 |
-
|
1102 |
-
|
1103 |
-
|
1104 |
-
|
1105 |
-
|
1106 |
-
|
1107 |
-
|
1108 |
-
|
1109 |
-
|
1110 |
-
|
1111 |
-
|
1112 |
-
|
1113 |
-
|
1114 |
-
|
1115 |
-
|
1116 |
-
|
1117 |
-
|
1118 |
-
|
1119 |
-
|
1120 |
-
|
1121 |
-
|
1122 |
-
|
1123 |
-
|
1124 |
-
|
1125 |
-
|
1126 |
-
|
1127 |
-
|
1128 |
-
|
1129 |
-
|
1130 |
-
|
1131 |
-
|
1132 |
-
|
1133 |
-
|
1134 |
-
|
1135 |
-
|
1136 |
-
|
1137 |
-
|
1138 |
-
|
1139 |
-
|
1140 |
-
|
1141 |
-
|
1142 |
-
|
1143 |
-
|
1144 |
-
|
1145 |
-
|
1146 |
-
|
1147 |
-
|
1148 |
-
|
1149 |
-
|
1150 |
-
|
1151 |
-
|
1152 |
-
|
1153 |
-
|
1154 |
-
|
1155 |
-
|
1156 |
-
|
1157 |
-
|
1158 |
-
|
1159 |
-
|
1160 |
-
|
1161 |
-
|
1162 |
-
|
1163 |
-
|
1164 |
-
|
1165 |
-
|
1166 |
-
|
1167 |
-
|
1168 |
-
|
1169 |
-
|
1170 |
-
|
1171 |
-
|
1172 |
-
|
1173 |
-
|
1174 |
-
|
1175 |
-
|
1176 |
-
|
1177 |
-
|
1178 |
-
|
1179 |
-
|
1180 |
-
|
1181 |
-
|
1182 |
-
|
1183 |
-
|
1184 |
-
|
1185 |
-
|
1186 |
-
|
1187 |
-
|
1188 |
-
|
1189 |
-
|
1190 |
-
|
1191 |
-
|
1192 |
-
|
1193 |
-
|
1194 |
-
|
1195 |
-
|
1196 |
-
|
1197 |
-
|
1198 |
-
|
1199 |
-
|
1200 |
-
|
1201 |
-
|
1202 |
-
|
1203 |
-
|
1204 |
-
|
1205 |
-
|
1206 |
-
|
1207 |
-
|
1208 |
-
|
1209 |
-
|
1210 |
-
|
1211 |
-
|
1212 |
-
|
1213 |
-
|
1214 |
-
|
1215 |
-
|
1216 |
-
|
1217 |
-
|
1218 |
-
|
1219 |
-
|
1220 |
-
|
1221 |
-
|
1222 |
-
|
1223 |
-
|
1224 |
-
|
1225 |
-
|
1226 |
-
|
1227 |
-
|
1228 |
-
|
1229 |
-
|
1230 |
-
|
1231 |
-
|
1232 |
-
|
1233 |
-
|
1234 |
-
|
1235 |
-
|
1236 |
-
|
1237 |
-
|
1238 |
-
|
1239 |
-
|
1240 |
-
|
1241 |
-
|
1242 |
-
|
1243 |
-
|
1244 |
-
|
1245 |
-
|
1246 |
-
|
1247 |
-
|
1248 |
-
|
1249 |
-
|
1250 |
-
|
1251 |
-
|
1252 |
-
|
1253 |
-
|
1254 |
-
|
1255 |
-
|
1256 |
-
|
1257 |
-
|
1258 |
-
|
1259 |
-
|
1260 |
-
|
1261 |
-
|
1262 |
-
|
1263 |
-
|
1264 |
-
|
1265 |
-
|
1266 |
-
|
1267 |
-
|
1268 |
-
|
1269 |
-
|
1270 |
-
|
1271 |
-
|
1272 |
-
|
1273 |
-
|
1274 |
-
|
1275 |
-
|
1276 |
-
|
1277 |
-
|
1278 |
-
|
1279 |
-
|
1280 |
-
|
1281 |
-
|
1282 |
-
|
1283 |
-
|
1284 |
-
|
1285 |
-
|
1286 |
-
|
1287 |
-
|
1288 |
-
|
1289 |
-
|
1290 |
-
|
1291 |
-
|
1292 |
-
|
1293 |
-
|
1294 |
-
|
1295 |
-
|
1296 |
-
|
1297 |
-
|
1298 |
-
|
1299 |
-
|
1300 |
-
|
1301 |
-
|
1302 |
-
|
1303 |
-
|
1304 |
-
|
1305 |
-
|
1306 |
-
|
1307 |
-
|
1308 |
-
|
1309 |
-
|
1310 |
-
|
1311 |
-
|
1312 |
-
|
1313 |
-
|
1314 |
-
|
1315 |
-
|
1316 |
-
|
1317 |
-
|
1318 |
-
|
1319 |
-
|
1320 |
-
|
1321 |
-
|
1322 |
-
|
1323 |
-
|
1324 |
-
|
1325 |
-
|
1326 |
-
|
1327 |
-
|
1328 |
-
|
1329 |
-
|
1330 |
-
|
1331 |
-
|
1332 |
-
|
1333 |
-
|
1334 |
-
|
1335 |
-
|
1336 |
-
|
1337 |
-
|
1338 |
-
|
1339 |
-
|
1340 |
-
|
1341 |
-
|
1342 |
-
|
1343 |
-
|
1344 |
-
|
1345 |
-
|
1346 |
-
|
1347 |
-
|
1348 |
-
|
1349 |
-
|
1350 |
-
|
1351 |
-
|
1352 |
-
|
1353 |
-
|
1354 |
-
|
1355 |
-
|
1356 |
-
|
1357 |
-
|
1358 |
-
|
1359 |
-
|
1360 |
-
|
1361 |
-
|
1362 |
-
|
1363 |
-
|
1364 |
-
|
1365 |
-
|
1366 |
-
|
1367 |
-
|
1368 |
-
|
1369 |
-
|
1370 |
-
|
1371 |
-
|
1372 |
-
|
1373 |
-
|
1374 |
-
|
1375 |
-
|
1376 |
-
|
1377 |
-
|
1378 |
-
|
1379 |
-
|
1380 |
-
|
1381 |
-
|
1382 |
-
|
1383 |
-
|
1384 |
-
|
1385 |
-
|
1386 |
-
|
1387 |
-
|
1388 |
-
|
1389 |
-
|
1390 |
-
|
1391 |
-
|
1392 |
-
|
1393 |
-
|
1394 |
-
|
1395 |
-
|
1396 |
-
|
1397 |
-
|
1398 |
-
|
1399 |
-
|
1400 |
-
|
1401 |
-
|
1402 |
-
|
1403 |
-
|
1404 |
-
|
1405 |
-
|
1406 |
-
|
1407 |
-
|
1408 |
-
*
|
1409 |
-
*
|
1410 |
-
*
|
1411 |
-
|
1412 |
-
|
1413 |
-
|
1414 |
-
|
1415 |
-
|
1416 |
-
|
1417 |
-
|
1418 |
-
|
1419 |
-
|
1420 |
-
|
1421 |
-
|
1422 |
-
|
1423 |
-
|
1424 |
-
|
1425 |
-
|
1426 |
-
|
1427 |
-
|
1428 |
-
|
1429 |
-
|
1430 |
-
|
1431 |
-
|
1432 |
-
|
1433 |
-
|
1434 |
-
|
1435 |
-
|
1436 |
-
|
1437 |
-
|
1438 |
-
|
1439 |
-
|
1440 |
-
|
1441 |
-
|
1442 |
-
|
1443 |
-
|
1444 |
-
|
1445 |
-
|
1446 |
-
|
1447 |
-
|
1448 |
-
|
1449 |
-
|
1450 |
-
|
1451 |
-
|
1452 |
-
|
1453 |
-
|
1454 |
-
|
1455 |
-
|
1456 |
-
|
1457 |
-
|
1458 |
-
|
1459 |
-
|
1460 |
-
|
1461 |
-
|
1462 |
-
|
1463 |
-
|
1464 |
-
|
1465 |
-
|
1466 |
-
|
1467 |
-
|
1468 |
-
|
1469 |
-
|
1470 |
-
|
1471 |
-
|
1472 |
-
|
1473 |
-
|
1474 |
-
|
1475 |
-
|
1476 |
-
|
1477 |
-
|
1478 |
-
|
1479 |
-
|
1480 |
-
|
1481 |
-
|
1482 |
-
|
1483 |
-
|
1484 |
-
|
1485 |
-
|
1486 |
-
|
1487 |
-
|
1488 |
-
|
1489 |
-
|
1490 |
-
|
1491 |
-
|
1492 |
-
|
1493 |
-
|
1494 |
-
|
1495 |
-
|
1496 |
-
|
1497 |
-
|
1498 |
-
|
1499 |
-
|
1500 |
-
|
1501 |
-
|
1502 |
-
|
1503 |
-
|
1504 |
-
|
1505 |
-
|
1506 |
-
|
1507 |
-
|
1508 |
-
|
1509 |
-
|
1510 |
-
|
1511 |
-
|
1512 |
-
|
1513 |
-
|
1514 |
-
|
1515 |
-
|
1516 |
-
|
1517 |
-
|
1518 |
-
|
1519 |
-
|
1520 |
-
|
1521 |
-
|
1522 |
-
|
1523 |
-
|
1524 |
-
|
1525 |
-
|
1526 |
-
|
1527 |
-
|
1528 |
-
|
1529 |
-
|
1530 |
-
|
1531 |
-
|
1532 |
-
|
1533 |
-
|
1534 |
-
|
1535 |
-
|
1536 |
-
|
1537 |
-
|
1538 |
-
|
1539 |
-
|
1540 |
-
|
1541 |
-
|
1542 |
-
|
1543 |
-
|
1544 |
-
|
1545 |
-
|
1546 |
-
|
1547 |
-
|
1548 |
-
|
1549 |
-
|
1550 |
-
|
1551 |
-
|
1552 |
-
|
1553 |
-
|
1554 |
-
|
1555 |
-
|
1556 |
-
|
1557 |
-
|
1558 |
-
|
1559 |
-
|
1560 |
-
|
1561 |
-
|
1562 |
-
|
1563 |
-
|
1564 |
-
|
1565 |
-
|
1566 |
-
|
1567 |
-
|
1568 |
-
|
1569 |
-
|
1570 |
-
|
1571 |
-
|
1572 |
-
|
1573 |
-
|
1574 |
-
|
1575 |
-
|
1576 |
-
|
1577 |
-
|
1578 |
-
|
1579 |
-
|
1580 |
-
|
1581 |
-
|
1582 |
-
|
1583 |
-
|
1584 |
-
|
1585 |
-
|
1586 |
-
}
|
1587 |
-
|
1588 |
-
|
1589 |
-
*
|
1590 |
-
*
|
1591 |
-
*
|
1592 |
-
* $
|
1593 |
-
*
|
1594 |
-
|
1595 |
-
|
1596 |
-
|
1597 |
-
|
1598 |
-
|
1599 |
-
|
1600 |
-
|
1601 |
-
|
1602 |
-
|
1603 |
-
|
1604 |
-
|
1605 |
-
|
1606 |
-
|
1607 |
-
|
1608 |
-
|
1609 |
-
|
1610 |
-
|
1611 |
-
|
1612 |
-
|
1613 |
-
|
1614 |
-
|
1615 |
-
|
1616 |
-
|
1617 |
-
|
1618 |
-
|
1619 |
-
|
1620 |
-
|
1621 |
-
|
1622 |
-
|
1623 |
-
|
1624 |
-
*
|
1625 |
-
*
|
1626 |
-
|
1627 |
-
|
1628 |
-
|
1629 |
-
|
1630 |
-
|
1631 |
-
|
1632 |
-
|
1633 |
-
|
1634 |
-
|
1635 |
-
|
1636 |
-
|
1637 |
-
|
1638 |
-
|
1639 |
-
|
1640 |
-
|
1641 |
-
|
1642 |
-
|
1643 |
-
|
1644 |
-
|
1645 |
-
|
1646 |
-
|
1647 |
-
|
1648 |
-
|
1649 |
-
|
1650 |
-
|
1651 |
-
|
1652 |
-
|
1653 |
-
|
1654 |
-
|
1655 |
-
|
1656 |
-
|
1657 |
-
|
1658 |
-
|
1659 |
-
|
1660 |
-
|
1661 |
-
|
1662 |
-
|
1663 |
-
|
1664 |
-
|
1665 |
-
|
1666 |
-
|
1667 |
-
|
1668 |
-
|
1669 |
-
|
1670 |
-
|
1671 |
-
|
1672 |
-
|
1673 |
-
|
1674 |
-
|
1675 |
-
|
1676 |
-
|
1677 |
-
|
1678 |
-
|
1679 |
-
|
1680 |
-
|
1681 |
-
|
1682 |
-
|
1683 |
-
|
1684 |
-
|
1685 |
-
|
1686 |
-
|
1687 |
-
|
1688 |
-
|
1689 |
-
|
1690 |
-
|
1691 |
-
|
1692 |
-
|
1693 |
-
|
1694 |
-
|
1695 |
-
|
1696 |
-
|
1697 |
-
|
1698 |
-
|
1699 |
-
|
1700 |
-
|
1701 |
-
|
1702 |
-
|
1703 |
-
|
1704 |
-
|
1705 |
-
|
1706 |
-
|
1707 |
-
|
1708 |
-
|
1709 |
-
|
1710 |
-
|
1711 |
-
|
1712 |
-
|
1713 |
-
|
1714 |
-
|
1715 |
-
|
1716 |
-
|
1717 |
-
|
1718 |
-
|
1719 |
-
|
1720 |
-
|
1721 |
-
|
1722 |
-
*
|
1723 |
-
*
|
1724 |
-
*
|
1725 |
-
|
1726 |
-
|
1727 |
-
|
1728 |
-
|
1729 |
-
|
1730 |
-
|
1731 |
-
|
1732 |
-
|
1733 |
-
|
1734 |
-
|
1735 |
-
|
1736 |
-
|
1737 |
-
|
1738 |
-
|
1739 |
-
|
1740 |
-
|
1741 |
-
|
1742 |
-
|
1743 |
-
|
1744 |
-
|
1745 |
-
|
1746 |
-
|
1747 |
-
|
1748 |
-
|
1749 |
-
|
1750 |
-
|
1751 |
-
|
1752 |
-
|
1753 |
-
|
1754 |
-
|
1755 |
-
|
1756 |
-
|
1757 |
-
|
1758 |
-
|
1759 |
-
|
1760 |
-
|
1761 |
-
|
1762 |
-
*
|
1763 |
-
*
|
1764 |
-
|
1765 |
-
|
1766 |
-
|
1767 |
-
|
1768 |
-
|
1769 |
-
|
1770 |
-
|
1771 |
-
|
1772 |
-
|
1773 |
-
|
1774 |
-
|
1775 |
-
|
1776 |
-
|
1777 |
-
|
1778 |
-
|
1779 |
-
|
1780 |
-
|
1781 |
-
|
1782 |
-
|
1783 |
-
|
1784 |
-
|
1785 |
-
|
1786 |
-
|
1787 |
-
|
1788 |
-
|
1789 |
-
|
1790 |
-
|
1791 |
-
|
1792 |
-
|
1793 |
-
|
1794 |
-
|
1795 |
-
|
1796 |
-
|
1797 |
-
|
1798 |
-
|
1799 |
-
|
1800 |
-
|
1801 |
-
|
1802 |
-
|
1803 |
-
|
1804 |
-
|
1805 |
-
|
1806 |
-
|
1807 |
-
|
1808 |
-
|
1809 |
-
|
1810 |
-
|
1811 |
-
|
1812 |
-
|
1813 |
-
|
1814 |
-
|
1815 |
-
|
1816 |
-
|
1817 |
-
|
1818 |
-
|
1819 |
-
|
1820 |
-
|
1821 |
-
|
1822 |
-
|
1823 |
-
|
1824 |
-
|
1825 |
-
|
1826 |
-
|
1827 |
-
|
1828 |
-
|
1829 |
-
|
1830 |
-
|
1831 |
-
|
1832 |
-
|
1833 |
-
|
1834 |
-
|
1835 |
-
|
1836 |
-
|
1837 |
-
|
1838 |
-
|
1839 |
-
|
1840 |
-
|
1841 |
-
|
1842 |
-
|
1843 |
-
|
1844 |
-
|
1845 |
-
|
1846 |
-
|
1847 |
-
|
1848 |
-
|
1849 |
-
*
|
1850 |
-
*
|
1851 |
-
*
|
1852 |
-
*
|
1853 |
-
|
1854 |
-
|
1855 |
-
|
1856 |
-
|
1857 |
-
|
1858 |
-
|
1859 |
-
|
1860 |
-
|
1861 |
-
|
1862 |
-
|
1863 |
-
|
1864 |
-
|
1865 |
-
|
1866 |
-
|
1867 |
-
|
1868 |
-
|
1869 |
-
|
1870 |
-
|
1871 |
-
|
1872 |
-
|
1873 |
-
|
1874 |
-
|
1875 |
-
|
1876 |
-
|
1877 |
-
|
1878 |
-
|
1879 |
-
|
1880 |
-
|
1881 |
-
|
1882 |
-
|
1883 |
-
|
1884 |
-
|
1885 |
-
|
1886 |
-
|
1887 |
-
*
|
1888 |
-
*
|
1889 |
-
*
|
1890 |
-
|
1891 |
-
|
1892 |
-
|
1893 |
-
|
1894 |
-
|
1895 |
-
|
1896 |
-
|
1897 |
-
|
1898 |
-
|
1899 |
-
|
1900 |
-
|
1901 |
-
|
1902 |
-
|
1903 |
-
|
1904 |
-
|
1905 |
-
|
1906 |
-
|
1907 |
-
|
1908 |
-
|
1909 |
-
/**
|
1910 |
-
|
1911 |
-
|
1912 |
-
|
1913 |
-
|
1914 |
-
|
1915 |
-
|
1916 |
-
|
1917 |
-
|
1918 |
-
|
1919 |
-
|
1920 |
-
|
1921 |
-
|
1922 |
-
|
1923 |
-
|
1924 |
-
|
1925 |
-
|
1926 |
-
|
1927 |
-
|
1928 |
-
|
1929 |
-
|
1930 |
-
|
1931 |
-
|
1932 |
-
|
1933 |
-
|
1934 |
-
|
1935 |
-
|
1936 |
-
|
1937 |
-
|
1938 |
-
|
1939 |
-
|
1940 |
-
|
1941 |
-
|
1942 |
-
|
1943 |
-
|
1944 |
-
|
1945 |
-
|
1946 |
-
|
1947 |
-
|
1948 |
-
|
1949 |
-
|
1950 |
-
|
1951 |
-
|
1952 |
-
|
1953 |
-
|
1954 |
-
|
1955 |
-
|
1956 |
-
|
1957 |
-
|
1958 |
-
|
1959 |
-
|
1960 |
-
|
1961 |
-
|
1962 |
-
|
1963 |
-
|
1964 |
-
|
1965 |
-
|
1966 |
-
|
1967 |
-
|
1968 |
-
|
1969 |
-
|
1970 |
-
|
1971 |
-
|
1972 |
-
|
1973 |
-
|
1974 |
-
|
1975 |
-
|
1976 |
-
|
1977 |
-
|
1978 |
-
|
1979 |
-
|
1980 |
-
|
1981 |
-
|
1982 |
-
|
1983 |
-
|
1984 |
-
|
1985 |
-
|
1986 |
-
|
1987 |
-
|
1988 |
-
|
1989 |
-
|
1990 |
-
|
1991 |
-
|
1992 |
-
|
1993 |
-
|
1994 |
-
|
1995 |
-
|
1996 |
-
|
1997 |
-
|
1998 |
-
|
1999 |
-
|
2000 |
-
|
2001 |
-
|
2002 |
-
|
2003 |
-
|
2004 |
-
|
2005 |
-
|
2006 |
-
|
2007 |
-
|
2008 |
-
|
2009 |
-
|
2010 |
-
|
2011 |
-
|
2012 |
-
|
2013 |
-
|
2014 |
-
|
2015 |
-
|
2016 |
-
|
2017 |
-
|
2018 |
-
|
2019 |
-
|
2020 |
-
|
2021 |
-
|
2022 |
-
|
2023 |
-
|
2024 |
-
|
2025 |
-
|
2026 |
-
|
2027 |
-
|
2028 |
-
|
2029 |
-
|
2030 |
-
|
2031 |
-
|
2032 |
-
|
2033 |
-
|
2034 |
-
|
2035 |
-
|
2036 |
-
|
2037 |
-
|
2038 |
-
|
2039 |
-
|
2040 |
-
|
2041 |
-
|
2042 |
-
|
2043 |
-
|
2044 |
-
|
2045 |
-
|
2046 |
-
|
2047 |
-
|
2048 |
-
|
2049 |
-
|
2050 |
-
|
2051 |
-
|
2052 |
-
|
2053 |
-
|
2054 |
-
|
2055 |
-
|
2056 |
-
|
2057 |
-
|
2058 |
-
|
2059 |
-
|
2060 |
-
|
2061 |
-
|
2062 |
-
|
2063 |
-
|
2064 |
-
|
2065 |
-
|
2066 |
-
|
2067 |
-
|
2068 |
-
|
2069 |
-
|
2070 |
-
|
2071 |
-
|
2072 |
-
|
2073 |
-
|
2074 |
-
|
2075 |
-
|
2076 |
-
|
2077 |
-
|
2078 |
-
|
2079 |
-
|
2080 |
-
|
2081 |
-
|
2082 |
-
|
2083 |
-
|
2084 |
-
|
2085 |
-
|
2086 |
-
|
2087 |
-
|
2088 |
-
|
2089 |
-
|
2090 |
-
{
|
2091 |
-
|
2092 |
-
|
2093 |
-
|
2094 |
-
|
2095 |
-
|
2096 |
-
|
2097 |
-
|
2098 |
-
|
2099 |
-
|
2100 |
-
|
2101 |
-
|
2102 |
-
|
2103 |
-
|
2104 |
-
|
2105 |
-
|
2106 |
-
|
2107 |
-
|
2108 |
-
|
2109 |
-
|
2110 |
-
|
2111 |
-
|
2112 |
-
|
2113 |
-
|
2114 |
-
|
2115 |
-
|
2116 |
-
|
2117 |
-
|
2118 |
-
|
2119 |
-
|
2120 |
-
|
2121 |
-
|
2122 |
-
|
2123 |
-
|
2124 |
-
|
2125 |
-
|
2126 |
-
|
2127 |
-
|
2128 |
-
|
2129 |
-
|
2130 |
-
|
2131 |
-
|
2132 |
-
|
2133 |
-
|
2134 |
-
|
2135 |
-
|
2136 |
-
|
2137 |
-
|
2138 |
-
|
2139 |
-
|
2140 |
-
|
2141 |
-
|
2142 |
-
|
2143 |
-
|
2144 |
-
|
2145 |
-
|
2146 |
-
|
2147 |
-
|
2148 |
-
|
2149 |
-
|
2150 |
-
|
2151 |
-
|
2152 |
-
|
2153 |
-
|
2154 |
-
|
2155 |
-
|
2156 |
-
|
2157 |
-
|
2158 |
-
|
2159 |
-
|
2160 |
-
|
2161 |
-
|
2162 |
-
|
2163 |
-
|
2164 |
-
|
2165 |
-
|
2166 |
-
|
2167 |
-
|
2168 |
-
|
2169 |
-
|
2170 |
-
|
2171 |
-
|
2172 |
-
|
2173 |
-
|
2174 |
-
|
2175 |
-
|
2176 |
-
|
2177 |
-
|
2178 |
-
|
2179 |
-
|
2180 |
-
|
2181 |
-
|
2182 |
-
{
|
2183 |
-
|
2184 |
-
|
2185 |
-
|
2186 |
-
|
2187 |
-
|
2188 |
-
|
2189 |
-
|
2190 |
-
|
2191 |
-
|
2192 |
-
|
2193 |
-
|
2194 |
-
|
2195 |
-
|
2196 |
-
|
2197 |
-
|
2198 |
-
|
2199 |
-
|
2200 |
-
|
2201 |
-
|
2202 |
-
|
2203 |
-
|
2204 |
-
|
2205 |
-
|
2206 |
-
|
2207 |
-
|
2208 |
-
|
2209 |
-
|
2210 |
-
|
2211 |
-
|
2212 |
-
|
2213 |
-
|
2214 |
-
|
2215 |
-
|
2216 |
-
|
2217 |
-
|
2218 |
-
|
2219 |
-
|
2220 |
-
|
2221 |
-
|
2222 |
-
|
2223 |
-
|
2224 |
-
|
2225 |
-
|
2226 |
-
|
2227 |
-
|
2228 |
-
{
|
2229 |
-
|
2230 |
-
|
2231 |
-
|
2232 |
-
|
2233 |
-
|
2234 |
-
|
2235 |
-
|
2236 |
-
|
2237 |
-
|
2238 |
-
|
2239 |
-
|
2240 |
-
|
2241 |
-
|
2242 |
-
|
2243 |
-
|
2244 |
-
|
2245 |
-
|
2246 |
-
|
2247 |
-
|
2248 |
-
|
2249 |
-
|
2250 |
-
|
2251 |
-
|
2252 |
-
|
2253 |
-
|
2254 |
-
|
2255 |
-
|
2256 |
-
|
2257 |
-
|
2258 |
-
|
2259 |
-
|
2260 |
-
|
2261 |
-
|
2262 |
-
|
2263 |
-
|
2264 |
-
|
2265 |
-
|
2266 |
-
|
2267 |
-
|
2268 |
-
|
2269 |
-
|
2270 |
-
|
2271 |
-
|
2272 |
-
|
2273 |
-
|
2274 |
-
|
2275 |
-
|
2276 |
-
|
2277 |
-
|
2278 |
-
|
2279 |
-
|
2280 |
-
|
2281 |
-
|
2282 |
-
|
2283 |
-
|
2284 |
-
|
2285 |
-
|
2286 |
-
|
2287 |
-
|
2288 |
-
|
2289 |
-
|
2290 |
-
|
2291 |
-
|
2292 |
-
|
2293 |
-
|
2294 |
-
|
2295 |
-
|
2296 |
-
|
2297 |
-
|
2298 |
-
|
2299 |
-
|
2300 |
-
|
2301 |
-
|
2302 |
-
|
2303 |
-
|
2304 |
-
|
2305 |
-
|
2306 |
-
|
2307 |
-
|
2308 |
-
|
2309 |
-
|
2310 |
-
|
2311 |
-
|
2312 |
-
|
2313 |
-
|
2314 |
-
|
2315 |
-
|
2316 |
-
|
2317 |
-
|
2318 |
-
|
2319 |
-
|
2320 |
-
|
2321 |
-
|
2322 |
-
|
2323 |
-
|
2324 |
-
|
2325 |
-
|
2326 |
-
|
2327 |
-
|
2328 |
-
|
2329 |
-
|
2330 |
-
|
2331 |
-
|
2332 |
-
|
2333 |
-
|
2334 |
-
|
2335 |
-
|
2336 |
-
|
2337 |
-
|
2338 |
-
|
2339 |
-
|
2340 |
-
|
2341 |
-
|
2342 |
-
|
2343 |
-
|
2344 |
-
|
2345 |
-
|
2346 |
-
|
2347 |
-
|
2348 |
-
|
2349 |
-
|
2350 |
-
|
2351 |
-
|
2352 |
-
|
2353 |
-
|
2354 |
-
|
2355 |
-
|
2356 |
-
|
2357 |
-
|
2358 |
-
|
2359 |
-
}
|
2360 |
-
|
2361 |
-
|
2362 |
-
|
2363 |
-
|
2364 |
-
|
2365 |
-
|
2366 |
-
|
2367 |
-
|
2368 |
-
|
2369 |
-
|
2370 |
-
|
2371 |
-
|
2372 |
-
|
2373 |
-
|
2374 |
-
|
2375 |
-
|
2376 |
-
|
2377 |
-
|
2378 |
-
|
2379 |
-
|
2380 |
-
|
2381 |
-
|
2382 |
-
|
2383 |
-
|
2384 |
-
|
2385 |
-
|
2386 |
-
|
2387 |
-
|
2388 |
-
|
2389 |
-
|
2390 |
-
|
2391 |
-
|
2392 |
-
|
2393 |
-
|
2394 |
-
|
2395 |
-
|
2396 |
-
|
2397 |
-
|
2398 |
-
|
2399 |
-
|
2400 |
-
|
2401 |
-
|
2402 |
-
|
2403 |
-
|
2404 |
-
|
2405 |
-
|
2406 |
-
|
2407 |
-
|
2408 |
-
{
|
2409 |
-
|
2410 |
-
|
2411 |
-
|
2412 |
-
|
2413 |
-
|
2414 |
-
|
2415 |
-
|
2416 |
-
|
2417 |
-
|
2418 |
-
|
2419 |
-
|
2420 |
-
|
2421 |
-
|
2422 |
-
|
2423 |
-
|
2424 |
-
|
2425 |
-
|
2426 |
-
|
2427 |
-
|
2428 |
-
|
2429 |
-
|
2430 |
-
|
2431 |
-
|
2432 |
-
|
2433 |
-
|
2434 |
-
|
2435 |
-
|
2436 |
-
|
2437 |
-
|
2438 |
-
|
2439 |
-
|
2440 |
-
|
2441 |
-
|
2442 |
-
|
2443 |
-
|
2444 |
-
|
2445 |
-
|
2446 |
-
|
2447 |
-
|
2448 |
-
|
2449 |
-
|
2450 |
-
|
2451 |
-
|
2452 |
-
|
2453 |
-
|
2454 |
-
|
2455 |
-
|
2456 |
-
|
2457 |
-
|
2458 |
-
|
2459 |
-
|
2460 |
-
|
2461 |
-
|
2462 |
-
|
2463 |
-
|
2464 |
-
|
2465 |
-
|
2466 |
-
|
2467 |
-
|
2468 |
-
|
2469 |
-
|
2470 |
-
|
2471 |
-
|
2472 |
-
|
2473 |
-
|
2474 |
-
|
2475 |
-
|
2476 |
-
|
2477 |
-
|
2478 |
-
|
2479 |
-
|
2480 |
-
|
2481 |
-
|
2482 |
-
|
2483 |
-
|
2484 |
-
|
2485 |
-
|
2486 |
-
|
2487 |
-
|
2488 |
-
|
2489 |
-
|
2490 |
-
|
2491 |
-
|
2492 |
-
|
2493 |
-
|
2494 |
-
|
2495 |
-
|
2496 |
-
|
2497 |
-
|
2498 |
-
|
2499 |
-
|
2500 |
-
|
2501 |
-
|
2502 |
-
|
2503 |
-
|
2504 |
-
|
2505 |
-
|
2506 |
-
|
2507 |
-
|
2508 |
-
|
2509 |
-
|
2510 |
-
|
2511 |
-
|
2512 |
-
|
2513 |
-
|
2514 |
-
|
2515 |
-
|
2516 |
-
|
2517 |
-
|
2518 |
-
|
2519 |
-
|
2520 |
-
|
2521 |
-
|
2522 |
-
|
2523 |
-
|
2524 |
-
|
2525 |
-
|
2526 |
-
|
2527 |
-
|
2528 |
-
|
2529 |
-
|
2530 |
-
|
2531 |
-
|
2532 |
-
|
2533 |
-
|
2534 |
-
|
2535 |
-
|
2536 |
-
|
2537 |
-
|
2538 |
-
|
2539 |
-
|
2540 |
-
|
2541 |
-
|
2542 |
-
|
2543 |
-
|
2544 |
-
|
2545 |
-
|
2546 |
-
|
2547 |
-
|
2548 |
-
|
2549 |
-
|
2550 |
-
|
2551 |
-
|
2552 |
-
|
2553 |
-
|
2554 |
-
|
2555 |
-
|
2556 |
-
|
2557 |
-
|
2558 |
-
|
2559 |
-
|
2560 |
-
|
2561 |
-
|
2562 |
-
|
2563 |
-
|
2564 |
-
|
2565 |
-
|
2566 |
-
|
2567 |
-
|
2568 |
-
|
2569 |
-
|
2570 |
-
|
2571 |
-
|
2572 |
-
|
2573 |
-
|
2574 |
-
|
2575 |
-
|
2576 |
-
|
2577 |
-
|
2578 |
-
|
2579 |
-
|
2580 |
-
|
2581 |
-
|
2582 |
-
|
2583 |
-
|
2584 |
-
|
2585 |
-
|
2586 |
-
|
2587 |
-
|
2588 |
-
|
2589 |
-
|
2590 |
-
|
2591 |
-
|
2592 |
-
|
2593 |
-
|
2594 |
-
|
2595 |
-
|
2596 |
-
|
2597 |
-
|
2598 |
-
|
2599 |
-
|
2600 |
-
|
2601 |
-
|
2602 |
-
|
2603 |
-
|
2604 |
-
|
2605 |
-
|
2606 |
-
|
2607 |
-
|
2608 |
-
|
2609 |
-
|
2610 |
-
|
2611 |
-
|
2612 |
-
|
2613 |
-
|
2614 |
-
|
2615 |
-
|
2616 |
-
|
2617 |
-
|
2618 |
-
|
2619 |
-
|
2620 |
-
|
2621 |
-
|
2622 |
-
|
2623 |
-
|
2624 |
-
|
2625 |
-
|
2626 |
-
|
2627 |
-
|
2628 |
-
|
2629 |
-
|
2630 |
-
|
2631 |
-
|
2632 |
-
|
2633 |
-
|
2634 |
-
|
2635 |
-
|
2636 |
-
|
2637 |
-
|
2638 |
-
|
2639 |
-
|
2640 |
-
|
2641 |
-
|
2642 |
-
|
2643 |
-
|
2644 |
-
|
2645 |
-
|
2646 |
-
|
2647 |
-
|
2648 |
-
|
2649 |
-
|
2650 |
-
|
2651 |
-
|
2652 |
-
|
2653 |
-
|
2654 |
-
|
2655 |
-
|
2656 |
-
|
2657 |
-
|
2658 |
-
|
2659 |
-
|
2660 |
-
|
2661 |
-
|
2662 |
-
|
2663 |
-
|
2664 |
-
|
2665 |
-
|
2666 |
-
|
2667 |
-
|
2668 |
-
|
2669 |
-
|
2670 |
-
|
2671 |
-
|
2672 |
-
|
2673 |
-
|
2674 |
-
|
2675 |
-
|
2676 |
-
|
2677 |
-
|
2678 |
-
|
2679 |
-
|
2680 |
-
|
2681 |
-
|
2682 |
-
|
2683 |
-
|
2684 |
-
|
2685 |
-
|
2686 |
-
|
2687 |
-
|
2688 |
-
|
2689 |
-
|
2690 |
-
|
2691 |
-
|
2692 |
-
|
2693 |
-
|
2694 |
-
|
2695 |
-
|
2696 |
-
|
2697 |
-
|
2698 |
-
|
2699 |
-
|
2700 |
-
|
2701 |
-
|
2702 |
-
|
2703 |
-
|
2704 |
-
|
2705 |
-
|
2706 |
-
|
2707 |
-
|
2708 |
-
|
2709 |
-
|
2710 |
-
|
2711 |
-
|
2712 |
-
|
2713 |
-
|
2714 |
-
|
2715 |
-
|
2716 |
-
|
2717 |
-
|
2718 |
-
|
2719 |
-
|
2720 |
-
|
2721 |
-
|
2722 |
-
|
2723 |
-
|
2724 |
-
|
2725 |
-
|
2726 |
-
|
2727 |
-
|
2728 |
-
|
2729 |
-
|
2730 |
-
|
2731 |
-
|
2732 |
-
|
2733 |
-
|
2734 |
-
|
2735 |
-
|
2736 |
-
|
2737 |
-
|
2738 |
-
|
2739 |
-
|
2740 |
-
|
2741 |
-
|
2742 |
-
|
2743 |
-
|
2744 |
-
|
2745 |
-
}
|
2746 |
-
|
2747 |
-
|
2748 |
-
|
2749 |
-
|
2750 |
-
|
2751 |
-
|
2752 |
-
|
2753 |
-
|
2754 |
-
|
2755 |
-
|
2756 |
-
|
2757 |
-
|
2758 |
-
|
2759 |
-
|
2760 |
-
|
2761 |
-
|
2762 |
-
|
2763 |
-
|
2764 |
-
|
2765 |
-
|
2766 |
-
|
2767 |
-
|
2768 |
-
|
2769 |
-
|
2770 |
-
|
2771 |
-
|
2772 |
-
|
2773 |
-
|
2774 |
-
|
2775 |
-
|
2776 |
-
|
2777 |
-
|
2778 |
-
|
2779 |
-
|
2780 |
-
|
2781 |
-
|
2782 |
-
|
2783 |
-
|
2784 |
-
|
2785 |
-
|
2786 |
-
|
2787 |
-
|
2788 |
-
|
2789 |
-
|
2790 |
-
|
2791 |
-
|
2792 |
-
|
2793 |
-
|
2794 |
-
|
2795 |
-
|
2796 |
-
|
2797 |
-
|
2798 |
-
|
2799 |
-
|
2800 |
-
|
2801 |
-
|
2802 |
-
|
2803 |
-
|
2804 |
-
|
2805 |
-
|
2806 |
-
|
2807 |
-
|
2808 |
-
|
2809 |
-
|
2810 |
-
|
2811 |
-
|
2812 |
-
|
2813 |
-
|
2814 |
-
|
2815 |
-
|
2816 |
-
|
2817 |
-
|
2818 |
-
|
2819 |
-
|
2820 |
-
|
2821 |
-
|
2822 |
-
|
2823 |
-
|
2824 |
-
|
2825 |
-
|
2826 |
-
|
2827 |
-
|
2828 |
-
|
2829 |
-
|
2830 |
-
|
2831 |
-
|
2832 |
-
|
2833 |
-
|
2834 |
-
|
2835 |
-
|
2836 |
-
|
2837 |
-
|
2838 |
-
|
2839 |
-
|
2840 |
-
|
2841 |
-
|
2842 |
-
|
2843 |
-
|
2844 |
-
|
2845 |
-
|
2846 |
-
|
2847 |
-
|
2848 |
-
|
2849 |
-
|
2850 |
-
|
2851 |
-
|
2852 |
-
|
2853 |
-
|
2854 |
-
|
2855 |
-
|
2856 |
-
|
2857 |
-
|
2858 |
-
|
2859 |
-
|
2860 |
-
|
2861 |
-
|
2862 |
-
|
2863 |
-
|
2864 |
-
|
2865 |
-
|
2866 |
-
|
2867 |
-
|
2868 |
-
|
2869 |
-
|
2870 |
-
|
2871 |
-
|
2872 |
-
|
2873 |
-
|
2874 |
-
|
2875 |
-
|
2876 |
-
|
2877 |
-
|
2878 |
-
|
2879 |
-
|
2880 |
-
|
2881 |
-
|
2882 |
-
}
|
2883 |
-
|
2884 |
-
|
2885 |
-
|
2886 |
-
|
2887 |
-
|
2888 |
-
|
2889 |
-
|
2890 |
-
|
2891 |
-
|
2892 |
-
|
2893 |
-
|
2894 |
-
|
2895 |
-
|
2896 |
-
|
2897 |
-
|
2898 |
-
|
2899 |
-
|
2900 |
-
|
2901 |
-
|
2902 |
-
|
2903 |
-
|
2904 |
-
|
2905 |
-
|
2906 |
-
|
2907 |
-
|
2908 |
-
|
2909 |
-
|
2910 |
-
|
2911 |
-
|
2912 |
-
|
2913 |
-
|
2914 |
-
|
2915 |
-
|
2916 |
-
|
2917 |
-
}
|
2918 |
-
|
2919 |
-
|
2920 |
-
|
2921 |
-
|
2922 |
-
|
2923 |
-
|
2924 |
-
|
2925 |
-
|
2926 |
-
|
2927 |
-
|
2928 |
-
|
2929 |
-
|
2930 |
-
|
2931 |
-
|
2932 |
-
|
2933 |
-
|
2934 |
-
|
2935 |
-
|
2936 |
-
|
2937 |
-
|
2938 |
-
|
2939 |
-
|
2940 |
-
|
2941 |
-
|
2942 |
-
|
2943 |
-
|
2944 |
-
|
2945 |
-
|
2946 |
-
|
2947 |
-
|
2948 |
-
|
2949 |
-
|
2950 |
-
|
2951 |
-
|
2952 |
-
|
2953 |
-
|
2954 |
-
|
2955 |
-
|
2956 |
-
|
2957 |
-
|
2958 |
-
|
2959 |
-
|
2960 |
-
|
2961 |
-
|
2962 |
-
|
2963 |
-
|
2964 |
-
|
2965 |
-
|
2966 |
-
|
2967 |
-
|
2968 |
-
|
2969 |
-
|
2970 |
-
|
2971 |
-
|
2972 |
-
|
2973 |
-
|
2974 |
-
|
2975 |
-
|
2976 |
-
|
2977 |
-
|
2978 |
-
|
2979 |
-
|
2980 |
-
|
2981 |
-
|
2982 |
-
|
2983 |
-
|
2984 |
-
|
2985 |
-
|
2986 |
-
|
2987 |
-
|
2988 |
-
|
2989 |
-
|
2990 |
-
|
2991 |
-
|
2992 |
-
|
2993 |
-
|
2994 |
-
|
2995 |
-
|
2996 |
-
|
2997 |
-
|
2998 |
-
|
2999 |
-
|
3000 |
-
|
3001 |
-
|
3002 |
-
|
3003 |
-
|
3004 |
-
|
3005 |
-
|
3006 |
-
|
3007 |
-
|
3008 |
-
|
3009 |
-
|
3010 |
-
|
3011 |
-
|
3012 |
-
|
3013 |
-
|
3014 |
-
|
3015 |
-
|
3016 |
-
|
3017 |
-
|
3018 |
-
|
3019 |
-
|
3020 |
-
|
3021 |
-
|
3022 |
-
|
3023 |
-
|
3024 |
-
|
3025 |
-
|
3026 |
-
|
3027 |
-
|
3028 |
-
|
3029 |
-
|
3030 |
-
|
3031 |
-
|
3032 |
-
|
3033 |
-
|
3034 |
-
|
3035 |
-
|
3036 |
-
|
3037 |
-
|
3038 |
-
|
3039 |
-
|
3040 |
-
|
3041 |
-
|
3042 |
-
|
3043 |
-
|
3044 |
-
|
3045 |
-
|
3046 |
-
|
3047 |
-
|
3048 |
-
|
3049 |
-
|
3050 |
-
|
3051 |
-
|
3052 |
-
|
3053 |
-
|
3054 |
-
|
3055 |
-
|
3056 |
-
|
3057 |
-
|
3058 |
-
|
3059 |
-
|
3060 |
-
|
3061 |
-
|
3062 |
-
|
3063 |
-
|
3064 |
-
|
3065 |
-
|
3066 |
-
|
3067 |
-
|
3068 |
-
|
3069 |
-
|
3070 |
-
|
3071 |
-
|
3072 |
-
|
3073 |
-
|
3074 |
-
|
3075 |
-
|
3076 |
-
|
3077 |
-
|
3078 |
-
|
3079 |
-
|
3080 |
-
|
3081 |
-
|
3082 |
-
|
3083 |
-
|
3084 |
-
|
3085 |
-
|
3086 |
-
|
3087 |
-
|
3088 |
-
|
3089 |
-
|
3090 |
-
|
3091 |
-
|
3092 |
-
|
3093 |
-
|
3094 |
-
|
3095 |
-
|
3096 |
-
|
3097 |
-
|
3098 |
-
|
3099 |
-
|
3100 |
-
|
3101 |
-
|
3102 |
-
|
3103 |
-
|
3104 |
-
|
3105 |
-
}
|
3106 |
-
|
3107 |
-
|
3108 |
-
|
3109 |
-
|
3110 |
-
|
3111 |
-
|
3112 |
-
|
3113 |
-
|
3114 |
-
|
3115 |
-
|
3116 |
-
|
3117 |
-
|
3118 |
-
|
3119 |
-
|
3120 |
-
|
3121 |
-
|
3122 |
-
|
3123 |
-
|
3124 |
-
|
3125 |
-
|
3126 |
-
|
3127 |
-
|
3128 |
-
|
3129 |
-
|
3130 |
-
|
3131 |
-
|
3132 |
-
|
3133 |
-
|
3134 |
-
}
|
3135 |
-
public function setKind($kind)
|
3136 |
-
{
|
3137 |
-
$this->kind = $kind;
|
3138 |
-
}
|
3139 |
-
public function getKind()
|
3140 |
-
{
|
3141 |
-
return $this->kind;
|
3142 |
-
}
|
3143 |
-
public function setNextPageToken($nextPageToken)
|
3144 |
-
{
|
3145 |
-
$this->nextPageToken = $nextPageToken;
|
3146 |
-
}
|
3147 |
-
public function getNextPageToken()
|
3148 |
-
{
|
3149 |
-
return $this->nextPageToken;
|
3150 |
-
}
|
3151 |
-
}
|
3152 |
-
|
3153 |
-
class GoogleGAL_Service_AdSense_Metadata extends GoogleGAL_Collection
|
3154 |
-
{
|
3155 |
-
protected $collection_key = 'items';
|
3156 |
-
protected $internal_gapi_mappings = array(
|
3157 |
-
);
|
3158 |
-
protected $itemsType = 'GoogleGAL_Service_AdSense_ReportingMetadataEntry';
|
3159 |
-
protected $itemsDataType = 'array';
|
3160 |
-
public $kind;
|
3161 |
-
|
3162 |
-
|
3163 |
-
public function setItems($items)
|
3164 |
-
{
|
3165 |
-
$this->items = $items;
|
3166 |
-
}
|
3167 |
-
public function getItems()
|
3168 |
-
{
|
3169 |
-
return $this->items;
|
3170 |
-
}
|
3171 |
-
public function setKind($kind)
|
3172 |
-
{
|
3173 |
-
$this->kind = $kind;
|
3174 |
-
}
|
3175 |
-
public function getKind()
|
3176 |
-
{
|
3177 |
-
return $this->kind;
|
3178 |
-
}
|
3179 |
-
}
|
3180 |
-
|
3181 |
-
class GoogleGAL_Service_AdSense_Payment extends GoogleGAL_Model
|
3182 |
-
{
|
3183 |
-
protected $internal_gapi_mappings = array(
|
3184 |
-
);
|
3185 |
-
public $id;
|
3186 |
-
public $kind;
|
3187 |
-
public $paymentAmount;
|
3188 |
-
public $paymentAmountCurrencyCode;
|
3189 |
-
public $paymentDate;
|
3190 |
-
|
3191 |
-
|
3192 |
-
public function setId($id)
|
3193 |
-
{
|
3194 |
-
$this->id = $id;
|
3195 |
-
}
|
3196 |
-
public function getId()
|
3197 |
-
{
|
3198 |
-
return $this->id;
|
3199 |
-
}
|
3200 |
-
public function setKind($kind)
|
3201 |
-
{
|
3202 |
-
$this->kind = $kind;
|
3203 |
-
}
|
3204 |
-
public function getKind()
|
3205 |
-
{
|
3206 |
-
return $this->kind;
|
3207 |
-
}
|
3208 |
-
public function setPaymentAmount($paymentAmount)
|
3209 |
-
{
|
3210 |
-
$this->paymentAmount = $paymentAmount;
|
3211 |
-
}
|
3212 |
-
public function getPaymentAmount()
|
3213 |
-
{
|
3214 |
-
return $this->paymentAmount;
|
3215 |
-
}
|
3216 |
-
public function setPaymentAmountCurrencyCode($paymentAmountCurrencyCode)
|
3217 |
-
{
|
3218 |
-
$this->paymentAmountCurrencyCode = $paymentAmountCurrencyCode;
|
3219 |
-
}
|
3220 |
-
public function getPaymentAmountCurrencyCode()
|
3221 |
-
{
|
3222 |
-
return $this->paymentAmountCurrencyCode;
|
3223 |
-
}
|
3224 |
-
public function setPaymentDate($paymentDate)
|
3225 |
-
{
|
3226 |
-
$this->paymentDate = $paymentDate;
|
3227 |
-
}
|
3228 |
-
public function getPaymentDate()
|
3229 |
-
{
|
3230 |
-
return $this->paymentDate;
|
3231 |
-
}
|
3232 |
-
}
|
3233 |
-
|
3234 |
-
class GoogleGAL_Service_AdSense_Payments extends GoogleGAL_Collection
|
3235 |
-
{
|
3236 |
-
protected $collection_key = 'items';
|
3237 |
-
protected $internal_gapi_mappings = array(
|
3238 |
-
);
|
3239 |
-
protected $itemsType = 'GoogleGAL_Service_AdSense_Payment';
|
3240 |
-
protected $itemsDataType = 'array';
|
3241 |
-
public $kind;
|
3242 |
-
|
3243 |
-
|
3244 |
-
public function setItems($items)
|
3245 |
-
{
|
3246 |
-
$this->items = $items;
|
3247 |
-
}
|
3248 |
-
public function getItems()
|
3249 |
-
{
|
3250 |
-
return $this->items;
|
3251 |
-
}
|
3252 |
-
public function setKind($kind)
|
3253 |
-
{
|
3254 |
-
$this->kind = $kind;
|
3255 |
-
}
|
3256 |
-
public function getKind()
|
3257 |
-
{
|
3258 |
-
return $this->kind;
|
3259 |
-
}
|
3260 |
-
}
|
3261 |
-
|
3262 |
-
class GoogleGAL_Service_AdSense_ReportingMetadataEntry extends GoogleGAL_Collection
|
3263 |
-
{
|
3264 |
-
protected $collection_key = 'supportedProducts';
|
3265 |
-
protected $internal_gapi_mappings = array(
|
3266 |
-
);
|
3267 |
-
public $compatibleDimensions;
|
3268 |
-
public $compatibleMetrics;
|
3269 |
-
public $id;
|
3270 |
-
public $kind;
|
3271 |
-
public $requiredDimensions;
|
3272 |
-
public $requiredMetrics;
|
3273 |
-
public $supportedProducts;
|
3274 |
-
|
3275 |
-
|
3276 |
-
public function setCompatibleDimensions($compatibleDimensions)
|
3277 |
-
{
|
3278 |
-
$this->compatibleDimensions = $compatibleDimensions;
|
3279 |
-
}
|
3280 |
-
public function getCompatibleDimensions()
|
3281 |
-
{
|
3282 |
-
return $this->compatibleDimensions;
|
3283 |
-
}
|
3284 |
-
public function setCompatibleMetrics($compatibleMetrics)
|
3285 |
-
{
|
3286 |
-
$this->compatibleMetrics = $compatibleMetrics;
|
3287 |
-
}
|
3288 |
-
public function getCompatibleMetrics()
|
3289 |
-
{
|
3290 |
-
return $this->compatibleMetrics;
|
3291 |
-
}
|
3292 |
-
public function setId($id)
|
3293 |
-
{
|
3294 |
-
$this->id = $id;
|
3295 |
-
}
|
3296 |
-
public function getId()
|
3297 |
-
{
|
3298 |
-
return $this->id;
|
3299 |
-
}
|
3300 |
-
public function setKind($kind)
|
3301 |
-
{
|
3302 |
-
$this->kind = $kind;
|
3303 |
-
}
|
3304 |
-
public function getKind()
|
3305 |
-
{
|
3306 |
-
return $this->kind;
|
3307 |
-
}
|
3308 |
-
public function setRequiredDimensions($requiredDimensions)
|
3309 |
-
{
|
3310 |
-
$this->requiredDimensions = $requiredDimensions;
|
3311 |
-
}
|
3312 |
-
public function getRequiredDimensions()
|
3313 |
-
{
|
3314 |
-
return $this->requiredDimensions;
|
3315 |
-
}
|
3316 |
-
public function setRequiredMetrics($requiredMetrics)
|
3317 |
-
{
|
3318 |
-
$this->requiredMetrics = $requiredMetrics;
|
3319 |
-
}
|
3320 |
-
public function getRequiredMetrics()
|
3321 |
-
{
|
3322 |
-
return $this->requiredMetrics;
|
3323 |
-
}
|
3324 |
-
public function setSupportedProducts($supportedProducts)
|
3325 |
-
{
|
3326 |
-
$this->supportedProducts = $supportedProducts;
|
3327 |
-
}
|
3328 |
-
public function getSupportedProducts()
|
3329 |
-
{
|
3330 |
-
return $this->supportedProducts;
|
3331 |
-
}
|
3332 |
-
}
|
3333 |
-
|
3334 |
-
class GoogleGAL_Service_AdSense_SavedAdStyle extends GoogleGAL_Model
|
3335 |
-
{
|
3336 |
-
protected $internal_gapi_mappings = array(
|
3337 |
-
);
|
3338 |
-
protected $adStyleType = 'GoogleGAL_Service_AdSense_AdStyle';
|
3339 |
-
protected $adStyleDataType = '';
|
3340 |
-
public $id;
|
3341 |
-
public $kind;
|
3342 |
-
public $name;
|
3343 |
-
|
3344 |
-
|
3345 |
-
public function setAdStyle(GoogleGAL_Service_AdSense_AdStyle $adStyle)
|
3346 |
-
{
|
3347 |
-
$this->adStyle = $adStyle;
|
3348 |
-
}
|
3349 |
-
public function getAdStyle()
|
3350 |
-
{
|
3351 |
-
return $this->adStyle;
|
3352 |
-
}
|
3353 |
-
public function setId($id)
|
3354 |
-
{
|
3355 |
-
$this->id = $id;
|
3356 |
-
}
|
3357 |
-
public function getId()
|
3358 |
-
{
|
3359 |
-
return $this->id;
|
3360 |
-
}
|
3361 |
-
public function setKind($kind)
|
3362 |
-
{
|
3363 |
-
$this->kind = $kind;
|
3364 |
-
}
|
3365 |
-
public function getKind()
|
3366 |
-
{
|
3367 |
-
return $this->kind;
|
3368 |
-
}
|
3369 |
-
public function setName($name)
|
3370 |
-
{
|
3371 |
-
$this->name = $name;
|
3372 |
-
}
|
3373 |
-
public function getName()
|
3374 |
-
{
|
3375 |
-
return $this->name;
|
3376 |
-
}
|
3377 |
-
}
|
3378 |
-
|
3379 |
-
class GoogleGAL_Service_AdSense_SavedAdStyles extends GoogleGAL_Collection
|
3380 |
-
{
|
3381 |
-
protected $collection_key = 'items';
|
3382 |
-
protected $internal_gapi_mappings = array(
|
3383 |
-
);
|
3384 |
-
public $etag;
|
3385 |
-
protected $itemsType = 'GoogleGAL_Service_AdSense_SavedAdStyle';
|
3386 |
-
protected $itemsDataType = 'array';
|
3387 |
-
public $kind;
|
3388 |
-
public $nextPageToken;
|
3389 |
-
|
3390 |
-
|
3391 |
-
public function setEtag($etag)
|
3392 |
-
{
|
3393 |
-
$this->etag = $etag;
|
3394 |
-
}
|
3395 |
-
public function getEtag()
|
3396 |
-
{
|
3397 |
-
return $this->etag;
|
3398 |
-
}
|
3399 |
-
public function setItems($items)
|
3400 |
-
{
|
3401 |
-
$this->items = $items;
|
3402 |
-
}
|
3403 |
-
public function getItems()
|
3404 |
-
{
|
3405 |
-
return $this->items;
|
3406 |
-
}
|
3407 |
-
public function setKind($kind)
|
3408 |
-
{
|
3409 |
-
$this->kind = $kind;
|
3410 |
-
}
|
3411 |
-
public function getKind()
|
3412 |
-
{
|
3413 |
-
return $this->kind;
|
3414 |
-
}
|
3415 |
-
public function setNextPageToken($nextPageToken)
|
3416 |
-
{
|
3417 |
-
$this->nextPageToken = $nextPageToken;
|
3418 |
-
}
|
3419 |
-
public function getNextPageToken()
|
3420 |
-
{
|
3421 |
-
return $this->nextPageToken;
|
3422 |
-
}
|
3423 |
-
}
|
3424 |
-
|
3425 |
-
class GoogleGAL_Service_AdSense_SavedReport extends GoogleGAL_Model
|
3426 |
-
{
|
3427 |
-
protected $internal_gapi_mappings = array(
|
3428 |
-
);
|
3429 |
-
public $id;
|
3430 |
-
public $kind;
|
3431 |
-
public $name;
|
3432 |
-
|
3433 |
-
|
3434 |
-
public function setId($id)
|
3435 |
-
{
|
3436 |
-
$this->id = $id;
|
3437 |
-
}
|
3438 |
-
public function getId()
|
3439 |
-
{
|
3440 |
-
return $this->id;
|
3441 |
-
}
|
3442 |
-
public function setKind($kind)
|
3443 |
-
{
|
3444 |
-
$this->kind = $kind;
|
3445 |
-
}
|
3446 |
-
public function getKind()
|
3447 |
-
{
|
3448 |
-
return $this->kind;
|
3449 |
-
}
|
3450 |
-
public function setName($name)
|
3451 |
-
{
|
3452 |
-
$this->name = $name;
|
3453 |
-
}
|
3454 |
-
public function getName()
|
3455 |
-
{
|
3456 |
-
return $this->name;
|
3457 |
-
}
|
3458 |
-
}
|
3459 |
-
|
3460 |
-
class GoogleGAL_Service_AdSense_SavedReports extends GoogleGAL_Collection
|
3461 |
-
{
|
3462 |
-
protected $collection_key = 'items';
|
3463 |
-
protected $internal_gapi_mappings = array(
|
3464 |
-
);
|
3465 |
-
public $etag;
|
3466 |
-
protected $itemsType = 'GoogleGAL_Service_AdSense_SavedReport';
|
3467 |
-
protected $itemsDataType = 'array';
|
3468 |
-
public $kind;
|
3469 |
-
public $nextPageToken;
|
3470 |
-
|
3471 |
-
|
3472 |
-
public function setEtag($etag)
|
3473 |
-
{
|
3474 |
-
$this->etag = $etag;
|
3475 |
-
}
|
3476 |
-
public function getEtag()
|
3477 |
-
{
|
3478 |
-
return $this->etag;
|
3479 |
-
}
|
3480 |
-
public function setItems($items)
|
3481 |
-
{
|
3482 |
-
$this->items = $items;
|
3483 |
-
}
|
3484 |
-
public function getItems()
|
3485 |
-
{
|
3486 |
-
return $this->items;
|
3487 |
-
}
|
3488 |
-
public function setKind($kind)
|
3489 |
-
{
|
3490 |
-
$this->kind = $kind;
|
3491 |
-
}
|
3492 |
-
public function getKind()
|
3493 |
-
{
|
3494 |
-
return $this->kind;
|
3495 |
-
}
|
3496 |
-
public function setNextPageToken($nextPageToken)
|
3497 |
-
{
|
3498 |
-
$this->nextPageToken = $nextPageToken;
|
3499 |
-
}
|
3500 |
-
public function getNextPageToken()
|
3501 |
-
{
|
3502 |
-
return $this->nextPageToken;
|
3503 |
-
}
|
3504 |
-
}
|
3505 |
-
|
3506 |
-
class GoogleGAL_Service_AdSense_UrlChannel extends GoogleGAL_Model
|
3507 |
-
{
|
3508 |
-
protected $internal_gapi_mappings = array(
|
3509 |
-
);
|
3510 |
-
public $id;
|
3511 |
-
public $kind;
|
3512 |
-
public $urlPattern;
|
3513 |
-
|
3514 |
-
|
3515 |
-
public function setId($id)
|
3516 |
-
{
|
3517 |
-
$this->id = $id;
|
3518 |
-
}
|
3519 |
-
public function getId()
|
3520 |
-
{
|
3521 |
-
return $this->id;
|
3522 |
-
}
|
3523 |
-
public function setKind($kind)
|
3524 |
-
{
|
3525 |
-
$this->kind = $kind;
|
3526 |
-
}
|
3527 |
-
public function getKind()
|
3528 |
-
{
|
3529 |
-
return $this->kind;
|
3530 |
-
}
|
3531 |
-
public function setUrlPattern($urlPattern)
|
3532 |
-
{
|
3533 |
-
$this->urlPattern = $urlPattern;
|
3534 |
-
}
|
3535 |
-
public function getUrlPattern()
|
3536 |
-
{
|
3537 |
-
return $this->urlPattern;
|
3538 |
-
}
|
3539 |
-
}
|
3540 |
-
|
3541 |
-
class GoogleGAL_Service_AdSense_UrlChannels extends GoogleGAL_Collection
|
3542 |
-
{
|
3543 |
-
protected $collection_key = 'items';
|
3544 |
-
protected $internal_gapi_mappings = array(
|
3545 |
-
);
|
3546 |
-
public $etag;
|
3547 |
-
protected $itemsType = 'GoogleGAL_Service_AdSense_UrlChannel';
|
3548 |
-
protected $itemsDataType = 'array';
|
3549 |
-
public $kind;
|
3550 |
-
public $nextPageToken;
|
3551 |
-
|
3552 |
-
|
3553 |
-
public function setEtag($etag)
|
3554 |
-
{
|
3555 |
-
$this->etag = $etag;
|
3556 |
-
}
|
3557 |
-
public function getEtag()
|
3558 |
-
{
|
3559 |
-
return $this->etag;
|
3560 |
-
}
|
3561 |
-
public function setItems($items)
|
3562 |
-
{
|
3563 |
-
$this->items = $items;
|
3564 |
-
}
|
3565 |
-
public function getItems()
|
3566 |
-
{
|
3567 |
-
return $this->items;
|
3568 |
-
}
|
3569 |
-
public function setKind($kind)
|
3570 |
-
{
|
3571 |
-
$this->kind = $kind;
|
3572 |
-
}
|
3573 |
-
public function getKind()
|
3574 |
-
{
|
3575 |
-
return $this->kind;
|
3576 |
-
}
|
3577 |
-
public function setNextPageToken($nextPageToken)
|
3578 |
-
{
|
3579 |
-
$this->nextPageToken = $nextPageToken;
|
3580 |
-
}
|
3581 |
-
public function getNextPageToken()
|
3582 |
-
{
|
3583 |
-
return $this->nextPageToken;
|
3584 |
-
}
|
3585 |
-
}
|
1 |
+
<?php
|
2 |
+
/*
|
3 |
+
* Copyright 2010 Google Inc.
|
4 |
+
*
|
5 |
+
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
|
6 |
+
* use this file except in compliance with the License. You may obtain a copy of
|
7 |
+
* the License at
|
8 |
+
*
|
9 |
+
* https://www.apache.org/licenses/LICENSE-2.0
|
10 |
+
*
|
11 |
+
* Unless required by applicable law or agreed to in writing, software
|
12 |
+
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
13 |
+
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
14 |
+
* License for the specific language governing permissions and limitations under
|
15 |
+
* the License.
|
16 |
+
*/
|
17 |
+
|
18 |
+
/**
|
19 |
+
* Service definition for AdSense (v1.4).
|
20 |
+
*
|
21 |
+
* <p>
|
22 |
+
* Gives AdSense publishers access to their inventory and the ability to
|
23 |
+
* generate reports</p>
|
24 |
+
*
|
25 |
+
* <p>
|
26 |
+
* For more information about this service, see the API
|
27 |
+
* <a href="https://developers.google.com/adsense/management/" target="_blank">Documentation</a>
|
28 |
+
* </p>
|
29 |
+
*
|
30 |
+
* @author Google, Inc.
|
31 |
+
*/
|
32 |
+
class GoogleGAL_Service_AdSense extends GoogleGAL_Service {
|
33 |
+
|
34 |
+
/** View and manage your AdSense data. */
|
35 |
+
const ADSENSE =
|
36 |
+
'https://www.googleapis.com/auth/adsense';
|
37 |
+
/** View your AdSense data. */
|
38 |
+
const ADSENSE_READONLY =
|
39 |
+
'https://www.googleapis.com/auth/adsense.readonly';
|
40 |
+
|
41 |
+
public $accounts;
|
42 |
+
public $accounts_adclients;
|
43 |
+
public $accounts_adunits;
|
44 |
+
public $accounts_adunits_customchannels;
|
45 |
+
public $accounts_alerts;
|
46 |
+
public $accounts_customchannels;
|
47 |
+
public $accounts_customchannels_adunits;
|
48 |
+
public $accounts_payments;
|
49 |
+
public $accounts_reports;
|
50 |
+
public $accounts_reports_saved;
|
51 |
+
public $accounts_savedadstyles;
|
52 |
+
public $accounts_urlchannels;
|
53 |
+
public $adclients;
|
54 |
+
public $adunits;
|
55 |
+
public $adunits_customchannels;
|
56 |
+
public $alerts;
|
57 |
+
public $customchannels;
|
58 |
+
public $customchannels_adunits;
|
59 |
+
public $metadata_dimensions;
|
60 |
+
public $metadata_metrics;
|
61 |
+
public $payments;
|
62 |
+
public $reports;
|
63 |
+
public $reports_saved;
|
64 |
+
public $savedadstyles;
|
65 |
+
public $urlchannels;
|
66 |
+
|
67 |
+
|
68 |
+
/**
|
69 |
+
* Constructs the internal representation of the AdSense service.
|
70 |
+
*
|
71 |
+
* @param GoogleGAL_Client $client
|
72 |
+
*/
|
73 |
+
public function __construct( GoogleGAL_Client $client ) {
|
74 |
+
parent::__construct( $client );
|
75 |
+
$this->servicePath = 'adsense/v1.4/';
|
76 |
+
$this->version = 'v1.4';
|
77 |
+
$this->serviceName = 'adsense';
|
78 |
+
|
79 |
+
$this->accounts = new GoogleGAL_Service_AdSense_Accounts_Resource(
|
80 |
+
$this,
|
81 |
+
$this->serviceName,
|
82 |
+
'accounts',
|
83 |
+
array(
|
84 |
+
'methods' => array(
|
85 |
+
'get' => array(
|
86 |
+
'path' => 'accounts/{accountId}',
|
87 |
+
'httpMethod' => 'GET',
|
88 |
+
'parameters' => array(
|
89 |
+
'accountId' => array(
|
90 |
+
'location' => 'path',
|
91 |
+
'type' => 'string',
|
92 |
+
'required' => true,
|
93 |
+
),
|
94 |
+
'tree' => array(
|
95 |
+
'location' => 'query',
|
96 |
+
'type' => 'boolean',
|
97 |
+
),
|
98 |
+
),
|
99 |
+
),
|
100 |
+
'list' => array(
|
101 |
+
'path' => 'accounts',
|
102 |
+
'httpMethod' => 'GET',
|
103 |
+
'parameters' => array(
|
104 |
+
'pageToken' => array(
|
105 |
+
'location' => 'query',
|
106 |
+
'type' => 'string',
|
107 |
+
),
|
108 |
+
'maxResults' => array(
|
109 |
+
'location' => 'query',
|
110 |
+
'type' => 'integer',
|
111 |
+
),
|
112 |
+
),
|
113 |
+
),
|
114 |
+
),
|
115 |
+
)
|
116 |
+
);
|
117 |
+
$this->accounts_adclients = new GoogleGAL_Service_AdSense_AccountsAdclients_Resource(
|
118 |
+
$this,
|
119 |
+
$this->serviceName,
|
120 |
+
'adclients',
|
121 |
+
array(
|
122 |
+
'methods' => array(
|
123 |
+
'list' => array(
|
124 |
+
'path' => 'accounts/{accountId}/adclients',
|
125 |
+
'httpMethod' => 'GET',
|
126 |
+
'parameters' => array(
|
127 |
+
'accountId' => array(
|
128 |
+
'location' => 'path',
|
129 |
+
'type' => 'string',
|
130 |
+
'required' => true,
|
131 |
+
),
|
132 |
+
'pageToken' => array(
|
133 |
+
'location' => 'query',
|
134 |
+
'type' => 'string',
|
135 |
+
),
|
136 |
+
'maxResults' => array(
|
137 |
+
'location' => 'query',
|
138 |
+
'type' => 'integer',
|
139 |
+
),
|
140 |
+
),
|
141 |
+
),
|
142 |
+
),
|
143 |
+
)
|
144 |
+
);
|
145 |
+
$this->accounts_adunits = new GoogleGAL_Service_AdSense_AccountsAdunits_Resource(
|
146 |
+
$this,
|
147 |
+
$this->serviceName,
|
148 |
+
'adunits',
|
149 |
+
array(
|
150 |
+
'methods' => array(
|
151 |
+
'get' => array(
|
152 |
+
'path' => 'accounts/{accountId}/adclients/{adClientId}/adunits/{adUnitId}',
|
153 |
+
'httpMethod' => 'GET',
|
154 |
+
'parameters' => array(
|
155 |
+
'accountId' => array(
|
156 |
+
'location' => 'path',
|
157 |
+
'type' => 'string',
|
158 |
+
'required' => true,
|
159 |
+
),
|
160 |
+
'adClientId' => array(
|
161 |
+
'location' => 'path',
|
162 |
+
'type' => 'string',
|
163 |
+
'required' => true,
|
164 |
+
),
|
165 |
+
'adUnitId' => array(
|
166 |
+
'location' => 'path',
|
167 |
+
'type' => 'string',
|
168 |
+
'required' => true,
|
169 |
+
),
|
170 |
+
),
|
171 |
+
),
|
172 |
+
'getAdCode' => array(
|
173 |
+
'path' => 'accounts/{accountId}/adclients/{adClientId}/adunits/{adUnitId}/adcode',
|
174 |
+
'httpMethod' => 'GET',
|
175 |
+
'parameters' => array(
|
176 |
+
'accountId' => array(
|
177 |
+
'location' => 'path',
|
178 |
+
'type' => 'string',
|
179 |
+
'required' => true,
|
180 |
+
),
|
181 |
+
'adClientId' => array(
|
182 |
+
'location' => 'path',
|
183 |
+
'type' => 'string',
|
184 |
+
'required' => true,
|
185 |
+
),
|
186 |
+
'adUnitId' => array(
|
187 |
+
'location' => 'path',
|
188 |
+
'type' => 'string',
|
189 |
+
'required' => true,
|
190 |
+
),
|
191 |
+
),
|
192 |
+
),
|
193 |
+
'list' => array(
|
194 |
+
'path' => 'accounts/{accountId}/adclients/{adClientId}/adunits',
|
195 |
+
'httpMethod' => 'GET',
|
196 |
+
'parameters' => array(
|
197 |
+
'accountId' => array(
|
198 |
+
'location' => 'path',
|
199 |
+
'type' => 'string',
|
200 |
+
'required' => true,
|
201 |
+
),
|
202 |
+
'adClientId' => array(
|
203 |
+
'location' => 'path',
|
204 |
+
'type' => 'string',
|
205 |
+
'required' => true,
|
206 |
+
),
|
207 |
+
'includeInactive' => array(
|
208 |
+
'location' => 'query',
|
209 |
+
'type' => 'boolean',
|
210 |
+
),
|
211 |
+
'pageToken' => array(
|
212 |
+
'location' => 'query',
|
213 |
+
'type' => 'string',
|
214 |
+
),
|
215 |
+
'maxResults' => array(
|
216 |
+
'location' => 'query',
|
217 |
+
'type' => 'integer',
|
218 |
+
),
|
219 |
+
),
|
220 |
+
),
|
221 |
+
),
|
222 |
+
)
|
223 |
+
);
|
224 |
+
$this->accounts_adunits_customchannels = new GoogleGAL_Service_AdSense_AccountsAdunitsCustomchannels_Resource(
|
225 |
+
$this,
|
226 |
+
$this->serviceName,
|
227 |
+
'customchannels',
|
228 |
+
array(
|
229 |
+
'methods' => array(
|
230 |
+
'list' => array(
|
231 |
+
'path' => 'accounts/{accountId}/adclients/{adClientId}/adunits/{adUnitId}/customchannels',
|
232 |
+
'httpMethod' => 'GET',
|
233 |
+
'parameters' => array(
|
234 |
+
'accountId' => array(
|
235 |
+
'location' => 'path',
|
236 |
+
'type' => 'string',
|
237 |
+
'required' => true,
|
238 |
+
),
|
239 |
+
'adClientId' => array(
|
240 |
+
'location' => 'path',
|
241 |
+
'type' => 'string',
|
242 |
+
'required' => true,
|
243 |
+
),
|
244 |
+
'adUnitId' => array(
|
245 |
+
'location' => 'path',
|
246 |
+
'type' => 'string',
|
247 |
+
'required' => true,
|
248 |
+
),
|
249 |
+
'pageToken' => array(
|
250 |
+
'location' => 'query',
|
251 |
+
'type' => 'string',
|
252 |
+
),
|
253 |
+
'maxResults' => array(
|
254 |
+
'location' => 'query',
|
255 |
+
'type' => 'integer',
|
256 |
+
),
|
257 |
+
),
|
258 |
+
),
|
259 |
+
),
|
260 |
+
)
|
261 |
+
);
|
262 |
+
$this->accounts_alerts = new GoogleGAL_Service_AdSense_AccountsAlerts_Resource(
|
263 |
+
$this,
|
264 |
+
$this->serviceName,
|
265 |
+
'alerts',
|
266 |
+
array(
|
267 |
+
'methods' => array(
|
268 |
+
'delete' => array(
|
269 |
+
'path' => 'accounts/{accountId}/alerts/{alertId}',
|
270 |
+
'httpMethod' => 'DELETE',
|
271 |
+
'parameters' => array(
|
272 |
+
'accountId' => array(
|
273 |
+
'location' => 'path',
|
274 |
+
'type' => 'string',
|
275 |
+
'required' => true,
|
276 |
+
),
|
277 |
+
'alertId' => array(
|
278 |
+
'location' => 'path',
|
279 |
+
'type' => 'string',
|
280 |
+
'required' => true,
|
281 |
+
),
|
282 |
+
),
|
283 |
+
),
|
284 |
+
'list' => array(
|
285 |
+
'path' => 'accounts/{accountId}/alerts',
|
286 |
+
'httpMethod' => 'GET',
|
287 |
+
'parameters' => array(
|
288 |
+
'accountId' => array(
|
289 |
+
'location' => 'path',
|
290 |
+
'type' => 'string',
|
291 |
+
'required' => true,
|
292 |
+
),
|
293 |
+
'locale' => array(
|
294 |
+
'location' => 'query',
|
295 |
+
'type' => 'string',
|
296 |
+
),
|
297 |
+
),
|
298 |
+
),
|
299 |
+
),
|
300 |
+
)
|
301 |
+
);
|
302 |
+
$this->accounts_customchannels = new GoogleGAL_Service_AdSense_AccountsCustomchannels_Resource(
|
303 |
+
$this,
|
304 |
+
$this->serviceName,
|
305 |
+
'customchannels',
|
306 |
+
array(
|
307 |
+
'methods' => array(
|
308 |
+
'get' => array(
|
309 |
+
'path' => 'accounts/{accountId}/adclients/{adClientId}/customchannels/{customChannelId}',
|
310 |
+
'httpMethod' => 'GET',
|
311 |
+
'parameters' => array(
|
312 |
+
'accountId' => array(
|
313 |
+
'location' => 'path',
|
314 |
+
'type' => 'string',
|
315 |
+
'required' => true,
|
316 |
+
),
|
317 |
+
'adClientId' => array(
|
318 |
+
'location' => 'path',
|
319 |
+
'type' => 'string',
|
320 |
+
'required' => true,
|
321 |
+
),
|
322 |
+
'customChannelId' => array(
|
323 |
+
'location' => 'path',
|
324 |
+
'type' => 'string',
|
325 |
+
'required' => true,
|
326 |
+
),
|
327 |
+
),
|
328 |
+
),
|
329 |
+
'list' => array(
|
330 |
+
'path' => 'accounts/{accountId}/adclients/{adClientId}/customchannels',
|
331 |
+
'httpMethod' => 'GET',
|
332 |
+
'parameters' => array(
|
333 |
+
'accountId' => array(
|
334 |
+
'location' => 'path',
|
335 |
+
'type' => 'string',
|
336 |
+
'required' => true,
|
337 |
+
),
|
338 |
+
'adClientId' => array(
|
339 |
+
'location' => 'path',
|
340 |
+
'type' => 'string',
|
341 |
+
'required' => true,
|
342 |
+
),
|
343 |
+
'pageToken' => array(
|
344 |
+
'location' => 'query',
|
345 |
+
'type' => 'string',
|
346 |
+
),
|
347 |
+
'maxResults' => array(
|
348 |
+
'location' => 'query',
|
349 |
+
'type' => 'integer',
|
350 |
+
),
|
351 |
+
),
|
352 |
+
),
|
353 |
+
),
|
354 |
+
)
|
355 |
+
);
|
356 |
+
$this->accounts_customchannels_adunits = new GoogleGAL_Service_AdSense_AccountsCustomchannelsAdunits_Resource(
|
357 |
+
$this,
|
358 |
+
$this->serviceName,
|
359 |
+
'adunits',
|
360 |
+
array(
|
361 |
+
'methods' => array(
|
362 |
+
'list' => array(
|
363 |
+
'path' => 'accounts/{accountId}/adclients/{adClientId}/customchannels/{customChannelId}/adunits',
|
364 |
+
'httpMethod' => 'GET',
|
365 |
+
'parameters' => array(
|
366 |
+
'accountId' => array(
|
367 |
+
'location' => 'path',
|
368 |
+
'type' => 'string',
|
369 |
+
'required' => true,
|
370 |
+
),
|
371 |
+
'adClientId' => array(
|
372 |
+
'location' => 'path',
|
373 |
+
'type' => 'string',
|
374 |
+
'required' => true,
|
375 |
+
),
|
376 |
+
'customChannelId' => array(
|
377 |
+
'location' => 'path',
|
378 |
+
'type' => 'string',
|
379 |
+
'required' => true,
|
380 |
+
),
|
381 |
+
'includeInactive' => array(
|
382 |
+
'location' => 'query',
|
383 |
+
'type' => 'boolean',
|
384 |
+
),
|
385 |
+
'maxResults' => array(
|
386 |
+
'location' => 'query',
|
387 |
+
'type' => 'integer',
|
388 |
+
),
|
389 |
+
'pageToken' => array(
|
390 |
+
'location' => 'query',
|
391 |
+
'type' => 'string',
|
392 |
+
),
|
393 |
+
),
|
394 |
+
),
|
395 |
+
),
|
396 |
+
)
|
397 |
+
);
|
398 |
+
$this->accounts_payments = new GoogleGAL_Service_AdSense_AccountsPayments_Resource(
|
399 |
+
$this,
|
400 |
+
$this->serviceName,
|
401 |
+
'payments',
|
402 |
+
array(
|
403 |
+
'methods' => array(
|
404 |
+
'list' => array(
|
405 |
+
'path' => 'accounts/{accountId}/payments',
|
406 |
+
'httpMethod' => 'GET',
|
407 |
+
'parameters' => array(
|
408 |
+
'accountId' => array(
|
409 |
+
'location' => 'path',
|
410 |
+
'type' => 'string',
|
411 |
+
'required' => true,
|
412 |
+
),
|
413 |
+
),
|
414 |
+
),
|
415 |
+
),
|
416 |
+
)
|
417 |
+
);
|
418 |
+
$this->accounts_reports = new GoogleGAL_Service_AdSense_AccountsReports_Resource(
|
419 |
+
$this,
|
420 |
+
$this->serviceName,
|
421 |
+
'reports',
|
422 |
+
array(
|
423 |
+
'methods' => array(
|
424 |
+
'generate' => array(
|
425 |
+
'path' => 'accounts/{accountId}/reports',
|
426 |
+
'httpMethod' => 'GET',
|
427 |
+
'parameters' => array(
|
428 |
+
'accountId' => array(
|
429 |
+
'location' => 'path',
|
430 |
+
'type' => 'string',
|
431 |
+
'required' => true,
|
432 |
+
),
|
433 |
+
'startDate' => array(
|
434 |
+
'location' => 'query',
|
435 |
+
'type' => 'string',
|
436 |
+
'required' => true,
|
437 |
+
),
|
438 |
+
'endDate' => array(
|
439 |
+
'location' => 'query',
|
440 |
+
'type' => 'string',
|
441 |
+
'required' => true,
|
442 |
+
),
|
443 |
+
'sort' => array(
|
444 |
+
'location' => 'query',
|
445 |
+
'type' => 'string',
|
446 |
+
'repeated' => true,
|
447 |
+
),
|
448 |
+
'locale' => array(
|
449 |
+
'location' => 'query',
|
450 |
+
'type' => 'string',
|
451 |
+
),
|
452 |
+
'metric' => array(
|
453 |
+
'location' => 'query',
|
454 |
+
'type' => 'string',
|
455 |
+
'repeated' => true,
|
456 |
+
),
|
457 |
+
'maxResults' => array(
|
458 |
+
'location' => 'query',
|
459 |
+
'type' => 'integer',
|
460 |
+
),
|
461 |
+
'filter' => array(
|
462 |
+
'location' => 'query',
|
463 |
+
'type' => 'string',
|
464 |
+
'repeated' => true,
|
465 |
+
),
|
466 |
+
'currency' => array(
|
467 |
+
'location' => 'query',
|
468 |
+
'type' => 'string',
|
469 |
+
),
|
470 |
+
'startIndex' => array(
|
471 |
+
'location' => 'query',
|
472 |
+
'type' => 'integer',
|
473 |
+
),
|
474 |
+
'useTimezoneReporting' => array(
|
475 |
+
'location' => 'query',
|
476 |
+
'type' => 'boolean',
|
477 |
+
),
|
478 |
+
'dimension' => array(
|
479 |
+
'location' => 'query',
|
480 |
+
'type' => 'string',
|
481 |
+
'repeated' => true,
|
482 |
+
),
|
483 |
+
),
|
484 |
+
),
|
485 |
+
),
|
486 |
+
)
|
487 |
+
);
|
488 |
+
$this->accounts_reports_saved = new GoogleGAL_Service_AdSense_AccountsReportsSaved_Resource(
|
489 |
+
$this,
|
490 |
+
$this->serviceName,
|
491 |
+
'saved',
|
492 |
+
array(
|
493 |
+
'methods' => array(
|
494 |
+
'generate' => array(
|
495 |
+
'path' => 'accounts/{accountId}/reports/{savedReportId}',
|
496 |
+
'httpMethod' => 'GET',
|
497 |
+
'parameters' => array(
|
498 |
+
'accountId' => array(
|
499 |
+
'location' => 'path',
|
500 |
+
'type' => 'string',
|
501 |
+
'required' => true,
|
502 |
+
),
|
503 |
+
'savedReportId' => array(
|
504 |
+
'location' => 'path',
|
505 |
+
'type' => 'string',
|
506 |
+
'required' => true,
|
507 |
+
),
|
508 |
+
'locale' => array(
|
509 |
+
'location' => 'query',
|
510 |
+
'type' => 'string',
|
511 |
+
),
|
512 |
+
'startIndex' => array(
|
513 |
+
'location' => 'query',
|
514 |
+
'type' => 'integer',
|
515 |
+
),
|
516 |
+
'maxResults' => array(
|
517 |
+
'location' => 'query',
|
518 |
+
'type' => 'integer',
|
519 |
+
),
|
520 |
+
),
|
521 |
+
),
|
522 |
+
'list' => array(
|
523 |
+
'path' => 'accounts/{accountId}/reports/saved',
|
524 |
+
'httpMethod' => 'GET',
|
525 |
+
'parameters' => array(
|
526 |
+
'accountId' => array(
|
527 |
+
'location' => 'path',
|
528 |
+
'type' => 'string',
|
529 |
+
'required' => true,
|
530 |
+
),
|
531 |
+
'pageToken' => array(
|
532 |
+
'location' => 'query',
|
533 |
+
'type' => 'string',
|
534 |
+
),
|
535 |
+
'maxResults' => array(
|
536 |
+
'location' => 'query',
|
537 |
+
'type' => 'integer',
|
538 |
+
),
|
539 |
+
),
|
540 |
+
),
|
541 |
+
),
|
542 |
+
)
|
543 |
+
);
|
544 |
+
$this->accounts_savedadstyles = new GoogleGAL_Service_AdSense_AccountsSavedadstyles_Resource(
|
545 |
+
$this,
|
546 |
+
$this->serviceName,
|
547 |
+
'savedadstyles',
|
548 |
+
array(
|
549 |
+
'methods' => array(
|
550 |
+
'get' => array(
|
551 |
+
'path' => 'accounts/{accountId}/savedadstyles/{savedAdStyleId}',
|
552 |
+
'httpMethod' => 'GET',
|
553 |
+
'parameters' => array(
|
554 |
+
'accountId' => array(
|
555 |
+
'location' => 'path',
|
556 |
+
'type' => 'string',
|
557 |
+
'required' => true,
|
558 |
+
),
|
559 |
+
'savedAdStyleId' => array(
|
560 |
+
'location' => 'path',
|
561 |
+
'type' => 'string',
|
562 |
+
'required' => true,
|
563 |
+
),
|
564 |
+
),
|
565 |
+
),
|
566 |
+
'list' => array(
|
567 |
+
'path' => 'accounts/{accountId}/savedadstyles',
|
568 |
+
'httpMethod' => 'GET',
|
569 |
+
'parameters' => array(
|
570 |
+
'accountId' => array(
|
571 |
+
'location' => 'path',
|
572 |
+
'type' => 'string',
|
573 |
+
'required' => true,
|
574 |
+
),
|
575 |
+
'pageToken' => array(
|
576 |
+
'location' => 'query',
|
577 |
+
'type' => 'string',
|
578 |
+
),
|
579 |
+
'maxResults' => array(
|
580 |
+
'location' => 'query',
|
581 |
+
'type' => 'integer',
|
582 |
+
),
|
583 |
+
),
|
584 |
+
),
|
585 |
+
),
|
586 |
+
)
|
587 |
+
);
|
588 |
+
$this->accounts_urlchannels = new GoogleGAL_Service_AdSense_AccountsUrlchannels_Resource(
|
589 |
+
$this,
|
590 |
+
$this->serviceName,
|
591 |
+
'urlchannels',
|
592 |
+
array(
|
593 |
+
'methods' => array(
|
594 |
+
'list' => array(
|
595 |
+
'path' => 'accounts/{accountId}/adclients/{adClientId}/urlchannels',
|
596 |
+
'httpMethod' => 'GET',
|
597 |
+
'parameters' => array(
|
598 |
+
'accountId' => array(
|
599 |
+
'location' => 'path',
|
600 |
+
'type' => 'string',
|
601 |
+
'required' => true,
|
602 |
+
),
|
603 |
+
'adClientId' => array(
|
604 |
+
'location' => 'path',
|
605 |
+
'type' => 'string',
|
606 |
+
'required' => true,
|
607 |
+
),
|
608 |
+
'pageToken' => array(
|
609 |
+
'location' => 'query',
|
610 |
+
'type' => 'string',
|
611 |
+
),
|
612 |
+
'maxResults' => array(
|
613 |
+
'location' => 'query',
|
614 |
+
'type' => 'integer',
|
615 |
+
),
|
616 |
+
),
|
617 |
+
),
|
618 |
+
),
|
619 |
+
)
|
620 |
+
);
|
621 |
+
$this->adclients = new GoogleGAL_Service_AdSense_Adclients_Resource(
|
622 |
+
$this,
|
623 |
+
$this->serviceName,
|
624 |
+
'adclients',
|
625 |
+
array(
|
626 |
+
'methods' => array(
|
627 |
+
'list' => array(
|
628 |
+
'path' => 'adclients',
|
629 |
+
'httpMethod' => 'GET',
|
630 |
+
'parameters' => array(
|
631 |
+
'pageToken' => array(
|
632 |
+
'location' => 'query',
|
633 |
+
'type' => 'string',
|
634 |
+
),
|
635 |
+
'maxResults' => array(
|
636 |
+
'location' => 'query',
|
637 |
+
'type' => 'integer',
|
638 |
+
),
|
639 |
+
),
|
640 |
+
),
|
641 |
+
),
|
642 |
+
)
|
643 |
+
);
|
644 |
+
$this->adunits = new GoogleGAL_Service_AdSense_Adunits_Resource(
|
645 |
+
$this,
|
646 |
+
$this->serviceName,
|
647 |
+
'adunits',
|
648 |
+
array(
|
649 |
+
'methods' => array(
|
650 |
+
'get' => array(
|
651 |
+
'path' => 'adclients/{adClientId}/adunits/{adUnitId}',
|
652 |
+
'httpMethod' => 'GET',
|
653 |
+
'parameters' => array(
|
654 |
+
'adClientId' => array(
|
655 |
+
'location' => 'path',
|
656 |
+
'type' => 'string',
|
657 |
+
'required' => true,
|
658 |
+
),
|
659 |
+
'adUnitId' => array(
|
660 |
+
'location' => 'path',
|
661 |
+
'type' => 'string',
|
662 |
+
'required' => true,
|
663 |
+
),
|
664 |
+
),
|
665 |
+
),
|
666 |
+
'getAdCode' => array(
|
667 |
+
'path' => 'adclients/{adClientId}/adunits/{adUnitId}/adcode',
|
668 |
+
'httpMethod' => 'GET',
|
669 |
+
'parameters' => array(
|
670 |
+
'adClientId' => array(
|
671 |
+
'location' => 'path',
|
672 |
+
'type' => 'string',
|
673 |
+
'required' => true,
|
674 |
+
),
|
675 |
+
'adUnitId' => array(
|
676 |
+
'location' => 'path',
|
677 |
+
'type' => 'string',
|
678 |
+
'required' => true,
|
679 |
+
),
|
680 |
+
),
|
681 |
+
),
|
682 |
+
'list' => array(
|
683 |
+
'path' => 'adclients/{adClientId}/adunits',
|
684 |
+
'httpMethod' => 'GET',
|
685 |
+
'parameters' => array(
|
686 |
+
'adClientId' => array(
|
687 |
+
'location' => 'path',
|
688 |
+
'type' => 'string',
|
689 |
+
'required' => true,
|
690 |
+
),
|
691 |
+
'includeInactive' => array(
|
692 |
+
'location' => 'query',
|
693 |
+
'type' => 'boolean',
|
694 |
+
),
|
695 |
+
'pageToken' => array(
|
696 |
+
'location' => 'query',
|
697 |
+
'type' => 'string',
|
698 |
+
),
|
699 |
+
'maxResults' => array(
|
700 |
+
'location' => 'query',
|
701 |
+
'type' => 'integer',
|
702 |
+
),
|
703 |
+
),
|
704 |
+
),
|
705 |
+
),
|
706 |
+
)
|
707 |
+
);
|
708 |
+
$this->adunits_customchannels = new GoogleGAL_Service_AdSense_AdunitsCustomchannels_Resource(
|
709 |
+
$this,
|
710 |
+
$this->serviceName,
|
711 |
+
'customchannels',
|
712 |
+
array(
|
713 |
+
'methods' => array(
|
714 |
+
'list' => array(
|
715 |
+
'path' => 'adclients/{adClientId}/adunits/{adUnitId}/customchannels',
|
716 |
+
'httpMethod' => 'GET',
|
717 |
+
'parameters' => array(
|
718 |
+
'adClientId' => array(
|
719 |
+
'location' => 'path',
|
720 |
+
'type' => 'string',
|
721 |
+
'required' => true,
|
722 |
+
),
|
723 |
+
'adUnitId' => array(
|
724 |
+
'location' => 'path',
|
725 |
+
'type' => 'string',
|
726 |
+
'required' => true,
|
727 |
+
),
|
728 |
+
'pageToken' => array(
|
729 |
+
'location' => 'query',
|
730 |
+
'type' => 'string',
|
731 |
+
),
|
732 |
+
'maxResults' => array(
|
733 |
+
'location' => 'query',
|
734 |
+
'type' => 'integer',
|
735 |
+
),
|
736 |
+
),
|
737 |
+
),
|
738 |
+
),
|
739 |
+
)
|
740 |
+
);
|
741 |
+
$this->alerts = new GoogleGAL_Service_AdSense_Alerts_Resource(
|
742 |
+
$this,
|
743 |
+
$this->serviceName,
|
744 |
+
'alerts',
|
745 |
+
array(
|
746 |
+
'methods' => array(
|
747 |
+
'delete' => array(
|
748 |
+
'path' => 'alerts/{alertId}',
|
749 |
+
'httpMethod' => 'DELETE',
|
750 |
+
'parameters' => array(
|
751 |
+
'alertId' => array(
|
752 |
+
'location' => 'path',
|
753 |
+
'type' => 'string',
|
754 |
+
'required' => true,
|
755 |
+
),
|
756 |
+
),
|
757 |
+
),
|
758 |
+
'list' => array(
|
759 |
+
'path' => 'alerts',
|
760 |
+
'httpMethod' => 'GET',
|
761 |
+
'parameters' => array(
|
762 |
+
'locale' => array(
|
763 |
+
'location' => 'query',
|
764 |
+
'type' => 'string',
|
765 |
+
),
|
766 |
+
),
|
767 |
+
),
|
768 |
+
),
|
769 |
+
)
|
770 |
+
);
|
771 |
+
$this->customchannels = new GoogleGAL_Service_AdSense_Customchannels_Resource(
|
772 |
+
$this,
|
773 |
+
$this->serviceName,
|
774 |
+
'customchannels',
|
775 |
+
array(
|
776 |
+
'methods' => array(
|
777 |
+
'get' => array(
|
778 |
+
'path' => 'adclients/{adClientId}/customchannels/{customChannelId}',
|
779 |
+
'httpMethod' => 'GET',
|
780 |
+
'parameters' => array(
|
781 |
+
'adClientId' => array(
|
782 |
+
'location' => 'path',
|
783 |
+
'type' => 'string',
|
784 |
+
'required' => true,
|
785 |
+
),
|
786 |
+
'customChannelId' => array(
|
787 |
+
'location' => 'path',
|
788 |
+
'type' => 'string',
|
789 |
+
'required' => true,
|
790 |
+
),
|
791 |
+
),
|
792 |
+
),
|
793 |
+
'list' => array(
|
794 |
+
'path' => 'adclients/{adClientId}/customchannels',
|
795 |
+
'httpMethod' => 'GET',
|
796 |
+
'parameters' => array(
|
797 |
+
'adClientId' => array(
|
798 |
+
'location' => 'path',
|
799 |
+
'type' => 'string',
|
800 |
+
'required' => true,
|
801 |
+
),
|
802 |
+
'pageToken' => array(
|
803 |
+
'location' => 'query',
|
804 |
+
'type' => 'string',
|
805 |
+
),
|
806 |
+
'maxResults' => array(
|
807 |
+
'location' => 'query',
|
808 |
+
'type' => 'integer',
|
809 |
+
),
|
810 |
+
),
|
811 |
+
),
|
812 |
+
),
|
813 |
+
)
|
814 |
+
);
|
815 |
+
$this->customchannels_adunits = new GoogleGAL_Service_AdSense_CustomchannelsAdunits_Resource(
|
816 |
+
$this,
|
817 |
+
$this->serviceName,
|
818 |
+
'adunits',
|
819 |
+
array(
|
820 |
+
'methods' => array(
|
821 |
+
'list' => array(
|
822 |
+
'path' => 'adclients/{adClientId}/customchannels/{customChannelId}/adunits',
|
823 |
+
'httpMethod' => 'GET',
|
824 |
+
'parameters' => array(
|
825 |
+
'adClientId' => array(
|
826 |
+
'location' => 'path',
|
827 |
+
'type' => 'string',
|
828 |
+
'required' => true,
|
829 |
+
),
|
830 |
+
'customChannelId' => array(
|
831 |
+
'location' => 'path',
|
832 |
+
'type' => 'string',
|
833 |
+
'required' => true,
|
834 |
+
),
|
835 |
+
'includeInactive' => array(
|
836 |
+
'location' => 'query',
|
837 |
+
'type' => 'boolean',
|
838 |
+
),
|
839 |
+
'pageToken' => array(
|
840 |
+
'location' => 'query',
|
841 |
+
'type' => 'string',
|
842 |
+
),
|
843 |
+
'maxResults' => array(
|
844 |
+
'location' => 'query',
|
845 |
+
'type' => 'integer',
|
846 |
+
),
|
847 |
+
),
|
848 |
+
),
|
849 |
+
),
|
850 |
+
)
|
851 |
+
);
|
852 |
+
$this->metadata_dimensions = new GoogleGAL_Service_AdSense_MetadataDimensions_Resource(
|
853 |
+
$this,
|
854 |
+
$this->serviceName,
|
855 |
+
'dimensions',
|
856 |
+
array(
|
857 |
+
'methods' => array(
|
858 |
+
'list' => array(
|
859 |
+
'path' => 'metadata/dimensions',
|
860 |
+
'httpMethod' => 'GET',
|
861 |
+
'parameters' => array(),
|
862 |
+
),
|
863 |
+
),
|
864 |
+
)
|
865 |
+
);
|
866 |
+
$this->metadata_metrics = new GoogleGAL_Service_AdSense_MetadataMetrics_Resource(
|
867 |
+
$this,
|
868 |
+
$this->serviceName,
|
869 |
+
'metrics',
|
870 |
+
array(
|
871 |
+
'methods' => array(
|
872 |
+
'list' => array(
|
873 |
+
'path' => 'metadata/metrics',
|
874 |
+
'httpMethod' => 'GET',
|
875 |
+
'parameters' => array(),
|
876 |
+
),
|
877 |
+
),
|
878 |
+
)
|
879 |
+
);
|
880 |
+
$this->payments = new GoogleGAL_Service_AdSense_Payments_Resource(
|
881 |
+
$this,
|
882 |
+
$this->serviceName,
|
883 |
+
'payments',
|
884 |
+
array(
|
885 |
+
'methods' => array(
|
886 |
+
'list' => array(
|
887 |
+
'path' => 'payments',
|
888 |
+
'httpMethod' => 'GET',
|
889 |
+
'parameters' => array(),
|
890 |
+
),
|
891 |
+
),
|
892 |
+
)
|
893 |
+
);
|
894 |
+
$this->reports = new GoogleGAL_Service_AdSense_Reports_Resource(
|
895 |
+
$this,
|
896 |
+
$this->serviceName,
|
897 |
+
'reports',
|
898 |
+
array(
|
899 |
+
'methods' => array(
|
900 |
+
'generate' => array(
|
901 |
+
'path' => 'reports',
|
902 |
+
'httpMethod' => 'GET',
|
903 |
+
'parameters' => array(
|
904 |
+
'startDate' => array(
|
905 |
+
'location' => 'query',
|
906 |
+
'type' => 'string',
|
907 |
+
'required' => true,
|
908 |
+
),
|
909 |
+
'endDate' => array(
|
910 |
+
'location' => 'query',
|
911 |
+
'type' => 'string',
|
912 |
+
'required' => true,
|
913 |
+
),
|
914 |
+
'sort' => array(
|
915 |
+
'location' => 'query',
|
916 |
+
'type' => 'string',
|
917 |
+
'repeated' => true,
|
918 |
+
),
|
919 |
+
'locale' => array(
|
920 |
+
'location' => 'query',
|
921 |
+
'type' => 'string',
|
922 |
+
),
|
923 |
+
'metric' => array(
|
924 |
+
'location' => 'query',
|
925 |
+
'type' => 'string',
|
926 |
+
'repeated' => true,
|
927 |
+
),
|
928 |
+
'maxResults' => array(
|
929 |
+
'location' => 'query',
|
930 |
+
'type' => 'integer',
|
931 |
+
),
|
932 |
+
'filter' => array(
|
933 |
+
'location' => 'query',
|
934 |
+
'type' => 'string',
|
935 |
+
'repeated' => true,
|
936 |
+
),
|
937 |
+
'currency' => array(
|
938 |
+
'location' => 'query',
|
939 |
+
'type' => 'string',
|
940 |
+
),
|
941 |
+
'startIndex' => array(
|
942 |
+
'location' => 'query',
|
943 |
+
'type' => 'integer',
|
944 |
+
),
|
945 |
+
'useTimezoneReporting' => array(
|
946 |
+
'location' => 'query',
|
947 |
+
'type' => 'boolean',
|
948 |
+
),
|
949 |
+
'dimension' => array(
|
950 |
+
'location' => 'query',
|
951 |
+
'type' => 'string',
|
952 |
+
'repeated' => true,
|
953 |
+
),
|
954 |
+
'accountId' => array(
|
955 |
+
'location' => 'query',
|
956 |
+
'type' => 'string',
|
957 |
+
'repeated' => true,
|
958 |
+
),
|
959 |
+
),
|
960 |
+
),
|
961 |
+
),
|
962 |
+
)
|
963 |
+
);
|
964 |
+
$this->reports_saved = new GoogleGAL_Service_AdSense_ReportsSaved_Resource(
|
965 |
+
$this,
|
966 |
+
$this->serviceName,
|
967 |
+
'saved',
|
968 |
+
array(
|
969 |
+
'methods' => array(
|
970 |
+
'generate' => array(
|
971 |
+
'path' => 'reports/{savedReportId}',
|
972 |
+
'httpMethod' => 'GET',
|
973 |
+
'parameters' => array(
|
974 |
+
'savedReportId' => array(
|
975 |
+
'location' => 'path',
|
976 |
+
'type' => 'string',
|
977 |
+
'required' => true,
|
978 |
+
),
|
979 |
+
'locale' => array(
|
980 |
+
'location' => 'query',
|
981 |
+
'type' => 'string',
|
982 |
+
),
|
983 |
+
'startIndex' => array(
|
984 |
+
'location' => 'query',
|
985 |
+
'type' => 'integer',
|
986 |
+
),
|
987 |
+
'maxResults' => array(
|
988 |
+
'location' => 'query',
|
989 |
+
'type' => 'integer',
|
990 |
+
),
|
991 |
+
),
|
992 |
+
),
|
993 |
+
'list' => array(
|
994 |
+
'path' => 'reports/saved',
|
995 |
+
'httpMethod' => 'GET',
|
996 |
+
'parameters' => array(
|
997 |
+
'pageToken' => array(
|
998 |
+
'location' => 'query',
|
999 |
+
'type' => 'string',
|
1000 |
+
),
|
1001 |
+
'maxResults' => array(
|
1002 |
+
'location' => 'query',
|
1003 |
+
'type' => 'integer',
|
1004 |
+
),
|
1005 |
+
),
|
1006 |
+
),
|
1007 |
+
),
|
1008 |
+
)
|
1009 |
+
);
|
1010 |
+
$this->savedadstyles = new GoogleGAL_Service_AdSense_Savedadstyles_Resource(
|
1011 |
+
$this,
|
1012 |
+
$this->serviceName,
|
1013 |
+
'savedadstyles',
|
1014 |
+
array(
|
1015 |
+
'methods' => array(
|
1016 |
+
'get' => array(
|
1017 |
+
'path' => 'savedadstyles/{savedAdStyleId}',
|
1018 |
+
'httpMethod' => 'GET',
|
1019 |
+
'parameters' => array(
|
1020 |
+
'savedAdStyleId' => array(
|
1021 |
+
'location' => 'path',
|
1022 |
+
'type' => 'string',
|
1023 |
+
'required' => true,
|
1024 |
+
),
|
1025 |
+
),
|
1026 |
+
),
|
1027 |
+
'list' => array(
|
1028 |
+
'path' => 'savedadstyles',
|
1029 |
+
'httpMethod' => 'GET',
|
1030 |
+
'parameters' => array(
|
1031 |
+
'pageToken' => array(
|
1032 |
+
'location' => 'query',
|
1033 |
+
'type' => 'string',
|
1034 |
+
),
|
1035 |
+
'maxResults' => array(
|
1036 |
+
'location' => 'query',
|
1037 |
+
'type' => 'integer',
|
1038 |
+
),
|
1039 |
+
),
|
1040 |
+
),
|
1041 |
+
),
|
1042 |
+
)
|
1043 |
+
);
|
1044 |
+
$this->urlchannels = new GoogleGAL_Service_AdSense_Urlchannels_Resource(
|
1045 |
+
$this,
|
1046 |
+
$this->serviceName,
|
1047 |
+
'urlchannels',
|
1048 |
+
array(
|
1049 |
+
'methods' => array(
|
1050 |
+
'list' => array(
|
1051 |
+
'path' => 'adclients/{adClientId}/urlchannels',
|
1052 |
+
'httpMethod' => 'GET',
|
1053 |
+
'parameters' => array(
|
1054 |
+
'adClientId' => array(
|
1055 |
+
'location' => 'path',
|
1056 |
+
'type' => 'string',
|
1057 |
+
'required' => true,
|
1058 |
+
),
|
1059 |
+
'pageToken' => array(
|
1060 |
+
'location' => 'query',
|
1061 |
+
'type' => 'string',
|
1062 |
+
),
|
1063 |
+
'maxResults' => array(
|
1064 |
+
'location' => 'query',
|
1065 |
+
'type' => 'integer',
|
1066 |
+
),
|
1067 |
+
),
|
1068 |
+
),
|
1069 |
+
),
|
1070 |
+
)
|
1071 |
+
);
|
1072 |
+
}
|
1073 |
+
}
|
1074 |
+
|
1075 |
+
|
1076 |
+
/**
|
1077 |
+
* The "accounts" collection of methods.
|
1078 |
+
* Typical usage is:
|
1079 |
+
* <code>
|
1080 |
+
* $adsenseService = new GoogleGAL_Service_AdSense(...);
|
1081 |
+
* $accounts = $adsenseService->accounts;
|
1082 |
+
* </code>
|
1083 |
+
*/
|
1084 |
+
class GoogleGAL_Service_AdSense_Accounts_Resource extends GoogleGAL_Service_Resource {
|
1085 |
+
|
1086 |
+
|
1087 |
+
/**
|
1088 |
+
* Get information about the selected AdSense account. (accounts.get)
|
1089 |
+
*
|
1090 |
+
* @param string $accountId Account to get information about.
|
1091 |
+
* @param array $optParams Optional parameters.
|
1092 |
+
*
|
1093 |
+
* @opt_param bool tree Whether the tree of sub accounts should be returned.
|
1094 |
+
* @return GoogleGAL_Service_AdSense_Account
|
1095 |
+
*/
|
1096 |
+
public function get( $accountId, $optParams = array() ) {
|
1097 |
+
$params = array( 'accountId' => $accountId );
|
1098 |
+
$params = array_merge( $params, $optParams );
|
1099 |
+
return $this->call( 'get', array( $params ), 'GoogleGAL_Service_AdSense_Account' );
|
1100 |
+
}
|
1101 |
+
|
1102 |
+
/**
|
1103 |
+
* List all accounts available to this AdSense account. (accounts.listAccounts)
|
1104 |
+
*
|
1105 |
+
* @param array $optParams Optional parameters.
|
1106 |
+
*
|
1107 |
+
* @opt_param string pageToken A continuation token, used to page through
|
1108 |
+
* accounts. To retrieve the next page, set this parameter to the value of
|
1109 |
+
* "nextPageToken" from the previous response.
|
1110 |
+
* @opt_param int maxResults The maximum number of accounts to include in the
|
1111 |
+
* response, used for paging.
|
1112 |
+
* @return GoogleGAL_Service_AdSense_Accounts
|
1113 |
+
*/
|
1114 |
+
public function listAccounts( $optParams = array() ) {
|
1115 |
+
$params = array();
|
1116 |
+
$params = array_merge( $params, $optParams );
|
1117 |
+
return $this->call( 'list', array( $params ), 'GoogleGAL_Service_AdSense_Accounts' );
|
1118 |
+
}
|
1119 |
+
}
|
1120 |
+
|
1121 |
+
/**
|
1122 |
+
* The "adclients" collection of methods.
|
1123 |
+
* Typical usage is:
|
1124 |
+
* <code>
|
1125 |
+
* $adsenseService = new GoogleGAL_Service_AdSense(...);
|
1126 |
+
* $adclients = $adsenseService->adclients;
|
1127 |
+
* </code>
|
1128 |
+
*/
|
1129 |
+
class GoogleGAL_Service_AdSense_AccountsAdclients_Resource extends GoogleGAL_Service_Resource {
|
1130 |
+
|
1131 |
+
|
1132 |
+
/**
|
1133 |
+
* List all ad clients in the specified account.
|
1134 |
+
* (adclients.listAccountsAdclients)
|
1135 |
+
*
|
1136 |
+
* @param string $accountId Account for which to list ad clients.
|
1137 |
+
* @param array $optParams Optional parameters.
|
1138 |
+
*
|
1139 |
+
* @opt_param string pageToken A continuation token, used to page through ad
|
1140 |
+
* clients. To retrieve the next page, set this parameter to the value of
|
1141 |
+
* "nextPageToken" from the previous response.
|
1142 |
+
* @opt_param int maxResults The maximum number of ad clients to include in the
|
1143 |
+
* response, used for paging.
|
1144 |
+
* @return GoogleGAL_Service_AdSense_AdClients
|
1145 |
+
*/
|
1146 |
+
public function listAccountsAdclients( $accountId, $optParams = array() ) {
|
1147 |
+
$params = array( 'accountId' => $accountId );
|
1148 |
+
$params = array_merge( $params, $optParams );
|
1149 |
+
return $this->call( 'list', array( $params ), 'GoogleGAL_Service_AdSense_AdClients' );
|
1150 |
+
}
|
1151 |
+
}
|
1152 |
+
/**
|
1153 |
+
* The "adunits" collection of methods.
|
1154 |
+
* Typical usage is:
|
1155 |
+
* <code>
|
1156 |
+
* $adsenseService = new GoogleGAL_Service_AdSense(...);
|
1157 |
+
* $adunits = $adsenseService->adunits;
|
1158 |
+
* </code>
|
1159 |
+
*/
|
1160 |
+
class GoogleGAL_Service_AdSense_AccountsAdunits_Resource extends GoogleGAL_Service_Resource {
|
1161 |
+
|
1162 |
+
|
1163 |
+
/**
|
1164 |
+
* Gets the specified ad unit in the specified ad client for the specified
|
1165 |
+
* account. (adunits.get)
|
1166 |
+
*
|
1167 |
+
* @param string $accountId Account to which the ad client belongs.
|
1168 |
+
* @param string $adClientId Ad client for which to get the ad unit.
|
1169 |
+
* @param string $adUnitId Ad unit to retrieve.
|
1170 |
+
* @param array $optParams Optional parameters.
|
1171 |
+
* @return GoogleGAL_Service_AdSense_AdUnit
|
1172 |
+
*/
|
1173 |
+
public function get( $accountId, $adClientId, $adUnitId, $optParams = array() ) {
|
1174 |
+
$params = array(
|
1175 |
+
'accountId' => $accountId,
|
1176 |
+
'adClientId' => $adClientId,
|
1177 |
+
'adUnitId' => $adUnitId,
|
1178 |
+
);
|
1179 |
+
$params = array_merge( $params, $optParams );
|
1180 |
+
return $this->call( 'get', array( $params ), 'GoogleGAL_Service_AdSense_AdUnit' );
|
1181 |
+
}
|
1182 |
+
|
1183 |
+
/**
|
1184 |
+
* Get ad code for the specified ad unit. (adunits.getAdCode)
|
1185 |
+
*
|
1186 |
+
* @param string $accountId Account which contains the ad client.
|
1187 |
+
* @param string $adClientId Ad client with contains the ad unit.
|
1188 |
+
* @param string $adUnitId Ad unit to get the code for.
|
1189 |
+
* @param array $optParams Optional parameters.
|
1190 |
+
* @return GoogleGAL_Service_AdSense_AdCode
|
1191 |
+
*/
|
1192 |
+
public function getAdCode( $accountId, $adClientId, $adUnitId, $optParams = array() ) {
|
1193 |
+
$params = array(
|
1194 |
+
'accountId' => $accountId,
|
1195 |
+
'adClientId' => $adClientId,
|
1196 |
+
'adUnitId' => $adUnitId,
|
1197 |
+
);
|
1198 |
+
$params = array_merge( $params, $optParams );
|
1199 |
+
return $this->call( 'getAdCode', array( $params ), 'GoogleGAL_Service_AdSense_AdCode' );
|
1200 |
+
}
|
1201 |
+
|
1202 |
+
/**
|
1203 |
+
* List all ad units in the specified ad client for the specified account.
|
1204 |
+
* (adunits.listAccountsAdunits)
|
1205 |
+
*
|
1206 |
+
* @param string $accountId Account to which the ad client belongs.
|
1207 |
+
* @param string $adClientId Ad client for which to list ad units.
|
1208 |
+
* @param array $optParams Optional parameters.
|
1209 |
+
*
|
1210 |
+
* @opt_param bool includeInactive Whether to include inactive ad units.
|
1211 |
+
* Default: true.
|
1212 |
+
* @opt_param string pageToken A continuation token, used to page through ad
|
1213 |
+
* units. To retrieve the next page, set this parameter to the value of
|
1214 |
+
* "nextPageToken" from the previous response.
|
1215 |
+
* @opt_param int maxResults The maximum number of ad units to include in the
|
1216 |
+
* response, used for paging.
|
1217 |
+
* @return GoogleGAL_Service_AdSense_AdUnits
|
1218 |
+
*/
|
1219 |
+
public function listAccountsAdunits( $accountId, $adClientId, $optParams = array() ) {
|
1220 |
+
$params = array(
|
1221 |
+
'accountId' => $accountId,
|
1222 |
+
'adClientId' => $adClientId,
|
1223 |
+
);
|
1224 |
+
$params = array_merge( $params, $optParams );
|
1225 |
+
return $this->call( 'list', array( $params ), 'GoogleGAL_Service_AdSense_AdUnits' );
|
1226 |
+
}
|
1227 |
+
}
|
1228 |
+
|
1229 |
+
/**
|
1230 |
+
* The "customchannels" collection of methods.
|
1231 |
+
* Typical usage is:
|
1232 |
+
* <code>
|
1233 |
+
* $adsenseService = new GoogleGAL_Service_AdSense(...);
|
1234 |
+
* $customchannels = $adsenseService->customchannels;
|
1235 |
+
* </code>
|
1236 |
+
*/
|
1237 |
+
class GoogleGAL_Service_AdSense_AccountsAdunitsCustomchannels_Resource extends GoogleGAL_Service_Resource {
|
1238 |
+
|
1239 |
+
|
1240 |
+
/**
|
1241 |
+
* List all custom channels which the specified ad unit belongs to.
|
1242 |
+
* (customchannels.listAccountsAdunitsCustomchannels)
|
1243 |
+
*
|
1244 |
+
* @param string $accountId Account to which the ad client belongs.
|
1245 |
+
* @param string $adClientId Ad client which contains the ad unit.
|
1246 |
+
* @param string $adUnitId Ad unit for which to list custom channels.
|
1247 |
+
* @param array $optParams Optional parameters.
|
1248 |
+
*
|
1249 |
+
* @opt_param string pageToken A continuation token, used to page through custom
|
1250 |
+
* channels. To retrieve the next page, set this parameter to the value of
|
1251 |
+
* "nextPageToken" from the previous response.
|
1252 |
+
* @opt_param int maxResults The maximum number of custom channels to include in
|
1253 |
+
* the response, used for paging.
|
1254 |
+
* @return GoogleGAL_Service_AdSense_CustomChannels
|
1255 |
+
*/
|
1256 |
+
public function listAccountsAdunitsCustomchannels( $accountId, $adClientId, $adUnitId, $optParams = array() ) {
|
1257 |
+
$params = array(
|
1258 |
+
'accountId' => $accountId,
|
1259 |
+
'adClientId' => $adClientId,
|
1260 |
+
'adUnitId' => $adUnitId,
|
1261 |
+
);
|
1262 |
+
$params = array_merge( $params, $optParams );
|
1263 |
+
return $this->call( 'list', array( $params ), 'GoogleGAL_Service_AdSense_CustomChannels' );
|
1264 |
+
}
|
1265 |
+
}
|
1266 |
+
/**
|
1267 |
+
* The "alerts" collection of methods.
|
1268 |
+
* Typical usage is:
|
1269 |
+
* <code>
|
1270 |
+
* $adsenseService = new GoogleGAL_Service_AdSense(...);
|
1271 |
+
* $alerts = $adsenseService->alerts;
|
1272 |
+
* </code>
|
1273 |
+
*/
|
1274 |
+
class GoogleGAL_Service_AdSense_AccountsAlerts_Resource extends GoogleGAL_Service_Resource {
|
1275 |
+
|
1276 |
+
|
1277 |
+
/**
|
1278 |
+
* Dismiss (delete) the specified alert from the specified publisher AdSense
|
1279 |
+
* account. (alerts.delete)
|
1280 |
+
*
|
1281 |
+
* @param string $accountId Account which contains the ad unit.
|
1282 |
+
* @param string $alertId Alert to delete.
|
1283 |
+
* @param array $optParams Optional parameters.
|
1284 |
+
*/
|
1285 |
+
public function delete( $accountId, $alertId, $optParams = array() ) {
|
1286 |
+
$params = array(
|
1287 |
+
'accountId' => $accountId,
|
1288 |
+
'alertId' => $alertId,
|
1289 |
+
);
|
1290 |
+
$params = array_merge( $params, $optParams );
|
1291 |
+
return $this->call( 'delete', array( $params ) );
|
1292 |
+
}
|
1293 |
+
|
1294 |
+
/**
|
1295 |
+
* List the alerts for the specified AdSense account.
|
1296 |
+
* (alerts.listAccountsAlerts)
|
1297 |
+
*
|
1298 |
+
* @param string $accountId Account for which to retrieve the alerts.
|
1299 |
+
* @param array $optParams Optional parameters.
|
1300 |
+
*
|
1301 |
+
* @opt_param string locale The locale to use for translating alert messages.
|
1302 |
+
* The account locale will be used if this is not supplied. The AdSense default
|
1303 |
+
* (English) will be used if the supplied locale is invalid or unsupported.
|
1304 |
+
* @return GoogleGAL_Service_AdSense_Alerts
|
1305 |
+
*/
|
1306 |
+
public function listAccountsAlerts( $accountId, $optParams = array() ) {
|
1307 |
+
$params = array( 'accountId' => $accountId );
|
1308 |
+
$params = array_merge( $params, $optParams );
|
1309 |
+
return $this->call( 'list', array( $params ), 'GoogleGAL_Service_AdSense_Alerts' );
|
1310 |
+
}
|
1311 |
+
}
|
1312 |
+
/**
|
1313 |
+
* The "customchannels" collection of methods.
|
1314 |
+
* Typical usage is:
|
1315 |
+
* <code>
|
1316 |
+
* $adsenseService = new GoogleGAL_Service_AdSense(...);
|
1317 |
+
* $customchannels = $adsenseService->customchannels;
|
1318 |
+
* </code>
|
1319 |
+
*/
|
1320 |
+
class GoogleGAL_Service_AdSense_AccountsCustomchannels_Resource extends GoogleGAL_Service_Resource {
|
1321 |
+
|
1322 |
+
|
1323 |
+
/**
|
1324 |
+
* Get the specified custom channel from the specified ad client for the
|
1325 |
+
* specified account. (customchannels.get)
|
1326 |
+
*
|
1327 |
+
* @param string $accountId Account to which the ad client belongs.
|
1328 |
+
* @param string $adClientId Ad client which contains the custom channel.
|
1329 |
+
* @param string $customChannelId Custom channel to retrieve.
|
1330 |
+
* @param array $optParams Optional parameters.
|
1331 |
+
* @return GoogleGAL_Service_AdSense_CustomChannel
|
1332 |
+
*/
|
1333 |
+
public function get( $accountId, $adClientId, $customChannelId, $optParams = array() ) {
|
1334 |
+
$params = array(
|
1335 |
+
'accountId' => $accountId,
|
1336 |
+
'adClientId' => $adClientId,
|
1337 |
+
'customChannelId' => $customChannelId,
|
1338 |
+
);
|
1339 |
+
$params = array_merge( $params, $optParams );
|
1340 |
+
return $this->call( 'get', array( $params ), 'GoogleGAL_Service_AdSense_CustomChannel' );
|
1341 |
+
}
|
1342 |
+
|
1343 |
+
/**
|
1344 |
+
* List all custom channels in the specified ad client for the specified
|
1345 |
+
* account. (customchannels.listAccountsCustomchannels)
|
1346 |
+
*
|
1347 |
+
* @param string $accountId Account to which the ad client belongs.
|
1348 |
+
* @param string $adClientId Ad client for which to list custom channels.
|
1349 |
+
* @param array $optParams Optional parameters.
|
1350 |
+
*
|
1351 |
+
* @opt_param string pageToken A continuation token, used to page through custom
|
1352 |
+
* channels. To retrieve the next page, set this parameter to the value of
|
1353 |
+
* "nextPageToken" from the previous response.
|
1354 |
+
* @opt_param int maxResults The maximum number of custom channels to include in
|
1355 |
+
* the response, used for paging.
|
1356 |
+
* @return GoogleGAL_Service_AdSense_CustomChannels
|
1357 |
+
*/
|
1358 |
+
public function listAccountsCustomchannels( $accountId, $adClientId, $optParams = array() ) {
|
1359 |
+
$params = array(
|
1360 |
+
'accountId' => $accountId,
|
1361 |
+
'adClientId' => $adClientId,
|
1362 |
+
);
|
1363 |
+
$params = array_merge( $params, $optParams );
|
1364 |
+
return $this->call( 'list', array( $params ), 'GoogleGAL_Service_AdSense_CustomChannels' );
|
1365 |
+
}
|
1366 |
+
}
|
1367 |
+
|
1368 |
+
/**
|
1369 |
+
* The "adunits" collection of methods.
|
1370 |
+
* Typical usage is:
|
1371 |
+
* <code>
|
1372 |
+
* $adsenseService = new GoogleGAL_Service_AdSense(...);
|
1373 |
+
* $adunits = $adsenseService->adunits;
|
1374 |
+
* </code>
|
1375 |
+
*/
|
1376 |
+
class GoogleGAL_Service_AdSense_AccountsCustomchannelsAdunits_Resource extends GoogleGAL_Service_Resource {
|
1377 |
+
|
1378 |
+
|
1379 |
+
/**
|
1380 |
+
* List all ad units in the specified custom channel.
|
1381 |
+
* (adunits.listAccountsCustomchannelsAdunits)
|
1382 |
+
*
|
1383 |
+
* @param string $accountId Account to which the ad client belongs.
|
1384 |
+
* @param string $adClientId Ad client which contains the custom channel.
|
1385 |
+
* @param string $customChannelId Custom channel for which to list ad units.
|
1386 |
+
* @param array $optParams Optional parameters.
|
1387 |
+
*
|
1388 |
+
* @opt_param bool includeInactive Whether to include inactive ad units.
|
1389 |
+
* Default: true.
|
1390 |
+
* @opt_param int maxResults The maximum number of ad units to include in the
|
1391 |
+
* response, used for paging.
|
1392 |
+
* @opt_param string pageToken A continuation token, used to page through ad
|
1393 |
+
* units. To retrieve the next page, set this parameter to the value of
|
1394 |
+
* "nextPageToken" from the previous response.
|
1395 |
+
* @return GoogleGAL_Service_AdSense_AdUnits
|
1396 |
+
*/
|
1397 |
+
public function listAccountsCustomchannelsAdunits( $accountId, $adClientId, $customChannelId, $optParams = array() ) {
|
1398 |
+
$params = array(
|
1399 |
+
'accountId' => $accountId,
|
1400 |
+
'adClientId' => $adClientId,
|
1401 |
+
'customChannelId' => $customChannelId,
|
1402 |
+
);
|
1403 |
+
$params = array_merge( $params, $optParams );
|
1404 |
+
return $this->call( 'list', array( $params ), 'GoogleGAL_Service_AdSense_AdUnits' );
|
1405 |
+
}
|
1406 |
+
}
|
1407 |
+
/**
|
1408 |
+
* The "payments" collection of methods.
|
1409 |
+
* Typical usage is:
|
1410 |
+
* <code>
|
1411 |
+
* $adsenseService = new GoogleGAL_Service_AdSense(...);
|
1412 |
+
* $payments = $adsenseService->payments;
|
1413 |
+
* </code>
|
1414 |
+
*/
|
1415 |
+
class GoogleGAL_Service_AdSense_AccountsPayments_Resource extends GoogleGAL_Service_Resource {
|
1416 |
+
|
1417 |
+
|
1418 |
+
/**
|
1419 |
+
* List the payments for the specified AdSense account.
|
1420 |
+
* (payments.listAccountsPayments)
|
1421 |
+
*
|
1422 |
+
* @param string $accountId Account for which to retrieve the payments.
|
1423 |
+
* @param array $optParams Optional parameters.
|
1424 |
+
* @return GoogleGAL_Service_AdSense_Payments
|
1425 |
+
*/
|
1426 |
+
public function listAccountsPayments( $accountId, $optParams = array() ) {
|
1427 |
+
$params = array( 'accountId' => $accountId );
|
1428 |
+
$params = array_merge( $params, $optParams );
|
1429 |
+
return $this->call( 'list', array( $params ), 'GoogleGAL_Service_AdSense_Payments' );
|
1430 |
+
}
|
1431 |
+
}
|
1432 |
+
/**
|
1433 |
+
* The "reports" collection of methods.
|
1434 |
+
* Typical usage is:
|
1435 |
+
* <code>
|
1436 |
+
* $adsenseService = new GoogleGAL_Service_AdSense(...);
|
1437 |
+
* $reports = $adsenseService->reports;
|
1438 |
+
* </code>
|
1439 |
+
*/
|
1440 |
+
class GoogleGAL_Service_AdSense_AccountsReports_Resource extends GoogleGAL_Service_Resource {
|
1441 |
+
|
1442 |
+
|
1443 |
+
/**
|
1444 |
+
* Generate an AdSense report based on the report request sent in the query
|
1445 |
+
* parameters. Returns the result as JSON; to retrieve output in CSV format
|
1446 |
+
* specify "alt=csv" as a query parameter. (reports.generate)
|
1447 |
+
*
|
1448 |
+
* @param string $accountId Account upon which to report.
|
1449 |
+
* @param string $startDate Start of the date range to report on in "YYYY-MM-DD"
|
1450 |
+
* format, inclusive.
|
1451 |
+
* @param string $endDate End of the date range to report on in "YYYY-MM-DD"
|
1452 |
+
* format, inclusive.
|
1453 |
+
* @param array $optParams Optional parameters.
|
1454 |
+
*
|
1455 |
+
* @opt_param string sort The name of a dimension or metric to sort the
|
1456 |
+
* resulting report on, optionally prefixed with "+" to sort ascending or "-" to
|
1457 |
+
* sort descending. If no prefix is specified, the column is sorted ascending.
|
1458 |
+
* @opt_param string locale Optional locale to use for translating report output
|
1459 |
+
* to a local language. Defaults to "en_US" if not specified.
|
1460 |
+
* @opt_param string metric Numeric columns to include in the report.
|
1461 |
+
* @opt_param int maxResults The maximum number of rows of report data to
|
1462 |
+
* return.
|
1463 |
+
* @opt_param string filter Filters to be run on the report.
|
1464 |
+
* @opt_param string currency Optional currency to use when reporting on
|
1465 |
+
* monetary metrics. Defaults to the account's currency if not set.
|
1466 |
+
* @opt_param int startIndex Index of the first row of report data to return.
|
1467 |
+
* @opt_param bool useTimezoneReporting Whether the report should be generated
|
1468 |
+
* in the AdSense account's local timezone. If false default PST/PDT timezone
|
1469 |
+
* will be used.
|
1470 |
+
* @opt_param string dimension Dimensions to base the report on.
|
1471 |
+
* @return GoogleGAL_Service_AdSense_AdsenseReportsGenerateResponse
|
1472 |
+
*/
|
1473 |
+
public function generate( $accountId, $startDate, $endDate, $optParams = array() ) {
|
1474 |
+
$params = array(
|
1475 |
+
'accountId' => $accountId,
|
1476 |
+
'startDate' => $startDate,
|
1477 |
+
'endDate' => $endDate,
|
1478 |
+
);
|
1479 |
+
$params = array_merge( $params, $optParams );
|
1480 |
+
return $this->call( 'generate', array( $params ), 'GoogleGAL_Service_AdSense_AdsenseReportsGenerateResponse' );
|
1481 |
+
}
|
1482 |
+
}
|
1483 |
+
|
1484 |
+
/**
|
1485 |
+
* The "saved" collection of methods.
|
1486 |
+
* Typical usage is:
|
1487 |
+
* <code>
|
1488 |
+
* $adsenseService = new GoogleGAL_Service_AdSense(...);
|
1489 |
+
* $saved = $adsenseService->saved;
|
1490 |
+
* </code>
|
1491 |
+
*/
|
1492 |
+
class GoogleGAL_Service_AdSense_AccountsReportsSaved_Resource extends GoogleGAL_Service_Resource {
|
1493 |
+
|
1494 |
+
|
1495 |
+
/**
|
1496 |
+
* Generate an AdSense report based on the saved report ID sent in the query
|
1497 |
+
* parameters. (saved.generate)
|
1498 |
+
*
|
1499 |
+
* @param string $accountId Account to which the saved reports belong.
|
1500 |
+
* @param string $savedReportId The saved report to retrieve.
|
1501 |
+
* @param array $optParams Optional parameters.
|
1502 |
+
*
|
1503 |
+
* @opt_param string locale Optional locale to use for translating report output
|
1504 |
+
* to a local language. Defaults to "en_US" if not specified.
|
1505 |
+
* @opt_param int startIndex Index of the first row of report data to return.
|
1506 |
+
* @opt_param int maxResults The maximum number of rows of report data to
|
1507 |
+
* return.
|
1508 |
+
* @return GoogleGAL_Service_AdSense_AdsenseReportsGenerateResponse
|
1509 |
+
*/
|
1510 |
+
public function generate( $accountId, $savedReportId, $optParams = array() ) {
|
1511 |
+
$params = array(
|
1512 |
+
'accountId' => $accountId,
|
1513 |
+
'savedReportId' => $savedReportId,
|
1514 |
+
);
|
1515 |
+
$params = array_merge( $params, $optParams );
|
1516 |
+
return $this->call( 'generate', array( $params ), 'GoogleGAL_Service_AdSense_AdsenseReportsGenerateResponse' );
|
1517 |
+
}
|
1518 |
+
|
1519 |
+
/**
|
1520 |
+
* List all saved reports in the specified AdSense account.
|
1521 |
+
* (saved.listAccountsReportsSaved)
|
1522 |
+
*
|
1523 |
+
* @param string $accountId Account to which the saved reports belong.
|
1524 |
+
* @param array $optParams Optional parameters.
|
1525 |
+
*
|
1526 |
+
* @opt_param string pageToken A continuation token, used to page through saved
|
1527 |
+
* reports. To retrieve the next page, set this parameter to the value of
|
1528 |
+
* "nextPageToken" from the previous response.
|
1529 |
+
* @opt_param int maxResults The maximum number of saved reports to include in
|
1530 |
+
* the response, used for paging.
|
1531 |
+
* @return GoogleGAL_Service_AdSense_SavedReports
|
1532 |
+
*/
|
1533 |
+
public function listAccountsReportsSaved( $accountId, $optParams = array() ) {
|
1534 |
+
$params = array( 'accountId' => $accountId );
|
1535 |
+
$params = array_merge( $params, $optParams );
|
1536 |
+
return $this->call( 'list', array( $params ), 'GoogleGAL_Service_AdSense_SavedReports' );
|
1537 |
+
}
|
1538 |
+
}
|
1539 |
+
/**
|
1540 |
+
* The "savedadstyles" collection of methods.
|
1541 |
+
* Typical usage is:
|
1542 |
+
* <code>
|
1543 |
+
* $adsenseService = new GoogleGAL_Service_AdSense(...);
|
1544 |
+
* $savedadstyles = $adsenseService->savedadstyles;
|
1545 |
+
* </code>
|
1546 |
+
*/
|
1547 |
+
class GoogleGAL_Service_AdSense_AccountsSavedadstyles_Resource extends GoogleGAL_Service_Resource {
|
1548 |
+
|
1549 |
+
|
1550 |
+
/**
|
1551 |
+
* List a specific saved ad style for the specified account. (savedadstyles.get)
|
1552 |
+
*
|
1553 |
+
* @param string $accountId Account for which to get the saved ad style.
|
1554 |
+
* @param string $savedAdStyleId Saved ad style to retrieve.
|
1555 |
+
* @param array $optParams Optional parameters.
|
1556 |
+
* @return GoogleGAL_Service_AdSense_SavedAdStyle
|
1557 |
+
*/
|
1558 |
+
public function get( $accountId, $savedAdStyleId, $optParams = array() ) {
|
1559 |
+
$params = array(
|
1560 |
+
'accountId' => $accountId,
|
1561 |
+
'savedAdStyleId' => $savedAdStyleId,
|
1562 |
+
);
|
1563 |
+
$params = array_merge( $params, $optParams );
|
1564 |
+
return $this->call( 'get', array( $params ), 'GoogleGAL_Service_AdSense_SavedAdStyle' );
|
1565 |
+
}
|
1566 |
+
|
1567 |
+
/**
|
1568 |
+
* List all saved ad styles in the specified account.
|
1569 |
+
* (savedadstyles.listAccountsSavedadstyles)
|
1570 |
+
*
|
1571 |
+
* @param string $accountId Account for which to list saved ad styles.
|
1572 |
+
* @param array $optParams Optional parameters.
|
1573 |
+
*
|
1574 |
+
* @opt_param string pageToken A continuation token, used to page through saved
|
1575 |
+
* ad styles. To retrieve the next page, set this parameter to the value of
|
1576 |
+
* "nextPageToken" from the previous response.
|
1577 |
+
* @opt_param int maxResults The maximum number of saved ad styles to include in
|
1578 |
+
* the response, used for paging.
|
1579 |
+
* @return GoogleGAL_Service_AdSense_SavedAdStyles
|
1580 |
+
*/
|
1581 |
+
public function listAccountsSavedadstyles( $accountId, $optParams = array() ) {
|
1582 |
+
$params = array( 'accountId' => $accountId );
|
1583 |
+
$params = array_merge( $params, $optParams );
|
1584 |
+
return $this->call( 'list', array( $params ), 'GoogleGAL_Service_AdSense_SavedAdStyles' );
|
1585 |
+
}
|
1586 |
+
}
|
1587 |
+
/**
|
1588 |
+
* The "urlchannels" collection of methods.
|
1589 |
+
* Typical usage is:
|
1590 |
+
* <code>
|
1591 |
+
* $adsenseService = new GoogleGAL_Service_AdSense(...);
|
1592 |
+
* $urlchannels = $adsenseService->urlchannels;
|
1593 |
+
* </code>
|
1594 |
+
*/
|
1595 |
+
class GoogleGAL_Service_AdSense_AccountsUrlchannels_Resource extends GoogleGAL_Service_Resource {
|
1596 |
+
|
1597 |
+
|
1598 |
+
/**
|
1599 |
+
* List all URL channels in the specified ad client for the specified account.
|
1600 |
+
* (urlchannels.listAccountsUrlchannels)
|
1601 |
+
*
|
1602 |
+
* @param string $accountId Account to which the ad client belongs.
|
1603 |
+
* @param string $adClientId Ad client for which to list URL channels.
|
1604 |
+
* @param array $optParams Optional parameters.
|
1605 |
+
*
|
1606 |
+
* @opt_param string pageToken A continuation token, used to page through URL
|
1607 |
+
* channels. To retrieve the next page, set this parameter to the value of
|
1608 |
+
* "nextPageToken" from the previous response.
|
1609 |
+
* @opt_param int maxResults The maximum number of URL channels to include in
|
1610 |
+
* the response, used for paging.
|
1611 |
+
* @return GoogleGAL_Service_AdSense_UrlChannels
|
1612 |
+
*/
|
1613 |
+
public function listAccountsUrlchannels( $accountId, $adClientId, $optParams = array() ) {
|
1614 |
+
$params = array(
|
1615 |
+
'accountId' => $accountId,
|
1616 |
+
'adClientId' => $adClientId,
|
1617 |
+
);
|
1618 |
+
$params = array_merge( $params, $optParams );
|
1619 |
+
return $this->call( 'list', array( $params ), 'GoogleGAL_Service_AdSense_UrlChannels' );
|
1620 |
+
}
|
1621 |
+
}
|
1622 |
+
|
1623 |
+
/**
|
1624 |
+
* The "adclients" collection of methods.
|
1625 |
+
* Typical usage is:
|
1626 |
+
* <code>
|
1627 |
+
* $adsenseService = new GoogleGAL_Service_AdSense(...);
|
1628 |
+
* $adclients = $adsenseService->adclients;
|
1629 |
+
* </code>
|
1630 |
+
*/
|
1631 |
+
class GoogleGAL_Service_AdSense_Adclients_Resource extends GoogleGAL_Service_Resource {
|
1632 |
+
|
1633 |
+
|
1634 |
+
/**
|
1635 |
+
* List all ad clients in this AdSense account. (adclients.listAdclients)
|
1636 |
+
*
|
1637 |
+
* @param array $optParams Optional parameters.
|
1638 |
+
*
|
1639 |
+
* @opt_param string pageToken A continuation token, used to page through ad
|
1640 |
+
* clients. To retrieve the next page, set this parameter to the value of
|
1641 |
+
* "nextPageToken" from the previous response.
|
1642 |
+
* @opt_param int maxResults The maximum number of ad clients to include in the
|
1643 |
+
* response, used for paging.
|
1644 |
+
* @return GoogleGAL_Service_AdSense_AdClients
|
1645 |
+
*/
|
1646 |
+
public function listAdclients( $optParams = array() ) {
|
1647 |
+
$params = array();
|
1648 |
+
$params = array_merge( $params, $optParams );
|
1649 |
+
return $this->call( 'list', array( $params ), 'GoogleGAL_Service_AdSense_AdClients' );
|
1650 |
+
}
|
1651 |
+
}
|
1652 |
+
|
1653 |
+
/**
|
1654 |
+
* The "adunits" collection of methods.
|
1655 |
+
* Typical usage is:
|
1656 |
+
* <code>
|
1657 |
+
* $adsenseService = new GoogleGAL_Service_AdSense(...);
|
1658 |
+
* $adunits = $adsenseService->adunits;
|
1659 |
+
* </code>
|
1660 |
+
*/
|
1661 |
+
class GoogleGAL_Service_AdSense_Adunits_Resource extends GoogleGAL_Service_Resource {
|
1662 |
+
|
1663 |
+
|
1664 |
+
/**
|
1665 |
+
* Gets the specified ad unit in the specified ad client. (adunits.get)
|
1666 |
+
*
|
1667 |
+
* @param string $adClientId Ad client for which to get the ad unit.
|
1668 |
+
* @param string $adUnitId Ad unit to retrieve.
|
1669 |
+
* @param array $optParams Optional parameters.
|
1670 |
+
* @return GoogleGAL_Service_AdSense_AdUnit
|
1671 |
+
*/
|
1672 |
+
public function get( $adClientId, $adUnitId, $optParams = array() ) {
|
1673 |
+
$params = array(
|
1674 |
+
'adClientId' => $adClientId,
|
1675 |
+
'adUnitId' => $adUnitId,
|
1676 |
+
);
|
1677 |
+
$params = array_merge( $params, $optParams );
|
1678 |
+
return $this->call( 'get', array( $params ), 'GoogleGAL_Service_AdSense_AdUnit' );
|
1679 |
+
}
|
1680 |
+
|
1681 |
+
/**
|
1682 |
+
* Get ad code for the specified ad unit. (adunits.getAdCode)
|
1683 |
+
*
|
1684 |
+
* @param string $adClientId Ad client with contains the ad unit.
|
1685 |
+
* @param string $adUnitId Ad unit to get the code for.
|
1686 |
+
* @param array $optParams Optional parameters.
|
1687 |
+
* @return GoogleGAL_Service_AdSense_AdCode
|
1688 |
+
*/
|
1689 |
+
public function getAdCode( $adClientId, $adUnitId, $optParams = array() ) {
|
1690 |
+
$params = array(
|
1691 |
+
'adClientId' => $adClientId,
|
1692 |
+
'adUnitId' => $adUnitId,
|
1693 |
+
);
|
1694 |
+
$params = array_merge( $params, $optParams );
|
1695 |
+
return $this->call( 'getAdCode', array( $params ), 'GoogleGAL_Service_AdSense_AdCode' );
|
1696 |
+
}
|
1697 |
+
|
1698 |
+
/**
|
1699 |
+
* List all ad units in the specified ad client for this AdSense account.
|
1700 |
+
* (adunits.listAdunits)
|
1701 |
+
*
|
1702 |
+
* @param string $adClientId Ad client for which to list ad units.
|
1703 |
+
* @param array $optParams Optional parameters.
|
1704 |
+
*
|
1705 |
+
* @opt_param bool includeInactive Whether to include inactive ad units.
|
1706 |
+
* Default: true.
|
1707 |
+
* @opt_param string pageToken A continuation token, used to page through ad
|
1708 |
+
* units. To retrieve the next page, set this parameter to the value of
|
1709 |
+
* "nextPageToken" from the previous response.
|
1710 |
+
* @opt_param int maxResults The maximum number of ad units to include in the
|
1711 |
+
* response, used for paging.
|
1712 |
+
* @return GoogleGAL_Service_AdSense_AdUnits
|
1713 |
+
*/
|
1714 |
+
public function listAdunits( $adClientId, $optParams = array() ) {
|
1715 |
+
$params = array( 'adClientId' => $adClientId );
|
1716 |
+
$params = array_merge( $params, $optParams );
|
1717 |
+
return $this->call( 'list', array( $params ), 'GoogleGAL_Service_AdSense_AdUnits' );
|
1718 |
+
}
|
1719 |
+
}
|
1720 |
+
|
1721 |
+
/**
|
1722 |
+
* The "customchannels" collection of methods.
|
1723 |
+
* Typical usage is:
|
1724 |
+
* <code>
|
1725 |
+
* $adsenseService = new GoogleGAL_Service_AdSense(...);
|
1726 |
+
* $customchannels = $adsenseService->customchannels;
|
1727 |
+
* </code>
|
1728 |
+
*/
|
1729 |
+
class GoogleGAL_Service_AdSense_AdunitsCustomchannels_Resource extends GoogleGAL_Service_Resource {
|
1730 |
+
|
1731 |
+
|
1732 |
+
/**
|
1733 |
+
* List all custom channels which the specified ad unit belongs to.
|
1734 |
+
* (customchannels.listAdunitsCustomchannels)
|
1735 |
+
*
|
1736 |
+
* @param string $adClientId Ad client which contains the ad unit.
|
1737 |
+
* @param string $adUnitId Ad unit for which to list custom channels.
|
1738 |
+
* @param array $optParams Optional parameters.
|
1739 |
+
*
|
1740 |
+
* @opt_param string pageToken A continuation token, used to page through custom
|
1741 |
+
* channels. To retrieve the next page, set this parameter to the value of
|
1742 |
+
* "nextPageToken" from the previous response.
|
1743 |
+
* @opt_param int maxResults The maximum number of custom channels to include in
|
1744 |
+
* the response, used for paging.
|
1745 |
+
* @return GoogleGAL_Service_AdSense_CustomChannels
|
1746 |
+
*/
|
1747 |
+
public function listAdunitsCustomchannels( $adClientId, $adUnitId, $optParams = array() ) {
|
1748 |
+
$params = array(
|
1749 |
+
'adClientId' => $adClientId,
|
1750 |
+
'adUnitId' => $adUnitId,
|
1751 |
+
);
|
1752 |
+
$params = array_merge( $params, $optParams );
|
1753 |
+
return $this->call( 'list', array( $params ), 'GoogleGAL_Service_AdSense_CustomChannels' );
|
1754 |
+
}
|
1755 |
+
}
|
1756 |
+
|
1757 |
+
/**
|
1758 |
+
* The "alerts" collection of methods.
|
1759 |
+
* Typical usage is:
|
1760 |
+
* <code>
|
1761 |
+
* $adsenseService = new GoogleGAL_Service_AdSense(...);
|
1762 |
+
* $alerts = $adsenseService->alerts;
|
1763 |
+
* </code>
|
1764 |
+
*/
|
1765 |
+
class GoogleGAL_Service_AdSense_Alerts_Resource extends GoogleGAL_Service_Resource {
|
1766 |
+
|
1767 |
+
|
1768 |
+
/**
|
1769 |
+
* Dismiss (delete) the specified alert from the publisher's AdSense account.
|
1770 |
+
* (alerts.delete)
|
1771 |
+
*
|
1772 |
+
* @param string $alertId Alert to delete.
|
1773 |
+
* @param array $optParams Optional parameters.
|
1774 |
+
*/
|
1775 |
+
public function delete( $alertId, $optParams = array() ) {
|
1776 |
+
$params = array( 'alertId' => $alertId );
|
1777 |
+
$params = array_merge( $params, $optParams );
|
1778 |
+
return $this->call( 'delete', array( $params ) );
|
1779 |
+
}
|
1780 |
+
|
1781 |
+
/**
|
1782 |
+
* List the alerts for this AdSense account. (alerts.listAlerts)
|
1783 |
+
*
|
1784 |
+
* @param array $optParams Optional parameters.
|
1785 |
+
*
|
1786 |
+
* @opt_param string locale The locale to use for translating alert messages.
|
1787 |
+
* The account locale will be used if this is not supplied. The AdSense default
|
1788 |
+
* (English) will be used if the supplied locale is invalid or unsupported.
|
1789 |
+
* @return GoogleGAL_Service_AdSense_Alerts
|
1790 |
+
*/
|
1791 |
+
public function listAlerts( $optParams = array() ) {
|
1792 |
+
$params = array();
|
1793 |
+
$params = array_merge( $params, $optParams );
|
1794 |
+
return $this->call( 'list', array( $params ), 'GoogleGAL_Service_AdSense_Alerts' );
|
1795 |
+
}
|
1796 |
+
}
|
1797 |
+
|
1798 |
+
/**
|
1799 |
+
* The "customchannels" collection of methods.
|
1800 |
+
* Typical usage is:
|
1801 |
+
* <code>
|
1802 |
+
* $adsenseService = new GoogleGAL_Service_AdSense(...);
|
1803 |
+
* $customchannels = $adsenseService->customchannels;
|
1804 |
+
* </code>
|
1805 |
+
*/
|
1806 |
+
class GoogleGAL_Service_AdSense_Customchannels_Resource extends GoogleGAL_Service_Resource {
|
1807 |
+
|
1808 |
+
|
1809 |
+
/**
|
1810 |
+
* Get the specified custom channel from the specified ad client.
|
1811 |
+
* (customchannels.get)
|
1812 |
+
*
|
1813 |
+
* @param string $adClientId Ad client which contains the custom channel.
|
1814 |
+
* @param string $customChannelId Custom channel to retrieve.
|
1815 |
+
* @param array $optParams Optional parameters.
|
1816 |
+
* @return GoogleGAL_Service_AdSense_CustomChannel
|
1817 |
+
*/
|
1818 |
+
public function get( $adClientId, $customChannelId, $optParams = array() ) {
|
1819 |
+
$params = array(
|
1820 |
+
'adClientId' => $adClientId,
|
1821 |
+
'customChannelId' => $customChannelId,
|
1822 |
+
);
|
1823 |
+
$params = array_merge( $params, $optParams );
|
1824 |
+
return $this->call( 'get', array( $params ), 'GoogleGAL_Service_AdSense_CustomChannel' );
|
1825 |
+
}
|
1826 |
+
|
1827 |
+
/**
|
1828 |
+
* List all custom channels in the specified ad client for this AdSense account.
|
1829 |
+
* (customchannels.listCustomchannels)
|
1830 |
+
*
|
1831 |
+
* @param string $adClientId Ad client for which to list custom channels.
|
1832 |
+
* @param array $optParams Optional parameters.
|
1833 |
+
*
|
1834 |
+
* @opt_param string pageToken A continuation token, used to page through custom
|
1835 |
+
* channels. To retrieve the next page, set this parameter to the value of
|
1836 |
+
* "nextPageToken" from the previous response.
|
1837 |
+
* @opt_param int maxResults The maximum number of custom channels to include in
|
1838 |
+
* the response, used for paging.
|
1839 |
+
* @return GoogleGAL_Service_AdSense_CustomChannels
|
1840 |
+
*/
|
1841 |
+
public function listCustomchannels( $adClientId, $optParams = array() ) {
|
1842 |
+
$params = array( 'adClientId' => $adClientId );
|
1843 |
+
$params = array_merge( $params, $optParams );
|
1844 |
+
return $this->call( 'list', array( $params ), 'GoogleGAL_Service_AdSense_CustomChannels' );
|
1845 |
+
}
|
1846 |
+
}
|
1847 |
+
|
1848 |
+
/**
|
1849 |
+
* The "adunits" collection of methods.
|
1850 |
+
* Typical usage is:
|
1851 |
+
* <code>
|
1852 |
+
* $adsenseService = new GoogleGAL_Service_AdSense(...);
|
1853 |
+
* $adunits = $adsenseService->adunits;
|
1854 |
+
* </code>
|
1855 |
+
*/
|
1856 |
+
class GoogleGAL_Service_AdSense_CustomchannelsAdunits_Resource extends GoogleGAL_Service_Resource {
|
1857 |
+
|
1858 |
+
|
1859 |
+
/**
|
1860 |
+
* List all ad units in the specified custom channel.
|
1861 |
+
* (adunits.listCustomchannelsAdunits)
|
1862 |
+
*
|
1863 |
+
* @param string $adClientId Ad client which contains the custom channel.
|
1864 |
+
* @param string $customChannelId Custom channel for which to list ad units.
|
1865 |
+
* @param array $optParams Optional parameters.
|
1866 |
+
*
|
1867 |
+
* @opt_param bool includeInactive Whether to include inactive ad units.
|
1868 |
+
* Default: true.
|
1869 |
+
* @opt_param string pageToken A continuation token, used to page through ad
|
1870 |
+
* units. To retrieve the next page, set this parameter to the value of
|
1871 |
+
* "nextPageToken" from the previous response.
|
1872 |
+
* @opt_param int maxResults The maximum number of ad units to include in the
|
1873 |
+
* response, used for paging.
|
1874 |
+
* @return GoogleGAL_Service_AdSense_AdUnits
|
1875 |
+
*/
|
1876 |
+
public function listCustomchannelsAdunits( $adClientId, $customChannelId, $optParams = array() ) {
|
1877 |
+
$params = array(
|
1878 |
+
'adClientId' => $adClientId,
|
1879 |
+
'customChannelId' => $customChannelId,
|
1880 |
+
);
|
1881 |
+
$params = array_merge( $params, $optParams );
|
1882 |
+
return $this->call( 'list', array( $params ), 'GoogleGAL_Service_AdSense_AdUnits' );
|
1883 |
+
}
|
1884 |
+
}
|
1885 |
+
|
1886 |
+
/**
|
1887 |
+
* The "metadata" collection of methods.
|
1888 |
+
* Typical usage is:
|
1889 |
+
* <code>
|
1890 |
+
* $adsenseService = new GoogleGAL_Service_AdSense(...);
|
1891 |
+
* $metadata = $adsenseService->metadata;
|
1892 |
+
* </code>
|
1893 |
+
*/
|
1894 |
+
class GoogleGAL_Service_AdSense_Metadata_Resource extends GoogleGAL_Service_Resource {
|
1895 |
+
|
1896 |
+
}
|
1897 |
+
|
1898 |
+
/**
|
1899 |
+
* The "dimensions" collection of methods.
|
1900 |
+
* Typical usage is:
|
1901 |
+
* <code>
|
1902 |
+
* $adsenseService = new GoogleGAL_Service_AdSense(...);
|
1903 |
+
* $dimensions = $adsenseService->dimensions;
|
1904 |
+
* </code>
|
1905 |
+
*/
|
1906 |
+
class GoogleGAL_Service_AdSense_MetadataDimensions_Resource extends GoogleGAL_Service_Resource {
|
1907 |
+
|
1908 |
+
|
1909 |
+
/**
|
1910 |
+
* List the metadata for the dimensions available to this AdSense account.
|
1911 |
+
* (dimensions.listMetadataDimensions)
|
1912 |
+
*
|
1913 |
+
* @param array $optParams Optional parameters.
|
1914 |
+
* @return GoogleGAL_Service_AdSense_Metadata
|
1915 |
+
*/
|
1916 |
+
public function listMetadataDimensions( $optParams = array() ) {
|
1917 |
+
$params = array();
|
1918 |
+
$params = array_merge( $params, $optParams );
|
1919 |
+
return $this->call( 'list', array( $params ), 'GoogleGAL_Service_AdSense_Metadata' );
|
1920 |
+
}
|
1921 |
+
}
|
1922 |
+
/**
|
1923 |
+
* The "metrics" collection of methods.
|
1924 |
+
* Typical usage is:
|
1925 |
+
* <code>
|
1926 |
+
* $adsenseService = new GoogleGAL_Service_AdSense(...);
|
1927 |
+
* $metrics = $adsenseService->metrics;
|
1928 |
+
* </code>
|
1929 |
+
*/
|
1930 |
+
class GoogleGAL_Service_AdSense_MetadataMetrics_Resource extends GoogleGAL_Service_Resource {
|
1931 |
+
|
1932 |
+
|
1933 |
+
/**
|
1934 |
+
* List the metadata for the metrics available to this AdSense account.
|
1935 |
+
* (metrics.listMetadataMetrics)
|
1936 |
+
*
|
1937 |
+
* @param array $optParams Optional parameters.
|
1938 |
+
* @return GoogleGAL_Service_AdSense_Metadata
|
1939 |
+
*/
|
1940 |
+
public function listMetadataMetrics( $optParams = array() ) {
|
1941 |
+
$params = array();
|
1942 |
+
$params = array_merge( $params, $optParams );
|
1943 |
+
return $this->call( 'list', array( $params ), 'GoogleGAL_Service_AdSense_Metadata' );
|
1944 |
+
}
|
1945 |
+
}
|
1946 |
+
|
1947 |
+
/**
|
1948 |
+
* The "payments" collection of methods.
|
1949 |
+
* Typical usage is:
|
1950 |
+
* <code>
|
1951 |
+
* $adsenseService = new GoogleGAL_Service_AdSense(...);
|
1952 |
+
* $payments = $adsenseService->payments;
|
1953 |
+
* </code>
|
1954 |
+
*/
|
1955 |
+
class GoogleGAL_Service_AdSense_Payments_Resource extends GoogleGAL_Service_Resource {
|
1956 |
+
|
1957 |
+
|
1958 |
+
/**
|
1959 |
+
* List the payments for this AdSense account. (payments.listPayments)
|
1960 |
+
*
|
1961 |
+
* @param array $optParams Optional parameters.
|
1962 |
+
* @return GoogleGAL_Service_AdSense_Payments
|
1963 |
+
*/
|
1964 |
+
public function listPayments( $optParams = array() ) {
|
1965 |
+
$params = array();
|
1966 |
+
$params = array_merge( $params, $optParams );
|
1967 |
+
return $this->call( 'list', array( $params ), 'GoogleGAL_Service_AdSense_Payments' );
|
1968 |
+
}
|
1969 |
+
}
|
1970 |
+
|
1971 |
+
/**
|
1972 |
+
* The "reports" collection of methods.
|
1973 |
+
* Typical usage is:
|
1974 |
+
* <code>
|
1975 |
+
* $adsenseService = new GoogleGAL_Service_AdSense(...);
|
1976 |
+
* $reports = $adsenseService->reports;
|
1977 |
+
* </code>
|
1978 |
+
*/
|
1979 |
+
class GoogleGAL_Service_AdSense_Reports_Resource extends GoogleGAL_Service_Resource {
|
1980 |
+
|
1981 |
+
|
1982 |
+
/**
|
1983 |
+
* Generate an AdSense report based on the report request sent in the query
|
1984 |
+
* parameters. Returns the result as JSON; to retrieve output in CSV format
|
1985 |
+
* specify "alt=csv" as a query parameter. (reports.generate)
|
1986 |
+
*
|
1987 |
+
* @param string $startDate Start of the date range to report on in "YYYY-MM-DD"
|
1988 |
+
* format, inclusive.
|
1989 |
+
* @param string $endDate End of the date range to report on in "YYYY-MM-DD"
|
1990 |
+
* format, inclusive.
|
1991 |
+
* @param array $optParams Optional parameters.
|
1992 |
+
*
|
1993 |
+
* @opt_param string sort The name of a dimension or metric to sort the
|
1994 |
+
* resulting report on, optionally prefixed with "+" to sort ascending or "-" to
|
1995 |
+
* sort descending. If no prefix is specified, the column is sorted ascending.
|
1996 |
+
* @opt_param string locale Optional locale to use for translating report output
|
1997 |
+
* to a local language. Defaults to "en_US" if not specified.
|
1998 |
+
* @opt_param string metric Numeric columns to include in the report.
|
1999 |
+
* @opt_param int maxResults The maximum number of rows of report data to
|
2000 |
+
* return.
|
2001 |
+
* @opt_param string filter Filters to be run on the report.
|
2002 |
+
* @opt_param string currency Optional currency to use when reporting on
|
2003 |
+
* monetary metrics. Defaults to the account's currency if not set.
|
2004 |
+
* @opt_param int startIndex Index of the first row of report data to return.
|
2005 |
+
* @opt_param bool useTimezoneReporting Whether the report should be generated
|
2006 |
+
* in the AdSense account's local timezone. If false default PST/PDT timezone
|
2007 |
+
* will be used.
|
2008 |
+
* @opt_param string dimension Dimensions to base the report on.
|
2009 |
+
* @opt_param string accountId Accounts upon which to report.
|
2010 |
+
* @return GoogleGAL_Service_AdSense_AdsenseReportsGenerateResponse
|
2011 |
+
*/
|
2012 |
+
public function generate( $startDate, $endDate, $optParams = array() ) {
|
2013 |
+
$params = array(
|
2014 |
+
'startDate' => $startDate,
|
2015 |
+
'endDate' => $endDate,
|
2016 |
+
);
|
2017 |
+
$params = array_merge( $params, $optParams );
|
2018 |
+
return $this->call( 'generate', array( $params ), 'GoogleGAL_Service_AdSense_AdsenseReportsGenerateResponse' );
|
2019 |
+
}
|
2020 |
+
}
|
2021 |
+
|
2022 |
+
/**
|
2023 |
+
* The "saved" collection of methods.
|
2024 |
+
* Typical usage is:
|
2025 |
+
* <code>
|
2026 |
+
* $adsenseService = new GoogleGAL_Service_AdSense(...);
|
2027 |
+
* $saved = $adsenseService->saved;
|
2028 |
+
* </code>
|
2029 |
+
*/
|
2030 |
+
class GoogleGAL_Service_AdSense_ReportsSaved_Resource extends GoogleGAL_Service_Resource {
|
2031 |
+
|
2032 |
+
|
2033 |
+
/**
|
2034 |
+
* Generate an AdSense report based on the saved report ID sent in the query
|
2035 |
+
* parameters. (saved.generate)
|
2036 |
+
*
|
2037 |
+
* @param string $savedReportId The saved report to retrieve.
|
2038 |
+
* @param array $optParams Optional parameters.
|
2039 |
+
*
|
2040 |
+
* @opt_param string locale Optional locale to use for translating report output
|
2041 |
+
* to a local language. Defaults to "en_US" if not specified.
|
2042 |
+
* @opt_param int startIndex Index of the first row of report data to return.
|
2043 |
+
* @opt_param int maxResults The maximum number of rows of report data to
|
2044 |
+
* return.
|
2045 |
+
* @return GoogleGAL_Service_AdSense_AdsenseReportsGenerateResponse
|
2046 |
+
*/
|
2047 |
+
public function generate( $savedReportId, $optParams = array() ) {
|
2048 |
+
$params = array( 'savedReportId' => $savedReportId );
|
2049 |
+
$params = array_merge( $params, $optParams );
|
2050 |
+
return $this->call( 'generate', array( $params ), 'GoogleGAL_Service_AdSense_AdsenseReportsGenerateResponse' );
|
2051 |
+
}
|
2052 |
+
|
2053 |
+
/**
|
2054 |
+
* List all saved reports in this AdSense account. (saved.listReportsSaved)
|
2055 |
+
*
|
2056 |
+
* @param array $optParams Optional parameters.
|
2057 |
+
*
|
2058 |
+
* @opt_param string pageToken A continuation token, used to page through saved
|
2059 |
+
* reports. To retrieve the next page, set this parameter to the value of
|
2060 |
+
* "nextPageToken" from the previous response.
|
2061 |
+
* @opt_param int maxResults The maximum number of saved reports to include in
|
2062 |
+
* the response, used for paging.
|
2063 |
+
* @return GoogleGAL_Service_AdSense_SavedReports
|
2064 |
+
*/
|
2065 |
+
public function listReportsSaved( $optParams = array() ) {
|
2066 |
+
$params = array();
|
2067 |
+
$params = array_merge( $params, $optParams );
|
2068 |
+
return $this->call( 'list', array( $params ), 'GoogleGAL_Service_AdSense_SavedReports' );
|
2069 |
+
}
|
2070 |
+
}
|
2071 |
+
|
2072 |
+
/**
|
2073 |
+
* The "savedadstyles" collection of methods.
|
2074 |
+
* Typical usage is:
|
2075 |
+
* <code>
|
2076 |
+
* $adsenseService = new GoogleGAL_Service_AdSense(...);
|
2077 |
+
* $savedadstyles = $adsenseService->savedadstyles;
|
2078 |
+
* </code>
|
2079 |
+
*/
|
2080 |
+
class GoogleGAL_Service_AdSense_Savedadstyles_Resource extends GoogleGAL_Service_Resource {
|
2081 |
+
|
2082 |
+
|
2083 |
+
/**
|
2084 |
+
* Get a specific saved ad style from the user's account. (savedadstyles.get)
|
2085 |
+
*
|
2086 |
+
* @param string $savedAdStyleId Saved ad style to retrieve.
|
2087 |
+
* @param array $optParams Optional parameters.
|
2088 |
+
* @return GoogleGAL_Service_AdSense_SavedAdStyle
|
2089 |
+
*/
|
2090 |
+
public function get( $savedAdStyleId, $optParams = array() ) {
|
2091 |
+
$params = array( 'savedAdStyleId' => $savedAdStyleId );
|
2092 |
+
$params = array_merge( $params, $optParams );
|
2093 |
+
return $this->call( 'get', array( $params ), 'GoogleGAL_Service_AdSense_SavedAdStyle' );
|
2094 |
+
}
|
2095 |
+
|
2096 |
+
/**
|
2097 |
+
* List all saved ad styles in the user's account.
|
2098 |
+
* (savedadstyles.listSavedadstyles)
|
2099 |
+
*
|
2100 |
+
* @param array $optParams Optional parameters.
|
2101 |
+
*
|
2102 |
+
* @opt_param string pageToken A continuation token, used to page through saved
|
2103 |
+
* ad styles. To retrieve the next page, set this parameter to the value of
|
2104 |
+
* "nextPageToken" from the previous response.
|
2105 |
+
* @opt_param int maxResults The maximum number of saved ad styles to include in
|
2106 |
+
* the response, used for paging.
|
2107 |
+
* @return GoogleGAL_Service_AdSense_SavedAdStyles
|
2108 |
+
*/
|
2109 |
+
public function listSavedadstyles( $optParams = array() ) {
|
2110 |
+
$params = array();
|
2111 |
+
$params = array_merge( $params, $optParams );
|
2112 |
+
return $this->call( 'list', array( $params ), 'GoogleGAL_Service_AdSense_SavedAdStyles' );
|
2113 |
+
}
|
2114 |
+
}
|
2115 |
+
|
2116 |
+
/**
|
2117 |
+
* The "urlchannels" collection of methods.
|
2118 |
+
* Typical usage is:
|
2119 |
+
* <code>
|
2120 |
+
* $adsenseService = new GoogleGAL_Service_AdSense(...);
|
2121 |
+
* $urlchannels = $adsenseService->urlchannels;
|
2122 |
+
* </code>
|
2123 |
+
*/
|
2124 |
+
class GoogleGAL_Service_AdSense_Urlchannels_Resource extends GoogleGAL_Service_Resource {
|
2125 |
+
|
2126 |
+
|
2127 |
+
/**
|
2128 |
+
* List all URL channels in the specified ad client for this AdSense account.
|
2129 |
+
* (urlchannels.listUrlchannels)
|
2130 |
+
*
|
2131 |
+
* @param string $adClientId Ad client for which to list URL channels.
|
2132 |
+
* @param array $optParams Optional parameters.
|
2133 |
+
*
|
2134 |
+
* @opt_param string pageToken A continuation token, used to page through URL
|
2135 |
+
* channels. To retrieve the next page, set this parameter to the value of
|
2136 |
+
* "nextPageToken" from the previous response.
|
2137 |
+
* @opt_param int maxResults The maximum number of URL channels to include in
|
2138 |
+
* the response, used for paging.
|
2139 |
+
* @return GoogleGAL_Service_AdSense_UrlChannels
|
2140 |
+
*/
|
2141 |
+
public function listUrlchannels( $adClientId, $optParams = array() ) {
|
2142 |
+
$params = array( 'adClientId' => $adClientId );
|
2143 |
+
$params = array_merge( $params, $optParams );
|
2144 |
+
return $this->call( 'list', array( $params ), 'GoogleGAL_Service_AdSense_UrlChannels' );
|
2145 |
+
}
|
2146 |
+
}
|
2147 |
+
|
2148 |
+
|
2149 |
+
|
2150 |
+
|
2151 |
+
class GoogleGAL_Service_AdSense_Account extends GoogleGAL_Collection {
|
2152 |
+
|
2153 |
+
protected $collection_key = 'subAccounts';
|
2154 |
+
protected $internal_gapi_mappings = array();
|
2155 |
+
public $id;
|
2156 |
+
public $kind;
|
2157 |
+
public $name;
|
2158 |
+
public $premium;
|
2159 |
+
protected $subAccountsType = 'GoogleGAL_Service_AdSense_Account';
|
2160 |
+
protected $subAccountsDataType = 'array';
|
2161 |
+
public $timezone;
|
2162 |
+
|
2163 |
+
|
2164 |
+
public function setId( $id ) {
|
2165 |
+
$this->id = $id;
|
2166 |
+
}
|
2167 |
+
public function getId() {
|
2168 |
+
return $this->id;
|
2169 |
+
}
|
2170 |
+
public function setKind( $kind ) {
|
2171 |
+
$this->kind = $kind;
|
2172 |
+
}
|
2173 |
+
public function getKind() {
|
2174 |
+
return $this->kind;
|
2175 |
+
}
|
2176 |
+
public function setName( $name ) {
|
2177 |
+
$this->name = $name;
|
2178 |
+
}
|
2179 |
+
public function getName() {
|
2180 |
+
return $this->name;
|
2181 |
+
}
|
2182 |
+
public function setPremium( $premium ) {
|
2183 |
+
$this->premium = $premium;
|
2184 |
+
}
|
2185 |
+
public function getPremium() {
|
2186 |
+
return $this->premium;
|
2187 |
+
}
|
2188 |
+
public function setSubAccounts( $subAccounts ) {
|
2189 |
+
$this->subAccounts = $subAccounts;
|
2190 |
+
}
|
2191 |
+
public function getSubAccounts() {
|
2192 |
+
return $this->subAccounts;
|
2193 |
+
}
|
2194 |
+
public function setTimezone( $timezone ) {
|
2195 |
+
$this->timezone = $timezone;
|
2196 |
+
}
|
2197 |
+
public function getTimezone() {
|
2198 |
+
return $this->timezone;
|
2199 |
+
}
|
2200 |
+
}
|
2201 |
+
|
2202 |
+
class GoogleGAL_Service_AdSense_Accounts extends GoogleGAL_Collection {
|
2203 |
+
|
2204 |
+
protected $collection_key = 'items';
|
2205 |
+
protected $internal_gapi_mappings = array();
|
2206 |
+
public $etag;
|
2207 |
+
protected $itemsType = 'GoogleGAL_Service_AdSense_Account';
|
2208 |
+
protected $itemsDataType = 'array';
|
2209 |
+
public $kind;
|
2210 |
+
public $nextPageToken;
|
2211 |
+
|
2212 |
+
|
2213 |
+
public function setEtag( $etag ) {
|
2214 |
+
$this->etag = $etag;
|
2215 |
+
}
|
2216 |
+
public function getEtag() {
|
2217 |
+
return $this->etag;
|
2218 |
+
}
|
2219 |
+
public function setItems( $items ) {
|
2220 |
+
$this->items = $items;
|
2221 |
+
}
|
2222 |
+
public function getItems() {
|
2223 |
+
return $this->items;
|
2224 |
+
}
|
2225 |
+
public function setKind( $kind ) {
|
2226 |
+
$this->kind = $kind;
|
2227 |
+
}
|
2228 |
+
public function getKind() {
|
2229 |
+
return $this->kind;
|
2230 |
+
}
|
2231 |
+
public function setNextPageToken( $nextPageToken ) {
|
2232 |
+
$this->nextPageToken = $nextPageToken;
|
2233 |
+
}
|
2234 |
+
public function getNextPageToken() {
|
2235 |
+
return $this->nextPageToken;
|
2236 |
+
}
|
2237 |
+
}
|
2238 |
+
|
2239 |
+
class GoogleGAL_Service_AdSense_AdClient extends GoogleGAL_Model {
|
2240 |
+
|
2241 |
+
protected $internal_gapi_mappings = array();
|
2242 |
+
public $arcOptIn;
|
2243 |
+
public $arcReviewMode;
|
2244 |
+
public $id;
|
2245 |
+
public $kind;
|
2246 |
+
public $productCode;
|
2247 |
+
public $supportsReporting;
|
2248 |
+
|
2249 |
+
|
2250 |
+
public function setArcOptIn( $arcOptIn ) {
|
2251 |
+
$this->arcOptIn = $arcOptIn;
|
2252 |
+
}
|
2253 |
+
public function getArcOptIn() {
|
2254 |
+
return $this->arcOptIn;
|
2255 |
+
}
|
2256 |
+
public function setArcReviewMode( $arcReviewMode ) {
|
2257 |
+
$this->arcReviewMode = $arcReviewMode;
|
2258 |
+
}
|
2259 |
+
public function getArcReviewMode() {
|
2260 |
+
return $this->arcReviewMode;
|
2261 |
+
}
|
2262 |
+
public function setId( $id ) {
|
2263 |
+
$this->id = $id;
|
2264 |
+
}
|
2265 |
+
public function getId() {
|
2266 |
+
return $this->id;
|
2267 |
+
}
|
2268 |
+
public function setKind( $kind ) {
|
2269 |
+
$this->kind = $kind;
|
2270 |
+
}
|
2271 |
+
public function getKind() {
|
2272 |
+
return $this->kind;
|
2273 |
+
}
|
2274 |
+
public function setProductCode( $productCode ) {
|
2275 |
+
$this->productCode = $productCode;
|
2276 |
+
}
|
2277 |
+
public function getProductCode() {
|
2278 |
+
return $this->productCode;
|
2279 |
+
}
|
2280 |
+
public function setSupportsReporting( $supportsReporting ) {
|
2281 |
+
$this->supportsReporting = $supportsReporting;
|
2282 |
+
}
|
2283 |
+
public function getSupportsReporting() {
|
2284 |
+
return $this->supportsReporting;
|
2285 |
+
}
|
2286 |
+
}
|
2287 |
+
|
2288 |
+
class GoogleGAL_Service_AdSense_AdClients extends GoogleGAL_Collection {
|
2289 |
+
|
2290 |
+
protected $collection_key = 'items';
|
2291 |
+
protected $internal_gapi_mappings = array();
|
2292 |
+
public $etag;
|
2293 |
+
protected $itemsType = 'GoogleGAL_Service_AdSense_AdClient';
|
2294 |
+
protected $itemsDataType = 'array';
|
2295 |
+
public $kind;
|
2296 |
+
public $nextPageToken;
|
2297 |
+
|
2298 |
+
|
2299 |
+
public function setEtag( $etag ) {
|
2300 |
+
$this->etag = $etag;
|
2301 |
+
}
|
2302 |
+
public function getEtag() {
|
2303 |
+
return $this->etag;
|
2304 |
+
}
|
2305 |
+
public function setItems( $items ) {
|
2306 |
+
$this->items = $items;
|
2307 |
+
}
|
2308 |
+
public function getItems() {
|
2309 |
+
return $this->items;
|
2310 |
+
}
|
2311 |
+
public function setKind( $kind ) {
|
2312 |
+
$this->kind = $kind;
|
2313 |
+
}
|
2314 |
+
public function getKind() {
|
2315 |
+
return $this->kind;
|
2316 |
+
}
|
2317 |
+
public function setNextPageToken( $nextPageToken ) {
|
2318 |
+
$this->nextPageToken = $nextPageToken;
|
2319 |
+
}
|
2320 |
+
public function getNextPageToken() {
|
2321 |
+
return $this->nextPageToken;
|
2322 |
+
}
|
2323 |
+
}
|
2324 |
+
|
2325 |
+
class GoogleGAL_Service_AdSense_AdCode extends GoogleGAL_Model {
|
2326 |
+
|
2327 |
+
protected $internal_gapi_mappings = array();
|
2328 |
+
public $adCode;
|
2329 |
+
public $kind;
|
2330 |
+
|
2331 |
+
|
2332 |
+
public function setAdCode( $adCode ) {
|
2333 |
+
$this->adCode = $adCode;
|
2334 |
+
}
|
2335 |
+
public function getAdCode() {
|
2336 |
+
return $this->adCode;
|
2337 |
+
}
|
2338 |
+
public function setKind( $kind ) {
|
2339 |
+
$this->kind = $kind;
|
2340 |
+
}
|
2341 |
+
public function getKind() {
|
2342 |
+
return $this->kind;
|
2343 |
+
}
|
2344 |
+
}
|
2345 |
+
|
2346 |
+
class GoogleGAL_Service_AdSense_AdStyle extends GoogleGAL_Model {
|
2347 |
+
|
2348 |
+
protected $internal_gapi_mappings = array();
|
2349 |
+
protected $colorsType = 'GoogleGAL_Service_AdSense_AdStyleColors';
|
2350 |
+
protected $colorsDataType = '';
|
2351 |
+
public $corners;
|
2352 |
+
protected $fontType = 'GoogleGAL_Service_AdSense_AdStyleFont';
|
2353 |
+
protected $fontDataType = '';
|
2354 |
+
public $kind;
|
2355 |
+
|
2356 |
+
|
2357 |
+
public function setColors( GoogleGAL_Service_AdSense_AdStyleColors $colors ) {
|
2358 |
+
$this->colors = $colors;
|
2359 |
+
}
|
2360 |
+
public function getColors() {
|
2361 |
+
return $this->colors;
|
2362 |
+
}
|
2363 |
+
public function setCorners( $corners ) {
|
2364 |
+
$this->corners = $corners;
|
2365 |
+
}
|
2366 |
+
public function getCorners() {
|
2367 |
+
return $this->corners;
|
2368 |
+
}
|
2369 |
+
public function setFont( GoogleGAL_Service_AdSense_AdStyleFont $font ) {
|
2370 |
+
$this->font = $font;
|
2371 |
+
}
|
2372 |
+
public function getFont() {
|
2373 |
+
return $this->font;
|
2374 |
+
}
|
2375 |
+
public function setKind( $kind ) {
|
2376 |
+
$this->kind = $kind;
|
2377 |
+
}
|
2378 |
+
public function getKind() {
|
2379 |
+
return $this->kind;
|
2380 |
+
}
|
2381 |
+
}
|
2382 |
+
|
2383 |
+
class GoogleGAL_Service_AdSense_AdStyleColors extends GoogleGAL_Model {
|
2384 |
+
|
2385 |
+
protected $internal_gapi_mappings = array();
|
2386 |
+
public $background;
|
2387 |
+
public $border;
|
2388 |
+
public $text;
|
2389 |
+
public $title;
|
2390 |
+
public $url;
|
2391 |
+
|
2392 |
+
|
2393 |
+
public function setBackground( $background ) {
|
2394 |
+
$this->background = $background;
|
2395 |
+
}
|
2396 |
+
public function getBackground() {
|
2397 |
+
return $this->background;
|
2398 |
+
}
|
2399 |
+
public function setBorder( $border ) {
|
2400 |
+
$this->border = $border;
|
2401 |
+
}
|
2402 |
+
public function getBorder() {
|
2403 |
+
return $this->border;
|
2404 |
+
}
|
2405 |
+
public function setText( $text ) {
|
2406 |
+
$this->text = $text;
|
2407 |
+
}
|
2408 |
+
public function getText() {
|
2409 |
+
return $this->text;
|
2410 |
+
}
|
2411 |
+
public function setTitle( $title ) {
|
2412 |
+
$this->title = $title;
|
2413 |
+
}
|
2414 |
+
public function getTitle() {
|
2415 |
+
return $this->title;
|
2416 |
+
}
|
2417 |
+
public function setUrl( $url ) {
|
2418 |
+
$this->url = $url;
|
2419 |
+
}
|
2420 |
+
public function getUrl() {
|
2421 |
+
return $this->url;
|
2422 |
+
}
|
2423 |
+
}
|
2424 |
+
|
2425 |
+
class GoogleGAL_Service_AdSense_AdStyleFont extends GoogleGAL_Model {
|
2426 |
+
|
2427 |
+
protected $internal_gapi_mappings = array();
|
2428 |
+
public $family;
|
2429 |
+
public $size;
|
2430 |
+
|
2431 |
+
|
2432 |
+
public function setFamily( $family ) {
|
2433 |
+
$this->family = $family;
|
2434 |
+
}
|
2435 |
+
public function getFamily() {
|
2436 |
+
return $this->family;
|
2437 |
+
}
|
2438 |
+
public function setSize( $size ) {
|
2439 |
+
$this->size = $size;
|
2440 |
+
}
|
2441 |
+
public function getSize() {
|
2442 |
+
return $this->size;
|
2443 |
+
}
|
2444 |
+
}
|
2445 |
+
|
2446 |
+
class GoogleGAL_Service_AdSense_AdUnit extends GoogleGAL_Model {
|
2447 |
+
|
2448 |
+
protected $internal_gapi_mappings = array();
|
2449 |
+
public $code;
|
2450 |
+
protected $contentAdsSettingsType = 'GoogleGAL_Service_AdSense_AdUnitContentAdsSettings';
|
2451 |
+
protected $contentAdsSettingsDataType = '';
|
2452 |
+
protected $customStyleType = 'GoogleGAL_Service_AdSense_AdStyle';
|
2453 |
+
protected $customStyleDataType = '';
|
2454 |
+
protected $feedAdsSettingsType = 'GoogleGAL_Service_AdSense_AdUnitFeedAdsSettings';
|
2455 |
+
protected $feedAdsSettingsDataType = '';
|
2456 |
+
public $id;
|
2457 |
+
public $kind;
|
2458 |
+
protected $mobileContentAdsSettingsType = 'GoogleGAL_Service_AdSense_AdUnitMobileContentAdsSettings';
|
2459 |
+
protected $mobileContentAdsSettingsDataType = '';
|
2460 |
+
public $name;
|
2461 |
+
public $savedStyleId;
|
2462 |
+
public $status;
|
2463 |
+
|
2464 |
+
|
2465 |
+
public function setCode( $code ) {
|
2466 |
+
$this->code = $code;
|
2467 |
+
}
|
2468 |
+
public function getCode() {
|
2469 |
+
return $this->code;
|
2470 |
+
}
|
2471 |
+
public function setContentAdsSettings( GoogleGAL_Service_AdSense_AdUnitContentAdsSettings $contentAdsSettings ) {
|
2472 |
+
$this->contentAdsSettings = $contentAdsSettings;
|
2473 |
+
}
|
2474 |
+
public function getContentAdsSettings() {
|
2475 |
+
return $this->contentAdsSettings;
|
2476 |
+
}
|
2477 |
+
public function setCustomStyle( GoogleGAL_Service_AdSense_AdStyle $customStyle ) {
|
2478 |
+
$this->customStyle = $customStyle;
|
2479 |
+
}
|
2480 |
+
public function getCustomStyle() {
|
2481 |
+
return $this->customStyle;
|
2482 |
+
}
|
2483 |
+
public function setFeedAdsSettings( GoogleGAL_Service_AdSense_AdUnitFeedAdsSettings $feedAdsSettings ) {
|
2484 |
+
$this->feedAdsSettings = $feedAdsSettings;
|
2485 |
+
}
|
2486 |
+
public function getFeedAdsSettings() {
|
2487 |
+
return $this->feedAdsSettings;
|
2488 |
+
}
|
2489 |
+
public function setId( $id ) {
|
2490 |
+
$this->id = $id;
|
2491 |
+
}
|
2492 |
+
public function getId() {
|
2493 |
+
return $this->id;
|
2494 |
+
}
|
2495 |
+
public function setKind( $kind ) {
|
2496 |
+
$this->kind = $kind;
|
2497 |
+
}
|
2498 |
+
public function getKind() {
|
2499 |
+
return $this->kind;
|
2500 |
+
}
|
2501 |
+
public function setMobileContentAdsSettings( GoogleGAL_Service_AdSense_AdUnitMobileContentAdsSettings $mobileContentAdsSettings ) {
|
2502 |
+
$this->mobileContentAdsSettings = $mobileContentAdsSettings;
|
2503 |
+
}
|
2504 |
+
public function getMobileContentAdsSettings() {
|
2505 |
+
return $this->mobileContentAdsSettings;
|
2506 |
+
}
|
2507 |
+
public function setName( $name ) {
|
2508 |
+
$this->name = $name;
|
2509 |
+
}
|
2510 |
+
public function getName() {
|
2511 |
+
return $this->name;
|
2512 |
+
}
|
2513 |
+
public function setSavedStyleId( $savedStyleId ) {
|
2514 |
+
$this->savedStyleId = $savedStyleId;
|
2515 |
+
}
|
2516 |
+
public function getSavedStyleId() {
|
2517 |
+
return $this->savedStyleId;
|
2518 |
+
}
|
2519 |
+
public function setStatus( $status ) {
|
2520 |
+
$this->status = $status;
|
2521 |
+
}
|
2522 |
+
public function getStatus() {
|
2523 |
+
return $this->status;
|
2524 |
+
}
|
2525 |
+
}
|
2526 |
+
|
2527 |
+
class GoogleGAL_Service_AdSense_AdUnitContentAdsSettings extends GoogleGAL_Model {
|
2528 |
+
|
2529 |
+
protected $internal_gapi_mappings = array();
|
2530 |
+
protected $backupOptionType = 'GoogleGAL_Service_AdSense_AdUnitContentAdsSettingsBackupOption';
|
2531 |
+
protected $backupOptionDataType = '';
|
2532 |
+
public $size;
|
2533 |
+
public $type;
|
2534 |
+
|
2535 |
+
|
2536 |
+
public function setBackupOption( GoogleGAL_Service_AdSense_AdUnitContentAdsSettingsBackupOption $backupOption ) {
|
2537 |
+
$this->backupOption = $backupOption;
|
2538 |
+
}
|
2539 |
+
public function getBackupOption() {
|
2540 |
+
return $this->backupOption;
|
2541 |
+
}
|
2542 |
+
public function setSize( $size ) {
|
2543 |
+
$this->size = $size;
|
2544 |
+
}
|
2545 |
+
public function getSize() {
|
2546 |
+
return $this->size;
|
2547 |
+
}
|
2548 |
+
public function setType( $type ) {
|
2549 |
+
$this->type = $type;
|
2550 |
+
}
|
2551 |
+
public function getType() {
|
2552 |
+
return $this->type;
|
2553 |
+
}
|
2554 |
+
}
|
2555 |
+
|
2556 |
+
class GoogleGAL_Service_AdSense_AdUnitContentAdsSettingsBackupOption extends GoogleGAL_Model {
|
2557 |
+
|
2558 |
+
protected $internal_gapi_mappings = array();
|
2559 |
+
public $color;
|
2560 |
+
public $type;
|
2561 |
+
public $url;
|
2562 |
+
|
2563 |
+
|
2564 |
+
public function setColor( $color ) {
|
2565 |
+
$this->color = $color;
|
2566 |
+
}
|
2567 |
+
public function getColor() {
|
2568 |
+
return $this->color;
|
2569 |
+
}
|
2570 |
+
public function setType( $type ) {
|
2571 |
+
$this->type = $type;
|
2572 |
+
}
|
2573 |
+
public function getType() {
|
2574 |
+
return $this->type;
|
2575 |
+
}
|
2576 |
+
public function setUrl( $url ) {
|
2577 |
+
$this->url = $url;
|
2578 |
+
}
|
2579 |
+
public function getUrl() {
|
2580 |
+
return $this->url;
|
2581 |
+
}
|
2582 |
+
}
|
2583 |
+
|
2584 |
+
class GoogleGAL_Service_AdSense_AdUnitFeedAdsSettings extends GoogleGAL_Model {
|
2585 |
+
|
2586 |
+
protected $internal_gapi_mappings = array();
|
2587 |
+
public $adPosition;
|
2588 |
+
public $frequency;
|
2589 |
+
public $minimumWordCount;
|
2590 |
+
public $type;
|
2591 |
+
|
2592 |
+
|
2593 |
+
public function setAdPosition( $adPosition ) {
|
2594 |
+
$this->adPosition = $adPosition;
|
2595 |
+
}
|
2596 |
+
public function getAdPosition() {
|
2597 |
+
return $this->adPosition;
|
2598 |
+
}
|
2599 |
+
public function setFrequency( $frequency ) {
|
2600 |
+
$this->frequency = $frequency;
|
2601 |
+
}
|
2602 |
+
public function getFrequency() {
|
2603 |
+
return $this->frequency;
|
2604 |
+
}
|
2605 |
+
public function setMinimumWordCount( $minimumWordCount ) {
|
2606 |
+
$this->minimumWordCount = $minimumWordCount;
|
2607 |
+
}
|
2608 |
+
public function getMinimumWordCount() {
|
2609 |
+
return $this->minimumWordCount;
|
2610 |
+
}
|
2611 |
+
public function setType( $type ) {
|
2612 |
+
$this->type = $type;
|
2613 |
+
}
|
2614 |
+
public function getType() {
|
2615 |
+
return $this->type;
|
2616 |
+
}
|
2617 |
+
}
|
2618 |
+
|
2619 |
+
class GoogleGAL_Service_AdSense_AdUnitMobileContentAdsSettings extends GoogleGAL_Model {
|
2620 |
+
|
2621 |
+
protected $internal_gapi_mappings = array();
|
2622 |
+
public $markupLanguage;
|
2623 |
+
public $scriptingLanguage;
|
2624 |
+
public $size;
|
2625 |
+
public $type;
|
2626 |
+
|
2627 |
+
|
2628 |
+
public function setMarkupLanguage( $markupLanguage ) {
|
2629 |
+
$this->markupLanguage = $markupLanguage;
|
2630 |
+
}
|
2631 |
+
public function getMarkupLanguage() {
|
2632 |
+
return $this->markupLanguage;
|
2633 |
+
}
|
2634 |
+
public function setScriptingLanguage( $scriptingLanguage ) {
|
2635 |
+
$this->scriptingLanguage = $scriptingLanguage;
|
2636 |
+
}
|
2637 |
+
public function getScriptingLanguage() {
|
2638 |
+
return $this->scriptingLanguage;
|
2639 |
+
}
|
2640 |
+
public function setSize( $size ) {
|
2641 |
+
$this->size = $size;
|
2642 |
+
}
|
2643 |
+
public function getSize() {
|
2644 |
+
return $this->size;
|
2645 |
+
}
|
2646 |
+
public function setType( $type ) {
|
2647 |
+
$this->type = $type;
|
2648 |
+
}
|
2649 |
+
public function getType() {
|
2650 |
+
return $this->type;
|
2651 |
+
}
|
2652 |
+
}
|
2653 |
+
|
2654 |
+
class GoogleGAL_Service_AdSense_AdUnits extends GoogleGAL_Collection {
|
2655 |
+
|
2656 |
+
protected $collection_key = 'items';
|
2657 |
+
protected $internal_gapi_mappings = array();
|
2658 |
+
public $etag;
|
2659 |
+
protected $itemsType = 'GoogleGAL_Service_AdSense_AdUnit';
|
2660 |
+
protected $itemsDataType = 'array';
|
2661 |
+
public $kind;
|
2662 |
+
public $nextPageToken;
|
2663 |
+
|
2664 |
+
|
2665 |
+
public function setEtag( $etag ) {
|
2666 |
+
$this->etag = $etag;
|
2667 |
+
}
|
2668 |
+
public function getEtag() {
|
2669 |
+
return $this->etag;
|
2670 |
+
}
|
2671 |
+
public function setItems( $items ) {
|
2672 |
+
$this->items = $items;
|
2673 |
+
}
|
2674 |
+
public function getItems() {
|
2675 |
+
return $this->items;
|
2676 |
+
}
|
2677 |
+
public function setKind( $kind ) {
|
2678 |
+
$this->kind = $kind;
|
2679 |
+
}
|
2680 |
+
public function getKind() {
|
2681 |
+
return $this->kind;
|
2682 |
+
}
|
2683 |
+
public function setNextPageToken( $nextPageToken ) {
|
2684 |
+
$this->nextPageToken = $nextPageToken;
|
2685 |
+
}
|
2686 |
+
public function getNextPageToken() {
|
2687 |
+
return $this->nextPageToken;
|
2688 |
+
}
|
2689 |
+
}
|
2690 |
+
|
2691 |
+
class GoogleGAL_Service_AdSense_AdsenseReportsGenerateResponse extends GoogleGAL_Collection {
|
2692 |
+
|
2693 |
+
protected $collection_key = 'warnings';
|
2694 |
+
protected $internal_gapi_mappings = array();
|
2695 |
+
public $averages;
|
2696 |
+
public $endDate;
|
2697 |
+
protected $headersType = 'GoogleGAL_Service_AdSense_AdsenseReportsGenerateResponseHeaders';
|
2698 |
+
protected $headersDataType = 'array';
|
2699 |
+
public $kind;
|
2700 |
+
public $rows;
|
2701 |
+
public $startDate;
|
2702 |
+
public $totalMatchedRows;
|
2703 |
+
public $totals;
|
2704 |
+
public $warnings;
|
2705 |
+
|
2706 |
+
|
2707 |
+
public function setAverages( $averages ) {
|
2708 |
+
$this->averages = $averages;
|
2709 |
+
}
|
2710 |
+
public function getAverages() {
|
2711 |
+
return $this->averages;
|
2712 |
+
}
|
2713 |
+
public function setEndDate( $endDate ) {
|
2714 |
+
$this->endDate = $endDate;
|
2715 |
+
}
|
2716 |
+
public function getEndDate() {
|
2717 |
+
return $this->endDate;
|
2718 |
+
}
|
2719 |
+
public function setHeaders( $headers ) {
|
2720 |
+
$this->headers = $headers;
|
2721 |
+
}
|
2722 |
+
public function getHeaders() {
|
2723 |
+
return $this->headers;
|
2724 |
+
}
|
2725 |
+
public function setKind( $kind ) {
|
2726 |
+
$this->kind = $kind;
|
2727 |
+
}
|
2728 |
+
public function getKind() {
|
2729 |
+
return $this->kind;
|
2730 |
+
}
|
2731 |
+
public function setRows( $rows ) {
|
2732 |
+
$this->rows = $rows;
|
2733 |
+
}
|
2734 |
+
public function getRows() {
|
2735 |
+
return $this->rows;
|
2736 |
+
}
|
2737 |
+
public function setStartDate( $startDate ) {
|
2738 |
+
$this->startDate = $startDate;
|
2739 |
+
}
|
2740 |
+
public function getStartDate() {
|
2741 |
+
return $this->startDate;
|
2742 |
+
}
|
2743 |
+
public function setTotalMatchedRows( $totalMatchedRows ) {
|
2744 |
+
$this->totalMatchedRows = $totalMatchedRows;
|
2745 |
+
}
|
2746 |
+
public function getTotalMatchedRows() {
|
2747 |
+
return $this->totalMatchedRows;
|
2748 |
+
}
|
2749 |
+
public function setTotals( $totals ) {
|
2750 |
+
$this->totals = $totals;
|
2751 |
+
}
|
2752 |
+
public function getTotals() {
|
2753 |
+
return $this->totals;
|
2754 |
+
}
|
2755 |
+
public function setWarnings( $warnings ) {
|
2756 |
+
$this->warnings = $warnings;
|
2757 |
+
}
|
2758 |
+
public function getWarnings() {
|
2759 |
+
return $this->warnings;
|
2760 |
+
}
|
2761 |
+
}
|
2762 |
+
|
2763 |
+
class GoogleGAL_Service_AdSense_AdsenseReportsGenerateResponseHeaders extends GoogleGAL_Model {
|
2764 |
+
|
2765 |
+
protected $internal_gapi_mappings = array();
|
2766 |
+
public $currency;
|
2767 |
+
public $name;
|
2768 |
+
public $type;
|
2769 |
+
|
2770 |
+
|
2771 |
+
public function setCurrency( $currency ) {
|
2772 |
+
$this->currency = $currency;
|
2773 |
+
}
|
2774 |
+
public function getCurrency() {
|
2775 |
+
return $this->currency;
|
2776 |
+
}
|
2777 |
+
public function setName( $name ) {
|
2778 |
+
$this->name = $name;
|
2779 |
+
}
|
2780 |
+
public function getName() {
|
2781 |
+
return $this->name;
|
2782 |
+
}
|
2783 |
+
public function setType( $type ) {
|
2784 |
+
$this->type = $type;
|
2785 |
+
}
|
2786 |
+
public function getType() {
|
2787 |
+
return $this->type;
|
2788 |
+
}
|
2789 |
+
}
|
2790 |
+
|
2791 |
+
class GoogleGAL_Service_AdSense_Alert extends GoogleGAL_Model {
|
2792 |
+
|
2793 |
+
protected $internal_gapi_mappings = array();
|
2794 |
+
public $id;
|
2795 |
+
public $isDismissible;
|
2796 |
+
public $kind;
|
2797 |
+
public $message;
|
2798 |
+
public $severity;
|
2799 |
+
public $type;
|
2800 |
+
|
2801 |
+
|
2802 |
+
public function setId( $id ) {
|
2803 |
+
$this->id = $id;
|
2804 |
+
}
|
2805 |
+
public function getId() {
|
2806 |
+
return $this->id;
|
2807 |
+
}
|
2808 |
+
public function setIsDismissible( $isDismissible ) {
|
2809 |
+
$this->isDismissible = $isDismissible;
|
2810 |
+
}
|
2811 |
+
public function getIsDismissible() {
|
2812 |
+
return $this->isDismissible;
|
2813 |
+
}
|
2814 |
+
public function setKind( $kind ) {
|
2815 |
+
$this->kind = $kind;
|
2816 |
+
}
|
2817 |
+
public function getKind() {
|
2818 |
+
return $this->kind;
|
2819 |
+
}
|
2820 |
+
public function setMessage( $message ) {
|
2821 |
+
$this->message = $message;
|
2822 |
+
}
|
2823 |
+
public function getMessage() {
|
2824 |
+
return $this->message;
|
2825 |
+
}
|
2826 |
+
public function setSeverity( $severity ) {
|
2827 |
+
$this->severity = $severity;
|
2828 |
+
}
|
2829 |
+
public function getSeverity() {
|
2830 |
+
return $this->severity;
|
2831 |
+
}
|
2832 |
+
public function setType( $type ) {
|
2833 |
+
$this->type = $type;
|
2834 |
+
}
|
2835 |
+
public function getType() {
|
2836 |
+
return $this->type;
|
2837 |
+
}
|
2838 |
+
}
|
2839 |
+
|
2840 |
+
class GoogleGAL_Service_AdSense_Alerts extends GoogleGAL_Collection {
|
2841 |
+
|
2842 |
+
protected $collection_key = 'items';
|
2843 |
+
protected $internal_gapi_mappings = array();
|
2844 |
+
protected $itemsType = 'GoogleGAL_Service_AdSense_Alert';
|
2845 |
+
protected $itemsDataType = 'array';
|
2846 |
+
public $kind;
|
2847 |
+
|
2848 |
+
|
2849 |
+
public function setItems( $items ) {
|
2850 |
+
$this->items = $items;
|
2851 |
+
}
|
2852 |
+
public function getItems() {
|
2853 |
+
return $this->items;
|
2854 |
+
}
|
2855 |
+
public function setKind( $kind ) {
|
2856 |
+
$this->kind = $kind;
|
2857 |
+
}
|
2858 |
+
public function getKind() {
|
2859 |
+
return $this->kind;
|
2860 |
+
}
|
2861 |
+
}
|
2862 |
+
|
2863 |
+
class GoogleGAL_Service_AdSense_CustomChannel extends GoogleGAL_Model {
|
2864 |
+
|
2865 |
+
protected $internal_gapi_mappings = array();
|
2866 |
+
public $code;
|
2867 |
+
public $id;
|
2868 |
+
public $kind;
|
2869 |
+
public $name;
|
2870 |
+
protected $targetingInfoType = 'GoogleGAL_Service_AdSense_CustomChannelTargetingInfo';
|
2871 |
+
protected $targetingInfoDataType = '';
|
2872 |
+
|
2873 |
+
|
2874 |
+
public function setCode( $code ) {
|
2875 |
+
$this->code = $code;
|
2876 |
+
}
|
2877 |
+
public function getCode() {
|
2878 |
+
return $this->code;
|
2879 |
+
}
|
2880 |
+
public function setId( $id ) {
|
2881 |
+
$this->id = $id;
|
2882 |
+
}
|
2883 |
+
public function getId() {
|
2884 |
+
return $this->id;
|
2885 |
+
}
|
2886 |
+
public function setKind( $kind ) {
|
2887 |
+
$this->kind = $kind;
|
2888 |
+
}
|
2889 |
+
public function getKind() {
|
2890 |
+
return $this->kind;
|
2891 |
+
}
|
2892 |
+
public function setName( $name ) {
|
2893 |
+
$this->name = $name;
|
2894 |
+
}
|
2895 |
+
public function getName() {
|
2896 |
+
return $this->name;
|
2897 |
+
}
|
2898 |
+
public function setTargetingInfo( GoogleGAL_Service_AdSense_CustomChannelTargetingInfo $targetingInfo ) {
|
2899 |
+
$this->targetingInfo = $targetingInfo;
|
2900 |
+
}
|
2901 |
+
public function getTargetingInfo() {
|
2902 |
+
return $this->targetingInfo;
|
2903 |
+
}
|
2904 |
+
}
|
2905 |
+
|
2906 |
+
class GoogleGAL_Service_AdSense_CustomChannelTargetingInfo extends GoogleGAL_Model {
|
2907 |
+
|
2908 |
+
protected $internal_gapi_mappings = array();
|
2909 |
+
public $adsAppearOn;
|
2910 |
+
public $description;
|
2911 |
+
public $location;
|
2912 |
+
public $siteLanguage;
|
2913 |
+
|
2914 |
+
|
2915 |
+
public function setAdsAppearOn( $adsAppearOn ) {
|
2916 |
+
$this->adsAppearOn = $adsAppearOn;
|
2917 |
+
}
|
2918 |
+
public function getAdsAppearOn() {
|
2919 |
+
return $this->adsAppearOn;
|
2920 |
+
}
|
2921 |
+
public function setDescription( $description ) {
|
2922 |
+
$this->description = $description;
|
2923 |
+
}
|
2924 |
+
public function getDescription() {
|
2925 |
+
return $this->description;
|
2926 |
+
}
|
2927 |
+
public function setLocation( $location ) {
|
2928 |
+
$this->location = $location;
|
2929 |
+
}
|
2930 |
+
public function getLocation() {
|
2931 |
+
return $this->location;
|
2932 |
+
}
|
2933 |
+
public function setSiteLanguage( $siteLanguage ) {
|
2934 |
+
$this->siteLanguage = $siteLanguage;
|
2935 |
+
}
|
2936 |
+
public function getSiteLanguage() {
|
2937 |
+
return $this->siteLanguage;
|
2938 |
+
}
|
2939 |
+
}
|
2940 |
+
|
2941 |
+
class GoogleGAL_Service_AdSense_CustomChannels extends GoogleGAL_Collection {
|
2942 |
+
|
2943 |
+
protected $collection_key = 'items';
|
2944 |
+
protected $internal_gapi_mappings = array();
|
2945 |
+
public $etag;
|
2946 |
+
protected $itemsType = 'GoogleGAL_Service_AdSense_CustomChannel';
|
2947 |
+
protected $itemsDataType = 'array';
|
2948 |
+
public $kind;
|
2949 |
+
public $nextPageToken;
|
2950 |
+
|
2951 |
+
|
2952 |
+
public function setEtag( $etag ) {
|
2953 |
+
$this->etag = $etag;
|
2954 |
+
}
|
2955 |
+
public function getEtag() {
|
2956 |
+
return $this->etag;
|
2957 |
+
}
|
2958 |
+
public function setItems( $items ) {
|
2959 |
+
$this->items = $items;
|
2960 |
+
}
|
2961 |
+
public function getItems() {
|
2962 |
+
return $this->items;
|
2963 |
+
}
|
2964 |
+
public function setKind( $kind ) {
|
2965 |
+
$this->kind = $kind;
|
2966 |
+
}
|
2967 |
+
public function getKind() {
|
2968 |
+
return $this->kind;
|
2969 |
+
}
|
2970 |
+
public function setNextPageToken( $nextPageToken ) {
|
2971 |
+
$this->nextPageToken = $nextPageToken;
|
2972 |
+
}
|
2973 |
+
public function getNextPageToken() {
|
2974 |
+
return $this->nextPageToken;
|
2975 |
+
}
|
2976 |
+
}
|
2977 |
+
|
2978 |
+
class GoogleGAL_Service_AdSense_Metadata extends GoogleGAL_Collection {
|
2979 |
+
|
2980 |
+
protected $collection_key = 'items';
|
2981 |
+
protected $internal_gapi_mappings = array();
|
2982 |
+
protected $itemsType = 'GoogleGAL_Service_AdSense_ReportingMetadataEntry';
|
2983 |
+
protected $itemsDataType = 'array';
|
2984 |
+
public $kind;
|
2985 |
+
|
2986 |
+
|
2987 |
+
public function setItems( $items ) {
|
2988 |
+
$this->items = $items;
|
2989 |
+
}
|
2990 |
+
public function getItems() {
|
2991 |
+
return $this->items;
|
2992 |
+
}
|
2993 |
+
public function setKind( $kind ) {
|
2994 |
+
$this->kind = $kind;
|
2995 |
+
}
|
2996 |
+
public function getKind() {
|
2997 |
+
return $this->kind;
|
2998 |
+
}
|
2999 |
+
}
|
3000 |
+
|
3001 |
+
class GoogleGAL_Service_AdSense_Payment extends GoogleGAL_Model {
|
3002 |
+
|
3003 |
+
protected $internal_gapi_mappings = array();
|
3004 |
+
public $id;
|
3005 |
+
public $kind;
|
3006 |
+
public $paymentAmount;
|
3007 |
+
public $paymentAmountCurrencyCode;
|
3008 |
+
public $paymentDate;
|
3009 |
+
|
3010 |
+
|
3011 |
+
public function setId( $id ) {
|
3012 |
+
$this->id = $id;
|
3013 |
+
}
|
3014 |
+
public function getId() {
|
3015 |
+
return $this->id;
|
3016 |
+
}
|
3017 |
+
public function setKind( $kind ) {
|
3018 |
+
$this->kind = $kind;
|
3019 |
+
}
|
3020 |
+
public function getKind() {
|
3021 |
+
return $this->kind;
|
3022 |
+
}
|
3023 |
+
public function setPaymentAmount( $paymentAmount ) {
|
3024 |
+
$this->paymentAmount = $paymentAmount;
|
3025 |
+
}
|
3026 |
+
public function getPaymentAmount() {
|
3027 |
+
return $this->paymentAmount;
|
3028 |
+
}
|
3029 |
+
public function setPaymentAmountCurrencyCode( $paymentAmountCurrencyCode ) {
|
3030 |
+
$this->paymentAmountCurrencyCode = $paymentAmountCurrencyCode;
|
3031 |
+
}
|
3032 |
+
public function getPaymentAmountCurrencyCode() {
|
3033 |
+
return $this->paymentAmountCurrencyCode;
|
3034 |
+
}
|
3035 |
+
public function setPaymentDate( $paymentDate ) {
|
3036 |
+
$this->paymentDate = $paymentDate;
|
3037 |
+
}
|
3038 |
+
public function getPaymentDate() {
|
3039 |
+
return $this->paymentDate;
|
3040 |
+
}
|
3041 |
+
}
|
3042 |
+
|
3043 |
+
class GoogleGAL_Service_AdSense_Payments extends GoogleGAL_Collection {
|
3044 |
+
|
3045 |
+
protected $collection_key = 'items';
|
3046 |
+
protected $internal_gapi_mappings = array();
|
3047 |
+
protected $itemsType = 'GoogleGAL_Service_AdSense_Payment';
|
3048 |
+
protected $itemsDataType = 'array';
|
3049 |
+
public $kind;
|
3050 |
+
|
3051 |
+
|
3052 |
+
public function setItems( $items ) {
|
3053 |
+
$this->items = $items;
|
3054 |
+
}
|
3055 |
+
public function getItems() {
|
3056 |
+
return $this->items;
|
3057 |
+
}
|
3058 |
+
public function setKind( $kind ) {
|
3059 |
+
$this->kind = $kind;
|
3060 |
+
}
|
3061 |
+
public function getKind() {
|
3062 |
+
return $this->kind;
|
3063 |
+
}
|
3064 |
+
}
|
3065 |
+
|
3066 |
+
class GoogleGAL_Service_AdSense_ReportingMetadataEntry extends GoogleGAL_Collection {
|
3067 |
+
|
3068 |
+
protected $collection_key = 'supportedProducts';
|
3069 |
+
protected $internal_gapi_mappings = array();
|
3070 |
+
public $compatibleDimensions;
|
3071 |
+
public $compatibleMetrics;
|
3072 |
+
public $id;
|
3073 |
+
public $kind;
|
3074 |
+
public $requiredDimensions;
|
3075 |
+
public $requiredMetrics;
|
3076 |
+
public $supportedProducts;
|
3077 |
+
|
3078 |
+
|
3079 |
+
public function setCompatibleDimensions( $compatibleDimensions ) {
|
3080 |
+
$this->compatibleDimensions = $compatibleDimensions;
|
3081 |
+
}
|
3082 |
+
public function getCompatibleDimensions() {
|
3083 |
+
return $this->compatibleDimensions;
|
3084 |
+
}
|
3085 |
+
public function setCompatibleMetrics( $compatibleMetrics ) {
|
3086 |
+
$this->compatibleMetrics = $compatibleMetrics;
|
3087 |
+
}
|
3088 |
+
public function getCompatibleMetrics() {
|
3089 |
+
return $this->compatibleMetrics;
|
3090 |
+
}
|
3091 |
+
public function setId( $id ) {
|
3092 |
+
$this->id = $id;
|
3093 |
+
}
|
3094 |
+
public function getId() {
|
3095 |
+
return $this->id;
|
3096 |
+
}
|
3097 |
+
public function setKind( $kind ) {
|
3098 |
+
$this->kind = $kind;
|
3099 |
+
}
|
3100 |
+
public function getKind() {
|
3101 |
+
return $this->kind;
|
3102 |
+
}
|
3103 |
+
public function setRequiredDimensions( $requiredDimensions ) {
|
3104 |
+
$this->requiredDimensions = $requiredDimensions;
|
3105 |
+
}
|
3106 |
+
public function getRequiredDimensions() {
|
3107 |
+
return $this->requiredDimensions;
|
3108 |
+
}
|
3109 |
+
public function setRequiredMetrics( $requiredMetrics ) {
|
3110 |
+
$this->requiredMetrics = $requiredMetrics;
|
3111 |
+
}
|
3112 |
+
public function getRequiredMetrics() {
|
3113 |
+
return $this->requiredMetrics;
|
3114 |
+
}
|
3115 |
+
public function setSupportedProducts( $supportedProducts ) {
|
3116 |
+
$this->supportedProducts = $supportedProducts;
|
3117 |
+
}
|
3118 |
+
public function getSupportedProducts() {
|
3119 |
+
return $this->supportedProducts;
|
3120 |
+
}
|
3121 |
+
}
|
3122 |
+
|
3123 |
+
class GoogleGAL_Service_AdSense_SavedAdStyle extends GoogleGAL_Model {
|
3124 |
+
|
3125 |
+
protected $internal_gapi_mappings = array();
|
3126 |
+
protected $adStyleType = 'GoogleGAL_Service_AdSense_AdStyle';
|
3127 |
+
protected $adStyleDataType = '';
|
3128 |
+
public $id;
|
3129 |
+
public $kind;
|
3130 |
+
public $name;
|
3131 |
+
|
3132 |
+
|
3133 |
+
public function setAdSt
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|