From d47223472e97593cea577fca0e18ed95ef8bece7 Mon Sep 17 00:00:00 2001
From: Michael Pretty <mpretty@voceconnect.com>
Date: Wed, 22 Sep 2010 21:33:41 -0400
Subject: [PATCH] switching to generic cdn rewrite plugin

---
 cdn-rewrite.php                      |   209 +
 cloudfiles-cdn.php                   |   513 -
 cloudfiles/cloudfiles.php            |  2168 ----
 cloudfiles/cloudfiles_exceptions.php |    41 -
 cloudfiles/cloudfiles_http.php       |  1338 ---
 cloudfiles/share/cacert.pem          |  3113 -----
 cloudfiles/share/magic               | 15283 -------------------------
 cloudfiles/share/magic.mgc           |   Bin 1775200 -> 0 bytes
 cloudfiles/share/magic.mime          |  1027 --
 cloudfiles/share/magic.mime.mgc      |   Bin 42624 -> 0 bytes
 voce-settings.php                    |   182 +-
 11 files changed, 300 insertions(+), 23574 deletions(-)
 create mode 100644 cdn-rewrite.php
 delete mode 100644 cloudfiles-cdn.php
 delete mode 100644 cloudfiles/cloudfiles.php
 delete mode 100644 cloudfiles/cloudfiles_exceptions.php
 delete mode 100644 cloudfiles/cloudfiles_http.php
 delete mode 100644 cloudfiles/share/cacert.pem
 delete mode 100644 cloudfiles/share/magic
 delete mode 100644 cloudfiles/share/magic.mgc
 delete mode 100644 cloudfiles/share/magic.mime
 delete mode 100644 cloudfiles/share/magic.mime.mgc

diff --git a/cdn-rewrite.php b/cdn-rewrite.php
new file mode 100644
index 0000000..c9a3828
--- /dev/null
+++ b/cdn-rewrite.php
@@ -0,0 +1,209 @@
+<?php
+/*
+Plugin Name: CDN Rewrite
+Plugin URI: http://voceconnect.com/
+Description: Rewrites asset URLs to CDN
+Version: 0.1
+Author: Chris Scott, Michael Pretty
+Author URI: http://voceconnect.com/
+*/
+
+require_once('voce-settings.php');
+
+class CDN_Rewrite {
+
+	const OPTION_GENERAL = 'cdn_general';
+
+	private $submenu_general;
+	private $file_extensions;
+	private $blog_details;
+	private $cdn_root_url;
+
+	public function __construct() {
+		$this->file_extensions = $this->get_setting('file_extensions');
+		$this->cdn_root_url = untrailingslashit($this->get_setting('root_url'));
+	}
+
+	public function initialize() {
+		if (!class_exists('Voce_Settings')) {
+			return;
+		}
+
+		add_action('admin_menu', array($this, 'add_options_page'));
+		if ('' == $this->file_extensions || '' == $this->cdn_root_url) {
+			add_action('admin_notices', array($this, 'settings_warning'));
+			return;
+		}
+
+		if('/' != $this->cdn_root_url) {
+			add_action('template_redirect', array($this, 'start_buffer'), 1);
+		}
+	}
+
+	/**
+	 * get general setting
+	 *
+	 * @param string $setting setting name
+	 * @return mixed setting value or false if not set
+	 */
+	private function get_setting($setting) {
+		$settings = get_option(self::OPTION_GENERAL);
+		if(!$settings || !is_array($settings)) {
+			$settings = array(
+				'file_extensions' => 'bmp|bz2|css|gif|ico|gz|jpg|jpeg|js|mp3|pdf|png|rar|rtf|swf|tar|tgz|txt|wav|zip'
+			);
+			update_option(self::OPTION_GENERAL, $settings);
+		}
+		return (isset($settings[$setting])) ? $settings[$setting] : false;
+	}
+
+	public function settings_warning() {
+		echo "<div class='update-nag'>The CDN Rewrite plugin is missing some required settings.</div>";
+	}
+
+	/**
+	 * adds the options page
+	 *
+	 * @return void
+	 */
+	public function add_options_page() {
+		$this->submenu_general = add_options_page('CDN Rewrite', 'CDN Rewrite', 'manage_options', self::OPTION_GENERAL, array($this, 'submenu_general'));
+		$settings = new Voce_Settings(self::OPTION_GENERAL, self::OPTION_GENERAL);
+
+		$section = $settings->add_section('api', 'CDN Rewrite Settings', $this->submenu_general);
+		$section->add_field('root_url', 'CDN Root URL (required)', 'field_input', array('description' => 'The base URL of the CDN.'));
+		$section->add_field('file_extensions', 'File Extensions (required)', 'field_input');
+	}
+
+	/**
+	 * callback to display submenu_external
+	 *
+	 * @return void
+	 */
+	function submenu_general() {
+		?>
+		<div class="wrap">
+			<h2>CDN Rewrite Settings</h2>
+			<form method="post" action="options.php">
+				<?php settings_fields(self::OPTION_GENERAL); ?>
+				<?php do_settings_sections($this->submenu_general); ?>
+				<p class="submit">
+					<input name="Submit" type="submit" class="button-primary" value="<?php esc_attr_e('Save Changes'); ?>" />
+				</p>
+			</form>
+		</div>
+		<?php
+	}
+
+	/**
+	 * start output buffering.
+	 *
+	 */
+	public function start_buffer() {
+		ob_start(array($this, 'filter_urls'));
+	}
+
+	/**
+	 * Callback for output buffering.  Search content for urls to replace
+	 *
+	 * @param string $content
+	 * @return string
+	 */
+	public function filter_urls($content) {
+		$root_url = $this->get_site_root_url();
+		$regex = '#(?<=[(\"\'])'.quotemeta($root_url).'(?:(/[^\"\')]+\.('.$this->file_extensions.')))#';
+
+		$content = preg_replace_callback($regex, array($this, 'url_rewrite'), $content);
+
+		return $content;
+	}
+
+	/**
+	 * Returns the root url of the current site
+	 *
+	 * @return string
+	 */
+	public function get_site_root_url() {
+		if(is_multisite() && !is_subdomain_install()) {
+			$root_blog = get_blog_details(1);
+			$root_url = $root_blog->siteurl;
+		} else {
+			$root_url = site_url();
+		}
+		return $root_url;
+	}
+
+	/**
+	 * Returns the details for the current blog
+	 *
+	 * @return object
+	 */
+	public function get_this_blog_details() {
+		if(!isset($this->blog_details)) {
+			global $blog_id;
+			$this->blog_details = get_blog_details($blog_id);
+		}
+		return $this->blog_details;
+	}
+
+	/**
+	 * Callback for url preg_replace_callback.  Returns corrected URL
+	 *
+	 * @param array $match
+	 * @return string
+	 */
+	public function url_rewrite($match) {
+		global $blog_id;
+		$path = $match[1];
+		//if is subfolder install and isn't root blog and path starts with site_url and isnt uploads dir
+		if(is_multisite() && !is_subdomain_install() && $blog_id !== 1) {
+			$bloginfo = $this->get_this_blog_details();
+			if((0 === strpos($path, $bloginfo->path)) && (0 !== strpos($path, $bloginfo->path.'files/'))) {
+				$path = '/'.substr($path, strlen($bloginfo->path));
+			}
+		}
+		return $this->cdn_root_url . $path;
+	}
+
+}
+add_action('init', array(new CDN_Rewrite(), 'initialize'));
+
+class CDN_VersionAssets {
+
+	private $default_version = '';
+	private $root_url;
+
+	public function __construct() {
+		$this->root_url = site_url();
+	}
+
+	public function initialize() {
+		add_filter('style_loader_src', array($this, 'replace_version'), 10);
+		add_filter('script_loader_src', array($this, 'replace_version'), 10);
+		add_filter('stylesheet_uri', array($this, 'replace_version'), 10);
+	}
+
+	public function on_template_redirect() {
+		$this->default_version = @filemtime(get_stylesheet_directory().'/style.css');
+	}
+
+	private function get_version($url) {
+		if(0 === strpos($url, $this->root_url)) {
+			$parts = parse_url($url);
+			$file_path = str_replace(site_url('/'), ABSPATH, $parts['scheme'].'://'.$parts['host'].$parts['path']);
+			if(	!($version = @filemtime($file_path)) ) {
+				$version = $this->default_version;
+			}
+			return $version;
+		}
+		return false;
+	}
+
+	public function replace_version($src) {
+		if( $new_version = $this->get_version($src) ) {
+			return add_query_arg('ver', $new_version, $src);
+		}
+		return $src;
+	}
+}
+add_action('init', array(new CDN_VersionAssets(), 'initialize'));
\ No newline at end of file
diff --git a/cloudfiles-cdn.php b/cloudfiles-cdn.php
deleted file mode 100644
index 29cf5ee..0000000
--- a/cloudfiles-cdn.php
+++ /dev/null
@@ -1,513 +0,0 @@
-<?php
-/*
-Plugin Name: Cloudfiles CDN
-Plugin URI: http://voceconnect.com/
-Description: Adds/Deletes uploaded images on CDN and rewrites asset URLs to CDN
-Version: 0.1
-Author: Chris Scott, Michael Pretty
-Author URI: http://voceconnect.com/
-*/
-
-require_once('voce-settings.php');
-
-class CloudfilesCdn {
-
-	var $submenu_general;
-
-	//private static $option_group = 'cloudfiles_cdn';
-	const OPTION_GENERAL = 'cloudfiles_cdn_general';
-
-	/**
-	 * get general setting
-	 *
-	 * @param string $setting setting name
-	 * @return mixed setting value or false if not set
-	 */
-	public static function get_setting($setting) {
-		$settings = get_option(self::OPTION_GENERAL);
-		if(!$settings || !is_array($settings)) {
-			$settings = array(
-				'file_extensions' => 'bmp|bz2|css|gif|ico|gz|jpg|jpeg|js|mp3|pdf|png|rar|rtf|swf|tar|tgz|txt|wav|zip'
-			);
-		}
-		return (isset($settings[$setting])) ? $settings[$setting] : false;
-	}
-
-	public function __construct() {}
-
-	public function initialize() {
-		// relies on Voce_Settings
-		if (!class_exists('Voce_Settings')) {
-			return;
-		}
-
-		add_action('admin_menu', array($this, 'add_options_page'));
-
-		if (!self::get_setting('username') || !self::get_setting('api_key') || !self::get_setting('container') || !self::get_setting('root_url') || !self::get_setting('file_extensions')) {
-			add_action('admin_notices', array($this, 'settings_warning'));
-			return;
-		}
-
-		add_filter('wp_handle_upload', array($this, 'catch_wp_handle_upload'));
-		add_filter('wp_delete_file', array($this, 'catch_wp_delete_file'));
-		add_filter('wp_generate_attachment_metadata', array($this, 'catch_wp_generate_attachment_metadata'));
-		add_filter('bp_core_avatar_cropstore', array($this, 'catch_bp_core_avatar_cropstore'));
-		add_action('bp_core_avatar_save', array($this, 'catch_bp_core_avatar_save'), 10, 2);
-
-	}
-
-	public function settings_warning() {
-		echo "<div class='update-nag'>The Cloudfiles CDN plugin is missing some required settings.</div>";
-	}
-
-	/**
-	 * adds the options page
-	 *
-	 * @return void
-	 */
-	public function add_options_page() {
-		$this->submenu_general = add_options_page('Cloudfiles CDN', 'Cloudfiles CDN', 'manage_options', self::OPTION_GENERAL, array($this, 'submenu_general'));
-		$settings = new Voce_Settings(self::OPTION_GENERAL, self::OPTION_GENERAL);
-
-		$section = $settings->add_section('api', 'Cloudfiles API Settings', $this->submenu_general);
-		$section->add_field('username', 'Username (required)', 'field_input');
-		$section->add_field('api_key', 'API Key (required)', 'field_input');
-		$section->add_field('container', 'Container Name (required)', 'field_input', array('description' => 'The container to store files in.'));
-		$section->add_field('root_url', 'Root URL (required)', 'field_input', array('description' => 'The root URL to the container without a trailing slash.'));
-		$section->add_field('file_extensions', 'File Extensions (required)', 'field_input');
-		$section->add_field('enable_debug', 'Enable Debugging?', 'field_checkbox', array('description' => 'Enable error_log() to log upload/delete actions.'));
-
-	}
-
-	/**
-	 * callback to display submenu_external
-	 *
-	 * @return void
-	 */
-	function submenu_general() {
-		?>
-		<div class="wrap">
-			<h2>Cloudfiles CDN Settings</h2>
-			<form method="post" action="options.php">
-				<?php settings_fields(self::OPTION_GENERAL); ?>
-				<?php do_settings_sections($this->submenu_general); ?>
-				<p class="submit">
-					<input name="Submit" type="submit" class="button-primary" value="<?php esc_attr_e('Save Changes'); ?>" />
-				</p>
-			</form>
-		</div>
-		<?php
-	}
-
-	/**
-	 * delete old BP avatars on save
-	 *
-	 * @param string $user_id not used
-	 * @param string $old the path to the file being deleted
-	 * @return void
-	 */
-	public function catch_bp_core_avatar_save($user_id, $old) {
-		$files = array();
-		// this will be -avatar2
-		$files[] = str_replace(ABSPATH, '', $old);
-		// get -avatar1 also
-		$files[] = str_replace('-avatar2', '-avatar1', $files[0]);
-
-		foreach ($files as $file) {
-			if (self::get_setting('enable_debug'))
-				error_log("DELETING OLD BP AVATAR: $file");
-
-			$this->delete_file($file);
-		}
-	}
-
-	/**
-	 * when BP avatars are cropped, catch the cropped sizes and upload
-	 *
-	 * @param string $files
-	 * @return array the original file array
-	 */
-	public function catch_bp_core_avatar_cropstore($files) {
-		foreach ((array) $files as $file) {
-			$relative_file_path = str_replace(ABSPATH, '', $file);
-			$file_type = wp_check_filetype($file);
-
-			if (self::get_setting('enable_debug'))
-				error_log("UPLOADING BP AVATAR: $relative_file_path");
-			$this->upload_file($file, $file_type['type'], $relative_file_path);
-		}
-
-		return $files;
-	}
-
-	/**
-	 * go grab the already generated intermediate sizes and upload
-	 *
-	 * @param string $metadata
-	 * @return array updated metadata
-	 */
-	public function catch_wp_generate_attachment_metadata($metadata) {
-		//error_log("WP_GENERATE_ATTACHMENT_METADATA: " . var_export($metadata, true));
-		$upload_dir = wp_upload_dir();
-		$upload_path = trailingslashit($upload_dir['path']);
-		$sizes = $metadata['sizes'];
-
-		foreach ((array) $sizes as $size => $size_data ) {
-			$file = $size_data['file'];
-			if (is_multisite()) {
-				$relative_file_path = self::get_blog_path() . 'files' . trailingslashit($upload_dir['subdir']) . $file;
-			} else {
-				$upload_dir = wp_upload_dir();
-				$relative_file_path = str_replace(ABSPATH, '', $upload_dir['basedir']) . trailingslashit($upload_dir['subdir']) . $file;
-			}
-			$file_type = wp_check_filetype($file);
-			if (self::get_setting('enable_debug'))
-				error_log("UPLOADING INTERMEDIATE SIZE: $relative_file_path");
-			$this->upload_file($upload_path . $file, $file_type['type'], $relative_file_path);
-		}
-
-		return $metadata;
-	}
-
-	/**
-	 * get a local filename from a CDN URL
-	 *
-	 * @param string $url
-	 * @return string filename
-	 */
-	private function get_local_filename($url) {
-		return ABSPATH . str_replace(trailingslashit(self::get_setting('root_url')), '', $url);
-	}
-
-	/**
-	 * Filter to handle wp_handle_upload for uploaded files. Logs any errors.
-	 *
-	 * @param string $upload
-	 * @return void
-	 */
-	public function catch_wp_handle_upload($upload) {
-		// check for buddypress avatar upload and don't upload since it resizes and deletes this one
-		if (function_exists('bp_core_setup_globals') && strpos($upload['file'], '/avatars/') !== false) {
-			return $upload;
-		}
-
-		$blog_path = $this->get_blog_path();
-		$relative_url = $blog_path . $this->remove_site_url($upload['url']);
-		if (self::get_setting('enable_debug'))
-			error_log("UPLOADING: $relative_url");
-
-		// upload file
-		if (!$this->upload_file($upload['file'], $upload['type'], $relative_url)) {
-			error_log("[CloudfilesCdn] Error uploading file: $relative_url");
-			return $upload;
-		}
-
-		return $upload;
-	}
-
-	/**
-	 * Filter to handle wp_delete_file for deleted files. Deletes the file
-	 * from the CDN.
-	 *
-	 * @param string $file
-	 * @return string the original file path
-	 */
-	public function catch_wp_delete_file($file) {
-		//error_log("WP_DELETE_FILE: " . var_export($file, true));
-		if (is_multisite()) {
-			// not sure if this is needed or not...
-			if (strpos($file, 'blogs.dir')) {
-				$parts = explode('files/', $file);
-				$file = $parts[1];
-			}
-			$file = $this->get_blog_path() . 'files/' . $file;
-		}
-
-		// delete the file from the CDN
-		if (self::get_setting('enable_debug'))
-			error_log("DELETING FILE: $file");
-		$this->delete_file(str_replace(ABSPATH, '', $file));
-
-		return $file;
-	}
-
-	/**
-	 * get the blog's path without the leading slash
-	 *
-	 * @return string
-	 */
-	private function get_blog_path() {
-		global $blog_id;
-		$blog_path = '';
-		if ((int) $blog_id !== 1) {
-			$blog_details = get_blog_details($blog_id);
-			$blog_path = $blog_details->path;
-		}
-
-		return ltrim($blog_path, '/');
-	}
-
-	/**
-	 * Get the relative filename. The filename from the wp_delete_file filter
-	 * will either have the file path to the WP_UPLOAD_DIR prepended to the cdn'd file
-	 * url or it will be the path relative to the WP_UPLOAD_DIR
-	 *
-	 * @param string $file
-	 * @return void
-	 */
-	private function get_relative_file($file) {
-		$cont_url = self::get_setting('root_url');
-		if (strpos($file, $cont_url) !== false) {
-			if ($file_parts = explode(trailingslashit(self::get_setting('root_url')), $file)) {
-				// prepended w/bad upload path (e.g. http://c0002127.cdn1.cloudfiles.rackspacecloud.com/wp-content/uploads/2010/07/http://c0002127.cdn1.cloudfiles.rackspacecloud.com/wp-content/uploads/2010/07/653106995_338e53fb1416-150x150.jpg)
-				if (isset($file_parts[2])) {
-					return $file_parts[2];
-				} elseif (isset($file_parts[1])) {
-					// just regular CDN url
-					return $file_parts[1];
-				}
-			}
-		}
-
-		return false;
-	}
-
-	/**
-	 * delete a file from the CDN
-	 *
-	 * @param string $file relative filename
-	 * @return bool true on success, false on failure
-	 */
-	private function delete_file($file) {
-		require_once(trailingslashit(dirname(__FILE__)) . 'cloudfiles/cloudfiles.php');
-		$auth = new CF_Authentication(self::get_setting('username'), self::get_setting('api_key'));
-
-		try {
-			$auth->authenticate();
-		} catch (Exception $e) {
-			error_log(sprintf("[CloudfilesCdn] Error authenticating to Cloudfiles: %s", $e->getMessage()));
-			return false;
-		}
-
-		$conn = new CF_Connection($auth);
-		$container = $conn->get_container(self::get_setting('container'));
-
-		try {
-			$obj = $container->get_object($file);
-			$container->delete_object($obj);
-		} catch (Exception $e) {
-			error_log(sprintf("[CloudfilesCdn] Error deleting file '%s' from Cloudfiles: %s", $file, $e->getMessage()));
-		}
-
-		if (self::get_setting('enable_debug'))
-			error_log("DELETED FILE: $file");
-
-		return true;
-	}
-
-
-
-	/**
-	 * Update the attachement URL if the attached file is on the CDN
-	 *
-	 * @param string $url
-	 * @param string $post_id
-	 * @return string original or updated URL
-	 */
-	public function cdn_attachment_url($url, $post_id) {
-		if ($file = get_post_meta($post_id, '_wp_attached_file', true)) {
-			if (strpos($file, self::get_setting('root_url')) !== false) {
-				return $file;
-			}
-		}
-
-		return $url;
-	}
-
-	/**
-	 * Upload a file to cloudfiles
-	 *
-	 * @param string $file the file's path
-	 * @param string $file_type the file's mime type
-	 * @param string $file_url the file's site-relative URL
-	 * @return bool true on succes, false on fail
-	 */
-	private function upload_file($file, $file_type, $file_url) {
-		require_once(trailingslashit(dirname(__FILE__)) . 'cloudfiles/cloudfiles.php');
-		$auth = new CF_Authentication(self::get_setting('username'), self::get_setting('api_key'));
-
-		try {
-			$auth->authenticate();
-		} catch (Exception $e) {
-			error_log(sprintf("[CloudfilesCdn] Error authenticating to Cloudfiles: %s", $e->getMessage()));
-			return false;
-		}
-
-		$conn = new CF_Connection($auth);
-		$container = $conn->get_container(self::get_setting('container'));
-
-		$obj = $container->create_object($file_url);
-		$obj->content_type = $file_type;
-
-		try {
-			$obj->load_from_filename($file);
-		} catch (Exception $e) {
-			error_log(sprintf("[CloudfilesCdn] Error uploading '%s' to Cloudfiles: %s", $file, $e->getMessage()));
-			return false;
-		}
-
-		if (self::get_setting('enable_debug'))
-			error_log("UPLOADED: $file, $file_type, $file_url");
-
-		return true;
-	}
-
-	/**
-	 * Get a site-relative url without a leading / from an absolute URL containing the siteurl
-	 *
-	 * @param string $absolute_url
-	 * @return string relative url
-	 */
-	private function remove_site_url($absolute_url) {
-		return str_replace(trailingslashit(get_option('siteurl')), '', $absolute_url);
-	}
-
-	private function remove_cdn_url($url) {
-		return str_replace(trailingslashit(self::get_setting('root_url')), '', $url);
-	}
-
-}
-add_action('init', array(new CloudfilesCdn(), 'initialize'));
-
-class CDN_Rewrite {
-
-	private $file_extensions;
-	private $blog_details;
-	private $cdn_root_url;
-
-	public function __construct() {
-		$this->file_extensions = CloudfilesCdn::get_setting('file_extensions');
-		$this->cdn_root_url = untrailingslashit(CloudfilesCdn::get_setting('root_url'));
-	}
-
-	/**
-	 * Initializes class and registers hooks
-	 *
-	 */
-	public function initialize() {
-		if('/' != $this->cdn_root_url) {
-			add_action('template_redirect', array($this, 'start_buffer'), 1);
-		}
-	}
-
-	/**
-	 * start output buffering.
-	 *
-	 */
-	public function start_buffer() {
-		ob_start(array($this, 'filter_urls'));
-	}
-
-	/**
-	 * Callback for output buffering.  Search content for urls to replace
-	 *
-	 * @param string $content
-	 * @return string
-	 */
-	public function filter_urls($content) {
-		$root_url = $this->get_site_root_url();
-		$regex = '#(?<=[(\"\'])'.quotemeta($root_url).'(?:(/[^\"\')]+\.('.$this->file_extensions.')))#';
-
-		$content = preg_replace_callback($regex, array($this, 'url_rewrite'), $content);
-
-		return $content;
-	}
-
-	/**
-	 * Returns the root url of the current site
-	 *
-	 * @return string
-	 */
-	public function get_site_root_url() {
-		if(is_multisite() && !is_subdomain_install()) {
-			$root_blog = get_blog_details(1);
-			$root_url = $root_blog->siteurl;
-		} else {
-			$root_url = site_url();
-		}
-		return $root_url;
-	}
-
-	/**
-	 * Returns the details for the current blog
-	 *
-	 * @return object
-	 */
-	public function get_this_blog_details() {
-		if(!isset($this->blog_details)) {
-			global $blog_id;
-			$this->blog_details = get_blog_details($blog_id);
-		}
-		return $this->blog_details;
-	}
-
-	/**
-	 * Callback for url preg_replace_callback.  Returns corrected URL
-	 *
-	 * @param array $match
-	 * @return string
-	 */
-	public function url_rewrite($match) {
-		global $blog_id;
-		$path = $match[1];
-		//if is subfolder install and isn't root blog and path starts with site_url and isnt uploads dir
-		if(is_multisite() && !is_subdomain_install() && $blog_id !== 1) {
-			$bloginfo = $this->get_this_blog_details();
-			if((0 === strpos($path, $bloginfo->path)) && (0 !== strpos($path, $bloginfo->path.'files/'))) {
-				$path = '/'.substr($path, strlen($bloginfo->path));
-			}
-		}
-		return $this->cdn_root_url . $path;
-	}
-}
-add_action('init', array(new CDN_Rewrite(), 'initialize'));
-
-class CDN_VersionAssets {
-
-	private $default_version = '';
-	private $root_url;
-
-	public function __construct() {
-		$this->root_url = site_url();
-	}
-
-	public function initialize() {
-		add_filter('style_loader_src', array($this, 'replace_version'), 10);
-		add_filter('script_loader_src', array($this, 'replace_version'), 10);
-		add_filter('style_loader_src', array($this, 'replace_version'), 10);
-	}
-
-	public function on_template_redirect() {
-		$this->default_version = @filemtime(get_stylesheet_directory().'/style.css');
-	}
-
-	private function get_version($url) {
-		if(0 === strpos($url, $this->root_url)) {
-			$parts = parse_url($url);
-			$file_path = str_replace(site_url('/'), ABSPATH, $parts['scheme'].'://'.$parts['host'].$parts['path']);
-			if(	!($version = @filemtime($file_path)) ) {
-				$version = $this->default_version;
-			}
-			return $version;
-		}
-		return false;
-	}
-
-	public function replace_version($src) {
-		if( $new_version = $this->get_version($src) ) {
-			return add_query_arg('ver', $new_version, $src);
-		}
-		return $src;
-	}
-}
-add_action('init', array(new CDN_VersionAssets(), 'initialize'));
\ No newline at end of file
diff --git a/cloudfiles/cloudfiles.php b/cloudfiles/cloudfiles.php
deleted file mode 100644
index 87486e2..0000000
--- a/cloudfiles/cloudfiles.php
+++ /dev/null
@@ -1,2168 +0,0 @@
-<?php
-/**
- * This is the PHP Cloud Files API.
- *
- * <code>
- *   # Authenticate to Cloud Files.  The default is to automatically try
- *   # to re-authenticate if an authentication token expires.
- *   #
- *   # NOTE: Some versions of cURL include an outdated certificate authority (CA)
- *   #       file.  This API ships with a newer version obtained directly from
- *   #       cURL's web site (http://curl.haxx.se).  To use the newer CA bundle,
- *   #       call the CF_Authentication instance's 'ssl_use_cabundle()' method.
- *   #
- *   $auth = new CF_Authentication($username, $api_key);
- *   # $auth->ssl_use_cabundle();  # bypass cURL's old CA bundle
- *   $auth->authenticate();
- *
- *   # Establish a connection to the storage system
- *   #
- *   # NOTE: Some versions of cURL include an outdated certificate authority (CA)
- *   #       file.  This API ships with a newer version obtained directly from
- *   #       cURL's web site (http://curl.haxx.se).  To use the newer CA bundle,
- *   #       call the CF_Connection instance's 'ssl_use_cabundle()' method.
- *   #
- *   $conn = new CF_Connection($auth);
- *   # $conn->ssl_use_cabundle();  # bypass cURL's old CA bundle
- *
- *   # Create a remote Container and storage Object
- *   #
- *   $images = $conn->create_container("photos");
- *   $bday = $images->create_object("first_birthday.jpg");
- *
- *   # Upload content from a local file by streaming it.  Note that we use
- *   # a "float" for the file size to overcome PHP's 32-bit integer limit for
- *   # very large files.
- *   #
- *   $fname = "/home/user/photos/birthdays/birthday1.jpg";  # filename to upload
- *   $size = (float) sprintf("%u", filesize($fname));
- *   $fp = open($fname, "r");
- *   $bday->write($fp, $size);
- *
- *   # Or... use a convenience function instead
- *   #
- *   $bday->load_from_filename("/home/user/photos/birthdays/birthday1.jpg");
- *
- *   # Now, publish the "photos" container to serve the images by CDN.
- *   # Use the "$uri" value to put in your web pages or send the link in an
- *   # email message, etc.
- *   #
- *   $uri = $images->make_public();
- *
- *   # Or... print out the Object's public URI
- *   #
- *   print $bday->public_uri();
- * </code>
- *
- * See the included tests directory for additional sample code.
- *
- * Requres PHP 5.x (for Exceptions and OO syntax) and PHP's cURL module.
- *
- * It uses the supporting "cloudfiles_http.php" module for HTTP(s) support and
- * allows for connection re-use and streaming of content into/out of Cloud Files
- * via PHP's cURL module.
- *
- * See COPYING for license information.
- *
- * @author Eric "EJ" Johnson <ej@racklabs.com>
- * @copyright Copyright (c) 2008, Rackspace US, Inc.
- * @package php-cloudfiles
- */
-
-/**
- */
-require_once("cloudfiles_exceptions.php");
-require("cloudfiles_http.php");
-define("DEFAULT_CF_API_VERSION", 1);
-define("MAX_CONTAINER_NAME_LEN", 256);
-define("MAX_OBJECT_NAME_LEN", 1024);
-define("MAX_OBJECT_SIZE", 5*1024*1024*1024+1); # bigger than S3! ;-)
-
-/**
- * Class for handling Cloud Files Authentication, call it's {@link authenticate()}
- * method to obtain authorized service urls and an authentication token.
- *
- * Example:
- * <code>
- * # Create the authentication instance
- * #
- * $auth = new CF_Authentication("username", "api_key");
- *
- * # NOTE: Some versions of cURL include an outdated certificate authority (CA)
- * #       file.  This API ships with a newer version obtained directly from
- * #       cURL's web site (http://curl.haxx.se).  To use the newer CA bundle,
- * #       call the CF_Authentication instance's 'ssl_use_cabundle()' method.
- * #
- * # $auth->ssl_use_cabundle(); # bypass cURL's old CA bundle
- *
- * # Perform authentication request
- * #
- * $auth->authenticate();
- * </code>
- *
- * @package php-cloudfiles
- */
-class CF_Authentication
-{
-    public $dbug;
-    public $username;
-    public $api_key;
-    public $auth_host;
-    public $account;
-
-    /**
-     * Instance variables that are set after successful authentication
-     */
-    public $storage_url;
-    public $cdnm_url;
-    public $auth_token;
-
-    /**
-     * Class constructor (PHP 5 syntax)
-     *
-     * @param string $username Mosso username
-     * @param string $api_key Mosso API Access Key
-     * @param string $account <b>Deprecated</b> <i>Account name</i>
-     * @param string $auth_host <b>Deprecated</b> <i>Authentication service URI</i>
-     */
-    function __construct($username=NULL, $api_key=NULL, $account=NULL, $auth_host=NULL)
-    {
-
-        $this->dbug = False;
-        $this->username = $username;
-        $this->api_key = $api_key;
-        $this->account_name = $account;
-        $this->auth_host = $auth_host;
-
-        $this->storage_url = NULL;
-        $this->cdnm_url = NULL;
-        $this->auth_token = NULL;
-
-        $this->cfs_http = new CF_Http(DEFAULT_CF_API_VERSION);
-    }
-
-    /**
-     * Use the Certificate Authority bundle included with this API
-     *
-     * Most versions of PHP with cURL support include an outdated Certificate
-     * Authority (CA) bundle (the file that lists all valid certificate
-     * signing authorities).  The SSL certificates used by the Cloud Files
-     * storage system are perfectly valid but have been created/signed by
-     * a CA not listed in these outdated cURL distributions.
-     *
-     * As a work-around, we've included an updated CA bundle obtained
-     * directly from cURL's web site (http://curl.haxx.se).  You can direct
-     * the API to use this CA bundle by calling this method prior to making
-     * any remote calls.  The best place to use this method is right after
-     * the CF_Authentication instance has been instantiated.
-     *
-     * You can specify your own CA bundle by passing in the full pathname
-     * to the bundle.  You can use the included CA bundle by leaving the
-     * argument blank.
-     *
-     * @param string $path Specify path to CA bundle (default to included)
-     */
-    function ssl_use_cabundle($path=NULL)
-    {
-        $this->cfs_http->ssl_use_cabundle($path);
-    }
-
-    /**
-     * Attempt to validate Username/API Access Key
-     *
-     * Attempts to validate credentials with the authentication service.  It
-     * either returns <kbd>True</kbd> or throws an Exception.  Accepts a single
-     * (optional) argument for the storage system API version.
-     *
-     * Example:
-     * <code>
-     * # Create the authentication instance
-     * #
-     * $auth = new CF_Authentication("username", "api_key");
-     *
-     * # Perform authentication request
-     * #
-     * $auth->authenticate();
-     * </code>
-     *
-     * @param string $version API version for Auth service (optional)
-     * @return boolean <kbd>True</kbd> if successfully authenticated
-     * @throws AuthenticationException invalid credentials
-     * @throws InvalidResponseException invalid response
-     */
-    function authenticate($version=DEFAULT_CF_API_VERSION)
-    {
-        list($status,$reason,$surl,$curl,$atoken) = 
-                $this->cfs_http->authenticate($this->username, $this->api_key,
-                $this->account_name, $this->auth_host);
-
-        if ($status == 401) {
-            throw new AuthenticationException("Invalid username or access key.");
-        }
-        if ($status != 204) {
-            throw new InvalidResponseException(
-                "Unexpected response (".$status."): ".$reason);
-        }
-
-        if (!($surl || $curl) || !$atoken) {
-            throw new InvalidResponseException(
-                "Expected headers missing from auth service.");
-        }
-        $this->storage_url = $surl;
-        $this->cdnm_url = $curl;
-        $this->auth_token = $atoken;
-        return True;
-    }
-	/**
-	 * Use Cached Token and Storage URL's rather then grabbing from the Auth System
-         *
-         * Example:
- 	 * <code>
-         * #Create an Auth instance
-         * $auth = new CF_Authentication();
-         * #Pass Cached URL's and Token as Args
-	 * $auth->load_cached_credentials("auth_token", "storage_url", "cdn_management_url");
-         * </code>
-	 * 
-	 * @param string $auth_token A Cloud Files Auth Token (Required)
-         * @param string $storage_url The Cloud Files Storage URL (Required)
-         * @param string $cdnm_url CDN Management URL (Required)
-         * @return boolean <kbd>True</kbd> if successful 
-	 * @throws SyntaxException If any of the Required Arguments are missing
-         */
-	function load_cached_credentials($auth_token, $storage_url, $cdnm_url)
-    {
-        if(!$storage_url || !$cdnm_url)
-        {
-                throw new SyntaxException("Missing Required Interface URL's!");
-                return False;
-        }
-        if(!$auth_token)
-        {
-                throw new SyntaxException("Missing Auth Token!");
-                return False;
-        }
-
-        $this->storage_url = $storage_url;
-        $this->cdnm_url    = $cdnm_url;
-        $this->auth_token  = $auth_token;
-        return True;
-    }
-	/**
-         * Grab Cloud Files info to be Cached for later use with the load_cached_credentials method.
-         *
-	 * Example:
-         * <code>
-         * #Create an Auth instance
-         * $auth = new CF_Authentication("UserName","API_Key");
-         * $auth->authenticate();
-         * $array = $auth->export_credentials();
-         * </code>
-         * 
-	 * @return array of url's and an auth token.
-         */
-    function export_credentials()
-    {
-        $arr = array();
-        $arr['storage_url'] = $this->storage_url;
-        $arr['cdnm_url']    = $this->cdnm_url;
-        $arr['auth_token']  = $this->auth_token;
-
-        return $arr;
-    }
-
-
-    /**
-     * Make sure the CF_Authentication instance has authenticated.
-     *
-     * Ensures that the instance variables necessary to communicate with
-     * Cloud Files have been set from a previous authenticate() call.
-     *
-     * @return boolean <kbd>True</kbd> if successfully authenticated
-     */
-    function authenticated()
-    {
-        if (!($this->storage_url || $this->cdnm_url) || !$this->auth_token) {
-            return False;
-        }
-        return True;
-    }
-
-    /**
-     * Toggle debugging - set cURL verbose flag
-     */
-    function setDebug($bool)
-    {
-        $this->dbug = $bool;
-        $this->cfs_http->setDebug($bool);
-    }
-}
-
-/**
- * Class for establishing connections to the Cloud Files storage system.
- * Connection instances are used to communicate with the storage system at
- * the account level; listing and deleting Containers and returning Container
- * instances.
- *
- * Example:
- * <code>
- * # Create the authentication instance
- * #
- * $auth = new CF_Authentication("username", "api_key");
- *
- * # Perform authentication request
- * #
- * $auth->authenticate();
- *
- * # Create a connection to the storage/cdn system(s) and pass in the
- * # validated CF_Authentication instance.
- * #
- * $conn = new CF_Connection($auth);
- *
- * # NOTE: Some versions of cURL include an outdated certificate authority (CA)
- * #       file.  This API ships with a newer version obtained directly from
- * #       cURL's web site (http://curl.haxx.se).  To use the newer CA bundle,
- * #       call the CF_Authentication instance's 'ssl_use_cabundle()' method.
- * #
- * # $conn->ssl_use_cabundle(); # bypass cURL's old CA bundle
- * </code>
- *
- * @package php-cloudfiles
- */
-class CF_Connection
-{
-    public $dbug;
-    public $cfs_http;
-    public $cfs_auth;
-
-    /**
-     * Pass in a previously authenticated CF_Authentication instance.
-     *
-     * Example:
-     * <code>
-     * # Create the authentication instance
-     * #
-     * $auth = new CF_Authentication("username", "api_key");
-     *
-     * # Perform authentication request
-     * #
-     * $auth->authenticate();
-     *
-     * # Create a connection to the storage/cdn system(s) and pass in the
-     * # validated CF_Authentication instance.
-     * #
-     * $conn = new CF_Connection($auth);
-     *
-     * # If you are connecting via Rackspace servers and have access
-     * # to the servicenet network you can set the $servicenet to True
-     * # like this.
-     *
-     * $conn = new CF_Connection($auth, $servicenet=True);
-     *
-     * </code>
-     *
-     * If the environement variable RACKSPACE_SERVICENET is defined it will
-     * force to connect via the servicenet.
-     *
-     * @param obj $cfs_auth previously authenticated CF_Authentication instance
-     * @param boolean $servicenet enable/disable access via Rackspace servicenet.
-     * @throws AuthenticationException not authenticated
-     */
-    function __construct($cfs_auth, $servicenet=False)
-    {
-        if (isset($_ENV['RACKSPACE_SERVICENET']))
-            $servicenet=True;
-        $this->cfs_http = new CF_Http(DEFAULT_CF_API_VERSION);
-        $this->cfs_auth = $cfs_auth;
-        if (!$this->cfs_auth->authenticated()) {
-            $e = "Need to pass in a previously authenticated ";
-            $e .= "CF_Authentication instance.";
-            throw new AuthenticationException($e);
-        }
-        $this->cfs_http->setCFAuth($this->cfs_auth, $servicenet=$servicenet);
-        $this->dbug = False;
-    }
-
-    /**
-     * Toggle debugging of instance and back-end HTTP module
-     *
-     * @param boolean $bool enable/disable cURL debugging
-     */
-    function setDebug($bool)
-    {
-        $this->dbug = (boolean) $bool;
-        $this->cfs_http->setDebug($this->dbug);
-    }
-
-    /**
-     * Close a connection
-     *
-     * Example:
-     * <code>
-     *  
-     * $conn->close();
-     * 
-     * </code>
-     *
-     * Will close all current cUrl active connections.
-     * 
-     */
-    public function close()
-    {
-        $this->cfs_http->close();
-    }
-    
-    /**
-     * Cloud Files account information
-     *
-     * Return an array of two floats (since PHP only supports 32-bit integers);
-     * number of containers on the account and total bytes used for the account.
-     *
-     * Example:
-     * <code>
-     * # ... authentication code excluded (see previous examples) ...
-     * #
-     * $conn = new CF_Authentication($auth);
-     *
-     * list($quantity, $bytes) = $conn->get_info();
-     * print "Number of containers: " . $quantity . "\n";
-     * print "Bytes stored in container: " . $bytes . "\n";
-     * </code>
-     *
-     * @return array (number of containers, total bytes stored)
-     * @throws InvalidResponseException unexpected response
-     */
-    function get_info()
-    {
-        list($status, $reason, $container_count, $total_bytes) =
-                $this->cfs_http->head_account();
-        #if ($status == 401 && $this->_re_auth()) {
-        #    return $this->get_info();
-        #}
-        if ($status < 200 || $status > 299) {
-            throw new InvalidResponseException(
-                "Invalid response (".$status."): ".$this->cfs_http->get_error());
-        }
-        return array($container_count, $total_bytes);
-    }
-
-    /**
-     * Create a Container
-     *
-     * Given a Container name, return a Container instance, creating a new
-     * remote Container if it does not exit.
-     *
-     * Example:
-     * <code>
-     * # ... authentication code excluded (see previous examples) ...
-     * #
-     * $conn = new CF_Authentication($auth);
-     *
-     * $images = $conn->create_container("my photos");
-     * </code>
-     *
-     * @param string $container_name container name
-     * @return CF_Container
-     * @throws SyntaxException invalid name
-     * @throws InvalidResponseException unexpected response
-     */
-    function create_container($container_name=NULL)
-    {
-        if ($container_name != "0" and !isset($container_name))
-            throw new SyntaxException("Container name not set.");
-        
-        if (!isset($container_name) or $container_name == "") 
-            throw new SyntaxException("Container name not set.");
-
-        if (strpos($container_name, "/") !== False) {
-            $r = "Container name '".$container_name;
-            $r .= "' cannot contain a '/' character.";
-            throw new SyntaxException($r);
-        }
-        if (strlen($container_name) > MAX_CONTAINER_NAME_LEN) {
-            throw new SyntaxException(sprintf(
-                "Container name exeeds %d bytes.",
-                MAX_CONTAINER_NAME_LEN));
-        }
-
-        $return_code = $this->cfs_http->create_container($container_name);
-        if (!$return_code) {
-            throw new InvalidResponseException("Invalid response ("
-                . $return_code. "): " . $this->cfs_http->get_error());
-        }
-        #if ($status == 401 && $this->_re_auth()) {
-        #    return $this->create_container($container_name);
-        #}
-        if ($return_code != 201 && $return_code != 202) {
-            throw new InvalidResponseException(
-                "Invalid response (".$return_code."): "
-                    . $this->cfs_http->get_error());
-        }
-        return new CF_Container($this->cfs_auth, $this->cfs_http, $container_name);
-    }
-
-    /**
-     * Delete a Container
-     *
-     * Given either a Container instance or name, remove the remote Container.
-     * The Container must be empty prior to removing it.
-     *
-     * Example:
-     * <code>
-     * # ... authentication code excluded (see previous examples) ...
-     * #
-     * $conn = new CF_Authentication($auth);
-     *
-     * $conn->delete_container("my photos");
-     * </code>
-     *
-     * @param string|obj $container container name or instance
-     * @return boolean <kbd>True</kbd> if successfully deleted
-     * @throws SyntaxException missing proper argument
-     * @throws InvalidResponseException invalid response
-     * @throws NonEmptyContainerException container not empty
-     * @throws NoSuchContainerException remote container does not exist
-     */
-    function delete_container($container=NULL)
-    {
-        $container_name = NULL;
-        
-        if (is_object($container)) {
-            if (get_class($container) == "CF_Container") {
-                $container_name = $container->name;
-            }
-        }
-        if (is_string($container)) {
-            $container_name = $container;
-        }
-
-        if ($container_name != "0" and !isset($container_name))
-            throw new SyntaxException("Must specify container object or name.");
-
-        $return_code = $this->cfs_http->delete_container($container_name);
-
-        if (!$return_code) {
-            throw new InvalidResponseException("Failed to obtain http response");
-        }
-        #if ($status == 401 && $this->_re_auth()) {
-        #    return $this->delete_container($container);
-        #}
-        if ($return_code == 409) {
-            throw new NonEmptyContainerException(
-                "Container must be empty prior to removing it.");
-        }
-        if ($return_code == 404) {
-            throw new NoSuchContainerException(
-                "Specified container did not exist to delete.");
-        }
-        if ($return_code != 204) {
-            throw new InvalidResponseException(
-                "Invalid response (".$return_code."): "
-                . $this->cfs_http->get_error());
-        }
-        return True;
-    }
-
-    /**
-     * Return a Container instance
-     *
-     * For the given name, return a Container instance if the remote Container
-     * exists, otherwise throw a Not Found exception.
-     *
-     * Example:
-     * <code>
-     * # ... authentication code excluded (see previous examples) ...
-     * #
-     * $conn = new CF_Authentication($auth);
-     *
-     * $images = $conn->get_container("my photos");
-     * print "Number of Objects: " . $images->count . "\n";
-     * print "Bytes stored in container: " . $images->bytes . "\n";
-     * </code>
-     *
-     * @param string $container_name name of the remote Container
-     * @return container CF_Container instance
-     * @throws NoSuchContainerException thrown if no remote Container
-     * @throws InvalidResponseException unexpected response
-     */
-    function get_container($container_name=NULL)
-    {
-        list($status, $reason, $count, $bytes) =
-                $this->cfs_http->head_container($container_name);
-        #if ($status == 401 && $this->_re_auth()) {
-        #    return $this->get_container($container_name);
-        #}
-        if ($status == 404) {
-            throw new NoSuchContainerException("Container not found.");
-        }
-        if ($status < 200 || $status > 299) {
-            throw new InvalidResponseException(
-                "Invalid response: ".$this->cfs_http->get_error());
-        }
-        return new CF_Container($this->cfs_auth, $this->cfs_http,
-            $container_name, $count, $bytes);
-    }
-
-    /**
-     * Return array of Container instances
-     *
-     * Return an array of CF_Container instances on the account.  The instances
-     * will be fully populated with Container attributes (bytes stored and
-     * Object count)
-     *
-     * Example:
-     * <code>
-     * # ... authentication code excluded (see previous examples) ...
-     * #
-     * $conn = new CF_Authentication($auth);
-     *
-     * $clist = $conn->get_containers();
-     * foreach ($clist as $cont) {
-     *     print "Container name: " . $cont->name . "\n";
-     *     print "Number of Objects: " . $cont->count . "\n";
-     *     print "Bytes stored in container: " . $cont->bytes . "\n";
-     * }
-     * </code>
-     *
-     * @return array An array of CF_Container instances
-     * @throws InvalidResponseException unexpected response
-     */
-    function get_containers($limit=0, $marker=NULL)
-    {
-        list($status, $reason, $container_info) =
-                $this->cfs_http->list_containers_info($limit, $marker);
-        #if ($status == 401 && $this->_re_auth()) {
-        #    return $this->get_containers();
-        #}
-        if ($status < 200 || $status > 299) {
-            throw new InvalidResponseException(
-                "Invalid response: ".$this->cfs_http->get_error());
-        }
-        $containers = array();
-        foreach ($container_info as $name => $info) {
-            $containers[] = new CF_Container($this->cfs_auth, $this->cfs_http,
-                $info['name'], $info["count"], $info["bytes"], False);
-        }
-        return $containers;
-    }
-
-    /**
-     * Return list of remote Containers
-     *
-     * Return an array of strings containing the names of all remote Containers.
-     *
-     * Example:
-     * <code>
-     * # ... authentication code excluded (see previous examples) ...
-     * #
-     * $conn = new CF_Authentication($auth);
-     *
-     * $container_list = $conn->list_containers();
-     * print_r($container_list);
-     * Array
-     * (
-     *     [0] => "my photos",
-     *     [1] => "my docs"
-     * )
-     * </code>
-     *
-     * @param integer $limit restrict results to $limit Containers
-     * @param string $marker return results greater than $marker
-     * @return array list of remote Containers
-     * @throws InvalidResponseException unexpected response
-     */
-    function list_containers($limit=0, $marker=NULL)
-    {
-        list($status, $reason, $containers) =
-            $this->cfs_http->list_containers($limit, $marker);
-        #if ($status == 401 && $this->_re_auth()) {
-        #    return $this->list_containers($limit, $marker);
-        #}
-        if ($status < 200 || $status > 299) {
-            throw new InvalidResponseException(
-                "Invalid response (".$status."): ".$this->cfs_http->get_error());
-        }
-        return $containers;
-    }
-
-    /**
-     * Return array of information about remote Containers
-     *
-     * Return a nested array structure of Container info.
-     *
-     * Example:
-     * <code>
-     * # ... authentication code excluded (see previous examples) ...
-     * #
-     *
-     * $container_info = $conn->list_containers_info();
-     * print_r($container_info);
-     * Array
-     * (
-     *     ["my photos"] =>
-     *         Array
-     *         (
-     *             ["bytes"] => 78,
-     *             ["count"] => 2
-     *         )
-     *     ["docs"] =>
-     *         Array
-     *         (
-     *             ["bytes"] => 37323,
-     *             ["count"] => 12
-     *         )
-     * )
-     * </code>
-     *
-     * @param integer $limit restrict results to $limit Containers
-     * @param string $marker return results greater than $marker
-     * @return array nested array structure of Container info
-     * @throws InvalidResponseException unexpected response
-     */
-    function list_containers_info($limit=0, $marker=NULL)
-    {
-        list($status, $reason, $container_info) = 
-                $this->cfs_http->list_containers_info($limit, $marker);
-        #if ($status == 401 && $this->_re_auth()) {
-        #    return $this->list_containers_info($limit, $marker);
-        #}
-        if ($status < 200 || $status > 299) {
-            throw new InvalidResponseException(
-                "Invalid response (".$status."): ".$this->cfs_http->get_error());
-        }
-        return $container_info;
-    }
-
-    /**
-     * Return list of Containers that have been published to the CDN.
-     *
-     * Return an array of strings containing the names of published Containers.
-     * Note that this function returns the list of any Container that has
-     * ever been CDN-enabled regardless of it's existence in the storage
-     * system.
-     *
-     * Example:
-     * <code>
-     * # ... authentication code excluded (see previous examples) ...
-     * #
-     * $conn = new CF_Authentication($auth);
-     *
-     * $public_containers = $conn->list_public_containers();
-     * print_r($public_containers);
-     * Array
-     * (
-     *     [0] => "images",
-     *     [1] => "css",
-     *     [2] => "javascript"
-     * )
-     * </code>
-     *
-     * @return array list of published Container names
-     * @throws InvalidResponseException unexpected response
-     */
-    function list_public_containers()
-    {
-        list($status, $reason, $containers) =
-                $this->cfs_http->list_cdn_containers();
-        #if ($status == 401 && $this->_re_auth()) {
-        #    return $this->list_public_containers();
-        #}
-        if ($status < 200 || $status > 299) {
-            throw new InvalidResponseException(
-                "Invalid response (".$status."): ".$this->cfs_http->get_error());
-        }
-        return $containers;
-    }
-
-    /**
-     * Set a user-supplied callback function to report download progress
-     *
-     * The callback function is used to report incremental progress of a data
-     * download functions (e.g. $container->list_objects(), $obj->read(), etc).
-     * The specified function will be periodically called with the number of
-     * bytes transferred until the entire download is complete.  This callback
-     * function can be useful for implementing "progress bars" for large
-     * downloads.
-     *
-     * The specified callback function should take a single integer parameter.
-     *
-     * <code>
-     * function read_callback($bytes_transferred) {
-     *     print ">> downloaded " . $bytes_transferred . " bytes.\n";
-     *     # ... do other things ...
-     *     return;
-     * }
-     *
-     * $conn = new CF_Connection($auth_obj);
-     * $conn->set_read_progress_function("read_callback");
-     * print_r($conn->list_containers());
-     *
-     * # output would look like this:
-     * #
-     * >> downloaded 10 bytes.
-     * >> downloaded 11 bytes.
-     * Array
-     * (
-     *      [0] => fuzzy.txt
-     *      [1] => space name
-     * )
-     * </code>
-     *
-     * @param string $func_name the name of the user callback function
-     */
-    function set_read_progress_function($func_name)
-    {
-        $this->cfs_http->setReadProgressFunc($func_name);
-    }
-
-    /**
-     * Set a user-supplied callback function to report upload progress
-     *
-     * The callback function is used to report incremental progress of a data
-     * upload functions (e.g. $obj->write() call).  The specified function will
-     * be periodically called with the number of bytes transferred until the
-     * entire upload is complete.  This callback function can be useful
-     * for implementing "progress bars" for large uploads/downloads.
-     *
-     * The specified callback function should take a single integer parameter.
-     *
-     * <code>
-     * function write_callback($bytes_transferred) {
-     *     print ">> uploaded " . $bytes_transferred . " bytes.\n";
-     *     # ... do other things ...
-     *     return;
-     * }
-     *
-     * $conn = new CF_Connection($auth_obj);
-     * $conn->set_write_progress_function("write_callback");
-     * $container = $conn->create_container("stuff");
-     * $obj = $container->create_object("foo");
-     * $obj->write("The callback function will be called during upload.");
-     *
-     * # output would look like this:
-     * # >> uploaded 51 bytes.
-     * #
-     * </code>
-     *
-     * @param string $func_name the name of the user callback function
-     */
-    function set_write_progress_function($func_name)
-    {
-        $this->cfs_http->setWriteProgressFunc($func_name);
-    }
-
-    /**
-     * Use the Certificate Authority bundle included with this API
-     *
-     * Most versions of PHP with cURL support include an outdated Certificate
-     * Authority (CA) bundle (the file that lists all valid certificate
-     * signing authorities).  The SSL certificates used by the Cloud Files
-     * storage system are perfectly valid but have been created/signed by
-     * a CA not listed in these outdated cURL distributions.
-     *
-     * As a work-around, we've included an updated CA bundle obtained
-     * directly from cURL's web site (http://curl.haxx.se).  You can direct
-     * the API to use this CA bundle by calling this method prior to making
-     * any remote calls.  The best place to use this method is right after
-     * the CF_Authentication instance has been instantiated.
-     *
-     * You can specify your own CA bundle by passing in the full pathname
-     * to the bundle.  You can use the included CA bundle by leaving the
-     * argument blank.
-     *
-     * @param string $path Specify path to CA bundle (default to included)
-     */
-    function ssl_use_cabundle($path=NULL)
-    {
-        $this->cfs_http->ssl_use_cabundle($path);
-    }
-
-    #private function _re_auth()
-    #{
-    #    $new_auth = new CF_Authentication(
-    #        $this->cfs_auth->username,
-    #        $this->cfs_auth->api_key,
-    #        $this->cfs_auth->auth_host,
-    #        $this->cfs_auth->account);
-    #    $new_auth->authenticate();
-    #    $this->cfs_auth = $new_auth;
-    #    $this->cfs_http->setCFAuth($this->cfs_auth);
-    #    return True;
-    #}
-}
-
-/**
- * Container operations
- *
- * Containers are storage compartments where you put your data (objects).
- * A container is similar to a directory or folder on a conventional filesystem
- * with the exception that they exist in a flat namespace, you can not create
- * containers inside of containers.
- *
- * You also have the option of marking a Container as "public" so that the
- * Objects stored in the Container are publicly available via the CDN.
- *
- * @package php-cloudfiles
- */
-class CF_Container
-{
-    public $cfs_auth;
-    public $cfs_http;
-    public $name;
-    public $object_count;
-    public $bytes_used;
-
-    public $cdn_enabled;
-    public $cdn_uri;
-    public $cdn_ttl;
-    public $cdn_log_retention;
-    public $cdn_acl_user_agent;
-    public $cdn_acl_referrer;
-
-    /**
-     * Class constructor
-     *
-     * Constructor for Container
-     *
-     * @param obj $cfs_auth CF_Authentication instance
-     * @param obj $cfs_http HTTP connection manager
-     * @param string $name name of Container
-     * @param int $count number of Objects stored in this Container
-     * @param int $bytes number of bytes stored in this Container
-     * @throws SyntaxException invalid Container name
-     */
-    function __construct(&$cfs_auth, &$cfs_http, $name, $count=0,
-        $bytes=0, $docdn=True)
-    {
-        if (strlen($name) > MAX_CONTAINER_NAME_LEN) {
-            throw new SyntaxException("Container name exceeds "
-                . "maximum allowed length.");
-        }
-        if (strpos($name, "/") !== False) {
-            throw new SyntaxException(
-                "Container names cannot contain a '/' character.");
-        }
-        $this->cfs_auth = $cfs_auth;
-        $this->cfs_http = $cfs_http;
-        $this->name = $name;
-        $this->object_count = $count;
-        $this->bytes_used = $bytes;
-        $this->cdn_enabled = NULL;
-        $this->cdn_uri = NULL;
-        $this->cdn_ttl = NULL;
-        $this->cdn_log_retention = NULL;
-        $this->cdn_acl_user_agent = NULL;
-        $this->cdn_acl_referrer = NULL;
-        if ($this->cfs_http->getCDNMUrl() != NULL && $docdn) {
-            $this->_cdn_initialize();
-        }
-    }
-
-    /**
-     * String representation of Container
-     *
-     * Pretty print the Container instance.
-     *
-     * @return string Container details
-     */
-    function __toString()
-    {
-        $me = sprintf("name: %s, count: %.0f, bytes: %.0f",
-            $this->name, $this->object_count, $this->bytes_used);
-        if ($this->cfs_http->getCDNMUrl() != NULL) {
-            $me .= sprintf(", cdn: %s, cdn uri: %s, cdn ttl: %.0f, logs retention: %s",
-                $this->is_public() ? "Yes" : "No",
-                $this->cdn_uri, $this->cdn_ttl,
-                $this->cdn_log_retention ? "Yes" : "No"
-                );
-
-            if ($this->cdn_acl_user_agent != NULL) {
-                $me .= ", cdn acl user agent: " . $this->cdn_acl_user_agent;
-            }
-
-            if ($this->cdn_acl_referrer != NULL) {
-                $me .= ", cdn acl referrer: " . $this->cdn_acl_referrer;
-            }
-            
-            
-        }
-        return $me;
-    }
-
-    /**
-     * Enable Container content to be served via CDN or modify CDN attributes
-     *
-     * Either enable this Container's content to be served via CDN or
-     * adjust its CDN attributes.  This Container will always return the
-     * same CDN-enabled URI each time it is toggled public/private/public.
-     *
-     * Example:
-     * <code>
-     * # ... authentication code excluded (see previous examples) ...
-     * #
-     * $conn = new CF_Authentication($auth);
-     *
-     * $public_container = $conn->create_container("public");
-     *
-     * # CDN-enable the container and set it's TTL for a month
-     * #
-     * $public_container->make_public(86400/2); # 12 hours (86400 seconds/day)
-     * </code>
-     *
-     * @param int $ttl the time in seconds content will be cached in the CDN
-     * @returns string the CDN enabled Container's URI
-     * @throws CDNNotEnabledException CDN functionality not returned during auth
-     * @throws AuthenticationException if auth token is not valid/expired
-     * @throws InvalidResponseException unexpected response
-     */
-    function make_public($ttl=86400)
-    {
-        if ($this->cfs_http->getCDNMUrl() == NULL) {
-            throw new CDNNotEnabledException(
-                "Authentication response did not indicate CDN availability");
-        }
-        if ($this->cdn_uri != NULL) {
-            # previously published, assume we're setting new attributes
-            list($status, $reason, $cdn_uri) =
-                $this->cfs_http->update_cdn_container($this->name,$ttl,
-                                                      $this->cdn_log_retention,
-                                                      $this->cdn_acl_user_agent,
-                                                      $this->cdn_acl_referrer);
-            #if ($status == 401 && $this->_re_auth()) {
-            #    return $this->make_public($ttl);
-            #}
-            if ($status == 404) {
-                # this instance _thinks_ the container was published, but the
-                # cdn management system thinks otherwise - try again with a PUT
-                list($status, $reason, $cdn_uri) =
-                    $this->cfs_http->add_cdn_container($this->name,$ttl);
-
-            }
-        } else {
-            # publish it for first time
-            list($status, $reason, $cdn_uri) =
-                $this->cfs_http->add_cdn_container($this->name,$ttl);
-        }
-        #if ($status == 401 && $this->_re_auth()) {
-        #    return $this->make_public($ttl);
-        #}
-        if (!in_array($status, array(201,202))) {
-            throw new InvalidResponseException(
-                "Invalid response (".$status."): ".$this->cfs_http->get_error());
-        }
-        $this->cdn_enabled = True;
-        $this->cdn_ttl = $ttl;
-        $this->cdn_uri = $cdn_uri;
-        $this->cdn_log_retention = False;
-        $this->cdn_acl_user_agent = "";
-        $this->cdn_acl_referrer = "";
-        return $this->cdn_uri;
-    }
-
-    /**
-     * Enable ACL restriction by User Agent for this container.
-     *
-     * Example:
-     * <code>
-     * # ... authentication code excluded (see previous examples) ...
-     * #
-     * $conn = new CF_Authentication($auth);
-     *
-     * $public_container = $conn->get_container("public");
-     *
-     * # Enable ACL by Referrer
-     * $public_container->acl_referrer("Mozilla");
-     * </code>
-     *
-     * @returns boolean True if successful
-     * @throws CDNNotEnabledException CDN functionality not returned during auth
-     * @throws AuthenticationException if auth token is not valid/expired
-     * @throws InvalidResponseException unexpected response
-     */
-    function acl_user_agent($cdn_acl_user_agent="") {
-        if ($this->cfs_http->getCDNMUrl() == NULL) {
-            throw new CDNNotEnabledException(
-                "Authentication response did not indicate CDN availability");
-        }
-        list($status,$reason) =
-            $this->cfs_http->update_cdn_container($this->name,
-                                                  $this->cdn_ttl,
-                                                  $this->cdn_log_retention,
-                                                  $cdn_acl_user_agent,
-                                                  $this->cdn_acl_referrer
-                );
-        if (!in_array($status, array(202,404))) {
-            throw new InvalidResponseException(
-                "Invalid response (".$status."): ".$this->cfs_http->get_error());
-        }
-        $this->cdn_acl_user_agent = $cdn_acl_user_agent;
-        return True;
-    }
-
-    /**
-     * Enable ACL restriction by referer for this container.
-     *
-     * Example:
-     * <code>
-     * # ... authentication code excluded (see previous examples) ...
-     * #
-     * $conn = new CF_Authentication($auth);
-     *
-     * $public_container = $conn->get_container("public");
-     *
-     * # Enable Referrer
-     * $public_container->acl_referrer("http://www.example.com/gallery.php");
-     * </code>
-     *
-     * @returns boolean True if successful
-     * @throws CDNNotEnabledException CDN functionality not returned during auth
-     * @throws AuthenticationException if auth token is not valid/expired
-     * @throws InvalidResponseException unexpected response
-     */
-    function acl_referrer($cdn_acl_referrer="") {
-        if ($this->cfs_http->getCDNMUrl() == NULL) {
-            throw new CDNNotEnabledException(
-                "Authentication response did not indicate CDN availability");
-        }
-        list($status,$reason) =
-            $this->cfs_http->update_cdn_container($this->name,
-                                                  $this->cdn_ttl,
-                                                  $this->cdn_log_retention,
-                                                  $this->cdn_acl_user_agent,
-                                                  $cdn_acl_referrer
-                );
-        if (!in_array($status, array(202,404))) {
-            throw new InvalidResponseException(
-                "Invalid response (".$status."): ".$this->cfs_http->get_error());
-        }
-        $this->cdn_acl_referrer = $cdn_acl_referrer;
-        return True;
-    }
-    
-    /**
-     * Enable log retention for this CDN container.
-     *
-     * Enable CDN log retention on the container. If enabled logs will
-     * be periodically (at unpredictable intervals) compressed and
-     * uploaded to a ".CDN_ACCESS_LOGS" container in the form of
-     * "container_name.YYYYMMDDHH-XXXX.gz". Requires CDN be enabled on
-     * the account.
-     * 
-     * Example:
-     * <code>
-     * # ... authentication code excluded (see previous examples) ...
-     * #
-     * $conn = new CF_Authentication($auth);
-     *
-     * $public_container = $conn->get_container("public");
-     *
-     * # Enable logs retention.
-     * $public_container->log_retention(True);
-     * </code>
-     *
-     * @returns boolean True if successful
-     * @throws CDNNotEnabledException CDN functionality not returned during auth
-     * @throws AuthenticationException if auth token is not valid/expired
-     * @throws InvalidResponseException unexpected response
-     */
-    function log_retention($cdn_log_retention=False) {
-        if ($this->cfs_http->getCDNMUrl() == NULL) {
-            throw new CDNNotEnabledException(
-                "Authentication response did not indicate CDN availability");
-        }
-        list($status,$reason) =
-            $this->cfs_http->update_cdn_container($this->name,
-                                                  $this->cdn_ttl,
-                                                  $cdn_log_retention,
-                                                  $this->cdn_acl_user_agent,
-                                                  $this->cdn_acl_referrer
-                );
-        if (!in_array($status, array(202,404))) {
-            throw new InvalidResponseException(
-                "Invalid response (".$status."): ".$this->cfs_http->get_error());
-        }
-        $this->cdn_log_retention = $cdn_log_retention;
-        return True;
-    }
-    
-    /**
-     * Disable the CDN sharing for this container
-     *
-     * Use this method to disallow distribution into the CDN of this Container's
-     * content.
-     *
-     * NOTE: Any content already cached in the CDN will continue to be served
-     *       from its cache until the TTL expiration transpires.  The default
-     *       TTL is typically one day, so "privatizing" the Container will take
-     *       up to 24 hours before the content is purged from the CDN cache.
-     *
-     * Example:
-     * <code>
-     * # ... authentication code excluded (see previous examples) ...
-     * #
-     * $conn = new CF_Authentication($auth);
-     *
-     * $public_container = $conn->get_container("public");
-     *
-     * # Disable CDN accessability
-     * # ... still cached up to a month based on previous example
-     * #
-     * $public_container->make_private();
-     * </code>
-     *
-     * @returns boolean True if successful
-     * @throws CDNNotEnabledException CDN functionality not returned during auth
-     * @throws AuthenticationException if auth token is not valid/expired
-     * @throws InvalidResponseException unexpected response
-     */
-    function make_private()
-    {
-        if ($this->cfs_http->getCDNMUrl() == NULL) {
-            throw new CDNNotEnabledException(
-                "Authentication response did not indicate CDN availability");
-        }
-        list($status,$reason) = $this->cfs_http->remove_cdn_container($this->name);
-        #if ($status == 401 && $this->_re_auth()) {
-        #    return $this->make_private();
-        #}
-        if (!in_array($status, array(202,404))) {
-            throw new InvalidResponseException(
-                "Invalid response (".$status."): ".$this->cfs_http->get_error());
-        }
-        $this->cdn_enabled = False;
-        $this->cdn_ttl = NULL;
-        $this->cdn_uri = NULL;
-        $this->cdn_log_retention = NULL;
-        $this->cdn_acl_user_agent = NULL;
-        $this->cdn_acl_referrer = NULL;
-        return True;
-    }
-
-    /**
-     * Check if this Container is being publicly served via CDN
-     *
-     * Use this method to determine if the Container's content is currently
-     * available through the CDN.
-     *
-     * Example:
-     * <code>
-     * # ... authentication code excluded (see previous examples) ...
-     * #
-     * $conn = new CF_Authentication($auth);
-     *
-     * $public_container = $conn->get_container("public");
-     *
-     * # Display CDN accessability
-     * #
-     * $public_container->is_public() ? print "Yes" : print "No";
-     * </code>
-     *
-     * @returns boolean True if enabled, False otherwise
-     */
-    function is_public()
-    {
-        return $this->cdn_enabled == True ? True : False;
-    }
-
-    /**
-     * Create a new remote storage Object
-     *
-     * Return a new Object instance.  If the remote storage Object exists,
-     * the instance's attributes are populated.
-     *
-     * Example:
-     * <code>
-     * # ... authentication code excluded (see previous examples) ...
-     * #
-     * $conn = new CF_Authentication($auth);
-     *
-     * $public_container = $conn->get_container("public");
-     *
-     * # This creates a local instance of a storage object but only creates
-     * # it in the storage system when the object's write() method is called.
-     * #
-     * $pic = $public_container->create_object("baby.jpg");
-     * </code>
-     *
-     * @param string $obj_name name of storage Object
-     * @return obj CF_Object instance
-     */
-    function create_object($obj_name=NULL)
-    {
-        return new CF_Object($this, $obj_name);
-    }
-
-    /**
-     * Return an Object instance for the remote storage Object
-     *
-     * Given a name, return a Object instance representing the
-     * remote storage object.
-     *
-     * Example:
-     * <code>
-     * # ... authentication code excluded (see previous examples) ...
-     * #
-     * $conn = new CF_Authentication($auth);
-     *
-     * $public_container = $conn->get_container("public");
-     *
-     * # This call only fetches header information and not the content of
-     * # the storage object.  Use the Object's read() or stream() methods
-     * # to obtain the object's data.
-     * #
-     * $pic = $public_container->get_object("baby.jpg");
-     * </code>
-     *
-     * @param string $obj_name name of storage Object
-     * @return obj CF_Object instance
-     */
-    function get_object($obj_name=NULL)
-    {
-        return new CF_Object($this, $obj_name, True);
-    }
-
-    /**
-     * Return a list of Objects
-     *
-     * Return an array of strings listing the Object names in this Container.
-     *
-     * Example:
-     * <code>
-     * # ... authentication code excluded (see previous examples) ...
-     * #
-     * $images = $conn->get_container("my photos");
-     *
-     * # Grab the list of all storage objects
-     * #
-     * $all_objects = $images->list_objects();
-     *
-     * # Grab subsets of all storage objects
-     * #
-     * $first_ten = $images->list_objects(10);
-     * 
-     * # Note the use of the previous result's last object name being
-     * # used as the 'marker' parameter to fetch the next 10 objects
-     * #
-     * $next_ten = $images->list_objects(10, $first_ten[count($first_ten)-1]);
-     *
-     * # Grab images starting with "birthday_party" and default limit/marker
-     * # to match all photos with that prefix
-     * #
-     * $prefixed = $images->list_objects(0, NULL, "birthday");
-     *
-     * # Assuming you have created the appropriate directory marker Objects,
-     * # you can traverse your pseudo-hierarchical containers
-     * # with the "path" argument.
-     * #
-     * $animals = $images->list_objects(0,NULL,NULL,"pictures/animals");
-     * $dogs = $images->list_objects(0,NULL,NULL,"pictures/animals/dogs");
-     * </code>
-     *
-     * @param int $limit <i>optional</i> only return $limit names
-     * @param int $marker <i>optional</i> subset of names starting at $marker
-     * @param string $prefix <i>optional</i> Objects whose names begin with $prefix
-     * @param string $path <i>optional</i> only return results under "pathname"
-     * @return array array of strings
-     * @throws InvalidResponseException unexpected response
-     */
-    function list_objects($limit=0, $marker=NULL, $prefix=NULL, $path=NULL)
-    {
-        list($status, $reason, $obj_list) =
-            $this->cfs_http->list_objects($this->name, $limit,
-                $marker, $prefix, $path);
-        #if ($status == 401 && $this->_re_auth()) {
-        #    return $this->list_objects($limit, $marker, $prefix, $path);
-        #}
-        if ($status < 200 || $status > 299) {
-            throw new InvalidResponseException(
-                "Invalid response (".$status."): ".$this->cfs_http->get_error());
-        }
-        return $obj_list;
-    }
-
-    /**
-     * Return an array of Objects
-     *
-     * Return an array of Object instances in this Container.
-     *
-     * Example:
-     * <code>
-     * # ... authentication code excluded (see previous examples) ...
-     * #
-     * $images = $conn->get_container("my photos");
-     *
-     * # Grab the list of all storage objects
-     * #
-     * $all_objects = $images->get_objects();
-     *
-     * # Grab subsets of all storage objects
-     * #
-     * $first_ten = $images->get_objects(10);
-     *
-     * # Note the use of the previous result's last object name being
-     * # used as the 'marker' parameter to fetch the next 10 objects
-     * #
-     * $next_ten = $images->list_objects(10, $first_ten[count($first_ten)-1]);
-     *
-     * # Grab images starting with "birthday_party" and default limit/marker
-     * # to match all photos with that prefix
-     * #
-     * $prefixed = $images->get_objects(0, NULL, "birthday");
-     *
-     * # Assuming you have created the appropriate directory marker Objects,
-     * # you can traverse your pseudo-hierarchical containers
-     * # with the "path" argument.
-     * #
-     * $animals = $images->get_objects(0,NULL,NULL,"pictures/animals");
-     * $dogs = $images->get_objects(0,NULL,NULL,"pictures/animals/dogs");
-     * </code>
-     *
-     * @param int $limit <i>optional</i> only return $limit names
-     * @param int $marker <i>optional</i> subset of names starting at $marker
-     * @param string $prefix <i>optional</i> Objects whose names begin with $prefix
-     * @param string $path <i>optional</i> only return results under "pathname"
-     * @return array array of strings
-     * @throws InvalidResponseException unexpected response
-     */
-    function get_objects($limit=0, $marker=NULL, $prefix=NULL, $path=NULL)
-    {
-        list($status, $reason, $obj_array) =
-            $this->cfs_http->get_objects($this->name, $limit,
-                $marker, $prefix, $path);
-        #if ($status == 401 && $this->_re_auth()) {
-        #    return $this->get_objects($limit, $marker, $prefix, $path);
-        #}
-        if ($status < 200 || $status > 299) {
-            throw new InvalidResponseException(
-                "Invalid response (".$status."): ".$this->cfs_http->get_error());
-        }
-        $objects = array();
-        foreach ($obj_array as $obj) {
-            $tmp = new CF_Object($this, $obj["name"], False, False);
-            $tmp->content_type = $obj["content_type"];
-            $tmp->content_length = (float) $obj["bytes"];
-            $tmp->set_etag($obj["hash"]);
-            $tmp->last_modified = $obj["last_modified"];
-            $objects[] = $tmp;
-        }
-        return $objects;
-    }
-
-    /**
-     * Delete a remote storage Object
-     *
-     * Given an Object instance or name, permanently remove the remote Object
-     * and all associated metadata.
-     *
-     * Example:
-     * <code>
-     * # ... authentication code excluded (see previous examples) ...
-     * #
-     * $conn = new CF_Authentication($auth);
-     *
-     * $images = $conn->get_container("my photos");
-     *
-     * # Delete specific object
-     * #
-     * $images->delete_object("disco_dancing.jpg");
-     * </code>
-     *
-     * @param obj $obj name or instance of Object to delete
-     * @return boolean <kbd>True</kbd> if successfully removed
-     * @throws SyntaxException invalid Object name
-     * @throws NoSuchObjectException remote Object does not exist
-     * @throws InvalidResponseException unexpected response
-     */
-    function delete_object($obj)
-    {
-        $obj_name = NULL;
-        if (is_object($obj)) {
-            if (get_class($obj) == "CF_Object") {
-                $obj_name = $obj->name;
-            }
-        }
-        if (is_string($obj)) {
-            $obj_name = $obj;
-        }
-        if (!$obj_name) {
-            throw new SyntaxException("Object name not set.");
-        }
-        $status = $this->cfs_http->delete_object($this->name, $obj_name);
-        #if ($status == 401 && $this->_re_auth()) {
-        #    return $this->delete_object($obj);
-        #}
-        if ($status == 404) {
-            $m = "Specified object '".$this->name."/".$obj_name;
-            $m.= "' did not exist to delete.";
-            throw new NoSuchObjectException($m);
-        }
-        if ($status != 204) {
-            throw new InvalidResponseException(
-                "Invalid response (".$status."): ".$this->cfs_http->get_error());
-        }
-        return True;
-    }
-
-    /**
-     * Helper function to create "path" elements for a given Object name
-     *
-     * Given an Object whos name contains '/' path separators, this function
-     * will create the "directory marker" Objects of one byte with the
-     * Content-Type of "application/folder".
-     *
-     * It assumes the last element of the full path is the "real" Object
-     * and does NOT create a remote storage Object for that last element.
-     */
-    function create_paths($path_name)
-    {
-        if ($path_name[0] == '/') {
-            $path_name = mb_substr($path_name, 0, 1);
-        }
-        $elements = explode('/', $path_name, -1);
-        $build_path = "";
-        foreach ($elements as $idx => $val) {
-            if (!$build_path) {
-                $build_path = $val;
-            } else {
-                $build_path .= "/" . $val;
-            }
-            $obj = new CF_Object($this, $build_path);
-            $obj->content_type = "application/directory";
-            $obj->write(".", 1);
-        }
-    }
-
-    /**
-     * Internal method to grab CDN/Container info if appropriate to do so
-     *
-     * @throws InvalidResponseException unexpected response
-     */
-    private function _cdn_initialize()
-    {
-        list($status, $reason, $cdn_enabled, $cdn_uri, $cdn_ttl,
-             $cdn_log_retention, $cdn_acl_user_agent, $cdn_acl_referrer) =
-            $this->cfs_http->head_cdn_container($this->name);
-        #if ($status == 401 && $this->_re_auth()) {
-        #    return $this->_cdn_initialize();
-        #}
-        if (!in_array($status, array(204,404))) {
-            throw new InvalidResponseException(
-                "Invalid response (".$status."): ".$this->cfs_http->get_error());
-        }
-        $this->cdn_enabled = $cdn_enabled;
-        $this->cdn_uri = $cdn_uri;
-        $this->cdn_ttl = $cdn_ttl;
-        $this->cdn_log_retention = $cdn_log_retention;
-        $this->cdn_acl_user_agent = $cdn_acl_user_agent;
-        $this->cdn_acl_referrer = $cdn_acl_referrer;
-    }
-
-    #private function _re_auth()
-    #{
-    #    $new_auth = new CF_Authentication(
-    #        $this->cfs_auth->username,
-    #        $this->cfs_auth->api_key,
-    #        $this->cfs_auth->auth_host,
-    #        $this->cfs_auth->account);
-    #    $new_auth->authenticate();
-    #    $this->cfs_auth = $new_auth;
-    #    $this->cfs_http->setCFAuth($this->cfs_auth);
-    #    return True;
-    #}
-}
-
-
-/**
- * Object operations
- *
- * An Object is analogous to a file on a conventional filesystem. You can
- * read data from, or write data to your Objects. You can also associate 
- * arbitrary metadata with them.
- *
- * @package php-cloudfiles
- */
-class CF_Object
-{
-    public $container;
-    public $name;
-    public $last_modified;
-    public $content_type;
-    public $content_length;
-    public $metadata;
-    private $etag;
-
-    /**
-     * Class constructor
-     *
-     * @param obj $container CF_Container instance
-     * @param string $name name of Object
-     * @param boolean $force_exists if set, throw an error if Object doesn't exist
-     */
-    function __construct(&$container, $name, $force_exists=False, $dohead=True)
-    {
-        if ($name[0] == "/") {
-            $r = "Object name '".$name;
-            $r .= "' cannot contain begin with a '/' character.";
-            throw new SyntaxException($r);
-        }
-        if (strlen($name) > MAX_OBJECT_NAME_LEN) {
-            throw new SyntaxException("Object name exceeds "
-                . "maximum allowed length.");
-        }
-        $this->container = $container;
-        $this->name = $name;
-        $this->etag = NULL;
-        $this->_etag_override = False;
-        $this->last_modified = NULL;
-        $this->content_type = NULL;
-        $this->content_length = 0;
-        $this->metadata = array();
-        if ($dohead) {
-            if (!$this->_initialize() && $force_exists) {
-                throw new NoSuchObjectException("No such object '".$name."'");
-            }
-        }
-    }
-
-    /**
-     * String representation of Object
-     *
-     * Pretty print the Object's location and name
-     *
-     * @return string Object information
-     */
-    function __toString()
-    {
-        return $this->container->name . "/" . $this->name;
-    }
-
-    /**
-     * Internal check to get the proper mimetype.
-     *
-     * This function would go over the available PHP methods to get
-     * the MIME type.
-     *
-     * By default it will try to use the PHP fileinfo library which is
-     * available from PHP 5.3 or as an PECL extension
-     * (http://pecl.php.net/package/Fileinfo).
-     *
-     * It will get the magic file by default from the system wide file
-     * which is usually available in /usr/share/magic on Unix or try
-     * to use the file specified in the source directory of the API
-     * (share directory).
-     *
-     * if fileinfo is not available it will try to use the internal
-     * mime_content_type function.
-     * 
-     * @param string $handle name of file or buffer to guess the type from
-     * @return boolean <kbd>True</kbd> if successful
-     * @throws BadContentTypeException
-     */
-    function _guess_content_type($handle) {
-        if ($this->content_type)
-            return;
-            
-        if (function_exists("finfo_open")) {
-            $local_magic = dirname(__FILE__) . "/share/magic";
-            $finfo = @finfo_open(FILEINFO_MIME, $local_magic);
-
-            if (!$finfo) 
-                $finfo = @finfo_open(FILEINFO_MIME);
-                
-            if ($finfo) {
-
-                if (is_file((string)$handle))
-                    $ct = @finfo_file($finfo, $handle);
-                else 
-                    $ct = @finfo_buffer($finfo, $handle);
-
-                /* PHP 5.3 fileinfo display extra information like
-                   charset so we remove everything after the ; since
-                   we are not into that stuff */
-                if ($ct) {
-                    $extra_content_type_info = strpos($ct, "; ");
-                    if ($extra_content_type_info)
-                        $ct = substr($ct, 0, $extra_content_type_info);
-                }
-
-                if ($ct && $ct != 'application/octet-stream')
-                    $this->content_type = $ct;
-
-                @finfo_close($finfo);
-            }
-        }
-
-        if (!$this->content_type && (string)is_file($handle) && function_exists("mime_content_type")) {
-            $this->content_type = @mime_content_type($handle);
-        }
-
-        if (!$this->content_type) {
-            throw new BadContentTypeException("Required Content-Type not set");
-        }
-        return True;
-    }
-    
-    /**
-     * String representation of the Object's public URI
-     *
-     * A string representing the Object's public URI assuming that it's
-     * parent Container is CDN-enabled.
-     *
-     * Example:
-     * <code>
-     * # ... authentication/connection/container code excluded
-     * # ... see previous examples
-     *
-     * # Print out the Object's CDN URI (if it has one) in an HTML img-tag
-     * #
-     * print "<img src='$pic->public_uri()' />\n";
-     * </code>
-     *
-     * @return string Object's public URI or NULL
-     */
-    function public_uri()
-    {
-        if ($this->container->cdn_enabled) {
-            return $this->container->cdn_uri . "/" . $this->name;
-        }
-        return NULL;
-    }
-
-    /**
-     * Read the remote Object's data
-     *
-     * Returns the Object's data.  This is useful for smaller Objects such
-     * as images or office documents.  Object's with larger content should use
-     * the stream() method below.
-     *
-     * Pass in $hdrs array to set specific custom HTTP headers such as
-     * If-Match, If-None-Match, If-Modified-Since, Range, etc.
-     *
-     * Example:
-     * <code>
-     * # ... authentication/connection/container code excluded
-     * # ... see previous examples
-     *
-     * $my_docs = $conn->get_container("documents");
-     * $doc = $my_docs->get_object("README");
-     * $data = $doc->read(); # read image content into a string variable
-     * print $data;
-     *
-     * # Or see stream() below for a different example.
-     * #
-     * </code>
-     *
-     * @param array $hdrs user-defined headers (Range, If-Match, etc.)
-     * @return string Object's data
-     * @throws InvalidResponseException unexpected response
-     */
-    function read($hdrs=array())
-    {
-        list($status, $reason, $data) =
-            $this->container->cfs_http->get_object_to_string($this, $hdrs);
-        #if ($status == 401 && $this->_re_auth()) {
-        #    return $this->read($hdrs);
-        #}
-        if (($status < 200) || ($status > 299
-                && $status != 412 && $status != 304)) {
-            throw new InvalidResponseException("Invalid response (".$status."): "
-                . $this->container->cfs_http->get_error());
-        }
-        return $data;
-    }
-
-    /**
-     * Streaming read of Object's data
-     *
-     * Given an open PHP resource (see PHP's fopen() method), fetch the Object's
-     * data and write it to the open resource handle.  This is useful for
-     * streaming an Object's content to the browser (videos, images) or for
-     * fetching content to a local file.
-     *
-     * Pass in $hdrs array to set specific custom HTTP headers such as
-     * If-Match, If-None-Match, If-Modified-Since, Range, etc.
-     *
-     * Example:
-     * <code>
-     * # ... authentication/connection/container code excluded
-     * # ... see previous examples
-     *
-     * # Assuming this is a web script to display the README to the
-     * # user's browser:
-     * #
-     * <?php
-     * // grab README from storage system
-     * //
-     * $my_docs = $conn->get_container("documents");
-     * $doc = $my_docs->get_object("README");
-     *
-     * // Hand it back to user's browser with appropriate content-type
-     * //
-     * header("Content-Type: " . $doc->content_type);
-     * $output = fopen("php://output", "w");
-     * $doc->stream($output); # stream object content to PHP's output buffer
-     * fclose($output);
-     * ?>
-     *
-     * # See read() above for a more simple example.
-     * #
-     * </code>
-     *
-     * @param resource $fp open resource for writing data to
-     * @param array $hdrs user-defined headers (Range, If-Match, etc.)
-     * @return string Object's data
-     * @throws InvalidResponseException unexpected response
-     */
-    function stream(&$fp, $hdrs=array())
-    {
-        list($status, $reason) = 
-                $this->container->cfs_http->get_object_to_stream($this,$fp,$hdrs);
-        #if ($status == 401 && $this->_re_auth()) {
-        #    return $this->stream($fp, $hdrs);
-        #}
-        if (($status < 200) || ($status > 299
-                && $status != 412 && $status != 304)) {
-            throw new InvalidResponseException("Invalid response (".$status."): "
-                .$reason);
-        }
-        return True;
-    }
-
-    /**
-     * Store new Object metadata
-     *
-     * Write's an Object's metadata to the remote Object.  This will overwrite
-     * an prior Object metadata.
-     *
-     * Example:
-     * <code>
-     * # ... authentication/connection/container code excluded
-     * # ... see previous examples
-     *
-     * $my_docs = $conn->get_container("documents");
-     * $doc = $my_docs->get_object("README");
-     *
-     * # Define new metadata for the object
-     * #
-     * $doc->metadata = array(
-     *     "Author" => "EJ",
-     *     "Subject" => "How to use the PHP tests",
-     *     "Version" => "1.2.2"
-     * );
-     *
-     * # Push the new metadata up to the storage system
-     * #
-     * $doc->sync_metadata();
-     * </code>
-     *
-     * @return boolean <kbd>True</kbd> if successful, <kbd>False</kbd> otherwise
-     * @throws InvalidResponseException unexpected response
-     */
-    function sync_metadata()
-    {
-        if (!empty($this->metadata)) {
-            $status = $this->container->cfs_http->update_object($this);
-            #if ($status == 401 && $this->_re_auth()) {
-            #    return $this->sync_metadata();
-            #}
-            if ($status != 202) {
-                throw new InvalidResponseException("Invalid response ("
-                    .$status."): ".$this->container->cfs_http->get_error());
-            }
-            return True;
-        }
-        return False;
-    }
-
-    /**
-     * Upload Object's data to Cloud Files
-     *
-     * Write data to the remote Object.  The $data argument can either be a
-     * PHP resource open for reading (see PHP's fopen() method) or an in-memory
-     * variable.  If passing in a PHP resource, you must also include the $bytes
-     * parameter.
-     *
-     * Example:
-     * <code>
-     * # ... authentication/connection/container code excluded
-     * # ... see previous examples
-     *
-     * $my_docs = $conn->get_container("documents");
-     * $doc = $my_docs->get_object("README");
-     *
-     * # Upload placeholder text in my README
-     * #
-     * $doc->write("This is just placeholder text for now...");
-     * </code>
-     *
-     * @param string|resource $data string or open resource
-     * @param float $bytes amount of data to upload (required for resources)
-     * @param boolean $verify generate, send, and compare MD5 checksums
-     * @return boolean <kbd>True</kbd> when data uploaded successfully
-     * @throws SyntaxException missing required parameters
-     * @throws BadContentTypeException if no Content-Type was/could be set
-     * @throws MisMatchedChecksumException $verify is set and checksums unequal
-     * @throws InvalidResponseException unexpected response
-     */
-    function write($data=NULL, $bytes=0, $verify=True)
-    {
-        if (!$data) {
-            throw new SyntaxException("Missing data source.");
-        }
-        if ($bytes > MAX_OBJECT_SIZE) {
-            throw new SyntaxException("Bytes exceeds maximum object size.");
-        }
-        if ($verify) {
-            if (!$this->_etag_override) {
-                $this->etag = $this->compute_md5sum($data);
-            }
-        } else {
-            $this->etag = NULL;
-        }
-
-        $close_fh = False;
-        if (!is_resource($data)) {
-            # A hack to treat string data as a file handle.  php://memory feels
-            # like a better option, but it seems to break on Windows so use
-            # a temporary file instead.
-            #
-            $fp = fopen("php://temp", "wb+");
-            #$fp = fopen("php://memory", "wb+");
-            fwrite($fp, $data, strlen($data));
-            rewind($fp);
-            $close_fh = True;
-            $this->content_length = (float) strlen($data);
-            if ($this->content_length > MAX_OBJECT_SIZE) {
-                throw new SyntaxException("Data exceeds maximum object size");
-            }
-            $ct_data = substr($data, 0, 64);
-        } else {
-            $this->content_length = $bytes;
-            $fp = $data;
-            $ct_data = fread($data, 64);
-            rewind($data);
-        }
-
-        $this->_guess_content_type($ct_data);
-
-        list($status, $reason, $etag) =
-                $this->container->cfs_http->put_object($this, $fp);
-        #if ($status == 401 && $this->_re_auth()) {
-        #    return $this->write($data, $bytes, $verify);
-        #}
-        if ($status == 412) {
-            if ($close_fh) { fclose($fp); }
-            throw new SyntaxException("Missing Content-Type header");
-        }
-        if ($status == 422) {
-            if ($close_fh) { fclose($fp); }
-            throw new MisMatchedChecksumException(
-                "Supplied and computed checksums do not match.");
-        }
-        if ($status != 201) {
-            if ($close_fh) { fclose($fp); }
-            throw new InvalidResponseException("Invalid response (".$status."): "
-                . $this->container->cfs_http->get_error());
-        }
-        if (!$verify) {
-            $this->etag = $etag;
-        }
-        if ($close_fh) { fclose($fp); }
-        return True;
-    }
-
-    /**
-     * Upload Object data from local filename
-     *
-     * This is a convenience function to upload the data from a local file.  A
-     * True value for $verify will cause the method to compute the Object's MD5
-     * checksum prior to uploading.
-     *
-     * Example:
-     * <code>
-     * # ... authentication/connection/container code excluded
-     * # ... see previous examples
-     *
-     * $my_docs = $conn->get_container("documents");
-     * $doc = $my_docs->get_object("README");
-     *
-     * # Upload my local README's content
-     * #
-     * $doc->load_from_filename("/home/ej/cloudfiles/readme");
-     * </code>
-     *
-     * @param string $filename full path to local file
-     * @param boolean $verify enable local/remote MD5 checksum validation
-     * @return boolean <kbd>True</kbd> if data uploaded successfully
-     * @throws SyntaxException missing required parameters
-     * @throws BadContentTypeException if no Content-Type was/could be set
-     * @throws MisMatchedChecksumException $verify is set and checksums unequal
-     * @throws InvalidResponseException unexpected response
-     * @throws IOException error opening file
-     */
-    function load_from_filename($filename, $verify=True)
-    {
-        $fp = @fopen($filename, "r");
-        if (!$fp) {
-            throw new IOException("Could not open file for reading: ".$filename);
-        }
-
-        clearstatcache();
-        
-        $size = (float) sprintf("%u", filesize($filename));
-        if ($size > MAX_OBJECT_SIZE) {
-            throw new SyntaxException("File size exceeds maximum object size.");
-        }
-
-        $this->_guess_content_type($filename);
-        
-        $this->write($fp, $size, $verify);
-        fclose($fp);
-        return True;
-    }
-
-    /**
-     * Save Object's data to local filename
-     *
-     * Given a local filename, the Object's data will be written to the newly
-     * created file.
-     *
-     * Example:
-     * <code>
-     * # ... authentication/connection/container code excluded
-     * # ... see previous examples
-     *
-     * # Whoops!  I deleted my local README, let me download/save it
-     * #
-     * $my_docs = $conn->get_container("documents");
-     * $doc = $my_docs->get_object("README");
-     *
-     * $doc->save_to_filename("/home/ej/cloudfiles/readme.restored");
-     * </code>
-     *
-     * @param string $filename name of local file to write data to
-     * @return boolean <kbd>True</kbd> if successful
-     * @throws IOException error opening file
-     * @throws InvalidResponseException unexpected response
-     */
-    function save_to_filename($filename)
-    {
-        $fp = @fopen($filename, "wb");
-        if (!$fp) {
-            throw new IOException("Could not open file for writing: ".$filename);
-        }
-        $result = $this->stream($fp);
-        fclose($fp);
-        return $result;
-    }
-
-    /**
-     * Set Object's MD5 checksum
-     *
-     * Manually set the Object's ETag.  Including the ETag is mandatory for
-     * Cloud Files to perform end-to-end verification.  Omitting the ETag forces
-     * the user to handle any data integrity checks.
-     *
-     * @param string $etag MD5 checksum hexidecimal string
-     */
-    function set_etag($etag)
-    {
-        $this->etag = $etag;
-        $this->_etag_override = True;
-    }
-
-    /**
-     * Object's MD5 checksum
-     *
-     * Accessor method for reading Object's private ETag attribute.
-     *
-     * @return string MD5 checksum hexidecimal string
-     */
-    function getETag()
-    {
-        return $this->etag;
-    }
-
-    /**
-     * Compute the MD5 checksum
-     *
-     * Calculate the MD5 checksum on either a PHP resource or data.  The argument
-     * may either be a local filename, open resource for reading, or a string.
-     *
-     * <b>WARNING:</b> if you are uploading a big file over a stream
-     * it could get very slow to compute the md5 you probably want to
-     * set the $verify parameter to False in the write() method and
-     * compute yourself the md5 before if you have it.
-     *
-     * @param filename|obj|string $data filename, open resource, or string
-     * @return string MD5 checksum hexidecimal string
-     */
-    function compute_md5sum(&$data)
-    {
-
-        if (function_exists("hash_init") && is_resource($data)) {
-            $ctx = hash_init('md5');
-            while (!feof($data)) {
-                $buffer = fgets($data, 65536);
-                hash_update($ctx, $buffer);
-            }
-            $md5 = hash_final($ctx, false);
-            rewind($data);
-        } elseif ((string)is_file($data)) {
-            $md5 = md5_file($data);
-        } else {
-            $md5 = md5($data);
-        }
-        return $md5;
-    }
-
-    /**
-     * PRIVATE: fetch information about the remote Object if it exists
-     */
-    private function _initialize()
-    {
-        list($status, $reason, $etag, $last_modified, $content_type,
-            $content_length, $metadata) =
-                $this->container->cfs_http->head_object($this);
-        #if ($status == 401 && $this->_re_auth()) {
-        #    return $this->_initialize();
-        #}
-        if ($status == 404) {
-            return False;
-        }
-        if ($status < 200 || $status > 299) {
-            throw new InvalidResponseException("Invalid response (".$status."): "
-                . $this->container->cfs_http->get_error());
-        }
-        $this->etag = $etag;
-        $this->last_modified = $last_modified;
-        $this->content_type = $content_type;
-        $this->content_length = $content_length;
-        $this->metadata = $metadata;
-        return True;
-    }
-
-    #private function _re_auth()
-    #{
-    #    $new_auth = new CF_Authentication(
-    #        $this->cfs_auth->username,
-    #        $this->cfs_auth->api_key,
-    #        $this->cfs_auth->auth_host,
-    #        $this->cfs_auth->account);
-    #    $new_auth->authenticate();
-    #    $this->container->cfs_auth = $new_auth;
-    #    $this->container->cfs_http->setCFAuth($this->cfs_auth);
-    #    return True;
-    #}
-}
-
-/* vim: set expandtab tabstop=4 shiftwidth=4 softtabstop=4: */
-
-/*
- * Local variables:
- * tab-width: 4
- * c-basic-offset: 4
- * c-hanging-comment-ender-p: nil
- * End:
- */
-?>
diff --git a/cloudfiles/cloudfiles_exceptions.php b/cloudfiles/cloudfiles_exceptions.php
deleted file mode 100644
index 5624d6b..0000000
--- a/cloudfiles/cloudfiles_exceptions.php
+++ /dev/null
@@ -1,41 +0,0 @@
-<?php
-/**
- * Custom Exceptions for the CloudFiles API
- *
- * Requres PHP 5.x (for Exceptions and OO syntax)
- *
- * See COPYING for license information.
- *
- * @author Eric "EJ" Johnson <ej@racklabs.com>
- * @copyright Copyright (c) 2008, Rackspace US, Inc.
- * @package php-cloudfiles-exceptions
- */
-
-/**
- * Custom Exceptions for the CloudFiles API
- * @package php-cloudfiles-exceptions
- */
-class SyntaxException extends Exception { }
-class AuthenticationException extends Exception { }
-class InvalidResponseException extends Exception { }
-class NonEmptyContainerException extends Exception { }
-class NoSuchObjectException extends Exception { }
-class NoSuchContainerException extends Exception { }
-class NoSuchAccountException extends Exception { }
-class MisMatchedChecksumException extends Exception { }
-class IOException extends Exception { }
-class CDNNotEnabledException extends Exception { }
-class BadContentTypeException extends Exception { }
-class InvalidUTF8Exception extends Exception { }
-class ConnectionNotOpenException extends Exception { }
-
-/* vim: set expandtab tabstop=4 shiftwidth=4 softtabstop=4: */
-
-/*
- * Local variables:
- * tab-width: 4
- * c-basic-offset: 4
- * c-hanging-comment-ender-p: nil
- * End:
- */
-?>
diff --git a/cloudfiles/cloudfiles_http.php b/cloudfiles/cloudfiles_http.php
deleted file mode 100644
index 5409293..0000000
--- a/cloudfiles/cloudfiles_http.php
+++ /dev/null
@@ -1,1338 +0,0 @@
-<?php
-/**
- * This is an HTTP client class for Cloud Files.  It uses PHP's cURL module
- * to handle the actual HTTP request/response.  This is NOT a generic HTTP
- * client class and is only used to abstract out the HTTP communication for
- * the PHP Cloud Files API.
- *
- * This module was designed to re-use existing HTTP(S) connections between
- * subsequent operations.  For example, performing multiple PUT operations
- * will re-use the same connection.
- *
- * This modules also provides support for streaming content into and out
- * of Cloud Files.  The majority (all?) of the PHP HTTP client modules expect
- * to read the server's response into a string variable.  This will not work
- * with large files without killing your server.  Methods like,
- * get_object_to_stream() and put_object() take an open filehandle
- * argument for streaming data out of or into Cloud Files.
- *
- * Requres PHP 5.x (for Exceptions and OO syntax)
- *
- * See COPYING for license information.
- *
- * @author Eric "EJ" Johnson <ej@racklabs.com>
- * @copyright Copyright (c) 2008, Rackspace US, Inc.
- * @package php-cloudfiles-http
- */
-
-/**
- */
-require_once("cloudfiles_exceptions.php");
-
-define("PHP_CF_VERSION", "1.7.4");
-define("USER_AGENT", sprintf("PHP-CloudFiles/%s", PHP_CF_VERSION));
-define("ACCOUNT_CONTAINER_COUNT", "X-Account-Container-Count");
-define("ACCOUNT_BYTES_USED", "X-Account-Bytes-Used");
-define("CONTAINER_OBJ_COUNT", "X-Container-Object-Count");
-define("CONTAINER_BYTES_USED", "X-Container-Bytes-Used");
-define("METADATA_HEADER", "X-Object-Meta-");
-define("CDN_URI", "X-CDN-URI");
-define("CDN_ENABLED", "X-CDN-Enabled");
-define("CDN_LOG_RETENTION", "X-Log-Retention");
-define("CDN_ACL_USER_AGENT", "X-User-Agent-ACL");
-define("CDN_ACL_REFERRER", "X-Referrer-ACL");
-define("CDN_TTL", "X-TTL");
-define("CDNM_URL", "X-CDN-Management-Url");
-define("STORAGE_URL", "X-Storage-Url");
-define("AUTH_TOKEN", "X-Auth-Token");
-define("AUTH_USER_HEADER", "X-Auth-User");
-define("AUTH_KEY_HEADER", "X-Auth-Key");
-define("AUTH_USER_HEADER_LEGACY", "X-Storage-User");
-define("AUTH_KEY_HEADER_LEGACY", "X-Storage-Pass");
-define("AUTH_TOKEN_LEGACY", "X-Storage-Token");
-
-/**
- * HTTP/cURL wrapper for Cloud Files
- *
- * This class should not be used directly.  It's only purpose is to abstract
- * out the HTTP communication from the main API.
- *
- * @package php-cloudfiles-http
- */
-class CF_Http
-{
-    private $error_str;
-    private $dbug;
-    private $cabundle_path;
-    private $api_version;
-
-    # Authentication instance variables
-    #
-    private $storage_url;
-    private $cdnm_url;
-    private $auth_token;
-
-    # Request/response variables
-    #
-    private $response_status;
-    private $response_reason;
-    private $connections;
-
-    # Variables used for content/header callbacks
-    #
-    private $_user_read_progress_callback_func;
-    private $_user_write_progress_callback_func;
-    private $_write_callback_type;
-    private $_text_list;
-    private $_account_container_count;
-    private $_account_bytes_used;
-    private $_container_object_count;
-    private $_container_bytes_used;
-    private $_obj_etag;
-    private $_obj_last_modified;
-    private $_obj_content_type;
-    private $_obj_content_length;
-    private $_obj_metadata;
-    private $_obj_write_resource;
-    private $_obj_write_string;
-    private $_cdn_enabled;
-    private $_cdn_uri;
-    private $_cdn_ttl;
-    private $_cdn_log_retention;
-    private $_cdn_acl_user_agent;
-    private $_cdn_acl_referrer;
-
-    function __construct($api_version)
-    {
-        $this->dbug = False;
-        $this->cabundle_path = NULL;
-        $this->api_version = $api_version;
-        $this->error_str = NULL;
-
-        $this->storage_url = NULL;
-        $this->cdnm_url = NULL;
-        $this->auth_token = NULL;
-
-        $this->response_status = NULL;
-        $this->response_reason = NULL;
-
-        # Curl connections array - since there is no way to "re-set" the
-        # connection paramaters for a cURL handle, we keep an array of
-        # the unique use-cases and funnel all of those same type
-        # requests through the appropriate curl connection.
-        #
-        $this->connections = array(
-            "GET_CALL"  => NULL, # GET objects/containers/lists
-            "PUT_OBJ"   => NULL, # PUT object
-            "HEAD"      => NULL, # HEAD requests
-            "PUT_CONT"  => NULL, # PUT container
-            "DEL_POST"  => NULL, # DELETE containers/objects, POST objects
-        );
-
-        $this->_user_read_progress_callback_func = NULL;
-        $this->_user_write_progress_callback_func = NULL;
-        $this->_write_callback_type = NULL;
-        $this->_text_list = array();
-	$this->_return_list = NULL;
-        $this->_account_container_count = 0;
-        $this->_account_bytes_used = 0;
-        $this->_container_object_count = 0;
-        $this->_container_bytes_used = 0;
-        $this->_obj_write_resource = NULL;
-        $this->_obj_write_string = "";
-        $this->_obj_etag = NULL;
-        $this->_obj_last_modified = NULL;
-        $this->_obj_content_type = NULL;
-        $this->_obj_content_length = NULL;
-        $this->_obj_metadata = array();
-        $this->_cdn_enabled = NULL;
-        $this->_cdn_uri = NULL;
-        $this->_cdn_ttl = NULL;
-        $this->_cdn_log_retention = NULL;
-        $this->_cdn_acl_user_agent = NULL;
-        $this->_cdn_acl_referrer = NULL;
-
-        # The OS list with a PHP without an updated CA File for CURL to
-        # connect to SSL Websites. It is the first 3 letters of the PHP_OS
-        # variable.
-        $OS_CAFILE_NONUPDATED=array(
-            "win","dar"
-        );
-
-        if (in_array((strtolower (substr(PHP_OS, 0,3))), $OS_CAFILE_NONUPDATED))
-            $this->ssl_use_cabundle();
-
-    }
-
-    function ssl_use_cabundle($path=NULL)
-    {
-        if ($path) {
-            $this->cabundle_path = $path;
-        } else {
-            $this->cabundle_path = dirname(__FILE__) . "/share/cacert.pem";
-        }
-        if (!file_exists($this->cabundle_path)) {
-            throw new IOException("Could not use CA bundle: "
-                . $this->cabundle_path);
-        }
-        return;
-    }
-
-    # Uses separate cURL connection to authenticate
-    #
-    function authenticate($user, $pass, $acct=NULL, $host=NULL)
-    {
-        $path = array();
-        if (isset($acct) || isset($host)) {
-            $headers = array(
-                sprintf("%s: %s", AUTH_USER_HEADER_LEGACY, $user),
-                sprintf("%s: %s", AUTH_KEY_HEADER_LEGACY, $pass),
-                );
-            $path[] = $host;
-            $path[] = rawurlencode(sprintf("v%d",$this->api_version));
-            $path[] = rawurlencode($acct);
-        } else {
-            $headers = array(
-                sprintf("%s: %s", AUTH_USER_HEADER, $user),
-                sprintf("%s: %s", AUTH_KEY_HEADER, $pass),
-                );
-	    $path[] = "https://auth.api.rackspacecloud.com";
-        }
-	$path[] = "v1.0";
-        $url = implode("/", $path);
-
-        $curl_ch = curl_init();
-        if (!is_null($this->cabundle_path)) {
-            curl_setopt($curl_ch, CURLOPT_SSL_VERIFYPEER, True);
-            curl_setopt($curl_ch, CURLOPT_CAINFO, $this->cabundle_path);
-        }
-        curl_setopt($curl_ch, CURLOPT_VERBOSE, $this->dbug);
-        curl_setopt($curl_ch, CURLOPT_FOLLOWLOCATION, 1);
-        curl_setopt($curl_ch, CURLOPT_MAXREDIRS, 4);
-        curl_setopt($curl_ch, CURLOPT_HEADER, 0);
-        curl_setopt($curl_ch, CURLOPT_HTTPHEADER, $headers);
-        curl_setopt($curl_ch, CURLOPT_USERAGENT, USER_AGENT);
-        curl_setopt($curl_ch, CURLOPT_RETURNTRANSFER, TRUE);
-        curl_setopt($curl_ch, CURLOPT_HEADERFUNCTION,array(&$this,'_auth_hdr_cb'));
-        curl_setopt($curl_ch, CURLOPT_URL, $url);
-        curl_exec($curl_ch);
-        curl_close($curl_ch);
-
-        return array($this->response_status, $this->response_reason,
-            $this->storage_url, $this->cdnm_url, $this->auth_token);
-    }
-
-    # (CDN) GET /v1/Account
-    #
-    function list_cdn_containers()
-    {
-        $conn_type = "GET_CALL";
-        $url_path = $this->_make_path("CDN", $container_name);
-
-        $this->_write_callback_type = "TEXT_LIST";
-        $return_code = $this->_send_request($conn_type, $url_path);
-
-        if (!$return_code) {
-            $this->error_str .= ": Failed to obtain valid HTTP response.";
-            array(0,$this->error_str,array());
-        }
-        if ($return_code == 401) {
-            return array($return_code,"Unauthorized",array());
-        }
-        if ($return_code == 404) {
-            return array($return_code,"Account not found.",array());
-        }
-        if ($return_code == 204) {
-            return array($return_code,"Account has no CDN enabled Containers.",
-                array());
-        }
-        if ($return_code == 200) {
-	    $this->create_array();
-            return array($return_code,$this->response_reason,$this->_text_list);
-        }
-        $this->error_str = "Unexpected HTTP response: ".$this->response_reason;
-        return array($return_code,$this->error_str,array());
-    }
-
-    # (CDN) POST /v1/Account/Container
-    #
-    function update_cdn_container($container_name, $ttl=86400, $cdn_log_retention=False,
-                                  $cdn_acl_user_agent="", $cdn_acl_referrer)
-    {
-        if ($container_name == "")
-            throw new SyntaxException("Container name not set.");
-
-        if ($container_name != "0" and !isset($container_name))
-            throw new SyntaxException("Container name not set.");
-
-        $url_path = $this->_make_path("CDN", $container_name);
-        $hdrs = array(
-            CDN_ENABLED => "True",
-            CDN_TTL => $ttl,
-            CDN_LOG_RETENTION => $cdn_log_retention ?  "True" : "False",
-            CDN_ACL_USER_AGENT => $cdn_acl_user_agent,
-            CDN_ACL_REFERRER => $cdn_acl_referrer,
-            );
-        $return_code = $this->_send_request("DEL_POST",$url_path,$hdrs,"POST");
-        if ($return_code == 401) {
-            $this->error_str = "Unauthorized";
-            return array($return_code, $this->error_str, NULL);
-        }
-        if ($return_code == 404) {
-            $this->error_str = "Container not found.";
-            return array($return_code, $this->error_str, NULL);
-        }
-        if ($return_code != 202) {
-            $this->error_str="Unexpected HTTP response: ".$this->response_reason;
-            return array($return_code, $this->error_str, NULL);
-        }
-        return array($return_code, "Accepted", $this->_cdn_uri);
-
-    }
-
-    # (CDN) PUT /v1/Account/Container
-    #
-    function add_cdn_container($container_name, $ttl=86400)
-    {
-        if ($container_name == "")
-            throw new SyntaxException("Container name not set.");
-
-        if ($container_name != "0" and !isset($container_name))
-            throw new SyntaxException("Container name not set.");
-
-        $url_path = $this->_make_path("CDN", $container_name);
-        $hdrs = array(
-            CDN_ENABLED => "True",
-            CDN_TTL => $ttl,
-            );
-        $return_code = $this->_send_request("PUT_CONT", $url_path, $hdrs);
-        if ($return_code == 401) {
-            $this->error_str = "Unauthorized";
-            return array($return_code,$this->response_reason,False);
-        }
-        if (!in_array($return_code, array(201,202))) {
-            $this->error_str="Unexpected HTTP response: ".$this->response_reason;
-            return array($return_code,$this->response_reason,False);
-        }
-        return array($return_code,$this->response_reason,$this->_cdn_uri);
-    }
-
-    # (CDN) POST /v1/Account/Container
-    #
-    function remove_cdn_container($container_name)
-    {
-        if ($container_name == "")
-            throw new SyntaxException("Container name not set.");
-
-        if ($container_name != "0" and !isset($container_name))
-            throw new SyntaxException("Container name not set.");
-
-        $url_path = $this->_make_path("CDN", $container_name);
-        $hdrs = array(CDN_ENABLED => "False");
-        $return_code = $this->_send_request("DEL_POST",$url_path,$hdrs,"POST");
-        if ($return_code == 401) {
-            $this->error_str = "Unauthorized";
-            return array($return_code, $this->error_str);
-        }
-        if ($return_code == 404) {
-            $this->error_str = "Container not found.";
-            return array($return_code, $this->error_str);
-        }
-        if ($return_code != 202) {
-            $this->error_str="Unexpected HTTP response: ".$this->response_reason;
-            return array($return_code, $this->error_str);
-        }
-        return array($return_code, "Accepted");
-    }
-
-    # (CDN) HEAD /v1/Account
-    #
-    function head_cdn_container($container_name)
-    {
-        if ($container_name == "")
-            throw new SyntaxException("Container name not set.");
-
-        if ($container_name != "0" and !isset($container_name))
-            throw new SyntaxException("Container name not set.");
-
-        $conn_type = "HEAD";
-        $url_path = $this->_make_path("CDN", $container_name);
-        $return_code = $this->_send_request($conn_type, $url_path);
-
-        if (!$return_code) {
-            $this->error_str .= ": Failed to obtain valid HTTP response.";
-            return array(0,$this->error_str,NULL,NULL,NULL,NULL,NULL,NULL);
-        }
-        if ($return_code == 401) {
-            return array($return_code,"Unauthorized",NULL,NULL,NULL,NULL,NULL,NULL);
-        }
-        if ($return_code == 404) {
-            return array($return_code,"Account not found.",NULL,NULL,NULL,NULL,NULL,NULL);
-        }
-        if ($return_code == 204) {
-            return array($return_code,$this->response_reason,
-                $this->_cdn_enabled, $this->_cdn_uri, $this->_cdn_ttl,
-                $this->_cdn_log_retention,
-                $this->_cdn_acl_user_agent,
-                $this->_cdn_acl_referrer
-                );
-        }
-        return array($return_code,$this->response_reason,
-                     NULL,NULL,NULL,
-                     $this->_cdn_log_retention,
-                     $this->_cdn_acl_user_agent,
-                     $this->_cdn_acl_referrer
-            );
-    }
-
-    # GET /v1/Account
-    #
-    function list_containers($limit=0, $marker=NULL)
-    {
-        $conn_type = "GET_CALL";
-        $url_path = $this->_make_path();
-
-        $limit = intval($limit);
-        $params = array();
-        if ($limit > 0) {
-            $params[] = "limit=$limit";
-        }
-        if ($marker) {
-            $params[] = "marker=".rawurlencode($marker);
-        }
-        if (!empty($params)) {
-            $url_path .= "?" . implode("&", $params);
-        }
-
-        $this->_write_callback_type = "TEXT_LIST";
-        $return_code = $this->_send_request($conn_type, $url_path);
-
-        if (!$return_code) {
-            $this->error_str .= ": Failed to obtain valid HTTP response.";
-            return array(0,$this->error_str,array());
-        }
-        if ($return_code == 204) {
-            return array($return_code, "Account has no containers.", array());
-        }
-        if ($return_code == 404) {
-            $this->error_str = "Invalid account name for authentication token.";
-            return array($return_code,$this->error_str,array());
-        }
-        if ($return_code == 200) {
-	    $this->create_array();
-            return array($return_code, $this->response_reason, $this->_text_list);
-        }
-        $this->error_str = "Unexpected HTTP response: ".$this->response_reason;
-        return array($return_code,$this->error_str,array());
-    }
-
-    # GET /v1/Account?format=json
-    #
-    function list_containers_info($limit=0, $marker=NULL)
-    {
-        $conn_type = "GET_CALL";
-        $url_path = $this->_make_path() . "?format=json";
-
-        $limit = intval($limit);
-        $params = array();
-        if ($limit > 0) {
-            $params[] = "limit=$limit";
-        }
-        if ($marker) {
-            $params[] = "marker=".rawurlencode($marker);
-        }
-        if (!empty($params)) {
-            $url_path .= "&" . implode("&", $params);
-        }
-
-        $this->_write_callback_type = "OBJECT_STRING";
-        $return_code = $this->_send_request($conn_type, $url_path);
-
-        if (!$return_code) {
-            $this->error_str .= ": Failed to obtain valid HTTP response.";
-            return array(0,$this->error_str,array());
-        }
-        if ($return_code == 204) {
-            return array($return_code, "Account has no containers.", array());
-        }
-        if ($return_code == 404) {
-            $this->error_str = "Invalid account name for authentication token.";
-            return array($return_code,$this->error_str,array());
-        }
-        if ($return_code == 200) {
-            $json_body = json_decode($this->_obj_write_string, True);
-            return array($return_code, $this->response_reason, $json_body);
-        }
-        $this->error_str = "Unexpected HTTP response: ".$this->response_reason;
-        return array($return_code,$this->error_str,array());
-    }
-
-    # HEAD /v1/Account
-    #
-    function head_account()
-    {
-        $conn_type = "HEAD";
-
-        $url_path = $this->_make_path();
-        $return_code = $this->_send_request($conn_type,$url_path);
-
-        if (!$return_code) {
-            $this->error_str .= ": Failed to obtain valid HTTP response.";
-            array(0,$this->error_str,0,0);
-        }
-        if ($return_code == 404) {
-            return array($return_code,"Account not found.",0,0);
-        }
-        if ($return_code == 204) {
-            return array($return_code,$this->response_reason,
-                $this->_account_container_count, $this->_account_bytes_used);
-        }
-        return array($return_code,$this->response_reason,0,0);
-    }
-
-    # PUT /v1/Account/Container
-    #
-    function create_container($container_name)
-    {
-        if ($container_name == "")
-            throw new SyntaxException("Container name not set.");
-
-        if ($container_name != "0" and !isset($container_name))
-            throw new SyntaxException("Container name not set.");
-
-        $url_path = $this->_make_path("STORAGE", $container_name);
-        $return_code = $this->_send_request("PUT_CONT",$url_path);
-
-        if (!$return_code) {
-            $this->error_str .= ": Failed to obtain valid HTTP response.";
-            return False;
-        }
-        return $return_code;
-    }
-
-    # DELETE /v1/Account/Container
-    #
-    function delete_container($container_name)
-    {
-        if ($container_name == "")
-            throw new SyntaxException("Container name not set.");
-
-        if ($container_name != "0" and !isset($container_name))
-            throw new SyntaxException("Container name not set.");
-
-        $url_path = $this->_make_path("STORAGE", $container_name);
-        $return_code = $this->_send_request("DEL_POST",$url_path,array(),"DELETE");
-
-        if (!$return_code) {
-            $this->error_str .= ": Failed to obtain valid HTTP response.";
-        }
-        if ($return_code == 409) {
-            $this->error_str = "Container must be empty prior to removing it.";
-        }
-        if ($return_code == 404) {
-            $this->error_str = "Specified container did not exist to delete.";
-        }
-        if ($return_code != 204) {
-            $this->error_str = "Unexpected HTTP return code: $return_code.";
-        }
-        return $return_code;
-    }
-
-    # GET /v1/Account/Container
-    #
-    function list_objects($cname,$limit=0,$marker=NULL,$prefix=NULL,$path=NULL)
-    {
-        if (!$cname) {
-            $this->error_str = "Container name not set.";
-            return array(0, $this->error_str, array());
-        }
-
-        $url_path = $this->_make_path("STORAGE", $cname);
-
-        $limit = intval($limit);
-        $params = array();
-        if ($limit > 0) {
-            $params[] = "limit=$limit";
-        }
-        if ($marker) {
-            $params[] = "marker=".rawurlencode($marker);
-        }
-        if ($prefix) {
-            $params[] = "prefix=".rawurlencode($prefix);
-        }
-        if ($path) {
-            $params[] = "path=".rawurlencode($path);
-        }
-        if (!empty($params)) {
-            $url_path .= "?" . implode("&", $params);
-        }
-
-        $conn_type = "GET_CALL";
-        $this->_write_callback_type = "TEXT_LIST";
-        $return_code = $this->_send_request($conn_type,$url_path);
-
-        if (!$return_code) {
-            $this->error_str .= ": Failed to obtain valid HTTP response.";
-            return array(0,$this->error_str,array());
-        }
-        if ($return_code == 204) {
-            $this->error_str = "Container has no Objects.";
-            return array($return_code,$this->error_str,array());
-        }
-        if ($return_code == 404) {
-            $this->error_str = "Container has no Objects.";
-            return array($return_code,$this->error_str,array());
-        }
-        if ($return_code == 200) {
-	    $this->create_array();
-            return array($return_code,$this->response_reason, $this->_text_list);
-        }
-        $this->error_str = "Unexpected HTTP response code: $return_code";
-        return array(0,$this->error_str,array());
-    }
-
-    # GET /v1/Account/Container?format=json
-    #
-    function get_objects($cname,$limit=0,$marker=NULL,$prefix=NULL,$path=NULL)
-    {
-        if (!$cname) {
-            $this->error_str = "Container name not set.";
-            return array(0, $this->error_str, array());
-        }
-
-        $url_path = $this->_make_path("STORAGE", $cname);
-
-        $limit = intval($limit);
-        $params = array();
-        $params[] = "format=json";
-        if ($limit > 0) {
-            $params[] = "limit=$limit";
-        }
-        if ($marker) {
-            $params[] = "marker=".rawurlencode($marker);
-        }
-        if ($prefix) {
-            $params[] = "prefix=".rawurlencode($prefix);
-        }
-        if ($path) {
-            $params[] = "path=".rawurlencode($path);
-        }
-        if (!empty($params)) {
-            $url_path .= "?" . implode("&", $params);
-        }
-
-        $conn_type = "GET_CALL";
-        $this->_write_callback_type = "OBJECT_STRING";
-        $return_code = $this->_send_request($conn_type,$url_path);
-
-        if (!$return_code) {
-            $this->error_str .= ": Failed to obtain valid HTTP response.";
-            return array(0,$this->error_str,array());
-        }
-        if ($return_code == 204) {
-            $this->error_str = "Container has no Objects.";
-            return array($return_code,$this->error_str,array());
-        }
-        if ($return_code == 404) {
-            $this->error_str = "Container has no Objects.";
-            return array($return_code,$this->error_str,array());
-        }
-        if ($return_code == 200) {
-            $json_body = json_decode($this->_obj_write_string, True);
-            return array($return_code,$this->response_reason, $json_body);
-        }
-        $this->error_str = "Unexpected HTTP response code: $return_code";
-        return array(0,$this->error_str,array());
-    }
-
-
-    # HEAD /v1/Account/Container
-    #
-    function head_container($container_name)
-    {
-
-        if ($container_name == "") {
-            $this->error_str = "Container name not set.";
-            return False;
-        }
-
-        if ($container_name != "0" and !isset($container_name)) {
-            $this->error_str = "Container name not set.";
-            return False;
-        }
-
-        $conn_type = "HEAD";
-
-        $url_path = $this->_make_path("STORAGE", $container_name);
-        $return_code = $this->_send_request($conn_type,$url_path);
-
-        if (!$return_code) {
-            $this->error_str .= ": Failed to obtain valid HTTP response.";
-            array(0,$this->error_str,0,0);
-        }
-        if ($return_code == 404) {
-            return array($return_code,"Container not found.",0,0);
-        }
-        if ($return_code == 204 or 200) {
-            return array($return_code,$this->response_reason,
-                $this->_container_object_count, $this->_container_bytes_used);
-        }
-        return array($return_code,$this->response_reason,0,0);
-    }
-
-    # GET /v1/Account/Container/Object
-    #
-    function get_object_to_string(&$obj, $hdrs=array())
-    {
-        if (!is_object($obj) || get_class($obj) != "CF_Object") {
-            throw new SyntaxException(
-                "Method argument is not a valid CF_Object.");
-        }
-
-        $conn_type = "GET_CALL";
-
-        $url_path = $this->_make_path("STORAGE", $obj->container->name,$obj->name);
-        $this->_write_callback_type = "OBJECT_STRING";
-        $return_code = $this->_send_request($conn_type,$url_path,$hdrs);
-
-        if (!$return_code) {
-            $this->error_str .= ": Failed to obtain valid HTTP response.";
-            return array($return_code0,$this->error_str,NULL);
-        }
-        if ($return_code == 404) {
-            $this->error_str = "Object not found.";
-            return array($return_code0,$this->error_str,NULL);
-        }
-        if (($return_code < 200) || ($return_code > 299
-                && $return_code != 412 && $return_code != 304)) {
-            $this->error_str = "Unexpected HTTP return code: $return_code";
-            return array($return_code,$this->error_str,NULL);
-        }
-        return array($return_code,$this->response_reason, $this->_obj_write_string);
-    }
-
-    # GET /v1/Account/Container/Object
-    #
-    function get_object_to_stream(&$obj, &$resource=NULL, $hdrs=array())
-    {
-        if (!is_object($obj) || get_class($obj) != "CF_Object") {
-            throw new SyntaxException(
-                "Method argument is not a valid CF_Object.");
-        }
-        if (!is_resource($resource)) {
-            throw new SyntaxException(
-                "Resource argument not a valid PHP resource.");
-        }
-
-        $conn_type = "GET_CALL";
-
-        $url_path = $this->_make_path("STORAGE", $obj->container->name,$obj->name);
-        $this->_obj_write_resource = $resource;
-        $this->_write_callback_type = "OBJECT_STREAM";
-        $return_code = $this->_send_request($conn_type,$url_path,$hdrs);
-
-        if (!$return_code) {
-            $this->error_str .= ": Failed to obtain valid HTTP response.";
-            return array($return_code,$this->error_str);
-        }
-        if ($return_code == 404) {
-            $this->error_str = "Object not found.";
-            return array($return_code,$this->error_str);
-        }
-        if (($return_code < 200) || ($return_code > 299
-                && $return_code != 412 && $return_code != 304)) {
-            $this->error_str = "Unexpected HTTP return code: $return_code";
-            return array($return_code,$this->error_str);
-        }
-        return array($return_code,$this->response_reason);
-    }
-
-    # PUT /v1/Account/Container/Object
-    #
-    function put_object(&$obj, &$fp)
-    {
-        if (!is_object($obj) || get_class($obj) != "CF_Object") {
-            throw new SyntaxException(
-                "Method argument is not a valid CF_Object.");
-        }
-        if (!is_resource($fp)) {
-            throw new SyntaxException(
-                "File pointer argument is not a valid resource.");
-        }
-
-        $conn_type = "PUT_OBJ";
-        $url_path = $this->_make_path("STORAGE", $obj->container->name,$obj->name);
-
-        $hdrs = $this->_metadata_headers($obj);
-
-        $etag = $obj->getETag();
-        if (isset($etag)) {
-            $hdrs[] = "ETag: " . $etag;
-        }
-        if (!$obj->content_type) {
-            $hdrs[] = "Content-Type: application/octet-stream";
-        } else {
-            $hdrs[] = "Content-Type: " . $obj->content_type;
-        }
-
-        $this->_init($conn_type);
-        curl_setopt($this->connections[$conn_type],
-                CURLOPT_INFILE, $fp);
-        if (!$obj->content_length) {
-            # We don''t know the Content-Length, so assumed "chunked" PUT
-            #
-            curl_setopt($this->connections[$conn_type], CURLOPT_UPLOAD, True);
-            $hdrs[] = 'Transfer-Encoding: chunked';
-        } else {
-            # We know the Content-Length, so use regular transfer
-            #
-            curl_setopt($this->connections[$conn_type],
-                    CURLOPT_INFILESIZE, $obj->content_length);
-        }
-        $return_code = $this->_send_request($conn_type,$url_path,$hdrs);
-
-        if (!$return_code) {
-            $this->error_str .= ": Failed to obtain valid HTTP response.";
-            return array(0,$this->error_str,NULL);
-        }
-        if ($return_code == 412) {
-            $this->error_str = "Missing Content-Type header";
-            return array($return_code,$this->error_str,NULL);
-        }
-        if ($return_code == 422) {
-            $this->error_str = "Derived and computed checksums do not match.";
-            return array($return_code,$this->error_str,NULL);
-        }
-        if ($return_code != 201) {
-            $this->error_str = "Unexpected HTTP return code: $return_code";
-            return array($return_code,$this->error_str,NULL);
-        }
-        return array($return_code,$this->response_reason,$this->_obj_etag);
-    }
-
-    # POST /v1/Account/Container/Object
-    #
-    function update_object(&$obj)
-    {
-        if (!is_object($obj) || get_class($obj) != "CF_Object") {
-            throw new SyntaxException(
-                "Method argument is not a valid CF_Object.");
-        }
-
-        if (!is_array($obj->metadata) || empty($obj->metadata)) {
-            $this->error_str = "Metadata array is empty.";
-            return 0;
-        }
-
-        $url_path = $this->_make_path("STORAGE", $obj->container->name,$obj->name);
-
-        $hdrs = $this->_metadata_headers($obj);
-        $return_code = $this->_send_request("DEL_POST",$url_path,$hdrs,"POST");
-        if (!$return_code) {
-            $this->error_str .= ": Failed to obtain valid HTTP response.";
-            return 0;
-        }
-        if ($return_code == 404) {
-            $this->error_str = "Account, Container, or Object not found.";
-        }
-        if ($return_code != 202) {
-            $this->error_str = "Unexpected HTTP return code: $return_code";
-        }
-        return $return_code;
-    }
-
-    # HEAD /v1/Account/Container/Object
-    #
-    function head_object(&$obj)
-    {
-        if (!is_object($obj) || get_class($obj) != "CF_Object") {
-            throw new SyntaxException(
-                "Method argument is not a valid CF_Object.");
-        }
-
-        $conn_type = "HEAD";
-
-        $url_path = $this->_make_path("STORAGE", $obj->container->name,$obj->name);
-        $return_code = $this->_send_request($conn_type,$url_path);
-
-        if (!$return_code) {
-            $this->error_str .= ": Failed to obtain valid HTTP response.";
-            return array(0, $this->error_str." ".$this->response_reason,
-                NULL, NULL, NULL, NULL, array());
-        }
-
-        if ($return_code == 404) {
-            return array($return_code, $this->response_reason,
-                NULL, NULL, NULL, NULL, array());
-        }
-        if ($return_code == 204 or 200) {
-            return array($return_code,$this->response_reason,
-                $this->_obj_etag,
-                $this->_obj_last_modified,
-                $this->_obj_content_type,
-                $this->_obj_content_length,
-                $this->_obj_metadata);
-        }
-        $this->error_str = "Unexpected HTTP return code: $return_code";
-        return array($return_code, $this->error_str." ".$this->response_reason,
-                NULL, NULL, NULL, NULL, array());
-    }
-
-    # DELETE /v1/Account/Container/Object
-    #
-    function delete_object($container_name, $object_name)
-    {
-        if ($container_name == "") {
-            $this->error_str = "Container name not set.";
-            return 0;
-        }
-
-        if ($container_name != "0" and !isset($container_name)) {
-            $this->error_str = "Container name not set.";
-            return 0;
-        }
-
-        if (!$object_name) {
-            $this->error_str = "Object name not set.";
-            return 0;
-        }
-
-        $url_path = $this->_make_path("STORAGE", $container_name,$object_name);
-        $return_code = $this->_send_request("DEL_POST",$url_path,NULL,"DELETE");
-        if (!$return_code) {
-            $this->error_str .= ": Failed to obtain valid HTTP response.";
-            return 0;
-        }
-        if ($return_code == 404) {
-            $this->error_str = "Specified container did not exist to delete.";
-        }
-        if ($return_code != 204) {
-            $this->error_str = "Unexpected HTTP return code: $return_code.";
-        }
-        return $return_code;
-    }
-
-    function get_error()
-    {
-        return $this->error_str;
-    }
-
-    function setDebug($bool)
-    {
-        $this->dbug = $bool;
-        foreach ($this->connections as $k => $v) {
-            if (!is_null($v)) {
-                curl_setopt($this->connections[$k], CURLOPT_VERBOSE, $this->dbug);
-            }
-        }
-    }
-
-    function getCDNMUrl()
-    {
-        return $this->cdnm_url;
-    }
-
-    function getStorageUrl()
-    {
-        return $this->storage_url;
-    }
-
-    function getAuthToken()
-    {
-        return $this->auth_token;
-    }
-
-    function setCFAuth($cfs_auth, $servicenet=False)
-    {
-        if ($servicenet) {
-            $this->storage_url = "https://snet-" . substr($cfs_auth->storage_url, 8);
-        } else {
-            $this->storage_url = $cfs_auth->storage_url;
-        }
-        $this->auth_token = $cfs_auth->auth_token;
-        $this->cdnm_url = $cfs_auth->cdnm_url;
-    }
-
-    function setReadProgressFunc($func_name)
-    {
-        $this->_user_read_progress_callback_func = $func_name;
-    }
-
-    function setWriteProgressFunc($func_name)
-    {
-        $this->_user_write_progress_callback_func = $func_name;
-    }
-
-    private function _header_cb($ch, $header)
-    {
-        preg_match("/^HTTP\/1\.[01] (\d{3}) (.*)/", $header, $matches);
-        if (isset($matches[1])) {
-            $this->response_status = $matches[1];
-        }
-        if (isset($matches[2])) {
-            $this->response_reason = $matches[2];
-        }
-        if (stripos($header, CDN_ENABLED) === 0) {
-            $val = trim(substr($header, strlen(CDN_ENABLED)+1));
-            if (strtolower($val) == "true") {
-                $this->_cdn_enabled = True;
-            } elseif (strtolower($val) == "false") {
-                $this->_cdn_enabled = False;
-            } else {
-                $this->_cdn_enabled = NULL;
-            }
-            return strlen($header);
-        }
-        if (stripos($header, CDN_URI) === 0) {
-            $this->_cdn_uri = trim(substr($header, strlen(CDN_URI)+1));
-            return strlen($header);
-        }
-        if (stripos($header, CDN_TTL) === 0) {
-            $this->_cdn_ttl = trim(substr($header, strlen(CDN_TTL)+1))+0;
-            return strlen($header);
-        }
-        if (stripos($header, CDN_LOG_RETENTION) === 0) {
-            $this->_cdn_log_retention =
-                trim(substr($header, strlen(CDN_LOG_RETENTION)+1)) == "True" ? True : False;
-            return strlen($header);
-        }
-
-        if (stripos($header, CDN_ACL_USER_AGENT) === 0) {
-            $this->_cdn_acl_user_agent =
-                trim(substr($header, strlen(CDN_ACL_USER_AGENT)+1));
-            return strlen($header);
-        }
-
-        if (stripos($header, CDN_ACL_REFERRER) === 0) {
-            $this->_cdn_acl_referrer =
-                trim(substr($header, strlen(CDN_ACL_REFERRER)+1));
-            return strlen($header);
-        }
-
-        if (stripos($header, ACCOUNT_CONTAINER_COUNT) === 0) {
-            $this->_account_container_count = (float) trim(substr($header,
-                    strlen(ACCOUNT_CONTAINER_COUNT)+1))+0;
-            return strlen($header);
-        }
-        if (stripos($header, ACCOUNT_BYTES_USED) === 0) {
-            $this->_account_bytes_used = (float) trim(substr($header,
-                    strlen(ACCOUNT_BYTES_USED)+1))+0;
-            return strlen($header);
-        }
-        if (stripos($header, CONTAINER_OBJ_COUNT) === 0) {
-            $this->_container_object_count = (float) trim(substr($header,
-                    strlen(CONTAINER_OBJ_COUNT)+1))+0;
-            return strlen($header);
-        }
-        if (stripos($header, CONTAINER_BYTES_USED) === 0) {
-            $this->_container_bytes_used = (float) trim(substr($header,
-                    strlen(CONTAINER_BYTES_USED)+1))+0;
-            return strlen($header);
-        }
-        if (stripos($header, METADATA_HEADER) === 0) {
-            # $header => X-Object-Meta-Foo: bar baz
-            $temp = substr($header, strlen(METADATA_HEADER));
-            # $temp => Foo: bar baz
-            $parts = explode(":", $temp);
-            # $parts[0] => Foo
-            $val = substr(strstr($temp, ":"), 1);
-            # $val => bar baz
-            $this->_obj_metadata[$parts[0]] = trim($val);
-            return strlen($header);
-        }
-        if (stripos($header, "ETag:") === 0) {
-            # $header => ETag: abc123def456...
-            $val = substr(strstr($header, ":"), 1);
-            # $val => abc123def456...
-            $this->_obj_etag = trim($val);
-            return strlen($header);
-        }
-        if (stripos($header, "Last-Modified:") === 0) {
-            $val = substr(strstr($header, ":"), 1);
-            $this->_obj_last_modified = trim($val);
-            return strlen($header);
-        }
-        if (stripos($header, "Content-Type:") === 0) {
-            $val = substr(strstr($header, ":"), 1);
-            $this->_obj_content_type = trim($val);
-            return strlen($header);
-        }
-        if (stripos($header, "Content-Length:") === 0) {
-            $val = substr(strstr($header, ":"), 1);
-            $this->_obj_content_length = (float) trim($val)+0;
-            return strlen($header);
-        }
-        return strlen($header);
-    }
-
-    private function _read_cb($ch, $fd, $length)
-    {
-        $data = fread($fd, $length);
-        $len = strlen($data);
-        if (isset($this->_user_write_progress_callback_func)) {
-            call_user_func($this->_user_write_progress_callback_func, $len);
-        }
-        return $data;
-    }
-
-    private function _write_cb($ch, $data)
-    {
-        $dlen = strlen($data);
-        switch ($this->_write_callback_type) {
-        case "TEXT_LIST":
-	     $this->_return_list = $this->_return_list . $data;
-	     //= explode("\n",$data); # keep tab,space
-	     //his->_text_list[] = rtrim($data,"\n\r\x0B"); # keep tab,space
-            break;
-        case "OBJECT_STREAM":
-            fwrite($this->_obj_write_resource, $data, $dlen);
-            break;
-        case "OBJECT_STRING":
-            $this->_obj_write_string .= $data;
-            break;
-        }
-        if (isset($this->_user_read_progress_callback_func)) {
-            call_user_func($this->_user_read_progress_callback_func, $dlen);
-        }
-        return $dlen;
-    }
-
-    private function _auth_hdr_cb($ch, $header)
-    {
-        preg_match("/^HTTP\/1\.[01] (\d{3}) (.*)/", $header, $matches);
-        if (isset($matches[1])) {
-            $this->response_status = $matches[1];
-        }
-        if (isset($matches[2])) {
-            $this->response_reason = $matches[2];
-        }
-        if (stripos($header, STORAGE_URL) === 0) {
-            $this->storage_url = trim(substr($header, strlen(STORAGE_URL)+1));
-        }
-        if (stripos($header, CDNM_URL) === 0) {
-            $this->cdnm_url = trim(substr($header, strlen(CDNM_URL)+1));
-        }
-        if (stripos($header, AUTH_TOKEN) === 0) {
-            $this->auth_token = trim(substr($header, strlen(AUTH_TOKEN)+1));
-        }
-        if (stripos($header, AUTH_TOKEN_LEGACY) === 0) {
-            $this->auth_token = trim(substr($header,strlen(AUTH_TOKEN_LEGACY)+1));
-        }
-        return strlen($header);
-    }
-
-    private function _make_headers($hdrs=NULL)
-    {
-        $new_headers = array();
-        $has_stoken = False;
-        $has_uagent = False;
-        if (is_array($hdrs)) {
-            foreach ($hdrs as $h => $v) {
-                if (is_int($h)) {
-                    $parts = explode(":", $v);
-                    $header = $parts[0];
-                    $value = trim(substr(strstr($v, ":"), 1));
-                } else {
-                    $header = $h;
-                    $value = trim($v);
-                }
-
-                if (stripos($header, AUTH_TOKEN) === 0) {
-                    $has_stoken = True;
-                }
-                if (stripos($header, "user-agent") === 0) {
-                    $has_uagent = True;
-                }
-                $new_headers[] = $header . ": " . $value;
-            }
-        }
-        if (!$has_stoken) {
-            $new_headers[] = AUTH_TOKEN . ": " . $this->auth_token;
-        }
-        if (!$has_uagent) {
-            $new_headers[] = "User-Agent: " . USER_AGENT;
-        }
-        return $new_headers;
-    }
-
-    private function _init($conn_type, $force_new=False)
-    {
-        if (!array_key_exists($conn_type, $this->connections)) {
-            $this->error_str = "Invalid CURL_XXX connection type";
-            return False;
-        }
-
-        if (is_null($this->connections[$conn_type]) || $force_new) {
-            $ch = curl_init();
-        } else {
-            return;
-        }
-
-        if ($this->dbug) { curl_setopt($ch, CURLOPT_VERBOSE, 1); }
-
-        if (!is_null($this->cabundle_path)) {
-            curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, True);
-            curl_setopt($ch, CURLOPT_CAINFO, $this->cabundle_path);
-        }
-	curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, True);
-        curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
-        curl_setopt($ch, CURLOPT_MAXREDIRS, 4);
-        curl_setopt($ch, CURLOPT_HEADER, 0);
-        curl_setopt($ch, CURLOPT_HEADERFUNCTION, array(&$this, '_header_cb'));
-
-        if ($conn_type == "GET_CALL") {
-            curl_setopt($ch, CURLOPT_WRITEFUNCTION, array(&$this, '_write_cb'));
-        }
-
-        if ($conn_type == "PUT_OBJ") {
-            curl_setopt($ch, CURLOPT_PUT, 1);
-            curl_setopt($ch, CURLOPT_READFUNCTION, array(&$this, '_read_cb'));
-	    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
-        }
-        if ($conn_type == "HEAD") {
-            curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "HEAD");
-            curl_setopt($ch, CURLOPT_NOBODY, 1);
-        }
-        if ($conn_type == "PUT_CONT") {
-            curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "PUT");
-            curl_setopt($ch, CURLOPT_INFILESIZE, 0);
-	    curl_setopt($ch, CURLOPT_NOBODY, 1);
-        }
-        if ($conn_type == "DEL_POST") {
-        	curl_setopt($ch, CURLOPT_NOBODY, 1);
-	}
-        $this->connections[$conn_type] = $ch;
-        return;
-    }
-
-    private function _reset_callback_vars()
-    {
-        $this->_text_list = array();
-	$this->_return_list = NULL;
-        $this->_account_container_count = 0;
-        $this->_account_bytes_used = 0;
-        $this->_container_object_count = 0;
-        $this->_container_bytes_used = 0;
-        $this->_obj_etag = NULL;
-        $this->_obj_last_modified = NULL;
-        $this->_obj_content_type = NULL;
-        $this->_obj_content_length = NULL;
-        $this->_obj_metadata = array();
-        $this->_obj_write_string = "";
-        $this->_cdn_enabled = NULL;
-        $this->_cdn_uri = NULL;
-        $this->_cdn_ttl = NULL;
-        $this->response_status = 0;
-        $this->response_reason = "";
-    }
-
-    private function _make_path($t="STORAGE",$c=NULL,$o=NULL)
-    {
-        $path = array();
-        switch ($t) {
-        case "STORAGE":
-            $path[] = $this->storage_url; break;
-        case "CDN":
-            $path[] = $this->cdnm_url; break;
-        }
-        if ($c == "0")
-            $path[] = rawurlencode($c);
-
-        if ($c) {
-            $path[] = rawurlencode($c);
-        }
-        if ($o) {
-            # mimic Python''s urllib.quote() feature of a "safe" '/' character
-            #
-            $path[] = str_replace("%2F","/",rawurlencode($o));
-        }
-        return implode("/",$path);
-    }
-
-    private function _metadata_headers(&$obj)
-    {
-        $hdrs = array();
-        foreach ($obj->metadata as $k => $v) {
-            if (strpos($k,":") !== False) {
-                throw new SyntaxException(
-                    "Metadata keys cannot contain a ':' character.");
-            }
-            $k = trim($k);
-            $key = sprintf("%s%s", METADATA_HEADER, $k);
-            if (!array_key_exists($key, $hdrs)) {
-                if (strlen($k) > 128 || strlen($v) > 256) {
-                    $this->error_str = "Metadata key or value exceeds ";
-                    $this->error_str .= "maximum length: ($k: $v)";
-                    return 0;
-                }
-                $hdrs[] = sprintf("%s%s: %s", METADATA_HEADER, $k, trim($v));
-            }
-        }
-        return $hdrs;
-    }
-
-    private function _send_request($conn_type, $url_path, $hdrs=NULL, $method="GET")
-    {
-        $this->_init($conn_type);
-        $this->_reset_callback_vars();
-        $headers = $this->_make_headers($hdrs);
-
-        if (gettype($this->connections[$conn_type]) == "unknown type")
-            throw new ConnectionNotOpenException (
-                "Connection is not open."
-                );
-
-        switch ($method) {
-        case "DELETE":
-            curl_setopt($this->connections[$conn_type],
-                CURLOPT_CUSTOMREQUEST, "DELETE");
-            break;
-        case "POST":
-            curl_setopt($this->connections[$conn_type],
-                CURLOPT_CUSTOMREQUEST, "POST");
-        default:
-            break;
-        }
-
-        curl_setopt($this->connections[$conn_type],
-                    CURLOPT_HTTPHEADER, $headers);
-
-        curl_setopt($this->connections[$conn_type],
-            CURLOPT_URL, $url_path);
-
-        if (!curl_exec($this->connections[$conn_type]) && curl_errno($this->connections[$conn_type]) !== 0) {
-            $this->error_str = "(curl error: "
-                . curl_errno($this->connections[$conn_type]) . ") ";
-            $this->error_str .= curl_error($this->connections[$conn_type]);
-            return False;
-        }
-        return curl_getinfo($this->connections[$conn_type], CURLINFO_HTTP_CODE);
-    }
-
-    function close()
-    {
-        foreach ($this->connections as $cnx) {
-            if (isset($cnx)) {
-                curl_close($cnx);
-                $this->connections[$cnx] = NULL;
-            }
-        }
-    }
-    private function create_array()
-    {
-	$this->_text_list = explode("\n",rtrim($this->_return_list,"\n\x0B"));
-	return True;
-    }
-
-}
-
-/* vim: set expandtab tabstop=4 shiftwidth=4 softtabstop=4: */
-
-/*
- * Local variables:
- * tab-width: 4
- * c-basic-offset: 4
- * c-hanging-comment-ender-p: nil
- * End:
- */
-?>
diff --git a/cloudfiles/share/cacert.pem b/cloudfiles/share/cacert.pem
deleted file mode 100644
index 10cd6b9..0000000
--- a/cloudfiles/share/cacert.pem
+++ /dev/null
@@ -1,3113 +0,0 @@
-##
-## cacert.pem-foo -- Bundle of CA Root Certificates
-##
-## Converted at: Sat Aug 23 21:39:56 2008 UTC
-##
-## This is a bundle of X.509 certificates of public Certificate Authorities
-## (CA). These were automatically extracted from Mozilla's root certificates
-## file (certdata.txt).  This file can be found in the mozilla source tree:
-## '/mozilla/security/nss/lib/ckfw/builtins/certdata.txt'
-##
-## It contains the certificates in PEM format and therefore
-## can be directly used with curl / libcurl / php_curl, or with
-## an Apache+mod_ssl webserver for SSL client authentication.
-## Just configure this file as the SSLCACertificateFile.
-##
-
-# ***** 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 *****
-# @(#) $RCSfile: certdata.txt,v $ $Revision: 1.49 $ $Date: 2008/08/14 18:15:56 $
-
-Verisign/RSA Secure Server CA
-=============================
------BEGIN CERTIFICATE-----
-MIICNDCCAaECEAKtZn5ORf5eV288mBle3cAwDQYJKoZIhvcNAQECBQAwXzELMAkGA1UEBhMCVVMx
-IDAeBgNVBAoTF1JTQSBEYXRhIFNlY3VyaXR5LCBJbmMuMS4wLAYDVQQLEyVTZWN1cmUgU2VydmVy
-IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MB4XDTk0MTEwOTAwMDAwMFoXDTEwMDEwNzIzNTk1OVow
-XzELMAkGA1UEBhMCVVMxIDAeBgNVBAoTF1JTQSBEYXRhIFNlY3VyaXR5LCBJbmMuMS4wLAYDVQQL
-EyVTZWN1cmUgU2VydmVyIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MIGbMA0GCSqGSIb3DQEBAQUA
-A4GJADCBhQJ+AJLOesGugz5aqomDV6wlAXYMra6OLDfO6zV4ZFQD5YRAUcm/jwjiioII0haGN1Xp
-sSECrXZogZoFokvJSyVmIlZsiAeP94FZbYQHZXATcXY+m3dM41CJVphIuR2nKRoTLkoRWZweFdVJ
-VCxzOmmCsZc5nG1wZ0jl3S3WyB57AgMBAAEwDQYJKoZIhvcNAQECBQADfgBl3X7hsuyw4jrg7HFG
-mhkRuNPHoLQDQCYCPgmc4RKz0Vr2N6W3YQO2WxZpO8ZECAyIUwxrl0nHPjXcbLm7qt9cuzovk2C2
-qUtN8iD3zV9/ZHuO3ABc1/p3yjkWWW8O6tO1g39NTUJWdrTJXwT4OPjr0l91X817/OWOgHz8UA==
------END CERTIFICATE-----
-
-GTE CyberTrust Root CA
-======================
------BEGIN CERTIFICATE-----
-MIIB+jCCAWMCAgGjMA0GCSqGSIb3DQEBBAUAMEUxCzAJBgNVBAYTAlVTMRgwFgYDVQQKEw9HVEUg
-Q29ycG9yYXRpb24xHDAaBgNVBAMTE0dURSBDeWJlclRydXN0IFJvb3QwHhcNOTYwMjIzMjMwMTAw
-WhcNMDYwMjIzMjM1OTAwWjBFMQswCQYDVQQGEwJVUzEYMBYGA1UEChMPR1RFIENvcnBvcmF0aW9u
-MRwwGgYDVQQDExNHVEUgQ3liZXJUcnVzdCBSb290MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKB
-gQC45k+625h8cXyvRLfTD0bZZOWTwUKOx7pJjTUteueLveUFMVnGsS8KDPufpz+iCWaEVh43KRuH
-6X4MypqfpX/1FZSj1aJGgthoTNE3FQZor734sLPwKfWVWgkWYXcKIiXUT0Wqx73llt/51KiOQswk
-wB6RJ0q1bQaAYznEol44AwIDAQABMA0GCSqGSIb3DQEBBAUAA4GBABKzdcZfHeFhVYAA1IFLezEP
-I2PnPfMD+fQ2qLvZ46WXTeorKeDWanOB5sCJo9Px4KWlIjeaY8JIILTbcuPI9tl8vrGvU9oUtCG4
-1tWW4/5ODFlitppK+ULdjG+BqXH/9ApybW1EDp3zdHSo1TRJ6V6e6bR64eVaH4QwnNOfpSXY
------END CERTIFICATE-----
-
-GTE CyberTrust Global Root
-==========================
------BEGIN CERTIFICATE-----
-MIICWjCCAcMCAgGlMA0GCSqGSIb3DQEBBAUAMHUxCzAJBgNVBAYTAlVTMRgwFgYDVQQKEw9HVEUg
-Q29ycG9yYXRpb24xJzAlBgNVBAsTHkdURSBDeWJlclRydXN0IFNvbHV0aW9ucywgSW5jLjEjMCEG
-A1UEAxMaR1RFIEN5YmVyVHJ1c3QgR2xvYmFsIFJvb3QwHhcNOTgwODEzMDAyOTAwWhcNMTgwODEz
-MjM1OTAwWjB1MQswCQYDVQQGEwJVUzEYMBYGA1UEChMPR1RFIENvcnBvcmF0aW9uMScwJQYDVQQL
-Ex5HVEUgQ3liZXJUcnVzdCBTb2x1dGlvbnMsIEluYy4xIzAhBgNVBAMTGkdURSBDeWJlclRydXN0
-IEdsb2JhbCBSb290MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCVD6C28FCc6HrHiM3dFw4u
-sJTQGz0O9pTAipTHBsiQl8i4ZBp6fmw8U+E3KHNgf7KXUwefU/ltWJTSr41tiGeA5u2ylc9yMcql
-HHK6XALnZELn+aks1joNrI1CqiQBOeacPwGFVw1Yh0X404Wqk2kmhXBIgD8SFcd5tB8FLztimQID
-AQABMA0GCSqGSIb3DQEBBAUAA4GBAG3rGwnpXtlR22ciYaQqPEh346B8pt5zohQDhT37qw4wxYMW
-M4ETCJ57NE7fQMh017l93PR2VX2bY1QY6fDq81yx2YtCHrnAlU66+tXifPVoYb+O7AWXX1uw16OF
-NMQkpw0PlZPvy5TYnh+dXIVtx6quTx8itc2VrbqnzPmrC3p/
------END CERTIFICATE-----
-
-Thawte Personal Basic CA
-========================
------BEGIN CERTIFICATE-----
-MIIDITCCAoqgAwIBAgIBADANBgkqhkiG9w0BAQQFADCByzELMAkGA1UEBhMCWkExFTATBgNVBAgT
-DFdlc3Rlcm4gQ2FwZTESMBAGA1UEBxMJQ2FwZSBUb3duMRowGAYDVQQKExFUaGF3dGUgQ29uc3Vs
-dGluZzEoMCYGA1UECxMfQ2VydGlmaWNhdGlvbiBTZXJ2aWNlcyBEaXZpc2lvbjEhMB8GA1UEAxMY
-VGhhd3RlIFBlcnNvbmFsIEJhc2ljIENBMSgwJgYJKoZIhvcNAQkBFhlwZXJzb25hbC1iYXNpY0B0
-aGF3dGUuY29tMB4XDTk2MDEwMTAwMDAwMFoXDTIwMTIzMTIzNTk1OVowgcsxCzAJBgNVBAYTAlpB
-MRUwEwYDVQQIEwxXZXN0ZXJuIENhcGUxEjAQBgNVBAcTCUNhcGUgVG93bjEaMBgGA1UEChMRVGhh
-d3RlIENvbnN1bHRpbmcxKDAmBgNVBAsTH0NlcnRpZmljYXRpb24gU2VydmljZXMgRGl2aXNpb24x
-ITAfBgNVBAMTGFRoYXd0ZSBQZXJzb25hbCBCYXNpYyBDQTEoMCYGCSqGSIb3DQEJARYZcGVyc29u
-YWwtYmFzaWNAdGhhd3RlLmNvbTCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAvLyTU23AUE+C
-FeZIlDWmWr5vQvoPR+53dXLdjUmbllegeNTKP1GzaQuRdhciB5dqxFGTS+CN7zeVoQxN2jSQHReJ
-l+A1OFdKwPQIcOk8RHtQfmGakOMj04gRRif1CwcOu93RfyAKiLlWCy4cgNrx454p7xS9CkT7G1sY
-0b8jkyECAwEAAaMTMBEwDwYDVR0TAQH/BAUwAwEB/zANBgkqhkiG9w0BAQQFAAOBgQAt4plrsD16
-iddZopQBHyvdEktTwq1/qqcAXJFAVyVKOKqEcLnZgA+le1z7c8a914phXAPjLSeoF+CEhULcXpvG
-t7Jtu3Sv5D/Lp7ew4F2+eIMllNLbgQ95B21P9DkVWlIBe94y1k049hJcBlDfBVu9FEuh3ym6O0GN
-92NWod8isQ==
------END CERTIFICATE-----
-
-Thawte Personal Premium CA
-==========================
------BEGIN CERTIFICATE-----
-MIIDKTCCApKgAwIBAgIBADANBgkqhkiG9w0BAQQFADCBzzELMAkGA1UEBhMCWkExFTATBgNVBAgT
-DFdlc3Rlcm4gQ2FwZTESMBAGA1UEBxMJQ2FwZSBUb3duMRowGAYDVQQKExFUaGF3dGUgQ29uc3Vs
-dGluZzEoMCYGA1UECxMfQ2VydGlmaWNhdGlvbiBTZXJ2aWNlcyBEaXZpc2lvbjEjMCEGA1UEAxMa
-VGhhd3RlIFBlcnNvbmFsIFByZW1pdW0gQ0ExKjAoBgkqhkiG9w0BCQEWG3BlcnNvbmFsLXByZW1p
-dW1AdGhhd3RlLmNvbTAeFw05NjAxMDEwMDAwMDBaFw0yMDEyMzEyMzU5NTlaMIHPMQswCQYDVQQG
-EwJaQTEVMBMGA1UECBMMV2VzdGVybiBDYXBlMRIwEAYDVQQHEwlDYXBlIFRvd24xGjAYBgNVBAoT
-EVRoYXd0ZSBDb25zdWx0aW5nMSgwJgYDVQQLEx9DZXJ0aWZpY2F0aW9uIFNlcnZpY2VzIERpdmlz
-aW9uMSMwIQYDVQQDExpUaGF3dGUgUGVyc29uYWwgUHJlbWl1bSBDQTEqMCgGCSqGSIb3DQEJARYb
-cGVyc29uYWwtcHJlbWl1bUB0aGF3dGUuY29tMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDJ
-Ztn4B0TPuYwu8KHvE0VsBd/eJxZRNkERbGw77f4QfRKe5ZtCmv5gMcNmt3M6SK5O0DI3lIi1DbbZ
-8/JE2dWIEt12TfIa/G8jHnrx2JhFTgcQ7xZC0EN1bUre4qrJMf8fAHB8Zs8QJQi6+u4A6UYDZicR
-FTuqW/KY3TZCstqIdQIDAQABoxMwETAPBgNVHRMBAf8EBTADAQH/MA0GCSqGSIb3DQEBBAUAA4GB
-AGk2ifc0KjNyL2071CKyuG+axTZmDhs8obF1Wub9NdP4qPIHb4Vnjt4rueIXsDqg8A6iAJrf8xQV
-brvIhVqYgPn/vnQdPfP+MCXRNzRn+qVxeTBhKXLA4CxM+1bkOqhv5TJZUtt1KFBZDPgLGeSs2a+W
-jS9Q2wfD6h+rM+D1KzGJ
------END CERTIFICATE-----
-
-Thawte Personal Freemail CA
-===========================
------BEGIN CERTIFICATE-----
-MIIDLTCCApagAwIBAgIBADANBgkqhkiG9w0BAQQFADCB0TELMAkGA1UEBhMCWkExFTATBgNVBAgT
-DFdlc3Rlcm4gQ2FwZTESMBAGA1UEBxMJQ2FwZSBUb3duMRowGAYDVQQKExFUaGF3dGUgQ29uc3Vs
-dGluZzEoMCYGA1UECxMfQ2VydGlmaWNhdGlvbiBTZXJ2aWNlcyBEaXZpc2lvbjEkMCIGA1UEAxMb
-VGhhd3RlIFBlcnNvbmFsIEZyZWVtYWlsIENBMSswKQYJKoZIhvcNAQkBFhxwZXJzb25hbC1mcmVl
-bWFpbEB0aGF3dGUuY29tMB4XDTk2MDEwMTAwMDAwMFoXDTIwMTIzMTIzNTk1OVowgdExCzAJBgNV
-BAYTAlpBMRUwEwYDVQQIEwxXZXN0ZXJuIENhcGUxEjAQBgNVBAcTCUNhcGUgVG93bjEaMBgGA1UE
-ChMRVGhhd3RlIENvbnN1bHRpbmcxKDAmBgNVBAsTH0NlcnRpZmljYXRpb24gU2VydmljZXMgRGl2
-aXNpb24xJDAiBgNVBAMTG1RoYXd0ZSBQZXJzb25hbCBGcmVlbWFpbCBDQTErMCkGCSqGSIb3DQEJ
-ARYccGVyc29uYWwtZnJlZW1haWxAdGhhd3RlLmNvbTCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkC
-gYEA1GnX1LCUZFtx6UfYDFG26nKRsIRefS0Nj3sS34UldSh0OkIsYyeflXtL734Zhx2G6qPduc6W
-ZBrCFG5ErHzmj+hND3EfQDimAKOHePb5lIZererAXnbr2RSjXW56fAylS1V/Bhkpf56aJtVquzgk
-CGqYx7Hao5iR/Xnb5VrEHLkCAwEAAaMTMBEwDwYDVR0TAQH/BAUwAwEB/zANBgkqhkiG9w0BAQQF
-AAOBgQDH7JJ+Tvj1lqVnYiqk8E0RYNBvjWBYYawmu1I1XAjPMPuoSpaKH2JCI4wXD/S6ZJwXrEcp
-352YXtJsYHFcoqzceePnbgBHH7UNKOgCneSa/RP0ptl8sfjcXyMmCZGAc9AUG95DqYMl8uacLxXK
-/qarigd1iwzdUYRr5PjRzneigQ==
------END CERTIFICATE-----
-
-Thawte Server CA
-================
------BEGIN CERTIFICATE-----
-MIIDEzCCAnygAwIBAgIBATANBgkqhkiG9w0BAQQFADCBxDELMAkGA1UEBhMCWkExFTATBgNVBAgT
-DFdlc3Rlcm4gQ2FwZTESMBAGA1UEBxMJQ2FwZSBUb3duMR0wGwYDVQQKExRUaGF3dGUgQ29uc3Vs
-dGluZyBjYzEoMCYGA1UECxMfQ2VydGlmaWNhdGlvbiBTZXJ2aWNlcyBEaXZpc2lvbjEZMBcGA1UE
-AxMQVGhhd3RlIFNlcnZlciBDQTEmMCQGCSqGSIb3DQEJARYXc2VydmVyLWNlcnRzQHRoYXd0ZS5j
-b20wHhcNOTYwODAxMDAwMDAwWhcNMjAxMjMxMjM1OTU5WjCBxDELMAkGA1UEBhMCWkExFTATBgNV
-BAgTDFdlc3Rlcm4gQ2FwZTESMBAGA1UEBxMJQ2FwZSBUb3duMR0wGwYDVQQKExRUaGF3dGUgQ29u
-c3VsdGluZyBjYzEoMCYGA1UECxMfQ2VydGlmaWNhdGlvbiBTZXJ2aWNlcyBEaXZpc2lvbjEZMBcG
-A1UEAxMQVGhhd3RlIFNlcnZlciBDQTEmMCQGCSqGSIb3DQEJARYXc2VydmVyLWNlcnRzQHRoYXd0
-ZS5jb20wgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBANOkUG7I/1Zr5s9dtuoMaHVHoqrC2oQl
-/Kj0R1HahbUgdJSGHg91yekIYfUGbTBuFRkC6VLAYttNmZ7iagxEOM3+vuNkCXDF/rFrKbYvScg7
-1CcEJRCXL+eQbcAoQpnXTEPew/UhbVSfXcNY4cDk2VuwuNy0e982OsK1ZiIS1ocNAgMBAAGjEzAR
-MA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQEEBQADgYEAB/pMaVz7lcxG7oWDTSEwjsrZqG9J
-GubaUeNgcGyEYRGhGshIPllDfU+VPaGLtwtimHp1it2ITk6eQNuozDJ0uW8NxuOzRAvZim+aKZuZ
-GCg70eNAKJpaPNW15yAbi8qkq43pUdniTCxZqdq5snUb9kLy78fyGPmJvKP/iiMucEc=
------END CERTIFICATE-----
-
-Thawte Premium Server CA
-========================
------BEGIN CERTIFICATE-----
-MIIDJzCCApCgAwIBAgIBATANBgkqhkiG9w0BAQQFADCBzjELMAkGA1UEBhMCWkExFTATBgNVBAgT
-DFdlc3Rlcm4gQ2FwZTESMBAGA1UEBxMJQ2FwZSBUb3duMR0wGwYDVQQKExRUaGF3dGUgQ29uc3Vs
-dGluZyBjYzEoMCYGA1UECxMfQ2VydGlmaWNhdGlvbiBTZXJ2aWNlcyBEaXZpc2lvbjEhMB8GA1UE
-AxMYVGhhd3RlIFByZW1pdW0gU2VydmVyIENBMSgwJgYJKoZIhvcNAQkBFhlwcmVtaXVtLXNlcnZl
-ckB0aGF3dGUuY29tMB4XDTk2MDgwMTAwMDAwMFoXDTIwMTIzMTIzNTk1OVowgc4xCzAJBgNVBAYT
-AlpBMRUwEwYDVQQIEwxXZXN0ZXJuIENhcGUxEjAQBgNVBAcTCUNhcGUgVG93bjEdMBsGA1UEChMU
-VGhhd3RlIENvbnN1bHRpbmcgY2MxKDAmBgNVBAsTH0NlcnRpZmljYXRpb24gU2VydmljZXMgRGl2
-aXNpb24xITAfBgNVBAMTGFRoYXd0ZSBQcmVtaXVtIFNlcnZlciBDQTEoMCYGCSqGSIb3DQEJARYZ
-cHJlbWl1bS1zZXJ2ZXJAdGhhd3RlLmNvbTCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEA0jY2
-aovXwlue2oFBYo847kkEVdbQ7xwblRZH7xhINTpS9CtqBo87L+pW46+GjZ4X9560ZXUCTe/LCaIh
-Udib0GfQug2SBhRz1JPLlyoAnFxODLz6FVL88kRu2hFKbgifLy3j+ao6hnO2RlNYyIkFvYMRuHM/
-qgeN9EJN50CdHDcCAwEAAaMTMBEwDwYDVR0TAQH/BAUwAwEB/zANBgkqhkiG9w0BAQQFAAOBgQAm
-SCwWwlj66BZ0DKqqX1Q/8tfJeGBeXm43YyJ3Nn6yF8Q0ufUIhfzJATj/Tb7yFkJD57taRvvBxhEf
-8UqwKEbJw8RCfbz6q1lu1bdRiBHjpIUZa4JMpAwSremkrj/xw0llmozFyD4lt5SZu5IycQfwhl7t
-UCemDaYj+bvLpgcUQg==
------END CERTIFICATE-----
-
-Equifax Secure CA
-=================
------BEGIN CERTIFICATE-----
-MIIDIDCCAomgAwIBAgIENd70zzANBgkqhkiG9w0BAQUFADBOMQswCQYDVQQGEwJVUzEQMA4GA1UE
-ChMHRXF1aWZheDEtMCsGA1UECxMkRXF1aWZheCBTZWN1cmUgQ2VydGlmaWNhdGUgQXV0aG9yaXR5
-MB4XDTk4MDgyMjE2NDE1MVoXDTE4MDgyMjE2NDE1MVowTjELMAkGA1UEBhMCVVMxEDAOBgNVBAoT
-B0VxdWlmYXgxLTArBgNVBAsTJEVxdWlmYXggU2VjdXJlIENlcnRpZmljYXRlIEF1dGhvcml0eTCB
-nzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAwV2xWGcIYu6gmi0fCG2RFGiYCh7+2gRvE4RiIcPR
-fM6fBeC4AfBONOziipUEZKzxa1NfBbPLZ4C/QgKO/t0BCezhABRP/PvwDN1Dulsr4R+AcJkVV5MW
-8Q+XarfCaCMczE1ZMKxRHjuvK9buY0V7xdlfUNLjUA86iOe/FP3gx7kCAwEAAaOCAQkwggEFMHAG
-A1UdHwRpMGcwZaBjoGGkXzBdMQswCQYDVQQGEwJVUzEQMA4GA1UEChMHRXF1aWZheDEtMCsGA1UE
-CxMkRXF1aWZheCBTZWN1cmUgQ2VydGlmaWNhdGUgQXV0aG9yaXR5MQ0wCwYDVQQDEwRDUkwxMBoG
-A1UdEAQTMBGBDzIwMTgwODIyMTY0MTUxWjALBgNVHQ8EBAMCAQYwHwYDVR0jBBgwFoAUSOZo+SvS
-spXXR9gjIBBPM5iQn9QwHQYDVR0OBBYEFEjmaPkr0rKV10fYIyAQTzOYkJ/UMAwGA1UdEwQFMAMB
-Af8wGgYJKoZIhvZ9B0EABA0wCxsFVjMuMGMDAgbAMA0GCSqGSIb3DQEBBQUAA4GBAFjOKer89961
-zgK5F7WF0bnj4JXMJTENAKaSbn+2kmOeUJXRmm/kEd5jhW6Y7qj/WsjTVbJmcVfewCHrPSqnI0kB
-BIZCe/zuf6IWUrVnZ9NA2zsmWLIodz2uFHdh1voqZiegDfqnc1zqcPGUIWVEX/r87yloqaKHee95
-70+sB3c4
------END CERTIFICATE-----
-
-ABAecom (sub., Am. Bankers Assn.) Root CA
-=========================================
------BEGIN CERTIFICATE-----
-MIIDtTCCAp2gAwIBAgIRANAeQJAAAEZSAAAAAQAAAAQwDQYJKoZIhvcNAQEFBQAwgYkxCzAJBgNV
-BAYTAlVTMQswCQYDVQQIEwJEQzETMBEGA1UEBxMKV2FzaGluZ3RvbjEXMBUGA1UEChMOQUJBLkVD
-T00sIElOQy4xGTAXBgNVBAMTEEFCQS5FQ09NIFJvb3QgQ0ExJDAiBgkqhkiG9w0BCQEWFWFkbWlu
-QGRpZ3NpZ3RydXN0LmNvbTAeFw05OTA3MTIxNzMzNTNaFw0wOTA3MDkxNzMzNTNaMIGJMQswCQYD
-VQQGEwJVUzELMAkGA1UECBMCREMxEzARBgNVBAcTCldhc2hpbmd0b24xFzAVBgNVBAoTDkFCQS5F
-Q09NLCBJTkMuMRkwFwYDVQQDExBBQkEuRUNPTSBSb290IENBMSQwIgYJKoZIhvcNAQkBFhVhZG1p
-bkBkaWdzaWd0cnVzdC5jb20wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCx0xHgeVVD
-BwhMywVCAOINg0Y95JO6tgbTDVm9PsHOQ2cBiiGo77zM0KLMsFWWU4RmBQDaREmA2FQKpSWGlO1j
-Vv9wbKOhGdJ4vmgqRF4vz8wYXke8OrFGPR7wuSw0X4x8TAgpnUBV6zx9g9618PeKgw6hTLQ6pbNf
-WiKX7BmbwQVo/ea3qZGULOR4SCQaJRk665WcOQqKz0Ky8BzVX/tr7WhWezkscjiw7pOp03t3POtx
-A6k4ShZsiSrK2jMTecJVjO2cu/LLWxD4LmE1xilMKtAqY9FlWbT4zfn0AIS2V0KFnTKo+SpU+/94
-Qby9cSj0u5C8/5Y0BONFnqFGKECBAgMBAAGjFjAUMBIGA1UdEwEB/wQIMAYBAf8CAQgwDQYJKoZI
-hvcNAQEFBQADggEBAARvJYbk5pYntNlCwNDJALF/VD6Hsm0kqS8Kfv2kRLD4VAe9G52dyntQJHsR
-W0mjpr8SdNWJt7cvmGQlFLdh6X9ggGvTZOirvRrWUfrAtF13Gn9kCF55xgVM8XrdTX3O5kh7VNJh
-koHWG9YA8A6eKHegTYjHInYZw8eeG6Z3ePhfm1bR8PIXrI6dWeYf/le22V7hXZ9F7GFoGUHhsiAm
-/lowdiT/QHI8eZ98IkirRs3bs4Ysj78FQdPB4xTjQRcm0HyncUwZ6EoPclgxfexgeqMiKL0ZJGA/
-O4dzwGvky663qyVDslUte6sGDnVdNOVdc22esnVApVnJTzFxiNmIf1Q=
------END CERTIFICATE-----
-
-Digital Signature Trust Co. Global CA 1
-=======================================
------BEGIN CERTIFICATE-----
-MIIDKTCCApKgAwIBAgIENnAVljANBgkqhkiG9w0BAQUFADBGMQswCQYDVQQGEwJVUzEkMCIGA1UE
-ChMbRGlnaXRhbCBTaWduYXR1cmUgVHJ1c3QgQ28uMREwDwYDVQQLEwhEU1RDQSBFMTAeFw05ODEy
-MTAxODEwMjNaFw0xODEyMTAxODQwMjNaMEYxCzAJBgNVBAYTAlVTMSQwIgYDVQQKExtEaWdpdGFs
-IFNpZ25hdHVyZSBUcnVzdCBDby4xETAPBgNVBAsTCERTVENBIEUxMIGdMA0GCSqGSIb3DQEBAQUA
-A4GLADCBhwKBgQCgbIGpzzQeJN3+hijM3oMv+V7UQtLodGBmE5gGHKlREmlvMVW5SXIACH7TpWJE
-NySZj9mDSI+ZbZUTu0M7LklOiDfBu1h//uG9+LthzfNHwJmm8fOR6Hh8AMthyUQncWlVSn5JTe2i
-o74CTADKAqjuAQIxZA9SLRN0dja1erQtcQIBA6OCASQwggEgMBEGCWCGSAGG+EIBAQQEAwIABzBo
-BgNVHR8EYTBfMF2gW6BZpFcwVTELMAkGA1UEBhMCVVMxJDAiBgNVBAoTG0RpZ2l0YWwgU2lnbmF0
-dXJlIFRydXN0IENvLjERMA8GA1UECxMIRFNUQ0EgRTExDTALBgNVBAMTBENSTDEwKwYDVR0QBCQw
-IoAPMTk5ODEyMTAxODEwMjNagQ8yMDE4MTIxMDE4MTAyM1owCwYDVR0PBAQDAgEGMB8GA1UdIwQY
-MBaAFGp5fpFpRhgTCgJ3pVlbYJglDqL4MB0GA1UdDgQWBBRqeX6RaUYYEwoCd6VZW2CYJQ6i+DAM
-BgNVHRMEBTADAQH/MBkGCSqGSIb2fQdBAAQMMAobBFY0LjADAgSQMA0GCSqGSIb3DQEBBQUAA4GB
-ACIS2Hod3IEGtgllsofIH160L+nEHvI8wbsEkBFKg05+k7lNQseSJqBcNJo4cvj9axY+IO6CizEq
-kzaFI4iKPANo08kJD038bKTaKHKTDomAsH3+gG9lbRgzl4vCa4nuYD3Im+9/KzJic5PLPON74nZ4
-RbyhkwS7hp86W0N6w4pl
------END CERTIFICATE-----
-
-Digital Signature Trust Co. Global CA 3
-=======================================
------BEGIN CERTIFICATE-----
-MIIDKTCCApKgAwIBAgIENm7TzjANBgkqhkiG9w0BAQUFADBGMQswCQYDVQQGEwJVUzEkMCIGA1UE
-ChMbRGlnaXRhbCBTaWduYXR1cmUgVHJ1c3QgQ28uMREwDwYDVQQLEwhEU1RDQSBFMjAeFw05ODEy
-MDkxOTE3MjZaFw0xODEyMDkxOTQ3MjZaMEYxCzAJBgNVBAYTAlVTMSQwIgYDVQQKExtEaWdpdGFs
-IFNpZ25hdHVyZSBUcnVzdCBDby4xETAPBgNVBAsTCERTVENBIEUyMIGdMA0GCSqGSIb3DQEBAQUA
-A4GLADCBhwKBgQC/k48Xku8zExjrEH9OFr//Bo8qhbxe+SSmJIi2A7fBw18DW9Fvrn5C6mYjuGOD
-VvsoLeE4i7TuqAHhzhy2iCoiRoX7n6dwqUcUP87eZfCocfdPJmyMvMa1795JJ/9IKn3oTQPMx7JS
-xhcxEzu1TdvIxPbDDyQq2gyd55FbgM2UnQIBA6OCASQwggEgMBEGCWCGSAGG+EIBAQQEAwIABzBo
-BgNVHR8EYTBfMF2gW6BZpFcwVTELMAkGA1UEBhMCVVMxJDAiBgNVBAoTG0RpZ2l0YWwgU2lnbmF0
-dXJlIFRydXN0IENvLjERMA8GA1UECxMIRFNUQ0EgRTIxDTALBgNVBAMTBENSTDEwKwYDVR0QBCQw
-IoAPMTk5ODEyMDkxOTE3MjZagQ8yMDE4MTIwOTE5MTcyNlowCwYDVR0PBAQDAgEGMB8GA1UdIwQY
-MBaAFB6CTShlgDzJQW6sNS5ay97u+DlbMB0GA1UdDgQWBBQegk0oZYA8yUFurDUuWsve7vg5WzAM
-BgNVHRMEBTADAQH/MBkGCSqGSIb2fQdBAAQMMAobBFY0LjADAgSQMA0GCSqGSIb3DQEBBQUAA4GB
-AEeNg61i8tuwnkUiBbmi1gMOOHLnnvx75pO2mqWilMg0HZHRxdf0CiUPPXiBng+xZ8SQTGPdXqfi
-up/1902lMXucKS1M/mQ+7LZT/uqb7YLbdHVLB3luHtgZg3Pe9T7Qtd7nS2h9Qy4qIOF+oHhEngj1
-mPnHfxsb1gYgAlihw6ID
------END CERTIFICATE-----
-
-Digital Signature Trust Co. Global CA 2
-=======================================
------BEGIN CERTIFICATE-----
-MIID2DCCAsACEQDQHkCLAAACfAAAAAIAAAABMA0GCSqGSIb3DQEBBQUAMIGpMQswCQYDVQQGEwJ1
-czENMAsGA1UECBMEVXRhaDEXMBUGA1UEBxMOU2FsdCBMYWtlIENpdHkxJDAiBgNVBAoTG0RpZ2l0
-YWwgU2lnbmF0dXJlIFRydXN0IENvLjERMA8GA1UECxMIRFNUQ0EgWDExFjAUBgNVBAMTDURTVCBS
-b290Q0EgWDExITAfBgkqhkiG9w0BCQEWEmNhQGRpZ3NpZ3RydXN0LmNvbTAeFw05ODEyMDExODE4
-NTVaFw0wODExMjgxODE4NTVaMIGpMQswCQYDVQQGEwJ1czENMAsGA1UECBMEVXRhaDEXMBUGA1UE
-BxMOU2FsdCBMYWtlIENpdHkxJDAiBgNVBAoTG0RpZ2l0YWwgU2lnbmF0dXJlIFRydXN0IENvLjER
-MA8GA1UECxMIRFNUQ0EgWDExFjAUBgNVBAMTDURTVCBSb290Q0EgWDExITAfBgkqhkiG9w0BCQEW
-EmNhQGRpZ3NpZ3RydXN0LmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANLGJrbn
-pT3BxGjVUG9TxW9JEwm4ryxIjRRqoxdfWvnTLnUv2Chi0ZMv/E3Uq4flCMeZ55I/db3rJbQVwZsZ
-PdJEjdd0IG03Ao9pk1uKxBmd9LIO/BZsubEFkoPRhSxglD5FVaDZqwgh5mDoO3TymVBRaNADLbGA
-vqPYUrBEzUNKcI5YhZXhTizWLUFv1oTnyJhEykfbLCSlaSbPa7gnYsP0yXqSI+0TZ4KuRS5F5X5y
-P4WdlGIQ5jyRoa13AOAV7POEgHJ6jm5gl8ckWRA0g1vhpaRptlc1HHhZxtMvOnNn7pTKBBMFYgZw
-I7P0fO5F2WQLW0mqpEPOJsREEmy43XkCAwEAATANBgkqhkiG9w0BAQUFAAOCAQEAojeyP2n714Z5
-VEkxlTMr89EJFEliYIalsBHiUMIdBlc+LegzZL6bqq1fG03UmZWii5rJYnK1aerZWKs17RWiQ9a2
-vAd5ZWRzfdd5ynvVWlHG4VMElo04z6MXrDlxawHDi1M8Y+nuecDkvpIyZHqzH5eUYr3qsiAVlfuX
-8ngvYzZAOONGDx3drJXK50uQe7FLqdTF65raqtWjlBRGjS0f8zrWkzr2Pnn86Oawde3uPclwx12q
-gUtGJRzHbBXjlU4PqjI3lAoXJJIThFjSY28r9+ZbYgsTF7ANUkz+/m9c4pFuHf2kYtdo+o56T9II
-2pPc8JIRetDccpMMc5NihWjQ9A==
------END CERTIFICATE-----
-
-Digital Signature Trust Co. Global CA 4
-=======================================
------BEGIN CERTIFICATE-----
-MIID2DCCAsACEQDQHkCLAAB3bQAAAAEAAAAEMA0GCSqGSIb3DQEBBQUAMIGpMQswCQYDVQQGEwJ1
-czENMAsGA1UECBMEVXRhaDEXMBUGA1UEBxMOU2FsdCBMYWtlIENpdHkxJDAiBgNVBAoTG0RpZ2l0
-YWwgU2lnbmF0dXJlIFRydXN0IENvLjERMA8GA1UECxMIRFNUQ0EgWDIxFjAUBgNVBAMTDURTVCBS
-b290Q0EgWDIxITAfBgkqhkiG9w0BCQEWEmNhQGRpZ3NpZ3RydXN0LmNvbTAeFw05ODExMzAyMjQ2
-MTZaFw0wODExMjcyMjQ2MTZaMIGpMQswCQYDVQQGEwJ1czENMAsGA1UECBMEVXRhaDEXMBUGA1UE
-BxMOU2FsdCBMYWtlIENpdHkxJDAiBgNVBAoTG0RpZ2l0YWwgU2lnbmF0dXJlIFRydXN0IENvLjER
-MA8GA1UECxMIRFNUQ0EgWDIxFjAUBgNVBAMTDURTVCBSb290Q0EgWDIxITAfBgkqhkiG9w0BCQEW
-EmNhQGRpZ3NpZ3RydXN0LmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANx18IzA
-dZaawGIfJvfE4Zrq4FZzW5nNAUSoCLbVp9oaBBg5kkp4o4HC9Xd6ULRw/5qrxsfKboNPQpj7Jgva
-3G3WqZlVUmfpKAOS3OWwBZoPFflrWXJW8vo5/Kpo7g8fEIMv/J36F5bdguPmRX3AS4BEH+0s4IT9
-kVySVGkl5WJp3OXuAFK9MwutdQKFp2RQLcUZGTDAJtvJ0/0uma1ZtQtN1EGuhUhDWdy3qOKi3sOP
-17ihYqZoUFLkzzGnlIXan0YyF1bl8utmPRL/Q9uY73fPy4GNNLHGUEom0eQ+QVCvbK4iNC7Va26D
-unm4dmVI2gkpZGMiuftHdoWMhkTLCdsCAwEAATANBgkqhkiG9w0BAQUFAAOCAQEAtTYOXeFhKFoR
-ZcA/gwN5Tb4opgsHAlKFzfiR0BBstWogWxyQ2TA8xkieil5k+aFxd+8EJx8H6+Qm93N0yUQYGmbT
-4EOvkTvRyyzYdFQ6HE3K1GjNI3wdEJ5F6fYAbqbNGf9PLCmPV03Ed5K+4EwJ+11EhmYhqLkyolbV
-6YyDfFk/xPEL553snr2cGA4+wjl5KLcDDQjLxufZATdQEOzMYRZA1K8xdHv8PzGn0EdzMzkbzE5q
-10mDEQb+64JYMzJM8FasHpwvVpp7wUocpf1VNs78lk30sPDst2yC7S8xmUJMqbINuBVd8d+6ybVK
-1GSYsyapMMj9puyrliGtf8J4tg==
------END CERTIFICATE-----
-
-Verisign Class 1 Public Primary Certification Authority
-=======================================================
------BEGIN CERTIFICATE-----
-MIICPTCCAaYCEQDNun9W8N/kvFT+IqyzcqpVMA0GCSqGSIb3DQEBAgUAMF8xCzAJBgNVBAYTAlVT
-MRcwFQYDVQQKEw5WZXJpU2lnbiwgSW5jLjE3MDUGA1UECxMuQ2xhc3MgMSBQdWJsaWMgUHJpbWFy
-eSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAeFw05NjAxMjkwMDAwMDBaFw0yODA4MDEyMzU5NTla
-MF8xCzAJBgNVBAYTAlVTMRcwFQYDVQQKEw5WZXJpU2lnbiwgSW5jLjE3MDUGA1UECxMuQ2xhc3Mg
-MSBQdWJsaWMgUHJpbWFyeSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTCBnzANBgkqhkiG9w0BAQEF
-AAOBjQAwgYkCgYEA5Rm/baNWYS2ZSHH2Z965jeu3noaACpEO+jglr0aIguVzqKCbJF0NH8xlbgyw
-0FaEGIeaBpsQoXPftFg5a27B9hXVqKg/qhIGjTGsf7A01480Z4gJzRQR4k5FVmkfeAKA2txHkSm7
-NsljXMXg1y2He6G3MrB7MLoqLzGq7qNn2tsCAwEAATANBgkqhkiG9w0BAQIFAAOBgQBMP7iLxmjf
-7kMzDl3ppssHhE16M/+SG/Q2rdiVIjZoEWx8QszznC7EBz8UsA9P/5CSdvnivErpj82ggAr3xSnx
-giJduLHdgSOjeyUVRjB5FvjqBUuUfx3CHMjjt/QQQDwTw18fU+hI5Ia0e6E1sHslurjTjqs/OJ0A
-NACY89FxlA==
------END CERTIFICATE-----
-
-Verisign Class 2 Public Primary Certification Authority
-=======================================================
------BEGIN CERTIFICATE-----
-MIICPDCCAaUCEC0b/EoXjaOR6+f/9YtFvgswDQYJKoZIhvcNAQECBQAwXzELMAkGA1UEBhMCVVMx
-FzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMTcwNQYDVQQLEy5DbGFzcyAyIFB1YmxpYyBQcmltYXJ5
-IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MB4XDTk2MDEyOTAwMDAwMFoXDTI4MDgwMTIzNTk1OVow
-XzELMAkGA1UEBhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMTcwNQYDVQQLEy5DbGFzcyAy
-IFB1YmxpYyBQcmltYXJ5IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MIGfMA0GCSqGSIb3DQEBAQUA
-A4GNADCBiQKBgQC2WoujDWojg4BrzzmH9CETMwZMJaLtVRKXxaeAufqDwSCg+i8VDXyhYGt+eSz6
-Bg86rvYbb7HS/y8oUl+DfUvEerf4Zh+AVPy3wo5ZShRXRtGak75BkQO7FYCTXOvnzAhsPz6zSvz/
-S2wj1VCCJkQZjiPDceoZJEcEnnW/yKYAHwIDAQABMA0GCSqGSIb3DQEBAgUAA4GBAIobK/o5wXTX
-XtgZZKJYSi034DNHD6zt96rbHuSLBlxgJ8pFUs4W7z8GZOeUaHxgMxURaa+dYo2jA1Rrpr7l7gUY
-YAS/QoD90KioHgE796Ncr6Pc5iaAIzy4RHT3Cq5Ji2F4zCS/iIqnDupzGUH9TQPwiNHleI2lKk/2
-lw0Xd8rY
------END CERTIFICATE-----
-
-Verisign Class 3 Public Primary Certification Authority
-=======================================================
------BEGIN CERTIFICATE-----
-MIICPDCCAaUCEHC65B0Q2Sk0tjjKewPMur8wDQYJKoZIhvcNAQECBQAwXzELMAkGA1UEBhMCVVMx
-FzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMTcwNQYDVQQLEy5DbGFzcyAzIFB1YmxpYyBQcmltYXJ5
-IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MB4XDTk2MDEyOTAwMDAwMFoXDTI4MDgwMTIzNTk1OVow
-XzELMAkGA1UEBhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMTcwNQYDVQQLEy5DbGFzcyAz
-IFB1YmxpYyBQcmltYXJ5IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MIGfMA0GCSqGSIb3DQEBAQUA
-A4GNADCBiQKBgQDJXFme8huKARS0EN8EQNvjV69qRUCPhAwL0TPZ2RHP7gJYHyX3KqhEBarsAx94
-f56TuZoAqiN91qyFomNFx3InzPRMxnVx0jnvT0Lwdd8KkMaOIG+YD/isI19wKTakyYbnsZogy1Ol
-hec9vn2a/iRFM9x2Fe0PonFkTGUugWhFpwIDAQABMA0GCSqGSIb3DQEBAgUAA4GBALtMEivPLCYA
-TxQT3ab7/AoRhIzzKBxnki98tsX63/Dolbwdj2wsqFHMc9ikwFPwTtYmwHYBV4GSXiHx0bH/59Ah
-WM1pF+NEHJwZRDmJXNycAA9WjQKZ7aKQRUzkuxCkPfAyAw7xzvjoyVGM5mKf5p/AfbdynMk2Omuf
-Tqj/ZA1k
------END CERTIFICATE-----
-
-Verisign Class 1 Public Primary Certification Authority - G2
-============================================================
------BEGIN CERTIFICATE-----
-MIIDAjCCAmsCEEzH6qqYPnHTkxD4PTqJkZIwDQYJKoZIhvcNAQEFBQAwgcExCzAJBgNVBAYTAlVT
-MRcwFQYDVQQKEw5WZXJpU2lnbiwgSW5jLjE8MDoGA1UECxMzQ2xhc3MgMSBQdWJsaWMgUHJpbWFy
-eSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSAtIEcyMTowOAYDVQQLEzEoYykgMTk5OCBWZXJpU2ln
-biwgSW5jLiAtIEZvciBhdXRob3JpemVkIHVzZSBvbmx5MR8wHQYDVQQLExZWZXJpU2lnbiBUcnVz
-dCBOZXR3b3JrMB4XDTk4MDUxODAwMDAwMFoXDTI4MDgwMTIzNTk1OVowgcExCzAJBgNVBAYTAlVT
-MRcwFQYDVQQKEw5WZXJpU2lnbiwgSW5jLjE8MDoGA1UECxMzQ2xhc3MgMSBQdWJsaWMgUHJpbWFy
-eSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSAtIEcyMTowOAYDVQQLEzEoYykgMTk5OCBWZXJpU2ln
-biwgSW5jLiAtIEZvciBhdXRob3JpemVkIHVzZSBvbmx5MR8wHQYDVQQLExZWZXJpU2lnbiBUcnVz
-dCBOZXR3b3JrMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCq0Lq+Fi24g9TK0g+8djHKlNgd
-k4xWArzZbxpvUjZudVYKVdPfQ4chEWWKfo+9Id5rMj8bhDSVBZ1BNeuS65bdqlk/AVNtmU/t5eIq
-WpDBucSmFc/IReumXY6cPvBkJHalzasab7bYe1FhbqZ/h8jit+U03EGI6glAvnOSPWvndQIDAQAB
-MA0GCSqGSIb3DQEBBQUAA4GBAKlPww3HZ74sy9mozS11534Vnjty637rXC0Jh9ZrbWB85a7FkCMM
-XErQr7Fd88e2CtvgFZMN3QO8x3aKtd1Pw5sTdbgBwObJW2uluIncrKTdcu1OofdPvAbT6shkdHvC
-lUGcZXNY8ZCaPGqxmMnEh7zPRW1F4m4iP/68DzFc6PLZ
------END CERTIFICATE-----
-
-Verisign Class 2 Public Primary Certification Authority - G2
-============================================================
------BEGIN CERTIFICATE-----
-MIIDAzCCAmwCEQC5L2DMiJ+hekYJuFtwbIqvMA0GCSqGSIb3DQEBBQUAMIHBMQswCQYDVQQGEwJV
-UzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xPDA6BgNVBAsTM0NsYXNzIDIgUHVibGljIFByaW1h
-cnkgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkgLSBHMjE6MDgGA1UECxMxKGMpIDE5OTggVmVyaVNp
-Z24sIEluYy4gLSBGb3IgYXV0aG9yaXplZCB1c2Ugb25seTEfMB0GA1UECxMWVmVyaVNpZ24gVHJ1
-c3QgTmV0d29yazAeFw05ODA1MTgwMDAwMDBaFw0yODA4MDEyMzU5NTlaMIHBMQswCQYDVQQGEwJV
-UzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xPDA6BgNVBAsTM0NsYXNzIDIgUHVibGljIFByaW1h
-cnkgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkgLSBHMjE6MDgGA1UECxMxKGMpIDE5OTggVmVyaVNp
-Z24sIEluYy4gLSBGb3IgYXV0aG9yaXplZCB1c2Ugb25seTEfMB0GA1UECxMWVmVyaVNpZ24gVHJ1
-c3QgTmV0d29yazCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAp4gBIXQs5xoD8JjhlzwPIQjx
-nNuX6Zr8wgQGE75fUsjMHiwSViy4AWkszJkfrbCWrnkE8hM5wXuYuggs6MKEEyyqaekJ9MepAqRC
-wiNPStjwDqL7MWzJ5m+ZJwf15vRMeJ5t60aG+rmGyVTyssSv1EYcWskVMP8NbPUtDm3Of3cCAwEA
-ATANBgkqhkiG9w0BAQUFAAOBgQByLvl/0fFx+8Se9sVeUYpAmLho+Jscg9jinb3/7aHmZuovCfTK
-1+qlK5X2JGCGTUQug6XELaDTrnhpb3LabK4I8GOSN+a7xDAXrXfMSTWqz9iP0b63GJZHc2pUIjRk
-LbYWm1lbtFFZOrMLFPQS32eg9K0yZF6xRnInjBJ7xUS0rg==
------END CERTIFICATE-----
-
-Verisign Class 3 Public Primary Certification Authority - G2
-============================================================
------BEGIN CERTIFICATE-----
-MIIDAjCCAmsCEH3Z/gfPqB63EHln+6eJNMYwDQYJKoZIhvcNAQEFBQAwgcExCzAJBgNVBAYTAlVT
-MRcwFQYDVQQKEw5WZXJpU2lnbiwgSW5jLjE8MDoGA1UECxMzQ2xhc3MgMyBQdWJsaWMgUHJpbWFy
-eSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSAtIEcyMTowOAYDVQQLEzEoYykgMTk5OCBWZXJpU2ln
-biwgSW5jLiAtIEZvciBhdXRob3JpemVkIHVzZSBvbmx5MR8wHQYDVQQLExZWZXJpU2lnbiBUcnVz
-dCBOZXR3b3JrMB4XDTk4MDUxODAwMDAwMFoXDTI4MDgwMTIzNTk1OVowgcExCzAJBgNVBAYTAlVT
-MRcwFQYDVQQKEw5WZXJpU2lnbiwgSW5jLjE8MDoGA1UECxMzQ2xhc3MgMyBQdWJsaWMgUHJpbWFy
-eSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSAtIEcyMTowOAYDVQQLEzEoYykgMTk5OCBWZXJpU2ln
-biwgSW5jLiAtIEZvciBhdXRob3JpemVkIHVzZSBvbmx5MR8wHQYDVQQLExZWZXJpU2lnbiBUcnVz
-dCBOZXR3b3JrMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDMXtERXVxp0KvTuWpMmR9ZmDCO
-FoUgRm1HP9SFIIThbbP4pO0M8RcPO/mn+SXXwc+EY/J8Y8+iR/LGWzOOZEAEaMGAuWQcRXfH2G71
-lSk8UOg013gfqLptQ5GVj0VXXn7F+8qkBOvqlzdUMG+7AUcyM83cV5tkaWH4mx0ciU9cZwIDAQAB
-MA0GCSqGSIb3DQEBBQUAA4GBAFFNzb5cy5gZnBWyATl4Lk0PZ3BwmcYQWpSkU01UbSuvDV1Ai2TT
-1+7eVmGSX6bEHRBhNtMsJzzoKQm5EWR0zLVznxxIqbxhAe7iF6YM40AIOw7n60RzKprxaZLvcRTD
-Oaxxp5EJb+RxBrO6WVcmeQD2+A2iMzAo1KpYoJ2daZH9
------END CERTIFICATE-----
-
-Verisign Class 4 Public Primary Certification Authority - G2
-============================================================
------BEGIN CERTIFICATE-----
-MIIDAjCCAmsCEDKIjprS9esTR/h/xCA3JfgwDQYJKoZIhvcNAQEFBQAwgcExCzAJBgNVBAYTAlVT
-MRcwFQYDVQQKEw5WZXJpU2lnbiwgSW5jLjE8MDoGA1UECxMzQ2xhc3MgNCBQdWJsaWMgUHJpbWFy
-eSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSAtIEcyMTowOAYDVQQLEzEoYykgMTk5OCBWZXJpU2ln
-biwgSW5jLiAtIEZvciBhdXRob3JpemVkIHVzZSBvbmx5MR8wHQYDVQQLExZWZXJpU2lnbiBUcnVz
-dCBOZXR3b3JrMB4XDTk4MDUxODAwMDAwMFoXDTI4MDgwMTIzNTk1OVowgcExCzAJBgNVBAYTAlVT
-MRcwFQYDVQQKEw5WZXJpU2lnbiwgSW5jLjE8MDoGA1UECxMzQ2xhc3MgNCBQdWJsaWMgUHJpbWFy
-eSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSAtIEcyMTowOAYDVQQLEzEoYykgMTk5OCBWZXJpU2ln
-biwgSW5jLiAtIEZvciBhdXRob3JpemVkIHVzZSBvbmx5MR8wHQYDVQQLExZWZXJpU2lnbiBUcnVz
-dCBOZXR3b3JrMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC68OTP+cSuhVS5B1f5j8V/aBH4
-xBewRNzjMHPVKmIquNDMHO0oW369atyzkSTKQWI8/AIBvxwWMZQFl3Zuoq29YRdsTjCG8FE3KlDH
-qGKB3FtKqsGgtG7rL+VXxbErQHDbWk2hjh+9Ax/YA9SPTJlxvOKCzFjomDqG04Y48wApHwIDAQAB
-MA0GCSqGSIb3DQEBBQUAA4GBAIWMEsGnuVAVess+rLhDityq3RS6iYF+ATwjcSGIL4LcY/oCRaxF
-WdcqWERbt5+BO5JoPeI3JPV7bI92NZYJqFmduc4jq3TWg/0ycyfYaT5DdPauxYma51N86Xv2S/PB
-ZYPejYqcPIiNOVn8qj8ijaHBZlCBckztImRPT8qAkbYp
------END CERTIFICATE-----
-
-GlobalSign Root CA
-==================
------BEGIN CERTIFICATE-----
-MIIDdTCCAl2gAwIBAgILBAAAAAABFUtaw5QwDQYJKoZIhvcNAQEFBQAwVzELMAkGA1UEBhMCQkUx
-GTAXBgNVBAoTEEdsb2JhbFNpZ24gbnYtc2ExEDAOBgNVBAsTB1Jvb3QgQ0ExGzAZBgNVBAMTEkds
-b2JhbFNpZ24gUm9vdCBDQTAeFw05ODA5MDExMjAwMDBaFw0yODAxMjgxMjAwMDBaMFcxCzAJBgNV
-BAYTAkJFMRkwFwYDVQQKExBHbG9iYWxTaWduIG52LXNhMRAwDgYDVQQLEwdSb290IENBMRswGQYD
-VQQDExJHbG9iYWxTaWduIFJvb3QgQ0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDa
-DuaZjc6j40+Kfvvxi4Mla+pIH/EqsLmVEQS98GPR4mdmzxzdzxtIK+6NiY6arymAZavpxy0Sy6sc
-THAHoT0KMM0VjU/43dSMUBUc71DuxC73/OlS8pF94G3VNTCOXkNz8kHp1Wrjsok6Vjk4bwY8iGlb
-Kk3Fp1S4bInMm/k8yuX9ifUSPJJ4ltbcdG6TRGHRjcdGsnUOhugZitVtbNV4FpWi6cgKOOvyJBNP
-c1STE4U6G7weNLWLBYy5d4ux2x8gkasJU26Qzns3dLlwR5EiUWMWea6xrkEmCMgZK9FGqkjWZCrX
-gzT/LCrBbBlDSgeF59N89iFo7+ryUp9/k5DPAgMBAAGjQjBAMA4GA1UdDwEB/wQEAwIBBjAPBgNV
-HRMBAf8EBTADAQH/MB0GA1UdDgQWBBRge2YaRQ2XyolQL30EzTSo//z9SzANBgkqhkiG9w0BAQUF
-AAOCAQEA1nPnfE920I2/7LqivjTFKDK1fPxsnCwrvQmeU79rXqoRSLblCKOzyj1hTdNGCbM+w6Dj
-Y1Ub8rrvrTnhQ7k4o+YviiY776BQVvnGCv04zcQLcFGUl5gE38NflNUVyRRBnMRddWQVDf9VMOyG
-j/8N7yy5Y0b2qvzfvGn9LhJIZJrglfCm7ymPAbEVtQwdpf5pLGkkeB6zpxxxYu7KyJesF12KwvhH
-hm4qxFYxldBniYUr+WymXUadDKqC5JlR3XC321Y9YeRq4VzW9v493kHMB65jUr9TU/Qr6cf9tveC
-X4XSQRjbgbMEHMUfpIBvFSDJ3gyICh3WZlXi/EjJKSZp4A==
------END CERTIFICATE-----
-
-GlobalSign Root CA - R2
-=======================
------BEGIN CERTIFICATE-----
-MIIDujCCAqKgAwIBAgILBAAAAAABD4Ym5g0wDQYJKoZIhvcNAQEFBQAwTDEgMB4GA1UECxMXR2xv
-YmFsU2lnbiBSb290IENBIC0gUjIxEzARBgNVBAoTCkdsb2JhbFNpZ24xEzARBgNVBAMTCkdsb2Jh
-bFNpZ24wHhcNMDYxMjE1MDgwMDAwWhcNMjExMjE1MDgwMDAwWjBMMSAwHgYDVQQLExdHbG9iYWxT
-aWduIFJvb3QgQ0EgLSBSMjETMBEGA1UEChMKR2xvYmFsU2lnbjETMBEGA1UEAxMKR2xvYmFsU2ln
-bjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKbPJA6+Lm8omUVCxKs+IVSbC9N/hHD6
-ErPLv4dfxn+G07IwXNb9rfF73OX4YJYJkhD10FPe+3t+c4isUoh7SqbKSaZeqKeMWhG8eoLrvozp
-s6yWJQeXSpkqBy+0Hne/ig+1AnwblrjFuTosvNYSuetZfeLQBoZfXklqtTleiDTsvHgMCJiEbKjN
-S7SgfQx5TfC4LcshytVsW33hoCmEofnTlEnLJGKRILzdC9XZzPnqJworc5HGnRusyMvo4KD0L5CL
-TfuwNhv2GXqF4G3yYROIXJ/gkwpRl4pazq+r1feqCapgvdzZX99yqWATXgAByUr6P6TqBwMhAo6C
-ygPCm48CAwEAAaOBnDCBmTAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4E
-FgQUm+IHV2ccHsBqBt5ZtJot39wZhi4wNgYDVR0fBC8wLTAroCmgJ4YlaHR0cDovL2NybC5nbG9i
-YWxzaWduLm5ldC9yb290LXIyLmNybDAfBgNVHSMEGDAWgBSb4gdXZxwewGoG3lm0mi3f3BmGLjAN
-BgkqhkiG9w0BAQUFAAOCAQEAmYFThxxol4aR7OBKuEQLq4GsJ0/WwbgcQ3izDJr86iw8bmEbTUsp
-9Z8FHSbBuOmDAGJFtqkIk7mpM0sYmsL4h4hO291xNBrBVNpGP+DTKqttVCL1OmLNIG+6KYnX3ZHu
-01yiPqFbQfXf5WRDLenVOavSot+3i9DAgBkcRcAtjOj4LaR0VknFBbVPFd5uRHg5h6h+u/N5GJG7
-9G+dwfCMNYxdAfvDbbnvRG15RjF+Cv6pgsH/76tuIMRQyV+dTZsXjAzlAcmgQWpzU/qlULRuJQ/7
-TBj0/VLZjmmx6BEP3ojY+x1J96relc8geMJgEtslQIxq/H5COEBkEveegeGTLg==
------END CERTIFICATE-----
-
-ValiCert Class 1 VA
-===================
------BEGIN CERTIFICATE-----
-MIIC5zCCAlACAQEwDQYJKoZIhvcNAQEFBQAwgbsxJDAiBgNVBAcTG1ZhbGlDZXJ0IFZhbGlkYXRp
-b24gTmV0d29yazEXMBUGA1UEChMOVmFsaUNlcnQsIEluYy4xNTAzBgNVBAsTLFZhbGlDZXJ0IENs
-YXNzIDEgUG9saWN5IFZhbGlkYXRpb24gQXV0aG9yaXR5MSEwHwYDVQQDExhodHRwOi8vd3d3LnZh
-bGljZXJ0LmNvbS8xIDAeBgkqhkiG9w0BCQEWEWluZm9AdmFsaWNlcnQuY29tMB4XDTk5MDYyNTIy
-MjM0OFoXDTE5MDYyNTIyMjM0OFowgbsxJDAiBgNVBAcTG1ZhbGlDZXJ0IFZhbGlkYXRpb24gTmV0
-d29yazEXMBUGA1UEChMOVmFsaUNlcnQsIEluYy4xNTAzBgNVBAsTLFZhbGlDZXJ0IENsYXNzIDEg
-UG9saWN5IFZhbGlkYXRpb24gQXV0aG9yaXR5MSEwHwYDVQQDExhodHRwOi8vd3d3LnZhbGljZXJ0
-LmNvbS8xIDAeBgkqhkiG9w0BCQEWEWluZm9AdmFsaWNlcnQuY29tMIGfMA0GCSqGSIb3DQEBAQUA
-A4GNADCBiQKBgQDYWYJ6ibiWuqYvaG9YLqdUHAZu9OqNSLwxlBfw8068srg1knaw0KWlAdcAAxIi
-GQj4/xEjm84H9b9pGib+TunRf50sQB1ZaG6m+FiwnRqP0z/x3BkGgagO4DrdyFNFCQbmD3DD+kCm
-DuJWBQ8YTfwggtFzVXSNdnKgHZ0dwN0/cQIDAQABMA0GCSqGSIb3DQEBBQUAA4GBAFBoPUn0LBwG
-lN+VYH+Wexf+T3GtZMjdd9LvWVXoP+iOBSoh8gfStadS/pyxtuJbdxdA6nLWI8sogTLDAHkY7FkX
-icnGah5xyf23dKUlRWnFSKsZ4UWKJWsZ7uW7EvV/96aNUcPwnXS3qT6gpf+2SQMT2iLM7XGCK5nP
-Orf1LXLI
------END CERTIFICATE-----
-
-ValiCert Class 2 VA
-===================
------BEGIN CERTIFICATE-----
-MIIC5zCCAlACAQEwDQYJKoZIhvcNAQEFBQAwgbsxJDAiBgNVBAcTG1ZhbGlDZXJ0IFZhbGlkYXRp
-b24gTmV0d29yazEXMBUGA1UEChMOVmFsaUNlcnQsIEluYy4xNTAzBgNVBAsTLFZhbGlDZXJ0IENs
-YXNzIDIgUG9saWN5IFZhbGlkYXRpb24gQXV0aG9yaXR5MSEwHwYDVQQDExhodHRwOi8vd3d3LnZh
-bGljZXJ0LmNvbS8xIDAeBgkqhkiG9w0BCQEWEWluZm9AdmFsaWNlcnQuY29tMB4XDTk5MDYyNjAw
-MTk1NFoXDTE5MDYyNjAwMTk1NFowgbsxJDAiBgNVBAcTG1ZhbGlDZXJ0IFZhbGlkYXRpb24gTmV0
-d29yazEXMBUGA1UEChMOVmFsaUNlcnQsIEluYy4xNTAzBgNVBAsTLFZhbGlDZXJ0IENsYXNzIDIg
-UG9saWN5IFZhbGlkYXRpb24gQXV0aG9yaXR5MSEwHwYDVQQDExhodHRwOi8vd3d3LnZhbGljZXJ0
-LmNvbS8xIDAeBgkqhkiG9w0BCQEWEWluZm9AdmFsaWNlcnQuY29tMIGfMA0GCSqGSIb3DQEBAQUA
-A4GNADCBiQKBgQDOOnHK5avIWZJV16vYdA757tn2VUdZZUcOBVXc65g2PFxTXdMwzzjsvUGJ7SVC
-CSRrCl6zfN1SLUzm1NZ9WlmpZdRJEy0kTRxQb7XBhVQ7/nHk01xC+YDgkRoKWzk2Z/M/VXwbP7Rf
-ZHM047QSv4dk+NoS/zcnwbNDu+97bi5p9wIDAQABMA0GCSqGSIb3DQEBBQUAA4GBADt/UG9vUJSZ
-SWI4OB9L+KXIPqeCgfYrx+jFzug6EILLGACOTb2oWH+heQC1u+mNr0HZDzTuIYEZoDJJKPTEjlbV
-UjP9UNV+mWwD5MlM/Mtsq2azSiGM5bUMMj4QssxsodyamEwCW/POuZ6lcg5Ktz885hZo+L7tdEy8
-W9ViH0Pd
------END CERTIFICATE-----
-
-RSA Root Certificate 1
-======================
------BEGIN CERTIFICATE-----
-MIIC5zCCAlACAQEwDQYJKoZIhvcNAQEFBQAwgbsxJDAiBgNVBAcTG1ZhbGlDZXJ0IFZhbGlkYXRp
-b24gTmV0d29yazEXMBUGA1UEChMOVmFsaUNlcnQsIEluYy4xNTAzBgNVBAsTLFZhbGlDZXJ0IENs
-YXNzIDMgUG9saWN5IFZhbGlkYXRpb24gQXV0aG9yaXR5MSEwHwYDVQQDExhodHRwOi8vd3d3LnZh
-bGljZXJ0LmNvbS8xIDAeBgkqhkiG9w0BCQEWEWluZm9AdmFsaWNlcnQuY29tMB4XDTk5MDYyNjAw
-MjIzM1oXDTE5MDYyNjAwMjIzM1owgbsxJDAiBgNVBAcTG1ZhbGlDZXJ0IFZhbGlkYXRpb24gTmV0
-d29yazEXMBUGA1UEChMOVmFsaUNlcnQsIEluYy4xNTAzBgNVBAsTLFZhbGlDZXJ0IENsYXNzIDMg
-UG9saWN5IFZhbGlkYXRpb24gQXV0aG9yaXR5MSEwHwYDVQQDExhodHRwOi8vd3d3LnZhbGljZXJ0
-LmNvbS8xIDAeBgkqhkiG9w0BCQEWEWluZm9AdmFsaWNlcnQuY29tMIGfMA0GCSqGSIb3DQEBAQUA
-A4GNADCBiQKBgQDjmFGWHOjVsQaBalfDcnWTq8+epvzzFlLWLU2fNUSoLgRNB0mKOCn1dzfnt6td
-3zZxFJmP3MKS8edgkpfs2Ejcv8ECIMYkpChMMFp2bbFc893enhBxoYjHW5tBbcqwuI4V7q0zK89H
-BFx1cQqYJJgpp0lZpd34t0NiYfPT4tBVPwIDAQABMA0GCSqGSIb3DQEBBQUAA4GBAFa7AliEZwgs
-3x/be0kz9dNnnfS0ChCzycUs4pJqcXgn8nCDQtM+z6lU9PHYkhaM0QTLS6vJn0WuPIqpsHEzXcjF
-V9+vqDWzf4mH6eglkrh/hXqu1rweN1gqZ8mRzyqBPu3GOd/APhmcGcwTTYJBtYze4D1gCCAPRX5r
-on+jjBXu
------END CERTIFICATE-----
-
-Verisign Class 1 Public Primary Certification Authority - G3
-============================================================
------BEGIN CERTIFICATE-----
-MIIEGjCCAwICEQCLW3VWhFSFCwDPrzhIzrGkMA0GCSqGSIb3DQEBBQUAMIHKMQswCQYDVQQGEwJV
-UzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xHzAdBgNVBAsTFlZlcmlTaWduIFRydXN0IE5ldHdv
-cmsxOjA4BgNVBAsTMShjKSAxOTk5IFZlcmlTaWduLCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNl
-IG9ubHkxRTBDBgNVBAMTPFZlcmlTaWduIENsYXNzIDEgUHVibGljIFByaW1hcnkgQ2VydGlmaWNh
-dGlvbiBBdXRob3JpdHkgLSBHMzAeFw05OTEwMDEwMDAwMDBaFw0zNjA3MTYyMzU5NTlaMIHKMQsw
-CQYDVQQGEwJVUzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xHzAdBgNVBAsTFlZlcmlTaWduIFRy
-dXN0IE5ldHdvcmsxOjA4BgNVBAsTMShjKSAxOTk5IFZlcmlTaWduLCBJbmMuIC0gRm9yIGF1dGhv
-cml6ZWQgdXNlIG9ubHkxRTBDBgNVBAMTPFZlcmlTaWduIENsYXNzIDEgUHVibGljIFByaW1hcnkg
-Q2VydGlmaWNhdGlvbiBBdXRob3JpdHkgLSBHMzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC
-ggEBAN2E1Lm0+afY8wR4nN493GwTFtl63SRRZsDHJlkNrAYIwpTRMx/wgzUfbhvI3qpuFU5UJ+/E
-bRrsC+MO8ESlV8dAWB6jRx9x7GD2bZTIGDnt/kIYVt/kTEkQeE4BdjVjEjbdZrwBBDajVWjVojYJ
-rKshJlQGrT/KFOCsyq0GHZXi+J3x4GD/wn91K0zM2v6HmSHquv4+VNfSWXjbPG7PoBMAGrgnoeS+
-Z5bKoMWznN3JdZ7rMJpfo83ZrngZPyPpXNspva1VyBtUjGP26KbqxzcSXKMpHgLZ2x87tNcPVkeB
-FQRKr4Mn0cVYiMHd9qqnoxjaaKptEVHhv2Vrn5Z20T0CAwEAATANBgkqhkiG9w0BAQUFAAOCAQEA
-q2aN17O6x5q25lXQBfGfMY1aqtmqRiYPce2lrVNWYgFHKkTp/j90CxObufRNG7LRX7K20ohcs5/N
-y9Sn2WCVhDr4wTcdYcrnsMXlkdpUpqwxga6X3s0IrLjAl4B/bnKk52kTlWUfxJM8/XmPBNQ+T+r3
-ns7NZ3xPZQL/kYVUc8f/NveGLezQXk//EZ9yBta4GvFMDSZl4kSAHsef493oCtrspSCAaWihT37h
-a88HQfqDjrw43bAuEbFrskLMmrz5SCJ5ShkPshw+IHTZasO+8ih4E1Z5T21Q6huwtVexN2ZYI/Pc
-D98Kh8TvhgXVOBRgmaNL3gaWcSzy27YfpO8/7g==
------END CERTIFICATE-----
-
-Verisign Class 2 Public Primary Certification Authority - G3
-============================================================
------BEGIN CERTIFICATE-----
-MIIEGTCCAwECEGFwy0mMX5hFKeewptlQW3owDQYJKoZIhvcNAQEFBQAwgcoxCzAJBgNVBAYTAlVT
-MRcwFQYDVQQKEw5WZXJpU2lnbiwgSW5jLjEfMB0GA1UECxMWVmVyaVNpZ24gVHJ1c3QgTmV0d29y
-azE6MDgGA1UECxMxKGMpIDE5OTkgVmVyaVNpZ24sIEluYy4gLSBGb3IgYXV0aG9yaXplZCB1c2Ug
-b25seTFFMEMGA1UEAxM8VmVyaVNpZ24gQ2xhc3MgMiBQdWJsaWMgUHJpbWFyeSBDZXJ0aWZpY2F0
-aW9uIEF1dGhvcml0eSAtIEczMB4XDTk5MTAwMTAwMDAwMFoXDTM2MDcxNjIzNTk1OVowgcoxCzAJ
-BgNVBAYTAlVTMRcwFQYDVQQKEw5WZXJpU2lnbiwgSW5jLjEfMB0GA1UECxMWVmVyaVNpZ24gVHJ1
-c3QgTmV0d29yazE6MDgGA1UECxMxKGMpIDE5OTkgVmVyaVNpZ24sIEluYy4gLSBGb3IgYXV0aG9y
-aXplZCB1c2Ugb25seTFFMEMGA1UEAxM8VmVyaVNpZ24gQ2xhc3MgMiBQdWJsaWMgUHJpbWFyeSBD
-ZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSAtIEczMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKC
-AQEArwoNwtUs22e5LeWUJ92lvuCwTY+zYVY81nzD9M0+hsuiiOLh2KRpxbXiv8GmR1BeRjmL1Za6
-tW8UvxDOJxOeBUebMXoT2B/Z0wI3i60sR/COgQanDTAM6/c8DyAd3HJG7qUCyFvDyVZpTMUYwZF7
-C9UTAJu878NIPkZgIIUq1ZC2zYugzDLdt/1AVbJQHFauzI13TccgTacxdu9okoqQHgiBVrKtaaNS
-0MscxCM9H5n+TOgWY47GCI72MfbS+uV23bUckqNJzc0BzWjNqWm6o+sdDZykIKbBoMXRRkwXbdKs
-Zj+WjOCE1Db/IlnF+RFgqF8EffIa9iVCYQ/ESrg+iQIDAQABMA0GCSqGSIb3DQEBBQUAA4IBAQA0
-JhU8wI1NQ0kdvekhktdmnLfexbjQ5F1fdiLAJvmEOjr5jLX77GDx6M4EsMjdpwOPMPOY36TmpDHf
-0xwLRtxyID+u7gU8pDM/CzmscHhzS5kr3zDCVLCoO1Wh/hYozUK9dG6A2ydEp85EXdQbkJgNHkKU
-sQAsBNB0owIFImNjzYO1+8FtYmtpdf1dcEG59b98377BMnMiIYtYgXsVkXq642RIsH/7NiXaldDx
-JBQX3RiAa0YjOVT1jmIJBB2UkKab5iXiQkWquJCtvgiPqQtCGJTPcjnhsUPgKM+351psE2tJs//j
-GHyJizNdrDPXp/naOlXJWBD5qu9ats9LS98q
------END CERTIFICATE-----
-
-Verisign Class 3 Public Primary Certification Authority - G3
-============================================================
------BEGIN CERTIFICATE-----
-MIIEGjCCAwICEQCbfgZJoz5iudXukEhxKe9XMA0GCSqGSIb3DQEBBQUAMIHKMQswCQYDVQQGEwJV
-UzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xHzAdBgNVBAsTFlZlcmlTaWduIFRydXN0IE5ldHdv
-cmsxOjA4BgNVBAsTMShjKSAxOTk5IFZlcmlTaWduLCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNl
-IG9ubHkxRTBDBgNVBAMTPFZlcmlTaWduIENsYXNzIDMgUHVibGljIFByaW1hcnkgQ2VydGlmaWNh
-dGlvbiBBdXRob3JpdHkgLSBHMzAeFw05OTEwMDEwMDAwMDBaFw0zNjA3MTYyMzU5NTlaMIHKMQsw
-CQYDVQQGEwJVUzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xHzAdBgNVBAsTFlZlcmlTaWduIFRy
-dXN0IE5ldHdvcmsxOjA4BgNVBAsTMShjKSAxOTk5IFZlcmlTaWduLCBJbmMuIC0gRm9yIGF1dGhv
-cml6ZWQgdXNlIG9ubHkxRTBDBgNVBAMTPFZlcmlTaWduIENsYXNzIDMgUHVibGljIFByaW1hcnkg
-Q2VydGlmaWNhdGlvbiBBdXRob3JpdHkgLSBHMzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC
-ggEBAMu6nFL8eB8aHm8bN3O9+MlrlBIwT/A2R/XQkQr1F8ilYcEWQE37imGQ5XYgwREGfassbqb1
-EUGO+i2tKmFZpGcmTNDovFJbcCAEWNF6yaRpvIMXZK0Fi7zQWM6NjPXr8EJJC52XJ2cybuGukxUc
-cLwgTS8Y3pKI6GyFVxEa6X7jJhFUokWWVYPKMIno3Nij7SqAP395ZVc+FSBmCC+Vk7+qRy+oRpfw
-EuL+wgorUeZ25rdGt+INpsyow0xZVYnm6FNcHOqd8GIWC6fJXwzw3sJ2zq/3avL6QaaiMxTJ5Xpj
-055iN9WFZZ4O5lMkdBteHRJTW8cs54NJOxWuimi5V5cCAwEAATANBgkqhkiG9w0BAQUFAAOCAQEA
-ERSWwauSCPc/L8my/uRan2Te2yFPhpk0djZX3dAVL8WtfxUfN2JzPtTnX84XA9s1+ivbrmAJXx5f
-j267Cz3qWhMeDGBvtcC1IyIuBwvLqXTLR7sdwdela8wv0kL9Sd2nic9TutoAWii/gt/4uhMdUIaC
-/Y4wjylGsB49Ndo4YhYYSq3mtlFs3q9i6wHQHiT+eo8SGhJouPtmmRQURVyu565pF4ErWjfJXir0
-xuKhXFSbplQAz/DxwceYMBo7Nhbbo27q/a2ywtrvAkcTisDxszGtTxzhT5yvDwyd93gN2PQ1VoDa
-t20Xj50egWTh/sVFuq1ruQp6Tk9LhO5L8X3dEQ==
------END CERTIFICATE-----
-
-Verisign Class 4 Public Primary Certification Authority - G3
-============================================================
------BEGIN CERTIFICATE-----
-MIIEGjCCAwICEQDsoKeLbnVqAc/EfMwvlF7XMA0GCSqGSIb3DQEBBQUAMIHKMQswCQYDVQQGEwJV
-UzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xHzAdBgNVBAsTFlZlcmlTaWduIFRydXN0IE5ldHdv
-cmsxOjA4BgNVBAsTMShjKSAxOTk5IFZlcmlTaWduLCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNl
-IG9ubHkxRTBDBgNVBAMTPFZlcmlTaWduIENsYXNzIDQgUHVibGljIFByaW1hcnkgQ2VydGlmaWNh
-dGlvbiBBdXRob3JpdHkgLSBHMzAeFw05OTEwMDEwMDAwMDBaFw0zNjA3MTYyMzU5NTlaMIHKMQsw
-CQYDVQQGEwJVUzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xHzAdBgNVBAsTFlZlcmlTaWduIFRy
-dXN0IE5ldHdvcmsxOjA4BgNVBAsTMShjKSAxOTk5IFZlcmlTaWduLCBJbmMuIC0gRm9yIGF1dGhv
-cml6ZWQgdXNlIG9ubHkxRTBDBgNVBAMTPFZlcmlTaWduIENsYXNzIDQgUHVibGljIFByaW1hcnkg
-Q2VydGlmaWNhdGlvbiBBdXRob3JpdHkgLSBHMzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC
-ggEBAK3LpRFpxlmr8Y+1GQ9Wzsy1HyDkniYlS+BzZYlZ3tCD5PUPtbut8XzoIfzk6AzufEUiGXaS
-tBO3IFsJ+mGuqPKljYXCKtbeZjbSmwL0qJJgfJxptI8kHtCGUvYynEFYHiK9zUVilQhu0GbdU6LM
-8BDcVHOLBKFGMzNcF0C5nk3T875Vg+ixiY5afJqWIpA7iCXy0lOIAgwLePLmNxdLMEYH5IBtptiW
-Lugs+BGzOA1mppvqySNb247i8xOOGlktqgLw7KSHZtzBP/XYufTsgsbSPZUd5cBPhMnZo0QoBmrX
-Razwa2rvTl/4EYIeOGM0ZlDUPpNz+jDDZq3/ky2X7wMCAwEAATANBgkqhkiG9w0BAQUFAAOCAQEA
-j/ola09b5KROJ1WrIhVZPMq1CtRK26vdoV9TxaBXOcLORyu+OshWv8LZJxA6sQU8wHcxuzrTBXtt
-mhwwjIDLk5Mqg6sFUYICABFna/OIYUdfA5PVWw3g8dShMjWFsjrbsIKr0csKvE+MW8VLADsfKoKm
-fjaF3H48ZwC15DtS4KjrXRX5xm3wrR0OhbepmnMUWluPQSjA1egtTaRezarZ7c7c2NU8Qh0XwRJd
-RTjDOPP8hS6DRkiy1yBfkjaP53kPmF6Z6PDQpLv1U70qzlmwr25/bLvSHgCwIe34QWKCudiyxLtG
-UPMxxY8BqHTr9Xgn2uf3ZkPznoM+IKrDNWCRzg==
------END CERTIFICATE-----
-
-Entrust.net Secure Server CA
-============================
------BEGIN CERTIFICATE-----
-MIIE2DCCBEGgAwIBAgIEN0rSQzANBgkqhkiG9w0BAQUFADCBwzELMAkGA1UEBhMCVVMxFDASBgNV
-BAoTC0VudHJ1c3QubmV0MTswOQYDVQQLEzJ3d3cuZW50cnVzdC5uZXQvQ1BTIGluY29ycC4gYnkg
-cmVmLiAobGltaXRzIGxpYWIuKTElMCMGA1UECxMcKGMpIDE5OTkgRW50cnVzdC5uZXQgTGltaXRl
-ZDE6MDgGA1UEAxMxRW50cnVzdC5uZXQgU2VjdXJlIFNlcnZlciBDZXJ0aWZpY2F0aW9uIEF1dGhv
-cml0eTAeFw05OTA1MjUxNjA5NDBaFw0xOTA1MjUxNjM5NDBaMIHDMQswCQYDVQQGEwJVUzEUMBIG
-A1UEChMLRW50cnVzdC5uZXQxOzA5BgNVBAsTMnd3dy5lbnRydXN0Lm5ldC9DUFMgaW5jb3JwLiBi
-eSByZWYuIChsaW1pdHMgbGlhYi4pMSUwIwYDVQQLExwoYykgMTk5OSBFbnRydXN0Lm5ldCBMaW1p
-dGVkMTowOAYDVQQDEzFFbnRydXN0Lm5ldCBTZWN1cmUgU2VydmVyIENlcnRpZmljYXRpb24gQXV0
-aG9yaXR5MIGdMA0GCSqGSIb3DQEBAQUAA4GLADCBhwKBgQDNKIM0VBuJ8w+vN5Ex/68xYMmo6LIQ
-aO2f55M28Qpku0f1BBc/I0dNxScZgSYMVHINiC3ZH5oSn7yzcdOAGT9HZnuMNSjSuQrfJNqc1lB5
-gXpa0zf3wkrYKZImZNHkmGw6AIr1NJtl+O3jEP/9uElY3KDegjlrgbEWGWG5VLbmQwIBA6OCAdcw
-ggHTMBEGCWCGSAGG+EIBAQQEAwIABzCCARkGA1UdHwSCARAwggEMMIHeoIHboIHYpIHVMIHSMQsw
-CQYDVQQGEwJVUzEUMBIGA1UEChMLRW50cnVzdC5uZXQxOzA5BgNVBAsTMnd3dy5lbnRydXN0Lm5l
-dC9DUFMgaW5jb3JwLiBieSByZWYuIChsaW1pdHMgbGlhYi4pMSUwIwYDVQQLExwoYykgMTk5OSBF
-bnRydXN0Lm5ldCBMaW1pdGVkMTowOAYDVQQDEzFFbnRydXN0Lm5ldCBTZWN1cmUgU2VydmVyIENl
-cnRpZmljYXRpb24gQXV0aG9yaXR5MQ0wCwYDVQQDEwRDUkwxMCmgJ6AlhiNodHRwOi8vd3d3LmVu
-dHJ1c3QubmV0L0NSTC9uZXQxLmNybDArBgNVHRAEJDAigA8xOTk5MDUyNTE2MDk0MFqBDzIwMTkw
-NTI1MTYwOTQwWjALBgNVHQ8EBAMCAQYwHwYDVR0jBBgwFoAU8BdiE1U9s/8KAGv7UISX8+1i0Bow
-HQYDVR0OBBYEFPAXYhNVPbP/CgBr+1CEl/PtYtAaMAwGA1UdEwQFMAMBAf8wGQYJKoZIhvZ9B0EA
-BAwwChsEVjQuMAMCBJAwDQYJKoZIhvcNAQEFBQADgYEAkNwwAvpkdMKnCqV8IY00F6j7Rw7/JXyN
-Ewr75Ji174z4xRAN95K+8cPV1ZVqBLssziY2ZcgxxufuP+NXdYR6Ee9GTxj005i7qIcyunL2POI9
-n9cd2cNgQ4xYDiKWL2KjLB+6rQXvqzJ4h6BUcxm1XAX5Uj5tLUUL9wqT6u0G+bI=
------END CERTIFICATE-----
-
-Entrust.net Secure Personal CA
-==============================
------BEGIN CERTIFICATE-----
-MIIE7TCCBFagAwIBAgIEOAOR7jANBgkqhkiG9w0BAQQFADCByTELMAkGA1UEBhMCVVMxFDASBgNV
-BAoTC0VudHJ1c3QubmV0MUgwRgYDVQQLFD93d3cuZW50cnVzdC5uZXQvQ2xpZW50X0NBX0luZm8v
-Q1BTIGluY29ycC4gYnkgcmVmLiBsaW1pdHMgbGlhYi4xJTAjBgNVBAsTHChjKSAxOTk5IEVudHJ1
-c3QubmV0IExpbWl0ZWQxMzAxBgNVBAMTKkVudHJ1c3QubmV0IENsaWVudCBDZXJ0aWZpY2F0aW9u
-IEF1dGhvcml0eTAeFw05OTEwMTIxOTI0MzBaFw0xOTEwMTIxOTU0MzBaMIHJMQswCQYDVQQGEwJV
-UzEUMBIGA1UEChMLRW50cnVzdC5uZXQxSDBGBgNVBAsUP3d3dy5lbnRydXN0Lm5ldC9DbGllbnRf
-Q0FfSW5mby9DUFMgaW5jb3JwLiBieSByZWYuIGxpbWl0cyBsaWFiLjElMCMGA1UECxMcKGMpIDE5
-OTkgRW50cnVzdC5uZXQgTGltaXRlZDEzMDEGA1UEAxMqRW50cnVzdC5uZXQgQ2xpZW50IENlcnRp
-ZmljYXRpb24gQXV0aG9yaXR5MIGdMA0GCSqGSIb3DQEBAQUAA4GLADCBhwKBgQDIOpleMRffrCdv
-kHvkGf9FozTC28GoT/Bo6oT9n3V5z8GKUZSvx1cDR2SerYIbWtp/N3hHuzeYEpbOxhN979IMMFGp
-OZ5V+Pux5zDeg7K6PvHViTs7hbqqdCz+PzFur5GVbgbUB01LLFZHGARS2g4Qk79jkJvh34zmAqTm
-T173iwIBA6OCAeAwggHcMBEGCWCGSAGG+EIBAQQEAwIABzCCASIGA1UdHwSCARkwggEVMIHkoIHh
-oIHepIHbMIHYMQswCQYDVQQGEwJVUzEUMBIGA1UEChMLRW50cnVzdC5uZXQxSDBGBgNVBAsUP3d3
-dy5lbnRydXN0Lm5ldC9DbGllbnRfQ0FfSW5mby9DUFMgaW5jb3JwLiBieSByZWYuIGxpbWl0cyBs
-aWFiLjElMCMGA1UECxMcKGMpIDE5OTkgRW50cnVzdC5uZXQgTGltaXRlZDEzMDEGA1UEAxMqRW50
-cnVzdC5uZXQgQ2xpZW50IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MQ0wCwYDVQQDEwRDUkwxMCyg
-KqAohiZodHRwOi8vd3d3LmVudHJ1c3QubmV0L0NSTC9DbGllbnQxLmNybDArBgNVHRAEJDAigA8x
-OTk5MTAxMjE5MjQzMFqBDzIwMTkxMDEyMTkyNDMwWjALBgNVHQ8EBAMCAQYwHwYDVR0jBBgwFoAU
-xPucKXuXzUyW/O5bs8qZdIuV6kwwHQYDVR0OBBYEFMT7nCl7l81MlvzuW7PKmXSLlepMMAwGA1Ud
-EwQFMAMBAf8wGQYJKoZIhvZ9B0EABAwwChsEVjQuMAMCBJAwDQYJKoZIhvcNAQEEBQADgYEAP66K
-8ddmAwWePvrqHEa7pFuPeJoSSJn59DXeDDYHAmsQOokUgZwxpnyyQbJq5wcBoUv5nyU7lsqZwz6h
-URzzwy5E97BnRqqS5TvaHBkUODDV4qIxJS7x7EU47fgGWANzYrAQMY9Av2TgXD7FTx/aEkP/TOYG
-JqibGapEPHayXOw=
------END CERTIFICATE-----
-
-Entrust.net Premium 2048 Secure Server CA
-=========================================
------BEGIN CERTIFICATE-----
-MIIEXDCCA0SgAwIBAgIEOGO5ZjANBgkqhkiG9w0BAQUFADCBtDEUMBIGA1UEChMLRW50cnVzdC5u
-ZXQxQDA+BgNVBAsUN3d3dy5lbnRydXN0Lm5ldC9DUFNfMjA0OCBpbmNvcnAuIGJ5IHJlZi4gKGxp
-bWl0cyBsaWFiLikxJTAjBgNVBAsTHChjKSAxOTk5IEVudHJ1c3QubmV0IExpbWl0ZWQxMzAxBgNV
-BAMTKkVudHJ1c3QubmV0IENlcnRpZmljYXRpb24gQXV0aG9yaXR5ICgyMDQ4KTAeFw05OTEyMjQx
-NzUwNTFaFw0xOTEyMjQxODIwNTFaMIG0MRQwEgYDVQQKEwtFbnRydXN0Lm5ldDFAMD4GA1UECxQ3
-d3d3LmVudHJ1c3QubmV0L0NQU18yMDQ4IGluY29ycC4gYnkgcmVmLiAobGltaXRzIGxpYWIuKTEl
-MCMGA1UECxMcKGMpIDE5OTkgRW50cnVzdC5uZXQgTGltaXRlZDEzMDEGA1UEAxMqRW50cnVzdC5u
-ZXQgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkgKDIwNDgpMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8A
-MIIBCgKCAQEArU1LqRKGsuqjIAcVFmQqK0vRvwtKTY7tgHalZ7d4QMBzQshowNtTK91euHaYNZOL
-Gp18EzoOH1u3Hs/lJBQesYGpjX24zGtLA/ECDNyrpUAkAH90lKGdCCmziAv1h3edVc3kw37XamSr
-hRSGlVuXMlBvPci6Zgzj/L24ScF2iUkZ/cCovYmjZy/Gn7xxGWC4LeksyZB2ZnuU4q941mVTXTzW
-nLLPKQP5L6RQstRIzgUyVYr9smRMDuSYB3Xbf9+5CFVghTAp+XtIpGmG4zU/HoZdenoVve8AjhUi
-VBcAkCaTvA5JaJG/+EfTnZVCwQ5N328mz8MYIWJmQ3DW1cAH4QIDAQABo3QwcjARBglghkgBhvhC
-AQEEBAMCAAcwHwYDVR0jBBgwFoAUVeSB0RGAvtiJuQijMfmhJAkWuXAwHQYDVR0OBBYEFFXkgdER
-gL7YibkIozH5oSQJFrlwMB0GCSqGSIb2fQdBAAQQMA4bCFY1LjA6NC4wAwIEkDANBgkqhkiG9w0B
-AQUFAAOCAQEAWUesIYSKF8mciVMeuoCFGsY8Tj6xnLZ8xpJdGGQC49MGCBFhfGPjK50xA3B20qMo
-oPS7mmNz7W3lKtvtFKkrxjYR0CvrB4ul2p5cGZ1WEvVUKcgF7bISKo30Axv/55IQh7A6tcOdBTcS
-o8f0FbnVpDkWm1M6I5HxqIKiaohowXkCIryqptau37AUX7iH0N18f3v/rxzP5tsHrV7bhZ3QKw0z
-2wTR5klAEyt2+z7pnIkPFc4YsIV4IU9rTw76NmfNB/L/CNDi3tm/Kq+4h4YhPATKt5Rof8886ZjX
-OP/swNlQ8C5LWK5Gb9Auw2DaclVyvUxFnmG6v4SBkgPR0ml8xQ==
------END CERTIFICATE-----
-
-Baltimore CyberTrust Root
-=========================
------BEGIN CERTIFICATE-----
-MIIDdzCCAl+gAwIBAgIEAgAAuTANBgkqhkiG9w0BAQUFADBaMQswCQYDVQQGEwJJRTESMBAGA1UE
-ChMJQmFsdGltb3JlMRMwEQYDVQQLEwpDeWJlclRydXN0MSIwIAYDVQQDExlCYWx0aW1vcmUgQ3li
-ZXJUcnVzdCBSb290MB4XDTAwMDUxMjE4NDYwMFoXDTI1MDUxMjIzNTkwMFowWjELMAkGA1UEBhMC
-SUUxEjAQBgNVBAoTCUJhbHRpbW9yZTETMBEGA1UECxMKQ3liZXJUcnVzdDEiMCAGA1UEAxMZQmFs
-dGltb3JlIEN5YmVyVHJ1c3QgUm9vdDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKME
-uyKrmD1X6CZymrV51Cni4eiVgLGw41uOKymaZN+hXe2wCQVt2yguzmKiYv60iNoS6zjrIZ3AQSsB
-UnuId9Mcj8e6uYi1agnnc+gRQKfRzMpijS3ljwumUNKoUMMo6vWrJYeKmpYcqWe4PwzV9/lSEy/C
-G9VwcPCPwBLKBsua4dnKM3p31vjsufFoREJIE9LAwqSuXmD+tqYF/LTdB1kC1FkYmGP1pWPgkAx9
-XbIGevOF6uvUA65ehD5f/xXtabz5OTZydc93Uk3zyZAsuT3lySNTPx8kmCFcB5kpvcY67Oduhjpr
-l3RjM71oGDHweI12v/yejl0qhqdNkNwnGjkCAwEAAaNFMEMwHQYDVR0OBBYEFOWdWTCCR1jMrPoI
-VDaGezq1BE3wMBIGA1UdEwEB/wQIMAYBAf8CAQMwDgYDVR0PAQH/BAQDAgEGMA0GCSqGSIb3DQEB
-BQUAA4IBAQCFDF2O5G9RaEIFoN27TyclhAO992T9Ldcw46QQF+vaKSm2eT929hkTI7gQCvlYpNRh
-cL0EYWoSihfVCr3FvDB81ukMJY2GQE/szKN+OMY3EU/t3WgxjkzSswF07r51XgdIGn9w/xZchMB5
-hbgF/X++ZRGjD8ACtPhSNzkE1akxehi/oCr0Epn3o0WC4zxe9Z2etciefC7IpJ5OCBRLbf1wbWsa
-Y71k5h+3zvDyny67G7fyUIhzksLi4xaNmjICq44Y3ekQEe5+NauQrz4wlHrQMz2nZQ/1/I6eYs9H
-RCwBXbsdtTLSR9I4LtD+gdwyah617jzV/OeBHRnDJELqYzmp
------END CERTIFICATE-----
-
-Equifax Secure Global eBusiness CA
-==================================
------BEGIN CERTIFICATE-----
-MIICkDCCAfmgAwIBAgIBATANBgkqhkiG9w0BAQQFADBaMQswCQYDVQQGEwJVUzEcMBoGA1UEChMT
-RXF1aWZheCBTZWN1cmUgSW5jLjEtMCsGA1UEAxMkRXF1aWZheCBTZWN1cmUgR2xvYmFsIGVCdXNp
-bmVzcyBDQS0xMB4XDTk5MDYyMTA0MDAwMFoXDTIwMDYyMTA0MDAwMFowWjELMAkGA1UEBhMCVVMx
-HDAaBgNVBAoTE0VxdWlmYXggU2VjdXJlIEluYy4xLTArBgNVBAMTJEVxdWlmYXggU2VjdXJlIEds
-b2JhbCBlQnVzaW5lc3MgQ0EtMTCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAuucXkAJlsTRV
-PEnCUdXfp9E3j9HngXNBUmCbnaEXJnitx7HoJpQytd4zjTov2/KaelpzmKNc6fuKcxtc58O/gGzN
-qfTWK8D3+ZmqY6KxRwIP1ORROhI8bIpaVIRw28HFkM9yRcuoWcDNM50/o5brhTMhHD4ePmBudpxn
-hcXIw2ECAwEAAaNmMGQwEQYJYIZIAYb4QgEBBAQDAgAHMA8GA1UdEwEB/wQFMAMBAf8wHwYDVR0j
-BBgwFoAUvqigdHJQa0S3ySPY+6j/s1draGwwHQYDVR0OBBYEFL6ooHRyUGtEt8kj2Puo/7NXa2hs
-MA0GCSqGSIb3DQEBBAUAA4GBADDiAVGqx+pf2rnQZQ8w1j7aDRRJbpGTJxQx78T3LUX47Me/okEN
-I7SS+RkAZ70Br83gcfxaz2TE4JaY0KNA4gGK7ycH8WUBikQtBmV1UsCGECAhX2xrD2yuCRyv8qIY
-NMR1pHMc8Y3c7635s3a0kr/clRAevsvIO1qEYBlWlKlV
------END CERTIFICATE-----
-
-Equifax Secure eBusiness CA 1
-=============================
------BEGIN CERTIFICATE-----
-MIICgjCCAeugAwIBAgIBBDANBgkqhkiG9w0BAQQFADBTMQswCQYDVQQGEwJVUzEcMBoGA1UEChMT
-RXF1aWZheCBTZWN1cmUgSW5jLjEmMCQGA1UEAxMdRXF1aWZheCBTZWN1cmUgZUJ1c2luZXNzIENB
-LTEwHhcNOTkwNjIxMDQwMDAwWhcNMjAwNjIxMDQwMDAwWjBTMQswCQYDVQQGEwJVUzEcMBoGA1UE
-ChMTRXF1aWZheCBTZWN1cmUgSW5jLjEmMCQGA1UEAxMdRXF1aWZheCBTZWN1cmUgZUJ1c2luZXNz
-IENBLTEwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAM4vGbwXt3fek6lfWg0XTzQaDJj0ItlZ
-1MRoRvC0NcWFAyDGr0WlIVFFQesWWDYyb+JQYmT5/VGcqiTZ9J2DKocKIdMSODRsjQBuWqDZQu4a
-IZX5UkxVWsUPOE9G+m34LjXWHXzr4vCwdYDIqROsvojvOm6rXyo4YgKwEnv+j6YDAgMBAAGjZjBk
-MBEGCWCGSAGG+EIBAQQEAwIABzAPBgNVHRMBAf8EBTADAQH/MB8GA1UdIwQYMBaAFEp4MlIR21kW
-Nl7fwRQ2QGpHfEyhMB0GA1UdDgQWBBRKeDJSEdtZFjZe38EUNkBqR3xMoTANBgkqhkiG9w0BAQQF
-AAOBgQB1W6ibAxHm6VZMzfmpTMANmvPMZWnmJXbMWbfWVMMdzZmsGd20hdXgPfxiIKeES1hl8eL5
-lSE/9dR+WB5Hh1Q+WKG1tfgq73HnvMP2sUlG4tega+VWeponmHxGYhTnyfxuAxJ5gDgdSIKN/Bf+
-KpYrtWKmpj29f5JZzVoqgrI3eQ==
------END CERTIFICATE-----
-
-Equifax Secure eBusiness CA 2
-=============================
------BEGIN CERTIFICATE-----
-MIIDIDCCAomgAwIBAgIEN3DPtTANBgkqhkiG9w0BAQUFADBOMQswCQYDVQQGEwJVUzEXMBUGA1UE
-ChMORXF1aWZheCBTZWN1cmUxJjAkBgNVBAsTHUVxdWlmYXggU2VjdXJlIGVCdXNpbmVzcyBDQS0y
-MB4XDTk5MDYyMzEyMTQ0NVoXDTE5MDYyMzEyMTQ0NVowTjELMAkGA1UEBhMCVVMxFzAVBgNVBAoT
-DkVxdWlmYXggU2VjdXJlMSYwJAYDVQQLEx1FcXVpZmF4IFNlY3VyZSBlQnVzaW5lc3MgQ0EtMjCB
-nzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEA5Dk5kx5SBhsoNviyoynF7Y6yEb3+6+e0dMKP/wXn
-2Z0GvxLIPw7y1tEkshHe0XMJitSxLJgJDR5QRrKDpkWNYmi7hRsgcDKqQM2mll/EcTc/BPO3QSQ5
-BxoeLmFYoBIL5aXfxavqN3HMHMg3OrmXUqesxWoklE6ce8/AatbfIb0CAwEAAaOCAQkwggEFMHAG
-A1UdHwRpMGcwZaBjoGGkXzBdMQswCQYDVQQGEwJVUzEXMBUGA1UEChMORXF1aWZheCBTZWN1cmUx
-JjAkBgNVBAsTHUVxdWlmYXggU2VjdXJlIGVCdXNpbmVzcyBDQS0yMQ0wCwYDVQQDEwRDUkwxMBoG
-A1UdEAQTMBGBDzIwMTkwNjIzMTIxNDQ1WjALBgNVHQ8EBAMCAQYwHwYDVR0jBBgwFoAUUJ4L6q9e
-uSBIplBqy/3YIHqngnYwHQYDVR0OBBYEFFCeC+qvXrkgSKZQasv92CB6p4J2MAwGA1UdEwQFMAMB
-Af8wGgYJKoZIhvZ9B0EABA0wCxsFVjMuMGMDAgbAMA0GCSqGSIb3DQEBBQUAA4GBAAyGgq3oThr1
-jokn4jVYPSm0B482UJW/bsGe68SQsoWou7dC4A8HOd/7npCy0cE+U58DRLB+S/Rv5Hwf5+Kx5Lia
-78O9zt4LMjTZ3ijtM2vE1Nc9ElirfQkty3D1E4qUoSek1nDFbZS1yX2doNLGCEnZZpum0/QL3MUm
-V+GRMOrN
------END CERTIFICATE-----
-
-Visa International Global Root 2
-================================
------BEGIN CERTIFICATE-----
-MIIDgDCCAmigAwIBAgICAx4wDQYJKoZIhvcNAQEFBQAwYTELMAkGA1UEBhMCVVMxDTALBgNVBAoT
-BFZJU0ExLzAtBgNVBAsTJlZpc2EgSW50ZXJuYXRpb25hbCBTZXJ2aWNlIEFzc29jaWF0aW9uMRIw
-EAYDVQQDEwlHUCBSb290IDIwHhcNMDAwODE2MjI1MTAwWhcNMjAwODE1MjM1OTAwWjBhMQswCQYD
-VQQGEwJVUzENMAsGA1UEChMEVklTQTEvMC0GA1UECxMmVmlzYSBJbnRlcm5hdGlvbmFsIFNlcnZp
-Y2UgQXNzb2NpYXRpb24xEjAQBgNVBAMTCUdQIFJvb3QgMjCCASIwDQYJKoZIhvcNAQEBBQADggEP
-ADCCAQoCggEBAKkBcLWqxEDwq2omYXkZAPy/mzdZDK9vZBv42pWUJGkzEXDK41Z0ohdXZFwgBuHW
-73G3O/erwWnQSaSxBNf0V2KJXLB1LRckaeNCYOTudNargFbYiCjh+20i/SN8RnNPflRzHqgsVVh1
-t0zzWkWlAhr62p3DRcMiXvOL8WAp0sdftAw6UYPvMPjU58fy+pmjIlC++QU3o63tmsPm7Igbthkn
-GziLgE3sucfFicv8GjLtI/C1AVj59o/ghalMCXI5Etuz9c9OYmTaxhkVOmMd6RdVoUwiPDQyRvhl
-V7or7zaMavrZ2UT0qt2E1w0cslSsMoW0ZA3eQbuxNMYBhjJk1Z8CAwEAAaNCMEAwHQYDVR0OBBYE
-FJ59SzS/ca3CBfYDdYDOqU8axCRMMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMA0G
-CSqGSIb3DQEBBQUAA4IBAQAhpXYUVfmtJ3CPPPTVbMjMCqujmAuKBiPFyWHbmQdpNSYx/scuhMKZ
-YdQN6X0uEyt8joW2hcdLzzW2LEc9zikv2G+fiRxkk78IvXbQkIqUs38oW26sTTMs7WXcFsziza6k
-PWKSBpUmv9+55CCmc2rBvveURNZNbyoLaxhNdBA2aGpawWqn3TYpjLgwi08hPwAuVDAHOrqK5MOe
-yti12HvOdUVmB/RtLdh6yumJivIj2C/LbgA2T/vwLwHMD8AiZfSr4k5hLQOCfZEWtTDVFN5ex5D8
-ofyrEK9ca3CnB+8phuiyJccg/ybdd+95RBTEvd07xQObdyPsoOy7Wjm1zK0G
------END CERTIFICATE-----
-
-beTRUSTed Root CA
-=================
------BEGIN CERTIFICATE-----
-MIIFLDCCBBSgAwIBAgIEOU99hzANBgkqhkiG9w0BAQUFADBaMQswCQYDVQQGEwJXVzESMBAGA1UE
-ChMJYmVUUlVTVGVkMRswGQYDVQQDExJiZVRSVVNUZWQgUm9vdCBDQXMxGjAYBgNVBAMTEWJlVFJV
-U1RlZCBSb290IENBMB4XDTAwMDYyMDE0MjEwNFoXDTEwMDYyMDEzMjEwNFowWjELMAkGA1UEBhMC
-V1cxEjAQBgNVBAoTCWJlVFJVU1RlZDEbMBkGA1UEAxMSYmVUUlVTVGVkIFJvb3QgQ0FzMRowGAYD
-VQQDExFiZVRSVVNUZWQgUm9vdCBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANS0
-c3oTCjhVAb6JVuGUntS+WutKNHUbYSnE4a0IYCF4SP+00PpeQY1hRIfo7clY+vyTmt9P6j41ffgz
-eubx181vSUs9Ty1uDoM6GHh3o8/n9E1z2Jo7Gh2+lVPPIJfCzz4kUmwMjmVZxXH/YgmPqsWPzGCg
-c0rXOD8Vcr+il7dw6K/ifhYGTPWqZCZyByWtNfwYsSbX2P8ZDoMbjNx4RWc0PfSvHI3kbWvtILNn
-mrRhyxdviTX/507AMhLn7uzf/5cwdO2NR47rtMNE5qdMf1ZD6Li8tr76g5fmu/vEtpO+GRg+jIG5
-c4gW9JZDnGdzF5DYCW5jrEq2I8QBoa2k5MUCAwEAAaOCAfgwggH0MA8GA1UdEwEB/wQFMAMBAf8w
-ggFZBgNVHSAEggFQMIIBTDCCAUgGCisGAQQBsT4BAAAwggE4MIIBAQYIKwYBBQUHAgIwgfQagfFS
-ZWxpYW5jZSBvbiB0aGlzIGNlcnRpZmljYXRlIGJ5IGFueSBwYXJ0eSBhc3N1bWVzIGFjY2VwdGFu
-Y2Ugb2YgdGhlIHRoZW4gYXBwbGljYWJsZSBzdGFuZGFyZCB0ZXJtcyBhbmQgY29uZGl0aW9ucyBv
-ZiB1c2UsIGFuZCBjZXJ0aWZpY2F0aW9uIHByYWN0aWNlIHN0YXRlbWVudCwgd2hpY2ggY2FuIGJl
-IGZvdW5kIGF0IGJlVFJVU1RlZCdzIHdlYiBzaXRlLCBodHRwczovL3d3dy5iZVRSVVNUZWQuY29t
-L3ZhdWx0L3Rlcm1zMDEGCCsGAQUFBwIBFiVodHRwczovL3d3dy5iZVRSVVNUZWQuY29tL3ZhdWx0
-L3Rlcm1zMDQGA1UdHwQtMCswKaAnoCWkIzAhMRIwEAYDVQQKEwliZVRSVVNUZWQxCzAJBgNVBAYT
-AldXMB0GA1UdDgQWBBQquZtpLjub2M3eKjEENGvKBxirZzAfBgNVHSMEGDAWgBQquZtpLjub2M3e
-KjEENGvKBxirZzAOBgNVHQ8BAf8EBAMCAf4wDQYJKoZIhvcNAQEFBQADggEBAHlh26Nebhax6nZR
-+csVm8tpvuaBa58oH2U+3RGFktToQb9+M70j5/Egv6S0phkBxoyNNXxlpE8JpNbYIxUFE6dDea/b
-ow6be3ga8wSGWsb2jCBHOElQBp1yZzrwmAOtlmdE/D8QDYZN5AA7KXvOOzuZhmElQITcE2K3+spZ
-1gMe1lMBzW1MaFVA4e5rxyoAAEiCswoBw2AqDPeCNe5IhpbkdNQ96gFxugR1QKepfzk5mlWXKWWu
-GVUlBXJH0+gY3Ljpr0NzARJ0o+FcXxVdJPP55PS2Z2cS52QiivalQaYctmBjRYoQtLpGEK5BV2Vs
-PyMQPyEQWbfkQN0mDCP2qq4=
------END CERTIFICATE-----
-
-AddTrust Low-Value Services Root
-================================
------BEGIN CERTIFICATE-----
-MIIEGDCCAwCgAwIBAgIBATANBgkqhkiG9w0BAQUFADBlMQswCQYDVQQGEwJTRTEUMBIGA1UEChML
-QWRkVHJ1c3QgQUIxHTAbBgNVBAsTFEFkZFRydXN0IFRUUCBOZXR3b3JrMSEwHwYDVQQDExhBZGRU
-cnVzdCBDbGFzcyAxIENBIFJvb3QwHhcNMDAwNTMwMTAzODMxWhcNMjAwNTMwMTAzODMxWjBlMQsw
-CQYDVQQGEwJTRTEUMBIGA1UEChMLQWRkVHJ1c3QgQUIxHTAbBgNVBAsTFEFkZFRydXN0IFRUUCBO
-ZXR3b3JrMSEwHwYDVQQDExhBZGRUcnVzdCBDbGFzcyAxIENBIFJvb3QwggEiMA0GCSqGSIb3DQEB
-AQUAA4IBDwAwggEKAoIBAQCWltQhSWDia+hBBwzexODcEyPNwTXH+9ZOEQpnXvUGW2ulCDtbKRY6
-54eyNAbFvAWlA3yCyykQruGIgb3WntP+LVbBFc7jJp0VLhD7Bo8wBN6ntGO0/7Gcrjyvd7ZWxbWr
-oulpOj0OM3kyP3CCkplhbY0wCI9xP6ZIVxn4JdxLZlyldI+Yrsj5wAYi56xz36Uu+1LcsRVlIPo1
-Zmne3yzxbrww2ywkEtvrNTVokMsAsJchPXQhI2U0K7t4WaPW4XY5mqRJjox0r26kmqPZm9I4XJui
-GMx1I4S+6+JNM3GOGvDC+Mcdoq0Dlyz4zyXG9rgkMbFjXZJ/Y/AlyVMuH79NAgMBAAGjgdIwgc8w
-HQYDVR0OBBYEFJWxtPCUtr3H2tERCSG+wa9J/RB7MAsGA1UdDwQEAwIBBjAPBgNVHRMBAf8EBTAD
-AQH/MIGPBgNVHSMEgYcwgYSAFJWxtPCUtr3H2tERCSG+wa9J/RB7oWmkZzBlMQswCQYDVQQGEwJT
-RTEUMBIGA1UEChMLQWRkVHJ1c3QgQUIxHTAbBgNVBAsTFEFkZFRydXN0IFRUUCBOZXR3b3JrMSEw
-HwYDVQQDExhBZGRUcnVzdCBDbGFzcyAxIENBIFJvb3SCAQEwDQYJKoZIhvcNAQEFBQADggEBACxt
-ZBsfzQ3duQH6lmM0MkhHma6X7f1yFqZzR1r0693p9db7RcwpiURdv0Y5PejuvE1Uhh4dbOMXJ0Ph
-iVYrqW9yTkkz43J8KiOavD7/KCrto/8cI7pDVwlnTUtiBi34/2ydYB7YHEt9tTEv2dB8Xfjea4MY
-eDdXL+gzB2ffHsdrKpV2ro9Xo/D0UrSpUwjP4E/TelOL/bscVjby/rK25Xa71SJlpz/+0WatC7xr
-mYbvP33zGDLKe8bjq2RGlfgmadlVg3sslgf/WSxEo8bl6ancoWOAWiFeIc9TVPC6b4nbqKqVz4vj
-ccweGyBECMB6tkD9xOQ14R0WHNC8K47Wcdk=
------END CERTIFICATE-----
-
-AddTrust External Root
-======================
------BEGIN CERTIFICATE-----
-MIIENjCCAx6gAwIBAgIBATANBgkqhkiG9w0BAQUFADBvMQswCQYDVQQGEwJTRTEUMBIGA1UEChML
-QWRkVHJ1c3QgQUIxJjAkBgNVBAsTHUFkZFRydXN0IEV4dGVybmFsIFRUUCBOZXR3b3JrMSIwIAYD
-VQQDExlBZGRUcnVzdCBFeHRlcm5hbCBDQSBSb290MB4XDTAwMDUzMDEwNDgzOFoXDTIwMDUzMDEw
-NDgzOFowbzELMAkGA1UEBhMCU0UxFDASBgNVBAoTC0FkZFRydXN0IEFCMSYwJAYDVQQLEx1BZGRU
-cnVzdCBFeHRlcm5hbCBUVFAgTmV0d29yazEiMCAGA1UEAxMZQWRkVHJ1c3QgRXh0ZXJuYWwgQ0Eg
-Um9vdDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALf3GjPm8gAELTngTlvtH7xsD821
-+iO2zt6bETOXpClMfZOfvUq8k+0DGuOPz+VtUFrWlymUWoCwSXrbLpX9uMq/NzgtHj6RQa1wVsfw
-Tz/oMp50ysiQVOnGXw94nZpAPA6sYapeFI+eh6FqUNzXmk6vBbOmcZSccbNQYArHE504B4YCqOmo
-aSYYkKtMsE8jqzpPhNjfzp/haW+710LXa0Tkx63ubUFfclpxCDezeWWkWaCUN/cALw3CknLa0Dhy
-2xSoRcRdKn23tNbE7qzNE0S3ySvdQwAl+mG5aWpYIxG3pzOPVnVZ9c0p10a3CitlttNCbxWyuHv7
-7+ldU9U0WicCAwEAAaOB3DCB2TAdBgNVHQ4EFgQUrb2YejS0Jvf6xCZU7wO94CTLVBowCwYDVR0P
-BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wgZkGA1UdIwSBkTCBjoAUrb2YejS0Jvf6xCZU7wO94CTL
-VBqhc6RxMG8xCzAJBgNVBAYTAlNFMRQwEgYDVQQKEwtBZGRUcnVzdCBBQjEmMCQGA1UECxMdQWRk
-VHJ1c3QgRXh0ZXJuYWwgVFRQIE5ldHdvcmsxIjAgBgNVBAMTGUFkZFRydXN0IEV4dGVybmFsIENB
-IFJvb3SCAQEwDQYJKoZIhvcNAQEFBQADggEBALCb4IUlwtYj4g+WBpKdQZic2YR5gdkeWxQHIzZl
-j7DYd7usQWxHYINRsPkyPef89iYTx4AWpb9a/IfPeHmJIZriTAcKhjW88t5RxNKWt9x+Tu5w/Rw5
-6wwCURQtjr0W4MHfRnXnJK3s9EK0hZNwEGe6nQY1ShjTK3rMUUKhemPR5ruhxSvCNr4TDea9Y355
-e6cJDUCrat2PisP29owaQgVR1EX1n6diIWgVIEM8med8vSTYqZEXc4g/VhsxOBi0cQ+azcgOno4u
-G+GMmIPLHzHxREzGBHNJdmAPx/i9F4BrLunMTA5amnkPIAou1Z5jJh5VkpTYghdae9C8x49OhgQ=
------END CERTIFICATE-----
-
-AddTrust Public Services Root
-=============================
------BEGIN CERTIFICATE-----
-MIIEFTCCAv2gAwIBAgIBATANBgkqhkiG9w0BAQUFADBkMQswCQYDVQQGEwJTRTEUMBIGA1UEChML
-QWRkVHJ1c3QgQUIxHTAbBgNVBAsTFEFkZFRydXN0IFRUUCBOZXR3b3JrMSAwHgYDVQQDExdBZGRU
-cnVzdCBQdWJsaWMgQ0EgUm9vdDAeFw0wMDA1MzAxMDQxNTBaFw0yMDA1MzAxMDQxNTBaMGQxCzAJ
-BgNVBAYTAlNFMRQwEgYDVQQKEwtBZGRUcnVzdCBBQjEdMBsGA1UECxMUQWRkVHJ1c3QgVFRQIE5l
-dHdvcmsxIDAeBgNVBAMTF0FkZFRydXN0IFB1YmxpYyBDQSBSb290MIIBIjANBgkqhkiG9w0BAQEF
-AAOCAQ8AMIIBCgKCAQEA6Rowj4OIFMEg2Dybjxt+A3S72mnTRqX4jsIMEZBRpS9mVEBV6tsfSlbu
-nyNu9DnLoblv8n75XYcmYZ4c+OLspoH4IcUkzBEMP9smcnrHAZcHF/nXGCwwfQ56HmIexkvA/X1i
-d9NEHif2P0tEs7c42TkfYNVRknMDtABp4/MUTu7R3AnPdzRGULD4EfL+OHn3Bzn+UZKXC1sIXzSG
-Aa2Il+tmzV7R/9x98oTaunet3IAIx6eH1lWfl2royBFkuucZKT8Rs3iQhCBSWxHveNCD9tVIkNAw
-HM+A+WD+eeSI8t0A65RF62WUaUC6wNW0uLp9BBGo6zEFlpROWCGOn9Bg/QIDAQABo4HRMIHOMB0G
-A1UdDgQWBBSBPjfYkrAfd59ctKtzquf2NGAv+jALBgNVHQ8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB
-/zCBjgYDVR0jBIGGMIGDgBSBPjfYkrAfd59ctKtzquf2NGAv+qFopGYwZDELMAkGA1UEBhMCU0Ux
-FDASBgNVBAoTC0FkZFRydXN0IEFCMR0wGwYDVQQLExRBZGRUcnVzdCBUVFAgTmV0d29yazEgMB4G
-A1UEAxMXQWRkVHJ1c3QgUHVibGljIENBIFJvb3SCAQEwDQYJKoZIhvcNAQEFBQADggEBAAP3FUr4
-JNojVhaTdt02KLmuG7jD8WS6IBh4lSknVwW8fCr0uVFV2ocC3g8WFzH4qnkuCRO7r7IgGRLlk/lL
-+YPoRNWyQSW/iHVv/xD8SlTQX/D67zZzfRs2RcYhbbQVuE7PnFylPVoAjgbjPGsye/Kf8Lb93/Ao
-GEjwxrzQvzSAlsJKsW2Ox5BF3i9nrEUEo3rcVZLJR2bYGozH7ZxOmuASu7VqTITh4SINhwBk/ox9
-Yjllpu9CtoAlEmEBqCQTcAARJl/6NVDFSMwGR+gn2HCNX2TmoUQmXiLsks3/QppEIW1cxeMiHV9H
-EufOX1362KqxMy3ZdvJOOjMMK7MtkAY=
------END CERTIFICATE-----
-
-AddTrust Qualified Certificates Root
-====================================
------BEGIN CERTIFICATE-----
-MIIEHjCCAwagAwIBAgIBATANBgkqhkiG9w0BAQUFADBnMQswCQYDVQQGEwJTRTEUMBIGA1UEChML
-QWRkVHJ1c3QgQUIxHTAbBgNVBAsTFEFkZFRydXN0IFRUUCBOZXR3b3JrMSMwIQYDVQQDExpBZGRU
-cnVzdCBRdWFsaWZpZWQgQ0EgUm9vdDAeFw0wMDA1MzAxMDQ0NTBaFw0yMDA1MzAxMDQ0NTBaMGcx
-CzAJBgNVBAYTAlNFMRQwEgYDVQQKEwtBZGRUcnVzdCBBQjEdMBsGA1UECxMUQWRkVHJ1c3QgVFRQ
-IE5ldHdvcmsxIzAhBgNVBAMTGkFkZFRydXN0IFF1YWxpZmllZCBDQSBSb290MIIBIjANBgkqhkiG
-9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5B6a/twJWoekn0e+EV+vhDTbYjx5eLfpMLXsDBwqxBb/4Oxx
-64r1EW7tTw2R0hIYLUkVAcKkIhPHEWT/IhKauY5cLwjPcWqzZwFZ8V1G87B4pfYOQnrjfxvM0PC3
-KP0q6p6zsLkEqv32x7SxuCqg+1jxGaBvcCV+PmlKfw8i2O+tCBGaKZnhqkRFmhJePp1tUvznoD1o
-L/BLcHwTOK28FSXx1s6rosAx1i+f4P8UWfyEk9mHfExUE+uf0S0R+Bg6Ot4l2ffTQO2kBhLEO+GR
-wVY18BTcZTYJbqukB8c10cIDMzZbdSZtQvESa0NvS3GU+jQd7RNuyoB/mC9suWXY6QIDAQABo4HU
-MIHRMB0GA1UdDgQWBBQ5lYtii1zJ1IC6WA+XPxUIQ8yYpzALBgNVHQ8EBAMCAQYwDwYDVR0TAQH/
-BAUwAwEB/zCBkQYDVR0jBIGJMIGGgBQ5lYtii1zJ1IC6WA+XPxUIQ8yYp6FrpGkwZzELMAkGA1UE
-BhMCU0UxFDASBgNVBAoTC0FkZFRydXN0IEFCMR0wGwYDVQQLExRBZGRUcnVzdCBUVFAgTmV0d29y
-azEjMCEGA1UEAxMaQWRkVHJ1c3QgUXVhbGlmaWVkIENBIFJvb3SCAQEwDQYJKoZIhvcNAQEFBQAD
-ggEBABmrder4i2VhlRO6aQTvhsoToMeqT2QbPxj2qC0sVY8FtzDqQmodwCVRLae/DLPt7wh/bDxG
-GuoYQ992zPlmhpwsaPXpF/gxsxjE1kh9I0xowX67ARRvxdlu3rsEQmr49lx95dr6h+sNNVJn0J6X
-dgWTP5XHAeZpVTh/EGGZyeNfpso+gmNIquIISD6q8rKFYqa0p9m9N5xotS1WfbC3P6CxB9bpT9ze
-RXEwMn8bLgn5v1Kh7sKAPgZcLlVAwRv1cEWw3F369nJad9Jjzc9YiQBCYz95OdBEsIJuQRno3eDB
-iFrRHnGTHyQwdOUeqN48Jzd/g66ed8/wMLH/S5noxqE=
------END CERTIFICATE-----
-
-Verisign Time Stamping Authority CA
-===================================
------BEGIN CERTIFICATE-----
-MIIDzTCCAzagAwIBAgIQU2GyYK7bcY6nlLMTM/QHCTANBgkqhkiG9w0BAQUFADCBwTELMAkGA1UE
-BhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMTwwOgYDVQQLEzNDbGFzcyAzIFB1YmxpYyBQ
-cmltYXJ5IENlcnRpZmljYXRpb24gQXV0aG9yaXR5IC0gRzIxOjA4BgNVBAsTMShjKSAxOTk4IFZl
-cmlTaWduLCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxHzAdBgNVBAsTFlZlcmlTaWdu
-IFRydXN0IE5ldHdvcmswHhcNMDAwOTI2MDAwMDAwWhcNMTAwOTI1MjM1OTU5WjCBpTEXMBUGA1UE
-ChMOVmVyaVNpZ24sIEluYy4xHzAdBgNVBAsTFlZlcmlTaWduIFRydXN0IE5ldHdvcmsxOzA5BgNV
-BAsTMlRlcm1zIG9mIHVzZSBhdCBodHRwczovL3d3dy52ZXJpc2lnbi5jb20vcnBhIChjKTAwMSww
-KgYDVQQDEyNWZXJpU2lnbiBUaW1lIFN0YW1waW5nIEF1dGhvcml0eSBDQTCBnzANBgkqhkiG9w0B
-AQEFAAOBjQAwgYkCgYEA0hmdZ8IAIVlizrQJIkRpivglWtvtDbc2fk7gu5Q+kCWHwmFHKdm9VLhj
-zCx9abQzNvQ3B5rB3UBU/OB4naCTuQk9I1F/RMIUdNsKvsvJMDRAmD7Q1yUQgZS9B0+c1lQn3y6o
-v8uQjI11S7zi6ESHzeZBCiVu6PQkAsVSD27smHUCAwEAAaOB3zCB3DAPBgNVHRMECDAGAQH/AgEA
-MEUGA1UdIAQ+MDwwOgYMYIZIAYb4RQEHFwEDMCowKAYIKwYBBQUHAgEWHGh0dHBzOi8vd3d3LnZl
-cmlzaWduLmNvbS9ycGEwMQYDVR0fBCowKDAmoCSgIoYgaHR0cDovL2NybC52ZXJpc2lnbi5jb20v
-cGNhMy5jcmwwCwYDVR0PBAQDAgEGMEIGCCsGAQUFBwEBBDYwNDAyBggrBgEFBQcwAaYmFiRodHRw
-Oi8vb2NzcC52ZXJpc2lnbi5jb20vb2NzcC9zdGF0dXMwDQYJKoZIhvcNAQEFBQADgYEAgnBold+2
-DcIBcBlK0lRWHqzyRUyHuPU163hLBanInTsZIS5wNEqi9YngFXVF5yg3ADQnKeg3S/LvRJdrF1Ea
-w1adPBqK9kpGRjeM+sv1ZFo4aC4cw+9wzrhGBha/937ntag+RaypJXUie28/sJyU58dzq6wf7iWb
-wBbtt8pb8BQ=
------END CERTIFICATE-----
-
-Thawte Time Stamping CA
-=======================
------BEGIN CERTIFICATE-----
-MIICoTCCAgqgAwIBAgIBADANBgkqhkiG9w0BAQQFADCBizELMAkGA1UEBhMCWkExFTATBgNVBAgT
-DFdlc3Rlcm4gQ2FwZTEUMBIGA1UEBxMLRHVyYmFudmlsbGUxDzANBgNVBAoTBlRoYXd0ZTEdMBsG
-A1UECxMUVGhhd3RlIENlcnRpZmljYXRpb24xHzAdBgNVBAMTFlRoYXd0ZSBUaW1lc3RhbXBpbmcg
-Q0EwHhcNOTcwMTAxMDAwMDAwWhcNMjAxMjMxMjM1OTU5WjCBizELMAkGA1UEBhMCWkExFTATBgNV
-BAgTDFdlc3Rlcm4gQ2FwZTEUMBIGA1UEBxMLRHVyYmFudmlsbGUxDzANBgNVBAoTBlRoYXd0ZTEd
-MBsGA1UECxMUVGhhd3RlIENlcnRpZmljYXRpb24xHzAdBgNVBAMTFlRoYXd0ZSBUaW1lc3RhbXBp
-bmcgQ0EwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBANYrWHhhRYZT6jR7UZztsOYuGA7+4F+o
-J9O0yeB8WU4WDnNUYMF/9p8u6TqFJBU820cEY8OexJQaWt9MevPZQx08EHp5JduQ/vBR5zDWQQD9
-nyjfeb6Uu522FOMjhdepQeBMpHmwKxqL8vg7ij5FrHGSALSQQZj7X+36ty6K+Ig3AgMBAAGjEzAR
-MA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQEEBQADgYEAZ9viwuaHPUCDhjc1fR/OmsMMZiCo
-uqoEiYbC9RAIDb/LogWK0E02PvTX72nGXuSwlG9KuefeW4i2e9vjJ+V2w/A1wcu1J5szedyQpgCe
-d/r8zSeUQhac0xxo7L9c3eWpexAKMnRUEzGLhQOEkbdYATAUOK8oyvyxUBkZCayJSdM=
------END CERTIFICATE-----
-
-Entrust.net Global Secure Server CA
-===================================
------BEGIN CERTIFICATE-----
-MIIElTCCA/6gAwIBAgIEOJsRPDANBgkqhkiG9w0BAQQFADCBujEUMBIGA1UEChMLRW50cnVzdC5u
-ZXQxPzA9BgNVBAsUNnd3dy5lbnRydXN0Lm5ldC9TU0xfQ1BTIGluY29ycC4gYnkgcmVmLiAobGlt
-aXRzIGxpYWIuKTElMCMGA1UECxMcKGMpIDIwMDAgRW50cnVzdC5uZXQgTGltaXRlZDE6MDgGA1UE
-AxMxRW50cnVzdC5uZXQgU2VjdXJlIFNlcnZlciBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAeFw0w
-MDAyMDQxNzIwMDBaFw0yMDAyMDQxNzUwMDBaMIG6MRQwEgYDVQQKEwtFbnRydXN0Lm5ldDE/MD0G
-A1UECxQ2d3d3LmVudHJ1c3QubmV0L1NTTF9DUFMgaW5jb3JwLiBieSByZWYuIChsaW1pdHMgbGlh
-Yi4pMSUwIwYDVQQLExwoYykgMjAwMCBFbnRydXN0Lm5ldCBMaW1pdGVkMTowOAYDVQQDEzFFbnRy
-dXN0Lm5ldCBTZWN1cmUgU2VydmVyIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MIGfMA0GCSqGSIb3
-DQEBAQUAA4GNADCBiQKBgQDHwV9OcfHO8GCGD9JYf9Mzly0XonUwtZZkJi9ow0SrqHXmAGc0V55l
-xyKbc+bT3QgON1WqJUaBbL3+qPZ1V1eMkGxKwz6LS0MKyRFWmponIpnPVZ5h2QLifLZ8OAfc439P
-mrkDQYC2dWcTC5/oVzbIXQA23mYU2m52H083jIITiQIDAQABo4IBpDCCAaAwEQYJYIZIAYb4QgEB
-BAQDAgAHMIHjBgNVHR8EgdswgdgwgdWggdKggc+kgcwwgckxFDASBgNVBAoTC0VudHJ1c3QubmV0
-MT8wPQYDVQQLFDZ3d3cuZW50cnVzdC5uZXQvU1NMX0NQUyBpbmNvcnAuIGJ5IHJlZi4gKGxpbWl0
-cyBsaWFiLikxJTAjBgNVBAsTHChjKSAyMDAwIEVudHJ1c3QubmV0IExpbWl0ZWQxOjA4BgNVBAMT
-MUVudHJ1c3QubmV0IFNlY3VyZSBTZXJ2ZXIgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkxDTALBgNV
-BAMTBENSTDEwKwYDVR0QBCQwIoAPMjAwMDAyMDQxNzIwMDBagQ8yMDIwMDIwNDE3NTAwMFowCwYD
-VR0PBAQDAgEGMB8GA1UdIwQYMBaAFMtswGvjuz7L/CKc/vuLkpyw8m4iMB0GA1UdDgQWBBTLbMBr
-47s+y/winP77i5KcsPJuIjAMBgNVHRMEBTADAQH/MB0GCSqGSIb2fQdBAAQQMA4bCFY1LjA6NC4w
-AwIEkDANBgkqhkiG9w0BAQQFAAOBgQBi24GRzsiad0Iv7L0no1MPUBvqTpLwqa+poLpIYcvvyQbv
-H9X07t9WLebKahlzqlO+krNQAraFJnJj2HVQYnUUt7NQGj/KEQALhUVpbbalrlHhStyCP2yMNLJ3
-a9kC9n8O6mUE8c1UyrrJzOCE98g+EZfTYAkYvAX/bIkz8OwVDw==
------END CERTIFICATE-----
-
-Entrust.net Global Secure Personal CA
-=====================================
------BEGIN CERTIFICATE-----
-MIIEgzCCA+ygAwIBAgIEOJ725DANBgkqhkiG9w0BAQQFADCBtDEUMBIGA1UEChMLRW50cnVzdC5u
-ZXQxQDA+BgNVBAsUN3d3dy5lbnRydXN0Lm5ldC9HQ0NBX0NQUyBpbmNvcnAuIGJ5IHJlZi4gKGxp
-bWl0cyBsaWFiLikxJTAjBgNVBAsTHChjKSAyMDAwIEVudHJ1c3QubmV0IExpbWl0ZWQxMzAxBgNV
-BAMTKkVudHJ1c3QubmV0IENsaWVudCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAeFw0wMDAyMDcx
-NjE2NDBaFw0yMDAyMDcxNjQ2NDBaMIG0MRQwEgYDVQQKEwtFbnRydXN0Lm5ldDFAMD4GA1UECxQ3
-d3d3LmVudHJ1c3QubmV0L0dDQ0FfQ1BTIGluY29ycC4gYnkgcmVmLiAobGltaXRzIGxpYWIuKTEl
-MCMGA1UECxMcKGMpIDIwMDAgRW50cnVzdC5uZXQgTGltaXRlZDEzMDEGA1UEAxMqRW50cnVzdC5u
-ZXQgQ2xpZW50IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCB
-iQKBgQCTdLS25MVL1qFof2LV7PdRV7NySpj10InJrWPNTTVRaoTUrcloeW+46xHbh65cJFET8VQl
-hK8pK5/jgOLZy93GRUk0iJBeAZfv6lOm3fzB3ksqJeTpNfpVBQbliXrqpBFXO/x8PTbNZzVtpKkl
-Wb1m9fkn5JVn1j+SgF7yNH0rhQIDAQABo4IBnjCCAZowEQYJYIZIAYb4QgEBBAQDAgAHMIHdBgNV
-HR8EgdUwgdIwgc+ggcyggcmkgcYwgcMxFDASBgNVBAoTC0VudHJ1c3QubmV0MUAwPgYDVQQLFDd3
-d3cuZW50cnVzdC5uZXQvR0NDQV9DUFMgaW5jb3JwLiBieSByZWYuIChsaW1pdHMgbGlhYi4pMSUw
-IwYDVQQLExwoYykgMjAwMCBFbnRydXN0Lm5ldCBMaW1pdGVkMTMwMQYDVQQDEypFbnRydXN0Lm5l
-dCBDbGllbnQgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkxDTALBgNVBAMTBENSTDEwKwYDVR0QBCQw
-IoAPMjAwMDAyMDcxNjE2NDBagQ8yMDIwMDIwNzE2NDY0MFowCwYDVR0PBAQDAgEGMB8GA1UdIwQY
-MBaAFISLdP3FjcD/J20gN0V8/i3OutN9MB0GA1UdDgQWBBSEi3T9xY3A/ydtIDdFfP4tzrrTfTAM
-BgNVHRMEBTADAQH/MB0GCSqGSIb2fQdBAAQQMA4bCFY1LjA6NC4wAwIEkDANBgkqhkiG9w0BAQQF
-AAOBgQBObzWAO9GK9Q6nIMstZVXQkvTnhLUGJoMShAusO7JE7r3PQNsgDrpuFOow4DtifH+La3xK
-p9U1PL6oXOpLu5OOgGarDyn9TS2/GpsKkMWr2tGzhtQvJFJcem3G8v7lTRowjJDyutdKPkN+1MhQ
-Gof4T4HHdguEOnKdzmVml64mXg==
------END CERTIFICATE-----
-
-Entrust Root Certification Authority
-====================================
------BEGIN CERTIFICATE-----
-MIIEkTCCA3mgAwIBAgIERWtQVDANBgkqhkiG9w0BAQUFADCBsDELMAkGA1UEBhMCVVMxFjAUBgNV
-BAoTDUVudHJ1c3QsIEluYy4xOTA3BgNVBAsTMHd3dy5lbnRydXN0Lm5ldC9DUFMgaXMgaW5jb3Jw
-b3JhdGVkIGJ5IHJlZmVyZW5jZTEfMB0GA1UECxMWKGMpIDIwMDYgRW50cnVzdCwgSW5jLjEtMCsG
-A1UEAxMkRW50cnVzdCBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MB4XDTA2MTEyNzIwMjM0
-MloXDTI2MTEyNzIwNTM0MlowgbAxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1FbnRydXN0LCBJbmMu
-MTkwNwYDVQQLEzB3d3cuZW50cnVzdC5uZXQvQ1BTIGlzIGluY29ycG9yYXRlZCBieSByZWZlcmVu
-Y2UxHzAdBgNVBAsTFihjKSAyMDA2IEVudHJ1c3QsIEluYy4xLTArBgNVBAMTJEVudHJ1c3QgUm9v
-dCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEB
-ALaVtkNC+sZtKm9I35RMOVcF7sN5EUFoNu3s/poBj6E4KPz3EEZmLk0eGrEaTsbRwJWIsMn/MYsz
-A9u3g3s+IIRe7bJWKKf44LlAcTfFy0cOlypowCKVYhXbR9n10Cv/gkvJrT7eTNuQgFA/CYqEAOww
-Cj0Yzfv9KlmaI5UXLEWeH25DeW0MXJj+SKfFI0dcXv1u5x609mhF0YaDW6KKjbHjKYD+JXGIrb68
-j6xSlkuqUY3kEzEZ6E5Nn9uss2rVvDlUccp6en+Q3X0dgNmBu1kmwhH+5pPi94DkZfs0Nw4pgHBN
-rziGLp5/V6+eF67rHMsoIV+2HNjnogQi+dPa2MsCAwEAAaOBsDCBrTAOBgNVHQ8BAf8EBAMCAQYw
-DwYDVR0TAQH/BAUwAwEB/zArBgNVHRAEJDAigA8yMDA2MTEyNzIwMjM0MlqBDzIwMjYxMTI3MjA1
-MzQyWjAfBgNVHSMEGDAWgBRokORnpKZTgMeGZqTx90tD+4S9bTAdBgNVHQ4EFgQUaJDkZ6SmU4DH
-hmak8fdLQ/uEvW0wHQYJKoZIhvZ9B0EABBAwDhsIVjcuMTo0LjADAgSQMA0GCSqGSIb3DQEBBQUA
-A4IBAQCT1DCw1wMgKtD5Y+iRDAUgqV8ZyntyTtSx29CW+1RaGSwMCPeyvIWonX9tO1KzKtvn1ISM
-Y/YPyyYBkVBs9F8U4pN0wBOeMDpQ47RgxRzwIkSNcUesyBrJ6ZuaAGAT/3B+XxFNSRuzFVJ7yVTa
-v52Vr2ua2J7p8eRDjeIRRDq/r72DQnNSi6q7pynP9WQcCk3RvKqsnyrQ/39/2n3qse0wJcGE2jTS
-W3iDVuycNsMm4hH2Z0kdkquM++v/eu6FSqdQgPCnXEqULl8FmTxSQeDNtGPPAUO6nIPcj2A781q0
-tHuu2guQOHXvgR1m0vdXcDazv/wor3ElhVsT/h5/WrQ8
------END CERTIFICATE-----
-
-AOL Time Warner Root Certification Authority 1
-==============================================
------BEGIN CERTIFICATE-----
-MIID5jCCAs6gAwIBAgIBATANBgkqhkiG9w0BAQUFADCBgzELMAkGA1UEBhMCVVMxHTAbBgNVBAoT
-FEFPTCBUaW1lIFdhcm5lciBJbmMuMRwwGgYDVQQLExNBbWVyaWNhIE9ubGluZSBJbmMuMTcwNQYD
-VQQDEy5BT0wgVGltZSBXYXJuZXIgUm9vdCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSAxMB4XDTAy
-MDUyOTA2MDAwMFoXDTM3MTEyMDE1MDMwMFowgYMxCzAJBgNVBAYTAlVTMR0wGwYDVQQKExRBT0wg
-VGltZSBXYXJuZXIgSW5jLjEcMBoGA1UECxMTQW1lcmljYSBPbmxpbmUgSW5jLjE3MDUGA1UEAxMu
-QU9MIFRpbWUgV2FybmVyIFJvb3QgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkgMTCCASIwDQYJKoZI
-hvcNAQEBBQADggEPADCCAQoCggEBAJnej8Mlo2k06AX3dLm/WpcZuS+U0pPlLYnKhHw/EEMbjIt8
-hFj4JHxIzyr9wBXZGH6EGhfT257XyuTZ16pYUYfw8ItITuLCxFlpMGK2MKKMCxGZYTVtfu/FsRkG
-IBKOQuHfD5YQUqjPnF+VFNivO3ULMSAfRC+iYkGzuxgh28pxPIzstrkNn+9R7017EvILDOGsQI93
-f7DKeHEMXRZxcKLXwjqFzQ6axOAAsNUl6twr5JQtOJyJQVdkKGUZHLZEtMgxa44Be3ZZJX8VHIQI
-fHNlIAqhBC4aMqiaILGcLCFZ5/vP7nAtCMpjPiybkxlqpMKX/7eGV4iFbJ4VFitNLLMCAwEAAaNj
-MGEwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUoTYwFsuGkABFgFOxj8jYPXy+XxIwHwYDVR0j
-BBgwFoAUoTYwFsuGkABFgFOxj8jYPXy+XxIwDgYDVR0PAQH/BAQDAgGGMA0GCSqGSIb3DQEBBQUA
-A4IBAQCKIBilvrMvtKaEAEAwKfq0FHNMeUWn9nDg6H5kHgqVfGphwu9OH77/yZkfB2FK4V1Mza3u
-0FIy2VkyvNp5ctZ7CegCgTXTCt8RHcl5oIBN/lrXVtbtDyqvpxh1MwzqwWEFT2qaifKNuZ8u77Bf
-WgDrvq2g+EQFZ7zLBO+eZMXpyD8Fv8YvBxzDNnGGyjhmSs3WuEvGbKeXO/oTLW4jYYehY0KswsuX
-n2Fozy1MBJ3XJU8KDk2QixhWqJNIV9xvrr2eZ1d3iVCzvhGbRWeDhhmH05i9CBoWH1iCC+GWaQVL
-juyDUTEH1dSf/1l7qG6Fz9NLqUmwX7A5KGgOc90lmt4S
------END CERTIFICATE-----
-
-AOL Time Warner Root Certification Authority 2
-==============================================
------BEGIN CERTIFICATE-----
-MIIF5jCCA86gAwIBAgIBATANBgkqhkiG9w0BAQUFADCBgzELMAkGA1UEBhMCVVMxHTAbBgNVBAoT
-FEFPTCBUaW1lIFdhcm5lciBJbmMuMRwwGgYDVQQLExNBbWVyaWNhIE9ubGluZSBJbmMuMTcwNQYD
-VQQDEy5BT0wgVGltZSBXYXJuZXIgUm9vdCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSAyMB4XDTAy
-MDUyOTA2MDAwMFoXDTM3MDkyODIzNDMwMFowgYMxCzAJBgNVBAYTAlVTMR0wGwYDVQQKExRBT0wg
-VGltZSBXYXJuZXIgSW5jLjEcMBoGA1UECxMTQW1lcmljYSBPbmxpbmUgSW5jLjE3MDUGA1UEAxMu
-QU9MIFRpbWUgV2FybmVyIFJvb3QgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkgMjCCAiIwDQYJKoZI
-hvcNAQEBBQADggIPADCCAgoCggIBALQ3WggWmRToVbEbJGv8x4vmh6mJ7ouZzU9AhqS2TcnZsdw8
-TQ2FTBVsRotSeJ/4I/1n9SQ6aF3Q92RhQVSji6UI0ilbm2BPJoPRYxJWSXakFsKlnUWsi4SVqBax
-7J/qJBrvuVdcmiQhLE0OcR+mrF1FdAOYxFSMFkpBd4aVdQxHAWZg/BXxD+r1FHjHDtdugRxev17n
-OirYlxcwfACtCJ0zr7iZYYCLqJV+FNwSbKTQ2O9ASQI2+W6p1h2WVgSysy0WVoaP2SBXgM1nEG2w
-TPDaRrbqJS5Gr42whTg0ixQmgiusrpkLjhTXUr2eacOGAgvqdnUxCc4zGSGFQ+aJLZ8lN2fxI2rS
-AG2X+Z/nKcrdH9cG6rjJuQkhn8g/BsXS6RJGAE57COtCPStIbp1n3UsC5ETzkxmlJ85per5n0/xQ
-pCyrw2u544BMzwVhSyvcG7mm0tCq9Stz+86QNZ8MUhy/XCFhEVsVS6kkUfykXPcXnbDS+gfpj1bk
-GoxoigTTfFrjnqKhynFbotSg5ymFXQNoKk/SBtc9+cMDLz9l+WceR0DTYw/j1Y75hauXTLPXJuuW
-CpTehTacyH+BCQJJKg71ZDIMgtG6aoIbs0t0EfOMd9afv9w3pKdVBC/UMejTRrkDfNoSTllkt1Ex
-MVCgyhwn2RAurda9EGYrw7AiShJbAgMBAAGjYzBhMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYE
-FE9pbQN+nZ8HGEO8txBO1b+pxCAoMB8GA1UdIwQYMBaAFE9pbQN+nZ8HGEO8txBO1b+pxCAoMA4G
-A1UdDwEB/wQEAwIBhjANBgkqhkiG9w0BAQUFAAOCAgEAO/Ouyuguh4X7ZVnnrREUpVe8WJ8kEle7
-+z802u6teio0cnAxa8cZmIDJgt43d15Ui47y6mdPyXSEkVYJ1eV6moG2gcKtNuTxVBFT8zRFASbI
-5Rq8NEQh3q0l/HYWdyGQgJhXnU7q7C+qPBR7V8F+GBRn7iTGvboVsNIYvbdVgaxTwOjdaRITQrcC
-tQVBynlQboIOcXKTRuidDV29rs4prWPVVRaAMCf/drr3uNZK49m1+VLQTkCpx+XCMseqdiThawVQ
-68W/ClTluUI8JPu3B5wwn3la5uBAUhX0/Kr0VvlEl4ftDmVyXr4m+02kLQgH3thcoNyBM5kYJRF3
-p+v9WAksmWsbivNSPxpNSGDxoPYzAlOL7SUJuA0t7Zdz7NeWH45gDtoQmy8YJPamTQr5O8t1wswv
-ziRpyQoijlmn94IM19drNZxDAGrElWe6nEXLuA4399xOAU++CrYD062KRffaJ00psUjf5BHklka9
-bAI+1lHIlRcBFanyqqryvy9lG2/QuRqT9Y41xICHPpQvZuTpqP9BnHAqTyo5GJUefvthATxRCC4o
-GKQWDzH9OmwjkyB24f0HhdFbP9IcczLd+rn4jM8Ch3qaluTtT4mNU0OrDhPAARW0eTjb/G49nlG2
-uBOLZ8/5fNkiHfZdxRwBL5joeiQYvITX+txyW/fBOmg=
------END CERTIFICATE-----
-
-beTRUSTed Root CA-Baltimore Implementation
-==========================================
------BEGIN CERTIFICATE-----
-MIIFajCCBFKgAwIBAgIEPLU9RjANBgkqhkiG9w0BAQUFADBmMRIwEAYDVQQKEwliZVRSVVNUZWQx
-GzAZBgNVBAsTEmJlVFJVU1RlZCBSb290IENBczEzMDEGA1UEAxMqYmVUUlVTVGVkIFJvb3QgQ0Et
-QmFsdGltb3JlIEltcGxlbWVudGF0aW9uMB4XDTAyMDQxMTA3Mzg1MVoXDTIyMDQxMTA3Mzg1MVow
-ZjESMBAGA1UEChMJYmVUUlVTVGVkMRswGQYDVQQLExJiZVRSVVNUZWQgUm9vdCBDQXMxMzAxBgNV
-BAMTKmJlVFJVU1RlZCBSb290IENBLUJhbHRpbW9yZSBJbXBsZW1lbnRhdGlvbjCCASIwDQYJKoZI
-hvcNAQEBBQADggEPADCCAQoCggEBALx+xDmcjOPWHIb/ymKt4H8wRXqOGrO4x/nRNv8i805qX4QQ
-+2aBw5R5MdKR4XeOGCrDFN5R9U+jK7wYFuK13XneIviCfsuBH/0nLI/6l2Qijvj/YaOcGx6Sj8Co
-Cd8JEey3fTGaGuqDIQY8n7pc/5TqarjDa1U0Tz0yH92BFODEPM2dMPgwqZfT7syj0B9fHBOB1Bir
-lNFjw55/NZKeX0Tq7PQiXLfoPX2k+YmpkbIq2eszh+6l/ePazIjmiSZuxyuC0F6dWdsU7JGDBcNe
-DsYq0ATdcT0gTlgn/FP7eHgZFLL8kFKJOGJgB7Sg7KxrUNb9uShr71ItOrL/8QFArDcCAwEAAaOC
-Ah4wggIaMA8GA1UdEwEB/wQFMAMBAf8wggG1BgNVHSAEggGsMIIBqDCCAaQGDysGAQQBsT4AAAEJ
-KIORMTCCAY8wggFIBggrBgEFBQcCAjCCAToaggE2UmVsaWFuY2Ugb24gb3IgdXNlIG9mIHRoaXMg
-Q2VydGlmaWNhdGUgY3JlYXRlcyBhbiBhY2tub3dsZWRnbWVudCBhbmQgYWNjZXB0YW5jZSBvZiB0
-aGUgdGhlbiBhcHBsaWNhYmxlIHN0YW5kYXJkIHRlcm1zIGFuZCBjb25kaXRpb25zIG9mIHVzZSwg
-dGhlIENlcnRpZmljYXRpb24gUHJhY3RpY2UgU3RhdGVtZW50IGFuZCB0aGUgUmVseWluZyBQYXJ0
-eSBBZ3JlZW1lbnQsIHdoaWNoIGNhbiBiZSBmb3VuZCBhdCB0aGUgYmVUUlVTVGVkIHdlYiBzaXRl
-LCBodHRwOi8vd3d3LmJldHJ1c3RlZC5jb20vcHJvZHVjdHNfc2VydmljZXMvaW5kZXguaHRtbDBB
-BggrBgEFBQcCARY1aHR0cDovL3d3dy5iZXRydXN0ZWQuY29tL3Byb2R1Y3RzX3NlcnZpY2VzL2lu
-ZGV4Lmh0bWwwHQYDVR0OBBYEFEU9w6nR3D8kVpgccxiIav+DR+22MB8GA1UdIwQYMBaAFEU9w6nR
-3D8kVpgccxiIav+DR+22MA4GA1UdDwEB/wQEAwIBBjANBgkqhkiG9w0BAQUFAAOCAQEASZK8o+6s
-vfoNyYt5hhwjdrCAWXf82n+0S9/DZEtqTg6t8n1ZdwWtColzsPq8y9yNAIiPpqCy6qxSJ7+hSHyX
-EHu67RMdmgduyzFiEuhjA6p9beP4G3YheBufS0OM00mG9htc9i5gFdPp43t1P9ACg9AYgkHNZTfq
-jjJ+vWuZXTARyNtIVBw74acT02pIk/c9jH8F6M7ziCpjBLjqflh8AXtb4cV97yHgjQ5dUX2xZ/2j
-vTg2xvI4hocalmhgRvsoFEdV4aeADGvi6t9NfJBIoDa9CReJf8Py05yc493EG931t3GzUwWJBtDL
-SoDByFOQtTwxiBdQn8nEDovYqAJjDQ==
------END CERTIFICATE-----
-
-beTRUSTed Root CA - Entrust Implementation
-==========================================
------BEGIN CERTIFICATE-----
-MIIGUTCCBTmgAwIBAgIEPLVPQDANBgkqhkiG9w0BAQUFADBmMRIwEAYDVQQKEwliZVRSVVNUZWQx
-GzAZBgNVBAsTEmJlVFJVU1RlZCBSb290IENBczEzMDEGA1UEAxMqYmVUUlVTVGVkIFJvb3QgQ0Eg
-LSBFbnRydXN0IEltcGxlbWVudGF0aW9uMB4XDTAyMDQxMTA4MjQyN1oXDTIyMDQxMTA4NTQyN1ow
-ZjESMBAGA1UEChMJYmVUUlVTVGVkMRswGQYDVQQLExJiZVRSVVNUZWQgUm9vdCBDQXMxMzAxBgNV
-BAMTKmJlVFJVU1RlZCBSb290IENBIC0gRW50cnVzdCBJbXBsZW1lbnRhdGlvbjCCASIwDQYJKoZI
-hvcNAQEBBQADggEPADCCAQoCggEBALr0RAOqEmq1Q+xVkrYwfTVXDNvzDSduTPdQqJtOK2/b9a0c
-S12zqcH+e0TrW6MFDR/FNCswACnxeECypP869AGIF37m1CbTukzqMvtDd5eHI8XbQ6P1KqNRXuE7
-0mVpflUVm3rnafdE4Fe1FehmYA8NA/uCjqPoEXtsvsdjDheT389Lrm5zdeDzqrmkwAkbhepxKYhB
-MvnwKg5sCfJ0a2ZsUhMfGLzUPvfYbiCeyv78IZTuEyhL11xeDGbu6bsPwTSxfwh28z0mcMmLJR1i
-JAzqHHVOwBLkuhMdMCktVjMFu5dZfsZJT4nXLySotohAtWSSU1Yk5KKghbNekLQSM80CAwEAAaOC
-AwUwggMBMIIBtwYDVR0gBIIBrjCCAaowggGmBg8rBgEEAbE+AAACCSiDkTEwggGRMIIBSQYIKwYB
-BQUHAgIwggE7GoIBN1JlbGlhbmNlIG9uIG9yIHVzZSBvZiB0aGlzIENlcnRpZmljYXRlIGNyZWF0
-ZXMgYW4gYWNrbm93bGVkZ21lbnQgYW5kIGFjY2VwdGFuY2Ugb2YgdGhlIHRoZW4gYXBwbGljYWJs
-ZSBzdGFuZGFyZCB0ZXJtcyBhbmQgY29uZGl0aW9ucyBvZiB1c2UsIHRoZSBDZXJ0aWZpY2F0aW9u
-IFByYWN0aWNlIFN0YXRlbWVudCBhbmQgdGhlIFJlbHlpbmcgUGFydHkgQWdyZWVtZW50LCB3aGlj
-aCBjYW4gYmUgZm91bmQgYXQgdGhlIGJlVFJVU1RlZCB3ZWIgc2l0ZSwgaHR0cHM6Ly93d3cuYmV0
-cnVzdGVkLmNvbS9wcm9kdWN0c19zZXJ2aWNlcy9pbmRleC5odG1sMEIGCCsGAQUFBwIBFjZodHRw
-czovL3d3dy5iZXRydXN0ZWQuY29tL3Byb2R1Y3RzX3NlcnZpY2VzL2luZGV4Lmh0bWwwEQYJYIZI
-AYb4QgEBBAQDAgAHMIGJBgNVHR8EgYEwfzB9oHugeaR3MHUxEjAQBgNVBAoTCWJlVFJVU1RlZDEb
-MBkGA1UECxMSYmVUUlVTVGVkIFJvb3QgQ0FzMTMwMQYDVQQDEypiZVRSVVNUZWQgUm9vdCBDQSAt
-IEVudHJ1c3QgSW1wbGVtZW50YXRpb24xDTALBgNVBAMTBENSTDEwKwYDVR0QBCQwIoAPMjAwMjA0
-MTEwODI0MjdagQ8yMDIyMDQxMTA4NTQyN1owCwYDVR0PBAQDAgEGMB8GA1UdIwQYMBaAFH1w5a44
-iwY/qhwaj/nPJDCqhIQWMB0GA1UdDgQWBBR9cOWuOIsGP6ocGo/5zyQwqoSEFjAMBgNVHRMEBTAD
-AQH/MB0GCSqGSIb2fQdBAAQQMA4bCFY2LjA6NC4wAwIEkDANBgkqhkiG9w0BAQUFAAOCAQEAKrgX
-zh8QlOu4mre5X+za95IkrNySO8cgjfKZ5V04ocI07cUTWVwFtStPYZuR+0H8/NU8TZh2BvWBfevd
-kObRVlTa4y0MnxEylCIBevZsLHRnBMylj44ss0O1lKLQfelifwa+JwGDnjr9iu6YQ0pr17WXOzq/
-T220Y/ozADQuLW2WyXvKmWO6vvT2MKAtmJbpVkQFqUSjYRDrgqFnXbxdJ3Wqiig2KjiS2d2kXgCl
-zMx8KSreKJCrt+G2/30lC0DYqjSjLd4H61/OCt3Kfjp9JsFiaDrmLzfzgYYhxKlkqu9FNtEaZnz4
-6TfW1mG+oq1I59/mdP7TbX3SJdysYlep9w==
------END CERTIFICATE-----
-
-beTRUSTed Root CA - RSA Implementation
-======================================
------BEGIN CERTIFICATE-----
-MIIFaDCCBFCgAwIBAgIQO1nHe81bV569N1KsdrSqGjANBgkqhkiG9w0BAQUFADBiMRIwEAYDVQQK
-EwliZVRSVVNUZWQxGzAZBgNVBAsTEmJlVFJVU1RlZCBSb290IENBczEvMC0GA1UEAxMmYmVUUlVT
-VGVkIFJvb3QgQ0EgLSBSU0EgSW1wbGVtZW50YXRpb24wHhcNMDIwNDExMTExODEzWhcNMjIwNDEy
-MTEwNzI1WjBiMRIwEAYDVQQKEwliZVRSVVNUZWQxGzAZBgNVBAsTEmJlVFJVU1RlZCBSb290IENB
-czEvMC0GA1UEAxMmYmVUUlVTVGVkIFJvb3QgQ0EgLSBSU0EgSW1wbGVtZW50YXRpb24wggEiMA0G
-CSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDkujQwCY5X0LkGLG9uJIAiv11DpvpPrILnHGhwhRuj
-brWqeNluB0s/6d/16uhUoWGKDi9pdRi3DOUUjXFumLhV/AyV0Jtu4S2I1DpAa5LxmZZk3tv/ePTu
-lh1HiXzUvrmIdyM6CeYEnm2qXtLIvZpOGd+J6lsOfsPktPDgaTuID0GQ+NRxQyTBjyZLO1bp/4xs
-N+lFrYWMU8NghpBKlsmzVLC7F/AcRdnUGxlkVgoZ98zh/4avflherHqQH8koOUV7orbHnB/ahdQh
-hlkwk75TMzf270HPM8ercmsl9fNTGwxMLvF1S++gh/f+ihXQbNXL+WhTuXAVE8L1LvtDNXUtAgMB
-AAGjggIYMIICFDAMBgNVHRMEBTADAQH/MIIBtQYDVR0gBIIBrDCCAagwggGkBg8rBgEEAbE+AAAD
-CSiDkTEwggGPMEEGCCsGAQUFBwIBFjVodHRwOi8vd3d3LmJldHJ1c3RlZC5jb20vcHJvZHVjdHNf
-c2VydmljZXMvaW5kZXguaHRtbDCCAUgGCCsGAQUFBwICMIIBOhqCATZSZWxpYW5jZSBvbiBvciB1
-c2Ugb2YgdGhpcyBDZXJ0aWZpY2F0ZSBjcmVhdGVzIGFuIGFja25vd2xlZGdtZW50IGFuZCBhY2Nl
-cHRhbmNlIG9mIHRoZSB0aGVuIGFwcGxpY2FibGUgc3RhbmRhcmQgdGVybXMgYW5kIGNvbmRpdGlv
-bnMgb2YgdXNlLCB0aGUgQ2VydGlmaWNhdGlvbiBQcmFjdGljZSBTdGF0ZW1lbnQgYW5kIHRoZSBS
-ZWx5aW5nIFBhcnR5IEFncmVlbWVudCwgd2hpY2ggY2FuIGJlIGZvdW5kIGF0IHRoZSBiZVRSVVNU
-ZWQgd2ViIHNpdGUsIGh0dHA6Ly93d3cuYmV0cnVzdGVkLmNvbS9wcm9kdWN0c19zZXJ2aWNlcy9p
-bmRleC5odG1sMAsGA1UdDwQEAwIBBjAfBgNVHSMEGDAWgBSp7BR++dlDzFMrFK3P9/BZiUHNGTAd
-BgNVHQ4EFgQUqewUfvnZQ8xTKxStz/fwWYlBzRkwDQYJKoZIhvcNAQEFBQADggEBANuXsHXqDMTB
-mMpWBcCorSZIry0g6IHHtt9DwSwddUvUQo3neqh03GZCWYez9Wlt2ames30cMcH1VOJZJEnl7r05
-pmuKmET7m9cqg5c0Lcd9NUwtNLg+DcTsiCevnpL9UGGCqGAHFFPMZRPB9kdEadIxyKbdLrML3kqN
-Wz2rDcI1UqJWN8wyiyiFQpyRQHpwKzg21eFzGh/l+n5f3NacOzDq28BbJ1zTcwfBwvNMm2+fG8oe
-qqg4MwlYsq78B+g23FW6L09A/nq9BqaBwZMifIYRCgZ3SK41ty8ymmFei74pnykkiFY5LKjSq5YD
-WtRIn7lAhAuYaPsBQ9Yb4gmxlxw=
------END CERTIFICATE-----
-
-RSA Security 2048 v3
-====================
------BEGIN CERTIFICATE-----
-MIIDYTCCAkmgAwIBAgIQCgEBAQAAAnwAAAAKAAAAAjANBgkqhkiG9w0BAQUFADA6MRkwFwYDVQQK
-ExBSU0EgU2VjdXJpdHkgSW5jMR0wGwYDVQQLExRSU0EgU2VjdXJpdHkgMjA0OCBWMzAeFw0wMTAy
-MjIyMDM5MjNaFw0yNjAyMjIyMDM5MjNaMDoxGTAXBgNVBAoTEFJTQSBTZWN1cml0eSBJbmMxHTAb
-BgNVBAsTFFJTQSBTZWN1cml0eSAyMDQ4IFYzMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKC
-AQEAt49VcdKA3XtpeafwGFAyPGJn9gqVB93mG/Oe2dJBVGutn3y+Gc37RqtBaB4Y6lXIL5F4iSj7
-Jylg/9+PjDvJSZu1pJTOAeo+tWN7fyb9Gd3AIb2E0S1PRsNO3Ng3OTsor8udGuorryGlwSMiuLgb
-WhOHV4PR8CDn6E8jQrAApX2J6elhc5SYcSa8LWrg903w8bYqODGBDSnhAMFRD0xS+ARaqn1y07iH
-KrtjEAMqs6FPDVpeRrc9DvV07Jmf+T0kgYim3WBU6JU2PcYJk5qjEoAAVZkZR73QpXzDuvsf9/UP
-+Ky5tfQ3mBMY3oVbtwyCO4dvlTlYMNpuAWgXIszACwIDAQABo2MwYTAPBgNVHRMBAf8EBTADAQH/
-MA4GA1UdDwEB/wQEAwIBBjAfBgNVHSMEGDAWgBQHw1EwpKrpRa41JPr/JCwz0LGdjDAdBgNVHQ4E
-FgQUB8NRMKSq6UWuNST6/yQsM9CxnYwwDQYJKoZIhvcNAQEFBQADggEBAF8+hnZuuDU8TjYcHnmY
-v/3VEhF5Ug7uMYm83X/50cYVIeiKAVQNOvtUudZj1LGqlk2iQk3UUx+LEN5/Zb5gEydxiKRz44Rj
-0aRV4VCT5hsOedBnvEbIvz8XDZXmxpBp3ue0L96VfdASPz0+f00/FGj1EVDVwfSQpQgdMWD/YIwj
-VAqv/qFuxdF6Kmh4zx6CCiC0H63lhbJqaHVOrSU3lIW+vaHU6rcMSzyd6BIA8F+sDeGscGNz9395
-nzIlQnQFgCi/vcEkllgVsRch6YlL2weIZ/QVrXA+L02FO8K32/6YaCOJ4XQP3vTFhGMpG8zLB8kA
-pKnXwiJPZ9d37CAFYd4=
------END CERTIFICATE-----
-
-RSA Security 1024 v3
-====================
------BEGIN CERTIFICATE-----
-MIICXDCCAcWgAwIBAgIQCgEBAQAAAnwAAAALAAAAAjANBgkqhkiG9w0BAQUFADA6MRkwFwYDVQQK
-ExBSU0EgU2VjdXJpdHkgSW5jMR0wGwYDVQQLExRSU0EgU2VjdXJpdHkgMTAyNCBWMzAeFw0wMTAy
-MjIyMTAxNDlaFw0yNjAyMjIyMDAxNDlaMDoxGTAXBgNVBAoTEFJTQSBTZWN1cml0eSBJbmMxHTAb
-BgNVBAsTFFJTQSBTZWN1cml0eSAxMDI0IFYzMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDV
-3f5mCc8kPD6ugU5OisRpgFtZO9+5TUzKtS3DJy08rwBCbbwoppbPf9dYrIMKo1W1exeQFYRMiu4m
-mdxY78c4pqqv0I5CyGLXq6yp+0p9v+r+Ek3d/yYtbzZUaMjShFbuklNhCbM/OZuoyZu9zp9+1Blq
-FikYvtc6adwlWzMaUQIDAQABo2MwYTAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBBjAf
-BgNVHSMEGDAWgBTEwBykB5T9zU0B1FTapQxf3q4FWjAdBgNVHQ4EFgQUxMAcpAeU/c1NAdRU2qUM
-X96uBVowDQYJKoZIhvcNAQEFBQADgYEAPy1q4yZDlX2Jl2X7deRyHUZXxGFraZ8SmyzVWujAovBD
-leMf6XbN3Ou8k6BlCsdNT1+nr6JGFLkM88y9am63nd4lQtBU/55oc2PcJOsiv6hy8l4A4Q1OOkNu
-mU4/iXgDmMrzVcydro7BqkWY+o8aoI2II/EVQQ2lRj6RP4vr93E=
------END CERTIFICATE-----
-
-GeoTrust Global CA
-==================
------BEGIN CERTIFICATE-----
-MIIDVDCCAjygAwIBAgIDAjRWMA0GCSqGSIb3DQEBBQUAMEIxCzAJBgNVBAYTAlVTMRYwFAYDVQQK
-Ew1HZW9UcnVzdCBJbmMuMRswGQYDVQQDExJHZW9UcnVzdCBHbG9iYWwgQ0EwHhcNMDIwNTIxMDQw
-MDAwWhcNMjIwNTIxMDQwMDAwWjBCMQswCQYDVQQGEwJVUzEWMBQGA1UEChMNR2VvVHJ1c3QgSW5j
-LjEbMBkGA1UEAxMSR2VvVHJ1c3QgR2xvYmFsIENBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIB
-CgKCAQEA2swYYzD99BcjGlZ+W988bDjkcbd4kdS8odhM+KhDtgPpTSEHCIjaWC9mOSm9BXiLnTjo
-BbdqfnGk5sRgprDvgOSJKA+eJdbtg/OtppHHmMlCGDUUna2YRpIuT8rxh0PBFpVXLVDviS2Aelet
-8u5fa9IAjbkU+BQVNdnARqN7csiRv8lVK83Qlz6cJmTM386DGXHKTubU1XupGc1V3sjs0l44U+Vc
-T4wt/lAjNvxm5suOpDkZALeVAjmRCw7+OC7RHQWa9k0+bw8HHa8sHo9gOeL6NlMTOdReJivbPagU
-vTLrGAMoUgRx5aszPeE4uwc2hGKceeoWMPRfwCvocWvk+QIDAQABo1MwUTAPBgNVHRMBAf8EBTAD
-AQH/MB0GA1UdDgQWBBTAephojYn7qwVkDBF9qn1luMrMTjAfBgNVHSMEGDAWgBTAephojYn7qwVk
-DBF9qn1luMrMTjANBgkqhkiG9w0BAQUFAAOCAQEANeMpauUvXVSOKVCUn5kaFOSPeCpilKInZ57Q
-zxpeR+nBsqTP3UEaBU6bS+5Kb1VSsyShNwrrZHYqLizz/Tt1kL/6cdjHPTfStQWVYrmm3ok9Nns4
-d0iXrKYgjy6myQzCsplFAMfOEVEiIuCl6rYVSAlk6l5PdPcFPseKUgzbFbS9bZvlxrFUaKnjaZC2
-mqUPuLk/IH2uSrW4nOQdtqvmlKXBx4Ot2/Unhw4EbNX/3aBd7YdStysVAq45pmp06drE57xNNB6p
-XE0zX5IJL4hmXXeXxx12E6nV5fEWCRE11azbJHFwLJhWC9kXtNHjUStedejV0NxPNO3CBWaAocvm
-Mw==
------END CERTIFICATE-----
-
-GeoTrust Global CA 2
-====================
------BEGIN CERTIFICATE-----
-MIIDZjCCAk6gAwIBAgIBATANBgkqhkiG9w0BAQUFADBEMQswCQYDVQQGEwJVUzEWMBQGA1UEChMN
-R2VvVHJ1c3QgSW5jLjEdMBsGA1UEAxMUR2VvVHJ1c3QgR2xvYmFsIENBIDIwHhcNMDQwMzA0MDUw
-MDAwWhcNMTkwMzA0MDUwMDAwWjBEMQswCQYDVQQGEwJVUzEWMBQGA1UEChMNR2VvVHJ1c3QgSW5j
-LjEdMBsGA1UEAxMUR2VvVHJ1c3QgR2xvYmFsIENBIDIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAw
-ggEKAoIBAQDvPE1APRDfO1MA4Wf+lGAVPoWI8YkNkMgoI5kF6CsgncbzYEbYwbLVjDHZ3CB5JIG/
-NTL8Y2nbsSpr7iFY8gjpeMtvy/wWUsiRxP89c96xPqfCfWbB9X5SJBri1WeR0IIQ13hLTytCOb1k
-LUCgsBDTOEhGiKEMuzozKmKY+wCdE1l/bztyqu6mD4b5BWHqZ38MN5aL5mkWRxHCJ1kDs6ZgwiFA
-Vvqgx306E+PsV8ez1q6diYD3Aecs9pYrEw15LNnA5IZ7S4wMcoKK+xfNAGw6EzywhIdLFnopsk/b
-HdQL82Y3vdj2V7teJHq4PIu5+pIaGoSe2HSPqht/XvT+RSIhAgMBAAGjYzBhMA8GA1UdEwEB/wQF
-MAMBAf8wHQYDVR0OBBYEFHE4NvICMVNHK266ZUapEBVYIAUJMB8GA1UdIwQYMBaAFHE4NvICMVNH
-K266ZUapEBVYIAUJMA4GA1UdDwEB/wQEAwIBhjANBgkqhkiG9w0BAQUFAAOCAQEAA/e1K6tdEPx7
-srJerJsOflN4WT5CBP51o62sgU7XAotexC3IUnbHLB/8gTKY0UvGkpMzNTEv/NgdRN3ggX+d6Yvh
-ZJFiCzkIjKx0nVnZellSlxG5FntvRdOW2TF9AjYPnDtuzywNA0ZF66D0f0hExghAzN4bcLUprbqL
-OzRldRtxIR0sFAqwlpW41uryZfspuk/qkZN0abby/+Ea0AzRdoXLiiW9l14sbxWZJue2Kf8i7MkC
-x1YAzUm5s2x7UwQa4qjJqhIFI8LO57sEAszAR6LkxCkvW0VXiVHuPOtSCP8HNR6fNWpHSlaY0VqF
-H4z1Ir+rzoPz4iIprn2DQKi6bA==
------END CERTIFICATE-----
-
-GeoTrust Universal CA
-=====================
------BEGIN CERTIFICATE-----
-MIIFaDCCA1CgAwIBAgIBATANBgkqhkiG9w0BAQUFADBFMQswCQYDVQQGEwJVUzEWMBQGA1UEChMN
-R2VvVHJ1c3QgSW5jLjEeMBwGA1UEAxMVR2VvVHJ1c3QgVW5pdmVyc2FsIENBMB4XDTA0MDMwNDA1
-MDAwMFoXDTI5MDMwNDA1MDAwMFowRTELMAkGA1UEBhMCVVMxFjAUBgNVBAoTDUdlb1RydXN0IElu
-Yy4xHjAcBgNVBAMTFUdlb1RydXN0IFVuaXZlcnNhbCBDQTCCAiIwDQYJKoZIhvcNAQEBBQADggIP
-ADCCAgoCggIBAKYVVaCjxuAfjJ0hUNfBvitbtaSeodlyWL0AG0y/YckUHUWCq8YdgNY96xCcOq9t
-JPi8cQGeBvV8Xx7BDlXKg5pZMK4ZyzBIle0iN430SppyZj6tlcDgFgDgEB8rMQ7XlFTTQjOgNB0e
-RXbdT8oYN+yFFXoZCPzVx5zw8qkuEKmS5j1YPakWaDwvdSEYfyh3peFhF7em6fgemdtzbvQKoiFs
-7tqqhZJmr/Z6a4LauiIINQ/PQvE1+mrufislzDoR5G2vc7J2Ha3QsnhnGqQ5HFELZ1aD/ThdDc7d
-8Lsrlh/eezJS/R27tQahsiFepdaVaH/wmZ7cRQg+59IJDTWU3YBOU5fXtQlEIGQWFwMCTFMNaN7V
-qnJNk22CDtucvc+081xdVHppCZbW2xHBjXWotM85yM48vCR85mLK4b19p71XZQvk/iXttmkQ3Cga
-Rr0BHdCXteGYO8A3ZNY9lO4L4fUorgtWv3GLIylBjobFS1J72HGrH4oVpjuDWtdYAVHGTEHZf9hB
-Z3KiKN9gg6meyHv8U3NyWfWTehd2Ds735VzZC1U0oqpbtWpU5xPKV+yXbfReBi9Fi1jUIxaS5BZu
-KGNZMN9QAZxjiRqf2xeUgnA3wySemkfWWspOqGmJch+RbNt+nhutxx9z3SxPGWX9f5NAEC7S8O08
-ni4oPmkmM8V7AgMBAAGjYzBhMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFNq7LqqwDLiIJlF0
-XG0D08DYj3rWMB8GA1UdIwQYMBaAFNq7LqqwDLiIJlF0XG0D08DYj3rWMA4GA1UdDwEB/wQEAwIB
-hjANBgkqhkiG9w0BAQUFAAOCAgEAMXjmx7XfuJRAyXHEqDXsRh3ChfMoWIawC/yOsjmPRFWrZIRc
-aanQmjg8+uUfNeVE44B5lGiku8SfPeE0zTBGi1QrlaXv9z+ZhP015s8xxtxqv6fXIwjhmF7DWgh2
-qaavdy+3YL1ERmrvl/9zlcGO6JP7/TG37FcREUWbMPEaiDnBTzynANXH/KttgCJwpQzgXQQpAvvL
-oJHRfNbDflDVnVi+QTjruXU8FdmbyUqDWcDaU/0zuzYYm4UPFd3uLax2k7nZAY1IEKj79TiG8dsK
-xr2EoyNB3tZ3b4XUhRxQ4K5RirqNPnbiucon8l+f725ZDQbYKxek0nxru18UGkiPGkzns0ccjkxF
-KyDuSN/n3QmOGKjaQI2SJhFTYXNd673nxE0pN2HrrDktZy4W1vUAg4WhzH92xH3kt0tm7wNFYGm2
-DFKWkoRepqO1pD4r2czYG0eq8kTaT/kD6PAUyz/zg97QwVTjt+gKN02LIFkDMBmhLMi9ER/frslK
-xfMnZmaGrGiR/9nmUxwPi1xpZQomyB40w11Re9epnAahNt3ViZS82eQtDF4JbAiXfKM9fJP/P6EU
-p8+1Xevb2xzEdt+Iub1FBZUbrvxGakyvSOPOrg/SfuvmbJxPgWp6ZKy7PtXny3YuxadIwVyQD8vI
-P/rmMuGNG2+k5o7Y+SlIis5z/iw=
------END CERTIFICATE-----
-
-GeoTrust Universal CA 2
-=======================
------BEGIN CERTIFICATE-----
-MIIFbDCCA1SgAwIBAgIBATANBgkqhkiG9w0BAQUFADBHMQswCQYDVQQGEwJVUzEWMBQGA1UEChMN
-R2VvVHJ1c3QgSW5jLjEgMB4GA1UEAxMXR2VvVHJ1c3QgVW5pdmVyc2FsIENBIDIwHhcNMDQwMzA0
-MDUwMDAwWhcNMjkwMzA0MDUwMDAwWjBHMQswCQYDVQQGEwJVUzEWMBQGA1UEChMNR2VvVHJ1c3Qg
-SW5jLjEgMB4GA1UEAxMXR2VvVHJ1c3QgVW5pdmVyc2FsIENBIDIwggIiMA0GCSqGSIb3DQEBAQUA
-A4ICDwAwggIKAoICAQCzVFLByT7y2dyxUxpZKeexw0Uo5dfR7cXFS6GqdHtXr0om/Nj1XqduGdt0
-DE81WzILAePb63p3NeqqWuDW6KFXlPCQo3RWlEQwAx5cTiuFJnSCegx2oG9NzkEtoBUGFF+3Qs17
-j1hhNNwqCPkuwwGmIkQcTAeC5lvO0Ep8BNMZcyfwqph/Lq9O64ceJHdqXbboW0W63MOhBW9Wjo8Q
-JqVJwy7XQYci4E+GymC16qFjwAGXEHm9ADwSbSsVsaxLse4YuU6W3Nx2/zu+z18DwPw76L5GG//a
-QMJS9/7jOvdqdzXQ2o3rXhhqMcceujwbKNZrVMaqW9eiLBsZzKIC9ptZvTdrhrVtgrrY6slWvKk2
-WP0+GfPtDCapkzj4T8FdIgbQl+rhrcZV4IErKIM6+vR7IVEAvlI4zs1meaj0gVbi0IMJR1FbUGrP
-20gaXT73y/Zl92zxlfgCOzJWgjl6W70viRu/obTo/3+NjN8D8WBOWBFM66M/ECuDmgFz2ZRthAAn
-ZqzwcEAJQpKtT5MNYQlRJNiS1QuUYbKHsu3/mjX/hVTK7URDrBs8FmtISgocQIgfksILAAX/8sgC
-SqSqqcyZlpwvWOB94b67B9xfBHJcMTTD7F8t4D1kkCLm0ey4Lt1ZrtmhN79UNdxzMk+MBB4zsslG
-8dhcyFVQyWi9qLo2CQIDAQABo2MwYTAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBR281Xh+qQ2
-+/CfXGJx7Tz0RzgQKzAfBgNVHSMEGDAWgBR281Xh+qQ2+/CfXGJx7Tz0RzgQKzAOBgNVHQ8BAf8E
-BAMCAYYwDQYJKoZIhvcNAQEFBQADggIBAGbBxiPz2eAubl/oz66wsCVNK/g7WJtAJDday6sWSf+z
-dXkzoS9tcBc0kf5nfo/sm+VegqlVHy/c1FEHEv6sFj4sNcZj/NwQ6w2jqtB8zNHQL1EuxBRa3ugZ
-4T7GzKQp5y6EqgYweHZUcyiYWTjgAA1i00J9IZ+uPTqM1fp3DRgrFg5fNuH8KrUwJM/gYwx7WBr+
-mbpCErGR9Hxo4sjoryzqyX6uuyo9DRXcNJW2GHSoag/HtPQTxORb7QrSpJdMKu0vbBKJPfEncKpq
-A1Ihn0CoZ1Dy81of398j9tx4TuaYT1U6U+Pv8vSfx3zYWK8pIpe44L2RLrB27FcRz+8pRPPphXpg
-Y+RdM4kX2TGq2tbzGDVyz4crL2MjhF2EjD9XoIj8mZEoJmmZ1I+XRL6O1UixpCgp8RW04eWe3fiP
-pm8m1wk8OhwRDqZsN/etRIcsKMfYdIKz0G9KV7s1KSegi+ghp4dkNl3M2Basx7InQJJVOCiNUW7d
-FGdTbHFcJoRNdVq2fmBWqU2t+5sel/MN2dKXVHfaPRK34B7vCAas+YWH6aLcr34YEoP9VhdBLtUp
-gn2Z9DH2canPLAEnpQW5qrJITirvn5NSUZU8UnOOVkwXQMAJKOSLakhT2+zNVVXxxvjpoixMptEm
-X36vWkzaH6byHCx+rgIW0lbQL1dTR+iS
------END CERTIFICATE-----
-
-UTN-USER First-Network Applications
-===================================
------BEGIN CERTIFICATE-----
-MIIEZDCCA0ygAwIBAgIQRL4Mi1AAJLQR0zYwS8AzdzANBgkqhkiG9w0BAQUFADCBozELMAkGA1UE
-BhMCVVMxCzAJBgNVBAgTAlVUMRcwFQYDVQQHEw5TYWx0IExha2UgQ2l0eTEeMBwGA1UEChMVVGhl
-IFVTRVJUUlVTVCBOZXR3b3JrMSEwHwYDVQQLExhodHRwOi8vd3d3LnVzZXJ0cnVzdC5jb20xKzAp
-BgNVBAMTIlVUTi1VU0VSRmlyc3QtTmV0d29yayBBcHBsaWNhdGlvbnMwHhcNOTkwNzA5MTg0ODM5
-WhcNMTkwNzA5MTg1NzQ5WjCBozELMAkGA1UEBhMCVVMxCzAJBgNVBAgTAlVUMRcwFQYDVQQHEw5T
-YWx0IExha2UgQ2l0eTEeMBwGA1UEChMVVGhlIFVTRVJUUlVTVCBOZXR3b3JrMSEwHwYDVQQLExho
-dHRwOi8vd3d3LnVzZXJ0cnVzdC5jb20xKzApBgNVBAMTIlVUTi1VU0VSRmlyc3QtTmV0d29yayBB
-cHBsaWNhdGlvbnMwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCz+5Gh5DZVhawGNFug
-mliy+LUPBXeDrjKxdpJo7CNKyXY/45y2N3kDuatpjQclthln5LAbGHNhSuh+zdMvZOOmfAz6F4Cj
-DUeJT1FxL+78P/m4FoCHiZMlIJpDgmkkdihZNaEdwH+DBmQWICzTSaSFtMBhf1EI+GgVkYDLpdXu
-Ozr0hAReYFmnjDRy7rh4xdE7EkpvfmUnuaRVxblvQ6TFHSyZwFKkeEwVs0CYCGtDxgGwenv1axwi
-P8vv/6jQOkt2FZ7S0cYu49tXGzKiuG/ohqY/cKvlcJKrRB5AUPuco2LkbG6gyN7igEL66S/ozjIE
-j3yNtxyjNTwV3Z7DrpelAgMBAAGjgZEwgY4wCwYDVR0PBAQDAgHGMA8GA1UdEwEB/wQFMAMBAf8w
-HQYDVR0OBBYEFPqGydvguul49Uuo1hXf8NPhahQ8ME8GA1UdHwRIMEYwRKBCoECGPmh0dHA6Ly9j
-cmwudXNlcnRydXN0LmNvbS9VVE4tVVNFUkZpcnN0LU5ldHdvcmtBcHBsaWNhdGlvbnMuY3JsMA0G
-CSqGSIb3DQEBBQUAA4IBAQCk8yXM0dSRgyLQzDKrm5ZONJFUICU0YV8qAhXhi6r/fWRRzwr/vH3Y
-IWp4yy9Rb/hCHTO967V7lMPDqaAt39EpHx3+jz+7qEUqf9FuVSTiuwL7MT++6LzsQCv4AdRWOOTK
-RIK1YSAhZ2X28AvnNPilwpyjXEAfhZOVBt5P1CeptqX8Fs1zMT+4ZSfP1FMa8Kxun08FDAOBp4Qp
-xFq9ZFdyrTvPNximmMatBrTcCKME1SmklpoSZ0qMYEWd8SOasACcaLWYUNPvji6SZbFIPiG+FTAq
-DbUMo2s/rn9X9R+WfN9v3YIwLGUbQErNaLly7HF27FSOH4UMAWr6pjisH8SE
------END CERTIFICATE-----
-
-America Online Root Certification Authority 1
-=============================================
------BEGIN CERTIFICATE-----
-MIIDpDCCAoygAwIBAgIBATANBgkqhkiG9w0BAQUFADBjMQswCQYDVQQGEwJVUzEcMBoGA1UEChMT
-QW1lcmljYSBPbmxpbmUgSW5jLjE2MDQGA1UEAxMtQW1lcmljYSBPbmxpbmUgUm9vdCBDZXJ0aWZp
-Y2F0aW9uIEF1dGhvcml0eSAxMB4XDTAyMDUyODA2MDAwMFoXDTM3MTExOTIwNDMwMFowYzELMAkG
-A1UEBhMCVVMxHDAaBgNVBAoTE0FtZXJpY2EgT25saW5lIEluYy4xNjA0BgNVBAMTLUFtZXJpY2Eg
-T25saW5lIFJvb3QgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkgMTCCASIwDQYJKoZIhvcNAQEBBQAD
-ggEPADCCAQoCggEBAKgv6KRpBgNHw+kqmP8ZonCaxlCyfqXfaE0bfA+2l2h9LaaLl+lkhsmj76CG
-v2BlnEtUiMJIxUo5vxTjWVXlGbR0yLQFOVwWpeKVBeASrlmLojNoWBym1BW32J/X3HGrfpq/m44z
-DyL9Hy7nBzbvYjnF3cu6JRQj3gzGPTzOggjmZj7aUTsWOqMFf6Dch9Wc/HKpoH145LcxVR5lu9Rh
-sCFg7RAycsWSJR74kEoYeEfffjA3PlAb2xzTa5qGUwew76wGePiEmf4hjUyAtgyC9mZweRrTT6PP
-8c9GsEsPPt2IYriMqQkoO3rHl+Ee5fSfwMCuJKDIodkP1nsmgmkyPacCAwEAAaNjMGEwDwYDVR0T
-AQH/BAUwAwEB/zAdBgNVHQ4EFgQUAK3Zo/Z59m50qX8zPYEX10zPM94wHwYDVR0jBBgwFoAUAK3Z
-o/Z59m50qX8zPYEX10zPM94wDgYDVR0PAQH/BAQDAgGGMA0GCSqGSIb3DQEBBQUAA4IBAQB8itEf
-GDeC4Liwo+1WlchiYZwFos3CYiZhzRAW18y0ZTTQEYqtqKkFZu90821fnZmv9ov761KyBZiibyrF
-VL0lvV+uyIbqRizBs73B6UlwGBaXCBOMIOAbLjpHyx7kADCVW/RFo8AasAFOq73AI25jP4BKxQft
-3OJvx8Fi8eNy1gTIdGcL+oiroQHIb/AUr9KZzVGTfu0uOMe9zkZQPXLjeSWdm4grECDdpbgyn43g
-Kd8hdIaC2y+CMMbHNYaz+ZZfRtsMRf3zUMNvxsNIrUam4SdHCh0Om7bCd39j8uB9Gr784N/Xx6ds
-sPmuujz9dLQR6FgNgLzTqIA6me11zEZ7
------END CERTIFICATE-----
-
-America Online Root Certification Authority 2
-=============================================
------BEGIN CERTIFICATE-----
-MIIFpDCCA4ygAwIBAgIBATANBgkqhkiG9w0BAQUFADBjMQswCQYDVQQGEwJVUzEcMBoGA1UEChMT
-QW1lcmljYSBPbmxpbmUgSW5jLjE2MDQGA1UEAxMtQW1lcmljYSBPbmxpbmUgUm9vdCBDZXJ0aWZp
-Y2F0aW9uIEF1dGhvcml0eSAyMB4XDTAyMDUyODA2MDAwMFoXDTM3MDkyOTE0MDgwMFowYzELMAkG
-A1UEBhMCVVMxHDAaBgNVBAoTE0FtZXJpY2EgT25saW5lIEluYy4xNjA0BgNVBAMTLUFtZXJpY2Eg
-T25saW5lIFJvb3QgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkgMjCCAiIwDQYJKoZIhvcNAQEBBQAD
-ggIPADCCAgoCggIBAMxBRR3pPU0Q9oyxQcngXssNt79Hc9PwVU3dxgz6sWYFas14tNwC206B89en
-fHG8dWOgXeMHDEjsJcQDIPT/DjsS/5uN4cbVG7RtIuOx238hZK+GvFciKtZHgVdEglZTvYYUAQv8
-f3SkWq7xuhG1m1hagLQ3eAkzfDJHA1zEpYNI9FdWboE2JxhP7JsowtS013wMPgwr38oE18aO6lhO
-qKSlGBxsRZijQdEt0sdtjRnxrXm3gT+9BoInLRBYBbV4Bbkv2wxrkJB+FFk4u5QkE+XRnRTf04JN
-RvCAOVIyD+OEsnpD8l7eXz8d3eOyG6ChKiMDbi4BFYdcpnV1x5dhvt6G3NRI270qv0pV2uh9UPu0
-gBe4lL8BPeraunzgWGcXuVjgiIZGZ2ydEEdYMtA1fHkqkKJaEBEjNa0vzORKW6fIJ/KD3l67Xnfn
-6KVuY8INXWHQjNJsWiEOyiijzirplcdIz5ZvHZIlyMbGwcEMBawmxNJ10uEqZ8A9W6Wa6897Gqid
-FEXlD6CaZd4vKL3Ob5Rmg0gp2OpljK+T2WSfVVcmv2/LNzGZo2C7HK2JNDJiuEMhBnIMoVxtRsX6
-Kc8w3onccVvdtjc+31D1uAclJuW8tf48ArO3+L5DwYcRlJ4jbBeKuIonDFRH8KmzwICMoCfrHRnj
-B453cMor9H124HhnAgMBAAGjYzBhMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFE1FwWg4u3Op
-aaEg5+31IqEjFNeeMB8GA1UdIwQYMBaAFE1FwWg4u3OpaaEg5+31IqEjFNeeMA4GA1UdDwEB/wQE
-AwIBhjANBgkqhkiG9w0BAQUFAAOCAgEAZ2sGuV9FOypLM7PmG2tZTiLMubekJcmnxPBUlgtk87FY
-T15R/LKXeydlwuXK5w0MJXti4/qftIe3RUavg6WXSIylvfEWK5t2LHo1YGwRgJfMqZJS5ivmae2p
-+DYtLHe/YUjRYwu5W1LtGLBDQiKmsXeu3mnFzcccobGlHBD7GL4acN3Bkku+KVqdPzW+5X1R+FXg
-JXUjhx5c3LqdsKyzadsXg8n33gy8CNyRnqjQ1xU3c6U1uPx+xURABsPr+CKAXEfOAuMRn0T//Zoy
-zH1kUQ7rVyZ2OuMeIjzCpjbdGe+n/BLzJsBZMYVMnNjP36TMzCmT/5RtdlwTCJfy7aULTd3oyWgO
-ZtMADjMSW7yV5TKQqLPGbIOtd+6Lfn6xqavT4fG2wLHqiMDn05DpKJKUe2h7lyoKZy2FAjgQ5ANh
-1NolNscIWC2hp1GvMApJ9aZphwctREZ2jirlmjvXGKL8nDgQzMY70rUXOm/9riW99XJZZLF0Kjhf
-GEzfz3EEWjbUvy+ZnOjZurGV5gJLIaFb1cFPj65pbVPbAZO1XB4Y3WRayhgoPmMEEf0cjQAPuDff
-Z4qdZqkCapH/E8ovXYO8h5Ns3CRRFgQlZvqz2cK6Kb6aSDiCmfS/O0oxGfm/jiEzFMpPVF/7zvuP
-cX/9XhmgD0uRuMRUvAawRY8mkaKO/qk=
------END CERTIFICATE-----
-
-Visa eCommerce Root
-===================
------BEGIN CERTIFICATE-----
-MIIDojCCAoqgAwIBAgIQE4Y1TR0/BvLB+WUF1ZAcYjANBgkqhkiG9w0BAQUFADBrMQswCQYDVQQG
-EwJVUzENMAsGA1UEChMEVklTQTEvMC0GA1UECxMmVmlzYSBJbnRlcm5hdGlvbmFsIFNlcnZpY2Ug
-QXNzb2NpYXRpb24xHDAaBgNVBAMTE1Zpc2EgZUNvbW1lcmNlIFJvb3QwHhcNMDIwNjI2MDIxODM2
-WhcNMjIwNjI0MDAxNjEyWjBrMQswCQYDVQQGEwJVUzENMAsGA1UEChMEVklTQTEvMC0GA1UECxMm
-VmlzYSBJbnRlcm5hdGlvbmFsIFNlcnZpY2UgQXNzb2NpYXRpb24xHDAaBgNVBAMTE1Zpc2EgZUNv
-bW1lcmNlIFJvb3QwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCvV95WHm6h2mCxlCfL
-F9sHP4CFT8icttD0b0/Pmdjh28JIXDqsOTPHH2qLJj0rNfVIsZHBAk4ElpF7sDPwsRROEW+1QK8b
-RaVK7362rPKgH1g/EkZgPI2h4H3PVz4zHvtH8aoVlwdVZqW1LS7YgFmypw23RuwhY/81q6UCzyr0
-TP579ZRdhE2o8mCP2w4lPJ9zcc+U30rq299yOIzzlr3xF7zSujtFWsan9sYXiwGd/BmoKoMWuDpI
-/k4+oKsGGelT84ATB+0tvz8KPFUgOSwsAGl0lUq8ILKpeeUYiZGo3BxN77t+Nwtd/jmliFKMAGzs
-GHxBvfaLdXe6YJ2E5/4tAgMBAAGjQjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEG
-MB0GA1UdDgQWBBQVOIMPPyw/cDMezUb+B4wg4NfDtzANBgkqhkiG9w0BAQUFAAOCAQEAX/FBfXxc
-CLkr4NWSR/pnXKUTwwMhmytMiUbPWU3J/qVAtmPN3XEolWcRzCSs00Rsca4BIGsDoo8Ytyk6feUW
-YFN4PMCvFYP3j1IzJL1kk5fui/fbGKhtcbP3LBfQdCVp9/5rPJS+TUtBjE7ic9DjkCJzQ83z7+pz
-zkWKsKZJ/0x9nXGIxHYdkFsd7v3M9+79YKWxehZx0RbQfBI8bGmX265fOZpwLwU8GUYEmSA20GBu
-YQa7FkKMcPcw++DbZqMAAb3mLNqRX6BGi01qnD093QVG/na/oAo85ADmJ7f/hC3euiInlhBx6yLt
-398znM/jra6O1I7mT1GvFpLgXPYHDw==
------END CERTIFICATE-----
-
-TC TrustCenter, Germany, Class 2 CA
-===================================
------BEGIN CERTIFICATE-----
-MIIDXDCCAsWgAwIBAgICA+owDQYJKoZIhvcNAQEEBQAwgbwxCzAJBgNVBAYTAkRFMRAwDgYDVQQI
-EwdIYW1idXJnMRAwDgYDVQQHEwdIYW1idXJnMTowOAYDVQQKEzFUQyBUcnVzdENlbnRlciBmb3Ig
-U2VjdXJpdHkgaW4gRGF0YSBOZXR3b3JrcyBHbWJIMSIwIAYDVQQLExlUQyBUcnVzdENlbnRlciBD
-bGFzcyAyIENBMSkwJwYJKoZIhvcNAQkBFhpjZXJ0aWZpY2F0ZUB0cnVzdGNlbnRlci5kZTAeFw05
-ODAzMDkxMTU5NTlaFw0xMTAxMDExMTU5NTlaMIG8MQswCQYDVQQGEwJERTEQMA4GA1UECBMHSGFt
-YnVyZzEQMA4GA1UEBxMHSGFtYnVyZzE6MDgGA1UEChMxVEMgVHJ1c3RDZW50ZXIgZm9yIFNlY3Vy
-aXR5IGluIERhdGEgTmV0d29ya3MgR21iSDEiMCAGA1UECxMZVEMgVHJ1c3RDZW50ZXIgQ2xhc3Mg
-MiBDQTEpMCcGCSqGSIb3DQEJARYaY2VydGlmaWNhdGVAdHJ1c3RjZW50ZXIuZGUwgZ8wDQYJKoZI
-hvcNAQEBBQADgY0AMIGJAoGBANo46O0yAClxgwENv4wB3NrGrTmkqYov1YtcaF9QxmL1Zr3KkSLs
-qh1R1z2zUbKDTl3LSbDwTFXlay3HhQswHJJOgtTKAu33b77c4OMUuAVT8pr0VotanoWT0bSCVq5N
-u6hLVxa8/vhYnvgpjbB7zXjJT6yLZwzxnPv8V5tXXE8NAgMBAAGjazBpMA8GA1UdEwEB/wQFMAMB
-Af8wDgYDVR0PAQH/BAQDAgGGMDMGCWCGSAGG+EIBCAQmFiRodHRwOi8vd3d3LnRydXN0Y2VudGVy
-LmRlL2d1aWRlbGluZXMwEQYJYIZIAYb4QgEBBAQDAgAHMA0GCSqGSIb3DQEBBAUAA4GBAIRS+yjf
-/x91AbwBvgRWl2p0QiQxg/lGsQaKic+WLDO/jLVfenKhhQbOhvgFjuj5Jcrag4wGrOs2bYWRNAQ2
-9ELw+HkuCkhcq8xRT3h2oNmsGb0q0WkEKJHKNhAngFdb0lz1wlurZIFjdFH0l7/NEij3TWZ/p/Ac
-ASZ4smZHcFFk
------END CERTIFICATE-----
-
-TC TrustCenter, Germany, Class 3 CA
-===================================
------BEGIN CERTIFICATE-----
-MIIDXDCCAsWgAwIBAgICA+swDQYJKoZIhvcNAQEEBQAwgbwxCzAJBgNVBAYTAkRFMRAwDgYDVQQI
-EwdIYW1idXJnMRAwDgYDVQQHEwdIYW1idXJnMTowOAYDVQQKEzFUQyBUcnVzdENlbnRlciBmb3Ig
-U2VjdXJpdHkgaW4gRGF0YSBOZXR3b3JrcyBHbWJIMSIwIAYDVQQLExlUQyBUcnVzdENlbnRlciBD
-bGFzcyAzIENBMSkwJwYJKoZIhvcNAQkBFhpjZXJ0aWZpY2F0ZUB0cnVzdGNlbnRlci5kZTAeFw05
-ODAzMDkxMTU5NTlaFw0xMTAxMDExMTU5NTlaMIG8MQswCQYDVQQGEwJERTEQMA4GA1UECBMHSGFt
-YnVyZzEQMA4GA1UEBxMHSGFtYnVyZzE6MDgGA1UEChMxVEMgVHJ1c3RDZW50ZXIgZm9yIFNlY3Vy
-aXR5IGluIERhdGEgTmV0d29ya3MgR21iSDEiMCAGA1UECxMZVEMgVHJ1c3RDZW50ZXIgQ2xhc3Mg
-MyBDQTEpMCcGCSqGSIb3DQEJARYaY2VydGlmaWNhdGVAdHJ1c3RjZW50ZXIuZGUwgZ8wDQYJKoZI
-hvcNAQEBBQADgY0AMIGJAoGBALa0wTUFLg2N7KBAahwOJ6ZQkmtQGwfeLud2zODa/ISoXoxjaitN
-2U4CdhHBC/KNecoAtvGwDtf7pBc9r6tpepYnv68zoZoqWarEtTcI8hKlMbZD9TKWcSgoq40oht+7
-7uMMfTDWw1Krj10nnGvAo+cFa1dJRLNu6mTP0o56UHd3AgMBAAGjazBpMA8GA1UdEwEB/wQFMAMB
-Af8wDgYDVR0PAQH/BAQDAgGGMDMGCWCGSAGG+EIBCAQmFiRodHRwOi8vd3d3LnRydXN0Y2VudGVy
-LmRlL2d1aWRlbGluZXMwEQYJYIZIAYb4QgEBBAQDAgAHMA0GCSqGSIb3DQEBBAUAA4GBABY9xs3B
-u4VxhUafPiCPUSiZ7C1FIWMjWwS7TJC4iJIETb19AaM/9uzO8d7+feXhPrvGq14L3T2WxMup1Pkm
-5gZOngylerpuw3yCGdHHsbHD2w2Om0B8NwvxXej9H5CIpQ5ON2QhqE6NtJ/x3kit1VYYUimLRzQS
-CdS7kjXvD9s0
------END CERTIFICATE-----
-
-Certum Root CA
-==============
------BEGIN CERTIFICATE-----
-MIIDDDCCAfSgAwIBAgIDAQAgMA0GCSqGSIb3DQEBBQUAMD4xCzAJBgNVBAYTAlBMMRswGQYDVQQK
-ExJVbml6ZXRvIFNwLiB6IG8uby4xEjAQBgNVBAMTCUNlcnR1bSBDQTAeFw0wMjA2MTExMDQ2Mzla
-Fw0yNzA2MTExMDQ2MzlaMD4xCzAJBgNVBAYTAlBMMRswGQYDVQQKExJVbml6ZXRvIFNwLiB6IG8u
-by4xEjAQBgNVBAMTCUNlcnR1bSBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAM6x
-wS7TT3zNJc4YPk/EjG+AanPIW1H4m9LcuwBcsaD8dQPugfCI7iNS6eYVM42sLQnFdvkrOYCJ5JdL
-kKWoePhzQ3ukYbDYWMzhbGZ+nPMJXlVjhNWo7/OxLjBos8Q82KxujZlakE403Daaj4GIULdtlkIJ
-89eVgw1BS7Bqa/j8D35in2fE7SZfECYPCE/wpFcozo+47UX2bu4lXapuOb7kky/ZR6By6/qmW6/K
-Uz/iDsaWVhFu9+lmqSbYf5VT7QqFiLpPKaVCjF62/IUgAKpoC6EahQGcxEZjgoi2IrHu/qpGWX7P
-NSzVttpd90gzFFS269lvzs2I1qsb2pY7HVkCAwEAAaMTMBEwDwYDVR0TAQH/BAUwAwEB/zANBgkq
-hkiG9w0BAQUFAAOCAQEAuI3O7+cUus/usESSbLQ5PqKEbq24IXfS1HeCh+YgQYHu4vgRt2PRFze+
-GXYkHAQaTOs9qmdvLdTN/mUxcMUbpgIKumB7bVjCmkn+YzILa+M6wKyrO7Do0wlRjBCDxjTgxSvg
-GrZgFCdsMneMvLJymM/NzD+5yCRCFNZX/OYmQ6kd5YCQzgNUKD73P9P4Te1qCjqTE5s7FCMTY5w/
-0YcneeVMUeMBrYVdGjux1XMQpNPyvG5k9VpWkKjHDkx0Dy5xO/fIR/RpbxXyEV6DHpx8Uq79AtoS
-qFlnGNu8cN2bsWntgM6JQEhqDjXKKWYVIZQs6GAqm4VKQPNriiTsBhYscw==
------END CERTIFICATE-----
-
-Comodo AAA Services root
-========================
------BEGIN CERTIFICATE-----
-MIIEMjCCAxqgAwIBAgIBATANBgkqhkiG9w0BAQUFADB7MQswCQYDVQQGEwJHQjEbMBkGA1UECAwS
-R3JlYXRlciBNYW5jaGVzdGVyMRAwDgYDVQQHDAdTYWxmb3JkMRowGAYDVQQKDBFDb21vZG8gQ0Eg
-TGltaXRlZDEhMB8GA1UEAwwYQUFBIENlcnRpZmljYXRlIFNlcnZpY2VzMB4XDTA0MDEwMTAwMDAw
-MFoXDTI4MTIzMTIzNTk1OVowezELMAkGA1UEBhMCR0IxGzAZBgNVBAgMEkdyZWF0ZXIgTWFuY2hl
-c3RlcjEQMA4GA1UEBwwHU2FsZm9yZDEaMBgGA1UECgwRQ29tb2RvIENBIExpbWl0ZWQxITAfBgNV
-BAMMGEFBQSBDZXJ0aWZpY2F0ZSBTZXJ2aWNlczCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC
-ggEBAL5AnfRu4ep2hxxNRUSOvkbIgwadwSr+GB+O5AL686tdUIoWMQuaBtDFcCLNSS1UY8y2bmhG
-C1Pqy0wkwLxyTurxFa70VJoSCsN6sjNg4tqJVfMiWPPe3M/vg4aijJRPn2jymJBGhCfHdr/jzDUs
-i14HZGWCwEiwqJH5YZ92IFCokcdmtet4YgNW8IoaE+oxox6gmf049vYnMlhvB/VruPsUK6+3qszW
-Y19zjNoFmag4qMsXeDZRrOme9Hg6jc8P2ULimAyrL58OAd7vn5lJ8S3frHRNG5i1R8XlKdH5kBjH
-Ypy+g8cmez6KJcfA3Z3mNWgQIJ2P2N7Sw4ScDV7oL8kCAwEAAaOBwDCBvTAdBgNVHQ4EFgQUoBEK
-Iz6W8Qfs4q8p74Klf9AwpLQwDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wewYDVR0f
-BHQwcjA4oDagNIYyaHR0cDovL2NybC5jb21vZG9jYS5jb20vQUFBQ2VydGlmaWNhdGVTZXJ2aWNl
-cy5jcmwwNqA0oDKGMGh0dHA6Ly9jcmwuY29tb2RvLm5ldC9BQUFDZXJ0aWZpY2F0ZVNlcnZpY2Vz
-LmNybDANBgkqhkiG9w0BAQUFAAOCAQEACFb8AvCb6P+k+tZ7xkSAzk/ExfYAWMymtrwUSWgEdujm
-7l3sAg9g1o1QGE8mTgHj5rCl7r+8dFRBv/38ErjHT1r0iWAFf2C3BUrz9vHCv8S5dIa2LX1rzNLz
-Rt0vxuBqw8M0Ayx9lt1awg6nCpnBBYurDC/zXDrPbDdVCYfeU0BsWO/8tqtlbgT2G9w84FoVxp7Z
-8VlIMCFlA2zs6SFz7JsDoeA3raAVGI/6ugLOpyypEBMs1OUIJqsil2D4kF501KKaU73yqWjgom7C
-12yxow+ev+to51byrvLjKzg6CYG1a4XXvi3tPxq3smPi9WIsgtRqAEFQ8TmDn5XpNpaYbg==
------END CERTIFICATE-----
-
-Comodo Secure Services root
-===========================
------BEGIN CERTIFICATE-----
-MIIEPzCCAyegAwIBAgIBATANBgkqhkiG9w0BAQUFADB+MQswCQYDVQQGEwJHQjEbMBkGA1UECAwS
-R3JlYXRlciBNYW5jaGVzdGVyMRAwDgYDVQQHDAdTYWxmb3JkMRowGAYDVQQKDBFDb21vZG8gQ0Eg
-TGltaXRlZDEkMCIGA1UEAwwbU2VjdXJlIENlcnRpZmljYXRlIFNlcnZpY2VzMB4XDTA0MDEwMTAw
-MDAwMFoXDTI4MTIzMTIzNTk1OVowfjELMAkGA1UEBhMCR0IxGzAZBgNVBAgMEkdyZWF0ZXIgTWFu
-Y2hlc3RlcjEQMA4GA1UEBwwHU2FsZm9yZDEaMBgGA1UECgwRQ29tb2RvIENBIExpbWl0ZWQxJDAi
-BgNVBAMMG1NlY3VyZSBDZXJ0aWZpY2F0ZSBTZXJ2aWNlczCCASIwDQYJKoZIhvcNAQEBBQADggEP
-ADCCAQoCggEBAMBxM4KK0HDrc4eCQNUd5MvJDkKQ+d40uaG6EfQlhfPMcm3ye5drswfxdySRXyWP
-9nQ95IDC+DwN879A6vfIUtFyb+/Iq0G4bi4XKpVpDM3SHpR7LZQdqnXXs5jLrLxkU0C8j6ysNstc
-rbvd4JQX7NFc0L/vpZXJkMWwrPsbQ996CF23uPJAGysnnlDOXmWCiIxe004MeuoIkbY2qitC++rC
-oznl2yY4rYsK7hljxxwk3wN42ubqwUcaCwtGCd0C/N7Lh1/XMGNooa7cMqG6vv5Eq2i2pRcV/b3V
-p6ea5EQz6YiO/O1R65NxTq0B50SOqy3LqP4BSUjwwN3HaNiS/j0CAwEAAaOBxzCBxDAdBgNVHQ4E
-FgQUPNiTiMLAggnMAZkGkyDpnnAJY08wDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8w
-gYEGA1UdHwR6MHgwO6A5oDeGNWh0dHA6Ly9jcmwuY29tb2RvY2EuY29tL1NlY3VyZUNlcnRpZmlj
-YXRlU2VydmljZXMuY3JsMDmgN6A1hjNodHRwOi8vY3JsLmNvbW9kby5uZXQvU2VjdXJlQ2VydGlm
-aWNhdGVTZXJ2aWNlcy5jcmwwDQYJKoZIhvcNAQEFBQADggEBAIcBbSMdflsXfcFhMs+P5/OKlFlm
-4J4oqF7Tt/Q05qo5spcWxYJvMqTpjOev/e/C6LlLqqP05tqNZSH7uoDrJiiFGv45jN5bBAS0VPmj
-Z55B+glSzAVIqMk/IQQezkhr/IXownuvf7fM+F86/TXGDe+X3EyrEeFryzHRbPtIgKvcnDe4IRRL
-DXE97IMzbtFuMhbsmMcWi1mmNKsFVy2T96oTy9IT4rcuO81rUBcJaD61JlfutuC23bkpgHl9j6Pw
-pCikFcSF9CfUa7/lXORlAnZUtOM3ZiTTGWHIUhDlizeauan5Hb/qmZJhlv8BzaFfDbxxvA6sCx1H
-RR3B7Hzs/Sk=
------END CERTIFICATE-----
-
-Comodo Trusted Services root
-============================
------BEGIN CERTIFICATE-----
-MIIEQzCCAyugAwIBAgIBATANBgkqhkiG9w0BAQUFADB/MQswCQYDVQQGEwJHQjEbMBkGA1UECAwS
-R3JlYXRlciBNYW5jaGVzdGVyMRAwDgYDVQQHDAdTYWxmb3JkMRowGAYDVQQKDBFDb21vZG8gQ0Eg
-TGltaXRlZDElMCMGA1UEAwwcVHJ1c3RlZCBDZXJ0aWZpY2F0ZSBTZXJ2aWNlczAeFw0wNDAxMDEw
-MDAwMDBaFw0yODEyMzEyMzU5NTlaMH8xCzAJBgNVBAYTAkdCMRswGQYDVQQIDBJHcmVhdGVyIE1h
-bmNoZXN0ZXIxEDAOBgNVBAcMB1NhbGZvcmQxGjAYBgNVBAoMEUNvbW9kbyBDQSBMaW1pdGVkMSUw
-IwYDVQQDDBxUcnVzdGVkIENlcnRpZmljYXRlIFNlcnZpY2VzMIIBIjANBgkqhkiG9w0BAQEFAAOC
-AQ8AMIIBCgKCAQEA33FvNlhTWvI2VFeAxHQIIO0Yfyod5jWaHiWsnOWWfnJSoBVC21ndZHoa0Lh7
-3TkVvFVIxO06AOoxEbrycXQaZ7jPM8yoMa+j49d/vzMtTGo87IvDktJTdyR0nAducPy9C1t2ul/y
-/9c3S0pgePfw+spwtOpZqqPOSC+pw7ILfhdyFgymBwwbOM/JYrc/oJOlh0Hyt3BAd9i+FHzjqMB6
-juljatEPmsbS9Is6FARW1O24zG71++IsWL1/T2sr92AkWCTOJu80kTrV44HQsvAEAtdbtz6SrGsS
-ivnkBbA7kUlcsutT6vifR4buv5XAwAaf0lteERv0xwQ1KdJVXOTt6wIDAQABo4HJMIHGMB0GA1Ud
-DgQWBBTFe1i97doladL3WRaoszLAeydb9DAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB
-/zCBgwYDVR0fBHwwejA8oDqgOIY2aHR0cDovL2NybC5jb21vZG9jYS5jb20vVHJ1c3RlZENlcnRp
-ZmljYXRlU2VydmljZXMuY3JsMDqgOKA2hjRodHRwOi8vY3JsLmNvbW9kby5uZXQvVHJ1c3RlZENl
-cnRpZmljYXRlU2VydmljZXMuY3JsMA0GCSqGSIb3DQEBBQUAA4IBAQDIk4E7ibSvuIQSTI3S8Ntw
-uleGFTQQuS9/HrCoiWChisJ3DFBKmwCL2Iv0QeLQg4pKHBQGsKNoBXAxMKdTmw7pSqBYaWcOrp32
-pSxBvzwGa+RZzG0Q8ZZvH9/0BAKkn0U+yNj6NkZEUD+Cl5EfKNsYEYwq5GWDVxISjBc/lDb+XbDA
-BHcTuPQV1T84zJQ6VdCsmPW6AF/ghhmBeC8owH7TzEIK9a5QoNE+xqFx7D+gIIxmOom0jtTYsU0l
-R+4viMi14QVFwL4Ucd56/Y57fU0IlqUSc/AtyjcndBInTMu2l+nZrghtWjlA3QVHdWpaIbOjGM9O
-9y5Xt5hwXsjEeLBi
------END CERTIFICATE-----
-
-IPS Chained CAs root
-====================
------BEGIN CERTIFICATE-----
-MIIH9zCCB2CgAwIBAgIBADANBgkqhkiG9w0BAQUFADCCARwxCzAJBgNVBAYTAkVTMRIwEAYDVQQI
-EwlCYXJjZWxvbmExEjAQBgNVBAcTCUJhcmNlbG9uYTEuMCwGA1UEChMlSVBTIEludGVybmV0IHB1
-Ymxpc2hpbmcgU2VydmljZXMgcy5sLjErMCkGA1UEChQiaXBzQG1haWwuaXBzLmVzIEMuSS5GLiAg
-Qi02MDkyOTQ1MjEzMDEGA1UECxMqSVBTIENBIENoYWluZWQgQ0FzIENlcnRpZmljYXRpb24gQXV0
-aG9yaXR5MTMwMQYDVQQDEypJUFMgQ0EgQ2hhaW5lZCBDQXMgQ2VydGlmaWNhdGlvbiBBdXRob3Jp
-dHkxHjAcBgkqhkiG9w0BCQEWD2lwc0BtYWlsLmlwcy5lczAeFw0wMTEyMjkwMDUzNThaFw0yNTEy
-MjcwMDUzNThaMIIBHDELMAkGA1UEBhMCRVMxEjAQBgNVBAgTCUJhcmNlbG9uYTESMBAGA1UEBxMJ
-QmFyY2Vsb25hMS4wLAYDVQQKEyVJUFMgSW50ZXJuZXQgcHVibGlzaGluZyBTZXJ2aWNlcyBzLmwu
-MSswKQYDVQQKFCJpcHNAbWFpbC5pcHMuZXMgQy5JLkYuICBCLTYwOTI5NDUyMTMwMQYDVQQLEypJ
-UFMgQ0EgQ2hhaW5lZCBDQXMgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkxMzAxBgNVBAMTKklQUyBD
-QSBDaGFpbmVkIENBcyBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTEeMBwGCSqGSIb3DQEJARYPaXBz
-QG1haWwuaXBzLmVzMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDcVpJJspQgvJhPUOtopKdJ
-C7/SMejHT8KGC/po/UNaivNgkjWZOLtNA1IhW/A3mTXhQSCBhYEFcYGdtJUZqV92NC5jNzVXjrQf
-Qj8VXOF6wV8TGDIxya2+o8eDZh65nAQTy2nBBt4wBrszo7Uf8I9vzv+W6FS+ZoCua9tBhDaiPQID
-AQABo4IEQzCCBD8wHQYDVR0OBBYEFKGtMbH5PuEXpsirNPxShwkeYlJBMIIBTgYDVR0jBIIBRTCC
-AUGAFKGtMbH5PuEXpsirNPxShwkeYlJBoYIBJKSCASAwggEcMQswCQYDVQQGEwJFUzESMBAGA1UE
-CBMJQmFyY2Vsb25hMRIwEAYDVQQHEwlCYXJjZWxvbmExLjAsBgNVBAoTJUlQUyBJbnRlcm5ldCBw
-dWJsaXNoaW5nIFNlcnZpY2VzIHMubC4xKzApBgNVBAoUImlwc0BtYWlsLmlwcy5lcyBDLkkuRi4g
-IEItNjA5Mjk0NTIxMzAxBgNVBAsTKklQUyBDQSBDaGFpbmVkIENBcyBDZXJ0aWZpY2F0aW9uIEF1
-dGhvcml0eTEzMDEGA1UEAxMqSVBTIENBIENoYWluZWQgQ0FzIENlcnRpZmljYXRpb24gQXV0aG9y
-aXR5MR4wHAYJKoZIhvcNAQkBFg9pcHNAbWFpbC5pcHMuZXOCAQAwDAYDVR0TBAUwAwEB/zAMBgNV
-HQ8EBQMDB/+AMGsGA1UdJQRkMGIGCCsGAQUFBwMBBggrBgEFBQcDAgYIKwYBBQUHAwMGCCsGAQUF
-BwMEBggrBgEFBQcDCAYKKwYBBAGCNwIBFQYKKwYBBAGCNwIBFgYKKwYBBAGCNwoDAQYKKwYBBAGC
-NwoDBDARBglghkgBhvhCAQEEBAMCAAcwGgYDVR0RBBMwEYEPaXBzQG1haWwuaXBzLmVzMBoGA1Ud
-EgQTMBGBD2lwc0BtYWlsLmlwcy5lczBCBglghkgBhvhCAQ0ENRYzQ2hhaW5lZCBDQSBDZXJ0aWZp
-Y2F0ZSBpc3N1ZWQgYnkgaHR0cDovL3d3dy5pcHMuZXMvMCkGCWCGSAGG+EIBAgQcFhpodHRwOi8v
-d3d3Lmlwcy5lcy9pcHMyMDAyLzA3BglghkgBhvhCAQQEKhYoaHR0cDovL3d3dy5pcHMuZXMvaXBz
-MjAwMi9pcHMyMDAyQ0FDLmNybDA8BglghkgBhvhCAQMELxYtaHR0cDovL3d3dy5pcHMuZXMvaXBz
-MjAwMi9yZXZvY2F0aW9uQ0FDLmh0bWw/MDkGCWCGSAGG+EIBBwQsFipodHRwOi8vd3d3Lmlwcy5l
-cy9pcHMyMDAyL3JlbmV3YWxDQUMuaHRtbD8wNwYJYIZIAYb4QgEIBCoWKGh0dHA6Ly93d3cuaXBz
-LmVzL2lwczIwMDIvcG9saWN5Q0FDLmh0bWwwbQYDVR0fBGYwZDAuoCygKoYoaHR0cDovL3d3dy5p
-cHMuZXMvaXBzMjAwMi9pcHMyMDAyQ0FDLmNybDAyoDCgLoYsaHR0cDovL3d3d2JhY2suaXBzLmVz
-L2lwczIwMDIvaXBzMjAwMkNBQy5jcmwwLwYIKwYBBQUHAQEEIzAhMB8GCCsGAQUFBzABhhNodHRw
-Oi8vb2NzcC5pcHMuZXMvMA0GCSqGSIb3DQEBBQUAA4GBAERyMJ1WWKJBGyi3leGmGpVfp3hAK+/b
-lkr8THFj2XOVvQLiogbHvpcqk4A0hgP63Ng9HgfNHnNDJGD1HWHc3JagvPsd4+cSACczAsDAK1M9
-2GsDgaPb1pOVIO/Tln4mkImcJpvNb2ar7QMiRDjMWb2f2/YHogF/JsRj9SVCXmK9
------END CERTIFICATE-----
-
-IPS CLASE1 root
-===============
------BEGIN CERTIFICATE-----
-MIIH6jCCB1OgAwIBAgIBADANBgkqhkiG9w0BAQUFADCCARIxCzAJBgNVBAYTAkVTMRIwEAYDVQQI
-EwlCYXJjZWxvbmExEjAQBgNVBAcTCUJhcmNlbG9uYTEuMCwGA1UEChMlSVBTIEludGVybmV0IHB1
-Ymxpc2hpbmcgU2VydmljZXMgcy5sLjErMCkGA1UEChQiaXBzQG1haWwuaXBzLmVzIEMuSS5GLiAg
-Qi02MDkyOTQ1MjEuMCwGA1UECxMlSVBTIENBIENMQVNFMSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0
-eTEuMCwGA1UEAxMlSVBTIENBIENMQVNFMSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTEeMBwGCSqG
-SIb3DQEJARYPaXBzQG1haWwuaXBzLmVzMB4XDTAxMTIyOTAwNTkzOFoXDTI1MTIyNzAwNTkzOFow
-ggESMQswCQYDVQQGEwJFUzESMBAGA1UECBMJQmFyY2Vsb25hMRIwEAYDVQQHEwlCYXJjZWxvbmEx
-LjAsBgNVBAoTJUlQUyBJbnRlcm5ldCBwdWJsaXNoaW5nIFNlcnZpY2VzIHMubC4xKzApBgNVBAoU
-Imlwc0BtYWlsLmlwcy5lcyBDLkkuRi4gIEItNjA5Mjk0NTIxLjAsBgNVBAsTJUlQUyBDQSBDTEFT
-RTEgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkxLjAsBgNVBAMTJUlQUyBDQSBDTEFTRTEgQ2VydGlm
-aWNhdGlvbiBBdXRob3JpdHkxHjAcBgkqhkiG9w0BCQEWD2lwc0BtYWlsLmlwcy5lczCBnzANBgkq
-hkiG9w0BAQEFAAOBjQAwgYkCgYEA4FEnpwvdr9G5Q1uCN0VWcu+atsIS7ywSzHb5BlmvXSHU0lq4
-oNTzav3KaY1mSPd05u42veiWkXWmcSjK5yISMmmwPh5r9FBSYmL9Yzt9fuzuOOpi9GyocY3h6YvJ
-P8a1zZRCb92CRTzo3wno7wpVqVZHYUxJZHMQKD/Kvwn/xi8CAwEAAaOCBEowggRGMB0GA1UdDgQW
-BBTrsxl588GlHKzcuh9morKbadB4CDCCAUQGA1UdIwSCATswggE3gBTrsxl588GlHKzcuh9morKb
-adB4CKGCARqkggEWMIIBEjELMAkGA1UEBhMCRVMxEjAQBgNVBAgTCUJhcmNlbG9uYTESMBAGA1UE
-BxMJQmFyY2Vsb25hMS4wLAYDVQQKEyVJUFMgSW50ZXJuZXQgcHVibGlzaGluZyBTZXJ2aWNlcyBz
-LmwuMSswKQYDVQQKFCJpcHNAbWFpbC5pcHMuZXMgQy5JLkYuICBCLTYwOTI5NDUyMS4wLAYDVQQL
-EyVJUFMgQ0EgQ0xBU0UxIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MS4wLAYDVQQDEyVJUFMgQ0Eg
-Q0xBU0UxIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MR4wHAYJKoZIhvcNAQkBFg9pcHNAbWFpbC5p
-cHMuZXOCAQAwDAYDVR0TBAUwAwEB/zAMBgNVHQ8EBQMDB/+AMGsGA1UdJQRkMGIGCCsGAQUFBwMB
-BggrBgEFBQcDAgYIKwYBBQUHAwMGCCsGAQUFBwMEBggrBgEFBQcDCAYKKwYBBAGCNwIBFQYKKwYB
-BAGCNwIBFgYKKwYBBAGCNwoDAQYKKwYBBAGCNwoDBDARBglghkgBhvhCAQEEBAMCAAcwGgYDVR0R
-BBMwEYEPaXBzQG1haWwuaXBzLmVzMBoGA1UdEgQTMBGBD2lwc0BtYWlsLmlwcy5lczBBBglghkgB
-hvhCAQ0ENBYyQ0xBU0UxIENBIENlcnRpZmljYXRlIGlzc3VlZCBieSBodHRwOi8vd3d3Lmlwcy5l
-cy8wKQYJYIZIAYb4QgECBBwWGmh0dHA6Ly93d3cuaXBzLmVzL2lwczIwMDIvMDoGCWCGSAGG+EIB
-BAQtFitodHRwOi8vd3d3Lmlwcy5lcy9pcHMyMDAyL2lwczIwMDJDTEFTRTEuY3JsMD8GCWCGSAGG
-+EIBAwQyFjBodHRwOi8vd3d3Lmlwcy5lcy9pcHMyMDAyL3Jldm9jYXRpb25DTEFTRTEuaHRtbD8w
-PAYJYIZIAYb4QgEHBC8WLWh0dHA6Ly93d3cuaXBzLmVzL2lwczIwMDIvcmVuZXdhbENMQVNFMS5o
-dG1sPzA6BglghkgBhvhCAQgELRYraHR0cDovL3d3dy5pcHMuZXMvaXBzMjAwMi9wb2xpY3lDTEFT
-RTEuaHRtbDBzBgNVHR8EbDBqMDGgL6AthitodHRwOi8vd3d3Lmlwcy5lcy9pcHMyMDAyL2lwczIw
-MDJDTEFTRTEuY3JsMDWgM6Axhi9odHRwOi8vd3d3YmFjay5pcHMuZXMvaXBzMjAwMi9pcHMyMDAy
-Q0xBU0UxLmNybDAvBggrBgEFBQcBAQQjMCEwHwYIKwYBBQUHMAGGE2h0dHA6Ly9vY3NwLmlwcy5l
-cy8wDQYJKoZIhvcNAQEFBQADgYEAK9Dr/drIyllq2tPMMi7JVBuKYn4VLenZMdMu9Ccj/1urxUq2
-ckCuU3T0vAW0xtnIyXf7t/k0f3gA+Nak5FI/LEpjV4F1Wo7ojPsCwJTGKbqz3Bzosq/SLmJbGqmO
-DszFV0VRFOlOHIilkfSj945RyKm+hjM+5i9Ibq9UkE6tsSU=
------END CERTIFICATE-----
-
-IPS CLASE3 root
-===============
------BEGIN CERTIFICATE-----
-MIIH6jCCB1OgAwIBAgIBADANBgkqhkiG9w0BAQUFADCCARIxCzAJBgNVBAYTAkVTMRIwEAYDVQQI
-EwlCYXJjZWxvbmExEjAQBgNVBAcTCUJhcmNlbG9uYTEuMCwGA1UEChMlSVBTIEludGVybmV0IHB1
-Ymxpc2hpbmcgU2VydmljZXMgcy5sLjErMCkGA1UEChQiaXBzQG1haWwuaXBzLmVzIEMuSS5GLiAg
-Qi02MDkyOTQ1MjEuMCwGA1UECxMlSVBTIENBIENMQVNFMyBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0
-eTEuMCwGA1UEAxMlSVBTIENBIENMQVNFMyBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTEeMBwGCSqG
-SIb3DQEJARYPaXBzQG1haWwuaXBzLmVzMB4XDTAxMTIyOTAxMDE0NFoXDTI1MTIyNzAxMDE0NFow
-ggESMQswCQYDVQQGEwJFUzESMBAGA1UECBMJQmFyY2Vsb25hMRIwEAYDVQQHEwlCYXJjZWxvbmEx
-LjAsBgNVBAoTJUlQUyBJbnRlcm5ldCBwdWJsaXNoaW5nIFNlcnZpY2VzIHMubC4xKzApBgNVBAoU
-Imlwc0BtYWlsLmlwcy5lcyBDLkkuRi4gIEItNjA5Mjk0NTIxLjAsBgNVBAsTJUlQUyBDQSBDTEFT
-RTMgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkxLjAsBgNVBAMTJUlQUyBDQSBDTEFTRTMgQ2VydGlm
-aWNhdGlvbiBBdXRob3JpdHkxHjAcBgkqhkiG9w0BCQEWD2lwc0BtYWlsLmlwcy5lczCBnzANBgkq
-hkiG9w0BAQEFAAOBjQAwgYkCgYEAqxf+DrDGaBtT8FK+n/ra+osTBLsBjzLZH49NzjaY2uQARIwo
-2BNEKqRrThckQpzTiKRBgtYj+4vJhuW5qYIF3PHeH+AMmVWY8jjsbJ0gA8DvqqPGZARRLXgNo9Ko
-OtYkTOmWehisEyMiG3zoMRGzXwmqMHBxRiVrSXGAK5UBsh8CAwEAAaOCBEowggRGMB0GA1UdDgQW
-BBS4k/8uy9wsjqLnev42USGjmFsMNDCCAUQGA1UdIwSCATswggE3gBS4k/8uy9wsjqLnev42USGj
-mFsMNKGCARqkggEWMIIBEjELMAkGA1UEBhMCRVMxEjAQBgNVBAgTCUJhcmNlbG9uYTESMBAGA1UE
-BxMJQmFyY2Vsb25hMS4wLAYDVQQKEyVJUFMgSW50ZXJuZXQgcHVibGlzaGluZyBTZXJ2aWNlcyBz
-LmwuMSswKQYDVQQKFCJpcHNAbWFpbC5pcHMuZXMgQy5JLkYuICBCLTYwOTI5NDUyMS4wLAYDVQQL
-EyVJUFMgQ0EgQ0xBU0UzIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MS4wLAYDVQQDEyVJUFMgQ0Eg
-Q0xBU0UzIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MR4wHAYJKoZIhvcNAQkBFg9pcHNAbWFpbC5p
-cHMuZXOCAQAwDAYDVR0TBAUwAwEB/zAMBgNVHQ8EBQMDB/+AMGsGA1UdJQRkMGIGCCsGAQUFBwMB
-BggrBgEFBQcDAgYIKwYBBQUHAwMGCCsGAQUFBwMEBggrBgEFBQcDCAYKKwYBBAGCNwIBFQYKKwYB
-BAGCNwIBFgYKKwYBBAGCNwoDAQYKKwYBBAGCNwoDBDARBglghkgBhvhCAQEEBAMCAAcwGgYDVR0R
-BBMwEYEPaXBzQG1haWwuaXBzLmVzMBoGA1UdEgQTMBGBD2lwc0BtYWlsLmlwcy5lczBBBglghkgB
-hvhCAQ0ENBYyQ0xBU0UzIENBIENlcnRpZmljYXRlIGlzc3VlZCBieSBodHRwOi8vd3d3Lmlwcy5l
-cy8wKQYJYIZIAYb4QgECBBwWGmh0dHA6Ly93d3cuaXBzLmVzL2lwczIwMDIvMDoGCWCGSAGG+EIB
-BAQtFitodHRwOi8vd3d3Lmlwcy5lcy9pcHMyMDAyL2lwczIwMDJDTEFTRTMuY3JsMD8GCWCGSAGG
-+EIBAwQyFjBodHRwOi8vd3d3Lmlwcy5lcy9pcHMyMDAyL3Jldm9jYXRpb25DTEFTRTMuaHRtbD8w
-PAYJYIZIAYb4QgEHBC8WLWh0dHA6Ly93d3cuaXBzLmVzL2lwczIwMDIvcmVuZXdhbENMQVNFMy5o
-dG1sPzA6BglghkgBhvhCAQgELRYraHR0cDovL3d3dy5pcHMuZXMvaXBzMjAwMi9wb2xpY3lDTEFT
-RTMuaHRtbDBzBgNVHR8EbDBqMDGgL6AthitodHRwOi8vd3d3Lmlwcy5lcy9pcHMyMDAyL2lwczIw
-MDJDTEFTRTMuY3JsMDWgM6Axhi9odHRwOi8vd3d3YmFjay5pcHMuZXMvaXBzMjAwMi9pcHMyMDAy
-Q0xBU0UzLmNybDAvBggrBgEFBQcBAQQjMCEwHwYIKwYBBQUHMAGGE2h0dHA6Ly9vY3NwLmlwcy5l
-cy8wDQYJKoZIhvcNAQEFBQADgYEAF2VcmZVDAyevJuXr0LMXI/dDqsfwfewPxqmurpYPdikc4gYt
-fibFPPqhwYHOU7BC0ZdXGhd+pFFhxu7pXu8Fuuu9D6eSb9ijBmgpjnn1/7/5p6/ksc7C0YBCJwUE
-NPjDfxZ4IwwHJPJGR607VNCv1TGyr33I6unUVtkOE7LFRVA=
------END CERTIFICATE-----
-
-IPS CLASEA1 root
-================
------BEGIN CERTIFICATE-----
-MIIH9zCCB2CgAwIBAgIBADANBgkqhkiG9w0BAQUFADCCARQxCzAJBgNVBAYTAkVTMRIwEAYDVQQI
-EwlCYXJjZWxvbmExEjAQBgNVBAcTCUJhcmNlbG9uYTEuMCwGA1UEChMlSVBTIEludGVybmV0IHB1
-Ymxpc2hpbmcgU2VydmljZXMgcy5sLjErMCkGA1UEChQiaXBzQG1haWwuaXBzLmVzIEMuSS5GLiAg
-Qi02MDkyOTQ1MjEvMC0GA1UECxMmSVBTIENBIENMQVNFQTEgQ2VydGlmaWNhdGlvbiBBdXRob3Jp
-dHkxLzAtBgNVBAMTJklQUyBDQSBDTEFTRUExIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MR4wHAYJ
-KoZIhvcNAQkBFg9pcHNAbWFpbC5pcHMuZXMwHhcNMDExMjI5MDEwNTMyWhcNMjUxMjI3MDEwNTMy
-WjCCARQxCzAJBgNVBAYTAkVTMRIwEAYDVQQIEwlCYXJjZWxvbmExEjAQBgNVBAcTCUJhcmNlbG9u
-YTEuMCwGA1UEChMlSVBTIEludGVybmV0IHB1Ymxpc2hpbmcgU2VydmljZXMgcy5sLjErMCkGA1UE
-ChQiaXBzQG1haWwuaXBzLmVzIEMuSS5GLiAgQi02MDkyOTQ1MjEvMC0GA1UECxMmSVBTIENBIENM
-QVNFQTEgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkxLzAtBgNVBAMTJklQUyBDQSBDTEFTRUExIENl
-cnRpZmljYXRpb24gQXV0aG9yaXR5MR4wHAYJKoZIhvcNAQkBFg9pcHNAbWFpbC5pcHMuZXMwgZ8w
-DQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBALsw19zQVL01Tp/FTILq0VA8R5j8m2mdd81u4D/u6zJf
-X5/S0HnllXNEITLgCtud186Nq1KLK3jgm1t99P1tCeWu4WwdByOgF9H5fahGRpEiqLJpxq339fWU
-oTCUvQDMRH/uxJ7JweaPCjbB/SQ9AaD1e+J8eGZDi09Z8pvZ+kmzAgMBAAGjggRTMIIETzAdBgNV
-HQ4EFgQUZyaW56G/2LUDnf473P7yiuYV3TAwggFGBgNVHSMEggE9MIIBOYAUZyaW56G/2LUDnf47
-3P7yiuYV3TChggEcpIIBGDCCARQxCzAJBgNVBAYTAkVTMRIwEAYDVQQIEwlCYXJjZWxvbmExEjAQ
-BgNVBAcTCUJhcmNlbG9uYTEuMCwGA1UEChMlSVBTIEludGVybmV0IHB1Ymxpc2hpbmcgU2Vydmlj
-ZXMgcy5sLjErMCkGA1UEChQiaXBzQG1haWwuaXBzLmVzIEMuSS5GLiAgQi02MDkyOTQ1MjEvMC0G
-A1UECxMmSVBTIENBIENMQVNFQTEgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkxLzAtBgNVBAMTJklQ
-UyBDQSBDTEFTRUExIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MR4wHAYJKoZIhvcNAQkBFg9pcHNA
-bWFpbC5pcHMuZXOCAQAwDAYDVR0TBAUwAwEB/zAMBgNVHQ8EBQMDB/+AMGsGA1UdJQRkMGIGCCsG
-AQUFBwMBBggrBgEFBQcDAgYIKwYBBQUHAwMGCCsGAQUFBwMEBggrBgEFBQcDCAYKKwYBBAGCNwIB
-FQYKKwYBBAGCNwIBFgYKKwYBBAGCNwoDAQYKKwYBBAGCNwoDBDARBglghkgBhvhCAQEEBAMCAAcw
-GgYDVR0RBBMwEYEPaXBzQG1haWwuaXBzLmVzMBoGA1UdEgQTMBGBD2lwc0BtYWlsLmlwcy5lczBC
-BglghkgBhvhCAQ0ENRYzQ0xBU0VBMSBDQSBDZXJ0aWZpY2F0ZSBpc3N1ZWQgYnkgaHR0cDovL3d3
-dy5pcHMuZXMvMCkGCWCGSAGG+EIBAgQcFhpodHRwOi8vd3d3Lmlwcy5lcy9pcHMyMDAyLzA7Bglg
-hkgBhvhCAQQELhYsaHR0cDovL3d3dy5pcHMuZXMvaXBzMjAwMi9pcHMyMDAyQ0xBU0VBMS5jcmww
-QAYJYIZIAYb4QgEDBDMWMWh0dHA6Ly93d3cuaXBzLmVzL2lwczIwMDIvcmV2b2NhdGlvbkNMQVNF
-QTEuaHRtbD8wPQYJYIZIAYb4QgEHBDAWLmh0dHA6Ly93d3cuaXBzLmVzL2lwczIwMDIvcmVuZXdh
-bENMQVNFQTEuaHRtbD8wOwYJYIZIAYb4QgEIBC4WLGh0dHA6Ly93d3cuaXBzLmVzL2lwczIwMDIv
-cG9saWN5Q0xBU0VBMS5odG1sMHUGA1UdHwRuMGwwMqAwoC6GLGh0dHA6Ly93d3cuaXBzLmVzL2lw
-czIwMDIvaXBzMjAwMkNMQVNFQTEuY3JsMDagNKAyhjBodHRwOi8vd3d3YmFjay5pcHMuZXMvaXBz
-MjAwMi9pcHMyMDAyQ0xBU0VBMS5jcmwwLwYIKwYBBQUHAQEEIzAhMB8GCCsGAQUFBzABhhNodHRw
-Oi8vb2NzcC5pcHMuZXMvMA0GCSqGSIb3DQEBBQUAA4GBAH66iqyAAIQVCtWYUQxkxZwCWINmyq0e
-B81+atqAB98DNEock8RLWCA1NnHtogo1EqWmZaeFaQoO42Hu6r4okzPV7Oi+xNtff6j5YzHIa5bi
-KcJboOeXNp13XjFr/tOn2yrb25aLH2betgPAK7N41lUH5Y85UN4HI3LmvSAUS7SG
------END CERTIFICATE-----
-
-IPS CLASEA3 root
-================
------BEGIN CERTIFICATE-----
-MIIH9zCCB2CgAwIBAgIBADANBgkqhkiG9w0BAQUFADCCARQxCzAJBgNVBAYTAkVTMRIwEAYDVQQI
-EwlCYXJjZWxvbmExEjAQBgNVBAcTCUJhcmNlbG9uYTEuMCwGA1UEChMlSVBTIEludGVybmV0IHB1
-Ymxpc2hpbmcgU2VydmljZXMgcy5sLjErMCkGA1UEChQiaXBzQG1haWwuaXBzLmVzIEMuSS5GLiAg
-Qi02MDkyOTQ1MjEvMC0GA1UECxMmSVBTIENBIENMQVNFQTMgQ2VydGlmaWNhdGlvbiBBdXRob3Jp
-dHkxLzAtBgNVBAMTJklQUyBDQSBDTEFTRUEzIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MR4wHAYJ
-KoZIhvcNAQkBFg9pcHNAbWFpbC5pcHMuZXMwHhcNMDExMjI5MDEwNzUwWhcNMjUxMjI3MDEwNzUw
-WjCCARQxCzAJBgNVBAYTAkVTMRIwEAYDVQQIEwlCYXJjZWxvbmExEjAQBgNVBAcTCUJhcmNlbG9u
-YTEuMCwGA1UEChMlSVBTIEludGVybmV0IHB1Ymxpc2hpbmcgU2VydmljZXMgcy5sLjErMCkGA1UE
-ChQiaXBzQG1haWwuaXBzLmVzIEMuSS5GLiAgQi02MDkyOTQ1MjEvMC0GA1UECxMmSVBTIENBIENM
-QVNFQTMgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkxLzAtBgNVBAMTJklQUyBDQSBDTEFTRUEzIENl
-cnRpZmljYXRpb24gQXV0aG9yaXR5MR4wHAYJKoZIhvcNAQkBFg9pcHNAbWFpbC5pcHMuZXMwgZ8w
-DQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAO6AAPYaZC6tasiDsYun7o/ZttvNG7uGBiJ2MwwSbUhW
-YdLcgiViL5/SaTBlA0IjWLxH3GvWdV0XPOH/8lhneaDBgbHUVqLyjRGZ/fZ98cfEXgIqmuJKtROK
-AP2Md4bm15T1IHUuDky/dMQ/gT6DtKM4Ninn6Cr1jIhBqoCm42zvAgMBAAGjggRTMIIETzAdBgNV
-HQ4EFgQUHp9XUEe2YZM50yz82l09BXW3mQIwggFGBgNVHSMEggE9MIIBOYAUHp9XUEe2YZM50yz8
-2l09BXW3mQKhggEcpIIBGDCCARQxCzAJBgNVBAYTAkVTMRIwEAYDVQQIEwlCYXJjZWxvbmExEjAQ
-BgNVBAcTCUJhcmNlbG9uYTEuMCwGA1UEChMlSVBTIEludGVybmV0IHB1Ymxpc2hpbmcgU2Vydmlj
-ZXMgcy5sLjErMCkGA1UEChQiaXBzQG1haWwuaXBzLmVzIEMuSS5GLiAgQi02MDkyOTQ1MjEvMC0G
-A1UECxMmSVBTIENBIENMQVNFQTMgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkxLzAtBgNVBAMTJklQ
-UyBDQSBDTEFTRUEzIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MR4wHAYJKoZIhvcNAQkBFg9pcHNA
-bWFpbC5pcHMuZXOCAQAwDAYDVR0TBAUwAwEB/zAMBgNVHQ8EBQMDB/+AMGsGA1UdJQRkMGIGCCsG
-AQUFBwMBBggrBgEFBQcDAgYIKwYBBQUHAwMGCCsGAQUFBwMEBggrBgEFBQcDCAYKKwYBBAGCNwIB
-FQYKKwYBBAGCNwIBFgYKKwYBBAGCNwoDAQYKKwYBBAGCNwoDBDARBglghkgBhvhCAQEEBAMCAAcw
-GgYDVR0RBBMwEYEPaXBzQG1haWwuaXBzLmVzMBoGA1UdEgQTMBGBD2lwc0BtYWlsLmlwcy5lczBC
-BglghkgBhvhCAQ0ENRYzQ0xBU0VBMyBDQSBDZXJ0aWZpY2F0ZSBpc3N1ZWQgYnkgaHR0cDovL3d3
-dy5pcHMuZXMvMCkGCWCGSAGG+EIBAgQcFhpodHRwOi8vd3d3Lmlwcy5lcy9pcHMyMDAyLzA7Bglg
-hkgBhvhCAQQELhYsaHR0cDovL3d3dy5pcHMuZXMvaXBzMjAwMi9pcHMyMDAyQ0xBU0VBMy5jcmww
-QAYJYIZIAYb4QgEDBDMWMWh0dHA6Ly93d3cuaXBzLmVzL2lwczIwMDIvcmV2b2NhdGlvbkNMQVNF
-QTMuaHRtbD8wPQYJYIZIAYb4QgEHBDAWLmh0dHA6Ly93d3cuaXBzLmVzL2lwczIwMDIvcmVuZXdh
-bENMQVNFQTMuaHRtbD8wOwYJYIZIAYb4QgEIBC4WLGh0dHA6Ly93d3cuaXBzLmVzL2lwczIwMDIv
-cG9saWN5Q0xBU0VBMy5odG1sMHUGA1UdHwRuMGwwMqAwoC6GLGh0dHA6Ly93d3cuaXBzLmVzL2lw
-czIwMDIvaXBzMjAwMkNMQVNFQTMuY3JsMDagNKAyhjBodHRwOi8vd3d3YmFjay5pcHMuZXMvaXBz
-MjAwMi9pcHMyMDAyQ0xBU0VBMy5jcmwwLwYIKwYBBQUHAQEEIzAhMB8GCCsGAQUFBzABhhNodHRw
-Oi8vb2NzcC5pcHMuZXMvMA0GCSqGSIb3DQEBBQUAA4GBAEo9IEca2on0eisxeewBwMwB9dbB/MjD
-81ACUZBYKp/nNQlbMAqBACVHr9QPDp5gJqiVp4MI3y2s6Q73nMify5NF8bpqxmdRSmlPa/59Cy9S
-KcJQrSRE7SOzSMtEQMEDlQwKeAYSAfWRMS1Jjbs/RU4s4OjNtckUFQzjB4ObJnXv
------END CERTIFICATE-----
-
-IPS Servidores root
-===================
------BEGIN CERTIFICATE-----
-MIICtzCCAiACAQAwDQYJKoZIhvcNAQEEBQAwgaMxCzAJBgNVBAYTAkVTMRIwEAYDVQQIEwlCQVJD
-RUxPTkExEjAQBgNVBAcTCUJBUkNFTE9OQTEZMBcGA1UEChMQSVBTIFNlZ3VyaWRhZCBDQTEYMBYG
-A1UECxMPQ2VydGlmaWNhY2lvbmVzMRcwFQYDVQQDEw5JUFMgU0VSVklET1JFUzEeMBwGCSqGSIb3
-DQEJARYPaXBzQG1haWwuaXBzLmVzMB4XDTk4MDEwMTIzMjEwN1oXDTA5MTIyOTIzMjEwN1owgaMx
-CzAJBgNVBAYTAkVTMRIwEAYDVQQIEwlCQVJDRUxPTkExEjAQBgNVBAcTCUJBUkNFTE9OQTEZMBcG
-A1UEChMQSVBTIFNlZ3VyaWRhZCBDQTEYMBYGA1UECxMPQ2VydGlmaWNhY2lvbmVzMRcwFQYDVQQD
-Ew5JUFMgU0VSVklET1JFUzEeMBwGCSqGSIb3DQEJARYPaXBzQG1haWwuaXBzLmVzMIGfMA0GCSqG
-SIb3DQEBAQUAA4GNADCBiQKBgQCsT1J0nznqjtwlxLyYXZhkJAk8IbPMGbWOlI6H0fg3PqHILVik
-gDVboXVsHUUMH2Fjal5vmwpMwci4YSM1gf/+rHhwLWjhOgeYlQJU3c0jt4BT18g3RXIGJBK6E2Eh
-im51KODFDzT9NthFf+G4Nu+z4cYgjui0OLzhPvYR3oydAQIDAQABMA0GCSqGSIb3DQEBBAUAA4GB
-ACzzw3lYJN7GO9HgQmm47mSzPWIBubOE3yN93ZjPEKn+ANgilgUTB1RXxafey9m4iEL2mdsUdx+2
-/iU94aI+A6mB0i1sR/WWRowiq8jMDQ6XXotBtDvECgZAHd1G9AHduoIuPD14cJ58GNCr+Lh3B0Zx
-8coLY1xq+XKU1QFPoNtC
------END CERTIFICATE-----
-
-IPS Timestamping root
-=====================
------BEGIN CERTIFICATE-----
-MIIIODCCB6GgAwIBAgIBADANBgkqhkiG9w0BAQUFADCCAR4xCzAJBgNVBAYTAkVTMRIwEAYDVQQI
-EwlCYXJjZWxvbmExEjAQBgNVBAcTCUJhcmNlbG9uYTEuMCwGA1UEChMlSVBTIEludGVybmV0IHB1
-Ymxpc2hpbmcgU2VydmljZXMgcy5sLjErMCkGA1UEChQiaXBzQG1haWwuaXBzLmVzIEMuSS5GLiAg
-Qi02MDkyOTQ1MjE0MDIGA1UECxMrSVBTIENBIFRpbWVzdGFtcGluZyBDZXJ0aWZpY2F0aW9uIEF1
-dGhvcml0eTE0MDIGA1UEAxMrSVBTIENBIFRpbWVzdGFtcGluZyBDZXJ0aWZpY2F0aW9uIEF1dGhv
-cml0eTEeMBwGCSqGSIb3DQEJARYPaXBzQG1haWwuaXBzLmVzMB4XDTAxMTIyOTAxMTAxOFoXDTI1
-MTIyNzAxMTAxOFowggEeMQswCQYDVQQGEwJFUzESMBAGA1UECBMJQmFyY2Vsb25hMRIwEAYDVQQH
-EwlCYXJjZWxvbmExLjAsBgNVBAoTJUlQUyBJbnRlcm5ldCBwdWJsaXNoaW5nIFNlcnZpY2VzIHMu
-bC4xKzApBgNVBAoUImlwc0BtYWlsLmlwcy5lcyBDLkkuRi4gIEItNjA5Mjk0NTIxNDAyBgNVBAsT
-K0lQUyBDQSBUaW1lc3RhbXBpbmcgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkxNDAyBgNVBAMTK0lQ
-UyBDQSBUaW1lc3RhbXBpbmcgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkxHjAcBgkqhkiG9w0BCQEW
-D2lwc0BtYWlsLmlwcy5lczCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAvLjuVqWajOY2ycJi
-oGaBjRrVetJznw6EZLqVtJCneK/K/lRhW86yIFcBrkSSQxA4Efdo/BdApWgnMjvEp+ZCccWZ73b/
-K5Uk9UmSGGjKALWkWi9uy9YbLA1UZ2t6KaFYq6JaANZbuxjC3/YeE1Z2m6Vo4pjOxgOKNNtMg0Gm
-qaMCAwEAAaOCBIAwggR8MB0GA1UdDgQWBBSL0BBQCYHynQnVDmB4AyKiP8jKZjCCAVAGA1UdIwSC
-AUcwggFDgBSL0BBQCYHynQnVDmB4AyKiP8jKZqGCASakggEiMIIBHjELMAkGA1UEBhMCRVMxEjAQ
-BgNVBAgTCUJhcmNlbG9uYTESMBAGA1UEBxMJQmFyY2Vsb25hMS4wLAYDVQQKEyVJUFMgSW50ZXJu
-ZXQgcHVibGlzaGluZyBTZXJ2aWNlcyBzLmwuMSswKQYDVQQKFCJpcHNAbWFpbC5pcHMuZXMgQy5J
-LkYuICBCLTYwOTI5NDUyMTQwMgYDVQQLEytJUFMgQ0EgVGltZXN0YW1waW5nIENlcnRpZmljYXRp
-b24gQXV0aG9yaXR5MTQwMgYDVQQDEytJUFMgQ0EgVGltZXN0YW1waW5nIENlcnRpZmljYXRpb24g
-QXV0aG9yaXR5MR4wHAYJKoZIhvcNAQkBFg9pcHNAbWFpbC5pcHMuZXOCAQAwDAYDVR0TBAUwAwEB
-/zAMBgNVHQ8EBQMDB/+AMGsGA1UdJQRkMGIGCCsGAQUFBwMBBggrBgEFBQcDAgYIKwYBBQUHAwMG
-CCsGAQUFBwMEBggrBgEFBQcDCAYKKwYBBAGCNwIBFQYKKwYBBAGCNwIBFgYKKwYBBAGCNwoDAQYK
-KwYBBAGCNwoDBDARBglghkgBhvhCAQEEBAMCAAcwGgYDVR0RBBMwEYEPaXBzQG1haWwuaXBzLmVz
-MBoGA1UdEgQTMBGBD2lwc0BtYWlsLmlwcy5lczBHBglghkgBhvhCAQ0EOhY4VGltZXN0YW1waW5n
-IENBIENlcnRpZmljYXRlIGlzc3VlZCBieSBodHRwOi8vd3d3Lmlwcy5lcy8wKQYJYIZIAYb4QgEC
-BBwWGmh0dHA6Ly93d3cuaXBzLmVzL2lwczIwMDIvMEAGCWCGSAGG+EIBBAQzFjFodHRwOi8vd3d3
-Lmlwcy5lcy9pcHMyMDAyL2lwczIwMDJUaW1lc3RhbXBpbmcuY3JsMEUGCWCGSAGG+EIBAwQ4FjZo
-dHRwOi8vd3d3Lmlwcy5lcy9pcHMyMDAyL3Jldm9jYXRpb25UaW1lc3RhbXBpbmcuaHRtbD8wQgYJ
-YIZIAYb4QgEHBDUWM2h0dHA6Ly93d3cuaXBzLmVzL2lwczIwMDIvcmVuZXdhbFRpbWVzdGFtcGlu
-Zy5odG1sPzBABglghkgBhvhCAQgEMxYxaHR0cDovL3d3dy5pcHMuZXMvaXBzMjAwMi9wb2xpY3lU
-aW1lc3RhbXBpbmcuaHRtbDB/BgNVHR8EeDB2MDegNaAzhjFodHRwOi8vd3d3Lmlwcy5lcy9pcHMy
-MDAyL2lwczIwMDJUaW1lc3RhbXBpbmcuY3JsMDugOaA3hjVodHRwOi8vd3d3YmFjay5pcHMuZXMv
-aXBzMjAwMi9pcHMyMDAyVGltZXN0YW1waW5nLmNybDAvBggrBgEFBQcBAQQjMCEwHwYIKwYBBQUH
-MAGGE2h0dHA6Ly9vY3NwLmlwcy5lcy8wDQYJKoZIhvcNAQEFBQADgYEAZbrBzAAalZHK6Ww6vzoe
-FAh8+4Pua2JR0zORtWB5fgTYXXk36MNbsMRnLWhasl8OCvrNPzpFoeo2zyYepxEoxZSPhExTCMWT
-s/zif/WN87GphV+I3pGW7hdbrqXqcGV4LCFkAZXOzkw+UPS2Wctjjba9GNSHSl/c7+lW8AoM6HU=
------END CERTIFICATE-----
-
-QuoVadis Root CA
-================
------BEGIN CERTIFICATE-----
-MIIF0DCCBLigAwIBAgIEOrZQizANBgkqhkiG9w0BAQUFADB/MQswCQYDVQQGEwJCTTEZMBcGA1UE
-ChMQUXVvVmFkaXMgTGltaXRlZDElMCMGA1UECxMcUm9vdCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0
-eTEuMCwGA1UEAxMlUXVvVmFkaXMgUm9vdCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAeFw0wMTAz
-MTkxODMzMzNaFw0yMTAzMTcxODMzMzNaMH8xCzAJBgNVBAYTAkJNMRkwFwYDVQQKExBRdW9WYWRp
-cyBMaW1pdGVkMSUwIwYDVQQLExxSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MS4wLAYDVQQD
-EyVRdW9WYWRpcyBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MIIBIjANBgkqhkiG9w0BAQEF
-AAOCAQ8AMIIBCgKCAQEAv2G1lVO6V/z68mcLOhrfEYBklbTRvM16z/Ypli4kVEAkOPcahdxYTMuk
-J0KX0J+DisPkBgNbAKVRHnAEdOLB1Dqr1607BxgFjv2DrOpm2RgbaIr1VxqYuvXtdj182d6UajtL
-F8HVj71lODqV0D1VNk7feVcxKh7YWWVJWCCYfqtffp/p1k3sg3Spx2zY7ilKhSoGFPlU5tPaZQeL
-YzcS19Dsw3sgQUSj7cugF+FxZc4dZjH3dgEZyH0DWLaVSR2mEiboxgx24ONmy+pdpibu5cxfvWen
-AScOospUxbF6lR1xHkopigPcakXBpBlebzbNw6Kwt/5cOOJSvPhEQ+aQuwIDAQABo4ICUjCCAk4w
-PQYIKwYBBQUHAQEEMTAvMC0GCCsGAQUFBzABhiFodHRwczovL29jc3AucXVvdmFkaXNvZmZzaG9y
-ZS5jb20wDwYDVR0TAQH/BAUwAwEB/zCCARoGA1UdIASCAREwggENMIIBCQYJKwYBBAG+WAABMIH7
-MIHUBggrBgEFBQcCAjCBxxqBxFJlbGlhbmNlIG9uIHRoZSBRdW9WYWRpcyBSb290IENlcnRpZmlj
-YXRlIGJ5IGFueSBwYXJ0eSBhc3N1bWVzIGFjY2VwdGFuY2Ugb2YgdGhlIHRoZW4gYXBwbGljYWJs
-ZSBzdGFuZGFyZCB0ZXJtcyBhbmQgY29uZGl0aW9ucyBvZiB1c2UsIGNlcnRpZmljYXRpb24gcHJh
-Y3RpY2VzLCBhbmQgdGhlIFF1b1ZhZGlzIENlcnRpZmljYXRlIFBvbGljeS4wIgYIKwYBBQUHAgEW
-Fmh0dHA6Ly93d3cucXVvdmFkaXMuYm0wHQYDVR0OBBYEFItLbe3TKbkGGew5Oanwl4Rqy+/fMIGu
-BgNVHSMEgaYwgaOAFItLbe3TKbkGGew5Oanwl4Rqy+/foYGEpIGBMH8xCzAJBgNVBAYTAkJNMRkw
-FwYDVQQKExBRdW9WYWRpcyBMaW1pdGVkMSUwIwYDVQQLExxSb290IENlcnRpZmljYXRpb24gQXV0
-aG9yaXR5MS4wLAYDVQQDEyVRdW9WYWRpcyBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5ggQ6
-tlCLMA4GA1UdDwEB/wQEAwIBBjANBgkqhkiG9w0BAQUFAAOCAQEAitQUtf70mpKnGdSkfnIYj9lo
-fFIk3WdvOXrEql494liwTXCYhGHoG+NpGA7O+0dQoE7/8CQfvbLO9Sf87C9TqnN7Az10buYWnuul
-LsS/VidQK2K6vkscPFVcQR0kvoIgR13VRH56FmjffU1RcHhXHTMe/QKZnAzNCgVPx7uOpHX6Sm2x
-gI4JVrmcGmD+XcHXetwReNDWXcG31a0ymQM6isxUJTkxgXsTIlG6Rmyhu576BGxJJnSP0nPrzDCi
-5upZIof4l/UO/erMkqQWxFIY6iHOsfHmhIHluqmGKPJDWl0Snawe2ajlCmqnf6CHKc/yiU3U7MXi
-5nrQNiOKSnQ2+Q==
------END CERTIFICATE-----
-
-QuoVadis Root CA 2
-==================
------BEGIN CERTIFICATE-----
-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
------END CERTIFICATE-----
-
-QuoVadis Root CA 3
-==================
------BEGIN CERTIFICATE-----
-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
------END CERTIFICATE-----
-
-Security Communication Root CA
-==============================
------BEGIN CERTIFICATE-----
-MIIDWjCCAkKgAwIBAgIBADANBgkqhkiG9w0BAQUFADBQMQswCQYDVQQGEwJKUDEYMBYGA1UEChMP
-U0VDT00gVHJ1c3QubmV0MScwJQYDVQQLEx5TZWN1cml0eSBDb21tdW5pY2F0aW9uIFJvb3RDQTEw
-HhcNMDMwOTMwMDQyMDQ5WhcNMjMwOTMwMDQyMDQ5WjBQMQswCQYDVQQGEwJKUDEYMBYGA1UEChMP
-U0VDT00gVHJ1c3QubmV0MScwJQYDVQQLEx5TZWN1cml0eSBDb21tdW5pY2F0aW9uIFJvb3RDQTEw
-ggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCzs/5/022x7xZ8V6UMbXaKL0u/ZPtM7orw
-8yl89f/uKuDp6bpbZCKamm8sOiZpUQWZJtzVHGpxxpp9Hp3dfGzGjGdnSj74cbAZJ6kJDKaVv0uM
-DPpVmDvY6CKhS3E4eayXkmmziX7qIWgGmBSWh9JhNrxtJ1aeV+7AwFb9Ms+k2Y7CI9eNqPPYJayX
-5HA49LY6tJ07lyZDo6G8SVlyTCMwhwFY9k6+HGhWZq/NQV3Is00qVUarH9oe4kA92819uZKAnDfd
-DJZkndwi92SL32HeFZRSFaB9UslLqCHJxrHty8OVYNEP8Ktw+N/LTX7s1vqr2b1/VPKl6Xn62dZ2
-JChzAgMBAAGjPzA9MB0GA1UdDgQWBBSgc0mZaNyFW2XjmygvV5+9M7wHSDALBgNVHQ8EBAMCAQYw
-DwYDVR0TAQH/BAUwAwEB/zANBgkqhkiG9w0BAQUFAAOCAQEAaECpqLvkT115swW1F7NgE+vGkl3g
-0dNq/vu+m22/xwVtWSDEHPC32oRYAmP6SBbvT6UL90qY8j+eG61Ha2POCEfrUj94nK9NrvjVT8+a
-mCoQQTlSxN3Zmw7vkwGusi7KaEIkQmywszo+zenaSMQVy+n5Bw+SUEmK3TGXX8npN6o7WWWXlDLJ
-s58+OmJYxUmtYg5xpTKqL8aJdkNAExNnPaJUJRDL8Try2frbSVa7pv6nQTXD4IhhyYjH3zYQIphZ
-6rBK+1YWc26sTfcioU+tHXotRSflMMFe8toTyyVCUZVHA4xsIcx0Qu1T/zOLjw9XARYvz6buyXAi
-FL39vmwLAw==
------END CERTIFICATE-----
-
-Sonera Class 1 Root CA
-======================
------BEGIN CERTIFICATE-----
-MIIDIDCCAgigAwIBAgIBJDANBgkqhkiG9w0BAQUFADA5MQswCQYDVQQGEwJGSTEPMA0GA1UEChMG
-U29uZXJhMRkwFwYDVQQDExBTb25lcmEgQ2xhc3MxIENBMB4XDTAxMDQwNjEwNDkxM1oXDTIxMDQw
-NjEwNDkxM1owOTELMAkGA1UEBhMCRkkxDzANBgNVBAoTBlNvbmVyYTEZMBcGA1UEAxMQU29uZXJh
-IENsYXNzMSBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALWJHytPZwp5/8Ue+H88
-7dF+2rDNbS82rDTG29lkFwhjMDMiikzujrsPDUJVyZ0upe/3p4zDq7mXy47vPxVnqIJyY1MPQYx9
-EJUkoVqlBvqSV536pQHydekfvFYmUk54GWVYVQNYwBSujHxVX3BbdyMGNpfzJLWaRpXk3w0LBUXl
-0fIdgrvGE+D+qnr9aTCU89JFhfzyMlsy3uhsXR/LpCJ0sICOXZT3BgBLqdReLjVQCfOAl/QMF645
-2F/NM8EcyonCIvdFEu1eEpOdY6uCLrnrQkFEy0oaAIINnvmLVz5MxxftLItyM19yejhW1ebZrgUa
-HXVFsculJRwSVzb9IjcCAwEAAaMzMDEwDwYDVR0TAQH/BAUwAwEB/zARBgNVHQ4ECgQIR+IMi/ZT
-iFIwCwYDVR0PBAQDAgEGMA0GCSqGSIb3DQEBBQUAA4IBAQCLGrLJXWG04bkruVPRsoWdd44W7hE9
-28Jj2VuXZfsSZ9gqXLar5V7DtxYvyOirHYr9qxp81V9jz9yw3Xe5qObSIjiHBxTZ/75Wtf0HDjxV
-yhbMp6Z3N/vbXB9OWQaHowND9Rart4S9Tu+fMTfwRvFAttEMpWT4Y14h21VOTzF2nBBhjrZTOqMR
-vq9tfB69ri3iDGnHhVNoomG6xT60eVR4ngrHAr5i0RGCS2UvkVrCqIexVmiUefkl98HVrhq4uz2P
-qYo4Ffdz0Fpg0YCw8NzVUM1O7pJIae2yIx4wzMiUyLb1O4Z/P6Yun/Y+LLWSlj7fLJOK/4GMDw9Z
-IRlXvVWa
------END CERTIFICATE-----
-
-Sonera Class 2 Root CA
-======================
------BEGIN CERTIFICATE-----
-MIIDIDCCAgigAwIBAgIBHTANBgkqhkiG9w0BAQUFADA5MQswCQYDVQQGEwJGSTEPMA0GA1UEChMG
-U29uZXJhMRkwFwYDVQQDExBTb25lcmEgQ2xhc3MyIENBMB4XDTAxMDQwNjA3Mjk0MFoXDTIxMDQw
-NjA3Mjk0MFowOTELMAkGA1UEBhMCRkkxDzANBgNVBAoTBlNvbmVyYTEZMBcGA1UEAxMQU29uZXJh
-IENsYXNzMiBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAJAXSjWdyvANlsdE+hY3
-/Ei9vX+ALTU74W+oZ6m/AxxNjG8yR9VBaKQTBME1DJqEQ/xcHf+Js+gXGM2RX/uJ4+q/Tl18GybT
-dXnt5oTjV+WtKcT0OijnpXuENmmz/V52vaMtmdOQTiMofRhj8VQ7Jp12W5dCsv+u8E7s3TmVToMG
-f+dJQMjFAbJUWmYdPfz56TwKnoG4cPABi+QjVHzIrviQHgCWctRUz2EjvOr7nQKV0ba5cTppCD8P
-tOFCx4j1P5iop7oc4HFx71hXgVB6XGt0Rg6DA5jDjqhu8nYybieDwnPz3BjotJPqdURrBGAgcVeH
-nfO+oJAjPYok4doh28MCAwEAAaMzMDEwDwYDVR0TAQH/BAUwAwEB/zARBgNVHQ4ECgQISqCqWITT
-XjwwCwYDVR0PBAQDAgEGMA0GCSqGSIb3DQEBBQUAA4IBAQBazof5FnIVV0sd2ZvnoiYw7JNn39Yt
-0jSv9zilzqsWuasvfDXLrNAPtEwr/IDva4yRXzZ299uzGxnq9LIR/WFxRL8oszodv7ND6J+/3DEI
-cbCdjdY0RzKQxmUk96BKfARzjzlvF4xytb1LyHr4e4PDKE6cCepnP7JnBBvDFNr450kkkdAdavph
-Oe9r5yF1BgfYErQhIHBCcYHaPJo2vqZbDWpsmh+Re/n570K6Tk6ezAyNlNzZRZxe7EJQY670XcSx
-EtzKO6gunRRaBXW37Ndj4ro1tgQIkejanZz2ZrUYrAqmVCY0M9IbwdR/GjqOC6oybtv8TyWf2TLH
-llpwrN9M
------END CERTIFICATE-----
-
-Staat der Nederlanden Root CA
-=============================
------BEGIN CERTIFICATE-----
-MIIDujCCAqKgAwIBAgIEAJiWijANBgkqhkiG9w0BAQUFADBVMQswCQYDVQQGEwJOTDEeMBwGA1UE
-ChMVU3RhYXQgZGVyIE5lZGVybGFuZGVuMSYwJAYDVQQDEx1TdGFhdCBkZXIgTmVkZXJsYW5kZW4g
-Um9vdCBDQTAeFw0wMjEyMTcwOTIzNDlaFw0xNTEyMTYwOTE1MzhaMFUxCzAJBgNVBAYTAk5MMR4w
-HAYDVQQKExVTdGFhdCBkZXIgTmVkZXJsYW5kZW4xJjAkBgNVBAMTHVN0YWF0IGRlciBOZWRlcmxh
-bmRlbiBSb290IENBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAmNK1URF6gaYUmHFt
-vsznExvWJw56s2oYHLZhWtVhCb/ekBPHZ+7d89rFDBKeNVU+LCeIQGv33N0iYfXCxw719tV2U02P
-jLwYdjeFnejKScfST5gTCaI+Ioicf9byEGW07l8Y1Rfj+MX94p2i71MOhXeiD+EwR+4A5zN9RGca
-C1Hoi6CeUJhoNFIfLm0B8mBF8jHrqTFoKbt6QZ7GGX+UtFE5A3+y3qcym7RHjm+0Sq7lr7HcsBth
-vJly3uSJt3omXdozSVtSnA71iq3DuD3oBmrC1SoLbHuEvVYFy4ZlkuxEK7COudxwC0barbxjiDn6
-22r+I/q85Ej0ZytqERAhSQIDAQABo4GRMIGOMAwGA1UdEwQFMAMBAf8wTwYDVR0gBEgwRjBEBgRV
-HSAAMDwwOgYIKwYBBQUHAgEWLmh0dHA6Ly93d3cucGtpb3ZlcmhlaWQubmwvcG9saWNpZXMvcm9v
-dC1wb2xpY3kwDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBSofeu8Y6R0E3QA7Jbg0zTBLL9s+DAN
-BgkqhkiG9w0BAQUFAAOCAQEABYSHVXQ2YcG70dTGFagTtJ+k/rvuFbQvBgwp8qiSpGEN/KtcCFtR
-EytNwiphyPgJWPwtArI5fZlmgb9uXJVFIGzmeafR2Bwp/MIgJ1HI8XxdNGdphREwxgDS1/PTfLbw
-MVcoEoJz6TMvplW0C5GUR5z6u3pCMuiufi3IvKwUv9kP2Vv8wfl6leF9fpb8cbDCTMjfRTTJzg3y
-nGQI0DvDKcWy7ZAEwbEpkcUwb8GpcjPM/l0WFywRaed+/sWDCN+83CI6LiBpIzlWYGeQiy52OfsR
-iJf2fL1LuCAWZwWN4jvBcj+UlTfHXbme2JOhF4//DGYVwSR8MnwDHTuhWEUykw==
------END CERTIFICATE-----
-
-TDC Internet Root CA
-====================
------BEGIN CERTIFICATE-----
-MIIEKzCCAxOgAwIBAgIEOsylTDANBgkqhkiG9w0BAQUFADBDMQswCQYDVQQGEwJESzEVMBMGA1UE
-ChMMVERDIEludGVybmV0MR0wGwYDVQQLExRUREMgSW50ZXJuZXQgUm9vdCBDQTAeFw0wMTA0MDUx
-NjMzMTdaFw0yMTA0MDUxNzAzMTdaMEMxCzAJBgNVBAYTAkRLMRUwEwYDVQQKEwxUREMgSW50ZXJu
-ZXQxHTAbBgNVBAsTFFREQyBJbnRlcm5ldCBSb290IENBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8A
-MIIBCgKCAQEAxLhAvJHVYx/XmaCLDEAedLdInUaMArLgJF/wGROnN4NrXceO+YQwzho7+vvOi20j
-xsNuZp+Jpd/gQlBn+h9sHvTQBda/ytZO5GhgbEaqHF1j4QeGDmUApy6mcca8uYGoOn0a0vnRrEvL
-znWv3Hv6gXPU/Lq9QYjUdLP5Xjg6PEOo0pVOd20TDJ2PeAG3WiAfAzc14izbSysseLlJ28TQx5yc
-5IogCSEWVmb/Bexb4/DPqyQkXsN/cHoSxNK1EKC2IeGNeGlVRGn1ypYcNIUXJXfi9i8nmHj9eQY6
-otZaQ8H/7AQ77hPv01ha/5Lr7K7a8jcDR0G2l8ktCkEiu7vmpwIDAQABo4IBJTCCASEwEQYJYIZI
-AYb4QgEBBAQDAgAHMGUGA1UdHwReMFwwWqBYoFakVDBSMQswCQYDVQQGEwJESzEVMBMGA1UEChMM
-VERDIEludGVybmV0MR0wGwYDVQQLExRUREMgSW50ZXJuZXQgUm9vdCBDQTENMAsGA1UEAxMEQ1JM
-MTArBgNVHRAEJDAigA8yMDAxMDQwNTE2MzMxN1qBDzIwMjEwNDA1MTcwMzE3WjALBgNVHQ8EBAMC
-AQYwHwYDVR0jBBgwFoAUbGQBx/2FbazI2p5QCIUItTxWqFAwHQYDVR0OBBYEFGxkAcf9hW2syNqe
-UAiFCLU8VqhQMAwGA1UdEwQFMAMBAf8wHQYJKoZIhvZ9B0EABBAwDhsIVjUuMDo0LjADAgSQMA0G
-CSqGSIb3DQEBBQUAA4IBAQBOQ8zR3R0QGwZ/t6T609lN+yOfI1Rb5osvBCiLtSdtiaHsmGnc540m
-gwV5dOy0uaOXwTUA/RXaOYE6lTGQ3pfphqiZdwzlWqCE/xIWrG64jcN7ksKsLtB9KOy282A4aW8+
-2ARVPp7MVdK6/rtHBNcK2RYKNCn1WBPVT8+PVkuzHu7TmHnaCB4Mb7j4Fifvwm899qNLPg7kbWzb
-O0ESm70NRyN/PErQr8Cv9u8btRXE64PECV90i9kR+8JWsTz4cMo0jUNAE4z9mQNUecYu6oah9jrU
-Cbz0vGbMPVjQV0kK7iXiQe4T+Zs4NNEA9X7nlB38aQNiuJkFBT1reBK9sG9l
------END CERTIFICATE-----
-
-TDC OCES Root CA
-================
------BEGIN CERTIFICATE-----
-MIIFGTCCBAGgAwIBAgIEPki9xDANBgkqhkiG9w0BAQUFADAxMQswCQYDVQQGEwJESzEMMAoGA1UE
-ChMDVERDMRQwEgYDVQQDEwtUREMgT0NFUyBDQTAeFw0wMzAyMTEwODM5MzBaFw0zNzAyMTEwOTA5
-MzBaMDExCzAJBgNVBAYTAkRLMQwwCgYDVQQKEwNUREMxFDASBgNVBAMTC1REQyBPQ0VTIENBMIIB
-IjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEArGL2YSCyz8DGhdfjeebM7fI5kqSXLmSjhFuH
-nEz9pPPEXyG9VhDr2y5h7JNp46PMvZnDBfwGuMo2HP6QjklMxFaaL1a8z3sM8W9Hpg1DTeLpHTk0
-zY0s2RKY+ePhwUp8hjjEqcRhiNJerxomTdXkoCJHhNlktxmW/OwZ5LKXJk5KTMuPJItUGBxIYXvV
-iGjaXbXqzRowwYCDdlCqT9HU3Tjw7xb04QxQBr/q+3pJoSgrHPb8FTKjdGqPqcNiKXEx5TukYBde
-dObaE+3pHx8b0bJoc8YQNHVGEBDjkAB2QMuLt0MJIf+rTpPGWOmlgtt3xDqZsXKVSQTwtyv6e1mO
-3QIDAQABo4ICNzCCAjMwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwgewGA1UdIASB
-5DCB4TCB3gYIKoFQgSkBAQEwgdEwLwYIKwYBBQUHAgEWI2h0dHA6Ly93d3cuY2VydGlmaWthdC5k
-ay9yZXBvc2l0b3J5MIGdBggrBgEFBQcCAjCBkDAKFgNUREMwAwIBARqBgUNlcnRpZmlrYXRlciBm
-cmEgZGVubmUgQ0EgdWRzdGVkZXMgdW5kZXIgT0lEIDEuMi4yMDguMTY5LjEuMS4xLiBDZXJ0aWZp
-Y2F0ZXMgZnJvbSB0aGlzIENBIGFyZSBpc3N1ZWQgdW5kZXIgT0lEIDEuMi4yMDguMTY5LjEuMS4x
-LjARBglghkgBhvhCAQEEBAMCAAcwgYEGA1UdHwR6MHgwSKBGoESkQjBAMQswCQYDVQQGEwJESzEM
-MAoGA1UEChMDVERDMRQwEgYDVQQDEwtUREMgT0NFUyBDQTENMAsGA1UEAxMEQ1JMMTAsoCqgKIYm
-aHR0cDovL2NybC5vY2VzLmNlcnRpZmlrYXQuZGsvb2Nlcy5jcmwwKwYDVR0QBCQwIoAPMjAwMzAy
-MTEwODM5MzBagQ8yMDM3MDIxMTA5MDkzMFowHwYDVR0jBBgwFoAUYLWF7FZkfhIZJ2cdUBVLc647
-+RIwHQYDVR0OBBYEFGC1hexWZH4SGSdnHVAVS3OuO/kSMB0GCSqGSIb2fQdBAAQQMA4bCFY2LjA6
-NC4wAwIEkDANBgkqhkiG9w0BAQUFAAOCAQEACromJkbTc6gJ82sLMJn9iuFXehHTuJTXCRBuo7E4
-A9G28kNBKWKnctj7fAXmMXAnVBhOinxO5dHKjHiIzxvTkIvmI/gLDjNDfZziChmPyQE+dF10yYsc
-A+UYyAFMP8uXBV2YcaaYb7Z8vTd/vuGTJW1v8AqtFxjhA7wHKcitJuj4YfD9IQl+mo6paH1IYnK9
-AOoBmbgGglGBTvH1tJFUuSN6AJqfXY3gPGS5GhKSKseCRHI53OI8xthV9RVOyAUO28bQYqbsFbS1
-AoLbrIyigfCbmTH1ICCoiGEKB5+U/NDXG8wuF/MEJ3Zn61SD/aSQfgY9BKNDLdr8C2LqL19iUw==
------END CERTIFICATE-----
-
-UTN DATACorp SGC Root CA
-========================
------BEGIN CERTIFICATE-----
-MIIEXjCCA0agAwIBAgIQRL4Mi1AAIbQR0ypoBqmtaTANBgkqhkiG9w0BAQUFADCBkzELMAkGA1UE
-BhMCVVMxCzAJBgNVBAgTAlVUMRcwFQYDVQQHEw5TYWx0IExha2UgQ2l0eTEeMBwGA1UEChMVVGhl
-IFVTRVJUUlVTVCBOZXR3b3JrMSEwHwYDVQQLExhodHRwOi8vd3d3LnVzZXJ0cnVzdC5jb20xGzAZ
-BgNVBAMTElVUTiAtIERBVEFDb3JwIFNHQzAeFw05OTA2MjQxODU3MjFaFw0xOTA2MjQxOTA2MzBa
-MIGTMQswCQYDVQQGEwJVUzELMAkGA1UECBMCVVQxFzAVBgNVBAcTDlNhbHQgTGFrZSBDaXR5MR4w
-HAYDVQQKExVUaGUgVVNFUlRSVVNUIE5ldHdvcmsxITAfBgNVBAsTGGh0dHA6Ly93d3cudXNlcnRy
-dXN0LmNvbTEbMBkGA1UEAxMSVVROIC0gREFUQUNvcnAgU0dDMIIBIjANBgkqhkiG9w0BAQEFAAOC
-AQ8AMIIBCgKCAQEA3+5YEKIrblXEjr8uRgnn4AgPLit6E5Qbvfa2gI5lBZMAHryv4g+OGQ0SR+ys
-raP6LnD43m77VkIVni5c7yPeIbkFdicZD0/Ww5y0vpQZY/KmEQrrU0icvvIpOxboGqBMpsn0GFlo
-wHDyUwDAXlCCpVZvNvlK4ESGoE1O1kduSUrLZ9emxAW5jh70/P/N5zbgnAVssjMiFdC04MwXwLLA
-9P4yPykqlXvY8qdOD1R8oQ2AswkDwf9c3V6aPryuvEeKaq5xyh+xKrhfQgUL7EYw0XILyulWbfXv
-33i+Ybqypa4ETLyorGkVl73v67SMvzX41MPRKA5cOp9wGDMgd8SirwIDAQABo4GrMIGoMAsGA1Ud
-DwQEAwIBxjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBRTMtGzz3/64PGgXYVOktKeRR20TzA9
-BgNVHR8ENjA0MDKgMKAuhixodHRwOi8vY3JsLnVzZXJ0cnVzdC5jb20vVVROLURBVEFDb3JwU0dD
-LmNybDAqBgNVHSUEIzAhBggrBgEFBQcDAQYKKwYBBAGCNwoDAwYJYIZIAYb4QgQBMA0GCSqGSIb3
-DQEBBQUAA4IBAQAnNZcAiosovcYzMB4p/OL31ZjUQLtgyr+rFywJNn9Q+kHcrpY6CiM+iVnJowft
-Gzet/Hy+UUla3joKVAgWRcKZsYfNjGjgaQPpxE6YsjuMFrMOoAyYUJuTqXAJyCyjj98C5OBxOvG0
-I3KgqgHf35g+FFCgMSa9KOlaMCZ1+XtgHI3zzVAmbQQnmt/VDUVHKWss5nbZqSl9Mt3JNjy9rjXx
-EZ4du5A/EkdOjtd+D2JzHVImOBwYSf0wdJrE5SIv2MCN7ZF6TACPcn9d2t0bi0Vr591pl6jFVkwP
-DPafepE39peC4N1xaf92P2BNPM/3mfnGV/TJVTl4uix5yaaIK/QI
------END CERTIFICATE-----
-
-UTN USERFirst Email Root CA
-===========================
------BEGIN CERTIFICATE-----
-MIIEojCCA4qgAwIBAgIQRL4Mi1AAJLQR0zYlJWfJiTANBgkqhkiG9w0BAQUFADCBrjELMAkGA1UE
-BhMCVVMxCzAJBgNVBAgTAlVUMRcwFQYDVQQHEw5TYWx0IExha2UgQ2l0eTEeMBwGA1UEChMVVGhl
-IFVTRVJUUlVTVCBOZXR3b3JrMSEwHwYDVQQLExhodHRwOi8vd3d3LnVzZXJ0cnVzdC5jb20xNjA0
-BgNVBAMTLVVUTi1VU0VSRmlyc3QtQ2xpZW50IEF1dGhlbnRpY2F0aW9uIGFuZCBFbWFpbDAeFw05
-OTA3MDkxNzI4NTBaFw0xOTA3MDkxNzM2NThaMIGuMQswCQYDVQQGEwJVUzELMAkGA1UECBMCVVQx
-FzAVBgNVBAcTDlNhbHQgTGFrZSBDaXR5MR4wHAYDVQQKExVUaGUgVVNFUlRSVVNUIE5ldHdvcmsx
-ITAfBgNVBAsTGGh0dHA6Ly93d3cudXNlcnRydXN0LmNvbTE2MDQGA1UEAxMtVVROLVVTRVJGaXJz
-dC1DbGllbnQgQXV0aGVudGljYXRpb24gYW5kIEVtYWlsMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8A
-MIIBCgKCAQEAsjmFpPJ9q0E7YkY3rs3BYHW8OWX5ShpHornMSMxqmNVNNRm5pELlzkniii8efNIx
-B8dOtINknS4p1aJkxIW9hVE1eaROaJB7HHqkkqgX8pgV8pPMyaQylbsMTzC9mKALi+VuG6JG+ni8
-om+rWV6lL8/K2m2qL+usobNqqrcuZzWLeeEeaYji5kbNoKXqvgvOdjp6Dpvq/NonWz1zHyLmSGHG
-TPNpsaguG7bUMSAsvIKKjqQOpdeJQ/wWWq8dcdcRWdq6hw2v+vPhwvCkxWeM1tZUOt4KpLoDd7Nl
-yP0e03RiqhjKaJMeoYV+9Udly/hNVyh00jT/MLbu9mIwFIws6wIDAQABo4G5MIG2MAsGA1UdDwQE
-AwIBxjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBSJgmd9xJ0mcABLtFBIfN49rgRufTBYBgNV
-HR8EUTBPME2gS6BJhkdodHRwOi8vY3JsLnVzZXJ0cnVzdC5jb20vVVROLVVTRVJGaXJzdC1DbGll
-bnRBdXRoZW50aWNhdGlvbmFuZEVtYWlsLmNybDAdBgNVHSUEFjAUBggrBgEFBQcDAgYIKwYBBQUH
-AwQwDQYJKoZIhvcNAQEFBQADggEBALFtYV2mGn98q0rkMPxTbyUkxsrt4jFcKw7u7mFVbwQ+zzne
-xRtJlOTrIEy05p5QLnLZjfWqo7NK2lYcYJeA3IKirUq9iiv/Cwm0xtcgBEXkzYABurorbs6q15L+
-5K/r9CYdFip/bDCVNy8zEqx/3cfREYxRmLLQo5HQrfafnoOTHh1CuEava2bwm3/q4wMC5QJRwarV
-NZ1yQAOJujEdxRBoUp7fooXFXAimeOZTT7Hot9MUnpOmw2TjrH5xzbyf6QMbzPvprDHBr3wVdAKZ
-w7JHpsIyYdfHb0gkUSeh1YdV8nuPmD0Wnu51tvjQjvLzxq4oW6fw8zYX/MMF08oDSlQ=
------END CERTIFICATE-----
-
-UTN USERFirst Hardware Root CA
-==============================
------BEGIN CERTIFICATE-----
-MIIEdDCCA1ygAwIBAgIQRL4Mi1AAJLQR0zYq/mUK/TANBgkqhkiG9w0BAQUFADCBlzELMAkGA1UE
-BhMCVVMxCzAJBgNVBAgTAlVUMRcwFQYDVQQHEw5TYWx0IExha2UgQ2l0eTEeMBwGA1UEChMVVGhl
-IFVTRVJUUlVTVCBOZXR3b3JrMSEwHwYDVQQLExhodHRwOi8vd3d3LnVzZXJ0cnVzdC5jb20xHzAd
-BgNVBAMTFlVUTi1VU0VSRmlyc3QtSGFyZHdhcmUwHhcNOTkwNzA5MTgxMDQyWhcNMTkwNzA5MTgx
-OTIyWjCBlzELMAkGA1UEBhMCVVMxCzAJBgNVBAgTAlVUMRcwFQYDVQQHEw5TYWx0IExha2UgQ2l0
-eTEeMBwGA1UEChMVVGhlIFVTRVJUUlVTVCBOZXR3b3JrMSEwHwYDVQQLExhodHRwOi8vd3d3LnVz
-ZXJ0cnVzdC5jb20xHzAdBgNVBAMTFlVUTi1VU0VSRmlyc3QtSGFyZHdhcmUwggEiMA0GCSqGSIb3
-DQEBAQUAA4IBDwAwggEKAoIBAQCx98M4P7Sof885glFn0G2f0v9Y8+efK+wNiVSZuTiZFvfgIXlI
-wrthdBKWHTxqctU8EGc6Oe0rE81m65UJM6Rsl7HoxuzBdXmcRl6Nq9Bq/bkqVRcQVLMZ8Jr28bFd
-tqdt++BxF2uiiPsA3/4aMXcMmgF6sTLjKwEHOG7DpV4jvEWbe1DByTCP2+UretNb+zNAHqDVmBe8
-i4fDidNdoI6yqqr2jmmIBsX6iSHzCJ1pLgkzmykNRg+MzEk0sGlRvfkGzWitZky8PqxhvQqIDsjf
-Pe58BEydCl5rkdbux+0ojatNh4lz0G6k0B4WixThdkQDf2Os5M1JnMWS9KsyoUhbAgMBAAGjgbkw
-gbYwCwYDVR0PBAQDAgHGMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFKFyXyYbKJhDlV0HN9WF
-lp1L0sNFMEQGA1UdHwQ9MDswOaA3oDWGM2h0dHA6Ly9jcmwudXNlcnRydXN0LmNvbS9VVE4tVVNF
-UkZpcnN0LUhhcmR3YXJlLmNybDAxBgNVHSUEKjAoBggrBgEFBQcDAQYIKwYBBQUHAwUGCCsGAQUF
-BwMGBggrBgEFBQcDBzANBgkqhkiG9w0BAQUFAAOCAQEARxkP3nTGmZev/K0oXnWO6y1n7k57K9cM
-//bey1WiCuFMVGWTYGufEpytXoMs61quwOQt9ABjHbjAbPLPSbtNk28GpgoiskliCE7/yMgUsogW
-XecB5BKV5UU0s4tpvc+0hY91UZ59Ojg6FEgSxvunOxqNDYJAB+gECJChicsZUN/KHAG8HQQZexB2
-lzvukJDKxA4fFm517zP4029bHpbj4HR3dHuKom4t3XbWOTCC8KucUvIqx69JXn7HaOWCgchqJ/kn
-iCrVWFCVH/A7HFe7fRQ5YiuayZSSKqMiDP+JJn1fIytH1xUdqWqeUQ0qUZ6B+dQ7XnASfxAynB67
-nfhmqA==
------END CERTIFICATE-----
-
-UTN USERFirst Object Root CA
-============================
------BEGIN CERTIFICATE-----
-MIIEZjCCA06gAwIBAgIQRL4Mi1AAJLQR0zYt4LNfGzANBgkqhkiG9w0BAQUFADCBlTELMAkGA1UE
-BhMCVVMxCzAJBgNVBAgTAlVUMRcwFQYDVQQHEw5TYWx0IExha2UgQ2l0eTEeMBwGA1UEChMVVGhl
-IFVTRVJUUlVTVCBOZXR3b3JrMSEwHwYDVQQLExhodHRwOi8vd3d3LnVzZXJ0cnVzdC5jb20xHTAb
-BgNVBAMTFFVUTi1VU0VSRmlyc3QtT2JqZWN0MB4XDTk5MDcwOTE4MzEyMFoXDTE5MDcwOTE4NDAz
-NlowgZUxCzAJBgNVBAYTAlVTMQswCQYDVQQIEwJVVDEXMBUGA1UEBxMOU2FsdCBMYWtlIENpdHkx
-HjAcBgNVBAoTFVRoZSBVU0VSVFJVU1QgTmV0d29yazEhMB8GA1UECxMYaHR0cDovL3d3dy51c2Vy
-dHJ1c3QuY29tMR0wGwYDVQQDExRVVE4tVVNFUkZpcnN0LU9iamVjdDCCASIwDQYJKoZIhvcNAQEB
-BQADggEPADCCAQoCggEBAM6qgT+jo2F4qjEAVZURnicPHxzfOpuCaDDASmEd8S8O+r5596Uj71VR
-loTN2+O5bj4x2AogZ8f02b+U60cEPgLOKqJdhwQJ9jCdGIqXsqoc/EHSoTbL+z2RuufZcDX65OeQ
-w5ujm9M89RKZd7G3CeBo5hy485RjiGpq/gt2yb70IuRnuasaXnfBhQfdDWy/7gbHd2pBnqcP1/vu
-lBe3/IW+pKvEHDHd17bR5PDv3xaPslKT16HUiaEHLr/hARJCHhrh2JU022R5KP+6LhHC5ehbkkj7
-RwvCbNqtMoNB86XlQXD9ZZBt+vpRxPm9lisZBCzTbafc8H9vg2XiaquHhnUCAwEAAaOBrzCBrDAL
-BgNVHQ8EBAMCAcYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQU2u1kdBScFDyr3ZmpvVsoTYs8
-ydgwQgYDVR0fBDswOTA3oDWgM4YxaHR0cDovL2NybC51c2VydHJ1c3QuY29tL1VUTi1VU0VSRmly
-c3QtT2JqZWN0LmNybDApBgNVHSUEIjAgBggrBgEFBQcDAwYIKwYBBQUHAwgGCisGAQQBgjcKAwQw
-DQYJKoZIhvcNAQEFBQADggEBAAgfUrE3RHjb/c652pWWmKpVZIC1WkDdIaXFwfNfLEzIR1pp6ujw
-NTX00CXzyKakh0q9G7FzCL3Uw8q2NbtZhncxzaeAFK4T7/yxSPlrJSUtUbYsbUXBmMiKVl0+7kNO
-PmsnjtA6S4ULX9Ptaqd1y9Fahy85dRNacrACgZ++8A+EVCBibGnU4U3GDZlDAQ0Slox4nb9QorFE
-qmrPF3rPbw/U+CRVX/A0FklmPlBGyWNxODFiuGK581OtbLUrohKqGU8J2l7nk8aOFAj+8DCAGKCG
-hU3IfdeLA/5u1fedFqySLKAj5ZyRUh+U3xeUc8OzwcFxBSAAeL0TUh2oPs0AH8g=
------END CERTIFICATE-----
-
-Camerfirma Chambers of Commerce Root
-====================================
------BEGIN CERTIFICATE-----
-MIIEvTCCA6WgAwIBAgIBADANBgkqhkiG9w0BAQUFADB/MQswCQYDVQQGEwJFVTEnMCUGA1UEChMe
-QUMgQ2FtZXJmaXJtYSBTQSBDSUYgQTgyNzQzMjg3MSMwIQYDVQQLExpodHRwOi8vd3d3LmNoYW1i
-ZXJzaWduLm9yZzEiMCAGA1UEAxMZQ2hhbWJlcnMgb2YgQ29tbWVyY2UgUm9vdDAeFw0wMzA5MzAx
-NjEzNDNaFw0zNzA5MzAxNjEzNDRaMH8xCzAJBgNVBAYTAkVVMScwJQYDVQQKEx5BQyBDYW1lcmZp
-cm1hIFNBIENJRiBBODI3NDMyODcxIzAhBgNVBAsTGmh0dHA6Ly93d3cuY2hhbWJlcnNpZ24ub3Jn
-MSIwIAYDVQQDExlDaGFtYmVycyBvZiBDb21tZXJjZSBSb290MIIBIDANBgkqhkiG9w0BAQEFAAOC
-AQ0AMIIBCAKCAQEAtzZV5aVdGDDg2olUkfzIx1L4L1DZ77F1c2VHfRtbunXF/KGIJPov7coISjlU
-xFF6tdpg6jg8gbLL8bvZkSM/SAFwdakFKq0fcfPJVD0dBmpAPrMMhe5cG3nCYsS4No41XQEMIwRH
-NaqbYE6gZj3LJgqcQKH0XZi/caulAGgq7YN6D6IUtdQis4CwPAxaUWktWBiP7Zme8a7ileb2R6jW
-DA+wWFjbw2Y3npuRVDM30pQcakjJyfKl2qUMI/cjDpwyVV5xnIQFUZot/eZOKjRa3spAN2cMVCFV
-d9oKDMyXroDclDZK9D7ONhMeU+SsTjoF7Nuucpw4i9A5O4kKPnf+dQIBA6OCAUQwggFAMBIGA1Ud
-EwEB/wQIMAYBAf8CAQwwPAYDVR0fBDUwMzAxoC+gLYYraHR0cDovL2NybC5jaGFtYmVyc2lnbi5v
-cmcvY2hhbWJlcnNyb290LmNybDAdBgNVHQ4EFgQU45T1sU3p26EpW1eLTXYGduHRooowDgYDVR0P
-AQH/BAQDAgEGMBEGCWCGSAGG+EIBAQQEAwIABzAnBgNVHREEIDAegRxjaGFtYmVyc3Jvb3RAY2hh
-bWJlcnNpZ24ub3JnMCcGA1UdEgQgMB6BHGNoYW1iZXJzcm9vdEBjaGFtYmVyc2lnbi5vcmcwWAYD
-VR0gBFEwTzBNBgsrBgEEAYGHLgoDATA+MDwGCCsGAQUFBwIBFjBodHRwOi8vY3BzLmNoYW1iZXJz
-aWduLm9yZy9jcHMvY2hhbWJlcnNyb290Lmh0bWwwDQYJKoZIhvcNAQEFBQADggEBAAxBl8IahsAi
-fJ/7kPMa0QOx7xP5IV8EnNrJpY0nbJaHkb5BkAFyk+cefV/2icZdp0AJPaxJRUXcLo0waLIJuvvD
-L8y6C98/d3tGfToSJI6WjzwFCm/SlCgdbQzALogi1djPHRPH8EjX1wWnz8dHnjs8NMiAT9QUu/wN
-UPf6s+xCX6ndbcj0dc97wXImsQEcXCz9ek60AcUFV7nnPKoF2YjpB0ZBzu9Bga5Y34OirsrXdx/n
-ADydb47kMgkdTXg0eDQ8lJsm7U9xxhl6vSAiSFr+S30Dt+dYvsYyTnQeaN2oaFuzPu5ifdmA6Ap1
-erfutGWaIZDgqtCYvDi1czyL+Nw=
------END CERTIFICATE-----
-
-Camerfirma Global Chambersign Root
-==================================
------BEGIN CERTIFICATE-----
-MIIExTCCA62gAwIBAgIBADANBgkqhkiG9w0BAQUFADB9MQswCQYDVQQGEwJFVTEnMCUGA1UEChMe
-QUMgQ2FtZXJmaXJtYSBTQSBDSUYgQTgyNzQzMjg3MSMwIQYDVQQLExpodHRwOi8vd3d3LmNoYW1i
-ZXJzaWduLm9yZzEgMB4GA1UEAxMXR2xvYmFsIENoYW1iZXJzaWduIFJvb3QwHhcNMDMwOTMwMTYx
-NDE4WhcNMzcwOTMwMTYxNDE4WjB9MQswCQYDVQQGEwJFVTEnMCUGA1UEChMeQUMgQ2FtZXJmaXJt
-YSBTQSBDSUYgQTgyNzQzMjg3MSMwIQYDVQQLExpodHRwOi8vd3d3LmNoYW1iZXJzaWduLm9yZzEg
-MB4GA1UEAxMXR2xvYmFsIENoYW1iZXJzaWduIFJvb3QwggEgMA0GCSqGSIb3DQEBAQUAA4IBDQAw
-ggEIAoIBAQCicKLQn0KuWxfH2H3PFIP8T8mhtxOviteePgQKkotgVvq0Mi+ITaFgCPS3CU6gSS9J
-1tPfnZdan5QEcOw/Wdm3zGaLmFIoCQLfxS+EjXqXd7/sQJ0lcqu1PzKY+7e3/HKE5TWH+VX6ox8O
-by4o3Wmg2UIQxvi1RMLQQ3/bvOSiPGpVeAp3qdjqGTK3L/5cPxvusZjsyq16aUXjlg9V9ubtdepl
-6DJWk0aJqCWKZQbua795B9Dxt6/tLE2Su8CoX6dnfQTyFQhwrJLWfQTSM/tMtgsL+xrJxI0DqX5c
-8lCrEqWhz0hQpe/SyBoT+rB/sYIcd2oPX9wLlY/vQ37mRQklAgEDo4IBUDCCAUwwEgYDVR0TAQH/
-BAgwBgEB/wIBDDA/BgNVHR8EODA2MDSgMqAwhi5odHRwOi8vY3JsLmNoYW1iZXJzaWduLm9yZy9j
-aGFtYmVyc2lnbnJvb3QuY3JsMB0GA1UdDgQWBBRDnDafsJ4wTcbOX60Qq+UDpfqpFDAOBgNVHQ8B
-Af8EBAMCAQYwEQYJYIZIAYb4QgEBBAQDAgAHMCoGA1UdEQQjMCGBH2NoYW1iZXJzaWducm9vdEBj
-aGFtYmVyc2lnbi5vcmcwKgYDVR0SBCMwIYEfY2hhbWJlcnNpZ25yb290QGNoYW1iZXJzaWduLm9y
-ZzBbBgNVHSAEVDBSMFAGCysGAQQBgYcuCgEBMEEwPwYIKwYBBQUHAgEWM2h0dHA6Ly9jcHMuY2hh
-bWJlcnNpZ24ub3JnL2Nwcy9jaGFtYmVyc2lnbnJvb3QuaHRtbDANBgkqhkiG9w0BAQUFAAOCAQEA
-PDtwkfkEVCeR4e3t/mh/YV3lQWVPMvEYBZRqHN4fcNs+ezICNLUMbKGKfKX0j//U2K0X1S0E0T9Y
-gOKBWYi+wONGkyT+kL0mojAt6JcmVzWJdJYY9hXiryQZVgICsroPFOrGimbBhkVVi76SvpykBMdJ
-PJ7oKXqJ1/6v/2j1pReQvayZzKWGVwlnRtvWFsJG8eSpUPWP0ZIV018+xgBJOm5YstHRJw0lyDL4
-IBHNfTIzSJRUTN3cecQwn+uOuFW114hcxWokPbLTBQNRxgfvzBRydD1ucs4YKIxKoHflCStFREes
-t2d/AYoFWpO+ocH/+OcOZ6RHSXZddZAa9SaP8A==
------END CERTIFICATE-----
-
-NetLock Qualified (Class QA) Root
-=================================
------BEGIN CERTIFICATE-----
-MIIG0TCCBbmgAwIBAgIBezANBgkqhkiG9w0BAQUFADCByTELMAkGA1UEBhMCSFUxETAPBgNVBAcT
-CEJ1ZGFwZXN0MScwJQYDVQQKEx5OZXRMb2NrIEhhbG96YXRiaXp0b25zYWdpIEtmdC4xGjAYBgNV
-BAsTEVRhbnVzaXR2YW55a2lhZG9rMUIwQAYDVQQDEzlOZXRMb2NrIE1pbm9zaXRldHQgS296amVn
-eXpvaSAoQ2xhc3MgUUEpIFRhbnVzaXR2YW55a2lhZG8xHjAcBgkqhkiG9w0BCQEWD2luZm9AbmV0
-bG9jay5odTAeFw0wMzAzMzAwMTQ3MTFaFw0yMjEyMTUwMTQ3MTFaMIHJMQswCQYDVQQGEwJIVTER
-MA8GA1UEBxMIQnVkYXBlc3QxJzAlBgNVBAoTHk5ldExvY2sgSGFsb3phdGJpenRvbnNhZ2kgS2Z0
-LjEaMBgGA1UECxMRVGFudXNpdHZhbnlraWFkb2sxQjBABgNVBAMTOU5ldExvY2sgTWlub3NpdGV0
-dCBLb3pqZWd5em9pIChDbGFzcyBRQSkgVGFudXNpdHZhbnlraWFkbzEeMBwGCSqGSIb3DQEJARYP
-aW5mb0BuZXRsb2NrLmh1MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAx1Ilstg91IRV
-CacbvWy5FPSKAtt2/GoqeKvld/Bu4IwjZ9ulZJm53QE+b+8tmjwi8F3JV6BVQX/yQ15YglMxZc4e
-8ia6AFQer7C8HORSjKAyr7c3sVNnaHRnUPYtLmTeriZ539+Zhqurf4XsoPuAzPS4DB6TRWO53Lhb
-m+1bOdRfYrCnjnxmOCyqsQhjF2d9zL2z8cM/z1A57dEZgxXbhxInlrfa6uWdvLrqOU+L73Sa58XQ
-0uqGURzk/mQIKAR5BevKxXEOC++r6uwSEaEYBTJp0QwsGj0lmT+1fMptsK6ZmfoIYOcZwvK9UdPM
-0wKswREMgM6r3JSda6M5UzrWhQIDAMV9o4ICwDCCArwwEgYDVR0TAQH/BAgwBgEB/wIBBDAOBgNV
-HQ8BAf8EBAMCAQYwggJ1BglghkgBhvhCAQ0EggJmFoICYkZJR1lFTEVNISBFemVuIHRhbnVzaXR2
-YW55IGEgTmV0TG9jayBLZnQuIE1pbm9zaXRldHQgU3pvbGdhbHRhdGFzaSBTemFiYWx5emF0YWJh
-biBsZWlydCBlbGphcmFzb2sgYWxhcGphbiBrZXN6dWx0LiBBIG1pbm9zaXRldHQgZWxla3Ryb25p
-a3VzIGFsYWlyYXMgam9naGF0YXMgZXJ2ZW55ZXN1bGVzZW5laywgdmFsYW1pbnQgZWxmb2dhZGFz
-YW5hayBmZWx0ZXRlbGUgYSBNaW5vc2l0ZXR0IFN6b2xnYWx0YXRhc2kgU3phYmFseXphdGJhbiwg
-YXogQWx0YWxhbm9zIFN6ZXJ6b2Rlc2kgRmVsdGV0ZWxla2JlbiBlbG9pcnQgZWxsZW5vcnplc2kg
-ZWxqYXJhcyBtZWd0ZXRlbGUuIEEgZG9rdW1lbnR1bW9rIG1lZ3RhbGFsaGF0b2sgYSBodHRwczov
-L3d3dy5uZXRsb2NrLmh1L2RvY3MvIGNpbWVuIHZhZ3kga2VyaGV0b2sgYXogaW5mb0BuZXRsb2Nr
-Lm5ldCBlLW1haWwgY2ltZW4uIFdBUk5JTkchIFRoZSBpc3N1YW5jZSBhbmQgdGhlIHVzZSBvZiB0
-aGlzIGNlcnRpZmljYXRlIGFyZSBzdWJqZWN0IHRvIHRoZSBOZXRMb2NrIFF1YWxpZmllZCBDUFMg
-YXZhaWxhYmxlIGF0IGh0dHBzOi8vd3d3Lm5ldGxvY2suaHUvZG9jcy8gb3IgYnkgZS1tYWlsIGF0
-IGluZm9AbmV0bG9jay5uZXQwHQYDVR0OBBYEFAlqYhaSsFq7VQ7LdTI6MuWyIckoMA0GCSqGSIb3
-DQEBBQUAA4IBAQCRalCc23iBmz+LQuM7/KbD7kPgz/PigDVJRXYC4uMvBcXxKufAQTPGtpvQMznN
-wNuhrWw3AkxYQTvyl5LGSKjN5Yo5iWH5Upfpvfb5lHTocQ68d4bDBsxafEp+NFAwLvt/MpqNPfMg
-W/hqyobzMUwsWYACff44yTB1HLdV47yfuqhthCgFdbOLDcCRVCHnpgu0mfVRQdzNo0ci2ccBgcTc
-R08m6h/t280NmPSjnLRzMkqWmf68f8glWPhY83ZmiVSkpj7EUFy6iRiCdUgh0k8T6GB+B3bbELVR
-5qq5aKrN9p2QdRLqOBrKROi3macqaJVmlaut74nLYKkGEsaUR+ko
------END CERTIFICATE-----
-
-NetLock Notary (Class A) Root
-=============================
------BEGIN CERTIFICATE-----
-MIIGfTCCBWWgAwIBAgICAQMwDQYJKoZIhvcNAQEEBQAwga8xCzAJBgNVBAYTAkhVMRAwDgYDVQQI
-EwdIdW5nYXJ5MREwDwYDVQQHEwhCdWRhcGVzdDEnMCUGA1UEChMeTmV0TG9jayBIYWxvemF0Yml6
-dG9uc2FnaSBLZnQuMRowGAYDVQQLExFUYW51c2l0dmFueWtpYWRvazE2MDQGA1UEAxMtTmV0TG9j
-ayBLb3pqZWd5em9pIChDbGFzcyBBKSBUYW51c2l0dmFueWtpYWRvMB4XDTk5MDIyNDIzMTQ0N1oX
-DTE5MDIxOTIzMTQ0N1owga8xCzAJBgNVBAYTAkhVMRAwDgYDVQQIEwdIdW5nYXJ5MREwDwYDVQQH
-EwhCdWRhcGVzdDEnMCUGA1UEChMeTmV0TG9jayBIYWxvemF0Yml6dG9uc2FnaSBLZnQuMRowGAYD
-VQQLExFUYW51c2l0dmFueWtpYWRvazE2MDQGA1UEAxMtTmV0TG9jayBLb3pqZWd5em9pIChDbGFz
-cyBBKSBUYW51c2l0dmFueWtpYWRvMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAvHSM
-D7tM9DceqQWC2ObhbHDqeLVu0ThEDaiDzl3S1tWBxdRL51uUcCbbO51qTGL3cfNk1mE7PetzozfZ
-z+qMkjvN9wfcZnSX9EUi3fRc4L9t875lM+QVOr/bmJBVOMTtplVjC7B4BPTjbsE/jvxReB+SnoPC
-/tmwqcm8WgD/qaiYdPv2LD4VOQ22BFWoDpggQrOxJa1+mm9dU7GrDPzr4PN6s6iz/0b2Y6LYOph7
-tqyF/7AlT3Rj5xMHpQqPBffAZG9+pyeAlt7ULoZgx2srXnN7F+eRP2QM2EsiNCubMvJIH5+hCoR6
-4sKtlz2O1cH5VqNQ6ca0+pii7pXmKgOM3wIDAQABo4ICnzCCApswDgYDVR0PAQH/BAQDAgAGMBIG
-A1UdEwEB/wQIMAYBAf8CAQQwEQYJYIZIAYb4QgEBBAQDAgAHMIICYAYJYIZIAYb4QgENBIICURaC
-Ak1GSUdZRUxFTSEgRXplbiB0YW51c2l0dmFueSBhIE5ldExvY2sgS2Z0LiBBbHRhbGFub3MgU3pv
-bGdhbHRhdGFzaSBGZWx0ZXRlbGVpYmVuIGxlaXJ0IGVsamFyYXNvayBhbGFwamFuIGtlc3p1bHQu
-IEEgaGl0ZWxlc2l0ZXMgZm9seWFtYXRhdCBhIE5ldExvY2sgS2Z0LiB0ZXJtZWtmZWxlbG9zc2Vn
-LWJpenRvc2l0YXNhIHZlZGkuIEEgZGlnaXRhbGlzIGFsYWlyYXMgZWxmb2dhZGFzYW5hayBmZWx0
-ZXRlbGUgYXogZWxvaXJ0IGVsbGVub3J6ZXNpIGVsamFyYXMgbWVndGV0ZWxlLiBBeiBlbGphcmFz
-IGxlaXJhc2EgbWVndGFsYWxoYXRvIGEgTmV0TG9jayBLZnQuIEludGVybmV0IGhvbmxhcGphbiBh
-IGh0dHBzOi8vd3d3Lm5ldGxvY2submV0L2RvY3MgY2ltZW4gdmFneSBrZXJoZXRvIGF6IGVsbGVu
-b3J6ZXNAbmV0bG9jay5uZXQgZS1tYWlsIGNpbWVuLiBJTVBPUlRBTlQhIFRoZSBpc3N1YW5jZSBh
-bmQgdGhlIHVzZSBvZiB0aGlzIGNlcnRpZmljYXRlIGlzIHN1YmplY3QgdG8gdGhlIE5ldExvY2sg
-Q1BTIGF2YWlsYWJsZSBhdCBodHRwczovL3d3dy5uZXRsb2NrLm5ldC9kb2NzIG9yIGJ5IGUtbWFp
-bCBhdCBjcHNAbmV0bG9jay5uZXQuMA0GCSqGSIb3DQEBBAUAA4IBAQBIJEb3ulZv+sgoA0BO5TE5
-ayZrU3/b39/zcT0mwBQOxmd7I6gMc90Bu8bKbjc5VdXHjFYgDigKDtIqpLBJUsY4B/6+CgmM0ZjP
-ytoUMaFP0jn8DxEsQ8Pdq5PHVT5HfBgaANzze9jyf1JsIPQLX2lS9O74silg6+NJMSEN1rUQQeJB
-CWziGppWS3cC9qCbmieH6FUpccKQn0V4GuEVZD3QDtigdp+uxdAu6tYPVuxkf1qbFFgBJ34TUMdr
-KuZoPL9coAob4Q566eKAw+np9v1sEZ7Q5SgnK1QyQhSCdeZK8CtmdWOMovsEPoMOmzbwGOQmIMOM
-8CgHrTwXZoi1/baI
------END CERTIFICATE-----
-
-NetLock Business (Class B) Root
-===============================
------BEGIN CERTIFICATE-----
-MIIFSzCCBLSgAwIBAgIBaTANBgkqhkiG9w0BAQQFADCBmTELMAkGA1UEBhMCSFUxETAPBgNVBAcT
-CEJ1ZGFwZXN0MScwJQYDVQQKEx5OZXRMb2NrIEhhbG96YXRiaXp0b25zYWdpIEtmdC4xGjAYBgNV
-BAsTEVRhbnVzaXR2YW55a2lhZG9rMTIwMAYDVQQDEylOZXRMb2NrIFV6bGV0aSAoQ2xhc3MgQikg
-VGFudXNpdHZhbnlraWFkbzAeFw05OTAyMjUxNDEwMjJaFw0xOTAyMjAxNDEwMjJaMIGZMQswCQYD
-VQQGEwJIVTERMA8GA1UEBxMIQnVkYXBlc3QxJzAlBgNVBAoTHk5ldExvY2sgSGFsb3phdGJpenRv
-bnNhZ2kgS2Z0LjEaMBgGA1UECxMRVGFudXNpdHZhbnlraWFkb2sxMjAwBgNVBAMTKU5ldExvY2sg
-VXpsZXRpIChDbGFzcyBCKSBUYW51c2l0dmFueWtpYWRvMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCB
-iQKBgQCx6gTsIKAjwo84YM/HRrPVG/77uZmeBNwcf4xKgZjupNTKihe5In+DCnVMm8Bp2GQ5o+2S
-o/1bXHQawEfKOml2mrriRBf8TKPV/riXiK+IA4kfpPIEPsgHC+b5sy96YhQJRhTKZPWLgLViqNhr
-1nGTLbO/CVRY7QbrqHvcQ7GhaQIDAQABo4ICnzCCApswEgYDVR0TAQH/BAgwBgEB/wIBBDAOBgNV
-HQ8BAf8EBAMCAAYwEQYJYIZIAYb4QgEBBAQDAgAHMIICYAYJYIZIAYb4QgENBIICURaCAk1GSUdZ
-RUxFTSEgRXplbiB0YW51c2l0dmFueSBhIE5ldExvY2sgS2Z0LiBBbHRhbGFub3MgU3pvbGdhbHRh
-dGFzaSBGZWx0ZXRlbGVpYmVuIGxlaXJ0IGVsamFyYXNvayBhbGFwamFuIGtlc3p1bHQuIEEgaGl0
-ZWxlc2l0ZXMgZm9seWFtYXRhdCBhIE5ldExvY2sgS2Z0LiB0ZXJtZWtmZWxlbG9zc2VnLWJpenRv
-c2l0YXNhIHZlZGkuIEEgZGlnaXRhbGlzIGFsYWlyYXMgZWxmb2dhZGFzYW5hayBmZWx0ZXRlbGUg
-YXogZWxvaXJ0IGVsbGVub3J6ZXNpIGVsamFyYXMgbWVndGV0ZWxlLiBBeiBlbGphcmFzIGxlaXJh
-c2EgbWVndGFsYWxoYXRvIGEgTmV0TG9jayBLZnQuIEludGVybmV0IGhvbmxhcGphbiBhIGh0dHBz
-Oi8vd3d3Lm5ldGxvY2submV0L2RvY3MgY2ltZW4gdmFneSBrZXJoZXRvIGF6IGVsbGVub3J6ZXNA
-bmV0bG9jay5uZXQgZS1tYWlsIGNpbWVuLiBJTVBPUlRBTlQhIFRoZSBpc3N1YW5jZSBhbmQgdGhl
-IHVzZSBvZiB0aGlzIGNlcnRpZmljYXRlIGlzIHN1YmplY3QgdG8gdGhlIE5ldExvY2sgQ1BTIGF2
-YWlsYWJsZSBhdCBodHRwczovL3d3dy5uZXRsb2NrLm5ldC9kb2NzIG9yIGJ5IGUtbWFpbCBhdCBj
-cHNAbmV0bG9jay5uZXQuMA0GCSqGSIb3DQEBBAUAA4GBAATbrowXr/gOkDFOzT4JwG06sPgzTEdM
-43WIEJessDgVkcYplswhwG08pXTP2IKlOcNl40JwuyKQ433bNXbhoLXan3BukxowOR0w2y7jfLKR
-stE3Kfq51hdcR0/jHTjrn9V7lagonhVK0dHQKwCXoOKSNitjrFgBazMpUIaD8QFI
------END CERTIFICATE-----
-
-NetLock Express (Class C) Root
-==============================
------BEGIN CERTIFICATE-----
-MIIFTzCCBLigAwIBAgIBaDANBgkqhkiG9w0BAQQFADCBmzELMAkGA1UEBhMCSFUxETAPBgNVBAcT
-CEJ1ZGFwZXN0MScwJQYDVQQKEx5OZXRMb2NrIEhhbG96YXRiaXp0b25zYWdpIEtmdC4xGjAYBgNV
-BAsTEVRhbnVzaXR2YW55a2lhZG9rMTQwMgYDVQQDEytOZXRMb2NrIEV4cHJlc3N6IChDbGFzcyBD
-KSBUYW51c2l0dmFueWtpYWRvMB4XDTk5MDIyNTE0MDgxMVoXDTE5MDIyMDE0MDgxMVowgZsxCzAJ
-BgNVBAYTAkhVMREwDwYDVQQHEwhCdWRhcGVzdDEnMCUGA1UEChMeTmV0TG9jayBIYWxvemF0Yml6
-dG9uc2FnaSBLZnQuMRowGAYDVQQLExFUYW51c2l0dmFueWtpYWRvazE0MDIGA1UEAxMrTmV0TG9j
-ayBFeHByZXNzeiAoQ2xhc3MgQykgVGFudXNpdHZhbnlraWFkbzCBnzANBgkqhkiG9w0BAQEFAAOB
-jQAwgYkCgYEA6+ywbGGKIyWvYCDj2Z/8kwvbXY2wobNAOoLO/XXgeDIDhlqGlZHtU/qdQPzm6N3Z
-W3oDvV3zOwzDUXmbrVWg6dADEK8KuhRC2VImESLH0iDMgqSaqf64gXadarfSNnU+sYYJ9m5tfk63
-euyucYT2BDMIJTLrdKwWRMbkQJMdf60CAwEAAaOCAp8wggKbMBIGA1UdEwEB/wQIMAYBAf8CAQQw
-DgYDVR0PAQH/BAQDAgAGMBEGCWCGSAGG+EIBAQQEAwIABzCCAmAGCWCGSAGG+EIBDQSCAlEWggJN
-RklHWUVMRU0hIEV6ZW4gdGFudXNpdHZhbnkgYSBOZXRMb2NrIEtmdC4gQWx0YWxhbm9zIFN6b2xn
-YWx0YXRhc2kgRmVsdGV0ZWxlaWJlbiBsZWlydCBlbGphcmFzb2sgYWxhcGphbiBrZXN6dWx0LiBB
-IGhpdGVsZXNpdGVzIGZvbHlhbWF0YXQgYSBOZXRMb2NrIEtmdC4gdGVybWVrZmVsZWxvc3NlZy1i
-aXp0b3NpdGFzYSB2ZWRpLiBBIGRpZ2l0YWxpcyBhbGFpcmFzIGVsZm9nYWRhc2FuYWsgZmVsdGV0
-ZWxlIGF6IGVsb2lydCBlbGxlbm9yemVzaSBlbGphcmFzIG1lZ3RldGVsZS4gQXogZWxqYXJhcyBs
-ZWlyYXNhIG1lZ3RhbGFsaGF0byBhIE5ldExvY2sgS2Z0LiBJbnRlcm5ldCBob25sYXBqYW4gYSBo
-dHRwczovL3d3dy5uZXRsb2NrLm5ldC9kb2NzIGNpbWVuIHZhZ3kga2VyaGV0byBheiBlbGxlbm9y
-emVzQG5ldGxvY2submV0IGUtbWFpbCBjaW1lbi4gSU1QT1JUQU5UISBUaGUgaXNzdWFuY2UgYW5k
-IHRoZSB1c2Ugb2YgdGhpcyBjZXJ0aWZpY2F0ZSBpcyBzdWJqZWN0IHRvIHRoZSBOZXRMb2NrIENQ
-UyBhdmFpbGFibGUgYXQgaHR0cHM6Ly93d3cubmV0bG9jay5uZXQvZG9jcyBvciBieSBlLW1haWwg
-YXQgY3BzQG5ldGxvY2submV0LjANBgkqhkiG9w0BAQQFAAOBgQAQrX/XDDKACtiG8XmYta3UzbM2
-xJZIwVzNmtkFLp++UOv0JhQQLdRmF/iewSf98e3ke0ugbLWrmldwpu2gpO0u9f38vf5NNwgMvOOW
-gyL1SRt/Syu0VMGAfJlOHdCM7tCs5ZL6dVb+ZKATj7i4Fp1hBWeAyNDYpQcCNJgEjTME1A==
------END CERTIFICATE-----
-
-XRamp Global CA Root
-====================
------BEGIN CERTIFICATE-----
-MIIEMDCCAxigAwIBAgIQUJRs7Bjq1ZxN1ZfvdY+grTANBgkqhkiG9w0BAQUFADCBgjELMAkGA1UE
-BhMCVVMxHjAcBgNVBAsTFXd3dy54cmFtcHNlY3VyaXR5LmNvbTEkMCIGA1UEChMbWFJhbXAgU2Vj
-dXJpdHkgU2VydmljZXMgSW5jMS0wKwYDVQQDEyRYUmFtcCBHbG9iYWwgQ2VydGlmaWNhdGlvbiBB
-dXRob3JpdHkwHhcNMDQxMTAxMTcxNDA0WhcNMzUwMTAxMDUzNzE5WjCBgjELMAkGA1UEBhMCVVMx
-HjAcBgNVBAsTFXd3dy54cmFtcHNlY3VyaXR5LmNvbTEkMCIGA1UEChMbWFJhbXAgU2VjdXJpdHkg
-U2VydmljZXMgSW5jMS0wKwYDVQQDEyRYUmFtcCBHbG9iYWwgQ2VydGlmaWNhdGlvbiBBdXRob3Jp
-dHkwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCYJB69FbS638eMpSe2OAtp87ZOqCwu
-IR1cRN8hXX4jdP5efrRKt6atH67gBhbim1vZZ3RrXYCPKZ2GG9mcDZhtdhAoWORlsH9KmHmf4MMx
-foArtYzAQDsRhtDLooY2YKTVMIJt2W7QDxIEM5dfT2Fa8OT5kavnHTu86M/0ay00fOJIYRyO82FE
-zG+gSqmUsE3a56k0enI4qEHMPJQRfevIpoy3hsvKMzvZPTeL+3o+hiznc9cKV6xkmxnr9A8ECIqs
-AxcZZPRaJSKNNCyy9mgdEm3Tih4U2sSPpuIjhdV6Db1q4Ons7Be7QhtnqiXtRYMh/MHJfNViPvry
-xS3T/dRlAgMBAAGjgZ8wgZwwEwYJKwYBBAGCNxQCBAYeBABDAEEwCwYDVR0PBAQDAgGGMA8GA1Ud
-EwEB/wQFMAMBAf8wHQYDVR0OBBYEFMZPoj0GY4QJnM5i5ASsjVy16bYbMDYGA1UdHwQvMC0wK6Ap
-oCeGJWh0dHA6Ly9jcmwueHJhbXBzZWN1cml0eS5jb20vWEdDQS5jcmwwEAYJKwYBBAGCNxUBBAMC
-AQEwDQYJKoZIhvcNAQEFBQADggEBAJEVOQMBG2f7Shz5CmBbodpNl2L5JFMn14JkTpAuw0kbK5rc
-/Kh4ZzXxHfARvbdI4xD2Dd8/0sm2qlWkSLoC295ZLhVbO50WfUfXN+pfTXYSNrsf16GBBEYgoyxt
-qZ4Bfj8pzgCT3/3JknOJiWSe5yvkHJEs0rnOfc5vMZnT5r7SHpDwCRR5XCOrTdLaIR9NmXmd4c8n
-nxCbHIgNsIpkQTG4DmyQJKSbXHGPurt+HBvbaoAPIbzp26a3QPSyi6mx5O+aGtA9aZnuqCij4Tyz
-8LIRnM98QObd50N9otg6tamN8jSZxNQQ4Qb9CYQQO+7ETPTsJ3xCwnR8gooJybQDJbw=
------END CERTIFICATE-----
-
-Go Daddy Class 2 CA
-===================
------BEGIN CERTIFICATE-----
-MIIEADCCAuigAwIBAgIBADANBgkqhkiG9w0BAQUFADBjMQswCQYDVQQGEwJVUzEhMB8GA1UEChMY
-VGhlIEdvIERhZGR5IEdyb3VwLCBJbmMuMTEwLwYDVQQLEyhHbyBEYWRkeSBDbGFzcyAyIENlcnRp
-ZmljYXRpb24gQXV0aG9yaXR5MB4XDTA0MDYyOTE3MDYyMFoXDTM0MDYyOTE3MDYyMFowYzELMAkG
-A1UEBhMCVVMxITAfBgNVBAoTGFRoZSBHbyBEYWRkeSBHcm91cCwgSW5jLjExMC8GA1UECxMoR28g
-RGFkZHkgQ2xhc3MgMiBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTCCASAwDQYJKoZIhvcNAQEBBQAD
-ggENADCCAQgCggEBAN6d1+pXGEmhW+vXX0iG6r7d/+TvZxz0ZWizV3GgXne77ZtJ6XCAPVYYYwhv
-2vLM0D9/AlQiVBDYsoHUwHU9S3/Hd8M+eKsaA7Ugay9qK7HFiH7Eux6wwdhFJ2+qN1j3hybX2C32
-qRe3H3I2TqYXP2WYktsqbl2i/ojgC95/5Y0V4evLOtXiEqITLdiOr18SPaAIBQi2XKVlOARFmR6j
-YGB0xUGlcmIbYsUfb18aQr4CUWWoriMYavx4A6lNf4DD+qta/KFApMoZFv6yyO9ecw3ud72a9nmY
-vLEHZ6IVDd2gWMZEewo+YihfukEHU1jPEX44dMX4/7VpkI+EdOqXG68CAQOjgcAwgb0wHQYDVR0O
-BBYEFNLEsNKR1EwRcbNhyz2h/t2oatTjMIGNBgNVHSMEgYUwgYKAFNLEsNKR1EwRcbNhyz2h/t2o
-atTjoWekZTBjMQswCQYDVQQGEwJVUzEhMB8GA1UEChMYVGhlIEdvIERhZGR5IEdyb3VwLCBJbmMu
-MTEwLwYDVQQLEyhHbyBEYWRkeSBDbGFzcyAyIENlcnRpZmljYXRpb24gQXV0aG9yaXR5ggEAMAwG
-A1UdEwQFMAMBAf8wDQYJKoZIhvcNAQEFBQADggEBADJL87LKPpH8EsahB4yOd6AzBhRckB4Y9wim
-PQoZ+YeAEW5p5JYXMP80kWNyOO7MHAGjHZQopDH2esRU1/blMVgDoszOYtuURXO1v0XJJLXVggKt
-I3lpjbi2Tc7PTMozI+gciKqdi0FuFskg5YmezTvacPd+mSYgFFQlq25zheabIZ0KbIIOqPjCDPoQ
-HmyW74cNxA9hi63ugyuV+I6ShHI56yDqg+2DzZduCLzrTia2cyvk0/ZM/iZx4mERdEr/VxqHD3VI
-Ls9RaRegAhJhldXRQLIQTO7ErBBDpqWeCtWVYpoNz4iCxTIM5CufReYNnyicsbkqWletNw+vHX/b
-vZ8=
------END CERTIFICATE-----
-
-Starfield Class 2 CA
-====================
------BEGIN CERTIFICATE-----
-MIIEDzCCAvegAwIBAgIBADANBgkqhkiG9w0BAQUFADBoMQswCQYDVQQGEwJVUzElMCMGA1UEChMc
-U3RhcmZpZWxkIFRlY2hub2xvZ2llcywgSW5jLjEyMDAGA1UECxMpU3RhcmZpZWxkIENsYXNzIDIg
-Q2VydGlmaWNhdGlvbiBBdXRob3JpdHkwHhcNMDQwNjI5MTczOTE2WhcNMzQwNjI5MTczOTE2WjBo
-MQswCQYDVQQGEwJVUzElMCMGA1UEChMcU3RhcmZpZWxkIFRlY2hub2xvZ2llcywgSW5jLjEyMDAG
-A1UECxMpU3RhcmZpZWxkIENsYXNzIDIgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwggEgMA0GCSqG
-SIb3DQEBAQUAA4IBDQAwggEIAoIBAQC3Msj+6XGmBIWtDBFk385N78gDGIc/oav7PKaf8MOh2tTY
-bitTkPskpD6E8J7oX+zlJ0T1KKY/e97gKvDIr1MvnsoFAZMej2YcOadN+lq2cwQlZut3f+dZxkqZ
-JRRU6ybH838Z1TBwj6+wRir/resp7defqgSHo9T5iaU0X9tDkYI22WY8sbi5gv2cOj4QyDvvBmVm
-epsZGD3/cVE8MC5fvj13c7JdBmzDI1aaK4UmkhynArPkPw2vCHmCuDY96pzTNbO8acr1zJ3o/WSN
-F4Azbl5KXZnJHoe0nRrA1W4TNSNe35tfPe/W93bC6j67eA0cQmdrBNj41tpvi/JEoAGrAgEDo4HF
-MIHCMB0GA1UdDgQWBBS/X7fRzt0fhvRbVazc1xDCDqmI5zCBkgYDVR0jBIGKMIGHgBS/X7fRzt0f
-hvRbVazc1xDCDqmI56FspGowaDELMAkGA1UEBhMCVVMxJTAjBgNVBAoTHFN0YXJmaWVsZCBUZWNo
-bm9sb2dpZXMsIEluYy4xMjAwBgNVBAsTKVN0YXJmaWVsZCBDbGFzcyAyIENlcnRpZmljYXRpb24g
-QXV0aG9yaXR5ggEAMAwGA1UdEwQFMAMBAf8wDQYJKoZIhvcNAQEFBQADggEBAAWdP4id0ckaVaGs
-afPzWdqbAYcaT1epoXkJKtv3L7IezMdeatiDh6GX70k1PncGQVhiv45YuApnP+yz3SFmH8lU+nLM
-PUxA2IGvd56Deruix/U0F47ZEUD0/CwqTRV/p2JdLiXTAAsgGh1o+Re49L2L7ShZ3U0WixeDyLJl
-xy16paq8U4Zt3VekyvggQQto8PT7dL5WXXp59fkdheMtlb71cZBDzI0fmgAKhynpVSJYACPq4xJD
-KVtHCN2MQWplBqjlIapBtJUhlbl90TSrE9atvNziPTnNvT51cKEYWQPJIrSPnNVeKtelttQKbfi3
-QBFGmh95DmK/D5fs4C8fF5Q=
------END CERTIFICATE-----
-
-StartCom Ltd.
-=============
------BEGIN CERTIFICATE-----
-MIIFFjCCBH+gAwIBAgIBADANBgkqhkiG9w0BAQQFADCBsDELMAkGA1UEBhMCSUwxDzANBgNVBAgT
-BklzcmFlbDEOMAwGA1UEBxMFRWlsYXQxFjAUBgNVBAoTDVN0YXJ0Q29tIEx0ZC4xGjAYBgNVBAsT
-EUNBIEF1dGhvcml0eSBEZXAuMSkwJwYDVQQDEyBGcmVlIFNTTCBDZXJ0aWZpY2F0aW9uIEF1dGhv
-cml0eTEhMB8GCSqGSIb3DQEJARYSYWRtaW5Ac3RhcnRjb20ub3JnMB4XDTA1MDMxNzE3Mzc0OFoX
-DTM1MDMxMDE3Mzc0OFowgbAxCzAJBgNVBAYTAklMMQ8wDQYDVQQIEwZJc3JhZWwxDjAMBgNVBAcT
-BUVpbGF0MRYwFAYDVQQKEw1TdGFydENvbSBMdGQuMRowGAYDVQQLExFDQSBBdXRob3JpdHkgRGVw
-LjEpMCcGA1UEAxMgRnJlZSBTU0wgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkxITAfBgkqhkiG9w0B
-CQEWEmFkbWluQHN0YXJ0Y29tLm9yZzCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEA7YRgACOe
-yEpRKSfeOqE5tWmrCbIvNP1h3D3TsM+x18LEwrHkllbEvqoUDufMOlDIOmKdw6OsWXuO7lUaHEe+
-o5c5s7XvIywI6Nivcy+5yYPo7QAPyHWlLzRMGOh2iCNJitu27Wjaw7ViKUylS7eYtAkUEKD4/mJ2
-IhULpNYILzUCAwEAAaOCAjwwggI4MA8GA1UdEwEB/wQFMAMBAf8wCwYDVR0PBAQDAgHmMB0GA1Ud
-DgQWBBQcicOWzL3+MtUNjIExtpidjShkjTCB3QYDVR0jBIHVMIHSgBQcicOWzL3+MtUNjIExtpid
-jShkjaGBtqSBszCBsDELMAkGA1UEBhMCSUwxDzANBgNVBAgTBklzcmFlbDEOMAwGA1UEBxMFRWls
-YXQxFjAUBgNVBAoTDVN0YXJ0Q29tIEx0ZC4xGjAYBgNVBAsTEUNBIEF1dGhvcml0eSBEZXAuMSkw
-JwYDVQQDEyBGcmVlIFNTTCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTEhMB8GCSqGSIb3DQEJARYS
-YWRtaW5Ac3RhcnRjb20ub3JnggEAMB0GA1UdEQQWMBSBEmFkbWluQHN0YXJ0Y29tLm9yZzAdBgNV
-HRIEFjAUgRJhZG1pbkBzdGFydGNvbS5vcmcwEQYJYIZIAYb4QgEBBAQDAgAHMC8GCWCGSAGG+EIB
-DQQiFiBGcmVlIFNTTCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAyBglghkgBhvhCAQQEJRYjaHR0
-cDovL2NlcnQuc3RhcnRjb20ub3JnL2NhLWNybC5jcmwwKAYJYIZIAYb4QgECBBsWGWh0dHA6Ly9j
-ZXJ0LnN0YXJ0Y29tLm9yZy8wOQYJYIZIAYb4QgEIBCwWKmh0dHA6Ly9jZXJ0LnN0YXJ0Y29tLm9y
-Zy9pbmRleC5waHA/YXBwPTExMTANBgkqhkiG9w0BAQQFAAOBgQBscSXhnjSRIe/bbL0BCFaPiNhB
-OlP1ct8nV0t2hPdopP7rPwl+KLhX6h/BquL/lp9JmeaylXOWxkjHXo0Hclb4g4+fd68p00UOpO6w
-NnQt8M2YI3s3S9r+UZjEHjQ8iP2ZO1CnwYszx8JSFhKVU2Ui77qLzmLbcCOxgN8aIDjnfg==
------END CERTIFICATE-----
-
-StartCom Certification Authority
-================================
------BEGIN CERTIFICATE-----
-MIIHyTCCBbGgAwIBAgIBATANBgkqhkiG9w0BAQUFADB9MQswCQYDVQQGEwJJTDEWMBQGA1UEChMN
-U3RhcnRDb20gTHRkLjErMCkGA1UECxMiU2VjdXJlIERpZ2l0YWwgQ2VydGlmaWNhdGUgU2lnbmlu
-ZzEpMCcGA1UEAxMgU3RhcnRDb20gQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwHhcNMDYwOTE3MTk0
-NjM2WhcNMzYwOTE3MTk0NjM2WjB9MQswCQYDVQQGEwJJTDEWMBQGA1UEChMNU3RhcnRDb20gTHRk
-LjErMCkGA1UECxMiU2VjdXJlIERpZ2l0YWwgQ2VydGlmaWNhdGUgU2lnbmluZzEpMCcGA1UEAxMg
-U3RhcnRDb20gQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAw
-ggIKAoICAQDBiNsJvGxGfHiflXu1M5DycmLWwTYgIiRezul38kMKogZkpMyONvg45iPwbm2xPN1y
-o4UcodM9tDMr0y+v/uqwQVlntsQGfQqedIXWeUyAN3rfOQVSWff0G0ZDpNKFhdLDcfN1YjS6LIp/
-Ho/u7TTQEceWzVI9ujPW3U3eCztKS5/CJi/6tRYccjV3yjxd5srhJosaNnZcAdt0FCX+7bWgiA/d
-eMotHweXMAEtcnn6RtYTKqi5pquDSR3l8u/d5AGOGAqPY1MWhWKpDhk6zLVmpsJrdAfkK+F2PrRt
-2PZE4XNiHzvEvqBTViVsUQn3qqvKv3b9bZvzndu/PWa8DFaqr5hIlTpL36dYUNk4dalb6kMMAv+Z
-6+hsTXBbKWWc3apdzK8BMewM69KN6Oqce+Zu9ydmDBpI125C4z/eIT574Q1w+2OqqGwaVLRcJXrJ
-osmLFqa7LH4XXgVNWG4SHQHuEhANxjJ/GP/89PrNbpHoNkm+Gkhpi8KWTRoSsmkXwQqQ1vp5Iki/
-untp+HDH+no32NgN0nZPV/+Qt+OR0t3vwmC3Zzrd/qqc8NSLf3Iizsafl7b4r4qgEKjZ+xjGtrVc
-UjyJthkqcwEKDwOzEmDyei+B26Nu/yYwl/WL3YlXtq09s68rxbd2AvCl1iuahhQqcvbjM4xdCUsT
-37uMdBNSSwIDAQABo4ICUjCCAk4wDAYDVR0TBAUwAwEB/zALBgNVHQ8EBAMCAa4wHQYDVR0OBBYE
-FE4L7xqkQFulF2mHMMo0aEPQQa7yMGQGA1UdHwRdMFswLKAqoCiGJmh0dHA6Ly9jZXJ0LnN0YXJ0
-Y29tLm9yZy9zZnNjYS1jcmwuY3JsMCugKaAnhiVodHRwOi8vY3JsLnN0YXJ0Y29tLm9yZy9zZnNj
-YS1jcmwuY3JsMIIBXQYDVR0gBIIBVDCCAVAwggFMBgsrBgEEAYG1NwEBATCCATswLwYIKwYBBQUH
-AgEWI2h0dHA6Ly9jZXJ0LnN0YXJ0Y29tLm9yZy9wb2xpY3kucGRmMDUGCCsGAQUFBwIBFilodHRw
-Oi8vY2VydC5zdGFydGNvbS5vcmcvaW50ZXJtZWRpYXRlLnBkZjCB0AYIKwYBBQUHAgIwgcMwJxYg
-U3RhcnQgQ29tbWVyY2lhbCAoU3RhcnRDb20pIEx0ZC4wAwIBARqBl0xpbWl0ZWQgTGlhYmlsaXR5
-LCByZWFkIHRoZSBzZWN0aW9uICpMZWdhbCBMaW1pdGF0aW9ucyogb2YgdGhlIFN0YXJ0Q29tIENl
-cnRpZmljYXRpb24gQXV0aG9yaXR5IFBvbGljeSBhdmFpbGFibGUgYXQgaHR0cDovL2NlcnQuc3Rh
-cnRjb20ub3JnL3BvbGljeS5wZGYwEQYJYIZIAYb4QgEBBAQDAgAHMDgGCWCGSAGG+EIBDQQrFilT
-dGFydENvbSBGcmVlIFNTTCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTANBgkqhkiG9w0BAQUFAAOC
-AgEAFmyZ9GYMNPXQhV59CuzaEE44HF7fpiUFS5Eyweg78T3dRAlbB0mKKctmArexmvclmAk8jhvh
-3TaHK0u7aNM5Zj2gJsfyOZEdUauCe37Vzlrk4gNXcGmXCPleWKYK34wGmkUWFjgKXlf2Ysd6AgXm
-vB618p70qSmD+LIU424oh0TDkBreOKk8rENNZEXO3SipXPJzewT4F+irsfMuXGRuczE6Eri8sxHk
-fY+BUZo7jYn0TZNmezwD7dOaHZrzZVD1oNB1ny+v8OqCQ5j4aZyJecRDjkZy42Q2Eq/3JR44iZB3
-fsNrarnDy0RLrHiQi+fHLB5LEUTINFInzQpdn4XBidUaePKVEFMy3YCEZnXZtWgo+2EuvoSoOMCZ
-EoalHmdkrQYuL6lwhceWD3yJZfWOQ1QOq92lgDmUYMA0yZZwLKMS9R9Ie70cfmu3nZD0Ijuu+Pwq
-yvqCUqDvr0tVk+vBtfAii6w0TiYiBKGHLHVKt+V9E9e4DGTANtLJL4YSjCMJwRuCO3NJo2pXh5Tl
-1njFmUNj403gdy3hZZlyaQQaRwnmDwFWJPsfvw55qVguucQJAX6Vum0ABj6y6koQOdjQK/W/7HW/
-lwLFCRsI3FU34oH7N4RDYiDK51ZLZer+bMEkkyShNOsF/5oirpt9P/FlUQqmMGqz9IgcgA38coro
-g14=
------END CERTIFICATE-----
-
-Taiwan GRCA
-===========
------BEGIN CERTIFICATE-----
-MIIFcjCCA1qgAwIBAgIQH51ZWtcvwgZEpYAIaeNe9jANBgkqhkiG9w0BAQUFADA/MQswCQYDVQQG
-EwJUVzEwMC4GA1UECgwnR292ZXJubWVudCBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MB4X
-DTAyMTIwNTEzMjMzM1oXDTMyMTIwNTEzMjMzM1owPzELMAkGA1UEBhMCVFcxMDAuBgNVBAoMJ0dv
-dmVybm1lbnQgUm9vdCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTCCAiIwDQYJKoZIhvcNAQEBBQAD
-ggIPADCCAgoCggIBAJoluOzMonWoe/fOW1mKydGGEghU7Jzy50b2iPN86aXfTEc2pBsBHH8eV4qN
-w8XRIePaJD9IK/ufLqGU5ywck9G/GwGHU5nOp/UKIXZ3/6m3xnOUT0b3EEk3+qhZSV1qgQdW8or5
-BtD3cCJNtLdBuTK4sfCxw5w/cP1T3YGq2GN49thTbqGsaoQkclSGxtKyyhwOeYHWtXBiCAEuTk8O
-1RGvqa/lmr/czIdtJuTJV6L7lvnM4T9TjGxMfptTCAtsF/tnyMKtsc2AtJfcdgEWFelq16TheEfO
-htX7MfP6Mb40qij7cEwdScevLJ1tZqa2jWR+tSBqnTuBto9AAGdLiYa4zGX+FVPpBMHWXx1E1wov
-J5pGfaENda1UhhXcSTvxls4Pm6Dso3pdvtUqdULle96ltqqvKKyskKw4t9VoNSZ63Pc78/1Fm9G7
-Q3hub/FCVGqY8A2tl+lSXunVanLeavcbYBT0peS2cWeqH+riTcFCQP5nRhc4L0c/cZyu5SHKYS1t
-B6iEfC3uUSXxY5Ce/eFXiGvviiNtsea9P63RPZYLhY3Naye7twWb7LuRqQoHEgKXTiCQ8P8NHuJB
-O9NAOueNXdpm5AKwB1KYXA6OM5zCppX7VRluTI6uSw+9wThNXo+EHWbNxWCWtFJaBYmOlXqYwZE8
-lSOyDvR5tMl8wUohAgMBAAGjajBoMB0GA1UdDgQWBBTMzO/MKWCkO7GStjz6MmKPrCUVOzAMBgNV
-HRMEBTADAQH/MDkGBGcqBwAEMTAvMC0CAQAwCQYFKw4DAhoFADAHBgVnKgMAAAQUA5vwIhP/lSg2
-09yewDL7MTqKUWUwDQYJKoZIhvcNAQEFBQADggIBAECASvomyc5eMN1PhnR2WPWus4MzeKR6dBcZ
-TulStbngCnRiqmjKeKBMmo4sIy7VahIkv9Ro04rQ2JyftB8M3jh+Vzj8jeJPXgyfqzvS/3WXy6Tj
-Zwj/5cAWtUgBfen5Cv8b5Wppv3ghqMKnI6mGq3ZW6A4M9hPdKmaKZEk9GhiHkASfQlK3T8v+R0F2
-Ne//AHY2RTKbxkaFXeIksB7jSJaYV0eUVXoPQbFEJPPB/hprv4j9wabak2BegUqZIJxIZhm1AHlU
-D7gsL0u8qV1bYH+Mh6XgUmMqvtg7hUAV/h62ZT/FS9p+tXo1KaMuephgIqP0fSdOLeq0dDzpD6Qz
-DxARvBMB1uUO07+1EqLhRSPAzAhuYbeJq4PjJB7mXQfnHyA+z2fI56wwbSdLaG5LKlwCCDTb+Hbk
-Z6MmnD+iMsJKxYEYMRBWqoTvLQr/uB930r+lWKBi5NdLkXWNiYCYfm3LU05er/ayl4WXudpVBrkk
-7tfGOB5jGxI7leFYrPLfhNVfmS8NVVvmONsuP3LpSIXLuykTjx44VbnzssQwmSNOXfJIoRIM3BKQ
-CZBUkQM8R+XVyWXgt0t97EfTsws+rZ7QdAAO671RrcDeLMDDav7v3Aun+kbfYNucpllQdSNpc5Oy
-+fwC00fmcc4QAu4njIT/rEUNE1yDMuAlpYYsfPQS
------END CERTIFICATE-----
-
-Firmaprofesional Root CA
-========================
------BEGIN CERTIFICATE-----
-MIIEVzCCAz+gAwIBAgIBATANBgkqhkiG9w0BAQUFADCBnTELMAkGA1UEBhMCRVMxIjAgBgNVBAcT
-GUMvIE11bnRhbmVyIDI0NCBCYXJjZWxvbmExQjBABgNVBAMTOUF1dG9yaWRhZCBkZSBDZXJ0aWZp
-Y2FjaW9uIEZpcm1hcHJvZmVzaW9uYWwgQ0lGIEE2MjYzNDA2ODEmMCQGCSqGSIb3DQEJARYXY2FA
-ZmlybWFwcm9mZXNpb25hbC5jb20wHhcNMDExMDI0MjIwMDAwWhcNMTMxMDI0MjIwMDAwWjCBnTEL
-MAkGA1UEBhMCRVMxIjAgBgNVBAcTGUMvIE11bnRhbmVyIDI0NCBCYXJjZWxvbmExQjBABgNVBAMT
-OUF1dG9yaWRhZCBkZSBDZXJ0aWZpY2FjaW9uIEZpcm1hcHJvZmVzaW9uYWwgQ0lGIEE2MjYzNDA2
-ODEmMCQGCSqGSIb3DQEJARYXY2FAZmlybWFwcm9mZXNpb25hbC5jb20wggEiMA0GCSqGSIb3DQEB
-AQUAA4IBDwAwggEKAoIBAQDnIwNvbyOlXnjOlSztlB5uCp4Bx+ow0Syd3Tfom5h5VtP8c9/Qit5V
-j1H5WuretXDE7aTt/6MNbg9kUDGvASdYrv5sp0ovFy3Tc9UTHI9ZpTQsHVQERc1ouKDAA6XPhUJH
-lShbz++AbOCQl4oBPB3zhxAwJkh91/zpnZFx/0GaqUC1N5wpIE8fUuOgfRNtVLcK3ulqTgesrBlf
-3H5idPayBQC6haD9HThuy1q7hryUZzM1gywfI834yJFxzJeL764P3CkDG8A563DtwW4O2GcLiam8
-NeTvtjS0pbbELaW+0MOUJEjb35bTALVmGotmBQ/dPz/LP6pemkr4tErvlTcbAgMBAAGjgZ8wgZww
-KgYDVR0RBCMwIYYfaHR0cDovL3d3dy5maXJtYXByb2Zlc2lvbmFsLmNvbTASBgNVHRMBAf8ECDAG
-AQH/AgEBMCsGA1UdEAQkMCKADzIwMDExMDI0MjIwMDAwWoEPMjAxMzEwMjQyMjAwMDBaMA4GA1Ud
-DwEB/wQEAwIBBjAdBgNVHQ4EFgQUMwugZtHq2s7eYpMEKFK1FH84aLcwDQYJKoZIhvcNAQEFBQAD
-ggEBAEdz/o0nVPD11HecJ3lXV7cVVuzH2Fi3AQL0M+2TUIiefEaxvT8Ub/GzR0iLjJcG1+p+o1wq
-u00vR+L4OQbJnC4xGgN49Lw4xiKLMzHwFgQEffl25EvXwOaD7FnMP97/T2u3Z36mhoEyIwOdyPdf
-wUpgpZKpsaSgYMN4h7Mi8yrrW6ntBas3D7Hi05V2Y1Z0jFhyGzflZKG+TQyTmAyX9odtsz/ny4Cm
-7YjHX1BiAuiZdBbQ5rQ58SfLyEDW44YQqSMSkuBpQWOnryULwMWSyx6Yo1q6xTMPoJcB3X/ge9YG
-VM+h4k0460tQtcsm9MracEpqoeJ5quGnM/b9Sh/22WA=
------END CERTIFICATE-----
-
-Wells Fargo Root CA
-===================
------BEGIN CERTIFICATE-----
-MIID5TCCAs2gAwIBAgIEOeSXnjANBgkqhkiG9w0BAQUFADCBgjELMAkGA1UEBhMCVVMxFDASBgNV
-BAoTC1dlbGxzIEZhcmdvMSwwKgYDVQQLEyNXZWxscyBGYXJnbyBDZXJ0aWZpY2F0aW9uIEF1dGhv
-cml0eTEvMC0GA1UEAxMmV2VsbHMgRmFyZ28gUm9vdCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkwHhcN
-MDAxMDExMTY0MTI4WhcNMjEwMTE0MTY0MTI4WjCBgjELMAkGA1UEBhMCVVMxFDASBgNVBAoTC1dl
-bGxzIEZhcmdvMSwwKgYDVQQLEyNXZWxscyBGYXJnbyBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTEv
-MC0GA1UEAxMmV2VsbHMgRmFyZ28gUm9vdCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkwggEiMA0GCSqG
-SIb3DQEBAQUAA4IBDwAwggEKAoIBAQDVqDM7Jvk0/82bfuUER84A4n135zHCLielTWi5MbqNQ1mX
-x3Oqfz1cQJ4F5aHiidlMuD+b+Qy0yGIZLEWukR5zcUHESxP9cMIlrCL1dQu3U+SlK93OvRw6esP3
-E48mVJwWa2uv+9iWsWCaSOAlIiR5NM4OJgALTqv9i86C1y8IcGjBqAr5dE8Hq6T54oN+J3N0Prj5
-OEL8pahbSCOz6+MlsoCultQKnMJ4msZoGK43YjdeUXWoWGPAUe5AeH6orxqg4bB4nVCMe+ez/I4j
-sNtlAHCEAQgAFG5Uhpq6zPk3EPbg3oQtnaSFN9OH4xXQwReQfhkhahKpdv0SAulPIV4XAgMBAAGj
-YTBfMA8GA1UdEwEB/wQFMAMBAf8wTAYDVR0gBEUwQzBBBgtghkgBhvt7hwcBCzAyMDAGCCsGAQUF
-BwIBFiRodHRwOi8vd3d3LndlbGxzZmFyZ28uY29tL2NlcnRwb2xpY3kwDQYJKoZIhvcNAQEFBQAD
-ggEBANIn3ZwKdyu7IvICtUpKkfnRLb7kuxpo7w6kAOnu5+/u9vnldKTC2FJYxHT7zmu1Oyl5GFrv
-m+0fazbuSCUlFLZWohDo7qd/0D+j0MNdJu4HzMPBJCGHHt8qElNvQRbn7a6U+oxy+hNH8Dx+rn0R
-OhPs7fpvcmR7nX1/Jv16+yWt6j4pf0zjAFcysLPp7VMX2YuyFA4w6OXVE8Zkr8QA1dhYJPz1j+zx
-x32l2w8n0cbyQIjmH/ZhqPRCyLk306m+LFZ4wnKbWV01QIroTmMatukgalHizqSQ33ZwmVxwQ023
-tqcZZE6St8WRPH9IFmV7Fv3L/PvZ1dZPIWU7Sn9Ho/s=
------END CERTIFICATE-----
-
-Swisscom Root CA 1
-==================
------BEGIN CERTIFICATE-----
-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
-NY6E0F/6MBr1mmz0DlP5OlvRHA==
------END CERTIFICATE-----
-
-DigiCert Assured ID Root CA
-===========================
------BEGIN CERTIFICATE-----
-MIIDtzCCAp+gAwIBAgIQDOfg5RfYRv6P5WD8G/AwOTANBgkqhkiG9w0BAQUFADBlMQswCQYDVQQG
-EwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNlcnQuY29tMSQw
-IgYDVQQDExtEaWdpQ2VydCBBc3N1cmVkIElEIFJvb3QgQ0EwHhcNMDYxMTEwMDAwMDAwWhcNMzEx
-MTEwMDAwMDAwWjBlMQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQL
-ExB3d3cuZGlnaWNlcnQuY29tMSQwIgYDVQQDExtEaWdpQ2VydCBBc3N1cmVkIElEIFJvb3QgQ0Ew
-ggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCtDhXO5EOAXLGH87dg+XESpa7cJpSIqvTO
-9SA5KFhgDPiA2qkVlTJhPLWxKISKityfCgyDF3qPkKyK53lTXDGEKvYPmDI2dsze3Tyoou9q+yHy
-UmHfnyDXH+Kx2f4YZNISW1/5WBg1vEfNoTb5a3/UsDg+wRvDjDPZ2C8Y/igPs6eD1sNuRMBhNZYW
-/lmci3Zt1/GiSw0r/wty2p5g0I6QNcZ4VYcgoc/lbQrISXwxmDNsIumH0DJaoroTghHtORedmTpy
-oeb6pNnVFzF1roV9Iq4/AUaG9ih5yLHa5FcXxH4cDrC0kqZWs72yl+2qp/C3xag/lRbQ/6GW6whf
-GHdPAgMBAAGjYzBhMA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBRF
-66Kv9JLLgjEtUYunpyGd823IDzAfBgNVHSMEGDAWgBRF66Kv9JLLgjEtUYunpyGd823IDzANBgkq
-hkiG9w0BAQUFAAOCAQEAog683+Lt8ONyc3pklL/3cmbYMuRCdWKuh+vy1dneVrOfzM4UKLkNl2Bc
-EkxY5NM9g0lFWJc1aRqoR+pWxnmrEthngYTffwk8lOa4JiwgvT2zKIn3X/8i4peEH+ll74fg38Fn
-SbNd67IJKusm7Xi+fT8r87cmNW1fiQG2SVufAQWbqz0lwcy2f8Lxb4bG+mRo64EtlOtCt/qMHt1i
-8b5QZ7dsvfPxH2sMNgcWfzd8qVttevESRmCD1ycEvkvOl77DZypoEd+A5wwzZr8TDRRu838fYxAe
-+o0bJW1sj6W3YQGx0qMmoRBxna3iw/nDmVG3KwcIzi7mULKn+gpFL6Lw8g==
------END CERTIFICATE-----
-
-DigiCert Global Root CA
-=======================
------BEGIN CERTIFICATE-----
-MIIDrzCCApegAwIBAgIQCDvgVpBCRrGhdWrJWZHHSjANBgkqhkiG9w0BAQUFADBhMQswCQYDVQQG
-EwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNlcnQuY29tMSAw
-HgYDVQQDExdEaWdpQ2VydCBHbG9iYWwgUm9vdCBDQTAeFw0wNjExMTAwMDAwMDBaFw0zMTExMTAw
-MDAwMDBaMGExCzAJBgNVBAYTAlVTMRUwEwYDVQQKEwxEaWdpQ2VydCBJbmMxGTAXBgNVBAsTEHd3
-dy5kaWdpY2VydC5jb20xIDAeBgNVBAMTF0RpZ2lDZXJ0IEdsb2JhbCBSb290IENBMIIBIjANBgkq
-hkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA4jvhEXLeqKTTo1eqUKKPC3eQyaKl7hLOllsBCSDMAZOn
-TjC3U/dDxGkAV53ijSLdhwZAAIEJzs4bg7/fzTtxRuLWZscFs3YnFo97nh6Vfe63SKMI2tavegw5
-BmV/Sl0fvBf4q77uKNd0f3p4mVmFaG5cIzJLv07A6Fpt43C/dxC//AH2hdmoRBBYMql1GNXRor5H
-4idq9Joz+EkIYIvUX7Q6hL+hqkpMfT7PT19sdl6gSzeRntwi5m3OFBqOasv+zbMUZBfHWymeMr/y
-7vrTC0LUq7dBMtoM1O/4gdW7jVg/tRvoSSiicNoxBN33shbyTApOB6jtSj1etX+jkMOvJwIDAQAB
-o2MwYTAOBgNVHQ8BAf8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUA95QNVbRTLtm
-8KPiGxvDl7I90VUwHwYDVR0jBBgwFoAUA95QNVbRTLtm8KPiGxvDl7I90VUwDQYJKoZIhvcNAQEF
-BQADggEBAMucN6pIExIK+t1EnE9SsPTfrgT1eXkIoyQY/EsrhMAtudXH/vTBH1jLuG2cenTnmCmr
-EbXjcKChzUyImZOMkXDiqw8cvpOp/2PV5Adg06O/nVsJ8dWO41P0jmP6P6fbtGbfYmbW0W5BjfIt
-tep3Sp+dWOIrWcBAI+0tKIJFPnlUkiaY4IBIqDfv8NZ5YBberOgOzW6sRBc4L0na4UU+Krk2U886
-UAb3LujEV0lsYSEY1QSteDwsOoBrp+uvFRTp2InBuThs4pFsiv9kuXclVzDAGySj4dzp30d8tbQk
-CAUw7C29C79Fv1C5qfPrmAESrciIxpg0X40KPMbp1ZWVbd4=
------END CERTIFICATE-----
-
-DigiCert High Assurance EV Root CA
-==================================
------BEGIN CERTIFICATE-----
-MIIDxTCCAq2gAwIBAgIQAqxcJmoLQJuPC3nyrkYldzANBgkqhkiG9w0BAQUFADBsMQswCQYDVQQG
-EwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNlcnQuY29tMSsw
-KQYDVQQDEyJEaWdpQ2VydCBIaWdoIEFzc3VyYW5jZSBFViBSb290IENBMB4XDTA2MTExMDAwMDAw
-MFoXDTMxMTExMDAwMDAwMFowbDELMAkGA1UEBhMCVVMxFTATBgNVBAoTDERpZ2lDZXJ0IEluYzEZ
-MBcGA1UECxMQd3d3LmRpZ2ljZXJ0LmNvbTErMCkGA1UEAxMiRGlnaUNlcnQgSGlnaCBBc3N1cmFu
-Y2UgRVYgUm9vdCBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMbM5XPm+9S75S0t
-Mqbf5YE/yc0lSbZxKsPVlDRnogocsF9ppkCxxLeyj9CYpKlBWTrT3JTWPNt0OKRKzE0lgvdKpVMS
-OO7zSW1xkX5jtqumX8OkhPhPYlG++MXs2ziS4wblCJEMxChBVfvLWokVfnHoNb9Ncgk9vjo4UFt3
-MRuNs8ckRZqnrG0AFFoEt7oT61EKmEFBIk5lYYeBQVCmeVyJ3hlKV9Uu5l0cUyx+mM0aBhakaHPQ
-NAQTXKFx01p8VdteZOE3hzBWBOURtCmAEvF5OYiiAhF8J2a3iLd48soKqDirCmTCv2ZdlYTBoSUe
-h10aUAsgEsxBu24LUTi4S8sCAwEAAaNjMGEwDgYDVR0PAQH/BAQDAgGGMA8GA1UdEwEB/wQFMAMB
-Af8wHQYDVR0OBBYEFLE+w2kD+L9HAdSYJhoIAu9jZCvDMB8GA1UdIwQYMBaAFLE+w2kD+L9HAdSY
-JhoIAu9jZCvDMA0GCSqGSIb3DQEBBQUAA4IBAQAcGgaX3NecnzyIZgYIVyHbIUf4KmeqvxgydkAQ
-V8GK83rZEWWONfqe/EW1ntlMMUu4kehDLI6zeM7b41N5cdblIZQB2lWHmiRk9opmzN6cN82oNLFp
-myPInngiK3BD41VHMWEZ71jFhS9OMPagMRYjyOfiZRYzy78aG6A9+MpeizGLYAiJLQwGXFK3xPkK
-mNEVX58Svnw2Yzi9RKR/5CYrCsSXaQ3pjOLAEFe4yHYSkVXySGnYvCoCWw9E1CAx2/S6cCZdkGCe
-vEsXCS+0yx5DaMkHJ8HSXPfqIbloEpw8nL+e/IBcm2PN7EeqJSdnoDfzAIJ9VNep+OkuE6N36B9K
------END CERTIFICATE-----
-
-Certplus Class 2 Primary CA
-===========================
------BEGIN CERTIFICATE-----
-MIIDkjCCAnqgAwIBAgIRAIW9S/PY2uNp9pTXX8OlRCMwDQYJKoZIhvcNAQEFBQAwPTELMAkGA1UE
-BhMCRlIxETAPBgNVBAoTCENlcnRwbHVzMRswGQYDVQQDExJDbGFzcyAyIFByaW1hcnkgQ0EwHhcN
-OTkwNzA3MTcwNTAwWhcNMTkwNzA2MjM1OTU5WjA9MQswCQYDVQQGEwJGUjERMA8GA1UEChMIQ2Vy
-dHBsdXMxGzAZBgNVBAMTEkNsYXNzIDIgUHJpbWFyeSBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEP
-ADCCAQoCggEBANxQltAS+DXSCHh6tlJw/W/uz7kRy1134ezpfgSN1sxvc0NXYKwzCkTsA18cgCSR
-5aiRVhKC9+Ar9NuuYS6JEI1rbLqzAr3VNsVINyPi8Fo3UjMXEuLRYE2+L0ER4/YXJQyLkcAbmXuZ
-Vg2v7tK8R1fjeUl7NIknJITesezpWE7+Tt9avkGtrAjFGA7v0lPubNCdEgETjdyAYveVqUSISnFO
-YFWe2yMZeVYHDD9jC1yw4r5+FfyUM1hBOHTE4Y+L3yasH7WLO7dDWWuwJKZtkIvEcupdM5i3y95e
-e++U8Rs+yskhwcWYAqqi9lt3m/V+llU0HGdpwPFC40es/CgcZlUCAwEAAaOBjDCBiTAPBgNVHRME
-CDAGAQH/AgEKMAsGA1UdDwQEAwIBBjAdBgNVHQ4EFgQU43Mt38sOKAze3bOkynm4jrvoMIkwEQYJ
-YIZIAYb4QgEBBAQDAgEGMDcGA1UdHwQwMC4wLKAqoCiGJmh0dHA6Ly93d3cuY2VydHBsdXMuY29t
-L0NSTC9jbGFzczIuY3JsMA0GCSqGSIb3DQEBBQUAA4IBAQCnVM+IRBnL39R/AN9WM2K191EBkOvD
-P9GIROkkXe/nFL0gt5o8AP5tn9uQ3Nf0YtaLcF3n5QRIqWh8yfFC82x/xXp8HVGIutIKPidd3i1R
-TtMTZGnkLuPT55sJmabglZvOGtd/vjzOUrMRFcEPF80Du5wlFbqidon8BvEY0JNLDnyCt6X09l/+
-7UCmnYR0ObncHoUW2ikbhiMAybuJfm6AiB4vFLQDJKgybwOaRywwvlbGp0ICcBvqQNi6BQNwB6SW
-//1IMwrh3KWBkJtN3X3n57LNXMhqlfil9o3EXXgIvnsG1knPGTZQIy4I5p4FTUcY1Rbpsda2ENW7
-l7+ijrRU
------END CERTIFICATE-----
-
-DST Root CA X3
-==============
------BEGIN CERTIFICATE-----
-MIIDSjCCAjKgAwIBAgIQRK+wgNajJ7qJMDmGLvhAazANBgkqhkiG9w0BAQUFADA/MSQwIgYDVQQK
-ExtEaWdpdGFsIFNpZ25hdHVyZSBUcnVzdCBDby4xFzAVBgNVBAMTDkRTVCBSb290IENBIFgzMB4X
-DTAwMDkzMDIxMTIxOVoXDTIxMDkzMDE0MDExNVowPzEkMCIGA1UEChMbRGlnaXRhbCBTaWduYXR1
-cmUgVHJ1c3QgQ28uMRcwFQYDVQQDEw5EU1QgUm9vdCBDQSBYMzCCASIwDQYJKoZIhvcNAQEBBQAD
-ggEPADCCAQoCggEBAN+v6ZdQCINXtMxiZfaQguzH0yxrMMpb7NnDfcdAwRgUi+DoM3ZJKuM/IUmT
-rE4Orz5Iy2Xu/NMhD2XSKtkyj4zl93ewEnu1lcCJo6m67XMuegwGMoOifooUMM0RoOEqOLl5CjH9
-UL2AZd+3UWODyOKIYepLYYHsUmu5ouJLGiifSKOeDNoJjj4XLh7dIN9bxiqKqy69cK3FCxolkHRy
-xXtqqzTWMIn/5WgTe1QLyNau7Fqckh49ZLOMxt+/yUFw7BZy1SbsOFU5Q9D8/RhcQPGX69Wam40d
-utolucbY38EVAjqr2m7xPi71XAicPNaDaeQQmxkqtilX4+U9m5/wAl0CAwEAAaNCMEAwDwYDVR0T
-AQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFMSnsaR7LHH62+FLkHX/xBVghYkQ
-MA0GCSqGSIb3DQEBBQUAA4IBAQCjGiybFwBcqR7uKGY3Or+Dxz9LwwmglSBd49lZRNI+DT69ikug
-dB/OEIKcdBodfpga3csTS7MgROSR6cz8faXbauX+5v3gTt23ADq1cEmv8uXrAvHRAosZy5Q6XkjE
-GB5YGV8eAlrwDPGxrancWYaLbumR9YbK+rlmM6pZW87ipxZzR8srzJmwN0jP41ZL9c8PDHIyh8bw
-RLtTcm1D9SZImlJnt1ir/md2cXjbDaJWFBM5JDGFoqgCWjBH4d1QB7wCCZAA62RjYJsWvIjJEubS
-fZGL+T0yjWW06XyxV3bqxbYoOb8VZRzI9neWagqNdwvYkQsEjgfbKbYK7p2CNTUQ
------END CERTIFICATE-----
-
-DST ACES CA X6
-==============
------BEGIN CERTIFICATE-----
-MIIECTCCAvGgAwIBAgIQDV6ZCtadt3js2AdWO4YV2TANBgkqhkiG9w0BAQUFADBbMQswCQYDVQQG
-EwJVUzEgMB4GA1UEChMXRGlnaXRhbCBTaWduYXR1cmUgVHJ1c3QxETAPBgNVBAsTCERTVCBBQ0VT
-MRcwFQYDVQQDEw5EU1QgQUNFUyBDQSBYNjAeFw0wMzExMjAyMTE5NThaFw0xNzExMjAyMTE5NTha
-MFsxCzAJBgNVBAYTAlVTMSAwHgYDVQQKExdEaWdpdGFsIFNpZ25hdHVyZSBUcnVzdDERMA8GA1UE
-CxMIRFNUIEFDRVMxFzAVBgNVBAMTDkRTVCBBQ0VTIENBIFg2MIIBIjANBgkqhkiG9w0BAQEFAAOC
-AQ8AMIIBCgKCAQEAuT31LMmU3HWKlV1j6IR3dma5WZFcRt2SPp/5DgO0PWGSvSMmtWPuktKe1jzI
-DZBfZIGxqAgNTNj50wUoUrQBJcWVHAx+PhCEdc/BGZFjz+iokYi5Q1K7gLFViYsx+tC3dr5BPTCa
-pCIlF3PoHuLTrCq9Wzgh1SpL11V94zpVvddtawJXa+ZHfAjIgrrep4c9oW24MFbCswKBXy314pow
-GCi4ZtPLAZZv6opFVdbgnf9nKxcCpk4aahELfrd755jWjHZvwTvbUJN+5dCOHze4vbrGn2zpfDPy
-MjwmR/onJALJfh1biEITajV8fTXpLmaRcpPVMibEdPVTo7NdmvYJywIDAQABo4HIMIHFMA8GA1Ud
-EwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgHGMB8GA1UdEQQYMBaBFHBraS1vcHNAdHJ1c3Rkc3Qu
-Y29tMGIGA1UdIARbMFkwVwYKYIZIAWUDAgEBATBJMEcGCCsGAQUFBwIBFjtodHRwOi8vd3d3LnRy
-dXN0ZHN0LmNvbS9jZXJ0aWZpY2F0ZXMvcG9saWN5L0FDRVMtaW5kZXguaHRtbDAdBgNVHQ4EFgQU
-CXIGThhDD+XWzMNqizF7eI+og7gwDQYJKoZIhvcNAQEFBQADggEBAKPYjtay284F5zLNAdMEA+V2
-5FYrnJmQ6AgwbN99Pe7lv7UkQIRJ4dEorsTCOlMwiPH1d25Ryvr/ma8kXxug/fKshMrfqfBfBC6t
-Fr8hlxCBPeP/h40y3JTlR4peahPJlJU90u7INJXQgNStMgiAVDzgvVJT11J8smk/f3rPanTK+gQq
-nExaBqXpIK1FZg9p8d2/6eMyi/rgwYZNcjwu2JN4Cir42NInPRmJX1p7ijvMDNpRrscL9yuwNwXs
-vFcj4jjSm2jzVhKIT0J8uDHEtdvkyCE06UgRNe76x5JXxZ805Mf29w4LTJxoeHtxMcfrHuBnQfO3
-oKfN5XozNmr6mis=
------END CERTIFICATE-----
-
-TURKTRUST Certificate Services Provider Root 1
-==============================================
------BEGIN CERTIFICATE-----
-MIID+zCCAuOgAwIBAgIBATANBgkqhkiG9w0BAQUFADCBtzE/MD0GA1UEAww2VMOcUktUUlVTVCBF
-bGVrdHJvbmlrIFNlcnRpZmlrYSBIaXptZXQgU2HEn2xhecSxY8Sxc8SxMQswCQYDVQQGDAJUUjEP
-MA0GA1UEBwwGQU5LQVJBMVYwVAYDVQQKDE0oYykgMjAwNSBUw5xSS1RSVVNUIEJpbGdpIMSwbGV0
-acWfaW0gdmUgQmlsacWfaW0gR8O8dmVubGnEn2kgSGl6bWV0bGVyaSBBLsWeLjAeFw0wNTA1MTMx
-MDI3MTdaFw0xNTAzMjIxMDI3MTdaMIG3MT8wPQYDVQQDDDZUw5xSS1RSVVNUIEVsZWt0cm9uaWsg
-U2VydGlmaWthIEhpem1ldCBTYcSfbGF5xLFjxLFzxLExCzAJBgNVBAYMAlRSMQ8wDQYDVQQHDAZB
-TktBUkExVjBUBgNVBAoMTShjKSAyMDA1IFTDnFJLVFJVU1QgQmlsZ2kgxLBsZXRpxZ9pbSB2ZSBC
-aWxpxZ9pbSBHw7x2ZW5sacSfaSBIaXptZXRsZXJpIEEuxZ4uMIIBIjANBgkqhkiG9w0BAQEFAAOC
-AQ8AMIIBCgKCAQEAylIF1mMD2Bxf3dJ7XfIMYGFbazt0K3gNfUW9InTojAPBxhEqPZW8qZSwu5GX
-yGl8hMW0kWxsE2qkVa2kheiVfrMArwDCBRj1cJ02i67L5BuBf5OI+2pVu32Fks66WJ/bMsW9Xe8i
-Si9BB35JYbOG7E6mQW6EvAPs9TscyB/C7qju6hJKjRTP8wrgUDn5CDX4EVmt5yLqS8oUBt5CurKZ
-8y1UiBAG6uEaPj1nH/vO+3yC6BFdSsG5FOpU2WabfIl9BJpiyelSPJ6c79L1JuTm5Rh8i27fbMx4
-W09ysstcP4wFjdFMjK2Sx+F4f2VsSQZQLJ4ywtdKxnWKWU51b0dewQIDAQABoxAwDjAMBgNVHRME
-BTADAQH/MA0GCSqGSIb3DQEBBQUAA4IBAQAV9VX/N5aAWSGk/KEVTCD21F/aAyT8z5Aa9CEKmu46
-sWrv7/hg0Uw2ZkUd82YCdAR7kjCo3gp2D++Vbr3JN+YaDayJSFvMgzbC9UZcWYJWtNX+I7TYVBxE
-q8Sn5RTOPEFhfEPmzcSBCYsk+1Ql1haolgxnB2+zUEfjHCQo3SqYpGH+2+oSN7wBGjSFvW5P55Fy
-B0SFHljKVETd96y5y4khctuPwGkplyqjrhgjlxxBKot8KsF8kOipKMDTkcatKIdAaLX/7KfS0zgY
-nNN9aV3wxqUeJBujR/xpB2jn5Jq07Q+hh4cCzofSSE7hvP/L8XKSRGQDJereW26fyfJOrN3H
------END CERTIFICATE-----
-
-TURKTRUST Certificate Services Provider Root 2
-==============================================
------BEGIN CERTIFICATE-----
-MIIEPDCCAySgAwIBAgIBATANBgkqhkiG9w0BAQUFADCBvjE/MD0GA1UEAww2VMOcUktUUlVTVCBF
-bGVrdHJvbmlrIFNlcnRpZmlrYSBIaXptZXQgU2HEn2xhecSxY8Sxc8SxMQswCQYDVQQGEwJUUjEP
-MA0GA1UEBwwGQW5rYXJhMV0wWwYDVQQKDFRUw5xSS1RSVVNUIEJpbGdpIMSwbGV0acWfaW0gdmUg
-QmlsacWfaW0gR8O8dmVubGnEn2kgSGl6bWV0bGVyaSBBLsWeLiAoYykgS2FzxLFtIDIwMDUwHhcN
-MDUxMTA3MTAwNzU3WhcNMTUwOTE2MTAwNzU3WjCBvjE/MD0GA1UEAww2VMOcUktUUlVTVCBFbGVr
-dHJvbmlrIFNlcnRpZmlrYSBIaXptZXQgU2HEn2xhecSxY8Sxc8SxMQswCQYDVQQGEwJUUjEPMA0G
-A1UEBwwGQW5rYXJhMV0wWwYDVQQKDFRUw5xSS1RSVVNUIEJpbGdpIMSwbGV0acWfaW0gdmUgQmls
-acWfaW0gR8O8dmVubGnEn2kgSGl6bWV0bGVyaSBBLsWeLiAoYykgS2FzxLFtIDIwMDUwggEiMA0G
-CSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCpNn7DkUNMwxmYCMjHWHtPFoylzkkBH3MOrHUTpvqe
-LCDe2JAOCtFp0if7qnefJ1Il4std2NiDUBd9irWCPwSOtNXwSadktx4uXyCcUHVPr+G1QRT0mJKI
-x+XlZEdhR3n9wFHxwZnn3M5q+6+1ATDcRhzviuyV79z/rxAc653YsKpqhRgNF8k+v/Gb0AmJQv2g
-QrSdiVFVKc8bcLyEVK3BEx+Y9C52YItdP5qtygy/p1Zbj3e41Z55SZI/4PGXJHpsmxcPbe9TmJEr
-5A++WXkHeLuXlfSfadRYhwqp48y2WBmfJiGxxFmNskF1wK1pzpwACPI2/z7woQ8arBT9pmAPAgMB
-AAGjQzBBMB0GA1UdDgQWBBTZN7NOBf3Zz58SFq62iS/rJTqIHDAPBgNVHQ8BAf8EBQMDBwYAMA8G
-A1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQEFBQADggEBAHJglrfJ3NgpXiOFX7KzLXb7iNcX/ntt
-Rbj2hWyfIvwqECLsqrkw9qtY1jkQMZkpAL2JZkH7dN6RwRgLn7Vhy506vvWolKMiVW4XSf/SKfE4
-Jl3vpao6+XF75tpYHdN0wgH6PmlYX63LaL4ULptswLbcoCb6dxriJNoaN+BnrdFzgw2lGh1uEpJ+
-hGIAF728JRhX8tepb1mIvDS3LoV4nZbcFMMsilKbloxSZj2GFotHuFEJjOp9zYhys2AzsfAKRO8P
-9Qk3iCQOLGsgOqL6EfJANZxEaGM7rDNvY7wsu/LSy3Z9fYjYHcgFHW68lKlmjHdxx/qR+i9Rnuk5
-UrbnBEI=
------END CERTIFICATE-----
-
-SwissSign Platinum CA - G2
-==========================
------BEGIN CERTIFICATE-----
-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
------END CERTIFICATE-----
-
-SwissSign Gold CA - G2
-======================
------BEGIN CERTIFICATE-----
-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
------END CERTIFICATE-----
-
-SwissSign Silver CA - G2
-========================
------BEGIN CERTIFICATE-----
-MIIFvTCCA6WgAwIBAgIITxvUL1S7L0swDQYJKoZIhvcNAQEFBQAwRzELMAkGA1UEBhMCQ0gxFTAT
-BgNVBAoTDFN3aXNzU2lnbiBBRzEhMB8GA1UEAxMYU3dpc3NTaWduIFNpbHZlciBDQSAtIEcyMB4X
-DTA2MTAyNTA4MzI0NloXDTM2MTAyNTA4MzI0NlowRzELMAkGA1UEBhMCQ0gxFTATBgNVBAoTDFN3
-aXNzU2lnbiBBRzEhMB8GA1UEAxMYU3dpc3NTaWduIFNpbHZlciBDQSAtIEcyMIICIjANBgkqhkiG
-9w0BAQEFAAOCAg8AMIICCgKCAgEAxPGHf9N4Mfc4yfjDmUO8x/e8N+dOcbpLj6VzHVxumK4DV644
-N0MvFz0fyM5oEMF4rhkDKxD6LHmD9ui5aLlV8gREpzn5/ASLHvGiTSf5YXu6t+WiE7brYT7QbNHm
-+/pe7R20nqA1W6GSy/BJkv6FCgU+5tkL4k+73JU3/JHpMjUi0R86TieFnbAVlDLaYQ1HTWBCrpJH
-6INaUFjpiou5XaHc3ZlKHzZnu0jkg7Y360g6rw9njxcH6ATK72oxh9TAtvmUcXtnZLi2kUpCe2Uu
-MGoM9ZDulebyzYLs2aFK7PayS+VFheZteJMELpyCbTapxDFkH4aDCyr0NQp4yVXPQbBH6TCfmb5h
-qAaEuSh6XzjZG6k4sIN/c8HDO0gqgg8hm7jMqDXDhBuDsz6+pJVpATqJAHgE2cn0mRmrVn5bi4Y5
-FZGkECwJMoBgs5PAKrYYC51+jUnyEEp/+dVGLxmSo5mnJqy7jDzmDrxHB9xzUfFwZC8I+bRHHTBs
-ROopN4WSaGa8gzj+ezku01DwH/teYLappvonQfGbGHLy9YR0SslnxFSuSGTfjNFusB3hB48IHpmc
-celM2KX3RxIfdNFRnobzwqIjQAtz20um53MGjMGg6cFZrEb65i/4z3GcRm25xBWNOHkDRUjvxF3X
-CO6HOSKGsg0PWEP3calILv3q1h8CAwEAAaOBrDCBqTAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/
-BAUwAwEB/zAdBgNVHQ4EFgQUF6DNweRBtjpbO8tFnb0cwpj6hlgwHwYDVR0jBBgwFoAUF6DNweRB
-tjpbO8tFnb0cwpj6hlgwRgYDVR0gBD8wPTA7BglghXQBWQEDAQEwLjAsBggrBgEFBQcCARYgaHR0
-cDovL3JlcG9zaXRvcnkuc3dpc3NzaWduLmNvbS8wDQYJKoZIhvcNAQEFBQADggIBAHPGgeAn0i0P
-4JUw4ppBf1AsX19iYamGamkYDHRJ1l2E6kFSGG9YrVBWIGrGvShpWJHckRE1qTodvBqlYJ7YH39F
-kWnZfrt4csEGDyrOj4VwYaygzQu4OSlWhDJOhrs9xCrZ1x9y7v5RoSJBsXECYxqCsGKrXlcSH9/L
-3XWgwF15kIwb4FDm3jH+mHtwX6WQ2K34ArZv02DdQEsixT2tOnqfGhpHkXkzuoLcMmkDlm4fS/Bx
-/uNncqCxv1yL5PqZIseEuRuNI5c/7SXgz2W79WEE790eslpBIlqhn10s6FvJbakMDHiqYMZWjwFa
-DGi8aRl5xB9+lwW/xekkUV7U1UtT7dkjWjYDZaPBA61BMPNGG4WQr2W11bHkFlt4dR2Xem1ZqSqP
-e97Dh4kQmUlzeMg9vVE1dCrV8X5pGyq7O70luJpaPXJhkGaH7gzWTdQRdAtq/gsD/KNVV4n+Ssuu
-WxcFyPKNIzFTONItaj+CuY0IavdeQXRuwxF+B6wpYJE/OMpXEA29MC/HpeZBoNquBYeaoKRlbEwJ
-DIm6uNO5wJOKMPqN5ZprFQFOZ6raYlY+hAhm0sQ2fac+EPyI4NSA5QC9qvNOBqN6avlicuMJT+ub
-DgEj8Z+7fNzcbBGXJbLytGMU0gYqZ4yD9c7qB9iaah7s5Aq7KkzrCWA5zspi2C5u
------END CERTIFICATE-----
-
-GeoTrust Primary Certification Authority
-========================================
------BEGIN CERTIFICATE-----
-MIIDfDCCAmSgAwIBAgIQGKy1av1pthU6Y2yv2vrEoTANBgkqhkiG9w0BAQUFADBYMQswCQYDVQQG
-EwJVUzEWMBQGA1UEChMNR2VvVHJ1c3QgSW5jLjExMC8GA1UEAxMoR2VvVHJ1c3QgUHJpbWFyeSBD
-ZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAeFw0wNjExMjcwMDAwMDBaFw0zNjA3MTYyMzU5NTlaMFgx
-CzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1HZW9UcnVzdCBJbmMuMTEwLwYDVQQDEyhHZW9UcnVzdCBQ
-cmltYXJ5IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIB
-CgKCAQEAvrgVe//UfH1nrYNke8hCUy3f9oQIIGHWAVlqnEQRr+92/ZV+zmEwu3qDXwK9AWbK7hWN
-b6EwnL2hhZ6UOvNWiAAxz9juapYC2e0DjPt1befquFUWBRaa9OBesYjAZIVcFU2Ix7e64HXprQU9
-nceJSOC7KMgD4TCTZF5SwFlwIjVXiIrxlQqD17wxcwE07e9GceBrAqg1cmuXm2bgyxx5X9gaBGge
-RwLmnWDiNpcB3841kt++Z8dtd1k7j53WkBWUvEI0EME5+bEnPn7WinXFsq+W06Lem+SYvn3h6YGt
-tm/81w7a4DSwDRp35+MImO9Y+pyEtzavwt+s0vQQBnBxNQIDAQABo0IwQDAPBgNVHRMBAf8EBTAD
-AQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQULNVQQZcVi/CPNmFbSvtr2ZnJM5IwDQYJKoZI
-hvcNAQEFBQADggEBAFpwfyzdtzRP9YZRqSa+S7iq8XEN3GHHoOo0Hnp3DwQ16CePbJC/kRYkRj5K
-Ts4rFtULUh38H2eiAkUxT87z+gOneZ1TatnaYzr4gNfTmeGl4b7UVXGYNTq+k+qurUKykG/g/CFN
-NWMziUnWm07Kx+dOCQD32sfvmWKZd7aVIl6KoKv0uHiYyjgZmclynnjNS6yvGaBzEi38wkG6gZHa
-Floxt/m0cYASSJlyc1pZU8FjUjPtp8nSOQJw+uCxQmYpqptR7TBUIhRf2asdweSU8Pj1K/fqynhG
-1riR/aYNKxoUAT6A8EKglQdebc3MS6RFjasS6LPeWuWgfOgPIh1a6Vk=
------END CERTIFICATE-----
-
-thawte Primary Root CA
-======================
------BEGIN CERTIFICATE-----
-MIIEIDCCAwigAwIBAgIQNE7VVyDV7exJ9C/ON9srbTANBgkqhkiG9w0BAQUFADCBqTELMAkGA1UE
-BhMCVVMxFTATBgNVBAoTDHRoYXd0ZSwgSW5jLjEoMCYGA1UECxMfQ2VydGlmaWNhdGlvbiBTZXJ2
-aWNlcyBEaXZpc2lvbjE4MDYGA1UECxMvKGMpIDIwMDYgdGhhd3RlLCBJbmMuIC0gRm9yIGF1dGhv
-cml6ZWQgdXNlIG9ubHkxHzAdBgNVBAMTFnRoYXd0ZSBQcmltYXJ5IFJvb3QgQ0EwHhcNMDYxMTE3
-MDAwMDAwWhcNMzYwNzE2MjM1OTU5WjCBqTELMAkGA1UEBhMCVVMxFTATBgNVBAoTDHRoYXd0ZSwg
-SW5jLjEoMCYGA1UECxMfQ2VydGlmaWNhdGlvbiBTZXJ2aWNlcyBEaXZpc2lvbjE4MDYGA1UECxMv
-KGMpIDIwMDYgdGhhd3RlLCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxHzAdBgNVBAMT
-FnRoYXd0ZSBQcmltYXJ5IFJvb3QgQ0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCs
-oPD7gFnUnMekz52hWXMJEEUMDSxuaPFsW0hoSVk3/AszGcJ3f8wQLZU0HObrTQmnHNK4yZc2AreJ
-1CRfBsDMRJSUjQJib+ta3RGNKJpchJAQeg29dGYvajig4tVUROsdB58Hum/u6f1OCyn1PoSgAfGc
-q/gcfomk6KHYcWUNo1F77rzSImANuVud37r8UVsLr5iy6S7pBOhih94ryNdOwUxkHt3Ph1i6Sk/K
-aAcdHJ1KxtUvkcx8cXIcxcBn6zL9yZJclNqFwJu/U30rCfSMnZEfl2pSy94JNqR32HuHUETVPm4p
-afs5SSYeCaWAe0At6+gnhcn+Yf1+5nyXHdWdAgMBAAGjQjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYD
-VR0PAQH/BAQDAgEGMB0GA1UdDgQWBBR7W0XPr87Lev0xkhpqtvNG61dIUDANBgkqhkiG9w0BAQUF
-AAOCAQEAeRHAS7ORtvzw6WfUDW5FvlXok9LOAz/t2iWwHVfLHjp2oEzsUHboZHIMpKnxuIvW1oeE
-uzLlQRHAd9mzYJ3rG9XRbkREqaYB7FViHXe4XI5ISXycO1cRrK1zN44veFyQaEfZYGDm/Ac9IiAX
-xPcW6cTYcvnIc3zfFi8VqT79aie2oetaupgf1eNNZAqdE8hhuvU5HIe6uL17In/2/qxAeeWsEG89
-jxt5dovEN7MhGITlNgDrYyCZuen+MwS7QcjBAvlEYyCegc5C09Y/LHbTY5xZ3Y+m4Q6gLkH3LpVH
-z7z9M/P2C2F+fpErgUfCJzDupxBdN49cOSvkBPB7jVaMaA==
------END CERTIFICATE-----
-
-VeriSign Class 3 Public Primary Certification Authority - G5
-============================================================
------BEGIN CERTIFICATE-----
-MIIE0zCCA7ugAwIBAgIQGNrRniZ96LtKIVjNzGs7SjANBgkqhkiG9w0BAQUFADCByjELMAkGA1UE
-BhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYDVQQLExZWZXJpU2lnbiBUcnVzdCBO
-ZXR3b3JrMTowOAYDVQQLEzEoYykgMjAwNiBWZXJpU2lnbiwgSW5jLiAtIEZvciBhdXRob3JpemVk
-IHVzZSBvbmx5MUUwQwYDVQQDEzxWZXJpU2lnbiBDbGFzcyAzIFB1YmxpYyBQcmltYXJ5IENlcnRp
-ZmljYXRpb24gQXV0aG9yaXR5IC0gRzUwHhcNMDYxMTA4MDAwMDAwWhcNMzYwNzE2MjM1OTU5WjCB
-yjELMAkGA1UEBhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYDVQQLExZWZXJpU2ln
-biBUcnVzdCBOZXR3b3JrMTowOAYDVQQLEzEoYykgMjAwNiBWZXJpU2lnbiwgSW5jLiAtIEZvciBh
-dXRob3JpemVkIHVzZSBvbmx5MUUwQwYDVQQDEzxWZXJpU2lnbiBDbGFzcyAzIFB1YmxpYyBQcmlt
-YXJ5IENlcnRpZmljYXRpb24gQXV0aG9yaXR5IC0gRzUwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAw
-ggEKAoIBAQCvJAgIKXo1nmAMqudLO07cfLw8RRy7K+D+KQL5VwijZIUVJ/XxrcgxiV0i6CqqpkKz
-j/i5Vbext0uz/o9+B1fs70PbZmIVYc9gDaTY3vjgw2IIPVQT60nKWVSFJuUrjxuf6/WhkcIzSdhD
-Y2pSS9KP6HBRTdGJaXvHcPaz3BJ023tdS1bTlr8Vd6Gw9KIl8q8ckmcY5fQGBO+QueQA5N06tRn/
-Arr0PO7gi+s3i+z016zy9vA9r911kTMZHRxAy3QkGSGT2RT+rCpSx4/VBEnkjWNHiDxpg8v+R70r
-fk/Fla4OndTRQ8Bnc+MUCH7lP59zuDMKz10/NIeWiu5T6CUVAgMBAAGjgbIwga8wDwYDVR0TAQH/
-BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwbQYIKwYBBQUHAQwEYTBfoV2gWzBZMFcwVRYJaW1hZ2Uv
-Z2lmMCEwHzAHBgUrDgMCGgQUj+XTGoasjY5rw8+AatRIGCx7GS4wJRYjaHR0cDovL2xvZ28udmVy
-aXNpZ24uY29tL3ZzbG9nby5naWYwHQYDVR0OBBYEFH/TZafC3ey78DAJ80M5+gKvMzEzMA0GCSqG
-SIb3DQEBBQUAA4IBAQCTJEowX2LP2BqYLz3q3JktvXf2pXkiOOzEp6B4Eq1iDkVwZMXnl2YtmAl+
-X6/WzChl8gGqCBpH3vn5fJJaCGkgDdk+bW48DW7Y5gaRQBi5+MHt39tBquCWIMnNZBU4gcmU7qKE
-KQsTb47bDN0lAtukixlE0kF6BWlKWE9gyn6CagsCqiUXObXbf+eEZSqVir2G3l6BFoMtEMze/aiC
-Km0oHw0LxOXnGiYZ4fQRbxC1lfznQgUy286dUV4otp6F01vvpX1FQHKOtw5rDgb7MzVIcbidJ4vE
-ZV8NhnacRHr2lVz2XTIIM6RUthg/aFzyQkqFOFSDX9HoLPKsEdao7WNq
------END CERTIFICATE-----
-
-SecureTrust CA
-==============
------BEGIN CERTIFICATE-----
-MIIDuDCCAqCgAwIBAgIQDPCOXAgWpa1Cf/DrJxhZ0DANBgkqhkiG9w0BAQUFADBIMQswCQYDVQQG
-EwJVUzEgMB4GA1UEChMXU2VjdXJlVHJ1c3QgQ29ycG9yYXRpb24xFzAVBgNVBAMTDlNlY3VyZVRy
-dXN0IENBMB4XDTA2MTEwNzE5MzExOFoXDTI5MTIzMTE5NDA1NVowSDELMAkGA1UEBhMCVVMxIDAe
-BgNVBAoTF1NlY3VyZVRydXN0IENvcnBvcmF0aW9uMRcwFQYDVQQDEw5TZWN1cmVUcnVzdCBDQTCC
-ASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKukgeWVzfX2FI7CT8rU4niVWJxB4Q2ZQCQX
-OZEzZum+4YOvYlyJ0fwkW2Gz4BERQRwdbvC4u/jep4G6pkjGnx29vo6pQT64lO0pGtSO0gMdA+9t
-DWccV9cGrcrI9f4Or2YlSASWC12juhbDCE/RRvgUXPLIXgGZbf2IzIaowW8xQmxSPmjL8xk037uH
-GFaAJsTQ3MBv396gwpEWoGQRS0S8Hvbn+mPeZqx2pHGj7DaUaHp3pLHnDi+BeuK1cobvomuL8A/b
-01k/unK8RCSc43Oz969XL0Imnal0ugBS8kvNU3xHCzaFDmapCJcWNFfBZveA4+1wVMeT4C4oFVmH
-ursCAwEAAaOBnTCBmjATBgkrBgEEAYI3FAIEBh4EAEMAQTALBgNVHQ8EBAMCAYYwDwYDVR0TAQH/
-BAUwAwEB/zAdBgNVHQ4EFgQUQjK2FvoE/f5dS3rD/fdMQB1aQ68wNAYDVR0fBC0wKzApoCegJYYj
-aHR0cDovL2NybC5zZWN1cmV0cnVzdC5jb20vU1RDQS5jcmwwEAYJKwYBBAGCNxUBBAMCAQAwDQYJ
-KoZIhvcNAQEFBQADggEBADDtT0rhWDpSclu1pqNlGKa7UTt36Z3q059c4EVlew3KW+JwULKUBRSu
-SceNQQcSc5R+DCMh/bwQf2AQWnL1mA6s7Ll/3XpvXdMc9P+IBWlCqQVxyLesJugutIxq/3HcuLHf
-mbx8IVQr5Fiiu1cprp6poxkmD5kuCLDv/WnPmRoJjeOnnyvJNjR7JLN4TJUXpAYmHrZkUjZfYGfZ
-nMUFdAvnZyPSCPyI6a6Lf+Ew9Dd+/cYy2i2eRDAwbO4H3tI0/NL/QPZL9GZGBlSm8jIKYyYwa5vR
-3ItHuuG51WLQoqD0ZwV4KWMabwTW+MZMo5qxN7SN5ShLHZ4swrhovO0C7jE=
------END CERTIFICATE-----
-
-Secure Global CA
-================
------BEGIN CERTIFICATE-----
-MIIDvDCCAqSgAwIBAgIQB1YipOjUiolN9BPI8PjqpTANBgkqhkiG9w0BAQUFADBKMQswCQYDVQQG
-EwJVUzEgMB4GA1UEChMXU2VjdXJlVHJ1c3QgQ29ycG9yYXRpb24xGTAXBgNVBAMTEFNlY3VyZSBH
-bG9iYWwgQ0EwHhcNMDYxMTA3MTk0MjI4WhcNMjkxMjMxMTk1MjA2WjBKMQswCQYDVQQGEwJVUzEg
-MB4GA1UEChMXU2VjdXJlVHJ1c3QgQ29ycG9yYXRpb24xGTAXBgNVBAMTEFNlY3VyZSBHbG9iYWwg
-Q0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCvNS7YrGxVaQZx5RNoJLNP2MwhR/jx
-YDiJiQPpvepeRlMJ3Fz1Wuj3RSoC6zFh1ykzTM7HfAo3fg+6MpjhHZevj8fcyTiW89sa/FHtaMbQ
-bqR8JNGuQsiWUGMu4P51/pinX0kuleM5M2SOHqRfkNJnPLLZ/kG5VacJjnIFHovdRIWCQtBJwB1g
-8NEXLJXr9qXBkqPFwqcIYA1gBBCWeZ4WNOaptvolRTnIHmX5k/Wq8VLcmZg9pYYaDDUz+kulBAYV
-HDGA76oYa8J719rO+TMg1fW9ajMtgQT7sFzUnKPiXB3jqUJ1XnvUd+85VLrJChgbEplJL4hL/VBi
-0XPnj3pDAgMBAAGjgZ0wgZowEwYJKwYBBAGCNxQCBAYeBABDAEEwCwYDVR0PBAQDAgGGMA8GA1Ud
-EwEB/wQFMAMBAf8wHQYDVR0OBBYEFK9EBMJBfkiD2045AuzshHrmzsmkMDQGA1UdHwQtMCswKaAn
-oCWGI2h0dHA6Ly9jcmwuc2VjdXJldHJ1c3QuY29tL1NHQ0EuY3JsMBAGCSsGAQQBgjcVAQQDAgEA
-MA0GCSqGSIb3DQEBBQUAA4IBAQBjGghAfaReUw132HquHw0LURYD7xh8yOOvaliTFGCRsoTciE6+
-OYo68+aCiV0BN7OrJKQVDpI1WkpEXk5X+nXOH0jOZvQ8QCaSmGwb7iRGDBezUqXbpZGRzzfTb+cn
-CDpOGR86p1hcF895P4vkp9MmI50mD1hp/Ed+stCNi5O/KU9DaXR2Z0vPB4zmAve14bRDtUstFJ/5
-3CYNv6ZHdAbYiNE6KTCEztI5gGIbqMdXSbxqVVFnFUq+NQfk1XWYN3kwFNspnWzFacxHVaIw98xc
-f8LDmBxrThaA63p4ZUWiABqvDA1VZDRIuJK58bRQKfJPIx/abKwfROHdI3hRW8cW
------END CERTIFICATE-----
-
-COMODO Certification Authority
-==============================
------BEGIN CERTIFICATE-----
-MIIEHTCCAwWgAwIBAgIQToEtioJl4AsC7j41AkblPTANBgkqhkiG9w0BAQUFADCBgTELMAkGA1UE
-BhMCR0IxGzAZBgNVBAgTEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4GA1UEBxMHU2FsZm9yZDEaMBgG
-A1UEChMRQ09NT0RPIENBIExpbWl0ZWQxJzAlBgNVBAMTHkNPTU9ETyBDZXJ0aWZpY2F0aW9uIEF1
-dGhvcml0eTAeFw0wNjEyMDEwMDAwMDBaFw0yOTEyMzEyMzU5NTlaMIGBMQswCQYDVQQGEwJHQjEb
-MBkGA1UECBMSR3JlYXRlciBNYW5jaGVzdGVyMRAwDgYDVQQHEwdTYWxmb3JkMRowGAYDVQQKExFD
-T01PRE8gQ0EgTGltaXRlZDEnMCUGA1UEAxMeQ09NT0RPIENlcnRpZmljYXRpb24gQXV0aG9yaXR5
-MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA0ECLi3LjkRv3UcEbVASY06m/weaKXTuH
-+7uIzg3jLz8GlvCiKVCZrts7oVewdFFxze1CkU1B/qnI2GqGd0S7WWaXUF601CxwRM/aN5VCaTww
-xHGzUvAhTaHYujl8HJ6jJJ3ygxaYqhZ8Q5sVW7euNJH+1GImGEaaP+vB+fGQV+useg2L23IwambV
-4EajcNxo2f8ESIl33rXp+2dtQem8Ob0y2WIC8bGoPW43nOIv4tOiJovGuFVDiOEjPqXSJDlqR6sA
-1KGzqSX+DT+nHbrTUcELpNqsOO9VUCQFZUaTNE8tja3G1CEZ0o7KBWFxB3NH5YoZEr0ETc5OnKVI
-rLsm9wIDAQABo4GOMIGLMB0GA1UdDgQWBBQLWOWLxkwVN6RAqTCpIb5HNlpW/zAOBgNVHQ8BAf8E
-BAMCAQYwDwYDVR0TAQH/BAUwAwEB/zBJBgNVHR8EQjBAMD6gPKA6hjhodHRwOi8vY3JsLmNvbW9k
-b2NhLmNvbS9DT01PRE9DZXJ0aWZpY2F0aW9uQXV0aG9yaXR5LmNybDANBgkqhkiG9w0BAQUFAAOC
-AQEAPpiem/Yb6dc5t3iuHXIYSdOH5EOC6z/JqvWote9VfCFSZfnVDeFs9D6Mk3ORLgLETgdxb8CP
-OGEIqB6BCsAvIC9Bi5HcSEW88cbeunZrM8gALTFGTO3nnc+IlP8zwFboJIYmuNg4ON8qa90SzMc/
-RxdMosIGlgnW2/4/PEZB31jiVg88O8EckzXZOFKs7sjsLjBOlDW0JB9LeGna8gI4zJVSk/BwJVmc
-IGfE7vmLV2H0knZ9P4SNVbfo5azV8fUZVqZa+5Acr5Pr5RzUZ5ddBA6+C4OmF4O5MBKgxTMVBbkN
-+8cFduPYSo38NBejxiEovjBFMR7HeL5YYTisO+IBZQ==
------END CERTIFICATE-----
-
-DigiNotar Root CA
-=================
------BEGIN CERTIFICATE-----
-MIIFijCCA3KgAwIBAgIQDHbanJEMTiye/hXQWJM8TDANBgkqhkiG9w0BAQUFADBfMQswCQYDVQQG
-EwJOTDESMBAGA1UEChMJRGlnaU5vdGFyMRowGAYDVQQDExFEaWdpTm90YXIgUm9vdCBDQTEgMB4G
-CSqGSIb3DQEJARYRaW5mb0BkaWdpbm90YXIubmwwHhcNMDcwNTE2MTcxOTM2WhcNMjUwMzMxMTgx
-OTIxWjBfMQswCQYDVQQGEwJOTDESMBAGA1UEChMJRGlnaU5vdGFyMRowGAYDVQQDExFEaWdpTm90
-YXIgUm9vdCBDQTEgMB4GCSqGSIb3DQEJARYRaW5mb0BkaWdpbm90YXIubmwwggIiMA0GCSqGSIb3
-DQEBAQUAA4ICDwAwggIKAoICAQCssFjBAL3YIQgLK5r+blYwBZ8bd5AQQVzDDYcRd46B8cp86Yxq
-7Th0Nbva3/m7wAk3tJZzgX0zGpg595NvlX89ubF1h7pRSOiLcD6VBMXYtsMW2YiwsYcdcNqGtA8U
-i3rPENF0NqISe3eGSnnme98CEWilToauNFibJBN4ViIlHgGLS1Fx+4LMWZZpiFpoU8W5DQI3y0u8
-ZkqQfioLBQftFl9VkHXYRskbg+IIvvEjzJkd1ioPgyAVWCeCLvriIsJJsbkBgWqdbZ1Ad2h2TiEq
-bYRAhU52mXyC8/O3AlnUJgEbjt+tUwbRrhjd4rI6y9eIOI6sWym5GdOY+RgDz0iChmYLG2kPyes4
-iHomGgVMktck1JbyrFIto0fVUvY//s6EBnCmqj6i8rZWNBhXouSBbefK8GrTx5FrAoNBfBXva5pk
-XuPQPOWx63tdhvvL5ndJzaNl3Pe5nLjkC1+Tz8wwGjIczhxjlaX56uF0i57pK6kwe6AYHw4YC+Vb
-qdPRbB4HZ4+RS6mKvNJmqpMBiLKR+jFc1abBUggJzQpjotMipuih2TkGl/VujQKQjBR7P4DNG5y6
-xFhyI6+2Vp/GekIzKQc/gsnmHwUNzUwoNovTyD4cxojvXu6JZOkd69qJfjKmadHdzIif0dDJZiHc
-BmfFlHqabWJMfczgZICynkeOowIDAQABo0IwQDAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQE
-AwIBBjAdBgNVHQ4EFgQUiGi/4I41xDs4a2L3KDuEgcgM100wDQYJKoZIhvcNAQEFBQADggIBADsC
-jcs8MOhuoK3yc7NfniUTBAXT9uOLuwt5zlPe5JbF0a9zvNXD0EBVfEB/zRtfCdXyfJ9oHbtdzno5
-wozWmHvFg1Wo1X1AyuAe94leY12hE8JdiraKfADzI8PthV9xdvBoY6pFITlIYXg23PFDk9Qlx/KA
-ZeFTAnVR/Ho67zerhChXDNjU1JlWbOOi/lmEtDHoM/hklJRRl6s5xUvt2t2AC298KQ3EjopyDedT
-FLJgQT2EkTFoPSdE2+Xe9PpjRchMPpj1P0G6Tss3DbpmmPHdy59c91Q2gmssvBNhl0L4eLvMyKKf
-yvBovWsdst+Nbwed2o5nx0ceyrm/KkKRt2NTZvFCo+H0Wk1Ya7XkpDOtXHAd3ODy63MUkZoDweoA
-ZbwH/M8SESIsrqC9OuCiKthZ6SnTGDWkrBFfGbW1G/8iSlzGeuQX7yCpp/Q/rYqnmgQlnQ7KN+ZQ
-/YxCKQSa7LnPS3K94gg2ryMvYuXKAdNw23yCIywWMQzGNgeQerEfZ1jEO1hZibCMjFCz2IbLaKPE
-CudpSyDOwR5WS5WpI2jYMNjD67BVUc3l/Su49bsRn1NU9jQZjHkJNsphFyUXC4KYcwx3dMPVDceo
-EkzHp1RxRy4sGn3J4ys7SN4nhKdjNrN9j6BkOSQNPXuHr2ZcdBtLc7LljPCGmbjlxd+Ewbfr
------END CERTIFICATE-----
-
-Network Solutions Certificate Authority
-=======================================
------BEGIN CERTIFICATE-----
-MIID5jCCAs6gAwIBAgIQV8szb8JcFuZHFhfjkDFo4DANBgkqhkiG9w0BAQUFADBiMQswCQYDVQQG
-EwJVUzEhMB8GA1UEChMYTmV0d29yayBTb2x1dGlvbnMgTC5MLkMuMTAwLgYDVQQDEydOZXR3b3Jr
-IFNvbHV0aW9ucyBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkwHhcNMDYxMjAxMDAwMDAwWhcNMjkxMjMx
-MjM1OTU5WjBiMQswCQYDVQQGEwJVUzEhMB8GA1UEChMYTmV0d29yayBTb2x1dGlvbnMgTC5MLkMu
-MTAwLgYDVQQDEydOZXR3b3JrIFNvbHV0aW9ucyBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkwggEiMA0G
-CSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDkvH6SMG3G2I4rC7xGzuAnlt7e+foS0zwzc7MEL7xx
-jOWftiJgPl9dzgn/ggwbmlFQGiaJ3dVhXRncEg8tCqJDXRfQNJIg6nPPOCwGJgl6cvf6UDL4wpPT
-aaIjzkGxzOTVHzbRijr4jGPiFFlp7Q3Tf2vouAPlT2rlmGNpSAW+Lv8ztumXWWn4Zxmuk2GWRBXT
-crA/vGp97Eh/jcOrqnErU2lBUzS1sLnFBgrEsEX1QV1uiUV7PTsmjHTC5dLRfbIR1PtYMiKagMnc
-/Qzpf14Dl847ABSHJ3A4qY5usyd2mFHgBeMhqxrVhSI8KbWaFsWAqPS7azCPL0YCorEMIuDTAgMB
-AAGjgZcwgZQwHQYDVR0OBBYEFCEwyfsA106Y2oeqKtCnLrFAMadMMA4GA1UdDwEB/wQEAwIBBjAP
-BgNVHRMBAf8EBTADAQH/MFIGA1UdHwRLMEkwR6BFoEOGQWh0dHA6Ly9jcmwubmV0c29sc3NsLmNv
-bS9OZXR3b3JrU29sdXRpb25zQ2VydGlmaWNhdGVBdXRob3JpdHkuY3JsMA0GCSqGSIb3DQEBBQUA
-A4IBAQC7rkvnt1frf6ott3NHhWrB5KUd5Oc86fRZZXe1eltajSU24HqXLjjAV2CDmAaDn7l2em5Q
-4LqILPxFzBiwmZVRDuwduIj/h1AcgsLj4DKAv6ALR8jDMe+ZZzKATxcheQxpXN5eNK4CtSbqUN9/
-GGUsyfJj4akH/nxxH2szJGoeBfcFaMBqEssuXmHLrijTfsK0ZpEmXzwuJF/LWA/rKOyvEZbz3Htv
-wKeI8lN3s2Berq4o2jUsbzRF0ybh3uxbTydrFny9RAQYgrOJeRcQcT16ohZO9QHNpGxlaKFJdlxD
-ydi8NmdspZS11My5vWo1ViHe2MPr+8ukYEywVaCge1ey
------END CERTIFICATE-----
-
-WellsSecure Public Root Certificate Authority
-=============================================
------BEGIN CERTIFICATE-----
-MIIEvTCCA6WgAwIBAgIBATANBgkqhkiG9w0BAQUFADCBhTELMAkGA1UEBhMCVVMxIDAeBgNVBAoM
-F1dlbGxzIEZhcmdvIFdlbGxzU2VjdXJlMRwwGgYDVQQLDBNXZWxscyBGYXJnbyBCYW5rIE5BMTYw
-NAYDVQQDDC1XZWxsc1NlY3VyZSBQdWJsaWMgUm9vdCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkwHhcN
-MDcxMjEzMTcwNzU0WhcNMjIxMjE0MDAwNzU0WjCBhTELMAkGA1UEBhMCVVMxIDAeBgNVBAoMF1dl
-bGxzIEZhcmdvIFdlbGxzU2VjdXJlMRwwGgYDVQQLDBNXZWxscyBGYXJnbyBCYW5rIE5BMTYwNAYD
-VQQDDC1XZWxsc1NlY3VyZSBQdWJsaWMgUm9vdCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkwggEiMA0G
-CSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDub7S9eeKPCCGeOARBJe+rWxxTkqxtnt3CxC5FlAM1
-iGd0V+PfjLindo8796jE2yljDpFoNoqXjopxaAkH5OjUDk/41itMpBb570OYj7OeUt9tkTmPOL13
-i0Nj67eT/DBMHAGTthP796EfvyXhdDcsHqRePGj4S78NuR4uNuip5Kf4D8uCdXw1LSLWwr8L87T8
-bJVhHlfXBIEyg1J55oNjz7fLY4sR4r1e6/aN7ZVyKLSsEmLpSjPmgzKuBXWVvYSV2ypcm44uDLiB
-K0HmOFafSZtsdvqKXfcBeYF8wYNABf5x/Qw/zE5gCQ5lRxAvAcAFP4/4s0HvWkJ+We/SlwxlAgMB
-AAGjggE0MIIBMDAPBgNVHRMBAf8EBTADAQH/MDkGA1UdHwQyMDAwLqAsoCqGKGh0dHA6Ly9jcmwu
-cGtpLndlbGxzZmFyZ28uY29tL3dzcHJjYS5jcmwwDgYDVR0PAQH/BAQDAgHGMB0GA1UdDgQWBBQm
-lRkQ2eihl5H/3BnZtQQ+0nMKajCBsgYDVR0jBIGqMIGngBQmlRkQ2eihl5H/3BnZtQQ+0nMKaqGB
-i6SBiDCBhTELMAkGA1UEBhMCVVMxIDAeBgNVBAoMF1dlbGxzIEZhcmdvIFdlbGxzU2VjdXJlMRww
-GgYDVQQLDBNXZWxscyBGYXJnbyBCYW5rIE5BMTYwNAYDVQQDDC1XZWxsc1NlY3VyZSBQdWJsaWMg
-Um9vdCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHmCAQEwDQYJKoZIhvcNAQEFBQADggEBALkVsUSRzCPI
-K0134/iaeycNzXK7mQDKfGYZUMbVmO2rvwNa5U3lHshPcZeG1eMd/ZDJPHV3V3p9+N701NX3leZ0
-bh08rnyd2wIDBSxxSyU+B+NemvVmFymIGjifz6pBA4SXa5M4esowRBskRDPQ5NHcKDj0E0M1NSlj
-qHyita04pO2t/caaH/+Xc/77szWnk4bGdpEA5qxRFsQnMlzbc9qlk1eOPm01JghZ1edE13YgY+es
-E2fDbbFwRnzVlhE9iW9dqKHrjQrawx0zbKPqZxmamX9LPYNRKh3KL4YMon4QLSvUFpULB6ouFJJJ
-tylv2G0xffX8oRAHh84vWdw+WNs=
------END CERTIFICATE-----
diff --git a/cloudfiles/share/magic b/cloudfiles/share/magic
deleted file mode 100644
index 7ae875d..0000000
--- a/cloudfiles/share/magic
+++ /dev/null
@@ -1,15283 +0,0 @@
-# Magic data for file(1) command.
-# Format is described in magic(5).
-# Don't edit this file, edit /etc/magic or send your suggested inclusions to
-# this file as a wishlist bug against file (using the reportbug utility).
-
-
-#------------------------------------------------------------------------------
-# Localstuff:  file(1) magic for locally observed files
-#
-# $File: Localstuff,v 1.4 2003/03/23 04:17:27 christos Exp $
-# Add any locally observed files here.  Remember:
-# text if readable, executable if runnable binary, data if unreadable.
-#------------------------------------------------------------------------------
-# acorn:  file(1) magic for files found on Acorn systems
-#
-
-# RISC OS Chunk File Format
-# From RISC OS Programmer's Reference Manual, Appendix D
-# We guess the file type from the type of the first chunk.
-0	lelong		0xc3cbc6c5	RISC OS Chunk data
->12	string		OBJ_		\b, AOF object
->12	string		LIB_		\b, ALF library
-
-# RISC OS AIF, contains "SWI OS_Exit" at offset 16.
-16	lelong		0xef000011	RISC OS AIF executable
-
-# RISC OS Draw files
-# From RISC OS Programmer's Reference Manual, Appendix E
-0	string 		Draw		RISC OS Draw file data
-
-# RISC OS new format font files
-# From RISC OS Programmer's Reference Manual, Appendix E
-0	string		FONT\0		RISC OS outline font data,
->5	byte		x		version %d
-0	string		FONT\1		RISC OS 1bpp font data,
->5	byte		x		version %d
-0	string		FONT\4		RISC OS 4bpp font data
->5	byte		x		version %d
-
-# RISC OS Music files
-# From RISC OS Programmer's Reference Manual, Appendix E
-0	string		Maestro\r	RISC OS music file
->8	byte		x		version %d
-
->8	byte		x		type %d
-
-# Digital Symphony data files
-# From: Bernard Jungen (bern8817@euphonynet.be)
-0		string	\x02\x01\x13\x13\x13\x01\x0d\x10	Digital Symphony sound sample (RISC OS),
->8		byte	x	version %d,
->9		pstring	x	named "%s",
->(9.b+19)	byte	=0	8-bit logarithmic
->(9.b+19)	byte	=1	LZW-compressed linear
->(9.b+19)	byte	=2	8-bit linear signed
->(9.b+19)	byte	=3	16-bit linear signed
->(9.b+19)	byte	=4	SigmaDelta-compressed linear
->(9.b+19)	byte	=5	SigmaDelta-compressed logarithmic
->(9.b+19)	byte	>5	unknown format
-
-0	string	\x02\x01\x13\x13\x14\x12\x01\x0b	Digital Symphony song (RISC OS),
->8	byte	x	version %d,
->9	byte	=1	1 voice,
->9	byte	!1	%d voices,
->10	leshort	=1	1 track,
->10	leshort	!1	%d tracks,
->12	leshort	=1	1 pattern
->12	leshort	!1	%d patterns
-
-0	string	\x02\x01\x13\x13\x10\x14\x12\x0e
->9	byte	=0	Digital Symphony sequence (RISC OS),
->>8	byte	x	version %d,
->>10	byte	=1	1 line,
->>10	byte	!1	%d lines,
->>11	leshort	=1	1 position
->>11	leshort	!1	%d positions
->9	byte	=1	Digital Symphony pattern data (RISC OS),
->>8	byte	x	version %d,
->>10	leshort	=1	1 pattern
->>10	leshort	!1	%d patterns
-
-#------------------------------------------------------------------------------
-# adi: file(1) magic for ADi's objects
-# From Gregory McGarry <g.mcgarry@ieee.org>
-#
-0	leshort		0x521c		COFF DSP21k
->18	lelong		&02		executable,
->18	lelong		^02
->>18	lelong		&01		static object,
->>18	lelong		^01		relocatable object,
->18	lelong		&010		stripped
->18	lelong		^010		not stripped
-
-#------------------------------------------------------------------------------
-# adventure: file(1) magic for Adventure game files
-#
-# from Allen Garvin <earendil@faeryland.tamu-commerce.edu>
-# Edited by Dave Chapeskie <dchapes@ddm.on.ca> Jun 28, 1998
-# Edited by Chris Chittleborough <cchittleborough@yahoo.com.au>, March 2002
-#
-# ALAN
-# I assume there are other, lower versions, but these are the only ones I
-# saw in the archive.
-0	beshort	0x0206	ALAN game data
->2	byte	<10	version 2.6%d
-
-
-# Infocom (see z-machine)
-#------------------------------------------------------------------------------
-# Z-machine:  file(1) magic for Z-machine binaries.
-#
-# Updated by Adam Buchbinder <adam.buchbinder@gmail.com>
-#
-# The first byte is the Z-machine revision; it is always between 1 and 8. We
-# had false matches (for instance, inbig5.ocp from the Omega TeX extension as
-# well as an occasional MP3 file), so we sanity-check the version number.
-#
-# It might be possible to sanity-check the release number as well, as it seems
-# (at least in classic Infocom games) to always be a relatively small number,
-# always under 150 or so, but as this isn't rigorous, we'll wait on that until
-# it becomes clear that it's needed.
-#
-0	ubyte			>0
->0	ubyte			<9
->>16	belong&0xfe00f0f0	0x3030	Infocom game data
->>>0	ubyte			x	(Z-machine %d,
->>>>2	ubeshort		x	Release %d /
->>>>18	string			>\0	Serial %.6s)
-
-#------------------------------------------------------------------------------
-# Glulx:  file(1) magic for Glulx binaries.
-#
-# I haven't checked for false matches yet.
-#
-0	string			Glul	Glulx game data
->4	beshort			x	(Version %d
->>6	byte			x	\b.%d
->>8	byte			x	\b.%d)
->36	string			Info	Compiled by Inform
-
-
-
-# For Quetzal and blorb magic see iff
-
-
-# TADS (Text Adventure Development System)
-#  All files are machine-independent (games compile to byte-code) and are tagged
-#  with a version string of the form "V2.<digit>.<digit>\0" (but TADS 3 is
-#  on the way).
-#  Game files start with "TADS2 bin\n\r\032\0" then the compiler version.
-0	string	TADS2\ bin	TADS
->9	belong  !0x0A0D1A00	game data, CORRUPTED
->9	belong	 0x0A0D1A00
->>13	string	>\0		%s game data
-#  Resource files start with "TADS2 rsc\n\r\032\0" then the compiler version.
-0	string	TADS2\ rsc	TADS
->9	belong  !0x0A0D1A00	resource data, CORRUPTED
->9	belong	 0x0A0D1A00
->>13	string	>\0		%s resource data
-#  Some saved game files start with "TADS2 save/g\n\r\032\0", a little-endian
-#  2-byte length N, the N-char name of the game file *without* a NUL (darn!),
-# "TADS2 save\n\r\032\0" and the interpreter version. 
-0	string	TADS2\ save/g	TADS
->12	belong	!0x0A0D1A00	saved game data, CORRUPTED
->12	belong	 0x0A0D1A00
->>(16.s+32) string >\0		%s saved game data
-#  Other saved game files start with "TADS2 save\n\r\032\0" and the interpreter
-#  version.
-0	string	TADS2\ save	TADS
->10	belong	!0x0A0D1A00	saved game data, CORRUPTED
->10	belong	 0x0A0D1A00
->>14	string	>\0		%s saved game data
-
-# Danny Milosavljevic <danny.milo@gmx.net>
-# this are adrift (adventure game standard) game files, extension .taf
-# depending on version magic continues with 0x93453E6139FA (V 4.0)
-# 0x9445376139FA (V 3.90)
-# 0x9445366139FA (V 3.80)
-# this is from source (http://www.adrift.org.uk/) and I have some taf
-# files, and checked them.
-#0	belong	0x3C423FC9
-#>4	belong	0x6A87C2CF	Adrift game file
-#!:mime	application/x-adrift
-#------------------------------------------------------------------------------
-# allegro:  file(1) magic for Allegro datafiles
-# Toby Deshane <hac@shoelace.digivill.net>
-#
-0 belong 0x736C6821   Allegro datafile (packed)
-0 belong 0x736C682E   Allegro datafile (not packed/autodetect)
-0 belong 0x736C682B   Allegro datafile (appended exe data)
-
-#------------------------------------------------------------------------------
-# alliant:  file(1) magic for Alliant FX series a.out files
-#
-# If the FX series is the one that had a processor with a 68K-derived
-# instruction set, the "short" should probably become "beshort" and the
-# "long" should probably become "belong".
-# If it's the i860-based one, they should probably become either the
-# big-endian or little-endian versions, depending on the mode they ran
-# the 860 in....
-#
-0	short		0420		0420 Alliant virtual executable
->2	short		&0x0020		common library
->16	long		>0		not stripped
-0	short		0421		0421 Alliant compact executable
->2	short		&0x0020		common library
->16	long		>0		not stripped
-#------------------------------------------------------------------------------
-# alpha architecture description
-#
-
-0	leshort		0603		COFF format alpha
->22	leshort&030000	!020000		executable
->24	leshort		0410		pure
->24	leshort		0413		paged
->22	leshort&020000	!0		dynamically linked
->16	lelong		!0		not stripped
->16	lelong		0		stripped
->22	leshort&030000	020000		shared library
->24	leshort		0407		object
->27	byte		x		- version %d
->26	byte		x		.%d
->28	byte		x		-%d
-
-# Basic recognition of Digital UNIX core dumps - Mike Bremford <mike@opac.bl.uk>
-#
-# The actual magic number is just "Core", followed by a 2-byte version
-# number; however, treating any file that begins with "Core" as a Digital
-# UNIX core dump file may produce too many false hits, so we include one
-# byte of the version number as well; DU 5.0 appears only to be up to
-# version 2.
-#
-0	string		Core\001	Alpha COFF format core dump (Digital UNIX)
->24	string		>\0		\b, from '%s'
-0	string		Core\002	Alpha COFF format core dump (Digital UNIX)
->24	string		>\0		\b, from '%s'
-
-#------------------------------------------------------------------------------
-# amanda:  file(1) magic for amanda file format
-#
-0	string	AMANDA:\ 		AMANDA 
->8	string	TAPESTART\ DATE		tape header file,
->>23	string	X
->>>25	string	>\ 			Unused %s
->>23	string	>\ 			DATE %s
->8	string	FILE\ 			dump file,
->>13	string	>\ 			DATE %s
-#------------------------------------------------------------------------------
-# amigaos:  file(1) magic for AmigaOS binary formats:
-
-#
-# From ignatios@cs.uni-bonn.de (Ignatios Souvatzis)
-#
-0	belong		0x000003fa	AmigaOS shared library
-0	belong		0x000003f3	AmigaOS loadseg()ble executable/binary
-0	belong		0x000003e7	AmigaOS object/library data
-#
-0	beshort		0xe310		Amiga Workbench
->2	beshort		1		
->>48	byte		1		disk icon
->>48	byte		2		drawer icon
->>48	byte		3		tool icon
->>48	byte		4		project icon
->>48	byte		5		garbage icon
->>48	byte		6		device icon
->>48	byte		7		kickstart icon
->>48	byte		8		workbench application icon
->2	beshort		>1		icon, vers. %d
-#
-# various sound formats from the Amiga
-# G=F6tz Waschk <waschk@informatik.uni-rostock.de>
-#
-0	string		FC14		Future Composer 1.4 Module sound file
-0	string		SMOD		Future Composer 1.3 Module sound file
-0	string		AON4artofnoise	Art Of Noise Module sound file
-1	string		MUGICIAN/SOFTEYES Mugician Module sound file
-58	string		SIDMON\ II\ -\ THE	Sidmon 2.0 Module sound file
-0	string		Synth4.0	Synthesis Module sound file
-0	string		ARP.		The Holy Noise Module sound file
-0	string		BeEp\0		JamCracker Module sound file
-0	string		COSO\0		Hippel-COSO Module sound file
-# Too simple (short, pure ASCII, deep), MPi
-#26	string		V.3		Brian Postma's Soundmon Module sound file v3
-#26	string		BPSM		Brian Postma's Soundmon Module sound file v3
-#26	string		V.2		Brian Postma's Soundmon Module sound file v2
-
-# The following are from: "Stefan A. Haubenthal" <polluks@web.de>
-0	beshort		0x0f00		AmigaOS bitmap font
-0	beshort		0x0f03		AmigaOS outline font
-0	belong		0x80001001	AmigaOS outline tag
-0	string		##\ version	catalog translation
-0	string		EMOD\0		Amiga E module
-8	string		ECXM\0		ECX module
-0	string/c	@database	AmigaGuide file
-
-# Amiga disk types
-# 
-0	string		RDSK		Rigid Disk Block
->160	string		x		on %.24s
-0	string		DOS\0		Amiga DOS disk
-0	string		DOS\1		Amiga FFS disk
-0	string		DOS\2		Amiga Inter DOS disk
-0	string		DOS\3		Amiga Inter FFS disk
-0	string		DOS\4		Amiga Fastdir DOS disk
-0	string		DOS\5		Amiga Fastdir FFS disk
-0	string		KICK		Kickstart disk
-
-# From: Alex Beregszaszi <alex@fsn.hu>
-0	string		LZX		LZX compressed archive (Amiga)
-
-
-#------------------------------------------------------------------------------
-# animation:  file(1) magic for animation/movie formats
-#
-# animation formats
-# MPEG, FLI, DL originally from vax@ccwf.cc.utexas.edu (VaX#n8)
-# FLC, SGI, Apple originally from Daniel Quinlan (quinlan@yggdrasil.com)
-
-# SGI and Apple formats
-0	string		MOVI		Silicon Graphics movie file
-!:mime	video/x-sgi-movie
-4       string          moov            Apple QuickTime
-!:mime	video/quicktime
->12     string          mvhd            \b movie (fast start)
->12     string          mdra            \b URL
->12     string          cmov            \b movie (fast start, compressed header)
->12     string          rmra            \b multiple URLs
-4       string          mdat            Apple QuickTime movie (unoptimized)
-!:mime	video/quicktime
-#4       string          wide            Apple QuickTime movie (unoptimized)
-#!:mime	video/quicktime
-#4       string          skip            Apple QuickTime movie (modified)
-#!:mime	video/quicktime
-#4       string          free            Apple QuickTime movie (modified)
-#!:mime	video/quicktime
-4       string          idsc            Apple QuickTime image (fast start)
-!:mime	image/x-quicktime
-#4       string          idat            Apple QuickTime image (unoptimized)
-#!:mime	image/x-quicktime
-4       string          pckg            Apple QuickTime compressed archive
-!:mime	application/x-quicktime-player
-4	string/B	jP		JPEG 2000 image
-!:mime	image/jp2
-4	string		ftyp		ISO Media
->8	string		isom		\b, MPEG v4 system, version 1
-!:mime	video/mp4
->8	string		iso2		\b, MPEG v4 system, part 12 revision
->8	string		mp41		\b, MPEG v4 system, version 1
-!:mime	video/mp4
->8	string		mp42		\b, MPEG v4 system, version 2
-!:mime	video/mp4
->8	string		mp7t		\b, MPEG v4 system, MPEG v7 XML
->8	string		mp7b		\b, MPEG v4 system, MPEG v7 binary XML
->8	string/B	jp2		\b, JPEG 2000
-!:mime	image/jp2
->8	string		3gp		\b, MPEG v4 system, 3GPP
-!:mime	video/3gpp
->>11	byte		4		\b v4 (H.263/AMR GSM 6.10)
->>11	byte		5		\b v5 (H.263/AMR GSM 6.10)
->>11	byte		6		\b v6 (ITU H.264/AMR GSM 6.10)
->8	string		mmp4		\b, MPEG v4 system, 3GPP Mobile
-!:mime	video/mp4
->8	string		avc1		\b, MPEG v4 system, 3GPP JVT AVC
-!:mime	video/3gpp
->8	string/B	M4A		\b, MPEG v4 system, iTunes AAC-LC
-!:mime	audio/mp4
->8	string/B	M4V		\b, MPEG v4 system, iTunes AVC-LC
-!:mime	video/mp4
->8	string/B	M4P		\b, MPEG v4 system, iTunes AES encrypted
->8	string/B	M4B		\b, MPEG v4 system, iTunes bookmarked
->8	string/B	qt		\b, Apple QuickTime movie
-!:mime	video/quicktime
-
-# MPEG sequences
-# Scans for all common MPEG header start codes
-0	 belong		    0x00000001     
->4	 byte&0x1F	    0x07	   JVT NAL sequence, H.264 video
->>5      byte               66             \b, baseline
->>5      byte               77             \b, main
->>5      byte               88             \b, extended
->>7      byte               x              \b @ L %u
-0        belong&0xFFFFFF00  0x00000100     
->3       byte               0xBA           MPEG sequence
->>4      byte               &0x40          \b, v2, program multiplex
->>4      byte               ^0x40          \b, v1, system multiplex
->3       byte               0xBB           MPEG sequence, v1/2, multiplex (missing pack header)
->3       byte&0x1F          0x07           MPEG sequence, H.264 video
->>4      byte               66             \b, baseline
->>4      byte               77             \b, main
->>4      byte               88             \b, extended
->>6      byte               x              \b @ L %u
->3       byte               0xB0           MPEG sequence, v4
->>5      belong             0x000001B5
->>>9     byte               &0x80
->>>>10   byte&0xF0          16             \b, video
->>>>10   byte&0xF0          32             \b, still texture
->>>>10   byte&0xF0          48             \b, mesh
->>>>10   byte&0xF0          64             \b, face
->>>9     byte&0xF8          8              \b, video
->>>9     byte&0xF8          16             \b, still texture
->>>9     byte&0xF8          24             \b, mesh
->>>9     byte&0xF8          32             \b, face
->>4      byte               1              \b, simple @ L1
->>4      byte               2              \b, simple @ L2
->>4      byte               3              \b, simple @ L3
->>4      byte               4              \b, simple @ L0
->>4      byte               17             \b, simple scalable @ L1
->>4      byte               18             \b, simple scalable @ L2
->>4      byte               33             \b, core @ L1
->>4      byte               34             \b, core @ L2
->>4      byte               50             \b, main @ L2
->>4      byte               51             \b, main @ L3
->>4      byte               53             \b, main @ L4
->>4      byte               66             \b, n-bit @ L2
->>4      byte               81             \b, scalable texture @ L1
->>4      byte               97             \b, simple face animation @ L1
->>4      byte               98             \b, simple face animation @ L2
->>4      byte               99             \b, simple face basic animation @ L1
->>4      byte               100            \b, simple face basic animation @ L2
->>4      byte               113            \b, basic animation text @ L1
->>4      byte               114            \b, basic animation text @ L2
->>4      byte               129            \b, hybrid @ L1
->>4      byte               130            \b, hybrid @ L2
->>4      byte               145            \b, advanced RT simple @ L!
->>4      byte               146            \b, advanced RT simple @ L2
->>4      byte               147            \b, advanced RT simple @ L3
->>4      byte               148            \b, advanced RT simple @ L4
->>4      byte               161            \b, core scalable @ L1
->>4      byte               162            \b, core scalable @ L2
->>4      byte               163            \b, core scalable @ L3
->>4      byte               177            \b, advanced coding efficiency @ L1
->>4      byte               178            \b, advanced coding efficiency @ L2
->>4      byte               179            \b, advanced coding efficiency @ L3
->>4      byte               180            \b, advanced coding efficiency @ L4
->>4      byte               193            \b, advanced core @ L1
->>4      byte               194            \b, advanced core @ L2
->>4      byte               209            \b, advanced scalable texture @ L1
->>4      byte               210            \b, advanced scalable texture @ L2
->>4      byte               211            \b, advanced scalable texture @ L3
->>4      byte               225            \b, simple studio @ L1
->>4      byte               226            \b, simple studio @ L2
->>4      byte               227            \b, simple studio @ L3
->>4      byte               228            \b, simple studio @ L4
->>4      byte               229            \b, core studio @ L1
->>4      byte               230            \b, core studio @ L2
->>4      byte               231            \b, core studio @ L3
->>4      byte               232            \b, core studio @ L4
->>4      byte               240            \b, advanced simple @ L0
->>4      byte               241            \b, advanced simple @ L1
->>4      byte               242            \b, advanced simple @ L2
->>4      byte               243            \b, advanced simple @ L3
->>4      byte               244            \b, advanced simple @ L4
->>4      byte               245            \b, advanced simple @ L5
->>4      byte               247            \b, advanced simple @ L3b
->>4      byte               248            \b, FGS @ L0
->>4      byte               249            \b, FGS @ L1
->>4      byte               250            \b, FGS @ L2
->>4      byte               251            \b, FGS @ L3
->>4      byte               252            \b, FGS @ L4
->>4      byte               253            \b, FGS @ L5
->3       byte               0xB5           MPEG sequence, v4
->>4      byte               &0x80
->>>5     byte&0xF0          16             \b, video (missing profile header)
->>>5     byte&0xF0          32             \b, still texture (missing profile header)
->>>5     byte&0xF0          48             \b, mesh (missing profile header)
->>>5     byte&0xF0          64             \b, face (missing profile header)
->>4      byte&0xF8          8              \b, video (missing profile header)
->>4      byte&0xF8          16             \b, still texture (missing profile header)
->>4      byte&0xF8          24             \b, mesh (missing profile header)
->>4      byte&0xF8          32             \b, face (missing profile header)
->3       byte               0xB3           MPEG sequence
->>12     belong             0x000001B8     \b, v1, progressive Y'CbCr 4:2:0 video
->>12     belong             0x000001B2     \b, v1, progressive Y'CbCr 4:2:0 video
->>12     belong             0x000001B5     \b, v2,
->>>16    byte&0x0F          1              \b HP
->>>16    byte&0x0F          2              \b Spt
->>>16    byte&0x0F          3              \b SNR
->>>16    byte&0x0F          4              \b MP
->>>16    byte&0x0F          5              \b SP
->>>17    byte&0xF0          64             \b@HL
->>>17    byte&0xF0          96             \b@H-14
->>>17    byte&0xF0          128            \b@ML
->>>17    byte&0xF0          160            \b@LL
->>>17    byte               &0x08          \b progressive
->>>17    byte               ^0x08          \b interlaced
->>>17    byte&0x06          2              \b Y'CbCr 4:2:0 video
->>>17    byte&0x06          4              \b Y'CbCr 4:2:2 video
->>>17    byte&0x06          6              \b Y'CbCr 4:4:4 video
->>11     byte               &0x02
->>>75    byte               &0x01
->>>>140  belong             0x000001B8     \b, v1, progressive Y'CbCr 4:2:0 video
->>>>140  belong             0x000001B2     \b, v1, progressive Y'CbCr 4:2:0 video
->>>>140  belong             0x000001B5     \b, v2,
->>>>>144 byte&0x0F          1              \b HP
->>>>>144 byte&0x0F          2              \b Spt
->>>>>144 byte&0x0F          3              \b SNR
->>>>>144 byte&0x0F          4              \b MP
->>>>>144 byte&0x0F          5              \b SP
->>>>>145 byte&0xF0          64             \b@HL
->>>>>145 byte&0xF0          96             \b@H-14
->>>>>145 byte&0xF0          128            \b@ML
->>>>>145 byte&0xF0          160            \b@LL
->>>>>145 byte               &0x08          \b progressive
->>>>>145 byte               ^0x08          \b interlaced
->>>>>145 byte&0x06          2              \b Y'CbCr 4:2:0 video
->>>>>145 byte&0x06          4              \b Y'CbCr 4:2:2 video
->>>>>145 byte&0x06          6              \b Y'CbCr 4:4:4 video
->>76    belong             0x000001B8     \b, v1, progressive Y'CbCr 4:2:0 video
->>76    belong             0x000001B2     \b, v1, progressive Y'CbCr 4:2:0 video
->>76    belong             0x000001B5     \b, v2,
->>>80   byte&0x0F          1              \b HP
->>>80   byte&0x0F          2              \b Spt
->>>80   byte&0x0F          3              \b SNR
->>>80   byte&0x0F          4              \b MP
->>>80   byte&0x0F          5              \b SP
->>>81   byte&0xF0          64             \b@HL
->>>81   byte&0xF0          96             \b@H-14
->>>81   byte&0xF0          128            \b@ML
->>>81   byte&0xF0          160            \b@LL
->>>81   byte               &0x08          \b progressive
->>>81   byte               ^0x08          \b interlaced
->>>81   byte&0x06          2              \b Y'CbCr 4:2:0 video
->>>81   byte&0x06          4              \b Y'CbCr 4:2:2 video
->>>81   byte&0x06          6              \b Y'CbCr 4:4:4 video
->>4      belong&0xFFFFFF00  0x78043800     \b, HD-TV 1920P
->>>7     byte&0xF0          0x10           \b, 16:9
->>4      belong&0xFFFFFF00  0x50002D00     \b, SD-TV 1280I
->>>7     byte&0xF0          0x10           \b, 16:9
->>4      belong&0xFFFFFF00  0x30024000     \b, PAL Capture
->>>7     byte&0xF0          0x10           \b, 4:3
->>4      beshort&0xFFF0     0x2C00         \b, 4CIF
->>>5     beshort&0x0FFF     0x01E0         \b NTSC
->>>5     beshort&0x0FFF     0x0240         \b PAL
->>>7     byte&0xF0          0x20           \b, 4:3
->>>7     byte&0xF0          0x30           \b, 16:9
->>>7     byte&0xF0          0x40           \b, 11:5
->>>7     byte&0xF0          0x80           \b, PAL 4:3
->>>7     byte&0xF0          0xC0           \b, NTSC 4:3
->>4      belong&0xFFFFFF00  0x2801E000     \b, LD-TV 640P
->>>7     byte&0xF0          0x10           \b, 4:3
->>4      belong&0xFFFFFF00  0x1400F000     \b, 320x240
->>>7     byte&0xF0          0x10           \b, 4:3
->>4      belong&0xFFFFFF00  0x0F00A000     \b, 240x160
->>>7     byte&0xF0          0x10           \b, 4:3
->>4      belong&0xFFFFFF00  0x0A007800     \b, 160x120
->>>7     byte&0xF0          0x10           \b, 4:3
->>4      beshort&0xFFF0     0x1600         \b, CIF
->>>5     beshort&0x0FFF     0x00F0         \b NTSC
->>>5     beshort&0x0FFF     0x0120         \b PAL
->>>7     byte&0xF0          0x20           \b, 4:3
->>>7     byte&0xF0          0x30           \b, 16:9
->>>7     byte&0xF0          0x40           \b, 11:5
->>>7     byte&0xF0          0x80           \b, PAL 4:3
->>>7     byte&0xF0          0xC0           \b, NTSC 4:3
->>>5     beshort&0x0FFF     0x0240         \b PAL 625
->>>>7    byte&0xF0          0x20           \b, 4:3
->>>>7    byte&0xF0          0x30           \b, 16:9
->>>>7    byte&0xF0          0x40           \b, 11:5
->>4      beshort&0xFFF0     0x2D00         \b, CCIR/ITU
->>>5     beshort&0x0FFF     0x01E0         \b NTSC 525
->>>5     beshort&0x0FFF     0x0240         \b PAL 625
->>>7     byte&0xF0          0x20           \b, 4:3
->>>7     byte&0xF0          0x30           \b, 16:9
->>>7     byte&0xF0          0x40           \b, 11:5
->>4      beshort&0xFFF0     0x1E00         \b, SVCD
->>>5     beshort&0x0FFF     0x01E0         \b NTSC 525
->>>5     beshort&0x0FFF     0x0240         \b PAL 625
->>>7     byte&0xF0          0x20           \b, 4:3
->>>7     byte&0xF0          0x30           \b, 16:9
->>>7     byte&0xF0          0x40           \b, 11:5
->>7      byte&0x0F          1              \b, 23.976 fps
->>7      byte&0x0F          2              \b, 24 fps
->>7      byte&0x0F          3              \b, 25 fps
->>7      byte&0x0F          4              \b, 29.97 fps
->>7      byte&0x0F          5              \b, 30 fps
->>7      byte&0x0F          6              \b, 50 fps
->>7      byte&0x0F          7              \b, 59.94 fps
->>7      byte&0x0F          8              \b, 60 fps
->>11     byte               &0x04          \b, Constrained
-
-# MPEG ADTS Audio (*.mpx/mxa/aac)
-# from dreesen@math.fu-berlin.de
-# modified to fully support MPEG ADTS
-
-# MP3, M1A
-# modified by Joerg Jenderek
-# GRR the original test are too common for many DOS files
-# so don't accept as MP3 until we've tested the rate
-0       beshort&0xFFFE  0xFFFA
-# rates
->2      byte&0xF0       0x10           MPEG ADTS, layer III, v1,  32 kbps
-!:mime	audio/mpeg
->2      byte&0xF0       0x20           MPEG ADTS, layer III, v1,  40 kbps
-!:mime	audio/mpeg
->2      byte&0xF0       0x30           MPEG ADTS, layer III, v1,  48 kbps
-!:mime	audio/mpeg
->2      byte&0xF0       0x40           MPEG ADTS, layer III, v1,  56 kbps
-!:mime	audio/mpeg
->2      byte&0xF0       0x50           MPEG ADTS, layer III, v1,  64 kbps
-!:mime	audio/mpeg
->2      byte&0xF0       0x60           MPEG ADTS, layer III, v1,  80 kbps
-!:mime	audio/mpeg
->2      byte&0xF0       0x70           MPEG ADTS, layer III, v1,  96 kbps
-!:mime	audio/mpeg
->2      byte&0xF0       0x80           MPEG ADTS, layer III, v1, 112 kbps
-!:mime	audio/mpeg
->2      byte&0xF0       0x90           MPEG ADTS, layer III, v1, 128 kbps
-!:mime	audio/mpeg
->2      byte&0xF0       0xA0           MPEG ADTS, layer III, v1, 160 kbps
-!:mime	audio/mpeg
->2      byte&0xF0       0xB0           MPEG ADTS, layer III, v1, 192 kbps
-!:mime	audio/mpeg
->2      byte&0xF0       0xC0           MPEG ADTS, layer III, v1, 224 kbps
-!:mime	audio/mpeg
->2      byte&0xF0       0xD0           MPEG ADTS, layer III, v1, 256 kbps
-!:mime	audio/mpeg
->2      byte&0xF0       0xE0           MPEG ADTS, layer III, v1, 320 kbps
-!:mime	audio/mpeg
-# timing
->2      byte&0x0C       0x00           \b, 44.1 kHz
->2      byte&0x0C       0x04           \b, 48 kHz
->2      byte&0x0C       0x08           \b, 32 kHz
-# channels/options
->3      byte&0xC0       0x00           \b, Stereo
->3      byte&0xC0       0x40           \b, JntStereo
->3      byte&0xC0       0x80           \b, 2x Monaural
->3      byte&0xC0       0xC0           \b, Monaural
-#>1     byte            ^0x01          \b, Data Verify
-#>2     byte            &0x02          \b, Packet Pad
-#>2     byte            &0x01          \b, Custom Flag
-#>3     byte            &0x08          \b, Copyrighted
-#>3     byte            &0x04          \b, Original Source
-#>3     byte&0x03       1              \b, NR: 50/15 ms
-#>3     byte&0x03       3              \b, NR: CCIT J.17
-
-# MP2, M1A
-0       beshort&0xFFFE  0xFFFC         MPEG ADTS, layer II, v1
-!:mime	audio/mpeg
-# rates
->2      byte&0xF0       0x10           \b,  32 kbps
->2      byte&0xF0       0x20           \b,  48 kbps
->2      byte&0xF0       0x30           \b,  56 kbps
->2      byte&0xF0       0x40           \b,  64 kbps
->2      byte&0xF0       0x50           \b,  80 kbps
->2      byte&0xF0       0x60           \b,  96 kbps
->2      byte&0xF0       0x70           \b, 112 kbps
->2      byte&0xF0       0x80           \b, 128 kbps
->2      byte&0xF0       0x90           \b, 160 kbps
->2      byte&0xF0       0xA0           \b, 192 kbps
->2      byte&0xF0       0xB0           \b, 224 kbps
->2      byte&0xF0       0xC0           \b, 256 kbps
->2      byte&0xF0       0xD0           \b, 320 kbps
->2      byte&0xF0       0xE0           \b, 384 kbps
-# timing
->2      byte&0x0C       0x00           \b, 44.1 kHz
->2      byte&0x0C       0x04           \b, 48 kHz
->2      byte&0x0C       0x08           \b, 32 kHz
-# channels/options
->3      byte&0xC0       0x00           \b, Stereo
->3      byte&0xC0       0x40           \b, JntStereo
->3      byte&0xC0       0x80           \b, 2x Monaural
->3      byte&0xC0       0xC0           \b, Monaural
-#>1     byte            ^0x01          \b, Data Verify
-#>2     byte            &0x02          \b, Packet Pad
-#>2     byte            &0x01          \b, Custom Flag
-#>3     byte            &0x08          \b, Copyrighted
-#>3     byte            &0x04          \b, Original Source
-#>3     byte&0x03       1              \b, NR: 50/15 ms
-#>3     byte&0x03       3              \b, NR: CCIT J.17
-
-# MPA, M1A
-# updated by Joerg Jenderek
-# GRR the original test are too common for many DOS files, so test 32 <= kbits <= 448
-# GRR this test is still too general as it catches a BOM of UTF-16 files (0xFFFE)
-# FIXME: Almost all little endian UTF-16 text with BOM are clobbered by these entries
-#0	beshort&0xFFFE		0xFFFE	
-#>2	ubyte&0xF0	>0x0F		
-#>>2	ubyte&0xF0	<0xE1		MPEG ADTS, layer I, v1
-## rate
-#>>>2      byte&0xF0       0x10           \b,  32 kbps
-#>>>2      byte&0xF0       0x20           \b,  64 kbps
-#>>>2      byte&0xF0       0x30           \b,  96 kbps
-#>>>2      byte&0xF0       0x40           \b, 128 kbps
-#>>>2      byte&0xF0       0x50           \b, 160 kbps
-#>>>2      byte&0xF0       0x60           \b, 192 kbps
-#>>>2      byte&0xF0       0x70           \b, 224 kbps
-#>>>2      byte&0xF0       0x80           \b, 256 kbps
-#>>>2      byte&0xF0       0x90           \b, 288 kbps
-#>>>2      byte&0xF0       0xA0           \b, 320 kbps
-#>>>2      byte&0xF0       0xB0           \b, 352 kbps
-#>>>2      byte&0xF0       0xC0           \b, 384 kbps
-#>>>2      byte&0xF0       0xD0           \b, 416 kbps
-#>>>2      byte&0xF0       0xE0           \b, 448 kbps
-## timing
-#>>>2      byte&0x0C       0x00           \b, 44.1 kHz
-#>>>2      byte&0x0C       0x04           \b, 48 kHz
-#>>>2      byte&0x0C       0x08           \b, 32 kHz
-## channels/options
-#>>>3      byte&0xC0       0x00           \b, Stereo
-#>>>3      byte&0xC0       0x40           \b, JntStereo
-#>>>3      byte&0xC0       0x80           \b, 2x Monaural
-#>>>3      byte&0xC0       0xC0           \b, Monaural
-##>1     byte            ^0x01          \b, Data Verify
-##>2     byte            &0x02          \b, Packet Pad
-##>2     byte            &0x01          \b, Custom Flag
-##>3     byte            &0x08          \b, Copyrighted
-##>3     byte            &0x04          \b, Original Source
-##>3     byte&0x03       1              \b, NR: 50/15 ms
-##>3     byte&0x03       3              \b, NR: CCIT J.17
-
-# MP3, M2A
-0       beshort&0xFFFE  0xFFF2         MPEG ADTS, layer III, v2
-!:mime	audio/mpeg
-# rate
->2      byte&0xF0       0x10           \b,   8 kbps
->2      byte&0xF0       0x20           \b,  16 kbps
->2      byte&0xF0       0x30           \b,  24 kbps
->2      byte&0xF0       0x40           \b,  32 kbps
->2      byte&0xF0       0x50           \b,  40 kbps
->2      byte&0xF0       0x60           \b,  48 kbps
->2      byte&0xF0       0x70           \b,  56 kbps
->2      byte&0xF0       0x80           \b,  64 kbps
->2      byte&0xF0       0x90           \b,  80 kbps
->2      byte&0xF0       0xA0           \b,  96 kbps
->2      byte&0xF0       0xB0           \b, 112 kbps
->2      byte&0xF0       0xC0           \b, 128 kbps
->2      byte&0xF0       0xD0           \b, 144 kbps
->2      byte&0xF0       0xE0           \b, 160 kbps
-# timing
->2      byte&0x0C       0x00           \b, 22.05 kHz
->2      byte&0x0C       0x04           \b, 24 kHz
->2      byte&0x0C       0x08           \b, 16 kHz
-# channels/options
->3      byte&0xC0       0x00           \b, Stereo
->3      byte&0xC0       0x40           \b, JntStereo
->3      byte&0xC0       0x80           \b, 2x Monaural
->3      byte&0xC0       0xC0           \b, Monaural
-#>1     byte            ^0x01          \b, Data Verify
-#>2     byte            &0x02          \b, Packet Pad
-#>2     byte            &0x01          \b, Custom Flag
-#>3     byte            &0x08          \b, Copyrighted
-#>3     byte            &0x04          \b, Original Source
-#>3     byte&0x03       1              \b, NR: 50/15 ms
-#>3     byte&0x03       3              \b, NR: CCIT J.17
-
-# MP2, M2A
-0       beshort&0xFFFE  0xFFF4         MPEG ADTS, layer II, v2
-# rate 
->2      byte&0xF0       0x10           \b,   8 kbps
->2      byte&0xF0       0x20           \b,  16 kbps 
->2      byte&0xF0       0x30           \b,  24 kbps
->2      byte&0xF0       0x40           \b,  32 kbps
->2      byte&0xF0       0x50           \b,  40 kbps
->2      byte&0xF0       0x60           \b,  48 kbps
->2      byte&0xF0       0x70           \b,  56 kbps
->2      byte&0xF0       0x80           \b,  64 kbps
->2      byte&0xF0       0x90           \b,  80 kbps
->2      byte&0xF0       0xA0           \b,  96 kbps
->2      byte&0xF0       0xB0           \b, 112 kbps
->2      byte&0xF0       0xC0           \b, 128 kbps
->2      byte&0xF0       0xD0           \b, 144 kbps
->2      byte&0xF0       0xE0           \b, 160 kbps
-# timing
->2      byte&0x0C       0x00           \b, 22.05 kHz
->2      byte&0x0C       0x04           \b, 24 kHz
->2      byte&0x0C       0x08           \b, 16 kHz
-# channels/options
->3      byte&0xC0       0x00           \b, Stereo
->3      byte&0xC0       0x40           \b, JntStereo
->3      byte&0xC0       0x80           \b, 2x Monaural
->3      byte&0xC0       0xC0           \b, Monaural
-#>1     byte            ^0x01          \b, Data Verify
-#>2     byte            &0x02          \b, Packet Pad
-#>2     byte            &0x01          \b, Custom Flag
-#>3     byte            &0x08          \b, Copyrighted
-#>3     byte            &0x04          \b, Original Source
-#>3     byte&0x03       1              \b, NR: 50/15 ms
-#>3     byte&0x03       3              \b, NR: CCIT J.17
-
-# MPA, M2A
-0       beshort&0xFFFE  0xFFF6         MPEG ADTS, layer I, v2
-# rate
->2      byte&0xF0       0x10           \b,  32 kbps
->2      byte&0xF0       0x20           \b,  48 kbps
->2      byte&0xF0       0x30           \b,  56 kbps
->2      byte&0xF0       0x40           \b,  64 kbps
->2      byte&0xF0       0x50           \b,  80 kbps
->2      byte&0xF0       0x60           \b,  96 kbps
->2      byte&0xF0       0x70           \b, 112 kbps
->2      byte&0xF0       0x80           \b, 128 kbps
->2      byte&0xF0       0x90           \b, 144 kbps
->2      byte&0xF0       0xA0           \b, 160 kbps
->2      byte&0xF0       0xB0           \b, 176 kbps
->2      byte&0xF0       0xC0           \b, 192 kbps
->2      byte&0xF0       0xD0           \b, 224 kbps
->2      byte&0xF0       0xE0           \b, 256 kbps
-# timing
->2      byte&0x0C       0x00           \b, 22.05 kHz
->2      byte&0x0C       0x04           \b, 24 kHz
->2      byte&0x0C       0x08           \b, 16 kHz
-# channels/options
->3      byte&0xC0       0x00           \b, Stereo
->3      byte&0xC0       0x40           \b, JntStereo
->3      byte&0xC0       0x80           \b, 2x Monaural
->3      byte&0xC0       0xC0           \b, Monaural
-#>1     byte            ^0x01          \b, Data Verify
-#>2     byte            &0x02          \b, Packet Pad
-#>2     byte            &0x01          \b, Custom Flag
-#>3     byte            &0x08          \b, Copyrighted
-#>3     byte            &0x04          \b, Original Source
-#>3     byte&0x03       1              \b, NR: 50/15 ms
-#>3     byte&0x03       3              \b, NR: CCIT J.17
-
-# MP3, M25A
-0       beshort&0xFFFE  0xFFE2         MPEG ADTS, layer III,  v2.5
-# rate  
->2      byte&0xF0       0x10           \b,   8 kbps
->2      byte&0xF0       0x20           \b,  16 kbps
->2      byte&0xF0       0x30           \b,  24 kbps
->2      byte&0xF0       0x40           \b,  32 kbps
->2      byte&0xF0       0x50           \b,  40 kbps
->2      byte&0xF0       0x60           \b,  48 kbps
->2      byte&0xF0       0x70           \b,  56 kbps
->2      byte&0xF0       0x80           \b,  64 kbps
->2      byte&0xF0       0x90           \b,  80 kbps
->2      byte&0xF0       0xA0           \b,  96 kbps
->2      byte&0xF0       0xB0           \b, 112 kbps
->2      byte&0xF0       0xC0           \b, 128 kbps
->2      byte&0xF0       0xD0           \b, 144 kbps
->2      byte&0xF0       0xE0           \b, 160 kbps
-# timing
->2      byte&0x0C       0x00           \b, 11.025 kHz
->2      byte&0x0C       0x04           \b, 12 kHz
->2      byte&0x0C       0x08           \b, 8 kHz
-# channels/options
->3      byte&0xC0       0x00           \b, Stereo
->3      byte&0xC0       0x40           \b, JntStereo
->3      byte&0xC0       0x80           \b, 2x Monaural
->3      byte&0xC0       0xC0           \b, Monaural
-#>1     byte            ^0x01          \b, Data Verify
-#>2     byte            &0x02          \b, Packet Pad
-#>2     byte            &0x01          \b, Custom Flag
-#>3     byte            &0x08          \b, Copyrighted
-#>3     byte            &0x04          \b, Original Source
-#>3     byte&0x03       1              \b, NR: 50/15 ms
-#>3     byte&0x03       3              \b, NR: CCIT J.17
-
-# AAC (aka MPEG-2 NBC audio) and MPEG-4 audio
-
-# Stored AAC streams (instead of the MP4 format)
-0       string          ADIF           MPEG ADIF, AAC
-!:mime	audio/x-hx-aac-adif
->4      byte            &0x80
->>13    byte            &0x10          \b, VBR
->>13    byte            ^0x10          \b, CBR
->>16    byte&0x1E       0x02           \b, single stream
->>16    byte&0x1E       0x04           \b, 2 streams
->>16    byte&0x1E       0x06           \b, 3 streams
->>16    byte            &0x08          \b, 4 or more streams
->>16    byte            &0x10          \b, 8 or more streams
->>4    byte            &0x80          \b, Copyrighted
->>13   byte            &0x40          \b, Original Source
->>13   byte            &0x20          \b, Home Flag
->4      byte            ^0x80
->>4     byte            &0x10          \b, VBR
->>4     byte            ^0x10          \b, CBR
->>7     byte&0x1E       0x02           \b, single stream
->>7     byte&0x1E       0x04           \b, 2 streams
->>7     byte&0x1E       0x06           \b, 3 streams
->>7     byte            &0x08          \b, 4 or more streams
->>7     byte            &0x10          \b, 8 or more streams
->>4    byte            &0x40          \b, Original Stream(s)
->>4    byte            &0x20          \b, Home Source
-
-# Live or stored single AAC stream (used with MPEG-2 systems)
-0       beshort&0xFFF6  0xFFF0         MPEG ADTS, AAC
-!:mime	audio/x-hx-aac-adts
->1      byte            &0x08          \b, v2
->1      byte            ^0x08          \b, v4
-# profile
->>2     byte            &0xC0          \b LTP
->2      byte&0xc0       0x00           \b Main
->2      byte&0xc0       0x40           \b LC
->2      byte&0xc0       0x80           \b SSR
-# timing
->2      byte&0x3c       0x00           \b, 96 kHz
->2      byte&0x3c       0x04           \b, 88.2 kHz
->2      byte&0x3c       0x08           \b, 64 kHz
->2      byte&0x3c       0x0c           \b, 48 kHz
->2      byte&0x3c       0x10           \b, 44.1 kHz
->2      byte&0x3c       0x14           \b, 32 kHz
->2      byte&0x3c       0x18           \b, 24 kHz
->2      byte&0x3c       0x1c           \b, 22.05 kHz
->2      byte&0x3c       0x20           \b, 16 kHz
->2      byte&0x3c       0x24           \b, 12 kHz
->2      byte&0x3c       0x28           \b, 11.025 kHz
->2      byte&0x3c       0x2c           \b, 8 kHz
-# channels
->2      beshort&0x01c0  0x0040         \b, monaural
->2      beshort&0x01c0  0x0080         \b, stereo
->2      beshort&0x01c0  0x00c0         \b, stereo + center
->2      beshort&0x01c0  0x0100         \b, stereo+center+LFE
->2      beshort&0x01c0  0x0140         \b, surround
->2      beshort&0x01c0  0x0180         \b, surround + LFE
->2      beshort         &0x01C0        \b, surround + side
-#>1     byte            ^0x01           \b, Data Verify
-#>2     byte            &0x02           \b, Custom Flag
-#>3     byte            &0x20           \b, Original Stream
-#>3     byte            &0x10           \b, Home Source
-#>3     byte            &0x08           \b, Copyrighted
-
-# Live MPEG-4 audio streams (instead of RTP FlexMux)
-0       beshort&0xFFE0  0x56E0         MPEG-4 LOAS
-!:mime	audio/x-mp4a-latm
-#>1     beshort&0x1FFF  x              \b, %u byte packet
->3      byte&0xE0       0x40
->>4     byte&0x3C       0x04           \b, single stream
->>4     byte&0x3C       0x08           \b, 2 streams
->>4     byte&0x3C       0x0C           \b, 3 streams
->>4     byte            &0x08          \b, 4 or more streams
->>4     byte            &0x20          \b, 8 or more streams
->3      byte&0xC0       0
->>4     byte&0x78       0x08           \b, single stream
->>4     byte&0x78       0x10           \b, 2 streams
->>4     byte&0x78       0x18           \b, 3 streams
->>4     byte            &0x20          \b, 4 or more streams
->>4     byte            &0x40          \b, 8 or more streams
-# This magic isn't strong enough (matches plausible ISO-8859-1 text)
-#0       beshort         0x4DE1         MPEG-4 LO-EP audio stream
-#!:mime	audio/x-mp4a-latm
-
-# Summary: FLI animation format
-# Created by: Daniel Quinlan <quinlan@yggdrasil.com>
-# Modified by (1): Abel Cheung <abelcheung@gmail.com> (avoid over-generic detection)
-4	leshort		0xAF11
-# standard FLI always has 320x200 resolution and 8 bit color
->8	leshort		320
->>10	leshort		200
->>>12	leshort		8			FLI animation, 320x200x8
-!:mime	video/x-fli
->>>>6	leshort		x			\b, %d frames
-# frame speed is multiple of 1/70s
->>>>16	leshort		x			\b, %d/70s per frame
-
-# Summary: FLC animation format
-# Created by: Daniel Quinlan <quinlan@yggdrasil.com>
-# Modified by (1): Abel Cheung <abelcheung@gmail.com> (avoid over-generic detection)
-4	leshort		0xAF12
-# standard FLC always use 8 bit color
->12	leshort		8			FLC animation
-!:mime	video/x-flc
->>8	leshort		x			\b, %d
->>10	leshort		x			\bx%dx8
->>6	uleshort	x			\b, %d frames
->>16	uleshort	x			\b, %dms per frame
-
-# DL animation format
-# XXX - collision with most `mips' magic
-#
-# I couldn't find a real magic number for these, however, this
-# -appears- to work.  Note that it might catch other files, too, so be
-# careful!
-#
-# Note that title and author appear in the two 20-byte chunks
-# at decimal offsets 2 and 22, respectively, but they are XOR'ed with
-# 255 (hex FF)!  The DL format is really bad.
-#
-#0	byte	1	DL version 1, medium format (160x100, 4 images/screen)
-#!:mime	video/x-unknown
-#>42	byte	x	- %d screens,
-#>43	byte	x	%d commands
-#0	byte	2	DL version 2
-#!:mime	video/x-unknown
-#>1	byte	1	- large format (320x200,1 image/screen),
-#>1	byte	2	- medium format (160x100,4 images/screen),
-#>1	byte	>2	- unknown format,
-#>42	byte	x	%d screens,
-#>43	byte	x	%d commands
-# Based on empirical evidence, DL version 3 have several nulls following the
-# \003.  Most of them start with non-null values at hex offset 0x34 or so.
-#0	string	\3\0\0\0\0\0\0\0\0\0\0\0	DL version 3
-
-# iso 13818 transport stream
-#
-# from Oskar Schirmer <schirmer@scara.com> Feb 3, 2001 (ISO 13818.1)
-# (the following is a little bit restrictive and works fine for a stream
-#  that starts with PAT properly. it won't work for stream data, that is
-#  cut from an input device data right in the middle, but this shouldn't
-#  disturb)
-# syncbyte      8 bit	0x47
-# error_ind     1 bit	-
-# payload_start 1 bit	1
-# priority      1 bit	-
-# PID          13 bit	0x0000
-# scrambling    2 bit	-
-# adaptfld_ctrl 2 bit	1 or 3
-# conti_count   4 bit	0
-0	belong&0xFF5FFF1F	0x47400010	MPEG transport stream data
->188	byte			!0x47		CORRUPTED
-
-# DIF digital video file format <mpruett@sgi.com>
-0	belong&0xffffff00	0x1f070000      DIF
->4	byte			&0x01		(DVCPRO) movie file
->4	byte			^0x01		(DV) movie file
->3	byte			&0x80		(PAL)
->3	byte			^0x80		(NTSC)
-
-# Microsoft Advanced Streaming Format (ASF) <mpruett@sgi.com>
-0	belong			0x3026b275	Microsoft ASF
-!:mime	video/x-ms-asf
-
-# MNG Video Format, <URL:http://www.libpng.org/pub/mng/spec/>
-0	string			\x8aMNG		MNG video data,
-!:mime	video/x-mng
->4	belong			!0x0d0a1a0a	CORRUPTED,
->4	belong			0x0d0a1a0a
->>16    belong	x				%ld x
->>20    belong	x				%ld
-
-# JNG Video Format, <URL:http://www.libpng.org/pub/mng/spec/>
-0	string			\x8bJNG		JNG video data,
-!:mime	video/x-jng
->4	belong			!0x0d0a1a0a	CORRUPTED,
->4	belong			0x0d0a1a0a
->>16    belong	x				%ld x
->>20    belong	x				%ld
-
-# Vivo video (Wolfram Kleff)
-3	string		\x0D\x0AVersion:Vivo	Vivo video data
-
-# VRML (Virtual Reality Modelling Language)
-0       string/b        #VRML\ V1.0\ ascii	VRML 1 file
-!:mime	model/vrml
-0	string/b	#VRML\ V2.0\ utf8	ISO/IEC 14772 VRML 97 file
-!:mime	model/vrml
-
-# X3D (Extensible 3D) [http://www.web3d.org/specifications/x3d-3.0.dtd]
-# From Michel Briand <michelbriand@free.fr>
-0	string		\<?xml\ version="
-!:strength +1
->20	search/1000/cb  \<!DOCTYPE\ X3D		X3D (Extensible 3D) model xml text
-!:mime model/x3d
-
-#---------------------------------------------------------------------------
-# HVQM4: compressed movie format designed by Hudson for Nintendo GameCube
-# From Mark Sheppard <msheppard@climax.co.uk>, 2002-10-03
-#
-0	string		HVQM4		%s
->6	string		>\0		v%s
->0	byte		x		GameCube movie,
->0x34	ubeshort	x		%d x
->0x36	ubeshort	x		%d,
->0x26	ubeshort	x		%dµs,
->0x42	ubeshort	0		no audio
->0x42	ubeshort	>0		%dHz audio
-
-# From: "Stefan A. Haubenthal" <polluks@web.de>
-0	string		DVDVIDEO-VTS	Video title set,
->0x21	byte		x		v%x
-0	string		DVDVIDEO-VMG	Video manager,
->0x21	byte		x		v%x
-
-# From: Behan Webster <behanw@websterwood.com>
-# NuppelVideo used by Mythtv (*.nuv)
-# Note: there are two identical stanzas here differing only in the
-# initial string matched. It used to be done with a regex, but we're
-# trying to get rid of those.
-0	string		NuppelVideo	MythTV NuppelVideo
->12	string		x		v%s
->20	lelong		x		(%d
->24	lelong		x		\bx%d),
->36	string		P		\bprogressive,
->36	string		I		\binterlaced,
->40	ledouble	x		\baspect:%.2f,
->48	ledouble	x		\bfps:%.2f
-0	string		MythTV		MythTV NuppelVideo
->12	string		x		v%s
->20	lelong		x		(%d
->24	lelong		x		\bx%d),
->36	string		P		\bprogressive,
->36	string		I		\binterlaced,
->40	ledouble	x		\baspect:%.2f,
->48	ledouble	x		\bfps:%.2f
-
-#						MPEG file
-# MPEG sequences
-# FIXME: This section is from the old magic.mime file and needs integrating with the rest
-0       belong             0x000001BA
->4      byte               &0x40
-!:mime	video/mp2p
->4      byte               ^0x40
-!:mime	video/mpeg
-0       belong             0x000001BB
-!:mime	video/mpeg
-0       belong             0x000001B0
-!:mime	video/mp4v-es
-0       belong             0x000001B5
-!:mime	video/mp4v-es
-0       belong             0x000001B3
-!:mime	video/mpv
-0       belong&0xFF5FFF1F  0x47400010
-!:mime	video/mp2t
-0       belong             0x00000001
->4      byte&0x1F	   0x07
-!:mime	video/h264
-
-# Type: Bink Video
-# URL:  http://wiki.multimedia.cx/index.php?title=3DBink_Container
-# From: <hoehle@users.sourceforge.net>  2008-07-18
-0	string		BIK	Bink Video
->3	regex		=[a-z]	rev.%s
-#>4	ulelong		x	size %d
->20	ulelong		x	\b, %d
->24	ulelong		x	\bx%d
->8	ulelong		x	\b, %d frames
->32	ulelong		x	at rate %d/
->28	ulelong		>1	\b%d
->40	ulelong		=0	\b, no audio
->40	ulelong		!0	\b, %d audio track
->>40	ulelong		!1	\bs
-# follow properties of the first audio track only
->>48	uleshort	x	%dHz
->>51	byte&0x20	0	mono
->>51	byte&0x20	!0	stereo
-#>>51	byte&0x10	0	FFT
-#>>51	byte&0x10	!0	DCT
-
-#------------------------------------------------------------------------------
-# apl:  file(1) magic for APL (see also "pdp" and "vax" for other APL
-#       workspaces)
-#
-0	long		0100554		APL workspace (Ken's original?)
-#------------------------------------------------------------------------------
-# apple:  file(1) magic for Apple file formats
-#
-0	search/1	FiLeStArTfIlEsTaRt	binscii (apple ][) text
-0	string		\x0aGL			Binary II (apple ][) data
-0	string		\x76\xff		Squeezed (apple ][) data
-0	string		NuFile			NuFile archive (apple ][) data
-0	string		N\xf5F\xe9l\xe5		NuFile archive (apple ][) data
-0	belong		0x00051600		AppleSingle encoded Macintosh file
-0	belong		0x00051607		AppleDouble encoded Macintosh file
-
-# Type: Apple Emulator 2IMG format
-# From: Radek Vokal <rvokal@redhat.com>
-0	string		2IMG	Apple ][ 2IMG Disk Image
->4	string		XGS!	\b, XGS
->4	string		CTKG	\b, Catakig
->4	string		ShIm	\b, Sheppy's ImageMaker
->4	string		WOOF	\b, Sweet 16
->4	string		B2TR	\b, Bernie ][ the Rescue
->4	string		!nfc	\b, ASIMOV2
->4	string		x	\b, Unknown Format
->0xc	byte		00	\b, DOS 3.3 sector order
->>0x10	byte		00	\b, Volume 254
->>0x10	byte&0x7f	x	\b, Volume %u
->0xc	byte		01	\b, ProDOS sector order
->>0x14	short		x	\b, %u Blocks
->0xc	byte		02	\b, NIB data
-
-# magic for Newton PDA package formats
-# from Ruda Moura <ruda@helllabs.org>
-0	string	package0	Newton package, NOS 1.x,
->12	belong	&0x80000000	AutoRemove,
->12	belong	&0x40000000	CopyProtect,
->12	belong	&0x10000000	NoCompression,
->12	belong	&0x04000000	Relocation,
->12	belong	&0x02000000	UseFasterCompression,
->16	belong	x		version %d
-
-0	string	package1	Newton package, NOS 2.x,
->12	belong	&0x80000000	AutoRemove,
->12	belong	&0x40000000	CopyProtect,
->12	belong	&0x10000000	NoCompression,
->12	belong	&0x04000000	Relocation,
->12	belong	&0x02000000	UseFasterCompression,
->16	belong	x		version %d
-
-0	string	package4	Newton package,
->8	byte	8		NOS 1.x,
->8	byte	9		NOS 2.x,
->12	belong	&0x80000000	AutoRemove,
->12	belong	&0x40000000	CopyProtect,
->12	belong	&0x10000000	NoCompression,
-
-# The following entries for the Apple II are for files that have
-# been transferred as raw binary data from an Apple, without having
-# been encapsulated by any of the above archivers.
-#
-# In general, Apple II formats are hard to identify because Apple DOS
-# and especially Apple ProDOS have strong typing in the file system and
-# therefore programmers never felt much need to include type information
-# in the files themselves.
-#
-# Eric Fischer <enf@pobox.com>
-
-# AppleWorks word processor:
-#
-# This matches the standard tab stops for an AppleWorks file, but if
-# a file has a tab stop set in the first four columns this will fail.
-#
-# The "O" is really the magic number, but that's so common that it's
-# necessary to check the tab stops that follow it to avoid false positives.
-
-4       string          O====   AppleWorks word processor data
->85     byte&0x01       >0      \b, zoomed
->90     byte&0x01       >0      \b, paginated
->92     byte&0x01       >0      \b, with mail merge
-#>91    byte            x       \b, left margin %d
-
-# AppleWorks database:
-#
-# This isn't really a magic number, but it's the closest thing to one
-# that I could find.  The 1 and 2 really mean "order in which you defined
-# categories" and "left to right, top to bottom," respectively; the D and R
-# mean that the cursor should move either down or right when you press Return.
-
-#30	string		\x01D	AppleWorks database data
-#30	string		\x02D	AppleWorks database data
-#30	string		\x01R	AppleWorks database data
-#30	string		\x02R	AppleWorks database data
-
-# AppleWorks spreadsheet:
-#
-# Likewise, this isn't really meant as a magic number.  The R or C means
-# row- or column-order recalculation; the A or M means automatic or manual
-# recalculation.
-
-#131	string		RA	AppleWorks spreadsheet data
-#131	string		RM	AppleWorks spreadsheet data
-#131	string		CA	AppleWorks spreadsheet data
-#131	string		CM	AppleWorks spreadsheet data
-
-# Applesoft BASIC:
-#
-# This is incredibly sloppy, but will be true if the program was
-# written at its usual memory location of 2048 and its first line
-# number is less than 256.  Yuck.
-
-0       belong&0xff00ff 0x80000 Applesoft BASIC program data
-#>2     leshort         x       \b, first line number %d
-
-# ORCA/EZ assembler:
-# 
-# This will not identify ORCA/M source files, since those have
-# some sort of date code instead of the two zero bytes at 6 and 7
-# XXX Conflicts with ELF
-#4       belong&0xff00ffff       0x01000000      ORCA/EZ assembler source data
-#>5      byte                    x               \b, build number %d
-
-# Broderbund Fantavision
-#
-# I don't know what these values really mean, but they seem to recur.
-# Will they cause too many conflicts?
-
-# Probably :-)
-#2	belong&0xFF00FF		0x040008	Fantavision movie data
-
-# Some attempts at images.
-#
-# These are actually just bit-for-bit dumps of the frame buffer, so
-# there's really no reasonably way to distinguish them except for their
-# address (if preserved) -- 8192 or 16384 -- and their length -- 8192
-# or, occasionally, 8184.
-#
-# Nevertheless this will manage to catch a lot of images that happen
-# to have a solid-colored line at the bottom of the screen.
-
-# GRR: Magic too weak
-#8144	string	\x7F\x7F\x7F\x7F\x7F\x7F\x7F\x7F	Apple II image with white background
-#8144	string	\x55\x2A\x55\x2A\x55\x2A\x55\x2A	Apple II image with purple background
-#8144	string	\x2A\x55\x2A\x55\x2A\x55\x2A\x55	Apple II image with green background
-#8144	string	\xD5\xAA\xD5\xAA\xD5\xAA\xD5\xAA	Apple II image with blue background
-#8144	string	\xAA\xD5\xAA\xD5\xAA\xD5\xAA\xD5	Apple II image with orange background
-
-# Beagle Bros. Apple Mechanic fonts
-
-0	belong&0xFF00FFFF	0x6400D000	Apple Mechanic font
-
-# Apple Universal Disk Image Format (UDIF) - dmg files.
-# From Johan Gade.
-# These entries are disabled for now until we fix the following issues.
-#
-# Note there might be some problems with the "VAX COFF executable" 
-# entry. Note this entry should be placed before the mac filesystem section, 
-# particularly the "Apple Partition data" entry.
-#
-# The intended meaning of these tests is, that the file is only of the 
-# specified type if both of the lines are correct - i.e. if the first
-# line matches and the second doesn't then it is not of that type.
-#
-#0	long	0x7801730d
-#>4	long	0x62626060	UDIF read-only zlib-compressed image (UDZO)
-#
-# Note that this entry is recognized correctly by the "Apple Partition 
-# data" entry - however since this entry is more specific - this
-# information seems to be more useful.
-#0	long	0x45520200
-#>0x410	string	disk\ image	UDIF read/write image (UDRW)
-
-# From: Toby Peterson <toby@apple.com>
-0	string	bplist00	Apple binary property list
-
-# Apple binary property list (bplist)
-#  Assumes version bytes are hex.
-#  Provides content hints for version 0 files. Assumes that the root
-#  object is the first object (true for CoreFoundation implementation).
-# From: David Remahl <dremahl@apple.com>
-0		string	bplist
->6		byte	x	\bCoreFoundation binary property list data, version 0x%c
->>7		byte	x	\b%c
->6		string		00		\b
->>8		byte&0xF0	0x00	\b
->>>8	byte&0x0F	0x00	\b, root type: null
->>>8	byte&0x0F	0x08	\b, root type: false boolean
->>>8	byte&0x0F	0x09	\b, root type: true boolean
->>8		byte&0xF0	0x10	\b, root type: integer
->>8		byte&0xF0	0x20	\b, root type: real
->>8		byte&0xF0	0x30	\b, root type: date
->>8		byte&0xF0	0x40    \b, root type: data
->>8		byte&0xF0	0x50	\b, root type: ascii string
->>8		byte&0xF0	0x60	\b, root type: unicode string
->>8		byte&0xF0	0x80	\b, root type: uid (CORRUPT)
->>8		byte&0xF0	0xa0	\b, root type: array
->>8		byte&0xF0	0xd0	\b, root type: dictionary
-
-# Apple/NeXT typedstream data
-#  Serialization format used by NeXT and Apple for various
-#  purposes in YellowStep/Cocoa, including some nib files.
-# From: David Remahl <dremahl@apple.com>
-2		string		typedstream	NeXT/Apple typedstream data, big endian
->0		byte		x		\b, version %hhd
->0		byte		<5		\b
->>13	byte		0x81	\b
->>>14	ubeshort	x		\b, system %hd
-2		string		streamtyped NeXT/Apple typedstream data, little endian
->0		byte		x		\b, version %hhd
->0		byte		<5		\b
->>13	byte		0x81	\b
->>>14	uleshort	x		\b, system %hd
-
-#------------------------------------------------------------------------------
-# CAF: Apple CoreAudio File Format
-#
-# Container format for high-end audio purposes.
-# From: David Remahl <dremahl@apple.com>
-#
-0	string		caff		CoreAudio Format audio file
->4	beshort		<10		version %d
->6	beshort		x
-
-
-#------------------------------------------------------------------------------
-# Keychain database files
-0	string		kych		Mac OS X Keychain File
-
-#------------------------------------------------------------------------------
-# Code Signing related file types
-0	belong		0xfade0c00	Mac OS X Code Requirement
->8	belong		1			(opExpr)
->4	belong		x			- %d bytes
-
-0	belong		0xfade0c01	Mac OS X Code Requirement Set
->8	belong		>1			containing %d items
->4	belong		x			- %d bytes
-
-0	belong		0xfade0c02	Mac OS X Code Directory
->8	belong		x			version %x
->12	belong		>0			flags 0x%x
->4	belong		x			- %d bytes
-
-0	belong		0xfade0cc0	Mac OS X Detached Code Signature (non-executable)
->4	belong		x			- %d bytes
-
-0	belong		0xfade0cc1	Mac OS X Detached Code Signature
->8	belong		>1			(%d elements)
->4	belong		x			- %d bytes
-
-# From: "Nelson A. de Oliveira" <naoliv@gmail.com>
-# .vdi
-4	string innotek\ VirtualBox\ Disk\ Image %s
-
-#------------------------------------------------------------------------------
-# applix:  file(1) magic for Applixware
-# From: Peter Soos <sp@osb.hu>
-#
-0	string		*BEGIN		Applixware
->7	string		WORDS			Words Document
->7	string		GRAPHICS		Graphic
->7	string		RASTER			Bitmap
->7	string		SPREADSHEETS		Spreadsheet
->7	string		MACRO			Macro
->7	string		BUILDER			Builder Object
-#------------------------------------------------------------------------------
-# archive:  file(1) magic for archive formats (see also "msdos" for self-
-#           extracting compressed archives)
-#
-# cpio, ar, arc, arj, hpack, lha/lharc, rar, squish, uc2, zip, zoo, etc.
-# pre-POSIX "tar" archives are handled in the C code.
-
-# POSIX tar archives
-257	string		ustar\0		POSIX tar archive
-!:mime	application/x-tar # encoding: posix
-257	string		ustar\040\040\0	GNU tar archive
-!:mime	application/x-tar # encoding: gnu
-
-# cpio archives
-#
-# Yes, the top two "cpio archive" formats *are* supposed to just be "short".
-# The idea is to indicate archives produced on machines with the same
-# byte order as the machine running "file" with "cpio archive", and
-# to indicate archives produced on machines with the opposite byte order
-# from the machine running "file" with "byte-swapped cpio archive".
-#
-# The SVR4 "cpio(4)" hints that there are additional formats, but they
-# are defined as "short"s; I think all the new formats are
-# character-header formats and thus are strings, not numbers.
-0	short		070707		cpio archive
-!:mime	application/x-cpio
-0	short		0143561		byte-swapped cpio archive
-!:mime	application/x-cpio # encoding: swapped
-0	string		070707		ASCII cpio archive (pre-SVR4 or odc)
-0	string		070701		ASCII cpio archive (SVR4 with no CRC)
-0	string		070702		ASCII cpio archive (SVR4 with CRC)
-
-# Debian package (needs to go before regular portable archives)
-#
-0	string		=!<arch>\ndebian
-!:mime	application/x-debian-package
->8	string		debian-split	part of multipart Debian package
->8	string		debian-binary	Debian binary package
->8	string		!debian
->68	string		>\0		(format %s)
-# These next two lines do not work, because a bzip2 Debian archive
-# still uses gzip for the control.tar (first in the archive).  Only
-# data.tar varies, and the location of its filename varies too.
-# file/libmagic does not current have support for ascii-string based
-# (offsets) as of 2005-09-15.
-#>81	string		bz2		\b, uses bzip2 compression
-#>84	string		gz		\b, uses gzip compression
-#>136	ledate		x		created: %s
-
-# other archives
-0	long		0177555		very old archive
-0	short		0177555		very old PDP-11 archive
-0	long		0177545		old archive
-0	short		0177545		old PDP-11 archive
-0	long		0100554		apl workspace
-0	string		=<ar>		archive
-!:mime	application/x-archive
-
-# MIPS archive (needs to go before regular portable archives)
-#
-0	string	=!<arch>\n__________E	MIPS archive
->20	string	U			with MIPS Ucode members
->21	string	L			with MIPSEL members
->21	string	B			with MIPSEB members
->19	string	L			and an EL hash table
->19	string	B			and an EB hash table
->22	string	X			-- out of date
-
-0	search/1	-h-		Software Tools format archive text
-
-#
-# XXX - why are there multiple <ar> thingies?  Note that 0x213c6172 is
-# "!<ar", so, for new-style (4.xBSD/SVR2andup) archives, we have:
-#
-# 0	string		=!<arch>		current ar archive
-# 0	long		0x213c6172	archive file
-#
-# and for SVR1 archives, we have:
-#
-# 0	string		\<ar>		System V Release 1 ar archive
-# 0	string		=<ar>		archive
-#
-# XXX - did Aegis really store shared libraries, breakpointed modules,
-# and absolute code program modules in the same format as new-style
-# "ar" archives?
-#
-0	string		=!<arch>		current ar archive
-!:mime	application/x-archive
->8	string		__.SYMDEF	random library
->0	belong		=65538		- pre SR9.5
->0	belong		=65539		- post SR9.5
->0	beshort		2		- object archive
->0	beshort		3		- shared library module
->0	beshort		4		- debug break-pointed module
->0	beshort		5		- absolute code program module
-0	string		\<ar>		System V Release 1 ar archive
-0	string		=<ar>		archive
-#
-# XXX - from "vax", which appears to collect a bunch of byte-swapped
-# thingies, to help you recognize VAX files on big-endian machines;
-# with "leshort", "lelong", and "string", that's no longer necessary....
-#
-0	belong		0x65ff0000	VAX 3.0 archive
-0	belong		0x3c61723e	VAX 5.0 archive
-#
-0	long		0x213c6172	archive file
-0	lelong		0177555		very old VAX archive
-0	leshort		0177555		very old PDP-11 archive
-#
-# XXX - "pdp" claims that 0177545 can have an __.SYMDEF member and thus
-# be a random library (it said 0xff65 rather than 0177545).
-#
-0	lelong		0177545		old VAX archive
->8	string		__.SYMDEF	random library
-0	leshort		0177545		old PDP-11 archive
->8	string		__.SYMDEF	random library
-#
-# From "pdp" (but why a 4-byte quantity?)
-#
-0	lelong		0x39bed		PDP-11 old archive
-0	lelong		0x39bee		PDP-11 4.0 archive
-
-# ARC archiver, from Daniel Quinlan (quinlan@yggdrasil.com)
-#
-# The first byte is the magic (0x1a), byte 2 is the compression type for
-# the first file (0x01 through 0x09), and bytes 3 to 15 are the MS-DOS
-# filename of the first file (null terminated).  Since some types collide
-# we only test some types on basis of frequency: 0x08 (83%), 0x09 (5%),
-# 0x02 (5%), 0x03 (3%), 0x04 (2%), 0x06 (2%).  0x01 collides with terminfo.
-0	lelong&0x8080ffff	0x0000081a	ARC archive data, dynamic LZW
-!:mime	application/x-arc
-0	lelong&0x8080ffff	0x0000091a	ARC archive data, squashed
-!:mime	application/x-arc
-0	lelong&0x8080ffff	0x0000021a	ARC archive data, uncompressed
-!:mime	application/x-arc
-0	lelong&0x8080ffff	0x0000031a	ARC archive data, packed
-!:mime	application/x-arc
-0	lelong&0x8080ffff	0x0000041a	ARC archive data, squeezed
-!:mime	application/x-arc
-0	lelong&0x8080ffff	0x0000061a	ARC archive data, crunched
-!:mime	application/x-arc
-# [JW] stuff taken from idarc, obviously ARC successors:
-0	lelong&0x8080ffff	0x00000a1a	PAK archive data
-!:mime	application/x-arc
-0	lelong&0x8080ffff	0x0000141a	ARC+ archive data
-!:mime	application/x-arc
-0	lelong&0x8080ffff	0x0000481a	HYP archive data
-!:mime	application/x-arc
-
-# Acorn archive formats (Disaster prone simpleton, m91dps@ecs.ox.ac.uk)
-# I can't create either SPARK or ArcFS archives so I have not tested this stuff
-# [GRR:  the original entries collide with ARC, above; replaced with combined
-#  version (not tested)]
-#0	byte		0x1a		RISC OS archive (spark format)
-0	string		\032archive	RISC OS archive (ArcFS format)
-0       string          Archive\000     RISC OS archive (ArcFS format)
-
-# All these were taken from idarc, many could not be verified. Unfortunately,
-# there were many low-quality sigs, i.e. easy to trigger false positives.
-# Please notify me of any real-world fishy/ambiguous signatures and I'll try
-# to get my hands on the actual archiver and see if I find something better. [JW]
-# probably many can be enhanced by finding some 0-byte or control char near the start
-
-# idarc calls this Crush/Uncompressed... *shrug*
-0	string	CRUSH Crush archive data
-# Squeeze It (.sqz)
-0	string	HLSQZ Squeeze It archive data
-# SQWEZ
-0	string	SQWEZ SQWEZ archive data
-# HPack (.hpk)
-0	string	HPAK HPack archive data
-# HAP
-0	string	\x91\x33HF HAP archive data
-# MD/MDCD
-0	string	MDmd MDCD archive data
-# LIM
-0	string	LIM\x1a LIM archive data
-# SAR
-3	string	LH5 SAR archive data
-# BSArc/BS2
-0	string	\212\3SB \0 BSArc/BS2 archive data
-# MAR
-2	string	=-ah MAR archive data
-# ACB
-0	belong&0x00f800ff	0x00800000 ACB archive data
-# CPZ
-# TODO, this is what idarc says: 0	string	\0\0\0 CPZ archive data
-# JRC
-0	string	JRchive JRC archive data
-# Quantum
-0	string	DS\0 Quantum archive data
-# ReSOF
-0	string	PK\3\6 ReSOF archive data
-# QuArk
-0	string	7\4 QuArk archive data
-# YAC
-14	string	YC YAC archive data
-# X1
-0	string	X1 X1 archive data
-0	string	XhDr X1 archive data
-# CDC Codec (.dqt)
-0	belong&0xffffe000	0x76ff2000 CDC Codec archive data
-# AMGC
-0	string	\xad6" AMGC archive data
-# NuLIB
-0	string	NõFélå NuLIB archive data
-# PakLeo
-0	string	LEOLZW PAKLeo archive data
-# ChArc
-0	string	SChF ChArc archive data
-# PSA
-0	string	PSA PSA archive data
-# CrossePAC
-0	string	DSIGDCC CrossePAC archive data
-# Freeze
-0	string	\x1f\x9f\x4a\x10\x0a Freeze archive data
-# KBoom
-0	string	¨MP¨ KBoom archive data
-# NSQ, must go after CDC Codec
-0	string	\x76\xff NSQ archive data
-# DPA
-0	string	Dirk\ Paehl DPA archive data
-# BA
-# TODO: idarc says "bytes 0-2 == bytes 3-5"
-# TTComp
-0	string	\0\6 TTComp archive data
-# ESP, could this conflict with Easy Software Products' (e.g.ESP ghostscript) documentation?
-0	string	ESP ESP archive data
-# ZPack
-0	string	\1ZPK\1 ZPack archive data
-# Sky
-0	string	\xbc\x40 Sky archive data
-# UFA
-0	string	UFA UFA archive data
-# Dry
-0	string	=-H2O DRY archive data
-# FoxSQZ
-0	string	FOXSQZ FoxSQZ archive data
-# AR7
-0	string	,AR7 AR7 archive data
-# PPMZ
-0	string	PPMZ PPMZ archive data
-# MS Compress
-4	string	\x88\xf0\x27 MS Compress archive data
-# updated by Joerg Jenderek
->9	string	\0		
->>0	string	KWAJ		
->>>7	string	\321\003	MS Compress archive data
->>>>14	ulong	>0		\b, original size: %ld bytes
->>>>18		ubyte	>0x65  	
->>>>>18		string	x    	\b, was %.8s
->>>>>(10.b-4)	string	x    	\b.%.3s
-# MP3 (archiver, not lossy audio compression)
-0	string	MP3\x1a MP3-Archiver archive data
-# ZET
-0	string	OZÝ ZET archive data
-# TSComp
-0	string	\x65\x5d\x13\x8c\x08\x01\x03\x00 TSComp archive data
-# ARQ
-0	string	gW\4\1 ARQ archive data
-# Squash
-3	string	OctSqu Squash archive data
-# Terse
-0	string	\5\1\1\0 Terse archive data
-# PUCrunch
-0	string	\x01\x08\x0b\x08\xef\x00\x9e\x32\x30\x36\x31 PUCrunch archive data
-# UHarc
-0	string	UHA UHarc archive data
-# ABComp
-0	string	\2AB ABComp archive data
-0	string	\3AB2 ABComp archive data
-# CMP
-0	string	CO\0 CMP archive data
-# Splint
-0	string	\x93\xb9\x06 Splint archive data
-# InstallShield
-0	string	 \x13\x5d\x65\x8c InstallShield Z archive Data
-# Gather
-1	string	GTH Gather archive data
-# BOA
-0	string	BOA BOA archive data
-# RAX
-0	string	ULEB\xa RAX archive data
-# Xtreme
-0	string	ULEB\0 Xtreme archive data
-# Pack Magic
-0	string	@â\1\0 Pack Magic archive data
-# BTS
-0	belong&0xfeffffff	0x1a034465 BTS archive data
-# ELI 5750
-0	string	Ora\  ELI 5750 archive data
-# QFC
-0	string	\x1aFC\x1a QFC archive data
-0	string	\x1aQF\x1a QFC archive data
-# PRO-PACK
-0	string	RNC PRO-PACK archive data
-# 777
-0	string	777 777 archive data
-# LZS221
-0	string	sTaC LZS221 archive data
-# HPA
-0	string	HPA HPA archive data
-# Arhangel
-0	string	LG Arhangel archive data
-# EXP1, uses bzip2
-0	string	0123456789012345BZh EXP1 archive data
-# IMP
-0	string	IMP\xa IMP archive data
-# NRV
-0	string	\x00\x9E\x6E\x72\x76\xFF NRV archive data
-# Squish
-0	string	\x73\xb2\x90\xf4 Squish archive data
-# Par
-0	string	PHILIPP Par archive data
-0	string	PAR Par archive data
-# HIT
-0	string	UB HIT archive data
-# SBX
-0	belong&0xfffff000	0x53423000 SBX archive data
-# NaShrink
-0	string	NSK NaShrink archive data
-# SAPCAR
-0	string	#\ CAR\ archive\ header SAPCAR archive data
-0	string	CAR\ 2.00RG SAPCAR archive data
-# Disintegrator
-0	string	DST Disintegrator archive data
-# ASD
-0	string	ASD ASD archive data
-# InstallShield CAB
-0	string	ISc( InstallShield CAB
-# TOP4
-0	string	T4\x1a TOP4 archive data
-# BatComp left out: sig looks like COM executable
-# so TODO: get real 4dos batcomp file and find sig
-# BlakHole
-0	string	BH\5\7 BlakHole archive data
-# BIX
-0	string	BIX0 BIX archive data
-# ChiefLZA
-0	string	ChfLZ ChiefLZA archive data
-# Blink
-0	string	Blink Blink archive data
-# Logitech Compress
-0	string	\xda\xfa Logitech Compress archive data
-# ARS-Sfx (FIXME: really a SFX? then goto COM/EXE)
-1	string	(C)\ STEPANYUK ARS-Sfx archive data
-# AKT/AKT32
-0	string	AKT32 AKT32 archive data
-0	string	AKT AKT archive data
-# NPack
-0	string	MSTSM NPack archive data
-# PFT
-0	string	\0\x50\0\x14 PFT archive data
-# SemOne
-0	string	SEM SemOne archive data
-# PPMD
-0	string	\x8f\xaf\xac\x84 PPMD archive data
-# FIZ
-0	string	FIZ FIZ archive data
-# MSXiE
-0	belong&0xfffff0f0	0x4d530000 MSXiE archive data
-# DeepFreezer
-0	belong&0xfffffff0	0x797a3030 DeepFreezer archive data
-# DC
-0	string	=<DC- DC archive data
-# TPac
-0	string	\4TPAC\3 TPac archive data
-# Ai
-0	string	Ai\1\1\0 Ai archive data
-0	string	Ai\1\0\0 Ai archive data
-# Ai32
-0	string	Ai\2\0 Ai32 archive data
-0	string	Ai\2\1 Ai32 archive data
-# SBC
-0	string	SBC SBC archive data
-# Ybs
-0	string	YBS Ybs archive data
-# DitPack
-0	string	\x9e\0\0 DitPack archive data
-# DMS
-0	string	DMS! DMS archive data
-# EPC
-0	string	\x8f\xaf\xac\x8c EPC archive data
-# VSARC
-0	string	VS\x1a VSARC archive data
-# PDZ
-0	string	PDZ PDZ archive data
-# ReDuq
-0	string	rdqx ReDuq archive data
-# GCA
-0	string	GCAX GCA archive data
-# PPMN
-0	string	pN PPMN archive data
-# WinImage
-3	string	WINIMAGE WinImage archive data
-# Compressia
-0	string	CMP0CMP Compressia archive data
-# UHBC
-0	string	UHB UHBC archive data
-# WinHKI
-0	string	\x61\x5C\x04\x05 WinHKI archive data
-# WWPack data file
-0	string	WWP WWPack archive data
-# BSN (BSA, PTS-DOS)
-0	string	\xffBSG BSN archive data
-1	string	\xffBSG BSN archive data
-3	string	\xffBSG BSN archive data
-1	string	\0\xae\2 BSN archive data
-1	string	\0\xae\3 BSN archive data
-1	string	\0\xae\7 BSN archive data
-# AIN
-0	string	\x33\x18 AIN archive data
-0	string	\x33\x17 AIN archive data
-# XPA32
-0	string	xpa\0\1 XPA32 archive data
-# SZip (TODO: doesn't catch all versions)
-0	string	SZ\x0a\4 SZip archive data
-# XPack DiskImage
-0	string	jm XPack DiskImage archive data
-# XPack Data
-0	string	xpa XPack archive data
-# XPack Single Data
-0	string	Í\ jm XPack single archive data
-
-# TODO: missing due to unknown magic/magic at end of file:
-#DWC
-#ARG
-#ZAR
-#PC/3270
-#InstallIt
-#RKive
-#RK
-#XPack Diskimage
-
-# These were inspired by idarc, but actually verified
-# Dzip archiver (.dz)
-0	string	DZ Dzip archive data
->2	byte	x \b, version %i
->3	byte	x \b.%i
-# ZZip archiver (.zz)
-0	string	ZZ\ \0\0 ZZip archive data
-0	string	ZZ0 ZZip archive data
-# PAQ archiver (.paq)
-0	string	\xaa\x40\x5f\x77\x1f\xe5\x82\x0d PAQ archive data
-0	string	PAQ PAQ archive data
->3	byte&0xf0	0x30
->>3	byte	x (v%c)
-# JAR archiver (.j), this is the successor to ARJ, not Java's JAR (which is essentially ZIP)
-0xe	string	\x1aJar\x1b JAR (ARJ Software, Inc.) archive data
-0	string	JARCS JAR (ARJ Software, Inc.) archive data
-
-# ARJ archiver (jason@jarthur.Claremont.EDU)
-0	leshort		0xea60		ARJ archive data
-!:mime	application/x-arj
->5	byte		x		\b, v%d,
->8	byte		&0x04		multi-volume,
->8	byte		&0x10		slash-switched,
->8	byte		&0x20		backup,
->34	string		x		original name: %s,
->7	byte		0		os: MS-DOS
->7	byte		1		os: PRIMOS
->7	byte		2		os: Unix
->7	byte		3		os: Amiga
->7	byte		4		os: Macintosh
->7	byte		5		os: OS/2
->7	byte		6		os: Apple ][ GS
->7	byte		7		os: Atari ST
->7	byte		8		os: NeXT
->7	byte		9		os: VAX/VMS
->3	byte		>0		%d]
-# [JW] idarc says this is also possible
-2	leshort		0xea60		ARJ archive data
-
-# HA archiver (Greg Roelofs, newt@uchicago.edu)
-# This is a really bad format. A file containing HAWAII will match this...
-#0	string		HA		HA archive data,
-#>2	leshort		=1		1 file,
-#>2	leshort		>1		%u files,
-#>4	byte&0x0f	=0		first is type CPY
-#>4	byte&0x0f	=1		first is type ASC
-#>4	byte&0x0f	=2		first is type HSC
-#>4	byte&0x0f	=0x0e		first is type DIR
-#>4	byte&0x0f	=0x0f		first is type SPECIAL
-# suggestion: at least identify small archives (<1024 files)
-0  belong&0xffff00fc 0x48410000 HA archive data
->2	leshort		=1		1 file,
->2	leshort		>1		%u files,
->4	byte&0x0f	=0		first is type CPY
->4	byte&0x0f	=1		first is type ASC
->4	byte&0x0f	=2		first is type HSC
->4	byte&0x0f	=0x0e		first is type DIR
->4	byte&0x0f	=0x0f		first is type SPECIAL
-
-# HPACK archiver (Peter Gutmann, pgut1@cs.aukuni.ac.nz)
-0	string		HPAK		HPACK archive data
-
-# JAM Archive volume format, by Dmitry.Kohmanyuk@UA.net
-0	string		\351,\001JAM\ 		JAM archive,
->7	string		>\0			version %.4s
->0x26	byte		=0x27			-
->>0x2b	string          >\0			label %.11s,
->>0x27	lelong		x			serial %08x,
->>0x36	string		>\0			fstype %.8s
-
-# LHARC/LHA archiver (Greg Roelofs, newt@uchicago.edu)
-2	string		-lh0-		LHarc 1.x/ARX archive data [lh0]
-!:mime	application/x-lharc
-2	string		-lh1-		LHarc 1.x/ARX archive data [lh1]
-!:mime	application/x-lharc
-2	string		-lz4-		LHarc 1.x archive data [lz4]
-!:mime	application/x-lharc
-2	string		-lz5-		LHarc 1.x archive data [lz5]
-!:mime	application/x-lharc
-#	[never seen any but the last; -lh4- reported in comp.compression:]
-2	string		-lzs-		LHa/LZS archive data [lzs]
-!:mime	application/x-lha
-2	string		-lh\40-		LHa 2.x? archive data [lh ]
-!:mime	application/x-lha
-2	string		-lhd-		LHa 2.x? archive data [lhd]
-!:mime	application/x-lha
-2	string		-lh2-		LHa 2.x? archive data [lh2]
-!:mime	application/x-lha
-2	string		-lh3-		LHa 2.x? archive data [lh3]
-!:mime	application/x-lha
-2	string		-lh4-		LHa (2.x) archive data [lh4]
-!:mime	application/x-lha
-2	string		-lh5-		LHa (2.x) archive data [lh5]
-!:mime	application/x-lha
-2	string		-lh6-		LHa (2.x) archive data [lh6]
-!:mime	application/x-lha
-2	string		-lh7-		LHa (2.x)/LHark archive data [lh7]
-!:mime	application/x-lha
->20	byte		x		- header level %d
-# taken from idarc [JW]
-2   string      -lZ         PUT archive data
-2   string      -lz         LZS archive data 
-2   string      -sw1-       Swag archive data
-
-# RAR archiver (Greg Roelofs, newt@uchicago.edu)
-0	string		Rar!		RAR archive data,
-!:mime	application/x-rar
->44	byte		x		v%0x,
->10	byte		>0		flags:
->>10	byte		&0x01		Archive volume,
->>10	byte		&0x02		Commented,
->>10	byte		&0x04		Locked,
->>10	byte		&0x08		Solid,
->>10	byte		&0x20		Authenticated,
->35	byte		0		os: MS-DOS
->35	byte		1		os: OS/2
->35	byte		2		os: Win32
->35	byte		3		os: Unix
-# some old version? idarc says:
-0   string      RE\x7e\x5e  RAR archive data
-
-# SQUISH archiver (Greg Roelofs, newt@uchicago.edu)
-0	string		SQSH		squished archive data (Acorn RISCOS)
-
-# UC2 archiver (Greg Roelofs, newt@uchicago.edu)
-# [JW] see exe section for self-extracting version
-0	string		UC2\x1a		UC2 archive data
-
-# ZIP archives (Greg Roelofs, c/o zip-bugs@wkuvx1.wku.edu)
-0	string		PK\003\004
->4	byte		0x00		Zip archive data
-!:mime	application/zip
->4	byte		0x09		Zip archive data, at least v0.9 to extract
-!:mime	application/zip
->4	byte		0x0a		Zip archive data, at least v1.0 to extract
-!:mime	application/zip
->4	byte		0x0b		Zip archive data, at least v1.1 to extract
-!:mime	application/zip
->0x161	string		WINZIP          Zip archive data, WinZIP self-extracting
-!:mime	application/zip
->4	byte		0x14
->>30	ubelong		!0x6d696d65	Zip archive data, at least v2.0 to extract
-!:mime	application/zip
-
-# OpenOffice.org / KOffice / StarOffice documents
-# Listed here because they ARE zip files
-#
-# From: Abel Cheung <abel@oaka.org>
->4	byte		0x14
->>30	string		mimetype
-
-# KOffice (1.2 or above) formats
->>>50	string	vnd.kde.		KOffice (>=1.2)
->>>>58	string	karbon			Karbon document
->>>>58	string	kchart			KChart document
->>>>58	string	kformula		KFormula document
->>>>58	string	kivio			Kivio document
->>>>58	string	kontour			Kontour document
->>>>58	string	kpresenter		KPresenter document
->>>>58	string	kspread			KSpread document
->>>>58	string	kword			KWord document
-
-# OpenOffice formats (for OpenOffice 1.x / StarOffice 6/7)
->>>50	string	vnd.sun.xml.		OpenOffice.org 1.x
->>>>62	string	writer			Writer
->>>>>68	byte	!0x2e			document
->>>>>68	string	.template		template
->>>>>68	string	.global			global document
->>>>62	string	calc			Calc
->>>>>66	byte	!0x2e			spreadsheet
->>>>>66	string	.template		template
->>>>62	string	draw			Draw
->>>>>66	byte	!0x2e			document
->>>>>66	string	.template		template
->>>>62	string	impress			Impress
->>>>>69	byte	!0x2e			presentation
->>>>>69	string	.template		template
->>>>62	string	math			Math document
->>>>62	string	base			Database file
-
-# OpenDocument formats (for OpenOffice 2.x / StarOffice >= 8)
-# http://lists.oasis-open.org/archives/office/200505/msg00006.html
->>>50	string	vnd.oasis.opendocument.	OpenDocument
->>>>73	string	text
->>>>>77	byte	!0x2d			Text
-!:mime	application/vnd.oasis.opendocument.text
->>>>>77	string	-template		Text Template
->>>>>77	string	-web			HTML Document Template
->>>>>77	string	-master			Master Document
->>>>73	string	graphics		Drawing
->>>>>81	string	-template		Template
->>>>73	string	presentation		Presentation
->>>>>85	string	-template		Template
->>>>73	string	spreadsheet		Spreadsheet
->>>>>84	string	-template		Template
->>>>73	string	chart			Chart
->>>>>78	string	-template		Template
->>>>73	string	formula			Formula
->>>>>80	string	-template		Template
->>>>73	string	database		Database
->>>>73	string	image			Image
-
-# Zoo archiver
-20	lelong		0xfdc4a7dc	Zoo archive data
-!:mime	application/x-zoo
->4	byte		>48		\b, v%c.
->>6	byte		>47		\b%c
->>>7	byte		>47		\b%c
->32	byte		>0		\b, modify: v%d
->>33	byte		x		\b.%d+
->42	lelong		0xfdc4a7dc	\b,
->>70	byte		>0		extract: v%d
->>>71	byte		x		\b.%d+
-
-# Shell archives
-10	string		#\ This\ is\ a\ shell\ archive	shell archive text
-!:mime	application/octet-stream
-
-#
-# LBR. NB: May conflict with the questionable 
-#          "binary Computer Graphics Metafile" format.
-#
-0       string  \0\ \ \ \ \ \ \ \ \ \ \ \0\0    LBR archive data
-#
-# PMA (CP/M derivative of LHA)
-#
-2       string          -pm0-           PMarc archive data [pm0]
-2       string          -pm1-           PMarc archive data [pm1]
-2       string          -pm2-           PMarc archive data [pm2]
-2       string          -pms-           PMarc SFX archive (CP/M, DOS)
-5       string          -pc1-           PopCom compressed executable (CP/M)
-
-# From Rafael Laboissiere <rafael@laboissiere.net>
-# The Project Revision Control System (see
-# http://prcs.sourceforge.net) generates a packaged project
-# file which is recognized by the following entry: 
-0	leshort		0xeb81	PRCS packaged project
-
-# Microsoft cabinets 
-# by David Necas (Yeti) <yeti@physics.muni.cz>
-#0	string	MSCF\0\0\0\0	Microsoft cabinet file data,
-#>25	byte	x		v%d
-#>24	byte	x		\b.%d
-# MPi: All CABs have version 1.3, so this is pointless.
-# Better magic in debian-additions.
-
-# GTKtalog catalogs 
-# by David Necas (Yeti) <yeti@physics.muni.cz>
-4	string	gtktalog\ 	GTKtalog catalog data,
->13	string	3		version 3
->>14	beshort	0x677a		(gzipped)
->>14	beshort	!0x677a		(not gzipped)
->13	string	>3		version %s
-
-############################################################################
-# Parity archive reconstruction file, the 'par' file format now used on Usenet.
-0       string          PAR\0	PARity archive data
->48	leshort		=0	- Index file
->48	leshort		>0	- file number %d
-
-# Felix von Leitner <felix-file@fefe.de>
-0	string	d8:announce	BitTorrent file
-!:mime	application/x-bittorrent
-
-# Atari MSA archive - Teemu Hukkanen <tjhukkan@iki.fi>
-0       beshort 0x0e0f          Atari MSA archive data
->2      beshort x       	\b, %d sectors per track
->4      beshort 0       	\b, 1 sided
->4      beshort 1       	\b, 2 sided
->6      beshort x       	\b, starting track: %d
->8      beshort x       	\b, ending track: %d
-
-# Alternate ZIP string (amc@arwen.cs.berkeley.edu)
-0	string	PK00PK\003\004	Zip archive data
-
-# ACE archive (from http://www.wotsit.org/download.asp?f=ace)
-# by Stefan `Sec` Zehl <sec@42.org>
-7	string		**ACE**		ACE archive data
->15	byte	>0		version %d
->16	byte	=0x00		\b, from MS-DOS
->16	byte	=0x01		\b, from OS/2
->16	byte	=0x02		\b, from Win/32
->16	byte	=0x03		\b, from Unix
->16	byte	=0x04		\b, from MacOS
->16	byte	=0x05		\b, from WinNT
->16	byte	=0x06		\b, from Primos
->16	byte	=0x07		\b, from AppleGS
->16	byte	=0x08		\b, from Atari
->16	byte	=0x09		\b, from Vax/VMS
->16	byte	=0x0A		\b, from Amiga
->16	byte	=0x0B		\b, from Next
->14	byte	x		\b, version %d to extract
->5	leshort &0x0080		\b, multiple volumes,
->>17	byte	x		\b (part %d),
->5	leshort &0x0002		\b, contains comment
->5	leshort	&0x0200		\b, sfx
->5	leshort	&0x0400		\b, small dictionary
->5	leshort	&0x0800		\b, multi-volume
->5	leshort	&0x1000		\b, contains AV-String
->>30	string	\x16*UNREGISTERED\x20VERSION*	(unregistered)
->5	leshort &0x2000		\b, with recovery record
->5	leshort &0x4000		\b, locked
->5	leshort &0x8000		\b, solid
-# Date in MS-DOS format (whatever that is)
-#>18	lelong	x		Created on
-
-# sfArk : compression program for Soundfonts (sf2) by Dirk Jagdmann
-# <doj@cubic.org>
-0x1A	string	sfArk		sfArk compressed Soundfont
->0x15	string	2
->>0x1	string	>\0		Version %s
->>0x2A	string	>\0		: %s
-
-# DR-DOS 7.03 Packed File *.??_
-0	string	Packed\ File\ 	Personal NetWare Packed File
->12	string	x    		\b, was "%.12s"
-
-# EET archive
-# From: Tilman Sauerbeck <tilman@code-monkey.de>
-0	belong	0x1ee7ff00	EET archive
-!:mime	application/x-eet
-
-# rzip archives
-0	string	RZIP		rzip compressed data
->4	byte	x		- version %d
->5	byte	x		\b.%d
->6	belong	x		(%d bytes)
-
-# From: "Robert Dale" <robdale@gmail.com>
-0	belong	123		dar archive,
->4	belong	x		label "%.8x
->>8	belong	x		%.8x
->>>12	beshort	x		%.4x"
->14	byte	0x54		end slice
->14	beshort	0x4e4e		multi-part
->14	beshort	0x4e53		multi-part, with -S
-
-# Symbian installation files
-#  http://www.thouky.co.uk/software/psifs/sis.html
-#  http://developer.symbian.com/main/downloads/papers/SymbianOSv91/softwareinstallsis.pdf
-8	lelong	0x10000419	Symbian installation file
-!:mime	application/vnd.symbian.install
->4	lelong	0x1000006D	(EPOC release 3/4/5)
->4	lelong	0x10003A12	(EPOC release 6)
-0	lelong	0x10201A7A	Symbian installation file (Symbian OS 9.x)
-!:mime	x-epoc/x-sisx-app
-
-# From "Nelson A. de Oliveira" <naoliv@gmail.com>
-0	string	MPQ\032		MoPaQ (MPQ) archive
-
-# From: Dirk Jagdmann <doj@cubic.org>
-# xar archive format: http://code.google.com/p/xar/
-0	string	xar!		xar archive
->6	beshort	x		- version %ld
-
-# From: "Nelson A. de Oliveira" <naoliv@gmail.com>
-# .kgb
-0	string KGB_arch		KGB Archiver file
->10	string x		with compression level %.1s
-
-# xar (eXtensible ARchiver) archive
-# From: "David Remahl" <dremahl@apple.com>
-0	string	xar!		xar archive
-#>4	beshort	x		header size %d
->6	beshort	x		version %d,
-#>8	quad	x		compressed TOC: %d,
-#>16	quad	x		uncompressed TOC: %d,
->24	belong	0		no checksum
->24	belong	1		SHA-1 checksum
->24	belong	2		MD5 checksum
-
-# Type: Parity Archive
-# From: Daniel van Eeden <daniel_e@dds.nl>
-0	string	 PAR2		Parity Archive Volume Set
-
-#------------------------------------------------------------------------------
-# asterix:  file(1) magic for Aster*x; SunOS 5.5.1 gave the 4-character
-# strings as "long" - we assume they're just strings:
-# From: guy@netapp.com (Guy Harris)
-#
-0	string		*STA		Aster*x
->7	string		WORD			Words Document
->7	string		GRAP			Graphic
->7	string		SPRE			Spreadsheet
->7	string		MACR			Macro
-0	string		2278		Aster*x Version 2
->29	byte		0x36			Words Document
->29	byte		0x35			Graphic
->29	byte		0x32			Spreadsheet
->29	byte		0x38			Macro
-
-
-#------------------------------------------------------------------------------
-# att3b:  file(1) magic for AT&T 3B machines
-#
-# The `versions' should be un-commented if they work for you.
-# (Was the problem just one of endianness?)
-#
-# 3B20
-#
-# The 3B20 conflicts with SCCS.
-#0	beshort		0550		3b20 COFF executable
-#>12	belong		>0		not stripped
-#>22	beshort		>0		- version %ld
-#0	beshort		0551		3b20 COFF executable (TV)
-#>12	belong		>0		not stripped
-#>22	beshort		>0		- version %ld
-#
-# WE32K
-#
-0	beshort		0560		WE32000 COFF
->18	beshort		^00000020	object
->18	beshort		&00000020	executable
->12	belong		>0		not stripped
->18	beshort		^00010000	N/A on 3b2/300 w/paging
->18	beshort		&00020000	32100 required
->18	beshort		&00040000	and MAU hardware required
->20	beshort		0407		(impure)
->20	beshort		0410		(pure)
->20	beshort		0413		(demand paged)
->20	beshort		0443		(target shared library)
->22	beshort		>0		- version %ld
-0	beshort		0561		WE32000 COFF executable (TV)
->12	belong		>0		not stripped
-#>18	beshort		&00020000	- 32100 required
-#>18	beshort		&00040000	and MAU hardware required
-#>22	beshort		>0		- version %ld
-#
-# core file for 3b2 
-0	string		\000\004\036\212\200	3b2 core file
->364	string		>\0		of '%s'
-#------------------------------------------------------------------------------
-# audio:  file(1) magic for sound formats (see also "iff")
-#
-# Jan Nicolai Langfeldt (janl@ifi.uio.no), Dan Quinlan (quinlan@yggdrasil.com),
-# and others
-#
-
-# Sun/NeXT audio data
-0	string		.snd		Sun/NeXT audio data:
->12	belong		1		8-bit ISDN mu-law,
-!:mime	audio/basic
->12	belong		2		8-bit linear PCM [REF-PCM],
-!:mime	audio/basic
->12	belong		3		16-bit linear PCM,
-!:mime	audio/basic
->12	belong		4		24-bit linear PCM,
-!:mime	audio/basic
->12	belong		5		32-bit linear PCM,
-!:mime	audio/basic
->12	belong		6		32-bit IEEE floating point,
-!:mime	audio/basic
->12	belong		7		64-bit IEEE floating point,
-!:mime	audio/basic
->12	belong		8		Fragmented sample data,
->12	belong		10		DSP program,
->12	belong		11		8-bit fixed point,
->12	belong		12		16-bit fixed point,
->12	belong		13		24-bit fixed point,
->12	belong		14		32-bit fixed point,
->12	belong		18		16-bit linear with emphasis,
->12	belong		19		16-bit linear compressed,
->12	belong		20		16-bit linear with emphasis and compression,
->12	belong		21		Music kit DSP commands,
->12	belong		23		8-bit ISDN mu-law compressed (CCITT G.721 ADPCM voice enc.),
-!:mime  audio/x-adpcm
->12	belong		24		compressed (8-bit CCITT G.722 ADPCM)
->12	belong		25		compressed (3-bit CCITT G.723.3 ADPCM),
->12	belong		26		compressed (5-bit CCITT G.723.5 ADPCM),
->12	belong		27		8-bit A-law (CCITT G.711),
->20	belong		1		mono,
->20	belong		2		stereo,
->20	belong		4		quad,
->16	belong		>0		%d Hz
-
-# DEC systems (e.g. DECstation 5000) use a variant of the Sun/NeXT format
-# that uses little-endian encoding and has a different magic number
-0	lelong		0x0064732E	DEC audio data:
->12	lelong		1		8-bit ISDN mu-law,
-!:mime	audio/x-dec-basic
->12	lelong		2		8-bit linear PCM [REF-PCM],
-!:mime	audio/x-dec-basic
->12	lelong		3		16-bit linear PCM,
-!:mime	audio/x-dec-basic
->12	lelong		4		24-bit linear PCM,
-!:mime	audio/x-dec-basic
->12	lelong		5		32-bit linear PCM,
-!:mime	audio/x-dec-basic
->12	lelong		6		32-bit IEEE floating point,
-!:mime	audio/x-dec-basic
->12	lelong		7		64-bit IEEE floating point,
-!:mime	audio/x-dec-basic
->12	belong		8		Fragmented sample data,
->12	belong		10		DSP program,
->12	belong		11		8-bit fixed point,
->12	belong		12		16-bit fixed point,
->12	belong		13		24-bit fixed point,
->12	belong		14		32-bit fixed point,
->12	belong		18		16-bit linear with emphasis,
->12	belong		19		16-bit linear compressed,
->12	belong		20		16-bit linear with emphasis and compression,
->12	belong		21		Music kit DSP commands,
->12	lelong		23		8-bit ISDN mu-law compressed (CCITT G.721 ADPCM voice enc.),
-!:mime	audio/x-dec-basic
->12	belong		24		compressed (8-bit CCITT G.722 ADPCM)
->12	belong		25		compressed (3-bit CCITT G.723.3 ADPCM),
->12	belong		26		compressed (5-bit CCITT G.723.5 ADPCM),
->12	belong		27		8-bit A-law (CCITT G.711),
->20	lelong		1		mono,
->20	lelong		2		stereo,
->20	lelong		4		quad,
->16	lelong		>0		%d Hz
-
-# Creative Labs AUDIO stuff
-0	string	MThd			Standard MIDI data
-!:mime	audio/midi
->8 	beshort	x			(format %d)
->10	beshort	x			using %d track
->10	beshort		>1		\bs
->12	beshort&0x7fff	x		at 1/%d
->12	beshort&0x8000	>0		SMPTE
-
-0	string	CTMF			Creative Music (CMF) data
-!:mime	audio/x-unknown
-0	string	SBI			SoundBlaster instrument data
-!:mime	audio/x-unknown
-0	string	Creative\ Voice\ File	Creative Labs voice data
-!:mime	audio/x-unknown
-# is this next line right?  it came this way...
->19	byte	0x1A
->23	byte	>0			- version %d
->22	byte	>0			\b.%d
-
-# first entry is also the string "NTRK"
-0	belong		0x4e54524b	MultiTrack sound data
->4	belong		x		- version %ld
-
-# Extended MOD format (*.emd) (Greg Roelofs, newt@uchicago.edu); NOT TESTED
-# [based on posting 940824 by "Dirk/Elastik", husberg@lehtori.cc.tut.fi]
-0	string		EMOD		Extended MOD sound data,
->4	byte&0xf0	x		version %d
->4	byte&0x0f	x		\b.%d,
->45	byte		x		%d instruments
->83	byte		0		(module)
->83	byte		1		(song)
-
-# Real Audio (Magic .ra\0375)
-0	belong		0x2e7261fd	RealAudio sound file
-!:mime	audio/x-pn-realaudio
-0	string		.RMF\0\0\0	RealMedia file
-!:mime	application/vnd.rn-realmedia
-#video/x-pn-realvideo
-#video/vnd.rn-realvideo
-#application/vnd.rn-realmedia
-#	sigh, there are many mimes for that but the above are the most common.
-
-# MTM/669/FAR/S3M/ULT/XM format checking [Aaron Eppert, aeppert@dialin.ind.net]
-# Oct 31, 1995
-# fixed by <doj@cubic.org> 2003-06-24
-# Too short...
-#0	string		MTM		MultiTracker Module sound file
-#0	string		if		Composer 669 Module sound data
-#0	string		JN		Composer 669 Module sound data (extended format)
-0	string		MAS_U		ULT(imate) Module sound data
-
-#0	string		FAR		Module sound data
-#>4	string		>\15		Title: "%s"
-
-0x2c	string		SCRM		ScreamTracker III Module sound data
->0	string		>\0		Title: "%s"
-
-# Gravis UltraSound patches
-# From <ache@nagual.ru>
-
-0	string		GF1PATCH110\0ID#000002\0	GUS patch
-0	string		GF1PATCH100\0ID#000002\0	Old GUS	patch
-
-# mime types according to http://www.geocities.com/nevilo/mod.htm:
-#	audio/it	.it
-#	audio/x-zipped-it	.itz
-#	audio/xm	fasttracker modules
-#	audio/x-s3m	screamtracker modules
-#	audio/s3m	screamtracker modules
-#	audio/x-zipped-mod	mdz
-#	audio/mod	mod
-#	audio/x-mod	All modules (mod, s3m, 669, mtm, med, xm, it, mdz, stm, itz, xmz, s3z)
-
-#
-# Taken from loader code from mikmod version 2.14
-# by Steve McIntyre (stevem@chiark.greenend.org.uk)
-# <doj@cubic.org> added title printing on 2003-06-24
-0	string	MAS_UTrack_V00
->14	string	>/0		ultratracker V1.%.1s module sound data
-!:mime	audio/x-mod
-#audio/x-tracker-module
-
-0	string	UN05		MikMod UNI format module sound data
-
-0	string	Extended\ Module: Fasttracker II module sound data
-!:mime	audio/x-mod
-#audio/x-tracker-module
->17	string	>\0		Title: "%s"
-
-21	string/c	=!SCREAM!	Screamtracker 2 module sound data
-!:mime	audio/x-mod
-#audio/x-screamtracker-module
-21	string	BMOD2STM	Screamtracker 2 module sound data
-!:mime	audio/x-mod
-#audio/x-screamtracker-module
-1080	string	M.K.		4-channel Protracker module sound data
-!:mime	audio/x-mod
-#audio/x-protracker-module
->0	string	>\0		Title: "%s"
-1080	string	M!K!		4-channel Protracker module sound data
-!:mime	audio/x-mod
-#audio/x-protracker-module
->0	string	>\0		Title: "%s"
-1080	string	FLT4		4-channel Startracker module sound data
-!:mime	audio/x-mod
-#audio/x-startracker-module
->0	string	>\0		Title: "%s"
-1080	string	FLT8		8-channel Startracker module sound data
-!:mime	audio/x-mod
-#audio/x-startracker-module
->0	string	>\0		Title: "%s"
-1080	string	4CHN		4-channel Fasttracker module sound data
-!:mime	audio/x-mod
-#audio/x-fasttracker-module
->0	string	>\0		Title: "%s"
-1080	string	6CHN		6-channel Fasttracker module sound data
-!:mime	audio/x-mod
-#audio/x-fasttracker-module
->0	string	>\0		Title: "%s"
-1080	string	8CHN		8-channel Fasttracker module sound data
-!:mime	audio/x-mod
-#audio/x-fasttracker-module
->0	string	>\0		Title: "%s"
-1080	string	CD81		8-channel Octalyser module sound data
-!:mime	audio/x-mod
-#audio/x-octalysertracker-module
->0	string	>\0		Title: "%s"
-1080	string	OKTA		8-channel Octalyzer module sound data
-!:mime	audio/x-mod
-#audio/x-octalysertracker-module
->0	string	>\0		Title: "%s"
-# Not good enough.
-#1082	string	CH
-#>1080	string	>/0		%.2s-channel Fasttracker "oktalyzer" module sound data
-1080	string	16CN		16-channel Taketracker module sound data
-!:mime	audio/x-mod
-#audio/x-taketracker-module
->0	string	>\0		Title: "%s"
-1080	string	32CN		32-channel Taketracker module sound data
-!:mime	audio/x-mod
-#audio/x-taketracker-module
->0	string	>\0		Title: "%s"
-
-# TOC sound files -Trevor Johnson <trevor@jpj.net>
-#
-0       string          TOC             TOC sound file
-
-# sidfiles <pooka@iki.fi>
-# added name,author,(c) and new RSID type by <doj@cubic.org> 2003-06-24
-0	string		SIDPLAY\ INFOFILE	Sidplay info file
-
-0	string		PSID			PlaySID v2.2+ (AMIGA) sidtune
->4	beshort		>0			w/ header v%d,
->14	beshort		=1			single song,
->14	beshort		>1			%d songs,
->16	beshort		>0			default song: %d
->0x16	string		>\0			name: "%s"
->0x36	string		>\0			author: "%s"
->0x56	string		>\0			copyright: "%s"
-
-0	string		RSID			RSID sidtune PlaySID compatible
->4	beshort		>0			w/ header v%d,
->14	beshort		=1			single song,
->14	beshort		>1			%d songs,
->16	beshort		>0			default song: %d
->0x16	string		>\0			name: "%s"
->0x36	string		>\0			author: "%s"
->0x56	string		>\0			copyright: "%s"
-
-# IRCAM <mpruett@sgi.com>
-# VAX and MIPS files are little-endian; Sun and NeXT are big-endian
-0	belong		0x64a30100		IRCAM file (VAX)
-0	belong		0x64a30200		IRCAM file (Sun)
-0	belong		0x64a30300		IRCAM file (MIPS little-endian)
-0	belong		0x64a30400		IRCAM file (NeXT)
-
-# NIST SPHERE <mpruett@sgi.com>
-0	string		NIST_1A\n\ \ \ 1024\n	NIST SPHERE file
-
-# Sample Vision <mpruett@sgi.com>
-0	string		SOUND\ SAMPLE\ DATA\ 	Sample Vision file
-
-# Audio Visual Research <tonigonenstein@users.sourceforge.net>
-0	string		2BIT			Audio Visual Research file,
->12	beshort		=0			mono,
->12	beshort		=-1			stereo,
->14	beshort		x			%d bits
->16	beshort		=0			unsigned,
->16	beshort		=-1			signed,
->22	belong&0x00ffffff	x		%d Hz,
->18	beshort		=0			no loop,
->18	beshort		=-1			loop,
->21	ubyte		<128			note %d,
->22	byte		=0			replay 5.485 KHz
->22	byte		=1			replay 8.084 KHz
->22	byte		=2			replay 10.971 Khz
->22	byte		=3			replay 16.168 Khz
->22	byte		=4			replay 21.942 KHz
->22	byte		=5			replay 32.336 KHz
->22	byte		=6			replay 43.885 KHz
->22	byte		=7			replay 47.261 KHz
-
-# SGI SoundTrack <mpruett@sgi.com>
-0	string		_SGI_SoundTrack		SGI SoundTrack project file
-# ID3 version 2 tags <waschk@informatik.uni-rostock.de>
-0	string		ID3	Audio file with ID3 version 2
->3	byte		x	\b.%d
->4	byte		x	\b.%d
->>5	byte		&0x80	\b, unsynchronized frames
->>5	byte		&0x40	\b, extended header
->>5	byte		&0x20	\b, experimental
->>5	byte		&0x10	\b, footer present
->(6.I)	indirect	x	\b, contains: 
-
-# NSF (NES sound file) magic
-0	string		NESM\x1a	NES Sound File
->14	string		>\0		("%s" by
->46	string		>\0		%s, copyright
->78	string		>\0		%s),
->5	byte		x		version %d,
->6	byte		x		%d tracks,
->122	byte&0x2	=1		dual PAL/NTSC
->122	byte&0x1	=1		PAL
->122	byte&0x1	=0		NTSC
-
-# Type: SNES SPC700 sound files
-# From: Josh Triplett <josh@freedesktop.org>
-0	string	SNES-SPC700\ Sound\ File\ Data\ v	SNES SPC700 sound file
->&0	string	0.30					\b, version %s
->>0x23	byte	0x1B					\b, without ID666 tag
->>0x23	byte	0x1A					\b, with ID666 tag
->>>0x2E	string	>\0					\b, song "%.32s"
->>>0x4E	string	>\0					\b, game "%.32s"
-
-# Impulse tracker module (audio/x-it)
-0	string		IMPM		Impulse Tracker module sound data -
-!:mime	audio/x-mod
->4	string		>\0		"%s"
->40	leshort		!0		compatible w/ITv%x
->42	leshort		!0		created w/ITv%x
-
-# Imago Orpheus module (audio/x-imf)
-60	string		IM10		Imago Orpheus module sound data -
->0	string		>\0		"%s"
-
-# From <collver1@attbi.com>
-# These are the /etc/magic entries to decode modules, instruments, and
-# samples in Impulse Tracker's native format.
-
-0	string		IMPS		Impulse Tracker Sample
->18	byte		&2		16 bit
->18	byte		^2		8 bit
->18	byte		&4		stereo
->18	byte		^4		mono
-0	string		IMPI		Impulse Tracker Instrument
->28	leshort		!0		ITv%x
->30	byte		!0		%d samples
-
-# Yamaha TX Wave:  file(1) magic for Yamaha TX Wave audio files
-# From <collver1@attbi.com>
-0	string		LM8953		Yamaha TX Wave
->22	byte		0x49		looped
->22	byte		0xC9		non-looped
->23	byte		1		33kHz
->23	byte		2		50kHz
->23	byte		3		16kHz
-
-# scream tracker:  file(1) magic for Scream Tracker sample files
-#
-# From <collver1@attbi.com>
-76	string		SCRS		Scream Tracker Sample
->0	byte		1		sample
->0	byte		2		adlib melody
->0	byte		>2		adlib drum
->31	byte		&2		stereo
->31	byte		^2		mono
->31	byte		&4		16bit little endian
->31	byte		^4		8bit
->30	byte		0		unpacked
->30	byte		1		packed
-
-# audio
-# From: Cory Dikkers <cdikkers@swbell.net>
-0	string		MMD0		MED music file, version 0
-0	string		MMD1		OctaMED Pro music file, version 1
-0	string		MMD3		OctaMED Soundstudio music file, version 3
-0	string		OctaMEDCmpr	OctaMED Soundstudio compressed file
-0	string		MED		MED_Song
-0	string		SymM		Symphonie SymMOD music file
-#
-0	string		THX		AHX version
->3	byte		=0		1 module data
->3	byte		=1		2 module data
-#
-0	string		OKTASONG	Oktalyzer module data
-#
-0	string		DIGI\ Booster\ module\0	%s
->20	byte		>0		%c
->>21	byte		>0		\b%c
->>>22	byte		>0		\b%c
->>>>23	byte		>0		\b%c
->610	string		>\0		\b, "%s"
-#
-0	string		DBM0	   	DIGI Booster Pro Module
->4	byte		>0		V%X.
->>5	byte		x		\b%02X
->16	string		>\0		\b, "%s"
-#
-0	string		FTMN		FaceTheMusic module
->16	string		>\0d		\b, "%s"
-
-# From: <doj@cubic.org> 2003-06-24
-0	string		AMShdr\32	Velvet Studio AMS Module v2.2
-0	string		Extreme		Extreme Tracker AMS Module v1.3
-0	string		DDMF		Xtracker DMF Module
->4	byte		x		v%i
->0xD	string		>\0		Title: "%s"
->0x2B	string		>\0		Composer: "%s"
-0	string		DSM\32		Dynamic Studio Module DSM
-0	string		SONG		DigiTrekker DTM Module
-0	string		DMDL		DigiTrakker MDL Module
-0	string		PSM\32		Protracker Studio PSM Module
-44	string		PTMF		Poly Tracker PTM Module
->0	string		>\32		Title: "%s"
-0	string		MT20		MadTracker 2.0 Module MT2
-0	string		RAD\40by\40REALiTY!! RAD Adlib Tracker Module RAD
-0	string		RTMM		RTM Module
-0x426	string		MaDoKaN96	XMS Adlib Module
->0	string		>\0		Composer: "%s"
-0	string		AMF		AMF Module
->4	string		>\0		Title: "%s"
-0	string		MODINFO1	Open Cubic Player Module Inforation MDZ
-0	string		Extended\40Instrument: Fast Tracker II Instrument
-
-# From: Takeshi Hamasaki <hma@syd.odn.ne.jp>
-# NOA Nancy Codec file
-0	string		\210NOA\015\012\032	NOA Nancy Codec Movie file
-# Yamaha SMAF format
-0	string		MMMD		Yamaha SMAF file
-# Sharp Jisaku Melody format for PDC
-0	string		\001Sharp\040JisakuMelody	SHARP Cell-Phone ringing Melody
->20	string		Ver01.00	Ver. 1.00
->>32	byte		x		, %d tracks
-
-# Free lossless audio codec <http://flac.sourceforge.net>
-# From: Przemyslaw Augustyniak <silvathraec@rpg.pl>
-0	string			fLaC		FLAC audio bitstream data
-!:mime	audio/x-flac
->4	byte&0x7f		>0		\b, unknown version
->4	byte&0x7f		0		\b
-# some common bits/sample values
->>20	beshort&0x1f0		0x030		\b, 4 bit
->>20	beshort&0x1f0		0x050		\b, 6 bit
->>20	beshort&0x1f0		0x070		\b, 8 bit
->>20	beshort&0x1f0		0x0b0		\b, 12 bit
->>20	beshort&0x1f0		0x0f0		\b, 16 bit
->>20	beshort&0x1f0		0x170		\b, 24 bit
->>20	byte&0xe		0x0		\b, mono
->>20	byte&0xe		0x2		\b, stereo
->>20	byte&0xe		0x4		\b, 3 channels
->>20	byte&0xe		0x6		\b, 4 channels
->>20	byte&0xe		0x8		\b, 5 channels
->>20	byte&0xe		0xa		\b, 6 channels
->>20	byte&0xe		0xc		\b, 7 channels
->>20	byte&0xe		0xe		\b, 8 channels
-# some common sample rates
->>17	belong&0xfffff0		0x0ac440	\b, 44.1 kHz
->>17	belong&0xfffff0		0x0bb800	\b, 48 kHz
->>17	belong&0xfffff0		0x07d000	\b, 32 kHz
->>17	belong&0xfffff0		0x056220	\b, 22.05 kHz
->>17	belong&0xfffff0		0x05dc00	\b, 24 kHz
->>17	belong&0xfffff0		0x03e800	\b, 16 kHz
->>17	belong&0xfffff0		0x02b110	\b, 11.025 kHz
->>17	belong&0xfffff0		0x02ee00	\b, 12 kHz
->>17	belong&0xfffff0		0x01f400	\b, 8 kHz
->>17	belong&0xfffff0		0x177000	\b, 96 kHz
->>17	belong&0xfffff0		0x0fa000	\b, 64 kHz
->>21	byte&0xf		>0		\b, >4G samples
->>21	byte&0xf		0		\b
->>>22	belong			>0		\b, %u samples
->>>22	belong			0		\b, length unknown
-
-# (ISDN) VBOX voice message file (Wolfram Kleff)
-0       string          VBOX            VBOX voice message data
-
-# ReBorn Song Files (.rbs)
-# David J. Singer <doc@deadvirgins.org.uk>
-8       string          RB40             RBS Song file
->29     string          ReBorn           created by ReBorn
->37     string          Propellerhead    created by ReBirth
-
-# Synthesizer Generator and Kimwitu share their file format
-0	string		A#S#C#S#S#L#V#3	    Synthesizer Generator or Kimwitu data
-# Kimwitu++ uses a slightly different magic
-0	string		A#S#C#S#S#L#HUB	    Kimwitu++ data
-
-# From "Simon Hosie
-0       string  TFMX-SONG       TFMX module sound data
-
-# Monkey's Audio compressed audio format (.ape)
-# From danny.milo@gmx.net (Danny Milosavljevic)
-# New version from Abel Cheung <abel (@) oaka.org>
-0		string		MAC\040		Monkey's Audio compressed format
->4		uleshort	>0x0F8B		version %d
->>(0x08.l)	uleshort	=1000		with fast compression
->>(0x08.l)	uleshort	=2000		with normal compression
->>(0x08.l)	uleshort	=3000		with high compression
->>(0x08.l)	uleshort	=4000		with extra high compression
->>(0x08.l)	uleshort	=5000		with insane compression
->>(0x08.l+18)	uleshort	=1		\b, mono
->>(0x08.l+18)	uleshort	=2		\b, stereo
->>(0x08.l+20)	ulelong		x		\b, sample rate %d
->4		uleshort	<0x0F8C		version %d
->>6		uleshort	=1000		with fast compression
->>6		uleshort	=2000		with normal compression
->>6		uleshort	=3000		with high compression
->>6		uleshort	=4000		with extra high compression
->>6		uleshort	=5000		with insane compression
->>10		uleshort	=1		\b, mono
->>10		uleshort	=2		\b, stereo
->>12		ulelong		x		\b, sample rate %d
-
-# adlib sound files
-# From Gürkan Sengün <gurkan@linuks.mine.nu>, http://www.linuks.mine.nu
-0    	string		RAWADATA	RdosPlay RAW
-
-1068	string		RoR		AMUSIC Adlib Tracker
-
-0	string		JCH		EdLib
-
-0	string		mpu401tr	MPU-401 Trakker
-
-0	string		SAdT		Surprise! Adlib Tracker
->4	byte		x		Version %d
-
-0	string		XAD!		eXotic ADlib
-
-0	string		ofTAZ!		eXtra Simple Music
-
-# Spectrum 128 tunes (.ay files).
-# From: Emanuel Haupt <ehaupt@critical.ch>
-0	string		ZXAYEMUL	Spectrum 128 tune
-
-0	string		\0BONK		BONK,
-#>5	byte		x		version %d
->14	byte		x		%d channel(s),
->15	byte		=1		lossless,
->15	byte		=0		lossy,
->16	byte		x		mid-side
-
-384	string		LockStream	LockStream Embedded file (mostly MP3 on old Nokia phones)
-
-# format VQF (proprietary codec for sound)
-# some infos on the header file available at :
-# http://www.twinvq.org/english/technology_format.html
-0	string		TWIN97012000	VQF data
->27	short		0		\b, Mono
->27	short		1		\b, Stereo
->31	short 		>0		\b, %d kbit/s
->35	short 		>0		\b, %d kHz
-
-# Nelson A. de Oliveira (naoliv@gmail.com)
-# .eqf
-0	string	Winamp\ EQ\ library\ file	%s
-# it will match only versions like v<digit>.<digit>
-# Since I saw only eqf files with version v1.1 I think that it's OK
->23	string	x	\b%.4s
-# .preset
-0	string	[Equalizer\ preset]	XMMS equalizer preset
-# .m3u
-0	search/1	#EXTM3U 	M3U playlist text
-# .pls
-0	search/1	[playlist]	PLS playlist text
-# licq.conf
-1	string	[licq]			LICQ configuration file
-
-# Atari ST audio files by Dirk Jagdmann <doj@cubic.org>
-0	string		ICE!		SNDH Atari ST music
-0	string		SC68\ Music-file\ /\ (c)\ (BeN)jami	sc68 Atari ST music
-
-# musepak support From: "Jiri Pejchal" <jiri.pejchal@gmail.com>
-0       string          MP+     Musepack audio
->3      byte            255     \b, SV pre8
->3      byte&0xF        0x6     \b, SV 6
->3      byte&0xF        0x8     \b, SV 8
->3      byte&0xF        0x7     \b, SV 7
->>3     byte&0xF0       0x0     \b.0
->>3     byte&0xF0       0x10    \b.1
->>3     byte&0xF0       240     \b.15
->>10    byte&0xF0       0x0     \b, no profile
->>10    byte&0xF0       0x10    \b, profile 'Unstable/Experimental'
->>10    byte&0xF0       0x50    \b, quality 0
->>10    byte&0xF0       0x60    \b, quality 1
->>10    byte&0xF0       0x70    \b, quality 2 (Telephone)
->>10    byte&0xF0       0x80    \b, quality 3 (Thumb)
->>10    byte&0xF0       0x90    \b, quality 4 (Radio)
->>10    byte&0xF0       0xA0    \b, quality 5 (Standard)
->>10    byte&0xF0       0xB0    \b, quality 6 (Xtreme)
->>10    byte&0xF0       0xC0    \b, quality 7 (Insane)
->>10    byte&0xF0       0xD0    \b, quality 8 (BrainDead)
->>10    byte&0xF0       0xE0    \b, quality 9
->>10    byte&0xF0       0xF0    \b, quality 10
->>27    byte            0x0     \b, Buschmann 1.7.0-9, Klemm 0.90-1.05
->>27    byte            102     \b, Beta 1.02
->>27    byte            104     \b, Beta 1.04
->>27    byte            105     \b, Alpha 1.05
->>27    byte            106     \b, Beta 1.06
->>27    byte            110     \b, Release 1.1
->>27    byte            111     \b, Alpha 1.11
->>27    byte            112     \b, Beta 1.12
->>27    byte            113     \b, Alpha 1.13
->>27    byte            114     \b, Beta 1.14
->>27    byte            115     \b, Alpha 1.15
-
-# IMY
-# from http://filext.com/detaillist.php?extdetail=IMY
-# http://cellphones.about.com/od/cellularfaqs/f/rf_imelody.htm
-# http://download.ncl.ie/doc/api/ie/ncl/media/music/IMelody.html
-# http://www.wx800.com/msg/download/irda/iMelody.pdf
-0	string	BEGIN:IMELODY	iMelody Ringtone Format
-
-# From: "Mateus Caruccio" <mateus@caruccio.com>
-# guitar pro v3,4,5 from http://filext.com/file-extension/gp3
-0	string	\030FICHIER\ GUITAR\ PRO\ v3.	Guitar Pro Ver. 3 Tablature
-
-# From: "Leslie P. Polzer" <leslie.polzer@gmx.net>
-60	string	SONG		SoundFX Module sound file
-
-# Type: Adaptive Multi-Rate Codec
-# URL:  http://filext.com/detaillist.php?extdetail=AMR
-# From: Russell Coker <russell@coker.com.au>
-0	string	#!AMR		Adaptive Multi-Rate Codec (GSM telephony)
-
-# Type: SuperCollider 3 Synth Definition File Format
-# From: Mario Lang <mlang@debian.org>
-0	string	SCgf	SuperCollider3 Synth Definition file,
->4	belong	x	version %d
-#----------------------------------------------------------------
-# basis: file(1) magic for BBx/Pro5-files
-#      Oliver Dammer <dammer@olida.de>	 2005/11/07
-# http://www.basis.com business-basic-files.
-#
-0	string		\074\074bbx\076\076	BBx
->7	string		\000			indexed file
->7	string		\001			serial file
->7	string		\002			keyed file
->>13	short		0			(sort)
->7	string		\004			program
->>18	byte		x			(LEVEL %d)
->>>23	string		>\000			psaved
->7	string		\006			mkeyed file
->>13	short		0			(sort)
->>8	string		\000			(mkey)
-#------------------------------------------------------------------------------
-# bFLT: file(1) magic for BFLT uclinux binary files
-#
-# From Philippe De Muyter <phdm@macqel.be>
-#
-0	string		bFLT		BFLT executable
->4	belong		x		- version %ld
->4	belong		4
->>36	belong&0x1	0x1		ram
->>36	belong&0x2	0x2		gotpic
->>36	belong&0x4	0x4		gzip
->>36	belong&0x8	0x8		gzdata
-#------------------------------------------------------------------------------
-# blender: file(1) magic for Blender 3D related files
-#
-# Native format rule v1.2. For questions use the developers list 
-# http://lists.blender.org/mailman/listinfo/bf-committers
-# GLOB chunk was moved near start and provides subversion info since 2.42 
-
-0		string	=BLENDER	Blender3D,
->7		string	=_		saved as 32-bits
->>8		string	=v		little endian
->>>9		byte	x		with version %c.
->>>10		byte	x		\b%c
->>>11		byte	x		\b%c
->>>0x40		string	=GLOB		\b.
->>>>0x58	leshort	x		\b%.4d
->>8		string	=V		big endian
->>>9		byte	x		with version %c.
->>>10		byte	x		\b%c
->>>11		byte	x		\b%c
->>>0x40		string	=GLOB		\b.
->>>>0x58	beshort	x		\b%.4d
->7		string	=-		saved as 64-bits
->>8		string	=v		little endian
->>9		byte	x		with version %c.
->>10		byte	x		\b%c
->>11		byte	x		\b%c
->>0x44		string	=GLOB		\b.
->>>0x60		leshort	x		\b%.4d
->>8		string	=V		big endian
->>>9		byte	x		with version %c.
->>>10		byte	x		\b%c
->>>11		byte	x		\b%c
->>>0x44		string	=GLOB		\b.
->>>>0x60	beshort	x		\b%.4d
-
-# Scripts that run in the embeded Python interpreter
-0		string	#!BPY		Blender3D BPython script
-
-#------------------------------------------------------------------------------
-# blit:  file(1) magic for 68K Blit stuff as seen from 680x0 machine
-#
-# Note that this 0407 conflicts with several other a.out formats...
-#
-# XXX - should this be redone with "be" and "le", so that it works on
-# little-endian machines as well?  If so, what's the deal with
-# "VAX-order" and "VAX-order2"?
-#
-#0	long		0407		68K Blit (standalone) executable
-#0	short		0407		VAX-order2 68K Blit (standalone) executable
-0	short		03401		VAX-order 68K Blit (standalone) executable
-0	long		0406		68k Blit mpx/mux executable
-0	short		0406		VAX-order2 68k Blit mpx/mux executable
-0	short		03001		VAX-order 68k Blit mpx/mux executable
-# Need more values for WE32 DMD executables.
-# Note that 0520 is the same as COFF
-#0	short		0520		tty630 layers executable
-#
-# i80960 b.out objects and archives
-#
-0	long		0x10d		i960 b.out relocatable object
->16	long		>0		not stripped
-#
-# b.out archive (hp-rt on i960)
-0	string		=!<bout>	b.out archive
->8	string		__.SYMDEF	random library
-#------------------------------------------------------------------------------
-# bsdi:  file(1) magic for BSD/OS (from BSDI) objects
-#
-
-0	lelong		0314		386 compact demand paged pure executable
->16	lelong		>0		not stripped
->32	byte		0x6a		(uses shared libs)
-
-0	lelong		0407		386 executable
->16	lelong		>0		not stripped
->32	byte		0x6a		(uses shared libs)
-
-0	lelong		0410		386 pure executable
->16	lelong		>0		not stripped
->32	byte		0x6a		(uses shared libs)
-
-0	lelong		0413		386 demand paged pure executable
->16	lelong		>0		not stripped
->32	byte		0x6a		(uses shared libs)
-
-# same as in SunOS 4.x, except for static shared libraries
-0	belong&077777777	0600413		sparc demand paged
->0	byte		&0x80
->>20	belong		<4096		shared library
->>20	belong		=4096		dynamically linked executable
->>20	belong		>4096		dynamically linked executable
->0	byte		^0x80		executable
->16	belong		>0		not stripped
->36	belong		0xb4100001	(uses shared libs)
-
-0	belong&077777777	0600410		sparc pure
->0	byte		&0x80		dynamically linked executable
->0	byte		^0x80		executable
->16	belong		>0		not stripped
->36	belong		0xb4100001	(uses shared libs)
-
-0	belong&077777777	0600407		sparc
->0	byte		&0x80		dynamically linked executable
->0	byte		^0x80		executable
->16	belong		>0		not stripped
->36	belong		0xb4100001	(uses shared libs)
-#------------------------------------------------------------------------------
-# BTSnoop:  file(1) magic for BTSnoop files
-#
-# From <marcel@holtmann.org>
-0	string		btsnoop\0		BTSnoop
->8	belong		x			version %d,
->12	belong		1001			Unencapsulated HCI
->12	belong		1002			HCI UART (H4)
->12	belong		1003			HCI BCSP
->12	belong		1004			HCI Serial (H5)
->>12	belong		x			type %d
-#------------------------------------------------------------------------------
-# c-lang:  file(1) magic for C programs (or REXX)
-#
-
-# XPM icons (Greg Roelofs, newt@uchicago.edu)
-# if you uncomment "/*" for C/REXX below, also uncomment this entry
-#0	string		/*\ XPM\ */	X pixmap image data
-#!:mime	image/x-xpmi
-
-# 3DS (3d Studio files) Conflicts with diff output 0x3d '='
-#16	beshort		0x3d3d		image/x-3ds
-
-# this first will upset you if you're a PL/1 shop...
-# in which case rm it; ascmagic will catch real C programs
-#0	search/1	/*		C or REXX program text
-#0	search/1	//		C++ program text
-
-# From: Mikhail Teterin <mi@aldan.algebra.com> 
-0	string		cscope		cscope reference data
->7	string		x		version %.2s
-# We skip the path here, because it is often long (so file will
-# truncate it) and mostly redundant.
-# The inverted index functionality was added some time betwen
-# versions 11 and 15, so look for -q if version is above 14:
->7	string		>14
->>10	search/100	\ -q\ 		with inverted index
->10	search/100	\ -c\ 		text (non-compressed)
-#------------------------------------------------------------------------------
-# c64:  file(1) magic for various commodore 64 related files
-#
-# From: Dirk Jagdmann <doj@cubic.org>
-
-0x16500	belong		0x12014100	D64 Image
-0x16500	belong		0x12014180	D71 Image
-0x61800 belong		0x28034400	D81 Image
-0	string		C64\40CARTRIDGE	CCS C64 Emultar Cartridge Image
-0	belong		0x43154164	X64 Image
-
-0	string		GCR-1541	GCR Image
->8	byte		x		version: %i
->9	byte		x		tracks: %i
-
-9	string		PSUR		ARC archive (c64)
-2	string		-LH1-		LHA archive (c64)
-
-0	string		C64File		PC64 Emulator file
->8	string		>\0		"%s"
-0	string		C64Image	PC64 Freezer Image
-
-0	beshort		0x38CD		C64 PCLink Image
-0	string		CBM\144\0\0	Power 64 C64 Emulator Snapshot
-
-0	belong		0xFF424CFF	WRAptor packer (c64)
-
-0	string		C64S\x20tape\x20file	T64 tape Image
->32	leshort		x		Version:0x%x
->36	leshort		!0		Entries:%i
->40	string		x		Name:%.24s
-
-0	string		C64\x20tape\x20image\x20file\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0	T64 tape Image
->32	leshort		x		Version:0x%x
->36	leshort		!0		Entries:%i
->40	string		x		Name:%.24s
-
-0	string		C64S\x20tape\x20image\x20file\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0	T64 tape Image
->32	leshort		x		Version:0x%x
->36	leshort		!0		Entries:%i
->40	string		x		Name:%.24s
-
-#------------------------------------------------------------------------------
-# autocad:  file(1) magic for cad files
-#
-
-# AutoCAD DWG versions R13/R14 (www.autodesk.com)
-# Written December 01, 2003 by Lester Hightower
-# Based on the DWG File Format Specifications at http://www.opendwg.org/
-0	string	       \101\103\061\060\061		   AutoCAD
->5	string	       \062\000\000\000\000		   DWG ver. R13
->5	string	       \064\000\000\000\000		   DWG ver. R14
-
-# Microstation DGN/CIT Files (www.bentley.com)
-# Last updated July 29, 2005 by Lester Hightower
-# DGN is the default file extension of Microstation/Intergraph CAD files.
-# CIT is the proprietary raster format (similar to TIFF) used to attach
-# raster underlays to Microstation DGN (vector) drawings.
-# 
-# http://www.wotsit.org/search.asp
-# http://filext.com/detaillist.php?extdetail=DGN
-# http://filext.com/detaillist.php?extdetail=CIT
-#
-# http://www.bentley.com/products/default.cfm?objectid=97F351F5-9C35-4E5E-89C2
-# 3F86C928&method=display&p_objectid=97F351F5-9C35-4E5E-89C280A93F86C928
-# http://www.bentley.com/products/default.cfm?objectid=A5C2FD43-3AC9-4C71-B682
-# 721C479F&method=display&p_objectid=A5C2FD43-3AC9-4C71-B682C7BE721C479F
-0	string	\010\011\376			Microstation
->3	string	\002
->>30	string	\026\105			DGNFile
->>30	string	\034\105			DGNFile
->>30	string	\073\107			DGNFile
->>30	string	\073\110			DGNFile
->>30	string	\106\107			DGNFile
->>30	string	\110\103			DGNFile
->>30	string	\120\104			DGNFile
->>30	string	\172\104			DGNFile
->>30	string	\172\105			DGNFile
->>30	string	\172\106			DGNFile
->>30	string	\234\106			DGNFile
->>30	string	\273\105			DGNFile
->>30	string	\306\106			DGNFile
->>30	string	\310\104			DGNFile
->>30	string	\341\104			DGNFile
->>30	string	\372\103			DGNFile
->>30	string	\372\104			DGNFile
->>30	string	\372\106			DGNFile
->>30	string	\376\103			DGNFile
->4	string	\030\000\000			CITFile
->4	string	\030\000\003			CITFile
-
-# AutoCad, from Nahuel Greco
-# AutoCAD DWG versions R12/R13/R14 (www.autodesk.com)
-0	string AC1012	AutoCad (release 12)
-0	string AC1013	AutoCad (release 13)
-0	string AC1014	AutoCad (release 14)
-
-# CAD: file(1) magic for computer aided design files
-# Phillip Griffith <phillip dot griffith at gmail dot com>
-# AutoCAD magic taken from the Open Design Alliance's OpenDWG specifications.
-#
-0	belong	0x08051700	Bentley/Intergraph MicroStation DGN cell library
-0	belong	0x0809fe02	Bentley/Intergraph MicroStation DGN vector CAD
-0	belong	0xc809fe02	Bentley/Intergraph MicroStation DGN vector CAD
-0	beshort	0x0809		Bentley/Intergraph MicroStation
->0x02	byte	0xfe
->>0x04	beshort	0x1800		CIT raster CAD
-0	string	AC1012		AutoDesk AutoCAD R13
-0	string	AC1014		AutoDesk AutoCAD R14 
-0	string	AC1015		AutoDesk AutoCAD R2000
-#------------------------------------------------------------------------------
-# Cafe Babes unite!
-#
-# Since Java bytecode and Mach-O fat-files have the same magic number, the test
-# must be performed in the same "magic" sequence to get both right.  The long
-# at offset 4 in a mach-O fat file tells the number of architectures; the short at
-# offset 4 in a Java bytecode file is the JVM minor version and the
-# short at offset 6 is the JVM major version.  Since there are only 
-# only 18 labeled Mach-O architectures at current, and the first released 
-# Java class format was version 43.0, we can safely choose any number
-# between 18 and 39 to test the number of architectures against
-# (and use as a hack). Let's not use 18, because the Mach-O people
-# might add another one or two as time goes by...
-#
-0	belong		0xcafebabe
-!:mime	application/x-java-applet
->4	belong		>30		compiled Java class data,
->>6	beshort		x	        version %d.
->>4	beshort		x       	\b%d
-# Which is which?
-#>>4	belong		0x032d		(Java 1.0)
-#>>4	belong		0x032d		(Java 1.1)
->>4	belong		0x002e		(Java 1.2)
->>4	belong		0x002f		(Java 1.3)
->>4	belong		0x0030		(Java 1.4)
->>4	belong		0x0031		(Java 1.5)
->>4	belong		0x0032		(Java 1.6)
-
-
-0	belong		0xcafebabe
->4	belong		1		Mach-O fat file with 1 architecture
->4	belong		>1
->>4	belong		<20		Mach-O fat file with %ld architectures
-
-0	belong		0xcafed00d	JAR compressed with pack200,
->>5	byte		x		version %d.
->>4	byte		x		\b%d
-!:mime	application/x-java-pack200
-#------------------------------------------------------------------------------
-# CDDB: file(1) magic for CDDB(tm) format CD text data files
-#
-# From <steve@gracenote.com>
-#
-# This is the /etc/magic entry to decode datafiles as used by
-# CDDB-enabled CD player applications.
-#
-
-0	search/1/b	#\040xmcd	CDDB(tm) format CD text data
-
-#------------------------------------------------------------------------------
-# chord: file(1) magic for Chord music sheet typesetting utility input files
-#
-# From Philippe De Muyter <phdm@macqel.be>
-# File format is actually free, but many distributed files begin with `{title'
-#
-0	string		{title		Chord text file
-
-# Type:	PowerTab file format
-# URL:	http://www.power-tab.net/
-# From:	Jelmer Vernooij <jelmer@samba.org>
-0	string		ptab\003\000	Power-Tab v3 Tablature File
-0	string		ptab\004\000	Power-Tab v4 Tablature File
-#------------------------------------------------------------------------------
-# cisco:  file(1) magic for cisco Systems routers
-#
-# Most cisco file-formats are covered by the generic elf code
-#
-# Microcode files are non-ELF, 0x8501 conflicts with NetBSD/alpha.
-0	belong&0xffffff00	0x85011400  cisco IOS microcode
->7	string		>\0		    for '%s'
-0	belong&0xffffff00	0x8501cb00  cisco IOS experimental microcode
->7	string		>\0		    for '%s'
-#------------------------------------------------------------------------------
-# citrus locale declaration
-#
-
-0	string		RuneCT		Citrus locale declaration for LC_CTYPE
-
-
-#------------------------------------------------------------------------------
-# clarion:  file(1) magic for # Clarion Personal/Professional Developer
-# (v2 and above)
-# From: Julien Blache <jb@jblache.org>
-
-# Database files
-# signature
-0	leshort	0x3343	Clarion Developer (v2 and above) data file
-# attributes
->2	leshort	&0x0001	\b, locked
->2	leshort	&0x0004	\b, encrypted
->2	leshort	&0x0008	\b, memo file exists
->2	leshort	&0x0010	\b, compressed
->2	leshort	&0x0040	\b, read only
-# number of records
->5	lelong	x	\b, %ld records
-
-# Memo files
-0	leshort	0x334d	Clarion Developer (v2 and above) memo data
-
-# Key/Index files
-# No magic? :(
-
-# Help files
-0	leshort	0x49e0	Clarion Developer (v2 and above) help data
-
-#------------------------------------------------------------------------------
-# claris:  file(1) magic for claris
-# "H. Nanosecond" <aldomel@ix.netcom.com>
-# Claris Works a word processor, etc.
-# Version 3.0
-
-# .pct claris works clip art files
-#0000000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000
-#*
-#0001000 #010 250 377 377 377 377 000 213 000 230 000 021 002 377 014 000
-#null to byte 1000 octal
-514	string	\377\377\377\377\000	Claris clip art?
->0	string	\0\0\0\0\0\0\0\0\0\0\0\0\0	yes.
-514	string	\377\377\377\377\001	Claris clip art?
->0	string	\0\0\0\0\0\0\0\0\0\0\0\0\0	yes.
-
-# Claris works files
-# .cwk
-0	string	\002\000\210\003\102\117\102\117\000\001\206 Claris works document
-# .plt
-0	string	\020\341\000\000\010\010	Claris Works pallete files .plt
-
-# .msp a dictionary file I am not sure about this I have only one .msp file
-0	string	\002\271\262\000\040\002\000\164	Claris works dictionary
-
-# .usp are user dictionary bits
-# I am not sure about a magic header:
-#0000000 001 123 160 146 070 125 104 040 136 123 015 012 160 157 144 151
-#        soh   S   p   f   8   U   D  sp   ^   S  cr  nl   p   o   d   i
-#0000020 141 164 162 151 163 164 040 136 123 015 012 144 151 166 040 043
-#          a   t   r   i   s   t  sp   ^   S  cr  nl   d   i   v  sp   #
-
-# .mth Thesaurus
-# starts with \0 but no magic header
-
-# .chy Hyphenation file
-# I am not sure: 000 210 034 000 000
-
-# other claris files
-#./windows/claris/useng.ndx: data
-#./windows/claris/xtndtran.l32: data
-#./windows/claris/xtndtran.lst: data
-#./windows/claris/clworks.lbl: data
-#./windows/claris/clworks.prf: data
-#./windows/claris/userd.spl: data
-
-#------------------------------------------------------------------------------
-# clipper:  file(1) magic for Intergraph (formerly Fairchild) Clipper.
-#
-# XXX - what byte order does the Clipper use?
-#
-# XXX - what's the "!" stuff:
-#
-# >18	short		!074000,000000	C1 R1 
-# >18	short		!074000,004000	C2 R1
-# >18	short		!074000,010000	C3 R1
-# >18	short		!074000,074000	TEST
-#
-# I shall assume it's ANDing the field with the first value and
-# comparing it with the second, and rewrite it as:
-#
-# >18	short&074000	000000		C1 R1 
-# >18	short&074000	004000		C2 R1
-# >18	short&074000	010000		C3 R1
-# >18	short&074000	074000		TEST
-#
-# as SVR3.1's "file" doesn't support anything of the "!074000,000000"
-# sort, nor does SunOS 4.x, so either it's something Intergraph added
-# in CLIX, or something AT&T added in SVR3.2 or later, or something
-# somebody else thought was a good idea; it's not documented in the
-# man page for this version of "magic", nor does it appear to be
-# implemented (at least not after I blew off the bogus code to turn
-# old-style "&"s into new-style "&"s, which just didn't work at all).
-#
-0	short		0575		CLIPPER COFF executable (VAX #)
->20	short		0407		(impure)
->20	short		0410		(5.2 compatible)
->20	short		0411		(pure)
->20	short		0413		(demand paged)
->20	short		0443		(target shared library)
->12	long		>0		not stripped
->22	short		>0		- version %ld
-0	short		0577		CLIPPER COFF executable
->18	short&074000	000000		C1 R1 
->18	short&074000	004000		C2 R1
->18	short&074000	010000		C3 R1
->18	short&074000	074000		TEST
->20	short		0407		(impure)
->20	short		0410		(pure)
->20	short		0411		(separate I&D)
->20	short		0413		(paged)
->20	short		0443		(target shared library)
->12	long		>0		not stripped
->22	short		>0		- version %ld
->48	long&01		01		alignment trap enabled
->52	byte		1		-Ctnc
->52	byte		2		-Ctsw
->52	byte		3		-Ctpw
->52	byte		4		-Ctcb
->53	byte		1		-Cdnc
->53	byte		2		-Cdsw
->53	byte		3		-Cdpw
->53	byte		4		-Cdcb
->54	byte		1		-Csnc
->54	byte		2		-Cssw
->54	byte		3		-Cspw
->54	byte		4		-Cscb
-4	string		pipe		CLIPPER instruction trace
-4	string		prof		CLIPPER instruction profile
-
-#------------------------------------------------------------------------------
-# commands:  file(1) magic for various shells and interpreters
-#
-#0	string		:			shell archive or script for antique kernel text
-0	string/b	#!\ /bin/sh		POSIX shell script text executable
-!:mime	text/x-shellscript
-0	string/b	#!\ /bin/csh		C shell script text executable
-!:mime	text/x-shellscript
-# korn shell magic, sent by George Wu, gwu@clyde.att.com
-0	string/b	#!\ /bin/ksh		Korn shell script text executable
-!:mime	text/x-shellscript
-0	string/b 	#!\ /bin/tcsh		Tenex C shell script text executable
-!:mime	text/x-shellscript
-0	string/b	#!\ /usr/bin/tcsh	Tenex C shell script text executable
-!:mime	text/x-shellscript
-0	string/b 	#!\ /usr/local/tcsh	Tenex C shell script text executable
-!:mime	text/x-shellscript
-0	string/b	#!\ /usr/local/bin/tcsh	Tenex C shell script text executable
-!:mime	text/x-shellscript
-
-#
-# zsh/ash/ae/nawk/gawk magic from cameron@cs.unsw.oz.au (Cameron Simpson)
-0	string/b	#!\ /bin/zsh		Paul Falstad's zsh script text executable
-!:mime	text/x-shellscript
-0	string/b	#!\ /usr/bin/zsh	Paul Falstad's zsh script text executable
-!:mime	text/x-shellscript
-0	string/b	#!\ /usr/local/bin/zsh	Paul Falstad's zsh script text executable
-!:mime	text/x-shellscript
-0	string/b	#!\ /usr/local/bin/ash	Neil Brown's ash script text executable
-!:mime	text/x-shellscript
-0	string/b	#!\ /usr/local/bin/ae	Neil Brown's ae script text executable
-!:mime	text/x-shellscript
-0	string/b	#!\ /bin/nawk		new awk script text executable
-!:mime	text/x-nawk
-0	string/b	#!\ /usr/bin/nawk	new awk script text executable
-!:mime	text/x-nawk
-0	string/b	#!\ /usr/local/bin/nawk	new awk script text executable
-!:mime	text/x-nawk
-0	string/b	#!\ /bin/gawk		GNU awk script text executable
-!:mime	text/x-gawk
-0	string/b	#!\ /usr/bin/gawk	GNU awk script text executable
-!:mime	text/x-gawk
-0	string/b	#!\ /usr/local/bin/gawk	GNU awk script text executable
-!:mime	text/x-gawk
-#
-0	string/b	#!\ /bin/awk		awk script text executable
-!:mime	text/x-awk
-0	string/b	#!\ /usr/bin/awk	awk script text executable
-!:mime	text/x-awk
-# update to distinguish from *.vcf files
-# this is broken because postscript has /EBEGIN{ for example.
-#0	search/Bb	BEGIN {			awk script text
-0	regex		=^\\s*BEGIN\\s*[{]	awk script text
-
-# AT&T Bell Labs' Plan 9 shell
-0	string/b	#!\ /bin/rc	Plan 9 rc shell script text executable
-
-# bash shell magic, from Peter Tobias (tobias@server.et-inf.fho-emden.de)
-0	string/b	#!\ /bin/bash	Bourne-Again shell script text executable
-!:mime	text/x-shellscript
-0	string/b	#!\ /usr/bin/bash	Bourne-Again shell script text executable
-!:mime text/x-shellscript
-0	string/b	#!\ /usr/local/bash	Bourne-Again shell script text executable
-!:mime text/x-shellscript
-0	string/b	#!\ /usr/local/bin/bash	Bourne-Again shell script text executable
-!:mime	text/x-shellscript
-
-# using env
-0	string		#!/usr/bin/env		a
->15	string		>\0			%s script text executable
-0	string		#!\ /usr/bin/env	a
->16	string		>\0			%s script text executable
-
-# PHP scripts
-# Ulf Harnhammar <ulfh@update.uu.se>
-0	search/1/c	=<?php			PHP script text
-!:mime	text/x-php
-0	search/1	=<?\n			PHP script text
-!:mime	text/x-php
-0	search/1	=<?\r			PHP script text
-!:mime	text/x-php
-0	search/1/b	#!\ /usr/local/bin/php	PHP script text executable
-!:mime	text/x-php
-0	search/1/b	#!\ /usr/bin/php	PHP script text executable
-!:mime	text/x-php
-
-0	string		Zend\x00		PHP script Zend Optimizer data
-
-0	string		$!			DCL command file
-
-# Type: Pdmenu
-# URL:  http://packages.debian.org/pdmenu
-# From: Edward Betts <edward@debian.org>
-0	string	#!/usr/bin/pdmenu	Pdmenu configuration file text
-
-#----------------------------------------------------------------------------
-# communication
-
-# TTCN is the Tree and Tabular Combined Notation described in ISO 9646-3.
-# It is used for conformance testing of communication protocols.
-# Added by W. Borgert <debacle@debian.org>.
-0	string		$Suite			TTCN Abstract Test Suite
->&1	string		$SuiteId
->>&1	string		>\n			%s
->&2	string		$SuiteId
->>&1	string		>\n			%s
->&3	string		$SuiteId
->>&1	string		>\n			%s
-
-# MSC (message sequence charts) are a formal description technique,
-# described in ITU-T Z.120, mainly used for communication protocols.
-# Added by W. Borgert <debacle@debian.org>.
-0	string		mscdocument	Message Sequence Chart (document)
-0	string		msc		Message Sequence Chart (chart)
-0	string		submsc		Message Sequence Chart (subchart)
-
-#------------------------------------------------------------------------------
-# compress:  file(1) magic for pure-compression formats (no archives)
-#
-# compress, gzip, pack, compact, huf, squeeze, crunch, freeze, yabba, etc.
-#
-# Formats for various forms of compressed data
-# Formats for "compress" proper have been moved into "compress.c",
-# because it tries to uncompress it to figure out what's inside.
-
-# standard unix compress
-0	string		\037\235	compress'd data
-!:mime	application/x-compress
-!:apple	LZIVZIVU
->2	byte&0x80	>0		block compressed
->2	byte&0x1f	x		%d bits
-
-# gzip (GNU zip, not to be confused with Info-ZIP or PKWARE zip archiver)
-#   Edited by Chris Chittleborough <cchittleborough@yahoo.com.au>, March 2002
-#	* Original filename is only at offset 10 if "extra field" absent
-#	* Produce shorter output - notably, only report compression methods
-#	  other than 8 ("deflate", the only method defined in RFC 1952).
-0       string          \037\213        gzip compressed data
-!:mime	application/x-gzip
->2	byte		<8		\b, reserved method
->2	byte		>8		\b, unknown method
->3	byte		&0x01		\b, ASCII
->3	byte		&0x02		\b, has CRC
->3	byte		&0x04		\b, extra field
->3	byte&0xC	=0x08
->>10	string		x		\b, was "%s"
->3	byte		&0x10		\b, has comment
->9	byte		=0x00		\b, from FAT filesystem (MS-DOS, OS/2, NT)
->9	byte		=0x01		\b, from Amiga
->9	byte		=0x02		\b, from VMS
->9	byte		=0x03		\b, from Unix
->9	byte		=0x04		\b, from VM/CMS
->9	byte		=0x05		\b, from Atari
->9	byte		=0x06		\b, from HPFS filesystem (OS/2, NT)
->9	byte		=0x07		\b, from MacOS
->9	byte		=0x08		\b, from Z-System
->9	byte		=0x09		\b, from CP/M
->9	byte		=0x0A		\b, from TOPS/20
->9	byte		=0x0B		\b, from NTFS filesystem (NT)
->9	byte		=0x0C		\b, from QDOS
->9	byte		=0x0D		\b, from Acorn RISCOS
->3	byte		&0x10		\b, comment
->3	byte		&0x20		\b, encrypted
->4	ledate		>0		\b, last modified: %s
->8	byte		2		\b, max compression
->8	byte		4		\b, max speed
-
-# packed data, Huffman (minimum redundancy) codes on a byte-by-byte basis
-0	string		\037\036	packed data
-!:mime	application/octet-stream
->2	belong		>1		\b, %d characters originally
->2	belong		=1		\b, %d character originally
-#
-# This magic number is byte-order-independent.
-0	short		0x1f1f		old packed data
-!:mime	application/octet-stream
-
-# XXX - why *two* entries for "compacted data", one of which is
-# byte-order independent, and one of which is byte-order dependent?
-#
-0	short		0x1fff		compacted data
-!:mime	application/octet-stream
-# This string is valid for SunOS (BE) and a matching "short" is listed
-# in the Ultrix (LE) magic file.
-0	string		\377\037	compacted data
-!:mime	application/octet-stream
-0	short		0145405		huf output
-!:mime	application/octet-stream
-
-# bzip2
-0	string		BZh		bzip2 compressed data
-!:mime	application/x-bzip2
->3	byte		>47		\b, block size = %c00k
-
-# lzip
-0	string		LZIP		lzip compressed data
-!:mime application/x-lzip
->4	byte		x		\b, version: %d
-
-# squeeze and crunch
-# Michael Haardt <michael@cantor.informatik.rwth-aachen.de>
-0	beshort		0x76FF		squeezed data,
->4	string		x		original name %s
-0	beshort		0x76FE		crunched data,
->2	string		x		original name %s
-0	beshort		0x76FD		LZH compressed data,
->2	string		x		original name %s
-
-# Freeze
-0	string		\037\237	frozen file 2.1
-0	string		\037\236	frozen file 1.0 (or gzip 0.5)
-
-# SCO compress -H (LZH)
-0	string		\037\240	SCO compress -H (LZH) data
-
-# European GSM 06.10 is a provisional standard for full-rate speech
-# transcoding, prI-ETS 300 036, which uses RPE/LTP (residual pulse
-# excitation/long term prediction) coding at 13 kbit/s.
-#
-# There's only a magic nibble (4 bits); that nibble repeats every 33
-# bytes.  This isn't suited for use, but maybe we can use it someday.
-#
-# This will cause very short GSM files to be declared as data and
-# mismatches to be declared as data too!
-#0	byte&0xF0	0xd0		data
-#>33	byte&0xF0	0xd0
-#>66	byte&0xF0	0xd0
-#>99	byte&0xF0	0xd0
-#>132	byte&0xF0	0xd0		GSM 06.10 compressed audio
-
-# bzip	a block-sorting file compressor
-#	by Julian Seward <sewardj@cs.man.ac.uk> and others
-#
-#0	string		BZ		bzip compressed data
-#>2	byte		x		\b, version: %c
-#>3	string		=1		\b, compression block size 100k
-#>3	string		=2		\b, compression block size 200k
-#>3	string		=3		\b, compression block size 300k
-#>3	string		=4		\b, compression block size 400k
-#>3	string		=5		\b, compression block size 500k
-#>3	string		=6		\b, compression block size 600k
-#>3	string		=7		\b, compression block size 700k
-#>3	string		=8		\b, compression block size 800k
-#>3	string		=9		\b, compression block size 900k
-
-# lzop from <markus.oberhumer@jk.uni-linz.ac.at>
-0	string		\x89\x4c\x5a\x4f\x00\x0d\x0a\x1a\x0a	lzop compressed data
->9	beshort		<0x0940
->>9	byte&0xf0	=0x00		- version 0.
->>9	beshort&0x0fff	x		\b%03x,
->>13	byte		1		LZO1X-1,
->>13	byte		2		LZO1X-1(15),
->>13	byte		3		LZO1X-999,
-## >>22	bedate		>0		last modified: %s,
->>14	byte		=0x00		os: MS-DOS
->>14	byte		=0x01		os: Amiga
->>14	byte		=0x02		os: VMS
->>14	byte		=0x03		os: Unix
->>14	byte		=0x05		os: Atari
->>14	byte		=0x06		os: OS/2
->>14	byte		=0x07		os: MacOS
->>14	byte		=0x0A		os: Tops/20
->>14	byte		=0x0B		os: WinNT
->>14	byte		=0x0E		os: Win32
->9	beshort		>0x0939
->>9	byte&0xf0	=0x00		- version 0.
->>9	byte&0xf0	=0x10		- version 1.
->>9	byte&0xf0	=0x20		- version 2.
->>9	beshort&0x0fff	x		\b%03x,
->>15	byte		1		LZO1X-1,
->>15	byte		2		LZO1X-1(15),
->>15	byte		3		LZO1X-999,
-## >>25	bedate		>0		last modified: %s,
->>17	byte		=0x00		os: MS-DOS
->>17	byte		=0x01		os: Amiga
->>17	byte		=0x02		os: VMS
->>17	byte		=0x03		os: Unix
->>17	byte		=0x05		os: Atari
->>17	byte		=0x06		os: OS/2
->>17	byte		=0x07		os: MacOS
->>17	byte		=0x0A		os: Tops/20
->>17	byte		=0x0B		os: WinNT
->>17	byte		=0x0E		os: Win32
-
-# 4.3BSD-Quasijarus Strong Compression
-# http://minnie.tuhs.org/Quasijarus/compress.html
-0	string		\037\241	Quasijarus strong compressed data
-
-# From: Cory Dikkers <cdikkers@swbell.net>
-0	string		XPKF		Amiga xpkf.library compressed data
-0	string		PP11		Power Packer 1.1 compressed data
-0	string		PP20		Power Packer 2.0 compressed data,
->4	belong		0x09090909	fast compression
->4	belong		0x090A0A0A	mediocre compression
->4	belong		0x090A0B0B	good compression
->4	belong		0x090A0C0C	very good compression
->4	belong		0x090A0C0D	best compression
-
-# 7-zip archiver, from Thomas Klausner (wiz@danbala.tuwien.ac.at)
-# http://www.7-zip.org or DOC/7zFormat.txt 
-#
-0	string		7z\274\257\047\034	7-zip archive data,
->6	byte		x			version %d
->7	byte		x			\b.%d
-
-# Type: LZMA
-# URL:  http://www.7-zip.org/sdk.html
-# From: Robert Millan <rmh@aybabtu.com> and Reuben Thomas <rrt@sc3d.org>
-# Commented out because apparently not reliable (according to Debian
-# bug #364260)
-#0	string		]\000\000\200\000	LZMA compressed data
-
-# http://tukaani.org/xz/xz-file-format.txt
-0	ustring		\xFD7zXZ\x00		xz compressed data
-!:mime	application/x-xz
-
-# AFX compressed files (Wolfram Kleff)
-2	string		-afx-		AFX compressed file data
-
-# Supplementary magic data for the file(1) command to support
-# rzip(1).  The format is described in magic(5).
-#
-# Copyright (C) 2003 by Andrew Tridgell.  You may do whatever you want with
-# this file.
-#
-0	string		RZIP		rzip compressed data
->4	byte		x		- version %d
->5	byte		x		\b.%d
->6	belong		x		(%d bytes)
-
-# Type: XZ
-# URL: http://tukaani.org/xz/
-0	string		\xfd\x37\x7a\x58\x5a\x00	XZ compressed data
-!:mime application/x-xz
-#------------------------------------------------------------------------------
-# Console game magic
-# Toby Deshane <hac@shoelace.digivill.net>
-#    ines:  file(1) magic for Marat's iNES Nintendo Entertainment System
-#           ROM dump format
-
-0 string NES\032 iNES ROM dump,
->4 byte  x     %dx16k PRG
->5 byte  x     \b, %dx8k CHR
->6 byte&0x01  =0x1  \b, [Vert.]
->6 byte&0x01  =0x0  \b, [Horiz.]
->6 byte&0x02  =0x2  \b, [SRAM]
->6 byte&0x04  =0x4  \b, [Trainer]
->6 byte&0x04  =0x8  \b, [4-Scr]
-
-#------------------------------------------------------------------------------
-# gameboy:  file(1) magic for the Nintendo (Color) Gameboy raw ROM format
-#
-0x104 belong 0xCEED6666 Gameboy ROM:
->0x134 string >\0 "%.16s"
->0x146 byte 0x03  \b,[SGB]
->0x147 byte 0x00  \b, [ROM ONLY]
->0x147 byte 0x01  \b, [ROM+MBC1]
->0x147 byte 0x02  \b, [ROM+MBC1+RAM]
->0x147 byte 0x03  \b, [ROM+MBC1+RAM+BATT]
->0x147 byte 0x05  \b, [ROM+MBC2]
->0x147 byte 0x06  \b, [ROM+MBC2+BATTERY]
->0x147 byte 0x08  \b, [ROM+RAM]
->0x147 byte 0x09  \b, [ROM+RAM+BATTERY]
->0x147 byte 0x0B  \b, [ROM+MMM01]
->0x147 byte 0x0C  \b, [ROM+MMM01+SRAM]
->0x147 byte 0x0D  \b, [ROM+MMM01+SRAM+BATT]
->0x147 byte 0x0F  \b, [ROM+MBC3+TIMER+BATT]
->0x147 byte 0x10  \b, [ROM+MBC3+TIMER+RAM+BATT]
->0x147 byte 0x11  \b, [ROM+MBC3]
->0x147 byte 0x12  \b, [ROM+MBC3+RAM]
->0x147 byte 0x13  \b, [ROM+MBC3+RAM+BATT]
->0x147 byte 0x19  \b, [ROM+MBC5]
->0x147 byte 0x1A  \b, [ROM+MBC5+RAM]
->0x147 byte 0x1B  \b, [ROM+MBC5+RAM+BATT]
->0x147 byte 0x1C  \b, [ROM+MBC5+RUMBLE]
->0x147 byte 0x1D  \b, [ROM+MBC5+RUMBLE+SRAM]
->0x147 byte 0x1E  \b, [ROM+MBC5+RUMBLE+SRAM+BATT]
->0x147 byte 0x1F  \b, [Pocket Camera]
->0x147 byte 0xFD  \b, [Bandai TAMA5]
->0x147 byte 0xFE  \b, [Hudson HuC-3]
->0x147 byte 0xFF  \b, [Hudson HuC-1]
-
->0x148 byte 0     \b, ROM: 256Kbit
->0x148 byte 1     \b, ROM: 512Kbit
->0x148 byte 2     \b, ROM: 1Mbit
->0x148 byte 3     \b, ROM: 2Mbit
->0x148 byte 4     \b, ROM: 4Mbit
->0x148 byte 5     \b, ROM: 8Mbit
->0x148 byte 6     \b, ROM: 16Mbit
->0x148 byte 0x52  \b, ROM: 9Mbit
->0x148 byte 0x53  \b, ROM: 10Mbit
->0x148 byte 0x54  \b, ROM: 12Mbit
-
->0x149 byte 1     \b, RAM: 16Kbit
->0x149 byte 2     \b, RAM: 64Kbit
->0x149 byte 3     \b, RAM: 128Kbit
->0x149 byte 4     \b, RAM: 1Mbit
-
-#>0x14e long  x     \b, CRC: %x
-
-#------------------------------------------------------------------------------
-# genesis:  file(1) magic for the Sega MegaDrive/Genesis raw ROM format
-#
-0x100 string SEGA  Sega MegaDrive/Genesis raw ROM dump
->0x120 string >\0 Name: "%.16s"
->0x110 string >\0 %.16s
->0x1B0 string RA with SRAM
-
-#------------------------------------------------------------------------------
-# genesis:  file(1) magic for the Super MegaDrive ROM dump format
-#
-0x280 string EAGN  Super MagicDrive ROM dump
->0 byte x %dx16k blocks
->2 byte 0 \b, last in series or standalone
->2 byte >0 \b, split ROM
->8 byte 0xAA
->9 byte 0xBB
-
-#------------------------------------------------------------------------------
-# genesis:  file(1) alternate magic for the Super MegaDrive ROM dump format
-#
-0x280 string EAMG  Super MagicDrive ROM dump
->0 byte x %dx16k blocks
->2 byte x \b, last in series or standalone
->8 byte 0xAA
->9 byte 0xBB
-
-#------------------------------------------------------------------------------
-# smsgg:  file(1) magic for Sega Master System and Game Gear ROM dumps
-#
-# Does not detect all images.  Very preliminary guesswork.  Need more data
-# on format.
-#
-# FIXME: need a little more info...;P
-#
-#0 byte 0xF3
-#>1 byte 0xED  Sega Master System/Game Gear ROM dump
-#>1 byte 0x31  Sega Master System/Game Gear ROM dump
-#>1 byte 0xDB  Sega Master System/Game Gear ROM dump
-#>1 byte 0xAF  Sega Master System/Game Gear ROM dump
-#>1 byte 0xC3  Sega Master System/Game Gear ROM dump
-
-#------------------------------------------------------------------------------
-# dreamcast:  file(1) uncertain magic for the Sega Dreamcast VMU image format
-#
-0 belong 0x21068028   Sega Dreamcast VMU game image
-0 string LCDi         Dream Animator file
-
-#------------------------------------------------------------------------------
-# v64: file(1) uncertain magic for the V64 format N64 ROM dumps
-#
-0 belong 0x37804012    V64 Nintendo 64 ROM dump
-
-# From: "Nelson A. de Oliveira" <naoliv@gmail.com>
-# Nintendo .nds
-192	string	\044\377\256Qi\232	Nintendo DS Game ROM Image
-# Nintendo .gba
-0	string	\056\000\000\352$\377\256Qi	Nintendo Game Boy Advance ROM Image
-
-#------------------------------------------------------------------------------
-# msx: file(1) magic for MSX game cartridge dumps
-# Too simple - MPi
-#0 beshort 0x4142 MSX game cartridge dump 
-
-#------------------------------------------------------------------------------
-# Sony Playstation executables (Adam Sjoegren <asjo@diku.dk>) :
-0	string	PS-X\ EXE	Sony Playstation executable
-#  Area:
->113	string	x		(%s)
-
-#------------------------------------------------------------------------------
-# Microsoft Xbox executables .xbe (Esa Hyytiä <ehyytia@cc.hut.fi>)
-0       string          XBEH            XBE, Microsoft Xbox executable
-# probabilistic checks whether signed or not
->0x0004 ulelong =0x0
->>&2    ulelong =0x0
->>>&2   ulelong =0x0  \b, not signed
->0x0004 ulelong >0
->>&2    ulelong >0
->>>&2   ulelong >0    \b, signed
-# expect base address of 0x10000
->0x0104               ulelong =0x10000
->>(0x0118-0x0FF60)    ulelong&0x80000007  0x80000007 \b, all regions
->>(0x0118-0x0FF60)    ulelong&0x80000007  !0x80000007
->>>(0x0118-0x0FF60)   ulelong >0           (regions:
->>>>(0x0118-0x0FF60)  ulelong &0x00000001  NA
->>>>(0x0118-0x0FF60)  ulelong &0x00000002  Japan
->>>>(0x0118-0x0FF60)  ulelong &0x00000004  Rest_of_World
->>>>(0x0118-0x0FF60)  ulelong &0x80000000  Manufacturer
->>>(0x0118-0x0FF60)   ulelong >0           \b)
-
-# --------------------------------
-# Microsoft Xbox data file formats
-0       string          XIP0            XIP, Microsoft Xbox data
-0       string          XTF0            XTF, Microsoft Xbox data
-
-# Atari Lynx cartridge dump (EXE/BLL header)
-# From: "Stefan A. Haubenthal" <polluks@web.de>
-
-0	beshort		0x8008		Lynx cartridge,
->2	beshort		x		RAM start $%04x
->6	string		BS93
-
-# Opera file system that is used on the 3DO console
-# From: Serge van den Boom <svdb@stack.nl>
-0	string		\x01ZZZZZ\x01	3DO "Opera" file system
-
-# From Gürkan Sengün <gurkan@linuks.mine.nu>, www.linuks.mine.nu
-0	string		GBS		Nintendo Gameboy Music/Audio Data
-12	string		GameBoy\ Music\ Module	Nintendo Gameboy Music Module
-
-# Playstations Patch Files from: From: Thomas Klausner <tk@giga.or.at>
-0	string	PPF30			Playstation Patch File version 3.0
->5	byte	0			\b, PPF 1.0 patch
->5	byte	1			\b, PPF 2.0 patch
->5	byte	2			\b, PPF 3.0 patch
->>56	byte	0			\b, Imagetype BIN (any)
->>56	byte	1			\b, Imagetype GI (PrimoDVD)
->>57	byte	0			\b, Blockcheck disabled
->>57	byte	1			\b, Blockcheck enabled
->>58	byte	0			\b, Undo data not available
->>58	byte	1			\b, Undo data available
->6	string	x			\b, description: %s
-
-0	string	PPF20			Playstation Patch File version 2.0
->5	byte	0			\b, PPF 1.0 patch
->5	byte	1			\b, PPF 2.0 patch
->>56	lelong	>0			\b, size of file to patch %d
->6	string	x			\b, description: %s
-
-0	string	PPF10			Playstation Patch File version 1.0
->5	byte	0			\b, Simple Encoding
->6	string	x			\b, description: %s
-
-# From: Daniel Dawson <ddawson@icehouse.net>
-# SNES9x .smv "movie" file format.
-0		string		SMV\x1A	SNES9x input recording
->0x4		lelong		x	\b, version %d
-# version 4 is latest so far 
->0x4		lelong		<5
->>0x8		ledate		x	\b, recorded at %s
->>0xc		lelong		>0	\b, rerecorded %d times
->>0x10		lelong		x	\b, %d frames long
->>0x14		byte		>0	\b, data for controller(s):
->>>0x14		byte		&0x1	#1
->>>0x14		byte		&0x2	#2
->>>0x14		byte		&0x4	#3
->>>0x14		byte		&0x8	#4
->>>0x14		byte		&0x10	#5
->>0x15		byte		^0x1	\b, begins from snapshot
->>0x15		byte		&0x1	\b, begins from reset
->>0x15		byte		^0x2	\b, NTSC standard
->>0x15		byte		&0x2	\b, PAL standard
->>0x17		byte		&0x1    \b, settings:
-# WIP1Timing not used as of version 4
->>>0x4		lelong		<4
->>>>0x17	byte		&0x2	WIP1Timing
->>>0x17		byte		&0x4	Left+Right
->>>0x17		byte		&0x8	VolumeEnvX
->>>0x17		byte		&0x10	FakeMute
->>>0x17		byte		&0x20	SyncSound
-# New flag as of version 4
->>>0x4		lelong		>3
->>>>0x17	byte		&0x80	NoCPUShutdown
->>0x4		lelong		<4
->>>0x18		lelong		>0x23
->>>>0x20	leshort		!0
->>>>>0x20	lestring16	x	\b, metadata: "%s"
->>0x4		lelong		>3
->>>0x24		byte		>0	\b, port 1:
->>>>0x24	byte		1	joypad
->>>>0x24	byte		2	mouse
->>>>0x24	byte		3	SuperScope
->>>>0x24	byte		4	Justifier
->>>>0x24	byte		5	multitap
->>>0x24		byte		>0	\b, port 2:
->>>>0x25	byte		1	joypad
->>>>0x25	byte		2	mouse
->>>>0x25	byte		3	SuperScope
->>>>0x25	byte		4	Justifier
->>>>0x25	byte		5	multitap
->>>0x18		lelong		>0x43
->>>>0x40	leshort		!0
->>>>>0x40	lestring16	x	\b, metadata: "%s"
->>0x17		byte		&0x40   \b, ROM:
->>>(0x18.l-26)	lelong		x	CRC32 0x%08x
->>>(0x18.l-23)	string		x	"%s"
-
-# Type: scummVM savegame files
-# From: Sven Hartge <debian@ds9.argh.org>
-0	string	SCVM	ScummVM savegame
->12	string	>\0	"%s"
-#------------------------------------------------------------------------------
-# convex:  file(1) magic for Convex boxes
-#
-# Convexes are big-endian.
-#
-# /*\
-#  * Below are the magic numbers and tests added for Convex.
-#  * Added at beginning, because they are expected to be used most.
-# \*/
-0	belong	0507	Convex old-style object
->16	belong	>0	not stripped
-0	belong	0513	Convex old-style demand paged executable
->16	belong	>0	not stripped
-0	belong	0515	Convex old-style pre-paged executable
->16	belong	>0	not stripped
-0	belong	0517	Convex old-style pre-paged, non-swapped executable
->16	belong	>0	not stripped
-0	belong	0x011257	Core file
-#
-# The following are a series of dump format magic numbers.  Each one
-# corresponds to a drastically different dump format.  The first on is
-# the original dump format on a 4.1 BSD or earlier file system.  The
-# second marks the change between the 4.1 file system and the 4.2 file
-# system.  The Third marks the changing of the block size from 1K
-# to 2K to be compatible with an IDC file system.  The fourth indicates
-# a dump that is dependent on Convex Storage Manager, because data in
-# secondary storage is not physically contained within the dump.
-# The restore program uses these number to determine how the data is
-# to be extracted.
-#
-24	belong	=60011	dump format, 4.1 BSD or earlier
-24	belong	=60012	dump format, 4.2 or 4.3 BSD without IDC
-24	belong	=60013	dump format, 4.2 or 4.3 BSD (IDC compatible)
-24	belong	=60014	dump format, Convex Storage Manager by-reference dump
-#
-# what follows is a bunch of bit-mask checks on the flags field of the opthdr.
-# If there is no `=' sign, assume just checking for whether the bit is set?
-#
-0	belong	0601		Convex SOFF
->88	belong&0x000f0000	=0x00000000	c1
->88	belong			&0x00010000	c2
->88	belong			&0x00020000	c2mp
->88	belong			&0x00040000	parallel
->88	belong			&0x00080000	intrinsic
->88	belong			&0x00000001	demand paged
->88	belong			&0x00000002	pre-paged
->88	belong			&0x00000004	non-swapped
->88	belong			&0x00000008	POSIX
-#
->84	belong			&0x80000000	executable
->84	belong			&0x40000000	object
->84	belong&0x20000000	=0		not stripped
->84	belong&0x18000000	=0x00000000	native fpmode
->84	belong&0x18000000	=0x10000000	ieee fpmode
->84	belong&0x18000000	=0x18000000	undefined fpmode
-#
-0	belong			0605		Convex SOFF core
-#
-0	belong			0607		Convex SOFF checkpoint
->88	belong&0x000f0000	=0x00000000	c1
->88	belong			&0x00010000	c2
->88	belong			&0x00020000	c2mp
->88	belong			&0x00040000	parallel
->88	belong			&0x00080000	intrinsic
->88	belong			&0x00000008	POSIX
-#
->84	belong&0x18000000	=0x00000000	native fpmode
->84	belong&0x18000000	=0x10000000	ieee fpmode
->84	belong&0x18000000	=0x18000000	undefined fpmode
-
-#------------------------------------------------------------------------------
-# cracklib:  file (1) magic for cracklib v2.7
-
-0	lelong	0x70775631	Cracklib password index, little endian
->4	long	>0		(%i words)
->4	long	0		("64-bit")
->>8	long	>-1		(%i words)
-0	belong	0x70775631	Cracklib password index, big endian
->4	belong	>-1		(%i words)
-# really bellong 0x0000000070775631
-0	search/1	\0\0\0\0pwV1	Cracklib password index, big endian ("64-bit")
->12	belong	>0		(%i words)
-# ----------------------------------------------------------------------------
-# ctags:  file (1) magic for Exuberant Ctags files
-# From: Alexander Mai <mai@migdal.ikp.physik.tu-darmstadt.de>
-0	search/1	=!_TAG	Exuberant Ctags tag file text
-
-#------------------------------------------------------------------------------
-# dact:  file(1) magic for DACT compressed files
-#
-0	long		0x444354C3	DACT compressed data
->4	byte		>-1		(version %i.
->5	byte		>-1		$BS%i.
->6	byte		>-1		$BS%i)
->7	long		>0		$BS, original size: %i bytes
->15	long		>30		$BS, block size: %i bytes
-
-#------------------------------------------------------------------------------
-# database:  file(1) magic for various databases
-#
-# extracted from header/code files by Graeme Wilford (eep2gw@ee.surrey.ac.uk)
-#
-#
-# GDBM magic numbers
-#  Will be maintained as part of the GDBM distribution in the future.
-#  <downsj@teeny.org>
-0	belong	0x13579ace	GNU dbm 1.x or ndbm database, big endian
-!:mime	application/x-gdbm
-0	lelong	0x13579ace	GNU dbm 1.x or ndbm database, little endian
-!:mime	application/x-gdbm
-0	string	GDBM		GNU dbm 2.x database
-!:mime	application/x-gdbm
-#
-# Berkeley DB
-#
-# Ian Darwin's file /etc/magic files: big/little-endian version.
-#
-# Hash 1.85/1.86 databases store metadata in network byte order.
-# Btree 1.85/1.86 databases store the metadata in host byte order.
-# Hash and Btree 2.X and later databases store the metadata in host byte order.
-
-0	long	0x00061561	Berkeley DB
-!:mime	application/x-dbm
->8	belong	4321
->>4	belong	>2		1.86
->>4	belong	<3		1.85
->>4	belong	>0		(Hash, version %d, native byte-order)
->8	belong	1234
->>4	belong	>2		1.86
->>4	belong	<3		1.85
->>4	belong	>0		(Hash, version %d, little-endian)
-
-0	belong	0x00061561	Berkeley DB
->8	belong	4321
->>4	belong	>2		1.86
->>4	belong	<3		1.85
->>4	belong	>0		(Hash, version %d, big-endian)
->8	belong	1234
->>4	belong	>2		1.86
->>4	belong	<3		1.85
->>4	belong	>0		(Hash, version %d, native byte-order)
-
-0	long	0x00053162	Berkeley DB 1.85/1.86
->4	long	>0		(Btree, version %d, native byte-order)
-0	belong	0x00053162	Berkeley DB 1.85/1.86
->4	belong	>0		(Btree, version %d, big-endian)
-0	lelong	0x00053162	Berkeley DB 1.85/1.86
->4	lelong	>0		(Btree, version %d, little-endian)
-
-12	long	0x00061561	Berkeley DB
->16	long	>0		(Hash, version %d, native byte-order)
-12	belong	0x00061561	Berkeley DB
->16	belong	>0		(Hash, version %d, big-endian)
-12	lelong	0x00061561	Berkeley DB
->16	lelong	>0		(Hash, version %d, little-endian)
-
-12	long	0x00053162	Berkeley DB
->16	long	>0		(Btree, version %d, native byte-order)
-12	belong	0x00053162	Berkeley DB
->16	belong	>0		(Btree, version %d, big-endian)
-12	lelong	0x00053162	Berkeley DB
->16	lelong	>0		(Btree, version %d, little-endian)
-
-12	long	0x00042253	Berkeley DB
->16	long	>0		(Queue, version %d, native byte-order)
-12	belong	0x00042253	Berkeley DB
->16	belong	>0		(Queue, version %d, big-endian)
-12	lelong	0x00042253	Berkeley DB
->16	lelong	>0		(Queue, version %d, little-endian)
-
-# From Max Bowsher.
-12	long	0x00040988	Berkeley DB
->16	long	>0		(Log, version %d, native byte-order)
-12	belong	0x00040988	Berkeley DB 
->16	belong	>0		(Log, version %d, big-endian)
-12	lelong	0x00040988	Berkeley DB
->16	lelong	>0		(Log, version %d, little-endian)
-
-#
-#
-# Round Robin Database Tool by Tobias Oetiker <oetiker@ee.ethz.ch>
-0	string	RRD		RRDTool DB
->4	string	x		version %s
-#----------------------------------------------------------------------
-# ROOT: file(1) magic for ROOT databases
-#
-0       string  root\0  ROOT file
->4      belong  x       Version %d
->33     belong  x       (Compression: %d)
-
-# XXX: Weak magic.
-# Alex Ott <ott@jet.msk.su>
-## Paradox file formats
-#2	  leshort	0x0800	Paradox 
-#>0x39	  byte		3	v. 3.0 
-#>0x39	  byte		4	v. 3.5 
-#>0x39	  byte		9	v. 4.x 
-#>0x39	  byte		10	v. 5.x 
-#>0x39	  byte		11	v. 5.x 
-#>0x39	  byte		12	v. 7.x 
-#>>0x04	  byte		0	indexed .DB data file 
-#>>0x04	  byte		1	primary index .PX file 
-#>>0x04	  byte		2	non-indexed .DB data file 
-#>>0x04	  byte		3	non-incrementing secondary index .Xnn file 
-#>>0x04	  byte		4	secondary index .Ynn file 
-#>>0x04	  byte		5	incrementing secondary index .Xnn file 
-#>>0x04	  byte		6	non-incrementing secondary index .XGn file 
-#>>0x04	  byte		7	secondary index .YGn file 
-#>>>0x04	  byte		8	incrementing secondary index .XGn file 
-
-## XBase database files
-#0      byte       0x02	
-#>8     leshort	  >0
-#>>12   leshort    0	FoxBase 
-#!:mime	application/x-dbf
-#>>>0x04	lelong		0		(no records)
-#>>>0x04	lelong		>0		(%ld records)
-#
-#0      byte       0x03	
-#!:mime	application/x-dbf
-#>8     leshort	  >0
-#>>12   leshort    0	FoxBase+, FoxPro, dBaseIII+, dBaseIV, no memo 
-#>>>0x04	lelong		0		(no records)
-#>>>0x04	lelong		>0		(%ld records)
-#
-#0      byte       0x04	
-#!:mime	application/x-dbf
-#>8     leshort	  >0
-#>>12   leshort    0	dBASE IV no memo file 
-#>>>0x04	lelong		0		(no records)
-#>>>0x04	lelong		>0		(%ld records)
-#
-#0      byte       0x05	
-#!:mime	application/x-dbf
-#>8     leshort	  >0
-#>>12   leshort    0	dBASE V no memo file 
-#>>>0x04	lelong		0		(no records)
-#>>>0x04	lelong		>0		(%ld records)
-#
-#0      byte       0x30
-#!:mime	application/x-dbf
-#>8     leshort	  >0
-#>>12   leshort    0	Visual FoxPro 
-#>>>0x04	lelong		0		(no records)
-#>>>0x04	lelong		>0		(%ld records)
-#
-#0      byte       0x43
-#!:mime	application/x-dbf
-#>8     leshort	  >0
-#>>12   leshort    0	FlagShip with memo var size 
-#>>>0x04	lelong		0		(no records)
-#>>>0x04	lelong		>0		(%ld records)
-#
-#0      byte       0x7b
-#!:mime	application/x-dbf
-#>8     leshort	  >0
-#>>12   leshort    0	dBASEIV with memo 
-#>>>0x04	lelong		0		(no records)
-#>>>0x04	lelong		>0		(%ld records)
-#
-#0      byte       0x83	
-#!:mime	application/x-dbf
-#>8     leshort	  >0
-#>>12   leshort    0	FoxBase+, dBaseIII+ with memo 
-#>>>0x04	lelong		0		(no records)
-#>>>0x04	lelong		>0		(%ld records)
-#
-#0      byte       0x8b
-#!:mime	application/x-dbf
-#>8     leshort	  >0
-#>>12   leshort    0	dBaseIV with memo 
-#>>>0x04	lelong		0		(no records)
-#>>>0x04	lelong		>0		(%ld records)
-#
-#0      byte       0x8e	
-#!:mime	application/x-dbf
-#>8     leshort	  >0
-#>>12   leshort    0	dBaseIV with SQL Table 
-#>>>0x04	lelong		0		(no records)
-#>>>0x04	lelong		>0		(%ld records)
-#
-#0      byte       0xb3
-#!:mime	application/x-dbf
-#>8     leshort	  >0
-#>>12   leshort    0	FlagShip with .dbt memo 
-#>>>0x04	lelong		0		(no records)
-#>>>0x04	lelong		>0		(%ld records)
-#
-#0      byte       0xf5
-#!:mime	application/x-dbf
-#>8     leshort	  >0
-#>>12   leshort    0	FoxPro with memo 
-#>>>0x04	lelong		0		(no records)
-#>>>0x04	lelong		>0		(%ld records)
-#
-#0	leshort		0x0006		DBase 3 index file
-
-# MS Access database
-4	string	Standard\ Jet\ DB	Microsoft Access Database
-!:mime	application/x-msaccess
-
-# TDB database from Samba et al - Martin Pool <mbp@samba.org>
-0	string	TDB\ file		TDB database
->32	lelong	0x2601196D		version 6, little-endian
->>36	lelong	x			hash size %d bytes
-
-# SE Linux policy database
-0       lelong  0xf97cff8c      SE Linux policy
->16     lelong  x               v%d
->20     lelong  1      MLS
->24     lelong  x       %d symbols
->28     lelong  x       %d ocons
-
-# ICE authority file data (Wolfram Kleff)
-2	string		ICE		ICE authority data
-
-# X11 Xauthority file (Wolfram Kleff)
-10	string		MIT-MAGIC-COOKIE-1	X11 Xauthority data
-11	string		MIT-MAGIC-COOKIE-1	X11 Xauthority data
-12	string		MIT-MAGIC-COOKIE-1	X11 Xauthority data
-13	string		MIT-MAGIC-COOKIE-1	X11 Xauthority data
-14	string		MIT-MAGIC-COOKIE-1	X11 Xauthority data
-15	string		MIT-MAGIC-COOKIE-1	X11 Xauthority data
-16	string		MIT-MAGIC-COOKIE-1	X11 Xauthority data
-17	string		MIT-MAGIC-COOKIE-1	X11 Xauthority data
-18	string		MIT-MAGIC-COOKIE-1	X11 Xauthority data
-
-# From: Maxime Henrion <mux@FreeBSD.org>
-# PostgreSQL's custom dump format, Maxime Henrion <mux@FreeBSD.org>
-0	string		PGDMP		PostgreSQL custom database dump
->5	byte		x		- v%d
->6	byte		x		\b.%d
->5	beshort		<0x101		\b-0
->5	beshort		>0x100
->>7	byte		x		\b-%d
-
-# Type: Advanced Data Format (ADF) database
-# URL:  http://www.grc.nasa.gov/WWW/cgns/adf/
-# From: Nicolas Chauvat <nicolas.chauvat@logilab.fr>
-0	string	@(#)ADF\ Database	CGNS Advanced Data Format
-
-# Tokyo Cabinet magic data
-# http://tokyocabinet.sourceforge.net/index.html
-0	string		ToKyO\ CaBiNeT\n	Tokyo Cabinet
->14	string		x			\b (%s)
->32	byte		0			\b, Hash
-!:mime	application/x-tokyocabinet-hash
->32	byte		1			\b, B+ tree
-!:mime	application/x-tokyocabinet-btree
->32	byte		2			\b, Fixed-length
-!:mime	application/x-tokyocabinet-fixed
->32	byte		3			\b, Table
-!:mime	application/x-tokyocabinet-table
->33	byte		&1			\b, [open]
->33	byte		&2			\b, [fatal]
->34	byte		x			\b, apow=%d
->35	byte		x			\b, fpow=%d
->36	byte		&0x01			\b, [large]
->36	byte		&0x02			\b, [deflate]
->36	byte		&0x04			\b, [bzip]
->36	byte		&0x08			\b, [tcbs]
->36	byte		&0x10			\b, [excodec]
->40	lequad		x			\b, bnum=%lld
->48	lequad		x			\b, rnum=%lld
->56	lequad		x			\b, fsiz=%lld
-
-# Type:	QDBM Quick Database Manager
-# From:	Benoit Sibaud <bsibaud@april.org>
-0	string		\\[depot\\]\n\f		Quick Database Manager, little endian
-0	string		\\[DEPOT\\]\n\f		Quick Database Manager, big endian
-
-# Type:	TokyoCabinet database
-# URL:	http://tokyocabinet.sourceforge.net/
-# From:	Benoit Sibaud <bsibaud@april.org>
-0	string		ToKyO\ CaBiNeT\n	TokyoCabinet database
->14	string		x			(version %s)
-
-#------------------------------------------------------------------------------
-# diamond:  file(1) magic for Diamond system
-#
-# ... diamond is a multi-media mail and electronic conferencing system....
-#
-# XXX - I think it was either renamed Slate, or replaced by Slate....
-#
-#	The full deal is too long...
-#0	string	<list>\n<protocol\ bbn-multimedia-format>	Diamond Multimedia Document
-0	string	=<list>\n<protocol\ bbn-m	Diamond Multimedia Document
-#------------------------------------------------------------------------------
-# diff:  file(1) magic for diff(1) output
-#
-0	search/1	diff\ 		diff output text
-!:mime	text/x-diff
-0	search/1	***\ 		diff output text
-!:mime	text/x-diff
-0	search/1	Only\ in\ 	diff output text
-!:mime	text/x-diff
-0	search/1	Common\ subdirectories:\ 	diff output text
-!:mime	text/x-diff
-
-0	search/1	Index:		RCS/CVS diff output text
-!:mime	text/x-diff
-#  Digital UNIX - Info
-#
-0	string	=!<arch>\n________64E	Alpha archive
->22	string	X			-- out of date
-#
-# Alpha COFF Based Executables
-# The stripped stuff really needs to be an 8 byte (64 bit) compare,
-# but this works
-0	leshort		0x183		COFF format alpha
->22	leshort&020000	&010000		sharable library,
->22	leshort&020000	^010000		dynamically linked,
->24	leshort		0410		pure
->24	leshort		0413		demand paged
->8	lelong		>0		executable or object module, not stripped
->8	lelong		0
->>12	lelong		0		executable or object module, stripped
->>12	lelong		>0		executable or object module, not stripped
->27     byte            >0              - version %d.
->26     byte            >0              %d-
->28     leshort         >0              %d
-#
-# The next is incomplete, we could tell more about this format,
-# but its not worth it.
-0	leshort		0x188	Alpha compressed COFF
-0	leshort		0x18f	Alpha u-code object
-#
-#
-# Some other interesting Digital formats,
-0	string	\377\377\177		ddis/ddif
-0	string	\377\377\174		ddis/dots archive
-0	string	\377\377\176		ddis/dtif table data
-0	string	\033c\033		LN03 output
-0	long	04553207		X image
-#
-0	string	=!<PDF>!\n		profiling data file
-#
-# Locale data tables (MIPS and Alpha).
-#
-0	short		0x0501		locale data table
->6	short		0x24		for MIPS
->6	short		0x40		for Alpha
-# ATSC A/53 aka AC-3 aka Dolby Digital <ashitaka@gmx.at>
-# from http://www.atsc.org/standards/a_52a.pdf
-# corrections, additions, etc. are always welcome!
-#
-# syncword
-0       beshort         0x0b77  ATSC A/52 aka AC-3 aka Dolby Digital stream,
-# fscod
->4      byte&0xc0       0x00    48 kHz,
->4      byte&0xc0       0x40    44.1 kHz,
->4      byte&0xc0       0x80    32 kHz,
-# is this one used for 96 kHz?
->4      byte&0xc0       0xc0    reserved frequency,
-#
->5	byte&7 = 0		\b, complete main (CM)
->5	byte&7 = 1		\b, music and effects (ME)
->5	byte&7 = 2		\b, visually impaired (VI)
->5	byte&7 = 3		\b, hearing impaired (HI)
->5	byte&7 = 4		\b, dialogue (D)
->5	byte&7 = 5		\b, commentary (C)
->5	byte&7 = 6		\b, emergency (E)
-# acmod
->6      byte&0xe0       0x00    1+1 front,
->6      byte&0xe0       0x20    1 front/0 rear,
->6      byte&0xe0       0x40    2 front/0 rear,
->6      byte&0xe0       0x60    3 front/0 rear,
->6      byte&0xe0       0x80    2 front/1 rear,
->6      byte&0xe0       0xa0    3 front/1 rear,
->6      byte&0xe0       0xc0    2 front/2 rear,
->6      byte&0xe0       0xe0    3 front/2 rear,
-# lfeon (these may be incorrect)
->7      byte&0x40       0x00    LFE off,
->7      byte&0x40       0x40    LFE on,
-#
->4	byte&0x3e = 0x00	\b, 32 kbit/s
->4	byte&0x3e = 0x02        \b, 40 kbit/s
->4	byte&0x3e = 0x04        \b, 48 kbit/s
->4	byte&0x3e = 0x06        \b, 56 kbit/s
->4	byte&0x3e = 0x08        \b, 64 kbit/s
->4	byte&0x3e = 0x0a        \b, 80 kbit/s
->4	byte&0x3e = 0x0c        \b, 96 kbit/s
->4	byte&0x3e = 0x0e        \b, 112 kbit/s
->4	byte&0x3e = 0x10        \b, 128 kbit/s
->4	byte&0x3e = 0x12        \b, 160 kbit/s
->4	byte&0x3e = 0x14        \b, 192 kbit/s
->4	byte&0x3e = 0x16        \b, 224 kbit/s
->4	byte&0x3e = 0x18        \b, 256 kbit/s
->4	byte&0x3e = 0x1a        \b, 320 kbit/s
->4	byte&0x3e = 0x1c        \b, 384 kbit/s
->4	byte&0x3e = 0x1e        \b, 448 kbit/s
->4	byte&0x3e = 0x20        \b, 512 kbit/s
->4	byte&0x3e = 0x22        \b, 576 kbit/s
->4	byte&0x3e = 0x24        \b, 640 kbit/s
-# dsurmod (these may be incorrect)
->6      beshort&0x0180  0x0000  Dolby Surround not indicated
->6      beshort&0x0180  0x0080  not Dolby Surround encoded
->6      beshort&0x0180  0x0100  Dolby Surround encoded
->6      beshort&0x0180  0x0180  reserved Dolby Surround mode
-
-#------------------------------------------------------------------------------
-# dump:  file(1) magic for dump file format--for new and old dump filesystems
-#
-# We specify both byte orders in order to recognize byte-swapped dumps.
-#
-24	belong	60012		new-fs dump file (big endian),
->4	bedate	x		Previous dump %s,
->8	bedate	x		This dump %s,
->12	belong	>0		Volume %ld,
->692	belong	0		Level zero, type:
->692	belong	>0		Level %d, type:
->0	belong	1		tape header,
->0	belong	2		beginning of file record,
->0	belong	3		map of inodes on tape,
->0	belong	4		continuation of file record,
->0	belong	5		end of volume,
->0	belong	6		map of inodes deleted,
->0	belong	7		end of medium (for floppy),
->676	string	>\0		Label %s,
->696	string	>\0		Filesystem %s,
->760	string	>\0		Device %s,
->824	string	>\0		Host %s,
->888	belong	>0		Flags %x
-
-24	belong	60011		old-fs dump file (big endian),
-#>4	bedate	x		Previous dump %s,
-#>8	bedate	x		This dump %s,
->12	belong	>0		Volume %ld,
->692	belong	0		Level zero, type:
->692	belong	>0		Level %d, type:
->0	belong	1		tape header,
->0	belong	2		beginning of file record,
->0	belong	3		map of inodes on tape,
->0	belong	4		continuation of file record,
->0	belong	5		end of volume,
->0	belong	6		map of inodes deleted,
->0	belong	7		end of medium (for floppy),
->676	string	>\0		Label %s,
->696	string	>\0		Filesystem %s,
->760	string	>\0		Device %s,
->824	string	>\0		Host %s,
->888	belong	>0		Flags %x
-
-24	lelong	60012		new-fs dump file (little endian),
->4	ledate	x		This dump %s,
->8	ledate	x		Previous dump %s,
->12	lelong	>0		Volume %ld,
->692	lelong	0		Level zero, type:
->692	lelong	>0		Level %d, type:
->0	lelong	1		tape header,
->0	lelong	2		beginning of file record,
->0	lelong	3		map of inodes on tape,
->0	lelong	4		continuation of file record,
->0	lelong	5		end of volume,
->0	lelong	6		map of inodes deleted,
->0	lelong	7		end of medium (for floppy),
->676	string	>\0		Label %s,
->696	string	>\0		Filesystem %s,
->760	string	>\0		Device %s,
->824	string	>\0		Host %s,
->888	lelong	>0		Flags %x
-
-24	lelong	60011		old-fs dump file (little endian),
-#>4	ledate	x		Previous dump %s,
-#>8	ledate	x		This dump %s,
->12	lelong	>0		Volume %ld,
->692	lelong	0		Level zero, type:
->692	lelong	>0		Level %d, type:
->0	lelong	1		tape header,
->0	lelong	2		beginning of file record,
->0	lelong	3		map of inodes on tape,
->0	lelong	4		continuation of file record,
->0	lelong	5		end of volume,
->0	lelong	6		map of inodes deleted,
->0	lelong	7		end of medium (for floppy),
->676	string	>\0		Label %s,
->696	string	>\0		Filesystem %s,
->760	string	>\0		Device %s,
->824	string	>\0		Host %s,
->888	lelong	>0		Flags %x
-
-18	leshort	60011		old-fs dump file (16-bit, assuming PDP-11 endianness),
->2	medate	x		Previous dump %s,
->6	medate	x		This dump %s,
->10	leshort	>0		Volume %ld,
->0	leshort	1		tape header.
->0	leshort	2		beginning of file record.
->0	leshort	3		map of inodes on tape.
->0	leshort	4		continuation of file record.
->0	leshort	5		end of volume.
->0	leshort	6		map of inodes deleted.
->0	leshort	7		end of medium (for floppy).
-
-24	belong	0x19540119	new-fs dump file (ufs2, big endian),
->896	beqdate	x		Previous dump %s,
->904	beqdate	x		This dump %s,
->12	belong	>0		Volume %ld,
->692	belong	0		Level zero, type:
->692	belong	>0		Level %d, type:
->0	belong	1		tape header,
->0	belong	2		beginning of file record,
->0	belong	3		map of inodes on tape,
->0	belong	4		continuation of file record,
->0	belong	5		end of volume,
->0	belong	6		map of inodes deleted,
->0	belong	7		end of medium (for floppy),
->676	string	>\0		Label %s,
->696	string	>\0		Filesystem %s,
->760	string	>\0		Device %s,
->824	string	>\0		Host %s,
->888	belong	>0		Flags %x
-
-24	lelong	0x19540119	new-fs dump file (ufs2, little endian),
->896	leqdate	x		This dump %s,
->904	leqdate	x		Previous dump %s,
->12	lelong	>0		Volume %ld,
->692	lelong	0		Level zero, type:
->692	lelong	>0		Level %d, type:
->0	lelong	1		tape header,
->0	lelong	2		beginning of file record,
->0	lelong	3		map of inodes on tape,
->0	lelong	4		continuation of file record,
->0	lelong	5		end of volume,
->0	lelong	6		map of inodes deleted,
->0	lelong	7		end of medium (for floppy),
->676	string	>\0		Label %s,
->696	string	>\0		Filesystem %s,
->760	string	>\0		Device %s,
->824	string	>\0		Host %s,
->888	lelong	>0		Flags %x
-
-#------------------------------------------------------------------------------
-# Dyadic: file(1) magic for Dyalog APL.
-#
-0 	byte	0xaa
->1	byte	<4		Dyalog APL
->>1	byte	0x00		incomplete workspace
->>1	byte	0x01		component file
->>1	byte	0x02		external variable
->>1	byte	0x03		workspace
->>2	byte	x		version %d
->>3	byte	x		.%d
-
-#------------------------------------------------------------------------------
-# T602 editor documents 
-# by David Necas <yeti@physics.muni.cz>
-0	string	@CT\ 	T602 document data,
->4	string	0	Kamenicky
->4	string	1	CP 852
->4	string	2	KOI8-CS
->4	string	>2	unknown encoding
-
-# Vi IMproved Encrypted file 
-# by David Necas <yeti@physics.muni.cz>
-0	string	VimCrypt~	Vim encrypted file data
-# Vi IMproved Swap file
-# by Sven Wegener <swegener@gentoo.org>
-0	string	b0VIM\ 		Vim swap file
->&0	string	>\0		\b, version %s
-
-#------------------------------------------------------------------------------
-# efi:  file(1) magic for Universal EFI binaries
-
-0	lelong	0x0ef1fab9
->4	lelong	1		Universal EFI binary with 1 architecture
->>&0	lelong	7		\b, i386
->>&0	lelong	0x01000007	\b, x86_64
->4	lelong	2		Universal EFI binary with 2 architectures
->>&0	lelong	7		\b, i386
->>&0	lelong	0x01000007	\b, x86_64
->>&20	lelong	7		\b, i386
->>&20	lelong	0x01000007	\b, x86_64
->4	lelong	>2		Universal EFI binary with %ld architectures
-
-#------------------------------------------------------------------------------
-# elf:  file(1) magic for ELF executables
-#
-# We have to check the byte order flag to see what byte order all the
-# other stuff in the header is in.
-#
-# What're the correct byte orders for the nCUBE and the Fujitsu VPP500?
-#
-# Created by: unknown
-# Modified by (1): Daniel Quinlan <quinlan@yggdrasil.com>
-# Modified by (2): Peter Tobias <tobias@server.et-inf.fho-emden.de> (core support)
-# Modified by (3): Christian 'Dr. Disk' Hechelmann <drdisk@ds9.au.s.shuttle.de> (fix of core support)
-# Modified by (4): <gerardo.cacciari@gmail.com> (VMS Itanium)
-# Modified by (5): Matthias Urlichs <smurf@debian.org> (Listing of many architectures)
-0	string		\177ELF		ELF
->4	byte		0		invalid class
->4	byte		1		32-bit
->4	byte		2		64-bit
->5	byte		0		invalid byte order
->5	byte		1		LSB
->>16	leshort		0		no file type,
-!:strength *2
-!:mime	application/octet-stream
->>16	leshort		1		relocatable,
-!:mime	application/x-object
->>16	leshort		2		executable,
-!:mime	application/x-executable
->>16	leshort		3		shared object,
-!:mime	application/x-sharedlib
->>16	leshort		4		core file
-!:mime	application/x-coredump
-# Core file detection is not reliable.
-#>>>(0x38+0xcc) string	>\0		of '%s'
-#>>>(0x38+0x10) lelong	>0		(signal %d),
->>16	leshort		&0xff00		processor-specific,
->>18	leshort		0		no machine,
->>18	leshort		1		AT&T WE32100 - invalid byte order,
->>18	leshort		2		SPARC - invalid byte order,
->>18	leshort		3		Intel 80386,
->>18	leshort		4		Motorola
->>>36	lelong		&0x01000000	68000 - invalid byte order,
->>>36	lelong		&0x00810000	CPU32 - invalid byte order,
->>>36	lelong		0		68020 - invalid byte order,
->>18	leshort		5		Motorola 88000 - invalid byte order,
->>18	leshort		6		Intel 80486,
->>18	leshort		7		Intel 80860,
-# The official e_machine number for MIPS is now #8, regardless of endianness.
-# The second number (#10) will be deprecated later. For now, we still
-# say something if #10 is encountered, but only gory details for #8.
->>18	leshort		8		MIPS,
->>>36	lelong		&0x20		N32
->>18	leshort		10		MIPS,
->>>36	lelong		&0x20		N32
->>18	leshort		8
-# only for 32-bit
->>>4	byte		1
->>>>36  lelong&0xf0000000	0x00000000	MIPS-I
->>>>36  lelong&0xf0000000	0x10000000	MIPS-II
->>>>36  lelong&0xf0000000	0x20000000	MIPS-III
->>>>36  lelong&0xf0000000	0x30000000	MIPS-IV
->>>>36  lelong&0xf0000000	0x40000000	MIPS-V
->>>>36  lelong&0xf0000000	0x50000000	MIPS32
->>>>36  lelong&0xf0000000	0x60000000	MIPS64
->>>>36  lelong&0xf0000000	0x70000000	MIPS32 rel2
->>>>36  lelong&0xf0000000	0x80000000	MIPS64 rel2
-# only for 64-bit
->>>4	byte		2
->>>>48  lelong&0xf0000000	0x00000000	MIPS-I
->>>>48  lelong&0xf0000000	0x10000000	MIPS-II
->>>>48  lelong&0xf0000000	0x20000000	MIPS-III
->>>>48  lelong&0xf0000000	0x30000000	MIPS-IV
->>>>48  lelong&0xf0000000	0x40000000	MIPS-V
->>>>48  lelong&0xf0000000	0x50000000	MIPS32
->>>>48  lelong&0xf0000000	0x60000000	MIPS64
->>>>48  lelong&0xf0000000	0x70000000	MIPS32 rel2
->>>>48  lelong&0xf0000000	0x80000000	MIPS64 rel2
->>18	leshort		9		Amdahl - invalid byte order,
->>18	leshort		10		MIPS (deprecated),
->>18	leshort		11		RS6000 - invalid byte order,
->>18	leshort		15		PA-RISC - invalid byte order,
->>>50	leshort		0x0214		2.0
->>>48	leshort		&0x0008		(LP64),
->>18	leshort		16		nCUBE,
->>18	leshort		17		Fujitsu VPP500,
->>18	leshort		18		SPARC32PLUS - invalid byte order,
->>18	leshort		20		PowerPC,
->>18	leshort		22		IBM S/390,
->>18	leshort		36		NEC V800,
->>18	leshort		37		Fujitsu FR20,
->>18	leshort		38		TRW RH-32,
->>18	leshort		39		Motorola RCE,
->>18	leshort		40		ARM,
->>18	leshort		41		Alpha,
->>18	leshort		0xa390		IBM S/390 (obsolete),
->>18	leshort		42		Renesas SH,
->>18	leshort		43		SPARC V9 - invalid byte order,
->>18	leshort		44		Siemens Tricore Embedded Processor,
->>18	leshort		45		Argonaut RISC Core, Argonaut Technologies Inc.,
->>18	leshort		46		Renesas H8/300,
->>18	leshort		47		Renesas H8/300H,
->>18	leshort		48		Renesas H8S,
->>18	leshort		49		Renesas H8/500,
->>18	leshort		50		IA-64,
->>18	leshort		51		Stanford MIPS-X,
->>18	leshort		52		Motorola Coldfire,
->>18	leshort		53		Motorola M68HC12,
->>18	leshort		54		Fujitsu MMA,
->>18	leshort		55		Siemens PCP,
->>18	leshort		56		Sony nCPU,
->>18	leshort		57		Denso NDR1,
->>18	leshort		58		Start*Core,
->>18	leshort		59		Toyota ME16,
->>18	leshort		60		ST100,
->>18	leshort		61		Tinyj emb.,
->>18	leshort		62		x86-64,
->>18	leshort		63		Sony DSP,
->>18	leshort		66		FX66,
->>18	leshort		67		ST9+ 8/16 bit,
->>18	leshort		68		ST7 8 bit,
->>18	leshort		69		MC68HC16,
->>18	leshort		70		MC68HC11,
->>18	leshort		71		MC68HC08,
->>18	leshort		72		MC68HC05,
->>18	leshort		73		SGI SVx,
->>18	leshort		74		ST19 8 bit,
->>18	leshort		75		Digital VAX,
->>18	leshort		76		Axis cris,
->>18	leshort		77		Infineon 32-bit embedded,
->>18	leshort		78		Element 14 64-bit DSP,
->>18	leshort		79		LSI Logic 16-bit DSP,
->>18	leshort		80		MMIX,
->>18	leshort		81		Harvard machine-independent,
->>18	leshort		82		SiTera Prism,
->>18	leshort		83		Atmel AVR 8-bit,
->>18	leshort		84		Fujitsu FR30,
->>18	leshort		85		Mitsubishi D10V,
->>18	leshort		86		Mitsubishi D30V,
->>18	leshort		87		NEC v850,
->>18	leshort		88		Renesas M32R,
->>18	leshort		89		Matsushita MN10300,
->>18	leshort		90		Matsushita MN10200,
->>18	leshort		91		picoJava,
->>18	leshort		92		OpenRISC,
->>18	leshort		93		ARC Cores Tangent-A5,
->>18	leshort		94		Tensilica Xtensa,
->>18	leshort		97		NatSemi 32k,
->>18	leshort		106		Analog Devices Blackfin,
->>18	leshort		113		Altera Nios II,
->>18	leshort		0xae		META,
->>18	leshort		0x3426		OpenRISC (obsolete),
->>18	leshort		0x8472		OpenRISC (obsolete),
->>18	leshort		0x9026		Alpha (unofficial),
->>20	lelong		0		invalid version
->>20	lelong		1		version 1
->>36	lelong		1		MathCoPro/FPU/MAU Required
->5	byte		2		MSB
->>16	beshort		0		no file type,
-!:mime	application/octet-stream
->>16	beshort		1		relocatable,
-!:mime	application/x-object
->>16	beshort		2		executable,
-!:mime	application/x-executable
->>16	beshort		3		shared object,
-!:mime	application/x-sharedlib
->>16	beshort		4		core file,
-!:mime	application/x-coredump
-#>>>(0x38+0xcc) string	>\0		of '%s'
-#>>>(0x38+0x10) belong	>0		(signal %d),
->>16	beshort		&0xff00		processor-specific,
->>18	beshort		0		no machine,
->>18	beshort		1		AT&T WE32100,
->>18	beshort		2		SPARC,
->>18	beshort		3		Intel 80386 - invalid byte order,
->>18	beshort		4		Motorola
->>>36	belong		&0x01000000	68000,
->>>36	belong		&0x00810000	CPU32,
->>>36	belong		0		68020,
->>18	beshort		5		Motorola 88000,
->>18	beshort		6		Intel 80486 - invalid byte order,
->>18	beshort		7		Intel 80860,
-# only for MIPS - see comment in little-endian section above.
->>18	beshort		8		MIPS,
->>>36	belong		&0x20		N32
->>18	beshort		10		MIPS,
->>>36	belong		&0x20		N32
->>18	beshort		8
-# only for 32-bit
->>>4	byte		1
->>>>36  belong&0xf0000000	0x00000000	MIPS-I
->>>>36  belong&0xf0000000	0x10000000	MIPS-II
->>>>36  belong&0xf0000000	0x20000000	MIPS-III
->>>>36  belong&0xf0000000	0x30000000	MIPS-IV
->>>>36  belong&0xf0000000	0x40000000	MIPS-V
->>>>36  belong&0xf0000000	0x50000000	MIPS32
->>>>36  belong&0xf0000000	0x60000000	MIPS64
->>>>36  belong&0xf0000000	0x70000000	MIPS32 rel2
->>>>36  belong&0xf0000000	0x80000000	MIPS64 rel2
-# only for 64-bit
->>>4	byte		2
->>>>48	belong&0xf0000000	0x00000000	MIPS-I
->>>>48	belong&0xf0000000	0x10000000	MIPS-II
->>>>48	belong&0xf0000000	0x20000000	MIPS-III
->>>>48	belong&0xf0000000	0x30000000	MIPS-IV
->>>>48	belong&0xf0000000	0x40000000	MIPS-V
->>>>48	belong&0xf0000000	0x50000000	MIPS32
->>>>48	belong&0xf0000000	0x60000000	MIPS64
->>>>48	belong&0xf0000000	0x70000000	MIPS32 rel2
->>>>48	belong&0xf0000000	0x80000000	MIPS64 rel2
->>18	beshort		9		Amdahl,
->>18	beshort		10		MIPS (deprecated),
->>18	beshort		11		RS6000,
->>18	beshort		15		PA-RISC
->>>50	beshort		0x0214		2.0
->>>48	beshort		&0x0008		(LP64)
->>18	beshort		16		nCUBE,
->>18	beshort		17		Fujitsu VPP500,
->>18	beshort		18		SPARC32PLUS,
->>>36	belong&0xffff00	0x000100	V8+ Required,
->>>36	belong&0xffff00	0x000200	Sun UltraSPARC1 Extensions Required,
->>>36	belong&0xffff00	0x000400	HaL R1 Extensions Required,
->>>36	belong&0xffff00	0x000800	Sun UltraSPARC3 Extensions Required,
->>18	beshort		20		PowerPC or cisco 4500,
->>18	beshort		21		64-bit PowerPC or cisco 7500,
->>18	beshort		22		IBM S/390,
->>18	beshort		23		Cell SPU,
->>18	beshort		24		cisco SVIP,
->>18	beshort		25		cisco 7200,
->>18	beshort		36		NEC V800 or cisco 12000,
->>18	beshort		37		Fujitsu FR20,
->>18	beshort		38		TRW RH-32,
->>18	beshort		39		Motorola RCE,
->>18	beshort		40		ARM,
->>18	beshort		41		Alpha,
->>18	beshort		42		Renesas SH,
->>18	beshort		43		SPARC V9,
->>>48	belong&0xffff00	0x000200	Sun UltraSPARC1 Extensions Required,
->>>48	belong&0xffff00	0x000400	HaL R1 Extensions Required,
->>>48	belong&0xffff00	0x000800	Sun UltraSPARC3 Extensions Required,
->>>48	belong&0x3	0		total store ordering,
->>>48	belong&0x3	1		partial store ordering,
->>>48	belong&0x3	2		relaxed memory ordering,
->>18	beshort		44		Siemens Tricore Embedded Processor,
->>18	beshort		45		Argonaut RISC Core, Argonaut Technologies Inc.,
->>18	beshort		46		Renesas H8/300,
->>18	beshort		47		Renesas H8/300H,
->>18	beshort		48		Renesas H8S,
->>18	beshort		49		Renesas H8/500,
->>18	beshort		50		IA-64,
->>18	beshort		51		Stanford MIPS-X,
->>18	beshort		52		Motorola Coldfire,
->>18	beshort		53		Motorola M68HC12,
->>18	beshort		73		Cray NV1,
->>18	beshort		75		Digital VAX,
->>18	beshort		88		Renesas M32R,
->>18	leshort		92		OpenRISC,
->>18	leshort		0x3426		OpenRISC (obsolete),
->>18	leshort		0x8472		OpenRISC (obsolete),
->>18	beshort		94		Tensilica Xtensa,
->>18	beshort		97		NatSemi 32k,
->>18	beshort		0x18ad		AVR32 (unofficial),
->>18	beshort		0x9026		Alpha (unofficial),
->>18	beshort		0xa390		IBM S/390 (obsolete),
->>20	belong		0		invalid version
->>20	belong		1		version 1
->>36	belong		1		MathCoPro/FPU/MAU Required
-# Up to now only 0, 1 and 2 are defined; I've seen a file with 0x83, it seemed
-# like proper ELF, but extracting the string had bad results.
->4      byte            <0x80
->>8	string		>\0		(%s)
->8	string		\0
->>7	byte		0		(SYSV)
->>7	byte		1		(HP-UX)
->>7	byte		2		(NetBSD)
->>7	byte		3		(GNU/Linux)
->>7	byte		4		(GNU/Hurd)
->>7	byte		5		(86Open)
->>7	byte		6		(Solaris)
->>7	byte		7		(Monterey)
->>7	byte		8		(IRIX)
->>7	byte		9		(FreeBSD)
->>7	byte		10		(Tru64)
->>7	byte		11		(Novell Modesto)
->>7	byte		12		(OpenBSD)
->8      string          \2
->>7     byte            13              (OpenVMS)
->>7	byte		97		(ARM)
->>7	byte		255		(embedded)
-
-#------------------------------------------------------------------------------
-# encore:  file(1) magic for Encore machines
-#
-# XXX - needs to have the byte order specified (NS32K was little-endian,
-# dunno whether they run the 88K in little-endian mode or not).
-#
-0	short		0x154		Encore
->20	short		0x107		executable
->20	short		0x108		pure executable
->20	short		0x10b		demand-paged executable
->20	short		0x10f		unsupported executable
->12	long		>0		not stripped
->22	short		>0		- version %ld
->22	short		0		-
-#>4	date		x		stamp %s
-0	short		0x155		Encore unsupported executable
->12	long		>0		not stripped
->22	short		>0		- version %ld
->22	short		0		-
-#>4	date		x		stamp %s
-#------------------------------------------------------------------------------
-# EPOC : file(1) magic for EPOC documents [Psion Series 5/Osaris/Geofox 1]
-# Stefan Praszalowicz (hpicollo@worldnet.fr)
-# Useful information for improving this file can be found at:
-# http://software.frodo.looijaard.name/psiconv/formats/Index.html
-0	lelong		0x10000037
->4	lelong		0x1000006D
->>8	lelong		0x1000007F	Psion Word
->>8	lelong		0x10000088	Psion Sheet
->>8	lelong		0x1000007D	Psion Sketch
->>8	lelong		0x10000085	Psion TextEd
-
-#------------------------------------------------------------------------------
-# erlang:  file(1) magic for Erlang JAM and BEAM files
-# URL:  http://www.erlang.org/faq/x779.html#AEN812
-
-# OTP R3-R4
-0	string	\0177BEAM!	Old Erlang BEAM file
->6	short	>0		- version %d
-
-# OTP R5 and onwards
-0	string	FOR1
->8	string	BEAM		Erlang BEAM file
-
-# 4.2 version may have a copyright notice!
-4	string	Tue\ Jan\ 22\ 14:32:44\ MET\ 1991	Erlang JAM file - version 4.2
-79	string	Tue\ Jan\ 22\ 14:32:44\ MET\ 1991	Erlang JAM file - version 4.2
-
-4	string	1.0\ Fri\ Feb\ 3\ 09:55:56\ MET\ 1995	Erlang JAM file - version 4.3
-
-#------------------------------------------------------------------------------
-# ESRI Shapefile format (.shp .shx .dbf=DBaseIII)
-# Based on info from
-# <URL:http://www.esri.com/library/whitepapers/pdfs/shapefile.pdf>
-0	belong	9994	ESRI Shapefile
->4	belong	=0
->8	belong	=0
->12	belong	=0
->16	belong	=0
->20	belong	=0
->28	lelong	x	version %d
->24	belong	x	length %d
->32	lelong	=0	type Null Shape
->32	lelong	=1	type Point
->32	lelong	=3	type PolyLine
->32	lelong	=5	type Polygon
->32	lelong	=8	type MultiPoint
->32	lelong	=11	type PointZ
->32	lelong	=13	type PolyLineZ
->32	lelong	=15	type PolygonZ
->32	lelong	=18	type MultiPointZ
->32	lelong	=21	type PointM
->32	lelong	=23	type PolyLineM
->32	lelong	=25	type PolygonM
->32	lelong	=28	type MultiPointM
->32	lelong	=31	type MultiPatch
-
-#------------------------------------------------------------------------------
-# fcs: file(1) magic for FCS (Flow Cytometry Standard) data files
-# From Roger Leigh <roger@whinlatter.uklinux.net>
-0       string          FCS1.0          Flow Cytometry Standard (FCS) data, version 1.0
-0       string          FCS2.0          Flow Cytometry Standard (FCS) data, version 2.0
-0       string          FCS3.0          Flow Cytometry Standard (FCS) data, version 3.0
-
-
-#------------------------------------------------------------------------------
-# filesystems:  file(1) magic for different filesystems
-#
-0	string	\366\366\366\366	PC formatted floppy with no filesystem
-# Sun disk labels
-# From /usr/include/sun/dklabel.h:
-0774	beshort		0xdabe		
-# modified by Joerg Jenderek, because original test
-# succeeds for Cabinet archive dao360.dl_ with negative blocks
->0770	long		>0		Sun disk label
->>0	string		x		'%s
->>>31	string		>\0		\b%s
->>>>63	string		>\0		\b%s
->>>>>95	string		>\0		\b%s
->>0	string		x		\b'
->>0734	short		>0		%d rpm,
->>0736	short		>0		%d phys cys,
->>0740	short		>0		%d alts/cyl,
->>0746	short		>0		%d interleave,
->>0750	short		>0		%d data cyls,
->>0752	short		>0		%d alt cyls,
->>0754	short		>0		%d heads/partition,
->>0756	short		>0		%d sectors/track,
->>0764	long		>0		start cyl %ld,
->>0770	long		x		%ld blocks
-# Is there a boot block written 1 sector in?
->512    belong&077777777	0600407	\b, boot block present
-# Joerg Jenderek: Smart Boot Manager backup file is 41 byte header + first sectors of disc
-# (http://btmgr.sourceforge.net/docs/user-guide-3.html)
-0		string	SBMBAKUP_	Smart Boot Manager backup file
->9		string	x		\b, version %-5.5s
->>14		string	=_		
->>>15		string	x		%-.1s
->>>>16		string	=_		\b.
->>>>>17		string	x		\b%-.1s
->>>>>>18	string	=_		\b.
->>>>>>>19	string	x		\b%-.1s
->>>22		ubyte	0		
->>>>21		ubyte	x		\b, from drive 0x%x
->>>22		ubyte	>0		
->>>>21		string	x		\b, from drive %s
-
-# Joerg Jenderek
-# DOS Emulator image is 128 byte, null right padded header + harddisc image
-0	string	DOSEMU\0			
->0x27E	leshort	0xAA55			
-#offset is 128
->>19	ubyte	128			
->>>(19.b-1)	ubyte	0x0	DOS Emulator image
->>>>7	ulelong	>0		\b, %u heads
->>>>11	ulelong	>0		\b, %d sectors/track
->>>>15	ulelong	>0		\b, %d cylinders
-
-# updated by Joerg Jenderek at Sep 2007
-# only for sector sizes with 512 or more Bytes
-0x1FE	leshort	0xAA55			x86 boot sector
-# to do also for sectors < than 512 Bytes and some other files, GRR
-#30	search/481	\x55\xAA	x86 boot sector
-# not for BeOS floppy 1440k, MBRs
-#(11.s-2) uleshort	0xAA55		x86 boot sector
->2	string	OSBS			\b, OS/BS MBR
-# J\xf6rg Jenderek <joerg dot jenderek at web dot de>
->0x8C	string	Invalid\ partition\ table	\b, MS-DOS MBR
-# dr-dos with some upper-, lowercase variants
->0x9D	string	Invalid\ partition\ table$	
->>181	string	No\ Operating\ System$		
->>>201	string	Operating\ System\ load\ error$	\b, DR-DOS MBR, Version 7.01 to 7.03
->0x9D	string	Invalid\ partition\ table$	
->>181	string	No\ operating\ system$		
->>>201	string	Operating\ system\ load\ error$	\b, DR-DOS MBR, Version 7.01 to 7.03
->342	string	Invalid\ partition\ table$	
->>366	string	No\ operating\ system$		
->>>386	string	Operating\ system\ load\ error$	\b, DR-DOS MBR, version 7.01 to 7.03
->295	string	NEWLDR\0				
->>302	string	Bad\ PT\ $				
->>>310	string	No\ OS\ $				
->>>>317	string	OS\ load\ err$				
->>>>>329	string	Moved\ or\ missing\ IBMBIO.LDR\n\r	
->>>>>>358	string	Press\ any\ key\ to\ continue.\n\r$	
->>>>>>>387	string	Copyright\ (c)\ 1984,1998	
->>>>>>>>411	string	Caldera\ Inc.\0		\b, DR-DOS MBR (IBMBIO.LDR)
->0x10F	string	Ung\201ltige\ Partitionstabelle	\b, MS-DOS MBR, german version 4.10.1998, 4.10.2222
->>0x1B8	ubelong	>0				\b, Serial 0x%-.4x
->0x8B	string	Ung\201ltige\ Partitionstabelle	\b, MS-DOS MBR, german version 5.00 to 4.00.950
->271	string	Invalid\ partition\ table\0		
->>295	string	Error\ loading\ operating\ system\0	
->>>326	string	Missing\ operating\ system\0		\b, mbr
-#
->139	string	Invalid\ partition\ table\0		
->>163	string	Error\ loading\ operating\ system\0	
->>>194	string	Missing\ operating\ system\0		\b, Microsoft Windows XP mbr
-# http://www.heise.de/ct/05/09/006/ page 184
-#HKEY_LOCAL_MACHINE\SYSTEM\MountedDevices\DosDevices\?:=Serial4Bytes+8Bytes
->>>>0x1B8	ulelong	>0				\b,Serial 0x%-.4x
->300	string	Invalid\ partition\ table\0	
->>324	string	Error\ loading\ operating\ system\0
->>>355	string	Missing\ operating\ system\0		\b, Microsoft Windows XP MBR
-#??>>>389	string	Invalid\ system\ disk		
->>>>0x1B8	ulelong	>0				\b, Serial 0x%-.4x
->300	string	Ung\201ltige\ Partitionstabelle
-#split string to avoid error: String too long
->>328	string	Fehler\ beim\ Laden\ 	
->>>346	string	des\ Betriebssystems	
->>>>366	string	Betriebssystem\ nicht\ vorhanden	\b, Microsoft Windows XP MBR (german)
->>>>>0x1B8	ulelong	>0				\b, Serial 0x%-.4x
-#>0x145	string	Default:\ F				\b, FREE-DOS MBR
-#>0x14B	string	Default:\ F				\b, FREE-DOS 1.0 MBR
->0x145	search/7	Default:\ F			\b, FREE-DOS MBR
-#>>313		string	F0\ .\ .\ .			
-#>>>322		string	disk\ 1				
-#>>>>382	string	FAT3				
->64	string	no\ active\ partition\ found	
->>96	string	read\ error\ while\ reading\ drive	\b, FREE-DOS Beta 0.9 MBR
-# Ranish Partition Manager http://www.ranish.com/part/
->387	search/4	\0\ Error!\r			
->>378	search/7	Virus! 				
->>>397	search/4	Booting\ 			
->>>>408	search/4	HD1/\0	 			\b, Ranish MBR (
->>>>>416	string	Writing\ changes...		\b2.37
->>>>>>438	ubyte		x			\b,0x%x dots
->>>>>>440	ubyte		>0			\b,virus check
->>>>>>441	ubyte		>0			\b,partition %c
-#2.38,2.42,2.44
->>>>>416	string	!Writing\ changes...		\b
->>>>>>418	ubyte	1				\bvirus check,
->>>>>>419	ubyte	x				\b0x%x seconds
->>>>>>420	ubyte&0x0F	>0			\b,partition
->>>>>>>420	ubyte&0x0F	<5			\b %x
->>>>>>>420	ubyte&0x0F	0Xf			\b ask
->>>>>420	ubyte		x			\b)
-#
->271	string	Operating\ system\ loading 		
->>296	string	error\r					\b, SYSLINUX MBR (2.10)
-# http://www.acronis.de/
->362	string	MBR\ Error\ \0\r			
->>376	string	ress\ any\ key\ to\ 			
->>>392	string	boot\ from\ floppy...\0			\b, Acronis MBR
-# added by Joerg Jenderek
-# http://www.visopsys.org/
-# http://partitionlogic.org.uk/
->309	string	No\ bootable\ partition\ found\r	
->>339	string	I/O\ Error\ reading\ boot\ sector\r	\b, Visopsys MBR
->349	string	No\ bootable\ partition\ found\r	
->>379	string	I/O\ Error\ reading\ boot\ sector\r	\b, simple Visopsys MBR
-# bootloader, bootmanager
->0x40	string	SBML				
-# label with 11 characters of FAT 12 bit filesystem
->>43	string	SMART\ BTMGR			
->>>430	string	SBMK\ Bad!\r			\b, Smart Boot Manager
-# OEM-ID not always "SBM"
-#>>>>3	strings	SBM				
->>>>6	string	>\0                             \b, version %s
->382	string	XOSLLOADXCF			\b, eXtended Operating System Loader
->6	string	LILO				\b, LInux i386 boot LOader
->>120	string	LILO				\b, version 22.3.4 SuSe
->>172	string	LILO				\b, version 22.5.8 Debian
-# updated by Joerg Jenderek at Oct 2008
-# variables according to grub-0.97/stage1/stage1.S or
-# http://www.gnu.org/software/grub/manual/grub.html#Embedded-data
-# usual values are marked with comments to get only informations of strange GRUB loaders
->342		search/60	\0Geom\0	
-#>0		ulelong		x		%x=0x009048EB ,	0x2a9048EB  0
->>0x41		ubyte		<2		
->>>0x3E		ubyte		>2		\b; GRand Unified Bootloader
-# 0x3 for 0.5.95,0.93,0.94,0.96 0x4 for 1.90 
->>>>0x3E	ubyte		x		\b, stage1 version 0x%x
-#If it is 0xFF, use a drive passed by BIOS
->>>>0x40	ubyte		<0xFF		\b, boot drive 0x%x
-# in most case 0,1,0x2e for GRUB 0.5.95
->>>>0x41	ubyte		>0		\b, LBA flag 0x%x
->>>>0x42	uleshort	<0x8000		\b, stage2 address 0x%x
-#>>>>0x42	uleshort	=0x8000		\b, stage2 address 0x%x (usual)
->>>>0x42	uleshort	>0x8000		\b, stage2 address 0x%x
-#>>>>0x44	ulelong		=1		\b, 1st sector stage2 0x%x (default)
->>>>0x44	ulelong		>1		\b, 1st sector stage2 0x%x
->>>>0x48	uleshort	<0x800		\b, stage2 segment 0x%x
-#>>>>0x48	uleshort	=0x800		\b, stage2 segment 0x%x (usual)
->>>>0x48	uleshort	>0x800		\b, stage2 segment 0x%x
->>>>402		string	Geom\0Hard\ Disk\0Read\0\ Error\0
->>>>>394	string	stage1			\b, GRUB version 0.5.95
->>>>382		string	Geom\0Hard\ Disk\0Read\0\ Error\0
->>>>>376	string	GRUB\ \0		\b, GRUB version 0.93 or 1.94
->>>>383		string	Geom\0Hard\ Disk\0Read\0\ Error\0
->>>>>377	string	GRUB\ \0		\b, GRUB version 0.94
->>>>385		string	Geom\0Hard\ Disk\0Read\0\ Error\0
->>>>>379	string	GRUB\ \0		\b, GRUB version 0.95 or 0.96
->>>>391		string	Geom\0Hard\ Disk\0Read\0\ Error\0
->>>>>385	string	GRUB\ \0		\b, GRUB version 0.97
-#unkown version
->>>343		string	Geom\0Read\0\ Error\0	
->>>>321		string	Loading\ stage1.5	\b, GRUB version x.y
->>>380		string	Geom\0Hard\ Disk\0Read\0\ Error\0
->>>>374		string	GRUB\ \0		\b, GRUB version n.m
-# http://syslinux.zytor.com/
->478	string	Boot\ failed\r			
->>495	string	LDLINUX\ SYS			\b, SYSLINUX bootloader (1.62)
->480	string	Boot\ failed\r			
->>495	string	LDLINUX\ SYS			\b, SYSLINUX bootloader (2.06 or 2.11)
->484	string	Boot\ error\r			\b, SYSLINUX bootloader (3.11)
->395	string	chksum\0\ ERROR!\0		\b, Gujin bootloader
-# http://www.bcdwb.de/bcdw/index_e.htm
->3	string	BCDL				
->>498	string	BCDL\ \ \ \ BIN			\b, Bootable CD Loader (1.50Z)
-# mbr partion table entries
-# OEM-ID does not contain MicroSoft,NEWLDR,DOS,SYSLINUX,or MTOOLs
->3			string		!MS
->>3			string		!SYSLINUX
->>>3			string		!MTOOL
->>>>3			string		!NEWLDR
->>>>>5			string		!DOS
-# not FAT (32 bit)
->>>>>>82		string		!FAT32
-#not Linux kernel
->>>>>>>514		string		!HdrS
-#not BeOS
->>>>>>>>422		string		!Be\ Boot\ Loader
-# active flag 0 or 0x80 and type > 0
->>>>>>>>>446		ubyte		<0x81	
->>>>>>>>>>446		ubyte&0x7F	0	
->>>>>>>>>>>450		ubyte		>0	\b; partition 1: ID=0x%x
->>>>>>>>>>>>446		ubyte		0x80	\b, active
->>>>>>>>>>>>447		ubyte		x	\b, starthead %u
-#>>>>>>>>>>>>448		ubyte		x	\b, start C_S: 0x%x
-#>>>>>>>>>>>>448		ubeshort&1023	x	\b, startcylinder? %d
->>>>>>>>>>>>454		ulelong		x	\b, startsector %u
->>>>>>>>>>>>458		ulelong		x	\b, %u sectors
-#
->>>>>>>>>462		ubyte		<0x81	
->>>>>>>>>>462		ubyte&0x7F	0		
->>>>>>>>>>>466		ubyte		>0	\b; partition 2: ID=0x%x
->>>>>>>>>>>>462		ubyte		0x80	\b, active
->>>>>>>>>>>>463		ubyte		x	\b, starthead %u
-#>>>>>>>>>>>>464		ubyte		x	\b, start C_S: 0x%x
-#>>>>>>>>>>>>464		ubeshort&1023	x	\b, startcylinder? %d
->>>>>>>>>>>>470		ulelong		x	\b, startsector %u
->>>>>>>>>>>>474		ulelong		x	\b, %u sectors
-#
->>>>>>>>>478		ubyte		<0x81		
->>>>>>>>>>478		ubyte&0x7F	0		
->>>>>>>>>>>482		ubyte		>0	\b; partition 3: ID=0x%x
->>>>>>>>>>>>478		ubyte		0x80	\b, active
->>>>>>>>>>>>479		ubyte		x	\b, starthead %u
-#>>>>>>>>>>>>480		ubyte		x	\b, start C_S: 0x%x
-#>>>>>>>>>>>>481		ubyte		x	\b, start C2S: 0x%x
-#>>>>>>>>>>>>480		ubeshort&1023	x	\b, startcylinder? %d
->>>>>>>>>>>>486		ulelong		x	\b, startsector %u
->>>>>>>>>>>>490		ulelong		x	\b, %u sectors
-#
->>>>>>>>>494		ubyte		<0x81	
->>>>>>>>>>494		ubyte&0x7F	0		
->>>>>>>>>>>498		ubyte		>0	\b; partition 4: ID=0x%x
->>>>>>>>>>>>494		ubyte		0x80	\b, active
->>>>>>>>>>>>495		ubyte		x	\b, starthead %u
-#>>>>>>>>>>>>496		ubyte		x	\b, start C_S: 0x%x
-#>>>>>>>>>>>>496		ubeshort&1023	x	\b, startcylinder? %d
->>>>>>>>>>>>502		ulelong		x	\b, startsector %u
->>>>>>>>>>>>506		ulelong		x	\b, %u sectors
-# mbr partion table entries end
-# http://www.acronis.de/
-#FAT label=ACRONIS\ SZ
-#OEM-ID=BOOTWIZ0
->442	string	Non-system\ disk,\ 	
->>459	string	press\ any\ key...\x7\0		\b, Acronis Startup Recovery Loader
-# DOS names like F11.SYS are 8 right space padded bytes+3 bytes
->>>477		ubyte&0xDF	>0		
->>>>477		string		x 		\b %-.3s
->>>>>480	ubyte&0xDF	>0		
->>>>>>480	string		x 		\b%-.5s
->>>>485		ubyte&0xDF	>0		
->>>>>485	string		x 		\b.%-.3s
-#
->185	string	FDBOOT\ Version\ 			
->>204	string	\rNo\ Systemdisk.\ 			
->>>220	string	Booting\ from\ harddisk.\n\r		
->>>245	string	Cannot\ load\ from\ harddisk.\n\r	
->>>>273 string	Insert\ Systemdisk\ 			
->>>>>291 string and\ press\ any\ key.\n\r		\b, FDBOOT harddisk Bootloader
->>>>>>200 string	>\0                             \b, version %-3s
->242	string	Bootsector\ from\ C.H.\ Hochst\204	
->>278	string	No\ Systemdisk.\ 			
->>>293	string	Booting\ from\ harddisk.\n\r		
->>>441	string	Cannot\ load\ from\ harddisk.\n\r	
->>>>469 string	Insert\ Systemdisk\ 			
->>>>>487 string and\ press\ any\ key.\n\r		\b, WinImage harddisk Bootloader
->>>>>>209 string	>\0                             \b, version %-4.4s
->(1.b+2)	ubyte		0xe			
->>(1.b+3)	ubyte		0x1f			
->>>(1.b+4)	ubyte		0xbe			
->>>>(1.b+5)	ubyte		0x77			
->>>>(1.b+6)	ubyte		0x7c			
->>>>>(1.b+7)	ubyte		0xac			
->>>>>>(1.b+8)	ubyte		0x22			
->>>>>>>(1.b+9)	ubyte		0xc0			
->>>>>>>>(1.b+10)	ubyte	0x74			
->>>>>>>>>(1.b+11)	ubyte	0xb			
->>>>>>>>>>(1.b+12)	ubyte	0x56			
->>>>>>>>>>(1.b+13)	ubyte	0xb4			\b, mkdosfs boot message display
->214	string	Please\ try\ to\ install\ FreeDOS\ 	\b, DOS Emulator boot message display
-#>>244	string	from\ dosemu-freedos-*-bin.tgz\r	
-#>>>170	string	Sorry,\ could\ not\ load\ an\ 		
-#>>>>195	string	operating\ system.\r\n		
-#
->103	string	This\ is\ not\ a\ bootable\ disk.\ 	
->>132	string	Please\ insert\ a\ bootable\ 		
->>>157	string	floppy\ and\r\n				
->>>>169	string	press\ any\ key\ to\ try\ again...\r	\b, FREE-DOS message display
-#
->66	string	Solaris\ Boot\ Sector    		
->>99	string	Incomplete\ MDBoot\ load.		
->>>89	string	Version 				\b, Sun Solaris Bootloader
->>>>97	byte	x					version %c
-#
->408	string	OS/2\ !!\ SYS01475\r\0			
->>429	string	OS/2\ !!\ SYS02025\r\0			
->>>450	string	OS/2\ !!\ SYS02027\r\0			
->>>469	string	OS2BOOT\ \ \ \ 				\b, IBM OS/2 Warp bootloader
-#
->409	string	OS/2\ !!\ SYS01475\r\0			
->>430	string	OS/2\ !!\ SYS02025\r\0			
->>>451	string	OS/2\ !!\ SYS02027\r\0			
->>>470	string	OS2BOOT\ \ \ \ 				\b, IBM OS/2 Warp Bootloader
->112		string	This\ disk\ is\ not\ bootable\r			
->>142		string	If\ you\ wish\ to\ make\ it\ bootable		
->>>176		string	run\ the\ DOS\ program\ SYS\  			
->>>200		string	after\ the\r					
->>>>216		string	system\ has\ been\ loaded\r\n			
->>>>>242	string	Please\ insert\ a\ DOS\ diskette\ 		
->>>>>271	string	into\r\n\ the\ drive\ and\ 			
->>>>>>292	string	strike\ any\ key...\0		\b, IBM OS/2 Warp message display
-# XP
->430	string	NTLDR\ is\ missing\xFF\r\n		
->>449	string	Disk\ error\xFF\r\n			
->>>462	string	Press\ any\ key\ to\ restart\r		\b, Microsoft Windows XP Bootloader
-# DOS names like NTLDR,CMLDR,$LDR$ are 8 right space padded bytes+3 bytes
->>>>417		ubyte&0xDF	>0			
->>>>>417	string		x			%-.5s
->>>>>>422	ubyte&0xDF	>0			
->>>>>>>422	string		x 			\b%-.3s
->>>>>425	ubyte&0xDF	>0			
->>>>>>425	string		>\ 			\b.%-.3s
-#
->>>>371		ubyte		>0x20			
->>>>>368	ubyte&0xDF	>0			
->>>>>>368	string		x 			%-.5s
->>>>>>>373	ubyte&0xDF	>0			
->>>>>>>>373	string		x 			\b%-.3s
->>>>>>376	ubyte&0xDF	>0			
->>>>>>>376	string		x 			\b.%-.3s
-#
->430	string	NTLDR\ nicht\ gefunden\xFF\r\n		
->>453	string	Datentr\204gerfehler\xFF\r\n		
->>>473	string	Neustart\ mit\ beliebiger\ Taste\r	\b, Microsoft Windows XP Bootloader (german)
->>>>417		ubyte&0xDF	>0			
->>>>>417	string		x			%-.5s
->>>>>>422	ubyte&0xDF	>0			
->>>>>>>422	string		x 			\b%-.3s
->>>>>425	ubyte&0xDF	>0			
->>>>>>425	string		>\ 			\b.%-.3s
-# offset variant
->>>>379	string	\0					
->>>>>368	ubyte&0xDF	>0			
->>>>>>368	string		x 			%-.5s
->>>>>>>373	ubyte&0xDF	>0			
->>>>>>>>373	string		x 			\b%-.3s
-#
->430	string	NTLDR\ fehlt\xFF\r\n			
->>444	string	Datentr\204gerfehler\xFF\r\n		
->>>464	string	Neustart\ mit\ beliebiger\ Taste\r	\b, Microsoft Windows XP Bootloader (2.german)
->>>>417		ubyte&0xDF	>0			
->>>>>417	string		x			%-.5s
->>>>>>422	ubyte&0xDF	>0			
->>>>>>>422	string		x 			\b%-.3s
->>>>>425	ubyte&0xDF	>0			
->>>>>>425	string		>\ 			\b.%-.3s
-# variant
->>>>371		ubyte		>0x20			
->>>>>368	ubyte&0xDF	>0			
->>>>>>368	string		x 			%-.5s
->>>>>>>373	ubyte&0xDF	>0			
->>>>>>>>373	string		x 			\b%-.3s
->>>>>>376	ubyte&0xDF	>0			
->>>>>>>376	string		x 			\b.%-.3s
-#
->430	string	NTLDR\ fehlt\xFF\r\n			
->>444	string	Medienfehler\xFF\r\n			
->>>459	string	Neustart:\ Taste\ dr\201cken\r		\b, Microsoft Windows XP Bootloader (3.german)
->>>>371		ubyte		>0x20			
->>>>>368	ubyte&0xDF	>0			
->>>>>>368	string		x 			%-.5s
->>>>>>>373	ubyte&0xDF	>0			
->>>>>>>>373	string		x 			\b%-.3s
->>>>>>376	ubyte&0xDF	>0			
->>>>>>>376	string		x 			\b.%-.3s
-# variant
->>>>417		ubyte&0xDF	>0			
->>>>>417	string		x			%-.5s
->>>>>>422	ubyte&0xDF	>0			
->>>>>>>422	string		x 			\b%-.3s
->>>>>425	ubyte&0xDF	>0			
->>>>>>425	string		>\ 			\b.%-.3s
-#
->430	string	Datentr\204ger\ entfernen\xFF\r\n	
->>454	string	Medienfehler\xFF\r\n			
->>>469	string	Neustart:\ Taste\ dr\201cken\r		\b, Microsoft Windows XP Bootloader (4.german)
->>>>379		string		\0			
->>>>>368	ubyte&0xDF	>0			
->>>>>>368	string		x 			%-.5s
->>>>>>>373	ubyte&0xDF	>0			
->>>>>>>>373	string		x 			\b%-.3s
->>>>>>376	ubyte&0xDF	>0			
->>>>>>>376	string		x 			\b.%-.3s
-# variant
->>>>417		ubyte&0xDF	>0			
->>>>>417	string		x			%-.5s
->>>>>>422	ubyte&0xDF	>0			
->>>>>>>422	string		x 			\b%-.3s
->>>>>425	ubyte&0xDF	>0			
->>>>>>425	string		>\ 			\b.%-.3s
-#
-
-#>3	string	NTFS\ \ \ \ 				
->389	string	Fehler\ beim\ Lesen\ 
->>407	string	des\ Datentr\204gers
->>>426	string	NTLDR\ fehlt				
->>>>440	string	NTLDR\ ist\ komprimiert
->>>>>464 string	Neustart\ mit\ Strg+Alt+Entf\r		\b, Microsoft Windows XP Bootloader NTFS (german)
-#>3	string	NTFS\ \ \ \ 				
->313	string	A\ disk\ read\ error\ occurred.\r
->>345	string	A\ kernel\ file\ is\ missing\ 	
->>>370	string	from\ the\ disk.\r		
->>>>484	string	NTLDR\ is\ compressed		
->>>>>429 string	Insert\ a\ system\ diskette\ 	
->>>>>>454 string and\ restart\r\nthe\ system.\r		\b, Microsoft Windows XP Bootloader NTFS
-# DOS loader variants different languages,offsets
->472	ubyte&0xDF	>0
->>389	string	Invalid\ system\ disk\xFF\r\n		
->>>411	string	Disk\ I/O\ error			
->>>>428	string	Replace\ the\ disk,\ and\ 		
->>>>>455 string	press\ any\ key				\b, Microsoft Windows 98 Bootloader
-#IO.SYS
->>>>>>472	ubyte&0xDF	>0			
->>>>>>>472	string		x 			\b %-.2s
->>>>>>>>474	ubyte&0xDF	>0			
->>>>>>>>>474	string		x 			\b%-.5s
->>>>>>>>>>479	ubyte&0xDF	>0			
->>>>>>>>>>>479 string		x 			\b%-.1s
->>>>>>>480	ubyte&0xDF	>0			
->>>>>>>>480	string		x 			\b.%-.3s
-#MSDOS.SYS
->>>>>>>483	ubyte&0xDF	>0			\b+
->>>>>>>>483	string		x 			\b%-.5s
->>>>>>>>>488	ubyte&0xDF	>0			
->>>>>>>>>>488	string		x 			\b%-.3s
->>>>>>>>491	ubyte&0xDF	>0			
->>>>>>>>>491	string		x 			\b.%-.3s
-#
->>390	string	Invalid\ system\ disk\xFF\r\n		
->>>412	string	Disk\ I/O\ error\xFF\r\n		
->>>>429	string	Replace\ the\ disk,\ and\ 		
->>>>>451 string	then\ press\ any\ key\r			\b, Microsoft Windows 98 Bootloader
->>388	string	Ungueltiges\ System\ \xFF\r\n		
->>>410	string	E/A-Fehler\ \ \ \ \xFF\r\n		
->>>>427	string	Datentraeger\ wechseln\ und\ 		
->>>>>453 string	Taste\ druecken\r			\b, Microsoft Windows 95/98/ME Bootloader (german)
-#WINBOOT.SYS only not spaces (0xDF)
->>>>>>497	ubyte&0xDF	>0			
->>>>>>>497	string		x 			%-.5s
->>>>>>>>502	ubyte&0xDF	>0			
->>>>>>>>>502	string		x 			\b%-.1s
->>>>>>>>>>503	ubyte&0xDF	>0			
->>>>>>>>>>>503	string		x 			\b%-.1s
->>>>>>>>>>>>504	ubyte&0xDF	>0			
->>>>>>>>>>>>>504 string		x 			\b%-.1s
->>>>>>505	ubyte&0xDF	>0			
->>>>>>>505	string		x 			\b.%-.3s
-#IO.SYS
->>>>>>472	ubyte&0xDF	>0			or
->>>>>>>472	string		x 			\b %-.2s
->>>>>>>>474	ubyte&0xDF	>0			
->>>>>>>>>474	string		x 			\b%-.5s
->>>>>>>>>>479	ubyte&0xDF	>0			
->>>>>>>>>>>479 string		x 			\b%-.1s
->>>>>>>480	ubyte&0xDF	>0			
->>>>>>>>480	string		x 			\b.%-.3s
-#MSDOS.SYS
->>>>>>>483	ubyte&0xDF	>0			\b+
->>>>>>>>483	string		x 			\b%-.5s
->>>>>>>>>488	ubyte&0xDF	>0			
->>>>>>>>>>488	string		x 			\b%-.3s
->>>>>>>>491	ubyte&0xDF	>0			
->>>>>>>>>491	string		x 			\b.%-.3s
-#
->>390	string	Ungueltiges\ System\ \xFF\r\n		
->>>412	string	E/A-Fehler\ \ \ \ \xFF\r\n		
->>>>429	string	Datentraeger\ wechseln\ und\ 		
->>>>>455 string	Taste\ druecken\r			\b, Microsoft Windows 95/98/ME Bootloader (German)
-#WINBOOT.SYS only not spaces (0xDF)
->>>>>>497	ubyte&0xDF	>0			
->>>>>>>497	string		x 			%-.7s
->>>>>>>>504	ubyte&0xDF	>0			
->>>>>>>>>504	string		x 			\b%-.1s
->>>>>>505	ubyte&0xDF	>0			
->>>>>>>505	string		x 			\b.%-.3s
-#IO.SYS
->>>>>>472	ubyte&0xDF	>0			or
->>>>>>>472	string		x 			\b %-.2s
->>>>>>>>474	ubyte&0xDF	>0			
->>>>>>>>>474	string		x 			\b%-.6s
->>>>>>>480	ubyte&0xDF	>0			
->>>>>>>>480	string		x 			\b.%-.3s
-#MSDOS.SYS
->>>>>>>483	ubyte&0xDF	>0			\b+
->>>>>>>>483	string		x 			\b%-.5s
->>>>>>>>>488	ubyte&0xDF	>0			
->>>>>>>>>>488	string		x 			\b%-.3s
->>>>>>>>491	ubyte&0xDF	>0			
->>>>>>>>>491	string		x 			\b.%-.3s
-#
->>389	string	Ungueltiges\ System\ \xFF\r\n		
->>>411	string	E/A-Fehler\ \ \ \ \xFF\r\n		
->>>>428	string	Datentraeger\ wechseln\ und\ 		
->>>>>454 string	Taste\ druecken\r			\b, Microsoft Windows 95/98/ME Bootloader (GERMAN)
-# DOS names like IO.SYS,WINBOOT.SYS,MSDOS.SYS,WINBOOT.INI are 8 right space padded bytes+3 bytes
->>>>>>472	string		x 			%-.2s
->>>>>>>474	ubyte&0xDF	>0			
->>>>>>>>474	string		x 			\b%-.5s
->>>>>>>>479	ubyte&0xDF	>0			
->>>>>>>>>479	string		x 			\b%-.1s
->>>>>>480	ubyte&0xDF	>0			
->>>>>>>480	string		x 			\b.%-.3s
->>>>>>483	ubyte&0xDF	>0			\b+
->>>>>>>483	string		x 			\b%-.5s
->>>>>>>488	ubyte&0xDF	>0			
->>>>>>>>488	string		x 			\b%-.2s
->>>>>>>>490	ubyte&0xDF	>0			
->>>>>>>>>490	string		x 			\b%-.1s
->>>>>>>491	ubyte&0xDF	>0			
->>>>>>>>491	string		x 			\b.%-.3s
->479	ubyte&0xDF	>0
->>416	string	Kein\ System\ oder\ 			
->>>433	string	Laufwerksfehler				
->>>>450	string	Wechseln\ und\ Taste\ dr\201cken	\b, Microsoft DOS Bootloader (german)
-#IO.SYS
->>>>>479	string		x 			\b %-.2s
->>>>>>481	ubyte&0xDF	>0			
->>>>>>>481	string		x 			\b%-.6s
->>>>>487	ubyte&0xDF	>0			
->>>>>>487	string		x 			\b.%-.3s
-#MSDOS.SYS
->>>>>>490	ubyte&0xDF	>0			\b+
->>>>>>>490	string		x 			\b%-.5s
->>>>>>>>495	ubyte&0xDF	>0			
->>>>>>>>>495	string		x 			\b%-.3s
->>>>>>>498	ubyte&0xDF	>0			
->>>>>>>>498	string		x 			\b.%-.3s
-#
->376	search/41	Non-System\ disk\ or\ 		
->>395	search/41	disk\ error\r			
->>>407	search/41	Replace\ and\ 			
->>>>419	search/41	press\ 				\b,
->>>>419	search/41	strike\ 			\b, old
->>>>426	search/41	any\ key\ when\ ready\r		MS or PC-DOS bootloader
-#449			Disk\ Boot\ failure\r		MS 3.21
-#466			Boot\ Failure\r			MS 3.30
->>>>>468 search/18	\0				
-#IO.SYS,IBMBIO.COM
->>>>>>&0	string		x 			\b %-.2s
->>>>>>>&-20	ubyte&0xDF	>0			
->>>>>>>>&-1	string		x 			\b%-.4s
->>>>>>>>>&-16	ubyte&0xDF	>0			
->>>>>>>>>>&-1	string		x 			\b%-.2s
->>>>>>&8	ubyte&0xDF	>0			\b.
->>>>>>>&-1	string		x 			\b%-.3s
-#MSDOS.SYS,IBMDOS.COM
->>>>>>&11	ubyte&0xDF	>0			\b+
->>>>>>>&-1	string		x 			\b%-.5s
->>>>>>>>&-6	ubyte&0xDF	>0			
->>>>>>>>>&-1	string		x 			\b%-.1s
->>>>>>>>>>&-5	ubyte&0xDF	>0			
->>>>>>>>>>>&-1	string		x 			\b%-.2s
->>>>>>>&7	ubyte&0xDF	>0			\b.
->>>>>>>>&-1	string		x 			\b%-.3s
->441	string	Cannot\ load\ from\ harddisk.\n\r
->>469	string	Insert\ Systemdisk\ 			
->>>487	string	and\ press\ any\ key.\n\r		\b, MS (2.11) DOS bootloader
-#>43	string	\224R-LOADER\ \ SYS			=label					
->54	string	SYS
->>324	string	VASKK
->>>495	string	NEWLDR\0				\b, DR-DOS Bootloader (LOADER.SYS)
-#
->98	string	Press\ a\ key\ to\ retry\0\r		
->>120	string	Cannot\ find\ file\ \0\r		
->>>139	string	Disk\ read\ error\0\r			
->>>>156	string	Loading\ ...\0				\b, DR-DOS (3.41) Bootloader
-#DRBIOS.SYS
->>>>>44		ubyte&0xDF	>0			
->>>>>>44	string		x			\b %-.6s
->>>>>>>50	ubyte&0xDF	>0			
->>>>>>>>50	string		x 			\b%-.2s
->>>>>>52	ubyte&0xDF	>0			
->>>>>>>52	string		x 			\b.%-.3s
-#
->70	string	IBMBIO\ \ COM				
->>472	string	Cannot\ load\ DOS!\ 			
->>>489	string	Any\ key\ to\ retry			\b, DR-DOS Bootloader
->>471	string	Cannot\ load\ DOS\ 			
->>487	string	press\ key\ to\ retry			\b, Open-DOS Bootloader
-#??
->444	string	KERNEL\ \ SYS					
->>314	string	BOOT\ error!				\b, FREE-DOS Bootloader
->499	string	KERNEL\ \ SYS				
->>305	string	BOOT\ err!\0				\b, Free-DOS Bootloader
->449	string	KERNEL\ \ SYS				
->>319	string	BOOT\ error!				\b, FREE-DOS 0.5 Bootloader
-#
->449	string	Loading\ FreeDOS			
->>0x1AF		ulelong		>0			\b, FREE-DOS 0.95,1.0 Bootloader
->>>497		ubyte&0xDF	>0			
->>>>497		string		x 			\b %-.6s
->>>>>503	ubyte&0xDF	>0			
->>>>>>503	string		x 			\b%-.1s
->>>>>>>504	ubyte&0xDF	>0			
->>>>>>>>504	string		x 			\b%-.1s
->>>>505		ubyte&0xDF	>0			
->>>>>505	string		x 			\b.%-.3s
-#
->331	string	Error!.0				\b, FREE-DOS 1.0 bootloader
-#
->125	string	Loading\ FreeDOS...\r			
->>311	string	BOOT\ error!\r				\b, FREE-DOS bootloader
->>>441		ubyte&0xDF	>0			
->>>>441		string		x 			\b %-.6s
->>>>>447	ubyte&0xDF	>0			
->>>>>>447	string		x 			\b%-.1s
->>>>>>>448	ubyte&0xDF	>0			
->>>>>>>>448	string		x 			\b%-.1s
->>>>449		ubyte&0xDF	>0			
->>>>>449	string		x 			\b.%-.3s
->124	string	FreeDOS\0				
->>331	string	\ err\0					\b, FREE-DOS BETa 0.9 Bootloader
-# DOS names like KERNEL.SYS,KERNEL16.SYS,KERNEL32.SYS,METAKERN.SYS are 8 right space padded bytes+3 bytes
->>>497		ubyte&0xDF	>0			
->>>>497		string		x 			\b %-.6s
->>>>>503	ubyte&0xDF	>0			
->>>>>>503	string		x 			\b%-.1s
->>>>>>>504	ubyte&0xDF	>0			
->>>>>>>>504	string		x 			\b%-.1s
->>>>505		ubyte&0xDF	>0			
->>>>>505	string		x 			\b.%-.3s
->>333	string	\ err\0					\b, FREE-DOS BEta 0.9 Bootloader
->>>497		ubyte&0xDF	>0			
->>>>497		string		x 			\b %-.6s
->>>>>503	ubyte&0xDF	>0			
->>>>>>503	string		x 			\b%-.1s
->>>>>>>504	ubyte&0xDF	>0			
->>>>>>>>504	string		x 			\b%-.1s
->>>>505		ubyte&0xDF	>0			
->>>>>505	string		x 			\b.%-.3s
->>334	string	\ err\0					\b, FREE-DOS Beta 0.9 Bootloader
->>>497		ubyte&0xDF	>0			
->>>>497		string		x 			\b %-.6s
->>>>>503	ubyte&0xDF	>0			
->>>>>>503	string		x 			\b%-.1s
->>>>>>>504	ubyte&0xDF	>0			
->>>>>>>>504	string		x 			\b%-.1s
->>>>505		ubyte&0xDF	>0			
->>>>>505	string		x 			\b.%-.3s
->336	string	Error!\ 				
->>343	string	Hit\ a\ key\ to\ reboot.		\b, FREE-DOS Beta 0.9sr1 Bootloader
->>>497		ubyte&0xDF	>0			
->>>>497		string		x 			\b %-.6s
->>>>>503	ubyte&0xDF	>0			
->>>>>>503	string		x 			\b%-.1s
->>>>>>>504	ubyte&0xDF	>0			
->>>>>>>>504	string		x 			\b%-.1s
->>>>505		ubyte&0xDF	>0			
->>>>>505	string		x 			\b.%-.3s
-# added by Joerg Jenderek
-# http://www.visopsys.org/
-# http://partitionlogic.org.uk/
-# OEM-ID=Visopsys
->478		ulelong	0					
->>(1.b+326)	string	I/O\ Error\ reading\ 			
->>>(1.b+344)	string	Visopsys\ loader\r			
->>>>(1.b+361)	string	Press\ any\ key\ to\ continue.\r	\b, Visopsys loader
-# http://alexfru.chat.ru/epm.html#bootprog
->494	ubyte	>0x4D					
->>495	string	>E					
->>>495	string	<S					
-#OEM-ID is not reliable
->>>>3	string	BootProg				
-# It just looks for a program file name at the root directory
-# and loads corresponding file with following execution.
-# DOS names like STARTUP.BIN,STARTUPC.COM,STARTUPE.EXE are 8 right space padded bytes+3 bytes
->>>>499			ubyte&0xDF	>0		\b, COM/EXE Bootloader
->>>>>499		string		x 		\b %-.1s
->>>>>>500		ubyte&0xDF	>0		
->>>>>>>500		string		x 		\b%-.1s
->>>>>>>>501		ubyte&0xDF	>0		
->>>>>>>>>501		string		x 		\b%-.1s
->>>>>>>>>>502		ubyte&0xDF	>0		
->>>>>>>>>>>502		string		x 		\b%-.1s
->>>>>>>>>>>>503		ubyte&0xDF	>0		
->>>>>>>>>>>>>503	string		x 		\b%-.1s
->>>>>>>>>>>>>>504	ubyte&0xDF	>0		
->>>>>>>>>>>>>>>504	string		x 		\b%-.1s
->>>>>>>>>>>>>>>>505	ubyte&0xDF	>0		
->>>>>>>>>>>>>>>>>505	string		x 		\b%-.1s
->>>>>>>>>>>>>>>>>>506	ubyte&0xDF	>0		
->>>>>>>>>>>>>>>>>>>506	string		x 		\b%-.1s
-#name extension
->>>>>507		ubyte&0xDF	>0		\b.
->>>>>>507		string		x 		\b%-.1s
->>>>>>>508		ubyte&0xDF	>0		
->>>>>>>>508		string		x 		\b%-.1s
->>>>>>>>>509		ubyte&0xDF	>0		
->>>>>>>>>>509		string		x 		\b%-.1s
-#If the boot sector fails to read any other sector,
-#it prints a very short message ("RE") to the screen and hangs the computer.
-#If the boot sector fails to find needed program in the root directory,
-#it also hangs with another message ("NF").
->>>>>492		string		RENF		\b, FAT (12 bit)
->>>>>495		string		RENF		\b, FAT (16 bit)
-# http://alexfru.chat.ru/epm.html#bootprog
->494	ubyte	>0x4D					
->>495	string	>E					
->>>495	string	<S					
-#OEM-ID is not reliable
->>>>3	string	BootProg				
-# It just looks for a program file name at the root directory
-# and loads corresponding file with following execution.
-# DOS names like STARTUP.BIN,STARTUPC.COM,STARTUPE.EXE are 8 right space padded bytes+3 bytes
->>>>499			ubyte&0xDF	>0		\b, COM/EXE Bootloader
->>>>>499		string		x 		\b %-.1s
->>>>>>500		ubyte&0xDF	>0		
->>>>>>>500		string		x 		\b%-.1s
->>>>>>>>501		ubyte&0xDF	>0		
->>>>>>>>>501		string		x 		\b%-.1s
->>>>>>>>>>502		ubyte&0xDF	>0		
->>>>>>>>>>>502		string		x 		\b%-.1s
->>>>>>>>>>>>503		ubyte&0xDF	>0		
->>>>>>>>>>>>>503	string		x 		\b%-.1s
->>>>>>>>>>>>>>504	ubyte&0xDF	>0		
->>>>>>>>>>>>>>>504	string		x 		\b%-.1s
->>>>>>>>>>>>>>>>505	ubyte&0xDF	>0		
->>>>>>>>>>>>>>>>>505	string		x 		\b%-.1s
->>>>>>>>>>>>>>>>>>506	ubyte&0xDF	>0		
->>>>>>>>>>>>>>>>>>>506	string		x 		\b%-.1s
-#name extension
->>>>>507		ubyte&0xDF	>0		\b.
->>>>>>507		string		x 		\b%-.1s
->>>>>>>508		ubyte&0xDF	>0		
->>>>>>>>508		string		x 		\b%-.1s
->>>>>>>>>509		ubyte&0xDF	>0		
->>>>>>>>>>509		string		x 		\b%-.1s
-#If the boot sector fails to read any other sector,
-#it prints a very short message ("RE") to the screen and hangs the computer.
-#If the boot sector fails to find needed program in the root directory,
-#it also hangs with another message ("NF").
->>>>>492		string		RENF		\b, FAT (12 bit)
->>>>>495		string		RENF		\b, FAT (16 bit)
-# x86 bootloader end
-# updated by Joerg Jenderek at Sep 2007
->3	ubyte	0			
-#no active flag
->>446	ubyte	0			
-# partition 1 not empty
->>>450	ubyte	>0			
-# partitions 3,4 empty
->>>>482		ubyte	0			
->>>>>498	ubyte	0			
-# partition 2 ID=0,5,15
->>>>>>466	ubyte	<0x10			
->>>>>>>466	ubyte	0x05			\b, extended partition table
->>>>>>>466	ubyte	0x0F			\b, extended partition table (LBA)
->>>>>>>466	ubyte	0x0			\b, extended partition table (last)	
-# JuMP short     bootcodeoffset NOP assembler instructions will usually be EB xx 90
-# http://mirror.href.com/thestarman/asm/2bytejumps.htmm#FWD
-# older drives may use Near JuMP instruction E9 xx xx
->0		lelong&0x009000EB	0x009000EB 
->0		lelong&0x000000E9	0x000000E9 
-# minimal short forward jump found 03cx??
-# maximal short forward jump is 07fx
->1		ubyte			<0xff	\b, code offset 0x%x
-# mtools-3.9.8/msdos.h
-# usual values are marked with comments to get only informations of strange FAT systems
-# valid sectorsize must be a power of 2 from 32 to 32768
->>11		uleshort&0x000f	x		
->>>11		uleshort	<32769		
->>>>11		uleshort	>31		
->>>>>21		ubyte&0xf0	0xF0		
->>>>>>3		string		>\0		\b, OEM-ID "%8.8s"
-#http://mirror.href.com/thestarman/asm/debug/debug2.htm#IHC
->>>>>>>8	string		IHC		\b cached by Windows 9M
->>>>>>11	uleshort	>512		\b, Bytes/sector %u
-#>>>>>>11	uleshort	=512		\b, Bytes/sector %u=512 (usual)
->>>>>>11	uleshort	<512		\b, Bytes/sector %u
->>>>>>13	ubyte		>1		\b, sectors/cluster %u
-#>>>>>>13	ubyte		=1		\b, sectors/cluster %u (usual on Floppies)
->>>>>>14	uleshort	>32		\b, reserved sectors %u
-#>>>>>>14	uleshort	=32		\b, reserved sectors %u (usual Fat32)
-#>>>>>>14	uleshort	>1		\b, reserved sectors %u
-#>>>>>>14	uleshort	=1		\b, reserved sectors %u (usual FAT12,FAT16)
->>>>>>14	uleshort	<1		\b, reserved sectors %u
->>>>>>16	ubyte		>2		\b, FATs %u
-#>>>>>>16	ubyte		=2		\b, FATs %u (usual)
->>>>>>16	ubyte		=1		\b, FAT  %u
->>>>>>16	ubyte		>0
->>>>>>17	uleshort	>0		\b, root entries %u
-#>>>>>>17	uleshort	=0		\b, root entries %u=0 (usual Fat32)
->>>>>>19	uleshort	>0		\b, sectors %u (volumes <=32 MB) 
-#>>>>>>19	uleshort	=0		\b, sectors %u=0 (usual Fat32)
->>>>>>21	ubyte		>0xF0		\b, Media descriptor 0x%x
-#>>>>>>21	ubyte		=0xF0		\b, Media descriptor 0x%x (usual floppy)
->>>>>>21	ubyte		<0xF0		\b, Media descriptor 0x%x
->>>>>>22	uleshort	>0		\b, sectors/FAT %u
-#>>>>>>22	uleshort	=0		\b, sectors/FAT %u=0 (usual Fat32)
->>>>>>26	ubyte		>2		\b, heads %u
-#>>>>>>26	ubyte		=2		\b, heads %u (usual floppy)
->>>>>>26	ubyte		=1		\b, heads %u
-#skip for Digital Research DOS (version 3.41) 1440 kB Bootdisk
->>>>>>38	ubyte		!0x70		
->>>>>>>28	ulelong		>0		\b, hidden sectors %u
-#>>>>>>>28	ulelong		=0		\b, hidden sectors %u (usual floppy)
->>>>>>>32	ulelong		>0		\b, sectors %u (volumes > 32 MB) 
-#>>>>>>>32	ulelong		=0		\b, sectors %u (volumes > 32 MB)
-# FAT<32 specific 
->>>>>>82	string		!FAT32
-#>>>>>>>36	ubyte		0x80		\b, physical drive 0x%x=0x80 (usual harddisk)
-#>>>>>>>36	ubyte		0		\b, physical drive 0x%x=0 (usual floppy)
->>>>>>>36	ubyte		!0x80		
->>>>>>>>36	ubyte		!0		\b, physical drive 0x%x
->>>>>>>37	ubyte		>0		\b, reserved 0x%x
-#>>>>>>>37	ubyte		=0		\b, reserved 0x%x
->>>>>>>38	ubyte		>0x29		\b, dos < 4.0 BootSector (0x%x)
->>>>>>>38	ubyte		<0x29		\b, dos < 4.0 BootSector (0x%x)
->>>>>>>38	ubyte		=0x29
->>>>>>>>39	ulelong		x		\b, serial number 0x%x
->>>>>>>>43	string		<NO\ NAME	\b, label: "%11.11s"
->>>>>>>>43	string		>NO\ NAME	\b, label: "%11.11s"
->>>>>>>>43	string		=NO\ NAME	\b, unlabeled
->>>>>>>54	string		FAT		\b, FAT
->>>>>>>>54	string		FAT12		\b (12 bit)
->>>>>>>>54	string		FAT16		\b (16 bit)
-# FAT32 specific
->>>>>>82	string		FAT32		\b, FAT (32 bit)
->>>>>>>36	ulelong		x		\b, sectors/FAT %u
->>>>>>>40	uleshort	>0		\b, extension flags %u
-#>>>>>>>40	uleshort	=0		\b, extension flags %u
->>>>>>>42	uleshort	>0		\b, fsVersion %u
-#>>>>>>>42	uleshort	=0		\b, fsVersion %u (usual)
->>>>>>>44	ulelong		>2		\b, rootdir cluster %u
-#>>>>>>>44	ulelong		=2		\b, rootdir cluster %u
-#>>>>>>>44	ulelong		=1		\b, rootdir cluster %u
->>>>>>>48	uleshort	>1		\b, infoSector %u
-#>>>>>>>48	uleshort	=1		\b, infoSector %u (usual)
->>>>>>>48	uleshort	<1		\b, infoSector %u
->>>>>>>50	uleshort	>6		\b, Backup boot sector %u
-#>>>>>>>50	uleshort	=6		\b, Backup boot sector %u (usual) 
->>>>>>>50	uleshort	<6		\b, Backup boot sector %u
->>>>>>>54	ulelong		>0		\b, reserved1 0x%x
->>>>>>>58	ulelong		>0		\b, reserved2 0x%x
->>>>>>>62	ulelong		>0		\b, reserved3 0x%x
-# same structure as FAT1X 
->>>>>>>64	ubyte		>0x80		\b, physical drive 0x%x
-#>>>>>>>64	ubyte		=0x80		\b, physical drive 0x%x=80 (usual harddisk)
->>>>>>>64	ubyte&0x7F	>0		\b, physical drive 0x%x
-#>>>>>>>64	ubyte		=0		\b, physical drive 0x%x=0 (usual floppy)
->>>>>>>65	ubyte		>0		\b, reserved 0x%x
->>>>>>>66	ubyte		>0x29		\b, dos < 4.0 BootSector (0x%x)
->>>>>>>66	ubyte		<0x29		\b, dos < 4.0 BootSector (0x%x)
->>>>>>>66	ubyte		=0x29
->>>>>>>>67	ulelong		x		\b, serial number 0x%x
->>>>>>>>71	string		<NO\ NAME	\b, label: "%11.11s"
->>>>>>>71	string		>NO\ NAME	\b, label: "%11.11s"
->>>>>>>71	string		=NO\ NAME	\b, unlabeled
-### FATs end
->0x200	lelong	0x82564557		\b, BSD disklabel
-# FATX 
-0		string		FATX		FATX filesystem data
-
-
-# Minix filesystems - Juan Cespedes <cespedes@debian.org>
-0x410	leshort		0x137f		Minix filesystem
-0x410	beshort		0x137f		Minix filesystem (big endian)
->0x402	beshort		!0		\b, %d zones
->0x1e	string		minix		\b, bootable
-0x410	leshort		0x138f		Minix filesystem, 30 char names
-0x410	leshort		0x2468		Minix filesystem, version 2
-0x410	leshort		0x2478		Minix filesystem, version 2, 30 char names
-
-# romfs filesystems - Juan Cespedes <cespedes@debian.org>
-0	string		-rom1fs-	romfs filesystem, version 1
->8	belong	x			%d bytes,
->16	string	x			named %s.
-
-# netboot image - Juan Cespedes <cespedes@debian.org>
-0	lelong		0x1b031336L	Netboot image,
->4	lelong&0xFFFFFF00	0
->>4	lelong&0x100	0x000		mode 2
->>4	lelong&0x100	0x100		mode 3
->4	lelong&0xFFFFFF00	!0	unknown mode
-
-0x18b	string	OS/2	OS/2 Boot Manager
-
-# updated by Joerg Jenderek at Oct 2008!!
-# http://syslinux.zytor.com/iso.php
-0	ulelong	0x7c40eafa		isolinux Loader
-# http://syslinux.zytor.com/pxe.php
-0	ulelong	0x007c05ea		pxelinux Loader
-0	ulelong	0x60669c66		pxelinux Loader
-
-# added by Joerg Jenderek
-# In the second sector (+0x200) are variables according to grub-0.97/stage2/asm.S or
-# grub-1.94/kern/i386/pc/startup.S
-# http://www.gnu.org/software/grub/manual/grub.html#Embedded-data
-# usual values are marked with comments to get only informations of strange GRUB loaders
-0x200	uleshort		0x70EA		
-# found only version 3.{1,2}
->0x206		ubeshort	>0x0300		
-# GRUB version (0.5.)95,0.93,0.94,0.96,0.97 > "00"
->>0x212 	ubyte		>0x29		
->>>0x213 	ubyte		>0x29		
-# not iso9660_stage1_5
-#>>>0	ulelong&0x00BE5652	0x00BE5652	
->>>>0x213 	ubyte		>0x29		GRand Unified Bootloader
-# config_file for stage1_5 is 0xffffffff + default "/boot/grub/stage2"
->>>>0x217 	ubyte		0xFF		stage1_5
->>>>0x217 	ubyte		<0xFF		stage2
->>>>0x206	ubyte		x		\b version %u
->>>>0x207	ubyte		x		\b.%u
-# module_size for 1.94
->>>>0x208	ulelong		<0xffffff	\b, installed partition %u
-#>>>>0x208	ulelong		=0xffffff	\b, %u (default)
->>>>0x208	ulelong		>0xffffff	\b, installed partition %u
-# GRUB 0.5.95 unofficial
->>>>0x20C	ulelong&0x2E300000 0x2E300000	
-# 0=stage2	1=ffs	2=e2fs	3=fat	4=minix	5=reiserfs
->>>>>0x20C	ubyte		x		\b, identifier 0x%x
-#>>>>>0x20D	ubyte		=0		\b, LBA flag 0x%x (default)
->>>>>0x20D	ubyte		>0		\b, LBA flag 0x%x
-# GRUB version as string
->>>>>0x20E 	string		>\0		\b, GRUB version %-s
-# for stage1_5 is 0xffffffff + config_file "/boot/grub/stage2" default
->>>>>>0x215 	ulong		0xffffffff	
->>>>>>>0x219 	string		>\0		\b, configuration file %-s
->>>>>>0x215 	ulong		!0xffffffff	
->>>>>>>0x215 	string		>\0		\b, configuration file %-s
-# newer GRUB versions
->>>>0x20C	ulelong&0x2E300000 !0x2E300000	
-##>>>>>0x20C	ulelong		=0		\b, saved entry %d (usual)
->>>>>0x20C	ulelong		>0		\b, saved entry %d
-# for 1.94 contains kernel image size
-# for 0.93,0.94,0.96,0.97
-# 0=stage2	1=ffs	2=e2fs	3=fat	4=minix	5=reiserfs	6=vstafs	7=jfs	8=xfs	9=iso9660	a=ufs2	
->>>>>0x210	ubyte		x		\b, identifier 0x%x
-# The flag for LBA forcing is in most cases 0
-#>>>>>0x211	ubyte		=0		\b, LBA flag 0x%x (default)
->>>>>0x211	ubyte		>0		\b, LBA flag 0x%x
-# GRUB version as string
->>>>>0x212 	string		>\0		\b, GRUB version %-s
-# for stage1_5 is 0xffffffff + config_file "/boot/grub/stage2" default
->>>>>0x217 	ulong		0xffffffff	
->>>>>>0x21b 	string		>\0		\b, configuration file %-s
->>>>>0x217 	ulong		!0xffffffff	
->>>>>>0x217 	string		>\0		\b, configuration file %-s
-
-9564	lelong		0x00011954	Unix Fast File system [v1] (little-endian),
->8404	string		x		last mounted on %s,
-#>9504	ledate		x		last checked at %s,
->8224	ledate		x		last written at %s,
->8401	byte		x		clean flag %d,
->8228	lelong		x		number of blocks %d,
->8232	lelong		x		number of data blocks %d,
->8236	lelong		x		number of cylinder groups %d,
->8240	lelong		x		block size %d,
->8244	lelong		x		fragment size %d,
->8252	lelong		x		minimum percentage of free blocks %d,
->8256	lelong		x		rotational delay %dms,
->8260	lelong		x		disk rotational speed %drps,
->8320	lelong		0		TIME optimization
->8320	lelong		1		SPACE optimization
-
-42332	lelong		0x19540119	Unix Fast File system [v2] (little-endian)
->&-1164	string		x		last mounted on %s,
->&-696	string		>\0		volume name %s,
->&-304	leqldate	x		last written at %s,
->&-1167	byte		x		clean flag %d,
->&-1168	byte		x		readonly flag %d,
->&-296	lequad		x		number of blocks %lld,
->&-288	lequad		x		number of data blocks %lld,
->&-1332	lelong		x		number of cylinder groups %d,
->&-1328	lelong		x		block size %d,
->&-1324	lelong		x		fragment size %d,
->&-180	lelong		x		average file size %d,
->&-176	lelong		x		average number of files in dir %d,
->&-272	lequad		x		pending blocks to free %lld,
->&-264	lelong		x		pending inodes to free %ld,
->&-664	lequad		x		system-wide uuid %0llx,
->&-1316	lelong		x		minimum percentage of free blocks %d,
->&-1248	lelong		0		TIME optimization
->&-1248	lelong		1		SPACE optimization
-
-66908	lelong		0x19540119	Unix Fast File system [v2] (little-endian)
->&-1164	string		x		last mounted on %s,
->&-696	string		>\0		volume name %s,
->&-304	leqldate	x		last written at %s,
->&-1167	byte		x		clean flag %d,
->&-1168	byte		x		readonly flag %d,
->&-296	lequad		x		number of blocks %lld,
->&-288	lequad		x		number of data blocks %lld,
->&-1332	lelong		x		number of cylinder groups %d,
->&-1328	lelong		x		block size %d,
->&-1324	lelong		x		fragment size %d,
->&-180	lelong		x		average file size %d,
->&-176	lelong		x		average number of files in dir %d,
->&-272	lequad		x		pending blocks to free %lld,
->&-264	lelong		x		pending inodes to free %ld,
->&-664	lequad		x		system-wide uuid %0llx,
->&-1316	lelong		x		minimum percentage of free blocks %d,
->&-1248	lelong		0		TIME optimization
->&-1248	lelong		1		SPACE optimization
-
-9564	belong		0x00011954	Unix Fast File system [v1] (big-endian),
->7168   belong		0x4c41424c	Apple UFS Volume
->>7186  string		x		named %s,
->>7176  belong		x		volume label version %d,
->>7180  bedate		x		created on %s,
->8404	string		x		last mounted on %s,
-#>9504	bedate		x		last checked at %s,
->8224	bedate		x		last written at %s,
->8401	byte		x		clean flag %d,
->8228	belong		x		number of blocks %d,
->8232	belong		x		number of data blocks %d,
->8236	belong		x		number of cylinder groups %d,
->8240	belong		x		block size %d,
->8244	belong		x		fragment size %d,
->8252	belong		x		minimum percentage of free blocks %d,
->8256	belong		x		rotational delay %dms,
->8260	belong		x		disk rotational speed %drps,
->8320	belong		0		TIME optimization
->8320	belong		1		SPACE optimization
-
-42332	belong		0x19540119	Unix Fast File system [v2] (big-endian)
->&-1164	string		x		last mounted on %s,
->&-696	string		>\0		volume name %s,
->&-304	beqldate	x		last written at %s,
->&-1167	byte		x		clean flag %d,
->&-1168	byte		x		readonly flag %d,
->&-296	bequad		x		number of blocks %lld,
->&-288	bequad		x		number of data blocks %lld,
->&-1332	belong		x		number of cylinder groups %d,
->&-1328	belong		x		block size %d,
->&-1324	belong		x		fragment size %d,
->&-180	belong		x		average file size %d,
->&-176	belong		x		average number of files in dir %d,
->&-272	bequad		x		pending blocks to free %lld,
->&-264	belong		x		pending inodes to free %ld,
->&-664	bequad		x		system-wide uuid %0llx,
->&-1316	belong		x		minimum percentage of free blocks %d,
->&-1248	belong		0		TIME optimization
->&-1248	belong		1		SPACE optimization
-
-66908	belong		0x19540119	Unix Fast File system [v2] (big-endian)
->&-1164	string		x		last mounted on %s,
->&-696	string		>\0		volume name %s,
->&-304	beqldate	x		last written at %s,
->&-1167	byte		x		clean flag %d,
->&-1168	byte		x		readonly flag %d,
->&-296	bequad		x		number of blocks %lld,
->&-288	bequad		x		number of data blocks %lld,
->&-1332	belong		x		number of cylinder groups %d,
->&-1328	belong		x		block size %d,
->&-1324	belong		x		fragment size %d,
->&-180	belong		x		average file size %d,
->&-176	belong		x		average number of files in dir %d,
->&-272	bequad		x		pending blocks to free %lld,
->&-264	belong		x		pending inodes to free %ld,
->&-664	bequad		x		system-wide uuid %0llx,
->&-1316	belong		x		minimum percentage of free blocks %d,
->&-1248	belong		0		TIME optimization
->&-1248	belong		1		SPACE optimization
-
-# ext2/ext3 filesystems - Andreas Dilger <adilger@dilger.ca>
-# ext4 filesystem - Eric Sandeen <sandeen@sandeen.net>
-# volume label and UUID Russell Coker
-# http://etbe.coker.com.au/2008/07/08/label-vs-uuid-vs-device/
-0x438   leshort         0xEF53          Linux
->0x44c  lelong          x               rev %d
->0x43e  leshort         x               \b.%d
-# No journal?  ext2
->0x45c  lelong          ^0x0000004      ext2 filesystem data
->>0x43a leshort         ^0x0000001      (mounted or unclean)
-# Has a journal?  ext3 or ext4
->0x45c  lelong          &0x0000004
-#  and small INCOMPAT?
->>0x460 lelong          <0x0000040
-#   and small RO_COMPAT?
->>>0x464 lelong         <0x0000008      ext3 filesystem data
-#   else large RO_COMPAT?
->>>0x464 lelong         >0x0000007      ext4 filesystem data
-#  else large INCOMPAT?
->>0x460	lelong          >0x000003f      ext4 filesystem data
->0x468	belong		x		\b, UUID=%08x
->0x46c	beshort		x		\b-%04x
->0x46e	beshort		x		\b-%04x
->0x470	beshort		x		\b-%04x
->0x472	belong		x		\b-%08x
->0x476	beshort		x		\b%04x
->0x478	string		>0		\b, volume name "%s"
-# General flags for any ext* fs
->0x460	lelong          &0x0000004      (needs journal recovery)
->0x43a	leshort         &0x0000002      (errors)
-# INCOMPAT flags
->0x460	lelong          &0x0000001      (compressed)
-#>0x460	lelong          &0x0000002      (filetype)
-#>0x460	lelong          &0x0000010      (meta bg)
->0x460	lelong          &0x0000040      (extents)
->0x460	lelong          &0x0000080      (64bit)
-#>0x460	lelong          &0x0000100      (mmp)
-#>0x460	lelong          &0x0000200      (flex bg)
-# RO_INCOMPAT flags
-#>0x464	lelong          &0x0000001      (sparse super)
->0x464	lelong          &0x0000002      (large files)
->0x464	lelong          &0x0000008      (huge files)
-#>0x464	lelong          &0x0000010      (gdt checksum)
-#>0x464	lelong          &0x0000020      (many subdirs)
-#>0x463	lelong          &0x0000040      (extra isize)
-
-# SGI disk labels - Nathan Scott <nathans@debian.org>
-0	belong		0x0BE5A941	SGI disk label (volume header)
-
-# SGI XFS filesystem - Nathan Scott <nathans@debian.org>
-0	belong		0x58465342	SGI XFS filesystem data
->0x4	belong		x		(blksz %d,
->0x68	beshort		x		inosz %d,
->0x64	beshort		^0x2004		v1 dirs)
->0x64	beshort		&0x2004		v2 dirs)
-
-############################################################################
-# Minix-ST kernel floppy
-0x800	belong		0x46fc2700	Atari-ST Minix kernel image
->19	string		\240\5\371\5\0\011\0\2\0	\b, 720k floppy
->19	string		\320\2\370\5\0\011\0\1\0	\b, 360k floppy
-
-############################################################################
-# Hmmm, is this a better way of detecting _standard_ floppy images ?
-19	string		\320\2\360\3\0\011\0\1\0	DOS floppy 360k
->0x1FE	leshort		0xAA55		\b, x86 hard disk boot sector
-19	string		\240\5\371\3\0\011\0\2\0	DOS floppy 720k
->0x1FE	leshort		0xAA55		\b, x86 hard disk boot sector
-19	string		\100\013\360\011\0\022\0\2\0	DOS floppy 1440k
->0x1FE	leshort		0xAA55		\b, x86 hard disk boot sector
-
-19	string		\240\5\371\5\0\011\0\2\0	DOS floppy 720k, IBM
->0x1FE	leshort		0xAA55		\b, x86 hard disk boot sector
-19	string		\100\013\371\5\0\011\0\2\0	DOS floppy 1440k, mkdosfs
->0x1FE	leshort		0xAA55		\b, x86 hard disk boot sector
-
-19	string		\320\2\370\5\0\011\0\1\0	Atari-ST floppy 360k
-19	string		\240\5\371\5\0\011\0\2\0	Atari-ST floppy 720k
-
-#  Valid media descriptor bytes for MS-DOS:
-#
-#     Byte   Capacity   Media Size and Type
-#     -------------------------------------------------
-#
-#     F0     2.88 MB    3.5-inch, 2-sided, 36-sector
-#     F0     1.44 MB    3.5-inch, 2-sided, 18-sector
-#     F9     720K       3.5-inch, 2-sided, 9-sector
-#     F9     1.2 MB     5.25-inch, 2-sided, 15-sector
-#     FD     360K       5.25-inch, 2-sided, 9-sector
-#     FF     320K       5.25-inch, 2-sided, 8-sector
-#     FC     180K       5.25-inch, 1-sided, 9-sector
-#     FE     160K       5.25-inch, 1-sided, 8-sector
-#     FE     250K       8-inch, 1-sided, single-density
-#     FD     500K       8-inch, 2-sided, single-density
-#     FE     1.2 MB     8-inch, 2-sided, double-density
-#     F8     -----      Fixed disk 
-#
-#     FC     xxxK       Apricot 70x1x9 boot disk.
-#
-# Originally a bitmap:
-#  xxxxxxx0	Not two sided
-#  xxxxxxx1	Double sided
-#  xxxxxx0x	Not 8 SPT
-#  xxxxxx1x	8 SPT
-#  xxxxx0xx	Not Removable drive
-#  xxxxx1xx	Removable drive
-#  11111xxx	Must be one.
-#
-# But now it's rather random:
-#  111111xx	Low density disk
-#        00	SS, Not 8 SPT
-#        01	DS, Not 8 SPT
-#        10	SS, 8 SPT
-#        11	DS, 8 SPT
-#
-#  11111001	Double density 3� floppy disk, high density 5�
-#  11110000	High density 3� floppy disk
-#  11111000	Hard disk any format
-#
-
-# CDROM Filesystems
-# Modified for UDF by gerardo.cacciari@gmail.com
-32769	string    CD001
-!:mime	application/x-iso9660-image
->38913	string   !NSR0      ISO 9660 CD-ROM filesystem data
->38913	string    NSR0      UDF filesystem data
->>38917	string    1         (version 1.0)
->>38917	string    2         (version 1.5)
->>38917	string    3         (version 2.0)
->>38917	byte     >0x33      (unknown version, ID 0x%X)
->>38917	byte     <0x31      (unknown version, ID 0x%X)
-# "application id" which appears to be used as a volume label
->32808	string    >\0       '%s'
->34816	string    \000CD001\001EL\ TORITO\ SPECIFICATION    (bootable)
-37633	string    CD001     ISO 9660 CD-ROM filesystem data (raw 2352 byte sectors)
-!:mime	application/x-iso9660-image
-32776	string    CDROM     High Sierra CD-ROM filesystem data
-
-# cramfs filesystem - russell@coker.com.au
-0       lelong    0x28cd3d45      Linux Compressed ROM File System data, little endian
->4      lelong  x size %lu
->8      lelong  &1 version #2
->8      lelong  &2 sorted_dirs
->8      lelong  &4 hole_support
->32     lelong  x CRC 0x%x,
->36     lelong  x edition %lu,
->40     lelong  x %lu blocks,
->44     lelong  x %lu files
-
-0       belong    0x28cd3d45      Linux Compressed ROM File System data, big endian
->4      belong  x size %lu
->8      belong  &1 version #2
->8      belong  &2 sorted_dirs
->8      belong  &4 hole_support
->32     belong  x CRC 0x%x,
->36     belong  x edition %lu,
->40     belong  x %lu blocks,
->44     belong  x %lu files
-
-# reiserfs - russell@coker.com.au
-0x10034		string	ReIsErFs	ReiserFS V3.5
-0x10034		string	ReIsEr2Fs	ReiserFS V3.6
-0x10034		string	ReIsEr3Fs	ReiserFS V3.6.19
->0x1002c 	leshort	x		block size %d
->0x10032	leshort	&2		(mounted or unclean)
->0x10000	lelong	x		num blocks %d
->0x10040	lelong	1		tea hash
->0x10040	lelong	2		yura hash
->0x10040	lelong	3		r5 hash
-
-# JFFS - russell@coker.com.au
-0	lelong	0x34383931	Linux Journalled Flash File system, little endian
-0	belong	0x34383931	Linux Journalled Flash File system, big endian
-
-# EST flat binary format (which isn't, but anyway)
-# From: Mark Brown <broonie@sirena.org.uk>
-0	string	ESTFBINR	EST flat binary
-
-# Aculab VoIP firmware
-# From: Mark Brown <broonie@sirena.org.uk>
-0	string	VoIP\ Startup\ and	Aculab VoIP firmware
->35	string	x	format %s
-
-# u-boot/PPCBoot image file
-# From: Mark Brown <broonie@sirena.org.uk>
-0	belong	0x27051956	u-boot/PPCBoot image
->4	string  PPCBoot
->>12	string  x		version %s
-
-# JFFS2 file system
-0	leshort	0x1984		Linux old jffs2 filesystem data little endian
-0	leshort	0x1985		Linux jffs2 filesystem data little endian
-
-# Squashfs
-0	string	sqsh	Squashfs filesystem, big endian,
->28	beshort	x	version %d.
->30	beshort x	\b%d,
->28	beshort <3
->>8	belong	x	%d bytes,
->28	beshort >2
->>63	bequad x	%lld bytes,
-#>>67	belong	x	%d bytes,
->4	belong	x	%d inodes,
->28	beshort <2
->>32	beshort	x	blocksize: %d bytes,
->28	beshort >1
->>51	belong	x	blocksize: %d bytes,
->39	bedate	x	created: %s
-0	string	hsqs	Squashfs filesystem, little endian,
->28	leshort	x	version %d.
->30	leshort	x	\b%d,
->28	leshort <3
->>8	lelong	x	%d bytes,
->28	leshort >2
->>63	lequad x	%lld bytes,
-#>>63	lelong	x	%d bytes,
->4	lelong	x	%d inodes,
->28	leshort <2
->>32	leshort	x	blocksize: %d bytes,
->28	leshort >1
->>51	lelong	x	blocksize: %d bytes,
->39	ledate	x	created: %s
-
-0	string		td\000		floppy image data (TeleDisk)
-
-# AFS Dump Magic
-# From: Ty Sarna <tsarna@sarna.org> 
-0       string                  \x01\xb3\xa1\x13\x22    AFS Dump
->&0     belong                  x                       (v%d)
->>&0    byte                    0x76
->>>&0   belong                  x                       Vol %d,
->>>>&0  byte                    0x6e
->>>>>&0 string                  x                       %s
->>>>>>&1        byte            0x74
->>>>>>>&0       beshort         2
->>>>>>>>&4      bedate          x                       on: %s
->>>>>>>>&0      bedate          =0                      full dump
->>>>>>>>&0      bedate          !0                      incremental since: %s
-
-#----------------------------------------------------------
-# VMS backup savesets - gerardo.cacciari@gmail.com
-#
-4            string  \x01\x00\x01\x00\x01\x00
->(0.s+16)    string  \x01\x01
->>&(&0.b+8)  byte    0x42       OpenVMS backup saveset data
->>>40        lelong  x          (block size %d,
->>>49        string  >\0        original name '%s',
->>>2         short   1024       VAX generated)
->>>2         short   2048       AXP generated)
->>>2         short   4096       I64 generated)
-
-# Summary: Oracle Clustered Filesystem
-# Created by: Aaron Botsis <redhat@digitalmafia.org>
-8	string		OracleCFS	Oracle Clustered Filesystem,
->4	long		x		rev %d
->0	long		x		\b.%d,
->560	string		x		label: %.64s,
->136	string		x		mountpoint: %.128s
-
-# Summary: Oracle ASM tagged volume
-# Created by: Aaron Botsis <redhat@digitalmafia.org>
-32	string		ORCLDISK	Oracle ASM Volume,
->40	string		x		Disk Name: %0.12s
-32	string		ORCLCLRD	Oracle ASM Volume (cleared),
->40	string		x		Disk Name: %0.12s
-
-# Oracle Clustered Filesystem - Aaron Botsis <redhat@digitalmafia.org>
-8	string		OracleCFS	Oracle Clustered Filesystem,
->4	long		x		rev %d
->0	long		x		\b.%d,
->560	string		x		label: %.64s,
->136	string		x		mountpoint: %.128s
-
-# Oracle ASM tagged volume - Aaron Botsis <redhat@digitalmafia.org>
-32	string		ORCLDISK	Oracle ASM Volume,
->40	string		x		Disk Name: %0.12s
-32	string		ORCLCLRD	Oracle ASM Volume (cleared),
->40	string		x		Disk Name: %0.12s
-
-# Compaq/HP RILOE floppy image
-# From: Dirk Jagdmann <doj@cubic.org>
-0	string	CPQRFBLO	Compaq/HP RILOE floppy image
-
-#------------------------------------------------------------------------------
-# Files-11 On-Disk Structure (OpenVMS file system) - gerardo.cacciari@gmail.com
-# These bits come from LBN 1 (home block) of ODS-2 and ODS-5 volumes, which is
-# mapped to VBN 2 of [000000]INDEXF.SYS;1
-#
-1008    string          DECFILE11B      Files-11 On-Disk Structure
->525    byte            x               Level %d
->525    byte            x               (ODS-%d OpenVMS file system),
->984    string          x               volume label is '%-12.12s'
-
-# From: Thomas Klausner <wiz@NetBSD.org>
-# http://filext.com/file-extension/DAA
-# describes the daa file format. The magic would be:
-0	string		DAA\x0\x0\x0\x0\x0	PowerISO Direct-Access-Archive
-
-# From Albert Cahalan <acahalan@gmail.com>
-# really le32 operation,destination,payloadsize (but quite predictable)
-# 01 00 00 00 00 00 00 c0 00 02 00 00
-0	string		\1\0\0\0\0\0\0\300\0\2\0\0	Marvell Libertas firmware
-
-# From Eric Sandeen
-# GFS2
-0x10000         belong          0x01161970      GFS2 Filesystem
->0x10024        belong          x               (blocksize %d,
->0x10060        string          >\0             lockproto %s)
-
-# BTRFS
-0x10040         string          _BHRfS_M        BTRFS Filesystem
->0x1012b        string          >\0             (label "%s",
->0x10090        lelong          x               sectorsize %d,
->0x10094        lelong          x               nodesize %d,
->0x10098        lelong          x               leafsize %d)
-
-
-# dvdisaster's .ecc
-# From: "Nelson A. de Oliveira" <naoliv@gmail.com>
-0	string	*dvdisaster*	dvdisaster error correction file
-
-# Type:	CROM filesystem
-# From:	Werner Fink <werner@suse.de>
-0	string	CROMFS	CROMFS
->6	string	>\0	\b version %2.2s,
->8	ulequad	>0	\b block data at %lld,
->16	ulequad	>0	\b fblock table at %lld,
->24	ulequad	>0	\b inode table at %lld,
->32	ulequad	>0	\b root at %lld,
->40	ulelong	>0	\b fblock size = %ld,
->44	ulelong	>0	\b block size = %ld,
->48	ulequad	>0	\b bytes = %lld
-
-#------------------------------------------------------------------------------
-# flash:	file(1) magic for Macromedia Flash file format
-#
-# See
-#
-#	http://www.macromedia.com/software/flash/open/
-#
-0	string		FWS		Macromedia Flash data,
->3	byte		x		version %d
-!:mime	application/x-shockwave-flash
-0	string		CWS		Macromedia Flash data (compressed),
-!:mime	application/x-shockwave-flash
->3	byte		x		version %d
-# From: Cal Peake <cp@absolutedigital.net>
-0	string		FLV		Macromedia Flash Video
-!:mime	video/x-flv
-
-#
-# From Dave Wilson
-0	string AGD4\xbe\xb8\xbb\xcb\x00	Macromedia Freehand 9 Document
-#------------------------------------------------------------------------------
-# fonts:  file(1) magic for font data
-#
-0	search/1	FONT		ASCII vfont text
-0	short		0436		Berkeley vfont data
-0	short		017001		byte-swapped Berkeley vfont data
-
-# PostScript fonts (must precede "printer" entries), quinlan@yggdrasil.com
-0	string		%!PS-AdobeFont-1.	PostScript Type 1 font text
->20	string		>\0			(%s)
-6	string		%!PS-AdobeFont-1.	PostScript Type 1 font program data
-
-# X11 font files in SNF (Server Natural Format) format
-0	belong		00000004		X11 SNF font data, MSB first
-0	lelong		00000004		X11 SNF font data, LSB first
-
-# X11 Bitmap Distribution Format, from Daniel Quinlan (quinlan@yggdrasil.com)
-0	search/1	STARTFONT\ 		X11 BDF font text
-
-# X11 fonts, from Daniel Quinlan (quinlan@yggdrasil.com)
-# PCF must come before SGI additions ("MIPSEL MIPS-II COFF" collides)
-0	string		\001fcp			X11 Portable Compiled Font data
->12	byte		0x02			\b, LSB first
->12	byte		0x0a			\b, MSB first
-0	string		D1.0\015		X11 Speedo font data
-
-#------------------------------------------------------------------------------
-# FIGlet fonts and controlfiles
-# From figmagic supplied with Figlet version 2.2
-# "David E. O'Brien" <obrien@FreeBSD.ORG>
-0	string		flf		FIGlet font
->3	string		>2a		version %-2.2s
-0	string		flc		FIGlet controlfile
->3	string		>2a		version %-2.2s
-
-# libGrx graphics lib fonts, from Albert Cahalan (acahalan@cs.uml.edu)
-# Used with djgpp (DOS Gnu C++), sometimes Linux or Turbo C++
-0	belong		0x14025919	libGrx font data,
->8	leshort		x		%dx
->10	leshort		x		\b%d
->40	string		x		%s
-# Misc. DOS VGA fonts, from Albert Cahalan (acahalan@cs.uml.edu)
-0	belong		0xff464f4e	DOS code page font data collection
-7	belong		0x00454741	DOS code page font data
-7	belong		0x00564944	DOS code page font data (from Linux?)
-4098	string		DOSFONT		DOSFONT2 encrypted font data
-
-# downloadable fonts for browser (prints type) anthon@mnt.org
-0	string		PFR1		PFR1 font
->102	string		>0		\b: %s
-
-# True Type fonts
-0	string	\000\001\000\000\000	TrueType font data
-
-0	string		\007\001\001\000Copyright\ (c)\ 199	Adobe Multiple Master font
-0	string		\012\001\001\000Copyright\ (c)\ 199	Adobe Multiple Master font
-
-0	string		ttcf		TrueType font collection data
-
-# Opentype font data from Avi Bercovich
-0	string		OTTO		OpenType font data 
-
-# Gürkan Sengün <gurkan@linuks.mine.nu>, www.linuks.mine.nu 
-0	string		SplineFontDB:	Spline Font Database 
->14	string		x		version %s
-# FORTRAN source
-0	regex/100	\^[Cc][\ \t]	FORTRAN program
-!:mime	text/x-fortran
-#------------------------------------------------------------------------------
-# frame:  file(1) magic for FrameMaker files
-#
-# This stuff came on a FrameMaker demo tape, most of which is
-# copyright, but this file is "published" as witness the following:
-#
-# Note that this is the Framemaker Maker Interchange Format, not the
-# Normal format which would be application/vnd.framemaker.
-#
-0	string		\<MakerFile	FrameMaker document
-!:mime	application/x-mif
->11	string		5.5		 (5.5
->11	string		5.0		 (5.0
->11	string		4.0		 (4.0
->11	string		3.0		 (3.0
->11	string		2.0		 (2.0
->11	string		1.0		 (1.0
->14	byte		x		  %c)
-0	string		\<MIFFile	FrameMaker MIF (ASCII) file
-!:mime	application/x-mif
->9	string		4.0		 (4.0)
->9	string		3.0		 (3.0)
->9	string		2.0		 (2.0)
->9	string		1.0		 (1.x)
-0	search/1	\<MakerDictionary	FrameMaker Dictionary text
-!:mime	application/x-mif
->17	string		3.0		 (3.0)
->17	string		2.0		 (2.0)
->17	string		1.0		 (1.x)
-0	string		\<MakerScreenFont	FrameMaker Font file
-!:mime	application/x-mif
->17	string		1.01		 (%s)
-0	string		\<MML		FrameMaker MML file
-!:mime	application/x-mif
-0	string		\<BookFile	FrameMaker Book file
-!:mime	application/x-mif
->10	string		3.0		 (3.0
->10	string		2.0		 (2.0
->10	string		1.0		 (1.0
->13	byte		x		  %c)
-# XXX - this book entry should be verified, if you find one, uncomment this
-#0	string		\<Book\ 	FrameMaker Book (ASCII) file
-#!:mime	application/x-mif
-#>6	string		3.0		 (3.0)
-#>6	string		2.0		 (2.0)
-#>6	string		1.0		 (1.0)
-0	string		\<Maker	Intermediate Print File	FrameMaker IPL file
-!:mime	application/x-mif
-
-#------------------------------------------------------------------------------
-# freebsd:  file(1) magic for FreeBSD objects
-#
-# All new-style FreeBSD magic numbers are in host byte order (i.e.,
-# little-endian on x86).
-#
-# XXX - this comes from the file "freebsd" in a recent FreeBSD version of
-# "file"; it, and the NetBSD stuff in "netbsd", appear to use different
-# schemes for distinguishing between executable images, shared libraries,
-# and object files.
-#
-# FreeBSD says:
-#
-#    Regardless of whether it's pure, demand-paged, or none of the
-#    above:
-#
-#	if the entry point is < 4096, then it's a shared library if
-#	the "has run-time loader information" bit is set, and is
-#	position-independent if the "is position-independent" bit
-#	is set;
-#
-#	if the entry point is >= 4096 (or >4095, same thing), then it's
-#	an executable, and is dynamically-linked if the "has run-time
-#	loader information" bit is set.
-#
-# On x86, NetBSD says:
-#
-#    If it's neither pure nor demand-paged:
-#
-#	if it has the "has run-time loader information" bit set, it's
-#	a dynamically-linked executable;
-#
-#	if it doesn't have that bit set, then:
-#
-#	    if it has the "is position-independent" bit set, it's
-#	    position-independent;
-#
-#	    if the entry point is non-zero, it's an executable, otherwise
-#	    it's an object file.
-#
-#    If it's pure:
-#
-#	if it has the "has run-time loader information" bit set, it's
-#	a dynamically-linked executable, otherwise it's just an
-#	executable.
-#
-#    If it's demand-paged:
-#
-#	if it has the "has run-time loader information" bit set,
-#	then:
-#
-#	    if the entry point is < 4096, it's a shared library;
-#
-#	    if the entry point is = 4096 or > 4096 (i.e., >= 4096),
-#	    it's a dynamically-linked executable);
-#
-#	if it doesn't have the "has run-time loader information" bit
-#	set, then it's just an executable.
-#
-# (On non-x86, NetBSD does much the same thing, except that it uses
-# 8192 on 68K - except for "68k4k", which is presumably "68K with 4K
-# pages - SPARC, and MIPS, presumably because Sun-3's and Sun-4's
-# had 8K pages; dunno about MIPS.)
-#
-# I suspect the two will differ only in perverse and uninteresting cases
-# ("shared" libraries that aren't demand-paged and whose pages probably
-# won't actually be shared, executables with entry points <4096).
-#
-# I leave it to those more familiar with FreeBSD and NetBSD to figure out
-# what the right answer is (although using ">4095", FreeBSD-style, is
-# probably better than separately checking for "=4096" and ">4096",
-# NetBSD-style).  (The old "netbsd" file analyzed FreeBSD demand paged
-# executables using the NetBSD technique.)
-#
-0	lelong&0377777777	041400407	FreeBSD/i386
->20	lelong			<4096
->>3	byte&0xC0		&0x80		shared library
->>3	byte&0xC0		0x40		PIC object
->>3	byte&0xC0		0x00		object
->20	lelong			>4095
->>3	byte&0x80		0x80		dynamically linked executable
->>3	byte&0x80		0x00		executable
->16	lelong			>0		not stripped
-
-0	lelong&0377777777	041400410	FreeBSD/i386 pure
->20	lelong			<4096
->>3	byte&0xC0		&0x80		shared library
->>3	byte&0xC0		0x40		PIC object
->>3	byte&0xC0		0x00		object
->20	lelong			>4095
->>3	byte&0x80		0x80		dynamically linked executable
->>3	byte&0x80		0x00		executable
->16	lelong			>0		not stripped
-
-0	lelong&0377777777	041400413	FreeBSD/i386 demand paged
->20	lelong			<4096
->>3	byte&0xC0		&0x80		shared library
->>3	byte&0xC0		0x40		PIC object
->>3	byte&0xC0		0x00		object
->20	lelong			>4095
->>3	byte&0x80		0x80		dynamically linked executable
->>3	byte&0x80		0x00		executable
->16	lelong			>0		not stripped
-
-0	lelong&0377777777	041400314	FreeBSD/i386 compact demand paged
->20	lelong			<4096
->>3	byte&0xC0		&0x80		shared library
->>3	byte&0xC0		0x40		PIC object
->>3	byte&0xC0		0x00		object
->20	lelong			>4095
->>3	byte&0x80		0x80		dynamically linked executable
->>3	byte&0x80		0x00		executable
->16	lelong			>0		not stripped
-
-# XXX gross hack to identify core files
-# cores start with a struct tss; we take advantage of the following:
-# byte 7:     highest byte of the kernel stack pointer, always 0xfe
-#      8/9:   kernel (ring 0) ss value, always 0x0010
-#      10 - 27: ring 1 and 2 ss/esp, unused, thus always 0
-#      28:    low order byte of the current PTD entry, always 0 since the
-#             PTD is page-aligned
-#
-7	string	\357\020\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0	FreeBSD/i386 a.out core file
->1039	string	>\0	from '%s'
-
-# /var/run/ld.so.hints
-# What are you laughing about?
-0	lelong			011421044151	ld.so hints file (Little Endian
->4	lelong			>0		\b, version %d)
->4	belong			<1		\b)
-0	belong			011421044151	ld.so hints file (Big Endian
->4	belong			>0		\b, version %d)
->4	belong			<1		\b)
-
-#
-# Files generated by FreeBSD scrshot(1)/vidcontrol(1) utilities
-#
-0	string	SCRSHOT_	scrshot(1) screenshot,
->8	byte	x		version %d,
->9	byte	2		%d bytes in header,
->>10	byte	x		%d chars wide by
->>11	byte	x		%d chars high
-
-#------------------------------------------------------------------------------
-# fsav:  file(1) magic for datafellows fsav virus definition files
-# Anthon van der Neut (anthon@mnt.org)
-
-# ftp://ftp.f-prot.com/pub/{macrdef2.zip,nomacro.def}
-0	beshort		0x1575		fsav macro virus signatures
->8	leshort		>0		(%d-
->11	byte		>0		\b%02d-
->10	byte		>0		\b%02d)
-# ftp://ftp.f-prot.com/pub/sign.zip
-#10	ubyte		<12
-#>9	ubyte		<32
-#>>8	ubyte		0x0a
-#>>>12	ubyte		0x07
-#>>>>11	uleshort	>0		fsav DOS/Windows virus signatures (%d-
-#>>>>10	byte		0		\b01-
-#>>>>10	byte		1		\b02-
-#>>>>10	byte		2		\b03-
-#>>>>10	byte		3		\b04-
-#>>>>10	byte		4		\b05-
-#>>>>10	byte		5		\b06-
-#>>>>10	byte		6		\b07-
-#>>>>10	byte		7		\b08-
-#>>>>10	byte		8		\b09-
-#>>>>10	byte		9		\b10-
-#>>>>10	byte		10		\b11-
-#>>>>10	byte		11		\b12-
-#>>>>9	ubyte		>0		\b%02d)
-# ftp://ftp.f-prot.com/pub/sign2.zip
-#0	ubyte		0x62		
-#>1	ubyte		0xF5		
-#>>2	ubyte		0x1		
-#>>>3	ubyte		0x1		
-#>>>>4	ubyte		0x0e		
-#>>>>>13		ubyte	>0		fsav virus signatures
-#>>>>>>11	ubyte	x		size 0x%02x
-#>>>>>>12	ubyte	x		\b%02x
-#>>>>>>13	ubyte	x		\b%02x bytes
-
-# Joerg Jenderek: joerg dot jenderek at web dot de
-# http://www.clamav.net/doc/latest/html/node45.html
-# .cvd files start with a 512 bytes colon separated header
-# ClamAV-VDB:buildDate:version:signaturesNumbers:functionalityLevelRequired:MD5:Signature:builder:buildTime
-# + gzipped tarball files
-0	string		ClamAV-VDB:	
->11	string		>\0		Clam AntiVirus database %-.23s
->>34	string		:		
->>>35		string		!:	\b, version 
->>>>35		string		x 	\b%-.1s
->>>>>36		string 		!:	
->>>>>>36	string		x 	\b%-.1s
->>>>>>>37	string		!:	
->>>>>>>>37	string		x 	\b%-.1s
->>>>>>>>>38	string		!:	
->>>>>>>>>>38	string		x 	\b%-.1s
->512	string		\037\213	\b, gzipped
->769	string		ustar\0		\b, tarred
-
-# Type: Grisoft AVG AntiVirus
-# From: David Newgas <david@newgas.net>
-0	string	AVG7_ANTIVIRUS_VAULT_FILE	AVG 7 Antivirus vault file data
-#------------------------------------------------------------------------------
-# games:  file(1) for games
-
-# Fabio Bonelli <fabiobonelli@libero.it>
-# Quake II - III data files
-0       string  IDP2        	Quake II 3D Model file,
->20     long    x               %lu skin(s),
->8      long    x               (%lu x
->12     long    x 		%lu),
->40     long    x               %lu frame(s),
->16     long    x               Frame size %lu bytes,
->24     long  	x               %lu vertices/frame,
->28     long    x            	%lu texture coordinates,
->32     long    x               %lu triangles/frame
-
-0       string  IBSP            Quake
->4      long    0x26            II Map file (BSP)
->4      long    0x2E      	III Map file (BSP)
-
-0       string  IDS2            Quake II SP2 sprite file
-
-#---------------------------------------------------------------------------
-# Doom and Quake
-# submitted by Nicolas Patrois
-
-0       string  \xcb\x1dBoom\xe6\xff\x03\x01    Boom or linuxdoom demo
-# some doom lmp files don't match, I've got one beginning with \x6d\x02\x01\x01
-
-24      string  LxD\ 203        Linuxdoom save
->0      string  x       , name=%s
->44     string  x       , world=%s
-
-# Quake
-
-0       string  PACK    Quake I or II world or extension
->8	lelong	>0	\b, %d entries
-
-#0       string  -1\x0a  Quake I demo
-#>30     string  x        version %.4s
-#>61     string  x        level %s       
-
-#0       string  5\x0a   Quake I save
-
-# The levels
-
-# Quake 1
-
-0	string	5\x0aIntroduction             Quake I save: start Introduction
-0	string	5\x0athe_Slipgate_Complex     Quake I save: e1m1 The slipgate complex
-0	string	5\x0aCastle_of_the_Damned     Quake I save: e1m2 Castle of the damned
-0	string	5\x0athe_Necropolis           Quake I save: e1m3 The necropolis
-0	string	5\x0athe_Grisly_Grotto        Quake I save: e1m4 The grisly grotto
-0	string	5\x0aZiggurat_Vertigo         Quake I save: e1m8 Ziggurat vertigo (secret)
-0	string	5\x0aGloom_Keep               Quake I save: e1m5 Gloom keep
-0	string	5\x0aThe_Door_To_Chthon       Quake I save: e1m6 The door to Chthon
-0	string	5\x0aThe_House_of_Chthon      Quake I save: e1m7 The house of Chthon
-0	string	5\x0athe_Installation         Quake I save: e2m1 The installation
-0	string	5\x0athe_Ogre_Citadel         Quake I save: e2m2 The ogre citadel
-0	string	5\x0athe_Crypt_of_Decay       Quake I save: e2m3 The crypt of decay (dopefish lives!)
-0	string	5\x0aUnderearth               Quake I save: e2m7 Underearth (secret)
-0	string	5\x0athe_Ebon_Fortress        Quake I save: e2m4 The ebon fortress
-0	string	5\x0athe_Wizard's_Manse       Quake I save: e2m5 The wizard's manse
-0	string	5\x0athe_Dismal_Oubliette     Quake I save: e2m6 The dismal oubliette
-0	string	5\x0aTermination_Central      Quake I save: e3m1 Termination central
-0	string	5\x0aVaults_of_Zin            Quake I save: e3m2 Vaults of Zin
-0	string	5\x0athe_Tomb_of_Terror       Quake I save: e3m3 The tomb of terror
-0	string	5\x0aSatan's_Dark_Delight     Quake I save: e3m4 Satan's dark delight
-0	string	5\x0athe_Haunted_Halls        Quake I save: e3m7 The haunted halls (secret)
-0	string	5\x0aWind_Tunnels             Quake I save: e3m5 Wind tunnels
-0	string	5\x0aChambers_of_Torment      Quake I save: e3m6 Chambers of torment
-0	string	5\x0athe_Sewage_System        Quake I save: e4m1 The sewage system
-0	string	5\x0aThe_Tower_of_Despair     Quake I save: e4m2 The tower of despair
-0	string	5\x0aThe_Elder_God_Shrine     Quake I save: e4m3 The elder god shrine
-0	string	5\x0athe_Palace_of_Hate       Quake I save: e4m4 The palace of hate
-0	string	5\x0aHell's_Atrium            Quake I save: e4m5 Hell's atrium
-0	string	5\x0athe_Nameless_City        Quake I save: e4m8 The nameless city (secret)
-0	string	5\x0aThe_Pain_Maze            Quake I save: e4m6 The pain maze
-0	string	5\x0aAzure_Agony              Quake I save: e4m7 Azure agony
-0	string	5\x0aShub-Niggurath's_Pit     Quake I save: end Shub-Niggurath's pit
-
-# Quake DeathMatch levels
-
-0	string	5\x0aPlace_of_Two_Deaths	 Quake I save: dm1 Place of two deaths
-0	string	5\x0aClaustrophobopolis		 Quake I save: dm2 Claustrophobopolis
-0	string	5\x0aThe_Abandoned_Base		 Quake I save: dm3 The abandoned base
-0	string	5\x0aThe_Bad_Place		 Quake I save: dm4 The bad place
-0	string	5\x0aThe_Cistern		 Quake I save: dm5 The cistern
-0	string	5\x0aThe_Dark_Zone		 Quake I save: dm6 The dark zone
-
-# Scourge of Armagon
-
-0	string	5\x0aCommand_HQ               Quake I save: start Command HQ
-0	string	5\x0aThe_Pumping_Station      Quake I save: hip1m1 The pumping station
-0	string	5\x0aStorage_Facility         Quake I save: hip1m2 Storage facility
-0	string	5\x0aMilitary_Complex         Quake I save: hip1m5 Military complex (secret)
-0	string	5\x0athe_Lost_Mine            Quake I save: hip1m3 The lost mine
-0	string	5\x0aResearch_Facility        Quake I save: hip1m4 Research facility
-0	string	5\x0aAncient_Realms           Quake I save: hip2m1 Ancient realms
-0	string	5\x0aThe_Gremlin's_Domain     Quake I save: hip2m6 The gremlin's domain (secret)
-0	string	5\x0aThe_Black_Cathedral      Quake I save: hip2m2 The black cathedral
-0	string	5\x0aThe_Catacombs            Quake I save: hip2m3 The catacombs
-0	string	5\x0athe_Crypt__              Quake I save: hip2m4 The crypt
-0	string	5\x0aMortum's_Keep            Quake I save: hip2m5 Mortum's keep
-0	string	5\x0aTur_Torment              Quake I save: hip3m1 Tur torment
-0	string	5\x0aPandemonium              Quake I save: hip3m2 Pandemonium
-0	string	5\x0aLimbo                    Quake I save: hip3m3 Limbo
-0	string	5\x0athe_Edge_of_Oblivion     Quake I save: hipdm1 The edge of oblivion (secret)
-0	string	5\x0aThe_Gauntlet             Quake I save: hip3m4 The gauntlet
-0	string	5\x0aArmagon's_Lair           Quake I save: hipend Armagon's lair
-
-# Malice
-
-0	string	5\x0aThe_Academy      Quake I save: start The academy
-0	string	5\x0aThe_Lab          Quake I save: d1 The lab
-0	string	5\x0aArea_33          Quake I save: d1b Area 33
-0	string	5\x0aSECRET_MISSIONS  Quake I save: d3b Secret missions
-0	string	5\x0aThe_Hospital     Quake I save: d10 The hospital (secret)
-0	string	5\x0aThe_Genetics_Lab Quake I save: d11 The genetics lab (secret)
-0	string	5\x0aBACK_2_MALICE    Quake I save: d4b Back to Malice
-0	string	5\x0aArea44           Quake I save: d1c Area 44
-0	string	5\x0aTakahiro_Towers  Quake I save: d2 Takahiro towers
-0	string	5\x0aA_Rat's_Life     Quake I save: d3 A rat's life
-0	string	5\x0aInto_The_Flood   Quake I save: d4 Into the flood
-0	string	5\x0aThe_Flood        Quake I save: d5 The flood
-0	string	5\x0aNuclear_Plant    Quake I save: d6 Nuclear plant
-0	string	5\x0aThe_Incinerator_Plant    Quake I save: d7 The incinerator plant
-0	string	5\x0aThe_Foundry              Quake I save: d7b The foundry
-0	string	5\x0aThe_Underwater_Base      Quake I save: d8 The underwater base
-0	string	5\x0aTakahiro_Base            Quake I save: d9 Takahiro base
-0	string	5\x0aTakahiro_Laboratories    Quake I save: d12 Takahiro laboratories
-0	string	5\x0aStayin'_Alive    Quake I save: d13 Stayin' alive
-0	string	5\x0aB.O.S.S._HQ      Quake I save: d14 B.O.S.S. HQ
-0	string	5\x0aSHOWDOWN!        Quake I save: d15 Showdown!
-
-# Malice DeathMatch levels
-
-0	string	5\x0aThe_Seventh_Precinct	 Quake I save: ddm1 The seventh precinct
-0	string	5\x0aSub_Station		 Quake I save: ddm2 Sub station
-0	string	5\x0aCrazy_Eights!		 Quake I save: ddm3 Crazy eights!
-0	string	5\x0aEast_Side_Invertationa	 Quake I save: ddm4 East side invertationa
-0	string	5\x0aSlaughterhouse		 Quake I save: ddm5 Slaughterhouse
-0	string	5\x0aDOMINO			 Quake I save: ddm6 Domino
-0	string	5\x0aSANDRA'S_LADDER		 Quake I save: ddm7 Sandra's ladder
-
-
-0	string	MComprHD	MAME CHD compressed hard disk image,
->12	belong	x		version %lu
-
-# doom - submitted by Jon Dowland
-
-0	string	=IWAD		doom main IWAD data
->4	lelong	x		containing %d lumps
-0	string	=PWAD		doom patch PWAD data
->4	lelong	x		containing %d lumps
-
-
-# Summary: Warcraft 3 save
-# Extension: .w3g
-# Created by: "Nelson A. de Oliveira" <naoliv@gmail.com>
-0	string		Warcraft\ III\ recorded\ game	%s
-
-
-# Summary: Warcraft 3 map
-# Extension: .w3m
-# Created by: "Nelson A. de Oliveira" <naoliv@gmail.com>
-0	string		HM3W		Warcraft III map file
-
-
-# Summary: SGF Smart Game Format
-# Extension: .sgf
-# Reference: http://www.red-bean.com/sgf/
-# Created by: Eduardo Sabbatella <eduardo_sabbatella@yahoo.com.ar>
-# Modified by (1): Abel Cheung (regex, more game format)
-# FIXME: Some games don't have GM (game type)
-0	regex		\\(;.*GM\\[[0-9]{1,2}\\]	Smart Game Format
->2	search/0x200	GM[
->>&0	string		1]	(Go)
->>&0	string		2]	(Othello)
->>&0	string		3]	(chess)
->>&0	string		4]	(Gomoku+Renju)
->>&0	string		5]	(Nine Men's Morris)
->>&0	string		6]	(Backgammon)
->>&0	string		7]	(Chinese chess)
->>&0	string		8]	(Shogi)
->>&0	string		9]	(Lines of Action)
->>&0	string		10]	(Ataxx)
->>&0	string		11]	(Hex)
->>&0	string		12]	(Jungle)
->>&0	string		13]	(Neutron)
->>&0	string		14]	(Philosopher's Football)
->>&0	string		15]	(Quadrature)
->>&0	string		16]	(Trax)
->>&0	string		17]	(Tantrix)
->>&0	string		18]	(Amazons)
->>&0	string		19]	(Octi)
->>&0	string		20]	(Gess)
->>&0	string		21]	(Twixt)
->>&0	string		22]	(Zertz)
->>&0	string		23]	(Plateau)
->>&0	string		24]	(Yinsh)
->>&0	string		25]	(Punct)
->>&0	string		26]	(Gobblet)
->>&0	string		27]	(hive)
->>&0	string		28]	(Exxit)
->>&0	string		29]	(Hnefatal)
->>&0	string		30]	(Kuba)
->>&0	string		31]	(Tripples)
->>&0	string		32]	(Chase)
->>&0	string		33]	(Tumbling Down)
->>&0	string		34]	(Sahara)
->>&0	string		35]	(Byte)
->>&0	string		36]	(Focus)
->>&0	string		37]	(Dvonn)
->>&0	string		38]	(Tamsk)
->>&0	string		39]	(Gipf)
->>&0	string		40]	(Kropki)
-
-
-# Summary: Civilization 4 video
-# Extension: .bik
-# Created by: Abel Cheung <abelcheung@gmail.com>
-0	string	BIKi	Civilization 4 Video
-
-
-##############################################
-# NetImmerse/Gamebryo game engine entries
-
-# Summary: Gamebryo game engine file
-# Extension: .nif, .kf
-# Created by: Abel Cheung <abelcheung@gmail.com>
-0		string		Gamebryo\ File\ Format,\ Version\ 	Gamebryo game engine file
->&0		regex		[0-9a-z.]+				\b, version %s
-
-# Summary: Gamebryo game engine file
-# Extension: .kfm
-# Created by: Abel Cheung <abelcheung@gmail.com>
-0		string		;Gamebryo\ KFM\ File\ Version\ 		Gamebryo game engine animation File
->&0		regex		[0-9a-z.]+				\b, version %s
-
-# Summary: NetImmerse game engine file
-# Extension .nif
-# Created by: Abel Cheung <abelcheung@gmail.com>
-0		string		NetImmerse\ File\ Format,\ Versio		
->&0		string		n\ 					NetImmerse game engine file
->>&0		regex		[0-9a-z.]+				\b, version %s
-
-# Type:	SGF Smart Game Format
-# URL:	http://www.red-bean.com/sgf/
-# From:	Eduardo Sabbatella <eduardo_sabbatella@yahoo.com.ar>
-2	regex/c	\\(;.*GM\\[[0-9]{1,2}\\]	Smart Game Format
->2	regex/c	GM\\[1\\]			- Go Game
->2	regex/c	GM\\[6\\]			- BackGammon Game
->2	regex/c	GM\\[11\\]			- Hex Game
->2	regex/c	GM\\[18\\]			- Amazons Game
->2	regex/c	GM\\[19\\]			- Octi Game
->2	regex/c	GM\\[20\\]			- Gess Game
->2	regex/c	GM\\[21\\]			- twix Game
-
-#------------------------------------------------------------------------------
-# gcc:  file(1) magic for GCC special files
-#
-0	string		gpch		GCC precompiled header
-
-# The version field is annoying.  It's 3 characters, not zero-terminated.
->5	byte		x			(version %c
->6	byte		x			\b%c
->7	byte		x			\b%c)
-
-# 67 = 'C', 111 = 'o', 43 = '+', 79 = 'O'
->4	byte		67			for C
->4	byte		111			for Objective C
->4	byte		43			for C++
->4	byte		79			for Objective C++
-
-#------------------------------------------------------------------------------
-# GEOS files (Vidar Madsen, vidar@gimp.org)
-# semi-commonly used in embedded and handheld systems.
-0	belong	0xc745c153	GEOS
->40	byte	1	executable
->40	byte	2	VMFile
->40	byte	3	binary
->40	byte	4	directory label
->40	byte	<1	unknown
->40	byte	>4	unknown
->4	string	>\0	\b, name "%s"
-#>44	short	x	\b, version %d
-#>46	short	x	\b.%d
-#>48	short	x	\b, rev %d
-#>50	short	x	\b.%d
-#>52	short	x	\b, proto %d
-#>54	short	x	\br%d
-#>168	string	>\0	\b, copyright "%s"
-#------------------------------------------------------------------------------
-# GIMP Gradient: file(1) magic for the GIMP's gradient data files
-# by Federico Mena <federico@nuclecu.unam.mx>
-
-0       string          GIMP\ Gradient  GIMP gradient data
-
-#------------------------------------------------------------------------------
-# XCF:  file(1) magic for the XCF image format used in the GIMP developed
-#       by Spencer Kimball and Peter Mattis
-#       ('Bucky' LaDieu, nega@vt.edu)
-
-0	string		gimp\ xcf	GIMP XCF image data,
-!:mime	image/x-xcf
->9	string		file		version 0,
->9	string		v		version
->>10	string		>\0		%s,
->14	belong		x		%lu x
->18	belong		x		%lu,
->22     belong          0               RGB Color
->22     belong          1               Greyscale
->22     belong          2               Indexed Color
->22	belong		>2		Unknown Image Type.
-
-#------------------------------------------------------------------------------
-# XCF:  file(1) magic for the patterns used in the GIMP, developed
-#       by Spencer Kimball and Peter Mattis
-#       ('Bucky' LaDieu, nega@vt.edu)
-
-20      string          GPAT            GIMP pattern data,
->24     string          x               %s
-
-#------------------------------------------------------------------------------
-# XCF:  file(1) magic for the brushes used in the GIMP, developed
-#       by Spencer Kimball and Peter Mattis
-#       ('Bucky' LaDieu, nega@vt.edu)
-
-20      string          GIMP            GIMP brush data
-
-# GIMP Curves File
-# From: "Nelson A. de Oliveira" <naoliv@gmail.com>
-0	string	#\040GIMP\040Curves\040File	GIMP curve file
-# GNOME keyring
-# Contributed by Josh Triplett
-# FIXME: Could be simplified if pstring supported two-byte counts
-0         string   GnomeKeyring\n\r\0\n GNOME keyring
->&0       ubyte    0                    \b, major version 0
->>&0      ubyte    0                    \b, minor version 0
->>>&0     ubyte    0                    \b, crypto type 0 (AEL)
->>>&0     ubyte    >0                   \b, crypto type %hhu (unknown)
->>>&1     ubyte    0                    \b, hash type 0 (MD5)
->>>&1     ubyte    >0                   \b, hash type %hhu (unknown)
->>>&2     ubelong  0xFFFFFFFF           \b, name NULL
->>>&2     ubelong  !0xFFFFFFFF
->>>>&-4   ubelong  >255                 \b, name too long for file's pstring type
->>>>&-4   ubelong  <256
->>>>>&-1  pstring  x                    \b, name "%s"
->>>>>>&0  ubeqdate x                    \b, last modified %s
->>>>>>&8  ubeqdate x                    \b, created %s
->>>>>>&16 ubelong  &1
->>>>>>>&0 ubelong  x                    \b, locked if idle for %u seconds
->>>>>>&16 ubelong  ^1                   \b, not locked if idle
->>>>>>&24 ubelong  x                    \b, hash iterations %u
->>>>>>&28 ubequad  x                    \b, salt %llu
->>>>>>&52 ubelong  x                    \b, %u item(s)
-#------------------------------------------------------------------------------
-# gnu:  file(1) magic for various GNU tools
-#
-# GNU nlsutils message catalog file format
-#
-0	string		\336\22\4\225	GNU message catalog (little endian),
->4	lelong		x		revision %d,
->8	lelong		x		%d messages
-0	string		\225\4\22\336	GNU message catalog (big endian),
->4	belong		x		revision %d,
->8	belong		x		%d messages
-# message catalogs, from Mitchum DSouza <m.dsouza@mrc-apu.cam.ac.uk>
-0	string		*nazgul*	Nazgul style compiled message catalog
->8	lelong		>0		\b, version %ld
-
-# GnuPG
-# The format is very similar to pgp
-0	string          \001gpg                 GPG key trust database
->4	byte            x                       version %d
-# Note: magic.mime had 0x8501 for the next line instead of 0x8502
-0	beshort		0x8502			GPG encrypted data
-!:mime	text/PGP # encoding: data
-
-# This magic is not particularly good, as the keyrings don't have true
-# magic. Nevertheless, it covers many keyrings.
-0       beshort         0x9901                  GPG key public ring
-!:mime	application/x-gnupg-keyring
-
-# Gnumeric spreadsheet
-# This entry is only semi-helpful, as Gnumeric compresses its files, so
-# they will ordinarily reported as "compressed", but at least -z helps
-39      string          =<gmr:Workbook           Gnumeric spreadsheet
-
-# From: James Youngman <jay@gnu.org> 
-# gnu find magic
-0	string	\0LOCATE	GNU findutils locate database data
->7	string	>\0		\b, format %s
->7	string	02		\b (frcode)
-
-# Files produced by GNU gettext
-0	long	0xDE120495		GNU-format message catalog data
-0	long	0x950412DE		GNU-format message catalog data
-
-#------------------------------------------------------------------------------
-# gnumeric:  file(1) magic for Gnumeric spreadsheet
-# This entry is only semi-helpful, as Gnumeric compresses its files, so
-# they will ordinarily reported as "compressed", but at least -z helps
-39	string	=<gmr:Workbook	Gnumeric spreadsheet
-!:mime	application/x-gnumeric
-
-#------------------------------------------------------------------------------
-# ACE/gr and Grace type files - PLEASE DO NOT REMOVE THIS LINE
-#
-# ACE/gr binary
-0	string	\000\000\0001\000\000\0000\000\000\0000\000\000\0002\000\000\0000\000\000\0000\000\000\0003		old ACE/gr binary file
->39	byte	>0			- version %c
-# ACE/gr ascii
-0	string	#\ xvgr\ parameter\ file	ACE/gr ascii file
-0	string	#\ xmgr\ parameter\ file	ACE/gr ascii file
-0	string	#\ ACE/gr\ parameter\ file	ACE/gr ascii file
-# Grace projects
-0	string	#\ Grace\ project\ file		Grace project file
->23	string	@version\  			(version
->>32	byte	>0 				%c
->>33	string	>\0 				\b.%.2s
->>35	string	>\0 				\b.%.2s)
-# ACE/gr fit description files
-0	string	#\ ACE/gr\ fit\ description\ 	ACE/gr fit description file
-# end of ACE/gr and Grace type files - PLEASE DO NOT REMOVE THIS LINE
-#------------------------------------------------------------------------------
-# graphviz:  file(1) magic for http://www.graphviz.org/
-
-# FIXME: These patterns match too generally. For example, the first
-# line matches a LaTeX file containing the word "graph" (with a {
-# following later) and the second line matches this file.
-#0	regex/100	[\r\n\t\ ]*graph[\r\n\t\ ]+.*\\{	graphviz graph text
-#!:mime	text/vnd.graphviz
-#0	regex/100	[\r\n\t\ ]*digraph[\r\n\t\ ]+.*\\{	graphviz digraph text
-#!:mime	text/vnd.graphviz
-
-#------------------------------------------------------------------------------
-# gringotts:  file(1) magic for Gringotts
-# http://devel.pluto.linux.it/projects/Gringotts/
-# author: Germano Rizzo <mano@pluto.linux.it>
-#GRG3????Y
-0	string	GRG		Gringotts data file
-#file format 1
->3	string		1		v.1, MCRYPT S2K, SERPENT crypt, SHA-256 hash, ZLib lvl.9
-#file format 2
->3	string		2		v.2, MCRYPT S2K, 
->>8	byte&0x70	0x00		RIJNDAEL-128 crypt,
->>8	byte&0x70	0x10		SERPENT crypt,
->>8	byte&0x70	0x20		TWOFISH crypt, 
->>8	byte&0x70	0x30		CAST-256 crypt,
->>8	byte&0x70	0x40		SAFER+ crypt,
->>8	byte&0x70	0x50		LOKI97 crypt,
->>8	byte&0x70	0x60		3DES crypt,
->>8	byte&0x70	0x70		RIJNDAEL-256 crypt,
->>8	byte&0x08	0x00		SHA1 hash,
->>8	byte&0x08	0x08		RIPEMD-160 hash,
->>8	byte&0x04	0x00		ZLib
->>8	byte&0x04	0x04		BZip2
->>8	byte&0x03	0x00		lvl.0
->>8	byte&0x03	0x01		lvl.3
->>8	byte&0x03	0x02		lvl.6
->>8	byte&0x03	0x03		lvl.9
-#file format 3
->3	string		3		v.3, OpenPGP S2K, 
->>8	byte&0x70	0x00		RIJNDAEL-128 crypt,
->>8	byte&0x70	0x10		SERPENT crypt,
->>8	byte&0x70	0x20		TWOFISH crypt, 
->>8	byte&0x70	0x30		CAST-256 crypt,
->>8	byte&0x70	0x40		SAFER+ crypt,
->>8	byte&0x70	0x50		LOKI97 crypt,
->>8	byte&0x70	0x60		3DES crypt,
->>8	byte&0x70	0x70		RIJNDAEL-256 crypt,
->>8	byte&0x08	0x00		SHA1 hash,
->>8	byte&0x08	0x08		RIPEMD-160 hash,
->>8	byte&0x04	0x00		ZLib
->>8	byte&0x04	0x04		BZip2
->>8	byte&0x03	0x00		lvl.0
->>8	byte&0x03	0x01		lvl.3
->>8	byte&0x03	0x02		lvl.6
->>8	byte&0x03	0x03		lvl.9
-#file format >3
->3	string		>3		v.%.1s (unknown details)
-
-#------------------------------------------------------------------------------
-# hitach-sh: file(1) magic for Hitachi Super-H
-#
-# Super-H COFF
-#
-0	beshort		0x0500		Hitachi SH big-endian COFF
->18	beshort&0x0002	=0x0000		object
->18	beshort&0x0002	=0x0002		executable
->18	beshort&0x0008	=0x0008		\b, stripped
->18	beshort&0x0008	=0x0000		\b, not stripped
-#
-0	leshort		0x0550		Hitachi SH little-endian COFF
->18	leshort&0x0002	=0x0000		object
->18	leshort&0x0002	=0x0002		executable
->18	leshort&0x0008	=0x0008		\b, stripped
->18	leshort&0x0008	=0x0000		\b, not stripped
-
-#------------------------------------------------------------------------------
-# hp:  file(1) magic for Hewlett Packard machines (see also "printer")
-#
-# XXX - somebody should figure out whether any byte order needs to be
-# applied to the "TML" stuff; I'm assuming the Apollo stuff is
-# big-endian as it was mostly 68K-based.
-#
-# I think the 500 series was the old stack-based machines, running a
-# UNIX environment atop the "SUN kernel"; dunno whether it was
-# big-endian or little-endian.
-#
-# Daniel Quinlan (quinlan@yggdrasil.com): hp200 machines are 68010 based;
-# hp300 are 68020+68881 based; hp400 are also 68k.  The following basic
-# HP magic is useful for reference, but using "long" magic is a better
-# practice in order to avoid collisions.
-#
-# Guy Harris (guy@netapp.com): some additions to this list came from
-# HP-UX 10.0's "/usr/include/sys/unistd.h" (68030, 68040, PA-RISC 1.1,
-# 1.2, and 2.0).  The 1.2 and 2.0 stuff isn't in the HP-UX 10.0
-# "/etc/magic", though, except for the "archive file relocatable library"
-# stuff, and the 68030 and 68040 stuff isn't there at all - are they not
-# used in executables, or have they just not yet updated "/etc/magic"
-# completely?
-#
-# 0	beshort		200		hp200 (68010) BSD binary
-# 0	beshort		300		hp300 (68020+68881) BSD binary
-# 0	beshort		0x20c		hp200/300 HP-UX binary
-# 0	beshort		0x20d		hp400 (68030) HP-UX binary
-# 0	beshort		0x20e		hp400 (68040?) HP-UX binary
-# 0	beshort		0x20b		PA-RISC1.0 HP-UX binary
-# 0	beshort		0x210		PA-RISC1.1 HP-UX binary
-# 0	beshort		0x211		PA-RISC1.2 HP-UX binary
-# 0	beshort		0x214		PA-RISC2.0 HP-UX binary
-
-#
-# The "misc" stuff needs a byte order; the archives look suspiciously
-# like the old 177545 archives (0xff65 = 0177545).
-#
-#### Old Apollo stuff
-0	beshort		0627		Apollo m68k COFF executable
->18	beshort		^040000		not stripped
->22	beshort		>0		- version %ld
-0	beshort		0624		apollo a88k COFF executable
->18	beshort		^040000		not stripped
->22	beshort		>0		- version %ld
-0       long            01203604016     TML 0123 byte-order format
-0       long            01702407010     TML 1032 byte-order format
-0       long            01003405017     TML 2301 byte-order format
-0       long            01602007412     TML 3210 byte-order format
-#### PA-RISC 1.1
-0	belong 		0x02100106	PA-RISC1.1 relocatable object
-0	belong 		0x02100107	PA-RISC1.1 executable
->168	belong		&0x00000004	dynamically linked
->(144)	belong		0x054ef630	dynamically linked
->96	belong		>0		- not stripped
-
-0	belong 		0x02100108	PA-RISC1.1 shared executable
->168	belong&0x4	0x4		dynamically linked
->(144)	belong		0x054ef630	dynamically linked
->96	belong		>0		- not stripped
-
-0	belong 		0x0210010b	PA-RISC1.1 demand-load executable
->168	belong&0x4	0x4		dynamically linked
->(144)	belong		0x054ef630	dynamically linked
->96	belong		>0		- not stripped
-
-0	belong 		0x0210010e	PA-RISC1.1 shared library
->96	belong		>0		- not stripped
-
-0	belong 		0x0210010d	PA-RISC1.1 dynamic load library
->96	belong		>0		- not stripped
-
-#### PA-RISC 2.0
-0	belong		0x02140106	PA-RISC2.0 relocatable object
-
-0       belong		0x02140107	PA-RISC2.0 executable
->168	belong		&0x00000004	dynamically linked
->(144)	belong		0x054ef630	dynamically linked
->96	belong		>0		- not stripped
-
-0       belong		0x02140108	PA-RISC2.0 shared executable
->168	belong		&0x00000004	dynamically linked
->(144)	belong		0x054ef630	dynamically linked
->96	belong		>0		- not stripped
-
-0       belong		0x0214010b	PA-RISC2.0 demand-load executable
->168	belong		&0x00000004	dynamically linked
->(144)	belong		0x054ef630	dynamically linked
->96	belong		>0		- not stripped
-
-0       belong		0x0214010e	PA-RISC2.0 shared library
->96	belong		>0		- not stripped
-
-0       belong		0x0214010d	PA-RISC2.0 dynamic load library
->96	belong		>0		- not stripped
-
-#### 800
-0	belong 		0x020b0106	PA-RISC1.0 relocatable object
-
-0	belong 		0x020b0107	PA-RISC1.0 executable
->168	belong&0x4	0x4		dynamically linked
->(144)	belong		0x054ef630	dynamically linked
->96	belong		>0		- not stripped
-
-0	belong 		0x020b0108	PA-RISC1.0 shared executable
->168	belong&0x4	0x4		dynamically linked
->(144)	belong		0x054ef630	dynamically linked
->96	belong		>0		- not stripped
-
-0	belong 		0x020b010b	PA-RISC1.0 demand-load executable
->168	belong&0x4	0x4		dynamically linked
->(144)	belong		0x054ef630	dynamically linked
->96	belong		>0		- not stripped
-
-0	belong 		0x020b010e	PA-RISC1.0 shared library
->96	belong		>0		- not stripped
-
-0	belong 		0x020b010d	PA-RISC1.0 dynamic load library
->96	belong		>0		- not stripped
-
-0	belong		0x213c6172	archive file
->68	belong 		0x020b0619	- PA-RISC1.0 relocatable library
->68	belong	 	0x02100619	- PA-RISC1.1 relocatable library
->68	belong 		0x02110619	- PA-RISC1.2 relocatable library
->68	belong 		0x02140619	- PA-RISC2.0 relocatable library
-
-#### 500
-0	long		0x02080106	HP s500 relocatable executable
->16	long		>0		- version %ld
-
-0	long		0x02080107	HP s500 executable
->16	long		>0		- version %ld
-
-0	long		0x02080108	HP s500 pure executable
->16	long		>0		- version %ld
-
-#### 200
-0	belong 		0x020c0108	HP s200 pure executable
->4	beshort		>0		- version %ld
->8	belong		&0x80000000	save fp regs
->8	belong		&0x40000000	dynamically linked
->8	belong		&0x20000000	debuggable
->36	belong		>0		not stripped
-
-0	belong		0x020c0107	HP s200 executable
->4	beshort		>0		- version %ld
->8	belong		&0x80000000	save fp regs
->8	belong		&0x40000000	dynamically linked
->8	belong		&0x20000000	debuggable
->36	belong		>0		not stripped
-
-0	belong		0x020c010b	HP s200 demand-load executable
->4	beshort		>0		- version %ld
->8	belong		&0x80000000	save fp regs
->8	belong		&0x40000000	dynamically linked
->8	belong		&0x20000000	debuggable
->36	belong		>0		not stripped
-
-0	belong		0x020c0106	HP s200 relocatable executable
->4	beshort		>0		- version %ld
->6	beshort		>0		- highwater %d
->8	belong		&0x80000000	save fp regs
->8	belong		&0x20000000	debuggable
->8	belong		&0x10000000	PIC
-
-0	belong 		0x020a0108	HP s200 (2.x release) pure executable
->4	beshort		>0		- version %ld
->36	belong		>0		not stripped
-
-0	belong		0x020a0107	HP s200 (2.x release) executable
->4	beshort		>0		- version %ld
->36	belong		>0		not stripped
-
-0	belong		0x020c010e	HP s200 shared library
->4	beshort		>0		- version %ld
->6	beshort		>0		- highwater %d
->36	belong		>0		not stripped
-
-0	belong		0x020c010d	HP s200 dynamic load library
->4	beshort		>0		- version %ld
->6	beshort		>0		- highwater %d
->36	belong		>0		not stripped
-
-#### MISC
-0	long		0x0000ff65	HP old archive
-0	long		0x020aff65	HP s200 old archive
-0	long		0x020cff65	HP s200 old archive
-0	long		0x0208ff65	HP s500 old archive
-
-0	long		0x015821a6	HP core file
-
-0	long		0x4da7eee8	HP-WINDOWS font
->8	byte		>0		- version %ld
-0	string		Bitmapfile	HP Bitmapfile
-
-0	string		IMGfile	CIS 	compimg HP Bitmapfile
-# XXX - see "lif"
-#0	short		0x8000		lif file
-0	long		0x020c010c	compiled Lisp
-
-0	string		msgcat01	HP NLS message catalog,
->8	long		>0		%d messages
-
-# Summary: HP-48/49 calculator
-# Created by: phk@data.fls.dk
-# Modified by (1): AMAKAWA Shuhei <sa264@cam.ac.uk>
-# Modified by (2): Samuel Thibault <samuel.thibault@ens-lyon.org> (HP49 support)
-0	string		HPHP		HP
->4	string		48		48 binary
->4	string		49		49 binary
->7	byte		>64		- Rev %c
->8	leshort		0x2911		(ADR)
->8	leshort		0x2933		(REAL)
->8	leshort		0x2955		(LREAL)
->8	leshort		0x2977		(COMPLX)
->8	leshort		0x299d		(LCOMPLX)
->8	leshort		0x29bf		(CHAR)
->8	leshort		0x29e8		(ARRAY)
->8	leshort		0x2a0a		(LNKARRAY)
->8	leshort		0x2a2c		(STRING)
->8	leshort		0x2a4e		(HXS)
->8	leshort		0x2a74		(LIST)
->8	leshort		0x2a96		(DIR)
->8	leshort		0x2ab8		(ALG)
->8	leshort		0x2ada		(UNIT)
->8	leshort		0x2afc		(TAGGED)
->8	leshort		0x2b1e		(GROB)
->8	leshort		0x2b40		(LIB)
->8	leshort		0x2b62		(BACKUP)
->8	leshort		0x2b88		(LIBDATA)
->8	leshort		0x2d9d		(PROG)
->8	leshort		0x2dcc		(CODE)
->8	leshort		0x2e48		(GNAME)
->8	leshort		0x2e6d		(LNAME)
->8	leshort		0x2e92		(XLIB)
-
-0	string		%%HP:		HP text
->6	string		T(0)		- T(0)
->6	string		T(1)		- T(1)
->6	string		T(2)		- T(2)
->6	string		T(3)		- T(3)
->10	string		A(D)		A(D)
->10	string		A(R)		A(R)
->10	string		A(G)		A(G)
->14	string		F(.)		F(.);
->14	string		F(,)		F(,);
-
-
-# Summary: HP-38/39 calculator
-# Created by: Samuel Thibault <samuel.thibault@ens-lyon.org>
-0	string		HP3
->3	string		8		HP 38
->3	string		9		HP 39
->4	string		Bin		binary
->4	string		Asc		ASCII
->7	string		A		(Directory List)
->7	string		B		(Zaplet)
->7	string		C		(Note)
->7	string		D		(Program)
->7	string		E		(Variable)
->7	string		F		(List)
->7	string		G		(Matrix)
->7	string		H		(Library)
->7	string		I		(Target List)
->7	string		J		(ASCII Vector specification)
->7	string		K		(wildcard)
-
-# Summary: HP-38/39 calculator
-# Created by: Samuel Thibault <samuel.thibault@ens-lyon.org>
-0	string		HP3
->3	string		8		HP 38
->3	string		9		HP 39
->4	string		Bin		binary
->4	string		Asc		ASCII
->7	string		A		(Directory List)
->7	string		B		(Zaplet)
->7	string		C		(Note)
->7	string		D		(Program)
->7	string		E		(Variable)
->7	string		F		(List)
->7	string		G		(Matrix)
->7	string		H		(Library)
->7	string		I		(Target List)
->7	string		J		(ASCII Vector specification)
->7	string		K		(wildcard)
-
-# hpBSD magic numbers
-0	beshort		200		hp200 (68010) BSD
->2	beshort		0407		impure binary
->2	beshort		0410		read-only binary
->2	beshort		0413		demand paged binary
-0	beshort		300		hp300 (68020+68881) BSD
->2	beshort		0407		impure binary
->2	beshort		0410		read-only binary
->2	beshort		0413		demand paged binary
-#
-# From David Gero <dgero@nortelnetworks.com>
-# HP-UX 10.20 core file format from /usr/include/sys/core.h
-# Unfortunately, HP-UX uses corehead blocks without specifying the order
-# There are four we care about:
-#     CORE_KERNEL, which starts with the string "HP-UX"
-#     CORE_EXEC, which contains the name of the command
-#     CORE_PROC, which contains the signal number that caused the core dump
-#     CORE_FORMAT, which contains the version of the core file format (== 1)
-# The only observed order in real core files is KERNEL, EXEC, FORMAT, PROC
-# but we include all 6 variations of the order of the first 3, and
-# assume that PROC will always be last
-# Order 1: KERNEL, EXEC, FORMAT, PROC
-0x10		string	HP-UX
->0		belong	2
->>0xC		belong	0x3C
->>>0x4C		belong	0x100
->>>>0x58	belong	0x44
->>>>>0xA0	belong	1
->>>>>>0xAC	belong	4
->>>>>>>0xB0	belong	1
->>>>>>>>0xB4	belong	4		core file
->>>>>>>>>0x90	string	>\0		from '%s'
->>>>>>>>>0xC4	belong	3		- received SIGQUIT
->>>>>>>>>0xC4	belong	4		- received SIGILL
->>>>>>>>>0xC4	belong	5		- received SIGTRAP
->>>>>>>>>0xC4	belong	6		- received SIGABRT
->>>>>>>>>0xC4	belong	7		- received SIGEMT
->>>>>>>>>0xC4	belong	8		- received SIGFPE
->>>>>>>>>0xC4	belong	10		- received SIGBUS
->>>>>>>>>0xC4	belong	11		- received SIGSEGV
->>>>>>>>>0xC4	belong	12		- received SIGSYS
->>>>>>>>>0xC4	belong	33		- received SIGXCPU
->>>>>>>>>0xC4	belong	34		- received SIGXFSZ
-# Order 2: KERNEL, FORMAT, EXEC, PROC
->>>0x4C		belong	1
->>>>0x58	belong	4
->>>>>0x5C	belong	1
->>>>>>0x60	belong	0x100
->>>>>>>0x6C	belong	0x44
->>>>>>>>0xB4	belong	4		core file
->>>>>>>>>0xA4	string	>\0		from '%s'
->>>>>>>>>0xC4	belong	3		- received SIGQUIT
->>>>>>>>>0xC4	belong	4		- received SIGILL
->>>>>>>>>0xC4	belong	5		- received SIGTRAP
->>>>>>>>>0xC4	belong	6		- received SIGABRT
->>>>>>>>>0xC4	belong	7		- received SIGEMT
->>>>>>>>>0xC4	belong	8		- received SIGFPE
->>>>>>>>>0xC4	belong	10		- received SIGBUS
->>>>>>>>>0xC4	belong	11		- received SIGSEGV
->>>>>>>>>0xC4	belong	12		- received SIGSYS
->>>>>>>>>0xC4	belong	33		- received SIGXCPU
->>>>>>>>>0xC4	belong	34		- received SIGXFSZ
-# Order 3: FORMAT, KERNEL, EXEC, PROC
-0x24		string	HP-UX
->0		belong	1
->>0xC		belong	4
->>>0x10		belong	1
->>>>0x14	belong	2
->>>>>0x20	belong	0x3C
->>>>>>0x60	belong	0x100
->>>>>>>0x6C	belong	0x44
->>>>>>>>0xB4	belong	4		core file
->>>>>>>>>0xA4	string	>\0		from '%s'
->>>>>>>>>0xC4	belong	3		- received SIGQUIT
->>>>>>>>>0xC4	belong	4		- received SIGILL
->>>>>>>>>0xC4	belong	5		- received SIGTRAP
->>>>>>>>>0xC4	belong	6		- received SIGABRT
->>>>>>>>>0xC4	belong	7		- received SIGEMT
->>>>>>>>>0xC4	belong	8		- received SIGFPE
->>>>>>>>>0xC4	belong	10		- received SIGBUS
->>>>>>>>>0xC4	belong	11		- received SIGSEGV
->>>>>>>>>0xC4	belong	12		- received SIGSYS
->>>>>>>>>0xC4	belong	33		- received SIGXCPU
->>>>>>>>>0xC4	belong	34		- received SIGXFSZ
-# Order 4: EXEC, KERNEL, FORMAT, PROC
-0x64		string	HP-UX
->0		belong	0x100
->>0xC		belong	0x44
->>>0x54		belong	2
->>>>0x60	belong	0x3C
->>>>>0xA0	belong	1
->>>>>>0xAC	belong	4
->>>>>>>0xB0	belong	1
->>>>>>>>0xB4	belong	4		core file
->>>>>>>>>0x44	string	>\0		from '%s'
->>>>>>>>>0xC4	belong	3		- received SIGQUIT
->>>>>>>>>0xC4	belong	4		- received SIGILL
->>>>>>>>>0xC4	belong	5		- received SIGTRAP
->>>>>>>>>0xC4	belong	6		- received SIGABRT
->>>>>>>>>0xC4	belong	7		- received SIGEMT
->>>>>>>>>0xC4	belong	8		- received SIGFPE
->>>>>>>>>0xC4	belong	10		- received SIGBUS
->>>>>>>>>0xC4	belong	11		- received SIGSEGV
->>>>>>>>>0xC4	belong	12		- received SIGSYS
->>>>>>>>>0xC4	belong	33		- received SIGXCPU
->>>>>>>>>0xC4	belong	34		- received SIGXFSZ
-# Order 5: FORMAT, EXEC, KERNEL, PROC
-0x78		string	HP-UX
->0		belong	1
->>0xC		belong	4
->>>0x10		belong	1
->>>>0x14	belong	0x100
->>>>>0x20	belong	0x44
->>>>>>0x68	belong	2
->>>>>>>0x74	belong	0x3C
->>>>>>>>0xB4	belong	4		core file
->>>>>>>>>0x58	string	>\0		from '%s'
->>>>>>>>>0xC4	belong	3		- received SIGQUIT
->>>>>>>>>0xC4	belong	4		- received SIGILL
->>>>>>>>>0xC4	belong	5		- received SIGTRAP
->>>>>>>>>0xC4	belong	6		- received SIGABRT
->>>>>>>>>0xC4	belong	7		- received SIGEMT
->>>>>>>>>0xC4	belong	8		- received SIGFPE
->>>>>>>>>0xC4	belong	10		- received SIGBUS
->>>>>>>>>0xC4	belong	11		- received SIGSEGV
->>>>>>>>>0xC4	belong	12		- received SIGSYS
->>>>>>>>>0xC4	belong	33		- received SIGXCPU
->>>>>>>>>0xC4	belong	34		- received SIGXFSZ
-# Order 6: EXEC, FORMAT, KERNEL, PROC
->0		belong	0x100
->>0xC		belong	0x44
->>>0x54		belong	1
->>>>0x60	belong	4
->>>>>0x64	belong	1
->>>>>>0x68	belong	2
->>>>>>>0x74	belong	0x2C
->>>>>>>>0xB4	belong	4		core file
->>>>>>>>>0x44	string	>\0		from '%s'
->>>>>>>>>0xC4	belong	3		- received SIGQUIT
->>>>>>>>>0xC4	belong	4		- received SIGILL
->>>>>>>>>0xC4	belong	5		- received SIGTRAP
->>>>>>>>>0xC4	belong	6		- received SIGABRT
->>>>>>>>>0xC4	belong	7		- received SIGEMT
->>>>>>>>>0xC4	belong	8		- received SIGFPE
->>>>>>>>>0xC4	belong	10		- received SIGBUS
->>>>>>>>>0xC4	belong	11		- received SIGSEGV
->>>>>>>>>0xC4	belong	12		- received SIGSYS
->>>>>>>>>0xC4	belong	33		- received SIGXCPU
->>>>>>>>>0xC4	belong	34		- received SIGXFSZ
-
-
-
-#------------------------------------------------------------------------------
-# human68k:  file(1) magic for Human68k (X680x0 DOS) binary formats
-# Magic too short!
-#0		string	HU		Human68k
-#>68		string	LZX		LZX compressed
-#>>72		string	>\0		(version %s)
-#>(8.L+74)	string	LZX		LZX compressed
-#>>(8.L+78)	string	>\0		(version %s)
-#>60		belong	>0		binded
-#>(8.L+66)	string	#HUPAIR		hupair
-#>0		string	HU		X executable
-#>(8.L+74)	string	#LIBCV1		- linked PD LIBC ver 1
-#>4		belong	>0		- base address 0x%x
-#>28		belong	>0		not stripped
-#>32		belong	>0		with debug information
-#0		beshort	0x601a		Human68k Z executable
-#0		beshort	0x6000		Human68k object file
-#0		belong	0xd1000000	Human68k ar binary archive
-#0		belong	0xd1010000	Human68k ar ascii archive
-#0		beshort	0x0068		Human68k lib archive
-#4		string	LZX		Human68k LZX compressed
-#>8		string	>\0		(version %s)
-#>4		string	LZX		R executable
-#2		string	#HUPAIR		Human68k hupair R executable
-
-#------------------------------------------------------------------------------
-# ibm370:  file(1) magic for IBM 370 and compatibles.
-#
-# "ibm370" said that 0x15d == 0535 was "ibm 370 pure executable".
-# What the heck *is* "USS/370"?
-# AIX 4.1's "/etc/magic" has
-#
-#	0	short		0535		370 sysV executable 
-#	>12	long		>0		not stripped
-#	>22	short		>0		- version %d
-#	>30	long		>0		- 5.2 format
-#	0	short		0530		370 sysV pure executable 
-#	>12	long		>0		not stripped
-#	>22	short		>0		- version %d
-#	>30	long		>0		- 5.2 format
-#
-# instead of the "USS/370" versions of the same magic numbers.
-#
-0	beshort		0537		370 XA sysV executable 
->12	belong		>0		not stripped
->22	beshort		>0		- version %d
->30	belong		>0		- 5.2 format
-0	beshort		0532		370 XA sysV pure executable 
->12	belong		>0		not stripped
->22	beshort		>0		- version %d
->30	belong		>0		- 5.2 format
-0	beshort		054001		370 sysV pure executable
->12	belong		>0		not stripped
-0	beshort		055001		370 XA sysV pure executable
->12	belong		>0		not stripped
-0	beshort		056401		370 sysV executable
->12	belong		>0		not stripped
-0	beshort		057401		370 XA sysV executable
->12	belong		>0		not stripped
-0       beshort		0531		SVR2 executable (Amdahl-UTS)
->12	belong		>0		not stripped
->24     belong		>0		- version %ld
-0	beshort		0534		SVR2 pure executable (Amdahl-UTS)
->12	belong		>0		not stripped
->24	belong		>0		- version %ld
-0	beshort		0530		SVR2 pure executable (USS/370)
->12	belong		>0		not stripped
->24	belong		>0		- version %ld
-0	beshort		0535		SVR2 executable (USS/370)
->12	belong		>0		not stripped
->24	belong		>0		- version %ld
-
-#------------------------------------------------------------------------------
-# ibm6000:  file(1) magic for RS/6000 and the RT PC.
-#
-0	beshort		0x01df		executable (RISC System/6000 V3.1) or obj module
->12	belong		>0		not stripped
-# Breaks sun4 statically linked execs.
-#0      beshort		0x0103		executable (RT Version 2) or obj module
-#>2	byte		0x50		pure
-#>28	belong		>0		not stripped
-#>6	beshort		>0		- version %ld
-0	beshort		0x0104		shared library
-0	beshort		0x0105		ctab data
-0	beshort		0xfe04		structured file
-0	string		0xabcdef	AIX message catalog
-0	belong		0x000001f9	AIX compiled message catalog
-0	string		\<aiaff>	archive
-0	string		\<bigaf>	archive (big format)
-
-
-#------------------------------------------------------------------------------
-# iff:	file(1) magic for Interchange File Format (see also "audio" & "images")
-#
-# Daniel Quinlan (quinlan@yggdrasil.com) -- IFF was designed by Electronic
-# Arts for file interchange.  It has also been used by Apple, SGI, and
-# especially Commodore-Amiga.
-#
-# IFF files begin with an 8 byte FORM header, followed by a 4 character
-# FORM type, which is followed by the first chunk in the FORM.
-
-0	string		FORM		IFF data
-#>4	belong		x		\b, FORM is %d bytes long
-# audio formats
->8	string		AIFF		\b, AIFF audio
-!:mime	audio/x-aiff
->8	string		AIFC		\b, AIFF-C compressed audio
-!:mime	audio/x-aiff
->8	string		8SVX		\b, 8SVX 8-bit sampled sound voice
-!:mime	audio/x-aiff
->8	string		16SV		\b, 16SV 16-bit sampled sound voice
->8	string		SAMP		\b, SAMP sampled audio
->8	string		MAUD		\b, MAUD MacroSystem audio
->8	string		SMUS		\b, SMUS simple music
->8	string		CMUS		\b, CMUS complex music
-# image formats
->8	string		ILBMBMHD	\b, ILBM interleaved image
->>20	beshort		x		\b, %d x
->>22	beshort		x		%d
->8	string		RGBN		\b, RGBN 12-bit RGB image
->8	string		RGB8		\b, RGB8 24-bit RGB image
->8	string		DEEP		\b, DEEP TVPaint/XiPaint image
->8	string		DR2D		\b, DR2D 2-D object
->8	string		TDDD		\b, TDDD 3-D rendering
->8	string		LWOB		\b, LWOB 3-D object
->8	string		LWO2		\b, LWO2 3-D object, v2
->8	string		LWLO		\b, LWLO 3-D layered object
->8	string		REAL		\b, REAL Real3D rendering
->8	string		MC4D		\b, MC4D MaxonCinema4D rendering
->8	string		ANIM		\b, ANIM animation
->8	string		YAFA		\b, YAFA animation
->8	string		SSA\ 		\b, SSA super smooth animation
->8	string		ACBM		\b, ACBM continuous image
->8	string		FAXX		\b, FAXX fax image
-# other formats
->8	string		FTXT		\b, FTXT formatted text
->8	string		CTLG		\b, CTLG message catalog
->8	string		PREF		\b, PREF preferences
->8	string		DTYP		\b, DTYP datatype description
->8	string		PTCH		\b, PTCH binary patch
->8	string		AMFF		\b, AMFF AmigaMetaFile format
->8	string		WZRD		\b, WZRD StormWIZARD resource
->8	string		DOC\ 		\b, DOC desktop publishing document
-
-# These go at the end of the iff rules
-#
-# I don't see why these might collide with anything else.
-#
-# Interactive Fiction related formats
-#
->8	string		IFRS		\b, Blorb Interactive Fiction
->>24	string		Exec		with executable chunk
->8	string          IFZS		\b, Z-machine or Glulx saved game file (Quetzal)
-#------------------------------------------------------------------------------
-# images:  file(1) magic for image formats (see also "iff", and "c-lang" for
-# XPM bitmaps)
-#
-# originally from jef@helios.ee.lbl.gov (Jef Poskanzer),
-# additions by janl@ifi.uio.no as well as others. Jan also suggested
-# merging several one- and two-line files into here.
-#
-# little magic: PCX (first byte is 0x0a)
-
-# Targa - matches `povray', `ppmtotga' and `xv' outputs
-# by Philippe De Muyter <phdm@macqel.be>
-# at 2, byte ImgType must be 1, 2, 3, 9, 10 or 11
-# at 1, byte CoMapType must be 1 if ImgType is 1 or 9, 0 otherwise
-# at 3, leshort Index is 0 for povray, ppmtotga and xv outputs
-# `xv' recognizes only a subset of the following (RGB with pixelsize = 24)
-# `tgatoppm' recognizes a superset (Index may be anything)
-1	belong&0xfff7ffff	0x01010000	Targa image data - Map
->2	byte&8			8		- RLE
->12	leshort			>0		%hd x
->14	leshort			>0		%hd
-1	belong&0xfff7ffff	0x00020000	Targa image data - RGB
->2	byte&8			8		- RLE
->12	leshort			>0		%hd x
->14	leshort			>0		%hd
-1	belong&0xfff7ffff	0x00030000	Targa image data - Mono
->2	byte&8			8		- RLE
->12	leshort			>0		%hd x
->14	leshort			>0		%hd
-
-# PBMPLUS images
-# The next byte following the magic is always whitespace.
-0	search/1	P1		Netpbm PBM image text
-!:mime	image/x-portable-bitmap
-0	search/1	P2		Netpbm PGM image text
-!:mime	image/x-portable-greymap
-0	search/1	P3		Netpbm PPM image text
-!:mime	image/x-portable-pixmap
-0	string		P4		Netpbm PBM "rawbits" image data
-!:mime	image/x-portable-bitmap
-0	string		P5		Netpbm PGM "rawbits" image data
-!:mime	image/x-portable-greymap
-0	string		P6		Netpbm PPM "rawbits" image data
-!:mime	image/x-portable-pixmap
-0	string		P7		Netpbm PAM image file
-!:mime	image/x-portable-pixmap
-
-# From: bryanh@giraffe-data.com (Bryan Henderson)
-0	string		\117\072	Solitaire Image Recorder format
->4	string		\013		MGI Type 11
->4	string		\021		MGI Type 17
-0	string		.MDA		MicroDesign data
->21	byte		48		version 2
->21	byte		51		version 3
-0	string		.MDP		MicroDesign page data
->21	byte		48		version 2
->21	byte		51		version 3
-
-# NIFF (Navy Interchange File Format, a modification of TIFF) images
-# [GRR:  this *must* go before TIFF]
-0	string		IIN1		NIFF image data
-!:mime	image/x-niff
-
-# Tag Image File Format, from Daniel Quinlan (quinlan@yggdrasil.com)
-# The second word of TIFF files is the TIFF version number, 42, which has
-# never changed.  The TIFF specification recommends testing for it.
-0	string		MM\x00\x2a	TIFF image data, big-endian
-!:mime	image/tiff
-0	string		II\x2a\x00	TIFF image data, little-endian
-!:mime	image/tiff
-
-# PNG [Portable Network Graphics, or "PNG's Not GIF"] images
-# (Greg Roelofs, newt@uchicago.edu)
-# (Albert Cahalan, acahalan@cs.uml.edu)
-#
-# 137 P N G \r \n ^Z \n [4-byte length] H E A D [HEAD data] [HEAD crc] ...
-#
-0	string		\x89PNG\x0d\x0a\x1a\x0a		PNG image
-!:mime	image/png
->16	belong		x		\b, %ld x
->20	belong		x		%ld,
->24	byte		x		%d-bit
->25	byte		0		grayscale,
->25	byte		2		\b/color RGB,
->25	byte		3		colormap,
->25	byte		4		gray+alpha,
->25	byte		6		\b/color RGBA,
-#>26	byte		0		deflate/32K,
->28	byte		0		non-interlaced
->28	byte		1		interlaced
-
-# possible GIF replacements; none yet released!
-# (Greg Roelofs, newt@uchicago.edu)
-#
-# GRR 950115:  this was mine ("Zip GIF"):
-0	string		GIF94z		ZIF image (GIF+deflate alpha)
-!:mime	image/x-unknown
-#
-# GRR 950115:  this is Jeremy Wohl's Free Graphics Format (better):
-#					
-0	string		FGF95a		FGF image (GIF+deflate beta)
-!:mime	image/x-unknown
-#
-# GRR 950115:  this is Thomas Boutell's Portable Bitmap Format proposal
-# (best; not yet implemented):
-#					
-0	string		PBF		PBF image (deflate compression)
-!:mime	image/x-unknown
-
-# GIF
-0	string		GIF8		GIF image data
-!:mime	image/gif
-!:apple	8BIMGIFf
->4	string		7a		\b, version 8%s,
->4	string		9a		\b, version 8%s,
->6	leshort		>0		%hd x
->8	leshort		>0		%hd
-#>10	byte		&0x80		color mapped,
-#>10	byte&0x07	=0x00		2 colors
-#>10	byte&0x07	=0x01		4 colors
-#>10	byte&0x07	=0x02		8 colors
-#>10	byte&0x07	=0x03		16 colors
-#>10	byte&0x07	=0x04		32 colors
-#>10	byte&0x07	=0x05		64 colors
-#>10	byte&0x07	=0x06		128 colors
-#>10	byte&0x07	=0x07		256 colors
-
-# ITC (CMU WM) raster files.  It is essentially a byte-reversed Sun raster,
-# 1 plane, no encoding.
-0	string		\361\0\100\273	CMU window manager raster image data
->4	lelong		>0		%d x
->8	lelong		>0		%d,
->12	lelong		>0		%d-bit
-
-# Magick Image File Format
-0	string		id=ImageMagick	MIFF image data
-
-# Artisan
-0	long		1123028772	Artisan image data
->4	long		1		\b, rectangular 24-bit
->4	long		2		\b, rectangular 8-bit with colormap
->4	long		3		\b, rectangular 32-bit (24-bit with matte)
-
-# FIG (Facility for Interactive Generation of figures), an object-based format
-0	search/1	#FIG		FIG image text
->5	string		x		\b, version %.3s
-
-# PHIGS
-0	string		ARF_BEGARF		PHIGS clear text archive
-0	string		@(#)SunPHIGS		SunPHIGS
-# version number follows, in the form m.n
->40	string		SunBin			binary
->32	string		archive			archive
-
-# GKS (Graphics Kernel System)
-0	string		GKSM		GKS Metafile
->24	string		SunGKS		\b, SunGKS
-
-# CGM image files
-0	string		BEGMF		clear text Computer Graphics Metafile
-
-# MGR bitmaps  (Michael Haardt, u31b3hs@pool.informatik.rwth-aachen.de)
-0	string	yz	MGR bitmap, modern format, 8-bit aligned
-0	string	zz	MGR bitmap, old format, 1-bit deep, 16-bit aligned
-0	string	xz	MGR bitmap, old format, 1-bit deep, 32-bit aligned
-0	string	yx	MGR bitmap, modern format, squeezed
-
-# Fuzzy Bitmap (FBM) images
-0	string		%bitmap\0	FBM image data
->30	long		0x31		\b, mono
->30	long		0x33		\b, color
-
-# facsimile data
-1	string		PC\ Research,\ Inc	group 3 fax data
->29	byte		0		\b, normal resolution (204x98 DPI)
->29	byte		1		\b, fine resolution (204x196 DPI)
-# From: Herbert Rosmanith <herp@wildsau.idv.uni.linz.at>
-0	string		Sfff		structured fax file
-
-
-# PC bitmaps (OS/2, Windows BMP files)  (Greg Roelofs, newt@uchicago.edu)
-0	string		BM
->14	leshort		12		PC bitmap, OS/2 1.x format
-!:mime	image/x-ms-bmp
->>18	leshort		x		\b, %d x
->>20	leshort		x		%d
->14	leshort		64		PC bitmap, OS/2 2.x format
-!:mime	image/x-ms-bmp
->>18	leshort		x		\b, %d x
->>20	leshort		x		%d
->14	leshort		40		PC bitmap, Windows 3.x format
-!:mime	image/x-ms-bmp
->>18	lelong		x		\b, %d x
->>22	lelong		x		%d x
->>28	leshort		x		%d
->14	leshort		128		PC bitmap, Windows NT/2000 format
-!:mime	image/x-ms-bmp
->>18	lelong		x		\b, %d x
->>22	lelong		x		%d x
->>28	leshort		x		%d
-# Too simple - MPi
-#0	string		IC		PC icon data
-#0	string		PI		PC pointer image data
-#0	string		CI		PC color icon data
-#0	string		CP		PC color pointer image data
-# Conflicts with other entries [BABYL]
-#0	string		BA		PC bitmap array data
-
-# XPM icons (Greg Roelofs, newt@uchicago.edu)
-# note possible collision with C/REXX entry in c-lang; currently commented out
-0	search/1	/*\ XPM\ */	X pixmap image text
-
-# Utah Raster Toolkit RLE images (janl@ifi.uio.no)
-0	leshort		0xcc52		RLE image data,
->6	leshort		x		%d x
->8	leshort		x		%d
->2	leshort		>0		\b, lower left corner: %d
->4	leshort		>0		\b, lower right corner: %d
->10	byte&0x1	=0x1		\b, clear first
->10	byte&0x2	=0x2		\b, no background
->10	byte&0x4	=0x4		\b, alpha channel
->10	byte&0x8	=0x8		\b, comment
->11	byte		>0		\b, %d color channels
->12	byte		>0		\b, %d bits per pixel
->13	byte		>0		\b, %d color map channels
-
-# image file format (Robert Potter, potter@cs.rochester.edu)
-0	string		Imagefile\ version-	iff image data
-# this adds the whole header (inc. version number), informative but longish
->10	string		>\0		%s
-
-# Sun raster images, from Daniel Quinlan (quinlan@yggdrasil.com)
-0	belong		0x59a66a95	Sun raster image data
->4	belong		>0		\b, %d x
->8	belong		>0		%d,
->12	belong		>0		%d-bit,
-#>16	belong		>0		%d bytes long,
->20	belong		0		old format,
-#>20	belong		1		standard,
->20	belong		2		compressed,
->20	belong		3		RGB,
->20	belong		4		TIFF,
->20	belong		5		IFF,
->20	belong		0xffff		reserved for testing,
->24	belong		0		no colormap
->24	belong		1		RGB colormap
->24	belong		2		raw colormap
-#>28	belong		>0		colormap is %d bytes long
-
-# SGI image file format, from Daniel Quinlan (quinlan@yggdrasil.com)
-#
-# See
-#	http://reality.sgi.com/grafica/sgiimage.html
-#
-0	beshort		474		SGI image data
-#>2	byte		0		\b, verbatim
->2	byte		1		\b, RLE
-#>3	byte		1		\b, normal precision
->3	byte		2		\b, high precision
->4	beshort		x		\b, %d-D
->6	beshort		x		\b, %d x
->8	beshort		x		%d
->10	beshort		x		\b, %d channel
->10	beshort		!1		\bs
->80	string		>0		\b, "%s"
-
-0	string		IT01		FIT image data
->4	belong		x		\b, %d x
->8	belong		x		%d x
->12	belong		x		%d
-#
-0	string		IT02		FIT image data
->4	belong		x		\b, %d x
->8	belong		x		%d x
->12	belong		x		%d
-#
-2048	string		PCD_IPI		Kodak Photo CD image pack file
->0xe02	byte&0x03	0x00		, landscape mode
->0xe02	byte&0x03	0x01		, portrait mode
->0xe02	byte&0x03	0x02		, landscape mode
->0xe02	byte&0x03	0x03		, portrait mode
-0	string		PCD_OPA		Kodak Photo CD overview pack file
-
-# FITS format.  Jeff Uphoff <juphoff@tarsier.cv.nrao.edu>
-# FITS is the Flexible Image Transport System, the de facto standard for
-# data and image transfer, storage, etc., for the astronomical community.
-# (FITS floating point formats are big-endian.)
-0	string	SIMPLE\ \ =	FITS image data
->109	string	8		\b, 8-bit, character or unsigned binary integer
->108	string	16		\b, 16-bit, two's complement binary integer
->107	string	\ 32		\b, 32-bit, two's complement binary integer
->107	string	-32		\b, 32-bit, floating point, single precision
->107	string	-64		\b, 64-bit, floating point, double precision
-
-# other images
-0	string	This\ is\ a\ BitMap\ file	Lisp Machine bit-array-file
-
-# From SunOS 5.5.1 "/etc/magic" - appeared right before Sun raster image
-# stuff.
-#
-0	beshort		0x1010		PEX Binary Archive
-
-# DICOM medical imaging data
-128	string	DICM			DICOM medical imaging data
-!:mime	application/dicom
-
-# XWD - X Window Dump file.
-#   As described in /usr/X11R6/include/X11/XWDFile.h
-#   used by the xwd program.
-#   Bradford Castalia, idaeim, 1/01
-#   updated by Adam Buchbinder, 2/09
-# The following assumes version 7 of the format; the first long is the length
-# of the header, which is at least 25 4-byte longs, and the one at offset 8
-# is a constant which is always either 1 or 2. Offset 12 is the pixmap depth,
-# which is a maximum of 32.
-0	belong	>100
->8	belong	<3
->>12	belong	<33
->>>4	belong	7			XWD X Window Dump image data
-!:mime	image/x-xwindowdump
->>>>100	string	>\0			\b, "%s"
->>>>16	belong	x			\b, %dx
->>>>20	belong	x			\b%dx
->>>>12	belong	x			\b%d
-
-# PDS - Planetary Data System
-#   These files use Parameter Value Language in the header section.
-#   Unfortunately, there is no certain magic, but the following
-#   strings have been found to be most likely.
-0	string	NJPL1I00		PDS (JPL) image data
-2	string	NJPL1I			PDS (JPL) image data
-0	string	CCSD3ZF			PDS (CCSD) image data
-2	string	CCSD3Z			PDS (CCSD) image data
-0	string	PDS_			PDS image data
-0	string	LBLSIZE=		PDS (VICAR) image data
-
-# pM8x: ATARI STAD compressed bitmap format
-#
-# from Oskar Schirmer <schirmer@scara.com> Feb 2, 2001
-# p M 8 5/6 xx yy zz data...
-# Atari ST STAD bitmap is always 640x400, bytewise runlength compressed.
-# bytes either run horizontally (pM85) or vertically (pM86). yy is the
-# most frequent byte, xx and zz are runlength escape codes, where xx is
-# used for runs of yy.
-#
-0	string	pM85		Atari ST STAD bitmap image data (hor)
->5	byte	0x00		(white background)
->5	byte	0xFF		(black background)
-0	string	pM86		Atari ST STAD bitmap image data (vert)
->5	byte	0x00		(white background)
->5	byte	0xFF		(black background)
-
-# Gürkan Sengün <gurkan@linuks.mine.nu>, www.linuks.mine.nu
-# http://www.atarimax.com/jindroush.atari.org/afmtatr.html
-0	leshort	0x0296		Atari ATR image
-
-# XXX:
-# This is bad magic 0x5249 == 'RI' conflicts with RIFF and other
-# magic.
-# SGI RICE image file <mpruett@sgi.com>
-#0	beshort	0x5249		RICE image
-#>2	beshort	x		v%d
-#>4	beshort	x		(%d x
-#>6	beshort	x		%d)
-#>8	beshort	0		8 bit
-#>8	beshort	1		10 bit
-#>8	beshort	2		12 bit
-#>8	beshort	3		13 bit
-#>10	beshort	0		4:2:2
-#>10	beshort	1		4:2:2:4
-#>10	beshort	2		4:4:4
-#>10	beshort	3		4:4:4:4
-#>12	beshort	1		RGB
-#>12	beshort	2		CCIR601
-#>12	beshort	3		RP175
-#>12	beshort	4		YUV
-
-#------------------------------------------------------------------------------
-#
-# Marco Schmidt (marcoschmidt@users.sourceforge.net) -- an image  file format
-# for the EPOC operating system, which is used with PDAs like those from Psion
-#
-# see http://huizen.dds.nl/~frodol/psiconv/html/Index.html for a description
-# of various EPOC file formats
-
-0	string \x37\x00\x00\x10\x42\x00\x00\x10\x00\x00\x00\x00\x39\x64\x39\x47 EPOC MBM image file
-
-# PCX image files
-# From: Dan Fandrich <dan@coneharvesters.com>
-0	beshort		0x0a00	PCX ver. 2.5 image data
-0	beshort		0x0a02	PCX ver. 2.8 image data, with palette
-0	beshort		0x0a03	PCX ver. 2.8 image data, without palette
-0	beshort		0x0a04	PCX for Windows image data
-0	beshort		0x0a05	PCX ver. 3.0 image data
->4	leshort		x      bounding box [%hd,
->6	leshort		x      %hd] -
->8	leshort		x      [%hd,
->10	leshort		x      %hd],
->65	byte		>1	%d planes each of
->3	byte		x	%hhd-bit
->68	byte		0	image,
->68	byte		1	colour,
->68	byte		2	grayscale,
->68	byte		>2	image,
->68	byte		<0	image,
->12	leshort		>0	%hd x
->>14	leshort		x      %hd dpi,
->2	byte		0	uncompressed
->2	byte		1	RLE compressed
-
-# Adobe Photoshop
-0	string		8BPS Adobe Photoshop Image
-!:mime	image/vnd.adobe.photoshop
-
-# XV thumbnail indicator (ThMO)
-0	string		P7\ 332		XV thumbnail image data
-
-# NITF is defined by United States MIL-STD-2500A
-0	string	NITF	National Imagery Transmission Format
->25	string	>\0	dated %.14s
-
-# GEM Image: Version 1, Headerlen 8 (Wolfram Kleff)
-0	belong		0x00010008	GEM Image data
->12	beshort		x		%d x
->14	beshort		x		%d,
->4	beshort		x		%d planes,
->8	beshort		x		%d x
->10	beshort		x		%d pixelsize
-
-# GEM Metafile (Wolfram Kleff)
-0	lelong		0x0018FFFF	GEM Metafile data
->4	leshort		x		version %d
-
-#
-# SMJPEG. A custom Motion JPEG format used by Loki Entertainment
-# Software Torbjorn Andersson <d91tan@Update.UU.SE>.
-#
-0	string	\0\nSMJPEG	SMJPEG
->8	belong	x		%d.x data
-# According to the specification you could find any number of _TXT
-# headers here, but I can't think of any way of handling that. None of
-# the SMJPEG files I tried it on used this feature. Even if such a
-# file is encountered the output should still be reasonable.
->16	string	_SND		\b,
->>24	beshort	>0		%d Hz
->>26	byte	8		8-bit
->>26	byte	16		16-bit
->>28	string	NONE		uncompressed
-# >>28	string	APCM		ADPCM compressed
->>27	byte	1		mono
->>28	byte	2		stereo
-# Help! Isn't there any way to avoid writing this part twice?
->>32	string	_VID		\b,
-# >>>48	string	JFIF		JPEG
->>>40	belong	>0		%d frames
->>>44	beshort	>0		(%d x
->>>46	beshort	>0		%d)
->16	string	_VID		\b,
-# >>32	string	JFIF		JPEG
->>24	belong	>0		%d frames
->>28	beshort	>0		(%d x
->>30	beshort	>0		%d)
-
-0	string	Paint\ Shop\ Pro\ Image\ File	Paint Shop Pro Image File
-
-# "thumbnail file" (icon)
-# descended from "xv", but in use by other applications as well (Wolfram Kleff)
-0       string          P7\ 332         XV "thumbnail file" (icon) data
-
-# taken from fkiss: (<yav@mte.biglobe.ne.jp> ?)
-0       string          KiSS            KISS/GS
->4      byte            16              color
->>5     byte            x               %d bit
->>8     leshort         x               %d colors
->>10    leshort         x               %d groups
->4      byte            32              cell
->>5     byte            x               %d bit
->>8     leshort         x               %d x
->>10    leshort         x               %d
->>12    leshort         x               +%d
->>14    leshort         x               +%d
-
-# Webshots (www.webshots.com), by John Harrison
-0       string          C\253\221g\230\0\0\0 Webshots Desktop .wbz file
-
-# Hercules DASD image files
-# From Jan Jaeger <jj@septa.nl>
-0       string  CKD_P370        Hercules CKD DASD image file
->8      long    x               \b, %d heads per cylinder
->12     long    x               \b, track size %d bytes
->16     byte    x               \b, device type 33%2.2X
-
-0       string  CKD_C370        Hercules compressed CKD DASD image file
->8      long    x               \b, %d heads per cylinder
->12     long    x               \b, track size %d bytes
->16     byte    x               \b, device type 33%2.2X
-
-0       string  CKD_S370        Hercules CKD DASD shadow file
->8      long    x               \b, %d heads per cylinder
->12     long    x               \b, track size %d bytes
->16     byte    x               \b, device type 33%2.2X
-
-# Squeak images and programs - etoffi@softhome.net
-0	string		\146\031\0\0	Squeak image data
-0	search/1	'From\040Squeak	Squeak program text
-
-# partimage: file(1) magic for PartImage files (experimental, incomplete)
-# Author: Hans-Joachim Baader <hjb@pro-linux.de>
-0		string	PaRtImAgE-VoLuMe	PartImage
->0x0020		string	0.6.1		file version %s
->>0x0060	lelong	>-1		volume %ld
-#>>0x0064 8 byte identifier
-#>>0x007c reserved
->>0x0200	string	>\0		type %s
->>0x1400	string	>\0		device %s,
->>0x1600	string	>\0		original filename %s,
-# Some fields omitted
->>0x2744	lelong	0		not compressed
->>0x2744	lelong	1		gzip compressed
->>0x2744	lelong	2		bzip2 compressed
->>0x2744	lelong	>2		compressed with unknown algorithm
->0x0020		string	>0.6.1		file version %s
->0x0020		string	<0.6.1		file version %s
-
-# DCX is multi-page PCX, using a simple header of up to 1024
-# offsets for the respective PCX components.
-# From: Joerg Wunsch <joerg_wunsch@uriah.heep.sax.de>
-0	lelong	987654321	DCX multi-page PCX image data
-
-# Simon Walton <simonw@matteworld.com>
-# Kodak Cineon format for scanned negatives
-# http://www.kodak.com/US/en/motion/support/dlad/
-0	lelong  0xd75f2a80	Cineon image data
->200	belong  >0		\b, %ld x
->204	belong  >0		%ld
-
-
-# Bio-Rad .PIC is an image format used by microscope control systems
-# and related image processing software used by biologists.
-# From: Vebjorn Ljosa <vebjorn@ljosa.com>
-54	leshort 12345		Bio-Rad .PIC Image File
->0	leshort >0		%hd x
->2	leshort >0		%hd,
->4	leshort =1		1 image in file
->4	leshort >1		%hd images in file
-
-# From Jan "Yenya" Kasprzak <kas@fi.muni.cz>
-# The description of *.mrw format can be found at
-# http://www.dalibor.cz/minolta/raw_file_format.htm
-0	string	\000MRM			Minolta Dimage camera raw image data
-
-# Summary: DjVu image / document
-# Extension: .djvu
-# Reference: http://djvu.org/docs/DjVu3Spec.djvu
-# Submitted by: Stephane Loeuillet <stephane.loeuillet@tiscali.fr>
-# Modified by (1): Abel Cheung <abelcheung@gmail.com>
-0	string	AT&TFORM
-!:mime	image/vnd.djvu
->12	string	DJVM		DjVu multiple page document
->12	string	DJVU		DjVu image or single page document
->12	string	DJVI		DjVu shared document
->12	string	THUM		DjVu page thumbnails
-
-
-# From Marc Espie
-0	lelong	20000630		OpenEXR image data
-
-# From: Tom Hilinski <tom.hilinski@comcast.net>
-# http://www.unidata.ucar.edu/packages/netcdf/
-0	string	CDF\001			NetCDF Data Format data
-
-#-----------------------------------------------------------------------
-# Hierarchical Data Format, used to facilitate scientific data exchange
-# specifications at http://hdf.ncsa.uiuc.edu/
-0	belong	0x0e031301	Hierarchical Data Format (version 4) data
-!:mime	application/x-hdf
-0	string	\211HDF\r\n\032	Hierarchical Data Format (version 5) data
-!:mime	application/x-hdf
-
-# From: Tobias Burnus <burnus@net-b.de>
-# Xara (for a while: Corel Xara) is a graphic package, see
-# http://www.xara.com/ for Windows and as GPL application for Linux
-0	string	XARA\243\243	Xara graphics file
-
-# http://www.cartesianinc.com/Tech/
-0	string	CPC\262		Cartesian Perceptual Compression image
-!:mime	image/x-cpi
-
-# From Albert Cahalan <acahalan@gmail.com>
-# puredigital used it for the CVS disposable camcorder
-#8       lelong  4       ZBM bitmap image data
-#>4      leshort x       %u x
-#>6      leshort x       %u
-
-# From Albert Cahalan <acahalan@gmail.com>
-# uncompressed 5:6:5 HighColor image for OLPC XO firmware icons
-0       string C565     OLPC firmware icon image data
->4      leshort x       %u x
->6      leshort x       %u
-
-# Applied Images - Image files from Cytovision
-# Gustavo Junior Alves <gjalves@gjalves.com.br>
-0	string	\xce\xda\xde\xfa	Cytovision Metaphases file
-0	string	\xed\xad\xef\xac	Cytovision Karyotype file
-0	string	\x0b\x00\x03\x00	Cytovision FISH Probe file
-0	string	\xed\xfe\xda\xbe	Cytovision FLEX file
-0	string	\xed\xab\xed\xfe	Cytovision FLEX file
-0	string	\xad\xfd\xea\xad	Cytovision RATS file
-
-# Wavelet Scalar Quantization format used in gray-scale fingerprint images
-# From Tano M Fotang <mfotang@quanteq.com>
-0	string	\xff\xa0\xff\xa8\x00	Wavelet Scalar Quantization image data
-
-# JPEG 2000 Code Stream Bitmap
-# From Petr Splichal <psplicha@redhat.com>
-0	string	\xFF\x4F\xFF\x51\x00	JPEG-2000 Code Stream Bitmap data
-
-# Type:	Ulead Photo Explorer5 (.pe5)
-# URL:	http://www.jisyo.com/cgibin/view.cgi?EXT=pe5 (Japanese)
-# From:	Simon Horman <horms@debian.org>
-0	string	IIO2H			Ulead Photo Explorer5
-
-# Type:	X11 cursor
-# URL:	http://webcvs.freedesktop.org/mime/shared-mime-info/freedesktop.org.xml.in?view=markup
-# From:	Mathias Brodala <info@noctus.net>
-0	string	Xcur			X11 cursor
-
-#------------------------------------------------------------------------------
-# inform:  file(1) magic for Inform interactive fiction language
-
-# URL:  http://www.inform-fiction.org/
-# From: Reuben Thomas <rrt@sc3d.org>
-
-0	search/cB/100	constant\ story		Inform source text
-
-#------------------------------------------------------------------------------
-# intel:  file(1) magic for x86 Unix
-#
-# Various flavors of x86 UNIX executable/object (other than Xenix, which
-# is in "microsoft").  DOS is in "msdos"; the ambitious soul can do
-# Windows as well.
-#
-# Windows NT belongs elsewhere, as you need x86 and MIPS and Alpha and
-# whatever comes next (HP-PA Hummingbird?).  OS/2 may also go elsewhere
-# as well, if, as, and when IBM makes it portable.
-#
-# The `versions' should be un-commented if they work for you.
-# (Was the problem just one of endianness?)
-#
-0	leshort		0502		basic-16 executable
->12	lelong		>0		not stripped
-#>22	leshort		>0		- version %ld
-0	leshort		0503		basic-16 executable (TV)
->12	lelong		>0		not stripped
-#>22	leshort		>0		- version %ld
-0	leshort		0510		x86 executable
->12	lelong		>0		not stripped
-0	leshort		0511		x86 executable (TV)
->12	lelong		>0		not stripped
-0	leshort		=0512		iAPX 286 executable small model (COFF)
->12	lelong		>0		not stripped
-#>22	leshort		>0		- version %ld
-0	leshort		=0522		iAPX 286 executable large model (COFF)
->12	lelong		>0		not stripped
-#>22	leshort		>0		- version %ld
-# SGI labeled the next entry as "iAPX 386 executable" --Dan Quinlan
-0	leshort		=0514		80386 COFF executable
->12	lelong		>0		not stripped
->22	leshort		>0		- version %ld
-
-# rom: file(1) magic for BIOS ROM Extensions found in intel machines
-#      mapped into memory between 0xC0000 and 0xFFFFF
-# From Gürkan Sengün <gurkan@linuks.mine.nu>, www.linuks.mine.nu
-0        beshort         0x55AA       BIOS (ia32) ROM Ext.
->5       string          USB          USB
->7       string          LDR          UNDI image
->30      string          IBM          IBM comp. Video
->26      string          Adaptec      Adaptec
->28      string          Adaptec      Adaptec
->42      string          PROMISE      Promise
->2       byte            x            (%d*512)
-
-#------------------------------------------------------------------------------
-# interleaf:  file(1) magic for InterLeaf TPS:
-#
-0	string		=\210OPS	Interleaf saved data
-0	string		=<!OPS		Interleaf document text
->5	string		,\ Version\ =	\b, version
->>17	string		>\0		%.3s
-
-#------------------------------------------------------------------------------
-# island:  file(1) magic for IslandWite/IslandDraw, from SunOS 5.5.1
-# "/etc/magic":
-# From: guy@netapp.com (Guy Harris)
-#
-4	string		pgscriptver	IslandWrite document
-13	string		DrawFile	IslandDraw document
-
-
-#------------------------------------------------------------------------------
-# ispell:  file(1) magic for ispell
-#
-# Ispell 3.0 has a magic of 0x9601 and ispell 3.1 has 0x9602.  This magic
-# will match 0x9600 through 0x9603 in *both* little endian and big endian.
-# (No other current magic entries collide.)
-#
-# Updated by Daniel Quinlan (quinlan@yggdrasil.com)
-#
-0	leshort&0xFFFC	0x9600		little endian ispell
->0	byte		0		hash file (?),
->0	byte		1		3.0 hash file,
->0	byte		2		3.1 hash file,
->0	byte		3		hash file (?),
->2	leshort		0x00		8-bit, no capitalization, 26 flags
->2	leshort		0x01		7-bit, no capitalization, 26 flags
->2	leshort		0x02		8-bit, capitalization, 26 flags
->2	leshort		0x03		7-bit, capitalization, 26 flags
->2	leshort		0x04		8-bit, no capitalization, 52 flags
->2	leshort		0x05		7-bit, no capitalization, 52 flags
->2	leshort		0x06		8-bit, capitalization, 52 flags
->2	leshort		0x07		7-bit, capitalization, 52 flags
->2	leshort		0x08		8-bit, no capitalization, 128 flags
->2	leshort		0x09		7-bit, no capitalization, 128 flags
->2	leshort		0x0A		8-bit, capitalization, 128 flags
->2	leshort		0x0B		7-bit, capitalization, 128 flags
->2	leshort		0x0C		8-bit, no capitalization, 256 flags
->2	leshort		0x0D		7-bit, no capitalization, 256 flags
->2	leshort		0x0E		8-bit, capitalization, 256 flags
->2	leshort		0x0F		7-bit, capitalization, 256 flags
->4	leshort		>0		and %d string characters
-0	beshort&0xFFFC	0x9600		big endian ispell
->1	byte		0		hash file (?),
->1	byte		1		3.0 hash file,
->1	byte		2		3.1 hash file,
->1	byte		3		hash file (?),
->2	beshort		0x00		8-bit, no capitalization, 26 flags
->2	beshort		0x01		7-bit, no capitalization, 26 flags
->2	beshort		0x02		8-bit, capitalization, 26 flags
->2	beshort		0x03		7-bit, capitalization, 26 flags
->2	beshort		0x04		8-bit, no capitalization, 52 flags
->2	beshort		0x05		7-bit, no capitalization, 52 flags
->2	beshort		0x06		8-bit, capitalization, 52 flags
->2	beshort		0x07		7-bit, capitalization, 52 flags
->2	beshort		0x08		8-bit, no capitalization, 128 flags
->2	beshort		0x09		7-bit, no capitalization, 128 flags
->2	beshort		0x0A		8-bit, capitalization, 128 flags
->2	beshort		0x0B		7-bit, capitalization, 128 flags
->2	beshort		0x0C		8-bit, no capitalization, 256 flags
->2	beshort		0x0D		7-bit, no capitalization, 256 flags
->2	beshort		0x0E		8-bit, capitalization, 256 flags
->2	beshort		0x0F		7-bit, capitalization, 256 flags
->4	beshort		>0		and %d string characters
-# ispell 4.0 hash files  kromJx <kromJx@crosswinds.net>
-# Ispell 4.0
-0       string          ISPL            ispell
->4      long            x               hash file version %d,
->8      long            x               lexletters %d,
->12     long            x               lexsize %d,
->16     long            x               hashsize %d,
->20     long            x               stblsize %d
-#------------------------------------------------------------
-# Java ByteCode and Mach-O binaries (e.g., Mac OS X) use the
-# same magic number, 0xcafebabe, so they are both handled
-# in the entry called "cafebabe".
-#------------------------------------------------------------
-# Java serialization
-# From Martin Pool (m.pool@pharos.com.au)
-0	beshort		0xaced		Java serialization data
->2	beshort		>0x0004		\b, version %d
-
-0	belong		0xfeedfeed	Java KeyStore
-!:mime	application/x-java-keystore
-0	belong		0xcececece	Java JCE KeyStore
-!:mime	application/x-java-jce-keystore
-
-# Dalvik .dex format. http://retrodev.com/android/dexformat.html
-# From <mkf@google.com> "Mike Fleming"
-0	string	dex\n
->0	regex	dex\n[0-9][0-9][0-9]\0	Dalvik dex file
->4	string	>000			version %s
-0	string	dey\n
->0	regex	dey\n[0-9][0-9][0-9]\0	Dalvik dex file (optimized for host)
->4	string	>000			version %s
-
-
-#------------------------------------------------------------------------------
-# JPEG images
-# SunOS 5.5.1 had
-#
-#	0	string		\377\330\377\340	JPEG file
-#	0	string		\377\330\377\356	JPG file
-#
-# both of which turn into "JPEG image data" here.
-#
-0	beshort		0xffd8		JPEG image data
-!:mime	image/jpeg
-!:apple	8BIMJPEG
-!:strength +1
->6	string		JFIF		\b, JFIF standard
-# The following added by Erik Rossen <rossen@freesurf.ch> 1999-09-06
-# in a vain attempt to add image size reporting for JFIF.  Note that these
-# tests are not fool-proof since some perfectly valid JPEGs are currently
-# impossible to specify in magic(4) format.
-# First, a little JFIF version info:
->>11	byte		x		\b %d.
->>12	byte		x		\b%02d
-# Next, the resolution or aspect ratio of the image:
-#>>13	byte		0		\b, aspect ratio
-#>>13	byte		1		\b, resolution (DPI)
-#>>13	byte		2		\b, resolution (DPCM)
-#>>4	beshort		x		\b, segment length %d
-# Next, show thumbnail info, if it exists:
->>18	byte		!0		\b, thumbnail %dx
->>>19	byte		x		\b%d
-
-# EXIF moved down here to avoid reporting a bogus version number,
-# and EXIF version number printing added.
-#   - Patrik R=E5dman <patrik+file-magic@iki.fi>
->6	string		Exif		\b, EXIF standard
-# Look for EXIF IFD offset in IFD 0, and then look for EXIF version tag in EXIF IFD.
-# All possible combinations of entries have to be enumerated, since no looping
-# is possible. And both endians are possible...
-# The combinations included below are from real-world JPEGs.
-# Little-endian
->>12	string		II		
-# IFD 0 Entry #5:
->>>70	leshort		0x8769          
-# EXIF IFD Entry #1:
->>>>(78.l+14)	leshort	0x9000		
->>>>>(78.l+23)	byte	x		%c
->>>>>(78.l+24)	byte	x		\b.%c
->>>>>(78.l+25)	byte	!0x30		\b%c
-# IFD 0 Entry #9:
->>>118	leshort		0x8769          
-# EXIF IFD Entry #3:
->>>>(126.l+38)	leshort	0x9000		
->>>>>(126.l+47)	byte	x		%c
->>>>>(126.l+48)	byte	x		\b.%c
->>>>>(126.l+49)	byte	!0x30		\b%c
-# IFD 0 Entry #10
->>>130	leshort		0x8769          
-# EXIF IFD Entry #3:
->>>>(138.l+38)	leshort	0x9000		
->>>>>(138.l+47)	byte	x		%c
->>>>>(138.l+48)	byte	x		\b.%c
->>>>>(138.l+49)	byte	!0x30		\b%c
-# EXIF IFD Entry #4:
->>>>(138.l+50)	leshort	0x9000		
->>>>>(138.l+59)	byte	x		%c
->>>>>(138.l+60)	byte	x		\b.%c
->>>>>(138.l+61)	byte	!0x30		\b%c
-# EXIF IFD Entry #5:
->>>>(138.l+62)	leshort	0x9000		
->>>>>(138.l+71)	byte	x		%c
->>>>>(138.l+72)	byte	x		\b.%c
->>>>>(138.l+73)	byte	!0x30		\b%c
-# IFD 0 Entry #11
->>>142	leshort		0x8769          
-# EXIF IFD Entry #3:
->>>>(150.l+38)	leshort	0x9000		
->>>>>(150.l+47)	byte	x		%c
->>>>>(150.l+48)	byte	x		\b.%c
->>>>>(150.l+49)	byte	!0x30		\b%c
-# EXIF IFD Entry #4:
->>>>(150.l+50)	leshort	0x9000		
->>>>>(150.l+59)	byte	x		%c
->>>>>(150.l+60)	byte	x		\b.%c
->>>>>(150.l+61)	byte	!0x30		\b%c
-# EXIF IFD Entry #5:
->>>>(150.l+62)	leshort	0x9000		
->>>>>(150.l+71)	byte	x		%c
->>>>>(150.l+72)	byte	x		\b.%c
->>>>>(150.l+73)	byte	!0x30		\b%c
-# Big-endian
->>12	string		MM		
-# IFD 0 Entry #9:
->>>118	beshort		0x8769          
-# EXIF IFD Entry #1:
->>>>(126.L+14)	beshort	0x9000		
->>>>>(126.L+23)	byte	x		%c
->>>>>(126.L+24)	byte	x		\b.%c
->>>>>(126.L+25)	byte	!0x30		\b%c
-# EXIF IFD Entry #3:
->>>>(126.L+38)	beshort	0x9000		
->>>>>(126.L+47)	byte	x		%c
->>>>>(126.L+48)	byte	x		\b.%c
->>>>>(126.L+49)	byte	!0x30		\b%c
-# IFD 0 Entry #10
->>>130	beshort		0x8769          
-# EXIF IFD Entry #3:
->>>>(138.L+38)	beshort	0x9000		
->>>>>(138.L+47)	byte	x		%c
->>>>>(138.L+48)	byte	x		\b.%c
->>>>>(138.L+49)	byte	!0x30		\b%c
-# EXIF IFD Entry #5:
->>>>(138.L+62)	beshort	0x9000		
->>>>>(138.L+71)	byte	x		%c
->>>>>(138.L+72)	byte	x		\b.%c
->>>>>(138.L+73)	byte	!0x30		\b%c
-# IFD 0 Entry #11
->>>142	beshort		0x8769          
-# EXIF IFD Entry #4:
->>>>(150.L+50)	beshort	0x9000		
->>>>>(150.L+59)	byte	x		%c
->>>>>(150.L+60)	byte	x		\b.%c
->>>>>(150.L+61)	byte	!0x30		\b%c
-# Here things get sticky.  We can do ONE MORE marker segment with
-# indirect addressing, and that's all.  It would be great if we could
-# do pointer arithemetic like in an assembler language.  Christos?
-# And if there was some sort of looping construct to do searches, plus a few
-# named accumulators, it would be even more effective...
-# At least we can show a comment if no other segments got inserted before:
->(4.S+5)	byte		0xFE
->>(4.S+8)	string		>\0		\b, comment: "%s"
-# FIXME: When we can do non-byte counted strings, we can use that to get
-# the string's count, and fix Debian bug #283760
-#>(4.S+5)	byte		0xFE		\b, comment
-#>>(4.S+6)	beshort		x		\b length=%d
-#>>(4.S+8)	string		>\0		\b, "%s"
-# Or, we can show the encoding type (I've included only the three most common)
-# and image dimensions if we are lucky and the SOFn (image segment) is here:
->(4.S+5)	byte		0xC0		\b, baseline
->>(4.S+6)	byte		x		\b, precision %d
->>(4.S+7)	beshort		x		\b, %dx
->>(4.S+9)	beshort		x		\b%d
->(4.S+5)	byte		0xC1		\b, extended sequential
->>(4.S+6)	byte		x		\b, precision %d
->>(4.S+7)	beshort		x		\b, %dx
->>(4.S+9)	beshort		x		\b%d
->(4.S+5)	byte		0xC2		\b, progressive
->>(4.S+6)	byte		x		\b, precision %d
->>(4.S+7)	beshort		x		\b, %dx
->>(4.S+9)	beshort		x		\b%d
-# I've commented-out quantisation table reporting.  I doubt anyone cares yet.
-#>(4.S+5)	byte		0xDB		\b, quantisation table
-#>>(4.S+6)	beshort		x		\b length=%d
-#>14	beshort		x		\b, %d x
-#>16	beshort		x		\b %d
-
-# HSI is Handmade Software's proprietary JPEG encoding scheme
-0	string		hsi1		JPEG image data, HSI proprietary
-
-# From: David Santinoli <david@santinoli.com>
-0	string		\x00\x00\x00\x0C\x6A\x50\x20\x20\x0D\x0A\x87\x0A	JPEG 2000 image data
-
-# Type: JPEG 2000 codesream
-# From: Mathieu Malaterre <mathieu.malaterre@gmail.com>
-0	belong		0xff4fff51						JPEG 2000 codestream
-45	beshort		0xff52
-
-#------------------------------------------------------------------------------
-# karma:  file(1) magic for Karma data files
-#
-# From <rgooch@atnf.csiro.au>
-
-0	string		KarmaRHD Version	Karma Data Structure Version
->16	belong		x		%lu
-
-#------------------------------------------------------------------------------
-# kde:  file(1) magic for KDE
-
-0		string	[KDE\ Desktop\ Entry]	KDE desktop entry
-!:mime	application/x-kdelnk
-0		string	#\ KDE\ Config\ File	KDE config file
-!:mime	application/x-kdelnk
-0		string	#\ xmcd	xmcd database file for kscd
-!:mime	text/x-xmcd
-#------------------------------------------------------------------------------
-# Type: Google KML, formerly Keyhole Markup Language
-# Future development of this format has been handed
-# over to the Open Geospatial Consortium.
-# http://www.opengeospatial.org/standards/kml/
-# From: Asbjoern Sloth Toennesen <asbjorn@lila.io>
-0 string    \<?xml
->20  search/400 \ xmlns= 
->>&0 regex ['"]http://earth.google.com/kml Google KML document
-!:mime application/vnd.google-earth.kml+xml
->>>&1 string 2.0' \b, version 2.0
->>>&1 string 2.1' \b, version 2.1
->>>&1 string 2.2' \b, version 2.2
-
-#------------------------------------------------------------------------------
-# Type: OpenGIS KML, formerly Keyhole Markup Language
-# This standard is maintained by the
-# Open Geospatial Consortium.
-# http://www.opengeospatial.org/standards/kml/
-# From: Asbjoern Sloth Toennesen <asbjorn@lila.io>
->>&0 regex ['"]http://www.opengis.net/kml OpenGIS KML document
-!:mime application/vnd.google-earth.kml+xml
->>>&1 string 2.2 \b, version 2.2
-
-#------------------------------------------------------------------------------
-# Type: Google KML Archive (ZIP based) 
-# http://code.google.com/apis/kml/documentation/kml_tut.html
-# From: Asbjoern Sloth Toennesen <asbjorn@lila.io>
-0 string    PK\003\004
->4  byte    0x14
->>30  string doc.kml Compressed Google KML Document, including resources.
-!:mime application/vnd.google-earth.kmz
-#------------------------------------------------------------------------------
-# DEC SRC Virtual Paper: Lectern files
-# Karl M. Hegbloom <karlheg@inetarena.com>
-0	string	lect	DEC SRC Virtual Paper Lectern file
-#------------------------------------------------------------------------------
-# lex:  file(1) magic for lex
-#
-#	derived empirically, your offsets may vary!
-0	search/100	yyprevious	C program text (from lex)
->3	search/1	>\0		 for %s
-# C program text from GNU flex, from Daniel Quinlan <quinlan@yggdrasil.com>
-0	search/100	generated\ by\ flex	C program text (from flex)
-# lex description file, from Daniel Quinlan <quinlan@yggdrasil.com>
-0	search/1	%{		lex description text
-
-#------------------------------------------------------------------------------
-# lif:  file(1) magic for lif
-#
-# (Daniel Quinlan <quinlan@yggdrasil.com>)
-#
-0	beshort		0x8000		lif file
-#------------------------------------------------------------------------------
-# linux:  file(1) magic for Linux files
-#
-# Values for Linux/i386 binaries, from Daniel Quinlan <quinlan@yggdrasil.com>
-# The following basic Linux magic is useful for reference, but using
-# "long" magic is a better practice in order to avoid collisions.
-#
-# 2	leshort		100		Linux/i386
-# >0	leshort		0407		impure executable (OMAGIC)
-# >0	leshort		0410		pure executable (NMAGIC)
-# >0	leshort		0413		demand-paged executable (ZMAGIC)
-# >0	leshort		0314		demand-paged executable (QMAGIC)
-#
-0	lelong		0x00640107	Linux/i386 impure executable (OMAGIC)
->16	lelong		0		\b, stripped
-0	lelong		0x00640108	Linux/i386 pure executable (NMAGIC)
->16	lelong		0		\b, stripped
-0	lelong		0x0064010b	Linux/i386 demand-paged executable (ZMAGIC)
->16	lelong		0		\b, stripped
-0	lelong		0x006400cc	Linux/i386 demand-paged executable (QMAGIC)
->16	lelong		0		\b, stripped
-#
-0	string		\007\001\000	Linux/i386 object file
->20	lelong		>0x1020		\b, DLL library
-# Linux-8086 stuff:
-0	string		\01\03\020\04	Linux-8086 impure executable
->28	long		!0		not stripped
-0	string		\01\03\040\04	Linux-8086 executable
->28	long		!0		not stripped
-#
-0	string		\243\206\001\0	Linux-8086 object file
-#
-0	string		\01\03\020\20	Minix-386 impure executable
->28	long		!0		not stripped
-0	string		\01\03\040\20	Minix-386 executable
->28	long		!0		not stripped
-# core dump file, from Bill Reynolds <bill@goshawk.lanl.gov>
-216	lelong		0421		Linux/i386 core file
->220	string		>\0		of '%s'
->200	lelong		>0		(signal %d)
-#
-# LILO boot/chain loaders, from Daniel Quinlan <quinlan@yggdrasil.com>
-# this can be overridden by the DOS executable (COM) entry
-2	string		LILO		Linux/i386 LILO boot/chain loader
-#
-# PSF fonts, from H. Peter Anvin <hpa@yggdrasil.com>
-0	leshort		0x0436		Linux/i386 PC Screen Font data,
->2	byte		0		256 characters, no directory,
->2	byte		1		512 characters, no directory,
->2	byte		2		256 characters, Unicode directory,
->2	byte		3		512 characters, Unicode directory,
->3	byte		>0		8x%d
-# Linux swap file, from Daniel Quinlan <quinlan@yggdrasil.com>
-4086	string		SWAP-SPACE	Linux/i386 swap file
-# From: Jeff Bailey <jbailey@ubuntu.com>
-# Linux swap file with swsusp1 image, from Jeff Bailey <jbailey@ubuntu.com>
-4076	string		SWAPSPACE2S1SUSPEND	Linux/i386 swap file (new style) with SWSUSP1 image
-# according to man page of mkswap (8) March 1999
-# volume label and UUID Russell Coker
-# http://etbe.coker.com.au/2008/07/08/label-vs-uuid-vs-device/
-4086	string		SWAPSPACE2	Linux/i386 swap file (new style),
->0x400	long		x		version %d (4K pages),
->0x404	long		x		size %d pages,
->1052	string		\0		no label,
->1052	string		>\0		LABEL=%s,
->0x40c	belong		x		UUID=%08x
->0x410	beshort		x		\b-%04x
->0x412	beshort		x		\b-%04x
->0x414	beshort		x		\b-%04x
->0x416	belong		x		\b-%08x
->0x41a	beshort		x		\b%04x
-# ECOFF magic for OSF/1 and Linux (only tested under Linux though)
-#
-#	from Erik Troan (ewt@redhat.com) examining od dumps, so this
-#		could be wrong
-#      updated by David Mosberger (davidm@azstarnet.com) based on
-#      GNU BFD and MIPS info found below.
-#
-0	leshort		0x0183		ECOFF alpha
->24	leshort		0407		executable
->24	leshort		0410		pure
->24	leshort		0413		demand paged
->8	long		>0		not stripped
->8	long		0		stripped
->23	leshort		>0		- version %ld.
-#
-# Linux kernel boot images, from Albert Cahalan <acahalan@cs.uml.edu>
-# and others such as Axel Kohlmeyer <akohlmey@rincewind.chemie.uni-ulm.de>
-# and Nicol�s Lichtmaier <nick@debian.org>
-# All known start with: b8 c0 07 8e d8 b8 00 90 8e c0 b9 00 01 29 f6 29
-# Linux kernel boot images (i386 arch) (Wolfram Kleff)
-514	string		HdrS		Linux kernel
->510	leshort		0xAA55		x86 boot executable
->>518	leshort		>0x1ff
->>>529	byte		0		zImage,
->>>529	byte		1		bzImage,
->>>(526.s+0x200) string	>\0		version %s,
->>498	leshort		1		RO-rootFS,
->>498	leshort		0		RW-rootFS,
->>508	leshort		>0		root_dev 0x%X,
->>502	leshort		>0		swap_dev 0x%X,
->>504	leshort		>0		RAMdisksize %u KB,
->>506	leshort		0xFFFF		Normal VGA
->>506	leshort		0xFFFE		Extended VGA
->>506	leshort		0xFFFD		Prompt for Videomode
->>506	leshort		>0		Video mode %d
-# This also matches new kernels, which were caught above by "HdrS".
-0		belong	0xb8c0078e	Linux kernel
->0x1e3		string	Loading		version 1.3.79 or older
->0x1e9		string	Loading		from prehistoric times
-
-# System.map files - Nicol�s Lichtmaier <nick@debian.org>
-8	search/1	\ A\ _text	Linux kernel symbol map text
-
-# LSM entries - Nicol�s Lichtmaier <nick@debian.org>
-0	search/1	Begin3	Linux Software Map entry text
-0	search/1	Begin4	Linux Software Map entry text (new format)
-
-# From Matt Zimmerman, enhanced for v3 by Matthew Palmer
-0	belong	0x4f4f4f4d	User-mode Linux COW file
->4	belong	<3		\b, version %d
->>8	string	>\0		\b, backing file %s
->4	belong	>2		\b, version %d
->>32	string	>\0		\b, backing file %s
-
-############################################################################
-# Linux kernel versions
-
-0		string		\xb8\xc0\x07\x8e\xd8\xb8\x00\x90	Linux
->497		leshort		0		x86 boot sector
->>514		belong		0x8e	of a kernel from the dawn of time!
->>514		belong		0x908ed8b4	version 0.99-1.1.42
->>514		belong		0x908ed8b8	for memtest86
-
->497		leshort		!0		x86 kernel
->>504		leshort		>0		RAMdisksize=%u KB
->>502		leshort		>0		swap=0x%X
->>508		leshort		>0		root=0x%X
->>>498		leshort		1		\b-ro
->>>498		leshort		0		\b-rw
->>506		leshort		0xFFFF		vga=normal
->>506		leshort		0xFFFE		vga=extended
->>506		leshort		0xFFFD		vga=ask
->>506		leshort		>0		vga=%d
->>514		belong		0x908ed881	version 1.1.43-1.1.45
->>514		belong		0x15b281cd
->>>0xa8e	belong		0x55AA5a5a	version 1.1.46-1.2.13,1.3.0
->>>0xa99	belong		0x55AA5a5a	version 1.3.1,2
->>>0xaa3	belong		0x55AA5a5a	version 1.3.3-1.3.30
->>>0xaa6	belong		0x55AA5a5a	version 1.3.31-1.3.41
->>>0xb2b	belong		0x55AA5a5a	version 1.3.42-1.3.45
->>>0xaf7	belong		0x55AA5a5a	version 1.3.46-1.3.72
->>514		string		HdrS
->>>518		leshort		>0x1FF
->>>>529		byte		0		\b, zImage
->>>>529		byte		1		\b, bzImage
->>>>(526.s+0x200) string 	>\0		\b, version %s
-
-# Linux boot sector thefts.
-0		belong		0xb8c0078e	Linux
->0x1e6		belong		0x454c4b53	ELKS Kernel
->0x1e6		belong		!0x454c4b53	style boot sector
-
-############################################################################
-# Linux 8086 executable
-0	lelong&0xFF0000FF 0xC30000E9	Linux-Dev86 executable, headerless
->5	string		.		
->>4	string		>\0		\b, libc version %s
-
-0	lelong&0xFF00FFFF 0x4000301	Linux-8086 executable
->2	byte&0x01	!0		\b, unmapped zero page
->2	byte&0x20	0		\b, impure
->2	byte&0x20	!0
->>2	byte&0x10	!0		\b, A_EXEC
->2	byte&0x02	!0		\b, A_PAL
->2	byte&0x04	!0		\b, A_NSYM
->2	byte&0x08	!0		\b, A_STAND
->2	byte&0x40	!0		\b, A_PURE
->2	byte&0x80	!0		\b, A_TOVLY
->28     long            !0              \b, not stripped
->37	string		.		
->>36	string		>\0		\b, libc version %s
-
-# 0	lelong&0xFF00FFFF 0x10000301	ld86 I80386 executable
-# 0	lelong&0xFF00FFFF 0xB000301	ld86 M68K executable
-# 0	lelong&0xFF00FFFF 0xC000301	ld86 NS16K executable
-# 0	lelong&0xFF00FFFF 0x17000301	ld86 SPARC executable
-
-# SYSLINUX boot logo files (from 'ppmtolss16' sources)
-# http://syslinux.zytor.com/
-#
-0	lelong	=0x1413f33d		SYSLINUX' LSS16 image data
->4	leshort	x			\b, width %d
->6	leshort	x			\b, height %d
-
-0	string	OOOM			User-Mode-Linux's Copy-On-Write disk image
->4	belong	x			version %d
-
-# SE Linux policy database
-# From: Mike Frysinger <vapier@gentoo.org>
-0	lelong	0xf97cff8c		SE Linux policy
->16	lelong	x			v%d
->20	lelong	1			MLS
->24	lelong	x			%d symbols
->28	lelong	x			%d ocons
-
-# Linux Logical Volume Manager (LVM) 
-# Emmanuel VARAGNAT <emmanuel.varagnat@guzu.net>
-#
-# System ID, UUID and volume group name are 128 bytes long
-# but they should never be full and initialized with zeros...
-#
-# LVM1
-#
-0x0	string	HM\001		LVM1 (Linux Logical Volume Manager), version 1
->0x12c	string	>\0		, System ID: %s
-
-0x0	string	HM\002		LVM1 (Linux Logical Volume Manager), version 2
->0x12c	string	>\0		, System ID: %s
-
-#  LVM2
-#
-# It seems that the label header can be in one the four first sector
-# of the disk... (from _find_labeller in lib/label/label.c of LVM2)
-#
-# 0x200 seems to be the common case
-
-0x218		 string	LVM2\ 001	LVM2 (Linux Logical Volume Manager)
-# read the offset to add to the start of the header, and the header
-# start in 0x200
->(0x214.l+0x200) string	>\0		, UUID: %s
-
-0x018		 string	LVM2\ 001	LVM2 (Linux Logical Volume Manager)
->(0x014.l)	 string	>\0		, UUID: %s
-
-0x418		 string	LVM2\ 001	LVM2 (Linux Logical Volume Manager)
->(0x414.l+0x400) string	>\0		, UUID: %s
-
-0x618		 string	LVM2\ 001	LVM2 (Linux Logical Volume Manager)
->(0x614.l+0x600) string	>\0		, UUID: %s
-
-# LVM snapshot
-# from Jason Farrel
-0	string	SnAp	LVM Snapshot (CopyOnWrite store)
->4	lelong	!0	- valid,
->4	lelong	0	- invalid,
->8	lelong	x	version %d,
->12	lelong	x	chunk_size %d
-
-# SE Linux policy database
-0	lelong	0xf97cff8c		SE Linux policy
->16	lelong	x			v%d
->20	lelong	1			MLS
->24	lelong	x			%d symbols
->28	lelong	x			%d ocons
-
-# LUKS: Linux Unified Key Setup, On-Disk Format, http://luks.endorphin.org/spec
-# Anthon van der Neut (anthon@mnt.org)
-0	string	LUKS\xba\xbe	LUKS encrypted file,
->6	beshort x		ver %d
->8	string	x		[%s,
->40	string	x		%s,
->72	string	x		%s]
->168	string	x		UUID: %s
-
-
-# Summary: Xen saved domain file
-# Created by: Radek Vokal <rvokal@redhat.com>
-0	string		LinuxGuestRecord	Xen saved domain
->20	search/256	(name			
->>&1	string		x			(name %s)
-
-# Type: Xen, the virtual machine monitor
-# From: Radek Vokal <rvokal@redhat.com>
-0	string		LinuxGuestRecord	Xen saved domain
-#>2	regex		\(name\ [^)]*\)		%s
->20	search/256	(name			(name
->>&1	string		x			%s...)
-#------------------------------------------------------------------------------
-# lisp:  file(1) magic for lisp programs
-#
-# various lisp types, from Daniel Quinlan (quinlan@yggdrasil.com)
-
-# updated by Joerg Jenderek
-# GRR: This lot is too weak
-#0	string	;;			
-# windows INF files often begin with semicolon and use CRLF as line end
-# lisp files are mainly created on unix system with LF as line end
-#>2	search/4096	!\r		Lisp/Scheme program text
-#>2	search/4096	\r		Windows INF file
-
-0	search/4096	(if\ 			Lisp/Scheme program text
-!:mime	text/x-lisp
-0	search/4096	(setq\ 			Lisp/Scheme program text
-!:mime	text/x-lisp
-0	search/4096	(defvar\ 		Lisp/Scheme program text
-!:mime	text/x-lisp
-0	search/4096	(defparam\ 		Lisp/Scheme program text
-!:mime	text/x-lisp
-0	search/4096	(defun\  		Lisp/Scheme program text
-!:mime	text/x-lisp
-0	search/4096	(autoload\ 		Lisp/Scheme program text
-!:mime	text/x-lisp
-0	search/4096	(custom-set-variables\ 	Lisp/Scheme program text
-!:mime	text/x-lisp
-
-# Emacs 18 - this is always correct, but not very magical.
-0	string	\012(			Emacs v18 byte-compiled Lisp data
-!:mime	application/x-elc
-# Emacs 19+ - ver. recognition added by Ian Springer
-# Also applies to XEmacs 19+ .elc files; could tell them apart with regexs
-# - Chris Chittleborough <cchittleborough@yahoo.com.au>
-0	string	;ELC	
->4	byte	>18			
->4	byte    <32			Emacs/XEmacs v%d byte-compiled Lisp data
-!:mime	application/x-elc		
-
-# Files produced by CLISP Common Lisp From: Bruno Haible <haible@ilog.fr>
-0	string	(SYSTEM::VERSION\040'	CLISP byte-compiled Lisp program (pre 2004-03-27)
-0	string	(|SYSTEM|::|VERSION|\040'	CLISP byte-compiled Lisp program text
-
-0	long	0x70768BD2		CLISP memory image data
-0	long	0xD28B7670		CLISP memory image data, other endian
-
-#.com and .bin for MIT scheme 
-0	string	\372\372\372\372	MIT scheme (library?)
-
-# From: David Allouche <david@allouche.net>
-0	search/1	\<TeXmacs|	TeXmacs document text
-!:mime	text/texmacs
-
-#------------------------------------------------------------------------------
-# llvm:  file(1) magic for LLVM byte-codes
-# URL:  http://llvm.org/docs/BitCodeFormat.html
-# From: Al Stone <ahs3@fc.hp.com>
-
-0	string	llvm	LLVM byte-codes, uncompressed
-0	string	llvc0	LLVM byte-codes, null compression
-0	string	llvc1	LLVM byte-codes, gzip compression
-0	string	llvc2	LLVM byte-codes, bzip2 compression
-0	string	\xde\xc0\x17\x0b	LLVM bitcode, wrapper
-0       string	BC\xc0\xde	LLVM bitcode
-#------------------------------------------------------------------------------
-# lua:  file(1) magic for Lua scripting language
-# URL:  http://www.lua.org/
-# From: Reuben Thomas <rrt@sc3d.org>, Seo Sanghyeon <tinuviel@sparcs.kaist.ac.kr>
-
-# Lua scripts
-0	search/1/b	#!\ /usr/bin/lua	Lua script text executable
-!:mime	text/x-lua
-0	search/1/b	#!\ /usr/local/bin/lua	Lua script text executable
-!:mime	text/x-lua
-0	search/1	#!/usr/bin/env\ lua	Lua script text executable
-!:mime	text/x-lua
-0	search/1	#!\ /usr/bin/env\ lua	Lua script text executable
-!:mime	text/x-lua
-
-# Lua bytecode
-0	string		\033Lua			Lua bytecode,
->4	byte		0x50			version 5.0
->4	byte		0x51			version 5.1
-
-#------------------------------------------------------------------------------
-# luks:  file(1) magic for Linux Unified Key Setup
-# URL:	http://luks.endorphin.org/spec
-# From:	Anthon van der Neut <anthon@mnt.org>
-
-0	string		LUKS\xba\xbe	LUKS encrypted file,
->6	beshort		x		ver %d
->8	string		x		[%s,
->40	string		x		%s,
->72	string		x		%s]
->168	string		x		UUID: %s
-#------------------------------------------------------------
-# Mach has two magic numbers, 0xcafebabe and 0xfeedface.
-# Unfortunately the first, cafebabe, is shared with
-# Java ByteCode, so they are both handled in the file "cafebabe".
-# The "feedface" ones are handled herein.
-#------------------------------------------------------------
-0	lelong&0xfffffffe	0xfeedface	Mach-O
->0	byte		0xcf		64-bit
->12	lelong		1		object
->12	lelong		2		executable
->12	lelong		3		fixed virtual memory shared library
->12	lelong		4		core
->12	lelong		5		preload executable
->12	lelong		6		dynamically linked shared library
->12	lelong		7		dynamic linker
->12	lelong		8		bundle
->12	lelong		9		dynamically linked shared library stub
->12	lelong		>9
->>12	lelong		x		filetype=%ld
->4	lelong		<0
->>4	lelong		x		architecture=%ld
->4	lelong		1		vax
->4	lelong		2		romp
->4	lelong		3		architecture=3
->4	lelong		4		ns32032
->4	lelong		5		ns32332
->4	lelong		6		m68k
->4	lelong		7		i386
->4	lelong		8		mips
->4	lelong		9		ns32532
->4	lelong		10		architecture=10
->4	lelong		11		hppa
->4	lelong		12		acorn
->4	lelong		13		m88k
->4	lelong		14		sparc
->4	lelong		15		i860-big
->4	lelong		16		i860
->4	lelong		17		rs6000
->4	lelong		18		ppc
->4	lelong		16777234	ppc64
->4	lelong		>16777234
->>4	lelong		x		architecture=%ld
-#
-0	belong&0xfffffffe	0xfeedface	Mach-O
->3	byte		0xcf		64-bit
->12	belong		1		object
->12	belong		2		executable
->12	belong		3		fixed virtual memory shared library
->12	belong		4		core
->12	belong		5		preload executable
->12	belong		6               dynamically linked shared library
->12	belong		7               dynamic linker
->12	belong		8		bundle
->12	belong		9		dynamically linked shared library stub
->12	belong		>9
->>12	belong		x		filetype=%ld
->4	belong		<0
->>4	belong		x		architecture=%ld
->4	belong		1		vax
->4	belong		2		romp
->4	belong		3		architecture=3
->4	belong		4		ns32032
->4	belong		5		ns32332
->4	belong		6		for m68k architecture
-# from NeXTstep 3.0 <mach/machine.h>
-# i.e. mc680x0_all, ignore
-# >>8	belong		1		(mc68030)
->>8	belong		2		(mc68040)
->>8	belong		3		(mc68030 only)
->4	belong		7		i386
->4	belong		8		mips
->4	belong		9		ns32532
->4	belong		10		architecture=10
->4	belong		11		hppa
->4	belong		12		acorn
->4	belong		13		m88k
->4	belong		14		sparc
->4	belong		15		i860-big
->4	belong		16		i860
->4	belong		17		rs6000
->4	belong		18		ppc
->4	belong		16777234	ppc64
->4	belong		>16777234
->>4	belong		x		architecture=%ld
-
-#------------------------------------------------------------------------------
-# macintosh description
-#
-# BinHex is the Macintosh ASCII-encoded file format (see also "apple")
-# Daniel Quinlan, quinlan@yggdrasil.com
-11	string	must\ be\ converted\ with\ BinHex	BinHex binary text
-!:mime	application/mac-binhex40
->41	string	x					\b, version %.3s
-
-# Stuffit archives are the de facto standard of compression for Macintosh
-# files obtained from most archives. (franklsm@tuns.ca)
-0	string		SIT!			StuffIt Archive (data)
-!:mime	application/x-stuffit
-!:apple	SIT!SIT!
->2	string		x			: %s
-0	string		SITD			StuffIt Deluxe (data)
->2	string		x			: %s
-0	string		Seg			StuffIt Deluxe Segment (data)
->2	string		x			: %s
-
-# Newer StuffIt archives (grant@netbsd.org)
-0	string		StuffIt			StuffIt Archive
-!:mime	application/x-stuffit
-!:apple	SIT!SIT!
-#>162	string		>0			: %s
-
-# Macintosh Applications and Installation binaries (franklsm@tuns.ca)
-# GRR: Too weak
-#0	string		APPL			Macintosh Application (data)
-#>2	string		x			\b: %s
-
-# Macintosh System files (franklsm@tuns.ca)
-# GRR: Too weak
-#0	string		zsys			Macintosh System File (data)
-#0	string		FNDR			Macintosh Finder (data)
-#0	string		libr			Macintosh Library (data)
-#>2	string		x			: %s
-#0	string		shlb			Macintosh Shared Library (data)
-#>2	string		x			: %s
-#0	string		cdev			Macintosh Control Panel (data)
-#>2	string		x			: %s
-#0	string		INIT			Macintosh Extension (data)
-#>2	string		x			: %s
-#0	string		FFIL			Macintosh Truetype Font (data)
-#>2	string		x			: %s
-#0	string		LWFN			Macintosh Postscript Font (data)
-#>2	string		x			: %s
-
-# Additional Macintosh Files (franklsm@tuns.ca)
-# GRR: Too weak
-#0	string		PACT			Macintosh Compact Pro Archive (data)
-#>2	string		x			: %s
-#0	string		ttro			Macintosh TeachText File (data)
-#>2	string		x			: %s
-#0	string		TEXT			Macintosh TeachText File (data)
-#>2	string		x			: %s
-#0	string		PDF			Macintosh PDF File (data)
-#>2	string		x			: %s
-
-# MacBinary format (Eric Fischer, enf@pobox.com)
-#
-# Unfortunately MacBinary doesn't really have a magic number prior
-# to the MacBinary III format.  The checksum is really the way to
-# do it, but the magic file format isn't up to the challenge.
-#
-# 0	byte		0
-# 1	byte				# filename length
-# 2	string				# filename
-# 65    string				# file type
-# 69	string				# file creator
-# 73	byte				# Finder flags
-# 74	byte		0
-# 75	beshort				# vertical posn in window
-# 77	beshort				# horiz posn in window
-# 79	beshort				# window or folder ID
-# 81    byte				# protected?
-# 82	byte		0
-# 83	belong				# length of data segment
-# 87	belong				# length of resource segment
-# 91	belong				# file creation date
-# 95	belong				# file modification date
-# 99	beshort				# length of comment after resource
-# 101	byte				# new Finder flags
-# 102	string		mBIN		# (only in MacBinary III)
-# 106	byte				# char. code of file name
-# 107	byte				# still more Finder flags
-# 116	belong				# total file length
-# 120	beshort				# length of add'l header
-# 122	byte		129		# for MacBinary II
-# 122	byte		130		# for MacBinary III
-# 123	byte		129		# minimum version that can read fmt
-# 124	beshort				# checksum
-#
-# This attempts to use the version numbers as a magic number, requiring
-# that the first one be 0x80, 0x81, 0x82, or 0x83, and that the second
-# be 0x81.  This works for the files I have, but maybe not for everyone's.
-
-# Unfortunately, this magic is quite weak - MPi
-#122	beshort&0xFCFF	0x8081		Macintosh MacBinary data
-
-# MacBinary I doesn't have the version number field at all, but MacBinary II
-# has been in use since 1987 so I hope there aren't many really old files
-# floating around that this will miss.  The original spec calls for using
-# the nulls in 0, 74, and 82 as the magic number.
-#
-# Another possibility, that would also work for MacBinary I, is to use
-# the assumption that 65-72 will all be ASCII (0x20-0x7F), that 73 will
-# have bits 1 (changed), 2 (busy), 3 (bozo), and 6 (invisible) unset,
-# and that 74 will be 0.  So something like
-# 
-# 71 	belong&0x80804EFF 0x00000000 	Macintosh MacBinary data
-# 
-# >73	byte&0x01	0x01		\b, inited
-# >73	byte&0x02	0x02		\b, changed
-# >73	byte&0x04	0x04		\b, busy
-# >73	byte&0x08	0x08		\b, bozo
-# >73	byte&0x10	0x10		\b, system
-# >73	byte&0x10	0x20		\b, bundle
-# >73	byte&0x10	0x40		\b, invisible
-# >73	byte&0x10	0x80		\b, locked
-
-#>65	string		x		\b, type "%4.4s"
-
-#>65	string		8BIM		(PhotoShop)
-#>65	string		ALB3		(PageMaker 3)
-#>65	string		ALB4		(PageMaker 4)
-#>65	string		ALT3		(PageMaker 3)
-#>65	string		APPL		(application)
-#>65	string		AWWP		(AppleWorks word processor)
-#>65	string		CIRC		(simulated circuit)
-#>65	string		DRWG		(MacDraw)
-#>65	string		EPSF		(Encapsulated PostScript)
-#>65	string		FFIL		(font suitcase)
-#>65	string		FKEY		(function key)
-#>65	string		FNDR		(Macintosh Finder)
-#>65	string		GIFf		(GIF image)
-#>65	string		Gzip		(GNU gzip)
-#>65	string		INIT		(system extension)
-#>65	string		LIB\ 		(library)
-#>65	string		LWFN		(PostScript font)
-#>65	string		MSBC		(Microsoft BASIC)
-#>65	string		PACT		(Compact Pro archive)
-#>65	string		PDF\ 		(Portable Document Format)
-#>65	string		PICT		(picture)
-#>65	string		PNTG		(MacPaint picture)
-#>65	string		PREF		(preferences)
-#>65	string		PROJ		(Think C project)
-#>65	string		QPRJ		(Think Pascal project)
-#>65	string		SCFL		(Defender scores)
-#>65	string		SCRN		(startup screen)
-#>65	string		SITD		(StuffIt Deluxe)
-#>65	string		SPn3		(SuperPaint)
-#>65	string		STAK		(HyperCard stack)
-#>65	string		Seg\ 		(StuffIt segment)
-#>65	string		TARF		(Unix tar archive)
-#>65	string		TEXT		(ASCII)
-#>65	string		TIFF		(TIFF image)
-#>65	string		TOVF		(Eudora table of contents)
-#>65	string		WDBN		(Microsoft Word word processor)
-#>65	string		WORD		(MacWrite word processor)
-#>65	string		XLS\ 		(Microsoft Excel)
-#>65	string		ZIVM		(compress (.Z))
-#>65	string		ZSYS		(Pre-System 7 system file)
-#>65	string		acf3		(Aldus FreeHand)
-#>65	string		cdev		(control panel)
-#>65	string		dfil		(Desk Acessory suitcase)
-#>65	string		libr		(library)
-#>65	string		nX^d		(WriteNow word processor)
-#>65	string		nX^w		(WriteNow dictionary)
-#>65	string		rsrc		(resource)
-#>65	string		scbk		(Scrapbook)
-#>65	string		shlb		(shared library)
-#>65	string		ttro		(SimpleText read-only)
-#>65	string		zsys		(system file)
-
-#>69	string		x		\b, creator "%4.4s"
-
-# Somewhere, Apple has a repository of registered Creator IDs.  These are
-# just the ones that I happened to have files from and was able to identify.
-
-#>69	string		8BIM		(Adobe Photoshop)
-#>69	string		ALD3		(PageMaker 3)
-#>69	string		ALD4		(PageMaker 4)
-#>69	string		ALFA		(Alpha editor)
-#>69	string		APLS		(Apple Scanner)
-#>69	string		APSC		(Apple Scanner)
-#>69	string		BRKL		(Brickles)
-#>69	string		BTFT		(BitFont)
-#>69	string		CCL2 		(Common Lisp 2)
-#>69	string		CCL\ 		(Common Lisp)
-#>69	string		CDmo		(The Talking Moose)
-#>69	string		CPCT		(Compact Pro)
-#>69	string		CSOm		(Eudora)
-#>69	string		DMOV		(Font/DA Mover)
-#>69	string		DSIM		(DigSim)
-#>69	string		EDIT		(Macintosh Edit)
-#>69	string		ERIK		(Macintosh Finder)
-#>69	string		EXTR		(self-extracting archive)
-#>69	string		Gzip		(GNU gzip)
-#>69	string		KAHL		(Think C)
-#>69	string		LWFU		(LaserWriter Utility)
-#>69	string		LZIV		(compress)
-#>69	string		MACA		(MacWrite)
-#>69	string		MACS		(Macintosh operating system)
-#>69	string		MAcK		(MacKnowledge terminal emulator)
-#>69	string		MLND		(Defender)
-#>69	string		MPNT		(MacPaint)
-#>69	string		MSBB		(Microsoft BASIC (binary))
-#>69	string		MSWD		(Microsoft Word)
-#>69	string		NCSA		(NCSA Telnet)
-#>69	string		PJMM		(Think Pascal)
-#>69	string		PSAL		(Hunt the Wumpus)
-#>69	string		PSI2		(Apple File Exchange)
-#>69	string		R*ch		(BBEdit)
-#>69	string		RMKR		(Resource Maker)
-#>69	string		RSED		(Resource Editor)
-#>69	string		Rich		(BBEdit)
-#>69	string		SIT!		(StuffIt)
-#>69	string		SPNT		(SuperPaint)
-#>69	string		Unix		(NeXT Mac filesystem)
-#>69	string		VIM!		(Vim editor)
-#>69	string		WILD		(HyperCard)
-#>69	string		XCEL		(Microsoft Excel)
-#>69	string		aCa2		(Fontographer)
-#>69	string		aca3		(Aldus FreeHand)
-#>69	string		dosa		(Macintosh MS-DOS file system)
-#>69	string		movr		(Font/DA Mover)
-#>69	string		nX^n		(WriteNow)
-#>69	string		pdos		(Apple ProDOS file system)
-#>69	string		scbk		(Scrapbook)
-#>69	string		ttxt		(SimpleText)
-#>69	string		ufox		(Foreign File Access)
-
-# Just in case...
-
-102	string		mBIN		MacBinary III data with surprising version number
-
-# sas magic from Bruce Foster (bef@nwu.edu)
-#
-#0	string		SAS		SAS
-#>8	string		x		%s
-0	string		SAS		SAS
->24	string		DATA		data file
->24	string		CATALOG		catalog
->24	string		INDEX		data file index
->24	string		VIEW		data view
-# sas 7+ magic from Reinhold Koch (reinhold.koch@roche.com)
-#
-0x54    string          SAS             SAS 7+
->0x9C   string          DATA            data file
->0x9C   string          CATALOG         catalog
->0x9C   string          INDEX           data file index
->0x9C   string          VIEW            data view
-
-# spss magic for SPSS system and portable files, 
-#	 from Bruce Foster (bef@nwu.edu).
-
-0	long		0xc1e2c3c9	SPSS Portable File
->40	string 		x		%s
-
-0	string		$FL2		SPSS System File
->24	string		x		%s
-
-# Macintosh filesystem data
-# From "Tom N Harris" <telliamed@mac.com>
-# Fixed HFS+ and Partition map magic: Ethan Benson <erbenson@alaska.net>
-# The MacOS epoch begins on 1 Jan 1904 instead of 1 Jan 1970, so these
-# entries depend on the data arithmetic added after v.35
-# There's also some Pascal strings in here, ditto...
-
-# The boot block signature, according to IM:Files, is 
-# "for HFS volumes, this field always contains the value 0x4C4B."
-# But if this is true for MFS or HFS+ volumes, I don't know.
-# Alternatively, the boot block is supposed to be zeroed if it's
-# unused, so a simply >0 should suffice.
-
-0x400	beshort			0xD2D7		Macintosh MFS data
->0	beshort			0x4C4B		(bootable)
->0x40a	beshort			&0x8000		(locked)
->0x402	beldate-0x7C25B080	x		created: %s,
->0x406	beldate-0x7C25B080	>0		last backup: %s,
->0x414	belong			x		block size: %d,
->0x412	beshort			x		number of blocks: %d,
->0x424	pstring			x		volume name: %s
-
-# "BD" is has many false positives
-#0x400	beshort			0x4244		Macintosh HFS data
-#>0	beshort			0x4C4B		(bootable)
-#>0x40a	beshort			&0x8000		(locked)
-#>0x40a	beshort			^0x0100		(mounted)
-#>0x40a	beshort			&0x0200		(spared blocks)
-#>0x40a	beshort			&0x0800		(unclean)
-#>0x47C	beshort			0x482B		(Embedded HFS+ Volume)
-#>0x402	beldate-0x7C25B080	x		created: %s,
-#>0x406	beldate-0x7C25B080	x		last modified: %s,
-#>0x440	beldate-0x7C25B080	>0		last backup: %s,
-#>0x414	belong			x		block size: %d,
-#>0x412	beshort			x		number of blocks: %d,
-#>0x424	pstring			x		volume name: %s
-
-0x400	beshort			0x482B		Macintosh HFS Extended
->&0	beshort			x		version %d data
->0	beshort			0x4C4B		(bootable)
->0x404	belong			^0x00000100	(mounted)
->&2	belong			&0x00000200	(spared blocks)
->&2	belong			&0x00000800	(unclean)
->&2	belong			&0x00008000	(locked)
->&6	string			x		last mounted by: '%.4s',
-# really, that should be treated as a belong and we print a string
-# based on the value. TN1150 only mentions '8.10' for "MacOS 8.1"
->&14	beldate-0x7C25B080	x		created: %s,
-# only the creation date is local time, all other timestamps in HFS+ are UTC.
->&18	bedate-0x7C25B080	x		last modified: %s,
->&22	bedate-0x7C25B080	>0		last backup: %s,
->&26	bedate-0x7C25B080	>0		last checked: %s,
->&38	belong			x		block size: %d,
->&42	belong			x		number of blocks: %d,
->&46	belong			x		free blocks: %d
-
-# I don't think this is really necessary since it doesn't do much and 
-# anything with a valid driver descriptor will also have a valid
-# partition map
-#0		beshort		0x4552		Apple Device Driver data
-#>&24		beshort		=1		\b, MacOS
-
-# Is that the partition type a cstring or a pstring? Well, IM says "strings 
-# shorter than 32 bytes must be terminated with NULL" so I'll treat it as a 
-# cstring. Of course, partitions can contain more than four entries, but 
-# what're you gonna do?
-# GRR: This magic is too weak, it is just "PM"
-#0x200		beshort		0x504D		Apple Partition data
-#>0x2		beshort		x		(block size: %d):
-#>0x230		string		x		first type: %s,
-#>0x210		string		x		name: %s,
-#>0x254		belong		x		number of blocks: %d,
-#>0x400		beshort		0x504D		
-#>>0x430		string		x		second type: %s,
-#>>0x410		string		x		name: %s,
-#>>0x454		belong		x		number of blocks: %d,
-#>>0x600		beshort		0x504D
-#>>>0x630	string		x		third type: %s,
-#>>>0x610	string		x		name: %s,
-#>>>0x654	belong		x		number of blocks: %d,
-#>>0x800		beshort		0x504D		
-#>>>0x830	string		x		fourth type: %s,
-#>>>0x810	string		x		name: %s,
-#>>>0x854	belong		x		number of blocks: %d,
-#>>>0xa00	beshort		0x504D		
-#>>>>0xa30	string		x		fifth type: %s,
-#>>>>0xa10	string		x		name: %s,
-#>>>>0xa54	belong		x		number of blocks: %d
-#>>>0xc00	beshort		0x504D
-#>>>>0xc30	string		x		sixth type: %s,
-#>>>>0xc10	string		x		name: %s,
-#>>>>0xc54	belong		x		number of blocks: %d
-## AFAIK, only the signature is different
-#0x200		beshort		0x5453		Apple Old Partition data
-#>0x2		beshort		x		block size: %d,
-#>0x230		string		x		first type: %s,
-#>0x210		string		x		name: %s,
-#>0x254		belong		x		number of blocks: %d,
-#>0x400		beshort		0x504D		
-#>>0x430		string		x		second type: %s,
-#>>0x410		string		x		name: %s,
-#>>0x454		belong		x		number of blocks: %d,
-#>>0x800		beshort		0x504D		
-#>>>0x830	string		x		third type: %s,
-#>>>0x810	string		x		name: %s,
-#>>>0x854	belong		x		number of blocks: %d,
-#>>>0xa00	beshort		0x504D		
-#>>>>0xa30	string		x		fourth type: %s,
-#>>>>0xa10	string		x		name: %s,
-#>>>>0xa54	belong		x		number of blocks: %d
-
-# From: Remi Mommsen <mommsen@slac.stanford.edu>
-0		string		BOMStore	Mac OS X bill of materials (BOM) file
-
-#------------------------------------------------------------------------------
-# magic:  file(1) magic for magic files
-#
-0	string		#\ Magic	magic text file for file(1) cmd
-0	lelong		0xF11E041C	magic binary file for file(1) cmd
->4	lelong		x		(version %d) (little endian)
-0	belong		0xF11E041C	magic binary file for file(1) cmd
->4	belong		x		(version %d) (big endian)
-#------------------------------------------------------------------------------
-# mail.news:  file(1) magic for mail and news
-#
-# Unfortunately, saved netnews also has From line added in some news software.
-#0	string		From 		mail text
-# There are tests to ascmagic.c to cope with mail and news.
-0	string		Relay-Version: 	old news text
-!:mime	message/rfc822
-0	string		#!\ rnews	batched news text
-!:mime	message/rfc822
-0	string		N#!\ rnews	mailed, batched news text
-!:mime	message/rfc822
-0	string		Forward\ to 	mail forwarding text
-!:mime	message/rfc822
-0	string		Pipe\ to 	mail piping text
-!:mime	message/rfc822
-0	string		Return-Path:	smtp mail text
-!:mime	message/rfc822
-0	string		Path:		news text
-!:mime	message/news
-0	string		Xref:		news text
-!:mime	message/news
-0	string		From:		news or mail text
-!:mime	message/rfc822
-0	string		Article 	saved news text
-!:mime	message/news
-0	string		BABYL		Emacs RMAIL text
-0	string		Received:	RFC 822 mail text
-!:mime	message/rfc822
-0	string		MIME-Version:	MIME entity text
-#0	string		Content-	MIME entity text
-
-# TNEF files...
-0	lelong		0x223E9F78	Transport Neutral Encapsulation Format
-
-# From: Kevin Sullivan <ksulliva@psc.edu>
-0	string		*mbx*		MBX mail folder
-
-# From: Simon Matter <simon.matter@invoca.ch>
-0	string		\241\002\213\015skiplist\ file\0\0\0	Cyrus skiplist DB
-
-# JAM(mbp) Fidonet message area databases
-# JHR file
-0	string	JAM\0			JAM message area header file
->12	leshort >0			(%d messages)
-
-# Squish Fidonet message area databases
-# SQD file (requires at least one message in the area)
-# XXX: Weak magic
-#256	leshort	0xAFAE4453		Squish message area data file
-#>4	leshort	>0			(%d messages)
-
-#0	string		\<!--\ MHonArc		text/html; x-type=mhonarc
-
-#------------------------------------------------------------------------------
-# maple:  file(1) magic for maple files
-# "H. Nanosecond" <aldomel@ix.netcom.com>
-# Maple V release 4, a multi-purpose math program
-#
-
-# maple library .lib
-0	string	\000MVR4\nI	MapleVr4 library
-
-# .ind
-# no magic for these :-(
-# they are compiled indexes for maple files
-
-# .hdb 
-0	string	\000\004\000\000	Maple help database
-
-# .mhp
-# this has the form <PACKAGE=name>
-0	string	\<PACKAGE=	Maple help file
-0	string	\<HELP\ NAME=	Maple help file
-0	string	\n\<HELP\ NAME=	Maple help file with extra carriage return at start (yuck)
-#0	string	#\ Newton	Maple help file, old style
-0	string	#\ daub	Maple help file, old style
-#0	string	#===========	Maple help file, old style
-
-# .mws
-0	string	\000\000\001\044\000\221	Maple worksheet
-#this is anomalous
-0	string	WriteNow\000\002\000\001\000\000\000\000\100\000\000\000\000\000	Maple worksheet, but weird
-# this has the form {VERSION 2 3 "IBM INTEL NT" "2.3" }\n
-# that is {VERSION major_version miunor_version computer_type version_string}
-0	string	{VERSION\ 	Maple worksheet
->9	string	>\0	version %.1s.
->>>11	string	>\0	%.1s
-
-# .mps
-0	string	\0\0\001$	Maple something
-# from byte 4 it is either 'nul E' or 'soh R'
-# I think 'nul E' means a file that was saved as  a different name
-# a sort of revision marking
-# 'soh R' means new 
->4	string	\000\105	An old revision
->4	string	\001\122	The latest save
-
-# .mpl
-# some of these are the same as .mps above
-#0000000 000 000 001 044 000 105 same as .mps
-#0000000 000 000 001 044 001 122 same as .mps
-
-0	string	#\n##\ <SHAREFILE=	Maple something
-0	string	\n#\n##\ <SHAREFILE=	Maple something
-0	string	##\ <SHAREFILE=	Maple something
-0	string	#\r##\ <SHAREFILE=	Maple something
-0	string	\r#\r##\ <SHAREFILE=	Maple something
-0	string	#\ \r##\ <DESCRIBE>	Maple something anomalous.
-
-#------------------------------------------------------------------------------
-# mathcad:  file(1) magic for Mathcad documents
-# URL:	http://www.mathsoft.com/
-# From:	Josh Triplett <josh@freedesktop.org>
-
-0	string	.MCAD\t		Mathcad document
-#------------------------------------------------------------------------------
-# mathematica:  file(1) magic for mathematica files
-# "H. Nanosecond" <aldomel@ix.netcom.com>
-# Mathematica a multi-purpose math program
-# versions 2.2 and 3.0
-
-#mathematica .mb
-0	string	\064\024\012\000\035\000\000\000	Mathematica version 2 notebook
-0	string	\064\024\011\000\035\000\000\000	Mathematica version 2 notebook
-
-# .ma
-# multiple possibilites:
-
-0	string	(*^\n\n::[\011frontEndVersion\ =\ 	Mathematica notebook
-#>41	string	>\0	%s
-
-#0	string	(*^\n\n::[\011palette	Mathematica notebook version 2.x
-
-#0	string	(*^\n\n::[\011Information	Mathematica notebook version 2.x
-#>675	string	>\0	%s #doesn't work well
-
-# there may be 'cr' instread of 'nl' in some does this matter?
-
-# generic:
-0	string	(*^\r\r::[\011	Mathematica notebook version 2.x
-0	string	(*^\r\n\r\n::[\011	Mathematica notebook version 2.x
-0	string	(*^\015			Mathematica notebook version 2.x
-0	string	(*^\n\r\n\r::[\011	Mathematica notebook version 2.x
-0	string	(*^\r::[\011	Mathematica notebook version 2.x
-0	string	(*^\r\n::[\011	Mathematica notebook version 2.x
-0	string	(*^\n\n::[\011	Mathematica notebook version 2.x
-0	string	(*^\n::[\011	Mathematica notebook version 2.x
-
-
-# Mathematica .mx files
-
-#0	string	(*This\ is\ a\ Mathematica\ binary\ dump\ file.\ It\ can\ be\ loaded\ with\ Get.*)	Mathematica binary file
-0	string	(*This\ is\ a\ Mathematica\ binary\ 	Mathematica binary file
-#>71	string \000\010\010\010\010\000\000\000\000\000\000\010\100\010\000\000\000	
-# >71... is optional
->88	string	>\0	from %s
-
-
-# Mathematica files PBF:
-# 115 115 101 120 102 106 000 001 000 000 000 203 000 001 000
-0	string	MMAPBF\000\001\000\000\000\203\000\001\000	Mathematica PBF (fonts I think)
-
-# .ml files  These are menu resources I think
-# these start with "[0-9][0-9][0-9]\ A~[0-9][0-9][0-9]\ 
-# how to put that into a magic rule?
-4	string	\ A~	MAthematica .ml file
-
-# .nb files
-#too long 0	string	(***********************************************************************\n\n\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ Mathematica-Compatible Notebook	Mathematica 3.0 notebook
-0	string	(***********************	Mathematica 3.0 notebook
-
-# other (* matches it is a comment start in these langs
-# GRR: Too weak; also matches other languages e.g. ML
-#0	string	(*	Mathematica, or Pascal, Modula-2 or 3 code text
-
-#########################
-# MatLab v5
-0       string  MATLAB  Matlab v5 mat-file
->126    short   0x494d  (big endian)
->>124   beshort x       version 0x%04x
->126    short   0x4d49  (little endian)
->>124   leshort x       version 0x%04x
-
-
-#------------------------------------------------------------------------------
-# matroska:  file(1) magic for Matroska files
-#
-# See http://www.matroska.org/
-#
-
-# EBML id:
-0		belong		0x1a45dfa3
-# DocType id:
->5		beshort		0x4282
-# DocType contents:
->>8		string		matroska	Matroska data
-
-#------------------------------------------------------------------------------
-# Mavroyanopoulos Nikos <nmav@hellug.gr>
-# mcrypt:   file(1) magic for mcrypt 2.2.x;
-0	string		\0m\3		mcrypt 2.5 encrypted data,
->4	string		>\0		algorithm: %s,
->>&1	leshort		>0		keysize: %d bytes,
->>>&0	string		>\0		mode: %s,
-
-0	string		\0m\2		mcrypt 2.2 encrypted data,
->3	byte		0		algorithm: blowfish-448,
->3	byte		1		algorithm: DES,
->3	byte		2		algorithm: 3DES,
->3	byte		3		algorithm: 3-WAY,
->3	byte		4		algorithm: GOST,
->3	byte		6		algorithm: SAFER-SK64,
->3	byte		7		algorithm: SAFER-SK128,
->3	byte		8		algorithm: CAST-128,
->3	byte		9		algorithm: xTEA,
->3	byte		10		algorithm: TWOFISH-128,
->3	byte		11		algorithm: RC2,
->3	byte		12		algorithm: TWOFISH-192,
->3	byte		13		algorithm: TWOFISH-256,
->3	byte		14		algorithm: blowfish-128,
->3	byte		15		algorithm: blowfish-192,
->3	byte		16		algorithm: blowfish-256,
->3	byte		100		algorithm: RC6,
->3	byte		101		algorithm: IDEA,
->4	byte		0		mode: CBC,
->4	byte		1		mode: ECB,
->4	byte		2		mode: CFB,
->4	byte		3		mode: OFB,
->4	byte		4		mode: nOFB,
->5	byte		0		keymode: 8bit
->5	byte		1		keymode: 4bit
->5	byte		2		keymode: SHA-1 hash
->5	byte		3		keymode: MD5 hash
-
-#------------------------------------------------------------------------------
-# mercurial:  file(1) magic for Mercurial changeset bundles
-# http://www.selenic.com/mercurial/wiki/
-#
-# Jesse Glick (jesse.glick@sun.com)
-#
-
-0	string		HG10		Mercurial changeset bundle
->4	string		UN		(uncompressed)
->4	string		GZ		(gzip compressed)
->4	string		BZ		(bzip2 compressed)
-#------------------------------------------------------------------------------
-# mime:  file(1) magic for MIME encoded files
-#
-0	string		Content-Type:\ 
->14	string		>\0		%s
-0	string		Content-Type:
->13	string		>\0		%s
-
-#------------------------------------------------------------------------------
-# mips:  file(1) magic for Silicon Graphics (MIPS, IRIS, IRIX, etc.)
-#                         Dec Ultrix (MIPS)
-# all of SGI's *current* machines and OSes run in big-endian mode on the
-# MIPS machines, as far as I know.
-#
-# XXX - what is the blank "-" line?
-#
-# kbd file definitions
-0	string	kbd!map		kbd map file
->8	byte	>0		Ver %d:
->10	short	>0		with %d table(s)
-0	belong	0407		old SGI 68020 executable
-0	belong	0410		old SGI 68020 pure executable
-0	beshort	0x8765		disk quotas file
-0	beshort	0x0506		IRIS Showcase file
->2	byte	0x49		-
->3	byte	x		- version %ld
-0	beshort	0x0226		IRIS Showcase template
->2	byte	0x63		-
->3	byte	x		- version %ld
-0	belong	0x5343464d	IRIS Showcase file
->4	byte	x		- version %ld
-0	belong	0x5443464d	IRIS Showcase template
->4	byte	x		- version %ld
-0	belong	0xdeadbabe	IRIX Parallel Arena
->8	belong	>0		- version %ld
-#
-0	beshort	0x0160		MIPSEB ECOFF executable
->20	beshort	0407		(impure)
->20	beshort	0410		(swapped)
->20	beshort	0413		(paged)
->8	belong	>0		not stripped
->8	belong	0		stripped
->22	byte	x		- version %ld
->23	byte	x		.%ld
-#
-0	beshort	0x0162		MIPSEL-BE ECOFF executable
->20	beshort	0407		(impure)
->20	beshort	0410		(swapped)
->20	beshort	0413		(paged)
->8	belong	>0		not stripped
->8	belong	0		stripped
->23	byte	x		- version %d
->22	byte	x		.%ld
-#
-0	beshort	0x6001		MIPSEB-LE ECOFF executable
->20	beshort	03401		(impure)
->20	beshort	04001		(swapped)
->20	beshort	05401		(paged)
->8	belong	>0		not stripped
->8	belong	0		stripped
->23	byte	x		- version %d
->22	byte	x		.%ld
-#
-0	beshort	0x6201		MIPSEL ECOFF executable
->20	beshort	03401		(impure)
->20	beshort	04001		(swapped)
->20	beshort	05401		(paged)
->8	belong	>0		not stripped
->8	belong	0		stripped
->23	byte	x		- version %ld
->22	byte	x		.%ld
-#
-# MIPS 2 additions
-#
-0	beshort	0x0163		MIPSEB MIPS-II ECOFF executable
->20	beshort	0407		(impure)
->20	beshort	0410		(swapped)
->20	beshort	0413		(paged)
->8	belong	>0		not stripped
->8	belong	0		stripped
->22	byte	x		- version %ld
->23	byte	x		.%ld
-#
-0	beshort	0x0166		MIPSEL-BE MIPS-II ECOFF executable
->20	beshort	0407		(impure)
->20	beshort	0410		(swapped)
->20	beshort	0413		(paged)
->8	belong	>0		not stripped
->8	belong	0		stripped
->22	byte	x		- version %ld
->23	byte	x		.%ld
-#
-0	beshort	0x6301		MIPSEB-LE MIPS-II ECOFF executable
->20	beshort	03401		(impure)
->20	beshort	04001		(swapped)
->20	beshort	05401		(paged)
->8	belong	>0		not stripped
->8	belong	0		stripped
->23	byte	x		- version %ld
->22	byte	x		.%ld
-#
-0	beshort	0x6601		MIPSEL MIPS-II ECOFF executable
->20	beshort	03401		(impure)
->20	beshort	04001		(swapped)
->20	beshort	05401		(paged)
->8	belong	>0		not stripped
->8	belong	0		stripped
->23	byte	x		- version %ld
->22	byte	x		.%ld
-#
-# MIPS 3 additions
-#
-0	beshort	0x0140		MIPSEB MIPS-III ECOFF executable
->20	beshort	0407		(impure)
->20	beshort	0410		(swapped)
->20	beshort	0413		(paged)
->8	belong	>0		not stripped
->8	belong	0		stripped
->22	byte	x		- version %ld
->23	byte	x		.%ld
-#
-0	beshort	0x0142		MIPSEL-BE MIPS-III ECOFF executable
->20	beshort	0407		(impure)
->20	beshort	0410		(swapped)
->20	beshort	0413		(paged)
->8	belong	>0		not stripped
->8	belong	0		stripped
->22	byte	x		- version %ld
->23	byte	x		.%ld
-#
-0	beshort	0x4001		MIPSEB-LE MIPS-III ECOFF executable
->20	beshort	03401		(impure)
->20	beshort	04001		(swapped)
->20	beshort	05401		(paged)
->8	belong	>0		not stripped
->8	belong	0		stripped
->23	byte	x		- version %ld
->22	byte	x		.%ld
-#
-0	beshort	0x4201		MIPSEL MIPS-III ECOFF executable
->20	beshort	03401		(impure)
->20	beshort	04001		(swapped)
->20	beshort	05401		(paged)
->8	belong	>0		not stripped
->8	belong	0		stripped
->23	byte	x		- version %ld
->22	byte	x		.%ld
-#
-0	beshort	0x180		MIPSEB Ucode
-0	beshort	0x182		MIPSEL-BE Ucode
-# 32bit core file
-0	belong	0xdeadadb0	IRIX core dump
->4	belong	1		of
->16	string	>\0		'%s'
-# 64bit core file
-0	belong	0xdeadad40	IRIX 64-bit core dump
->4	belong	1		of
->16	string	>\0		'%s'
-# N32bit core file
-0       belong	0xbabec0bb	IRIX N32 core dump
->4      belong	1               of
->16     string	>\0             '%s'
-# New style crash dump file
-0	string	\x43\x72\x73\x68\x44\x75\x6d\x70	IRIX vmcore dump of
->36	string	>\0					'%s'
-# Trusted IRIX info
-0	string	SGIAUDIT	SGI Audit file
->8	byte	x		- version %d
->9	byte	x		.%ld
-#
-0	string	WNGZWZSC	Wingz compiled script
-0	string	WNGZWZSS	Wingz spreadsheet
-0	string	WNGZWZHP	Wingz help file
-#
-0	string	#Inventor V	IRIS Inventor 1.0 file
-0	string	#Inventor V2	Open Inventor 2.0 file
-# GLF is OpenGL stream encoding
-0	string	glfHeadMagic();		GLF_TEXT
-4	belong	0x7d000000		GLF_BINARY_LSB_FIRST
-4	belong	0x0000007d		GLF_BINARY_MSB_FIRST
-# GLS is OpenGL stream encoding; GLS is the successor of GLF
-0	string	glsBeginGLS(		GLS_TEXT
-4	belong	0x10000000		GLS_BINARY_LSB_FIRST
-4	belong	0x00000010		GLS_BINARY_MSB_FIRST
-
-#------------------------------------------------------------------------------
-# mirage:  file(1) magic for Mirage executables
-#
-# XXX - byte order?
-#
-0	long	31415		Mirage Assembler m.out executable
-#-----------------------------------------------------------------------------
-# misctools:  file(1) magic for miscellaneous UNIX tools.
-#
-0	search/1	%%!!			X-Post-It-Note text
-0	string/c	BEGIN:VCALENDAR		vCalendar calendar file
-0	string/c	BEGIN:VCARD		vCard visiting card
-!:mime	text/x-vcard
-
-# From: Alex Beregszaszi <alex@fsn.hu>
-4	string	gtktalog		GNOME Catalogue (gtktalog)
->13	string	>\0			version %s
-
-# Summary: Libtool library file
-# Extension: .la
-# Submitted by: Tomasz Trojanowski <tomek@uninet.com.pl>
-0	search/80	.la\ -\ a\ libtool\ library\ file	libtool library file
-
-# Summary: Libtool object file
-# Extension: .lo
-# Submitted by: Abel Cheung <abelcheung@gmail.com>
-0	search/80	.lo\ -\ a\ libtool\ object\ file	libtool object file
-
-#------------------------------------------------------------------------------
-# mkid:  file(1) magic for mkid(1) databases
-#
-# ID is the binary tags database produced by mkid(1).
-#
-# XXX - byte order?
-#
-0	string		\311\304	ID tags data
->2	short		>0		version %d
-
-#------------------------------------------------------------------------------
-# mlssa: file(1) magic for MLSSA datafiles
-#
-0		lelong		0xffffabcd	MLSSA datafile,
->4		leshort		x		algorithm %d,
->10		lelong		x		%d samples
-
-#------------------------------------------------------------------------------
-# mmdf:  file(1) magic for MMDF mail files
-#
-0	string	\001\001\001\001	MMDF mailbox
-#------------------------------------------------------------------------------
-# modem:  file(1) magic for modem programs
-#
-# From: Florian La Roche <florian@knorke.saar.de>
-1	string		PC\ Research,\ Inc	Digifax-G3-File
->29	byte		1			\b, fine resolution
->29	byte		0			\b, normal resolution
-
-0	short		0x0100		raw G3 data, byte-padded
-0	short		0x1400		raw G3 data
-#
-# Magic data for vgetty voice formats
-# (Martin Seine & Marc Eberhard)
-
-#
-# raw modem data version 1
-#
-0    string    RMD1      raw modem data
->4   string    >\0       (%s /
->20  short     >0        compression type 0x%04x)
-
-#
-# portable voice format 1
-#
-0    string    PVF1\n         portable voice format
->5   string    >\0       (binary %s)
-
-#
-# portable voice format 2
-#
-0    string    PVF2\n         portable voice format
->5   string >\0          (ascii %s)
-
-
-#------------------------------------------------------------------------------
-# motorola:  file(1) magic for Motorola 68K and 88K binaries
-#
-# 68K
-#
-0	beshort		0520		mc68k COFF
->18	beshort		^00000020	object
->18	beshort		&00000020	executable
->12	belong		>0		not stripped
->168	string		.lowmem		Apple toolbox
->20	beshort		0407		(impure)
->20	beshort		0410		(pure)
->20	beshort		0413		(demand paged)
->20	beshort		0421		(standalone)
-0	beshort		0521		mc68k executable (shared)
->12	belong		>0		not stripped
-0	beshort		0522		mc68k executable (shared demand paged)
->12	belong		>0		not stripped
-#
-# Motorola/UniSoft 68K Binary Compatibility Standard (BCS)
-#
-0	beshort		0554		68K BCS executable
-#
-# 88K
-#
-# Motorola/88Open BCS
-#
-0	beshort		0555		88K BCS executable
-#
-# Motorola S-Records, from Gerd Truschinski <gt@freebsd.first.gmd.de>
-0   string      S0          Motorola S-Record; binary data in text format
-
-# ATARI ST relocatable PRG
-#
-# from Oskar Schirmer <schirmer@scara.com> Feb 3, 2001
-# (according to Roland Waldi, Oct 21, 1987)
-# besides the magic 0x601a, the text segment size is checked to be
-# not larger than 1 MB (which is a lot on ST).
-# The additional 0x601b distinction I took from Doug Lee's magic.
-0	belong&0xFFFFFFF0	0x601A0000	Atari ST M68K contiguous executable
->2	belong			x		(txt=%ld,
->6	belong			x		dat=%ld,
->10	belong			x		bss=%ld,
->14	belong			x		sym=%ld)
-0	belong&0xFFFFFFF0	0x601B0000	Atari ST M68K non-contig executable
->2	belong			x		(txt=%ld,
->6	belong			x		dat=%ld,
->10	belong			x		bss=%ld,
->14	belong			x		sym=%ld)
-
-# Atari ST/TT... program format (sent by Wolfram Kleff <kleff@cs.uni-bonn.de>)
-0       beshort         0x601A          Atari 68xxx executable,
->2      belong          x               text len %lu,
->6      belong          x               data len %lu,
->10     belong          x               BSS len %lu,
->14     belong          x               symboltab len %lu,
->18     belong          0
->22     belong          &0x01           fastload flag,
->22     belong          &0x02           may be loaded to alternate RAM,
->22     belong          &0x04           malloc may be from alternate RAM,
->22     belong          x               flags: 0x%lX,
->26     beshort         0               no relocation tab
->26     beshort         !0              + relocation tab
->30     string          SFX             [Self-Extracting LZH SFX archive]
->38     string          SFX             [Self-Extracting LZH SFX archive]
->44     string          ZIP!            [Self-Extracting ZIP SFX archive]
-
-0       beshort         0x0064          Atari 68xxx CPX file
->8      beshort         x               (version %04lx)
-
-#------------------------------------------------------------------------------
-# mozilla:  file(1) magic for Mozilla XUL fastload files 
-# (XUL.mfasl and XPC.mfasl)
-# URL:	http://www.mozilla.org/
-# From:	Josh Triplett <josh@freedesktop.org>
-
-0	string	XPCOM\nMozFASL\r\n\x1A		Mozilla XUL fastload data
-
-#------------------------------------------------------------------------------
-# msdos:  file(1) magic for MS-DOS files
-#
-
-# .BAT files (Daniel Quinlan, quinlan@yggdrasil.com)
-# updated by Joerg Jenderek at Oct 2008
-0	string	@			
->1	string/cB	\ echo\ off	DOS batch file text
-!:mime	text/x-msdos-batch
->1	string/cB	echo\ off	DOS batch file text
-!:mime	text/x-msdos-batch
->1	string/cB	rem\ 		DOS batch file text
-!:mime	text/x-msdos-batch
->1	string/cB	set\ 		DOS batch file text
-!:mime	text/x-msdos-batch
-
-
-# OS/2 batch files are REXX. the second regex is a bit generic, oh well
-# the matched commands seem to be common in REXX and uncommon elsewhere
-100	search/0xffff   rxfuncadd
->100	regex/c =^[\ \t]{0,10}call[\ \t]{1,10}rxfunc	OS/2 REXX batch file text
-100	search/0xffff   say
->100	regex/c =^[\ \t]{0,10}say\ ['"]			OS/2 REXX batch file text
-
-0	leshort		0x14c	MS Windows COFF Intel 80386 object file
-#>4	ledate		x	stamp %s
-0	leshort		0x166	MS Windows COFF MIPS R4000 object file
-#>4	ledate		x	stamp %s
-0	leshort		0x184	MS Windows COFF Alpha object file
-#>4	ledate		x	stamp %s
-0	leshort		0x268	MS Windows COFF Motorola 68000 object file
-#>4	ledate		x	stamp %s
-0	leshort		0x1f0	MS Windows COFF PowerPC object file
-#>4	ledate		x	stamp %s
-0	leshort		0x290	MS Windows COFF PA-RISC object file
-#>4	ledate		x	stamp %s
-
-# XXX - according to Microsoft's spec, at an offset of 0x3c in a
-# PE-format executable is the offset in the file of the PE header;
-# unfortunately, that's a little-endian offset, and there's no way
-# to specify an indirect offset with a specified byte order.
-# So, for now, we assume the standard MS-DOS stub, which puts the
-# PE header at 0x80 = 128.
-#
-# Required OS version and subsystem version were 4.0 on some NT 3.51
-# executables built with Visual C++ 4.0, so it's not clear that
-# they're interesting.	The user version was 0.0, but there's
-# probably some linker directive to set it.  The linker version was
-# 3.0, except for one ".exe" which had it as 4.20 (same damn linker!).
-#
-# many of the compressed formats were extraced from IDARC 1.23 source code
-#
-0	string	MZ
-!:mime	application/x-dosexec
->0x18  leshort <0x40 MS-DOS executable
->0 string MZ\0\0\0\0\0\0\0\0\0\0PE\0\0 \b, PE for MS Windows
->>&18	leshort&0x2000	>0	(DLL)
->>&88	leshort		0	(unknown subsystem)
->>&88	leshort		1	(native)
->>&88	leshort		2	(GUI)
->>&88	leshort		3	(console)
->>&88	leshort		7	(POSIX)
->>&0	leshort		0x0	unknown processor
->>&0	leshort		0x14c	Intel 80386
->>&0	leshort		0x166	MIPS R4000
->>&0	leshort		0x184	Alpha
->>&0	leshort		0x268	Motorola 68000
->>&0	leshort		0x1f0	PowerPC
->>&0	leshort		0x290	PA-RISC
->>&18	leshort&0x0100	>0	32-bit
->>&18	leshort&0x1000	>0	system file
->>&228	lelong		>0	\b, Mono/.Net assembly
->>&0xf4 search/0x140 \x0\x40\x1\x0
->>>(&0.l+(4)) string MSCF \b, WinHKI CAB self-extracting archive
->30		string	Copyright\ 1989-1990\ PKWARE\ Inc.	Self-extracting PKZIP archive
-!:mime	application/zip
-# Is next line correct? One might expect "Corp." not "Copr." If it is right, add a note to that effect.
->30		string	PKLITE\ Copr.	Self-extracting PKZIP archive
-!:mime	application/zip
-
->0x18  leshort >0x3f
->>(0x3c.l) string PE\0\0 PE
->>>(0x3c.l+25) byte		1 \b32 executable
->>>(0x3c.l+25) byte		2 \b32+ executable
-# hooray, there's a DOS extender using the PE format, with a valid PE
-# executable inside (which just prints a message and exits if run in win)
->>>(0x3c.l+92)	leshort		<10
->>>>(8.s*16) string 32STUB for MS-DOS, 32rtm DOS extender
->>>>(8.s*16) string !32STUB for MS Windows
->>>>>(0x3c.l+22)	leshort&0x2000	>0	(DLL)
->>>>>(0x3c.l+92)	leshort		0	(unknown subsystem)
->>>>>(0x3c.l+92)	leshort		1	(native)
->>>>>(0x3c.l+92)	leshort		2	(GUI)
->>>>>(0x3c.l+92)	leshort		3	(console)
->>>>>(0x3c.l+92)	leshort		7	(POSIX)
->>>(0x3c.l+92)	leshort		10	(EFI application)
->>>(0x3c.l+92)	leshort		11	(EFI boot service driver)
->>>(0x3c.l+92)	leshort		12	(EFI runtime driver)
->>>(0x3c.l+92)	leshort		13	(XBOX)
->>>(0x3c.l+4)	leshort		0x0	unknown processor
->>>(0x3c.l+4)	leshort		0x14c	Intel 80386
->>>(0x3c.l+4)	leshort		0x166	MIPS R4000
->>>(0x3c.l+4)	leshort		0x184	Alpha
->>>(0x3c.l+4)	leshort		0x268	Motorola 68000
->>>(0x3c.l+4)	leshort		0x1f0	PowerPC
->>>(0x3c.l+4)	leshort		0x290	PA-RISC
->>>(0x3c.l+4)	leshort		0x200	Intel Itanium
->>>(0x3c.l+22)	leshort&0x0100	>0	32-bit
->>>(0x3c.l+22)	leshort&0x1000	>0	system file
->>>(0x3c.l+232) lelong	>0	Mono/.Net assembly
-
->>>>(0x3c.l+0xf8)	string		UPX0 \b, UPX compressed
->>>>(0x3c.l+0xf8)	search/0x140	PEC2 \b, PECompact2 compressed
->>>>(0x3c.l+0xf8)	search/0x140	UPX2
->>>>>(&0x10.l+(-4))	string		PK\3\4 \b, ZIP self-extracting archive (Info-Zip)
->>>>(0x3c.l+0xf8)	search/0x140	.idata
->>>>>(&0xe.l+(-4))	string		PK\3\4 \b, ZIP self-extracting archive (Info-Zip)
->>>>>(&0xe.l+(-4))	string		ZZ0 \b, ZZip self-extracting archive
->>>>>(&0xe.l+(-4))	string		ZZ1 \b, ZZip self-extracting archive
->>>>(0x3c.l+0xf8)	search/0x140	.rsrc
->>>>>(&0x0f.l+(-4))	string		a\\\4\5 \b, WinHKI self-extracting archive
->>>>>(&0x0f.l+(-4))	string		Rar! \b, RAR self-extracting archive
->>>>>(&0x0f.l+(-4))	search/0x3000	MSCF \b, InstallShield self-extracting archive
->>>>>(&0x0f.l+(-4))	search/32	Nullsoft \b, Nullsoft Installer self-extracting archive
->>>>(0x3c.l+0xf8)	search/0x140	.data
->>>>>(&0x0f.l)		string		WEXTRACT \b, MS CAB-Installer self-extracting archive
->>>>(0x3c.l+0xf8)	search/0x140	.petite\0 \b, Petite compressed
->>>>>(0x3c.l+0xf7)	byte		x
->>>>>>(&0x104.l+(-4))	string		=!sfx! \b, ACE self-extracting archive
->>>>(0x3c.l+0xf8)	search/0x140	.WISE \b, WISE installer self-extracting archive
->>>>(0x3c.l+0xf8)	search/0x140	.dz\0\0\0 \b, Dzip self-extracting archive
->>>>(0x3c.l+0xf8)	search/0x140	.reloc
->>>>>(&0xe.l+(-4))	search/0x180	PK\3\4 \b, ZIP self-extracting archive (WinZip)
-
->>>>&(0x3c.l+0xf8)	search/0x100	_winzip_ \b, ZIP self-extracting archive (WinZip)
->>>>&(0x3c.l+0xf8)	search/0x100	SharedD \b, Microsoft Installer self-extracting archive
->>>>0x30		string		Inno \b, InnoSetup self-extracting archive
-
->>(0x3c.l) string !PE\0\0 MS-DOS executable
-
->>(0x3c.l)		string		NE \b, NE
->>>(0x3c.l+0x36)	byte		0 (unknown OS)
->>>(0x3c.l+0x36)	byte		1 for OS/2 1.x
->>>(0x3c.l+0x36)	byte		2 for MS Windows 3.x
->>>(0x3c.l+0x36)	byte		3 for MS-DOS
->>>(0x3c.l+0x36)	byte		>3 (unknown OS)
->>>(0x3c.l+0x36)	byte		0x81 for MS-DOS, Phar Lap DOS extender
->>>(0x3c.l+0x0c)	leshort&0x8003	0x8002 (DLL)
->>>(0x3c.l+0x0c)	leshort&0x8003	0x8001 (driver)
->>>&(&0x24.s-1)		string		ARJSFX \b, ARJ self-extracting archive
->>>(0x3c.l+0x70)	search/0x80	WinZip(R)\ Self-Extractor \b, ZIP self-extracting archive (WinZip)
-
->>(0x3c.l)		string		LX\0\0 \b, LX
->>>(0x3c.l+0x0a)	leshort		<1 (unknown OS)
->>>(0x3c.l+0x0a)	leshort		1 for OS/2
->>>(0x3c.l+0x0a)	leshort		2 for MS Windows
->>>(0x3c.l+0x0a)	leshort		3 for DOS
->>>(0x3c.l+0x0a)	leshort		>3 (unknown OS)
->>>(0x3c.l+0x10)	lelong&0x28000	=0x8000 (DLL)
->>>(0x3c.l+0x10)	lelong&0x20000	>0 (device driver)
->>>(0x3c.l+0x10)	lelong&0x300	0x300 (GUI)
->>>(0x3c.l+0x10)	lelong&0x28300	<0x300 (console)
->>>(0x3c.l+0x08)	leshort		1 i80286
->>>(0x3c.l+0x08)	leshort		2 i80386
->>>(0x3c.l+0x08)	leshort		3 i80486
->>>(8.s*16)		string		emx \b, emx
->>>>&1			string		x %s
->>>&(&0x54.l-3)		string		arjsfx \b, ARJ self-extracting archive
-
-# MS Windows system file, supposedly a collection of LE executables
->>(0x3c.l)		string		W3 \b, W3 for MS Windows
-
->>(0x3c.l)		string		LE\0\0 \b, LE executable
->>>(0x3c.l+0x0a)	leshort		1
-# some DOS extenders use LE files with OS/2 header
->>>>0x240		search/0x100	DOS/4G for MS-DOS, DOS4GW DOS extender
->>>>0x240		search/0x200	WATCOM\ C/C++ for MS-DOS, DOS4GW DOS extender
->>>>0x440		search/0x100	CauseWay\ DOS\ Extender for MS-DOS, CauseWay DOS extender
->>>>0x40		search/0x40	PMODE/W for MS-DOS, PMODE/W DOS extender
->>>>0x40		search/0x40	STUB/32A for MS-DOS, DOS/32A DOS extender (stub)
->>>>0x40		search/0x80	STUB/32C for MS-DOS, DOS/32A DOS extender (configurable stub)
->>>>0x40		search/0x80	DOS/32A for MS-DOS, DOS/32A DOS extender (embedded)
-# this is a wild guess; hopefully it is a specific signature
->>>>&0x24		lelong		<0x50
->>>>>(&0x4c.l)		string		\xfc\xb8WATCOM
->>>>>>&0		search/8	3\xdbf\xb9 \b, 32Lite compressed
-# another wild guess: if real OS/2 LE executables exist, they probably have higher start EIP
-#>>>>(0x3c.l+0x1c)	lelong		>0x10000 for OS/2
-# fails with DOS-Extenders.
->>>(0x3c.l+0x0a)	leshort		2 for MS Windows
->>>(0x3c.l+0x0a)	leshort		3 for DOS
->>>(0x3c.l+0x0a)	leshort		4 for MS Windows (VxD)
->>>(&0x7c.l+0x26)	string		UPX \b, UPX compressed
->>>&(&0x54.l-3)		string		UNACE \b, ACE self-extracting archive
-
-# looks like ASCII, probably some embedded copyright message.
-# and definitely not NE/LE/LX/PE
->>0x3c		lelong	>0x20000000
->>>(4.s*512)	leshort !0x014c \b, MZ for MS-DOS
-# header data too small for extended executable
->2		long	!0
->>0x18		leshort <0x40
->>>(4.s*512)	leshort !0x014c
-
->>>>&(2.s-514)	string	!LE
->>>>>&-2	string	!BW \b, MZ for MS-DOS
->>>>&(2.s-514)	string	LE \b, LE
->>>>>0x240	search/0x100	DOS/4G for MS-DOS, DOS4GW DOS extender
-# educated guess since indirection is still not capable enough for complex offset
-# calculations (next embedded executable would be at &(&2*512+&0-2)
-# I suspect there are only LE executables in these multi-exe files
->>>>&(2.s-514)	string	BW
->>>>>0x240	search/0x100	DOS/4G ,\b LE for MS-DOS, DOS4GW DOS extender (embedded)
->>>>>0x240	search/0x100	!DOS/4G ,\b BW collection for MS-DOS
-
-# This sequence skips to the first COFF segment, usually .text
->(4.s*512)	leshort		0x014c \b, COFF
->>(8.s*16)	string		go32stub for MS-DOS, DJGPP go32 DOS extender
->>(8.s*16)	string		emx
->>>&1		string		x for DOS, Win or OS/2, emx %s
->>&(&0x42.l-3)	byte		x 
->>>&0x26	string		UPX \b, UPX compressed
-# and yet another guess: small .text, and after large .data is unusal, could be 32lite
->>&0x2c		search/0xa0	.text
->>>&0x0b	lelong		<0x2000
->>>>&0		lelong		>0x6000 \b, 32lite compressed
-
->(8.s*16) string $WdX \b, WDos/X DOS extender
-
-# .EXE formats (Greg Roelofs, newt@uchicago.edu)
-#
->0x35	string	\x8e\xc0\xb9\x08\x00\xf3\xa5\x4a\x75\xeb\x8e\xc3\x8e\xd8\x33\xff\xbe\x30\x00\x05 \b, aPack compressed
->0xe7	string	LH/2\ Self-Extract \b, %s
->0x1c	string	diet \b, diet compressed
->0x1c	string	LZ09 \b, LZEXE v0.90 compressed
->0x1c	string	LZ91 \b, LZEXE v0.91 compressed
->0x1c	string	tz \b, TinyProg compressed
->0x1e	string	PKLITE \b, %s compressed
->0x64	string	W\ Collis\0\0 \b, Compack compressed
->0x24	string	LHa's\ SFX \b, LHa self-extracting archive
-!:mime	application/x-lha
->0x24	string	LHA's\ SFX \b, LHa self-extracting archive
-!:mime	application/x-lha
->0x24	string	\ $ARX \b, ARX self-extracting archive
->0x24	string	\ $LHarc \b, LHarc self-extracting archive
->0x20	string	SFX\ by\ LARC \b, LARC self-extracting archive
->1638	string	-lh5- \b, LHa self-extracting archive v2.13S
->0x17888 string Rar! \b, RAR self-extracting archive
->0x40	string aPKG \b, aPackage self-extracting archive
-
->32	 string AIN
->>35	 string 2		\b, AIN 2.x compressed
->>35	 string <2		\b, AIN 1.x compressed
->>35	 string >2		\b, AIN 1.x compressed
->28	 string UC2X		\b, UCEXE compressed
->28	 string WWP\  		\b, WWPACK compressed
-
-# skip to the end of the exe
->(4.s*512)	long	x 
->>&(2.s-517)	byte	x 
->>>&0	string		PK\3\4 \b, ZIP self-extracting archive
->>>&0	string		Rar! \b, RAR self-extracting archive
->>>&0	string		=!\x11 \b, AIN 2.x self-extracting archive
->>>&0	string		=!\x12 \b, AIN 2.x self-extracting archive
->>>&0	string		=!\x17 \b, AIN 1.x self-extracting archive
->>>&0	string		=!\x18 \b, AIN 1.x self-extracting archive
->>>&7	search/400	**ACE** \b, ACE self-extracting archive
->>>&0	search/0x480	UC2SFX\ Header \b, UC2 self-extracting archive
-
->0x1c	string		RJSX \b, ARJ self-extracting archive
-# winarj stores a message in the stub instead of the sig in the MZ header
->0x20	search/0xe0	aRJsfX \b, ARJ self-extracting archive
-
-# a few unknown ZIP sfxes, no idea if they are needed or if they are
-# already captured by the generic patterns above
->0x7a		string		Windows\ self-extracting\ ZIP	\b, ZIP self-extracting archive
->(8.s*16)	search/0x20	PKSFX \b, ZIP self-extracting archive (PKZIP)
-# TODO: how to add this? >FileSize-34 string Windows\ Self-Installing\ Executable \b, ZIP self-extracting archive
-#
-
-# TELVOX Teleinformatica CODEC self-extractor for OS/2:
->49801	string	\x79\xff\x80\xff\x76\xff	\b, CODEC archive v3.21
->>49824 leshort		=1			\b, 1 file
->>49824 leshort		>1			\b, %u files
-
-# .COM formats (Daniel Quinlan, quinlan@yggdrasil.com)
-# Uncommenting only the first two lines will cover about 2/3 of COM files,
-# but it isn't feasible to match all COM files since there must be at least
-# two dozen different one-byte "magics".
-# test too generic ?
-0	byte		0xe9		DOS executable (COM)
->0x1FE leshort		0xAA55		\b, boot code
->6	string		SFX\ of\ LHarc	(%s)
-0	belong	0xffffffff		DOS executable (device driver)
-#CMD640X2.SYS
->10	string	>\x23			
->>10	string	!\x2e			
->>>17	string	<\x5B			
->>>>10	string	x			\b, name: %.8s
-#UDMA.SYS KEYB.SYS CMD640X2.SYS
->10	string	<\x41			
->>12	string	>\x40			
->>>10	string	!$			
->>>>12	string	x			\b, name: %.8s
-#BTCDROM.SYS ASPICD.SYS
->22	string	>\x40			
->>22	string	<\x5B			
->>>23	string	<\x5B			
->>>>22	string	x			\b, name: %.8s
-#ATAPICD.SYS
->76	string	\0			
->>77	string	>\x40			
->>>77	string	<\x5B			
->>>>77	string	x			\b, name: %.8s
-# test too generic ?
-0	byte		0x8c		DOS executable (COM)
-# updated by Joerg Jenderek at Oct 2008
-0	ulelong		0xffff10eb	DR-DOS executable (COM)
-# byte 0xeb conflicts with "sequent" magic leshort 0xn2eb
-0	ubeshort&0xeb8d	>0xeb00		
-# DR-DOS STACKER.COM SCREATE.SYS missed
->0	byte		0xeb		DOS executable (COM)
->>0x1FE leshort		0xAA55		\b, boot code
->>85	string		UPX		\b, UPX compressed
->>4	string		\ $ARX		\b, ARX self-extracting archive
->>4	string		\ $LHarc	\b, LHarc self-extracting archive
->>0x20e string		SFX\ by\ LARC	\b, LARC self-extracting archive
-# updated by Joerg Jenderek at Oct 2008
-#0	byte		0xb8		COM executable
-0	uleshort&0x80ff	0x00b8		
-# modified by Joerg Jenderek
->1	lelong		!0x21cd4cff	COM executable for DOS
-# http://syslinux.zytor.com/comboot.php
-# (32-bit COMBOOT) programs *.C32 contain 32-bit code and run in flat-memory 32-bit protected mode
-# start with assembler instructions mov eax,21cd4cffh
-0	uleshort&0xc0ff	0xc0b8		
->1	lelong		0x21cd4cff	COM executable (32-bit COMBOOT)
-0	string	\x81\xfc		
->4	string	\x77\x02\xcd\x20\xb9	
->>36	string	UPX!			FREE-DOS executable (COM), UPX compressed
-252	string Must\ have\ DOS\ version DR-DOS executable (COM)
-# added by Joerg Jenderek at Oct 2008
-# GRR search is not working
-#34	search/2	UPX!		FREE-DOS executable (COM), UPX compressed
-34	string	UPX!			FREE-DOS executable (COM), UPX compressed
-35	string	UPX!			FREE-DOS executable (COM), UPX compressed
-# GRR search is not working
-#2	search/28	\xcd\x21	COM executable for MS-DOS
-#WHICHFAT.cOM
-2	string	\xcd\x21		COM executable for DOS
-#DELTREE.cOM DELTREE2.cOM
-4	string	\xcd\x21		COM executable for DOS
-#IFMEMDSK.cOM ASSIGN.cOM COMP.cOM
-5	string	\xcd\x21		COM executable for DOS
-#DELTMP.COm HASFAT32.cOM
-7	string	\xcd\x21		
->0	byte	!0xb8			COM executable for DOS
-#COMP.cOM MORE.COm
-10	string	\xcd\x21		
->5	string	!\xcd\x21		COM executable for DOS
-#comecho.com
-13	string	\xcd\x21		COM executable for DOS
-#HELP.COm EDIT.coM
-18	string	\xcd\x21		COM executable for MS-DOS
-#NWRPLTRM.COm
-23	string	\xcd\x21		COM executable for MS-DOS
-#LOADFIX.cOm LOADFIX.cOm
-30	string	\xcd\x21		COM executable for MS-DOS
-#syslinux.com 3.11
-70	string	\xcd\x21		COM executable for DOS
-# many compressed/converted COMs start with a copy loop instead of a jump
-0x6	search/0xa	\xfc\x57\xf3\xa5\xc3	COM executable for MS-DOS
-0x6	search/0xa	\xfc\x57\xf3\xa4\xc3	COM executable for DOS
->0x18	search/0x10	\x50\xa4\xff\xd5\x73	\b, aPack compressed
-0x3c	string		W\ Collis\0\0		COM executable for MS-DOS, Compack compressed
-# FIXME: missing diet .com compression
-
-# miscellaneous formats
-0	string		LZ		MS-DOS executable (built-in)
-#0	byte		0xf0		MS-DOS program library data
-#
-
-# AAF files:
-# <stuartc@rd.bbc.co.uk> Stuart Cunningham
-0	string	\320\317\021\340\241\261\032\341AAFB\015\000OM\006\016\053\064\001\001\001\377			AAF legacy file using MS Structured Storage
->30	byte	9		(512B sectors)
->30	byte	12		(4kB sectors)
-0	string	\320\317\021\340\241\261\032\341\001\002\001\015\000\002\000\000\006\016\053\064\003\002\001\001			AAF file using MS Structured Storage
->30	byte	9		(512B sectors)
->30	byte	12		(4kB sectors)
-
-# Popular applications
-2080	string	Microsoft\ Word\ 6.0\ Document	%s
-!:mime	application/msword
-2080	string	Documento\ Microsoft\ Word\ 6 Spanish Microsoft Word 6 document data
-!:mime	application/msword
-# Pawel Wiecek <coven@i17linuxb.ists.pwr.wroc.pl> (for polish Word)
-2112	string	MSWordDoc			Microsoft Word document data
-!:mime	application/msword
-#
-0	belong	0x31be0000			Microsoft Word Document
-!:mime	application/msword
-#
-0	string	PO^Q`				Microsoft Word 6.0 Document
-!:mime	application/msword
-#
-0	string	\376\067\0\043			Microsoft Office Document
-!:mime	application/msword
-0	string	\333\245-\0\0\0			Microsoft Office Document
-!:mime	application/msword
-512	string		\354\245\301		Microsoft Word Document
-!:mime	application/msword
-#
-2080	string	Microsoft\ Excel\ 5.0\ Worksheet	%s
-!:mime	application/vnd.ms-excel
-
-2080	string	Foglio\ di\ lavoro\ Microsoft\ Exce	%s
-!:mime	application/vnd.ms-excel
-#
-# Pawel Wiecek <coven@i17linuxb.ists.pwr.wroc.pl> (for polish Excel)
-2114	string	Biff5		Microsoft Excel 5.0 Worksheet
-!:mime	application/vnd.ms-excel
-# Italian MS-Excel
-2121	string	Biff5		Microsoft Excel 5.0 Worksheet
-!:mime	application/vnd.ms-excel
-0	string	\x09\x04\x06\x00\x00\x00\x10\x00	Microsoft Excel Worksheet
-!:mime	application/vnd.ms-excel
-#
-0	belong	0x00001a00	Lotus 1-2-3
-!:mime	application/x-123
->4	belong	0x00100400	wk3 document data
->4	belong	0x02100400	wk4 document data
->4	belong	0x07800100	fm3 or fmb document data
->4	belong	0x07800000	fm3 or fmb document data
-#
-0	belong	0x00000200	Lotus 1-2-3
-!:mime	application/x-123
->4	belong	0x06040600	wk1 document data
->4	belong	0x06800200	fmt document data
-0	string		WordPro\0	Lotus WordPro
-!:mime	application/vnd.lotus-wordpro
-0	string		WordPro\r\373	Lotus WordPro
-!:mime	application/vnd.lotus-wordpro
-
-
-# Summary: Script used by InstallScield to uninstall applications
-# Extension: .isu
-# Submitted by: unknown
-# Modified by (1): Abel Cheung <abelcheung@gmail.com> (replace useless entry)
-0		string		\x71\xa8\x00\x00\x01\x02
->12		string		Stirling\ Technologies,		InstallShield Uninstall Script
-
-# Winamp .avs
-#0	string	Nullsoft\ AVS\ Preset\ \060\056\061\032 A plug in for Winamp ms-windows Freeware media player
-0	string	Nullsoft\ AVS\ Preset\ 	Winamp plug in
-
-# Windows Metafont .WMF
-0	string	\327\315\306\232	ms-windows metafont .wmf
-0	string	\002\000\011\000	ms-windows metafont .wmf
-0	string	\001\000\011\000	ms-windows metafont .wmf
-
-#tz3 files whatever that is (MS Works files)
-0	string	\003\001\001\004\070\001\000\000	tz3 ms-works file
-0	string	\003\002\001\004\070\001\000\000	tz3 ms-works file
-0	string	\003\003\001\004\070\001\000\000	tz3 ms-works file
-
-# PGP sig files .sig
-#0 string \211\000\077\003\005\000\063\237\127 065 to  \027\266\151\064\005\045\101\233\021\002 PGP sig
-0 string \211\000\077\003\005\000\063\237\127\065\027\266\151\064\005\045\101\233\021\002 PGP sig
-0 string \211\000\077\003\005\000\063\237\127\066\027\266\151\064\005\045\101\233\021\002 PGP sig
-0 string \211\000\077\003\005\000\063\237\127\067\027\266\151\064\005\045\101\233\021\002 PGP sig
-0 string \211\000\077\003\005\000\063\237\127\070\027\266\151\064\005\045\101\233\021\002 PGP sig
-0 string \211\000\077\003\005\000\063\237\127\071\027\266\151\064\005\045\101\233\021\002 PGP sig
-0 string \211\000\225\003\005\000\062\122\207\304\100\345\042 PGP sig
-
-# windows zips files .dmf
-0	string	MDIF\032\000\010\000\000\000\372\046\100\175\001\000\001\036\001\000 MS Windows special zipped file
-
-
-#ico files
-0	string	\102\101\050\000\000\000\056\000\000\000\000\000\000\000	Icon for MS Windows
-
-# Windows icons (Ian Springer <ips@fpk.hp.com>)
-0	string	\000\000\001\000	MS Windows icon resource
-!:mime	image/x-ico
->4	byte	1			- 1 icon
->4	byte	>1			- %d icons
->>6	byte	>0			\b, %dx
->>>7	byte	>0			\b%d
->>8	byte	0			\b, 256-colors
->>8	byte	>0			\b, %d-colors
-
-
-# .chr files
-0	string	PK\010\010BGI	Borland font 
->4	string	>\0	%s
-# then there is a copyright notice
-
-
-# .bgi files
-0	string	pk\010\010BGI	Borland device 
->4	string	>\0	%s
-# then there is a copyright notice
-
-
-# Windows Recycle Bin record file (named INFO2)
-# By Abel Cheung (abelcheung AT gmail dot com)
-# Version 4 always has 280 bytes (0x118) per record, version 5 has 800 bytes
-# Since Vista uses another structure, INFO2 structure probably won't change
-# anymore. Detailed analysis in:
-# http://www.cybersecurityinstitute.biz/downloads/INFO2.pdf
-0	lelong		0x00000004
->12	lelong		0x00000118	Windows Recycle Bin INFO2 file (Win98 or below)
-
-0	lelong		0x00000005
->12	lelong		0x00000320	Windows Recycle Bin INFO2 file (Win2k - WinXP)
-
-
-##### put in Either Magic/font or Magic/news
-# Acroread or something	 files wrongly identified as G3	 .pfm
-# these have the form \000 \001 any? \002 \000 \000
-# or \000 \001 any? \022 \000 \000
-0	belong&0xffff00ff	0x00010012	PFM data
->4	string			\000\000
->6	string			>\060		- %s
-
-0	belong&0xffff00ff	0x00010002	PFM data
->4	string			\000\000
->6	string			>\060		- %s
-#0	string	\000\001 pfm?
-#>3	string	\022\000\000Copyright\	yes
-#>3	string	\002\000\000Copyright\	yes
-#>3	string	>\0	oops, not a font file. Cancel that.
-#it clashes with ttf files so put it lower down.
-
-# From Doug Lee via a FreeBSD pr
-9	string		GERBILDOC	First Choice document
-9	string		GERBILDB	First Choice database
-9	string		GERBILCLIP	First Choice database
-0	string		GERBIL		First Choice device file
-9	string		RABBITGRAPH	RabbitGraph file
-0	string		DCU1		Borland Delphi .DCU file
-0	string		=!<spell>	MKS Spell hash list (old format)
-0	string		=!<spell2>	MKS Spell hash list
-# Too simple - MPi
-#0	string		AH		Halo(TM) bitmapped font file
-0	lelong		0x08086b70	TurboC BGI file
-0	lelong		0x08084b50	TurboC Font file
-
-# WARNING: below line conflicts with Infocom game data Z-machine 3
-0	byte		0x03		DBase 3 data file
->0x04	lelong		0		(no records)
->0x04	lelong		>0		(%ld records)
-0	byte		0x83		DBase 3 data file with memo(s)
->0x04	lelong		0		(no records)
->0x04	lelong		>0		(%ld records)
-0	leshort		0x0006		DBase 3 index file
-0	string		PMCC		Windows 3.x .GRP file
-1	string		RDC-meg		MegaDots 
->8	byte		>0x2F		version %c
->9	byte		>0x2F		\b.%c file
-0	lelong		0x4C
->4	lelong		0x00021401	Windows shortcut file
-
-# DOS EPS Binary File Header
-# From: Ed Sznyter <ews@Black.Market.NET>
-0	belong		0xC5D0D3C6	DOS EPS Binary File
->4	long		>0		Postscript starts at byte %d
->>8	long		>0		length %d
->>>12	long		>0		Metafile starts at byte %d
->>>>16	long		>0		length %d
->>>20	long		>0		TIFF starts at byte %d
->>>>24	long		>0		length %d
-
-# TNEF magic From "Joomy" <joomy@se-ed.net> 
-# Microsoft Outlook's Transport Neutral Encapsulation Format (TNEF)
-0	leshort		0x223e9f78	TNEF
-!:mime	application/vnd.ms-tnef
-
-# HtmlHelp files (.chm)
-0	string	ITSF\003\000\000\000\x60\000\000\000\001\000\000\000	MS Windows HtmlHelp Data
-
-# GFA-BASIC (Wolfram Kleff)
-2	string		GFA-BASIC3	GFA-BASIC 3 data
-
-#------------------------------------------------------------------------------
-# From Stuart Caie <kyzer@4u.net> (developer of cabextract)
-# Microsoft Cabinet files
-0	string		MSCF\0\0\0\0	Microsoft Cabinet archive data
-!:mime application/vnd.ms-cab-compressed
->8	lelong		x		\b, %u bytes
->28	leshort		1		\b, 1 file
->28	leshort		>1		\b, %u files
-
-# InstallShield Cabinet files
-0	string		ISc(		InstallShield Cabinet archive data
->5	byte&0xf0	=0x60		version 6,
->5	byte&0xf0	!0x60		version 4/5,
->(12.l+40)	lelong	x		%u files
-
-# Windows CE package files
-0	string		MSCE\0\0\0\0	Microsoft WinCE install header
->20	lelong		0		\b, architecture-independent
->20	lelong		103		\b, Hitachi SH3
->20	lelong		104		\b, Hitachi SH4
->20	lelong		0xA11		\b, StrongARM
->20	lelong		4000		\b, MIPS R4000
->20	lelong		10003		\b, Hitachi SH3
->20	lelong		10004		\b, Hitachi SH3E
->20	lelong		10005		\b, Hitachi SH4
->20	lelong		70001		\b, ARM 7TDMI
->52	leshort		1		\b, 1 file
->52	leshort		>1		\b, %u files
->56	leshort		1		\b, 1 registry entry
->56	leshort		>1		\b, %u registry entries
-
-
-# Windows Enhanced Metafile (EMF)
-# See msdn.microsoft.com/archive/en-us/dnargdi/html/msdn_enhmeta.asp 
-# for further information.
-0	ulelong 1
->40	string	\ EMF		Windows Enhanced Metafile (EMF) image data
->>44	ulelong x		version 0x%x
-
-# From: Alex Beregszaszi <alex@fsn.hu>
-0	string	COWD		VMWare3
->4	byte	3		disk image
->>32	lelong	x		(%d/
->>36	lelong	x		\b%d/
->>40	lelong	x		\b%d)
->4	byte	2		undoable disk image
->>32	string	>\0		(%s)
-
-0	string	VMDK		 VMware4 disk image
-0	string	KDMV		 VMware4 disk image
-
-#--------------------------------------------------------------------
-# Qemu Emulator Images
-# Lines written by Friedrich Schwittay (f.schwittay@yousable.de)
-# Made by reading sources and doing trial and error on existing
-# qcow files
-0	string	QFI	Qemu Image, Format: Qcow
-
-# Uncomment the following line to display Magic (only used for debugging
-# this magic number)
-#>0	string	x	, Magic: %s
-
-# There are currently 2 Versions: "1" and "2"
-# I do not use Version 2 and therefor branch here
-# but can assure: it works (tested on both versions)
-# Also my Qemu 0.9.0 which uses this Version 2 refuses
-# to start in its bios
->0x04	belong	2	, Version: 2
->0x04	belong	1	, Version: 1
-
-# Using the existence of the Backing File Offset to Branch or not
-# to read Backing File Information
->>0xc	 belong	 >0	 , Backing File( Offset: %lu
->>>(0xc.L)	 string >\0	, Path: %s
-
-# Didn't get the trick here how qemu stores the "Size" at this Position
-# There is actually something stored but nothing makes sense
-# The header in the sources talks about it
-#>>>16	 lelong	 x	 , Size: %lu
-
-# Modification time of the Backing File
-# Really useful if you want to know if your backing
-# file is still usable together with this image
->>>20	 bedate x	, Mtime: %s )
-
-# Don't know how to calculate in Magicfiles
-# Also: this Information is not reliably
-#	stored in image-files
->>24	 lelong	 x	 , Disk Size could be: %d * 256 bytes
-
-0	string	QEVM		QEMU's suspend to disk image
-
-0	string	Bochs\ Virtual\ HD\ Image	Bochs disk image,
->32	string	x				type %s,
->48	string	x				subtype %s
-
-0	lelong	0x02468ace			Bochs Sparse disk image
-
-# from http://filext.com by Derek M Jones <derek@knosof.co.uk>
-# False positive with PPT (also currently this string is too long)
-#0	string	\xD0\xCF\x11\xE0\xA1\xB1\x1A\xE1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3E\x00\x03\x00\xFE\xFF\x09\x00\x06	Microsoft Installer
-0	string	\320\317\021\340\241\261\032\341	Microsoft Office Document
-#>48	byte	0x1B					Excel Document
-#!:mime application/vnd.ms-excel
->546	string	bjbj			Microsoft Word Document
-!:mime	application/msword
->546	string	jbjb			Microsoft Word Document
-!:mime	application/msword
-
-0	string	\224\246\056		Microsoft Word Document
-!:mime	application/msword
-
-512	string	R\0o\0o\0t\0\ \0E\0n\0t\0r\0y	Microsoft Word Document
-!:mime	application/msword
-
-# From: "Nelson A. de Oliveira" <naoliv@gmail.com>
-# Magic type for Dell's BIOS .hdr files
-# Dell's .hdr
-0	string $RBU
->23	string Dell			%s system BIOS
->48	string x			version %.3s
-
-# Type: Microsoft DirectDraw Surface
-# URL:	http://msdn.microsoft.com/library/default.asp?url=/library/en-us/directx9_c/directx/graphics/reference/DDSFileReference/ddsfileformat.asp
-# From: Morten Hustveit <morten@debian.org>
-0	string	DDS\040\174\000\000\000 Microsoft DirectDraw Surface (DDS),
->16	lelong	>0			%hd x
->12	lelong	>0			%hd,
->84	string	x			%.4s
-
-# Type: Microsoft Document Imaging Format (.mdi)
-# URL:	http://en.wikipedia.org/wiki/Microsoft_Document_Imaging_Format
-# From: Daniele Sempione <scrows@oziosi.org>
-0	short	0x5045			Microsoft Document Imaging Format
-
-# MS eBook format (.lit)
-0	string	ITOLITLS		Microsoft Reader eBook Data
->8	lelong	x			\b, version %u
-!:mime					application/x-ms-reader
-
-#------------------------------------------------------------------------------
-# msvc:  file(1) magic for msvc
-# "H. Nanosecond" <aldomel@ix.netcom.com>
-# Microsoft visual C
-# 
-# I have version 1.0
-
-# .aps
-0	string	HWB\000\377\001\000\000\000	Microsoft Visual C .APS file
-
-# .ide
-#too long 0	string	\102\157\162\154\141\156\144\040\103\053\053\040\120\162\157\152\145\143\164\040\106\151\154\145\012\000\032\000\002\000\262\000\272\276\372\316	MSVC .ide
-0	string	\102\157\162\154\141\156\144\040\103\053\053\040\120\162\157	MSVC .ide
-
-# .res
-0	string	\000\000\000\000\040\000\000\000\377	MSVC .res
-0	string	\377\003\000\377\001\000\020\020\350	MSVC .res
-0	string	\377\003\000\377\001\000\060\020\350	MSVC .res
-
-#.lib
-0	string	\360\015\000\000	Microsoft Visual C library
-0	string	\360\075\000\000	Microsoft Visual C library
-0	string	\360\175\000\000	Microsoft Visual C library
-
-#.pch
-0	string	DTJPCH0\000\022\103\006\200	Microsoft Visual C .pch
-
-# .pdb
-# too long 0	string	Microsoft\ C/C++\ program\ database\ 
-0	string	Microsoft\ C/C++\ 	MSVC program database
->18	string	program\ database\ 	
->33	string	>\0	ver %s
-
-#.sbr
-0	string	\000\002\000\007\000	MSVC .sbr
->5	string 	>\0	%s
-
-#.bsc
-0	string	\002\000\002\001	MSVC .bsc
-
-#.wsp
-0	string	1.00\ .0000.0000\000\003	MSVC .wsp version 1.0000.0000
-# these seem to start with the version and contain menus
-# ------------------------------------------------------------------------
-# mup: file(1) magic for Mup (Music Publisher) input file.
-#
-# From: Abel Cheung <abel (@) oaka.org>
-#
-# NOTE: This header is mainly proposed in the Arkkra mailing list,
-# and is not a mandatory header because of old mup input file
-# compatibility. Noteedit also use mup format, but is not forcing
-# user to use any header as well.
-#
-0		search/1	//!Mup		Mup music publication program input text
->6		string		-Arkkra		(Arkkra)
->>13		string		-		
->>>16		string		.		
->>>>14		string		x		\b, need V%.4s
->>>15		string		.		
->>>>14		string		x		\b, need V%.3s
->6		string		-		
->>9		string		.		
->>>7		string		x		\b, need V%.4s
->>8		string		.		
->>>7		string		x		\b, need V%.3s
-
-#-----------------------------------------------------------------------------
-# natinst:  file(1) magic for National Instruments Code Files
-
-#
-# From <egamez@fcfm.buap.mx> Enrique G�mez-Flores
-# version 1
-# Many formats still missing, we use, for the moment LabVIEW
-# We guess VXI format file. VISA, LabWindowsCVI, BridgeVIEW, etc, are missing
-#
-0       string          RSRC            National Instruments,
-# Check if it's a LabVIEW File
->8      string          LV              LabVIEW File,
-# Check wich kind of file is
->>10    string          SB              Code Resource File, data
->>10    string          IN              Virtual Instrument Program, data
->>10    string          AR              VI Library, data
-# This is for Menu Libraries
->8      string          LMNULBVW        Portable File Names, data
-# This is for General Resources
->8      string          rsc             Resources File, data
-# This is for VXI Package
-0       string          VMAP            National Instruments, VXI File, data
-
-#------------------------------------------------------------------------------
-# ncr:  file(1) magic for NCR Tower objects
-#
-# contributed by
-# Michael R. Wayne  ***  TMC & Associates  ***  INTERNET: wayne@ford-vax.arpa
-# uucp: {philabs | pyramid} !fmsrl7!wayne   OR   wayne@fmsrl7.UUCP
-#
-0	beshort		000610	Tower/XP rel 2 object
->12	   belong		>0	not stripped
->20	   beshort		0407	executable
->20	   beshort		0410	pure executable
->22	   beshort		>0	- version %ld
-0	beshort		000615	Tower/XP rel 2 object
->12	   belong		>0	not stripped
->20	   beshort		0407	executable
->20	   beshort		0410	pure executable
->22	   beshort		>0	- version %ld
-0	beshort		000620	Tower/XP rel 3 object
->12	   belong		>0	not stripped
->20	   beshort		0407	executable
->20	   beshort		0410	pure executable
->22	   beshort		>0	- version %ld
-0	beshort		000625	Tower/XP rel 3 object
->12	   belong		>0	not stripped
->20	   beshort		0407	executable
->20	   beshort		0410	pure executable
->22	   beshort		>0	- version %ld
-0	beshort		000630	Tower32/600/400 68020 object
->12	   belong		>0	not stripped
->20	   beshort		0407	executable
->20	   beshort		0410	pure executable
->22	   beshort		>0	- version %ld
-0	beshort		000640	Tower32/800 68020
->18	   beshort		&020000	w/68881 object
->18	   beshort		&040000	compatible object
->18	   beshort		&060000	object
->20	   beshort		0407	executable
->20	   beshort		0413	pure executable
->12	   belong		>0	not stripped
->22	   beshort		>0	- version %ld
-0	beshort		000645	Tower32/800 68010
->18	   beshort		&040000	compatible object
->18	   beshort		&060000 object
->20	   beshort		0407	executable
->20	   beshort		0413	pure executable
->12	   belong		>0	not stripped
->22	   beshort		>0	- version %ld
-
-#------------------------------------------------------------------------------
-# netbsd:  file(1) magic for NetBSD objects
-#
-# All new-style magic numbers are in network byte order.
-#
-
-0	lelong			000000407	a.out NetBSD little-endian object file
->16	lelong			>0		not stripped
-0	belong			000000407	a.out NetBSD big-endian object file
->16	belong			>0		not stripped
-
-0	belong&0377777777	041400413	a.out NetBSD/i386 demand paged
->0	byte			&0x80		
->>20	lelong			<4096		shared library
->>20	lelong			=4096		dynamically linked executable
->>20	lelong			>4096		dynamically linked executable
->0	byte			^0x80		executable
->16	lelong			>0		not stripped
-0	belong&0377777777	041400410	a.out NetBSD/i386 pure
->0	byte			&0x80		dynamically linked executable
->0	byte			^0x80		executable
->16	lelong			>0		not stripped
-0	belong&0377777777	041400407	a.out NetBSD/i386
->0	byte			&0x80		dynamically linked executable
->0	byte			^0x80
->>0	byte			&0x40		position independent
->>20	lelong			!0		executable
->>20	lelong			=0		object file
->16	lelong			>0		not stripped
-0	belong&0377777777	041400507	a.out NetBSD/i386 core
->12	string			>\0		from '%s'
->32	lelong			!0		(signal %d)
-
-0	belong&0377777777	041600413	a.out NetBSD/m68k demand paged
->0	byte			&0x80		
->>20	belong			<8192		shared library
->>20	belong			=8192		dynamically linked executable
->>20	belong			>8192		dynamically linked executable
->0	byte			^0x80		executable
->16	belong			>0		not stripped
-0	belong&0377777777	041600410	a.out NetBSD/m68k pure
->0	byte			&0x80		dynamically linked executable
->0	byte			^0x80		executable
->16	belong			>0		not stripped
-0	belong&0377777777	041600407	a.out NetBSD/m68k
->0	byte			&0x80		dynamically linked executable
->0	byte			^0x80
->>0	byte			&0x40		position independent
->>20	belong			!0		executable
->>20	belong			=0		object file
->16	belong			>0		not stripped
-0	belong&0377777777	041600507	a.out NetBSD/m68k core
->12	string			>\0		from '%s'
->32	belong			!0		(signal %d)
-
-0	belong&0377777777	042000413	a.out NetBSD/m68k4k demand paged
->0	byte			&0x80		
->>20	belong			<4096		shared library
->>20	belong			=4096		dynamically linked executable
->>20	belong			>4096		dynamically linked executable
->0	byte			^0x80		executable
->16	belong			>0		not stripped
-0	belong&0377777777	042000410	a.out NetBSD/m68k4k pure
->0	byte			&0x80		dynamically linked executable
->0	byte			^0x80		executable
->16	belong			>0		not stripped
-0	belong&0377777777	042000407	a.out NetBSD/m68k4k
->0	byte			&0x80		dynamically linked executable
->0	byte			^0x80
->>0	byte			&0x40		position independent
->>20	belong			!0		executable
->>20	belong			=0		object file
->16	belong			>0		not stripped
-0	belong&0377777777	042000507	a.out NetBSD/m68k4k core
->12	string			>\0		from '%s'
->32	belong			!0		(signal %d)
-
-0	belong&0377777777	042200413	a.out NetBSD/ns32532 demand paged
->0	byte			&0x80		
->>20	lelong			<4096		shared library
->>20	lelong			=4096		dynamically linked executable
->>20	lelong			>4096		dynamically linked executable
->0	byte			^0x80		executable
->16	lelong			>0		not stripped
-0	belong&0377777777	042200410	a.out NetBSD/ns32532 pure
->0	byte			&0x80		dynamically linked executable
->0	byte			^0x80		executable
->16	lelong			>0		not stripped
-0	belong&0377777777	042200407	a.out NetBSD/ns32532
->0	byte			&0x80		dynamically linked executable
->0	byte			^0x80
->>0	byte			&0x40		position independent
->>20	lelong			!0		executable
->>20	lelong			=0		object file
->16	lelong			>0		not stripped
-0	belong&0377777777	042200507	a.out NetBSD/ns32532 core
->12	string			>\0		from '%s'
->32	lelong			!0		(signal %d)
-
-0	belong&0377777777	045200507	a.out NetBSD/powerpc core
->12	string			>\0		from '%s'
-
-0	belong&0377777777	042400413	a.out NetBSD/sparc demand paged
->0	byte			&0x80		
->>20	belong			<8192		shared library
->>20	belong			=8192		dynamically linked executable
->>20	belong			>8192		dynamically linked executable
->0	byte			^0x80		executable
->16	belong			>0		not stripped
-0	belong&0377777777	042400410	a.out NetBSD/sparc pure
->0	byte			&0x80		dynamically linked executable
->0	byte			^0x80		executable
->16	belong			>0		not stripped
-0	belong&0377777777	042400407	a.out NetBSD/sparc
->0	byte			&0x80		dynamically linked executable
->0	byte			^0x80
->>0	byte			&0x40		position independent
->>20	belong			!0		executable
->>20	belong			=0		object file
->16	belong			>0		not stripped
-0	belong&0377777777	042400507	a.out NetBSD/sparc core
->12	string			>\0		from '%s'
->32	belong			!0		(signal %d)
-
-0	belong&0377777777	042600413	a.out NetBSD/pmax demand paged
->0	byte			&0x80		
->>20	lelong			<4096		shared library
->>20	lelong			=4096		dynamically linked executable
->>20	lelong			>4096		dynamically linked executable
->0	byte			^0x80		executable
->16	lelong			>0		not stripped
-0	belong&0377777777	042600410	a.out NetBSD/pmax pure
->0	byte			&0x80		dynamically linked executable
->0	byte			^0x80		executable
->16	lelong			>0		not stripped
-0	belong&0377777777	042600407	a.out NetBSD/pmax
->0	byte			&0x80		dynamically linked executable
->0	byte			^0x80
->>0	byte			&0x40		position independent
->>20	lelong			!0		executable
->>20	lelong			=0		object file
->16	lelong			>0		not stripped
-0	belong&0377777777	042600507	a.out NetBSD/pmax core
->12	string			>\0		from '%s'
->32	lelong			!0		(signal %d)
-
-0	belong&0377777777	043000413	a.out NetBSD/vax 1k demand paged
->0	byte			&0x80		
->>20	lelong			<4096		shared library
->>20	lelong			=4096		dynamically linked executable
->>20	lelong			>4096		dynamically linked executable
->0	byte			^0x80		executable
->16	lelong			>0		not stripped
-0	belong&0377777777	043000410	a.out NetBSD/vax 1k pure
->0	byte			&0x80		dynamically linked executable
->0	byte			^0x80		executable
->16	lelong			>0		not stripped
-0	belong&0377777777	043000407	a.out NetBSD/vax 1k
->0	byte			&0x80		dynamically linked executable
->0	byte			^0x80
->>0	byte			&0x40		position independent
->>20	lelong			!0		executable
->>20	lelong			=0		object file
->16	lelong			>0		not stripped
-0	belong&0377777777	043000507	a.out NetBSD/vax 1k core
->12	string			>\0		from '%s'
->32	lelong			!0		(signal %d)
-
-0	belong&0377777777	045400413	a.out NetBSD/vax 4k demand paged
->0	byte			&0x80		
->>20	lelong			<4096		shared library
->>20	lelong			=4096		dynamically linked executable
->>20	lelong			>4096		dynamically linked executable
->0	byte			^0x80		executable
->16	lelong			>0		not stripped
-0	belong&0377777777	045400410	a.out NetBSD/vax 4k pure
->0	byte			&0x80		dynamically linked executable
->0	byte			^0x80		executable
->16	lelong			>0		not stripped
-0	belong&0377777777	045400407	a.out NetBSD/vax 4k
->0	byte			&0x80		dynamically linked executable
->0	byte			^0x80
->>0	byte			&0x40		position independent
->>20	lelong			!0		executable
->>20	lelong			=0		object file
->16	lelong			>0		not stripped
-0	belong&0377777777	045400507	a.out NetBSD/vax 4k core
->12	string			>\0		from '%s'
->32	lelong			!0		(signal %d)
-
-# NetBSD/alpha does not support (and has never supported) a.out objects,
-# so no rules are provided for them.  NetBSD/alpha ELF objects are 
-# dealt with in "elf".
-0	lelong		0x00070185		ECOFF NetBSD/alpha binary
->10	leshort		0x0001			not stripped
->10	leshort		0x0000			stripped
-0	belong&0377777777	043200507	a.out NetBSD/alpha core
->12	string			>\0		from '%s'
->32	lelong			!0		(signal %d)
-
-0	belong&0377777777	043400413	a.out NetBSD/mips demand paged
->0	byte			&0x80		
->>20	belong			<8192		shared library
->>20	belong			=8192		dynamically linked executable
->>20	belong			>8192		dynamically linked executable
->0	byte			^0x80		executable
->16	belong			>0		not stripped
-0	belong&0377777777	043400410	a.out NetBSD/mips pure
->0	byte			&0x80		dynamically linked executable
->0	byte			^0x80		executable
->16	belong			>0		not stripped
-0	belong&0377777777	043400407	a.out NetBSD/mips
->0	byte			&0x80		dynamically linked executable
->0	byte			^0x80
->>0	byte			&0x40		position independent
->>20	belong			!0		executable
->>20	belong			=0		object file
->16	belong			>0		not stripped
-0	belong&0377777777	043400507	a.out NetBSD/mips core
->12	string			>\0		from '%s'
->32	belong			!0		(signal %d)
-
-0	belong&0377777777	043600413	a.out NetBSD/arm32 demand paged
->0	byte			&0x80
->>20	lelong			<4096		shared library
->>20	lelong			=4096		dynamically linked executable
->>20	lelong			>4096		dynamically linked executable
->0	byte			^0x80		executable
->16	lelong			>0		not stripped
-0	belong&0377777777	043600410	a.out NetBSD/arm32 pure
->0	byte			&0x80		dynamically linked executable
->0	byte			^0x80		executable
->16	lelong			>0		not stripped
-0	belong&0377777777	043600407	a.out NetBSD/arm32
->0	byte			&0x80		dynamically linked executable
->0	byte			^0x80
->>0	byte			&0x40		position independent
->>20	lelong			!0		executable
->>20	lelong			=0		object file
->16	lelong			>0		not stripped
-# NetBSD/arm26 has always used ELF objects, but it shares a core file
-# format with NetBSD/arm32.
-0	belong&0377777777	043600507	a.out NetBSD/arm core
->12	string			>\0		from '%s'
->32	lelong			!0		(signal %d)
-
-#------------------------------------------------------------------------------
-# netscape:  file(1) magic for Netscape files
-# "H. Nanosecond" <aldomel@ix.netcom.com>
-# version 3 and 4 I think
-#
-
-# Netscape Address book  .nab
-0	string \000\017\102\104\000\000\000\000\000\000\001\000\000\000\000\002\000\000\000\002\000\000\004\000 Netscape Address book
-
-# Netscape Communicator address book
-0   string   \000\017\102\111 Netscape Communicator address book
-
-# .snm Caches
-0	string		#\ Netscape\ folder\ cache	Netscape folder cache
-0	string	\000\036\204\220\000	Netscape folder cache
-# .n2p 
-# Net 2 Phone 
-#0	string	123\130\071\066\061\071\071\071\060\070\061\060\061\063\060
-0	string	SX961999	Net2phone
-
-#
-#This is files ending in .art, FIXME add more rules
-0       string          JG\004\016\0\0\0\0      ART
-
-#------------------------------------------------------------------------------
-# netware:  file(1) magic for NetWare Loadable Modules (NLMs)
-# From: Mads Martin Joergensen <mmj@suse.de>
-
-0	string	NetWare\ Loadable\ Module	NetWare Loadable Module
-
-#------------------------------------------------------------------------------
-# news:  file(1) magic for SunOS NeWS fonts (not "news" as in "netnews")
-#
-0	string		StartFontMetrics	ASCII font metrics
-0	string		StartFont	ASCII font bits
-0	belong		0x137A2944	NeWS bitmap font
-0	belong		0x137A2947	NeWS font family
-0	belong		0x137A2950	scalable OpenFont binary
-0	belong		0x137A2951	encrypted scalable OpenFont binary
-8	belong		0x137A2B45	X11/NeWS bitmap font
-8	belong		0x137A2B48	X11/NeWS font family
-#------------------------------------------------------------------------------
-# nitpicker:  file(1) magic for Flowfiles.
-# From: Christian Jachmann <C.Jachmann@gmx.net> http://www.nitpicker.de
-0	string	NPFF	NItpicker Flow File 
->4	byte	x	V%d.
->5	byte	x	%d
->6	bedate	x	started: %s
->10	bedate	x	stopped: %s
->14	belong	x	Bytes: %u
->18	belong	x	Bytes1: %u
->22	belong	x	Flows: %u
->26	belong	x	Pkts: %u
-
-#------------------------------------------------------------------------------
-# ocaml: file(1) magic for Objective Caml files.
-0	string	Caml1999	OCaml
->8	string	X		exec file
->8	string	I		interface file (.cmi)
->8	string	O		object file (.cmo)
->8	string	A		library file (.cma)
->8	string	Y		native object file (.cmx)
->8	string	Z		native library file (.cmxa)
->8	string	M		abstract syntax tree implementation file
->8	string	N		abstract syntax tree interface file
->9	string	>\0		(Version %3.3s)
-#------------------------------------------------------------------------------
-# octave binary data file(1) magic, from Dirk Eddelbuettel <edd@debian.org>
-0	string		Octave-1-L	Octave binary data (little endian)
-0	string		Octave-1-B	Octave binary data (big endian)
-
-#------------------------------------------------------------------------------
-# Microsoft OLE 2 Compound Documents : file(1) magic for Microsoft Structured
-# storage (http://en.wikipedia.org/wiki/Structured_Storage)
-# Additional tests for OLE 2 Compound Documents should be under this recipe.
-
-0   string  \320\317\021\340\241\261\032\341      OLE 2 Compound Document
-# - Microstation V8 DGN files (www.bentley.com)
-#   Last update on 10/23/2006 by Lester Hightower
-> 0x480  string  D\000g\000n\000~\000H                : Microstation V8 DGN
-# - Visio documents
-#   Last update on 10/23/2006 by Lester Hightower
-> 0x480  string  V\000i\000s\000i\000o\000D\000o\000c : Visio Document
-
-#------------------------------------------------------------------------------
-# olf:  file(1) magic for OLF executables
-#
-# We have to check the byte order flag to see what byte order all the
-# other stuff in the header is in.
-#
-# MIPS R3000 may also be for MIPS R2000.
-# What're the correct byte orders for the nCUBE and the Fujitsu VPP500?
-#
-# Created by Erik Theisen <etheisen@openbsd.org>
-# Based on elf from Daniel Quinlan <quinlan@yggdrasil.com>
-0	string		\177OLF		OLF
->4	byte		0		invalid class
->4	byte		1		32-bit
->4	byte		2		64-bit
->7	byte		0		invalid os
->7	byte		1		OpenBSD
->7	byte		2		NetBSD
->7	byte		3		FreeBSD
->7	byte		4		4.4BSD
->7	byte		5		Linux
->7	byte		6		SVR4
->7	byte		7		esix
->7	byte		8		Solaris
->7	byte		9		Irix
->7	byte		10		SCO
->7	byte		11		Dell
->7	byte		12		NCR
->5	byte		0		invalid byte order
->5	byte		1		LSB
->>16	leshort		0		no file type,
->>16	leshort		1		relocatable,
->>16	leshort		2		executable,
->>16	leshort		3		shared object,
-# Core handling from Peter Tobias <tobias@server.et-inf.fho-emden.de>
-# corrections by Christian 'Dr. Disk' Hechelmann <drdisk@ds9.au.s.shuttle.de>
->>16	leshort		4		core file
->>>(0x38+0xcc) string	>\0		of '%s'
->>>(0x38+0x10) lelong	>0		(signal %d),
->>16	leshort		&0xff00		processor-specific,
->>18	leshort		0		no machine,
->>18	leshort		1		AT&T WE32100 - invalid byte order,
->>18	leshort		2		SPARC - invalid byte order,
->>18	leshort		3		Intel 80386,
->>18	leshort		4		Motorola 68000 - invalid byte order,
->>18	leshort		5		Motorola 88000 - invalid byte order,
->>18	leshort		6		Intel 80486,
->>18	leshort		7		Intel 80860,
->>18	leshort		8		MIPS R3000_BE - invalid byte order,
->>18	leshort		9		Amdahl - invalid byte order,
->>18	leshort		10		MIPS R3000_LE,
->>18	leshort		11		RS6000 - invalid byte order,
->>18	leshort		15		PA-RISC - invalid byte order,
->>18	leshort		16		nCUBE,
->>18	leshort		17		VPP500,
->>18	leshort		18		SPARC32PLUS,
->>18	leshort		20		PowerPC,
->>18	leshort		0x9026		Alpha,
->>20	lelong		0		invalid version
->>20	lelong		1		version 1
->>36	lelong		1		MathCoPro/FPU/MAU Required
->8	string		>\0		(%s)
->5	byte		2		MSB
->>16	beshort		0		no file type,
->>16	beshort		1		relocatable,
->>16	beshort		2		executable,
->>16	beshort		3		shared object,
->>16	beshort		4		core file,
->>>(0x38+0xcc) string	>\0		of '%s'
->>>(0x38+0x10) belong	>0		(signal %d),
->>16	beshort		&0xff00		processor-specific,
->>18	beshort		0		no machine,
->>18	beshort		1		AT&T WE32100,
->>18	beshort		2		SPARC,
->>18	beshort		3		Intel 80386 - invalid byte order,
->>18	beshort		4		Motorola 68000,
->>18	beshort		5		Motorola 88000,
->>18	beshort		6		Intel 80486 - invalid byte order,
->>18	beshort		7		Intel 80860,
->>18	beshort		8		MIPS R3000_BE,
->>18	beshort		9		Amdahl,
->>18	beshort		10		MIPS R3000_LE - invalid byte order,
->>18	beshort		11		RS6000,
->>18	beshort		15		PA-RISC,
->>18	beshort		16		nCUBE,
->>18	beshort		17		VPP500,
->>18	beshort		18		SPARC32PLUS,
->>18	beshort		20		PowerPC or cisco 4500,
->>18	beshort		21		cisco 7500,
->>18	beshort		24		cisco SVIP,
->>18	beshort		25		cisco 7200,
->>18	beshort		36		cisco 12000,
->>18	beshort		0x9026		Alpha,
->>20	belong		0		invalid version
->>20	belong		1		version 1
->>36	belong		1		MathCoPro/FPU/MAU Required
-#------------------------------------------------------------------------------
-# os2:  file(1) magic for OS/2 files
-#
-
-# Provided 1998/08/22 by
-# David Mediavilla <davidme.news@REMOVEIFNOTSPAMusa.net>
-1	search/1	InternetShortcut	MS Windows 95 Internet shortcut text
->24	search/1	>\ 			(URL=<%s>)
-
-# OS/2 URL objects
-# Provided 1998/08/22 by
-# David Mediavilla <davidme.news@REMOVEIFNOTSPAMusa.net>
-#0	string	http:			OS/2 URL object text
-#>5	string	>\			(WWW) <http:%s>
-#0	string	mailto:			OS/2 URL object text
-#>7	string	>\			(email) <%s>
-#0	string	news:			OS/2 URL object text
-#>5	string	>\			(Usenet) <%s>
-#0	string	ftp:			OS/2 URL object text
-#>4	string	>\			(FTP) <ftp:%s>
-#0	string	file:			OS/2 URL object text
-#>5	string	>\			(Local file) <%s>
-
-# >>>>> OS/2 INF/HLP <<<<<  (source: Daniel Dissett ddissett@netcom.com)
-# Carl Hauser (chauser.parc@xerox.com) and 
-# Marcus Groeber (marcusg@ph-cip.uni-koeln.de)
-# list the following header format in inf02a.doc:
-#
-#  int16 ID;           // ID magic word (5348h = "HS")
-#  int8  unknown1;     // unknown purpose, could be third letter of ID
-#  int8  flags;        // probably a flag word...
-#                      //  bit 0: set if INF style file
-#                      //  bit 4: set if HLP style file
-#                      // patching this byte allows reading HLP files
-#                      // using the VIEW command, while help files 
-#                      // seem to work with INF settings here as well.
-#  int16 hdrsize;      // total size of header
-#  int16 unknown2;     // unknown purpose
-# 
-0   string  HSP\x01\x9b\x00 OS/2 INF
->107 string >0                      (%s)
-0   string  HSP\x10\x9b\x00     OS/2 HLP
->107 string >0                      (%s)
-
-# OS/2 INI (this is a guess)
-0  string   \xff\xff\xff\xff\x14\0\0\0  OS/2 INI
-#------------------------------------------------------------------------------
-# os400:  file(1) magic for IBM OS/400 files
-#
-# IBM OS/400 (i5/OS) Save file (SAVF) - gerardo.cacciari@gmail.com
-# In spite of its quite variable format (due to internal memory page
-# length differences between CISC and RISC versions of the OS) the
-# SAVF structure hasn't suitable offsets to identify the catalog
-# header in the first descriptor where there are some useful infos,
-# so we must search in a somewhat large area for a particular string
-# that represents the EBCDIC encoding of 'QSRDSSPC' (save/restore
-# descriptor space) preceded by a two byte constant.
-#
-1090	 search/7393	\x19\xDB\xD8\xE2\xD9\xC4\xE2\xE2\xD7\xC3 IBM OS/400 save file data
->&212	 byte		0x01			 \b, created with SAVOBJ
->&212	 byte		0x02			 \b, created with SAVLIB
->&212	 byte		0x07			 \b, created with SAVCFG
->&212	 byte		0x08			 \b, created with SAVSECDTA
->&212	 byte		0x0A			 \b, created with SAVSECDTA
->&212	 byte		0x0B			 \b, created with SAVDLO
->&212	 byte		0x0D			 \b, created with SAVLICPGM
->&212	 byte		0x11			 \b, created with SAVCHGOBJ
->&213	 byte		0x44			 \b, at least V5R4 to open
->&213	 byte		0x43			 \b, at least V5R3 to open
->&213	 byte		0x42			 \b, at least V5R2 to open
->&213	 byte		0x41			 \b, at least V5R1 to open
->&213	 byte		0x40			 \b, at least V4R5 to open
->&213	 byte		0x3F			 \b, at least V4R4 to open
->&213	 byte		0x3E			 \b, at least V4R3 to open
->&213	 byte		0x3C			 \b, at least V4R2 to open
->&213	 byte		0x3D			 \b, at least V4R1M4 to open
->&213	 byte		0x3B			 \b, at least V4R1 to open
->&213	 byte		0x3A			 \b, at least V3R7 to open
->&213	 byte		0x35			 \b, at least V3R6 to open
->&213	 byte		0x36			 \b, at least V3R2 to open
->&213	 byte		0x34			 \b, at least V3R1 to open
->&213	 byte		0x31			 \b, at least V3R0M5 to open
->&213	 byte		0x30			 \b, at least V2R3 to open
-#
-# Copyright (c) 1996 Ignatios Souvatzis. All rights reserved.
-#
-# Redistribution and use in source and binary forms, with or without
-# modification, are permitted provided that the following conditions
-# are met:
-# 1. Redistributions of source code must retain the above copyright
-#    notice, this list of conditions and the following disclaimer.
-# 2. Redistributions in binary form must reproduce the above copyright
-#    notice, this list of conditions and the following disclaimer in the
-#    documentation and/or other materials provided with the distribution.
-# 3. All advertising materials mentioning features or use of this software
-#    must display the following acknowledgement:
-#      This product includes software developed by Ignatios Souvatzis for
-#      the NetBSD project.
-# 4. The name of the author may not be used to endorse or promote products
-#    derived from this software without specific prior written permission.
-#
-#
-# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
-# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
-# OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.  
-# IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
-# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
-# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
-# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
-# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
-# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-#
-#
-#
-# OS9/6809 module descriptions:
-#
-0	beshort		0x87CD	OS9/6809 module:
-#
->6	byte&0x0f	0x00	non-executable
->6	byte&0x0f	0x01	machine language
->6	byte&0x0f	0x02	BASIC I-code
->6	byte&0x0f	0x03	Pascal P-code
->6	byte&0x0f	0x04	C I-code
->6	byte&0x0f	0x05	COBOL I-code
->6	byte&0x0f	0x06	Fortran I-code
-#
->6	byte&0xf0	0x10	program executable
->6	byte&0xf0	0x20	subroutine
->6	byte&0xf0	0x30	multi-module
->6	byte&0xf0	0x40	data module
-#
->6	byte&0xf0	0xC0	system module
->6	byte&0xf0	0xD0	file manager
->6	byte&0xf0	0xE0	device driver
->6	byte&0xf0	0xF0	device descriptor
-#
-# OS9/m68k stuff (to be continued)
-#
-0	beshort		0x4AFC	OS9/68K module:
-#
-# attr
->0x14	byte&0x80	0x80	re-entrant
->0x14	byte&0x40	0x40	ghost
->0x14	byte&0x20	0x20	system-state
-#
-# lang:
-#
->0x13	byte		1	machine language
->0x13	byte		2	BASIC I-code
->0x13	byte		3	Pascal P-code
->0x13	byte		4	C I-code
->0x13	byte		5	COBOL I-code
->0x13	byte		6	Fortran I-code
-#
-#
-# type:
-#
->0x12	byte		1	program executable
->0x12	byte		2	subroutine
->0x12	byte		3	multi-module
->0x12	byte		4	data module
->0x12	byte		11	trap library
->0x12	byte		12	system module
->0x12	byte		13	file manager
->0x12	byte		14	device driver
->0x12	byte		15	device descriptor
-#
-# Mach magic number info
-#
-0	long		0xefbe	OSF/Rose object
-# I386 magic number info
-#
-0	short		0565	i386 COFF object
-
-#------------------------------------------------------------------------------
-# palm:  file(1) magic for PalmOS {.prc,.pdb}: applications, docfiles, and hacks
-#
-# Brian Lalor <blalor@hcirisc.cs.binghamton.edu>
-
-# appl
-60      belong                  0x6170706c      PalmOS application
->0      string                  >\0             "%s"
-# TEXt
-60      belong                  0x54455874      AportisDoc file
->0      string                  >\0             "%s"
-# HACK
-60      belong                  0x4841434b      HackMaster hack
->0      string                  >\0             "%s"
-
-# Variety of PalmOS document types
-# Michael-John Turner <mj@debian.org>
-# Thanks to Hasan Umit Ezerce <humit@tr-net.net.tr> for his DocType
-60	string	                BVokBDIC	BDicty PalmOS document
->0	string                  >\0             "%s"
-60	string	                DB99DBOS	DB PalmOS document
->0	string                  >\0             "%s"
-60	string	                vIMGView	FireViewer/ImageViewer PalmOS document
->0	string                  >\0             "%s"
-60	string	                PmDBPmDB	HanDBase PalmOS document
->0	string                  >\0             "%s"
-60	string	                InfoINDB	InfoView PalmOS document
->0	string                  >\0             "%s"
-60	string	                ToGoToGo	iSilo PalmOS document
->0	string                  >\0             "%s"
-60	string	                JfDbJBas	JFile PalmOS document
->0	string                  >\0             "%s"
-60	string	                JfDbJFil	JFile Pro PalmOS document
->0	string                  >\0             "%s"
-60	string	                DATALSdb	List PalmOS document
->0	string                  >\0             "%s"
-60	string	                Mdb1Mdb1	MobileDB PalmOS document
->0	string                  >\0             "%s"
-60	string	                PNRdPPrs	PeanutPress PalmOS document
->0	string                  >\0             "%s"
-60	string	                DataPlkr	Plucker PalmOS document
->0	string                  >\0             "%s"
-60	string	                DataSprd	QuickSheet PalmOS document
->0	string                  >\0             "%s"
-60	string	                SM01SMem	SuperMemo PalmOS document
->0	string                  >\0             "%s"
-60	string	                TEXtTlDc	TealDoc PalmOS document
->0	string                  >\0             "%s"
-60	string	                InfoTlIf	TealInfo PalmOS document
->0	string                  >\0             "%s"
-60	string	                DataTlMl	TealMeal PalmOS document
->0	string                  >\0             "%s"
-60	string	                DataTlPt	TealPaint PalmOS document
->0	string                  >\0             "%s"
-60	string	                dataTDBP	ThinkDB PalmOS document
->0	string                  >\0             "%s"
-60	string	                TdatTide	Tides PalmOS document
->0	string                  >\0             "%s"
-60	string	                ToRaTRPW	TomeRaider PalmOS document
->0	string                  >\0             "%s"
-
-# A GutenPalm zTXT etext for use on Palm Pilots (http://gutenpalm.sf.net)
-# For version 1.xx zTXTs, outputs version and numbers of bookmarks and
-#   annotations.
-# For other versions, just outputs version.
-#
-60		string		zTXT		A GutenPalm zTXT e-book
->0		string		>\0		"%s"
->(0x4E.L)	byte		0
->>(0x4E.L+1)	byte		x		(v0.%02d)
->(0x4E.L)	byte		1
->>(0x4E.L+1)	byte		x		(v1.%02d)
->>>(0x4E.L+10)	beshort		>0
->>>>(0x4E.L+10) beshort		<2		- 1 bookmark
->>>>(0x4E.L+10) beshort		>1		- %d bookmarks
->>>(0x4E.L+14)	beshort		>0
->>>>(0x4E.L+14) beshort		<2		- 1 annotation
->>>>(0x4E.L+14) beshort		>1		- %d annotations
->(0x4E.L)	byte		>1		(v%d.
->>(0x4E.L+1)	byte		x		%02d)
-
-# Palm OS .prc file types
-60		string		libr		Palm OS dynamic library data
->0		string		>\0		"%s"
-60		string		ptch		Palm OS operating system patch data
->0		string		>\0		"%s"
-
-# Mobipocket (www.mobipocket.com), donated by Carl Witty
-60	string	                BOOKMOBI	Mobipocket E-book
->0	string                  >\0             "%s"
-
-#------------------------------------------------------------------------------
-#
-# Parix COFF executables
-# From: Ignatios Souvatzis <ignatios@cs.uni-bonn.de>
-#
-0	beshort&0xfff	0xACE	PARIX
->0	byte&0xf0	0x80	T800
->0	byte&0xf0	0x90	T9000
->19	byte&0x02	0x02	executable
->19	byte&0x02	0x00	object
->19	byte&0x0c	0x00	not stripped
-
-#------------------------------------------------------------------------------
-# pbm:  file(1) magic for Portable Bitmap files
-#
-# XXX - byte order?
-#
-0	short	0x2a17	"compact bitmap" format (Poskanzer)
-#------------------------------------------------------------------------------
-# pdf:  file(1) magic for Portable Document Format
-#
-
-0	string		%PDF-		PDF document
-!:mime	application/pdf
->5	byte		x		\b, version %c
->7	byte		x		\b.%c
-
-# From: Nick Schmalenberger <nick@schmalenberger.us>
-# Forms Data Format
-0       string          %FDF-           FDF document
->5      byte            x               \b, version %c
->7      byte            x               \b.%c
-
-#------------------------------------------------------------------------------
-# pdp:  file(1) magic for PDP-11 executable/object and APL workspace
-#
-0	lelong		0101555		PDP-11 single precision APL workspace
-0	lelong		0101554		PDP-11 double precision APL workspace
-#
-# PDP-11 a.out
-#
-0	leshort		0407		PDP-11 executable
->8	leshort		>0		not stripped
->15	byte		>0		- version %ld
-
-0	leshort		0401		PDP-11 UNIX/RT ldp
-0	leshort		0405		PDP-11 old overlay
-
-0	leshort		0410		PDP-11 pure executable
->8	leshort		>0		not stripped
->15	byte		>0		- version %ld
-
-0	leshort		0411		PDP-11 separate I&D executable
->8	leshort		>0		not stripped
->15	byte		>0		- version %ld
-
-0	leshort		0437		PDP-11 kernel overlay
-
-# These last three are derived from 2.11BSD file(1)
-0	leshort		0413		PDP-11 demand-paged pure executable
->8	leshort		>0		not stripped
-
-0	leshort		0430		PDP-11 overlaid pure executable
->8	leshort		>0		not stripped
-
-0	leshort		0431		PDP-11 overlaid separate executable
->8	leshort		>0		not stripped
-#------------------------------------------------------------------------------
-# perl:  file(1) magic for Larry Wall's perl language.
-#
-# The `eval' lines recognizes an outrageously clever hack.
-# Keith Waclena <keith@cerberus.uchicago.edu>
-# Send additions to <perl5-porters@perl.org>
-0	search/1/b	#!\ /bin/perl			Perl script text executable
-!:mime	text/x-perl
-0	search/1	eval\ "exec\ /bin/perl		Perl script text
-!:mime	text/x-perl
-0	search/1/b	#!\ /usr/bin/perl		Perl script text executable
-!:mime	text/x-perl
-0	search/1	eval\ "exec\ /usr/bin/perl	Perl script text
-!:mime	text/x-perl
-0	search/1/b	#!\ /usr/local/bin/perl		Perl script text executable
-!:mime	text/x-perl
-0	search/1	eval\ "exec\ /usr/local/bin/perl	Perl script text
-!:mime	text/x-perl
-0	search/1	eval\ '(exit\ $?0)'\ &&\ eval\ 'exec	Perl script text
-!:mime	text/x-perl
-
-
-# by Dmitry V. Levin and Alexey Tourbin
-# check the first line
-0	search/1	package
->0	regex		\^package[\ \t]+[0-9A-Za-z_:]+\ *;	Perl5 module source text
-# not 'p', check other lines
-0	search/1	!p
->0	regex		\^package[\ \t]+[0-9A-Za-z_:]+\ *;
->>0	regex		\^1\ *;|\^(use|sub|my)\ .*[(;{=]	Perl5 module source text
-
-
-
-# Perl POD documents
-# From: Tom Hukins <tom@eborcom.com>
-0	search/1/B	\=pod\n		Perl POD document text
-0	search/1/B	\n\=pod\n	Perl POD document text
-0	search/1/B	\=head1\ 	Perl POD document text
-0	search/1/B	\n\=head1\ 	Perl POD document text
-0	search/1/B	\=head2\ 	Perl POD document text
-0	search/1/B	\n\=head2\ 	Perl POD document text
-
-# Perl Storable data files.
-0	string	perl-store	perl Storable (v0.6) data
->4	byte	>0	(net-order %d)
->>4	byte	&01	(network-ordered)
->>4	byte	=3	(major 1)
->>4	byte	=2	(major 1)
-
-0	string	pst0	perl Storable (v0.7) data
->4	byte	>0
->>4	byte	&01	(network-ordered)
->>4	byte	=5	(major 2)
->>4	byte	=4	(major 2)
->>5	byte	>0	(minor %d)
-
-#------------------------------------------------------------------------------
-# pgp:  file(1) magic for Pretty Good Privacy
-# see http://lists.gnupg.org/pipermail/gnupg-devel/1999-September/016052.html
-#
-0       beshort         0x9900                  PGP key public ring
-!:mime	application/x-pgp-keyring
-0       beshort         0x9501                  PGP key security ring
-!:mime	application/x-pgp-keyring
-0       beshort         0x9500                  PGP key security ring
-!:mime	application/x-pgp-keyring
-0	beshort		0xa600			PGP encrypted data
-#!:mime	application/pgp-encrypted
-#0	string		-----BEGIN\040PGP	text/PGP armored data
-!:mime	text/PGP # encoding: armored data
-#>15	string	PUBLIC\040KEY\040BLOCK-	public key block
-#>15	string	MESSAGE-		message
-#>15	string	SIGNED\040MESSAGE-	signed message
-#>15	string	PGP\040SIGNATURE-	signature
-
-2	string	---BEGIN\ PGP\ PUBLIC\ KEY\ BLOCK-	PGP public key block
-!:mime	application/pgp-keys
-0	string	-----BEGIN\040PGP\40MESSAGE-		PGP message
-!:mime	application/pgp
-0	string	-----BEGIN\040PGP\40SIGNATURE-		PGP signature
-!:mime	application/pgp-signature
-
-#------------------------------------------------------------------------------
-# pkgadd:  file(1) magic for SysV R4 PKG Datastreams
-#
-0       string          #\ PaCkAgE\ DaTaStReAm  pkg Datastream (SVR4)
-!:mime	application/x-svr4-package
-
-#------------------------------------------------------------------------------
-# plan9:  file(1) magic for AT&T Bell Labs' Plan 9 executables
-# From: "Stefan A. Haubenthal" <polluks@web.de>
-#
-0	belong		0x00000107	Plan 9 executable, Motorola 68k
-0	belong		0x000001EB	Plan 9 executable, Intel 386
-0	belong		0x00000247	Plan 9 executable, Intel 960
-0	belong		0x000002AB	Plan 9 executable, SPARC
-0	belong		0x00000407	Plan 9 executable, MIPS R3000
-0	belong		0x0000048B	Plan 9 executable, AT&T DSP 3210
-0	belong		0x00000517	Plan 9 executable, MIPS R4000 BE
-0	belong		0x000005AB	Plan 9 executable, AMD 29000
-0	belong		0x00000647	Plan 9 executable, ARM 7-something
-0	belong		0x000006EB	Plan 9 executable, PowerPC
-0	belong		0x00000797	Plan 9 executable, MIPS R4000 LE
-0	belong		0x0000084B	Plan 9 executable, DEC Alpha
-
-#------------------------------------------------------------------------------
-# plus5:  file(1) magic for Plus Five's UNIX MUMPS
-#
-# XXX - byte order?  Paging Hokey....
-#
-0	short		0x259		mumps avl global
->2	byte		>0		(V%d)
->6	byte		>0		with %d byte name
->7	byte		>0		and %d byte data cells
-0	short		0x25a		mumps blt global
->2	byte		>0		(V%d)
->8	short		>0		- %d byte blocks
->15	byte		0x00		- P/D format
->15	byte		0x01		- P/K/D format
->15	byte		0x02		- K/D format
->15	byte		>0x02		- Bad Flags
-
-#------------------------------------------------------------------------------
-# printer:  file(1) magic for printer-formatted files
-#
-
-# PostScript, updated by Daniel Quinlan (quinlan@yggdrasil.com)
-0	string		%!		PostScript document text
-!:mime	application/postscript
-!:apple	ASPSTEXT
->2	string		PS-Adobe-	conforming
->>11	string		>\0		DSC level %.3s
->>>15	string		EPS		\b, type %s
->>>15	string		Query		\b, type %s
->>>15	string		ExitServer	\b, type %s
->>>15   search/1000		%%LanguageLevel:\ 
->>>>&0	string		>\0		\b, Level %s
-# Some PCs have the annoying habit of adding a ^D as a document separator
-0	string		\004%!		PostScript document text
-!:mime	application/postscript
-!:apple	ASPSTEXT
->3	string		PS-Adobe-	conforming
->>12	string		>\0		DSC level %.3s
->>>16	string		EPS		\b, type %s
->>>16	string		Query		\b, type %s
->>>16	string		ExitServer	\b, type %s
->>>16   search/1000		%%LanguageLevel:\ 
->>>>&0	string		>\0		\b, Level %s
-0	string		\033%-12345X%!PS	PostScript document
-
-# DOS EPS Binary File Header
-# From: Ed Sznyter <ews@Black.Market.NET>
-0       belong          0xC5D0D3C6      DOS EPS Binary File
->4      long            >0              Postscript starts at byte %d
->>8     long            >0              length %d
->>>12   long            >0              Metafile starts at byte %d
->>>>16  long            >0              length %d
->>>20   long            >0              TIFF starts at byte %d
->>>>24  long            >0              length %d
-
-# Summary: Adobe's PostScript Printer Description File
-# Extension: .ppd
-# Reference: http://partners.adobe.com/public/developer/en/ps/5003.PPD_Spec_v4.3.pdf, Section 3.8
-# Submitted by: Yves Arrouye <arrouye@marin.fdn.fr>
-#
-0	string		*PPD-Adobe:\x20	PPD file
->&0	string		x		\b, version %s
-
-# HP Printer Job Language
-0	string		\033%-12345X@PJL	HP Printer Job Language data
-# HP Printer Job Language
-# The header found on Win95 HP plot files is the "Silliest Thing possible" 
-# (TM)
-# Every driver puts the language at some random position, with random case
-# (LANGUAGE and Language)
-# For example the LaserJet 5L driver puts the "PJL ENTER LANGUAGE" in line 10
-# From: Uwe Bonnes <bon@elektron.ikp.physik.th-darmstadt.de>
-# 
-0	string		\033%-12345X@PJL	HP Printer Job Language data
->&0	string		>\0			%s			
->>&0	string		>\0			%s			
->>>&0	string		>\0			%s		
->>>>&0	string		>\0			%s		
-#>15	string		\ ENTER\ LANGUAGE\ =
-#>31	string		PostScript		PostScript
-
-# HP Printer Control Language, Daniel Quinlan (quinlan@yggdrasil.com)
-0	string		\033E\033	HP PCL printer data
->3	string		\&l0A		- default page size
->3	string		\&l1A		- US executive page size
->3	string		\&l2A		- US letter page size
->3	string		\&l3A		- US legal page size
->3	string		\&l26A		- A4 page size
->3	string		\&l80A		- Monarch envelope size
->3	string		\&l81A		- No. 10 envelope size
->3	string		\&l90A		- Intl. DL envelope size
->3	string		\&l91A		- Intl. C5 envelope size
->3	string		\&l100A		- Intl. B5 envelope size
->3	string		\&l-81A		- No. 10 envelope size (landscape)
->3	string		\&l-90A		- Intl. DL envelope size (landscape)
-
-# IMAGEN printer-ready files:
-0	string	@document(		Imagen printer
-# this only works if "language xxx" is first item in Imagen header.
->10	string	language\ impress	(imPRESS data)
->10	string	language\ daisy		(daisywheel text)
->10	string	language\ diablo	(daisywheel text)
->10	string	language\ printer	(line printer emulation)
->10	string	language\ tektronix	(Tektronix 4014 emulation)
-# Add any other languages that your Imagen uses - remember
-# to keep the word `text' if the file is human-readable.
-# [GRR 950115:  missing "postscript" or "ultrascript" (whatever it was called)]
-#
-# Now magic for IMAGEN font files...
-0	string		Rast		RST-format raster font data
->45	string		>0		face %s
-# From Jukka Ukkonen
-0	string		\033[K\002\0\0\017\033(a\001\0\001\033(g	Canon Bubble Jet BJC formatted data
-
-# From <mike@flyn.org>
-# These are the /etc/magic entries to decode data sent to an Epson printer.
-0       string          \x1B\x40\x1B\x28\x52\x08\x00\x00REMOTE1P        Epson Stylus Color 460 data
-
-
-#------------------------------------------------------------------------------
-# zenographics:  file(1) magic for Zenographics ZjStream printer data
-# Rick Richardson  rickr@mn.rr.com
-0	string		JZJZ
->0x12	string		ZZ		Zenographics ZjStream printer data (big-endian)
-0	string		ZJZJ
->0x12	string		ZZ		Zenographics ZjStream printer data (little-endian)
-
-
-#------------------------------------------------------------------------------
-# Oak Technologies printer stream
-# Rick Richardson <rickr@mn.rr.com>
-0       string          OAK
->0x07	byte		0
->0x0b	byte		0	Oak Technologies printer stream
-
-# This would otherwise be recognized as PostScript - nick@debian.org
-0	string		%!VMF 		SunClock's Vector Map Format data
-
-#------------------------------------------------------------------------------
-# HP LaserJet 1000 series downloadable firmware file
-0	string	\xbe\xefABCDEFGH	HP LaserJet 1000 series downloadable firmware   
-
-# From: Paolo <oopla@users.sf.net>
-# Epson ESC/Page, ESC/PageColor 
-0	string	\x1b\x01@EJL	Epson ESC/Page language printer data
-
-#------------------------------------------------------------------------------
-# project:  file(1) magic for Project management
-# 
-# Magic strings for ftnchek project files. Alexander Mai
-0	string	FTNCHEK_\ P	project file for ftnchek
->10	string	1		version 2.7
->10	string	2		version 2.8 to 2.10
->10	string	3		version 2.11 or later
-
-#------------------------------------------------------------------------------
-# psdbms:  file(1) magic for psdatabase
-#
-0	belong&0xff00ffff	0x56000000	ps database
->1	string	>\0	version %s
->4	string	>\0	from kernel %s
-#------------------------------------------------------------------------------
-# psion:  file(1) magic for Psion handhelds data
-# from: Peter Breitenlohner <peb@mppmu.mpg.de>
-#
-0	lelong		0x10000037	Psion Series 5
->4	lelong		0x10000039	font file
->4	lelong		0x1000003A	printer driver
->4	lelong		0x1000003B	clipboard
->4	lelong		0x10000042	multi-bitmap image
->4	lelong		0x1000006A	application information file
->4	lelong		0x1000006D
->>8	lelong		0x1000007D	sketch image
-!:mime image/x-psion-sketch
->>8	lelong		0x1000007E	voice note
->>8	lelong		0x1000007F	word file
->>8	lelong		0x10000085	OPL program
->>8	lelong		0x10000088	sheet file
->>8	lelong		0x100001C4	EasyFax initialisation file
->4	lelong		0x10000073	OPO module
->4	lelong		0x10000074	OPL application
->4	lelong		0x1000008A	exported multi-bitmap image
-
-0	lelong		0x10000041	Psion Series 5 ROM multi-bitmap image
-
-0	lelong		0x10000050	Psion Series 5
->4	lelong		0x1000006D	database
->4	lelong		0x100000E4	ini file
-
-0	lelong		0x10000079	Psion Series 5 binary:
->4	lelong		0x00000000	DLL
->4	lelong		0x10000049	comms hardware library
->4	lelong		0x1000004A	comms protocol library
->4	lelong		0x1000005D	OPX
->4	lelong		0x1000006C	application
->4	lelong		0x1000008D	DLL
->4	lelong		0x100000AC	logical device driver
->4	lelong		0x100000AD	physical device driver
->4	lelong		0x100000E5	file transfer protocol
->4	lelong		0x100000E5	file transfer protocol
->4	lelong		0x10000140	printer definition
->4	lelong		0x10000141	printer definition
-
-0	lelong		0x1000007A	Psion Series 5 executable
-
-#------------------------------------------------------------------------------
-# pulsar:  file(1) magic for Pulsar POP3 daemon binary files
-#
-# http://pulsar.sourceforge.net
-# mailto:rok.papez@lugos.si
-#
-
-0	belong	0x1ee7f11e	Pulsar POP3 daemon mailbox cache file.
->4	ubelong	x		Version: %d.
->8	ubelong	x		\b%d
-
-
-#------------------------------------------------------------------------------
-# pyramid:  file(1) magic for Pyramids
-#
-# XXX - byte order?
-#
-0	long		0x50900107	Pyramid 90x family executable
-0	long		0x50900108	Pyramid 90x family pure executable
->16	long		>0		not stripped
-0	long		0x5090010b	Pyramid 90x family demand paged pure executable
->16	long		>0		not stripped
-
-#------------------------------------------------------------------------------
-# python:  file(1) magic for python
-#
-# From: David Necas <yeti@physics.muni.cz>
-# often the module starts with a multiline string
-0	string		"""	a python script text executable
-# MAGIC as specified in Python/import.c (1.5 to 2.3.0a)
-# 20121  ( YEAR - 1995 ) + MONTH  + DAY (little endian followed by "\r\n"
-0	belong		0x994e0d0a	python 1.5/1.6 byte-compiled
-0	belong		0x87c60d0a	python 2.0 byte-compiled
-0	belong		0x2aeb0d0a	python 2.1 byte-compiled
-0	belong		0x2ded0d0a	python 2.2 byte-compiled
-0	belong		0x3bf20d0a	python 2.3 byte-compiled
-0	belong		0x6df20d0a	python 2.4 byte-compiled
-0	belong		0xb3f20d0a	python 2.5 byte-compiled
-0	belong		0xd1f20d0a	python 2.6 byte-compiled
-
-
-0	string/b  #!\ /usr/bin/python	python script text executable
-
-
-#------------------------------------------------------------------------------
-# file(1) magic for revision control files
-# From Hendrik Scholz <hendrik@scholz.net>
-0	string	/1\ :pserver:	cvs password text file
-
-# Conary changesets
-# From: Jonathan Smith <smithj@rpath.com>
-0	belong	0xea3f81bb	Conary changeset data
-
-# Type: Git bundles (git-bundle)
-# From: Josh Triplett <josh@freedesktop.org>
-0	string	#\ v2\ git\ bundle\n	Git bundle
-
-# Type: Git pack
-# From: Adam Buchbinder <adam.buchbinder@gmail.com>
-# The actual magic is 'PACK', but that clashes with Doom/Quake packs. However,
-# those have a little-endian offset immediately following the magic 'PACK',
-# the first byte of which is never 0, while the first byte of the Git pack
-# version, since it's a tiny number stored in big-endian format, is always 0.
-0	string	PACK\0		Git pack
->4	belong	>0		\b, version %d
->>8	belong	>0		\b, %d objects
-
-# Type: Git pack index
-# From: Adam Buchbinder <adam.buchbinder@gmail.com>
-0	string	\377tOc		Git pack index
->4	belong	=2		\b, version 2
-
-# Type:	Mercurial bundles
-# From:	Seo Sanghyeon <tinuviel@sparcs.kaist.ac.kr>
-0	string	HG10		Mercurial bundle,
->4	string	UN		uncompressed
->4	string	BZ		bzip2 compressed
-
-# Type:	Subversion (SVN) dumps
-# From:	Uwe Zeisberger <zeisberg@informatik.uni-freiburg.de>
-0	string	SVN-fs-dump-format-version:	Subversion dumpfile
->28	string	>\0				(version: %s)
-
-# Type:	Bazaar revision bundles and merge requests
-# URL:	http://www.bazaar-vcs.org/
-# From:	Jelmer Vernooij <jelmer@samba.org>
-0	string	#\ Bazaar\ revision\ bundle\ v Bazaar Bundle
-0	string	#\ Bazaar\ merge\ directive\ format Bazaar merge directive
-
-#------------------------------------------------------------------------------
-# riff:  file(1) magic for RIFF format
-# See
-#
-#	http://www.seanet.com/users/matts/riffmci/riffmci.htm
-#
-# AVI section extended by Patrik R�dman <patrik+file-magic@iki.fi>
-#
-0	string		RIFF		RIFF (little-endian) data
-# RIFF Palette format
->8	string		PAL		\b, palette
->>16	leshort		x		\b, version %d
->>18	leshort		x		\b, %d entries
-# RIFF Device Independent Bitmap format
->8	string		RDIB		\b, device-independent bitmap
->>16	string		BM		
->>>30	leshort		12		\b, OS/2 1.x format
->>>>34	leshort		x		\b, %d x
->>>>36	leshort		x		%d
->>>30	leshort		64		\b, OS/2 2.x format
->>>>34	leshort		x		\b, %d x
->>>>36	leshort		x		%d
->>>30	leshort		40		\b, Windows 3.x format
->>>>34	lelong		x		\b, %d x
->>>>38	lelong		x		%d x
->>>>44	leshort		x		%d
-# RIFF MIDI format
->8	string		RMID		\b, MIDI
-# RIFF Multimedia Movie File format
->8	string		RMMP		\b, multimedia movie
-# RIFF wrapper for MP3
->8	string		RMP3		\b, MPEG Layer 3 audio
-# Microsoft WAVE format (*.wav)
->8	string		WAVE		\b, WAVE audio
-!:mime	audio/x-wav
->>20	leshort		1		\b, Microsoft PCM
->>>34	leshort		>0		\b, %d bit
->>20	leshort		2		\b, Microsoft ADPCM
->>20	leshort		6		\b, ITU G.711 A-law
->>20	leshort		7		\b, ITU G.711 mu-law
->>20	leshort		8		\b, Microsoft DTS
->>20	leshort		17		\b, IMA ADPCM
->>20	leshort		20		\b, ITU G.723 ADPCM (Yamaha)
->>20	leshort		49		\b, GSM 6.10
->>20	leshort		64		\b, ITU G.721 ADPCM
->>20	leshort		80		\b, MPEG
->>20	leshort		85		\b, MPEG Layer 3
->>20	leshort		0x2001		\b, DTS
->>22	leshort		=1		\b, mono
->>22	leshort		=2		\b, stereo
->>22	leshort		>2		\b, %d channels
->>24	lelong		>0		%d Hz
-# Corel Draw Picture
->8	string		CDRA		\b, Corel Draw Picture
-!:mime	image/x-coreldraw
-# AVI == Audio Video Interleave
->8	string		AVI\040		\b, AVI
-!:mime	video/x-msvideo
->>12    string          LIST
->>>20   string          hdrlavih
->>>>&36 lelong          x               \b, %lu x
->>>>&40 lelong          x               %lu,
->>>>&4  lelong          >1000000        <1 fps,
->>>>&4  lelong          1000000         1.00 fps,
->>>>&4  lelong          500000          2.00 fps,
->>>>&4  lelong          333333          3.00 fps,
->>>>&4  lelong          250000          4.00 fps,
->>>>&4  lelong          200000          5.00 fps,
->>>>&4  lelong          166667          6.00 fps,
->>>>&4  lelong          142857          7.00 fps,
->>>>&4  lelong          125000          8.00 fps,
->>>>&4  lelong          111111          9.00 fps,
->>>>&4  lelong          100000          10.00 fps,
-# ]9.9,10.1[
->>>>&4  lelong          <101010
->>>>>&-4        lelong  >99010
->>>>>>&-4       lelong  !100000         ~10 fps,
->>>>&4  lelong          83333           12.00 fps,
-# ]11.9,12.1[
->>>>&4  lelong          <84034
->>>>>&-4        lelong  >82645
->>>>>>&-4       lelong  !83333          ~12 fps,
->>>>&4  lelong          66667           15.00 fps,
-# ]14.9,15.1[
->>>>&4  lelong          <67114
->>>>>&-4        lelong  >66225
->>>>>>&-4       lelong  !66667          ~15 fps,
->>>>&4  lelong          50000           20.00 fps,
->>>>&4  lelong          41708           23.98 fps,
->>>>&4  lelong          41667           24.00 fps,
-# ]23.9,24.1[
->>>>&4  lelong          <41841
->>>>>&-4        lelong  >41494
->>>>>>&-4       lelong  !41708
->>>>>>>&-4      lelong  !41667          ~24 fps,
->>>>&4  lelong          40000           25.00 fps,
-# ]24.9,25.1[
->>>>&4  lelong          <40161
->>>>>&-4        lelong  >39841
->>>>>>&-4       lelong  !40000          ~25 fps,
->>>>&4  lelong          33367           29.97 fps,
->>>>&4  lelong          33333           30.00 fps,
-# ]29.9,30.1[
->>>>&4  lelong          <33445
->>>>>&-4        lelong  >33223
->>>>>>&-4       lelong  !33367
->>>>>>>&-4      lelong  !33333          ~30 fps,
->>>>&4  lelong          <32224          >30 fps,
-##>>>>&4  lelong          x               (%lu)
-##>>>>&20 lelong          x               %lu frames,
-# Note: The tests below assume that the AVI has 1 or 2 streams,
-#       "vids" optionally followed by "auds".
-#       (Should cover 99.9% of all AVIs.)
-# assuming avih length = 56
->>>88   string  LIST
->>>>96  string  strlstrh
->>>>>108        string  vids    video:
->>>>>>&0        lelong  0               uncompressed
-# skip past vids strh
->>>>>>(104.l+108)       string  strf
->>>>>>>(104.l+132)      lelong          1       RLE 8bpp
->>>>>>>(104.l+132)      string/c        cvid    Cinepak
->>>>>>>(104.l+132)      string/c        i263    Intel I.263
->>>>>>>(104.l+132)      string/c        iv32    Indeo 3.2
->>>>>>>(104.l+132)      string/c        iv41    Indeo 4.1
->>>>>>>(104.l+132)      string/c        iv50    Indeo 5.0
->>>>>>>(104.l+132)      string/c        mp42    Microsoft MPEG-4 v2
->>>>>>>(104.l+132)      string/c        mp43    Microsoft MPEG-4 v3
->>>>>>>(104.l+132)      string/c        fmp4    FFMpeg MPEG-4
->>>>>>>(104.l+132)      string/c        mjpg    Motion JPEG
->>>>>>>(104.l+132)      string/c        div3    DivX 3
->>>>>>>>112             string/c        div3    Low-Motion
->>>>>>>>112             string/c        div4    Fast-Motion
->>>>>>>(104.l+132)      string/c        divx    DivX 4
->>>>>>>(104.l+132)      string/c        dx50    DivX 5
->>>>>>>(104.l+132)      string/c        xvid    XviD
->>>>>>>(104.l+132)	string/c	h264	H.264
->>>>>>>(104.l+132)      string/c        wmv3    Windows Media Video 9
->>>>>>>(104.l+132)      string/c        h264    X.264 or H.264
->>>>>>>(104.l+132)      lelong  0
-##>>>>>>>(104.l+132)      string  x       (%.4s)
-# skip past first (video) LIST
->>>>(92.l+96)   string  LIST
->>>>>(92.l+104) string  strlstrh
->>>>>>(92.l+116)        string          auds    \b, audio:
-# auds strh length = 56:
->>>>>>>(92.l+172)       string          strf
->>>>>>>>(92.l+180)      leshort 0x0001  uncompressed PCM
->>>>>>>>(92.l+180)      leshort 0x0002  ADPCM
->>>>>>>>(92.l+180)      leshort 0x0006  aLaw
->>>>>>>>(92.l+180)      leshort 0x0007  uLaw
->>>>>>>>(92.l+180)      leshort 0x0050  MPEG-1 Layer 1 or 2
->>>>>>>>(92.l+180)      leshort 0x0055  MPEG-1 Layer 3
->>>>>>>>(92.l+180)      leshort 0x2000  Dolby AC3
->>>>>>>>(92.l+180)      leshort 0x0161  DivX
-##>>>>>>>>(92.l+180)      leshort x       (0x%.4x)
->>>>>>>>(92.l+182)      leshort 1       (mono,
->>>>>>>>(92.l+182)      leshort 2       (stereo,
->>>>>>>>(92.l+182)      leshort >2      (%d channels,
->>>>>>>>(92.l+184)      lelong  x       %d Hz)
-# auds strh length = 64:
->>>>>>>(92.l+180)       string          strf
->>>>>>>>(92.l+188)      leshort 0x0001  uncompressed PCM
->>>>>>>>(92.l+188)      leshort 0x0002  ADPCM
->>>>>>>>(92.l+188)      leshort 0x0055  MPEG-1 Layer 3
->>>>>>>>(92.l+188)      leshort 0x2000  Dolby AC3
->>>>>>>>(92.l+188)      leshort 0x0161  DivX
-##>>>>>>>>(92.l+188)      leshort x       (0x%.4x)
->>>>>>>>(92.l+190)      leshort 1       (mono,
->>>>>>>>(92.l+190)      leshort 2       (stereo,
->>>>>>>>(92.l+190)      leshort >2      (%d channels,
->>>>>>>>(92.l+192)      lelong  x       %d Hz)
-# Animated Cursor format
->8	string		ACON		\b, animated cursor
-# SoundFont 2 <mpruett@sgi.com>
->8	string		sfbk		SoundFont/Bank
-# MPEG-1 wrapped in a RIFF, apparently
->8      string          CDXA            \b, wrapped MPEG-1 (CDXA)
->8	string		4XMV		\b, 4X Movie file 
-
-#
-# XXX - some of the below may only appear in little-endian form.
-#
-# Also "MV93" appears to be for one form of Macromedia Director
-# files, and "GDMF" appears to be another multimedia format.
-#
-0	string		RIFX		RIFF (big-endian) data
-# RIFF Palette format
->8	string		PAL		\b, palette
->>16	beshort		x		\b, version %d
->>18	beshort		x		\b, %d entries
-# RIFF Device Independent Bitmap format
->8	string		RDIB		\b, device-independent bitmap
->>16	string		BM		
->>>30	beshort		12		\b, OS/2 1.x format
->>>>34	beshort		x		\b, %d x
->>>>36	beshort		x		%d
->>>30	beshort		64		\b, OS/2 2.x format
->>>>34	beshort		x		\b, %d x
->>>>36	beshort		x		%d
->>>30	beshort		40		\b, Windows 3.x format
->>>>34	belong		x		\b, %d x
->>>>38	belong		x		%d x
->>>>44	beshort		x		%d
-# RIFF MIDI format
->8	string		RMID		\b, MIDI
-# RIFF Multimedia Movie File format
->8	string		RMMP		\b, multimedia movie
-# Microsoft WAVE format (*.wav)
->8	string		WAVE		\b, WAVE audio
->>20	leshort		1		\b, Microsoft PCM
->>>34	leshort		>0		\b, %d bit
->>22	beshort		=1		\b, mono
->>22	beshort		=2		\b, stereo
->>22	beshort		>2		\b, %d channels
->>24	belong		>0		%d Hz
-# Corel Draw Picture
->8	string		CDRA		\b, Corel Draw Picture
-# AVI == Audio Video Interleave
->8	string		AVI\040		\b, AVI
-# Animated Cursor format
->8	string		ACON		\b, animated cursor
-# Notation Interchange File Format (big-endian only)
->8	string		NIFF		\b, Notation Interchange File Format
-# SoundFont 2 <mpruett@sgi.com>
->8	string		sfbk		SoundFont/Bank
-#------------------------------------------------------------------------------
-#
-# RPM: file(1) magic for Red Hat Packages   Erik Troan (ewt@redhat.com)
-#
-0	beshort		0xedab
->2	beshort		0xeedb		RPM
-!:mime	application/x-rpm
->>4	byte		x		v%d
->>6	beshort		0		bin
->>6	beshort		1		src
->>8	beshort		1		i386
->>8	beshort		2		Alpha
->>8	beshort		3		Sparc
->>8	beshort		4		MIPS
->>8	beshort		5		PowerPC
->>8	beshort		6		68000
->>8	beshort		7		SGI
->>8	beshort		8		RS6000
->>8	beshort		9		IA64
->>8	beshort		10		Sparc64
->>8	beshort		11		MIPSel
->>8	beshort		12		ARM
->>10	string		x		%s
-
-#------------------------------------------------------------------------------
-# rtf:	file(1) magic for Rich Text Format (RTF)
-#
-# Duncan P. Simpson, D.P.Simpson@dcs.warwick.ac.uk
-#
-0	string		{\\rtf		Rich Text Format data,
-!:mime	text/rtf
->5	string		1		version 1,
->>6	string		\\ansi		ANSI
->>6	string		\\mac		Apple Macintosh
->>6	string		\\pc		IBM PC, code page 437
->>6	string		\\pca		IBM PS/2, code page 850
->>6	default		x		unknown character set
->5	default		x		unknown version
-#------------------------------------------------------------------------------
-# ruby:  file(1) magic for Lua scripting language
-# URL:  http://www.ruby-lang.org/
-# From: Reuben Thomas <rrt@sc3d.org>
-
-# Ruby scripts
-0	search/1/b	#!\ /usr/bin/ruby	Ruby script text executable
-!:mime	application/x-ruby
-0	search/1/b	#!\ /usr/local/bin/ruby	Ruby script text executable
-!:mime	application/x-ruby
-0	search/1	#!/usr/bin/env\ ruby	Ruby script text executable
-!:mime	application/x-ruby
-0	search/1	#!\ /usr/bin/env\ ruby	Ruby script text executable
-!:mime	application/x-ruby
-
-#------------------------------------------------------------------------------
-# sc:  file(1) magic for "sc" spreadsheet
-#
-38	string		Spreadsheet	sc spreadsheet file
-!:mime	application/x-sc
-
-#------------------------------------------------------------------------------
-# sccs:  file(1) magic for SCCS archives
-#
-# SCCS archive structure:
-# \001h01207
-# \001s 00276/00000/00000
-# \001d D 1.1 87/09/23 08:09:20 ian 1 0
-# \001c date and time created 87/09/23 08:09:20 by ian
-# \001e
-# \001u
-# \001U
-# ... etc.
-# Now '\001h' happens to be the same as the 3B20's a.out magic number (0550).
-# *Sigh*. And these both came from various parts of the USG.
-# Maybe we should just switch everybody from SCCS to RCS!
-# Further, you can't just say '\001h0', because the five-digit number
-# is a checksum that could (presumably) have any leading digit,
-# and we don't have regular expression matching yet. 
-# Hence the following official kludge:
-8	string		\001s\ 			SCCS archive data
-#------------------------------------------------------------------------------
-# scientific:  file(1) magic for scientific formats 
-#
-# From: Joe Krahn <krahn@niehs.nih.gov>
-
-########################################################
-# CCP4 data and plot files:
-0	string		MTZ\040		MTZ reflection file
-
-92	string		PLOT%%84	Plot84 plotting file
->52	byte		1		, Little-endian
->55	byte		1		, Big-endian
-
-########################################################
-# Electron density MAP/MASK formats
-
-0	string		EZD_MAP	NEWEZD Electron Density Map
-109	string		MAP\040(  Old EZD Electron Density Map
-
-0	string/c	:-)\040Origin	BRIX Electron Density Map
->170	string		>0	, Sigma:%.12s
-#>4	string		>0	%.178s
-#>4	addr		x	%.178s
-
-7	string		18\040!NTITLE	XPLOR ASCII Electron Density Map
-9	string		\040!NTITLE\012\040REMARK	CNS ASCII electron density map
-
-208	string		MAP\040	CCP4 Electron Density Map
-# Assumes same stamp for float and double (normal case)
->212	byte		17	\b, Big-endian
->212	byte		34	\b, VAX format
->212	byte		68	\b, Little-endian
->212	byte		85	\b, Convex native
-
-############################################################
-# X-Ray Area Detector images
-0	string	R-AXIS4\ \ \ 	R-Axis Area Detector Image:
->796	lelong	<20		Little-endian, IP #%d,
->>768	lelong	>0		Size=%dx
->>772	lelong	>0		\b%d
->796	belong	<20		Big-endian, IP #%d,
->>768	belong	>0		Size=%dx
->>772	belong	>0		\b%d
-
-0	string	RAXIS\ \ \ \ \ 	R-Axis Area Detector Image, Win32:
->796	lelong	<20		Little-endian, IP #%d,
->>768	lelong	>0		Size=%dx
->>772	lelong	>0		\b%d
->796	belong	<20		Big-endian, IP #%d,
->>768	belong	>0		Size=%dx
->>772	belong	>0		\b%d
-
-
-1028	string	MMX\000\000\000\000\000\000\000\000\000\000\000\000\000	MAR Area Detector Image,
->1072	ulong	>1		Compressed(%d),
->1100	ulong	>1		%d headers,
->1104	ulong	>0		%d x
->1108	ulong	>0		%d,
->1120	ulong	>0		%d bits/pixel
-
-# Type: GEDCOM genealogical (family history) data
-# From: Giuseppe Bilotta
-0       search/1/c	0\ HEAD         GEDCOM genealogy text
->&0     search		1\ GEDC
->>&0    search		2\ VERS         version
->>>&1   search/1	>\0		%s
-# From: Phil Endecott <phil05@chezphil.org>
-0	string	\000\060\000\040\000\110\000\105\000\101\000\104		GEDCOM data
-0	string	\060\000\040\000\110\000\105\000\101\000\104\000		GEDCOM data
-0	string	\376\377\000\060\000\040\000\110\000\105\000\101\000\104	GEDCOM data
-0	string	\377\376\060\000\040\000\110\000\105\000\101\000\104\000	GEDCOM data
-0	search/1		-----BEGIN\ CERTIFICATE------	RFC1421 Security Certificate text
-0	search/1		-----BEGIN\ NEW\ CERTIFICATE	RFC1421 Security Certificate Signing Request text
-0	belong	0xedfeedfe	Sun 'jks' Java Keystore File data
-# Type:	SE Linux policy modules *.pp reference policy
-#	for Fedora 5 to 9, RHEL5, and Debian Etch and Lenny.
-# URL:	http://doc.coker.com.au/computers/selinux-magic
-# From:	Russell Coker <russell@coker.com.au>
-
-0		lelong	0xf97cff8f	SE Linux modular policy
->4		lelong	x		version %d,
->8		lelong	x		%d sections,
->>(12.l)	lelong	0xf97cff8d
->>>(12.l+27)	lelong	x		mod version %d,
->>>(12.l+31)	lelong	0		Not MLS,
->>>(12.l+31)	lelong	1		MLS,
->>>(12.l+23)	lelong	2
->>>>(12.l+47)	string	>\0		module name %s
->>>(12.l+23)	lelong	1		base
-
-1	string	policy_module(	SE Linux policy module source
-2	string	policy_module(	SE Linux policy module source
-
-0	string	##\ <summary>	SE Linux policy interface source
-
-#0	search	gen_context(	SE Linux policy file contexts
-
-#0	search	gen_sens(	SE Linux policy MLS constraints source
-
-#------------------------------------------------------------------------------
-# sendmail:  file(1) magic for sendmail config files
-#
-# XXX - byte order?
-#
-0	byte	046	  Sendmail frozen configuration 
->16	string	>\0	  - version %s
-0	short	0x271c	  Sendmail frozen configuration
->16	string	>\0	  - version %s
-
-#------------------------------------------------------------------------------
-# sendmail:  file(1) magic for sendmail m4(1) files
-#
-# From Hendrik Scholz <hendrik@scholz.net>
-# i.e. files in /usr/share/sendmail/cf/
-#
-0   string  divert(-1)\n    sendmail m4 text file
-
-
-#------------------------------------------------------------------------------
-# sequent:  file(1) magic for Sequent machines
-#
-# Sequent information updated by Don Dwiggins <atsun!dwiggins>.
-# For Sequent's multiprocessor systems (incomplete).
-0	lelong	0x00ea        	BALANCE NS32000 .o
->16	lelong	>0		not stripped
->124	lelong	>0		version %ld
-0	lelong	0x10ea        	BALANCE NS32000 executable (0 @ 0)
->16	lelong  >0            	not stripped
->124	lelong	>0		version %ld
-0	lelong	0x20ea        	BALANCE NS32000 executable (invalid @ 0)
->16	lelong  >0            	not stripped
->124	lelong	>0		version %ld
-0	lelong	0x30ea        	BALANCE NS32000 standalone executable
->16	lelong  >0          	not stripped
->124	lelong	>0		version %ld
-#
-# Symmetry information added by Jason Merrill <jason@jarthur.claremont.edu>.
-# Symmetry magic nums will not be reached if DOS COM comes before them;
-# byte 0xeb is matched before these get a chance.
-0	leshort	0x12eb		SYMMETRY i386 .o
->16	lelong	>0		not stripped
->124	lelong	>0		version %ld
-0	leshort	0x22eb		SYMMETRY i386 executable (0 @ 0)
->16	lelong	>0		not stripped
->124	lelong	>0		version %ld
-0	leshort	0x32eb		SYMMETRY i386 executable (invalid @ 0)
->16	lelong	>0		not stripped
->124	lelong	>0		version %ld
-0	leshort	0x42eb		SYMMETRY i386 standalone executable
->16	lelong	>0		not stripped
->124	lelong	>0		version %ld
-
-#------------------------------------------------------------------------------
-# sgi:  file(1) magic for Silicon Graphics applications
-
-#
-#
-# Performance Co-Pilot file types
-0	string	PmNs				PCP compiled namespace (V.0)
-0	string	PmN				PCP compiled namespace
->3	string	>\0				(V.%1.1s)
-#3	lelong	0x84500526			PCP archive
-3	belong	0x84500526			PCP archive
->7	byte	x				(V.%d)
-#>20	lelong	-2				temporal index
-#>20	lelong	-1				metadata
-#>20	lelong	0				log volume #0
-#>20	lelong	>0				log volume #%ld
->20	belong	-2				temporal index
->20	belong	-1				metadata
->20	belong	0				log volume #0
->20	belong	>0				log volume #%ld
->24	string	>\0				host: %s
-0	string	PCPFolio			PCP
->9	string	Version:			Archive Folio
->18	string	>\0				(V.%s)
-0	string	#pmchart			PCP pmchart view
->9	string	Version
->17	string	>\0				(V%-3.3s)
-0	string	#kmchart			PCP kmchart view
->9	string	Version
->17	string	>\0				(V.%s)
-0	string	pmview				PCP pmview config
->7	string	Version
->15	string	>\0				(V%-3.3s)
-0	string	#pmlogger			PCP pmlogger config
->10	string	Version
->18	string	>\0				(V%1.1s)
-0	string	#pmdahotproc			PCP pmdahotproc config
->13	string	Version
->21	string	>\0				(V%-3.3s)
-0	string	PcPh				PCP Help
->4	string	1				Index
->4	string	2				Text
->5	string	>\0				(V.%1.1s)
-0	string	#pmieconf-rules			PCP pmieconf rules
->16	string	>\0				(V.%1.1s)
-3	string	pmieconf-pmie			PCP pmie config
->17	string	>\0				(V.%1.1s)
-
-# SpeedShop data files
-0	lelong	0x13130303			SpeedShop data file
-
-# mdbm files
-0	lelong	0x01023962			mdbm file, version 0 (obsolete)
-0	string	mdbm				mdbm file,
->5	byte	x				version %d,
->6	byte	x				2^%d pages,
->7	byte	x				pagesize 2^%d,
->17	byte	x				hash %d,
->11	byte	x				dataformat %d
-
-# Alias Maya files
-0	string	//Maya ASCII	Alias Maya Ascii File,
->13	string	>\0	version %s
-8	string	MAYAFOR4	Alias Maya Binary File,
->32	string	>\0	version %s scene
-8	string	MayaFOR4	Alias Maya Binary File,
->32	string	>\0	version %s scene
-8	string	CIMG		Alias Maya Image File
-8	string	DEEP		Alias Maya Image File
-#------------------------------------------------------------------------------
-# Type:	SVG Vectorial Graphics
-# From:	Noel Torres <tecnico@ejerciciosresueltos.com>
-0	string		\<?xml\ version="
->15	string		>\0
->>23	search/400	\<svg			SVG Scalable Vector Graphics image
-!:mime	image/svg+xml
->>23	search/400	\<gnc-v2		GnuCash file
-!:mime	application/x-gnucash
-
-# Sitemap file
-0	string		\<?xml\ version="
->15	string		>\0
->>23	search/400	\<urlset		XML Sitemap document text
-!:mime	application/xml-sitemap
-
-#------------------------------------------------------------------------------
-# sgml:  file(1) magic for Standard Generalized Markup Language
-# HyperText Markup Language (HTML) is an SGML document type,
-# from Daniel Quinlan (quinlan@yggdrasil.com)
-# adapted to string extenstions by Anthon van der Neut <anthon@mnt.org)
-0	search/1/cB	\<!doctype\ html	HTML document text
-!:mime	text/html
-0	search/1/cb	\<head			HTML document text
-!:mime	text/html
-0	search/1/cb	\<title			HTML document text
-!:mime	text/html
-0	search/1/cb	\<html			HTML document text
-!:mime	text/html
-
-# Extensible markup language (XML), a subset of SGML
-# from Marc Prud'hommeaux (marc@apocalypse.org)
-0	search/1/cb	\<?xml			XML document text
-!:mime	application/xml
-0	string		\<?xml\ version\ "	XML
-!:mime	application/xml
-0	string		\<?xml\ version="	XML
-!:mime	application/xml
->15	search/1	>\0			%.3s document text
->>23	search/1	\<xsl:stylesheet	(XSL stylesheet)
->>24	search/1	\<xsl:stylesheet	(XSL stylesheet)
-0	string		\<?xml\ version='	XML
-!:mime	application/xml
->15	search/1	>\0			%.3s document text
->>23	search/1	\<xsl:stylesheet	(XSL stylesheet)
->>24	search/1	\<xsl:stylesheet	(XSL stylesheet)
-0	search/1/b	\<?xml			XML document text
-!:mime	application/xml
-0	search/1/b	\<?XML			broken XML document text
-!:mime	application/xml
-
-
-# SGML, mostly from rph@sq
-0	search/1/cb	\<!doctype		exported SGML document text
-0	search/1/cb	\<!subdoc		exported SGML subdocument text
-0	search/1/cb	\<!--			exported SGML document text
-
-# Web browser cookie files
-# (Mozilla, Galeon, Netscape 4, Konqueror..)
-# Ulf Harnhammar <ulfh@update.uu.se>
-0	search/1	#\ HTTP\ Cookie\ File	Web browser cookie text
-0	search/1	#\ Netscape\ HTTP\ Cookie\ File	Netscape cookie text
-0	search/1	#\ KDE\ Cookie\ File	Konqueror cookie text
-
-#------------------------------------------------------------------------
-# file(1) magic for sharc files
-#
-# SHARC DSP, MIDI SysEx and RiscOS filetype definitions added by 
-# FutureGroove Music (dsp@futuregroove.de)
-
-#------------------------------------------------------------------------
-#0	string			Draw		RiscOS Drawfile
-#0	string			PACK		RiscOS PackdDir archive
-
-#------------------------------------------------------------------------
-# SHARC DSP stuff (based on the FGM SHARC DSP SDK)
-
-#0	string			=!		Assembler source
-#0	string			Analog		ADi asm listing file
-0	string			.SYSTEM		SHARC architecture file
-0	string			.system		SHARC architecture file
-
-0	leshort			0x521C		SHARC COFF binary
->2	leshort			>1		, %hd sections
->>12	lelong			>0		, not stripped
-
-#------------------------------------------------------------------------------
-# sinclair:  file(1) sinclair QL
-
-# additions to /etc/magic by Thomas M. Ott (ThMO)
-
-# Sinclair QL floppy disk formats (ThMO)
-0	string	=QL5		QL disk dump data,
->3	string	=A		720 KB,
->3	string	=B		1.44 MB,
->3	string	=C		3.2 MB,
->4	string	>\0		label:%.10s
-
-# Sinclair QL OS dump (ThMO)
-# (NOTE: if `file' would be able to use indirect references in a endian format
-#	 differing from the natural host format, this could be written more
-#	 reliably and faster...)
-#
-# we *can't* lookup QL OS code dumps, because `file' is UNABLE to read more
-# than the first 8K of a file... #-(
-#
-#0		belong	=0x30000
-#>49124		belong	<47104
-#>>49128		belong	<47104
-#>>>49132	belong	<47104
-#>>>>49136	belong	<47104	QL OS dump data,
-#>>>>>49148	string	>\0	type %.3s,
-#>>>>>49142	string	>\0	version %.4s
-
-# Sinclair QL firmware executables (ThMO)
-0	string	NqNqNq`\004	QL firmware executable (BCPL)
-
-# Sinclair QL libraries (was ThMO)
-0	beshort	0xFB01		QDOS object
->2	pstring	x		'%s'
-
-# Sinclair QL executables (was ThMO)
-4	belong	0x4AFB		QDOS executable
->9	pstring	x		'%s'
-
-# Sinclair QL ROM (ThMO)
-0	belong	=0x4AFB0001	QL plugin-ROM data,
->9	pstring	=\0		un-named
->9	pstring	>\0		named: %s
-# Type: SiSU Markup Language
-# URL:  http://www.sisudoc.org/
-# From: Ralph Amissah <ralph.amissah@gmail.com>
-
-0	regex	\^%?[\ \t]*SiSU[\ \t]+insert	SiSU text insert
->5	regex	[0-9.]+				%s
-
-0	regex	\^%[\ \t]+SiSU[\ \t]+master	SiSU text master
->5	regex	[0-9.]+				%s
-
-0	regex	\^%?[\ \t]*SiSU[\ \t]+text	SiSU text
->5	regex	[0-9.]+				%s
-
-0	regex	\^%?[\ \t]*SiSU[\ \t][0-9.]+	SiSU text
->5	regex	[0-9.]+				%s
-
-0	regex	\^%*[\ \t]*sisu-[0-9.]+		SiSU text
->5	regex	[0-9.]+				%s
-#------------------------------------------------------------------------------
-# Sketch Drawings: http://sketch.sourceforge.net/ 
-# From: Edwin Mons <e@ik.nu>
-0	search/1	##Sketch	Sketch document text
-
-#-----------------------------------------------
-# GNU Smalltalk image, starting at version 1.6.2
-# From: catull_us@yahoo.com
-#
-0	string	GSTIm\0\0	GNU SmallTalk
-# little-endian
->7	byte&1	=0		LE image version
->>10	byte	x		%d.
->>9	byte	x		\b%d.
->>8	byte	x		\b%d
-#>>12	lelong	x		, data: %ld
-#>>16	lelong	x		, table: %ld
-#>>20	lelong	x		, memory: %ld
-# big-endian
->7	byte&1	=1		BE image version
->>8	byte	x		%d.
->>9	byte	x		\b%d.
->>10	byte	x		\b%d
-#>>12	belong	x		, data: %ld
-#>>16	belong	x		, table: %ld
-#>>20	belong	x		, memory: %ld
-
-
-
-#------------------------------------------------------------------------------
-# sniffer:  file(1) magic for packet capture files
-#
-# From: guy@alum.mit.edu (Guy Harris)
-#
-
-#
-# Microsoft Network Monitor 1.x capture files.
-#
-0	string		RTSS		NetMon capture file
->5	byte		x		- version %d
->4	byte		x		\b.%d
->6	leshort		0		(Unknown)
->6	leshort		1		(Ethernet)
->6	leshort		2		(Token Ring)
->6	leshort		3		(FDDI)
->6	leshort		4		(ATM)
-
-#
-# Microsoft Network Monitor 2.x capture files.
-#
-0	string		GMBU		NetMon capture file
->5	byte		x		- version %d
->4	byte		x		\b.%d
->6	leshort		0		(Unknown)
->6	leshort		1		(Ethernet)
->6	leshort		2		(Token Ring)
->6	leshort		3		(FDDI)
->6	leshort		4		(ATM)
-
-#
-# Network General Sniffer capture files.
-# Sorry, make that "Network Associates Sniffer capture files."
-# Sorry, make that "Network General old DOS Sniffer capture files."
-#
-0	string		TRSNIFF\ data\ \ \ \ \032	Sniffer capture file
->33	byte		2		(compressed)
->23	leshort		x		- version %d
->25	leshort		x		\b.%d
->32	byte		0		(Token Ring)
->32	byte		1		(Ethernet)
->32	byte		2		(ARCNET)
->32	byte		3		(StarLAN)
->32	byte		4		(PC Network broadband)
->32	byte		5		(LocalTalk)
->32	byte		6		(Znet)
->32	byte		7		(Internetwork Analyzer)
->32	byte		9		(FDDI)
->32	byte		10		(ATM)
-
-#
-# Cinco Networks NetXRay capture files.
-# Sorry, make that "Network General Sniffer Basic capture files."
-# Sorry, make that "Network Associates Sniffer Basic capture files."
-# Sorry, make that "Network Associates Sniffer Basic, and Windows
-# Sniffer Pro", capture files."
-# Sorry, make that "Network General Sniffer capture files."
-#
-0	string		XCP\0		NetXRay capture file
->4	string		>\0		- version %s
->44	leshort		0		(Ethernet)
->44	leshort		1		(Token Ring)
->44	leshort		2		(FDDI)
->44	leshort		3		(WAN)
->44	leshort		8		(ATM)
->44	leshort		9		(802.11)
-
-#
-# "libpcap" capture files.
-# (We call them "tcpdump capture file(s)" for now, as "tcpdump" is
-# the main program that uses that format, but there are other programs
-# that use "libpcap", or that use the same capture file format.)
-#
-0	ubelong		0xa1b2c3d4	tcpdump capture file (big-endian)
->4	beshort		x		- version %d
->6	beshort		x		\b.%d
->20	belong		0		(No link-layer encapsulation
->20	belong		1		(Ethernet
->20	belong		2		(3Mb Ethernet
->20	belong		3		(AX.25
->20	belong		4		(ProNET
->20	belong		5		(CHAOS
->20	belong		6		(Token Ring
->20	belong		7		(BSD ARCNET
->20	belong		8		(SLIP
->20	belong		9		(PPP
->20	belong		10		(FDDI
->20	belong		11		(RFC 1483 ATM
->20	belong		12		(raw IP
->20	belong		13		(BSD/OS SLIP
->20	belong		14		(BSD/OS PPP
->20	belong		19		(Linux ATM Classical IP
->20	belong		50		(PPP or Cisco HDLC
->20	belong		51		(PPP-over-Ethernet
->20	belong		99		(Symantec Enterprise Firewall
->20	belong		100		(RFC 1483 ATM
->20	belong		101		(raw IP
->20	belong		102		(BSD/OS SLIP
->20	belong		103		(BSD/OS PPP
->20	belong		104		(BSD/OS Cisco HDLC
->20	belong		105		(802.11
->20	belong		106		(Linux Classical IP over ATM
->20	belong		107		(Frame Relay
->20	belong		108		(OpenBSD loopback
->20	belong		109		(OpenBSD IPsec encrypted
->20	belong		112		(Cisco HDLC
->20	belong		113		(Linux "cooked"
->20	belong		114		(LocalTalk
->20	belong		117		(OpenBSD PFLOG
->20	belong		119		(802.11 with Prism header
->20	belong		122		(RFC 2625 IP over Fibre Channel
->20	belong		123		(SunATM
->20	belong		127		(802.11 with radiotap header
->20	belong		129		(Linux ARCNET
->20	belong		138		(Apple IP over IEEE 1394
->20	belong		140		(MTP2
->20	belong		141		(MTP3
->20	belong		143		(DOCSIS
->20	belong		144		(IrDA
->20	belong		147		(Private use 0
->20	belong		148		(Private use 1
->20	belong		149		(Private use 2
->20	belong		150		(Private use 3
->20	belong		151		(Private use 4
->20	belong		152		(Private use 5
->20	belong		153		(Private use 6
->20	belong		154		(Private use 7
->20	belong		155		(Private use 8
->20	belong		156		(Private use 9
->20	belong		157		(Private use 10
->20	belong		158		(Private use 11
->20	belong		159		(Private use 12
->20	belong		160		(Private use 13
->20	belong		161		(Private use 14
->20	belong		162		(Private use 15
->20	belong		163		(802.11 with AVS header
->16	belong		x		\b, capture length %d)
-0	ulelong		0xa1b2c3d4	tcpdump capture file (little-endian)
->4	leshort		x		- version %d
->6	leshort		x		\b.%d
->20	lelong		0		(No link-layer encapsulation
->20	lelong		1		(Ethernet
->20	lelong		2		(3Mb Ethernet
->20	lelong		3		(AX.25
->20	lelong		4		(ProNET
->20	lelong		5		(CHAOS
->20	lelong		6		(Token Ring
->20	lelong		7		(ARCNET
->20	lelong		8		(SLIP
->20	lelong		9		(PPP
->20	lelong		10		(FDDI
->20	lelong		11		(RFC 1483 ATM
->20	lelong		12		(raw IP
->20	lelong		13		(BSD/OS SLIP
->20	lelong		14		(BSD/OS PPP
->20	lelong		19		(Linux ATM Classical IP
->20	lelong		50		(PPP or Cisco HDLC
->20	lelong		51		(PPP-over-Ethernet
->20	lelong		99		(Symantec Enterprise Firewall
->20	lelong		100		(RFC 1483 ATM
->20	lelong		101		(raw IP
->20	lelong		102		(BSD/OS SLIP
->20	lelong		103		(BSD/OS PPP
->20	lelong		104		(BSD/OS Cisco HDLC
->20	lelong		105		(802.11
->20	lelong		106		(Linux Classical IP over ATM
->20	lelong		107		(Frame Relay
->20	lelong		108		(OpenBSD loopback
->20	lelong		109		(OpenBSD IPsec encrypted
->20	lelong		112		(Cisco HDLC
->20	lelong		113		(Linux "cooked"
->20	lelong		114		(LocalTalk
->20	lelong		117		(OpenBSD PFLOG
->20	lelong		119		(802.11 with Prism header
->20	lelong		122		(RFC 2625 IP over Fibre Channel
->20	lelong		123		(SunATM
->20	lelong		127		(802.11 with radiotap header
->20	lelong		129		(Linux ARCNET
->20	lelong		138		(Apple IP over IEEE 1394
->20	lelong		140		(MTP2
->20	lelong		141		(MTP3
->20	lelong		143		(DOCSIS
->20	lelong		144		(IrDA
->20	lelong		147		(Private use 0
->20	lelong		148		(Private use 1
->20	lelong		149		(Private use 2
->20	lelong		150		(Private use 3
->20	lelong		151		(Private use 4
->20	lelong		152		(Private use 5
->20	lelong		153		(Private use 6
->20	lelong		154		(Private use 7
->20	lelong		155		(Private use 8
->20	lelong		156		(Private use 9
->20	lelong		157		(Private use 10
->20	lelong		158		(Private use 11
->20	lelong		159		(Private use 12
->20	lelong		160		(Private use 13
->20	lelong		161		(Private use 14
->20	lelong		162		(Private use 15
->20	lelong		163		(802.11 with AVS header
->16	lelong		x		\b, capture length %d)
-
-#
-# "libpcap"-with-Alexey-Kuznetsov's-patches capture files.
-# (We call them "tcpdump capture file(s)" for now, as "tcpdump" is
-# the main program that uses that format, but there are other programs
-# that use "libpcap", or that use the same capture file format.)
-#
-0	ubelong		0xa1b2cd34	extended tcpdump capture file (big-endian)
->4	beshort		x		- version %d
->6	beshort		x		\b.%d
->20	belong		0		(No link-layer encapsulation
->20	belong		1		(Ethernet
->20	belong		2		(3Mb Ethernet
->20	belong		3		(AX.25
->20	belong		4		(ProNET
->20	belong		5		(CHAOS
->20	belong		6		(Token Ring
->20	belong		7		(ARCNET
->20	belong		8		(SLIP
->20	belong		9		(PPP
->20	belong		10		(FDDI
->20	belong		11		(RFC 1483 ATM
->20	belong		12		(raw IP
->20	belong		13		(BSD/OS SLIP
->20	belong		14		(BSD/OS PPP
->16	belong		x		\b, capture length %d)
-0	ulelong		0xa1b2cd34	extended tcpdump capture file (little-endian)
->4	leshort		x		- version %d
->6	leshort		x		\b.%d
->20	lelong		0		(No link-layer encapsulation
->20	lelong		1		(Ethernet
->20	lelong		2		(3Mb Ethernet
->20	lelong		3		(AX.25
->20	lelong		4		(ProNET
->20	lelong		5		(CHAOS
->20	lelong		6		(Token Ring
->20	lelong		7		(ARCNET
->20	lelong		8		(SLIP
->20	lelong		9		(PPP
->20	lelong		10		(FDDI
->20	lelong		11		(RFC 1483 ATM
->20	lelong		12		(raw IP
->20	lelong		13		(BSD/OS SLIP
->20	lelong		14		(BSD/OS PPP
->16	lelong		x		\b, capture length %d)
-
-#
-# AIX "iptrace" capture files.
-#
-0	string		iptrace\ 1.0	"iptrace" capture file
-0	string		iptrace\ 2.0	"iptrace" capture file
-
-#
-# Novell LANalyzer capture files.
-#
-0	leshort		0x1001		LANalyzer capture file
-0	leshort		0x1007		LANalyzer capture file
-
-#
-# HP-UX "nettl" capture files.
-#
-0	string		\x54\x52\x00\x64\x00	"nettl" capture file
-
-#
-# RADCOM WAN/LAN Analyzer capture files.
-#
-0	string		\x42\xd2\x00\x34\x12\x66\x22\x88	RADCOM WAN/LAN Analyzer capture file
-
-#
-# NetStumbler log files.  Not really packets, per se, but about as
-# close as you can get.  These are log files from NetStumbler, a
-# Windows program, that scans for 802.11b networks.
-#
-0	string		NetS		NetStumbler log file
->8	lelong		x		\b, %d stations found
-
-#
-# EtherPeek/AiroPeek "version 9" capture files.
-#
-0	string		\177ver		EtherPeek/AiroPeek capture file
-
-#
-# Visual Networks traffic capture files.
-#
-0	string		\x05VNF		Visual Networks traffic capture file
-
-#
-# Network Instruments Observer capture files.
-#
-0	string		ObserverPktBuffe	Network Instruments Observer capture file
-
-#
-# Files from Accellent Group's 5View products.
-#
-0	string		\xaa\xaa\xaa\xaa	5View capture file
-#------------------------------------------------------------------------------
-# softquad:  file(1) magic for SoftQuad Publishing Software
-#
-# Author/Editor and RulesBuilder
-#
-# XXX - byte order?
-#
-0	string		\<!SQ\ DTD>	Compiled SGML rules file
->9	string		>\0		 Type %s
-0	string		\<!SQ\ A/E>	A/E SGML Document binary
->9	string		>\0		 Type %s
-0	string		\<!SQ\ STS>	A/E SGML binary styles file
->9	string		>\0		 Type %s
-0	short		0xc0de		Compiled PSI (v1) data
-0	short		0xc0da		Compiled PSI (v2) data
->3	string		>\0		(%s)
-# Binary sqtroff font/desc files...
-0	short		0125252		SoftQuad DESC or font file binary
->2	short		>0		- version %d
-# Bitmaps...
-0	search/1	SQ\ BITMAP1	SoftQuad Raster Format text
-#0	string		SQ\ BITMAP2	SoftQuad Raster Format data
-# sqtroff intermediate language (replacement for ditroff int. lang.)
-0	string		X\ 		SoftQuad troff Context intermediate
->2	string		495		for AT&T 495 laser printer
->2	string		hp		for Hewlett-Packard LaserJet
->2	string		impr		for IMAGEN imPRESS
->2	string		ps		for PostScript
-
-# From: Michael Piefel <piefel@debian.org>
-# sqtroff intermediate language (replacement for ditroff int. lang.)
-0	string		X\ 495		SoftQuad troff Context intermediate for AT&T 495 laser printer
-0	string		X\ hp		SoftQuad troff Context intermediate for HP LaserJet
-0	string		X\ impr		SoftQuad troff Context intermediate for IMAGEN imPRESS
-0	string		X\ ps		SoftQuad troff Context intermediate for PostScript
-
-#------------------------------------------------------------------------------
-# spec:  file(1) magic for SPEC raw results (*.raw, *.rsf)
-#
-# Cloyce D. Spradling <cloyce@headgear.org>
-
-0	string	spec			SPEC
->4	string	.cpu			CPU
->>8	string	<:			\b%.4s
->>12	string	.			raw result text
-
-17	string	version=SPECjbb		SPECjbb
->32	string	<:			\b%.4s
->>37	string	<:			v%.4s raw result text
-
-0	string	BEGIN\040SPECWEB	SPECweb
->13	string	<:			\b%.2s
->>15	string	_SSL			\b_SSL
->>>20	string	<:			v%.4s raw result text
->>16	string	<:			v%.4s raw result text
-
-#------------------------------------------------------------------------------
-# spectrum:  file(1) magic for Spectrum emulator files.
-#
-# John Elliott <jce@seasip.demon.co.uk>
-
-#
-# Spectrum +3DOS header
-#
-0       string          PLUS3DOS\032    Spectrum +3 data
->15     byte            0               - BASIC program
->15     byte            1               - number array
->15     byte            2               - character array
->15     byte            3               - memory block
->>16    belong          0x001B0040      (screen)
->15     byte            4               - Tasword document
->15     string          TAPEFILE        - ZXT tapefile
-#
-# Tape file. This assumes the .TAP starts with a Spectrum-format header,
-# which nearly all will.
-#
-# Update: Sanity-check string contents to be printable.
-#  -Adam Buchbinder <adam.buchbinder@gmail.com>
-#
-0       string          \023\000\000
->4      string          >\0
->>4     string          <\177           Spectrum .TAP data "%-10.10s"
->>>3    byte            0               - BASIC program
->>>3    byte            1               - number array
->>>3    byte            2               - character array
->>>3    byte            3               - memory block
->>>>14  belong          0x001B0040      (screen)
-
-# The following three blocks are from pak21-spectrum@srcf.ucam.org
-# TZX tape images
-0      string          ZXTape!\x1a     Spectrum .TZX data
->8     byte            x               version %d
->9     byte            x               \b.%d
-
-# RZX input recording files
-0      string          RZX!            Spectrum .RZX data
->4     byte            x               version %d
->5     byte            x               \b.%d
-
-# Floppy disk images
-0      string          MV\ -\ CPCEMU\ Disk-Fil Amstrad/Spectrum .DSK data
-0      string          MV\ -\ CPC\ format\ Dis Amstrad/Spectrum DU54 .DSK data
-0      string          EXTENDED\ CPC\ DSK\ Fil Amstrad/Spectrum Extended .DSK data
-0      string          SINCLAIR        Spectrum .SCL Betadisk image
-
-# Hard disk images
-0      string          RS-IDE\x1a      Spectrum .HDF hard disk image
->7     byte            x               \b, version 0x%02x
-
-#------------------------------------------------------------------------------
-# sql:  file(1) magic for SQL files
-#
-# From: "Marty Leisner" <mleisner@eng.mc.xerox.com>
-# Recognize some MySQL files.
-#
-0	beshort			0xfe01		MySQL table definition file
->2	byte			x		Version %d
-0	belong&0xffffff00	0xfefe0300	MySQL MISAM index file
->3	byte			x		Version %d
-0	belong&0xffffff00	0xfefe0700	MySQL MISAM compressed data file
->3	byte			x		Version %d
-0	belong&0xffffff00	0xfefe0500	MySQL ISAM index file
->3	byte			x		Version %d
-0	belong&0xffffff00	0xfefe0600	MySQL ISAM compressed data file
->3	byte			x		Version %d
-0	string		 	\376bin		MySQL replication log
-
-#------------------------------------------------------------------------------
-# iRiver H Series database file 
-# From Ken Guest <ken@linux.ie>
-# As observed from iRivNavi.iDB and unencoded firmware
-#
-0   string		iRivDB	iRiver Database file
->11  string	>\0	Version %s
->39  string		iHP-100	[H Series]
-
-#------------------------------------------------------------------------------
-# SQLite database files
-# Ken Guest <ken@linux.ie>, Ty Sarna, Zack Weinberg
-#
-# Version 1 used GDBM internally; its files cannot be distinguished
-# from other GDBM files.
-#
-# Version 2 used this format:
-0	string	**\ This\ file\ contains\ an\ SQLite  SQLite 2.x database
-
-# Version 3 of SQLite allows applications to embed their own "user version"
-# number in the database.  Detect this and distinguish those files.
-
-0   string  SQLite\ format\ 3
->60 string  _MTN               Monotone source repository
->60 belong  !0                 SQLite 3.x database, user version %u
->60 belong  0                  SQLite 3.x database
-# Type:	OpenSSH key files
-# From:	Nicolas Collignon <tsointsoin@gmail.com>
-
-0	string	SSH\ PRIVATE\ KEY	OpenSSH RSA1 private key,
->28	string	>\0			version %s
-
-0	string	ssh-dss\		OpenSSH DSA public key
-0	string	ssh-rsa\		OpenSSH RSA public key
-# Type: OpenSSL certificates/key files
-# From: Nicolas Collignon <tsointsoin@gmail.com>
-
-0	string	-----BEGIN\ CERTIFICATE-----	PEM certificate
-0	string	-----BEGIN\ CERTIFICATE\ REQ	PEM certificate request
-0	string	-----BEGIN\ RSA\ PRIVATE	PEM RSA private key
-0	string	-----BEGIN\ DSA\ PRIVATE	PEM DSA private key
-
-#------------------------------------------------------------------------------
-# sun:  file(1) magic for Sun machines
-#
-# Values for big-endian Sun (MC680x0, SPARC) binaries on pre-5.x
-# releases.  (5.x uses ELF.)
-#
-0	belong&077777777	0600413		sparc demand paged
->0	byte		&0x80
->>20	belong		<4096		shared library
->>20	belong		=4096		dynamically linked executable
->>20	belong		>4096		dynamically linked executable
->0	byte		^0x80		executable
->16	belong		>0		not stripped
-
-0	belong&077777777	0600410		sparc pure
->0	byte		&0x80		dynamically linked executable
->0	byte		^0x80		executable
->16	belong		>0		not stripped
-
-0	belong&077777777	0600407		sparc
->0	byte		&0x80		dynamically linked executable
->0	byte		^0x80		executable
->16	belong		>0		not stripped
-
-0	belong&077777777	0400413		mc68020 demand paged
->0	byte		&0x80
->>20	belong		<4096		shared library
->>20	belong		=4096		dynamically linked executable
->>20	belong		>4096		dynamically linked executable
->0	byte		^0x80		executable
->16	belong		>0		not stripped
-
-0	belong&077777777	0400410		mc68020 pure
->0	byte		&0x80		dynamically linked executable
->0	byte		^0x80		executable
->16	belong		>0		not stripped
-
-0	belong&077777777	0400407		mc68020
->0	byte		&0x80		dynamically linked executable
->0	byte		^0x80		executable
->16	belong		>0		not stripped
-
-0	belong&077777777	0200413		mc68010 demand paged
->0	byte		&0x80
->>20	belong		<4096		shared library
->>20	belong		=4096		dynamically linked executable
->>20	belong		>4096		dynamically linked executable
->0	byte		^0x80		executable
->16	belong		>0		not stripped
-
-0	belong&077777777	0200410		mc68010 pure
->0	byte		&0x80		dynamically linked executable
->0	byte		^0x80		executable
->16	belong		>0		not stripped
-
-0	belong&077777777	0200407		mc68010
->0	byte		&0x80		dynamically linked executable
->0	byte		^0x80		executable
->16	belong		>0		not stripped
-
-# reworked these to avoid anything beginning with zero becoming "old sun-2"
-0	belong		0407		old sun-2 executable
->16	belong		>0		not stripped
-0	belong		0410		old sun-2 pure executable
->16	belong		>0		not stripped
-0	belong		0413		old sun-2 demand paged executable
->16	belong		>0		not stripped
-
-#
-# Core files.  "SPARC 4.x BCP" means "core file from a SunOS 4.x SPARC
-# binary executed in compatibility mode under SunOS 5.x".
-#
-0	belong		0x080456	SunOS core file
->4	belong		432		(SPARC)
->>132	string		>\0		from '%s'
->>116	belong		=3		(quit)
->>116	belong		=4		(illegal instruction)
->>116	belong		=5		(trace trap)
->>116	belong		=6		(abort)
->>116	belong		=7		(emulator trap)
->>116	belong		=8		(arithmetic exception)
->>116	belong		=9		(kill)
->>116	belong		=10		(bus error)
->>116	belong		=11		(segmentation violation)
->>116	belong		=12		(bad argument to system call)
->>116	belong		=29		(resource lost)
->>120	belong		x		(T=%dK,
->>124	belong		x		D=%dK,
->>128	belong		x		S=%dK)
->4	belong		826		(68K)
->>128	string		>\0		from '%s'
->4	belong		456		(SPARC 4.x BCP)
->>152	string		>\0		from '%s'
-# Sun SunPC
-0	long		0xfa33c08e	SunPC 4.0 Hard Disk
-0	string		#SUNPC_CONFIG	SunPC 4.0 Properties Values
-# Sun snoop (see RFC 1761, which describes the capture file format).
-#
-0	string		snoop		Snoop capture file
->8	belong		>0		- version %ld
->12	belong		0		(IEEE 802.3)
->12	belong		1		(IEEE 802.4)
->12	belong		2		(IEEE 802.5)
->12	belong		3		(IEEE 802.6)
->12	belong		4		(Ethernet)
->12	belong		5		(HDLC)
->12	belong		6		(Character synchronous)
->12	belong		7		(IBM channel-to-channel adapter)
->12	belong		8		(FDDI)
->12	belong		9		(Unknown)
-
-# Microsoft ICM color profile
-36	string		acspMSFT	Microsoft ICM Color Profile
-# Sun KCMS
-36	string		acsp		Kodak Color Management System, ICC Profile
-
-#---------------------------------------------------------------------------
-# The following entries have been tested by Duncan Laurie <duncan@sun.com> (a
-# lead Sun/Cobalt developer) who agrees that they are good and worthy of
-# inclusion.
-
-# Boot ROM images for Sun/Cobalt Linux server appliances
-0       string  Cobalt\ Networks\ Inc.\nFirmware\ v     Paged COBALT boot rom
->38     string x        V%.4s
-
-# New format for Sun/Cobalt boot ROMs is annoying, it stores the version code
-# at the very end where file(1) can't get it.
-0       string CRfs     COBALT boot rom data (Flat boot rom or file system)
-
-
-#------------------------------------------------------------------------
-# sysex: file(1) magic for MIDI sysex files
-#
-# 
-0	byte			0xF0		SysEx File -
-
-# North American Group
->1	byte			0x01		Sequential
->1	byte			0x02		IDP
->1	byte			0x03		OctavePlateau
->1	byte			0x04		Moog
->1	byte			0x05		Passport
->1	byte			0x06		Lexicon
->1	byte			0x07		Kurzweil/Future Retro
->>3	byte			0x77		777
->>4	byte			0x00		Bank
->>4	byte			0x01		Song
->>5	byte			0x0f		16
->>5	byte			0x0e		15
->>5	byte			0x0d		14
->>5	byte			0x0c		13
->>5	byte			0x0b		12
->>5	byte			0x0a		11
->>5	byte			0x09		10
->>5	byte			0x08		9
->>5	byte			0x07		8
->>5	byte			0x06		7
->>5	byte			0x05		6
->>5	byte			0x04		5
->>5	byte			0x03		4
->>5	byte			0x02		3
->>5	byte			0x01		2
->>5	byte			0x00		1
->>5	byte			0x10		(ALL)
->>2	byte			x			\b, Channel %d
->1	byte			0x08		Fender
->1	byte			0x09		Gulbransen
->1	byte			0x0a		AKG
->1	byte			0x0b		Voyce
->1	byte			0x0c		Waveframe
->1	byte			0x0d		ADA
->1	byte			0x0e		Garfield
->1	byte			0x0f		Ensoniq
->1	byte			0x10		Oberheim
->>2	byte			0x06		Matrix 6 series
->>3	byte			0x0A		Dump (All)
->>3	byte			0x01		Dump (Bank)
->>4 belong			0x0002040E		Matrix 1000
->>>11 byte			<2			User bank %d
->>>11 byte			>1			Preset bank %d
->1	byte			0x11		Apple
->1	byte			0x12		GreyMatter
->1	byte			0x14		PalmTree
->1	byte			0x15		JLCooper
->1	byte			0x16		Lowrey
->1	byte			0x17		AdamsSmith
->1	byte			0x18		E-mu
->1	byte			0x19		Harmony
->1	byte			0x1a		ART
->1	byte			0x1b		Baldwin
->1	byte			0x1c		Eventide
->1	byte			0x1d		Inventronics
->1	byte			0x1f		Clarity
-
-# European Group
->1	byte			0x21		SIEL
->1	byte			0x22		Synthaxe
->1	byte			0x24		Hohner
->1	byte			0x25		Twister
->1	byte			0x26		Solton
->1	byte			0x27		Jellinghaus
->1	byte			0x28		Southworth
->1	byte			0x29		PPG
->1	byte			0x2a		JEN
->1	byte			0x2b		SSL
->1	byte			0x2c		AudioVertrieb
-
->1	byte			0x2f		ELKA
->>3	byte			0x09		EK-44
-
->1	byte			0x30		Dynacord
->1	byte			0x31		Jomox
->1	byte			0x33		Clavia
->1	byte			0x39		Soundcraft
-# Some Waldorf info from http://Stromeko.Synth.net/Downloads#WaldorfDocs
->1	byte			0x3e		Waldorf
->>2	byte			0x00		microWave
->>2	byte			0x0E		microwave2 / XT
->>2	byte			0x0F		Q / Q+
->>3	byte			=0			(default id)
->>3 byte			>0			(
->>>3 byte			<0x7F		\bdevice %d)
->>>3 byte			=0x7F		\bbroadcast id)
->>3	byte			0x7f		Microwave I
->>>4	byte			0x00		SNDR (Sound Request)
->>>4	byte			0x10		SNDD (Sound Dump)
->>>4	byte			0x20		SNDP (Sound Parameter Change)
->>>4	byte			0x30		SNDQ (Sound Parameter Inquiry)
->>>4	byte			0x70		BOOT (Sound Reserved)
->>>4	byte			0x01		MULR (Multi Request)
->>>4	byte			0x11		MULD (Multi Dump)
->>>4	byte			0x21		MULP (Multi Parameter Change)
->>>4	byte			0x31		MULQ (Multi Parameter Inquiry)
->>>4	byte			0x71		OS (Multi Reserved)
->>>4	byte			0x02		DRMR (Drum Map Request)
->>>4	byte			0x12		DRMD (Drum Map Dump)
->>>4	byte			0x22		DRMP (Drum Map Parameter Change)
->>>4	byte			0x32		DRMQ (Drum Map Parameter Inquiry)
->>>4	byte			0x72		BIN (Drum Map Reserved)
->>>4	byte			0x03		PATR (Sequencer Pattern Request)
->>>4	byte			0x13		PATD (Sequencer Pattern Dump)
->>>4	byte			0x23		PATP (Sequencer Pattern Parameter Change)
->>>4	byte			0x33		PATQ (Sequencer Pattern Parameter Inquiry)
->>>4	byte			0x73		AFM (Sequencer Pattern Reserved)
->>>4	byte			0x04		GLBR (Global Parameter Request)
->>>4	byte			0x14		GLBD (Global Parameter Dump)
->>>4	byte			0x24		GLBP (Global Parameter Parameter Change)
->>>4	byte			0x34		GLBQ (Global Parameter Parameter Inquiry)
->>>4	byte			0x07		MODR (Mode Parameter Request)
->>>4	byte			0x17		MODD (Mode Parameter Dump)
->>>4	byte			0x27		MODP (Mode Parameter Parameter Change)
->>>4	byte			0x37		MODQ (Mode Parameter Parameter Inquiry)
->>2	byte			0x10		microQ
->>>4	byte			0x00		SNDR (Sound Request)
->>>4	byte			0x10		SNDD (Sound Dump)
->>>4	byte			0x20		SNDP (Sound Parameter Change)
->>>4	byte			0x30		SNDQ (Sound Parameter Inquiry)
->>>4	byte			0x70		(Sound Reserved)
->>>4	byte			0x01		MULR (Multi Request)
->>>4	byte			0x11		MULD (Multi Dump)
->>>4	byte			0x21		MULP (Multi Parameter Change)
->>>4	byte			0x31		MULQ (Multi Parameter Inquiry)
->>>4	byte			0x71		OS (Multi Reserved)
->>>4	byte			0x02		DRMR (Drum Map Request)
->>>4	byte			0x12		DRMD (Drum Map Dump)
->>>4	byte			0x22		DRMP (Drum Map Parameter Change)
->>>4	byte			0x32		DRMQ (Drum Map Parameter Inquiry)
->>>4	byte			0x72		BIN (Drum Map Reserved)
->>>4	byte			0x04		GLBR (Global Parameter Request)
->>>4	byte			0x14		GLBD (Global Parameter Dump)
->>>4	byte			0x24		GLBP (Global Parameter Parameter Change)
->>>4	byte			0x34		GLBQ (Global Parameter Parameter Inquiry)
->>2	byte			0x11		rackAttack
->>>4	byte			0x00		SNDR (Sound Parameter Request)
->>>4	byte			0x10		SNDD (Sound Parameter Dump)
->>>4	byte			0x20		SNDP (Sound Parameter Parameter Change)
->>>4	byte			0x30		SNDQ (Sound Parameter Parameter Inquiry)
->>>4	byte			0x01		PRGR (Program Parameter Request)
->>>4	byte			0x11		PRGD (Program Parameter Dump)
->>>4	byte			0x21		PRGP (Program Parameter Parameter Change)
->>>4	byte			0x31		PRGQ (Program Parameter Parameter Inquiry)
->>>4	byte			0x71		OS (Program Parameter Reserved)
->>>4	byte			0x03		PATR (Pattern Parameter Request)
->>>4	byte			0x13		PATD (Pattern Parameter Dump)
->>>4	byte			0x23		PATP (Pattern Parameter Parameter Change)
->>>4	byte			0x33		PATQ (Pattern Parameter Parameter Inquiry)
->>>4	byte			0x04		GLBR (Global Parameter Request)
->>>4	byte			0x14		GLBD (Global Parameter Dump)
->>>4	byte			0x24		GLBP (Global Parameter Parameter Change)
->>>4	byte			0x34		GLBQ (Global Parameter Parameter Inquiry)
->>>4	byte			0x05		EFXR (FX Parameter Request)
->>>4	byte			0x15		EFXD (FX Parameter Dump)
->>>4	byte			0x25		EFXP (FX Parameter Parameter Change)
->>>4	byte			0x35		EFXQ (FX Parameter Parameter Inquiry)
->>>4	byte			0x07		MODR (Mode Command Request)
->>>4	byte			0x17		MODD (Mode Command Dump)
->>>4	byte			0x27		MODP (Mode Command Parameter Change)
->>>4	byte			0x37		MODQ (Mode Command Parameter Inquiry)
->>2	byte			0x03		Wave
->>>4	byte			0x00		SBPR (Soundprogram)
->>>4	byte			0x01		SAPR (Performance)
->>>4	byte			0x02		SWAVE (Wave)
->>>4	byte			0x03		SWTBL (Wave control table)
->>>4	byte			0x04		SVT (Velocity Curve)
->>>4	byte			0x05		STT (Tuning Table)
->>>4	byte			0x06		SGLB (Global Parameters)
->>>4	byte			0x07		SARRMAP (Performance Program Change Map)
->>>4	byte			0x08		SBPRMAP (Sound Program Change Map)
->>>4	byte			0x09		SBPRPAR (Sound Parameter)
->>>4	byte			0x0A		SARRPAR (Performance Parameter)
->>>4	byte			0x0B		SINSPAR (Instrument/External Parameter)
->>>4	byte			0x0F		SBULK (Bulk Switch on/off)
-
-# Japanese Group
->1	byte			0x40		Kawai
->>3	byte			0x20		K1
->>3	byte			0x22		K4
-
->1	byte			0x41		Roland
->>3	byte			0x14		D-50
->>3	byte			0x2b		U-220
->>3	byte			0x02		TR-707
-
->1	byte			0x42		Korg
->>3	byte			0x19		M1
-
->1	byte			0x43		Yamaha
->1	byte			0x44		Casio
->1	byte			0x46		Kamiya
->1	byte			0x47		Akai
->1	byte			0x48		Victor
->1	byte			0x49		Mesosha
->1	byte			0x4b		Fujitsu
->1	byte			0x4c		Sony
->1	byte			0x4e		Teac
->1	byte			0x50		Matsushita
->1	byte			0x51		Fostex
->1	byte			0x52		Zoom
->1	byte			0x54		Matsushita
->1	byte			0x57		Acoustic tech. lab.
-
->1	belong&0xffffff00	0x00007400	Ta Horng
->1	belong&0xffffff00	0x00007500	e-Tek
->1	belong&0xffffff00	0x00007600	E-Voice
->1	belong&0xffffff00	0x00007700	Midisoft
->1	belong&0xffffff00	0x00007800	Q-Sound
->1	belong&0xffffff00	0x00007900	Westrex
->1	belong&0xffffff00	0x00007a00	Nvidia*
->1	belong&0xffffff00	0x00007b00	ESS
->1	belong&0xffffff00	0x00007c00	Mediatrix
->1	belong&0xffffff00	0x00007d00	Brooktree
->1	belong&0xffffff00	0x00007e00	Otari
->1	belong&0xffffff00	0x00007f00	Key Electronics
->1	belong&0xffffff00	0x00010000	Shure
->1	belong&0xffffff00	0x00010100	AuraSound
->1	belong&0xffffff00	0x00010200	Crystal
->1	belong&0xffffff00	0x00010300	Rockwell
->1	belong&0xffffff00	0x00010400	Silicon Graphics
->1	belong&0xffffff00	0x00010500	Midiman
->1	belong&0xffffff00	0x00010600	PreSonus
->1	belong&0xffffff00	0x00010800	Topaz
->1	belong&0xffffff00	0x00010900	Cast Lightning
->1	belong&0xffffff00	0x00010a00	Microsoft
->1	belong&0xffffff00	0x00010b00	Sonic Foundry
->1	belong&0xffffff00	0x00010c00	Line 6
->1	belong&0xffffff00	0x00010d00	Beatnik Inc.
->1	belong&0xffffff00	0x00010e00	Van Koerving
->1	belong&0xffffff00	0x00010f00	Altech Systems
->1	belong&0xffffff00	0x00011000	S & S Research
->1	belong&0xffffff00	0x00011100	VLSI Technology
->1	belong&0xffffff00	0x00011200	Chromatic
->1	belong&0xffffff00	0x00011300	Sapphire
->1	belong&0xffffff00	0x00011400	IDRC
->1	belong&0xffffff00	0x00011500	Justonic Tuning
->1	belong&0xffffff00	0x00011600	TorComp
->1	belong&0xffffff00	0x00011700	Newtek Inc.
->1	belong&0xffffff00	0x00011800	Sound Sculpture
->1	belong&0xffffff00	0x00011900	Walker Technical
->1	belong&0xffffff00	0x00011a00	Digital Harmony
->1	belong&0xffffff00	0x00011b00	InVision
->1	belong&0xffffff00	0x00011c00	T-Square
->1	belong&0xffffff00	0x00011d00	Nemesys
->1	belong&0xffffff00	0x00011e00	DBX
->1	belong&0xffffff00	0x00011f00	Syndyne
->1	belong&0xffffff00	0x00012000	Bitheadz	
->1	belong&0xffffff00	0x00012100	Cakewalk
->1	belong&0xffffff00	0x00012200	Staccato
->1	belong&0xffffff00	0x00012300	National Semicon.
->1	belong&0xffffff00	0x00012400	Boom Theory
->1	belong&0xffffff00	0x00012500	Virtual DSP Corp
->1	belong&0xffffff00	0x00012600	Antares
->1	belong&0xffffff00	0x00012700	Angel Software
->1	belong&0xffffff00	0x00012800	St Louis Music
->1	belong&0xffffff00	0x00012900	Lyrrus dba G-VOX
->1	belong&0xffffff00	0x00012a00	Ashley Audio
->1	belong&0xffffff00	0x00012b00	Vari-Lite
->1	belong&0xffffff00	0x00012c00	Summit Audio
->1	belong&0xffffff00	0x00012d00	Aureal Semicon.
->1	belong&0xffffff00	0x00012e00	SeaSound
->1	belong&0xffffff00	0x00012f00	U.S. Robotics
->1	belong&0xffffff00	0x00013000	Aurisis
->1	belong&0xffffff00	0x00013100	Nearfield Multimedia
->1	belong&0xffffff00	0x00013200	FM7 Inc.
->1	belong&0xffffff00	0x00013300	Swivel Systems
->1	belong&0xffffff00	0x00013400	Hyperactive
->1	belong&0xffffff00	0x00013500	MidiLite
->1	belong&0xffffff00	0x00013600	Radical
->1	belong&0xffffff00	0x00013700	Roger Linn
->1	belong&0xffffff00	0x00013800	Helicon
->1	belong&0xffffff00	0x00013900	Event
->1	belong&0xffffff00	0x00013a00	Sonic Network
->1	belong&0xffffff00	0x00013b00	Realtime Music
->1	belong&0xffffff00	0x00013c00	Apogee Digital
-
->1	belong&0xffffff00	0x00202b00	Medeli Electronics
->1	belong&0xffffff00	0x00202c00	Charlie Lab
->1	belong&0xffffff00	0x00202d00	Blue Chip Music
->1	belong&0xffffff00	0x00202e00	BEE OH Corp
->1	belong&0xffffff00	0x00202f00	LG Semicon America
->1	belong&0xffffff00	0x00203000	TESI
->1	belong&0xffffff00	0x00203100	EMAGIC
->1	belong&0xffffff00	0x00203200	Behringer
->1	belong&0xffffff00	0x00203300	Access Music
->1	belong&0xffffff00	0x00203400	Synoptic
->1	belong&0xffffff00	0x00203500	Hanmesoft Corp
->1	belong&0xffffff00	0x00203600	Terratec
->1	belong&0xffffff00	0x00203700	Proel SpA
->1	belong&0xffffff00	0x00203800	IBK MIDI
->1	belong&0xffffff00	0x00203900	IRCAM
->1	belong&0xffffff00	0x00203a00	Propellerhead Software
->1	belong&0xffffff00	0x00203b00	Red Sound Systems
->1	belong&0xffffff00	0x00203c00	Electron ESI AB
->1	belong&0xffffff00	0x00203d00	Sintefex Audio
->1	belong&0xffffff00	0x00203e00	Music and More
->1	belong&0xffffff00	0x00203f00	Amsaro
->1	belong&0xffffff00	0x00204000	CDS Advanced Technology
->1	belong&0xffffff00	0x00204100	Touched by Sound
->1	belong&0xffffff00	0x00204200	DSP Arts
->1	belong&0xffffff00	0x00204300	Phil Rees Music
->1	belong&0xffffff00	0x00204400	Stamer Musikanlagen GmbH
->1	belong&0xffffff00	0x00204500	Soundart
->1	belong&0xffffff00	0x00204600	C-Mexx Software
->1	belong&0xffffff00	0x00204700	Klavis Tech.
->1	belong&0xffffff00	0x00204800	Noteheads AB
-
-0	string			T707		Roland TR-707 Data
-#------------------------------------------------------------------------------
-# teapot:  file(1) magic for "teapot" spreadsheet
-#
-0       string          #!teapot\012xdr      teapot work sheet (XDR format)
-
-#------------------------------------------------------------------------------
-# terminfo:  file(1) magic for terminfo
-#
-# XXX - byte order for screen images?
-#
-0	string		\032\001	Compiled terminfo entry
-0	short		0433		Curses screen image
-0	short		0434		Curses screen image
-#------------------------------------------------------------------------------
-# tex:  file(1) magic for TeX files
-#
-# XXX - needs byte-endian stuff (big-endian and little-endian DVI?)
-#
-# From <conklin@talisman.kaleida.com>
-
-# Although we may know the offset of certain text fields in TeX DVI
-# and font files, we can't use them reliably because they are not
-# zero terminated. [but we do anyway, christos]
-0	string		\367\002	TeX DVI file
-!:mime	application/x-dvi
->16	string		>\0		(%s)
-0	string		\367\203	TeX generic font data
-0	string		\367\131	TeX packed font data
->3	string		>\0		(%s)
-0	string		\367\312	TeX virtual font data
-0	search/1	This\ is\ TeX,	TeX transcript text
-0	search/1	This\ is\ METAFONT,	METAFONT transcript text
-
-# There is no way to detect TeX Font Metric (*.tfm) files without
-# breaking them apart and reading the data.  The following patterns
-# match most *.tfm files generated by METAFONT or afm2tfm.
-2	string		\000\021	TeX font metric data
-!:mime	application/x-tex-tfm
->33	string		>\0		(%s)
-2	string		\000\022	TeX font metric data
-!:mime	application/x-tex-tfm
->33	string		>\0		(%s)
-
-# Texinfo and GNU Info, from Daniel Quinlan (quinlan@yggdrasil.com)
-0	search/1	\\input\ texinfo	Texinfo source text
-!:mime	text/x-texinfo
-0	search/1	This\ is\ Info\ file	GNU Info text
-!:mime	text/x-info
-
-# TeX documents, from Daniel Quinlan (quinlan@yggdrasil.com)
-0	search/400	\\input		TeX document text
-!:mime	text/x-tex
-0	search/400	\\section	LaTeX document text
-!:mime	text/x-tex
-0	search/400	\\setlength	LaTeX document text
-!:mime	text/x-tex
-0	search/400	\\documentstyle	LaTeX document text
-!:mime	text/x-tex
-0	search/400	\\chapter	LaTeX document text
-!:mime	text/x-tex
-0	search/400	\\documentclass	LaTeX 2e document text
-!:mime	text/x-tex
-0	search/400	\\relax		LaTeX auxiliary file
-!:mime	text/x-tex
-0	search/400	\\contentsline	LaTeX table of contents
-!:mime	text/x-tex
-0	search/400	%\ -*-latex-*-	LaTeX document text
-!:mime	text/x-tex
-
-# Tex document, from Hendrik Scholz <hendrik@scholz.net>
-0   	search/1	\\ifx		TeX document text
-
-# Index and glossary files
-0	search/400	\\indexentry	LaTeX raw index file
-0	search/400	\\begin{theindex}	LaTeX sorted index
-0	search/400	\\glossaryentry	LaTeX raw glossary
-0	search/400	\\begin{theglossary}	LaTeX sorted glossary
-0	search/400	This\ is\ makeindex	Makeindex log file
-
-# End of TeX
-
-#------------------------------------------------------------------------------
-# file(1) magic for BibTex text files
-# From Hendrik Scholz <hendrik@scholz.net>
-
-0	search/1/c	@article{	BibTeX text file
-0	search/1/c	@book{		BibTeX text file
-0	search/1/c	@inbook{	BibTeX text file
-0	search/1/c	@incollection{	BibTeX text file
-0	search/1/c	@inproceedings{	BibTeX text file
-0	search/1/c	@manual{	BibTeX text file
-0	search/1/c	@misc{		BibTeX text file
-0	search/1/c	@preamble{	BibTeX text file
-0	search/1/c	@phdthesis{	BibTeX text file
-0	search/1/c	@techreport{	BibTeX text file
-0	search/1/c	@unpublished{	BibTeX text file
-
-73	search/1	%%%\ \ 		BibTeX-file{ BibTex text file (with full header)
-
-73	search/1	%%%\ \ @BibTeX-style-file{   BibTeX style text file (with full header)
-
-0	search/1	%\ BibTeX\ standard\ bibliography\ 	BibTeX standard bibliography style text file
-
-0	search/1	%\ BibTeX\ `	BibTeX custom bibliography style text file
-
-0	search/1	@c\ @mapfile{	TeX font aliases text file
-#------------------------------------------------------------------------------
-# file(1) magic for tgif(1) files
-# From Hendrik Scholz <hendrik@scholz.net>
-
-0	string	%TGIF\ x 		Tgif file version %s
-
-# ------------------------------------------------------------------------
-# ti-8x: file(1) magic for the TI-8x and TI-9x Graphing Calculators.
-#
-# From: Ryan McGuire (rmcguire@freenet.columbus.oh.us).
-#
-# Update: Romain Lievin (roms@lpg.ticalc.org).
-#
-# NOTE: This list is not complete.
-# Files for the TI-80 and TI-81 are pretty rare. I'm not going to put the
-# program/group magic numbers in here because I cannot find any.
-0		string		**TI80**	TI-80 Graphing Calculator File.
-0		string		**TI81**	TI-81 Graphing Calculator File.
-#
-# Magic Numbers for the TI-73
-#
-0		string		**TI73**	TI-73 Graphing Calculator
->0x00003B	byte		0x00		(real number)
->0x00003B	byte		0x01		(list)
->0x00003B	byte		0x02		(matrix)
->0x00003B	byte		0x03		(equation)
->0x00003B	byte		0x04		(string)
->0x00003B	byte		0x05		(program)
->0x00003B	byte		0x06		(assembly program)
->0x00003B	byte		0x07		(picture)
->0x00003B	byte		0x08		(gdb)
->0x00003B	byte		0x0C		(complex number)
->0x00003B	byte		0x0F		(window settings)
->0x00003B	byte		0x10		(zoom)
->0x00003B	byte		0x11		(table setup)
->0x00003B	byte		0x13		(backup)
-
-# Magic Numbers for the TI-82
-#
-0		string		**TI82**	TI-82 Graphing Calculator
->0x00003B	byte		0x00		(real)
->0x00003B	byte		0x01		(list)
->0x00003B	byte		0x02		(matrix)
->0x00003B	byte		0x03		(Y-variable)
->0x00003B	byte		0x05		(program)
->0x00003B	byte		0x06		(protected prgm)
->0x00003B	byte		0x07		(picture)
->0x00003B	byte		0x08		(gdb)
->0x00003B	byte		0x0B		(window settings)
->0x00003B	byte		0x0C		(window settings)
->0x00003B	byte		0x0D		(table setup)
->0x00003B	byte		0x0E		(screenshot)
->0x00003B	byte		0x0F		(backup)
-#
-# Magic Numbers for the TI-83
-#
-0		string		**TI83**	TI-83 Graphing Calculator
->0x00003B	byte		0x00		(real)
->0x00003B	byte		0x01		(list)
->0x00003B	byte		0x02		(matrix)
->0x00003B	byte		0x03		(Y-variable)
->0x00003B	byte		0x04		(string)
->0x00003B	byte		0x05		(program)
->0x00003B	byte		0x06		(protected prgm)
->0x00003B	byte		0x07		(picture)
->0x00003B	byte		0x08		(gdb)
->0x00003B	byte		0x0B		(window settings)
->0x00003B	byte		0x0C		(window settings)
->0x00003B	byte		0x0D		(table setup)
->0x00003B	byte		0x0E		(screenshot)
->0x00003B	byte		0x13		(backup)
-#
-# Magic Numbers for the TI-83+
-#
-0		string		**TI83F*	TI-83+ Graphing Calculator
->0x00003B	byte		0x00		(real number)
->0x00003B	byte		0x01		(list)
->0x00003B	byte		0x02		(matrix)
->0x00003B	byte		0x03		(equation)
->0x00003B	byte		0x04		(string)
->0x00003B	byte		0x05		(program)
->0x00003B	byte		0x06		(assembly program)
->0x00003B	byte		0x07		(picture)
->0x00003B	byte		0x08		(gdb)
->0x00003B	byte		0x0C		(complex number)
->0x00003B	byte		0x0F		(window settings)
->0x00003B	byte		0x10		(zoom)
->0x00003B	byte		0x11		(table setup)
->0x00003B	byte		0x13		(backup)
->0x00003B	byte		0x15		(application variable)
->0x00003B	byte		0x17		(group of variable)
-
-#
-# Magic Numbers for the TI-85
-#
-0		string		**TI85**	TI-85 Graphing Calculator
->0x00003B	byte		0x00		(real number)
->0x00003B	byte		0x01		(complex number)
->0x00003B	byte		0x02		(real vector)
->0x00003B	byte		0x03		(complex vector)
->0x00003B	byte		0x04		(real list)
->0x00003B	byte		0x05		(complex list)
->0x00003B	byte		0x06		(real matrix)
->0x00003B	byte		0x07		(complex matrix)
->0x00003B	byte		0x08		(real constant)
->0x00003B	byte		0x09		(complex constant)
->0x00003B	byte		0x0A		(equation)
->0x00003B	byte		0x0C		(string)
->0x00003B	byte		0x0D		(function GDB)
->0x00003B	byte		0x0E		(polar GDB)
->0x00003B	byte		0x0F		(parametric GDB)
->0x00003B	byte		0x10		(diffeq GDB)
->0x00003B	byte		0x11		(picture)
->0x00003B	byte		0x12		(program)
->0x00003B	byte		0x13		(range)
->0x00003B	byte		0x17		(window settings)
->0x00003B	byte		0x18		(window settings)
->0x00003B	byte		0x19		(window settings)
->0x00003B	byte		0x1A		(window settings)
->0x00003B	byte		0x1B		(zoom)
->0x00003B	byte		0x1D		(backup)
->0x00003B	byte		0x1E		(unknown)
->0x00003B	byte		0x2A		(equation)
->0x000032	string		ZS4		- ZShell Version 4 File.
->0x000032	string		ZS3		- ZShell Version 3 File.
-#
-# Magic Numbers for the TI-86
-#
-0		string		**TI86**	TI-86 Graphing Calculator
->0x00003B	byte		0x00		(real number)
->0x00003B	byte		0x01		(complex number)
->0x00003B	byte		0x02		(real vector)
->0x00003B	byte		0x03		(complex vector)
->0x00003B	byte		0x04		(real list)
->0x00003B	byte		0x05		(complex list)
->0x00003B	byte		0x06		(real matrix)
->0x00003B	byte		0x07		(complex matrix)
->0x00003B	byte		0x08		(real constant)
->0x00003B	byte		0x09		(complex constant)
->0x00003B	byte		0x0A		(equation)
->0x00003B	byte		0x0C		(string)
->0x00003B	byte		0x0D		(function GDB)
->0x00003B	byte		0x0E		(polar GDB)
->0x00003B	byte		0x0F		(parametric GDB)
->0x00003B	byte		0x10		(diffeq GDB)
->0x00003B	byte		0x11		(picture)
->0x00003B	byte		0x12		(program)
->0x00003B	byte		0x13		(range)
->0x00003B	byte		0x17		(window settings)
->0x00003B	byte		0x18		(window settings)
->0x00003B	byte		0x19		(window settings)
->0x00003B	byte		0x1A		(window settings)
->0x00003B	byte		0x1B		(zoom)
->0x00003B	byte		0x1D		(backup)
->0x00003B	byte		0x1E		(unknown)
->0x00003B	byte		0x2A		(equation)
-#
-# Magic Numbers for the TI-89
-#
-0		string		**TI89**	TI-89 Graphing Calculator
->0x000048	byte		0x00		(expression)
->0x000048	byte		0x04		(list)
->0x000048	byte		0x06		(matrix)
->0x000048	byte		0x0A		(data)
->0x000048	byte		0x0B		(text)
->0x000048	byte		0x0C		(string)
->0x000048	byte		0x0D		(graphic data base)
->0x000048	byte		0x0E		(figure)
->0x000048	byte		0x10		(picture)
->0x000048	byte		0x12		(program)
->0x000048	byte		0x13		(function)
->0x000048	byte		0x14		(macro)
->0x000048	byte		0x1C		(zipped)
->0x000048	byte		0x21		(assembler)
-#
-# Magic Numbers for the TI-92
-#
-0		string		**TI92**	TI-92 Graphing Calculator
->0x000048	byte		0x00		(expression)
->0x000048	byte		0x04		(list)
->0x000048	byte		0x06		(matrix)
->0x000048	byte		0x0A		(data)
->0x000048	byte		0x0B		(text)
->0x000048	byte		0x0C		(string)
->0x000048	byte		0x0D		(graphic data base)
->0x000048	byte		0x0E		(figure)
->0x000048	byte		0x10		(picture)
->0x000048	byte		0x12		(program)
->0x000048	byte		0x13		(function)
->0x000048	byte		0x14		(macro)
->0x000048	byte		0x1D		(backup)
-#
-# Magic Numbers for the TI-92+/V200
-#
-0		string		**TI92P*	TI-92+/V200 Graphing Calculator
->0x000048	byte		0x00		(expression)
->0x000048	byte		0x04		(list)
->0x000048	byte		0x06		(matrix)
->0x000048	byte		0x0A		(data)
->0x000048	byte		0x0B		(text)
->0x000048	byte		0x0C		(string)
->0x000048	byte		0x0D		(graphic data base)
->0x000048	byte		0x0E		(figure)
->0x000048	byte		0x10		(picture)
->0x000048	byte		0x12		(program)
->0x000048	byte		0x13		(function)
->0x000048	byte		0x14		(macro)
->0x000048	byte		0x1C		(zipped)
->0x000048	byte		0x21		(assembler)
-#
-# Magic Numbers for the TI-73/83+/89/92+/V200 FLASH upgrades
-#
-0x0000016	string		Advanced	TI-XX Graphing Calculator (FLASH)
-0		string		**TIFL**	TI-XX Graphing Calculator (FLASH)
->8		byte		>0		- Revision %d
->>9 		byte		x		\b.%d,
->12		byte		>0		Revision date %02x
->>13		byte		x		\b/%02x
->>14		beshort		x		\b/%04x,
->17		string		>/0		name: '%s',
->48		byte		0x74		device: TI-73,
->48		byte		0x73		device: TI-83+,
->48		byte		0x98		device: TI-89,
->48		byte		0x88		device: TI-92+,
->49		byte		0x23		type: OS upgrade,
->49		byte		0x24		type: application,
->49		byte		0x25		type: certificate,
->49		byte		0x3e		type: license,
->74		lelong		>0		size: %ld bytes
-
-# VTi & TiEmu skins (TI Graphing Calculators).
-# From: Romain Lievin (roms@lpg.ticalc.org).
-# Magic Numbers for the VTi skins
-0               string          VTI		Virtual TI skin
->3		string		v		- Version
->>4		byte		>0		\b %c
->>6		byte		x		\b.%c
-# Magic Numbers for the TiEmu skins
-0		string		TiEmu		TiEmu skin
->6              string          v               - Version
->>7             byte            >0              \b %c
->>9             byte            x               \b.%c
->>10		byte		x		\b%c
-
-#------------------------------------------------------------------------------
-# timezone:  file(1) magic for timezone data
-#
-# from Daniel Quinlan (quinlan@yggdrasil.com)
-# this should work on Linux, SunOS, and maybe others
-# Added new official magic number for recent versions of the Olson code
-0	string	TZif	timezone data
->4	byte	0	\b, old version
->4	byte	>0	\b, version %c
->20	belong	0	\b, no gmt time flags
->20	belong	1	\b, 1 gmt time flag
->20	belong	>1	\b, %d gmt time flags
->24	belong	0	\b, no std time flags
->20	belong	1	\b, 1 std time flag
->24	belong	>1	\b, %d std time flags
->28	belong	0	\b, no leap seconds
->28	belong	1	\b, 1 leap second
->28	belong  >1	\b, %d leap seconds
->32	belong	0	\b, no transition times
->32	belong	1	\b, 1 transition time
->32	belong  >1	\b, %d transition times
->36	belong	0	\b, no abbreviation chars
->36	belong	1	\b, 1 abbreviation char
->36	belong	>1	\b, %d abbreviation chars
-0	string	\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\1\0	old timezone data
-0	string	\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\2\0	old timezone data
-0	string  \0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\3\0	old timezone data
-0	string	\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\4\0	old timezone data
-0	string	\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\5\0	old timezone data
-0	string	\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\6\0	old timezone data
-#------------------------------------------------------------------------------
-# troff:  file(1) magic for *roff
-#
-# updated by Daniel Quinlan (quinlan@yggdrasil.com)
-
-# troff input
-0	search/1	.\\"		troff or preprocessor input text
-!:mime	text/troff
-0	search/1	'\\"		troff or preprocessor input text
-!:mime	text/troff
-0	search/1	'.\\"		troff or preprocessor input text
-!:mime	text/troff
-0	search/1	\\"		troff or preprocessor input text
-!:mime	text/troff
-0	search/1	'''		troff or preprocessor input text
-!:mime	text/troff
-0	regex/20	\^\\.[A-Za-z0-9][A-Za-z0-9][\ \t]	troff or preprocessor input text
-!:mime	text/troff
-0	regex/20	\^\\.[A-Za-z0-9][A-Za-z0-9]$	troff or preprocessor input text
-!:mime	text/troff
-
-# ditroff intermediate output text
-0	search/1	x\ T		ditroff output text
->4	search/1	cat		for the C/A/T phototypesetter
->4	search/1	ps		for PostScript
->4	search/1	dvi		for DVI
->4	search/1	ascii		for ASCII
->4	search/1	lj4		for LaserJet 4
->4	search/1	latin1		for ISO 8859-1 (Latin 1)
->4	search/1	X75		for xditview at 75dpi
->>7	search/1	-12		(12pt)
->4	search/1	X100		for xditview at 100dpi
->>8	search/1	-12		(12pt)
-
-# output data formats
-0	string		\100\357	very old (C/A/T) troff output data
-#
-#------------------------------------------------------------------------------
-# tuxedo:	file(1) magic for BEA TUXEDO data files
-#
-# from Ian Springer <ispringer@hotmail.com>
-#
-0	string		\0\0\1\236\0\0\0\0\0\0\0\0\0\0\0\0	BEA TUXEDO DES mask data
-
-#------------------------------------------------------------------------------
-# typeset:  file(1) magic for other typesetting
-#
-0	string		Interpress/Xerox	Xerox InterPress data
->16	string		/			(version
->>17	string		>\0			%s)
-#---------------------------------------------------------------------------
-# Unicode:  BOM prefixed text files - Adrian Havill <havill@turbolinux.co.jp>
-# GRR: These types should be recognised in file_ascmagic so these
-# encodings can be treated by text patterns.
-# Missing types are already dealt with internally.
-#
-0	string	+/v8			Unicode text, UTF-7
-0	string	+/v9			Unicode text, UTF-7
-0	string	+/v+			Unicode text, UTF-7
-0	string	+/v/			Unicode text, UTF-7
-0	string	\335\163\146\163	Unicode text, UTF-8-EBCDIC
-0	string	\000\000\376\377	Unicode text, UTF-32, big-endian
-0	string	\377\376\000\000	Unicode text, UTF-32, little-endian
-0	string	\016\376\377		Unicode text, SCSU (Standard Compression Scheme for Unicode)
-
-#------------------------------------------------------------------------------
-# unknown:  file(1) magic for unknown machines
-#
-# XXX - this probably should be pruned, as it'll match PDP-11 and
-# VAX image formats.
-#
-# 0x107 is 0407; 0x108 is 0410; both are PDP-11 (executable and pure,
-# respectively).
-#
-# 0x109 is 0411; that's PDP-11 split I&D, but the PDP-11 version doesn't
-# have the "version %ld", which may be a bogus COFFism (I don't think
-# there ever was COFF for the PDP-11).
-#
-# 0x10B is 0413; that's VAX demand-paged, but this is a short, not a
-# long, as it would be on a VAX.
-#
-# 0x10C is 0414 and 0x10E is 416; those *are* unknown.
-#
-0	short		0x107		unknown machine executable
->8	short		>0		not stripped
->15	byte		>0		- version %ld
-0	short		0x108		unknown pure executable
->8	short		>0		not stripped
->15	byte		>0		- version %ld
-0	short		0x109		PDP-11 separate I&D
->8	short		>0		not stripped
->15	byte		>0		- version %ld
-0	short		0x10b		unknown pure executable
->8	short		>0		not stripped
->15	byte		>0		- version %ld
-0	long		0x10c		unknown demand paged pure executable
->16	long		>0		not stripped
-0	long		0x10e		unknown readable demand paged pure executable
-#------------------------------------------------------------------------------
-# uuencode:  file(1) magic for ASCII-encoded files
-#
-
-# GRR:  the first line of xxencoded files is identical to that in uuencoded
-# files, but the first character in most subsequent lines is 'h' instead of
-# 'M'.  (xxencoding uses lowercase letters in place of most of uuencode's
-# punctuation and survives BITNET gateways better.)  If regular expressions
-# were supported, this entry could possibly be split into two with
-# "begin\040\.\*\012M" or "begin\040\.\*\012h" (where \. and \* are REs).
-0	search/1	begin\ 		uuencoded or xxencoded text
-
-# btoa(1) is an alternative to uuencode that requires less space.
-0	search/1	xbtoa\ Begin	btoa'd text
-
-# ship(1) is another, much cooler alternative to uuencode.
-# Greg Roelofs, newt@uchicago.edu
-0	search/1	$\012ship	ship'd binary text
-
-# bencode(8) is used to encode compressed news batches (Bnews/Cnews only?)
-# Greg Roelofs, newt@uchicago.edu
-0	search/1	Decode\ the\ following\ with\ bdeco	bencoded News text
-
-# BinHex is the Macintosh ASCII-encoded file format (see also "apple")
-# Daniel Quinlan, quinlan@yggdrasil.com
-11	search/1	must\ be\ converted\ with\ BinHex	BinHex binary text
->41	search/1	x					\b, version %.3s
-
-# GRR: handle BASE64
-
-#------------------------------------------------------------------------------
-# varied.out:  file(1) magic for various USG systems
-#
-#	Herewith many of the object file formats used by USG systems.
-#	Most have been moved to files for a particular processor,
-#	and deleted if they duplicate other entries.
-#
-0	short		0610		Perkin-Elmer executable
-# AMD 29K
-0	beshort		0572		amd 29k coff noprebar executable
-0	beshort		01572		amd 29k coff prebar executable
-0	beshort		0160007		amd 29k coff archive
-# Cray
-6	beshort		0407		unicos (cray) executable
-# Ultrix 4.3
-596	string		\130\337\377\377	Ultrix core file
->600	string		>\0		from '%s'
-# BeOS and MAcOS PEF executables
-# From: hplus@zilker.net (Jon Watte)
-0	string		Joy!peffpwpc	header for PowerPC PEF executable
-#
-# ava assembler/linker Uros Platise <uros.platise@ijs.si>
-0       string          avaobj  AVR assembler object code
->7      string          >\0     version '%s'
-# gnu gmon magic From: Eugen Dedu <dedu@ese-metz.fr>
-0	string		gmon		GNU prof performance data
->4	long		x		- version %ld
-# From: Dave Pearson <davep@davep.org>
-# Harbour <URL:http://www.harbour-project.org/> HRB files.
-0	string		\xc0HRB		Harbour HRB file
->4	short		x		version %d
-
-# From: Alex Beregszaszi <alex@fsn.hu>
-# 0	string		exec 		BugOS executable
-# 0	string		pack		BugOS archive
-
-# From: Jason Spence <jspence@lightconsulting.com>
-# Generated by the "examples" in STM's ST40 devkit, and derived code.
-0	lelong		0x13a9f17e	ST40 component image format
->4	string		>\0		\b, name '%s'
-
-#------------------------------------------------------------------------------
-# varied.script:  file(1) magic for various interpreter scripts
-
-0	string		#!\ /			a
->3	string		>\0			%s script text executable
-0	string		#!\t/			a
->3	string		>\0			%s script text executable
-0	string		#!/			a
->2	string		>\0			%s script text executable
-0	string		#!\ 			script text executable
->3	string		>\0			for %s
-
-# From: arno <arenevier@fdn.fr>
-# mozilla xpconnect typelib
-# see http://www.mozilla.org/scriptable/typelib_file.html
-0	string 		XPCOM\nTypeLib\r\n\032		XPConnect Typelib
->0x10  byte        x       version %d
->>0x11 byte        x      \b.%d
-
-#------------------------------------------------------------------------------
-# vax:  file(1) magic for VAX executable/object and APL workspace
-#
-0	lelong		0101557		VAX single precision APL workspace
-0	lelong		0101556		VAX double precision APL workspace
-
-#
-# VAX a.out (32V, BSD)
-#
-0	lelong		0407		VAX executable
->16	lelong		>0		not stripped
-
-0	lelong		0410		VAX pure executable
->16	lelong		>0		not stripped
-
-0	lelong		0413		VAX demand paged pure executable
->16	lelong		>0		not stripped
-
-0	lelong		0420		VAX demand paged (first page unmapped) pure executable
->16	lelong		>0		not stripped
-
-#
-# VAX COFF
-#
-# The `versions' should be un-commented if they work for you.
-# (Was the problem just one of endianness?)
-#
-0	leshort		0570		VAX COFF executable
->12	lelong		>0		not stripped
->22	leshort		>0		- version %ld
-0	leshort		0575		VAX COFF pure executable
->12	lelong		>0		not stripped
->22	leshort		>0		- version %ld
-
-#------------------------------------------------------------------------------
-# vicar:  file(1) magic for VICAR files.
-#
-# From: Ossama Othman <othman@astrosun.tn.cornell.edu
-# VICAR is JPL's in-house spacecraft image processing program
-# VICAR image
-0	string	LBLSIZE=	VICAR image data
->32	string	BYTE		\b, 8 bits  = VAX byte
->32	string	HALF		\b, 16 bits = VAX word     = Fortran INTEGER*2
->32	string	FULL		\b, 32 bits = VAX longword = Fortran INTEGER*4
->32	string	REAL		\b, 32 bits = VAX longword = Fortran REAL*4
->32	string	DOUB		\b, 64 bits = VAX quadword = Fortran REAL*8
->32	string	COMPLEX		\b, 64 bits = VAX quadword = Fortran COMPLEX*8
-# VICAR label file
-43	string	SFDU_LABEL	VICAR label file
-#------------------------------------------------------------------------------
-# Virtutech Compressed Random Access File Format
-#
-# From <gustav@virtutech.com>
-0      string          \211\277\036\203        Virtutech CRAFF
->4     belong          x               v%d
->20    belong          0               uncompressed
->20    belong          1               bzipp2ed
->20    belong          2               gzipped
->24    belong          0               not clean
-
-#------------------------------------------------------------------------------
-# visx:  file(1) magic for Visx format files
-#
-0	short		0x5555		VISX image file
->2	byte		0		(zero)
->2	byte		1		(unsigned char)
->2	byte		2		(short integer)
->2	byte		3		(float 32)
->2	byte		4		(float 64)
->2	byte		5		(signed char)
->2	byte		6		(bit-plane)
->2	byte		7		(classes)
->2	byte		8		(statistics)
->2	byte		10		(ascii text)
->2	byte		15		(image segments)
->2	byte		100		(image set)
->2	byte		101		(unsigned char vector)
->2	byte		102		(short integer vector)
->2	byte		103		(float 32 vector)
->2	byte		104		(float 64 vector)
->2	byte		105		(signed char vector)
->2	byte		106		(bit plane vector)
->2	byte		121		(feature vector)
->2	byte		122		(feature vector library)
->2	byte		124		(chain code)
->2	byte		126		(bit vector)
->2	byte		130		(graph)
->2	byte		131		(adjacency graph)
->2	byte		132		(adjacency graph library)
->2	string		.VISIX		(ascii text)
-
-#------------------------------------------------------------------------------
-# vms:  file(1) magic for VMS executables (experimental)
-#
-# VMS .exe formats, both VAX and AXP (Greg Roelofs, newt@uchicago.edu)
-
-# GRR 950122:  I'm just guessing on these, based on inspection of the headers
-# of three executables each for Alpha and VAX architectures.  The VAX files
-# all had headers similar to this:
-#
-#   00000  b0 00 30 00 44 00 60 00  00 00 00 00 30 32 30 35  ..0.D.`.....0205
-#   00010  01 01 00 00 ff ff ff ff  ff ff ff ff 00 00 00 00  ................
-#
-0	string	\xb0\0\x30\0	VMS VAX executable
->44032	string	PK\003\004	\b, Info-ZIP SFX archive v5.12 w/decryption
-#
-# The AXP files all looked like this, except that the byte at offset 0x22
-# was 06 in some of them and 07 in others:
-#
-#   00000  03 00 00 00 00 00 00 00  ec 02 00 00 10 01 00 00  ................
-#   00010  68 00 00 00 98 00 00 00  b8 00 00 00 00 00 00 00  h...............
-#   00020  00 00 07 00 00 00 00 00  00 00 00 00 00 00 00 00  ................
-#   00030  00 00 00 00 01 00 00 00  00 00 00 00 00 00 00 00  ................
-#   00040  00 00 00 00 ff ff ff ff  ff ff ff ff 02 00 00 00  ................
-#
-0	belong	0x03000000	VMS Alpha executable
->75264	string	PK\003\004	\b, Info-ZIP SFX archive v5.12 w/decryption
-
-# -----------------------------------------------------------
-# VMware specific files (deducted from version 1.1 and log file entries)
-# Anthon van der Neut (anthon@mnt.org)
-0	belong	0x4d52564e	VMware nvram 
-
-#------------------------------------------------------------------------------
-# vorbis:  file(1) magic for Ogg/Vorbis files
-#
-# From Felix von Leitner <leitner@fefe.de>
-# Extended by Beni Cherniavsky <cben@crosswinds.net>
-# Further extended by Greg Wooledge <greg@wooledge.org>
-#
-# Most (everything but the number of channels and bitrate) is commented
-# out with `##' as it's not interesting to the average user.  The most
-# probable things advanced users would want to uncomment are probably
-# the number of comments and the encoder version.
-#
-# FIXME: The first match has been made a search, so that it can skip
-# over prepended ID3 tags. This will work for MIME type detection, but
-# won't work for detecting other properties of the file (they all need
-# to be made relative to the search). In any case, if the file has ID3
-# tags, the ID3 information will be printed, not the Ogg information,
-# so until that's fixed, this doesn't matter.
-# FIXME[2]: Disable the above for now, since search assumes text mode.
-#
-# --- Ogg Framing ---
-#0		search/1000	OggS		Ogg data
-0		string	OggS		Ogg data
-!:mime		application/ogg
->4		byte		!0		UNKNOWN REVISION %u
-##>4		byte		0		revision 0
->4		byte		0
-##>>14		lelong		x		(Serial %lX)
-# non-Vorbis content: FLAC (Free Lossless Audio Codec, http://flac.sourceforge.net)
->>28		string		\x7fFLAC	\b, FLAC audio
-# non-Vorbis content: Theora
->>28		string		\x80theora	\b, Theora video
-# non-Vorbis content: Kate
->>28		string		\x80kate\0\0\0\0	\b, Kate
->>>37		ubyte		x		v%u
->>>38		ubyte		x		\b.%u,
->>>40		byte		0		utf8 encoding,
->>>40		byte		!0		unknown character encoding,
->>>60		string		>\0		language %s,
->>>60		string		\0		no language set,
->>>76		string		>\0		category %s
->>>76		string		\0		no category set
-# non-Vorbis content: Skeleton
->>28		string		fishead\0	\b, Skeleton
->>>36		short		x		v%u
->>>40		short		x		\b.%u
-# non-Vorbis content: Speex
->>28		string		Speex\ \ \ 	\b, Speex audio
-# non-Vorbis content: OGM
->>28		string		\x01video\0\0\0	\b, OGM video
->>>37		string/c	div3		(DivX 3)
->>>37		string/c	divx		(DivX 4)
->>>37		string/c	dx50		(DivX 5)
->>>37		string/c	xvid		(XviD)
-# --- First vorbis packet - general header ---
->>28		string		\x01vorbis	\b, Vorbis audio,
->>>35		lelong		!0		UNKNOWN VERSION %lu,
-##>>>35		lelong		0		version 0,
->>>35		lelong		0
->>>>39		ubyte		1		mono,
->>>>39		ubyte		2		stereo,
->>>>39		ubyte		>2		%u channels,
->>>>40		lelong		x		%lu Hz
-# Minimal, nominal and maximal bitrates specified when encoding
->>>>48		string		<\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff	\b,
-# The above tests if at least one of these is specified:
->>>>>52		lelong		!-1
-# Vorbis RC2 has a bug which puts -1000 in the min/max bitrate fields
-# instead of -1.
-# Vorbis 1.0 uses 0 instead of -1.
->>>>>>52	lelong		!0
->>>>>>>52	lelong		!-1000
->>>>>>>>52	lelong		x		<%lu
->>>>>48		lelong		!-1
->>>>>>48	lelong		x		~%lu
->>>>>44		lelong		!-1
->>>>>>44	lelong		!-1000
->>>>>>>44	lelong		!0
->>>>>>>>44	lelong		x		>%lu
->>>>>48		string		<\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff	bps
-# -- Second vorbis header packet - the comments
-# A kludge to read the vendor string.  It's a counted string, not a
-# zero-terminated one, so file(1) can't read it in a generic way.
-# libVorbis is the only one existing currently, so I detect specifically
-# it.  The interesting value is the cvs date (8 digits decimal).
-# Post-RC1 Ogg files have the second header packet (and thus the version)
-# in a different place, so we must use an indirect offset.
->>>(84.b+85)		string		\x03vorbis
->>>>(84.b+96)		string/c	Xiphophorus\ libVorbis\ I	\b, created by: Xiphophorus libVorbis I
->>>>>(84.b+120)		string		>00000000	
-# Map to beta version numbers:
->>>>>>(84.b+120)	string		<20000508	(<beta1, prepublic)
->>>>>>(84.b+120)	string		20000508	(1.0 beta 1 or beta 2)
->>>>>>(84.b+120)	string		>20000508
->>>>>>>(84.b+120)	string		<20001031	(beta2-3)
->>>>>>(84.b+120)	string		20001031	(1.0 beta 3)
->>>>>>(84.b+120)	string		>20001031
->>>>>>>(84.b+120)	string		<20010225	(beta3-4)
->>>>>>(84.b+120)	string		20010225	(1.0 beta 4)
->>>>>>(84.b+120)	string		>20010225
->>>>>>>(84.b+120)	string		<20010615	(beta4-RC1)
->>>>>>(84.b+120)	string		20010615	(1.0 RC1)
->>>>>>(84.b+120)	string		20010813	(1.0 RC2)
->>>>>>(84.b+120)	string		20010816	(RC2 - Garf tuned v1)
->>>>>>(84.b+120)	string		20011014	(RC2 - Garf tuned v2)
->>>>>>(84.b+120)	string		20011217	(1.0 RC3)
->>>>>>(84.b+120)	string		20011231	(1.0 RC3)
-# Some pre-1.0 CVS snapshots still had "Xiphphorus"...
->>>>>>(84.b+120)	string		>20011231	(pre-1.0 CVS)
-# For the 1.0 release, Xiphophorus is replaced by Xiph.Org
->>>>(84.b+96)		string/c	Xiph.Org\ libVorbis\ I	\b, created by: Xiph.Org libVorbis I
->>>>>(84.b+117)		string		>00000000	
->>>>>>(84.b+117)	string		<20020717	(pre-1.0 CVS)
->>>>>>(84.b+117)	string		20020717	(1.0)
->>>>>>(84.b+117)	string		20030909	(1.0.1)
->>>>>>(84.b+117)	string		20040629	(1.1.0 RC1)
-
-#------------------------------------------------------------------------------
-# VXL: file(1) magic for VXL binary IO data files
-#
-# from Ian Scott <scottim@sf.net>
-#
-# VXL is a collection of C++ libraries for Computer Vision.
-# See the vsl chapter in the VXL Book for more info
-# http://www.isbe.man.ac.uk/public_vxl_doc/books/vxl/book.html
-# http:/vxl.sf.net
-
-2	lelong	0x472b2c4e	VXL data file,
->0	leshort	>0		schema version no %d
-
-#------------------------------------------------------------------------------
-# warc:  file(1) magic for WARC files
-
-0	string	WARC/	WARC Archive
->5	string	x	version %.4s
-#------------------------------------------------------------------------------
-# weak:  file(1) magic for very weak magic entries, disabled by default
-#
-# These entries are so weak that they might interfere identification of
-# other formats. Example include:
-# - Only identify for 1 or 2 bytes
-# - Match against very wide range of values
-# - Match against generic word in some spoken languages (e.g. English)
-
-# Summary: Computer Graphics Metafile
-# Extension: .cgm
-#0	beshort&0xffe0	0x0020		binary Computer Graphics Metafile
-#0	beshort		0x3020		character Computer Graphics Metafile
-
-#0	string		=!!		Bennet Yee's "face" format
-
-#------------------------------------------------------------------------------
-# windows:  file(1) magic for Microsoft Windows
-#
-# This file is mainly reserved for files where programs
-# using them are run almost always on MS Windows 3.x or
-# above, or files only used exclusively in Windows OS,
-# where there is no better category to allocate for.
-# For example, even though WinZIP almost run on Windows
-# only, it is better to treat them as "archive" instead.
-# For format usable in DOS, such as generic executable
-# format, please specify under "msdos" file.
-#
-
-
-# Summary: Outlook Express DBX file
-# Extension: .dbx
-# Created by: Christophe Monniez
-0	string	\xCF\xAD\x12\xFE	MS Outlook Express DBX file
->4	byte	=0xC5			\b, message database
->4	byte	=0xC6			\b, folder database
->4	byte	=0xC7			\b, account information
->4	byte	=0x30			\b, offline database
-
-
-# Summary: Windows crash dump
-# Extension: .dmp
-# Created by: Andreas Schuster (http://computer.forensikblog.de/)
-# Reference (1): http://computer.forensikblog.de/en/2008/02/64bit_magic.html
-# Modified by (1): Abel Cheung (Avoid match with first 4 bytes only)
-0	string		PAGE		
->4	string		DUMP		MS Windows 32bit crash dump
->>0x05c	byte            0		\b, no PAE
->>0x05c	byte            1		\b, PAE
->>0xf88	lelong		1		\b, full dump
->>0xf88	lelong		2		\b, kernel dump
->>0xf88	lelong		3		\b, small dump
->>0x068	lelong		x		\b, %ld pages
->4	string		DU64		MS Windows 64bit crash dump
->>0xf98	lelong		1		\b, full dump
->>0xf98	lelong		2		\b, kernel dump
->>0xf98	lelong		3		\b, small dump
->>0x090	lequad		x		\b, %lld pages
-
-
-# Summary: Vista Event Log
-# Extension: .evtx
-# Created by: Andreas Schuster (http://computer.forensikblog.de/)
-# Reference (1): http://computer.forensikblog.de/en/2007/05/some_magic.html
-0	string		ElfFile\0	MS Windows Vista Event Log
->0x2a	leshort		x		\b, %d chunks
->>0x10	lelong		x		\b (no. %d in use)
->0x18	lelong		>1		\b, next record no. %d
->0x18	lelong		=1		\b, empty
->0x78	lelong		&1		\b, DIRTY
->0x78	lelong		&2		\b, FULL
-
-
-# Summary: Windows 3.1 group files
-# Extension: .grp
-# Created by: unknown
-0	string		\120\115\103\103	MS Windows 3.1 group files
-
-
-# Summary: Old format help files
-# Extension: .hlp
-# Created by: Dirk Jagdmann <doj@cubic.org>
-0	lelong		0x00035f3f		MS Windows 3.x help file
-
-
-# Summary: Hyper terminal
-# Extension: .ht
-# Created by: unknown
-0	string		HyperTerminal\ 
->15	string		1.0\ --\ HyperTerminal\ data\ file	MS Windows HyperTerminal profile
-
-
-# Summary: Windows shortcut
-# Extension: .lnk
-# Created by: unknown
-0	string		\114\0\0\0\001\024\002\0\0\0\0\0\300\0\0\0\0\0\0\106	MS Windows shortcut
-
-
-# Summary: Outlook Personal Folders
-# Created by: unknown
-0	lelong		0x4E444221	Microsoft Outlook email folder
->10	leshort		0x0e		(<=2002)
->10	leshort		0x17		(>=2003)
-
-
-# Summary: Windows help cache
-# Created by: unknown
-0	string		\164\146\115\122\012\000\000\000\001\000\000\000	MS Windows help cache
-
-
-# Summary: IE cache file
-# Created by: Christophe Monniez
-0	string	Client\ UrlCache\ MMF 	Internet Explorer cache file
->20	string	>\0			version %s
-
-
-# Summary: Registry files
-# Created by: unknown
-# Modified by (1): Joerg Jenderek
-0	string		regf		MS Windows registry file, NT/2000 or above
-0	string		CREG		MS Windows 95/98/ME registry file
-0	string		SHCC3		MS Windows 3.1 registry file
-
-
-# Summary: Windows Registry text
-# Extension: .reg
-# Submitted by: Abel Cheung <abelcheung@gmail.com>
-0	string		REGEDIT4\r\n\r\n	Windows Registry text (Win95 or above)
-0	string		Windows\ Registry\ Editor\ 
->&0	string		Version\ 5.00\r\n\r\n	Windows Registry text (Win2K or above)
-
-
-# From: Pal Tamas <folti@balabit.hu>
-# Autorun File
-0       string/c          [autorun]\r\n   Microsoft Windows Autorun file.
-!:mime	application/x-setupscript. 
-#------------------------------------------------------------------------------
-# wireless-regdb:        file(1) magic for CRDA wireless-regdb file format
-#
-0	string	RGDB	CRDA wireless regulatory database file
->4	belong	19	(Version 1)
-#------------------------------------------------------------------------------
-# wordprocessors:  file(1) magic fo word processors.
-#
-####### PWP file format used on Smith Corona Personal Word Processors:
-2	string	\040\040\040\040\040\040\040\040\040\040\040ML4D\040'92	Smith Corona PWP
->24	byte	2	\b, single spaced
->24	byte	3	\b, 1.5 spaced
->24	byte	4	\b, double spaced
->25	byte	0x42	\b, letter
->25	byte	0x54	\b, legal
->26	byte	0x46	\b, A4
-
-#WordPerfect type files Version 1.6 - PLEASE DO NOT REMOVE THIS LINE
-0	string	\377WPC\020\000\000\000\022\012\001\001\000\000\000\000	(WP) loadable file
->15	byte	0	Optimized for Intel
->15	byte	1	Optimized for Non-Intel
-1	string	WPC	(Corel/WP)
->8	short	257	WordPerfect macro
->8	short	258	WordPerfect help file
->8	short	259	WordPerfect keyboard file
->8	short	266	WordPerfect document
->8	short	267	WordPerfect dictionary
->8	short	268	WordPerfect thesaurus
->8	short	269	WordPerfect block
->8	short	270	WordPerfect rectangular block
->8	short	271	WordPerfect column block
->8	short	272	WordPerfect printer data
->8	short	275	WordPerfect printer data
->8	short	276	WordPerfect driver resource data
->8	short	279	WordPerfect hyphenation code
->8	short	280	WordPerfect hyphenation data
->8	short	281	WordPerfect macro resource data
->8	short	283	WordPerfect hyphenation lex
->8	short	285	WordPerfect wordlist
->8	short	286	WordPerfect equation resource data
->8	short	289	WordPerfect spell rules
->8	short	290	WordPerfect dictionary rules
->8	short	295	WordPerfect spell rules (Microlytics)
->8	short	299	WordPerfect settings file
->8	short	301	WordPerfect 4.2 document
->8	short	325	WordPerfect dialog file
->8	short	332	WordPerfect button bar
->8	short	513	Shell macro
->8	short	522	Shell definition
->8	short	769	Notebook macro
->8	short	770	Notebook help file
->8	short	771	Notebook keyboard file
->8	short	778	Notebook definition
->8	short	1026	Calculator help file
->8	short 	1538	Calendar help file
->8	short 	1546	Calendar data file
->8	short	1793	Editor macro
->8	short	1794	Editor help file
->8	short	1795	Editor keyboard file
->8	short	1817	Editor macro resource file
->8	short 	2049	Macro editor macro
->8	short 	2050	Macro editor help file
->8	short	2051	Macro editor keyboard file
->8	short	2305	PlanPerfect macro
->8	short	2306	PlanPerfect help file
->8	short	2307	PlanPerfect keyboard file
->8	short	2314	PlanPerfect worksheet
->8	short	2319	PlanPerfect printer definition
->8	short	2322	PlanPerfect graphic definition
->8	short	2323	PlanPerfect data
->8	short	2324	PlanPerfect temporary printer
->8	short	2329	PlanPerfect macro resource data
->8	byte	11	Mail
->8	short	2818	help file
->8	short	2821	distribution list
->8	short	2826	out box
->8	short	2827	in box
->8	short	2836	users archived mailbox
->8	short	2837	archived message database
->8	short	2838	archived attachments
->8	short	3083	Printer temporary file
->8	short	3330	Scheduler help file
->8	short	3338	Scheduler in file
->8	short	3339	Scheduler out file
->8	short	3594	GroupWise settings file
->8	short	3601	GroupWise directory services
->8	short	3627	GroupWise settings file
->8	short	4362	Terminal resource data
->8	short	4363	Terminal resource data
->8	short	4395	Terminal resource data
->8	short	4619	GUI loadable text
->8	short	4620	graphics resource data
->8	short	4621	printer settings file
->8	short	4622	port definition file
->8	short	4623	print queue parameters
->8	short	4624	compressed file
->8	short	5130	Network service msg file
->8	short	5131	Network service msg file
->8	short	5132	Async gateway login msg
->8	short	5134	GroupWise message file
->8	short	7956	GroupWise admin domain database
->8	short	7957	GroupWise admin host database
->8	short	7959	GroupWise admin remote host database
->8	short	7960	GroupWise admin ADS deferment data file
->8	short	8458	IntelliTAG (SGML) compiled DTD
->8	long	18219264	WordPerfect graphic image (1.0)
->8	long	18219520	WordPerfect graphic image (2.0)
-#end of WordPerfect type files Version 1.6 - PLEASE DO NOT REMOVE THIS LINE
-
-# Hangul (Korean) Word Processor File
-0	string	HWP\ Document\ File	Hangul (Korean) Word Processor File 3.0
-# From: Won-Kyu Park <wkpark@kldp.org>
-512	string		R\0o\0o\0t\0	Hangul (Korean) Word Processor File 2000
-!:mime	application/x-hwp
-
-# CosmicBook, from Beno�t Rouits
-0       string  CSBK    Ted Neslson's CosmicBook hypertext file
-
-2       string  EYWR    AmigaWriter file
-
-# chi:  file(1) magic for ChiWriter files
-0       string          \\1cw\          ChiWriter file
->5      string          >\0             version %s
-0       string          \\1cw           ChiWriter file
-
-# Quark Express from http://www.garykessler.net/library/file_sigs.html
-2	string	IIXPR3			Intel Quark Express Document (English)
-2	string	IIXPRa			Intel Quark Express Document (Korean)
-2	string	MMXPR3			Motorola Quark Express Document (English)
-!:mime	application/x-quark-xpress-3
-2	string	MMXPRa			Motorola Quark Express Document (Korean)
-
-# adobe indesign (document, whatever...) from querkan
-0	belong	0x0606edf5		Adobe InDesign
->16	string	DOCUMENT		Document
-
-#------------------------------------------------------------------------------
-# ichitaro456: file(1) magic for Just System Word Processor Ichitaro
-#
-# Contributor kenzo-:
-# Reversed-engineered JS Ichitaro magic numbers
-#
-
-0	string		DOC
->43	byte		0x14	Just System Word Processor Ichitaro v4
-!:mime	application/x-ichitaro4
->144	string	JDASH		application/x-ichitaro4
-
-0	string		DOC
->43	byte		0x15	Just System Word Processor Ichitaro v5
-!:mime	application/x-ichitaro5
-
-0	string		DOC
->43	byte		0x16	Just System Word Processor Ichitaro v6
-!:mime	application/x-ichitaro6
-
-# Type: Freemind mindmap documents
-# From: Jamie Thompson <debian-bugs@jamie-thompson.co.uk>
-0	string/cB	\<map\ version	Freemind document
-!:mime	application/x-freemind
-
-# Type:        Scribus
-# From:        Werner Fink <werner@suse.de>
-0	string	\<SCRIBUSUTF8\ Version		Scribus Document
-0	string	\<SCRIBUSUTF8NEW\ Version	Scribus Document
-!:mime	application/x-scribus
-
-#------------------------------------------------------------------------------
-# file(1) magic(5) data for xdelta  Josh MacDonald <jmacd@CS.Berkeley.EDU>
-#
-0	string	%XDELTA%	XDelta binary patch file 0.14
-0	string	%XDZ000%	XDelta binary patch file 0.18
-0	string	%XDZ001%	XDelta binary patch file 0.20
-0	string	%XDZ002%	XDelta binary patch file 1.0
-0	string	%XDZ003%	XDelta binary patch file 1.0.4
-0	string	%XDZ004%	XDelta binary patch file 1.1
-
-#------------------------------------------------------------------------------
-# xenix:  file(1) magic for Microsoft Xenix
-#
-# "Middle model" stuff, and "Xenix 8086 relocatable or 80286 small
-# model" lifted from "magic.xenix", with comment "derived empirically;
-# treat as folklore until proven"
-#
-# "small model", "large model", "huge model" stuff lifted from XXX
-#
-# XXX - "x.out" collides with PDP-11 archives
-#
-0	string		core		core file (Xenix)
-0	byte		0x80		8086 relocatable (Microsoft)
-0	leshort		0xff65		x.out
->2	string		__.SYMDEF	 randomized
->0	byte		x		archive
-0	leshort		0x206		Microsoft a.out
->8	leshort		1		Middle model
->0x1e	leshort		&0x10		overlay
->0x1e	leshort		&0x2		separate
->0x1e	leshort		&0x4		pure
->0x1e	leshort		&0x800		segmented
->0x1e	leshort		&0x400		standalone
->0x1e	leshort		&0x8		fixed-stack
->0x1c	byte		&0x80		byte-swapped
->0x1c	byte		&0x40		word-swapped
->0x10	lelong		>0		not-stripped
->0x1e	leshort		^0xc000		pre-SysV
->0x1e	leshort		&0x4000		V2.3
->0x1e	leshort		&0x8000		V3.0
->0x1c	byte		&0x4		86
->0x1c	byte		&0xb		186
->0x1c	byte		&0x9		286
->0x1c	byte		&0xa		386
->0x1f	byte		<0x040		small model
->0x1f	byte		=0x048		large model	
->0x1f	byte		=0x049		huge model 
->0x1e	leshort		&0x1		executable
->0x1e	leshort		^0x1		object file
->0x1e	leshort		&0x40		Large Text
->0x1e	leshort		&0x20		Large Data
->0x1e	leshort		&0x120		Huge Objects Enabled
->0x10	lelong		>0		not stripped
-
-0	leshort		0x140		old Microsoft 8086 x.out
->0x3	byte		&0x4		separate
->0x3	byte		&0x2		pure
->0	byte		&0x1		executable
->0	byte		^0x1		relocatable
->0x14	lelong		>0		not stripped
-
-0	lelong		0x206		b.out
->0x1e	leshort		&0x10		overlay
->0x1e	leshort		&0x2		separate
->0x1e	leshort		&0x4		pure
->0x1e	leshort		&0x800		segmented
->0x1e	leshort		&0x400		standalone
->0x1e	leshort		&0x1		executable
->0x1e	leshort		^0x1		object file
->0x1e	leshort		&0x4000		V2.3
->0x1e	leshort		&0x8000		V3.0
->0x1c	byte		&0x4		86
->0x1c	byte		&0xb		186
->0x1c	byte		&0x9		286
->0x1c	byte		&0x29		286
->0x1c	byte		&0xa		386
->0x1e	leshort		&0x4		Large Text
->0x1e	leshort		&0x2		Large Data
->0x1e	leshort		&0x102		Huge Objects Enabled
-
-0	leshort		0x580		XENIX 8086 relocatable or 80286 small model
-
-#------------------------------------------------------------------------------
-# This is Aaron's attempt at a MAGIC file for Xilinx .bit files.
-# Xilinx-Magic@RevRagnarok.com
-# Got the info from FPGA-FAQ 0026
-#
-# First there is the sync header and its length
-0	beshort 0x0009
->2 	belong	=0x0ff00ff0
->>&0	belong  =0x0ff00ff0
->>>&0	beshort =0x0000	
->>>>&0	pstring	a	Xilinx BIT data
-# Next is a Pascal-style string with the NCD name. We want to capture that.
->>>>0x0F	pstring	x	- from %s
-# It is followed by a NUL
->>>>>&1	byte	0x00
-# And then 'b'
->>>>>&2	string b
-# With the part number:
-#>>>>>&5 string	4v	(Virtex4)
-#>>>>>&5 string  2v	(Virtex II
-#>>>>>>&0	string	!p	\b)
-#>>>>>>&0	string	p	Pro)
->>>>>&4	pstring x	- for %s
-# And then NUL / 'c' / Build Data / NUL / 'd' / Date / NUL / 'e' / Data Length
->>>>>>&1	byte	0x00
->>>>>>&2	string	c
->>>>>>&4	pstring	x	- built %s
->>>>>>>&1	byte	0x00
->>>>>>>&2	string	d
->>>>>>>&4	pstring	x	\b(%s)
->>>>>>>>&1	byte	0x00
->>>>>>>>&2	string	e
->>>>>>>>&4	belong	x	- data length 0x%lx
-
-#------------------------------------------------------------------------------
-# xo65 object files
-# From: "Ullrich von Bassewitz" <uz@cc65.org>
-#
-0	string		\x55\x7A\x6E\x61	xo65 object,
->4	leshort		x			version %d,
->6	leshort&0x0001 =0x0001			with debug info
->6	leshort&0x0001 =0x0000			no debug info
-
-# xo65 library files
-0	string		\x6E\x61\x55\x7A	xo65 library,
->4	leshort		x			version %d
-
-# o65 object files
-0	string		\x01\x00\x6F\x36\x35	o65
->6	leshort&0x1000	=0x0000			executable,
->6	leshort&0x1000	=0x1000			object,
->5	byte		x			version %d,
->6	leshort&0x8000	=0x8000			65816,
->6	leshort&0x8000	=0x0000			6502,
->6	leshort&0x2000	=0x2000			32 bit,
->6	leshort&0x2000	=0x0000			16 bit,
->6	leshort&0x4000	=0x4000			page reloc,
->6	leshort&0x4000	=0x0000			byte reloc,
->6	leshort&0x0003	=0x0000			alignment 1
->6	leshort&0x0003	=0x0001			alignment 2
->6	leshort&0x0003	=0x0002			alignment 4
->6	leshort&0x0003	=0x0003			alignment 256
-
-#------------------------------------------------------------------------------
-# xwindows:  file(1) magic for various X/Window system file formats.
-
-# Compiled X Keymap 
-# XKM (compiled X keymap) files (including version and byte ordering)
-1	string	mkx				Compiled XKB Keymap: lsb,
->0	byte	>0				version %d
->0	byte	=0				obsolete
-0	string	xkm				Compiled XKB Keymap: msb,
->3	byte	>0				version %d
->0	byte	=0				obsolete
-
-# xfsdump archive
-0	string	xFSdump0			xfsdump archive
->8	belong	x	(version %d)
-
-# Jaleo XFS files
-0	long	395726				Jaleo XFS file
->4	long	x				- version %ld
->8	long	x				- [%ld -
->20	long	x				%ldx
->24	long	x				%ldx
->28	long	1008				YUV422]
->28	long	1000				RGB24]
-
-# Xcursor data
-# X11 mouse cursor format defined in libXcursor, see
-# http://www.x.org/archive/X11R6.8.1/doc/Xcursor.3.html
-# http://cgit.freedesktop.org/xorg/lib/libXcursor/tree/include/X11/Xcursor/Xcursor.h
-0	string		Xcur		Xcursor data
-!:mime	image/x-xcursor
->10	leshort		x		version %hd
->>8	leshort		x		\b.%hd
-
-#------------------------------------------------------------------------------
-# zilog:  file(1) magic for Zilog Z8000.
-#
-# Was it big-endian or little-endian?  My Product Specification doesn't
-# say.
-#
-0	long		0xe807		object file (z8000 a.out)
-0	long		0xe808		pure object file (z8000 a.out)
-0	long		0xe809		separate object file (z8000 a.out)
-0	long		0xe805		overlay object file (z8000 a.out)
-
-#------------------------------------------------------------------------------
-# zyxel:  file(1) magic for ZyXEL modems
-#
-# From <rob@pe1chl.ampr.org>
-# These are the /etc/magic entries to decode datafiles as used for the
-# ZyXEL U-1496E DATA/FAX/VOICE modems.  (This header conforms to a
-# ZyXEL-defined standard)
-
-0	string		ZyXEL\002	ZyXEL voice data
->10	byte		0		- CELP encoding
->10	byte&0x0B	1		- ADPCM2 encoding
->10	byte&0x0B	2		- ADPCM3 encoding
->10	byte&0x0B	3		- ADPCM4 encoding
->10	byte&0x0B	8		- New ADPCM3 encoding
->10	byte&0x04	4		with resync
diff --git a/cloudfiles/share/magic.mgc b/cloudfiles/share/magic.mgc
deleted file mode 100644
index 634b6349c47555faef6e39b9a58fba228eca2780..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 1775200
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
as>!X?RM69k*08R&1s|0I8W$Z5>)Qdeg@cv=

diff --git a/cloudfiles/share/magic.mime b/cloudfiles/share/magic.mime
deleted file mode 100644
index acfede2..0000000
--- a/cloudfiles/share/magic.mime
+++ /dev/null
@@ -1,1027 +0,0 @@
-# Magic data for KMimeMagic (originally for file(1) command)
-#
-# Note on adding additional MIME types:
-#
-# [RFC2045,RFC2046] specifies that Content Types, Content Subtypes, Character
-# Sets, Access Types, and conversion values for MIME mail will be assigned and
-# listed by the IANA.
-# http://www.iana.org/assignments/media-types/
-#
-# Any unregistered file type should be listed with a preceding x-, as in
-# application/x-foo (RFC2045 5.1), or a x., as in application/x.foo (RFC4288
-# 4.3).  Any non x-prefixed type should be registered with IANA and listed at
-# the above address.  Any other behavior is a MIME standards violation!
-#
-# It is preferred that when a registered MIME type exists, that
-# the registered Content-Type and Subtype be used to refer to a file of
-# that type, so don't use application/x-zip when application/zip is
-# registered.
-#
-# If an active RFC suggests that a MIME registration for a new type is in
-# progress, make a note of it pointing to that RFC.
-#
-# The format is 4-5 columns:
-#    Column #1: byte number to begin checking from, ">" indicates continuation
-#    Column #2: type of data to match
-#    Column #3: contents of data to match
-#    Column #4: MIME type of result
-#    Column #5: MIME encoding of result (optional)
-
-#------------------------------------------------------------------------------
-# Localstuff:  file(1) magic for locally observed files
-# Add any locally observed files here.
-
-# Real Audio (Magic .ra\0375)
-0	belong		0x2e7261fd	audio/x-pn-realaudio
-0	string		.RMF		application/vnd.rn-realmedia
-
-#video/x-pn-realvideo
-#video/vnd.rn-realvideo
-#application/vnd.rn-realmedia
-#	sigh, there are many mimes for that but the above are the most common.
-
-# Taken from magic, converted to magic.mime
-# mime types according to http://www.geocities.com/nevilo/mod.htm:
-#	audio/it	.it
-#	audio/x-zipped-it	.itz
-#	audio/xm	fasttracker modules
-#	audio/x-s3m	screamtracker modules
-#	audio/s3m	screamtracker modules
-#	audio/x-zipped-mod	mdz
-#	audio/mod	mod
-#	audio/x-mod	All modules (mod, s3m, 669, mtm, med, xm, it, mdz, stm, itz, xmz, s3z)
-
-# Taken from loader code from mikmod version 2.14
-# by Steve McIntyre (stevem@chiark.greenend.org.uk)
-# <doj@cubic.org> added title printing on 2003-06-24
-0	string	MAS_UTrack_V00
->14	string	>/0		audio/x-mod
-#audio/x-tracker-module
-
-#0	string	UN05		MikMod UNI format module sound data
-
-0	string	Extended\ Module: audio/x-mod
-#audio/x-tracker-module
-##>17	string	>\0		Title: "%s"
-
-21	string/c	\!SCREAM!	audio/x-mod
-#audio/x-screamtracker-module
-21	string	BMOD2STM	audio/x-mod
-#audio/x-screamtracker-module
-1080	string	M.K.		audio/x-mod
-#audio/x-protracker-module
-#>0	string	>\0		Title: "%s"
-1080	string	M!K!		audio/x-mod
-#audio/x-protracker-module
-#>0	string	>\0		Title: "%s"
-1080	string	FLT4		audio/x-mod
-#audio/x-startracker-module
-#>0	string	>\0		Title: "%s"
-1080	string	FLT8		audio/x-mod
-#audio/x-startracker-module
-#>0	string	>\0		Title: "%s"
-1080	string	4CHN		audio/x-mod
-#audio/x-fasttracker-module
-#>0	string	>\0		Title: "%s"
-1080	string	6CHN		audio/x-mod
-#audio/x-fasttracker-module
-#>0	string	>\0		Title: "%s"
-1080	string	8CHN		audio/x-mod
-#audio/x-fasttracker-module
-#>0	string	>\0		Title: "%s"
-1080	string	CD81		audio/x-mod
-#audio/x-oktalyzer-tracker-module
-#>0	string	>\0		Title: "%s"
-1080	string	OKTA		audio/x-mod
-#audio/x-oktalyzer-tracker-module
-#>0	string	>\0		Title: "%s"
-# Not good enough.
-#1082	string	CH
-#>1080	string	>/0		%.2s-channel Fasttracker "oktalyzer" module sound data
-1080	string	16CN		audio/x-mod
-#audio/x-taketracker-module
-#>0	string	>\0		Title: "%s"
-1080	string	32CN		audio/x-mod
-#audio/x-taketracker-module
-#>0	string	>\0		Title: "%s"
-
-# Impuse tracker module (it)
-0	string		IMPM		audio/x-mod
-#>4	string		>\0		"%s"
-#>40	leshort		!0		compatible w/ITv%x
-#>42	leshort		!0		created w/ITv%x
-
-#------------------------------------------------------------------------------
-# end local stuff
-#------------------------------------------------------------------------------
-
-# xml based formats!
-
-# svg
-
-38	string		\<\!DOCTYPE\040svg	image/svg+xml
-
-0	belong		0xfeedfeed	application/x-java-keystore
-
-0	belong		0xcececece	application/x-java-jce-keystore
-
-
-# xml
-0	string		\<?xml			text/xml
-
-
-#------------------------------------------------------------------------------
-# Java
-
-0	beshort		0xcafe
->2	beshort		0xbabe		application/x-java-applet
->2	beshort		0xd00d		application/x-java-pack200
-
-#------------------------------------------------------------------------------
-# audio:  file(1) magic for sound formats
-#
-# from Jan Nicolai Langfeldt <janl@ifi.uio.no>,
-#
-
-# Sun/NeXT audio data
-0	string		.snd
->12	belong		1		audio/basic
->12	belong		2		audio/basic
->12	belong		3		audio/basic
->12	belong		4		audio/basic
->12	belong		5		audio/basic
->12	belong		6		audio/basic
->12	belong		7		audio/basic
-
->12	belong		23		audio/x-adpcm
-
-# DEC systems (e.g. DECstation 5000) use a variant of the Sun/NeXT format
-# that uses little-endian encoding and has a different magic number
-# (0x0064732E in little-endian encoding).
-0	lelong		0x0064732E
->12	lelong		1		audio/x-dec-basic
->12	lelong		2		audio/x-dec-basic
->12	lelong		3		audio/x-dec-basic
->12	lelong		4		audio/x-dec-basic
->12	lelong		5		audio/x-dec-basic
->12	lelong		6		audio/x-dec-basic
->12	lelong		7		audio/x-dec-basic
-#                                       compressed (G.721 ADPCM)
->12	lelong		23		audio/x-dec-adpcm
-
-# Bytes 0-3 of AIFF, AIFF-C, & 8SVX audio files are "FORM"
-#					AIFF audio data
-8	string		AIFF		audio/x-aiff
-#					AIFF-C audio data
-8	string		AIFC		audio/x-aiff
-#					IFF/8SVX audio data
-8	string		8SVX		audio/x-aiff
-
-
-
-# Creative Labs AUDIO stuff
-#					Standard MIDI data
-0	string	MThd			audio/x-midi
-#>9 	byte	>0			(format %d)
-#>11	byte	>1			using %d channels
-0	string	MThd			audio/midi
-#					Creative Music (CMF) data
-0	string	CTMF			audio/x-unknown
-#					SoundBlaster instrument data
-0	string	SBI			audio/x-unknown
-#					Creative Labs voice data
-0	string	Creative\ Voice\ File	audio/x-unknown
-## is this next line right?  it came this way...
-#>19	byte	0x1A
-#>23	byte	>0			- version %d
-#>22	byte	>0			\b.%d
-
-# [GRR 950115:  is this also Creative Labs?  Guessing that first line
-#  should be string instead of unknown-endian long...]
-#0	long		0x4e54524b	MultiTrack sound data
-#0	string		NTRK		MultiTrack sound data
-#>4	long		x		- version %ld
-
-# Microsoft WAVE format (*.wav)
-# [GRR 950115:  probably all of the shorts and longs should be leshort/lelong]
-#					Microsoft RIFF
-0	string		RIFF
-#					- WAVE format
->8	string		WAVE		audio/x-wav
->8	string/B	AVI		video/x-msvideo
-#
->8 	string		CDRA		image/x-coreldraw
-
-# AAC (aka MPEG-2 NBC)
-0       beshort&0xfff6    0xfff0          audio/X-HX-AAC-ADTS
-0       string          ADIF            audio/X-HX-AAC-ADIF
-0       beshort&0xffe0  0x56e0          audio/MP4A-LATM
-0       beshort         0x4De1          audio/MP4A-LATM
-
-# MPEG Layer 3 sound files
-# modified by Joerg Jenderek
-# GRR the original test are too common for many DOS files
-# so test 1 <= kbits nibble <= E
-0       beshort		&0xffe0		
->2	ubyte&0xF0	>0x0F		
->>2	ubyte&0xF0	<0xE1		audio/mpeg
-#MP3 with ID3 tag
-0	string		ID3		audio/mpeg
-# Ogg/Vorbis
-0	string		OggS		application/ogg
-
-#------------------------------------------------------------------------------
-# c-lang:  file(1) magic for C programs or various scripts
-#
-
-# XPM icons (Greg Roelofs, newt@uchicago.edu)
-# ideally should go into "images", but entries below would tag XPM as C source
-0	string		/*\ XPM		image/x-xpmi
-
-# 3DS (3d Studio files) Conflicts with diff output 0x3d '='
-#16	beshort		0x3d3d		image/x-3ds
-
-# this first will upset you if you're a PL/1 shop... (are there any left?)
-# in which case rm it; ascmagic will catch real C programs
-#					C or REXX program text
-#0	string		/*		text/x-c
-#					C++ program text
-#0	string		//		text/x-c++
-
-#------------------------------------------------------------------------------
-# commands:  file(1) magic for various shells and interpreters
-#
-#0       string          :\ shell archive or commands for antique kernel text
-0       string          #!/bin/sh               application/x-shellscript
-0       string          #!\ /bin/sh             application/x-shellscript
-0       string          #!/bin/csh              application/x-shellscript
-0       string          #!\ /bin/csh            application/x-shellscript
-# korn shell magic, sent by George Wu, gwu@clyde.att.com
-0       string          #!/bin/ksh              application/x-shellscript
-0       string          #!\ /bin/ksh            application/x-shellscript
-0       string          #!/bin/tcsh             application/x-shellscript
-0       string          #!\ /bin/tcsh           application/x-shellscript
-0       string          #!/usr/local/tcsh       application/x-shellscript
-0       string          #!\ /usr/local/tcsh     application/x-shellscript
-0       string          #!/usr/local/bin/tcsh   application/x-shellscript
-0       string          #!\ /usr/local/bin/tcsh application/x-shellscript
-# bash shell magic, from Peter Tobias (tobias@server.et-inf.fho-emden.de)
-0       string          #!/bin/bash     		application/x-shellscript
-0       string          #!\ /bin/bash           application/x-shellscript
-0       string          #!/usr/local/bin/bash   application/x-shellscript
-0       string          #!\ /usr/local/bin/bash application/x-shellscript
-
-#
-# zsh/ash/ae/nawk/gawk magic from cameron@cs.unsw.oz.au (Cameron Simpson)
-0       string          #!/bin/zsh	        application/x-shellscript
-0       string          #!/usr/bin/zsh	        application/x-shellscript
-0       string          #!/usr/local/bin/zsh    application/x-shellscript
-0       string          #!\ /usr/local/bin/zsh  application/x-shellscript
-0       string          #!/usr/local/bin/ash    application/x-shellscript
-0       string          #!\ /usr/local/bin/ash  application/x-shellscript
-#0       string          #!/usr/local/bin/ae     Neil Brown's ae
-#0       string          #!\ /usr/local/bin/ae   Neil Brown's ae
-0       string          #!/bin/nawk             application/x-nawk
-0       string          #!\ /bin/nawk           application/x-nawk
-0       string          #!/usr/bin/nawk         application/x-nawk
-0       string          #!\ /usr/bin/nawk       application/x-nawk
-0       string          #!/usr/local/bin/nawk   application/x-nawk
-0       string          #!\ /usr/local/bin/nawk application/x-nawk
-0       string          #!/bin/gawk             application/x-gawk
-0       string          #!\ /bin/gawk           application/x-gawk
-0       string          #!/usr/bin/gawk         application/x-gawk
-0       string          #!\ /usr/bin/gawk       application/x-gawk
-0       string          #!/usr/local/bin/gawk   application/x-gawk
-0       string          #!\ /usr/local/bin/gawk application/x-gawk
-#
-0       string          #!/bin/awk              application/x-awk
-0       string          #!\ /bin/awk            application/x-awk
-0       string          #!/usr/bin/awk          application/x-awk
-0       string          #!\ /usr/bin/awk        application/x-awk
-# update to distinguish from *.vcf files by Joerg Jenderek: joerg dot jenderek at web dot de
-# Too general, \EBEGIN matches in postscript
-#0	regex		BEGIN[[:space:]]*[{]	application/x-awk
-
-# For Larry Wall's perl language.  The ``eval'' line recognizes an
-# outrageously clever hack for USG systems.
-#                               Keith Waclena <keith@cerberus.uchicago.edu>
-0       string          #!/bin/perl                     application/x-perl
-0       string          #!\ /bin/perl                   application/x-perl
-0       string          eval\ "exec\ /bin/perl          application/x-perl
-0       string          #!/usr/bin/perl                 application/x-perl
-0       string          #!\ /usr/bin/perl               application/x-perl
-0       string          eval\ "exec\ /usr/bin/perl      application/x-perl
-0       string          #!/usr/local/bin/perl           application/x-perl
-0       string          #!\ /usr/local/bin/perl         application/x-perl
-0       string          eval\ "exec\ /usr/local/bin/perl application/x-perl
-
-# Type: Lua scripting language
-# URL:  http://www.lua.org/
-# From: Reuben Thomas <rrt@sc3d.org>
-0	string/B	#!\ /usr/bin/lua	application/x-lua
-0	string/B	#!\ /usr/local/bin/lua	application/x-lua
-0	string		#!/usr/bin/env\ lua	application/x-lua
-0	string		#!\ /usr/bin/env\ lua	application/x-lua
-
-#------------------------------------------------------------------------------
-# compress:  file(1) magic for pure-compression formats (no archives)
-#
-# compress, gzip, pack, compact, huf, squeeze, crunch, freeze, yabba, whap, etc.
-#
-# Formats for various forms of compressed data
-# Formats for "compress" proper have been moved into "compress.c",
-# because it tries to uncompress it to figure out what's inside.
-
-# standard unix compress
-#0	string		\037\235	application/x-compress
-
-# gzip (GNU zip, not to be confused with [Info-ZIP/PKWARE] zip archiver)
-0       string          \037\213        application/x-gzip
-
-0		string			PK\003\004		application/zip
-
-# RAR archiver (Greg Roelofs, newt@uchicago.edu)
-0	string		Rar!		application/x-rar
-
-# According to gzip.h, this is the correct byte order for packed data.
-0	string		\037\036	application/octet-stream
-#
-# This magic number is byte-order-independent.
-#
-0	short		017437		application/octet-stream
-
-# XXX - why *two* entries for "compacted data", one of which is
-# byte-order independent, and one of which is byte-order dependent?
-#
-# compacted data
-0	short		0x1fff		application/octet-stream
-0	string		\377\037	application/octet-stream
-# huf output
-0	short		0145405		application/octet-stream
-
-# Squeeze and Crunch...
-# These numbers were gleaned from the Unix versions of the programs to
-# handle these formats.  Note that I can only uncrunch, not crunch, and
-# I didn't have a crunched file handy, so the crunch number is untested.
-#				Keith Waclena <keith@cerberus.uchicago.edu>
-#0	leshort		0x76FF		squeezed data (CP/M, DOS)
-#0	leshort		0x76FE		crunched data (CP/M, DOS)
-
-# Freeze
-#0	string		\037\237	Frozen file 2.1
-#0	string		\037\236	Frozen file 1.0 (or gzip 0.5)
-
-# lzh?
-#0	string		\037\240	LZH compressed data
-
-257	string		ustar\0		application/x-tar	posix
-257	string		ustar\040\040\0		application/x-tar	gnu
-
-0	short		070707		application/x-cpio
-0	short		0143561		application/x-cpio	swapped
-
-0	string		=<ar>		application/x-archive
-0	string		\!<arch>	application/x-archive
->8	string		debian		application/x-debian-package
-
-#------------------------------------------------------------------------------
-#
-# RPM: file(1) magic for Red Hat Packages   Erik Troan (ewt@redhat.com)
-#
-0       beshort         0xedab
->2      beshort         0xeedb          application/x-rpm
-
-0	lelong&0x8080ffff	0x0000081a	application/x-arc	lzw
-0	lelong&0x8080ffff	0x0000091a	application/x-arc	squashed
-0	lelong&0x8080ffff	0x0000021a	application/x-arc	uncompressed
-0	lelong&0x8080ffff	0x0000031a	application/x-arc	packed
-0	lelong&0x8080ffff	0x0000041a	application/x-arc	squeezed
-0	lelong&0x8080ffff	0x0000061a	application/x-arc	crunched
-
-0	leshort	0xea60	application/x-arj
-
-# LHARC/LHA archiver (Greg Roelofs, newt@uchicago.edu)
-2	string	-lh0-	application/x-lharc	lh0
-2	string	-lh1-	application/x-lharc	lh1
-2	string	-lz4-	application/x-lharc	lz4
-2	string	-lz5-	application/x-lharc	lz5
-#	[never seen any but the last; -lh4- reported in comp.compression:]
-2	string	-lzs-	application/x-lha	lzs
-2	string	-lh\ -	application/x-lha	lh
-2	string	-lhd-	application/x-lha	lhd
-2	string	-lh2-	application/x-lha	lh2
-2	string	-lh3-	application/x-lha	lh3
-2	string	-lh4-	application/x-lha	lh4
-2	string	-lh5-	application/x-lha	lh5
-2	string	-lh6-	application/x-lha	lh6
-2	string	-lh7-	application/x-lha	lh7
-# Shell archives
-10	string	#\ This\ is\ a\ shell\ archive	application/octet-stream	x-shell
-
-#------------------------------------------------------------------------------
-# frame:  file(1) magic for FrameMaker files
-#
-# This stuff came on a FrameMaker demo tape, most of which is
-# copyright, but this file is "published" as witness the following:
-#
-# Note that this is the Framemaker Maker Interchange Format, not the
-# Normal format which would be application/vnd.framemaker.
-#
-0	string		\<MakerFile	application/x-mif
-0	string		\<MIFFile	application/x-mif
-0	string		\<MakerDictionary	application/x-mif
-0	string		\<MakerScreenFon	application/x-mif
-0	string		\<MML		application/x-mif
-0	string		\<Book		application/x-mif
-0	string		\<Maker		application/x-mif
-
-#------------------------------------------------------------------------------
-# html:  file(1) magic for HTML (HyperText Markup Language) docs
-#
-# from Michael Piefel <piefel@debian.org>
-#
-0	string/cB	\<!DOCTYPE\ html	text/html
-0	string/cb	\<head			text/html
-0	string/cb	\<title			text/html
-0	string/bc	\<html			text/html
-0	string		\<!--			text/html
-0	string/c	\<h1			text/html
-
-#------------------------------------------------------------------------------
-# images:  file(1) magic for image formats (see also "c-lang" for XPM bitmaps)
-#
-# originally from jef@helios.ee.lbl.gov (Jef Poskanzer),
-# additions by janl@ifi.uio.no as well as others. Jan also suggested
-# merging several one- and two-line files into here.
-#
-# XXX - byte order for GIF and TIFF fields?
-# [GRR:  TIFF allows both byte orders; GIF is probably little-endian]
-#
-
-# [GRR:  what the hell is this doing in here?]
-#0	string		xbtoa		btoa'd file
-
-# PBMPLUS
-#					PBM file
-0	string		P1		image/x-portable-bitmap
-#					PGM file
-0	string		P2		image/x-portable-greymap
-#					PPM file
-0	string		P3		image/x-portable-pixmap
-#					PBM "rawbits" file
-0	string		P4		image/x-portable-bitmap
-#					PGM "rawbits" file
-0	string		P5		image/x-portable-greymap
-#					PPM "rawbits" file
-0	string		P6		image/x-portable-pixmap
-
-# NIFF (Navy Interchange File Format, a modification of TIFF)
-# [GRR:  this *must* go before TIFF]
-0	string		IIN1		image/x-niff
-
-# TIFF and friends
-#					TIFF file, big-endian
-0	string		MM		image/tiff
-#					TIFF file, little-endian
-0	string		II		image/tiff
-
-# possible GIF replacements; none yet released!
-# (Greg Roelofs, newt@uchicago.edu)
-#
-# GRR 950115:  this was mine ("Zip GIF"):
-#					ZIF image (GIF+deflate alpha)
-0	string		GIF94z		image/x-unknown
-#
-# GRR 950115:  this is Jeremy Wohl's Free Graphics Format (better):
-#					FGF image (GIF+deflate beta)
-0	string		FGF95a		image/x-unknown
-#
-# GRR 950115:  this is Thomas Boutell's Portable Bitmap Format proposal
-# (best; not yet implemented):
-#					PBF image (deflate compression)
-0	string		PBF		image/x-unknown
-
-# GIF
-0	string		GIF		image/gif
-
-# JPEG images
-0	beshort		0xffd8		image/jpeg
-
-# PC bitmaps (OS/2, Windoze BMP files)  (Greg Roelofs, newt@uchicago.edu)
-0	string		BM		image/x-ms-bmp
-#>14	byte		12		(OS/2 1.x format)
-#>14	byte		64		(OS/2 2.x format)
-#>14	byte		40		(Windows 3.x format)
-#0	string		IC		icon
-#0	string		PI		pointer
-#0	string		CI		color icon
-#0	string		CP		color pointer
-#0	string		BA		bitmap array
-
-# CDROM Filesystems
-32769    string    CD001     application/x-iso9660-image
-
-# Newer StuffIt archives (grant@netbsd.org)
-0	string		StuffIt			application/x-stuffit
-#>162	string		>0			: %s
-
-# BinHex is the Macintosh ASCII-encoded file format (see also "apple")
-# Daniel Quinlan, quinlan@yggdrasil.com
-11	string	must\ be\ converted\ with\ BinHex\ 4	application/mac-binhex40
-##>41	string	x					\b, version %.3s
-
-
-#------------------------------------------------------------------------------
-# lisp:  file(1) magic for lisp programs
-#
-# various lisp types, from Daniel Quinlan (quinlan@yggdrasil.com)
-0	string	;;			text/plain
-# Emacs 18 - this is always correct, but not very magical.
-0	string	\012(			application/x-elc
-# Emacs 19
-0	string	;ELC\023\000\000\000	application/x-elc
-
-#------------------------------------------------------------------------------
-# mail.news:  file(1) magic for mail and news
-#
-# There are tests to ascmagic.c to cope with mail and news.
-0	string		Relay-Version: 	message/rfc822
-0	string		#!\ rnews	message/rfc822
-0	string		N#!\ rnews	message/rfc822
-0	string		Forward\ to 	message/rfc822
-0	string		Pipe\ to 	message/rfc822
-0	string		Return-Path:	message/rfc822
-0	string		Received:	message/rfc822
-0	string		Path:		message/news
-0	string		Xref:		message/news
-0	string		From:		message/rfc822
-0	string		Article 	message/news
-#------------------------------------------------------------------------------
-# msword: file(1) magic for MS Word files
-#
-# Contributor claims:
-# Reversed-engineered MS Word magic numbers
-#
-
-0	string		\376\067\0\043			application/msword
-# disable this one because it applies also to other
-# Office/OLE documents for which msword is not correct. See PR#2608.
-# from magic file of the apache
-#0	string		\320\317\021\340\241\261	application/msword
-512	string		\354\245\301			application/msword
-0	string		\333\245-\0\0\0			application/msword
-
-
-
-#------------------------------------------------------------------------------
-# printer:  file(1) magic for printer-formatted files
-#
-
-# PostScript
-0	string		%!		application/postscript
-0	string		\004%!		application/postscript
-
-# Acrobat
-# (due to clamen@cs.cmu.edu)
-0	string		%PDF-		application/pdf
-
-#------------------------------------------------------------------------------
-# sc:  file(1) magic for "sc" spreadsheet
-#
-38	string		Spreadsheet	application/x-sc
-
-#------------------------------------------------------------------------------
-# tex:  file(1) magic for TeX files
-#
-# XXX - needs byte-endian stuff (big-endian and little-endian DVI?)
-#
-# From <conklin@talisman.kaleida.com>
-
-# Although we may know the offset of certain text fields in TeX DVI
-# and font files, we can't use them reliably because they are not
-# zero terminated. [but we do anyway, christos]
-0	string		\367\002	application/x-dvi
-#0	string		\367\203	TeX generic font data
-#0	string		\367\131	TeX packed font data
-#0	string		\367\312	TeX virtual font data
-#0	string		This\ is\ TeX,	TeX transcript text
-#0	string		This\ is\ METAFONT,	METAFONT transcript text
-
-# There is no way to detect TeX Font Metric (*.tfm) files without
-# breaking them apart and reading the data.  The following patterns
-# match most *.tfm files generated by METAFONT or afm2tfm.
-2	string		\000\021	application/x-tex-tfm
-2	string		\000\022	application/x-tex-tfm
-#>34	string		>\0		(%s)
-
-# Texinfo and GNU Info, from Daniel Quinlan (quinlan@yggdrasil.com)
-0	string		\\input\ texinfo		text/x-texinfo
-0	string		This\ is\ Info\ file	text/x-info
-
-# correct TeX magic for Linux (and maybe more)
-# from Peter Tobias (tobias@server.et-inf.fho-emden.de)
-#
-0	leshort		0x02f7		application/x-dvi
-
-# RTF - Rich Text Format
-0	string		{\\rtf		text/rtf
-
-# TeX documents, from Daniel Quinlan (quinlan@yggdrasil.com)
-0	search/400	\\input		text/x-tex
-0	search/400	\\section	text/x-tex
-0	search/400	\\setlength	text/x-tex
-0	search/400	\\documentstyle	text/x-tex
-0	search/400	\\chapter	text/x-tex
-0	search/400	\\documentclass	text/x-tex
-
-# Type: Inform interactive fiction language
-# URL:  http://www.inform-fiction.org/
-# From: Reuben Thomas <rrt@sc3d.org>
-0	regex		[Cc]onstant[[:space:]]+[Ss]tory	text/x-inform
-
-#------------------------------------------------------------------------------
-# animation:  file(1) magic for animation/movie formats
-#
-# animation formats, originally from vax@ccwf.cc.utexas.edu (VaX#n8)
-#						MPEG file
-# MPEG sequences
-0       belong             0x000001BA
->4      byte               &0x40          video/mp2p
->4      byte               ^0x40          video/mpeg
-0       belong             0x000001BB     video/mpeg
-0       belong             0x000001B0     video/mp4v-es
-0       belong             0x000001B5     video/mp4v-es
-0       belong             0x000001B3     video/mpv
-0       belong&0xFF5FFF1F  0x47400010     video/mp2t
-0       belong             0x00000001
->4      byte&0x1F	   0x07           video/h264
-
-# FLI animation format
-0	leshort		0xAF11				video/x-fli
-# FLC animation format
-0	leshort		0xAF12				video/x-flc
-#
-# SGI and Apple formats
-# Added ISO mimes
-0	string		MOVI	      video/x-sgi-movie
-4	string		moov	      video/quicktime
-4	string		mdat	      video/quicktime
-4	string		wide	      video/quicktime
-4	string		skip	      video/quicktime
-4	string		free	      video/quicktime
-4	string		idsc	      image/x-quicktime
-4	string		idat	      image/x-quicktime
-4	string		pckg	      application/x-quicktime-player
-4	string/B	jP	      image/jp2
-4	string		ftyp
->8	string		isom	      video/mp4
->8	string		mp41	      video/mp4
->8	string		mp42	      video/mp4
->8	string/B	jp2	      image/jp2
->8	string		3gp	      video/3gpp
->8      string          avc1          video/3gpp
->8	string		mmp4	      video/mp4
->8	string/B	M4A	      audio/mp4
->8	string/B	M4V	      video/mp4
->8	string/B	qt	      video/quicktime
-# The contributor claims:
-#   I couldn't find a real magic number for these, however, this
-#   -appears- to work.  Note that it might catch other files, too,
-#   so BE CAREFUL!
-#
-# Note that title and author appear in the two 20-byte chunks
-# at decimal offsets 2 and 22, respectively, but they are XOR'ed with
-# 255 (hex FF)! DL format SUCKS BIG ROCKS.
-#
-#						DL file version 1 , medium format (160x100, 4 images/screen)
-0	byte		1			video/x-unknown
-0	byte		2			video/x-unknown
-#
-# Databases
-#
-# GDBM magic numbers
-#  Will be maintained as part of the GDBM distribution in the future.
-#  <downsj@teeny.org>
-0       belong  0x13579ace      application/x-gdbm
-0       lelong  0x13579ace      application/x-gdbm
-0       string  GDBM            application/x-gdbm
-#
-0       belong  0x061561        application/x-dbm
-#
-# Executables
-#
-0	string		\177ELF
->16	leshort		0		application/octet-stream
->16	leshort		1		application/x-object
->16	leshort		2		application/x-executable
->16	leshort		3		application/x-sharedlib
->16	leshort		4		application/x-coredump
->16	beshort		0		application/octet-stream
->16	beshort		1		application/x-object
->16	beshort		2		application/x-executable
->16	beshort		3		application/x-sharedlib
->16	beshort		4		application/x-coredump
-#
-# DOS
-0		string			MZ				application/x-dosexec
-#
-# KDE
-0		string	[KDE\ Desktop\ Entry]	application/x-kdelnk
-0		string	#\ KDE\ Config\ File	application/x-kdelnk
-# xmcd database file for kscd
-0		string	#\ xmcd                text/x-xmcd
-
-#------------------------------------------------------------------------------
-# pkgadd:  file(1) magic for SysV R4 PKG Datastreams
-#
-0       string          #\ PaCkAgE\ DaTaStReAm  application/x-svr4-package
-
-#PNG Image Format
-0	string		\x89PNG			image/png
-
-# MNG Video Format, <URL:http://www.libpng.org/pub/mng/spec/>
-0	string		\x8aMNG			video/x-mng
-0	string		\x8aJNG			video/x-jng
-
-#------------------------------------------------------------------------------
-# Hierarchical Data Format, used to facilitate scientific data exchange
-# specifications at http://hdf.ncsa.uiuc.edu/
-#Hierarchical Data Format (version 4) data
-0	belong		0x0e031301		application/x-hdf
-#Hierarchical Data Format (version 5) data
-0	string		\211HDF\r\n\032		application/x-hdf
-
-# Adobe Photoshop
-0	string		8BPS			image/vnd.adobe.photoshop
-
-# Felix von Leitner <felix-file@fefe.de>
-0	string		d8:announce		application/x-bittorrent
-
-
-# lotus 1-2-3 document
-0	belong	0x00001a00	application/x-123
-0	belong	0x00000200 	application/x-123
-
-# MS Access database
-4	string	Standard\ Jet\ DB	application/x-msaccess
-
-## magic for XBase files
-#0      byte       0x02
-#>8     leshort	  >0
-#>>12   leshort    0	application/x-dbf
-#
-#0      byte       0x03
-#>8     leshort	  >0
-#>>12   leshort    0	application/x-dbf
-#
-#0      byte       0x04
-#>8     leshort	  >0
-#>>12   leshort    0	application/x-dbf
-#
-#0      byte       0x05
-#>8     leshort	  >0
-#>>12   leshort    0	application/x-dbf
-#
-#0      byte       0x30
-#>8     leshort	  >0
-#>>12   leshort    0	application/x-dbf
-#
-#0      byte       0x43
-#>8     leshort	  >0
-#>>12   leshort    0	application/x-dbf
-#
-#0      byte       0x7b
-#>8     leshort	  >0
-#>>12   leshort    0	application/x-dbf
-#
-#0      byte       0x83
-#>8     leshort	  >0
-#>>12   leshort    0	application/x-dbf
-#
-#0      byte       0x8b
-#>8     leshort	  >0
-#>>12   leshort    0	application/x-dbf
-#
-#0      byte       0x8e
-#>8     leshort	  >0
-#>>12   leshort    0	application/x-dbf
-#
-#0      byte       0xb3
-#>8     leshort	  >0
-#>>12   leshort    0	application/x-dbf
-#
-#0      byte       0xf5
-#>8     leshort	  >0
-#>>12   leshort    0	application/x-dbf
-#
-#0	leshort		0x0006		application/x-dbt
-
-# Debian has entries for the old PGP formats:
-# pgp:  file(1) magic for Pretty Good Privacy
-# see http://lists.gnupg.org/pipermail/gnupg-devel/1999-September/016052.html
-#0       beshort         0x9900                  application/x-pgp-keyring
-#0       beshort         0x9501                  application/x-pgp-keyring
-#0       beshort         0x9500                  application/x-pgp-keyring
-#0       beshort         0xa600                  application/pgp-encrypted
-#0       string          -----BEGIN\040PGP       text/PGP armored data
-#>15     string          PUBLIC\040KEY\040BLOCK- public key block
-#>15     string          MESSAGE-                message
-#>15     string          SIGNED\040MESSAGE-      signed message
-#>15     string          PGP\040SIGNATURE-       signature
-#0       beshort         0x8501                  data
-#text/PGP key public ring
-0	beshort		0x9900		application/pgp
-#text/PGP key security ring
-0	beshort		0x9501		application/pgp
-#text/PGP key security ring
-0	beshort		0x9500		application/pgp
-#text/PGP encrypted data
-0	beshort		0xa600		application/pgp-encrypted
-#text/PGP armored data
-##public key block
-2	string	---BEGIN\ PGP\ PUBLIC\ KEY\ BLOCK-	application/pgp-keys
-0	string	-----BEGIN\040PGP\40MESSAGE-		application/pgp
-0	string	-----BEGIN\040PGP\40SIGNATURE-		application/pgp-signature
-
-#
-# GnuPG Magic:
-#
-#0       beshort         0x9901                  application/x-gnupg-keyring
-#0       beshort         0x8501                  text/OpenPGP data
-#text/GnuPG key public ring
-0	beshort		0x9901		application/pgp
-#text/OpenPGP data
-0	beshort		0x8501		application/pgp-encrypted
-
-# flash:        file(1) magic for Macromedia Flash file format
-#
-# See
-#
-#       http://www.macromedia.com/software/flash/open/
-#
-0	string		FWS
->3	byte		x			application/x-shockwave-flash
-# Flash Video
-0	string		FLV			video/x-flv
-
-
-# The following paramaters are created for Namazu.
-# <http://www.namazu.org/>
-#
-# 1999/08/13
-#0	string		\<!--\ MHonArc		text/html; x-type=mhonarc
-0	string		BZh			application/x-bzip2
-
-# 1999/09/09
-# VRML (suggested by Masao Takaku)
-0	string		#VRML\ V1.0\ ascii	model/vrml
-0	string		#VRML\ V2.0\ utf8	model/vrml
-
-#------------------------------------------------------------------------------
-# ichitaro456: file(1) magic for Just System Word Processor Ichitaro
-#
-# Contributor kenzo-:
-# Reversed-engineered JS Ichitaro magic numbers
-#
-
-0	string		DOC
->43	byte		0x14		application/x-ichitaro4
->144	string	JDASH		application/x-ichitaro4
-
-0	string		DOC
->43	byte		0x15		application/x-ichitaro5
-
-0	string		DOC
->43	byte		0x16		application/x-ichitaro6
-
-#------------------------------------------------------------------------------
-# office97: file(1) magic for MicroSoft Office files
-#
-# Contributor kenzo-:
-# Reversed-engineered MS Office magic numbers
-#
-
-#0       string          \320\317\021\340\241\261\032\341
-#>48     byte            0x1B            application/excel
-
-2080	string	Microsoft\ Excel\ 5.0\ Worksheet	application/vnd.ms-excel
-2114	string	Biff5					application/vnd.ms-excel
-
-0       string	\224\246\056		application/msword
-
-0	belong	0x31be0000		application/msword
-
-0	string	PO^Q`			application/msword
-
-0	string	\320\317\021\340\241\261\032\341
->546	string	bjbj			application/msword
->546	string	jbjb			application/msword
-
-512	string	R\0o\0o\0t\0\ \0E\0n\0t\0r\0y	application/msword
-
-2080	string	Microsoft\ Word\ 6.0\ Document	application/msword
-2080	string	Documento\ Microsoft\ Word\ 6	application/msword
-2112	string	MSWordDoc			application/msword
-
-#0	string	\320\317\021\340\241\261\032\341	application/powerpoint
-0	string	\320\317\021\340\241\261\032\341	application/msword
-
-0       string  #\ PaCkAgE\ DaTaStReAm  application/x-svr4-package
-
-
-# WinNT/WinCE PE files (Warner Losh, imp@village.org)
-#
-128		string	PE\000\000	application/octet-stream
-0		string	PE\000\000	application/octet-stream
-
-# miscellaneous formats
-0		string	LZ		application/octet-stream
-
-# DOS device drivers by Joerg Jenderek
-0	belong		0xffffffff	application/octet-stream
-
-# .EXE formats (Greg Roelofs, newt@uchicago.edu)
-#
-0		string	MZ
->24		string	@		application/octet-stream
-
-0		string	MZ
->30		string	Copyright\ 1989-1990\ PKWARE\ Inc.	application/zip
-
-0		string	MZ
->30		string	PKLITE\ Copr.	application/zip
-
-0		string	MZ
->36		string	LHa's\ SFX	application/x-lha
-
-0		string	MZ		application/octet-stream
-
-# LHA archiver
-2		string	-lh
->6		string	-		application/x-lha
-
-
-# Zoo archiver
-20		lelong	0xfdc4a7dc	application/x-zoo
-
-# ARC archiver
-0       	lelong&0x8080ffff	0x0000081a	application/x-arc
-0		lelong&0x8080ffff	0x0000091a	application/x-arc
-0		lelong&0x8080ffff	0x0000021a	application/x-arc
-0		lelong&0x8080ffff	0x0000031a	application/x-arc
-0		lelong&0x8080ffff	0x0000041a	application/x-arc
-0		lelong&0x8080ffff	0x0000061a	application/x-arc
-
-# Microsoft Outlook's Transport Neutral Encapsulation Format (TNEF)
-0		lelong	0x223e9f78	application/vnd.ms-tnef
-
-# From: stephane.loeuillet@tiscali.f
-# http://www.djvuzone.org/
-0	string		AT&TFORM	image/vnd.djvu
-
-# Danny Milosavljevic <danny.milo@gmx.net>
-# this are adrift (adventure game standard) game files, extension .taf
-# depending on version magic continues with 0x93453E6139FA (V 4.0)
-# 0x9445376139FA (V 3.90)
-# 0x9445366139FA (V 3.80)
-# this is from source (http://www.adrift.org.uk/) and I have some taf
-# files, and checked them.
-#0	belong	0x3C423FC9
-#>4	belong	0x6A87C2CF	application/x-adrift
-#0	string	\000\000\001\000	image/x-ico
-
-# Quark Xpress 3 Files:
-# (made the mimetype up)
-0	string	\0\0MMXPR3\0	application/x-quark-xpress-3
-
-# EET archive
-# From: Tilman Sauerbeck <tilman@code-monkey.de>
-0	belong	0x1ee7ff00	application/x-eet
-
-# From: Denis Knauf, via gentoo.
-0	string	fLaC		audio/x-flac
-0	string	CWS		application/x-shockwave-flash
-
-# Hangul Document Files:
-# Reversed-engineered HWP magic numbers
-# From: Won-Kyu Park <wkpark@kldp.org>
-512	string		R\0o\0o\0t\0	application/x-hwp
-
-0	string/c	BEGIN:VCARD	text/x-vcard
-0	string		WordPro\0	application/vnd.lotus-wordpro
-0	string		WordPro\r\373	application/vnd.lotus-wordpro
-0	string		CPC\262		image/x-cpi
-
-# 
-128	string		DICM		application/dicom
-
-# Symbian installation files
-8	lelong	0x10000419	application/vnd.symbian.install
-0	lelong	0x10201A7A	x-epoc/x-sisx-app
-# FORTRAN source
-0	string/c	c\ 		text/x-fortran
-
-# Gnumeric spreadsheet
-# This entry is only semi-helpful, as Gnumeric compresses its files, so
-# they will ordinarily reported as "compressed", but at least -z helps
-39	string	=<gmr:Workbook	application/x-gnumeric
diff --git a/cloudfiles/share/magic.mime.mgc b/cloudfiles/share/magic.mime.mgc
deleted file mode 100644
index 62c2a3f9b1f1c30b7aea2f24ca2826e32dfbade1..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 42624
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
T3fI5ju?4v;2C)&9q||-@-U8t$

diff --git a/voce-settings.php b/voce-settings.php
index 88f2de2..6a94205 100644
--- a/voce-settings.php
+++ b/voce-settings.php
@@ -61,7 +61,7 @@ if (!class_exists('Voce_Settings')) {
 		 * @param string $extra_args extra args to pass to the callback
 		 * @return void
 		 */
-		function add_settings_field($id, $label, $display_callback, $page, $section, $extra_args = null) {
+		public function add_settings_field($id, $label, $display_callback, $page, $section, $extra_args = null) {
 
 			$args = array(
 				'id' => $id,
@@ -89,7 +89,7 @@ if (!class_exists('Voce_Settings')) {
 		 * @param string $args
 		 * @return string checkbox
 		 */
-		function field_checkbox($args) {
+		public function field_checkbox($args) {
 			$options = get_option($this->option_name);
 
 			$defaults = array('prepend_field' => '', 'append_field' => '', 'class' => '');
@@ -112,107 +112,107 @@ if (!class_exists('Voce_Settings')) {
 			);
 		}
 
-			/**
-			 * input type text callback for settings API
-			 *
-			 * @param string $args
-			 * @return string input
-			 */
-			function field_input($args) {
-				$options = get_option($this->option_name);
-
-				$defaults = array('prepend_field' => '', 'append_field' => '', 'class' => 'regular-text', 'type' => 'text');
-				$args = wp_parse_args($args, $defaults);
-				extract($args);
-
-				$description = (isset($description) && $description) ? sprintf('<p><span class="description">%s</span></p>', $description) : '';
-
-				if (!isset($value)) {
-					if (isset($options[$id])) {
-						$value = $options[$id];
-					} else {
-						$value = '';
-					}
-				}
+		/**
+		 * input type text callback for settings API
+		 *
+		 * @param string $args
+		 * @return string input
+		 */
+		public function field_input($args) {
+			$options = get_option($this->option_name);
 
-				echo sprintf(
-					"%s<input id='%s' name='{$this->option_name}[%s]' type='%s' class='%s' value='%s' />%s%s",
-					$prepend_field,
-					$id,
-					$id,
-					$type,
-					$class,
-					esc_attr($value),
-					$append_field,
-					$description
-				);
+			$defaults = array('prepend_field' => '', 'append_field' => '', 'class' => 'regular-text', 'type' => 'text');
+			$args = wp_parse_args($args, $defaults);
+			extract($args);
+
+			$description = (isset($description) && $description) ? sprintf('<p><span class="description">%s</span></p>', $description) : '';
+
+			if (!isset($value)) {
+				if (isset($options[$id])) {
+					$value = $options[$id];
+				} else {
+					$value = '';
+				}
 			}
 
-			/**
-			 * textarea callback for settings API
-			 *
-			 * @param string $args
-			 * @return string textarea
-			 */
-			function field_textarea($args) {
-				$options = get_option($this->option_name);
-				$id = $args['id'];
+			echo sprintf(
+				"%s<input id='%s' name='{$this->option_name}[%s]' type='%s' class='%s' value='%s' />%s%s",
+				$prepend_field,
+				$id,
+				$id,
+				$type,
+				$class,
+				esc_attr($value),
+				$append_field,
+				$description
+			);
+		}
 
-				$defaults = array('prepend_field' => '', 'append_field' => '', 'columns' => 40, 'rows' => 8, 'class' => 'large-text');
-				$args = wp_parse_args($args, $defaults);
-				extract($args);
+		/**
+		 * textarea callback for settings API
+		 *
+		 * @param string $args
+		 * @return string textarea
+		 */
+		public function field_textarea($args) {
+			$options = get_option($this->option_name);
+			$id = $args['id'];
 
-				$description = (isset($description) && $description) ? sprintf('<p><span class="description">%s</span></p>', $description) : '';
+			$defaults = array('prepend_field' => '', 'append_field' => '', 'columns' => 40, 'rows' => 8, 'class' => 'large-text');
+			$args = wp_parse_args($args, $defaults);
+			extract($args);
 
-				echo sprintf(
-					"%s<textarea id='%s' name='{$this->option_name}[%s]' columns='%s' rows='%s' class='%s' />%s</textarea>%s%s",
-					$prepend_field,
-					$id,
-					$id,
-					$columns,
-					$rows,
-					$class,
-					esc_attr($options[$id]),
-					$append_field,
-					$description
-				);
-			}
+			$description = (isset($description) && $description) ? sprintf('<p><span class="description">%s</span></p>', $description) : '';
 
-			function field_radio($args) {
-				$options = get_option($this->option_name);
-				$id = $args['id'];
+			echo sprintf(
+				"%s<textarea id='%s' name='{$this->option_name}[%s]' columns='%s' rows='%s' class='%s' />%s</textarea>%s%s",
+				$prepend_field,
+				$id,
+				$id,
+				$columns,
+				$rows,
+				$class,
+				esc_attr($options[$id]),
+				$append_field,
+				$description
+			);
+		}
 
-				$defaults = array('type' => 'radio', 'class' => '');
-				$args = wp_parse_args($args, $defaults);
-				extract($args);
+		public function field_radio($args) {
+			$options = get_option($this->option_name);
+			$id = $args['id'];
 
-				if (!$items) {
-					return;
-				}
+			$defaults = array('type' => 'radio', 'class' => '');
+			$args = wp_parse_args($args, $defaults);
+			extract($args);
+
+			if (!$items) {
+				return;
+			}
 
-				echo '<fieldset><p>';
-				foreach ($items as $item) {
-					if (!empty($options[$id])) {
-						$checked = checked($options[$id], $item['value'], false);
-					} else {
-						$checked = false;
-					}
-
-					echo sprintf(
-						"<label> <input id='%s' name='{$this->option_name}[%s]' type='%s', class='%s' value='%s' %s /> %s</label><br />",
-						$id,
-						$id,
-						$type,
-						$class,
-						esc_attr($item['value']),
-						$checked,
-						esc_html($item['text'])
-					);
+			echo '<fieldset><p>';
+			foreach ($items as $item) {
+				if (!empty($options[$id])) {
+					$checked = checked($options[$id], $item['value'], false);
+				} else {
+					$checked = false;
 				}
-				echo '</fieldset></p>';
 
-				$description = (isset($description) && $description) ? sprintf('<p><span class="description">%s</span></p>', $description) : '';
-				echo $description;
+				echo sprintf(
+					"<label> <input id='%s' name='{$this->option_name}[%s]' type='%s', class='%s' value='%s' %s /> %s</label><br />",
+					$id,
+					$id,
+					$type,
+					$class,
+					esc_attr($item['value']),
+					$checked,
+					esc_html($item['text'])
+				);
 			}
+			echo '</fieldset></p>';
+
+			$description = (isset($description) && $description) ? sprintf('<p><span class="description">%s</span></p>', $description) : '';
+			echo $description;
+		}
 	}
 }
\ No newline at end of file
-- 
GitLab