diff options
Diffstat (limited to 'apps/files_external/3rdparty/google-api-php-client/src')
32 files changed, 3537 insertions, 1728 deletions
diff --git a/apps/files_external/3rdparty/google-api-php-client/src/Google/Auth/Abstract.php b/apps/files_external/3rdparty/google-api-php-client/src/Google/Auth/Abstract.php index 0832df3a408..4cd7b551a5c 100644 --- a/apps/files_external/3rdparty/google-api-php-client/src/Google/Auth/Abstract.php +++ b/apps/files_external/3rdparty/google-api-php-client/src/Google/Auth/Abstract.php @@ -14,7 +14,10 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -require_once "Google/Http/Request.php"; + +if (!class_exists('Google_Client')) { + require_once dirname(__FILE__) . '/../autoload.php'; +} /** * Abstract class for the Authentication in the API client diff --git a/apps/files_external/3rdparty/google-api-php-client/src/Google/Auth/AssertionCredentials.php b/apps/files_external/3rdparty/google-api-php-client/src/Google/Auth/AssertionCredentials.php index 3db0a779df3..831d374eb4b 100644 --- a/apps/files_external/3rdparty/google-api-php-client/src/Google/Auth/AssertionCredentials.php +++ b/apps/files_external/3rdparty/google-api-php-client/src/Google/Auth/AssertionCredentials.php @@ -15,14 +15,12 @@ * limitations under the License. */ -require_once "Google/Auth/OAuth2.php"; -require_once "Google/Signer/P12.php"; -require_once "Google/Utils.php"; +if (!class_exists('Google_Client')) { + require_once dirname(__FILE__) . '/../autoload.php'; +} /** * Credentials object used for OAuth 2.0 Signed JWT assertion grants. - * - * @author Chirag Shah <chirags@google.com> */ class Google_Auth_AssertionCredentials { diff --git a/apps/files_external/3rdparty/google-api-php-client/src/Google/Auth/Exception.php b/apps/files_external/3rdparty/google-api-php-client/src/Google/Auth/Exception.php index 65067ee4436..e4b75c14baf 100644 --- a/apps/files_external/3rdparty/google-api-php-client/src/Google/Auth/Exception.php +++ b/apps/files_external/3rdparty/google-api-php-client/src/Google/Auth/Exception.php @@ -15,7 +15,9 @@ * limitations under the License. */ -require_once "Google/Exception.php"; +if (!class_exists('Google_Client')) { + require_once dirname(__FILE__) . '/../autoload.php'; +} class Google_Auth_Exception extends Google_Exception { diff --git a/apps/files_external/3rdparty/google-api-php-client/src/Google/Auth/LoginTicket.php b/apps/files_external/3rdparty/google-api-php-client/src/Google/Auth/LoginTicket.php index bcf798ae5ff..371b3ce1834 100644 --- a/apps/files_external/3rdparty/google-api-php-client/src/Google/Auth/LoginTicket.php +++ b/apps/files_external/3rdparty/google-api-php-client/src/Google/Auth/LoginTicket.php @@ -15,7 +15,9 @@ * limitations under the License. */ -require_once "Google/Auth/Exception.php"; +if (!class_exists('Google_Client')) { + require_once dirname(__FILE__) . '/../autoload.php'; +} /** * Class to hold information about an authenticated login. diff --git a/apps/files_external/3rdparty/google-api-php-client/src/Google/Auth/OAuth2.php b/apps/files_external/3rdparty/google-api-php-client/src/Google/Auth/OAuth2.php index 5630d755e04..40f2076ba1e 100644 --- a/apps/files_external/3rdparty/google-api-php-client/src/Google/Auth/OAuth2.php +++ b/apps/files_external/3rdparty/google-api-php-client/src/Google/Auth/OAuth2.php @@ -15,21 +15,13 @@ * limitations under the License. */ -require_once "Google/Auth/Abstract.php"; -require_once "Google/Auth/AssertionCredentials.php"; -require_once "Google/Auth/Exception.php"; -require_once "Google/Auth/LoginTicket.php"; -require_once "Google/Client.php"; -require_once "Google/Http/Request.php"; -require_once "Google/Utils.php"; -require_once "Google/Verifier/Pem.php"; +if (!class_exists('Google_Client')) { + require_once dirname(__FILE__) . '/../autoload.php'; +} /** * Authentication class that deals with the OAuth 2 web-server authentication flow * - * @author Chris Chabot <chabotc@google.com> - * @author Chirag Shah <chirags@google.com> - * */ class Google_Auth_OAuth2 extends Google_Auth_Abstract { @@ -40,6 +32,7 @@ class Google_Auth_OAuth2 extends Google_Auth_Abstract const AUTH_TOKEN_LIFETIME_SECS = 300; // five minutes in seconds const MAX_TOKEN_LIFETIME_SECS = 86400; // one day in seconds const OAUTH2_ISSUER = 'accounts.google.com'; + const OAUTH2_ISSUER_HTTPS = 'https://accounts.google.com'; /** @var Google_Auth_AssertionCredentials $assertionCredentials */ private $assertionCredentials; @@ -86,28 +79,34 @@ class Google_Auth_OAuth2 extends Google_Auth_Abstract /** * @param string $code + * @param boolean $crossClient * @throws Google_Auth_Exception * @return string */ - public function authenticate($code) + public function authenticate($code, $crossClient = false) { if (strlen($code) == 0) { throw new Google_Auth_Exception("Invalid code"); } + $arguments = array( + 'code' => $code, + 'grant_type' => 'authorization_code', + 'client_id' => $this->client->getClassConfig($this, 'client_id'), + 'client_secret' => $this->client->getClassConfig($this, 'client_secret') + ); + + if ($crossClient !== true) { + $arguments['redirect_uri'] = $this->client->getClassConfig($this, 'redirect_uri'); + } + // We got here from the redirect from a successful authorization grant, // fetch the access token $request = new Google_Http_Request( self::OAUTH2_TOKEN_URI, 'POST', array(), - array( - 'code' => $code, - 'grant_type' => 'authorization_code', - 'redirect_uri' => $this->client->getClassConfig($this, 'redirect_uri'), - 'client_id' => $this->client->getClassConfig($this, 'client_id'), - 'client_secret' => $this->client->getClassConfig($this, 'client_secret') - ) + $arguments ); $request->disableGzip(); $response = $this->client->getIo()->makeRequest($request); @@ -119,15 +118,15 @@ class Google_Auth_OAuth2 extends Google_Auth_Abstract } else { $decodedResponse = json_decode($response->getResponseBody(), true); if ($decodedResponse != null && $decodedResponse['error']) { - $decodedResponse = $decodedResponse['error']; + $errorText = $decodedResponse['error']; if (isset($decodedResponse['error_description'])) { - $decodedResponse .= ": " . $decodedResponse['error_description']; + $errorText .= ": " . $decodedResponse['error_description']; } } throw new Google_Auth_Exception( sprintf( "Error fetching OAuth2 access token, message: '%s'", - $decodedResponse + $errorText ), $response->getResponseHttpCode() ); @@ -151,11 +150,15 @@ class Google_Auth_OAuth2 extends Google_Auth_Abstract 'access_type' => $this->client->getClassConfig($this, 'access_type'), ); - $params = $this->maybeAddParam($params, 'approval_prompt'); + // Prefer prompt to approval prompt. + if ($this->client->getClassConfig($this, 'prompt')) { + $params = $this->maybeAddParam($params, 'prompt'); + } else { + $params = $this->maybeAddParam($params, 'approval_prompt'); + } $params = $this->maybeAddParam($params, 'login_hint'); $params = $this->maybeAddParam($params, 'hd'); $params = $this->maybeAddParam($params, 'openid.realm'); - $params = $this->maybeAddParam($params, 'prompt'); $params = $this->maybeAddParam($params, 'include_granted_scopes'); // If the list of scopes contains plus.login, add request_visible_actions @@ -236,17 +239,21 @@ class Google_Auth_OAuth2 extends Google_Auth_Abstract if ($this->assertionCredentials) { $this->refreshTokenWithAssertion(); } else { + $this->client->getLogger()->debug('OAuth2 access token expired'); if (! array_key_exists('refresh_token', $this->token)) { - throw new Google_Auth_Exception( - "The OAuth 2.0 access token has expired," - ." and a refresh token is not available. Refresh tokens" - ." are not returned for responses that were auto-approved." - ); + $error = "The OAuth 2.0 access token has expired," + ." and a refresh token is not available. Refresh tokens" + ." are not returned for responses that were auto-approved."; + + $this->client->getLogger()->error($error); + throw new Google_Auth_Exception($error); } $this->refreshToken($this->token['refresh_token']); } } + $this->client->getLogger()->debug('OAuth2 authentication'); + // Add the OAuth2 header to the request $request->setRequestHeaders( array('Authorization' => 'Bearer ' . $this->token['access_token']) @@ -298,6 +305,7 @@ class Google_Auth_OAuth2 extends Google_Auth_Abstract } } + $this->client->getLogger()->debug('OAuth2 access token expired'); $this->refreshTokenRequest( array( 'grant_type' => 'assertion', @@ -317,6 +325,14 @@ class Google_Auth_OAuth2 extends Google_Auth_Abstract private function refreshTokenRequest($params) { + if (isset($params['assertion'])) { + $this->client->getLogger()->info( + 'OAuth2 access token refresh with Signed JWT assertion grants.' + ); + } else { + $this->client->getLogger()->info('OAuth2 access token refresh'); + } + $http = new Google_Http_Request( self::OAUTH2_TOKEN_URI, 'POST', @@ -414,7 +430,9 @@ class Google_Auth_OAuth2 extends Google_Auth_Abstract /** * Retrieve and cache a certificates file. - * @param $url location + * + * @param $url string location + * @throws Google_Auth_Exception * @return array certificates */ public function retrieveCertsFromLocation($url) @@ -471,18 +489,24 @@ class Google_Auth_OAuth2 extends Google_Auth_Abstract $audience = $this->client->getClassConfig($this, 'client_id'); } - return $this->verifySignedJwtWithCerts($id_token, $certs, $audience, self::OAUTH2_ISSUER); + return $this->verifySignedJwtWithCerts( + $id_token, + $certs, + $audience, + array(self::OAUTH2_ISSUER, self::OAUTH2_ISSUER_HTTPS) + ); } /** * Verifies the id token, returns the verified token contents. * - * @param $jwt the token + * @param $jwt string the token * @param $certs array of certificates - * @param $required_audience the expected consumer of the token + * @param $required_audience string the expected consumer of the token * @param [$issuer] the expected issues, defaults to Google * @param [$max_expiry] the max lifetime of a token, defaults to MAX_TOKEN_LIFETIME_SECS - * @return token information if valid, false if not + * @throws Google_Auth_Exception + * @return mixed token information if valid, false if not */ public function verifySignedJwtWithCerts( $jwt, @@ -577,13 +601,15 @@ class Google_Auth_OAuth2 extends Google_Auth_Abstract ); } + // support HTTP and HTTPS issuers + // @see https://developers.google.com/identity/sign-in/web/backend-auth $iss = $payload['iss']; - if ($issuer && $iss != $issuer) { + if ($issuer && !in_array($iss, (array) $issuer)) { throw new Google_Auth_Exception( sprintf( - "Invalid issuer, %s != %s: %s", + "Invalid issuer, %s not in %s: %s", $iss, - $issuer, + "[".implode(",", (array) $issuer)."]", $json_body ) ); diff --git a/apps/files_external/3rdparty/google-api-php-client/src/Google/Auth/Simple.php b/apps/files_external/3rdparty/google-api-php-client/src/Google/Auth/Simple.php index e83900fc26f..9a8e58c0511 100644 --- a/apps/files_external/3rdparty/google-api-php-client/src/Google/Auth/Simple.php +++ b/apps/files_external/3rdparty/google-api-php-client/src/Google/Auth/Simple.php @@ -15,19 +15,17 @@ * limitations under the License. */ -require_once "Google/Auth/Abstract.php"; -require_once "Google/Http/Request.php"; +if (!class_exists('Google_Client')) { + require_once dirname(__FILE__) . '/../autoload.php'; +} /** * Simple API access implementation. Can either be used to make requests * completely unauthenticated, or by using a Simple API Access developer * key. - * @author Chris Chabot <chabotc@google.com> - * @author Chirag Shah <chirags@google.com> */ class Google_Auth_Simple extends Google_Auth_Abstract { - private $key = null; private $client; public function __construct(Google_Client $client, $config = null) @@ -55,6 +53,9 @@ class Google_Auth_Simple extends Google_Auth_Abstract { $key = $this->client->getClassConfig($this, 'developer_key'); if ($key) { + $this->client->getLogger()->debug( + 'Simple API Access developer key authentication' + ); $request->setQueryParam('key', $key); } return $request; diff --git a/apps/files_external/3rdparty/google-api-php-client/src/Google/Cache/Apc.php b/apps/files_external/3rdparty/google-api-php-client/src/Google/Cache/Apc.php index 051b537a4e1..67a64ddb0e2 100644 --- a/apps/files_external/3rdparty/google-api-php-client/src/Google/Cache/Apc.php +++ b/apps/files_external/3rdparty/google-api-php-client/src/Google/Cache/Apc.php @@ -14,9 +14,10 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - -require_once "Google/Cache/Abstract.php"; -require_once "Google/Cache/Exception.php"; + +if (!class_exists('Google_Client')) { + require_once dirname(__FILE__) . '/../autoload.php'; +} /** * A persistent storage class based on the APC cache, which is not @@ -28,11 +29,21 @@ require_once "Google/Cache/Exception.php"; */ class Google_Cache_Apc extends Google_Cache_Abstract { + /** + * @var Google_Client the current client + */ + private $client; + public function __construct(Google_Client $client) { if (! function_exists('apc_add') ) { - throw new Google_Cache_Exception("Apc functions not available"); + $error = "Apc functions not available"; + + $client->getLogger()->error($error); + throw new Google_Cache_Exception($error); } + + $this->client = $client; } /** @@ -42,12 +53,26 @@ class Google_Cache_Apc extends Google_Cache_Abstract { $ret = apc_fetch($key); if ($ret === false) { + $this->client->getLogger()->debug( + 'APC cache miss', + array('key' => $key) + ); return false; } if (is_numeric($expiration) && (time() - $ret['time'] > $expiration)) { + $this->client->getLogger()->debug( + 'APC cache miss (expired)', + array('key' => $key, 'var' => $ret) + ); $this->delete($key); return false; } + + $this->client->getLogger()->debug( + 'APC cache hit', + array('key' => $key, 'var' => $ret) + ); + return $ret['data']; } @@ -56,10 +81,21 @@ class Google_Cache_Apc extends Google_Cache_Abstract */ public function set($key, $value) { - $rc = apc_store($key, array('time' => time(), 'data' => $value)); + $var = array('time' => time(), 'data' => $value); + $rc = apc_store($key, $var); + if ($rc == false) { + $this->client->getLogger()->error( + 'APC cache set failed', + array('key' => $key, 'var' => $var) + ); throw new Google_Cache_Exception("Couldn't store data"); } + + $this->client->getLogger()->debug( + 'APC cache set', + array('key' => $key, 'var' => $var) + ); } /** @@ -68,6 +104,10 @@ class Google_Cache_Apc extends Google_Cache_Abstract */ public function delete($key) { + $this->client->getLogger()->debug( + 'APC cache delete', + array('key' => $key) + ); apc_delete($key); } } diff --git a/apps/files_external/3rdparty/google-api-php-client/src/Google/Cache/Exception.php b/apps/files_external/3rdparty/google-api-php-client/src/Google/Cache/Exception.php index 23b624608e8..2d751d58364 100644 --- a/apps/files_external/3rdparty/google-api-php-client/src/Google/Cache/Exception.php +++ b/apps/files_external/3rdparty/google-api-php-client/src/Google/Cache/Exception.php @@ -14,7 +14,10 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -require_once "Google/Exception.php"; + +if (!class_exists('Google_Client')) { + require_once dirname(__FILE__) . '/../autoload.php'; +} class Google_Cache_Exception extends Google_Exception { diff --git a/apps/files_external/3rdparty/google-api-php-client/src/Google/Cache/File.php b/apps/files_external/3rdparty/google-api-php-client/src/Google/Cache/File.php index 8d0d62fe88c..47256b89dd2 100644 --- a/apps/files_external/3rdparty/google-api-php-client/src/Google/Cache/File.php +++ b/apps/files_external/3rdparty/google-api-php-client/src/Google/Cache/File.php @@ -15,8 +15,9 @@ * limitations under the License. */ -require_once "Google/Cache/Abstract.php"; -require_once "Google/Cache/Exception.php"; +if (!class_exists('Google_Client')) { + require_once dirname(__FILE__) . '/../autoload.php'; +} /* * This class implements a basic on disk storage. While that does @@ -32,34 +33,60 @@ class Google_Cache_File extends Google_Cache_Abstract private $path; private $fh; + /** + * @var Google_Client the current client + */ + private $client; + public function __construct(Google_Client $client) { - $this->path = $client->getClassConfig($this, 'directory'); + $this->client = $client; + $this->path = $this->client->getClassConfig($this, 'directory'); } - + public function get($key, $expiration = false) { $storageFile = $this->getCacheFile($key); $data = false; - + if (!file_exists($storageFile)) { + $this->client->getLogger()->debug( + 'File cache miss', + array('key' => $key, 'file' => $storageFile) + ); return false; } if ($expiration) { $mtime = filemtime($storageFile); if ((time() - $mtime) >= $expiration) { + $this->client->getLogger()->debug( + 'File cache miss (expired)', + array('key' => $key, 'file' => $storageFile) + ); $this->delete($key); return false; } } if ($this->acquireReadLock($storageFile)) { - $data = fread($this->fh, filesize($storageFile)); - $data = unserialize($data); + if (filesize($storageFile) > 0) { + $data = fread($this->fh, filesize($storageFile)); + $data = unserialize($data); + } else { + $this->client->getLogger()->debug( + 'Cache file was empty', + array('file' => $storageFile) + ); + } $this->unlock($storageFile); } + $this->client->getLogger()->debug( + 'File cache hit', + array('key' => $key, 'file' => $storageFile, 'var' => $data) + ); + return $data; } @@ -72,6 +99,16 @@ class Google_Cache_File extends Google_Cache_Abstract $data = serialize($value); $result = fwrite($this->fh, $data); $this->unlock($storageFile); + + $this->client->getLogger()->debug( + 'File cache set', + array('key' => $key, 'file' => $storageFile, 'var' => $value) + ); + } else { + $this->client->getLogger()->notice( + 'File cache set failed', + array('key' => $key, 'file' => $storageFile) + ); } } @@ -79,10 +116,19 @@ class Google_Cache_File extends Google_Cache_Abstract { $file = $this->getCacheFile($key); if (file_exists($file) && !unlink($file)) { + $this->client->getLogger()->error( + 'File cache delete failed', + array('key' => $key, 'file' => $file) + ); throw new Google_Cache_Exception("Cache file could not be deleted"); } + + $this->client->getLogger()->debug( + 'File cache delete', + array('key' => $key, 'file' => $file) + ); } - + private function getWriteableCacheFile($file) { return $this->getCacheFile($file, true); @@ -92,7 +138,7 @@ class Google_Cache_File extends Google_Cache_Abstract { return $this->getCacheDir($file, $forWrite) . '/' . md5($file); } - + private function getCacheDir($file, $forWrite) { // use the first 2 characters of the hash as a directory prefix @@ -100,31 +146,49 @@ class Google_Cache_File extends Google_Cache_Abstract // and thus give some basic amount of scalability $storageDir = $this->path . '/' . substr(md5($file), 0, 2); if ($forWrite && ! is_dir($storageDir)) { - if (! mkdir($storageDir, 0755, true)) { + if (! mkdir($storageDir, 0700, true)) { + $this->client->getLogger()->error( + 'File cache creation failed', + array('dir' => $storageDir) + ); throw new Google_Cache_Exception("Could not create storage directory: $storageDir"); } } return $storageDir; } - + private function acquireReadLock($storageFile) { return $this->acquireLock(LOCK_SH, $storageFile); } - + private function acquireWriteLock($storageFile) { $rc = $this->acquireLock(LOCK_EX, $storageFile); if (!$rc) { + $this->client->getLogger()->notice( + 'File cache write lock failed', + array('file' => $storageFile) + ); $this->delete($storageFile); } return $rc; } - + private function acquireLock($type, $storageFile) { $mode = $type == LOCK_EX ? "w" : "r"; $this->fh = fopen($storageFile, $mode); + if (!$this->fh) { + $this->client->getLogger()->error( + 'Failed to open file during lock acquisition', + array('file' => $storageFile) + ); + return false; + } + if ($type == LOCK_EX) { + chmod($storageFile, 0600); + } $count = 0; while (!flock($this->fh, $type | LOCK_NB)) { // Sleep for 10ms. @@ -135,7 +199,7 @@ class Google_Cache_File extends Google_Cache_Abstract } return true; } - + public function unlock($storageFile) { if ($this->fh) { diff --git a/apps/files_external/3rdparty/google-api-php-client/src/Google/Cache/Memcache.php b/apps/files_external/3rdparty/google-api-php-client/src/Google/Cache/Memcache.php index 1104afb8aeb..4a415afa743 100644 --- a/apps/files_external/3rdparty/google-api-php-client/src/Google/Cache/Memcache.php +++ b/apps/files_external/3rdparty/google-api-php-client/src/Google/Cache/Memcache.php @@ -15,8 +15,9 @@ * limitations under the License. */ -require_once "Google/Cache/Abstract.php"; -require_once "Google/Cache/Exception.php"; +if (!class_exists('Google_Client')) { + require_once dirname(__FILE__) . '/../autoload.php'; +} /** * A persistent storage class based on the memcache, which is not @@ -35,11 +36,22 @@ class Google_Cache_Memcache extends Google_Cache_Abstract private $host; private $port; + /** + * @var Google_Client the current client + */ + private $client; + public function __construct(Google_Client $client) { if (!function_exists('memcache_connect') && !class_exists("Memcached")) { - throw new Google_Cache_Exception("Memcache functions not available"); + $error = "Memcache functions not available"; + + $client->getLogger()->error($error); + throw new Google_Cache_Exception($error); } + + $this->client = $client; + if ($client->isAppEngine()) { // No credentials needed for GAE. $this->mc = new Memcached(); @@ -48,11 +60,14 @@ class Google_Cache_Memcache extends Google_Cache_Abstract $this->host = $client->getClassConfig($this, 'host'); $this->port = $client->getClassConfig($this, 'port'); if (empty($this->host) || (empty($this->port) && (string) $this->port != "0")) { - throw new Google_Cache_Exception("You need to supply a valid memcache host and port"); + $error = "You need to supply a valid memcache host and port"; + + $client->getLogger()->error($error); + throw new Google_Cache_Exception($error); } } } - + /** * @inheritDoc */ @@ -66,12 +81,26 @@ class Google_Cache_Memcache extends Google_Cache_Abstract $ret = memcache_get($this->connection, $key); } if ($ret === false) { + $this->client->getLogger()->debug( + 'Memcache cache miss', + array('key' => $key) + ); return false; } if (is_numeric($expiration) && (time() - $ret['time'] > $expiration)) { + $this->client->getLogger()->debug( + 'Memcache cache miss (expired)', + array('key' => $key, 'var' => $ret) + ); $this->delete($key); return false; } + + $this->client->getLogger()->debug( + 'Memcache cache hit', + array('key' => $key, 'var' => $ret) + ); + return $ret['data']; } @@ -94,8 +123,18 @@ class Google_Cache_Memcache extends Google_Cache_Abstract $rc = memcache_set($this->connection, $key, $data, false); } if ($rc == false) { + $this->client->getLogger()->error( + 'Memcache cache set failed', + array('key' => $key, 'var' => $data) + ); + throw new Google_Cache_Exception("Couldn't store data in cache"); } + + $this->client->getLogger()->debug( + 'Memcache cache set', + array('key' => $key, 'var' => $data) + ); } /** @@ -110,11 +149,16 @@ class Google_Cache_Memcache extends Google_Cache_Abstract } else { memcache_delete($this->connection, $key, 0); } + + $this->client->getLogger()->debug( + 'Memcache cache delete', + array('key' => $key) + ); } /** - * Lazy initialiser for memcache connection. Uses pconnect for to take - * advantage of the persistence pool where possible. + * Lazy initialiser for memcache connection. Uses pconnect for to take + * advantage of the persistence pool where possible. */ private function connect() { @@ -129,9 +173,12 @@ class Google_Cache_Memcache extends Google_Cache_Abstract } else { $this->connection = memcache_pconnect($this->host, $this->port); } - + if (! $this->connection) { - throw new Google_Cache_Exception("Couldn't connect to memcache server"); + $error = "Couldn't connect to memcache server"; + + $this->client->getLogger()->error($error); + throw new Google_Cache_Exception($error); } } } diff --git a/apps/files_external/3rdparty/google-api-php-client/src/Google/Client.php b/apps/files_external/3rdparty/google-api-php-client/src/Google/Client.php index e15b4f4ea3c..b28abf8c4af 100644 --- a/apps/files_external/3rdparty/google-api-php-client/src/Google/Client.php +++ b/apps/files_external/3rdparty/google-api-php-client/src/Google/Client.php @@ -15,28 +15,17 @@ * limitations under the License. */ -require_once 'Google/Auth/AssertionCredentials.php'; -require_once 'Google/Cache/File.php'; -require_once 'Google/Cache/Memcache.php'; -require_once 'Google/Config.php'; -require_once 'Google/Collection.php'; -require_once 'Google/Exception.php'; -require_once 'Google/IO/Curl.php'; -require_once 'Google/IO/Stream.php'; -require_once 'Google/Model.php'; -require_once 'Google/Service.php'; -require_once 'Google/Service/Resource.php'; +if (!class_exists('Google_Client')) { + require_once dirname(__FILE__) . '/autoload.php'; +} /** * The Google API Client - * http://code.google.com/p/google-api-php-client/ - * - * @author Chris Chabot <chabotc@google.com> - * @author Chirag Shah <chirags@google.com> + * https://github.com/google/google-api-php-client */ class Google_Client { - const LIBVER = "1.0.6-beta"; + const LIBVER = "1.1.5"; const USER_AGENT_SUFFIX = "google-api-php-client/"; /** * @var Google_Auth_Abstract $auth @@ -59,6 +48,11 @@ class Google_Client private $config; /** + * @var Google_Logger_Abstract $logger + */ + private $logger; + + /** * @var boolean $deferExecution */ private $deferExecution = false; @@ -97,7 +91,8 @@ class Google_Client } if ($config->getIoClass() == Google_Config::USE_AUTO_IO_SELECTION) { - if (function_exists('curl_version') && function_exists('curl_exec')) { + if (function_exists('curl_version') && function_exists('curl_exec') + && !$this->isAppEngine()) { $config->setIoClass("Google_IO_Curl"); } else { $config->setIoClass("Google_IO_Stream"); @@ -119,15 +114,45 @@ class Google_Client /** * Attempt to exchange a code for an valid authentication token. + * If $crossClient is set to true, the request body will not include + * the request_uri argument * Helper wrapped around the OAuth 2.0 implementation. * * @param $code string code from accounts.google.com + * @param $crossClient boolean, whether this is a cross-client authentication * @return string token */ - public function authenticate($code) + public function authenticate($code, $crossClient = false) { $this->authenticated = true; - return $this->getAuth()->authenticate($code); + return $this->getAuth()->authenticate($code, $crossClient); + } + + /** + * Loads a service account key and parameters from a JSON + * file from the Google Developer Console. Uses that and the + * given array of scopes to return an assertion credential for + * use with refreshTokenWithAssertionCredential. + * + * @param string $jsonLocation File location of the project-key.json. + * @param array $scopes The scopes to assert. + * @return Google_Auth_AssertionCredentials. + * @ + */ + public function loadServiceAccountJson($jsonLocation, $scopes) + { + $data = json_decode(file_get_contents($jsonLocation)); + if (isset($data->type) && $data->type == 'service_account') { + // Service Account format. + $cred = new Google_Auth_AssertionCredentials( + $data->client_email, + $scopes, + $data->private_key + ); + return $cred; + } else { + throw new Google_Exception("Invalid service account JSON file."); + } } /** @@ -136,6 +161,7 @@ class Google_Client * the "Download JSON" button on in the Google Developer * Console. * @param string $json the configuration json + * @throws Google_Exception */ public function setAuthConfig($json) { @@ -164,6 +190,7 @@ class Google_Client } /** + * @throws Google_Auth_Exception * @return array * @visible For Testing */ @@ -205,9 +232,9 @@ class Google_Client /** * Set the IO object - * @param Google_Io_Abstract $auth + * @param Google_IO_Abstract $io */ - public function setIo(Google_Io_Abstract $io) + public function setIo(Google_IO_Abstract $io) { $this->config->setIoClass(get_class($io)); $this->io = $io; @@ -215,7 +242,7 @@ class Google_Client /** * Set the Cache object - * @param Google_Cache_Abstract $auth + * @param Google_Cache_Abstract $cache */ public function setCache(Google_Cache_Abstract $cache) { @@ -224,6 +251,16 @@ class Google_Client } /** + * Set the Logger object + * @param Google_Logger_Abstract $logger + */ + public function setLogger(Google_Logger_Abstract $logger) + { + $this->config->setLoggerClass(get_class($logger)); + $this->logger = $logger; + } + + /** * Construct the OAuth 2.0 authorization request URI. * @return string */ @@ -414,11 +451,10 @@ class Google_Client /** * Fetches a fresh OAuth 2.0 access token with the given refresh token. * @param string $refreshToken - * @return void */ public function refreshToken($refreshToken) { - return $this->getAuth()->refreshToken($refreshToken); + $this->getAuth()->refreshToken($refreshToken); } /** @@ -449,12 +485,12 @@ class Google_Client /** * Verify a JWT that was signed with your own certificates. * - * @param $jwt the token - * @param $certs array of certificates - * @param $required_audience the expected consumer of the token - * @param [$issuer] the expected issues, defaults to Google + * @param $id_token string The JWT token + * @param $cert_location array of certificates + * @param $audience string the expected consumer of the token + * @param $issuer string the expected issuer, defaults to Google * @param [$max_expiry] the max lifetime of a token, defaults to MAX_TOKEN_LIFETIME_SECS - * @return token information if valid, false if not + * @return mixed token information if valid, false if not */ public function verifySignedJwt($id_token, $cert_location, $audience, $issuer, $max_expiry = null) { @@ -464,8 +500,7 @@ class Google_Client } /** - * @param Google_Auth_AssertionCredentials $creds - * @return void + * @param $creds Google_Auth_AssertionCredentials */ public function setAssertionCredentials(Google_Auth_AssertionCredentials $creds) { @@ -539,6 +574,8 @@ class Google_Client /** * Helper method to execute deferred HTTP requests. * + * @param $request Google_Http_Request|Google_Http_Batch + * @throws Google_Exception * @return object of the type of the expected class or array. */ public function execute($request) @@ -607,9 +644,22 @@ class Google_Client } /** + * @return Google_Logger_Abstract Logger implementation + */ + public function getLogger() + { + if (!isset($this->logger)) { + $class = $this->config->getLoggerClass(); + $this->logger = new $class($this); + } + return $this->logger; + } + + /** * Retrieve custom configuration for a specific class. * @param $class string|object - class or instance of class to retrieve * @param $key string optional - key to retrieve + * @return array */ public function getClassConfig($class, $key = null) { @@ -623,9 +673,9 @@ class Google_Client * Set configuration specific to a given class. * $config->setClassConfig('Google_Cache_File', * array('directory' => '/tmp/cache')); - * @param $class The class name for the configuration + * @param $class string|object - The class name for the configuration * @param $config string key or an array of configuration values - * @param $value optional - if $config is a key, the value + * @param $value string optional - if $config is a key, the value * */ public function setClassConfig($class, $config, $value = null) @@ -633,7 +683,7 @@ class Google_Client if (!is_string($class)) { $class = get_class($class); } - return $this->config->setClassConfig($class, $config, $value); + $this->config->setClassConfig($class, $config, $value); } diff --git a/apps/files_external/3rdparty/google-api-php-client/src/Google/Collection.php b/apps/files_external/3rdparty/google-api-php-client/src/Google/Collection.php index 6e7bf9b0f1e..b26e9e51d0e 100644 --- a/apps/files_external/3rdparty/google-api-php-client/src/Google/Collection.php +++ b/apps/files_external/3rdparty/google-api-php-client/src/Google/Collection.php @@ -1,6 +1,8 @@ <?php -require_once "Google/Model.php"; +if (!class_exists('Google_Client')) { + require_once dirname(__FILE__) . '/autoload.php'; +} /** * Extension to the regular Google_Model that automatically @@ -48,10 +50,13 @@ class Google_Collection extends Google_Model implements Iterator, Countable public function count() { + if (!isset($this->modelData[$this->collection_key])) { + return 0; + } return count($this->modelData[$this->collection_key]); } - public function offsetExists ($offset) + public function offsetExists($offset) { if (!is_numeric($offset)) { return parent::offsetExists($offset); diff --git a/apps/files_external/3rdparty/google-api-php-client/src/Google/Config.php b/apps/files_external/3rdparty/google-api-php-client/src/Google/Config.php index 84083058fe5..2f52405cf86 100644 --- a/apps/files_external/3rdparty/google-api-php-client/src/Google/Config.php +++ b/apps/files_external/3rdparty/google-api-php-client/src/Google/Config.php @@ -25,6 +25,9 @@ class Google_Config const GZIP_UPLOADS_ENABLED = true; const GZIP_UPLOADS_DISABLED = false; const USE_AUTO_IO_SELECTION = "auto"; + const TASK_RETRY_NEVER = 0; + const TASK_RETRY_ONCE = 1; + const TASK_RETRY_ALWAYS = -1; protected $configuration; /** @@ -44,6 +47,7 @@ class Google_Config 'auth_class' => 'Google_Auth_OAuth2', 'io_class' => self::USE_AUTO_IO_SELECTION, 'cache_class' => 'Google_Cache_File', + 'logger_class' => 'Google_Logger_Null', // Don't change these unless you're working against a special development // or testing environment. @@ -54,6 +58,21 @@ class Google_Config 'Google_IO_Abstract' => array( 'request_timeout_seconds' => 100, ), + 'Google_IO_Curl' => array( + 'disable_proxy_workaround' => false, + 'options' => null, + ), + 'Google_Logger_Abstract' => array( + 'level' => 'debug', + 'log_format' => "[%datetime%] %level%: %message% %context%\n", + 'date_format' => 'd/M/Y:H:i:s O', + 'allow_newlines' => true + ), + 'Google_Logger_File' => array( + 'file' => 'php://stdout', + 'mode' => 0640, + 'lock' => false, + ), 'Google_Http_Request' => array( // Disable the use of gzip on calls if set to true. Defaults to false. 'disable_gzip' => self::GZIP_ENABLED, @@ -89,6 +108,36 @@ class Google_Config 'federated_signon_certs_url' => 'https://www.googleapis.com/oauth2/v1/certs', ), + 'Google_Task_Runner' => array( + // Delays are specified in seconds + 'initial_delay' => 1, + 'max_delay' => 60, + // Base number for exponential backoff + 'factor' => 2, + // A random number between -jitter and jitter will be added to the + // factor on each iteration to allow for better distribution of + // retries. + 'jitter' => .5, + // Maximum number of retries allowed + 'retries' => 0 + ), + 'Google_Service_Exception' => array( + 'retry_map' => array( + '500' => self::TASK_RETRY_ALWAYS, + '503' => self::TASK_RETRY_ALWAYS, + 'rateLimitExceeded' => self::TASK_RETRY_ALWAYS, + 'userRateLimitExceeded' => self::TASK_RETRY_ALWAYS + ) + ), + 'Google_IO_Exception' => array( + 'retry_map' => !extension_loaded('curl') ? array() : array( + CURLE_COULDNT_RESOLVE_HOST => self::TASK_RETRY_ALWAYS, + CURLE_COULDNT_CONNECT => self::TASK_RETRY_ALWAYS, + CURLE_OPERATION_TIMEOUTED => self::TASK_RETRY_ALWAYS, + CURLE_SSL_CONNECT_ERROR => self::TASK_RETRY_ALWAYS, + CURLE_GOT_NOTHING => self::TASK_RETRY_ALWAYS + ) + ), // Set a default directory for the file cache. 'Google_Cache_File' => array( 'directory' => sys_get_temp_dir() . '/Google_Client' @@ -98,7 +147,11 @@ class Google_Config if ($ini_file_location) { $ini = parse_ini_file($ini_file_location, true); if (is_array($ini) && count($ini)) { - $this->configuration = array_merge($this->configuration, $ini); + $merged_configuration = $ini + $this->configuration; + if (isset($ini['classes']) && isset($this->configuration['classes'])) { + $merged_configuration['classes'] = $ini['classes'] + $this->configuration['classes']; + } + $this->configuration = $merged_configuration; } } } @@ -107,9 +160,9 @@ class Google_Config * Set configuration specific to a given class. * $config->setClassConfig('Google_Cache_File', * array('directory' => '/tmp/cache')); - * @param $class The class name for the configuration + * @param $class string The class name for the configuration * @param $config string key or an array of configuration values - * @param $value optional - if $config is a key, the value + * @param $value string optional - if $config is a key, the value */ public function setClassConfig($class, $config, $value = null) { @@ -145,6 +198,15 @@ class Google_Config } /** + * Return the configured logger class. + * @return string + */ + public function getLoggerClass() + { + return $this->configuration['logger_class']; + } + + /** * Return the configured Auth class. * @return string */ @@ -156,7 +218,7 @@ class Google_Config /** * Set the auth class. * - * @param $class the class name to set + * @param $class string the class name to set */ public function setAuthClass($class) { @@ -172,7 +234,7 @@ class Google_Config /** * Set the IO class. * - * @param $class the class name to set + * @param $class string the class name to set */ public function setIoClass($class) { @@ -188,7 +250,7 @@ class Google_Config /** * Set the cache class. * - * @param $class the class name to set + * @param $class string the class name to set */ public function setCacheClass($class) { @@ -202,7 +264,24 @@ class Google_Config } /** + * Set the logger class. + * + * @param $class string the class name to set + */ + public function setLoggerClass($class) + { + $prev = $this->configuration['logger_class']; + if (!isset($this->configuration['classes'][$class]) && + isset($this->configuration['classes'][$prev])) { + $this->configuration['classes'][$class] = + $this->configuration['classes'][$prev]; + } + $this->configuration['logger_class'] = $class; + } + + /** * Return the configured IO class. + * * @return string */ public function getIoClass() @@ -229,7 +308,7 @@ class Google_Config /** * Set the client ID for the auth class. - * @param $key string - the API console client ID + * @param $clientId string - the API console client ID */ public function setClientId($clientId) { @@ -238,7 +317,7 @@ class Google_Config /** * Set the client secret for the auth class. - * @param $key string - the API console client secret + * @param $secret string - the API console client secret */ public function setClientSecret($secret) { @@ -248,7 +327,8 @@ class Google_Config /** * Set the redirect uri for the auth class. Note that if using the * Javascript based sign in flow, this should be the string 'postmessage'. - * @param $key string - the URI that users should be redirected to + * + * @param $uri string - the URI that users should be redirected to */ public function setRedirectUri($uri) { @@ -305,6 +385,11 @@ class Google_Config * Set the hd (hosted domain) parameter streamlines the login process for * Google Apps hosted accounts. By including the domain of the user, you * restrict sign-in to accounts at that domain. + * + * This should not be used to ensure security on your application - check + * the hd values within an id token (@see Google_Auth_LoginTicket) after sign + * in to ensure that the user is from the domain you were expecting. + * * @param $hd string - the domain to use. */ public function setHostedDomain($hd) diff --git a/apps/files_external/3rdparty/google-api-php-client/src/Google/Http/Batch.php b/apps/files_external/3rdparty/google-api-php-client/src/Google/Http/Batch.php index d851da50499..039b4dd32cd 100644 --- a/apps/files_external/3rdparty/google-api-php-client/src/Google/Http/Batch.php +++ b/apps/files_external/3rdparty/google-api-php-client/src/Google/Http/Batch.php @@ -15,12 +15,12 @@ * limitations under the License. */ -require_once 'Google/Client.php'; -require_once 'Google/Http/Request.php'; -require_once 'Google/Http/REST.php'; +if (!class_exists('Google_Client')) { + require_once dirname(__FILE__) . '/../autoload.php'; +} /** - * @author Chirag Shah <chirags@google.com> + * Class to handle batched requests to the Google API service. */ class Google_Http_Batch { @@ -35,12 +35,15 @@ class Google_Http_Batch private $expected_classes = array(); - private $base_path; + private $root_url; + + private $batch_path; - public function __construct(Google_Client $client, $boundary = false) + public function __construct(Google_Client $client, $boundary = false, $rootUrl = '', $batchPath = '') { $this->client = $client; - $this->base_path = $this->client->getBasePath(); + $this->root_url = rtrim($rootUrl ? $rootUrl : $this->client->getBasePath(), '/'); + $this->batch_path = $batchPath ? $batchPath : 'batch'; $this->expected_classes = array(); $boundary = (false == $boundary) ? mt_rand() : $boundary; $this->boundary = str_replace('"', '', $boundary); @@ -62,14 +65,13 @@ class Google_Http_Batch /** @var Google_Http_Request $req */ foreach ($this->requests as $key => $req) { $body .= "--{$this->boundary}\n"; - $body .= $req->toBatchString($key) . "\n"; + $body .= $req->toBatchString($key) . "\n\n"; $this->expected_classes["response-" . $key] = $req->getExpectedClass(); } - $body = rtrim($body); - $body .= "\n--{$this->boundary}--"; + $body .= "--{$this->boundary}--"; - $url = $this->base_path . '/batch'; + $url = $this->root_url . '/' . $this->batch_path; $httpRequest = new Google_Http_Request($url, 'POST'); $httpRequest->setRequestHeaders( array('Content-Type' => 'multipart/mixed; boundary=' . $this->boundary) @@ -125,10 +127,10 @@ class Google_Http_Batch } try { - $response = Google_Http_REST::decodeHttpResponse($response); + $response = Google_Http_REST::decodeHttpResponse($response, $this->client); $responses[$key] = $response; } catch (Google_Service_Exception $e) { - // Store the exception as the response, so succesful responses + // Store the exception as the response, so successful responses // can be processed. $responses[$key] = $e; } diff --git a/apps/files_external/3rdparty/google-api-php-client/src/Google/Http/CacheParser.php b/apps/files_external/3rdparty/google-api-php-client/src/Google/Http/CacheParser.php index 83f1c8d2f42..a6167adc8f5 100644 --- a/apps/files_external/3rdparty/google-api-php-client/src/Google/Http/CacheParser.php +++ b/apps/files_external/3rdparty/google-api-php-client/src/Google/Http/CacheParser.php @@ -15,12 +15,13 @@ * limitations under the License. */ -require_once 'Google/Http/Request.php'; +if (!class_exists('Google_Client')) { + require_once dirname(__FILE__) . '/../autoload.php'; +} /** * Implement the caching directives specified in rfc2616. This * implementation is guided by the guidance offered in rfc2616-sec13. - * @author Chirag Shah <chirags@google.com> */ class Google_Http_CacheParser { diff --git a/apps/files_external/3rdparty/google-api-php-client/src/Google/Http/MediaFileUpload.php b/apps/files_external/3rdparty/google-api-php-client/src/Google/Http/MediaFileUpload.php index 8005db4bb48..02a2f451078 100644 --- a/apps/files_external/3rdparty/google-api-php-client/src/Google/Http/MediaFileUpload.php +++ b/apps/files_external/3rdparty/google-api-php-client/src/Google/Http/MediaFileUpload.php @@ -15,15 +15,13 @@ * limitations under the License. */ -require_once 'Google/Client.php'; -require_once 'Google/Exception.php'; -require_once 'Google/Http/Request.php'; -require_once 'Google/Http/REST.php'; -require_once 'Google/Utils.php'; +if (!class_exists('Google_Client')) { + require_once dirname(__FILE__) . '/../autoload.php'; +} /** - * @author Chirag Shah <chirags@google.com> - * + * Manage large file uploads, which may be media but can be any type + * of sizable data. */ class Google_Http_MediaFileUpload { @@ -128,35 +126,16 @@ class Google_Http_MediaFileUpload } /** - * Send the next part of the file to upload. - * @param [$chunk] the next set of bytes to send. If false will used $data passed - * at construct time. - */ - public function nextChunk($chunk = false) + * Sends a PUT-Request to google drive and parses the response, + * setting the appropiate variables from the response() + * + * @param Google_Http_Request $httpRequest the Reuqest which will be send + * + * @return false|mixed false when the upload is unfinished or the decoded http response + * + */ + private function makePutRequest(Google_Http_Request $httpRequest) { - if (false == $this->resumeUri) { - $this->resumeUri = $this->getResumeUri(); - } - - if (false == $chunk) { - $chunk = substr($this->data, $this->progress, $this->chunkSize); - } - - $lastBytePos = $this->progress + strlen($chunk) - 1; - $headers = array( - 'content-range' => "bytes $this->progress-$lastBytePos/$this->size", - 'content-type' => $this->request->getRequestHeader('content-type'), - 'content-length' => $this->chunkSize, - 'expect' => '', - ); - - $httpRequest = new Google_Http_Request( - $this->resumeUri, - 'PUT', - $headers, - $chunk - ); - if ($this->client->getClassConfig("Google_Http_Request", "enable_gzip_for_uploads")) { $httpRequest->enableGzip(); } else { @@ -182,13 +161,61 @@ class Google_Http_MediaFileUpload // No problems, but upload not complete. return false; } else { - return Google_Http_REST::decodeHttpResponse($response); + return Google_Http_REST::decodeHttpResponse($response, $this->client); } } /** - * @param $meta - * @param $params + * Send the next part of the file to upload. + * @param [$chunk] the next set of bytes to send. If false will used $data passed + * at construct time. + */ + public function nextChunk($chunk = false) + { + if (false == $this->resumeUri) { + $this->resumeUri = $this->fetchResumeUri(); + } + + if (false == $chunk) { + $chunk = substr($this->data, $this->progress, $this->chunkSize); + } + $lastBytePos = $this->progress + strlen($chunk) - 1; + $headers = array( + 'content-range' => "bytes $this->progress-$lastBytePos/$this->size", + 'content-type' => $this->request->getRequestHeader('content-type'), + 'content-length' => $this->chunkSize, + 'expect' => '', + ); + + $httpRequest = new Google_Http_Request( + $this->resumeUri, + 'PUT', + $headers, + $chunk + ); + return $this->makePutRequest($httpRequest); + } + + /** + * Resume a previously unfinished upload + * @param $resumeUri the resume-URI of the unfinished, resumable upload. + */ + public function resume($resumeUri) + { + $this->resumeUri = $resumeUri; + $headers = array( + 'content-range' => "bytes */$this->size", + 'content-length' => 0, + ); + $httpRequest = new Google_Http_Request( + $this->resumeUri, + 'PUT', + $headers + ); + return $this->makePutRequest($httpRequest); + } + + /** * @return array|bool * @visible for testing */ @@ -265,7 +292,12 @@ class Google_Http_MediaFileUpload return self::UPLOAD_MULTIPART_TYPE; } - private function getResumeUri() + public function getResumeUri() + { + return ( $this->resumeUri !== null ? $this->resumeUri : $this->fetchResumeUri() ); + } + + private function fetchResumeUri() { $result = null; $body = $this->request->getPostBody(); @@ -289,13 +321,21 @@ class Google_Http_MediaFileUpload } $message = $code; $body = @json_decode($response->getResponseBody()); - if (!empty( $body->error->errors ) ) { + if (!empty($body->error->errors) ) { $message .= ': '; foreach ($body->error->errors as $error) { $message .= "{$error->domain}, {$error->message};"; } $message = rtrim($message, ';'); } - throw new Google_Exception("Failed to start the resumable upload (HTTP {$message})"); + + $error = "Failed to start the resumable upload (HTTP {$message})"; + $this->client->getLogger()->error($error); + throw new Google_Exception($error); + } + + public function setChunkSize($chunkSize) + { + $this->chunkSize = $chunkSize; } } diff --git a/apps/files_external/3rdparty/google-api-php-client/src/Google/Http/REST.php b/apps/files_external/3rdparty/google-api-php-client/src/Google/Http/REST.php index 3c318e44ceb..491c06846e6 100644 --- a/apps/files_external/3rdparty/google-api-php-client/src/Google/Http/REST.php +++ b/apps/files_external/3rdparty/google-api-php-client/src/Google/Http/REST.php @@ -15,21 +15,18 @@ * limitations under the License. */ -require_once 'Google/Client.php'; -require_once 'Google/Http/Request.php'; -require_once 'Google/Service/Exception.php'; -require_once 'Google/Utils/URITemplate.php'; +if (!class_exists('Google_Client')) { + require_once dirname(__FILE__) . '/../autoload.php'; +} /** * This class implements the RESTful transport of apiServiceRequest()'s - * - * @author Chris Chabot <chabotc@google.com> - * @author Chirag Shah <chirags@google.com> */ class Google_Http_REST { /** - * Executes a Google_Http_Request + * Executes a Google_Http_Request and (if applicable) automatically retries + * when errors occur. * * @param Google_Client $client * @param Google_Http_Request $req @@ -39,9 +36,30 @@ class Google_Http_REST */ public static function execute(Google_Client $client, Google_Http_Request $req) { + $runner = new Google_Task_Runner( + $client, + sprintf('%s %s', $req->getRequestMethod(), $req->getUrl()), + array(get_class(), 'doExecute'), + array($client, $req) + ); + + return $runner->run(); + } + + /** + * Executes a Google_Http_Request + * + * @param Google_Client $client + * @param Google_Http_Request $req + * @return array decoded result + * @throws Google_Service_Exception on server side error (ie: not authenticated, + * invalid or malformed post body, invalid url) + */ + public static function doExecute(Google_Client $client, Google_Http_Request $req) + { $httpRequest = $client->getIo()->makeRequest($req); $httpRequest->setExpectedClass($req->getExpectedClass()); - return self::decodeHttpResponse($httpRequest); + return self::decodeHttpResponse($httpRequest, $client); } /** @@ -49,9 +67,10 @@ class Google_Http_REST * @static * @throws Google_Service_Exception * @param Google_Http_Request $response The http response to be decoded. + * @param Google_Client $client * @return mixed|null */ - public static function decodeHttpResponse($response) + public static function decodeHttpResponse($response, Google_Client $client = null) { $code = $response->getResponseHttpCode(); $body = $response->getResponseBody(); @@ -76,14 +95,34 @@ class Google_Http_REST $errors = $decoded['error']['errors']; } - throw new Google_Service_Exception($err, $code, null, $errors); + $map = null; + if ($client) { + $client->getLogger()->error( + $err, + array('code' => $code, 'errors' => $errors) + ); + + $map = $client->getClassConfig( + 'Google_Service_Exception', + 'retry_map' + ); + } + throw new Google_Service_Exception($err, $code, null, $errors, $map); } // Only attempt to decode the response, if the response code wasn't (204) 'no content' if ($code != '204') { + if ($response->getExpectedRaw()) { + return $body; + } + $decoded = json_decode($body, true); if ($decoded === null || $decoded === "") { - throw new Google_Service_Exception("Invalid json in service response: $body"); + $error = "Invalid json in service response: $body"; + if ($client) { + $client->getLogger()->error($error); + } + throw new Google_Service_Exception($error); } if ($response->getExpectedClass()) { @@ -117,10 +156,10 @@ class Google_Http_REST } else if ($paramSpec['location'] == 'query') { if (isset($paramSpec['repeated']) && is_array($paramSpec['value'])) { foreach ($paramSpec['value'] as $value) { - $queryVars[] = $paramName . '=' . rawurlencode($value); + $queryVars[] = $paramName . '=' . rawurlencode(rawurldecode($value)); } } else { - $queryVars[] = $paramName . '=' . rawurlencode($paramSpec['value']); + $queryVars[] = $paramName . '=' . rawurlencode(rawurldecode($paramSpec['value'])); } } } diff --git a/apps/files_external/3rdparty/google-api-php-client/src/Google/Http/Request.php b/apps/files_external/3rdparty/google-api-php-client/src/Google/Http/Request.php index 8643694da89..c09a9d9cbcd 100644 --- a/apps/files_external/3rdparty/google-api-php-client/src/Google/Http/Request.php +++ b/apps/files_external/3rdparty/google-api-php-client/src/Google/Http/Request.php @@ -15,7 +15,9 @@ * limitations under the License. */ -require_once 'Google/Utils.php'; +if (!class_exists('Google_Client')) { + require_once dirname(__FILE__) . '/../autoload.php'; +} /** * HTTP Request to be executed by IO classes. Upon execution, the @@ -49,6 +51,7 @@ class Google_Http_Request protected $responseBody; protected $expectedClass; + protected $expectedRaw = false; public $accessKey; @@ -80,7 +83,7 @@ class Google_Http_Request */ public function setBaseComponent($baseComponent) { - $this->baseComponent = $baseComponent; + $this->baseComponent = rtrim($baseComponent, '/'); } /** @@ -127,7 +130,7 @@ class Google_Http_Request return $this->queryParams; } - /** + /** * Set a new query parameter. * @param $key - string to set, does not need to be URL encoded * @param $value - string to set, does not need to be URL encoded @@ -189,6 +192,31 @@ class Google_Http_Request } /** + * Enable expected raw response + */ + public function enableExpectedRaw() + { + $this->expectedRaw = true; + } + + /** + * Disable expected raw response + */ + public function disableExpectedRaw() + { + $this->expectedRaw = false; + } + + /** + * Expected raw response or not. + * @return boolean expected raw response + */ + public function getExpectedRaw() + { + return $this->expectedRaw; + } + + /** * @param array $headers The HTTP response headers * to be normalized. */ @@ -413,7 +441,7 @@ class Google_Http_Request /** * Our own version of parse_str that allows for multiple variables - * with the same name. + * with the same name. * @param $string - the query string to parse */ private function parseQuery($string) @@ -437,7 +465,7 @@ class Google_Http_Request /** * A version of build query that allows for multiple - * duplicate keys. + * duplicate keys. * @param $parts array of key value pairs */ private function buildQuery($parts) @@ -455,7 +483,7 @@ class Google_Http_Request return implode('&', $return); } - /** + /** * If we're POSTing and have no body to send, we can send the query * parameters in there, which avoids length issues with longer query * params. diff --git a/apps/files_external/3rdparty/google-api-php-client/src/Google/IO/Abstract.php b/apps/files_external/3rdparty/google-api-php-client/src/Google/IO/Abstract.php index a4025e874ad..34a3fc5cdf3 100644 --- a/apps/files_external/3rdparty/google-api-php-client/src/Google/IO/Abstract.php +++ b/apps/files_external/3rdparty/google-api-php-client/src/Google/IO/Abstract.php @@ -19,10 +19,9 @@ * Abstract IO base class */ -require_once 'Google/Client.php'; -require_once 'Google/IO/Exception.php'; -require_once 'Google/Http/CacheParser.php'; -require_once 'Google/Http/Request.php'; +if (!class_exists('Google_Client')) { + require_once dirname(__FILE__) . '/../autoload.php'; +} abstract class Google_IO_Abstract { @@ -33,6 +32,17 @@ abstract class Google_IO_Abstract "HTTP/1.1 200 Connection established\r\n\r\n", ); private static $ENTITY_HTTP_METHODS = array("POST" => null, "PUT" => null); + private static $HOP_BY_HOP = array( + 'connection' => true, + 'keep-alive' => true, + 'proxy-authenticate' => true, + 'proxy-authorization' => true, + 'te' => true, + 'trailers' => true, + 'transfer-encoding' => true, + 'upgrade' => true + ); + /** @var Google_Client */ protected $client; @@ -47,9 +57,10 @@ abstract class Google_IO_Abstract } /** - * Executes a Google_Http_Request and returns the resulting populated Google_Http_Request - * @param Google_Http_Request $request - * @return Google_Http_Request $request + * Executes a Google_Http_Request + * @param Google_Http_Request $request the http request to be executed + * @return array containing response headers, body, and http code + * @throws Google_IO_Exception on curl or IO error */ abstract public function executeRequest(Google_Http_Request $request); @@ -58,13 +69,13 @@ abstract class Google_IO_Abstract * @param $options */ abstract public function setOptions($options); - + /** * Set the maximum request time in seconds. * @param $timeout in seconds */ abstract public function setTimeout($timeout); - + /** * Get the maximum request time in seconds. * @return timeout in seconds @@ -99,12 +110,12 @@ abstract class Google_IO_Abstract return false; } - + /** * Execute an HTTP Request * - * @param Google_HttpRequest $request the http request to be executed - * @return Google_HttpRequest http request with the response http code, + * @param Google_Http_Request $request the http request to be executed + * @return Google_Http_Request http request with the response http code, * response headers and response body filled in * @throws Google_IO_Exception on curl or IO error */ @@ -131,7 +142,7 @@ abstract class Google_IO_Abstract } if (!isset($responseHeaders['Date']) && !isset($responseHeaders['date'])) { - $responseHeaders['Date'] = date("r"); + $responseHeaders['date'] = date("r"); } $request->setResponseHttpCode($respHttpCode); @@ -219,28 +230,24 @@ abstract class Google_IO_Abstract /** * Update a cached request, using the headers from the last response. - * @param Google_HttpRequest $cached A previously cached response. + * @param Google_Http_Request $cached A previously cached response. * @param mixed Associative array of response headers from the last request. */ protected function updateCachedRequest($cached, $responseHeaders) { - if (isset($responseHeaders['connection'])) { - $hopByHop = array_merge( - self::$HOP_BY_HOP, - explode( - ',', - $responseHeaders['connection'] + $hopByHop = self::$HOP_BY_HOP; + if (!empty($responseHeaders['connection'])) { + $connectionHeaders = array_map( + 'strtolower', + array_filter( + array_map('trim', explode(',', $responseHeaders['connection'])) ) ); - - $endToEnd = array(); - foreach ($hopByHop as $key) { - if (isset($responseHeaders[$key])) { - $endToEnd[$key] = $responseHeaders[$key]; - } - } - $cached->setResponseHeaders($endToEnd); + $hopByHop += array_fill_keys($connectionHeaders, true); } + + $endToEnd = array_diff_key($responseHeaders, $hopByHop); + $cached->setResponseHeaders($endToEnd); } /** @@ -323,7 +330,7 @@ abstract class Google_IO_Abstract // Times will have colons in - so we just want the first match. $header_parts = explode(': ', $header, 2); if (count($header_parts) == 2) { - $headers[$header_parts[0]] = $header_parts[1]; + $headers[strtolower($header_parts[0])] = $header_parts[1]; } } diff --git a/apps/files_external/3rdparty/google-api-php-client/src/Google/IO/Curl.php b/apps/files_external/3rdparty/google-api-php-client/src/Google/IO/Curl.php index 57a057114cc..b0e8adb66c1 100644 --- a/apps/files_external/3rdparty/google-api-php-client/src/Google/IO/Curl.php +++ b/apps/files_external/3rdparty/google-api-php-client/src/Google/IO/Curl.php @@ -21,7 +21,9 @@ * @author Stuart Langley <slangley@google.com> */ -require_once 'Google/IO/Abstract.php'; +if (!class_exists('Google_Client')) { + require_once dirname(__FILE__) . '/../autoload.php'; +} class Google_IO_Curl extends Google_IO_Abstract { @@ -29,12 +31,31 @@ class Google_IO_Curl extends Google_IO_Abstract const NO_QUIRK_VERSION = 0x071E00; private $options = array(); + + /** @var bool $disableProxyWorkaround */ + private $disableProxyWorkaround; + + public function __construct(Google_Client $client) + { + if (!extension_loaded('curl')) { + $error = 'The cURL IO handler requires the cURL extension to be enabled'; + $client->getLogger()->critical($error); + throw new Google_IO_Exception($error); + } + + parent::__construct($client); + + $this->disableProxyWorkaround = $this->client->getClassConfig( + 'Google_IO_Curl', + 'disable_proxy_workaround' + ); + } + /** * Execute an HTTP Request * - * @param Google_HttpRequest $request the http request to be executed - * @return Google_HttpRequest http request with the response http code, - * response headers and response body filled in + * @param Google_Http_Request $request the http request to be executed + * @return array containing response headers, body, and http code * @throws Google_IO_Exception on curl or IO error */ public function executeRequest(Google_Http_Request $request) @@ -53,21 +74,30 @@ class Google_IO_Curl extends Google_IO_Abstract } curl_setopt($curl, CURLOPT_HTTPHEADER, $curlHeaders); } - curl_setopt($curl, CURLOPT_URL, $request->getUrl()); - + curl_setopt($curl, CURLOPT_CUSTOMREQUEST, $request->getRequestMethod()); curl_setopt($curl, CURLOPT_USERAGENT, $request->getUserAgent()); curl_setopt($curl, CURLOPT_FOLLOWLOCATION, false); curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, true); + + // The SSL version will be determined by the underlying library + // @see https://github.com/google/google-api-php-client/pull/644 + //curl_setopt($curl, CURLOPT_SSLVERSION, 1); + curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); curl_setopt($curl, CURLOPT_HEADER, true); if ($request->canGzip()) { curl_setopt($curl, CURLOPT_ENCODING, 'gzip,deflate'); } - + + $options = $this->client->getClassConfig('Google_IO_Curl', 'options'); + if (is_array($options)) { + $this->setOptions($options); + } + foreach ($this->options as $key => $var) { curl_setopt($curl, $key, $var); } @@ -76,16 +106,39 @@ class Google_IO_Curl extends Google_IO_Abstract curl_setopt($curl, CURLOPT_CAINFO, dirname(__FILE__) . '/cacerts.pem'); } + $this->client->getLogger()->debug( + 'cURL request', + array( + 'url' => $request->getUrl(), + 'method' => $request->getRequestMethod(), + 'headers' => $requestHeaders, + 'body' => $request->getPostBody() + ) + ); + $response = curl_exec($curl); if ($response === false) { - throw new Google_IO_Exception(curl_error($curl)); + $error = curl_error($curl); + $code = curl_errno($curl); + $map = $this->client->getClassConfig('Google_IO_Exception', 'retry_map'); + + $this->client->getLogger()->error('cURL ' . $error); + throw new Google_IO_Exception($error, $code, null, $map); } $headerSize = curl_getinfo($curl, CURLINFO_HEADER_SIZE); list($responseHeaders, $responseBody) = $this->parseHttpResponse($response, $headerSize); - $responseCode = curl_getinfo($curl, CURLINFO_HTTP_CODE); + $this->client->getLogger()->debug( + 'cURL response', + array( + 'code' => $responseCode, + 'headers' => $responseHeaders, + 'body' => $responseBody, + ) + ); + return array($responseBody, $responseHeaders, $responseCode); } @@ -106,7 +159,7 @@ class Google_IO_Curl extends Google_IO_Abstract { // Since this timeout is really for putting a bound on the time // we'll set them both to the same. If you need to specify a longer - // CURLOPT_TIMEOUT, or a tigher CONNECTTIMEOUT, the best thing to + // CURLOPT_TIMEOUT, or a higher CONNECTTIMEOUT, the best thing to // do is use the setOptions method for the values individually. $this->options[CURLOPT_CONNECTTIMEOUT] = $timeout; $this->options[CURLOPT_TIMEOUT] = $timeout; @@ -130,6 +183,10 @@ class Google_IO_Curl extends Google_IO_Abstract */ protected function needsQuirk() { + if ($this->disableProxyWorkaround) { + return false; + } + $ver = curl_version(); $versionNum = $ver['version_number']; return $versionNum < Google_IO_Curl::NO_QUIRK_VERSION; diff --git a/apps/files_external/3rdparty/google-api-php-client/src/Google/IO/Exception.php b/apps/files_external/3rdparty/google-api-php-client/src/Google/IO/Exception.php index 28c2d8ce645..da9342df389 100644 --- a/apps/files_external/3rdparty/google-api-php-client/src/Google/IO/Exception.php +++ b/apps/files_external/3rdparty/google-api-php-client/src/Google/IO/Exception.php @@ -15,8 +15,55 @@ * limitations under the License. */ -require_once 'Google/Exception.php'; +if (!class_exists('Google_Client')) { + require_once dirname(__FILE__) . '/../autoload.php'; +} -class Google_IO_Exception extends Google_Exception +class Google_IO_Exception extends Google_Exception implements Google_Task_Retryable { + /** + * @var array $retryMap Map of errors with retry counts. + */ + private $retryMap = array(); + + /** + * Creates a new IO exception with an optional retry map. + * + * @param string $message + * @param int $code + * @param Exception|null $previous + * @param array|null $retryMap Map of errors with retry counts. + */ + public function __construct( + $message, + $code = 0, + Exception $previous = null, + array $retryMap = null + ) { + if (version_compare(PHP_VERSION, '5.3.0') >= 0) { + parent::__construct($message, $code, $previous); + } else { + parent::__construct($message, $code); + } + + if (is_array($retryMap)) { + $this->retryMap = $retryMap; + } + } + + /** + * Gets the number of times the associated task can be retried. + * + * NOTE: -1 is returned if the task can be retried indefinitely + * + * @return integer + */ + public function allowedRetries() + { + if (isset($this->retryMap[$this->code])) { + return $this->retryMap[$this->code]; + } + + return 0; + } } diff --git a/apps/files_external/3rdparty/google-api-php-client/src/Google/IO/Stream.php b/apps/files_external/3rdparty/google-api-php-client/src/Google/IO/Stream.php index 917578d87a0..2c5178fdd6a 100644 --- a/apps/files_external/3rdparty/google-api-php-client/src/Google/IO/Stream.php +++ b/apps/files_external/3rdparty/google-api-php-client/src/Google/IO/Stream.php @@ -21,7 +21,9 @@ * @author Stuart Langley <slangley@google.com> */ -require_once 'Google/IO/Abstract.php'; +if (!class_exists('Google_Client')) { + require_once dirname(__FILE__) . '/../autoload.php'; +} class Google_IO_Stream extends Google_IO_Abstract { @@ -40,12 +42,23 @@ class Google_IO_Stream extends Google_IO_Abstract "verify_peer" => true, ); + public function __construct(Google_Client $client) + { + if (!ini_get('allow_url_fopen')) { + $error = 'The stream IO handler requires the allow_url_fopen runtime ' . + 'configuration to be enabled'; + $client->getLogger()->critical($error); + throw new Google_IO_Exception($error); + } + + parent::__construct($client); + } + /** * Execute an HTTP Request * - * @param Google_HttpRequest $request the http request to be executed - * @return Google_HttpRequest http request with the response http code, - * response headers and response body filled in + * @param Google_Http_Request $request the http request to be executed + * @return array containing response headers, body, and http code * @throws Google_IO_Exception on curl or IO error */ public function executeRequest(Google_Http_Request $request) @@ -74,7 +87,7 @@ class Google_IO_Stream extends Google_IO_Abstract $requestSslContext = array_key_exists('ssl', $default_options) ? $default_options['ssl'] : array(); - if (!array_key_exists("cafile", $requestSslContext)) { + if (!$this->client->isAppEngine() && !array_key_exists("cafile", $requestSslContext)) { $requestSslContext["cafile"] = dirname(__FILE__) . '/cacerts.pem'; } @@ -97,6 +110,16 @@ class Google_IO_Stream extends Google_IO_Abstract $url = self::ZLIB . $url; } + $this->client->getLogger()->debug( + 'Stream request', + array( + 'url' => $url, + 'method' => $request->getRequestMethod(), + 'headers' => $requestHeaders, + 'body' => $request->getPostBody() + ) + ); + // We are trapping any thrown errors in this method only and // throwing an exception. $this->trappedErrorNumber = null; @@ -109,13 +132,13 @@ class Google_IO_Stream extends Google_IO_Abstract // END - error trap. if ($this->trappedErrorNumber) { - throw new Google_IO_Exception( - sprintf( - "HTTP Error: Unable to connect: '%s'", - $this->trappedErrorString - ), - $this->trappedErrorNumber + $error = sprintf( + "HTTP Error: Unable to connect: '%s'", + $this->trappedErrorString ); + + $this->client->getLogger()->error('Stream ' . $error); + throw new Google_IO_Exception($error, $this->trappedErrorNumber); } $response_data = false; @@ -132,17 +155,26 @@ class Google_IO_Stream extends Google_IO_Abstract } if (false === $response_data) { - throw new Google_IO_Exception( - sprintf( - "HTTP Error: Unable to connect: '%s'", - $respHttpCode - ), + $error = sprintf( + "HTTP Error: Unable to connect: '%s'", $respHttpCode ); + + $this->client->getLogger()->error('Stream ' . $error); + throw new Google_IO_Exception($error, $respHttpCode); } $responseHeaders = $this->getHttpResponseHeaders($http_response_header); + $this->client->getLogger()->debug( + 'Stream response', + array( + 'code' => $respHttpCode, + 'headers' => $responseHeaders, + 'body' => $response_data, + ) + ); + return array($response_data, $responseHeaders, $respHttpCode); } diff --git a/apps/files_external/3rdparty/google-api-php-client/src/Google/IO/cacerts.pem b/apps/files_external/3rdparty/google-api-php-client/src/Google/IO/cacerts.pem index 79a49289cbe..70990f1f824 100644 --- a/apps/files_external/3rdparty/google-api-php-client/src/Google/IO/cacerts.pem +++ b/apps/files_external/3rdparty/google-api-php-client/src/Google/IO/cacerts.pem @@ -1,135 +1,33 @@ -# Certifcate Authority certificates for validating SSL connections. -# -# This file contains PEM format certificates generated from -# http://mxr.mozilla.org/seamonkey/source/security/nss/lib/ckfw/builtins/certdata.txt -# -# ***** BEGIN LICENSE BLOCK ***** -# Version: MPL 1.1/GPL 2.0/LGPL 2.1 -# -# The contents of this file are subject to the Mozilla Public License Version -# 1.1 (the "License"); you may not use this file except in compliance with -# the License. You may obtain a copy of the License at -# http://www.mozilla.org/MPL/ -# -# Software distributed under the License is distributed on an "AS IS" basis, -# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License -# for the specific language governing rights and limitations under the -# License. -# -# The Original Code is the Netscape security libraries. -# -# The Initial Developer of the Original Code is -# Netscape Communications Corporation. -# Portions created by the Initial Developer are Copyright (C) 1994-2000 -# the Initial Developer. All Rights Reserved. -# -# Contributor(s): -# -# Alternatively, the contents of this file may be used under the terms of -# either the GNU General Public License Version 2 or later (the "GPL"), or -# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), -# in which case the provisions of the GPL or the LGPL are applicable instead -# of those above. If you wish to allow use of your version of this file only -# under the terms of either the GPL or the LGPL, and not to allow others to -# use your version of this file under the terms of the MPL, indicate your -# decision by deleting the provisions above and replace them with the notice -# and other provisions required by the GPL or the LGPL. If you do not delete -# the provisions above, a recipient may use your version of this file under -# the terms of any one of the MPL, the GPL or the LGPL. -# -# ***** END LICENSE BLOCK ***** - -Verisign/RSA Secure Server CA -============================= - ------BEGIN CERTIFICATE----- -MIICNDCCAaECEAKtZn5ORf5eV288mBle3cAwDQYJKoZIhvcNAQECBQAwXzELMAkG -A1UEBhMCVVMxIDAeBgNVBAoTF1JTQSBEYXRhIFNlY3VyaXR5LCBJbmMuMS4wLAYD -VQQLEyVTZWN1cmUgU2VydmVyIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MB4XDTk0 -MTEwOTAwMDAwMFoXDTEwMDEwNzIzNTk1OVowXzELMAkGA1UEBhMCVVMxIDAeBgNV -BAoTF1JTQSBEYXRhIFNlY3VyaXR5LCBJbmMuMS4wLAYDVQQLEyVTZWN1cmUgU2Vy -dmVyIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MIGbMA0GCSqGSIb3DQEBAQUAA4GJ -ADCBhQJ+AJLOesGugz5aqomDV6wlAXYMra6OLDfO6zV4ZFQD5YRAUcm/jwjiioII -0haGN1XpsSECrXZogZoFokvJSyVmIlZsiAeP94FZbYQHZXATcXY+m3dM41CJVphI -uR2nKRoTLkoRWZweFdVJVCxzOmmCsZc5nG1wZ0jl3S3WyB57AgMBAAEwDQYJKoZI -hvcNAQECBQADfgBl3X7hsuyw4jrg7HFGmhkRuNPHoLQDQCYCPgmc4RKz0Vr2N6W3 -YQO2WxZpO8ZECAyIUwxrl0nHPjXcbLm7qt9cuzovk2C2qUtN8iD3zV9/ZHuO3ABc -1/p3yjkWWW8O6tO1g39NTUJWdrTJXwT4OPjr0l91X817/OWOgHz8UA== ------END CERTIFICATE----- - -Thawte Personal Basic CA -======================== - ------BEGIN CERTIFICATE----- -MIIDITCCAoqgAwIBAgIBADANBgkqhkiG9w0BAQQFADCByzELMAkGA1UEBhMCWkEx -FTATBgNVBAgTDFdlc3Rlcm4gQ2FwZTESMBAGA1UEBxMJQ2FwZSBUb3duMRowGAYD -VQQKExFUaGF3dGUgQ29uc3VsdGluZzEoMCYGA1UECxMfQ2VydGlmaWNhdGlvbiBT -ZXJ2aWNlcyBEaXZpc2lvbjEhMB8GA1UEAxMYVGhhd3RlIFBlcnNvbmFsIEJhc2lj -IENBMSgwJgYJKoZIhvcNAQkBFhlwZXJzb25hbC1iYXNpY0B0aGF3dGUuY29tMB4X -DTk2MDEwMTAwMDAwMFoXDTIwMTIzMTIzNTk1OVowgcsxCzAJBgNVBAYTAlpBMRUw -EwYDVQQIEwxXZXN0ZXJuIENhcGUxEjAQBgNVBAcTCUNhcGUgVG93bjEaMBgGA1UE -ChMRVGhhd3RlIENvbnN1bHRpbmcxKDAmBgNVBAsTH0NlcnRpZmljYXRpb24gU2Vy -dmljZXMgRGl2aXNpb24xITAfBgNVBAMTGFRoYXd0ZSBQZXJzb25hbCBCYXNpYyBD -QTEoMCYGCSqGSIb3DQEJARYZcGVyc29uYWwtYmFzaWNAdGhhd3RlLmNvbTCBnzAN -BgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAvLyTU23AUE+CFeZIlDWmWr5vQvoPR+53 -dXLdjUmbllegeNTKP1GzaQuRdhciB5dqxFGTS+CN7zeVoQxN2jSQHReJl+A1OFdK -wPQIcOk8RHtQfmGakOMj04gRRif1CwcOu93RfyAKiLlWCy4cgNrx454p7xS9CkT7 -G1sY0b8jkyECAwEAAaMTMBEwDwYDVR0TAQH/BAUwAwEB/zANBgkqhkiG9w0BAQQF -AAOBgQAt4plrsD16iddZopQBHyvdEktTwq1/qqcAXJFAVyVKOKqEcLnZgA+le1z7 -c8a914phXAPjLSeoF+CEhULcXpvGt7Jtu3Sv5D/Lp7ew4F2+eIMllNLbgQ95B21P -9DkVWlIBe94y1k049hJcBlDfBVu9FEuh3ym6O0GN92NWod8isQ== ------END CERTIFICATE----- - -Thawte Personal Premium CA -========================== - ------BEGIN CERTIFICATE----- -MIIDKTCCApKgAwIBAgIBADANBgkqhkiG9w0BAQQFADCBzzELMAkGA1UEBhMCWkEx -FTATBgNVBAgTDFdlc3Rlcm4gQ2FwZTESMBAGA1UEBxMJQ2FwZSBUb3duMRowGAYD -VQQKExFUaGF3dGUgQ29uc3VsdGluZzEoMCYGA1UECxMfQ2VydGlmaWNhdGlvbiBT -ZXJ2aWNlcyBEaXZpc2lvbjEjMCEGA1UEAxMaVGhhd3RlIFBlcnNvbmFsIFByZW1p -dW0gQ0ExKjAoBgkqhkiG9w0BCQEWG3BlcnNvbmFsLXByZW1pdW1AdGhhd3RlLmNv -bTAeFw05NjAxMDEwMDAwMDBaFw0yMDEyMzEyMzU5NTlaMIHPMQswCQYDVQQGEwJa -QTEVMBMGA1UECBMMV2VzdGVybiBDYXBlMRIwEAYDVQQHEwlDYXBlIFRvd24xGjAY -BgNVBAoTEVRoYXd0ZSBDb25zdWx0aW5nMSgwJgYDVQQLEx9DZXJ0aWZpY2F0aW9u -IFNlcnZpY2VzIERpdmlzaW9uMSMwIQYDVQQDExpUaGF3dGUgUGVyc29uYWwgUHJl -bWl1bSBDQTEqMCgGCSqGSIb3DQEJARYbcGVyc29uYWwtcHJlbWl1bUB0aGF3dGUu -Y29tMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDJZtn4B0TPuYwu8KHvE0Vs -Bd/eJxZRNkERbGw77f4QfRKe5ZtCmv5gMcNmt3M6SK5O0DI3lIi1DbbZ8/JE2dWI -Et12TfIa/G8jHnrx2JhFTgcQ7xZC0EN1bUre4qrJMf8fAHB8Zs8QJQi6+u4A6UYD -ZicRFTuqW/KY3TZCstqIdQIDAQABoxMwETAPBgNVHRMBAf8EBTADAQH/MA0GCSqG -SIb3DQEBBAUAA4GBAGk2ifc0KjNyL2071CKyuG+axTZmDhs8obF1Wub9NdP4qPIH -b4Vnjt4rueIXsDqg8A6iAJrf8xQVbrvIhVqYgPn/vnQdPfP+MCXRNzRn+qVxeTBh -KXLA4CxM+1bkOqhv5TJZUtt1KFBZDPgLGeSs2a+WjS9Q2wfD6h+rM+D1KzGJ ------END CERTIFICATE----- - -Thawte Personal Freemail CA -=========================== - ------BEGIN CERTIFICATE----- -MIIDLTCCApagAwIBAgIBADANBgkqhkiG9w0BAQQFADCB0TELMAkGA1UEBhMCWkEx -FTATBgNVBAgTDFdlc3Rlcm4gQ2FwZTESMBAGA1UEBxMJQ2FwZSBUb3duMRowGAYD -VQQKExFUaGF3dGUgQ29uc3VsdGluZzEoMCYGA1UECxMfQ2VydGlmaWNhdGlvbiBT -ZXJ2aWNlcyBEaXZpc2lvbjEkMCIGA1UEAxMbVGhhd3RlIFBlcnNvbmFsIEZyZWVt -YWlsIENBMSswKQYJKoZIhvcNAQkBFhxwZXJzb25hbC1mcmVlbWFpbEB0aGF3dGUu -Y29tMB4XDTk2MDEwMTAwMDAwMFoXDTIwMTIzMTIzNTk1OVowgdExCzAJBgNVBAYT -AlpBMRUwEwYDVQQIEwxXZXN0ZXJuIENhcGUxEjAQBgNVBAcTCUNhcGUgVG93bjEa -MBgGA1UEChMRVGhhd3RlIENvbnN1bHRpbmcxKDAmBgNVBAsTH0NlcnRpZmljYXRp -b24gU2VydmljZXMgRGl2aXNpb24xJDAiBgNVBAMTG1RoYXd0ZSBQZXJzb25hbCBG -cmVlbWFpbCBDQTErMCkGCSqGSIb3DQEJARYccGVyc29uYWwtZnJlZW1haWxAdGhh -d3RlLmNvbTCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEA1GnX1LCUZFtx6UfY -DFG26nKRsIRefS0Nj3sS34UldSh0OkIsYyeflXtL734Zhx2G6qPduc6WZBrCFG5E -rHzmj+hND3EfQDimAKOHePb5lIZererAXnbr2RSjXW56fAylS1V/Bhkpf56aJtVq -uzgkCGqYx7Hao5iR/Xnb5VrEHLkCAwEAAaMTMBEwDwYDVR0TAQH/BAUwAwEB/zAN -BgkqhkiG9w0BAQQFAAOBgQDH7JJ+Tvj1lqVnYiqk8E0RYNBvjWBYYawmu1I1XAjP -MPuoSpaKH2JCI4wXD/S6ZJwXrEcp352YXtJsYHFcoqzceePnbgBHH7UNKOgCneSa -/RP0ptl8sfjcXyMmCZGAc9AUG95DqYMl8uacLxXK/qarigd1iwzdUYRr5PjRznei -gQ== ------END CERTIFICATE----- - -Thawte Server CA -================ +# Issuer: CN=GTE CyberTrust Global Root O=GTE Corporation OU=GTE CyberTrust Solutions, Inc. +# Subject: CN=GTE CyberTrust Global Root O=GTE Corporation OU=GTE CyberTrust Solutions, Inc. +# Label: "GTE CyberTrust Global Root" +# Serial: 421 +# MD5 Fingerprint: ca:3d:d3:68:f1:03:5c:d0:32:fa:b8:2b:59:e8:5a:db +# SHA1 Fingerprint: 97:81:79:50:d8:1c:96:70:cc:34:d8:09:cf:79:44:31:36:7e:f4:74 +# 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 +-----BEGIN CERTIFICATE----- +MIICWjCCAcMCAgGlMA0GCSqGSIb3DQEBBAUAMHUxCzAJBgNVBAYTAlVTMRgwFgYD +VQQKEw9HVEUgQ29ycG9yYXRpb24xJzAlBgNVBAsTHkdURSBDeWJlclRydXN0IFNv +bHV0aW9ucywgSW5jLjEjMCEGA1UEAxMaR1RFIEN5YmVyVHJ1c3QgR2xvYmFsIFJv +b3QwHhcNOTgwODEzMDAyOTAwWhcNMTgwODEzMjM1OTAwWjB1MQswCQYDVQQGEwJV +UzEYMBYGA1UEChMPR1RFIENvcnBvcmF0aW9uMScwJQYDVQQLEx5HVEUgQ3liZXJU +cnVzdCBTb2x1dGlvbnMsIEluYy4xIzAhBgNVBAMTGkdURSBDeWJlclRydXN0IEds +b2JhbCBSb290MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCVD6C28FCc6HrH +iM3dFw4usJTQGz0O9pTAipTHBsiQl8i4ZBp6fmw8U+E3KHNgf7KXUwefU/ltWJTS +r41tiGeA5u2ylc9yMcqlHHK6XALnZELn+aks1joNrI1CqiQBOeacPwGFVw1Yh0X4 +04Wqk2kmhXBIgD8SFcd5tB8FLztimQIDAQABMA0GCSqGSIb3DQEBBAUAA4GBAG3r +GwnpXtlR22ciYaQqPEh346B8pt5zohQDhT37qw4wxYMWM4ETCJ57NE7fQMh017l9 +3PR2VX2bY1QY6fDq81yx2YtCHrnAlU66+tXifPVoYb+O7AWXX1uw16OFNMQkpw0P +lZPvy5TYnh+dXIVtx6quTx8itc2VrbqnzPmrC3p/ +-----END CERTIFICATE----- +# Issuer: CN=Thawte Server CA O=Thawte Consulting cc OU=Certification Services Division +# Subject: CN=Thawte Server CA O=Thawte Consulting cc OU=Certification Services Division +# Label: "Thawte Server CA" +# Serial: 1 +# MD5 Fingerprint: c5:70:c4:a2:ed:53:78:0c:c8:10:53:81:64:cb:d0:1d +# SHA1 Fingerprint: 23:e5:94:94:51:95:f2:41:48:03:b4:d5:64:d2:a3:a3:f5:d8:8b:8c +# 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 -----BEGIN CERTIFICATE----- MIIDEzCCAnygAwIBAgIBATANBgkqhkiG9w0BAQQFADCBxDELMAkGA1UEBhMCWkEx FTATBgNVBAgTDFdlc3Rlcm4gQ2FwZTESMBAGA1UEBxMJQ2FwZSBUb3duMR0wGwYD @@ -150,9 +48,13 @@ QNuozDJ0uW8NxuOzRAvZim+aKZuZGCg70eNAKJpaPNW15yAbi8qkq43pUdniTCxZ qdq5snUb9kLy78fyGPmJvKP/iiMucEc= -----END CERTIFICATE----- -Thawte Premium Server CA -======================== - +# Issuer: CN=Thawte Premium Server CA O=Thawte Consulting cc OU=Certification Services Division +# Subject: CN=Thawte Premium Server CA O=Thawte Consulting cc OU=Certification Services Division +# Label: "Thawte Premium Server CA" +# Serial: 1 +# MD5 Fingerprint: 06:9f:69:79:16:66:90:02:1b:8c:8c:a2:c3:07:6f:3a +# SHA1 Fingerprint: 62:7f:8d:78:27:65:63:99:d2:7d:7f:90:44:c9:fe:b3:f3:3e:fa:9a +# 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 -----BEGIN CERTIFICATE----- MIIDJzCCApCgAwIBAgIBATANBgkqhkiG9w0BAQQFADCBzjELMAkGA1UEBhMCWkEx FTATBgNVBAgTDFdlc3Rlcm4gQ2FwZTESMBAGA1UEBxMJQ2FwZSBUb3duMR0wGwYD @@ -173,9 +75,13 @@ hfzJATj/Tb7yFkJD57taRvvBxhEf8UqwKEbJw8RCfbz6q1lu1bdRiBHjpIUZa4JM pAwSremkrj/xw0llmozFyD4lt5SZu5IycQfwhl7tUCemDaYj+bvLpgcUQg== -----END CERTIFICATE----- -Equifax Secure CA -================= - +# Issuer: O=Equifax OU=Equifax Secure Certificate Authority +# Subject: O=Equifax OU=Equifax Secure Certificate Authority +# Label: "Equifax Secure CA" +# Serial: 903804111 +# MD5 Fingerprint: 67:cb:9d:c0:13:24:8a:82:9b:b2:17:1e:d1:1b:ec:d4 +# SHA1 Fingerprint: d2:32:09:ad:23:d3:14:23:21:74:e4:0d:7f:9d:62:13:97:86:63:3a +# 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 -----BEGIN CERTIFICATE----- MIIDIDCCAomgAwIBAgIENd70zzANBgkqhkiG9w0BAQUFADBOMQswCQYDVQQGEwJV UzEQMA4GA1UEChMHRXF1aWZheDEtMCsGA1UECxMkRXF1aWZheCBTZWN1cmUgQ2Vy @@ -196,46 +102,13 @@ A4GBAFjOKer89961zgK5F7WF0bnj4JXMJTENAKaSbn+2kmOeUJXRmm/kEd5jhW6Y 1voqZiegDfqnc1zqcPGUIWVEX/r87yloqaKHee9570+sB3c4 -----END CERTIFICATE----- -Verisign Class 1 Public Primary Certification Authority -======================================================= - ------BEGIN CERTIFICATE----- -MIICPTCCAaYCEQDNun9W8N/kvFT+IqyzcqpVMA0GCSqGSIb3DQEBAgUAMF8xCzAJ -BgNVBAYTAlVTMRcwFQYDVQQKEw5WZXJpU2lnbiwgSW5jLjE3MDUGA1UECxMuQ2xh -c3MgMSBQdWJsaWMgUHJpbWFyeSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAeFw05 -NjAxMjkwMDAwMDBaFw0yODA4MDEyMzU5NTlaMF8xCzAJBgNVBAYTAlVTMRcwFQYD -VQQKEw5WZXJpU2lnbiwgSW5jLjE3MDUGA1UECxMuQ2xhc3MgMSBQdWJsaWMgUHJp -bWFyeSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTCBnzANBgkqhkiG9w0BAQEFAAOB -jQAwgYkCgYEA5Rm/baNWYS2ZSHH2Z965jeu3noaACpEO+jglr0aIguVzqKCbJF0N -H8xlbgyw0FaEGIeaBpsQoXPftFg5a27B9hXVqKg/qhIGjTGsf7A01480Z4gJzRQR -4k5FVmkfeAKA2txHkSm7NsljXMXg1y2He6G3MrB7MLoqLzGq7qNn2tsCAwEAATAN -BgkqhkiG9w0BAQIFAAOBgQBMP7iLxmjf7kMzDl3ppssHhE16M/+SG/Q2rdiVIjZo -EWx8QszznC7EBz8UsA9P/5CSdvnivErpj82ggAr3xSnxgiJduLHdgSOjeyUVRjB5 -FvjqBUuUfx3CHMjjt/QQQDwTw18fU+hI5Ia0e6E1sHslurjTjqs/OJ0ANACY89Fx -lA== ------END CERTIFICATE----- - -Verisign Class 2 Public Primary Certification Authority -======================================================= - ------BEGIN CERTIFICATE----- -MIICPDCCAaUCEC0b/EoXjaOR6+f/9YtFvgswDQYJKoZIhvcNAQECBQAwXzELMAkG -A1UEBhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMTcwNQYDVQQLEy5DbGFz -cyAyIFB1YmxpYyBQcmltYXJ5IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MB4XDTk2 -MDEyOTAwMDAwMFoXDTI4MDgwMTIzNTk1OVowXzELMAkGA1UEBhMCVVMxFzAVBgNV -BAoTDlZlcmlTaWduLCBJbmMuMTcwNQYDVQQLEy5DbGFzcyAyIFB1YmxpYyBQcmlt -YXJ5IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MIGfMA0GCSqGSIb3DQEBAQUAA4GN -ADCBiQKBgQC2WoujDWojg4BrzzmH9CETMwZMJaLtVRKXxaeAufqDwSCg+i8VDXyh -YGt+eSz6Bg86rvYbb7HS/y8oUl+DfUvEerf4Zh+AVPy3wo5ZShRXRtGak75BkQO7 -FYCTXOvnzAhsPz6zSvz/S2wj1VCCJkQZjiPDceoZJEcEnnW/yKYAHwIDAQABMA0G -CSqGSIb3DQEBAgUAA4GBAIobK/o5wXTXXtgZZKJYSi034DNHD6zt96rbHuSLBlxg -J8pFUs4W7z8GZOeUaHxgMxURaa+dYo2jA1Rrpr7l7gUYYAS/QoD90KioHgE796Nc -r6Pc5iaAIzy4RHT3Cq5Ji2F4zCS/iIqnDupzGUH9TQPwiNHleI2lKk/2lw0Xd8rY ------END CERTIFICATE----- - -Verisign Class 3 Public Primary Certification Authority -======================================================= - +# Issuer: O=VeriSign, Inc. OU=Class 3 Public Primary Certification Authority +# Subject: O=VeriSign, Inc. OU=Class 3 Public Primary Certification Authority +# Label: "Verisign Class 3 Public Primary Certification Authority" +# Serial: 149843929435818692848040365716851702463 +# MD5 Fingerprint: 10:fc:63:5d:f6:26:3e:0d:f3:25:be:5f:79:cd:67:67 +# SHA1 Fingerprint: 74:2c:31:92:e6:07:e4:24:eb:45:49:54:2b:e1:bb:c5:3e:61:74:e2 +# 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 -----BEGIN CERTIFICATE----- MIICPDCCAaUCEHC65B0Q2Sk0tjjKewPMur8wDQYJKoZIhvcNAQECBQAwXzELMAkG A1UEBhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMTcwNQYDVQQLEy5DbGFz @@ -251,55 +124,13 @@ lbwdj2wsqFHMc9ikwFPwTtYmwHYBV4GSXiHx0bH/59AhWM1pF+NEHJwZRDmJXNyc AA9WjQKZ7aKQRUzkuxCkPfAyAw7xzvjoyVGM5mKf5p/AfbdynMk2OmufTqj/ZA1k -----END CERTIFICATE----- -Verisign Class 1 Public Primary Certification Authority - G2 -============================================================ - ------BEGIN CERTIFICATE----- -MIIDAjCCAmsCEEzH6qqYPnHTkxD4PTqJkZIwDQYJKoZIhvcNAQEFBQAwgcExCzAJ -BgNVBAYTAlVTMRcwFQYDVQQKEw5WZXJpU2lnbiwgSW5jLjE8MDoGA1UECxMzQ2xh -c3MgMSBQdWJsaWMgUHJpbWFyeSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSAtIEcy -MTowOAYDVQQLEzEoYykgMTk5OCBWZXJpU2lnbiwgSW5jLiAtIEZvciBhdXRob3Jp -emVkIHVzZSBvbmx5MR8wHQYDVQQLExZWZXJpU2lnbiBUcnVzdCBOZXR3b3JrMB4X -DTk4MDUxODAwMDAwMFoXDTI4MDgwMTIzNTk1OVowgcExCzAJBgNVBAYTAlVTMRcw -FQYDVQQKEw5WZXJpU2lnbiwgSW5jLjE8MDoGA1UECxMzQ2xhc3MgMSBQdWJsaWMg -UHJpbWFyeSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSAtIEcyMTowOAYDVQQLEzEo -YykgMTk5OCBWZXJpU2lnbiwgSW5jLiAtIEZvciBhdXRob3JpemVkIHVzZSBvbmx5 -MR8wHQYDVQQLExZWZXJpU2lnbiBUcnVzdCBOZXR3b3JrMIGfMA0GCSqGSIb3DQEB -AQUAA4GNADCBiQKBgQCq0Lq+Fi24g9TK0g+8djHKlNgdk4xWArzZbxpvUjZudVYK -VdPfQ4chEWWKfo+9Id5rMj8bhDSVBZ1BNeuS65bdqlk/AVNtmU/t5eIqWpDBucSm -Fc/IReumXY6cPvBkJHalzasab7bYe1FhbqZ/h8jit+U03EGI6glAvnOSPWvndQID -AQABMA0GCSqGSIb3DQEBBQUAA4GBAKlPww3HZ74sy9mozS11534Vnjty637rXC0J -h9ZrbWB85a7FkCMMXErQr7Fd88e2CtvgFZMN3QO8x3aKtd1Pw5sTdbgBwObJW2ul -uIncrKTdcu1OofdPvAbT6shkdHvClUGcZXNY8ZCaPGqxmMnEh7zPRW1F4m4iP/68 -DzFc6PLZ ------END CERTIFICATE----- - -Verisign Class 2 Public Primary Certification Authority - G2 -============================================================ - ------BEGIN CERTIFICATE----- -MIIDAzCCAmwCEQC5L2DMiJ+hekYJuFtwbIqvMA0GCSqGSIb3DQEBBQUAMIHBMQsw -CQYDVQQGEwJVUzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xPDA6BgNVBAsTM0Ns -YXNzIDIgUHVibGljIFByaW1hcnkgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkgLSBH -MjE6MDgGA1UECxMxKGMpIDE5OTggVmVyaVNpZ24sIEluYy4gLSBGb3IgYXV0aG9y -aXplZCB1c2Ugb25seTEfMB0GA1UECxMWVmVyaVNpZ24gVHJ1c3QgTmV0d29yazAe -Fw05ODA1MTgwMDAwMDBaFw0yODA4MDEyMzU5NTlaMIHBMQswCQYDVQQGEwJVUzEX -MBUGA1UEChMOVmVyaVNpZ24sIEluYy4xPDA6BgNVBAsTM0NsYXNzIDIgUHVibGlj -IFByaW1hcnkgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkgLSBHMjE6MDgGA1UECxMx -KGMpIDE5OTggVmVyaVNpZ24sIEluYy4gLSBGb3IgYXV0aG9yaXplZCB1c2Ugb25s -eTEfMB0GA1UECxMWVmVyaVNpZ24gVHJ1c3QgTmV0d29yazCBnzANBgkqhkiG9w0B -AQEFAAOBjQAwgYkCgYEAp4gBIXQs5xoD8JjhlzwPIQjxnNuX6Zr8wgQGE75fUsjM -HiwSViy4AWkszJkfrbCWrnkE8hM5wXuYuggs6MKEEyyqaekJ9MepAqRCwiNPStjw -DqL7MWzJ5m+ZJwf15vRMeJ5t60aG+rmGyVTyssSv1EYcWskVMP8NbPUtDm3Of3cC -AwEAATANBgkqhkiG9w0BAQUFAAOBgQByLvl/0fFx+8Se9sVeUYpAmLho+Jscg9ji -nb3/7aHmZuovCfTK1+qlK5X2JGCGTUQug6XELaDTrnhpb3LabK4I8GOSN+a7xDAX -rXfMSTWqz9iP0b63GJZHc2pUIjRkLbYWm1lbtFFZOrMLFPQS32eg9K0yZF6xRnIn -jBJ7xUS0rg== ------END CERTIFICATE----- - -Verisign Class 3 Public Primary Certification Authority - G2 -============================================================ - +# Issuer: O=VeriSign, Inc. OU=Class 3 Public Primary Certification Authority - G2/(c) 1998 VeriSign, Inc. - For authorized use only/VeriSign Trust Network +# Subject: O=VeriSign, Inc. OU=Class 3 Public Primary Certification Authority - G2/(c) 1998 VeriSign, Inc. - For authorized use only/VeriSign Trust Network +# Label: "Verisign Class 3 Public Primary Certification Authority - G2" +# Serial: 167285380242319648451154478808036881606 +# MD5 Fingerprint: a2:33:9b:4c:74:78:73:d4:6c:e7:c1:f3:8d:cb:5c:e9 +# SHA1 Fingerprint: 85:37:1c:a6:e5:50:14:3d:ce:28:03:47:1b:de:3a:09:e8:f8:77:0f +# 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 -----BEGIN CERTIFICATE----- MIIDAjCCAmsCEH3Z/gfPqB63EHln+6eJNMYwDQYJKoZIhvcNAQEFBQAwgcExCzAJ BgNVBAYTAlVTMRcwFQYDVQQKEw5WZXJpU2lnbiwgSW5jLjE8MDoGA1UECxMzQ2xh @@ -320,88 +151,150 @@ F6YM40AIOw7n60RzKprxaZLvcRTDOaxxp5EJb+RxBrO6WVcmeQD2+A2iMzAo1KpY oJ2daZH9 -----END CERTIFICATE----- -Verisign Class 4 Public Primary Certification Authority - G2 -============================================================ +# Issuer: CN=GlobalSign Root CA O=GlobalSign nv-sa OU=Root CA +# Subject: CN=GlobalSign Root CA O=GlobalSign nv-sa OU=Root CA +# Label: "GlobalSign Root CA" +# Serial: 4835703278459707669005204 +# MD5 Fingerprint: 3e:45:52:15:09:51:92:e1:b7:5d:37:9f:b1:87:29:8a +# SHA1 Fingerprint: b1:bc:96:8b:d4:f4:9d:62:2a:a8:9a:81:f2:15:01:52:a4:1d:82:9c +# 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 +-----BEGIN CERTIFICATE----- +MIIDdTCCAl2gAwIBAgILBAAAAAABFUtaw5QwDQYJKoZIhvcNAQEFBQAwVzELMAkG +A1UEBhMCQkUxGTAXBgNVBAoTEEdsb2JhbFNpZ24gbnYtc2ExEDAOBgNVBAsTB1Jv +b3QgQ0ExGzAZBgNVBAMTEkdsb2JhbFNpZ24gUm9vdCBDQTAeFw05ODA5MDExMjAw +MDBaFw0yODAxMjgxMjAwMDBaMFcxCzAJBgNVBAYTAkJFMRkwFwYDVQQKExBHbG9i +YWxTaWduIG52LXNhMRAwDgYDVQQLEwdSb290IENBMRswGQYDVQQDExJHbG9iYWxT +aWduIFJvb3QgQ0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDaDuaZ +jc6j40+Kfvvxi4Mla+pIH/EqsLmVEQS98GPR4mdmzxzdzxtIK+6NiY6arymAZavp +xy0Sy6scTHAHoT0KMM0VjU/43dSMUBUc71DuxC73/OlS8pF94G3VNTCOXkNz8kHp +1Wrjsok6Vjk4bwY8iGlbKk3Fp1S4bInMm/k8yuX9ifUSPJJ4ltbcdG6TRGHRjcdG +snUOhugZitVtbNV4FpWi6cgKOOvyJBNPc1STE4U6G7weNLWLBYy5d4ux2x8gkasJ +U26Qzns3dLlwR5EiUWMWea6xrkEmCMgZK9FGqkjWZCrXgzT/LCrBbBlDSgeF59N8 +9iFo7+ryUp9/k5DPAgMBAAGjQjBAMA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMBAf8E +BTADAQH/MB0GA1UdDgQWBBRge2YaRQ2XyolQL30EzTSo//z9SzANBgkqhkiG9w0B +AQUFAAOCAQEA1nPnfE920I2/7LqivjTFKDK1fPxsnCwrvQmeU79rXqoRSLblCKOz +yj1hTdNGCbM+w6DjY1Ub8rrvrTnhQ7k4o+YviiY776BQVvnGCv04zcQLcFGUl5gE +38NflNUVyRRBnMRddWQVDf9VMOyGj/8N7yy5Y0b2qvzfvGn9LhJIZJrglfCm7ymP +AbEVtQwdpf5pLGkkeB6zpxxxYu7KyJesF12KwvhHhm4qxFYxldBniYUr+WymXUad +DKqC5JlR3XC321Y9YeRq4VzW9v493kHMB65jUr9TU/Qr6cf9tveCX4XSQRjbgbME +HMUfpIBvFSDJ3gyICh3WZlXi/EjJKSZp4A== +-----END CERTIFICATE----- +# Issuer: CN=GlobalSign O=GlobalSign OU=GlobalSign Root CA - R2 +# Subject: CN=GlobalSign O=GlobalSign OU=GlobalSign Root CA - R2 +# Label: "GlobalSign Root CA - R2" +# Serial: 4835703278459682885658125 +# MD5 Fingerprint: 94:14:77:7e:3e:5e:fd:8f:30:bd:41:b0:cf:e7:d0:30 +# SHA1 Fingerprint: 75:e0:ab:b6:13:85:12:27:1c:04:f8:5f:dd:de:38:e4:b7:24:2e:fe +# 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 -----BEGIN CERTIFICATE----- -MIIDAjCCAmsCEDKIjprS9esTR/h/xCA3JfgwDQYJKoZIhvcNAQEFBQAwgcExCzAJ -BgNVBAYTAlVTMRcwFQYDVQQKEw5WZXJpU2lnbiwgSW5jLjE8MDoGA1UECxMzQ2xh -c3MgNCBQdWJsaWMgUHJpbWFyeSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSAtIEcy -MTowOAYDVQQLEzEoYykgMTk5OCBWZXJpU2lnbiwgSW5jLiAtIEZvciBhdXRob3Jp -emVkIHVzZSBvbmx5MR8wHQYDVQQLExZWZXJpU2lnbiBUcnVzdCBOZXR3b3JrMB4X -DTk4MDUxODAwMDAwMFoXDTI4MDgwMTIzNTk1OVowgcExCzAJBgNVBAYTAlVTMRcw -FQYDVQQKEw5WZXJpU2lnbiwgSW5jLjE8MDoGA1UECxMzQ2xhc3MgNCBQdWJsaWMg -UHJpbWFyeSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSAtIEcyMTowOAYDVQQLEzEo -YykgMTk5OCBWZXJpU2lnbiwgSW5jLiAtIEZvciBhdXRob3JpemVkIHVzZSBvbmx5 -MR8wHQYDVQQLExZWZXJpU2lnbiBUcnVzdCBOZXR3b3JrMIGfMA0GCSqGSIb3DQEB -AQUAA4GNADCBiQKBgQC68OTP+cSuhVS5B1f5j8V/aBH4xBewRNzjMHPVKmIquNDM -HO0oW369atyzkSTKQWI8/AIBvxwWMZQFl3Zuoq29YRdsTjCG8FE3KlDHqGKB3FtK -qsGgtG7rL+VXxbErQHDbWk2hjh+9Ax/YA9SPTJlxvOKCzFjomDqG04Y48wApHwID -AQABMA0GCSqGSIb3DQEBBQUAA4GBAIWMEsGnuVAVess+rLhDityq3RS6iYF+ATwj -cSGIL4LcY/oCRaxFWdcqWERbt5+BO5JoPeI3JPV7bI92NZYJqFmduc4jq3TWg/0y -cyfYaT5DdPauxYma51N86Xv2S/PBZYPejYqcPIiNOVn8qj8ijaHBZlCBckztImRP -T8qAkbYp +MIIDujCCAqKgAwIBAgILBAAAAAABD4Ym5g0wDQYJKoZIhvcNAQEFBQAwTDEgMB4G +A1UECxMXR2xvYmFsU2lnbiBSb290IENBIC0gUjIxEzARBgNVBAoTCkdsb2JhbFNp +Z24xEzARBgNVBAMTCkdsb2JhbFNpZ24wHhcNMDYxMjE1MDgwMDAwWhcNMjExMjE1 +MDgwMDAwWjBMMSAwHgYDVQQLExdHbG9iYWxTaWduIFJvb3QgQ0EgLSBSMjETMBEG +A1UEChMKR2xvYmFsU2lnbjETMBEGA1UEAxMKR2xvYmFsU2lnbjCCASIwDQYJKoZI +hvcNAQEBBQADggEPADCCAQoCggEBAKbPJA6+Lm8omUVCxKs+IVSbC9N/hHD6ErPL +v4dfxn+G07IwXNb9rfF73OX4YJYJkhD10FPe+3t+c4isUoh7SqbKSaZeqKeMWhG8 +eoLrvozps6yWJQeXSpkqBy+0Hne/ig+1AnwblrjFuTosvNYSuetZfeLQBoZfXklq +tTleiDTsvHgMCJiEbKjNS7SgfQx5TfC4LcshytVsW33hoCmEofnTlEnLJGKRILzd +C9XZzPnqJworc5HGnRusyMvo4KD0L5CLTfuwNhv2GXqF4G3yYROIXJ/gkwpRl4pa +zq+r1feqCapgvdzZX99yqWATXgAByUr6P6TqBwMhAo6CygPCm48CAwEAAaOBnDCB +mTAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUm+IH +V2ccHsBqBt5ZtJot39wZhi4wNgYDVR0fBC8wLTAroCmgJ4YlaHR0cDovL2NybC5n +bG9iYWxzaWduLm5ldC9yb290LXIyLmNybDAfBgNVHSMEGDAWgBSb4gdXZxwewGoG +3lm0mi3f3BmGLjANBgkqhkiG9w0BAQUFAAOCAQEAmYFThxxol4aR7OBKuEQLq4Gs +J0/WwbgcQ3izDJr86iw8bmEbTUsp9Z8FHSbBuOmDAGJFtqkIk7mpM0sYmsL4h4hO +291xNBrBVNpGP+DTKqttVCL1OmLNIG+6KYnX3ZHu01yiPqFbQfXf5WRDLenVOavS +ot+3i9DAgBkcRcAtjOj4LaR0VknFBbVPFd5uRHg5h6h+u/N5GJG79G+dwfCMNYxd +AfvDbbnvRG15RjF+Cv6pgsH/76tuIMRQyV+dTZsXjAzlAcmgQWpzU/qlULRuJQ/7 +TBj0/VLZjmmx6BEP3ojY+x1J96relc8geMJgEtslQIxq/H5COEBkEveegeGTLg== -----END CERTIFICATE----- -Verisign Class 1 Public Primary Certification Authority - G3 -============================================================ +# Issuer: CN=http://www.valicert.com/ O=ValiCert, Inc. OU=ValiCert Class 1 Policy Validation Authority +# Subject: CN=http://www.valicert.com/ O=ValiCert, Inc. OU=ValiCert Class 1 Policy Validation Authority +# Label: "ValiCert Class 1 VA" +# Serial: 1 +# MD5 Fingerprint: 65:58:ab:15:ad:57:6c:1e:a8:a7:b5:69:ac:bf:ff:eb +# SHA1 Fingerprint: e5:df:74:3c:b6:01:c4:9b:98:43:dc:ab:8c:e8:6a:81:10:9f:e4:8e +# 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 +-----BEGIN CERTIFICATE----- +MIIC5zCCAlACAQEwDQYJKoZIhvcNAQEFBQAwgbsxJDAiBgNVBAcTG1ZhbGlDZXJ0 +IFZhbGlkYXRpb24gTmV0d29yazEXMBUGA1UEChMOVmFsaUNlcnQsIEluYy4xNTAz +BgNVBAsTLFZhbGlDZXJ0IENsYXNzIDEgUG9saWN5IFZhbGlkYXRpb24gQXV0aG9y +aXR5MSEwHwYDVQQDExhodHRwOi8vd3d3LnZhbGljZXJ0LmNvbS8xIDAeBgkqhkiG +9w0BCQEWEWluZm9AdmFsaWNlcnQuY29tMB4XDTk5MDYyNTIyMjM0OFoXDTE5MDYy +NTIyMjM0OFowgbsxJDAiBgNVBAcTG1ZhbGlDZXJ0IFZhbGlkYXRpb24gTmV0d29y +azEXMBUGA1UEChMOVmFsaUNlcnQsIEluYy4xNTAzBgNVBAsTLFZhbGlDZXJ0IENs +YXNzIDEgUG9saWN5IFZhbGlkYXRpb24gQXV0aG9yaXR5MSEwHwYDVQQDExhodHRw +Oi8vd3d3LnZhbGljZXJ0LmNvbS8xIDAeBgkqhkiG9w0BCQEWEWluZm9AdmFsaWNl +cnQuY29tMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDYWYJ6ibiWuqYvaG9Y +LqdUHAZu9OqNSLwxlBfw8068srg1knaw0KWlAdcAAxIiGQj4/xEjm84H9b9pGib+ +TunRf50sQB1ZaG6m+FiwnRqP0z/x3BkGgagO4DrdyFNFCQbmD3DD+kCmDuJWBQ8Y +TfwggtFzVXSNdnKgHZ0dwN0/cQIDAQABMA0GCSqGSIb3DQEBBQUAA4GBAFBoPUn0 +LBwGlN+VYH+Wexf+T3GtZMjdd9LvWVXoP+iOBSoh8gfStadS/pyxtuJbdxdA6nLW +I8sogTLDAHkY7FkXicnGah5xyf23dKUlRWnFSKsZ4UWKJWsZ7uW7EvV/96aNUcPw +nXS3qT6gpf+2SQMT2iLM7XGCK5nPOrf1LXLI +-----END CERTIFICATE----- +# Issuer: CN=http://www.valicert.com/ O=ValiCert, Inc. OU=ValiCert Class 2 Policy Validation Authority +# Subject: CN=http://www.valicert.com/ O=ValiCert, Inc. OU=ValiCert Class 2 Policy Validation Authority +# Label: "ValiCert Class 2 VA" +# Serial: 1 +# MD5 Fingerprint: a9:23:75:9b:ba:49:36:6e:31:c2:db:f2:e7:66:ba:87 +# SHA1 Fingerprint: 31:7a:2a:d0:7f:2b:33:5e:f5:a1:c3:4e:4b:57:e8:b7:d8:f1:fc:a6 +# 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 -----BEGIN CERTIFICATE----- -MIIEGjCCAwICEQCLW3VWhFSFCwDPrzhIzrGkMA0GCSqGSIb3DQEBBQUAMIHKMQsw -CQYDVQQGEwJVUzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xHzAdBgNVBAsTFlZl -cmlTaWduIFRydXN0IE5ldHdvcmsxOjA4BgNVBAsTMShjKSAxOTk5IFZlcmlTaWdu -LCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxRTBDBgNVBAMTPFZlcmlT -aWduIENsYXNzIDEgUHVibGljIFByaW1hcnkgQ2VydGlmaWNhdGlvbiBBdXRob3Jp -dHkgLSBHMzAeFw05OTEwMDEwMDAwMDBaFw0zNjA3MTYyMzU5NTlaMIHKMQswCQYD -VQQGEwJVUzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xHzAdBgNVBAsTFlZlcmlT -aWduIFRydXN0IE5ldHdvcmsxOjA4BgNVBAsTMShjKSAxOTk5IFZlcmlTaWduLCBJ -bmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxRTBDBgNVBAMTPFZlcmlTaWdu -IENsYXNzIDEgUHVibGljIFByaW1hcnkgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkg -LSBHMzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAN2E1Lm0+afY8wR4 -nN493GwTFtl63SRRZsDHJlkNrAYIwpTRMx/wgzUfbhvI3qpuFU5UJ+/EbRrsC+MO -8ESlV8dAWB6jRx9x7GD2bZTIGDnt/kIYVt/kTEkQeE4BdjVjEjbdZrwBBDajVWjV -ojYJrKshJlQGrT/KFOCsyq0GHZXi+J3x4GD/wn91K0zM2v6HmSHquv4+VNfSWXjb -PG7PoBMAGrgnoeS+Z5bKoMWznN3JdZ7rMJpfo83ZrngZPyPpXNspva1VyBtUjGP2 -6KbqxzcSXKMpHgLZ2x87tNcPVkeBFQRKr4Mn0cVYiMHd9qqnoxjaaKptEVHhv2Vr -n5Z20T0CAwEAATANBgkqhkiG9w0BAQUFAAOCAQEAq2aN17O6x5q25lXQBfGfMY1a -qtmqRiYPce2lrVNWYgFHKkTp/j90CxObufRNG7LRX7K20ohcs5/Ny9Sn2WCVhDr4 -wTcdYcrnsMXlkdpUpqwxga6X3s0IrLjAl4B/bnKk52kTlWUfxJM8/XmPBNQ+T+r3 -ns7NZ3xPZQL/kYVUc8f/NveGLezQXk//EZ9yBta4GvFMDSZl4kSAHsef493oCtrs -pSCAaWihT37ha88HQfqDjrw43bAuEbFrskLMmrz5SCJ5ShkPshw+IHTZasO+8ih4 -E1Z5T21Q6huwtVexN2ZYI/PcD98Kh8TvhgXVOBRgmaNL3gaWcSzy27YfpO8/7g== ------END CERTIFICATE----- - -Verisign Class 2 Public Primary Certification Authority - G3 -============================================================ - ------BEGIN CERTIFICATE----- -MIIEGTCCAwECEGFwy0mMX5hFKeewptlQW3owDQYJKoZIhvcNAQEFBQAwgcoxCzAJ -BgNVBAYTAlVTMRcwFQYDVQQKEw5WZXJpU2lnbiwgSW5jLjEfMB0GA1UECxMWVmVy -aVNpZ24gVHJ1c3QgTmV0d29yazE6MDgGA1UECxMxKGMpIDE5OTkgVmVyaVNpZ24s -IEluYy4gLSBGb3IgYXV0aG9yaXplZCB1c2Ugb25seTFFMEMGA1UEAxM8VmVyaVNp -Z24gQ2xhc3MgMiBQdWJsaWMgUHJpbWFyeSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0 -eSAtIEczMB4XDTk5MTAwMTAwMDAwMFoXDTM2MDcxNjIzNTk1OVowgcoxCzAJBgNV -BAYTAlVTMRcwFQYDVQQKEw5WZXJpU2lnbiwgSW5jLjEfMB0GA1UECxMWVmVyaVNp -Z24gVHJ1c3QgTmV0d29yazE6MDgGA1UECxMxKGMpIDE5OTkgVmVyaVNpZ24sIElu -Yy4gLSBGb3IgYXV0aG9yaXplZCB1c2Ugb25seTFFMEMGA1UEAxM8VmVyaVNpZ24g -Q2xhc3MgMiBQdWJsaWMgUHJpbWFyeSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSAt -IEczMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEArwoNwtUs22e5LeWU -J92lvuCwTY+zYVY81nzD9M0+hsuiiOLh2KRpxbXiv8GmR1BeRjmL1Za6tW8UvxDO -JxOeBUebMXoT2B/Z0wI3i60sR/COgQanDTAM6/c8DyAd3HJG7qUCyFvDyVZpTMUY -wZF7C9UTAJu878NIPkZgIIUq1ZC2zYugzDLdt/1AVbJQHFauzI13TccgTacxdu9o -koqQHgiBVrKtaaNS0MscxCM9H5n+TOgWY47GCI72MfbS+uV23bUckqNJzc0BzWjN -qWm6o+sdDZykIKbBoMXRRkwXbdKsZj+WjOCE1Db/IlnF+RFgqF8EffIa9iVCYQ/E -Srg+iQIDAQABMA0GCSqGSIb3DQEBBQUAA4IBAQA0JhU8wI1NQ0kdvekhktdmnLfe -xbjQ5F1fdiLAJvmEOjr5jLX77GDx6M4EsMjdpwOPMPOY36TmpDHf0xwLRtxyID+u -7gU8pDM/CzmscHhzS5kr3zDCVLCoO1Wh/hYozUK9dG6A2ydEp85EXdQbkJgNHkKU -sQAsBNB0owIFImNjzYO1+8FtYmtpdf1dcEG59b98377BMnMiIYtYgXsVkXq642RI -sH/7NiXaldDxJBQX3RiAa0YjOVT1jmIJBB2UkKab5iXiQkWquJCtvgiPqQtCGJTP -cjnhsUPgKM+351psE2tJs//jGHyJizNdrDPXp/naOlXJWBD5qu9ats9LS98q ------END CERTIFICATE----- - -Verisign Class 3 Public Primary Certification Authority - G3 -============================================================ +MIIC5zCCAlACAQEwDQYJKoZIhvcNAQEFBQAwgbsxJDAiBgNVBAcTG1ZhbGlDZXJ0 +IFZhbGlkYXRpb24gTmV0d29yazEXMBUGA1UEChMOVmFsaUNlcnQsIEluYy4xNTAz +BgNVBAsTLFZhbGlDZXJ0IENsYXNzIDIgUG9saWN5IFZhbGlkYXRpb24gQXV0aG9y +aXR5MSEwHwYDVQQDExhodHRwOi8vd3d3LnZhbGljZXJ0LmNvbS8xIDAeBgkqhkiG +9w0BCQEWEWluZm9AdmFsaWNlcnQuY29tMB4XDTk5MDYyNjAwMTk1NFoXDTE5MDYy +NjAwMTk1NFowgbsxJDAiBgNVBAcTG1ZhbGlDZXJ0IFZhbGlkYXRpb24gTmV0d29y +azEXMBUGA1UEChMOVmFsaUNlcnQsIEluYy4xNTAzBgNVBAsTLFZhbGlDZXJ0IENs +YXNzIDIgUG9saWN5IFZhbGlkYXRpb24gQXV0aG9yaXR5MSEwHwYDVQQDExhodHRw +Oi8vd3d3LnZhbGljZXJ0LmNvbS8xIDAeBgkqhkiG9w0BCQEWEWluZm9AdmFsaWNl +cnQuY29tMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDOOnHK5avIWZJV16vY +dA757tn2VUdZZUcOBVXc65g2PFxTXdMwzzjsvUGJ7SVCCSRrCl6zfN1SLUzm1NZ9 +WlmpZdRJEy0kTRxQb7XBhVQ7/nHk01xC+YDgkRoKWzk2Z/M/VXwbP7RfZHM047QS +v4dk+NoS/zcnwbNDu+97bi5p9wIDAQABMA0GCSqGSIb3DQEBBQUAA4GBADt/UG9v +UJSZSWI4OB9L+KXIPqeCgfYrx+jFzug6EILLGACOTb2oWH+heQC1u+mNr0HZDzTu +IYEZoDJJKPTEjlbVUjP9UNV+mWwD5MlM/Mtsq2azSiGM5bUMMj4QssxsodyamEwC +W/POuZ6lcg5Ktz885hZo+L7tdEy8W9ViH0Pd +-----END CERTIFICATE----- +# Issuer: CN=http://www.valicert.com/ O=ValiCert, Inc. OU=ValiCert Class 3 Policy Validation Authority +# Subject: CN=http://www.valicert.com/ O=ValiCert, Inc. OU=ValiCert Class 3 Policy Validation Authority +# Label: "RSA Root Certificate 1" +# Serial: 1 +# MD5 Fingerprint: a2:6f:53:b7:ee:40:db:4a:68:e7:fa:18:d9:10:4b:72 +# SHA1 Fingerprint: 69:bd:8c:f4:9c:d3:00:fb:59:2e:17:93:ca:55:6a:f3:ec:aa:35:fb +# 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 +-----BEGIN CERTIFICATE----- +MIIC5zCCAlACAQEwDQYJKoZIhvcNAQEFBQAwgbsxJDAiBgNVBAcTG1ZhbGlDZXJ0 +IFZhbGlkYXRpb24gTmV0d29yazEXMBUGA1UEChMOVmFsaUNlcnQsIEluYy4xNTAz +BgNVBAsTLFZhbGlDZXJ0IENsYXNzIDMgUG9saWN5IFZhbGlkYXRpb24gQXV0aG9y +aXR5MSEwHwYDVQQDExhodHRwOi8vd3d3LnZhbGljZXJ0LmNvbS8xIDAeBgkqhkiG +9w0BCQEWEWluZm9AdmFsaWNlcnQuY29tMB4XDTk5MDYyNjAwMjIzM1oXDTE5MDYy +NjAwMjIzM1owgbsxJDAiBgNVBAcTG1ZhbGlDZXJ0IFZhbGlkYXRpb24gTmV0d29y +azEXMBUGA1UEChMOVmFsaUNlcnQsIEluYy4xNTAzBgNVBAsTLFZhbGlDZXJ0IENs +YXNzIDMgUG9saWN5IFZhbGlkYXRpb24gQXV0aG9yaXR5MSEwHwYDVQQDExhodHRw +Oi8vd3d3LnZhbGljZXJ0LmNvbS8xIDAeBgkqhkiG9w0BCQEWEWluZm9AdmFsaWNl +cnQuY29tMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDjmFGWHOjVsQaBalfD +cnWTq8+epvzzFlLWLU2fNUSoLgRNB0mKOCn1dzfnt6td3zZxFJmP3MKS8edgkpfs +2Ejcv8ECIMYkpChMMFp2bbFc893enhBxoYjHW5tBbcqwuI4V7q0zK89HBFx1cQqY +JJgpp0lZpd34t0NiYfPT4tBVPwIDAQABMA0GCSqGSIb3DQEBBQUAA4GBAFa7AliE +Zwgs3x/be0kz9dNnnfS0ChCzycUs4pJqcXgn8nCDQtM+z6lU9PHYkhaM0QTLS6vJ +n0WuPIqpsHEzXcjFV9+vqDWzf4mH6eglkrh/hXqu1rweN1gqZ8mRzyqBPu3GOd/A +PhmcGcwTTYJBtYze4D1gCCAPRX5ron+jjBXu +-----END CERTIFICATE----- + +# 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 +# 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 +# Label: "Verisign Class 3 Public Primary Certification Authority - G3" +# Serial: 206684696279472310254277870180966723415 +# MD5 Fingerprint: cd:68:b6:a7:c7:c4:ce:75:e0:1d:4f:57:44:61:92:09 +# SHA1 Fingerprint: 13:2d:0d:45:53:4b:69:97:cd:b2:d5:c3:39:e2:55:76:60:9b:5c:c6 +# 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 -----BEGIN CERTIFICATE----- MIIEGjCCAwICEQCbfgZJoz5iudXukEhxKe9XMA0GCSqGSIb3DQEBBQUAMIHKMQsw CQYDVQQGEwJVUzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xHzAdBgNVBAsTFlZl @@ -427,9 +320,13 @@ F4ErWjfJXir0xuKhXFSbplQAz/DxwceYMBo7Nhbbo27q/a2ywtrvAkcTisDxszGt TxzhT5yvDwyd93gN2PQ1VoDat20Xj50egWTh/sVFuq1ruQp6Tk9LhO5L8X3dEQ== -----END CERTIFICATE----- -Verisign Class 4 Public Primary Certification Authority - G3 -============================================================ - +# 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 +# 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 +# Label: "Verisign Class 4 Public Primary Certification Authority - G3" +# Serial: 314531972711909413743075096039378935511 +# MD5 Fingerprint: db:c8:f2:27:2e:b1:ea:6a:29:23:5d:fe:56:3e:33:df +# SHA1 Fingerprint: c8:ec:8c:87:92:69:cb:4b:ab:39:e9:8d:7e:57:67:f3:14:95:73:9d +# 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 -----BEGIN CERTIFICATE----- MIIEGjCCAwICEQDsoKeLbnVqAc/EfMwvlF7XMA0GCSqGSIb3DQEBBQUAMIHKMQsw CQYDVQQGEwJVUzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xHzAdBgNVBAsTFlZl @@ -455,9 +352,112 @@ fjaF3H48ZwC15DtS4KjrXRX5xm3wrR0OhbepmnMUWluPQSjA1egtTaRezarZ7c7c bLvSHgCwIe34QWKCudiyxLtGUPMxxY8BqHTr9Xgn2uf3ZkPznoM+IKrDNWCRzg== -----END CERTIFICATE----- -Equifax Secure Global eBusiness CA -================================== +# 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 +# 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 +# Label: "Entrust.net Secure Server CA" +# Serial: 927650371 +# MD5 Fingerprint: df:f2:80:73:cc:f1:e6:61:73:fc:f5:42:e9:c5:7c:ee +# SHA1 Fingerprint: 99:a6:9b:e6:1a:fe:88:6b:4d:2b:82:00:7c:b8:54:fc:31:7e:15:39 +# 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 +-----BEGIN CERTIFICATE----- +MIIE2DCCBEGgAwIBAgIEN0rSQzANBgkqhkiG9w0BAQUFADCBwzELMAkGA1UEBhMC +VVMxFDASBgNVBAoTC0VudHJ1c3QubmV0MTswOQYDVQQLEzJ3d3cuZW50cnVzdC5u +ZXQvQ1BTIGluY29ycC4gYnkgcmVmLiAobGltaXRzIGxpYWIuKTElMCMGA1UECxMc +KGMpIDE5OTkgRW50cnVzdC5uZXQgTGltaXRlZDE6MDgGA1UEAxMxRW50cnVzdC5u +ZXQgU2VjdXJlIFNlcnZlciBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAeFw05OTA1 +MjUxNjA5NDBaFw0xOTA1MjUxNjM5NDBaMIHDMQswCQYDVQQGEwJVUzEUMBIGA1UE +ChMLRW50cnVzdC5uZXQxOzA5BgNVBAsTMnd3dy5lbnRydXN0Lm5ldC9DUFMgaW5j +b3JwLiBieSByZWYuIChsaW1pdHMgbGlhYi4pMSUwIwYDVQQLExwoYykgMTk5OSBF +bnRydXN0Lm5ldCBMaW1pdGVkMTowOAYDVQQDEzFFbnRydXN0Lm5ldCBTZWN1cmUg +U2VydmVyIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MIGdMA0GCSqGSIb3DQEBAQUA +A4GLADCBhwKBgQDNKIM0VBuJ8w+vN5Ex/68xYMmo6LIQaO2f55M28Qpku0f1BBc/ +I0dNxScZgSYMVHINiC3ZH5oSn7yzcdOAGT9HZnuMNSjSuQrfJNqc1lB5gXpa0zf3 +wkrYKZImZNHkmGw6AIr1NJtl+O3jEP/9uElY3KDegjlrgbEWGWG5VLbmQwIBA6OC +AdcwggHTMBEGCWCGSAGG+EIBAQQEAwIABzCCARkGA1UdHwSCARAwggEMMIHeoIHb +oIHYpIHVMIHSMQswCQYDVQQGEwJVUzEUMBIGA1UEChMLRW50cnVzdC5uZXQxOzA5 +BgNVBAsTMnd3dy5lbnRydXN0Lm5ldC9DUFMgaW5jb3JwLiBieSByZWYuIChsaW1p +dHMgbGlhYi4pMSUwIwYDVQQLExwoYykgMTk5OSBFbnRydXN0Lm5ldCBMaW1pdGVk +MTowOAYDVQQDEzFFbnRydXN0Lm5ldCBTZWN1cmUgU2VydmVyIENlcnRpZmljYXRp +b24gQXV0aG9yaXR5MQ0wCwYDVQQDEwRDUkwxMCmgJ6AlhiNodHRwOi8vd3d3LmVu +dHJ1c3QubmV0L0NSTC9uZXQxLmNybDArBgNVHRAEJDAigA8xOTk5MDUyNTE2MDk0 +MFqBDzIwMTkwNTI1MTYwOTQwWjALBgNVHQ8EBAMCAQYwHwYDVR0jBBgwFoAU8Bdi +E1U9s/8KAGv7UISX8+1i0BowHQYDVR0OBBYEFPAXYhNVPbP/CgBr+1CEl/PtYtAa +MAwGA1UdEwQFMAMBAf8wGQYJKoZIhvZ9B0EABAwwChsEVjQuMAMCBJAwDQYJKoZI +hvcNAQEFBQADgYEAkNwwAvpkdMKnCqV8IY00F6j7Rw7/JXyNEwr75Ji174z4xRAN +95K+8cPV1ZVqBLssziY2ZcgxxufuP+NXdYR6Ee9GTxj005i7qIcyunL2POI9n9cd +2cNgQ4xYDiKWL2KjLB+6rQXvqzJ4h6BUcxm1XAX5Uj5tLUUL9wqT6u0G+bI= +-----END CERTIFICATE----- +# 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 +# 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 +# Label: "Entrust.net Premium 2048 Secure Server CA" +# Serial: 946059622 +# MD5 Fingerprint: ba:21:ea:20:d6:dd:db:8f:c1:57:8b:40:ad:a1:fc:fc +# SHA1 Fingerprint: 80:1d:62:d0:7b:44:9d:5c:5c:03:5c:98:ea:61:fa:44:3c:2a:58:fe +# 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 +-----BEGIN CERTIFICATE----- +MIIEXDCCA0SgAwIBAgIEOGO5ZjANBgkqhkiG9w0BAQUFADCBtDEUMBIGA1UEChML +RW50cnVzdC5uZXQxQDA+BgNVBAsUN3d3dy5lbnRydXN0Lm5ldC9DUFNfMjA0OCBp +bmNvcnAuIGJ5IHJlZi4gKGxpbWl0cyBsaWFiLikxJTAjBgNVBAsTHChjKSAxOTk5 +IEVudHJ1c3QubmV0IExpbWl0ZWQxMzAxBgNVBAMTKkVudHJ1c3QubmV0IENlcnRp +ZmljYXRpb24gQXV0aG9yaXR5ICgyMDQ4KTAeFw05OTEyMjQxNzUwNTFaFw0xOTEy +MjQxODIwNTFaMIG0MRQwEgYDVQQKEwtFbnRydXN0Lm5ldDFAMD4GA1UECxQ3d3d3 +LmVudHJ1c3QubmV0L0NQU18yMDQ4IGluY29ycC4gYnkgcmVmLiAobGltaXRzIGxp +YWIuKTElMCMGA1UECxMcKGMpIDE5OTkgRW50cnVzdC5uZXQgTGltaXRlZDEzMDEG +A1UEAxMqRW50cnVzdC5uZXQgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkgKDIwNDgp +MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEArU1LqRKGsuqjIAcVFmQq +K0vRvwtKTY7tgHalZ7d4QMBzQshowNtTK91euHaYNZOLGp18EzoOH1u3Hs/lJBQe +sYGpjX24zGtLA/ECDNyrpUAkAH90lKGdCCmziAv1h3edVc3kw37XamSrhRSGlVuX +MlBvPci6Zgzj/L24ScF2iUkZ/cCovYmjZy/Gn7xxGWC4LeksyZB2ZnuU4q941mVT +XTzWnLLPKQP5L6RQstRIzgUyVYr9smRMDuSYB3Xbf9+5CFVghTAp+XtIpGmG4zU/ +HoZdenoVve8AjhUiVBcAkCaTvA5JaJG/+EfTnZVCwQ5N328mz8MYIWJmQ3DW1cAH +4QIDAQABo3QwcjARBglghkgBhvhCAQEEBAMCAAcwHwYDVR0jBBgwFoAUVeSB0RGA +vtiJuQijMfmhJAkWuXAwHQYDVR0OBBYEFFXkgdERgL7YibkIozH5oSQJFrlwMB0G +CSqGSIb2fQdBAAQQMA4bCFY1LjA6NC4wAwIEkDANBgkqhkiG9w0BAQUFAAOCAQEA +WUesIYSKF8mciVMeuoCFGsY8Tj6xnLZ8xpJdGGQC49MGCBFhfGPjK50xA3B20qMo +oPS7mmNz7W3lKtvtFKkrxjYR0CvrB4ul2p5cGZ1WEvVUKcgF7bISKo30Axv/55IQ +h7A6tcOdBTcSo8f0FbnVpDkWm1M6I5HxqIKiaohowXkCIryqptau37AUX7iH0N18 +f3v/rxzP5tsHrV7bhZ3QKw0z2wTR5klAEyt2+z7pnIkPFc4YsIV4IU9rTw76NmfN +B/L/CNDi3tm/Kq+4h4YhPATKt5Rof8886ZjXOP/swNlQ8C5LWK5Gb9Auw2DaclVy +vUxFnmG6v4SBkgPR0ml8xQ== +-----END CERTIFICATE----- + +# Issuer: CN=Baltimore CyberTrust Root O=Baltimore OU=CyberTrust +# Subject: CN=Baltimore CyberTrust Root O=Baltimore OU=CyberTrust +# Label: "Baltimore CyberTrust Root" +# Serial: 33554617 +# MD5 Fingerprint: ac:b6:94:a5:9c:17:e0:d7:91:52:9b:b1:97:06:a6:e4 +# SHA1 Fingerprint: d4:de:20:d0:5e:66:fc:53:fe:1a:50:88:2c:78:db:28:52:ca:e4:74 +# 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 +-----BEGIN CERTIFICATE----- +MIIDdzCCAl+gAwIBAgIEAgAAuTANBgkqhkiG9w0BAQUFADBaMQswCQYDVQQGEwJJ +RTESMBAGA1UEChMJQmFsdGltb3JlMRMwEQYDVQQLEwpDeWJlclRydXN0MSIwIAYD +VQQDExlCYWx0aW1vcmUgQ3liZXJUcnVzdCBSb290MB4XDTAwMDUxMjE4NDYwMFoX +DTI1MDUxMjIzNTkwMFowWjELMAkGA1UEBhMCSUUxEjAQBgNVBAoTCUJhbHRpbW9y +ZTETMBEGA1UECxMKQ3liZXJUcnVzdDEiMCAGA1UEAxMZQmFsdGltb3JlIEN5YmVy +VHJ1c3QgUm9vdDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKMEuyKr +mD1X6CZymrV51Cni4eiVgLGw41uOKymaZN+hXe2wCQVt2yguzmKiYv60iNoS6zjr +IZ3AQSsBUnuId9Mcj8e6uYi1agnnc+gRQKfRzMpijS3ljwumUNKoUMMo6vWrJYeK +mpYcqWe4PwzV9/lSEy/CG9VwcPCPwBLKBsua4dnKM3p31vjsufFoREJIE9LAwqSu +XmD+tqYF/LTdB1kC1FkYmGP1pWPgkAx9XbIGevOF6uvUA65ehD5f/xXtabz5OTZy +dc93Uk3zyZAsuT3lySNTPx8kmCFcB5kpvcY67Oduhjprl3RjM71oGDHweI12v/ye +jl0qhqdNkNwnGjkCAwEAAaNFMEMwHQYDVR0OBBYEFOWdWTCCR1jMrPoIVDaGezq1 +BE3wMBIGA1UdEwEB/wQIMAYBAf8CAQMwDgYDVR0PAQH/BAQDAgEGMA0GCSqGSIb3 +DQEBBQUAA4IBAQCFDF2O5G9RaEIFoN27TyclhAO992T9Ldcw46QQF+vaKSm2eT92 +9hkTI7gQCvlYpNRhcL0EYWoSihfVCr3FvDB81ukMJY2GQE/szKN+OMY3EU/t3Wgx +jkzSswF07r51XgdIGn9w/xZchMB5hbgF/X++ZRGjD8ACtPhSNzkE1akxehi/oCr0 +Epn3o0WC4zxe9Z2etciefC7IpJ5OCBRLbf1wbWsaY71k5h+3zvDyny67G7fyUIhz +ksLi4xaNmjICq44Y3ekQEe5+NauQrz4wlHrQMz2nZQ/1/I6eYs9HRCwBXbsdtTLS +R9I4LtD+gdwyah617jzV/OeBHRnDJELqYzmp +-----END CERTIFICATE----- + +# Issuer: CN=Equifax Secure Global eBusiness CA-1 O=Equifax Secure Inc. +# Subject: CN=Equifax Secure Global eBusiness CA-1 O=Equifax Secure Inc. +# Label: "Equifax Secure Global eBusiness CA" +# Serial: 1 +# MD5 Fingerprint: 8f:5d:77:06:27:c4:98:3c:5b:93:78:e7:d7:7d:9b:cc +# SHA1 Fingerprint: 7e:78:4a:10:1c:82:65:cc:2d:e1:f1:6d:47:b4:40:ca:d9:0a:19:45 +# 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 -----BEGIN CERTIFICATE----- MIICkDCCAfmgAwIBAgIBATANBgkqhkiG9w0BAQQFADBaMQswCQYDVQQGEwJVUzEc MBoGA1UEChMTRXF1aWZheCBTZWN1cmUgSW5jLjEtMCsGA1UEAxMkRXF1aWZheCBT @@ -475,9 +475,13 @@ Z70Br83gcfxaz2TE4JaY0KNA4gGK7ycH8WUBikQtBmV1UsCGECAhX2xrD2yuCRyv 8qIYNMR1pHMc8Y3c7635s3a0kr/clRAevsvIO1qEYBlWlKlV -----END CERTIFICATE----- -Equifax Secure eBusiness CA 1 -============================= - +# Issuer: CN=Equifax Secure eBusiness CA-1 O=Equifax Secure Inc. +# Subject: CN=Equifax Secure eBusiness CA-1 O=Equifax Secure Inc. +# Label: "Equifax Secure eBusiness CA 1" +# Serial: 4 +# MD5 Fingerprint: 64:9c:ef:2e:44:fc:c6:8f:52:07:d0:51:73:8f:cb:3d +# SHA1 Fingerprint: da:40:18:8b:91:89:a3:ed:ee:ae:da:97:fe:2f:9d:f5:b7:d1:8a:41 +# 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 -----BEGIN CERTIFICATE----- MIICgjCCAeugAwIBAgIBBDANBgkqhkiG9w0BAQQFADBTMQswCQYDVQQGEwJVUzEc MBoGA1UEChMTRXF1aWZheCBTZWN1cmUgSW5jLjEmMCQGA1UEAxMdRXF1aWZheCBT @@ -495,9 +499,13 @@ WB5Hh1Q+WKG1tfgq73HnvMP2sUlG4tega+VWeponmHxGYhTnyfxuAxJ5gDgdSIKN /Bf+KpYrtWKmpj29f5JZzVoqgrI3eQ== -----END CERTIFICATE----- -Equifax Secure eBusiness CA 2 -============================= - +# Issuer: O=Equifax Secure OU=Equifax Secure eBusiness CA-2 +# Subject: O=Equifax Secure OU=Equifax Secure eBusiness CA-2 +# Label: "Equifax Secure eBusiness CA 2" +# Serial: 930140085 +# MD5 Fingerprint: aa:bf:bf:64:97:da:98:1d:6f:c6:08:3a:95:70:33:ca +# SHA1 Fingerprint: 39:4f:f6:85:0b:06:be:52:e5:18:56:cc:10:e1:80:e8:82:b3:85:cc +# 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 -----BEGIN CERTIFICATE----- MIIDIDCCAomgAwIBAgIEN3DPtTANBgkqhkiG9w0BAQUFADBOMQswCQYDVQQGEwJV UzEXMBUGA1UEChMORXF1aWZheCBTZWN1cmUxJjAkBgNVBAsTHUVxdWlmYXggU2Vj @@ -518,30 +526,820 @@ A4GBAAyGgq3oThr1jokn4jVYPSm0B482UJW/bsGe68SQsoWou7dC4A8HOd/7npCy E4qUoSek1nDFbZS1yX2doNLGCEnZZpum0/QL3MUmV+GRMOrN -----END CERTIFICATE----- -Thawte Time Stamping CA -======================= +# Issuer: CN=AddTrust Class 1 CA Root O=AddTrust AB OU=AddTrust TTP Network +# Subject: CN=AddTrust Class 1 CA Root O=AddTrust AB OU=AddTrust TTP Network +# Label: "AddTrust Low-Value Services Root" +# Serial: 1 +# MD5 Fingerprint: 1e:42:95:02:33:92:6b:b9:5f:c0:7f:da:d6:b2:4b:fc +# SHA1 Fingerprint: cc:ab:0e:a0:4c:23:01:d6:69:7b:dd:37:9f:cd:12:eb:24:e3:94:9d +# 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 +-----BEGIN CERTIFICATE----- +MIIEGDCCAwCgAwIBAgIBATANBgkqhkiG9w0BAQUFADBlMQswCQYDVQQGEwJTRTEU +MBIGA1UEChMLQWRkVHJ1c3QgQUIxHTAbBgNVBAsTFEFkZFRydXN0IFRUUCBOZXR3 +b3JrMSEwHwYDVQQDExhBZGRUcnVzdCBDbGFzcyAxIENBIFJvb3QwHhcNMDAwNTMw +MTAzODMxWhcNMjAwNTMwMTAzODMxWjBlMQswCQYDVQQGEwJTRTEUMBIGA1UEChML +QWRkVHJ1c3QgQUIxHTAbBgNVBAsTFEFkZFRydXN0IFRUUCBOZXR3b3JrMSEwHwYD +VQQDExhBZGRUcnVzdCBDbGFzcyAxIENBIFJvb3QwggEiMA0GCSqGSIb3DQEBAQUA +A4IBDwAwggEKAoIBAQCWltQhSWDia+hBBwzexODcEyPNwTXH+9ZOEQpnXvUGW2ul +CDtbKRY654eyNAbFvAWlA3yCyykQruGIgb3WntP+LVbBFc7jJp0VLhD7Bo8wBN6n +tGO0/7Gcrjyvd7ZWxbWroulpOj0OM3kyP3CCkplhbY0wCI9xP6ZIVxn4JdxLZlyl +dI+Yrsj5wAYi56xz36Uu+1LcsRVlIPo1Zmne3yzxbrww2ywkEtvrNTVokMsAsJch +PXQhI2U0K7t4WaPW4XY5mqRJjox0r26kmqPZm9I4XJuiGMx1I4S+6+JNM3GOGvDC ++Mcdoq0Dlyz4zyXG9rgkMbFjXZJ/Y/AlyVMuH79NAgMBAAGjgdIwgc8wHQYDVR0O +BBYEFJWxtPCUtr3H2tERCSG+wa9J/RB7MAsGA1UdDwQEAwIBBjAPBgNVHRMBAf8E +BTADAQH/MIGPBgNVHSMEgYcwgYSAFJWxtPCUtr3H2tERCSG+wa9J/RB7oWmkZzBl +MQswCQYDVQQGEwJTRTEUMBIGA1UEChMLQWRkVHJ1c3QgQUIxHTAbBgNVBAsTFEFk +ZFRydXN0IFRUUCBOZXR3b3JrMSEwHwYDVQQDExhBZGRUcnVzdCBDbGFzcyAxIENB +IFJvb3SCAQEwDQYJKoZIhvcNAQEFBQADggEBACxtZBsfzQ3duQH6lmM0MkhHma6X +7f1yFqZzR1r0693p9db7RcwpiURdv0Y5PejuvE1Uhh4dbOMXJ0PhiVYrqW9yTkkz +43J8KiOavD7/KCrto/8cI7pDVwlnTUtiBi34/2ydYB7YHEt9tTEv2dB8Xfjea4MY +eDdXL+gzB2ffHsdrKpV2ro9Xo/D0UrSpUwjP4E/TelOL/bscVjby/rK25Xa71SJl +pz/+0WatC7xrmYbvP33zGDLKe8bjq2RGlfgmadlVg3sslgf/WSxEo8bl6ancoWOA +WiFeIc9TVPC6b4nbqKqVz4vjccweGyBECMB6tkD9xOQ14R0WHNC8K47Wcdk= +-----END CERTIFICATE----- + +# Issuer: CN=AddTrust External CA Root O=AddTrust AB OU=AddTrust External TTP Network +# Subject: CN=AddTrust External CA Root O=AddTrust AB OU=AddTrust External TTP Network +# Label: "AddTrust External Root" +# Serial: 1 +# MD5 Fingerprint: 1d:35:54:04:85:78:b0:3f:42:42:4d:bf:20:73:0a:3f +# SHA1 Fingerprint: 02:fa:f3:e2:91:43:54:68:60:78:57:69:4d:f5:e4:5b:68:85:18:68 +# 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 +-----BEGIN CERTIFICATE----- +MIIENjCCAx6gAwIBAgIBATANBgkqhkiG9w0BAQUFADBvMQswCQYDVQQGEwJTRTEU +MBIGA1UEChMLQWRkVHJ1c3QgQUIxJjAkBgNVBAsTHUFkZFRydXN0IEV4dGVybmFs +IFRUUCBOZXR3b3JrMSIwIAYDVQQDExlBZGRUcnVzdCBFeHRlcm5hbCBDQSBSb290 +MB4XDTAwMDUzMDEwNDgzOFoXDTIwMDUzMDEwNDgzOFowbzELMAkGA1UEBhMCU0Ux +FDASBgNVBAoTC0FkZFRydXN0IEFCMSYwJAYDVQQLEx1BZGRUcnVzdCBFeHRlcm5h +bCBUVFAgTmV0d29yazEiMCAGA1UEAxMZQWRkVHJ1c3QgRXh0ZXJuYWwgQ0EgUm9v +dDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALf3GjPm8gAELTngTlvt +H7xsD821+iO2zt6bETOXpClMfZOfvUq8k+0DGuOPz+VtUFrWlymUWoCwSXrbLpX9 +uMq/NzgtHj6RQa1wVsfwTz/oMp50ysiQVOnGXw94nZpAPA6sYapeFI+eh6FqUNzX +mk6vBbOmcZSccbNQYArHE504B4YCqOmoaSYYkKtMsE8jqzpPhNjfzp/haW+710LX +a0Tkx63ubUFfclpxCDezeWWkWaCUN/cALw3CknLa0Dhy2xSoRcRdKn23tNbE7qzN +E0S3ySvdQwAl+mG5aWpYIxG3pzOPVnVZ9c0p10a3CitlttNCbxWyuHv77+ldU9U0 +WicCAwEAAaOB3DCB2TAdBgNVHQ4EFgQUrb2YejS0Jvf6xCZU7wO94CTLVBowCwYD +VR0PBAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wgZkGA1UdIwSBkTCBjoAUrb2YejS0 +Jvf6xCZU7wO94CTLVBqhc6RxMG8xCzAJBgNVBAYTAlNFMRQwEgYDVQQKEwtBZGRU +cnVzdCBBQjEmMCQGA1UECxMdQWRkVHJ1c3QgRXh0ZXJuYWwgVFRQIE5ldHdvcmsx +IjAgBgNVBAMTGUFkZFRydXN0IEV4dGVybmFsIENBIFJvb3SCAQEwDQYJKoZIhvcN +AQEFBQADggEBALCb4IUlwtYj4g+WBpKdQZic2YR5gdkeWxQHIzZlj7DYd7usQWxH +YINRsPkyPef89iYTx4AWpb9a/IfPeHmJIZriTAcKhjW88t5RxNKWt9x+Tu5w/Rw5 +6wwCURQtjr0W4MHfRnXnJK3s9EK0hZNwEGe6nQY1ShjTK3rMUUKhemPR5ruhxSvC +Nr4TDea9Y355e6cJDUCrat2PisP29owaQgVR1EX1n6diIWgVIEM8med8vSTYqZEX +c4g/VhsxOBi0cQ+azcgOno4uG+GMmIPLHzHxREzGBHNJdmAPx/i9F4BrLunMTA5a +mnkPIAou1Z5jJh5VkpTYghdae9C8x49OhgQ= +-----END CERTIFICATE----- + +# Issuer: CN=AddTrust Public CA Root O=AddTrust AB OU=AddTrust TTP Network +# Subject: CN=AddTrust Public CA Root O=AddTrust AB OU=AddTrust TTP Network +# Label: "AddTrust Public Services Root" +# Serial: 1 +# MD5 Fingerprint: c1:62:3e:23:c5:82:73:9c:03:59:4b:2b:e9:77:49:7f +# SHA1 Fingerprint: 2a:b6:28:48:5e:78:fb:f3:ad:9e:79:10:dd:6b:df:99:72:2c:96:e5 +# 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 +-----BEGIN CERTIFICATE----- +MIIEFTCCAv2gAwIBAgIBATANBgkqhkiG9w0BAQUFADBkMQswCQYDVQQGEwJTRTEU +MBIGA1UEChMLQWRkVHJ1c3QgQUIxHTAbBgNVBAsTFEFkZFRydXN0IFRUUCBOZXR3 +b3JrMSAwHgYDVQQDExdBZGRUcnVzdCBQdWJsaWMgQ0EgUm9vdDAeFw0wMDA1MzAx +MDQxNTBaFw0yMDA1MzAxMDQxNTBaMGQxCzAJBgNVBAYTAlNFMRQwEgYDVQQKEwtB +ZGRUcnVzdCBBQjEdMBsGA1UECxMUQWRkVHJ1c3QgVFRQIE5ldHdvcmsxIDAeBgNV +BAMTF0FkZFRydXN0IFB1YmxpYyBDQSBSb290MIIBIjANBgkqhkiG9w0BAQEFAAOC +AQ8AMIIBCgKCAQEA6Rowj4OIFMEg2Dybjxt+A3S72mnTRqX4jsIMEZBRpS9mVEBV +6tsfSlbunyNu9DnLoblv8n75XYcmYZ4c+OLspoH4IcUkzBEMP9smcnrHAZcHF/nX +GCwwfQ56HmIexkvA/X1id9NEHif2P0tEs7c42TkfYNVRknMDtABp4/MUTu7R3AnP +dzRGULD4EfL+OHn3Bzn+UZKXC1sIXzSGAa2Il+tmzV7R/9x98oTaunet3IAIx6eH +1lWfl2royBFkuucZKT8Rs3iQhCBSWxHveNCD9tVIkNAwHM+A+WD+eeSI8t0A65RF +62WUaUC6wNW0uLp9BBGo6zEFlpROWCGOn9Bg/QIDAQABo4HRMIHOMB0GA1UdDgQW +BBSBPjfYkrAfd59ctKtzquf2NGAv+jALBgNVHQ8EBAMCAQYwDwYDVR0TAQH/BAUw +AwEB/zCBjgYDVR0jBIGGMIGDgBSBPjfYkrAfd59ctKtzquf2NGAv+qFopGYwZDEL +MAkGA1UEBhMCU0UxFDASBgNVBAoTC0FkZFRydXN0IEFCMR0wGwYDVQQLExRBZGRU +cnVzdCBUVFAgTmV0d29yazEgMB4GA1UEAxMXQWRkVHJ1c3QgUHVibGljIENBIFJv +b3SCAQEwDQYJKoZIhvcNAQEFBQADggEBAAP3FUr4JNojVhaTdt02KLmuG7jD8WS6 +IBh4lSknVwW8fCr0uVFV2ocC3g8WFzH4qnkuCRO7r7IgGRLlk/lL+YPoRNWyQSW/ +iHVv/xD8SlTQX/D67zZzfRs2RcYhbbQVuE7PnFylPVoAjgbjPGsye/Kf8Lb93/Ao +GEjwxrzQvzSAlsJKsW2Ox5BF3i9nrEUEo3rcVZLJR2bYGozH7ZxOmuASu7VqTITh +4SINhwBk/ox9Yjllpu9CtoAlEmEBqCQTcAARJl/6NVDFSMwGR+gn2HCNX2TmoUQm +XiLsks3/QppEIW1cxeMiHV9HEufOX1362KqxMy3ZdvJOOjMMK7MtkAY= +-----END CERTIFICATE----- +# Issuer: CN=AddTrust Qualified CA Root O=AddTrust AB OU=AddTrust TTP Network +# Subject: CN=AddTrust Qualified CA Root O=AddTrust AB OU=AddTrust TTP Network +# Label: "AddTrust Qualified Certificates Root" +# Serial: 1 +# MD5 Fingerprint: 27:ec:39:47:cd:da:5a:af:e2:9a:01:65:21:a9:4c:bb +# SHA1 Fingerprint: 4d:23:78:ec:91:95:39:b5:00:7f:75:8f:03:3b:21:1e:c5:4d:8b:cf +# 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 -----BEGIN CERTIFICATE----- -MIICoTCCAgqgAwIBAgIBADANBgkqhkiG9w0BAQQFADCBizELMAkGA1UEBhMCWkEx -FTATBgNVBAgTDFdlc3Rlcm4gQ2FwZTEUMBIGA1UEBxMLRHVyYmFudmlsbGUxDzAN -BgNVBAoTBlRoYXd0ZTEdMBsGA1UECxMUVGhhd3RlIENlcnRpZmljYXRpb24xHzAd -BgNVBAMTFlRoYXd0ZSBUaW1lc3RhbXBpbmcgQ0EwHhcNOTcwMTAxMDAwMDAwWhcN -MjAxMjMxMjM1OTU5WjCBizELMAkGA1UEBhMCWkExFTATBgNVBAgTDFdlc3Rlcm4g -Q2FwZTEUMBIGA1UEBxMLRHVyYmFudmlsbGUxDzANBgNVBAoTBlRoYXd0ZTEdMBsG -A1UECxMUVGhhd3RlIENlcnRpZmljYXRpb24xHzAdBgNVBAMTFlRoYXd0ZSBUaW1l -c3RhbXBpbmcgQ0EwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBANYrWHhhRYZT -6jR7UZztsOYuGA7+4F+oJ9O0yeB8WU4WDnNUYMF/9p8u6TqFJBU820cEY8OexJQa -Wt9MevPZQx08EHp5JduQ/vBR5zDWQQD9nyjfeb6Uu522FOMjhdepQeBMpHmwKxqL -8vg7ij5FrHGSALSQQZj7X+36ty6K+Ig3AgMBAAGjEzARMA8GA1UdEwEB/wQFMAMB -Af8wDQYJKoZIhvcNAQEEBQADgYEAZ9viwuaHPUCDhjc1fR/OmsMMZiCouqoEiYbC -9RAIDb/LogWK0E02PvTX72nGXuSwlG9KuefeW4i2e9vjJ+V2w/A1wcu1J5szedyQ -pgCed/r8zSeUQhac0xxo7L9c3eWpexAKMnRUEzGLhQOEkbdYATAUOK8oyvyxUBkZ -CayJSdM= +MIIEHjCCAwagAwIBAgIBATANBgkqhkiG9w0BAQUFADBnMQswCQYDVQQGEwJTRTEU +MBIGA1UEChMLQWRkVHJ1c3QgQUIxHTAbBgNVBAsTFEFkZFRydXN0IFRUUCBOZXR3 +b3JrMSMwIQYDVQQDExpBZGRUcnVzdCBRdWFsaWZpZWQgQ0EgUm9vdDAeFw0wMDA1 +MzAxMDQ0NTBaFw0yMDA1MzAxMDQ0NTBaMGcxCzAJBgNVBAYTAlNFMRQwEgYDVQQK +EwtBZGRUcnVzdCBBQjEdMBsGA1UECxMUQWRkVHJ1c3QgVFRQIE5ldHdvcmsxIzAh +BgNVBAMTGkFkZFRydXN0IFF1YWxpZmllZCBDQSBSb290MIIBIjANBgkqhkiG9w0B +AQEFAAOCAQ8AMIIBCgKCAQEA5B6a/twJWoekn0e+EV+vhDTbYjx5eLfpMLXsDBwq +xBb/4Oxx64r1EW7tTw2R0hIYLUkVAcKkIhPHEWT/IhKauY5cLwjPcWqzZwFZ8V1G +87B4pfYOQnrjfxvM0PC3KP0q6p6zsLkEqv32x7SxuCqg+1jxGaBvcCV+PmlKfw8i +2O+tCBGaKZnhqkRFmhJePp1tUvznoD1oL/BLcHwTOK28FSXx1s6rosAx1i+f4P8U +WfyEk9mHfExUE+uf0S0R+Bg6Ot4l2ffTQO2kBhLEO+GRwVY18BTcZTYJbqukB8c1 +0cIDMzZbdSZtQvESa0NvS3GU+jQd7RNuyoB/mC9suWXY6QIDAQABo4HUMIHRMB0G +A1UdDgQWBBQ5lYtii1zJ1IC6WA+XPxUIQ8yYpzALBgNVHQ8EBAMCAQYwDwYDVR0T +AQH/BAUwAwEB/zCBkQYDVR0jBIGJMIGGgBQ5lYtii1zJ1IC6WA+XPxUIQ8yYp6Fr +pGkwZzELMAkGA1UEBhMCU0UxFDASBgNVBAoTC0FkZFRydXN0IEFCMR0wGwYDVQQL +ExRBZGRUcnVzdCBUVFAgTmV0d29yazEjMCEGA1UEAxMaQWRkVHJ1c3QgUXVhbGlm +aWVkIENBIFJvb3SCAQEwDQYJKoZIhvcNAQEFBQADggEBABmrder4i2VhlRO6aQTv +hsoToMeqT2QbPxj2qC0sVY8FtzDqQmodwCVRLae/DLPt7wh/bDxGGuoYQ992zPlm +hpwsaPXpF/gxsxjE1kh9I0xowX67ARRvxdlu3rsEQmr49lx95dr6h+sNNVJn0J6X +dgWTP5XHAeZpVTh/EGGZyeNfpso+gmNIquIISD6q8rKFYqa0p9m9N5xotS1WfbC3 +P6CxB9bpT9zeRXEwMn8bLgn5v1Kh7sKAPgZcLlVAwRv1cEWw3F369nJad9Jjzc9Y +iQBCYz95OdBEsIJuQRno3eDBiFrRHnGTHyQwdOUeqN48Jzd/g66ed8/wMLH/S5no +xqE= -----END CERTIFICATE----- -thawte Primary Root CA -====================== +# Issuer: CN=Entrust Root Certification Authority O=Entrust, Inc. OU=www.entrust.net/CPS is incorporated by reference/(c) 2006 Entrust, Inc. +# Subject: CN=Entrust Root Certification Authority O=Entrust, Inc. OU=www.entrust.net/CPS is incorporated by reference/(c) 2006 Entrust, Inc. +# Label: "Entrust Root Certification Authority" +# Serial: 1164660820 +# MD5 Fingerprint: d6:a5:c3:ed:5d:dd:3e:00:c1:3d:87:92:1f:1d:3f:e4 +# SHA1 Fingerprint: b3:1e:b1:b7:40:e3:6c:84:02:da:dc:37:d4:4d:f5:d4:67:49:52:f9 +# 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 +-----BEGIN CERTIFICATE----- +MIIEkTCCA3mgAwIBAgIERWtQVDANBgkqhkiG9w0BAQUFADCBsDELMAkGA1UEBhMC +VVMxFjAUBgNVBAoTDUVudHJ1c3QsIEluYy4xOTA3BgNVBAsTMHd3dy5lbnRydXN0 +Lm5ldC9DUFMgaXMgaW5jb3Jwb3JhdGVkIGJ5IHJlZmVyZW5jZTEfMB0GA1UECxMW +KGMpIDIwMDYgRW50cnVzdCwgSW5jLjEtMCsGA1UEAxMkRW50cnVzdCBSb290IENl +cnRpZmljYXRpb24gQXV0aG9yaXR5MB4XDTA2MTEyNzIwMjM0MloXDTI2MTEyNzIw +NTM0MlowgbAxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1FbnRydXN0LCBJbmMuMTkw +NwYDVQQLEzB3d3cuZW50cnVzdC5uZXQvQ1BTIGlzIGluY29ycG9yYXRlZCBieSBy +ZWZlcmVuY2UxHzAdBgNVBAsTFihjKSAyMDA2IEVudHJ1c3QsIEluYy4xLTArBgNV +BAMTJEVudHJ1c3QgUm9vdCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTCCASIwDQYJ +KoZIhvcNAQEBBQADggEPADCCAQoCggEBALaVtkNC+sZtKm9I35RMOVcF7sN5EUFo +Nu3s/poBj6E4KPz3EEZmLk0eGrEaTsbRwJWIsMn/MYszA9u3g3s+IIRe7bJWKKf4 +4LlAcTfFy0cOlypowCKVYhXbR9n10Cv/gkvJrT7eTNuQgFA/CYqEAOwwCj0Yzfv9 +KlmaI5UXLEWeH25DeW0MXJj+SKfFI0dcXv1u5x609mhF0YaDW6KKjbHjKYD+JXGI +rb68j6xSlkuqUY3kEzEZ6E5Nn9uss2rVvDlUccp6en+Q3X0dgNmBu1kmwhH+5pPi +94DkZfs0Nw4pgHBNrziGLp5/V6+eF67rHMsoIV+2HNjnogQi+dPa2MsCAwEAAaOB +sDCBrTAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zArBgNVHRAEJDAi +gA8yMDA2MTEyNzIwMjM0MlqBDzIwMjYxMTI3MjA1MzQyWjAfBgNVHSMEGDAWgBRo +kORnpKZTgMeGZqTx90tD+4S9bTAdBgNVHQ4EFgQUaJDkZ6SmU4DHhmak8fdLQ/uE +vW0wHQYJKoZIhvZ9B0EABBAwDhsIVjcuMTo0LjADAgSQMA0GCSqGSIb3DQEBBQUA +A4IBAQCT1DCw1wMgKtD5Y+iRDAUgqV8ZyntyTtSx29CW+1RaGSwMCPeyvIWonX9t +O1KzKtvn1ISMY/YPyyYBkVBs9F8U4pN0wBOeMDpQ47RgxRzwIkSNcUesyBrJ6Zua +AGAT/3B+XxFNSRuzFVJ7yVTav52Vr2ua2J7p8eRDjeIRRDq/r72DQnNSi6q7pynP +9WQcCk3RvKqsnyrQ/39/2n3qse0wJcGE2jTSW3iDVuycNsMm4hH2Z0kdkquM++v/ +eu6FSqdQgPCnXEqULl8FmTxSQeDNtGPPAUO6nIPcj2A781q0tHuu2guQOHXvgR1m +0vdXcDazv/wor3ElhVsT/h5/WrQ8 +-----END CERTIFICATE----- +# Issuer: CN=GeoTrust Global CA O=GeoTrust Inc. +# Subject: CN=GeoTrust Global CA O=GeoTrust Inc. +# Label: "GeoTrust Global CA" +# Serial: 144470 +# MD5 Fingerprint: f7:75:ab:29:fb:51:4e:b7:77:5e:ff:05:3c:99:8e:f5 +# SHA1 Fingerprint: de:28:f4:a4:ff:e5:b9:2f:a3:c5:03:d1:a3:49:a7:f9:96:2a:82:12 +# 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 +-----BEGIN CERTIFICATE----- +MIIDVDCCAjygAwIBAgIDAjRWMA0GCSqGSIb3DQEBBQUAMEIxCzAJBgNVBAYTAlVT +MRYwFAYDVQQKEw1HZW9UcnVzdCBJbmMuMRswGQYDVQQDExJHZW9UcnVzdCBHbG9i +YWwgQ0EwHhcNMDIwNTIxMDQwMDAwWhcNMjIwNTIxMDQwMDAwWjBCMQswCQYDVQQG +EwJVUzEWMBQGA1UEChMNR2VvVHJ1c3QgSW5jLjEbMBkGA1UEAxMSR2VvVHJ1c3Qg +R2xvYmFsIENBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA2swYYzD9 +9BcjGlZ+W988bDjkcbd4kdS8odhM+KhDtgPpTSEHCIjaWC9mOSm9BXiLnTjoBbdq +fnGk5sRgprDvgOSJKA+eJdbtg/OtppHHmMlCGDUUna2YRpIuT8rxh0PBFpVXLVDv +iS2Aelet8u5fa9IAjbkU+BQVNdnARqN7csiRv8lVK83Qlz6cJmTM386DGXHKTubU +1XupGc1V3sjs0l44U+VcT4wt/lAjNvxm5suOpDkZALeVAjmRCw7+OC7RHQWa9k0+ +bw8HHa8sHo9gOeL6NlMTOdReJivbPagUvTLrGAMoUgRx5aszPeE4uwc2hGKceeoW +MPRfwCvocWvk+QIDAQABo1MwUTAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBTA +ephojYn7qwVkDBF9qn1luMrMTjAfBgNVHSMEGDAWgBTAephojYn7qwVkDBF9qn1l +uMrMTjANBgkqhkiG9w0BAQUFAAOCAQEANeMpauUvXVSOKVCUn5kaFOSPeCpilKIn +Z57QzxpeR+nBsqTP3UEaBU6bS+5Kb1VSsyShNwrrZHYqLizz/Tt1kL/6cdjHPTfS +tQWVYrmm3ok9Nns4d0iXrKYgjy6myQzCsplFAMfOEVEiIuCl6rYVSAlk6l5PdPcF +PseKUgzbFbS9bZvlxrFUaKnjaZC2mqUPuLk/IH2uSrW4nOQdtqvmlKXBx4Ot2/Un +hw4EbNX/3aBd7YdStysVAq45pmp06drE57xNNB6pXE0zX5IJL4hmXXeXxx12E6nV +5fEWCRE11azbJHFwLJhWC9kXtNHjUStedejV0NxPNO3CBWaAocvmMw== +-----END CERTIFICATE----- + +# Issuer: CN=GeoTrust Global CA 2 O=GeoTrust Inc. +# Subject: CN=GeoTrust Global CA 2 O=GeoTrust Inc. +# Label: "GeoTrust Global CA 2" +# Serial: 1 +# MD5 Fingerprint: 0e:40:a7:6c:de:03:5d:8f:d1:0f:e4:d1:8d:f9:6c:a9 +# SHA1 Fingerprint: a9:e9:78:08:14:37:58:88:f2:05:19:b0:6d:2b:0d:2b:60:16:90:7d +# 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 +-----BEGIN CERTIFICATE----- +MIIDZjCCAk6gAwIBAgIBATANBgkqhkiG9w0BAQUFADBEMQswCQYDVQQGEwJVUzEW +MBQGA1UEChMNR2VvVHJ1c3QgSW5jLjEdMBsGA1UEAxMUR2VvVHJ1c3QgR2xvYmFs +IENBIDIwHhcNMDQwMzA0MDUwMDAwWhcNMTkwMzA0MDUwMDAwWjBEMQswCQYDVQQG +EwJVUzEWMBQGA1UEChMNR2VvVHJ1c3QgSW5jLjEdMBsGA1UEAxMUR2VvVHJ1c3Qg +R2xvYmFsIENBIDIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDvPE1A +PRDfO1MA4Wf+lGAVPoWI8YkNkMgoI5kF6CsgncbzYEbYwbLVjDHZ3CB5JIG/NTL8 +Y2nbsSpr7iFY8gjpeMtvy/wWUsiRxP89c96xPqfCfWbB9X5SJBri1WeR0IIQ13hL +TytCOb1kLUCgsBDTOEhGiKEMuzozKmKY+wCdE1l/bztyqu6mD4b5BWHqZ38MN5aL +5mkWRxHCJ1kDs6ZgwiFAVvqgx306E+PsV8ez1q6diYD3Aecs9pYrEw15LNnA5IZ7 +S4wMcoKK+xfNAGw6EzywhIdLFnopsk/bHdQL82Y3vdj2V7teJHq4PIu5+pIaGoSe +2HSPqht/XvT+RSIhAgMBAAGjYzBhMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYE +FHE4NvICMVNHK266ZUapEBVYIAUJMB8GA1UdIwQYMBaAFHE4NvICMVNHK266ZUap +EBVYIAUJMA4GA1UdDwEB/wQEAwIBhjANBgkqhkiG9w0BAQUFAAOCAQEAA/e1K6td +EPx7srJerJsOflN4WT5CBP51o62sgU7XAotexC3IUnbHLB/8gTKY0UvGkpMzNTEv +/NgdRN3ggX+d6YvhZJFiCzkIjKx0nVnZellSlxG5FntvRdOW2TF9AjYPnDtuzywN +A0ZF66D0f0hExghAzN4bcLUprbqLOzRldRtxIR0sFAqwlpW41uryZfspuk/qkZN0 +abby/+Ea0AzRdoXLiiW9l14sbxWZJue2Kf8i7MkCx1YAzUm5s2x7UwQa4qjJqhIF +I8LO57sEAszAR6LkxCkvW0VXiVHuPOtSCP8HNR6fNWpHSlaY0VqFH4z1Ir+rzoPz +4iIprn2DQKi6bA== +-----END CERTIFICATE----- + +# Issuer: CN=GeoTrust Universal CA O=GeoTrust Inc. +# Subject: CN=GeoTrust Universal CA O=GeoTrust Inc. +# Label: "GeoTrust Universal CA" +# Serial: 1 +# MD5 Fingerprint: 92:65:58:8b:a2:1a:31:72:73:68:5c:b4:a5:7a:07:48 +# SHA1 Fingerprint: e6:21:f3:35:43:79:05:9a:4b:68:30:9d:8a:2f:74:22:15:87:ec:79 +# 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 +-----BEGIN CERTIFICATE----- +MIIFaDCCA1CgAwIBAgIBATANBgkqhkiG9w0BAQUFADBFMQswCQYDVQQGEwJVUzEW +MBQGA1UEChMNR2VvVHJ1c3QgSW5jLjEeMBwGA1UEAxMVR2VvVHJ1c3QgVW5pdmVy +c2FsIENBMB4XDTA0MDMwNDA1MDAwMFoXDTI5MDMwNDA1MDAwMFowRTELMAkGA1UE +BhMCVVMxFjAUBgNVBAoTDUdlb1RydXN0IEluYy4xHjAcBgNVBAMTFUdlb1RydXN0 +IFVuaXZlcnNhbCBDQTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAKYV +VaCjxuAfjJ0hUNfBvitbtaSeodlyWL0AG0y/YckUHUWCq8YdgNY96xCcOq9tJPi8 +cQGeBvV8Xx7BDlXKg5pZMK4ZyzBIle0iN430SppyZj6tlcDgFgDgEB8rMQ7XlFTT +QjOgNB0eRXbdT8oYN+yFFXoZCPzVx5zw8qkuEKmS5j1YPakWaDwvdSEYfyh3peFh +F7em6fgemdtzbvQKoiFs7tqqhZJmr/Z6a4LauiIINQ/PQvE1+mrufislzDoR5G2v +c7J2Ha3QsnhnGqQ5HFELZ1aD/ThdDc7d8Lsrlh/eezJS/R27tQahsiFepdaVaH/w +mZ7cRQg+59IJDTWU3YBOU5fXtQlEIGQWFwMCTFMNaN7VqnJNk22CDtucvc+081xd +VHppCZbW2xHBjXWotM85yM48vCR85mLK4b19p71XZQvk/iXttmkQ3CgaRr0BHdCX +teGYO8A3ZNY9lO4L4fUorgtWv3GLIylBjobFS1J72HGrH4oVpjuDWtdYAVHGTEHZ +f9hBZ3KiKN9gg6meyHv8U3NyWfWTehd2Ds735VzZC1U0oqpbtWpU5xPKV+yXbfRe +Bi9Fi1jUIxaS5BZuKGNZMN9QAZxjiRqf2xeUgnA3wySemkfWWspOqGmJch+RbNt+ +nhutxx9z3SxPGWX9f5NAEC7S8O08ni4oPmkmM8V7AgMBAAGjYzBhMA8GA1UdEwEB +/wQFMAMBAf8wHQYDVR0OBBYEFNq7LqqwDLiIJlF0XG0D08DYj3rWMB8GA1UdIwQY +MBaAFNq7LqqwDLiIJlF0XG0D08DYj3rWMA4GA1UdDwEB/wQEAwIBhjANBgkqhkiG +9w0BAQUFAAOCAgEAMXjmx7XfuJRAyXHEqDXsRh3ChfMoWIawC/yOsjmPRFWrZIRc +aanQmjg8+uUfNeVE44B5lGiku8SfPeE0zTBGi1QrlaXv9z+ZhP015s8xxtxqv6fX +IwjhmF7DWgh2qaavdy+3YL1ERmrvl/9zlcGO6JP7/TG37FcREUWbMPEaiDnBTzyn +ANXH/KttgCJwpQzgXQQpAvvLoJHRfNbDflDVnVi+QTjruXU8FdmbyUqDWcDaU/0z +uzYYm4UPFd3uLax2k7nZAY1IEKj79TiG8dsKxr2EoyNB3tZ3b4XUhRxQ4K5RirqN +Pnbiucon8l+f725ZDQbYKxek0nxru18UGkiPGkzns0ccjkxFKyDuSN/n3QmOGKja +QI2SJhFTYXNd673nxE0pN2HrrDktZy4W1vUAg4WhzH92xH3kt0tm7wNFYGm2DFKW +koRepqO1pD4r2czYG0eq8kTaT/kD6PAUyz/zg97QwVTjt+gKN02LIFkDMBmhLMi9 +ER/frslKxfMnZmaGrGiR/9nmUxwPi1xpZQomyB40w11Re9epnAahNt3ViZS82eQt +DF4JbAiXfKM9fJP/P6EUp8+1Xevb2xzEdt+Iub1FBZUbrvxGakyvSOPOrg/Sfuvm +bJxPgWp6ZKy7PtXny3YuxadIwVyQD8vIP/rmMuGNG2+k5o7Y+SlIis5z/iw= +-----END CERTIFICATE----- + +# Issuer: CN=GeoTrust Universal CA 2 O=GeoTrust Inc. +# Subject: CN=GeoTrust Universal CA 2 O=GeoTrust Inc. +# Label: "GeoTrust Universal CA 2" +# Serial: 1 +# MD5 Fingerprint: 34:fc:b8:d0:36:db:9e:14:b3:c2:f2:db:8f:e4:94:c7 +# SHA1 Fingerprint: 37:9a:19:7b:41:85:45:35:0c:a6:03:69:f3:3c:2e:af:47:4f:20:79 +# 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 +-----BEGIN CERTIFICATE----- +MIIFbDCCA1SgAwIBAgIBATANBgkqhkiG9w0BAQUFADBHMQswCQYDVQQGEwJVUzEW +MBQGA1UEChMNR2VvVHJ1c3QgSW5jLjEgMB4GA1UEAxMXR2VvVHJ1c3QgVW5pdmVy +c2FsIENBIDIwHhcNMDQwMzA0MDUwMDAwWhcNMjkwMzA0MDUwMDAwWjBHMQswCQYD +VQQGEwJVUzEWMBQGA1UEChMNR2VvVHJ1c3QgSW5jLjEgMB4GA1UEAxMXR2VvVHJ1 +c3QgVW5pdmVyc2FsIENBIDIwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoIC +AQCzVFLByT7y2dyxUxpZKeexw0Uo5dfR7cXFS6GqdHtXr0om/Nj1XqduGdt0DE81 +WzILAePb63p3NeqqWuDW6KFXlPCQo3RWlEQwAx5cTiuFJnSCegx2oG9NzkEtoBUG +FF+3Qs17j1hhNNwqCPkuwwGmIkQcTAeC5lvO0Ep8BNMZcyfwqph/Lq9O64ceJHdq +XbboW0W63MOhBW9Wjo8QJqVJwy7XQYci4E+GymC16qFjwAGXEHm9ADwSbSsVsaxL +se4YuU6W3Nx2/zu+z18DwPw76L5GG//aQMJS9/7jOvdqdzXQ2o3rXhhqMcceujwb +KNZrVMaqW9eiLBsZzKIC9ptZvTdrhrVtgrrY6slWvKk2WP0+GfPtDCapkzj4T8Fd +IgbQl+rhrcZV4IErKIM6+vR7IVEAvlI4zs1meaj0gVbi0IMJR1FbUGrP20gaXT73 +y/Zl92zxlfgCOzJWgjl6W70viRu/obTo/3+NjN8D8WBOWBFM66M/ECuDmgFz2ZRt +hAAnZqzwcEAJQpKtT5MNYQlRJNiS1QuUYbKHsu3/mjX/hVTK7URDrBs8FmtISgoc +QIgfksILAAX/8sgCSqSqqcyZlpwvWOB94b67B9xfBHJcMTTD7F8t4D1kkCLm0ey4 +Lt1ZrtmhN79UNdxzMk+MBB4zsslG8dhcyFVQyWi9qLo2CQIDAQABo2MwYTAPBgNV +HRMBAf8EBTADAQH/MB0GA1UdDgQWBBR281Xh+qQ2+/CfXGJx7Tz0RzgQKzAfBgNV +HSMEGDAWgBR281Xh+qQ2+/CfXGJx7Tz0RzgQKzAOBgNVHQ8BAf8EBAMCAYYwDQYJ +KoZIhvcNAQEFBQADggIBAGbBxiPz2eAubl/oz66wsCVNK/g7WJtAJDday6sWSf+z +dXkzoS9tcBc0kf5nfo/sm+VegqlVHy/c1FEHEv6sFj4sNcZj/NwQ6w2jqtB8zNHQ +L1EuxBRa3ugZ4T7GzKQp5y6EqgYweHZUcyiYWTjgAA1i00J9IZ+uPTqM1fp3DRgr +Fg5fNuH8KrUwJM/gYwx7WBr+mbpCErGR9Hxo4sjoryzqyX6uuyo9DRXcNJW2GHSo +ag/HtPQTxORb7QrSpJdMKu0vbBKJPfEncKpqA1Ihn0CoZ1Dy81of398j9tx4TuaY +T1U6U+Pv8vSfx3zYWK8pIpe44L2RLrB27FcRz+8pRPPphXpgY+RdM4kX2TGq2tbz +GDVyz4crL2MjhF2EjD9XoIj8mZEoJmmZ1I+XRL6O1UixpCgp8RW04eWe3fiPpm8m +1wk8OhwRDqZsN/etRIcsKMfYdIKz0G9KV7s1KSegi+ghp4dkNl3M2Basx7InQJJV +OCiNUW7dFGdTbHFcJoRNdVq2fmBWqU2t+5sel/MN2dKXVHfaPRK34B7vCAas+YWH +6aLcr34YEoP9VhdBLtUpgn2Z9DH2canPLAEnpQW5qrJITirvn5NSUZU8UnOOVkwX +QMAJKOSLakhT2+zNVVXxxvjpoixMptEmX36vWkzaH6byHCx+rgIW0lbQL1dTR+iS +-----END CERTIFICATE----- + +# Issuer: CN=America Online Root Certification Authority 1 O=America Online Inc. +# Subject: CN=America Online Root Certification Authority 1 O=America Online Inc. +# Label: "America Online Root Certification Authority 1" +# Serial: 1 +# MD5 Fingerprint: 14:f1:08:ad:9d:fa:64:e2:89:e7:1c:cf:a8:ad:7d:5e +# SHA1 Fingerprint: 39:21:c1:15:c1:5d:0e:ca:5c:cb:5b:c4:f0:7d:21:d8:05:0b:56:6a +# 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 +-----BEGIN CERTIFICATE----- +MIIDpDCCAoygAwIBAgIBATANBgkqhkiG9w0BAQUFADBjMQswCQYDVQQGEwJVUzEc +MBoGA1UEChMTQW1lcmljYSBPbmxpbmUgSW5jLjE2MDQGA1UEAxMtQW1lcmljYSBP +bmxpbmUgUm9vdCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSAxMB4XDTAyMDUyODA2 +MDAwMFoXDTM3MTExOTIwNDMwMFowYzELMAkGA1UEBhMCVVMxHDAaBgNVBAoTE0Ft +ZXJpY2EgT25saW5lIEluYy4xNjA0BgNVBAMTLUFtZXJpY2EgT25saW5lIFJvb3Qg +Q2VydGlmaWNhdGlvbiBBdXRob3JpdHkgMTCCASIwDQYJKoZIhvcNAQEBBQADggEP +ADCCAQoCggEBAKgv6KRpBgNHw+kqmP8ZonCaxlCyfqXfaE0bfA+2l2h9LaaLl+lk +hsmj76CGv2BlnEtUiMJIxUo5vxTjWVXlGbR0yLQFOVwWpeKVBeASrlmLojNoWBym +1BW32J/X3HGrfpq/m44zDyL9Hy7nBzbvYjnF3cu6JRQj3gzGPTzOggjmZj7aUTsW +OqMFf6Dch9Wc/HKpoH145LcxVR5lu9RhsCFg7RAycsWSJR74kEoYeEfffjA3PlAb +2xzTa5qGUwew76wGePiEmf4hjUyAtgyC9mZweRrTT6PP8c9GsEsPPt2IYriMqQko +O3rHl+Ee5fSfwMCuJKDIodkP1nsmgmkyPacCAwEAAaNjMGEwDwYDVR0TAQH/BAUw +AwEB/zAdBgNVHQ4EFgQUAK3Zo/Z59m50qX8zPYEX10zPM94wHwYDVR0jBBgwFoAU +AK3Zo/Z59m50qX8zPYEX10zPM94wDgYDVR0PAQH/BAQDAgGGMA0GCSqGSIb3DQEB +BQUAA4IBAQB8itEfGDeC4Liwo+1WlchiYZwFos3CYiZhzRAW18y0ZTTQEYqtqKkF +Zu90821fnZmv9ov761KyBZiibyrFVL0lvV+uyIbqRizBs73B6UlwGBaXCBOMIOAb +LjpHyx7kADCVW/RFo8AasAFOq73AI25jP4BKxQft3OJvx8Fi8eNy1gTIdGcL+oir +oQHIb/AUr9KZzVGTfu0uOMe9zkZQPXLjeSWdm4grECDdpbgyn43gKd8hdIaC2y+C +MMbHNYaz+ZZfRtsMRf3zUMNvxsNIrUam4SdHCh0Om7bCd39j8uB9Gr784N/Xx6ds +sPmuujz9dLQR6FgNgLzTqIA6me11zEZ7 +-----END CERTIFICATE----- + +# Issuer: CN=America Online Root Certification Authority 2 O=America Online Inc. +# Subject: CN=America Online Root Certification Authority 2 O=America Online Inc. +# Label: "America Online Root Certification Authority 2" +# Serial: 1 +# MD5 Fingerprint: d6:ed:3c:ca:e2:66:0f:af:10:43:0d:77:9b:04:09:bf +# SHA1 Fingerprint: 85:b5:ff:67:9b:0c:79:96:1f:c8:6e:44:22:00:46:13:db:17:92:84 +# 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 +-----BEGIN CERTIFICATE----- +MIIFpDCCA4ygAwIBAgIBATANBgkqhkiG9w0BAQUFADBjMQswCQYDVQQGEwJVUzEc +MBoGA1UEChMTQW1lcmljYSBPbmxpbmUgSW5jLjE2MDQGA1UEAxMtQW1lcmljYSBP +bmxpbmUgUm9vdCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSAyMB4XDTAyMDUyODA2 +MDAwMFoXDTM3MDkyOTE0MDgwMFowYzELMAkGA1UEBhMCVVMxHDAaBgNVBAoTE0Ft +ZXJpY2EgT25saW5lIEluYy4xNjA0BgNVBAMTLUFtZXJpY2EgT25saW5lIFJvb3Qg +Q2VydGlmaWNhdGlvbiBBdXRob3JpdHkgMjCCAiIwDQYJKoZIhvcNAQEBBQADggIP +ADCCAgoCggIBAMxBRR3pPU0Q9oyxQcngXssNt79Hc9PwVU3dxgz6sWYFas14tNwC +206B89enfHG8dWOgXeMHDEjsJcQDIPT/DjsS/5uN4cbVG7RtIuOx238hZK+GvFci +KtZHgVdEglZTvYYUAQv8f3SkWq7xuhG1m1hagLQ3eAkzfDJHA1zEpYNI9FdWboE2 +JxhP7JsowtS013wMPgwr38oE18aO6lhOqKSlGBxsRZijQdEt0sdtjRnxrXm3gT+9 +BoInLRBYBbV4Bbkv2wxrkJB+FFk4u5QkE+XRnRTf04JNRvCAOVIyD+OEsnpD8l7e +Xz8d3eOyG6ChKiMDbi4BFYdcpnV1x5dhvt6G3NRI270qv0pV2uh9UPu0gBe4lL8B +PeraunzgWGcXuVjgiIZGZ2ydEEdYMtA1fHkqkKJaEBEjNa0vzORKW6fIJ/KD3l67 +Xnfn6KVuY8INXWHQjNJsWiEOyiijzirplcdIz5ZvHZIlyMbGwcEMBawmxNJ10uEq +Z8A9W6Wa6897GqidFEXlD6CaZd4vKL3Ob5Rmg0gp2OpljK+T2WSfVVcmv2/LNzGZ +o2C7HK2JNDJiuEMhBnIMoVxtRsX6Kc8w3onccVvdtjc+31D1uAclJuW8tf48ArO3 ++L5DwYcRlJ4jbBeKuIonDFRH8KmzwICMoCfrHRnjB453cMor9H124HhnAgMBAAGj +YzBhMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFE1FwWg4u3OpaaEg5+31IqEj +FNeeMB8GA1UdIwQYMBaAFE1FwWg4u3OpaaEg5+31IqEjFNeeMA4GA1UdDwEB/wQE +AwIBhjANBgkqhkiG9w0BAQUFAAOCAgEAZ2sGuV9FOypLM7PmG2tZTiLMubekJcmn +xPBUlgtk87FYT15R/LKXeydlwuXK5w0MJXti4/qftIe3RUavg6WXSIylvfEWK5t2 +LHo1YGwRgJfMqZJS5ivmae2p+DYtLHe/YUjRYwu5W1LtGLBDQiKmsXeu3mnFzccc +obGlHBD7GL4acN3Bkku+KVqdPzW+5X1R+FXgJXUjhx5c3LqdsKyzadsXg8n33gy8 +CNyRnqjQ1xU3c6U1uPx+xURABsPr+CKAXEfOAuMRn0T//ZoyzH1kUQ7rVyZ2OuMe +IjzCpjbdGe+n/BLzJsBZMYVMnNjP36TMzCmT/5RtdlwTCJfy7aULTd3oyWgOZtMA +DjMSW7yV5TKQqLPGbIOtd+6Lfn6xqavT4fG2wLHqiMDn05DpKJKUe2h7lyoKZy2F +AjgQ5ANh1NolNscIWC2hp1GvMApJ9aZphwctREZ2jirlmjvXGKL8nDgQzMY70rUX +Om/9riW99XJZZLF0KjhfGEzfz3EEWjbUvy+ZnOjZurGV5gJLIaFb1cFPj65pbVPb +AZO1XB4Y3WRayhgoPmMEEf0cjQAPuDffZ4qdZqkCapH/E8ovXYO8h5Ns3CRRFgQl +Zvqz2cK6Kb6aSDiCmfS/O0oxGfm/jiEzFMpPVF/7zvuPcX/9XhmgD0uRuMRUvAaw +RY8mkaKO/qk= +-----END CERTIFICATE----- + +# Issuer: CN=AAA Certificate Services O=Comodo CA Limited +# Subject: CN=AAA Certificate Services O=Comodo CA Limited +# Label: "Comodo AAA Services root" +# Serial: 1 +# MD5 Fingerprint: 49:79:04:b0:eb:87:19:ac:47:b0:bc:11:51:9b:74:d0 +# SHA1 Fingerprint: d1:eb:23:a4:6d:17:d6:8f:d9:25:64:c2:f1:f1:60:17:64:d8:e3:49 +# 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 +-----BEGIN CERTIFICATE----- +MIIEMjCCAxqgAwIBAgIBATANBgkqhkiG9w0BAQUFADB7MQswCQYDVQQGEwJHQjEb +MBkGA1UECAwSR3JlYXRlciBNYW5jaGVzdGVyMRAwDgYDVQQHDAdTYWxmb3JkMRow +GAYDVQQKDBFDb21vZG8gQ0EgTGltaXRlZDEhMB8GA1UEAwwYQUFBIENlcnRpZmlj +YXRlIFNlcnZpY2VzMB4XDTA0MDEwMTAwMDAwMFoXDTI4MTIzMTIzNTk1OVowezEL +MAkGA1UEBhMCR0IxGzAZBgNVBAgMEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4GA1UE +BwwHU2FsZm9yZDEaMBgGA1UECgwRQ29tb2RvIENBIExpbWl0ZWQxITAfBgNVBAMM +GEFBQSBDZXJ0aWZpY2F0ZSBTZXJ2aWNlczCCASIwDQYJKoZIhvcNAQEBBQADggEP +ADCCAQoCggEBAL5AnfRu4ep2hxxNRUSOvkbIgwadwSr+GB+O5AL686tdUIoWMQua +BtDFcCLNSS1UY8y2bmhGC1Pqy0wkwLxyTurxFa70VJoSCsN6sjNg4tqJVfMiWPPe +3M/vg4aijJRPn2jymJBGhCfHdr/jzDUsi14HZGWCwEiwqJH5YZ92IFCokcdmtet4 +YgNW8IoaE+oxox6gmf049vYnMlhvB/VruPsUK6+3qszWY19zjNoFmag4qMsXeDZR +rOme9Hg6jc8P2ULimAyrL58OAd7vn5lJ8S3frHRNG5i1R8XlKdH5kBjHYpy+g8cm +ez6KJcfA3Z3mNWgQIJ2P2N7Sw4ScDV7oL8kCAwEAAaOBwDCBvTAdBgNVHQ4EFgQU +oBEKIz6W8Qfs4q8p74Klf9AwpLQwDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQF +MAMBAf8wewYDVR0fBHQwcjA4oDagNIYyaHR0cDovL2NybC5jb21vZG9jYS5jb20v +QUFBQ2VydGlmaWNhdGVTZXJ2aWNlcy5jcmwwNqA0oDKGMGh0dHA6Ly9jcmwuY29t +b2RvLm5ldC9BQUFDZXJ0aWZpY2F0ZVNlcnZpY2VzLmNybDANBgkqhkiG9w0BAQUF +AAOCAQEACFb8AvCb6P+k+tZ7xkSAzk/ExfYAWMymtrwUSWgEdujm7l3sAg9g1o1Q +GE8mTgHj5rCl7r+8dFRBv/38ErjHT1r0iWAFf2C3BUrz9vHCv8S5dIa2LX1rzNLz +Rt0vxuBqw8M0Ayx9lt1awg6nCpnBBYurDC/zXDrPbDdVCYfeU0BsWO/8tqtlbgT2 +G9w84FoVxp7Z8VlIMCFlA2zs6SFz7JsDoeA3raAVGI/6ugLOpyypEBMs1OUIJqsi +l2D4kF501KKaU73yqWjgom7C12yxow+ev+to51byrvLjKzg6CYG1a4XXvi3tPxq3 +smPi9WIsgtRqAEFQ8TmDn5XpNpaYbg== +-----END CERTIFICATE----- + +# Issuer: CN=Secure Certificate Services O=Comodo CA Limited +# Subject: CN=Secure Certificate Services O=Comodo CA Limited +# Label: "Comodo Secure Services root" +# Serial: 1 +# MD5 Fingerprint: d3:d9:bd:ae:9f:ac:67:24:b3:c8:1b:52:e1:b9:a9:bd +# SHA1 Fingerprint: 4a:65:d5:f4:1d:ef:39:b8:b8:90:4a:4a:d3:64:81:33:cf:c7:a1:d1 +# 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 +-----BEGIN CERTIFICATE----- +MIIEPzCCAyegAwIBAgIBATANBgkqhkiG9w0BAQUFADB+MQswCQYDVQQGEwJHQjEb +MBkGA1UECAwSR3JlYXRlciBNYW5jaGVzdGVyMRAwDgYDVQQHDAdTYWxmb3JkMRow +GAYDVQQKDBFDb21vZG8gQ0EgTGltaXRlZDEkMCIGA1UEAwwbU2VjdXJlIENlcnRp +ZmljYXRlIFNlcnZpY2VzMB4XDTA0MDEwMTAwMDAwMFoXDTI4MTIzMTIzNTk1OVow +fjELMAkGA1UEBhMCR0IxGzAZBgNVBAgMEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4G +A1UEBwwHU2FsZm9yZDEaMBgGA1UECgwRQ29tb2RvIENBIExpbWl0ZWQxJDAiBgNV +BAMMG1NlY3VyZSBDZXJ0aWZpY2F0ZSBTZXJ2aWNlczCCASIwDQYJKoZIhvcNAQEB +BQADggEPADCCAQoCggEBAMBxM4KK0HDrc4eCQNUd5MvJDkKQ+d40uaG6EfQlhfPM +cm3ye5drswfxdySRXyWP9nQ95IDC+DwN879A6vfIUtFyb+/Iq0G4bi4XKpVpDM3S +HpR7LZQdqnXXs5jLrLxkU0C8j6ysNstcrbvd4JQX7NFc0L/vpZXJkMWwrPsbQ996 +CF23uPJAGysnnlDOXmWCiIxe004MeuoIkbY2qitC++rCoznl2yY4rYsK7hljxxwk +3wN42ubqwUcaCwtGCd0C/N7Lh1/XMGNooa7cMqG6vv5Eq2i2pRcV/b3Vp6ea5EQz +6YiO/O1R65NxTq0B50SOqy3LqP4BSUjwwN3HaNiS/j0CAwEAAaOBxzCBxDAdBgNV +HQ4EFgQUPNiTiMLAggnMAZkGkyDpnnAJY08wDgYDVR0PAQH/BAQDAgEGMA8GA1Ud +EwEB/wQFMAMBAf8wgYEGA1UdHwR6MHgwO6A5oDeGNWh0dHA6Ly9jcmwuY29tb2Rv +Y2EuY29tL1NlY3VyZUNlcnRpZmljYXRlU2VydmljZXMuY3JsMDmgN6A1hjNodHRw +Oi8vY3JsLmNvbW9kby5uZXQvU2VjdXJlQ2VydGlmaWNhdGVTZXJ2aWNlcy5jcmww +DQYJKoZIhvcNAQEFBQADggEBAIcBbSMdflsXfcFhMs+P5/OKlFlm4J4oqF7Tt/Q0 +5qo5spcWxYJvMqTpjOev/e/C6LlLqqP05tqNZSH7uoDrJiiFGv45jN5bBAS0VPmj +Z55B+glSzAVIqMk/IQQezkhr/IXownuvf7fM+F86/TXGDe+X3EyrEeFryzHRbPtI +gKvcnDe4IRRLDXE97IMzbtFuMhbsmMcWi1mmNKsFVy2T96oTy9IT4rcuO81rUBcJ +aD61JlfutuC23bkpgHl9j6PwpCikFcSF9CfUa7/lXORlAnZUtOM3ZiTTGWHIUhDl +izeauan5Hb/qmZJhlv8BzaFfDbxxvA6sCx1HRR3B7Hzs/Sk= +-----END CERTIFICATE----- + +# Issuer: CN=Trusted Certificate Services O=Comodo CA Limited +# Subject: CN=Trusted Certificate Services O=Comodo CA Limited +# Label: "Comodo Trusted Services root" +# Serial: 1 +# MD5 Fingerprint: 91:1b:3f:6e:cd:9e:ab:ee:07:fe:1f:71:d2:b3:61:27 +# SHA1 Fingerprint: e1:9f:e3:0e:8b:84:60:9e:80:9b:17:0d:72:a8:c5:ba:6e:14:09:bd +# 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 +-----BEGIN CERTIFICATE----- +MIIEQzCCAyugAwIBAgIBATANBgkqhkiG9w0BAQUFADB/MQswCQYDVQQGEwJHQjEb +MBkGA1UECAwSR3JlYXRlciBNYW5jaGVzdGVyMRAwDgYDVQQHDAdTYWxmb3JkMRow +GAYDVQQKDBFDb21vZG8gQ0EgTGltaXRlZDElMCMGA1UEAwwcVHJ1c3RlZCBDZXJ0 +aWZpY2F0ZSBTZXJ2aWNlczAeFw0wNDAxMDEwMDAwMDBaFw0yODEyMzEyMzU5NTla +MH8xCzAJBgNVBAYTAkdCMRswGQYDVQQIDBJHcmVhdGVyIE1hbmNoZXN0ZXIxEDAO +BgNVBAcMB1NhbGZvcmQxGjAYBgNVBAoMEUNvbW9kbyBDQSBMaW1pdGVkMSUwIwYD +VQQDDBxUcnVzdGVkIENlcnRpZmljYXRlIFNlcnZpY2VzMIIBIjANBgkqhkiG9w0B +AQEFAAOCAQ8AMIIBCgKCAQEA33FvNlhTWvI2VFeAxHQIIO0Yfyod5jWaHiWsnOWW +fnJSoBVC21ndZHoa0Lh73TkVvFVIxO06AOoxEbrycXQaZ7jPM8yoMa+j49d/vzMt +TGo87IvDktJTdyR0nAducPy9C1t2ul/y/9c3S0pgePfw+spwtOpZqqPOSC+pw7IL +fhdyFgymBwwbOM/JYrc/oJOlh0Hyt3BAd9i+FHzjqMB6juljatEPmsbS9Is6FARW +1O24zG71++IsWL1/T2sr92AkWCTOJu80kTrV44HQsvAEAtdbtz6SrGsSivnkBbA7 +kUlcsutT6vifR4buv5XAwAaf0lteERv0xwQ1KdJVXOTt6wIDAQABo4HJMIHGMB0G +A1UdDgQWBBTFe1i97doladL3WRaoszLAeydb9DAOBgNVHQ8BAf8EBAMCAQYwDwYD +VR0TAQH/BAUwAwEB/zCBgwYDVR0fBHwwejA8oDqgOIY2aHR0cDovL2NybC5jb21v +ZG9jYS5jb20vVHJ1c3RlZENlcnRpZmljYXRlU2VydmljZXMuY3JsMDqgOKA2hjRo +dHRwOi8vY3JsLmNvbW9kby5uZXQvVHJ1c3RlZENlcnRpZmljYXRlU2VydmljZXMu +Y3JsMA0GCSqGSIb3DQEBBQUAA4IBAQDIk4E7ibSvuIQSTI3S8NtwuleGFTQQuS9/ +HrCoiWChisJ3DFBKmwCL2Iv0QeLQg4pKHBQGsKNoBXAxMKdTmw7pSqBYaWcOrp32 +pSxBvzwGa+RZzG0Q8ZZvH9/0BAKkn0U+yNj6NkZEUD+Cl5EfKNsYEYwq5GWDVxIS +jBc/lDb+XbDABHcTuPQV1T84zJQ6VdCsmPW6AF/ghhmBeC8owH7TzEIK9a5QoNE+ +xqFx7D+gIIxmOom0jtTYsU0lR+4viMi14QVFwL4Ucd56/Y57fU0IlqUSc/Atyjcn +dBInTMu2l+nZrghtWjlA3QVHdWpaIbOjGM9O9y5Xt5hwXsjEeLBi +-----END CERTIFICATE----- + +# Issuer: CN=UTN - DATACorp SGC O=The USERTRUST Network OU=http://www.usertrust.com +# Subject: CN=UTN - DATACorp SGC O=The USERTRUST Network OU=http://www.usertrust.com +# Label: "UTN DATACorp SGC Root CA" +# Serial: 91374294542884689855167577680241077609 +# MD5 Fingerprint: b3:a5:3e:77:21:6d:ac:4a:c0:c9:fb:d5:41:3d:ca:06 +# SHA1 Fingerprint: 58:11:9f:0e:12:82:87:ea:50:fd:d9:87:45:6f:4f:78:dc:fa:d6:d4 +# 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 +-----BEGIN CERTIFICATE----- +MIIEXjCCA0agAwIBAgIQRL4Mi1AAIbQR0ypoBqmtaTANBgkqhkiG9w0BAQUFADCB +kzELMAkGA1UEBhMCVVMxCzAJBgNVBAgTAlVUMRcwFQYDVQQHEw5TYWx0IExha2Ug +Q2l0eTEeMBwGA1UEChMVVGhlIFVTRVJUUlVTVCBOZXR3b3JrMSEwHwYDVQQLExho +dHRwOi8vd3d3LnVzZXJ0cnVzdC5jb20xGzAZBgNVBAMTElVUTiAtIERBVEFDb3Jw +IFNHQzAeFw05OTA2MjQxODU3MjFaFw0xOTA2MjQxOTA2MzBaMIGTMQswCQYDVQQG +EwJVUzELMAkGA1UECBMCVVQxFzAVBgNVBAcTDlNhbHQgTGFrZSBDaXR5MR4wHAYD +VQQKExVUaGUgVVNFUlRSVVNUIE5ldHdvcmsxITAfBgNVBAsTGGh0dHA6Ly93d3cu +dXNlcnRydXN0LmNvbTEbMBkGA1UEAxMSVVROIC0gREFUQUNvcnAgU0dDMIIBIjAN +BgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA3+5YEKIrblXEjr8uRgnn4AgPLit6 +E5Qbvfa2gI5lBZMAHryv4g+OGQ0SR+ysraP6LnD43m77VkIVni5c7yPeIbkFdicZ +D0/Ww5y0vpQZY/KmEQrrU0icvvIpOxboGqBMpsn0GFlowHDyUwDAXlCCpVZvNvlK +4ESGoE1O1kduSUrLZ9emxAW5jh70/P/N5zbgnAVssjMiFdC04MwXwLLA9P4yPykq +lXvY8qdOD1R8oQ2AswkDwf9c3V6aPryuvEeKaq5xyh+xKrhfQgUL7EYw0XILyulW +bfXv33i+Ybqypa4ETLyorGkVl73v67SMvzX41MPRKA5cOp9wGDMgd8SirwIDAQAB +o4GrMIGoMAsGA1UdDwQEAwIBxjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBRT +MtGzz3/64PGgXYVOktKeRR20TzA9BgNVHR8ENjA0MDKgMKAuhixodHRwOi8vY3Js +LnVzZXJ0cnVzdC5jb20vVVROLURBVEFDb3JwU0dDLmNybDAqBgNVHSUEIzAhBggr +BgEFBQcDAQYKKwYBBAGCNwoDAwYJYIZIAYb4QgQBMA0GCSqGSIb3DQEBBQUAA4IB +AQAnNZcAiosovcYzMB4p/OL31ZjUQLtgyr+rFywJNn9Q+kHcrpY6CiM+iVnJowft +Gzet/Hy+UUla3joKVAgWRcKZsYfNjGjgaQPpxE6YsjuMFrMOoAyYUJuTqXAJyCyj +j98C5OBxOvG0I3KgqgHf35g+FFCgMSa9KOlaMCZ1+XtgHI3zzVAmbQQnmt/VDUVH +KWss5nbZqSl9Mt3JNjy9rjXxEZ4du5A/EkdOjtd+D2JzHVImOBwYSf0wdJrE5SIv +2MCN7ZF6TACPcn9d2t0bi0Vr591pl6jFVkwPDPafepE39peC4N1xaf92P2BNPM/3 +mfnGV/TJVTl4uix5yaaIK/QI +-----END CERTIFICATE----- + +# Issuer: CN=UTN-USERFirst-Hardware O=The USERTRUST Network OU=http://www.usertrust.com +# Subject: CN=UTN-USERFirst-Hardware O=The USERTRUST Network OU=http://www.usertrust.com +# Label: "UTN USERFirst Hardware Root CA" +# Serial: 91374294542884704022267039221184531197 +# MD5 Fingerprint: 4c:56:41:e5:0d:bb:2b:e8:ca:a3:ed:18:08:ad:43:39 +# SHA1 Fingerprint: 04:83:ed:33:99:ac:36:08:05:87:22:ed:bc:5e:46:00:e3:be:f9:d7 +# 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 +-----BEGIN CERTIFICATE----- +MIIEdDCCA1ygAwIBAgIQRL4Mi1AAJLQR0zYq/mUK/TANBgkqhkiG9w0BAQUFADCB +lzELMAkGA1UEBhMCVVMxCzAJBgNVBAgTAlVUMRcwFQYDVQQHEw5TYWx0IExha2Ug +Q2l0eTEeMBwGA1UEChMVVGhlIFVTRVJUUlVTVCBOZXR3b3JrMSEwHwYDVQQLExho +dHRwOi8vd3d3LnVzZXJ0cnVzdC5jb20xHzAdBgNVBAMTFlVUTi1VU0VSRmlyc3Qt +SGFyZHdhcmUwHhcNOTkwNzA5MTgxMDQyWhcNMTkwNzA5MTgxOTIyWjCBlzELMAkG +A1UEBhMCVVMxCzAJBgNVBAgTAlVUMRcwFQYDVQQHEw5TYWx0IExha2UgQ2l0eTEe +MBwGA1UEChMVVGhlIFVTRVJUUlVTVCBOZXR3b3JrMSEwHwYDVQQLExhodHRwOi8v +d3d3LnVzZXJ0cnVzdC5jb20xHzAdBgNVBAMTFlVUTi1VU0VSRmlyc3QtSGFyZHdh +cmUwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCx98M4P7Sof885glFn +0G2f0v9Y8+efK+wNiVSZuTiZFvfgIXlIwrthdBKWHTxqctU8EGc6Oe0rE81m65UJ +M6Rsl7HoxuzBdXmcRl6Nq9Bq/bkqVRcQVLMZ8Jr28bFdtqdt++BxF2uiiPsA3/4a +MXcMmgF6sTLjKwEHOG7DpV4jvEWbe1DByTCP2+UretNb+zNAHqDVmBe8i4fDidNd +oI6yqqr2jmmIBsX6iSHzCJ1pLgkzmykNRg+MzEk0sGlRvfkGzWitZky8PqxhvQqI +DsjfPe58BEydCl5rkdbux+0ojatNh4lz0G6k0B4WixThdkQDf2Os5M1JnMWS9Ksy +oUhbAgMBAAGjgbkwgbYwCwYDVR0PBAQDAgHGMA8GA1UdEwEB/wQFMAMBAf8wHQYD +VR0OBBYEFKFyXyYbKJhDlV0HN9WFlp1L0sNFMEQGA1UdHwQ9MDswOaA3oDWGM2h0 +dHA6Ly9jcmwudXNlcnRydXN0LmNvbS9VVE4tVVNFUkZpcnN0LUhhcmR3YXJlLmNy +bDAxBgNVHSUEKjAoBggrBgEFBQcDAQYIKwYBBQUHAwUGCCsGAQUFBwMGBggrBgEF +BQcDBzANBgkqhkiG9w0BAQUFAAOCAQEARxkP3nTGmZev/K0oXnWO6y1n7k57K9cM +//bey1WiCuFMVGWTYGufEpytXoMs61quwOQt9ABjHbjAbPLPSbtNk28Gpgoiskli +CE7/yMgUsogWXecB5BKV5UU0s4tpvc+0hY91UZ59Ojg6FEgSxvunOxqNDYJAB+gE +CJChicsZUN/KHAG8HQQZexB2lzvukJDKxA4fFm517zP4029bHpbj4HR3dHuKom4t +3XbWOTCC8KucUvIqx69JXn7HaOWCgchqJ/kniCrVWFCVH/A7HFe7fRQ5YiuayZSS +KqMiDP+JJn1fIytH1xUdqWqeUQ0qUZ6B+dQ7XnASfxAynB67nfhmqA== +-----END CERTIFICATE----- + +# Issuer: CN=XRamp Global Certification Authority O=XRamp Security Services Inc OU=www.xrampsecurity.com +# Subject: CN=XRamp Global Certification Authority O=XRamp Security Services Inc OU=www.xrampsecurity.com +# Label: "XRamp Global CA Root" +# Serial: 107108908803651509692980124233745014957 +# MD5 Fingerprint: a1:0b:44:b3:ca:10:d8:00:6e:9d:0f:d8:0f:92:0a:d1 +# SHA1 Fingerprint: b8:01:86:d1:eb:9c:86:a5:41:04:cf:30:54:f3:4c:52:b7:e5:58:c6 +# 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 +-----BEGIN CERTIFICATE----- +MIIEMDCCAxigAwIBAgIQUJRs7Bjq1ZxN1ZfvdY+grTANBgkqhkiG9w0BAQUFADCB +gjELMAkGA1UEBhMCVVMxHjAcBgNVBAsTFXd3dy54cmFtcHNlY3VyaXR5LmNvbTEk +MCIGA1UEChMbWFJhbXAgU2VjdXJpdHkgU2VydmljZXMgSW5jMS0wKwYDVQQDEyRY +UmFtcCBHbG9iYWwgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwHhcNMDQxMTAxMTcx +NDA0WhcNMzUwMTAxMDUzNzE5WjCBgjELMAkGA1UEBhMCVVMxHjAcBgNVBAsTFXd3 +dy54cmFtcHNlY3VyaXR5LmNvbTEkMCIGA1UEChMbWFJhbXAgU2VjdXJpdHkgU2Vy +dmljZXMgSW5jMS0wKwYDVQQDEyRYUmFtcCBHbG9iYWwgQ2VydGlmaWNhdGlvbiBB +dXRob3JpdHkwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCYJB69FbS6 +38eMpSe2OAtp87ZOqCwuIR1cRN8hXX4jdP5efrRKt6atH67gBhbim1vZZ3RrXYCP +KZ2GG9mcDZhtdhAoWORlsH9KmHmf4MMxfoArtYzAQDsRhtDLooY2YKTVMIJt2W7Q +DxIEM5dfT2Fa8OT5kavnHTu86M/0ay00fOJIYRyO82FEzG+gSqmUsE3a56k0enI4 +qEHMPJQRfevIpoy3hsvKMzvZPTeL+3o+hiznc9cKV6xkmxnr9A8ECIqsAxcZZPRa +JSKNNCyy9mgdEm3Tih4U2sSPpuIjhdV6Db1q4Ons7Be7QhtnqiXtRYMh/MHJfNVi +PvryxS3T/dRlAgMBAAGjgZ8wgZwwEwYJKwYBBAGCNxQCBAYeBABDAEEwCwYDVR0P +BAQDAgGGMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFMZPoj0GY4QJnM5i5ASs +jVy16bYbMDYGA1UdHwQvMC0wK6ApoCeGJWh0dHA6Ly9jcmwueHJhbXBzZWN1cml0 +eS5jb20vWEdDQS5jcmwwEAYJKwYBBAGCNxUBBAMCAQEwDQYJKoZIhvcNAQEFBQAD +ggEBAJEVOQMBG2f7Shz5CmBbodpNl2L5JFMn14JkTpAuw0kbK5rc/Kh4ZzXxHfAR +vbdI4xD2Dd8/0sm2qlWkSLoC295ZLhVbO50WfUfXN+pfTXYSNrsf16GBBEYgoyxt +qZ4Bfj8pzgCT3/3JknOJiWSe5yvkHJEs0rnOfc5vMZnT5r7SHpDwCRR5XCOrTdLa +IR9NmXmd4c8nnxCbHIgNsIpkQTG4DmyQJKSbXHGPurt+HBvbaoAPIbzp26a3QPSy +i6mx5O+aGtA9aZnuqCij4Tyz8LIRnM98QObd50N9otg6tamN8jSZxNQQ4Qb9CYQQ +O+7ETPTsJ3xCwnR8gooJybQDJbw= +-----END CERTIFICATE----- + +# Issuer: O=The Go Daddy Group, Inc. OU=Go Daddy Class 2 Certification Authority +# Subject: O=The Go Daddy Group, Inc. OU=Go Daddy Class 2 Certification Authority +# Label: "Go Daddy Class 2 CA" +# Serial: 0 +# MD5 Fingerprint: 91:de:06:25:ab:da:fd:32:17:0c:bb:25:17:2a:84:67 +# SHA1 Fingerprint: 27:96:ba:e6:3f:18:01:e2:77:26:1b:a0:d7:77:70:02:8f:20:ee:e4 +# 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 +-----BEGIN CERTIFICATE----- +MIIEADCCAuigAwIBAgIBADANBgkqhkiG9w0BAQUFADBjMQswCQYDVQQGEwJVUzEh +MB8GA1UEChMYVGhlIEdvIERhZGR5IEdyb3VwLCBJbmMuMTEwLwYDVQQLEyhHbyBE +YWRkeSBDbGFzcyAyIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MB4XDTA0MDYyOTE3 +MDYyMFoXDTM0MDYyOTE3MDYyMFowYzELMAkGA1UEBhMCVVMxITAfBgNVBAoTGFRo +ZSBHbyBEYWRkeSBHcm91cCwgSW5jLjExMC8GA1UECxMoR28gRGFkZHkgQ2xhc3Mg +MiBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTCCASAwDQYJKoZIhvcNAQEBBQADggEN +ADCCAQgCggEBAN6d1+pXGEmhW+vXX0iG6r7d/+TvZxz0ZWizV3GgXne77ZtJ6XCA +PVYYYwhv2vLM0D9/AlQiVBDYsoHUwHU9S3/Hd8M+eKsaA7Ugay9qK7HFiH7Eux6w +wdhFJ2+qN1j3hybX2C32qRe3H3I2TqYXP2WYktsqbl2i/ojgC95/5Y0V4evLOtXi +EqITLdiOr18SPaAIBQi2XKVlOARFmR6jYGB0xUGlcmIbYsUfb18aQr4CUWWoriMY +avx4A6lNf4DD+qta/KFApMoZFv6yyO9ecw3ud72a9nmYvLEHZ6IVDd2gWMZEewo+ +YihfukEHU1jPEX44dMX4/7VpkI+EdOqXG68CAQOjgcAwgb0wHQYDVR0OBBYEFNLE +sNKR1EwRcbNhyz2h/t2oatTjMIGNBgNVHSMEgYUwgYKAFNLEsNKR1EwRcbNhyz2h +/t2oatTjoWekZTBjMQswCQYDVQQGEwJVUzEhMB8GA1UEChMYVGhlIEdvIERhZGR5 +IEdyb3VwLCBJbmMuMTEwLwYDVQQLEyhHbyBEYWRkeSBDbGFzcyAyIENlcnRpZmlj +YXRpb24gQXV0aG9yaXR5ggEAMAwGA1UdEwQFMAMBAf8wDQYJKoZIhvcNAQEFBQAD +ggEBADJL87LKPpH8EsahB4yOd6AzBhRckB4Y9wimPQoZ+YeAEW5p5JYXMP80kWNy +OO7MHAGjHZQopDH2esRU1/blMVgDoszOYtuURXO1v0XJJLXVggKtI3lpjbi2Tc7P +TMozI+gciKqdi0FuFskg5YmezTvacPd+mSYgFFQlq25zheabIZ0KbIIOqPjCDPoQ +HmyW74cNxA9hi63ugyuV+I6ShHI56yDqg+2DzZduCLzrTia2cyvk0/ZM/iZx4mER +dEr/VxqHD3VILs9RaRegAhJhldXRQLIQTO7ErBBDpqWeCtWVYpoNz4iCxTIM5Cuf +ReYNnyicsbkqWletNw+vHX/bvZ8= +-----END CERTIFICATE----- + +# Issuer: O=Starfield Technologies, Inc. OU=Starfield Class 2 Certification Authority +# Subject: O=Starfield Technologies, Inc. OU=Starfield Class 2 Certification Authority +# Label: "Starfield Class 2 CA" +# Serial: 0 +# MD5 Fingerprint: 32:4a:4b:bb:c8:63:69:9b:be:74:9a:c6:dd:1d:46:24 +# SHA1 Fingerprint: ad:7e:1c:28:b0:64:ef:8f:60:03:40:20:14:c3:d0:e3:37:0e:b5:8a +# 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 +-----BEGIN CERTIFICATE----- +MIIEDzCCAvegAwIBAgIBADANBgkqhkiG9w0BAQUFADBoMQswCQYDVQQGEwJVUzEl +MCMGA1UEChMcU3RhcmZpZWxkIFRlY2hub2xvZ2llcywgSW5jLjEyMDAGA1UECxMp +U3RhcmZpZWxkIENsYXNzIDIgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwHhcNMDQw +NjI5MTczOTE2WhcNMzQwNjI5MTczOTE2WjBoMQswCQYDVQQGEwJVUzElMCMGA1UE +ChMcU3RhcmZpZWxkIFRlY2hub2xvZ2llcywgSW5jLjEyMDAGA1UECxMpU3RhcmZp +ZWxkIENsYXNzIDIgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwggEgMA0GCSqGSIb3 +DQEBAQUAA4IBDQAwggEIAoIBAQC3Msj+6XGmBIWtDBFk385N78gDGIc/oav7PKaf +8MOh2tTYbitTkPskpD6E8J7oX+zlJ0T1KKY/e97gKvDIr1MvnsoFAZMej2YcOadN ++lq2cwQlZut3f+dZxkqZJRRU6ybH838Z1TBwj6+wRir/resp7defqgSHo9T5iaU0 +X9tDkYI22WY8sbi5gv2cOj4QyDvvBmVmepsZGD3/cVE8MC5fvj13c7JdBmzDI1aa +K4UmkhynArPkPw2vCHmCuDY96pzTNbO8acr1zJ3o/WSNF4Azbl5KXZnJHoe0nRrA +1W4TNSNe35tfPe/W93bC6j67eA0cQmdrBNj41tpvi/JEoAGrAgEDo4HFMIHCMB0G +A1UdDgQWBBS/X7fRzt0fhvRbVazc1xDCDqmI5zCBkgYDVR0jBIGKMIGHgBS/X7fR +zt0fhvRbVazc1xDCDqmI56FspGowaDELMAkGA1UEBhMCVVMxJTAjBgNVBAoTHFN0 +YXJmaWVsZCBUZWNobm9sb2dpZXMsIEluYy4xMjAwBgNVBAsTKVN0YXJmaWVsZCBD +bGFzcyAyIENlcnRpZmljYXRpb24gQXV0aG9yaXR5ggEAMAwGA1UdEwQFMAMBAf8w +DQYJKoZIhvcNAQEFBQADggEBAAWdP4id0ckaVaGsafPzWdqbAYcaT1epoXkJKtv3 +L7IezMdeatiDh6GX70k1PncGQVhiv45YuApnP+yz3SFmH8lU+nLMPUxA2IGvd56D +eruix/U0F47ZEUD0/CwqTRV/p2JdLiXTAAsgGh1o+Re49L2L7ShZ3U0WixeDyLJl +xy16paq8U4Zt3VekyvggQQto8PT7dL5WXXp59fkdheMtlb71cZBDzI0fmgAKhynp +VSJYACPq4xJDKVtHCN2MQWplBqjlIapBtJUhlbl90TSrE9atvNziPTnNvT51cKEY +WQPJIrSPnNVeKtelttQKbfi3QBFGmh95DmK/D5fs4C8fF5Q= +-----END CERTIFICATE----- + +# Issuer: CN=StartCom Certification Authority O=StartCom Ltd. OU=Secure Digital Certificate Signing +# Subject: CN=StartCom Certification Authority O=StartCom Ltd. OU=Secure Digital Certificate Signing +# Label: "StartCom Certification Authority" +# Serial: 1 +# MD5 Fingerprint: 22:4d:8f:8a:fc:f7:35:c2:bb:57:34:90:7b:8b:22:16 +# SHA1 Fingerprint: 3e:2b:f7:f2:03:1b:96:f3:8c:e6:c4:d8:a8:5d:3e:2d:58:47:6a:0f +# 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 +-----BEGIN CERTIFICATE----- +MIIHyTCCBbGgAwIBAgIBATANBgkqhkiG9w0BAQUFADB9MQswCQYDVQQGEwJJTDEW +MBQGA1UEChMNU3RhcnRDb20gTHRkLjErMCkGA1UECxMiU2VjdXJlIERpZ2l0YWwg +Q2VydGlmaWNhdGUgU2lnbmluZzEpMCcGA1UEAxMgU3RhcnRDb20gQ2VydGlmaWNh +dGlvbiBBdXRob3JpdHkwHhcNMDYwOTE3MTk0NjM2WhcNMzYwOTE3MTk0NjM2WjB9 +MQswCQYDVQQGEwJJTDEWMBQGA1UEChMNU3RhcnRDb20gTHRkLjErMCkGA1UECxMi +U2VjdXJlIERpZ2l0YWwgQ2VydGlmaWNhdGUgU2lnbmluZzEpMCcGA1UEAxMgU3Rh +cnRDb20gQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwggIiMA0GCSqGSIb3DQEBAQUA +A4ICDwAwggIKAoICAQDBiNsJvGxGfHiflXu1M5DycmLWwTYgIiRezul38kMKogZk +pMyONvg45iPwbm2xPN1yo4UcodM9tDMr0y+v/uqwQVlntsQGfQqedIXWeUyAN3rf +OQVSWff0G0ZDpNKFhdLDcfN1YjS6LIp/Ho/u7TTQEceWzVI9ujPW3U3eCztKS5/C +Ji/6tRYccjV3yjxd5srhJosaNnZcAdt0FCX+7bWgiA/deMotHweXMAEtcnn6RtYT +Kqi5pquDSR3l8u/d5AGOGAqPY1MWhWKpDhk6zLVmpsJrdAfkK+F2PrRt2PZE4XNi +HzvEvqBTViVsUQn3qqvKv3b9bZvzndu/PWa8DFaqr5hIlTpL36dYUNk4dalb6kMM +Av+Z6+hsTXBbKWWc3apdzK8BMewM69KN6Oqce+Zu9ydmDBpI125C4z/eIT574Q1w ++2OqqGwaVLRcJXrJosmLFqa7LH4XXgVNWG4SHQHuEhANxjJ/GP/89PrNbpHoNkm+ +Gkhpi8KWTRoSsmkXwQqQ1vp5Iki/untp+HDH+no32NgN0nZPV/+Qt+OR0t3vwmC3 +Zzrd/qqc8NSLf3Iizsafl7b4r4qgEKjZ+xjGtrVcUjyJthkqcwEKDwOzEmDyei+B +26Nu/yYwl/WL3YlXtq09s68rxbd2AvCl1iuahhQqcvbjM4xdCUsT37uMdBNSSwID +AQABo4ICUjCCAk4wDAYDVR0TBAUwAwEB/zALBgNVHQ8EBAMCAa4wHQYDVR0OBBYE +FE4L7xqkQFulF2mHMMo0aEPQQa7yMGQGA1UdHwRdMFswLKAqoCiGJmh0dHA6Ly9j +ZXJ0LnN0YXJ0Y29tLm9yZy9zZnNjYS1jcmwuY3JsMCugKaAnhiVodHRwOi8vY3Js +LnN0YXJ0Y29tLm9yZy9zZnNjYS1jcmwuY3JsMIIBXQYDVR0gBIIBVDCCAVAwggFM +BgsrBgEEAYG1NwEBATCCATswLwYIKwYBBQUHAgEWI2h0dHA6Ly9jZXJ0LnN0YXJ0 +Y29tLm9yZy9wb2xpY3kucGRmMDUGCCsGAQUFBwIBFilodHRwOi8vY2VydC5zdGFy +dGNvbS5vcmcvaW50ZXJtZWRpYXRlLnBkZjCB0AYIKwYBBQUHAgIwgcMwJxYgU3Rh +cnQgQ29tbWVyY2lhbCAoU3RhcnRDb20pIEx0ZC4wAwIBARqBl0xpbWl0ZWQgTGlh +YmlsaXR5LCByZWFkIHRoZSBzZWN0aW9uICpMZWdhbCBMaW1pdGF0aW9ucyogb2Yg +dGhlIFN0YXJ0Q29tIENlcnRpZmljYXRpb24gQXV0aG9yaXR5IFBvbGljeSBhdmFp +bGFibGUgYXQgaHR0cDovL2NlcnQuc3RhcnRjb20ub3JnL3BvbGljeS5wZGYwEQYJ +YIZIAYb4QgEBBAQDAgAHMDgGCWCGSAGG+EIBDQQrFilTdGFydENvbSBGcmVlIFNT +TCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTANBgkqhkiG9w0BAQUFAAOCAgEAFmyZ +9GYMNPXQhV59CuzaEE44HF7fpiUFS5Eyweg78T3dRAlbB0mKKctmArexmvclmAk8 +jhvh3TaHK0u7aNM5Zj2gJsfyOZEdUauCe37Vzlrk4gNXcGmXCPleWKYK34wGmkUW +FjgKXlf2Ysd6AgXmvB618p70qSmD+LIU424oh0TDkBreOKk8rENNZEXO3SipXPJz +ewT4F+irsfMuXGRuczE6Eri8sxHkfY+BUZo7jYn0TZNmezwD7dOaHZrzZVD1oNB1 +ny+v8OqCQ5j4aZyJecRDjkZy42Q2Eq/3JR44iZB3fsNrarnDy0RLrHiQi+fHLB5L +EUTINFInzQpdn4XBidUaePKVEFMy3YCEZnXZtWgo+2EuvoSoOMCZEoalHmdkrQYu +L6lwhceWD3yJZfWOQ1QOq92lgDmUYMA0yZZwLKMS9R9Ie70cfmu3nZD0Ijuu+Pwq +yvqCUqDvr0tVk+vBtfAii6w0TiYiBKGHLHVKt+V9E9e4DGTANtLJL4YSjCMJwRuC +O3NJo2pXh5Tl1njFmUNj403gdy3hZZlyaQQaRwnmDwFWJPsfvw55qVguucQJAX6V +um0ABj6y6koQOdjQK/W/7HW/lwLFCRsI3FU34oH7N4RDYiDK51ZLZer+bMEkkySh +NOsF/5oirpt9P/FlUQqmMGqz9IgcgA38corog14= +-----END CERTIFICATE----- + +# Issuer: CN=DigiCert Assured ID Root CA O=DigiCert Inc OU=www.digicert.com +# Subject: CN=DigiCert Assured ID Root CA O=DigiCert Inc OU=www.digicert.com +# Label: "DigiCert Assured ID Root CA" +# Serial: 17154717934120587862167794914071425081 +# MD5 Fingerprint: 87:ce:0b:7b:2a:0e:49:00:e1:58:71:9b:37:a8:93:72 +# SHA1 Fingerprint: 05:63:b8:63:0d:62:d7:5a:bb:c8:ab:1e:4b:df:b5:a8:99:b2:4d:43 +# 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 +-----BEGIN CERTIFICATE----- +MIIDtzCCAp+gAwIBAgIQDOfg5RfYRv6P5WD8G/AwOTANBgkqhkiG9w0BAQUFADBl +MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3 +d3cuZGlnaWNlcnQuY29tMSQwIgYDVQQDExtEaWdpQ2VydCBBc3N1cmVkIElEIFJv +b3QgQ0EwHhcNMDYxMTEwMDAwMDAwWhcNMzExMTEwMDAwMDAwWjBlMQswCQYDVQQG +EwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNl +cnQuY29tMSQwIgYDVQQDExtEaWdpQ2VydCBBc3N1cmVkIElEIFJvb3QgQ0EwggEi +MA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCtDhXO5EOAXLGH87dg+XESpa7c +JpSIqvTO9SA5KFhgDPiA2qkVlTJhPLWxKISKityfCgyDF3qPkKyK53lTXDGEKvYP +mDI2dsze3Tyoou9q+yHyUmHfnyDXH+Kx2f4YZNISW1/5WBg1vEfNoTb5a3/UsDg+ +wRvDjDPZ2C8Y/igPs6eD1sNuRMBhNZYW/lmci3Zt1/GiSw0r/wty2p5g0I6QNcZ4 +VYcgoc/lbQrISXwxmDNsIumH0DJaoroTghHtORedmTpyoeb6pNnVFzF1roV9Iq4/ +AUaG9ih5yLHa5FcXxH4cDrC0kqZWs72yl+2qp/C3xag/lRbQ/6GW6whfGHdPAgMB +AAGjYzBhMA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQW +BBRF66Kv9JLLgjEtUYunpyGd823IDzAfBgNVHSMEGDAWgBRF66Kv9JLLgjEtUYun +pyGd823IDzANBgkqhkiG9w0BAQUFAAOCAQEAog683+Lt8ONyc3pklL/3cmbYMuRC +dWKuh+vy1dneVrOfzM4UKLkNl2BcEkxY5NM9g0lFWJc1aRqoR+pWxnmrEthngYTf +fwk8lOa4JiwgvT2zKIn3X/8i4peEH+ll74fg38FnSbNd67IJKusm7Xi+fT8r87cm +NW1fiQG2SVufAQWbqz0lwcy2f8Lxb4bG+mRo64EtlOtCt/qMHt1i8b5QZ7dsvfPx +H2sMNgcWfzd8qVttevESRmCD1ycEvkvOl77DZypoEd+A5wwzZr8TDRRu838fYxAe ++o0bJW1sj6W3YQGx0qMmoRBxna3iw/nDmVG3KwcIzi7mULKn+gpFL6Lw8g== +-----END CERTIFICATE----- + +# Issuer: CN=DigiCert Global Root CA O=DigiCert Inc OU=www.digicert.com +# Subject: CN=DigiCert Global Root CA O=DigiCert Inc OU=www.digicert.com +# Label: "DigiCert Global Root CA" +# Serial: 10944719598952040374951832963794454346 +# MD5 Fingerprint: 79:e4:a9:84:0d:7d:3a:96:d7:c0:4f:e2:43:4c:89:2e +# SHA1 Fingerprint: a8:98:5d:3a:65:e5:e5:c4:b2:d7:d6:6d:40:c6:dd:2f:b1:9c:54:36 +# 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 +-----BEGIN CERTIFICATE----- +MIIDrzCCApegAwIBAgIQCDvgVpBCRrGhdWrJWZHHSjANBgkqhkiG9w0BAQUFADBh +MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3 +d3cuZGlnaWNlcnQuY29tMSAwHgYDVQQDExdEaWdpQ2VydCBHbG9iYWwgUm9vdCBD +QTAeFw0wNjExMTAwMDAwMDBaFw0zMTExMTAwMDAwMDBaMGExCzAJBgNVBAYTAlVT +MRUwEwYDVQQKEwxEaWdpQ2VydCBJbmMxGTAXBgNVBAsTEHd3dy5kaWdpY2VydC5j +b20xIDAeBgNVBAMTF0RpZ2lDZXJ0IEdsb2JhbCBSb290IENBMIIBIjANBgkqhkiG +9w0BAQEFAAOCAQ8AMIIBCgKCAQEA4jvhEXLeqKTTo1eqUKKPC3eQyaKl7hLOllsB +CSDMAZOnTjC3U/dDxGkAV53ijSLdhwZAAIEJzs4bg7/fzTtxRuLWZscFs3YnFo97 +nh6Vfe63SKMI2tavegw5BmV/Sl0fvBf4q77uKNd0f3p4mVmFaG5cIzJLv07A6Fpt +43C/dxC//AH2hdmoRBBYMql1GNXRor5H4idq9Joz+EkIYIvUX7Q6hL+hqkpMfT7P +T19sdl6gSzeRntwi5m3OFBqOasv+zbMUZBfHWymeMr/y7vrTC0LUq7dBMtoM1O/4 +gdW7jVg/tRvoSSiicNoxBN33shbyTApOB6jtSj1etX+jkMOvJwIDAQABo2MwYTAO +BgNVHQ8BAf8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUA95QNVbR +TLtm8KPiGxvDl7I90VUwHwYDVR0jBBgwFoAUA95QNVbRTLtm8KPiGxvDl7I90VUw +DQYJKoZIhvcNAQEFBQADggEBAMucN6pIExIK+t1EnE9SsPTfrgT1eXkIoyQY/Esr +hMAtudXH/vTBH1jLuG2cenTnmCmrEbXjcKChzUyImZOMkXDiqw8cvpOp/2PV5Adg +06O/nVsJ8dWO41P0jmP6P6fbtGbfYmbW0W5BjfIttep3Sp+dWOIrWcBAI+0tKIJF +PnlUkiaY4IBIqDfv8NZ5YBberOgOzW6sRBc4L0na4UU+Krk2U886UAb3LujEV0ls +YSEY1QSteDwsOoBrp+uvFRTp2InBuThs4pFsiv9kuXclVzDAGySj4dzp30d8tbQk +CAUw7C29C79Fv1C5qfPrmAESrciIxpg0X40KPMbp1ZWVbd4= +-----END CERTIFICATE----- + +# Issuer: CN=DigiCert High Assurance EV Root CA O=DigiCert Inc OU=www.digicert.com +# Subject: CN=DigiCert High Assurance EV Root CA O=DigiCert Inc OU=www.digicert.com +# Label: "DigiCert High Assurance EV Root CA" +# Serial: 3553400076410547919724730734378100087 +# MD5 Fingerprint: d4:74:de:57:5c:39:b2:d3:9c:85:83:c5:c0:65:49:8a +# SHA1 Fingerprint: 5f:b7:ee:06:33:e2:59:db:ad:0c:4c:9a:e6:d3:8f:1a:61:c7:dc:25 +# 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 +-----BEGIN CERTIFICATE----- +MIIDxTCCAq2gAwIBAgIQAqxcJmoLQJuPC3nyrkYldzANBgkqhkiG9w0BAQUFADBs +MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3 +d3cuZGlnaWNlcnQuY29tMSswKQYDVQQDEyJEaWdpQ2VydCBIaWdoIEFzc3VyYW5j +ZSBFViBSb290IENBMB4XDTA2MTExMDAwMDAwMFoXDTMxMTExMDAwMDAwMFowbDEL +MAkGA1UEBhMCVVMxFTATBgNVBAoTDERpZ2lDZXJ0IEluYzEZMBcGA1UECxMQd3d3 +LmRpZ2ljZXJ0LmNvbTErMCkGA1UEAxMiRGlnaUNlcnQgSGlnaCBBc3N1cmFuY2Ug +RVYgUm9vdCBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMbM5XPm ++9S75S0tMqbf5YE/yc0lSbZxKsPVlDRnogocsF9ppkCxxLeyj9CYpKlBWTrT3JTW +PNt0OKRKzE0lgvdKpVMSOO7zSW1xkX5jtqumX8OkhPhPYlG++MXs2ziS4wblCJEM +xChBVfvLWokVfnHoNb9Ncgk9vjo4UFt3MRuNs8ckRZqnrG0AFFoEt7oT61EKmEFB +Ik5lYYeBQVCmeVyJ3hlKV9Uu5l0cUyx+mM0aBhakaHPQNAQTXKFx01p8VdteZOE3 +hzBWBOURtCmAEvF5OYiiAhF8J2a3iLd48soKqDirCmTCv2ZdlYTBoSUeh10aUAsg +EsxBu24LUTi4S8sCAwEAAaNjMGEwDgYDVR0PAQH/BAQDAgGGMA8GA1UdEwEB/wQF +MAMBAf8wHQYDVR0OBBYEFLE+w2kD+L9HAdSYJhoIAu9jZCvDMB8GA1UdIwQYMBaA +FLE+w2kD+L9HAdSYJhoIAu9jZCvDMA0GCSqGSIb3DQEBBQUAA4IBAQAcGgaX3Nec +nzyIZgYIVyHbIUf4KmeqvxgydkAQV8GK83rZEWWONfqe/EW1ntlMMUu4kehDLI6z +eM7b41N5cdblIZQB2lWHmiRk9opmzN6cN82oNLFpmyPInngiK3BD41VHMWEZ71jF +hS9OMPagMRYjyOfiZRYzy78aG6A9+MpeizGLYAiJLQwGXFK3xPkKmNEVX58Svnw2 +Yzi9RKR/5CYrCsSXaQ3pjOLAEFe4yHYSkVXySGnYvCoCWw9E1CAx2/S6cCZdkGCe +vEsXCS+0yx5DaMkHJ8HSXPfqIbloEpw8nL+e/IBcm2PN7EeqJSdnoDfzAIJ9VNep ++OkuE6N36B9K +-----END CERTIFICATE----- + +# Issuer: CN=GeoTrust Primary Certification Authority O=GeoTrust Inc. +# Subject: CN=GeoTrust Primary Certification Authority O=GeoTrust Inc. +# Label: "GeoTrust Primary Certification Authority" +# Serial: 32798226551256963324313806436981982369 +# MD5 Fingerprint: 02:26:c3:01:5e:08:30:37:43:a9:d0:7d:cf:37:e6:bf +# SHA1 Fingerprint: 32:3c:11:8e:1b:f7:b8:b6:52:54:e2:e2:10:0d:d6:02:90:37:f0:96 +# 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 +-----BEGIN CERTIFICATE----- +MIIDfDCCAmSgAwIBAgIQGKy1av1pthU6Y2yv2vrEoTANBgkqhkiG9w0BAQUFADBY +MQswCQYDVQQGEwJVUzEWMBQGA1UEChMNR2VvVHJ1c3QgSW5jLjExMC8GA1UEAxMo +R2VvVHJ1c3QgUHJpbWFyeSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAeFw0wNjEx +MjcwMDAwMDBaFw0zNjA3MTYyMzU5NTlaMFgxCzAJBgNVBAYTAlVTMRYwFAYDVQQK +Ew1HZW9UcnVzdCBJbmMuMTEwLwYDVQQDEyhHZW9UcnVzdCBQcmltYXJ5IENlcnRp +ZmljYXRpb24gQXV0aG9yaXR5MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKC +AQEAvrgVe//UfH1nrYNke8hCUy3f9oQIIGHWAVlqnEQRr+92/ZV+zmEwu3qDXwK9 +AWbK7hWNb6EwnL2hhZ6UOvNWiAAxz9juapYC2e0DjPt1befquFUWBRaa9OBesYjA +ZIVcFU2Ix7e64HXprQU9nceJSOC7KMgD4TCTZF5SwFlwIjVXiIrxlQqD17wxcwE0 +7e9GceBrAqg1cmuXm2bgyxx5X9gaBGgeRwLmnWDiNpcB3841kt++Z8dtd1k7j53W +kBWUvEI0EME5+bEnPn7WinXFsq+W06Lem+SYvn3h6YGttm/81w7a4DSwDRp35+MI +mO9Y+pyEtzavwt+s0vQQBnBxNQIDAQABo0IwQDAPBgNVHRMBAf8EBTADAQH/MA4G +A1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQULNVQQZcVi/CPNmFbSvtr2ZnJM5IwDQYJ +KoZIhvcNAQEFBQADggEBAFpwfyzdtzRP9YZRqSa+S7iq8XEN3GHHoOo0Hnp3DwQ1 +6CePbJC/kRYkRj5KTs4rFtULUh38H2eiAkUxT87z+gOneZ1TatnaYzr4gNfTmeGl +4b7UVXGYNTq+k+qurUKykG/g/CFNNWMziUnWm07Kx+dOCQD32sfvmWKZd7aVIl6K +oKv0uHiYyjgZmclynnjNS6yvGaBzEi38wkG6gZHaFloxt/m0cYASSJlyc1pZU8Fj +UjPtp8nSOQJw+uCxQmYpqptR7TBUIhRf2asdweSU8Pj1K/fqynhG1riR/aYNKxoU +AT6A8EKglQdebc3MS6RFjasS6LPeWuWgfOgPIh1a6Vk= +-----END CERTIFICATE----- + +# Issuer: CN=thawte Primary Root CA O=thawte, Inc. OU=Certification Services Division/(c) 2006 thawte, Inc. - For authorized use only +# Subject: CN=thawte Primary Root CA O=thawte, Inc. OU=Certification Services Division/(c) 2006 thawte, Inc. - For authorized use only +# Label: "thawte Primary Root CA" +# Serial: 69529181992039203566298953787712940909 +# MD5 Fingerprint: 8c:ca:dc:0b:22:ce:f5:be:72:ac:41:1a:11:a8:d8:12 +# SHA1 Fingerprint: 91:c6:d6:ee:3e:8a:c8:63:84:e5:48:c2:99:29:5c:75:6c:81:7b:81 +# 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 -----BEGIN CERTIFICATE----- MIIEIDCCAwigAwIBAgIQNE7VVyDV7exJ9C/ON9srbTANBgkqhkiG9w0BAQUFADCB qTELMAkGA1UEBhMCVVMxFTATBgNVBAoTDHRoYXd0ZSwgSW5jLjEoMCYGA1UECxMf @@ -568,9 +1366,13 @@ LHbTY5xZ3Y+m4Q6gLkH3LpVHz7z9M/P2C2F+fpErgUfCJzDupxBdN49cOSvkBPB7 jVaMaA== -----END CERTIFICATE----- -VeriSign Class 3 Public Primary Certification Authority - G5 -============================================================ - +# 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 +# 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 +# Label: "VeriSign Class 3 Public Primary Certification Authority - G5" +# Serial: 33037644167568058970164719475676101450 +# MD5 Fingerprint: cb:17:e4:31:67:3e:e2:09:fe:45:57:93:f3:0a:fa:1c +# SHA1 Fingerprint: 4e:b6:d5:78:49:9b:1c:cf:5f:58:1e:ad:56:be:3d:9b:67:44:a5:e5 +# 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 -----BEGIN CERTIFICATE----- MIIE0zCCA7ugAwIBAgIQGNrRniZ96LtKIVjNzGs7SjANBgkqhkiG9w0BAQUFADCB yjELMAkGA1UEBhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYDVQQL @@ -600,139 +1402,782 @@ WE9gyn6CagsCqiUXObXbf+eEZSqVir2G3l6BFoMtEMze/aiCKm0oHw0LxOXnGiYZ hnacRHr2lVz2XTIIM6RUthg/aFzyQkqFOFSDX9HoLPKsEdao7WNq -----END CERTIFICATE----- -Entrust.net Secure Server Certification Authority -================================================= +# Issuer: CN=COMODO Certification Authority O=COMODO CA Limited +# Subject: CN=COMODO Certification Authority O=COMODO CA Limited +# Label: "COMODO Certification Authority" +# Serial: 104350513648249232941998508985834464573 +# MD5 Fingerprint: 5c:48:dc:f7:42:72:ec:56:94:6d:1c:cc:71:35:80:75 +# SHA1 Fingerprint: 66:31:bf:9e:f7:4f:9e:b6:c9:d5:a6:0c:ba:6a:be:d1:f7:bd:ef:7b +# 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 +-----BEGIN CERTIFICATE----- +MIIEHTCCAwWgAwIBAgIQToEtioJl4AsC7j41AkblPTANBgkqhkiG9w0BAQUFADCB +gTELMAkGA1UEBhMCR0IxGzAZBgNVBAgTEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4G +A1UEBxMHU2FsZm9yZDEaMBgGA1UEChMRQ09NT0RPIENBIExpbWl0ZWQxJzAlBgNV +BAMTHkNPTU9ETyBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAeFw0wNjEyMDEwMDAw +MDBaFw0yOTEyMzEyMzU5NTlaMIGBMQswCQYDVQQGEwJHQjEbMBkGA1UECBMSR3Jl +YXRlciBNYW5jaGVzdGVyMRAwDgYDVQQHEwdTYWxmb3JkMRowGAYDVQQKExFDT01P +RE8gQ0EgTGltaXRlZDEnMCUGA1UEAxMeQ09NT0RPIENlcnRpZmljYXRpb24gQXV0 +aG9yaXR5MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA0ECLi3LjkRv3 +UcEbVASY06m/weaKXTuH+7uIzg3jLz8GlvCiKVCZrts7oVewdFFxze1CkU1B/qnI +2GqGd0S7WWaXUF601CxwRM/aN5VCaTwwxHGzUvAhTaHYujl8HJ6jJJ3ygxaYqhZ8 +Q5sVW7euNJH+1GImGEaaP+vB+fGQV+useg2L23IwambV4EajcNxo2f8ESIl33rXp ++2dtQem8Ob0y2WIC8bGoPW43nOIv4tOiJovGuFVDiOEjPqXSJDlqR6sA1KGzqSX+ +DT+nHbrTUcELpNqsOO9VUCQFZUaTNE8tja3G1CEZ0o7KBWFxB3NH5YoZEr0ETc5O +nKVIrLsm9wIDAQABo4GOMIGLMB0GA1UdDgQWBBQLWOWLxkwVN6RAqTCpIb5HNlpW +/zAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zBJBgNVHR8EQjBAMD6g +PKA6hjhodHRwOi8vY3JsLmNvbW9kb2NhLmNvbS9DT01PRE9DZXJ0aWZpY2F0aW9u +QXV0aG9yaXR5LmNybDANBgkqhkiG9w0BAQUFAAOCAQEAPpiem/Yb6dc5t3iuHXIY +SdOH5EOC6z/JqvWote9VfCFSZfnVDeFs9D6Mk3ORLgLETgdxb8CPOGEIqB6BCsAv +IC9Bi5HcSEW88cbeunZrM8gALTFGTO3nnc+IlP8zwFboJIYmuNg4ON8qa90SzMc/ +RxdMosIGlgnW2/4/PEZB31jiVg88O8EckzXZOFKs7sjsLjBOlDW0JB9LeGna8gI4 +zJVSk/BwJVmcIGfE7vmLV2H0knZ9P4SNVbfo5azV8fUZVqZa+5Acr5Pr5RzUZ5dd +BA6+C4OmF4O5MBKgxTMVBbkN+8cFduPYSo38NBejxiEovjBFMR7HeL5YYTisO+IB +ZQ== +-----END CERTIFICATE----- +# Issuer: CN=Network Solutions Certificate Authority O=Network Solutions L.L.C. +# Subject: CN=Network Solutions Certificate Authority O=Network Solutions L.L.C. +# Label: "Network Solutions Certificate Authority" +# Serial: 116697915152937497490437556386812487904 +# MD5 Fingerprint: d3:f3:a6:16:c0:fa:6b:1d:59:b1:2d:96:4d:0e:11:2e +# SHA1 Fingerprint: 74:f8:a3:c3:ef:e7:b3:90:06:4b:83:90:3c:21:64:60:20:e5:df:ce +# 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 -----BEGIN CERTIFICATE----- -MIIE2DCCBEGgAwIBAgIEN0rSQzANBgkqhkiG9w0BAQUFADCBwzELMAkGA1UEBhMC -VVMxFDASBgNVBAoTC0VudHJ1c3QubmV0MTswOQYDVQQLEzJ3d3cuZW50cnVzdC5u -ZXQvQ1BTIGluY29ycC4gYnkgcmVmLiAobGltaXRzIGxpYWIuKTElMCMGA1UECxMc -KGMpIDE5OTkgRW50cnVzdC5uZXQgTGltaXRlZDE6MDgGA1UEAxMxRW50cnVzdC5u -ZXQgU2VjdXJlIFNlcnZlciBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAeFw05OTA1 -MjUxNjA5NDBaFw0xOTA1MjUxNjM5NDBaMIHDMQswCQYDVQQGEwJVUzEUMBIGA1UE -ChMLRW50cnVzdC5uZXQxOzA5BgNVBAsTMnd3dy5lbnRydXN0Lm5ldC9DUFMgaW5j -b3JwLiBieSByZWYuIChsaW1pdHMgbGlhYi4pMSUwIwYDVQQLExwoYykgMTk5OSBF -bnRydXN0Lm5ldCBMaW1pdGVkMTowOAYDVQQDEzFFbnRydXN0Lm5ldCBTZWN1cmUg -U2VydmVyIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MIGdMA0GCSqGSIb3DQEBAQUA -A4GLADCBhwKBgQDNKIM0VBuJ8w+vN5Ex/68xYMmo6LIQaO2f55M28Qpku0f1BBc/ -I0dNxScZgSYMVHINiC3ZH5oSn7yzcdOAGT9HZnuMNSjSuQrfJNqc1lB5gXpa0zf3 -wkrYKZImZNHkmGw6AIr1NJtl+O3jEP/9uElY3KDegjlrgbEWGWG5VLbmQwIBA6OC -AdcwggHTMBEGCWCGSAGG+EIBAQQEAwIABzCCARkGA1UdHwSCARAwggEMMIHeoIHb -oIHYpIHVMIHSMQswCQYDVQQGEwJVUzEUMBIGA1UEChMLRW50cnVzdC5uZXQxOzA5 -BgNVBAsTMnd3dy5lbnRydXN0Lm5ldC9DUFMgaW5jb3JwLiBieSByZWYuIChsaW1p -dHMgbGlhYi4pMSUwIwYDVQQLExwoYykgMTk5OSBFbnRydXN0Lm5ldCBMaW1pdGVk -MTowOAYDVQQDEzFFbnRydXN0Lm5ldCBTZWN1cmUgU2VydmVyIENlcnRpZmljYXRp -b24gQXV0aG9yaXR5MQ0wCwYDVQQDEwRDUkwxMCmgJ6AlhiNodHRwOi8vd3d3LmVu -dHJ1c3QubmV0L0NSTC9uZXQxLmNybDArBgNVHRAEJDAigA8xOTk5MDUyNTE2MDk0 -MFqBDzIwMTkwNTI1MTYwOTQwWjALBgNVHQ8EBAMCAQYwHwYDVR0jBBgwFoAU8Bdi -E1U9s/8KAGv7UISX8+1i0BowHQYDVR0OBBYEFPAXYhNVPbP/CgBr+1CEl/PtYtAa -MAwGA1UdEwQFMAMBAf8wGQYJKoZIhvZ9B0EABAwwChsEVjQuMAMCBJAwDQYJKoZI -hvcNAQEFBQADgYEAkNwwAvpkdMKnCqV8IY00F6j7Rw7/JXyNEwr75Ji174z4xRAN -95K+8cPV1ZVqBLssziY2ZcgxxufuP+NXdYR6Ee9GTxj005i7qIcyunL2POI9n9cd -2cNgQ4xYDiKWL2KjLB+6rQXvqzJ4h6BUcxm1XAX5Uj5tLUUL9wqT6u0G+bI= +MIID5jCCAs6gAwIBAgIQV8szb8JcFuZHFhfjkDFo4DANBgkqhkiG9w0BAQUFADBi +MQswCQYDVQQGEwJVUzEhMB8GA1UEChMYTmV0d29yayBTb2x1dGlvbnMgTC5MLkMu +MTAwLgYDVQQDEydOZXR3b3JrIFNvbHV0aW9ucyBDZXJ0aWZpY2F0ZSBBdXRob3Jp +dHkwHhcNMDYxMjAxMDAwMDAwWhcNMjkxMjMxMjM1OTU5WjBiMQswCQYDVQQGEwJV +UzEhMB8GA1UEChMYTmV0d29yayBTb2x1dGlvbnMgTC5MLkMuMTAwLgYDVQQDEydO +ZXR3b3JrIFNvbHV0aW9ucyBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkwggEiMA0GCSqG +SIb3DQEBAQUAA4IBDwAwggEKAoIBAQDkvH6SMG3G2I4rC7xGzuAnlt7e+foS0zwz +c7MEL7xxjOWftiJgPl9dzgn/ggwbmlFQGiaJ3dVhXRncEg8tCqJDXRfQNJIg6nPP +OCwGJgl6cvf6UDL4wpPTaaIjzkGxzOTVHzbRijr4jGPiFFlp7Q3Tf2vouAPlT2rl +mGNpSAW+Lv8ztumXWWn4Zxmuk2GWRBXTcrA/vGp97Eh/jcOrqnErU2lBUzS1sLnF +BgrEsEX1QV1uiUV7PTsmjHTC5dLRfbIR1PtYMiKagMnc/Qzpf14Dl847ABSHJ3A4 +qY5usyd2mFHgBeMhqxrVhSI8KbWaFsWAqPS7azCPL0YCorEMIuDTAgMBAAGjgZcw +gZQwHQYDVR0OBBYEFCEwyfsA106Y2oeqKtCnLrFAMadMMA4GA1UdDwEB/wQEAwIB +BjAPBgNVHRMBAf8EBTADAQH/MFIGA1UdHwRLMEkwR6BFoEOGQWh0dHA6Ly9jcmwu +bmV0c29sc3NsLmNvbS9OZXR3b3JrU29sdXRpb25zQ2VydGlmaWNhdGVBdXRob3Jp +dHkuY3JsMA0GCSqGSIb3DQEBBQUAA4IBAQC7rkvnt1frf6ott3NHhWrB5KUd5Oc8 +6fRZZXe1eltajSU24HqXLjjAV2CDmAaDn7l2em5Q4LqILPxFzBiwmZVRDuwduIj/ +h1AcgsLj4DKAv6ALR8jDMe+ZZzKATxcheQxpXN5eNK4CtSbqUN9/GGUsyfJj4akH +/nxxH2szJGoeBfcFaMBqEssuXmHLrijTfsK0ZpEmXzwuJF/LWA/rKOyvEZbz3Htv +wKeI8lN3s2Berq4o2jUsbzRF0ybh3uxbTydrFny9RAQYgrOJeRcQcT16ohZO9QHN +pGxlaKFJdlxDydi8NmdspZS11My5vWo1ViHe2MPr+8ukYEywVaCge1ey -----END CERTIFICATE----- -Go Daddy Certification Authority Root Certificate Bundle -======================================================== - ------BEGIN CERTIFICATE----- -MIIE3jCCA8agAwIBAgICAwEwDQYJKoZIhvcNAQEFBQAwYzELMAkGA1UEBhMCVVMx -ITAfBgNVBAoTGFRoZSBHbyBEYWRkeSBHcm91cCwgSW5jLjExMC8GA1UECxMoR28g -RGFkZHkgQ2xhc3MgMiBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAeFw0wNjExMTYw -MTU0MzdaFw0yNjExMTYwMTU0MzdaMIHKMQswCQYDVQQGEwJVUzEQMA4GA1UECBMH -QXJpem9uYTETMBEGA1UEBxMKU2NvdHRzZGFsZTEaMBgGA1UEChMRR29EYWRkeS5j -b20sIEluYy4xMzAxBgNVBAsTKmh0dHA6Ly9jZXJ0aWZpY2F0ZXMuZ29kYWRkeS5j -b20vcmVwb3NpdG9yeTEwMC4GA1UEAxMnR28gRGFkZHkgU2VjdXJlIENlcnRpZmlj -YXRpb24gQXV0aG9yaXR5MREwDwYDVQQFEwgwNzk2OTI4NzCCASIwDQYJKoZIhvcN -AQEBBQADggEPADCCAQoCggEBAMQt1RWMnCZM7DI161+4WQFapmGBWTtwY6vj3D3H -KrjJM9N55DrtPDAjhI6zMBS2sofDPZVUBJ7fmd0LJR4h3mUpfjWoqVTr9vcyOdQm -VZWt7/v+WIbXnvQAjYwqDL1CBM6nPwT27oDyqu9SoWlm2r4arV3aLGbqGmu75RpR -SgAvSMeYddi5Kcju+GZtCpyz8/x4fKL4o/K1w/O5epHBp+YlLpyo7RJlbmr2EkRT -cDCVw5wrWCs9CHRK8r5RsL+H0EwnWGu1NcWdrxcx+AuP7q2BNgWJCJjPOq8lh8BJ -6qf9Z/dFjpfMFDniNoW1fho3/Rb2cRGadDAW/hOUoz+EDU8CAwEAAaOCATIwggEu -MB0GA1UdDgQWBBT9rGEyk2xF1uLuhV+auud2mWjM5zAfBgNVHSMEGDAWgBTSxLDS -kdRMEXGzYcs9of7dqGrU4zASBgNVHRMBAf8ECDAGAQH/AgEAMDMGCCsGAQUFBwEB -BCcwJTAjBggrBgEFBQcwAYYXaHR0cDovL29jc3AuZ29kYWRkeS5jb20wRgYDVR0f -BD8wPTA7oDmgN4Y1aHR0cDovL2NlcnRpZmljYXRlcy5nb2RhZGR5LmNvbS9yZXBv -c2l0b3J5L2dkcm9vdC5jcmwwSwYDVR0gBEQwQjBABgRVHSAAMDgwNgYIKwYBBQUH -AgEWKmh0dHA6Ly9jZXJ0aWZpY2F0ZXMuZ29kYWRkeS5jb20vcmVwb3NpdG9yeTAO -BgNVHQ8BAf8EBAMCAQYwDQYJKoZIhvcNAQEFBQADggEBANKGwOy9+aG2Z+5mC6IG -OgRQjhVyrEp0lVPLN8tESe8HkGsz2ZbwlFalEzAFPIUyIXvJxwqoJKSQ3kbTJSMU -A2fCENZvD117esyfxVgqwcSeIaha86ykRvOe5GPLL5CkKSkB2XIsKd83ASe8T+5o -0yGPwLPk9Qnt0hCqU7S+8MxZC9Y7lhyVJEnfzuz9p0iRFEUOOjZv2kWzRaJBydTX -RE4+uXR21aITVSzGh6O1mawGhId/dQb8vxRMDsxuxN89txJx9OjxUUAiKEngHUuH -qDTMBqLdElrRhjZkAzVvb3du6/KFUJheqwNTrZEjYx8WnM25sgVjOuH0aBsXBTWV -U+4= ------END CERTIFICATE----- ------BEGIN CERTIFICATE----- -MIIE+zCCBGSgAwIBAgICAQ0wDQYJKoZIhvcNAQEFBQAwgbsxJDAiBgNVBAcTG1Zh -bGlDZXJ0IFZhbGlkYXRpb24gTmV0d29yazEXMBUGA1UEChMOVmFsaUNlcnQsIElu -Yy4xNTAzBgNVBAsTLFZhbGlDZXJ0IENsYXNzIDIgUG9saWN5IFZhbGlkYXRpb24g -QXV0aG9yaXR5MSEwHwYDVQQDExhodHRwOi8vd3d3LnZhbGljZXJ0LmNvbS8xIDAe -BgkqhkiG9w0BCQEWEWluZm9AdmFsaWNlcnQuY29tMB4XDTA0MDYyOTE3MDYyMFoX -DTI0MDYyOTE3MDYyMFowYzELMAkGA1UEBhMCVVMxITAfBgNVBAoTGFRoZSBHbyBE -YWRkeSBHcm91cCwgSW5jLjExMC8GA1UECxMoR28gRGFkZHkgQ2xhc3MgMiBDZXJ0 -aWZpY2F0aW9uIEF1dGhvcml0eTCCASAwDQYJKoZIhvcNAQEBBQADggENADCCAQgC -ggEBAN6d1+pXGEmhW+vXX0iG6r7d/+TvZxz0ZWizV3GgXne77ZtJ6XCAPVYYYwhv -2vLM0D9/AlQiVBDYsoHUwHU9S3/Hd8M+eKsaA7Ugay9qK7HFiH7Eux6wwdhFJ2+q -N1j3hybX2C32qRe3H3I2TqYXP2WYktsqbl2i/ojgC95/5Y0V4evLOtXiEqITLdiO -r18SPaAIBQi2XKVlOARFmR6jYGB0xUGlcmIbYsUfb18aQr4CUWWoriMYavx4A6lN -f4DD+qta/KFApMoZFv6yyO9ecw3ud72a9nmYvLEHZ6IVDd2gWMZEewo+YihfukEH -U1jPEX44dMX4/7VpkI+EdOqXG68CAQOjggHhMIIB3TAdBgNVHQ4EFgQU0sSw0pHU -TBFxs2HLPaH+3ahq1OMwgdIGA1UdIwSByjCBx6GBwaSBvjCBuzEkMCIGA1UEBxMb -VmFsaUNlcnQgVmFsaWRhdGlvbiBOZXR3b3JrMRcwFQYDVQQKEw5WYWxpQ2VydCwg -SW5jLjE1MDMGA1UECxMsVmFsaUNlcnQgQ2xhc3MgMiBQb2xpY3kgVmFsaWRhdGlv -biBBdXRob3JpdHkxITAfBgNVBAMTGGh0dHA6Ly93d3cudmFsaWNlcnQuY29tLzEg -MB4GCSqGSIb3DQEJARYRaW5mb0B2YWxpY2VydC5jb22CAQEwDwYDVR0TAQH/BAUw -AwEB/zAzBggrBgEFBQcBAQQnMCUwIwYIKwYBBQUHMAGGF2h0dHA6Ly9vY3NwLmdv -ZGFkZHkuY29tMEQGA1UdHwQ9MDswOaA3oDWGM2h0dHA6Ly9jZXJ0aWZpY2F0ZXMu -Z29kYWRkeS5jb20vcmVwb3NpdG9yeS9yb290LmNybDBLBgNVHSAERDBCMEAGBFUd -IAAwODA2BggrBgEFBQcCARYqaHR0cDovL2NlcnRpZmljYXRlcy5nb2RhZGR5LmNv -bS9yZXBvc2l0b3J5MA4GA1UdDwEB/wQEAwIBBjANBgkqhkiG9w0BAQUFAAOBgQC1 -QPmnHfbq/qQaQlpE9xXUhUaJwL6e4+PrxeNYiY+Sn1eocSxI0YGyeR+sBjUZsE4O -WBsUs5iB0QQeyAfJg594RAoYC5jcdnplDQ1tgMQLARzLrUc+cb53S8wGd9D0Vmsf -SxOaFIqII6hR8INMqzW/Rn453HWkrugp++85j09VZw== +# Issuer: CN=COMODO ECC Certification Authority O=COMODO CA Limited +# Subject: CN=COMODO ECC Certification Authority O=COMODO CA Limited +# Label: "COMODO ECC Certification Authority" +# Serial: 41578283867086692638256921589707938090 +# MD5 Fingerprint: 7c:62:ff:74:9d:31:53:5e:68:4a:d5:78:aa:1e:bf:23 +# SHA1 Fingerprint: 9f:74:4e:9f:2b:4d:ba:ec:0f:31:2c:50:b6:56:3b:8e:2d:93:c3:11 +# 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 +-----BEGIN CERTIFICATE----- +MIICiTCCAg+gAwIBAgIQH0evqmIAcFBUTAGem2OZKjAKBggqhkjOPQQDAzCBhTEL +MAkGA1UEBhMCR0IxGzAZBgNVBAgTEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4GA1UE +BxMHU2FsZm9yZDEaMBgGA1UEChMRQ09NT0RPIENBIExpbWl0ZWQxKzApBgNVBAMT +IkNPTU9ETyBFQ0MgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwHhcNMDgwMzA2MDAw +MDAwWhcNMzgwMTE4MjM1OTU5WjCBhTELMAkGA1UEBhMCR0IxGzAZBgNVBAgTEkdy +ZWF0ZXIgTWFuY2hlc3RlcjEQMA4GA1UEBxMHU2FsZm9yZDEaMBgGA1UEChMRQ09N +T0RPIENBIExpbWl0ZWQxKzApBgNVBAMTIkNPTU9ETyBFQ0MgQ2VydGlmaWNhdGlv +biBBdXRob3JpdHkwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAAQDR3svdcmCFYX7deSR +FtSrYpn1PlILBs5BAH+X4QokPB0BBO490o0JlwzgdeT6+3eKKvUDYEs2ixYjFq0J +cfRK9ChQtP6IHG4/bC8vCVlbpVsLM5niwz2J+Wos77LTBumjQjBAMB0GA1UdDgQW +BBR1cacZSBm8nZ3qQUfflMRId5nTeTAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/ +BAUwAwEB/zAKBggqhkjOPQQDAwNoADBlAjEA7wNbeqy3eApyt4jf/7VGFAkK+qDm +fQjGGoe9GKhzvSbKYAydzpmfz1wPMOG+FDHqAjAU9JM8SaczepBGR7NjfRObTrdv +GDeAU/7dIOA1mjbRxwG55tzd8/8dLDoWV9mSOdY= -----END CERTIFICATE----- + +# Issuer: CN=TC TrustCenter Class 2 CA II O=TC TrustCenter GmbH OU=TC TrustCenter Class 2 CA +# Subject: CN=TC TrustCenter Class 2 CA II O=TC TrustCenter GmbH OU=TC TrustCenter Class 2 CA +# Label: "TC TrustCenter Class 2 CA II" +# Serial: 941389028203453866782103406992443 +# MD5 Fingerprint: ce:78:33:5c:59:78:01:6e:18:ea:b9:36:a0:b9:2e:23 +# SHA1 Fingerprint: ae:50:83:ed:7c:f4:5c:bc:8f:61:c6:21:fe:68:5d:79:42:21:15:6e +# 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 -----BEGIN CERTIFICATE----- -MIIC5zCCAlACAQEwDQYJKoZIhvcNAQEFBQAwgbsxJDAiBgNVBAcTG1ZhbGlDZXJ0 -IFZhbGlkYXRpb24gTmV0d29yazEXMBUGA1UEChMOVmFsaUNlcnQsIEluYy4xNTAz -BgNVBAsTLFZhbGlDZXJ0IENsYXNzIDIgUG9saWN5IFZhbGlkYXRpb24gQXV0aG9y -aXR5MSEwHwYDVQQDExhodHRwOi8vd3d3LnZhbGljZXJ0LmNvbS8xIDAeBgkqhkiG -9w0BCQEWEWluZm9AdmFsaWNlcnQuY29tMB4XDTk5MDYyNjAwMTk1NFoXDTE5MDYy -NjAwMTk1NFowgbsxJDAiBgNVBAcTG1ZhbGlDZXJ0IFZhbGlkYXRpb24gTmV0d29y -azEXMBUGA1UEChMOVmFsaUNlcnQsIEluYy4xNTAzBgNVBAsTLFZhbGlDZXJ0IENs -YXNzIDIgUG9saWN5IFZhbGlkYXRpb24gQXV0aG9yaXR5MSEwHwYDVQQDExhodHRw -Oi8vd3d3LnZhbGljZXJ0LmNvbS8xIDAeBgkqhkiG9w0BCQEWEWluZm9AdmFsaWNl -cnQuY29tMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDOOnHK5avIWZJV16vY -dA757tn2VUdZZUcOBVXc65g2PFxTXdMwzzjsvUGJ7SVCCSRrCl6zfN1SLUzm1NZ9 -WlmpZdRJEy0kTRxQb7XBhVQ7/nHk01xC+YDgkRoKWzk2Z/M/VXwbP7RfZHM047QS -v4dk+NoS/zcnwbNDu+97bi5p9wIDAQABMA0GCSqGSIb3DQEBBQUAA4GBADt/UG9v -UJSZSWI4OB9L+KXIPqeCgfYrx+jFzug6EILLGACOTb2oWH+heQC1u+mNr0HZDzTu -IYEZoDJJKPTEjlbVUjP9UNV+mWwD5MlM/Mtsq2azSiGM5bUMMj4QssxsodyamEwC -W/POuZ6lcg5Ktz885hZo+L7tdEy8W9ViH0Pd +MIIEqjCCA5KgAwIBAgIOLmoAAQACH9dSISwRXDswDQYJKoZIhvcNAQEFBQAwdjEL +MAkGA1UEBhMCREUxHDAaBgNVBAoTE1RDIFRydXN0Q2VudGVyIEdtYkgxIjAgBgNV +BAsTGVRDIFRydXN0Q2VudGVyIENsYXNzIDIgQ0ExJTAjBgNVBAMTHFRDIFRydXN0 +Q2VudGVyIENsYXNzIDIgQ0EgSUkwHhcNMDYwMTEyMTQzODQzWhcNMjUxMjMxMjI1 +OTU5WjB2MQswCQYDVQQGEwJERTEcMBoGA1UEChMTVEMgVHJ1c3RDZW50ZXIgR21i +SDEiMCAGA1UECxMZVEMgVHJ1c3RDZW50ZXIgQ2xhc3MgMiBDQTElMCMGA1UEAxMc +VEMgVHJ1c3RDZW50ZXIgQ2xhc3MgMiBDQSBJSTCCASIwDQYJKoZIhvcNAQEBBQAD +ggEPADCCAQoCggEBAKuAh5uO8MN8h9foJIIRszzdQ2Lu+MNF2ujhoF/RKrLqk2jf +tMjWQ+nEdVl//OEd+DFwIxuInie5e/060smp6RQvkL4DUsFJzfb95AhmC1eKokKg +uNV/aVyQMrKXDcpK3EY+AlWJU+MaWss2xgdW94zPEfRMuzBwBJWl9jmM/XOBCH2J +XjIeIqkiRUuwZi4wzJ9l/fzLganx4Duvo4bRierERXlQXa7pIXSSTYtZgo+U4+lK +8edJsBTj9WLL1XK9H7nSn6DNqPoByNkN39r8R52zyFTfSUrxIan+GE7uSNQZu+99 +5OKdy1u2bv/jzVrndIIFuoAlOMvkaZ6vQaoahPUCAwEAAaOCATQwggEwMA8GA1Ud +EwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBTjq1RMgKHbVkO3 +kUrL84J6E1wIqzCB7QYDVR0fBIHlMIHiMIHfoIHcoIHZhjVodHRwOi8vd3d3LnRy +dXN0Y2VudGVyLmRlL2NybC92Mi90Y19jbGFzc18yX2NhX0lJLmNybIaBn2xkYXA6 +Ly93d3cudHJ1c3RjZW50ZXIuZGUvQ049VEMlMjBUcnVzdENlbnRlciUyMENsYXNz +JTIwMiUyMENBJTIwSUksTz1UQyUyMFRydXN0Q2VudGVyJTIwR21iSCxPVT1yb290 +Y2VydHMsREM9dHJ1c3RjZW50ZXIsREM9ZGU/Y2VydGlmaWNhdGVSZXZvY2F0aW9u +TGlzdD9iYXNlPzANBgkqhkiG9w0BAQUFAAOCAQEAjNfffu4bgBCzg/XbEeprS6iS +GNn3Bzn1LL4GdXpoUxUc6krtXvwjshOg0wn/9vYua0Fxec3ibf2uWWuFHbhOIprt +ZjluS5TmVfwLG4t3wVMTZonZKNaL80VKY7f9ewthXbhtvsPcW3nS7Yblok2+XnR8 +au0WOB9/WIFaGusyiC2y8zl3gK9etmF1KdsjTYjKUCjLhdLTEKJZbtOTVAB6okaV +hgWcqRmY5TFyDADiZ9lA4CQze28suVyrZZ0srHbqNZn1l7kPJOzHdiEoZa5X6AeI +dUpWoNIFOqTmjZKILPPy4cHGYdtBxceb9w4aUUXCYWvcZCcXjFq32nQozZfkvQ== +-----END CERTIFICATE----- + +# Issuer: CN=TC TrustCenter Class 3 CA II O=TC TrustCenter GmbH OU=TC TrustCenter Class 3 CA +# Subject: CN=TC TrustCenter Class 3 CA II O=TC TrustCenter GmbH OU=TC TrustCenter Class 3 CA +# Label: "TC TrustCenter Class 3 CA II" +# Serial: 1506523511417715638772220530020799 +# MD5 Fingerprint: 56:5f:aa:80:61:12:17:f6:67:21:e6:2b:6d:61:56:8e +# SHA1 Fingerprint: 80:25:ef:f4:6e:70:c8:d4:72:24:65:84:fe:40:3b:8a:8d:6a:db:f5 +# 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 +-----BEGIN CERTIFICATE----- +MIIEqjCCA5KgAwIBAgIOSkcAAQAC5aBd1j8AUb8wDQYJKoZIhvcNAQEFBQAwdjEL +MAkGA1UEBhMCREUxHDAaBgNVBAoTE1RDIFRydXN0Q2VudGVyIEdtYkgxIjAgBgNV +BAsTGVRDIFRydXN0Q2VudGVyIENsYXNzIDMgQ0ExJTAjBgNVBAMTHFRDIFRydXN0 +Q2VudGVyIENsYXNzIDMgQ0EgSUkwHhcNMDYwMTEyMTQ0MTU3WhcNMjUxMjMxMjI1 +OTU5WjB2MQswCQYDVQQGEwJERTEcMBoGA1UEChMTVEMgVHJ1c3RDZW50ZXIgR21i +SDEiMCAGA1UECxMZVEMgVHJ1c3RDZW50ZXIgQ2xhc3MgMyBDQTElMCMGA1UEAxMc +VEMgVHJ1c3RDZW50ZXIgQ2xhc3MgMyBDQSBJSTCCASIwDQYJKoZIhvcNAQEBBQAD +ggEPADCCAQoCggEBALTgu1G7OVyLBMVMeRwjhjEQY0NVJz/GRcekPewJDRoeIMJW +Ht4bNwcwIi9v8Qbxq63WyKthoy9DxLCyLfzDlml7forkzMA5EpBCYMnMNWju2l+Q +Vl/NHE1bWEnrDgFPZPosPIlY2C8u4rBo6SI7dYnWRBpl8huXJh0obazovVkdKyT2 +1oQDZogkAHhg8fir/gKya/si+zXmFtGt9i4S5Po1auUZuV3bOx4a+9P/FRQI2Alq +ukWdFHlgfa9Aigdzs5OW03Q0jTo3Kd5c7PXuLjHCINy+8U9/I1LZW+Jk2ZyqBwi1 +Rb3R0DHBq1SfqdLDYmAD8bs5SpJKPQq5ncWg/jcCAwEAAaOCATQwggEwMA8GA1Ud +EwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBTUovyfs8PYA9NX +XAek0CSnwPIA1DCB7QYDVR0fBIHlMIHiMIHfoIHcoIHZhjVodHRwOi8vd3d3LnRy +dXN0Y2VudGVyLmRlL2NybC92Mi90Y19jbGFzc18zX2NhX0lJLmNybIaBn2xkYXA6 +Ly93d3cudHJ1c3RjZW50ZXIuZGUvQ049VEMlMjBUcnVzdENlbnRlciUyMENsYXNz +JTIwMyUyMENBJTIwSUksTz1UQyUyMFRydXN0Q2VudGVyJTIwR21iSCxPVT1yb290 +Y2VydHMsREM9dHJ1c3RjZW50ZXIsREM9ZGU/Y2VydGlmaWNhdGVSZXZvY2F0aW9u +TGlzdD9iYXNlPzANBgkqhkiG9w0BAQUFAAOCAQEANmDkcPcGIEPZIxpC8vijsrlN +irTzwppVMXzEO2eatN9NDoqTSheLG43KieHPOh6sHfGcMrSOWXaiQYUlN6AT0PV8 +TtXqluJucsG7Kv5sbviRmEb8yRtXW+rIGjs/sFGYPAfaLFkB2otE6OF0/ado3VS6 +g0bsyEa1+K+XwDsJHI/OcpY9M1ZwvJbL2NV9IJqDnxrcOfHFcqMRA/07QlIp2+gB +95tejNaNhk4Z+rwcvsUhpYeeeC422wlxo3I0+GzjBgnyXlal092Y+tTmBvTwtiBj +S+opvaqCZh77gaqnN60TGOaSw4HBM7uIHqHn4rS9MWwOUT1v+5ZWgOI2F9Hc5A== +-----END CERTIFICATE----- + +# Issuer: CN=TC TrustCenter Universal CA I O=TC TrustCenter GmbH OU=TC TrustCenter Universal CA +# Subject: CN=TC TrustCenter Universal CA I O=TC TrustCenter GmbH OU=TC TrustCenter Universal CA +# Label: "TC TrustCenter Universal CA I" +# Serial: 601024842042189035295619584734726 +# MD5 Fingerprint: 45:e1:a5:72:c5:a9:36:64:40:9e:f5:e4:58:84:67:8c +# SHA1 Fingerprint: 6b:2f:34:ad:89:58:be:62:fd:b0:6b:5c:ce:bb:9d:d9:4f:4e:39:f3 +# 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 +-----BEGIN CERTIFICATE----- +MIID3TCCAsWgAwIBAgIOHaIAAQAC7LdggHiNtgYwDQYJKoZIhvcNAQEFBQAweTEL +MAkGA1UEBhMCREUxHDAaBgNVBAoTE1RDIFRydXN0Q2VudGVyIEdtYkgxJDAiBgNV +BAsTG1RDIFRydXN0Q2VudGVyIFVuaXZlcnNhbCBDQTEmMCQGA1UEAxMdVEMgVHJ1 +c3RDZW50ZXIgVW5pdmVyc2FsIENBIEkwHhcNMDYwMzIyMTU1NDI4WhcNMjUxMjMx +MjI1OTU5WjB5MQswCQYDVQQGEwJERTEcMBoGA1UEChMTVEMgVHJ1c3RDZW50ZXIg +R21iSDEkMCIGA1UECxMbVEMgVHJ1c3RDZW50ZXIgVW5pdmVyc2FsIENBMSYwJAYD +VQQDEx1UQyBUcnVzdENlbnRlciBVbml2ZXJzYWwgQ0EgSTCCASIwDQYJKoZIhvcN +AQEBBQADggEPADCCAQoCggEBAKR3I5ZEr5D0MacQ9CaHnPM42Q9e3s9B6DGtxnSR +JJZ4Hgmgm5qVSkr1YnwCqMqs+1oEdjneX/H5s7/zA1hV0qq34wQi0fiU2iIIAI3T +fCZdzHd55yx4Oagmcw6iXSVphU9VDprvxrlE4Vc93x9UIuVvZaozhDrzznq+VZeu +jRIPFDPiUHDDSYcTvFHe15gSWu86gzOSBnWLknwSaHtwag+1m7Z3W0hZneTvWq3z +wZ7U10VOylY0Ibw+F1tvdwxIAUMpsN0/lm7mlaoMwCC2/T42J5zjXM9OgdwZu5GQ +fezmlwQek8wiSdeXhrYTCjxDI3d+8NzmzSQfO4ObNDqDNOMCAwEAAaNjMGEwHwYD +VR0jBBgwFoAUkqR1LKSevoFE63n8isWVpesQdXMwDwYDVR0TAQH/BAUwAwEB/zAO +BgNVHQ8BAf8EBAMCAYYwHQYDVR0OBBYEFJKkdSyknr6BROt5/IrFlaXrEHVzMA0G +CSqGSIb3DQEBBQUAA4IBAQAo0uCG1eb4e/CX3CJrO5UUVg8RMKWaTzqwOuAGy2X1 +7caXJ/4l8lfmXpWMPmRgFVp/Lw0BxbFg/UU1z/CyvwbZ71q+s2IhtNerNXxTPqYn +8aEt2hojnczd7Dwtnic0XQ/CNnm8yUpiLe1r2X1BQ3y2qsrtYbE3ghUJGooWMNjs +ydZHcnhLEEYUjl8Or+zHL6sQ17bxbuyGssLoDZJz3KL0Dzq/YSMQiZxIQG5wALPT +ujdEWBF6AmqI8Dc08BnprNRlc/ZpjGSUOnmFKbAWKwyCPwacx/0QK54PLLae4xW/ +2TYcuiUaUj0a7CIMHOCkoj3w6DnPgcB77V0fb8XQC9eY +-----END CERTIFICATE----- + +# Issuer: CN=Cybertrust Global Root O=Cybertrust, Inc +# Subject: CN=Cybertrust Global Root O=Cybertrust, Inc +# Label: "Cybertrust Global Root" +# Serial: 4835703278459682877484360 +# MD5 Fingerprint: 72:e4:4a:87:e3:69:40:80:77:ea:bc:e3:f4:ff:f0:e1 +# SHA1 Fingerprint: 5f:43:e5:b1:bf:f8:78:8c:ac:1c:c7:ca:4a:9a:c6:22:2b:cc:34:c6 +# 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 +-----BEGIN CERTIFICATE----- +MIIDoTCCAomgAwIBAgILBAAAAAABD4WqLUgwDQYJKoZIhvcNAQEFBQAwOzEYMBYG +A1UEChMPQ3liZXJ0cnVzdCwgSW5jMR8wHQYDVQQDExZDeWJlcnRydXN0IEdsb2Jh +bCBSb290MB4XDTA2MTIxNTA4MDAwMFoXDTIxMTIxNTA4MDAwMFowOzEYMBYGA1UE +ChMPQ3liZXJ0cnVzdCwgSW5jMR8wHQYDVQQDExZDeWJlcnRydXN0IEdsb2JhbCBS +b290MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA+Mi8vRRQZhP/8NN5 +7CPytxrHjoXxEnOmGaoQ25yiZXRadz5RfVb23CO21O1fWLE3TdVJDm71aofW0ozS +J8bi/zafmGWgE07GKmSb1ZASzxQG9Dvj1Ci+6A74q05IlG2OlTEQXO2iLb3VOm2y +HLtgwEZLAfVJrn5GitB0jaEMAs7u/OePuGtm839EAL9mJRQr3RAwHQeWP032a7iP +t3sMpTjr3kfb1V05/Iin89cqdPHoWqI7n1C6poxFNcJQZZXcY4Lv3b93TZxiyWNz +FtApD0mpSPCzqrdsxacwOUBdrsTiXSZT8M4cIwhhqJQZugRiQOwfOHB3EgZxpzAY +XSUnpQIDAQABo4GlMIGiMA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMBAf8EBTADAQH/ +MB0GA1UdDgQWBBS2CHsNesysIEyGVjJez6tuhS1wVzA/BgNVHR8EODA2MDSgMqAw +hi5odHRwOi8vd3d3Mi5wdWJsaWMtdHJ1c3QuY29tL2NybC9jdC9jdHJvb3QuY3Js +MB8GA1UdIwQYMBaAFLYIew16zKwgTIZWMl7Pq26FLXBXMA0GCSqGSIb3DQEBBQUA +A4IBAQBW7wojoFROlZfJ+InaRcHUowAl9B8Tq7ejhVhpwjCt2BWKLePJzYFa+HMj +Wqd8BfP9IjsO0QbE2zZMcwSO5bAi5MXzLqXZI+O4Tkogp24CJJ8iYGd7ix1yCcUx +XOl5n4BHPa2hCwcUPUf/A2kaDAtE52Mlp3+yybh2hO0j9n0Hq0V+09+zv+mKts2o +omcrUtW3ZfA5TGOgkXmTUg9U3YO7n9GPp1Nzw8v/MOx8BLjYRB+TX3EJIrduPuoc +A06dGiBh+4E37F78CkWr1+cXVdCg6mCbpvbjjFspwgZgFJ0tl0ypkxWdYcQBX0jW +WL1WMRJOEcgh4LMRkWXbtKaIOM5V +-----END CERTIFICATE----- + +# Issuer: CN=GeoTrust Primary Certification Authority - G3 O=GeoTrust Inc. OU=(c) 2008 GeoTrust Inc. - For authorized use only +# Subject: CN=GeoTrust Primary Certification Authority - G3 O=GeoTrust Inc. OU=(c) 2008 GeoTrust Inc. - For authorized use only +# Label: "GeoTrust Primary Certification Authority - G3" +# Serial: 28809105769928564313984085209975885599 +# MD5 Fingerprint: b5:e8:34:36:c9:10:44:58:48:70:6d:2e:83:d4:b8:05 +# SHA1 Fingerprint: 03:9e:ed:b8:0b:e7:a0:3c:69:53:89:3b:20:d2:d9:32:3a:4c:2a:fd +# 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 +-----BEGIN CERTIFICATE----- +MIID/jCCAuagAwIBAgIQFaxulBmyeUtB9iepwxgPHzANBgkqhkiG9w0BAQsFADCB +mDELMAkGA1UEBhMCVVMxFjAUBgNVBAoTDUdlb1RydXN0IEluYy4xOTA3BgNVBAsT +MChjKSAyMDA4IEdlb1RydXN0IEluYy4gLSBGb3IgYXV0aG9yaXplZCB1c2Ugb25s +eTE2MDQGA1UEAxMtR2VvVHJ1c3QgUHJpbWFyeSBDZXJ0aWZpY2F0aW9uIEF1dGhv +cml0eSAtIEczMB4XDTA4MDQwMjAwMDAwMFoXDTM3MTIwMTIzNTk1OVowgZgxCzAJ +BgNVBAYTAlVTMRYwFAYDVQQKEw1HZW9UcnVzdCBJbmMuMTkwNwYDVQQLEzAoYykg +MjAwOCBHZW9UcnVzdCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxNjA0 +BgNVBAMTLUdlb1RydXN0IFByaW1hcnkgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkg +LSBHMzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANziXmJYHTNXOTIz ++uvLh4yn1ErdBojqZI4xmKU4kB6Yzy5jK/BGvESyiaHAKAxJcCGVn2TAppMSAmUm +hsalifD614SgcK9PGpc/BkTVyetyEH3kMSj7HGHmKAdEc5IiaacDiGydY8hS2pgn +5whMcD60yRLBxWeDXTPzAxHsatBT4tG6NmCUgLthY2xbF37fQJQeqw3CIShwiP/W +JmxsYAQlTlV+fe+/lEjetx3dcI0FX4ilm/LC7urRQEFtYjgdVgbFA0dRIBn8exAL +DmKudlW/X3e+PkkBUz2YJQN2JFodtNuJ6nnltrM7P7pMKEF/BqxqjsHQ9gUdfeZC +huOl1UcCAwEAAaNCMEAwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYw +HQYDVR0OBBYEFMR5yo6hTgMdHNxr2zFblD4/MH8tMA0GCSqGSIb3DQEBCwUAA4IB +AQAtxRPPVoB7eni9n64smefv2t+UXglpp+duaIy9cr5HqQ6XErhK8WTTOd8lNNTB +zU6B8A8ExCSzNJbGpqow32hhc9f5joWJ7w5elShKKiePEI4ufIbEAp7aDHdlDkQN +kv39sxY2+hENHYwOB4lqKVb3cvTdFZx3NWZXqxNT2I7BQMXXExZacse3aQHEerGD +AWh9jUGhlBjBJVz88P6DAod8DQ3PLghcSkANPuyBYeYk28rgDi0Hsj5W3I31QYUH +SJsMC8tJP33st/3LjWeJGqvtux6jAAgIFyqCXDFdRootD4abdNlF+9RAsXqqaC2G +spki4cErx5z481+oghLrGREt +-----END CERTIFICATE----- + +# Issuer: CN=thawte Primary Root CA - G2 O=thawte, Inc. OU=(c) 2007 thawte, Inc. - For authorized use only +# Subject: CN=thawte Primary Root CA - G2 O=thawte, Inc. OU=(c) 2007 thawte, Inc. - For authorized use only +# Label: "thawte Primary Root CA - G2" +# Serial: 71758320672825410020661621085256472406 +# MD5 Fingerprint: 74:9d:ea:60:24:c4:fd:22:53:3e:cc:3a:72:d9:29:4f +# SHA1 Fingerprint: aa:db:bc:22:23:8f:c4:01:a1:27:bb:38:dd:f4:1d:db:08:9e:f0:12 +# 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 +-----BEGIN CERTIFICATE----- +MIICiDCCAg2gAwIBAgIQNfwmXNmET8k9Jj1Xm67XVjAKBggqhkjOPQQDAzCBhDEL +MAkGA1UEBhMCVVMxFTATBgNVBAoTDHRoYXd0ZSwgSW5jLjE4MDYGA1UECxMvKGMp +IDIwMDcgdGhhd3RlLCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxJDAi +BgNVBAMTG3RoYXd0ZSBQcmltYXJ5IFJvb3QgQ0EgLSBHMjAeFw0wNzExMDUwMDAw +MDBaFw0zODAxMTgyMzU5NTlaMIGEMQswCQYDVQQGEwJVUzEVMBMGA1UEChMMdGhh +d3RlLCBJbmMuMTgwNgYDVQQLEy8oYykgMjAwNyB0aGF3dGUsIEluYy4gLSBGb3Ig +YXV0aG9yaXplZCB1c2Ugb25seTEkMCIGA1UEAxMbdGhhd3RlIFByaW1hcnkgUm9v +dCBDQSAtIEcyMHYwEAYHKoZIzj0CAQYFK4EEACIDYgAEotWcgnuVnfFSeIf+iha/ +BebfowJPDQfGAFG6DAJSLSKkQjnE/o/qycG+1E3/n3qe4rF8mq2nhglzh9HnmuN6 +papu+7qzcMBniKI11KOasf2twu8x+qi58/sIxpHR+ymVo0IwQDAPBgNVHRMBAf8E +BTADAQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUmtgAMADna3+FGO6Lts6K +DPgR4bswCgYIKoZIzj0EAwMDaQAwZgIxAN344FdHW6fmCsO99YCKlzUNG4k8VIZ3 +KMqh9HneteY4sPBlcIx/AlTCv//YoT7ZzwIxAMSNlPzcU9LcnXgWHxUzI1NS41ox +XZ3Krr0TKUQNJ1uo52icEvdYPy5yAlejj6EULg== +-----END CERTIFICATE----- + +# Issuer: CN=thawte Primary Root CA - G3 O=thawte, Inc. OU=Certification Services Division/(c) 2008 thawte, Inc. - For authorized use only +# Subject: CN=thawte Primary Root CA - G3 O=thawte, Inc. OU=Certification Services Division/(c) 2008 thawte, Inc. - For authorized use only +# Label: "thawte Primary Root CA - G3" +# Serial: 127614157056681299805556476275995414779 +# MD5 Fingerprint: fb:1b:5d:43:8a:94:cd:44:c6:76:f2:43:4b:47:e7:31 +# SHA1 Fingerprint: f1:8b:53:8d:1b:e9:03:b6:a6:f0:56:43:5b:17:15:89:ca:f3:6b:f2 +# 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 +-----BEGIN CERTIFICATE----- +MIIEKjCCAxKgAwIBAgIQYAGXt0an6rS0mtZLL/eQ+zANBgkqhkiG9w0BAQsFADCB +rjELMAkGA1UEBhMCVVMxFTATBgNVBAoTDHRoYXd0ZSwgSW5jLjEoMCYGA1UECxMf +Q2VydGlmaWNhdGlvbiBTZXJ2aWNlcyBEaXZpc2lvbjE4MDYGA1UECxMvKGMpIDIw +MDggdGhhd3RlLCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxJDAiBgNV +BAMTG3RoYXd0ZSBQcmltYXJ5IFJvb3QgQ0EgLSBHMzAeFw0wODA0MDIwMDAwMDBa +Fw0zNzEyMDEyMzU5NTlaMIGuMQswCQYDVQQGEwJVUzEVMBMGA1UEChMMdGhhd3Rl +LCBJbmMuMSgwJgYDVQQLEx9DZXJ0aWZpY2F0aW9uIFNlcnZpY2VzIERpdmlzaW9u +MTgwNgYDVQQLEy8oYykgMjAwOCB0aGF3dGUsIEluYy4gLSBGb3IgYXV0aG9yaXpl +ZCB1c2Ugb25seTEkMCIGA1UEAxMbdGhhd3RlIFByaW1hcnkgUm9vdCBDQSAtIEcz +MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAsr8nLPvb2FvdeHsbnndm +gcs+vHyu86YnmjSjaDFxODNi5PNxZnmxqWWjpYvVj2AtP0LMqmsywCPLLEHd5N/8 +YZzic7IilRFDGF/Eth9XbAoFWCLINkw6fKXRz4aviKdEAhN0cXMKQlkC+BsUa0Lf +b1+6a4KinVvnSr0eAXLbS3ToO39/fR8EtCab4LRarEc9VbjXsCZSKAExQGbY2SS9 +9irY7CFJXJv2eul/VTV+lmuNk5Mny5K76qxAwJ/C+IDPXfRa3M50hqY+bAtTyr2S +zhkGcuYMXDhpxwTWvGzOW/b3aJzcJRVIiKHpqfiYnODz1TEoYRFsZ5aNOZnLwkUk +OQIDAQABo0IwQDAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNV +HQ4EFgQUrWyqlGCc7eT/+j4KdCtjA/e2Wb8wDQYJKoZIhvcNAQELBQADggEBABpA +2JVlrAmSicY59BDlqQ5mU1143vokkbvnRFHfxhY0Cu9qRFHqKweKA3rD6z8KLFIW +oCtDuSWQP3CpMyVtRRooOyfPqsMpQhvfO0zAMzRbQYi/aytlryjvsvXDqmbOe1bu +t8jLZ8HJnBoYuMTDSQPxYA5QzUbF83d597YV4Djbxy8ooAw/dyZ02SUS2jHaGh7c +KUGRIjxpp7sC8rZcJwOJ9Abqm+RyguOhCcHpABnTPtRwa7pxpqpYrvS76Wy274fM +m7v/OeZWYdMKp8RcTGB7BXcmer/YB1IsYvdwY9k5vG8cwnncdimvzsUsZAReiDZu +MdRAGmI0Nj81Aa6sY6A= +-----END CERTIFICATE----- + +# Issuer: CN=GeoTrust Primary Certification Authority - G2 O=GeoTrust Inc. OU=(c) 2007 GeoTrust Inc. - For authorized use only +# Subject: CN=GeoTrust Primary Certification Authority - G2 O=GeoTrust Inc. OU=(c) 2007 GeoTrust Inc. - For authorized use only +# Label: "GeoTrust Primary Certification Authority - G2" +# Serial: 80682863203381065782177908751794619243 +# MD5 Fingerprint: 01:5e:d8:6b:bd:6f:3d:8e:a1:31:f8:12:e0:98:73:6a +# SHA1 Fingerprint: 8d:17:84:d5:37:f3:03:7d:ec:70:fe:57:8b:51:9a:99:e6:10:d7:b0 +# 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 +-----BEGIN CERTIFICATE----- +MIICrjCCAjWgAwIBAgIQPLL0SAoA4v7rJDteYD7DazAKBggqhkjOPQQDAzCBmDEL +MAkGA1UEBhMCVVMxFjAUBgNVBAoTDUdlb1RydXN0IEluYy4xOTA3BgNVBAsTMChj +KSAyMDA3IEdlb1RydXN0IEluYy4gLSBGb3IgYXV0aG9yaXplZCB1c2Ugb25seTE2 +MDQGA1UEAxMtR2VvVHJ1c3QgUHJpbWFyeSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0 +eSAtIEcyMB4XDTA3MTEwNTAwMDAwMFoXDTM4MDExODIzNTk1OVowgZgxCzAJBgNV +BAYTAlVTMRYwFAYDVQQKEw1HZW9UcnVzdCBJbmMuMTkwNwYDVQQLEzAoYykgMjAw +NyBHZW9UcnVzdCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxNjA0BgNV +BAMTLUdlb1RydXN0IFByaW1hcnkgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkgLSBH +MjB2MBAGByqGSM49AgEGBSuBBAAiA2IABBWx6P0DFUPlrOuHNxFi79KDNlJ9RVcL +So17VDs6bl8VAsBQps8lL33KSLjHUGMcKiEIfJo22Av+0SbFWDEwKCXzXV2juLal +tJLtbCyf691DiaI8S0iRHVDsJt/WYC69IaNCMEAwDwYDVR0TAQH/BAUwAwEB/zAO +BgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFBVfNVdRVfslsq0DafwBo/q+EVXVMAoG +CCqGSM49BAMDA2cAMGQCMGSWWaboCd6LuvpaiIjwH5HTRqjySkwCY/tsXzjbLkGT +qQ7mndwxHLKgpxgceeHHNgIwOlavmnRs9vuD4DPTCF+hnMJbn0bWtsuRBmOiBucz +rD6ogRLQy7rQkgu2npaqBA+K +-----END CERTIFICATE----- + +# Issuer: CN=VeriSign Universal Root Certification Authority O=VeriSign, Inc. OU=VeriSign Trust Network/(c) 2008 VeriSign, Inc. - For authorized use only +# Subject: CN=VeriSign Universal Root Certification Authority O=VeriSign, Inc. OU=VeriSign Trust Network/(c) 2008 VeriSign, Inc. - For authorized use only +# Label: "VeriSign Universal Root Certification Authority" +# Serial: 85209574734084581917763752644031726877 +# MD5 Fingerprint: 8e:ad:b5:01:aa:4d:81:e4:8c:1d:d1:e1:14:00:95:19 +# SHA1 Fingerprint: 36:79:ca:35:66:87:72:30:4d:30:a5:fb:87:3b:0f:a7:7b:b7:0d:54 +# 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 +-----BEGIN CERTIFICATE----- +MIIEuTCCA6GgAwIBAgIQQBrEZCGzEyEDDrvkEhrFHTANBgkqhkiG9w0BAQsFADCB +vTELMAkGA1UEBhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYDVQQL +ExZWZXJpU2lnbiBUcnVzdCBOZXR3b3JrMTowOAYDVQQLEzEoYykgMjAwOCBWZXJp +U2lnbiwgSW5jLiAtIEZvciBhdXRob3JpemVkIHVzZSBvbmx5MTgwNgYDVQQDEy9W +ZXJpU2lnbiBVbml2ZXJzYWwgUm9vdCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAe +Fw0wODA0MDIwMDAwMDBaFw0zNzEyMDEyMzU5NTlaMIG9MQswCQYDVQQGEwJVUzEX +MBUGA1UEChMOVmVyaVNpZ24sIEluYy4xHzAdBgNVBAsTFlZlcmlTaWduIFRydXN0 +IE5ldHdvcmsxOjA4BgNVBAsTMShjKSAyMDA4IFZlcmlTaWduLCBJbmMuIC0gRm9y +IGF1dGhvcml6ZWQgdXNlIG9ubHkxODA2BgNVBAMTL1ZlcmlTaWduIFVuaXZlcnNh +bCBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MIIBIjANBgkqhkiG9w0BAQEF +AAOCAQ8AMIIBCgKCAQEAx2E3XrEBNNti1xWb/1hajCMj1mCOkdeQmIN65lgZOIzF +9uVkhbSicfvtvbnazU0AtMgtc6XHaXGVHzk8skQHnOgO+k1KxCHfKWGPMiJhgsWH +H26MfF8WIFFE0XBPV+rjHOPMee5Y2A7Cs0WTwCznmhcrewA3ekEzeOEz4vMQGn+H +LL729fdC4uW/h2KJXwBL38Xd5HVEMkE6HnFuacsLdUYI0crSK5XQz/u5QGtkjFdN +/BMReYTtXlT2NJ8IAfMQJQYXStrxHXpma5hgZqTZ79IugvHw7wnqRMkVauIDbjPT +rJ9VAMf2CGqUuV/c4DPxhGD5WycRtPwW8rtWaoAljQIDAQABo4GyMIGvMA8GA1Ud +EwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMG0GCCsGAQUFBwEMBGEwX6FdoFsw +WTBXMFUWCWltYWdlL2dpZjAhMB8wBwYFKw4DAhoEFI/l0xqGrI2Oa8PPgGrUSBgs +exkuMCUWI2h0dHA6Ly9sb2dvLnZlcmlzaWduLmNvbS92c2xvZ28uZ2lmMB0GA1Ud +DgQWBBS2d/ppSEefUxLVwuoHMnYH0ZcHGTANBgkqhkiG9w0BAQsFAAOCAQEASvj4 +sAPmLGd75JR3Y8xuTPl9Dg3cyLk1uXBPY/ok+myDjEedO2Pzmvl2MpWRsXe8rJq+ +seQxIcaBlVZaDrHC1LGmWazxY8u4TB1ZkErvkBYoH1quEPuBUDgMbMzxPcP1Y+Oz +4yHJJDnp/RVmRvQbEdBNc6N9Rvk97ahfYtTxP/jgdFcrGJ2BtMQo2pSXpXDrrB2+ +BxHw1dvd5Yzw1TKwg+ZX4o+/vqGqvz0dtdQ46tewXDpPaj+PwGZsY6rp2aQW9IHR +lRQOfc2VNNnSj3BzgXucfr2YYdhFh5iQxeuGMMY1v/D/w1WIg0vvBZIGcfK4mJO3 +7M2CYfE45k+XmCpajQ== +-----END CERTIFICATE----- + +# 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 +# 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 +# Label: "VeriSign Class 3 Public Primary Certification Authority - G4" +# Serial: 63143484348153506665311985501458640051 +# MD5 Fingerprint: 3a:52:e1:e7:fd:6f:3a:e3:6f:f3:6f:99:1b:f9:22:41 +# SHA1 Fingerprint: 22:d5:d8:df:8f:02:31:d1:8d:f7:9d:b7:cf:8a:2d:64:c9:3f:6c:3a +# 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 +-----BEGIN CERTIFICATE----- +MIIDhDCCAwqgAwIBAgIQL4D+I4wOIg9IZxIokYesszAKBggqhkjOPQQDAzCByjEL +MAkGA1UEBhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYDVQQLExZW +ZXJpU2lnbiBUcnVzdCBOZXR3b3JrMTowOAYDVQQLEzEoYykgMjAwNyBWZXJpU2ln +biwgSW5jLiAtIEZvciBhdXRob3JpemVkIHVzZSBvbmx5MUUwQwYDVQQDEzxWZXJp +U2lnbiBDbGFzcyAzIFB1YmxpYyBQcmltYXJ5IENlcnRpZmljYXRpb24gQXV0aG9y +aXR5IC0gRzQwHhcNMDcxMTA1MDAwMDAwWhcNMzgwMTE4MjM1OTU5WjCByjELMAkG +A1UEBhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYDVQQLExZWZXJp +U2lnbiBUcnVzdCBOZXR3b3JrMTowOAYDVQQLEzEoYykgMjAwNyBWZXJpU2lnbiwg +SW5jLiAtIEZvciBhdXRob3JpemVkIHVzZSBvbmx5MUUwQwYDVQQDEzxWZXJpU2ln +biBDbGFzcyAzIFB1YmxpYyBQcmltYXJ5IENlcnRpZmljYXRpb24gQXV0aG9yaXR5 +IC0gRzQwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAASnVnp8Utpkmw4tXNherJI9/gHm +GUo9FANL+mAnINmDiWn6VMaaGF5VKmTeBvaNSjutEDxlPZCIBIngMGGzrl0Bp3ve +fLK+ymVhAIau2o970ImtTR1ZmkGxvEeA3J5iw/mjgbIwga8wDwYDVR0TAQH/BAUw +AwEB/zAOBgNVHQ8BAf8EBAMCAQYwbQYIKwYBBQUHAQwEYTBfoV2gWzBZMFcwVRYJ +aW1hZ2UvZ2lmMCEwHzAHBgUrDgMCGgQUj+XTGoasjY5rw8+AatRIGCx7GS4wJRYj +aHR0cDovL2xvZ28udmVyaXNpZ24uY29tL3ZzbG9nby5naWYwHQYDVR0OBBYEFLMW +kf3upm7ktS5Jj4d4gYDs5bG1MAoGCCqGSM49BAMDA2gAMGUCMGYhDBgmYFo4e1ZC +4Kf8NoRRkSAsdk1DPcQdhCPQrNZ8NQbOzWm9kA3bbEhCHQ6qQgIxAJw9SDkjOVga +FRJZap7v1VmyHVIsmXHNxynfGyphe3HR3vPA5Q06Sqotp9iGKt0uEA== +-----END CERTIFICATE----- + +# Issuer: O=VeriSign, Inc. OU=Class 3 Public Primary Certification Authority +# Subject: O=VeriSign, Inc. OU=Class 3 Public Primary Certification Authority +# Label: "Verisign Class 3 Public Primary Certification Authority" +# Serial: 80507572722862485515306429940691309246 +# MD5 Fingerprint: ef:5a:f1:33:ef:f1:cd:bb:51:02:ee:12:14:4b:96:c4 +# SHA1 Fingerprint: a1:db:63:93:91:6f:17:e4:18:55:09:40:04:15:c7:02:40:b0:ae:6b +# 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 +-----BEGIN CERTIFICATE----- +MIICPDCCAaUCEDyRMcsf9tAbDpq40ES/Er4wDQYJKoZIhvcNAQEFBQAwXzELMAkG +A1UEBhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMTcwNQYDVQQLEy5DbGFz +cyAzIFB1YmxpYyBQcmltYXJ5IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MB4XDTk2 +MDEyOTAwMDAwMFoXDTI4MDgwMjIzNTk1OVowXzELMAkGA1UEBhMCVVMxFzAVBgNV +BAoTDlZlcmlTaWduLCBJbmMuMTcwNQYDVQQLEy5DbGFzcyAzIFB1YmxpYyBQcmlt +YXJ5IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MIGfMA0GCSqGSIb3DQEBAQUAA4GN +ADCBiQKBgQDJXFme8huKARS0EN8EQNvjV69qRUCPhAwL0TPZ2RHP7gJYHyX3KqhE +BarsAx94f56TuZoAqiN91qyFomNFx3InzPRMxnVx0jnvT0Lwdd8KkMaOIG+YD/is +I19wKTakyYbnsZogy1Olhec9vn2a/iRFM9x2Fe0PonFkTGUugWhFpwIDAQABMA0G +CSqGSIb3DQEBBQUAA4GBABByUqkFFBkyCEHwxWsKzH4PIRnN5GfcX6kb5sroc50i +2JhucwNhkcV8sEVAbkSdjbCxlnRhLQ2pRdKkkirWmnWXbj9T/UWZYB2oK0z5XqcJ +2HUw19JlYD1n1khVdWk/kfVIC0dpImmClr7JyDiGSnoscxlIaU5rfGW/D/xwzoiQ -----END CERTIFICATE----- -GeoTrust Global CA -================== - ------BEGIN CERTIFICATE----- -MIIDfTCCAuagAwIBAgIDErvmMA0GCSqGSIb3DQEBBQUAME4xCzAJBgNVBAYTAlVT -MRAwDgYDVQQKEwdFcXVpZmF4MS0wKwYDVQQLEyRFcXVpZmF4IFNlY3VyZSBDZXJ0 -aWZpY2F0ZSBBdXRob3JpdHkwHhcNMDIwNTIxMDQwMDAwWhcNMTgwODIxMDQwMDAw -WjBCMQswCQYDVQQGEwJVUzEWMBQGA1UEChMNR2VvVHJ1c3QgSW5jLjEbMBkGA1UE -AxMSR2VvVHJ1c3QgR2xvYmFsIENBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIB -CgKCAQEA2swYYzD99BcjGlZ+W988bDjkcbd4kdS8odhM+KhDtgPpTSEHCIjaWC9m -OSm9BXiLnTjoBbdqfnGk5sRgprDvgOSJKA+eJdbtg/OtppHHmMlCGDUUna2YRpIu -T8rxh0PBFpVXLVDviS2Aelet8u5fa9IAjbkU+BQVNdnARqN7csiRv8lVK83Qlz6c -JmTM386DGXHKTubU1XupGc1V3sjs0l44U+VcT4wt/lAjNvxm5suOpDkZALeVAjmR -Cw7+OC7RHQWa9k0+bw8HHa8sHo9gOeL6NlMTOdReJivbPagUvTLrGAMoUgRx5asz -PeE4uwc2hGKceeoWMPRfwCvocWvk+QIDAQABo4HwMIHtMB8GA1UdIwQYMBaAFEjm -aPkr0rKV10fYIyAQTzOYkJ/UMB0GA1UdDgQWBBTAephojYn7qwVkDBF9qn1luMrM -TjAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBBjA6BgNVHR8EMzAxMC+g -LaArhilodHRwOi8vY3JsLmdlb3RydXN0LmNvbS9jcmxzL3NlY3VyZWNhLmNybDBO -BgNVHSAERzBFMEMGBFUdIAAwOzA5BggrBgEFBQcCARYtaHR0cHM6Ly93d3cuZ2Vv -dHJ1c3QuY29tL3Jlc291cmNlcy9yZXBvc2l0b3J5MA0GCSqGSIb3DQEBBQUAA4GB -AHbhEm5OSxYShjAGsoEIz/AIx8dxfmbuwu3UOx//8PDITtZDOLC5MH0Y0FWDomrL -NhGc6Ehmo21/uBPUR/6LWlxz/K7ZGzIZOKuXNBSqltLroxwUCEm2u+WR74M26x1W -b8ravHNjkOR/ez4iyz0H7V84dJzjA1BOoa+Y7mHyhD8S +# Issuer: CN=GlobalSign O=GlobalSign OU=GlobalSign Root CA - R3 +# Subject: CN=GlobalSign O=GlobalSign OU=GlobalSign Root CA - R3 +# Label: "GlobalSign Root CA - R3" +# Serial: 4835703278459759426209954 +# MD5 Fingerprint: c5:df:b8:49:ca:05:13:55:ee:2d:ba:1a:c3:3e:b0:28 +# SHA1 Fingerprint: d6:9b:56:11:48:f0:1c:77:c5:45:78:c1:09:26:df:5b:85:69:76:ad +# 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 +-----BEGIN CERTIFICATE----- +MIIDXzCCAkegAwIBAgILBAAAAAABIVhTCKIwDQYJKoZIhvcNAQELBQAwTDEgMB4G +A1UECxMXR2xvYmFsU2lnbiBSb290IENBIC0gUjMxEzARBgNVBAoTCkdsb2JhbFNp +Z24xEzARBgNVBAMTCkdsb2JhbFNpZ24wHhcNMDkwMzE4MTAwMDAwWhcNMjkwMzE4 +MTAwMDAwWjBMMSAwHgYDVQQLExdHbG9iYWxTaWduIFJvb3QgQ0EgLSBSMzETMBEG +A1UEChMKR2xvYmFsU2lnbjETMBEGA1UEAxMKR2xvYmFsU2lnbjCCASIwDQYJKoZI +hvcNAQEBBQADggEPADCCAQoCggEBAMwldpB5BngiFvXAg7aEyiie/QV2EcWtiHL8 +RgJDx7KKnQRfJMsuS+FggkbhUqsMgUdwbN1k0ev1LKMPgj0MK66X17YUhhB5uzsT +gHeMCOFJ0mpiLx9e+pZo34knlTifBtc+ycsmWQ1z3rDI6SYOgxXG71uL0gRgykmm +KPZpO/bLyCiR5Z2KYVc3rHQU3HTgOu5yLy6c+9C7v/U9AOEGM+iCK65TpjoWc4zd +QQ4gOsC0p6Hpsk+QLjJg6VfLuQSSaGjlOCZgdbKfd/+RFO+uIEn8rUAVSNECMWEZ +XriX7613t2Saer9fwRPvm2L7DWzgVGkWqQPabumDk3F2xmmFghcCAwEAAaNCMEAw +DgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFI/wS3+o +LkUkrk1Q+mOai97i3Ru8MA0GCSqGSIb3DQEBCwUAA4IBAQBLQNvAUKr+yAzv95ZU +RUm7lgAJQayzE4aGKAczymvmdLm6AC2upArT9fHxD4q/c2dKg8dEe3jgr25sbwMp +jjM5RcOO5LlXbKr8EpbsU8Yt5CRsuZRj+9xTaGdWPoO4zzUhw8lo/s7awlOqzJCK +6fBdRoyV3XpYKBovHd7NADdBj+1EbddTKJd+82cEHhXXipa0095MJ6RMG3NzdvQX +mcIfeg7jLQitChws/zyrVQ4PkX4268NXSb7hLi18YIvDQVETI53O9zJrlAGomecs +Mx86OyXShkDOOyyGeMlhLxS67ttVb9+E7gUJTb0o2HLO02JQZR7rkpeDMdmztcpH +WD9f +-----END CERTIFICATE----- + +# Issuer: CN=TC TrustCenter Universal CA III O=TC TrustCenter GmbH OU=TC TrustCenter Universal CA +# Subject: CN=TC TrustCenter Universal CA III O=TC TrustCenter GmbH OU=TC TrustCenter Universal CA +# Label: "TC TrustCenter Universal CA III" +# Serial: 2010889993983507346460533407902964 +# MD5 Fingerprint: 9f:dd:db:ab:ff:8e:ff:45:21:5f:f0:6c:9d:8f:fe:2b +# SHA1 Fingerprint: 96:56:cd:7b:57:96:98:95:d0:e1:41:46:68:06:fb:b8:c6:11:06:87 +# 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 +-----BEGIN CERTIFICATE----- +MIID4TCCAsmgAwIBAgIOYyUAAQACFI0zFQLkbPQwDQYJKoZIhvcNAQEFBQAwezEL +MAkGA1UEBhMCREUxHDAaBgNVBAoTE1RDIFRydXN0Q2VudGVyIEdtYkgxJDAiBgNV +BAsTG1RDIFRydXN0Q2VudGVyIFVuaXZlcnNhbCBDQTEoMCYGA1UEAxMfVEMgVHJ1 +c3RDZW50ZXIgVW5pdmVyc2FsIENBIElJSTAeFw0wOTA5MDkwODE1MjdaFw0yOTEy +MzEyMzU5NTlaMHsxCzAJBgNVBAYTAkRFMRwwGgYDVQQKExNUQyBUcnVzdENlbnRl +ciBHbWJIMSQwIgYDVQQLExtUQyBUcnVzdENlbnRlciBVbml2ZXJzYWwgQ0ExKDAm +BgNVBAMTH1RDIFRydXN0Q2VudGVyIFVuaXZlcnNhbCBDQSBJSUkwggEiMA0GCSqG +SIb3DQEBAQUAA4IBDwAwggEKAoIBAQDC2pxisLlxErALyBpXsq6DFJmzNEubkKLF +5+cvAqBNLaT6hdqbJYUtQCggbergvbFIgyIpRJ9Og+41URNzdNW88jBmlFPAQDYv +DIRlzg9uwliT6CwLOunBjvvya8o84pxOjuT5fdMnnxvVZ3iHLX8LR7PH6MlIfK8v +zArZQe+f/prhsq75U7Xl6UafYOPfjdN/+5Z+s7Vy+EutCHnNaYlAJ/Uqwa1D7KRT +yGG299J5KmcYdkhtWyUB0SbFt1dpIxVbYYqt8Bst2a9c8SaQaanVDED1M4BDj5yj +dipFtK+/fz6HP3bFzSreIMUWWMv5G/UPyw0RUmS40nZid4PxWJ//AgMBAAGjYzBh +MB8GA1UdIwQYMBaAFFbn4VslQ4Dg9ozhcbyO5YAvxEjiMA8GA1UdEwEB/wQFMAMB +Af8wDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBRW5+FbJUOA4PaM4XG8juWAL8RI +4jANBgkqhkiG9w0BAQUFAAOCAQEAg8ev6n9NCjw5sWi+e22JLumzCecYV42Fmhfz +dkJQEw/HkG8zrcVJYCtsSVgZ1OK+t7+rSbyUyKu+KGwWaODIl0YgoGhnYIg5IFHY +aAERzqf2EQf27OysGh+yZm5WZ2B6dF7AbZc2rrUNXWZzwCUyRdhKBgePxLcHsU0G +DeGl6/R1yrqc0L2z0zIkTO5+4nYES0lT2PLpVDP85XEfPRRclkvxOvIAu2y0+pZV +CIgJwcyRGSmwIC3/yzikQOEXvnlhgP8HA4ZMTnsGnxGGjYnuJ8Tb4rwZjgvDwxPH +LQNjO9Po5KIqwoIIlBZU8O8fJ5AluA0OKBtHd0e9HKgl8ZS0Zg== +-----END CERTIFICATE----- + +# Issuer: CN=Go Daddy Root Certificate Authority - G2 O=GoDaddy.com, Inc. +# Subject: CN=Go Daddy Root Certificate Authority - G2 O=GoDaddy.com, Inc. +# Label: "Go Daddy Root Certificate Authority - G2" +# Serial: 0 +# MD5 Fingerprint: 80:3a:bc:22:c1:e6:fb:8d:9b:3b:27:4a:32:1b:9a:01 +# SHA1 Fingerprint: 47:be:ab:c9:22:ea:e8:0e:78:78:34:62:a7:9f:45:c2:54:fd:e6:8b +# 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 +-----BEGIN CERTIFICATE----- +MIIDxTCCAq2gAwIBAgIBADANBgkqhkiG9w0BAQsFADCBgzELMAkGA1UEBhMCVVMx +EDAOBgNVBAgTB0FyaXpvbmExEzARBgNVBAcTClNjb3R0c2RhbGUxGjAYBgNVBAoT +EUdvRGFkZHkuY29tLCBJbmMuMTEwLwYDVQQDEyhHbyBEYWRkeSBSb290IENlcnRp +ZmljYXRlIEF1dGhvcml0eSAtIEcyMB4XDTA5MDkwMTAwMDAwMFoXDTM3MTIzMTIz +NTk1OVowgYMxCzAJBgNVBAYTAlVTMRAwDgYDVQQIEwdBcml6b25hMRMwEQYDVQQH +EwpTY290dHNkYWxlMRowGAYDVQQKExFHb0RhZGR5LmNvbSwgSW5jLjExMC8GA1UE +AxMoR28gRGFkZHkgUm9vdCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkgLSBHMjCCASIw +DQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAL9xYgjx+lk09xvJGKP3gElY6SKD +E6bFIEMBO4Tx5oVJnyfq9oQbTqC023CYxzIBsQU+B07u9PpPL1kwIuerGVZr4oAH +/PMWdYA5UXvl+TW2dE6pjYIT5LY/qQOD+qK+ihVqf94Lw7YZFAXK6sOoBJQ7Rnwy +DfMAZiLIjWltNowRGLfTshxgtDj6AozO091GB94KPutdfMh8+7ArU6SSYmlRJQVh +GkSBjCypQ5Yj36w6gZoOKcUcqeldHraenjAKOc7xiID7S13MMuyFYkMlNAJWJwGR +tDtwKj9useiciAF9n9T521NtYJ2/LOdYq7hfRvzOxBsDPAnrSTFcaUaz4EcCAwEA +AaNCMEAwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYE +FDqahQcQZyi27/a9BUFuIMGU2g/eMA0GCSqGSIb3DQEBCwUAA4IBAQCZ21151fmX +WWcDYfF+OwYxdS2hII5PZYe096acvNjpL9DbWu7PdIxztDhC2gV7+AJ1uP2lsdeu +9tfeE8tTEH6KRtGX+rcuKxGrkLAngPnon1rpN5+r5N9ss4UXnT3ZJE95kTXWXwTr +gIOrmgIttRD02JDHBHNA7XIloKmf7J6raBKZV8aPEjoJpL1E/QYVN8Gb5DKj7Tjo +2GTzLH4U/ALqn83/B2gX2yKQOC16jdFU8WnjXzPKej17CuPKf1855eJ1usV2GDPO +LPAvTK33sefOT6jEm0pUBsV/fdUID+Ic/n4XuKxe9tQWskMJDE32p2u0mYRlynqI +4uJEvlz36hz1 +-----END CERTIFICATE----- + +# Issuer: CN=Starfield Root Certificate Authority - G2 O=Starfield Technologies, Inc. +# Subject: CN=Starfield Root Certificate Authority - G2 O=Starfield Technologies, Inc. +# Label: "Starfield Root Certificate Authority - G2" +# Serial: 0 +# MD5 Fingerprint: d6:39:81:c6:52:7e:96:69:fc:fc:ca:66:ed:05:f2:96 +# SHA1 Fingerprint: b5:1c:06:7c:ee:2b:0c:3d:f8:55:ab:2d:92:f4:fe:39:d4:e7:0f:0e +# 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 +-----BEGIN CERTIFICATE----- +MIID3TCCAsWgAwIBAgIBADANBgkqhkiG9w0BAQsFADCBjzELMAkGA1UEBhMCVVMx +EDAOBgNVBAgTB0FyaXpvbmExEzARBgNVBAcTClNjb3R0c2RhbGUxJTAjBgNVBAoT +HFN0YXJmaWVsZCBUZWNobm9sb2dpZXMsIEluYy4xMjAwBgNVBAMTKVN0YXJmaWVs +ZCBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAtIEcyMB4XDTA5MDkwMTAwMDAw +MFoXDTM3MTIzMTIzNTk1OVowgY8xCzAJBgNVBAYTAlVTMRAwDgYDVQQIEwdBcml6 +b25hMRMwEQYDVQQHEwpTY290dHNkYWxlMSUwIwYDVQQKExxTdGFyZmllbGQgVGVj +aG5vbG9naWVzLCBJbmMuMTIwMAYDVQQDEylTdGFyZmllbGQgUm9vdCBDZXJ0aWZp +Y2F0ZSBBdXRob3JpdHkgLSBHMjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC +ggEBAL3twQP89o/8ArFvW59I2Z154qK3A2FWGMNHttfKPTUuiUP3oWmb3ooa/RMg +nLRJdzIpVv257IzdIvpy3Cdhl+72WoTsbhm5iSzchFvVdPtrX8WJpRBSiUZV9Lh1 +HOZ/5FSuS/hVclcCGfgXcVnrHigHdMWdSL5stPSksPNkN3mSwOxGXn/hbVNMYq/N +Hwtjuzqd+/x5AJhhdM8mgkBj87JyahkNmcrUDnXMN/uLicFZ8WJ/X7NfZTD4p7dN +dloedl40wOiWVpmKs/B/pM293DIxfJHP4F8R+GuqSVzRmZTRouNjWwl2tVZi4Ut0 +HZbUJtQIBFnQmA4O5t78w+wfkPECAwEAAaNCMEAwDwYDVR0TAQH/BAUwAwEB/zAO +BgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFHwMMh+n2TB/xH1oo2Kooc6rB1snMA0G +CSqGSIb3DQEBCwUAA4IBAQARWfolTwNvlJk7mh+ChTnUdgWUXuEok21iXQnCoKjU +sHU48TRqneSfioYmUeYs0cYtbpUgSpIB7LiKZ3sx4mcujJUDJi5DnUox9g61DLu3 +4jd/IroAow57UvtruzvE03lRTs2Q9GcHGcg8RnoNAX3FWOdt5oUwF5okxBDgBPfg +8n/Uqgr/Qh037ZTlZFkSIHc40zI+OIF1lnP6aI+xy84fxez6nH7PfrHxBy22/L/K +pL/QlwVKvOoYKAKQvVR4CSFx09F9HdkWsKlhPdAKACL8x3vLCWRFCztAgfd9fDL1 +mMpYjn0q7pBZc2T5NnReJaH1ZgUufzkVqSr7UIuOhWn0 +-----END CERTIFICATE----- + +# Issuer: CN=Starfield Services Root Certificate Authority - G2 O=Starfield Technologies, Inc. +# Subject: CN=Starfield Services Root Certificate Authority - G2 O=Starfield Technologies, Inc. +# Label: "Starfield Services Root Certificate Authority - G2" +# Serial: 0 +# MD5 Fingerprint: 17:35:74:af:7b:61:1c:eb:f4:f9:3c:e2:ee:40:f9:a2 +# SHA1 Fingerprint: 92:5a:8f:8d:2c:6d:04:e0:66:5f:59:6a:ff:22:d8:63:e8:25:6f:3f +# 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 +-----BEGIN CERTIFICATE----- +MIID7zCCAtegAwIBAgIBADANBgkqhkiG9w0BAQsFADCBmDELMAkGA1UEBhMCVVMx +EDAOBgNVBAgTB0FyaXpvbmExEzARBgNVBAcTClNjb3R0c2RhbGUxJTAjBgNVBAoT +HFN0YXJmaWVsZCBUZWNobm9sb2dpZXMsIEluYy4xOzA5BgNVBAMTMlN0YXJmaWVs +ZCBTZXJ2aWNlcyBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAtIEcyMB4XDTA5 +MDkwMTAwMDAwMFoXDTM3MTIzMTIzNTk1OVowgZgxCzAJBgNVBAYTAlVTMRAwDgYD +VQQIEwdBcml6b25hMRMwEQYDVQQHEwpTY290dHNkYWxlMSUwIwYDVQQKExxTdGFy +ZmllbGQgVGVjaG5vbG9naWVzLCBJbmMuMTswOQYDVQQDEzJTdGFyZmllbGQgU2Vy +dmljZXMgUm9vdCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkgLSBHMjCCASIwDQYJKoZI +hvcNAQEBBQADggEPADCCAQoCggEBANUMOsQq+U7i9b4Zl1+OiFOxHz/Lz58gE20p +OsgPfTz3a3Y4Y9k2YKibXlwAgLIvWX/2h/klQ4bnaRtSmpDhcePYLQ1Ob/bISdm2 +8xpWriu2dBTrz/sm4xq6HZYuajtYlIlHVv8loJNwU4PahHQUw2eeBGg6345AWh1K +Ts9DkTvnVtYAcMtS7nt9rjrnvDH5RfbCYM8TWQIrgMw0R9+53pBlbQLPLJGmpufe +hRhJfGZOozptqbXuNC66DQO4M99H67FrjSXZm86B0UVGMpZwh94CDklDhbZsc7tk +6mFBrMnUVN+HL8cisibMn1lUaJ/8viovxFUcdUBgF4UCVTmLfwUCAwEAAaNCMEAw +DwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFJxfAN+q +AdcwKziIorhtSpzyEZGDMA0GCSqGSIb3DQEBCwUAA4IBAQBLNqaEd2ndOxmfZyMI +bw5hyf2E3F/YNoHN2BtBLZ9g3ccaaNnRbobhiCPPE95Dz+I0swSdHynVv/heyNXB +ve6SbzJ08pGCL72CQnqtKrcgfU28elUSwhXqvfdqlS5sdJ/PHLTyxQGjhdByPq1z +qwubdQxtRbeOlKyWN7Wg0I8VRw7j6IPdj/3vQQF3zCepYoUz8jcI73HPdwbeyBkd +iEDPfUYd/x7H4c7/I9vG+o1VTqkC50cRRj70/b17KSa7qWFiNyi2LSr2EIZkyXCn +0q23KXB56jzaYyWf/Wi3MOxw+3WKt21gZ7IeyLnp2KhvAotnDU0mV3HaIPzBSlCN +sSi6 +-----END CERTIFICATE----- + +# Issuer: CN=AffirmTrust Commercial O=AffirmTrust +# Subject: CN=AffirmTrust Commercial O=AffirmTrust +# Label: "AffirmTrust Commercial" +# Serial: 8608355977964138876 +# MD5 Fingerprint: 82:92:ba:5b:ef:cd:8a:6f:a6:3d:55:f9:84:f6:d6:b7 +# SHA1 Fingerprint: f9:b5:b6:32:45:5f:9c:be:ec:57:5f:80:dc:e9:6e:2c:c7:b2:78:b7 +# 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 +-----BEGIN CERTIFICATE----- +MIIDTDCCAjSgAwIBAgIId3cGJyapsXwwDQYJKoZIhvcNAQELBQAwRDELMAkGA1UE +BhMCVVMxFDASBgNVBAoMC0FmZmlybVRydXN0MR8wHQYDVQQDDBZBZmZpcm1UcnVz +dCBDb21tZXJjaWFsMB4XDTEwMDEyOTE0MDYwNloXDTMwMTIzMTE0MDYwNlowRDEL +MAkGA1UEBhMCVVMxFDASBgNVBAoMC0FmZmlybVRydXN0MR8wHQYDVQQDDBZBZmZp +cm1UcnVzdCBDb21tZXJjaWFsMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKC +AQEA9htPZwcroRX1BiLLHwGy43NFBkRJLLtJJRTWzsO3qyxPxkEylFf6EqdbDuKP +Hx6GGaeqtS25Xw2Kwq+FNXkyLbscYjfysVtKPcrNcV/pQr6U6Mje+SJIZMblq8Yr +ba0F8PrVC8+a5fBQpIs7R6UjW3p6+DM/uO+Zl+MgwdYoic+U+7lF7eNAFxHUdPAL +MeIrJmqbTFeurCA+ukV6BfO9m2kVrn1OIGPENXY6BwLJN/3HR+7o8XYdcxXyl6S1 +yHp52UKqK39c/s4mT6NmgTWvRLpUHhwwMmWd5jyTXlBOeuM61G7MGvv50jeuJCqr +VwMiKA1JdX+3KNp1v47j3A55MQIDAQABo0IwQDAdBgNVHQ4EFgQUnZPGU4teyq8/ +nx4P5ZmVvCT2lI8wDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwDQYJ +KoZIhvcNAQELBQADggEBAFis9AQOzcAN/wr91LoWXym9e2iZWEnStB03TX8nfUYG +XUPGhi4+c7ImfU+TqbbEKpqrIZcUsd6M06uJFdhrJNTxFq7YpFzUf1GO7RgBsZNj +vbz4YYCanrHOQnDiqX0GJX0nof5v7LMeJNrjS1UaADs1tDvZ110w/YETifLCBivt +Z8SOyUOyXGsViQK8YvxO8rUzqrJv0wqiUOP2O+guRMLbZjipM1ZI8W0bM40NjD9g +N53Tym1+NH4Nn3J2ixufcv1SNUFFApYvHLKac0khsUlHRUe072o0EclNmsxZt9YC +nlpOZbWUrhvfKbAW8b8Angc6F2S1BLUjIZkKlTuXfO8= +-----END CERTIFICATE----- + +# Issuer: CN=AffirmTrust Networking O=AffirmTrust +# Subject: CN=AffirmTrust Networking O=AffirmTrust +# Label: "AffirmTrust Networking" +# Serial: 8957382827206547757 +# MD5 Fingerprint: 42:65:ca:be:01:9a:9a:4c:a9:8c:41:49:cd:c0:d5:7f +# SHA1 Fingerprint: 29:36:21:02:8b:20:ed:02:f5:66:c5:32:d1:d6:ed:90:9f:45:00:2f +# 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 +-----BEGIN CERTIFICATE----- +MIIDTDCCAjSgAwIBAgIIfE8EORzUmS0wDQYJKoZIhvcNAQEFBQAwRDELMAkGA1UE +BhMCVVMxFDASBgNVBAoMC0FmZmlybVRydXN0MR8wHQYDVQQDDBZBZmZpcm1UcnVz +dCBOZXR3b3JraW5nMB4XDTEwMDEyOTE0MDgyNFoXDTMwMTIzMTE0MDgyNFowRDEL +MAkGA1UEBhMCVVMxFDASBgNVBAoMC0FmZmlybVRydXN0MR8wHQYDVQQDDBZBZmZp +cm1UcnVzdCBOZXR3b3JraW5nMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKC +AQEAtITMMxcua5Rsa2FSoOujz3mUTOWUgJnLVWREZY9nZOIG41w3SfYvm4SEHi3y +YJ0wTsyEheIszx6e/jarM3c1RNg1lho9Nuh6DtjVR6FqaYvZ/Ls6rnla1fTWcbua +kCNrmreIdIcMHl+5ni36q1Mr3Lt2PpNMCAiMHqIjHNRqrSK6mQEubWXLviRmVSRL +QESxG9fhwoXA3hA/Pe24/PHxI1Pcv2WXb9n5QHGNfb2V1M6+oF4nI979ptAmDgAp +6zxG8D1gvz9Q0twmQVGeFDdCBKNwV6gbh+0t+nvujArjqWaJGctB+d1ENmHP4ndG +yH329JKBNv3bNPFyfvMMFr20FQIDAQABo0IwQDAdBgNVHQ4EFgQUBx/S55zawm6i +QLSwelAQUHTEyL0wDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwDQYJ +KoZIhvcNAQEFBQADggEBAIlXshZ6qML91tmbmzTCnLQyFE2npN/svqe++EPbkTfO +tDIuUFUaNU52Q3Eg75N3ThVwLofDwR1t3Mu1J9QsVtFSUzpE0nPIxBsFZVpikpzu +QY0x2+c06lkh1QF612S4ZDnNye2v7UsDSKegmQGA3GWjNq5lWUhPgkvIZfFXHeVZ +Lgo/bNjR9eUJtGxUAArgFU2HdW23WJZa3W3SAKD0m0i+wzekujbgfIeFlxoVot4u +olu9rxj5kFDNcFn4J2dHy8egBzp90SxdbBk6ZrV9/ZFvgrG+CJPbFEfxojfHRZ48 +x3evZKiT3/Zpg4Jg8klCNO1aAFSFHBY2kgxc+qatv9s= +-----END CERTIFICATE----- + +# Issuer: CN=AffirmTrust Premium O=AffirmTrust +# Subject: CN=AffirmTrust Premium O=AffirmTrust +# Label: "AffirmTrust Premium" +# Serial: 7893706540734352110 +# MD5 Fingerprint: c4:5d:0e:48:b6:ac:28:30:4e:0a:bc:f9:38:16:87:57 +# SHA1 Fingerprint: d8:a6:33:2c:e0:03:6f:b1:85:f6:63:4f:7d:6a:06:65:26:32:28:27 +# 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 +-----BEGIN CERTIFICATE----- +MIIFRjCCAy6gAwIBAgIIbYwURrGmCu4wDQYJKoZIhvcNAQEMBQAwQTELMAkGA1UE +BhMCVVMxFDASBgNVBAoMC0FmZmlybVRydXN0MRwwGgYDVQQDDBNBZmZpcm1UcnVz +dCBQcmVtaXVtMB4XDTEwMDEyOTE0MTAzNloXDTQwMTIzMTE0MTAzNlowQTELMAkG +A1UEBhMCVVMxFDASBgNVBAoMC0FmZmlybVRydXN0MRwwGgYDVQQDDBNBZmZpcm1U +cnVzdCBQcmVtaXVtMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAxBLf +qV/+Qd3d9Z+K4/as4Tx4mrzY8H96oDMq3I0gW64tb+eT2TZwamjPjlGjhVtnBKAQ +JG9dKILBl1fYSCkTtuG+kU3fhQxTGJoeJKJPj/CihQvL9Cl/0qRY7iZNyaqoe5rZ ++jjeRFcV5fiMyNlI4g0WJx0eyIOFJbe6qlVBzAMiSy2RjYvmia9mx+n/K+k8rNrS +s8PhaJyJ+HoAVt70VZVs+7pk3WKL3wt3MutizCaam7uqYoNMtAZ6MMgpv+0GTZe5 +HMQxK9VfvFMSF5yZVylmd2EhMQcuJUmdGPLu8ytxjLW6OQdJd/zvLpKQBY0tL3d7 +70O/Nbua2Plzpyzy0FfuKE4mX4+QaAkvuPjcBukumj5Rp9EixAqnOEhss/n/fauG +V+O61oV4d7pD6kh/9ti+I20ev9E2bFhc8e6kGVQa9QPSdubhjL08s9NIS+LI+H+S +qHZGnEJlPqQewQcDWkYtuJfzt9WyVSHvutxMAJf7FJUnM7/oQ0dG0giZFmA7mn7S +5u046uwBHjxIVkkJx0w3AJ6IDsBz4W9m6XJHMD4Q5QsDyZpCAGzFlH5hxIrff4Ia +C1nEWTJ3s7xgaVY5/bQGeyzWZDbZvUjthB9+pSKPKrhC9IK31FOQeE4tGv2Bb0TX +OwF0lkLgAOIua+rF7nKsu7/+6qqo+Nz2snmKtmcCAwEAAaNCMEAwHQYDVR0OBBYE +FJ3AZ6YMItkm9UWrpmVSESfYRaxjMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/ +BAQDAgEGMA0GCSqGSIb3DQEBDAUAA4ICAQCzV00QYk465KzquByvMiPIs0laUZx2 +KI15qldGF9X1Uva3ROgIRL8YhNILgM3FEv0AVQVhh0HctSSePMTYyPtwni94loMg +Nt58D2kTiKV1NpgIpsbfrM7jWNa3Pt668+s0QNiigfV4Py/VpfzZotReBA4Xrf5B +8OWycvpEgjNC6C1Y91aMYj+6QrCcDFx+LmUmXFNPALJ4fqENmS2NuB2OosSw/WDQ +MKSOyARiqcTtNd56l+0OOF6SL5Nwpamcb6d9Ex1+xghIsV5n61EIJenmJWtSKZGc +0jlzCFfemQa0W50QBuHCAKi4HEoCChTQwUHK+4w1IX2COPKpVJEZNZOUbWo6xbLQ +u4mGk+ibyQ86p3q4ofB4Rvr8Ny/lioTz3/4E2aFooC8k4gmVBtWVyuEklut89pMF +u+1z6S3RdTnX5yTb2E5fQ4+e0BQ5v1VwSJlXMbSc7kqYA5YwH2AG7hsj/oFgIxpH +YoWlzBk0gG+zrBrjn/B7SK3VAdlntqlyk+otZrWyuOQ9PLLvTIzq6we/qzWaVYa8 +GKa1qF60g2xraUDTn9zxw2lrueFtCfTxqlB2Cnp9ehehVZZCmTEJ3WARjQUwfuaO +RtGdFNrHF+QFlozEJLUbzxQHskD4o55BhrwE0GuWyCqANP2/7waj3VjFhT0+j/6e +KeC2uAloGRwYQw== +-----END CERTIFICATE----- + +# Issuer: CN=AffirmTrust Premium ECC O=AffirmTrust +# Subject: CN=AffirmTrust Premium ECC O=AffirmTrust +# Label: "AffirmTrust Premium ECC" +# Serial: 8401224907861490260 +# MD5 Fingerprint: 64:b0:09:55:cf:b1:d5:99:e2:be:13:ab:a6:5d:ea:4d +# SHA1 Fingerprint: b8:23:6b:00:2f:1d:16:86:53:01:55:6c:11:a4:37:ca:eb:ff:c3:bb +# 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 +-----BEGIN CERTIFICATE----- +MIIB/jCCAYWgAwIBAgIIdJclisc/elQwCgYIKoZIzj0EAwMwRTELMAkGA1UEBhMC +VVMxFDASBgNVBAoMC0FmZmlybVRydXN0MSAwHgYDVQQDDBdBZmZpcm1UcnVzdCBQ +cmVtaXVtIEVDQzAeFw0xMDAxMjkxNDIwMjRaFw00MDEyMzExNDIwMjRaMEUxCzAJ +BgNVBAYTAlVTMRQwEgYDVQQKDAtBZmZpcm1UcnVzdDEgMB4GA1UEAwwXQWZmaXJt +VHJ1c3QgUHJlbWl1bSBFQ0MwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAAQNMF4bFZ0D +0KF5Nbc6PJJ6yhUczWLznCZcBz3lVPqj1swS6vQUX+iOGasvLkjmrBhDeKzQN8O9 +ss0s5kfiGuZjuD0uL3jET9v0D6RoTFVya5UdThhClXjMNzyR4ptlKymjQjBAMB0G +A1UdDgQWBBSaryl6wBE1NSZRMADDav5A1a7WPDAPBgNVHRMBAf8EBTADAQH/MA4G +A1UdDwEB/wQEAwIBBjAKBggqhkjOPQQDAwNnADBkAjAXCfOHiFBar8jAQr9HX/Vs +aobgxCd05DhT1wV/GzTjxi+zygk8N53X57hG8f2h4nECMEJZh0PUUd+60wkyWs6I +flc9nF9Ca/UHLbXwgpP5WW+uZPpY5Yse42O+tYHNbwKMeQ== +-----END CERTIFICATE----- + +# Issuer: CN=StartCom Certification Authority O=StartCom Ltd. OU=Secure Digital Certificate Signing +# Subject: CN=StartCom Certification Authority O=StartCom Ltd. OU=Secure Digital Certificate Signing +# Label: "StartCom Certification Authority" +# Serial: 45 +# MD5 Fingerprint: c9:3b:0d:84:41:fc:a4:76:79:23:08:57:de:10:19:16 +# SHA1 Fingerprint: a3:f1:33:3f:e2:42:bf:cf:c5:d1:4e:8f:39:42:98:40:68:10:d1:a0 +# 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 +-----BEGIN CERTIFICATE----- +MIIHhzCCBW+gAwIBAgIBLTANBgkqhkiG9w0BAQsFADB9MQswCQYDVQQGEwJJTDEW +MBQGA1UEChMNU3RhcnRDb20gTHRkLjErMCkGA1UECxMiU2VjdXJlIERpZ2l0YWwg +Q2VydGlmaWNhdGUgU2lnbmluZzEpMCcGA1UEAxMgU3RhcnRDb20gQ2VydGlmaWNh +dGlvbiBBdXRob3JpdHkwHhcNMDYwOTE3MTk0NjM3WhcNMzYwOTE3MTk0NjM2WjB9 +MQswCQYDVQQGEwJJTDEWMBQGA1UEChMNU3RhcnRDb20gTHRkLjErMCkGA1UECxMi +U2VjdXJlIERpZ2l0YWwgQ2VydGlmaWNhdGUgU2lnbmluZzEpMCcGA1UEAxMgU3Rh +cnRDb20gQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwggIiMA0GCSqGSIb3DQEBAQUA +A4ICDwAwggIKAoICAQDBiNsJvGxGfHiflXu1M5DycmLWwTYgIiRezul38kMKogZk +pMyONvg45iPwbm2xPN1yo4UcodM9tDMr0y+v/uqwQVlntsQGfQqedIXWeUyAN3rf +OQVSWff0G0ZDpNKFhdLDcfN1YjS6LIp/Ho/u7TTQEceWzVI9ujPW3U3eCztKS5/C +Ji/6tRYccjV3yjxd5srhJosaNnZcAdt0FCX+7bWgiA/deMotHweXMAEtcnn6RtYT +Kqi5pquDSR3l8u/d5AGOGAqPY1MWhWKpDhk6zLVmpsJrdAfkK+F2PrRt2PZE4XNi +HzvEvqBTViVsUQn3qqvKv3b9bZvzndu/PWa8DFaqr5hIlTpL36dYUNk4dalb6kMM +Av+Z6+hsTXBbKWWc3apdzK8BMewM69KN6Oqce+Zu9ydmDBpI125C4z/eIT574Q1w ++2OqqGwaVLRcJXrJosmLFqa7LH4XXgVNWG4SHQHuEhANxjJ/GP/89PrNbpHoNkm+ +Gkhpi8KWTRoSsmkXwQqQ1vp5Iki/untp+HDH+no32NgN0nZPV/+Qt+OR0t3vwmC3 +Zzrd/qqc8NSLf3Iizsafl7b4r4qgEKjZ+xjGtrVcUjyJthkqcwEKDwOzEmDyei+B +26Nu/yYwl/WL3YlXtq09s68rxbd2AvCl1iuahhQqcvbjM4xdCUsT37uMdBNSSwID +AQABo4ICEDCCAgwwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYD +VR0OBBYEFE4L7xqkQFulF2mHMMo0aEPQQa7yMB8GA1UdIwQYMBaAFE4L7xqkQFul +F2mHMMo0aEPQQa7yMIIBWgYDVR0gBIIBUTCCAU0wggFJBgsrBgEEAYG1NwEBATCC +ATgwLgYIKwYBBQUHAgEWImh0dHA6Ly93d3cuc3RhcnRzc2wuY29tL3BvbGljeS5w +ZGYwNAYIKwYBBQUHAgEWKGh0dHA6Ly93d3cuc3RhcnRzc2wuY29tL2ludGVybWVk +aWF0ZS5wZGYwgc8GCCsGAQUFBwICMIHCMCcWIFN0YXJ0IENvbW1lcmNpYWwgKFN0 +YXJ0Q29tKSBMdGQuMAMCAQEagZZMaW1pdGVkIExpYWJpbGl0eSwgcmVhZCB0aGUg +c2VjdGlvbiAqTGVnYWwgTGltaXRhdGlvbnMqIG9mIHRoZSBTdGFydENvbSBDZXJ0 +aWZpY2F0aW9uIEF1dGhvcml0eSBQb2xpY3kgYXZhaWxhYmxlIGF0IGh0dHA6Ly93 +d3cuc3RhcnRzc2wuY29tL3BvbGljeS5wZGYwEQYJYIZIAYb4QgEBBAQDAgAHMDgG +CWCGSAGG+EIBDQQrFilTdGFydENvbSBGcmVlIFNTTCBDZXJ0aWZpY2F0aW9uIEF1 +dGhvcml0eTANBgkqhkiG9w0BAQsFAAOCAgEAjo/n3JR5fPGFf59Jb2vKXfuM/gTF +wWLRfUKKvFO3lANmMD+x5wqnUCBVJX92ehQN6wQOQOY+2IirByeDqXWmN3PH/UvS +Ta0XQMhGvjt/UfzDtgUx3M2FIk5xt/JxXrAaxrqTi3iSSoX4eA+D/i+tLPfkpLst +0OcNOrg+zvZ49q5HJMqjNTbOx8aHmNrs++myziebiMMEofYLWWivydsQD032ZGNc +pRJvkrKTlMeIFw6Ttn5ii5B/q06f/ON1FE8qMt9bDeD1e5MNq6HPh+GlBEXoPBKl +CcWw0bdT82AUuoVpaiF8H3VhFyAXe2w7QSlc4axa0c2Mm+tgHRns9+Ww2vl5GKVF +P0lDV9LdJNUso/2RjSe15esUBppMeyG7Oq0wBhjA2MFrLH9ZXF2RsXAiV+uKa0hK +1Q8p7MZAwC+ITGgBF3f0JBlPvfrhsiAhS90a2Cl9qrjeVOwhVYBsHvUwyKMQ5bLm +KhQxw4UtjJixhlpPiVktucf3HMiKf8CdBUrmQk9io20ppB+Fq9vlgcitKj1MXVuE +JnHEhV5xJMqlG2zYYdMa4FTbzrqpMrUi9nNBCV24F10OD5mQ1kfabwo6YigUZ4LZ +8dCAWZvLMdibD4x3TrVoivJs9iQOLWxwxXPR3hTQcY+203sC9uO41Alua551hDnm +fyWl8kgAwKQB2j8= +-----END CERTIFICATE----- + +# Issuer: CN=StartCom Certification Authority G2 O=StartCom Ltd. +# Subject: CN=StartCom Certification Authority G2 O=StartCom Ltd. +# Label: "StartCom Certification Authority G2" +# Serial: 59 +# MD5 Fingerprint: 78:4b:fb:9e:64:82:0a:d3:b8:4c:62:f3:64:f2:90:64 +# SHA1 Fingerprint: 31:f1:fd:68:22:63:20:ee:c6:3b:3f:9d:ea:4a:3e:53:7c:7c:39:17 +# 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 +-----BEGIN CERTIFICATE----- +MIIFYzCCA0ugAwIBAgIBOzANBgkqhkiG9w0BAQsFADBTMQswCQYDVQQGEwJJTDEW +MBQGA1UEChMNU3RhcnRDb20gTHRkLjEsMCoGA1UEAxMjU3RhcnRDb20gQ2VydGlm +aWNhdGlvbiBBdXRob3JpdHkgRzIwHhcNMTAwMTAxMDEwMDAxWhcNMzkxMjMxMjM1 +OTAxWjBTMQswCQYDVQQGEwJJTDEWMBQGA1UEChMNU3RhcnRDb20gTHRkLjEsMCoG +A1UEAxMjU3RhcnRDb20gQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkgRzIwggIiMA0G +CSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQC2iTZbB7cgNr2Cu+EWIAOVeq8Oo1XJ +JZlKxdBWQYeQTSFgpBSHO839sj60ZwNq7eEPS8CRhXBF4EKe3ikj1AENoBB5uNsD +vfOpL9HG4A/LnooUCri99lZi8cVytjIl2bLzvWXFDSxu1ZJvGIsAQRSCb0AgJnoo +D/Uefyf3lLE3PbfHkffiAez9lInhzG7TNtYKGXmu1zSCZf98Qru23QumNK9LYP5/ +Q0kGi4xDuFby2X8hQxfqp0iVAXV16iulQ5XqFYSdCI0mblWbq9zSOdIxHWDirMxW +RST1HFSr7obdljKF+ExP6JV2tgXdNiNnvP8V4so75qbsO+wmETRIjfaAKxojAuuK +HDp2KntWFhxyKrOq42ClAJ8Em+JvHhRYW6Vsi1g8w7pOOlz34ZYrPu8HvKTlXcxN +nw3h3Kq74W4a7I/htkxNeXJdFzULHdfBR9qWJODQcqhaX2YtENwvKhOuJv4KHBnM +0D4LnMgJLvlblnpHnOl68wVQdJVznjAJ85eCXuaPOQgeWeU1FEIT/wCc976qUM/i +UUjXuG+v+E5+M5iSFGI6dWPPe/regjupuznixL0sAA7IF6wT700ljtizkC+p2il9 +Ha90OrInwMEePnWjFqmveiJdnxMaz6eg6+OGCtP95paV1yPIN93EfKo2rJgaErHg +TuixO/XWb/Ew1wIDAQABo0IwQDAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQE +AwIBBjAdBgNVHQ4EFgQUS8W0QGutHLOlHGVuRjaJhwUMDrYwDQYJKoZIhvcNAQEL +BQADggIBAHNXPyzVlTJ+N9uWkusZXn5T50HsEbZH77Xe7XRcxfGOSeD8bpkTzZ+K +2s06Ctg6Wgk/XzTQLwPSZh0avZyQN8gMjgdalEVGKua+etqhqaRpEpKwfTbURIfX +UfEpY9Z1zRbkJ4kd+MIySP3bmdCPX1R0zKxnNBFi2QwKN4fRoxdIjtIXHfbX/dtl +6/2o1PXWT6RbdejF0mCy2wl+JYt7ulKSnj7oxXehPOBKc2thz4bcQ///If4jXSRK +9dNtD2IEBVeC2m6kMyV5Sy5UGYvMLD0w6dEG/+gyRr61M3Z3qAFdlsHB1b6uJcDJ +HgoJIIihDsnzb02CVAAgp9KP5DlUFy6NHrgbuxu9mk47EDTcnIhT76IxW1hPkWLI +wpqazRVdOKnWvvgTtZ8SafJQYqz7Fzf07rh1Z2AQ+4NQ+US1dZxAF7L+/XldblhY +XzD8AK6vM8EOTmy6p6ahfzLbOOCxchcKK5HsamMm7YnUeMx0HgX4a/6ManY5Ka5l +IxKVCCIcl85bBu4M4ru8H0ST9tg4RQUh7eStqxK2A6RCLi3ECToDZ2mEmuFZkIoo +hdVddLHRDiBYmxOlsGOm7XtH/UVVMKTumtTm4ofvmMkyghEpIrwACjFeLQ/Ajulr +so8uBtjRkcfGEvRM/TAXw8HaOFvjqermobp573PYtlNXLfbQ4ddI -----END CERTIFICATE----- diff --git a/apps/files_external/3rdparty/google-api-php-client/src/Google/Model.php b/apps/files_external/3rdparty/google-api-php-client/src/Google/Model.php index 2bb9a333d66..df8216a80ed 100644 --- a/apps/files_external/3rdparty/google-api-php-client/src/Google/Model.php +++ b/apps/files_external/3rdparty/google-api-php-client/src/Google/Model.php @@ -20,11 +20,14 @@ * from a given json schema. * http://tools.ietf.org/html/draft-zyp-json-schema-03#section-5 * - * @author Chirag Shah <chirags@google.com> - * */ class Google_Model implements ArrayAccess { + /** + * If you need to specify a NULL JSON value, use Google_Model::NULL_VALUE + * instead - it will be replaced when converting to JSON with a real null. + */ + const NULL_VALUE = "{}gapi-php-null"; protected $internal_gapi_mappings = array(); protected $modelData = array(); protected $processed = array(); @@ -33,15 +36,21 @@ class Google_Model implements ArrayAccess * Polymorphic - accepts a variable number of arguments dependent * on the type of the model subclass. */ - public function __construct() + final public function __construct() { if (func_num_args() == 1 && is_array(func_get_arg(0))) { // Initialize the model with the array's contents. $array = func_get_arg(0); $this->mapTypes($array); } + $this->gapiInit(); } + /** + * Getter that handles passthrough access to the data array, and lazy object creation. + * @param string $key Property name. + * @return mixed The value if any, or null. + */ public function __get($key) { $keyTypeName = $this->keyType($key); @@ -87,7 +96,7 @@ class Google_Model implements ArrayAccess */ protected function mapTypes($array) { - // Hard initilise simple types, lazy load more complex ones. + // Hard initialise simple types, lazy load more complex ones. foreach ($array as $key => $val) { if ( !property_exists($this, $this->keyType($key)) && property_exists($this, $key)) { @@ -103,6 +112,16 @@ class Google_Model implements ArrayAccess } /** + * Blank initialiser to be used in subclasses to do post-construction initialisation - this + * avoids the need for subclasses to have to implement the variadics handling in their + * constructors. + */ + protected function gapiInit() + { + return; + } + + /** * Create a simplified object suitable for straightforward * conversion to JSON. This is relatively expensive * due to the usage of reflection, but shouldn't be called @@ -116,7 +135,7 @@ class Google_Model implements ArrayAccess foreach ($this->modelData as $key => $val) { $result = $this->getSimpleValue($val); if ($result !== null) { - $object->$key = $result; + $object->$key = $this->nullPlaceholderCheck($result); } } @@ -128,7 +147,7 @@ class Google_Model implements ArrayAccess $result = $this->getSimpleValue($this->$name); if ($result !== null) { $name = $this->getMappedName($name); - $object->$name = $result; + $object->$name = $this->nullPlaceholderCheck($result); } } @@ -149,13 +168,24 @@ class Google_Model implements ArrayAccess $a_value = $this->getSimpleValue($a_value); if ($a_value !== null) { $key = $this->getMappedName($key); - $return[$key] = $a_value; + $return[$key] = $this->nullPlaceholderCheck($a_value); } } return $return; } return $value; } + + /** + * Check whether the value is the null placeholder and return true null. + */ + private function nullPlaceholderCheck($value) + { + if ($value === self::NULL_VALUE) { + return null; + } + return $value; + } /** * If there is an internal name mapping, use that. diff --git a/apps/files_external/3rdparty/google-api-php-client/src/Google/Service.php b/apps/files_external/3rdparty/google-api-php-client/src/Google/Service.php index 2e0b6c52282..d3fd3b49d1c 100644 --- a/apps/files_external/3rdparty/google-api-php-client/src/Google/Service.php +++ b/apps/files_external/3rdparty/google-api-php-client/src/Google/Service.php @@ -17,6 +17,8 @@ class Google_Service { + public $batchPath; + public $rootUrl; public $version; public $servicePath; public $availableScopes; @@ -36,4 +38,19 @@ class Google_Service { return $this->client; } + + /** + * Create a new HTTP Batch handler for this service + * + * @return Google_Http_Batch + */ + public function createBatch() + { + return new Google_Http_Batch( + $this->client, + false, + $this->rootUrl, + $this->batchPath + ); + } } diff --git a/apps/files_external/3rdparty/google-api-php-client/src/Google/Service/Drive.php b/apps/files_external/3rdparty/google-api-php-client/src/Google/Service/Drive.php index 291a6091232..ab06a05cfbb 100644 --- a/apps/files_external/3rdparty/google-api-php-client/src/Google/Service/Drive.php +++ b/apps/files_external/3rdparty/google-api-php-client/src/Google/Service/Drive.php @@ -19,8 +19,7 @@ * Service definition for Drive (v2). * * <p> - * The API to interact with Drive. - * </p> + * The API to interact with Drive.</p> * * <p> * For more information about this service, see the API @@ -31,20 +30,33 @@ */ class Google_Service_Drive extends Google_Service { - /** View and manage the files and documents in your Google Drive. */ - const DRIVE = "https://www.googleapis.com/auth/drive"; + /** View and manage the files in your Google Drive. */ + const DRIVE = + "https://www.googleapis.com/auth/drive"; /** View and manage its own configuration data in your Google Drive. */ - const DRIVE_APPDATA = "https://www.googleapis.com/auth/drive.appdata"; + const DRIVE_APPDATA = + "https://www.googleapis.com/auth/drive.appdata"; /** View your Google Drive apps. */ - const DRIVE_APPS_READONLY = "https://www.googleapis.com/auth/drive.apps.readonly"; - /** View and manage Google Drive files that you have opened or created with this app. */ - const DRIVE_FILE = "https://www.googleapis.com/auth/drive.file"; - /** View metadata for files and documents in your Google Drive. */ - const DRIVE_METADATA_READONLY = "https://www.googleapis.com/auth/drive.metadata.readonly"; - /** View the files and documents in your Google Drive. */ - const DRIVE_READONLY = "https://www.googleapis.com/auth/drive.readonly"; + const DRIVE_APPS_READONLY = + "https://www.googleapis.com/auth/drive.apps.readonly"; + /** View and manage Google Drive files and folders that you have opened or created with this app. */ + const DRIVE_FILE = + "https://www.googleapis.com/auth/drive.file"; + /** View and manage metadata of files in your Google Drive. */ + const DRIVE_METADATA = + "https://www.googleapis.com/auth/drive.metadata"; + /** View metadata for files in your Google Drive. */ + const DRIVE_METADATA_READONLY = + "https://www.googleapis.com/auth/drive.metadata.readonly"; + /** View the photos, videos and albums in your Google Photos. */ + const DRIVE_PHOTOS_READONLY = + "https://www.googleapis.com/auth/drive.photos.readonly"; + /** View the files in your Google Drive. */ + const DRIVE_READONLY = + "https://www.googleapis.com/auth/drive.readonly"; /** Modify your Google Apps Script scripts' behavior. */ - const DRIVE_SCRIPTS = "https://www.googleapis.com/auth/drive.scripts"; + const DRIVE_SCRIPTS = + "https://www.googleapis.com/auth/drive.scripts"; public $about; public $apps; @@ -69,6 +81,7 @@ class Google_Service_Drive extends Google_Service public function __construct(Google_Client $client) { parent::__construct($client); + $this->rootUrl = 'https://www.googleapis.com/'; $this->servicePath = 'drive/v2/'; $this->version = 'v2'; $this->serviceName = 'drive'; @@ -161,10 +174,6 @@ class Google_Service_Drive extends Google_Service 'location' => 'query', 'type' => 'boolean', ), - 'startChangeId' => array( - 'location' => 'query', - 'type' => 'string', - ), 'includeDeleted' => array( 'location' => 'query', 'type' => 'boolean', @@ -177,6 +186,14 @@ class Google_Service_Drive extends Google_Service 'location' => 'query', 'type' => 'string', ), + 'spaces' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'startChangeId' => array( + 'location' => 'query', + 'type' => 'string', + ), ), ),'watch' => array( 'path' => 'changes/watch', @@ -186,10 +203,6 @@ class Google_Service_Drive extends Google_Service 'location' => 'query', 'type' => 'boolean', ), - 'startChangeId' => array( - 'location' => 'query', - 'type' => 'string', - ), 'includeDeleted' => array( 'location' => 'query', 'type' => 'boolean', @@ -202,6 +215,14 @@ class Google_Service_Drive extends Google_Service 'location' => 'query', 'type' => 'string', ), + 'spaces' => array( + 'location' => 'query', + 'type' => 'string', + ), + 'startChangeId' => array( + 'location' => 'query', + 'type' => 'string', + ), ), ), ) @@ -276,7 +297,7 @@ class Google_Service_Drive extends Google_Service 'type' => 'string', 'required' => true, ), - 'q' => array( + 'orderBy' => array( 'location' => 'query', 'type' => 'string', ), @@ -284,6 +305,10 @@ class Google_Service_Drive extends Google_Service 'location' => 'query', 'type' => 'string', ), + 'q' => array( + 'location' => 'query', + 'type' => 'string', + ), 'maxResults' => array( 'location' => 'query', 'type' => 'integer', @@ -461,6 +486,19 @@ class Google_Service_Drive extends Google_Service 'path' => 'files/trash', 'httpMethod' => 'DELETE', 'parameters' => array(), + ),'generateIds' => array( + 'path' => 'files/generateIds', + 'httpMethod' => 'GET', + 'parameters' => array( + 'maxResults' => array( + 'location' => 'query', + 'type' => 'integer', + ), + 'space' => array( + 'location' => 'query', + 'type' => 'string', + ), + ), ),'get' => array( 'path' => 'files/{fileId}', 'httpMethod' => 'GET', @@ -470,10 +508,18 @@ class Google_Service_Drive extends Google_Service 'type' => 'string', 'required' => true, ), + 'acknowledgeAbuse' => array( + 'location' => 'query', + 'type' => 'boolean', + ), 'updateViewedDate' => array( 'location' => 'query', 'type' => 'boolean', ), + 'revisionId' => array( + 'location' => 'query', + 'type' => 'string', + ), 'projection' => array( 'location' => 'query', 'type' => 'string', @@ -520,25 +566,33 @@ class Google_Service_Drive extends Google_Service 'path' => 'files', 'httpMethod' => 'GET', 'parameters' => array( - 'q' => array( + 'orderBy' => array( 'location' => 'query', 'type' => 'string', ), - 'pageToken' => array( + 'projection' => array( 'location' => 'query', 'type' => 'string', ), - 'corpus' => array( + 'maxResults' => array( + 'location' => 'query', + 'type' => 'integer', + ), + 'q' => array( 'location' => 'query', 'type' => 'string', ), - 'projection' => array( + 'pageToken' => array( 'location' => 'query', 'type' => 'string', ), - 'maxResults' => array( + 'spaces' => array( 'location' => 'query', - 'type' => 'integer', + 'type' => 'string', + ), + 'corpus' => array( + 'location' => 'query', + 'type' => 'string', ), ), ),'patch' => array( @@ -554,19 +608,19 @@ class Google_Service_Drive extends Google_Service 'location' => 'query', 'type' => 'string', ), - 'updateViewedDate' => array( + 'modifiedDateBehavior' => array( 'location' => 'query', - 'type' => 'boolean', + 'type' => 'string', ), 'removeParents' => array( 'location' => 'query', 'type' => 'string', ), - 'setModifiedDate' => array( + 'updateViewedDate' => array( 'location' => 'query', 'type' => 'boolean', ), - 'convert' => array( + 'setModifiedDate' => array( 'location' => 'query', 'type' => 'boolean', ), @@ -574,6 +628,10 @@ class Google_Service_Drive extends Google_Service 'location' => 'query', 'type' => 'boolean', ), + 'convert' => array( + 'location' => 'query', + 'type' => 'boolean', + ), 'ocrLanguage' => array( 'location' => 'query', 'type' => 'string', @@ -642,19 +700,19 @@ class Google_Service_Drive extends Google_Service 'location' => 'query', 'type' => 'string', ), - 'updateViewedDate' => array( + 'modifiedDateBehavior' => array( 'location' => 'query', - 'type' => 'boolean', + 'type' => 'string', ), 'removeParents' => array( 'location' => 'query', 'type' => 'string', ), - 'setModifiedDate' => array( + 'updateViewedDate' => array( 'location' => 'query', 'type' => 'boolean', ), - 'convert' => array( + 'setModifiedDate' => array( 'location' => 'query', 'type' => 'boolean', ), @@ -662,6 +720,10 @@ class Google_Service_Drive extends Google_Service 'location' => 'query', 'type' => 'boolean', ), + 'convert' => array( + 'location' => 'query', + 'type' => 'boolean', + ), 'ocrLanguage' => array( 'location' => 'query', 'type' => 'string', @@ -696,10 +758,18 @@ class Google_Service_Drive extends Google_Service 'type' => 'string', 'required' => true, ), + 'acknowledgeAbuse' => array( + 'location' => 'query', + 'type' => 'boolean', + ), 'updateViewedDate' => array( 'location' => 'query', 'type' => 'boolean', ), + 'revisionId' => array( + 'location' => 'query', + 'type' => 'string', + ), 'projection' => array( 'location' => 'query', 'type' => 'string', @@ -1266,14 +1336,15 @@ class Google_Service_Drive_About_Resource extends Google_Service_Resource * * @param array $optParams Optional parameters. * - * @opt_param bool includeSubscribed - * When calculating the number of remaining change IDs, whether to include public files the user - * has opened and shared files. When set to false, this counts only change IDs for owned files and - * any shared or public files that the user has explicitly added to a folder they own. - * @opt_param string maxChangeIdCount - * Maximum number of remaining change IDs to count - * @opt_param string startChangeId - * Change ID to start counting from when calculating number of remaining change IDs + * @opt_param bool includeSubscribed When calculating the number of remaining + * change IDs, whether to include public files the user has opened and shared + * files. When set to false, this counts only change IDs for owned files and any + * shared or public files that the user has explicitly added to a folder they + * own. + * @opt_param string maxChangeIdCount Maximum number of remaining change IDs to + * count + * @opt_param string startChangeId Change ID to start counting from when + * calculating number of remaining change IDs * @return Google_Service_Drive_About */ public function get($optParams = array()) @@ -1298,8 +1369,7 @@ class Google_Service_Drive_Apps_Resource extends Google_Service_Resource /** * Gets a specific app. (apps.get) * - * @param string $appId - * The ID of the app. + * @param string $appId The ID of the app. * @param array $optParams Optional parameters. * @return Google_Service_Drive_App */ @@ -1309,22 +1379,25 @@ class Google_Service_Drive_Apps_Resource extends Google_Service_Resource $params = array_merge($params, $optParams); return $this->call('get', array($params), "Google_Service_Drive_App"); } + /** * Lists a user's installed apps. (apps.listApps) * * @param array $optParams Optional parameters. * - * @opt_param string languageCode - * A language or locale code, as defined by BCP 47, with some extensions from Unicode's LDML format - * (http://www.unicode.org/reports/tr35/). - * @opt_param string appFilterExtensions - * A comma-separated list of file extensions for open with filtering. All apps within the given app - * query scope which can open any of the given file extensions will be included in the response. If - * appFilterMimeTypes are provided as well, the result is a union of the two resulting app lists. - * @opt_param string appFilterMimeTypes - * A comma-separated list of MIME types for open with filtering. All apps within the given app - * query scope which can open any of the given MIME types will be included in the response. If - * appFilterExtensions are provided as well, the result is a union of the two resulting app lists. + * @opt_param string languageCode A language or locale code, as defined by BCP + * 47, with some extensions from Unicode's LDML format + * (http://www.unicode.org/reports/tr35/). + * @opt_param string appFilterExtensions A comma-separated list of file + * extensions for open with filtering. All apps within the given app query scope + * which can open any of the given file extensions will be included in the + * response. If appFilterMimeTypes are provided as well, the result is a union + * of the two resulting app lists. + * @opt_param string appFilterMimeTypes A comma-separated list of MIME types for + * open with filtering. All apps within the given app query scope which can open + * any of the given MIME types will be included in the response. If + * appFilterExtensions are provided as well, the result is a union of the two + * resulting app lists. * @return Google_Service_Drive_AppList */ public function listApps($optParams = array()) @@ -1349,8 +1422,7 @@ class Google_Service_Drive_Changes_Resource extends Google_Service_Resource /** * Gets a specific change. (changes.get) * - * @param string $changeId - * The ID of the change. + * @param string $changeId The ID of the change. * @param array $optParams Optional parameters. * @return Google_Service_Drive_Change */ @@ -1360,23 +1432,22 @@ class Google_Service_Drive_Changes_Resource extends Google_Service_Resource $params = array_merge($params, $optParams); return $this->call('get', array($params), "Google_Service_Drive_Change"); } + /** * Lists the changes for a user. (changes.listChanges) * * @param array $optParams Optional parameters. * - * @opt_param bool includeSubscribed - * Whether to include public files the user has opened and shared files. When set to false, the - * list only includes owned files plus any shared or public files the user has explicitly added to - * a folder they own. - * @opt_param string startChangeId - * Change ID to start listing changes from. - * @opt_param bool includeDeleted - * Whether to include deleted items. - * @opt_param int maxResults - * Maximum number of changes to return. - * @opt_param string pageToken - * Page token for changes. + * @opt_param bool includeSubscribed Whether to include public files the user + * has opened and shared files. When set to false, the list only includes owned + * files plus any shared or public files the user has explicitly added to a + * folder they own. + * @opt_param bool includeDeleted Whether to include deleted items. + * @opt_param int maxResults Maximum number of changes to return. + * @opt_param string pageToken Page token for changes. + * @opt_param string spaces A comma-separated list of spaces to query. Supported + * values are 'drive', 'appDataFolder' and 'photos'. + * @opt_param string startChangeId Change ID to start listing changes from. * @return Google_Service_Drive_ChangeList */ public function listChanges($optParams = array()) @@ -1385,24 +1456,23 @@ class Google_Service_Drive_Changes_Resource extends Google_Service_Resource $params = array_merge($params, $optParams); return $this->call('list', array($params), "Google_Service_Drive_ChangeList"); } + /** * Subscribe to changes for a user. (changes.watch) * * @param Google_Channel $postBody * @param array $optParams Optional parameters. * - * @opt_param bool includeSubscribed - * Whether to include public files the user has opened and shared files. When set to false, the - * list only includes owned files plus any shared or public files the user has explicitly added to - * a folder they own. - * @opt_param string startChangeId - * Change ID to start listing changes from. - * @opt_param bool includeDeleted - * Whether to include deleted items. - * @opt_param int maxResults - * Maximum number of changes to return. - * @opt_param string pageToken - * Page token for changes. + * @opt_param bool includeSubscribed Whether to include public files the user + * has opened and shared files. When set to false, the list only includes owned + * files plus any shared or public files the user has explicitly added to a + * folder they own. + * @opt_param bool includeDeleted Whether to include deleted items. + * @opt_param int maxResults Maximum number of changes to return. + * @opt_param string pageToken Page token for changes. + * @opt_param string spaces A comma-separated list of spaces to query. Supported + * values are 'drive', 'appDataFolder' and 'photos'. + * @opt_param string startChangeId Change ID to start listing changes from. * @return Google_Service_Drive_Channel */ public function watch(Google_Service_Drive_Channel $postBody, $optParams = array()) @@ -1452,10 +1522,8 @@ class Google_Service_Drive_Children_Resource extends Google_Service_Resource /** * Removes a child from a folder. (children.delete) * - * @param string $folderId - * The ID of the folder. - * @param string $childId - * The ID of the child. + * @param string $folderId The ID of the folder. + * @param string $childId The ID of the child. * @param array $optParams Optional parameters. */ public function delete($folderId, $childId, $optParams = array()) @@ -1464,13 +1532,12 @@ class Google_Service_Drive_Children_Resource extends Google_Service_Resource $params = array_merge($params, $optParams); return $this->call('delete', array($params)); } + /** * Gets a specific child reference. (children.get) * - * @param string $folderId - * The ID of the folder. - * @param string $childId - * The ID of the child. + * @param string $folderId The ID of the folder. + * @param string $childId The ID of the child. * @param array $optParams Optional parameters. * @return Google_Service_Drive_ChildReference */ @@ -1480,11 +1547,11 @@ class Google_Service_Drive_Children_Resource extends Google_Service_Resource $params = array_merge($params, $optParams); return $this->call('get', array($params), "Google_Service_Drive_ChildReference"); } + /** * Inserts a file into a folder. (children.insert) * - * @param string $folderId - * The ID of the folder. + * @param string $folderId The ID of the folder. * @param Google_ChildReference $postBody * @param array $optParams Optional parameters. * @return Google_Service_Drive_ChildReference @@ -1495,19 +1562,23 @@ class Google_Service_Drive_Children_Resource extends Google_Service_Resource $params = array_merge($params, $optParams); return $this->call('insert', array($params), "Google_Service_Drive_ChildReference"); } + /** * Lists a folder's children. (children.listChildren) * - * @param string $folderId - * The ID of the folder. + * @param string $folderId The ID of the folder. * @param array $optParams Optional parameters. * - * @opt_param string q - * Query string for searching children. - * @opt_param string pageToken - * Page token for children. - * @opt_param int maxResults - * Maximum number of children to return. + * @opt_param string orderBy A comma-separated list of sort keys. Valid keys are + * 'createdDate', 'folder', 'lastViewedByMeDate', 'modifiedByMeDate', + * 'modifiedDate', 'quotaBytesUsed', 'recency', 'sharedWithMeDate', 'starred', + * and 'title'. Each key sorts ascending by default, but may be reversed with + * the 'desc' modifier. Example usage: ?orderBy=folder,modifiedDate desc,title. + * Please note that there is a current limitation for users with approximately + * one million files in which the requested sort order is ignored. + * @opt_param string pageToken Page token for children. + * @opt_param string q Query string for searching children. + * @opt_param int maxResults Maximum number of children to return. * @return Google_Service_Drive_ChildList */ public function listChildren($folderId, $optParams = array()) @@ -1532,10 +1603,8 @@ class Google_Service_Drive_Comments_Resource extends Google_Service_Resource /** * Deletes a comment. (comments.delete) * - * @param string $fileId - * The ID of the file. - * @param string $commentId - * The ID of the comment. + * @param string $fileId The ID of the file. + * @param string $commentId The ID of the comment. * @param array $optParams Optional parameters. */ public function delete($fileId, $commentId, $optParams = array()) @@ -1544,18 +1613,16 @@ class Google_Service_Drive_Comments_Resource extends Google_Service_Resource $params = array_merge($params, $optParams); return $this->call('delete', array($params)); } + /** * Gets a comment by ID. (comments.get) * - * @param string $fileId - * The ID of the file. - * @param string $commentId - * The ID of the comment. + * @param string $fileId The ID of the file. + * @param string $commentId The ID of the comment. * @param array $optParams Optional parameters. * - * @opt_param bool includeDeleted - * If set, this will succeed when retrieving a deleted comment, and will include any deleted - * replies. + * @opt_param bool includeDeleted If set, this will succeed when retrieving a + * deleted comment, and will include any deleted replies. * @return Google_Service_Drive_Comment */ public function get($fileId, $commentId, $optParams = array()) @@ -1564,11 +1631,11 @@ class Google_Service_Drive_Comments_Resource extends Google_Service_Resource $params = array_merge($params, $optParams); return $this->call('get', array($params), "Google_Service_Drive_Comment"); } + /** * Creates a new comment on the given file. (comments.insert) * - * @param string $fileId - * The ID of the file. + * @param string $fileId The ID of the file. * @param Google_Comment $postBody * @param array $optParams Optional parameters. * @return Google_Service_Drive_Comment @@ -1579,24 +1646,22 @@ class Google_Service_Drive_Comments_Resource extends Google_Service_Resource $params = array_merge($params, $optParams); return $this->call('insert', array($params), "Google_Service_Drive_Comment"); } + /** * Lists a file's comments. (comments.listComments) * - * @param string $fileId - * The ID of the file. + * @param string $fileId The ID of the file. * @param array $optParams Optional parameters. * - * @opt_param string pageToken - * The continuation token, used to page through large result sets. To get the next page of results, - * set this parameter to the value of "nextPageToken" from the previous response. - * @opt_param string updatedMin - * Only discussions that were updated after this timestamp will be returned. Formatted as an RFC - * 3339 timestamp. - * @opt_param bool includeDeleted - * If set, all comments and replies, including deleted comments and replies (with content stripped) - * will be returned. - * @opt_param int maxResults - * The maximum number of discussions to include in the response, used for paging. + * @opt_param string pageToken The continuation token, used to page through + * large result sets. To get the next page of results, set this parameter to the + * value of "nextPageToken" from the previous response. + * @opt_param string updatedMin Only discussions that were updated after this + * timestamp will be returned. Formatted as an RFC 3339 timestamp. + * @opt_param bool includeDeleted If set, all comments and replies, including + * deleted comments and replies (with content stripped) will be returned. + * @opt_param int maxResults The maximum number of discussions to include in the + * response, used for paging. * @return Google_Service_Drive_CommentList */ public function listComments($fileId, $optParams = array()) @@ -1605,14 +1670,13 @@ class Google_Service_Drive_Comments_Resource extends Google_Service_Resource $params = array_merge($params, $optParams); return $this->call('list', array($params), "Google_Service_Drive_CommentList"); } + /** * Updates an existing comment. This method supports patch semantics. * (comments.patch) * - * @param string $fileId - * The ID of the file. - * @param string $commentId - * The ID of the comment. + * @param string $fileId The ID of the file. + * @param string $commentId The ID of the comment. * @param Google_Comment $postBody * @param array $optParams Optional parameters. * @return Google_Service_Drive_Comment @@ -1623,13 +1687,12 @@ class Google_Service_Drive_Comments_Resource extends Google_Service_Resource $params = array_merge($params, $optParams); return $this->call('patch', array($params), "Google_Service_Drive_Comment"); } + /** * Updates an existing comment. (comments.update) * - * @param string $fileId - * The ID of the file. - * @param string $commentId - * The ID of the comment. + * @param string $fileId The ID of the file. + * @param string $commentId The ID of the comment. * @param Google_Comment $postBody * @param array $optParams Optional parameters. * @return Google_Service_Drive_Comment @@ -1656,27 +1719,23 @@ class Google_Service_Drive_Files_Resource extends Google_Service_Resource /** * Creates a copy of the specified file. (files.copy) * - * @param string $fileId - * The ID of the file to copy. + * @param string $fileId The ID of the file to copy. * @param Google_DriveFile $postBody * @param array $optParams Optional parameters. * - * @opt_param bool convert - * Whether to convert this file to the corresponding Google Docs format. - * @opt_param string ocrLanguage - * If ocr is true, hints at the language to use. Valid values are ISO 639-1 codes. - * @opt_param string visibility - * The visibility of the new file. This parameter is only relevant when the source is not a native - * Google Doc and convert=false. - * @opt_param bool pinned - * Whether to pin the head revision of the new copy. A file can have a maximum of 200 pinned - * revisions. - * @opt_param bool ocr - * Whether to attempt OCR on .jpg, .png, .gif, or .pdf uploads. - * @opt_param string timedTextTrackName - * The timed text track name. - * @opt_param string timedTextLanguage - * The language of the timed text. + * @opt_param bool convert Whether to convert this file to the corresponding + * Google Docs format. + * @opt_param string ocrLanguage If ocr is true, hints at the language to use. + * Valid values are BCP 47 codes. + * @opt_param string visibility The visibility of the new file. This parameter + * is only relevant when the source is not a native Google Doc and + * convert=false. + * @opt_param bool pinned Whether to pin the head revision of the new copy. A + * file can have a maximum of 200 pinned revisions. + * @opt_param bool ocr Whether to attempt OCR on .jpg, .png, .gif, or .pdf + * uploads. + * @opt_param string timedTextTrackName The timed text track name. + * @opt_param string timedTextLanguage The language of the timed text. * @return Google_Service_Drive_DriveFile */ public function copy($fileId, Google_Service_Drive_DriveFile $postBody, $optParams = array()) @@ -1685,11 +1744,12 @@ class Google_Service_Drive_Files_Resource extends Google_Service_Resource $params = array_merge($params, $optParams); return $this->call('copy', array($params), "Google_Service_Drive_DriveFile"); } + /** - * Permanently deletes a file by ID. Skips the trash. (files.delete) + * Permanently deletes a file by ID. Skips the trash. The currently + * authenticated user must own the file. (files.delete) * - * @param string $fileId - * The ID of the file to delete. + * @param string $fileId The ID of the file to delete. * @param array $optParams Optional parameters. */ public function delete($fileId, $optParams = array()) @@ -1698,6 +1758,7 @@ class Google_Service_Drive_Files_Resource extends Google_Service_Resource $params = array_merge($params, $optParams); return $this->call('delete', array($params)); } + /** * Permanently deletes all of the user's trashed files. (files.emptyTrash) * @@ -1709,17 +1770,40 @@ class Google_Service_Drive_Files_Resource extends Google_Service_Resource $params = array_merge($params, $optParams); return $this->call('emptyTrash', array($params)); } + + /** + * Generates a set of file IDs which can be provided in insert requests. + * (files.generateIds) + * + * @param array $optParams Optional parameters. + * + * @opt_param int maxResults Maximum number of IDs to return. + * @opt_param string space The space in which the IDs can be used to create new + * files. Supported values are 'drive' and 'appDataFolder'. + * @return Google_Service_Drive_GeneratedIds + */ + public function generateIds($optParams = array()) + { + $params = array(); + $params = array_merge($params, $optParams); + return $this->call('generateIds', array($params), "Google_Service_Drive_GeneratedIds"); + } + /** * Gets a file's metadata by ID. (files.get) * - * @param string $fileId - * The ID for the file in question. + * @param string $fileId The ID for the file in question. * @param array $optParams Optional parameters. * - * @opt_param bool updateViewedDate - * Whether to update the view date after successfully retrieving the file. - * @opt_param string projection - * This parameter is deprecated and has no function. + * @opt_param bool acknowledgeAbuse Whether the user is acknowledging the risk + * of downloading known malware or other abusive files. + * @opt_param bool updateViewedDate Deprecated: Use files.update with + * modifiedDateBehavior=noChange, updateViewedDate=true and an empty request + * body. + * @opt_param string revisionId Specifies the Revision ID that should be + * downloaded. Ignored unless alt=media is specified. + * @opt_param string projection This parameter is deprecated and has no + * function. * @return Google_Service_Drive_DriveFile */ public function get($fileId, $optParams = array()) @@ -1728,29 +1812,27 @@ class Google_Service_Drive_Files_Resource extends Google_Service_Resource $params = array_merge($params, $optParams); return $this->call('get', array($params), "Google_Service_Drive_DriveFile"); } + /** * Insert a new file. (files.insert) * * @param Google_DriveFile $postBody * @param array $optParams Optional parameters. * - * @opt_param bool convert - * Whether to convert this file to the corresponding Google Docs format. - * @opt_param bool useContentAsIndexableText - * Whether to use the content as indexable text. - * @opt_param string ocrLanguage - * If ocr is true, hints at the language to use. Valid values are ISO 639-1 codes. - * @opt_param string visibility - * The visibility of the new file. This parameter is only relevant when convert=false. - * @opt_param bool pinned - * Whether to pin the head revision of the uploaded file. A file can have a maximum of 200 pinned - * revisions. - * @opt_param bool ocr - * Whether to attempt OCR on .jpg, .png, .gif, or .pdf uploads. - * @opt_param string timedTextTrackName - * The timed text track name. - * @opt_param string timedTextLanguage - * The language of the timed text. + * @opt_param bool convert Whether to convert this file to the corresponding + * Google Docs format. + * @opt_param bool useContentAsIndexableText Whether to use the content as + * indexable text. + * @opt_param string ocrLanguage If ocr is true, hints at the language to use. + * Valid values are BCP 47 codes. + * @opt_param string visibility The visibility of the new file. This parameter + * is only relevant when convert=false. + * @opt_param bool pinned Whether to pin the head revision of the uploaded file. + * A file can have a maximum of 200 pinned revisions. + * @opt_param bool ocr Whether to attempt OCR on .jpg, .png, .gif, or .pdf + * uploads. + * @opt_param string timedTextTrackName The timed text track name. + * @opt_param string timedTextLanguage The language of the timed text. * @return Google_Service_Drive_DriveFile */ public function insert(Google_Service_Drive_DriveFile $postBody, $optParams = array()) @@ -1759,21 +1841,28 @@ class Google_Service_Drive_Files_Resource extends Google_Service_Resource $params = array_merge($params, $optParams); return $this->call('insert', array($params), "Google_Service_Drive_DriveFile"); } + /** * Lists the user's files. (files.listFiles) * * @param array $optParams Optional parameters. * - * @opt_param string q - * Query string for searching files. - * @opt_param string pageToken - * Page token for files. - * @opt_param string corpus - * The body of items (files/documents) to which the query applies. - * @opt_param string projection - * This parameter is deprecated and has no function. - * @opt_param int maxResults - * Maximum number of files to return. + * @opt_param string orderBy A comma-separated list of sort keys. Valid keys are + * 'createdDate', 'folder', 'lastViewedByMeDate', 'modifiedByMeDate', + * 'modifiedDate', 'quotaBytesUsed', 'recency', 'sharedWithMeDate', 'starred', + * and 'title'. Each key sorts ascending by default, but may be reversed with + * the 'desc' modifier. Example usage: ?orderBy=folder,modifiedDate desc,title. + * Please note that there is a current limitation for users with approximately + * one million files in which the requested sort order is ignored. + * @opt_param string projection This parameter is deprecated and has no + * function. + * @opt_param int maxResults Maximum number of files to return. + * @opt_param string q Query string for searching files. + * @opt_param string pageToken Page token for files. + * @opt_param string spaces A comma-separated list of spaces to query. Supported + * values are 'drive', 'appDataFolder' and 'photos'. + * @opt_param string corpus The body of items (files/documents) to which the + * query applies. * @return Google_Service_Drive_FileList */ public function listFiles($optParams = array()) @@ -1782,41 +1871,41 @@ class Google_Service_Drive_Files_Resource extends Google_Service_Resource $params = array_merge($params, $optParams); return $this->call('list', array($params), "Google_Service_Drive_FileList"); } + /** * Updates file metadata and/or content. This method supports patch semantics. * (files.patch) * - * @param string $fileId - * The ID of the file to update. + * @param string $fileId The ID of the file to update. * @param Google_DriveFile $postBody * @param array $optParams Optional parameters. * - * @opt_param string addParents - * Comma-separated list of parent IDs to add. - * @opt_param bool updateViewedDate - * Whether to update the view date after successfully updating the file. - * @opt_param string removeParents - * Comma-separated list of parent IDs to remove. - * @opt_param bool setModifiedDate - * Whether to set the modified date with the supplied modified date. - * @opt_param bool convert - * Whether to convert this file to the corresponding Google Docs format. - * @opt_param bool useContentAsIndexableText - * Whether to use the content as indexable text. - * @opt_param string ocrLanguage - * If ocr is true, hints at the language to use. Valid values are ISO 639-1 codes. - * @opt_param bool pinned - * Whether to pin the new revision. A file can have a maximum of 200 pinned revisions. - * @opt_param bool newRevision - * Whether a blob upload should create a new revision. If false, the blob data in the current head - * revision is replaced. If true or not set, a new blob is created as head revision, and previous - * revisions are preserved (causing increased use of the user's data storage quota). - * @opt_param bool ocr - * Whether to attempt OCR on .jpg, .png, .gif, or .pdf uploads. - * @opt_param string timedTextLanguage - * The language of the timed text. - * @opt_param string timedTextTrackName - * The timed text track name. + * @opt_param string addParents Comma-separated list of parent IDs to add. + * @opt_param string modifiedDateBehavior Determines the behavior in which + * modifiedDate is updated. This overrides setModifiedDate. + * @opt_param string removeParents Comma-separated list of parent IDs to remove. + * @opt_param bool updateViewedDate Whether to update the view date after + * successfully updating the file. + * @opt_param bool setModifiedDate Whether to set the modified date with the + * supplied modified date. + * @opt_param bool useContentAsIndexableText Whether to use the content as + * indexable text. + * @opt_param bool convert This parameter is deprecated and has no function. + * @opt_param string ocrLanguage If ocr is true, hints at the language to use. + * Valid values are BCP 47 codes. + * @opt_param bool pinned Whether to pin the new revision. A file can have a + * maximum of 200 pinned revisions. + * @opt_param bool newRevision Whether a blob upload should create a new + * revision. If false, the blob data in the current head revision is replaced. + * If true or not set, a new blob is created as head revision, and previous + * unpinned revisions are preserved for a short period of time. Pinned revisions + * are stored indefinitely, using additional storage quota, up to a maximum of + * 200 revisions. For details on how revisions are retained, see the Drive Help + * Center. + * @opt_param bool ocr Whether to attempt OCR on .jpg, .png, .gif, or .pdf + * uploads. + * @opt_param string timedTextLanguage The language of the timed text. + * @opt_param string timedTextTrackName The timed text track name. * @return Google_Service_Drive_DriveFile */ public function patch($fileId, Google_Service_Drive_DriveFile $postBody, $optParams = array()) @@ -1825,11 +1914,11 @@ class Google_Service_Drive_Files_Resource extends Google_Service_Resource $params = array_merge($params, $optParams); return $this->call('patch', array($params), "Google_Service_Drive_DriveFile"); } + /** * Set the file's updated time to the current server time. (files.touch) * - * @param string $fileId - * The ID of the file to update. + * @param string $fileId The ID of the file to update. * @param array $optParams Optional parameters. * @return Google_Service_Drive_DriveFile */ @@ -1839,11 +1928,12 @@ class Google_Service_Drive_Files_Resource extends Google_Service_Resource $params = array_merge($params, $optParams); return $this->call('touch', array($params), "Google_Service_Drive_DriveFile"); } + /** - * Moves a file to the trash. (files.trash) + * Moves a file to the trash. The currently authenticated user must own the + * file. (files.trash) * - * @param string $fileId - * The ID of the file to trash. + * @param string $fileId The ID of the file to trash. * @param array $optParams Optional parameters. * @return Google_Service_Drive_DriveFile */ @@ -1853,11 +1943,11 @@ class Google_Service_Drive_Files_Resource extends Google_Service_Resource $params = array_merge($params, $optParams); return $this->call('trash', array($params), "Google_Service_Drive_DriveFile"); } + /** * Restores a file from the trash. (files.untrash) * - * @param string $fileId - * The ID of the file to untrash. + * @param string $fileId The ID of the file to untrash. * @param array $optParams Optional parameters. * @return Google_Service_Drive_DriveFile */ @@ -1867,40 +1957,40 @@ class Google_Service_Drive_Files_Resource extends Google_Service_Resource $params = array_merge($params, $optParams); return $this->call('untrash', array($params), "Google_Service_Drive_DriveFile"); } + /** * Updates file metadata and/or content. (files.update) * - * @param string $fileId - * The ID of the file to update. + * @param string $fileId The ID of the file to update. * @param Google_DriveFile $postBody * @param array $optParams Optional parameters. * - * @opt_param string addParents - * Comma-separated list of parent IDs to add. - * @opt_param bool updateViewedDate - * Whether to update the view date after successfully updating the file. - * @opt_param string removeParents - * Comma-separated list of parent IDs to remove. - * @opt_param bool setModifiedDate - * Whether to set the modified date with the supplied modified date. - * @opt_param bool convert - * Whether to convert this file to the corresponding Google Docs format. - * @opt_param bool useContentAsIndexableText - * Whether to use the content as indexable text. - * @opt_param string ocrLanguage - * If ocr is true, hints at the language to use. Valid values are ISO 639-1 codes. - * @opt_param bool pinned - * Whether to pin the new revision. A file can have a maximum of 200 pinned revisions. - * @opt_param bool newRevision - * Whether a blob upload should create a new revision. If false, the blob data in the current head - * revision is replaced. If true or not set, a new blob is created as head revision, and previous - * revisions are preserved (causing increased use of the user's data storage quota). - * @opt_param bool ocr - * Whether to attempt OCR on .jpg, .png, .gif, or .pdf uploads. - * @opt_param string timedTextLanguage - * The language of the timed text. - * @opt_param string timedTextTrackName - * The timed text track name. + * @opt_param string addParents Comma-separated list of parent IDs to add. + * @opt_param string modifiedDateBehavior Determines the behavior in which + * modifiedDate is updated. This overrides setModifiedDate. + * @opt_param string removeParents Comma-separated list of parent IDs to remove. + * @opt_param bool updateViewedDate Whether to update the view date after + * successfully updating the file. + * @opt_param bool setModifiedDate Whether to set the modified date with the + * supplied modified date. + * @opt_param bool useContentAsIndexableText Whether to use the content as + * indexable text. + * @opt_param bool convert This parameter is deprecated and has no function. + * @opt_param string ocrLanguage If ocr is true, hints at the language to use. + * Valid values are BCP 47 codes. + * @opt_param bool pinned Whether to pin the new revision. A file can have a + * maximum of 200 pinned revisions. + * @opt_param bool newRevision Whether a blob upload should create a new + * revision. If false, the blob data in the current head revision is replaced. + * If true or not set, a new blob is created as head revision, and previous + * unpinned revisions are preserved for a short period of time. Pinned revisions + * are stored indefinitely, using additional storage quota, up to a maximum of + * 200 revisions. For details on how revisions are retained, see the Drive Help + * Center. + * @opt_param bool ocr Whether to attempt OCR on .jpg, .png, .gif, or .pdf + * uploads. + * @opt_param string timedTextLanguage The language of the timed text. + * @opt_param string timedTextTrackName The timed text track name. * @return Google_Service_Drive_DriveFile */ public function update($fileId, Google_Service_Drive_DriveFile $postBody, $optParams = array()) @@ -1909,18 +1999,23 @@ class Google_Service_Drive_Files_Resource extends Google_Service_Resource $params = array_merge($params, $optParams); return $this->call('update', array($params), "Google_Service_Drive_DriveFile"); } + /** * Subscribe to changes on a file (files.watch) * - * @param string $fileId - * The ID for the file in question. + * @param string $fileId The ID for the file in question. * @param Google_Channel $postBody * @param array $optParams Optional parameters. * - * @opt_param bool updateViewedDate - * Whether to update the view date after successfully retrieving the file. - * @opt_param string projection - * This parameter is deprecated and has no function. + * @opt_param bool acknowledgeAbuse Whether the user is acknowledging the risk + * of downloading known malware or other abusive files. + * @opt_param bool updateViewedDate Deprecated: Use files.update with + * modifiedDateBehavior=noChange, updateViewedDate=true and an empty request + * body. + * @opt_param string revisionId Specifies the Revision ID that should be + * downloaded. Ignored unless alt=media is specified. + * @opt_param string projection This parameter is deprecated and has no + * function. * @return Google_Service_Drive_Channel */ public function watch($fileId, Google_Service_Drive_Channel $postBody, $optParams = array()) @@ -1945,10 +2040,8 @@ class Google_Service_Drive_Parents_Resource extends Google_Service_Resource /** * Removes a parent from a file. (parents.delete) * - * @param string $fileId - * The ID of the file. - * @param string $parentId - * The ID of the parent. + * @param string $fileId The ID of the file. + * @param string $parentId The ID of the parent. * @param array $optParams Optional parameters. */ public function delete($fileId, $parentId, $optParams = array()) @@ -1957,13 +2050,12 @@ class Google_Service_Drive_Parents_Resource extends Google_Service_Resource $params = array_merge($params, $optParams); return $this->call('delete', array($params)); } + /** * Gets a specific parent reference. (parents.get) * - * @param string $fileId - * The ID of the file. - * @param string $parentId - * The ID of the parent. + * @param string $fileId The ID of the file. + * @param string $parentId The ID of the parent. * @param array $optParams Optional parameters. * @return Google_Service_Drive_ParentReference */ @@ -1973,11 +2065,11 @@ class Google_Service_Drive_Parents_Resource extends Google_Service_Resource $params = array_merge($params, $optParams); return $this->call('get', array($params), "Google_Service_Drive_ParentReference"); } + /** * Adds a parent folder for a file. (parents.insert) * - * @param string $fileId - * The ID of the file. + * @param string $fileId The ID of the file. * @param Google_ParentReference $postBody * @param array $optParams Optional parameters. * @return Google_Service_Drive_ParentReference @@ -1988,11 +2080,11 @@ class Google_Service_Drive_Parents_Resource extends Google_Service_Resource $params = array_merge($params, $optParams); return $this->call('insert', array($params), "Google_Service_Drive_ParentReference"); } + /** * Lists a file's parents. (parents.listParents) * - * @param string $fileId - * The ID of the file. + * @param string $fileId The ID of the file. * @param array $optParams Optional parameters. * @return Google_Service_Drive_ParentList */ @@ -2018,10 +2110,8 @@ class Google_Service_Drive_Permissions_Resource extends Google_Service_Resource /** * Deletes a permission from a file. (permissions.delete) * - * @param string $fileId - * The ID for the file. - * @param string $permissionId - * The ID for the permission. + * @param string $fileId The ID for the file. + * @param string $permissionId The ID for the permission. * @param array $optParams Optional parameters. */ public function delete($fileId, $permissionId, $optParams = array()) @@ -2030,13 +2120,12 @@ class Google_Service_Drive_Permissions_Resource extends Google_Service_Resource $params = array_merge($params, $optParams); return $this->call('delete', array($params)); } + /** * Gets a permission by ID. (permissions.get) * - * @param string $fileId - * The ID for the file. - * @param string $permissionId - * The ID for the permission. + * @param string $fileId The ID for the file. + * @param string $permissionId The ID for the permission. * @param array $optParams Optional parameters. * @return Google_Service_Drive_Permission */ @@ -2046,11 +2135,11 @@ class Google_Service_Drive_Permissions_Resource extends Google_Service_Resource $params = array_merge($params, $optParams); return $this->call('get', array($params), "Google_Service_Drive_Permission"); } + /** * Returns the permission ID for an email address. (permissions.getIdForEmail) * - * @param string $email - * The email address for which to return a permission ID + * @param string $email The email address for which to return a permission ID * @param array $optParams Optional parameters. * @return Google_Service_Drive_PermissionId */ @@ -2060,19 +2149,19 @@ class Google_Service_Drive_Permissions_Resource extends Google_Service_Resource $params = array_merge($params, $optParams); return $this->call('getIdForEmail', array($params), "Google_Service_Drive_PermissionId"); } + /** * Inserts a permission for a file. (permissions.insert) * - * @param string $fileId - * The ID for the file. + * @param string $fileId The ID for the file. * @param Google_Permission $postBody * @param array $optParams Optional parameters. * - * @opt_param string emailMessage - * A custom message to include in notification emails. - * @opt_param bool sendNotificationEmails - * Whether to send notification emails when sharing to users or groups. This parameter is ignored - * and an email is sent if the role is owner. + * @opt_param string emailMessage A custom message to include in notification + * emails. + * @opt_param bool sendNotificationEmails Whether to send notification emails + * when sharing to users or groups. This parameter is ignored and an email is + * sent if the role is owner. * @return Google_Service_Drive_Permission */ public function insert($fileId, Google_Service_Drive_Permission $postBody, $optParams = array()) @@ -2081,11 +2170,11 @@ class Google_Service_Drive_Permissions_Resource extends Google_Service_Resource $params = array_merge($params, $optParams); return $this->call('insert', array($params), "Google_Service_Drive_Permission"); } + /** * Lists a file's permissions. (permissions.listPermissions) * - * @param string $fileId - * The ID for the file. + * @param string $fileId The ID for the file. * @param array $optParams Optional parameters. * @return Google_Service_Drive_PermissionList */ @@ -2095,19 +2184,18 @@ class Google_Service_Drive_Permissions_Resource extends Google_Service_Resource $params = array_merge($params, $optParams); return $this->call('list', array($params), "Google_Service_Drive_PermissionList"); } + /** - * Updates a permission. This method supports patch semantics. - * (permissions.patch) + * Updates a permission using patch semantics. (permissions.patch) * - * @param string $fileId - * The ID for the file. - * @param string $permissionId - * The ID for the permission. + * @param string $fileId The ID for the file. + * @param string $permissionId The ID for the permission. * @param Google_Permission $postBody * @param array $optParams Optional parameters. * - * @opt_param bool transferOwnership - * Whether changing a role to 'owner' should also downgrade the current owners to writers. + * @opt_param bool transferOwnership Whether changing a role to 'owner' + * downgrades the current owners to writers. Does nothing if the specified role + * is not 'owner'. * @return Google_Service_Drive_Permission */ public function patch($fileId, $permissionId, Google_Service_Drive_Permission $postBody, $optParams = array()) @@ -2116,18 +2204,18 @@ class Google_Service_Drive_Permissions_Resource extends Google_Service_Resource $params = array_merge($params, $optParams); return $this->call('patch', array($params), "Google_Service_Drive_Permission"); } + /** * Updates a permission. (permissions.update) * - * @param string $fileId - * The ID for the file. - * @param string $permissionId - * The ID for the permission. + * @param string $fileId The ID for the file. + * @param string $permissionId The ID for the permission. * @param Google_Permission $postBody * @param array $optParams Optional parameters. * - * @opt_param bool transferOwnership - * Whether changing a role to 'owner' should also downgrade the current owners to writers. + * @opt_param bool transferOwnership Whether changing a role to 'owner' + * downgrades the current owners to writers. Does nothing if the specified role + * is not 'owner'. * @return Google_Service_Drive_Permission */ public function update($fileId, $permissionId, Google_Service_Drive_Permission $postBody, $optParams = array()) @@ -2152,14 +2240,11 @@ class Google_Service_Drive_Properties_Resource extends Google_Service_Resource /** * Deletes a property. (properties.delete) * - * @param string $fileId - * The ID of the file. - * @param string $propertyKey - * The key of the property. + * @param string $fileId The ID of the file. + * @param string $propertyKey The key of the property. * @param array $optParams Optional parameters. * - * @opt_param string visibility - * The visibility of the property. + * @opt_param string visibility The visibility of the property. */ public function delete($fileId, $propertyKey, $optParams = array()) { @@ -2167,17 +2252,15 @@ class Google_Service_Drive_Properties_Resource extends Google_Service_Resource $params = array_merge($params, $optParams); return $this->call('delete', array($params)); } + /** * Gets a property by its key. (properties.get) * - * @param string $fileId - * The ID of the file. - * @param string $propertyKey - * The key of the property. + * @param string $fileId The ID of the file. + * @param string $propertyKey The key of the property. * @param array $optParams Optional parameters. * - * @opt_param string visibility - * The visibility of the property. + * @opt_param string visibility The visibility of the property. * @return Google_Service_Drive_Property */ public function get($fileId, $propertyKey, $optParams = array()) @@ -2186,11 +2269,11 @@ class Google_Service_Drive_Properties_Resource extends Google_Service_Resource $params = array_merge($params, $optParams); return $this->call('get', array($params), "Google_Service_Drive_Property"); } + /** * Adds a property to a file. (properties.insert) * - * @param string $fileId - * The ID of the file. + * @param string $fileId The ID of the file. * @param Google_Property $postBody * @param array $optParams Optional parameters. * @return Google_Service_Drive_Property @@ -2201,11 +2284,11 @@ class Google_Service_Drive_Properties_Resource extends Google_Service_Resource $params = array_merge($params, $optParams); return $this->call('insert', array($params), "Google_Service_Drive_Property"); } + /** * Lists a file's properties. (properties.listProperties) * - * @param string $fileId - * The ID of the file. + * @param string $fileId The ID of the file. * @param array $optParams Optional parameters. * @return Google_Service_Drive_PropertyList */ @@ -2215,18 +2298,16 @@ class Google_Service_Drive_Properties_Resource extends Google_Service_Resource $params = array_merge($params, $optParams); return $this->call('list', array($params), "Google_Service_Drive_PropertyList"); } + /** * Updates a property. This method supports patch semantics. (properties.patch) * - * @param string $fileId - * The ID of the file. - * @param string $propertyKey - * The key of the property. + * @param string $fileId The ID of the file. + * @param string $propertyKey The key of the property. * @param Google_Property $postBody * @param array $optParams Optional parameters. * - * @opt_param string visibility - * The visibility of the property. + * @opt_param string visibility The visibility of the property. * @return Google_Service_Drive_Property */ public function patch($fileId, $propertyKey, Google_Service_Drive_Property $postBody, $optParams = array()) @@ -2235,18 +2316,16 @@ class Google_Service_Drive_Properties_Resource extends Google_Service_Resource $params = array_merge($params, $optParams); return $this->call('patch', array($params), "Google_Service_Drive_Property"); } + /** * Updates a property. (properties.update) * - * @param string $fileId - * The ID of the file. - * @param string $propertyKey - * The key of the property. + * @param string $fileId The ID of the file. + * @param string $propertyKey The key of the property. * @param Google_Property $postBody * @param array $optParams Optional parameters. * - * @opt_param string visibility - * The visibility of the property. + * @opt_param string visibility The visibility of the property. * @return Google_Service_Drive_Property */ public function update($fileId, $propertyKey, Google_Service_Drive_Property $postBody, $optParams = array()) @@ -2272,14 +2351,14 @@ class Google_Service_Drive_Realtime_Resource extends Google_Service_Resource * Exports the contents of the Realtime API data model associated with this file * as JSON. (realtime.get) * - * @param string $fileId - * The ID of the file that the Realtime API data model is associated with. + * @param string $fileId The ID of the file that the Realtime API data model is + * associated with. * @param array $optParams Optional parameters. * - * @opt_param int revision - * The revision of the Realtime API data model to export. Revisions start at 1 (the initial empty - * data model) and are incremented with each change. If this parameter is excluded, the most recent - * data model will be returned. + * @opt_param int revision The revision of the Realtime API data model to + * export. Revisions start at 1 (the initial empty data model) and are + * incremented with each change. If this parameter is excluded, the most recent + * data model will be returned. */ public function get($fileId, $optParams = array()) { @@ -2287,19 +2366,20 @@ class Google_Service_Drive_Realtime_Resource extends Google_Service_Resource $params = array_merge($params, $optParams); return $this->call('get', array($params)); } + /** * Overwrites the Realtime API data model associated with this file with the * provided JSON data model. (realtime.update) * - * @param string $fileId - * The ID of the file that the Realtime API data model is associated with. + * @param string $fileId The ID of the file that the Realtime API data model is + * associated with. * @param array $optParams Optional parameters. * - * @opt_param string baseRevision - * The revision of the model to diff the uploaded model against. If set, the uploaded model is - * diffed against the provided revision and those differences are merged with any changes made to - * the model after the provided revision. If not set, the uploaded model replaces the current model - * on the server. + * @opt_param string baseRevision The revision of the model to diff the uploaded + * model against. If set, the uploaded model is diffed against the provided + * revision and those differences are merged with any changes made to the model + * after the provided revision. If not set, the uploaded model replaces the + * current model on the server. */ public function update($fileId, $optParams = array()) { @@ -2323,12 +2403,9 @@ class Google_Service_Drive_Replies_Resource extends Google_Service_Resource /** * Deletes a reply. (replies.delete) * - * @param string $fileId - * The ID of the file. - * @param string $commentId - * The ID of the comment. - * @param string $replyId - * The ID of the reply. + * @param string $fileId The ID of the file. + * @param string $commentId The ID of the comment. + * @param string $replyId The ID of the reply. * @param array $optParams Optional parameters. */ public function delete($fileId, $commentId, $replyId, $optParams = array()) @@ -2337,19 +2414,17 @@ class Google_Service_Drive_Replies_Resource extends Google_Service_Resource $params = array_merge($params, $optParams); return $this->call('delete', array($params)); } + /** * Gets a reply. (replies.get) * - * @param string $fileId - * The ID of the file. - * @param string $commentId - * The ID of the comment. - * @param string $replyId - * The ID of the reply. + * @param string $fileId The ID of the file. + * @param string $commentId The ID of the comment. + * @param string $replyId The ID of the reply. * @param array $optParams Optional parameters. * - * @opt_param bool includeDeleted - * If set, this will succeed when retrieving a deleted reply. + * @opt_param bool includeDeleted If set, this will succeed when retrieving a + * deleted reply. * @return Google_Service_Drive_CommentReply */ public function get($fileId, $commentId, $replyId, $optParams = array()) @@ -2358,13 +2433,12 @@ class Google_Service_Drive_Replies_Resource extends Google_Service_Resource $params = array_merge($params, $optParams); return $this->call('get', array($params), "Google_Service_Drive_CommentReply"); } + /** * Creates a new reply to the given comment. (replies.insert) * - * @param string $fileId - * The ID of the file. - * @param string $commentId - * The ID of the comment. + * @param string $fileId The ID of the file. + * @param string $commentId The ID of the comment. * @param Google_CommentReply $postBody * @param array $optParams Optional parameters. * @return Google_Service_Drive_CommentReply @@ -2375,22 +2449,21 @@ class Google_Service_Drive_Replies_Resource extends Google_Service_Resource $params = array_merge($params, $optParams); return $this->call('insert', array($params), "Google_Service_Drive_CommentReply"); } + /** * Lists all of the replies to a comment. (replies.listReplies) * - * @param string $fileId - * The ID of the file. - * @param string $commentId - * The ID of the comment. + * @param string $fileId The ID of the file. + * @param string $commentId The ID of the comment. * @param array $optParams Optional parameters. * - * @opt_param string pageToken - * The continuation token, used to page through large result sets. To get the next page of results, - * set this parameter to the value of "nextPageToken" from the previous response. - * @opt_param bool includeDeleted - * If set, all replies, including deleted replies (with content stripped) will be returned. - * @opt_param int maxResults - * The maximum number of replies to include in the response, used for paging. + * @opt_param string pageToken The continuation token, used to page through + * large result sets. To get the next page of results, set this parameter to the + * value of "nextPageToken" from the previous response. + * @opt_param bool includeDeleted If set, all replies, including deleted replies + * (with content stripped) will be returned. + * @opt_param int maxResults The maximum number of replies to include in the + * response, used for paging. * @return Google_Service_Drive_CommentReplyList */ public function listReplies($fileId, $commentId, $optParams = array()) @@ -2399,16 +2472,14 @@ class Google_Service_Drive_Replies_Resource extends Google_Service_Resource $params = array_merge($params, $optParams); return $this->call('list', array($params), "Google_Service_Drive_CommentReplyList"); } + /** * Updates an existing reply. This method supports patch semantics. * (replies.patch) * - * @param string $fileId - * The ID of the file. - * @param string $commentId - * The ID of the comment. - * @param string $replyId - * The ID of the reply. + * @param string $fileId The ID of the file. + * @param string $commentId The ID of the comment. + * @param string $replyId The ID of the reply. * @param Google_CommentReply $postBody * @param array $optParams Optional parameters. * @return Google_Service_Drive_CommentReply @@ -2419,15 +2490,13 @@ class Google_Service_Drive_Replies_Resource extends Google_Service_Resource $params = array_merge($params, $optParams); return $this->call('patch', array($params), "Google_Service_Drive_CommentReply"); } + /** * Updates an existing reply. (replies.update) * - * @param string $fileId - * The ID of the file. - * @param string $commentId - * The ID of the comment. - * @param string $replyId - * The ID of the reply. + * @param string $fileId The ID of the file. + * @param string $commentId The ID of the comment. + * @param string $replyId The ID of the reply. * @param Google_CommentReply $postBody * @param array $optParams Optional parameters. * @return Google_Service_Drive_CommentReply @@ -2454,10 +2523,8 @@ class Google_Service_Drive_Revisions_Resource extends Google_Service_Resource /** * Removes a revision. (revisions.delete) * - * @param string $fileId - * The ID of the file. - * @param string $revisionId - * The ID of the revision. + * @param string $fileId The ID of the file. + * @param string $revisionId The ID of the revision. * @param array $optParams Optional parameters. */ public function delete($fileId, $revisionId, $optParams = array()) @@ -2466,13 +2533,12 @@ class Google_Service_Drive_Revisions_Resource extends Google_Service_Resource $params = array_merge($params, $optParams); return $this->call('delete', array($params)); } + /** * Gets a specific revision. (revisions.get) * - * @param string $fileId - * The ID of the file. - * @param string $revisionId - * The ID of the revision. + * @param string $fileId The ID of the file. + * @param string $revisionId The ID of the revision. * @param array $optParams Optional parameters. * @return Google_Service_Drive_Revision */ @@ -2482,11 +2548,11 @@ class Google_Service_Drive_Revisions_Resource extends Google_Service_Resource $params = array_merge($params, $optParams); return $this->call('get', array($params), "Google_Service_Drive_Revision"); } + /** * Lists a file's revisions. (revisions.listRevisions) * - * @param string $fileId - * The ID of the file. + * @param string $fileId The ID of the file. * @param array $optParams Optional parameters. * @return Google_Service_Drive_RevisionList */ @@ -2496,13 +2562,12 @@ class Google_Service_Drive_Revisions_Resource extends Google_Service_Resource $params = array_merge($params, $optParams); return $this->call('list', array($params), "Google_Service_Drive_RevisionList"); } + /** * Updates a revision. This method supports patch semantics. (revisions.patch) * - * @param string $fileId - * The ID for the file. - * @param string $revisionId - * The ID for the revision. + * @param string $fileId The ID for the file. + * @param string $revisionId The ID for the revision. * @param Google_Revision $postBody * @param array $optParams Optional parameters. * @return Google_Service_Drive_Revision @@ -2513,13 +2578,12 @@ class Google_Service_Drive_Revisions_Resource extends Google_Service_Resource $params = array_merge($params, $optParams); return $this->call('patch', array($params), "Google_Service_Drive_Revision"); } + /** * Updates a revision. (revisions.update) * - * @param string $fileId - * The ID for the file. - * @param string $revisionId - * The ID for the revision. + * @param string $fileId The ID for the file. + * @param string $revisionId The ID for the revision. * @param Google_Revision $postBody * @param array $optParams Optional parameters. * @return Google_Service_Drive_Revision @@ -2548,6 +2612,7 @@ class Google_Service_Drive_About extends Google_Collection protected $exportFormatsDataType = 'array'; protected $featuresType = 'Google_Service_Drive_AboutFeatures'; protected $featuresDataType = 'array'; + public $folderColorPalette; protected $importFormatsType = 'Google_Service_Drive_AboutImportFormats'; protected $importFormatsDataType = 'array'; public $isCurrentAppInstalled; @@ -2571,231 +2636,195 @@ class Google_Service_Drive_About extends Google_Collection protected $userType = 'Google_Service_Drive_User'; protected $userDataType = ''; + public function setAdditionalRoleInfo($additionalRoleInfo) { $this->additionalRoleInfo = $additionalRoleInfo; } - public function getAdditionalRoleInfo() { return $this->additionalRoleInfo; } - public function setDomainSharingPolicy($domainSharingPolicy) { $this->domainSharingPolicy = $domainSharingPolicy; } - public function getDomainSharingPolicy() { return $this->domainSharingPolicy; } - public function setEtag($etag) { $this->etag = $etag; } - public function getEtag() { return $this->etag; } - public function setExportFormats($exportFormats) { $this->exportFormats = $exportFormats; } - public function getExportFormats() { return $this->exportFormats; } - public function setFeatures($features) { $this->features = $features; } - public function getFeatures() { return $this->features; } - + public function setFolderColorPalette($folderColorPalette) + { + $this->folderColorPalette = $folderColorPalette; + } + public function getFolderColorPalette() + { + return $this->folderColorPalette; + } public function setImportFormats($importFormats) { $this->importFormats = $importFormats; } - public function getImportFormats() { return $this->importFormats; } - public function setIsCurrentAppInstalled($isCurrentAppInstalled) { $this->isCurrentAppInstalled = $isCurrentAppInstalled; } - public function getIsCurrentAppInstalled() { return $this->isCurrentAppInstalled; } - public function setKind($kind) { $this->kind = $kind; } - public function getKind() { return $this->kind; } - public function setLanguageCode($languageCode) { $this->languageCode = $languageCode; } - public function getLanguageCode() { return $this->languageCode; } - public function setLargestChangeId($largestChangeId) { $this->largestChangeId = $largestChangeId; } - public function getLargestChangeId() { return $this->largestChangeId; } - public function setMaxUploadSizes($maxUploadSizes) { $this->maxUploadSizes = $maxUploadSizes; } - public function getMaxUploadSizes() { return $this->maxUploadSizes; } - public function setName($name) { $this->name = $name; } - public function getName() { return $this->name; } - public function setPermissionId($permissionId) { $this->permissionId = $permissionId; } - public function getPermissionId() { return $this->permissionId; } - public function setQuotaBytesByService($quotaBytesByService) { $this->quotaBytesByService = $quotaBytesByService; } - public function getQuotaBytesByService() { return $this->quotaBytesByService; } - public function setQuotaBytesTotal($quotaBytesTotal) { $this->quotaBytesTotal = $quotaBytesTotal; } - public function getQuotaBytesTotal() { return $this->quotaBytesTotal; } - public function setQuotaBytesUsed($quotaBytesUsed) { $this->quotaBytesUsed = $quotaBytesUsed; } - public function getQuotaBytesUsed() { return $this->quotaBytesUsed; } - public function setQuotaBytesUsedAggregate($quotaBytesUsedAggregate) { $this->quotaBytesUsedAggregate = $quotaBytesUsedAggregate; } - public function getQuotaBytesUsedAggregate() { return $this->quotaBytesUsedAggregate; } - public function setQuotaBytesUsedInTrash($quotaBytesUsedInTrash) { $this->quotaBytesUsedInTrash = $quotaBytesUsedInTrash; } - public function getQuotaBytesUsedInTrash() { return $this->quotaBytesUsedInTrash; } - public function setQuotaType($quotaType) { $this->quotaType = $quotaType; } - public function getQuotaType() { return $this->quotaType; } - public function setRemainingChangeIds($remainingChangeIds) { $this->remainingChangeIds = $remainingChangeIds; } - public function getRemainingChangeIds() { return $this->remainingChangeIds; } - public function setRootFolderId($rootFolderId) { $this->rootFolderId = $rootFolderId; } - public function getRootFolderId() { return $this->rootFolderId; } - public function setSelfLink($selfLink) { $this->selfLink = $selfLink; } - public function getSelfLink() { return $this->selfLink; } - public function setUser(Google_Service_Drive_User $user) { $this->user = $user; } - public function getUser() { return $this->user; @@ -2811,21 +2840,19 @@ class Google_Service_Drive_AboutAdditionalRoleInfo extends Google_Collection protected $roleSetsDataType = 'array'; public $type; + public function setRoleSets($roleSets) { $this->roleSets = $roleSets; } - public function getRoleSets() { return $this->roleSets; } - public function setType($type) { $this->type = $type; } - public function getType() { return $this->type; @@ -2840,21 +2867,19 @@ class Google_Service_Drive_AboutAdditionalRoleInfoRoleSets extends Google_Collec public $additionalRoles; public $primaryRole; + public function setAdditionalRoles($additionalRoles) { $this->additionalRoles = $additionalRoles; } - public function getAdditionalRoles() { return $this->additionalRoles; } - public function setPrimaryRole($primaryRole) { $this->primaryRole = $primaryRole; } - public function getPrimaryRole() { return $this->primaryRole; @@ -2869,21 +2894,19 @@ class Google_Service_Drive_AboutExportFormats extends Google_Collection public $source; public $targets; + public function setSource($source) { $this->source = $source; } - public function getSource() { return $this->source; } - public function setTargets($targets) { $this->targets = $targets; } - public function getTargets() { return $this->targets; @@ -2897,21 +2920,19 @@ class Google_Service_Drive_AboutFeatures extends Google_Model public $featureName; public $featureRate; + public function setFeatureName($featureName) { $this->featureName = $featureName; } - public function getFeatureName() { return $this->featureName; } - public function setFeatureRate($featureRate) { $this->featureRate = $featureRate; } - public function getFeatureRate() { return $this->featureRate; @@ -2926,21 +2947,19 @@ class Google_Service_Drive_AboutImportFormats extends Google_Collection public $source; public $targets; + public function setSource($source) { $this->source = $source; } - public function getSource() { return $this->source; } - public function setTargets($targets) { $this->targets = $targets; } - public function getTargets() { return $this->targets; @@ -2954,21 +2973,19 @@ class Google_Service_Drive_AboutMaxUploadSizes extends Google_Model public $size; public $type; + public function setSize($size) { $this->size = $size; } - public function getSize() { return $this->size; } - public function setType($type) { $this->type = $type; } - public function getType() { return $this->type; @@ -2982,21 +2999,19 @@ class Google_Service_Drive_AboutQuotaBytesByService extends Google_Model public $bytesUsed; public $serviceName; + public function setBytesUsed($bytesUsed) { $this->bytesUsed = $bytesUsed; } - public function getBytesUsed() { return $this->bytesUsed; } - public function setServiceName($serviceName) { $this->serviceName = $serviceName; } - public function getServiceName() { return $this->serviceName; @@ -3034,241 +3049,195 @@ class Google_Service_Drive_App extends Google_Collection public $supportsOfflineCreate; public $useByDefault; + public function setAuthorized($authorized) { $this->authorized = $authorized; } - public function getAuthorized() { return $this->authorized; } - public function setCreateInFolderTemplate($createInFolderTemplate) { $this->createInFolderTemplate = $createInFolderTemplate; } - public function getCreateInFolderTemplate() { return $this->createInFolderTemplate; } - public function setCreateUrl($createUrl) { $this->createUrl = $createUrl; } - public function getCreateUrl() { return $this->createUrl; } - public function setHasDriveWideScope($hasDriveWideScope) { $this->hasDriveWideScope = $hasDriveWideScope; } - public function getHasDriveWideScope() { return $this->hasDriveWideScope; } - public function setIcons($icons) { $this->icons = $icons; } - public function getIcons() { return $this->icons; } - public function setId($id) { $this->id = $id; } - public function getId() { return $this->id; } - public function setInstalled($installed) { $this->installed = $installed; } - public function getInstalled() { return $this->installed; } - public function setKind($kind) { $this->kind = $kind; } - public function getKind() { return $this->kind; } - public function setLongDescription($longDescription) { $this->longDescription = $longDescription; } - public function getLongDescription() { return $this->longDescription; } - public function setName($name) { $this->name = $name; } - public function getName() { return $this->name; } - public function setObjectType($objectType) { $this->objectType = $objectType; } - public function getObjectType() { return $this->objectType; } - public function setOpenUrlTemplate($openUrlTemplate) { $this->openUrlTemplate = $openUrlTemplate; } - public function getOpenUrlTemplate() { return $this->openUrlTemplate; } - public function setPrimaryFileExtensions($primaryFileExtensions) { $this->primaryFileExtensions = $primaryFileExtensions; } - public function getPrimaryFileExtensions() { return $this->primaryFileExtensions; } - public function setPrimaryMimeTypes($primaryMimeTypes) { $this->primaryMimeTypes = $primaryMimeTypes; } - public function getPrimaryMimeTypes() { return $this->primaryMimeTypes; } - public function setProductId($productId) { $this->productId = $productId; } - public function getProductId() { return $this->productId; } - public function setProductUrl($productUrl) { $this->productUrl = $productUrl; } - public function getProductUrl() { return $this->productUrl; } - public function setSecondaryFileExtensions($secondaryFileExtensions) { $this->secondaryFileExtensions = $secondaryFileExtensions; } - public function getSecondaryFileExtensions() { return $this->secondaryFileExtensions; } - public function setSecondaryMimeTypes($secondaryMimeTypes) { $this->secondaryMimeTypes = $secondaryMimeTypes; } - public function getSecondaryMimeTypes() { return $this->secondaryMimeTypes; } - public function setShortDescription($shortDescription) { $this->shortDescription = $shortDescription; } - public function getShortDescription() { return $this->shortDescription; } - public function setSupportsCreate($supportsCreate) { $this->supportsCreate = $supportsCreate; } - public function getSupportsCreate() { return $this->supportsCreate; } - public function setSupportsImport($supportsImport) { $this->supportsImport = $supportsImport; } - public function getSupportsImport() { return $this->supportsImport; } - public function setSupportsMultiOpen($supportsMultiOpen) { $this->supportsMultiOpen = $supportsMultiOpen; } - public function getSupportsMultiOpen() { return $this->supportsMultiOpen; } - public function setSupportsOfflineCreate($supportsOfflineCreate) { $this->supportsOfflineCreate = $supportsOfflineCreate; } - public function getSupportsOfflineCreate() { return $this->supportsOfflineCreate; } - public function setUseByDefault($useByDefault) { $this->useByDefault = $useByDefault; } - public function getUseByDefault() { return $this->useByDefault; @@ -3283,31 +3252,27 @@ class Google_Service_Drive_AppIcons extends Google_Model public $iconUrl; public $size; + public function setCategory($category) { $this->category = $category; } - public function getCategory() { return $this->category; } - public function setIconUrl($iconUrl) { $this->iconUrl = $iconUrl; } - public function getIconUrl() { return $this->iconUrl; } - public function setSize($size) { $this->size = $size; } - public function getSize() { return $this->size; @@ -3326,51 +3291,43 @@ class Google_Service_Drive_AppList extends Google_Collection public $kind; public $selfLink; + public function setDefaultAppIds($defaultAppIds) { $this->defaultAppIds = $defaultAppIds; } - public function getDefaultAppIds() { return $this->defaultAppIds; } - public function setEtag($etag) { $this->etag = $etag; } - public function getEtag() { return $this->etag; } - public function setItems($items) { $this->items = $items; } - public function getItems() { return $this->items; } - public function setKind($kind) { $this->kind = $kind; } - public function getKind() { return $this->kind; } - public function setSelfLink($selfLink) { $this->selfLink = $selfLink; } - public function getSelfLink() { return $this->selfLink; @@ -3390,71 +3347,59 @@ class Google_Service_Drive_Change extends Google_Model public $modificationDate; public $selfLink; + public function setDeleted($deleted) { $this->deleted = $deleted; } - public function getDeleted() { return $this->deleted; } - public function setFile(Google_Service_Drive_DriveFile $file) { $this->file = $file; } - public function getFile() { return $this->file; } - public function setFileId($fileId) { $this->fileId = $fileId; } - public function getFileId() { return $this->fileId; } - public function setId($id) { $this->id = $id; } - public function getId() { return $this->id; } - public function setKind($kind) { $this->kind = $kind; } - public function getKind() { return $this->kind; } - public function setModificationDate($modificationDate) { $this->modificationDate = $modificationDate; } - public function getModificationDate() { return $this->modificationDate; } - public function setSelfLink($selfLink) { $this->selfLink = $selfLink; } - public function getSelfLink() { return $this->selfLink; @@ -3475,71 +3420,59 @@ class Google_Service_Drive_ChangeList extends Google_Collection public $nextPageToken; public $selfLink; + public function setEtag($etag) { $this->etag = $etag; } - public function getEtag() { return $this->etag; } - public function setItems($items) { $this->items = $items; } - public function getItems() { return $this->items; } - public function setKind($kind) { $this->kind = $kind; } - public function getKind() { return $this->kind; } - public function setLargestChangeId($largestChangeId) { $this->largestChangeId = $largestChangeId; } - public function getLargestChangeId() { return $this->largestChangeId; } - public function setNextLink($nextLink) { $this->nextLink = $nextLink; } - public function getNextLink() { return $this->nextLink; } - public function setNextPageToken($nextPageToken) { $this->nextPageToken = $nextPageToken; } - public function getNextPageToken() { return $this->nextPageToken; } - public function setSelfLink($selfLink) { $this->selfLink = $selfLink; } - public function getSelfLink() { return $this->selfLink; @@ -3561,101 +3494,83 @@ class Google_Service_Drive_Channel extends Google_Model public $token; public $type; + public function setAddress($address) { $this->address = $address; } - public function getAddress() { return $this->address; } - public function setExpiration($expiration) { $this->expiration = $expiration; } - public function getExpiration() { return $this->expiration; } - public function setId($id) { $this->id = $id; } - public function getId() { return $this->id; } - public function setKind($kind) { $this->kind = $kind; } - public function getKind() { return $this->kind; } - public function setParams($params) { $this->params = $params; } - public function getParams() { return $this->params; } - public function setPayload($payload) { $this->payload = $payload; } - public function getPayload() { return $this->payload; } - public function setResourceId($resourceId) { $this->resourceId = $resourceId; } - public function getResourceId() { return $this->resourceId; } - public function setResourceUri($resourceUri) { $this->resourceUri = $resourceUri; } - public function getResourceUri() { return $this->resourceUri; } - public function setToken($token) { $this->token = $token; } - public function getToken() { return $this->token; } - public function setType($type) { $this->type = $type; } - public function getType() { return $this->type; @@ -3664,8 +3579,6 @@ class Google_Service_Drive_Channel extends Google_Model class Google_Service_Drive_ChannelParams extends Google_Model { - protected $internal_gapi_mappings = array( - ); } class Google_Service_Drive_ChildList extends Google_Collection @@ -3681,61 +3594,51 @@ class Google_Service_Drive_ChildList extends Google_Collection public $nextPageToken; public $selfLink; + public function setEtag($etag) { $this->etag = $etag; } - public function getEtag() { return $this->etag; } - public function setItems($items) { $this->items = $items; } - public function getItems() { return $this->items; } - public function setKind($kind) { $this->kind = $kind; } - public function getKind() { return $this->kind; } - public function setNextLink($nextLink) { $this->nextLink = $nextLink; } - public function getNextLink() { return $this->nextLink; } - public function setNextPageToken($nextPageToken) { $this->nextPageToken = $nextPageToken; } - public function getNextPageToken() { return $this->nextPageToken; } - public function setSelfLink($selfLink) { $this->selfLink = $selfLink; } - public function getSelfLink() { return $this->selfLink; @@ -3751,41 +3654,35 @@ class Google_Service_Drive_ChildReference extends Google_Model public $kind; public $selfLink; + public function setChildLink($childLink) { $this->childLink = $childLink; } - public function getChildLink() { return $this->childLink; } - public function setId($id) { $this->id = $id; } - public function getId() { return $this->id; } - public function setKind($kind) { $this->kind = $kind; } - public function getKind() { return $this->kind; } - public function setSelfLink($selfLink) { $this->selfLink = $selfLink; } - public function getSelfLink() { return $this->selfLink; @@ -3816,151 +3713,123 @@ class Google_Service_Drive_Comment extends Google_Collection public $selfLink; public $status; + public function setAnchor($anchor) { $this->anchor = $anchor; } - public function getAnchor() { return $this->anchor; } - public function setAuthor(Google_Service_Drive_User $author) { $this->author = $author; } - public function getAuthor() { return $this->author; } - public function setCommentId($commentId) { $this->commentId = $commentId; } - public function getCommentId() { return $this->commentId; } - public function setContent($content) { $this->content = $content; } - public function getContent() { return $this->content; } - public function setContext(Google_Service_Drive_CommentContext $context) { $this->context = $context; } - public function getContext() { return $this->context; } - public function setCreatedDate($createdDate) { $this->createdDate = $createdDate; } - public function getCreatedDate() { return $this->createdDate; } - public function setDeleted($deleted) { $this->deleted = $deleted; } - public function getDeleted() { return $this->deleted; } - public function setFileId($fileId) { $this->fileId = $fileId; } - public function getFileId() { return $this->fileId; } - public function setFileTitle($fileTitle) { $this->fileTitle = $fileTitle; } - public function getFileTitle() { return $this->fileTitle; } - public function setHtmlContent($htmlContent) { $this->htmlContent = $htmlContent; } - public function getHtmlContent() { return $this->htmlContent; } - public function setKind($kind) { $this->kind = $kind; } - public function getKind() { return $this->kind; } - public function setModifiedDate($modifiedDate) { $this->modifiedDate = $modifiedDate; } - public function getModifiedDate() { return $this->modifiedDate; } - public function setReplies($replies) { $this->replies = $replies; } - public function getReplies() { return $this->replies; } - public function setSelfLink($selfLink) { $this->selfLink = $selfLink; } - public function getSelfLink() { return $this->selfLink; } - public function setStatus($status) { $this->status = $status; } - public function getStatus() { return $this->status; @@ -3974,21 +3843,19 @@ class Google_Service_Drive_CommentContext extends Google_Model public $type; public $value; + public function setType($type) { $this->type = $type; } - public function getType() { return $this->type; } - public function setValue($value) { $this->value = $value; } - public function getValue() { return $this->value; @@ -4007,51 +3874,43 @@ class Google_Service_Drive_CommentList extends Google_Collection public $nextPageToken; public $selfLink; + public function setItems($items) { $this->items = $items; } - public function getItems() { return $this->items; } - public function setKind($kind) { $this->kind = $kind; } - public function getKind() { return $this->kind; } - public function setNextLink($nextLink) { $this->nextLink = $nextLink; } - public function getNextLink() { return $this->nextLink; } - public function setNextPageToken($nextPageToken) { $this->nextPageToken = $nextPageToken; } - public function getNextPageToken() { return $this->nextPageToken; } - public function setSelfLink($selfLink) { $this->selfLink = $selfLink; } - public function getSelfLink() { return $this->selfLink; @@ -4073,91 +3932,75 @@ class Google_Service_Drive_CommentReply extends Google_Model public $replyId; public $verb; + public function setAuthor(Google_Service_Drive_User $author) { $this->author = $author; } - public function getAuthor() { return $this->author; } - public function setContent($content) { $this->content = $content; } - public function getContent() { return $this->content; } - public function setCreatedDate($createdDate) { $this->createdDate = $createdDate; } - public function getCreatedDate() { return $this->createdDate; } - public function setDeleted($deleted) { $this->deleted = $deleted; } - public function getDeleted() { return $this->deleted; } - public function setHtmlContent($htmlContent) { $this->htmlContent = $htmlContent; } - public function getHtmlContent() { return $this->htmlContent; } - public function setKind($kind) { $this->kind = $kind; } - public function getKind() { return $this->kind; } - public function setModifiedDate($modifiedDate) { $this->modifiedDate = $modifiedDate; } - public function getModifiedDate() { return $this->modifiedDate; } - public function setReplyId($replyId) { $this->replyId = $replyId; } - public function getReplyId() { return $this->replyId; } - public function setVerb($verb) { $this->verb = $verb; } - public function getVerb() { return $this->verb; @@ -4176,51 +4019,43 @@ class Google_Service_Drive_CommentReplyList extends Google_Collection public $nextPageToken; public $selfLink; + public function setItems($items) { $this->items = $items; } - public function getItems() { return $this->items; } - public function setKind($kind) { $this->kind = $kind; } - public function getKind() { return $this->kind; } - public function setNextLink($nextLink) { $this->nextLink = $nextLink; } - public function getNextLink() { return $this->nextLink; } - public function setNextPageToken($nextPageToken) { $this->nextPageToken = $nextPageToken; } - public function getNextPageToken() { return $this->nextPageToken; } - public function setSelfLink($selfLink) { $this->selfLink = $selfLink; } - public function getSelfLink() { return $this->selfLink; @@ -4229,11 +4064,12 @@ class Google_Service_Drive_CommentReplyList extends Google_Collection class Google_Service_Drive_DriveFile extends Google_Collection { - protected $collection_key = 'properties'; + protected $collection_key = 'spaces'; protected $internal_gapi_mappings = array( ); public $alternateLink; public $appDataContents; + public $canComment; public $copyable; public $createdDate; public $defaultOpenWithLink; @@ -4246,6 +4082,8 @@ class Google_Service_Drive_DriveFile extends Google_Collection public $exportLinks; public $fileExtension; public $fileSize; + public $folderColorRgb; + public $fullFileExtension; public $headRevisionId; public $iconLink; public $id; @@ -4267,6 +4105,7 @@ class Google_Service_Drive_DriveFile extends Google_Collection public $modifiedDate; public $openWithLinks; public $originalFilename; + public $ownedByMe; public $ownerNames; protected $ownersType = 'Google_Service_Drive_User'; protected $ownersDataType = 'array'; @@ -4278,10 +4117,12 @@ class Google_Service_Drive_DriveFile extends Google_Collection protected $propertiesDataType = 'array'; public $quotaBytesUsed; public $selfLink; + public $shareable; public $shared; public $sharedWithMeDate; protected $sharingUserType = 'Google_Service_Drive_User'; protected $sharingUserDataType = ''; + public $spaces; protected $thumbnailType = 'Google_Service_Drive_DriveFileThumbnail'; protected $thumbnailDataType = ''; public $thumbnailLink; @@ -4295,501 +4136,451 @@ class Google_Service_Drive_DriveFile extends Google_Collection public $webViewLink; public $writersCanShare; + public function setAlternateLink($alternateLink) { $this->alternateLink = $alternateLink; } - public function getAlternateLink() { return $this->alternateLink; } - public function setAppDataContents($appDataContents) { $this->appDataContents = $appDataContents; } - public function getAppDataContents() { return $this->appDataContents; } - + public function setCanComment($canComment) + { + $this->canComment = $canComment; + } + public function getCanComment() + { + return $this->canComment; + } public function setCopyable($copyable) { $this->copyable = $copyable; } - public function getCopyable() { return $this->copyable; } - public function setCreatedDate($createdDate) { $this->createdDate = $createdDate; } - public function getCreatedDate() { return $this->createdDate; } - public function setDefaultOpenWithLink($defaultOpenWithLink) { $this->defaultOpenWithLink = $defaultOpenWithLink; } - public function getDefaultOpenWithLink() { return $this->defaultOpenWithLink; } - public function setDescription($description) { $this->description = $description; } - public function getDescription() { return $this->description; } - public function setDownloadUrl($downloadUrl) { $this->downloadUrl = $downloadUrl; } - public function getDownloadUrl() { return $this->downloadUrl; } - public function setEditable($editable) { $this->editable = $editable; } - public function getEditable() { return $this->editable; } - public function setEmbedLink($embedLink) { $this->embedLink = $embedLink; } - public function getEmbedLink() { return $this->embedLink; } - public function setEtag($etag) { $this->etag = $etag; } - public function getEtag() { return $this->etag; } - public function setExplicitlyTrashed($explicitlyTrashed) { $this->explicitlyTrashed = $explicitlyTrashed; } - public function getExplicitlyTrashed() { return $this->explicitlyTrashed; } - public function setExportLinks($exportLinks) { $this->exportLinks = $exportLinks; } - public function getExportLinks() { return $this->exportLinks; } - public function setFileExtension($fileExtension) { $this->fileExtension = $fileExtension; } - public function getFileExtension() { return $this->fileExtension; } - public function setFileSize($fileSize) { $this->fileSize = $fileSize; } - public function getFileSize() { return $this->fileSize; } - + public function setFolderColorRgb($folderColorRgb) + { + $this->folderColorRgb = $folderColorRgb; + } + public function getFolderColorRgb() + { + return $this->folderColorRgb; + } + public function setFullFileExtension($fullFileExtension) + { + $this->fullFileExtension = $fullFileExtension; + } + public function getFullFileExtension() + { + return $this->fullFileExtension; + } public function setHeadRevisionId($headRevisionId) { $this->headRevisionId = $headRevisionId; } - public function getHeadRevisionId() { return $this->headRevisionId; } - public function setIconLink($iconLink) { $this->iconLink = $iconLink; } - public function getIconLink() { return $this->iconLink; } - public function setId($id) { $this->id = $id; } - public function getId() { return $this->id; } - public function setImageMediaMetadata(Google_Service_Drive_DriveFileImageMediaMetadata $imageMediaMetadata) { $this->imageMediaMetadata = $imageMediaMetadata; } - public function getImageMediaMetadata() { return $this->imageMediaMetadata; } - public function setIndexableText(Google_Service_Drive_DriveFileIndexableText $indexableText) { $this->indexableText = $indexableText; } - public function getIndexableText() { return $this->indexableText; } - public function setKind($kind) { $this->kind = $kind; } - public function getKind() { return $this->kind; } - public function setLabels(Google_Service_Drive_DriveFileLabels $labels) { $this->labels = $labels; } - public function getLabels() { return $this->labels; } - public function setLastModifyingUser(Google_Service_Drive_User $lastModifyingUser) { $this->lastModifyingUser = $lastModifyingUser; } - public function getLastModifyingUser() { return $this->lastModifyingUser; } - public function setLastModifyingUserName($lastModifyingUserName) { $this->lastModifyingUserName = $lastModifyingUserName; } - public function getLastModifyingUserName() { return $this->lastModifyingUserName; } - public function setLastViewedByMeDate($lastViewedByMeDate) { $this->lastViewedByMeDate = $lastViewedByMeDate; } - public function getLastViewedByMeDate() { return $this->lastViewedByMeDate; } - public function setMarkedViewedByMeDate($markedViewedByMeDate) { $this->markedViewedByMeDate = $markedViewedByMeDate; } - public function getMarkedViewedByMeDate() { return $this->markedViewedByMeDate; } - public function setMd5Checksum($md5Checksum) { $this->md5Checksum = $md5Checksum; } - public function getMd5Checksum() { return $this->md5Checksum; } - public function setMimeType($mimeType) { $this->mimeType = $mimeType; } - public function getMimeType() { return $this->mimeType; } - public function setModifiedByMeDate($modifiedByMeDate) { $this->modifiedByMeDate = $modifiedByMeDate; } - public function getModifiedByMeDate() { return $this->modifiedByMeDate; } - public function setModifiedDate($modifiedDate) { $this->modifiedDate = $modifiedDate; } - public function getModifiedDate() { return $this->modifiedDate; } - public function setOpenWithLinks($openWithLinks) { $this->openWithLinks = $openWithLinks; } - public function getOpenWithLinks() { return $this->openWithLinks; } - public function setOriginalFilename($originalFilename) { $this->originalFilename = $originalFilename; } - public function getOriginalFilename() { return $this->originalFilename; } - + public function setOwnedByMe($ownedByMe) + { + $this->ownedByMe = $ownedByMe; + } + public function getOwnedByMe() + { + return $this->ownedByMe; + } public function setOwnerNames($ownerNames) { $this->ownerNames = $ownerNames; } - public function getOwnerNames() { return $this->ownerNames; } - public function setOwners($owners) { $this->owners = $owners; } - public function getOwners() { return $this->owners; } - public function setParents($parents) { $this->parents = $parents; } - public function getParents() { return $this->parents; } - public function setPermissions($permissions) { $this->permissions = $permissions; } - public function getPermissions() { return $this->permissions; } - public function setProperties($properties) { $this->properties = $properties; } - public function getProperties() { return $this->properties; } - public function setQuotaBytesUsed($quotaBytesUsed) { $this->quotaBytesUsed = $quotaBytesUsed; } - public function getQuotaBytesUsed() { return $this->quotaBytesUsed; } - public function setSelfLink($selfLink) { $this->selfLink = $selfLink; } - public function getSelfLink() { return $this->selfLink; } - + public function setShareable($shareable) + { + $this->shareable = $shareable; + } + public function getShareable() + { + return $this->shareable; + } public function setShared($shared) { $this->shared = $shared; } - public function getShared() { return $this->shared; } - public function setSharedWithMeDate($sharedWithMeDate) { $this->sharedWithMeDate = $sharedWithMeDate; } - public function getSharedWithMeDate() { return $this->sharedWithMeDate; } - public function setSharingUser(Google_Service_Drive_User $sharingUser) { $this->sharingUser = $sharingUser; } - public function getSharingUser() { return $this->sharingUser; } - + public function setSpaces($spaces) + { + $this->spaces = $spaces; + } + public function getSpaces() + { + return $this->spaces; + } public function setThumbnail(Google_Service_Drive_DriveFileThumbnail $thumbnail) { $this->thumbnail = $thumbnail; } - public function getThumbnail() { return $this->thumbnail; } - public function setThumbnailLink($thumbnailLink) { $this->thumbnailLink = $thumbnailLink; } - public function getThumbnailLink() { return $this->thumbnailLink; } - public function setTitle($title) { $this->title = $title; } - public function getTitle() { return $this->title; } - public function setUserPermission(Google_Service_Drive_Permission $userPermission) { $this->userPermission = $userPermission; } - public function getUserPermission() { return $this->userPermission; } - public function setVersion($version) { $this->version = $version; } - public function getVersion() { return $this->version; } - public function setVideoMediaMetadata(Google_Service_Drive_DriveFileVideoMediaMetadata $videoMediaMetadata) { $this->videoMediaMetadata = $videoMediaMetadata; } - public function getVideoMediaMetadata() { return $this->videoMediaMetadata; } - public function setWebContentLink($webContentLink) { $this->webContentLink = $webContentLink; } - public function getWebContentLink() { return $this->webContentLink; } - public function setWebViewLink($webViewLink) { $this->webViewLink = $webViewLink; } - public function getWebViewLink() { return $this->webViewLink; } - public function setWritersCanShare($writersCanShare) { $this->writersCanShare = $writersCanShare; } - public function getWritersCanShare() { return $this->writersCanShare; @@ -4798,8 +4589,6 @@ class Google_Service_Drive_DriveFile extends Google_Collection class Google_Service_Drive_DriveFileExportLinks extends Google_Model { - protected $internal_gapi_mappings = array( - ); } class Google_Service_Drive_DriveFileImageMediaMetadata extends Google_Model @@ -4829,211 +4618,171 @@ class Google_Service_Drive_DriveFileImageMediaMetadata extends Google_Model public $whiteBalance; public $width; + public function setAperture($aperture) { $this->aperture = $aperture; } - public function getAperture() { return $this->aperture; } - public function setCameraMake($cameraMake) { $this->cameraMake = $cameraMake; } - public function getCameraMake() { return $this->cameraMake; } - public function setCameraModel($cameraModel) { $this->cameraModel = $cameraModel; } - public function getCameraModel() { return $this->cameraModel; } - public function setColorSpace($colorSpace) { $this->colorSpace = $colorSpace; } - public function getColorSpace() { return $this->colorSpace; } - public function setDate($date) { $this->date = $date; } - public function getDate() { return $this->date; } - public function setExposureBias($exposureBias) { $this->exposureBias = $exposureBias; } - public function getExposureBias() { return $this->exposureBias; } - public function setExposureMode($exposureMode) { $this->exposureMode = $exposureMode; } - public function getExposureMode() { return $this->exposureMode; } - public function setExposureTime($exposureTime) { $this->exposureTime = $exposureTime; } - public function getExposureTime() { return $this->exposureTime; } - public function setFlashUsed($flashUsed) { $this->flashUsed = $flashUsed; } - public function getFlashUsed() { return $this->flashUsed; } - public function setFocalLength($focalLength) { $this->focalLength = $focalLength; } - public function getFocalLength() { return $this->focalLength; } - public function setHeight($height) { $this->height = $height; } - public function getHeight() { return $this->height; } - public function setIsoSpeed($isoSpeed) { $this->isoSpeed = $isoSpeed; } - public function getIsoSpeed() { return $this->isoSpeed; } - public function setLens($lens) { $this->lens = $lens; } - public function getLens() { return $this->lens; } - public function setLocation(Google_Service_Drive_DriveFileImageMediaMetadataLocation $location) { $this->location = $location; } - public function getLocation() { return $this->location; } - public function setMaxApertureValue($maxApertureValue) { $this->maxApertureValue = $maxApertureValue; } - public function getMaxApertureValue() { return $this->maxApertureValue; } - public function setMeteringMode($meteringMode) { $this->meteringMode = $meteringMode; } - public function getMeteringMode() { return $this->meteringMode; } - public function setRotation($rotation) { $this->rotation = $rotation; } - public function getRotation() { return $this->rotation; } - public function setSensor($sensor) { $this->sensor = $sensor; } - public function getSensor() { return $this->sensor; } - public function setSubjectDistance($subjectDistance) { $this->subjectDistance = $subjectDistance; } - public function getSubjectDistance() { return $this->subjectDistance; } - public function setWhiteBalance($whiteBalance) { $this->whiteBalance = $whiteBalance; } - public function getWhiteBalance() { return $this->whiteBalance; } - public function setWidth($width) { $this->width = $width; } - public function getWidth() { return $this->width; @@ -5048,31 +4797,27 @@ class Google_Service_Drive_DriveFileImageMediaMetadataLocation extends Google_Mo public $latitude; public $longitude; + public function setAltitude($altitude) { $this->altitude = $altitude; } - public function getAltitude() { return $this->altitude; } - public function setLatitude($latitude) { $this->latitude = $latitude; } - public function getLatitude() { return $this->latitude; } - public function setLongitude($longitude) { $this->longitude = $longitude; } - public function getLongitude() { return $this->longitude; @@ -5085,11 +4830,11 @@ class Google_Service_Drive_DriveFileIndexableText extends Google_Model ); public $text; + public function setText($text) { $this->text = $text; } - public function getText() { return $this->text; @@ -5106,51 +4851,43 @@ class Google_Service_Drive_DriveFileLabels extends Google_Model public $trashed; public $viewed; + public function setHidden($hidden) { $this->hidden = $hidden; } - public function getHidden() { return $this->hidden; } - public function setRestricted($restricted) { $this->restricted = $restricted; } - public function getRestricted() { return $this->restricted; } - public function setStarred($starred) { $this->starred = $starred; } - public function getStarred() { return $this->starred; } - public function setTrashed($trashed) { $this->trashed = $trashed; } - public function getTrashed() { return $this->trashed; } - public function setViewed($viewed) { $this->viewed = $viewed; } - public function getViewed() { return $this->viewed; @@ -5159,8 +4896,6 @@ class Google_Service_Drive_DriveFileLabels extends Google_Model class Google_Service_Drive_DriveFileOpenWithLinks extends Google_Model { - protected $internal_gapi_mappings = array( - ); } class Google_Service_Drive_DriveFileThumbnail extends Google_Model @@ -5170,21 +4905,19 @@ class Google_Service_Drive_DriveFileThumbnail extends Google_Model public $image; public $mimeType; + public function setImage($image) { $this->image = $image; } - public function getImage() { return $this->image; } - public function setMimeType($mimeType) { $this->mimeType = $mimeType; } - public function getMimeType() { return $this->mimeType; @@ -5199,31 +4932,27 @@ class Google_Service_Drive_DriveFileVideoMediaMetadata extends Google_Model public $height; public $width; + public function setDurationMillis($durationMillis) { $this->durationMillis = $durationMillis; } - public function getDurationMillis() { return $this->durationMillis; } - public function setHeight($height) { $this->height = $height; } - public function getHeight() { return $this->height; } - public function setWidth($width) { $this->width = $width; } - public function getWidth() { return $this->width; @@ -5243,67 +4972,93 @@ class Google_Service_Drive_FileList extends Google_Collection public $nextPageToken; public $selfLink; + public function setEtag($etag) { $this->etag = $etag; } - public function getEtag() { return $this->etag; } - public function setItems($items) { $this->items = $items; } - public function getItems() { return $this->items; } - public function setKind($kind) { $this->kind = $kind; } - public function getKind() { return $this->kind; } - public function setNextLink($nextLink) { $this->nextLink = $nextLink; } - public function getNextLink() { return $this->nextLink; } - public function setNextPageToken($nextPageToken) { $this->nextPageToken = $nextPageToken; } - public function getNextPageToken() { return $this->nextPageToken; } - public function setSelfLink($selfLink) { $this->selfLink = $selfLink; } - public function getSelfLink() { return $this->selfLink; } } +class Google_Service_Drive_GeneratedIds extends Google_Collection +{ + protected $collection_key = 'ids'; + protected $internal_gapi_mappings = array( + ); + public $ids; + public $kind; + public $space; + + + public function setIds($ids) + { + $this->ids = $ids; + } + public function getIds() + { + return $this->ids; + } + public function setKind($kind) + { + $this->kind = $kind; + } + public function getKind() + { + return $this->kind; + } + public function setSpace($space) + { + $this->space = $space; + } + public function getSpace() + { + return $this->space; + } +} + class Google_Service_Drive_ParentList extends Google_Collection { protected $collection_key = 'items'; @@ -5315,41 +5070,35 @@ class Google_Service_Drive_ParentList extends Google_Collection public $kind; public $selfLink; + public function setEtag($etag) { $this->etag = $etag; } - public function getEtag() { return $this->etag; } - public function setItems($items) { $this->items = $items; } - public function getItems() { return $this->items; } - public function setKind($kind) { $this->kind = $kind; } - public function getKind() { return $this->kind; } - public function setSelfLink($selfLink) { $this->selfLink = $selfLink; } - public function getSelfLink() { return $this->selfLink; @@ -5366,51 +5115,43 @@ class Google_Service_Drive_ParentReference extends Google_Model public $parentLink; public $selfLink; + public function setId($id) { $this->id = $id; } - public function getId() { return $this->id; } - public function setIsRoot($isRoot) { $this->isRoot = $isRoot; } - public function getIsRoot() { return $this->isRoot; } - public function setKind($kind) { $this->kind = $kind; } - public function getKind() { return $this->kind; } - public function setParentLink($parentLink) { $this->parentLink = $parentLink; } - public function getParentLink() { return $this->parentLink; } - public function setSelfLink($selfLink) { $this->selfLink = $selfLink; } - public function getSelfLink() { return $this->selfLink; @@ -5437,141 +5178,115 @@ class Google_Service_Drive_Permission extends Google_Collection public $value; public $withLink; + public function setAdditionalRoles($additionalRoles) { $this->additionalRoles = $additionalRoles; } - public function getAdditionalRoles() { return $this->additionalRoles; } - public function setAuthKey($authKey) { $this->authKey = $authKey; } - public function getAuthKey() { return $this->authKey; } - public function setDomain($domain) { $this->domain = $domain; } - public function getDomain() { return $this->domain; } - public function setEmailAddress($emailAddress) { $this->emailAddress = $emailAddress; } - public function getEmailAddress() { return $this->emailAddress; } - public function setEtag($etag) { $this->etag = $etag; } - public function getEtag() { return $this->etag; } - public function setId($id) { $this->id = $id; } - public function getId() { return $this->id; } - public function setKind($kind) { $this->kind = $kind; } - public function getKind() { return $this->kind; } - public function setName($name) { $this->name = $name; } - public function getName() { return $this->name; } - public function setPhotoLink($photoLink) { $this->photoLink = $photoLink; } - public function getPhotoLink() { return $this->photoLink; } - public function setRole($role) { $this->role = $role; } - public function getRole() { return $this->role; } - public function setSelfLink($selfLink) { $this->selfLink = $selfLink; } - public function getSelfLink() { return $this->selfLink; } - public function setType($type) { $this->type = $type; } - public function getType() { return $this->type; } - public function setValue($value) { $this->value = $value; } - public function getValue() { return $this->value; } - public function setWithLink($withLink) { $this->withLink = $withLink; } - public function getWithLink() { return $this->withLink; @@ -5585,21 +5300,19 @@ class Google_Service_Drive_PermissionId extends Google_Model public $id; public $kind; + public function setId($id) { $this->id = $id; } - public function getId() { return $this->id; } - public function setKind($kind) { $this->kind = $kind; } - public function getKind() { return $this->kind; @@ -5617,41 +5330,35 @@ class Google_Service_Drive_PermissionList extends Google_Collection public $kind; public $selfLink; + public function setEtag($etag) { $this->etag = $etag; } - public function getEtag() { return $this->etag; } - public function setItems($items) { $this->items = $items; } - public function getItems() { return $this->items; } - public function setKind($kind) { $this->kind = $kind; } - public function getKind() { return $this->kind; } - public function setSelfLink($selfLink) { $this->selfLink = $selfLink; } - public function getSelfLink() { return $this->selfLink; @@ -5669,61 +5376,51 @@ class Google_Service_Drive_Property extends Google_Model public $value; public $visibility; + public function setEtag($etag) { $this->etag = $etag; } - public function getEtag() { return $this->etag; } - public function setKey($key) { $this->key = $key; } - public function getKey() { return $this->key; } - public function setKind($kind) { $this->kind = $kind; } - public function getKind() { return $this->kind; } - public function setSelfLink($selfLink) { $this->selfLink = $selfLink; } - public function getSelfLink() { return $this->selfLink; } - public function setValue($value) { $this->value = $value; } - public function getValue() { return $this->value; } - public function setVisibility($visibility) { $this->visibility = $visibility; } - public function getVisibility() { return $this->visibility; @@ -5741,41 +5438,35 @@ class Google_Service_Drive_PropertyList extends Google_Collection public $kind; public $selfLink; + public function setEtag($etag) { $this->etag = $etag; } - public function getEtag() { return $this->etag; } - public function setItems($items) { $this->items = $items; } - public function getItems() { return $this->items; } - public function setKind($kind) { $this->kind = $kind; } - public function getKind() { return $this->kind; } - public function setSelfLink($selfLink) { $this->selfLink = $selfLink; } - public function getSelfLink() { return $this->selfLink; @@ -5806,181 +5497,147 @@ class Google_Service_Drive_Revision extends Google_Model public $publishedOutsideDomain; public $selfLink; + public function setDownloadUrl($downloadUrl) { $this->downloadUrl = $downloadUrl; } - public function getDownloadUrl() { return $this->downloadUrl; } - public function setEtag($etag) { $this->etag = $etag; } - public function getEtag() { return $this->etag; } - public function setExportLinks($exportLinks) { $this->exportLinks = $exportLinks; } - public function getExportLinks() { return $this->exportLinks; } - public function setFileSize($fileSize) { $this->fileSize = $fileSize; } - public function getFileSize() { return $this->fileSize; } - public function setId($id) { $this->id = $id; } - public function getId() { return $this->id; } - public function setKind($kind) { $this->kind = $kind; } - public function getKind() { return $this->kind; } - public function setLastModifyingUser(Google_Service_Drive_User $lastModifyingUser) { $this->lastModifyingUser = $lastModifyingUser; } - public function getLastModifyingUser() { return $this->lastModifyingUser; } - public function setLastModifyingUserName($lastModifyingUserName) { $this->lastModifyingUserName = $lastModifyingUserName; } - public function getLastModifyingUserName() { return $this->lastModifyingUserName; } - public function setMd5Checksum($md5Checksum) { $this->md5Checksum = $md5Checksum; } - public function getMd5Checksum() { return $this->md5Checksum; } - public function setMimeType($mimeType) { $this->mimeType = $mimeType; } - public function getMimeType() { return $this->mimeType; } - public function setModifiedDate($modifiedDate) { $this->modifiedDate = $modifiedDate; } - public function getModifiedDate() { return $this->modifiedDate; } - public function setOriginalFilename($originalFilename) { $this->originalFilename = $originalFilename; } - public function getOriginalFilename() { return $this->originalFilename; } - public function setPinned($pinned) { $this->pinned = $pinned; } - public function getPinned() { return $this->pinned; } - public function setPublishAuto($publishAuto) { $this->publishAuto = $publishAuto; } - public function getPublishAuto() { return $this->publishAuto; } - public function setPublished($published) { $this->published = $published; } - public function getPublished() { return $this->published; } - public function setPublishedLink($publishedLink) { $this->publishedLink = $publishedLink; } - public function getPublishedLink() { return $this->publishedLink; } - public function setPublishedOutsideDomain($publishedOutsideDomain) { $this->publishedOutsideDomain = $publishedOutsideDomain; } - public function getPublishedOutsideDomain() { return $this->publishedOutsideDomain; } - public function setSelfLink($selfLink) { $this->selfLink = $selfLink; } - public function getSelfLink() { return $this->selfLink; @@ -5989,8 +5646,6 @@ class Google_Service_Drive_Revision extends Google_Model class Google_Service_Drive_RevisionExportLinks extends Google_Model { - protected $internal_gapi_mappings = array( - ); } class Google_Service_Drive_RevisionList extends Google_Collection @@ -6004,41 +5659,35 @@ class Google_Service_Drive_RevisionList extends Google_Collection public $kind; public $selfLink; + public function setEtag($etag) { $this->etag = $etag; } - public function getEtag() { return $this->etag; } - public function setItems($items) { $this->items = $items; } - public function getItems() { return $this->items; } - public function setKind($kind) { $this->kind = $kind; } - public function getKind() { return $this->kind; } - public function setSelfLink($selfLink) { $this->selfLink = $selfLink; } - public function getSelfLink() { return $this->selfLink; @@ -6057,61 +5706,51 @@ class Google_Service_Drive_User extends Google_Model protected $pictureType = 'Google_Service_Drive_UserPicture'; protected $pictureDataType = ''; + public function setDisplayName($displayName) { $this->displayName = $displayName; } - public function getDisplayName() { return $this->displayName; } - public function setEmailAddress($emailAddress) { $this->emailAddress = $emailAddress; } - public function getEmailAddress() { return $this->emailAddress; } - public function setIsAuthenticatedUser($isAuthenticatedUser) { $this->isAuthenticatedUser = $isAuthenticatedUser; } - public function getIsAuthenticatedUser() { return $this->isAuthenticatedUser; } - public function setKind($kind) { $this->kind = $kind; } - public function getKind() { return $this->kind; } - public function setPermissionId($permissionId) { $this->permissionId = $permissionId; } - public function getPermissionId() { return $this->permissionId; } - public function setPicture(Google_Service_Drive_UserPicture $picture) { $this->picture = $picture; } - public function getPicture() { return $this->picture; @@ -6124,11 +5763,11 @@ class Google_Service_Drive_UserPicture extends Google_Model ); public $url; + public function setUrl($url) { $this->url = $url; } - public function getUrl() { return $this->url; diff --git a/apps/files_external/3rdparty/google-api-php-client/src/Google/Service/Exception.php b/apps/files_external/3rdparty/google-api-php-client/src/Google/Service/Exception.php index a780ff7b47c..65c945b73d1 100644 --- a/apps/files_external/3rdparty/google-api-php-client/src/Google/Service/Exception.php +++ b/apps/files_external/3rdparty/google-api-php-client/src/Google/Service/Exception.php @@ -1,8 +1,25 @@ <?php +/* + * Copyright 2014 Google Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ -require_once 'Google/Exception.php'; +if (!class_exists('Google_Client')) { + require_once dirname(__FILE__) . '/../autoload.php'; +} -class Google_Service_Exception extends Google_Exception +class Google_Service_Exception extends Google_Exception implements Google_Task_Retryable { /** * Optional list of errors returned in a JSON body of an HTTP error response. @@ -10,19 +27,27 @@ class Google_Service_Exception extends Google_Exception protected $errors = array(); /** - * Override default constructor to add ability to set $errors. + * @var array $retryMap Map of errors with retry counts. + */ + private $retryMap = array(); + + /** + * Override default constructor to add the ability to set $errors and a retry + * map. * * @param string $message * @param int $code * @param Exception|null $previous * @param [{string, string}] errors List of errors returned in an HTTP * response. Defaults to []. + * @param array|null $retryMap Map of errors with retry counts. */ public function __construct( $message, $code = 0, Exception $previous = null, - $errors = array() + $errors = array(), + array $retryMap = null ) { if (version_compare(PHP_VERSION, '5.3.0') >= 0) { parent::__construct($message, $code, $previous); @@ -31,6 +56,10 @@ class Google_Service_Exception extends Google_Exception } $this->errors = $errors; + + if (is_array($retryMap)) { + $this->retryMap = $retryMap; + } } /** @@ -50,4 +79,27 @@ class Google_Service_Exception extends Google_Exception { return $this->errors; } + + /** + * Gets the number of times the associated task can be retried. + * + * NOTE: -1 is returned if the task can be retried indefinitely + * + * @return integer + */ + public function allowedRetries() + { + if (isset($this->retryMap[$this->code])) { + return $this->retryMap[$this->code]; + } + + $errors = $this->getErrors(); + + if (!empty($errors) && isset($errors[0]['reason']) && + isset($this->retryMap[$errors[0]['reason']])) { + return $this->retryMap[$errors[0]['reason']]; + } + + return 0; + } } diff --git a/apps/files_external/3rdparty/google-api-php-client/src/Google/Service/Resource.php b/apps/files_external/3rdparty/google-api-php-client/src/Google/Service/Resource.php index d396907e1d0..b3b4d85f689 100644 --- a/apps/files_external/3rdparty/google-api-php-client/src/Google/Service/Resource.php +++ b/apps/files_external/3rdparty/google-api-php-client/src/Google/Service/Resource.php @@ -15,21 +15,15 @@ * limitations under the License. */ -require_once 'Google/Client.php'; -require_once 'Google/Exception.php'; -require_once 'Google/Utils.php'; -require_once 'Google/Http/Request.php'; -require_once 'Google/Http/MediaFileUpload.php'; -require_once 'Google/Http/REST.php'; +if (!class_exists('Google_Client')) { + require_once dirname(__FILE__) . '/../autoload.php'; +} /** * Implements the actual methods/resources of the discovered Google API using magic function * calling overloading (__call()), which on call will see if the method name (plus.activities.list) * is available in this service, and if so construct an apiHttpRequest representing it. * - * @author Chris Chabot <chabotc@google.com> - * @author Chirag Shah <chirags@google.com> - * */ class Google_Service_Resource { @@ -39,16 +33,16 @@ class Google_Service_Resource 'fields' => array('type' => 'string', 'location' => 'query'), 'trace' => array('type' => 'string', 'location' => 'query'), 'userIp' => array('type' => 'string', 'location' => 'query'), - 'userip' => array('type' => 'string', 'location' => 'query'), 'quotaUser' => array('type' => 'string', 'location' => 'query'), 'data' => array('type' => 'string', 'location' => 'body'), 'mimeType' => array('type' => 'string', 'location' => 'header'), 'uploadType' => array('type' => 'string', 'location' => 'query'), 'mediaUpload' => array('type' => 'complex', 'location' => 'query'), + 'prettyPrint' => array('type' => 'string', 'location' => 'query'), ); - /** @var Google_Service $service */ - private $service; + /** @var string $rootUrl */ + private $rootUrl; /** @var Google_Client $client */ private $client; @@ -56,6 +50,9 @@ class Google_Service_Resource /** @var string $serviceName */ private $serviceName; + /** @var string $servicePath */ + private $servicePath; + /** @var string $resourceName */ private $resourceName; @@ -64,17 +61,18 @@ class Google_Service_Resource public function __construct($service, $serviceName, $resourceName, $resource) { - $this->service = $service; + $this->rootUrl = $service->rootUrl; $this->client = $service->getClient(); + $this->servicePath = $service->servicePath; $this->serviceName = $serviceName; $this->resourceName = $resourceName; - $this->methods = isset($resource['methods']) ? + $this->methods = is_array($resource) && isset($resource['methods']) ? $resource['methods'] : array($resourceName => $resource); } /** - * TODO(ianbarber): This function needs simplifying. + * TODO: This function needs simplifying. * @param $name * @param $arguments * @param $expected_class - optional, the expected class name @@ -84,6 +82,15 @@ class Google_Service_Resource public function call($name, $arguments, $expected_class = null) { if (! isset($this->methods[$name])) { + $this->client->getLogger()->error( + 'Service method unknown', + array( + 'service' => $this->serviceName, + 'resource' => $this->resourceName, + 'method' => $name + ) + ); + throw new Google_Exception( "Unknown function: " . "{$this->serviceName}->{$this->resourceName}->{$name}()" @@ -108,10 +115,13 @@ class Google_Service_Resource $this->convertToArrayAndStripNulls($parameters['postBody']); } $postBody = json_encode($parameters['postBody']); + if ($postBody === false && $parameters['postBody'] !== false) { + throw new Google_Exception("JSON encoding failed. Ensure all strings in the request are UTF-8 encoded."); + } unset($parameters['postBody']); } - // TODO(ianbarber): optParams here probably should have been + // TODO: optParams here probably should have been // handled already - this may well be redundant code. if (isset($parameters['optParams'])) { $optParams = $parameters['optParams']; @@ -124,11 +134,20 @@ class Google_Service_Resource } $method['parameters'] = array_merge( - $method['parameters'], - $this->stackParameters + $this->stackParameters, + $method['parameters'] ); foreach ($parameters as $key => $val) { if ($key != 'postBody' && ! isset($method['parameters'][$key])) { + $this->client->getLogger()->error( + 'Service parameter unknown', + array( + 'service' => $this->serviceName, + 'resource' => $this->resourceName, + 'method' => $name, + 'parameter' => $key + ) + ); throw new Google_Exception("($name) unknown parameter: '$key'"); } } @@ -138,6 +157,15 @@ class Google_Service_Resource $paramSpec['required'] && ! isset($parameters[$paramName]) ) { + $this->client->getLogger()->error( + 'Service parameter missing', + array( + 'service' => $this->serviceName, + 'resource' => $this->resourceName, + 'method' => $name, + 'parameter' => $paramName + ) + ); throw new Google_Exception("($name) missing required param: '$paramName'"); } if (isset($parameters[$paramName])) { @@ -151,10 +179,18 @@ class Google_Service_Resource } } - $servicePath = $this->service->servicePath; + $this->client->getLogger()->info( + 'Service Call', + array( + 'service' => $this->serviceName, + 'resource' => $this->resourceName, + 'method' => $name, + 'arguments' => $parameters, + ) + ); $url = Google_Http_REST::createRequestUri( - $servicePath, + $this->servicePath, $method['path'], $parameters ); @@ -164,7 +200,12 @@ class Google_Service_Resource null, $postBody ); - $httpRequest->setBaseComponent($this->client->getBasePath()); + + if ($this->rootUrl) { + $httpRequest->setBaseComponent($this->rootUrl); + } else { + $httpRequest->setBaseComponent($this->client->getBasePath()); + } if ($postBody) { $contentTypeHeader = array(); @@ -187,6 +228,10 @@ class Google_Service_Resource ); } + if (isset($parameters['alt']) && $parameters['alt']['value'] == 'media') { + $httpRequest->enableExpectedRaw(); + } + if ($this->client->shouldDefer()) { // If we are in batch or upload mode, return the raw request. return $httpRequest; diff --git a/apps/files_external/3rdparty/google-api-php-client/src/Google/Signer/P12.php b/apps/files_external/3rdparty/google-api-php-client/src/Google/Signer/P12.php index 7cc6098bb63..1fbed87a825 100644 --- a/apps/files_external/3rdparty/google-api-php-client/src/Google/Signer/P12.php +++ b/apps/files_external/3rdparty/google-api-php-client/src/Google/Signer/P12.php @@ -15,8 +15,9 @@ * limitations under the License. */ -require_once 'Google/Auth/Exception.php'; -require_once 'Google/Signer/Abstract.php'; +if (!class_exists('Google_Client')) { + require_once dirname(__FILE__) . '/../autoload.php'; +} /** * Signs data. @@ -45,6 +46,8 @@ class Google_Signer_P12 extends Google_Signer_Abstract // at the time. if (!$password && strpos($p12, "-----BEGIN RSA PRIVATE KEY-----") !== false) { $this->privateKey = openssl_pkey_get_private($p12); + } elseif ($password === 'notasecret' && strpos($p12, "-----BEGIN PRIVATE KEY-----") !== false) { + $this->privateKey = openssl_pkey_get_private($p12); } else { // This throws on error $certs = array(); diff --git a/apps/files_external/3rdparty/google-api-php-client/src/Google/Utils.php b/apps/files_external/3rdparty/google-api-php-client/src/Google/Utils.php index f5ef32cd4d6..2803daaa109 100644 --- a/apps/files_external/3rdparty/google-api-php-client/src/Google/Utils.php +++ b/apps/files_external/3rdparty/google-api-php-client/src/Google/Utils.php @@ -18,8 +18,6 @@ /** * Collection of static utility methods used for convenience across * the client library. - * - * @author Chirag Shah <chirags@google.com> */ class Google_Utils { diff --git a/apps/files_external/3rdparty/google-api-php-client/src/Google/Utils/URITemplate.php b/apps/files_external/3rdparty/google-api-php-client/src/Google/Utils/URITemplate.php index f5ee38bb333..0e30f80c4bf 100644 --- a/apps/files_external/3rdparty/google-api-php-client/src/Google/Utils/URITemplate.php +++ b/apps/files_external/3rdparty/google-api-php-client/src/Google/Utils/URITemplate.php @@ -16,7 +16,7 @@ */ /** - * Implementation of levels 1-3 of the URI Template spec. + * Implementation of levels 1-3 of the URI Template spec. * @see http://tools.ietf.org/html/rfc6570 */ class Google_Utils_URITemplate @@ -26,7 +26,7 @@ class Google_Utils_URITemplate const TYPE_SCALAR = "4"; /** - * @var $operators array + * @var $operators array * These are valid at the start of a template block to * modify the way in which the variables inside are * processed. @@ -64,7 +64,7 @@ class Google_Utils_URITemplate /** * This function finds the first matching {...} block and * executes the replacement. It then calls itself to find - * subsequent blocks, if any. + * subsequent blocks, if any. */ private function resolveNextSection($string, $parameters) { @@ -213,7 +213,7 @@ class Google_Utils_URITemplate if (isset($parameters[$key])) { $data_type = $this->getDataType($parameters[$key]); - switch($data_type) { + switch ($data_type) { case self::TYPE_SCALAR: $value = $this->getValue($parameters[$key], $length); break; diff --git a/apps/files_external/3rdparty/google-api-php-client/src/Google/Verifier/Pem.php b/apps/files_external/3rdparty/google-api-php-client/src/Google/Verifier/Pem.php index f281575e172..3d6e0fd2d59 100644 --- a/apps/files_external/3rdparty/google-api-php-client/src/Google/Verifier/Pem.php +++ b/apps/files_external/3rdparty/google-api-php-client/src/Google/Verifier/Pem.php @@ -15,8 +15,9 @@ * limitations under the License. */ -require_once 'Google/Auth/Exception.php'; -require_once 'Google/Verifier/Abstract.php'; +if (!class_exists('Google_Client')) { + require_once dirname(__FILE__) . '/../autoload.php'; +} /** * Verifies signatures using PEM encoded certificates. |