diff options
author | Berke Viktor <bviktor@hexchat.org> | 2012-07-11 19:46:46 +0200 |
---|---|---|
committer | Berke Viktor <bviktor@hexchat.org> | 2012-07-11 19:46:46 +0200 |
commit | 1ea726a91809340451c7a05ede34e7be00ba7863 (patch) | |
tree | 936bb6fce5c26b3876a7324ec82ee0bb232875d7 | |
parent | d81619cca95831e2fd444d71cd078201f3db0e39 (diff) | |
parent | 9d9c24c8d347aa44efbd63e8f8c8dfb5b3cddedb (diff) |
Merge branch 'wdk'
416 files changed, 62082 insertions, 2712 deletions
diff --git a/COPYING.rtf b/COPYING.rtf new file mode 100644 index 00000000..d151d38c --- /dev/null +++ b/COPYING.rtf @@ -0,0 +1,136 @@ +{\rtf1\ansi\ansicpg1252\deff0{\fonttbl{\f0\fnil\fcharset0 Courier New;}} +{\*\generator Msftedit 5.41.21.2509;}\viewkind4\uc1\pard\lang1033\f0\fs20 GNU GENERAL PUBLIC LICENSE\par +\par +Version 2, June 1991\par +\par +Copyright (C) 1989, 1991 Free Software Foundation, Inc. \par +51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA\par +\par +Everyone is permitted to copy and distribute verbatim copies\par +of this license document, but changing it is not allowed.\par +\par +Preamble\par +\par +The licenses for most software are designed to take away your freedom to share and change it. By contrast, the GNU General Public License is intended to guarantee your freedom to share and change free software--to make sure the software is free for all its users. This General Public License applies to most of the Free Software Foundation's software and to any other program whose authors commit to using it. (Some other Free Software Foundation software is covered by the GNU Lesser General Public License instead.) You can apply it to your programs, too.\par +\par +When we speak of free software, we are referring to freedom, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for this service if you wish), that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs; and that you know you can do these things.\par +\par +To protect your rights, we need to make restrictions that forbid anyone to deny you these rights or to ask you to surrender the rights. These restrictions translate to certain responsibilities for you if you distribute copies of the software, or if you modify it.\par +\par +For example, if you distribute copies of such a program, whether gratis or for a fee, you must give the recipients all the rights that you have. You must make sure that they, too, receive or can get the source code. And you must show them these terms so they know their rights.\par +\par +We protect your rights with two steps: (1) copyright the software, and (2) offer you this license which gives you legal permission to copy, distribute and/or modify the software.\par +\par +Also, for each author's protection and ours, we want to make certain that everyone understands that there is no warranty for this free software. If the software is modified by someone else and passed on, we want its recipients to know that what they have is not the original, so that any problems introduced by others will not reflect on the original authors' reputations.\par +\par +Finally, any free program is threatened constantly by software patents. We wish to avoid the danger that redistributors of a free program will individually obtain patent licenses, in effect making the program proprietary. To prevent this, we have made it clear that any patent must be licensed for everyone's free use or not licensed at all.\par +\par +The precise terms and conditions for copying, distribution and modification follow.\par +TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION\par +\par +0. This License applies to any program or other work which contains a notice placed by the copyright holder saying it may be distributed under the terms of this General Public License. The "Program", below, refers to any such program or work, and a "work based on the Program" means either the Program or any derivative work under copyright law: that is to say, a work containing the Program or a portion of it, either verbatim or with modifications and/or translated into another language. (Hereinafter, translation is included without limitation in the term "modification".) Each licensee is addressed as "you".\par +\par +Activities other than copying, distribution and modification are not covered by this License; they are outside its scope. The act of running the Program is not restricted, and the output from the Program is covered only if its contents constitute a work based on the Program (independent of having been made by running the Program). Whether that is true depends on what the Program does.\par +\par +1. You may copy and distribute verbatim copies of the Program's source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice and disclaimer of warranty; keep intact all the notices that refer to this License and to the absence of any warranty; and give any other recipients of the Program a copy of this License along with the Program.\par +\par +You may charge a fee for the physical act of transferring a copy, and you may at your option offer warranty protection in exchange for a fee.\par +\par +2. You may modify your copy or copies of the Program or any portion of it, thus forming a work based on the Program, and copy and distribute such modifications or work under the terms of Section 1 above, provided that you also meet all of these conditions:\par +\par + a) You must cause the modified files to carry prominent notices stating that you changed the files and the date of any change. \par + b) You must cause any work that you distribute or publish, that in whole or in part contains or is derived from the Program or any part thereof, to be licensed as a whole at no charge to all third parties under the terms of this License. \par + c) If the modified program normally reads commands interactively when run, you must cause it, when started running for such interactive use in the most ordinary way, to print or display an announcement including an appropriate copyright notice and a notice that there is no warranty (or else, saying that you provide a warranty) and that users may redistribute the program under these conditions, and telling the user how to view a copy of this License. (Exception: if the Program itself is interactive but does not normally print such an announcement, your work based on the Program is not required to print an announcement.) \par +\par +These requirements apply to the modified work as a whole. If identifiable sections of that work are not derived from the Program, and can be reasonably considered independent and separate works in themselves, then this License, and its terms, do not apply to those sections when you distribute them as separate works. But when you distribute the same sections as part of a whole which is a work based on the Program, the distribution of the whole must be on the terms of this License, whose permissions for other licensees extend to the entire whole, and thus to each and every part regardless of who wrote it.\par +\par +Thus, it is not the intent of this section to claim rights or contest your rights to work written entirely by you; rather, the intent is to exercise the right to control the distribution of derivative or collective works based on the Program.\par +\par +In addition, mere aggregation of another work not based on the Program with the Program (or with a work based on the Program) on a volume of a storage or distribution medium does not bring the other work under the scope of this License.\par +\par +3. You may copy and distribute the Program (or a work based on it, under Section 2) in object code or executable form under the terms of Sections 1 and 2 above provided that you also do one of the following:\par +\par + a) Accompany it with the complete corresponding machine-readable source code, which must be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or, \par + b) Accompany it with a written offer, valid for at least three years, to give any third party, for a charge no more than your cost of physically performing source distribution, a complete machine-readable copy of the corresponding source code, to be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or, \par + c) Accompany it with the information you received as to the offer to distribute corresponding source code. (This alternative is allowed only for noncommercial distribution and only if you received the program in object code or executable form with such an offer, in accord with Subsection b above.) \par +\par +The source code for a work means the preferred form of the work for making modifications to it. For an executable work, complete source code means all the source code for all modules it contains, plus any associated interface definition files, plus the scripts used to control compilation and installation of the executable. However, as a special exception, the source code distributed need not include anything that is normally distributed (in either source or binary form) with the major components (compiler, kernel, and so on) of the operating system on which the executable runs, unless that component itself accompanies the executable.\par +\par +If distribution of executable or object code is made by offering access to copy from a designated place, then offering equivalent access to copy the source code from the same place counts as distribution of the source code, even though third parties are not compelled to copy the source along with the object code.\par +\par +4. You may not copy, modify, sublicense, or distribute the Program except as expressly provided under this License. Any attempt otherwise to copy, modify, sublicense or distribute the Program is void, and will automatically terminate your rights under this License. However, parties who have received copies, or rights, from you under this License will not have their licenses terminated so long as such parties remain in full compliance.\par +\par +5. You are not required to accept this License, since you have not signed it. However, nothing else grants you permission to modify or distribute the Program or its derivative works. These actions are prohibited by law if you do not accept this License. Therefore, by modifying or distributing the Program (or any work based on the Program), you indicate your acceptance of this License to do so, and all its terms and conditions for copying, distributing or modifying the Program or works based on it.\par +\par +6. Each time you redistribute the Program (or any work based on the Program), the recipient automatically receives a license from the original licensor to copy, distribute or modify the Program subject to these terms and conditions. You may not impose any further restrictions on the recipients' exercise of the rights granted herein. You are not responsible for enforcing compliance by third parties to this License.\par +\par +7. If, as a consequence of a court judgment or allegation of patent infringement or for any other reason (not limited to patent issues), conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot distribute so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not distribute the Program at all. For example, if a patent license would not permit royalty-free redistribution of the Program by all those who receive copies directly or indirectly through you, then the only way you could satisfy both it and this License would be to refrain entirely from distribution of the Program.\par +\par +If any portion of this section is held invalid or unenforceable under any particular circumstance, the balance of the section is intended to apply and the section as a whole is intended to apply in other circumstances.\par +\par +It is not the purpose of this section to induce you to infringe any patents or other property right claims or to contest validity of any such claims; this section has the sole purpose of protecting the integrity of the free software distribution system, which is implemented by public license practices. Many people have made generous contributions to the wide range of software distributed through that system in reliance on consistent application of that system; it is up to the author/donor to decide if he or she is willing to distribute software through any other system and a licensee cannot impose that choice.\par +\par +This section is intended to make thoroughly clear what is believed to be a consequence of the rest of this License.\par +\par +8. If the distribution and/or use of the Program is restricted in certain countries either by patents or by copyrighted interfaces, the original copyright holder who places the Program under this License may add an explicit geographical distribution limitation excluding those countries, so that distribution is permitted only in or among countries not thus excluded. In such case, this License incorporates the limitation as if written in the body of this License.\par +\par +9. The Free Software Foundation may publish revised and/or new versions of the General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns.\par +\par +Each version is given a distinguishing version number. If the Program specifies a version number of this License which applies to it and "any later version", you have the option of following the terms and conditions either of that version or of any later version published by the Free Software Foundation. If the Program does not specify a version number of this License, you may choose any version ever published by the Free Software Foundation.\par +\par +10. If you wish to incorporate parts of the Program into other free programs whose distribution conditions are different, write to the author to ask for permission. For software which is copyrighted by the Free Software Foundation, write to the Free Software Foundation; we sometimes make exceptions for this. Our decision will be guided by the two goals of preserving the free status of all derivatives of our free software and of promoting the sharing and reuse of software generally.\par +\par +NO WARRANTY\par +\par +11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.\par +\par +12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.\par +END OF TERMS AND CONDITIONS\par +How to Apply These Terms to Your New Programs\par +\par +If you develop a new program, and you want it to be of the greatest possible use to the public, the best way to achieve this is to make it free software which everyone can redistribute and change under these terms.\par +\par +To do so, attach the following notices to the program. It is safest to attach them to the start of each source file to most effectively convey the exclusion of warranty; and each file should have at least the "copyright" line and a pointer to where the full notice is found.\par +\par +one line to give the program's name and an idea of what it does.\par +Copyright (C) yyyy name of author\par +\par +This program is free software; you can redistribute it and/or\par +modify it under the terms of the GNU General Public License\par +as published by the Free Software Foundation; either version 2\par +of the License, or (at your option) any later version.\par +\par +This program is distributed in the hope that it will be useful,\par +but WITHOUT ANY WARRANTY; without even the implied warranty of\par +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\par +GNU General Public License for more details.\par +\par +You should have received a copy of the GNU General Public License\par +along with this program; if not, write to the Free Software\par +Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.\par +\par +Also add information on how to contact you by electronic and paper mail.\par +\par +If the program is interactive, make it output a short notice like this when it starts in an interactive mode:\par +\par +Gnomovision version 69, Copyright (C) year name of author\par +Gnomovision comes with ABSOLUTELY NO WARRANTY; for details\par +type `show w'. This is free software, and you are welcome\par +to redistribute it under certain conditions; type `show c' \par +for details.\par +\par +The hypothetical commands `show w' and `show c' should show the appropriate parts of the General Public License. Of course, the commands you use may be called something other than `show w' and `show c'; they could even be mouse-clicks or menu items--whatever suits your program.\par +\par +You should also get your employer (if you work as a programmer) or your school, if any, to sign a "copyright disclaimer" for the program, if necessary. Here is a sample; alter the names:\par +\par +Yoyodyne, Inc., hereby disclaims all copyright\par +interest in the program `Gnomovision'\par +(which makes passes at compilers) written \par +by James Hacker.\par +\par +signature of Ty Coon, 1 April 1989\par +Ty Coon, President of Vice\par +\par +This General Public License does not permit incorporating your program into proprietary programs. If your program is a subroutine library, you may consider it more useful to permit linking proprietary applications with the library. If this is what you want to do, use the GNU Lesser General Public License instead of this License. \par +} + diff --git a/config.h b/config.h new file mode 100644 index 00000000..94046550 --- /dev/null +++ b/config.h @@ -0,0 +1,16 @@ +#define LOCALEDIR "./locale" +#define ENABLE_NLS +#define USE_GMODULE +#define USE_PLUGIN +#define USE_OPENSSL +#define USE_LIBSEXY +#define USE_IPV6 +#define HAVE_ISO_CODES +#define PACKAGE_NAME "xchat" +#define PACKAGE_VERSION "1508-3" +#define XCHAT_RELEASE "2.8.8" +#define XCHATLIBDIR "." +#define XCHATSHAREDIR "." +#define OLD_PERL +#define GETTEXT_PACKAGE "xchat" +#define PACKAGE_TARNAME "xchat-2.8.8" diff --git a/configure.in b/configure.in index 620268d2..3c0cce27 100644 --- a/configure.in +++ b/configure.in @@ -40,6 +40,7 @@ dnl AH_VERBATIM([USE_GNOME],[#undef USE_GNOME]) AH_VERBATIM([USE_SHM],[#undef USE_SHM]) AH_VERBATIM([USE_GTKSPELL],[#undef USE_GTKSPELL]) AH_VERBATIM([USE_LIBSEXY],[#undef USE_LIBSEXY]) +AH_VERBATIM([HAVE_ISO_CODES],[#undef HAVE_ISO_CODES]) AH_VERBATIM([USE_LIBNOTIFY],[#undef USE_LIBNOTIFY]) AH_VERBATIM([USE_IPV6],[#undef USE_IPV6]) AH_VERBATIM([USE_MMX],[#undef USE_MMX]) @@ -549,7 +550,14 @@ if test "$spell" = "libsexy" ; then fi if test "$spell" = "static" ; then + PKG_CHECK_MODULES(LIBXML2, libxml-2.0 >= 2.0.0, [ + AC_DEFINE(HAVE_ISO_CODES) AC_DEFINE(USE_LIBSEXY) + GUI_CFLAGS="$GUI_CFLAGS -I/usr/include/libxml2" + LIBS="$LIBS -lxml2" + ], [ + AC_MSG_ERROR("Cannot find libxml2") + ]) fi dnl ********************************************************************* diff --git a/plugins/checksum/checksum.c b/plugins/checksum/checksum.c new file mode 100644 index 00000000..79f64982 --- /dev/null +++ b/plugins/checksum/checksum.c @@ -0,0 +1,264 @@ +/* XChat-WDK + * Copyright (c) 2010-2012 Berke Viktor. + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ + +#include <stdio.h> +#include <string.h> +#include <malloc.h> +#include <errno.h> +#include <sys/types.h> +#include <sys/stat.h> +#include <openssl/sha.h> + +#include "xchat-plugin.h" + +#define BUFSIZE 32768 +#define DEFAULT_LIMIT 256 /* default size is 256 MiB */ + +#ifndef snprintf +#define snprintf _snprintf +#endif +#ifndef stat64 +#define stat64 _stat64 +#endif + +static xchat_plugin *ph; /* plugin handle */ +static const char name[] = "Checksum"; +static const char desc[] = "Calculate checksum for DCC file transfers"; +static const char version[] = "3.0"; + +/* Use of OpenSSL SHA256 interface: http://adamlamers.com/?p=5 */ +static void +sha256_hash_string (unsigned char hash[SHA256_DIGEST_LENGTH], char outputBuffer[65]) +{ + int i; + for (i = 0; i < SHA256_DIGEST_LENGTH; i++) + { + sprintf (outputBuffer + (i * 2), "%02x", hash[i]); + } + outputBuffer[64] = 0; +} + +static void +sha256 (char *string, char outputBuffer[65]) +{ + int i; + unsigned char hash[SHA256_DIGEST_LENGTH]; + SHA256_CTX sha256; + + SHA256_Init (&sha256); + SHA256_Update (&sha256, string, strlen (string)); + SHA256_Final (hash, &sha256); + + for (i = 0; i < SHA256_DIGEST_LENGTH; i++) + { + sprintf (outputBuffer + (i * 2), "%02x", hash[i]); + } + outputBuffer[64] = 0; +} + +static int +sha256_file (char *path, char outputBuffer[65]) +{ + int bytesRead; + unsigned char *buffer; + unsigned char hash[SHA256_DIGEST_LENGTH]; + SHA256_CTX sha256; + + FILE *file = fopen (path, "rb"); + if (!file) + { + return -534; + } + + SHA256_Init (&sha256); + buffer = malloc (BUFSIZE); + bytesRead = 0; + + if (!buffer) + { + return ENOMEM; + } + + while ((bytesRead = fread (buffer, 1, BUFSIZE, file))) + { + SHA256_Update (&sha256, buffer, bytesRead); + } + + SHA256_Final (hash, &sha256); + sha256_hash_string (hash, outputBuffer); + + fclose (file); + free (buffer); + return 0; +} + +static void +set_limit (char* size) +{ + int buffer = atoi (size); + + if (buffer > 0 && buffer < INT_MAX) + { + if (xchat_pluginpref_set_int (ph, "limit", buffer)) + { + xchat_printf (ph, "File size limit has successfully been set to: %d MiB\n", buffer); + } + else + { + xchat_printf (ph, "File access error while saving!\n"); + } + } + else + { + xchat_printf (ph, "Invalid input!\n"); + } +} + +static int +get_limit () +{ + int size = xchat_pluginpref_get_int (ph, "limit"); + + if (size <= -1 || size >= INT_MAX) + { + return DEFAULT_LIMIT; + } + else + { + return size; + } +} + +static void +print_limit () +{ + xchat_printf (ph, "File size limit for checksums: %d MiB", get_limit ()); +} + +static int +dccrecv_cb (char *word[], void *userdata) +{ + int result; + struct stat64 buffer; /* buffer for storing file info */ + char sum[65]; /* buffer for checksum */ + + result = stat64 (word[2], &buffer); + if (result == 0) /* stat returns 0 on success */ + { + if (buffer.st_size <= (unsigned long long) get_limit () * 1048576) + { + sha256_file (word[2], sum); /* word[2] is the full filename */ + /* try to print the checksum in the privmsg tab of the sender */ + xchat_set_context (ph, xchat_find_context (ph, NULL, word[3])); + xchat_printf (ph, "SHA-256 checksum for %s (local): %s\n", word[1], sum); + } + else + { + xchat_set_context (ph, xchat_find_context (ph, NULL, word[3])); + xchat_printf (ph, "SHA-256 checksum for %s (local): (size limit reached, no checksum calculated, you can increase it with /CHECKSUM INC)\n", word[1]); + } + } + else + { + xchat_printf (ph, "File access error!\n"); + } + + return XCHAT_EAT_NONE; +} + +static int +dccoffer_cb (char *word[], void *userdata) +{ + int result; + struct stat64 buffer; /* buffer for storing file info */ + char sum[65]; /* buffer for checksum */ + + result = stat64 (word[3], &buffer); + if (result == 0) /* stat returns 0 on success */ + { + if (buffer.st_size <= (unsigned long long) get_limit () * 1048576) + { + sha256_file (word[3], sum); /* word[3] is the full filename */ + xchat_commandf (ph, "quote PRIVMSG %s :SHA-256 checksum for %s (remote): %s", word[2], word[1], sum); + } + else + { + xchat_set_context (ph, xchat_find_context (ph, NULL, word[3])); + xchat_printf (ph, "quote PRIVMSG %s :SHA-256 checksum for %s (remote): (size limit reached, no checksum calculated)", word[2], word[1]); + } + } + else + { + xchat_printf (ph, "File access error!\n"); + } + + return XCHAT_EAT_NONE; +} + +static void +checksum (char *word[], void *userdata) +{ + if (!stricmp ("GET", word[2])) + { + print_limit (); + } + else if (!stricmp ("SET", word[2])) + { + set_limit (word[3]); + } + else + { + xchat_printf (ph, "Usage: /CHECKSUM GET|INC|DEC\n"); + xchat_printf (ph, " GET - print the maximum file size (in MiB) to be hashed\n"); + xchat_printf (ph, " SET <filesize> - set the maximum file size (in MiB) to be hashed\n"); + } +} + +int +xchat_plugin_init (xchat_plugin *plugin_handle, char **plugin_name, char **plugin_desc, char **plugin_version, char *arg) +{ + ph = plugin_handle; + + *plugin_name = name; + *plugin_desc = desc; + *plugin_version = version; + + /* this is required for the very first run */ + if (xchat_pluginpref_get_int (ph, "limit") == -1) + { + xchat_pluginpref_set_int (ph, "limit", DEFAULT_LIMIT); + } + + xchat_hook_command (ph, "CHECKSUM", XCHAT_PRI_NORM, checksum, "Usage: /CHECKSUM GET|SET", 0); + xchat_hook_print (ph, "DCC RECV Complete", XCHAT_PRI_NORM, dccrecv_cb, NULL); + xchat_hook_print (ph, "DCC Offer", XCHAT_PRI_NORM, dccoffer_cb, NULL); + + xchat_printf (ph, "%s plugin loaded\n", name); + return 1; +} + +int +xchat_plugin_deinit (void) +{ + xchat_printf (ph, "%s plugin unloaded\n", name); + return 1; +} diff --git a/plugins/checksum/checksum.def b/plugins/checksum/checksum.def new file mode 100644 index 00000000..77670bf2 --- /dev/null +++ b/plugins/checksum/checksum.def @@ -0,0 +1,3 @@ +EXPORTS +xchat_plugin_init +xchat_plugin_deinit diff --git a/plugins/checksum/checksum.vcxproj b/plugins/checksum/checksum.vcxproj new file mode 100644 index 00000000..753ca10e --- /dev/null +++ b/plugins/checksum/checksum.vcxproj @@ -0,0 +1,110 @@ +<?xml version="1.0" encoding="utf-8"?> +<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <ItemGroup Label="ProjectConfigurations"> + <ProjectConfiguration Include="Release|Win32"> + <Configuration>Release</Configuration> + <Platform>Win32</Platform> + </ProjectConfiguration> + <ProjectConfiguration Include="Release|x64"> + <Configuration>Release</Configuration> + <Platform>x64</Platform> + </ProjectConfiguration> + </ItemGroup> + <PropertyGroup Label="Globals"> + <ProjectGuid>{5EF7F47D-D09C-43C4-BF64-B28B11A0FF91}</ProjectGuid> + <Keyword>Win32Proj</Keyword> + <RootNamespace>checksum</RootNamespace> + </PropertyGroup> + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" /> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration"> + <ConfigurationType>DynamicLibrary</ConfigurationType> + <UseDebugLibraries>false</UseDebugLibraries> + <WholeProgramOptimization>true</WholeProgramOptimization> + <CharacterSet>MultiByte</CharacterSet> + <PlatformToolset>WDK7</PlatformToolset> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration"> + <ConfigurationType>DynamicLibrary</ConfigurationType> + <UseDebugLibraries>false</UseDebugLibraries> + <WholeProgramOptimization>true</WholeProgramOptimization> + <CharacterSet>MultiByte</CharacterSet> + <PlatformToolset>WDK7</PlatformToolset> + </PropertyGroup> + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" /> + <ImportGroup Label="ExtensionSettings"> + </ImportGroup> + <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> + <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> + <Import Project="..\..\win32\xchat.props" /> + </ImportGroup> + <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets"> + <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> + <Import Project="..\..\win32\xchat.props" /> + </ImportGroup> + <PropertyGroup Label="UserMacros" /> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> + <LinkIncremental>false</LinkIncremental> + <TargetName>xcchecksum</TargetName> + <OutDir>$(SolutionDir)build\$(PlatformName)\bin</OutDir> + <IntDir>$(SolutionDir)build\$(PlatformName)\obj\$(ProjectName)</IntDir> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'"> + <LinkIncremental>false</LinkIncremental> + <TargetName>xcchecksum</TargetName> + <OutDir>$(SolutionDir)build\$(PlatformName)\bin</OutDir> + <IntDir>$(SolutionDir)build\$(PlatformName)\obj\$(ProjectName)</IntDir> + </PropertyGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> + <ClCompile> + <WarningLevel>Level1</WarningLevel> + <PrecompiledHeader> + </PrecompiledHeader> + <Optimization>MaxSpeed</Optimization> + <FunctionLevelLinking>true</FunctionLevelLinking> + <IntrinsicFunctions>true</IntrinsicFunctions> + <PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;_USRDLL;CHECKSUM_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <AdditionalIncludeDirectories>$(DepsRoot)\include;..;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> + <MultiProcessorCompilation>true</MultiProcessorCompilation> + </ClCompile> + <Link> + <SubSystem>Windows</SubSystem> + <GenerateDebugInformation>true</GenerateDebugInformation> + <EnableCOMDATFolding>true</EnableCOMDATFolding> + <OptimizeReferences>true</OptimizeReferences> + <ModuleDefinitionFile>checksum.def</ModuleDefinitionFile> + <AdditionalLibraryDirectories>$(DepsRoot)\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories> + <AdditionalDependencies>$(DepLibs);%(AdditionalDependencies)</AdditionalDependencies> + </Link> + </ItemDefinitionGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'"> + <ClCompile> + <WarningLevel>Level1</WarningLevel> + <PrecompiledHeader> + </PrecompiledHeader> + <Optimization>MaxSpeed</Optimization> + <FunctionLevelLinking>true</FunctionLevelLinking> + <IntrinsicFunctions>true</IntrinsicFunctions> + <PreprocessorDefinitions>WIN32;_WIN64;NDEBUG;_WINDOWS;_USRDLL;CHECKSUM_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <AdditionalIncludeDirectories>$(DepsRoot)\include;..;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> + <MultiProcessorCompilation>true</MultiProcessorCompilation> + </ClCompile> + <Link> + <SubSystem>Windows</SubSystem> + <GenerateDebugInformation>true</GenerateDebugInformation> + <EnableCOMDATFolding>true</EnableCOMDATFolding> + <OptimizeReferences>true</OptimizeReferences> + <ModuleDefinitionFile>checksum.def</ModuleDefinitionFile> + <AdditionalLibraryDirectories>$(DepsRoot)\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories> + <AdditionalDependencies>$(DepLibs);%(AdditionalDependencies)</AdditionalDependencies> + </Link> + </ItemDefinitionGroup> + <ItemGroup> + <ClCompile Include="checksum.c" /> + </ItemGroup> + <ItemGroup> + <None Include="checksum.def" /> + </ItemGroup> + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" /> + <ImportGroup Label="ExtensionTargets"> + </ImportGroup> +</Project> \ No newline at end of file diff --git a/plugins/checksum/checksum.vcxproj.filters b/plugins/checksum/checksum.vcxproj.filters new file mode 100644 index 00000000..e6ef5e81 --- /dev/null +++ b/plugins/checksum/checksum.vcxproj.filters @@ -0,0 +1,23 @@ +<?xml version="1.0" encoding="utf-8"?> +<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <ItemGroup> + <Filter Include="Source Files"> + <UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier> + <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions> + </Filter> + <Filter Include="Resource Files"> + <UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier> + <Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms</Extensions> + </Filter> + </ItemGroup> + <ItemGroup> + <ClCompile Include="checksum.c"> + <Filter>Source Files</Filter> + </ClCompile> + </ItemGroup> + <ItemGroup> + <None Include="checksum.def"> + <Filter>Resource Files</Filter> + </None> + </ItemGroup> +</Project> \ No newline at end of file diff --git a/plugins/checksum/checksum.vcxproj.user b/plugins/checksum/checksum.vcxproj.user new file mode 100644 index 00000000..695b5c78 --- /dev/null +++ b/plugins/checksum/checksum.vcxproj.user @@ -0,0 +1,3 @@ +<?xml version="1.0" encoding="utf-8"?> +<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> +</Project> \ No newline at end of file diff --git a/plugins/checksum/makefile.mak b/plugins/checksum/makefile.mak new file mode 100644 index 00000000..ec8e0455 --- /dev/null +++ b/plugins/checksum/makefile.mak @@ -0,0 +1,18 @@ +include "..\..\src\makeinc.mak" + +all: checksum.obj checksum.def + link $(LDFLAGS) $(LIBS) /dll /out:xcchecksum.dll /def:checksum.def checksum.obj + +checksum.def: + echo EXPORTS > checksum.def + echo xchat_plugin_init >> checksum.def + echo xchat_plugin_deinit >> checksum.def + +checksum.obj: checksum.c makefile.mak + cl $(CFLAGS) /I.. checksum.c + +clean: + del *.obj + del *.dll + del *.exp + del *.lib diff --git a/plugins/dns/dns.c b/plugins/dns/dns.c new file mode 100644 index 00000000..2bf58195 --- /dev/null +++ b/plugins/dns/dns.c @@ -0,0 +1,329 @@ +/* XChat Win32 DNS Plugin + * Copyright (C) 2003-2004 Peter Zelezny. + * Copyright (C) 2012 Berke Viktor. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA + */ +/* + * Requires MS Visual Studio and IPV6 headers to compile (run nmake). + * Compiling with gcc (mingw) will fail due to missing gai_strerror. + */ + +#define DNS_VERSION "2.4" + +#include <string.h> +#include <stdio.h> +#include <stdlib.h> +#include <fcntl.h> + +#define USE_IPV6 + +#ifdef WIN32 +#ifdef USE_IPV6 +#include <winsock2.h> +#include <ws2tcpip.h> +#else +#include <winsock2.h> +#endif +#else +#include <unistd.h> +#include <netdb.h> +#include <sys/socket.h> +#endif + +#include "xchat-plugin.h" +#include "thread.h" + +#define HELP "Usage: DNS <nickname|hostname|numerical address>\n" +#define HEAD "\0034[DNS]\017\t" + +#define PIPE_READ 0 +#define PIPE_WRITE 1 +#define MAX_HOSTNAME 128 + +static xchat_plugin *ph; +static thread *active_thread = NULL; + + +static int +waitline (void *source, char *buf, int bufsize) +{ + int i = 0; + int len; + + while(1) + { + len = 1; + /* we can't read() here, due to glib's giowin32 */ + if(ph->xchat_read_fd(ph, source, buf + i, &len) != 0) + return -1; + if(buf[i] == '\n' || bufsize == i + 1) + { + buf[i] = 0; + return i; + } + i++; + } +} + +static void * +thread_function (void *ud) +{ +#ifdef USE_IPV6 + struct addrinfo *ent; + struct addrinfo *cur; + struct addrinfo hints; +#else + struct hostent *ent; +#endif + thread *th = ud; + int fd = th->pipe_fd[PIPE_WRITE]; + int ret; + char ipstring[MAX_HOSTNAME]; + char reverse[MAX_HOSTNAME]; +// int i; + + active_thread = th; + +#ifdef USE_IPV6 + memset (&hints, 0, sizeof (hints)); + hints.ai_family = PF_UNSPEC; /* support ipv6 and ipv4 */ + hints.ai_flags = AI_CANONNAME; +// hints.ai_socktype = SOCK_STREAM; + + ret = getaddrinfo (th->userdata, NULL, &hints, &ent); + if (ret != 0) + { + sprintf (ipstring, "1%d\n", ret); /* failed */ + write (fd, ipstring, strlen (ipstring)); +// Sleep (3000); + active_thread = NULL; + return 0; + } + +// i = 0; + cur = ent; + while (cur) + { + /* find the numeric IP number */ + ipstring[0] = 0; + getnameinfo (cur->ai_addr, cur->ai_addrlen, + ipstring, sizeof (ipstring), NULL, 0, NI_NUMERICHOST); + + if (cur->ai_canonname) + { + /* force reverse lookup if canonname & ipstring are the same */ + if (/*i == 0 &&*/ strcmp (cur->ai_canonname, ipstring) == 0) + goto lamecode; + } + + if (cur->ai_canonname) + { + write (fd, "0", 1); + write (fd, ipstring, strlen (ipstring)); + write (fd, "\n", 1); + write (fd, cur->ai_canonname, strlen (cur->ai_canonname)); + } else + { +lamecode: + // ret = 1; + // if (i == 0) + { + /* reverse lookup */ + reverse[0] = 0; + ret = getnameinfo (cur->ai_addr, cur->ai_addrlen, + reverse, sizeof (reverse), NULL, 0, NI_NAMEREQD); + } + + write (fd, "0", 1); + write (fd, ipstring, strlen (ipstring)); + + write (fd, "\n", 1); + if (ret == 0) + write (fd, reverse, strlen (reverse)); + } + write (fd, "\n", 1); + +// i++; + cur = cur->ai_next; + } + + /* tell the parent we're done */ + write (fd, "2\n", 2); + freeaddrinfo (ent); + +#else + ent = gethostbyname (th->userdata); + if (ent) + { + write (fd, "0", 1); + write (fd, ent->h_name, strlen (ent->h_name)); + write (fd, "\n", 1); + write (fd, ent->h_name, strlen (ent->h_name)); + write (fd, "\n", 1); + write (fd, "2\n", 2); + } else + { + write (fd, "10\n", 1); + } +#endif + +// Sleep (3000); + active_thread = NULL; /* race condition, better than nothing */ + + return 0; +} + +static int +dns_close_pipe (int fd) +{ + close (fd); + return 0; +} + +/* read messages comming from the child (through the pipe) */ + +static int +dns_read_cb (int fd, int flags, thread *th, void *source) +{ + char buf[512]; + char buf2[512]; + + while (waitline (source, buf, sizeof (buf))) + { + switch (buf[0]) + { + case '0': /* got data to show */ + waitline (source, buf2, sizeof (buf2)); + if (buf2[0] == 0) + xchat_printf(ph, HEAD"\002Numerical\002: %s\n", buf + 1); + else + xchat_printf(ph, HEAD"\002Canonical\002: %s \002Numerical\002: %s\n", buf2, buf + 1); + return 1; + + case '1': /* failed */ + xchat_printf(ph, HEAD"Lookup failed. %s\n", gai_strerrorA (atoi (buf + 1))); + + case '2': /* done */ + // close (th->pipe_fd[PIPE_WRITE]); + // close (th->pipe_fd[PIPE_READ]); + xchat_hook_timer(ph, 3000, dns_close_pipe, (void *)th->pipe_fd[PIPE_WRITE]); + xchat_hook_timer(ph, 4000, dns_close_pipe, (void *)th->pipe_fd[PIPE_READ]); + free (th->userdata); /* hostname strdup'ed */ + free (th); + return 0; + } + } + + return 1; +} + +/* find hostname from nickname (search the userlist, current chan only) */ + +static char * +find_nick_host (char *nick) +{ + xchat_list *list; + char *at; + const char *host; + + list = xchat_list_get (ph, "users"); + if (!list) + return NULL; + + while (xchat_list_next (ph, list)) + { + if (stricmp (nick, xchat_list_str (ph, list, "nick")) == 0) + { + host = xchat_list_str (ph, list, "host"); + if (host) + { + at = strrchr (host, '@'); + if (at) + return at + 1; + } + break; + } + } + + return NULL; +} + +static int +dns_cmd_cb (char *word[], char *word_eol[], void *ud) +{ + thread *th; + char *nickhost; + + if (!word[2][0]) + { + xchat_print (ph, HELP); + return XCHAT_EAT_ALL; + } + + th = thread_new (); + if (th) + { + nickhost = find_nick_host (word[2]); + if (nickhost) + { + xchat_printf (ph, HEAD"Looking up %s (%s)...\n", nickhost, word[2]); + th->userdata = strdup (nickhost); + } else + { + xchat_printf (ph, HEAD"Looking up %s...\n", word[2]); + th->userdata = strdup (word[2]); + } + + if (thread_start (th, thread_function, th)) + { + xchat_hook_fd(ph, th->pipe_fd[PIPE_READ], + XCHAT_FD_READ | XCHAT_FD_EXCEPTION | XCHAT_FD_NOTSOCKET, + (void *)dns_read_cb, th); + + } + } + + return XCHAT_EAT_ALL; +} + +int +xchat_plugin_deinit (xchat_plugin *plugin_handle) +{ + while (active_thread) /* children will set this var to NULL soon... */ + { + Sleep (1000); + } + xchat_printf (ph, "DNS plugin unloaded\n"); + return 1; +} + +int +xchat_plugin_init + (xchat_plugin *plugin_handle, char **plugin_name, + char **plugin_desc, char **plugin_version, char *arg) +{ + /* we need to save this for use with any xchat_* functions */ + ph = plugin_handle; + + *plugin_name = "DNS"; + *plugin_desc = "Threaded IPv4/6 DNS Command"; + *plugin_version = DNS_VERSION; + + xchat_hook_command(ph, "DNS", XCHAT_PRI_LOW, dns_cmd_cb, HELP, 0); + xchat_printf (ph, "DNS plugin loaded\n"); + + return 1; /* return 1 for success */ +} diff --git a/plugins/dns/dns.def b/plugins/dns/dns.def new file mode 100644 index 00000000..77670bf2 --- /dev/null +++ b/plugins/dns/dns.def @@ -0,0 +1,3 @@ +EXPORTS +xchat_plugin_init +xchat_plugin_deinit diff --git a/plugins/dns/dns.vcxproj b/plugins/dns/dns.vcxproj new file mode 100644 index 00000000..64df391d --- /dev/null +++ b/plugins/dns/dns.vcxproj @@ -0,0 +1,114 @@ +<?xml version="1.0" encoding="utf-8"?> +<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <ItemGroup Label="ProjectConfigurations"> + <ProjectConfiguration Include="Release|Win32"> + <Configuration>Release</Configuration> + <Platform>Win32</Platform> + </ProjectConfiguration> + <ProjectConfiguration Include="Release|x64"> + <Configuration>Release</Configuration> + <Platform>x64</Platform> + </ProjectConfiguration> + </ItemGroup> + <PropertyGroup Label="Globals"> + <ProjectGuid>{3786FA8C-3E76-45E3-984E-FCCFF44729C9}</ProjectGuid> + <Keyword>Win32Proj</Keyword> + <RootNamespace>dns</RootNamespace> + </PropertyGroup> + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" /> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration"> + <ConfigurationType>DynamicLibrary</ConfigurationType> + <UseDebugLibraries>false</UseDebugLibraries> + <WholeProgramOptimization>true</WholeProgramOptimization> + <CharacterSet>MultiByte</CharacterSet> + <PlatformToolset>WDK7</PlatformToolset> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration"> + <ConfigurationType>DynamicLibrary</ConfigurationType> + <UseDebugLibraries>false</UseDebugLibraries> + <WholeProgramOptimization>true</WholeProgramOptimization> + <CharacterSet>MultiByte</CharacterSet> + <PlatformToolset>WDK7</PlatformToolset> + </PropertyGroup> + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" /> + <ImportGroup Label="ExtensionSettings"> + </ImportGroup> + <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> + <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> + <Import Project="..\..\win32\xchat.props" /> + </ImportGroup> + <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets"> + <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> + <Import Project="..\..\win32\xchat.props" /> + </ImportGroup> + <PropertyGroup Label="UserMacros" /> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> + <LinkIncremental>false</LinkIncremental> + <TargetName>xcdns</TargetName> + <OutDir>$(SolutionDir)build\$(PlatformName)\bin</OutDir> + <IntDir>$(SolutionDir)build\$(PlatformName)\obj\$(ProjectName)</IntDir> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'"> + <LinkIncremental>false</LinkIncremental> + <TargetName>xcdns</TargetName> + <OutDir>$(SolutionDir)build\$(PlatformName)\bin</OutDir> + <IntDir>$(SolutionDir)build\$(PlatformName)\obj\$(ProjectName)</IntDir> + </PropertyGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> + <ClCompile> + <WarningLevel>Level1</WarningLevel> + <PrecompiledHeader> + </PrecompiledHeader> + <Optimization>MaxSpeed</Optimization> + <FunctionLevelLinking>true</FunctionLevelLinking> + <IntrinsicFunctions>true</IntrinsicFunctions> + <PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;_USRDLL;DNS_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <AdditionalIncludeDirectories>..;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> + <MultiProcessorCompilation>true</MultiProcessorCompilation> + </ClCompile> + <Link> + <SubSystem>Windows</SubSystem> + <GenerateDebugInformation>true</GenerateDebugInformation> + <EnableCOMDATFolding>true</EnableCOMDATFolding> + <OptimizeReferences>true</OptimizeReferences> + <AdditionalLibraryDirectories>$(DepsRoot)\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories> + <AdditionalDependencies>$(DepLibs);%(AdditionalDependencies)</AdditionalDependencies> + <ModuleDefinitionFile>dns.def</ModuleDefinitionFile> + </Link> + </ItemDefinitionGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'"> + <ClCompile> + <WarningLevel>Level1</WarningLevel> + <PrecompiledHeader> + </PrecompiledHeader> + <Optimization>MaxSpeed</Optimization> + <FunctionLevelLinking>true</FunctionLevelLinking> + <IntrinsicFunctions>true</IntrinsicFunctions> + <PreprocessorDefinitions>WIN32;_WIN64;NDEBUG;_WINDOWS;_USRDLL;DNS_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <AdditionalIncludeDirectories>..;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> + <MultiProcessorCompilation>true</MultiProcessorCompilation> + </ClCompile> + <Link> + <SubSystem>Windows</SubSystem> + <GenerateDebugInformation>true</GenerateDebugInformation> + <EnableCOMDATFolding>true</EnableCOMDATFolding> + <OptimizeReferences>true</OptimizeReferences> + <AdditionalLibraryDirectories>$(DepsRoot)\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories> + <AdditionalDependencies>$(DepLibs);%(AdditionalDependencies)</AdditionalDependencies> + <ModuleDefinitionFile>dns.def</ModuleDefinitionFile> + </Link> + </ItemDefinitionGroup> + <ItemGroup> + <None Include="dns.def" /> + </ItemGroup> + <ItemGroup> + <ClCompile Include="dns.c" /> + <ClCompile Include="thread.c" /> + </ItemGroup> + <ItemGroup> + <ClInclude Include="thread.h" /> + </ItemGroup> + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" /> + <ImportGroup Label="ExtensionTargets"> + </ImportGroup> +</Project> \ No newline at end of file diff --git a/plugins/dns/dns.vcxproj.filters b/plugins/dns/dns.vcxproj.filters new file mode 100644 index 00000000..a49dc1e2 --- /dev/null +++ b/plugins/dns/dns.vcxproj.filters @@ -0,0 +1,35 @@ +<?xml version="1.0" encoding="utf-8"?> +<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <ItemGroup> + <Filter Include="Source Files"> + <UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier> + <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions> + </Filter> + <Filter Include="Header Files"> + <UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier> + <Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions> + </Filter> + <Filter Include="Resource Files"> + <UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier> + <Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms</Extensions> + </Filter> + </ItemGroup> + <ItemGroup> + <None Include="dns.def"> + <Filter>Resource Files</Filter> + </None> + </ItemGroup> + <ItemGroup> + <ClCompile Include="dns.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="thread.c"> + <Filter>Source Files</Filter> + </ClCompile> + </ItemGroup> + <ItemGroup> + <ClInclude Include="thread.h"> + <Filter>Header Files</Filter> + </ClInclude> + </ItemGroup> +</Project> \ No newline at end of file diff --git a/plugins/dns/dns.vcxproj.user b/plugins/dns/dns.vcxproj.user new file mode 100644 index 00000000..695b5c78 --- /dev/null +++ b/plugins/dns/dns.vcxproj.user @@ -0,0 +1,3 @@ +<?xml version="1.0" encoding="utf-8"?> +<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> +</Project> \ No newline at end of file diff --git a/plugins/dns/makefile.mak b/plugins/dns/makefile.mak new file mode 100644 index 00000000..384e6be1 --- /dev/null +++ b/plugins/dns/makefile.mak @@ -0,0 +1,22 @@ +include "..\..\src\makeinc.mak" + +DNS_OBJECTS = \ +dns.obj \ +thread.obj + +all: $(DNS_OBJECTS) dns.def + link $(LDFLAGS) $(LIBS) /dll /out:xcdns.dll /def:dns.def $(DNS_OBJECTS) + +dns.def: + echo EXPORTS > dns.def + echo xchat_plugin_init >> dns.def + echo xchat_plugin_deinit >> dns.def + +.c.obj: + $(CC) $(CFLAGS) $(GLIB) /I.. /c $< + +clean: + del *.obj + del *.dll + del *.exp + del *.lib diff --git a/plugins/dns/thread.c b/plugins/dns/thread.c new file mode 100644 index 00000000..02b17cfb --- /dev/null +++ b/plugins/dns/thread.c @@ -0,0 +1,33 @@ +#include <fcntl.h> +#include "thread.h" + +thread * +thread_new (void) +{ + thread *th; + + th = calloc (1, sizeof (*th)); + if (!th) + { + return NULL; + } + + if (_pipe (th->pipe_fd, 4096, _O_BINARY) == -1) + { + free (th); + return NULL; + } + + return th; +} + +int +thread_start (thread *th, void *(*start_routine)(void *), void *arg) +{ + DWORD id; + + CloseHandle (CreateThread (NULL, 0, (LPTHREAD_START_ROUTINE)start_routine, arg, 0, (DWORD *)&id)); + th->threadid = id; + + return 1; +} diff --git a/plugins/dns/thread.h b/plugins/dns/thread.h new file mode 100644 index 00000000..1ec6932d --- /dev/null +++ b/plugins/dns/thread.h @@ -0,0 +1,11 @@ +#include <windows.h> + +typedef struct +{ + DWORD threadid; + int pipe_fd[2]; + void *userdata; +} thread; + +thread *thread_new (void); +int thread_start (thread *th, void *(*start_routine)(void *), void *arg); diff --git a/plugins/doat/doat.c b/plugins/doat/doat.c new file mode 100644 index 00000000..a0b5707a --- /dev/null +++ b/plugins/doat/doat.c @@ -0,0 +1,94 @@ +/* This program is free software. It comes without any warranty, to + * the extent permitted by applicable law. You can redistribute it + * and/or modify it under the terms of the Do What The Fuck You Want + * To Public License, Version 2, as published by Sam Hocevar. See + * http://sam.zoy.org/wtfpl/COPYING or http://lwsitu.com/xchat/COPYING + * for more details. */ + +#include <stdlib.h> +#include <string.h> +#include <stdio.h> +#include "xchat-plugin.h" + +static xchat_plugin *ph; + +static int +parse_command( char *word[], char *word_eol[], void *userdata ) { + char *channel = NULL, *server = NULL, *token = NULL; +/* char *save_ptr1 = NULL;*/ + char *str1 = NULL; + char *delimiter = NULL; + + xchat_context *ctx = NULL; + + if( word[2] != NULL && word[3] != NULL ) { + for( str1 = word[2]; ; str1 = NULL ) { +/* token = strtok_r( str1, ",", &save_ptr1 );*/ + token = strtok( str1, "," ); +/* printf( "token: %s\n", token );*/ + + if( token == NULL ) { + break; + } + + channel = strdup( token ); + + delimiter = strchr( channel, '/' ); + + server = NULL; + if( delimiter != NULL ) { + *delimiter = '\0'; + + if( strlen( delimiter + 1 ) > 0 ) { + server = strdup( delimiter + 1 ); + } + } + + /* /Network form */ + if( strlen( channel ) == 0 ) { + free( channel ); + channel = NULL; + } + +/* printf( "channel[%s] server[%s]\n", channel, server );*/ + + if( (ctx = xchat_find_context( ph, server, channel ) ) != NULL ) { + if( xchat_set_context( ph, ctx ) ) { + xchat_command( ph, word_eol[3] ); + } + } + + if( channel != NULL ) { + free( channel ); + } + + if( server != NULL ) { + free( server ); + } + } + } + return XCHAT_EAT_XCHAT; +} + +int +xchat_plugin_init( xchat_plugin * plugin_handle, char **plugin_name, + char **plugin_desc, char **plugin_version, char *arg ) { + + ph = plugin_handle; + *plugin_name = "Do At"; + *plugin_version = "1.0001"; + *plugin_desc = "Perform an arbitrary command on multiple channels"; + + xchat_hook_command( ph, "doat", XCHAT_PRI_NORM, parse_command, "DOAT [channel,list,/network] [command], perform a command on multiple contexts", NULL ); + + xchat_print (ph, "Do At plugin loaded\n"); + + return 1; +} + +int +xchat_plugin_deinit (void) +{ + xchat_print (ph, "Do At plugin unloaded\n"); + return 1; +} diff --git a/plugins/doat/doat.def b/plugins/doat/doat.def new file mode 100644 index 00000000..77670bf2 --- /dev/null +++ b/plugins/doat/doat.def @@ -0,0 +1,3 @@ +EXPORTS +xchat_plugin_init +xchat_plugin_deinit diff --git a/plugins/doat/doat.vcxproj b/plugins/doat/doat.vcxproj new file mode 100644 index 00000000..33969fc3 --- /dev/null +++ b/plugins/doat/doat.vcxproj @@ -0,0 +1,106 @@ +<?xml version="1.0" encoding="utf-8"?> +<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <ItemGroup Label="ProjectConfigurations"> + <ProjectConfiguration Include="Release|Win32"> + <Configuration>Release</Configuration> + <Platform>Win32</Platform> + </ProjectConfiguration> + <ProjectConfiguration Include="Release|x64"> + <Configuration>Release</Configuration> + <Platform>x64</Platform> + </ProjectConfiguration> + </ItemGroup> + <PropertyGroup Label="Globals"> + <ProjectGuid>{4980AF24-9D42-427D-A8E6-0DF3B97C455D}</ProjectGuid> + <Keyword>Win32Proj</Keyword> + <RootNamespace>doat</RootNamespace> + </PropertyGroup> + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" /> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration"> + <ConfigurationType>DynamicLibrary</ConfigurationType> + <UseDebugLibraries>false</UseDebugLibraries> + <WholeProgramOptimization>true</WholeProgramOptimization> + <CharacterSet>MultiByte</CharacterSet> + <PlatformToolset>WDK7</PlatformToolset> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration"> + <ConfigurationType>DynamicLibrary</ConfigurationType> + <UseDebugLibraries>false</UseDebugLibraries> + <WholeProgramOptimization>true</WholeProgramOptimization> + <CharacterSet>MultiByte</CharacterSet> + <PlatformToolset>WDK7</PlatformToolset> + </PropertyGroup> + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" /> + <ImportGroup Label="ExtensionSettings"> + </ImportGroup> + <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> + <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> + <Import Project="..\..\win32\xchat.props" /> + </ImportGroup> + <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets"> + <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> + <Import Project="..\..\win32\xchat.props" /> + </ImportGroup> + <PropertyGroup Label="UserMacros" /> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> + <LinkIncremental>false</LinkIncremental> + <TargetName>xcdoat</TargetName> + <OutDir>$(SolutionDir)build\$(PlatformName)\bin</OutDir> + <IntDir>$(SolutionDir)build\$(PlatformName)\obj\$(ProjectName)</IntDir> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'"> + <LinkIncremental>false</LinkIncremental> + <TargetName>xcdoat</TargetName> + <OutDir>$(SolutionDir)build\$(PlatformName)\bin</OutDir> + <IntDir>$(SolutionDir)build\$(PlatformName)\obj\$(ProjectName)</IntDir> + </PropertyGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> + <ClCompile> + <WarningLevel>Level1</WarningLevel> + <PrecompiledHeader> + </PrecompiledHeader> + <Optimization>MaxSpeed</Optimization> + <FunctionLevelLinking>true</FunctionLevelLinking> + <IntrinsicFunctions>true</IntrinsicFunctions> + <PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;_USRDLL;DOAT_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <AdditionalIncludeDirectories>..;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> + <MultiProcessorCompilation>true</MultiProcessorCompilation> + </ClCompile> + <Link> + <SubSystem>Windows</SubSystem> + <GenerateDebugInformation>true</GenerateDebugInformation> + <EnableCOMDATFolding>true</EnableCOMDATFolding> + <OptimizeReferences>true</OptimizeReferences> + <ModuleDefinitionFile>doat.def</ModuleDefinitionFile> + </Link> + </ItemDefinitionGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'"> + <ClCompile> + <WarningLevel>Level1</WarningLevel> + <PrecompiledHeader> + </PrecompiledHeader> + <Optimization>MaxSpeed</Optimization> + <FunctionLevelLinking>true</FunctionLevelLinking> + <IntrinsicFunctions>true</IntrinsicFunctions> + <PreprocessorDefinitions>WIN32;_WIN64;NDEBUG;_WINDOWS;_USRDLL;DOAT_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <AdditionalIncludeDirectories>..;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> + <MultiProcessorCompilation>true</MultiProcessorCompilation> + </ClCompile> + <Link> + <SubSystem>Windows</SubSystem> + <GenerateDebugInformation>true</GenerateDebugInformation> + <EnableCOMDATFolding>true</EnableCOMDATFolding> + <OptimizeReferences>true</OptimizeReferences> + <ModuleDefinitionFile>doat.def</ModuleDefinitionFile> + </Link> + </ItemDefinitionGroup> + <ItemGroup> + <ClCompile Include="doat.c" /> + </ItemGroup> + <ItemGroup> + <None Include="doat.def" /> + </ItemGroup> + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" /> + <ImportGroup Label="ExtensionTargets"> + </ImportGroup> +</Project> \ No newline at end of file diff --git a/plugins/doat/doat.vcxproj.filters b/plugins/doat/doat.vcxproj.filters new file mode 100644 index 00000000..43ea8307 --- /dev/null +++ b/plugins/doat/doat.vcxproj.filters @@ -0,0 +1,23 @@ +<?xml version="1.0" encoding="utf-8"?> +<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <ItemGroup> + <Filter Include="Source Files"> + <UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier> + <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions> + </Filter> + <Filter Include="Resource Files"> + <UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier> + <Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms</Extensions> + </Filter> + </ItemGroup> + <ItemGroup> + <ClCompile Include="doat.c"> + <Filter>Source Files</Filter> + </ClCompile> + </ItemGroup> + <ItemGroup> + <None Include="doat.def"> + <Filter>Resource Files</Filter> + </None> + </ItemGroup> +</Project> \ No newline at end of file diff --git a/plugins/doat/doat.vcxproj.user b/plugins/doat/doat.vcxproj.user new file mode 100644 index 00000000..695b5c78 --- /dev/null +++ b/plugins/doat/doat.vcxproj.user @@ -0,0 +1,3 @@ +<?xml version="1.0" encoding="utf-8"?> +<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> +</Project> \ No newline at end of file diff --git a/plugins/doat/makefile.mak b/plugins/doat/makefile.mak new file mode 100644 index 00000000..960cae27 --- /dev/null +++ b/plugins/doat/makefile.mak @@ -0,0 +1,18 @@ +include "..\..\src\makeinc.mak" + +all: doat.obj doat.def + link $(LDFLAGS) $(LIBS) /dll /out:xcdoat.dll /def:doat.def doat.obj + +doat.def: + echo EXPORTS > doat.def + echo xchat_plugin_init >> doat.def + echo xchat_plugin_deinit >> doat.def + +doat.obj: doat.c makefile.mak + cl $(CFLAGS) $(GLIB) /I.. doat.c + +clean: + del *.obj + del *.dll + del *.exp + del *.lib diff --git a/plugins/ewc/COPYING b/plugins/ewc/COPYING new file mode 100644 index 00000000..4362b491 --- /dev/null +++ b/plugins/ewc/COPYING @@ -0,0 +1,502 @@ + GNU LESSER GENERAL PUBLIC LICENSE + Version 2.1, February 1999 + + Copyright (C) 1991, 1999 Free Software Foundation, Inc. + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + +[This is the first released version of the Lesser GPL. It also counts + as the successor of the GNU Library Public License, version 2, hence + the version number 2.1.] + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +Licenses are intended to guarantee your freedom to share and change +free software--to make sure the software is free for all its users. + + This license, the Lesser General Public License, applies to some +specially designated software packages--typically libraries--of the +Free Software Foundation and other authors who decide to use it. You +can use it too, but we suggest you first think carefully about whether +this license or the ordinary General Public License is the better +strategy to use in any particular case, based on the explanations below. + + When we speak of free software, we are referring to freedom of use, +not price. Our General Public Licenses are designed to make sure that +you have the freedom to distribute copies of free software (and charge +for this service if you wish); that you receive source code or can get +it if you want it; that you can change the software and use pieces of +it in new free programs; and that you are informed that you can do +these things. + + To protect your rights, we need to make restrictions that forbid +distributors to deny you these rights or to ask you to surrender these +rights. These restrictions translate to certain responsibilities for +you if you distribute copies of the library or if you modify it. + + For example, if you distribute copies of the library, whether gratis +or for a fee, you must give the recipients all the rights that we gave +you. You must make sure that they, too, receive or can get the source +code. If you link other code with the library, you must provide +complete object files to the recipients, so that they can relink them +with the library after making changes to the library and recompiling +it. And you must show them these terms so they know their rights. + + We protect your rights with a two-step method: (1) we copyright the +library, and (2) we offer you this license, which gives you legal +permission to copy, distribute and/or modify the library. + + To protect each distributor, we want to make it very clear that +there is no warranty for the free library. Also, if the library is +modified by someone else and passed on, the recipients should know +that what they have is not the original version, so that the original +author's reputation will not be affected by problems that might be +introduced by others. + + Finally, software patents pose a constant threat to the existence of +any free program. We wish to make sure that a company cannot +effectively restrict the users of a free program by obtaining a +restrictive license from a patent holder. Therefore, we insist that +any patent license obtained for a version of the library must be +consistent with the full freedom of use specified in this license. + + Most GNU software, including some libraries, is covered by the +ordinary GNU General Public License. This license, the GNU Lesser +General Public License, applies to certain designated libraries, and +is quite different from the ordinary General Public License. We use +this license for certain libraries in order to permit linking those +libraries into non-free programs. + + When a program is linked with a library, whether statically or using +a shared library, the combination of the two is legally speaking a +combined work, a derivative of the original library. The ordinary +General Public License therefore permits such linking only if the +entire combination fits its criteria of freedom. The Lesser General +Public License permits more lax criteria for linking other code with +the library. + + We call this license the "Lesser" General Public License because it +does Less to protect the user's freedom than the ordinary General +Public License. It also provides other free software developers Less +of an advantage over competing non-free programs. These disadvantages +are the reason we use the ordinary General Public License for many +libraries. However, the Lesser license provides advantages in certain +special circumstances. + + For example, on rare occasions, there may be a special need to +encourage the widest possible use of a certain library, so that it becomes +a de-facto standard. To achieve this, non-free programs must be +allowed to use the library. A more frequent case is that a free +library does the same job as widely used non-free libraries. In this +case, there is little to gain by limiting the free library to free +software only, so we use the Lesser General Public License. + + In other cases, permission to use a particular library in non-free +programs enables a greater number of people to use a large body of +free software. For example, permission to use the GNU C Library in +non-free programs enables many more people to use the whole GNU +operating system, as well as its variant, the GNU/Linux operating +system. + + Although the Lesser General Public License is Less protective of the +users' freedom, it does ensure that the user of a program that is +linked with the Library has the freedom and the wherewithal to run +that program using a modified version of the Library. + + The precise terms and conditions for copying, distribution and +modification follow. Pay close attention to the difference between a +"work based on the library" and a "work that uses the library". The +former contains code derived from the library, whereas the latter must +be combined with the library in order to run. + + GNU LESSER GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License Agreement applies to any software library or other +program which contains a notice placed by the copyright holder or +other authorized party saying it may be distributed under the terms of +this Lesser General Public License (also called "this License"). +Each licensee is addressed as "you". + + A "library" means a collection of software functions and/or data +prepared so as to be conveniently linked with application programs +(which use some of those functions and data) to form executables. + + The "Library", below, refers to any such software library or work +which has been distributed under these terms. A "work based on the +Library" means either the Library or any derivative work under +copyright law: that is to say, a work containing the Library or a +portion of it, either verbatim or with modifications and/or translated +straightforwardly into another language. (Hereinafter, translation is +included without limitation in the term "modification".) + + "Source code" for a work means the preferred form of the work for +making modifications to it. For a library, complete source code means +all the source code for all modules it contains, plus any associated +interface definition files, plus the scripts used to control compilation +and installation of the library. + + Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running a program using the Library is not restricted, and output from +such a program is covered only if its contents constitute a work based +on the Library (independent of the use of the Library in a tool for +writing it). Whether that is true depends on what the Library does +and what the program that uses the Library does. + + 1. You may copy and distribute verbatim copies of the Library's +complete source code as you receive it, in any medium, provided that +you conspicuously and appropriately publish on each copy an +appropriate copyright notice and disclaimer of warranty; keep intact +all the notices that refer to this License and to the absence of any +warranty; and distribute a copy of this License along with the +Library. + + You may charge a fee for the physical act of transferring a copy, +and you may at your option offer warranty protection in exchange for a +fee. + + 2. You may modify your copy or copies of the Library or any portion +of it, thus forming a work based on the Library, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) The modified work must itself be a software library. + + b) You must cause the files modified to carry prominent notices + stating that you changed the files and the date of any change. + + c) You must cause the whole of the work to be licensed at no + charge to all third parties under the terms of this License. + + d) If a facility in the modified Library refers to a function or a + table of data to be supplied by an application program that uses + the facility, other than as an argument passed when the facility + is invoked, then you must make a good faith effort to ensure that, + in the event an application does not supply such function or + table, the facility still operates, and performs whatever part of + its purpose remains meaningful. + + (For example, a function in a library to compute square roots has + a purpose that is entirely well-defined independent of the + application. Therefore, Subsection 2d requires that any + application-supplied function or table used by this function must + be optional: if the application does not supply it, the square + root function must still compute square roots.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Library, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Library, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote +it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Library. + +In addition, mere aggregation of another work not based on the Library +with the Library (or with a work based on the Library) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may opt to apply the terms of the ordinary GNU General Public +License instead of this License to a given copy of the Library. To do +this, you must alter all the notices that refer to this License, so +that they refer to the ordinary GNU General Public License, version 2, +instead of to this License. (If a newer version than version 2 of the +ordinary GNU General Public License has appeared, then you can specify +that version instead if you wish.) Do not make any other change in +these notices. + + Once this change is made in a given copy, it is irreversible for +that copy, so the ordinary GNU General Public License applies to all +subsequent copies and derivative works made from that copy. + + This option is useful when you wish to copy part of the code of +the Library into a program that is not a library. + + 4. You may copy and distribute the Library (or a portion or +derivative of it, under Section 2) in object code or executable form +under the terms of Sections 1 and 2 above provided that you accompany +it with the complete corresponding machine-readable source code, which +must be distributed under the terms of Sections 1 and 2 above on a +medium customarily used for software interchange. + + If distribution of object code is made by offering access to copy +from a designated place, then offering equivalent access to copy the +source code from the same place satisfies the requirement to +distribute the source code, even though third parties are not +compelled to copy the source along with the object code. + + 5. A program that contains no derivative of any portion of the +Library, but is designed to work with the Library by being compiled or +linked with it, is called a "work that uses the Library". Such a +work, in isolation, is not a derivative work of the Library, and +therefore falls outside the scope of this License. + + However, linking a "work that uses the Library" with the Library +creates an executable that is a derivative of the Library (because it +contains portions of the Library), rather than a "work that uses the +library". The executable is therefore covered by this License. +Section 6 states terms for distribution of such executables. + + When a "work that uses the Library" uses material from a header file +that is part of the Library, the object code for the work may be a +derivative work of the Library even though the source code is not. +Whether this is true is especially significant if the work can be +linked without the Library, or if the work is itself a library. The +threshold for this to be true is not precisely defined by law. + + If such an object file uses only numerical parameters, data +structure layouts and accessors, and small macros and small inline +functions (ten lines or less in length), then the use of the object +file is unrestricted, regardless of whether it is legally a derivative +work. (Executables containing this object code plus portions of the +Library will still fall under Section 6.) + + Otherwise, if the work is a derivative of the Library, you may +distribute the object code for the work under the terms of Section 6. +Any executables containing that work also fall under Section 6, +whether or not they are linked directly with the Library itself. + + 6. As an exception to the Sections above, you may also combine or +link a "work that uses the Library" with the Library to produce a +work containing portions of the Library, and distribute that work +under terms of your choice, provided that the terms permit +modification of the work for the customer's own use and reverse +engineering for debugging such modifications. + + You must give prominent notice with each copy of the work that the +Library is used in it and that the Library and its use are covered by +this License. You must supply a copy of this License. If the work +during execution displays copyright notices, you must include the +copyright notice for the Library among them, as well as a reference +directing the user to the copy of this License. Also, you must do one +of these things: + + a) Accompany the work with the complete corresponding + machine-readable source code for the Library including whatever + changes were used in the work (which must be distributed under + Sections 1 and 2 above); and, if the work is an executable linked + with the Library, with the complete machine-readable "work that + uses the Library", as object code and/or source code, so that the + user can modify the Library and then relink to produce a modified + executable containing the modified Library. (It is understood + that the user who changes the contents of definitions files in the + Library will not necessarily be able to recompile the application + to use the modified definitions.) + + b) Use a suitable shared library mechanism for linking with the + Library. A suitable mechanism is one that (1) uses at run time a + copy of the library already present on the user's computer system, + rather than copying library functions into the executable, and (2) + will operate properly with a modified version of the library, if + the user installs one, as long as the modified version is + interface-compatible with the version that the work was made with. + + c) Accompany the work with a written offer, valid for at + least three years, to give the same user the materials + specified in Subsection 6a, above, for a charge no more + than the cost of performing this distribution. + + d) If distribution of the work is made by offering access to copy + from a designated place, offer equivalent access to copy the above + specified materials from the same place. + + e) Verify that the user has already received a copy of these + materials or that you have already sent this user a copy. + + For an executable, the required form of the "work that uses the +Library" must include any data and utility programs needed for +reproducing the executable from it. However, as a special exception, +the materials to be distributed need not include anything that is +normally distributed (in either source or binary form) with the major +components (compiler, kernel, and so on) of the operating system on +which the executable runs, unless that component itself accompanies +the executable. + + It may happen that this requirement contradicts the license +restrictions of other proprietary libraries that do not normally +accompany the operating system. Such a contradiction means you cannot +use both them and the Library together in an executable that you +distribute. + + 7. You may place library facilities that are a work based on the +Library side-by-side in a single library together with other library +facilities not covered by this License, and distribute such a combined +library, provided that the separate distribution of the work based on +the Library and of the other library facilities is otherwise +permitted, and provided that you do these two things: + + a) Accompany the combined library with a copy of the same work + based on the Library, uncombined with any other library + facilities. This must be distributed under the terms of the + Sections above. + + b) Give prominent notice with the combined library of the fact + that part of it is a work based on the Library, and explaining + where to find the accompanying uncombined form of the same work. + + 8. You may not copy, modify, sublicense, link with, or distribute +the Library except as expressly provided under this License. Any +attempt otherwise to copy, modify, sublicense, link with, or +distribute the Library is void, and will automatically terminate your +rights under this License. However, parties who have received copies, +or rights, from you under this License will not have their licenses +terminated so long as such parties remain in full compliance. + + 9. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Library or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Library (or any work based on the +Library), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Library or works based on it. + + 10. Each time you redistribute the Library (or any work based on the +Library), the recipient automatically receives a license from the +original licensor to copy, distribute, link with or modify the Library +subject to these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties with +this License. + + 11. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Library at all. For example, if a patent +license would not permit royalty-free redistribution of the Library by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Library. + +If any portion of this section is held invalid or unenforceable under any +particular circumstance, the balance of the section is intended to apply, +and the section as a whole is intended to apply in other circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 12. If the distribution and/or use of the Library is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Library under this License may add +an explicit geographical distribution limitation excluding those countries, +so that distribution is permitted only in or among countries not thus +excluded. In such case, this License incorporates the limitation as if +written in the body of this License. + + 13. The Free Software Foundation may publish revised and/or new +versions of the Lesser General Public License from time to time. +Such new versions will be similar in spirit to the present version, +but may differ in detail to address new problems or concerns. + +Each version is given a distinguishing version number. If the Library +specifies a version number of this License which applies to it and +"any later version", you have the option of following the terms and +conditions either of that version or of any later version published by +the Free Software Foundation. If the Library does not specify a +license version number, you may choose any version ever published by +the Free Software Foundation. + + 14. If you wish to incorporate parts of the Library into other free +programs whose distribution conditions are incompatible with these, +write to the author to ask for permission. For software which is +copyrighted by the Free Software Foundation, write to the Free +Software Foundation; we sometimes make exceptions for this. Our +decision will be guided by the two goals of preserving the free status +of all derivatives of our free software and of promoting the sharing +and reuse of software generally. + + NO WARRANTY + + 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO +WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW. +EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR +OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY +KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE +LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME +THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN +WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY +AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU +FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR +CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE +LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING +RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A +FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF +SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGES. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Libraries + + If you develop a new library, and you want it to be of the greatest +possible use to the public, we recommend making it free software that +everyone can redistribute and change. You can do so by permitting +redistribution under these terms (or, alternatively, under the terms of the +ordinary General Public License). + + To apply these terms, attach the following notices to the library. It is +safest to attach them to the start of each source file to most effectively +convey the exclusion of warranty; and each file should have at least the +"copyright" line and a pointer to where the full notice is found. + + <one line to give the library's name and a brief idea of what it does.> + Copyright (C) <year> <name of author> + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with this library; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + +Also add information on how to contact you by electronic and paper mail. + +You should also get your employer (if you work as a programmer) or your +school, if any, to sign a "copyright disclaimer" for the library, if +necessary. Here is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the + library `Frob' (a library for tweaking knobs) written by James Random Hacker. + + <signature of Ty Coon>, 1 April 1990 + Ty Coon, President of Vice + +That's all there is to it! diff --git a/plugins/ewc/ewc.c b/plugins/ewc/ewc.c new file mode 100644 index 00000000..78e7e9ac --- /dev/null +++ b/plugins/ewc/ewc.c @@ -0,0 +1,231 @@ +/* +EasyWinampControl - A Winamp "What's playing" plugin for Xchat +Copyright (C) Yann HAMON & contributors + +This library is free software; you can redistribute it and/or +modify it under the terms of the GNU Lesser General Public +License as published by the Free Software Foundation; either +version 2.1 of the License, or (at your option) any later version. + +This library is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +Lesser General Public License for more details. + +You should have received a copy of the GNU Lesser General Public +License along with this library; if not, write to the Free Software +Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +*/ + +#include "xchat-plugin.h" +#include <windows.h> + +static xchat_plugin *ph; /* plugin handle */ +static int enable = 1; + +// For example, circularstrstr("winamp", "pwi", 3) would return 5 (the index of p) +int circularstrstr(char* a, char* b, int nb) +{ + int equal = 1; + int length; + int pos=-1; + int i, j; + + length = strlen(a); + + for (i=0; i<length && pos == -1; ++i) { + equal = 1; + for (j=0; j<nb;j++) { + if (a[(i+j)%length] != b[j]) + equal = 0; + } + if (equal == 1) + pos = i; + } + + return pos; +} + +void GetCurrentSongsName(HWND hwndWinamp, char* title, int titlesize) +{ + int pos; + char *title2; + int i, j=0; + int length; + char *p; + + GetWindowText(hwndWinamp, title, titlesize); + length = strlen(title); + + if ((pos = circularstrstr(title, "- Winamp ***", 12)) != -1) { + // The option "scroll song title in taskbar" is on + title2 = (char*) malloc (titlesize*sizeof(char)); + + for (i=(pos+12)%length; i!=pos; i=(i+1)%length) + title2[j++] = title[i]; + + title2[j] = '\0'; + + p = title2; + while (p<title2+titlesize && *p != '.') + p++; + p+=2; // Delete the . and the following white space + + strcpy(title, p); + free(title2); + } + else { + p = title; + while (p<title+titlesize && *p != '.') + p++; + p+=2; // Delete the . and the following white space + if (p<title+titlesize) + strncpy(title, p, titlesize-(p-title)); + + // Delete the trailing "- winamp" + p = title + titlesize - 1; + while (p>title && *p != '-') p--; + *p = '\0'; + } +} + + +// Controlling winamp +static int wcmd_cb(char *word[], char *word_eol[], void *userdata) +{ + // Everything's here : http://winamp.com/nsdn/winamp2x/dev/sdk/api.php + // The previous url seems dead, see http://forums.winamp.com/showthread.php?threadid=180297 + HWND hwndWinamp = NULL; + + if ((hwndWinamp = FindWindow("Winamp v1.x",NULL)) == NULL) { + xchat_print(ph, "Winamp's window not found - Is winamp really running?\n"); + } + else { + if (strcmp(word[1], "") == 0) + xchat_print(ph, "Usage: wcmd [command]\n"); + else if (strcmp(word[2], "next") == 0) { + xchat_print(ph, "Loading next song...\n"); + SendMessage (hwndWinamp, WM_COMMAND, 40048, 0); + } + else if (strcmp(word[2], "prev") == 0) { + xchat_print(ph, "Loading previous song...\n"); + SendMessage (hwndWinamp, WM_COMMAND, 40044, 0); + } + else if (strcmp(word[2], "play") == 0) { + xchat_print(ph, "Playin'...\n"); + SendMessage (hwndWinamp, WM_COMMAND, 40045, 0); + } + else if (strcmp(word[2], "stop") == 0) { + xchat_print(ph, "Winamp stopped!...\n"); + SendMessage (hwndWinamp, WM_COMMAND, 40047, 0); + } + else if (strcmp(word[2], "pause") == 0) { + SendMessage (hwndWinamp, WM_COMMAND, 40046, 0); + } + } + + return XCHAT_EAT_ALL; +} + + +// Display current song +static int wp_cb(char *word[], char *word_eol[], void *userdata) +{ + HWND hwndWinamp = NULL; + int bitrate, length, elapsed, minutes, seconds, eminutes, eseconds, samplerate, nbchannels; + char elapsedtime[7]; + char totaltime[7]; + char this_title[1024]; + + if ((hwndWinamp = FindWindow("Winamp v1.x",NULL)) == NULL) + xchat_print(ph, "Winamp's window not found - Is winamp really running?\n"); + else { + //Winamp's running + // Seems buggy when winamp2's agent is running, and winamp not (or winamp3) -> crashes xchat. + SendMessage(hwndWinamp, WM_USER, (WPARAM)0, (LPARAM)125); + + if ((samplerate = SendMessage(hwndWinamp, WM_USER, (WPARAM)0, (LPARAM)126)) == 0) { + xchat_print(ph, "Could not get current song's samplerate... !?\n"); + return XCHAT_EAT_ALL; + } + if ((bitrate = SendMessage(hwndWinamp, WM_USER, (WPARAM)1, (LPARAM)126)) == 0) { + xchat_print(ph, "Could not get current song's bitrate... !?\n"); + return XCHAT_EAT_ALL; + } + if ((nbchannels = SendMessage(hwndWinamp, WM_USER, (WPARAM)2, (LPARAM)126)) == 0) { + xchat_print(ph, "Could not get the number of channels... !?\n"); + return XCHAT_EAT_ALL; + } + if ((length = SendMessage(hwndWinamp, WM_USER, (WPARAM)1, (LPARAM)105)) == 0) { + // Could be buggy when streaming audio or video, returned length is unexpected; + // How to detect is Winamp is streaming, and display ??:?? in that case? + xchat_print(ph, "Could not get current song's length... !?\n"); + return XCHAT_EAT_ALL; + } + else { + minutes = length/60; + seconds = length%60; + + if (seconds>9) + wsprintf(totaltime, "%d:%d", minutes, seconds); + else + wsprintf(totaltime, "%d:0%d", minutes, seconds); + } + if ((elapsed = SendMessage(hwndWinamp, WM_USER, (WPARAM)0, (LPARAM)105)) == 0) { + xchat_print(ph, "Could not get current song's elapsed time... !?\n"); + return XCHAT_EAT_ALL; + } + else { + eminutes = (elapsed/1000)/60; /* kinda stupid sounding, but e is for elapsed */ + eseconds = (elapsed/1000)%60; + + if (eseconds>9) + wsprintf(elapsedtime, "%d:%d", eminutes, eseconds); + else + wsprintf(elapsedtime, "%d:0%d", eminutes, eseconds); + } + + if ((bitrate = SendMessage(hwndWinamp, WM_USER, (WPARAM)1, (LPARAM)126)) == 0) { + xchat_print(ph, "Could not get current song's bitrate... !?\n"); + return XCHAT_EAT_ALL; + } + + GetCurrentSongsName(hwndWinamp, this_title, 1024); + + xchat_commandf(ph, "dispcurrsong %d %d %d %s %s %s", samplerate, bitrate, nbchannels, elapsedtime, totaltime, this_title); + } + + return XCHAT_EAT_ALL; /* eat this command so xchat and other plugins can't process it */ +} + + + +int xchat_plugin_init(xchat_plugin *plugin_handle, + char **plugin_name, + char **plugin_desc, + char **plugin_version, + char *arg) +{ + /* we need to save this for use with any xchat_* functions */ + ph = plugin_handle; + + *plugin_name = "EasyWinampControl"; + *plugin_desc = "Some commands to remotely control winamp"; + *plugin_version = "1.2"; + + xchat_hook_command(ph, "wp", XCHAT_PRI_NORM, wp_cb, + "Usage: wp", 0); + + xchat_hook_command(ph, "wcmd", XCHAT_PRI_NORM, wcmd_cb, + "Usage: wcmd [play|pause|stop|prev|next]", 0); + + xchat_print(ph, "EasyWinampControl plugin loaded\n"); + + return 1; /* return 1 for success */ +} + +int xchat_plugin_deinit(void) +{ + xchat_print(ph, "EasyWinampControl plugin unloaded\n"); + return 1; +} diff --git a/plugins/ewc/makefile.mak b/plugins/ewc/makefile.mak new file mode 100644 index 00000000..9b9f21c1 --- /dev/null +++ b/plugins/ewc/makefile.mak @@ -0,0 +1,18 @@ +include "..\..\src\makeinc.mak" + +all: ewc.obj ewc.def + link $(LDFLAGS) $(LIBS) /dll /out:xcewc.dll /def:ewc.def ewc.obj + +ewc.def: + echo EXPORTS > ewc.def + echo xchat_plugin_init >> ewc.def + echo xchat_plugin_deinit >> ewc.def + +ewc.obj: ewc.c makefile.mak + cl $(CFLAGS) ewc.c + +clean: + del *.obj + del *.dll + del *.exp + del *.lib diff --git a/plugins/exec/exec.c b/plugins/exec/exec.c new file mode 100644 index 00000000..22f38814 --- /dev/null +++ b/plugins/exec/exec.c @@ -0,0 +1,138 @@ +/* XChat-WDK + * Copyright (c) 2011 Berke Viktor. + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ + +#include <windows.h> +#include <time.h> + +#include "xchat-plugin.h" + +static xchat_plugin *ph; /* plugin handle */ +static const char name[] = "Exec"; +static const char desc[] = "Execute commands inside XChat"; +static const char version[] = "1.1"; + +static int +run_command (char *word[], char *word_eol[], void *userdata) +{ + char commandLine[1024]; + char buffer[4096]; + DWORD dwRead = 0; + DWORD dwLeft = 0; + DWORD dwAvail = 0; + time_t start; + double timeElapsed; + + HANDLE readPipe; + HANDLE writePipe; + STARTUPINFO sInfo; + PROCESS_INFORMATION pInfo; + SECURITY_ATTRIBUTES secattr; + + ZeroMemory (&secattr, sizeof (secattr)); + secattr.nLength = sizeof (secattr); + secattr.bInheritHandle = TRUE; + + if (strlen (word[2]) > 0) + { + strcpy (commandLine, "cmd.exe /c "); + + if (!stricmp("-O", word[2])) + { + /*strcat (commandLine, word_eol[3]);*/ + xchat_printf (ph, "Printing Exec output to others is not supported yet.\n"); + return XCHAT_EAT_XCHAT; + } + else + { + strcat (commandLine, word_eol[2]); + } + + CreatePipe (&readPipe, &writePipe, &secattr, 0); /* might be replaced with MyCreatePipeEx */ + + ZeroMemory (&sInfo, sizeof (sInfo)); + ZeroMemory (&pInfo, sizeof (pInfo)); + sInfo.cb = sizeof (sInfo); + sInfo.dwFlags = STARTF_USESTDHANDLES; + sInfo.hStdInput = NULL; + sInfo.hStdOutput = writePipe; + sInfo.hStdError = writePipe; + + CreateProcess (0, commandLine, 0, 0, TRUE, NORMAL_PRIORITY_CLASS | CREATE_NO_WINDOW, 0, 0, &sInfo, &pInfo); + CloseHandle (writePipe); + + start = time (0); + while (PeekNamedPipe (readPipe, buffer, 1, &dwRead, &dwAvail, &dwLeft) && timeElapsed < 10) + { + if (dwRead) + { + if (ReadFile (readPipe, buffer, sizeof (buffer) - 1, &dwRead, NULL) && dwRead != 0 ) + { + /* avoid garbage */ + buffer[dwRead] = '\0'; + xchat_printf (ph, "%s", buffer); + } + } + else + { + /* this way we'll more likely get full lines */ + SleepEx (100, TRUE); + } + timeElapsed = difftime (time (0), start); + } + } + + /* display a newline to separate things */ + xchat_printf (ph, "\n"); + + if (timeElapsed >= 10) + { + xchat_printf (ph, "Command took too much time to run, execution aborted.\n"); + } + + CloseHandle (readPipe); + CloseHandle (pInfo.hProcess); + CloseHandle (pInfo.hThread); + + return XCHAT_EAT_XCHAT; +} + +int +xchat_plugin_init (xchat_plugin *plugin_handle, char **plugin_name, char **plugin_desc, char **plugin_version, char *arg) +{ + ph = plugin_handle; + + *plugin_name = name; + *plugin_desc = desc; + *plugin_version = version; + + xchat_hook_command (ph, "EXEC", XCHAT_PRI_NORM, run_command, "Usage: /EXEC [-O] - execute commands inside XChat", 0); + xchat_printf (ph, "%s plugin loaded\n", name); + + return 1; /* return 1 for success */ +} + +int +xchat_plugin_deinit (void) +{ + xchat_printf (ph, "%s plugin unloaded\n", name); + return 1; +} diff --git a/plugins/exec/exec.def b/plugins/exec/exec.def new file mode 100644 index 00000000..77670bf2 --- /dev/null +++ b/plugins/exec/exec.def @@ -0,0 +1,3 @@ +EXPORTS +xchat_plugin_init +xchat_plugin_deinit diff --git a/plugins/exec/exec.vcxproj b/plugins/exec/exec.vcxproj new file mode 100644 index 00000000..22e6200a --- /dev/null +++ b/plugins/exec/exec.vcxproj @@ -0,0 +1,106 @@ +<?xml version="1.0" encoding="utf-8"?> +<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <ItemGroup Label="ProjectConfigurations"> + <ProjectConfiguration Include="Release|Win32"> + <Configuration>Release</Configuration> + <Platform>Win32</Platform> + </ProjectConfiguration> + <ProjectConfiguration Include="Release|x64"> + <Configuration>Release</Configuration> + <Platform>x64</Platform> + </ProjectConfiguration> + </ItemGroup> + <PropertyGroup Label="Globals"> + <ProjectGuid>{17E4BE39-76F7-4A06-AD21-EFD0C5091F76}</ProjectGuid> + <Keyword>Win32Proj</Keyword> + <RootNamespace>exec</RootNamespace> + </PropertyGroup> + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" /> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration"> + <ConfigurationType>DynamicLibrary</ConfigurationType> + <UseDebugLibraries>false</UseDebugLibraries> + <WholeProgramOptimization>true</WholeProgramOptimization> + <CharacterSet>MultiByte</CharacterSet> + <PlatformToolset>WDK7</PlatformToolset> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration"> + <ConfigurationType>DynamicLibrary</ConfigurationType> + <UseDebugLibraries>false</UseDebugLibraries> + <WholeProgramOptimization>true</WholeProgramOptimization> + <CharacterSet>MultiByte</CharacterSet> + <PlatformToolset>WDK7</PlatformToolset> + </PropertyGroup> + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" /> + <ImportGroup Label="ExtensionSettings"> + </ImportGroup> + <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> + <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> + <Import Project="..\..\win32\xchat.props" /> + </ImportGroup> + <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets"> + <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> + <Import Project="..\..\win32\xchat.props" /> + </ImportGroup> + <PropertyGroup Label="UserMacros" /> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> + <LinkIncremental>false</LinkIncremental> + <TargetName>xcexec</TargetName> + <OutDir>$(SolutionDir)build\$(PlatformName)\bin</OutDir> + <IntDir>$(SolutionDir)build\$(PlatformName)\obj\$(ProjectName)</IntDir> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'"> + <LinkIncremental>false</LinkIncremental> + <TargetName>xcexec</TargetName> + <OutDir>$(SolutionDir)build\$(PlatformName)\bin</OutDir> + <IntDir>$(SolutionDir)build\$(PlatformName)\obj\$(ProjectName)</IntDir> + </PropertyGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> + <ClCompile> + <WarningLevel>Level1</WarningLevel> + <PrecompiledHeader> + </PrecompiledHeader> + <Optimization>MaxSpeed</Optimization> + <FunctionLevelLinking>true</FunctionLevelLinking> + <IntrinsicFunctions>true</IntrinsicFunctions> + <PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;_USRDLL;EXEC_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <MultiProcessorCompilation>true</MultiProcessorCompilation> + <AdditionalIncludeDirectories>..;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> + </ClCompile> + <Link> + <SubSystem>Windows</SubSystem> + <GenerateDebugInformation>true</GenerateDebugInformation> + <EnableCOMDATFolding>true</EnableCOMDATFolding> + <OptimizeReferences>true</OptimizeReferences> + <ModuleDefinitionFile>exec.def</ModuleDefinitionFile> + </Link> + </ItemDefinitionGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'"> + <ClCompile> + <WarningLevel>Level1</WarningLevel> + <PrecompiledHeader> + </PrecompiledHeader> + <Optimization>MaxSpeed</Optimization> + <FunctionLevelLinking>true</FunctionLevelLinking> + <IntrinsicFunctions>true</IntrinsicFunctions> + <PreprocessorDefinitions>WIN32;_WIN64;NDEBUG;_WINDOWS;_USRDLL;EXEC_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <MultiProcessorCompilation>true</MultiProcessorCompilation> + <AdditionalIncludeDirectories>..;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> + </ClCompile> + <Link> + <SubSystem>Windows</SubSystem> + <GenerateDebugInformation>true</GenerateDebugInformation> + <EnableCOMDATFolding>true</EnableCOMDATFolding> + <OptimizeReferences>true</OptimizeReferences> + <ModuleDefinitionFile>exec.def</ModuleDefinitionFile> + </Link> + </ItemDefinitionGroup> + <ItemGroup> + <None Include="exec.def" /> + </ItemGroup> + <ItemGroup> + <ClCompile Include="exec.c" /> + </ItemGroup> + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" /> + <ImportGroup Label="ExtensionTargets"> + </ImportGroup> +</Project> \ No newline at end of file diff --git a/plugins/exec/exec.vcxproj.filters b/plugins/exec/exec.vcxproj.filters new file mode 100644 index 00000000..f800df93 --- /dev/null +++ b/plugins/exec/exec.vcxproj.filters @@ -0,0 +1,23 @@ +<?xml version="1.0" encoding="utf-8"?> +<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <ItemGroup> + <Filter Include="Source Files"> + <UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier> + <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions> + </Filter> + <Filter Include="Resource Files"> + <UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier> + <Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms</Extensions> + </Filter> + </ItemGroup> + <ItemGroup> + <None Include="exec.def"> + <Filter>Resource Files</Filter> + </None> + </ItemGroup> + <ItemGroup> + <ClCompile Include="exec.c"> + <Filter>Source Files</Filter> + </ClCompile> + </ItemGroup> +</Project> \ No newline at end of file diff --git a/plugins/exec/exec.vcxproj.user b/plugins/exec/exec.vcxproj.user new file mode 100644 index 00000000..695b5c78 --- /dev/null +++ b/plugins/exec/exec.vcxproj.user @@ -0,0 +1,3 @@ +<?xml version="1.0" encoding="utf-8"?> +<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> +</Project> \ No newline at end of file diff --git a/plugins/exec/makefile.mak b/plugins/exec/makefile.mak new file mode 100644 index 00000000..d2153faf --- /dev/null +++ b/plugins/exec/makefile.mak @@ -0,0 +1,18 @@ +include "..\..\src\makeinc.mak" + +all: exec.obj exec.def + link $(LDFLAGS) $(LIBS) /dll /out:xcexec.dll /def:exec.def exec.obj + +exec.def: + echo EXPORTS > exec.def + echo xchat_plugin_init >> exec.def + echo xchat_plugin_deinit >> exec.def + +exec.obj: exec.c makefile.mak + cl $(CFLAGS) $(GLIB) /I.. exec.c + +clean: + del *.obj + del *.dll + del *.exp + del *.lib diff --git a/plugins/fishlim/INSTALL b/plugins/fishlim/INSTALL new file mode 100644 index 00000000..d0d61ff8 --- /dev/null +++ b/plugins/fishlim/INSTALL @@ -0,0 +1,16 @@ + +Install dependencies (on Debian/Ubuntu): + + sudo apt-get install build-essential libglib2.0-dev libssl-dev + + +Build the plugin with: + + make + + +Install with: + + sudo make install + + diff --git a/plugins/fishlim/LICENSE b/plugins/fishlim/LICENSE new file mode 100644 index 00000000..a3e0474a --- /dev/null +++ b/plugins/fishlim/LICENSE @@ -0,0 +1,21 @@ + +Copyright (c) 2010-2011 Samuel Lidén Borell <samuel@kodafritt.se> + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + diff --git a/plugins/fishlim/Makefile b/plugins/fishlim/Makefile new file mode 100644 index 00000000..3f0e93d2 --- /dev/null +++ b/plugins/fishlim/Makefile @@ -0,0 +1,40 @@ + +OURCFLAGS = -Wall -Wextra -Wno-unused-parameter -std=c99 -pedantic `pkg-config --cflags glib-2.0 libcrypto` -DG_DISABLE_DEPRECATED=1 -fPIC $(CFLAGS) +#OURLINKFLAGS = `pkg-config --libs glib-2.0 libcrypto` -shared -fPIC -Wl,-z,defs $(CFLAGS) $(LDFLAGS) +OURLINKFLAGS = `pkg-config --libs glib-2.0 libcrypto` $(CFLAGS) $(LDFLAGS) + +BASE_OBJECTS = irc.o fish.o keystore.o misc.o +PLUGIN_OBJECTS = $(BASE_OBJECTS) plugin_xchat.o +TEST_OBJECTS = $(BASE_OBJECTS) test.o + +all: fishlim.so test + +fish.o: fish.h keystore.h misc.h +irc.o: irc.h +keystore.o: keystore.h irc.h fish.h misc.h plugin_xchat.h +misc.o: misc.h +test.o: fish.h +plugin_xchat.o: fish.h irc.h keystore.h plugin_xchat.h + +.c.o: + $(CC) $(OURCFLAGS) -c $< -o $@ + +fishlim.so: $(PLUGIN_OBJECTS) + $(CC) -shared $(OURLINKFLAGS) $(PLUGIN_OBJECTS) -o $@ + +test: $(TEST_OBJECTS) + $(CC) $(TEST_OBJECTS) -o $@ $(OURLINKFLAGS) + + +.PHONY: all clean distclean install uninstall +clean: + -$(RM) -f $(PLUGIN_OBJECTS) $(TEST_OBJECTS) fishlim.so test +distclean: clean + +install: fishlim.so + install -d $(DESTDIR)/usr/lib/xchat/plugins/ + install -m 644 fishlim.so $(DESTDIR)/usr/lib/xchat/plugins/ +uninstall: + rm $(DESTDIR)/usr/lib/xchat/plugins/fishlim.so + + diff --git a/plugins/fishlim/README b/plugins/fishlim/README new file mode 100644 index 00000000..00d7f682 --- /dev/null +++ b/plugins/fishlim/README @@ -0,0 +1,45 @@ + + + FiSHLiM + + http://fishlim.kodafritt.se/ + + +FiSHLiM is an XChat plugin for FiSH IRC encryption. It's my attempt at making +a simple, lightweight and secure plugin for this encryption protocol. + +For installation instructions, see the INSTALL file. + + +Features +-------- + +Working: + * Sending/receiving messages + * Topic decryption + * Using unecrypted keys / keys without a password from blow.ini + * Pure protocol-level filtering (works with highlighting, nick coloring etc) + * Partially encrypted messages (i.e. prefixed with nickname by a bouncer) + +Not working: + * Key exchange + * Password-protected key storage + * Topic encryption + * Remote exploitation (hopefully!) + * Plaintext content that contain +OK is decrypted twice + + +Commands +-------- + +/setkey [nick or #channel] password + + Sets the encryption key for the nick or channel to password. The keys + are stored in the configuration file in ~/.xchat2/blow.ini + + +/delkey nick-or-#channel + + Deletes the given nick or channel from the configuration file. + + diff --git a/plugins/fishlim/bool.h b/plugins/fishlim/bool.h new file mode 100644 index 00000000..2c8ddde4 --- /dev/null +++ b/plugins/fishlim/bool.h @@ -0,0 +1,5 @@ +/* stdbool.h replacement for MSVC */ +#define false 0 +#define true 1 +#define bool _Bool +typedef int _Bool; diff --git a/plugins/fishlim/fish.c b/plugins/fishlim/fish.c new file mode 100644 index 00000000..d4f7b118 --- /dev/null +++ b/plugins/fishlim/fish.c @@ -0,0 +1,192 @@ +/* + + Copyright (c) 2010 Samuel Lidén Borell <samuel@kodafritt.se> + + Permission is hereby granted, free of charge, to any person obtaining a copy + of this software and associated documentation files (the "Software"), to deal + in the Software without restriction, including without limitation the rights + to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in + all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + THE SOFTWARE. + +*/ + +#include <stdlib.h> +#include <string.h> +#include <openssl/blowfish.h> + +#include "keystore.h" +#include "fish.h" + +#define IB 64 +static const char fish_base64[64] = "./0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"; +static const signed char fish_unbase64[256] = { + IB,IB,IB,IB,IB,IB,IB,IB, IB,IB,IB,IB,IB,IB,IB,IB, + IB,IB,IB,IB,IB,IB,IB,IB, IB,IB,IB,IB,IB,IB,IB,IB, +// ! " # $ % & ' ( ) * + , - . / + IB,IB,IB,IB,IB,IB,IB,IB, IB,IB,IB,IB,IB,IB, 0, 1, +// 0 1 2 3 4 5 6 7 8 9 : ; < = > ? + 2, 3, 4, 5, 6, 7, 8, 9, 10,11,IB,IB,IB,IB,IB,IB, +// @ A B C D E F G H I J K L M N O + IB,38,39,40,41,42,43,44, 45,46,47,48,49,50,51,52, +// P Q R S T U V W X Y Z [ \ ] ^ _ + 53,54,55,56,57,58,59,60, 61,62,63,IB,IB,IB,IB,IB, +// ` a b c d e f g h i j k l m n o + IB,12,13,14,15,16,17,18, 19,20,21,22,23,24,25,26, +// p q r s t u v w x y z { | } ~ <del> + 27,28,29,30,31,32,33,34, 35,36,37,IB,IB,IB,IB,IB, +}; + +#define GET_BYTES(dest, source) do { \ + *((dest)++) = ((source) >> 24) & 0xFF; \ + *((dest)++) = ((source) >> 16) & 0xFF; \ + *((dest)++) = ((source) >> 8) & 0xFF; \ + *((dest)++) = (source) & 0xFF; \ +} while (0); + + +char *fish_encrypt(const char *key, size_t keylen, const char *message) { + BF_KEY bfkey; + size_t messagelen; + size_t i; + int j; + char *encrypted; + char *end; + unsigned char bit; + unsigned char word; + unsigned char d; + BF_set_key(&bfkey, keylen, (const unsigned char*)key); + + messagelen = strlen(message); + if (messagelen == 0) return NULL; + encrypted = malloc(((messagelen-1)/8)*12 + 12 + 1); // each 8-byte block becomes 12 bytes + end = encrypted; + if (!encrypted) return NULL; + + while (*message) { + // Read 8 bytes (a Blowfish block) + BF_LONG binary[2] = { 0, 0 }; + unsigned char c; + for (i = 0; i < 8; i++) { + c = message[i]; + binary[i >> 2] |= c << 8*(3 - (i&3)); + if (c == '\0') break; + } + message += 8; + + // Encrypt block + BF_encrypt(binary, &bfkey); + + // Emit FiSH-BASE64 + bit = 0; + word = 1; + for (j = 0; j < 12; j++) { + d = fish_base64[(binary[word] >> bit) & 63]; + *(end++) = d; + bit += 6; + if (j == 5) { + bit = 0; + word = 0; + } + } + + // Stop if a null terminator was found + if (c == '\0') break; + } + *end = '\0'; + return encrypted; +} + + +char *fish_decrypt(const char *key, size_t keylen, const char *data) { + BF_KEY bfkey; + size_t i; + char *decrypted; + char *end; + unsigned char bit; + unsigned char word; + unsigned char d; + BF_set_key(&bfkey, keylen, (const unsigned char*)key); + + decrypted = malloc(strlen(data)+1); + end = decrypted; + if (!decrypted) return NULL; + + while (*data) { + // Convert from FiSH-BASE64 + BF_LONG binary[2] = { 0, 0 }; + bit = 0; + word = 1; + for (i = 0; i < 12; i++) { + d = fish_unbase64[(const unsigned char)*(data++)]; + if (d == IB) goto decrypt_end; + binary[word] |= d << bit; + bit += 6; + if (i == 5) { + bit = 0; + word = 0; + } + } + + // Decrypt block + BF_decrypt(binary, &bfkey); + + // Copy to buffer + GET_BYTES(end, binary[0]); + GET_BYTES(end, binary[1]); + } + + decrypt_end: + *end = '\0'; + return decrypted; +} + +/** + * Encrypts a message (see fish_decrypt). The key is searched for in the + * key store. + */ +char *fish_encrypt_for_nick(const char *nick, const char *data) { + char *key; + char *encrypted; + + // Look for key + key = keystore_get_key(nick); + if (!key) return NULL; + + // Encrypt + encrypted = fish_encrypt(key, strlen(key), data); + + free(key); + return encrypted; +} + +/** + * Decrypts a message (see fish_decrypt). The key is searched for in the + * key store. + */ +char *fish_decrypt_from_nick(const char *nick, const char *data) { + char *key; + char *decrypted; + // Look for key + key = keystore_get_key(nick); + if (!key) return NULL; + + // Decrypt + decrypted = fish_decrypt(key, strlen(key), data); + + free(key); + return decrypted; +} + + diff --git a/plugins/fishlim/fish.h b/plugins/fishlim/fish.h new file mode 100644 index 00000000..5a4e85d0 --- /dev/null +++ b/plugins/fishlim/fish.h @@ -0,0 +1,42 @@ +/* + + Copyright (c) 2010 Samuel Lidén Borell <samuel@kodafritt.se> + + Permission is hereby granted, free of charge, to any person obtaining a copy + of this software and associated documentation files (the "Software"), to deal + in the Software without restriction, including without limitation the rights + to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in + all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + THE SOFTWARE. + +*/ + +#ifndef FISH_H +#define FISH_H + +#ifdef _MSC_VER +#include "bool.h" +#else +#include <stdbool.h> +#endif +#include <stddef.h> + +char *fish_encrypt(const char *key, size_t keylen, const char *message); +char *fish_decrypt(const char *key, size_t keylen, const char *data); +char *fish_encrypt_for_nick(const char *nick, const char *data); +char *fish_decrypt_from_nick(const char *nick, const char *data); + +#endif + + diff --git a/plugins/fishlim/fishlim.def b/plugins/fishlim/fishlim.def new file mode 100644 index 00000000..5797636b --- /dev/null +++ b/plugins/fishlim/fishlim.def @@ -0,0 +1,4 @@ +EXPORTS +xchat_plugin_init +xchat_plugin_deinit +xchat_plugin_get_info diff --git a/plugins/fishlim/fishlim.vcxproj b/plugins/fishlim/fishlim.vcxproj new file mode 100644 index 00000000..6b5dcc07 --- /dev/null +++ b/plugins/fishlim/fishlim.vcxproj @@ -0,0 +1,122 @@ +<?xml version="1.0" encoding="utf-8"?> +<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <ItemGroup Label="ProjectConfigurations"> + <ProjectConfiguration Include="Release|Win32"> + <Configuration>Release</Configuration> + <Platform>Win32</Platform> + </ProjectConfiguration> + <ProjectConfiguration Include="Release|x64"> + <Configuration>Release</Configuration> + <Platform>x64</Platform> + </ProjectConfiguration> + </ItemGroup> + <PropertyGroup Label="Globals"> + <ProjectGuid>{3C4F42FC-292A-420B-B63D-C03DFBDD8E4E}</ProjectGuid> + <Keyword>Win32Proj</Keyword> + <RootNamespace>fishlim</RootNamespace> + </PropertyGroup> + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" /> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration"> + <ConfigurationType>DynamicLibrary</ConfigurationType> + <UseDebugLibraries>false</UseDebugLibraries> + <WholeProgramOptimization>true</WholeProgramOptimization> + <CharacterSet>MultiByte</CharacterSet> + <PlatformToolset>WDK7</PlatformToolset> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration"> + <ConfigurationType>DynamicLibrary</ConfigurationType> + <UseDebugLibraries>false</UseDebugLibraries> + <WholeProgramOptimization>true</WholeProgramOptimization> + <CharacterSet>MultiByte</CharacterSet> + <PlatformToolset>WDK7</PlatformToolset> + </PropertyGroup> + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" /> + <ImportGroup Label="ExtensionSettings"> + </ImportGroup> + <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> + <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> + <Import Project="..\..\win32\xchat.props" /> + </ImportGroup> + <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets"> + <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> + <Import Project="..\..\win32\xchat.props" /> + </ImportGroup> + <PropertyGroup Label="UserMacros" /> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> + <LinkIncremental>false</LinkIncremental> + <TargetName>xcfishlim</TargetName> + <OutDir>$(SolutionDir)build\$(PlatformName)\bin</OutDir> + <IntDir>$(SolutionDir)build\$(PlatformName)\obj\$(ProjectName)</IntDir> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'"> + <LinkIncremental>false</LinkIncremental> + <TargetName>xcfishlim</TargetName> + <OutDir>$(SolutionDir)build\$(PlatformName)\bin</OutDir> + <IntDir>$(SolutionDir)build\$(PlatformName)\obj\$(ProjectName)</IntDir> + </PropertyGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> + <ClCompile> + <WarningLevel>Level1</WarningLevel> + <PrecompiledHeader> + </PrecompiledHeader> + <Optimization>MaxSpeed</Optimization> + <FunctionLevelLinking>true</FunctionLevelLinking> + <IntrinsicFunctions>true</IntrinsicFunctions> + <PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;_USRDLL;FISHLIM_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <MultiProcessorCompilation>true</MultiProcessorCompilation> + <AdditionalIncludeDirectories>$(DepsRoot)\include;$(Glib);..;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> + </ClCompile> + <Link> + <SubSystem>Windows</SubSystem> + <GenerateDebugInformation>true</GenerateDebugInformation> + <EnableCOMDATFolding>true</EnableCOMDATFolding> + <OptimizeReferences>true</OptimizeReferences> + <ModuleDefinitionFile>fishlim.def</ModuleDefinitionFile> + <AdditionalLibraryDirectories>$(DepsRoot)\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories> + <AdditionalDependencies>$(DepLibs);%(AdditionalDependencies)</AdditionalDependencies> + </Link> + </ItemDefinitionGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'"> + <ClCompile> + <WarningLevel>Level1</WarningLevel> + <PrecompiledHeader> + </PrecompiledHeader> + <Optimization>MaxSpeed</Optimization> + <FunctionLevelLinking>true</FunctionLevelLinking> + <IntrinsicFunctions>true</IntrinsicFunctions> + <PreprocessorDefinitions>WIN32;_WIN64;NDEBUG;_WINDOWS;_USRDLL;FISHLIM_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <MultiProcessorCompilation>true</MultiProcessorCompilation> + <AdditionalIncludeDirectories>$(DepsRoot)\include;$(Glib);..;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> + </ClCompile> + <Link> + <SubSystem>Windows</SubSystem> + <GenerateDebugInformation>true</GenerateDebugInformation> + <EnableCOMDATFolding>true</EnableCOMDATFolding> + <OptimizeReferences>true</OptimizeReferences> + <ModuleDefinitionFile>fishlim.def</ModuleDefinitionFile> + <AdditionalLibraryDirectories>$(DepsRoot)\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories> + <AdditionalDependencies>$(DepLibs);%(AdditionalDependencies)</AdditionalDependencies> + </Link> + </ItemDefinitionGroup> + <ItemGroup> + <None Include="fishlim.def" /> + </ItemGroup> + <ItemGroup> + <ClInclude Include="bool.h" /> + <ClInclude Include="fish.h" /> + <ClInclude Include="irc.h" /> + <ClInclude Include="keystore.h" /> + <ClInclude Include="misc.h" /> + <ClInclude Include="plugin_xchat.h" /> + </ItemGroup> + <ItemGroup> + <ClCompile Include="fish.c" /> + <ClCompile Include="irc.c" /> + <ClCompile Include="keystore.c" /> + <ClCompile Include="misc.c" /> + <ClCompile Include="plugin_xchat.c" /> + </ItemGroup> + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" /> + <ImportGroup Label="ExtensionTargets"> + </ImportGroup> +</Project> \ No newline at end of file diff --git a/plugins/fishlim/fishlim.vcxproj.filters b/plugins/fishlim/fishlim.vcxproj.filters new file mode 100644 index 00000000..72e9f017 --- /dev/null +++ b/plugins/fishlim/fishlim.vcxproj.filters @@ -0,0 +1,59 @@ +<?xml version="1.0" encoding="utf-8"?> +<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <ItemGroup> + <Filter Include="Source Files"> + <UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier> + <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions> + </Filter> + <Filter Include="Header Files"> + <UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier> + <Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions> + </Filter> + <Filter Include="Resource Files"> + <UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier> + <Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms</Extensions> + </Filter> + </ItemGroup> + <ItemGroup> + <None Include="fishlim.def"> + <Filter>Resource Files</Filter> + </None> + </ItemGroup> + <ItemGroup> + <ClInclude Include="bool.h"> + <Filter>Header Files</Filter> + </ClInclude> + <ClInclude Include="fish.h"> + <Filter>Header Files</Filter> + </ClInclude> + <ClInclude Include="irc.h"> + <Filter>Header Files</Filter> + </ClInclude> + <ClInclude Include="keystore.h"> + <Filter>Header Files</Filter> + </ClInclude> + <ClInclude Include="misc.h"> + <Filter>Header Files</Filter> + </ClInclude> + <ClInclude Include="plugin_xchat.h"> + <Filter>Header Files</Filter> + </ClInclude> + </ItemGroup> + <ItemGroup> + <ClCompile Include="fish.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="irc.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="keystore.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="misc.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="plugin_xchat.c"> + <Filter>Source Files</Filter> + </ClCompile> + </ItemGroup> +</Project> \ No newline at end of file diff --git a/plugins/fishlim/fishlim.vcxproj.user b/plugins/fishlim/fishlim.vcxproj.user new file mode 100644 index 00000000..695b5c78 --- /dev/null +++ b/plugins/fishlim/fishlim.vcxproj.user @@ -0,0 +1,3 @@ +<?xml version="1.0" encoding="utf-8"?> +<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> +</Project> \ No newline at end of file diff --git a/plugins/fishlim/irc.c b/plugins/fishlim/irc.c new file mode 100644 index 00000000..3586921b --- /dev/null +++ b/plugins/fishlim/irc.c @@ -0,0 +1,112 @@ +/* + + Copyright (c) 2010 Samuel Lidén Borell <samuel@kodafritt.se> + + Permission is hereby granted, free of charge, to any person obtaining a copy + of this software and associated documentation files (the "Software"), to deal + in the Software without restriction, including without limitation the rights + to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in + all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + THE SOFTWARE. + +*/ + +#include <stdlib.h> +#include <string.h> +#include "irc.h" + +/** + * Parses an IRC message. The words array should contain the message splitted + * at spaces. The prefix and command is extracted from the message, and + * parameters_offset is set to the index of the first parameter. + */ +bool irc_parse_message(const char *words[], + const char **prefix, const char **command, + size_t *parameters_offset) { + size_t w = 1; + if (prefix) *prefix = NULL; + if (command) *command = NULL; + + // See if the message starts with a prefix (sender user) + if (words[w][0] == ':') { + if (prefix) *prefix = &words[w][1]; + w++; + } + + // Check command + if (words[w][0] == '\0') return false; + if (command) *command = words[w]; + w++; + + *parameters_offset = w; + return true; +} + + +/** + * Finds the nick part of a "IRC prefix", which can have any + * of the following forms: + * + * nick + * nick@host + * nick!ident + * nick!ident@host + */ +char *irc_prefix_get_nick(const char *prefix) { + const char *end; + char *nick; + size_t length; + + if (!prefix) return NULL; + + // Find end of nick + end = prefix; + while (*end != '\0' && *end != '!' && *end != '@') end++; + + // Allocate string + length = end - prefix; + nick = malloc(length+1); + if (!nick) return NULL; + + // Copy to string + memcpy(nick, prefix, length); + nick[length] = '\0'; + return nick; +} + + +/** + * Compares two nick names. Return 0 if equal. Otherwise the return value is + * less than zero if a is less than b or greater than zero if a is greater + * than b. + */ +int irc_nick_cmp(const char *a, const char *b) { + char ac; + char bc; + char diff; + for (;;) { + ac = *(a++); + bc = *(b++); + + // Change into IRC uppercase (see RFC 2812 section 2.2) + if (ac >= 'a' && ac <= '~') ac &= ~0x20; + if (bc >= 'a' && bc <= '~') bc &= ~0x20; + + diff = ac - bc; + if (diff) return diff; + if (!ac) return 0; + } +} + + diff --git a/plugins/fishlim/irc.h b/plugins/fishlim/irc.h new file mode 100644 index 00000000..58a58c83 --- /dev/null +++ b/plugins/fishlim/irc.h @@ -0,0 +1,43 @@ +/* + + Copyright (c) 2010 Samuel Lidén Borell <samuel@kodafritt.se> + + Permission is hereby granted, free of charge, to any person obtaining a copy + of this software and associated documentation files (the "Software"), to deal + in the Software without restriction, including without limitation the rights + to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in + all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + THE SOFTWARE. + +*/ + +#ifndef IRC_H +#define IRC_H + +#ifdef _MSC_VER +#include "bool.h" +#else +#include <stdbool.h> +#endif +#include <stddef.h> + +bool irc_parse_message(const char *words[], + const char **prefix, const char **command, + size_t *parameters_offset); +char *irc_prefix_get_nick(const char *prefix); +int irc_nick_cmp(const char *a, const char *b); + +#endif + + diff --git a/plugins/fishlim/keystore.c b/plugins/fishlim/keystore.c new file mode 100644 index 00000000..e628c289 --- /dev/null +++ b/plugins/fishlim/keystore.c @@ -0,0 +1,209 @@ +/* + + Copyright (c) 2010 Samuel Lidén Borell <samuel@kodafritt.se> + + Permission is hereby granted, free of charge, to any person obtaining a copy + of this software and associated documentation files (the "Software"), to deal + in the Software without restriction, including without limitation the rights + to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in + all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + THE SOFTWARE. + +*/ + +#include <glib.h> +#include <stdlib.h> +#include <string.h> +#include "irc.h" +#include "fish.h" +#include "misc.h" +#include "keystore.h" +#include "plugin_xchat.h" + + +static char *keystore_password = NULL; + + +/** + * Opens the key store file: ~/.xchat2/blow.ini + */ +static GKeyFile *getConfigFile() { + gchar *filename = get_config_filename(); + + GKeyFile *keyfile = g_key_file_new(); + g_key_file_load_from_file(keyfile, filename, + G_KEY_FILE_KEEP_COMMENTS | + G_KEY_FILE_KEEP_TRANSLATIONS, NULL); + + g_free(filename); + return keyfile; +} + + +/** + * Returns the key store password, or the default. + */ +static const char *get_keystore_password() { + return (keystore_password != NULL ? + keystore_password : + // Silly default value... + "blowinikey"); +} + + +/** + * Gets a value for a nick/channel from blow.ini. Unlike + * g_key_file_get_string, this function is case insensitive. + */ +static gchar *get_nick_value(GKeyFile *keyfile, const char *nick, const char *item) { + gchar **group; + gchar **groups = g_key_file_get_groups(keyfile, NULL); + gchar *result = NULL; + + for (group = groups; *group != NULL; group++) { + if (!irc_nick_cmp(*group, nick)) { + result = g_key_file_get_string(keyfile, *group, item, NULL); + break; + } + } + + g_strfreev(groups); + return result; +} + + +/** + * Extracts a key from the key store file. + */ +char *keystore_get_key(const char *nick) { + // Get the key + GKeyFile *keyfile = getConfigFile(); + gchar *value = get_nick_value(keyfile, nick, "key"); + g_key_file_free(keyfile); + if (!value) return NULL; + + if (strncmp(value, "+OK ", 4) != 0) { + // Key is stored in plaintext + return import_glib_string(value); + } else { + // Key is encrypted + const char *encrypted = value+4; + const char *password = get_keystore_password(); + char *decrypted = fish_decrypt(password, strlen(password), encrypted); + g_free(value); + return decrypted; + } +} + +/** + * Deletes a nick and the associated key in the key store file. + */ +static bool delete_nick(GKeyFile *keyfile, const char *nick) { + gchar **group; + gchar **groups = g_key_file_get_groups(keyfile, NULL); + bool ok = false; + + for (group = groups; *group != NULL; group++) { + if (!irc_nick_cmp(*group, nick)) { + ok = g_key_file_remove_group(keyfile, *group, NULL); + break; + } + } + + g_strfreev(groups); + return ok; +} + +/** + * Writes the key store file to disk. + */ +static bool save_keystore(GKeyFile *keyfile) { + char *filename; + bool ok; + // Serialize + gsize file_length; + gchar *file_data = g_key_file_to_data(keyfile, &file_length, NULL); + if (!file_data) return false; + + // Write to file + filename = get_config_filename(); + ok = g_file_set_contents(filename, file_data, file_length, NULL); + g_free(filename); + g_free(file_data); + return ok; +} + +/** + * Sets a key in the key store file. + */ +bool keystore_store_key(const char *nick, const char *key) { + const char *password; + char *encrypted; + char *wrapped; + bool ok = false; + GKeyFile *keyfile = getConfigFile(); + + // Remove old key + delete_nick(keyfile, nick); + + // Add new key + password = get_keystore_password(); + if (password) { + // Encrypt the password + encrypted = fish_encrypt(password, strlen(password), key); + if (!encrypted) goto end; + + // Prepend "+OK " + wrapped = g_strconcat("+OK ", encrypted, NULL); + g_free(encrypted); + + // Store encrypted in file + g_key_file_set_string(keyfile, nick, "key", wrapped); + free(wrapped); + } else { + // Store unencrypted in file + g_key_file_set_string(keyfile, nick, "key", key); + } + + // Save key store file + ok = save_keystore(keyfile); + + end: + g_key_file_free(keyfile); + return ok; +} + +/** + * Deletes a nick from the key store. + */ +bool keystore_delete_nick(const char *nick) { + GKeyFile *keyfile = getConfigFile(); + + // Delete entry + bool ok = delete_nick(keyfile, nick); + + // Save + if (ok) save_keystore(keyfile); + + g_key_file_free(keyfile); + return ok; +} + + +void keystore_secure_free(void *ptr, size_t size) { + secure_erase(ptr, size); + free(ptr); +} + + diff --git a/plugins/fishlim/keystore.h b/plugins/fishlim/keystore.h new file mode 100644 index 00000000..edf54992 --- /dev/null +++ b/plugins/fishlim/keystore.h @@ -0,0 +1,42 @@ +/* + + Copyright (c) 2010 Samuel Lidén Borell <samuel@kodafritt.se> + + Permission is hereby granted, free of charge, to any person obtaining a copy + of this software and associated documentation files (the "Software"), to deal + in the Software without restriction, including without limitation the rights + to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in + all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + THE SOFTWARE. + +*/ + +#ifndef KEYSTORE_H +#define KEYSTORE_H + +#ifdef _MSC_VER +#include "bool.h" +#else +#include <stdbool.h> +#endif +#include <stddef.h> + +char *keystore_get_key(const char *nick); +bool keystore_store_key(const char *nick, const char *key); +bool keystore_delete_nick(const char *nick); + +void keystore_secure_free(void *ptr, size_t size); + +#endif + diff --git a/plugins/fishlim/makefile.mak b/plugins/fishlim/makefile.mak new file mode 100644 index 00000000..4d0be66b --- /dev/null +++ b/plugins/fishlim/makefile.mak @@ -0,0 +1,30 @@ +include "..\..\src\makeinc.mak" + +TARGET = xcfishlim.dll + +CFLAGS = $(CFLAGS) + +FISHLIM_OBJECTS = \ +fish.obj \ +irc.obj \ +keystore.obj \ +misc.obj \ +plugin_xchat.obj + +all: $(FISHLIM_OBJECTS) fishlim.def + link $(LDFLAGS) $(LIBS) /dll /out:xcfishlim.dll /def:fishlim.def $(FISHLIM_OBJECTS) + +fishlim.def: + echo EXPORTS > fishlim.def + echo xchat_plugin_init >> fishlim.def + echo xchat_plugin_deinit >> fishlim.def + echo xchat_plugin_get_info >> fishlim.def + +.c.obj: + $(CC) $(CFLAGS) $(GLIB) /I.. /c $< + +clean: + del *.obj + del *.dll + del *.exp + del *.lib diff --git a/plugins/fishlim/misc.c b/plugins/fishlim/misc.c new file mode 100644 index 00000000..2b78961d --- /dev/null +++ b/plugins/fishlim/misc.c @@ -0,0 +1,54 @@ +/* + + Copyright (c) 2010 Samuel Lidén Borell <samuel@kodafritt.se> + + Permission is hereby granted, free of charge, to any person obtaining a copy + of this software and associated documentation files (the "Software"), to deal + in the Software without restriction, including without limitation the rights + to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in + all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + THE SOFTWARE. + +*/ + +#include <glib.h> +#include <stdlib.h> +#include <string.h> +#include "misc.h" + + +void secure_erase(void *ptr, size_t size) { + // "volatile" prevents this code from being optimized away + volatile char* volptr = ptr; + while (size--) *volptr++ = 0; +} + +/** + * Re-allocates a string with the native allocator. + */ +char *import_glib_string(gchar *gstr) { + size_t size; + char *native; + if (g_mem_is_system_malloc()) return gstr; + + size = strlen(gstr)+1; + native = malloc(size); + memcpy(native, gstr, size); + + secure_erase(gstr, size); + g_free(gstr); + return native; +} + + diff --git a/plugins/fishlim/misc.h b/plugins/fishlim/misc.h new file mode 100644 index 00000000..ee4fc5b8 --- /dev/null +++ b/plugins/fishlim/misc.h @@ -0,0 +1,36 @@ +/* + + Copyright (c) 2010 Samuel Lidén Borell <samuel@kodafritt.se> + + Permission is hereby granted, free of charge, to any person obtaining a copy + of this software and associated documentation files (the "Software"), to deal + in the Software without restriction, including without limitation the rights + to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in + all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + THE SOFTWARE. + +*/ + +#ifndef MISC_H +#define MISC_H + +void secure_erase(void *ptr, size_t size); + +#ifdef __G_LIB_H__ +char *import_glib_string(gchar *gstr); +#endif + +#endif + + diff --git a/plugins/fishlim/plugin_xchat.c b/plugins/fishlim/plugin_xchat.c new file mode 100644 index 00000000..5e261116 --- /dev/null +++ b/plugins/fishlim/plugin_xchat.c @@ -0,0 +1,296 @@ +/* + + Copyright (c) 2010-2011 Samuel Lidén Borell <samuel@kodafritt.se> + + Permission is hereby granted, free of charge, to any person obtaining a copy + of this software and associated documentation files (the "Software"), to deal + in the Software without restriction, including without limitation the rights + to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in + all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + THE SOFTWARE. + +*/ + +#include <glib.h> +#include <stdlib.h> +#include <string.h> + +// #pragma GCC visibility push(default) +#ifdef _MSC_VER +#include "xchat-plugin.h" +#else +#include <xchat/xchat-plugin.h> +#endif +#define XCHAT_MAX_WORDS 32 +// #pragma GCC visibility pop + +//#define EXPORT __attribute((visibility("default"))) +//#define EXPORT + +#include "fish.h" +#include "keystore.h" +#include "irc.h" + +static const char plugin_name[] = "FiSHLiM"; +static const char plugin_desc[] = "Encryption plugin for the FiSH protocol. Less is More!"; +static const char plugin_version[] = "0.0.16"; + +static const char usage_setkey[] = "Usage: SETKEY [<nick or #channel>] <password>, sets the key for a channel or nick"; +static const char usage_delkey[] = "Usage: DELKEY <nick or #channel>, deletes the key for a channel or nick"; + +static xchat_plugin *ph; + + +/** + * Returns the path to the key store file. + */ +gchar *get_config_filename() { + return g_build_filename(xchat_get_info(ph, "xchatdirfs"), "blow.ini", NULL); +} + +/** + * Appends data to a string. Returns true if there was sufficient memory. + * Frees *s and returns false if an error occurs. + */ +static bool append(char **s, size_t *length, const char *data) { + size_t datalen = strlen(data); + char *extended = realloc(*s, *length + datalen + 1); + if (!extended) { + free(*s); + return false; + } + memcpy(extended + *length, data, datalen + 1); + *s = extended; + *length += datalen; + return true; +} + + +/*static int handle_debug(char *word[], char *word_eol[], void *userdata) { + xchat_printf(ph, "debug incoming: "); + for (size_t i = 1; word[i] != NULL && word[i][0] != '\0'; i++) { + xchat_printf(ph, ">%s< ", word[i]); + } + xchat_printf(ph, "\n"); + return XCHAT_EAT_NONE; +}*/ + +/** + * Called when a message is to be sent. + */ +static int handle_outgoing(char *word[], char *word_eol[], void *userdata) { + const char *own_nick; + // Encrypt the message if possible + const char *channel = xchat_get_info(ph, "channel"); + char *encrypted = fish_encrypt_for_nick(channel, word_eol[1]); + if (!encrypted) return XCHAT_EAT_NONE; + + // Display message + own_nick = xchat_get_info(ph, "nick"); + xchat_emit_print(ph, "Your Message", own_nick, word_eol[1], NULL); + + // Send message + xchat_commandf(ph, "PRIVMSG %s :+OK %s", channel, encrypted); + + free(encrypted); + return XCHAT_EAT_XCHAT; +} + +/** + * Called when a channel message or private message is received. + */ +static int handle_incoming(char *word[], char *word_eol[], void *userdata) { + const char *prefix; + const char *command; + const char *recipient; + const char *encrypted; + const char *peice; + char *sender_nick; + char *decrypted; + char *message; + size_t w; + size_t ew; + size_t uw; + size_t length; + + if (!irc_parse_message((const char **)word, &prefix, &command, &w)) + return XCHAT_EAT_NONE; + + // Topic (command 332) has an extra parameter + if (!strcmp(command, "332")) w++; + + // Look for encrypted data + for (ew = w+1; ew < XCHAT_MAX_WORDS-1; ew++) { + const char *s = (ew == w+1 ? word[ew]+1 : word[ew]); + if (strcmp(s, "+OK") == 0 || strcmp(s, "mcps") == 0) goto has_encrypted_data; + } + return XCHAT_EAT_NONE; + has_encrypted_data: ; + // Extract sender nick and recipient nick/channel + sender_nick = irc_prefix_get_nick(prefix); + recipient = word[w]; + + // Try to decrypt with these (the keys are searched for in the key store) + encrypted = word[ew+1]; + decrypted = fish_decrypt_from_nick(recipient, encrypted); + if (!decrypted) decrypted = fish_decrypt_from_nick(sender_nick, encrypted); + + // Check for error + if (!decrypted) goto decrypt_error; + + // Build unecrypted message + message = NULL; + length = 0; + if (!append(&message, &length, "RECV")) goto decrypt_error; + + for (uw = 1; uw < XCHAT_MAX_WORDS; uw++) { + if (word[uw][0] != '\0' && !append(&message, &length, " ")) goto decrypt_error; + + if (uw == ew) { + // Add the encrypted data + peice = decrypted; + uw++; // Skip "OK+" + + if (ew == w+1) { + // Prefix with colon, which gets stripped out otherwise + if (!append(&message, &length, ":")) goto decrypt_error; + } + + } else { + // Add unencrypted data (for example, a prefix from a bouncer or bot) + peice = word[uw]; + } + + if (!append(&message, &length, peice)) goto decrypt_error; + } + free(decrypted); + + // Simulate unencrypted message + //xchat_printf(ph, "simulating: %s\n", message); + xchat_command(ph, message); + + free(message); + free(sender_nick); + return XCHAT_EAT_XCHAT; + + decrypt_error: + free(decrypted); + free(sender_nick); + return XCHAT_EAT_NONE; +} + +/** + * Command handler for /setkey + */ +static int handle_setkey(char *word[], char *word_eol[], void *userdata) { + const char *nick; + const char *key; + + // Check syntax + if (*word[2] == '\0') { + xchat_printf(ph, "%s\n", usage_setkey); + return XCHAT_EAT_XCHAT; + } + + if (*word[3] == '\0') { + // /setkey password + nick = xchat_get_info(ph, "channel"); + key = word_eol[2]; + } else { + // /setkey #channel password + nick = word[2]; + key = word_eol[3]; + } + + // Set password + if (keystore_store_key(nick, key)) { + xchat_printf(ph, "Stored key for %s\n", nick); + } else { + xchat_printf(ph, "\00305Failed to store key in blow.ini\n", nick, key); + } + + return XCHAT_EAT_XCHAT; +} + +/** + * Command handler for /delkey + */ +static int handle_delkey(char *word[], char *word_eol[], void *userdata) { + const char *nick; + + // Check syntax + if (*word[2] == '\0' || *word[3] != '\0') { + xchat_printf(ph, "%s\n", usage_delkey); + return XCHAT_EAT_XCHAT; + } + + nick = word_eol[2]; + + // Delete the given nick from the key store + if (keystore_delete_nick(nick)) { + xchat_printf(ph, "Deleted key for %s\n", nick); + } else { + xchat_printf(ph, "\00305Failed to delete key in blow.ini!\n", nick); + } + + return XCHAT_EAT_XCHAT; +} + +/** + * Returns the plugin name version information. + */ +void xchat_plugin_get_info(const char **name, const char **desc, + const char **version, void **reserved) { + *name = plugin_name; + *desc = plugin_desc; + *version = plugin_version; +} + +/** + * Plugin entry point. + */ +int xchat_plugin_init(xchat_plugin *plugin_handle, + const char **name, + const char **desc, + const char **version, + char *arg) { + ph = plugin_handle; + + /* Send our info to XChat */ + *name = plugin_name; + *desc = plugin_desc; + *version = plugin_version; + + /* Register commands */ + xchat_hook_command(ph, "SETKEY", XCHAT_PRI_NORM, handle_setkey, usage_setkey, NULL); + xchat_hook_command(ph, "DELKEY", XCHAT_PRI_NORM, handle_delkey, usage_delkey, NULL); + + /* Add handlers */ + xchat_hook_command(ph, "", XCHAT_PRI_NORM, handle_outgoing, NULL, NULL); + xchat_hook_server(ph, "NOTICE", XCHAT_PRI_NORM, handle_incoming, NULL); + xchat_hook_server(ph, "PRIVMSG", XCHAT_PRI_NORM, handle_incoming, NULL); + //xchat_hook_server(ph, "RAW LINE", XCHAT_PRI_NORM, handle_debug, NULL); + xchat_hook_server(ph, "TOPIC", XCHAT_PRI_NORM, handle_incoming, NULL); + xchat_hook_server(ph, "332", XCHAT_PRI_NORM, handle_incoming, NULL); + + xchat_printf(ph, "%s plugin loaded\n", plugin_name); + /* Return success */ + return 1; +} + +int xchat_plugin_deinit(void) { + xchat_printf(ph, "%s plugin unloaded\n", plugin_name); + return 1; +} + diff --git a/plugins/fishlim/plugin_xchat.h b/plugins/fishlim/plugin_xchat.h new file mode 100644 index 00000000..d606526d --- /dev/null +++ b/plugins/fishlim/plugin_xchat.h @@ -0,0 +1,31 @@ +/* + + Copyright (c) 2010 Samuel Lidén Borell <samuel@kodafritt.se> + + Permission is hereby granted, free of charge, to any person obtaining a copy + of this software and associated documentation files (the "Software"), to deal + in the Software without restriction, including without limitation the rights + to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in + all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + THE SOFTWARE. + +*/ + +#ifndef XCHAT_PLUGIN_H +#define XCHAT_PLUGIN_H + +gchar *get_config_filename(); + +#endif + diff --git a/plugins/fishlim/test.c b/plugins/fishlim/test.c new file mode 100644 index 00000000..9e6a1f5f --- /dev/null +++ b/plugins/fishlim/test.c @@ -0,0 +1,91 @@ +/* + + Copyright (c) 2010 Samuel Lidén Borell <samuel@kodafritt.se> + + Permission is hereby granted, free of charge, to any person obtaining a copy + of this software and associated documentation files (the "Software"), to deal + in the Software without restriction, including without limitation the rights + to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in + all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + THE SOFTWARE. + +*/ + +#include <glib.h> +#include <stdio.h> +#include <string.h> +#include "fish.h" + +// We can't use the XChat plugin API from here... +gchar *get_config_filename() { + const gchar *homedir = g_get_home_dir(); + return g_build_filename(homedir, ".xchat2", "blow.ini", NULL); +} + + +static int decrypt(int nick_count, char *nicks[]) { + char encrypted[8192]; + while (fgets(encrypted, sizeof(encrypted), stdin)) { + char *msg; + for (int i = 0; i < nick_count; i++) { + msg = fish_decrypt_from_nick(nicks[i], encrypted); + if (msg) goto success; + } + fprintf(stderr, "None of the recipients were found in the key store!\n"); + return 1; + success: + fprintf(stderr, "Decrypted text >>>%s<<<\n", msg); + } + return 0; +} + +static int encrypt(int nick_count, char *nicks[]) { + char message[8192]; + while (fgets(message, sizeof(message), stdin)) { + // Remove newline character + char *newline = strchr(message, '\n'); + if (newline) *newline = '\0'; + + bool error = false; + for (int i = 0; i < nick_count; i++) { + char *encrypted = fish_encrypt_for_nick(nicks[i], message); + if (encrypted) { + fprintf(stderr, "Encrypted [%s]: >>>%s<<<\n", nicks[i], encrypted); + } else { + error = true; + } + } + + if (error) { + fprintf(stderr, "Some of the recipients were't found in the key store!\n"); + return 1; + } + } + return 0; +} + +int main(int argc, char *argv[]) { + if (argc < 2) { + fprintf(stderr, "usage: %s [-e] nick...\n", argv[0]); + return 2; + } + + if (strcmp(argv[1], "-e") == 0) { + return encrypt(argc-2, &argv[2]); + } else { + return decrypt(argc-1, &argv[1]); + } +} + + diff --git a/plugins/gtkpref/gtkpref.c b/plugins/gtkpref/gtkpref.c new file mode 100644 index 00000000..5cc754bf --- /dev/null +++ b/plugins/gtkpref/gtkpref.c @@ -0,0 +1,69 @@ +/* XChat-WDK + * Copyright (c) 2011 Berke Viktor. + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ + +#include <windows.h> + +#include "xchat-plugin.h" + +static xchat_plugin *ph; /* plugin handle */ + +static void +launch_tool () +{ + STARTUPINFO si; + PROCESS_INFORMATION pi; + + ZeroMemory (&si, sizeof (si)); + si.cb = sizeof (si); + ZeroMemory (&pi, sizeof (pi)); + + if (!CreateProcess ( NULL, "gtk2-prefs.exe", NULL, NULL, FALSE, 0, NULL, NULL, &si, &pi)) + { + xchat_print (ph, "Error launching the GTK+ Preference Tool! Maybe the executable is missing?"); + } + + CloseHandle (pi.hProcess); + CloseHandle (pi.hThread); +} + +int +xchat_plugin_init (xchat_plugin *plugin_handle, char **plugin_name, char **plugin_desc, char **plugin_version, char *arg) +{ + ph = plugin_handle; + + *plugin_name = "GTKPref"; + *plugin_desc = "GTK+ Preference Tool Launcher"; + *plugin_version = "1.0"; + + xchat_hook_command (ph, "GTKPREF", XCHAT_PRI_NORM, launch_tool, 0, 0); + xchat_command (ph, "MENU -ietc\\gtkpref.png ADD \"Settings/GTK+ Preferences\" \"GTKPREF\""); + + return 1; /* return 1 for success */ +} + +int +xchat_plugin_deinit (void) +{ + xchat_command (ph, "MENU DEL \"Settings/GTK+ Preferences\""); + + return 1; +} diff --git a/plugins/gtkpref/makefile.mak b/plugins/gtkpref/makefile.mak new file mode 100644 index 00000000..e2292365 --- /dev/null +++ b/plugins/gtkpref/makefile.mak @@ -0,0 +1,18 @@ +include "..\..\src\makeinc.mak" + +all: gtkpref.obj gtkpref.def + link $(LDFLAGS) $(LIBS) /dll /out:xcgtkpref.dll /def:gtkpref.def gtkpref.obj + +gtkpref.def: + echo EXPORTS > gtkpref.def + echo xchat_plugin_init >> gtkpref.def + echo xchat_plugin_deinit >> gtkpref.def + +gtkpref.obj: gtkpref.c makefile.mak + cl $(CFLAGS) $(GLIB) /I.. gtkpref.c + +clean: + del *.obj + del *.dll + del *.exp + del *.lib diff --git a/plugins/lua/lua.c b/plugins/lua/lua.c new file mode 100644 index 00000000..6ccddf2c --- /dev/null +++ b/plugins/lua/lua.c @@ -0,0 +1,1882 @@ +/* + * X-Chat 2.0 LUA Plugin + * + * Copyright (c) 2007 Hanno Hecker + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; version 2 of the License. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA + */ +/* + * $Id: lua.c 91 2007-06-09 18:44:03Z vetinari $ + * $Revision: 91 $ + * $Date: 2007-06-09 20:44:03 +0200 (Szo, 09 jún. 2007) $ + */ +/* + * TODO: + * * compile (was OK)/run on IRIX + * ? localize error msgs? ... maybe later + * ? make xchat.print() like print() which does an tostring() on + * everything it gets? + * ? add /LUA -s <code>? ... add a new script from cmdline... this state + * is not removed after the pcall(), but prints a name, which may + * be used to unload this virtual script. ... no xchat_register(), + * xchat_init() should be needed + * ... don't disable xchat.hook_* for this + * ? timer name per state/script and not per plugin? + */ +#define LXC_NAME "Lua" +#define LXC_DESC "Lua scripting interface" +#define LXC_VERSION "0.7 (r91)" + +#include <stdlib.h> +#include <stdio.h> +#include <string.h> +#include <sys/types.h> +#include <sys/stat.h> +#include <fcntl.h> +#include <errno.h> +#include <ctype.h> + +#ifdef _WIN32 +#include <direct.h> /* for getcwd */ +#include "../../src/dirent/dirent-win32.h" +#endif + +#if !( defined(_WIN32) || defined(LXC_XCHAT_GETTEXT) ) +# include <libintl.h> +#endif + +#ifndef PATH_MAX /* hurd */ +# define PATH_MAX 1024 +#endif + +#include <lua.h> +#include <lauxlib.h> +#include <lualib.h> + +#define lua_pop(L,n) lua_settop(L, -(n)-1) + +#include "xchat-plugin.h" + +static xchat_plugin *ph; /* plugin handle */ + +#define LXC_STRIP_COLOR 1 +#define LXC_STRIP_ATTR 2 +#define LXC_STRIP_ALL (LXC_STRIP_COLOR|LXC_STRIP_ATTR) + +/* registered hooks */ +struct lxc_hooks { + const char *name; + xchat_hook *hook; + struct lxc_hooks *next; +}; + +/* single linked list of all lua states^Wscripts ;-) */ +struct lxc_States { + lua_State *state; /* the lua state of the script */ + char file[PATH_MAX+1]; /* the file name of the script */ + struct lxc_hooks *hooks; /* all hooks this script registered */ + void *gui; /* the gui entry in windows->plugins and scripts... */ + struct lxc_States *next; +}; + +static struct lxc_States *lxc_states = NULL; + +/* user/script supplied data for a callback */ +struct lxc_userdata { + int idx; /* table index */ + int type; /* lua type: */ + const char *string; /* only strings, ... */ + double num; /* numbers and booleans are supported */ + struct lxc_userdata *next; +}; + +/* callback data */ +struct lxc_cbdata { + lua_State *state; + const char *func; + xchat_hook *hook; /* timer ... */ + struct lxc_userdata *data; +}; + +static char lxc_event_name[1024] = "\0"; + +static int lxc_run_hook(char *word[], char *word_eol[], void *data); +static int lxc_run_print(char *word[], void *data); +static int lxc_run_timer(void *data); + +static int lxc_hook_command(lua_State *L); +static int lxc_hook_server(lua_State *L); +static int lxc_hook_print(lua_State *L); +static int lxc_event(lua_State *L); +static int lxc_hook_timer(lua_State *L); +static int lxc_unhook(lua_State *L); + +static int lxc_command(lua_State *L); +static int lxc_print(lua_State *L); +static int lxc_emit_print(lua_State *L); +static int lxc_send_modes(lua_State *L); +static int lxc_find_context(lua_State *L); +static int lxc_get_context(lua_State *L); +static int lxc_get_info(lua_State *L); +static int lxc_get_prefs(lua_State *L); +static int lxc_set_context(lua_State *L); +static int lxc_nickcmp(lua_State *L); + +static int lxc_list_get(lua_State *L); +static int lxc_list_fields(lua_State *L); +static int lxc_gettext(lua_State *L); + +static int lxc_bits(lua_State *L); + +static luaL_reg lxc_functions[] = { + {"hook_command", lxc_hook_command }, +/* TODO: + {"hook_fd", lxc_hook_fd }, +*/ + {"hook_print", lxc_hook_print }, + {"hook_server", lxc_hook_server }, + {"hook_timer", lxc_hook_timer }, + {"unhook", lxc_unhook }, + + {"event", lxc_event }, + + {"command", lxc_command }, + {"print", lxc_print }, + {"emit_print", lxc_emit_print }, + {"send_modes", lxc_send_modes }, + {"find_context", lxc_find_context }, + {"get_context", lxc_get_context }, + {"get_info", lxc_get_info }, + {"get_prefs", lxc_get_prefs }, + {"set_context", lxc_set_context }, + + {"nickcmp", lxc_nickcmp }, + + {"list_get", lxc_list_get }, + {"list_fields", lxc_list_fields }, + + {"gettext", lxc_gettext}, +/* helper function for bit flags */ + {"bits", lxc_bits }, + {NULL, NULL} +}; + +static struct { + const char *name; + long value; +} lxc_consts[] = { + {"EAT_NONE", XCHAT_EAT_NONE}, + {"EAT_XCHAT", XCHAT_EAT_XCHAT}, + {"EAT_PLUGIN", XCHAT_EAT_PLUGIN}, + {"EAT_ALL", XCHAT_EAT_ALL}, + +/* unused until hook_fd is done + {"FD_READ", XCHAT_FD_READ}, + {"FD_WRITE", XCHAT_FD_WRITE}, + {"FD_EXCEPTION", XCHAT_FD_EXCEPTION}, + {"FD_NOTSOCKET", XCHAT_FD_NOTSOCKET}, + */ + + {"PRI_HIGHEST", XCHAT_PRI_HIGHEST}, + {"PRI_HIGH", XCHAT_PRI_HIGH}, + {"PRI_NORM", XCHAT_PRI_NORM}, + {"PRI_LOW", XCHAT_PRI_LOW}, + {"PRI_LOWEST", XCHAT_PRI_LOWEST}, + + /* for: clean = xchat.strip(dirty, xchat.STRIP_ALL) */ + {"STRIP_COLOR", LXC_STRIP_COLOR}, + {"STRIP_ATTR", LXC_STRIP_ATTR}, + {"STRIP_ALL", LXC_STRIP_ALL}, + + /* for xchat.commandf("GUI COLOR %d", xchat.TAB_HILIGHT) */ + {"TAB_DEFAULT", 0}, + {"TAB_NEWDATA", 1}, + {"TAB_NEWMSG", 2}, + {"TAB_HILIGHT", 3}, + + {NULL, 0} +}; + + +#ifdef DEBUG +static void stackDump (lua_State *L, const char *msg) { + int i, t; + int top = lua_gettop(L); + + fprintf(stderr, "%s\n", msg); + for (i = 1; i <= top; i++) { /* repeat for each level */ + t = lua_type(L, i); + switch (t) { + + case LUA_TSTRING: /* strings */ + fprintf(stderr, "`%s'", lua_tostring(L, i)); + break; + + case LUA_TBOOLEAN: /* booleans */ + fprintf(stderr, lua_toboolean(L, i) ? "true" : "false"); + break; + + case LUA_TNUMBER: /* numbers */ + fprintf(stderr, "%g", lua_tonumber(L, i)); + break; + + default: /* other values */ + fprintf(stderr, "%s", lua_typename(L, t)); + break; + + } + fprintf(stderr, " "); /* put a separator */ + } + fprintf(stderr, "\n"); /* end the listing */ +} +#endif /* DEBUG */ + +static int lxc__newindex(lua_State *L) +{ + int i; + const char *name = lua_tostring(L, 2); + + luaL_getmetatable(L, "xchat"); /* 4 */ + + lua_pushnil(L); /* 5 */ + while (lua_next(L, 4) != 0) { + if ((lua_type(L, -2) == LUA_TSTRING) + && strcmp("__index", lua_tostring(L, -2)) == 0) + break; /* now __index is 5, table 6 */ + lua_pop(L, 1); + } + + lua_pushnil(L); + while (lua_next(L, 6) != 0) { + if ((lua_type(L, -2) == LUA_TSTRING) + && strcmp(name, lua_tostring(L, -2)) == 0) { + for (i=0; lxc_consts[i].name; i++) { + if (strcmp(name, lxc_consts[i].name) == 0) { + luaL_error(L, + "`xchat.%s' is a readonly constant", lua_tostring(L, 2)); + return 0; + } + } + } + lua_pop(L, 1); + } + + lua_pushvalue(L, 2); + lua_pushvalue(L, 3); + lua_rawset(L, 6); + + lua_settop(L, 1); + return 0; +} + +static int luaopen_xchat(lua_State *L) +{ + int i; +/* + * wrappers for xchat.printf() and xchat.commandf() + * ... xchat.strip + */ +#define LXC_WRAPPERS "function xchat.printf(...)\n" \ + " xchat.print(string.format(unpack(arg)))\n" \ + "end\n" \ + "function xchat.commandf(...)\n" \ + " xchat.command(string.format(unpack(arg)))\n" \ + "end\n" \ + "function xchat.strip(str, flags)\n" \ + " if flags == nil then\n" \ + " flags = xchat.STRIP_ALL\n" \ + " end\n" \ + " local bits = xchat.bits(flags)\n" \ + " if bits[1] then\n" \ + " str = string.gsub(\n" \ + " string.gsub(str, \"\\3%d%d?,%d%d?\", \"\"),\n" \ + " \"\\3%d%d?\", \"\")\n" \ + " end\n" \ + " if bits[2] then\n" \ + " -- bold, beep, reset, reverse, underline\n" \ + " str = string.gsub(str,\n" \ + " \"[\\2\\7\\15\\22\\31]\", \"\")\n" \ + " end\n" \ + " return str\n" \ + "end\n" + +#if defined(LUA_VERSION_NUM) && (LUA_VERSION_NUM >= 501) + luaL_register(L, "xchat", lxc_functions); + (void)luaL_dostring(L, LXC_WRAPPERS); +#else + luaL_openlib(L, "xchat", lxc_functions, 0); + lua_dostring(L, LXC_WRAPPERS); +#endif + + luaL_newmetatable(L, "xchat"); + + lua_pushliteral(L, "__index"); + lua_newtable(L); + + lua_pushstring(L, "ARCH"); +#ifdef _WIN32 + lua_pushstring(L, "Windows"); +#else + lua_pushstring(L, "Unix"); +#endif + lua_settable(L, -3); /* add to table __index */ + + for (i=0; lxc_consts[i].name; i++) { + lua_pushstring(L, lxc_consts[i].name); + lua_pushnumber(L, lxc_consts[i].value); + lua_settable(L, -3); /* add to table __index */ + } + lua_settable(L, -3); /* add to metatable */ + + lua_pushliteral(L, "__newindex"); + lua_pushcfunction(L, lxc__newindex); + lua_settable(L, -3); +/* + lua_pushliteral(L, "__metatable"); + lua_pushstring(L, "nothing to see here, move along"); + lua_settable(L, -3); +*/ + lua_setmetatable(L, -2); + lua_pop(L, 1); + return 1; +} + +lua_State *lxc_new_state() +{ +#if defined(LUA_VERSION_NUM) && (LUA_VERSION_NUM >= 501) + lua_State *L = luaL_newstate(); /* opens Lua */ + luaL_openlibs(L); +#else + lua_State *L = lua_open(); /* opens Lua */ + luaopen_base(L); /* opens the basic library */ + luaopen_table(L); /* opens the table library */ + luaopen_io(L); /* opens the I/O library */ + luaopen_string(L); /* opens the string lib. */ + luaopen_math(L); /* opens the math lib. */ +#endif + + luaopen_xchat(L); + return L; +} + +static int +lxc_load_file(const char *script) +{ + lua_State *L; + struct lxc_States *state; /* pointer to lua states list */ + struct lxc_States *st; /* pointer to lua states list */ + + L = lxc_new_state(); + state = malloc(sizeof(struct lxc_States)); + if (state == NULL) { + xchat_printf(ph, "malloc() failed: %s\n", strerror(errno)); + lua_close(L); + return 0; + } + + state->state = L; + snprintf(state->file, PATH_MAX, script); + state->next = NULL; + state->hooks = NULL; + state->gui = NULL; + + if (luaL_loadfile(L, script) || lua_pcall(L, 0, 0, 0)) { + xchat_printf(ph, "Lua plugin: error loading script %s", + lua_tostring(L, -1)); + lua_close(L); + free(state); + return 0; + } + + if (!lxc_states) + lxc_states = state; + else { + st = lxc_states; + while (st->next) + st = st->next; + st->next = state; + } + + return 1; +} + +static void +lxc_autoload_from_path(const char *path) +{ + DIR *dir; + struct dirent *ent; + char *file; + int len; + /* xchat_printf(ph, "loading from %s\n", path); */ + dir = opendir(path); + if (dir) { + while ((ent = readdir(dir))) { + len = strlen(ent->d_name); + if (len > 4 && strcasecmp(".lua", ent->d_name + len - 4) == 0) { + file = malloc(len + strlen(path) + 2); + if (file == NULL) { + xchat_printf(ph, "lxc_autoload_from_path(): malloc failed: %s", + strerror(errno)); + break; + } + sprintf(file, "%s/%s", path, ent->d_name); + (void)lxc_load_file((const char *)file); + free(file); + } + } + closedir(dir); + } +} + +void lxc_unload_script(struct lxc_States *state) +{ + struct lxc_hooks *hooks, *h; + struct lxc_cbdata *cb; + struct lxc_userdata *ud, *u; + lua_State *L = state->state; + + lua_pushstring(L, "xchat_unload"); + lua_gettable(L, LUA_GLOBALSINDEX); + if (lua_type(L, -1) == LUA_TFUNCTION) { + if (lua_pcall(L, 0, 0, 0)) { + xchat_printf(ph, "Lua plugin: error while unloading script %s", + lua_tostring(L, -1)); + lua_pop(L, 1); + } + } + + if (state->gui) + xchat_plugingui_remove(ph, state->gui); + state->gui = NULL; + + hooks = state->hooks; + while (hooks) { + h = hooks; + hooks = hooks->next; + + cb = xchat_unhook(ph, h->hook); + if (cb) { + ud = cb->data; + while (ud) { + u = ud; + ud = ud->next; + free(u); + } + free(cb); + } + + free(h); + } + lua_close(state->state); +} + + +static int lxc_cb_load(char *word[], char *word_eol[], void *userdata) +{ + int len; + struct lxc_States *state; + lua_State *L; + const char *name, *desc, *vers; + const char *xdir = ""; + char *buf; + char file[PATH_MAX+1]; + struct stat *st; + + if (word_eol[2][0] == 0) + return XCHAT_EAT_NONE; + + buf = malloc(PATH_MAX + 1); + if (!buf) { + xchat_printf(ph, "malloc() failed: %s\n", strerror(errno)); + return XCHAT_EAT_NONE; + } + + st = malloc(sizeof(struct stat)); + if (!st) { + xchat_printf(ph, "malloc() failed: %s\n", strerror(errno)); + free(buf); + return XCHAT_EAT_NONE; + } + + len = strlen(word[2]); + if (len > 4 && strcasecmp (".lua", word[2] + len - 4) == 0) { +#ifdef WIN32 + if (strrchr(word[2], '\\') != NULL) +#else + if (strrchr(word[2], '/') != NULL) +#endif + strncpy(file, word[2], PATH_MAX); + else { + if (stat(word[2], st) == 0) + xdir = getcwd(buf, PATH_MAX); + else { + xdir = xchat_get_info(ph, "xchatdirfs"); + if (!xdir) /* xchatdirfs is new for 2.0.9, will fail on older */ + xdir = xchat_get_info (ph, "xchatdir"); + } + snprintf(file, PATH_MAX, "%s/%s", xdir, word[2]); + } + + if (lxc_load_file((const char *)file) == 0) { + free(st); + free(buf); + return XCHAT_EAT_ALL; + } + + state = lxc_states; + while (state) { + if (state->next == NULL) { + L = state->state; + + lua_pushstring(L, "xchat_register"); + lua_gettable(L, LUA_GLOBALSINDEX); + if (lua_pcall(L, 0, 3, 0)) { + xchat_printf(ph, "Lua plugin: error registering script %s", + lua_tostring(L, -1)); + lua_pop(L, 1); + free(st); + free(buf); + return XCHAT_EAT_ALL; + } + + name = lua_tostring(L, -3); + desc = lua_tostring(L, -2); + vers = lua_tostring(L, -1); + lua_pop(L, 4); /* func + 3 ret value */ + state->gui = xchat_plugingui_add(ph, state->file, + name, desc, vers, NULL + ); + + lua_pushstring(L, "xchat_init"); + lua_gettable(L, LUA_GLOBALSINDEX); + if (lua_type(L, -1) != LUA_TFUNCTION) + lua_pop(L, 1); + else { + if (lua_pcall(L, 0, 0, 0)) { + xchat_printf(ph, + "Lua plugin: error calling xchat_init() %s", + lua_tostring(L, -1)); + lua_pop(L, 1); + } + } + free(st); + free(buf); + return XCHAT_EAT_ALL; + } + state = state->next; + } + } + free(st); + free(buf); + return XCHAT_EAT_NONE; +} + +static int lxc_cb_unload(char *word[], char *word_eol[], void *userdata) +{ + int len; + struct lxc_States *state; + struct lxc_States *prev = NULL; + char *file; + + if (word_eol[2][0] == 0) + return XCHAT_EAT_NONE; + + len = strlen(word[2]); + if (len > 4 && strcasecmp(".lua", word[2] + len - 4) == 0) { + state = lxc_states; + while (state) { + /* + * state->file is the full or relative path, always with a '/' inside, + * even if loaded via '/LOAD script.lua'. So strrchr() will never + * be NULL. + * ... we just inspect the script name w/o path to see if it's the + * right one to unload + */ + file = strrchr(state->file, '/') + 1; + if ((strcmp(state->file, word[2]) == 0) + || (strcasecmp(file, word[2]) == 0)) { + lxc_unload_script(state); + if (prev) + prev->next = state->next; + else + lxc_states = state->next; + xchat_printf(ph, "Lua script %s unloaded", file); + free(state); + return XCHAT_EAT_ALL; + } + prev = state; + state = state->next; + } + } + return XCHAT_EAT_NONE; +} + +static int lxc_cb_lua(char *word[], char *word_eol[], void *userdata) +{ + lua_State *L = lxc_new_state(); + if (word[2][0] == '\0') { + xchat_printf(ph, "LUA: Usage: /LUA LUA_CODE... execute LUA_CODE"); + return XCHAT_EAT_ALL; + } + if (luaL_loadbuffer(L, word_eol[2], strlen(word_eol[2]), "/LUA")) { + xchat_printf(ph, "LUA: error loading line %s", lua_tostring(L, -1)); + lua_pop(L, 1); + } + +#define LXC_HOOK_DISABLE "xchat.hook_command = nil\n" \ + "xchat.hook_server = nil\n" \ + "xchat.hook_print = nil\n" \ + "xchat.hook_timer = nil\n" + +#if defined(LUA_VERSION_NUM) && (LUA_VERSION_NUM >= 501) + (void)luaL_dostring(L, LXC_HOOK_DISABLE); +#else + lua_dostring(L, LXC_HOOK_DISABLE); +#endif + + if (lua_pcall(L, 0, 0, 0)) { + xchat_printf(ph, "LUA: error executing line %s", lua_tostring(L, -1)); + lua_pop(L, 1); + } + + lua_close(L); + return XCHAT_EAT_ALL; +} + +int xchat_plugin_init(xchat_plugin *plugin_handle, + char **plugin_name, + char **plugin_desc, + char **plugin_version, + char *arg) +{ + struct lxc_States *state; + lua_State *L; + const char *xdir; + const char *name, *desc, *vers; + /* we need to save this for use with any xchat_* functions */ + ph = plugin_handle; + + /* tell xchat our info */ + *plugin_name = LXC_NAME; + *plugin_desc = LXC_DESC; + *plugin_version = LXC_VERSION; + + xchat_hook_command(ph, "LOAD", XCHAT_PRI_NORM, lxc_cb_load, NULL, NULL); + xchat_hook_command(ph, "UNLOAD", XCHAT_PRI_NORM, lxc_cb_unload, NULL, NULL); + xchat_hook_command(ph, "LUA", XCHAT_PRI_NORM, lxc_cb_lua, "Usage: LUA <code>, executes <code> in a new lua state", NULL); + + xdir = xchat_get_info(ph, "xchatdirfs"); + if (!xdir) /* xchatdirfs is new for 2.0.9, will fail on older */ + xdir = xchat_get_info (ph, "xchatdir"); + + lxc_autoload_from_path(xdir); + + if (!lxc_states) /* no scripts loaded */ + return 1; + + state = lxc_states; + while (state) { + L = state->state; + lua_pushstring(L, "xchat_register"); + lua_gettable(L, LUA_GLOBALSINDEX); + if (lua_pcall(L, 0, 3, 0)) { + xchat_printf(ph, "Lua plugin: error registering script %s", + lua_tostring(L, -1)); + lua_pop(L, 1); + state = state->next; + continue; + } + + name = lua_tostring(L, -3); + desc = lua_tostring(L, -2); + vers = lua_tostring(L, -1); + lua_pop(L, 4); /* func + 3 ret value */ + state->gui = xchat_plugingui_add(ph, state->file, name, desc, vers, NULL); + + lua_pushstring(L, "xchat_init"); + lua_gettable(L, LUA_GLOBALSINDEX); + if (lua_type(L, -1) != LUA_TFUNCTION) + lua_pop(L, 1); + else { + if (lua_pcall(L, 0, 0, 0)) { + xchat_printf(ph, "Lua plugin: error calling xchat_init() %s", + lua_tostring(L, -1)); + lua_pop(L, 1); + } + } + state = state->next; + } + xchat_printf(ph, "Lua interface (v%s) loaded", LXC_VERSION); + return 1; +} + +int xchat_plugin_deinit(xchat_plugin *plug_handle) +{ + struct lxc_States *state, *st; + + state = lxc_states; + while (state) { + lxc_unload_script(state); + xchat_printf(ph, "Lua script %s unloaded", state->file); + st = state; + state = state->next; + free(st); + } + xchat_printf(plug_handle, "Lua plugin v%s removed", LXC_VERSION); + return 1; +} + +/* + * lua: func_name(word, word_eol, data) + * desc: your previously hooked callback function for hook_command() and + * hook_server(), you must return one of the xchat.EAT_* constants + * ret: none + * args: + * * word (table): the incoming line split into words (max 32) + * * word_eol (table): + * for both see + * http://xchat.org/docs/plugin20.html#word + * * data (table): the data table you passed to the hook_command() / + * hook_server() as 5th arg + */ +static int lxc_run_hook(char *word[], char *word_eol[], void *data) +{ + struct lxc_cbdata *cb = data; + lua_State *L = cb->state; + struct lxc_userdata *ud = cb->data; + struct lxc_userdata *u; + int i; + lua_pushstring(L, cb->func); + lua_gettable(L, LUA_GLOBALSINDEX); + + strcpy(lxc_event_name, word[0]); + lua_newtable(L); + for (i=1; i<=31 && word[i][0]; i++) { + lua_pushnumber(L, i); + lua_pushstring(L, word[i]); + lua_settable(L, -3); + } + + lua_newtable(L); + for (i=1; i<=31 && word_eol[i][0]; i++) { + lua_pushnumber(L, i); + lua_pushstring(L, word_eol[i]); + lua_settable(L, -3); + } + + lua_newtable(L); + u = ud; + while (u) { + lua_pushnumber(L, u->idx); + switch (u->type) { + case LUA_TSTRING: + lua_pushstring(L, u->string); + break; + case LUA_TNUMBER: + lua_pushnumber(L, u->num); + break; + case LUA_TBOOLEAN: + lua_pushboolean(L, (((int)u->num == 0) ? 0 : 1)); + break; + default: /* LUA_TNIL or others */ + lua_pushnil(L); + break; + } + lua_settable(L, -3); + u = u->next; + } + + if (lua_pcall(L, 3, 1, 0)) { + xchat_printf(ph, "failed to call callback for '%s': %s", + word[1], lua_tostring(L, -1) + ); + lua_pop(L, 1); + return XCHAT_EAT_NONE; + } + + if (lua_type(L, -1) != LUA_TNUMBER) { + xchat_printf(ph, "callback for '%s' did not return number...", word[1]); + return XCHAT_EAT_NONE; + } + + i = (int)lua_tonumber(L, -1); + lua_pop(L, 1); + return i; +} + +static int lxc_get_userdata(int pos, struct lxc_cbdata *cb) +{ + struct lxc_userdata *ud, *u; + lua_State *L = cb->state; + int i, t; + + t = lua_type(L, pos); + if (t == LUA_TNIL) + return 1; + if (t != LUA_TTABLE) + return 0; + + i = 1; + while (1) { + lua_pushnumber(L, i); + lua_gettable(L, -2); + + t = lua_type(L, -1); + if (t == LUA_TNIL) { + lua_pop(L, 1); + break; + } + + ud = malloc(sizeof(struct lxc_userdata)); + if (!ud) { + xchat_printf(ph, "lxc_get_userdata(): failed to malloc: %s", + strerror(errno)); + if (cb->data != NULL) { + ud = cb->data; + while (ud) { + u = ud; + ud = ud->next; + free(u); + } + } + /* free(cb); NO! */ + lua_pushnil(L); + return 0; + } + ud->idx = i; + ud->next = NULL; + switch (t) { + case LUA_TSTRING: + ud->string = lua_tostring(L, -1); + ud->type = LUA_TSTRING; + break; + case LUA_TNUMBER: + ud->num = lua_tonumber(L, -1); + ud->type = LUA_TNUMBER; + break; + case LUA_TBOOLEAN: + ud->num = (double)lua_toboolean(L, -1); + ud->type = LUA_TBOOLEAN; + break; + default: + ud->type = LUA_TNIL; + break; + } + lua_pop(L, 1); + + if (cb->data == NULL) + cb->data = ud; + else { + u = cb->data; + while (u->next) + u = u->next; + u->next = ud; + } + i++; + } /* END while (1) */ + return 1; +} + +/* + * lua: xchat.hook_command(name, func_name, prio, help_str, data) + * desc: Adds a new /command. This allows your program to handle commands + * entered at the input box. To capture text without a "/" at the start + * (non-commands), you may hook a special name of "". i.e + * xchat.hook_command( "", ...) + * Starting from version 2.6.8, commands hooked that begin with a + * period ('.') will be hidden in /HELP and /HELP -l. + * ret: true... or false if something went wrong while registering hook + * args: + * * name (string): the name of the new command + * * func_name (string): the lua function to be called when command is + * entered + * * prio (number): use one of the xchat.PRIO_* + * * help_str (string): help for the new command... use nil for no help + * * data (table): table with strings, numbers and booleans, which will + * be passed to func_name as last argument. + */ +static int lxc_hook_command(lua_State *L) +{ + xchat_hook *hook; + const char *help, *command, *func; + double prio; + struct lxc_hooks *hooks, *h; + struct lxc_States *st; + struct lxc_cbdata *cb; + + + if (lua_gettop(L) < 5) /* expand to five args if necessary */ + lua_settop(L, 5); + + cb = malloc(sizeof(struct lxc_cbdata)); + if (!cb) { + xchat_printf(ph, "lxc_hook_command(): failed to malloc: %s", + strerror(errno)); + lua_pushboolean(L, 0); + return 1; + } + + cb->state = L; + cb->data = NULL; + + command = luaL_checkstring(L, 1); + func = luaL_checkstring(L, 2); + cb->func = func; + cb->hook = NULL; + + if (lua_type(L, 3) == LUA_TNIL) + prio = XCHAT_PRI_NORM; + else + prio = luaL_checknumber(L, 3); + + if (lua_type(L, 4) == LUA_TSTRING) { + help = luaL_checkstring(L, 4); + if (strlen(help) == 0) + help = NULL; + } + else + help = NULL; + + if (lxc_get_userdata(5, cb) == 0) + lua_pushboolean(L, 0); + else { + h = malloc(sizeof(struct lxc_hooks)); + if (!h) { + xchat_printf(ph, "lxc_hook_command(): failed to malloc: %s", + strerror(errno)); + lua_pushboolean(L, 0); + return 1; + } + hook = xchat_hook_command(ph, command, prio, lxc_run_hook, help, cb); + h->hook = hook; + h->name = command; + h->next = NULL; + st = lxc_states; + while (st) { + if (st->state == L) { + if (!st->hooks) + st->hooks = h; + else { + hooks = st->hooks; + while (hooks->next) + hooks = hooks->next; + hooks->next = h; + } + break; + } + st = st->next; + } + lua_pushboolean(L, 1); + } + return 1; +} + +/* + * lua: func_name(word, data) + * desc: your previously hooked callback function for hook_print(), + * you must return one of the xchat.EAT_* constants + * ret: none + * args: + * * word (table): the incoming line split into words (max 32) + * (see http://xchat.org/docs/plugin20.html#word) + * * data (table): the data table you passed to the hook_print() / + * as 4th arg + */ +static int lxc_run_print(char *word[], void *data) +{ + struct lxc_cbdata *cb = data; + lua_State *L = cb->state; + int i; + + lua_pushstring(L, cb->func); + lua_gettable(L, LUA_GLOBALSINDEX); + + strcpy(lxc_event_name, word[0]); + lua_newtable(L); + for (i=1; i<=31 && word[i][0]; i++) { + lua_pushnumber(L, i); + lua_pushstring(L, word[i]); + lua_settable(L, -3); + } + + if (lua_pcall(L, 1, 1, 0)) { + xchat_printf(ph, "failed to call callback for '%s': %s", + word[1], lua_tostring(L, -1)); + lua_pop(L, 1); + return 0; + } + + if (lua_type(L, -1) != LUA_TNUMBER) { + xchat_printf(ph, "callback for '%s' didn't return number...", word[1]); + return XCHAT_EAT_NONE; + } + i = (int)lua_tonumber(L, -1); + lua_pop(L, 1); + return i; +} + +/* + * lua: xchat.hook_print(name, func_name, prio, data) + * desc: Registers a function to trap any print events. The event names may + * be any available in the "Advanced > Text Events" window. There are + * also some extra "special" events you may hook using this function, + * see: http://xchat.org/docs/plugin20.html#xchat_hook_print + * ret: true... or false if something went wrong while registering hook + * args: + * * name (string): the name of the new command + * * prio (number): use one of the xchat.PRIO_* + * * func_name (string): the lua function to be called when command is + * entered + * * data (table): table with strings, numbers and booleans, which will + * be passed to func_name as last argument. + */ +static int lxc_hook_print(lua_State *L) +{ + xchat_hook *hook; + struct lxc_hooks *hooks, *h; + struct lxc_States *st; + struct lxc_cbdata *cb = malloc(sizeof(struct lxc_cbdata)); + const char *name, *func; + double prio; + + if (!cb) { + luaL_error(L, "lxc_hook_print(): failed to malloc: %s", strerror(errno)); + return 0; + } + + if (lua_gettop(L) < 4) /* expand to 4 args if necessary */ + lua_settop(L, 4); + + name = luaL_checkstring(L, 1); + func = luaL_checkstring(L, 2); + if (lua_type(L, 3) == LUA_TNIL) + prio = XCHAT_PRI_NORM; + else + prio = luaL_checknumber(L, 3); + + cb->state = L; + cb->func = func; + cb->data = NULL; + cb->hook = NULL; + + if (lxc_get_userdata(4, cb) == 0) + lua_pushboolean(L, 0); + else { + h = malloc(sizeof(struct lxc_hooks)); + if (!h) { + xchat_printf(ph, "lxc_hook_print(): failed to malloc: %s", + strerror(errno)); + lua_pushboolean(L, 0); + return 1; + } + hook = xchat_hook_print(ph, name, prio, lxc_run_print, cb); + h->hook = hook; + h->name = name; + h->next = NULL; + st = lxc_states; + while (st) { + if (st->state == L) { + if (!st->hooks) + st->hooks = h; + else { + hooks = st->hooks; + while (hooks->next) + hooks = hooks->next; + hooks->next = h; + } + break; + } + st = st->next; + } + lua_pushboolean(L, 1); + } + return 1; +} + +/* + * lua: xchat.hook_server(name, func_name, prio, data) + * desc: Registers a function to be called when a certain server event + * occurs. You can use this to trap PRIVMSG, NOTICE, PART, a server + * numeric etc... If you want to hook every line that comes from the + * IRC server, you may use the special name of "RAW LINE". + * ret: true... or false if something went wrong while registering + * args: + * * name (string): the event name / numeric (yes, also as a string) + * * prio (number): one of the xchat.PRIO_* constants + * * func_name (string): the function to be called, when the event + * happens + * * data (table)... see xchat.hook_command() + */ +static int lxc_hook_server(lua_State *L) +{ + xchat_hook *hook; + struct lxc_hooks *hooks, *h; + struct lxc_States *st; + const char *name, *func; + double prio; + + struct lxc_cbdata *cb = malloc(sizeof(struct lxc_cbdata)); + if (!cb) { + xchat_printf(ph, "lxc_hook_server(): failed to malloc: %s", + strerror(errno)); + lua_pushnil(L); + return 1; + } + + if (lua_gettop(L) < 4) /* expand to 4 args if necessary */ + lua_settop(L, 4); + + name = luaL_checkstring(L, 1); + func = luaL_checkstring(L, 2); + if (lua_type(L, 3) == LUA_TNIL) + prio = XCHAT_PRI_NORM; + else + prio = luaL_checknumber(L, 3); + + cb->state = L; + cb->func = func; + cb->data = NULL; + cb->hook = NULL; + + if (lxc_get_userdata(4, cb) == 0) + lua_pushboolean(L, 0); + else { + h = malloc(sizeof(struct lxc_hooks)); + if (!h) { + xchat_printf(ph, "lxc_hook_server(): failed to malloc: %s", + strerror(errno)); + lua_pushboolean(L, 0); + return 1; + } + hook = xchat_hook_server(ph, name, prio, lxc_run_hook, cb); + h->hook = hook; + h->name = name; + h->next = NULL; + st = lxc_states; + while (st) { + if (st->state == L) { + if (!st->hooks) + st->hooks = h; + else { + hooks = st->hooks; + while (hooks->next) + hooks = hooks->next; + hooks->next = h; + } + break; + } + st = st->next; + } + lua_pushboolean(L, 1); + } + return 1; +} + +/* + * lua: xchat.hook_timer(timeout, func_name, data) + * desc: Registers a function to be called every "timeout" milliseconds. + * ret: true (or false on error while registering) + * args: + * * timeout (number): Timeout in milliseconds (1000 is 1 second). + * * func_name (string): Callback function. This will be called + * every "timeout" milliseconds. + * * data (table): see xchat.hook_command() + */ + +static unsigned long long lxc_timer_count = 0; + +static int lxc_hook_timer(lua_State *L) +{ + xchat_hook *hook; + struct lxc_hooks *hooks, *h; + struct lxc_States *st; + double timeout; + const char *func; + char name[32]; + + struct lxc_cbdata *cb = malloc(sizeof(struct lxc_cbdata)); + if (!cb) { + luaL_error(L, "lxc_hook_timer(): failed to malloc: %s", strerror(errno)); + lua_pushnil(L); + return 1; + } + + if (lua_gettop(L) < 3) /* expand to 3 args if necessary */ + lua_settop(L, 3); + + timeout = luaL_checknumber(L, 1); + func = luaL_checkstring(L, 2); + + cb->state = L; + cb->func = func; + cb->data = NULL; + + if (lxc_get_userdata(3, cb) == 0) + lua_pushnil(L); + else { + h = malloc(sizeof(struct lxc_hooks)); + if (!h) { + luaL_error(L, "lxc_hook_timer(): failed to malloc: %s", + strerror(errno)); + return 0; + } + hook = xchat_hook_timer(ph, timeout, lxc_run_timer, cb); + cb->hook = hook; + h->hook = hook; + h->next = NULL; + snprintf(name, 31, "timer%llu", lxc_timer_count++); + h->name = name; + lua_pushstring(L, name); + + st = lxc_states; + while (st) { + if (st->state == L) { + if (!st->hooks) + st->hooks = h; + else { + hooks = st->hooks; + while (hooks->next) + hooks = hooks->next; + hooks->next = h; + } + break; + } + st = st->next; + } + } + return 1; +} + +static void lxc_unhook_timer(lua_State *L, xchat_hook *hook) +{ + struct lxc_States *state; + struct lxc_hooks *hooks, *h, *prev_hook; + struct lxc_cbdata *cb; + struct lxc_userdata *ud, *u; + + prev_hook = NULL; + state = lxc_states; + while (state) { + if (state->state == L) { + hooks = state->hooks; + while (hooks) { + if (hooks->hook == hook) { + h = hooks; + if (prev_hook) + prev_hook->next = hooks->next; + else + state->hooks = hooks->next; + + cb = xchat_unhook(ph, h->hook); + if (cb) { + ud = cb->data; + while (ud) { + u = ud; + ud = ud->next; + free(u); + } + free(cb); + } + + free(h); + return; + } + prev_hook = hooks; + hooks = hooks->next; + } + break; + } + state = state->next; + } +} + +/* + * lua: func_name(data) + * desc: the callback function for the registered timer hook, return + * true to keep this timer going, false to stop it + * ret: none + * args: + * * data (table): the table you gave the hook_timer() as last + * argument + */ + static int lxc_run_timer(void *data) +{ + int ret; + struct lxc_cbdata *cb = data; + xchat_hook *hook = cb->hook; + lua_State *L = cb->state; + + lua_pushstring(L, cb->func); + lua_gettable(L, LUA_GLOBALSINDEX); + + if (lua_pcall(L, 0, 1, 0)) { + xchat_printf(ph, "failed to call timer callback for '%s': %s", + cb->func, lua_tostring(L, -1)); + lua_pop(L, 1); + lxc_unhook_timer(L, hook); + return 0; + } + + if (lua_type(L, -1) != LUA_TBOOLEAN) { + xchat_printf(ph, + "timer callback for '%s' didn't return a boolean", cb->func); + lua_pop(L, 1); + lxc_unhook_timer(L, hook); + return 0; + } + + ret = (lua_toboolean(L, -1) == 0) ? 0 : 1; + lua_pop(L, 1); + + if (ret == 0) + lxc_unhook_timer(L, hook); + + return ret; +} + +/* + * lua: xchat.unhook(name) + * desc: unhooks a previously hooked hook + * ret: true if the hook existed, else false.. + * args: + * * name (string): name of a registered hook (e.g. with + * xchat.hook_command("whois", ... ) you would unhook "whois" + * ... see timer warnings... there's currently just one "timer" + * to unhook + */ +static int lxc_unhook(lua_State *L) +{ + struct lxc_States *state; + struct lxc_hooks *hooks, *h, *prev_hook; + struct lxc_cbdata *cb; + struct lxc_userdata *ud, *u; + int done = 0; + const char *name = luaL_checkstring(L, 1); + + prev_hook = NULL; + state = lxc_states; + while (state) { + if (state->state == L) { + hooks = state->hooks; + while (hooks) { + if (strcasecmp(hooks->name, name) == 0) { + h = hooks; + if (prev_hook) + prev_hook->next = hooks->next; + else + state->hooks = hooks->next; + + cb = xchat_unhook(ph, h->hook); + if (cb) { + ud = cb->data; + while (ud) { + u = ud; + ud = ud->next; + free(u); + } + free(cb); + } + + free(h); + done = 1; + break; + } + prev_hook = hooks; + hooks = hooks->next; + } + break; + } + state = state->next; + } + lua_pushboolean(L, done); + return 1; +} + +static int lxc_event(lua_State *L) +{ + lua_pushstring(L, lxc_event_name); + return 1; +} + +/* + * lua: xchat.command(command) + * desc: executes a command as if it were typed in xchat's input box. + * ret: none + * args: + * * command (string): command to execute, without the forward slash "/". + */ +static int lxc_command(lua_State *L) +{ + const char *command = luaL_checkstring(L, 1); + xchat_command(ph, command); + return 0; +} + +/* + * lua: xchat.print(text) + * desc: Prints some text to the current tab/window. + * ret: none + * args: + * * text (string): the text to print + */ +static int lxc_print(lua_State *L) +{ + const char *txt = luaL_checkstring(L, 1); + // FIXME? const char *txt = lua_tostring(L, 1); + xchat_print(ph, txt); + return 0; +} + +/* + * lua: xchat.emit_print(event, text, [text2, ...]) + * desc: Generates a print event. This can be any event found in the + * Preferences > Advanced > Text Events window. The vararg parameter + * list MUST be no longer than four (4) parameters. + * Special care should be taken when calling this function inside a + * print callback (from xchat.hook_print()), as not to cause endless + * recursion. + * ret: true on success, false on error + * args: + * * event (string): the event name from the references > Advanced > + * Text Events window + * * text (string) + * text2 (string) + * ... (string(s)): + * parameters for the given event + */ +static int lxc_emit_print(lua_State *L) +{ + + int n = lua_gettop(L); + const char *text[5]; + const char *event; + int i = 2; + + if (n > 6) + luaL_error(L, "too many arguments to xchat.emit_print()"); + + event = luaL_checkstring(L, 1); + while (i <= n) { + text[i-2] = luaL_checkstring(L, i); + i++; + } + switch (n-1) { + case 0: + i = xchat_emit_print(ph, event, NULL); + break; + case 1: + i = xchat_emit_print(ph, event, text[0], NULL); + break; + case 2: + i = xchat_emit_print(ph, event, text[0], text[1], NULL); + break; + case 3: + i = xchat_emit_print(ph, event, text[0], text[1], text[2], NULL); + break; + case 4: + i = xchat_emit_print(ph, event, text[0], text[1], text[2], text[3], NULL); + break; + } + lua_pushboolean(L, (i == 0) ? 0 : 1); + return 1; +} + +/* + * lua: xchat.send_modes(targets, sign, mode [, modes_per_line]) + * desc: Sends a number of channel mode changes to the current channel. + * For example, you can Op a whole group of people in one go. It may + * send multiple MODE lines if the request doesn't fit on one. Pass 0 + * for modes_per_line to use the current server's maximum possible. + * This function should only be called while in a channel context. + * ret: none + * args: + * * targets (table): list of names + * * sign (string): mode sign, i.e. "+" or "-", only the first char of + * this is used (currently unchecked if it's really "+" or "-") + * * mode (string): mode char, i.e. "o" for opping, only the first + * char of this is used (currently unchecked, what char) + * * modes_per_line (number): [optional] number of modes per line + */ +static int lxc_send_modes(lua_State *L) +{ + int i = 1; + const char *name, *mode, *sign; + const char *targets[4096]; + int num = 0; /* modes per line */ + + if (!lua_istable(L, 1)) { + luaL_error(L, + "xchat.send_modes(): first argument is not a table: %s", + lua_typename(L, lua_type(L, 1))); + return 0; + } + + while (1) { + lua_pushnumber(L, i); /* push index on stack */ + lua_gettable(L, 1); /* and get the element @ index */ + if (lua_isnil(L, -1)) { /* end of table */ + lua_pop(L, 1); + break; + } + + if (lua_type(L, -1) != LUA_TSTRING) { /* oops, something wrong */ + luaL_error(L, + "lua: xchat.send_modes(): table element #%d not a string: %s", + i, lua_typename(L, lua_type(L, -1))); + lua_pop(L, 1); + return 0; + } + + name = lua_tostring(L, -1); + if (name == NULL) { /* this should not happen, but... */ + lua_pop(L, 1); + break; + } + + targets[i-1] = name; + lua_pop(L, 1); /* take index from stack */ + ++i; + } + + sign = luaL_checkstring(L, 2); + if (sign[0] == '\0' || sign[1] != '\0') { + luaL_error(L, "argument #2 (mode sign) does not have length 1"); + return 0; + } + if ((sign[0] != '+') && (sign[0] != '-')) { + luaL_error(L, "argument #2 (mode sign) is not '+' or '-'"); + return 0; + } + + mode = luaL_checkstring(L, 3); + if (mode[0] == '\0' || mode[1] != '\0') { + luaL_error(L, "argument #3 (mode char) does not have length 1"); + return 0; + } + if (!isalpha((int)mode[0]) || !isascii((int)mode[0])) { + luaL_error(L, "argument #3 is not a valid mode character"); + return 0; + } + + if (lua_gettop(L) == 4) + num = luaL_checknumber(L, 4); + + xchat_send_modes(ph, targets, i-1, num, sign[0], mode[0]); + return 0; +} + +/* + * lua: xchat.find_context(srv, chan) + * desc: Finds a context based on a channel and servername. If servname is nil, + * it finds any channel (or query) by the given name. If channel is nil, + * it finds the front-most tab/window of the given servname. If nil is + * given for both arguments, the currently focused tab/window will be + * returned. + * Changed in 2.6.1. If servname is nil, it finds the channel (or query) + * by the given name in the same server group as the current context. + * If that doesn't exists then find any by the given name. + * ret: context number (DON'T modify) + * args: + * * srv (string or nil): server name + * * chan (string or nil): channel / query name + */ +static int lxc_find_context(lua_State *L) +{ + const char *srv, *chan; + long ctx; + xchat_context *ptr; + + if (lua_type(L, 1) == LUA_TSTRING) { + srv = lua_tostring(L, 1); + if (srv[0] == '\0') + srv = NULL; + } + else + srv = NULL; + + if (lua_type(L, 2) == LUA_TSTRING) { + chan = lua_tostring(L, 2); + if (chan[0] == '\0') + chan = NULL; + } + else + chan = NULL; + + ptr = xchat_find_context(ph, srv, chan); + ctx = (long)ptr; +#ifdef DEBUG + fprintf(stderr, "find_context(): %#lx\n", (long)ptr); +#endif + lua_pushnumber(L, (double)ctx); + return 1; +} + +/* + * lua: xchat.get_context() + * desc: Returns the current context for your plugin. You can use this later + * with xchat_set_context. + * ret: context number ... DON'T modifiy + * args: none + */ +static int lxc_get_context(lua_State *L) +{ + long ptr; + xchat_context *ctx = xchat_get_context(ph); + ptr = (long)ctx; +#ifdef DEBUG + fprintf(stderr, "get_context(): %#lx\n", ptr); +#endif + lua_pushnumber(L, (double)ptr); + return 1; +} + +/* + * lua: xchat.get_info(id) + * desc: Returns information based on your current context. + * ret: the requested string or nil on error + * args: + * * id (string): the wanted information + */ +static int lxc_get_info(lua_State *L) +{ + const char *id = luaL_checkstring(L, 1); + const char *value = xchat_get_info(ph, id); + if (value == NULL) + lua_pushnil(L); + else + lua_pushstring(L, value); + return 1; +} + +/* + * lua: xchat.get_prefs(name) + * desc: Provides xchat's setting information (that which is available + * through the /set command). A few extra bits of information are + * available that don't appear in the /set list, currently they are: + * * state_cursor: Current input-box cursor position (characters, + * not bytes). Since 2.4.2. + * *id: Unique server id. Since 2.6.1. + * ret: returns the string/number/boolean for the given config var + * or nil on error + * args: + * * name (string): the wanted setting's name + */ +static int lxc_get_prefs(lua_State *L) +{ + int i; + const char *str; + const char *name = luaL_checkstring(L, 1); + /* + * luckily we can store anything in a lua var... this makes the + * xchat lua api more user friendly ;-) + */ + switch (xchat_get_prefs(ph, name, &str, &i)) { + case 0: /* request failed */ + lua_pushnil(L); + break; + case 1: + lua_pushstring(L, str); + break; + case 2: + lua_pushnumber(L, (double)i); + break; + case 3: + lua_pushboolean(L, i); + break; + default: /* doesn't happen if xchat's C-API doesn't change ;-) */ + lua_pushnil(L); + break; + } + return 1; +} + +/* + * lua: xchat.set_context(ctx) + * desc: Changes your current context to the one given. + * ret: true or false + * args: + * * ctx (number): the context (e.g. from xchat.get_context()) + */ +static int lxc_set_context(lua_State *L) +{ + double ctx = luaL_checknumber(L, 1); +#ifdef DEBUG + fprintf(stderr, "set_context(): %#lx\n", (long)ctx); +#endif + xchat_context *xc = (void *)(long)ctx; + lua_pushboolean(L, xchat_set_context(ph, xc)); + return 1; +} + +/* + * lua: xchat.nickcmp(name1, name2) + * desc: Performs a nick name comparision, based on the current server + * connection. This might be a RFC1459 compliant string compare, or + * plain ascii (in the case of DALNet). Use this to compare channels + * and nicknames. The function works the same way as strcasecmp. + * ret: number ess than, equal to, or greater than zero if name1 is found, + * respectively, to be less than, to match, or be greater than name2. + * args: + * * name1 (string): nick or channel name + * * name2 (string): nick or channel name + */ +static int lxc_nickcmp(lua_State *L) +{ + const char *n1 = luaL_checkstring(L, 1); + const char *n2 = luaL_checkstring(L, 2); + lua_pushnumber(L, (double)xchat_nickcmp(ph, n1, n2)); + return 1; +} + +/* + * lua: xchat.list_get(name) + * desc: http://xchat.org/docs/plugin20.html#lists :) + * time_t values are stored as number => e.g. + * os.date("%Y-%m-%d, %H:%M:%S", time_t_value) + * pointers (channel -> context) as number... untested if this works + * ret: table with tables with all keys=Name, value=(Type)... or nil on error + * args: + * * name (string): the wanted list + */ +static int lxc_list_get(lua_State *L) +{ + const char *name = luaL_checkstring(L, 1); + int i; /* item index */ + int l; /* list index */ + const char *str; + double num; + time_t date; + long ptr; + const char *const *fields = xchat_list_fields(ph, name); + xchat_list *list = xchat_list_get(ph, name); + + if (!list) { + lua_pushnil(L); + return 1; + } + lua_newtable(L); + /* this is like the perl plugin does it ;-) */ + l = 1; + while (xchat_list_next(ph, list)) { + i = 0; + lua_pushnumber(L, l); + lua_newtable(L); + while (fields[i] != NULL) { + switch (fields[i][0]) { + case 's': + str = xchat_list_str(ph, list, fields [i] + 1); + lua_pushstring(L, fields[i]+1); + if (str != NULL) + lua_pushstring(L, str); + else + lua_pushnil(L); + lua_settable(L, -3); + break; + case 'p': + ptr = (long)xchat_list_str(ph, list, fields [i] + 1); + num = (double)ptr; + lua_pushstring(L, fields[i]+1); + lua_pushnumber(L, num); + lua_settable(L, -3); + break; + case 'i': + num = (double)xchat_list_int(ph, list, fields[i] + 1); + lua_pushstring(L, fields[i]+1); + lua_pushnumber(L, num); + lua_settable(L, -3); + break; + case 't': + date = xchat_list_time(ph, list, fields[i] + 1); + lua_pushstring(L, fields[i]+1); + lua_pushnumber(L, (double)date); + lua_settable(L, -3); + break; + } + i++; + } + lua_settable(L, -3); + l++; + } + xchat_list_free(ph, list); + return 1; +} + +/* + * lua: xchat.list_fields(name) + * desc: returns the possible keys for name as table + * ret: table ;-> + * args: + * * name (string): name of the wanted list ("channels", "dcc", + * "ignore", "notify", "users") + */ +static int lxc_list_fields(lua_State *L) +{ + const char *name = luaL_checkstring(L, 1); + const char *const *fields = xchat_list_fields(ph, name); + int i; + + lua_newtable(L); + i = 0; + while (fields[i] != NULL) { + lua_pushnumber(L, i); + /* first char is the type ... */ + lua_pushstring(L, fields[i]+1); + lua_settable(L, -3); + } + return 1; +} + +/* + * lua: xchat.gettext(str) + * desc: + */ +static int lxc_gettext(lua_State *L) +{ +#if defined(_WIN32) || defined(LXC_XCHAT_GETTEXT) + lua_pushstring(L, xchat_gettext(ph, luaL_checkstring(L, 1))); +#else + const char *dom; + const char *msgid = luaL_checkstring(L, 1); + if (lua_type(L,2) == LUA_TSTRING) + dom = lua_tostring(L, 2); + else + dom = "xchat"; + lua_pushstring(L, dgettext(dom, msgid)); +#endif + return 1; +} + +/* + * lua: xchat.bits(flags) + * desc: returns a table of booleans if the bit at index (err... index-1) is + * set + * ret: table of booleans + * args: + * * flags (number) + */ +static int lxc_bits(lua_State *L) +{ + int flags = luaL_checknumber(L, 1); + int i; + lua_pop(L, 1); + lua_newtable(L); + for (i=0; i<16; i++) { /* at time of writing, the highest index was 9 ... */ + lua_pushnumber(L, i+1); + lua_pushboolean(L, ((1<<i) & flags) == 0 ? 0 : 1); + lua_settable(L, -3); + } + return 1; +} +/* + * vim: ts=3 noexpandtab + */ diff --git a/plugins/lua/lua.def b/plugins/lua/lua.def new file mode 100644 index 00000000..77670bf2 --- /dev/null +++ b/plugins/lua/lua.def @@ -0,0 +1,3 @@ +EXPORTS +xchat_plugin_init +xchat_plugin_deinit diff --git a/plugins/lua/lua.vcxproj b/plugins/lua/lua.vcxproj new file mode 100644 index 00000000..cbb3c444 --- /dev/null +++ b/plugins/lua/lua.vcxproj @@ -0,0 +1,134 @@ +<?xml version="1.0" encoding="utf-8"?> +<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <ItemGroup Label="ProjectConfigurations"> + <ProjectConfiguration Include="Release|Win32"> + <Configuration>Release</Configuration> + <Platform>Win32</Platform> + </ProjectConfiguration> + <ProjectConfiguration Include="Release|x64"> + <Configuration>Release</Configuration> + <Platform>x64</Platform> + </ProjectConfiguration> + </ItemGroup> + <PropertyGroup Label="Globals"> + <ProjectGuid>{646B4316-C8B8-4DB6-B6AE-E586929E5729}</ProjectGuid> + <Keyword>Win32Proj</Keyword> + <RootNamespace>lua</RootNamespace> + </PropertyGroup> + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" /> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration"> + <ConfigurationType>DynamicLibrary</ConfigurationType> + <UseDebugLibraries>false</UseDebugLibraries> + <WholeProgramOptimization>true</WholeProgramOptimization> + <CharacterSet>MultiByte</CharacterSet> + <PlatformToolset>WDK7</PlatformToolset> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration"> + <ConfigurationType>DynamicLibrary</ConfigurationType> + <UseDebugLibraries>false</UseDebugLibraries> + <WholeProgramOptimization>true</WholeProgramOptimization> + <CharacterSet>MultiByte</CharacterSet> + <PlatformToolset>WDK7</PlatformToolset> + </PropertyGroup> + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" /> + <ImportGroup Label="ExtensionSettings"> + </ImportGroup> + <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> + <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> + <Import Project="..\..\win32\xchat.props" /> + </ImportGroup> + <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets"> + <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> + <Import Project="..\..\win32\xchat.props" /> + </ImportGroup> + <PropertyGroup Label="UserMacros" /> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> + <LinkIncremental>false</LinkIncremental> + <TargetName>$(LuaOutput)</TargetName> + <OutDir>$(SolutionDir)build\$(PlatformName)\bin</OutDir> + <IntDir>$(SolutionDir)build\$(PlatformName)\obj\$(ProjectName)</IntDir> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'"> + <LinkIncremental>false</LinkIncremental> + <TargetName>$(LuaOutput)</TargetName> + <OutDir>$(SolutionDir)build\$(PlatformName)\bin</OutDir> + <IntDir>$(SolutionDir)build\$(PlatformName)\obj\$(ProjectName)</IntDir> + </PropertyGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> + <ClCompile> + <WarningLevel>Level1</WarningLevel> + <PrecompiledHeader> + </PrecompiledHeader> + <Optimization>MaxSpeed</Optimization> + <FunctionLevelLinking>true</FunctionLevelLinking> + <IntrinsicFunctions>true</IntrinsicFunctions> + <PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;_USRDLL;LUA_EXPORTS;$(OwnFlags);%(PreprocessorDefinitions)</PreprocessorDefinitions> + <AdditionalIncludeDirectories>$(DepsRoot)\include;..;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> + </ClCompile> + <Link> + <SubSystem>Windows</SubSystem> + <GenerateDebugInformation>true</GenerateDebugInformation> + <EnableCOMDATFolding>true</EnableCOMDATFolding> + <OptimizeReferences>true</OptimizeReferences> + <AdditionalLibraryDirectories>$(DepsRoot)\lib;$(OutDir);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories> + <AdditionalDependencies>"$(LuaLib).lib";;dirent-win32.lib;%(AdditionalDependencies)</AdditionalDependencies> + </Link> + </ItemDefinitionGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'"> + <ClCompile> + <WarningLevel>Level1</WarningLevel> + <PrecompiledHeader> + </PrecompiledHeader> + <Optimization>MaxSpeed</Optimization> + <FunctionLevelLinking>true</FunctionLevelLinking> + <IntrinsicFunctions>true</IntrinsicFunctions> + <PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;_USRDLL;LUA_EXPORTS;$(OwnFlags);%(PreprocessorDefinitions)</PreprocessorDefinitions> + <AdditionalIncludeDirectories>$(DepsRoot)\include;..;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> + </ClCompile> + <Link> + <SubSystem>Windows</SubSystem> + <GenerateDebugInformation>true</GenerateDebugInformation> + <EnableCOMDATFolding>true</EnableCOMDATFolding> + <OptimizeReferences>true</OptimizeReferences> + <AdditionalLibraryDirectories>$(DepsRoot)\lib;$(OutDir);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories> + <AdditionalDependencies>"$(LuaLib).lib";;dirent-win32.lib;%(AdditionalDependencies)</AdditionalDependencies> + </Link> + </ItemDefinitionGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> + <Link> + <AdditionalDependencies>"$(LuaLib).lib";$(DepLibs);dirent-win32.lib;%(AdditionalDependencies)</AdditionalDependencies> + </Link> + </ItemDefinitionGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'"> + <Link> + <AdditionalDependencies>"$(LuaLib).lib";$(DepLibs);dirent-win32.lib;%(AdditionalDependencies)</AdditionalDependencies> + </Link> + </ItemDefinitionGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> + <ClCompile> + <PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;_USRDLL;$(OwnFlags);snprintf=g_snprintf;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <MultiProcessorCompilation>true</MultiProcessorCompilation> + </ClCompile> + <Link> + <ModuleDefinitionFile>lua.def</ModuleDefinitionFile> + </Link> + </ItemDefinitionGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'"> + <ClCompile> + <PreprocessorDefinitions>WIN32;_WIN64;NDEBUG;_WINDOWS;_USRDLL;$(OwnFlags);snprintf=g_snprintf;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <MultiProcessorCompilation>true</MultiProcessorCompilation> + </ClCompile> + <Link> + <ModuleDefinitionFile>lua.def</ModuleDefinitionFile> + </Link> + </ItemDefinitionGroup> + <ItemGroup> + <None Include="lua.def" /> + </ItemGroup> + <ItemGroup> + <ClCompile Include="lua.c" /> + </ItemGroup> + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" /> + <ImportGroup Label="ExtensionTargets"> + </ImportGroup> +</Project> \ No newline at end of file diff --git a/plugins/lua/lua.vcxproj.filters b/plugins/lua/lua.vcxproj.filters new file mode 100644 index 00000000..9c7e3d89 --- /dev/null +++ b/plugins/lua/lua.vcxproj.filters @@ -0,0 +1,23 @@ +<?xml version="1.0" encoding="utf-8"?> +<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <ItemGroup> + <Filter Include="Source Files"> + <UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier> + <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions> + </Filter> + <Filter Include="Resource Files"> + <UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier> + <Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms</Extensions> + </Filter> + </ItemGroup> + <ItemGroup> + <None Include="lua.def"> + <Filter>Resource Files</Filter> + </None> + </ItemGroup> + <ItemGroup> + <ClCompile Include="lua.c"> + <Filter>Source Files</Filter> + </ClCompile> + </ItemGroup> +</Project> \ No newline at end of file diff --git a/plugins/lua/lua.vcxproj.user b/plugins/lua/lua.vcxproj.user new file mode 100644 index 00000000..695b5c78 --- /dev/null +++ b/plugins/lua/lua.vcxproj.user @@ -0,0 +1,3 @@ +<?xml version="1.0" encoding="utf-8"?> +<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> +</Project> \ No newline at end of file diff --git a/plugins/lua/makefile.mak b/plugins/lua/makefile.mak new file mode 100644 index 00000000..97a7e10b --- /dev/null +++ b/plugins/lua/makefile.mak @@ -0,0 +1,20 @@ +include "..\..\src\makeinc.mak" + +DIRENTLIB = ..\..\src\common\dirent-win32.lib + +all: lua.obj lua.def + link $(LDFLAGS) $(LIBS) /dll /out:xclua.dll $(LUALIB).lib $(DIRENTLIB) /def:lua.def lua.obj + +lua.def: + echo EXPORTS > lua.def + echo xchat_plugin_init >> lua.def + echo xchat_plugin_deinit >> lua.def + +lua.obj: lua.c makefile.mak + cl $(CFLAGS) /I.. /Dsnprintf=g_snprintf lua.c + +clean: + del *.obj + del *.dll + del *.exp + del *.lib diff --git a/plugins/makefile.mak b/plugins/makefile.mak new file mode 100644 index 00000000..19b3cb75 --- /dev/null +++ b/plugins/makefile.mak @@ -0,0 +1,71 @@ +all: + @cd checksum + @-$(MAKE) /nologo /s /f makefile.mak $@ + @cd ..\gtkpref + @-$(MAKE) /nologo /s /f makefile.mak $@ + @cd ..\dns + @-$(MAKE) /nologo /s /f makefile.mak $@ + @cd ..\doat + @-$(MAKE) /nologo /s /f makefile.mak $@ + @cd ..\exec + @-$(MAKE) /nologo /s /f makefile.mak $@ + @cd ..\fishlim + @-$(MAKE) /nologo /s /f makefile.mak $@ + @cd ..\lua + @-$(MAKE) /nologo /s /f makefile.mak $@ + @cd ..\mpcinfo + @-$(MAKE) /nologo /s /f makefile.mak $@ +# @cd ..\nonbmp +# @-$(MAKE) /nologo /s /f makefile.mak $@ + @cd ..\python + @-$(MAKE) /nologo /s /f makefile.mak $@ + @cd ..\tcl + @-$(MAKE) /nologo /s /f makefile.mak $@ + @cd ..\upd + @-$(MAKE) /nologo /s /f makefile.mak $@ + @cd ..\xsasl + @-$(MAKE) /nologo /s /f makefile.mak $@ + @cd ..\xtray + @-$(MAKE) /nologo /s /f makefile.mak $@ + @cd ..\winamp + @-$(MAKE) /nologo /s /f makefile.mak $@ + @cd ..\winsys + @-$(MAKE) /nologo /s /f makefile.mak $@ + @cd ..\wmpa + @-$(MAKE) /nologo /s /f makefile.mak $@ + +clean: + @cd checksum + @-$(MAKE) /nologo /s /f makefile.mak clean $@ + @cd ..\gtkpref + @-$(MAKE) /nologo /s /f makefile.mak clean $@ + @cd ..\dns + @-$(MAKE) /nologo /s /f makefile.mak clean $@ + @cd ..\doat + @-$(MAKE) /nologo /s /f makefile.mak clean $@ + @cd ..\exec + @-$(MAKE) /nologo /s /f makefile.mak clean $@ + @cd ..\fishlim + @-$(MAKE) /nologo /s /f makefile.mak clean $@ + @cd ..\lua + @-$(MAKE) /nologo /s /f makefile.mak clean $@ + @cd ..\mpcinfo + @-$(MAKE) /nologo /s /f makefile.mak clean $@ +# @cd ..\nonbmp +# @-$(MAKE) /nologo /s /f makefile.mak clean $@ + @cd ..\python + @-$(MAKE) /nologo /s /f makefile.mak clean $@ + @cd ..\tcl + @-$(MAKE) /nologo /s /f makefile.mak clean $@ + @cd ..\upd + @-$(MAKE) /nologo /s /f makefile.mak clean $@ + @cd ..\xsasl + @-$(MAKE) /nologo /s /f makefile.mak clean $@ + @cd ..\xtray + @-$(MAKE) /nologo /s /f makefile.mak clean $@ + @cd ..\winamp + @-$(MAKE) /nologo /s /f makefile.mak clean $@ + @cd ..\winsys + @-$(MAKE) /nologo /s /f makefile.mak clean $@ + @cd ..\wmpa + @-$(MAKE) /nologo /s /f makefile.mak clean $@ diff --git a/plugins/mpcinfo/functions.c b/plugins/mpcinfo/functions.c new file mode 100644 index 00000000..ed0632d4 --- /dev/null +++ b/plugins/mpcinfo/functions.c @@ -0,0 +1,167 @@ +/* + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + */ + +/* +typedef int (*MYPROC)(HWND,HWND,char*,char*,BOOL,BOOL); + +int dllProc(char *name, char *data){ + HINSTANCE hinstLib; + hinstLib = LoadLibrary("mpcinfo"); + //MYPROC proc; + int res; + if (hinstLib != NULL){ + //proc = ; + if ((MYPROC) GetProcAddress(hinstLib, name)!=NULL){ + res=(MYPROC)(NULL,NULL,data,NULL,TRUE,TRUE); + } + else{fprintf(stderr,"can't get proc: %s\n",name);res=-2;} + } + else{fprintf(stderr,"can't access dll\n");return -1;} + FreeLibrary(hinstLib); + return res; +} +*/ + +/* +int dllProc(char *name, char *data) +{ + static HMODULE lib = NULL; + if (!lib) + { + lib = LoadLibraryA ("mpcinfo"); + if (!lib) + { + return FALSE; + } + FreeLibrary (lib); + } + + return TRUE; +} +*/ + +char *split(char *text, char seperator){ + //if (DEBUG==1) putlog("splitting"); + int i;int pos=-1; + for (i=0;i<strlen(text);i++){ + if (text[i]==seperator){pos=i;i=strlen(text)+1;} + } + if (pos==-1) return text; + text[pos]=0; + return &(text[pos+1]); +} + +int endsWith(char *text, char *suffix){ + char *tmp=strstr(text,suffix); + if (tmp==NULL) return 0; + if (strlen(tmp)==strlen(suffix)) return 1; + return 0; +} + +int inStr(char *s1, int sl1, char *s2){ + //if (DEBUG==1) putlog("checking instr"); + int i;int j; + for(i=0;i<sl1-strlen(s2);i++){ + for (j=0;j<strlen(s2);j++){ + if (s1[i+j]!=s2[j]) j=strlen(s2)+2; + } + if (j==strlen(s2)) return i; + } + return -1; +} + +static char *subString(char *text, int first, int length, int spcKill){ +//if (DEBUG==1) putlog("creating substring"); + char *ret=(char*) calloc (length+1,sizeof(char)); //malloc(sizeof(char)*(length+1)); + int i; + ret[length]=0; + for (i=0;i<length;i++){ + ret[i]=text[i+first]; + //if (ret[i]==0) ret[i]='0'; + } + if (spcKill==1){ + for (i=length-1;i>=0;i--){ + if (ret[i]==32) ret[i]=0; + else i=-1; + } + } + //if (DEBUG==1) putlog("substring created"); + return ret; +} + +static char *substring(char *text, int first, int length){return subString(text,first,length,0);} + + +char *readLine(FILE *f){ + //if (DEBUG==1) putlog("reading line from file"); + char *buffer=(char*)calloc(1024,sizeof(char)); //malloc(sizeof(char)*1024); + int pos=0; + int cc=0; + while((cc!=EOF)&&(pos<1024)&&(cc!=10)){ + cc=fgetc(f); + if ((cc!=10)&&(cc!=13)){ + if (cc==EOF) buffer[pos]=0; + else buffer[pos]=(char)cc;pos++; + } + } + if (buffer[pos]==EOF) xchat_printf(ph,"EOF: %i\n",pos); + return buffer; +} + +char *toUpper(char *text){ + //if (DEBUG==1) putlog("converting text to upper case"); + char *ret=(char*) calloc(strlen(text)+1,sizeof(char)); + int i; + for (i=0;i<strlen(text);i++) ret[i]=toupper(text[i]); + ret[strlen(text)]=0; + //if (DEBUG==1) putlog("uc done"); + return ret; +} + +static char *str3cat(char *s1, char *s2, char *s3){ + //if (DEBUG==1) putlog("cating 3 strings"); + char *ret=(char*)calloc(strlen(s1)+strlen(s2)+strlen(s3)+1,sizeof(char)); + strcpy(ret,s1);strcat(ret,s2);strcat(ret,s3); + ret[strlen(s1)+strlen(s2)+strlen(s3)]=0; + //if (DEBUG==1) putlog("strings cated"); + return ret; +} + +char *replace(char *text, char *from, char *to){ + //if (DEBUG==1) putlog("replacing"); + char *ret=(char*)calloc( strlen(text)+(strlen(to)-strlen(from)),sizeof(char)); + char *left; + char *right; + int pos=inStr(text,strlen(text),from); + if (pos!=-1){ + left=substring(text,0,pos); + right=substring(text,pos+strlen(from),strlen(text)-(pos+strlen(from))); + ret=str3cat(left,to,right); + return replace(ret,from,to); + } + //if (DEBUG==1) putlog("replaced"); + return text; +} + +char *intReplaceF(char *text, char *from, int to, char *form){ + //if (DEBUG==1) putlog("replaceF"); + char *buffer=(char*) calloc(16,sizeof(char)); + sprintf(buffer,form,to); + //if (DEBUG==1) putlog("replaceF done"); + return replace(text,from,buffer); +} + +char *intReplace(char *text, char *from, int to){return intReplaceF(text,from,to,"%i");} diff --git a/plugins/mpcinfo/makefile.mak b/plugins/mpcinfo/makefile.mak new file mode 100644 index 00000000..4a8a2763 --- /dev/null +++ b/plugins/mpcinfo/makefile.mak @@ -0,0 +1,18 @@ +include "..\..\src\makeinc.mak" + +all: mpcinfo.obj mpcinfo.def + link $(LDFLAGS) $(LIBS) /dll /out:xcmpcinfo.dll /def:mpcinfo.def mpcinfo.obj + +mpcinfo.def: + echo EXPORTS > mpcinfo.def + echo xchat_plugin_init >> mpcinfo.def + echo xchat_plugin_deinit >> mpcinfo.def + +mpcinfo.obj: mpcinfo.c makefile.mak + cl $(CFLAGS) $(GLIB) /I.. mpcinfo.c + +clean: + del *.obj + del *.dll + del *.exp + del *.lib diff --git a/plugins/mpcinfo/mp3Info.c b/plugins/mpcinfo/mp3Info.c new file mode 100644 index 00000000..f75ba9c4 --- /dev/null +++ b/plugins/mpcinfo/mp3Info.c @@ -0,0 +1,361 @@ +/* + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + */ + +//#include <stdio.h> +#include <sys/stat.h> +//#include "functions.c" + +struct tagInfo{ + int mode; + int cbr; + int bitrate; + unsigned int freq; + char *artist; + char *title; + char *album; + char *comment; + char *genre; + //int genre; + //int track; +}; + +static int RATES[2][3][15]={ + {//mpeg2 + {-1,8,16,24,32,64,80,56,64,128,160,112,128,256,320},//layer3 (V2) + {-1,32,48,56,64,80,96,112,128,160,192,224,256,320,384},//layer2 (V2) + {-1,32,64,96,128,160,192,224,256,288,320,352,384,416,448},//layer1 (V2) + }, + {//mpeg1 + {-1,32,40,48,56,64,80,96,112,128,160,192,224,256,320},//layer3 (V1) + {-1,32,48,56,64,80,96,112,128,160,192,224,256,320,384},//layer2 (V1) + {-1,32,64,96,128,160,192,224,256,288,320,352,384,416,448},//layer1 (V1) + }}; +static int FREQS[2][4]={{22050,24000,16000,-1},{44100,48000,32000,-1}}; +//static double FRATES[]={38.5,32.5,27.8,0.0}; + +static char GENRES[][50]={"Blues","Classic Rock","Country","Dance","Disco","Funk","Grunge","Hip-Hop","Jazz","Metal", +"New Age","Oldies","Other","Pop","R&B","Rap","Reggae","Rock","Techno","Industrial", +"Alternative","Ska","Death Metal","Pranks","Soundtrack","Euro-Techno","Ambient","Trip-Hop","Vocal","Jazz+Funk", +"Fusion","Trance","Classical","Instrumental","Acid","House","Game","Sound Clip","Gospel","Noise", +"AlternRock","Bass","Soul","Punk","Space","Meditative","Instrumental Pop","Instrumental Rock","Ethnic","Gothic", +"Darkwave","Techno-Industrial","Electronic","Pop-Folk","Eurodance","Dream","Southern Rock","Comedy","Cult","Gangsta", +"Top 40","Christian Rap","Pop/Funk","Jungle","Native American","Cabaret","New Wave","Psychadelic","Rave","Showtunes", +"Trailer","Lo-Fi","Tribal","Acid Punk","Acid Jazz","Polka","Retro","Musical","Rock & Roll","Hard Rock", + +//################## END OF OFFICIAL ID3 TAGS, WINAMP TAGS BELOW ######################################## + +"Folk","Folk/Rock","National Folk","Swing","Fast Fusion","Bebob","Latin","Revival","Celtic","Bluegrass", +"Avantgarde","Gothic Rock","Progressive Rock","Psychedelic Rock","Symphonic Rock","Slow Rock","Big Band","Chorus","Easy Listening","Acoustic", +"Humour","Speech","Chanson","Opera","Chamber Music","Sonata","Symphony","Booty Bass","Primus","Porn Groove", +"Satire","Slow Jam","Club","Tango","Samba","Folklore","Ballad","Poweer Ballad","Rhytmic Soul","Freestyle", +"Duet","Punk Rock","Drum Solo","A Capela","Euro-House","Dance Hall", + +//################## FOUND AT http://en.wikipedia.org/wiki/ID3 ########################################### + +"Goa","Drum & Bass","Club-House","Hardcore", +"Terror","Indie","BritPop","Negerpunk","Polsk Punk","Beat","Christian Gangsta Rap","Heavy Metal","Black Metal","Crossover", +"Contemporary Christian","Christian Rock","Merengue","Salsa","Thrash Metal","Anime","JPop","Synthpop" + +}; + +static char MODES [][13]={"Stereo","Joint-Stereo","Dual-Channel","Mono"}; + +int iPow(int x, int y){return (int)(pow((double)x,(double) y));} + +int str2int(char *text){ + //if (DEBUG==1) putlog("converting string to int"); + int i; + int ret=0; + for (i=1;i<=strlen(text);i++){ + if ((text[strlen(text)-i]>57)||(text[strlen(text)-i]<48)){ + xchat_printf(ph,"invalid char in string: %i",text[strlen(text)-i]); + return 255; + } + ret+=((int)text[strlen(text)-i]-48)*iPow(10,i-1); + } + //xchat_printf(ph, "str2int(%s)=%i",text,ret); + //if (DEBUG==1) putlog("int converted"); + return ret; +} +/* +static int getSize(char *file){ + //if (DEBUG==1) putlog("reading filesize"); + struct stat info; + if (stat(file,&info)!=0) return -1; + return info.st_size; +}*/ +/* +int inStr(char *s1, int sl1, char *s2){ + //if (DEBUG==1) putlog("checking instr"); + int i;int j; + for(i=0;i<sl1-strlen(s2);i++){ + for (j=0;j<strlen(s2);j++){ + if (s1[i+j]!=s2[j]) j=strlen(s2)+2; + } + if (j==strlen(s2)) return i; + } + return -1; +} + +static char *subString(char *text, int first, int length, int spcKill){ +//if (DEBUG==1) putlog("creating substring"); + char *ret=(char*) calloc (length+1,sizeof(char)); //malloc(sizeof(char)*(length+1)); + ret[length]=0;int i; + for (i=0;i<length;i++){ + ret[i]=text[i+first]; + //if (ret[i]==0) ret[i]='0'; + } + if (spcKill==1){ + for (i=length-1;i>=0;i--){ + if (ret[i]==32) ret[i]=0; + else i=-1; + } + } + //if (DEBUG==1) putlog("substring created"); + return ret; +} + +static char *substring(char *text, int first, int length){return subString(text,first,length,0);} //1 +*/ + +static char *tagExtract(char *tag, int tagLen, char* info){ +//if (DEBUG==1) putlog("extracting tag"); + int pos, len, i; + pos=inStr(tag,tagLen,info); +//xchat_printf(ph,"pos=%i",pos); + if (pos==-1) return "";//NULL; + //printf("position of %s = %i\n",info,pos); + len=0; + //for (i=pos;i<pos+10;i++)printf("tag[%i]=%i \n",i,tag[i]); + for (i=0;i<4;i++) { + len+=tag[pos+strlen(info)+i]*iPow(255,3-i); + } + //printf("Tag-Length: %i\n",len); + if (strcmp("COMM",info)!=0) return substring(tag,pos+7+strlen(info),len-1);//11 + return substring(tag,pos+7+strlen(info),len-1);//11 + //char *ct=substring(tag,pos+7+strlen(info),len-1);//11 + //return substring(ct,strlen(ct)+1,len-1-strlen(ct)); //<-- do not understand, what i did here :( + +} + +struct tagInfo readID3V1(char *file){ +//if (DEBUG==1) putlog("reading ID3V1"); + FILE *f; + struct tagInfo ret; + int res, i, c, val; + char *tag; + char *id; + char *tmp; + tag = (char*) malloc(sizeof(char)*129); + ret.artist=NULL; + f=fopen(file,"rb"); + if (f==NULL){ + xchat_print(ph,"file not found while trying to read id3v1"); + //if (DEBUG==1) putlog("file not found while trying to read id3v1"); + return ret; + } + //int offset=getSize(file)-128; + res=fseek(f,-128,SEEK_END); + if (res!=0) {printf("seek failed\n");fclose(f);return ret;} + //long int pos=ftell(f); + //printf("position= %li\n",pos); + for (i=0;i<128;i++) { + c=fgetc(f); + if (c==EOF) {xchat_printf(ph,"read ID3V1 failed\n");fclose(f);return ret;} + tag[i]=(char)c; + } + fclose(f); + //printf("tag readed: \n"); + id=substring(tag,0,3); + //printf("header: %s\n",id); + if (strcmp(id,"TAG")!=0){xchat_printf(ph,"no id3 v1 found\n");return ret;} + ret.title=subString(tag,3,30,1); + ret.artist=subString(tag,33,30,1); + ret.album=subString(tag,63,30,1); + ret.comment=subString(tag,97,30,1); + tmp=substring(tag,127,1); + //ret.genre=substring(tag,127,1); + + val=(int)tmp[0]; + if (val<0)val+=256; + //xchat_printf(ph, "tmp[0]=%i (%i)",val,tmp[0]); + if ((val<148)&&(val>=0)) + ret.genre=GENRES[val];//#############changed + else { + ret.genre="unknown"; + //xchat_printf(ph, "tmp[0]=%i (%i)",val,tmp[0]); + } + //xchat_printf(ph, "tmp: \"%s\" -> %i",tmp,tmp[0]); + //xchat_printf(ph,"genre \"%s\"",ret.genre); + //if (DEBUG==1) putlog("id3v1 extracted"); + return ret; +} + +char *extractID3Genre(char *tag){ + //if (DEBUG==1) putlog("extracting id3 genre"); + if (tag[strlen(tag)-1]==')'){ + tag[strlen(tag)-1]=0; + tag=&tag[1]; + return GENRES[str2int(tag)]; + //return tag; + } + else{ + int i; + //xchat_print(ph, "Using 2 criteria"); + for (i=0;i<strlen(tag);i++){ + if (tag[i]==')'){ tag=&tag[i]+1;return tag;} + //return tag; + } + } + return "[152] failed"; +} + +struct tagInfo readID3V2(char *file){ +//if (DEBUG==1) putlog("reading id3v2"); + FILE *f; + int i, c, len; + char header[10]; + char *tag; + struct tagInfo ret; + + f = fopen(file,"rb"); + //xchat_printf(ph,"file :%s",file); + if (f==NULL) + { + xchat_print(ph,"file not found whilt trying to read ID3V2"); + //if (DEBUG==1)putlog("file not found while trying to read ID3V2"); + return ret; + } + + ret.artist=NULL; + for (i=0;i<10;i++){ + c=fgetc(f); + if (c==EOF){ + //putlog("found eof while reading id3v2"); + return ret; + } + header[i]=(char)c; + } + if (strstr(header,"ID3")==header){ + //xchat_printf(ph,"found id3v2\n"); + len=0; + for (i=6;i<10;i++) len+=(int)header[i]*iPow(256,9-i); + + //char *tag=(char*)malloc(sizeof(char)*len); + tag=(char*) calloc(len,sizeof(char)); //malloc(sizeof(char)*len); + for (i=0;i<len;i++){c=fgetc(f);tag[i]=(char)c;} +//xchat_printf(ph,"tag length: %i\n",len); +//xchat_printf(ph,"tag: %s\n",tag); + fclose(f); + ret.comment=tagExtract(tag,len,"COMM"); +//xchat_printf(ph,"Comment: %s\n",ret.comment); + ret.genre=tagExtract(tag,len,"TCON"); + //if (strcmp(ret.genre,"(127)")==0) ret.genre="unknown"; +//xchat_printf(ph, "ret.genre = %s",ret.genre); + if ((ret.genre!=NULL)&&(ret.genre[0]=='(')) ret.genre=extractID3Genre(ret.genre); +//xchat_printf(ph,"genre: %s\n",ret.genre); + ret.title=tagExtract(tag,len,"TIT2"); +//xchat_printf(ph,"Title: %s\n",ret.title); + ret.album=tagExtract(tag,len,"TALB"); +//xchat_printf(ph,"Album: %s\n",ret.album); + ret.artist=tagExtract(tag,len,"TPE1"); +//xchat_printf(ph,"Artist: %s\n",ret.artist); + } + else{fclose(f);printf("no id3v2 tag found\n"); return ret;} + //printf("id2v2 done\n"); + //if (DEBUG==1) putlog("id3v2 readed"); + return ret; +} + +struct tagInfo readHeader(char *file){ +//if (DEBUG==1) putlog("reading header"); + FILE *f; + //int buffer[5120]; + int versionB, layerB, bitrateB, freqB, modeB; + int header[4]; + int count=0; + int cc=0; + struct tagInfo info; + info.artist=NULL; + + f = fopen(file,"rb"); + if (f==NULL) + { + xchat_print(ph,"file not found while trying to read mp3 header"); + //if (DEBUG==1) putlog("file not found while trying to read mp3 header"); + return info; + } + //struct tagInfo tagv2 + + info=readID3V2(file); + //struct tagInfo tagv1;//=readID3V1(file); + //if (tagv2.artist!=NULL){info=tagv2;} + //else { + if (info.artist==NULL){ + //printf("searching for id3v1\n"); + //tagv1=readID3V1(file); + info=readID3V1(file); //##################### + } + /* + if (tagv1.artist!=NULL){ + //printf("Artist: %s\nTitle: %s\nAlbum: %s\nComment: %s\nGenre: %s\n",tagv1.artist,tagv1.title,tagv1.album,tagv1.comment,tagv1.genre); + info=tagv1; + } + */ + while ((count<5120)&&(cc!=EOF)&&(cc!=255)) {cc=fgetc(f);count++;} + if ((cc==EOF)||(count==5119)) printf("no header found\n"); + else { + //printf("located header at %i\n",count); + header[0]=255; + for (count=1;count<4;count++){ + header[count]=fgetc(f); + //printf("header[%i]=%i\n",count,header[count]); + } + versionB=(header[1]&8)>>3; + layerB=(header[1]&6)>>1; + bitrateB=(header[2]&240)>>4; //4 + freqB=(header[2]&12)>>2;//2 + modeB=(header[3]&192)>>6;//6 + //printf("Mpeg: %i\nLayer: %i\nBitrate: %i\nFreq: %i\nMode: %i\n",versionB, layerB, bitrateB, freqB, modeB); + //int Bitrate=RATES[versionB][layerB-1][bitrateB]; + //int Freq=FREQS[versionB][freqB]; + info.bitrate=RATES[versionB][layerB-1][bitrateB]; + info.freq=FREQS[versionB][freqB]; + info.mode=modeB; + } + fclose(f); + //if (DEBUG==1) putlog("header readed"); + return info; +} +/* +static void printMp3Info(char *file){ + //printf("\nScanning Mp3-File for Informations: %s\n",file); + //printf("size:\t%10d byte\n",getSize(file)); + struct tagInfo info =readHeader(file); + printf("%s | %10d",file,getSize(file)); + if (info.bitrate>0){ + //printf("Bitrate: %i\nFreq: %i\nMode: %s\n",info.bitrate,info.freq,MODES[info.mode]); + printf(" | %i kbps | %i kHz | %s",info.bitrate,info.freq,MODES[info.mode]); + //if (info.artist!=NULL) printf("\nArtist: %s\nTitle: %s\nAlbum: %s\nComment: %s\nGenre: %s\n",info.artist,info.title,info.album,info.comment,info.genre); + if (info.artist!=NULL) { + printf("| %s | %s | %s | %s | %s",info.artist,info.title,info.album,info.comment,info.genre); + //printf("| %s ",info.title);//,info.title,info.album,info.comment,info.genre + } + } + printf("\n"); + +} +*/ diff --git a/plugins/mpcinfo/mpcInfo.c b/plugins/mpcinfo/mpcInfo.c new file mode 100644 index 00000000..e467e516 --- /dev/null +++ b/plugins/mpcinfo/mpcInfo.c @@ -0,0 +1,149 @@ +/* + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + */ + +//static int DEBUG=0; +static char *VERSION="0.0.6"; + +#include <windows.h> +#include <stdlib.h> +#include <string.h> +#include <stdio.h> +#include <ctype.h> +#include <math.h> +#include "xchat-plugin.h" +static xchat_plugin *ph; + +#include "functions.c" +#include "mp3Info.c" +#include "oggInfo.c" +#include "theme.c" + +static int print_themes (char *word[], char *word_eol[], void *userdata){ + printThemes(); + return XCHAT_EAT_ALL; +} + +static int mpc_themeReload(char *word[], char *word_eol[], void *userdata){ + themeInit(); + loadThemes(); + return XCHAT_EAT_ALL; +} + +static int mpc_tell(char *word[], char *word_eol[], void *userdata){ + char *tTitle, *zero, *oggLine, *line; + struct tagInfo info; + HWND hwnd = FindWindow("MediaPlayerClassicW",NULL); + if (hwnd==0) {xchat_command(ph, randomLine(notRunTheme));return XCHAT_EAT_ALL;} + + tTitle=(char*)malloc(sizeof(char)*1024); + GetWindowText(hwnd, tTitle, 1024); + zero=strstr(tTitle," - Media Player Classic"); + if (zero!=NULL) zero[0]=0; + else xchat_print(ph,"pattern not found"); + + if ((tTitle[1]==':')&&(tTitle[2]=='\\')){ + //xchat_print(ph,"seams to be full path"); + if (endsWith(tTitle,".mp3")==1){ + //xchat_print(ph,"seams to be a mp3 file"); + info = readHeader(tTitle); + + if ((info.artist!=NULL)&&(strcmp(info.artist,"")!=0)){ + char *mode=MODES[info.mode]; + //xchat_printf(ph,"mode: %s\n",mode); + char *mp3Line=randomLine(mp3Theme); + mp3Line=replace(mp3Line,"%art",info.artist); + mp3Line=replace(mp3Line,"%tit",info.title); + mp3Line=replace(mp3Line,"%alb",info.album); + mp3Line=replace(mp3Line,"%com",info.comment); + mp3Line=replace(mp3Line,"%gen",info.genre); + //mp3Line=replace(mp3Line,"%time",pos); + //mp3Line=replace(mp3Line,"%length",len); + //mp3Line=replace(mp3Line,"%ver",waVers); + //mp3Line=intReplace(mp3Line,"%br",br); + //mp3Line=intReplace(mp3Line,"%frq",frq); + + mp3Line=intReplace(mp3Line,"%br",info.bitrate); + mp3Line=intReplace(mp3Line,"%frq",info.freq); + mp3Line=replace(mp3Line,"%mode",mode); + //mp3Line=replace(mp3Line,"%size",size); + //mp3Line=intReplace(mp3Line,"%perc",perc); + //mp3Line=replace(mp3Line,"%plTitle",title); + mp3Line=replace(mp3Line,"%file",tTitle); + xchat_command(ph, mp3Line); + return XCHAT_EAT_ALL; + } + } + if (endsWith(tTitle,".ogg")==1){ + xchat_printf(ph,"Ogg detected\n"); + info = getOggHeader(tTitle); + if (info.artist!=NULL){ + char *cbr; + if (info.cbr==1) cbr="CBR"; else cbr="VBR"; + oggLine=randomLine(oggTheme); + //if (cue==1) oggLine=cueLine; + //xchat_printf(ph,"ogg-line: %s\n",oggLine); + oggLine=replace(oggLine,"%art",info.artist); + oggLine=replace(oggLine,"%tit",info.title); + oggLine=replace(oggLine,"%alb",info.album); + oggLine=replace(oggLine,"%com",info.comment); + oggLine=replace(oggLine,"%gen",info.genre); + //oggLine=replace(oggLine,"%time",pos); + //oggLine=replace(oggLine,"%length",len); + //oggLine=replace(oggLine,"%ver",waVers); + oggLine=intReplace(oggLine,"%chan",info.mode); + oggLine=replace(oggLine,"%cbr",cbr); + oggLine=intReplace(oggLine,"%br",info.bitrate/1000);//br); + oggLine=intReplace(oggLine,"%frq",info.freq); + //oggLine=replace(oggLine,"%size",size); + //oggLine=intReplace(oggLine,"%perc",perc); + //oggLine=replace(oggLine,"%plTitle",title); + oggLine=replace(oggLine,"%file",tTitle); + xchat_command(ph, oggLine); + return XCHAT_EAT_ALL; + } + } + } + line=randomLine(titleTheme); + line=replace(line,"%title", tTitle); + xchat_command(ph,line); + return XCHAT_EAT_ALL; +} + +int xchat_plugin_init(xchat_plugin *plugin_handle, char **plugin_name, char **plugin_desc, char **plugin_version, char *arg){ + ph = plugin_handle; + *plugin_name = "mpcInfo"; + *plugin_desc = "Information-Script for Media Player Classic"; + *plugin_version=VERSION; + + xchat_hook_command(ph, "mpc", XCHAT_PRI_NORM, mpc_tell,"no help text", 0); + xchat_hook_command(ph, "mpc_themes", XCHAT_PRI_NORM, print_themes,"no help text", 0); + xchat_hook_command(ph, "mpc_reloadthemes", XCHAT_PRI_NORM, mpc_themeReload,"no help text", 0); + xchat_command (ph, "MENU -ietc\\music.png ADD \"Window/Display Current Song (MPC)\" \"MPC\""); + + themeInit(); + loadThemes(); + xchat_printf(ph, "%s %s plugin loaded\n",*plugin_name, VERSION); + + return 1; +} + +int +xchat_plugin_deinit (void) +{ + xchat_command (ph, "MENU DEL \"Window/Display Current Song (MPC)\""); + xchat_print (ph, "mpcInfo plugin unloaded\n"); + return 1; +} diff --git a/plugins/mpcinfo/mpcinfo.def b/plugins/mpcinfo/mpcinfo.def new file mode 100644 index 00000000..77670bf2 --- /dev/null +++ b/plugins/mpcinfo/mpcinfo.def @@ -0,0 +1,3 @@ +EXPORTS +xchat_plugin_init +xchat_plugin_deinit diff --git a/plugins/mpcinfo/mpcinfo.vcxproj b/plugins/mpcinfo/mpcinfo.vcxproj new file mode 100644 index 00000000..6746ce15 --- /dev/null +++ b/plugins/mpcinfo/mpcinfo.vcxproj @@ -0,0 +1,106 @@ +<?xml version="1.0" encoding="utf-8"?> +<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <ItemGroup Label="ProjectConfigurations"> + <ProjectConfiguration Include="Release|Win32"> + <Configuration>Release</Configuration> + <Platform>Win32</Platform> + </ProjectConfiguration> + <ProjectConfiguration Include="Release|x64"> + <Configuration>Release</Configuration> + <Platform>x64</Platform> + </ProjectConfiguration> + </ItemGroup> + <PropertyGroup Label="Globals"> + <ProjectGuid>{B0E36D93-CA2A-49FE-9EB9-9C96C6016EEC}</ProjectGuid> + <Keyword>Win32Proj</Keyword> + <RootNamespace>mpcinfo</RootNamespace> + </PropertyGroup> + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" /> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration"> + <ConfigurationType>DynamicLibrary</ConfigurationType> + <UseDebugLibraries>false</UseDebugLibraries> + <WholeProgramOptimization>true</WholeProgramOptimization> + <CharacterSet>MultiByte</CharacterSet> + <PlatformToolset>WDK7</PlatformToolset> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration"> + <ConfigurationType>DynamicLibrary</ConfigurationType> + <UseDebugLibraries>false</UseDebugLibraries> + <WholeProgramOptimization>true</WholeProgramOptimization> + <CharacterSet>MultiByte</CharacterSet> + <PlatformToolset>WDK7</PlatformToolset> + </PropertyGroup> + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" /> + <ImportGroup Label="ExtensionSettings"> + </ImportGroup> + <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> + <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> + <Import Project="..\..\win32\xchat.props" /> + </ImportGroup> + <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets"> + <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> + <Import Project="..\..\win32\xchat.props" /> + </ImportGroup> + <PropertyGroup Label="UserMacros" /> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> + <LinkIncremental>false</LinkIncremental> + <TargetName>xcmpcinfo</TargetName> + <OutDir>$(SolutionDir)build\$(PlatformName)\bin</OutDir> + <IntDir>$(SolutionDir)build\$(PlatformName)\obj\$(ProjectName)</IntDir> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'"> + <LinkIncremental>false</LinkIncremental> + <TargetName>xcmpcinfo</TargetName> + <OutDir>$(SolutionDir)build\$(PlatformName)\bin</OutDir> + <IntDir>$(SolutionDir)build\$(PlatformName)\obj\$(ProjectName)</IntDir> + </PropertyGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> + <ClCompile> + <WarningLevel>Level1</WarningLevel> + <PrecompiledHeader> + </PrecompiledHeader> + <Optimization>MaxSpeed</Optimization> + <FunctionLevelLinking>true</FunctionLevelLinking> + <IntrinsicFunctions>true</IntrinsicFunctions> + <PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;_USRDLL;MPCINFO_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <MultiProcessorCompilation>true</MultiProcessorCompilation> + <AdditionalIncludeDirectories>..;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> + </ClCompile> + <Link> + <SubSystem>Windows</SubSystem> + <GenerateDebugInformation>true</GenerateDebugInformation> + <EnableCOMDATFolding>true</EnableCOMDATFolding> + <OptimizeReferences>true</OptimizeReferences> + <ModuleDefinitionFile>mpcinfo.def</ModuleDefinitionFile> + </Link> + </ItemDefinitionGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'"> + <ClCompile> + <WarningLevel>Level1</WarningLevel> + <PrecompiledHeader> + </PrecompiledHeader> + <Optimization>MaxSpeed</Optimization> + <FunctionLevelLinking>true</FunctionLevelLinking> + <IntrinsicFunctions>true</IntrinsicFunctions> + <PreprocessorDefinitions>WIN32;_WIN64;NDEBUG;_WINDOWS;_USRDLL;MPCINFO_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <MultiProcessorCompilation>true</MultiProcessorCompilation> + <AdditionalIncludeDirectories>..;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> + </ClCompile> + <Link> + <SubSystem>Windows</SubSystem> + <GenerateDebugInformation>true</GenerateDebugInformation> + <EnableCOMDATFolding>true</EnableCOMDATFolding> + <OptimizeReferences>true</OptimizeReferences> + <ModuleDefinitionFile>mpcinfo.def</ModuleDefinitionFile> + </Link> + </ItemDefinitionGroup> + <ItemGroup> + <None Include="mpcinfo.def" /> + </ItemGroup> + <ItemGroup> + <ClCompile Include="mpcInfo.c" /> + </ItemGroup> + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" /> + <ImportGroup Label="ExtensionTargets"> + </ImportGroup> +</Project> \ No newline at end of file diff --git a/plugins/mpcinfo/mpcinfo.vcxproj.filters b/plugins/mpcinfo/mpcinfo.vcxproj.filters new file mode 100644 index 00000000..7e22eb30 --- /dev/null +++ b/plugins/mpcinfo/mpcinfo.vcxproj.filters @@ -0,0 +1,23 @@ +<?xml version="1.0" encoding="utf-8"?> +<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <ItemGroup> + <Filter Include="Source Files"> + <UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier> + <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions> + </Filter> + <Filter Include="Resource Files"> + <UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier> + <Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms</Extensions> + </Filter> + </ItemGroup> + <ItemGroup> + <None Include="mpcinfo.def"> + <Filter>Resource Files</Filter> + </None> + </ItemGroup> + <ItemGroup> + <ClCompile Include="mpcInfo.c"> + <Filter>Source Files</Filter> + </ClCompile> + </ItemGroup> +</Project> \ No newline at end of file diff --git a/plugins/mpcinfo/mpcinfo.vcxproj.user b/plugins/mpcinfo/mpcinfo.vcxproj.user new file mode 100644 index 00000000..695b5c78 --- /dev/null +++ b/plugins/mpcinfo/mpcinfo.vcxproj.user @@ -0,0 +1,3 @@ +<?xml version="1.0" encoding="utf-8"?> +<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> +</Project> \ No newline at end of file diff --git a/plugins/mpcinfo/oggInfo.c b/plugins/mpcinfo/oggInfo.c new file mode 100644 index 00000000..83c2beb5 --- /dev/null +++ b/plugins/mpcinfo/oggInfo.c @@ -0,0 +1,122 @@ +/* + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + */ + +static int getOggInt(char *buff, int beg, int bytes){ +//if (DEBUG==1) putlog("getOggInt"); + int ret=0; + int i; + for (i=0;i<bytes;i++){ + if (buff[i+beg]>=0) ret+=buff[i+beg]*iPow(256,i);else ret+=(256+buff[i+beg])*iPow(256,i); + //printf("[%i]=%i\n",i,buff[i+beg]); + } + return ret; +} + +static char *upperStr(char *text){ +//if (DEBUG==1) putlog("converting text to uc"); + //printf("upperStr(%s)\n",text); + int i; + char *ret=(char*) malloc(sizeof(char)*(strlen(text)+1)); + ret[strlen(text)]=0; + for (i=0;i<strlen(text);i++) ret[i]=toupper(text[i]); + //printf("Result: %s\n",ret); + return ret; +} + +struct tagInfo getOggHeader(char *file){ +//if (DEBUG==1) putlog("reading ogg header"); + char header[4096]; + int i, c; + int h1pos, h3pos, maxBr, nomBr, minBr, pos, count, tagLen; + char *sub; + char *name; + char *val; + char *HEADLOC1, *HEADLOC3, *HEADLOC5; + FILE *f; + struct tagInfo info; + + info.artist=NULL; + f = fopen(file,"rb"); + if (f==NULL){ + xchat_print(ph,"file not found while trying to read ogg header"); + //if (DEBUG==1) putlog("file not found while trying to read ogg header"); + return info; + } + + for (i=0;i<4095;i++) {c=fgetc(f);header[i]=(char)c;} + fclose(f); + HEADLOC1="_vorbis"; + HEADLOC1[0]=1; + HEADLOC3="_vorbis"; + HEADLOC3[0]=3; + HEADLOC5="_vorbis"; + HEADLOC5[0]=5; + h1pos=inStr(header,4096,HEADLOC1); + h3pos=inStr(header,4096,HEADLOC3); + //int h5pos=inStr(header,4096,HEADLOC5); //not needed + + //printf("loc1: %i\n",h1pos);printf("loc3: %i\n",h3pos);printf("loc5: %i\n",h5pos); + maxBr=getOggInt(header,h1pos+7+9,4); + nomBr=getOggInt(header,h1pos+7+13,4); + minBr=getOggInt(header,h1pos+7+17,4); + info.freq=getOggInt(header,h1pos+7+5,4); + info.mode=header[h1pos+7+4]; + info.bitrate=nomBr; + if (((maxBr==nomBr)&&(nomBr=minBr))||((minBr==0)&&(maxBr==0))||((minBr=-1)&&(maxBr=-1)) )info.cbr=1;else info.cbr=0; + printf("bitrates: %i|%i|%i\n",maxBr,nomBr,minBr); + printf("freq: %i\n",info.freq); + pos=h3pos+7; + pos+=getOggInt(header,pos,4)+4; + count=getOggInt(header,pos,4); + //printf("tags: %i\n",count); + pos+=4; + + info.artist=NULL;info.title=NULL;info.album=NULL;info.comment=NULL;info.genre=NULL; + for (i=0;i<count;i++){ + tagLen=getOggInt(header,pos,4); + //printf("taglength: %i\n",tagLen); + sub=substring(header,pos+4,tagLen); + name=upperStr(substring(sub,0,inStr(sub,tagLen,"="))); + val=substring(sub,inStr(sub,tagLen,"=")+1,tagLen-inStr(sub,tagLen,"=")-1); + //printf("Tag: %s\n",sub); + //printf("Name: %s\n",name); + //printf("value: %s\n",val); + if (strcmp(name,"ARTIST")==0) info.artist=val; + if (strcmp(name,"TITLE")==0) info.title=val; + if (strcmp(name,"ALBUM")==0) info.album=val; + if (strcmp(name,"GENRE")==0) info.genre=val; + if (strcmp(name,"COMMENT")==0) info.comment=val; + pos+=4+tagLen; + } + if (info.artist==NULL) info.artist=""; + if (info.album==NULL) info.album =""; + if (info.title==NULL) info.title=""; + if (info.genre==NULL) info.genre=""; + if (info.comment==NULL) info.comment=""; + + printf("Artist: %s\nTitle: %s\nAlbum: %s\n",info.artist,info.title, info.album); + printf("Genre: %s\nComment: %s\nMode: %i\nCBR: %i\n",info.genre,info.comment,info.mode,info.cbr); + //if (DEBUG==1) putlog("ogg header readed"); + return info; +} + +/* +void printOggInfo(char *file){ + printf("Scanning Ogg-File for Informations: %s\n",file); + printf("size:\t%10d byte\n",getSize(file)); + struct tagInfo info = getOggHeader(file); +} +*/ diff --git a/plugins/mpcinfo/theme.c b/plugins/mpcinfo/theme.c new file mode 100644 index 00000000..000c00b1 --- /dev/null +++ b/plugins/mpcinfo/theme.c @@ -0,0 +1,136 @@ +/* + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + */ + +#include <time.h> + +struct theme{ + int size; + char **line; +}; + +static struct theme notRunTheme; +static struct theme titleTheme; +static struct theme mp3Theme; +static struct theme oggTheme; + + +void themeInit(){ + //if (DEBUG==1) putlog("init theme"); + /*mp3Theme.size=0;oggTheme.size=0;cueTheme.size=0;streamTheme.size=0;etcTheme.size=0; + stopTheme.size=0;pauseTheme.size=0;*/ + + notRunTheme.size=0;titleTheme.size=0; + srand((unsigned int)time((time_t *)NULL)); + //if (DEBUG==1) putlog("theme init done"); +} + +void printTheme(struct theme data){ + int i; + for (i=0;i<data.size;i++) xchat_printf(ph,"line[%i]=%s\n",i,data.line[i]); +} + +void printThemes(){ + xchat_printf(ph,"\nNotRun-Theme:\n");printTheme(notRunTheme); + xchat_printf(ph,"\nMP3-Theme:\n");printTheme(mp3Theme); + xchat_printf(ph,"\nOGG-Theme:\n");printTheme(oggTheme); + xchat_printf(ph,"\nTitle-Theme:\n");printTheme(titleTheme); +} + +void cbFix(char *line){ + //if (DEBUG==1) putlog("cbfix"); + int i, j; + for (i=0;i<strlen(line);i++){ + if (line[i]=='%'){ + if ((line[i+1]=='C')||(line[i+1]=='B')||(line[i+1]=='U')||(line[i+1]=='O')||(line[i+1]=='R')){ + if(line[i+1]=='C') line[i]=3; + if(line[i+1]=='B') line[i]=2; + if(line[i+1]=='U') line[i]=37; + if(line[i+1]=='O') line[i]=17; + if(line[i+1]=='R') line[i]=26; + + for (j=i+1;j<strlen(line)-1;j++) line[j]=line[j+1]; + line[strlen(line)-1]=0; + } + } + } + //if (DEBUG==1) putlog("cbfix done"); +} + +struct theme themeAdd(struct theme data, char *info){ + //if (DEBUG==1) putlog("adding theme"); + struct theme ret; + char **newLine=(char **)calloc(data.size+1,sizeof(char*)); + int i; + for (i=0;i<data.size;i++) newLine[i]=data.line[i]; + cbFix(info); + newLine[data.size]=info; + ret.line=newLine;ret.size=data.size+1; + //if (DEBUG==1) putlog("theme added"); + return ret; +} + +void loadThemes(){ + char *hDir, *hFile, *line, *val; + FILE *f; + xchat_print(ph,"loading themes\n"); + hDir=(char*)calloc(1024,sizeof(char)); + strcpy(hDir,xchat_get_info(ph,"xchatdirfs")); + hFile=str3cat(hDir,"\\","mpcInfo.theme.txt"); + f = fopen(hFile,"r"); + if(f==NULL) + { + xchat_print(ph,"no theme in homedir, checking global theme"); + f=fopen("mpcInfo.theme.txt","r"); + } + //xchat_printf(ph,"file_desc: %p\n",f); + if (f==NULL) xchat_print(ph, "no theme found, using hardcoded\n"); + else { + if (f > 0) + { + line=" "; + } else + { + line="\0"; + } + + while (line[0]!=0) + { + line=readLine(f); + val=split(line,'='); + printf("line: %s\n",line); + printf("val: %s\n",val); + if (strcmp(toUpper(line),"OFF_LINE")==0) notRunTheme=themeAdd(notRunTheme,val); + if (strcmp(toUpper(line),"TITLE_LINE")==0) titleTheme=themeAdd(titleTheme,val); + if (strcmp(toUpper(line),"MP3_LINE")==0) mp3Theme=themeAdd(mp3Theme,val); + if (strcmp(toUpper(line),"OGG_LINE")==0) mp3Theme=themeAdd(oggTheme,val); + } + fclose(f); + xchat_print(ph, "theme loaded successfull\n"); + } + if (notRunTheme.size==0) notRunTheme=themeAdd(notRunTheme,"say Media Player Classic not running"); + if (titleTheme.size==0) titleTheme=themeAdd(titleTheme,"say Playing %title in Media Player Classic"); + if (mp3Theme.size==0) mp3Theme=themeAdd(mp3Theme,"me listens to %art with %tit from %alb [%gen|%br kbps|%frq kHz|%mode] in Media Player Classic "); + if (oggTheme.size==0) oggTheme=themeAdd(oggTheme,"me listens to %art with %tit from %alb [%gen|%br kbps|%frq kHz|%chan channels] in Media Player Classic "); + //mp3Theme=themeAdd(mp3Theme,"me listens to %art with %tit from %alb [%time|%length|%perc%|%br kbps|%frq kHz|%mode] in Media Player Classic "); +} + +int rnd(int max){ + return rand()%max; +} + +char *randomLine(struct theme data){ + return data.line[rnd(data.size)]; +} diff --git a/plugins/nonbmp/makefile.mak b/plugins/nonbmp/makefile.mak new file mode 100644 index 00000000..1c28610d --- /dev/null +++ b/plugins/nonbmp/makefile.mak @@ -0,0 +1,18 @@ +include "..\..\src\makeinc.mak" + +all: nonbmp.obj nonbmp.def + link $(LDFLAGS) $(LIBS) /dll /out:xcnonbmp.dll /def:nonbmp.def nonbmp.obj + +nonbmp.def: + echo EXPORTS > nonbmp.def + echo xchat_plugin_init >> nonbmp.def + echo xchat_plugin_deinit >> nonbmp.def + +nonbmp.obj: nonbmp.c makefile.mak + cl $(CFLAGS) $(GLIB) /I.. nonbmp.c + +clean: + del *.obj + del *.dll + del *.exp + del *.lib diff --git a/plugins/nonbmp/nonbmp.c b/plugins/nonbmp/nonbmp.c new file mode 100644 index 00000000..824c395e --- /dev/null +++ b/plugins/nonbmp/nonbmp.c @@ -0,0 +1,87 @@ +#include <stdlib.h> +#include <glib.h> +#include <string.h> + +#include "xchat-plugin.h" + +static xchat_plugin *ph; +static const char name[] = "Non-BMP"; +static const char desc[] = "Replace non-BMP characters with replacement characters"; +static const char version[] = "1.0000"; +static int recursing = 0; + +static int filter( + char *word[], + char *word_eol[], + void *unused +) { + gunichar *line; + gchar *utf8_line; + glong length; + glong index; + + if( recursing ) { + return XCHAT_EAT_NONE; + } + + /* the input has already been checked so we can use the _fast version */ + line = g_utf8_to_ucs4_fast( + (char *)word_eol[1], + -1, /* NUL terminated input */ + &length + ); + + for( index = 0; index < length; index++ ) { + if( line[ index ] > 0xFFFF ) { + line[ index ] = 0xFFFD; /* replacement character */ + } + } + + utf8_line = g_ucs4_to_utf8( + line, + -1, /* NUL terminated input */ + NULL, /* items read */ + NULL, /* items written */ + NULL /* ignore conversion error */ + ); + + if( utf8_line == NULL ) { + /* conversion failed ... I guess we are screwed? */ + g_free( line ); + return XCHAT_EAT_NONE; + } + + recursing = 1; + xchat_commandf( ph, "RECV %s", utf8_line ); + recursing = 0; + + g_free( line ); + g_free( utf8_line ); + return XCHAT_EAT_ALL; +} + +int xchat_plugin_init( + xchat_plugin *plugin_handle, + char **plugin_name, + char **plugin_desc, + char **plugin_version, + char *arg +) { +/* int index = 0;*/ + + ph = plugin_handle; + *plugin_name = name; + *plugin_desc = desc; + *plugin_version = version; + + xchat_hook_server( ph, "RAW LINE", XCHAT_PRI_HIGHEST, filter, (void *)NULL ); + xchat_printf (ph, "%s plugin loaded\n", name); + return 1; +} + +int +xchat_plugin_deinit (void) +{ + xchat_printf (ph, "%s plugin unloaded\n", name); + return 1; +} \ No newline at end of file diff --git a/plugins/perl/makefile-512.mak b/plugins/perl/makefile-512.mak new file mode 100644 index 00000000..7f2fbe04 --- /dev/null +++ b/plugins/perl/makefile-512.mak @@ -0,0 +1,40 @@ +include "..\..\src\makeinc.mak" + +DIRENTLIB = ..\..\src\common\dirent-win32.lib +TARGET = $(PERL512OUTPUT) + +all: $(TARGET) + +perl.def: + echo EXPORTS > perl.def + echo xchat_plugin_init >> perl.def + echo xchat_plugin_deinit >> perl.def + echo xchat_plugin_get_info >> perl.def + +perl.obj: perl.c + $(CC) $(CFLAGS) perl.c $(GLIB) /I$(PERL512PATH)\perl\lib\CORE /I.. /DPERL_DLL=\"$(PERL512LIB).dll\" + +perl512.def: + gendef $(PERL512PATH)\perl\bin\perl512.dll + +$(PERL512LIB).lib: perl512.def +!ifdef X64 + lib /nologo /machine:x64 /def:perl512.def +!else + lib /nologo /machine:x86 /def:perl512.def +!endif + +perl.c: xchat.pm.h + +xchat.pm.h: lib/Xchat.pm lib/IRC.pm + perl.exe generate_header + +$(TARGET): perl.obj perl.def $(PERL512LIB).lib + $(LINK) /DLL /out:$(TARGET) perl.obj $(LDFLAGS) $(PERL512LIB).lib /delayload:$(PERL512LIB).dll $(DIRENTLIB) delayimp.lib user32.lib shell32.lib advapi32.lib /def:perl.def + +clean: + @del $(TARGET) + @del *.obj + @del *.def + @del *.lib + @del *.exp diff --git a/plugins/perl/makefile-514.mak b/plugins/perl/makefile-514.mak new file mode 100644 index 00000000..4c8d0ebd --- /dev/null +++ b/plugins/perl/makefile-514.mak @@ -0,0 +1,42 @@ +include "..\..\src\makeinc.mak" + +DIRENTLIB = ..\..\src\common\dirent-win32.lib +TARGET = $(PERL514OUTPUT) + +all: $(TARGET) + +perl.def: + echo EXPORTS > perl.def + echo xchat_plugin_init >> perl.def + echo xchat_plugin_deinit >> perl.def + echo xchat_plugin_get_info >> perl.def + +# MSVC only supports __inline, while GCC only supports __inline__. This is defined incorretly +# in lib\CORE\config.h in Strawberry Perl, see #define PERL_STATIC_INLINE static __inline__ +perl.obj: perl.c + $(CC) $(CFLAGS) perl.c $(GLIB) /I$(PERL514PATH)\perl\lib\CORE /I.. /DPERL_DLL=\"$(PERL514LIB).dll\" /D__inline__=__inline + +perl514.def: + gendef $(PERL514PATH)\perl\bin\perl514.dll + +$(PERL514LIB).lib: perl514.def +!ifdef X64 + lib /nologo /machine:x64 /def:perl514.def +!else + lib /nologo /machine:x86 /def:perl514.def +!endif + +perl.c: xchat.pm.h + +xchat.pm.h: lib/Xchat.pm lib/IRC.pm + perl.exe generate_header + +$(TARGET): perl.obj perl.def $(PERL514LIB).lib + $(LINK) /DLL /out:$(TARGET) perl.obj $(LDFLAGS) $(PERL514LIB).lib /delayload:$(PERL514LIB).dll $(DIRENTLIB) delayimp.lib user32.lib shell32.lib advapi32.lib /def:perl.def + +clean: + @del $(TARGET) + @del *.obj + @del *.def + @del *.lib + @del *.exp diff --git a/plugins/perl/perl-512.vcxproj b/plugins/perl/perl-512.vcxproj new file mode 100644 index 00000000..313014b9 --- /dev/null +++ b/plugins/perl/perl-512.vcxproj @@ -0,0 +1,128 @@ +<?xml version="1.0" encoding="utf-8"?> +<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <ItemGroup Label="ProjectConfigurations"> + <ProjectConfiguration Include="Release|Win32"> + <Configuration>Release</Configuration> + <Platform>Win32</Platform> + </ProjectConfiguration> + <ProjectConfiguration Include="Release|x64"> + <Configuration>Release</Configuration> + <Platform>x64</Platform> + </ProjectConfiguration> + </ItemGroup> + <PropertyGroup Label="Globals"> + <ProjectGuid>{987E9374-98A1-44BA-946F-D3472D7A7055}</ProjectGuid> + <Keyword>Win32Proj</Keyword> + <RootNamespace>perl512</RootNamespace> + </PropertyGroup> + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" /> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration"> + <ConfigurationType>DynamicLibrary</ConfigurationType> + <UseDebugLibraries>false</UseDebugLibraries> + <WholeProgramOptimization>true</WholeProgramOptimization> + <CharacterSet>MultiByte</CharacterSet> + <PlatformToolset>WDK7</PlatformToolset> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration"> + <ConfigurationType>DynamicLibrary</ConfigurationType> + <UseDebugLibraries>false</UseDebugLibraries> + <WholeProgramOptimization>true</WholeProgramOptimization> + <CharacterSet>MultiByte</CharacterSet> + <PlatformToolset>WDK7</PlatformToolset> + </PropertyGroup> + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" /> + <ImportGroup Label="ExtensionSettings"> + </ImportGroup> + <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> + <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> + <Import Project="..\..\win32\xchat.props" /> + </ImportGroup> + <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets"> + <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> + <Import Project="..\..\win32\xchat.props" /> + </ImportGroup> + <PropertyGroup Label="UserMacros" /> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> + <LinkIncremental>false</LinkIncremental> + <TargetName>$(Perl512Output)</TargetName> + <OutDir>$(SolutionDir)build\$(PlatformName)\bin</OutDir> + <IntDir>$(SolutionDir)build\$(PlatformName)\obj\$(ProjectName)</IntDir> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'"> + <LinkIncremental>false</LinkIncremental> + <TargetName>$(Perl512Output)</TargetName> + <OutDir>$(SolutionDir)build\$(PlatformName)\bin</OutDir> + <IntDir>$(SolutionDir)build\$(PlatformName)\obj\$(ProjectName)</IntDir> + </PropertyGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> + <ClCompile> + <WarningLevel>Level1</WarningLevel> + <PrecompiledHeader> + </PrecompiledHeader> + <Optimization>MaxSpeed</Optimization> + <FunctionLevelLinking>true</FunctionLevelLinking> + <IntrinsicFunctions>true</IntrinsicFunctions> + <PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;_USRDLL;PERL512_EXPORTS;$(OwnFlags);%(PreprocessorDefinitions)</PreprocessorDefinitions> + <MultiProcessorCompilation>true</MultiProcessorCompilation> + <AdditionalIncludeDirectories>$(Perl512Path)\perl\lib\CORE;$(IntDir);..;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> + </ClCompile> + <Link> + <SubSystem>Windows</SubSystem> + <GenerateDebugInformation>true</GenerateDebugInformation> + <EnableCOMDATFolding>true</EnableCOMDATFolding> + <OptimizeReferences>true</OptimizeReferences> + <AdditionalLibraryDirectories>$(OutDir);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories> + <AdditionalDependencies>$(Perl512Lib).lib;dirent-win32.lib;%(AdditionalDependencies)</AdditionalDependencies> + <ModuleDefinitionFile>perl.def</ModuleDefinitionFile> + <DelayLoadDLLs>$(Perl512Lib).dll;%(DelayLoadDLLs)</DelayLoadDLLs> + </Link> + <PreBuildEvent> + <Command>"$(GendefPath)\gendef" "$(Perl512Path)\perl\bin\$(Perl512Lib).dll" +move $(Perl512Lib).def "$(IntDir)" +lib /nologo /machine:x86 "/def:$(IntDir)$(Perl512Lib).def" "/out:$(OutDir)\$(Perl512Lib).lib" +"$(Perl512Path)\perl\bin\perl.exe" generate_header +move irc.pm.h "$(IntDir)" +move xchat.pm.h "$(IntDir)"</Command> + </PreBuildEvent> + </ItemDefinitionGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'"> + <ClCompile> + <WarningLevel>Level1</WarningLevel> + <PrecompiledHeader> + </PrecompiledHeader> + <Optimization>MaxSpeed</Optimization> + <FunctionLevelLinking>true</FunctionLevelLinking> + <IntrinsicFunctions>true</IntrinsicFunctions> + <PreprocessorDefinitions>WIN32;_WIN64;NDEBUG;_WINDOWS;_USRDLL;PERL512_EXPORTS;$(OwnFlags);%(PreprocessorDefinitions)</PreprocessorDefinitions> + <MultiProcessorCompilation>true</MultiProcessorCompilation> + <AdditionalIncludeDirectories>$(Perl512Path)\perl\lib\CORE;$(IntDir);..;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> + </ClCompile> + <Link> + <SubSystem>Windows</SubSystem> + <GenerateDebugInformation>true</GenerateDebugInformation> + <EnableCOMDATFolding>true</EnableCOMDATFolding> + <OptimizeReferences>true</OptimizeReferences> + <AdditionalLibraryDirectories>$(OutDir);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories> + <AdditionalDependencies>$(Perl512Lib).lib;dirent-win32.lib;%(AdditionalDependencies)</AdditionalDependencies> + <ModuleDefinitionFile>perl.def</ModuleDefinitionFile> + <DelayLoadDLLs>$(Perl512Lib).dll;%(DelayLoadDLLs)</DelayLoadDLLs> + </Link> + <PreBuildEvent> + <Command>"$(GendefPath)\gendef" "$(Perl512Path)\perl\bin\$(Perl512Lib).dll" +move $(Perl512Lib).def "$(IntDir)" +lib /nologo /machine:x64 "/def:$(IntDir)$(Perl512Lib).def" "/out:$(OutDir)\$(Perl512Lib).lib" +"$(Perl512Path)\perl\bin\perl.exe" generate_header +move irc.pm.h "$(IntDir)" +move xchat.pm.h "$(IntDir)"</Command> + </PreBuildEvent> + </ItemDefinitionGroup> + <ItemGroup> + <ClCompile Include="perl.c" /> + </ItemGroup> + <ItemGroup> + <None Include="perl.def" /> + </ItemGroup> + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" /> + <ImportGroup Label="ExtensionTargets"> + </ImportGroup> +</Project> \ No newline at end of file diff --git a/plugins/perl/perl-512.vcxproj.filters b/plugins/perl/perl-512.vcxproj.filters new file mode 100644 index 00000000..c6c78a57 --- /dev/null +++ b/plugins/perl/perl-512.vcxproj.filters @@ -0,0 +1,23 @@ +<?xml version="1.0" encoding="utf-8"?> +<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <ItemGroup> + <Filter Include="Source Files"> + <UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier> + <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions> + </Filter> + <Filter Include="Resource Files"> + <UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier> + <Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms</Extensions> + </Filter> + </ItemGroup> + <ItemGroup> + <ClCompile Include="perl.c"> + <Filter>Source Files</Filter> + </ClCompile> + </ItemGroup> + <ItemGroup> + <None Include="perl.def"> + <Filter>Resource Files</Filter> + </None> + </ItemGroup> +</Project> \ No newline at end of file diff --git a/plugins/perl/perl-512.vcxproj.user b/plugins/perl/perl-512.vcxproj.user new file mode 100644 index 00000000..695b5c78 --- /dev/null +++ b/plugins/perl/perl-512.vcxproj.user @@ -0,0 +1,3 @@ +<?xml version="1.0" encoding="utf-8"?> +<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> +</Project> \ No newline at end of file diff --git a/plugins/perl/perl-514.vcxproj b/plugins/perl/perl-514.vcxproj new file mode 100644 index 00000000..6e469944 --- /dev/null +++ b/plugins/perl/perl-514.vcxproj @@ -0,0 +1,128 @@ +<?xml version="1.0" encoding="utf-8"?> +<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <ItemGroup Label="ProjectConfigurations"> + <ProjectConfiguration Include="Release|Win32"> + <Configuration>Release</Configuration> + <Platform>Win32</Platform> + </ProjectConfiguration> + <ProjectConfiguration Include="Release|x64"> + <Configuration>Release</Configuration> + <Platform>x64</Platform> + </ProjectConfiguration> + </ItemGroup> + <PropertyGroup Label="Globals"> + <ProjectGuid>{C4C9FA6F-F990-4C7B-85F6-CD8F4F5728F0}</ProjectGuid> + <Keyword>Win32Proj</Keyword> + <RootNamespace>perl514</RootNamespace> + </PropertyGroup> + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" /> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration"> + <ConfigurationType>DynamicLibrary</ConfigurationType> + <UseDebugLibraries>false</UseDebugLibraries> + <WholeProgramOptimization>true</WholeProgramOptimization> + <CharacterSet>MultiByte</CharacterSet> + <PlatformToolset>WDK7</PlatformToolset> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration"> + <ConfigurationType>DynamicLibrary</ConfigurationType> + <UseDebugLibraries>false</UseDebugLibraries> + <WholeProgramOptimization>true</WholeProgramOptimization> + <CharacterSet>MultiByte</CharacterSet> + <PlatformToolset>WDK7</PlatformToolset> + </PropertyGroup> + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" /> + <ImportGroup Label="ExtensionSettings"> + </ImportGroup> + <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> + <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> + <Import Project="..\..\win32\xchat.props" /> + </ImportGroup> + <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets"> + <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> + <Import Project="..\..\win32\xchat.props" /> + </ImportGroup> + <PropertyGroup Label="UserMacros" /> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> + <LinkIncremental>false</LinkIncremental> + <TargetName>$(Perl514Output)</TargetName> + <OutDir>$(SolutionDir)build\$(PlatformName)\bin</OutDir> + <IntDir>$(SolutionDir)build\$(PlatformName)\obj\$(ProjectName)</IntDir> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'"> + <LinkIncremental>false</LinkIncremental> + <TargetName>$(Perl514Output)</TargetName> + <OutDir>$(SolutionDir)build\$(PlatformName)\bin</OutDir> + <IntDir>$(SolutionDir)build\$(PlatformName)\obj\$(ProjectName)</IntDir> + </PropertyGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> + <ClCompile> + <WarningLevel>Level1</WarningLevel> + <PrecompiledHeader> + </PrecompiledHeader> + <Optimization>MaxSpeed</Optimization> + <FunctionLevelLinking>true</FunctionLevelLinking> + <IntrinsicFunctions>true</IntrinsicFunctions> + <PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;_USRDLL;PERL514_EXPORTS;$(OwnFlags);%(PreprocessorDefinitions)</PreprocessorDefinitions> + <AdditionalIncludeDirectories>$(Perl514Path)\perl\lib\CORE;$(IntDir);..;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> + <MultiProcessorCompilation>true</MultiProcessorCompilation> + </ClCompile> + <Link> + <SubSystem>Windows</SubSystem> + <GenerateDebugInformation>true</GenerateDebugInformation> + <EnableCOMDATFolding>true</EnableCOMDATFolding> + <OptimizeReferences>true</OptimizeReferences> + <AdditionalLibraryDirectories>$(OutDir);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories> + <AdditionalDependencies>$(Perl514Lib).lib;dirent-win32.lib;%(AdditionalDependencies)</AdditionalDependencies> + <ModuleDefinitionFile>perl.def</ModuleDefinitionFile> + <DelayLoadDLLs>$(Perl514Lib).dll;%(DelayLoadDLLs)</DelayLoadDLLs> + </Link> + <PreBuildEvent> + <Command>"$(GendefPath)\gendef" "$(Perl514Path)\perl\bin\$(Perl514Lib).dll" +move $(Perl514Lib).def "$(IntDir)" +lib /nologo /machine:x86 "/def:$(IntDir)$(Perl514Lib).def" "/out:$(OutDir)\$(Perl514Lib).lib" +"$(Perl514Path)\perl\bin\perl.exe" generate_header +move irc.pm.h "$(IntDir)" +move xchat.pm.h "$(IntDir)"</Command> + </PreBuildEvent> + </ItemDefinitionGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'"> + <ClCompile> + <WarningLevel>Level1</WarningLevel> + <PrecompiledHeader> + </PrecompiledHeader> + <Optimization>MaxSpeed</Optimization> + <FunctionLevelLinking>true</FunctionLevelLinking> + <IntrinsicFunctions>true</IntrinsicFunctions> + <PreprocessorDefinitions>WIN32;_WIN64;NDEBUG;_WINDOWS;_USRDLL;PERL514_EXPORTS;$(OwnFlags);%(PreprocessorDefinitions)</PreprocessorDefinitions> + <AdditionalIncludeDirectories>$(Perl514Path)\perl\lib\CORE;$(IntDir);..;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> + <MultiProcessorCompilation>true</MultiProcessorCompilation> + </ClCompile> + <Link> + <SubSystem>Windows</SubSystem> + <GenerateDebugInformation>true</GenerateDebugInformation> + <EnableCOMDATFolding>true</EnableCOMDATFolding> + <OptimizeReferences>true</OptimizeReferences> + <AdditionalLibraryDirectories>$(OutDir);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories> + <AdditionalDependencies>$(Perl514Lib).lib;dirent-win32.lib;%(AdditionalDependencies)</AdditionalDependencies> + <ModuleDefinitionFile>perl.def</ModuleDefinitionFile> + <DelayLoadDLLs>$(Perl514Lib).dll;%(DelayLoadDLLs)</DelayLoadDLLs> + </Link> + <PreBuildEvent> + <Command>"$(GendefPath)\gendef" "$(Perl514Path)\perl\bin\$(Perl514Lib).dll" +move $(Perl514Lib).def "$(IntDir)" +lib /nologo /machine:x64 "/def:$(IntDir)$(Perl514Lib).def" "/out:$(OutDir)\$(Perl514Lib).lib" +"$(Perl514Path)\perl\bin\perl.exe" generate_header +move irc.pm.h "$(IntDir)" +move xchat.pm.h "$(IntDir)"</Command> + </PreBuildEvent> + </ItemDefinitionGroup> + <ItemGroup> + <ClCompile Include="perl.c" /> + </ItemGroup> + <ItemGroup> + <None Include="perl.def" /> + </ItemGroup> + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" /> + <ImportGroup Label="ExtensionTargets"> + </ImportGroup> +</Project> \ No newline at end of file diff --git a/plugins/perl/perl-514.vcxproj.filters b/plugins/perl/perl-514.vcxproj.filters new file mode 100644 index 00000000..c6c78a57 --- /dev/null +++ b/plugins/perl/perl-514.vcxproj.filters @@ -0,0 +1,23 @@ +<?xml version="1.0" encoding="utf-8"?> +<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <ItemGroup> + <Filter Include="Source Files"> + <UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier> + <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions> + </Filter> + <Filter Include="Resource Files"> + <UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier> + <Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms</Extensions> + </Filter> + </ItemGroup> + <ItemGroup> + <ClCompile Include="perl.c"> + <Filter>Source Files</Filter> + </ClCompile> + </ItemGroup> + <ItemGroup> + <None Include="perl.def"> + <Filter>Resource Files</Filter> + </None> + </ItemGroup> +</Project> \ No newline at end of file diff --git a/plugins/perl/perl-514.vcxproj.user b/plugins/perl/perl-514.vcxproj.user new file mode 100644 index 00000000..695b5c78 --- /dev/null +++ b/plugins/perl/perl-514.vcxproj.user @@ -0,0 +1,3 @@ +<?xml version="1.0" encoding="utf-8"?> +<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> +</Project> \ No newline at end of file diff --git a/plugins/perl/perl-516.vcxproj b/plugins/perl/perl-516.vcxproj new file mode 100644 index 00000000..06bf2fbd --- /dev/null +++ b/plugins/perl/perl-516.vcxproj @@ -0,0 +1,128 @@ +<?xml version="1.0" encoding="utf-8"?> +<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <ItemGroup Label="ProjectConfigurations"> + <ProjectConfiguration Include="Release|Win32"> + <Configuration>Release</Configuration> + <Platform>Win32</Platform> + </ProjectConfiguration> + <ProjectConfiguration Include="Release|x64"> + <Configuration>Release</Configuration> + <Platform>x64</Platform> + </ProjectConfiguration> + </ItemGroup> + <PropertyGroup Label="Globals"> + <ProjectGuid>{58654438-F674-42F7-88FA-73EF90AD80B1}</ProjectGuid> + <Keyword>Win32Proj</Keyword> + <RootNamespace>perl516</RootNamespace> + </PropertyGroup> + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" /> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration"> + <ConfigurationType>DynamicLibrary</ConfigurationType> + <UseDebugLibraries>false</UseDebugLibraries> + <WholeProgramOptimization>true</WholeProgramOptimization> + <CharacterSet>MultiByte</CharacterSet> + <PlatformToolset>WDK7</PlatformToolset> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration"> + <ConfigurationType>DynamicLibrary</ConfigurationType> + <UseDebugLibraries>false</UseDebugLibraries> + <WholeProgramOptimization>true</WholeProgramOptimization> + <CharacterSet>MultiByte</CharacterSet> + <PlatformToolset>WDK7</PlatformToolset> + </PropertyGroup> + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" /> + <ImportGroup Label="ExtensionSettings"> + </ImportGroup> + <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> + <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> + <Import Project="..\..\win32\xchat.props" /> + </ImportGroup> + <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets"> + <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> + <Import Project="..\..\win32\xchat.props" /> + </ImportGroup> + <PropertyGroup Label="UserMacros" /> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> + <LinkIncremental>false</LinkIncremental> + <TargetName>$(Perl516Output)</TargetName> + <OutDir>$(SolutionDir)build\$(PlatformName)\bin</OutDir> + <IntDir>$(SolutionDir)build\$(PlatformName)\obj\$(ProjectName)</IntDir> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'"> + <LinkIncremental>false</LinkIncremental> + <TargetName>$(Perl516Output)</TargetName> + <OutDir>$(SolutionDir)build\$(PlatformName)\bin</OutDir> + <IntDir>$(SolutionDir)build\$(PlatformName)\obj\$(ProjectName)</IntDir> + </PropertyGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> + <ClCompile> + <WarningLevel>Level1</WarningLevel> + <PrecompiledHeader> + </PrecompiledHeader> + <Optimization>MaxSpeed</Optimization> + <FunctionLevelLinking>true</FunctionLevelLinking> + <IntrinsicFunctions>true</IntrinsicFunctions> + <PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;_USRDLL;PERL516_EXPORTS;$(OwnFlags);%(PreprocessorDefinitions)</PreprocessorDefinitions> + <AdditionalIncludeDirectories>$(Perl516Path)\perl\lib\CORE;$(IntDir);..;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> + <MultiProcessorCompilation>true</MultiProcessorCompilation> + </ClCompile> + <Link> + <SubSystem>Windows</SubSystem> + <GenerateDebugInformation>true</GenerateDebugInformation> + <EnableCOMDATFolding>true</EnableCOMDATFolding> + <OptimizeReferences>true</OptimizeReferences> + <AdditionalLibraryDirectories>$(OutDir);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories> + <AdditionalDependencies>$(Perl516Lib).lib;dirent-win32.lib;%(AdditionalDependencies)</AdditionalDependencies> + <ModuleDefinitionFile>perl.def</ModuleDefinitionFile> + <DelayLoadDLLs>$(Perl516Lib).dll;%(DelayLoadDLLs)</DelayLoadDLLs> + </Link> + <PreBuildEvent> + <Command>"$(GendefPath)\gendef" "$(Perl516Path)\perl\bin\$(Perl516Lib).dll" +move $(Perl516Lib).def "$(IntDir)" +lib /nologo /machine:x86 "/def:$(IntDir)$(Perl516Lib).def" "/out:$(OutDir)\$(Perl516Lib).lib" +"$(Perl516Path)\perl\bin\perl.exe" generate_header +move irc.pm.h "$(IntDir)" +move xchat.pm.h "$(IntDir)"</Command> + </PreBuildEvent> + </ItemDefinitionGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'"> + <ClCompile> + <WarningLevel>Level1</WarningLevel> + <PrecompiledHeader> + </PrecompiledHeader> + <Optimization>MaxSpeed</Optimization> + <FunctionLevelLinking>true</FunctionLevelLinking> + <IntrinsicFunctions>true</IntrinsicFunctions> + <PreprocessorDefinitions>WIN32;_WIN64;NDEBUG;_WINDOWS;_USRDLL;PERL516_EXPORTS;$(OwnFlags);%(PreprocessorDefinitions)</PreprocessorDefinitions> + <AdditionalIncludeDirectories>$(Perl516Path)\perl\lib\CORE;$(IntDir);..;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> + <MultiProcessorCompilation>true</MultiProcessorCompilation> + </ClCompile> + <Link> + <SubSystem>Windows</SubSystem> + <GenerateDebugInformation>true</GenerateDebugInformation> + <EnableCOMDATFolding>true</EnableCOMDATFolding> + <OptimizeReferences>true</OptimizeReferences> + <AdditionalLibraryDirectories>$(OutDir);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories> + <AdditionalDependencies>$(Perl516Lib).lib;dirent-win32.lib;%(AdditionalDependencies)</AdditionalDependencies> + <ModuleDefinitionFile>perl.def</ModuleDefinitionFile> + <DelayLoadDLLs>$(Perl516Lib).dll;%(DelayLoadDLLs)</DelayLoadDLLs> + </Link> + <PreBuildEvent> + <Command>"$(GendefPath)\gendef" "$(Perl516Path)\perl\bin\$(Perl516Lib).dll" +move $(Perl516Lib).def "$(IntDir)" +lib /nologo /machine:x64 "/def:$(IntDir)$(Perl516Lib).def" "/out:$(OutDir)\$(Perl516Lib).lib" +"$(Perl516Path)\perl\bin\perl.exe" generate_header +move irc.pm.h "$(IntDir)" +move xchat.pm.h "$(IntDir)"</Command> + </PreBuildEvent> + </ItemDefinitionGroup> + <ItemGroup> + <None Include="perl.def" /> + </ItemGroup> + <ItemGroup> + <ClCompile Include="perl.c" /> + </ItemGroup> + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" /> + <ImportGroup Label="ExtensionTargets"> + </ImportGroup> +</Project> \ No newline at end of file diff --git a/plugins/perl/perl-516.vcxproj.filters b/plugins/perl/perl-516.vcxproj.filters new file mode 100644 index 00000000..f6d00b5c --- /dev/null +++ b/plugins/perl/perl-516.vcxproj.filters @@ -0,0 +1,23 @@ +<?xml version="1.0" encoding="utf-8"?> +<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <ItemGroup> + <Filter Include="Source Files"> + <UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier> + <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions> + </Filter> + <Filter Include="Resource Files"> + <UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier> + <Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms</Extensions> + </Filter> + </ItemGroup> + <ItemGroup> + <None Include="perl.def"> + <Filter>Resource Files</Filter> + </None> + </ItemGroup> + <ItemGroup> + <ClCompile Include="perl.c"> + <Filter>Source Files</Filter> + </ClCompile> + </ItemGroup> +</Project> \ No newline at end of file diff --git a/plugins/perl/perl-516.vcxproj.user b/plugins/perl/perl-516.vcxproj.user new file mode 100644 index 00000000..695b5c78 --- /dev/null +++ b/plugins/perl/perl-516.vcxproj.user @@ -0,0 +1,3 @@ +<?xml version="1.0" encoding="utf-8"?> +<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> +</Project> \ No newline at end of file diff --git a/plugins/perl/perl.c b/plugins/perl/perl.c index 1be7562e..b07aa651 100644 --- a/plugins/perl/perl.c +++ b/plugins/perl/perl.c @@ -22,12 +22,15 @@ #include <sys/types.h> #include <sys/stat.h> #include <fcntl.h> -#include <dirent.h> #ifdef ENABLE_NLS #include <locale.h> #endif #ifdef WIN32 #include <windows.h> +#define _INC_DIRENT /* disable inclusion of perl's dirent.h, we use an own version for win32 */ +#include "../../src/dirent/dirent-win32.h" +#else +#include <dirent.h> #endif #undef PACKAGE @@ -1342,7 +1345,11 @@ perl_load_file (char *filename) if (GetLastError () == ERROR_BAD_EXE_FORMAT) /* http://forum.xchat.org/viewtopic.php?t=3277 */ thread_mbox ("Cannot use this " PERL_DLL "\n\n" - "32-bit ActivePerl is required."); +#ifdef _WIN64 + "64-bit Strawberry Perl is required."); +#else + "32-bit Strawberry Perl is required."); +#endif else { /* a lot of people install this old version */ lib = LoadLibraryA ("perl56.dll"); diff --git a/plugins/plugin20.html b/plugins/plugin20.html index 787c048b..fcdff2ed 100644 --- a/plugins/plugin20.html +++ b/plugins/plugin20.html @@ -81,6 +81,13 @@ margin-right: 32px; <br><a href="#xchat_strip">xchat_strip</a> <br><a href="#xchat_free">xchat_free</a> <br> +<br><a href="#xchat_pluginpref_set_str">xchat_pluginpref_set_str</a> +<br><a href="#xchat_pluginpref_get_str">xchat_pluginpref_get_str</a> +<br><a href="#xchat_pluginpref_set_int">xchat_pluginpref_set_int</a> +<br><a href="#xchat_pluginpref_get_int">xchat_pluginpref_get_int</a> +<br><a href="#xchat_pluginpref_delete">xchat_pluginpref_delete</a> +<br><a href="#xchat_pluginpref_list">xchat_pluginpref_list</a> +<br> <br><a href="#lists">xchat_list_get</a> <br><a href="#lists">xchat_list_free</a> <br><a href="#lists">xchat_list_fields</a> (not documented yet) @@ -998,5 +1005,137 @@ A newly allocated string or NULL for failure. You must free this string with xch <br><br> +<h3><a class=cmd name="xchat_pluginpref_set_str"> xchat_pluginpref_set_str() </a><small>(new for 2.8.10)</small></h3> +<b>Prototype:</b> int xchat_pluginpref_set_str (xchat_plugin *ph, const char *var, const char *value); +<br> +<br><b>Description:</b> Saves a plugin-specific setting with string value to a plugin-specific config file. +<br> +<br><b>Arguments:</b> +<blockquote><b>ph:</b> Plugin handle (as given to xchat_plugin_init). +<br><b>var:</b> Name of the setting to save. +<br><b>value:</b> String value of the the setting. +<br> +</blockquote> +<b>Returns:</b> 1 for success, 0 for failure. +<br><br><b>Example:</b> +<blockquote> +<pre>int xchat_plugin_init (xchat_plugin *plugin_handle, + char **plugin_name, + char **plugin_desc, + char **plugin_version, + char *arg) +{ + ph = plugin_handle; + *plugin_name = "Tester Thingie"; + *plugin_desc = "Testing stuff"; + *plugin_version = "1.0"; + + xchat_pluginpref_set_str (ph, "myvar1", "I want to save this string!"); + xchat_pluginpref_set_str (ph, "myvar2", "This is important, too."); + + return 1; /* return 1 for success */ +}</pre> +</blockquote> +In the example above, the settings will be saved to the plugin_tester_thingie.conf file, and its content will be: +<blockquote> +<pre>myvar1 = I want to save this string! +myvar2 = This is important, too.</pre> +</blockquote> +You should never need to edit this file manually. +<br><br><br> + +<h3><a class=cmd name="xchat_pluginpref_get_str"> xchat_pluginpref_get_str() </a><small>(new for 2.8.10)</small></h3> +<b>Prototype:</b> int xchat_pluginpref_get_str (xchat_plugin *ph, const char *var, char *dest); +<br> +<br><b>Description:</b> Loads a plugin-specific setting with string value from a plugin-specific config file. +<br> +<br><b>Arguments:</b> +<blockquote><b>ph:</b> Plugin handle (as given to xchat_plugin_init). +<br><b>var:</b> Name of the setting to load. +<br><b>dest:</b> Array to save the loaded setting's string value to. +<br> +</blockquote> +<b>Returns:</b> 1 for success, 0 for failure. +<br><br><br> + +<h3><a class=cmd name="xchat_pluginpref_set_int"> xchat_pluginpref_set_int() </a><small>(new for 2.8.10)</small></h3> +<b>Prototype:</b> int xchat_pluginpref_set_int (xchat_plugin *ph, const char *var, int value); +<br> +<br><b>Description:</b> Saves a plugin-specific setting with decimal value to a plugin-specific config file. +<br> +<br><b>Arguments:</b> +<blockquote><b>ph:</b> Plugin handle (as given to xchat_plugin_init). +<br><b>var:</b> Name of the setting to save. +<br><b>value:</b> Decimal value of the the setting. +<br> +</blockquote> +<b>Returns:</b> 1 for success, 0 for failure. +<br><br><b>Example:</b> +<blockquote> +<pre>static int saveint_cb (char *word[], char *word_eol[], void *user_data) +{ + int buffer = atoi (word[2]); + + if (buffer > 0 && buffer < INT_MAX) + { + if (xchat_pluginpref_set_int (ph, "myint1", buffer)) + { + xchat_printf (ph, "Setting successfully saved!\n"); + } + else + { + xchat_printf (ph, "Error while saving!\n"); + } + } + else + { + xchat_printf (ph, "Invalid input!\n"); + } + + return XCHAT_EAT_XCHAT; +}</pre> +</blockquote> +You only need these kind of complex checks if you're saving user input, which can be non-numeric. +<br><br><br> + +<h3><a class=cmd name="xchat_pluginpref_get_int"> xchat_pluginpref_get_int() </a><small>(new for 2.8.10)</small></h3> +<b>Prototype:</b> int xchat_pluginpref_get_int (xchat_plugin *ph, const char *var); +<br> +<br><b>Description:</b> Loads a plugin-specific setting with decimal value from a plugin-specific config file. +<br> +<br><b>Arguments:</b> +<blockquote><b>ph:</b> Plugin handle (as given to xchat_plugin_init). +<br><b>var:</b> Name of the setting to load. +<br> +</blockquote> +<b>Returns:</b> The decimal value of the requested setting upon success, -1 for failure. +<br><br><br> + +<h3><a class=cmd name="xchat_pluginpref_delete"> xchat_pluginpref_delete() </a><small>(new for 2.8.10)</small></h3> +<b>Prototype:</b> int xchat_pluginpref_delete (xchat_plugin *ph, const char *var); +<br> +<br><b>Description:</b> Deletes a plugin-specific setting from a plugin-specific config file. +<br> +<br><b>Arguments:</b> +<blockquote><b>ph:</b> Plugin handle (as given to xchat_plugin_init). +<br><b>var:</b> Name of the setting to delete. +<br> +</blockquote> +<b>Returns:</b> 1 for success, 0 for failure. If the given setting didn't exist, it also returns 1, so 1 only indicates that the setting won't exist after the call. +<br><br><br> + +<h3><a class=cmd name="xchat_pluginpref_list"> xchat_pluginpref_list() </a><small>(new for 2.8.10)</small></h3> +<b>Prototype:</b> int xchat_pluginpref_list (xchat_plugin *ph, char *dest); +<br> +<br><b>Description:</b> Builds a comma-separated list of the currently saved settings from a plugin-specific config file. +<br> +<br><b>Arguments:</b> +<blockquote><b>ph:</b> Plugin handle (as given to xchat_plugin_init). +<br><b>dest:</b> Array to save the list to. +<br> +</blockquote> +<b>Returns:</b> 1 for success, 0 for failure (nonexistent, empty or inaccessible config file). +<br><br><br> + </body> </html> diff --git a/plugins/python/makefile.mak b/plugins/python/makefile.mak new file mode 100644 index 00000000..bc004577 --- /dev/null +++ b/plugins/python/makefile.mak @@ -0,0 +1,25 @@ +include "..\..\src\makeinc.mak" + +DIRENTLIB = ..\..\src\common\dirent-win32.lib +TARGET = $(PYTHONOUTPUT) + +all: $(TARGET) + +python.def: + echo EXPORTS > python.def + echo xchat_plugin_init >> python.def + echo xchat_plugin_deinit >> python.def + echo xchat_plugin_get_info >> python.def + +python.obj: python.c + $(CC) $(CFLAGS) /I.. /Dusleep=_sleep /DPATH_MAX=255 python.c $(GLIB) /I$(PYTHONPATH)\include /DPYTHON_DLL=\"$(PYTHONLIB).dll\" + +$(TARGET): python.obj python.def + $(LINK) /dll /out:$(TARGET) $(LDFLAGS) python.obj /libpath:$(PYTHONPATH)\libs $(PYTHONLIB).lib $(DIRENTLIB) $(LIBS) /def:python.def + +clean: + del $(TARGET) + del *.obj + del python.def + del *.lib + del *.exp diff --git a/plugins/python/python.c b/plugins/python/python.c index fd682082..74d07224 100644 --- a/plugins/python/python.c +++ b/plugins/python/python.c @@ -53,10 +53,16 @@ #include <glib.h> #include <string.h> -#include <unistd.h> #include <stdlib.h> #include <sys/types.h> + +#ifdef WIN32 +#include "../../src/dirent/dirent-win32.h" +#include "../../config.h" +#else +#include <unistd.h> #include <dirent.h> +#endif #include "xchat-plugin.h" #include "Python.h" @@ -68,7 +74,7 @@ #ifdef WIN32 #undef WITH_THREAD /* Thread support locks up xchat on Win32. */ -#define VERSION "0.8/2.4" /* Linked to python24.dll */ +#define VERSION "0.8/2.7" /* Linked to python27.dll */ #else #define VERSION "0.8" #endif diff --git a/plugins/python/python.def b/plugins/python/python.def new file mode 100644 index 00000000..5797636b --- /dev/null +++ b/plugins/python/python.def @@ -0,0 +1,4 @@ +EXPORTS +xchat_plugin_init +xchat_plugin_deinit +xchat_plugin_get_info diff --git a/plugins/python/python.vcxproj b/plugins/python/python.vcxproj new file mode 100644 index 00000000..ef50ee42 --- /dev/null +++ b/plugins/python/python.vcxproj @@ -0,0 +1,110 @@ +<?xml version="1.0" encoding="utf-8"?> +<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <ItemGroup Label="ProjectConfigurations"> + <ProjectConfiguration Include="Release|Win32"> + <Configuration>Release</Configuration> + <Platform>Win32</Platform> + </ProjectConfiguration> + <ProjectConfiguration Include="Release|x64"> + <Configuration>Release</Configuration> + <Platform>x64</Platform> + </ProjectConfiguration> + </ItemGroup> + <PropertyGroup Label="Globals"> + <ProjectGuid>{19C52A0A-A790-409E-A28A-9745FF990F5C}</ProjectGuid> + <Keyword>Win32Proj</Keyword> + <RootNamespace>python</RootNamespace> + </PropertyGroup> + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" /> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration"> + <ConfigurationType>DynamicLibrary</ConfigurationType> + <UseDebugLibraries>false</UseDebugLibraries> + <WholeProgramOptimization>true</WholeProgramOptimization> + <CharacterSet>MultiByte</CharacterSet> + <PlatformToolset>WDK7</PlatformToolset> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration"> + <ConfigurationType>DynamicLibrary</ConfigurationType> + <UseDebugLibraries>false</UseDebugLibraries> + <WholeProgramOptimization>true</WholeProgramOptimization> + <CharacterSet>MultiByte</CharacterSet> + <PlatformToolset>WDK7</PlatformToolset> + </PropertyGroup> + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" /> + <ImportGroup Label="ExtensionSettings"> + </ImportGroup> + <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> + <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> + <Import Project="..\..\win32\xchat.props" /> + </ImportGroup> + <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets"> + <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> + <Import Project="..\..\win32\xchat.props" /> + </ImportGroup> + <PropertyGroup Label="UserMacros" /> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> + <LinkIncremental>false</LinkIncremental> + <TargetName>$(PythonOutput)</TargetName> + <OutDir>$(SolutionDir)build\$(PlatformName)\bin</OutDir> + <IntDir>$(SolutionDir)build\$(PlatformName)\obj\$(ProjectName)</IntDir> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'"> + <LinkIncremental>false</LinkIncremental> + <TargetName>$(PythonOutput)</TargetName> + <OutDir>$(SolutionDir)build\$(PlatformName)\bin</OutDir> + <IntDir>$(SolutionDir)build\$(PlatformName)\obj\$(ProjectName)</IntDir> + </PropertyGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> + <ClCompile> + <WarningLevel>Level1</WarningLevel> + <PrecompiledHeader> + </PrecompiledHeader> + <Optimization>MaxSpeed</Optimization> + <FunctionLevelLinking>true</FunctionLevelLinking> + <IntrinsicFunctions>true</IntrinsicFunctions> + <PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;_USRDLL;PYTHON_EXPORTS;$(OwnFlags);%(PreprocessorDefinitions)</PreprocessorDefinitions> + <AdditionalIncludeDirectories>$(Glib);$(PythonPath)\include;..;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> + <MultiProcessorCompilation>true</MultiProcessorCompilation> + </ClCompile> + <Link> + <SubSystem>Windows</SubSystem> + <GenerateDebugInformation>true</GenerateDebugInformation> + <EnableCOMDATFolding>true</EnableCOMDATFolding> + <OptimizeReferences>true</OptimizeReferences> + <ModuleDefinitionFile>python.def</ModuleDefinitionFile> + <AdditionalDependencies>"$(PythonLib).lib";$(DepLibs);dirent-win32.lib;%(AdditionalDependencies)</AdditionalDependencies> + <AdditionalLibraryDirectories>$(DepsRoot)\lib;$(OutDir);$(PythonPath)\libs;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories> + </Link> + </ItemDefinitionGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'"> + <ClCompile> + <WarningLevel>Level1</WarningLevel> + <PrecompiledHeader> + </PrecompiledHeader> + <Optimization>MaxSpeed</Optimization> + <FunctionLevelLinking>true</FunctionLevelLinking> + <IntrinsicFunctions>true</IntrinsicFunctions> + <PreprocessorDefinitions>WIN32;_WIN64;NDEBUG;_WINDOWS;_USRDLL;PYTHON_EXPORTS;$(OwnFlags);%(PreprocessorDefinitions)</PreprocessorDefinitions> + <AdditionalIncludeDirectories>$(Glib);$(PythonPath)\include;..;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> + <MultiProcessorCompilation>true</MultiProcessorCompilation> + </ClCompile> + <Link> + <SubSystem>Windows</SubSystem> + <GenerateDebugInformation>true</GenerateDebugInformation> + <EnableCOMDATFolding>true</EnableCOMDATFolding> + <OptimizeReferences>true</OptimizeReferences> + <ModuleDefinitionFile>python.def</ModuleDefinitionFile> + <AdditionalDependencies>"$(PythonLib).lib";$(DepLibs);dirent-win32.lib;%(AdditionalDependencies)</AdditionalDependencies> + <AdditionalLibraryDirectories>$(DepsRoot)\lib;$(OutDir);$(PythonPath)\libs;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories> + </Link> + </ItemDefinitionGroup> + <ItemGroup> + <None Include="python.def" /> + </ItemGroup> + <ItemGroup> + <ClCompile Include="python.c" /> + </ItemGroup> + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" /> + <ImportGroup Label="ExtensionTargets"> + </ImportGroup> +</Project> \ No newline at end of file diff --git a/plugins/python/python.vcxproj.filters b/plugins/python/python.vcxproj.filters new file mode 100644 index 00000000..d56e53b6 --- /dev/null +++ b/plugins/python/python.vcxproj.filters @@ -0,0 +1,23 @@ +<?xml version="1.0" encoding="utf-8"?> +<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <ItemGroup> + <Filter Include="Source Files"> + <UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier> + <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions> + </Filter> + <Filter Include="Resource Files"> + <UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier> + <Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms</Extensions> + </Filter> + </ItemGroup> + <ItemGroup> + <None Include="python.def"> + <Filter>Resource Files</Filter> + </None> + </ItemGroup> + <ItemGroup> + <ClCompile Include="python.c"> + <Filter>Source Files</Filter> + </ClCompile> + </ItemGroup> +</Project> \ No newline at end of file diff --git a/plugins/python/python.vcxproj.user b/plugins/python/python.vcxproj.user new file mode 100644 index 00000000..695b5c78 --- /dev/null +++ b/plugins/python/python.vcxproj.user @@ -0,0 +1,3 @@ +<?xml version="1.0" encoding="utf-8"?> +<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> +</Project> \ No newline at end of file diff --git a/plugins/tcl/makefile.mak b/plugins/tcl/makefile.mak new file mode 100644 index 00000000..c88f5c4f --- /dev/null +++ b/plugins/tcl/makefile.mak @@ -0,0 +1,22 @@ +include "..\..\src\makeinc.mak" + +TARGET = $(TCLOUTPUT) + +all: $(TARGET) + +tcl.def: + echo EXPORTS > tcl.def + echo xchat_plugin_init >> tcl.def + echo xchat_plugin_deinit >> tcl.def + echo xchat_plugin_get_info >> tcl.def + +tclplugin.obj: tclplugin.c + $(CC) $(CFLAGS) /I.. tclplugin.c /I$(TCLPATH)\include /DTCL_DLL=\"$(TCLLIB).dll\" + +$(TARGET): tclplugin.obj tcl.def + $(LINK) /dll /out:$(TARGET) $(LDFLAGS) tclplugin.obj /libpath:$(TCLPATH)\lib $(TCLLIB).lib /delayload:$(TCLLIB).dll delayimp.lib /def:tcl.def + +clean: + del $(TARGET) + del *.obj + del tcl.def diff --git a/plugins/tcl/tcl.def b/plugins/tcl/tcl.def new file mode 100644 index 00000000..5797636b --- /dev/null +++ b/plugins/tcl/tcl.def @@ -0,0 +1,4 @@ +EXPORTS +xchat_plugin_init +xchat_plugin_deinit +xchat_plugin_get_info diff --git a/plugins/tcl/tcl.vcxproj b/plugins/tcl/tcl.vcxproj new file mode 100644 index 00000000..8820742d --- /dev/null +++ b/plugins/tcl/tcl.vcxproj @@ -0,0 +1,114 @@ +<?xml version="1.0" encoding="utf-8"?> +<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <ItemGroup Label="ProjectConfigurations"> + <ProjectConfiguration Include="Release|Win32"> + <Configuration>Release</Configuration> + <Platform>Win32</Platform> + </ProjectConfiguration> + <ProjectConfiguration Include="Release|x64"> + <Configuration>Release</Configuration> + <Platform>x64</Platform> + </ProjectConfiguration> + </ItemGroup> + <ItemGroup> + <ClInclude Include="printevents.h" /> + <ClInclude Include="tclplugin.h" /> + </ItemGroup> + <ItemGroup> + <ClCompile Include="tclplugin.c" /> + </ItemGroup> + <ItemGroup> + <None Include="tcl.def" /> + </ItemGroup> + <PropertyGroup Label="Globals"> + <ProjectGuid>{2773666A-8CFC-4533-A043-EAD59F16A1C7}</ProjectGuid> + <Keyword>Win32Proj</Keyword> + <RootNamespace>tcl</RootNamespace> + </PropertyGroup> + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" /> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration"> + <ConfigurationType>DynamicLibrary</ConfigurationType> + <UseDebugLibraries>false</UseDebugLibraries> + <WholeProgramOptimization>true</WholeProgramOptimization> + <CharacterSet>MultiByte</CharacterSet> + <PlatformToolset>WDK7</PlatformToolset> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration"> + <ConfigurationType>DynamicLibrary</ConfigurationType> + <UseDebugLibraries>false</UseDebugLibraries> + <WholeProgramOptimization>true</WholeProgramOptimization> + <CharacterSet>MultiByte</CharacterSet> + <PlatformToolset>WDK7</PlatformToolset> + </PropertyGroup> + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" /> + <ImportGroup Label="ExtensionSettings"> + </ImportGroup> + <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> + <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> + <Import Project="..\..\win32\xchat.props" /> + </ImportGroup> + <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets"> + <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> + <Import Project="..\..\win32\xchat.props" /> + </ImportGroup> + <PropertyGroup Label="UserMacros" /> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> + <LinkIncremental>false</LinkIncremental> + <TargetName>$(TclOutput)</TargetName> + <OutDir>$(SolutionDir)build\$(PlatformName)\bin</OutDir> + <IntDir>$(SolutionDir)build\$(PlatformName)\obj\$(ProjectName)</IntDir> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'"> + <LinkIncremental>false</LinkIncremental> + <TargetName>$(TclOutput)</TargetName> + <OutDir>$(SolutionDir)build\$(PlatformName)\bin</OutDir> + <IntDir>$(SolutionDir)build\$(PlatformName)\obj\$(ProjectName)</IntDir> + </PropertyGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> + <ClCompile> + <WarningLevel>Level1</WarningLevel> + <PrecompiledHeader>NotUsing</PrecompiledHeader> + <Optimization>MaxSpeed</Optimization> + <FunctionLevelLinking>true</FunctionLevelLinking> + <IntrinsicFunctions>true</IntrinsicFunctions> + <PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;_USRDLL;TCL_EXPORTS;TCL_DLL="$(TclLib).dll";$(OwnFlags);%(PreprocessorDefinitions)</PreprocessorDefinitions> + <AdditionalIncludeDirectories>$(TclPath)\include;..;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> + <MultiProcessorCompilation>true</MultiProcessorCompilation> + </ClCompile> + <Link> + <SubSystem>Windows</SubSystem> + <GenerateDebugInformation>true</GenerateDebugInformation> + <EnableCOMDATFolding>true</EnableCOMDATFolding> + <OptimizeReferences>true</OptimizeReferences> + <AdditionalLibraryDirectories>$(TclPath)\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories> + <AdditionalDependencies>"$(TclLib).lib";%(AdditionalDependencies)</AdditionalDependencies> + <ModuleDefinitionFile>tcl.def</ModuleDefinitionFile> + <DelayLoadDLLs>$(TclLib).dll;%(DelayLoadDLLs)</DelayLoadDLLs> + </Link> + </ItemDefinitionGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'"> + <ClCompile> + <WarningLevel>Level1</WarningLevel> + <PrecompiledHeader>NotUsing</PrecompiledHeader> + <Optimization>MaxSpeed</Optimization> + <FunctionLevelLinking>true</FunctionLevelLinking> + <IntrinsicFunctions>true</IntrinsicFunctions> + <PreprocessorDefinitions>WIN32;_WIN64;NDEBUG;_WINDOWS;_USRDLL;TCL_EXPORTS;TCL_DLL="$(TclLib).dll";$(OwnFlags);%(PreprocessorDefinitions)</PreprocessorDefinitions> + <AdditionalIncludeDirectories>$(TclPath)\include;..;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> + <MultiProcessorCompilation>true</MultiProcessorCompilation> + </ClCompile> + <Link> + <SubSystem>Windows</SubSystem> + <GenerateDebugInformation>true</GenerateDebugInformation> + <EnableCOMDATFolding>true</EnableCOMDATFolding> + <OptimizeReferences>true</OptimizeReferences> + <AdditionalLibraryDirectories>$(TclPath)\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories> + <AdditionalDependencies>"$(TclLib).lib";%(AdditionalDependencies)</AdditionalDependencies> + <ModuleDefinitionFile>tcl.def</ModuleDefinitionFile> + <DelayLoadDLLs>$(TclLib).dll;%(DelayLoadDLLs)</DelayLoadDLLs> + </Link> + </ItemDefinitionGroup> + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" /> + <ImportGroup Label="ExtensionTargets"> + </ImportGroup> +</Project> \ No newline at end of file diff --git a/plugins/tcl/tcl.vcxproj.filters b/plugins/tcl/tcl.vcxproj.filters new file mode 100644 index 00000000..43f63d84 --- /dev/null +++ b/plugins/tcl/tcl.vcxproj.filters @@ -0,0 +1,35 @@ +<?xml version="1.0" encoding="utf-8"?> +<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <ItemGroup> + <Filter Include="Source Files"> + <UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier> + <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions> + </Filter> + <Filter Include="Header Files"> + <UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier> + <Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions> + </Filter> + <Filter Include="Resource Files"> + <UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier> + <Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms</Extensions> + </Filter> + </ItemGroup> + <ItemGroup> + <ClInclude Include="printevents.h"> + <Filter>Header Files</Filter> + </ClInclude> + <ClInclude Include="tclplugin.h"> + <Filter>Header Files</Filter> + </ClInclude> + </ItemGroup> + <ItemGroup> + <ClCompile Include="tclplugin.c"> + <Filter>Source Files</Filter> + </ClCompile> + </ItemGroup> + <ItemGroup> + <None Include="tcl.def"> + <Filter>Resource Files</Filter> + </None> + </ItemGroup> +</Project> \ No newline at end of file diff --git a/plugins/tcl/tcl.vcxproj.user b/plugins/tcl/tcl.vcxproj.user new file mode 100644 index 00000000..695b5c78 --- /dev/null +++ b/plugins/tcl/tcl.vcxproj.user @@ -0,0 +1,3 @@ +<?xml version="1.0" encoding="utf-8"?> +<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> +</Project> \ No newline at end of file diff --git a/plugins/tcl/tclplugin.c b/plugins/tcl/tclplugin.c index 17dc7556..920a48ad 100644 --- a/plugins/tcl/tclplugin.c +++ b/plugins/tcl/tclplugin.c @@ -2221,7 +2221,7 @@ int xchat_plugin_init(xchat_plugin * plugin_handle, char **plugin_name, char **p #ifdef WIN32 lib = LoadLibraryA(TCL_DLL); if (!lib) { - xchat_print(ph, "You must have ActiveTCL installed in order to run Tcl scripts.\n" "http://aspn.activestate.com/ASPN/Tcl/\n" "Make sure Tcl's bin directory is in your PATH.\n\n"); + xchat_print(ph, "You must have ActiveTCL 8.5 installed in order to run Tcl scripts.\n" "http://www.activestate.com/activetcl/downloads\n" "Make sure Tcl's bin directory is in your PATH.\n"); return 0; } FreeLibrary(lib); diff --git a/plugins/upd/makefile.mak b/plugins/upd/makefile.mak new file mode 100644 index 00000000..34b54cb8 --- /dev/null +++ b/plugins/upd/makefile.mak @@ -0,0 +1,18 @@ +include "..\..\src\makeinc.mak" + +all: upd.obj upd.def + link $(LDFLAGS) $(LIBS) /dll /out:xcupd.dll /def:upd.def upd.obj + +upd.def: + echo EXPORTS > upd.def + echo xchat_plugin_init >> upd.def + echo xchat_plugin_deinit >> upd.def + +upd.obj: upd.c makefile.mak + cl $(CFLAGS) $(GLIB) /I.. upd.c + +clean: + del *.obj + del *.dll + del *.exp + del *.lib diff --git a/plugins/upd/upd.c b/plugins/upd/upd.c new file mode 100644 index 00000000..1659162c --- /dev/null +++ b/plugins/upd/upd.c @@ -0,0 +1,226 @@ +/* XChat-WDK + * Copyright (c) 2010-2011 Berke Viktor. + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ + +#include <windows.h> +#include <wininet.h> + +#include "xchat-plugin.h" + +static xchat_plugin *ph; /* plugin handle */ +static const char name[] = "Update Checker"; +static const char desc[] = "Check for XChat-WDK updates automatically"; +static const char version[] = "2.1"; + +static char* +check_version () +{ +#if 0 + HINTERNET hINet, hFile; + hINet = InternetOpen ("Update Checker", INTERNET_OPEN_TYPE_PRECONFIG, NULL, NULL, 0); + + if (!hINet) + { + return "Unknown"; + } + + hFile = InternetOpenUrl (hINet, + "http://xchat-wdk.googlecode.com/git/version.txt?r=wdk", + NULL, + 0, + INTERNET_FLAG_NO_CACHE_WRITE | INTERNET_FLAG_RELOAD, + 0); + if (hFile) + { + static char buffer[1024]; + DWORD dwRead; + while (InternetReadFile (hFile, buffer, 1023, &dwRead)) + { + if (dwRead == 0) + { + break; + } + buffer[dwRead] = 0; + } + + InternetCloseHandle (hFile); + InternetCloseHandle (hINet); + return buffer; + } + + InternetCloseHandle (hINet); + return "Unknown"; +#endif + + /* Google Code's messing up with requests, use HTTP/1.0 as suggested. More info: + + http://code.google.com/p/support/issues/detail?id=6095 + + Of course it would be still too simple, coz IE will override settings, so + you have to disable HTTP/1.1 manually and globally. More info: + + http://support.microsoft.com/kb/258425 + + So this code's basically useless since disabling HTTP/1.1 will work with the + above code too. + + Update: a Connection: close header seems to disable chunked encoding. + */ + + HINTERNET hOpen, hConnect, hResource; + + hOpen = InternetOpen (TEXT ("Update Checker"), + INTERNET_OPEN_TYPE_PRECONFIG, + NULL, + NULL, + 0); + if (!hOpen) + { + return "Unknown"; + } + + hConnect = InternetConnect (hOpen, + TEXT ("xchat-wdk.googlecode.com"), + INTERNET_INVALID_PORT_NUMBER, + NULL, + NULL, + INTERNET_SERVICE_HTTP, + 0, + 0); + if (!hConnect) + { + InternetCloseHandle (hOpen); + return "Unknown"; + } + + hResource = HttpOpenRequest (hConnect, + TEXT ("GET"), + TEXT ("/git/version.txt?r=wdk"), + TEXT ("HTTP/1.0"), + NULL, + NULL, + INTERNET_FLAG_NO_CACHE_WRITE | INTERNET_FLAG_RELOAD | INTERNET_FLAG_NO_AUTH, + 0); + if (!hResource) + { + InternetCloseHandle (hConnect); + InternetCloseHandle (hOpen); + return "Unknown"; + } + else + { + static char buffer[1024]; + DWORD dwRead; + + HttpAddRequestHeaders (hResource, TEXT ("Connection: close\r\n"), -1L, HTTP_ADDREQ_FLAG_ADD); /* workaround for GC bug */ + HttpSendRequest (hResource, NULL, 0, NULL, 0); + + while (InternetReadFile (hResource, buffer, 1023, &dwRead)) + { + if (dwRead == 0) + { + break; + } + buffer[dwRead] = 0; + } + + InternetCloseHandle (hResource); + InternetCloseHandle (hConnect); + InternetCloseHandle (hOpen); + return buffer; + } +} + +static int +print_version () +{ + char *version = check_version (); + + if (strcmp (version, xchat_get_info (ph, "wdk_version")) == 0) + { + xchat_printf (ph, "You have the latest version of XChat-WDK installed!\n"); + } + else if (strcmp (version, "Unknown") == 0) + { + xchat_printf (ph, "Unable to check for XChat-WDK updates!\n"); + } + else + { +#ifdef _WIN64 /* use this approach, the wProcessorArchitecture method always returns 0 (=x86) for some reason */ + xchat_printf (ph, "An XChat-WDK update is available! You can download it from here:\nhttp://xchat-wdk.googlecode.com/files/XChat-WDK%%20%s%%20x64.exe\n", version); +#else + xchat_printf (ph, "An XChat-WDK update is available! You can download it from here:\nhttp://xchat-wdk.googlecode.com/files/XChat-WDK%%20%s%%20x86.exe\n", version); +#endif + } + + return XCHAT_EAT_XCHAT; +} + +static int +print_version_quiet (void *userdata) +{ + char *version = check_version (); + + /* if it's not the current version AND not network error */ + if (!(strcmp (version, xchat_get_info (ph, "wdk_version")) == 0) && !(strcmp (version, "Unknown") == 0)) + { +#ifdef _WIN64 /* use this approach, the wProcessorArchitecture method always returns 0 (=x86) for plugins for some reason */ + xchat_printf (ph, "An XChat-WDK update is available! You can download it from here:\nhttp://xchat-wdk.googlecode.com/files/XChat-WDK%%20%s%%20x64.exe\n", version); +#else + xchat_printf (ph, "An XChat-WDK update is available! You can download it from here:\nhttp://xchat-wdk.googlecode.com/files/XChat-WDK%%20%s%%20x86.exe\n", version); +#endif + /* print update url once, then stop the timer */ + return 0; + } + /* keep checking */ + return 1; +} + +int +xchat_plugin_init (xchat_plugin *plugin_handle, char **plugin_name, char **plugin_desc, char **plugin_version, char *arg) +{ + ph = plugin_handle; + + *plugin_name = name; + *plugin_desc = desc; + *plugin_version = version; + + xchat_hook_command (ph, "UPDCHK", XCHAT_PRI_NORM, print_version, 0, 0); + xchat_command (ph, "MENU -ietc\\download.png ADD \"Help/Check for Updates\" \"UPDCHK\""); + xchat_printf (ph, "%s plugin loaded\n", name); + + /* only start the timer if there's no update available during startup */ + if (print_version_quiet (NULL)) + { + /* check for updates every 6 hours */ + xchat_hook_timer (ph, 21600000, print_version_quiet, NULL); + } + + return 1; /* return 1 for success */ +} + +int +xchat_plugin_deinit (void) +{ + xchat_command (ph, "MENU DEL \"Help/Check for updates\""); + xchat_printf (ph, "%s plugin unloaded\n", name); + return 1; +} diff --git a/plugins/upd/upd.def b/plugins/upd/upd.def new file mode 100644 index 00000000..77670bf2 --- /dev/null +++ b/plugins/upd/upd.def @@ -0,0 +1,3 @@ +EXPORTS +xchat_plugin_init +xchat_plugin_deinit diff --git a/plugins/upd/upd.vcxproj b/plugins/upd/upd.vcxproj new file mode 100644 index 00000000..dc853ff8 --- /dev/null +++ b/plugins/upd/upd.vcxproj @@ -0,0 +1,110 @@ +<?xml version="1.0" encoding="utf-8"?> +<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <ItemGroup Label="ProjectConfigurations"> + <ProjectConfiguration Include="Release|Win32"> + <Configuration>Release</Configuration> + <Platform>Win32</Platform> + </ProjectConfiguration> + <ProjectConfiguration Include="Release|x64"> + <Configuration>Release</Configuration> + <Platform>x64</Platform> + </ProjectConfiguration> + </ItemGroup> + <PropertyGroup Label="Globals"> + <ProjectGuid>{461DC24A-A410-4171-8C02-CCDBF3702C2A}</ProjectGuid> + <Keyword>Win32Proj</Keyword> + <RootNamespace>upd</RootNamespace> + </PropertyGroup> + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" /> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration"> + <ConfigurationType>DynamicLibrary</ConfigurationType> + <UseDebugLibraries>false</UseDebugLibraries> + <WholeProgramOptimization>true</WholeProgramOptimization> + <CharacterSet>MultiByte</CharacterSet> + <PlatformToolset>WDK7</PlatformToolset> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration"> + <ConfigurationType>DynamicLibrary</ConfigurationType> + <UseDebugLibraries>false</UseDebugLibraries> + <WholeProgramOptimization>true</WholeProgramOptimization> + <CharacterSet>MultiByte</CharacterSet> + <PlatformToolset>WDK7</PlatformToolset> + </PropertyGroup> + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" /> + <ImportGroup Label="ExtensionSettings"> + </ImportGroup> + <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> + <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> + <Import Project="..\..\win32\xchat.props" /> + </ImportGroup> + <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets"> + <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> + <Import Project="..\..\win32\xchat.props" /> + </ImportGroup> + <PropertyGroup Label="UserMacros" /> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> + <LinkIncremental>false</LinkIncremental> + <TargetName>xcupd</TargetName> + <OutDir>$(SolutionDir)build\$(PlatformName)\bin</OutDir> + <IntDir>$(SolutionDir)build\$(PlatformName)\obj\$(ProjectName)</IntDir> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'"> + <LinkIncremental>false</LinkIncremental> + <TargetName>xcupd</TargetName> + <OutDir>$(SolutionDir)build\$(PlatformName)\bin</OutDir> + <IntDir>$(SolutionDir)build\$(PlatformName)\obj\$(ProjectName)</IntDir> + </PropertyGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> + <ClCompile> + <WarningLevel>Level1</WarningLevel> + <PrecompiledHeader> + </PrecompiledHeader> + <Optimization>MaxSpeed</Optimization> + <FunctionLevelLinking>true</FunctionLevelLinking> + <IntrinsicFunctions>true</IntrinsicFunctions> + <PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;_USRDLL;UPD_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <MultiProcessorCompilation>true</MultiProcessorCompilation> + <AdditionalIncludeDirectories>..;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> + </ClCompile> + <Link> + <SubSystem>Windows</SubSystem> + <GenerateDebugInformation>true</GenerateDebugInformation> + <EnableCOMDATFolding>true</EnableCOMDATFolding> + <OptimizeReferences>true</OptimizeReferences> + <ModuleDefinitionFile>upd.def</ModuleDefinitionFile> + <AdditionalDependencies>$(DepLibs);%(AdditionalDependencies)</AdditionalDependencies> + <AdditionalLibraryDirectories>$(DepsRoot)\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories> + </Link> + </ItemDefinitionGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'"> + <ClCompile> + <WarningLevel>Level1</WarningLevel> + <PrecompiledHeader> + </PrecompiledHeader> + <Optimization>MaxSpeed</Optimization> + <FunctionLevelLinking>true</FunctionLevelLinking> + <IntrinsicFunctions>true</IntrinsicFunctions> + <PreprocessorDefinitions>WIN32;_WIN64;NDEBUG;_WINDOWS;_USRDLL;UPD_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <MultiProcessorCompilation>true</MultiProcessorCompilation> + <AdditionalIncludeDirectories>..;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> + </ClCompile> + <Link> + <SubSystem>Windows</SubSystem> + <GenerateDebugInformation>true</GenerateDebugInformation> + <EnableCOMDATFolding>true</EnableCOMDATFolding> + <OptimizeReferences>true</OptimizeReferences> + <ModuleDefinitionFile>upd.def</ModuleDefinitionFile> + <AdditionalDependencies>$(DepLibs);%(AdditionalDependencies)</AdditionalDependencies> + <AdditionalLibraryDirectories>$(DepsRoot)\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories> + </Link> + </ItemDefinitionGroup> + <ItemGroup> + <None Include="upd.def" /> + </ItemGroup> + <ItemGroup> + <ClCompile Include="upd.c" /> + </ItemGroup> + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" /> + <ImportGroup Label="ExtensionTargets"> + </ImportGroup> +</Project> \ No newline at end of file diff --git a/plugins/upd/upd.vcxproj.filters b/plugins/upd/upd.vcxproj.filters new file mode 100644 index 00000000..e3d7397e --- /dev/null +++ b/plugins/upd/upd.vcxproj.filters @@ -0,0 +1,23 @@ +<?xml version="1.0" encoding="utf-8"?> +<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <ItemGroup> + <Filter Include="Source Files"> + <UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier> + <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions> + </Filter> + <Filter Include="Resource Files"> + <UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier> + <Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms</Extensions> + </Filter> + </ItemGroup> + <ItemGroup> + <None Include="upd.def"> + <Filter>Resource Files</Filter> + </None> + </ItemGroup> + <ItemGroup> + <ClCompile Include="upd.c"> + <Filter>Source Files</Filter> + </ClCompile> + </ItemGroup> +</Project> \ No newline at end of file diff --git a/plugins/upd/upd.vcxproj.user b/plugins/upd/upd.vcxproj.user new file mode 100644 index 00000000..695b5c78 --- /dev/null +++ b/plugins/upd/upd.vcxproj.user @@ -0,0 +1,3 @@ +<?xml version="1.0" encoding="utf-8"?> +<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> +</Project> \ No newline at end of file diff --git a/plugins/winamp/makefile.mak b/plugins/winamp/makefile.mak new file mode 100644 index 00000000..79adf87e --- /dev/null +++ b/plugins/winamp/makefile.mak @@ -0,0 +1,18 @@ +include "..\..\src\makeinc.mak" + +all: winamp.obj winamp.def + link $(LDFLAGS) $(LIBS) /dll /out:xcwinamp.dll /def:winamp.def winamp.obj + +winamp.def: + echo EXPORTS > winamp.def + echo xchat_plugin_init >> winamp.def + echo xchat_plugin_deinit >> winamp.def + +winamp.obj: winamp.c makefile.mak + cl $(CFLAGS) /I.. winamp.c + +clean: + del *.obj + del *.dll + del *.exp + del *.lib diff --git a/plugins/winamp/winamp.c b/plugins/winamp/winamp.c new file mode 100644 index 00000000..7201a875 --- /dev/null +++ b/plugins/winamp/winamp.c @@ -0,0 +1,189 @@ +/********************* Winamp Plugin 0.3****************************** + * + * Distribution: GPL + * + * Originally written by: Leo - leo.nard@free.fr + * Modified by: SilvereX - SilvereX@karklas.mif.vu.lt + * Modified again by: Derek Buitenhuis - daemon404@gmail.com + * Modified yet again by: Berke Viktor - berkeviktor@aol.com + *********************************************************************/ + +#include "windows.h" + +#include <stdio.h> +#include <stdlib.h> +#include <string.h> + +#include "xchat-plugin.h" + +#define PLAYING 1 +#define PAUSED 3 + +static xchat_plugin *ph; /* plugin handle */ + +BOOL winamp_found = FALSE; + +int status = 0; + +/* Slightly modified from X-Chat's log_escape_strcpy */ +static char * +song_strcpy (char *dest, char *src) +{ + while (*src) + { + *dest = *src; + dest++; + src++; + + if (*src == '%') + { + dest[0] = '%'; + dest++; + } + } + + dest[0] = 0; + return dest - 1; +} + +static int +winamp(char *word[], char *word_eol[], void *userdata) +{ + +char current_play[2048], *p; +char p_esc[2048]; +char cur_esc[2048]; +char truc[2048]; +HWND hwndWinamp = FindWindow("Winamp v1.x",NULL); + + if (hwndWinamp) + { + { + if (!stricmp("PAUSE", word[2])) + { + if (SendMessage(hwndWinamp,WM_USER, 0, 104)) + { + SendMessage(hwndWinamp, WM_COMMAND, 40046, 0); + + if (SendMessage(hwndWinamp, WM_USER, 0, 104) == PLAYING) + xchat_printf(ph, "Winamp: playing"); + else + xchat_printf(ph, "Winamp: paused"); + } + } + else + if (!stricmp("STOP", word[2])) + { + SendMessage(hwndWinamp, WM_COMMAND, 40047, 0); + xchat_printf(ph, "Winamp: stopped"); + } + else + if (!stricmp("PLAY", word[2])) + { + SendMessage(hwndWinamp, WM_COMMAND, 40045, 0); + xchat_printf(ph, "Winamp: playing"); + } + else + + if (!stricmp("NEXT", word[2])) + { + SendMessage(hwndWinamp, WM_COMMAND, 40048, 0); + xchat_printf(ph, "Winamp: next playlist entry"); + } + else + + if (!stricmp("PREV", word[2])) + { + SendMessage(hwndWinamp, WM_COMMAND, 40044, 0); + xchat_printf(ph, "Winamp: previous playlist entry"); + } + else + + if (!stricmp("START", word[2])) + { + SendMessage(hwndWinamp, WM_COMMAND, 40154, 0); + xchat_printf(ph, "Winamp: playlist start"); + } + + else + + if (!word_eol[2][0]) + { + GetWindowText(hwndWinamp, current_play, sizeof(current_play)); + + if (strchr(current_play, '-')) + { + + p = current_play + strlen(current_play) - 8; + while (p >= current_play) + { + if (!strnicmp(p, "- Winamp", 8)) break; + p--; + } + + if (p >= current_play) p--; + + while (p >= current_play && *p == ' ') p--; + *++p=0; + + + p = strchr(current_play, '.') + 1; + + song_strcpy(p_esc, p); + song_strcpy(cur_esc, current_play); + + if (p) + { + sprintf(truc, "me is now playing:%s", p_esc); + } + else + { + sprintf(truc, "me is now playing:%s", cur_esc); + } + + xchat_commandf(ph, truc); + + } + else xchat_print(ph, "Winamp: Nothing being played."); + } + else + xchat_printf(ph, "Usage: /WINAMP [PAUSE|PLAY|STOP|NEXT|PREV|START]\n"); + } + + } + else + { + xchat_print(ph, "Winamp not found.\n"); + } + return XCHAT_EAT_ALL; +} + +int +xchat_plugin_init(xchat_plugin *plugin_handle, + char **plugin_name, + char **plugin_desc, + char **plugin_version, + char *arg) +{ + /* we need to save this for use with any xchat_* functions */ + ph = plugin_handle; + + *plugin_name = "Winamp"; + *plugin_desc = "Winamp plugin for XChat"; + *plugin_version = "0.5"; + + xchat_hook_command (ph, "WINAMP", XCHAT_PRI_NORM, winamp, "Usage: /WINAMP [PAUSE|PLAY|STOP|NEXT|PREV|START] - control Winamp or show what's currently playing", 0); + xchat_command (ph, "MENU -ietc\\music.png ADD \"Window/Display Current Song (Winamp)\" \"WINAMP\""); + + xchat_print (ph, "Winamp plugin loaded\n"); + + return 1; /* return 1 for success */ +} + +int +xchat_plugin_deinit(void) +{ + xchat_command (ph, "MENU DEL \"Window/Display Current Song (Winamp)\""); + xchat_print (ph, "Winamp plugin unloaded\n"); + return 1; +} diff --git a/plugins/winamp/winamp.def b/plugins/winamp/winamp.def new file mode 100644 index 00000000..77670bf2 --- /dev/null +++ b/plugins/winamp/winamp.def @@ -0,0 +1,3 @@ +EXPORTS +xchat_plugin_init +xchat_plugin_deinit diff --git a/plugins/winamp/winamp.vcxproj b/plugins/winamp/winamp.vcxproj new file mode 100644 index 00000000..2b5f3633 --- /dev/null +++ b/plugins/winamp/winamp.vcxproj @@ -0,0 +1,106 @@ +<?xml version="1.0" encoding="utf-8"?> +<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <ItemGroup Label="ProjectConfigurations"> + <ProjectConfiguration Include="Release|Win32"> + <Configuration>Release</Configuration> + <Platform>Win32</Platform> + </ProjectConfiguration> + <ProjectConfiguration Include="Release|x64"> + <Configuration>Release</Configuration> + <Platform>x64</Platform> + </ProjectConfiguration> + </ItemGroup> + <PropertyGroup Label="Globals"> + <ProjectGuid>{E78C0D9A-798E-4BF6-B0CC-6FECB8CA2FCE}</ProjectGuid> + <Keyword>Win32Proj</Keyword> + <RootNamespace>winamp</RootNamespace> + </PropertyGroup> + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" /> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration"> + <ConfigurationType>DynamicLibrary</ConfigurationType> + <UseDebugLibraries>false</UseDebugLibraries> + <WholeProgramOptimization>true</WholeProgramOptimization> + <CharacterSet>MultiByte</CharacterSet> + <PlatformToolset>WDK7</PlatformToolset> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration"> + <ConfigurationType>DynamicLibrary</ConfigurationType> + <UseDebugLibraries>false</UseDebugLibraries> + <WholeProgramOptimization>true</WholeProgramOptimization> + <CharacterSet>MultiByte</CharacterSet> + <PlatformToolset>WDK7</PlatformToolset> + </PropertyGroup> + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" /> + <ImportGroup Label="ExtensionSettings"> + </ImportGroup> + <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> + <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> + <Import Project="..\..\win32\xchat.props" /> + </ImportGroup> + <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets"> + <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> + <Import Project="..\..\win32\xchat.props" /> + </ImportGroup> + <PropertyGroup Label="UserMacros" /> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> + <LinkIncremental>false</LinkIncremental> + <TargetName>xcwinamp</TargetName> + <OutDir>$(SolutionDir)build\$(PlatformName)\bin</OutDir> + <IntDir>$(SolutionDir)build\$(PlatformName)\obj\$(ProjectName)</IntDir> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'"> + <LinkIncremental>false</LinkIncremental> + <TargetName>xcwinamp</TargetName> + <OutDir>$(SolutionDir)build\$(PlatformName)\bin</OutDir> + <IntDir>$(SolutionDir)build\$(PlatformName)\obj\$(ProjectName)</IntDir> + </PropertyGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> + <ClCompile> + <WarningLevel>Level1</WarningLevel> + <PrecompiledHeader> + </PrecompiledHeader> + <Optimization>MaxSpeed</Optimization> + <FunctionLevelLinking>true</FunctionLevelLinking> + <IntrinsicFunctions>true</IntrinsicFunctions> + <PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;_USRDLL;WINAMP_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <MultiProcessorCompilation>true</MultiProcessorCompilation> + <AdditionalIncludeDirectories>..;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> + </ClCompile> + <Link> + <SubSystem>Windows</SubSystem> + <GenerateDebugInformation>true</GenerateDebugInformation> + <EnableCOMDATFolding>true</EnableCOMDATFolding> + <OptimizeReferences>true</OptimizeReferences> + <ModuleDefinitionFile>winamp.def</ModuleDefinitionFile> + </Link> + </ItemDefinitionGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'"> + <ClCompile> + <WarningLevel>Level1</WarningLevel> + <PrecompiledHeader> + </PrecompiledHeader> + <Optimization>MaxSpeed</Optimization> + <FunctionLevelLinking>true</FunctionLevelLinking> + <IntrinsicFunctions>true</IntrinsicFunctions> + <PreprocessorDefinitions>WIN32;_WIN64;NDEBUG;_WINDOWS;_USRDLL;WINAMP_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <MultiProcessorCompilation>true</MultiProcessorCompilation> + <AdditionalIncludeDirectories>..;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> + </ClCompile> + <Link> + <SubSystem>Windows</SubSystem> + <GenerateDebugInformation>true</GenerateDebugInformation> + <EnableCOMDATFolding>true</EnableCOMDATFolding> + <OptimizeReferences>true</OptimizeReferences> + <ModuleDefinitionFile>winamp.def</ModuleDefinitionFile> + </Link> + </ItemDefinitionGroup> + <ItemGroup> + <None Include="winamp.def" /> + </ItemGroup> + <ItemGroup> + <ClCompile Include="winamp.c" /> + </ItemGroup> + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" /> + <ImportGroup Label="ExtensionTargets"> + </ImportGroup> +</Project> \ No newline at end of file diff --git a/plugins/winamp/winamp.vcxproj.filters b/plugins/winamp/winamp.vcxproj.filters new file mode 100644 index 00000000..1a800a33 --- /dev/null +++ b/plugins/winamp/winamp.vcxproj.filters @@ -0,0 +1,23 @@ +<?xml version="1.0" encoding="utf-8"?> +<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <ItemGroup> + <Filter Include="Source Files"> + <UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier> + <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions> + </Filter> + <Filter Include="Resource Files"> + <UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier> + <Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms</Extensions> + </Filter> + </ItemGroup> + <ItemGroup> + <None Include="winamp.def"> + <Filter>Resource Files</Filter> + </None> + </ItemGroup> + <ItemGroup> + <ClCompile Include="winamp.c"> + <Filter>Source Files</Filter> + </ClCompile> + </ItemGroup> +</Project> \ No newline at end of file diff --git a/plugins/winamp/winamp.vcxproj.user b/plugins/winamp/winamp.vcxproj.user new file mode 100644 index 00000000..695b5c78 --- /dev/null +++ b/plugins/winamp/winamp.vcxproj.user @@ -0,0 +1,3 @@ +<?xml version="1.0" encoding="utf-8"?> +<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> +</Project> \ No newline at end of file diff --git a/plugins/winsys/makefile.mak b/plugins/winsys/makefile.mak new file mode 100644 index 00000000..31f24eb1 --- /dev/null +++ b/plugins/winsys/makefile.mak @@ -0,0 +1,18 @@ +include "..\..\src\makeinc.mak" + +all: winsys.obj winsys.def + link $(LDFLAGS) $(LIBS) /NODEFAULTLIB:comsupp.lib wbemuuid.lib vccomsup.lib /dll /out:xcwinsys.dll /def:winsys.def winsys.obj + +winsys.def: + echo EXPORTS > winsys.def + echo xchat_plugin_init >> winsys.def + echo xchat_plugin_deinit >> winsys.def + +winsys.obj: winsys.cpp makefile.mak + cl $(CFLAGS) $(GLIB) /DUNICODE /D_UNICODE /Zc:wchar_t- /I.. winsys.cpp + +clean: + del *.obj + del *.dll + del *.exp + del *.lib diff --git a/plugins/winsys/winsys.cpp b/plugins/winsys/winsys.cpp new file mode 100644 index 00000000..398767d0 --- /dev/null +++ b/plugins/winsys/winsys.cpp @@ -0,0 +1,415 @@ +/* XChat-WDK + * Copyright (c) 2011 Berke Viktor. + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ + +#include <stdio.h> +#include <windows.h> +#include <comutil.h> +#include <wbemidl.h> + +#include "xchat-plugin.h" + +static xchat_plugin *ph; /* plugin handle */ +static char name[] = "WinSys"; +static char desc[] = "Display info about your hardware and OS"; +static char version[] = "1.1"; +static int firstRun; +static char *wmiOs; +static char *wmiCpu; +static char *wmiVga; + +static int +getCpuArch (void) +{ + OSVERSIONINFOEX osvi; + SYSTEM_INFO si; + + osvi.dwOSVersionInfoSize = sizeof (OSVERSIONINFOEX); + GetVersionEx ((LPOSVERSIONINFOW) &osvi); + + GetSystemInfo (&si); + + if (si.wProcessorArchitecture == 9) + { + return 64; + } + else + { + return 86; + } +} + +#if 0 +/* use WMI instead, wProcessorArchitecture displays current binary arch instead of OS arch anyway */ +static char * +getOsName (void) +{ + static char winver[32]; + double mhz; + OSVERSIONINFOEX osvi; + SYSTEM_INFO si; + + osvi.dwOSVersionInfoSize = sizeof (OSVERSIONINFOEX); + GetVersionEx ((LPOSVERSIONINFOW) &osvi); + + GetSystemInfo (&si); + + strcpy (winver, "Windows "); + + switch (osvi.dwMajorVersion) + { + case 5: + switch (osvi.dwMinorVersion) + { + case 1: + strcat (winver, "XP"); + break; + case 2: + if (osvi.wProductType == VER_NT_WORKSTATION) + { + strcat (winver, "XP x64 Edition"); + } + else + { + if (GetSystemMetrics(SM_SERVERR2) == 0) + { + strcat (winver, "Server 2003"); + } + else + { + strcat (winver, "Server 2003 R2"); + } + } + break; + } + break; + case 6: + switch (osvi.dwMinorVersion) + { + case 0: + if (osvi.wProductType == VER_NT_WORKSTATION) + { + strcat (winver, "Vista"); + } + else + { + strcat (winver, "Server 2008"); + } + break; + case 1: + if (osvi.wProductType == VER_NT_WORKSTATION) + { + strcat (winver, "7"); + } + else + { + strcat (winver, "Server 2008 R2"); + } + break; + case 2: + if (osvi.wProductType == VER_NT_WORKSTATION) + { + strcat (winver, "8"); + } + else + { + strcat (winver, "8 Server"); + } + break; + } + break; + } + + if (si.wProcessorArchitecture == 9) + { + strcat (winver, " (x64)"); + } + else + { + strcat (winver, " (x86)"); + } + + return winver; +} + +/* x86-only, SDK-only, use WMI instead */ +static char * +getCpuName (void) +{ + // Get extended ids. + unsigned int nExIds; + unsigned int i; + int CPUInfo[4] = {-1}; + static char CPUBrandString[128]; + + __cpuid (CPUInfo, 0x80000000); + nExIds = CPUInfo[0]; + + /* Get the information associated with each extended ID. */ + for (i=0x80000000; i <= nExIds; ++i) + { + __cpuid (CPUInfo, i); + + if (i == 0x80000002) + { + memcpy (CPUBrandString, CPUInfo, sizeof (CPUInfo)); + } + else if (i == 0x80000003) + { + memcpy( CPUBrandString + 16, CPUInfo, sizeof (CPUInfo)); + } + else if (i == 0x80000004) + { + memcpy (CPUBrandString + 32, CPUInfo, sizeof (CPUInfo)); + } + } + + return CPUBrandString; +} +#endif + +static char * +getCpuMhz (void) +{ + HKEY hKey; + int result; + int data; + int dataSize; + double cpuspeed; + static char buffer[16]; + const char *cpuspeedstr; + + if (RegOpenKeyEx (HKEY_LOCAL_MACHINE, TEXT("Hardware\\Description\\System\\CentralProcessor\\0"), 0, KEY_QUERY_VALUE, &hKey) == ERROR_SUCCESS) + { + dataSize = sizeof (data); + result = RegQueryValueEx (hKey, TEXT("~MHz"), 0, 0, (LPBYTE)&data, (LPDWORD)&dataSize); + RegCloseKey (hKey); + if (result == ERROR_SUCCESS) + { + cpuspeed = ( data > 1000 ) ? data / 1000 : data; + cpuspeedstr = ( data > 1000 ) ? "GHz" : "MHz"; + sprintf (buffer, "%.2f %s", cpuspeed, cpuspeedstr); + } + } + + return buffer; +} + +static char * +getMemoryInfo (void) +{ + static char buffer[32]; + MEMORYSTATUSEX meminfo; + + meminfo.dwLength = sizeof (meminfo); + GlobalMemoryStatusEx (&meminfo); + + sprintf (buffer, "%I64d MB Total (%I64d MB Free)", meminfo.ullTotalPhys / 1024 / 1024, meminfo.ullAvailPhys / 1024 / 1024); + + return buffer; +} + +static char * +getWmiInfo (int mode) +{ + /* for more details about this wonderful API, see + http://msdn.microsoft.com/en-us/site/aa394138 + http://msdn.microsoft.com/en-us/site/aa390423 + http://msdn.microsoft.com/en-us/library/windows/desktop/aa394138%28v=vs.85%29.aspx + http://social.msdn.microsoft.com/forums/en-US/vcgeneral/thread/d6420012-e432-4964-8506-6f6b65e5a451 + */ + + char *buffer = (char *) malloc (128); + HRESULT hres; + HRESULT hr; + IWbemLocator *pLoc = NULL; + IWbemServices *pSvc = NULL; + IEnumWbemClassObject *pEnumerator = NULL; + IWbemClassObject *pclsObj; + ULONG uReturn = 0; + + hres = CoInitializeEx (0, COINIT_APARTMENTTHREADED | COINIT_SPEED_OVER_MEMORY); + + if (FAILED (hres)) + { + strcpy (buffer, "Error Code 0"); + return buffer; + } + + hres = CoInitializeSecurity (NULL, -1, NULL, NULL, RPC_C_AUTHN_LEVEL_DEFAULT, RPC_C_IMP_LEVEL_IMPERSONATE, NULL, EOAC_NONE, NULL); + + /* mysteriously failing after the first execution, but only when used as a plugin, skip it */ + /*if (FAILED (hres)) + { + CoUninitialize (); + strcpy (buffer, "Error Code 1"); + return buffer; + }*/ + + hres = CoCreateInstance (CLSID_WbemLocator, 0, CLSCTX_INPROC_SERVER, IID_IWbemLocator, (LPVOID *) &pLoc); + + if (FAILED (hres)) + { + CoUninitialize (); + strcpy (buffer, "Error Code 2"); + return buffer; + } + + hres = pLoc->ConnectServer (_bstr_t (L"root\\CIMV2"), NULL, NULL, 0, NULL, 0, 0, &pSvc); + + if (FAILED (hres)) + { + pLoc->Release (); + CoUninitialize (); + strcpy (buffer, "Error Code 3"); + return buffer; + } + + hres = CoSetProxyBlanket (pSvc, RPC_C_AUTHN_WINNT, RPC_C_AUTHZ_NONE, NULL, RPC_C_AUTHN_LEVEL_CALL, RPC_C_IMP_LEVEL_IMPERSONATE, NULL, EOAC_NONE); + + if (FAILED (hres)) + { + pSvc->Release (); + pLoc->Release (); + CoUninitialize (); + strcpy (buffer, "Error Code 4"); + return buffer; + } + + switch (mode) + { + case 0: + hres = pSvc->ExecQuery (_bstr_t ("WQL"), _bstr_t ("SELECT * FROM Win32_OperatingSystem"), WBEM_FLAG_FORWARD_ONLY | WBEM_FLAG_RETURN_IMMEDIATELY, NULL, &pEnumerator); + break; + case 1: + hres = pSvc->ExecQuery (_bstr_t ("WQL"), _bstr_t ("SELECT * FROM Win32_Processor"), WBEM_FLAG_FORWARD_ONLY | WBEM_FLAG_RETURN_IMMEDIATELY, NULL, &pEnumerator); + break; + case 2: + hres = pSvc->ExecQuery (_bstr_t ("WQL"), _bstr_t ("SELECT * FROM Win32_VideoController"), WBEM_FLAG_FORWARD_ONLY | WBEM_FLAG_RETURN_IMMEDIATELY, NULL, &pEnumerator); + break; + + } + + if (FAILED (hres)) + { + pSvc->Release (); + pLoc->Release (); + CoUninitialize (); + strcpy (buffer, "Error Code 5"); + return buffer; + } + + while (pEnumerator) + { + hr = pEnumerator->Next (WBEM_INFINITE, 1, &pclsObj, &uReturn); + if (0 == uReturn) + { + break; + } + VARIANT vtProp; + switch (mode) + { + case 0: + hr = pclsObj->Get (L"Caption", 0, &vtProp, 0, 0); + break; + case 1: + hr = pclsObj->Get (L"Name", 0, &vtProp, 0, 0); + break; + case 2: + hr = pclsObj->Get (L"Name", 0, &vtProp, 0, 0); + break; + } + WideCharToMultiByte (CP_ACP, 0, vtProp.bstrVal, -1, buffer, SysStringLen (vtProp.bstrVal)+1, NULL, NULL); + VariantClear (&vtProp); + } + + pSvc->Release (); + pLoc->Release (); + pEnumerator->Release (); + pclsObj->Release (); + CoUninitialize (); + return buffer; +} + +static int +printInfo (char *word[], char *word_eol[], void *user_data) +{ + /* query WMI info only at the first time WinSys is called, then cache it to save time */ + if (firstRun) + { + xchat_printf (ph, "%s first execution, querying and caching WMI info...\n", name); + wmiOs = getWmiInfo (0); + wmiCpu = getWmiInfo (1); + wmiVga = getWmiInfo (2); + firstRun = 0; + } + if (xchat_list_int (ph, NULL, "type") >= 2) + { + /* uptime will work correctly for up to 50 days, should be enough */ + xchat_commandf (ph, "ME ** WinSys ** Client: XChat-WDK %s (x%d) ** OS: %s ** CPU: %s (%s) ** RAM: %s ** VGA: %s ** Uptime: %.2f Hours **", + xchat_get_info (ph, "wdk_version"), + getCpuArch (), + wmiOs, + wmiCpu, + getCpuMhz (), + getMemoryInfo (), + wmiVga, (float) GetTickCount() / 1000 / 60 / 60); + } + else + { + xchat_printf (ph, " * Client: XChat-WDK %s (x%d)\n", xchat_get_info (ph, "wdk_version"), getCpuArch ()); + xchat_printf (ph, " * OS: %s\n", wmiOs); + xchat_printf (ph, " * CPU: %s (%s)\n", wmiCpu, getCpuMhz ()); + xchat_printf (ph, " * RAM: %s\n", getMemoryInfo ()); + xchat_printf (ph, " * VGA: %s\n", wmiVga); + xchat_printf (ph, " * Uptime: %.2f Hours\n", (float) GetTickCount() / 1000 / 60 / 60); + } + + return XCHAT_EAT_XCHAT; +} + +int +xchat_plugin_init (xchat_plugin *plugin_handle, char **plugin_name, char **plugin_desc, char **plugin_version, char *arg) +{ + ph = plugin_handle; + + *plugin_name = name; + *plugin_desc = desc; + *plugin_version = version; + + firstRun = 1; + + xchat_hook_command (ph, "WINSYS", XCHAT_PRI_NORM, printInfo, NULL, NULL); + xchat_command (ph, "MENU -ietc\\system.png ADD \"Window/Display System Info\" \"WINSYS\""); + + xchat_printf (ph, "%s plugin loaded\n", name); + + return 1; /* return 1 for success */ +} + + +int +xchat_plugin_deinit (void) +{ + xchat_command (ph, "MENU DEL \"Window/Display System Info\""); + xchat_printf (ph, "%s plugin unloaded\n", name); + return 1; +} diff --git a/plugins/winsys/winsys.def b/plugins/winsys/winsys.def new file mode 100644 index 00000000..77670bf2 --- /dev/null +++ b/plugins/winsys/winsys.def @@ -0,0 +1,3 @@ +EXPORTS +xchat_plugin_init +xchat_plugin_deinit diff --git a/plugins/winsys/winsys.vcxproj b/plugins/winsys/winsys.vcxproj new file mode 100644 index 00000000..bacb5db4 --- /dev/null +++ b/plugins/winsys/winsys.vcxproj @@ -0,0 +1,112 @@ +<?xml version="1.0" encoding="utf-8"?> +<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <ItemGroup Label="ProjectConfigurations"> + <ProjectConfiguration Include="Release|Win32"> + <Configuration>Release</Configuration> + <Platform>Win32</Platform> + </ProjectConfiguration> + <ProjectConfiguration Include="Release|x64"> + <Configuration>Release</Configuration> + <Platform>x64</Platform> + </ProjectConfiguration> + </ItemGroup> + <PropertyGroup Label="Globals"> + <ProjectGuid>{6C0CA980-97C5-427A-BE61-5BCECAFABBDA}</ProjectGuid> + <Keyword>Win32Proj</Keyword> + <RootNamespace>winsys</RootNamespace> + </PropertyGroup> + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" /> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration"> + <ConfigurationType>DynamicLibrary</ConfigurationType> + <UseDebugLibraries>false</UseDebugLibraries> + <WholeProgramOptimization>true</WholeProgramOptimization> + <CharacterSet>Unicode</CharacterSet> + <PlatformToolset>WDK7</PlatformToolset> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration"> + <ConfigurationType>DynamicLibrary</ConfigurationType> + <UseDebugLibraries>false</UseDebugLibraries> + <WholeProgramOptimization>true</WholeProgramOptimization> + <CharacterSet>Unicode</CharacterSet> + <PlatformToolset>WDK7</PlatformToolset> + </PropertyGroup> + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" /> + <ImportGroup Label="ExtensionSettings"> + </ImportGroup> + <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> + <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> + <Import Project="..\..\win32\xchat.props" /> + </ImportGroup> + <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets"> + <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> + <Import Project="..\..\win32\xchat.props" /> + </ImportGroup> + <PropertyGroup Label="UserMacros" /> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> + <LinkIncremental>false</LinkIncremental> + <TargetName>xcwinsys</TargetName> + <OutDir>$(SolutionDir)build\$(PlatformName)\bin</OutDir> + <IntDir>$(SolutionDir)build\$(PlatformName)\obj\$(ProjectName)</IntDir> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'"> + <LinkIncremental>false</LinkIncremental> + <TargetName>xcwinsys</TargetName> + <OutDir>$(SolutionDir)build\$(PlatformName)\bin</OutDir> + <IntDir>$(SolutionDir)build\$(PlatformName)\obj\$(ProjectName)</IntDir> + </PropertyGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> + <ClCompile> + <WarningLevel>Level1</WarningLevel> + <PrecompiledHeader> + </PrecompiledHeader> + <Optimization>MaxSpeed</Optimization> + <FunctionLevelLinking>true</FunctionLevelLinking> + <IntrinsicFunctions>true</IntrinsicFunctions> + <PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;_USRDLL;WINSYS_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <AdditionalIncludeDirectories>..;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> + <MultiProcessorCompilation>true</MultiProcessorCompilation> + <TreatWChar_tAsBuiltInType>false</TreatWChar_tAsBuiltInType> + </ClCompile> + <Link> + <SubSystem>Windows</SubSystem> + <GenerateDebugInformation>true</GenerateDebugInformation> + <EnableCOMDATFolding>true</EnableCOMDATFolding> + <OptimizeReferences>true</OptimizeReferences> + <ModuleDefinitionFile>winsys.def</ModuleDefinitionFile> + <AdditionalDependencies>wbemuuid.lib;vccomsup.lib;%(AdditionalDependencies)</AdditionalDependencies> + <IgnoreSpecificDefaultLibraries>comsupp.lib</IgnoreSpecificDefaultLibraries> + </Link> + </ItemDefinitionGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'"> + <ClCompile> + <WarningLevel>Level1</WarningLevel> + <PrecompiledHeader> + </PrecompiledHeader> + <Optimization>MaxSpeed</Optimization> + <FunctionLevelLinking>true</FunctionLevelLinking> + <IntrinsicFunctions>true</IntrinsicFunctions> + <PreprocessorDefinitions>WIN32;_WIN64;NDEBUG;_WINDOWS;_USRDLL;WINSYS_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <AdditionalIncludeDirectories>..;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> + <MultiProcessorCompilation>true</MultiProcessorCompilation> + <TreatWChar_tAsBuiltInType>false</TreatWChar_tAsBuiltInType> + </ClCompile> + <Link> + <SubSystem>Windows</SubSystem> + <GenerateDebugInformation>true</GenerateDebugInformation> + <EnableCOMDATFolding>true</EnableCOMDATFolding> + <OptimizeReferences>true</OptimizeReferences> + <ModuleDefinitionFile>winsys.def</ModuleDefinitionFile> + <AdditionalDependencies>wbemuuid.lib;vccomsup.lib;%(AdditionalDependencies)</AdditionalDependencies> + <IgnoreSpecificDefaultLibraries>comsupp.lib</IgnoreSpecificDefaultLibraries> + </Link> + </ItemDefinitionGroup> + <ItemGroup> + <None Include="winsys.def" /> + </ItemGroup> + <ItemGroup> + <ClCompile Include="winsys.cpp" /> + </ItemGroup> + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" /> + <ImportGroup Label="ExtensionTargets"> + </ImportGroup> +</Project> \ No newline at end of file diff --git a/plugins/winsys/winsys.vcxproj.filters b/plugins/winsys/winsys.vcxproj.filters new file mode 100644 index 00000000..6e5b445c --- /dev/null +++ b/plugins/winsys/winsys.vcxproj.filters @@ -0,0 +1,23 @@ +<?xml version="1.0" encoding="utf-8"?> +<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <ItemGroup> + <Filter Include="Source Files"> + <UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier> + <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions> + </Filter> + <Filter Include="Resource Files"> + <UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier> + <Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms</Extensions> + </Filter> + </ItemGroup> + <ItemGroup> + <None Include="winsys.def"> + <Filter>Resource Files</Filter> + </None> + </ItemGroup> + <ItemGroup> + <ClCompile Include="winsys.cpp"> + <Filter>Source Files</Filter> + </ClCompile> + </ItemGroup> +</Project> \ No newline at end of file diff --git a/plugins/winsys/winsys.vcxproj.user b/plugins/winsys/winsys.vcxproj.user new file mode 100644 index 00000000..695b5c78 --- /dev/null +++ b/plugins/winsys/winsys.vcxproj.user @@ -0,0 +1,3 @@ +<?xml version="1.0" encoding="utf-8"?> +<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> +</Project> \ No newline at end of file diff --git a/plugins/wmpa/ReadMe.txt b/plugins/wmpa/ReadMe.txt new file mode 100644 index 00000000..00a549f8 --- /dev/null +++ b/plugins/wmpa/ReadMe.txt @@ -0,0 +1,70 @@ +======================================================================== + MICROSOFT FOUNDATION CLASS LIBRARY : wmpa +======================================================================== + + +AppWizard has created this wmpa DLL for you. This DLL not only +demonstrates the basics of using the Microsoft Foundation classes but +is also a starting point for writing your DLL. + +This file contains a summary of what you will find in each of the files that +make up your wmpa DLL. + +wmpa.dsp + This file (the project file) contains information at the project level and + is used to build a single project or subproject. Other users can share the + project (.dsp) file, but they should export the makefiles locally. + +wmpa.h + This is the main header file for the DLL. It declares the + CWmpaApp class. + +wmpa.cpp + This is the main DLL source file. It contains the class CWmpaApp. + It also contains the OLE entry points required of inproc servers. + +wmpa.odl + This file contains the Object Description Language source code for the + type library of your DLL. + +wmpa.rc + This is a listing of all of the Microsoft Windows resources that the + program uses. It includes the icons, bitmaps, and cursors that are stored + in the RES subdirectory. This file can be directly edited in Microsoft + Visual C++. + +wmpa.clw + This file contains information used by ClassWizard to edit existing + classes or add new classes. ClassWizard also uses this file to store + information needed to create and edit message maps and dialog data + maps and to create prototype member functions. + +res\wmpa.rc2 + This file contains resources that are not edited by Microsoft + Visual C++. You should place all resources not editable by + the resource editor in this file. + +wmpa.def + This file contains information about the DLL that must be + provided to run with Microsoft Windows. It defines parameters + such as the name and description of the DLL. It also exports + functions from the DLL. + +///////////////////////////////////////////////////////////////////////////// +Other standard files: + +StdAfx.h, StdAfx.cpp + These files are used to build a precompiled header (PCH) file + named wmpa.pch and a precompiled types file named StdAfx.obj. + +Resource.h + This is the standard header file, which defines new resource IDs. + Microsoft Visual C++ reads and updates this file. + +///////////////////////////////////////////////////////////////////////////// +Other notes: + +AppWizard uses "TODO:" to indicate parts of the source code you +should add to or customize. + +///////////////////////////////////////////////////////////////////////////// diff --git a/plugins/wmpa/StdAfx.cpp b/plugins/wmpa/StdAfx.cpp new file mode 100644 index 00000000..ae3c5313 --- /dev/null +++ b/plugins/wmpa/StdAfx.cpp @@ -0,0 +1,8 @@ +// stdafx.cpp : source file that includes just the standard includes +// wmpa.pch will be the pre-compiled header +// stdafx.obj will contain the pre-compiled type information + +#include "stdafx.h" + + + diff --git a/plugins/wmpa/StdAfx.h b/plugins/wmpa/StdAfx.h new file mode 100644 index 00000000..f88a91f3 --- /dev/null +++ b/plugins/wmpa/StdAfx.h @@ -0,0 +1,62 @@ +// stdafx.h : include file for standard system include files, +// or project specific include files that are used frequently, but +// are changed infrequently +// + +#if !defined(AFX_STDAFX_H__33D7BD1A_A9B6_4BDE_B867_5278529B95B2__INCLUDED_) +#define AFX_STDAFX_H__33D7BD1A_A9B6_4BDE_B867_5278529B95B2__INCLUDED_ + +#if _MSC_VER > 1000 +#pragma once +#endif // _MSC_VER > 1000 + +#define VC_EXTRALEAN // Exclude rarely-used stuff from Windows headers + +#include <afxwin.h> // MFC core and standard components +#include <afxext.h> // MFC extensions + +#ifndef _AFX_NO_OLE_SUPPORT +#include <afxole.h> // MFC OLE classes +#include <afxodlgs.h> // MFC OLE dialog classes +#include <afxdisp.h> // MFC Automation classes +#endif // _AFX_NO_OLE_SUPPORT + + +#ifndef _AFX_NO_DB_SUPPORT +#include <afxdb.h> // MFC ODBC database classes +#endif // _AFX_NO_DB_SUPPORT + +#ifndef _AFX_NO_DAO_SUPPORT +#include <afxdao.h> // MFC DAO database classes +#endif // _AFX_NO_DAO_SUPPORT + +#include <afxdtctl.h> // MFC support for Internet Explorer 4 Common Controls +#ifndef _AFX_NO_AFXCMN_SUPPORT +#include <afxcmn.h> // MFC support for Windows Common Controls +#endif // _AFX_NO_AFXCMN_SUPPORT + +/****************************************************************** +* Includes +******************************************************************/ +#include "wmpcdrom.h" +#include "wmpcdromcollection.h" +#include "wmpclosedcaption.h" +#include "wmpcontrols.h" +#include "wmpdvd.h" +#include "wmperror.h" +#include "wmperroritem.h" +#include "wmpmedia.h" +#include "wmpmediacollection.h" +#include "wmpnetwork.h" +#include "wmpplayer4.h" +#include "wmpplayerapplication.h" +#include "wmpplaylist.h" +#include "wmpplaylistarray.h" +#include "wmpplaylistcollection.h" +#include "wmpsettings.h" +#include "wmpstringcollection.h" + +//{{AFX_INSERT_LOCATION}} +// Microsoft Visual C++ will insert additional declarations immediately before the previous line. + +#endif // !defined(AFX_STDAFX_H__33D7BD1A_A9B6_4BDE_B867_5278529B95B2__INCLUDED_) diff --git a/plugins/wmpa/makefile.mak b/plugins/wmpa/makefile.mak new file mode 100644 index 00000000..37e0ecd0 --- /dev/null +++ b/plugins/wmpa/makefile.mak @@ -0,0 +1,53 @@ +include "..\..\src\makeinc.mak" + +TARGET = xcwmpa.dll + +WMPA_OBJECTS = \ +wmpa.obj \ +wmpadialog.obj \ +wmpcdrom.obj \ +wmpcdromcollection.obj \ +wmpclosedcaption.obj \ +wmpcontrols.obj \ +wmpdvd.obj \ +wmperror.obj \ +wmperroritem.obj \ +wmpmedia.obj \ +wmpmediacollection.obj \ +wmpnetwork.obj \ +wmpplayer4.obj \ +wmpplayerapplication.obj \ +wmpplaylist.obj \ +wmpplaylistarray.obj \ +wmpplaylistcollection.obj \ +wmpsettings.obj \ +wmpstringcollection.obj \ +xchat-plugin.obj + +CPPFLAGS = $(CPPFLAGS) /EHsc /D_AFXDLL /D_AFX_NO_DAO_SUPPORT /D_WINDLL /D_USRDLL + +all: $(WMPA_OBJECTS) $(TARGET) + +.cpp.obj: + $(CC) $(CPPFLAGS) /Yc"StdAfx.h" /Fp"wmpa.pch" StdAfx.cpp + $(CC) $(CPPFLAGS) /Yu"StdAfx.h" /Fp"wmpa.pch" /c $< + +$(TARGET): $(WMPA_OBJECTS) + rc /nologo /D_AFXDLL wmpa.rc +!ifdef X64 + midl /nologo /mktyplib203 /char signed /env x64 /h wmpa_h.h /tlb wmpa.tlb wmpa.odl +!else + midl /nologo /mktyplib203 /char signed /env win32 /h wmpa_h.h /tlb wmpa.tlb wmpa.odl +!endif + $(LINK) /DLL /out:$(TARGET) $(LDFLAGS) $(WMPA_OBJECTS) $(LIBS) /def:wmpa.def wmpa.res + +clean: + del $(TARGET) + del *.obj + del wmpa.pch + del wmpa.res + del wmpa.tlb + del wmpa_h.h + del wmpa_i.c + del *.exp + del *.lib diff --git a/plugins/wmpa/res/wmpa.rc2 b/plugins/wmpa/res/wmpa.rc2 new file mode 100644 index 00000000..a45caf5c --- /dev/null +++ b/plugins/wmpa/res/wmpa.rc2 @@ -0,0 +1,13 @@ +// +// WMPA.RC2 - resources Microsoft Visual C++ does not edit directly +// + +#ifdef APSTUDIO_INVOKED + #error this file is not editable by Microsoft Visual C++ +#endif //APSTUDIO_INVOKED + + +///////////////////////////////////////////////////////////////////////////// +// Add manually edited resources here... + +///////////////////////////////////////////////////////////////////////////// diff --git a/plugins/wmpa/resource.h b/plugins/wmpa/resource.h new file mode 100644 index 00000000..0ce93a4c --- /dev/null +++ b/plugins/wmpa/resource.h @@ -0,0 +1,22 @@ +//{{NO_DEPENDENCIES}} +// Microsoft Developer Studio generated include file. +// Used by wmpa.rc +// +#define IDD_WMPADIALOG 2000 +#define IDC_PLAYLIST 2001 +#define IDC_STATIC1 2002 +#define IDC_WMP 2005 +#define IDI_XCHAT 2005 +#define IDC_SONGLIST 2006 +#define IDC_STATIC2 2007 + +// Next default values for new objects +// +#ifdef APSTUDIO_INVOKED +#ifndef APSTUDIO_READONLY_SYMBOLS +#define _APS_NEXT_RESOURCE_VALUE 2006 +#define _APS_NEXT_COMMAND_VALUE 32771 +#define _APS_NEXT_CONTROL_VALUE 2008 +#define _APS_NEXT_SYMED_VALUE 2000 +#endif +#endif diff --git a/plugins/wmpa/wmpa.cpp b/plugins/wmpa/wmpa.cpp new file mode 100644 index 00000000..d9488f6d --- /dev/null +++ b/plugins/wmpa/wmpa.cpp @@ -0,0 +1,212 @@ +/****************************************************************** +* $Id$ +* +* $Log$ +* +* Copyright 2005 David Cullen, All rights reserved +* +******************************************************************/ +#include "stdafx.h" +#include "wmpa.h" +#include "WMPADialog.h" + +#ifdef _DEBUG +#define new DEBUG_NEW +#undef THIS_FILE +static char THIS_FILE[] = __FILE__; +#endif + +// +// Note! +// +// If this DLL is dynamically linked against the MFC +// DLLs, any functions exported from this DLL which +// call into MFC must have the AFX_MANAGE_STATE macro +// added at the very beginning of the function. +// +// For example: +// +// extern "C" BOOL PASCAL EXPORT ExportedFunction() +// { +// AFX_MANAGE_STATE(AfxGetStaticModuleState()); +// // normal function body here +// } +// +// It is very important that this macro appear in each +// function, prior to any calls into MFC. This means that +// it must appear as the first statement within the +// function, even before any object variable declarations +// as their constructors may generate calls into the MFC +// DLL. +// +// Please see MFC Technical Notes 33 and 58 for additional +// details. +// + +///////////////////////////////////////////////////////////////////////////// +// CWmpaApp + +BEGIN_MESSAGE_MAP(CWmpaApp, CWinApp) + //{{AFX_MSG_MAP(CWmpaApp) + // NOTE - the ClassWizard will add and remove mapping macros here. + // DO NOT EDIT what you see in these blocks of generated code! + //}}AFX_MSG_MAP +END_MESSAGE_MAP() + +///////////////////////////////////////////////////////////////////////////// +// CWmpaApp construction + +CWmpaApp::CWmpaApp() +{ + // TODO: add construction code here, + // Place all significant initialization in InitInstance + m_pDialog = NULL; +} + +///////////////////////////////////////////////////////////////////////////// +// The one and only CWmpaApp object + +CWmpaApp theApp; + +///////////////////////////////////////////////////////////////////////////// +// CWmpaApp initialization + +BOOL CWmpaApp::InitInstance() +{ + // Register all OLE server (factories) as running. This enables the + // OLE libraries to create objects from other applications. + COleObjectFactory::RegisterAll(); + + // WARNING: This function enables the ActiveX control container + // Without this function you will not be able to load the WMP + // In fact you will get the following error: + // >>> If this dialog has OLE controls: + // >>> AfxEnableControlContainer has not been called yet. + // >>> You should call it in your app's InitInstance function. + AfxEnableControlContainer(); + + // WARNING: This function initializes the COM library for use + // Without this function you will not be able to load the WMP + // In fact you will get the following error: + // CoCreateInstance of OLE control {6BF52A52-394A-11D3-B153-00C04F79FAA6} failed. + // >>> Result code: 0x800401f0 + // >>> Is the control is properly registered? + // The Error Lookup tool will tell you result code 0x800401F0 means + // CoInitialize has not been called. + CoInitialize(NULL); + + return TRUE; +} + +/****************************************************************** +* ShowWMPA +******************************************************************/ +BOOL CWmpaApp::ShowWMPA(void) +{ + HRESULT result = FALSE; + BOOL created; + + // WARNING: The following two funcions make sure we look for + // our resources in our DLL not in the calling EXE + // Without these functions you will not be able to load the + // Windows Media Player + HMODULE hModule = GetModuleHandle("WMPA.DLL"); + AfxSetResourceHandle((HINSTANCE) hModule); + + if (m_pDialog == NULL) m_pDialog = new CWMPADialog; + + created = m_pDialog->Create(IDD_WMPADIALOG, m_pDialog); + if (!created) return(E_FAIL); + m_pDialog->m_hIcon = LoadIcon(IDI_XCHAT); + m_pDialog->SetIcon(m_pDialog->m_hIcon, TRUE); + + result = m_pDialog->ShowWindow(SW_SHOWNORMAL); + + return(created); +} + +///////////////////////////////////////////////////////////////////////////// +// Special entry points required for inproc servers + +STDAPI DllGetClassObject(REFCLSID rclsid, REFIID riid, LPVOID* ppv) +{ + AFX_MANAGE_STATE(AfxGetStaticModuleState()); + return AfxDllGetClassObject(rclsid, riid, ppv); +} + +STDAPI DllCanUnloadNow(void) +{ + AFX_MANAGE_STATE(AfxGetStaticModuleState()); + return AfxDllCanUnloadNow(); +} + +// by exporting DllRegisterServer, you can use regsvr.exe +STDAPI DllRegisterServer(void) +{ + AFX_MANAGE_STATE(AfxGetStaticModuleState()); + COleObjectFactory::UpdateRegistryAll(); + return(S_OK); +} + +/****************************************************************** +* DestroyWMPA +******************************************************************/ +BOOL CWmpaApp::DestroyWMPA(void) +{ + if (theApp.m_pDialog == NULL) return(FALSE); + + theApp.m_pDialog->m_WMP.GetControls().stop(); + theApp.m_pDialog->DeleteTrayIcon(); + theApp.m_pDialog->DestroyWindow(); + + return(TRUE); +} + +/****************************************************************** +* StartWindowsMediaPlayer +******************************************************************/ +BOOL StartWindowsMediaPlayer(void) +{ + AFX_MANAGE_STATE(AfxGetStaticModuleState()); + + BOOL result = theApp.ShowWMPA(); + + return(result); +} + +/****************************************************************** +* StopWindowsMediaPlayer +******************************************************************/ +BOOL StopWindowsMediaPlayer(void) +{ + AFX_MANAGE_STATE(AfxGetStaticModuleState()); + + BOOL result = theApp.DestroyWMPA(); + + return(result); +} + +/****************************************************************** +* GetWindowsMediaPlayer +******************************************************************/ +CWMPPlayer4 *GetWindowsMediaPlayer(void) +{ + AFX_MANAGE_STATE(AfxGetStaticModuleState()); + + if (theApp.m_pDialog == NULL) return(NULL); + + return(&(theApp.m_pDialog->m_WMP)); +} + +/****************************************************************** +* GetWMPADialog +******************************************************************/ +CWMPADialog *GetWMPADialog(void) +{ + AFX_MANAGE_STATE(AfxGetStaticModuleState()); + + if (theApp.m_pDialog == NULL) return(NULL); + + return(theApp.m_pDialog); +} + diff --git a/plugins/wmpa/wmpa.def b/plugins/wmpa/wmpa.def new file mode 100644 index 00000000..3555558e --- /dev/null +++ b/plugins/wmpa/wmpa.def @@ -0,0 +1,15 @@ +; wmpa.def : Declares the module parameters for the DLL. + +LIBRARY "xcwmpa" + +EXPORTS + ; Explicit exports can go here + DllCanUnloadNow PRIVATE + DllGetClassObject PRIVATE + DllRegisterServer PRIVATE + xchat_plugin_init + xchat_plugin_deinit + xchat_plugin_get_info + StartWindowsMediaPlayer + GetWindowsMediaPlayer + GetWMPADialog diff --git a/plugins/wmpa/wmpa.h b/plugins/wmpa/wmpa.h new file mode 100644 index 00000000..39961835 --- /dev/null +++ b/plugins/wmpa/wmpa.h @@ -0,0 +1,61 @@ +/****************************************************************** +* $Id$ +* +* $Log$ +* +* Copyright 2005 David Cullen, All rights reserved +* +******************************************************************/ +#if !defined(AFX_WMPA_H__11200FE3_F137_48DD_8020_91CF7BBB283B__INCLUDED_) +#define AFX_WMPA_H__11200FE3_F137_48DD_8020_91CF7BBB283B__INCLUDED_ + +#if _MSC_VER > 1000 +#pragma once +#endif // _MSC_VER > 1000 + +#ifndef __AFXWIN_H__ + #error include 'stdafx.h' before including this file for PCH +#endif + +#include "resource.h" // main symbols +#include "WMPADialog.h" + +///////////////////////////////////////////////////////////////////////////// +// CWmpaApp +// See wmpa.cpp for the implementation of this class +// + +class CWmpaApp : public CWinApp +{ +public: + CWmpaApp(); + + BOOL ShowWMPA(void); + BOOL DestroyWMPA(void); + + CWMPADialog *m_pDialog; +// Overrides + // ClassWizard generated virtual function overrides + //{{AFX_VIRTUAL(CWmpaApp) + public: + virtual BOOL InitInstance(); + //}}AFX_VIRTUAL + + //{{AFX_MSG(CWmpaApp) + // NOTE - the ClassWizard will add and remove member functions here. + // DO NOT EDIT what you see in these blocks of generated code ! + //}}AFX_MSG + DECLARE_MESSAGE_MAP() +}; + +BOOL StartWindowsMediaPlayer(void); +BOOL StopWindowsMediaPlayer(void); +CWMPPlayer4 *GetWindowsMediaPlayer(void); +CWMPADialog *GetWMPADialog(void); + +///////////////////////////////////////////////////////////////////////////// + +//{{AFX_INSERT_LOCATION}} +// Microsoft Visual C++ will insert additional declarations immediately before the previous line. + +#endif // !defined(AFX_WMPA_H__11200FE3_F137_48DD_8020_91CF7BBB283B__INCLUDED_) diff --git a/plugins/wmpa/wmpa.ico b/plugins/wmpa/wmpa.ico new file mode 100644 index 00000000..fb68714c --- /dev/null +++ b/plugins/wmpa/wmpa.ico Binary files differdiff --git a/plugins/wmpa/wmpa.odl b/plugins/wmpa/wmpa.odl new file mode 100644 index 00000000..1c354c34 --- /dev/null +++ b/plugins/wmpa/wmpa.odl @@ -0,0 +1,44 @@ +// wmpa.odl : type library source for wmpa.dll + +// This file will be processed by the MIDL compiler to produce the +// type library (wmpa.tlb). + +[ uuid(2D225385-EFD3-4DD8-9377-A7F244C522D0), version(1.0) ] +library Wmpa +{ + importlib("stdole32.tlb"); + importlib("stdole2.tlb"); + + + + + // Primary dispatch interface for CWMPADIALOG + + [ uuid(01C1B3AA-C7FC-4023-89A5-C814E1B62B9B) ] + dispinterface IWMPADIALOG + { + properties: + // NOTE - ClassWizard will maintain property information here. + // Use extreme caution when editing this section. + //{{AFX_ODL_PROP(CWMPADIALOG) + //}}AFX_ODL_PROP + + methods: + // NOTE - ClassWizard will maintain method information here. + // Use extreme caution when editing this section. + //{{AFX_ODL_METHOD(CWMPADIALOG) + //}}AFX_ODL_METHOD + + }; + + // Class information for CWMPADIALOG + + [ uuid(9007B1B4-0006-453D-A799-DB8CBA1AE22A) ] + coclass WMPADIALOG + { + [default] dispinterface IWMPADIALOG; + }; + + //{{AFX_APPEND_ODL}} + //}}AFX_APPEND_ODL}} +}; diff --git a/plugins/wmpa/wmpa.rc b/plugins/wmpa/wmpa.rc new file mode 100644 index 00000000..b99b4bfb --- /dev/null +++ b/plugins/wmpa/wmpa.rc @@ -0,0 +1,207 @@ +//Microsoft Developer Studio generated resource script. +// +#include "resource.h" + +#define APSTUDIO_READONLY_SYMBOLS +///////////////////////////////////////////////////////////////////////////// +// +// Generated from the TEXTINCLUDE 2 resource. +// +#include "afxres.h" + +///////////////////////////////////////////////////////////////////////////// +#undef APSTUDIO_READONLY_SYMBOLS + +///////////////////////////////////////////////////////////////////////////// +// English (U.S.) resources + +#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU) +#ifdef _WIN32 +LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US +#pragma code_page(1252) +#endif //_WIN32 + +#ifdef APSTUDIO_INVOKED +///////////////////////////////////////////////////////////////////////////// +// +// TEXTINCLUDE +// + +1 TEXTINCLUDE DISCARDABLE +BEGIN + "resource.h\0" +END + +2 TEXTINCLUDE DISCARDABLE +BEGIN + "#include ""afxres.h""\r\n" + "\0" +END + +3 TEXTINCLUDE DISCARDABLE +BEGIN + "#define _AFX_NO_SPLITTER_RESOURCES\r\n" + "#define _AFX_NO_OLE_RESOURCES\r\n" + "#define _AFX_NO_TRACKER_RESOURCES\r\n" + "#define _AFX_NO_PROPERTY_RESOURCES\r\n" + "\r\n" + "#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)\r\n" + "#ifdef _WIN32\r\n" + "LANGUAGE 9, 1\r\n" + "#pragma code_page(1252)\r\n" + "#endif //_WIN32\r\n" + "#include ""res\\wmpa.rc2"" // non-Microsoft Visual C++ edited resources\r\n" + "#include ""afxres.rc"" // Standard components\r\n" + "#endif\r\n" + "\0" +END + +#endif // APSTUDIO_INVOKED + + +#ifndef _MAC +///////////////////////////////////////////////////////////////////////////// +// +// Version +// + +VS_VERSION_INFO VERSIONINFO + FILEVERSION 1,0,0,1 + PRODUCTVERSION 1,0,0,1 + FILEFLAGSMASK 0x3fL +#ifdef _DEBUG + FILEFLAGS 0x1L +#else + FILEFLAGS 0x0L +#endif + FILEOS 0x4L + FILETYPE 0x2L + FILESUBTYPE 0x0L +BEGIN + BLOCK "StringFileInfo" + BEGIN + BLOCK "040904B0" + BEGIN + VALUE "CompanyName", "\0" + VALUE "FileDescription", "wmpa DLL\0" + VALUE "FileVersion", "1, 0, 0, 1\0" + VALUE "InternalName", "wmpa\0" + VALUE "LegalCopyright", "Copyright (C) 2005\0" + VALUE "LegalTrademarks", "\0" + VALUE "OriginalFilename", "wmpa.DLL\0" + VALUE "ProductName", "wmpa Dynamic Link Library\0" + VALUE "ProductVersion", "1, 0, 0, 1\0" + VALUE "OLESelfRegister", "\0" + END + END + BLOCK "VarFileInfo" + BEGIN + VALUE "Translation", 0x409, 1200 + END +END + +#endif // !_MAC + + +///////////////////////////////////////////////////////////////////////////// +// +// Dialog +// + +IDD_WMPADIALOG DIALOG DISCARDABLE 0, 0, 317, 236 +STYLE DS_MODALFRAME | WS_MINIMIZEBOX | WS_POPUP | WS_CAPTION | WS_SYSMENU +CAPTION "Unitialized" +FONT 8, "MS Sans Serif" +BEGIN + LISTBOX IDC_PLAYLIST,165,15,145,145,LBS_NOINTEGRALHEIGHT | + WS_VSCROLL | WS_HSCROLL | WS_TABSTOP + LTEXT "Play Lists (Double-click to play)",IDC_STATIC1,165,5, + 145,10 + CONTROL "",IDC_WMP,"{6BF52A52-394A-11D3-B153-00C04F79FAA6}", + WS_TABSTOP,5,5,155,155 + LISTBOX IDC_SONGLIST,5,175,305,55,LBS_NOINTEGRALHEIGHT | + WS_VSCROLL | WS_TABSTOP + LTEXT "Song List (Double-click to play)",IDC_STATIC2,5,165,305, + 10 +END + + +///////////////////////////////////////////////////////////////////////////// +// +// DESIGNINFO +// + +#ifdef APSTUDIO_INVOKED +GUIDELINES DESIGNINFO DISCARDABLE +BEGIN + IDD_WMPADIALOG, DIALOG + BEGIN + LEFTMARGIN, 7 + RIGHTMARGIN, 310 + TOPMARGIN, 7 + BOTTOMMARGIN, 229 + END +END +#endif // APSTUDIO_INVOKED + + +///////////////////////////////////////////////////////////////////////////// +// +// Dialog Info +// + +IDD_WMPADIALOG DLGINIT +BEGIN + IDC_WMP, 0x376, 166, 0 +0x0000, 0x0000, 0x0300, 0x0000, 0x0008, 0x0000, 0x0000, 0x0005, 0x0000, +0x0000, 0x0000, 0x3ff0, 0x0003, 0x0000, 0x0000, 0x0005, 0x0000, 0x0000, +0x0000, 0x0000, 0x0008, 0x0002, 0x0000, 0x0000, 0x0003, 0x0001, 0x0000, +0x000b, 0xffff, 0x0003, 0x0000, 0x0000, 0x000b, 0xffff, 0x0008, 0x0002, +0x0000, 0x0000, 0x0003, 0x0032, 0x0000, 0x000b, 0x0000, 0x0008, 0x000a, +0x0000, 0x0066, 0x0075, 0x006c, 0x006c, 0x0000, 0x000b, 0x0000, 0x000b, +0x0000, 0x000b, 0xffff, 0x000b, 0xffff, 0x000b, 0x0000, 0x0008, 0x0002, +0x0000, 0x0000, 0x0008, 0x0002, 0x0000, 0x0000, 0x0008, 0x0002, 0x0000, +0x0000, 0x0008, 0x0002, 0x0000, 0x0000, 0x000b, 0x0000, 0x1815, 0x0000, +0x1a0c, 0x0000, + 0 +END + + +///////////////////////////////////////////////////////////////////////////// +// +// Icon +// + +// Icon with lowest ID value placed first to ensure application icon +// remains consistent on all systems. +// +// the WMP icon comes from here: +// http://www.iconarchive.com/show/phuzion-icons-by-kyo-tux/Applic-WMP-icon.html +IDI_XCHAT ICON DISCARDABLE "wmpa.ico" +#endif // English (U.S.) resources +///////////////////////////////////////////////////////////////////////////// + + + +#ifndef APSTUDIO_INVOKED +///////////////////////////////////////////////////////////////////////////// +// +// Generated from the TEXTINCLUDE 3 resource. +// +#define _AFX_NO_SPLITTER_RESOURCES +#define _AFX_NO_OLE_RESOURCES +#define _AFX_NO_TRACKER_RESOURCES +#define _AFX_NO_PROPERTY_RESOURCES + +#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU) +#ifdef _WIN32 +LANGUAGE 9, 1 +#pragma code_page(1252) +#endif //_WIN32 +#include "res\wmpa.rc2" // non-Microsoft Visual C++ edited resources +#include "afxres.rc" // Standard components +#endif + +///////////////////////////////////////////////////////////////////////////// +#endif // not APSTUDIO_INVOKED + diff --git a/plugins/wmpa/wmpa.sln b/plugins/wmpa/wmpa.sln new file mode 100644 index 00000000..a3b71091 --- /dev/null +++ b/plugins/wmpa/wmpa.sln @@ -0,0 +1,20 @@ + +Microsoft Visual Studio Solution File, Format Version 11.00 +# Visual Studio 2010 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "wmpa", "wmpa.vcxproj", "{08AD7C4D-DDDC-9545-A8D7-1808E6056143}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Release|Win32 = Release|Win32 + Release|x64 = Release|x64 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {08AD7C4D-DDDC-9545-A8D7-1808E6056143}.Release|Win32.ActiveCfg = Release|Win32 + {08AD7C4D-DDDC-9545-A8D7-1808E6056143}.Release|Win32.Build.0 = Release|Win32 + {08AD7C4D-DDDC-9545-A8D7-1808E6056143}.Release|x64.ActiveCfg = Release|x64 + {08AD7C4D-DDDC-9545-A8D7-1808E6056143}.Release|x64.Build.0 = Release|x64 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/plugins/wmpa/wmpa.vcxproj b/plugins/wmpa/wmpa.vcxproj new file mode 100644 index 00000000..92364dc4 --- /dev/null +++ b/plugins/wmpa/wmpa.vcxproj @@ -0,0 +1,164 @@ +<?xml version="1.0" encoding="utf-8"?> +<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <ItemGroup Label="ProjectConfigurations"> + <ProjectConfiguration Include="Release|Win32"> + <Configuration>Release</Configuration> + <Platform>Win32</Platform> + </ProjectConfiguration> + <ProjectConfiguration Include="Release|x64"> + <Configuration>Release</Configuration> + <Platform>x64</Platform> + </ProjectConfiguration> + </ItemGroup> + <PropertyGroup Label="Globals"> + <ProjectGuid>{E7F4DB0A-510D-41EF-B284-6E1DE1CC450D}</ProjectGuid> + <Keyword>Win32Proj</Keyword> + <RootNamespace>wmpa</RootNamespace> + </PropertyGroup> + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" /> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration"> + <ConfigurationType>DynamicLibrary</ConfigurationType> + <UseDebugLibraries>false</UseDebugLibraries> + <WholeProgramOptimization>false</WholeProgramOptimization> + <CharacterSet>MultiByte</CharacterSet> + <PlatformToolset>WDK7</PlatformToolset> + <UseOfMfc>Dynamic</UseOfMfc> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration"> + <ConfigurationType>DynamicLibrary</ConfigurationType> + <UseDebugLibraries>false</UseDebugLibraries> + <WholeProgramOptimization>false</WholeProgramOptimization> + <CharacterSet>MultiByte</CharacterSet> + <PlatformToolset>WDK7</PlatformToolset> + <UseOfMfc>Dynamic</UseOfMfc> + </PropertyGroup> + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" /> + <ImportGroup Label="ExtensionSettings"> + </ImportGroup> + <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> + <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> + <Import Project="..\..\win32\xchat.props" /> + </ImportGroup> + <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets"> + <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> + <Import Project="..\..\win32\xchat.props" /> + </ImportGroup> + <PropertyGroup Label="UserMacros" /> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> + <LinkIncremental>false</LinkIncremental> + <TargetName>xcwmpa</TargetName> + <OutDir>$(SolutionDir)build\$(PlatformName)\bin</OutDir> + <IntDir>$(SolutionDir)build\$(PlatformName)\obj\$(ProjectName)</IntDir> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'"> + <LinkIncremental>false</LinkIncremental> + <TargetName>xcwmpa</TargetName> + <OutDir>$(SolutionDir)build\$(PlatformName)\bin</OutDir> + <IntDir>$(SolutionDir)build\$(PlatformName)\obj\$(ProjectName)</IntDir> + </PropertyGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> + <ClCompile> + <WarningLevel>Level1</WarningLevel> + <PrecompiledHeader>Create</PrecompiledHeader> + <Optimization>MaxSpeed</Optimization> + <FunctionLevelLinking>true</FunctionLevelLinking> + <IntrinsicFunctions>true</IntrinsicFunctions> + <PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;_USRDLL;WMPA_EXPORTS;_AFXDLL;_AFX_NO_DAO_SUPPORT;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <MultiProcessorCompilation>false</MultiProcessorCompilation> + </ClCompile> + <Link> + <SubSystem>Windows</SubSystem> + <GenerateDebugInformation>true</GenerateDebugInformation> + <EnableCOMDATFolding>true</EnableCOMDATFolding> + <OptimizeReferences>true</OptimizeReferences> + <ModuleDefinitionFile>wmpa.def</ModuleDefinitionFile> + </Link> + <Midl> + <MkTypLibCompatible>true</MkTypLibCompatible> + </Midl> + </ItemDefinitionGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'"> + <ClCompile> + <WarningLevel>Level1</WarningLevel> + <PrecompiledHeader>Create</PrecompiledHeader> + <Optimization>MaxSpeed</Optimization> + <FunctionLevelLinking>true</FunctionLevelLinking> + <IntrinsicFunctions>true</IntrinsicFunctions> + <PreprocessorDefinitions>WIN32;_WIN64;NDEBUG;_WINDOWS;_USRDLL;WMPA_EXPORTS;_AFXDLL;_AFX_NO_DAO_SUPPORT;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <MultiProcessorCompilation>false</MultiProcessorCompilation> + </ClCompile> + <Link> + <SubSystem>Windows</SubSystem> + <GenerateDebugInformation>true</GenerateDebugInformation> + <EnableCOMDATFolding>true</EnableCOMDATFolding> + <OptimizeReferences>true</OptimizeReferences> + <ModuleDefinitionFile>wmpa.def</ModuleDefinitionFile> + </Link> + <Midl> + <MkTypLibCompatible>true</MkTypLibCompatible> + </Midl> + </ItemDefinitionGroup> + <ItemGroup> + <ClCompile Include="StdAfx.cpp" /> + <ClCompile Include="wmpa.cpp" /> + <ClCompile Include="wmpadialog.cpp" /> + <ClCompile Include="wmpcdrom.cpp" /> + <ClCompile Include="wmpcdromcollection.cpp" /> + <ClCompile Include="wmpclosedcaption.cpp" /> + <ClCompile Include="wmpcontrols.cpp" /> + <ClCompile Include="wmpdvd.cpp" /> + <ClCompile Include="wmperror.cpp" /> + <ClCompile Include="wmperroritem.cpp" /> + <ClCompile Include="wmpmedia.cpp" /> + <ClCompile Include="wmpmediacollection.cpp" /> + <ClCompile Include="wmpnetwork.cpp" /> + <ClCompile Include="wmpplayer4.cpp" /> + <ClCompile Include="wmpplayerapplication.cpp" /> + <ClCompile Include="wmpplaylist.cpp" /> + <ClCompile Include="wmpplaylistarray.cpp" /> + <ClCompile Include="wmpplaylistcollection.cpp" /> + <ClCompile Include="wmpsettings.cpp" /> + <ClCompile Include="wmpstringcollection.cpp" /> + <ClCompile Include="xchat-plugin.cpp" /> + </ItemGroup> + <ItemGroup> + <ClInclude Include="resource.h" /> + <ClInclude Include="StdAfx.h" /> + <ClInclude Include="wmpa.h" /> + <ClInclude Include="wmpadialog.h" /> + <ClInclude Include="wmpcdrom.h" /> + <ClInclude Include="wmpcdromcollection.h" /> + <ClInclude Include="wmpclosedcaption.h" /> + <ClInclude Include="wmpcontrols.h" /> + <ClInclude Include="wmpdvd.h" /> + <ClInclude Include="wmperror.h" /> + <ClInclude Include="wmperroritem.h" /> + <ClInclude Include="wmpmedia.h" /> + <ClInclude Include="wmpmediacollection.h" /> + <ClInclude Include="wmpnetwork.h" /> + <ClInclude Include="wmpplayer4.h" /> + <ClInclude Include="wmpplayerapplication.h" /> + <ClInclude Include="wmpplaylist.h" /> + <ClInclude Include="wmpplaylistarray.h" /> + <ClInclude Include="wmpplaylistcollection.h" /> + <ClInclude Include="wmpsettings.h" /> + <ClInclude Include="wmpstringcollection.h" /> + <ClInclude Include="xchat-plugin.h" /> + </ItemGroup> + <ItemGroup> + <None Include="ReadMe.txt" /> + <None Include="res\wmpa.rc2" /> + <None Include="wmpa.aps" /> + <None Include="wmpa.def" /> + <None Include="wmpa.ico" /> + </ItemGroup> + <ItemGroup> + <Midl Include="wmpa.odl" /> + </ItemGroup> + <ItemGroup> + <ResourceCompile Include="wmpa.rc" /> + </ItemGroup> + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" /> + <ImportGroup Label="ExtensionTargets"> + </ImportGroup> +</Project> \ No newline at end of file diff --git a/plugins/wmpa/wmpa.vcxproj.filters b/plugins/wmpa/wmpa.vcxproj.filters new file mode 100644 index 00000000..2be9d82f --- /dev/null +++ b/plugins/wmpa/wmpa.vcxproj.filters @@ -0,0 +1,180 @@ +<?xml version="1.0" encoding="utf-8"?> +<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <ItemGroup> + <Filter Include="Source Files"> + <UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier> + <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions> + </Filter> + <Filter Include="Header Files"> + <UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier> + <Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions> + </Filter> + <Filter Include="Resource Files"> + <UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier> + <Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms</Extensions> + </Filter> + <Filter Include="Resource Files\res"> + <UniqueIdentifier>{c54ddc93-06ab-4a74-854a-9ec976b7bfd0}</UniqueIdentifier> + </Filter> + </ItemGroup> + <ItemGroup> + <ClCompile Include="StdAfx.cpp"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="wmpa.cpp"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="wmpadialog.cpp"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="wmpcdrom.cpp"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="wmpcdromcollection.cpp"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="wmpclosedcaption.cpp"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="wmpcontrols.cpp"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="wmpdvd.cpp"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="wmperror.cpp"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="wmperroritem.cpp"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="wmpmedia.cpp"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="wmpmediacollection.cpp"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="wmpnetwork.cpp"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="wmpplayer4.cpp"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="wmpplayerapplication.cpp"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="wmpplaylist.cpp"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="wmpplaylistarray.cpp"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="wmpplaylistcollection.cpp"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="wmpsettings.cpp"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="wmpstringcollection.cpp"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="xchat-plugin.cpp"> + <Filter>Source Files</Filter> + </ClCompile> + </ItemGroup> + <ItemGroup> + <ClInclude Include="resource.h"> + <Filter>Header Files</Filter> + </ClInclude> + <ClInclude Include="StdAfx.h"> + <Filter>Header Files</Filter> + </ClInclude> + <ClInclude Include="wmpa.h"> + <Filter>Header Files</Filter> + </ClInclude> + <ClInclude Include="wmpadialog.h"> + <Filter>Header Files</Filter> + </ClInclude> + <ClInclude Include="wmpcdrom.h"> + <Filter>Header Files</Filter> + </ClInclude> + <ClInclude Include="wmpcdromcollection.h"> + <Filter>Header Files</Filter> + </ClInclude> + <ClInclude Include="wmpclosedcaption.h"> + <Filter>Header Files</Filter> + </ClInclude> + <ClInclude Include="wmpcontrols.h"> + <Filter>Header Files</Filter> + </ClInclude> + <ClInclude Include="wmpdvd.h"> + <Filter>Header Files</Filter> + </ClInclude> + <ClInclude Include="wmperror.h"> + <Filter>Header Files</Filter> + </ClInclude> + <ClInclude Include="wmperroritem.h"> + <Filter>Header Files</Filter> + </ClInclude> + <ClInclude Include="wmpmedia.h"> + <Filter>Header Files</Filter> + </ClInclude> + <ClInclude Include="wmpmediacollection.h"> + <Filter>Header Files</Filter> + </ClInclude> + <ClInclude Include="wmpnetwork.h"> + <Filter>Header Files</Filter> + </ClInclude> + <ClInclude Include="wmpplayer4.h"> + <Filter>Header Files</Filter> + </ClInclude> + <ClInclude Include="wmpplayerapplication.h"> + <Filter>Header Files</Filter> + </ClInclude> + <ClInclude Include="wmpplaylist.h"> + <Filter>Header Files</Filter> + </ClInclude> + <ClInclude Include="wmpplaylistarray.h"> + <Filter>Header Files</Filter> + </ClInclude> + <ClInclude Include="wmpplaylistcollection.h"> + <Filter>Header Files</Filter> + </ClInclude> + <ClInclude Include="wmpsettings.h"> + <Filter>Header Files</Filter> + </ClInclude> + <ClInclude Include="wmpstringcollection.h"> + <Filter>Header Files</Filter> + </ClInclude> + <ClInclude Include="xchat-plugin.h"> + <Filter>Header Files</Filter> + </ClInclude> + </ItemGroup> + <ItemGroup> + <None Include="wmpa.aps"> + <Filter>Resource Files</Filter> + </None> + <None Include="wmpa.def"> + <Filter>Resource Files</Filter> + </None> + <None Include="wmpa.ico"> + <Filter>Resource Files</Filter> + </None> + <None Include="ReadMe.txt"> + <Filter>Resource Files</Filter> + </None> + <None Include="res\wmpa.rc2"> + <Filter>Resource Files\res</Filter> + </None> + </ItemGroup> + <ItemGroup> + <Midl Include="wmpa.odl"> + <Filter>Resource Files</Filter> + </Midl> + </ItemGroup> + <ItemGroup> + <ResourceCompile Include="wmpa.rc"> + <Filter>Resource Files</Filter> + </ResourceCompile> + </ItemGroup> +</Project> \ No newline at end of file diff --git a/plugins/wmpa/wmpa.vcxproj.user b/plugins/wmpa/wmpa.vcxproj.user new file mode 100644 index 00000000..695b5c78 --- /dev/null +++ b/plugins/wmpa/wmpa.vcxproj.user @@ -0,0 +1,3 @@ +<?xml version="1.0" encoding="utf-8"?> +<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> +</Project> \ No newline at end of file diff --git a/plugins/wmpa/wmpadialog.cpp b/plugins/wmpa/wmpadialog.cpp new file mode 100644 index 00000000..b0cdd16e --- /dev/null +++ b/plugins/wmpa/wmpadialog.cpp @@ -0,0 +1,375 @@ +/****************************************************************** +* $Id$ +* +* $Log$ +* +* Copyright 2005 David Cullen, All rights reserved +* +******************************************************************/ +#include "stdafx.h" +#include "wmpa.h" +#include "WMPADialog.h" +#include "shellapi.h" +#include "xchat-plugin.h" + +#ifdef _DEBUG +#define new DEBUG_NEW +#undef THIS_FILE +static char THIS_FILE[] = __FILE__; +#endif + +#define ID_TRAY_ICON 1000 +#define WM_TRAY_ICON (WM_APP + 1) + +///////////////////////////////////////////////////////////////////////////// +// CWMPADialog dialog + +CWMPADialog::CWMPADialog(CWnd* pParent /*=NULL*/) + : CDialog(CWMPADialog::IDD, pParent) +{ + EnableAutomation(); + + //{{AFX_DATA_INIT(CWMPADialog) + //}}AFX_DATA_INIT +} + + +void CWMPADialog::OnFinalRelease() +{ + // When the last reference for an automation object is released + // OnFinalRelease is called. The base class will automatically + // deletes the object. Add additional cleanup required for your + // object before calling the base class. + + CDialog::OnFinalRelease(); +} + +void CWMPADialog::DoDataExchange(CDataExchange* pDX) +{ + CDialog::DoDataExchange(pDX); + //{{AFX_DATA_MAP(CWMPADialog) + DDX_Control(pDX, IDC_SONGLIST, m_SongListBox); + DDX_Control(pDX, IDC_PLAYLIST, m_PlaylistBox); + DDX_Control(pDX, IDC_WMP, m_WMP); + //}}AFX_DATA_MAP +} + + +BEGIN_MESSAGE_MAP(CWMPADialog, CDialog) + //{{AFX_MSG_MAP(CWMPADialog) + ON_LBN_DBLCLK(IDC_PLAYLIST, OnDblclkPlaylist) + ON_WM_SHOWWINDOW() + ON_WM_CLOSE() + ON_LBN_DBLCLK(IDC_SONGLIST, OnDblclkSonglist) + ON_WM_DESTROY() + ON_WM_SIZE() + //}}AFX_MSG_MAP +END_MESSAGE_MAP() + +BEGIN_DISPATCH_MAP(CWMPADialog, CDialog) + //{{AFX_DISPATCH_MAP(CWMPADialog) + // NOTE - the ClassWizard will add and remove mapping macros here. + //}}AFX_DISPATCH_MAP +END_DISPATCH_MAP() + +// Note: we add support for IID_IWMPADialog to support typesafe binding +// from VBA. This IID must match the GUID that is attached to the +// dispinterface in the .ODL file. + +// {01C1B3AA-C7FC-4023-89A5-C814E1B62B9B} +static const IID IID_IWMPADialog = +{ 0x1c1b3aa, 0xc7fc, 0x4023, { 0x89, 0xa5, 0xc8, 0x14, 0xe1, 0xb6, 0x2b, 0x9b } }; + +BEGIN_INTERFACE_MAP(CWMPADialog, CDialog) + INTERFACE_PART(CWMPADialog, IID_IWMPADialog, Dispatch) +END_INTERFACE_MAP() + +///////////////////////////////////////////////////////////////////////////// +// CWMPADialog message handlers + +void CWMPADialog::OnDblclkPlaylist() +{ + // TODO: Add your control notification handler code here + long index; + + // Get the playlist name + index = m_PlaylistBox.GetCurSel(); + CString playlistName; + m_PlaylistBox.GetText(index, playlistName); + + // Get the playlist + CWMPPlaylistCollection pc = m_WMP.GetPlaylistCollection(); + CWMPPlaylistArray pa = pc.getByName((LPCTSTR) playlistName); + CWMPPlaylist playlist = pa.Item(0); + m_WMP.SetCurrentPlaylist(playlist); + + // Set the song list + UpdateSongList(); + + m_WMP.GetControls().play(); + if (autoAnnounce) { + xchat_commandf(ph, "me is playing %s", (LPCTSTR) wmpaGetSongTitle()); + } + else { + xchat_printf(ph, "WMPA: Playing %s", (LPCTSTR) wmpaGetSongTitle()); + } +} + +void CWMPADialog::OnShowWindow(BOOL bShow, UINT nStatus) +{ + CDialog::OnShowWindow(bShow, nStatus); + + // TODO: Add your message handler code here + if (bShow) { + if (!trayInit) { + ZeroMemory(&nid, sizeof(nid)); + nid.cbSize = sizeof(nid); + nid.hWnd = m_hWnd; + nid.uID = ID_TRAY_ICON; + nid.uFlags = NIF_ICON | NIF_MESSAGE | NIF_TIP; + nid.uCallbackMessage = WM_TRAY_ICON; + nid.hIcon = m_hIcon; + strcpy(nid.szTip, "WMPA"); + strcat(nid.szTip, VER_STRING); + strcat(nid.szTip, "\nWindows Media\nPlayer Announcer"); + nid.dwState = 0; + nid.dwStateMask = 0; + strcpy(nid.szInfo, "WMPA "); + strcat(nid.szInfo, VER_STRING); + nid.uTimeout = 10000; // 10 second time out + strcat(nid.szInfoTitle, "WMPA"); + nid.dwInfoFlags = 0; + trayInit = TRUE; + } + } + +} + + +void CWMPADialog::PostNcDestroy() +{ + // TODO: Add your specialized code here and/or call the base class + delete this; + + CDialog::PostNcDestroy(); +} + + +BOOL CWMPADialog::OnInitDialog() +{ + CDialog::OnInitDialog(); + + CString title = "WMPA"; + title += " "; + title += VER_STRING; + SetWindowText((LPCTSTR) title); + + UpdatePlayLists(); + + autoAnnounce = FALSE; + trayInit = FALSE; + trayClicked = FALSE; + + return TRUE; // return TRUE unless you set the focus to a control + // EXCEPTION: OCX Property Pages should return FALSE +} + +void CWMPADialog::OnClose() +{ + // TODO: Add your message handler code here and/or call default + Shell_NotifyIcon(NIM_ADD, &nid); + ShowWindow(SW_HIDE); + + // Don't let the user close the dialog +// CDialog::OnClose(); +} + +void CWMPADialog::OnCancel() +{ +// this->DestroyWindow(); +} + +void CWMPADialog::OnDblclkSonglist() +{ + // TODO: Add your control notification handler code here + int index = m_SongListBox.GetCurSel(); + m_WMP.GetControls().playItem(m_WMP.GetCurrentPlaylist().GetItem(index)); + if (autoAnnounce) { + xchat_commandf(ph, "me is playing %s", (LPCTSTR) wmpaGetSongTitle()); + } + else { + xchat_printf(ph, "WMPA: Playing %s", (LPCTSTR) wmpaGetSongTitle()); + } +} + +BEGIN_EVENTSINK_MAP(CWMPADialog, CDialog) + //{{AFX_EVENTSINK_MAP(CWMPADialog) + ON_EVENT(CWMPADialog, IDC_WMP, 5806 /* CurrentItemChange */, OnCurrentItemChangeWmp, VTS_DISPATCH) + ON_EVENT(CWMPADialog, IDC_WMP, 5101 /* PlayStateChange */, OnPlayStateChangeWmp, VTS_I4) + //}}AFX_EVENTSINK_MAP +END_EVENTSINK_MAP() + +void CWMPADialog::OnCurrentItemChangeWmp(LPDISPATCH pdispMedia) +{ + // TODO: Add your control notification handler code here + + int state = m_WMP.GetPlayState(); + if (state == 3) { // Playing + if (autoAnnounce) { + xchat_commandf(ph, "me is playing %s", (LPCTSTR) wmpaGetSongTitle()); + } + else { + xchat_printf(ph, "WMPA: Playing %s", (LPCTSTR) wmpaGetSongTitle()); + } + } + + SelectCurrentSong(); +} + +void CWMPADialog::OnDestroy() +{ + CDialog::OnDestroy(); + + // TODO: Add your message handler code here +} + +void CWMPADialog::UpdateSongList() +{ + char buffer[32]; + CString name; + CString artist; + CString title; + CString album; + CString bitrate; + CString duration; + CString song; + long index; + long count; + + m_SongListBox.ResetContent(); + CWMPPlaylist playlist = m_WMP.GetCurrentPlaylist(); + count = playlist.GetCount(); + m_SongListBox.ResetContent(); + for (index = 0; index < count; index++) { + name = playlist.GetItem(index).GetName(); + artist = playlist.GetItem(index).getItemInfo("Artist"); + title = playlist.GetItem(index).getItemInfo("Title"); + album = playlist.GetItem(index).getItemInfo("Album"); + bitrate = playlist.GetItem(index).getItemInfo("Bitrate"); + duration = playlist.GetItem(index).GetDurationString(); + + long krate = strtoul((LPCTSTR) bitrate, NULL, 10) / 1000; + _ultoa(krate, buffer, 10); + bitrate = CString(buffer); + + if (album.IsEmpty()) { + playlist.removeItem(playlist.GetItem(index)); + count = playlist.GetCount(); + } + else { + song = ""; + song += artist; + if (song.IsEmpty()) song = "Various"; + song += " - "; + song += title; + song += " ("; + song += album; + song += ") ["; + song += duration; + song += "/"; + song += bitrate; + song += "Kbps]"; + m_SongListBox.AddString((LPCTSTR) song); + } + + } + m_SongListBox.SetCurSel(0); +} + +void CWMPADialog::SelectCurrentSong() +{ + CWMPMedia media; + long index; + long count; + + count = m_WMP.GetCurrentPlaylist().GetCount(); + for (index = 0; index < count; index++) { + media = m_WMP.GetCurrentPlaylist().GetItem(index); + if (m_WMP.GetCurrentMedia().GetIsIdentical(media)) { + m_SongListBox.SetCurSel(index); + } + } +} + +void CWMPADialog::UpdatePlayLists() +{ + // TODO: Add extra initialization here + CWMPPlaylistCollection pc = m_WMP.GetPlaylistCollection(); + CWMPPlaylistArray pa = pc.getAll(); + CWMPPlaylist playlist; + + int index; + int count = pa.GetCount(); + m_PlaylistBox.ResetContent(); + for (index = 0; index < count; index++) { + playlist = pa.Item(index); + m_PlaylistBox.AddString((LPCTSTR) playlist.GetName()); + } +} + + +void CWMPADialog::OnPlayStateChangeWmp(long NewState) +{ + // TODO: Add your control notification handler code here +} + +void CWMPADialog::OnSize(UINT nType, int cx, int cy) +{ + CDialog::OnSize(nType, cx, cy); + // TODO: Add your message handler code here + switch (nType) { + case SIZE_MINIMIZED: + break; + + case SIZE_RESTORED: + Shell_NotifyIcon(NIM_DELETE, &nid); + break; + + default: + break; + } +} + +LRESULT CWMPADialog::WindowProc(UINT message, WPARAM wParam, LPARAM lParam) +{ + // TODO: Add your specialized code here and/or call the base class + switch (message) { + case WM_TRAY_ICON: + switch (lParam) { + case WM_LBUTTONDBLCLK: + trayClicked = TRUE; + break; + + case WM_LBUTTONUP: + if (trayClicked == TRUE) { + ShowWindow(SW_RESTORE); + } + break; + + default: + trayClicked = FALSE; + break; + } + return(TRUE); + break; + + default: + return CDialog::WindowProc(message, wParam, lParam); + break; + } +} + +void CWMPADialog::DeleteTrayIcon() +{ + Shell_NotifyIcon(NIM_DELETE, &nid); +} diff --git a/plugins/wmpa/wmpadialog.h b/plugins/wmpa/wmpadialog.h new file mode 100644 index 00000000..43e9a66a --- /dev/null +++ b/plugins/wmpa/wmpadialog.h @@ -0,0 +1,91 @@ +/****************************************************************** +* $Id$ +* +* $Log$ +* +* Copyright 2005 David Cullen, All rights reserved +* +******************************************************************/ +//{{AFX_INCLUDES() +#include "wmpplayer4.h" +//}}AFX_INCLUDES +#if !defined(AFX_WMPADIALOG_H__D3838BCC_9E26_4FC0_BD42_C8D8EDF057E3__INCLUDED_) +#define AFX_WMPADIALOG_H__D3838BCC_9E26_4FC0_BD42_C8D8EDF057E3__INCLUDED_ + +#if _MSC_VER > 1000 +#pragma once +#endif // _MSC_VER > 1000 +// WMPADialog.h : header file +// + +///////////////////////////////////////////////////////////////////////////// +// CWMPADialog dialog + +class CWMPADialog : public CDialog +{ +// Construction +public: + CWMPADialog(CWnd* pParent = NULL); // standard constructor + virtual void OnCancel(); + void UpdatePlayLists(); + void UpdateSongList(); + void SelectCurrentSong(); + void DeleteTrayIcon(); + BOOL autoAnnounce; + HICON m_hIcon; + +private: + BOOL trayInit; + BOOL trayClicked; + NOTIFYICONDATA nid; + +public: +// Dialog Data + //{{AFX_DATA(CWMPADialog) + enum { IDD = IDD_WMPADIALOG }; + CListBox m_SongListBox; + CListBox m_PlaylistBox; + CWMPPlayer4 m_WMP; + //}}AFX_DATA + + +// Overrides + // ClassWizard generated virtual function overrides + //{{AFX_VIRTUAL(CWMPADialog) + public: + virtual void OnFinalRelease(); + protected: + virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support + virtual void PostNcDestroy(); + virtual LRESULT WindowProc(UINT message, WPARAM wParam, LPARAM lParam); + //}}AFX_VIRTUAL + +// Implementation +protected: + + // Generated message map functions + //{{AFX_MSG(CWMPADialog) + afx_msg void OnDblclkPlaylist(); + afx_msg void OnShowWindow(BOOL bShow, UINT nStatus); + virtual BOOL OnInitDialog(); + afx_msg void OnClose(); + afx_msg void OnDblclkSonglist(); + afx_msg void OnCurrentItemChangeWmp(LPDISPATCH pdispMedia); + afx_msg void OnDestroy(); + afx_msg void OnPlayStateChangeWmp(long NewState); + afx_msg void OnSize(UINT nType, int cx, int cy); + DECLARE_EVENTSINK_MAP() + //}}AFX_MSG + DECLARE_MESSAGE_MAP() + // Generated OLE dispatch map functions + //{{AFX_DISPATCH(CWMPADialog) + // NOTE - the ClassWizard will add and remove member functions here. + //}}AFX_DISPATCH + DECLARE_DISPATCH_MAP() + DECLARE_INTERFACE_MAP() +}; + +//{{AFX_INSERT_LOCATION}} +// Microsoft Visual C++ will insert additional declarations immediately before the previous line. + +#endif // !defined(AFX_WMPADIALOG_H__D3838BCC_9E26_4FC0_BD42_C8D8EDF057E3__INCLUDED_) diff --git a/plugins/wmpa/wmpcdrom.cpp b/plugins/wmpa/wmpcdrom.cpp new file mode 100644 index 00000000..121f0535 --- /dev/null +++ b/plugins/wmpa/wmpcdrom.cpp @@ -0,0 +1,37 @@ +// Machine generated IDispatch wrapper class(es) created by Microsoft Visual C++ + +// NOTE: Do not modify the contents of this file. If this class is regenerated by +// Microsoft Visual C++, your modifications will be overwritten. + + +#include "stdafx.h" +#include "wmpcdrom.h" + +// Dispatch interfaces referenced by this interface +#include "wmpplaylist.h" + + +///////////////////////////////////////////////////////////////////////////// +// CWMPCdrom properties + +///////////////////////////////////////////////////////////////////////////// +// CWMPCdrom operations + +CString CWMPCdrom::GetDriveSpecifier() +{ + CString result; + InvokeHelper(0xfb, DISPATCH_PROPERTYGET, VT_BSTR, (void*)&result, NULL); + return result; +} + +CWMPPlaylist CWMPCdrom::GetPlaylist() +{ + LPDISPATCH pDispatch; + InvokeHelper(0xfc, DISPATCH_PROPERTYGET, VT_DISPATCH, (void*)&pDispatch, NULL); + return CWMPPlaylist(pDispatch); +} + +void CWMPCdrom::eject() +{ + InvokeHelper(0xfd, DISPATCH_METHOD, VT_EMPTY, NULL, NULL); +} diff --git a/plugins/wmpa/wmpcdrom.h b/plugins/wmpa/wmpcdrom.h new file mode 100644 index 00000000..f52f8f10 --- /dev/null +++ b/plugins/wmpa/wmpcdrom.h @@ -0,0 +1,39 @@ +#if !defined(AFX_WMPCDROM_H__B7B13CE9_E69E_4D54_9370_CCA2D4A42532__INCLUDED_) +#define AFX_WMPCDROM_H__B7B13CE9_E69E_4D54_9370_CCA2D4A42532__INCLUDED_ + +#if _MSC_VER > 1000 +#pragma once +#endif // _MSC_VER > 1000 +// Machine generated IDispatch wrapper class(es) created by Microsoft Visual C++ + +// NOTE: Do not modify the contents of this file. If this class is regenerated by +// Microsoft Visual C++, your modifications will be overwritten. + + +// Dispatch interfaces referenced by this interface +class CWMPPlaylist; + +///////////////////////////////////////////////////////////////////////////// +// CWMPCdrom wrapper class + +class CWMPCdrom : public COleDispatchDriver +{ +public: + CWMPCdrom() {} // Calls COleDispatchDriver default constructor + CWMPCdrom(LPDISPATCH pDispatch) : COleDispatchDriver(pDispatch) {} + CWMPCdrom(const CWMPCdrom& dispatchSrc) : COleDispatchDriver(dispatchSrc) {} + +// Attributes +public: + +// Operations +public: + CString GetDriveSpecifier(); + CWMPPlaylist GetPlaylist(); + void eject(); +}; + +//{{AFX_INSERT_LOCATION}} +// Microsoft Visual C++ will insert additional declarations immediately before the previous line. + +#endif // !defined(AFX_WMPCDROM_H__B7B13CE9_E69E_4D54_9370_CCA2D4A42532__INCLUDED_) diff --git a/plugins/wmpa/wmpcdromcollection.cpp b/plugins/wmpa/wmpcdromcollection.cpp new file mode 100644 index 00000000..3e1f7e7d --- /dev/null +++ b/plugins/wmpa/wmpcdromcollection.cpp @@ -0,0 +1,45 @@ +// Machine generated IDispatch wrapper class(es) created by Microsoft Visual C++ + +// NOTE: Do not modify the contents of this file. If this class is regenerated by +// Microsoft Visual C++, your modifications will be overwritten. + + +#include "stdafx.h" +#include "wmpcdromcollection.h" + +// Dispatch interfaces referenced by this interface +#include "WMPCdrom.h" + + +///////////////////////////////////////////////////////////////////////////// +// CWMPCdromCollection properties + +///////////////////////////////////////////////////////////////////////////// +// CWMPCdromCollection operations + +long CWMPCdromCollection::GetCount() +{ + long result; + InvokeHelper(0x12d, DISPATCH_PROPERTYGET, VT_I4, (void*)&result, NULL); + return result; +} + +CWMPCdrom CWMPCdromCollection::Item(long lIndex) +{ + LPDISPATCH pDispatch; + static BYTE parms[] = + VTS_I4; + InvokeHelper(0x12e, DISPATCH_METHOD, VT_DISPATCH, (void*)&pDispatch, parms, + lIndex); + return CWMPCdrom(pDispatch); +} + +CWMPCdrom CWMPCdromCollection::getByDriveSpecifier(LPCTSTR bstrDriveSpecifier) +{ + LPDISPATCH pDispatch; + static BYTE parms[] = + VTS_BSTR; + InvokeHelper(0x12f, DISPATCH_METHOD, VT_DISPATCH, (void*)&pDispatch, parms, + bstrDriveSpecifier); + return CWMPCdrom(pDispatch); +} diff --git a/plugins/wmpa/wmpcdromcollection.h b/plugins/wmpa/wmpcdromcollection.h new file mode 100644 index 00000000..bdc32b9b --- /dev/null +++ b/plugins/wmpa/wmpcdromcollection.h @@ -0,0 +1,39 @@ +#if !defined(AFX_WMPCDROMCOLLECTION_H__35F03E65_DBA5_47A8_84C1_DAA3D624A4D3__INCLUDED_) +#define AFX_WMPCDROMCOLLECTION_H__35F03E65_DBA5_47A8_84C1_DAA3D624A4D3__INCLUDED_ + +#if _MSC_VER > 1000 +#pragma once +#endif // _MSC_VER > 1000 +// Machine generated IDispatch wrapper class(es) created by Microsoft Visual C++ + +// NOTE: Do not modify the contents of this file. If this class is regenerated by +// Microsoft Visual C++, your modifications will be overwritten. + + +// Dispatch interfaces referenced by this interface +class CWMPCdrom; + +///////////////////////////////////////////////////////////////////////////// +// CWMPCdromCollection wrapper class + +class CWMPCdromCollection : public COleDispatchDriver +{ +public: + CWMPCdromCollection() {} // Calls COleDispatchDriver default constructor + CWMPCdromCollection(LPDISPATCH pDispatch) : COleDispatchDriver(pDispatch) {} + CWMPCdromCollection(const CWMPCdromCollection& dispatchSrc) : COleDispatchDriver(dispatchSrc) {} + +// Attributes +public: + +// Operations +public: + long GetCount(); + CWMPCdrom Item(long lIndex); + CWMPCdrom getByDriveSpecifier(LPCTSTR bstrDriveSpecifier); +}; + +//{{AFX_INSERT_LOCATION}} +// Microsoft Visual C++ will insert additional declarations immediately before the previous line. + +#endif // !defined(AFX_WMPCDROMCOLLECTION_H__35F03E65_DBA5_47A8_84C1_DAA3D624A4D3__INCLUDED_) diff --git a/plugins/wmpa/wmpclosedcaption.cpp b/plugins/wmpa/wmpclosedcaption.cpp new file mode 100644 index 00000000..3ea2ec91 --- /dev/null +++ b/plugins/wmpa/wmpclosedcaption.cpp @@ -0,0 +1,75 @@ +// Machine generated IDispatch wrapper class(es) created by Microsoft Visual C++ + +// NOTE: Do not modify the contents of this file. If this class is regenerated by +// Microsoft Visual C++, your modifications will be overwritten. + + +#include "stdafx.h" +#include "wmpclosedcaption.h" + + +///////////////////////////////////////////////////////////////////////////// +// CWMPClosedCaption properties + +///////////////////////////////////////////////////////////////////////////// +// CWMPClosedCaption operations + +CString CWMPClosedCaption::GetSAMIStyle() +{ + CString result; + InvokeHelper(0x3b7, DISPATCH_PROPERTYGET, VT_BSTR, (void*)&result, NULL); + return result; +} + +void CWMPClosedCaption::SetSAMIStyle(LPCTSTR lpszNewValue) +{ + static BYTE parms[] = + VTS_BSTR; + InvokeHelper(0x3b7, DISPATCH_PROPERTYPUT, VT_EMPTY, NULL, parms, + lpszNewValue); +} + +CString CWMPClosedCaption::GetSAMILang() +{ + CString result; + InvokeHelper(0x3b8, DISPATCH_PROPERTYGET, VT_BSTR, (void*)&result, NULL); + return result; +} + +void CWMPClosedCaption::SetSAMILang(LPCTSTR lpszNewValue) +{ + static BYTE parms[] = + VTS_BSTR; + InvokeHelper(0x3b8, DISPATCH_PROPERTYPUT, VT_EMPTY, NULL, parms, + lpszNewValue); +} + +CString CWMPClosedCaption::GetSAMIFileName() +{ + CString result; + InvokeHelper(0x3b9, DISPATCH_PROPERTYGET, VT_BSTR, (void*)&result, NULL); + return result; +} + +void CWMPClosedCaption::SetSAMIFileName(LPCTSTR lpszNewValue) +{ + static BYTE parms[] = + VTS_BSTR; + InvokeHelper(0x3b9, DISPATCH_PROPERTYPUT, VT_EMPTY, NULL, parms, + lpszNewValue); +} + +CString CWMPClosedCaption::GetCaptioningId() +{ + CString result; + InvokeHelper(0x3ba, DISPATCH_PROPERTYGET, VT_BSTR, (void*)&result, NULL); + return result; +} + +void CWMPClosedCaption::SetCaptioningId(LPCTSTR lpszNewValue) +{ + static BYTE parms[] = + VTS_BSTR; + InvokeHelper(0x3ba, DISPATCH_PROPERTYPUT, VT_EMPTY, NULL, parms, + lpszNewValue); +} diff --git a/plugins/wmpa/wmpclosedcaption.h b/plugins/wmpa/wmpclosedcaption.h new file mode 100644 index 00000000..c604c12f --- /dev/null +++ b/plugins/wmpa/wmpclosedcaption.h @@ -0,0 +1,40 @@ +#if !defined(AFX_WMPCLOSEDCAPTION_H__FC0A9836_7517_4898_B25C_74C76E80CE3D__INCLUDED_) +#define AFX_WMPCLOSEDCAPTION_H__FC0A9836_7517_4898_B25C_74C76E80CE3D__INCLUDED_ + +#if _MSC_VER > 1000 +#pragma once +#endif // _MSC_VER > 1000 +// Machine generated IDispatch wrapper class(es) created by Microsoft Visual C++ + +// NOTE: Do not modify the contents of this file. If this class is regenerated by +// Microsoft Visual C++, your modifications will be overwritten. + +///////////////////////////////////////////////////////////////////////////// +// CWMPClosedCaption wrapper class + +class CWMPClosedCaption : public COleDispatchDriver +{ +public: + CWMPClosedCaption() {} // Calls COleDispatchDriver default constructor + CWMPClosedCaption(LPDISPATCH pDispatch) : COleDispatchDriver(pDispatch) {} + CWMPClosedCaption(const CWMPClosedCaption& dispatchSrc) : COleDispatchDriver(dispatchSrc) {} + +// Attributes +public: + +// Operations +public: + CString GetSAMIStyle(); + void SetSAMIStyle(LPCTSTR lpszNewValue); + CString GetSAMILang(); + void SetSAMILang(LPCTSTR lpszNewValue); + CString GetSAMIFileName(); + void SetSAMIFileName(LPCTSTR lpszNewValue); + CString GetCaptioningId(); + void SetCaptioningId(LPCTSTR lpszNewValue); +}; + +//{{AFX_INSERT_LOCATION}} +// Microsoft Visual C++ will insert additional declarations immediately before the previous line. + +#endif // !defined(AFX_WMPCLOSEDCAPTION_H__FC0A9836_7517_4898_B25C_74C76E80CE3D__INCLUDED_) diff --git a/plugins/wmpa/wmpcontrols.cpp b/plugins/wmpa/wmpcontrols.cpp new file mode 100644 index 00000000..1b3046d0 --- /dev/null +++ b/plugins/wmpa/wmpcontrols.cpp @@ -0,0 +1,123 @@ +// Machine generated IDispatch wrapper class(es) created by Microsoft Visual C++ + +// NOTE: Do not modify the contents of this file. If this class is regenerated by +// Microsoft Visual C++, your modifications will be overwritten. + + +#include "stdafx.h" +#include "wmpcontrols.h" + +// Dispatch interfaces referenced by this interface +#include "wmpmedia.h" + + +///////////////////////////////////////////////////////////////////////////// +// CWMPControls properties + +///////////////////////////////////////////////////////////////////////////// +// CWMPControls operations + +BOOL CWMPControls::GetIsAvailable(LPCTSTR bstrItem) +{ + BOOL result; + static BYTE parms[] = + VTS_BSTR; + InvokeHelper(0x3e, DISPATCH_PROPERTYGET, VT_BOOL, (void*)&result, parms, + bstrItem); + return result; +} + +void CWMPControls::play() +{ + InvokeHelper(0x33, DISPATCH_METHOD, VT_EMPTY, NULL, NULL); +} + +void CWMPControls::stop() +{ + InvokeHelper(0x34, DISPATCH_METHOD, VT_EMPTY, NULL, NULL); +} + +void CWMPControls::pause() +{ + InvokeHelper(0x35, DISPATCH_METHOD, VT_EMPTY, NULL, NULL); +} + +void CWMPControls::fastForward() +{ + InvokeHelper(0x36, DISPATCH_METHOD, VT_EMPTY, NULL, NULL); +} + +void CWMPControls::fastReverse() +{ + InvokeHelper(0x37, DISPATCH_METHOD, VT_EMPTY, NULL, NULL); +} + +double CWMPControls::GetCurrentPosition() +{ + double result; + InvokeHelper(0x38, DISPATCH_PROPERTYGET, VT_R8, (void*)&result, NULL); + return result; +} + +void CWMPControls::SetCurrentPosition(double newValue) +{ + static BYTE parms[] = + VTS_R8; + InvokeHelper(0x38, DISPATCH_PROPERTYPUT, VT_EMPTY, NULL, parms, + newValue); +} + +CString CWMPControls::GetCurrentPositionString() +{ + CString result; + InvokeHelper(0x39, DISPATCH_PROPERTYGET, VT_BSTR, (void*)&result, NULL); + return result; +} + +void CWMPControls::next() +{ + InvokeHelper(0x3a, DISPATCH_METHOD, VT_EMPTY, NULL, NULL); +} + +void CWMPControls::previous() +{ + InvokeHelper(0x3b, DISPATCH_METHOD, VT_EMPTY, NULL, NULL); +} + +CWMPMedia CWMPControls::GetCurrentItem() +{ + LPDISPATCH pDispatch; + InvokeHelper(0x3c, DISPATCH_PROPERTYGET, VT_DISPATCH, (void*)&pDispatch, NULL); + return CWMPMedia(pDispatch); +} + +void CWMPControls::SetCurrentItem(LPDISPATCH newValue) +{ + static BYTE parms[] = + VTS_DISPATCH; + InvokeHelper(0x3c, DISPATCH_PROPERTYPUT, VT_EMPTY, NULL, parms, + newValue); +} + +long CWMPControls::GetCurrentMarker() +{ + long result; + InvokeHelper(0x3d, DISPATCH_PROPERTYGET, VT_I4, (void*)&result, NULL); + return result; +} + +void CWMPControls::SetCurrentMarker(long nNewValue) +{ + static BYTE parms[] = + VTS_I4; + InvokeHelper(0x3d, DISPATCH_PROPERTYPUT, VT_EMPTY, NULL, parms, + nNewValue); +} + +void CWMPControls::playItem(LPDISPATCH pIWMPMedia) +{ + static BYTE parms[] = + VTS_DISPATCH; + InvokeHelper(0x3f, DISPATCH_METHOD, VT_EMPTY, NULL, parms, + pIWMPMedia); +} diff --git a/plugins/wmpa/wmpcontrols.h b/plugins/wmpa/wmpcontrols.h new file mode 100644 index 00000000..b793bcb1 --- /dev/null +++ b/plugins/wmpa/wmpcontrols.h @@ -0,0 +1,52 @@ +#if !defined(AFX_WMPCONTROLS_H__234DACEF_6ED9_481D_B7E8_03653189E9B2__INCLUDED_) +#define AFX_WMPCONTROLS_H__234DACEF_6ED9_481D_B7E8_03653189E9B2__INCLUDED_ + +#if _MSC_VER > 1000 +#pragma once +#endif // _MSC_VER > 1000 +// Machine generated IDispatch wrapper class(es) created by Microsoft Visual C++ + +// NOTE: Do not modify the contents of this file. If this class is regenerated by +// Microsoft Visual C++, your modifications will be overwritten. + + +// Dispatch interfaces referenced by this interface +class CWMPMedia; + +///////////////////////////////////////////////////////////////////////////// +// CWMPControls wrapper class + +class CWMPControls : public COleDispatchDriver +{ +public: + CWMPControls() {} // Calls COleDispatchDriver default constructor + CWMPControls(LPDISPATCH pDispatch) : COleDispatchDriver(pDispatch) {} + CWMPControls(const CWMPControls& dispatchSrc) : COleDispatchDriver(dispatchSrc) {} + +// Attributes +public: + +// Operations +public: + BOOL GetIsAvailable(LPCTSTR bstrItem); + void play(); + void stop(); + void pause(); + void fastForward(); + void fastReverse(); + double GetCurrentPosition(); + void SetCurrentPosition(double newValue); + CString GetCurrentPositionString(); + void next(); + void previous(); + CWMPMedia GetCurrentItem(); + void SetCurrentItem(LPDISPATCH newValue); + long GetCurrentMarker(); + void SetCurrentMarker(long nNewValue); + void playItem(LPDISPATCH pIWMPMedia); +}; + +//{{AFX_INSERT_LOCATION}} +// Microsoft Visual C++ will insert additional declarations immediately before the previous line. + +#endif // !defined(AFX_WMPCONTROLS_H__234DACEF_6ED9_481D_B7E8_03653189E9B2__INCLUDED_) diff --git a/plugins/wmpa/wmpdvd.cpp b/plugins/wmpa/wmpdvd.cpp new file mode 100644 index 00000000..0eb48f6f --- /dev/null +++ b/plugins/wmpa/wmpdvd.cpp @@ -0,0 +1,52 @@ +// Machine generated IDispatch wrapper class(es) created by Microsoft Visual C++ + +// NOTE: Do not modify the contents of this file. If this class is regenerated by +// Microsoft Visual C++, your modifications will be overwritten. + + +#include "stdafx.h" +#include "wmpdvd.h" + + +///////////////////////////////////////////////////////////////////////////// +// CWMPDVD properties + +///////////////////////////////////////////////////////////////////////////// +// CWMPDVD operations + +BOOL CWMPDVD::GetIsAvailable(LPCTSTR bstrItem) +{ + BOOL result; + static BYTE parms[] = + VTS_BSTR; + InvokeHelper(0x3e9, DISPATCH_PROPERTYGET, VT_BOOL, (void*)&result, parms, + bstrItem); + return result; +} + +CString CWMPDVD::GetDomain() +{ + CString result; + InvokeHelper(0x3ea, DISPATCH_PROPERTYGET, VT_BSTR, (void*)&result, NULL); + return result; +} + +void CWMPDVD::topMenu() +{ + InvokeHelper(0x3eb, DISPATCH_METHOD, VT_EMPTY, NULL, NULL); +} + +void CWMPDVD::titleMenu() +{ + InvokeHelper(0x3ec, DISPATCH_METHOD, VT_EMPTY, NULL, NULL); +} + +void CWMPDVD::back() +{ + InvokeHelper(0x3ed, DISPATCH_METHOD, VT_EMPTY, NULL, NULL); +} + +void CWMPDVD::resume() +{ + InvokeHelper(0x3ee, DISPATCH_METHOD, VT_EMPTY, NULL, NULL); +} diff --git a/plugins/wmpa/wmpdvd.h b/plugins/wmpa/wmpdvd.h new file mode 100644 index 00000000..4710536a --- /dev/null +++ b/plugins/wmpa/wmpdvd.h @@ -0,0 +1,38 @@ +#if !defined(AFX_WMPDVD_H__E83D86CA_08B8_4ACA_A434_0837BA71E3CA__INCLUDED_) +#define AFX_WMPDVD_H__E83D86CA_08B8_4ACA_A434_0837BA71E3CA__INCLUDED_ + +#if _MSC_VER > 1000 +#pragma once +#endif // _MSC_VER > 1000 +// Machine generated IDispatch wrapper class(es) created by Microsoft Visual C++ + +// NOTE: Do not modify the contents of this file. If this class is regenerated by +// Microsoft Visual C++, your modifications will be overwritten. + +///////////////////////////////////////////////////////////////////////////// +// CWMPDVD wrapper class + +class CWMPDVD : public COleDispatchDriver +{ +public: + CWMPDVD() {} // Calls COleDispatchDriver default constructor + CWMPDVD(LPDISPATCH pDispatch) : COleDispatchDriver(pDispatch) {} + CWMPDVD(const CWMPDVD& dispatchSrc) : COleDispatchDriver(dispatchSrc) {} + +// Attributes +public: + +// Operations +public: + BOOL GetIsAvailable(LPCTSTR bstrItem); + CString GetDomain(); + void topMenu(); + void titleMenu(); + void back(); + void resume(); +}; + +//{{AFX_INSERT_LOCATION}} +// Microsoft Visual C++ will insert additional declarations immediately before the previous line. + +#endif // !defined(AFX_WMPDVD_H__E83D86CA_08B8_4ACA_A434_0837BA71E3CA__INCLUDED_) diff --git a/plugins/wmpa/wmperror.cpp b/plugins/wmpa/wmperror.cpp new file mode 100644 index 00000000..2fce2b59 --- /dev/null +++ b/plugins/wmpa/wmperror.cpp @@ -0,0 +1,45 @@ +// Machine generated IDispatch wrapper class(es) created by Microsoft Visual C++ + +// NOTE: Do not modify the contents of this file. If this class is regenerated by +// Microsoft Visual C++, your modifications will be overwritten. + + +#include "stdafx.h" +#include "wmperror.h" + +// Dispatch interfaces referenced by this interface +#include "wmperroritem.h" + + +///////////////////////////////////////////////////////////////////////////// +// CWMPError properties + +///////////////////////////////////////////////////////////////////////////// +// CWMPError operations + +void CWMPError::clearErrorQueue() +{ + InvokeHelper(0x353, DISPATCH_METHOD, VT_EMPTY, NULL, NULL); +} + +long CWMPError::GetErrorCount() +{ + long result; + InvokeHelper(0x354, DISPATCH_PROPERTYGET, VT_I4, (void*)&result, NULL); + return result; +} + +CWMPErrorItem CWMPError::GetItem(long dwIndex) +{ + LPDISPATCH pDispatch; + static BYTE parms[] = + VTS_I4; + InvokeHelper(0x355, DISPATCH_PROPERTYGET, VT_DISPATCH, (void*)&pDispatch, parms, + dwIndex); + return CWMPErrorItem(pDispatch); +} + +void CWMPError::webHelp() +{ + InvokeHelper(0x356, DISPATCH_METHOD, VT_EMPTY, NULL, NULL); +} diff --git a/plugins/wmpa/wmperror.h b/plugins/wmpa/wmperror.h new file mode 100644 index 00000000..94ee2fff --- /dev/null +++ b/plugins/wmpa/wmperror.h @@ -0,0 +1,40 @@ +#if !defined(AFX_WMPERROR_H__1E72AC7F_E0AC_4100_B7EF_A5B0D8FA75C3__INCLUDED_) +#define AFX_WMPERROR_H__1E72AC7F_E0AC_4100_B7EF_A5B0D8FA75C3__INCLUDED_ + +#if _MSC_VER > 1000 +#pragma once +#endif // _MSC_VER > 1000 +// Machine generated IDispatch wrapper class(es) created by Microsoft Visual C++ + +// NOTE: Do not modify the contents of this file. If this class is regenerated by +// Microsoft Visual C++, your modifications will be overwritten. + + +// Dispatch interfaces referenced by this interface +class CWMPErrorItem; + +///////////////////////////////////////////////////////////////////////////// +// CWMPError wrapper class + +class CWMPError : public COleDispatchDriver +{ +public: + CWMPError() {} // Calls COleDispatchDriver default constructor + CWMPError(LPDISPATCH pDispatch) : COleDispatchDriver(pDispatch) {} + CWMPError(const CWMPError& dispatchSrc) : COleDispatchDriver(dispatchSrc) {} + +// Attributes +public: + +// Operations +public: + void clearErrorQueue(); + long GetErrorCount(); + CWMPErrorItem GetItem(long dwIndex); + void webHelp(); +}; + +//{{AFX_INSERT_LOCATION}} +// Microsoft Visual C++ will insert additional declarations immediately before the previous line. + +#endif // !defined(AFX_WMPERROR_H__1E72AC7F_E0AC_4100_B7EF_A5B0D8FA75C3__INCLUDED_) diff --git a/plugins/wmpa/wmperroritem.cpp b/plugins/wmpa/wmperroritem.cpp new file mode 100644 index 00000000..86e9740c --- /dev/null +++ b/plugins/wmpa/wmperroritem.cpp @@ -0,0 +1,50 @@ +// Machine generated IDispatch wrapper class(es) created by Microsoft Visual C++ + +// NOTE: Do not modify the contents of this file. If this class is regenerated by +// Microsoft Visual C++, your modifications will be overwritten. + + +#include "stdafx.h" +#include "wmperroritem.h" + + +///////////////////////////////////////////////////////////////////////////// +// CWMPErrorItem properties + +///////////////////////////////////////////////////////////////////////////// +// CWMPErrorItem operations + +long CWMPErrorItem::GetErrorCode() +{ + long result; + InvokeHelper(0x385, DISPATCH_PROPERTYGET, VT_I4, (void*)&result, NULL); + return result; +} + +CString CWMPErrorItem::GetErrorDescription() +{ + CString result; + InvokeHelper(0x386, DISPATCH_PROPERTYGET, VT_BSTR, (void*)&result, NULL); + return result; +} + +VARIANT CWMPErrorItem::GetErrorContext() +{ + VARIANT result; + InvokeHelper(0x387, DISPATCH_PROPERTYGET, VT_VARIANT, (void*)&result, NULL); + return result; +} + +long CWMPErrorItem::GetRemedy() +{ + long result; + InvokeHelper(0x388, DISPATCH_PROPERTYGET, VT_I4, (void*)&result, NULL); + return result; +} + +CString CWMPErrorItem::GetCustomUrl() +{ + CString result; + InvokeHelper(0x389, DISPATCH_PROPERTYGET, VT_BSTR, (void*)&result, NULL); + return result; +} diff --git a/plugins/wmpa/wmperroritem.h b/plugins/wmpa/wmperroritem.h new file mode 100644 index 00000000..de66dc9b --- /dev/null +++ b/plugins/wmpa/wmperroritem.h @@ -0,0 +1,37 @@ +#if !defined(AFX_WMPERRORITEM_H__9399BDE5_C96D_43D3_BF02_E7A5850421B4__INCLUDED_) +#define AFX_WMPERRORITEM_H__9399BDE5_C96D_43D3_BF02_E7A5850421B4__INCLUDED_ + +#if _MSC_VER > 1000 +#pragma once +#endif // _MSC_VER > 1000 +// Machine generated IDispatch wrapper class(es) created by Microsoft Visual C++ + +// NOTE: Do not modify the contents of this file. If this class is regenerated by +// Microsoft Visual C++, your modifications will be overwritten. + +///////////////////////////////////////////////////////////////////////////// +// CWMPErrorItem wrapper class + +class CWMPErrorItem : public COleDispatchDriver +{ +public: + CWMPErrorItem() {} // Calls COleDispatchDriver default constructor + CWMPErrorItem(LPDISPATCH pDispatch) : COleDispatchDriver(pDispatch) {} + CWMPErrorItem(const CWMPErrorItem& dispatchSrc) : COleDispatchDriver(dispatchSrc) {} + +// Attributes +public: + +// Operations +public: + long GetErrorCode(); + CString GetErrorDescription(); + VARIANT GetErrorContext(); + long GetRemedy(); + CString GetCustomUrl(); +}; + +//{{AFX_INSERT_LOCATION}} +// Microsoft Visual C++ will insert additional declarations immediately before the previous line. + +#endif // !defined(AFX_WMPERRORITEM_H__9399BDE5_C96D_43D3_BF02_E7A5850421B4__INCLUDED_) diff --git a/plugins/wmpa/wmpmedia.cpp b/plugins/wmpa/wmpmedia.cpp new file mode 100644 index 00000000..63503ab8 --- /dev/null +++ b/plugins/wmpa/wmpmedia.cpp @@ -0,0 +1,167 @@ +// Machine generated IDispatch wrapper class(es) created by Microsoft Visual C++ + +// NOTE: Do not modify the contents of this file. If this class is regenerated by +// Microsoft Visual C++, your modifications will be overwritten. + + +#include "stdafx.h" +#include "wmpmedia.h" + + +///////////////////////////////////////////////////////////////////////////// +// CWMPMedia properties + +///////////////////////////////////////////////////////////////////////////// +// CWMPMedia operations + +BOOL CWMPMedia::GetIsIdentical(LPDISPATCH pIWMPMedia) +{ + BOOL result; + static BYTE parms[] = + VTS_DISPATCH; + InvokeHelper(0x2fb, DISPATCH_PROPERTYGET, VT_BOOL, (void*)&result, parms, + pIWMPMedia); + return result; +} + +CString CWMPMedia::GetSourceURL() +{ + CString result; + InvokeHelper(0x2ef, DISPATCH_PROPERTYGET, VT_BSTR, (void*)&result, NULL); + return result; +} + +CString CWMPMedia::GetName() +{ + CString result; + InvokeHelper(0x2fc, DISPATCH_PROPERTYGET, VT_BSTR, (void*)&result, NULL); + return result; +} + +void CWMPMedia::SetName(LPCTSTR lpszNewValue) +{ + static BYTE parms[] = + VTS_BSTR; + InvokeHelper(0x2fc, DISPATCH_PROPERTYPUT, VT_EMPTY, NULL, parms, + lpszNewValue); +} + +long CWMPMedia::GetImageSourceWidth() +{ + long result; + InvokeHelper(0x2f0, DISPATCH_PROPERTYGET, VT_I4, (void*)&result, NULL); + return result; +} + +long CWMPMedia::GetImageSourceHeight() +{ + long result; + InvokeHelper(0x2f1, DISPATCH_PROPERTYGET, VT_I4, (void*)&result, NULL); + return result; +} + +long CWMPMedia::GetMarkerCount() +{ + long result; + InvokeHelper(0x2f2, DISPATCH_PROPERTYGET, VT_I4, (void*)&result, NULL); + return result; +} + +double CWMPMedia::getMarkerTime(long MarkerNum) +{ + double result; + static BYTE parms[] = + VTS_I4; + InvokeHelper(0x2f3, DISPATCH_METHOD, VT_R8, (void*)&result, parms, + MarkerNum); + return result; +} + +CString CWMPMedia::getMarkerName(long MarkerNum) +{ + CString result; + static BYTE parms[] = + VTS_I4; + InvokeHelper(0x2f4, DISPATCH_METHOD, VT_BSTR, (void*)&result, parms, + MarkerNum); + return result; +} + +double CWMPMedia::GetDuration() +{ + double result; + InvokeHelper(0x2f5, DISPATCH_PROPERTYGET, VT_R8, (void*)&result, NULL); + return result; +} + +CString CWMPMedia::GetDurationString() +{ + CString result; + InvokeHelper(0x2f6, DISPATCH_PROPERTYGET, VT_BSTR, (void*)&result, NULL); + return result; +} + +long CWMPMedia::GetAttributeCount() +{ + long result; + InvokeHelper(0x2f7, DISPATCH_PROPERTYGET, VT_I4, (void*)&result, NULL); + return result; +} + +CString CWMPMedia::getAttributeName(long lIndex) +{ + CString result; + static BYTE parms[] = + VTS_I4; + InvokeHelper(0x2f8, DISPATCH_METHOD, VT_BSTR, (void*)&result, parms, + lIndex); + return result; +} + +CString CWMPMedia::getItemInfo(LPCTSTR bstrItemName) +{ + CString result; + static BYTE parms[] = + VTS_BSTR; + InvokeHelper(0x2f9, DISPATCH_METHOD, VT_BSTR, (void*)&result, parms, + bstrItemName); + return result; +} + +void CWMPMedia::setItemInfo(LPCTSTR bstrItemName, LPCTSTR bstrVal) +{ + static BYTE parms[] = + VTS_BSTR VTS_BSTR; + InvokeHelper(0x2fa, DISPATCH_METHOD, VT_EMPTY, NULL, parms, + bstrItemName, bstrVal); +} + +CString CWMPMedia::getItemInfoByAtom(long lAtom) +{ + CString result; + static BYTE parms[] = + VTS_I4; + InvokeHelper(0x2fd, DISPATCH_METHOD, VT_BSTR, (void*)&result, parms, + lAtom); + return result; +} + +BOOL CWMPMedia::isMemberOf(LPDISPATCH pPlaylist) +{ + BOOL result; + static BYTE parms[] = + VTS_DISPATCH; + InvokeHelper(0x2fe, DISPATCH_METHOD, VT_BOOL, (void*)&result, parms, + pPlaylist); + return result; +} + +BOOL CWMPMedia::isReadOnlyItem(LPCTSTR bstrItemName) +{ + BOOL result; + static BYTE parms[] = + VTS_BSTR; + InvokeHelper(0x2ff, DISPATCH_METHOD, VT_BOOL, (void*)&result, parms, + bstrItemName); + return result; +} diff --git a/plugins/wmpa/wmpmedia.h b/plugins/wmpa/wmpmedia.h new file mode 100644 index 00000000..3503c403 --- /dev/null +++ b/plugins/wmpa/wmpmedia.h @@ -0,0 +1,50 @@ +#if !defined(AFX_WMPMEDIA_H__7736565E_C037_498E_89F1_9696912C5998__INCLUDED_) +#define AFX_WMPMEDIA_H__7736565E_C037_498E_89F1_9696912C5998__INCLUDED_ + +#if _MSC_VER > 1000 +#pragma once +#endif // _MSC_VER > 1000 +// Machine generated IDispatch wrapper class(es) created by Microsoft Visual C++ + +// NOTE: Do not modify the contents of this file. If this class is regenerated by +// Microsoft Visual C++, your modifications will be overwritten. + +///////////////////////////////////////////////////////////////////////////// +// CWMPMedia wrapper class + +class CWMPMedia : public COleDispatchDriver +{ +public: + CWMPMedia() {} // Calls COleDispatchDriver default constructor + CWMPMedia(LPDISPATCH pDispatch) : COleDispatchDriver(pDispatch) {} + CWMPMedia(const CWMPMedia& dispatchSrc) : COleDispatchDriver(dispatchSrc) {} + +// Attributes +public: + +// Operations +public: + BOOL GetIsIdentical(LPDISPATCH pIWMPMedia); + CString GetSourceURL(); + CString GetName(); + void SetName(LPCTSTR lpszNewValue); + long GetImageSourceWidth(); + long GetImageSourceHeight(); + long GetMarkerCount(); + double getMarkerTime(long MarkerNum); + CString getMarkerName(long MarkerNum); + double GetDuration(); + CString GetDurationString(); + long GetAttributeCount(); + CString getAttributeName(long lIndex); + CString getItemInfo(LPCTSTR bstrItemName); + void setItemInfo(LPCTSTR bstrItemName, LPCTSTR bstrVal); + CString getItemInfoByAtom(long lAtom); + BOOL isMemberOf(LPDISPATCH pPlaylist); + BOOL isReadOnlyItem(LPCTSTR bstrItemName); +}; + +//{{AFX_INSERT_LOCATION}} +// Microsoft Visual C++ will insert additional declarations immediately before the previous line. + +#endif // !defined(AFX_WMPMEDIA_H__7736565E_C037_498E_89F1_9696912C5998__INCLUDED_) diff --git a/plugins/wmpa/wmpmediacollection.cpp b/plugins/wmpa/wmpmediacollection.cpp new file mode 100644 index 00000000..d50da652 --- /dev/null +++ b/plugins/wmpa/wmpmediacollection.cpp @@ -0,0 +1,133 @@ +// Machine generated IDispatch wrapper class(es) created by Microsoft Visual C++ + +// NOTE: Do not modify the contents of this file. If this class is regenerated by +// Microsoft Visual C++, your modifications will be overwritten. + + +#include "stdafx.h" +#include "wmpmediacollection.h" + +// Dispatch interfaces referenced by this interface +#include "wmpmedia.h" +#include "wmpplaylist.h" +#include "wmpstringcollection.h" + + +///////////////////////////////////////////////////////////////////////////// +// CWMPMediaCollection properties + +///////////////////////////////////////////////////////////////////////////// +// CWMPMediaCollection operations + +CWMPMedia CWMPMediaCollection::add(LPCTSTR bstrURL) +{ + LPDISPATCH pDispatch; + static BYTE parms[] = + VTS_BSTR; + InvokeHelper(0x1c4, DISPATCH_METHOD, VT_DISPATCH, (void*)&pDispatch, parms, + bstrURL); + return CWMPMedia(pDispatch); +} + +CWMPPlaylist CWMPMediaCollection::getAll() +{ + LPDISPATCH pDispatch; + InvokeHelper(0x1c5, DISPATCH_METHOD, VT_DISPATCH, (void*)&pDispatch, NULL); + return CWMPPlaylist(pDispatch); +} + +CWMPPlaylist CWMPMediaCollection::getByName(LPCTSTR bstrName) +{ + LPDISPATCH pDispatch; + static BYTE parms[] = + VTS_BSTR; + InvokeHelper(0x1c6, DISPATCH_METHOD, VT_DISPATCH, (void*)&pDispatch, parms, + bstrName); + return CWMPPlaylist(pDispatch); +} + +CWMPPlaylist CWMPMediaCollection::getByGenre(LPCTSTR bstrGenre) +{ + LPDISPATCH pDispatch; + static BYTE parms[] = + VTS_BSTR; + InvokeHelper(0x1c7, DISPATCH_METHOD, VT_DISPATCH, (void*)&pDispatch, parms, + bstrGenre); + return CWMPPlaylist(pDispatch); +} + +CWMPPlaylist CWMPMediaCollection::getByAuthor(LPCTSTR bstrAuthor) +{ + LPDISPATCH pDispatch; + static BYTE parms[] = + VTS_BSTR; + InvokeHelper(0x1c8, DISPATCH_METHOD, VT_DISPATCH, (void*)&pDispatch, parms, + bstrAuthor); + return CWMPPlaylist(pDispatch); +} + +CWMPPlaylist CWMPMediaCollection::getByAlbum(LPCTSTR bstrAlbum) +{ + LPDISPATCH pDispatch; + static BYTE parms[] = + VTS_BSTR; + InvokeHelper(0x1c9, DISPATCH_METHOD, VT_DISPATCH, (void*)&pDispatch, parms, + bstrAlbum); + return CWMPPlaylist(pDispatch); +} + +CWMPPlaylist CWMPMediaCollection::getByAttribute(LPCTSTR bstrAttribute, LPCTSTR bstrValue) +{ + LPDISPATCH pDispatch; + static BYTE parms[] = + VTS_BSTR VTS_BSTR; + InvokeHelper(0x1ca, DISPATCH_METHOD, VT_DISPATCH, (void*)&pDispatch, parms, + bstrAttribute, bstrValue); + return CWMPPlaylist(pDispatch); +} + +void CWMPMediaCollection::remove(LPDISPATCH pItem, BOOL varfDeleteFile) +{ + static BYTE parms[] = + VTS_DISPATCH VTS_BOOL; + InvokeHelper(0x1cb, DISPATCH_METHOD, VT_EMPTY, NULL, parms, + pItem, varfDeleteFile); +} + +CWMPStringCollection CWMPMediaCollection::getAttributeStringCollection(LPCTSTR bstrAttribute, LPCTSTR bstrMediaType) +{ + LPDISPATCH pDispatch; + static BYTE parms[] = + VTS_BSTR VTS_BSTR; + InvokeHelper(0x1cd, DISPATCH_METHOD, VT_DISPATCH, (void*)&pDispatch, parms, + bstrAttribute, bstrMediaType); + return CWMPStringCollection(pDispatch); +} + +long CWMPMediaCollection::getMediaAtom(LPCTSTR bstrItemName) +{ + long result; + static BYTE parms[] = + VTS_BSTR; + InvokeHelper(0x1d6, DISPATCH_METHOD, VT_I4, (void*)&result, parms, + bstrItemName); + return result; +} + +void CWMPMediaCollection::setDeleted(LPDISPATCH pItem, BOOL varfIsDeleted) +{ + static BYTE parms[] = + VTS_DISPATCH VTS_BOOL; + InvokeHelper(0x1d7, DISPATCH_METHOD, VT_EMPTY, NULL, parms, + pItem, varfIsDeleted); +} + +BOOL CWMPMediaCollection::isDeleted(LPDISPATCH pItem) +{ + BOOL result; + static BYTE parms[] = + VTS_DISPATCH; + InvokeHelper(0x1d8, DISPATCH_METHOD, VT_BOOL, (void*)&result, parms, + pItem); + return result; +} diff --git a/plugins/wmpa/wmpmediacollection.h b/plugins/wmpa/wmpmediacollection.h new file mode 100644 index 00000000..aa91026a --- /dev/null +++ b/plugins/wmpa/wmpmediacollection.h @@ -0,0 +1,50 @@ +#if !defined(AFX_WMPMEDIACOLLECTION_H__8C47EB0E_4638_46DA_A405_415AEAE509CE__INCLUDED_) +#define AFX_WMPMEDIACOLLECTION_H__8C47EB0E_4638_46DA_A405_415AEAE509CE__INCLUDED_ + +#if _MSC_VER > 1000 +#pragma once +#endif // _MSC_VER > 1000 +// Machine generated IDispatch wrapper class(es) created by Microsoft Visual C++ + +// NOTE: Do not modify the contents of this file. If this class is regenerated by +// Microsoft Visual C++, your modifications will be overwritten. + + +// Dispatch interfaces referenced by this interface +class CWMPMedia; +class CWMPPlaylist; +class CWMPStringCollection; + +///////////////////////////////////////////////////////////////////////////// +// CWMPMediaCollection wrapper class + +class CWMPMediaCollection : public COleDispatchDriver +{ +public: + CWMPMediaCollection() {} // Calls COleDispatchDriver default constructor + CWMPMediaCollection(LPDISPATCH pDispatch) : COleDispatchDriver(pDispatch) {} + CWMPMediaCollection(const CWMPMediaCollection& dispatchSrc) : COleDispatchDriver(dispatchSrc) {} + +// Attributes +public: + +// Operations +public: + CWMPMedia add(LPCTSTR bstrURL); + CWMPPlaylist getAll(); + CWMPPlaylist getByName(LPCTSTR bstrName); + CWMPPlaylist getByGenre(LPCTSTR bstrGenre); + CWMPPlaylist getByAuthor(LPCTSTR bstrAuthor); + CWMPPlaylist getByAlbum(LPCTSTR bstrAlbum); + CWMPPlaylist getByAttribute(LPCTSTR bstrAttribute, LPCTSTR bstrValue); + void remove(LPDISPATCH pItem, BOOL varfDeleteFile); + CWMPStringCollection getAttributeStringCollection(LPCTSTR bstrAttribute, LPCTSTR bstrMediaType); + long getMediaAtom(LPCTSTR bstrItemName); + void setDeleted(LPDISPATCH pItem, BOOL varfIsDeleted); + BOOL isDeleted(LPDISPATCH pItem); +}; + +//{{AFX_INSERT_LOCATION}} +// Microsoft Visual C++ will insert additional declarations immediately before the previous line. + +#endif // !defined(AFX_WMPMEDIACOLLECTION_H__8C47EB0E_4638_46DA_A405_415AEAE509CE__INCLUDED_) diff --git a/plugins/wmpa/wmpnetwork.cpp b/plugins/wmpa/wmpnetwork.cpp new file mode 100644 index 00000000..87c4d413 --- /dev/null +++ b/plugins/wmpa/wmpnetwork.cpp @@ -0,0 +1,233 @@ +// Machine generated IDispatch wrapper class(es) created by Microsoft Visual C++ + +// NOTE: Do not modify the contents of this file. If this class is regenerated by +// Microsoft Visual C++, your modifications will be overwritten. + + +#include "stdafx.h" +#include "wmpnetwork.h" + + +///////////////////////////////////////////////////////////////////////////// +// CWMPNetwork properties + +///////////////////////////////////////////////////////////////////////////// +// CWMPNetwork operations + +long CWMPNetwork::GetBandWidth() +{ + long result; + InvokeHelper(0x321, DISPATCH_PROPERTYGET, VT_I4, (void*)&result, NULL); + return result; +} + +long CWMPNetwork::GetRecoveredPackets() +{ + long result; + InvokeHelper(0x322, DISPATCH_PROPERTYGET, VT_I4, (void*)&result, NULL); + return result; +} + +CString CWMPNetwork::GetSourceProtocol() +{ + CString result; + InvokeHelper(0x323, DISPATCH_PROPERTYGET, VT_BSTR, (void*)&result, NULL); + return result; +} + +long CWMPNetwork::GetReceivedPackets() +{ + long result; + InvokeHelper(0x324, DISPATCH_PROPERTYGET, VT_I4, (void*)&result, NULL); + return result; +} + +long CWMPNetwork::GetLostPackets() +{ + long result; + InvokeHelper(0x325, DISPATCH_PROPERTYGET, VT_I4, (void*)&result, NULL); + return result; +} + +long CWMPNetwork::GetReceptionQuality() +{ + long result; + InvokeHelper(0x326, DISPATCH_PROPERTYGET, VT_I4, (void*)&result, NULL); + return result; +} + +long CWMPNetwork::GetBufferingCount() +{ + long result; + InvokeHelper(0x327, DISPATCH_PROPERTYGET, VT_I4, (void*)&result, NULL); + return result; +} + +long CWMPNetwork::GetBufferingProgress() +{ + long result; + InvokeHelper(0x328, DISPATCH_PROPERTYGET, VT_I4, (void*)&result, NULL); + return result; +} + +long CWMPNetwork::GetBufferingTime() +{ + long result; + InvokeHelper(0x329, DISPATCH_PROPERTYGET, VT_I4, (void*)&result, NULL); + return result; +} + +void CWMPNetwork::SetBufferingTime(long nNewValue) +{ + static BYTE parms[] = + VTS_I4; + InvokeHelper(0x329, DISPATCH_PROPERTYPUT, VT_EMPTY, NULL, parms, + nNewValue); +} + +long CWMPNetwork::GetFrameRate() +{ + long result; + InvokeHelper(0x32a, DISPATCH_PROPERTYGET, VT_I4, (void*)&result, NULL); + return result; +} + +long CWMPNetwork::GetMaxBitRate() +{ + long result; + InvokeHelper(0x32b, DISPATCH_PROPERTYGET, VT_I4, (void*)&result, NULL); + return result; +} + +long CWMPNetwork::GetBitRate() +{ + long result; + InvokeHelper(0x32c, DISPATCH_PROPERTYGET, VT_I4, (void*)&result, NULL); + return result; +} + +long CWMPNetwork::getProxySettings(LPCTSTR bstrProtocol) +{ + long result; + static BYTE parms[] = + VTS_BSTR; + InvokeHelper(0x32d, DISPATCH_METHOD, VT_I4, (void*)&result, parms, + bstrProtocol); + return result; +} + +void CWMPNetwork::setProxySettings(LPCTSTR bstrProtocol, long lProxySetting) +{ + static BYTE parms[] = + VTS_BSTR VTS_I4; + InvokeHelper(0x32e, DISPATCH_METHOD, VT_EMPTY, NULL, parms, + bstrProtocol, lProxySetting); +} + +CString CWMPNetwork::getProxyName(LPCTSTR bstrProtocol) +{ + CString result; + static BYTE parms[] = + VTS_BSTR; + InvokeHelper(0x32f, DISPATCH_METHOD, VT_BSTR, (void*)&result, parms, + bstrProtocol); + return result; +} + +void CWMPNetwork::setProxyName(LPCTSTR bstrProtocol, LPCTSTR bstrProxyName) +{ + static BYTE parms[] = + VTS_BSTR VTS_BSTR; + InvokeHelper(0x330, DISPATCH_METHOD, VT_EMPTY, NULL, parms, + bstrProtocol, bstrProxyName); +} + +long CWMPNetwork::getProxyPort(LPCTSTR bstrProtocol) +{ + long result; + static BYTE parms[] = + VTS_BSTR; + InvokeHelper(0x331, DISPATCH_METHOD, VT_I4, (void*)&result, parms, + bstrProtocol); + return result; +} + +void CWMPNetwork::setProxyPort(LPCTSTR bstrProtocol, long lProxyPort) +{ + static BYTE parms[] = + VTS_BSTR VTS_I4; + InvokeHelper(0x332, DISPATCH_METHOD, VT_EMPTY, NULL, parms, + bstrProtocol, lProxyPort); +} + +CString CWMPNetwork::getProxyExceptionList(LPCTSTR bstrProtocol) +{ + CString result; + static BYTE parms[] = + VTS_BSTR; + InvokeHelper(0x333, DISPATCH_METHOD, VT_BSTR, (void*)&result, parms, + bstrProtocol); + return result; +} + +void CWMPNetwork::setProxyExceptionList(LPCTSTR bstrProtocol, LPCTSTR pbstrExceptionList) +{ + static BYTE parms[] = + VTS_BSTR VTS_BSTR; + InvokeHelper(0x334, DISPATCH_METHOD, VT_EMPTY, NULL, parms, + bstrProtocol, pbstrExceptionList); +} + +BOOL CWMPNetwork::getProxyBypassForLocal(LPCTSTR bstrProtocol) +{ + BOOL result; + static BYTE parms[] = + VTS_BSTR; + InvokeHelper(0x335, DISPATCH_METHOD, VT_BOOL, (void*)&result, parms, + bstrProtocol); + return result; +} + +void CWMPNetwork::setProxyBypassForLocal(LPCTSTR bstrProtocol, BOOL fBypassForLocal) +{ + static BYTE parms[] = + VTS_BSTR VTS_BOOL; + InvokeHelper(0x336, DISPATCH_METHOD, VT_EMPTY, NULL, parms, + bstrProtocol, fBypassForLocal); +} + +long CWMPNetwork::GetMaxBandwidth() +{ + long result; + InvokeHelper(0x337, DISPATCH_PROPERTYGET, VT_I4, (void*)&result, NULL); + return result; +} + +void CWMPNetwork::SetMaxBandwidth(long nNewValue) +{ + static BYTE parms[] = + VTS_I4; + InvokeHelper(0x337, DISPATCH_PROPERTYPUT, VT_EMPTY, NULL, parms, + nNewValue); +} + +long CWMPNetwork::GetDownloadProgress() +{ + long result; + InvokeHelper(0x338, DISPATCH_PROPERTYGET, VT_I4, (void*)&result, NULL); + return result; +} + +long CWMPNetwork::GetEncodedFrameRate() +{ + long result; + InvokeHelper(0x339, DISPATCH_PROPERTYGET, VT_I4, (void*)&result, NULL); + return result; +} + +long CWMPNetwork::GetFramesSkipped() +{ + long result; + InvokeHelper(0x33a, DISPATCH_PROPERTYGET, VT_I4, (void*)&result, NULL); + return result; +} diff --git a/plugins/wmpa/wmpnetwork.h b/plugins/wmpa/wmpnetwork.h new file mode 100644 index 00000000..1a0e0427 --- /dev/null +++ b/plugins/wmpa/wmpnetwork.h @@ -0,0 +1,60 @@ +#if !defined(AFX_WMPNETWORK_H__50BDAB41_9F78_492A_8A5E_27543B0C0CAF__INCLUDED_) +#define AFX_WMPNETWORK_H__50BDAB41_9F78_492A_8A5E_27543B0C0CAF__INCLUDED_ + +#if _MSC_VER > 1000 +#pragma once +#endif // _MSC_VER > 1000 +// Machine generated IDispatch wrapper class(es) created by Microsoft Visual C++ + +// NOTE: Do not modify the contents of this file. If this class is regenerated by +// Microsoft Visual C++, your modifications will be overwritten. + +///////////////////////////////////////////////////////////////////////////// +// CWMPNetwork wrapper class + +class CWMPNetwork : public COleDispatchDriver +{ +public: + CWMPNetwork() {} // Calls COleDispatchDriver default constructor + CWMPNetwork(LPDISPATCH pDispatch) : COleDispatchDriver(pDispatch) {} + CWMPNetwork(const CWMPNetwork& dispatchSrc) : COleDispatchDriver(dispatchSrc) {} + +// Attributes +public: + +// Operations +public: + long GetBandWidth(); + long GetRecoveredPackets(); + CString GetSourceProtocol(); + long GetReceivedPackets(); + long GetLostPackets(); + long GetReceptionQuality(); + long GetBufferingCount(); + long GetBufferingProgress(); + long GetBufferingTime(); + void SetBufferingTime(long nNewValue); + long GetFrameRate(); + long GetMaxBitRate(); + long GetBitRate(); + long getProxySettings(LPCTSTR bstrProtocol); + void setProxySettings(LPCTSTR bstrProtocol, long lProxySetting); + CString getProxyName(LPCTSTR bstrProtocol); + void setProxyName(LPCTSTR bstrProtocol, LPCTSTR bstrProxyName); + long getProxyPort(LPCTSTR bstrProtocol); + void setProxyPort(LPCTSTR bstrProtocol, long lProxyPort); + CString getProxyExceptionList(LPCTSTR bstrProtocol); + void setProxyExceptionList(LPCTSTR bstrProtocol, LPCTSTR pbstrExceptionList); + BOOL getProxyBypassForLocal(LPCTSTR bstrProtocol); + void setProxyBypassForLocal(LPCTSTR bstrProtocol, BOOL fBypassForLocal); + long GetMaxBandwidth(); + void SetMaxBandwidth(long nNewValue); + long GetDownloadProgress(); + long GetEncodedFrameRate(); + long GetFramesSkipped(); +}; + +//{{AFX_INSERT_LOCATION}} +// Microsoft Visual C++ will insert additional declarations immediately before the previous line. + +#endif // !defined(AFX_WMPNETWORK_H__50BDAB41_9F78_492A_8A5E_27543B0C0CAF__INCLUDED_) diff --git a/plugins/wmpa/wmpplayer4.cpp b/plugins/wmpa/wmpplayer4.cpp new file mode 100644 index 00000000..40050678 --- /dev/null +++ b/plugins/wmpa/wmpplayer4.cpp @@ -0,0 +1,321 @@ +// Machine generated IDispatch wrapper class(es) created by Microsoft Visual C++ + +// NOTE: Do not modify the contents of this file. If this class is regenerated by +// Microsoft Visual C++, your modifications will be overwritten. + + +#include "stdafx.h" +#include "wmpplayer4.h" + +// Dispatch interfaces referenced by this interface +#include "wmpcontrols.h" +#include "WMPSettings.h" +#include "wmpmedia.h" +#include "wmpmediacollection.h" +#include "wmpplaylistcollection.h" +#include "wmpnetwork.h" +#include "wmpplaylist.h" +#include "wmpcdromcollection.h" +#include "wmpclosedcaption.h" +#include "WMPError.h" +#include "wmpdvd.h" +#include "WMPPlayerApplication.h" + +///////////////////////////////////////////////////////////////////////////// +// CWMPPlayer4 + +IMPLEMENT_DYNCREATE(CWMPPlayer4, CWnd) + +///////////////////////////////////////////////////////////////////////////// +// CWMPPlayer4 properties + +///////////////////////////////////////////////////////////////////////////// +// CWMPPlayer4 operations + +void CWMPPlayer4::close() +{ + InvokeHelper(0x3, DISPATCH_METHOD, VT_EMPTY, NULL, NULL); +} + +CString CWMPPlayer4::GetUrl() +{ + CString result; + InvokeHelper(0x1, DISPATCH_PROPERTYGET, VT_BSTR, (void*)&result, NULL); + return result; +} + +void CWMPPlayer4::SetUrl(LPCTSTR lpszNewValue) +{ + static BYTE parms[] = + VTS_BSTR; + InvokeHelper(0x1, DISPATCH_PROPERTYPUT, VT_EMPTY, NULL, parms, + lpszNewValue); +} + +long CWMPPlayer4::GetOpenState() +{ + long result; + InvokeHelper(0x2, DISPATCH_PROPERTYGET, VT_I4, (void*)&result, NULL); + return result; +} + +long CWMPPlayer4::GetPlayState() +{ + long result; + InvokeHelper(0xa, DISPATCH_PROPERTYGET, VT_I4, (void*)&result, NULL); + return result; +} + +CWMPControls CWMPPlayer4::GetControls() +{ + LPDISPATCH pDispatch; + InvokeHelper(0x4, DISPATCH_PROPERTYGET, VT_DISPATCH, (void*)&pDispatch, NULL); + return CWMPControls(pDispatch); +} + +CWMPSettings CWMPPlayer4::GetSettings() +{ + LPDISPATCH pDispatch; + InvokeHelper(0x5, DISPATCH_PROPERTYGET, VT_DISPATCH, (void*)&pDispatch, NULL); + return CWMPSettings(pDispatch); +} + +CWMPMedia CWMPPlayer4::GetCurrentMedia() +{ + LPDISPATCH pDispatch; + InvokeHelper(0x6, DISPATCH_PROPERTYGET, VT_DISPATCH, (void*)&pDispatch, NULL); + return CWMPMedia(pDispatch); +} + +void CWMPPlayer4::SetCurrentMedia(LPDISPATCH newValue) +{ + static BYTE parms[] = + VTS_DISPATCH; + InvokeHelper(0x6, DISPATCH_PROPERTYPUT, VT_EMPTY, NULL, parms, + newValue); +} + +CWMPMediaCollection CWMPPlayer4::GetMediaCollection() +{ + LPDISPATCH pDispatch; + InvokeHelper(0x8, DISPATCH_PROPERTYGET, VT_DISPATCH, (void*)&pDispatch, NULL); + return CWMPMediaCollection(pDispatch); +} + +CWMPPlaylistCollection CWMPPlayer4::GetPlaylistCollection() +{ + LPDISPATCH pDispatch; + InvokeHelper(0x9, DISPATCH_PROPERTYGET, VT_DISPATCH, (void*)&pDispatch, NULL); + return CWMPPlaylistCollection(pDispatch); +} + +CString CWMPPlayer4::GetVersionInfo() +{ + CString result; + InvokeHelper(0xb, DISPATCH_PROPERTYGET, VT_BSTR, (void*)&result, NULL); + return result; +} + +void CWMPPlayer4::launchURL(LPCTSTR bstrURL) +{ + static BYTE parms[] = + VTS_BSTR; + InvokeHelper(0xc, DISPATCH_METHOD, VT_EMPTY, NULL, parms, + bstrURL); +} + +CWMPNetwork CWMPPlayer4::GetNetwork() +{ + LPDISPATCH pDispatch; + InvokeHelper(0x7, DISPATCH_PROPERTYGET, VT_DISPATCH, (void*)&pDispatch, NULL); + return CWMPNetwork(pDispatch); +} + +CWMPPlaylist CWMPPlayer4::GetCurrentPlaylist() +{ + LPDISPATCH pDispatch; + InvokeHelper(0xd, DISPATCH_PROPERTYGET, VT_DISPATCH, (void*)&pDispatch, NULL); + return CWMPPlaylist(pDispatch); +} + +void CWMPPlayer4::SetCurrentPlaylist(LPDISPATCH newValue) +{ + static BYTE parms[] = + VTS_DISPATCH; + InvokeHelper(0xd, DISPATCH_PROPERTYPUT, VT_EMPTY, NULL, parms, + newValue); +} + +CWMPCdromCollection CWMPPlayer4::GetCdromCollection() +{ + LPDISPATCH pDispatch; + InvokeHelper(0xe, DISPATCH_PROPERTYGET, VT_DISPATCH, (void*)&pDispatch, NULL); + return CWMPCdromCollection(pDispatch); +} + +CWMPClosedCaption CWMPPlayer4::GetClosedCaption() +{ + LPDISPATCH pDispatch; + InvokeHelper(0xf, DISPATCH_PROPERTYGET, VT_DISPATCH, (void*)&pDispatch, NULL); + return CWMPClosedCaption(pDispatch); +} + +BOOL CWMPPlayer4::GetIsOnline() +{ + BOOL result; + InvokeHelper(0x10, DISPATCH_PROPERTYGET, VT_BOOL, (void*)&result, NULL); + return result; +} + +CWMPError CWMPPlayer4::GetError() +{ + LPDISPATCH pDispatch; + InvokeHelper(0x11, DISPATCH_PROPERTYGET, VT_DISPATCH, (void*)&pDispatch, NULL); + return CWMPError(pDispatch); +} + +CString CWMPPlayer4::GetStatus() +{ + CString result; + InvokeHelper(0x12, DISPATCH_PROPERTYGET, VT_BSTR, (void*)&result, NULL); + return result; +} + +CWMPDVD CWMPPlayer4::GetDvd() +{ + LPDISPATCH pDispatch; + InvokeHelper(0x28, DISPATCH_PROPERTYGET, VT_DISPATCH, (void*)&pDispatch, NULL); + return CWMPDVD(pDispatch); +} + +CWMPPlaylist CWMPPlayer4::newPlaylist(LPCTSTR bstrName, LPCTSTR bstrURL) +{ + LPDISPATCH pDispatch; + static BYTE parms[] = + VTS_BSTR VTS_BSTR; + InvokeHelper(0x29, DISPATCH_METHOD, VT_DISPATCH, (void*)&pDispatch, parms, + bstrName, bstrURL); + return CWMPPlaylist(pDispatch); +} + +CWMPMedia CWMPPlayer4::newMedia(LPCTSTR bstrURL) +{ + LPDISPATCH pDispatch; + static BYTE parms[] = + VTS_BSTR; + InvokeHelper(0x2a, DISPATCH_METHOD, VT_DISPATCH, (void*)&pDispatch, parms, + bstrURL); + return CWMPMedia(pDispatch); +} + +BOOL CWMPPlayer4::GetEnabled() +{ + BOOL result; + InvokeHelper(0x13, DISPATCH_PROPERTYGET, VT_BOOL, (void*)&result, NULL); + return result; +} + +void CWMPPlayer4::SetEnabled(BOOL bNewValue) +{ + static BYTE parms[] = + VTS_BOOL; + InvokeHelper(0x13, DISPATCH_PROPERTYPUT, VT_EMPTY, NULL, parms, + bNewValue); +} + +BOOL CWMPPlayer4::GetFullScreen() +{ + BOOL result; + InvokeHelper(0x15, DISPATCH_PROPERTYGET, VT_BOOL, (void*)&result, NULL); + return result; +} + +void CWMPPlayer4::SetFullScreen(BOOL bNewValue) +{ + static BYTE parms[] = + VTS_BOOL; + InvokeHelper(0x15, DISPATCH_PROPERTYPUT, VT_EMPTY, NULL, parms, + bNewValue); +} + +BOOL CWMPPlayer4::GetEnableContextMenu() +{ + BOOL result; + InvokeHelper(0x16, DISPATCH_PROPERTYGET, VT_BOOL, (void*)&result, NULL); + return result; +} + +void CWMPPlayer4::SetEnableContextMenu(BOOL bNewValue) +{ + static BYTE parms[] = + VTS_BOOL; + InvokeHelper(0x16, DISPATCH_PROPERTYPUT, VT_EMPTY, NULL, parms, + bNewValue); +} + +void CWMPPlayer4::SetUiMode(LPCTSTR lpszNewValue) +{ + static BYTE parms[] = + VTS_BSTR; + InvokeHelper(0x17, DISPATCH_PROPERTYPUT, VT_EMPTY, NULL, parms, + lpszNewValue); +} + +CString CWMPPlayer4::GetUiMode() +{ + CString result; + InvokeHelper(0x17, DISPATCH_PROPERTYGET, VT_BSTR, (void*)&result, NULL); + return result; +} + +BOOL CWMPPlayer4::GetStretchToFit() +{ + BOOL result; + InvokeHelper(0x18, DISPATCH_PROPERTYGET, VT_BOOL, (void*)&result, NULL); + return result; +} + +void CWMPPlayer4::SetStretchToFit(BOOL bNewValue) +{ + static BYTE parms[] = + VTS_BOOL; + InvokeHelper(0x18, DISPATCH_PROPERTYPUT, VT_EMPTY, NULL, parms, + bNewValue); +} + +BOOL CWMPPlayer4::GetWindowlessVideo() +{ + BOOL result; + InvokeHelper(0x19, DISPATCH_PROPERTYGET, VT_BOOL, (void*)&result, NULL); + return result; +} + +void CWMPPlayer4::SetWindowlessVideo(BOOL bNewValue) +{ + static BYTE parms[] = + VTS_BOOL; + InvokeHelper(0x19, DISPATCH_PROPERTYPUT, VT_EMPTY, NULL, parms, + bNewValue); +} + +BOOL CWMPPlayer4::GetIsRemote() +{ + BOOL result; + InvokeHelper(0x1a, DISPATCH_PROPERTYGET, VT_BOOL, (void*)&result, NULL); + return result; +} + +CWMPPlayerApplication CWMPPlayer4::GetPlayerApplication() +{ + LPDISPATCH pDispatch; + InvokeHelper(0x1b, DISPATCH_PROPERTYGET, VT_DISPATCH, (void*)&pDispatch, NULL); + return CWMPPlayerApplication(pDispatch); +} + +void CWMPPlayer4::openPlayer(LPCTSTR bstrURL) +{ + static BYTE parms[] = + VTS_BSTR; + InvokeHelper(0x1c, DISPATCH_METHOD, VT_EMPTY, NULL, parms, + bstrURL); +} diff --git a/plugins/wmpa/wmpplayer4.h b/plugins/wmpa/wmpplayer4.h new file mode 100644 index 00000000..687d9361 --- /dev/null +++ b/plugins/wmpa/wmpplayer4.h @@ -0,0 +1,104 @@ +#if !defined(AFX_WMPPLAYER4_H__A318AE12_803B_4EED_B586_1395637CDD35__INCLUDED_) +#define AFX_WMPPLAYER4_H__A318AE12_803B_4EED_B586_1395637CDD35__INCLUDED_ + +#if _MSC_VER > 1000 +#pragma once +#endif // _MSC_VER > 1000 +// Machine generated IDispatch wrapper class(es) created by Microsoft Visual C++ + +// NOTE: Do not modify the contents of this file. If this class is regenerated by +// Microsoft Visual C++, your modifications will be overwritten. + + +// Dispatch interfaces referenced by this interface +class CWMPControls; +class CWMPSettings; +class CWMPMedia; +class CWMPMediaCollection; +class CWMPPlaylistCollection; +class CWMPNetwork; +class CWMPPlaylist; +class CWMPCdromCollection; +class CWMPClosedCaption; +class CWMPError; +class CWMPDVD; +class CWMPPlayerApplication; + +///////////////////////////////////////////////////////////////////////////// +// CWMPPlayer4 wrapper class + +class CWMPPlayer4 : public CWnd +{ +protected: + DECLARE_DYNCREATE(CWMPPlayer4) +public: + CLSID const& GetClsid() + { + static CLSID const clsid + = { 0x6bf52a52, 0x394a, 0x11d3, { 0xb1, 0x53, 0x0, 0xc0, 0x4f, 0x79, 0xfa, 0xa6 } }; + return clsid; + } + /*virtual BOOL Create(LPCTSTR lpszClassName, + LPCTSTR lpszWindowName, DWORD dwStyle, + const RECT& rect, + CWnd* pParentWnd, UINT nID, + CCreateContext* pContext = NULL) + { return CreateControl(GetClsid(), lpszWindowName, dwStyle, rect, pParentWnd, nID); }*/ + + BOOL Create(LPCTSTR lpszWindowName, DWORD dwStyle, + const RECT& rect, CWnd* pParentWnd, UINT nID, + CFile* pPersist = NULL, BOOL bStorage = FALSE, + BSTR bstrLicKey = NULL) + { return CreateControl(GetClsid(), lpszWindowName, dwStyle, rect, pParentWnd, nID, + pPersist, bStorage, bstrLicKey); } + +// Attributes +public: + +// Operations +public: + void close(); + CString GetUrl(); + void SetUrl(LPCTSTR lpszNewValue); + long GetOpenState(); + long GetPlayState(); + CWMPControls GetControls(); + CWMPSettings GetSettings(); + CWMPMedia GetCurrentMedia(); + void SetCurrentMedia(LPDISPATCH newValue); + CWMPMediaCollection GetMediaCollection(); + CWMPPlaylistCollection GetPlaylistCollection(); + CString GetVersionInfo(); + void launchURL(LPCTSTR bstrURL); + CWMPNetwork GetNetwork(); + CWMPPlaylist GetCurrentPlaylist(); + void SetCurrentPlaylist(LPDISPATCH newValue); + CWMPCdromCollection GetCdromCollection(); + CWMPClosedCaption GetClosedCaption(); + BOOL GetIsOnline(); + CWMPError GetError(); + CString GetStatus(); + CWMPDVD GetDvd(); + CWMPPlaylist newPlaylist(LPCTSTR bstrName, LPCTSTR bstrURL); + CWMPMedia newMedia(LPCTSTR bstrURL); + BOOL GetEnabled(); + void SetEnabled(BOOL bNewValue); + BOOL GetFullScreen(); + void SetFullScreen(BOOL bNewValue); + BOOL GetEnableContextMenu(); + void SetEnableContextMenu(BOOL bNewValue); + void SetUiMode(LPCTSTR lpszNewValue); + CString GetUiMode(); + BOOL GetStretchToFit(); + void SetStretchToFit(BOOL bNewValue); + BOOL GetWindowlessVideo(); + void SetWindowlessVideo(BOOL bNewValue); + BOOL GetIsRemote(); + CWMPPlayerApplication GetPlayerApplication(); + void openPlayer(LPCTSTR bstrURL); +}; + +//{{AFX_INSERT_LOCATION}} +// Microsoft Visual C++ will insert additional declarations immediately before the previous line. + +#endif // !defined(AFX_WMPPLAYER4_H__A318AE12_803B_4EED_B586_1395637CDD35__INCLUDED_) diff --git a/plugins/wmpa/wmpplayerapplication.cpp b/plugins/wmpa/wmpplayerapplication.cpp new file mode 100644 index 00000000..d47956a7 --- /dev/null +++ b/plugins/wmpa/wmpplayerapplication.cpp @@ -0,0 +1,39 @@ +// Machine generated IDispatch wrapper class(es) created by Microsoft Visual C++ + +// NOTE: Do not modify the contents of this file. If this class is regenerated by +// Microsoft Visual C++, your modifications will be overwritten. + + +#include "stdafx.h" +#include "wmpplayerapplication.h" + + +///////////////////////////////////////////////////////////////////////////// +// CWMPPlayerApplication properties + +///////////////////////////////////////////////////////////////////////////// +// CWMPPlayerApplication operations + +void CWMPPlayerApplication::switchToPlayerApplication() +{ + InvokeHelper(0x44d, DISPATCH_METHOD, VT_EMPTY, NULL, NULL); +} + +void CWMPPlayerApplication::switchToControl() +{ + InvokeHelper(0x44e, DISPATCH_METHOD, VT_EMPTY, NULL, NULL); +} + +BOOL CWMPPlayerApplication::GetPlayerDocked() +{ + BOOL result; + InvokeHelper(0x44f, DISPATCH_PROPERTYGET, VT_BOOL, (void*)&result, NULL); + return result; +} + +BOOL CWMPPlayerApplication::GetHasDisplay() +{ + BOOL result; + InvokeHelper(0x450, DISPATCH_PROPERTYGET, VT_BOOL, (void*)&result, NULL); + return result; +} diff --git a/plugins/wmpa/wmpplayerapplication.h b/plugins/wmpa/wmpplayerapplication.h new file mode 100644 index 00000000..96205aae --- /dev/null +++ b/plugins/wmpa/wmpplayerapplication.h @@ -0,0 +1,36 @@ +#if !defined(AFX_WMPPLAYERAPPLICATION_H__A69CB85C_22A1_4A02_979D_3FFB61135553__INCLUDED_) +#define AFX_WMPPLAYERAPPLICATION_H__A69CB85C_22A1_4A02_979D_3FFB61135553__INCLUDED_ + +#if _MSC_VER > 1000 +#pragma once +#endif // _MSC_VER > 1000 +// Machine generated IDispatch wrapper class(es) created by Microsoft Visual C++ + +// NOTE: Do not modify the contents of this file. If this class is regenerated by +// Microsoft Visual C++, your modifications will be overwritten. + +///////////////////////////////////////////////////////////////////////////// +// CWMPPlayerApplication wrapper class + +class CWMPPlayerApplication : public COleDispatchDriver +{ +public: + CWMPPlayerApplication() {} // Calls COleDispatchDriver default constructor + CWMPPlayerApplication(LPDISPATCH pDispatch) : COleDispatchDriver(pDispatch) {} + CWMPPlayerApplication(const CWMPPlayerApplication& dispatchSrc) : COleDispatchDriver(dispatchSrc) {} + +// Attributes +public: + +// Operations +public: + void switchToPlayerApplication(); + void switchToControl(); + BOOL GetPlayerDocked(); + BOOL GetHasDisplay(); +}; + +//{{AFX_INSERT_LOCATION}} +// Microsoft Visual C++ will insert additional declarations immediately before the previous line. + +#endif // !defined(AFX_WMPPLAYERAPPLICATION_H__A69CB85C_22A1_4A02_979D_3FFB61135553__INCLUDED_) diff --git a/plugins/wmpa/wmpplaylist.cpp b/plugins/wmpa/wmpplaylist.cpp new file mode 100644 index 00000000..9308aa5b --- /dev/null +++ b/plugins/wmpa/wmpplaylist.cpp @@ -0,0 +1,132 @@ +// Machine generated IDispatch wrapper class(es) created by Microsoft Visual C++ + +// NOTE: Do not modify the contents of this file. If this class is regenerated by +// Microsoft Visual C++, your modifications will be overwritten. + + +#include "stdafx.h" +#include "wmpplaylist.h" + +// Dispatch interfaces referenced by this interface +#include "WMPMedia.h" + + +///////////////////////////////////////////////////////////////////////////// +// CWMPPlaylist properties + +///////////////////////////////////////////////////////////////////////////// +// CWMPPlaylist operations + +long CWMPPlaylist::GetCount() +{ + long result; + InvokeHelper(0xc9, DISPATCH_PROPERTYGET, VT_I4, (void*)&result, NULL); + return result; +} + +CString CWMPPlaylist::GetName() +{ + CString result; + InvokeHelper(0xca, DISPATCH_PROPERTYGET, VT_BSTR, (void*)&result, NULL); + return result; +} + +void CWMPPlaylist::SetName(LPCTSTR lpszNewValue) +{ + static BYTE parms[] = + VTS_BSTR; + InvokeHelper(0xca, DISPATCH_PROPERTYPUT, VT_EMPTY, NULL, parms, + lpszNewValue); +} + +long CWMPPlaylist::GetAttributeCount() +{ + long result; + InvokeHelper(0xd2, DISPATCH_PROPERTYGET, VT_I4, (void*)&result, NULL); + return result; +} + +CString CWMPPlaylist::GetAttributeName(long lIndex) +{ + CString result; + static BYTE parms[] = + VTS_I4; + InvokeHelper(0xd3, DISPATCH_PROPERTYGET, VT_BSTR, (void*)&result, parms, + lIndex); + return result; +} + +CWMPMedia CWMPPlaylist::GetItem(long lIndex) +{ + LPDISPATCH pDispatch; + static BYTE parms[] = + VTS_I4; + InvokeHelper(0xd4, DISPATCH_PROPERTYGET, VT_DISPATCH, (void*)&pDispatch, parms, + lIndex); + return CWMPMedia(pDispatch); +} + +CString CWMPPlaylist::getItemInfo(LPCTSTR bstrName) +{ + CString result; + static BYTE parms[] = + VTS_BSTR; + InvokeHelper(0xcb, DISPATCH_METHOD, VT_BSTR, (void*)&result, parms, + bstrName); + return result; +} + +void CWMPPlaylist::setItemInfo(LPCTSTR bstrName, LPCTSTR bstrValue) +{ + static BYTE parms[] = + VTS_BSTR VTS_BSTR; + InvokeHelper(0xcc, DISPATCH_METHOD, VT_EMPTY, NULL, parms, + bstrName, bstrValue); +} + +BOOL CWMPPlaylist::GetIsIdentical(LPDISPATCH pIWMPPlaylist) +{ + BOOL result; + static BYTE parms[] = + VTS_DISPATCH; + InvokeHelper(0xd5, DISPATCH_PROPERTYGET, VT_BOOL, (void*)&result, parms, + pIWMPPlaylist); + return result; +} + +void CWMPPlaylist::clear() +{ + InvokeHelper(0xcd, DISPATCH_METHOD, VT_EMPTY, NULL, NULL); +} + +void CWMPPlaylist::insertItem(long lIndex, LPDISPATCH pIWMPMedia) +{ + static BYTE parms[] = + VTS_I4 VTS_DISPATCH; + InvokeHelper(0xce, DISPATCH_METHOD, VT_EMPTY, NULL, parms, + lIndex, pIWMPMedia); +} + +void CWMPPlaylist::appendItem(LPDISPATCH pIWMPMedia) +{ + static BYTE parms[] = + VTS_DISPATCH; + InvokeHelper(0xcf, DISPATCH_METHOD, VT_EMPTY, NULL, parms, + pIWMPMedia); +} + +void CWMPPlaylist::removeItem(LPDISPATCH pIWMPMedia) +{ + static BYTE parms[] = + VTS_DISPATCH; + InvokeHelper(0xd0, DISPATCH_METHOD, VT_EMPTY, NULL, parms, + pIWMPMedia); +} + +void CWMPPlaylist::moveItem(long lIndexOld, long lIndexNew) +{ + static BYTE parms[] = + VTS_I4 VTS_I4; + InvokeHelper(0xd1, DISPATCH_METHOD, VT_EMPTY, NULL, parms, + lIndexOld, lIndexNew); +} diff --git a/plugins/wmpa/wmpplaylist.h b/plugins/wmpa/wmpplaylist.h new file mode 100644 index 00000000..1d28ebd1 --- /dev/null +++ b/plugins/wmpa/wmpplaylist.h @@ -0,0 +1,50 @@ +#if !defined(AFX_WMPPLAYLIST_H__B739DAEE_6828_4128_8A0A_E6750502339C__INCLUDED_) +#define AFX_WMPPLAYLIST_H__B739DAEE_6828_4128_8A0A_E6750502339C__INCLUDED_ + +#if _MSC_VER > 1000 +#pragma once +#endif // _MSC_VER > 1000 +// Machine generated IDispatch wrapper class(es) created by Microsoft Visual C++ + +// NOTE: Do not modify the contents of this file. If this class is regenerated by +// Microsoft Visual C++, your modifications will be overwritten. + + +// Dispatch interfaces referenced by this interface +class CWMPMedia; + +///////////////////////////////////////////////////////////////////////////// +// CWMPPlaylist wrapper class + +class CWMPPlaylist : public COleDispatchDriver +{ +public: + CWMPPlaylist() {} // Calls COleDispatchDriver default constructor + CWMPPlaylist(LPDISPATCH pDispatch) : COleDispatchDriver(pDispatch) {} + CWMPPlaylist(const CWMPPlaylist& dispatchSrc) : COleDispatchDriver(dispatchSrc) {} + +// Attributes +public: + +// Operations +public: + long GetCount(); + CString GetName(); + void SetName(LPCTSTR lpszNewValue); + long GetAttributeCount(); + CString GetAttributeName(long lIndex); + CWMPMedia GetItem(long lIndex); + CString getItemInfo(LPCTSTR bstrName); + void setItemInfo(LPCTSTR bstrName, LPCTSTR bstrValue); + BOOL GetIsIdentical(LPDISPATCH pIWMPPlaylist); + void clear(); + void insertItem(long lIndex, LPDISPATCH pIWMPMedia); + void appendItem(LPDISPATCH pIWMPMedia); + void removeItem(LPDISPATCH pIWMPMedia); + void moveItem(long lIndexOld, long lIndexNew); +}; + +//{{AFX_INSERT_LOCATION}} +// Microsoft Visual C++ will insert additional declarations immediately before the previous line. + +#endif // !defined(AFX_WMPPLAYLIST_H__B739DAEE_6828_4128_8A0A_E6750502339C__INCLUDED_) diff --git a/plugins/wmpa/wmpplaylistarray.cpp b/plugins/wmpa/wmpplaylistarray.cpp new file mode 100644 index 00000000..8baf1a87 --- /dev/null +++ b/plugins/wmpa/wmpplaylistarray.cpp @@ -0,0 +1,35 @@ +// Machine generated IDispatch wrapper class(es) created by Microsoft Visual C++ + +// NOTE: Do not modify the contents of this file. If this class is regenerated by +// Microsoft Visual C++, your modifications will be overwritten. + + +#include "stdafx.h" +#include "wmpplaylistarray.h" + +// Dispatch interfaces referenced by this interface +#include "wmpplaylist.h" + + +///////////////////////////////////////////////////////////////////////////// +// CWMPPlaylistArray properties + +///////////////////////////////////////////////////////////////////////////// +// CWMPPlaylistArray operations + +long CWMPPlaylistArray::GetCount() +{ + long result; + InvokeHelper(0x1f5, DISPATCH_PROPERTYGET, VT_I4, (void*)&result, NULL); + return result; +} + +CWMPPlaylist CWMPPlaylistArray::Item(long lIndex) +{ + LPDISPATCH pDispatch; + static BYTE parms[] = + VTS_I4; + InvokeHelper(0x1f6, DISPATCH_METHOD, VT_DISPATCH, (void*)&pDispatch, parms, + lIndex); + return CWMPPlaylist(pDispatch); +} diff --git a/plugins/wmpa/wmpplaylistarray.h b/plugins/wmpa/wmpplaylistarray.h new file mode 100644 index 00000000..9299b42c --- /dev/null +++ b/plugins/wmpa/wmpplaylistarray.h @@ -0,0 +1,38 @@ +#if !defined(AFX_WMPPLAYLISTARRAY_H__6368C8A4_18CF_4937_993F_F7FBE512B851__INCLUDED_) +#define AFX_WMPPLAYLISTARRAY_H__6368C8A4_18CF_4937_993F_F7FBE512B851__INCLUDED_ + +#if _MSC_VER > 1000 +#pragma once +#endif // _MSC_VER > 1000 +// Machine generated IDispatch wrapper class(es) created by Microsoft Visual C++ + +// NOTE: Do not modify the contents of this file. If this class is regenerated by +// Microsoft Visual C++, your modifications will be overwritten. + + +// Dispatch interfaces referenced by this interface +class CWMPPlaylist; + +///////////////////////////////////////////////////////////////////////////// +// CWMPPlaylistArray wrapper class + +class CWMPPlaylistArray : public COleDispatchDriver +{ +public: + CWMPPlaylistArray() {} // Calls COleDispatchDriver default constructor + CWMPPlaylistArray(LPDISPATCH pDispatch) : COleDispatchDriver(pDispatch) {} + CWMPPlaylistArray(const CWMPPlaylistArray& dispatchSrc) : COleDispatchDriver(dispatchSrc) {} + +// Attributes +public: + +// Operations +public: + long GetCount(); + CWMPPlaylist Item(long lIndex); +}; + +//{{AFX_INSERT_LOCATION}} +// Microsoft Visual C++ will insert additional declarations immediately before the previous line. + +#endif // !defined(AFX_WMPPLAYLISTARRAY_H__6368C8A4_18CF_4937_993F_F7FBE512B851__INCLUDED_) diff --git a/plugins/wmpa/wmpplaylistcollection.cpp b/plugins/wmpa/wmpplaylistcollection.cpp new file mode 100644 index 00000000..f13c98de --- /dev/null +++ b/plugins/wmpa/wmpplaylistcollection.cpp @@ -0,0 +1,82 @@ +// Machine generated IDispatch wrapper class(es) created by Microsoft Visual C++ + +// NOTE: Do not modify the contents of this file. If this class is regenerated by +// Microsoft Visual C++, your modifications will be overwritten. + + +#include "stdafx.h" +#include "wmpplaylistcollection.h" + +// Dispatch interfaces referenced by this interface +#include "wmpplaylist.h" +#include "WMPPlaylistArray.h" + + +///////////////////////////////////////////////////////////////////////////// +// CWMPPlaylistCollection properties + +///////////////////////////////////////////////////////////////////////////// +// CWMPPlaylistCollection operations + +CWMPPlaylist CWMPPlaylistCollection::newPlaylist(LPCTSTR bstrName) +{ + LPDISPATCH pDispatch; + static BYTE parms[] = + VTS_BSTR; + InvokeHelper(0x228, DISPATCH_METHOD, VT_DISPATCH, (void*)&pDispatch, parms, + bstrName); + return CWMPPlaylist(pDispatch); +} + +CWMPPlaylistArray CWMPPlaylistCollection::getAll() +{ + LPDISPATCH pDispatch; + InvokeHelper(0x229, DISPATCH_METHOD, VT_DISPATCH, (void*)&pDispatch, NULL); + return CWMPPlaylistArray(pDispatch); +} + +CWMPPlaylistArray CWMPPlaylistCollection::getByName(LPCTSTR bstrName) +{ + LPDISPATCH pDispatch; + static BYTE parms[] = + VTS_BSTR; + InvokeHelper(0x22a, DISPATCH_METHOD, VT_DISPATCH, (void*)&pDispatch, parms, + bstrName); + return CWMPPlaylistArray(pDispatch); +} + +void CWMPPlaylistCollection::remove(LPDISPATCH pItem) +{ + static BYTE parms[] = + VTS_DISPATCH; + InvokeHelper(0x22c, DISPATCH_METHOD, VT_EMPTY, NULL, parms, + pItem); +} + +void CWMPPlaylistCollection::setDeleted(LPDISPATCH pItem, BOOL varfIsDeleted) +{ + static BYTE parms[] = + VTS_DISPATCH VTS_BOOL; + InvokeHelper(0x230, DISPATCH_METHOD, VT_EMPTY, NULL, parms, + pItem, varfIsDeleted); +} + +BOOL CWMPPlaylistCollection::isDeleted(LPDISPATCH pItem) +{ + BOOL result; + static BYTE parms[] = + VTS_DISPATCH; + InvokeHelper(0x231, DISPATCH_METHOD, VT_BOOL, (void*)&result, parms, + pItem); + return result; +} + +CWMPPlaylist CWMPPlaylistCollection::importPlaylist(LPDISPATCH pItem) +{ + LPDISPATCH pDispatch; + static BYTE parms[] = + VTS_DISPATCH; + InvokeHelper(0x232, DISPATCH_METHOD, VT_DISPATCH, (void*)&pDispatch, parms, + pItem); + return CWMPPlaylist(pDispatch); +} diff --git a/plugins/wmpa/wmpplaylistcollection.h b/plugins/wmpa/wmpplaylistcollection.h new file mode 100644 index 00000000..b18d95ce --- /dev/null +++ b/plugins/wmpa/wmpplaylistcollection.h @@ -0,0 +1,44 @@ +#if !defined(AFX_WMPPLAYLISTCOLLECTION_H__D07F4C6A_4574_4463_8A11_4A5654E38062__INCLUDED_) +#define AFX_WMPPLAYLISTCOLLECTION_H__D07F4C6A_4574_4463_8A11_4A5654E38062__INCLUDED_ + +#if _MSC_VER > 1000 +#pragma once +#endif // _MSC_VER > 1000 +// Machine generated IDispatch wrapper class(es) created by Microsoft Visual C++ + +// NOTE: Do not modify the contents of this file. If this class is regenerated by +// Microsoft Visual C++, your modifications will be overwritten. + + +// Dispatch interfaces referenced by this interface +class CWMPPlaylist; +class CWMPPlaylistArray; + +///////////////////////////////////////////////////////////////////////////// +// CWMPPlaylistCollection wrapper class + +class CWMPPlaylistCollection : public COleDispatchDriver +{ +public: + CWMPPlaylistCollection() {} // Calls COleDispatchDriver default constructor + CWMPPlaylistCollection(LPDISPATCH pDispatch) : COleDispatchDriver(pDispatch) {} + CWMPPlaylistCollection(const CWMPPlaylistCollection& dispatchSrc) : COleDispatchDriver(dispatchSrc) {} + +// Attributes +public: + +// Operations +public: + CWMPPlaylist newPlaylist(LPCTSTR bstrName); + CWMPPlaylistArray getAll(); + CWMPPlaylistArray getByName(LPCTSTR bstrName); + void remove(LPDISPATCH pItem); + void setDeleted(LPDISPATCH pItem, BOOL varfIsDeleted); + BOOL isDeleted(LPDISPATCH pItem); + CWMPPlaylist importPlaylist(LPDISPATCH pItem); +}; + +//{{AFX_INSERT_LOCATION}} +// Microsoft Visual C++ will insert additional declarations immediately before the previous line. + +#endif // !defined(AFX_WMPPLAYLISTCOLLECTION_H__D07F4C6A_4574_4463_8A11_4A5654E38062__INCLUDED_) diff --git a/plugins/wmpa/wmpsettings.cpp b/plugins/wmpa/wmpsettings.cpp new file mode 100644 index 00000000..662a336a --- /dev/null +++ b/plugins/wmpa/wmpsettings.cpp @@ -0,0 +1,193 @@ +// Machine generated IDispatch wrapper class(es) created by Microsoft Visual C++ + +// NOTE: Do not modify the contents of this file. If this class is regenerated by +// Microsoft Visual C++, your modifications will be overwritten. + + +#include "stdafx.h" +#include "wmpsettings.h" + + +///////////////////////////////////////////////////////////////////////////// +// CWMPSettings properties + +///////////////////////////////////////////////////////////////////////////// +// CWMPSettings operations + +BOOL CWMPSettings::GetIsAvailable(LPCTSTR bstrItem) +{ + BOOL result; + static BYTE parms[] = + VTS_BSTR; + InvokeHelper(0x71, DISPATCH_PROPERTYGET, VT_BOOL, (void*)&result, parms, + bstrItem); + return result; +} + +BOOL CWMPSettings::GetAutoStart() +{ + BOOL result; + InvokeHelper(0x65, DISPATCH_PROPERTYGET, VT_BOOL, (void*)&result, NULL); + return result; +} + +void CWMPSettings::SetAutoStart(BOOL bNewValue) +{ + static BYTE parms[] = + VTS_BOOL; + InvokeHelper(0x65, DISPATCH_PROPERTYPUT, VT_EMPTY, NULL, parms, + bNewValue); +} + +CString CWMPSettings::GetBaseURL() +{ + CString result; + InvokeHelper(0x6c, DISPATCH_PROPERTYGET, VT_BSTR, (void*)&result, NULL); + return result; +} + +void CWMPSettings::SetBaseURL(LPCTSTR lpszNewValue) +{ + static BYTE parms[] = + VTS_BSTR; + InvokeHelper(0x6c, DISPATCH_PROPERTYPUT, VT_EMPTY, NULL, parms, + lpszNewValue); +} + +CString CWMPSettings::GetDefaultFrame() +{ + CString result; + InvokeHelper(0x6d, DISPATCH_PROPERTYGET, VT_BSTR, (void*)&result, NULL); + return result; +} + +void CWMPSettings::SetDefaultFrame(LPCTSTR lpszNewValue) +{ + static BYTE parms[] = + VTS_BSTR; + InvokeHelper(0x6d, DISPATCH_PROPERTYPUT, VT_EMPTY, NULL, parms, + lpszNewValue); +} + +BOOL CWMPSettings::GetInvokeURLs() +{ + BOOL result; + InvokeHelper(0x67, DISPATCH_PROPERTYGET, VT_BOOL, (void*)&result, NULL); + return result; +} + +void CWMPSettings::SetInvokeURLs(BOOL bNewValue) +{ + static BYTE parms[] = + VTS_BOOL; + InvokeHelper(0x67, DISPATCH_PROPERTYPUT, VT_EMPTY, NULL, parms, + bNewValue); +} + +BOOL CWMPSettings::GetMute() +{ + BOOL result; + InvokeHelper(0x68, DISPATCH_PROPERTYGET, VT_BOOL, (void*)&result, NULL); + return result; +} + +void CWMPSettings::SetMute(BOOL bNewValue) +{ + static BYTE parms[] = + VTS_BOOL; + InvokeHelper(0x68, DISPATCH_PROPERTYPUT, VT_EMPTY, NULL, parms, + bNewValue); +} + +long CWMPSettings::GetPlayCount() +{ + long result; + InvokeHelper(0x69, DISPATCH_PROPERTYGET, VT_I4, (void*)&result, NULL); + return result; +} + +void CWMPSettings::SetPlayCount(long nNewValue) +{ + static BYTE parms[] = + VTS_I4; + InvokeHelper(0x69, DISPATCH_PROPERTYPUT, VT_EMPTY, NULL, parms, + nNewValue); +} + +double CWMPSettings::GetRate() +{ + double result; + InvokeHelper(0x6a, DISPATCH_PROPERTYGET, VT_R8, (void*)&result, NULL); + return result; +} + +void CWMPSettings::SetRate(double newValue) +{ + static BYTE parms[] = + VTS_R8; + InvokeHelper(0x6a, DISPATCH_PROPERTYPUT, VT_EMPTY, NULL, parms, + newValue); +} + +long CWMPSettings::GetBalance() +{ + long result; + InvokeHelper(0x66, DISPATCH_PROPERTYGET, VT_I4, (void*)&result, NULL); + return result; +} + +void CWMPSettings::SetBalance(long nNewValue) +{ + static BYTE parms[] = + VTS_I4; + InvokeHelper(0x66, DISPATCH_PROPERTYPUT, VT_EMPTY, NULL, parms, + nNewValue); +} + +long CWMPSettings::GetVolume() +{ + long result; + InvokeHelper(0x6b, DISPATCH_PROPERTYGET, VT_I4, (void*)&result, NULL); + return result; +} + +void CWMPSettings::SetVolume(long nNewValue) +{ + static BYTE parms[] = + VTS_I4; + InvokeHelper(0x6b, DISPATCH_PROPERTYPUT, VT_EMPTY, NULL, parms, + nNewValue); +} + +BOOL CWMPSettings::getMode(LPCTSTR bstrMode) +{ + BOOL result; + static BYTE parms[] = + VTS_BSTR; + InvokeHelper(0x6e, DISPATCH_METHOD, VT_BOOL, (void*)&result, parms, + bstrMode); + return result; +} + +void CWMPSettings::setMode(LPCTSTR bstrMode, BOOL varfMode) +{ + static BYTE parms[] = + VTS_BSTR VTS_BOOL; + InvokeHelper(0x6f, DISPATCH_METHOD, VT_EMPTY, NULL, parms, + bstrMode, varfMode); +} + +BOOL CWMPSettings::GetEnableErrorDialogs() +{ + BOOL result; + InvokeHelper(0x70, DISPATCH_PROPERTYGET, VT_BOOL, (void*)&result, NULL); + return result; +} + +void CWMPSettings::SetEnableErrorDialogs(BOOL bNewValue) +{ + static BYTE parms[] = + VTS_BOOL; + InvokeHelper(0x70, DISPATCH_PROPERTYPUT, VT_EMPTY, NULL, parms, + bNewValue); +} diff --git a/plugins/wmpa/wmpsettings.h b/plugins/wmpa/wmpsettings.h new file mode 100644 index 00000000..423f7e6d --- /dev/null +++ b/plugins/wmpa/wmpsettings.h @@ -0,0 +1,55 @@ +#if !defined(AFX_WMPSETTINGS_H__28D3DCCC_3E9A_48AE_97A9_3C1337309AF4__INCLUDED_) +#define AFX_WMPSETTINGS_H__28D3DCCC_3E9A_48AE_97A9_3C1337309AF4__INCLUDED_ + +#if _MSC_VER > 1000 +#pragma once +#endif // _MSC_VER > 1000 +// Machine generated IDispatch wrapper class(es) created by Microsoft Visual C++ + +// NOTE: Do not modify the contents of this file. If this class is regenerated by +// Microsoft Visual C++, your modifications will be overwritten. + +///////////////////////////////////////////////////////////////////////////// +// CWMPSettings wrapper class + +class CWMPSettings : public COleDispatchDriver +{ +public: + CWMPSettings() {} // Calls COleDispatchDriver default constructor + CWMPSettings(LPDISPATCH pDispatch) : COleDispatchDriver(pDispatch) {} + CWMPSettings(const CWMPSettings& dispatchSrc) : COleDispatchDriver(dispatchSrc) {} + +// Attributes +public: + +// Operations +public: + BOOL GetIsAvailable(LPCTSTR bstrItem); + BOOL GetAutoStart(); + void SetAutoStart(BOOL bNewValue); + CString GetBaseURL(); + void SetBaseURL(LPCTSTR lpszNewValue); + CString GetDefaultFrame(); + void SetDefaultFrame(LPCTSTR lpszNewValue); + BOOL GetInvokeURLs(); + void SetInvokeURLs(BOOL bNewValue); + BOOL GetMute(); + void SetMute(BOOL bNewValue); + long GetPlayCount(); + void SetPlayCount(long nNewValue); + double GetRate(); + void SetRate(double newValue); + long GetBalance(); + void SetBalance(long nNewValue); + long GetVolume(); + void SetVolume(long nNewValue); + BOOL getMode(LPCTSTR bstrMode); + void setMode(LPCTSTR bstrMode, BOOL varfMode); + BOOL GetEnableErrorDialogs(); + void SetEnableErrorDialogs(BOOL bNewValue); +}; + +//{{AFX_INSERT_LOCATION}} +// Microsoft Visual C++ will insert additional declarations immediately before the previous line. + +#endif // !defined(AFX_WMPSETTINGS_H__28D3DCCC_3E9A_48AE_97A9_3C1337309AF4__INCLUDED_) diff --git a/plugins/wmpa/wmpstringcollection.cpp b/plugins/wmpa/wmpstringcollection.cpp new file mode 100644 index 00000000..a36d4d9c --- /dev/null +++ b/plugins/wmpa/wmpstringcollection.cpp @@ -0,0 +1,32 @@ +// Machine generated IDispatch wrapper class(es) created by Microsoft Visual C++ + +// NOTE: Do not modify the contents of this file. If this class is regenerated by +// Microsoft Visual C++, your modifications will be overwritten. + + +#include "stdafx.h" +#include "wmpstringcollection.h" + + +///////////////////////////////////////////////////////////////////////////// +// CWMPStringCollection properties + +///////////////////////////////////////////////////////////////////////////// +// CWMPStringCollection operations + +long CWMPStringCollection::GetCount() +{ + long result; + InvokeHelper(0x191, DISPATCH_PROPERTYGET, VT_I4, (void*)&result, NULL); + return result; +} + +CString CWMPStringCollection::Item(long lIndex) +{ + CString result; + static BYTE parms[] = + VTS_I4; + InvokeHelper(0x192, DISPATCH_METHOD, VT_BSTR, (void*)&result, parms, + lIndex); + return result; +} diff --git a/plugins/wmpa/wmpstringcollection.h b/plugins/wmpa/wmpstringcollection.h new file mode 100644 index 00000000..bc03db89 --- /dev/null +++ b/plugins/wmpa/wmpstringcollection.h @@ -0,0 +1,34 @@ +#if !defined(AFX_WMPSTRINGCOLLECTION_H__782BAE9B_652B_476D_9448_808027B17262__INCLUDED_) +#define AFX_WMPSTRINGCOLLECTION_H__782BAE9B_652B_476D_9448_808027B17262__INCLUDED_ + +#if _MSC_VER > 1000 +#pragma once +#endif // _MSC_VER > 1000 +// Machine generated IDispatch wrapper class(es) created by Microsoft Visual C++ + +// NOTE: Do not modify the contents of this file. If this class is regenerated by +// Microsoft Visual C++, your modifications will be overwritten. + +///////////////////////////////////////////////////////////////////////////// +// CWMPStringCollection wrapper class + +class CWMPStringCollection : public COleDispatchDriver +{ +public: + CWMPStringCollection() {} // Calls COleDispatchDriver default constructor + CWMPStringCollection(LPDISPATCH pDispatch) : COleDispatchDriver(pDispatch) {} + CWMPStringCollection(const CWMPStringCollection& dispatchSrc) : COleDispatchDriver(dispatchSrc) {} + +// Attributes +public: + +// Operations +public: + long GetCount(); + CString Item(long lIndex); +}; + +//{{AFX_INSERT_LOCATION}} +// Microsoft Visual C++ will insert additional declarations immediately before the previous line. + +#endif // !defined(AFX_WMPSTRINGCOLLECTION_H__782BAE9B_652B_476D_9448_808027B17262__INCLUDED_) diff --git a/plugins/wmpa/xchat-plugin.cpp b/plugins/wmpa/xchat-plugin.cpp new file mode 100644 index 00000000..c5634064 --- /dev/null +++ b/plugins/wmpa/xchat-plugin.cpp @@ -0,0 +1,590 @@ +/****************************************************************** +* $Id$ +* +* $Log$ +* +* Copyright 2005 David Cullen, All rights reserved +* +******************************************************************/ +#include "stdafx.h" +#include "xchat-plugin.h" +#include <windows.h> +#include <tchar.h> +#include "wmpa.h" +#include "WMPADialog.h" + +#define XMMS_SESSION 0 + +/****************************************************************** +* Globalss +******************************************************************/ +xchat_plugin *ph = NULL; +CWMPPlayer4 *wmp; +static const char subKey[] = "Software\\FlowerSoft\\WMPA"; + +/****************************************************************** +* xchat_plugin_init +******************************************************************/ +int xchat_plugin_init(xchat_plugin *plugin_handle, + char **plugin_name, + char **plugin_desc, + char **plugin_version, + char *arg) +{ + BOOL success; + + ph = plugin_handle; + + *plugin_name = "WMPA"; + *plugin_desc = "Announce the current song from Windows Media Player."; + *plugin_version = VER_STRING; + + // Show the song browser + success = StartWindowsMediaPlayer(); + if (!success) { + xchat_printf(ph, "WMPA: Failed to show the song browser."); + xchat_printf(ph, "WMPA: Could not load plug-in version %s.", VER_STRING); + return(E_FAIL); + } + + // Get a pointer to the Windows Media Player control + wmp = GetWindowsMediaPlayer(); + if (wmp == NULL) { + xchat_printf(ph, "WMPA: Failed to get a pointer to the Windows Media Player interface."); + xchat_printf(ph, "WMPA: Could not load plug-in version %s.", VER_STRING); + return(E_POINTER); + } + + // Restore the settings (need wmp first) + success = wmpaRestoreSettings(); + if (!success) { + xchat_printf(ph, "WMPA: Failed to restore the settings."); + } + + xchat_hook_command(ph, "auto", XCHAT_PRI_NORM, wmpaAuto, 0, 0); + xchat_hook_command(ph, "curr", XCHAT_PRI_NORM, wmpaCurr, 0, 0); + xchat_hook_command(ph, "find", XCHAT_PRI_NORM, wmpaFind, 0, 0); + xchat_hook_command(ph, "slist", XCHAT_PRI_NORM, wmpaList, 0, 0); + xchat_hook_command(ph, "next", XCHAT_PRI_NORM, wmpaNext, 0, 0); + xchat_hook_command(ph, "play", XCHAT_PRI_NORM, wmpaPlay, 0, 0); + xchat_hook_command(ph, "pause", XCHAT_PRI_NORM, wmpaPause, 0, 0); + xchat_hook_command(ph, "prev", XCHAT_PRI_NORM, wmpaPrev, 0, 0); + xchat_hook_command(ph, "song", XCHAT_PRI_NORM, wmpaSong, 0, 0); + xchat_hook_command(ph, "stop", XCHAT_PRI_NORM, wmpaStop, 0, 0); + xchat_hook_command(ph, "volume", XCHAT_PRI_NORM, wmpaVolume, 0, 0); + xchat_hook_command(ph, "wmpahelp", XCHAT_PRI_NORM, wmpaHelp, 0, 0); + + xchat_printf(ph, "WMPA %s successfully loaded.", VER_STRING); + wmpaCommands(); + xchat_printf(ph, "WMPA: e-mail me if you find any bugs: dcullen@intergate.com"); + + return 1; +} + +/****************************************************************** +* xchat_plugin_deinit +******************************************************************/ +int xchat_plugin_deinit(void) +{ + BOOL success; + + xchat_printf(ph, "WMPA %s is unloading.", VER_STRING); + + // Save the settings + success = wmpaSaveSettings(); + if (!success) { + xchat_printf(ph, "WMPA: Failed to save the settings."); + } + + wmp = NULL; + + BOOL result = StopWindowsMediaPlayer(); + if (!result) { + xchat_printf(ph, "WMPA could not shut down Windows Media Player."); + } + + xchat_printf(ph, "WMPA %s has unloaded.", VER_STRING); + return 1; +} + +/****************************************************************** +* xchat_plugin_get_info +******************************************************************/ +void xchat_plugin_get_info(char **name, char **desc, char **version, void **reserved) +{ + *name = "WMPA"; + *desc = "Announce the current song from Windows Media Player."; + *version = VER_STRING; + if (reserved) *reserved = NULL; +} + +/****************************************************************** +* wmpaCommands +******************************************************************/ +void wmpaCommands(void) +{ + xchat_printf(ph, "WMPA: /auto [on/off] : Turn on/off auto announce of the current song or display the current setting"); + xchat_printf(ph, "WMPA: /curr : Tell what song is currently playing"); + xchat_printf(ph, "WMPA: /find [word] : Find songs with \"word\" in their title, create a new playlist, and play it"); + xchat_printf(ph, "WMPA: /slist [word] : List songs with \"word\" in their title"); + xchat_printf(ph, "WMPA: /next : Play the next song"); + xchat_printf(ph, "WMPA: /play : Play the current song"); + xchat_printf(ph, "WMPA: /pause : Pause the current song"); + xchat_printf(ph, "WMPA: /prev : Play the previous song"); + xchat_printf(ph, "WMPA: /song : Announce the current song from Windows Media Player in xchat"); + xchat_printf(ph, "WMPA: /stop : Stop the current song"); + xchat_printf(ph, "WMPA: /volume [volume] : Set the volume (0 to 100) or display the current volume"); + xchat_printf(ph, "WMPA: /wmpahelp : Display this help."); +} + +/****************************************************************** +* wmpaAuto +******************************************************************/ +int wmpaAuto(char *word[], char *word_eol[], void *user_data) +{ + CWMPADialog *pDialog; + char *state; + + pDialog = GetWMPADialog(); + if (pDialog == NULL) return(XCHAT_EAT_ALL); + + if (CString(word[2]).IsEmpty()) { + if (pDialog->autoAnnounce) { + state = "on"; + } + else { + state = "off"; + } + } + else { + state = word[2]; + if (CString(state) == "on") { + pDialog->autoAnnounce = TRUE; + } + if (CString(state) == "off") { + pDialog->autoAnnounce = FALSE; + } + wmpaSaveSettings(); + } + + xchat_printf(ph, "WMPA: auto is %s", state); + + return(XCHAT_EAT_ALL); +} + +/****************************************************************** +* wmpaCurr +******************************************************************/ +int wmpaCurr(char *word[], char *word_eol[], void *user_data) +{ + xchat_printf(ph, "WMPA: Playing %s", (LPCTSTR) wmpaGetSongTitle()); + + return(XCHAT_EAT_ALL); +} + +/****************************************************************** +* wmpaFind +******************************************************************/ +int wmpaFind(char *word[], char *word_eol[], void *user_data) +{ + long index; + long count; + long found; + + if (wmp != NULL) { + CWMPMediaCollection mc = wmp->GetMediaCollection(); + CWMPPlaylist all = mc.getAll(); + CWMPPlaylistCollection pc = wmp->GetPlaylistCollection(); + CWMPPlaylistArray pa = pc.getAll(); + CWMPPlaylist playlist; + CWMPMedia media; + + for (index = 0; index < pc.getAll().GetCount(); index++) { + if (pc.getAll().Item(index).GetName() == CString(word_eol[2])) { + playlist = pc.getAll().Item(index); + pc.remove(playlist); + } + } + + playlist = pc.newPlaylist(word_eol[2]); + + count = all.GetCount(); + found = 0; + for (index = 0; index < count; index++) { + media = all.GetItem(index); + CString artist = media.getItemInfo("Artist"); + CString title = media.getItemInfo("Title"); + CString album = media.getItemInfo("Album"); + if ( (artist.Find(word_eol[2]) != -1) || + (title.Find(word_eol[2]) != -1) || + (album.Find(word_eol[2]) != -1) ) { + playlist.appendItem(media); + found++; + } + } + + if (found > 0) { + xchat_printf(ph, "WMPA: Found %d songs with \"%s\" in them", found, word_eol[2]); + wmp->SetCurrentPlaylist(playlist); + wmp->GetControls().play(); + xchat_printf(ph, "WMPA: Playing %s", (LPCTSTR) wmpaGetSongTitle()); + + CWMPADialog *dialog = GetWMPADialog(); + if (dialog != NULL) { + dialog->UpdateSongList(); + dialog->SelectCurrentSong(); + dialog->UpdatePlayLists(); + } + + } + else { + xchat_printf(ph, "WMPA: Could not find %s", word_eol[2]); + } + + } + + return(XCHAT_EAT_ALL); +} + +/****************************************************************** +* wmpaList +******************************************************************/ +int wmpaList(char *word[], char *word_eol[], void *user_data) +{ + long index; + long count; + long found; + + if (wmp != NULL) { + xchat_printf(ph, "WMPA: Listing songs with \"%s\" in them", word_eol[2]); + + CWMPMediaCollection mc = wmp->GetMediaCollection(); + CWMPPlaylist all = mc.getAll(); + CWMPMedia media; + + count = all.GetCount(); + found = 0; + for (index = 0; index < count; index++) { + media = all.GetItem(index); + CString artist = media.getItemInfo("Artist"); + CString title = media.getItemInfo("Title"); + CString album = media.getItemInfo("Album"); + if ( (artist.Find(word_eol[2]) != -1) || + (title.Find(word_eol[2]) != -1) || + (album.Find(word_eol[2]) != -1) ) { + xchat_printf(ph, "WMPA: Found \"%s - %s (%s)\"", artist, title, album); + found++; + } + } + + if (found > 0) { + if (found == 1) + xchat_printf(ph, "WMPA: Found %d song with \"%s\" in it", found, word_eol[2]); + else + xchat_printf(ph, "WMPA: Found %d songs with \"%s\" in them", found, word_eol[2]); + } + else { + xchat_printf(ph, "WMPA: Could not find any songs with \"%s\" in them", word_eol[2]); + } + + } + + return(XCHAT_EAT_ALL); +} + +/****************************************************************** +* wmpaNext +******************************************************************/ +int wmpaNext(char *word[], char *word_eol[], void *user_data) +{ + if (wmp != NULL) { + wmp->GetControls().next(); + xchat_printf(ph, "WMPA: Playing %s", (LPCTSTR) wmpaGetSongTitle()); + } + return(XCHAT_EAT_ALL); +} + +/****************************************************************** +* wmpaPlay +******************************************************************/ +int wmpaPlay(char *word[], char *word_eol[], void *user_data) +{ + if (wmp != NULL) { + wmp->GetControls().play(); + xchat_printf(ph, "WMPA: Playing %s", (LPCTSTR) wmpaGetSongTitle()); + } + return(XCHAT_EAT_ALL); +} + +/****************************************************************** +* wmpaPause +******************************************************************/ +int wmpaPause(char *word[], char *word_eol[], void *user_data) +{ + if (wmp != NULL) { + wmp->GetControls().pause(); + xchat_printf(ph, "WMPA: Pausing %s", (LPCTSTR) wmpaGetSongTitle()); + } + return(XCHAT_EAT_ALL); +} + +/****************************************************************** +* wmpaPrev +******************************************************************/ +int wmpaPrev(char *word[], char *word_eol[], void *user_data) +{ + if (wmp != NULL) { + wmp->GetControls().previous(); + xchat_printf(ph, "WMPA: Playing %s", (LPCTSTR) wmpaGetSongTitle()); + } + return(XCHAT_EAT_ALL); +} + +/****************************************************************** +* wmpaSong +******************************************************************/ +int wmpaSong(char *word[], char *word_eol[], void *user_data) +{ + CString songTitle = wmpaGetSongTitle(); + + xchat_commandf(ph, "me is playing %s", (LPCTSTR) songTitle); + + return(XCHAT_EAT_ALL); +} + +/****************************************************************** +* wmpaStop +******************************************************************/ +int wmpaStop(char *word[], char *word_eol[], void *user_data) +{ + if (wmp != NULL) { + wmp->GetControls().stop(); + xchat_printf(ph, "WMPA: Stopping %s", (LPCTSTR) wmpaGetSongTitle()); + } + return(XCHAT_EAT_ALL); +} + +/****************************************************************** +* wmpaHelp +******************************************************************/ +int wmpaHelp(char *word[], char *word_eol[], void *user_data) +{ + xchat_printf(ph, "\n"); + xchat_printf(ph, "WMPA %s Help", VER_STRING); + wmpaCommands(); + xchat_printf(ph, "\n"); + + return(XCHAT_EAT_ALL); +} + +/****************************************************************** +* wmpaVolume +******************************************************************/ +int wmpaVolume(char *word[], char *word_eol[], void *user_data) +{ + char *endPtr; + long volume; + + if (CString(word[2]).IsEmpty()) { + volume = wmp->GetSettings().GetVolume(); + } + else { + volume = strtol(word[2], &endPtr, 10); + + if ((wmp != NULL) && (volume >= 0) && (volume <= 100)) { + wmp->GetSettings().SetVolume(volume); + wmpaSaveSettings(); + } + } + + xchat_printf(ph, "WMPA: volume is %d", volume); + + return(XCHAT_EAT_ALL); +} + +/****************************************************************** +* wmpaRestoreSettings +******************************************************************/ +BOOL wmpaRestoreSettings(void) +{ + CWMPADialog *pDialog; + DWORD type; + int volume; + BOOL autoAnnounce; + DWORD size; + BOOL result; + + if (wmp == NULL) return(FALSE); + + volume = 50; + result = GetSetting("Volume", &type, (LPBYTE) &volume, &size); + wmp->GetSettings().SetVolume(volume); + + autoAnnounce = FALSE; + pDialog = GetWMPADialog(); + if (pDialog != NULL) { + result = result && GetSetting("Auto", &type, (LPBYTE) &autoAnnounce, &size); + pDialog->autoAnnounce = autoAnnounce; + } + else { + result = FALSE; + } + + return(result); +} + +/****************************************************************** +* wmpaSaveSettings +******************************************************************/ +BOOL wmpaSaveSettings(void) +{ + CWMPADialog *pDialog; + int volume; + BOOL autoAnnounce; + BOOL result; + + if (wmp == NULL) return(FALSE); + + volume = wmp->GetSettings().GetVolume(); + result = SaveSetting("Volume", REG_DWORD, (CONST BYTE *) &volume, sizeof(volume)); + + pDialog = GetWMPADialog(); + if (pDialog != NULL) { + autoAnnounce = pDialog->autoAnnounce; + result = result && SaveSetting("Auto", REG_DWORD, (CONST BYTE *) &autoAnnounce, sizeof(autoAnnounce)); + } + else { + result = FALSE; + } + + return(result); +} + +/****************************************************************** +* wmpaGetSongTitle +******************************************************************/ +CString wmpaGetSongTitle(void) +{ + char buffer[32]; + + if (wmp == NULL) return(CString()); + + CWMPMedia media = wmp->GetCurrentMedia(); + if (media == NULL) { + xchat_printf(ph, "WMPA: Could not get current media"); + return(XCHAT_EAT_ALL); + } + + CString artist = media.getItemInfo("Artist"); + CString title = media.getItemInfo("Title"); + CString album = media.getItemInfo("Album"); + CString bitrate = media.getItemInfo("Bitrate"); + CString duration = media.GetDurationString(); + + long krate = strtoul((LPCTSTR) bitrate, NULL, 10) / 1000; + _ultoa(krate, buffer, 10); + bitrate = CString(buffer); + + // Creatte the song title + CString songTitle(""); + songTitle += artist; + if (songTitle.IsEmpty()) songTitle += "Various"; + songTitle += " - "; + songTitle += title; + songTitle += " ("; + songTitle += album; + songTitle += ") ["; + songTitle += duration; + songTitle += "/"; + songTitle += bitrate; + songTitle += "Kbps]"; + + return(songTitle); +} + +/****************************************************************** +* SaveSetting +******************************************************************/ +BOOL SaveSetting(LPCTSTR name, DWORD type, CONST BYTE *value, DWORD size) +{ + HKEY hKey; + DWORD disposition; + LONG result; + + if (wmp == NULL) return(FALSE); + if (name == NULL) return(FALSE); + + result = RegOpenKeyEx(HKEY_CURRENT_USER, + subKey, + 0, + KEY_WRITE, + &hKey); + + if (result != ERROR_SUCCESS) { + result = RegCreateKeyEx(HKEY_CURRENT_USER, + subKey, + 0, + NULL, + REG_OPTION_NON_VOLATILE, + KEY_WRITE, + NULL, + &hKey, + &disposition); + + if (result != ERROR_SUCCESS) return(FALSE); + } + + result = RegSetValueEx(hKey, + name, + 0, + type, + value, + size); + + if (result == ERROR_SUCCESS) { + RegCloseKey(hKey); + return(TRUE); + } + + RegCloseKey(hKey); + return(FALSE); +} + +/****************************************************************** +* GetSetting +******************************************************************/ +BOOL GetSetting(LPCTSTR name, DWORD *type, LPBYTE value, DWORD *size) +{ + HKEY hKey; + LONG result; + + if (wmp == NULL) return(FALSE); + if (type == NULL) return(FALSE); + if (value == NULL) return(FALSE); + if (size == NULL) return(FALSE); + + result = RegOpenKeyEx(HKEY_CURRENT_USER, + subKey, + 0, + KEY_READ, + &hKey); + + if (result != ERROR_SUCCESS) return(FALSE); + + result = RegQueryValueEx(hKey, + name, + 0, + type, + value, + size); + + RegCloseKey(hKey); + + if (result == ERROR_SUCCESS) { + return(TRUE); + } + + RegCloseKey(hKey); + return(FALSE); +} + diff --git a/plugins/wmpa/xchat-plugin.h b/plugins/wmpa/xchat-plugin.h new file mode 100644 index 00000000..ee189ffe --- /dev/null +++ b/plugins/wmpa/xchat-plugin.h @@ -0,0 +1,368 @@ +/* You can distribute this header with your plugins for easy compilation */ +#ifndef XCHAT_PLUGIN_H +#define XCHAT_PLUGIN_H + +#define VER_STRING _T("1.0.2 (BETA)") + +#include "stdafx.h" +#include <windows.h> +#include <time.h> +#include <tchar.h> + +#define XCHAT_IFACE_MAJOR 1 +#define XCHAT_IFACE_MINOR 9 +#define XCHAT_IFACE_MICRO 11 +#define XCHAT_IFACE_VERSION ((XCHAT_IFACE_MAJOR * 10000) + \ + (XCHAT_IFACE_MINOR * 100) + \ + (XCHAT_IFACE_MICRO)) + +#define XCHAT_PRI_HIGHEST 127 +#define XCHAT_PRI_HIGH 64 +#define XCHAT_PRI_NORM 0 +#define XCHAT_PRI_LOW (-64) +#define XCHAT_PRI_LOWEST (-128) + +#define XCHAT_FD_READ 1 +#define XCHAT_FD_WRITE 2 +#define XCHAT_FD_EXCEPTION 4 +#define XCHAT_FD_NOTSOCKET 8 + +#define XCHAT_EAT_NONE 0 /* pass it on through! */ +#define XCHAT_EAT_XCHAT 1 /* don't let xchat see this event */ +#define XCHAT_EAT_PLUGIN 2 /* don't let other plugins see this event */ +#define XCHAT_EAT_ALL (XCHAT_EAT_XCHAT|XCHAT_EAT_PLUGIN) /* don't let anything see this event */ + +#ifdef __cplusplus +extern "C" { +#endif + + + typedef struct _xchat_plugin xchat_plugin; + typedef struct _xchat_list xchat_list; + typedef struct _xchat_hook xchat_hook; +#ifndef PLUGIN_C + typedef struct _xchat_context xchat_context; +#endif + +#ifndef PLUGIN_C + struct _xchat_plugin { + /* these are only used on win32 */ + xchat_hook *(*xchat_hook_command) (xchat_plugin *ph, + const char *name, + int pri, + int (*callback) (char *word[], char *word_eol[], void *user_data), + const char *help_text, + void *userdata); + xchat_hook *(*xchat_hook_server) (xchat_plugin *ph, + const char *name, + int pri, + int (*callback) (char *word[], char *word_eol[], void *user_data), + void *userdata); + xchat_hook *(*xchat_hook_print) (xchat_plugin *ph, + const char *name, + int pri, + int (*callback) (char *word[], void *user_data), + void *userdata); + xchat_hook *(*xchat_hook_timer) (xchat_plugin *ph, + int timeout, + int (*callback) (void *user_data), + void *userdata); + xchat_hook *(*xchat_hook_fd) (xchat_plugin *ph, + int fd, + int flags, + int (*callback) (int fd, int flags, void *user_data), + void *userdata); + void *(*xchat_unhook) (xchat_plugin *ph, + xchat_hook *hook); + void (*xchat_print) (xchat_plugin *ph, + const char *text); + void (*xchat_printf) (xchat_plugin *ph, + const char *format, ...); + void (*xchat_command) (xchat_plugin *ph, + const char *command); + void (*xchat_commandf) (xchat_plugin *ph, + const char *format, ...); + int (*xchat_nickcmp) (xchat_plugin *ph, + const char *s1, + const char *s2); + int (*xchat_set_context) (xchat_plugin *ph, + xchat_context *ctx); + xchat_context *(*xchat_find_context) (xchat_plugin *ph, + const char *servname, + const char *channel); + xchat_context *(*xchat_get_context) (xchat_plugin *ph); + const char *(*xchat_get_info) (xchat_plugin *ph, + const char *id); + int (*xchat_get_prefs) (xchat_plugin *ph, + const char *name, + const char **string, + int *integer); + xchat_list * (*xchat_list_get) (xchat_plugin *ph, + const char *name); + void (*xchat_list_free) (xchat_plugin *ph, + xchat_list *xlist); + const char * const * (*xchat_list_fields) (xchat_plugin *ph, + const char *name); + int (*xchat_list_next) (xchat_plugin *ph, + xchat_list *xlist); + const char * (*xchat_list_str) (xchat_plugin *ph, + xchat_list *xlist, + const char *name); + int (*xchat_list_int) (xchat_plugin *ph, + xchat_list *xlist, + const char *name); + void * (*xchat_plugingui_add) (xchat_plugin *ph, + const char *filename, + const char *name, + const char *desc, + const char *version, + char *reserved); + void (*xchat_plugingui_remove) (xchat_plugin *ph, + void *handle); + int (*xchat_emit_print) (xchat_plugin *ph, + const char *event_name, ...); + int (*xchat_read_fd) (xchat_plugin *ph, + void *src, + char *buf, + int *len); + time_t (*xchat_list_time) (xchat_plugin *ph, + xchat_list *xlist, + const char *name); + char *(*xchat_gettext) (xchat_plugin *ph, + const char *msgid); + void (*xchat_send_modes) (xchat_plugin *ph, + const char **targets, + int ntargets, + int modes_per_line, + char sign, + char mode); + char *(*xchat_strip) (xchat_plugin *ph, + const char *str, + int len, + int flags); + void (*xchat_free) (xchat_plugin *ph, + void *ptr); + }; +#endif + + + xchat_hook * + xchat_hook_command (xchat_plugin *ph, + const char *name, + int pri, + int (*callback) (char *word[], char *word_eol[], void *user_data), + const char *help_text, + void *userdata); + + xchat_hook * + xchat_hook_server (xchat_plugin *ph, + const char *name, + int pri, + int (*callback) (char *word[], char *word_eol[], void *user_data), + void *userdata); + + xchat_hook * + xchat_hook_print (xchat_plugin *ph, + const char *name, + int pri, + int (*callback) (char *word[], void *user_data), + void *userdata); + + xchat_hook * + xchat_hook_timer (xchat_plugin *ph, + int timeout, + int (*callback) (void *user_data), + void *userdata); + + xchat_hook * + xchat_hook_fd (xchat_plugin *ph, + int fd, + int flags, + int (*callback) (int fd, int flags, void *user_data), + void *userdata); + + void * + xchat_unhook (xchat_plugin *ph, + xchat_hook *hook); + + void + xchat_print (xchat_plugin *ph, + const char *text); + + void + xchat_printf (xchat_plugin *ph, + const char *format, ...); + + void + xchat_command (xchat_plugin *ph, + const char *command); + + void + xchat_commandf (xchat_plugin *ph, + const char *format, ...); + + int + xchat_nickcmp (xchat_plugin *ph, + const char *s1, + const char *s2); + + int + xchat_set_context (xchat_plugin *ph, + xchat_context *ctx); + + xchat_context * + xchat_find_context (xchat_plugin *ph, + const char *servname, + const char *channel); + + xchat_context * + xchat_get_context (xchat_plugin *ph); + + const char * + xchat_get_info (xchat_plugin *ph, + const char *id); + + int + xchat_get_prefs (xchat_plugin *ph, + const char *name, + const char **string, + int *integer); + + xchat_list * + xchat_list_get (xchat_plugin *ph, + const char *name); + + void + xchat_list_free (xchat_plugin *ph, + xchat_list *xlist); + + const char * const * + xchat_list_fields (xchat_plugin *ph, + const char *name); + + int + xchat_list_next (xchat_plugin *ph, + xchat_list *xlist); + + const char * + xchat_list_str (xchat_plugin *ph, + xchat_list *xlist, + const char *name); + + int + xchat_list_int (xchat_plugin *ph, + xchat_list *xlist, + const char *name); + + time_t + xchat_list_time (xchat_plugin *ph, + xchat_list *xlist, + const char *name); + + void * + xchat_plugingui_add (xchat_plugin *ph, + const char *filename, + const char *name, + const char *desc, + const char *version, + char *reserved); + + void + xchat_plugingui_remove (xchat_plugin *ph, + void *handle); + + int + xchat_emit_print (xchat_plugin *ph, + const char *event_name, ...); + + char * + xchat_gettext (xchat_plugin *ph, + const char *msgid); + + void + xchat_send_modes (xchat_plugin *ph, + const char **targets, + int ntargets, + int modes_per_line, + char sign, + char mode); + + char * + xchat_strip (xchat_plugin *ph, + const char *str, + int len, + int flags); + + void + xchat_free (xchat_plugin *ph, + void *ptr); + +#if !defined(PLUGIN_C) && defined(WIN32) +#ifndef XCHAT_PLUGIN_HANDLE +#define XCHAT_PLUGIN_HANDLE (ph) +#endif +#define xchat_hook_command ((XCHAT_PLUGIN_HANDLE)->xchat_hook_command) +#define xchat_hook_server ((XCHAT_PLUGIN_HANDLE)->xchat_hook_server) +#define xchat_hook_print ((XCHAT_PLUGIN_HANDLE)->xchat_hook_print) +#define xchat_hook_timer ((XCHAT_PLUGIN_HANDLE)->xchat_hook_timer) +#define xchat_hook_fd ((XCHAT_PLUGIN_HANDLE)->xchat_hook_fd) +#define xchat_unhook ((XCHAT_PLUGIN_HANDLE)->xchat_unhook) +#define xchat_print ((XCHAT_PLUGIN_HANDLE)->xchat_print) +#define xchat_printf ((XCHAT_PLUGIN_HANDLE)->xchat_printf) +#define xchat_command ((XCHAT_PLUGIN_HANDLE)->xchat_command) +#define xchat_commandf ((XCHAT_PLUGIN_HANDLE)->xchat_commandf) +#define xchat_nickcmp ((XCHAT_PLUGIN_HANDLE)->xchat_nickcmp) +#define xchat_set_context ((XCHAT_PLUGIN_HANDLE)->xchat_set_context) +#define xchat_find_context ((XCHAT_PLUGIN_HANDLE)->xchat_find_context) +#define xchat_get_context ((XCHAT_PLUGIN_HANDLE)->xchat_get_context) +#define xchat_get_info ((XCHAT_PLUGIN_HANDLE)->xchat_get_info) +#define xchat_get_prefs ((XCHAT_PLUGIN_HANDLE)->xchat_get_prefs) +#define xchat_list_get ((XCHAT_PLUGIN_HANDLE)->xchat_list_get) +#define xchat_list_free ((XCHAT_PLUGIN_HANDLE)->xchat_list_free) +#define xchat_list_fields ((XCHAT_PLUGIN_HANDLE)->xchat_list_fields) +#define xchat_list_str ((XCHAT_PLUGIN_HANDLE)->xchat_list_str) +#define xchat_list_int ((XCHAT_PLUGIN_HANDLE)->xchat_list_int) +#define xchat_list_time ((XCHAT_PLUGIN_HANDLE)->xchat_list_time) +#define xchat_list_next ((XCHAT_PLUGIN_HANDLE)->xchat_list_next) +#define xchat_plugingui_add ((XCHAT_PLUGIN_HANDLE)->xchat_plugingui_add) +#define xchat_plugingui_remove ((XCHAT_PLUGIN_HANDLE)->xchat_plugingui_remove) +#define xchat_emit_print ((XCHAT_PLUGIN_HANDLE)->xchat_emit_print) +#define xchat_gettext ((XCHAT_PLUGIN_HANDLE)->xchat_gettext) +#define xchat_send_modes ((XCHAT_PLUGIN_HANDLE)->xchat_send_modes) +#define xchat_strip ((XCHAT_PLUGIN_HANDLE)->xchat_strip) +#define xchat_free ((XCHAT_PLUGIN_HANDLE)->xchat_free) +#endif + +#ifdef __cplusplus +} +#endif + +/****************************************************************** +* Globals +******************************************************************/ +extern xchat_plugin *ph; + +/****************************************************************** +* Prototypes +******************************************************************/ +void wmpaCommands(void); +int wmpaAuto(char *word[], char *word_eol[], void *user_data); +int wmpaCurr(char *word[], char *word_eol[], void *user_data); +int wmpaFind(char *word[], char *word_eol[], void *user_data); +int wmpaList(char *word[], char *word_eol[], void *user_data); +int wmpaNext(char *word[], char *word_eol[], void *user_data); +int wmpaPlay(char *word[], char *word_eol[], void *user_data); +int wmpaPause(char *word[], char *word_eol[], void *user_data); +int wmpaPrev(char *word[], char *word_eol[], void *user_data); +int wmpaSong(char *word[], char *word_eol[], void *user_data); +int wmpaStop(char *word[], char *word_eol[], void *user_data); +int wmpaVolume(char *word[], char *word_eol[], void *user_data); +int wmpaHelp(char *word[], char *word_eol[], void *user_data); +BOOL wmpaRestoreSettings(void); +BOOL wmpaSaveSettings(void); +CString wmpaGetSongTitle(void); +BOOL SaveSetting(LPCTSTR name, DWORD type, CONST BYTE *value, DWORD size); +BOOL GetSetting(LPCTSTR name, DWORD *type, LPBYTE value, DWORD *size); + +#endif /* XCHAT_PLUGIN_H */ + diff --git a/plugins/xchat-plugin.h b/plugins/xchat-plugin.h index 30b19295..1b7da8fb 100644 --- a/plugins/xchat-plugin.h +++ b/plugins/xchat-plugin.h @@ -137,6 +137,21 @@ struct _xchat_plugin int flags); void (*xchat_free) (xchat_plugin *ph, void *ptr); + int (*xchat_pluginpref_set_str) (xchat_plugin *ph, + const char *var, + const char *value); + int (*xchat_pluginpref_get_str) (xchat_plugin *ph, + const char *var, + char *dest); + int (*xchat_pluginpref_set_int) (xchat_plugin *ph, + const char *var, + int value); + int (*xchat_pluginpref_get_int) (xchat_plugin *ph, + const char *var); + int (*xchat_pluginpref_delete) (xchat_plugin *ph, + const char *var); + int (*xchat_pluginpref_list) (xchat_plugin *ph, + char *dest); }; #endif @@ -292,6 +307,32 @@ void xchat_free (xchat_plugin *ph, void *ptr); +int +xchat_pluginpref_set_str (xchat_plugin *ph, + const char *var, + const char *value); + +int +xchat_pluginpref_get_str (xchat_plugin *ph, + const char *var, + char *dest); + +int +xchat_pluginpref_set_int (xchat_plugin *ph, + const char *var, + int value); +int +xchat_pluginpref_get_int (xchat_plugin *ph, + const char *var); + +int +xchat_pluginpref_delete (xchat_plugin *ph, + const char *var); + +int +xchat_pluginpref_list (xchat_plugin *ph, + char *dest); + #if !defined(PLUGIN_C) && defined(WIN32) #ifndef XCHAT_PLUGIN_HANDLE #define XCHAT_PLUGIN_HANDLE (ph) @@ -326,6 +367,12 @@ xchat_free (xchat_plugin *ph, #define xchat_send_modes ((XCHAT_PLUGIN_HANDLE)->xchat_send_modes) #define xchat_strip ((XCHAT_PLUGIN_HANDLE)->xchat_strip) #define xchat_free ((XCHAT_PLUGIN_HANDLE)->xchat_free) +#define xchat_pluginpref_set_str ((XCHAT_PLUGIN_HANDLE)->xchat_pluginpref_set_str) +#define xchat_pluginpref_get_str ((XCHAT_PLUGIN_HANDLE)->xchat_pluginpref_get_str) +#define xchat_pluginpref_set_int ((XCHAT_PLUGIN_HANDLE)->xchat_pluginpref_set_int) +#define xchat_pluginpref_get_int ((XCHAT_PLUGIN_HANDLE)->xchat_pluginpref_get_int) +#define xchat_pluginpref_delete ((XCHAT_PLUGIN_HANDLE)->xchat_pluginpref_delete) +#define xchat_pluginpref_list ((XCHAT_PLUGIN_HANDLE)->xchat_pluginpref_list) #endif #ifdef __cplusplus diff --git a/plugins/xdcc/makefile.mak b/plugins/xdcc/makefile.mak new file mode 100644 index 00000000..0a12347e --- /dev/null +++ b/plugins/xdcc/makefile.mak @@ -0,0 +1,18 @@ +include "..\..\src\makeinc.mak" + +all: xdcc.obj xdcc.def + link $(LDFLAGS) $(LIBS) /dll /out:xcxdcc.dll /def:xdcc.def xdcc.obj + +xdcc.def: + echo EXPORTS > xdcc.def + echo xchat_plugin_init >> xdcc.def + echo xchat_plugin_deinit >> xdcc.def + +xdcc.obj: xdcc.c makefile.mak + cl $(CFLAGS) $(GLIB) /I.. xdcc.c + +clean: + del *.obj + del *.dll + del *.exp + del *.lib diff --git a/plugins/xdcc/xdcc.c b/plugins/xdcc/xdcc.c index 147a3c33..060dbbe3 100644 --- a/plugins/xdcc/xdcc.c +++ b/plugins/xdcc/xdcc.c @@ -2,11 +2,15 @@ #include <glib.h> #include <string.h> -#include <unistd.h> #include <stdlib.h> #include <stdio.h> +#ifndef WIN32 +#include <unistd.h> +#endif + #include "xchat-plugin.h" +#include "../../src/common/xchat.h" static xchat_plugin *ph; /* plugin handle */ diff --git a/plugins/xsasl/makefile.mak b/plugins/xsasl/makefile.mak new file mode 100644 index 00000000..e1ffd0ec --- /dev/null +++ b/plugins/xsasl/makefile.mak @@ -0,0 +1,18 @@ +include "..\..\src\makeinc.mak" + +all: xsasl.obj xsasl.def + link $(LDFLAGS) $(LIBS) /dll /out:xcxsasl.dll /def:xsasl.def xsasl.obj + +xsasl.def: + echo EXPORTS > xsasl.def + echo xchat_plugin_init >> xsasl.def + echo xchat_plugin_deinit >> xsasl.def + +xsasl.obj: xsasl.c makefile.mak + cl $(CFLAGS) $(GLIB) /I.. xsasl.c + +clean: + del *.obj + del *.dll + del *.exp + del *.lib diff --git a/plugins/xsasl/xsasl.c b/plugins/xsasl/xsasl.c new file mode 100644 index 00000000..8abce20b --- /dev/null +++ b/plugins/xsasl/xsasl.c @@ -0,0 +1,314 @@ +/* XChat-WDK + * Copyright (c) 2010 <ygrek@autistici.org> + * Copyright (c) 2012 Berke Viktor. + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ + +/* + * SASL authentication plugin for XChat + * Extremely primitive: only PLAIN, no error checking + * + * http://ygrek.org.ua/p/cap_sasl.html + * + * Docs: + * http://hg.atheme.org/charybdis/charybdis/file/6144f52a119b/doc/sasl.txt + * http://tools.ietf.org/html/rfc4422 + */ + +#include <string.h> +#include <stdlib.h> +#include <assert.h> +#include <glib/gbase64.h> + +#include "xchat-plugin.h" + +static xchat_plugin *ph; /* plugin handle */ +static const char name[] = "X-SASL"; +static const char desc[] = "SASL authentication plugin for XChat"; +static const char version[] = "1.1"; +static const char xsasl_help[] = "X-SASL Usage:\n /XSASL ADD <login> <password> <network>, enable/update SASL authentication for given network\n /XSASL DEL <network>, disable SASL authentication for given network\n /XSASL LIST, get the list of SASL-enabled networks\n"; + +struct sasl_info +{ + char const* login; + char const* password; + char const* network; +}; + +typedef struct sasl_info sasl_info; + +static int +add_info (char const* login, char const* password, char const* network) +{ + char buffer[512]; + + sprintf (buffer, "%s:%s", login, password); + return xchat_pluginpref_set_str (ph, network, buffer); +} + +static int +del_info (char const* network) +{ + return xchat_pluginpref_delete (ph, network); +} + +static void +print_info () +{ + char list[512]; + char* token; + + if (xchat_pluginpref_list (ph, list)) + { + xchat_printf (ph, "%s\tSASL-enabled networks:", name); + xchat_printf (ph, "%s\t----------------------", name); + token = strtok (list, ","); + while (token != NULL) + { + xchat_printf (ph, "%s\t%s", name, token); + token = strtok (NULL, ","); + } + } + else + { + xchat_printf (ph, "%s\tThere are no SASL-enabled networks currently", name); + } +} + +static sasl_info* +find_info (char const* network) +{ + char buffer[512]; + char* token; + sasl_info* cur = (sasl_info*) malloc (sizeof (sasl_info)); + + if (xchat_pluginpref_get_str (ph, network, buffer)) + { + token = strtok (buffer, ":"); + cur->login = g_strdup (token); + token = strtok (NULL, ":"); + cur->password = g_strdup (token); + cur->network = g_strdup (network); + + return cur; + } + + return NULL; +} + +static sasl_info* +get_info (void) +{ + const char* name; + name = xchat_get_info (ph, "network"); + + if (name) + { + return find_info (name); + } + else + { + return NULL; + } +} + +static int +authend_cb (char *word[], char *word_eol[], void *userdata) +{ + if (get_info ()) + { + /* omit cryptic server message parts */ + xchat_printf (ph, "%s\t%s\n", name, ++word_eol[4]); + xchat_commandf (ph, "QUOTE CAP END"); + } + + return XCHAT_EAT_ALL; +} + +/* +static int +disconnect_cb (char *word[], void *userdata) +{ + xchat_printf (ph, "disconnected\n"); + return XCHAT_EAT_NONE; +} +*/ + +static int +server_cb (char *word[], char *word_eol[], void *userdata) +{ + size_t len; + char* buf; + char* enc; + sasl_info* p; + + if (strcmp ("AUTHENTICATE", word[1]) == 0 && strcmp ("+", word[2]) == 0) + { + p = get_info (); + + if (!p) + { + return XCHAT_EAT_NONE; + } + + xchat_printf (ph, "%s\tAuthenticating as %s\n", name, p->login); + + len = strlen (p->login) * 2 + 2 + strlen (p->password); + buf = (char*) malloc (len + 1); + strcpy (buf, p->login); + strcpy (buf + strlen (p->login) + 1, p->login); + strcpy (buf + strlen (p->login) * 2 + 2, p->password); + enc = g_base64_encode ((unsigned char*) buf, len); + + /* xchat_printf (ph, "AUTHENTICATE %s\}", enc); */ + xchat_commandf (ph, "QUOTE AUTHENTICATE %s", enc); + + free (enc); + free (buf); + + return XCHAT_EAT_ALL; + } + + return XCHAT_EAT_NONE; +} + +static int +cap_cb (char *word[], char *word_eol[], void *userdata) +{ + if (get_info ()) + { + /* FIXME test sasl cap */ + /* this is visible in the rawlog in case someone needs it, otherwise it's just noise */ + /* xchat_printf (ph, "%s\t%s\n", name, word_eol[1]); */ + xchat_commandf (ph, "QUOTE AUTHENTICATE PLAIN"); + } + + return XCHAT_EAT_ALL; +} + +static int +sasl_cmd_cb (char *word[], char *word_eol[], void *userdata) +{ + const char* login; + const char* password; + const char* network; + const char* mode = word[2]; + + if (!stricmp ("ADD", mode)) + { + login = word[3]; + password = word[4]; + network = word_eol[5]; + + if (!network || !*network) /* only check for the last word, if it's there, the previous ones will be there, too */ + { + xchat_printf (ph, "%s", xsasl_help); + return XCHAT_EAT_ALL; + } + + if (add_info (login, password, network)) + { + xchat_printf (ph, "%s\tEnabled SASL authentication for the \"%s\" network\n", name, network); + } + else + { + xchat_printf (ph, "%s\tFailed to enable SASL authentication for the \"%s\" network\n", name, network); + } + + return XCHAT_EAT_ALL; + } + else if (!stricmp ("DEL", mode)) + { + network = word_eol[3]; + + if (!network || !*network) + { + xchat_printf (ph, "%s", xsasl_help); + return XCHAT_EAT_ALL; + } + + if (del_info (network)) + { + xchat_printf (ph, "%s\tDisabled SASL authentication for the \"%s\" network\n", name, network); + } + else + { + xchat_printf (ph, "%s\tFailed to disable SASL authentication for the \"%s\" network\n", name, network); + } + + return XCHAT_EAT_ALL; + } + else if (!stricmp ("LIST", mode)) + { + print_info (); + return XCHAT_EAT_ALL; + } + else + { + xchat_printf (ph, "%s", xsasl_help); + return XCHAT_EAT_ALL; + } +} + +static int +connect_cb (char *word[], void *userdata) +{ + if (get_info ()) + { + xchat_printf (ph, "%s\tSASL enabled\n", name); + xchat_commandf (ph, "QUOTE CAP REQ :sasl"); + } + + return XCHAT_EAT_NONE; +} + +int +xchat_plugin_init (xchat_plugin *plugin_handle, char **plugin_name, char **plugin_desc, char **plugin_version, char *arg) +{ + /* we need to save this for use with any xchat_* functions */ + ph = plugin_handle; + + /* tell xchat our info */ + *plugin_name = name; + *plugin_desc = desc; + *plugin_version = version; + + xchat_hook_command (ph, "XSASL", XCHAT_PRI_NORM, sasl_cmd_cb, xsasl_help, 0); + xchat_hook_print (ph, "Connected", XCHAT_PRI_NORM, connect_cb, NULL); + /* xchat_hook_print (ph, "Disconnected", XCHAT_PRI_NORM, disconnect_cb, NULL); */ + xchat_hook_server (ph, "CAP", XCHAT_PRI_NORM, cap_cb, NULL); + xchat_hook_server (ph, "RAW LINE", XCHAT_PRI_NORM, server_cb, NULL); + xchat_hook_server (ph, "903", XCHAT_PRI_NORM, authend_cb, NULL); + xchat_hook_server (ph, "904", XCHAT_PRI_NORM, authend_cb, NULL); + xchat_hook_server (ph, "905", XCHAT_PRI_NORM, authend_cb, NULL); + xchat_hook_server (ph, "906", XCHAT_PRI_NORM, authend_cb, NULL); + xchat_hook_server (ph, "907", XCHAT_PRI_NORM, authend_cb, NULL); + + xchat_printf (ph, "%s plugin loaded\n", name); + + return 1; +} + +int +xchat_plugin_deinit (void) +{ + xchat_printf (ph, "%s plugin unloaded\n", name); + return 1; +} diff --git a/plugins/xsasl/xsasl.def b/plugins/xsasl/xsasl.def new file mode 100644 index 00000000..77670bf2 --- /dev/null +++ b/plugins/xsasl/xsasl.def @@ -0,0 +1,3 @@ +EXPORTS +xchat_plugin_init +xchat_plugin_deinit diff --git a/plugins/xsasl/xsasl.vcxproj b/plugins/xsasl/xsasl.vcxproj new file mode 100644 index 00000000..bec3da94 --- /dev/null +++ b/plugins/xsasl/xsasl.vcxproj @@ -0,0 +1,110 @@ +<?xml version="1.0" encoding="utf-8"?> +<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <ItemGroup Label="ProjectConfigurations"> + <ProjectConfiguration Include="Release|Win32"> + <Configuration>Release</Configuration> + <Platform>Win32</Platform> + </ProjectConfiguration> + <ProjectConfiguration Include="Release|x64"> + <Configuration>Release</Configuration> + <Platform>x64</Platform> + </ProjectConfiguration> + </ItemGroup> + <PropertyGroup Label="Globals"> + <ProjectGuid>{18871EBA-AC85-4652-8919-EB8064B9A714}</ProjectGuid> + <Keyword>Win32Proj</Keyword> + <RootNamespace>xsasl</RootNamespace> + </PropertyGroup> + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" /> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration"> + <ConfigurationType>DynamicLibrary</ConfigurationType> + <UseDebugLibraries>false</UseDebugLibraries> + <WholeProgramOptimization>true</WholeProgramOptimization> + <CharacterSet>MultiByte</CharacterSet> + <PlatformToolset>WDK7</PlatformToolset> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration"> + <ConfigurationType>DynamicLibrary</ConfigurationType> + <UseDebugLibraries>false</UseDebugLibraries> + <WholeProgramOptimization>true</WholeProgramOptimization> + <CharacterSet>MultiByte</CharacterSet> + <PlatformToolset>WDK7</PlatformToolset> + </PropertyGroup> + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" /> + <ImportGroup Label="ExtensionSettings"> + </ImportGroup> + <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> + <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> + <Import Project="..\..\win32\xchat.props" /> + </ImportGroup> + <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets"> + <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> + <Import Project="..\..\win32\xchat.props" /> + </ImportGroup> + <PropertyGroup Label="UserMacros" /> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> + <LinkIncremental>false</LinkIncremental> + <TargetName>xcxsasl</TargetName> + <OutDir>$(SolutionDir)build\$(PlatformName)\bin</OutDir> + <IntDir>$(SolutionDir)build\$(PlatformName)\obj\$(ProjectName)</IntDir> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'"> + <LinkIncremental>false</LinkIncremental> + <TargetName>xcxsasl</TargetName> + <OutDir>$(SolutionDir)build\$(PlatformName)\bin</OutDir> + <IntDir>$(SolutionDir)build\$(PlatformName)\obj\$(ProjectName)</IntDir> + </PropertyGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> + <ClCompile> + <WarningLevel>Level1</WarningLevel> + <PrecompiledHeader> + </PrecompiledHeader> + <Optimization>MaxSpeed</Optimization> + <FunctionLevelLinking>true</FunctionLevelLinking> + <IntrinsicFunctions>true</IntrinsicFunctions> + <PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;_USRDLL;XSASL_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <AdditionalIncludeDirectories>$(Glib);..;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> + <MultiProcessorCompilation>true</MultiProcessorCompilation> + </ClCompile> + <Link> + <SubSystem>Windows</SubSystem> + <GenerateDebugInformation>true</GenerateDebugInformation> + <EnableCOMDATFolding>true</EnableCOMDATFolding> + <OptimizeReferences>true</OptimizeReferences> + <ModuleDefinitionFile>xsasl.def</ModuleDefinitionFile> + <AdditionalLibraryDirectories>$(DepsRoot)\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories> + <AdditionalDependencies>$(DepLibs);%(AdditionalDependencies)</AdditionalDependencies> + </Link> + </ItemDefinitionGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'"> + <ClCompile> + <WarningLevel>Level1</WarningLevel> + <PrecompiledHeader> + </PrecompiledHeader> + <Optimization>MaxSpeed</Optimization> + <FunctionLevelLinking>true</FunctionLevelLinking> + <IntrinsicFunctions>true</IntrinsicFunctions> + <PreprocessorDefinitions>WIN32;_WIN64;NDEBUG;_WINDOWS;_USRDLL;XSASL_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <AdditionalIncludeDirectories>$(Glib);..;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> + <MultiProcessorCompilation>true</MultiProcessorCompilation> + </ClCompile> + <Link> + <SubSystem>Windows</SubSystem> + <GenerateDebugInformation>true</GenerateDebugInformation> + <EnableCOMDATFolding>true</EnableCOMDATFolding> + <OptimizeReferences>true</OptimizeReferences> + <ModuleDefinitionFile>xsasl.def</ModuleDefinitionFile> + <AdditionalLibraryDirectories>$(DepsRoot)\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories> + <AdditionalDependencies>$(DepLibs);%(AdditionalDependencies)</AdditionalDependencies> + </Link> + </ItemDefinitionGroup> + <ItemGroup> + <None Include="xsasl.def" /> + </ItemGroup> + <ItemGroup> + <ClCompile Include="xsasl.c" /> + </ItemGroup> + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" /> + <ImportGroup Label="ExtensionTargets"> + </ImportGroup> +</Project> \ No newline at end of file diff --git a/plugins/xsasl/xsasl.vcxproj.filters b/plugins/xsasl/xsasl.vcxproj.filters new file mode 100644 index 00000000..b01aa8eb --- /dev/null +++ b/plugins/xsasl/xsasl.vcxproj.filters @@ -0,0 +1,23 @@ +<?xml version="1.0" encoding="utf-8"?> +<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <ItemGroup> + <Filter Include="Source Files"> + <UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier> + <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions> + </Filter> + <Filter Include="Resource Files"> + <UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier> + <Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms</Extensions> + </Filter> + </ItemGroup> + <ItemGroup> + <None Include="xsasl.def"> + <Filter>Resource Files</Filter> + </None> + </ItemGroup> + <ItemGroup> + <ClCompile Include="xsasl.c"> + <Filter>Source Files</Filter> + </ClCompile> + </ItemGroup> +</Project> \ No newline at end of file diff --git a/plugins/xsasl/xsasl.vcxproj.user b/plugins/xsasl/xsasl.vcxproj.user new file mode 100644 index 00000000..695b5c78 --- /dev/null +++ b/plugins/xsasl/xsasl.vcxproj.user @@ -0,0 +1,3 @@ +<?xml version="1.0" encoding="utf-8"?> +<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> +</Project> \ No newline at end of file diff --git a/plugins/xtray/bitmaps/sd.bmp b/plugins/xtray/bitmaps/sd.bmp new file mode 100644 index 00000000..9d6b7f95 --- /dev/null +++ b/plugins/xtray/bitmaps/sd.bmp Binary files differdiff --git a/plugins/xtray/callbacks.cpp b/plugins/xtray/callbacks.cpp new file mode 100644 index 00000000..1b7f452f --- /dev/null +++ b/plugins/xtray/callbacks.cpp @@ -0,0 +1,734 @@ +/* X-Tray + * Copyright (C) 2005 Michael Hotaling <Mike.Hotaling@SinisterDevelopments.com> + * + * X-Tray is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * X-Tray is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with X-Tray; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + */ + +#define _WIN32_IE 0x0601 + +#include <windows.h> +#include <stdio.h> +#include <commctrl.h> +#include <tchar.h> + +#include "xchat-plugin.h" +#include "utility.h" +#include "xtray.h" +#include "xchat.h" +#include "callbacks.h" +#include "resource.h" +#include "sdTray.h" +#include "sdAlerts.h" + +HWND g_hPrefTabEvents; +HWND g_hPrefTabSettings; +HWND g_hPrefTabAlerts; +HWND g_hPrefTabAbout; +bool g_bCanQuit; +int g_iIsActive = 1; + + +BOOL CALLBACK EnumWindowsProc(HWND hWnd, LPARAM lParam) +{ + TCHAR szTitle[10]; + GetWindowText(hWnd, szTitle, 9); + + if(_tcsstr(szTitle, _T("XChat ["))) + { + g_hXchatWnd = hWnd; + return false; + } + + return true; +} + +/***********************************************************************************************/ +/******* our xchat event call back, get the name and info for each event and save it ***********/ +/******* for our alerts later ***********/ +/***********************************************************************************************/ +int event_cb(char *word[], void *userdata) +{ + int iEvent = (int)userdata; + + if(iEvent > 10 && iEvent != 21) + return XCHAT_EAT_NONE; + + /***************************************************************************************/ + /***** if the window is minimized or if we're allowed to show alerts when its not **/ + /***** and if the option to show the specified alert is true and if we're even **/ + /***** allowed to show alerts at all then we show them (a bit confusing but it works) **/ + /***************************************************************************************/ + if(((g_iIsActive == 0) || !(g_dwPrefs & (1<<PREF_OSBWM))) && (g_dwPrefs & (1<<PREF_AMAE)) && (g_dwPrefs & (1<<iEvent))) + { + /*********************************/ + /*********** Our Buffers *********/ + /*********************************/ + char szInfo[512]; + char szName[64]; + DWORD dwInfoFlags; + int iTime = g_iTime*1000; + char *szTemp = NULL; + + if(g_dwPrefs & (1<<PREF_KAOI)) + { + iTime = 0; + } + + switch(iEvent) + { + case CHAN_HILIGHT: + _snprintf(szInfo, 512, "%s:\r\n%s", word[1], word[2]); + _snprintf(szName, 64, "Highlight: %s", xchat_get_info (ph, "channel")); + dwInfoFlags = NIIF_INFO; + break; + case CHAN_MESSAGE: + _snprintf(szInfo, 512, "%s:\r\n%s", word[1], word[2]); + _snprintf(szName, 64, "Channel Message: %s", xchat_get_info (ph, "channel")); + dwInfoFlags = NIIF_INFO; + break; + case CHAN_TOPIC_CHANGE: + _snprintf(szInfo, 512, "%s has changed the topic to %s", word[1], word[2]); + _snprintf(szName, 64, "Topic Change: %s", word[3]); + dwInfoFlags = NIIF_INFO; + break; + case CHAN_INVITE: + _snprintf(szInfo, 512, "%s has invited you into %s", word[1], word[2]); + _snprintf(szName, 64, "Invite"); + dwInfoFlags = NIIF_INFO; + break; + case CHAN_KICKED: + _snprintf(szInfo, 512, "Kicked from %s by %s:\r\n%s", word[2], word[3], word[4]); + _snprintf(szName, 64, "Kick"); + dwInfoFlags = NIIF_WARNING; + break; + case CHAN_BANNED: + _snprintf(szInfo, 512, "Cannot join #%s You are banned.", word[1]); + _snprintf(szName, 64, "Banned"); + dwInfoFlags = NIIF_WARNING; + break; + case CTCP_GENERIC: + _snprintf(szInfo, 512, "%s:\r\nCTCP %s", word[2], word[1]); + _snprintf(szName, 64, "CTCP"); + dwInfoFlags = NIIF_INFO; + break; + case PMSG_RECEIVE: + _snprintf(szInfo, 512, "%s:\r\n%s", word[1], word[2]); + _snprintf(szName, 64, "Private Message"); + dwInfoFlags = NIIF_INFO; + break; + case SERV_DISCONNECT: + _snprintf(szInfo, 512, "Disconnected\r\nError: %s", word[1]); + _snprintf(szName, 64, "Disconnect"); + dwInfoFlags = NIIF_ERROR; + break; + case SERV_KILLED: + _snprintf(szInfo, 512, "Killed(%s(%s))", word[1], word[2]); + _snprintf(szName, 64, "Server Admin has killed you"); + dwInfoFlags = NIIF_ERROR; + break; + case SERV_NOTICE: + _snprintf(szInfo, 512, "Notice:\r\n%s: %s", word[1], word[2]); + _snprintf(szName, 64, "Notice"); + dwInfoFlags = NIIF_INFO; + break; + case 11: + _snprintf(szInfo, 512, ":\r\n%s: %s", word[1], word[2]); + _snprintf(szName, 64, "Notice"); + dwInfoFlags = NIIF_INFO; + break; + } + + /**************************************************************************************/ + /***** Use windows instead of balloons, and if its a window should we keep it open ****/ + /***** indefinately? ****/ + /**************************************************************************************/ + szTemp = xchat_strip_color(szInfo); + + if(g_dwPrefs & (1<<PREF_UWIOB)) + { + sdSystemAlert((HINSTANCE)g_hInstance, IDD_ALERT, szTemp, szName, iTime); + } + else + { + ShowBalloon(g_hXchatWnd, 1, szTemp, szName, iTime, dwInfoFlags); + } + + free(szTemp); + } + + if(g_dwPrefs & (1<<PREF_BLINK) && (g_dwPrefs & (1<<iEvent))) + { + BlinkIcon(g_hXchatWnd, 1, g_hIcons[0], g_hIcons[(iEvent+1)], 700, 5); + } + + /***********************************/ + /***** pass the events to xchat ****/ + /***********************************/ + return XCHAT_EAT_NONE; +} + +int command_cb(char *word[], char *word_eol[], void *userdata) +{ + char szInfo[512]; + char *szTemp = NULL; + int iTime = g_iTime*1000; + + _snprintf(szInfo, 512, word_eol[2]); + szTemp = xchat_strip_color(szInfo); + + if(g_dwPrefs & (1<<PREF_KAOI)) + { + iTime = 0; + } + + if(((g_iIsActive == 0) || !(g_dwPrefs & (1<<PREF_OSBWM))) && (g_dwPrefs & (1<<PREF_AMAE))) + { + if(g_dwPrefs & (1<<PREF_UWIOB)) + { + sdSystemAlert((HINSTANCE)g_hInstance, IDD_ALERT, szTemp, "Alert", iTime); + } + else + { + ShowBalloon(g_hXchatWnd, 1, szTemp, "Alert", iTime, NIIF_INFO); + } + } + + free(szTemp); + + return XCHAT_EAT_ALL; +} + +LRESULT CALLBACK WindowProc(HWND hWnd, UINT msg, WPARAM wparam, LPARAM lparam) +{ + switch(msg) + { + case WM_CLOSE: + { + if((g_dwPrefs & (1<<PREF_MIOC)) && (g_bCanQuit == false)) + { + /*******************************************/ + /**** to autoaway or not to autoaway... ***/ + /*******************************************/ + if(g_dwPrefs & (1<<PREF_AOM)) + { + xchat_globally_away(g_szAway); + } + + /**************************************************/ + /**** Win32 API call to hide the window and **/ + /**** save the fact that its minimized for later **/ + /**************************************************/ + g_iIsActive = 0; + ShowWindow(hWnd, SW_HIDE); + + return 0; + } + else + { + if(g_hPrefDlg != NULL) + { + DestroyWindow(g_hPrefDlg); + } + + StopBlink(hWnd, 1, g_hIcons[0]); + + if(sdAlertNum()) + { + sdCloseAlerts(); + HoldClose(); + return 0; + } + } + } + break; + case WM_SIZE: + { + /******************************************/ + /***** User wants to minimize xChat, ******/ + /***** are we allowed to go to tray? ******/ + /******************************************/ + if((g_dwPrefs & (1<<PREF_TOT)) && (wparam == SIZE_MINIMIZED)) + { + /*******************************************/ + /**** to autoaway or not to autoaway... ***/ + /*******************************************/ + if(g_dwPrefs & (1<<PREF_AOM)) + { + xchat_globally_away(g_szAway); + } + + /**************************************************/ + /**** Win32 API call to hide the window and **/ + /**** save the fact that its minimized for later **/ + /**************************************************/ + g_iIsActive = 0; + ShowWindow(hWnd, SW_HIDE); + } + } + break; + /**********************************/ + /*** user clicked the tray icon ***/ + /**********************************/ + case WM_TRAYMSG: + { + switch(lparam) + { + case WM_LBUTTONDOWN: + { + if(!g_iIsActive) + { + /*********************************************************/ + /*** 0: its hiden, restore it and show it, if autoaway ***/ + /*** is on, set us as back ***/ + /*********************************************************/ + SendMessage(hWnd, WM_SYSCOMMAND, SC_RESTORE, 0); + SetForegroundWindow(hWnd); + g_iIsActive = 1; + + if(g_dwPrefs & (1<<PREF_AOM)) + { + xchat_globally_back(); + } + } + else + { + SendMessage(hWnd, WM_SYSCOMMAND, SC_MINIMIZE, 0); + } + } + break; + case WM_RBUTTONDOWN: + { + /******************************************/ + /*** user wants to see the menu find out **/ + /*** where the mouse is and show it **/ + /******************************************/ + POINT pt; + int iRet; + + GetCursorPos(&pt); + SetForegroundWindow(hWnd); + + ModifyMenu(g_hTrayMenu, 2, (MF_POPUP | MF_BYPOSITION), (UINT)setServerMenu(), _T("Away")); + + Sleep(175); + + iRet = TrackPopupMenuEx(g_hTrayMenu, (TPM_RETURNCMD | TPM_LEFTALIGN), pt.x, pt.y, hWnd, NULL); + + /***********************************/ + /*** nRet is the users selection, **/ + /*** process it **/ + /***********************************/ + sdTrayProc(hWnd, iRet); + } + break; + } + } + break; + default: + { + /*****************************************************/ + /*** the taskbar has been restarted, re-add our icon */ + /*****************************************************/ + if(msg == RegisterWindowMessage(_T("TaskbarCreated"))) + { + char szVersion[64]; + _snprintf(szVersion, 64, "XChat-WDK [%s]", xchat_get_info(ph, "version")); + AddIcon(g_hXchatWnd, 1, g_hIcons[0], szVersion, (NIF_ICON | NIF_MESSAGE | NIF_TIP), WM_TRAYMSG); + } + } + break; + } + + return CallWindowProc(g_hOldProc, hWnd, msg, wparam, lparam); +} + +/****************************************************/ +/*** process messages from the tray menu ************/ +/****************************************************/ +LRESULT CALLBACK sdTrayProc(HWND hWnd, int msg) +{ + switch(msg) + { + case ACT_EXIT: + { + g_bCanQuit = true; + PostMessage(hWnd, WM_CLOSE, 0, 0); + } + break; + case ACT_RESTORE: + { + /***********************************************/ + /** user wants us to restore the xchat window **/ + /** and of autoaway is on, set as back **/ + /***********************************************/ + SendMessage(g_hXchatWnd, WM_SYSCOMMAND, SC_RESTORE, 0); + SetForegroundWindow(hWnd); + + if((!g_iIsActive) && (g_dwPrefs & (1<<PREF_AOM))) + { + xchat_globally_back(); + g_iIsActive = 1; + } + } + break; + case ACT_SETTINGS: + { + ShowWindow(g_hPrefDlg, SW_SHOW); + } + break; + case ACT_AWAY: + { + xchat_globally_away(g_szAway); + } + break; + case ACT_BACK: + { + xchat_globally_back(); + } + break; + default: + { + if(msg > 0) + { + xchat_set_context(ph, xchat_find_server(msg-1)); + + if(!xchat_get_info(ph, "away")) + { + xchat_away(g_szAway); + } + else + { + xchat_back(); + } + } + } + break; + } + + return 1; +} + +int CALLBACK PrefProc(HWND hWnd, UINT msg, WPARAM wparam, LPARAM lparam) +{ + switch(msg) + { + case WM_INITDIALOG: + { + TCITEM tci1; + TCITEM tci2; + TCITEM tci3; + TCITEM tci4; + + tci1.mask = TCIF_TEXT; + tci1.pszText = _T("Settings"); + tci1.cchTextMax = strlen("Settings"); + SendDlgItemMessage(hWnd, IDC_TAB_CONTROL, TCM_INSERTITEM, 0, (LPARAM)&tci1); + + tci2.mask = TCIF_TEXT; + tci2.pszText = _T("Alerts"); + tci2.cchTextMax = strlen("Alerts"); + SendDlgItemMessage(hWnd, IDC_TAB_CONTROL, TCM_INSERTITEM, 1, (LPARAM)&tci2); + + tci3.mask = TCIF_TEXT; + tci3.pszText = _T("Events"); + tci3.cchTextMax = strlen("Events"); + SendDlgItemMessage(hWnd, IDC_TAB_CONTROL, TCM_INSERTITEM, 2, (LPARAM)&tci3); + + tci4.mask = TCIF_TEXT; + tci4.pszText = _T("About"); + tci4.cchTextMax = strlen("About"); + SendDlgItemMessage(hWnd, IDC_TAB_CONTROL, TCM_INSERTITEM, 3, (LPARAM)&tci4); + + + /***********************************************************************************/ + /***********************************************************************************/ + /***********************************************************************************/ + + g_hPrefTabSettings = CreateDialog((HINSTANCE)g_hInstance, + MAKEINTRESOURCE(IDD_SETTINGS), + hWnd, + (DLGPROC)SettingsProc); + SetDialog(g_hPrefTabSettings, IDD_SETTINGS); + + g_hPrefTabAlerts = CreateDialog((HINSTANCE)g_hInstance, + MAKEINTRESOURCE(IDD_ALERTS), + hWnd, + (DLGPROC)AlertsProc); + SetDialog(g_hPrefTabAlerts, IDD_ALERTS); + + g_hPrefTabEvents = CreateDialog((HINSTANCE)g_hInstance, + MAKEINTRESOURCE(IDD_EVENTS), + hWnd, + (DLGPROC)EventsProc); + SetDialog(g_hPrefTabEvents, IDD_EVENTS); + + g_hPrefTabAbout = CreateDialog((HINSTANCE)g_hInstance, + MAKEINTRESOURCE(IDD_ABOUT), + hWnd, + (DLGPROC)AboutProc); + } + break; + case WM_SHOWWINDOW: + { + if(wparam) + { + SendDlgItemMessage(hWnd, IDC_TAB_CONTROL, TCM_SETCURSEL, 0, 0); + ShowWindow(g_hPrefTabSettings, SW_SHOW); + ShowWindow(g_hPrefTabAlerts, SW_HIDE); + ShowWindow(g_hPrefTabEvents, SW_HIDE); + ShowWindow(g_hPrefTabAbout, SW_HIDE); + } + } + break; + case WM_NOTIFY: + { + NMHDR *pData = (NMHDR *)lparam; + + switch(pData->code) + { + case TCN_SELCHANGE: + { + switch(SendDlgItemMessage(hWnd, IDC_TAB_CONTROL, TCM_GETCURSEL, 0, 0)) + { + case 0: + { + ShowWindow(g_hPrefTabSettings, SW_SHOW); + ShowWindow(g_hPrefTabAlerts, SW_HIDE); + ShowWindow(g_hPrefTabEvents, SW_HIDE); + ShowWindow(g_hPrefTabAbout, SW_HIDE); + } + break; + case 1: + { + ShowWindow(g_hPrefTabSettings, SW_HIDE); + ShowWindow(g_hPrefTabAlerts, SW_SHOW); + ShowWindow(g_hPrefTabEvents, SW_HIDE); + ShowWindow(g_hPrefTabAbout, SW_HIDE); + } + break; + case 2: + { + ShowWindow(g_hPrefTabSettings, SW_HIDE); + ShowWindow(g_hPrefTabAlerts, SW_HIDE); + ShowWindow(g_hPrefTabEvents, SW_SHOW); + ShowWindow(g_hPrefTabAbout, SW_HIDE); + } + break; + case 3: + { + ShowWindow(g_hPrefTabSettings, SW_HIDE); + ShowWindow(g_hPrefTabAlerts, SW_HIDE); + ShowWindow(g_hPrefTabEvents, SW_HIDE); + ShowWindow(g_hPrefTabAbout, SW_SHOW); + } + break; + } + } + break; + } + } + break; + case WM_CLOSE: + { + ShowWindow(g_hPrefTabEvents, SW_HIDE); + ShowWindow(g_hPrefTabSettings, SW_HIDE); + ShowWindow(g_hPrefTabAlerts, SW_HIDE); + ShowWindow(g_hPrefTabAbout, SW_HIDE); + ShowWindow(hWnd, SW_HIDE); + return TRUE; + } + break; + case WM_COMMAND: + { + switch(wparam) + { + case IDC_PREF_OK: + { + CheckPrefs(g_hPrefTabEvents, IDD_EVENTS); + CheckPrefs(g_hPrefTabSettings, IDD_SETTINGS); + CheckPrefs(g_hPrefTabAlerts, IDD_ALERTS); + + SavePrefs(0); + + ShowWindow(g_hPrefTabEvents, SW_HIDE); + ShowWindow(g_hPrefTabSettings, SW_HIDE); + ShowWindow(g_hPrefTabAlerts, SW_HIDE); + ShowWindow(g_hPrefTabAbout, SW_HIDE); + ShowWindow(hWnd, SW_HIDE); + return TRUE; + } + break; + case IDC_PREF_CANCEL: + { + ShowWindow(g_hPrefTabEvents, SW_HIDE); + ShowWindow(g_hPrefTabSettings, SW_HIDE); + ShowWindow(g_hPrefTabAlerts, SW_HIDE); + ShowWindow(g_hPrefTabAbout, SW_HIDE); + ShowWindow(hWnd, SW_HIDE); + return TRUE; + } + break; + case IDC_PREF_APPLY: + { + CheckPrefs(g_hPrefTabEvents, IDD_EVENTS); + CheckPrefs(g_hPrefTabSettings, IDD_SETTINGS); + CheckPrefs(g_hPrefTabAlerts, IDD_ALERTS); + + SavePrefs(0); + return FALSE; + } + break; + } + } + break; + case WM_DESTROY: + { + SendMessage(g_hPrefTabEvents, WM_CLOSE, 0, 0); + SendMessage(g_hPrefTabSettings, WM_CLOSE, 0, 0); + SendMessage(g_hPrefTabAbout, WM_CLOSE, 0, 0); + SendMessage(g_hPrefTabAlerts, WM_CLOSE, 0, 0); + } + break; + } + + return FALSE; +} + +/****************************************************/ +/****************************************************/ +/****************************************************/ +LRESULT CALLBACK AlertsProc(HWND hWnd, UINT msg, WPARAM wparam, LPARAM lparam) +{ + switch(msg) + { + case WM_CLOSE: + { + DestroyWindow(hWnd); + return TRUE; + break; + } + break; + case WM_COMMAND: + { + switch(LOWORD(wparam)) + { + case PREF_AMAE: + { + SetToggle(hWnd, PREF_OSBWM, PREF_AMAE, TRUE); + SetToggle(hWnd, PREF_UWIOB, PREF_AMAE, TRUE); + SetToggle(hWnd, PREF_KAOI, PREF_AMAE, TRUE); + + if(IsDlgButtonChecked(hWnd, PREF_AMAE)) + { + SetToggle(hWnd, IDC_ALERT_HOTKEY, PREF_UWIOB, TRUE); + SetToggle(hWnd, IDC_ALERT_HOTKEY_TEXT, PREF_UWIOB, TRUE); + SetToggle(hWnd, IDC_ALERT_TIME, PREF_KAOI, FALSE); + SetToggle(hWnd, IDC_ALERT_TIME_TEXT, PREF_KAOI, FALSE); + } + else + { + SetToggle(hWnd, IDC_ALERT_HOTKEY, PREF_AMAE, TRUE); + SetToggle(hWnd, IDC_ALERT_HOTKEY_TEXT, PREF_AMAE, TRUE); + SetToggle(hWnd, IDC_ALERT_TIME, PREF_AMAE, TRUE); + SetToggle(hWnd, IDC_ALERT_TIME_TEXT, PREF_AMAE, TRUE); + } + } + break; + case PREF_UWIOB: + { + SetToggle(hWnd, IDC_ALERT_HOTKEY, PREF_UWIOB, TRUE); + SetToggle(hWnd, IDC_ALERT_HOTKEY_TEXT, PREF_UWIOB, TRUE); + } + break; + case PREF_KAOI: + { + SetToggle(hWnd, IDC_ALERT_TIME, PREF_KAOI, FALSE); + SetToggle(hWnd, IDC_ALERT_TIME_TEXT, PREF_KAOI, FALSE); + } + break; + } + break; + } + } + + return FALSE; +} + +/****************************************************/ +/****************************************************/ +/****************************************************/ +LRESULT CALLBACK AboutProc(HWND hWnd, UINT msg, WPARAM wparam, LPARAM lparam) +{ + if(msg == WM_CLOSE) + { + DestroyWindow(hWnd); + return true; + } + + return FALSE; +} + +/*****************************************************/ +/** Process the events for our event dialog **********/ +/*****************************************************/ +LRESULT CALLBACK EventsProc(HWND hWnd, UINT msg, WPARAM wparam, LPARAM lparam) +{ + if(msg == WM_CLOSE) + { + DestroyWindow(hWnd); + return true; + } + + return FALSE; +} + +/*****************************************************/ +/** Process the events for our settings dialog this **/ +/** is alot more complicated because options are **/ +/** enabled/disabled based on the state of others **/ +/*****************************************************/ +LRESULT CALLBACK SettingsProc(HWND hWnd, UINT msg, WPARAM wparam, LPARAM lparam) +{ + if(msg == WM_CLOSE) + { + DestroyWindow(hWnd); + return true; + } + + return FALSE; +} + +/*****************************************************/ +/** this is the hotkey message processing function **/ +/** this window is always open and ready to be told **/ +/** if someone has hit the hotkey, if they did, we **/ +/** need to close out all of the tray alerts, for **/ +/** this I wrote sdCloseAlerts, more info there **/ +/*****************************************************/ +LRESULT CALLBACK HotKeyProc(HWND hWnd, UINT msg, WPARAM wparam, LPARAM lparam) +{ + if(msg == WM_CLOSE) + { + DestroyWindow(hWnd); + return true; + } + else if(msg == WM_HOTKEY) + { + sdCloseAlerts(); + } + + return FALSE; +} + diff --git a/plugins/xtray/callbacks.h b/plugins/xtray/callbacks.h new file mode 100644 index 00000000..99cbae74 --- /dev/null +++ b/plugins/xtray/callbacks.h @@ -0,0 +1,37 @@ +/* X-Tray + * Copyright (C) 2005 Michael Hotaling <Mike.Hotaling@SinisterDevelopments.com> + * + * X-Tray is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * X-Tray is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with X-Tray; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + */ + +#ifndef _H_CALLBACKS_H +#define _H_CALLBACKS_H + +int event_cb (char *word[], void *userdata); +int command_cb (char *word[], char *word_eol[], void *userdata); + +LRESULT CALLBACK WindowProc (HWND hwnd, UINT msg, WPARAM wparam, LPARAM lparam); +BOOL CALLBACK EnumWindowsProc (HWND hWnd, LPARAM lParam); +LRESULT CALLBACK sdTrayProc (HWND hwnd, int msg); + +LRESULT CALLBACK AlertProc (HWND hwnd, UINT msg, WPARAM wparam, LPARAM lparam); +LRESULT CALLBACK HotKeyProc (HWND hwnd, UINT msg, WPARAM wparam, LPARAM lparam); +LRESULT CALLBACK EventsProc (HWND hwnd, UINT msg, WPARAM wparam, LPARAM lparam); +LRESULT CALLBACK AboutProc (HWND hwnd, UINT msg, WPARAM wparam, LPARAM lparam); +LRESULT CALLBACK AlertsProc (HWND hwnd, UINT msg, WPARAM wparam, LPARAM lparam); +LRESULT CALLBACK SettingsProc (HWND hwnd, UINT msg, WPARAM wparam, LPARAM lparam); +int CALLBACK PrefProc (HWND hwnd, UINT msg, WPARAM wparam, LPARAM lparam); + +#endif \ No newline at end of file diff --git a/plugins/xtray/icons/banned.ico b/plugins/xtray/icons/banned.ico new file mode 100644 index 00000000..fef8df8c --- /dev/null +++ b/plugins/xtray/icons/banned.ico Binary files differdiff --git a/plugins/xtray/icons/chan_msg.ico b/plugins/xtray/icons/chan_msg.ico new file mode 100644 index 00000000..793d050e --- /dev/null +++ b/plugins/xtray/icons/chan_msg.ico Binary files differdiff --git a/plugins/xtray/icons/disconnected.ico b/plugins/xtray/icons/disconnected.ico new file mode 100644 index 00000000..9063e7e3 --- /dev/null +++ b/plugins/xtray/icons/disconnected.ico Binary files differdiff --git a/plugins/xtray/icons/highlight-1-3.ico b/plugins/xtray/icons/highlight-1-3.ico new file mode 100644 index 00000000..a759145b --- /dev/null +++ b/plugins/xtray/icons/highlight-1-3.ico Binary files differdiff --git a/plugins/xtray/icons/highlight.ico b/plugins/xtray/icons/highlight.ico new file mode 100644 index 00000000..625cca9a --- /dev/null +++ b/plugins/xtray/icons/highlight.ico Binary files differdiff --git a/plugins/xtray/icons/kicked.ico b/plugins/xtray/icons/kicked.ico new file mode 100644 index 00000000..845a74e1 --- /dev/null +++ b/plugins/xtray/icons/kicked.ico Binary files differdiff --git a/plugins/xtray/icons/priv_msg-1-2-2.ico b/plugins/xtray/icons/priv_msg-1-2-2.ico new file mode 100644 index 00000000..7941ff77 --- /dev/null +++ b/plugins/xtray/icons/priv_msg-1-2-2.ico Binary files differdiff --git a/plugins/xtray/icons/sd.ico b/plugins/xtray/icons/sd.ico new file mode 100644 index 00000000..ca179621 --- /dev/null +++ b/plugins/xtray/icons/sd.ico Binary files differdiff --git a/plugins/xtray/icons/server_notice.ico b/plugins/xtray/icons/server_notice.ico new file mode 100644 index 00000000..ff765d87 --- /dev/null +++ b/plugins/xtray/icons/server_notice.ico Binary files differdiff --git a/plugins/xtray/icons/xchat.ico b/plugins/xtray/icons/xchat.ico new file mode 100644 index 00000000..73247fd0 --- /dev/null +++ b/plugins/xtray/icons/xchat.ico Binary files differdiff --git a/plugins/xtray/makefile.mak b/plugins/xtray/makefile.mak new file mode 100644 index 00000000..ec2c94b3 --- /dev/null +++ b/plugins/xtray/makefile.mak @@ -0,0 +1,37 @@ +include "..\..\src\makeinc.mak" + +TARGET = xtray.dll + +TRAY_OBJECTS = \ +callbacks.obj \ +sdAlerts.obj \ +sdTray.obj \ +utility.obj \ +xchat.obj \ +xtray.obj + +CPPFLAGS = $(CPPFLAGS) /D_STL70_ /D_STATIC_CPPLIB /EHsc /DUNICODE /D_UNICODE + +all: $(TRAY_OBJECTS) $(TARGET) + +xtray.def: + echo EXPORTS > xtray.def + echo xchat_plugin_init >> xtray.def + echo xchat_plugin_deinit >> xtray.def + +.cpp.obj: + $(CC) $(CPPFLAGS) /I.. /c $< + +res: + rc /nologo resource.rc + +$(TARGET): $(TRAY_OBJECTS) xtray.def res + $(LINK) /DLL /out:$(TARGET) $(LDFLAGS) $(TRAY_OBJECTS) ntstc_msvcrt.lib $(LIBS) /def:xtray.def resource.res + +clean: + del $(TARGET) + del *.obj + del xtray.def + del resource.res + del *.lib + del *.exp diff --git a/plugins/xtray/resource.h b/plugins/xtray/resource.h new file mode 100644 index 00000000..b8008c2c --- /dev/null +++ b/plugins/xtray/resource.h @@ -0,0 +1,47 @@ +//{{NO_DEPENDENCIES}} +// Microsoft Visual C++ generated include file. +// Used by resource.rc +// +#define IDD_ALERTS 104 +#define IDD_EVENTS 105 +#define IDD_SETTINGS 106 +#define IDD_ALERT 107 +#define IDD_PREF 108 +#define IDD_ABOUT 109 +#define IDR_TRAY_MENU 110 +#define ICO_XCHAT 111 +#define ICO_BANNED 112 +#define ICO_CHANMSG 113 +#define ICO_DISCONNECTED 114 +#define ICO_HIGHLIGHT 115 +#define ICO_KICKED 116 +#define ICO_PMSG 117 +#define ICO_SNOTICE 118 +#define IDB_SD_LOGO 119 +#define IDC_PREF_OK 1014 +#define IDC_PREF_CANCEL 1015 +#define IDC_PREF_APPLY 1016 +#define IDC_AWAY_MSG 1017 +#define IDC_ALERT_TIME 1018 +#define IDC_TAB_CONTROL 1019 +#define IDC_ALERT_HOTKEY 1020 +#define IDC_ALERT_MSG 1021 +#define IDC_ALERT_HOTKEY_TEXT 1022 +#define IDC_ALERT_TIME_TEXT 1023 +#define ACT_EXIT 40001 +#define ACT_SETTINGS 40002 +#define ACT_AWAY 40003 +#define ACT_BACK 40004 +#define ACT_RESTORE 40005 +#define IDC_STATIC -1 + +// Next default values for new objects +// +#ifdef APSTUDIO_INVOKED +#ifndef APSTUDIO_READONLY_SYMBOLS +#define _APS_NEXT_RESOURCE_VALUE 120 +#define _APS_NEXT_COMMAND_VALUE 40006 +#define _APS_NEXT_CONTROL_VALUE 1024 +#define _APS_NEXT_SYMED_VALUE 101 +#endif +#endif diff --git a/plugins/xtray/resource.rc b/plugins/xtray/resource.rc new file mode 100644 index 00000000..312c74c4 --- /dev/null +++ b/plugins/xtray/resource.rc @@ -0,0 +1,309 @@ +// Microsoft Visual C++ generated resource script. +// +#include "resource.h" + +#define APSTUDIO_READONLY_SYMBOLS +///////////////////////////////////////////////////////////////////////////// +// +// Generated from the TEXTINCLUDE 2 resource. +// +#define APSTUDIO_HIDDEN_SYMBOLS +#include "windows.h" +#undef APSTUDIO_HIDDEN_SYMBOLS + +///////////////////////////////////////////////////////////////////////////// +#undef APSTUDIO_READONLY_SYMBOLS + +///////////////////////////////////////////////////////////////////////////// +// English (U.S.) resources + +#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU) +#ifdef _WIN32 +LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US +#pragma code_page(1252) +#endif //_WIN32 + +///////////////////////////////////////////////////////////////////////////// +// +// Dialog +// + +IDD_EVENTS DIALOGEX 8, 20, 216, 143 +STYLE DS_SETFONT | DS_SETFOREGROUND | WS_CHILD +FONT 8, "Tahoma", 0, 0, 0x0 +BEGIN + GROUPBOX "XChat Events",IDC_STATIC,5,5,205,77 + CONTROL "Banned",4,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,16,18,49,10 + CONTROL "Kicked",5,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,16,32,49,10 + CONTROL "Killed",8,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,16,46,49,10 + CONTROL "Disconnect",10,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,16,60,49,10 + CONTROL "Private Message",7,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,70,18,69,10 + CONTROL "Channel Message",21,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,70,32,69,10 + CONTROL "Highlight",1,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,70,46,69,10 + CONTROL "CTCP",6,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,70,60,69,10 + CONTROL "Topic Change",3,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,145,18,55,10 + CONTROL "Server Notice",9,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,145,32,55,10 + CONTROL "Invite",2,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,145,46,55,10 +END + +IDD_SETTINGS DIALOGEX 8, 20, 216, 143 +STYLE DS_SETFONT | WS_CHILD +FONT 8, "Tahoma", 0, 0, 0x0 +BEGIN + GROUPBOX "Options",IDC_STATIC,5,5,205,135 + CONTROL "Auto away on minimize",11,"Button",BS_AUTOCHECKBOX | + WS_TABSTOP,16,60,100,10 + CONTROL "Minimize XChat to the system tray",12,"Button", + BS_AUTOCHECKBOX | WS_TABSTOP,16,18,133,10 + CONTROL "Minimize to the tray instead of closing",17,"Button", + BS_AUTOCHECKBOX | WS_TABSTOP,16,32,174,9 + EDITTEXT IDC_AWAY_MSG,33,86,169,50,ES_AUTOHSCROLL + LTEXT "Away Msg:",IDC_STATIC,27,72,35,8 + CONTROL "Remove XChat from the taskbar (only show in tray)", + 20,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,16,46,191,9 +END + +IDD_ALERT DIALOGEX 0, 0, 151, 28 +STYLE DS_LOCALEDIT | DS_SETFONT | DS_NOIDLEMSG | DS_CENTER | WS_CAPTION | + WS_SYSMENU +EXSTYLE WS_EX_NOPARENTNOTIFY | WS_EX_ACCEPTFILES | WS_EX_TOOLWINDOW +CAPTION "Event Name" +FONT 8, "Tahoma", 0, 0, 0x1 +BEGIN + LTEXT "Event Text",IDC_ALERT_MSG,3,0,147,27 +END + +IDD_PREF DIALOGEX 0, 0, 233, 190 +STYLE DS_SETFONT | DS_MODALFRAME | DS_CENTER | WS_POPUP | WS_CAPTION | + WS_SYSMENU +CAPTION "X-Tray Preferences" +FONT 8, "Tahoma", 0, 0, 0x0 +BEGIN + DEFPUSHBUTTON "Ok",IDC_PREF_OK,57,173,50,14 + PUSHBUTTON "Cancel",IDC_PREF_CANCEL,115,173,50,14 + PUSHBUTTON "Apply",IDC_PREF_APPLY,175,173,50,14 + CONTROL "Tab1",IDC_TAB_CONTROL,"SysTabControl32",0x0,7,7,218,159 +END + +IDD_ABOUT DIALOGEX 8, 20, 216, 143 +STYLE DS_SETFONT | WS_CHILD +FONT 8, "Tahoma", 0, 0, 0x0 +BEGIN + CONTROL 119,IDC_STATIC,"Static",SS_BITMAP | SS_SUNKEN | + WS_BORDER,3,6,88,81 + CTEXT "X-Tray\r\nBy: Michael Hotaling\r\n www.SinisterDevelopments.com", + IDC_STATIC,95,33,118,30 + LTEXT "Folken\r\nBasket\r\nDonatzsky\r\nDaemon404",IDC_STATIC, + 15,103,64,33 + GROUPBOX "Special Thanks To:",IDC_STATIC,3,91,89,50 + GROUPBOX "Version Information:",IDC_STATIC,101,92,109,49 + LTEXT "1.2.4",IDC_STATIC,170,105,33,8,0,WS_EX_RIGHT + LTEXT "Compiled In: ",IDC_STATIC,110,117,54,8 + LTEXT "2012",IDC_STATIC,170,117,33,8,0,WS_EX_RIGHT + LTEXT "Version Number:",IDC_STATIC,110,105,54,8 +END + +IDD_ALERTS DIALOGEX 8, 20, 216, 143 +STYLE DS_SETFONT | WS_CHILD +FONT 8, "Tahoma", 0, 0, 0x0 +BEGIN + GROUPBOX "Alerts",IDC_STATIC,5,5,205,117 + CONTROL "Only show alerts while minimized",14,"Button", + BS_AUTOCHECKBOX | WS_TABSTOP,27,46,117,10 + CONTROL "Use tray alerts to notify me about events",13,"Button", + BS_AUTOCHECKBOX | WS_TABSTOP,16,32,152,10 + CONTROL "Use window instead of balloons",15,"Button", + BS_AUTOCHECKBOX | WS_TABSTOP,27,60,141,11 + EDITTEXT IDC_ALERT_TIME,137,101,61,12,ES_AUTOHSCROLL | ES_NUMBER, + WS_EX_RIGHT + LTEXT "Show alert for x seconds:",IDC_ALERT_TIME_TEXT,40,103, + 83,9 + CONTROL "Alert Hotkey",IDC_ALERT_HOTKEY,"msctls_hotkey32", + WS_BORDER | WS_TABSTOP,137,74,61,13 + LTEXT "Close all alerts hotkey:",IDC_ALERT_HOTKEY_TEXT,39,75, + 76,10 + CONTROL "Leave alerts open indefinately",16,"Button", + BS_AUTOCHECKBOX | WS_TABSTOP,27,88,115,11 + CONTROL "Blink Icon to alert me about events",18,"Button", + BS_AUTOCHECKBOX | WS_TABSTOP,16,18,127,10 +END + + +///////////////////////////////////////////////////////////////////////////// +// +// DESIGNINFO +// + +#ifdef APSTUDIO_INVOKED +GUIDELINES DESIGNINFO +BEGIN + IDD_EVENTS, DIALOG + BEGIN + BOTTOMMARGIN, 56 + END + + IDD_SETTINGS, DIALOG + BEGIN + BOTTOMMARGIN, 66 + END + + IDD_ALERT, DIALOG + BEGIN + RIGHTMARGIN, 150 + BOTTOMMARGIN, 26 + END + + IDD_PREF, DIALOG + BEGIN + LEFTMARGIN, 7 + RIGHTMARGIN, 232 + TOPMARGIN, 7 + BOTTOMMARGIN, 176 + END + + IDD_ABOUT, DIALOG + BEGIN + LEFTMARGIN, 7 + RIGHTMARGIN, 209 + TOPMARGIN, 7 + BOTTOMMARGIN, 136 + END + + IDD_ALERTS, DIALOG + BEGIN + LEFTMARGIN, 7 + RIGHTMARGIN, 208 + TOPMARGIN, 7 + BOTTOMMARGIN, 136 + END +END +#endif // APSTUDIO_INVOKED + + +#ifdef APSTUDIO_INVOKED +///////////////////////////////////////////////////////////////////////////// +// +// TEXTINCLUDE +// + +1 TEXTINCLUDE +BEGIN + "resource.h\0" +END + +2 TEXTINCLUDE +BEGIN + "#define APSTUDIO_HIDDEN_SYMBOLS\r\n" + "#include ""windows.h""\r\n" + "#undef APSTUDIO_HIDDEN_SYMBOLS\r\n" + "\0" +END + +3 TEXTINCLUDE +BEGIN + "xtray.h\0" +END + +4 TEXTINCLUDE +BEGIN + "\r\n" + "\0" +END + +#endif // APSTUDIO_INVOKED + + +///////////////////////////////////////////////////////////////////////////// +// +// Version +// + +VS_VERSION_INFO VERSIONINFO + FILEVERSION 1,2,4,0 + PRODUCTVERSION 1,2,4,0 + FILEFLAGSMASK 0x3fL +#ifdef _DEBUG + FILEFLAGS 0x1L +#else + FILEFLAGS 0x0L +#endif + FILEOS 0x40004L + FILETYPE 0x2L + FILESUBTYPE 0x0L +BEGIN + BLOCK "StringFileInfo" + BEGIN + BLOCK "040904b0" + BEGIN + VALUE "CompanyName", "SinisterDevelopments" + VALUE "FileDescription", "X-Tray" + VALUE "FileVersion", "1, 2, 4, 0" + VALUE "InternalName", "X-Tray" + VALUE "LegalCopyright", "Copyright 2005" + VALUE "OriginalFilename", "xtray.dll" + VALUE "ProductName", "X-Tray - XChat Win32 System Tray Plugin" + VALUE "ProductVersion", "1, 2, 4, 0" + END + END + BLOCK "VarFileInfo" + BEGIN + VALUE "Translation", 0x409, 1200 + END +END + + +///////////////////////////////////////////////////////////////////////////// +// +// Menu +// + +IDR_TRAY_MENU MENU +BEGIN + POPUP "TRAY" + BEGIN + MENUITEM "Restore", ACT_RESTORE + MENUITEM SEPARATOR + MENUITEM "Away", 65535 + MENUITEM "Settings", ACT_SETTINGS + MENUITEM SEPARATOR + MENUITEM "Exit", ACT_EXIT + END +END + + +///////////////////////////////////////////////////////////////////////////// +// +// Icon +// + +// Icon with lowest ID value placed first to ensure application icon +// remains consistent on all systems. +ICO_XCHAT ICON "icons\\xchat.ico" +ICO_BANNED ICON "icons\\banned.ico" +ICO_CHANMSG ICON "icons\\chan_msg.ico" +ICO_HIGHLIGHT ICON "icons\\highlight.ico" +ICO_KICKED ICON "icons\\kicked.ico" +ICO_PMSG ICON "icons\\priv_msg-1-2-2.ico" +ICO_SNOTICE ICON "icons\\server_notice.ico" +ICO_DISCONNECTED ICON "icons\\disconnected.ico" + +///////////////////////////////////////////////////////////////////////////// +// +// Bitmap +// + +IDB_SD_LOGO BITMAP "bitmaps\\sd.bmp" +#endif // English (U.S.) resources +///////////////////////////////////////////////////////////////////////////// + + + +#ifndef APSTUDIO_INVOKED +///////////////////////////////////////////////////////////////////////////// +// +// Generated from the TEXTINCLUDE 3 resource. +// +xtray.h +///////////////////////////////////////////////////////////////////////////// +#endif // not APSTUDIO_INVOKED + diff --git a/plugins/xtray/sdAlerts.cpp b/plugins/xtray/sdAlerts.cpp new file mode 100644 index 00000000..5e042806 --- /dev/null +++ b/plugins/xtray/sdAlerts.cpp @@ -0,0 +1,109 @@ +/* X-Tray + * Copyright (C) 2005 Michael Hotaling <Mike.Hotaling@SinisterDevelopments.com> + * + * X-Tray is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * X-Tray is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with X-Tray; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + */ + +#include <windows.h> +#include <winuser.h> +#include <stdio.h> +#include "utility.h" +#include "resource.h" +#include "sdAlerts.h" + +int g_iAlerts = 0; + +void sdSystemAlert(HINSTANCE hModule, UINT uiDialog, char *szMsg, char *szName, unsigned int iTime) +{ + TCHAR wszMsg[256]; + TCHAR wszName[64]; + + HWND hDialog; + RECT rcWorkArea, rcDlg; + int ixPos, iyPos; + int iNumPerCol; + + hDialog = CreateDialog(hModule, MAKEINTRESOURCE(uiDialog), NULL, (DLGPROC)sdAlertProc); + + SystemParametersInfo(SPI_GETWORKAREA, 0, &rcWorkArea, 0); + GetWindowRect(hDialog, &rcDlg); + + iNumPerCol = ((rcWorkArea.bottom - rcWorkArea.top) / (rcDlg.bottom - rcDlg.top)); + ixPos = rcWorkArea.right - (rcDlg.right - rcDlg.left) + 1; + iyPos = rcWorkArea.bottom - (rcDlg.bottom - rcDlg.top); + + if((g_iAlerts >= iNumPerCol) && (iNumPerCol > 0)) + { + ixPos -= ((g_iAlerts / iNumPerCol) * (rcDlg.right - rcDlg.left)); + iyPos -= ((g_iAlerts - (iNumPerCol * (g_iAlerts / iNumPerCol))) * (rcDlg.bottom - rcDlg.top)); + } + else + { + iyPos -= (g_iAlerts * (rcDlg.bottom - rcDlg.top)); + } + SetWindowPos(hDialog, HWND_TOPMOST, ixPos, iyPos, 0, 0, SWP_NOSIZE | SWP_NOACTIVATE); + + ConvertString(szName, wszName, 64); + ConvertString(szMsg, wszMsg, 256); + + SetWindowText(hDialog, wszName); + SetDlgItemText(hDialog, IDC_ALERT_MSG, wszMsg); + ShowWindow(hDialog, SW_SHOWNA); + + if(iTime > 0) + { + SetTimer(hDialog, 1, iTime, NULL); + } + + g_iAlerts++; +} + +void sdCloseAlerts() +{ + PostMessage(HWND_BROADCAST, RegisterWindowMessage(TEXT("xTray:CloseAllAlertWindows")), 0, 0); +} + +LRESULT CALLBACK sdAlertProc(HWND hwnd, UINT msg, WPARAM wparam, LPARAM lparam) +{ + switch(msg) + { + case WM_CLOSE: + if(g_iAlerts > 0){ g_iAlerts--; } + DestroyWindow(hwnd); + return TRUE; + break; + case WM_TIMER: + if(g_iAlerts > 0){ g_iAlerts--; } + AnimateWindow(hwnd, 600, AW_SLIDE | AW_HIDE | AW_VER_POSITIVE); + DestroyWindow(hwnd); + return TRUE; + break; + default: + if(msg == RegisterWindowMessage(TEXT("xTray:CloseAllAlertWindows"))) + { + if(g_iAlerts > 0){ g_iAlerts--; } + DestroyWindow(hwnd); + return TRUE; + } + break; + } + + return FALSE; +} + +int sdAlertNum() +{ + return g_iAlerts; +} \ No newline at end of file diff --git a/plugins/xtray/sdAlerts.h b/plugins/xtray/sdAlerts.h new file mode 100644 index 00000000..cd45a05b --- /dev/null +++ b/plugins/xtray/sdAlerts.h @@ -0,0 +1,26 @@ +/* X-Tray + * Copyright (C) 2005 Michael Hotaling <Mike.Hotaling@SinisterDevelopments.com> + * + * X-Tray is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * X-Tray is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with X-Tray; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + */ + +#ifndef _H_SDALERTS_H +#define _H_SDALERTS_H + +void sdSystemAlert (HINSTANCE, UINT, char *, char *, UINT); +LRESULT CALLBACK sdAlertProc (HWND, UINT, WPARAM, LPARAM); +int sdAlertNum (); +void sdCloseAlerts (); +#endif \ No newline at end of file diff --git a/plugins/xtray/sdTray.cpp b/plugins/xtray/sdTray.cpp new file mode 100644 index 00000000..3a91a61b --- /dev/null +++ b/plugins/xtray/sdTray.cpp @@ -0,0 +1,207 @@ +/* X-Tray + * Copyright (C) 2005 Michael Hotaling <Mike.Hotaling@SinisterDevelopments.com> + * + * X-Tray is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * X-Tray is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with X-Tray; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + */ +#define _WIN32_IE 0x601 +#include <windows.h> +#include <stdio.h> +#include <tchar.h> +#include "sdTray.h" +#include "utility.h" + +HANDLE hThread; +iBlink *tData = NULL; + +int AddIcon(HWND hwnd, UINT id, HICON hicon, char *szTip, unsigned short flags, unsigned int cbMsg) +{ + NOTIFYICONDATA nidata; + + nidata.cbSize = NOTIFYICONDATA_V2_SIZE; + nidata.hIcon = hicon; + nidata.hWnd = hwnd; + nidata.uCallbackMessage = cbMsg; + nidata.uFlags = flags; + nidata.uID = id; + + if(szTip != NULL) + { + TCHAR *szTemp = new TCHAR[64]; + + ConvertString(szTip, szTemp, 64); + _tcsncpy(nidata.szTip, szTemp, 64); + + delete[] szTemp; + } + + return Shell_NotifyIcon(NIM_ADD, &nidata); +} + +int RemoveIcon(HWND hwnd, UINT id) +{ + if(hThread != NULL) + { + TerminateThread(hThread, 0); + hThread = NULL; + + delete tData; + } + + NOTIFYICONDATA nidata; + + nidata.cbSize = NOTIFYICONDATA_V2_SIZE; + nidata.hWnd = hwnd; + nidata.uID = id; + + return Shell_NotifyIcon(NIM_DELETE, &nidata); +} + +int SetIcon(HWND hwnd, UINT id, HICON hicon) +{ + NOTIFYICONDATA nidata; + + nidata.cbSize = NOTIFYICONDATA_V2_SIZE; + nidata.hWnd = hwnd; + nidata.uID = id; + nidata.hIcon = hicon; + nidata.uFlags = NIF_ICON; + + return Shell_NotifyIcon(NIM_MODIFY, &nidata); +} + +int SetTooltip(HWND hwnd, UINT id, char *szTip) +{ + NOTIFYICONDATA nidata; + + nidata.cbSize = NOTIFYICONDATA_V2_SIZE; + nidata.hWnd = hwnd; + nidata.uID = id; + nidata.uFlags = NIF_TIP; + + if(szTip != NULL) + { + TCHAR *szTemp = new TCHAR[64]; + ConvertString(szTip, szTemp, 64); + _tcsncpy(nidata.szTip, szTemp, 64); + delete[] szTemp; + } + + return Shell_NotifyIcon(NIM_MODIFY, &nidata); +} + +int ShowBalloon(HWND hwnd, UINT id, char *szInfo, char *szTitle, UINT time, UINT infoFlags) +{ + NOTIFYICONDATA nidata; + + nidata.cbSize = NOTIFYICONDATA_V2_SIZE; + nidata.hWnd = hwnd; + nidata.uID = id; + nidata.uFlags = NIF_INFO; + nidata.dwInfoFlags = infoFlags; + + if(time > 0) + nidata.uTimeout = time; + else + nidata.uTimeout = 500000; + + if(szInfo != NULL) + { + TCHAR *szTemp = new TCHAR[255]; + + ConvertString(szInfo, szTemp, 251); + szTemp[250] = 0; + + if(strlen(szInfo) > 255) + { + _sntprintf(szTemp, 255, _T("%s..."), szTemp); + } + _tcsncpy(nidata.szInfo, szTemp, 255); + + delete[] szTemp; + } + if(szTitle != NULL) + { + TCHAR *wszTitle = new TCHAR[64]; + ConvertString(szTitle, wszTitle, 64); + _tcsncpy(nidata.szInfoTitle, wszTitle, 64); + delete[] wszTitle; + } + + return Shell_NotifyIcon(NIM_MODIFY, &nidata); +} + + +DWORD WINAPI BlinkThread(LPVOID lpParam) +{ + NOTIFYICONDATA nidata; + + nidata.cbSize = NOTIFYICONDATA_V2_SIZE; + nidata.hWnd = tData->hwnd; + nidata.uID = tData->id; + nidata.uFlags = NIF_ICON; + + for(UINT i = 0; i < tData->num; i++) + { + nidata.hIcon = tData->hBlink; + Shell_NotifyIcon(NIM_MODIFY, &nidata); + + Sleep(tData->time); + + nidata.hIcon = tData->hBase; + Shell_NotifyIcon(NIM_MODIFY, &nidata); + + Sleep(tData->time); + } + + delete tData; + hThread = NULL; + + return 0; +} + +int BlinkIcon(HWND hwnd, UINT id, HICON hBase, HICON hBlink, UINT time, UINT num) +{ + if(hThread != NULL) + { + StopBlink(hwnd, id, hBase); + } + + DWORD dwThreadID; + tData = new iBlink; + + tData->hwnd = hwnd; + tData->id = id; + tData->hBase = hBase; + tData->hBlink = hBlink; + tData->time = time; + tData->num = num; + + hThread = CreateThread(NULL, 0, BlinkThread, tData, 0, &dwThreadID); + + return 0; +} + +void StopBlink(HWND hwnd, UINT id, HICON hBase) +{ + if(hThread != NULL) + { + TerminateThread(hThread, 0); + hThread = NULL; + + delete tData; + } + + SetIcon(hwnd, id, hBase); +} \ No newline at end of file diff --git a/plugins/xtray/sdTray.h b/plugins/xtray/sdTray.h new file mode 100644 index 00000000..68469fe0 --- /dev/null +++ b/plugins/xtray/sdTray.h @@ -0,0 +1,39 @@ +/* X-Tray + * Copyright (C) 2005 Michael Hotaling <Mike.Hotaling@SinisterDevelopments.com> + * + * X-Tray is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * X-Tray is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with X-Tray; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + */ + +#ifndef _H_SDTRAY_H +#define _H_SDTRAY_H + +int AddIcon (HWND, UINT, HICON, char *, unsigned short, UINT); +int ShowBalloon (HWND, UINT, char *, char *, UINT, UINT); +int BlinkIcon (HWND, UINT, HICON, HICON, UINT, UINT); +int SetTooltip (HWND, UINT, char *); +int SetIcon (HWND, UINT, HICON); +void StopBlink (HWND, UINT, HICON); +int RemoveIcon (HWND, UINT); + +typedef struct IBLINK +{ + HICON hBase; + HICON hBlink; + HWND hwnd; + UINT id; + UINT time; + UINT num; +}iBlink; +#endif \ No newline at end of file diff --git a/plugins/xtray/utility.cpp b/plugins/xtray/utility.cpp new file mode 100644 index 00000000..66489bc0 --- /dev/null +++ b/plugins/xtray/utility.cpp @@ -0,0 +1,607 @@ +/* X-Tray + * Copyright (C) 2005 Michael Hotaling <Mike.Hotaling@SinisterDevelopments.com> + * + * X-Tray is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * X-Tray is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with X-Tray; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + */ + +#include <windows.h> +#include <stdio.h> +#include <commctrl.h> +#include <tchar.h> + +#include "xchat-plugin.h" +#include "utility.h" +#include "xtray.h" +#include "callbacks.h" +#include "resource.h" + +TCHAR BACKUP_INI_FILE[] = _T(".\\plugins\\config\\xtray.conf"); +struct HOTKEY g_hHotKey; + +/* we need to convert ALT and SHIFT modifiers +// from <winuser.h> +#define MOD_ALT 0x0001 +#define MOD_CONTROL 0x0002 +#define MOD_SHIFT 0x0004 +// from <commctrl.h> +#define HOTKEYF_SHIFT 0x01 +#define HOTKEYF_CONTROL 0x02 +#define HOTKEYF_ALT 0x04 +*/ + +WORD HotkeyfToMod(WORD modifiers) +{ + WORD newmods = 0; + + if (modifiers & HOTKEYF_SHIFT) + newmods |= MOD_SHIFT; + + if (modifiers & HOTKEYF_CONTROL) + newmods |= MOD_CONTROL; + + if (modifiers & HOTKEYF_ALT) + newmods |= MOD_ALT; + + return newmods; +} + +WORD ModToHotkeyf(WORD modifiers) +{ + WORD newmods = 0; + + if (modifiers & MOD_SHIFT) + newmods |= HOTKEYF_SHIFT; + + if (modifiers & MOD_CONTROL) + newmods |= HOTKEYF_CONTROL; + + if (modifiers & MOD_ALT) + newmods |= HOTKEYF_ALT; + + return newmods; +} + +void SavePrefs(int iDlg) +{ + /**************************************************************************************************/ + /********** allocate space for our string, and then set it to the currently logged on user ********/ + /**************************************************************************************************/ + DWORD dBuff = 257; + TCHAR szUser[257]; + + GetUserName(szUser, &dBuff); + + /**************************************************************************************************/ + /*********************** Test if the file exists, If it doesn't, Create It ************************/ + /**************************************************************************************************/ + TCHAR XTRAY_INI_FILE[1024]; + +#ifdef UNICODE + char temp[1024]; + TCHAR TEMP_INI_FILE[1024]; + + _snprintf(temp, 1024, "%s\\xtray.conf", xchat_get_info(ph, "xchatdir")); + ConvertString(temp, TEMP_INI_FILE, 1024); + + // ok this one is really ugly + // it checks to see if the file exists in two locations + // X-Chat default config dir, if that fails it trys xchat\plugins\config + // if neither one exists it tries to create it in + // X-Chat default config dir, if that fails it trys xchat\plugins\config + // In either case it writes \xFF\xFE to the file ( on creation ) + // so that we can save unicode away messages WritePrivateProfile doesn't + // do this for us, though I think it really should + + if(FileExists(TEMP_INI_FILE)) + { + _tcscpy(XTRAY_INI_FILE, TEMP_INI_FILE); + } + else + { + if(FileExists(BACKUP_INI_FILE)) + { + _tcscpy(XTRAY_INI_FILE, BACKUP_INI_FILE); + } + else + { + HANDLE xTemp; + DWORD dwBytesTemp; + + if(xTemp = CreateFile(TEMP_INI_FILE, GENERIC_WRITE, FILE_SHARE_READ, NULL, CREATE_NEW, FILE_ATTRIBUTE_NORMAL, NULL)) + { + if(GetLastError() != ERROR_ALREADY_EXISTS) + { + WriteFile(xTemp, _T("\xFF\xFE"), 4, &dwBytesTemp, NULL); + } + CloseHandle(xTemp); + } + + if(FileExists(TEMP_INI_FILE)) + { + _tcscpy(XTRAY_INI_FILE, TEMP_INI_FILE); + } + else + { + HANDLE xBackup; + DWORD dwBytesBackup; + + if(xBackup = CreateFile(TEMP_INI_FILE, GENERIC_WRITE, FILE_SHARE_READ, NULL, CREATE_NEW, FILE_ATTRIBUTE_NORMAL, NULL)) + { + if(GetLastError() != ERROR_ALREADY_EXISTS) + { + WriteFile(xBackup, _T("\xFF\xFE"), 4, &dwBytesBackup, NULL); + } + + CloseHandle(xBackup); + } + + if(FileExists(BACKUP_INI_FILE)) + { + _tcscpy(XTRAY_INI_FILE, BACKUP_INI_FILE); + } + } + } + } + +#else + _tcscpy(XTRAY_INI_FILE, BACKUP_INI_FILE); +#endif + + WritePrivateProfileInt(szUser, _T("SETTINGS"), g_dwPrefs, XTRAY_INI_FILE); + WritePrivateProfileInt(szUser, _T("AOT"), g_iTime, XTRAY_INI_FILE); + WritePrivateProfileInt(szUser, _T("KEY"), g_hHotKey.key, XTRAY_INI_FILE); + WritePrivateProfileInt(szUser, _T("MOD"), g_hHotKey.mod, XTRAY_INI_FILE); + WritePrivateProfileString(szUser, _T("AWAY"), g_szAway, XTRAY_INI_FILE); +} + +void LoadPrefs() +{ + /**************************************************************************************************/ + /*********************** Our Settings Section *****************************************************/ + /**************************************************************************************************/ + DWORD dBuff = 257; + TCHAR szUser[257]; + + GetUserName(szUser, &dBuff); + + /**************************************************************************************************/ + /*********************** Test if the file exists, If it doesn't, Create It ************************/ + /**************************************************************************************************/ + TCHAR XTRAY_INI_FILE[1024]; + +#ifdef UNICODE + char temp[1024]; + TCHAR TEMP_INI_FILE[1024]; + + _snprintf(temp, 1024, "%s\\xtray.conf", xchat_get_info(ph, "xchatdir")); + ConvertString(temp, TEMP_INI_FILE, 1024); + + if(FileExists(TEMP_INI_FILE)) + { + _tcscpy(XTRAY_INI_FILE, TEMP_INI_FILE); + } + else + { + if(FileExists(BACKUP_INI_FILE)) + { + _tcscpy(XTRAY_INI_FILE, BACKUP_INI_FILE); + } + else + { + HANDLE xTemp; + DWORD dwBytesTemp; + + if(xTemp = CreateFile(TEMP_INI_FILE, GENERIC_WRITE, FILE_SHARE_READ, NULL, CREATE_NEW, FILE_ATTRIBUTE_NORMAL, NULL)) + { + if(GetLastError() != ERROR_ALREADY_EXISTS) + { + WriteFile(xTemp, _T("\xFF\xFE"), 4, &dwBytesTemp, NULL); + } + + CloseHandle(xTemp); + } + + if(FileExists(TEMP_INI_FILE)) + { + _tcscpy(XTRAY_INI_FILE, TEMP_INI_FILE); + } + else + { + HANDLE xBackup; + DWORD dwBytesBackup; + + if(xBackup = CreateFile(TEMP_INI_FILE, GENERIC_WRITE, FILE_SHARE_READ, NULL, CREATE_NEW, FILE_ATTRIBUTE_NORMAL, NULL)) + { + if(GetLastError() != ERROR_ALREADY_EXISTS) + { + WriteFile(xBackup, _T("\xFF\xFE"), 4, &dwBytesBackup, NULL); + } + + CloseHandle(xBackup); + } + + if(FileExists(BACKUP_INI_FILE)) + { + _tcscpy(XTRAY_INI_FILE, BACKUP_INI_FILE); + } + } + } + } + +#else + _tcscpy(XTRAY_INI_FILE, BACKUP_INI_FILE); +#endif + + /**************************************************************************************************/ + /*************************** Get the value for each of our preferances ****************************/ + /**************************************************************************************************/ + g_dwPrefs = GetPrivateProfileInt(szUser, _T("SETTINGS"), 0, XTRAY_INI_FILE); + + // backwards compatability + // also allows us to set defaults if its a new installation + // disable topic change, channel message and server notice by default + if(g_dwPrefs == 0) + { + g_dwPrefs |= (GetPrivateProfileInt(szUser, _T("HILIGHT"), 1, XTRAY_INI_FILE)<<1); + g_dwPrefs |= (GetPrivateProfileInt(szUser, _T("INVITE"), 1, XTRAY_INI_FILE)<<2); + /* g_dwPrefs |= (GetPrivateProfileInt(szUser, _T("TOPIC"), 1, XTRAY_INI_FILE)<<3); */ + g_dwPrefs |= (GetPrivateProfileInt(szUser, _T("BANNED"), 1, XTRAY_INI_FILE)<<4); + g_dwPrefs |= (GetPrivateProfileInt(szUser, _T("KICKED"), 1, XTRAY_INI_FILE)<<5); + g_dwPrefs |= (GetPrivateProfileInt(szUser, _T("CTCP"), 1, XTRAY_INI_FILE)<<6); + g_dwPrefs |= (GetPrivateProfileInt(szUser, _T("PMSG"), 1, XTRAY_INI_FILE)<<7); + g_dwPrefs |= (GetPrivateProfileInt(szUser, _T("KILLED"), 1, XTRAY_INI_FILE)<<8); + /* g_dwPrefs |= (GetPrivateProfileInt(szUser, _T("NOTICE"), 1, XTRAY_INI_FILE)<<9); */ + g_dwPrefs |= (GetPrivateProfileInt(szUser, _T("DISCONNECT"), 1, XTRAY_INI_FILE)<<10); + + g_dwPrefs |= (GetPrivateProfileInt(szUser, _T("AOM"), 0, XTRAY_INI_FILE)<<11); + g_dwPrefs |= (GetPrivateProfileInt(szUser, _T("TOT"), 1, XTRAY_INI_FILE)<<12); + g_dwPrefs |= (GetPrivateProfileInt(szUser, _T("AMAE"), 1, XTRAY_INI_FILE)<<13); + g_dwPrefs |= (GetPrivateProfileInt(szUser, _T("OSBWM"), 0, XTRAY_INI_FILE)<<14); + g_dwPrefs |= (GetPrivateProfileInt(szUser, _T("UWIOB"), 0, XTRAY_INI_FILE)<<15); + g_dwPrefs |= (GetPrivateProfileInt(szUser, _T("KAOI"), 0, XTRAY_INI_FILE)<<16); + g_dwPrefs |= (GetPrivateProfileInt(szUser, _T("MIOC"), 0, XTRAY_INI_FILE)<<17); + } + + g_hHotKey.key = GetPrivateProfileInt(szUser, _T("KEY"), 84, XTRAY_INI_FILE); + g_hHotKey.mod = GetPrivateProfileInt(szUser, _T("MOD"), (MOD_CONTROL | MOD_SHIFT), XTRAY_INI_FILE); + g_iTime = GetPrivateProfileInt(szUser, _T("AOT"), 5, XTRAY_INI_FILE); + + GetPrivateProfileString(szUser, _T("AWAY"), _T(""), g_szAway, 1024, XTRAY_INI_FILE); + + /**************************************************************************************************/ + /******************************** Register our hotkey with windows ********************************/ + /**************************************************************************************************/ + if(g_dwPrefs & (1<<PREF_UWIOB)) + { + RegisterHotKey(g_hHotkeyWnd, 1, g_hHotKey.mod, g_hHotKey.key); + } +} + +void CheckPrefs(HWND hwnd, int iDlg) +{ + /**************************************************************************************************/ + /**************** save the preferances based on the checkmarks/options ****************************/ + /**************************************************************************************************/ + switch(iDlg) + { + case IDD_EVENTS: + { + SetOption(hwnd, CHAN_HILIGHT, CHAN_HILIGHT); + SetOption(hwnd, CHAN_INVITE, CHAN_INVITE); + SetOption(hwnd, CHAN_TOPIC_CHANGE, CHAN_TOPIC_CHANGE); + SetOption(hwnd, CHAN_BANNED, CHAN_BANNED); + SetOption(hwnd, CHAN_KICKED, CHAN_KICKED); + SetOption(hwnd, CTCP_GENERIC, CTCP_GENERIC); + SetOption(hwnd, PMSG_RECEIVE, PMSG_RECEIVE); + SetOption(hwnd, SERV_KILLED, SERV_KILLED); + SetOption(hwnd, SERV_NOTICE, SERV_NOTICE); + SetOption(hwnd, SERV_DISCONNECT, SERV_DISCONNECT); + SetOption(hwnd, CHAN_MESSAGE, CHAN_MESSAGE); + } + break; + case IDD_ALERTS: + { + SetOption(hwnd, PREF_AMAE, PREF_AMAE); + SetOption(hwnd, PREF_OSBWM, PREF_OSBWM); + SetOption(hwnd, PREF_UWIOB, PREF_UWIOB); + SetOption(hwnd, PREF_KAOI, PREF_KAOI); + SetOption(hwnd, PREF_BLINK, PREF_BLINK); + + /**************************************************************************/ + /**************************************************************************/ + /**************************************************************************/ + TCHAR tTime[512]; + + GetWindowText(GetDlgItem(hwnd, IDC_ALERT_TIME), tTime, 511); + + g_iTime = _tstoi(tTime); + + /**************************************************************************/ + /**************** Get our Hotkey and save it **********/ + /**************** then remove the old hotkey and add the new one **********/ + /**************************************************************************/ + DWORD hHotkey; + hHotkey = SendDlgItemMessage(hwnd, IDC_ALERT_HOTKEY, HKM_GETHOTKEY, 0, 0); + + g_hHotKey.key = LOBYTE(hHotkey); + g_hHotKey.mod = HotkeyfToMod(HIBYTE(hHotkey)); + + if(IsDlgButtonChecked(hwnd, PREF_UWIOB) == BST_CHECKED) + { + UnregisterHotKey(g_hHotkeyWnd, 1); + RegisterHotKey(g_hHotkeyWnd, 1, g_hHotKey.mod, g_hHotKey.key); + } + else + { + UnregisterHotKey(g_hHotkeyWnd, 1); + } + + /*************************************************************************/ + /*********** Get and save the away msg and alert time ********************/ + /*************************************************************************/ + } + break; + case IDD_SETTINGS: + { + SetOption(hwnd, PREF_AOM, PREF_AOM); + SetOption(hwnd, PREF_TOT, PREF_TOT); + SetOption(hwnd, PREF_MIOC, PREF_MIOC); + SetOption(hwnd, PREF_DNSIT, PREF_DNSIT); + + GetDlgItemText(hwnd, IDC_AWAY_MSG, g_szAway, 511); + + if(g_dwPrefs & (1<<PREF_DNSIT)) + { + DWORD dwStyle; + dwStyle = GetWindowLong(g_hXchatWnd, GWL_STYLE); + dwStyle |= (1<<WS_CHILD); + SetWindowLongPtr(g_hXchatWnd, GWL_STYLE, (LONG_PTR)dwStyle); + SetWindowLongPtr(g_hXchatWnd, GWL_HWNDPARENT, (LONG_PTR)g_hHotkeyWnd); + } + else + { + DWORD dwStyle; + dwStyle = GetWindowLong(g_hXchatWnd, GWL_STYLE); + dwStyle &= ~(1<<WS_CHILD); + SetWindowLongPtr(g_hXchatWnd, GWL_STYLE, (LONG_PTR)dwStyle); + SetWindowLongPtr(g_hXchatWnd, GWL_HWNDPARENT, NULL); + } + } + break; + } +} + +void SetDialog(HWND hwnd, int iDlg) +{ + switch(iDlg) + { + case IDD_EVENTS: + { + SetCheck(hwnd, CHAN_HILIGHT, CHAN_HILIGHT); + SetCheck(hwnd, CHAN_INVITE, CHAN_INVITE); + SetCheck(hwnd, CHAN_TOPIC_CHANGE, CHAN_TOPIC_CHANGE); + SetCheck(hwnd, CHAN_BANNED, CHAN_BANNED); + SetCheck(hwnd, CHAN_KICKED, CHAN_KICKED); + SetCheck(hwnd, CTCP_GENERIC, CTCP_GENERIC); + SetCheck(hwnd, PMSG_RECEIVE, PMSG_RECEIVE); + SetCheck(hwnd, SERV_KILLED, SERV_KILLED); + SetCheck(hwnd, SERV_NOTICE, SERV_NOTICE); + SetCheck(hwnd, SERV_DISCONNECT, SERV_DISCONNECT); + SetCheck(hwnd, CHAN_MESSAGE, CHAN_MESSAGE); + } + break; + case IDD_SETTINGS: + { + SetCheck(hwnd, PREF_TOT, PREF_TOT); + SetCheck(hwnd, PREF_MIOC, PREF_MIOC); + SetCheck(hwnd, PREF_AOM, PREF_AOM); + SetCheck(hwnd, PREF_DNSIT, PREF_DNSIT); + + SetDlgItemText(hwnd, IDC_AWAY_MSG, g_szAway); + } + break; + case IDD_ALERTS: + { + + SetCheck(hwnd, PREF_BLINK, PREF_BLINK); + SetCheck(hwnd, PREF_OSBWM, PREF_OSBWM); + SetCheck(hwnd, PREF_UWIOB, PREF_UWIOB); + SetCheck(hwnd, PREF_KAOI, PREF_KAOI); + + /**********************************************************/ + /**********************************************************/ + /**********************************************************/ + if(SetCheck(hwnd, PREF_AMAE, PREF_AMAE) == false) + { + SetToggle(hwnd, PREF_OSBWM, PREF_AMAE, TRUE); + SetToggle(hwnd, PREF_UWIOB, PREF_AMAE, TRUE); + SetToggle(hwnd, PREF_KAOI, PREF_AMAE, TRUE); + SetToggle(hwnd, IDC_ALERT_TIME, PREF_AMAE, TRUE); + SetToggle(hwnd, IDC_ALERT_TIME_TEXT, PREF_AMAE, TRUE); + SetToggle(hwnd, IDC_ALERT_HOTKEY, PREF_AMAE, TRUE); + SetToggle(hwnd, IDC_ALERT_HOTKEY_TEXT, PREF_AMAE, TRUE); + } + else + { + + SetToggle(hwnd, IDC_ALERT_HOTKEY, PREF_UWIOB, TRUE); + SetToggle(hwnd, IDC_ALERT_HOTKEY_TEXT, PREF_UWIOB, TRUE); + SetToggle(hwnd, IDC_ALERT_TIME, PREF_KAOI, FALSE); + SetToggle(hwnd, IDC_ALERT_TIME_TEXT, PREF_KAOI, FALSE); + } + + /**********************************************************/ + /**********************************************************/ + /**********************************************************/ + TCHAR tTime[255]; + SendDlgItemMessage(hwnd, IDC_ALERT_TIME, WM_SETTEXT, 0, (LPARAM)_itot(g_iTime, tTime, 10)); + SendDlgItemMessage(hwnd, IDC_ALERT_HOTKEY, HKM_SETHOTKEY, MAKEWORD(g_hHotKey.key, ModToHotkeyf(g_hHotKey.mod)), 0); + } + break; + } +} + +int SetCheck(HWND hDialog, unsigned int uiCheckBox, unsigned int uiPref) +{ + if((g_dwPrefs & (1<<uiPref))) + { + CheckDlgButton(hDialog, uiCheckBox, BST_CHECKED); + return 1; + } + else + { + CheckDlgButton(hDialog, uiCheckBox, BST_UNCHECKED); + return 0; + } + + return 0; +} + +int SetToggle(HWND hDialog, unsigned int uiCheckBox, unsigned int uiTestbox, bool offeqoff) +{ + /**************************************************************************************************/ + /*********************** if(true) then if option is off turn toggle off ***************************/ + /*********************** if(false) then if option is off turn toggle on ***************************/ + /**************************************************************************************************/ + if(offeqoff) + { + if(IsDlgButtonChecked(hDialog, uiTestbox) == BST_CHECKED) + { + EnableWindow(GetDlgItem(hDialog, uiCheckBox), TRUE); + return 1; + } + else + { + EnableWindow(GetDlgItem(hDialog, uiCheckBox), FALSE); + return 0; + } + } + else + { + if(IsDlgButtonChecked(hDialog, uiTestbox) == BST_CHECKED) + { + EnableWindow(GetDlgItem(hDialog, uiCheckBox), FALSE); + return 1; + } + else + { + EnableWindow(GetDlgItem(hDialog, uiCheckBox), TRUE); + return 0; + } + } + + return 0; +} + +int SetOption(HWND hDialog, unsigned int uiCheckBox, unsigned int uiPref) +{ + if(IsDlgButtonChecked(hDialog, uiCheckBox) == BST_CHECKED) + { + g_dwPrefs |= (1<<uiPref); + } + else + { + g_dwPrefs &= ~(1<<uiPref); + } + + return (g_dwPrefs & (1<<uiPref)); +} + +int WritePrivateProfileIntA(char *szSection, char *szItem, int iData, char *szPath) +{ + char szData[33]; + itoa(iData, szData, 10); + return WritePrivateProfileStringA(szSection, szItem, szData, szPath); +} + +int WritePrivateProfileIntW(wchar_t *wszSection, wchar_t *wszItem, int iData, wchar_t *wszPath) +{ + wchar_t wszData[33]; + _itow(iData, wszData, 10); + return WritePrivateProfileStringW(wszSection, wszItem, wszData, wszPath); +} + +// For cleanup ( Closing windows and the such ) +void HoldClose() +{ + HANDLE hcThread; + DWORD dwThreadID; + hcThread = CreateThread(NULL, 0, HoldCloseThread, 0, 0, &dwThreadID); +} + +DWORD WINAPI HoldCloseThread(LPVOID lpParam) +{ + Sleep(1000); + PostMessage(g_hXchatWnd, WM_CLOSE, 0, 0); + return 0; +} + +bool FileExists(TCHAR *file) +{ + HANDLE hTemp = CreateFile(file, GENERIC_READ, FILE_SHARE_READ, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL); + int nRet = GetLastError(); + CloseHandle(hTemp); + + if(nRet == 0) + { + return true; + } + else + { + return false; + } + + return false; +} + +void ConvertString(const char *in, wchar_t *out, int size) +{ + MultiByteToWideChar(CP_UTF8, 0, in, -1, out, size); +} + +void ConvertString(const wchar_t *in, char *out, int size) +{ + WideCharToMultiByte(CP_UTF8, 0, in, (size - 1), out, size, NULL, NULL); +} + +void ConvertString(const char *in, char *out, int size) +{ + strncpy(out, in, size); +} + +void ErrorDebug(LPTSTR lpszFunction) +{ + TCHAR szBuf[80]; + LPVOID lpMsgBuf; + DWORD dw = GetLastError(); + + FormatMessage( + FORMAT_MESSAGE_ALLOCATE_BUFFER | + FORMAT_MESSAGE_FROM_SYSTEM, + NULL, + dw, + MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), + (LPTSTR) &lpMsgBuf, + 0, NULL ); + + _stprintf(szBuf, + _T("%s failed with error %d: %s"), + lpszFunction, dw, lpMsgBuf); + + MessageBox(NULL, szBuf, _T("Error"), MB_OK); + + LocalFree(lpMsgBuf); +} + diff --git a/plugins/xtray/utility.h b/plugins/xtray/utility.h new file mode 100644 index 00000000..6bee8aed --- /dev/null +++ b/plugins/xtray/utility.h @@ -0,0 +1,55 @@ +/* X-Tray + * Copyright (C) 2005 Michael Hotaling <Mike.Hotaling@SinisterDevelopments.com> + * + * X-Tray is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * X-Tray is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with X-Tray; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + */ + +#ifndef _H_UTILITY_H +#define _H_UTILITY_H + +WORD HotkeyfToMod (WORD); +WORD ModToHotkeyf (WORD); + +int SetOption (HWND, unsigned int, unsigned int); +int SetCheck (HWND, unsigned int, unsigned int); +int SetToggle (HWND, unsigned int, unsigned int, bool); +void ErrorDebug (LPTSTR lpszFunction); +void SetDialog (HWND, int); +void CheckPrefs (HWND, int); +bool FileExists (TCHAR *); +DWORD WINAPI HoldCloseThread (LPVOID); +void SavePrefs (int); +void LoadPrefs (); +void HoldClose (); + +void ConvertString(const char *in, wchar_t *out, int size); +void ConvertString(const wchar_t *in, char *out, int size); +void ConvertString(const char *in, char *out, int size); + +int WritePrivateProfileIntA(char *, char *, int, char *); +int WritePrivateProfileIntW(wchar_t *, wchar_t *, int, wchar_t *); + +#ifdef UNICODE +#define WritePrivateProfileInt WritePrivateProfileIntW +#else +#define WritePrivateProfileInt WritePrivateProfileIntA +#endif + +struct HOTKEY +{ + WORD key; + WORD mod; +}; +#endif \ No newline at end of file diff --git a/plugins/xtray/xchat.cpp b/plugins/xtray/xchat.cpp new file mode 100644 index 00000000..47ce46a9 --- /dev/null +++ b/plugins/xtray/xchat.cpp @@ -0,0 +1,320 @@ +/* X-Tray + * Copyright (C) 1998, 2005 Peter Zelezny, Michael Hotaling <Mike.Hotaling@SinisterDevelopments.com> + * + * X-Tray is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * X-Tray is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with X-Tray; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + */ + +#include <windows.h> +#include <vector> +#include <algorithm> +#include <stdio.h> +#include <tchar.h> + +#include "xchat-plugin.h" +#include "xtray.h" +#include "resource.h" +#include "xchat.h" +#include "utility.h" + +// from util.c of xchat source code ( slightly modified to fit X-Tray Syntax ) +char *xchat_strip_color (char *text) +{ + int nc = 0; + int i = 0; + int col = 0; + int len = strlen(text); + char *new_str = (char *)malloc(len + 2); + + while (len > 0) + { + if ((col && isdigit(*text) && (nc < 2)) || (col && isdigit(*(text+1)) && (nc < 3) && (*text == ','))) + { + nc++; + + if(*text == ',') + { + nc = 0; + } + } + else + { + col = 0; + + switch (*text) + { + case '\003': /*ATTR_COLOR: */ + { + col = 1; + nc = 0; + } + break; + case '\007': /*ATTR_BEEP: */ + case '\017': /*ATTR_RESET: */ + case '\026': /*ATTR_REVERSE: */ + case '\002': /*ATTR_BOLD: */ + case '\037': /*ATTR_UNDERLINE: */ + break; + default: + { + new_str[i] = *text; + i++; + } + break; + } + } + + text++; + len--; + } + + new_str[i] = 0; + + return new_str; +} + +void check_special_chars (char *cmd) +{ + int occur = 0; + int len = strlen (cmd); + int i = 0, j = 0; + char *buf; + + if (!len) + return; + + buf = (char *)malloc (len + 1); + + if (buf) + { + while (cmd[j]) + { + switch (cmd[j]) + { + case '%': + { + occur++; + + switch (cmd[j + 1]) + { + case 'R': + buf[i] = '\026'; + break; + case 'U': + buf[i] = '\037'; + break; + case 'B': + buf[i] = '\002'; + break; + case 'C': + buf[i] = '\003'; + break; + case 'O': + buf[i] = '\017'; + break; + case '%': + buf[i] = '%'; + break; + default: + buf[i] = '%'; + j--; + break; + } + + j++; + } + break; + default: + { + buf[i] = cmd[j]; + } + break; + } + + j++; + i++; + } + + buf[i] = 0; + + if (occur) + strcpy (cmd, buf); + + free (buf); + } +} + +void xchat_globally_away(TCHAR *tszAway) +{ + char szTemp[512]; + char szAway[512]; + + ConvertString(tszAway, szAway, 512); + _snprintf(szTemp, 512, "ALLSERV AWAY %s\0", szAway); + check_special_chars(szTemp); + xchat_exec(szTemp); +} + +void xchat_away(TCHAR *tszAway) +{ + char szTemp[512]; + char szAway[512]; + + ConvertString(tszAway, szAway, 512); + _snprintf(szTemp, 512, szAway); + check_special_chars(szTemp); + xchat_commandf(ph, "AWAY %s\0", szTemp); +} + +void xchat_globally_back() +{ + std::vector<int> xs; + std::vector<int>::iterator xsi; + xchat_list *xl = xchat_list_get(ph, "channels"); + + if(xl) + { + while(xchat_list_next(ph, xl)) + { + xsi = std::find(xs.begin(), xs.end(), xchat_list_int(ph, xl, "id")); + + if((xsi == xs.end()) && + ((strlen(xchat_list_str(ph, xl, "server")) > 0) || + (strlen(xchat_list_str(ph, xl, "channel")) > 0))) + { + xs.push_back(xchat_list_int(ph, xl, "id")); + xchat_set_context(ph, (xchat_context *)xchat_list_str(ph, xl, "context")); + xchat_back(); + } + } + + xchat_list_free(ph, xl); + } +} + + + +void xchat_back() +{ + if(xchat_get_info(ph, "away")) + { + xchat_command(ph, "BACK"); + } +} + +HMENU setServerMenu() +{ + HMENU sTemp = CreateMenu(); + TCHAR wszServer[128]; + TCHAR wszNick[128]; + TCHAR wszMenuEntry[256]; + + std::vector<int> xs; + std::vector<int>::iterator xsi; + xchat_list *xl = xchat_list_get(ph, "channels"); + + AppendMenu(sTemp, MF_STRING, ACT_AWAY, _T("Set Globally Away")); + AppendMenu(sTemp, MF_STRING, ACT_BACK, _T("Set Globally Back")); + AppendMenu(sTemp, MF_SEPARATOR, 0, NULL); + + if(xl) + { + while(xchat_list_next(ph, xl)) + { + xsi = std::find(xs.begin(), xs.end(), xchat_list_int(ph, xl, "id")); + + if( (xsi == xs.end()) && + ((strlen(xchat_list_str(ph, xl, "server")) > 0) || + (strlen(xchat_list_str(ph, xl, "channel")) > 0))) + { + xchat_set_context(ph, (xchat_context *)xchat_list_str(ph, xl, "context")); + xs.push_back(xchat_list_int(ph, xl, "id")); + + char *network = _strdup(xchat_list_str(ph, xl, "network")); + char *server = _strdup(xchat_list_str(ph, xl, "server")); + char *nick = _strdup(xchat_get_info(ph, "nick")); + + if(network != NULL) + { + ConvertString(network, wszServer, 128); + } + else + { + ConvertString(server, wszServer, 128); + } + + if(server != NULL) + { + ConvertString(nick, wszNick, 128); + _sntprintf(wszMenuEntry, 256, _T("%s @ %s\0"), wszNick, wszServer); + + if(!xchat_get_info(ph, "away")) + { + AppendMenu(sTemp, MF_STRING, (xchat_list_int(ph, xl, "id") + 1), wszMenuEntry); + } + else + { + AppendMenu(sTemp, (MF_CHECKED | MF_STRING), (xchat_list_int(ph, xl, "id") + 1), wszMenuEntry); + } + } + + free(network); + free(server); + free(nick); + } + } + + xchat_list_free(ph, xl); + } + + return sTemp; +} + +struct _xchat_context *xchat_find_server(int find_id) +{ + xchat_context *xc; + xchat_list *xl = xchat_list_get(ph, "channels"); + int id; + + if(!xl) + return NULL; + + while(xchat_list_next(ph, xl)) + { + id = xchat_list_int(ph, xl, "id"); + + if(id == -1) + { + return NULL; + } + else if(id == find_id) + { + xc = (xchat_context *)xchat_list_str(ph, xl, "context"); + + xchat_list_free(ph, xl); + + return xc; + } + } + + xchat_list_free(ph, xl); + + return NULL; +} + +void xchat_exec(char *command) +{ + xchat_set_context(ph, xchat_find_context(ph, NULL, NULL)); + xchat_command(ph, command); +} \ No newline at end of file diff --git a/plugins/xtray/xchat.h b/plugins/xtray/xchat.h new file mode 100644 index 00000000..76452aeb --- /dev/null +++ b/plugins/xtray/xchat.h @@ -0,0 +1,32 @@ +/* X-Tray + * Copyright (C) 2005 Michael Hotaling <Mike.Hotaling@SinisterDevelopments.com> + * + * X-Tray is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * X-Tray is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with X-Tray; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + */ + +#ifndef _H_XCHAT_H +#define _H_XCHAT_H + +void xchat_exec (char *); +char *xchat_strip_color (char *); +void xchat_parse (char *); +struct _xchat_context *xchat_find_server (int); +void xchat_globally_away (TCHAR *); +void xchat_away (TCHAR *); +void xchat_globally_back (); +void xchat_back (); +HMENU setServerMenu (); + +#endif \ No newline at end of file diff --git a/plugins/xtray/xtray.cpp b/plugins/xtray/xtray.cpp new file mode 100644 index 00000000..ec5e34f8 --- /dev/null +++ b/plugins/xtray/xtray.cpp @@ -0,0 +1,219 @@ +/* X-Tray + * Copyright (C) 2005 Michael Hotaling <Mike.Hotaling@SinisterDevelopments.com> + * + * X-Tray is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * X-Tray is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with X-Tray; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + */ + +#define _WIN32_IE 0x0601 + +#include <windows.h> +#include <list> +#include <string> +#include <shobjidl.h> + +#include "xchat-plugin.h" +#include "resource.h" +#include "callbacks.h" +#include "utility.h" +#include "xtray.h" +#include "sdTray.h" +#include "sdAlerts.h" + +/*****************************************************/ +/**** Don't want to pollute the namespace do we? *****/ +/*****************************************************/ +std::list<xchat_hook *> g_vHooks; + +/*****************************************************/ +/************ Global Identifiers *********************/ +/*****************************************************/ +WNDPROC g_hOldProc; +xchat_plugin *ph; + +/*****************************************************/ +/***************** Resources *************************/ +/*****************************************************/ +HWND g_hXchatWnd; +HWND g_hHotkeyWnd; +HWND g_hPrefDlg; +HMENU g_hTrayMenu; +HICON g_hIcons[11]; +HANDLE g_hInstance; +/*****************************************************/ +/***************** Preferences ***********************/ +/*****************************************************/ +unsigned int g_dwPrefs; +TCHAR g_szAway[512]; +int g_iTime; + + +BOOL WINAPI DllMain(HANDLE hModule, DWORD fdwReason, LPVOID lpVoid) +{ + if((fdwReason == DLL_PROCESS_ATTACH) || (fdwReason == DLL_THREAD_ATTACH)) + { + g_hInstance = hModule; + } + + return TRUE; +} + +int xchat_plugin_init(xchat_plugin *plugin_handle, char **plugin_name, char **plugin_desc, char **plugin_version, char *arg) +{ + ph = plugin_handle; + + *plugin_name = "X-Tray"; + *plugin_desc = "Minimize XChat to the Windows system tray"; + *plugin_version = "1.2.4"; + + /***************************************************************************************************************************/ + /************************* Load our preferances from xTray.ini *************************************************************/ + /***************************************************************************************************************************/ + LoadPrefs(); + + /***************************************************************************************************************************/ + /************************* Finds the xChat window and saves it for later use ***********************************************/ + /***************************************************************************************************************************/ + g_hXchatWnd = (HWND)xchat_get_info(ph, "win_ptr"); + + if(g_hXchatWnd == NULL) + { + EnumThreadWindows(GetCurrentThreadId(), EnumWindowsProc, 0); + } + + g_hOldProc = (WNDPROC)GetWindowLongPtr(g_hXchatWnd, GWLP_WNDPROC); + SetWindowLongPtr(g_hXchatWnd, GWLP_WNDPROC, (LONG_PTR)WindowProc); + + /***************************************************************************************************************************/ + /************************* Grab the xChat Icon, Load our menu, create the window to receive the hotkey messages ***********/ + /************************* and register the windows message so we know if explorer crashes ***********/ + /***************************************************************************************************************************/ + g_hTrayMenu = GetSubMenu(LoadMenu((HINSTANCE)g_hInstance, MAKEINTRESOURCE(IDR_TRAY_MENU)), 0); + g_hHotkeyWnd = CreateDialog((HINSTANCE)g_hInstance, MAKEINTRESOURCE(IDD_ALERT), NULL, (DLGPROC)HotKeyProc); + g_hPrefDlg = CreateDialog((HINSTANCE)g_hInstance, MAKEINTRESOURCE(IDD_PREF), g_hXchatWnd, (DLGPROC)PrefProc); + + g_hIcons[0] = (HICON)LoadImage((HINSTANCE)g_hInstance, MAKEINTRESOURCE(ICO_XCHAT), IMAGE_ICON, 16, 16, LR_DEFAULTCOLOR); + g_hIcons[1] = (HICON)LoadImage((HINSTANCE)g_hInstance, MAKEINTRESOURCE(ICO_CHANMSG), IMAGE_ICON, 16, 16, LR_DEFAULTCOLOR); + g_hIcons[2] = (HICON)LoadImage((HINSTANCE)g_hInstance, MAKEINTRESOURCE(ICO_HIGHLIGHT), IMAGE_ICON, 16, 16, LR_DEFAULTCOLOR); + g_hIcons[5] = (HICON)LoadImage((HINSTANCE)g_hInstance, MAKEINTRESOURCE(ICO_BANNED), IMAGE_ICON, 16, 16, LR_DEFAULTCOLOR); + g_hIcons[6] = (HICON)LoadImage((HINSTANCE)g_hInstance, MAKEINTRESOURCE(ICO_KICKED), IMAGE_ICON, 16, 16, LR_DEFAULTCOLOR); + g_hIcons[8] = (HICON)LoadImage((HINSTANCE)g_hInstance, MAKEINTRESOURCE(ICO_PMSG), IMAGE_ICON, 16, 16, LR_DEFAULTCOLOR); + g_hIcons[10]= (HICON)LoadImage((HINSTANCE)g_hInstance, MAKEINTRESOURCE(ICO_SNOTICE), IMAGE_ICON, 16, 16, LR_DEFAULTCOLOR); + g_hIcons[11]= (HICON)LoadImage((HINSTANCE)g_hInstance, MAKEINTRESOURCE(ICO_DISCONNECTED), IMAGE_ICON, 16, 16, LR_DEFAULTCOLOR); + + /***************************************************************************************************************************/ + /************************* Add our icon to the tray ************************************************************************/ + /***************************************************************************************************************************/ + char szVersion[64]; + _snprintf(szVersion, 64, "XChat-WDK %s", xchat_get_info(ph, "wdk_version")); + AddIcon(g_hXchatWnd, 1, g_hIcons[0], szVersion, (NIF_ICON | NIF_MESSAGE | NIF_TIP), WM_TRAYMSG); + + /***************************************************************************************************************************/ + /***************************************************************************************************************************/ + /***************************************************************************************************************************/ + if(g_dwPrefs & (1<<PREF_DNSIT)) + { + DWORD dwStyle; + dwStyle = GetWindowLong(g_hXchatWnd, GWL_STYLE); + dwStyle |= (1<<WS_CHILD); + SetWindowLongPtr(g_hXchatWnd, GWL_STYLE, (LONG_PTR)dwStyle); + SetWindowLongPtr(g_hXchatWnd, GWL_HWNDPARENT, (LONG_PTR)g_hHotkeyWnd); + } + + /***************************************************************************************************************************/ + /************************* Set our hooks and save them for later so we can unhook them *************************************/ + /***************************************************************************************************************************/ + g_vHooks.push_back(xchat_hook_print(ph, "Channel Msg Hilight", XCHAT_PRI_NORM, event_cb, (void *)CHAN_HILIGHT)); + g_vHooks.push_back(xchat_hook_print(ph, "Channel Message", XCHAT_PRI_NORM, event_cb, (void *)CHAN_MESSAGE)); + g_vHooks.push_back(xchat_hook_print(ph, "Topic Change", XCHAT_PRI_NORM, event_cb, (void *)CHAN_TOPIC_CHANGE)); + g_vHooks.push_back(xchat_hook_print(ph, "Channel Action Hilight", XCHAT_PRI_NORM, event_cb, (void *)CHAN_HILIGHT)); + g_vHooks.push_back(xchat_hook_print(ph, "Channel INVITE", XCHAT_PRI_NORM, event_cb, (void *)CHAN_INVITE)); + g_vHooks.push_back(xchat_hook_print(ph, "You Kicked", XCHAT_PRI_NORM, event_cb, (void *)CHAN_KICKED)); + g_vHooks.push_back(xchat_hook_print(ph, "Banned", XCHAT_PRI_NORM, event_cb, (void *)CHAN_BANNED)); + g_vHooks.push_back(xchat_hook_print(ph, "CTCP Generic", XCHAT_PRI_NORM, event_cb, (void *)CTCP_GENERIC)); + g_vHooks.push_back(xchat_hook_print(ph, "Private Message", XCHAT_PRI_NORM, event_cb, (void *)PMSG_RECEIVE)); + g_vHooks.push_back(xchat_hook_print(ph, "Private Message to Dialog", XCHAT_PRI_NORM, event_cb, (void *)PMSG_RECEIVE)); + g_vHooks.push_back(xchat_hook_print(ph, "Disconnected", XCHAT_PRI_NORM, event_cb, (void *)SERV_DISCONNECT)); + g_vHooks.push_back(xchat_hook_print(ph, "Killed", XCHAT_PRI_NORM, event_cb, (void *)SERV_KILLED)); + g_vHooks.push_back(xchat_hook_print(ph, "Notice", XCHAT_PRI_NORM, event_cb, (void *)SERV_NOTICE)); + g_vHooks.push_back(xchat_hook_command(ph, "tray_alert", XCHAT_PRI_NORM, command_cb, "Create an Alert", NULL)); + + return 1; +} + +int xchat_plugin_deinit(xchat_plugin *plugin_handle) +{ + /******************************************/ + /****** Remove the Icon from the tray *****/ + /******************************************/ + StopBlink(g_hXchatWnd, 1, g_hIcons[0]); + RemoveIcon(g_hXchatWnd, 1); + + /*******************************************/ + /*******************************************/ + /*******************************************/ + if(g_dwPrefs & (1<<PREF_DNSIT)) + { + DWORD dwStyle; + dwStyle = GetWindowLong(g_hXchatWnd, GWL_STYLE); + dwStyle &= ~(1<<WS_CHILD); + SetWindowLongPtr(g_hXchatWnd, GWL_STYLE, (LONG_PTR)dwStyle); + SetWindowLongPtr(g_hXchatWnd, GWL_HWNDPARENT, NULL); + } + + /******************************************/ + /****** Unload our resources **************/ + /******************************************/ + DestroyMenu(g_hTrayMenu); + + for(int i = 0; i <= 11; i++) + { + DestroyIcon(g_hIcons[i]); + } + + /******************************************/ + /****** Remove our window hook ************/ + /******************************************/ + SetWindowLongPtr(g_hXchatWnd, GWLP_WNDPROC, (LONG_PTR)g_hOldProc); + + /******************************************/ + /****** Remove our hotkey, and destroy ****/ + /****** the window that receives its ****/ + /****** messages ****/ + /******************************************/ + UnregisterHotKey(g_hHotkeyWnd, 1); + DestroyWindow(g_hHotkeyWnd); + DestroyWindow(g_hPrefDlg); + + /******************************************/ + /************* Clean up Isle 7 ************/ + /******************************************/ + if(sdAlertNum()) + { + sdCloseAlerts(); + } + /******************************************/ + /****** remove our xchat_hook_*s **********/ + /******************************************/ + while(!g_vHooks.empty()) + { + if(g_vHooks.back() != NULL) + { + xchat_unhook(ph, g_vHooks.back()); + } + g_vHooks.pop_back(); + } + + return 1; +} diff --git a/plugins/xtray/xtray.def b/plugins/xtray/xtray.def new file mode 100644 index 00000000..77670bf2 --- /dev/null +++ b/plugins/xtray/xtray.def @@ -0,0 +1,3 @@ +EXPORTS +xchat_plugin_init +xchat_plugin_deinit diff --git a/plugins/xtray/xtray.h b/plugins/xtray/xtray.h new file mode 100644 index 00000000..56323cf2 --- /dev/null +++ b/plugins/xtray/xtray.h @@ -0,0 +1,77 @@ +/* X-Tray + * Copyright (C) 2005 Michael Hotaling <Mike.Hotaling@SinisterDevelopments.com> + * + * X-Tray is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * X-Tray is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with X-Tray; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + */ + +#ifndef _XTRAY_H +#define _XTRAY_H + +/******************** Globals *************************/ +extern HWND g_hXchatWnd; +extern HWND g_hHotkeyWnd; +extern HWND g_hPrefDlg; +extern HMENU g_hTrayMenu; +extern HICON g_hIcons[11]; +extern HANDLE g_hInstance; +extern unsigned int g_dwPrefs; +extern TCHAR g_szAway[512]; +extern int g_iTime; +extern WNDPROC g_hOldProc; +extern struct _xchat_plugin *ph; +/******************************************************/ + +/******************** Messages ************************/ +#define WM_TRAYMSG WM_APP +/******************************************************/ + +/********************* Events *************************/ +#define CHAN_HILIGHT 1 +#define CHAN_INVITE 2 +#define CHAN_TOPIC_CHANGE 3 +#define CHAN_BANNED 4 +#define CHAN_KICKED 5 + +#define CTCP_GENERIC 6 +#define PMSG_RECEIVE 7 + +#define SERV_KILLED 8 +#define SERV_NOTICE 9 +#define SERV_DISCONNECT 10 + +/* new events */ +#define CHAN_MESSAGE 21 + +#define PREF_AOM 11 // away on minimize +#define PREF_TOT 12 // Tray on Taskbar +#define PREF_AMAE 13 // alert me about events +#define PREF_OSBWM 14 // Only Show Balloon When Minimized +#define PREF_UWIOB 15 // Use Window Instead of Balloon +#define PREF_KAOI 16 // Keep alerts open indefinately +#define PREF_MIOC 17 // Minimize instead of close +#define PREF_BLINK 18 // blink icon +#define PREF_CICO 19 // change icon - not implemented +#define PREF_DNSIT 20 // Do not show in taskbar +/******************************************************/ +#endif + +#ifdef _WIN64 +/* use replacement with the same value, and use SetWindowLongPtr instead + of SetWindowLong. more info: + + http://msdn.microsoft.com/en-us/library/ms633591.aspx + http://msdn.microsoft.com/en-us/library/ms644898.aspx */ +#define GWL_HWNDPARENT GWLP_HWNDPARENT +#endif diff --git a/plugins/xtray/xtray.vcxproj b/plugins/xtray/xtray.vcxproj new file mode 100644 index 00000000..aa455a8f --- /dev/null +++ b/plugins/xtray/xtray.vcxproj @@ -0,0 +1,134 @@ +<?xml version="1.0" encoding="utf-8"?> +<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <ItemGroup Label="ProjectConfigurations"> + <ProjectConfiguration Include="Release|Win32"> + <Configuration>Release</Configuration> + <Platform>Win32</Platform> + </ProjectConfiguration> + <ProjectConfiguration Include="Release|x64"> + <Configuration>Release</Configuration> + <Platform>x64</Platform> + </ProjectConfiguration> + </ItemGroup> + <PropertyGroup Label="Globals"> + <ProjectGuid>{3024CF36-85E5-4E00-9608-7002E2C7EF14}</ProjectGuid> + <Keyword>Win32Proj</Keyword> + <RootNamespace>xtray</RootNamespace> + </PropertyGroup> + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" /> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration"> + <ConfigurationType>DynamicLibrary</ConfigurationType> + <UseDebugLibraries>false</UseDebugLibraries> + <WholeProgramOptimization>true</WholeProgramOptimization> + <CharacterSet>Unicode</CharacterSet> + <PlatformToolset>WDK7</PlatformToolset> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration"> + <ConfigurationType>DynamicLibrary</ConfigurationType> + <UseDebugLibraries>false</UseDebugLibraries> + <WholeProgramOptimization>true</WholeProgramOptimization> + <CharacterSet>Unicode</CharacterSet> + <PlatformToolset>WDK7</PlatformToolset> + </PropertyGroup> + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" /> + <ImportGroup Label="ExtensionSettings"> + </ImportGroup> + <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> + <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> + <Import Project="..\..\win32\xchat.props" /> + </ImportGroup> + <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets"> + <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> + <Import Project="..\..\win32\xchat.props" /> + </ImportGroup> + <PropertyGroup Label="UserMacros" /> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> + <LinkIncremental>false</LinkIncremental> + <OutDir>$(SolutionDir)build\$(PlatformName)\bin</OutDir> + <IntDir>$(SolutionDir)build\$(PlatformName)\obj\$(ProjectName)</IntDir> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'"> + <LinkIncremental>false</LinkIncremental> + <OutDir>$(SolutionDir)build\$(PlatformName)\bin</OutDir> + <IntDir>$(SolutionDir)build\$(PlatformName)\obj\$(ProjectName)</IntDir> + </PropertyGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> + <ClCompile> + <WarningLevel>Level1</WarningLevel> + <PrecompiledHeader> + </PrecompiledHeader> + <Optimization>MaxSpeed</Optimization> + <FunctionLevelLinking>true</FunctionLevelLinking> + <IntrinsicFunctions>true</IntrinsicFunctions> + <PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;_USRDLL;XTRAY_EXPORTS;_STL70_;_STATIC_CPPLIB;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <MultiProcessorCompilation>true</MultiProcessorCompilation> + <AdditionalIncludeDirectories>..;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> + </ClCompile> + <Link> + <SubSystem>Windows</SubSystem> + <GenerateDebugInformation>true</GenerateDebugInformation> + <EnableCOMDATFolding>true</EnableCOMDATFolding> + <OptimizeReferences>true</OptimizeReferences> + <ModuleDefinitionFile>xtray.def</ModuleDefinitionFile> + <AdditionalDependencies>ntstc_msvcrt.lib;%(AdditionalDependencies)</AdditionalDependencies> + </Link> + </ItemDefinitionGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'"> + <ClCompile> + <WarningLevel>Level1</WarningLevel> + <PrecompiledHeader> + </PrecompiledHeader> + <Optimization>MaxSpeed</Optimization> + <FunctionLevelLinking>true</FunctionLevelLinking> + <IntrinsicFunctions>true</IntrinsicFunctions> + <PreprocessorDefinitions>WIN32;_WIN64;NDEBUG;_WINDOWS;_USRDLL;XTRAY_EXPORTS;_STL70_;_STATIC_CPPLIB;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <MultiProcessorCompilation>true</MultiProcessorCompilation> + <AdditionalIncludeDirectories>..;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> + </ClCompile> + <Link> + <SubSystem>Windows</SubSystem> + <GenerateDebugInformation>true</GenerateDebugInformation> + <EnableCOMDATFolding>true</EnableCOMDATFolding> + <OptimizeReferences>true</OptimizeReferences> + <ModuleDefinitionFile>xtray.def</ModuleDefinitionFile> + <AdditionalDependencies>ntstc_msvcrt.lib;%(AdditionalDependencies)</AdditionalDependencies> + </Link> + </ItemDefinitionGroup> + <ItemGroup> + <None Include="bitmaps\sd.bmp" /> + <None Include="icons\banned.ico" /> + <None Include="icons\chan_msg.ico" /> + <None Include="icons\disconnected.ico" /> + <None Include="icons\highlight-1-3.ico" /> + <None Include="icons\highlight.ico" /> + <None Include="icons\kicked.ico" /> + <None Include="icons\priv_msg-1-2-2.ico" /> + <None Include="icons\sd.ico" /> + <None Include="icons\server_notice.ico" /> + <None Include="icons\xchat.ico" /> + <None Include="xtray.def" /> + </ItemGroup> + <ItemGroup> + <ResourceCompile Include="resource.rc" /> + </ItemGroup> + <ItemGroup> + <ClCompile Include="callbacks.cpp" /> + <ClCompile Include="sdAlerts.cpp" /> + <ClCompile Include="sdTray.cpp" /> + <ClCompile Include="utility.cpp" /> + <ClCompile Include="xchat.cpp" /> + <ClCompile Include="xtray.cpp" /> + </ItemGroup> + <ItemGroup> + <ClInclude Include="callbacks.h" /> + <ClInclude Include="resource.h" /> + <ClInclude Include="sdAlerts.h" /> + <ClInclude Include="sdTray.h" /> + <ClInclude Include="utility.h" /> + <ClInclude Include="xchat.h" /> + <ClInclude Include="xtray.h" /> + </ItemGroup> + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" /> + <ImportGroup Label="ExtensionTargets"> + </ImportGroup> +</Project> \ No newline at end of file diff --git a/plugins/xtray/xtray.vcxproj.filters b/plugins/xtray/xtray.vcxproj.filters new file mode 100644 index 00000000..3b909983 --- /dev/null +++ b/plugins/xtray/xtray.vcxproj.filters @@ -0,0 +1,109 @@ +<?xml version="1.0" encoding="utf-8"?> +<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <ItemGroup> + <Filter Include="Source Files"> + <UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier> + <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions> + </Filter> + <Filter Include="Header Files"> + <UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier> + <Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions> + </Filter> + <Filter Include="Resource Files"> + <UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier> + <Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms</Extensions> + </Filter> + <Filter Include="Resource Files\bitmaps"> + <UniqueIdentifier>{448b49a5-e68b-451e-bfbc-0855da024b2e}</UniqueIdentifier> + </Filter> + <Filter Include="Resource Files\icons"> + <UniqueIdentifier>{8345128a-0635-43d6-9115-a85ad9c77ee2}</UniqueIdentifier> + </Filter> + </ItemGroup> + <ItemGroup> + <None Include="xtray.def"> + <Filter>Resource Files</Filter> + </None> + <None Include="bitmaps\sd.bmp"> + <Filter>Resource Files\bitmaps</Filter> + </None> + <None Include="icons\banned.ico"> + <Filter>Resource Files\icons</Filter> + </None> + <None Include="icons\chan_msg.ico"> + <Filter>Resource Files\icons</Filter> + </None> + <None Include="icons\disconnected.ico"> + <Filter>Resource Files\icons</Filter> + </None> + <None Include="icons\highlight.ico"> + <Filter>Resource Files\icons</Filter> + </None> + <None Include="icons\highlight-1-3.ico"> + <Filter>Resource Files\icons</Filter> + </None> + <None Include="icons\kicked.ico"> + <Filter>Resource Files\icons</Filter> + </None> + <None Include="icons\priv_msg-1-2-2.ico"> + <Filter>Resource Files\icons</Filter> + </None> + <None Include="icons\sd.ico"> + <Filter>Resource Files\icons</Filter> + </None> + <None Include="icons\server_notice.ico"> + <Filter>Resource Files\icons</Filter> + </None> + <None Include="icons\xchat.ico"> + <Filter>Resource Files\icons</Filter> + </None> + </ItemGroup> + <ItemGroup> + <ResourceCompile Include="resource.rc"> + <Filter>Resource Files</Filter> + </ResourceCompile> + </ItemGroup> + <ItemGroup> + <ClCompile Include="callbacks.cpp"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="sdAlerts.cpp"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="sdTray.cpp"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="utility.cpp"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="xchat.cpp"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="xtray.cpp"> + <Filter>Source Files</Filter> + </ClCompile> + </ItemGroup> + <ItemGroup> + <ClInclude Include="callbacks.h"> + <Filter>Header Files</Filter> + </ClInclude> + <ClInclude Include="resource.h"> + <Filter>Header Files</Filter> + </ClInclude> + <ClInclude Include="sdAlerts.h"> + <Filter>Header Files</Filter> + </ClInclude> + <ClInclude Include="sdTray.h"> + <Filter>Header Files</Filter> + </ClInclude> + <ClInclude Include="utility.h"> + <Filter>Header Files</Filter> + </ClInclude> + <ClInclude Include="xchat.h"> + <Filter>Header Files</Filter> + </ClInclude> + <ClInclude Include="xtray.h"> + <Filter>Header Files</Filter> + </ClInclude> + </ItemGroup> +</Project> \ No newline at end of file diff --git a/plugins/xtray/xtray.vcxproj.user b/plugins/xtray/xtray.vcxproj.user new file mode 100644 index 00000000..695b5c78 --- /dev/null +++ b/plugins/xtray/xtray.vcxproj.user @@ -0,0 +1,3 @@ +<?xml version="1.0" encoding="utf-8"?> +<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> +</Project> \ No newline at end of file diff --git a/po/de.po b/po/de.po index 48647864..09e4d79d 100644 --- a/po/de.po +++ b/po/de.po @@ -6,244 +6,242 @@ # Christian Meyer <linux@chrisim.de>, 2000. # Matthias Warkus <mawa@iname.com>, 1999. # Tamer Fahmy <e9526976@stud2.tuwien.ac.at>, 1999. +# Jakob Kramer <jakob.kramer@gmx.de>, 2012. # msgid "" msgstr "" -"Project-Id-Version: xchat 2.8.4\n" -"POT-Creation-Date: 2007-06-24 13:05+1000\n" -"PO-Revision-Date: 2007-06-24 18:36+0100\n" -"Last-Translator: Hauke Hagenhoff <Hauke.Hagenhoff@gmx.de>\n" +"Project-Id-Version: xchat 2.8.8\n" +"Report-Msgid-Bugs-To: www.xchat-wdk.org\n" +"POT-Creation-Date: 2012-04-10 13:22+0200\n" +"PO-Revision-Date: 2012-04-10 18:00+0200\n" +"Last-Translator: Jakob Kramer <jakob.kramer@gmx.de>\n" "Language-Team: German <translation-team-de@lists.sourceforge.net>\n" +"Language: de\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -#: src/common/cfgfiles.c:354 +#: src/common/cfgfiles.c:367 msgid "Cannot create ~/.xchat2" -msgstr "Kann ~/.xchat2 nicht erzeugen" +msgstr "»~/.xchat2« konnte nicht erzeugt werden" -#: src/common/cfgfiles.c:712 +#: src/common/cfgfiles.c:759 msgid "I'm busy" msgstr "Ich bin beschäftigt" -#: src/common/cfgfiles.c:713 +#: src/common/cfgfiles.c:760 msgid "Leaving" msgstr "Verlassend" -#: src/common/cfgfiles.c:760 +#: src/common/cfgfiles.c:811 msgid "" "* Running IRC as root is stupid! You should\n" " create a User Account and use that to login.\n" msgstr "" -"* IRC als Root laufen zu lassen ist dumm! Du solltest\n" +"* IRC als Root laufen zu lassen ist dumm! Sie sollten\n" " ein Benutzerkonto anlegen und dieses zum Einloggen verwenden.\n" -#: src/common/dcc.c:67 +#: src/common/dcc.c:71 msgid "Waiting" msgstr "Wartend" -#: src/common/dcc.c:68 +#: src/common/dcc.c:72 msgid "Active" msgstr "Aktiv" -#: src/common/dcc.c:69 +#: src/common/dcc.c:73 msgid "Failed" msgstr "Gescheitert" -#: src/common/dcc.c:70 +#: src/common/dcc.c:74 msgid "Done" msgstr "Erledigt" -#: src/common/dcc.c:71 -#: src/fe-gtk/menu.c:797 +#: src/common/dcc.c:75 src/fe-gtk/menu.c:943 msgid "Connect" msgstr "Verbindung" -#: src/common/dcc.c:72 +#: src/common/dcc.c:76 msgid "Aborted" msgstr "Abgebrochen" -#: src/common/dcc.c:1886 -#: src/common/outbound.c:2452 +#: src/common/dcc.c:1890 src/common/outbound.c:2449 #, c-format msgid "Cannot access %s\n" msgstr "Kann nicht auf %s zugreifen\n" -#: src/common/dcc.c:1887 -#: src/common/text.c:1164 -#: src/common/text.c:1202 -#: src/common/text.c:1213 -#: src/common/text.c:1220 -#: src/common/text.c:1233 -#: src/common/text.c:1250 -#: src/common/text.c:1350 -#: src/common/util.c:352 +#: src/common/dcc.c:1891 src/common/text.c:1357 src/common/text.c:1395 +#: src/common/text.c:1406 src/common/text.c:1413 src/common/text.c:1426 +#: src/common/text.c:1443 src/common/text.c:1543 src/common/util.c:358 msgid "Error" msgstr "Fehler" -#: src/common/dcc.c:2375 +#: src/common/dcc.c:2379 #, c-format msgid "%s is offering \"%s\". Do you want to accept?" -msgstr "%s bietet \"%s\" an. Willst Du annehmen?" +msgstr "%s bietet die Datei »%s« an. Wollen Sie annehmen?" -#: src/common/dcc.c:2586 +#: src/common/dcc.c:2590 msgid "No active DCCs\n" msgstr "Keine aktiven DCCs\n" -#: src/common/ignore.c:120 -#: src/common/ignore.c:124 -#: src/common/ignore.c:128 -#: src/common/ignore.c:132 -#: src/common/ignore.c:136 -#: src/common/ignore.c:140 -#: src/common/ignore.c:144 +#: src/common/ignore.c:123 src/common/ignore.c:127 src/common/ignore.c:131 +#: src/common/ignore.c:135 src/common/ignore.c:139 src/common/ignore.c:143 +#: src/common/ignore.c:147 msgid "YES " msgstr "JA " -#: src/common/ignore.c:122 -#: src/common/ignore.c:126 -#: src/common/ignore.c:130 -#: src/common/ignore.c:134 -#: src/common/ignore.c:138 -#: src/common/ignore.c:142 -#: src/common/ignore.c:146 +#: src/common/ignore.c:125 src/common/ignore.c:129 src/common/ignore.c:133 +#: src/common/ignore.c:137 src/common/ignore.c:141 src/common/ignore.c:145 +#: src/common/ignore.c:149 msgid "NO " msgstr "NEIN " -#: src/common/ignore.c:377 +#: src/common/ignore.c:380 #, c-format msgid "You are being CTCP flooded from %s, ignoring %s\n" -msgstr "CTCP-Flut von %s, ignoriere %s\n" +msgstr "CTCP-Flut von %s, %s wird jetzt ignoriert\n" -#: src/common/ignore.c:402 +#: src/common/ignore.c:405 #, c-format msgid "You are being MSG flooded from %s, setting gui_auto_open_dialog OFF.\n" -msgstr "MSG-Flut von %s, deaktiviere automatische Dialoge.\n" +msgstr "MSG-Flut von %s, »gui_auto_open_dialog« wird abgeschaltet.\n" -#: src/common/notify.c:473 +#: src/common/notify.c:476 #, c-format msgid " %-20s online\n" msgstr " %-20s online\n" -#: src/common/notify.c:475 +#: src/common/notify.c:478 #, c-format msgid " %-20s offline\n" msgstr " %-20s offline\n" #: src/common/outbound.c:72 msgid "No channel joined. Try /join #<channel>\n" -msgstr "Kein Channel betreten. Versuche /join #<channel>\n" +msgstr "Kein Channel betreten. Versuchen Sie /join #<channel>\n" #: src/common/outbound.c:78 msgid "Not connected. Try /server <host> [<port>]\n" -msgstr "Nicht verbunden. Versuche /server <Host> [<Port>]\n" +msgstr "Nicht verbunden. Versuchen Sie /server <Host> [<Port>]\n" -#: src/common/outbound.c:339 +#: src/common/outbound.c:338 #, c-format msgid "Already marked away: %s\n" msgstr "Bereits als abwesend markiert: %s\n" -#: src/common/outbound.c:409 +#: src/common/outbound.c:411 msgid "Already marked back.\n" msgstr "Bereits als anwesend markiert.\n" -#: src/common/outbound.c:1814 +#: src/common/outbound.c:1777 msgid "I need /bin/sh to run!\n" msgstr "/bin/sh wird benötigt!\n" -#: src/common/outbound.c:2185 +#: src/common/outbound.c:2146 msgid "Commands Available:" -msgstr "Verfügbare Kommandos: " +msgstr "Verfügbare Befehle:" -#: src/common/outbound.c:2199 +#: src/common/outbound.c:2160 msgid "User defined commands:" -msgstr "Benutzerdefinierte Kommandos:" +msgstr "Benutzerdefinierte Befehle:" -#: src/common/outbound.c:2215 +#: src/common/outbound.c:2176 msgid "Plugin defined commands:" -msgstr "Durch Plugins definierte Kommandos:" +msgstr "Durch Plugins definierte Befehle:" -#: src/common/outbound.c:2226 +#: src/common/outbound.c:2187 msgid "Type /HELP <command> for more information, or /HELP -l" -msgstr "Gib /HELP <Kommando> für mehr Informationen ein, oder /HELP -l" +msgstr "Geben Sie /HELP <Befehl> oder /HELP -l für mehr Informationen ein" -#: src/common/outbound.c:2301 +#: src/common/outbound.c:2272 #, c-format msgid "Unknown arg '%s' ignored." -msgstr "Unbekanntes Argument '%s' ignoriert." +msgstr "Unbekanntes Argument »%s« ignoriert." -#: src/common/outbound.c:3235 +#: src/common/outbound.c:3238 msgid "No such plugin found.\n" msgstr "Kein solches Plugin gefunden.\n" -#: src/common/outbound.c:3240 -#: src/fe-gtk/plugingui.c:186 +#: src/common/outbound.c:3243 src/fe-gtk/plugingui.c:189 msgid "That plugin is refusing to unload.\n" msgstr "Dieses Plugin kann nicht entladen werden.\n" -#: src/common/outbound.c:3509 +#: src/common/outbound.c:3512 msgid "ADDBUTTON <name> <action>, adds a button under the user-list" -msgstr "ADDBUTTON <Name> <Aktion>, fügt einen Knopf unter der Benutzerliste hinzu" +msgstr "" +"ADDBUTTON <Name> <Aktion>, fügt einen Knopf unter der Benutzerliste hinzu" -#: src/common/outbound.c:3511 +#: src/common/outbound.c:3514 msgid "ALLCHAN <cmd>, sends a command to all channels you're in" -msgstr "ALLCHAN <Kommando>, sendet ein Kommando an alle Channels in denen Du bist" +msgstr "" +"ALLCHAN <Befehl>, sendet einen Befehl an alle Channels in denen Sie sich " +"befinden" -#: src/common/outbound.c:3513 +#: src/common/outbound.c:3516 msgid "ALLCHANL <cmd>, sends a command to all channels you're in" -msgstr "ALLCHANL <Kommando>, sendet ein Kommando an alle Channels in denen Du bist" +msgstr "" +"ALLCHANL <Befehl>, sendet einen Befehl an alle Channels in denen Sie sich " +"befinden" -#: src/common/outbound.c:3515 +#: src/common/outbound.c:3518 msgid "ALLSERV <cmd>, sends a command to all servers you're in" -msgstr "ALLSERV <Kommando>, sendet ein Kommando an alle Server auf denen Du bist" +msgstr "" +"ALLSERV <Befehl>, sendet einen Befehl an alle Server auf denen Sie sich " +"befinden" -#: src/common/outbound.c:3516 +#: src/common/outbound.c:3519 msgid "AWAY [<reason>], sets you away" -msgstr "AWAY [<Grund>], setzt Dich auf abwesend" +msgstr "AWAY [<Grund>], setzt Sie auf abwesend" -#: src/common/outbound.c:3517 +#: src/common/outbound.c:3520 msgid "BACK, sets you back (not away)" -msgstr "BACK, setzt Dich auf anwesend (nicht \"abwesend\")" - -#: src/common/outbound.c:3519 -msgid "BAN <mask> [<bantype>], bans everyone matching the mask from the current channel. If they are already on the channel this doesn't kick them (needs chanop)" -msgstr "BAN <Maske> [<Banntyp>], bannt jeden mit der entsprechenden Maske aus dem aktuellen Channel. Wenn diese bereits im Channel sind, werden sie nicht gekickt (Erfordert Op-Status)" +msgstr "BACK, setzt Sie auf anwesend (nicht »abwesend«)" -#: src/common/outbound.c:3521 +#: src/common/outbound.c:3522 msgid "" -"Set per channel options\n" -"CHANOPT CONFMODE ON|OFF - Toggle conf mode/showing of join and part messages\n" -"CHANOPT COLORPASTE ON|OFF - Toggle color paste\n" -"CHANOPT BEEP ON|OFF - Toggle beep on message\n" -"CHANOPT TRAY ON|OFF - Toggle tray blink on message" +"BAN <mask> [<bantype>], bans everyone matching the mask from the current " +"channel. If they are already on the channel this doesn't kick them (needs " +"chanop)" msgstr "" -"Optionen je Channel einstellen\n" -"CHANOPT CONFMODE ON|OFF - Konferenzmodus/Anzeige von Join/Part-Nachrichten umschalten\n" -"CHANOPT COLORPASTE ON|OFF - Farbiges Einfügen umschalten\n" -"CHANOPT BEEP ON|OFF - Piepton bei Nachricht umschalten\n" -"CHANOPT TRAY ON|OFF - Blinken im Benachrichtigungsbereich umschalten" +"BAN <Maske> [<Banntyp>], bannt jeden mit der entsprechenden Maske aus dem " +"aktuellen Channel. Wenn diese bereits im Channel sind, werden sie nicht " +"gekickt (Erfordert Op-Status)" + +#: src/common/outbound.c:3523 +msgid "CHANOPT [-quiet] <variable> [<value>]" +msgstr "CHANOPT [-quiet] <Variable> [<Wert>]" -#: src/common/outbound.c:3528 +#: src/common/outbound.c:3525 msgid "CLEAR [ALL|HISTORY], Clears the current text window or command history" -msgstr "CLEAR [ALL|HISTORY], Löscht das aktuelle Textfenster oder die Kommandohistorie" +msgstr "" +"CLEAR [ALL|HISTORY], Leert das aktuelle Textfenster oder die Befehlschronik" -#: src/common/outbound.c:3529 +#: src/common/outbound.c:3526 msgid "CLOSE, Closes the current window/tab" msgstr "CLOSE, Schließt das aktuelle Textfenster/Reiter" -#: src/common/outbound.c:3532 +#: src/common/outbound.c:3529 msgid "COUNTRY [-s] <code|wildcard>, finds a country code, eg: au = australia" -msgstr "COUNTRY [-s] <Kode|Wildcard>, findet einen Länderkode, z.B.: de = Bundesrepublik Deutschland" +msgstr "" +"COUNTRY [-s] <Code|Wildcard>, findet einen Ländercode, z.B.: de = Deutschland" -#: src/common/outbound.c:3534 -msgid "CTCP <nick> <message>, send the CTCP message to nick, common messages are VERSION and USERINFO" -msgstr "CTCP <Nick> <Nachricht>, sendet die CTCP-Nachricht an den Nick, übliche Nachrichten sind VERSION und USERINFO" +#: src/common/outbound.c:3531 +msgid "" +"CTCP <nick> <message>, send the CTCP message to nick, common messages are " +"VERSION and USERINFO" +msgstr "" +"CTCP <Nick> <Nachricht>, sendet die CTCP-Nachricht an den Nick, übliche " +"Nachrichten sind VERSION und USERINFO" -#: src/common/outbound.c:3536 -msgid "CYCLE [<channel>], parts the current or given channel and immediately rejoins" -msgstr "CYCLE [<Channel>], verläßt den aktuellen oder angegebenen Channel und betritt ihn direkt wieder" +#: src/common/outbound.c:3533 +msgid "" +"CYCLE [<channel>], parts the current or given channel and immediately rejoins" +msgstr "" +"CYCLE [<Channel>], verlässt den aktuellen oder angegebenen Channel und " +"betritt ihn direkt wieder" -#: src/common/outbound.c:3538 +#: src/common/outbound.c:3535 msgid "" "\n" "DCC GET <nick> - accept an offered file\n" @@ -258,82 +256,105 @@ msgstr "" "\n" "DCC GET <Nick> - akzeptiere eine angebotene Datei\n" "DCC SEND [-maxcps=#] <Nick> [Datei] - Sendet eine Datei an jemanden\n" -"DCC PSEND [-maxcps=#] <Nick> [Datei] - Sendet eine Datei im passiven Modus an jemanden\n" +"DCC PSEND [-maxcps=#] <Nick> [Datei] - Sendet eine Datei im passiven Modus " +"an jemanden\n" "DCC LIST - zeigt die DCC-Liste\n" "DCC CHAT <Nick> - bietet jemandem einen DCC-CHAT an\n" -"DCC PCHAT <Nick> - bietet jemandem einen DCC-CHAT im passiven Modus an\n" +"DCC PCHAT <Nick> - bietet jemandem einen DCC-CHAT im " +"passiven Modus an\n" "DCC CLOSE <Typ> <Nick> <Datei> - Schließt einen DCC-Transfer\n" " Beispiel: /dcc close send markus datei.zip" -#: src/common/outbound.c:3550 -msgid "DEHOP <nick>, removes chanhalf-op status from the nick on the current channel (needs chanop)" -msgstr "DEHOP <Nick>, entfernt den HalbOp-Status bei Nick im aktuellen Channel (Erfordert Op-Status)" +#: src/common/outbound.c:3547 +msgid "" +"DEHOP <nick>, removes chanhalf-op status from the nick on the current " +"channel (needs chanop)" +msgstr "" +"DEHOP <Nick>, entfernt den HalbOp-Status bei Nick im aktuellen Channel " +"(Erfordert Op-Status)" -#: src/common/outbound.c:3552 +#: src/common/outbound.c:3549 msgid "DELBUTTON <name>, deletes a button from under the user-list" msgstr "DELBUTTON <Name>, entfernt einen Knopf unter der Benutzerliste" -#: src/common/outbound.c:3554 -msgid "DEOP <nick>, removes chanop status from the nick on the current channel (needs chanop)" -msgstr "DEOP <Nick>, entfernt den Op-Status bei Nick im aktuellen Channel (Erfordert Op-Status)" +#: src/common/outbound.c:3551 +msgid "" +"DEOP <nick>, removes chanop status from the nick on the current channel " +"(needs chanop)" +msgstr "" +"DEOP <Nick>, entfernt den Op-Status bei Nick im aktuellen Channel (Erfordert " +"Op-Status)" -#: src/common/outbound.c:3556 -msgid "DEVOICE <nick>, removes voice status from the nick on the current channel (needs chanop)" -msgstr "DEVOICE <Nick>, entfernt den Voice-Status bei Nick im aktuellen Channel (Erfordert Op-Status)" +#: src/common/outbound.c:3553 +msgid "" +"DEVOICE <nick>, removes voice status from the nick on the current channel " +"(needs chanop)" +msgstr "" +"DEVOICE <Nick>, entfernt den Voice-Status bei Nick im aktuellen Channel " +"(Erfordert Op-Status)" -#: src/common/outbound.c:3557 +#: src/common/outbound.c:3554 msgid "DISCON, Disconnects from server" msgstr "DISCON, Trennt die Server-Verbindung" -#: src/common/outbound.c:3558 +#: src/common/outbound.c:3555 msgid "DNS <nick|host|ip>, Finds a users IP number" msgstr "DNS <Nick|Host|IP>, Findet die IP-Adresse eines Nutzers" -#: src/common/outbound.c:3559 +#: src/common/outbound.c:3556 msgid "ECHO <text>, Prints text locally" msgstr "ECHO <Text>, Zeigt Text lokal an" -#: src/common/outbound.c:3562 -msgid "EXEC [-o] <command>, runs the command. If -o flag is used then output is sent to current channel, else is printed to current text box" -msgstr "EXEC [-o] <Kommando>, führt das Kommando aus. Wenn -o angegeben wurde, wird die Ausgabe in das aktuelle Fenster gesendet, ansonsten wird sie lokal gezeigt" +#: src/common/outbound.c:3559 +msgid "" +"EXEC [-o] <command>, runs the command. If -o flag is used then output is " +"sent to current channel, else is printed to current text box" +msgstr "" +"EXEC [-o] <Befehl>, führt den Befehl aus. Wenn -o angegeben wurde, wird " +"die Ausgabe in das aktuelle Fenster gesendet, ansonsten wird sie lokal " +"gezeigt" -#: src/common/outbound.c:3564 +#: src/common/outbound.c:3561 msgid "EXECCONT, sends the process SIGCONT" msgstr "EXECCONT, sendet das Signal SIGCONT" -#: src/common/outbound.c:3567 -msgid "EXECKILL [-9], kills a running exec in the current session. If -9 is given the process is SIGKILL'ed" -msgstr "EXECKILL [-9], killt einen laufenden exec in der aktuellen Sitzung. Wenn -9 angegeben wurde, wird der Prozess SIGKILLed" +#: src/common/outbound.c:3564 +msgid "" +"EXECKILL [-9], kills a running exec in the current session. If -9 is given " +"the process is SIGKILL'ed" +msgstr "" +"EXECKILL [-9], killt einen laufenden exec in der aktuellen Sitzung. Wenn -9 " +"angegeben wurde, wird der Prozess SIGKILLed" -#: src/common/outbound.c:3569 +#: src/common/outbound.c:3566 msgid "EXECSTOP, sends the process SIGSTOP" msgstr "EXECSTOP, sendet dem Prozess das Signal SIGSTOP" -#: src/common/outbound.c:3570 +#: src/common/outbound.c:3567 msgid "EXECWRITE, sends data to the processes stdin" msgstr "EXECWRITE, sendet Daten an den stdin des Prozesses" -#: src/common/outbound.c:3574 +#: src/common/outbound.c:3571 msgid "FLUSHQ, flushes the current server's send queue" msgstr "FLUSHQ, löscht die Sendewarteschlange des aktuellen Servers" -#: src/common/outbound.c:3576 +#: src/common/outbound.c:3573 msgid "GATE <host> [<port>], proxies through a host, port defaults to 23" msgstr "GATE <Host> [<Port>], verbindet durch einen Proxy, Standardport ist 23" -#: src/common/outbound.c:3580 -msgid "GHOST <nick> <password>, Kills a ghosted nickname" -msgstr "GHOST <Nick> <Passwort>, Trennt einen verwaisten Nick" +#: src/common/outbound.c:3577 +msgid "GHOST <nick> [password], Kills a ghosted nickname" +msgstr "GHOST <Nick> [<Passwort>], Trennt einen verwaisten Nick" -#: src/common/outbound.c:3585 +#: src/common/outbound.c:3582 msgid "HOP <nick>, gives chanhalf-op status to the nick (needs chanop)" -msgstr "HOP <Nick>, gibt Nick HalbOp-Status (Erfordert Op-Status)" +msgstr "HOP <Nick>, gibt dem Nutzer Halfop-Status (erfordert Op-Status)" -#: src/common/outbound.c:3586 +#: src/common/outbound.c:3583 msgid "ID <password>, identifies yourself to nickserv" -msgstr "ID <Passwort>, identifiziert Dich beim NickServ" +msgstr "ID <Passwort>, meldet Sie bei NickServ an" -#: src/common/outbound.c:3588 +#: src/common/outbound.c:3585 msgid "" "IGNORE <mask> <types..> <options..>\n" " mask - host mask to ignore, eg: *!*@*.aol.com\n" @@ -347,117 +368,170 @@ msgstr "" " PRIV, CHAN, NOTI, CTCP, DCC, INVI, ALL\n" " Optionen - NOSAVE, QUIET" -#: src/common/outbound.c:3595 -msgid "INVITE <nick> [<channel>], invites someone to a channel, by default the current channel (needs chanop)" -msgstr "INVITE <Nick> [<Channel>], lädt jemanden in einen Channel ein, standardmäßig den aktuellen (Erfordert Op-Status)" +#: src/common/outbound.c:3592 +msgid "" +"INVITE <nick> [<channel>], invites someone to a channel, by default the " +"current channel (needs chanop)" +msgstr "" +"INVITE <Nick> [<Channel>], lädt jemanden in einen Channel ein, standardmäßig " +"den aktuellen (Erfordert Op-Status)" -#: src/common/outbound.c:3596 +#: src/common/outbound.c:3593 msgid "JOIN <channel>, joins the channel" msgstr "JOIN <Channel>, betritt einen Channel" -#: src/common/outbound.c:3598 +#: src/common/outbound.c:3595 msgid "KICK <nick>, kicks the nick from the current channel (needs chanop)" -msgstr "KICK <Nick>, kickt den Nick aus dem aktuellen Channel (Erfordert Op-Status)" +msgstr "" +"KICK <Nick>, kickt den Nick aus dem aktuellen Channel (Erfordert Op-Status)" -#: src/common/outbound.c:3600 -msgid "KICKBAN <nick>, bans then kicks the nick from the current channel (needs chanop)" -msgstr "KICKBAN <Nick>, bannt den Nick und kickt dann den Nick aus dem aktuellen Channel (Erfordert Op-Status)" +#: src/common/outbound.c:3597 +msgid "" +"KICKBAN <nick>, bans then kicks the nick from the current channel (needs " +"chanop)" +msgstr "" +"KICKBAN <Nick>, bannt den Nick und kickt dann den Nick aus dem aktuellen " +"Channel (Erfordert Op-Status)" -#: src/common/outbound.c:3603 +#: src/common/outbound.c:3600 msgid "LAGCHECK, forces a new lag check" msgstr "LAGCHECK, erzwingt eine neue Lag-Prüfung" -#: src/common/outbound.c:3605 +#: src/common/outbound.c:3602 msgid "LASTLOG <string>, searches for a string in the buffer" msgstr "LASTLOG <Zeichenkette>, sucht im Puffer nach einer Zeichenkette" -#: src/common/outbound.c:3607 +#: src/common/outbound.c:3604 msgid "LOAD [-e] <file>, loads a plugin or script" msgstr "LOAD [-e] <Datei>, lädt ein Plugin oder ein Skript" -#: src/common/outbound.c:3610 -msgid "MDEHOP, Mass deop's all chanhalf-ops in the current channel (needs chanop)" -msgstr "MDEHOP, Nimmt allen HalbOps im aktuellen Channel den HalbOp-Status (Erfordert Op-Status)" +#: src/common/outbound.c:3607 +msgid "" +"MDEHOP, Mass deop's all chanhalf-ops in the current channel (needs chanop)" +msgstr "" +"MDEHOP, Nimmt allen HalbOps im aktuellen Channel den HalbOp-Status " +"(Erfordert Op-Status)" -#: src/common/outbound.c:3612 +#: src/common/outbound.c:3609 msgid "MDEOP, Mass deop's all chanops in the current channel (needs chanop)" -msgstr "MDEOP, Nimmt allen Ops im aktuellen Channel den Op-Status (Erfordert Op-Status)" +msgstr "" +"MDEOP, Nimmt allen Ops im aktuellen Channel den Op-Status (Erfordert Op-" +"Status)" -#: src/common/outbound.c:3614 -msgid "ME <action>, sends the action to the current channel (actions are written in the 3rd person, like /me jumps)" -msgstr "ME <Aktion>, sendet die Aktion in den aktuellen Channel (Aktionen werden in der 3. Person geschrieben, wie /me springt)" +#: src/common/outbound.c:3611 +msgid "" +"ME <action>, sends the action to the current channel (actions are written in " +"the 3rd person, like /me jumps)" +msgstr "" +"ME <Aktion>, sendet die Aktion in den aktuellen Channel (Aktionen werden in " +"der 3. Person geschrieben, wie /me springt)" -#: src/common/outbound.c:3618 -msgid "MKICK, Mass kicks everyone except you in the current channel (needs chanop)" -msgstr "MKICK, Kickt alle außer Dich im aktuellen Channel (Erfordert Op-Status)" +#: src/common/outbound.c:3615 +msgid "" +"MKICK, Mass kicks everyone except you in the current channel (needs chanop)" +msgstr "" +"MKICK, Kickt alle außer Ihnen im aktuellen Channel (erfordert Op-Status)" -#: src/common/outbound.c:3621 +#: src/common/outbound.c:3618 msgid "MOP, Mass op's all users in the current channel (needs chanop)" -msgstr "MOP, gibt allen Benutzern im aktuellen Channel Op (Erfordert Op-Status)" +msgstr "" +"MOP, gibt allen Benutzern im aktuellen Channel Op (Erfordert Op-Status)" -#: src/common/outbound.c:3622 +#: src/common/outbound.c:3619 msgid "MSG <nick> <message>, sends a private message" msgstr "MSG <Nick> <Nachricht>, sendet eine private Nachricht" -#: src/common/outbound.c:3625 +#: src/common/outbound.c:3622 msgid "NAMES, Lists the nicks on the current channel" msgstr "NAMES, Listet die Nicks im aktuellen Channel auf" -#: src/common/outbound.c:3627 +#: src/common/outbound.c:3624 msgid "NCTCP <nick> <message>, Sends a CTCP notice" msgstr "NCTCP <Nick> <Nachricht>, Sendet eine CTCP-Notiz" -#: src/common/outbound.c:3628 +#: src/common/outbound.c:3625 msgid "NEWSERVER [-noconnect] <hostname> [<port>]" -msgstr "NEWSERVER [-noconnect] <Hostname> [<Port>], verbindet mit einem Server in einem neuen Reiter" +msgstr "" +"NEWSERVER [-noconnect] <Hostname> [<Port>], verbindet mit einem Server in " +"einem neuen Reiter" -#: src/common/outbound.c:3629 +#: src/common/outbound.c:3626 msgid "NICK <nickname>, sets your nick" -msgstr "NICK <Nickname>, setzt Deinen Nick" +msgstr "NICK <Nickname>, setzt Ihren Nick" -#: src/common/outbound.c:3632 -msgid "NOTICE <nick/channel> <message>, sends a notice. Notices are a type of message that should be auto reacted to" -msgstr "NOTICE <Nick/Channel> <Nachricht>, sendet eine Notiz. Notizen sind Nachrichten, auf die automatisch reagiert werden sollte" +#: src/common/outbound.c:3629 +msgid "" +"NOTICE <nick/channel> <message>, sends a notice. Notices are a type of " +"message that should be auto reacted to" +msgstr "" +"NOTICE <Nick/Channel> <Nachricht>, sendet eine Notiz. Notizen sind " +"Nachrichten, auf die automatisch reagiert werden sollte" -#: src/common/outbound.c:3634 -msgid "NOTIFY [-n network1[,network2,...]] [<nick>], displays your notify list or adds someone to it" -msgstr "NOTIFY [-n network1[,network2,...]] [<nick>], zeigt Deine Benachrichtigungsliste oder fügt jemanden hinzu" +#: src/common/outbound.c:3631 +msgid "" +"NOTIFY [-n network1[,network2,...]] [<nick>], displays your notify list or " +"adds someone to it" +msgstr "" +"NOTIFY [-n network1[,network2,...]] [<nick>], zeigt Ihre " +"Benachrichtigungsliste oder fügt jemanden hinzu" -#: src/common/outbound.c:3636 +#: src/common/outbound.c:3633 msgid "OP <nick>, gives chanop status to the nick (needs chanop)" msgstr "OP <Nick>, gibt Nick Op-Status (Erfordert Op-Status)" -#: src/common/outbound.c:3638 -msgid "PART [<channel>] [<reason>], leaves the channel, by default the current one" -msgstr "PART [<Channel>] [<Grund>], verläßt den Channel, standardmäßig den aktuellen" +#: src/common/outbound.c:3635 +msgid "" +"PART [<channel>] [<reason>], leaves the channel, by default the current one" +msgstr "" +"PART [<Channel>] [<Grund>], verlässt den Channel, standardmäßig den aktuellen" -#: src/common/outbound.c:3640 +#: src/common/outbound.c:3637 msgid "PING <nick | channel>, CTCP pings nick or channel" msgstr "PING <Nick | Channel>, pingt den Nick oder Channel per CTCP an" -#: src/common/outbound.c:3642 +#: src/common/outbound.c:3639 msgid "QUERY [-nofocus] <nick>, opens up a new privmsg window to someone" msgstr "QUERY [-nofocus] <nick>, öffnet ein neues Dialogfenster mit jemandem" -#: src/common/outbound.c:3644 +#: src/common/outbound.c:3641 msgid "QUIT [<reason>], disconnects from the current server" -msgstr "QUIT [<Grund>], trennt XChat vom aktuellen Server" +msgstr "QUIT [<Grund>], trennt die Verbindung zum aktuellen Server" -#: src/common/outbound.c:3646 +#: src/common/outbound.c:3643 msgid "QUOTE <text>, sends the text in raw form to the server" -msgstr "QUOTE <Text>, sendet den Text im Rohformat an den Server" +msgstr "QUOTE <Text>, sendet den Text in Rohform an den Server" + +#: src/common/outbound.c:3646 +msgid "" +"RECONNECT [-ssl] [<host>] [<port>] [<password>], Can be called just as /" +"RECONNECT to reconnect to the current server or with /RECONNECT ALL to " +"reconnect to all the open servers" +msgstr "" +"RECONNECT [-ssl] [<Host>] [<Port>] [<Passwort>], Kann einfach als /RECONNECT " +"aufgerufen werden um sich mit dem aktuellen Server wiederzuverbinden, oder " +"als /RECONNECT ALL um sich mit allen aktiven Servern wiederzuverbinden" #: src/common/outbound.c:3649 -msgid "RECONNECT [-ssl] [<host>] [<port>] [<password>], Can be called just as /RECONNECT to reconnect to the current server or with /RECONNECT ALL to reconnect to all the open servers" -msgstr "RECONNECT [-ssl] [<Host>] [<Port>] [<Passwort>], Kann einfach als /RECONNECT aufgerufen werden um sich mit dem aktuellen Server wiederzuverbinden, oder als /RECONNECT ALL um sich mit allen aktiven Servern wiederzuverbinden" +msgid "" +"RECONNECT [<host>] [<port>] [<password>], Can be called just as /RECONNECT " +"to reconnect to the current server or with /RECONNECT ALL to reconnect to " +"all the open servers" +msgstr "" +"RECONNECT [<Host>] [<Port>] [<Passwort>], Kann einfach als /RECONNECT " +"aufgerufen werden um sich mit dem aktuellen Server wiederzuverbinden, oder " +"als /RECONNECT ALL um sich mit allen aktiven Servern wiederzuverbinden" -#: src/common/outbound.c:3652 -msgid "RECONNECT [<host>] [<port>] [<password>], Can be called just as /RECONNECT to reconnect to the current server or with /RECONNECT ALL to reconnect to all the open servers" -msgstr "RECONNECT [<Host>] [<Port>] [<Passwort>], Kann einfach als /RECONNECT aufgerufen werden um sich mit dem aktuellen Server wiederzuverbinden, oder als /RECONNECT ALL um sich mit allen aktiven Servern wiederzuverbinden" +#: src/common/outbound.c:3651 +msgid "" +"RECV <text>, send raw data to xchat, as if it was received from the irc " +"server" +msgstr "" +"RECV <Text>, sendet Rohdaten an XChat, als ob sie vom IRC-Server empfangen " +"wurden" #: src/common/outbound.c:3654 -msgid "RECV <text>, send raw data to xchat, as if it was received from the irc server" -msgstr "RECV <Text>, sendet Rohdaten an XChat, als ob sie vom IRC-Server empfangen wurden" +msgid "SAVECONF, saves the current settings to disk" +msgstr "SAVECONF, speichert die aktuellen Einstellungen" #: src/common/outbound.c:3657 msgid "SAY <text>, sends the text to the object in the current window" @@ -469,31 +543,43 @@ msgstr "SEND <Nick> [<Datei>]" #: src/common/outbound.c:3661 msgid "SERVCHAN [-ssl] <host> <port> <channel>, connects and joins a channel" -msgstr "SERVCHAN [-ssl] <Host> <Port> <Channel>, verbindet und betritt einen Channel" +msgstr "" +"SERVCHAN [-ssl] <Host> <Port> <Channel>, verbindet und betritt einen Channel" #: src/common/outbound.c:3664 msgid "SERVCHAN <host> <port> <channel>, connects and joins a channel" msgstr "SERVCHAN <Host> <Port> <Channel>, verbindet und betritt einen Channel" #: src/common/outbound.c:3668 -msgid "SERVER [-ssl] <host> [<port>] [<password>], connects to a server, the default port is 6667 for normal connections, and 9999 for ssl connections" -msgstr "SERVER [-ssl] <Host> [<Port>] [<Passwort>], verbindet mit einem Server, der Standard-Port ist 6667 für normale Verbindungen und 9999 für SSL-Verbindungen" +msgid "" +"SERVER [-ssl] <host> [<port>] [<password>], connects to a server, the " +"default port is 6667 for normal connections, and 9999 for ssl connections" +msgstr "" +"SERVER [-ssl] <Host> [<Port>] [<Passwort>], verbindet mit einem Server, der " +"Standard-Port ist 6667 für normale Verbindungen und 9999 für SSL-Verbindungen" #: src/common/outbound.c:3671 -msgid "SERVER <host> [<port>] [<password>], connects to a server, the default port is 6667" -msgstr "SERVER <Host> [<Port>] [<Passwort>], verbindet mit einem Server, der Standard-Port ist 6667" +msgid "" +"SERVER <host> [<port>] [<password>], connects to a server, the default port " +"is 6667" +msgstr "" +"SERVER <Host> [<Port>] [<Passwort>], verbindet mit einem Server, der " +"Standard-Port ist 6667" #: src/common/outbound.c:3673 -msgid "SET [-e] [-or] [-quiet] <variable> [<value>]" -msgstr "SET [-e] [-or] [-quiet] <Variable> [<Wert>], setzt eine Variable oder zeigt ihren Wert" +msgid "SET [-e] [-off|-on] [-quiet] <variable> [<value>]" +msgstr "SET [-e] [-off|-on] [-quiet] <Variable> [<Wert>]" #: src/common/outbound.c:3674 msgid "SETCURSOR [-|+]<position>" msgstr "SETCURSOR [-|+]<Position>" #: src/common/outbound.c:3679 -msgid "TOPIC [<topic>], sets the topic if one is given, else shows the current topic" -msgstr "TOPIC [<Thema>], setzt das Thema, wenn eins angegeben wurde, oder zeigt das aktuelle" +msgid "" +"TOPIC [<topic>], sets the topic if one is given, else shows the current topic" +msgstr "" +"TOPIC [<Thema>], setzt das Thema, wenn eins angegeben wurde, oder zeigt das " +"aktuelle" #: src/common/outbound.c:3681 msgid "" @@ -505,19 +591,26 @@ msgid "" "TRAY -b <title> <text> Set the tray balloon." msgstr "" "\n" -"TRAY -f <Zeitüberschreitung> <Datei1> [<Datei2>] Wechselt im Benachrichtigungsbereich zwischen zwei Symbolen.\n" -"TRAY -f <Dateiname> Setzt Benachrichtigungssysmbol auf ein festes Symbol.\n" -"TRAY -i <Nummer> Blnkt im Benachrichtigungsbereich mit einem internen Symbol.\n" -"TRAY -t <Text> Setzt den Tooltip für den Benachrichtigungsbereich.\n" -"TRAY -b <Titel> <Text> Setzt den Ballontext für den Benachrichtigungsbereich." +"TRAY -f <Zeitüberschreitung> <Datei1> [<Datei2>] Wechselt im " +"Benachrichtigungsbereich zwischen zwei Symbolen.\n" +"TRAY -f <Dateiname> Setzt Benachrichtigungssysmbol auf ein " +"festes Symbol.\n" +"TRAY -i <Nummer> Blnkt im Benachrichtigungsbereich mit " +"einem internen Symbol.\n" +"TRAY -t <Text> Setzt den Tooltip für den " +"Benachrichtigungsbereich.\n" +"TRAY -b <Titel> <Text> Setzt den Ballontext für den " +"Benachrichtigungsbereich." #: src/common/outbound.c:3688 msgid "UNBAN <mask> [<mask>...], unbans the specified masks." -msgstr "UNBAN <Maske> [<Maske>...], entfernt den Bann für eine spezielle Hostmaske" +msgstr "" +"UNBAN <Maske> [<Maske>...], entfernt den Bann für eine spezielle Hostmaske" #: src/common/outbound.c:3689 msgid "UNIGNORE <mask> [QUIET]" -msgstr "UNIGNORE <Maske> [QUIET], hört auf, die angegebene Hostmaske zu ignorieren" +msgstr "" +"UNIGNORE <Maske> [QUIET], hört auf, die angegebene Hostmaske zu ignorieren" #: src/common/outbound.c:3690 msgid "UNLOAD <name>, unloads a plugin or script" @@ -525,11 +618,14 @@ msgstr "UNLOAD <Name>, entfernt ein Plugin oder Skript" #: src/common/outbound.c:3691 msgid "URL <url>, opens a URL in your browser" -msgstr "URL <url>, öffnet einen URL in Deinem Browser" +msgstr "URL <url>, öffnet einen URL in Ihrem Browser" #: src/common/outbound.c:3693 -msgid "USELECT [-a] [-s] <nick1> <nick2> etc, highlights nick(s) in channel userlist" -msgstr "USELECT [-a] [-s] <Nick1> <Nick2> ... <Nickn>, markiert Nick(s) in der Channel-Benutzerliste" +msgid "" +"USELECT [-a] [-s] <nick1> <nick2> etc, highlights nick(s) in channel userlist" +msgstr "" +"USELECT [-a] [-s] <Nick1> <Nick2> ... <Nickn>, markiert Nick(s) in der " +"Channel-Benutzerliste" #: src/common/outbound.c:3696 msgid "VOICE <nick>, gives voice status to someone (needs chanop)" @@ -540,8 +636,10 @@ msgid "WALLCHAN <message>, writes the message to all channels" msgstr "WALLCHAN <Nachricht>, schreibt eine Nachricht in alle Channels" #: src/common/outbound.c:3700 -msgid "WALLCHOP <message>, sends the message to all chanops on the current channel" -msgstr "WALLCHOP <Nachricht>, sendet eine Nachricht an alle Ops im aktuellen Channel" +msgid "" +"WALLCHOP <message>, sends the message to all chanops on the current channel" +msgstr "" +"WALLCHOP <Nachricht>, sendet eine Nachricht an alle Ops im aktuellen Channel" #: src/common/outbound.c:3733 #, c-format @@ -554,55 +652,58 @@ msgid "" "No help available on that command.\n" msgstr "" "\n" -"Keine Hilfe für dieses Kommando verfügbar.\n" +"Keine Hilfe für diesen Befehl verfügbar.\n" #: src/common/outbound.c:3744 msgid "No such command.\n" -msgstr "Kein solches Kommando.\n" +msgstr "Kein solcher Befehl.\n" -#: src/common/outbound.c:4074 +#: src/common/outbound.c:4075 msgid "Bad arguments for user command.\n" -msgstr "Ungültige Argumente für das Benutzerkommando.\n" +msgstr "Ungültige Argumente für den Benutzerbefehl.\n" -#: src/common/outbound.c:4230 +#: src/common/outbound.c:4235 msgid "Too many recursive usercommands, aborting." -msgstr "Zu viele rekursive Benutzerkommandos - Abbruch." +msgstr "Zu viele rekursive Benutzerbefehle - Abbruch." -#: src/common/outbound.c:4307 +#: src/common/outbound.c:4318 msgid "Unknown Command. Try /help\n" -msgstr "Unbekanntes Kommando. Versuche /help\n" +msgstr "Unbekannter Befehl. Versuche /help\n" -#: src/common/plugin.c:356 -#: src/common/plugin.c:397 +#: src/common/plugin.c:370 src/common/plugin.c:411 msgid "No xchat_plugin_init symbol; is this really an xchat plugin?" msgstr "Kein xchat_plugin_init Symbol; ist dies wirklich ein XChat-Plugin?" -#: src/common/server.c:634 +#: src/common/server.c:657 msgid "Are you sure this is a SSL capable server and port?\n" -msgstr "Bist Du sicher, daß dies ein SSL-fähiger Server und Port ist?\n" +msgstr "Sind Sie sicher, dass dies ein SSL-fähiger Server und Port ist?\n" -#: src/common/server.c:1025 +#: src/common/server.c:1021 #, c-format msgid "" "Cannot resolve hostname %s\n" "Check your IP Settings!\n" msgstr "" "Kann Hostname %s nicht auflösen\n" -"Prüfe Deine IP-Einstellungen!\n" +"Prüfe Ihre IP-Einstellungen!\n" -#: src/common/server.c:1030 +#: src/common/server.c:1026 msgid "Proxy traversal failed.\n" -msgstr "Durchlaufen der Proxies gescheitert.\n" +msgstr "Durchlaufen der Proxys gescheitert.\n" -#: src/common/servlist.c:643 +#: src/common/servlist.c:651 #, c-format msgid "Cycling to next server in %s...\n" -msgstr "Springe zum nächsten Server in %s...\n" +msgstr "Zum nächsten Server wird gesprungen in %s …\n" -#: src/common/servlist.c:1074 +#: src/common/servlist.c:1102 #, c-format -msgid "Warning: \"%s\" character set is unknown. No conversion will be applied for network %s." -msgstr "Warnung: Zeichensatz \"%s\" ist unbekannt. Es wird keine Konvertierung für Netzwerk %s vorgenommen." +msgid "" +"Warning: \"%s\" character set is unknown. No conversion will be applied for " +"network %s." +msgstr "" +"Warnung: Zeichensatz »%s« ist unbekannt. Es wird keine Konvertierung für " +"Netzwerk %s vorgenommen." #: src/common/textevents.h:6 msgid "%C22*%O$t$1 added to notify list." @@ -614,7 +715,7 @@ msgstr "%C22*%O$t$1 Bannliste:%C19 $4%C20 $2%C21 $3" #: src/common/textevents.h:12 msgid "%C22*%O$tCannot join%C26 %B$1 %O(You are banned)." -msgstr "%C22*%O$tKann%C26 %B$1%O$t nicht betreten %O(Du bist gebannt)." +msgstr "%C22*%O$tKann%C26 %B$1%O$t nicht betreten %O(Sie sind gebannt)." #: src/common/textevents.h:18 msgid "%C22*%O$t$1 is now known as $2" @@ -702,11 +803,11 @@ msgstr "%C22*%O$t%C26$1%O gibt Voice-Status an%C26 $2" #: src/common/textevents.h:96 msgid "%C22*%O$t%C22Connected. Now logging in..." -msgstr "%C22*%O$t%C22Verbunden. Anmeldevorgang läuft..." +msgstr "%C22*%O$t%C22Verbunden. Anmeldevorgang läuft …" #: src/common/textevents.h:99 msgid "%C22*%O$t%C22Connecting to $1 ($2) port $3%O..." -msgstr "%C22*%O$t%C22Verbinde mit $1 ($2) Port $3%O..." +msgstr "%C22*%O$t%C22Baue Verbindung mit $1 ($2) Port $3 auf%O …" #: src/common/textevents.h:102 msgid "%C21*%O$t%C21Connection failed. Error: $1" @@ -770,8 +871,12 @@ msgid "%C24,18 Type To/From Status Size Pos File " msgstr "%C24,18 Typ Zu/Von Status Größe Pos Datei" #: src/common/textevents.h:147 -msgid "%C22*%O$tReceived a malformed DCC request from %C26$1%O.%010%C22*%O$tContents of packet: $2" -msgstr "%C22*%O$tFehlformatierte DCC Anforderung von %C26$1%O.%010%C22*%O$tInhalt des Pakets: $2" +msgid "" +"%C22*%O$tReceived a malformed DCC request from %C26$1%O.%010%C22*%O" +"$tContents of packet: $2" +msgstr "" +"%C22*%O$tFehlformatierte DCC Anforderung von %C26$1%O.%010%C22*%O$tInhalt " +"des Pakets: $2" #: src/common/textevents.h:150 msgid "%C22*%O$tOffering%C26 $1%O to%C26 $2" @@ -786,8 +891,10 @@ msgid "%C22*%O$tDCC RECV%C26 $2%O to%C26 $1%O aborted." msgstr "%C22*%O$tDCC RECV%C26 $2%O von%C26 $1%O abgebrochen." #: src/common/textevents.h:159 -msgid "%C22*%O$tDCC RECV%C26 $1%O from%C26 $3%O complete %C30[%C26$4%O cps%C30]%O." -msgstr "%C22*%O$tDCC RECV%C26 $1%O von%C26 $3%O vollständig %C30[%C26$4%O cps%C30]%O." +msgid "" +"%C22*%O$tDCC RECV%C26 $1%O from%C26 $3%O complete %C30[%C26$4%O cps%C30]%O." +msgstr "" +"%C22*%O$tDCC RECV%C26 $1%O von%C26 $3%O vollständig %C30[%C26$4%O cps%C30]%O." #: src/common/textevents.h:162 msgid "%C22*%O$tDCC RECV connection established to%C26 $1 %C30[%O$2%C30]" @@ -802,20 +909,26 @@ msgid "%C22*%O$tDCC RECV: Cannot open $1 for writing ($2)." msgstr "%C22*%O$tDCC RECV: Kann $1 nicht schreiben ($2)." #: src/common/textevents.h:171 -msgid "%C22*%O$tThe file%C26 $1%C already exists, saving it as%C26 $2%O instead." -msgstr "%C22*%O$tDie Datei%C26 $1%C existiert bereits, speichere stattdessen als%C26 $2%O." +msgid "" +"%C22*%O$tThe file%C26 $1%C already exists, saving it as%C26 $2%O instead." +msgstr "" +"%C22*%O$tDie Datei%C26 $1%C existiert bereits, speichere stattdessen als%C26 " +"$2%O." #: src/common/textevents.h:174 msgid "%C22*%O$t%C26$1 %Ohas requested to resume%C26 $2 %Cfrom%C26 $3%C." -msgstr "%C22*%O$t%C26$1 %Ohat angefordert,%C26 $2 %Cvon%C26 $3%C an fortzusetzen." +msgstr "" +"%C22*%O$t%C26$1 %Ohat angefordert,%C26 $2 %Cvon%C26 $3%C an fortzusetzen." #: src/common/textevents.h:177 msgid "%C22*%O$tDCC SEND%C26 $2%O to%C26 $1%O aborted." msgstr "%C22*%O$tDCC SEND%C26 $2%O an%C26 $1%O abgebrochen." #: src/common/textevents.h:180 -msgid "%C22*%O$tDCC SEND%C26 $1%O to%C26 $2%O complete %C30[%C26$3%O cps%C30]%O." -msgstr "%C22*%O$tDCC SEND%C26 $1%O an%C26 $2%O vollständig %C30[%C26$3%O cps%C30]%O." +msgid "" +"%C22*%O$tDCC SEND%C26 $1%O to%C26 $2%O complete %C30[%C26$3%O cps%C30]%O." +msgstr "" +"%C22*%O$tDCC SEND%C26 $1%O an%C26 $2%O vollständig %C30[%C26$3%O cps%C30]%O." #: src/common/textevents.h:183 msgid "%C22*%O$tDCC SEND connection established to%C26 $1 %C30[%O$2%C30]" @@ -847,7 +960,7 @@ msgstr "%C22*%O$tGetrennt ($1)." #: src/common/textevents.h:204 msgid "%C22*%O$tFound your IP: [$1]" -msgstr "%C22*%O$tHabe Deine IP gefunden: [$1]" +msgstr "%C22*%O$tIhre IP wurde gefunden: [$1]" #: src/common/textevents.h:210 msgid "%O%C26$1%O added to ignore list." @@ -877,11 +990,13 @@ msgstr " Niemand wird ignoriert." #: src/common/textevents.h:228 msgid "%C22*%O$tCannot join%C26 %B$1 %O(Channel is invite only)." -msgstr "%C22*%O$tKann%C26 %B$1 %O$tnicht betreten %O(Channel ist nur auf Einladung zu betreten)." +msgstr "" +"%C22*%O$tKann%C26 %B$1 %O$tnicht betreten %O(Channel ist nur auf Einladung " +"zu betreten)." #: src/common/textevents.h:231 msgid "%C22*%O$tYou have been invited to%C26 $1%O by%C26 $2%C (%C26$3%C)" -msgstr "%C22*%O$tDu wurdest von%C26 $2%C nach %C26 $1%O eingeladen (%C26$3%C)" +msgstr "%C22*%O$tSie wurden von%C26 $2%C nach %C26 $1%O eingeladen (%C26$3%C)" #: src/common/textevents.h:234 msgid "%C19*%O$t%C19%B$1 %B($3) has joined $2" @@ -897,7 +1012,7 @@ msgstr "%C21*%O$t%C21$1 hat $2 aus $3 gekickt ($4%O%C21)" #: src/common/textevents.h:243 msgid "%C22*%O$tYou have been killed by $1 ($2%O%C22)" -msgstr "%C22*%O$tDu bist von $1 gekillt worden ($2%O%C22)" +msgstr "%C22*%O$tSie sind von $1 gekillt worden ($2%O%C22)" #: src/common/textevents.h:252 msgid "%C22*%O$t%C22MOTD Skipped." @@ -905,11 +1020,13 @@ msgstr "%C22*%O$t%C22MOTD übersprungen." #: src/common/textevents.h:255 msgid "%C22*%O$t$1 already in use. Retrying with $2..." -msgstr "%C22*%O$t$1 bereits in Benutzung. Erneuter Versuch mit $2..." +msgstr "%C22*%O$t$1 bereits in Benutzung. Erneuter Versuch mit $2 …" #: src/common/textevents.h:258 msgid "%C22*%O$tNickname already in use. Use /NICK to try another." -msgstr "%C22*%O$tNickname bereits in Benutzung, benutze /NICK um einen anderen zu probieren." +msgstr "" +"%C22*%O$tNickname bereits in Benutzung, benutze /NICK um einen anderen zu " +"probieren." #: src/common/textevents.h:261 msgid "%C22*%O$tNo such DCC." @@ -955,683 +1072,597 @@ msgstr "%C22*%O$tPing-Antwort von $1: $2 Sekunde(n)" msgid "%C22*%O$tNo ping reply for $1 seconds, disconnecting." msgstr "%C22*%O$tKeine Ping-Antwort seit $1 Sekunden, trenne." -#: src/common/textevents.h:309 +#: src/common/textevents.h:315 msgid "%C22*%O$tA process is already running" msgstr "%C22*%O$tEin Prozess läuft bereits" -#: src/common/textevents.h:312 +#: src/common/textevents.h:318 msgid "%C23*%O$t%C23$1 has quit (%O%C23%B%B$2%O%C23)" msgstr "%C23*%O$t%C23$1 hat die Verbindung getrennt (%O%C23%B%B$2%O%C23)" -#: src/common/textevents.h:315 +#: src/common/textevents.h:321 msgid "%C22*%O$t$1 sets modes%B %C30[%O$2%B%C30]" msgstr "%C22*%O$t$1 setzt die Modi%B %C30[%O$2%B%C30]" -#: src/common/textevents.h:318 +#: src/common/textevents.h:324 msgid "%C28-%C29$1/Wallops%C28-%O$t$2" msgstr "%C28-%C29$1/Wallops%C28-%O$t$2" -#: src/common/textevents.h:321 +#: src/common/textevents.h:327 msgid "%C22*%O$tLooking up IP number for%C26 $1%O..." -msgstr "%C22*%O$tSuche nach IP-Nummer für%C26 $1%O..." +msgstr "%C22*%O$tSuche nach IP für%C26 $1%O …" -#: src/common/textevents.h:324 +#: src/common/textevents.h:330 msgid "%C22*%O$t%C22Connected." msgstr "%C22*%O$t%C22Verbunden." -#: src/common/textevents.h:330 +#: src/common/textevents.h:336 msgid "%C22*%O$t%C22Looking up $1" msgstr "%C22*%O$t%C22Suche nach $1" -#: src/common/textevents.h:339 +#: src/common/textevents.h:348 msgid "%C22*%O$tStopped previous connection attempt (pid=$1)" msgstr "%C22*%O$tVorhergehender Verbindungsversuch (PID=$1) abgebrochen" -#: src/common/textevents.h:342 +#: src/common/textevents.h:351 msgid "%C29*%O$t%C29Topic for $1%C %C29is: $2" msgstr "%C29*%O$t%C29Das Thema für $1%C %C29ist: $2" -#: src/common/textevents.h:345 +#: src/common/textevents.h:354 msgid "%C22*%O$t$1 has changed the topic to: $2" msgstr "%C22*%O$t$1 hat das Thema geändert zu: $2" -#: src/common/textevents.h:348 +#: src/common/textevents.h:357 msgid "%C29*%O$t%C29Topic for $1%C %C29set by $2%C %C29at $3" msgstr "%C29*%O$t%C29Das Thema für $1%C %C29wurde gesetzt durch $2%C %C29um $3" -#: src/common/textevents.h:351 +#: src/common/textevents.h:360 msgid "%C22*%O$tUnknown host. Maybe you misspelled it?" -msgstr "%C22*%O$tUnbekannter Host. Vielleicht hast Du ihn falsch geschrieben?" +msgstr "%C22*%O$tUnbekannter Host. Vielleicht haben Sie ihn falsch geschrieben?" -#: src/common/textevents.h:354 +#: src/common/textevents.h:363 msgid "%C22*%O$tCannot join%C26 %B$1 %O(User limit reached)." msgstr "%C22*%O$tKann%C26 %B$1 %Onicht betreten (Benutzerobergrenze erreicht)." -#: src/common/textevents.h:357 +#: src/common/textevents.h:366 msgid "%C22*%O$t%C26Users on $1:%C $2" msgstr "%C22*%O$t%C26Benutzer in $1:%C $2" -#: src/common/textevents.h:360 +#: src/common/textevents.h:369 msgid "%C22*%O$t%C28[%O$1%C28] %O$2%C27 $3" msgstr "%C22*%O$t%C28[%O$1%C28] %O$2%C27 $3" -#: src/common/textevents.h:363 +#: src/common/textevents.h:372 msgid "%C22*%O$t%C28[%O$1%C28] %Cis away %C30(%O$2%O%C30)" msgstr "%C22*%O$t%C28[%O$1%C28] %Cist abwesend %C30(%O$2%O%C30)" -#: src/common/textevents.h:366 -#: src/common/textevents.h:372 -#: src/common/textevents.h:387 -#: src/common/textevents.h:390 +#: src/common/textevents.h:375 src/common/textevents.h:381 +#: src/common/textevents.h:396 src/common/textevents.h:399 msgid "%C22*%O$t%C28[%O$1%C28]%O $2" msgstr "%C22*%O$t%C28[%O$1%C28]%O $2" -#: src/common/textevents.h:369 +#: src/common/textevents.h:378 msgid "%C22*%O$t%C28[%O$1%C28] %OEnd of WHOIS list." msgstr "%C22*%O$t%C28[%O$1%C28] %OEnde der WHOIS-Liste." -#: src/common/textevents.h:375 +#: src/common/textevents.h:384 msgid "%C22*%O$t%C28[%O$1%C28]%O idle%C26 $2" msgstr "%C22*%O$t%C28[%O$1%C28]%O untätig%C26 $2" -#: src/common/textevents.h:378 +#: src/common/textevents.h:387 msgid "%C22*%O$t%C28[%O$1%C28]%O idle%C26 $2%O, signon:%C26 $3" msgstr "%C22*%O$t%C28[%O$1%C28]%O untätig%C26 $2%O, Online seit:%C26 $3" -#: src/common/textevents.h:381 +#: src/common/textevents.h:390 msgid "%C22*%O$t%C28[%O$1%C28] %C30(%O$2@$3%C30)%O: $4" msgstr "%C22*%O$t%C28[%O$1%C28] %C30(%O$2@$3%C30)%O: $4" -#: src/common/textevents.h:384 +#: src/common/textevents.h:393 msgid "%C22*%O$t%C28[%O$1%C28] %Oreal user@host%C27 $2%O, real IP%C27 $3" msgstr "%C22*%O$t%C28[%O$1%C28] %Owahrer Nutzer@Host%C27 $2%O, wahre IP%C27 $3" -#: src/common/textevents.h:393 +#: src/common/textevents.h:402 msgid "%C19*%O$t%C19Now talking on $2" -msgstr "%C19*%O$t%C19Du sprichst jetzt in $2" +msgstr "%C19*%O$t%C19Sie sprechen jetzt in $2" -#: src/common/textevents.h:396 +#: src/common/textevents.h:405 msgid "%C23*$tYou have been kicked from $2 by $3 ($4%O%C23)" -msgstr "%C23*$tDu wurdest durch $3 aus $2 gekickt ($4%O%C23)" +msgstr "%C23*$tSie wurden durch $3 aus $2 gekickt ($4%O%C23)" -#: src/common/textevents.h:399 +#: src/common/textevents.h:408 #, c-format msgid "%C23*$tYou have left channel $3" -msgstr "%C23*$tDu hast Channel $3 verlassen" +msgstr "%C23*$tSie haben den Channel $3 verlassen" -#: src/common/textevents.h:402 +#: src/common/textevents.h:411 msgid "%C23*$tYou have left channel $3 (%O%C23%B%B$4%O%C23)" -msgstr "%C23*$tDu hast Channel $3 verlassen (%O%C23%B%B$4%O%C23)" +msgstr "%C23*$tSie haben den Channel $3 verlassen (%O%C23%B%B$4%O%C23)" -#: src/common/textevents.h:408 +#: src/common/textevents.h:417 msgid "%C22*%O$tYou've invited%C26 $1%O to%C26 $2%O (%C26$3%O)" -msgstr "%C22*%O$tDu hast %C26 $1%O nach%C26 $2%O$t eingeladen %O(%C26$3%O)" +msgstr "%C22*%O$tSie haben %C26 $1%O nach%C26 $2%O$t eingeladen %O(%C26$3%O)" -#: src/common/textevents.h:414 +#: src/common/textevents.h:423 msgid "%C22*%O$tYou are now known as $2" -msgstr "%C22*%O$tDu bist jetzt bekannt als $2" +msgstr "%C22*%O$tSie sind jetzt als $2 bekannt" -#: src/common/text.c:287 +#: src/common/text.c:357 src/common/text.c:396 msgid "Loaded log from" -msgstr "Logbuch geladen von" +msgstr "Logbuch geladen vom" -#: src/common/text.c:305 +#: src/common/text.c:415 #, c-format msgid "**** ENDING LOGGING AT %s\n" msgstr "**** BEENDE LOGBUCH UM %s\n" -#: src/common/text.c:514 +#: src/common/text.c:624 #, c-format msgid "**** BEGIN LOGGING AT %s\n" msgstr "**** BEGINNE LOGBUCH UM %s\n" -#: src/common/text.c:533 +#: src/common/text.c:643 #, c-format msgid "" "* Can't open log file(s) for writing. Check the\n" " permissions on %s/xchatlogs" msgstr "" -"* Kann Logbuchdatei(en) nicht zum Schreiben öffnen. Prüfe\n" -" die Berechtigungen von %s/xchatlogs" +"* Die Logbuchdatei(en) konnte(n) nicht zum Schreiben\n" +" geöffnet werden. Überprüfen Sie die Berechtigungen\n" +" von »%s/xchatlogs«" + -#: src/common/text.c:871 +#: src/common/text.c:1057 msgid "Left message" msgstr "Linke Nachricht" -#: src/common/text.c:872 +#: src/common/text.c:1058 msgid "Right message" msgstr "Rechte Nachricht" -#: src/common/text.c:876 +#: src/common/text.c:1062 msgid "The nick of the joining person" msgstr "Der Nick der Person, die den Channel betritt" -#: src/common/text.c:877 +#: src/common/text.c:1063 msgid "The channel being joined" msgstr "Der Channel, der betreten wird" -#: src/common/text.c:878 -#: src/common/text.c:925 -#: src/common/text.c:976 +#: src/common/text.c:1064 src/common/text.c:1112 src/common/text.c:1163 msgid "The host of the person" msgstr "Die Hostmask der Person" -#: src/common/text.c:882 -#: src/common/text.c:888 -#: src/common/text.c:895 -#: src/common/text.c:1083 -#: src/common/text.c:1090 -#: src/common/text.c:1095 -#: src/common/text.c:1100 -#: src/common/text.c:1105 -#: src/common/text.c:1111 -#: src/common/text.c:1116 -#: src/common/text.c:1120 -#: src/common/text.c:1126 -#: src/common/text.c:1132 -#: src/common/text.c:1178 -#: src/common/text.c:1189 -#: src/common/text.c:1194 -#: src/common/text.c:1199 -#: src/common/text.c:1208 -#: src/common/text.c:1219 -#: src/common/text.c:1226 -#: src/common/text.c:1232 -#: src/common/text.c:1237 -#: src/common/text.c:1242 -#: src/common/text.c:1249 -#: src/common/text.c:1255 -#: src/common/text.c:1261 -#: src/common/text.c:1266 -#: src/common/text.c:1271 -#: src/common/text.c:1275 -#: src/common/text.c:1281 -#: src/common/text.c:1289 -#: src/common/text.c:1323 -#: src/common/text.c:1328 +#: src/common/text.c:1068 src/common/text.c:1075 src/common/text.c:1082 +#: src/common/text.c:1270 src/common/text.c:1277 src/common/text.c:1282 +#: src/common/text.c:1287 src/common/text.c:1292 src/common/text.c:1298 +#: src/common/text.c:1303 src/common/text.c:1307 src/common/text.c:1313 +#: src/common/text.c:1319 src/common/text.c:1371 src/common/text.c:1382 +#: src/common/text.c:1387 src/common/text.c:1392 src/common/text.c:1401 +#: src/common/text.c:1412 src/common/text.c:1419 src/common/text.c:1425 +#: src/common/text.c:1430 src/common/text.c:1435 src/common/text.c:1442 +#: src/common/text.c:1448 src/common/text.c:1454 src/common/text.c:1459 +#: src/common/text.c:1464 src/common/text.c:1468 src/common/text.c:1474 +#: src/common/text.c:1482 src/common/text.c:1516 src/common/text.c:1521 msgid "Nickname" msgstr "Nickname" -#: src/common/text.c:883 +#: src/common/text.c:1069 msgid "The action" msgstr "Die Aktion" -#: src/common/text.c:884 -#: src/common/text.c:890 +#: src/common/text.c:1070 src/common/text.c:1077 msgid "Mode char" msgstr "Moduszeichen" -#: src/common/text.c:889 -msgid "The text" -msgstr "Der Text" - -#: src/common/text.c:891 -#: src/common/text.c:897 +#: src/common/text.c:1071 src/common/text.c:1078 src/common/text.c:1084 msgid "Identified text" msgstr "Identifierter Text" -#: src/common/text.c:896 -#: src/common/text.c:953 -#: src/common/text.c:959 +#: src/common/text.c:1076 +msgid "The text" +msgstr "Der Text" + +#: src/common/text.c:1083 src/common/text.c:1140 src/common/text.c:1146 msgid "The message" msgstr "Die Nachricht" -#: src/common/text.c:901 -#: src/common/text.c:963 +#: src/common/text.c:1088 src/common/text.c:1150 msgid "Old nickname" msgstr "Alter Nickname" -#: src/common/text.c:902 -#: src/common/text.c:964 +#: src/common/text.c:1089 src/common/text.c:1151 msgid "New nickname" msgstr "Neuer Nickname" -#: src/common/text.c:906 +#: src/common/text.c:1093 msgid "Nick of person who changed the topic" msgstr "Nick der Person, die das Thema geändert hat" -#: src/common/text.c:907 -#: src/common/text.c:913 -#: src/fe-gtk/chanlist.c:756 -#: src/fe-gtk/chanlist.c:859 +#: src/common/text.c:1094 src/common/text.c:1100 src/fe-gtk/chanlist.c:769 +#: src/fe-gtk/chanlist.c:872 msgid "Topic" msgstr "Thema" -#: src/common/text.c:908 -#: src/common/text.c:912 -#: src/common/text.c:1343 -#: src/fe-gtk/chanlist.c:754 -#: src/fe-gtk/ignoregui.c:176 +#: src/common/text.c:1095 src/common/text.c:1099 src/common/text.c:1536 +#: src/fe-gtk/chanlist.c:767 src/fe-gtk/ignoregui.c:174 +#: src/fe-gtk/servlistgui.c:890 msgid "Channel" msgstr "Channel" -#: src/common/text.c:917 -#: src/common/text.c:970 +#: src/common/text.c:1104 src/common/text.c:1157 msgid "The nickname of the kicker" msgstr "Der Nickname des Kickenden" -#: src/common/text.c:918 -#: src/common/text.c:968 +#: src/common/text.c:1105 src/common/text.c:1155 msgid "The person being kicked" msgstr "Die Person, die gekickt wird" -#: src/common/text.c:919 -#: src/common/text.c:926 -#: src/common/text.c:930 -#: src/common/text.c:935 -#: src/common/text.c:969 -#: src/common/text.c:977 -#: src/common/text.c:984 +#: src/common/text.c:1106 src/common/text.c:1113 src/common/text.c:1117 +#: src/common/text.c:1122 src/common/text.c:1156 src/common/text.c:1164 +#: src/common/text.c:1171 msgid "The channel" msgstr "Der Channel" -#: src/common/text.c:920 -#: src/common/text.c:971 -#: src/common/text.c:978 +#: src/common/text.c:1107 src/common/text.c:1158 src/common/text.c:1165 msgid "The reason" msgstr "Der Grund" -#: src/common/text.c:924 -#: src/common/text.c:975 +#: src/common/text.c:1111 src/common/text.c:1162 msgid "The nick of the person leaving" -msgstr "Der Nick der Person, die den Channel verläßt" +msgstr "Der Nick der Person, die den Channel verlässt" -#: src/common/text.c:931 -#: src/common/text.c:937 +#: src/common/text.c:1118 src/common/text.c:1124 msgid "The time" msgstr "Die Zeit" -#: src/common/text.c:936 +#: src/common/text.c:1123 msgid "The creator" msgstr "Der Erzeuger" -#: src/common/text.c:941 -#: src/fe-gtk/dccgui.c:763 -#: src/fe-gtk/dccgui.c:994 +#: src/common/text.c:1128 src/fe-gtk/dccgui.c:768 src/fe-gtk/dccgui.c:1001 msgid "Nick" msgstr "Nick" -#: src/common/text.c:942 -#: src/common/text.c:1195 +#: src/common/text.c:1129 src/common/text.c:1388 msgid "Reason" msgstr "Grund" -#: src/common/text.c:943 -#: src/common/text.c:1085 -#: src/common/text.c:1168 +#: src/common/text.c:1130 src/common/text.c:1272 src/common/text.c:1361 msgid "Host" msgstr "Host" -#: src/common/text.c:947 -#: src/common/text.c:952 -#: src/common/text.c:957 +#: src/common/text.c:1134 src/common/text.c:1139 src/common/text.c:1144 msgid "Who it's from" msgstr "Von wem es ist" -#: src/common/text.c:948 +#: src/common/text.c:1135 msgid "The time in x.x format (see below)" msgstr "Die Zeit im x.x-Format (siehe unten)" -#: src/common/text.c:958 -#: src/common/text.c:995 +#: src/common/text.c:1145 src/common/text.c:1182 msgid "The Channel it's going to" msgstr "Der Channel an den es geht" -#: src/common/text.c:982 +#: src/common/text.c:1169 msgid "The sound" msgstr "Der Klang" -#: src/common/text.c:983 -#: src/common/text.c:989 -#: src/common/text.c:994 +#: src/common/text.c:1170 src/common/text.c:1176 src/common/text.c:1181 msgid "The nick of the person" msgstr "Der Nick der Person" -#: src/common/text.c:988 -#: src/common/text.c:993 +#: src/common/text.c:1175 src/common/text.c:1180 msgid "The CTCP event" msgstr "Das CTCP-Ereignis" -#: src/common/text.c:999 +#: src/common/text.c:1186 msgid "The nick of the person who set the key" msgstr "Der Nick der Person, die den Schlüssel gesetzt hat" -#: src/common/text.c:1000 +#: src/common/text.c:1187 msgid "The key" msgstr "Der Schlüssel" -#: src/common/text.c:1004 +#: src/common/text.c:1191 msgid "The nick of the person who set the limit" msgstr "Der Nick der Person, die das Limit gesetzt hat" -#: src/common/text.c:1005 +#: src/common/text.c:1192 msgid "The limit" msgstr "Das Limit" -#: src/common/text.c:1009 +#: src/common/text.c:1196 msgid "The nick of the person who did the op'ing" msgstr "Der Nick der Person, die Op-Status erteilte" -#: src/common/text.c:1010 +#: src/common/text.c:1197 msgid "The nick of the person who has been op'ed" msgstr "Der Nick der Person, die Op-Status erhielt" -#: src/common/text.c:1014 +#: src/common/text.c:1201 msgid "The nick of the person who has been halfop'ed" msgstr "Der Nick der Person, die HalfOp-Status erhielt" -#: src/common/text.c:1015 +#: src/common/text.c:1202 msgid "The nick of the person who did the halfop'ing" msgstr "Der Nick der Person, die HalfOp-Status erteilte" -#: src/common/text.c:1019 +#: src/common/text.c:1206 msgid "The nick of the person who did the voice'ing" msgstr "Der Nick der Person, die Voice erteilte" -#: src/common/text.c:1020 +#: src/common/text.c:1207 msgid "The nick of the person who has been voice'ed" msgstr "Der Nick der Person, die Voice erhielt" -#: src/common/text.c:1024 +#: src/common/text.c:1211 msgid "The nick of the person who did the banning" msgstr "Der Nick der Person, die bannte" -#: src/common/text.c:1025 -#: src/common/text.c:1052 +#: src/common/text.c:1212 src/common/text.c:1239 msgid "The ban mask" msgstr "Die Bannmaske" -#: src/common/text.c:1029 +#: src/common/text.c:1216 msgid "The nick who removed the key" msgstr "Der Nick, der den Schlüssel entfernte" -#: src/common/text.c:1033 +#: src/common/text.c:1220 msgid "The nick who removed the limit" msgstr "Der Nick, der das Limit entfernte" -#: src/common/text.c:1037 +#: src/common/text.c:1224 msgid "The nick of the person of did the deop'ing" msgstr "Der Nick der Person, die Op nahm" -#: src/common/text.c:1038 +#: src/common/text.c:1225 msgid "The nick of the person who has been deop'ed" msgstr "Der Nick der Person, die Op abgenommen bekam" -#: src/common/text.c:1041 +#: src/common/text.c:1228 msgid "The nick of the person of did the dehalfop'ing" msgstr "Der Nick der Person, die HalfOp nahm" -#: src/common/text.c:1042 +#: src/common/text.c:1229 msgid "The nick of the person who has been dehalfop'ed" msgstr "Der Nick der Person, die HalfOp abgenommen bekam" -#: src/common/text.c:1046 +#: src/common/text.c:1233 msgid "The nick of the person of did the devoice'ing" msgstr "Der Nick der Person, die Voice nahm" -#: src/common/text.c:1047 +#: src/common/text.c:1234 msgid "The nick of the person who has been devoice'ed" msgstr "Der Nick der Person, die Voice abgenommen bekam" -#: src/common/text.c:1051 +#: src/common/text.c:1238 msgid "The nick of the person of did the unban'ing" msgstr "Der Nick der Person, die den Bann entfernte" -#: src/common/text.c:1056 +#: src/common/text.c:1243 msgid "The nick of the person who did the exempt" msgstr "Der Nick der Person, die die Ausnahme setzte" -#: src/common/text.c:1057 -#: src/common/text.c:1062 +#: src/common/text.c:1244 src/common/text.c:1249 msgid "The exempt mask" msgstr "Die Ausnahme-Maske" -#: src/common/text.c:1061 +#: src/common/text.c:1248 msgid "The nick of the person removed the exempt" msgstr "Der Nick der Person, die die Ausnahme entfernte" -#: src/common/text.c:1066 +#: src/common/text.c:1253 msgid "The nick of the person who did the invite" msgstr "Der Nick der Person, die die Einladung aussprach" -#: src/common/text.c:1067 -#: src/common/text.c:1072 +#: src/common/text.c:1254 src/common/text.c:1259 msgid "The invite mask" msgstr "Die Einladungs-Maske" -#: src/common/text.c:1071 +#: src/common/text.c:1258 msgid "The nick of the person removed the invite" msgstr "Der Nick der Person, die die Einladung zurücknahm" -#: src/common/text.c:1076 +#: src/common/text.c:1263 msgid "The nick of the person setting the mode" msgstr "Der Nick der Person, die den Modus setzte" -#: src/common/text.c:1077 +#: src/common/text.c:1264 msgid "The mode's sign (+/-)" msgstr "Die Moduszeichen (+/-)" -#: src/common/text.c:1078 +#: src/common/text.c:1265 msgid "The mode letter" msgstr "Der Modusbuchstabe" -#: src/common/text.c:1079 +#: src/common/text.c:1266 msgid "The channel it's being set on" msgstr "Der Channel, der eingestellt wird" -#: src/common/text.c:1084 +#: src/common/text.c:1271 msgid "Username" msgstr "Benutzername" -#: src/common/text.c:1086 +#: src/common/text.c:1273 msgid "Full name" msgstr "Voller Name" -#: src/common/text.c:1091 +#: src/common/text.c:1278 msgid "Channel Membership/\"is an IRC operator\"" -msgstr "Channelinformation/\"ist ein IRC-Operator\"" +msgstr "Channelinformation/»ist ein IRC-Operator«" -#: src/common/text.c:1096 +#: src/common/text.c:1283 msgid "Server Information" msgstr "Server-Information" -#: src/common/text.c:1101 -#: src/common/text.c:1106 +#: src/common/text.c:1288 src/common/text.c:1293 msgid "Idle time" msgstr "Untätig" -#: src/common/text.c:1107 +#: src/common/text.c:1294 msgid "Signon time" msgstr "Zeitpunkt der Einwahl" -#: src/common/text.c:1112 +#: src/common/text.c:1299 msgid "Away reason" msgstr "Abwesenheitsgrund" -#: src/common/text.c:1121 -#: src/common/text.c:1127 -#: src/common/text.c:1135 -#: src/common/text.c:1315 +#: src/common/text.c:1308 src/common/text.c:1314 src/common/text.c:1322 +#: src/common/text.c:1508 msgid "Message" msgstr "Nachricht" -#: src/common/text.c:1128 +#: src/common/text.c:1315 msgid "Account" msgstr "Konto" -#: src/common/text.c:1133 +#: src/common/text.c:1320 msgid "Real user@host" msgstr "Echter Benutzer@Host" -#: src/common/text.c:1134 +#: src/common/text.c:1321 msgid "Real IP" msgstr "Echte IP" -#: src/common/text.c:1139 -#: src/common/text.c:1148 -#: src/common/text.c:1154 -#: src/common/text.c:1184 -#: src/common/text.c:1338 +#: src/common/text.c:1326 src/common/text.c:1341 src/common/text.c:1347 +#: src/common/text.c:1377 src/common/text.c:1531 msgid "Channel Name" msgstr "Channel-Name" -#: src/common/text.c:1143 -#: src/common/text.c:1301 -#: src/fe-gtk/menu.c:1240 -#: src/fe-gtk/menu.c:1420 -#: src/fe-gtk/textgui.c:390 +#: src/common/text.c:1330 src/common/text.c:1336 src/common/text.c:1494 +#: src/fe-gtk/menu.c:1442 src/fe-gtk/menu.c:1630 src/fe-gtk/textgui.c:390 msgid "Text" msgstr "Text" -#: src/common/text.c:1144 -#: src/common/text.c:1150 -#: src/common/text.c:1179 -#: src/common/text.c:1297 -#: src/common/text.c:1339 +#: src/common/text.c:1331 src/common/text.c:1337 src/common/text.c:1343 +#: src/common/text.c:1372 src/common/text.c:1490 src/common/text.c:1532 msgid "Server Name" msgstr "Server-Name" -#: src/common/text.c:1149 +#: src/common/text.c:1332 +msgid "Raw Numeric or Identifier" +msgstr "Zahl oder Bezeichner" + +#: src/common/text.c:1342 msgid "Nick of person who invited you" -msgstr "Nick der Person, die Dich einlud" +msgstr "Nick der Person, die Sie einlud" -#: src/common/text.c:1155 -#: src/fe-gtk/chanlist.c:755 +#: src/common/text.c:1348 src/fe-gtk/chanlist.c:768 msgid "Users" msgstr "Benutzer" -#: src/common/text.c:1159 +#: src/common/text.c:1352 msgid "Nickname in use" msgstr "Nickname in Benutzung" -#: src/common/text.c:1160 +#: src/common/text.c:1353 msgid "Nick being tried" msgstr "Nick wird versucht" -#: src/common/text.c:1169 -#: src/common/text.c:1305 +#: src/common/text.c:1362 src/common/text.c:1498 msgid "IP" msgstr "IP" -#: src/common/text.c:1170 -#: src/common/text.c:1201 +#: src/common/text.c:1363 src/common/text.c:1394 msgid "Port" msgstr "Port" -#: src/common/text.c:1180 -#: src/fe-gtk/notifygui.c:139 -#: src/fe-gtk/setup.c:1669 +#: src/common/text.c:1373 src/fe-gtk/notifygui.c:137 src/fe-gtk/setup.c:1787 msgid "Network" msgstr "Netzwerk" -#: src/common/text.c:1185 -#: src/common/text.c:1190 +#: src/common/text.c:1378 src/common/text.c:1383 msgid "Modes string" msgstr "Modusfolge" -#: src/common/text.c:1200 -#: src/common/text.c:1238 -#: src/common/text.c:1243 -#: src/common/text.c:1284 +#: src/common/text.c:1393 src/common/text.c:1431 src/common/text.c:1436 +#: src/common/text.c:1477 msgid "IP address" msgstr "IP-Adresse" -#: src/common/text.c:1206 -#: src/common/text.c:1231 +#: src/common/text.c:1399 src/common/text.c:1424 msgid "DCC Type" msgstr "DCC-Typ" -#: src/common/text.c:1207 -#: src/common/text.c:1212 -#: src/common/text.c:1217 -#: src/common/text.c:1224 -#: src/common/text.c:1244 -#: src/common/text.c:1248 -#: src/common/text.c:1254 -#: src/common/text.c:1260 -#: src/common/text.c:1267 -#: src/common/text.c:1276 -#: src/common/text.c:1282 +#: src/common/text.c:1400 src/common/text.c:1405 src/common/text.c:1410 +#: src/common/text.c:1417 src/common/text.c:1437 src/common/text.c:1441 +#: src/common/text.c:1447 src/common/text.c:1453 src/common/text.c:1460 +#: src/common/text.c:1469 src/common/text.c:1475 msgid "Filename" msgstr "Dateiname" -#: src/common/text.c:1218 -#: src/common/text.c:1225 +#: src/common/text.c:1411 src/common/text.c:1418 msgid "Destination filename" msgstr "Zieldateiname" -#: src/common/text.c:1227 -#: src/common/text.c:1256 +#: src/common/text.c:1420 src/common/text.c:1449 msgid "CPS" msgstr "CPS" -#: src/common/text.c:1262 +#: src/common/text.c:1455 msgid "Pathname" msgstr "Pfadname" -#: src/common/text.c:1277 -#: src/fe-gtk/dccgui.c:759 +#: src/common/text.c:1470 src/fe-gtk/dccgui.c:764 msgid "Position" msgstr "Position" -#: src/common/text.c:1283 -#: src/fe-gtk/dccgui.c:758 +#: src/common/text.c:1476 src/fe-gtk/dccgui.c:763 msgid "Size" msgstr "Größe" -#: src/common/text.c:1288 +#: src/common/text.c:1481 msgid "DCC String" msgstr "DCC Zeichenfolge" -#: src/common/text.c:1293 +#: src/common/text.c:1486 msgid "Number of notify items" msgstr "Anzahl der Notify-Einträge" -#: src/common/text.c:1309 +#: src/common/text.c:1502 msgid "Old Filename" msgstr "Alter Dateiname" -#: src/common/text.c:1310 +#: src/common/text.c:1503 msgid "New Filename" msgstr "Neuer Dateiname" -#: src/common/text.c:1314 +#: src/common/text.c:1507 msgid "Receiver" msgstr "Empfänger" -#: src/common/text.c:1319 +#: src/common/text.c:1512 msgid "Hostmask" msgstr "Hostmaske" -#: src/common/text.c:1324 +#: src/common/text.c:1517 msgid "Hostname" msgstr "Hostname" -#: src/common/text.c:1329 +#: src/common/text.c:1522 msgid "The Packet" msgstr "Das Paket" -#: src/common/text.c:1333 +#: src/common/text.c:1526 msgid "Seconds" msgstr "Sekunden" -#: src/common/text.c:1337 +#: src/common/text.c:1530 msgid "Nick of person who have been invited" msgstr "Nick der Person, die eingeladen wurde" -#: src/common/text.c:1344 +#: src/common/text.c:1537 msgid "Banmask" msgstr "Bann-Maske" -#: src/common/text.c:1345 +#: src/common/text.c:1538 msgid "Who set the ban" msgstr "Wer setzte den Bann" -#: src/common/text.c:1346 +#: src/common/text.c:1539 msgid "Ban time" msgstr "Bannzeit" -#: src/common/text.c:1386 +#: src/common/text.c:1579 #, c-format msgid "" "Error parsing event %s.\n" @@ -1640,7 +1671,7 @@ msgstr "" "Fehler beim Abarbeiten von Ereignis %s.\n" "Lade Standard" -#: src/common/text.c:2079 +#: src/common/text.c:2321 #, c-format msgid "" "Cannot read sound file:\n" @@ -1649,1344 +1680,1209 @@ msgstr "" "Kann diese Sounddatei nicht lesen:\n" "%s" -#: src/common/util.c:296 +#: src/common/util.c:302 msgid "Remote host closed socket" msgstr "Gegenseite hat den Socket geschlossen" -#: src/common/util.c:301 +#: src/common/util.c:307 msgid "Connection refused" msgstr "Verbindung verweigert" -#: src/common/util.c:304 +#: src/common/util.c:310 msgid "No route to host" msgstr "Keine Route zum Host" -#: src/common/util.c:306 +#: src/common/util.c:312 msgid "Connection timed out" msgstr "Verbindung wegen Zeitüberschreitung geschlossen" -#: src/common/util.c:308 +#: src/common/util.c:314 msgid "Cannot assign that address" msgstr "Kann diese Adresse nicht zuteilen" -#: src/common/util.c:310 +#: src/common/util.c:316 msgid "Connection reset by peer" msgstr "Verbindung von der Gegenseite zurückgesetzt" -#: src/common/util.c:839 +#: src/common/util.c:955 msgid "Ascension Island" msgstr "Himmelfahrtsinsel" -#: src/common/util.c:840 +#: src/common/util.c:956 msgid "Andorra" msgstr "Andorra" -#: src/common/util.c:841 +#: src/common/util.c:957 msgid "United Arab Emirates" msgstr "Vereinigte Arabische Emirate" -#: src/common/util.c:842 +#: src/common/util.c:958 msgid "Afghanistan" msgstr "Afghanistan" -#: src/common/util.c:843 +#: src/common/util.c:959 msgid "Antigua and Barbuda" msgstr "Antigua und Barbuda" -#: src/common/util.c:844 +#: src/common/util.c:960 msgid "Anguilla" msgstr "Anguilla" -#: src/common/util.c:845 +#: src/common/util.c:961 msgid "Albania" msgstr "Albanien" -#: src/common/util.c:846 +#: src/common/util.c:962 msgid "Armenia" msgstr "Armenien" -#: src/common/util.c:847 +#: src/common/util.c:963 msgid "Netherlands Antilles" msgstr "Niederländische Antillen" -#: src/common/util.c:848 +#: src/common/util.c:964 msgid "Angola" msgstr "Angola" -#: src/common/util.c:849 +#: src/common/util.c:965 msgid "Antarctica" msgstr "Antarktis" -#: src/common/util.c:850 +#: src/common/util.c:966 msgid "Argentina" msgstr "Argentinien" -#: src/common/util.c:851 +#: src/common/util.c:967 msgid "Reverse DNS" msgstr "Reverse DNS" -#: src/common/util.c:852 +#: src/common/util.c:968 msgid "American Samoa" -msgstr "Amerikanisch Samoa" +msgstr "Amerikanisch-Samoa" -#: src/common/util.c:853 +#: src/common/util.c:969 msgid "Austria" msgstr "Österreich" -#: src/common/util.c:854 +#: src/common/util.c:970 msgid "Nato Fiel" msgstr "NATO" -#: src/common/util.c:855 +#: src/common/util.c:971 msgid "Australia" msgstr "Australien" -#: src/common/util.c:856 +#: src/common/util.c:972 msgid "Aruba" msgstr "Aruba" -#: src/common/util.c:857 +#: src/common/util.c:973 msgid "Aland Islands" -msgstr "Åland-Inseln" +msgstr "Åland" -#: src/common/util.c:858 +#: src/common/util.c:974 msgid "Azerbaijan" msgstr "Aserbaidschan" -#: src/common/util.c:859 +#: src/common/util.c:975 msgid "Bosnia and Herzegovina" msgstr "Bosnien und Herzegowina" -#: src/common/util.c:860 +#: src/common/util.c:976 msgid "Barbados" msgstr "Barbados" -#: src/common/util.c:861 +#: src/common/util.c:977 msgid "Bangladesh" msgstr "Bangladesch" -#: src/common/util.c:862 +#: src/common/util.c:978 msgid "Belgium" msgstr "Belgien" -#: src/common/util.c:863 +#: src/common/util.c:979 msgid "Burkina Faso" msgstr "Burkina Faso" -#: src/common/util.c:864 +#: src/common/util.c:980 msgid "Bulgaria" msgstr "Bulgarien" -#: src/common/util.c:865 +#: src/common/util.c:981 msgid "Bahrain" msgstr "Bahrain" -#: src/common/util.c:866 +#: src/common/util.c:982 msgid "Burundi" msgstr "Burundi" -#: src/common/util.c:867 +#: src/common/util.c:983 msgid "Businesses" -msgstr "Geschäftsdomain" +msgstr "Geschäft" -#: src/common/util.c:868 +#: src/common/util.c:984 msgid "Benin" msgstr "Benin" -#: src/common/util.c:869 +#: src/common/util.c:985 msgid "Bermuda" msgstr "Bermuda" -#: src/common/util.c:870 +#: src/common/util.c:986 msgid "Brunei Darussalam" -msgstr "Brunei Darussalam" +msgstr "Brunei" -#: src/common/util.c:871 +#: src/common/util.c:987 msgid "Bolivia" msgstr "Bolivien" -#: src/common/util.c:872 +#: src/common/util.c:988 msgid "Brazil" msgstr "Brasilien" -#: src/common/util.c:873 +#: src/common/util.c:989 msgid "Bahamas" msgstr "Bahamas" -#: src/common/util.c:874 +#: src/common/util.c:990 msgid "Bhutan" msgstr "Bhutan" -#: src/common/util.c:875 +#: src/common/util.c:991 msgid "Bouvet Island" -msgstr "Bouvet-Insel" +msgstr "Bouvetinsel" -#: src/common/util.c:876 +#: src/common/util.c:992 msgid "Botswana" -msgstr "Botsuana" +msgstr "Botswana" -#: src/common/util.c:877 +#: src/common/util.c:993 msgid "Belarus" msgstr "Belarus (Weißrussland)" -#: src/common/util.c:878 +#: src/common/util.c:994 msgid "Belize" msgstr "Belize" -#: src/common/util.c:879 +#: src/common/util.c:995 msgid "Canada" msgstr "Kanada" -#: src/common/util.c:880 +#: src/common/util.c:996 msgid "Cocos Islands" -msgstr "Kokos-Inseln" +msgstr "Kokosinseln" -#: src/common/util.c:881 +#: src/common/util.c:997 msgid "Democratic Republic of Congo" msgstr "Demokratische Republik Kongo" -#: src/common/util.c:882 +#: src/common/util.c:998 msgid "Central African Republic" msgstr "Zentralafrikanische Republik" -#: src/common/util.c:883 +#: src/common/util.c:999 msgid "Congo" msgstr "Kongo" -#: src/common/util.c:884 +#: src/common/util.c:1000 msgid "Switzerland" msgstr "Schweiz" -#: src/common/util.c:885 +#: src/common/util.c:1001 msgid "Cote d'Ivoire" -msgstr "Côte d'Ivoire" +msgstr "Elfenbeinküste" -#: src/common/util.c:886 +#: src/common/util.c:1002 msgid "Cook Islands" -msgstr "Cook-Inseln" +msgstr "Cookinseln" -#: src/common/util.c:887 +#: src/common/util.c:1003 msgid "Chile" msgstr "Chile" -#: src/common/util.c:888 +#: src/common/util.c:1004 msgid "Cameroon" msgstr "Kamerun" -#: src/common/util.c:889 +#: src/common/util.c:1005 msgid "China" msgstr "China" -#: src/common/util.c:890 +#: src/common/util.c:1006 msgid "Colombia" msgstr "Kolumbien" -#: src/common/util.c:891 +#: src/common/util.c:1007 msgid "Internic Commercial" -msgstr "Internic geschäftlich" +msgstr "InterNIC – geschäftlich" -#: src/common/util.c:892 +#: src/common/util.c:1008 msgid "Costa Rica" msgstr "Costa Rica" -#: src/common/util.c:893 +#: src/common/util.c:1009 msgid "Serbia and Montenegro" msgstr "Serbien und Montenegro" -#: src/common/util.c:894 +#: src/common/util.c:1010 msgid "Cuba" msgstr "Kuba" -#: src/common/util.c:895 +#: src/common/util.c:1011 msgid "Cape Verde" msgstr "Kap Verde" -#: src/common/util.c:896 +#: src/common/util.c:1012 msgid "Christmas Island" msgstr "Weihnachtsinsel" -#: src/common/util.c:897 +#: src/common/util.c:1013 msgid "Cyprus" msgstr "Zypern" -#: src/common/util.c:898 +#: src/common/util.c:1014 msgid "Czech Republic" msgstr "Tschechische Republik" -#: src/common/util.c:899 +#: src/common/util.c:1015 msgid "Germany" -msgstr "Bundesrepublik Deutschland" +msgstr "Deutschland" -#: src/common/util.c:900 +#: src/common/util.c:1016 msgid "Djibouti" msgstr "Dschibuti" -#: src/common/util.c:901 +#: src/common/util.c:1017 msgid "Denmark" msgstr "Dänemark" -#: src/common/util.c:902 +#: src/common/util.c:1018 msgid "Dominica" msgstr "Dominica" -#: src/common/util.c:903 +#: src/common/util.c:1019 msgid "Dominican Republic" msgstr "Dominikanische Republik" -#: src/common/util.c:904 +#: src/common/util.c:1020 msgid "Algeria" msgstr "Algerien" -#: src/common/util.c:905 +#: src/common/util.c:1021 msgid "Ecuador" msgstr "Ecuador" -#: src/common/util.c:906 +#: src/common/util.c:1022 msgid "Educational Institution" msgstr "Bildungseinrichtung" -#: src/common/util.c:907 +#: src/common/util.c:1023 msgid "Estonia" msgstr "Estland" -#: src/common/util.c:908 +#: src/common/util.c:1024 msgid "Egypt" msgstr "Arabische Republik Ägypten" -#: src/common/util.c:909 +#: src/common/util.c:1025 msgid "Western Sahara" msgstr "Westliche Sahara" -#: src/common/util.c:910 +#: src/common/util.c:1026 msgid "Eritrea" msgstr "Eritrea" -#: src/common/util.c:911 +#: src/common/util.c:1027 msgid "Spain" msgstr "Spanien" -#: src/common/util.c:912 +#: src/common/util.c:1028 msgid "Ethiopia" msgstr "Äthiopien" -#: src/common/util.c:913 +#: src/common/util.c:1029 msgid "European Union" msgstr "Europäische Union" -#: src/common/util.c:914 +#: src/common/util.c:1030 msgid "Finland" msgstr "Finnland" -#: src/common/util.c:915 +#: src/common/util.c:1031 msgid "Fiji" msgstr "Fidschi" -#: src/common/util.c:916 +#: src/common/util.c:1032 msgid "Falkland Islands" msgstr "Falkland-Inseln" -#: src/common/util.c:917 +#: src/common/util.c:1033 msgid "Micronesia" msgstr "Mikronesien" -#: src/common/util.c:918 +#: src/common/util.c:1034 msgid "Faroe Islands" msgstr "Färör-Inseln" -#: src/common/util.c:919 +#: src/common/util.c:1035 msgid "France" msgstr "Frankreich" -#: src/common/util.c:920 +#: src/common/util.c:1036 msgid "Gabon" msgstr "Gabun" -#: src/common/util.c:921 +#: src/common/util.c:1037 msgid "Great Britain" msgstr "Großbritannien" -#: src/common/util.c:922 +#: src/common/util.c:1038 msgid "Grenada" msgstr "Grenada" -#: src/common/util.c:923 +#: src/common/util.c:1039 msgid "Georgia" msgstr "Georgien" -#: src/common/util.c:924 +#: src/common/util.c:1040 msgid "French Guiana" msgstr "Französisch Guyana" -#: src/common/util.c:925 +#: src/common/util.c:1041 msgid "British Channel Isles" msgstr "Britische Kanalinseln" -#: src/common/util.c:926 +#: src/common/util.c:1042 msgid "Ghana" msgstr "Ghana" -#: src/common/util.c:927 +#: src/common/util.c:1043 msgid "Gibraltar" msgstr "Gibraltar" -#: src/common/util.c:928 +#: src/common/util.c:1044 msgid "Greenland" msgstr "Grönland" -#: src/common/util.c:929 +#: src/common/util.c:1045 msgid "Gambia" msgstr "Gambia" -#: src/common/util.c:930 +#: src/common/util.c:1046 msgid "Guinea" msgstr "Guinea" -#: src/common/util.c:931 +#: src/common/util.c:1047 msgid "Government" msgstr "Amerikanische Regierung" -#: src/common/util.c:932 +#: src/common/util.c:1048 msgid "Guadeloupe" msgstr "Guadeloupe" -#: src/common/util.c:933 +#: src/common/util.c:1049 msgid "Equatorial Guinea" msgstr "Äquatorial-Guinea" -#: src/common/util.c:934 +#: src/common/util.c:1050 msgid "Greece" msgstr "Griechenland" -#: src/common/util.c:935 +#: src/common/util.c:1051 msgid "S. Georgia and S. Sandwich Isles" msgstr "S. Georgia- und S. Sandwich-Inseln" -#: src/common/util.c:936 +#: src/common/util.c:1052 msgid "Guatemala" msgstr "Guatemala" -#: src/common/util.c:937 +#: src/common/util.c:1053 msgid "Guam" msgstr "Guam" -#: src/common/util.c:938 +#: src/common/util.c:1054 msgid "Guinea-Bissau" msgstr "Guinea-Bissau" -#: src/common/util.c:939 +#: src/common/util.c:1055 msgid "Guyana" msgstr "Guyana" -#: src/common/util.c:940 +#: src/common/util.c:1056 msgid "Hong Kong" msgstr "Hong Kong" -#: src/common/util.c:941 +#: src/common/util.c:1057 msgid "Heard and McDonald Islands" msgstr "Heard- und McDonald-Inseln" -#: src/common/util.c:942 +#: src/common/util.c:1058 msgid "Honduras" msgstr "Honduras" -#: src/common/util.c:943 +#: src/common/util.c:1059 msgid "Croatia" msgstr "Kroatien" -#: src/common/util.c:944 +#: src/common/util.c:1060 msgid "Haiti" msgstr "Haiti" -#: src/common/util.c:945 +#: src/common/util.c:1061 msgid "Hungary" msgstr "Ungarn" -#: src/common/util.c:946 +#: src/common/util.c:1062 msgid "Indonesia" msgstr "Indonesien" -#: src/common/util.c:947 +#: src/common/util.c:1063 msgid "Ireland" msgstr "Irland" -#: src/common/util.c:948 +#: src/common/util.c:1064 msgid "Israel" msgstr "Israel" -#: src/common/util.c:949 +#: src/common/util.c:1065 msgid "Isle of Man" msgstr "Isle of Man" -#: src/common/util.c:950 +#: src/common/util.c:1066 msgid "India" msgstr "Indien" -#: src/common/util.c:951 +#: src/common/util.c:1067 msgid "Informational" msgstr "Informative Domain" -#: src/common/util.c:952 +#: src/common/util.c:1068 msgid "International" msgstr "International" -#: src/common/util.c:953 +#: src/common/util.c:1069 msgid "British Indian Ocean Territory" msgstr "Britische Gebiete im indischen Ozean" -#: src/common/util.c:954 +#: src/common/util.c:1070 msgid "Iraq" msgstr "Irak" -#: src/common/util.c:955 +#: src/common/util.c:1071 msgid "Iran" msgstr "Iran" -#: src/common/util.c:956 +#: src/common/util.c:1072 msgid "Iceland" msgstr "Island" -#: src/common/util.c:957 +#: src/common/util.c:1073 msgid "Italy" msgstr "Italien" -#: src/common/util.c:958 +#: src/common/util.c:1074 msgid "Jersey" msgstr "Jersey" -#: src/common/util.c:959 +#: src/common/util.c:1075 msgid "Jamaica" msgstr "Jamaika" -#: src/common/util.c:960 +#: src/common/util.c:1076 msgid "Jordan" msgstr "Jordanien" -#: src/common/util.c:961 +#: src/common/util.c:1077 msgid "Japan" msgstr "Japan" -#: src/common/util.c:962 +#: src/common/util.c:1078 msgid "Kenya" msgstr "Kenia" -#: src/common/util.c:963 +#: src/common/util.c:1079 msgid "Kyrgyzstan" msgstr "Kirgisistan" -#: src/common/util.c:964 +#: src/common/util.c:1080 msgid "Cambodia" msgstr "Kambodscha" -#: src/common/util.c:965 +#: src/common/util.c:1081 msgid "Kiribati" msgstr "Kiribati" -#: src/common/util.c:966 +#: src/common/util.c:1082 msgid "Comoros" msgstr "Komoren" -#: src/common/util.c:967 +#: src/common/util.c:1083 msgid "St. Kitts and Nevis" msgstr "St. Kitts und Nevis" -#: src/common/util.c:968 +#: src/common/util.c:1084 msgid "North Korea" msgstr "Nordkorea" -#: src/common/util.c:969 +#: src/common/util.c:1085 msgid "South Korea" msgstr "Südkorea" -#: src/common/util.c:970 +#: src/common/util.c:1086 msgid "Kuwait" msgstr "Kuwait" -#: src/common/util.c:971 +#: src/common/util.c:1087 msgid "Cayman Islands" msgstr "Cayman-Inseln" -#: src/common/util.c:972 +#: src/common/util.c:1088 msgid "Kazakhstan" msgstr "Kasachstan" -#: src/common/util.c:973 +#: src/common/util.c:1089 msgid "Laos" msgstr "Laos" -#: src/common/util.c:974 +#: src/common/util.c:1090 msgid "Lebanon" msgstr "Libanon" -#: src/common/util.c:975 +#: src/common/util.c:1091 msgid "Saint Lucia" msgstr "Saint Lucia" -#: src/common/util.c:976 +#: src/common/util.c:1092 msgid "Liechtenstein" msgstr "Liechtenstein" -#: src/common/util.c:977 +#: src/common/util.c:1093 msgid "Sri Lanka" msgstr "Sri Lanka" -#: src/common/util.c:978 +#: src/common/util.c:1094 msgid "Liberia" msgstr "Liberia" -#: src/common/util.c:979 +#: src/common/util.c:1095 msgid "Lesotho" msgstr "Lesotho" -#: src/common/util.c:980 +#: src/common/util.c:1096 msgid "Lithuania" msgstr "Litauen" -#: src/common/util.c:981 +#: src/common/util.c:1097 msgid "Luxembourg" msgstr "Luxemburg" -#: src/common/util.c:982 +#: src/common/util.c:1098 msgid "Latvia" msgstr "Lettland" -#: src/common/util.c:983 +#: src/common/util.c:1099 msgid "Libya" msgstr "Libyen" -#: src/common/util.c:984 +#: src/common/util.c:1100 msgid "Morocco" msgstr "Marokko" -#: src/common/util.c:985 +#: src/common/util.c:1101 msgid "Monaco" msgstr "Monaco" -#: src/common/util.c:986 +#: src/common/util.c:1102 msgid "Moldova" msgstr "Moldawien" -#: src/common/util.c:987 +#: src/common/util.c:1103 msgid "United States Medical" msgstr "Vereinigte Staaten medizinisch" -#: src/common/util.c:988 +#: src/common/util.c:1104 msgid "Madagascar" msgstr "Madagaskar" -#: src/common/util.c:989 +#: src/common/util.c:1105 msgid "Marshall Islands" msgstr "Marshallinseln" -#: src/common/util.c:990 +#: src/common/util.c:1106 msgid "Military" msgstr "Militärisch" -#: src/common/util.c:991 +#: src/common/util.c:1107 msgid "Macedonia" msgstr "Mazedonien" -#: src/common/util.c:992 +#: src/common/util.c:1108 msgid "Mali" msgstr "Mali" -#: src/common/util.c:993 +#: src/common/util.c:1109 msgid "Myanmar" msgstr "Myanmar" -#: src/common/util.c:994 +#: src/common/util.c:1110 msgid "Mongolia" msgstr "Mongolei" -#: src/common/util.c:995 +#: src/common/util.c:1111 msgid "Macau" msgstr "Macau" -#: src/common/util.c:996 +#: src/common/util.c:1112 msgid "Northern Mariana Islands" msgstr "Nördliche Mariana-Inseln" -#: src/common/util.c:997 +#: src/common/util.c:1113 msgid "Martinique" msgstr "Martinique" -#: src/common/util.c:998 +#: src/common/util.c:1114 msgid "Mauritania" msgstr "Mauretanien" -#: src/common/util.c:999 +#: src/common/util.c:1115 msgid "Montserrat" msgstr "Montserrat" -#: src/common/util.c:1000 +#: src/common/util.c:1116 msgid "Malta" msgstr "Malta" -#: src/common/util.c:1001 +#: src/common/util.c:1117 msgid "Mauritius" msgstr "Mauritius" -#: src/common/util.c:1002 +#: src/common/util.c:1118 msgid "Maldives" msgstr "Malediven" -#: src/common/util.c:1003 +#: src/common/util.c:1119 msgid "Malawi" msgstr "Malawi" -#: src/common/util.c:1004 +#: src/common/util.c:1120 msgid "Mexico" msgstr "Mexiko" -#: src/common/util.c:1005 +#: src/common/util.c:1121 msgid "Malaysia" msgstr "Malaysia" -#: src/common/util.c:1006 +#: src/common/util.c:1122 msgid "Mozambique" msgstr "Mosambik" -#: src/common/util.c:1007 +#: src/common/util.c:1123 msgid "Namibia" msgstr "Namibia" -#: src/common/util.c:1008 +#: src/common/util.c:1124 msgid "New Caledonia" msgstr "Neu Kaledonien" -#: src/common/util.c:1009 +#: src/common/util.c:1125 msgid "Niger" msgstr "Niger" -#: src/common/util.c:1010 +#: src/common/util.c:1126 msgid "Internic Network" -msgstr "Internic Netzwerk" +msgstr "InterNIC – Netzwerk" -#: src/common/util.c:1011 +#: src/common/util.c:1127 msgid "Norfolk Island" msgstr "Norfolk-Insel" -#: src/common/util.c:1012 +#: src/common/util.c:1128 msgid "Nigeria" msgstr "Nigeria" -#: src/common/util.c:1013 +#: src/common/util.c:1129 msgid "Nicaragua" msgstr "Nicaragua" -#: src/common/util.c:1014 +#: src/common/util.c:1130 msgid "Netherlands" msgstr "Niederlande" -#: src/common/util.c:1015 +#: src/common/util.c:1131 msgid "Norway" msgstr "Norwegen" -#: src/common/util.c:1016 +#: src/common/util.c:1132 msgid "Nepal" msgstr "Nepal" -#: src/common/util.c:1017 +#: src/common/util.c:1133 msgid "Nauru" msgstr "Nauru" -#: src/common/util.c:1018 +#: src/common/util.c:1134 msgid "Niue" msgstr "Niue" -#: src/common/util.c:1019 +#: src/common/util.c:1135 msgid "New Zealand" msgstr "Neuseeland" -#: src/common/util.c:1020 +#: src/common/util.c:1136 msgid "Oman" msgstr "Oman" -#: src/common/util.c:1021 +#: src/common/util.c:1137 msgid "Internic Non-Profit Organization" -msgstr "Internic Non-Profit-Organisation" +msgstr "InterNIC – Non-Profit-Organisation" -#: src/common/util.c:1022 +#: src/common/util.c:1138 msgid "Panama" msgstr "Panama" -#: src/common/util.c:1023 +#: src/common/util.c:1139 msgid "Peru" msgstr "Peru" -#: src/common/util.c:1024 +#: src/common/util.c:1140 msgid "French Polynesia" msgstr "Französisch Polynesien" -#: src/common/util.c:1025 +#: src/common/util.c:1141 msgid "Papua New Guinea" msgstr "Papua-Neuguinea" -#: src/common/util.c:1026 +#: src/common/util.c:1142 msgid "Philippines" msgstr "Philippinen" -#: src/common/util.c:1027 +#: src/common/util.c:1143 msgid "Pakistan" msgstr "Pakistan" -#: src/common/util.c:1028 +#: src/common/util.c:1144 msgid "Poland" msgstr "Polen" -#: src/common/util.c:1029 +#: src/common/util.c:1145 msgid "St. Pierre and Miquelon" msgstr "St. Pierre und Miquelon" -#: src/common/util.c:1030 +#: src/common/util.c:1146 msgid "Pitcairn" msgstr "Pitcairn" -#: src/common/util.c:1031 +#: src/common/util.c:1147 msgid "Puerto Rico" msgstr "Puerto Rico" -#: src/common/util.c:1032 +#: src/common/util.c:1148 msgid "Palestinian Territory" msgstr "Palästinensergebiete" -#: src/common/util.c:1033 +#: src/common/util.c:1149 msgid "Portugal" msgstr "Portugal" -#: src/common/util.c:1034 +#: src/common/util.c:1150 msgid "Palau" msgstr "Palau" -#: src/common/util.c:1035 +#: src/common/util.c:1151 msgid "Paraguay" msgstr "Paraguay" -#: src/common/util.c:1036 +#: src/common/util.c:1152 msgid "Qatar" msgstr "Katar" -#: src/common/util.c:1037 +#: src/common/util.c:1153 msgid "Reunion" msgstr "Reunion" -#: src/common/util.c:1038 +#: src/common/util.c:1154 msgid "Romania" msgstr "Rumänien" -#: src/common/util.c:1039 +#: src/common/util.c:1155 msgid "Old School ARPAnet" msgstr "Old School ARPAnet" -#: src/common/util.c:1040 +#: src/common/util.c:1156 msgid "Russian Federation" msgstr "Russische Föderation" -#: src/common/util.c:1041 +#: src/common/util.c:1157 msgid "Rwanda" msgstr "Ruanda" -#: src/common/util.c:1042 +#: src/common/util.c:1158 msgid "Saudi Arabia" msgstr "Saudi-Arabien" -#: src/common/util.c:1043 +#: src/common/util.c:1159 msgid "Solomon Islands" -msgstr "Solomon-Inseln" +msgstr "Salomonen" -#: src/common/util.c:1044 +#: src/common/util.c:1160 msgid "Seychelles" msgstr "Seychellen" -#: src/common/util.c:1045 +#: src/common/util.c:1161 msgid "Sudan" msgstr "Sudan" -#: src/common/util.c:1046 +#: src/common/util.c:1162 msgid "Sweden" msgstr "Schweden" -#: src/common/util.c:1047 +#: src/common/util.c:1163 msgid "Singapore" msgstr "Singapur" -#: src/common/util.c:1048 +#: src/common/util.c:1164 msgid "St. Helena" msgstr "St. Helena" -#: src/common/util.c:1049 +#: src/common/util.c:1165 msgid "Slovenia" msgstr "Slowenien" -#: src/common/util.c:1050 +#: src/common/util.c:1166 msgid "Svalbard and Jan Mayen Islands" -msgstr "Svalbard- und Jan Mayen-Inseln" +msgstr "Svalbard- und Jan-Mayen-Inseln" -#: src/common/util.c:1051 +#: src/common/util.c:1167 msgid "Slovak Republic" msgstr "Slowakische Republik" -#: src/common/util.c:1052 +#: src/common/util.c:1168 msgid "Sierra Leone" msgstr "Sierra Leone" -#: src/common/util.c:1053 +#: src/common/util.c:1169 msgid "San Marino" msgstr "San Marino" -#: src/common/util.c:1054 +#: src/common/util.c:1170 msgid "Senegal" msgstr "Senegal" -#: src/common/util.c:1055 +#: src/common/util.c:1171 msgid "Somalia" msgstr "Somalia" -#: src/common/util.c:1056 +#: src/common/util.c:1172 msgid "Suriname" msgstr "Suriname" -#: src/common/util.c:1057 +#: src/common/util.c:1173 msgid "Sao Tome and Principe" msgstr "São Tomé und Príncipe" -#: src/common/util.c:1058 +#: src/common/util.c:1174 msgid "Former USSR" msgstr "Frühere UdSSR" -#: src/common/util.c:1059 +#: src/common/util.c:1175 msgid "El Salvador" msgstr "El Salvador" -#: src/common/util.c:1060 +#: src/common/util.c:1176 msgid "Syria" msgstr "Syrien" -#: src/common/util.c:1061 +#: src/common/util.c:1177 msgid "Swaziland" msgstr "Swasiland" -#: src/common/util.c:1062 +#: src/common/util.c:1178 msgid "Turks and Caicos Islands" msgstr "Turks und Caicoc Inseln" -#: src/common/util.c:1063 +#: src/common/util.c:1179 msgid "Chad" msgstr "Tschad" -#: src/common/util.c:1064 +#: src/common/util.c:1180 msgid "French Southern Territories" msgstr "Südliche französische Gebiete" -#: src/common/util.c:1065 +#: src/common/util.c:1181 msgid "Togo" msgstr "Togo" -#: src/common/util.c:1066 +#: src/common/util.c:1182 msgid "Thailand" msgstr "Thailand" -#: src/common/util.c:1067 +#: src/common/util.c:1183 msgid "Tajikistan" msgstr "Tadschikistan" -#: src/common/util.c:1068 +#: src/common/util.c:1184 msgid "Tokelau" msgstr "Tokelau" -#: src/common/util.c:1069 -#: src/common/util.c:1073 +#: src/common/util.c:1185 src/common/util.c:1189 msgid "East Timor" -msgstr "Ost-Timor" +msgstr "Osttimor" -#: src/common/util.c:1070 +#: src/common/util.c:1186 msgid "Turkmenistan" msgstr "Turkmenistan" -#: src/common/util.c:1071 +#: src/common/util.c:1187 msgid "Tunisia" msgstr "Tunesien" -#: src/common/util.c:1072 +#: src/common/util.c:1188 msgid "Tonga" msgstr "Tonga" -#: src/common/util.c:1074 +#: src/common/util.c:1190 msgid "Turkey" msgstr "Türkei" -#: src/common/util.c:1075 +#: src/common/util.c:1191 msgid "Trinidad and Tobago" msgstr "Trinidad und Tobago" -#: src/common/util.c:1076 +#: src/common/util.c:1192 msgid "Tuvalu" msgstr "Tuvalu" -#: src/common/util.c:1077 +#: src/common/util.c:1193 msgid "Taiwan" msgstr "Taiwan" -#: src/common/util.c:1078 +#: src/common/util.c:1194 msgid "Tanzania" msgstr "Tansania" -#: src/common/util.c:1079 +#: src/common/util.c:1195 msgid "Ukraine" msgstr "Ukraine" -#: src/common/util.c:1080 +#: src/common/util.c:1196 msgid "Uganda" msgstr "Uganda" -#: src/common/util.c:1081 +#: src/common/util.c:1197 msgid "United Kingdom" msgstr "Vereinigtes Königreich" -#: src/common/util.c:1082 +#: src/common/util.c:1198 msgid "United States of America" msgstr "Vereinigte Staaten von Amerika" -#: src/common/util.c:1083 +#: src/common/util.c:1199 msgid "Uruguay" msgstr "Uruguay" -#: src/common/util.c:1084 +#: src/common/util.c:1200 msgid "Uzbekistan" msgstr "Usbekistan" -#: src/common/util.c:1085 +#: src/common/util.c:1201 msgid "Vatican City State" msgstr "Vatikanstadt" -#: src/common/util.c:1086 +#: src/common/util.c:1202 msgid "St. Vincent and the Grenadines" msgstr "St. Vincent und die Grenadinen" -#: src/common/util.c:1087 +#: src/common/util.c:1203 msgid "Venezuela" msgstr "Venezuela" -#: src/common/util.c:1088 +#: src/common/util.c:1204 msgid "British Virgin Islands" msgstr "Britische Jungferninseln" -#: src/common/util.c:1089 +#: src/common/util.c:1205 msgid "US Virgin Islands" msgstr "Amerikanische Jungferninseln" -#: src/common/util.c:1090 +#: src/common/util.c:1206 msgid "Vietnam" msgstr "Vietnam" -#: src/common/util.c:1091 +#: src/common/util.c:1207 msgid "Vanuatu" msgstr "Vanuatu" -#: src/common/util.c:1092 +#: src/common/util.c:1208 msgid "Wallis and Futuna Islands" msgstr "Wallis- und Futuna-Inseln" -#: src/common/util.c:1093 +#: src/common/util.c:1209 msgid "Samoa" msgstr "Samoa" -#: src/common/util.c:1094 +#: src/common/util.c:1210 msgid "Yemen" msgstr "Jemen" -#: src/common/util.c:1095 +#: src/common/util.c:1211 msgid "Mayotte" msgstr "Mayotte" -#: src/common/util.c:1096 +#: src/common/util.c:1212 msgid "Yugoslavia" msgstr "Jugoslawien" -#: src/common/util.c:1097 +#: src/common/util.c:1213 msgid "South Africa" msgstr "Südafrika" -#: src/common/util.c:1098 +#: src/common/util.c:1214 msgid "Zambia" msgstr "Sambia" -#: src/common/util.c:1099 +#: src/common/util.c:1215 msgid "Zimbabwe" msgstr "Simbabwe" -#: src/common/util.c:1109 -#: src/common/util.c:1119 -#: src/fe-gtk/menu.c:553 -#: src/fe-gtk/menu.c:558 -#: src/fe-gtk/menu.c:562 -#: src/fe-gtk/menu.c:566 -#: src/fe-gtk/menu.c:574 -#: src/fe-gtk/menu.c:592 +#: src/common/util.c:1225 src/common/util.c:1235 src/fe-gtk/menu.c:617 msgid "Unknown" msgstr "Unbekannt" -#: src/common/xchat.c:767 -#: src/common/xchat.c:893 -msgid "Open Dialog Window" -msgstr "Dialogfenster öffnen" +#: src/common/xchat.c:736 +msgid "_Open Dialog Window" +msgstr "Dialogfenster ö_ffnen" -#: src/common/xchat.c:768 -msgid "Send a File" -msgstr "Sende eine Datei" +#: src/common/xchat.c:737 +msgid "_Send a File" +msgstr "Datei ver_schicken" -#: src/common/xchat.c:769 -msgid "User Info (WHOIS)" -msgstr "Benutzerinformationen (WHOIS)" +#: src/common/xchat.c:738 +msgid "_User Info (WhoIs)" +msgstr "_Benutzerinformationen (»Whois«)" -#: src/common/xchat.c:770 -msgid "Operator Actions" -msgstr "Bedieneraktionen" +#: src/common/xchat.c:739 +msgid "_Add to Friends List" +msgstr "Zu Freundesliste _hinzufügen" -#: src/common/xchat.c:772 -#: src/common/xchat.c:863 +#: src/common/xchat.c:740 +msgid "O_perator Actions" +msgstr "Operatoraktionen" + +#: src/common/xchat.c:742 msgid "Give Ops" msgstr "Op geben" -#: src/common/xchat.c:773 -#: src/common/xchat.c:864 +#: src/common/xchat.c:743 msgid "Take Ops" msgstr "Op nehmen" -#: src/common/xchat.c:774 -#: src/common/xchat.c:867 +#: src/common/xchat.c:744 msgid "Give Voice" msgstr "Voice geben" -#: src/common/xchat.c:775 -#: src/common/xchat.c:868 +#: src/common/xchat.c:745 msgid "Take Voice" msgstr "Voice nehmen" -#: src/common/xchat.c:777 -#: src/common/xchat.c:872 +#: src/common/xchat.c:747 msgid "Kick/Ban" msgstr "Kicken/Bannen" -#: src/common/xchat.c:778 -#: src/common/xchat.c:873 -#: src/common/xchat.c:922 +#: src/common/xchat.c:748 src/common/xchat.c:785 msgid "Kick" msgstr "Kicken" -#: src/common/xchat.c:779 -#: src/common/xchat.c:780 -#: src/common/xchat.c:781 -#: src/common/xchat.c:782 -#: src/common/xchat.c:783 -#: src/common/xchat.c:874 -#: src/common/xchat.c:875 -#: src/common/xchat.c:876 -#: src/common/xchat.c:877 -#: src/common/xchat.c:878 -#: src/common/xchat.c:921 +#: src/common/xchat.c:749 src/common/xchat.c:750 src/common/xchat.c:751 +#: src/common/xchat.c:752 src/common/xchat.c:753 src/common/xchat.c:784 msgid "Ban" msgstr "Bannen" -#: src/common/xchat.c:784 -#: src/common/xchat.c:785 -#: src/common/xchat.c:786 -#: src/common/xchat.c:787 -#: src/common/xchat.c:879 -#: src/common/xchat.c:880 -#: src/common/xchat.c:881 -#: src/common/xchat.c:882 +#: src/common/xchat.c:754 src/common/xchat.c:755 src/common/xchat.c:756 +#: src/common/xchat.c:757 msgid "KickBan" -msgstr "KickBannen" - -#: src/common/xchat.c:850 -msgid "Direct client-to-client" -msgstr "Direkt Client2Client" - -#: src/common/xchat.c:851 -msgid "Send File" -msgstr "Sende Datei" - -#: src/common/xchat.c:852 -msgid "Offer Chat" -msgstr "Biete Chat an" - -#: src/common/xchat.c:853 -msgid "Abort Chat" -msgstr "Chat abbrechen" - -#: src/common/xchat.c:854 -#: src/fe-gtk/plugingui.c:74 -msgid "Version" -msgstr "Version" - -#: src/common/xchat.c:855 -msgid "Userinfo" -msgstr "Benutzerinformation" - -#: src/common/xchat.c:856 -msgid "Clientinfo" -msgstr "Clientinformation" - -#: src/common/xchat.c:857 -#: src/common/xchat.c:891 -#: src/common/xchat.c:939 -msgid "Ping" -msgstr "Ping" - -#: src/common/xchat.c:858 -msgid "Time" -msgstr "Zeit" - -#: src/common/xchat.c:859 -msgid "Finger" -msgstr "Finger" - -#: src/common/xchat.c:860 -msgid "Oper" -msgstr "Oper" - -#: src/common/xchat.c:861 -msgid "Kill this user" -msgstr "Benutzer killen" - -#: src/common/xchat.c:862 -msgid "Mode" -msgstr "Modus" - -#: src/common/xchat.c:865 -msgid "Give Half-Ops" -msgstr "Half-Op geben" - -#: src/common/xchat.c:866 -msgid "Take Half-Ops" -msgstr "Half-Op nehmen" - -#: src/common/xchat.c:869 -msgid "Ignore" -msgstr "Ignorieren" - -#: src/common/xchat.c:870 -msgid "Ignore User" -msgstr "Ignoriere Benutzer" - -#: src/common/xchat.c:871 -msgid "UnIgnore User" -msgstr "Benutzer nicht mehr ignorieren" - -#: src/common/xchat.c:883 -msgid "Info" -msgstr "Info" - -#: src/common/xchat.c:884 -msgid "Who" -msgstr "Who" - -#: src/common/xchat.c:885 -#: src/common/xchat.c:935 -msgid "WhoIs" -msgstr "WhoIs" +msgstr "Kick-Bannen" -#: src/common/xchat.c:886 -msgid "DNS Lookup" -msgstr "DNS-Suche" - -#: src/common/xchat.c:887 -msgid "Trace" -msgstr "Verfolgung" - -#: src/common/xchat.c:888 -msgid "UserHost" -msgstr "BenutzerHost" - -#: src/common/xchat.c:889 -msgid "External" -msgstr "Extern" - -#: src/common/xchat.c:890 -msgid "Traceroute" -msgstr "Traceroute (Verfolgung)" - -#: src/common/xchat.c:892 -msgid "Telnet" -msgstr "Telnet" - -#: src/common/xchat.c:904 +#: src/common/xchat.c:767 msgid "Leave Channel" msgstr "Channel verlassen" -#: src/common/xchat.c:905 -#: src/fe-gtk/menu.c:1427 +#: src/common/xchat.c:768 msgid "Join Channel..." -msgstr "Betrete Channel..." +msgstr "Channel betreten …" -#: src/common/xchat.c:906 -#: src/fe-gtk/menu.c:1117 +#: src/common/xchat.c:769 src/fe-gtk/menu.c:1319 msgid "Enter Channel to Join:" msgstr "Zu betretender Channel:" -#: src/common/xchat.c:907 +#: src/common/xchat.c:770 msgid "Server Links" msgstr "Serververbindungen" -#: src/common/xchat.c:908 +#: src/common/xchat.c:771 msgid "Ping Server" msgstr "Server anpingen" -#: src/common/xchat.c:909 +#: src/common/xchat.c:772 msgid "Hide Version" msgstr "Version verstecken" -#: src/common/xchat.c:919 +#: src/common/xchat.c:782 msgid "Op" msgstr "Op" -#: src/common/xchat.c:920 +#: src/common/xchat.c:783 msgid "DeOp" msgstr "DeOp" -#: src/common/xchat.c:923 +#: src/common/xchat.c:786 msgid "bye" msgstr "bye" -#: src/common/xchat.c:924 +#: src/common/xchat.c:787 #, c-format msgid "Enter reason to kick %s:" msgstr "Kickgrund für %s eingeben:" -#: src/common/xchat.c:925 +#: src/common/xchat.c:788 msgid "Sendfile" msgstr "Dateiversand" -#: src/common/xchat.c:926 +#: src/common/xchat.c:789 msgid "Dialog" msgstr "Dialog" -#: src/common/xchat.c:936 +#: src/common/xchat.c:798 +msgid "WhoIs" +msgstr "WhoIs" + +#: src/common/xchat.c:799 msgid "Send" msgstr "Sende" -#: src/common/xchat.c:937 +#: src/common/xchat.c:800 msgid "Chat" msgstr "Chat" -#: src/common/xchat.c:938 -#: src/fe-gtk/banlist.c:341 -#: src/fe-gtk/ignoregui.c:388 -#: src/fe-gtk/urlgrab.c:201 +#: src/common/xchat.c:801 src/fe-gtk/banlist.c:411 src/fe-gtk/ignoregui.c:387 +#: src/fe-gtk/urlgrab.c:210 msgid "Clear" -msgstr "Lösche" +msgstr "Leeren" -#: src/common/dbus/dbus-client.c:71 +#: src/common/xchat.c:802 +msgid "Ping" +msgstr "Ping" + +#: src/common/dbus/dbus-client.c:72 msgid "Couldn't connect to session bus" -msgstr "Konnte nicht zur Sitzungs-Busschnittstelle verbinden" +msgstr "Fehler beim Verbinden zum Session-Bus" -#: src/common/dbus/dbus-client.c:85 +#: src/common/dbus/dbus-client.c:86 msgid "Failed to complete NameHasOwner" -msgstr "Konnte NamehatBesitzer nicht abschließen" +msgstr "»NameHasOwner« konnte nicht abgeschlossen werden" -#: src/common/dbus/dbus-client.c:106 +#: src/common/dbus/dbus-client.c:112 msgid "Failed to complete Command" -msgstr "Konnte Kommando nicht abschließen" +msgstr "Befehl konnte nicht abgeschlossen werden" #: src/common/dbus/dbus-plugin.c:30 msgid "remote access" @@ -2994,176 +2890,171 @@ msgstr "Fernzugriff" #: src/common/dbus/dbus-plugin.c:31 msgid "plugin for remote access using DBUS" -msgstr "Plugin für den Fernzugriff mittels DBUS" +msgstr "Plugin für den Fernzugriff mittels D-Bus" #: src/common/dbus/dbus-plugin.c:897 #, c-format msgid "Couldn't connect to session bus: %s\n" -msgstr "Konnte nicht zur Sitzungs-Busschnittstelle verbinden: %s\n" +msgstr "Fehler beim Verbinden zum Session-Bus: %s\n" #: src/common/dbus/dbus-plugin.c:914 #, c-format msgid "Failed to acquire %s: %s\n" msgstr "Ermittlung von %s scheiterte: %s\n" -#: src/fe-gtk/about.c:102 -msgid "About XChat" -msgstr "Über XChat" +#: src/fe-gtk/about.c:101 +msgid "About " +msgstr "Über " -#: src/fe-gtk/about.c:129 +#: src/fe-gtk/about.c:148 msgid "A multiplatform IRC Client" msgstr "Ein portabler IRC-Client" -#: src/fe-gtk/ascii.c:135 +#: src/fe-gtk/ascii.c:133 msgid "Character Chart" msgstr "Zeichentabelle" -#: src/fe-gtk/banlist.c:113 -#: src/fe-gtk/chanlist.c:305 -#: src/fe-gtk/plugin-tray.c:217 +#: src/fe-gtk/banlist.c:149 src/fe-gtk/chanlist.c:308 +#: src/fe-gtk/plugin-tray.c:226 msgid "Not connected." msgstr "Nicht verbunden." -#: src/fe-gtk/banlist.c:154 -#: src/fe-gtk/banlist.c:257 +#: src/fe-gtk/banlist.c:247 src/fe-gtk/banlist.c:327 msgid "You must select some bans." -msgstr "Du mußt Bans auswählen" +msgstr "Sie müssen mindestens einen Bann auswählen" -#: src/fe-gtk/banlist.c:206 +#: src/fe-gtk/banlist.c:276 #, c-format msgid "Are you sure you want to remove all bans in %s?" -msgstr "Bist Du sicher, daß Du alle Bans in %s entfernen willst?" +msgstr "Sind Sie sicher, dass Sie alle Banns in %s entfernen wollen?" -#: src/fe-gtk/banlist.c:272 -#: src/fe-gtk/ignoregui.c:175 +#: src/fe-gtk/banlist.c:342 src/fe-gtk/ignoregui.c:173 msgid "Mask" msgstr "Maske" -#: src/fe-gtk/banlist.c:273 +#: src/fe-gtk/banlist.c:343 msgid "From" msgstr "Von" -#: src/fe-gtk/banlist.c:274 +#: src/fe-gtk/banlist.c:344 msgid "Date" msgstr "Datum" -#: src/fe-gtk/banlist.c:317 +#: src/fe-gtk/banlist.c:387 msgid "You can only open the Ban List window while in a channel tab." -msgstr "Du kannst die Bannliste nur öffnen, während Du in einem Channel-Reiter bist." +msgstr "" +"Sie können die Bannliste nur öffnen, während Sie sich in einem Channel" +"reiter befinden." -#: src/fe-gtk/banlist.c:321 +#: src/fe-gtk/banlist.c:391 #, c-format msgid "XChat: Ban List (%s)" msgstr "XChat: Bannliste (%s)" -#: src/fe-gtk/banlist.c:337 -msgid "Unban" -msgstr "Bann entfernen" +#: src/fe-gtk/banlist.c:407 src/fe-gtk/notifygui.c:430 +msgid "Remove" +msgstr "Entfernen" -#: src/fe-gtk/banlist.c:339 +#: src/fe-gtk/banlist.c:409 msgid "Crop" msgstr "Abschneiden" -#: src/fe-gtk/banlist.c:343 +#: src/fe-gtk/banlist.c:413 msgid "Refresh" msgstr "Aktualisieren" -#: src/fe-gtk/chanlist.c:111 +#: src/fe-gtk/chanlist.c:114 #, c-format msgid "Displaying %d/%d users on %d/%d channels." msgstr "Zeige %d/%d Benutzer in %d/%d Channels." -#: src/fe-gtk/chanlist.c:522 -#: src/fe-gtk/menu.c:1053 -#: src/fe-gtk/urlgrab.c:148 +#: src/fe-gtk/chanlist.c:529 src/fe-gtk/menu.c:1255 src/fe-gtk/urlgrab.c:147 msgid "Select an output filename" -msgstr "Gib einen Dateinamen für die Ausgabe an" +msgstr "Geben Sie einen Dateinamen für die Ausgabe an" -#: src/fe-gtk/chanlist.c:626 -#: src/fe-gtk/chanlist.c:789 +#: src/fe-gtk/chanlist.c:634 src/fe-gtk/chanlist.c:802 msgid "_Join Channel" msgstr "Channel betreten (_Join)" -#: src/fe-gtk/chanlist.c:628 +#: src/fe-gtk/chanlist.c:636 msgid "_Copy Channel Name" msgstr "_Channel-Name kopieren" -#: src/fe-gtk/chanlist.c:630 +#: src/fe-gtk/chanlist.c:638 msgid "Copy _Topic Text" msgstr "_Thementext kopieren" -#: src/fe-gtk/chanlist.c:714 +#: src/fe-gtk/chanlist.c:727 #, c-format msgid "XChat: Channel List (%s)" msgstr "XChat: Channel-Liste (%s)" -#: src/fe-gtk/chanlist.c:771 +#: src/fe-gtk/chanlist.c:784 msgid "_Search" msgstr "_Suche" -#: src/fe-gtk/chanlist.c:777 +#: src/fe-gtk/chanlist.c:790 msgid "_Download List" msgstr "Liste herunterla_den" -#: src/fe-gtk/chanlist.c:783 +#: src/fe-gtk/chanlist.c:796 msgid "Save _List..." -msgstr "_Liste speichern..." +msgstr "_Liste speichern …" -#: src/fe-gtk/chanlist.c:796 +#: src/fe-gtk/chanlist.c:809 msgid "Show only:" msgstr "Zeige nur:" -#: src/fe-gtk/chanlist.c:808 +#: src/fe-gtk/chanlist.c:821 msgid "channels with" msgstr "Channels mit" -#: src/fe-gtk/chanlist.c:821 +#: src/fe-gtk/chanlist.c:834 msgid "to" msgstr "bis" -#: src/fe-gtk/chanlist.c:833 +#: src/fe-gtk/chanlist.c:846 msgid "users." msgstr "Benutzern." -#: src/fe-gtk/chanlist.c:839 +#: src/fe-gtk/chanlist.c:852 msgid "Look in:" msgstr "Suche in:" -#: src/fe-gtk/chanlist.c:851 +#: src/fe-gtk/chanlist.c:864 msgid "Channel name" msgstr "Channel-Name" -#: src/fe-gtk/chanlist.c:872 +#: src/fe-gtk/chanlist.c:885 msgid "Search type:" msgstr "Suchart:" -#: src/fe-gtk/chanlist.c:879 +#: src/fe-gtk/chanlist.c:892 msgid "Simple Search" msgstr "Einfache Suche" -#: src/fe-gtk/chanlist.c:880 +#: src/fe-gtk/chanlist.c:893 msgid "Pattern Match (Wildcards)" msgstr "Suchmasken-Entsprechung" -#: src/fe-gtk/chanlist.c:882 +#: src/fe-gtk/chanlist.c:895 msgid "Regular Expression" msgstr "Regulärer Ausdruck" -#: src/fe-gtk/chanlist.c:893 -#: src/fe-gtk/search.c:118 +#: src/fe-gtk/chanlist.c:906 src/fe-gtk/search.c:125 msgid "Find:" msgstr "Finde:" -#: src/fe-gtk/dccgui.c:166 +#: src/fe-gtk/dccgui.c:167 #, c-format msgid "Send file to %s" msgstr "Sende Datei an %s" -#: src/fe-gtk/dccgui.c:496 +#: src/fe-gtk/dccgui.c:497 msgid "That file is not resumable." msgstr "Diese Datei ist nicht fortsetzbar." -#: src/fe-gtk/dccgui.c:500 +#: src/fe-gtk/dccgui.c:501 #, c-format msgid "" "Cannot access file: %s\n" @@ -3174,185 +3065,185 @@ msgstr "" "%s.\n" "Fortsetzen nicht möglich." -#: src/fe-gtk/dccgui.c:507 -msgid "File in download directory is larger than file offered. Resuming not possible." -msgstr "Datei im Downloadverzeichnis ist größer als die angebotene Datei. Fortsetzen nicht möglich." +#: src/fe-gtk/dccgui.c:508 +msgid "" +"File in download directory is larger than file offered. Resuming not " +"possible." +msgstr "" +"Datei im Downloadverzeichnis ist größer als die angebotene Datei. Fortsetzen " +"nicht möglich." -#: src/fe-gtk/dccgui.c:511 +#: src/fe-gtk/dccgui.c:512 msgid "Cannot resume the same file from two people." msgstr "Kann dieselbe Datei nicht von zwei Leuten fortsetzen." -#: src/fe-gtk/dccgui.c:740 +#: src/fe-gtk/dccgui.c:745 msgid "XChat: Uploads and Downloads" msgstr "XChat: Uploads und Downloads" -#: src/fe-gtk/dccgui.c:756 -#: src/fe-gtk/dccgui.c:993 -#: src/fe-gtk/notifygui.c:138 +#: src/fe-gtk/dccgui.c:761 src/fe-gtk/dccgui.c:1000 src/fe-gtk/notifygui.c:136 msgid "Status" msgstr "Status" -#: src/fe-gtk/dccgui.c:757 -#: src/fe-gtk/plugingui.c:75 +#: src/fe-gtk/dccgui.c:762 src/fe-gtk/plugingui.c:73 msgid "File" msgstr "Datei" -#: src/fe-gtk/dccgui.c:762 +#: src/fe-gtk/dccgui.c:767 msgid "ETA" msgstr "ETA" -#: src/fe-gtk/dccgui.c:784 -#: src/fe-gtk/menu.c:1421 +#: src/fe-gtk/dccgui.c:792 src/fe-gtk/menu.c:1631 msgid "Both" msgstr "Beides" -#: src/fe-gtk/dccgui.c:790 +#: src/fe-gtk/dccgui.c:798 msgid "Uploads" msgstr "Uploads" -#: src/fe-gtk/dccgui.c:796 +#: src/fe-gtk/dccgui.c:804 msgid "Downloads" msgstr "Downloads" -#: src/fe-gtk/dccgui.c:801 +#: src/fe-gtk/dccgui.c:809 msgid "Details" msgstr "Details" -#: src/fe-gtk/dccgui.c:812 +#: src/fe-gtk/dccgui.c:820 msgid "File:" msgstr "Datei:" -#: src/fe-gtk/dccgui.c:813 +#: src/fe-gtk/dccgui.c:821 msgid "Address:" msgstr "Adresse:" -#: src/fe-gtk/dccgui.c:819 -#: src/fe-gtk/dccgui.c:1014 +#: src/fe-gtk/dccgui.c:827 src/fe-gtk/dccgui.c:1024 msgid "Abort" msgstr "Abbrechen" -#: src/fe-gtk/dccgui.c:820 -#: src/fe-gtk/dccgui.c:1015 +#: src/fe-gtk/dccgui.c:828 src/fe-gtk/dccgui.c:1025 msgid "Accept" msgstr "Annehmen" -#: src/fe-gtk/dccgui.c:821 +#: src/fe-gtk/dccgui.c:829 msgid "Resume" msgstr "Fortsetzen" -#: src/fe-gtk/dccgui.c:822 +#: src/fe-gtk/dccgui.c:830 msgid "Open Folder..." -msgstr "Verzeichnis öffnen..." +msgstr "Verzeichnis öffnen …" -#: src/fe-gtk/dccgui.c:982 +#: src/fe-gtk/dccgui.c:990 msgid "XChat: DCC Chat List" msgstr "XChat: DCC-Chatliste" -#: src/fe-gtk/dccgui.c:995 +#: src/fe-gtk/dccgui.c:1002 msgid "Recv" msgstr "Rein " -#: src/fe-gtk/dccgui.c:996 +#: src/fe-gtk/dccgui.c:1003 msgid "Sent" msgstr "Raus" -#: src/fe-gtk/dccgui.c:997 +#: src/fe-gtk/dccgui.c:1004 msgid "Start Time" msgstr "Startzeit" -#: src/fe-gtk/editlist.c:139 +#: src/fe-gtk/editlist.c:143 msgid "*NEW*" msgstr "*NEU*" -#: src/fe-gtk/editlist.c:140 +#: src/fe-gtk/editlist.c:144 msgid "EDIT ME" msgstr "ÄNDERE MICH" -#: src/fe-gtk/editlist.c:310 -#: src/fe-gtk/plugingui.c:73 +#: src/fe-gtk/editlist.c:314 src/fe-gtk/notifygui.c:135 +#: src/fe-gtk/plugingui.c:71 msgid "Name" msgstr "Name" -#: src/fe-gtk/editlist.c:311 +#: src/fe-gtk/editlist.c:315 msgid "Command" -msgstr "Kommando" +msgstr "Befehl" -#: src/fe-gtk/editlist.c:339 +#: src/fe-gtk/editlist.c:343 msgid "Move Up" msgstr "Nach oben" -#: src/fe-gtk/editlist.c:343 +#: src/fe-gtk/editlist.c:347 msgid "Move Dn" msgstr "Nach unten" -#: src/fe-gtk/editlist.c:351 +#: src/fe-gtk/editlist.c:355 msgid "Cancel" msgstr "Abbruch" -#: src/fe-gtk/editlist.c:355 +#: src/fe-gtk/editlist.c:359 msgid "Save" msgstr "Speichern" -#: src/fe-gtk/editlist.c:363 -#: src/fe-gtk/fkeys.c:765 +#: src/fe-gtk/editlist.c:367 src/fe-gtk/fkeys.c:768 msgid "Add New" msgstr "Hinzufügen" -#: src/fe-gtk/editlist.c:367 -#: src/fe-gtk/fkeys.c:770 -#: src/fe-gtk/ignoregui.c:386 +#: src/fe-gtk/editlist.c:371 src/fe-gtk/fkeys.c:773 src/fe-gtk/ignoregui.c:385 msgid "Delete" msgstr "Löschen" -#: src/fe-gtk/editlist.c:375 +#: src/fe-gtk/editlist.c:379 msgid "Sort" -msgstr "Sortiere" +msgstr "Sortieren" -#: src/fe-gtk/editlist.c:379 +#: src/fe-gtk/editlist.c:383 msgid "Help" msgstr "Hilfe" -#: src/fe-gtk/fe-gtk.c:126 +#: src/fe-gtk/fe-gtk.c:130 msgid "Don't auto connect to servers" msgstr "Nicht automatisch mit Servern verbinden" -#: src/fe-gtk/fe-gtk.c:127 +#: src/fe-gtk/fe-gtk.c:131 msgid "Use a different config directory" msgstr "Benutze ein anderes Konfigurationsverzeichnis" -#: src/fe-gtk/fe-gtk.c:128 +#: src/fe-gtk/fe-gtk.c:132 msgid "Don't auto load any plugins" msgstr "Plugins nicht automatisch laden" -#: src/fe-gtk/fe-gtk.c:129 +#: src/fe-gtk/fe-gtk.c:133 msgid "Show plugin auto-load directory" msgstr "Plugin-Autostart-Verzeichnis anzeigen" -#: src/fe-gtk/fe-gtk.c:130 +#: src/fe-gtk/fe-gtk.c:134 msgid "Show user config directory" msgstr "Benutzerkonfigurationsverzeichnis anzeigen" -#: src/fe-gtk/fe-gtk.c:131 +#: src/fe-gtk/fe-gtk.c:135 msgid "Open an irc://server:port/channel URL" msgstr "Öffne eine irc:://Server:Port/Channel-URL" -#: src/fe-gtk/fe-gtk.c:133 -msgid "Open URL in an existing XChat" -msgstr "Öffne URL in einem bestehenden XChat" +#: src/fe-gtk/fe-gtk.c:137 src/fe-gtk/setup.c:240 +msgid "Execute command:" +msgstr "Befehl ausführen:" -#: src/fe-gtk/fe-gtk.c:135 +#: src/fe-gtk/fe-gtk.c:138 +msgid "Open URL or execute command in an existing XChat" +msgstr "URL oder Befehl in einem bestehenden XChat öffnen bzw. ausführen" + +#: src/fe-gtk/fe-gtk.c:140 msgid "Begin minimized. Level 0=Normal 1=Iconified 2=Tray" -msgstr "Minimiert starten. Level 0=Normal 1=Minimiert 2=Im Benachrichtigungsbereich" +msgstr "" +"Minimiert starten. STUFE 0=Normal 1=Minimiert 2=Im Benachrichtigungsbereich" -#: src/fe-gtk/fe-gtk.c:135 +#: src/fe-gtk/fe-gtk.c:140 msgid "level" msgstr "Stufe" -#: src/fe-gtk/fe-gtk.c:136 +#: src/fe-gtk/fe-gtk.c:141 msgid "Show version information" msgstr "Versionsinformationen anzeigen" -#: src/fe-gtk/fe-gtk.c:256 +#: src/fe-gtk/fe-gtk.c:340 #, c-format msgid "" "Failed to open font:\n" @@ -3363,143 +3254,181 @@ msgstr "" "\n" "%s" -#: src/fe-gtk/fe-gtk.c:635 +#: src/fe-gtk/fe-gtk.c:719 msgid "Search buffer is empty.\n" msgstr "Suchpuffer ist leer.\n" -#: src/fe-gtk/fe-gtk.c:731 +#: src/fe-gtk/fe-gtk.c:815 #, c-format msgid "%d bytes" msgstr "%d Bytes" -#: src/fe-gtk/fe-gtk.c:732 +#: src/fe-gtk/fe-gtk.c:816 #, c-format msgid "Network send queue: %d bytes" msgstr "Netzwerk-Sendewarteschlange: %d Bytes" -#: src/fe-gtk/fkeys.c:159 +#: src/fe-gtk/fkeys.c:162 msgid "" -"The Run Command action runs the data in Data 1 as if it has been typed into the entry box where you pressed the key sequence. Thus it can contain text (which will be sent to the channel/person), commands or user commands. When run all \\n" -" characters in Data 1 are used to deliminate seperate commands so it is possible to run more than one command. If you want a \\ in the actual text run then enter \\\\" +"The Run Command action runs the data in Data 1 as if it has been typed into " +"the entry box where you pressed the key sequence. Thus it can contain text " +"(which will be sent to the channel/person), commands or user commands. When " +"run all \\n characters in Data 1 are used to deliminate seperate commands so " +"it is possible to run more than one command. If you want a \\ in the actual " +"text run then enter \\\\" msgstr "" -"Die Run Command Aktion führt die Daten in \"Daten 1\" aus, als ob sie in die Eingabezeile eingegeben worden wären, in der die Tastenfolge gedrückt wurde. Daher kann \"Daten 1\" Text, der in den Channel/Dialog gesendet wird, Kommandos oder benutzerdefinierte Kommandos enthalten. \\n" -" trennt Kommandos, so daß es möglich ist, mehrere Kommandos auszuführen. Wenn Du ein \\ im Text benötigst, gib \\\\ ein." - -#: src/fe-gtk/fkeys.c:161 -msgid "The Change Page command switches between pages in the notebook. Set Data 1 to the page you want to switch to. If Data 2 is set to anything then the switch will be relative to the current position" -msgstr "Die Change Page Aktion schaltet zwischen Reitern um. Tragen Sie in \"Daten 1\" den Reiter ein, zu dem Du wechseln willst. Wenn in \"Daten 2\" irgendetwas steht, dann ist die Umschaltung relativ zur aktuellen Position" +"Die Run Command Aktion führt die Daten in »Data 1« aus, als ob sie in die " +"Eingabezeile eingegeben worden wären, in der die Tastenfolge gedrückt wurde. " +"Daher kann »Data 1« Text, der in den Channel/Dialog gesendet wird, Befehle " +"oder benutzerdefinierte Befehle enthalten. \\n trennt Befehle, so dass " +"es möglich ist, mehrere Befehle auszuführen. Wenn Sie ein \\ im Text " +"benötigen, geben Sie \\\\ ein." + +#: src/fe-gtk/fkeys.c:164 +msgid "" +"The Change Page command switches between pages in the notebook. Set Data 1 " +"to the page you want to switch to. If Data 2 is set to anything then the " +"switch will be relative to the current position" +msgstr "" +"Die Change Page Aktion schaltet zwischen Reitern um. Tragen Sie in »Data " +"1« den Reiter ein, zu dem Sie wechseln wollen. Wenn in »Data 2« " +"irgendetwas steht, dann ist die Umschaltung relativ zur aktuellen Position" -#: src/fe-gtk/fkeys.c:163 -msgid "The Insert in Buffer command will insert the contents of Data 1 into the entry where the key sequence was pressed at the current cursor position" -msgstr "Die Insert in Buffer Aktion fügt den Inhalt von \"Daten 1\" in die Zeile der Historie in dem die Tastenfolge gedrückt wurde an der gegenwärtigen Cursor-Position ein." +#: src/fe-gtk/fkeys.c:166 +msgid "" +"The Insert in Buffer command will insert the contents of Data 1 into the " +"entry where the key sequence was pressed at the current cursor position" +msgstr "" +"Die Insert in Buffer Aktion fügt den Inhalt von »Data 1« in die Zeile der " +"Historie in dem die Tastenfolge gedrückt wurde an der gegenwärtigen Cursor-" +"Position ein." -#: src/fe-gtk/fkeys.c:165 -msgid "The Scroll Page command scrolls the text widget up or down one page or one line. Set Data 1 to either Up, Down, +1 or -1." -msgstr "Die Scroll Page Aktion rollt den Text eine Seite auf oder ab. Mögliche Werte für \"Daten 1\": Up, Down, +1 oder -1." +#: src/fe-gtk/fkeys.c:168 +msgid "" +"The Scroll Page command scrolls the text widget up or down one page or one " +"line. Set Data 1 to either Up, Down, +1 or -1." +msgstr "" +"Die Scroll Page Aktion rollt den Text eine Seite auf oder ab. Mögliche " +"Werte für »Data 1«: Up, Down, +1 oder -1." -#: src/fe-gtk/fkeys.c:167 -msgid "The Set Buffer command sets the entry where the key sequence was entered to the contents of Data 1" -msgstr "Die Set Buffer Aktion setzt die Zeile der Historie in der die Tastenkombination gedrückt wurde auf den Wert von \"Daten 1\"." +#: src/fe-gtk/fkeys.c:170 +msgid "" +"The Set Buffer command sets the entry where the key sequence was entered to " +"the contents of Data 1" +msgstr "" +"Die Set Buffer Aktion setzt die Zeile der Historie in der die " +"Tastenkombination gedrückt wurde auf den Wert von »Data 1«." -#: src/fe-gtk/fkeys.c:169 -msgid "The Last Command command sets the entry to contain the last command entered - the same as pressing up in a shell" +#: src/fe-gtk/fkeys.c:172 +msgid "" +"The Last Command command sets the entry to contain the last command entered " +"- the same as pressing up in a shell" msgstr "Die Last Command Aktion blättert eine Zeile in der Historie hoch." -#: src/fe-gtk/fkeys.c:171 -msgid "The Next Command command sets the entry to contain the next command entered - the same as pressing down in a shell" +#: src/fe-gtk/fkeys.c:174 +msgid "" +"The Next Command command sets the entry to contain the next command entered " +"- the same as pressing down in a shell" msgstr "Die Next Command Aktion blättert eine Zeile in der Historie abwärts." -#: src/fe-gtk/fkeys.c:173 -msgid "This command changes the text in the entry to finish an incomplete nickname or command. If Data 1 is set then double-tabbing in a string will select the last nick, not the next" -msgstr "Diese Aktion vervollständigt einen unvöllständigen Nick oder Befehl. Wenn \"Daten 1\" gesetzt ist, springt 2x [Tab] auf die letzte, nicht die nächste Möglichkeit." +#: src/fe-gtk/fkeys.c:176 +msgid "" +"This command changes the text in the entry to finish an incomplete nickname " +"or command. If Data 1 is set then double-tabbing in a string will select the " +"last nick, not the next" +msgstr "" +"Diese Aktion vervollständigt einen unvöllständigen Nick oder Befehl. Wenn " +"»Data 1« gesetzt ist, springt 2x [Tab] auf die letzte, nicht die nächste " +"Möglichkeit." -#: src/fe-gtk/fkeys.c:175 -msgid "This command scrolls up and down through the list of nicks. If Data 1 is set to anything it will scroll up, else it scrolls down" -msgstr "Diese Aktion blättert durch die Liste der Nicknamen. Wenn \"Daten 1\" gesetzt ist, wird hochgeblättert, sonst runter. " +#: src/fe-gtk/fkeys.c:178 +msgid "" +"This command scrolls up and down through the list of nicks. If Data 1 is set " +"to anything it will scroll up, else it scrolls down" +msgstr "" +"Diese Aktion blättert durch die Liste der Nicknamen. Wenn »Data 1« " +"gesetzt ist, wird hochgeblättert, sonst runter. " -#: src/fe-gtk/fkeys.c:177 -msgid "This command checks the last word entered in the entry against the replace list and replaces it if it finds a match" -msgstr "Diese Aktion vergleicht das zuletzt Eingegebene mit der Textersetzungsliste und ersetzt es, wenn sie eine Entsprechung findet." +#: src/fe-gtk/fkeys.c:180 +msgid "" +"This command checks the last word entered in the entry against the replace " +"list and replaces it if it finds a match" +msgstr "" +"Diese Aktion vergleicht das zuletzt Eingegebene mit der Textersetzungsliste " +"und ersetzt es, wenn sie eine Entsprechung findet." -#: src/fe-gtk/fkeys.c:179 +#: src/fe-gtk/fkeys.c:182 msgid "This command moves the front tab left by one" msgstr "Diese Aktion bewegt den aktiven Reiter eine Position nach links." -#: src/fe-gtk/fkeys.c:181 +#: src/fe-gtk/fkeys.c:184 msgid "This command moves the front tab right by one" msgstr "Diese Aktion bewegt den aktiven Reiter eine Position nach rechts." -#: src/fe-gtk/fkeys.c:183 +#: src/fe-gtk/fkeys.c:186 msgid "This command moves the current tab family to the left" msgstr "Diese Aktion bewegt die aktuelle Reitergruppe nach links." -#: src/fe-gtk/fkeys.c:185 +#: src/fe-gtk/fkeys.c:188 msgid "This command moves the current tab family to the right" msgstr "Diese Aktion bewegt die aktuelle Reitergruppe nach rechts." -#: src/fe-gtk/fkeys.c:187 +#: src/fe-gtk/fkeys.c:190 msgid "Push input line into history but doesn't send to server" msgstr "Eingabezeile in der Historie speichern, aber nicht absenden." -#: src/fe-gtk/fkeys.c:198 +#: src/fe-gtk/fkeys.c:201 msgid "There was an error loading key bindings configuration" msgstr "Fehler beim Laden der Tastaturkürzel-Konfiguration" -#: src/fe-gtk/fkeys.c:450 -#: src/fe-gtk/fkeys.c:451 -#: src/fe-gtk/fkeys.c:452 -#: src/fe-gtk/fkeys.c:453 -#: src/fe-gtk/fkeys.c:743 -#: src/fe-gtk/fkeys.c:749 -#: src/fe-gtk/fkeys.c:754 -#: src/fe-gtk/maingui.c:1616 -#: src/fe-gtk/maingui.c:1719 -#: src/fe-gtk/maingui.c:3201 +#: src/fe-gtk/fkeys.c:453 src/fe-gtk/fkeys.c:454 src/fe-gtk/fkeys.c:455 +#: src/fe-gtk/fkeys.c:456 src/fe-gtk/fkeys.c:746 src/fe-gtk/fkeys.c:752 +#: src/fe-gtk/fkeys.c:757 src/fe-gtk/maingui.c:1614 src/fe-gtk/maingui.c:1730 +#: src/fe-gtk/maingui.c:3231 msgid "<none>" msgstr "<leer>" -#: src/fe-gtk/fkeys.c:707 +#: src/fe-gtk/fkeys.c:710 msgid "Mod" msgstr "Mod" -#: src/fe-gtk/fkeys.c:708 -#: src/fe-gtk/fkeys.c:803 +#: src/fe-gtk/fkeys.c:711 src/fe-gtk/fkeys.c:806 msgid "Key" msgstr "Taste" -#: src/fe-gtk/fkeys.c:709 +#: src/fe-gtk/fkeys.c:712 msgid "Action" msgstr "Aktion" -#: src/fe-gtk/fkeys.c:718 +#: src/fe-gtk/fkeys.c:721 msgid "XChat: Keyboard Shortcuts" msgstr "XChat: Tastenkürzel" -#: src/fe-gtk/fkeys.c:796 +#: src/fe-gtk/fkeys.c:799 msgid "Shift" msgstr "Umschalt" -#: src/fe-gtk/fkeys.c:798 +#: src/fe-gtk/fkeys.c:801 msgid "Alt" msgstr "Alt" -#: src/fe-gtk/fkeys.c:800 +#: src/fe-gtk/fkeys.c:803 msgid "Ctrl" msgstr "Strg" -#: src/fe-gtk/fkeys.c:807 +#: src/fe-gtk/fkeys.c:810 msgid "Data 1" -msgstr "Daten 1" +msgstr "Data 1" -#: src/fe-gtk/fkeys.c:810 +#: src/fe-gtk/fkeys.c:813 msgid "Data 2" -msgstr "Daten 2" +msgstr "Data 2" -#: src/fe-gtk/fkeys.c:852 +#: src/fe-gtk/fkeys.c:855 msgid "Error opening keys config file\n" msgstr "Fehler beim Öffnen der Konfigurationsdatei fr die Tastatur\n" -#: src/fe-gtk/fkeys.c:1019 +#: src/fe-gtk/fkeys.c:1022 #, c-format msgid "" "Unknown keyname %s in key bindings config file\n" @@ -3509,7 +3438,7 @@ msgstr "" "Konfigurationsdatei. Ladevorgang abgebrochen,\n" "bitte korrigiere %s/keybindings.conf\n" -#: src/fe-gtk/fkeys.c:1057 +#: src/fe-gtk/fkeys.c:1060 #, c-format msgid "" "Unknown action %s in key bindings config file\n" @@ -3519,7 +3448,7 @@ msgstr "" "Konfigurationsdatei. Ladevorgang abgebrochen,\n" "bitte korrigiere %s/keybindings.conf\n" -#: src/fe-gtk/fkeys.c:1078 +#: src/fe-gtk/fkeys.c:1081 #, c-format msgid "" "Expecting Data line (beginning Dx{:|!}) but got:\n" @@ -3532,7 +3461,7 @@ msgstr "" "\n" "Ladevorgang abgebrochen, bitte korrigiere %s/keybindings\n" -#: src/fe-gtk/fkeys.c:1147 +#: src/fe-gtk/fkeys.c:1150 #, c-format msgid "" "Key bindings config file is corrupt, load aborted\n" @@ -3541,261 +3470,281 @@ msgstr "" "Tastenbindungs-Konfigurationsdatei ist defekt,\n" "Ladevorgang abgebrochen, bitte korrigiere %s/keybindings\n" -#: src/fe-gtk/gtkutil.c:117 +#: src/fe-gtk/gtkutil.c:131 msgid "Cannot write to that file." msgstr "Kann in diese Datei nicht schreiben." -#: src/fe-gtk/gtkutil.c:119 +#: src/fe-gtk/gtkutil.c:133 msgid "Cannot read that file." msgstr "Kann diese Datei nicht lesen." -#: src/fe-gtk/ignoregui.c:117 -#: src/fe-gtk/ignoregui.c:263 +#: src/fe-gtk/ignoregui.c:115 src/fe-gtk/ignoregui.c:262 msgid "That mask already exists." msgstr "Diese Maske gibt es bereits." -#: src/fe-gtk/ignoregui.c:177 -#: src/fe-gtk/maingui.c:2100 +#: src/fe-gtk/ignoregui.c:175 src/fe-gtk/maingui.c:2111 msgid "Private" msgstr "Privat" -#: src/fe-gtk/ignoregui.c:178 +#: src/fe-gtk/ignoregui.c:176 msgid "Notice" msgstr "Notiz" -#: src/fe-gtk/ignoregui.c:179 +#: src/fe-gtk/ignoregui.c:177 msgid "CTCP" msgstr "CTCP" -#: src/fe-gtk/ignoregui.c:180 +#: src/fe-gtk/ignoregui.c:178 msgid "DCC" msgstr "DCC" -#: src/fe-gtk/ignoregui.c:181 +#: src/fe-gtk/ignoregui.c:179 msgid "Invite" msgstr "Einlad." -#: src/fe-gtk/ignoregui.c:182 +#: src/fe-gtk/ignoregui.c:180 msgid "Unignore" msgstr "Unignore" -#: src/fe-gtk/ignoregui.c:307 +#: src/fe-gtk/ignoregui.c:306 msgid "Enter mask to ignore:" msgstr "Maske zum Ignorieren eingeben:" -#: src/fe-gtk/ignoregui.c:354 +#: src/fe-gtk/ignoregui.c:353 msgid "XChat: Ignore list" msgstr "XChat: Ignorierliste" -#: src/fe-gtk/ignoregui.c:361 +#: src/fe-gtk/ignoregui.c:360 msgid "Ignore Stats:" msgstr "Ignore-Status" -#: src/fe-gtk/ignoregui.c:369 +#: src/fe-gtk/ignoregui.c:368 msgid "Channel:" msgstr "Channel:" -#: src/fe-gtk/ignoregui.c:370 +#: src/fe-gtk/ignoregui.c:369 msgid "Private:" msgstr "Privat:" -#: src/fe-gtk/ignoregui.c:371 +#: src/fe-gtk/ignoregui.c:370 msgid "Notice:" msgstr "Notiz:" -#: src/fe-gtk/ignoregui.c:372 +#: src/fe-gtk/ignoregui.c:371 msgid "CTCP:" msgstr "CTCP:" -#: src/fe-gtk/ignoregui.c:373 +#: src/fe-gtk/ignoregui.c:372 msgid "Invite:" msgstr "Einladungen" -#: src/fe-gtk/ignoregui.c:384 -#: src/fe-gtk/notifygui.c:420 +#: src/fe-gtk/ignoregui.c:383 src/fe-gtk/notifygui.c:426 msgid "Add..." -msgstr "Hinzufügen..." +msgstr "Hinzufügen …" -#: src/fe-gtk/joind.c:83 +#: src/fe-gtk/joind.c:86 msgid "Channel name too short, try again." msgstr "Channelname zu kurz, bitte erneut versuchen." -#: src/fe-gtk/joind.c:125 +#: src/fe-gtk/joind.c:128 msgid "XChat: Connection Complete" msgstr "XChat: Verbindung hergestellt" -#: src/fe-gtk/joind.c:150 +#: src/fe-gtk/joind.c:153 #, c-format msgid "Connection to %s complete." msgstr "Verbindung zu %s fertiggestellt." -#: src/fe-gtk/joind.c:159 -msgid "In the Server-List window, no channel (chat room) has been entered to be automatically joined for this network." -msgstr "Im Serverlistenfenster wurde kein Channel (Chatraum) eingegeben, der in diesem Netzwerk automatisch betreten werden soll." +#: src/fe-gtk/joind.c:162 +msgid "" +"In the Server-List window, no channel (chat room) has been entered to be " +"automatically joined for this network." +msgstr "" +"Im Serverlistenfenster wurde kein Channel (Chatraum) eingegeben, der in " +"diesem Netzwerk automatisch betreten werden soll." -#: src/fe-gtk/joind.c:165 +#: src/fe-gtk/joind.c:168 msgid "What would you like to do next?" -msgstr "Was möchtest Du als Nächstes tun?" +msgstr "Was möchten Sie als Nächstes tun?" -#: src/fe-gtk/joind.c:170 +#: src/fe-gtk/joind.c:173 msgid "_Nothing, I'll join a channel later." msgstr "_Nichts, ich werde später einen Channel betreten." -#: src/fe-gtk/joind.c:179 +#: src/fe-gtk/joind.c:182 msgid "_Join this channel:" msgstr "Diesen Channel _betreten" -#: src/fe-gtk/joind.c:191 +#: src/fe-gtk/joind.c:194 msgid "If you know the name of the channel you want to join, enter it here." -msgstr "Wenn Du den Namen des Channels weißt, den Du betreten willst, gib ihn hier ein." +msgstr "" +"Wenn Sie den Namen des Channels wissen, den Sie betreten willst, geben Sie " +"ihn hier ein." -#: src/fe-gtk/joind.c:198 +#: src/fe-gtk/joind.c:201 msgid "O_pen the Channel-List window." -msgstr "Channel-Liste ö_ffnen:" +msgstr "Channelliste ö_ffnen:" -#: src/fe-gtk/joind.c:205 +#: src/fe-gtk/joind.c:208 msgid "Retrieving the Channel-List may take a minute or two." msgstr "Der Empfang der Channelliste kann ein bis zwei Minuten dauern." -#: src/fe-gtk/joind.c:212 +#: src/fe-gtk/joind.c:215 msgid "_Always show this dialog after connecting." -msgstr "_Diesen Dialogs nach jeder Verbindund anzeigen." +msgstr "_Diesen Dialog nach jeder Verbindung anzeigen." -#: src/fe-gtk/maingui.c:500 +#: src/fe-gtk/maingui.c:452 msgid "Dialog with" -msgstr "Dialog mit" +msgstr "Unterhaltung mit" -#: src/fe-gtk/maingui.c:787 +#: src/fe-gtk/maingui.c:755 #, c-format msgid "Topic for %s is: %s" msgstr "Thema für %s ist: %s" -#: src/fe-gtk/maingui.c:792 +#: src/fe-gtk/maingui.c:760 msgid "No topic is set" msgstr "Kein Thema gesetzt" -#: src/fe-gtk/maingui.c:1177 +#: src/fe-gtk/maingui.c:1149 #, c-format -msgid "This server still has %d channels or dialogs associated with it. Close them all?" -msgstr "Diesem Server sind noch %d Channels oder Dialoge zugeordnet. Alle schließen?" +msgid "" +"This server still has %d channels or dialogs associated with it. Close them " +"all?" +msgstr "" +"Diesem Server sind noch %d Channels oder Dialoge zugeordnet. Alle schließen?" -#: src/fe-gtk/maingui.c:1304 +#: src/fe-gtk/maingui.c:1250 msgid "Quit XChat?" msgstr "XChat beenden?" -#: src/fe-gtk/maingui.c:1325 +#: src/fe-gtk/maingui.c:1271 msgid "Don't ask next time." msgstr "Beim nächsten Mal nicht nachfragen." -#: src/fe-gtk/maingui.c:1331 +#: src/fe-gtk/maingui.c:1277 #, c-format msgid "You are connected to %i IRC networks." -msgstr "Du bist mit %i IRC-Netzwerken verbunden." +msgstr "Sie sind mit %i IRC-Netzwerken verbunden." -#: src/fe-gtk/maingui.c:1333 +#: src/fe-gtk/maingui.c:1279 msgid "Are you sure you want to quit?" -msgstr "Bist Du sicher, daß Du beenden willst?" +msgstr "Sind Sie sicher, dass Sie XChat beenden wollen?" -#: src/fe-gtk/maingui.c:1335 +#: src/fe-gtk/maingui.c:1281 msgid "Some file transfers are still active." msgstr "Einige Dateitransfers sind noch aktiv." -#: src/fe-gtk/maingui.c:1353 +#: src/fe-gtk/maingui.c:1299 msgid "_Minimize to Tray" -msgstr "In den Benachrichtigungsbereich _minimieren" +msgstr "Ins Benachrichtigungsfeld _minimieren" -#: src/fe-gtk/maingui.c:1567 +#: src/fe-gtk/maingui.c:1519 msgid "Insert Attribute or Color Code" -msgstr "Attribut oder Farbkode einsetzen" +msgstr "Attribut oder Farbcode einsetzen" -#: src/fe-gtk/maingui.c:1569 +#: src/fe-gtk/maingui.c:1521 msgid "<b>Bold</b>" msgstr "<b>Fett</b>" -#: src/fe-gtk/maingui.c:1570 +#: src/fe-gtk/maingui.c:1522 msgid "<u>Underline</u>" msgstr "<u>Unterstrichen</u>" -#: src/fe-gtk/maingui.c:1572 +#: src/fe-gtk/maingui.c:1524 msgid "Normal" msgstr "Normal" -#: src/fe-gtk/maingui.c:1574 +#: src/fe-gtk/maingui.c:1526 msgid "Colors 0-7" msgstr "Farben 0-7" -#: src/fe-gtk/maingui.c:1584 +#: src/fe-gtk/maingui.c:1536 msgid "Colors 8-15" msgstr "Farben 8-15" -#: src/fe-gtk/maingui.c:1629 -msgid "Beep on message" -msgstr "Bei Nachricht piepsen" +#: src/fe-gtk/maingui.c:1579 +msgid "_Settings" +msgstr "_Einstellungen" + +#: src/fe-gtk/maingui.c:1581 +msgid "_Log to Disk" +msgstr "Auf die Festp_latte aufzeichnen" + +#: src/fe-gtk/maingui.c:1582 +msgid "_Reload Scrollback" +msgstr "Textpuffer neu _laden" + +#: src/fe-gtk/maingui.c:1584 +msgid "_Hide Join/Part Messages" +msgstr "Nachrichten beim Betreten/Verlassen _verstecken" -#: src/fe-gtk/maingui.c:1632 -msgid "Blink tray on message" -msgstr "Bei Nachricht im Benachrichtigungsbereich blinken" +#: src/fe-gtk/maingui.c:1592 +msgid "_Extra Alerts" +msgstr "_Extrawarnungen" -#: src/fe-gtk/maingui.c:1635 -msgid "Show join/part messages" -msgstr "Join/Part-Nachrichten anzeigen" +#: src/fe-gtk/maingui.c:1594 +msgid "Beep on _Message" +msgstr "Bei Nachricht _piepsen" -#: src/fe-gtk/maingui.c:1637 -msgid "Color paste" -msgstr "Farbiges Einfügen" +#: src/fe-gtk/maingui.c:1598 +msgid "Blink Tray _Icon" +msgstr "_Benachrichtigungssymbol blinken lassen bei:" -#: src/fe-gtk/maingui.c:1647 -#: src/fe-gtk/menu.c:1950 -msgid "_Close Tab" -msgstr "Reiter s_chließen" +#: src/fe-gtk/maingui.c:1601 +msgid "Blink Task _Bar" +msgstr "_Taskleiste blinken lassen bei:" -#: src/fe-gtk/maingui.c:1649 -#: src/fe-gtk/menu.c:1949 -msgid "_Detach Tab" +#: src/fe-gtk/maingui.c:1639 src/fe-gtk/menu.c:2171 +msgid "_Detach" msgstr "Reiter _lösen" -#: src/fe-gtk/maingui.c:1968 -#: src/fe-gtk/maingui.c:2074 +#: src/fe-gtk/maingui.c:1641 src/fe-gtk/menu.c:2172 src/fe-gtk/menu.c:2177 +#: src/fe-gtk/plugingui.c:239 src/fe-gtk/search.c:151 +msgid "_Close" +msgstr "S_chließen" + +#: src/fe-gtk/maingui.c:1979 src/fe-gtk/maingui.c:2085 msgid "User limit must be a number!\n" -msgstr "Benutzerlimit muß eine Zahl sein!\n" +msgstr "Benutzerlimit muss eine Zahl sein!\n" -#: src/fe-gtk/maingui.c:2096 +#: src/fe-gtk/maingui.c:2107 msgid "Topic Protection" msgstr "Themenschutz" -#: src/fe-gtk/maingui.c:2097 +#: src/fe-gtk/maingui.c:2108 msgid "No outside messages" -msgstr "Keine Nachrichten von Außen" +msgstr "Keine Nachrichten von außen" -#: src/fe-gtk/maingui.c:2098 +#: src/fe-gtk/maingui.c:2109 msgid "Secret" msgstr "Geheim" -#: src/fe-gtk/maingui.c:2099 +#: src/fe-gtk/maingui.c:2110 msgid "Invite Only" msgstr "Nur auf Einladung" -#: src/fe-gtk/maingui.c:2101 +#: src/fe-gtk/maingui.c:2112 msgid "Moderated" msgstr "Moderiert" -#: src/fe-gtk/maingui.c:2102 +#: src/fe-gtk/maingui.c:2113 msgid "Ban List" msgstr "Bannliste" -#: src/fe-gtk/maingui.c:2104 +#: src/fe-gtk/maingui.c:2115 msgid "Keyword" msgstr "Schlüsselwort" -#: src/fe-gtk/maingui.c:2116 +#: src/fe-gtk/maingui.c:2127 msgid "User Limit" msgstr "Benutzerlimit" -#: src/fe-gtk/maingui.c:2225 +#: src/fe-gtk/maingui.c:2236 msgid "Show/Hide userlist" msgstr "Benutzerliste zeigen/verstecken" -#: src/fe-gtk/maingui.c:2350 +#: src/fe-gtk/maingui.c:2361 msgid "" "Unable to set transparent background!\n" "\n" @@ -3804,91 +3753,105 @@ msgid "" msgstr "" "Transparenter Hintergrund nicht aktivierbar!\n" "\n" -"Eventuell benutzt Du einen nicht\n" -"unterstützten Windowmanager.\n" +"Eventuell benutzen Sie einen nicht\n" +"unterstützten Fensterverwalter.\n" -#: src/fe-gtk/maingui.c:2621 +#: src/fe-gtk/maingui.c:2640 msgid "Enter new nickname:" msgstr "Neuen Nicknamen eingeben:" -#: src/fe-gtk/menu.c:124 +#: src/fe-gtk/menu.c:125 msgid "Host unknown" msgstr "Host unbekannt" -#: src/fe-gtk/menu.c:544 +#: src/fe-gtk/menu.c:616 #, c-format msgid "<tt><b>%-11s</b></tt> %s" msgstr "<tt><b>%-11s</b></tt> %s" -#: src/fe-gtk/menu.c:549 -#: src/fe-gtk/menu.c:553 +#: src/fe-gtk/menu.c:622 src/fe-gtk/menu.c:626 msgid "Real Name:" msgstr "Wahrer Name:" -#: src/fe-gtk/menu.c:557 +#: src/fe-gtk/menu.c:633 msgid "User:" msgstr "Benutzer:" -#: src/fe-gtk/menu.c:561 +#: src/fe-gtk/menu.c:640 msgid "Country:" msgstr "Land:" -#: src/fe-gtk/menu.c:565 +#: src/fe-gtk/menu.c:647 msgid "Server:" msgstr "Server:" -#: src/fe-gtk/menu.c:577 -msgid "Away Msg:" -msgstr "Abwesenheitsnachricht:" - -#: src/fe-gtk/menu.c:587 +#: src/fe-gtk/menu.c:658 #, c-format msgid "%u minutes ago" msgstr "vor %u Minuten" -#: src/fe-gtk/menu.c:589 -#: src/fe-gtk/menu.c:592 +#: src/fe-gtk/menu.c:660 src/fe-gtk/menu.c:663 msgid "Last Msg:" msgstr "Letzte Nachricht:" -#: src/fe-gtk/menu.c:704 -msgid "The Menubar is now hidden. You can show it again by pressing F9 or right-clicking in a blank part of the main text area." -msgstr "Die Menüzeile ist jetzt versteckt. Du kannst sie durch Druck auf F9 oder Rechtsklick in einem freien Bereich des Textfeldes wieder sichtbar machen." +#: src/fe-gtk/menu.c:673 +msgid "Away Msg:" +msgstr "Abwesenheitsgrund:" + +#: src/fe-gtk/menu.c:731 +#, c-format +msgid "%d nicks selected." +msgstr "%d Nicks ausgewählt." + +#: src/fe-gtk/menu.c:856 +msgid "" +"The Menubar is now hidden. You can show it again by pressing F9 or right-" +"clicking in a blank part of the main text area." +msgstr "" +"Die Menüzeile ist jetzt versteckt. Sie können sie durch Druck auf F9 oder " +"Rechtsklick in einem freien Bereich des Textfeldes wieder sichtbar machen." -#: src/fe-gtk/menu.c:799 +#: src/fe-gtk/menu.c:945 msgid "Open Link in Browser" msgstr "Link im Browser öffnen" -#: src/fe-gtk/menu.c:800 +#: src/fe-gtk/menu.c:946 msgid "Copy Selected Link" msgstr "Ausgewählte URL kopieren" -#: src/fe-gtk/menu.c:862 -#: src/fe-gtk/menu.c:1100 +#: src/fe-gtk/menu.c:1008 src/fe-gtk/menu.c:1302 msgid "Join Channel" msgstr "Channel betreten" -#: src/fe-gtk/menu.c:866 +#: src/fe-gtk/menu.c:1012 msgid "Part Channel" msgstr "Channel verlassen" -#: src/fe-gtk/menu.c:868 +#: src/fe-gtk/menu.c:1014 msgid "Cycle Channel" msgstr "Channel rotieren" -#: src/fe-gtk/menu.c:892 +#: src/fe-gtk/menu.c:1050 +msgid "_Remove from Favorites" +msgstr "Von Favoriten _entfernen" + +#: src/fe-gtk/menu.c:1052 +msgid "_Add to Favorites" +msgstr "Zu Favoriten _hinzufügen" + +#: src/fe-gtk/menu.c:1071 msgid "XChat: User menu" msgstr "XChat: Benutzermenü" -#: src/fe-gtk/menu.c:901 +#: src/fe-gtk/menu.c:1080 msgid "Edit This Menu..." -msgstr "Dieses Menü ändern..." +msgstr "Dieses Menü ändern …" -#: src/fe-gtk/menu.c:1102 +#: src/fe-gtk/menu.c:1304 msgid "Retrieve channel list..." -msgstr "Empfange Channelliste..." +msgstr "Empfange Channelliste …" -#: src/fe-gtk/menu.c:1170 +#: src/fe-gtk/menu.c:1372 msgid "" "User Commands - Special codes:\n" "\n" @@ -3909,12 +3872,12 @@ msgid "" "%2 would be \"john\"\n" "&2 would be \"john hello\"." msgstr "" -"Benutzerkommandos - Spezielle Kodes:\n" +"Benutzerbefehle - Spezielle Codes:\n" "\n" "%c = aktueller Channel\n" "%e = aktuelles Netzwerk\n" "%m = Computerinfo\n" -"%n = Dein Nick\n" +"%n = Ihr Nick\n" "%t = Zeit/Datum\n" "%v = XChat Version\n" "%2 = Wort 2\n" @@ -3928,7 +3891,7 @@ msgstr "" "%2 wäre \"john\"\n" "&2 wäre \"john hallo\"." -#: src/fe-gtk/menu.c:1186 +#: src/fe-gtk/menu.c:1388 msgid "" "Userlist Buttons - Special codes:\n" "\n" @@ -3941,18 +3904,18 @@ msgid "" "%s = selected nick\n" "%t = time/date\n" msgstr "" -"Benutzerlisten-Knöpfe - Spezielle Kodes:\n" +"Benutzerlisten-Knöpfe - Spezielle Codes:\n" "\n" "%a = alle ausgewählten Nicks\n" "%c = aktueller Channel\n" "%e = aktuelles Netzwerk\n" "%h = die Hostmaske des ausgewählten Nicks\n" "%m = Computerinfo\n" -"%n = Dein Nick\n" +"%n = Ihr Nick\n" "%s = ausgewählter Nick\n" "%t = Zeit/Datum\n" -#: src/fe-gtk/menu.c:1196 +#: src/fe-gtk/menu.c:1398 msgid "" "Dialog Buttons - Special codes:\n" "\n" @@ -3965,18 +3928,18 @@ msgid "" "%s = selected nick\n" "%t = time/date\n" msgstr "" -"Dialog-Knöpfe - Spezielle Kodes:\n" +"Dialog-Knöpfe - Spezielle Codes:\n" "\n" "%a = alle ausgewählten Nicks\n" "%c = aktueller Channel\n" "%e = aktuelles Netzwerk\n" "%h = die Hostmaske des ausgewählten Nicks\n" "%m = Computerinfo\n" -"%n = Dein Nick\n" +"%n = Ihr Nick\n" "%s = ausgewählter Nick\n" "%t = Zeit/Datum\n" -#: src/fe-gtk/menu.c:1206 +#: src/fe-gtk/menu.c:1408 msgid "" "CTCP Replies - Special codes:\n" "\n" @@ -3991,7 +3954,7 @@ msgid "" "&3 = word 3 to the end of line\n" "\n" msgstr "" -"CTCP-Antworten - Spezielle Kodes:\n" +"CTCP-Antworten - Spezielle Codes:\n" "\n" "%d = Daten (Der gesamte CTCP)\n" "%e = aktuelles Netzwerk\n" @@ -4004,7 +3967,7 @@ msgstr "" "&3 = Wort 3 bis zum Ende der Zeile\n" "\n" -#: src/fe-gtk/menu.c:1217 +#: src/fe-gtk/menu.c:1419 #, c-format msgid "" "URL Handlers - Special codes:\n" @@ -4015,1457 +3978,1593 @@ msgid "" "indicates it should be sent to a\n" "shell instead of XChat" msgstr "" -"URL-Handling - Spezielle Kodes:\n" +"Befehle für URLs - Spezielle Codes:\n" "\n" "%s = die URL\n" "\n" -"Ein ! am Anfang des Kommandos sagt,\n" -"daß das Kommando auf der Shell statt\n" -"in XChat gestartet wird" +"Ein »!« am Anfang des Befehls sagt\n" +"aus, dass der Befehl auf der Shell\n" +"statt in XChat ausgeführt wird" -#: src/fe-gtk/menu.c:1226 +#: src/fe-gtk/menu.c:1428 msgid "XChat: User Defined Commands" -msgstr "XChat: Benutzerdefinierte Kommandos" +msgstr "XChat: Benutzerdefinierte Befehle" -#: src/fe-gtk/menu.c:1233 +#: src/fe-gtk/menu.c:1435 msgid "XChat: Userlist Popup menu" msgstr "XChat: Benutzerlistenmenü" -#: src/fe-gtk/menu.c:1240 +#: src/fe-gtk/menu.c:1442 msgid "Replace with" msgstr "Ersetzen durch" -#: src/fe-gtk/menu.c:1240 +#: src/fe-gtk/menu.c:1442 msgid "XChat: Replace" msgstr "XChat: Ersetzen" -#: src/fe-gtk/menu.c:1247 +#: src/fe-gtk/menu.c:1449 msgid "XChat: URL Handlers" -msgstr "XChat: URL-Handling" +msgstr "XChat: Befehle für URLs" -#: src/fe-gtk/menu.c:1266 +#: src/fe-gtk/menu.c:1468 msgid "XChat: Userlist buttons" msgstr "XChat: Benutzerlistenknöpfe" -#: src/fe-gtk/menu.c:1273 +#: src/fe-gtk/menu.c:1475 msgid "XChat: Dialog buttons" msgstr "XChat: Dialogknöpfe" -#: src/fe-gtk/menu.c:1280 +#: src/fe-gtk/menu.c:1482 msgid "XChat: CTCP Replies" msgstr "XChat: CTCP-Antworten" -#: src/fe-gtk/menu.c:1378 +#: src/fe-gtk/menu.c:1588 msgid "_XChat" msgstr "_XChat" -#: src/fe-gtk/menu.c:1379 +#: src/fe-gtk/menu.c:1589 msgid "Network Li_st..." -msgstr "Netzwerk-Li_ste..." +msgstr "Netzwerkli_ste …" -#: src/fe-gtk/menu.c:1382 +#: src/fe-gtk/menu.c:1592 msgid "_New" msgstr "_Neu" -#: src/fe-gtk/menu.c:1383 +#: src/fe-gtk/menu.c:1593 msgid "Server Tab..." -msgstr "Serverreiter..." +msgstr "Serverreiter …" -#: src/fe-gtk/menu.c:1384 +#: src/fe-gtk/menu.c:1594 msgid "Channel Tab..." -msgstr "Channelreiter..." +msgstr "Channelreiter …" -#: src/fe-gtk/menu.c:1385 +#: src/fe-gtk/menu.c:1595 msgid "Server Window..." -msgstr "Serverfenster..." +msgstr "Serverfenster …" -#: src/fe-gtk/menu.c:1386 +#: src/fe-gtk/menu.c:1596 msgid "Channel Window..." -msgstr "Channelfenster..." +msgstr "Channelfenster …" -#: src/fe-gtk/menu.c:1391 -#: src/fe-gtk/menu.c:1393 +#: src/fe-gtk/menu.c:1601 src/fe-gtk/menu.c:1603 msgid "_Load Plugin or Script..." -msgstr "L_ade Plugins oder Skripte..." +msgstr "Plugins oder Skripte _laden …" -#: src/fe-gtk/menu.c:1401 -#: src/fe-gtk/plugin-tray.c:463 +#: src/fe-gtk/menu.c:1611 src/fe-gtk/plugin-tray.c:535 msgid "_Quit" msgstr "_Beenden" -#: src/fe-gtk/menu.c:1403 +#: src/fe-gtk/menu.c:1613 msgid "_View" msgstr "A_nsicht" -#: src/fe-gtk/menu.c:1405 +#: src/fe-gtk/menu.c:1615 msgid "_Menu Bar" msgstr "_Menüzeile" -#: src/fe-gtk/menu.c:1406 +#: src/fe-gtk/menu.c:1616 msgid "_Topic Bar" msgstr "_Themenzeile" -#: src/fe-gtk/menu.c:1407 +#: src/fe-gtk/menu.c:1617 msgid "_User List" msgstr "Ben_utzerliste" -#: src/fe-gtk/menu.c:1408 +#: src/fe-gtk/menu.c:1618 msgid "U_serlist Buttons" msgstr "Benutzerli_sten-Knöpfe" -#: src/fe-gtk/menu.c:1409 +#: src/fe-gtk/menu.c:1619 msgid "M_ode Buttons" msgstr "M_odusknöpfe" -#: src/fe-gtk/menu.c:1411 +#: src/fe-gtk/menu.c:1621 msgid "_Channel Switcher" -msgstr "_Channel-Umschalter" +msgstr "_Channelumschalter" -#: src/fe-gtk/menu.c:1413 +#: src/fe-gtk/menu.c:1623 msgid "_Tabs" msgstr "_Reiter" -#: src/fe-gtk/menu.c:1414 +#: src/fe-gtk/menu.c:1624 msgid "T_ree" msgstr "_Baum" -#: src/fe-gtk/menu.c:1416 +#: src/fe-gtk/menu.c:1626 msgid "_Network Meters" msgstr "_Netzwerkmeter" -#: src/fe-gtk/menu.c:1418 +#: src/fe-gtk/menu.c:1628 msgid "Off" msgstr "Aus" -#: src/fe-gtk/menu.c:1419 +#: src/fe-gtk/menu.c:1629 msgid "Graph" msgstr "Grafisch" -#: src/fe-gtk/menu.c:1424 +#: src/fe-gtk/menu.c:1634 msgid "_Server" msgstr "_Server" -#: src/fe-gtk/menu.c:1425 +#: src/fe-gtk/menu.c:1635 msgid "_Disconnect" msgstr "_Trennen" -#: src/fe-gtk/menu.c:1426 +#: src/fe-gtk/menu.c:1636 msgid "_Reconnect" msgstr "_Wiederverbinden" -#: src/fe-gtk/menu.c:1430 +#: src/fe-gtk/menu.c:1637 +msgid "Join a Channel..." +msgstr "Channel betreten …" + +#: src/fe-gtk/menu.c:1638 +msgid "List of Channels..." +msgstr "Channelliste …" + +#: src/fe-gtk/menu.c:1641 msgid "Marked Away" msgstr "Als abwesend markiert" -#: src/fe-gtk/menu.c:1432 +#: src/fe-gtk/menu.c:1643 msgid "_Usermenu" msgstr "_Benutzermenü" -#: src/fe-gtk/menu.c:1434 +#: src/fe-gtk/menu.c:1645 msgid "S_ettings" msgstr "_Einstellungen" -#: src/fe-gtk/menu.c:1435 +#: src/fe-gtk/menu.c:1646 msgid "_Preferences" msgstr "_Optionen" -#: src/fe-gtk/menu.c:1437 +#: src/fe-gtk/menu.c:1648 src/fe-gtk/setup.c:1785 msgid "Advanced" msgstr "Fortgeschritten" -#: src/fe-gtk/menu.c:1438 +#: src/fe-gtk/menu.c:1649 msgid "Auto Replace..." -msgstr "Automatisches Ersetzen..." +msgstr "Automatisches Ersetzen …" -#: src/fe-gtk/menu.c:1439 +#: src/fe-gtk/menu.c:1650 msgid "CTCP Replies..." -msgstr "CTCP-Antworten..." +msgstr "CTCP-Antworten …" -#: src/fe-gtk/menu.c:1440 +#: src/fe-gtk/menu.c:1651 msgid "Dialog Buttons..." -msgstr "Dialog-Knöpfe..." +msgstr "Dialogknöpfe …" -#: src/fe-gtk/menu.c:1441 +#: src/fe-gtk/menu.c:1652 msgid "Keyboard Shortcuts..." -msgstr "Tastenkürzel..." +msgstr "Tastenkürzel …" -#: src/fe-gtk/menu.c:1442 +#: src/fe-gtk/menu.c:1653 msgid "Text Events..." msgstr "Textereignisse" -#: src/fe-gtk/menu.c:1443 +#: src/fe-gtk/menu.c:1654 msgid "URL Handlers..." -msgstr "URL-Handling..." +msgstr "Befehle für URLs …" -#: src/fe-gtk/menu.c:1444 +#: src/fe-gtk/menu.c:1655 msgid "User Commands..." -msgstr "Benutzerkommandos..." +msgstr "Benutzerbefehle …" -#: src/fe-gtk/menu.c:1445 +#: src/fe-gtk/menu.c:1656 msgid "Userlist Buttons..." -msgstr "Benutzerlisten-Knöpfe..." +msgstr "Benutzerlistenknöpfe …" -#: src/fe-gtk/menu.c:1446 +#: src/fe-gtk/menu.c:1657 msgid "Userlist Popup..." -msgstr "Benutzerlisten-Menü..." +msgstr "Benutzerlistenmenü …" -#: src/fe-gtk/menu.c:1449 +#: src/fe-gtk/menu.c:1661 +msgid "Save Settings to Disk" +msgstr "Einstellungen auf Festplatte speichern" + +#: src/fe-gtk/menu.c:1664 msgid "_Window" msgstr "_Fenster" -#: src/fe-gtk/menu.c:1450 +#: src/fe-gtk/menu.c:1665 msgid "Ban List..." -msgstr "Bannliste..." +msgstr "Bannliste …" -#: src/fe-gtk/menu.c:1451 -msgid "Channel List..." -msgstr "Channelliste..." - -#: src/fe-gtk/menu.c:1452 +#: src/fe-gtk/menu.c:1666 msgid "Character Chart..." -msgstr "Zeichentabelle..." +msgstr "Zeichentabelle …" -#: src/fe-gtk/menu.c:1453 +#: src/fe-gtk/menu.c:1667 msgid "Direct Chat..." -msgstr "DCC Chat..." +msgstr "Direktchat …" -#: src/fe-gtk/menu.c:1454 +#: src/fe-gtk/menu.c:1668 msgid "File Transfers..." -msgstr "Dateitransfers..." +msgstr "Dateiübertragungen …" -#: src/fe-gtk/menu.c:1455 -msgid "Ignore List..." -msgstr "Ignorierliste..." +#: src/fe-gtk/menu.c:1669 +msgid "Friends List..." +msgstr "Freundesliste …" -#: src/fe-gtk/menu.c:1456 -msgid "Notify List..." -msgstr "Benachrichtigungs-Liste..." +#: src/fe-gtk/menu.c:1670 +msgid "Ignore List..." +msgstr "Ignorierliste …" -#: src/fe-gtk/menu.c:1457 +#: src/fe-gtk/menu.c:1671 msgid "Plugins and Scripts..." -msgstr "Plugins und Skripte..." +msgstr "Plugins und Skripte …" -#: src/fe-gtk/menu.c:1458 +#: src/fe-gtk/menu.c:1672 msgid "Raw Log..." -msgstr "Rohdaten-Logbuch..." +msgstr "Rohdatenlogbuch …" -#: src/fe-gtk/menu.c:1459 +#: src/fe-gtk/menu.c:1673 msgid "URL Grabber..." -msgstr "URL-Grabber..." +msgstr "Gesammelte URLs …" -#: src/fe-gtk/menu.c:1461 +#: src/fe-gtk/menu.c:1675 msgid "Reset Marker Line" msgstr "Markierungslinie zurücksetzen" -#: src/fe-gtk/menu.c:1462 +#: src/fe-gtk/menu.c:1676 +msgid "_Copy Selection" +msgstr "Auswahl _kopieren" + +#: src/fe-gtk/menu.c:1677 msgid "C_lear Text" -msgstr "_Lösche Text" +msgstr "Text _löschen" -#: src/fe-gtk/menu.c:1464 +#: src/fe-gtk/menu.c:1679 msgid "Search Text..." -msgstr "Suche Text..." +msgstr "Text suchen …" -#: src/fe-gtk/menu.c:1465 +#: src/fe-gtk/menu.c:1680 msgid "Save Text..." -msgstr "Speichere Text..." +msgstr "Text speichern …" -#: src/fe-gtk/menu.c:1467 -#: src/fe-gtk/menu.c:1941 +#: src/fe-gtk/menu.c:1682 src/fe-gtk/menu.c:2163 msgid "_Help" msgstr "_Hilfe" -#: src/fe-gtk/menu.c:1468 +#: src/fe-gtk/menu.c:1683 msgid "_Contents" msgstr "_Inhalt" -#: src/fe-gtk/menu.c:1469 +#: src/fe-gtk/menu.c:1685 +msgid "Check for updates" +msgstr "Nach Updates suchen" + +#: src/fe-gtk/menu.c:1687 msgid "_About" msgstr "Ü_ber" -#: src/fe-gtk/menu.c:1954 -msgid "_Attach Window" +#: src/fe-gtk/menu.c:2176 +msgid "_Attach" msgstr "Fenster _anhängen" -#: src/fe-gtk/menu.c:1955 -msgid "_Close Window" -msgstr "Fenster s_chließen" - -#: src/fe-gtk/notifygui.c:137 -msgid "User" -msgstr "Benutzer" - -#: src/fe-gtk/notifygui.c:140 +#: src/fe-gtk/notifygui.c:138 msgid "Last Seen" msgstr "Zuletzt gesehen" -#: src/fe-gtk/notifygui.c:181 +#: src/fe-gtk/notifygui.c:180 msgid "Offline" msgstr "Offline" -#: src/fe-gtk/notifygui.c:201 -#: src/fe-gtk/setup.c:229 +#: src/fe-gtk/notifygui.c:200 src/fe-gtk/setup.c:259 msgid "Never" msgstr "Niemals" -#: src/fe-gtk/notifygui.c:204 -#: src/fe-gtk/notifygui.c:229 +#: src/fe-gtk/notifygui.c:203 src/fe-gtk/notifygui.c:228 #, c-format msgid "%d minutes ago" msgstr "vor %d Minuten" -#: src/fe-gtk/notifygui.c:219 +#: src/fe-gtk/notifygui.c:218 msgid "Online" msgstr "Online" -#: src/fe-gtk/notifygui.c:348 +#: src/fe-gtk/notifygui.c:347 msgid "Enter nickname to add:" msgstr "Hinzuzufügenden Nickname eingeben:" #: src/fe-gtk/notifygui.c:376 msgid "Notify on these networks:" -msgstr "Benachrichtige in diesen Netzen:" +msgstr "In diesen Netzwerken benachrichtigen:" #: src/fe-gtk/notifygui.c:387 msgid "Comma separated list of networks is accepted." msgstr "Eine kommagetrennte Liste von Netzen wird akzeptiert" -#: src/fe-gtk/notifygui.c:407 -msgid "XChat: Notify List" -msgstr "XChat: Benachrichtigungs-Liste" +#: src/fe-gtk/notifygui.c:413 +msgid "XChat: Friends List" +msgstr "XChat: Freundesliste" -#: src/fe-gtk/notifygui.c:424 -msgid "Remove" -msgstr "Entfernen" - -#: src/fe-gtk/notifygui.c:428 +#: src/fe-gtk/notifygui.c:434 msgid "Open Dialog" msgstr "Dialogfenster öffnen" -#: src/fe-gtk/plugin-tray.c:163 -msgid "" -"Cannot find 'notify-send' to open balloon alerts.\n" -"Please install libnotify." -msgstr "" -"Kann 'notify-send' nicht finden, um Ballon-Hinweise zu senden.\n" -"Bitte installiere libnotify." - -#: src/fe-gtk/plugin-tray.c:214 +#: src/fe-gtk/plugin-tray.c:223 #, c-format -msgid "XChat: Connected to %u networks and %u channels" -msgstr "XChat: Verbunden mit %u Netzwerken und %u Channels" +msgid "XChat-WDK: Connected to %u networks and %u channels" +msgstr "XChat-WDK: Mit %u Netzwerken und %u Channels verbunden" -#: src/fe-gtk/plugin-tray.c:451 -msgid "_Restore" -msgstr "_Wiederherstellen" +#: src/fe-gtk/plugin-tray.c:511 +msgid "_Restore Window" +msgstr "Fenster _wiederherstellen" -#: src/fe-gtk/plugin-tray.c:453 -msgid "_Hide" -msgstr "_Verstecken" +#: src/fe-gtk/plugin-tray.c:513 +msgid "_Hide Window" +msgstr "Fenster _verstecken" -#: src/fe-gtk/plugin-tray.c:456 +#: src/fe-gtk/plugin-tray.c:517 msgid "_Blink on" msgstr "_Blinke bei" -#: src/fe-gtk/plugin-tray.c:457 -#: src/fe-gtk/setup.c:467 +#: src/fe-gtk/plugin-tray.c:518 src/fe-gtk/setup.c:550 msgid "Channel Message" -msgstr "Channel-Nachricht" +msgstr "Channelnachricht" -#: src/fe-gtk/plugin-tray.c:458 -#: src/fe-gtk/setup.c:468 +#: src/fe-gtk/plugin-tray.c:519 src/fe-gtk/setup.c:551 msgid "Private Message" -msgstr "Privaten Nachricht" +msgstr "Private Nachricht" -#: src/fe-gtk/plugin-tray.c:459 -#: src/fe-gtk/setup.c:469 +#: src/fe-gtk/plugin-tray.c:520 src/fe-gtk/setup.c:552 msgid "Highlighted Message" msgstr "Hervorgehobene Nachricht" -#: src/fe-gtk/plugin-tray.c:507 -#: src/fe-gtk/plugin-tray.c:515 +#: src/fe-gtk/plugin-tray.c:523 +msgid "_Change status" +msgstr "Status ä_ndern" + +#: src/fe-gtk/plugin-tray.c:525 +msgid "_Away" +msgstr "_Abwesend" + +#: src/fe-gtk/plugin-tray.c:528 +msgid "_Back" +msgstr "_Zurück" + +#: src/fe-gtk/plugin-tray.c:583 src/fe-gtk/plugin-tray.c:591 #, c-format -msgid "XChat: Highlighted message from: %s (%s)" -msgstr "XChat: Hervorgehobene Nachricht von: %s (%s)" +msgid "XChat-WDK: Highlighted message from: %s (%s)" +msgstr "XChat-WDK: Hervorgehobene Nachricht von: %s (%s)" -#: src/fe-gtk/plugin-tray.c:510 +#: src/fe-gtk/plugin-tray.c:586 #, c-format -msgid "XChat: %u highlighted messages, latest from: %s (%s)" -msgstr "XChat: %u hervorgehobene Nachrichten, letzte von: %s (%s)" +msgid "XChat-WDK: %u highlighted messages, latest from: %s (%s)" +msgstr "XChat-WDK: %u hervorgehobene Nachrichten, letzte von: %s (%s)" -#: src/fe-gtk/plugin-tray.c:533 -#: src/fe-gtk/plugin-tray.c:540 +#: src/fe-gtk/plugin-tray.c:609 src/fe-gtk/plugin-tray.c:616 #, c-format -msgid "XChat: New public message from: %s (%s)" -msgstr "XChat: Neue öffentliche Nachricht von: %s (%s)" +msgid "XChat-WDK: New public message from: %s (%s)" +msgstr "XChat-WDK: Neue öffentliche Nachricht von: %s (%s)" -#: src/fe-gtk/plugin-tray.c:536 +#: src/fe-gtk/plugin-tray.c:612 #, c-format -msgid "XChat: %u new public messages." -msgstr "XChat: %u neue öffentliche Nachrichten." +msgid "XChat-WDK: %u new public messages." +msgstr "XChat-WDK: %u neue öffentliche Nachrichten." -#: src/fe-gtk/plugin-tray.c:562 -#: src/fe-gtk/plugin-tray.c:569 +#: src/fe-gtk/plugin-tray.c:638 src/fe-gtk/plugin-tray.c:645 #, c-format -msgid "XChat: Private message from: %s (%s)" -msgstr "XChat: Private Nachricht von: %s (%s)" +msgid "XChat-WDK: Private message from: %s (%s)" +msgstr "XChat-WDK: Private Nachricht von: %s (%s)" -#: src/fe-gtk/plugin-tray.c:565 +#: src/fe-gtk/plugin-tray.c:641 #, c-format -msgid "XChat: %u private messages, latest from: %s (%s)" -msgstr "XChat: %u private Nachrichten, letzte von: %s (%s)" +msgid "XChat-WDK: %u private messages, latest from: %s (%s)" +msgstr "XChat-WDK: %u private Nachrichten, letzte von: %s (%s)" -#: src/fe-gtk/plugin-tray.c:615 -#: src/fe-gtk/plugin-tray.c:623 +#: src/fe-gtk/plugin-tray.c:691 src/fe-gtk/plugin-tray.c:699 #, c-format -msgid "XChat: File offer from: %s (%s)" -msgstr "XChat: Dateiangebot von: %s (%s)" +msgid "XChat-WDK: File offer from: %s (%s)" +msgstr "XChat-WDK: Dateiangebot von: %s (%s)" -#: src/fe-gtk/plugin-tray.c:618 +#: src/fe-gtk/plugin-tray.c:694 #, c-format -msgid "XChat: %u file offers, latest from: %s (%s)" -msgstr "XChat: %u Dateiangebote, letztes von: %s (%s)" +msgid "XChat-WDK: %u file offers, latest from: %s (%s)" +msgstr "XChat-WDK: %u Dateiangebote, letztes von: %s (%s)" -#: src/fe-gtk/plugingui.c:76 -#: src/fe-gtk/textgui.c:424 +#: src/fe-gtk/plugingui.c:72 +msgid "Version" +msgstr "Version" + +#: src/fe-gtk/plugingui.c:74 src/fe-gtk/textgui.c:424 msgid "Description" msgstr "Beschreibung" -#: src/fe-gtk/plugingui.c:151 +#: src/fe-gtk/plugingui.c:149 msgid "Select a Plugin or Script to load" msgstr "Wähle ein Plugin oder Skript zum Laden" -#: src/fe-gtk/plugingui.c:223 +#: src/fe-gtk/plugingui.c:226 msgid "XChat: Plugins and Scripts" msgstr "XChat: Plugins und Skripte" -#: src/fe-gtk/plugingui.c:229 +#: src/fe-gtk/plugingui.c:232 msgid "_Load..." -msgstr "_Laden..." +msgstr "_Laden …" -#: src/fe-gtk/plugingui.c:232 +#: src/fe-gtk/plugingui.c:235 msgid "_UnLoad" msgstr "_Entladen" -#: src/fe-gtk/plugingui.c:236 -#: src/fe-gtk/search.c:144 -msgid "_Close" -msgstr "S_chließen" - -#: src/fe-gtk/rawlog.c:81 -#: src/fe-gtk/rawlog.c:130 -#: src/fe-gtk/textgui.c:438 -#: src/fe-gtk/urlgrab.c:205 +#: src/fe-gtk/rawlog.c:82 src/fe-gtk/rawlog.c:131 src/fe-gtk/textgui.c:438 +#: src/fe-gtk/urlgrab.c:214 msgid "Save As..." -msgstr "Speichern als..." +msgstr "Speichern als …" -#: src/fe-gtk/rawlog.c:97 +#: src/fe-gtk/rawlog.c:98 #, c-format msgid "XChat: Rawlog (%s)" -msgstr "XChat: Rohdatenlog (%s)" +msgstr "XChat: Rohdatenlogbuch (%s)" -#: src/fe-gtk/rawlog.c:127 +#: src/fe-gtk/rawlog.c:128 msgid "Clear rawlog" -msgstr "Rohdatenlog löschen" +msgstr "Rohdatenlogbuch leeren" -#: src/fe-gtk/search.c:57 +#: src/fe-gtk/search.c:56 msgid "The window you opened this Search for doesn't exist anymore." msgstr "Das Fenster für das diese Suche geöffnet wurde existiert nicht mehr." -#: src/fe-gtk/search.c:65 +#: src/fe-gtk/search.c:64 msgid "Search hit end, not found." msgstr "Suche beendet, kein Treffer." -#: src/fe-gtk/search.c:109 +#: src/fe-gtk/search.c:116 msgid "XChat: Search" msgstr "XChat: Suche" -#: src/fe-gtk/search.c:127 +#: src/fe-gtk/search.c:134 msgid "_Match case" msgstr "Groß-/Kleinschreibung _beachten" -#: src/fe-gtk/search.c:133 +#: src/fe-gtk/search.c:140 msgid "Search _backwards" msgstr "_Rückwärts suchen" -#: src/fe-gtk/search.c:146 +#: src/fe-gtk/search.c:153 msgid "_Find" msgstr "_Finde" -#: src/fe-gtk/servlistgui.c:170 -#: src/fe-gtk/servlistgui.c:269 +#: src/fe-gtk/servlistgui.c:171 src/fe-gtk/servlistgui.c:280 msgid "New Network" msgstr "Neues Netzwerk" -#: src/fe-gtk/servlistgui.c:554 +#: src/fe-gtk/servlistgui.c:552 #, c-format msgid "Really remove network \"%s\" and all its servers?" -msgstr "Wirklich das Netzwerk \"%s\" und alle seine Server löschen?" +msgstr "Wirklich das Netzwerk »%s« und alle seine Server löschen?" -#: src/fe-gtk/servlistgui.c:678 +#: src/fe-gtk/servlistgui.c:734 +msgid "#channel" +msgstr "#channel" + +#: src/fe-gtk/servlistgui.c:844 +msgid "XChat: Favorite Channels (Auto-Join List)" +msgstr "XChat: Lieblingschannels (Autojoinliste)" + +#: src/fe-gtk/servlistgui.c:857 +#, c-format +msgid "These channels will be joined whenever you connect to %s." +msgstr "Diese Channels werden betreten, wenn Sie sich zu %s verbinden." + +#: src/fe-gtk/servlistgui.c:900 +msgid "Key (Password)" +msgstr "Passwort" + +#: src/fe-gtk/servlistgui.c:931 src/fe-gtk/servlistgui.c:1571 +msgid "_Edit" +msgstr "_Editieren" + +#: src/fe-gtk/servlistgui.c:967 +#, c-format +msgid "%s has been removed." +msgstr "%s wurde entfernt." + +#: src/fe-gtk/servlistgui.c:987 +#, c-format +msgid "%s has been added." +msgstr "%s wurde hinzugefügt." + +#: src/fe-gtk/servlistgui.c:1011 msgid "User name and Real name cannot be left blank." msgstr "Benutzername und wahrer Name dürfen nicht leer sein." -#: src/fe-gtk/servlistgui.c:978 +#: src/fe-gtk/servlistgui.c:1402 #, c-format msgid "XChat: Edit %s" msgstr "XChat: Editiere %s" -#: src/fe-gtk/servlistgui.c:997 +#: src/fe-gtk/servlistgui.c:1421 #, c-format msgid "Servers for %s" msgstr "Server für %s" -#: src/fe-gtk/servlistgui.c:1008 +#: src/fe-gtk/servlistgui.c:1432 msgid "Connect to selected server only" msgstr "Nur mit dem angegebenen Server verbinden" -#: src/fe-gtk/servlistgui.c:1009 +#: src/fe-gtk/servlistgui.c:1433 msgid "Don't cycle through all the servers when the connection fails." msgstr "Nicht alle Server durchlaufen wenn die Verbindung scheitert." -#: src/fe-gtk/servlistgui.c:1011 +#: src/fe-gtk/servlistgui.c:1435 msgid "Your Details" -msgstr "Deine Details" +msgstr "Ihre Details" -#: src/fe-gtk/servlistgui.c:1017 +#: src/fe-gtk/servlistgui.c:1441 msgid "Use global user information" msgstr "Globale Benutzerinformationen benutzen" -#: src/fe-gtk/servlistgui.c:1020 -#: src/fe-gtk/servlistgui.c:1252 +#: src/fe-gtk/servlistgui.c:1444 src/fe-gtk/servlistgui.c:1678 msgid "_Nick name:" msgstr "_Nickname:" -#: src/fe-gtk/servlistgui.c:1024 -#: src/fe-gtk/servlistgui.c:1259 +#: src/fe-gtk/servlistgui.c:1448 src/fe-gtk/servlistgui.c:1685 msgid "Second choice:" msgstr "Zweite Wahl:" -#: src/fe-gtk/servlistgui.c:1028 -#: src/fe-gtk/servlistgui.c:1273 +#: src/fe-gtk/servlistgui.c:1452 src/fe-gtk/servlistgui.c:1699 msgid "_User name:" msgstr "Ben_utzer:" -#: src/fe-gtk/servlistgui.c:1032 -#: src/fe-gtk/servlistgui.c:1280 +#: src/fe-gtk/servlistgui.c:1456 src/fe-gtk/servlistgui.c:1706 msgid "Rea_l name:" msgstr "Wahrer Name:" -#: src/fe-gtk/servlistgui.c:1035 +#: src/fe-gtk/servlistgui.c:1459 msgid "Connecting" -msgstr "Verbinde" +msgstr "Verbindung wird hergestellt" -#: src/fe-gtk/servlistgui.c:1041 +#: src/fe-gtk/servlistgui.c:1465 msgid "Auto connect to this network at startup" -msgstr "Automatisches Verbinden mit diesem Netzwerk beim Start" +msgstr "Mit diesem Netzwerk beim Start verbinden" -#: src/fe-gtk/servlistgui.c:1043 -msgid "Use a proxy server" -msgstr "Proxy-Server benutzen" +#: src/fe-gtk/servlistgui.c:1467 +msgid "Bypass proxy server" +msgstr "Proxyserver umgehen" -#: src/fe-gtk/servlistgui.c:1045 +#: src/fe-gtk/servlistgui.c:1469 msgid "Use SSL for all the servers on this network" -msgstr "SSL für alle Server dieses Netzes benutzen" +msgstr "SSL für alle Server dieses Netzwerks benutzen" -#: src/fe-gtk/servlistgui.c:1050 +#: src/fe-gtk/servlistgui.c:1474 msgid "Accept invalid SSL certificate" msgstr "Ungültiges SSL-Zertifikat akzeptieren" -#: src/fe-gtk/servlistgui.c:1056 -msgid "C_hannels to join:" -msgstr "Zu betretende C_hannels:" +#: src/fe-gtk/servlistgui.c:1480 +msgid "_Favorite channels:" +msgstr "_Lieblingschannels:" -#: src/fe-gtk/servlistgui.c:1058 +#: src/fe-gtk/servlistgui.c:1482 msgid "Channels to join, separated by commas, but not spaces!" -msgstr "Zu betretende Channels getrennt durch Kommata, nicht durch Leerzeichen!" +msgstr "Zu betretende Channels durch Kommata getrennt!" -#: src/fe-gtk/servlistgui.c:1061 +#: src/fe-gtk/servlistgui.c:1485 msgid "Connect command:" -msgstr "Verbindungskommando:" +msgstr "Verbindungsbefehl:" -#: src/fe-gtk/servlistgui.c:1063 -msgid "Extra command to execute after connecting. If you need more than one, set this to LOAD -e <filename>, where <filename> is a text-file full of commands to execute." -msgstr "Kommando, das nach der Verbindung ausgeführt werden soll. Für mehrere Kommandos benutze LOAD -e <Dateiname>, wobei <Dateiname> eine Textdatei mit den auszuführenden Kommandos ist." +#: src/fe-gtk/servlistgui.c:1487 +msgid "" +"Extra command to execute after connecting. If you need more than one, set " +"this to LOAD -e <filename>, where <filename> is a text-file full of commands " +"to execute." +msgstr "" +"Zusätzlicher Befehl, der nach dem Verbinden ausgeführt werden soll. Wenn Sie " +"mehr als einen Befehl ausführen möchten, setzen Sie den Befehl auf " +"LOAD -e <Dateiname>, wobei <Dateiname> eine Textdatei mit den auszuführenden " +"Befehlen ist." -#: src/fe-gtk/servlistgui.c:1066 +#: src/fe-gtk/servlistgui.c:1490 msgid "Nickserv password:" msgstr "NickServ-Passwort:" -#: src/fe-gtk/servlistgui.c:1068 -msgid "If your nickname requires a password, enter it here. Not all IRC networks support this." -msgstr "Wenn Dein Nickname ein Passwort erfordert, gib es hier ein. Nicht alle IRC-Netzwerke unterstützen dies." +#: src/fe-gtk/servlistgui.c:1492 +msgid "" +"If your nickname requires a password, enter it here. Not all IRC networks " +"support this." +msgstr "" +"Falls Ihr Nickname ein Passwort erfordert, geben Sie es hier ein. Nicht alle " +"IRC-Netzwerke unterstützen dies." -#: src/fe-gtk/servlistgui.c:1072 +#: src/fe-gtk/servlistgui.c:1496 msgid "Server password:" -msgstr "Server-Passwort:" +msgstr "Serverpasswort:" -#: src/fe-gtk/servlistgui.c:1074 +#: src/fe-gtk/servlistgui.c:1498 msgid "Password for the server, if in doubt, leave blank." -msgstr "Serverpasswort. Im Zweifel freilassen." +msgstr "Serverpasswort. Im Zweifelsfall freilassen." -#: src/fe-gtk/servlistgui.c:1077 +#: src/fe-gtk/servlistgui.c:1501 msgid "Character set:" msgstr "Zeichensatz:" -#: src/fe-gtk/servlistgui.c:1147 -msgid "_Edit" -msgstr "_Editieren" - -#: src/fe-gtk/servlistgui.c:1230 +#: src/fe-gtk/servlistgui.c:1656 msgid "XChat: Network List" msgstr "XChat: Netzwerkliste" -#: src/fe-gtk/servlistgui.c:1242 +#: src/fe-gtk/servlistgui.c:1668 msgid "User Information" msgstr "Benutzer-Information" -#: src/fe-gtk/servlistgui.c:1266 +#: src/fe-gtk/servlistgui.c:1692 msgid "Third choice:" msgstr "Dritte Wahl:" -#: src/fe-gtk/servlistgui.c:1326 +#: src/fe-gtk/servlistgui.c:1752 msgid "Networks" msgstr "Netzwerke" -#: src/fe-gtk/servlistgui.c:1367 +#: src/fe-gtk/servlistgui.c:1800 msgid "Skip network list on startup" msgstr "Keine Netzwerkliste beim Start" -#: src/fe-gtk/servlistgui.c:1399 +#: src/fe-gtk/servlistgui.c:1809 +msgid "Show favorites only" +msgstr "Nur Favoriten anzeigen:" + +#: src/fe-gtk/servlistgui.c:1839 msgid "_Edit..." -msgstr "_Editiere..." +msgstr "Änd_ern …" -#: src/fe-gtk/servlistgui.c:1406 +#: src/fe-gtk/servlistgui.c:1846 msgid "_Sort" -msgstr "Sortiere" +msgstr "_Sortieren" -#: src/fe-gtk/servlistgui.c:1407 -msgid "Sorts the network list in alphabetical order. Use SHIFT-UP and SHIFT-DOWN keys to move a row." -msgstr "Sortiert die Netzwerkliste alphabetisch. Benutze Umschalt+Auf und Umschalt+Ab um eine Zeile zu bewegen." +#: src/fe-gtk/servlistgui.c:1847 +msgid "" +"Sorts the network list in alphabetical order. Use SHIFT-UP and SHIFT-DOWN " +"keys to move a row." +msgstr "" +"Sortiert die Netzwerkliste alphabetisch. Benutze Umschalt+Auf und Umschalt" +"+Ab um eine Zeile zu bewegen." -#: src/fe-gtk/servlistgui.c:1432 +#: src/fe-gtk/servlistgui.c:1855 +msgid "_Favor" +msgstr "_Favorisieren" + +#: src/fe-gtk/servlistgui.c:1856 +msgid "Mark or unmark this network as a favorite." +msgstr "Dieses Netzwerk zu Favoriten hinzufügen bzw. von ihnen entfernen." + +#: src/fe-gtk/servlistgui.c:1880 msgid "C_onnect" -msgstr "_Verbinde" +msgstr "_Verbinden" -#: src/fe-gtk/setup.c:102 +#: src/fe-gtk/setup.c:104 msgid "Text Box Appearance" -msgstr "Textfeld-Aussehen" +msgstr "Aussehen des Textfelds" + +#: src/fe-gtk/setup.c:106 +msgid "Main font:" +msgstr "Hauptschriftart:" -#: src/fe-gtk/setup.c:103 +#: src/fe-gtk/setup.c:107 +msgid "Alternative fonts:" +msgstr "Alternative Schriftarten:" + +#: src/fe-gtk/setup.c:109 msgid "Font:" msgstr "Schriftart:" -#: src/fe-gtk/setup.c:104 +#: src/fe-gtk/setup.c:111 msgid "Background image:" msgstr "Hintergrundbild:" -#: src/fe-gtk/setup.c:105 +#: src/fe-gtk/setup.c:112 msgid "Scrollback lines:" msgstr "Textpufferzeilen:" -#: src/fe-gtk/setup.c:106 +#: src/fe-gtk/setup.c:113 msgid "Colored nick names" -msgstr "Farbige Nicks" +msgstr "Farbige Nicknamen" -#: src/fe-gtk/setup.c:107 +#: src/fe-gtk/setup.c:114 msgid "Give each person on IRC a different color" msgstr "Jeder Person im IRC eine Farbe zuordnen" -#: src/fe-gtk/setup.c:108 +#: src/fe-gtk/setup.c:115 msgid "Indent nick names" msgstr "Nicks einrücken" -#: src/fe-gtk/setup.c:109 +#: src/fe-gtk/setup.c:116 msgid "Make nick names right-justified" msgstr "Nicknamen rechts ausrichten" -#: src/fe-gtk/setup.c:110 +#: src/fe-gtk/setup.c:117 msgid "Transparent background" msgstr "Transparenter Hintergrund" -#: src/fe-gtk/setup.c:111 +#: src/fe-gtk/setup.c:118 msgid "Show marker line" msgstr "Markierungslinie zeigen" -#: src/fe-gtk/setup.c:112 +#: src/fe-gtk/setup.c:119 msgid "Insert a red line after the last read text." -msgstr "Eine rote Linie nach dem zuletzt gelesenen Text einfügen" +msgstr "Eine rote Linie nach der zuletzt gelesenen Nachricht einfügen" -#: src/fe-gtk/setup.c:113 +#: src/fe-gtk/setup.c:120 msgid "Transparency Settings" msgstr "Transparenzseinstellungen" -#: src/fe-gtk/setup.c:114 +#: src/fe-gtk/setup.c:121 msgid "Red:" msgstr "Rot:" -#: src/fe-gtk/setup.c:115 +#: src/fe-gtk/setup.c:122 msgid "Green:" msgstr "Grün:" -#: src/fe-gtk/setup.c:116 +#: src/fe-gtk/setup.c:123 msgid "Blue:" msgstr "Blau:" -#: src/fe-gtk/setup.c:118 -#: src/fe-gtk/setup.c:379 +#: src/fe-gtk/setup.c:125 src/fe-gtk/setup.c:455 msgid "Time Stamps" msgstr "Zeitstempel" -#: src/fe-gtk/setup.c:119 +#: src/fe-gtk/setup.c:126 msgid "Enable time stamps" msgstr "Datumsstempel aktivieren" -#: src/fe-gtk/setup.c:120 +#: src/fe-gtk/setup.c:127 msgid "Time stamp format:" msgstr "Zeitstempelformat:" -#: src/fe-gtk/setup.c:121 -#: src/fe-gtk/setup.c:382 -msgid "See strftime manpage for details." -msgstr "strftime man-Seite für Details" +#: src/fe-gtk/setup.c:129 src/fe-gtk/setup.c:459 +msgid "See the strftime MSDN article for details." +msgstr "MSDN-Artikel über strftime für Details" + +#: src/fe-gtk/setup.c:131 src/fe-gtk/setup.c:461 +msgid "See the strftime manpage for details." +msgstr "strftime-Manpage für Details" -#: src/fe-gtk/setup.c:128 -#: src/fe-gtk/setup.c:168 +#: src/fe-gtk/setup.c:134 +msgid "Auto-Copy Behavior" +msgstr "Kopierverhalten" + +#: src/fe-gtk/setup.c:135 +msgid "Automatically copy selected text" +msgstr "Ausgewählten Text automatisch kopieren" + +#: src/fe-gtk/setup.c:136 +msgid "" +"Copy selected text to clipboard when left mouse button is released. " +"Otherwise, CONTROL-SHIFT-C will copy the selected text to the clipboard." +msgstr "" +"Den ausgewählten Text in den Zwischenspeicher kopieren, wenn die linke " +"Maustaste losgelassen wird. Ansonsten kopiert Strg+Umschalt+C die Auswahl " +"in den Zwischenspeicher." + +#: src/fe-gtk/setup.c:139 +msgid "Automatically include time stamps" +msgstr "Automatisch Zeitstempel mitkopieren" + +#: src/fe-gtk/setup.c:140 +msgid "" +"Automatically include time stamps in copied lines of text. Otherwise, " +"include time stamps if the SHIFT key is held down while selecting." +msgstr "" +"Automatisch dem ausgewählten Text Zeitstempel hinzufügen. Sonst werden " +"Zeitstempel mitkopiert, wenn die Umschalt-Taste beim Auswählen gedrückt " +"gehalten wird." + +#: src/fe-gtk/setup.c:142 +msgid "Automatically include color information" +msgstr "Automatisch Farbinformationen mitkopieren" + +#: src/fe-gtk/setup.c:143 +msgid "" +"Automatically include color information in copied lines of text. Otherwise, " +"include color information if the CONTROL key is held down while selecting." +msgstr "" +"Automatisch Farbinformationen im ausgewählten Text mitkopieren. Sonst werden " +"Farbinformationen kopiert, wenn die Strg-Taste beim Auswählen gedrückt " +"gehalten wird." + +#: src/fe-gtk/setup.c:152 src/fe-gtk/setup.c:198 msgid "A-Z" -msgstr "A-Z" +msgstr "Alphabet" -#: src/fe-gtk/setup.c:129 +#: src/fe-gtk/setup.c:153 msgid "Last-spoke order" -msgstr "Reihenfolge wie letzte Wortmeldungen" +msgstr "Zuletzt geschriebener Nachricht" -#: src/fe-gtk/setup.c:135 -#: src/fe-gtk/setup.c:1657 +#: src/fe-gtk/setup.c:159 src/fe-gtk/setup.c:1775 msgid "Input box" msgstr "Eingabezeile" -#: src/fe-gtk/setup.c:136 -#: src/fe-gtk/setup.c:200 +#: src/fe-gtk/setup.c:160 src/fe-gtk/setup.c:230 msgid "Use the Text box font and colors" -msgstr "Textfenster-Schrift und -Farben nutzen" +msgstr "Schrift und Farben des Eingabefelds nutzen" -#: src/fe-gtk/setup.c:138 +#: src/fe-gtk/setup.c:162 msgid "Spell checking" -msgstr "Rechtschreibprüfung" +msgstr "Rechtschreibung überprüfen" -#: src/fe-gtk/setup.c:141 +#: src/fe-gtk/setup.c:163 +msgid "Dictionaries to use:" +msgstr "Zu benutzende Wörterbücher:" + +#: src/fe-gtk/setup.c:165 +msgid "" +"Use language codes (as in \"share\\myspell\\dicts\").\n" +"Separate multiple entries with commas." +msgstr "" +"Sprachcodes wie in »share\\myspell\\dicts« benutzen.\n" +"Trennen Sie mehrere Einträge durch Kommata." + +#: src/fe-gtk/setup.c:167 +msgid "Use language codes. Separate multiple entries with commas." +msgstr "Verwenden Sie durch Kommata getrennte Sprachcodes." + +#: src/fe-gtk/setup.c:171 msgid "Nick Completion" msgstr "Nickvervollständigung" -#: src/fe-gtk/setup.c:142 +#: src/fe-gtk/setup.c:172 msgid "Automatic nick completion (without TAB key)" msgstr "Automatische Nickvervollständigung (ohne Tabulator-Taste)" -#: src/fe-gtk/setup.c:144 +#: src/fe-gtk/setup.c:174 msgid "Nick completion suffix:" msgstr "Anhang für Nickvervollständigung:" -#: src/fe-gtk/setup.c:145 +#: src/fe-gtk/setup.c:175 msgid "Nick completion sorted:" msgstr "Nickvervollständigung sortiert nach:" -#: src/fe-gtk/setup.c:148 +#: src/fe-gtk/setup.c:178 msgid "Input Box Codes" -msgstr "Kodes für Eingabezeile" +msgstr "Codes für Eingabefeld" -#: src/fe-gtk/setup.c:149 +#: src/fe-gtk/setup.c:179 #, c-format msgid "Interpret %nnn as an ASCII value" msgstr "%nnn als ASCII-Werte auswerten" -#: src/fe-gtk/setup.c:150 +#: src/fe-gtk/setup.c:180 msgid "Interpret %C, %B as Color, Bold etc" msgstr "%C, %B als Farbe, Fettschrift usw. auswerten" -#: src/fe-gtk/setup.c:167 +#: src/fe-gtk/setup.c:197 msgid "A-Z, Ops first" msgstr "A-Z, Ops zuerst" -#: src/fe-gtk/setup.c:169 +#: src/fe-gtk/setup.c:199 msgid "Z-A, Ops last" msgstr "Z-A, Ops zuletzt" -#: src/fe-gtk/setup.c:170 +#: src/fe-gtk/setup.c:200 msgid "Z-A" msgstr "Z-A" -#: src/fe-gtk/setup.c:171 +#: src/fe-gtk/setup.c:201 msgid "Unsorted" msgstr "Unsortiert" -#: src/fe-gtk/setup.c:177 -#: src/fe-gtk/setup.c:189 +#: src/fe-gtk/setup.c:207 src/fe-gtk/setup.c:219 msgid "Left (Upper)" msgstr "Links (Oben)" -#: src/fe-gtk/setup.c:178 -#: src/fe-gtk/setup.c:190 +#: src/fe-gtk/setup.c:208 src/fe-gtk/setup.c:220 msgid "Left (Lower)" msgstr "Links (Unten)" -#: src/fe-gtk/setup.c:179 -#: src/fe-gtk/setup.c:191 +#: src/fe-gtk/setup.c:209 src/fe-gtk/setup.c:221 msgid "Right (Upper)" msgstr "Rechts (Oben)" -#: src/fe-gtk/setup.c:180 -#: src/fe-gtk/setup.c:192 +#: src/fe-gtk/setup.c:210 src/fe-gtk/setup.c:222 msgid "Right (Lower)" msgstr "Rechts (Unten)" -#: src/fe-gtk/setup.c:181 +#: src/fe-gtk/setup.c:211 msgid "Top" msgstr "Oben" -#: src/fe-gtk/setup.c:182 +#: src/fe-gtk/setup.c:212 msgid "Bottom" msgstr "Unten" -#: src/fe-gtk/setup.c:183 +#: src/fe-gtk/setup.c:213 msgid "Hidden" msgstr "Versteckt" -#: src/fe-gtk/setup.c:198 +#: src/fe-gtk/setup.c:228 msgid "User List" msgstr "Benutzerliste" -#: src/fe-gtk/setup.c:199 +#: src/fe-gtk/setup.c:229 msgid "Show hostnames in user list" msgstr "Hostnamen in Benutzerliste zeigen" -#: src/fe-gtk/setup.c:202 +#: src/fe-gtk/setup.c:232 msgid "User list sorted by:" msgstr "Benutzerliste sortiert nach:" -#: src/fe-gtk/setup.c:203 +#: src/fe-gtk/setup.c:233 msgid "Show user list at:" msgstr "Benutzerliste zeigen:" -#: src/fe-gtk/setup.c:205 +#: src/fe-gtk/setup.c:235 msgid "Away tracking" msgstr "Abwesenheitsverfolgung" -#: src/fe-gtk/setup.c:206 +#: src/fe-gtk/setup.c:236 msgid "Track the Away status of users and mark them in a different color" -msgstr "Verfolge den Abwesenheitsstatus der Benutzer und zeige sie in einer anderen Farbe" +msgstr "" +"Verfolge den Abwesenheitsstatus der Benutzer und zeige sie in einer anderen " +"Farbe" -#: src/fe-gtk/setup.c:207 +#: src/fe-gtk/setup.c:237 msgid "On channels smaller than:" msgstr "In Channels mit weniger Nutzern als:" -#: src/fe-gtk/setup.c:209 +#: src/fe-gtk/setup.c:239 msgid "Action Upon Double Click" msgstr "Aktion bei Doppelklick" -#: src/fe-gtk/setup.c:210 -msgid "Execute command:" -msgstr "Kommando ausführen:" - -#: src/fe-gtk/setup.c:221 +#: src/fe-gtk/setup.c:251 msgid "Windows" msgstr "Fenster" -#: src/fe-gtk/setup.c:222 +#: src/fe-gtk/setup.c:252 src/fe-gtk/setup.c:268 msgid "Tabs" msgstr "Reiter" -#: src/fe-gtk/setup.c:230 +#: src/fe-gtk/setup.c:260 msgid "Always" msgstr "Immer" -#: src/fe-gtk/setup.c:231 +#: src/fe-gtk/setup.c:261 msgid "Only requested tabs" msgstr "Nur angeforderte Reiter" -#: src/fe-gtk/setup.c:238 -msgid "Channel Switcher" -msgstr "Channels-Umschalter" +#: src/fe-gtk/setup.c:270 +msgid "Tree" +msgstr "Baumansicht" -#: src/fe-gtk/setup.c:239 +#: src/fe-gtk/setup.c:277 +msgid "Switcher type:" +msgstr "Art des Umschalters:" + +#: src/fe-gtk/setup.c:278 msgid "Open an extra tab for server messages" msgstr "Öffne Reiter für Servermeldungen" -#: src/fe-gtk/setup.c:240 +#: src/fe-gtk/setup.c:279 msgid "Open an extra tab for server notices" msgstr "Öffne Reiter für Servernotizen" -#: src/fe-gtk/setup.c:241 +#: src/fe-gtk/setup.c:280 msgid "Open a new tab when you receive a private message" msgstr "Öffne einen neuen Reiter für empfangene private Nachrichten" -#: src/fe-gtk/setup.c:242 +#: src/fe-gtk/setup.c:281 msgid "Sort tabs in alphabetical order" msgstr "Reiter alphabetisch sortieren" -#: src/fe-gtk/setup.c:243 -msgid "Small tabs" -msgstr "Kleine Reiter" +#: src/fe-gtk/setup.c:282 +msgid "Smaller text" +msgstr "Kleinerer Text" -#: src/fe-gtk/setup.c:245 +#: src/fe-gtk/setup.c:284 msgid "Focus new tabs:" msgstr "Neue Reiter im Vordergrund:" -#: src/fe-gtk/setup.c:247 +#: src/fe-gtk/setup.c:286 msgid "Show channel switcher at:" -msgstr "Channel-Umschalter anzeigen:" +msgstr "Channelumschalter anzeigen:" -#: src/fe-gtk/setup.c:248 +#: src/fe-gtk/setup.c:287 msgid "Shorten tab labels to:" msgstr "Reiternamen kürzen auf:" -#: src/fe-gtk/setup.c:248 +#: src/fe-gtk/setup.c:287 msgid "letters." msgstr "Zeichen." -#: src/fe-gtk/setup.c:250 +#: src/fe-gtk/setup.c:289 msgid "Tabs or Windows" msgstr "Reiter oder Fenster" -#: src/fe-gtk/setup.c:251 +#: src/fe-gtk/setup.c:290 msgid "Open channels in:" msgstr "Öffne Channels in:" -#: src/fe-gtk/setup.c:252 +#: src/fe-gtk/setup.c:291 msgid "Open dialogs in:" msgstr "Öffne Dialoge in:" -#: src/fe-gtk/setup.c:253 +#: src/fe-gtk/setup.c:292 msgid "Open utilities in:" msgstr "Öffne Hilfsmittel in:" -#: src/fe-gtk/setup.c:253 +#: src/fe-gtk/setup.c:292 msgid "Open DCC, Ignore, Notify etc, in tabs or windows?" msgstr "Öffne DCC, Ignore, Notify usw. in Reitern oder Fenstern?" -#: src/fe-gtk/setup.c:260 +#: src/fe-gtk/setup.c:299 msgid "No" msgstr "Nein" -#: src/fe-gtk/setup.c:261 +#: src/fe-gtk/setup.c:300 msgid "Yes" msgstr "Ja" -#: src/fe-gtk/setup.c:262 +#: src/fe-gtk/setup.c:301 msgid "Browse for save folder every time" msgstr "Bei jedem Mal einen Ordner zum Speichern suchen" -#: src/fe-gtk/setup.c:268 +#: src/fe-gtk/setup.c:307 msgid "Files and Directories" msgstr "Dateien und Verzeichnisse" -#: src/fe-gtk/setup.c:269 +#: src/fe-gtk/setup.c:308 msgid "Auto accept file offers:" msgstr "Dateiangebote automatisch annehmen:" -#: src/fe-gtk/setup.c:270 +#: src/fe-gtk/setup.c:309 msgid "Download files to:" msgstr "Dateien ziehen nach:" -#: src/fe-gtk/setup.c:271 +#: src/fe-gtk/setup.c:310 msgid "Move completed files to:" msgstr "Fertige Downloads verschieben nach:" -#: src/fe-gtk/setup.c:272 +#: src/fe-gtk/setup.c:311 msgid "Save nick name in filenames" msgstr "Speichere Nick in Dateinamen" -#: src/fe-gtk/setup.c:274 +#: src/fe-gtk/setup.c:313 msgid "Network Settings" msgstr "Netzwerkeinstellungen" -#: src/fe-gtk/setup.c:275 +#: src/fe-gtk/setup.c:314 msgid "Get my address from the IRC server" msgstr "Hole meine IP vom IRC-Server" -#: src/fe-gtk/setup.c:276 -msgid "Asks the IRC server for your real address. Use this if you have a 192.168.*.* address!" -msgstr "Fragt den IRC-Server nach Deiner wahren IP-Adresse. Benutze dies, wenn Du eine 192.168.*.*-Adresse hast!" +#: src/fe-gtk/setup.c:315 +msgid "" +"Asks the IRC server for your real address. Use this if you have a 192.168.*." +"* address!" +msgstr "" +"Fragt den IRC-Server nach Ihrer wahren IP-Adresse. Benutzen Sie dies, falls " +"Sie eine 192.168.*.*-Adresse haben!" -#: src/fe-gtk/setup.c:277 +#: src/fe-gtk/setup.c:316 msgid "DCC IP address:" -msgstr "DCC IP-Adresse:" +msgstr "DCC-IP-Adresse:" -#: src/fe-gtk/setup.c:278 +#: src/fe-gtk/setup.c:317 msgid "Claim you are at this address when offering files." -msgstr "Behaupten, Du seist an dieser Adresse, wenn Du Dateien anbietest." +msgstr "Behaupten, dass Sie an dieser Adresse seien, wenn Sie Dateien anbieten." -#: src/fe-gtk/setup.c:279 +#: src/fe-gtk/setup.c:318 msgid "First DCC send port:" msgstr "Erster DCC-Versand-Port:" -#: src/fe-gtk/setup.c:280 +#: src/fe-gtk/setup.c:319 msgid "Last DCC send port:" msgstr "Letzter DCC-Versand-Port:" -#: src/fe-gtk/setup.c:281 +#: src/fe-gtk/setup.c:320 msgid "!Leave ports at zero for full range." msgstr "(Belasse die Ports bei 0 für die gesamte Breite." -#: src/fe-gtk/setup.c:283 +#: src/fe-gtk/setup.c:322 msgid "Maximum File Transfer Speeds (bytes per second)" msgstr "Maximale Dateitransfergeschwindigkeiten (Bytes/s)" -#: src/fe-gtk/setup.c:284 +#: src/fe-gtk/setup.c:323 msgid "One upload:" msgstr "Ein Upload:" -#: src/fe-gtk/setup.c:285 -#: src/fe-gtk/setup.c:287 +#: src/fe-gtk/setup.c:324 src/fe-gtk/setup.c:326 msgid "Maximum speed for one transfer" msgstr "Max. Geschw. für einen Transfer" -#: src/fe-gtk/setup.c:286 +#: src/fe-gtk/setup.c:325 msgid "One download:" msgstr "Ein Download:" -#: src/fe-gtk/setup.c:288 +#: src/fe-gtk/setup.c:327 msgid "All uploads combined:" msgstr "Alle Uploads zusammen:" -#: src/fe-gtk/setup.c:289 -#: src/fe-gtk/setup.c:291 +#: src/fe-gtk/setup.c:328 src/fe-gtk/setup.c:330 msgid "Maximum speed for all files" msgstr "Max. Geschw. für alle Transfers" -#: src/fe-gtk/setup.c:290 +#: src/fe-gtk/setup.c:329 msgid "All downloads combined:" msgstr "Alle Downloads zusammen:" -#: src/fe-gtk/setup.c:318 -#: src/fe-gtk/setup.c:1663 +#: src/fe-gtk/setup.c:357 src/fe-gtk/setup.c:381 src/fe-gtk/setup.c:1781 msgid "Alerts" msgstr "Warnungen" -#: src/fe-gtk/setup.c:322 +#: src/fe-gtk/setup.c:361 msgid "Show tray balloons on:" msgstr "Benachrichtigungsbereich-Ballons zeigen:" -#: src/fe-gtk/setup.c:324 +#: src/fe-gtk/setup.c:363 msgid "Blink tray icon on:" msgstr "Symbol im Benachrichtigungsbereich blinken lassen bei:" -#: src/fe-gtk/setup.c:325 +#: src/fe-gtk/setup.c:364 src/fe-gtk/setup.c:384 msgid "Blink task bar on:" msgstr "Taskleiste blinken lassen bei:" -#: src/fe-gtk/setup.c:326 +#: src/fe-gtk/setup.c:365 src/fe-gtk/setup.c:385 msgid "Make a beep sound on:" msgstr "Piepsen bei:" -#: src/fe-gtk/setup.c:328 +#: src/fe-gtk/setup.c:367 msgid "Enable system tray icon" msgstr "Symbol im Benachrichtigungsbereich aktivieren." -#: src/fe-gtk/setup.c:330 +#: src/fe-gtk/setup.c:369 src/fe-gtk/setup.c:387 msgid "Highlighted Messages" msgstr "Hervorgehobene Nachrichten" -#: src/fe-gtk/setup.c:331 -msgid "Highlighted messages are ones where your nickname is mentioned, but also:" -msgstr "Hervorgehobene Nachrichten sind solche, in denen der eigene Nick fällt, aber auch:" +#: src/fe-gtk/setup.c:370 src/fe-gtk/setup.c:388 +msgid "" +"Highlighted messages are ones where your nickname is mentioned, but also:" +msgstr "" +"Hervorgehobene Nachrichten sind solche, in denen der eigene Nick fällt, aber " +"auch:" -#: src/fe-gtk/setup.c:333 +#: src/fe-gtk/setup.c:372 src/fe-gtk/setup.c:390 msgid "Extra words to highlight:" msgstr "Extra Wörter zum Hervorheben:" -#: src/fe-gtk/setup.c:334 +#: src/fe-gtk/setup.c:373 src/fe-gtk/setup.c:391 msgid "Nick names not to highlight:" msgstr "Nicht hervorzuhebende Nicks:" -#: src/fe-gtk/setup.c:335 +#: src/fe-gtk/setup.c:374 src/fe-gtk/setup.c:392 msgid "Nick names to always highlight:" msgstr "Immer hervorzuhebende Nicks:" -#: src/fe-gtk/setup.c:336 -msgid "Separate multiple words with commas." -msgstr "Mehrere Wörter durch Kommata trennen." +#: src/fe-gtk/setup.c:375 src/fe-gtk/setup.c:393 +msgid "" +"Separate multiple words with commas.\n" +"Wildcards are accepted." +msgstr "" +"Mehrere Wörter durch Kommata trennen.\n" +"Wildcards werden unterstützt." -#: src/fe-gtk/setup.c:342 +#: src/fe-gtk/setup.c:399 msgid "Default Messages" msgstr "Standardnachrichten" -#: src/fe-gtk/setup.c:343 +#: src/fe-gtk/setup.c:400 msgid "Quit:" msgstr "Beenden:" -#: src/fe-gtk/setup.c:344 +#: src/fe-gtk/setup.c:401 msgid "Leave channel:" msgstr "Channel verlassen:" -#: src/fe-gtk/setup.c:345 +#: src/fe-gtk/setup.c:402 msgid "Away:" msgstr "Abwesend:" -#: src/fe-gtk/setup.c:347 +#: src/fe-gtk/setup.c:404 msgid "Away" msgstr "Abwesend" -#: src/fe-gtk/setup.c:348 +#: src/fe-gtk/setup.c:405 msgid "Announce away messages" msgstr "Abwesenheitsnachrichten öffentlich" -#: src/fe-gtk/setup.c:349 +#: src/fe-gtk/setup.c:406 msgid "Announce your away messages to all channels" msgstr "Abwesenheitsnachrichten in allen Channels öffentlich" -#: src/fe-gtk/setup.c:350 +#: src/fe-gtk/setup.c:407 msgid "Show away once" msgstr "Abwesenheit einmal zeigen" -#: src/fe-gtk/setup.c:350 +#: src/fe-gtk/setup.c:407 msgid "Show identical away messages only once" msgstr "Zeige identische Abwesenheitsnachrichten nur einmal" -#: src/fe-gtk/setup.c:351 +#: src/fe-gtk/setup.c:408 msgid "Automatically unmark away" msgstr "Automatisch Abwesenheit beenden" -#: src/fe-gtk/setup.c:351 +#: src/fe-gtk/setup.c:408 msgid "Unmark yourself as away before sending messages" msgstr "Automatisch Abwesenheit beenden vor dem Versand von Nachrichten" -#: src/fe-gtk/setup.c:358 +#: src/fe-gtk/setup.c:414 src/fe-gtk/setup.c:431 msgid "Advanced Settings" msgstr "Erweiterte Einstellungen" -#: src/fe-gtk/setup.c:359 +#: src/fe-gtk/setup.c:415 src/fe-gtk/setup.c:432 msgid "Auto reconnect delay:" msgstr "Wiederverbindungsverzögerung:" -#: src/fe-gtk/setup.c:360 +#: src/fe-gtk/setup.c:416 src/fe-gtk/setup.c:433 msgid "Display MODEs in raw form" msgstr "Modi in Rohform anzeigen" -#: src/fe-gtk/setup.c:361 +#: src/fe-gtk/setup.c:417 src/fe-gtk/setup.c:434 msgid "Whois on notify" msgstr "WHOIS bei Notify" -#: src/fe-gtk/setup.c:361 +#: src/fe-gtk/setup.c:417 src/fe-gtk/setup.c:434 msgid "Sends a /WHOIS when a user comes online in your notify list" msgstr "Sendet ein /WHOIS wenn ein Nutzer aus der Notify-Liste kommt" -#: src/fe-gtk/setup.c:362 +#: src/fe-gtk/setup.c:418 src/fe-gtk/setup.c:435 msgid "Hide join and part messages" msgstr "Join/Part-Nachrichten verstecken" -#: src/fe-gtk/setup.c:362 +#: src/fe-gtk/setup.c:418 src/fe-gtk/setup.c:435 msgid "Hide channel join/part messages by default" msgstr "Join/Part-Nachrichten standardmäßig verstecken" -#: src/fe-gtk/setup.c:363 +#: src/fe-gtk/setup.c:419 src/fe-gtk/setup.c:437 +msgid "License Text:" +msgstr "Lizenztext:" + +#: src/fe-gtk/setup.c:420 src/fe-gtk/setup.c:438 msgid "Auto Open DCC Windows" msgstr "DCC-Fenster automatisch öffnen" -#: src/fe-gtk/setup.c:364 +#: src/fe-gtk/setup.c:421 src/fe-gtk/setup.c:439 msgid "Send window" msgstr "Versandfenster" -#: src/fe-gtk/setup.c:365 +#: src/fe-gtk/setup.c:422 src/fe-gtk/setup.c:440 msgid "Receive window" msgstr "Empfangsfenster" -#: src/fe-gtk/setup.c:366 +#: src/fe-gtk/setup.c:423 src/fe-gtk/setup.c:441 msgid "Chat window" msgstr "Chatfenster" -#: src/fe-gtk/setup.c:374 -#: src/fe-gtk/setup.c:1665 +#: src/fe-gtk/setup.c:436 +msgid "Allow only one instance of XChat to run" +msgstr "Nur ein gleichzeitig laufendes XChat-Exemplar erlauben" + +#: src/fe-gtk/setup.c:449 src/fe-gtk/setup.c:1783 msgid "Logging" msgstr "Logbücher" -#: src/fe-gtk/setup.c:375 -msgid "Enable logging of conversations" -msgstr "Konversationen loggen" +#: src/fe-gtk/setup.c:450 +msgid "Display scrollback from previous session" +msgstr "Textpuffer der letzten Sitzung anzeigen" -#: src/fe-gtk/setup.c:376 +#: src/fe-gtk/setup.c:451 +msgid "Enable logging of conversations to disk" +msgstr "Unterhaltungen auf der Festplatte aufzeichnen" + +#: src/fe-gtk/setup.c:452 msgid "Log filename:" msgstr "Logbuchname:" -#: src/fe-gtk/setup.c:377 +#: src/fe-gtk/setup.c:453 #, c-format msgid "%s=Server %c=Channel %n=Network." msgstr "%s=Server %c=Channel %n=Netzwerk." -#: src/fe-gtk/setup.c:380 +#: src/fe-gtk/setup.c:456 msgid "Insert timestamps in logs" msgstr "Datumsstempel in Logs einfügen" -#: src/fe-gtk/setup.c:381 +#: src/fe-gtk/setup.c:457 msgid "Log timestamp format:" msgstr "Datumsstempelformat:" -#: src/fe-gtk/setup.c:389 +#: src/fe-gtk/setup.c:469 msgid "(Disabled)" msgstr "(Deaktiviert)" -#: src/fe-gtk/setup.c:390 +#: src/fe-gtk/setup.c:470 msgid "Wingate" msgstr "Wingate" -#: src/fe-gtk/setup.c:391 +#: src/fe-gtk/setup.c:471 msgid "Socks4" msgstr "Socks4" -#: src/fe-gtk/setup.c:392 +#: src/fe-gtk/setup.c:472 msgid "Socks5" msgstr "Socks5" -#: src/fe-gtk/setup.c:393 +#: src/fe-gtk/setup.c:473 msgid "HTTP" msgstr "HTTP" -#: src/fe-gtk/setup.c:395 +#: src/fe-gtk/setup.c:475 msgid "MS Proxy (ISA)" msgstr "MS Proxy (ISA)" -#: src/fe-gtk/setup.c:402 +#: src/fe-gtk/setup.c:478 +msgid "Auto" +msgstr "Automatisch" + +#: src/fe-gtk/setup.c:485 msgid "All Connections" msgstr "Alle Verbindungen" -#: src/fe-gtk/setup.c:403 +#: src/fe-gtk/setup.c:486 msgid "IRC Server Only" msgstr "Nur IRC-Server" -#: src/fe-gtk/setup.c:404 +#: src/fe-gtk/setup.c:487 msgid "DCC Get Only" msgstr "Nur DCC Get" -#: src/fe-gtk/setup.c:410 +#: src/fe-gtk/setup.c:493 msgid "Your Address" -msgstr "Deine Adresse" +msgstr "Ihre Adresse" -#: src/fe-gtk/setup.c:411 +#: src/fe-gtk/setup.c:494 msgid "Bind to:" msgstr "Binden an:" -#: src/fe-gtk/setup.c:412 +#: src/fe-gtk/setup.c:495 msgid "Only useful for computers with multiple addresses." msgstr "Nur für Computer mit mehreren Adressen." -#: src/fe-gtk/setup.c:414 +#: src/fe-gtk/setup.c:497 msgid "Proxy Server" msgstr "Proxy-Server:" -#: src/fe-gtk/setup.c:415 +#: src/fe-gtk/setup.c:498 msgid "Hostname:" msgstr "Hostname:" -#: src/fe-gtk/setup.c:416 +#: src/fe-gtk/setup.c:499 msgid "Port:" msgstr "Port:" -#: src/fe-gtk/setup.c:417 +#: src/fe-gtk/setup.c:500 msgid "Type:" msgstr "Typ:" -#: src/fe-gtk/setup.c:418 +#: src/fe-gtk/setup.c:501 msgid "Use proxy for:" msgstr "Proxy benutzen für:" -#: src/fe-gtk/setup.c:420 +#: src/fe-gtk/setup.c:503 msgid "Proxy Authentication" msgstr "Proxy-Authentifizierung" -#: src/fe-gtk/setup.c:422 +#: src/fe-gtk/setup.c:505 msgid "Use Authentication (MS Proxy, HTTP or Socks5 only)" -msgstr "Authentifikation mit dem Proxy-Server (Nur MS Proxy, HTTP oder Socks v5)" +msgstr "" +"Authentifikation mit dem Proxy-Server (Nur MS Proxy, HTTP oder Socks v5)" -#: src/fe-gtk/setup.c:424 +#: src/fe-gtk/setup.c:507 msgid "Use Authentication (HTTP or Socks5 only)" msgstr "Authentifizierung benutzen (Nur HTTP oder Socks5)" -#: src/fe-gtk/setup.c:426 +#: src/fe-gtk/setup.c:509 msgid "Username:" msgstr "Benutzer:" -#: src/fe-gtk/setup.c:427 +#: src/fe-gtk/setup.c:510 msgid "Password:" msgstr "Passwort:" -#: src/fe-gtk/setup.c:838 +#: src/fe-gtk/setup.c:941 msgid "Select an Image File" msgstr "Bilddatei auswählen" -#: src/fe-gtk/setup.c:862 +#: src/fe-gtk/setup.c:976 msgid "Select Download Folder" msgstr "Ordner für heruntergeladene Dateien wählen" -#: src/fe-gtk/setup.c:871 +#: src/fe-gtk/setup.c:985 msgid "Select font" msgstr "Schriftart auswählen" -#: src/fe-gtk/setup.c:968 +#: src/fe-gtk/setup.c:1085 msgid "Browse..." -msgstr "Suche..." +msgstr "Suchen …" -#: src/fe-gtk/setup.c:1108 +#: src/fe-gtk/setup.c:1223 msgid "Mark identified users with:" msgstr "Identifzierte Benutzer markieren durch:" -#: src/fe-gtk/setup.c:1110 +#: src/fe-gtk/setup.c:1225 msgid "Mark not-identified users with:" msgstr "Nicht identifizierte Benutzer markieren durch:" -#: src/fe-gtk/setup.c:1117 +#: src/fe-gtk/setup.c:1232 msgid "Open Data Folder" msgstr "Datenverzeichnis öffnen" -#: src/fe-gtk/setup.c:1171 +#: src/fe-gtk/setup.c:1286 msgid "Select color" msgstr "Farbe wählen" -#: src/fe-gtk/setup.c:1251 +#: src/fe-gtk/setup.c:1366 msgid "Text Colors" msgstr "Textfarben" -#: src/fe-gtk/setup.c:1253 +#: src/fe-gtk/setup.c:1368 msgid "mIRC colors:" msgstr "mIRC-Farben:" -#: src/fe-gtk/setup.c:1261 +#: src/fe-gtk/setup.c:1376 msgid "Local colors:" msgstr "Lokale Farben:" -#: src/fe-gtk/setup.c:1269 -#: src/fe-gtk/setup.c:1274 +#: src/fe-gtk/setup.c:1384 src/fe-gtk/setup.c:1389 msgid "Foreground:" msgstr "Vordergrund:" -#: src/fe-gtk/setup.c:1270 -#: src/fe-gtk/setup.c:1275 +#: src/fe-gtk/setup.c:1385 src/fe-gtk/setup.c:1390 msgid "Background:" msgstr "Hintergrund:" -#: src/fe-gtk/setup.c:1272 +#: src/fe-gtk/setup.c:1387 msgid "Marking Text" msgstr "Markierungstext" -#: src/fe-gtk/setup.c:1277 +#: src/fe-gtk/setup.c:1392 msgid "Interface Colors" msgstr "Schnittstellenfarben" -#: src/fe-gtk/setup.c:1279 +#: src/fe-gtk/setup.c:1394 msgid "New data:" msgstr "Neue Daten:" -#: src/fe-gtk/setup.c:1280 +#: src/fe-gtk/setup.c:1395 msgid "Marker line:" msgstr "Markierungslinie:" -#: src/fe-gtk/setup.c:1281 +#: src/fe-gtk/setup.c:1396 msgid "New message:" msgstr "Neue Nachricht:" -#: src/fe-gtk/setup.c:1282 +#: src/fe-gtk/setup.c:1397 msgid "Away user:" msgstr "Abwesender Benutzer:" -#: src/fe-gtk/setup.c:1283 +#: src/fe-gtk/setup.c:1398 msgid "Highlight:" msgstr "Hervorhebung:" -#: src/fe-gtk/setup.c:1379 -#: src/fe-gtk/textgui.c:389 +#: src/fe-gtk/setup.c:1400 +msgid "Spell checker:" +msgstr "Rechtschreibprüfung:" + +#: src/fe-gtk/setup.c:1497 src/fe-gtk/textgui.c:389 msgid "Event" msgstr "Ereignis" -#: src/fe-gtk/setup.c:1385 +#: src/fe-gtk/setup.c:1503 msgid "Sound file" msgstr "Klangdatei:" -#: src/fe-gtk/setup.c:1420 +#: src/fe-gtk/setup.c:1538 msgid "Select a sound file" msgstr "Wähle eine Klangdatei aus" -#: src/fe-gtk/setup.c:1492 +#: src/fe-gtk/setup.c:1610 msgid "Sound playing method:" msgstr "Klangabspielmethode:" -#: src/fe-gtk/setup.c:1500 +#: src/fe-gtk/setup.c:1618 msgid "External sound playing _program:" msgstr "Externer Klangspieler:" -#: src/fe-gtk/setup.c:1518 +#: src/fe-gtk/setup.c:1636 msgid "_External program" msgstr "_Externes Programm" -#: src/fe-gtk/setup.c:1528 +#: src/fe-gtk/setup.c:1646 msgid "_Automatic" msgstr "_Automatisch" -#: src/fe-gtk/setup.c:1541 +#: src/fe-gtk/setup.c:1659 msgid "Sound files _directory:" msgstr "Verzeichnis für Klang_dateien:" -#: src/fe-gtk/setup.c:1580 +#: src/fe-gtk/setup.c:1698 msgid "Sound file:" msgstr "Klangdatei:" -#: src/fe-gtk/setup.c:1595 +#: src/fe-gtk/setup.c:1713 msgid "_Browse..." msgstr "_Durchsuche" -#: src/fe-gtk/setup.c:1606 +#: src/fe-gtk/setup.c:1724 msgid "_Play" msgstr "Abs_pielen" -#: src/fe-gtk/setup.c:1655 +#: src/fe-gtk/setup.c:1773 msgid "Interface" msgstr "Schnittstelle" -#: src/fe-gtk/setup.c:1656 +#: src/fe-gtk/setup.c:1774 msgid "Text box" -msgstr "Textfenster" +msgstr "Eingabefeld" -#: src/fe-gtk/setup.c:1658 +#: src/fe-gtk/setup.c:1776 msgid "User list" msgstr "Benutzerliste" -#: src/fe-gtk/setup.c:1659 +#: src/fe-gtk/setup.c:1777 msgid "Channel switcher" -msgstr "Channel-Umschalter" +msgstr "Channelumschalter" -#: src/fe-gtk/setup.c:1660 +#: src/fe-gtk/setup.c:1778 msgid "Colors" msgstr "Farben" -#: src/fe-gtk/setup.c:1662 +#: src/fe-gtk/setup.c:1780 msgid "Chatting" msgstr "Chatten" -#: src/fe-gtk/setup.c:1664 +#: src/fe-gtk/setup.c:1782 msgid "General" msgstr "Allgemein" -#: src/fe-gtk/setup.c:1666 +#: src/fe-gtk/setup.c:1784 msgid "Sound" msgstr "Klang" -#: src/fe-gtk/setup.c:1670 +#: src/fe-gtk/setup.c:1788 msgid "Network setup" msgstr "Netzwerk-Setup" -#: src/fe-gtk/setup.c:1671 +#: src/fe-gtk/setup.c:1789 msgid "File transfers" msgstr "Dateitransfers" -#: src/fe-gtk/setup.c:1779 +#: src/fe-gtk/setup.c:1920 msgid "Categories" msgstr "Kategorien" -#: src/fe-gtk/setup.c:1960 +#: src/fe-gtk/setup.c:2110 msgid "" "You cannot place the tree on the top or bottom!\n" "Please change to the <b>Tabs</b> layout in the <b>View</b> menu first." msgstr "" -"Du kannst die Baumansicht nicht oben oder unten anzeigen!\n" +"Sie können die Baumansicht nicht oben oder unten anzeigen!\n" "Wechsle erst im <b>Ansicht</b>-Menü zur <b>Reiter</b>-Ansicht." -#: src/fe-gtk/setup.c:1970 +#: src/fe-gtk/setup.c:2137 +msgid "Invalid time stamp format! See the strftime MSDN article for details." +msgstr "" +"Ungültiges Zeitstempelformat! Siehe MSDN-Artikel zu strftime für " +"Details." + +#: src/fe-gtk/setup.c:2144 msgid "Some settings were changed that require a restart to take full effect." msgstr "Einige Einstellungen wurden geändert, die einen Neustart erfordern." -#: src/fe-gtk/setup.c:1978 +#: src/fe-gtk/setup.c:2152 msgid "" "*WARNING*\n" "Auto accepting DCC to your home directory\n" @@ -5473,12 +5572,12 @@ msgid "" "Someone could send you a .bash_profile" msgstr "" "*WARNUNG*\n" -"Automatisches Annehmen von DCCs in Dein home-\n" +"Automatisches Annehmen von DCCs in Ihr Home-\n" "Verzeichnis kann gefährlich sein und ist\n" -"ausnutzbar. Zum Beispiel könnte Dir jemand\n" +"ausnutzbar. Zum Beispiel könnte Ihnen jemand\n" "ein .bash_profile schicken" -#: src/fe-gtk/setup.c:2011 +#: src/fe-gtk/setup.c:2185 msgid "XChat: Preferences" msgstr "XChat: Einstellungen" @@ -5491,8 +5590,7 @@ msgstr "Fehler beim Auswerten des Strings" msgid "This signal is only passed %d args, $%d is invalid" msgstr "Diesem Signal werden nur %d Argumente übergeben, $%d ist ungültig" -#: src/fe-gtk/textgui.c:304 -#: src/fe-gtk/textgui.c:327 +#: src/fe-gtk/textgui.c:304 src/fe-gtk/textgui.c:327 msgid "Print Texts File" msgstr "Textdatei drucken" @@ -5506,38 +5604,170 @@ msgstr "$ Nummer" #: src/fe-gtk/textgui.c:440 msgid "Load From..." -msgstr "Lade von..." +msgstr "Lade von …" #: src/fe-gtk/textgui.c:441 msgid "Test All" msgstr "Alle testen" -#: src/fe-gtk/urlgrab.c:98 +#: src/fe-gtk/urlgrab.c:97 msgid "URL" msgstr "URL" -#: src/fe-gtk/urlgrab.c:188 +#: src/fe-gtk/urlgrab.c:197 msgid "XChat: URL Grabber" -msgstr "XChat: URL-Sammler" +msgstr "XChat: Gesammelte URLs" -#: src/fe-gtk/urlgrab.c:201 +#: src/fe-gtk/urlgrab.c:210 msgid "Clear list" -msgstr "Liste löschen" +msgstr "Liste leeren" -#: src/fe-gtk/urlgrab.c:203 +#: src/fe-gtk/urlgrab.c:212 msgid "Copy selected URL" msgstr "Ausgewählte URL kopieren" -#: src/fe-gtk/urlgrab.c:203 +#: src/fe-gtk/urlgrab.c:212 msgid "Copy" -msgstr "Kopiere" +msgstr "Kopieren" -#: src/fe-gtk/urlgrab.c:205 +#: src/fe-gtk/urlgrab.c:214 msgid "Save list to a file" msgstr "Liste in Datei speichern" -#: src/fe-gtk/userlistgui.c:111 +#: src/fe-gtk/userlistgui.c:119 #, c-format msgid "%d ops, %d total" msgstr "%d Ops, %d Gesamt" +#~ msgid "" +#~ "Set per channel options\n" +#~ "CHANOPT CONFMODE ON|OFF - Toggle conf mode/showing of join and part " +#~ "messages\n" +#~ "CHANOPT COLORPASTE ON|OFF - Toggle color paste\n" +#~ "CHANOPT BEEP ON|OFF - Toggle beep on message\n" +#~ "CHANOPT TRAY ON|OFF - Toggle tray blink on message" +#~ msgstr "" +#~ "Optionen je Channel einstellen\n" +#~ "CHANOPT CONFMODE ON|OFF - Konferenzmodus/Anzeige von Join/Part-" +#~ "Nachrichten umschalten\n" +#~ "CHANOPT COLORPASTE ON|OFF - Farbiges Einfügen umschalten\n" +#~ "CHANOPT BEEP ON|OFF - Piepton bei Nachricht umschalten\n" +#~ "CHANOPT TRAY ON|OFF - Blinken im Benachrichtigungsbereich umschalten" + +#~ msgid "Direct client-to-client" +#~ msgstr "Direkt Client2Client" + +#~ msgid "Send File" +#~ msgstr "Sende Datei" + +#~ msgid "Offer Chat" +#~ msgstr "Biete Chat an" + +#~ msgid "Abort Chat" +#~ msgstr "Chat abbrechen" + +#~ msgid "Userinfo" +#~ msgstr "Benutzerinformation" + +#~ msgid "Clientinfo" +#~ msgstr "Clientinformation" + +#~ msgid "Time" +#~ msgstr "Zeit" + +#~ msgid "Finger" +#~ msgstr "Finger" + +#~ msgid "Oper" +#~ msgstr "Oper" + +#~ msgid "Kill this user" +#~ msgstr "Benutzer killen" + +#~ msgid "Mode" +#~ msgstr "Modus" + +#~ msgid "Give Half-Ops" +#~ msgstr "Half-Op geben" + +#~ msgid "Take Half-Ops" +#~ msgstr "Half-Op nehmen" + +#~ msgid "Ignore" +#~ msgstr "Ignorieren" + +#~ msgid "Ignore User" +#~ msgstr "Ignoriere Benutzer" + +#~ msgid "UnIgnore User" +#~ msgstr "Benutzer nicht mehr ignorieren" + +#~ msgid "Info" +#~ msgstr "Info" + +#~ msgid "Who" +#~ msgstr "Who" + +#~ msgid "DNS Lookup" +#~ msgstr "DNS-Suche" + +#~ msgid "Trace" +#~ msgstr "Verfolgung" + +#~ msgid "UserHost" +#~ msgstr "BenutzerHost" + +#~ msgid "External" +#~ msgstr "Extern" + +#~ msgid "Traceroute" +#~ msgstr "Traceroute (Verfolgung)" + +#~ msgid "Telnet" +#~ msgstr "Telnet" + +#~ msgid "About XChat" +#~ msgstr "Über XChat" + +#~ msgid "Unban" +#~ msgstr "Bann entfernen" + +#~ msgid "Blink tray on message" +#~ msgstr "Bei Nachricht im Benachrichtigungsbereich blinken" + +#~ msgid "Show join/part messages" +#~ msgstr "Join/Part-Nachrichten anzeigen" + +#~ msgid "Color paste" +#~ msgstr "Farbiges Einfügen" + +#~ msgid "_Close Tab" +#~ msgstr "Reiter s_chließen" + +#~ msgid "Channel List..." +#~ msgstr "Channelliste..." + +#~ msgid "Notify List..." +#~ msgstr "Benachrichtigungs-Liste..." + +#~ msgid "User" +#~ msgstr "Benutzer" + +#~ msgid "" +#~ "Cannot find 'notify-send' to open balloon alerts.\n" +#~ "Please install libnotify." +#~ msgstr "" +#~ "Kann 'notify-send' nicht finden, um Ballon-Hinweise zu senden.\n" +#~ "Bitte installiere libnotify." + +#~ msgid "_Restore" +#~ msgstr "_Wiederherstellen" + +#~ msgid "_Hide" +#~ msgstr "_Verstecken" + +#~ msgid "C_hannels to join:" +#~ msgstr "Zu betretende C_hannels:" + +#~ msgid "Channel Switcher" +#~ msgstr "Channels-Umschalter" diff --git a/src/common/cfgfiles.c b/src/common/cfgfiles.c index 83f50e37..111234e9 100644 --- a/src/common/cfgfiles.c +++ b/src/common/cfgfiles.c @@ -17,7 +17,6 @@ */ #include <fcntl.h> -#include <unistd.h> #include <stdlib.h> #include <string.h> #include <stdio.h> @@ -31,12 +30,15 @@ #include "text.h" #include "xchatc.h" -#ifdef WIN32 -#define XCHAT_DIR "X-Chat 2" -#else +#ifndef WIN32 +#include <unistd.h> #define XCHAT_DIR ".xchat2" #endif + #define DEF_FONT "Monospace 9" +#ifdef WIN32 +#define DEF_FONT_ALTER "Arial Unicode MS,Lucida Sans Unicode" +#endif void list_addentry (GSList ** list, char *cmd, char *name) @@ -82,11 +84,11 @@ list_load_from_data (GSList ** list, char *ibuf, int size) { if (*buf != '#') { - if (!strncasecmp (buf, "NAME ", 5)) + if (!g_ascii_strncasecmp (buf, "NAME ", 5)) { safe_strcpy (name, buf + 5, sizeof (name)); } - else if (!strncasecmp (buf, "CMD ", 4)) + else if (!g_ascii_strncasecmp (buf, "CMD ", 4)) { safe_strcpy (cmd, buf + 4, sizeof (cmd)); if (*name) @@ -152,7 +154,7 @@ list_delentry (GSList ** list, char *name) while (alist) { pop = (struct popup *) alist->data; - if (!strcasecmp (name, pop->name)) + if (!g_ascii_strcasecmp (name, pop->name)) { *list = g_slist_remove (*list, pop); free (pop); @@ -166,9 +168,13 @@ list_delentry (GSList ** list, char *name) char * cfg_get_str (char *cfg, char *var, char *dest, int dest_len) { + char buffer[128]; /* should be plenty for a variable name */ + + sprintf (buffer, "%s ", var); /* add one space, this way it works against var - var2 checks too */ + while (1) { - if (!strncasecmp (var, cfg, strlen (var))) + if (!g_ascii_strncasecmp (buffer, cfg, strlen (var) + 1)) { char *value, t; cfg += strlen (var); @@ -308,12 +314,19 @@ get_xdir_fs (void) { if (!xdir_fs) { - char out[256]; + if (portable_mode ()) + { + xdir_fs = ".\\config"; + } + else + { + char out[256]; - if (!get_reg_str ("Software\\Microsoft\\Windows\\CurrentVersion\\" - "Explorer\\Shell Folders", "AppData", out, sizeof (out))) - return "./config"; - xdir_fs = g_strdup_printf ("%s\\" XCHAT_DIR, out); + if (!get_reg_str ("Software\\Microsoft\\Windows\\CurrentVersion\\" + "Explorer\\Shell Folders", "AppData", out, sizeof (out))) + return "./config"; + xdir_fs = g_strdup_printf ("%s\\" "X-Chat 2", out); + } } return xdir_fs; } @@ -393,7 +406,9 @@ const struct prefs vars[] = { {"dcc_blocksize", P_OFFINT (dcc_blocksize), TYPE_INT}, {"dcc_completed_dir", P_OFFSET (dcc_completed_dir), TYPE_STR}, {"dcc_dir", P_OFFSET (dccdir), TYPE_STR}, +#ifndef WIN32 {"dcc_fast_send", P_OFFINT (fastdccsend), TYPE_BOOL}, +#endif {"dcc_global_max_get_cps", P_OFFINT (dcc_global_max_get_cps), TYPE_INT}, {"dcc_global_max_send_cps", P_OFFINT (dcc_global_max_send_cps), TYPE_INT}, {"dcc_ip", P_OFFSET (dcc_ip_str), TYPE_STR}, @@ -429,9 +444,14 @@ const struct prefs vars[] = { {"gui_input_style", P_OFFINT (style_inputbox), TYPE_BOOL}, {"gui_join_dialog", P_OFFINT (gui_join_dialog), TYPE_BOOL}, {"gui_lagometer", P_OFFINT (lagometer), TYPE_INT}, + {"gui_license", P_OFFSET (gui_license), TYPE_STR}, {"gui_mode_buttons", P_OFFINT (chanmodebuttons), TYPE_BOOL}, +#ifdef WIN32 + {"gui_one_instance", P_OFFINT (gui_one_instance), TYPE_BOOL}, +#endif {"gui_pane_left_size", P_OFFINT (gui_pane_left_size), TYPE_INT}, {"gui_pane_right_size", P_OFFINT (gui_pane_right_size), TYPE_INT}, + {"gui_pane_right_size_min", P_OFFINT (gui_pane_right_size_min), TYPE_INT}, {"gui_quit_dialog", P_OFFINT (gui_quit_dialog), TYPE_BOOL}, {"gui_slist_fav", P_OFFINT (slist_fav), TYPE_INT}, {"gui_slist_select", P_OFFINT (slist_select), TYPE_INT}, @@ -536,6 +556,9 @@ const struct prefs vars[] = { {"tab_chans", P_OFFINT (tabchannels), TYPE_BOOL}, {"tab_dialogs", P_OFFINT (privmsgtab), TYPE_BOOL}, +#ifdef WIN32 + {"tab_icons", P_OFFINT (tab_icons), TYPE_BOOL}, +#endif {"tab_layout", P_OFFINT (tab_layout), TYPE_INT}, {"tab_new_to_front", P_OFFINT (newtabstofront), TYPE_INT}, {"tab_notices", P_OFFINT (notices_tabs), TYPE_BOOL}, @@ -546,16 +569,35 @@ const struct prefs vars[] = { {"tab_sort", P_OFFINT (tab_sort), TYPE_BOOL}, {"tab_trunc", P_OFFINT (truncchans), TYPE_INT}, {"tab_utils", P_OFFINT (windows_as_tabs), TYPE_BOOL}, +#ifdef WIN32 + {"tab_xp", P_OFFINT (tab_xp), TYPE_BOOL}, +#endif + {"text_auto_copy_color", P_OFFINT (autocopy_color), TYPE_BOOL}, + {"text_auto_copy_stamp", P_OFFINT (autocopy_stamp), TYPE_BOOL}, + {"text_auto_copy_text", P_OFFINT (autocopy_text), TYPE_BOOL}, {"text_background", P_OFFSET (background), TYPE_STR}, {"text_color_nicks", P_OFFINT (colorednicks), TYPE_BOOL}, +#ifdef WIN32 + {"text_emoticons", P_OFFINT (emoticons), TYPE_BOOL}, +#endif {"text_font", P_OFFSET (font_normal), TYPE_STR}, +#ifdef WIN32 + {"text_font_main", P_OFFSET (font_main), TYPE_STR}, + {"text_font_alternative", P_OFFSET (font_alternative), TYPE_STR}, +#endif {"text_indent", P_OFFINT (indent_nicks), TYPE_BOOL}, {"text_max_indent", P_OFFINT (max_auto_indent), TYPE_INT}, {"text_max_lines", P_OFFINT (max_lines), TYPE_INT}, {"text_replay", P_OFFINT (text_replay), TYPE_BOOL}, + {"text_search_case_match", P_OFFINT (text_search_case_match), TYPE_BOOL}, + {"text_search_backward", P_OFFINT (text_search_backward), TYPE_BOOL}, + {"text_search_highlight_all", P_OFFINT (text_search_highlight_all), TYPE_BOOL}, + {"text_search_follow", P_OFFINT (text_search_follow), TYPE_BOOL}, + {"text_search_regexp", P_OFFINT (text_search_regexp), TYPE_BOOL}, {"text_show_marker", P_OFFINT (show_marker), TYPE_BOOL}, {"text_show_sep", P_OFFINT (show_separator), TYPE_BOOL}, + {"text_spell_langs", P_OFFSET (spell_langs), TYPE_STR}, {"text_stripcolor", P_OFFINT (stripcolor), TYPE_BOOL}, {"text_thin_sep", P_OFFINT (thin_separator), TYPE_BOOL}, {"text_tint_blue", P_OFFINT (tint_blue), TYPE_INT}, @@ -601,9 +643,11 @@ load_config (void) if (!username) username = "root"; - realname = g_get_real_name (); + /* We hid Real name from the Network List, so don't use the user's name unnoticeably */ + /* realname = g_get_real_name (); if ((realname && realname[0] == 0) || !realname) - realname = username; + realname = username; */ + realname = "realname"; username = convert_with_fallback (username, "username"); realname = convert_with_fallback (realname, "realname"); @@ -626,13 +670,16 @@ load_config (void) prefs.indent_nicks = 1; prefs.thin_separator = 1; prefs._tabs_position = 2; /* 2 = left */ +#ifndef WIN32 prefs.fastdccsend = 1; +#endif prefs.wordwrap = 1; prefs.autosave = 1; prefs.autodialog = 1; prefs.gui_input_spell = 1; prefs.autoreconnect = 1; prefs.recon_delay = 10; + prefs.autocopy_text = 1; prefs.text_replay = 1; prefs.tabchannels = 1; prefs.tab_layout = 2; /* 0=Tabs 1=Reserved 2=Tree */ @@ -676,6 +723,7 @@ load_config (void) prefs.gui_tray = 1; prefs.gui_pane_left_size = 100; prefs.gui_pane_right_size = 100; + prefs.gui_pane_right_size_min = 80; prefs.mainwindow_save = 1; prefs.bantype = 2; prefs.input_balloon_time = 20; @@ -684,9 +732,12 @@ load_config (void) prefs.autodccsend = 2; /* browse mode */ prefs.url_grabber = 1; prefs.url_grabber_limit = 0; /* 0 means unlimited for backcompat */ + prefs.text_search_follow = 1; #ifdef WIN32 prefs.identd = 1; #endif + strcpy (prefs.gui_license, ""); + strcpy (prefs.spell_langs, g_getenv ("LC_ALL") ? g_getenv ("LC_ALL") : "en_US"); strcpy (prefs.stamp_format, "[%H:%M] "); strcpy (prefs.timestamp_log_format, "%b %d %H:%M:%S "); strcpy (prefs.logmask, "%n-%c.log"); @@ -719,6 +770,10 @@ load_config (void) strcpy (prefs.quitreason, _("Leaving")); strcpy (prefs.partreason, prefs.quitreason); strcpy (prefs.font_normal, DEF_FONT); +#ifdef WIN32 + strcpy (prefs.font_main, DEF_FONT); + strcpy (prefs.font_alternative, DEF_FONT_ALTER); +#endif strcpy (prefs.dnsprogram, "host"); strcpy (prefs.irc_no_hilight, "NickServ,ChanServ"); @@ -945,7 +1000,7 @@ cfg_get_bool (char *var) do { - if (!strcasecmp (var, vars[i].name)) + if (!g_ascii_strcasecmp (var, vars[i].name)) { return *((int *) &prefs + vars[i].offset); } @@ -968,27 +1023,27 @@ cmd_set (struct session *sess, char *tbuf, char *word[], char *word_eol[]) int idx = 2; char *var, *val; - if (strcasecmp (word[2], "-e") == 0) + if (g_ascii_strcasecmp (word[2], "-e") == 0) { idx++; erase = TRUE; } /* turn a bit OFF */ - if (strcasecmp (word[idx], "-off") == 0) + if (g_ascii_strcasecmp (word[idx], "-off") == 0) { idx++; off = TRUE; } /* turn a bit ON */ - if (strcasecmp (word[idx], "-or") == 0 || strcasecmp (word[idx], "-on") == 0) + if (g_ascii_strcasecmp (word[idx], "-or") == 0 || g_ascii_strcasecmp (word[idx], "-on") == 0) { idx++; or = TRUE; } - if (strcasecmp (word[idx], "-quiet") == 0) + if (g_ascii_strcasecmp (word[idx], "-quiet") == 0) { idx++; quiet = TRUE; @@ -1014,7 +1069,7 @@ cmd_set (struct session *sess, char *tbuf, char *word[], char *word_eol[]) if (wild) found = !match (var, vars[i].name); else - found = strcasecmp (var, vars[i].name); + found = g_ascii_strcasecmp (var, vars[i].name); if (found == 0) { @@ -1043,9 +1098,9 @@ cmd_set (struct session *sess, char *tbuf, char *word[], char *word_eol[]) *((int *) &prefs + vars[i].offset) = 1; else *((int *) &prefs + vars[i].offset) = 0; - if (!strcasecmp (val, "YES") || !strcasecmp (val, "ON")) + if (!g_ascii_strcasecmp (val, "YES") || !g_ascii_strcasecmp (val, "ON")) *((int *) &prefs + vars[i].offset) = 1; - if (!strcasecmp (val, "NO") || !strcasecmp (val, "OFF")) + if (!g_ascii_strcasecmp (val, "NO") || !g_ascii_strcasecmp (val, "OFF")) *((int *) &prefs + vars[i].offset) = 0; } else { @@ -1071,7 +1126,13 @@ cmd_set (struct session *sess, char *tbuf, char *word[], char *word_eol[]) while (vars[i].name); if (!finds && !quiet) + { PrintText (sess, "No such variable.\n"); + } + else if (prefs.autosave && !save_config ()) + { + PrintText (sess, "Error saving changes to disk.\n"); + } return TRUE; } diff --git a/src/common/chanopt.c b/src/common/chanopt.c index a4fd8faa..198ebe6c 100644 --- a/src/common/chanopt.c +++ b/src/common/chanopt.c @@ -3,12 +3,15 @@ #include <stdio.h> #include <string.h> #include <stdlib.h> -#include <unistd.h> #include <sys/types.h> #include <sys/stat.h> #include <fcntl.h> #include <errno.h> +#ifndef WIN32 +#include <unistd.h> +#endif + #include "xchat.h" #include "cfgfiles.h" @@ -81,9 +84,9 @@ chanopt_command (session *sess, char *tbuf, char *word[], char *word_eol[]) if (word[offset][0]) { - if (!strcasecmp (word[offset], "ON")) + if (!g_ascii_strcasecmp (word[offset], "ON")) newval = 1; - else if (!strcasecmp (word[offset], "OFF")) + else if (!g_ascii_strcasecmp (word[offset], "OFF")) newval = 0; else if (word[offset][0] == 'u') newval = SET_DEFAULT; @@ -183,8 +186,8 @@ chanopt_find (char *network, char *channel, gboolean add_new) for (list = chanopt_list; list; list = list->next) { co = list->data; - if (!strcasecmp (co->channel, channel) && - !strcasecmp (co->network, network)) + if (!g_ascii_strcasecmp (co->channel, channel) && + !g_ascii_strcasecmp (co->network, network)) return co; } diff --git a/src/common/common.vcxproj b/src/common/common.vcxproj new file mode 100644 index 00000000..4e95c929 --- /dev/null +++ b/src/common/common.vcxproj @@ -0,0 +1,157 @@ +<?xml version="1.0" encoding="utf-8"?> +<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <ItemGroup Label="ProjectConfigurations"> + <ProjectConfiguration Include="Release|Win32"> + <Configuration>Release</Configuration> + <Platform>Win32</Platform> + </ProjectConfiguration> + <ProjectConfiguration Include="Release|x64"> + <Configuration>Release</Configuration> + <Platform>x64</Platform> + </ProjectConfiguration> + </ItemGroup> + <ItemGroup> + <ClInclude Include="..\..\config.h" /> + <ClInclude Include="cfgfiles.h" /> + <ClInclude Include="chanopt.h" /> + <ClInclude Include="ctcp.h" /> + <ClInclude Include="dcc.h" /> + <ClInclude Include="fe.h" /> + <ClInclude Include="history.h" /> + <ClInclude Include="identd.h" /> + <ClInclude Include="ignore.h" /> + <ClInclude Include="inbound.h" /> + <ClInclude Include="inet.h" /> + <ClInclude Include="modes.h" /> + <ClInclude Include="msproxy.h" /> + <ClInclude Include="network.h" /> + <ClInclude Include="notify.h" /> + <ClInclude Include="outbound.h" /> + <ClInclude Include="plugin-timer.h" /> + <ClInclude Include="plugin.h" /> + <ClInclude Include="proto-irc.h" /> + <ClInclude Include="server.h" /> + <ClInclude Include="servlist.h" /> + <ClInclude Include="ssl.h" /> + <ClInclude Include="text.h" /> + <ClInclude Include="textenums.h" /> + <ClInclude Include="textevents.h" /> + <ClInclude Include="thread.h" /> + <ClInclude Include="tree.h" /> + <ClInclude Include="url.h" /> + <ClInclude Include="userlist.h" /> + <ClInclude Include="util.h" /> + <ClInclude Include="xchat-plugin.h" /> + <ClInclude Include="xchat.h" /> + <ClInclude Include="xchatc.h" /> + </ItemGroup> + <ItemGroup> + <ClCompile Include="cfgfiles.c" /> + <ClCompile Include="chanopt.c" /> + <ClCompile Include="ctcp.c" /> + <ClCompile Include="dcc.c" /> + <ClCompile Include="history.c" /> + <ClCompile Include="identd.c" /> + <ClCompile Include="ignore.c" /> + <ClCompile Include="inbound.c" /> + <ClCompile Include="modes.c" /> + <ClCompile Include="msproxy.c" /> + <ClCompile Include="network.c" /> + <ClCompile Include="notify.c" /> + <ClCompile Include="outbound.c" /> + <ClCompile Include="plugin-timer.c" /> + <ClCompile Include="plugin.c" /> + <ClCompile Include="proto-irc.c" /> + <ClCompile Include="server.c" /> + <ClCompile Include="servlist.c" /> + <ClCompile Include="ssl.c" /> + <ClCompile Include="text.c" /> + <ClCompile Include="thread.c" /> + <ClCompile Include="tree.c" /> + <ClCompile Include="url.c" /> + <ClCompile Include="userlist.c" /> + <ClCompile Include="util.c" /> + <ClCompile Include="xchat.c" /> + </ItemGroup> + <PropertyGroup Label="Globals"> + <ProjectGuid>{87554B59-006C-4D94-9714-897B27067BA3}</ProjectGuid> + <Keyword>Win32Proj</Keyword> + <RootNamespace>common</RootNamespace> + </PropertyGroup> + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" /> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration"> + <ConfigurationType>StaticLibrary</ConfigurationType> + <UseDebugLibraries>false</UseDebugLibraries> + <WholeProgramOptimization>true</WholeProgramOptimization> + <CharacterSet>MultiByte</CharacterSet> + <PlatformToolset>WDK7</PlatformToolset> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration"> + <ConfigurationType>StaticLibrary</ConfigurationType> + <UseDebugLibraries>false</UseDebugLibraries> + <WholeProgramOptimization>true</WholeProgramOptimization> + <CharacterSet>MultiByte</CharacterSet> + <PlatformToolset>WDK7</PlatformToolset> + </PropertyGroup> + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" /> + <ImportGroup Label="ExtensionSettings"> + </ImportGroup> + <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> + <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> + <Import Project="..\..\win32\xchat.props" /> + </ImportGroup> + <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets"> + <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> + <Import Project="..\..\win32\xchat.props" /> + </ImportGroup> + <PropertyGroup Label="UserMacros" /> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> + <OutDir>$(SolutionDir)build\$(PlatformName)\bin</OutDir> + <IntDir>$(SolutionDir)build\$(PlatformName)\obj\$(ProjectName)</IntDir> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'"> + <OutDir>$(SolutionDir)build\$(PlatformName)\bin</OutDir> + <IntDir>$(SolutionDir)build\$(PlatformName)\obj\$(ProjectName)</IntDir> + </PropertyGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> + <ClCompile> + <WarningLevel>Level1</WarningLevel> + <PrecompiledHeader> + </PrecompiledHeader> + <Optimization>MaxSpeed</Optimization> + <FunctionLevelLinking>true</FunctionLevelLinking> + <IntrinsicFunctions>true</IntrinsicFunctions> + <PreprocessorDefinitions>WIN32;NDEBUG;_LIB;$(OwnFlags);%(PreprocessorDefinitions)</PreprocessorDefinitions> + <AdditionalIncludeDirectories>$(DepsRoot)\include;$(Glib);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> + <MultiProcessorCompilation>true</MultiProcessorCompilation> + </ClCompile> + <Link> + <SubSystem>Windows</SubSystem> + <GenerateDebugInformation>true</GenerateDebugInformation> + <EnableCOMDATFolding>true</EnableCOMDATFolding> + <OptimizeReferences>true</OptimizeReferences> + </Link> + </ItemDefinitionGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'"> + <ClCompile> + <WarningLevel>Level1</WarningLevel> + <PrecompiledHeader> + </PrecompiledHeader> + <Optimization>MaxSpeed</Optimization> + <FunctionLevelLinking>true</FunctionLevelLinking> + <IntrinsicFunctions>true</IntrinsicFunctions> + <PreprocessorDefinitions>WIN32;_WIN64;NDEBUG;_LIB;$(OwnFlags);%(PreprocessorDefinitions)</PreprocessorDefinitions> + <AdditionalIncludeDirectories>$(DepsRoot)\include;$(Glib);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> + <MultiProcessorCompilation>true</MultiProcessorCompilation> + </ClCompile> + <Link> + <SubSystem>Windows</SubSystem> + <GenerateDebugInformation>true</GenerateDebugInformation> + <EnableCOMDATFolding>true</EnableCOMDATFolding> + <OptimizeReferences>true</OptimizeReferences> + </Link> + </ItemDefinitionGroup> + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" /> + <ImportGroup Label="ExtensionTargets"> + </ImportGroup> +</Project> \ No newline at end of file diff --git a/src/common/common.vcxproj.filters b/src/common/common.vcxproj.filters new file mode 100644 index 00000000..afb66e63 --- /dev/null +++ b/src/common/common.vcxproj.filters @@ -0,0 +1,194 @@ +<?xml version="1.0" encoding="utf-8"?> +<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <ItemGroup> + <Filter Include="Source Files"> + <UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier> + <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions> + </Filter> + <Filter Include="Header Files"> + <UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier> + <Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions> + </Filter> + </ItemGroup> + <ItemGroup> + <ClInclude Include="cfgfiles.h"> + <Filter>Header Files</Filter> + </ClInclude> + <ClInclude Include="chanopt.h"> + <Filter>Header Files</Filter> + </ClInclude> + <ClInclude Include="ctcp.h"> + <Filter>Header Files</Filter> + </ClInclude> + <ClInclude Include="dcc.h"> + <Filter>Header Files</Filter> + </ClInclude> + <ClInclude Include="fe.h"> + <Filter>Header Files</Filter> + </ClInclude> + <ClInclude Include="history.h"> + <Filter>Header Files</Filter> + </ClInclude> + <ClInclude Include="identd.h"> + <Filter>Header Files</Filter> + </ClInclude> + <ClInclude Include="ignore.h"> + <Filter>Header Files</Filter> + </ClInclude> + <ClInclude Include="inbound.h"> + <Filter>Header Files</Filter> + </ClInclude> + <ClInclude Include="inet.h"> + <Filter>Header Files</Filter> + </ClInclude> + <ClInclude Include="modes.h"> + <Filter>Header Files</Filter> + </ClInclude> + <ClInclude Include="msproxy.h"> + <Filter>Header Files</Filter> + </ClInclude> + <ClInclude Include="network.h"> + <Filter>Header Files</Filter> + </ClInclude> + <ClInclude Include="notify.h"> + <Filter>Header Files</Filter> + </ClInclude> + <ClInclude Include="outbound.h"> + <Filter>Header Files</Filter> + </ClInclude> + <ClInclude Include="plugin.h"> + <Filter>Header Files</Filter> + </ClInclude> + <ClInclude Include="plugin-timer.h"> + <Filter>Header Files</Filter> + </ClInclude> + <ClInclude Include="proto-irc.h"> + <Filter>Header Files</Filter> + </ClInclude> + <ClInclude Include="server.h"> + <Filter>Header Files</Filter> + </ClInclude> + <ClInclude Include="servlist.h"> + <Filter>Header Files</Filter> + </ClInclude> + <ClInclude Include="ssl.h"> + <Filter>Header Files</Filter> + </ClInclude> + <ClInclude Include="text.h"> + <Filter>Header Files</Filter> + </ClInclude> + <ClInclude Include="textenums.h"> + <Filter>Header Files</Filter> + </ClInclude> + <ClInclude Include="textevents.h"> + <Filter>Header Files</Filter> + </ClInclude> + <ClInclude Include="thread.h"> + <Filter>Header Files</Filter> + </ClInclude> + <ClInclude Include="tree.h"> + <Filter>Header Files</Filter> + </ClInclude> + <ClInclude Include="url.h"> + <Filter>Header Files</Filter> + </ClInclude> + <ClInclude Include="userlist.h"> + <Filter>Header Files</Filter> + </ClInclude> + <ClInclude Include="util.h"> + <Filter>Header Files</Filter> + </ClInclude> + <ClInclude Include="xchat.h"> + <Filter>Header Files</Filter> + </ClInclude> + <ClInclude Include="xchatc.h"> + <Filter>Header Files</Filter> + </ClInclude> + <ClInclude Include="xchat-plugin.h"> + <Filter>Header Files</Filter> + </ClInclude> + <ClInclude Include="..\..\config.h"> + <Filter>Header Files</Filter> + </ClInclude> + </ItemGroup> + <ItemGroup> + <ClCompile Include="cfgfiles.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="chanopt.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="ctcp.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="dcc.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="history.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="identd.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="ignore.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="inbound.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="modes.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="msproxy.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="network.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="notify.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="outbound.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="plugin.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="plugin-timer.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="proto-irc.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="server.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="servlist.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="ssl.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="text.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="thread.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="tree.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="url.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="userlist.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="util.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="xchat.c"> + <Filter>Source Files</Filter> + </ClCompile> + </ItemGroup> +</Project> \ No newline at end of file diff --git a/src/common/common.vcxproj.user b/src/common/common.vcxproj.user new file mode 100644 index 00000000..695b5c78 --- /dev/null +++ b/src/common/common.vcxproj.user @@ -0,0 +1,3 @@ +<?xml version="1.0" encoding="utf-8"?> +<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> +</Project> \ No newline at end of file diff --git a/src/common/ctcp.c b/src/common/ctcp.c index 574cda79..36952db7 100644 --- a/src/common/ctcp.c +++ b/src/common/ctcp.c @@ -18,9 +18,12 @@ #include <stdio.h> #include <string.h> -#include <unistd.h> #include <stdlib.h> +#ifndef WIN32 +#include <unistd.h> +#endif + #include "xchat.h" #include "cfgfiles.h" #include "util.h" @@ -70,7 +73,7 @@ ctcp_check (session *sess, char *nick, char *word[], char *word_eol[], while (list) { pop = (struct popup *) list->data; - if (!strcasecmp (ctcp, pop->name)) + if (!g_ascii_strcasecmp (ctcp, pop->name)) { ctcp_reply (sess, nick, word, word_eol, pop->cmd); ret = 1; @@ -94,7 +97,7 @@ ctcp_handle (session *sess, char *to, char *nick, char *ip, ctcp_offset = 3; /* consider DCC to be different from other CTCPs */ - if (!strncasecmp (msg, "DCC", 3)) + if (!g_ascii_strncasecmp (msg, "DCC", 3)) { /* but still let CTCP replies override it */ if (!ctcp_check (sess, nick, word, word_eol, word[4] + ctcp_offset)) @@ -107,7 +110,7 @@ ctcp_handle (session *sess, char *to, char *nick, char *ip, /* consider ACTION to be different from other CTCPs. Check ignore as if it was a PRIV/CHAN. */ - if (!strncasecmp (msg, "ACTION ", 7)) + if (!g_ascii_strncasecmp (msg, "ACTION ", 7)) { if (is_channel (serv, to)) { @@ -132,16 +135,21 @@ ctcp_handle (session *sess, char *to, char *nick, char *ip, if (ignore_check (word[1], IG_CTCP)) return; - if (!strcasecmp (msg, "VERSION") && !prefs.hidever) + if (!g_ascii_strcasecmp (msg, "VERSION") && !prefs.hidever) { - snprintf (outbuf, sizeof (outbuf), "VERSION xchat "PACKAGE_VERSION" %s", +#ifdef WIN32 + snprintf (outbuf, sizeof (outbuf), "VERSION XChat-WDK "PACKAGE_VERSION" [x%d] / %s", + get_cpu_arch (), get_cpu_str ()); +#else + snprintf (outbuf, sizeof (outbuf), "VERSION XChat-WDK "PACKAGE_VERSION" %s", get_cpu_str ()); +#endif serv->p_nctcp (serv, nick, outbuf); } if (!ctcp_check (sess, nick, word, word_eol, word[4] + ctcp_offset)) { - if (!strncasecmp (msg, "SOUND", 5)) + if (!g_ascii_strncasecmp (msg, "SOUND", 5)) { po = strchr (word[5], '\001'); if (po) diff --git a/src/common/dcc.c b/src/common/dcc.c index 8f289342..4c8724d9 100644 --- a/src/common/dcc.c +++ b/src/common/dcc.c @@ -31,7 +31,6 @@ #include <time.h> #include <errno.h> #include <sys/stat.h> -#include <unistd.h> #include <fcntl.h> #define WANTSOCKET @@ -41,6 +40,8 @@ #ifdef WIN32 #include <windows.h> +#else +#include <unistd.h> #endif #include "xchat.h" @@ -57,6 +58,9 @@ #ifdef USE_DCC64 #define BIG_STR_TO_INT(x) strtoull(x,NULL,10) +#ifdef WIN32 +#define stat _stat64 +#endif #else #define BIG_STR_TO_INT(x) strtoul(x,NULL,10) #endif @@ -568,7 +572,7 @@ dcc_chat_line (struct DCC *dcc, char *line) url_check_line (line, len); - if (line[0] == 1 && !strncasecmp (line + 1, "ACTION", 6)) + if (line[0] == 1 && !g_ascii_strncasecmp (line + 1, "ACTION", 6)) { po = strchr (line + 8, '\001'); if (po) @@ -1936,9 +1940,9 @@ find_dcc (char *nick, char *file, int type) { if (!file[0]) return dcc; - if (!strcasecmp (file, file_part (dcc->file))) + if (!g_ascii_strcasecmp (file, file_part (dcc->file))) return dcc; - if (!strcasecmp (file, dcc->file)) + if (!g_ascii_strcasecmp (file, dcc->file)) return dcc; } } @@ -1984,7 +1988,7 @@ is_same_file (struct DCC *dcc, struct DCC *new_dcc) /* now handle case-insensitive Filesystems: HFS+, FAT */ #ifdef WIN32 -#warning no win32 implementation - behaviour may be unreliable + /* warning no win32 implementation - behaviour may be unreliable */ #else /* this fstat() shouldn't really fail */ if ((dcc->fp == -1 ? stat (dcc->destfile_fs, &st_a) : fstat (dcc->fp, &st_a)) == -1) @@ -2402,7 +2406,7 @@ handle_dcc (struct session *sess, char *nick, char *word[], DCC_SIZE size; int psend = 0; - if (!strcasecmp (type, "CHAT")) + if (!g_ascii_strcasecmp (type, "CHAT")) { port = atoi (word[8]); addr = strtoul (word[7], NULL, 10); @@ -2449,7 +2453,7 @@ handle_dcc (struct session *sess, char *nick, char *word[], return; } - if (!strcasecmp (type, "Resume")) + if (!g_ascii_strcasecmp (type, "Resume")) { port = atoi (word[7]); @@ -2493,7 +2497,7 @@ handle_dcc (struct session *sess, char *nick, char *word[], } return; } - if (!strcasecmp (type, "Accept")) + if (!g_ascii_strcasecmp (type, "Accept")) { port = atoi (word[7]); dcc = find_dcc_from_port (port, TYPE_RECV); @@ -2503,7 +2507,7 @@ handle_dcc (struct session *sess, char *nick, char *word[], } return; } - if (!strcasecmp (type, "SEND")) + if (!g_ascii_strcasecmp (type, "SEND")) { char *file = file_part (word[6]); diff --git a/src/common/identd.c b/src/common/identd.c index 919282ea..430c7e8f 100644 --- a/src/common/identd.c +++ b/src/common/identd.c @@ -1,8 +1,13 @@ /* simple identd server for xchat under win32 */ +#include "inet.h" +#include "xchat.h" +#include "xchatc.h" static int identd_is_running = FALSE; - +#ifdef USE_IPV6 +static int identd_ipv6_is_running = FALSE; +#endif static int identd (char *username) @@ -75,11 +80,102 @@ identd (char *username) return 0; } -static void +#ifdef USE_IPV6 +static int +identd_ipv6 (char *username) +{ + int sok, read_sok, len; + char *p; + char buf[256]; + char outbuf[256]; + char ipv6buf[60]; + DWORD ipv6buflen = sizeof (ipv6buf); + struct sockaddr_in6 addr; + + sok = socket (AF_INET6, SOCK_STREAM, 0); + + if (sok == INVALID_SOCKET) + { + free (username); + return 0; + } + + len = 1; + setsockopt (sok, SOL_SOCKET, SO_REUSEADDR, (char *) &len, sizeof (len)); + + memset (&addr, 0, sizeof (addr)); + addr.sin6_family = AF_INET6; + addr.sin6_port = htons (113); + + if (bind (sok, (struct sockaddr *) &addr, sizeof (addr)) == SOCKET_ERROR) + { + closesocket (sok); + free (username); + return 0; + } + + if (listen (sok, 1) == SOCKET_ERROR) + { + closesocket (sok); + free (username); + return 0; + } + + len = sizeof (addr); + read_sok = accept (sok, (struct sockaddr *) &addr, &len); + closesocket (sok); + + if (read_sok == INVALID_SOCKET) + { + free (username); + return 0; + } + + identd_ipv6_is_running = FALSE; + + if (WSAAddressToString ((struct sockaddr *) &addr, sizeof (addr), NULL, &ipv6buf, &ipv6buflen) == SOCKET_ERROR) + { + snprintf (ipv6buf, sizeof (ipv6buf) - 1, "[SOCKET ERROR: 0x%X]", WSAGetLastError ()); + } + + snprintf (outbuf, sizeof (outbuf), "%%\tServicing ident request from %s\n", ipv6buf); + PrintText (current_sess, outbuf); + + recv (read_sok, buf, sizeof (buf) - 1, 0); + buf[sizeof (buf) - 1] = 0; /* ensure null termination */ + + p = strchr (buf, ','); + + if (p) + { + snprintf (outbuf, sizeof (outbuf) - 1, "%d, %d : USERID : UNIX : %s\r\n", atoi (buf), atoi (p + 1), username); + outbuf[sizeof (outbuf) - 1] = 0; /* ensure null termination */ + send (read_sok, outbuf, strlen (outbuf), 0); + } + + sleep (1); + closesocket (read_sok); + free (username); + + return 0; +} +#endif + +void identd_start (char *username) { DWORD tid; +#ifdef USE_IPV6 + DWORD tidv6; + if (identd_ipv6_is_running == FALSE) + { + identd_ipv6_is_running = TRUE; + CloseHandle (CreateThread (NULL, 0, (LPTHREAD_START_ROUTINE) identd_ipv6, + strdup (username), 0, &tidv6)); + } +#endif + if (identd_is_running == FALSE) { identd_is_running = TRUE; diff --git a/src/common/identd.h b/src/common/identd.h new file mode 100644 index 00000000..636f9641 --- /dev/null +++ b/src/common/identd.h @@ -0,0 +1 @@ +void identd_start (char *username); diff --git a/src/common/ignore.c b/src/common/ignore.c index c3544f30..0ed23daa 100644 --- a/src/common/ignore.c +++ b/src/common/ignore.c @@ -19,11 +19,14 @@ #include <stdlib.h> #include <stdio.h> #include <string.h> -#include <unistd.h> #include <sys/types.h> #include <sys/stat.h> #include <fcntl.h> +#ifndef WIN32 +#include <unistd.h> +#endif + #include "xchat.h" #include "ignore.h" #include "cfgfiles.h" diff --git a/src/common/inbound.c b/src/common/inbound.c index 719bbe60..89899655 100644 --- a/src/common/inbound.c +++ b/src/common/inbound.c @@ -21,9 +21,12 @@ #include <stdlib.h> #include <stdio.h> #include <sys/types.h> -#include <unistd.h> #include <time.h> +#ifndef WIN32 +#include <unistd.h> +#endif + #define WANTARPA #define WANTDNS #include "inet.h" @@ -883,7 +886,7 @@ inbound_notice (server *serv, char *to, char *nick, char *msg, char *ip, int id) if (msg[0] == '[' && (!serv->have_idmsg || id)) { /* guess where chanserv meant to post this -sigh- */ - if (!strcasecmp (nick, "ChanServ") && !find_dialog (serv, nick)) + if (!g_ascii_strcasecmp (nick, "ChanServ") && !find_dialog (serv, nick)) { char *dest = strdup (msg + 1); char *end = strchr (dest, ']'); diff --git a/src/common/inet.h b/src/common/inet.h index b420c9c6..8995569c 100644 --- a/src/common/inet.h +++ b/src/common/inet.h @@ -21,12 +21,12 @@ #else +#include "../../config.h" #ifdef USE_IPV6 #include <winsock2.h> #include <ws2tcpip.h> -#include <tpipv6.h> #else -#include <winsock.h> +#include <winsock2.h> #endif #define set_blocking(sok) { \ diff --git a/src/common/makefile.mak b/src/common/makefile.mak new file mode 100644 index 00000000..d6df2608 --- /dev/null +++ b/src/common/makefile.mak @@ -0,0 +1,45 @@ +include "..\makeinc.mak" + +COMMON_OBJECTS = \ +cfgfiles.obj \ +chanopt.obj \ +ctcp.obj \ +dcc.obj \ +dirent-win32.obj \ +history.obj \ +identd.obj \ +ignore.obj \ +inbound.obj \ +modes.obj \ +network.obj \ +notify.obj \ +outbound.obj \ +plugin.obj \ +plugin-timer.obj \ +proto-irc.obj \ +server.obj \ +servlist.obj \ +ssl.obj \ +text.obj \ +thread.obj \ +tree.obj \ +url.obj \ +userlist.obj \ +util.obj \ +xchat.obj + +all: $(COMMON_OBJECTS) xchatcommon.lib dirent-win32.lib + +xchatcommon.lib: $(COMMON_OBJECTS) + lib /nologo /out:xchatcommon.lib $(COMMON_OBJECTS) + +dirent-win32.lib: dirent-win32.obj + lib /nologo /out:dirent-win32.lib dirent-win32.obj + +.c.obj:: + $(CC) $(CFLAGS) $(GLIB) $< + +clean: + @del *.obj + @del xchatcommon.lib + @del dirent-win32.lib diff --git a/src/common/modes.c b/src/common/modes.c index 1acf7f54..6eb63f3b 100644 --- a/src/common/modes.c +++ b/src/common/modes.c @@ -789,20 +789,20 @@ inbound_005 (server * serv, char *word[]) } /* use /NICKSERV */ - if (strcasecmp (word[w] + 8, "RusNet") == 0) + if (g_ascii_strcasecmp (word[w] + 8, "RusNet") == 0) serv->nickservtype = 1; - else if (strcasecmp (word[w] + 8, "UniBG") == 0) + else if (g_ascii_strcasecmp (word[w] + 8, "UniBG") == 0) serv->nickservtype = 3; - else if (strcasecmp (word[w] + 8, "QuakeNet") == 0) + else if (g_ascii_strcasecmp (word[w] + 8, "QuakeNet") == 0) serv->nickservtype = 4; } else if (strncmp (word[w], "CASEMAPPING=", 12) == 0) { if (strcmp (word[w] + 12, "ascii") == 0) /* bahamut */ - serv->p_cmp = (void *)strcasecmp; + serv->p_cmp = (void *)g_ascii_strcasecmp; } else if (strncmp (word[w], "CHARSET=", 8) == 0) { - if (strcasecmp (word[w] + 8, "UTF-8") == 0) + if (g_ascii_strcasecmp (word[w] + 8, "UTF-8") == 0) { server_set_encoding (serv, "UTF-8"); } diff --git a/src/common/msproxy.c b/src/common/msproxy.c index 9c85394d..5103233a 100644 --- a/src/common/msproxy.c +++ b/src/common/msproxy.c @@ -26,9 +26,12 @@ #include <stdio.h> #include <string.h> #include <stdlib.h> -#include <unistd.h> #include <fcntl.h> +#ifndef WIN32 +#include <unistd.h> +#endif + #define WANTSOCKET #define WANTARPA #include "inet.h" diff --git a/src/common/network.c b/src/common/network.c index 0c409506..eba24b05 100644 --- a/src/common/network.c +++ b/src/common/network.c @@ -21,9 +21,12 @@ #include <stdlib.h> #include <string.h> #include <stdio.h> -#include <unistd.h> #include <glib.h> +#ifndef WIN32 +#include <unistd.h> +#endif + #include "../../config.h" /* grab USE_IPV6 and LOOKUPD defines */ #define WANTSOCKET diff --git a/src/common/notify.c b/src/common/notify.c index 04795849..9c6e54de 100644 --- a/src/common/notify.c +++ b/src/common/notify.c @@ -22,9 +22,12 @@ #include <sys/types.h> #include <sys/stat.h> #include <fcntl.h> -#include <unistd.h> #include <time.h> +#ifndef WIN32 +#include <unistd.h> +#endif + #include "xchat.h" #include "notify.h" #include "cfgfiles.h" diff --git a/src/common/outbound.c b/src/common/outbound.c index 2add05fd..872ef50b 100644 --- a/src/common/outbound.c +++ b/src/common/outbound.c @@ -30,9 +30,9 @@ #ifndef WIN32 #include <sys/wait.h> +#include <unistd.h> #endif -#include <unistd.h> #include <time.h> #include <signal.h> #include <sys/stat.h> @@ -617,13 +617,13 @@ cmd_clear (struct session *sess, char *tbuf, char *word[], char *word_eol[]) GSList *list = sess_list; char *reason = word_eol[2]; - if (strcasecmp (reason, "HISTORY") == 0) + if (g_ascii_strcasecmp (reason, "HISTORY") == 0) { history_free (&sess->history); return TRUE; } - if (strncasecmp (reason, "all", 3) == 0) + if (g_ascii_strncasecmp (reason, "all", 3) == 0) { while (list) { @@ -750,26 +750,26 @@ cmd_dcc (struct session *sess, char *tbuf, char *word[], char *word_eol[]) char *type = word[2]; if (*type) { - if (!strcasecmp (type, "HELP")) + if (!g_ascii_strcasecmp (type, "HELP")) return FALSE; - if (!strcasecmp (type, "CLOSE")) + if (!g_ascii_strcasecmp (type, "CLOSE")) { if (*word[3] && *word[4]) { goodtype = 0; - if (!strcasecmp (word[3], "SEND")) + if (!g_ascii_strcasecmp (word[3], "SEND")) { dcc = find_dcc (word[4], word[5], TYPE_SEND); dcc_abort (sess, dcc); goodtype = TRUE; } - if (!strcasecmp (word[3], "GET")) + if (!g_ascii_strcasecmp (word[3], "GET")) { dcc = find_dcc (word[4], word[5], TYPE_RECV); dcc_abort (sess, dcc); goodtype = TRUE; } - if (!strcasecmp (word[3], "CHAT")) + if (!g_ascii_strcasecmp (word[3], "CHAT")) { dcc = find_dcc (word[4], "", TYPE_CHATRECV); if (!dcc) @@ -789,20 +789,20 @@ cmd_dcc (struct session *sess, char *tbuf, char *word[], char *word_eol[]) } return FALSE; } - if ((!strcasecmp (type, "CHAT")) || (!strcasecmp (type, "PCHAT"))) + if ((!g_ascii_strcasecmp (type, "CHAT")) || (!g_ascii_strcasecmp (type, "PCHAT"))) { char *nick = word[3]; - int passive = (!strcasecmp(type, "PCHAT")) ? 1 : 0; + int passive = (!g_ascii_strcasecmp(type, "PCHAT")) ? 1 : 0; if (*nick) dcc_chat (sess, nick, passive); return TRUE; } - if (!strcasecmp (type, "LIST")) + if (!g_ascii_strcasecmp (type, "LIST")) { dcc_show_list (sess); return TRUE; } - if (!strcasecmp (type, "GET")) + if (!g_ascii_strcasecmp (type, "GET")) { char *nick = word[3]; char *file = word[4]; @@ -820,18 +820,18 @@ cmd_dcc (struct session *sess, char *tbuf, char *word[], char *word_eol[]) } return TRUE; } - if ((!strcasecmp (type, "SEND")) || (!strcasecmp (type, "PSEND"))) + if ((!g_ascii_strcasecmp (type, "SEND")) || (!g_ascii_strcasecmp (type, "PSEND"))) { int i = 3, maxcps; char *nick, *file; - int passive = (!strcasecmp(type, "PSEND")) ? 1 : 0; + int passive = (!g_ascii_strcasecmp(type, "PSEND")) ? 1 : 0; nick = word[i]; if (!*nick) return FALSE; maxcps = prefs.dcc_max_send_cps; - if (!strncasecmp(nick, "-maxcps=", 8)) + if (!g_ascii_strncasecmp(nick, "-maxcps=", 8)) { maxcps = atoi(nick + 8); i++; @@ -1312,7 +1312,7 @@ cmd_menu (struct session *sess, char *tbuf, char *word[], char *word_eol[]) *p = '/'; } - if (!strcasecmp (word[idx], "ADD")) + if (!g_ascii_strcasecmp (word[idx], "ADD")) { if (toggle) { @@ -1327,7 +1327,7 @@ cmd_menu (struct session *sess, char *tbuf, char *word[], char *word_eol[]) return TRUE; } - if (!strcasecmp (word[idx], "DEL")) + if (!g_ascii_strcasecmp (word[idx], "DEL")) { menu_del (tbuf, label); return TRUE; @@ -2045,7 +2045,7 @@ cmd_gui (struct session *sess, char *tbuf, char *word[], char *word_eol[]) case 0xc0851aaa: fe_message (word[3], FE_MSG_INFO|FE_MSG_MARKUP); break; /* MSGBOX */ case 0x0035dafd: fe_ctrl_gui (sess, 1, 0); break; /* SHOW */ case 0x0033155f: /* MENU */ - if (!strcasecmp (word[3], "TOGGLE")) + if (!g_ascii_strcasecmp (word[3], "TOGGLE")) fe_ctrl_gui (sess, 6, 0); else return FALSE; @@ -2247,25 +2247,25 @@ cmd_ignore (struct session *sess, char *tbuf, char *word[], char *word_eol[]) } return TRUE; } - if (!strcasecmp (word[i], "UNIGNORE")) + if (!g_ascii_strcasecmp (word[i], "UNIGNORE")) type |= IG_UNIG; - else if (!strcasecmp (word[i], "ALL")) + else if (!g_ascii_strcasecmp (word[i], "ALL")) type |= IG_PRIV | IG_NOTI | IG_CHAN | IG_CTCP | IG_INVI | IG_DCC; - else if (!strcasecmp (word[i], "PRIV")) + else if (!g_ascii_strcasecmp (word[i], "PRIV")) type |= IG_PRIV; - else if (!strcasecmp (word[i], "NOTI")) + else if (!g_ascii_strcasecmp (word[i], "NOTI")) type |= IG_NOTI; - else if (!strcasecmp (word[i], "CHAN")) + else if (!g_ascii_strcasecmp (word[i], "CHAN")) type |= IG_CHAN; - else if (!strcasecmp (word[i], "CTCP")) + else if (!g_ascii_strcasecmp (word[i], "CTCP")) type |= IG_CTCP; - else if (!strcasecmp (word[i], "INVI")) + else if (!g_ascii_strcasecmp (word[i], "INVI")) type |= IG_INVI; - else if (!strcasecmp (word[i], "QUIET")) + else if (!g_ascii_strcasecmp (word[i], "QUIET")) quiet = 1; - else if (!strcasecmp (word[i], "NOSAVE")) + else if (!g_ascii_strcasecmp (word[i], "NOSAVE")) type |= IG_NOSAVE; - else if (!strcasecmp (word[i], "DCC")) + else if (!g_ascii_strcasecmp (word[i], "DCC")) type |= IG_DCC; else { @@ -2456,12 +2456,12 @@ cmd_load (struct session *sess, char *tbuf, char *word[], char *word_eol[]) #ifdef USE_PLUGIN len = strlen (word[2]); #ifdef WIN32 - if (len > 4 && strcasecmp (".dll", word[2] + len - 4) == 0) + if (len > 4 && g_ascii_strcasecmp (".dll", word[2] + len - 4) == 0) #else #if defined(__hpux) - if (len > 3 && strcasecmp (".sl", word[2] + len - 3) == 0) + if (len > 3 && g_ascii_strcasecmp (".sl", word[2] + len - 3) == 0) #else - if (len > 3 && strcasecmp (".so", word[2] + len - 3) == 0) + if (len > 3 && g_ascii_strcasecmp (".so", word[2] + len - 3) == 0) #endif #endif { @@ -2613,8 +2613,8 @@ cmd_msg (struct session *sess, char *tbuf, char *word[], char *word_eol[]) else { /* mask out passwords */ - if (strcasecmp (nick, "nickserv") == 0 && - strncasecmp (msg, "identify ", 9) == 0) + if (g_ascii_strcasecmp (nick, "nickserv") == 0 && + g_ascii_strncasecmp (msg, "identify ", 9) == 0) msg = "identify ****"; EMIT_SIGNAL (XP_TE_MSGSEND, sess, nick, msg, NULL, NULL, 0); } @@ -2825,7 +2825,7 @@ cmd_reconnect (struct session *sess, char *tbuf, char *word[], char *word_eol[]) prefs.recon_delay = 0; - if (!strcasecmp (word[2], "ALL")) + if (!g_ascii_strcasecmp (word[2], "ALL")) { list = serv_list; while (list) @@ -2881,6 +2881,23 @@ cmd_recv (struct session *sess, char *tbuf, char *word[], char *word_eol[]) return FALSE; } +#if 0 /* manual command for flushing prefs to disk, but we use an autosave-upon-set approach instead */ +static int +cmd_saveconf (struct session *sess, char *tbuf, char *word[], char *word_eol[]) +{ + if (save_config ()) + { + PrintText (sess, "Settings have been saved successfully.\n"); + } + else + { + PrintText (sess, "Error saving settings.\n"); + } + + return TRUE; +} +#endif + static int cmd_say (struct session *sess, char *tbuf, char *word[], char *word_eol[]) { @@ -2980,7 +2997,7 @@ parse_irc_url (char *url, char *server_name[], char *port[], char *channel[], in { char *co; #ifdef USE_OPENSSL - if (strncasecmp ("ircs://", url, 7) == 0) + if (g_ascii_strncasecmp ("ircs://", url, 7) == 0) { *use_ssl = TRUE; *server_name = url + 7; @@ -2988,7 +3005,7 @@ parse_irc_url (char *url, char *server_name[], char *port[], char *channel[], in } #endif - if (strncasecmp ("irc://", url, 6) == 0) + if (g_ascii_strncasecmp ("irc://", url, 6) == 0) { *server_name = url + 6; #ifdef USE_OPENSSL @@ -3059,7 +3076,7 @@ cmd_server (struct session *sess, char *tbuf, char *word[], char *word_eol[]) sess->server->network = NULL; /* dont clear it for /servchan */ - if (strncasecmp (word_eol[1], "SERVCHAN ", 9)) + if (g_ascii_strncasecmp (word_eol[1], "SERVCHAN ", 9)) sess->willjoinchannel[0] = 0; if (channel) @@ -3189,7 +3206,7 @@ cmd_unignore (struct session *sess, char *tbuf, char *word[], { if (ignore_del (mask, NULL)) { - if (strcasecmp (arg, "QUIET")) + if (g_ascii_strcasecmp (arg, "QUIET")) EMIT_SIGNAL (XP_TE_IGNOREREMOVE, sess, mask, NULL, NULL, NULL, 0); } return TRUE; @@ -3205,12 +3222,12 @@ cmd_unload (struct session *sess, char *tbuf, char *word[], char *word_eol[]) len = strlen (word[2]); #ifdef WIN32 - if (len > 4 && strcasecmp (word[2] + len - 4, ".dll") == 0) + if (len > 4 && g_ascii_strcasecmp (word[2] + len - 4, ".dll") == 0) #else #if defined(__hpux) - if (len > 3 && strcasecmp (word[2] + len - 3, ".sl") == 0) + if (len > 3 && g_ascii_strcasecmp (word[2] + len - 3, ".sl") == 0) #else - if (len > 3 && strcasecmp (word[2] + len - 3, ".so") == 0) + if (len > 3 && g_ascii_strcasecmp (word[2] + len - 3, ".so") == 0) #endif #endif by_file = TRUE; @@ -3240,7 +3257,7 @@ find_server_from_hostname (char *hostname) while (list) { serv = list->data; - if (!strcasecmp (hostname, serv->hostname) && serv->connected) + if (!g_ascii_strcasecmp (hostname, serv->hostname) && serv->connected) return serv; list = list->next; } @@ -3293,7 +3310,7 @@ cmd_url (struct session *sess, char *tbuf, char *word[], char *word_eol[]) /* maybe we're already connected to this net */ /* check for "FreeNode" */ - net = servlist_net_find (server_name, NULL, strcasecmp); + net = servlist_net_find (server_name, NULL, g_ascii_strcasecmp); /* check for "irc.eu.freenode.net" */ if (!net) net = servlist_net_find_from_server (server_name); @@ -3633,6 +3650,9 @@ const struct commands xc_cmds[] = { #endif {"RECV", cmd_recv, 1, 0, 1, N_("RECV <text>, send raw data to xchat, as if it was received from the irc server")}, +#if 0 + {"SAVECONF", cmd_saveconf, 0, 0, 1, N_("SAVECONF, saves the current settings to disk")}, +#endif {"SAY", cmd_say, 0, 0, 1, N_("SAY <text>, sends the text to the object in the current window")}, {"SEND", cmd_send, 0, 0, 1, N_("SEND <nick> [<file>]")}, @@ -3685,7 +3705,7 @@ const struct commands xc_cmds[] = { static int command_compare (const void *a, const void *b) { - return strcasecmp (a, ((struct commands *)b)->name); + return g_ascii_strcasecmp (a, ((struct commands *)b)->name); } static struct commands * @@ -4257,7 +4277,7 @@ handle_command (session *sess, char *cmd, int check_spch) while (list) { pop = (struct popup *) list->data; - if (!strcasecmp (pop->name, word[1])) + if (!g_ascii_strcasecmp (pop->name, word[1])) { user_command (sess, tbuf, pop->cmd, word, word_eol); user_cmd = TRUE; diff --git a/src/common/plugin-timer.c b/src/common/plugin-timer.c index f09074a8..431ce8ab 100644 --- a/src/common/plugin-timer.c +++ b/src/common/plugin-timer.c @@ -4,7 +4,7 @@ #include "xchat-plugin.h" #ifdef WIN32 -#define strcasecmp stricmp +#define g_ascii_strcasecmp stricmp #endif static xchat_plugin *ph; /* plugin handle */ @@ -151,25 +151,25 @@ timer_cb (char *word[], char *word_eol[], void *userdata) return XCHAT_EAT_XCHAT; } - if (strcasecmp (word[2], "-quiet") == 0) + if (g_ascii_strcasecmp (word[2], "-quiet") == 0) { quiet = TRUE; offset++; } - if (strcasecmp (word[2 + offset], "-delete") == 0) + if (g_ascii_strcasecmp (word[2 + offset], "-delete") == 0) { timer_del_ref (atoi (word[3 + offset]), quiet); return XCHAT_EAT_XCHAT; } - if (strcasecmp (word[2 + offset], "-refnum") == 0) + if (g_ascii_strcasecmp (word[2 + offset], "-refnum") == 0) { ref = atoi (word[3 + offset]); offset += 2; } - if (strcasecmp (word[2 + offset], "-repeat") == 0) + if (g_ascii_strcasecmp (word[2 + offset], "-repeat") == 0) { repeat = atoi (word[3 + offset]); offset += 2; diff --git a/src/common/plugin.c b/src/common/plugin.c index ada4d3be..0a265d16 100644 --- a/src/common/plugin.c +++ b/src/common/plugin.c @@ -20,6 +20,14 @@ #include <string.h> #include <stdarg.h> #include <stdio.h> +#include <fcntl.h> +#include <sys/stat.h> + +#ifdef WIN32 +#include <io.h> +#else +#include <unistd.h> +#endif #include "xchat.h" #include "fe.h" @@ -262,6 +270,12 @@ plugin_add (session *sess, char *filename, void *handle, void *init_func, pl->xchat_send_modes = xchat_send_modes; pl->xchat_strip = xchat_strip; pl->xchat_free = xchat_free; + pl->xchat_pluginpref_set_str = xchat_pluginpref_set_str; + pl->xchat_pluginpref_get_str = xchat_pluginpref_get_str; + pl->xchat_pluginpref_set_int = xchat_pluginpref_set_int; + pl->xchat_pluginpref_get_int = xchat_pluginpref_get_int; + pl->xchat_pluginpref_delete = xchat_pluginpref_delete; + pl->xchat_pluginpref_list = xchat_pluginpref_list; /* incase new plugins are loaded on older xchat */ pl->xchat_dummy4 = xchat_dummy; @@ -295,9 +309,9 @@ plugin_kill (char *name, int by_filename) { pl = list->data; /* static-plugins (plugin-timer.c) have a NULL filename */ - if ((by_filename && pl->filename && strcasecmp (name, pl->filename) == 0) || - (by_filename && pl->filename && strcasecmp (name, file_part (pl->filename)) == 0) || - (!by_filename && strcasecmp (name, pl->name) == 0)) + if ((by_filename && pl->filename && g_ascii_strcasecmp (name, pl->filename) == 0) || + (by_filename && pl->filename && g_ascii_strcasecmp (name, file_part (pl->filename)) == 0) || + (!by_filename && g_ascii_strcasecmp (name, pl->name) == 0)) { /* statically linked plugins have a NULL filename */ if (pl->filename != NULL && !pl->fake) @@ -458,12 +472,12 @@ plugin_hook_find (GSList *list, int type, char *name) hook = list->data; if (hook->type == type) { - if (strcasecmp (hook->name, name) == 0) + if (g_ascii_strcasecmp (hook->name, name) == 0) return list; if (type == HOOK_SERVER) { - if (strcasecmp (hook->name, "RAW LINE") == 0) + if (g_ascii_strcasecmp (hook->name, "RAW LINE") == 0) return list; } } @@ -933,8 +947,8 @@ xchat_find_context (xchat_plugin *ph, const char *servname, const char *channel) if (servname == NULL || rfc_casecmp (servname, serv->servername) == 0 || - strcasecmp (servname, serv->hostname) == 0 || - strcasecmp (servname, netname) == 0) + g_ascii_strcasecmp (servname, serv->hostname) == 0 || + g_ascii_strcasecmp (servname, netname) == 0) { if (channel == NULL) return serv->front_session; @@ -996,13 +1010,20 @@ xchat_get_info (xchat_plugin *ph, const char *id) return XCHATLIBDIR; case 0x14f51cd8: /* version */ +#ifdef WIN32 + return XCHAT_RELEASE; +#else return PACKAGE_VERSION; +#endif case 0xdd9b1abd: /* xchatdir */ return get_xdir_utf8 (); case 0xe33f6c4a: /* xchatdirfs */ return get_xdir_fs (); + + case 0x3d1e70d7: /* wdk_version */ + return PACKAGE_VERSION; } sess = ph->context; @@ -1100,7 +1121,7 @@ xchat_get_prefs (xchat_plugin *ph, const char *name, const char **string, int *i do { - if (!strcasecmp (name, vars[i].name)) + if (!g_ascii_strcasecmp (name, vars[i].name)) { switch (vars[i].type) { @@ -1567,3 +1588,239 @@ xchat_free (xchat_plugin *ph, void *ptr) { g_free (ptr); } + +static int +xchat_pluginpref_set_str_real (xchat_plugin *pl, const char *var, const char *value, int mode) /* mode: 0 = delete, 1 = save */ +{ + FILE *fpIn; + int fhOut; + int prevSetting; + char confname[64]; + char confname_tmp[69]; + char buffer[512]; /* the same as in cfg_put_str */ + char buffer_tmp[512]; + char *canon; + + canon = g_strdup (pl->name); + canonalize_key (canon); + sprintf (confname, "plugin_%s.conf", canon); + g_free (canon); + sprintf (confname_tmp, "%s.new", confname); + + fhOut = xchat_open_file (confname_tmp, O_TRUNC | O_WRONLY | O_CREAT, 0600, XOF_DOMODE); + fpIn = xchat_fopen_file (confname, "r", 0); + + if (fhOut == -1) /* unable to save, abort */ + { + return 0; + } + else if (fpIn == NULL) /* no previous config file, no parsing */ + { + if (mode) + { + sprintf (buffer, "%s = %s\n", var, value); + write (fhOut, buffer, strlen (buffer)); + close (fhOut); + + sprintf (buffer, "%s/%s", get_xdir_fs (), confname); + sprintf (buffer_tmp, "%s/%s", get_xdir_fs (), confname_tmp); + +#ifdef WIN32 + unlink (buffer); +#endif + + if (rename (buffer_tmp, buffer) == 0) + { + return 1; + } + else + { + return 0; + } + } + else + { + /* mode = 0, we want to delete but the config file and thus the given setting does not exist, we're ready */ + close (fhOut); + return 1; + } + } + else /* existing config file, preserve settings and find & replace current var value if any */ + { + prevSetting = 0; + + while (fscanf (fpIn, " %[^\n]", &buffer) != EOF) /* read whole lines including whitespaces */ + { + sprintf (buffer_tmp, "%s ", var); /* add one space, this way it works against var - var2 checks too */ + + if (strncmp (buffer_tmp, buffer, strlen (var) + 1) == 0) /* given setting already exists */ + { + if (mode) /* overwrite the existing matching setting if we are in save mode */ + { + sprintf (buffer, "%s = %s\n", var, value); + } + else /* erase the setting in delete mode */ + { + strcpy (buffer, ""); + } + + prevSetting = 1; + } + else + { + strcat (buffer, "\n"); /* preserve the existing different settings */ + } + + write (fhOut, buffer, strlen (buffer)); + } + + fclose (fpIn); + + if (!prevSetting && mode) /* var doesn't exist currently, append if we're in save mode */ + { + sprintf (buffer, "%s = %s\n", var, value); + write (fhOut, buffer, strlen (buffer)); + } + + close (fhOut); + + sprintf (buffer, "%s/%s", get_xdir_fs (), confname); + sprintf (buffer_tmp, "%s/%s", get_xdir_fs (), confname_tmp); + +#ifdef WIN32 + unlink (buffer); +#endif + + if (rename (buffer_tmp, buffer) == 0) + { + return 1; + } + else + { + return 0; + } + } +} + +int +xchat_pluginpref_set_str (xchat_plugin *pl, const char *var, const char *value) +{ + return xchat_pluginpref_set_str_real (pl, var, value, 1); +} + +int +xchat_pluginpref_get_str (xchat_plugin *pl, const char *var, char *dest) +{ + int fh; + int l; + char confname[64]; + char *canon; + char *cfg; + struct stat st; + + canon = g_strdup (pl->name); + canonalize_key (canon); + sprintf (confname, "plugin_%s.conf", canon); + g_free (canon); + + /* partly borrowed from palette.c */ + fh = xchat_open_file (confname, O_RDONLY, 0, 0); + + if (fh == -1) + { + return 0; + } + + fstat (fh, &st); + cfg = malloc (st.st_size + 1); + + if (!cfg) + { + close (fh); + return 0; + } + + cfg[0] = '\0'; + l = read (fh, cfg, st.st_size); + + if (l >= 0) + { + cfg[l] = '\0'; + } + + if (!cfg_get_str (cfg, var, dest, 512)) /* dest_len is the same as buffer size in set */ + { + free (cfg); + close (fh); + return 0; + } + + free (cfg); + close (fh); + return 1; +} + +int +xchat_pluginpref_set_int (xchat_plugin *pl, const char *var, int value) +{ + char buffer[12]; + + sprintf (buffer, "%d", value); + return xchat_pluginpref_set_str_real (pl, var, buffer, 1); +} + +int +xchat_pluginpref_get_int (xchat_plugin *pl, const char *var) +{ + char buffer[12]; + + if (xchat_pluginpref_get_str (pl, var, buffer)) + { + return atoi (buffer); + } + else + { + return -1; + } +} + +int +xchat_pluginpref_delete (xchat_plugin *pl, const char *var) +{ + return xchat_pluginpref_set_str_real (pl, var, 0, 0); +} + +int +xchat_pluginpref_list (xchat_plugin *pl, char* dest) +{ + FILE *fpIn; + char confname[64]; + char buffer[512]; /* the same as in cfg_put_str */ + char *token; + + token = g_strdup (pl->name); + canonalize_key (token); + sprintf (confname, "plugin_%s.conf", token); + g_free (token); + + fpIn = xchat_fopen_file (confname, "r", 0); + + if (fpIn == NULL) /* no existing config file, no parsing */ + { + return 0; + } + else /* existing config file, get list of settings */ + { + strcpy (dest, ""); /* clean up garbage */ + while (fscanf (fpIn, " %[^\n]", &buffer) != EOF) /* read whole lines including whitespaces */ + { + token = strtok (buffer, "="); + strncat (dest, token, strlen (token) - 1); + strcat (dest, ","); + } + + fclose (fpIn); + } + + return 1; +} diff --git a/src/common/plugin.h b/src/common/plugin.h index b0c89d1b..8c347d51 100644 --- a/src/common/plugin.h +++ b/src/common/plugin.h @@ -98,6 +98,21 @@ struct _xchat_plugin int flags); void (*xchat_free) (xchat_plugin *ph, void *ptr); + int (*xchat_pluginpref_set_str) (xchat_plugin *ph, + const char *var, + const char *value); + int (*xchat_pluginpref_get_str) (xchat_plugin *ph, + const char *var, + char *dest); + int (*xchat_pluginpref_set_int) (xchat_plugin *ph, + const char *var, + int value); + int (*xchat_pluginpref_get_int) (xchat_plugin *ph, + const char *var); + int (*xchat_pluginpref_delete) (xchat_plugin *ph, + const char *var); + int (*xchat_pluginpref_list) (xchat_plugin *ph, + char *dest); void *(*xchat_dummy4) (xchat_plugin *ph); void *(*xchat_dummy3) (xchat_plugin *ph); void *(*xchat_dummy2) (xchat_plugin *ph); diff --git a/src/common/proto-irc.c b/src/common/proto-irc.c index 338a3b18..d8a6be7c 100644 --- a/src/common/proto-irc.c +++ b/src/common/proto-irc.c @@ -18,13 +18,16 @@ /* IRC RFC1459(+commonly used extensions) protocol implementation */ -#include <unistd.h> #include <string.h> #include <stdio.h> #include <stdlib.h> #include <ctype.h> #include <stdarg.h> +#ifndef WIN32 +#include <unistd.h> +#endif + #include "xchat.h" #include "ctcp.h" #include "fe.h" @@ -472,12 +475,12 @@ process_numeric (session * sess, int n, } /* use /NICKSERV */ - if (strcasecmp (word[7], "DALnet") == 0 || - strcasecmp (word[7], "BRASnet") == 0) + if (g_ascii_strcasecmp (word[7], "DALnet") == 0 || + g_ascii_strcasecmp (word[7], "BRASnet") == 0) serv->nickservtype = 1; /* use /NS */ - else if (strcasecmp (word[7], "FreeNode") == 0) + else if (g_ascii_strcasecmp (word[7], "FreeNode") == 0) serv->nickservtype = 2; goto def; @@ -1072,9 +1075,9 @@ process_named_msg (session *sess, char *type, char *word[], char *word_eol[]) { text[len - 1] = 0; text++; - if (strncasecmp (text, "ACTION", 6) != 0) + if (g_ascii_strncasecmp (text, "ACTION", 6) != 0) flood_check (nick, ip, serv, sess, 0); - if (strncasecmp (text, "DCC ", 4) == 0) + if (g_ascii_strncasecmp (text, "DCC ", 4) == 0) /* redo this with handle_quotes TRUE */ process_data_init (word[1], word_eol[1], word, word_eol, TRUE, FALSE); ctcp_handle (sess, to, nick, ip, text, word, word_eol, id); diff --git a/src/common/server.c b/src/common/server.c index db0af9ca..c8cc59e0 100644 --- a/src/common/server.c +++ b/src/common/server.c @@ -26,7 +26,6 @@ #include <stdio.h> #include <string.h> #include <stdlib.h> -#include <unistd.h> #include <errno.h> #include <fcntl.h> @@ -37,6 +36,7 @@ #ifndef WIN32 #include <signal.h> #include <sys/wait.h> +#include <unistd.h> #else #include <winbase.h> #endif @@ -67,7 +67,7 @@ #endif #ifdef WIN32 -#include "identd.c" +#include "identd.h" #endif #ifdef USE_LIBPROXY @@ -238,17 +238,17 @@ tcp_send_len (server *serv, char *buf, int len) dbuf[len + 1] = 0; /* privmsg and notice get a lower priority */ - if (strncasecmp (dbuf + 1, "PRIVMSG", 7) == 0 || - strncasecmp (dbuf + 1, "NOTICE", 6) == 0) + if (g_ascii_strncasecmp (dbuf + 1, "PRIVMSG", 7) == 0 || + g_ascii_strncasecmp (dbuf + 1, "NOTICE", 6) == 0) { dbuf[0] = 1; } else { /* WHO/MODE get the lowest priority */ - if (strncasecmp (dbuf + 1, "WHO ", 4) == 0 || + if (g_ascii_strncasecmp (dbuf + 1, "WHO ", 4) == 0 || /* but only MODE queries, not changes */ - (strncasecmp (dbuf + 1, "MODE", 4) == 0 && + (g_ascii_strncasecmp (dbuf + 1, "MODE", 4) == 0 && strchr (dbuf, '-') == NULL && strchr (dbuf, '+') == NULL)) dbuf[0] = 0; @@ -310,12 +310,17 @@ server_inline (server *serv, char *line, int len) { char *utf_line_allocated = NULL; +#ifdef WIN32 + char *cleaned_line; + int cleaned_len; +#endif + /* Checks whether we're set to use UTF-8 charset */ if (serv->using_irc || /* 1. using CP1252/UTF-8 Hybrid */ (serv->encoding == NULL && prefs.utf8_locale) || /* OR 2. using system default->UTF-8 */ (serv->encoding != NULL && /* OR 3. explicitly set to UTF-8 */ - (strcasecmp (serv->encoding, "UTF8") == 0 || - strcasecmp (serv->encoding, "UTF-8") == 0))) + (g_ascii_strcasecmp (serv->encoding, "UTF8") == 0 || + g_ascii_strcasecmp (serv->encoding, "UTF-8") == 0))) { /* The user has the UTF-8 charset set, either via /charset command or from his UTF-8 locale. Thus, we first try the @@ -396,11 +401,23 @@ server_inline (server *serv, char *line, int len) } } +#ifdef WIN32 + cleaned_line = text_replace_non_bmp (line, len, &cleaned_len); + if (cleaned_line != NULL ) { + line = cleaned_line; + len = cleaned_len; + } +#endif + fe_add_rawlog (serv, line, len, FALSE); /* let proto-irc.c handle it */ serv->p_inline (serv, line, len); +#ifdef WIN32 + g_free (cleaned_line); +#endif + if (utf_line_allocated != NULL) /* only if a special copy was allocated */ g_free (utf_line_allocated); } @@ -844,33 +861,6 @@ server_flush_queue (server *serv) fe_set_throttle (serv); } -#ifdef WIN32 - -static int -waitline2 (GIOChannel *source, char *buf, int bufsize) -{ - int i = 0; - int len; - - while (1) - { - if (g_io_channel_read (source, &buf[i], 1, &len) != G_IO_ERROR_NONE) - return -1; - if (buf[i] == '\n' || bufsize == i + 1) - { - buf[i] = 0; - return i; - } - i++; - } -} - -#else - -#define waitline2(source,buf,size) waitline(serv->childread,buf,size,0) - -#endif - /* connect() successed */ static void @@ -1394,12 +1384,7 @@ base64_encode (char *to, char *from, unsigned int len) static int http_read_line (int print_fd, int sok, char *buf, int len) { -#ifdef WIN32 - /* make sure waitline() uses recv() or it'll fail on win32 */ - len = waitline (sok, buf, len, FALSE); -#else len = waitline (sok, buf, len, TRUE); -#endif if (len >= 1) { /* print the message out (send it to the parent process) */ @@ -1795,7 +1780,11 @@ server_connect (server *serv, char *hostname, int port, int no_login) } #endif serv->childpid = pid; +#ifdef WIN32 + serv->iotag = fe_input_add (serv->childread, FIA_READ|FIA_FD, server_read_child, +#else serv->iotag = fe_input_add (serv->childread, FIA_READ, server_read_child, +#endif serv); } @@ -1835,10 +1824,10 @@ server_set_encoding (server *serv, char *new_encoding) space[0] = 0; /* server_inline() uses these flags */ - if (!strcasecmp (serv->encoding, "CP1255") || - !strcasecmp (serv->encoding, "WINDOWS-1255")) + if (!g_ascii_strcasecmp (serv->encoding, "CP1255") || + !g_ascii_strcasecmp (serv->encoding, "WINDOWS-1255")) serv->using_cp1255 = TRUE; - else if (!strcasecmp (serv->encoding, "IRC")) + else if (!g_ascii_strcasecmp (serv->encoding, "IRC")) serv->using_irc = TRUE; } } diff --git a/src/common/servlist.c b/src/common/servlist.c index 66bc8115..aa32aa4d 100644 --- a/src/common/servlist.c +++ b/src/common/servlist.c @@ -21,7 +21,10 @@ #include <string.h> #include <sys/types.h> #include <sys/stat.h> + +#ifndef WIN32 #include <unistd.h> +#endif #include "xchat.h" #include <glib.h> @@ -585,7 +588,7 @@ servlist_connect_by_netname (session *sess, char *network, gboolean join) { net = list->data; - if (strcasecmp (net->name, network) == 0) + if (g_ascii_strcasecmp (net->name, network) == 0) { servlist_connect (sess, net, join); return 1; @@ -730,7 +733,7 @@ servlist_net_find_from_server (char *server_name) while (slist) { serv = slist->data; - if (strcasecmp (serv->hostname, server_name) == 0) + if (g_ascii_strcasecmp (serv->hostname, server_name) == 0) return net; slist = slist->next; } @@ -1015,7 +1018,7 @@ servlist_check_encoding (char *charset) if (c) c[0] = 0; - if (!strcasecmp (charset, "IRC")) /* special case */ + if (!g_ascii_strcasecmp (charset, "IRC")) /* special case */ { if (c) c[0] = ' '; @@ -1090,8 +1093,8 @@ servlist_save (void) fprintf (fp, "J=%s\n", net->autojoin); if (net->nickserv) fprintf (fp, "B=%s\n", net->nickserv); - if (net->encoding && strcasecmp (net->encoding, "System") && - strcasecmp (net->encoding, "System default")) + if (net->encoding && g_ascii_strcasecmp (net->encoding, "System") && + g_ascii_strcasecmp (net->encoding, "System default")) { fprintf (fp, "E=%s\n", net->encoding); if (!servlist_check_encoding (net->encoding)) diff --git a/src/common/ssl.c b/src/common/ssl.c index a18ad47c..daa7416b 100644 --- a/src/common/ssl.c +++ b/src/common/ssl.c @@ -17,12 +17,12 @@ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA */ +#include "inet.h" /* make it first to avoid macro redefinitions */ #include <openssl/ssl.h> /* SSL_() */ #include <openssl/err.h> /* ERR_() */ #include <time.h> /* asctime() */ #include <string.h> /* strncpy() */ #include "ssl.h" /* struct cert_info */ -#include "inet.h" #include "../../config.h" /* HAVE_SNPRINTF */ #ifndef HAVE_SNPRINTF diff --git a/src/common/text.c b/src/common/text.c index 6b111742..f8afc4b3 100644 --- a/src/common/text.c +++ b/src/common/text.c @@ -19,13 +19,16 @@ #include <stdlib.h> #include <stdio.h> #include <string.h> -#include <unistd.h> #include <ctype.h> #include <time.h> #include <sys/types.h> #include <fcntl.h> #include <sys/stat.h> + +#ifndef WIN32 +#include <unistd.h> #include <sys/mman.h> +#endif #include "xchat.h" #include <glib.h> @@ -271,9 +274,15 @@ scrollback_load (session *sess) char *text; time_t stamp; int lines; + +#ifdef WIN32 + char *cleaned_text; + int cleaned_len; +#else char *map, *end_map; struct stat statbuf; const char *begin, *eol; +#endif if (sess->text_scrollback == SET_DEFAULT) { @@ -293,6 +302,7 @@ scrollback_load (session *sess) if (fh == -1) return; +#ifndef WIN32 if (fstat (fh, &statbuf) < 0) return; @@ -301,7 +311,7 @@ scrollback_load (session *sess) return; end_map = map + statbuf.st_size; - + lines = 0; begin = map; while (begin < end_map) @@ -314,11 +324,11 @@ scrollback_load (session *sess) eol = end_map; n_bytes = MIN (eol - begin, sizeof (buf) - 1); - + strncpy (buf, begin, n_bytes); buf[n_bytes] = 0; - + if (buf[0] == 'T') { if (sizeof (time_t) == 4) @@ -350,6 +360,45 @@ scrollback_load (session *sess) } munmap (map, statbuf.st_size); +#else + lines = 0; + while (waitline (fh, buf, sizeof buf, FALSE) != -1) + { + if (buf[0] == 'T') + { + if (sizeof (time_t) == 4) + stamp = strtoul (buf + 2, NULL, 10); + else + stamp = strtoull (buf + 2, NULL, 10); /* just incase time_t is 64 bits */ + text = strchr (buf + 3, ' '); + if (text) + { + text = strip_color (text + 1, -1, STRIP_COLOR); + cleaned_text = text_replace_non_bmp (text, -1, &cleaned_len); + if (cleaned_text != NULL) + { + g_free (text); + text = cleaned_text; + } + fe_print_text (sess, text, stamp); + g_free (text); + } + lines++; + } + } + + sess->scrollwritten = lines; + + if (lines) + { + text = ctime (&stamp); + text[24] = 0; /* get rid of the \n */ + snprintf (buf, sizeof (buf), "\n*\t%s %s\n\n", _("Loaded log from"), text); + fe_print_text (sess, buf, 0); + /*EMIT_SIGNAL (XP_TE_GENMSG, sess, "*", buf, NULL, NULL, NULL, 0);*/ + } +#endif + close (fh); } @@ -637,6 +686,13 @@ get_stamp_str (char *fmt, time_t tim, char **ret) } len = strftime (dest, sizeof (dest), fmt, localtime (&tim)); +#ifdef WIN32 + if (!len) + { + /* use failsafe format until a correct one is specified */ + len = strftime (dest, sizeof (dest), "[%H:%M]", localtime (&tim)); + } +#endif if (len) { if (prefs.utf8_locale) @@ -812,6 +868,46 @@ iso_8859_1_to_utf8 (unsigned char *text, int len, gsize *bytes_written) return res; } +#ifdef WIN32 +/* replace characters outside of the Basic Multilingual Plane with + * replacement characters (0xFFFD) */ +char * +text_replace_non_bmp (char *utf8_input, int input_length, glong *output_length) +{ + gunichar *ucs4_text; + gunichar suspect; + gchar *utf8_text; + glong ucs4_length; + glong index; + + ucs4_text = g_utf8_to_ucs4_fast (utf8_input, input_length, &ucs4_length); + + /* replace anything not in the Basic Multilingual Plane + * (code points above 0xFFFF) with the replacement + * character */ + for (index = 0; index < ucs4_length; index++) + { + suspect = ucs4_text[index]; + if ((suspect >= 0x1D173 && suspect <= 0x1D17A) + || (suspect >= 0xE0001 && suspect <= 0xE007F)) + { + ucs4_text[index] = 0xFFFD; /* replacement character */ + } + } + + utf8_text = g_ucs4_to_utf8 ( + ucs4_text, + ucs4_length, + NULL, + output_length, + NULL + ); + g_free (ucs4_text); + + return utf8_text; +} +#endif + char * text_validate (char **text, int *len) { diff --git a/src/common/text.h b/src/common/text.h index 150821ae..6d5ac03e 100644 --- a/src/common/text.h +++ b/src/common/text.h @@ -28,6 +28,9 @@ int pevent_load (char *filename); void pevent_make_pntevts (void); void text_emit (int index, session *sess, char *a, char *b, char *c, char *d); int text_emit_by_name (char *name, session *sess, char *a, char *b, char *c, char *d); +#ifdef WIN32 +char *text_replace_non_bmp (char *utf8_input, int input_length, glong *output_length); +#endif char *text_validate (char **text, int *len); int get_stamp_str (char *fmt, time_t tim, char **ret); void format_event (session *sess, int index, char **args, char *o, int sizeofo, unsigned int stripcolor_args); diff --git a/src/common/thread.c b/src/common/thread.c new file mode 100644 index 00000000..02b17cfb --- /dev/null +++ b/src/common/thread.c @@ -0,0 +1,33 @@ +#include <fcntl.h> +#include "thread.h" + +thread * +thread_new (void) +{ + thread *th; + + th = calloc (1, sizeof (*th)); + if (!th) + { + return NULL; + } + + if (_pipe (th->pipe_fd, 4096, _O_BINARY) == -1) + { + free (th); + return NULL; + } + + return th; +} + +int +thread_start (thread *th, void *(*start_routine)(void *), void *arg) +{ + DWORD id; + + CloseHandle (CreateThread (NULL, 0, (LPTHREAD_START_ROUTINE)start_routine, arg, 0, (DWORD *)&id)); + th->threadid = id; + + return 1; +} diff --git a/src/common/thread.h b/src/common/thread.h new file mode 100644 index 00000000..7ca0f937 --- /dev/null +++ b/src/common/thread.h @@ -0,0 +1,10 @@ +#include <windows.h> + +typedef struct +{ + DWORD threadid; + int pipe_fd[2]; +} thread; + +thread *thread_new (void); +int thread_start (thread *th, void *(*start_routine)(void *), void *arg); diff --git a/src/common/url.c b/src/common/url.c index b83732d1..9fa2d75c 100644 --- a/src/common/url.c +++ b/src/common/url.c @@ -82,7 +82,7 @@ url_find (char *urltext) { int pos; - if (tree_find (url_tree, urltext, (tree_cmp_func *)strcasecmp, NULL, &pos)) + if (tree_find (url_tree, urltext, (tree_cmp_func *)g_ascii_strcasecmp, NULL, &pos)) return 1; return 0; } @@ -117,7 +117,7 @@ url_add (char *urltext, int len) } if (!url_tree) - url_tree = tree_new ((tree_cmp_func *)strcasecmp, NULL); + url_tree = tree_new ((tree_cmp_func *)g_ascii_strcasecmp, NULL); size = tree_size (url_tree); /* 0 is unlimited */ @@ -186,7 +186,7 @@ url_check_word (char *word, int len) { int j; - /* This is pretty much strncasecmp(). */ + /* This is pretty much g_ascii_strncasecmp(). */ for (j = 0; j < l; j++) { unsigned char c = word[j]; @@ -238,7 +238,7 @@ url_check_word (char *word, int len) const unsigned char *p = &word[len - l]; int j; - /* This is pretty much strncasecmp(). */ + /* This is pretty much g_ascii_strncasecmp(). */ for (j = 0; j < l; j++) { if (tolower(p[j]) != suffix[i].s[j]) diff --git a/src/common/util.c b/src/common/util.c index 5a0ab6c5..fb4cd23e 100644 --- a/src/common/util.c +++ b/src/common/util.c @@ -16,26 +16,32 @@ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA */ +#define WANTSOCKET +#include "inet.h" /* make it first to avoid macro redefinitions */ + #define __APPLE_API_STRICT_CONFORMANCE #define _FILE_OFFSET_BITS 64 #include <stdio.h> -#include <unistd.h> #include <string.h> #include <stdlib.h> #include <sys/types.h> #include <sys/stat.h> + #ifdef WIN32 #include <sys/timeb.h> #include <process.h> +#include <io.h> +#include "../dirent/dirent-win32.h" #else -#include <sys/types.h> +#include <unistd.h> #include <pwd.h> #include <sys/time.h> #include <sys/utsname.h> +#include <dirent.h> #endif + #include <fcntl.h> -#include <dirent.h> #include <errno.h> #include "xchat.h" #include "xchatc.h" @@ -44,9 +50,6 @@ #include "util.h" #include "../../config.h" -#define WANTSOCKET -#include "inet.h" - #if defined (USING_FREEBSD) || defined (__APPLE__) #include <sys/sysctl.h> #endif @@ -280,7 +283,7 @@ nocasestrstr (const char *s, const char *wanted) if (len == 0) return (char *)s; - while (rfc_tolower(*s) != rfc_tolower(*wanted) || strncasecmp (s, wanted, len)) + while (rfc_tolower(*s) != rfc_tolower(*wanted) || g_ascii_strncasecmp (s, wanted, len)) if (*s++ == '\0') return (char *)NULL; return (char *)s; @@ -383,6 +386,28 @@ waitline (int sok, char *buf, int bufsize, int use_recv) } } +#ifdef WIN32 +/* waitline2 using win32 file descriptor and glib instead of _read. win32 can't _read() sok! */ +int +waitline2 (GIOChannel *source, char *buf, int bufsize) +{ + int i = 0; + int len; + + while (1) + { + if (g_io_channel_read (source, &buf[i], 1, &len) != G_IO_ERROR_NONE) + return -1; + if (buf[i] == '\n' || bufsize == i + 1) + { + buf[i] = 0; + return i; + } + i++; + } +} +#endif + /* checks for "~" in a file and expands */ char * @@ -624,30 +649,110 @@ get_mhz (void) return 0; /* fails on Win9x */ } +int +get_cpu_arch (void) +{ + SYSTEM_INFO si; + + GetSystemInfo (&si); + + if (si.wProcessorArchitecture == 9) + { + return 64; + } + else + { + return 86; + } +} + char * get_cpu_str (void) { static char verbuf[64]; - OSVERSIONINFO osvi; - SYSTEM_INFO si; + static char winver[20]; + OSVERSIONINFOEX osvi; double mhz; - osvi.dwOSVersionInfoSize = sizeof (OSVERSIONINFO); + osvi.dwOSVersionInfoSize = sizeof (OSVERSIONINFOEX); GetVersionEx (&osvi); - GetSystemInfo (&si); + + switch (osvi.dwMajorVersion) + { + case 5: + switch (osvi.dwMinorVersion) + { + case 1: + strcpy (winver, "XP"); + break; + case 2: + if (osvi.wProductType == VER_NT_WORKSTATION) + { + strcpy (winver, "XP x64 Edition"); + } + else + { + if (GetSystemMetrics(SM_SERVERR2) == 0) + { + strcpy (winver, "Server 2003"); + } + else + { + strcpy (winver, "Server 2003 R2"); + } + } + break; + } + break; + case 6: + switch (osvi.dwMinorVersion) + { + case 0: + if (osvi.wProductType == VER_NT_WORKSTATION) + { + strcpy (winver, "Vista"); + } + else + { + strcpy (winver, "Server 2008"); + } + break; + case 1: + if (osvi.wProductType == VER_NT_WORKSTATION) + { + strcpy (winver, "7"); + } + else + { + strcpy (winver, "Server 2008 R2"); + } + break; + case 2: + if (osvi.wProductType == VER_NT_WORKSTATION) + { + strcpy (winver, "8"); + } + else + { + strcpy (winver, "8 Server"); + } + break; + } + break; + } mhz = get_mhz (); if (mhz) { double cpuspeed = ( mhz > 1000 ) ? mhz / 1000 : mhz; const char *cpuspeedstr = ( mhz > 1000 ) ? "GHz" : "MHz"; - sprintf (verbuf, "Windows %ld.%ld [i%d86/%.2f%s]", - osvi.dwMajorVersion, osvi.dwMinorVersion, si.wProcessorLevel, - cpuspeed, cpuspeedstr); - } else - sprintf (verbuf, "Windows %ld.%ld [i%d86]", - osvi.dwMajorVersion, osvi.dwMinorVersion, si.wProcessorLevel); - + sprintf (verbuf, "Windows %s [%.2f%s]", winver, cpuspeed, cpuspeedstr); + } + else + { + sprintf (verbuf, "Windows %s", winver); + } + return verbuf; } @@ -840,7 +945,7 @@ typedef struct static int country_compare (const void *a, const void *b) { - return strcasecmp (a, ((domain_t *)b)->code); + return g_ascii_strcasecmp (a, ((domain_t *)b)->code); } static const domain_t domain[] = @@ -1727,3 +1832,55 @@ safe_strcpy (char *dest, const char *src, int bytes_left) } } } + +void +canonalize_key (char *key) +{ + char *pos, token; + + for (pos = key; (token = *pos) != 0; pos++) + { + if (token != '_' && (token < '0' || token > '9') && (token < 'A' || token > 'Z') && (token < 'a' || token > 'z')) + { + *pos = '_'; + } + else + { + *pos = tolower(token); + } + } +} + +int +portable_mode () +{ +#ifdef WIN32 + if ((_access( "portable-mode", 0 )) != -1) + { + return 1; + } + else + { + return 0; + } +#else + return 0; +#endif +} + +int +xtray_mode () +{ +#ifdef WIN32 + if ((_access( "plugins/xtray.dll", 0 )) != -1) + { + return 1; + } + else + { + return 0; + } +#else + return 0; +#endif +} diff --git a/src/common/util.h b/src/common/util.h index fce45def..82d74366 100644 --- a/src/common/util.h +++ b/src/common/util.h @@ -43,6 +43,12 @@ int strip_color2 (const char *src, int len, char *dst, int flags); int strip_hidden_attribute (char *src, char *dst); char *errorstring (int err); int waitline (int sok, char *buf, int bufsize, int); +#ifdef WIN32 +int waitline2 (GIOChannel *source, char *buf, int bufsize); +int get_cpu_arch (void); +#else +#define waitline2(source,buf,size) waitline(serv->childread,buf,size,0) +#endif unsigned long make_ping_time (void); void move_file_utf8 (char *src_dir, char *dst_dir, char *fname, int dccpermissions); int mkdir_utf8 (char *dir); @@ -50,5 +56,8 @@ int token_foreach (char *str, char sep, int (*callback) (char *str, void *ud), v guint32 str_hash (const char *key); guint32 str_ihash (const unsigned char *key); void safe_strcpy (char *dest, const char *src, int bytes_left); +void canonalize_key (char *key); +int portable_mode (); +int xtray_mode (); #endif diff --git a/src/common/xchat-plugin.h b/src/common/xchat-plugin.h index 30b19295..1b7da8fb 100644 --- a/src/common/xchat-plugin.h +++ b/src/common/xchat-plugin.h @@ -137,6 +137,21 @@ struct _xchat_plugin int flags); void (*xchat_free) (xchat_plugin *ph, void *ptr); + int (*xchat_pluginpref_set_str) (xchat_plugin *ph, + const char *var, + const char *value); + int (*xchat_pluginpref_get_str) (xchat_plugin *ph, + const char *var, + char *dest); + int (*xchat_pluginpref_set_int) (xchat_plugin *ph, + const char *var, + int value); + int (*xchat_pluginpref_get_int) (xchat_plugin *ph, + const char *var); + int (*xchat_pluginpref_delete) (xchat_plugin *ph, + const char *var); + int (*xchat_pluginpref_list) (xchat_plugin *ph, + char *dest); }; #endif @@ -292,6 +307,32 @@ void xchat_free (xchat_plugin *ph, void *ptr); +int +xchat_pluginpref_set_str (xchat_plugin *ph, + const char *var, + const char *value); + +int +xchat_pluginpref_get_str (xchat_plugin *ph, + const char *var, + char *dest); + +int +xchat_pluginpref_set_int (xchat_plugin *ph, + const char *var, + int value); +int +xchat_pluginpref_get_int (xchat_plugin *ph, + const char *var); + +int +xchat_pluginpref_delete (xchat_plugin *ph, + const char *var); + +int +xchat_pluginpref_list (xchat_plugin *ph, + char *dest); + #if !defined(PLUGIN_C) && defined(WIN32) #ifndef XCHAT_PLUGIN_HANDLE #define XCHAT_PLUGIN_HANDLE (ph) @@ -326,6 +367,12 @@ xchat_free (xchat_plugin *ph, #define xchat_send_modes ((XCHAT_PLUGIN_HANDLE)->xchat_send_modes) #define xchat_strip ((XCHAT_PLUGIN_HANDLE)->xchat_strip) #define xchat_free ((XCHAT_PLUGIN_HANDLE)->xchat_free) +#define xchat_pluginpref_set_str ((XCHAT_PLUGIN_HANDLE)->xchat_pluginpref_set_str) +#define xchat_pluginpref_get_str ((XCHAT_PLUGIN_HANDLE)->xchat_pluginpref_get_str) +#define xchat_pluginpref_set_int ((XCHAT_PLUGIN_HANDLE)->xchat_pluginpref_set_int) +#define xchat_pluginpref_get_int ((XCHAT_PLUGIN_HANDLE)->xchat_pluginpref_get_int) +#define xchat_pluginpref_delete ((XCHAT_PLUGIN_HANDLE)->xchat_pluginpref_delete) +#define xchat_pluginpref_list ((XCHAT_PLUGIN_HANDLE)->xchat_pluginpref_list) #endif #ifdef __cplusplus diff --git a/src/common/xchat.c b/src/common/xchat.c index afac9a0e..845f262b 100644 --- a/src/common/xchat.c +++ b/src/common/xchat.c @@ -22,14 +22,16 @@ #include <time.h> #include <sys/types.h> #include <sys/stat.h> -#include <unistd.h> #define WANTSOCKET #include "inet.h" -#ifndef WIN32 +#ifdef WIN32 +#include <windows.h> +#else #include <sys/wait.h> #include <signal.h> +#include <unistd.h> #endif #include "xchat.h" @@ -590,6 +592,7 @@ static char defaultconf_commands[] = "NAME DMSG\n" "CMD msg =%2 &3\n\n"\ "NAME EXIT\n" "CMD quit\n\n"\ "NAME GREP\n" "CMD lastlog -r &2\n\n"\ + "NAME IGNALL\n" "CMD ignore %2!*@* ALL\n\n"\ "NAME J\n" "CMD join &2\n\n"\ "NAME KILL\n" "CMD quote KILL %2 :&3\n\n"\ "NAME LEAVE\n" "CMD part &2\n\n"\ @@ -899,11 +902,55 @@ xchat_execv (char * const argv[]) #endif } +#ifdef WIN32 +static void +xchat_restore_window (HWND xchat_window) +{ + /* ShowWindow (xchat_window, SW_RESTORE); another way, but works worse */ + SendMessage (xchat_window, WM_SYSCOMMAND, SC_RESTORE, 0); + SetForegroundWindow (xchat_window); +} + +BOOL CALLBACK +enum_windows_impl (HWND current_window, LPARAM lParam) +{ + TCHAR window_name[10]; + TCHAR module_path[1024]; + ZeroMemory (&window_name, sizeof (window_name)); + + if (!current_window) + { + return TRUE; + } + + GetWindowText (current_window, window_name, 10); + if (stricmp (window_name, "xchat-wdk") == 0) + { + /* use a separate if block, this way we don't have to call GetWindowModuleFileName() for each hit */ + ZeroMemory (&module_path, sizeof (module_path)); + GetWindowModuleFileName (current_window, module_path, sizeof (module_path)); + + if (strstr (module_path, "xchat.exe")) /* We've found it, stop */ + { + xchat_restore_window (current_window); + return FALSE; + } + } + + return TRUE; /* Keep searching */ + +} +#endif + int main (int argc, char *argv[]) { int ret; - + +#ifdef WIN32 + HANDLE mutex; +#endif + srand (time (0)); /* CL: do this only once! */ #ifdef SOCKS @@ -920,6 +967,34 @@ main (int argc, char *argv[]) load_config (); +#ifdef WIN32 + if (prefs.gui_one_instance && !portable_mode ()) + { + DWORD error; + + mutex = CreateMutex (NULL, TRUE, "Local\xchat"); + error = GetLastError (); + + if (error == ERROR_ALREADY_EXISTS || mutex == NULL) + { + /* restoring the XChat window from the tray via the taskbar icon + * only works correctly when X-Tray is used, but it's not a big deal + * since you can only minimize XChat to tray via the taskbar if you + * use X-Tray*/ + if (xtray_mode ()) + { + /* FindWindow() doesn't support wildcards so we check all the open windows */ + EnumWindows (enum_windows_impl, NULL); + return 0; + } + else + { + return 1; + } + } + } +#endif + #ifdef USE_LIBPROXY libproxy_factory = px_proxy_factory_new(); #endif @@ -945,6 +1020,11 @@ main (int argc, char *argv[]) #ifdef WIN32 WSACleanup (); + + if (prefs.gui_one_instance && !portable_mode ()) + { + CloseHandle (mutex); + } #endif return 0; diff --git a/src/common/xchat.h b/src/common/xchat.h index 6e31d7c5..85c20186 100644 --- a/src/common/xchat.h +++ b/src/common/xchat.h @@ -13,7 +13,7 @@ #endif #ifndef HAVE_VSNPRINTF -#define vsnprintf g_vsnprintf +#define vsnprintf _vsnprintf #endif #ifdef USE_DEBUG @@ -41,8 +41,8 @@ void *xchat_realloc (char *old, int len, char *file, int line); #ifdef __EMX__ /* for o/s 2 */ #define OFLAGS O_BINARY -#define strcasecmp stricmp -#define strncasecmp strnicmp +#define g_ascii_strcasecmp stricmp +#define g_ascii_strncasecmp strnicmp #define PATH_MAX MAXPATHLEN #define FILEPATH_LEN_MAX MAXPATHLEN #endif @@ -54,7 +54,7 @@ void *xchat_realloc (char *old, int len, char *file, int line); #ifdef WIN32 /* for win32 */ #define OFLAGS O_BINARY -#define sleep(t) _sleep(t*1000) +#define sleep(t) Sleep(t*1000) #include <direct.h> #define F_OK 0 #define X_OK 1 @@ -113,8 +113,16 @@ struct xchatprefs char awayreason[256]; char quitreason[256]; char partreason[256]; +#ifdef WIN32 + char font_normal[4 * FONTNAMELEN + 1]; + char font_main[FONTNAMELEN + 1]; + char font_alternative[3 * FONTNAMELEN + 1]; +#else char font_normal[FONTNAMELEN + 1]; +#endif char doubleclickuser[256]; + char gui_license[64]; + char spell_langs[64]; char sounddir[PATHLEN + 1]; char soundcmd[PATHLEN + 1]; char background[PATHLEN + 1]; @@ -152,6 +160,7 @@ struct xchatprefs int gui_pane_left_size; int gui_pane_right_size; + int gui_pane_right_size_min; int gui_ulist_pos; int tab_pos; @@ -178,6 +187,9 @@ struct xchatprefs int gui_usermenu; int gui_join_dialog; int gui_quit_dialog; +#ifdef WIN32 + int gui_one_instance; +#endif int dialog_left; int dialog_top; int dialog_width; @@ -205,6 +217,9 @@ struct xchatprefs unsigned int wallops; unsigned int skipmotd; unsigned int autorejoin; + unsigned int autocopy_text; + unsigned int autocopy_stamp; + unsigned int autocopy_color; unsigned int colorednicks; unsigned int chanmodebuttons; unsigned int userlistbuttons; @@ -292,7 +307,12 @@ struct xchatprefs unsigned int wait_on_exit; unsigned int confmode; unsigned int utf8_locale; +#ifdef WIN32 unsigned int identd; + unsigned int emoticons; + unsigned int tab_icons; + unsigned int tab_xp; +#endif unsigned int ctcp_number_limit; /*flood */ unsigned int ctcp_time_limit; /*seconds of floods */ @@ -306,6 +326,11 @@ struct xchatprefs This is so that we continue using internal defaults (which can change in the next release) until the user edits them. */ unsigned int save_pevents:1; + unsigned int text_search_case_match; + unsigned int text_search_backward; + unsigned int text_search_highlight_all; + unsigned int text_search_follow; + unsigned int text_search_regexp; }; /* Session types */ diff --git a/src/dirent/dirent-win32.c b/src/dirent/dirent-win32.c new file mode 100644 index 00000000..273c6732 --- /dev/null +++ b/src/dirent/dirent-win32.c @@ -0,0 +1,199 @@ +/***************************************************************************** + * dirent.h - dirent API for Microsoft Visual Studio + * + * Copyright (C) 2006 Toni Ronkko + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the + * ``Software''), to deal in the Software without restriction, including + * without limitation the rights to use, copy, modify, merge, publish, + * distribute, sublicense, and/or sell copies of the Software, and to + * permit persons to whom the Software is furnished to do so, subject to + * the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED ``AS IS'', WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL TONI RONKKO BE LIABLE FOR ANY CLAIM, DAMAGES OR + * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + * + * Dec 15, 2009, John Cunningham + * Added rewinddir member function + * + * Jan 18, 2008, Toni Ronkko + * Using FindFirstFileA and WIN32_FIND_DATAA to avoid converting string + * between multi-byte and unicode representations. This makes the + * code simpler and also allows the code to be compiled under MingW. Thanks + * to Azriel Fasten for the suggestion. + * + * Mar 4, 2007, Toni Ronkko + * Bug fix: due to the strncpy_s() function this file only compiled in + * Visual Studio 2005. Using the new string functions only when the + * compiler version allows. + * + * Nov 2, 2006, Toni Ronkko + * Major update: removed support for Watcom C, MS-DOS and Turbo C to + * simplify the file, updated the code to compile cleanly on Visual + * Studio 2005 with both unicode and multi-byte character strings, + * removed rewinddir() as it had a bug. + * + * Aug 20, 2006, Toni Ronkko + * Removed all remarks about MSVC 1.0, which is antiqued now. Simplified + * comments by removing SGML tags. + * + * May 14 2002, Toni Ronkko + * Embedded the function definitions directly to the header so that no + * source modules need to be included in the Visual Studio project. Removed + * all the dependencies to other projects so that this very header can be + * used independently. + * + * May 28 1998, Toni Ronkko + * First version. + *****************************************************************************/ + +#include "dirent-win32.h" + +/* Use the new safe string functions introduced in Visual Studio 2005 */ +#if defined(_MSC_VER) && _MSC_VER >= 1400 +# define STRNCPY(dest,src,size) strncpy_s((dest),(size),(src),_TRUNCATE) +#else +# define STRNCPY(dest,src,size) strncpy((dest),(src),(size)) +#endif + + +/***************************************************************************** + * Open directory stream DIRNAME for read and return a pointer to the + * internal working area that is used to retrieve individual directory + * entries. + */ +DIR *opendir(const char *dirname) +{ + DIR *dirp; + assert (dirname != NULL); + assert (strlen (dirname) < MAX_PATH); + + /* construct new DIR structure */ + dirp = (DIR*) malloc (sizeof (struct DIR)); + if (dirp != NULL) { + char *p; + + /* take directory name... */ + STRNCPY (dirp->patt, dirname, sizeof(dirp->patt)); + dirp->patt[MAX_PATH] = '\0'; + + /* ... and append search pattern to it */ + p = strchr (dirp->patt, '\0'); + if (dirp->patt < p && *(p-1) != '\\' && *(p-1) != ':') { + *p++ = '\\'; + } + *p++ = '*'; + *p = '\0'; + + /* open stream and retrieve first file */ + dirp->search_handle = FindFirstFileA (dirp->patt, &dirp->current.data); + if (dirp->search_handle == INVALID_HANDLE_VALUE) { + /* invalid search pattern? */ + free (dirp); + return NULL; + } + + /* there is an un-processed directory entry in memory now */ + dirp->cached = 1; + } + + return dirp; +} + + +/***************************************************************************** + * Read a directory entry, and return a pointer to a dirent structure + * containing the name of the entry in d_name field. Individual directory + * entries returned by this very function include regular files, + * sub-directories, pseudo-directories "." and "..", but also volume labels, + * hidden files and system files may be returned. + */ +struct dirent *readdir(DIR *dirp) +{ + assert (dirp != NULL); + + if (dirp->search_handle == INVALID_HANDLE_VALUE) { + /* directory stream was opened/rewound incorrectly or ended normally */ + return NULL; + } + + /* get next directory entry */ + if (dirp->cached != 0) { + /* a valid directory entry already in memory */ + dirp->cached = 0; + } else { + /* read next directory entry from disk */ + if (FindNextFileA (dirp->search_handle, &dirp->current.data) == FALSE) { + /* the very last file has been processed or an error occured */ + FindClose (dirp->search_handle); + dirp->search_handle = INVALID_HANDLE_VALUE; + return NULL; + } + } + + /* copy as a multibyte character string */ + STRNCPY ( dirp->current.d_name, + dirp->current.data.cFileName, + sizeof(dirp->current.d_name) ); + dirp->current.d_name[MAX_PATH] = '\0'; + + return &dirp->current; +} + + +/***************************************************************************** + * Close directory stream opened by opendir() function. Close of the + * directory stream invalidates the DIR structure as well as any previously + * read directory entry. + */ +int closedir(DIR *dirp) +{ + assert (dirp != NULL); + + /* release search handle */ + if (dirp->search_handle != INVALID_HANDLE_VALUE) { + FindClose (dirp->search_handle); + dirp->search_handle = INVALID_HANDLE_VALUE; + } + + /* release directory handle */ + free (dirp); + return 0; +} + + +/***************************************************************************** + * Resets the position of the directory stream to which dirp refers to the + * beginning of the directory. It also causes the directory stream to refer + * to the current state of the corresponding directory, as a call to opendir() + * would have done. If dirp does not refer to a directory stream, the effect + * is undefined. + */ +void rewinddir(DIR* dirp) +{ + /* release search handle */ + if (dirp->search_handle != INVALID_HANDLE_VALUE) { + FindClose (dirp->search_handle); + dirp->search_handle = INVALID_HANDLE_VALUE; + } + + /* open new search handle and retrieve first file */ + dirp->search_handle = FindFirstFileA (dirp->patt, &dirp->current.data); + if (dirp->search_handle == INVALID_HANDLE_VALUE) { + /* invalid search pattern? */ + free (dirp); + return; + } + + /* there is an un-processed directory entry in memory now */ + dirp->cached = 1; +} diff --git a/src/dirent/dirent-win32.h b/src/dirent/dirent-win32.h new file mode 100644 index 00000000..cbb753e6 --- /dev/null +++ b/src/dirent/dirent-win32.h @@ -0,0 +1,28 @@ +#ifndef DIRENT_H +#define DIRENT_H + +#include <windows.h> +#include <string.h> +#include <assert.h> + +typedef struct dirent +{ + char d_name[MAX_PATH + 1]; /* current dir entry (multi-byte char string) */ + WIN32_FIND_DATAA data; /* file attributes */ +} dirent; + +typedef struct DIR +{ + dirent current; /* Current directory entry */ + int cached; /* Indicates un-processed entry in memory */ + HANDLE search_handle; /* File search handle */ + char patt[MAX_PATH + 3]; /* search pattern (3 = pattern + "\\*\0") */ +} DIR; + +/* Forward declarations */ +DIR *opendir (const char *dirname); +struct dirent *readdir (DIR *dirp); +int closedir (DIR *dirp); +void rewinddir(DIR* dirp); + +#endif /*DIRENT_H*/ diff --git a/src/dirent/dirent.vcxproj b/src/dirent/dirent.vcxproj new file mode 100644 index 00000000..5ae75f57 --- /dev/null +++ b/src/dirent/dirent.vcxproj @@ -0,0 +1,100 @@ +<?xml version="1.0" encoding="utf-8"?> +<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <ItemGroup Label="ProjectConfigurations"> + <ProjectConfiguration Include="Release|Win32"> + <Configuration>Release</Configuration> + <Platform>Win32</Platform> + </ProjectConfiguration> + <ProjectConfiguration Include="Release|x64"> + <Configuration>Release</Configuration> + <Platform>x64</Platform> + </ProjectConfiguration> + </ItemGroup> + <ItemGroup> + <ClInclude Include="dirent-win32.h" /> + </ItemGroup> + <ItemGroup> + <ClCompile Include="dirent-win32.c" /> + </ItemGroup> + <PropertyGroup Label="Globals"> + <ProjectGuid>{98B56DF9-E4F1-4696-A565-5F7823CF214D}</ProjectGuid> + <Keyword>Win32Proj</Keyword> + <RootNamespace>dirent</RootNamespace> + </PropertyGroup> + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" /> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration"> + <ConfigurationType>StaticLibrary</ConfigurationType> + <UseDebugLibraries>false</UseDebugLibraries> + <WholeProgramOptimization>true</WholeProgramOptimization> + <CharacterSet>MultiByte</CharacterSet> + <PlatformToolset>WDK7</PlatformToolset> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration"> + <ConfigurationType>StaticLibrary</ConfigurationType> + <UseDebugLibraries>false</UseDebugLibraries> + <WholeProgramOptimization>true</WholeProgramOptimization> + <CharacterSet>MultiByte</CharacterSet> + <PlatformToolset>WDK7</PlatformToolset> + </PropertyGroup> + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" /> + <ImportGroup Label="ExtensionSettings"> + </ImportGroup> + <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> + <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> + <Import Project="..\..\win32\xchat.props" /> + </ImportGroup> + <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets"> + <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> + <Import Project="..\..\win32\xchat.props" /> + </ImportGroup> + <PropertyGroup Label="UserMacros" /> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> + <TargetName>$(ProjectName)-win32</TargetName> + <OutDir>$(SolutionDir)build\$(PlatformName)\bin</OutDir> + <IntDir>$(SolutionDir)build\$(PlatformName)\obj\$(ProjectName)</IntDir> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'"> + <TargetName>$(ProjectName)-win32</TargetName> + <OutDir>$(SolutionDir)build\$(PlatformName)\bin</OutDir> + <IntDir>$(SolutionDir)build\$(PlatformName)\obj\$(ProjectName)</IntDir> + </PropertyGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> + <ClCompile> + <WarningLevel>Level1</WarningLevel> + <PrecompiledHeader> + </PrecompiledHeader> + <Optimization>MaxSpeed</Optimization> + <FunctionLevelLinking>true</FunctionLevelLinking> + <IntrinsicFunctions>true</IntrinsicFunctions> + <PreprocessorDefinitions>WIN32;NDEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <MultiProcessorCompilation>true</MultiProcessorCompilation> + </ClCompile> + <Link> + <SubSystem>Windows</SubSystem> + <GenerateDebugInformation>true</GenerateDebugInformation> + <EnableCOMDATFolding>true</EnableCOMDATFolding> + <OptimizeReferences>true</OptimizeReferences> + </Link> + </ItemDefinitionGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'"> + <ClCompile> + <WarningLevel>Level1</WarningLevel> + <PrecompiledHeader> + </PrecompiledHeader> + <Optimization>MaxSpeed</Optimization> + <FunctionLevelLinking>true</FunctionLevelLinking> + <IntrinsicFunctions>true</IntrinsicFunctions> + <PreprocessorDefinitions>WIN32;_WIN64;NDEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <MultiProcessorCompilation>true</MultiProcessorCompilation> + </ClCompile> + <Link> + <SubSystem>Windows</SubSystem> + <GenerateDebugInformation>true</GenerateDebugInformation> + <EnableCOMDATFolding>true</EnableCOMDATFolding> + <OptimizeReferences>true</OptimizeReferences> + </Link> + </ItemDefinitionGroup> + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" /> + <ImportGroup Label="ExtensionTargets"> + </ImportGroup> +</Project> \ No newline at end of file diff --git a/src/dirent/dirent.vcxproj.filters b/src/dirent/dirent.vcxproj.filters new file mode 100644 index 00000000..d889015d --- /dev/null +++ b/src/dirent/dirent.vcxproj.filters @@ -0,0 +1,23 @@ +<?xml version="1.0" encoding="utf-8"?> +<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <ItemGroup> + <Filter Include="Source Files"> + <UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier> + <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions> + </Filter> + <Filter Include="Header Files"> + <UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier> + <Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions> + </Filter> + </ItemGroup> + <ItemGroup> + <ClInclude Include="dirent-win32.h"> + <Filter>Header Files</Filter> + </ClInclude> + </ItemGroup> + <ItemGroup> + <ClCompile Include="dirent-win32.c"> + <Filter>Source Files</Filter> + </ClCompile> + </ItemGroup> +</Project> \ No newline at end of file diff --git a/src/dirent/dirent.vcxproj.user b/src/dirent/dirent.vcxproj.user new file mode 100644 index 00000000..695b5c78 --- /dev/null +++ b/src/dirent/dirent.vcxproj.user @@ -0,0 +1,3 @@ +<?xml version="1.0" encoding="utf-8"?> +<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> +</Project> \ No newline at end of file diff --git a/src/fe-gtk/Makefile.am b/src/fe-gtk/Makefile.am index 7db38096..da36ed57 100644 --- a/src/fe-gtk/Makefile.am +++ b/src/fe-gtk/Makefile.am @@ -10,8 +10,8 @@ EXTRA_DIST = \ about.h ascii.h banlist.h chanlist.h chanview.h chanview-tabs.c \ chanview-tree.c custom-list.h editlist.h fe-gtk.h fkeys.h gtkutil.h joind.h \ maingui.h menu.h mmx_cmod.S mmx_cmod.h notifygui.h palette.h pixmaps.h \ - plugin-tray.h plugingui.c plugingui.h rawlog.h search.h sexy-spell-entry.h \ - textgui.h urlgrab.h userlistgui.h xtext.h + plugin-tray.h plugingui.c plugingui.h rawlog.h search.h sexy-iso-codes.h \ + sexy-spell-entry.h sexy-marshal.h textgui.h urlgrab.h userlistgui.h xtext.h if USE_MMX mmx_cmod_S = mmx_cmod.S @@ -22,11 +22,12 @@ plugingui_c = plugingui.c endif if USE_LIBSEXY -sexy_spell_entry_c = sexy-spell-entry.c +sexy_spell = \ + sexy-iso-codes.c sexy-marshal.c sexy-spell-entry.c endif xchat_SOURCES = about.c ascii.c banlist.c chanlist.c chanview.c custom-list.c \ dccgui.c editlist.c fe-gtk.c fkeys.c gtkutil.c ignoregui.c joind.c menu.c \ maingui.c $(mmx_cmod_S) notifygui.c palette.c pixmaps.c plugin-tray.c $(plugingui_c) \ - rawlog.c search.c servlistgui.c setup.c $(sexy_spell_entry_c) textgui.c \ + rawlog.c search.c servlistgui.c setup.c $(sexy_spell) textgui.c \ urlgrab.c userlistgui.c xtext.c diff --git a/src/fe-gtk/about.c b/src/fe-gtk/about.c index 60700aec..dc1cbf08 100644 --- a/src/fe-gtk/about.c +++ b/src/fe-gtk/about.c @@ -39,6 +39,7 @@ #include "../common/xchat.h" #include "../common/util.h" +#include "../common/xchatc.h" #include "palette.h" #include "pixmaps.h" #include "gtkutil.h" @@ -69,7 +70,7 @@ menu_about (GtkWidget * wid, gpointer sess) "(C) 1998-2005 Peter Zelezny", author, buf, 0)); } -#else +#endif static GtkWidget *about = 0; @@ -95,7 +96,7 @@ menu_about (GtkWidget * wid, gpointer sess) } about = gtk_dialog_new (); - gtk_window_set_position (GTK_WINDOW (about), GTK_WIN_POS_CENTER); + gtk_window_set_position (GTK_WINDOW (about), GTK_WIN_POS_CENTER_ON_PARENT); gtk_window_set_resizable (GTK_WINDOW (about), FALSE); gtk_window_set_title (GTK_WINDOW (about), _("About "DISPLAY_NAME)); if (parent_window) @@ -113,36 +114,47 @@ menu_about (GtkWidget * wid, gpointer sess) gtk_container_add (GTK_CONTAINER (vbox), label); g_get_charset (&locale); (snprintf) (buf, sizeof (buf), - "<span size=\"x-large\"><b>"DISPLAY_NAME" "PACKAGE_VERSION"</b></span>\n\n" - "%s\n\n" + "<span size=\"x-large\"><b>"DISPLAY_NAME" "PACKAGE_VERSION"</b></span>\n" #ifdef WIN32 - /* leave this message to avoid time wasting bug reports! */ - "This version is unofficial and comes with no support.\n\n" -#endif - "%s\n" + "%s%s%s" + "\n<b>XChat Release</b>: "XCHAT_RELEASE"\n\n" + "<b>OS</b>: %s\n" "<b>Charset</b>: %s " -#ifdef WIN32 "<b>GTK+</b>: %i.%i.%i\n" + "<b>Compiled</b>: "__DATE__"\n" + "<b>Portable Mode</b>: %s\n" + "<b>Build Type</b>: x%d\n\n" + "<small>This version is unofficial and comes with no support.\n" + "\302\251 1998-2010 Peter \305\275elezn\303\275 <zed@xchat.org>" + /* "\n<a href=\"http://code.google.com/p/xchat-wdk/\">http://code.google.com/p/xchat-wdk/</a>" this is broken in gtk ATM */ + "</small>", + (strcmp (prefs.gui_license, "") ? "<span size=\"x-large\">" : ""), + (strcmp (prefs.gui_license, "") ? prefs.gui_license : ""), + (strcmp (prefs.gui_license, "") ? "</span>\n" : ""), + get_cpu_str (), + locale, + gtk_major_version, + gtk_minor_version, + gtk_micro_version, + (portable_mode () ? "Yes" : "No"), + get_cpu_arch () #else + "\n%s\n\n" + "%s\n" + "<b>Charset</b>: %s " "<b>Renderer</b>: %s\n" -#endif "<b>Compiled</b>: "__DATE__"\n\n" "<small>\302\251 1998-2010 Peter \305\275elezn\303\275 <zed@xchat.org></small>", - _("A multiplatform IRC Client"), - get_cpu_str(), - locale, -#ifdef WIN32 - gtk_major_version, - gtk_minor_version, - gtk_micro_version -#else + _("A multiplatform IRC Client"), + get_cpu_str (), + locale, #ifdef USE_XFT - "Xft" + "Xft" #else - "Pango" + "Pango" #endif #endif - ); + ); gtk_label_set_markup (GTK_LABEL (label), buf); gtk_label_set_justify (GTK_LABEL (label), GTK_JUSTIFY_CENTER); @@ -158,4 +170,3 @@ menu_about (GtkWidget * wid, gpointer sess) gtk_widget_show_all (about); } -#endif diff --git a/src/fe-gtk/banlist.c b/src/fe-gtk/banlist.c index afaa7eb4..fecb62a5 100644 --- a/src/fe-gtk/banlist.c +++ b/src/fe-gtk/banlist.c @@ -19,10 +19,13 @@ #include <stdio.h> #include <stdlib.h> #include <string.h> -#include <unistd.h> #include <fcntl.h> #include <time.h> +#ifndef WIN32 +#include <unistd.h> +#endif + #include "fe-gtk.h" #include <gtk/gtkhbox.h> @@ -134,11 +137,8 @@ banlist_do_refresh (struct session *sess) gtk_list_store_clear (store); handle_command (sess, "ban", FALSE); -#ifdef WIN32 - if (0) -#else + if (supports_exempt (sess->server)) -#endif { snprintf (tbuf, sizeof (tbuf), "quote mode %s +e", sess->channel); handle_command (sess, tbuf, FALSE); diff --git a/src/fe-gtk/chanlist.c b/src/fe-gtk/chanlist.c index 2f65b518..4dca935b 100644 --- a/src/fe-gtk/chanlist.c +++ b/src/fe-gtk/chanlist.c @@ -19,10 +19,13 @@ #include <stdio.h> #include <stdlib.h> #include <string.h> -#include <unistd.h> #include <fcntl.h> #include <time.h> +#ifndef WIN32 +#include <unistd.h> +#endif + #include "fe-gtk.h" #include <gtk/gtkalignment.h> diff --git a/src/fe-gtk/chanview-tabs.c b/src/fe-gtk/chanview-tabs.c index 8e3da8e6..f99e61f1 100644 --- a/src/fe-gtk/chanview-tabs.c +++ b/src/fe-gtk/chanview-tabs.c @@ -144,8 +144,8 @@ tab_scroll_left_up_clicked (GtkWidget *widget, chanview *cv) for (i = adj->value; ((i > new_value) && (tab_left_is_moving)); i -= 0.1) { gtk_adjustment_set_value (adj, i); - while (g_main_pending ()) - g_main_iteration (TRUE); + while (g_main_context_pending (NULL)) + g_main_context_iteration (NULL, TRUE); } gtk_adjustment_set_value (adj, new_value); @@ -191,8 +191,8 @@ tab_scroll_right_down_clicked (GtkWidget *widget, chanview *cv) for (i = adj->value; ((i < new_value) && (tab_right_is_moving)); i += 0.1) { gtk_adjustment_set_value (adj, i); - while (g_main_pending ()) - g_main_iteration (TRUE); + while (g_main_context_pending (NULL)) + g_main_context_iteration (NULL, TRUE); } gtk_adjustment_set_value (adj, new_value); diff --git a/src/fe-gtk/custom-list.c b/src/fe-gtk/custom-list.c index ac20e0ff..0c3c40b5 100644 --- a/src/fe-gtk/custom-list.c +++ b/src/fe-gtk/custom-list.c @@ -106,7 +106,7 @@ custom_list_sortable_init (GtkTreeSortableIface * iface) * *****************************************************************************/ -static GType +GType custom_list_get_type (void) { static GType custom_list_type = 0; diff --git a/src/fe-gtk/editlist.c b/src/fe-gtk/editlist.c index 5af67e32..d374d064 100644 --- a/src/fe-gtk/editlist.c +++ b/src/fe-gtk/editlist.c @@ -19,10 +19,14 @@ #include <stdio.h> #include <stdlib.h> #include <string.h> -#include <unistd.h> #include <fcntl.h> #include <sys/types.h> #include <sys/stat.h> + +#ifndef WIN32 +#include <unistd.h> +#endif + #include "fe-gtk.h" #include <gtk/gtkstock.h> diff --git a/src/fe-gtk/fe-gtk.c b/src/fe-gtk/fe-gtk.c index 5efcaeec..88a1138c 100644 --- a/src/fe-gtk/fe-gtk.c +++ b/src/fe-gtk/fe-gtk.c @@ -19,7 +19,6 @@ #include <stdio.h> #include <string.h> #include <stdlib.h> -#include <unistd.h> #include "fe-gtk.h" @@ -32,6 +31,12 @@ #include <gtk/gtkmessagedialog.h> #include <gtk/gtkversion.h> +#ifdef WIN32 +#include <gdk/gdkwin32.h> +#else +#include <unistd.h> +#endif + #include "../common/xchat.h" #include "../common/fe.h" #include "../common/util.h" @@ -39,6 +44,7 @@ #include "../common/cfgfiles.h" #include "../common/xchatc.h" #include "../common/plugin.h" +#include "../common/server.h" #include "gtkutil.h" #include "maingui.h" #include "pixmaps.h" @@ -136,11 +142,26 @@ static const GOptionEntry gopt_entries[] = {NULL} }; +#ifdef WIN32 +static void +create_msg_dialog (gchar *title, gchar *message) +{ + GtkWidget *dialog; + dialog = gtk_message_dialog_new (NULL, GTK_DIALOG_MODAL, GTK_MESSAGE_INFO, GTK_BUTTONS_CLOSE, message); + gtk_window_set_title (GTK_WINDOW (dialog), title); + gtk_dialog_run (GTK_DIALOG (dialog)); + gtk_widget_destroy (dialog); +} +#endif + int fe_args (int argc, char *argv[]) { GError *error = NULL; GOptionContext *context; +#ifdef WIN32 + char *buffer[2048]; +#endif #ifdef ENABLE_NLS bindtextdomain (GETTEXT_PACKAGE, LOCALEDIR); @@ -149,22 +170,67 @@ fe_args (int argc, char *argv[]) #endif context = g_option_context_new (NULL); +#ifdef WIN32 + g_option_context_set_help_enabled (context, FALSE); /* disable stdout help as stdout is unavailable for subsystem:windows */ +#endif g_option_context_add_main_entries (context, gopt_entries, GETTEXT_PACKAGE); g_option_context_add_group (context, gtk_get_option_group (FALSE)); g_option_context_parse (context, &argc, &argv, &error); +#ifdef WIN32 + if (error) /* workaround for argv not being available when using subsystem:windows */ + { + if (error->message) /* the error message contains argv so search for patterns in that */ + { + if (strstr (error->message, "--help-all") != NULL) + { + if (snprintf (buffer, 2048, g_option_context_get_help (context, FALSE, NULL))) + { + gtk_init (&argc, &argv); + create_msg_dialog ("Long Help", buffer); + } + return 0; + } else if (strstr (error->message, "--help") != NULL || strstr (error->message, "-?") != NULL) + { + if (snprintf (buffer, 2048, g_option_context_get_help (context, TRUE, NULL))) + { + gtk_init (&argc, &argv); + create_msg_dialog ("Help", buffer); + } + return 0; + } else + { + if (snprintf (buffer, 2048, "%s\n", error->message)) + { + gtk_init (&argc, &argv); + create_msg_dialog ("Error", buffer); + } + return 1; + } + } + } +#else if (error) { if (error->message) printf ("%s\n", error->message); return 1; } +#endif g_option_context_free (context); if (arg_show_version) { +#ifdef WIN32 + if (snprintf (buffer, 2048, DISPLAY_NAME" "PACKAGE_VERSION"\n")) + { + gtk_init (&argc, &argv); + create_msg_dialog ("Version Information", buffer); + } +#else printf (PACKAGE_TARNAME" "PACKAGE_VERSION"\n"); +#endif return 0; } @@ -177,7 +243,18 @@ fe_args (int argc, char *argv[]) if (sl) { *sl = 0; - printf ("%s\\plugins\n", exe); + if (snprintf (buffer, 2048, "%s\\plugins\n", exe)) + { + gtk_init (&argc, &argv); + create_msg_dialog ("Plugin Auto-load Directory", buffer); + } + } else + { + if (snprintf (buffer, 2048, ".\\plugins\n")) + { + gtk_init (&argc, &argv); + create_msg_dialog ("Plugin Auto-load Directory", buffer); + } } #else printf ("%s\n", XCHATLIBDIR"/plugins"); @@ -187,7 +264,15 @@ fe_args (int argc, char *argv[]) if (arg_show_config) { +#ifdef WIN32 + if (snprintf (buffer, 2048, "%s\n", get_xdir_fs ())) + { + gtk_init (&argc, &argv); + create_msg_dialog ("User Config Directory", buffer); + } +#else printf ("%s\n", get_xdir_fs ()); +#endif return 0; } @@ -330,7 +415,7 @@ log_handler (const gchar *log_domain, { session *sess; - if (getenv ("XCHAT_WARNING_IGNORE")) + /* if (getenv ("XCHAT_WARNING_IGNORE")) this gets ignored sometimes, so simply just disable all warnings */ return; sess = find_dialog (serv_list->data, "(warnings)"); @@ -845,7 +930,11 @@ fe_gui_info_ptr (session *sess, int info_type) { case 0: /* native window pointer (for plugins) */ #ifdef WIN32 +#if GTK_CHECK_VERSION(2,24,8) + return gdk_win32_window_get_impl_hwnd (sess->gui->window->window); +#else return GDK_WINDOW_HWND (sess->gui->window->window); +#endif #else return sess->gui->window; #endif diff --git a/src/fe-gtk/fe-gtk.h b/src/fe-gtk/fe-gtk.h index 12516259..8fffb3cc 100644 --- a/src/fe-gtk/fe-gtk.h +++ b/src/fe-gtk/fe-gtk.h @@ -1,13 +1,6 @@ #include "../../config.h" -#ifdef WIN32 -/* If you're compiling this for Windows, your release is un-official - * and not condoned. Please don't use the XChat name. Make up your - * own name! */ -#define DISPLAY_NAME "XChat-Unofficial" -#else -#define DISPLAY_NAME "XChat" -#endif +#define DISPLAY_NAME "XChat-WDK" #ifndef WIN32 #include <sys/types.h> diff --git a/src/fe-gtk/fe-gtk.vcxproj b/src/fe-gtk/fe-gtk.vcxproj new file mode 100644 index 00000000..cb102012 --- /dev/null +++ b/src/fe-gtk/fe-gtk.vcxproj @@ -0,0 +1,177 @@ +<?xml version="1.0" encoding="utf-8"?> +<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <ItemGroup Label="ProjectConfigurations"> + <ProjectConfiguration Include="Release|Win32"> + <Configuration>Release</Configuration> + <Platform>Win32</Platform> + </ProjectConfiguration> + <ProjectConfiguration Include="Release|x64"> + <Configuration>Release</Configuration> + <Platform>x64</Platform> + </ProjectConfiguration> + </ItemGroup> + <PropertyGroup Label="Globals"> + <ProjectGuid>{E4BDB4C8-2335-415A-ACEE-BA88B19BFE82}</ProjectGuid> + <Keyword>Win32Proj</Keyword> + <RootNamespace>fegtk</RootNamespace> + </PropertyGroup> + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" /> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration"> + <ConfigurationType>Application</ConfigurationType> + <UseDebugLibraries>false</UseDebugLibraries> + <WholeProgramOptimization>true</WholeProgramOptimization> + <CharacterSet>MultiByte</CharacterSet> + <PlatformToolset>WDK7</PlatformToolset> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration"> + <ConfigurationType>Application</ConfigurationType> + <UseDebugLibraries>false</UseDebugLibraries> + <WholeProgramOptimization>true</WholeProgramOptimization> + <CharacterSet>MultiByte</CharacterSet> + <PlatformToolset>WDK7</PlatformToolset> + </PropertyGroup> + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" /> + <ImportGroup Label="ExtensionSettings"> + </ImportGroup> + <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> + <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> + <Import Project="..\..\win32\xchat.props" /> + </ImportGroup> + <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets"> + <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> + <Import Project="..\..\win32\xchat.props" /> + </ImportGroup> + <PropertyGroup Label="UserMacros" /> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> + <LinkIncremental>false</LinkIncremental> + <TargetName>xchat</TargetName> + <OutDir>$(SolutionDir)build\$(PlatformName)\bin</OutDir> + <IntDir>$(SolutionDir)build\$(PlatformName)\obj\$(ProjectName)</IntDir> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'"> + <LinkIncremental>false</LinkIncremental> + <TargetName>xchat</TargetName> + <OutDir>$(SolutionDir)build\$(PlatformName)\bin</OutDir> + <IntDir>$(SolutionDir)build\$(PlatformName)\obj\$(ProjectName)</IntDir> + </PropertyGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> + <ClCompile> + <WarningLevel>Level1</WarningLevel> + <PrecompiledHeader> + </PrecompiledHeader> + <Optimization>MaxSpeed</Optimization> + <FunctionLevelLinking>true</FunctionLevelLinking> + <IntrinsicFunctions>true</IntrinsicFunctions> + <PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;$(OwnFlags);%(PreprocessorDefinitions)</PreprocessorDefinitions> + <AdditionalIncludeDirectories>$(DepsRoot)\include;$(Glib);$(Gtk);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> + <MultiProcessorCompilation>true</MultiProcessorCompilation> + </ClCompile> + <Link> + <SubSystem>Windows</SubSystem> + <GenerateDebugInformation>true</GenerateDebugInformation> + <EnableCOMDATFolding>true</EnableCOMDATFolding> + <OptimizeReferences>true</OptimizeReferences> + <AdditionalLibraryDirectories>$(DepsRoot)\lib;$(OutDir);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories> + <AdditionalDependencies>$(DepLibs);common.lib;dirent-win32.lib;%(AdditionalDependencies)</AdditionalDependencies> + <EntryPointSymbol>mainCRTStartup</EntryPointSymbol> + </Link> + </ItemDefinitionGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'"> + <ClCompile> + <WarningLevel>Level1</WarningLevel> + <PrecompiledHeader> + </PrecompiledHeader> + <Optimization>MaxSpeed</Optimization> + <FunctionLevelLinking>true</FunctionLevelLinking> + <IntrinsicFunctions>true</IntrinsicFunctions> + <PreprocessorDefinitions>WIN32;_WIN64;NDEBUG;_WINDOWS;$(OwnFlags);%(PreprocessorDefinitions)</PreprocessorDefinitions> + <AdditionalIncludeDirectories>$(DepsRoot)\include;$(Glib);$(Gtk);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> + <MultiProcessorCompilation>true</MultiProcessorCompilation> + </ClCompile> + <Link> + <SubSystem>Windows</SubSystem> + <GenerateDebugInformation>true</GenerateDebugInformation> + <EnableCOMDATFolding>true</EnableCOMDATFolding> + <OptimizeReferences>true</OptimizeReferences> + <AdditionalLibraryDirectories>$(DepsRoot)\lib;$(OutDir);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories> + <AdditionalDependencies>$(DepLibs);common.lib;dirent-win32.lib;%(AdditionalDependencies)</AdditionalDependencies> + <EntryPointSymbol>mainCRTStartup</EntryPointSymbol> + </Link> + </ItemDefinitionGroup> + <ItemGroup> + <ClInclude Include="about.h" /> + <ClInclude Include="ascii.h" /> + <ClInclude Include="banlist.h" /> + <ClInclude Include="chanlist.h" /> + <ClInclude Include="chanview.h" /> + <ClInclude Include="custom-list.h" /> + <ClInclude Include="editlist.h" /> + <ClInclude Include="fe-gtk.h" /> + <ClInclude Include="fkeys.h" /> + <ClInclude Include="gtkutil.h" /> + <ClInclude Include="joind.h" /> + <ClInclude Include="maingui.h" /> + <ClInclude Include="menu.h" /> + <ClInclude Include="mmx_cmod.h" /> + <ClInclude Include="notifygui.h" /> + <ClInclude Include="palette.h" /> + <ClInclude Include="pixmaps.h" /> + <ClInclude Include="plugin-tray.h" /> + <ClInclude Include="plugingui.h" /> + <ClInclude Include="rawlog.h" /> + <ClInclude Include="search.h" /> + <ClInclude Include="sexy-iso-codes.h" /> + <ClInclude Include="sexy-marshal.h" /> + <ClInclude Include="sexy-spell-entry.h" /> + <ClInclude Include="textgui.h" /> + <ClInclude Include="typedef.h" /> + <ClInclude Include="urlgrab.h" /> + <ClInclude Include="userlistgui.h" /> + <ClInclude Include="xtext.h" /> + </ItemGroup> + <ItemGroup> + <ClCompile Include="about.c" /> + <ClCompile Include="ascii.c" /> + <ClCompile Include="banlist.c" /> + <ClCompile Include="chanlist.c" /> + <ClCompile Include="chanview.c" /> + <ClCompile Include="custom-list.c" /> + <ClCompile Include="dccgui.c" /> + <ClCompile Include="editlist.c" /> + <ClCompile Include="fe-gtk.c" /> + <ClCompile Include="fkeys.c" /> + <ClCompile Include="gtkutil.c" /> + <ClCompile Include="ignoregui.c" /> + <ClCompile Include="joind.c" /> + <ClCompile Include="maingui.c" /> + <ClCompile Include="menu.c" /> + <ClCompile Include="notifygui.c" /> + <ClCompile Include="palette.c" /> + <ClCompile Include="pixmaps.c" /> + <ClCompile Include="plugin-tray.c" /> + <ClCompile Include="plugingui.c" /> + <ClCompile Include="rawlog.c" /> + <ClCompile Include="search.c" /> + <ClCompile Include="servlistgui.c" /> + <ClCompile Include="setup.c" /> + <ClCompile Include="sexy-iso-codes.c" /> + <ClCompile Include="sexy-marshal.c" /> + <ClCompile Include="sexy-spell-entry.c" /> + <ClCompile Include="textgui.c" /> + <ClCompile Include="urlgrab.c" /> + <ClCompile Include="userlistgui.c" /> + <ClCompile Include="xtext.c" /> + </ItemGroup> + <ItemGroup> + <Manifest Include="xchat.exe.manifest" /> + </ItemGroup> + <ItemGroup> + <ResourceCompile Include="xchat.rc" /> + </ItemGroup> + <ItemGroup> + <None Include="..\..\xchat.ico" /> + </ItemGroup> + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" /> + <ImportGroup Label="ExtensionTargets"> + </ImportGroup> +</Project> \ No newline at end of file diff --git a/src/fe-gtk/fe-gtk.vcxproj.filters b/src/fe-gtk/fe-gtk.vcxproj.filters new file mode 100644 index 00000000..0e2e830b --- /dev/null +++ b/src/fe-gtk/fe-gtk.vcxproj.filters @@ -0,0 +1,216 @@ +<?xml version="1.0" encoding="utf-8"?> +<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <ItemGroup> + <Filter Include="Source Files"> + <UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier> + <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions> + </Filter> + <Filter Include="Header Files"> + <UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier> + <Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions> + </Filter> + <Filter Include="Resource Files"> + <UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier> + <Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms</Extensions> + </Filter> + </ItemGroup> + <ItemGroup> + <ClInclude Include="about.h"> + <Filter>Header Files</Filter> + </ClInclude> + <ClInclude Include="ascii.h"> + <Filter>Header Files</Filter> + </ClInclude> + <ClInclude Include="banlist.h"> + <Filter>Header Files</Filter> + </ClInclude> + <ClInclude Include="chanlist.h"> + <Filter>Header Files</Filter> + </ClInclude> + <ClInclude Include="chanview.h"> + <Filter>Header Files</Filter> + </ClInclude> + <ClInclude Include="custom-list.h"> + <Filter>Header Files</Filter> + </ClInclude> + <ClInclude Include="editlist.h"> + <Filter>Header Files</Filter> + </ClInclude> + <ClInclude Include="fe-gtk.h"> + <Filter>Header Files</Filter> + </ClInclude> + <ClInclude Include="fkeys.h"> + <Filter>Header Files</Filter> + </ClInclude> + <ClInclude Include="gtkutil.h"> + <Filter>Header Files</Filter> + </ClInclude> + <ClInclude Include="joind.h"> + <Filter>Header Files</Filter> + </ClInclude> + <ClInclude Include="maingui.h"> + <Filter>Header Files</Filter> + </ClInclude> + <ClInclude Include="menu.h"> + <Filter>Header Files</Filter> + </ClInclude> + <ClInclude Include="mmx_cmod.h"> + <Filter>Header Files</Filter> + </ClInclude> + <ClInclude Include="notifygui.h"> + <Filter>Header Files</Filter> + </ClInclude> + <ClInclude Include="palette.h"> + <Filter>Header Files</Filter> + </ClInclude> + <ClInclude Include="pixmaps.h"> + <Filter>Header Files</Filter> + </ClInclude> + <ClInclude Include="plugingui.h"> + <Filter>Header Files</Filter> + </ClInclude> + <ClInclude Include="plugin-tray.h"> + <Filter>Header Files</Filter> + </ClInclude> + <ClInclude Include="rawlog.h"> + <Filter>Header Files</Filter> + </ClInclude> + <ClInclude Include="search.h"> + <Filter>Header Files</Filter> + </ClInclude> + <ClInclude Include="sexy-iso-codes.h"> + <Filter>Header Files</Filter> + </ClInclude> + <ClInclude Include="sexy-marshal.h"> + <Filter>Header Files</Filter> + </ClInclude> + <ClInclude Include="sexy-spell-entry.h"> + <Filter>Header Files</Filter> + </ClInclude> + <ClInclude Include="textgui.h"> + <Filter>Header Files</Filter> + </ClInclude> + <ClInclude Include="typedef.h"> + <Filter>Header Files</Filter> + </ClInclude> + <ClInclude Include="urlgrab.h"> + <Filter>Header Files</Filter> + </ClInclude> + <ClInclude Include="userlistgui.h"> + <Filter>Header Files</Filter> + </ClInclude> + <ClInclude Include="xtext.h"> + <Filter>Header Files</Filter> + </ClInclude> + </ItemGroup> + <ItemGroup> + <ClCompile Include="about.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="ascii.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="banlist.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="chanlist.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="chanview.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="custom-list.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="dccgui.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="editlist.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="fe-gtk.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="fkeys.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="gtkutil.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="ignoregui.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="joind.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="maingui.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="menu.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="notifygui.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="palette.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="pixmaps.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="plugingui.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="plugin-tray.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="rawlog.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="search.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="servlistgui.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="setup.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="sexy-iso-codes.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="sexy-marshal.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="sexy-spell-entry.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="textgui.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="urlgrab.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="userlistgui.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="xtext.c"> + <Filter>Source Files</Filter> + </ClCompile> + </ItemGroup> + <ItemGroup> + <Manifest Include="xchat.exe.manifest"> + <Filter>Resource Files</Filter> + </Manifest> + </ItemGroup> + <ItemGroup> + <ResourceCompile Include="xchat.rc"> + <Filter>Resource Files</Filter> + </ResourceCompile> + </ItemGroup> + <ItemGroup> + <None Include="..\..\xchat.ico"> + <Filter>Resource Files</Filter> + </None> + </ItemGroup> +</Project> \ No newline at end of file diff --git a/src/fe-gtk/fe-gtk.vcxproj.user b/src/fe-gtk/fe-gtk.vcxproj.user new file mode 100644 index 00000000..695b5c78 --- /dev/null +++ b/src/fe-gtk/fe-gtk.vcxproj.user @@ -0,0 +1,3 @@ +<?xml version="1.0" encoding="utf-8"?> +<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> +</Project> \ No newline at end of file diff --git a/src/fe-gtk/fkeys.c b/src/fe-gtk/fkeys.c index 014b5cc3..4fbbebf6 100644 --- a/src/fe-gtk/fkeys.c +++ b/src/fe-gtk/fkeys.c @@ -20,11 +20,14 @@ #include <stdlib.h> #include <sys/types.h> #include <sys/stat.h> -#include <unistd.h> #include <string.h> #include <fcntl.h> #include <ctype.h> +#ifndef WIN32 +#include <unistd.h> +#endif + #include "fe-gtk.h" #include <gtk/gtklabel.h> @@ -315,7 +318,7 @@ key_handle_key_press (GtkWidget *wid, GdkEventKey *evt, session *sess) key_action_tab_clean (); break; -#if defined(USE_GTKSPELL) && !defined(WIN32) +#if defined(USE_GTKSPELL)/* && !defined(WIN32) */ /* gtktextview has no 'activate' event, so we trap ENTER here */ case GDK_Return: case GDK_KP_Enter: @@ -1257,11 +1260,11 @@ key_action_scroll_page (GtkWidget * wid, GdkEventKey * evt, char *d1, if (d1) { - if (!strcasecmp (d1, "up")) + if (!g_ascii_strcasecmp (d1, "up")) type = PAGE_UP; - else if (!strcasecmp (d1, "+1")) + else if (!g_ascii_strcasecmp (d1, "+1")) type = LINE_DOWN; - else if (!strcasecmp (d1, "-1")) + else if (!g_ascii_strcasecmp (d1, "-1")) type = LINE_UP; } diff --git a/src/fe-gtk/gtkutil.c b/src/fe-gtk/gtkutil.c index 63ab491b..fe4e1737 100644 --- a/src/fe-gtk/gtkutil.c +++ b/src/fe-gtk/gtkutil.c @@ -22,8 +22,8 @@ #include <stdarg.h> #include <sys/types.h> #include <sys/stat.h> -#include <unistd.h> #include <fcntl.h> + #include "fe-gtk.h" #include <gtk/gtkbutton.h> @@ -52,6 +52,13 @@ #include "gtkutil.h" #include "pixmaps.h" +#ifdef WIN32 +#include "../common/fe.h" +#include "../common/thread.h" +#else +#include <unistd.h> +#endif + /* gtkutil.c, just some gtk wrappers */ extern void path_part (char *file, char *path, int pathlen); @@ -63,6 +70,13 @@ struct file_req void *userdata; filereqcallback callback; int flags; /* FRF_* flags */ + +#ifdef WIN32 + int multiple; + thread *th; + char *title; /* native locale */ + char *filter; +#endif }; static char last_dir[256] = ""; @@ -164,6 +178,190 @@ gtkutil_file_req_response (GtkWidget *dialog, gint res, struct file_req *freq) } } +#ifdef WIN32 +static int +win32_openfile (char *file_buf, int file_buf_len, char *title_text, char *filter, + int multiple) +{ + OPENFILENAME o; + + memset (&o, 0, sizeof (o)); + + o.lStructSize = sizeof (o); + o.lpstrFilter = filter; + o.lpstrFile = file_buf; + o.nMaxFile = file_buf_len; + o.lpstrTitle = title_text; + o.Flags = 0x02000000 | OFN_FILEMUSTEXIST | OFN_HIDEREADONLY | + OFN_NOCHANGEDIR | OFN_EXPLORER | OFN_LONGNAMES | OFN_NONETWORKBUTTON; + if (multiple) + { + o.Flags |= OFN_ALLOWMULTISELECT; + } + + return GetOpenFileName (&o); +} + +static int +win32_savefile (char *file_buf, int file_buf_len, char *title_text, char *filter, + int multiple) +{ + /* we need the filter to get the default filename. it is from fe-gtk.c (fe_confirm); + * but that filter is actually the whole filename, so apply an empty filter and all good. + * in win32_thread2 we copy the filter ( = the filename) after the last dir into our + * LPTSTR file buffer to make it actually work. the docs for this amazingly retard api: + * + * http://msdn.microsoft.com/en-us/library/ms646839%28VS.85%29.aspx + */ + + OPENFILENAME o; + + memset (&o, 0, sizeof (o)); + + o.lStructSize = sizeof (o); + o.lpstrFilter = "All files\0*.*\0\0"; + o.lpstrFile = file_buf; + o.nMaxFile = file_buf_len; + o.lpstrTitle = title_text; + o.Flags = 0x02000000 | OFN_FILEMUSTEXIST | OFN_HIDEREADONLY | + OFN_NOCHANGEDIR | OFN_EXPLORER | OFN_LONGNAMES | OFN_NONETWORKBUTTON; + if (multiple) + { + o.Flags |= OFN_ALLOWMULTISELECT; + } + + return GetSaveFileName (&o); +} + +static void * +win32_thread (struct file_req *freq) +{ + char buf[1024 + 32]; + char file[1024]; + + memset (file, 0, sizeof (file)); + safe_strcpy (file, last_dir, sizeof (file)); + + if (win32_openfile (file, sizeof (file), freq->title, freq->filter, freq->multiple)) + { + if (freq->multiple) + { + char *f = file; + + if (f[strlen (f) + 1] == 0) /* only selected one file */ + { + snprintf (buf, sizeof (buf), "1\n%s\n", file); + write (freq->th->pipe_fd[1], buf, strlen (buf)); + } else + { + f += strlen (f) + 1; /* skip first, it's only the dir */ + while (f[0]) + { + snprintf (buf, sizeof (buf), "1\n%s\\%s\n", /*dir!*/file, f); + write (freq->th->pipe_fd[1], buf, strlen (buf)); + f += strlen (f) + 1; + } + } + + } else + { + snprintf (buf, sizeof (buf), "1\n%s\n", file); + write (freq->th->pipe_fd[1], buf, strlen (buf)); + } + } + + write (freq->th->pipe_fd[1], "0\n", 2); + Sleep (2000); + + return NULL; +} + +static void * +win32_thread2 (struct file_req *freq) +{ + char buf[1024 + 32]; + char file[1024]; + + memset (file, 0, sizeof (file)); + safe_strcpy (file, last_dir, sizeof (file)); + safe_strcpy (file, freq->filter, sizeof (file)); + + if (win32_savefile (file, sizeof (file), freq->title, NULL, freq->multiple)) + { + if (freq->multiple) + { + char *f = file; + + if (f[strlen (f) + 1] == 0) /* only selected one file */ + { + snprintf (buf, sizeof (buf), "1\n%s\n", file); + write (freq->th->pipe_fd[1], buf, strlen (buf)); + } else + { + f += strlen (f) + 1; /* skip first, it's only the dir */ + while (f[0]) + { + snprintf (buf, sizeof (buf), "1\n%s\\%s\n", /*dir!*/file, f); + write (freq->th->pipe_fd[1], buf, strlen (buf)); + f += strlen (f) + 1; + } + } + + } else + { + snprintf (buf, sizeof (buf), "1\n%s\n", file); + write (freq->th->pipe_fd[1], buf, strlen (buf)); + } + } + + write (freq->th->pipe_fd[1], "0\n", 2); + Sleep (2000); + + return NULL; +} + +static gboolean +win32_close_pipe (int fd) +{ + close (fd); + return 0; +} + +static gboolean +win32_read_thread (GIOChannel *source, GIOCondition cond, struct file_req *freq) +{ + char buf[512]; + char *file; + + waitline2 (source, buf, sizeof buf); + + switch (buf[0]) + { + case '0': /* filedialog has closed */ + freq->callback (freq->userdata, NULL); + break; + + case '1': /* got a filename! */ + waitline2 (source, buf, sizeof buf); + file = g_filename_to_utf8 (buf, -1, 0, 0, 0); + freq->callback (freq->userdata, file); + g_free (file); + return TRUE; + } + + /* it doesn't work to close them here, because of the weird + way giowin32 works. We must _return_ before closing them */ + g_timeout_add(3000, (GSourceFunc)win32_close_pipe, freq->th->pipe_fd[0]); + g_timeout_add(2000, (GSourceFunc)win32_close_pipe, freq->th->pipe_fd[1]); + + g_free (freq->title); + free (freq->th); + free (freq); + + return FALSE; +} +#endif + void gtkutil_file_req (const char *title, void *callback, void *userdata, char *filter, int flags) @@ -172,6 +370,58 @@ gtkutil_file_req (const char *title, void *callback, void *userdata, char *filte GtkWidget *dialog; extern char *get_xdir_fs (void); +#ifdef WIN32 + if (!(flags & FRF_WRITE)) + { + freq = malloc (sizeof (struct file_req)); + freq->th = thread_new (); + freq->flags = 0; + freq->multiple = (flags & FRF_MULTIPLE); + freq->callback = callback; + freq->userdata = userdata; + freq->title = g_locale_from_utf8 (title, -1, 0, 0, 0); + if (!filter) + { + freq->filter = "All files\0*.*\0" + "Executables\0*.exe\0" + "ZIP files\0*.zip\0\0"; + } + else + { + freq->filter = filter; + } + + thread_start (freq->th, win32_thread, freq); + fe_input_add (freq->th->pipe_fd[0], FIA_FD|FIA_READ, win32_read_thread, freq); + + return; + + } + + else { + freq = malloc (sizeof (struct file_req)); + freq->th = thread_new (); + freq->flags = 0; + freq->multiple = (flags & FRF_MULTIPLE); + freq->callback = callback; + freq->userdata = userdata; + freq->title = g_locale_from_utf8 (title, -1, 0, 0, 0); + if (!filter) + { + freq->filter = "All files\0*.*\0\0"; + } + else + { + freq->filter = filter; + } + + thread_start (freq->th, win32_thread2, freq); + fe_input_add (freq->th->pipe_fd[0], FIA_FD|FIA_READ, win32_read_thread, freq); + + return; + } +#endif + if (flags & FRF_WRITE) { dialog = gtk_file_chooser_dialog_new (title, NULL, diff --git a/src/fe-gtk/joind.c b/src/fe-gtk/joind.c index ee5c56d1..e645f0bc 100644 --- a/src/fe-gtk/joind.c +++ b/src/fe-gtk/joind.c @@ -9,10 +9,13 @@ #include <sys/types.h> #include <sys/stat.h> -#include <unistd.h> #include <string.h> #include <stdio.h> +#ifndef WIN32 +#include <unistd.h> +#endif + #include <gtk/gtkbbox.h> #include <gtk/gtkbutton.h> #include <gtk/gtkdialog.h> diff --git a/src/fe-gtk/maingui.c b/src/fe-gtk/maingui.c index 8e6873a2..1ff59354 100644 --- a/src/fe-gtk/maingui.c +++ b/src/fe-gtk/maingui.c @@ -53,6 +53,8 @@ #include "../common/plugin.h" #include "../common/modes.h" #include "../common/url.h" +#include "../common/util.h" + #include "fe-gtk.h" #include "banlist.h" #include "gtkutil.h" @@ -214,60 +216,10 @@ mg_create_tab_colors (void) away_list = mg_attr_list_create (&colors[COL_AWAY], FALSE); } -#ifdef WIN32 -#define WINVER 0x0501 /* needed for vc6? */ -#include <windows.h> -#include <gdk/gdkwin32.h> - -/* Flash the taskbar button on Windows when there's a highlight event. */ - -static void -flash_window (GtkWidget *win) -{ - FLASHWINFO fi; - static HMODULE user = NULL; - static BOOL (*flash) (PFLASHWINFO) = NULL; - - if (!user) - { - user = GetModuleHandleA ("USER32"); - if (!user) - return; /* this should never fail */ - } - - if (!flash) - { - flash = (void *)GetProcAddress (user, "FlashWindowEx"); - if (!flash) - return; /* this fails on NT4.0 and Win95 */ - } - - fi.cbSize = sizeof (fi); - fi.hwnd = GDK_WINDOW_HWND (win->window); - fi.dwFlags = FLASHW_ALL | FLASHW_TIMERNOFG; - fi.uCount = 0; - fi.dwTimeout = 500; - flash (&fi); - /*FlashWindowEx (&fi);*/ -} -#else - -#ifdef USE_XLIB -#include <gdk/gdkx.h> - static void set_window_urgency (GtkWidget *win, gboolean set) { - XWMHints *hints; - - hints = XGetWMHints(GDK_WINDOW_XDISPLAY(win->window), GDK_WINDOW_XWINDOW(win->window)); - if (set) - hints->flags |= XUrgencyHint; - else - hints->flags &= ~XUrgencyHint; - XSetWMHints(GDK_WINDOW_XDISPLAY(win->window), - GDK_WINDOW_XWINDOW(win->window), hints); - XFree(hints); + gtk_window_set_urgency_hint (GTK_WINDOW (win), set); } static void @@ -281,18 +233,14 @@ unflash_window (GtkWidget *win) { set_window_urgency (win, FALSE); } -#endif -#endif /* flash the taskbar button */ void fe_flash_window (session *sess) { -#if defined(WIN32) || defined(USE_XLIB) if (fe_gui_info (sess, 0) != 1) /* only do it if not focused */ flash_window (sess->gui->window); -#endif } /* set a tab plain, red, light-red, or blue */ @@ -530,10 +478,22 @@ fe_set_title (session *sess) break; default: def: - gtk_window_set_title (GTK_WINDOW (sess->gui->window), DISPLAY_NAME); + snprintf (tbuf, sizeof (tbuf), DISPLAY_NAME); + if (strcmp (prefs.gui_license, "")) /* zero means gui_license is empty */ + { + strcat (tbuf, " - "); + strcat (tbuf, prefs.gui_license); + } + gtk_window_set_title (GTK_WINDOW (sess->gui->window), tbuf); return; } + if (strcmp (prefs.gui_license, "")) /* zero means gui_license is empty */ + { + strcat (tbuf, " - "); + strcat (tbuf, prefs.gui_license); + } + gtk_window_set_title (GTK_WINDOW (sess->gui->window), tbuf); } @@ -840,6 +800,9 @@ mg_userlist_showhide (session *sess, int show) { session_gui *gui = sess->gui; int handle_size; + int right_size; + + right_size = MAX (prefs.gui_pane_right_size, prefs.gui_pane_right_size_min); if (show) { @@ -847,7 +810,7 @@ mg_userlist_showhide (session *sess, int show) gui->ul_hidden = 0; gtk_widget_style_get (GTK_WIDGET (gui->hpane_right), "handle-size", &handle_size, NULL); - gtk_paned_set_position (GTK_PANED (gui->hpane_right), GTK_WIDGET (gui->hpane_right)->allocation.width - (prefs.gui_pane_right_size + handle_size)); + gtk_paned_set_position (GTK_PANED (gui->hpane_right), GTK_WIDGET (gui->hpane_right)->allocation.width - (right_size + handle_size)); } else { @@ -1335,7 +1298,7 @@ mg_open_quit_dialog (gboolean minimize_button) gtk_button_box_set_layout (GTK_BUTTON_BOX (dialog_action_area1), GTK_BUTTONBOX_END); - if (minimize_button) + if (minimize_button && !xtray_mode ()) { button = gtk_button_new_with_mnemonic (_("_Minimize to Tray")); gtk_widget_show (button); @@ -1633,7 +1596,12 @@ mg_create_alertmenu (session *sess, GtkWidget *menu) submenu = menu_quick_sub (_("_Extra Alerts"), menu, NULL, XCMENU_MNEMONIC, -1); mg_perchan_menu_item (_("Beep on _Message"), submenu, &sess->alert_beep, prefs.input_beep_chans); - mg_perchan_menu_item (_("Blink Tray _Icon"), submenu, &sess->alert_tray, prefs.input_tray_chans); + + if (!xtray_mode ()) /*disable this context menu item when xtray is loaded */ + { + mg_perchan_menu_item (_("Blink Tray _Icon"), submenu, &sess->alert_tray, prefs.input_tray_chans); + } + mg_perchan_menu_item (_("Blink Task _Bar"), submenu, &sess->alert_taskbar, prefs.input_flash_chans); } @@ -1720,7 +1688,7 @@ mg_dnd_drop_file (session *sess, char *target, char *uri) while (*p) { next = strchr (p, '\r'); - if (strncasecmp ("file:", p, 5) == 0) + if (g_ascii_strncasecmp ("file:", p, 5) == 0) { if (next) *next = 0; @@ -2883,7 +2851,7 @@ mg_create_entry (session *sess, GtkWidget *box) #else gui->input_box = entry = gtk_entry_new (); #endif - gtk_entry_set_max_length (GTK_ENTRY (gui->input_box), 2048); + gtk_entry_set_max_length (GTK_ENTRY (gui->input_box), 0); g_signal_connect (G_OBJECT (entry), "activate", G_CALLBACK (mg_inputbox_cb), gui); gtk_container_add (GTK_CONTAINER (hbox), entry); @@ -2943,7 +2911,7 @@ mg_tabs_compare (session *a, session *b) if (a->type != SESS_CHANNEL && b->type == SESS_CHANNEL) return 1; - return strcasecmp (a->channel, b->channel); + return g_ascii_strcasecmp (a->channel, b->channel); } static void @@ -2973,11 +2941,7 @@ mg_tabwin_focus_cb (GtkWindow * win, GdkEventFocus *event, gpointer userdata) gtk_xtext_check_marker_visibility (GTK_XTEXT (current_sess->gui->xtext)); plugin_emit_dummy_print (current_sess, "Focus Window"); } -#ifndef WIN32 -#ifdef USE_XLIB unflash_window (GTK_WIDGET (win)); -#endif -#endif return FALSE; } @@ -2988,11 +2952,7 @@ mg_topwin_focus_cb (GtkWindow * win, GdkEventFocus *event, session *sess) if (!sess->server->server_session) sess->server->server_session = sess; gtk_xtext_check_marker_visibility(GTK_XTEXT (current_sess->gui->xtext)); -#ifndef WIN32 -#ifdef USE_XLIB unflash_window (GTK_WIDGET (win)); -#endif -#endif plugin_emit_dummy_print (sess, "Focus Window"); return FALSE; } diff --git a/src/fe-gtk/makefile.mak b/src/fe-gtk/makefile.mak new file mode 100644 index 00000000..27922405 --- /dev/null +++ b/src/fe-gtk/makefile.mak @@ -0,0 +1,62 @@ +include "..\makeinc.mak" + +FEGTK_OBJECTS = \ +about.obj \ +ascii.obj \ +banlist.obj \ +chanlist.obj \ +chanview.obj \ +custom-list.obj \ +dccgui.obj \ +editlist.obj \ +fe-gtk.obj \ +fkeys.obj \ +gtkutil.obj \ +ignoregui.obj \ +joind.obj \ +maingui.obj \ +menu.obj \ +notifygui.obj \ +palette.obj \ +pixmaps.obj \ +plugingui.obj \ +plugin-tray.obj \ +rawlog.obj \ +search.obj \ +servlistgui.obj \ +setup.obj \ +sexy-iso-codes.obj \ +sexy-marshal.obj \ +sexy-spell-entry.obj \ +textgui.obj \ +urlgrab.obj \ +userlistgui.obj \ +xtext.obj + +!ifdef X64 +MACHINE_FLAG = /MACHINE:X64 +!else +MACHINE_FLAG = /MACHINE:X86 +!endif + +COMLIB = ..\common\xchatcommon.lib +PROG = xchat.exe + +all: $(PROG) + +.c.obj:: + $(CC) $(CFLAGS) -I..\..\plugins $(GLIB) $(GTK) $< + +$(PROG): $(FEGTK_OBJECTS) $(COMLIB) xchat-icon.obj + $(LINK) /out:$(PROG) /entry:mainCRTStartup $(LDFLAGS) $(LIBS) $(FEGTK_OBJECTS) $(COMLIB) xchat-icon.obj + +xchat.res: xchat.rc ../../xchat.ico + rc /nologo /r xchat.rc + +xchat-icon.obj: xchat.res + cvtres /nologo $(MACHINE_FLAG) /OUT:xchat-icon.obj xchat.res + +clean: + @del *.obj + @del $(PROG) + @del xchat.res diff --git a/src/fe-gtk/menu.c b/src/fe-gtk/menu.c index d04be222..2a683604 100644 --- a/src/fe-gtk/menu.c +++ b/src/fe-gtk/menu.c @@ -20,10 +20,11 @@ #include <stdlib.h> #include <fcntl.h> #include <string.h> -#include <unistd.h> #ifdef WIN32 #include <windows.h> +#else +#include <unistd.h> #endif #include "fe-gtk.h" @@ -483,18 +484,18 @@ menu_create (GtkWidget *menu, GSList *list, char *target, int check_path) { pop = (struct popup *) list->data; - if (!strncasecmp (pop->name, "SUB", 3)) + if (!g_ascii_strncasecmp (pop->name, "SUB", 3)) { childcount = 0; tempmenu = menu_quick_sub (pop->cmd, tempmenu, &subitem, XCMENU_DOLIST|XCMENU_MNEMONIC, -1); - } else if (!strncasecmp (pop->name, "TOGGLE", 6)) + } else if (!g_ascii_strncasecmp (pop->name, "TOGGLE", 6)) { childcount++; menu_toggle_item (pop->name + 7, tempmenu, toggle_cb, pop->cmd, cfg_get_bool (pop->cmd)); - } else if (!strncasecmp (pop->name, "ENDSUB", 6)) + } else if (!g_ascii_strncasecmp (pop->name, "ENDSUB", 6)) { /* empty sub menu due to no programs in PATH? */ if (check_path && childcount < 1) @@ -505,7 +506,7 @@ menu_create (GtkWidget *menu, GSList *list, char *target, int check_path) tempmenu = menu_quick_endsub (); /* If we get here and tempmenu equals menu that means we havent got any submenus to exit from */ - } else if (!strncasecmp (pop->name, "SEP", 3)) + } else if (!g_ascii_strncasecmp (pop->name, "SEP", 3)) { menu_quick_item (0, 0, tempmenu, XCMENU_SHADED, 0, 0); @@ -1122,6 +1123,23 @@ usermenu_update (void) } } +#if 0 +static void +menu_saveconf (void) +{ + session *sess = current_sess; + + if (save_config ()) + { + PrintText (sess, "Settings have been saved successfully.\n"); + } + else + { + PrintText (sess, "Error saving settings.\n"); + } +} +#endif + static void menu_newserver_window (GtkWidget * wid, gpointer none) { @@ -1198,12 +1216,53 @@ menu_search () } static void +menu_search_next () +{ + GtkXText *xtext = GTK_XTEXT (current_sess->gui->xtext); + xtext_buffer *buf = xtext->buffer; + + if (!gtk_xtext_search (xtext, buf->search_text, + (buf->search_flags & (case_match | follow | regexp)), NULL)) + { + fe_message (_("Search hit end, not found."), FE_MSG_ERROR); + } +} + +static void +menu_search_prev () +{ + GtkXText *xtext = GTK_XTEXT (current_sess->gui->xtext); + xtext_buffer *buf = xtext->buffer; + + if (!gtk_xtext_search(xtext, buf->search_text, + (buf->search_flags & (case_match | follow | regexp) | backward), NULL)) + { + fe_message (_("Search hit end, not found."), FE_MSG_ERROR); + } +} + +static void +menu_search_reset () +{ + GtkXText *xtext = GTK_XTEXT (current_sess->gui->xtext); + xtext_buffer *buf = xtext->buffer; + + gtk_xtext_search (xtext, "", 0, NULL); +} + +static void menu_resetmarker (GtkWidget * wid, gpointer none) { gtk_xtext_reset_marker_pos (GTK_XTEXT (current_sess->gui->xtext)); } static void +menu_copy_selection (GtkWidget * wid, gpointer none) +{ + gtk_xtext_copy_selection (GTK_XTEXT (current_sess->gui->xtext)); +} + +static void menu_flushbuffer (GtkWidget * wid, gpointer none) { fe_text_clear (current_sess, 0); @@ -1580,7 +1639,7 @@ static struct mymenu mymenu[] = { #endif {0, 0, 0, M_SEP, 0, 0, 0}, /* 11 */ #define DETACH_OFFSET (12) - {0, menu_detach, GTK_STOCK_REDO, M_MENUSTOCK, 0, 0, 1, GDK_I}, /* 12 */ + {0, menu_detach, GTK_STOCK_REDO, M_MENUSTOCK, 0, 0, 1, GDK_i}, /* 12 */ #define CLOSE_OFFSET (13) {0, menu_close, GTK_STOCK_CLOSE, M_MENUSTOCK, 0, 0, 1, GDK_w}, {0, 0, 0, M_SEP, 0, 0, 0}, @@ -1633,6 +1692,10 @@ static struct mymenu mymenu[] = { {N_("Userlist Popup..."), menu_ulpopup, 0, M_MENUITEM, 0, 0, 1}, {0, 0, 0, M_END, 0, 0, 0}, /* 53 */ +#if 0 + {N_("Save Settings to Disk"), menu_saveconf, GTK_STOCK_SAVE, M_MENUSTOCK, 0, 0, 1}, /* don't use this, a /set auto-save approach will be added instead */ +#endif + {N_("_Window"), 0, 0, M_NEWMENU, 0, 0, 1}, {N_("Ban List..."), menu_banlist, 0, M_MENUITEM, 0, 0, 1}, {N_("Character Chart..."), ascii_open, 0, M_MENUITEM, 0, 0, 1}, @@ -1645,12 +1708,19 @@ static struct mymenu mymenu[] = { {N_("URL Grabber..."), url_opengui, 0, M_MENUITEM, 0, 0, 1}, {0, 0, 0, M_SEP, 0, 0, 0}, {N_("Reset Marker Line"), menu_resetmarker, 0, M_MENUITEM, 0, 0, 1, GDK_m}, + {N_("_Copy Selection"), menu_copy_selection, 0, M_MENUITEM, 0, 0, 1, GDK_C}, {N_("C_lear Text"), menu_flushbuffer, GTK_STOCK_CLEAR, M_MENUSTOCK, 0, 0, 1, GDK_l}, -#define SEARCH_OFFSET 67 - {N_("Search Text..."), menu_search, GTK_STOCK_FIND, M_MENUSTOCK, 0, 0, 1, GDK_f}, {N_("Save Text..."), menu_savebuffer, GTK_STOCK_SAVE, M_MENUSTOCK, 0, 0, 1}, +#define SEARCH_OFFSET 70 + {N_("Search"), 0, GTK_STOCK_JUSTIFY_LEFT, M_MENUSUB, 0, 0, 1}, + {N_("Search Text..."), menu_search, GTK_STOCK_FIND, M_MENUSTOCK, 0, 0, 1, GDK_f}, + {N_("Reset Search"), menu_search_reset, GTK_STOCK_FIND, M_MENUSTOCK, 0, 0, 1, GDK_F}, + {N_("Search Next" ), menu_search_next, GTK_STOCK_FIND, M_MENUSTOCK, 0, 0, 1, GDK_g}, + {N_("Search Previous" ), menu_search_prev, GTK_STOCK_FIND, M_MENUSTOCK, 0, 0, 1, GDK_G}, + {0, 0, 0, M_END, 0, 0, 0}, + + {N_("_Help"), 0, 0, M_NEWMENU, 0, 0, 1}, /* 74 */ - {N_("_Help"), 0, 0, M_NEWMENU, 0, 0, 1}, /* 69 */ {N_("_Contents"), menu_docs, GTK_STOCK_HELP, M_MENUSTOCK, 0, 0, 1, GDK_F1}, #if 0 {N_("Check for updates"), menu_update, 0, M_MENUITEM, 0, 1}, @@ -2120,7 +2190,7 @@ menu_create_main (void *accel_group, int bar, int away, int toplevel, g_object_get (settings, "gtk-key-theme-name", &key_theme, NULL); if (key_theme) { - if (!strcasecmp (key_theme, "Emacs")) + if (!g_ascii_strcasecmp (key_theme, "Emacs")) { close_mask = GDK_SHIFT_MASK | GDK_CONTROL_MASK; mymenu[SEARCH_OFFSET].key = 0; @@ -2188,7 +2258,9 @@ normalitem: mymenu[i].key, mymenu[i].key == GDK_F1 ? 0 : mymenu[i].key == GDK_w ? close_mask : - GDK_CONTROL_MASK, + (g_ascii_isupper (mymenu[i].key)) ? + GDK_SHIFT_MASK | GDK_CONTROL_MASK : + GDK_CONTROL_MASK, GTK_ACCEL_VISIBLE); if (mymenu[i].callback) g_signal_connect (G_OBJECT (item), "activate", diff --git a/src/fe-gtk/notifygui.c b/src/fe-gtk/notifygui.c index 5acb683a..135a548d 100644 --- a/src/fe-gtk/notifygui.c +++ b/src/fe-gtk/notifygui.c @@ -321,7 +321,7 @@ notifygui_add_cb (GtkDialog *dialog, gint response, gpointer entry) if (text[0] && response == GTK_RESPONSE_ACCEPT) { networks = GTK_ENTRY (g_object_get_data (G_OBJECT (entry), "net"))->text; - if (strcasecmp (networks, "ALL") == 0 || networks[0] == 0) + if (g_ascii_strcasecmp (networks, "ALL") == 0 || networks[0] == 0) notify_adduser (text, NULL); else notify_adduser (text, networks); diff --git a/src/fe-gtk/palette.c b/src/fe-gtk/palette.c index ebae92ff..104700c2 100644 --- a/src/fe-gtk/palette.c +++ b/src/fe-gtk/palette.c @@ -18,11 +18,14 @@ #include <stdio.h> #include <stdlib.h> -#include <unistd.h> #include <sys/types.h> #include <sys/stat.h> #include <fcntl.h> +#ifndef WIN32 +#include <unistd.h> +#endif + #include "fe-gtk.h" #include "palette.h" @@ -78,8 +81,9 @@ GdkColor colors[] = { {0, 0x0000, 0x0000, 0xffff}, /* 38 tab Nick Mentioned (blue) */ {0, 0xffff, 0x0000, 0x0000}, /* 39 tab New Message (red) */ {0, 0x9595, 0x9595, 0x9595}, /* 40 away user (grey) */ + {0, 0xffff, 0x0000, 0x0000}, /* 41 spell checker color (red) */ }; -#define MAX_COL 40 +#define MAX_COL 41 void diff --git a/src/fe-gtk/palette.h b/src/fe-gtk/palette.h index c97693bb..627c6963 100644 --- a/src/fe-gtk/palette.h +++ b/src/fe-gtk/palette.h @@ -9,6 +9,7 @@ extern GdkColor colors[]; #define COL_HILIGHT 38 #define COL_NEW_MSG 39 #define COL_AWAY 40 +#define COL_SPELL 41 void palette_alloc (GtkWidget * widget); void palette_load (void); diff --git a/src/fe-gtk/plugin-tray.c b/src/fe-gtk/plugin-tray.c index e46d9570..b9f60f8d 100644 --- a/src/fe-gtk/plugin-tray.c +++ b/src/fe-gtk/plugin-tray.c @@ -1,7 +1,6 @@ /* Copyright (C) 2006-2007 Peter Zelezny. */ #include <string.h> -#include <unistd.h> #include "../common/xchat-plugin.h" #include "../common/xchat.h" #include "../common/xchatc.h" @@ -15,6 +14,10 @@ #include "menu.h" #include <gtk/gtk.h> +#ifndef WIN32 +#include <unistd.h> +#endif + #ifdef USE_LIBNOTIFY #include <libnotify/notify.h> #ifndef NOTIFY_CHECK_VERSION @@ -217,10 +220,10 @@ tray_stop_flash (void) nets = tray_count_networks (); chans = tray_count_channels (); if (nets) - tray_set_tipf (_("XChat: Connected to %u networks and %u channels"), + tray_set_tipf (_("XChat-WDK: Connected to %u networks and %u channels"), nets, chans); else - tray_set_tipf ("XChat: %s", _("Not connected.")); + tray_set_tipf ("XChat-WDK: %s", _("Not connected.")); } if (custom_icon1) @@ -370,7 +373,7 @@ tray_toggle_visibility (gboolean force_hide) /* ph may have an invalid context now */ xchat_set_context (ph, xchat_find_context (ph, NULL, NULL)); - win = (GtkWindow *)xchat_get_info (ph, "win_ptr"); + win = xchat_get_info (ph, "gtkwin_ptr"); tray_stop_flash (); tray_reset_counts (); @@ -505,11 +508,12 @@ tray_menu_cb (GtkWidget *widget, guint button, guint time, gpointer userdata) /*gtk_menu_set_screen (GTK_MENU (menu), gtk_widget_get_screen (widget));*/ if (tray_get_window_status () == WS_HIDDEN) - tray_make_item (menu, _("_Restore"), tray_menu_restore_cb, NULL); + tray_make_item (menu, _("_Restore Window"), tray_menu_restore_cb, NULL); else - tray_make_item (menu, _("_Hide"), tray_menu_restore_cb, NULL); + tray_make_item (menu, _("_Hide Window"), tray_menu_restore_cb, NULL); tray_make_item (menu, NULL, tray_menu_quit_cb, NULL); +#ifndef WIN32 /* somehow this is broken on win32 */ submenu = mg_submenu (menu, _("_Blink on")); blink_item (&prefs.input_tray_chans, submenu, _("Channel Message")); blink_item (&prefs.input_tray_priv, submenu, _("Private Message")); @@ -526,6 +530,8 @@ tray_menu_cb (GtkWidget *widget, guint button, guint time, gpointer userdata) gtk_widget_set_sensitive (item, FALSE); tray_make_item (menu, NULL, tray_menu_quit_cb, NULL); +#endif + mg_create_icon_item (_("_Quit"), GTK_STOCK_QUIT, menu, tray_menu_quit_cb, NULL); menu_add_plugin_items (menu, "\x5$TRAY", NULL); @@ -551,8 +557,12 @@ tray_init (void) sticon = gtk_status_icon_new_from_pixbuf (ICON_NORMAL); if (!sticon) return; + +#ifndef WIN32 g_signal_connect (G_OBJECT (sticon), "popup-menu", G_CALLBACK (tray_menu_cb), sticon); +#endif + g_signal_connect (G_OBJECT (sticon), "activate", G_CALLBACK (tray_menu_restore_cb), NULL); } @@ -570,15 +580,15 @@ tray_hilight_cb (char *word[], void *userdata) /* FIXME: hides any previous private messages */ tray_hilight_count++; if (tray_hilight_count == 1) - tray_set_tipf (_("XChat: Highlighted message from: %s (%s)"), + tray_set_tipf (_("XChat-WDK: Highlighted message from: %s (%s)"), word[1], xchat_get_info (ph, "channel")); else - tray_set_tipf (_("XChat: %u highlighted messages, latest from: %s (%s)"), + tray_set_tipf (_("XChat-WDK: %u highlighted messages, latest from: %s (%s)"), tray_hilight_count, word[1], xchat_get_info (ph, "channel")); } if (prefs.input_balloon_hilight) - tray_set_balloonf (word[2], _("XChat: Highlighted message from: %s (%s)"), + tray_set_balloonf (word[2], _("XChat-WDK: Highlighted message from: %s (%s)"), word[1], xchat_get_info (ph, "channel")); return XCHAT_EAT_NONE; @@ -596,14 +606,14 @@ tray_message_cb (char *word[], void *userdata) tray_pub_count++; if (tray_pub_count == 1) - tray_set_tipf (_("XChat: New public message from: %s (%s)"), + tray_set_tipf (_("XChat-WDK: New public message from: %s (%s)"), word[1], xchat_get_info (ph, "channel")); else - tray_set_tipf (_("XChat: %u new public messages."), tray_pub_count); + tray_set_tipf (_("XChat-WDK: %u new public messages."), tray_pub_count); } if (prefs.input_balloon_chans) - tray_set_balloonf (word[2], _("XChat: New public message from: %s (%s)"), + tray_set_balloonf (word[2], _("XChat-WDK: New public message from: %s (%s)"), word[1], xchat_get_info (ph, "channel")); return XCHAT_EAT_NONE; @@ -625,14 +635,14 @@ tray_priv (char *from, char *text) tray_priv_count++; if (tray_priv_count == 1) - tray_set_tipf (_("XChat: Private message from: %s (%s)"), + tray_set_tipf (_("XChat-WDK: Private message from: %s (%s)"), from, network); else - tray_set_tipf (_("XChat: %u private messages, latest from: %s (%s)"), + tray_set_tipf (_("XChat-WDK: %u private messages, latest from: %s (%s)"), tray_priv_count, from, network); if (prefs.input_balloon_priv) - tray_set_balloonf (text, _("XChat: Private message from: %s (%s)"), + tray_set_balloonf (text, _("XChat-WDK: Private message from: %s (%s)"), from, network); } @@ -678,15 +688,15 @@ tray_dcc_cb (char *word[], void *userdata) tray_file_count++; if (tray_file_count == 1) - tray_set_tipf (_("XChat: File offer from: %s (%s)"), + tray_set_tipf (_("XChat-WDK: File offer from: %s (%s)"), word[1], network); else - tray_set_tipf (_("XChat: %u file offers, latest from: %s (%s)"), + tray_set_tipf (_("XChat-WDK: %u file offers, latest from: %s (%s)"), tray_file_count, word[1], network); } if (prefs.input_balloon_priv) - tray_set_balloonf ("", _("XChat: File offer from: %s (%s)"), + tray_set_balloonf ("", _("XChat-WDK: File offer from: %s (%s)"), word[1], network); return XCHAT_EAT_NONE; @@ -722,7 +732,7 @@ tray_apply_setup (void) } else { - if (prefs.gui_tray) + if (prefs.gui_tray && !xtray_mode ()) tray_init (); } } @@ -754,7 +764,7 @@ tray_plugin_init (xchat_plugin *plugin_handle, char **plugin_name, xchat_hook_print (ph, "Focus Window", -1, tray_focus_cb, NULL); - if (prefs.gui_tray) + if (prefs.gui_tray && !xtray_mode ()) tray_init (); return 1; /* return 1 for success */ diff --git a/src/fe-gtk/plugingui.c b/src/fe-gtk/plugingui.c index de59e649..7d2dc85d 100644 --- a/src/fe-gtk/plugingui.c +++ b/src/fe-gtk/plugingui.c @@ -146,8 +146,13 @@ plugingui_load_cb (session *sess, char *file) void plugingui_load (void) { - gtkutil_file_req (_("Select a Plugin or Script to load"), plugingui_load_cb, - current_sess, NULL, FRF_ADDFOLDER); + gtkutil_file_req (_("Select a Plugin or Script to load"), plugingui_load_cb, current_sess, +#ifdef WIN32 + "Plugins and Scripts\0*.dll;*.lua;*.pl;*.py;*.tcl\0" + "All files\0*.*\0\0", 0); +#else + NULL, FRF_ADDFOLDER); +#endif } static void @@ -171,12 +176,12 @@ plugingui_unload (GtkWidget * wid, gpointer unused) len = strlen (file); #ifdef WIN32 - if (len > 4 && strcasecmp (file + len - 4, ".dll") == 0) + if (len > 4 && g_ascii_strcasecmp (file + len - 4, ".dll") == 0) #else #if defined(__hpux) - if (len > 3 && strcasecmp (file + len - 3, ".sl") == 0) + if (len > 3 && g_ascii_strcasecmp (file + len - 3, ".sl") == 0) #else - if (len > 3 && strcasecmp (file + len - 3, ".so") == 0) + if (len > 3 && g_ascii_strcasecmp (file + len - 3, ".so") == 0) #endif #endif { diff --git a/src/fe-gtk/rawlog.c b/src/fe-gtk/rawlog.c index 56ca0510..593468c1 100644 --- a/src/fe-gtk/rawlog.c +++ b/src/fe-gtk/rawlog.c @@ -19,9 +19,12 @@ #include <stdio.h> #include <string.h> #include <fcntl.h> -#include <unistd.h> #include <stdlib.h> +#ifndef WIN32 +#include <unistd.h> +#endif + #include "fe-gtk.h" #include <gtk/gtkbutton.h> diff --git a/src/fe-gtk/search.c b/src/fe-gtk/search.c index d62e79c7..30ef266f 100644 --- a/src/fe-gtk/search.c +++ b/src/fe-gtk/search.c @@ -42,15 +42,20 @@ #include "xtext.h" #include "maingui.h" - -static textentry *last; /* our last search pos */ -static int case_match = 0; -static int search_backward = 0; - +GtkWidget *searchwin; static void search_search (session * sess, const gchar *text) { + gtk_xtext_search_flags flags; + textentry *last; + GError *err = NULL; + + flags = ((prefs.text_search_case_match == 1? case_match: 0) | + (prefs.text_search_backward == 1? backward: 0) | + (prefs.text_search_highlight_all == 1? highlight: 0) | + (prefs.text_search_follow == 1? follow: 0) | + (prefs.text_search_regexp == 1? regexp: 0)); if (!is_session (sess)) { fe_message (_("The window you opened this Search " @@ -58,10 +63,20 @@ search_search (session * sess, const gchar *text) return; } - last = gtk_xtext_search (GTK_XTEXT (sess->gui->xtext), text, - last, case_match, search_backward); - if (!last) + last = gtk_xtext_search (GTK_XTEXT (sess->gui->xtext), text, flags, &err); + if (text == NULL || text[0] == 0) + { + return; + } + if (err) + { + fe_message (_(err->message), FE_MSG_ERROR); + g_error_free (err); + } + else if (!last) + { fe_message (_("Search hit end, not found."), FE_MSG_ERROR); + } } static void @@ -79,6 +94,23 @@ static void search_close_cb (GtkWidget * button, GtkWidget * win) { gtk_widget_destroy (win); + searchwin = NULL; +} + +static void +search_reset_cb (GtkWidget * button, session * sess) +{ + search_search (sess, ""); + if (searchwin) + { + search_close_cb (button, searchwin); + } +} + +static void +search_cleanup_cb (GtkWidget * button, GtkWidget * win) +{ + searchwin = NULL; } static void @@ -98,13 +130,26 @@ search_key_cb (GtkWidget * window, GdkEventKey * key, gpointer userdata) static void search_caseign_cb (GtkToggleButton * but, session * sess) { - case_match = (but->active)? 1: 0; + prefs.text_search_case_match = (but->active)? 1: 0; } static void search_dirbwd_cb (GtkToggleButton * but, session * sess) { - search_backward = (but->active)? 1: 0; + prefs.text_search_backward = (but->active)? 1: 0; +} + +static void +search_regexp_cb (GtkToggleButton * but, session * sess) +{ + prefs.text_search_regexp = (but->active)? 1: 0; +} + +static void +search_highlight_cb (GtkToggleButton * but, session * sess) +{ + prefs.text_search_highlight_all = (but->active)? 1: 0; + search_search (sess, NULL); } void @@ -112,18 +157,21 @@ search_open (session * sess) { GtkWidget *win, *hbox, *vbox, *entry, *wid; - last = NULL; + if (searchwin) + { + gtk_widget_destroy (searchwin); + searchwin = NULL; + } win = mg_create_generic_tab ("search", _("XChat: Search"), TRUE, FALSE, - NULL, NULL, 0, 0, &vbox, 0); + search_cleanup_cb, NULL, 0, 0, &vbox, 0); gtk_container_set_border_width (GTK_CONTAINER (win), 12); gtk_box_set_spacing (GTK_BOX (vbox), 4); + /* First line: _____________________ _Find */ hbox = gtk_hbox_new (0, 10); gtk_container_add (GTK_CONTAINER (vbox), hbox); gtk_widget_show (hbox); - gtkutil_label_new (_("Find:"), hbox); - entry = gtk_entry_new (); g_signal_connect (G_OBJECT (entry), "activate", G_CALLBACK (search_entry_cb), sess); @@ -131,29 +179,61 @@ search_open (session * sess) gtk_widget_show (entry); gtk_widget_grab_focus (entry); + wid = gtk_hbutton_box_new (); + gtk_container_add (GTK_CONTAINER (hbox), wid); + gtk_widget_show (wid); + wid = gtkutil_button (wid, GTK_STOCK_FIND, 0, search_find_cb, sess, + _("_Find")); + g_object_set_data (G_OBJECT (wid), "e", entry); + + /* Second line: X Match case */ wid = gtk_check_button_new_with_mnemonic (_("_Match case")); - GTK_TOGGLE_BUTTON (wid)->active = case_match; + GTK_TOGGLE_BUTTON (wid)->active = prefs.text_search_case_match; g_signal_connect (G_OBJECT (wid), "toggled", G_CALLBACK (search_caseign_cb), sess); gtk_container_add (GTK_CONTAINER (vbox), wid); + add_tip (wid, "Perform a case-sensitive search."); gtk_widget_show (wid); + /* Third line: X Search backwards */ wid = gtk_check_button_new_with_mnemonic (_("Search _backwards")); - GTK_TOGGLE_BUTTON (wid)->active = search_backward; + GTK_TOGGLE_BUTTON (wid)->active = prefs.text_search_backward; g_signal_connect (G_OBJECT (wid), "toggled", G_CALLBACK (search_dirbwd_cb), sess); gtk_container_add (GTK_CONTAINER (vbox), wid); + add_tip (wid, "Search from the newest text line to the oldest."); + gtk_widget_show (wid); + + /* Fourth line: X Highlight all */ + wid = gtk_check_button_new_with_mnemonic (_("_Highlight all")); + GTK_TOGGLE_BUTTON (wid)->active = prefs.text_search_highlight_all; + g_signal_connect (G_OBJECT (wid), "toggled", G_CALLBACK (search_highlight_cb), sess); + gtk_container_add (GTK_CONTAINER (vbox), wid); + add_tip (wid, "Highlight all occurrences, and underline the current occurrence."); gtk_widget_show (wid); + /* Fifth line: X Regular expression */ + wid = gtk_check_button_new_with_mnemonic (_("R_egular expression")); + GTK_TOGGLE_BUTTON (wid)->active = prefs.text_search_regexp; + g_signal_connect (G_OBJECT (wid), "toggled", G_CALLBACK (search_regexp_cb), sess); + gtk_container_add (GTK_CONTAINER (vbox), wid); + add_tip (wid, "Regard search string as a regular expression."); + gtk_widget_show (wid); + + /* Sixth line: _Close Close and _Reset */ hbox = gtk_hbutton_box_new (); gtk_box_pack_start (GTK_BOX (vbox), hbox, 0, 0, 4); gtk_widget_show (hbox); - gtkutil_button (hbox, GTK_STOCK_CLOSE, 0, search_close_cb, win, + wid = gtkutil_button (hbox, GTK_STOCK_CLOSE, 0, search_close_cb, win, _("_Close")); - wid = gtkutil_button (hbox, GTK_STOCK_FIND, 0, search_find_cb, sess, - _("_Find")); - g_object_set_data (G_OBJECT (wid), "e", entry); + add_tip (wid, "Close this box, but continue searching new lines."); + wid = gtkutil_button (hbox, "gtk-reset", 0, search_reset_cb, sess, + _("Close and _Reset")); + add_tip (wid, "Close this box, reset highlighted search items, and stop searching new lines."); - g_signal_connect (G_OBJECT (win), "key-press-event", G_CALLBACK (search_key_cb), win); + /* Add recognition of the ESC key to close the box */ + g_signal_connect (G_OBJECT (win), "key_press_event", G_CALLBACK (search_key_cb), win); + /* That's all, folks */ + searchwin = win; gtk_widget_show (win); } diff --git a/src/fe-gtk/servlistgui.c b/src/fe-gtk/servlistgui.c index 2ac0e6c9..96feb5f4 100644 --- a/src/fe-gtk/servlistgui.c +++ b/src/fe-gtk/servlistgui.c @@ -61,7 +61,7 @@ static GtkWidget *entry_nick1; static GtkWidget *entry_nick2; static GtkWidget *entry_nick3; static GtkWidget *entry_guser; -static GtkWidget *entry_greal; +/* static GtkWidget *entry_greal; */ /* edit area */ static GtkWidget *edit_win; @@ -649,8 +649,8 @@ servlist_savegui (void) if (GTK_ENTRY (entry_guser)->text[0] == 0) return 1; - if (GTK_ENTRY (entry_greal)->text[0] == 0) - return 1; + /* if (GTK_ENTRY (entry_greal)->text[0] == 0) + return 1; */ strcpy (prefs.nick1, GTK_ENTRY (entry_nick1)->text); strcpy (prefs.nick2, GTK_ENTRY (entry_nick2)->text); @@ -659,7 +659,7 @@ servlist_savegui (void) sp = strchr (prefs.username, ' '); if (sp) sp[0] = 0; /* spaces will break the login */ - strcpy (prefs.realname, GTK_ENTRY (entry_greal)->text); + /* strcpy (prefs.realname, GTK_ENTRY (entry_greal)->text); */ servlist_save (); return 0; @@ -1624,12 +1624,12 @@ servlist_open_networks (void) GtkWidget *label4; GtkWidget *label5; GtkWidget *label6; - GtkWidget *label7; + /* GtkWidget *label7; */ GtkWidget *entry1; GtkWidget *entry2; GtkWidget *entry3; GtkWidget *entry4; - GtkWidget *entry5; + /* GtkWidget *entry5; */ GtkWidget *vbox2; GtkWidget *label1; GtkWidget *table4; @@ -1703,12 +1703,12 @@ servlist_open_networks (void) (GtkAttachOptions) (0), 0, 0); gtk_misc_set_alignment (GTK_MISC (label6), 0, 0.5); - label7 = gtk_label_new_with_mnemonic (_("Rea_l name:")); + /* label7 = gtk_label_new_with_mnemonic (_("Rea_l name:")); gtk_widget_show (label7); gtk_table_attach (GTK_TABLE (table1), label7, 0, 1, 4, 5, (GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (0), 0, 0); - gtk_misc_set_alignment (GTK_MISC (label7), 0, 0.5); + gtk_misc_set_alignment (GTK_MISC (label7), 0, 0.5);*/ entry_nick1 = entry1 = gtk_entry_new (); gtk_entry_set_text (GTK_ENTRY (entry1), prefs.nick1); @@ -1738,12 +1738,12 @@ servlist_open_networks (void) (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), (GtkAttachOptions) (0), 0, 0); - entry_greal = entry5 = gtk_entry_new (); + /* entry_greal = entry5 = gtk_entry_new (); gtk_entry_set_text (GTK_ENTRY (entry5), prefs.realname); gtk_widget_show (entry5); gtk_table_attach (GTK_TABLE (table1), entry5, 1, 2, 4, 5, (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), - (GtkAttachOptions) (0), 0, 0); + (GtkAttachOptions) (0), 0, 0); */ vbox2 = gtk_vbox_new (FALSE, 0); gtk_widget_show (vbox2); @@ -1882,7 +1882,7 @@ servlist_open_networks (void) gtk_label_set_mnemonic_widget (GTK_LABEL (label3), entry1); gtk_label_set_mnemonic_widget (GTK_LABEL (label6), entry4); - gtk_label_set_mnemonic_widget (GTK_LABEL (label7), entry5); + /* gtk_label_set_mnemonic_widget (GTK_LABEL (label7), entry5); */ gtk_widget_grab_focus (networks_tree); gtk_widget_grab_default (button_close); diff --git a/src/fe-gtk/setup.c b/src/fe-gtk/setup.c index 517e0944..cec06b25 100644 --- a/src/fe-gtk/setup.c +++ b/src/fe-gtk/setup.c @@ -102,7 +102,12 @@ typedef struct static const setting textbox_settings[] = { {ST_HEADER, N_("Text Box Appearance"),0,0,0}, +#ifdef WIN32 + {ST_EFONT, N_("Main font:"), P_OFFSETNL(font_main), 0, 0, sizeof prefs.font_main}, + {ST_ENTRY, N_("Alternative fonts:"), P_OFFSETNL(font_alternative), "Separate multiple entries with commas without spaces before or after.", 0, sizeof prefs.font_alternative}, +#else {ST_EFONT, N_("Font:"), P_OFFSETNL(font_normal), 0, 0, sizeof prefs.font_normal}, +#endif {ST_EFILE, N_("Background image:"), P_OFFSETNL(background), 0, 0, sizeof prefs.background}, {ST_NUMBER, N_("Scrollback lines:"), P_OFFINTNL(max_lines),0,0,100000}, {ST_TOGGLE, N_("Colored nick names"), P_OFFINTNL(colorednicks), @@ -120,7 +125,24 @@ static const setting textbox_settings[] = {ST_HEADER, N_("Time Stamps"),0,0,0}, {ST_TOGGLE, N_("Enable time stamps"), P_OFFINTNL(timestamp),0,0,2}, {ST_ENTRY, N_("Time stamp format:"), P_OFFSETNL(stamp_format), - N_("See strftime manpage for details."),0,sizeof prefs.stamp_format}, +#ifdef WIN32 + N_("See the strftime MSDN article for details."),0,sizeof prefs.stamp_format}, +#else + N_("See the strftime manpage for details."),0,sizeof prefs.stamp_format}, +#endif + + {ST_HEADER, N_("Auto-Copy Behavior"),0,0,0}, + {ST_TOGGLE, N_("Automatically copy selected text"), P_OFFINTNL(autocopy_text), + N_("Copy selected text to clipboard when left mouse button is released. " + "Otherwise, CONTROL-SHIFT-C will copy the " + "selected text to the clipboard."), 0, 0}, + {ST_TOGGLE, N_("Automatically include time stamps"), P_OFFINTNL(autocopy_stamp), + N_("Automatically include time stamps in copied lines of text. Otherwise, " + "include time stamps if the SHIFT key is held down while selecting."), 0, 0}, + {ST_TOGGLE, N_("Automatically include color information"), P_OFFINTNL(autocopy_color), + N_("Automatically include color information in copied lines of text. " + "Otherwise, include color information if the CONTROL key is held down " + "while selecting."), 0, 0}, {ST_END, 0, 0, 0, 0, 0} }; @@ -138,6 +160,12 @@ static const setting inputbox_settings[] = {ST_TOGGLE, N_("Use the Text box font and colors"), P_OFFINTNL(style_inputbox),0,0,0}, #if defined(USE_GTKSPELL) || defined(USE_LIBSEXY) {ST_TOGGLE, N_("Spell checking"), P_OFFINTNL(gui_input_spell),0,0,0}, + {ST_ENTRY, N_("Dictionaries to use:"), P_OFFSETNL(spell_langs),0,0,sizeof prefs.spell_langs}, +#ifdef WIN32 + {ST_LABEL, N_("Use language codes (as in \"share\\myspell\\dicts\").\nSeparate multiple entries with commas.")}, +#else + {ST_LABEL, N_("Use language codes. Separate multiple entries with commas.")}, +#endif #endif {ST_HEADER, N_("Nick Completion"),0,0,0}, @@ -348,6 +376,24 @@ static const setting alert_settings[] = {ST_END, 0, 0, 0, 0, 0} }; +static const setting alert_settings_xtray[] = +{ + {ST_HEADER, N_("Alerts"),0,0,0}, + + {ST_ALERTHEAD}, + {ST_3OGGLE, N_("Blink task bar on:"), 0, 0, (void *)taskbarlist, 0}, + {ST_3OGGLE, N_("Make a beep sound on:"), 0, 0, (void *)beeplist, 0}, + + {ST_HEADER, N_("Highlighted Messages"),0,0,0}, + {ST_LABEL, N_("Highlighted messages are ones where your nickname is mentioned, but also:"), 0, 0, 0, 1}, + + {ST_ENTRY, N_("Extra words to highlight:"), P_OFFSETNL(irc_extra_hilight), 0, 0, sizeof prefs.irc_extra_hilight}, + {ST_ENTRY, N_("Nick names not to highlight:"), P_OFFSETNL(irc_no_hilight), 0, 0, sizeof prefs.irc_no_hilight}, + {ST_ENTRY, N_("Nick names to always highlight:"), P_OFFSETNL(irc_nick_hilight), 0, 0, sizeof prefs.irc_nick_hilight}, + {ST_LABEL, N_("Separate multiple words with commas.\nWildcards are accepted.")}, + {ST_END, 0, 0, 0, 0, 0} +}; + static const setting general_settings[] = { {ST_HEADER, N_("Default Messages"),0,0,0}, @@ -363,7 +409,6 @@ static const setting general_settings[] = {ST_END, 0, 0, 0, 0, 0} }; -#if 0 static const setting advanced_settings[] = { {ST_HEADER, N_("Advanced Settings"),0,0,0}, @@ -371,6 +416,25 @@ static const setting advanced_settings[] = {ST_TOGGLE, N_("Display MODEs in raw form"), P_OFFINTNL(raw_modes), 0, 0, 0}, {ST_TOGGLE, N_("Whois on notify"), P_OFFINTNL(whois_on_notifyonline), N_("Sends a /WHOIS when a user comes online in your notify list"), 0, 0}, {ST_TOGGLE, N_("Hide join and part messages"), P_OFFINTNL(confmode), N_("Hide channel join/part messages by default"), 0, 0}, + {ST_ENTRY, N_("License Text:"), P_OFFSETNL(gui_license), 0, 0, sizeof prefs.gui_license}, + {ST_HEADER, N_("Auto Open DCC Windows"),0,0,0}, + {ST_TOGGLE, N_("Send window"), P_OFFINTNL(autoopendccsendwindow), 0, 0, 0}, + {ST_TOGGLE, N_("Receive window"), P_OFFINTNL(autoopendccrecvwindow), 0, 0, 0}, + {ST_TOGGLE, N_("Chat window"), P_OFFINTNL(autoopendccchatwindow), 0, 0, 0}, + + {ST_END, 0, 0, 0, 0, 0} +}; + +#ifdef WIN32 +static const setting advanced_settings_oneinstance[] = +{ + {ST_HEADER, N_("Advanced Settings"),0,0,0}, + {ST_NUMBER, N_("Auto reconnect delay:"), P_OFFINTNL(recon_delay), 0, 0, 9999}, + {ST_TOGGLE, N_("Display MODEs in raw form"), P_OFFINTNL(raw_modes), 0, 0, 0}, + {ST_TOGGLE, N_("Whois on notify"), P_OFFINTNL(whois_on_notifyonline), N_("Sends a /WHOIS when a user comes online in your notify list"), 0, 0}, + {ST_TOGGLE, N_("Hide join and part messages"), P_OFFINTNL(confmode), N_("Hide channel join/part messages by default"), 0, 0}, + {ST_TOGGLE, N_("Allow only one instance of XChat to run"), P_OFFINTNL(gui_one_instance), 0, 0, 0}, + {ST_ENTRY, N_("License Text:"), P_OFFSETNL(gui_license), 0, 0, sizeof prefs.gui_license}, {ST_HEADER, N_("Auto Open DCC Windows"),0,0,0}, {ST_TOGGLE, N_("Send window"), P_OFFINTNL(autoopendccsendwindow), 0, 0, 0}, {ST_TOGGLE, N_("Receive window"), P_OFFINTNL(autoopendccrecvwindow), 0, 0, 0}, @@ -391,7 +455,11 @@ static const setting logging_settings[] = {ST_HEADER, N_("Time Stamps"),0,0,0}, {ST_TOGGLE, N_("Insert timestamps in logs"), P_OFFINTNL(timestamp_logs), 0, 0, 2}, {ST_ENTRY, N_("Log timestamp format:"), P_OFFSETNL(timestamp_log_format), 0, 0, sizeof prefs.timestamp_log_format}, - {ST_LABEL, N_("See strftime manpage for details.")}, +#ifdef WIN32 + {ST_LABEL, N_("See the strftime MSDN article for details.")}, +#else + {ST_LABEL, N_("See the strftime manpage for details.")}, +#endif {ST_END, 0, 0, 0, 0, 0} }; @@ -1328,6 +1396,9 @@ setup_create_color_page (void) setup_create_other_color (_("New message:"), COL_NEW_MSG, 10, tab); setup_create_other_colorR (_("Away user:"), COL_AWAY, 10, tab); setup_create_other_color (_("Highlight:"), COL_HILIGHT, 11, tab); +#if defined(USE_GTKSPELL) || defined(USE_LIBSEXY) + setup_create_other_colorR (_("Spell checker:"), COL_SPELL, 11, tab); +#endif return box; } @@ -1711,7 +1782,7 @@ static const char *const cata[] = N_("General"), N_("Logging"), N_("Sound"), -/* N_("Advanced"),*/ + N_("Advanced"), NULL, N_("Network"), N_("Network setup"), @@ -1732,10 +1803,33 @@ setup_create_pages (GtkWidget *box) setup_add_page (cata[3], book, setup_create_page (userlist_settings)); setup_add_page (cata[4], book, setup_create_page (tabs_settings)); setup_add_page (cata[5], book, setup_create_color_page ()); - setup_add_page (cata[8], book, setup_create_page (alert_settings)); + + if (xtray_mode ()) + { + setup_add_page (cata[8], book, setup_create_page (alert_settings_xtray)); + } + else + { + setup_add_page (cata[8], book, setup_create_page (alert_settings)); + } + setup_add_page (cata[9], book, setup_create_page (general_settings)); setup_add_page (cata[10], book, setup_create_page (logging_settings)); setup_add_page (cata[11], book, setup_create_sound_page ()); + +#ifdef WIN32 + if (portable_mode ()) + { + setup_add_page (cata[12], book, setup_create_page (advanced_settings)); + } + else + { + setup_add_page (cata[12], book, setup_create_page (advanced_settings_oneinstance)); + } +#else + setup_add_page (cata[12], book, setup_create_page (advanced_settings)); +#endif + setup_add_page (cata[14], book, setup_create_page (network_settings)); setup_add_page (cata[15], book, setup_create_page (filexfer_settings)); @@ -1971,6 +2065,12 @@ setup_apply_real (int new_pix, int do_ulist, int do_layout) static void setup_apply (struct xchatprefs *pr) { +#ifdef WIN32 + PangoFontDescription *old_desc; + PangoFontDescription *new_desc; + char buffer[4 * FONTNAMELEN + 1]; + time_t rawtime; +#endif int new_pix = FALSE; int noapply = FALSE; int do_ulist = FALSE; @@ -2014,6 +2114,30 @@ setup_apply (struct xchatprefs *pr) memcpy (&prefs, pr, sizeof (prefs)); +#ifdef WIN32 + /* merge font_main and font_alternative into font_normal */ + old_desc = pango_font_description_from_string (prefs.font_main); + sprintf (buffer, "%s,%s", pango_font_description_get_family (old_desc), prefs.font_alternative); + new_desc = pango_font_description_from_string (buffer); + pango_font_description_set_weight (new_desc, pango_font_description_get_weight (old_desc)); + pango_font_description_set_style (new_desc, pango_font_description_get_style (old_desc)); + pango_font_description_set_size (new_desc, pango_font_description_get_size (old_desc)); + sprintf (prefs.font_normal, "%s", pango_font_description_to_string (new_desc)); + + /* FIXME this is not required after pango_font_description_from_string() + g_free (old_desc); + g_free (new_desc); + */ + + /* workaround for strftime differences between POSIX and MSVC */ + time (&rawtime); + + if (!strftime (buffer, sizeof (buffer), prefs.stamp_format, localtime (&rawtime)) || !strftime (buffer, sizeof (buffer), prefs.timestamp_log_format, localtime (&rawtime))) + { + fe_message (_("Invalid time stamp format! See the strftime MSDN article for details."), FE_MSG_ERROR); + } +#endif + setup_apply_real (new_pix, do_ulist, do_layout); if (noapply) diff --git a/src/fe-gtk/sexy-iso-codes.c b/src/fe-gtk/sexy-iso-codes.c new file mode 100644 index 00000000..4b637c9f --- /dev/null +++ b/src/fe-gtk/sexy-iso-codes.c @@ -0,0 +1,305 @@ +/* + * Copyright (C) 2005 Nathan Fredrickson + * Borrowed from Galeon, renamed, and simplified to only use iso-codes with no + * fallback method. + * + * Copyright (C) 2004 Christian Persch + * Copyright (C) 2004 Crispin Flowerday + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the + * Free Software Foundation, Inc., 59 Temple Place - Suite 330, + * Boston, MA 02111-1307, USA. + * + */ + +#include "../../config.h" + +#include "sexy-iso-codes.h" + +#include <glib/gi18n.h> + +#include <string.h> + +#include <libxml/xmlreader.h> + +static GHashTable *iso_639_table = NULL; +static GHashTable *iso_3166_table = NULL; + +#define ISO_639_DOMAIN "iso_639" +#define ISO_3166_DOMAIN "iso_3166" + +#ifdef HAVE_ISO_CODES + +#define ISOCODESLOCALEDIR "/share/locale" + +static void +read_iso_639_entry (xmlTextReaderPtr reader, + GHashTable *table) +{ + xmlChar *code, *name; + + code = xmlTextReaderGetAttribute (reader, (const xmlChar *) "iso_639_1_code"); + name = xmlTextReaderGetAttribute (reader, (const xmlChar *) "name"); + + /* Get iso-639-2 code */ + if (code == NULL || code[0] == '\0') + { + xmlFree (code); + /* FIXME: use the 2T or 2B code? */ + code = xmlTextReaderGetAttribute (reader, (const xmlChar *) "iso_639_2T_code"); + } + + if (code != NULL && code[0] != '\0' && name != NULL && name[0] != '\0') + { + g_hash_table_insert (table, code, name); + } + else + { + xmlFree (code); + xmlFree (name); + } +} + +static void +read_iso_3166_entry (xmlTextReaderPtr reader, + GHashTable *table) +{ + xmlChar *code, *name; + + code = xmlTextReaderGetAttribute (reader, (const xmlChar *) "alpha_2_code"); + name = xmlTextReaderGetAttribute (reader, (const xmlChar *) "name"); + + if (code != NULL && code[0] != '\0' && name != NULL && name[0] != '\0') + { + char *lcode; + + lcode = g_ascii_strdown ((char *) code, -1); + xmlFree (code); + + g_hash_table_insert (table, lcode, name); + } + else + { + xmlFree (code); + xmlFree (name); + } + +} + +typedef enum +{ + STATE_START, + STATE_STOP, + STATE_ENTRIES, +} ParserState; + +static gboolean +load_iso_entries (int iso, + GFunc read_entry_func, + gpointer user_data) +{ + xmlTextReaderPtr reader; + ParserState state = STATE_START; + xmlChar iso_entries[32], iso_entry[32]; + char *filename; + int ret = -1; + +#ifdef WIN32 + filename = g_strdup_printf (".\\share\\xml\\iso-codes\\iso_%d.xml", iso); +#else + filename = g_strdup_printf ("/usr/share/xml/iso-codes/iso_%d.xml", iso); +#endif + reader = xmlNewTextReaderFilename (filename); + if (reader == NULL) goto out; + + xmlStrPrintf (iso_entries, sizeof (iso_entries), + (xmlChar *)"iso_%d_entries", iso); + xmlStrPrintf (iso_entry, sizeof (iso_entry), + (xmlChar *)"iso_%d_entry", iso); + + ret = xmlTextReaderRead (reader); + + while (ret == 1) + { + const xmlChar *tag; + xmlReaderTypes type; + + tag = xmlTextReaderConstName (reader); + type = xmlTextReaderNodeType (reader); + + if (state == STATE_ENTRIES && + type == XML_READER_TYPE_ELEMENT && + xmlStrEqual (tag, iso_entry)) + { + read_entry_func (reader, user_data); + } + else if (state == STATE_START && + type == XML_READER_TYPE_ELEMENT && + xmlStrEqual (tag, iso_entries)) + { + state = STATE_ENTRIES; + } + else if (state == STATE_ENTRIES && + type == XML_READER_TYPE_END_ELEMENT && + xmlStrEqual (tag, iso_entries)) + { + state = STATE_STOP; + } + else if (type == XML_READER_TYPE_SIGNIFICANT_WHITESPACE || + type == XML_READER_TYPE_WHITESPACE || + type == XML_READER_TYPE_TEXT || + type == XML_READER_TYPE_COMMENT) + { + /* eat it */ + } + else + { + /* ignore it */ + } + + ret = xmlTextReaderRead (reader); + } + + xmlFreeTextReader (reader); + +out: + if (ret < 0 || state != STATE_STOP) + { + /* This is not critical, we will fallback to our own code */ + g_free (filename); + return FALSE; + } + + g_free (filename); + + return TRUE; +} + +#endif /* HAVE_ISO_CODES */ + + +static void +ensure_iso_codes_initialised (void) +{ + static gboolean initialised = FALSE; + + if (initialised == TRUE) + { + return; + } + initialised = TRUE; + +#if defined (ENABLE_NLS) && defined (HAVE_ISO_CODES) + bindtextdomain (ISO_639_DOMAIN, ISOCODESLOCALEDIR); + bind_textdomain_codeset (ISO_639_DOMAIN, "UTF-8"); + + bindtextdomain(ISO_3166_DOMAIN, ISOCODESLOCALEDIR); + bind_textdomain_codeset (ISO_3166_DOMAIN, "UTF-8"); +#endif + + iso_639_table = g_hash_table_new_full (g_str_hash, g_str_equal, + (GDestroyNotify) xmlFree, + (GDestroyNotify) xmlFree); + + iso_3166_table = g_hash_table_new_full (g_str_hash, g_str_equal, + (GDestroyNotify) g_free, + (GDestroyNotify) xmlFree); + +#ifdef HAVE_ISO_CODES + load_iso_entries (639, (GFunc) read_iso_639_entry, iso_639_table); + load_iso_entries (3166, (GFunc) read_iso_3166_entry, iso_3166_table); +#endif +} + + +static char * +get_iso_name_for_lang_code (const char *code) +{ + char **str; + char *name = NULL; + const char *langname, *localename; + int len; + + str = g_strsplit (code, "_", -1); + + /* count the entries */ + for (len = 0; str[len]; len++ ) /* empty */; + + g_return_val_if_fail (len != 0, NULL); + + langname = (const char *) g_hash_table_lookup (iso_639_table, str[0]); + + if (len == 1 && langname != NULL) + { + name = g_strdup (dgettext (ISO_639_DOMAIN, langname)); + } + else if (len == 2 && langname != NULL) + { + localename = (const char *) g_hash_table_lookup (iso_3166_table, str[1]); + + if (localename != NULL) + { + /* translators: the first %s is the language name, and the + * second %s is the locale name. Example: + * "French (France) + * + * Also: The text before the "|" is context to help you decide on + * the correct translation. You MUST OMIT it in the translated string. + */ + name = g_strdup_printf (Q_("language|%s (%s)"), + dgettext (ISO_639_DOMAIN, langname), + dgettext (ISO_3166_DOMAIN, localename)); + } + else + { + name = g_strdup_printf (Q_("language|%s (%s)"), + dgettext (ISO_639_DOMAIN, langname), str[1]); + } + } + + g_strfreev (str); + + return name; +} + +/** + * gtkspell_iso_codes_lookup_name_for_code: + * @code: A language code, e.g. en_CA + * + * Looks up a name to display to the user for a language code, + * this might use the iso-codes package if support was compiled + * in, and it is available + * + * Returns: the UTF-8 string to display to the user, or NULL if + * a name for the code could not be found + */ +char * +gtkspell_iso_codes_lookup_name_for_code (const char *code) +{ + char * lcode; + char * ret; + + g_return_val_if_fail (code != NULL, NULL); + + ensure_iso_codes_initialised (); + + lcode = g_ascii_strdown (code, -1); + + ret = get_iso_name_for_lang_code (lcode); + + g_free (lcode); + + return ret; +} + diff --git a/src/fe-gtk/sexy-iso-codes.h b/src/fe-gtk/sexy-iso-codes.h new file mode 100644 index 00000000..e5f37162 --- /dev/null +++ b/src/fe-gtk/sexy-iso-codes.h @@ -0,0 +1,37 @@ +/* + * Copyright (C) 2005 Nathan Fredrickson + * Borrowed from Galeon, renamed, and simplified to only use iso-codes with no + * fallback method. + * + * Copyright (C) 2004 Christian Persch + * Copyright (C) 2004 Crispin Flowerday + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the + * Free Software Foundation, Inc., 59 Temple Place - Suite 330, + * Boston, MA 02111-1307, USA. + * + */ + +#ifndef GTKSPELL_ISO_CODES_H +#define GTKSPELL_ISO_CODES_H + +#include <glib.h> + +G_BEGIN_DECLS + +char * gtkspell_iso_codes_lookup_name_for_code (const char *code); + +G_END_DECLS + +#endif diff --git a/src/fe-gtk/sexy-marshal.c b/src/fe-gtk/sexy-marshal.c new file mode 100644 index 00000000..10a629f2 --- /dev/null +++ b/src/fe-gtk/sexy-marshal.c @@ -0,0 +1,129 @@ + +#include <glib-object.h> + + +#ifdef G_ENABLE_DEBUG +#define g_marshal_value_peek_boolean(v) g_value_get_boolean (v) +#define g_marshal_value_peek_char(v) g_value_get_char (v) +#define g_marshal_value_peek_uchar(v) g_value_get_uchar (v) +#define g_marshal_value_peek_int(v) g_value_get_int (v) +#define g_marshal_value_peek_uint(v) g_value_get_uint (v) +#define g_marshal_value_peek_long(v) g_value_get_long (v) +#define g_marshal_value_peek_ulong(v) g_value_get_ulong (v) +#define g_marshal_value_peek_int64(v) g_value_get_int64 (v) +#define g_marshal_value_peek_uint64(v) g_value_get_uint64 (v) +#define g_marshal_value_peek_enum(v) g_value_get_enum (v) +#define g_marshal_value_peek_flags(v) g_value_get_flags (v) +#define g_marshal_value_peek_float(v) g_value_get_float (v) +#define g_marshal_value_peek_double(v) g_value_get_double (v) +#define g_marshal_value_peek_string(v) (char*) g_value_get_string (v) +#define g_marshal_value_peek_param(v) g_value_get_param (v) +#define g_marshal_value_peek_boxed(v) g_value_get_boxed (v) +#define g_marshal_value_peek_pointer(v) g_value_get_pointer (v) +#define g_marshal_value_peek_object(v) g_value_get_object (v) +#else /* !G_ENABLE_DEBUG */ +/* WARNING: This code accesses GValues directly, which is UNSUPPORTED API. + * Do not access GValues directly in your code. Instead, use the + * g_value_get_*() functions + */ +#define g_marshal_value_peek_boolean(v) (v)->data[0].v_int +#define g_marshal_value_peek_char(v) (v)->data[0].v_int +#define g_marshal_value_peek_uchar(v) (v)->data[0].v_uint +#define g_marshal_value_peek_int(v) (v)->data[0].v_int +#define g_marshal_value_peek_uint(v) (v)->data[0].v_uint +#define g_marshal_value_peek_long(v) (v)->data[0].v_long +#define g_marshal_value_peek_ulong(v) (v)->data[0].v_ulong +#define g_marshal_value_peek_int64(v) (v)->data[0].v_int64 +#define g_marshal_value_peek_uint64(v) (v)->data[0].v_uint64 +#define g_marshal_value_peek_enum(v) (v)->data[0].v_long +#define g_marshal_value_peek_flags(v) (v)->data[0].v_ulong +#define g_marshal_value_peek_float(v) (v)->data[0].v_float +#define g_marshal_value_peek_double(v) (v)->data[0].v_double +#define g_marshal_value_peek_string(v) (v)->data[0].v_pointer +#define g_marshal_value_peek_param(v) (v)->data[0].v_pointer +#define g_marshal_value_peek_boxed(v) (v)->data[0].v_pointer +#define g_marshal_value_peek_pointer(v) (v)->data[0].v_pointer +#define g_marshal_value_peek_object(v) (v)->data[0].v_pointer +#endif /* !G_ENABLE_DEBUG */ + + +/* BOOLEAN:STRING (./marshal.list:1) */ +void +sexy_marshal_BOOLEAN__STRING (GClosure *closure, + GValue *return_value, + guint n_param_values, + const GValue *param_values, + gpointer invocation_hint, + gpointer marshal_data) +{ + typedef gboolean (*GMarshalFunc_BOOLEAN__STRING) (gpointer data1, + gpointer arg_1, + gpointer data2); + register GMarshalFunc_BOOLEAN__STRING callback; + register GCClosure *cc = (GCClosure*) closure; + register gpointer data1, data2; + gboolean v_return; + + g_return_if_fail (return_value != NULL); + g_return_if_fail (n_param_values == 2); + + if (G_CCLOSURE_SWAP_DATA (closure)) + { + data1 = closure->data; + data2 = g_value_peek_pointer (param_values + 0); + } + else + { + data1 = g_value_peek_pointer (param_values + 0); + data2 = closure->data; + } + callback = (GMarshalFunc_BOOLEAN__STRING) (marshal_data ? marshal_data : cc->callback); + + v_return = callback (data1, + g_marshal_value_peek_string (param_values + 1), + data2); + + g_value_set_boolean (return_value, v_return); +} + +/* OBJECT:OBJECT,OBJECT (./marshal.list:2) */ +void +sexy_marshal_OBJECT__OBJECT_OBJECT (GClosure *closure, + GValue *return_value, + guint n_param_values, + const GValue *param_values, + gpointer invocation_hint, + gpointer marshal_data) +{ + typedef GObject* (*GMarshalFunc_OBJECT__OBJECT_OBJECT) (gpointer data1, + gpointer arg_1, + gpointer arg_2, + gpointer data2); + register GMarshalFunc_OBJECT__OBJECT_OBJECT callback; + register GCClosure *cc = (GCClosure*) closure; + register gpointer data1, data2; + GObject* v_return; + + g_return_if_fail (return_value != NULL); + g_return_if_fail (n_param_values == 3); + + if (G_CCLOSURE_SWAP_DATA (closure)) + { + data1 = closure->data; + data2 = g_value_peek_pointer (param_values + 0); + } + else + { + data1 = g_value_peek_pointer (param_values + 0); + data2 = closure->data; + } + callback = (GMarshalFunc_OBJECT__OBJECT_OBJECT) (marshal_data ? marshal_data : cc->callback); + + v_return = callback (data1, + g_marshal_value_peek_object (param_values + 1), + g_marshal_value_peek_object (param_values + 2), + data2); + + g_value_take_object (return_value, v_return); +} + diff --git a/src/fe-gtk/sexy-marshal.h b/src/fe-gtk/sexy-marshal.h new file mode 100644 index 00000000..f41eccbe --- /dev/null +++ b/src/fe-gtk/sexy-marshal.h @@ -0,0 +1,28 @@ + +#ifndef __sexy_marshal_MARSHAL_H__ +#define __sexy_marshal_MARSHAL_H__ + +#include <glib-object.h> + +G_BEGIN_DECLS + +/* BOOLEAN:STRING (./marshal.list:1) */ +extern void sexy_marshal_BOOLEAN__STRING (GClosure *closure, + GValue *return_value, + guint n_param_values, + const GValue *param_values, + gpointer invocation_hint, + gpointer marshal_data); + +/* OBJECT:OBJECT,OBJECT (./marshal.list:2) */ +extern void sexy_marshal_OBJECT__OBJECT_OBJECT (GClosure *closure, + GValue *return_value, + guint n_param_values, + const GValue *param_values, + gpointer invocation_hint, + gpointer marshal_data); + +G_END_DECLS + +#endif /* __sexy_marshal_MARSHAL_H__ */ + diff --git a/src/fe-gtk/sexy-spell-entry.c b/src/fe-gtk/sexy-spell-entry.c index d67ffe2d..d6f4ad63 100644 --- a/src/fe-gtk/sexy-spell-entry.c +++ b/src/fe-gtk/sexy-spell-entry.c @@ -26,10 +26,19 @@ #include <gtk/gtk.h> #include "sexy-spell-entry.h" #include <string.h> +#include <fcntl.h> #include <glib/gi18n.h> #include <sys/types.h> -/*#include "gtkspell-iso-codes.h" -#include "sexy-marshal.h"*/ +#include <sys/stat.h> +#include "sexy-iso-codes.h" +#include "sexy-marshal.h" + +#ifdef WIN32 +#include "typedef.h" +#endif + +#include "../common/cfgfiles.h" +#include "../common/xchatc.h" /* * Bunch of poop to make enchant into a runtime dependency rather than a @@ -134,12 +143,19 @@ initialize_enchant () GModule *enchant; gpointer funcptr; +#ifdef WIN32 + enchant = g_module_open("libenchant.dll", 0); +#else enchant = g_module_open("libenchant", 0); +#endif if (enchant == NULL) { +#ifndef WIN32 enchant = g_module_open("libenchant.so.1", 0); - if (enchant == NULL) - return; + if (enchant == NULL) + return; +#endif + return; } have_enchant = TRUE; @@ -207,14 +223,14 @@ sexy_spell_entry_class_init(SexySpellEntryClass *klass) * Returns: %FALSE to indicate that the word should be marked as * correct. */ -/* signals[WORD_CHECK] = g_signal_new("word_check", + signals[WORD_CHECK] = g_signal_new("word_check", G_TYPE_FROM_CLASS(object_class), G_SIGNAL_RUN_LAST, G_STRUCT_OFFSET(SexySpellEntryClass, word_check), (GSignalAccumulator) spell_accumulator, NULL, sexy_marshal_BOOLEAN__STRING, G_TYPE_BOOLEAN, - 1, G_TYPE_STRING);*/ + 1, G_TYPE_STRING); } static void @@ -260,8 +276,42 @@ gtk_entry_find_position (GtkEntry *entry, gint x) static void insert_underline(SexySpellEntry *entry, guint start, guint end) { - PangoAttribute *ucolor = pango_attr_underline_color_new (65535, 0, 0); - PangoAttribute *unline = pango_attr_underline_new (PANGO_UNDERLINE_ERROR); + int fh, l; + int red, green, blue; + struct stat st; + char *cfg; + PangoAttribute *ucolor; + PangoAttribute *unline; + + fh = xchat_open_file ("colors.conf", O_RDONLY, 0, 0); + + if (fh != -1) + { + fstat (fh, &st); + cfg = malloc (st.st_size + 1); + + if (cfg) + { + cfg[0] = '\0'; + l = read (fh, cfg, st.st_size); + if (l >= 0) + { + cfg[l] = '\0'; + } + + cfg_get_color (cfg, "color_265", &red, &green, &blue); + free (cfg); + } + + close (fh); + } else + { + red = 65535; + green = blue = 0; + } + + ucolor = pango_attr_underline_color_new (red, green, blue); + unline = pango_attr_underline_new (PANGO_UNDERLINE_ERROR); ucolor->start_index = start; unline->start_index = start; @@ -457,10 +507,6 @@ build_spelling_menu(SexySpellEntry *entry, const gchar *word) if (entry->priv->dict_list == NULL) return topmenu; -#if 1 - dict = (struct EnchantDict *) entry->priv->dict_list->data; - build_suggestion_menu(entry, topmenu, dict, word); -#else /* Suggestions */ if (g_slist_length(entry->priv->dict_list) == 1) { dict = (struct EnchantDict *) entry->priv->dict_list->data; @@ -489,7 +535,6 @@ build_spelling_menu(SexySpellEntry *entry, const gchar *word) build_suggestion_menu(entry, menu, dict, word); } } -#endif /* Separator */ mi = gtk_separator_menu_item_new (); @@ -503,11 +548,6 @@ build_spelling_menu(SexySpellEntry *entry, const gchar *word) gtk_image_menu_item_set_image(GTK_IMAGE_MENU_ITEM(mi), gtk_image_new_from_stock(GTK_STOCK_ADD, GTK_ICON_SIZE_MENU)); -#if 1 - dict = (struct EnchantDict *) entry->priv->dict_list->data; - g_object_set_data(G_OBJECT(mi), "enchant-dict", dict); - g_signal_connect(G_OBJECT(mi), "activate", G_CALLBACK(add_to_dictionary), entry); -#else if (g_slist_length(entry->priv->dict_list) == 1) { dict = (struct EnchantDict *) entry->priv->dict_list->data; g_object_set_data(G_OBJECT(mi), "enchant-dict", dict); @@ -539,7 +579,6 @@ build_spelling_menu(SexySpellEntry *entry, const gchar *word) gtk_menu_shell_append(GTK_MENU_SHELL(menu), submi); } } -#endif gtk_widget_show_all(mi); gtk_menu_shell_append(GTK_MENU_SHELL(topmenu), mi); @@ -721,11 +760,7 @@ word_misspelled(SexySpellEntry *entry, int start, int end) g_strlcpy(word, text + start, end - start + 1); -#if 0 g_signal_emit(entry, signals[WORD_CHECK], 0, word, &ret); -#else - ret = default_word_check (entry, word); -#endif g_free(word); return ret; @@ -921,10 +956,10 @@ void sexy_spell_entry_activate_default_languages(SexySpellEntry *entry) { #if GLIB_CHECK_VERSION (2, 6, 0) - const gchar* const *langs; + /*const gchar* const *langs; int i; - gchar *lastprefix = NULL; - GSList *enchant_langs; + gchar *lastprefix = NULL;*/ + GSList *enchant_langs, *i; if (!have_enchant) return; @@ -933,15 +968,15 @@ sexy_spell_entry_activate_default_languages(SexySpellEntry *entry) entry->priv->broker = enchant_broker_init(); - langs = g_get_language_names (); + /*langs = g_get_language_names (); if (langs == NULL) - return; + return;*/ enchant_langs = sexy_spell_entry_get_languages(entry); - for (i = 0; langs[i]; i++) { - if ((g_strncasecmp(langs[i], "C", 1) != 0) && + /*for (i = 0; langs[i]; i++) { + if ((g_ascii_strncasecmp(langs[i], "C", 1) != 0) && (strlen(langs[i]) >= 2) && enchant_has_lang(langs[i], enchant_langs)) { if ((lastprefix == NULL) || (g_str_has_prefix(langs[i], lastprefix) == FALSE)) @@ -952,10 +987,19 @@ sexy_spell_entry_activate_default_languages(SexySpellEntry *entry) } } if (lastprefix != NULL) - g_free(lastprefix); + g_free(lastprefix);*/ + + for (i = enchant_langs; i; i = g_slist_next (i)) + { + if (strstr (prefs.spell_langs, i->data) != NULL) + { + sexy_spell_entry_activate_language_internal (entry, i->data, NULL); + } + } g_slist_foreach(enchant_langs, (GFunc) g_free, NULL); g_slist_free(enchant_langs); + g_slist_free (i); /* If we don't have any languages activated, use "en" */ if (entry->priv->dict_list == NULL) @@ -969,7 +1013,7 @@ sexy_spell_entry_activate_default_languages(SexySpellEntry *entry) lang = (gchar *) g_getenv("LANG"); if (lang != NULL) { - if (g_strncasecmp(lang, "C", 1) == 0) + if (g_ascii_strncasecmp(lang, "C", 1) == 0) lang = NULL; else if (lang[0] == '\0') lang = NULL; @@ -1083,8 +1127,8 @@ gchar * sexy_spell_entry_get_language_name(const SexySpellEntry *entry, const gchar *lang) { - /*if (have_enchant) - return gtkspell_iso_codes_lookup_name_for_code(lang);*/ + if (have_enchant) + return gtkspell_iso_codes_lookup_name_for_code(lang); return NULL; } diff --git a/src/fe-gtk/typedef.h b/src/fe-gtk/typedef.h new file mode 100644 index 00000000..b20612ea --- /dev/null +++ b/src/fe-gtk/typedef.h @@ -0,0 +1,11 @@ +#ifndef SSIZE_T_DEFINED +#ifdef ssize_t +#undef ssize_t +#endif +#ifdef _WIN64 +typedef __int64 ssize_t; +#else +typedef _W64 int ssize_t; +#endif +#define SSIZE_T_DEFINED +#endif diff --git a/src/fe-gtk/xchat.exe.manifest b/src/fe-gtk/xchat.exe.manifest new file mode 100644 index 00000000..13685d98 --- /dev/null +++ b/src/fe-gtk/xchat.exe.manifest @@ -0,0 +1,22 @@ +<?xml version="1.0" encoding="UTF-8" standalone="yes"?> +<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0"> + <assemblyIdentity + name="XChat" + processorArchitecture="*" + version="1.0.0.0" + type="win32" + /> + <description>XChat IRC client</description> + <dependency> + <dependentAssembly> + <assemblyIdentity + type="win32" + name="Microsoft.Windows.Common-Controls" + version="6.0.0.0" + processorArchitecture="*" + publicKeyToken="6595b64144ccf1df" + language="*" + /> + </dependentAssembly> + </dependency> +</assembly> diff --git a/src/fe-gtk/xchat.rc b/src/fe-gtk/xchat.rc new file mode 100644 index 00000000..f63b70e7 --- /dev/null +++ b/src/fe-gtk/xchat.rc @@ -0,0 +1,26 @@ +#include <winver.h> +#include "../../config.h" +#include "../../resource.h" + +XC_ICON ICON "../../xchat.ico" + +VS_VERSION_INFO VERSIONINFO + FILEVERSION COMMA_VERSION + PRODUCTVERSION COMMA_VERSION + BEGIN + BLOCK "StringFileInfo" + BEGIN + BLOCK "040904B0" + BEGIN + + VALUE "FileDescription", "XChat-WDK IRC Client" + VALUE "ProductName", "XChat-WDK" + VALUE "ProductVersion", PACKAGE_VERSION + VALUE "FileVersion", PACKAGE_VERSION + END + END + BLOCK "VarFileInfo" + BEGIN + VALUE "Translation", 0x0409, 0x04B0 + END + END diff --git a/src/fe-gtk/xtext.c b/src/fe-gtk/xtext.c index fa9803c7..547affee 100644 --- a/src/fe-gtk/xtext.c +++ b/src/fe-gtk/xtext.c @@ -42,7 +42,6 @@ #include <ctype.h> #include <stdlib.h> #include <time.h> -#include <unistd.h> #include <gtk/gtkmain.h> #include <gtk/gtksignal.h> #include <gtk/gtkselection.h> @@ -66,6 +65,11 @@ #include "mmx_cmod.h" #endif +#include "../common/xchat.h" +#include "../common/fe.h" +#include "../common/util.h" +#include "../common/xchatc.h" +#include "fe-gtk.h" #include "xtext.h" #define charlen(str) g_utf8_skip[*(guchar *)(str)] @@ -73,6 +77,8 @@ #ifdef WIN32 #include <windows.h> #include <gdk/gdkwin32.h> +#else +#include <unistd.h> #endif /* is delimiter */ @@ -89,6 +95,20 @@ static GtkWidgetClass *parent_class = NULL; +/* + * offsets_t is used for retaining search information. + * It is stored in the 'data' member of a GList, + * as chained from ent->marks. It saves starting and + * ending+1 offset of a found occurrence. + */ +typedef union offsets_u { + struct offsets_s { + guint16 start; + guint16 end; + } o; + guint32 u; +} offsets_t; + struct textentry { struct textentry *next; @@ -108,6 +128,7 @@ struct textentry guchar tag; guchar pad1; guchar pad2; /* 32-bit align : 44 bytes total */ + GList *marks; /* List of found strings */ }; enum @@ -146,11 +167,25 @@ static void gtk_xtext_recalc_widths (xtext_buffer *buf, int); static void gtk_xtext_fix_indent (xtext_buffer *buf); static int gtk_xtext_find_subline (GtkXText *xtext, textentry *ent, int line); static char *gtk_xtext_conv_color (unsigned char *text, int len, int *newlen); +/* For use by gtk_xtext_strip_color() and its callers -- */ +typedef union offlen_u { + struct offlen_s { + guint16 off; + guint16 len; + } o; + guint32 u; +} offlen_t; static unsigned char * gtk_xtext_strip_color (unsigned char *text, int len, unsigned char *outbuf, - int *newlen, int *mb_ret, int strip_hidden); + int *newlen, int *mb_ret, GSList **slp, int strip_hidden); static gboolean gtk_xtext_check_ent_visibility (GtkXText * xtext, textentry *find_ent, int add); static int gtk_xtext_render_page_timeout (GtkXText * xtext); +static int gtk_xtext_search_offset (xtext_buffer *buf, textentry *ent, unsigned int off); +static void gtk_xtext_search_textentry (xtext_buffer *, textentry *, int); +static void gtk_xtext_search_textentry_del (xtext_buffer *, textentry *); +static void gtk_xtext_search_textentry_fini (gpointer, gpointer); +static void gtk_xtext_search_fini (xtext_buffer *); +static gboolean gtk_xtext_search_init (xtext_buffer *buf, const gchar *text, gtk_xtext_search_flags flags, GError **perr); /* some utility functions first */ @@ -163,7 +198,7 @@ nocasestrstr (const char *s, const char *tofind) if (len == 0) return (char *)s; - while (toupper(*s) != toupper(*tofind) || strncasecmp (s, tofind, len)) + while (toupper(*s) != toupper(*tofind) || g_ascii_strncasecmp (s, tofind, len)) if (*s++ == '\0') return (char *)NULL; return (char *)s; @@ -767,9 +802,8 @@ gtk_xtext_adjustment_set (xtext_buffer *buf, int fire_signal) if (adj->upper == 0) adj->upper = 1; - adj->page_size = - (GTK_WIDGET (buf->xtext)->allocation.height - - buf->xtext->font->descent) / buf->xtext->fontsize; + adj->page_size = GTK_WIDGET (buf->xtext)->allocation.height / + buf->xtext->fontsize; adj->page_increment = adj->page_size; if (adj->value > adj->upper - adj->page_size) @@ -998,7 +1032,11 @@ gtk_xtext_realize (GtkWidget * widget) gdk_window_set_user_data (widget->window, widget); +#if GTK_CHECK_VERSION(2,24,0) + xtext->depth = gdk_window_get_visual (widget->window)->depth; +#else xtext->depth = gdk_drawable_get_visual (widget->window)->depth; +#endif val.subwindow_mode = GDK_INCLUDE_INFERIORS; val.graphics_exposures = 0; @@ -1122,18 +1160,6 @@ gtk_xtext_size_allocate (GtkWidget * widget, GtkAllocation * allocation) } } -static void -gtk_xtext_selection_clear_full (xtext_buffer *buf) -{ - textentry *ent = buf->text_first; - while (ent) - { - ent->mark_start = -1; - ent->mark_end = -1; - ent = ent->next; - } -} - static int gtk_xtext_selection_clear (xtext_buffer *buf) { @@ -1717,13 +1743,6 @@ gtk_xtext_selection_draw (GtkXText * xtext, GdkEventMotion * event, gboolean ren offset_end = tmp; } - /* has the selection changed? Dont render unless necessary */ - if (xtext->buffer->last_ent_start == ent_start && - xtext->buffer->last_ent_end == ent_end && - xtext->buffer->last_offset_start == offset_start && - xtext->buffer->last_offset_end == offset_end) - return; - /* set all the old mark_ fields to -1 */ gtk_xtext_selection_clear (xtext->buffer); @@ -1753,10 +1772,24 @@ gtk_xtext_selection_draw (GtkXText * xtext, GdkEventMotion * event, gboolean ren gtk_xtext_selection_render (xtext, ent_start, offset_start, ent_end, offset_end); } +static int +gtk_xtext_timeout_ms (GtkXText *xtext, int pixes) +{ + int apixes = abs(pixes); + + if (apixes < 6) return 100; + if (apixes < 12) return 50; + if (apixes < 20) return 20; + return 10; +} + static gint gtk_xtext_scrolldown_timeout (GtkXText * xtext) { int p_y, win_height; + xtext_buffer *buf = xtext->buffer; + GtkAdjustment *adj = xtext->adj; + textentry *ent; gdk_window_get_pointer (GTK_WIDGET (xtext)->window, 0, &p_y, 0); gdk_drawable_get_size (GTK_WIDGET (xtext)->window, 0, &win_height); @@ -1764,13 +1797,30 @@ gtk_xtext_scrolldown_timeout (GtkXText * xtext) if (p_y > win_height && xtext->adj->value < (xtext->adj->upper - xtext->adj->page_size)) { - xtext->adj->value++; - gtk_adjustment_changed (xtext->adj); - gtk_xtext_render_page (xtext); - return 1; + xtext->adj->value += buf->pagetop_ent->lines_taken; + ent = buf->last_ent_end->next; + if (ent) + { + gtk_adjustment_value_changed (xtext->adj); + } + else + { + buf->scrollbar_down = TRUE; + } + xtext->scroll_tag = g_timeout_add (gtk_xtext_timeout_ms (xtext, p_y - win_height), + (GSourceFunc) + gtk_xtext_scrolldown_timeout, + xtext); + xtext->select_start_y -= (adj->value - xtext->select_start_adj) * xtext->fontsize; + xtext->select_start_adj = adj->value; + gtk_xtext_selection_draw (xtext, NULL, TRUE); + gtk_xtext_render_ents (xtext, ent, buf->last_ent_end); + } + else + { + xtext->scroll_tag = 0; } - xtext->scroll_tag = 0; return 0; } @@ -1778,18 +1828,35 @@ static gint gtk_xtext_scrollup_timeout (GtkXText * xtext) { int p_y; + xtext_buffer *buf = xtext->buffer; + GtkAdjustment *adj = xtext->adj; + textentry *ent; gdk_window_get_pointer (GTK_WIDGET (xtext)->window, 0, &p_y, 0); - if (p_y < 0 && xtext->adj->value > 0.0) + if (p_y < 0 && adj->value >= 0) { - xtext->adj->value--; - gtk_adjustment_changed (xtext->adj); - gtk_xtext_render_page (xtext); - return 1; + buf->scrollbar_down = FALSE; + ent = buf->last_ent_start->prev; + if (ent) + { + adj->value -= ent->lines_taken; + gtk_adjustment_value_changed (adj); + } + xtext->select_start_y -= (adj->value - xtext->select_start_adj) * xtext->fontsize; + xtext->select_start_adj = adj->value; + gtk_xtext_selection_draw (xtext, NULL, TRUE); + gtk_xtext_render_ents (xtext, ent, buf->last_ent_end); + xtext->scroll_tag = g_timeout_add (gtk_xtext_timeout_ms (xtext, p_y), + (GSourceFunc) + gtk_xtext_scrollup_timeout, + xtext); + } + else + { + xtext->scroll_tag = 0; } - xtext->scroll_tag = 0; return 0; } @@ -1799,35 +1866,32 @@ gtk_xtext_selection_update (GtkXText * xtext, GdkEventMotion * event, int p_y, g int win_height; int moved; + if (xtext->scroll_tag) + { + return; + } + gdk_drawable_get_size (GTK_WIDGET (xtext)->window, 0, &win_height); /* selecting past top of window, scroll up! */ if (p_y < 0 && xtext->adj->value >= 0) { - if (!xtext->scroll_tag) - xtext->scroll_tag = g_timeout_add (100, - (GSourceFunc) - gtk_xtext_scrollup_timeout, - xtext); - return; + gtk_xtext_scrollup_timeout (xtext); } /* selecting past bottom of window, scroll down! */ - if (p_y > win_height && + else if (p_y > win_height && xtext->adj->value < (xtext->adj->upper - xtext->adj->page_size)) { - if (!xtext->scroll_tag) - xtext->scroll_tag = g_timeout_add (100, - (GSourceFunc) - gtk_xtext_scrolldown_timeout, - xtext); - return; + gtk_xtext_scrolldown_timeout (xtext); + } + else + { + moved = (int)xtext->adj->value - xtext->select_start_adj; + xtext->select_start_y -= (moved * xtext->fontsize); + xtext->select_start_adj = xtext->adj->value; + gtk_xtext_selection_draw (xtext, event, render); } - - moved = (int)xtext->adj->value - xtext->select_start_adj; - xtext->select_start_y -= (moved * xtext->fontsize); - xtext->select_start_adj = xtext->adj->value; - gtk_xtext_selection_draw (xtext, event, render); } static char * @@ -1883,7 +1947,7 @@ gtk_xtext_get_word (GtkXText * xtext, int x, int y, textentry ** ret_ent, if (ret_len) *ret_len = str - word; - return gtk_xtext_strip_color (word, len, xtext->scratch_buffer, NULL, NULL, FALSE); + return gtk_xtext_strip_color (word, len, xtext->scratch_buffer, NULL, NULL, NULL, FALSE); } #ifdef MOTION_MONITOR @@ -1941,7 +2005,7 @@ gtk_xtext_check_mark_stamp (GtkXText *xtext, GdkModifierType mask) { gboolean redraw = FALSE; - if ((mask & GDK_SHIFT_MASK)) + if (mask & GDK_SHIFT_MASK || prefs.autocopy_stamp) { if (!xtext->mark_stamp) { @@ -2106,7 +2170,16 @@ gtk_xtext_set_clip_owner (GtkWidget * xtext, GdkEventButton * event) free (str); } - gtk_selection_owner_set (xtext, GDK_SELECTION_PRIMARY, event->time); + if (event) + { + gtk_selection_owner_set (xtext, GDK_SELECTION_PRIMARY, event->time); + } +} + +void +gtk_xtext_copy_selection (GtkXText *xtext) +{ + gtk_xtext_set_clip_owner (xtext, NULL); } static void @@ -2174,6 +2247,11 @@ gtk_xtext_button_release (GtkWidget * widget, GdkEventButton * event) if (event->button == 1) { xtext->button_down = FALSE; + if (xtext->scroll_tag) + { + g_source_remove (xtext->scroll_tag); + xtext->scroll_tag = 0; + } gtk_grab_remove (widget); /*gdk_pointer_ungrab (0);*/ @@ -2182,9 +2260,12 @@ gtk_xtext_button_release (GtkWidget * widget, GdkEventButton * event) if (xtext->buffer->last_ent_start) { xtext->color_paste = FALSE; - if (event->state & GDK_CONTROL_MASK) + if (event->state & GDK_CONTROL_MASK || prefs.autocopy_color) xtext->color_paste = TRUE; - gtk_xtext_set_clip_owner (GTK_WIDGET (xtext), event); + if (prefs.autocopy_text) + { + gtk_xtext_set_clip_owner (GTK_WIDGET (xtext), event); + } } if (xtext->select_start_x == event->x && @@ -2249,7 +2330,10 @@ gtk_xtext_button_press (GtkWidget * widget, GdkEventButton * event) ent->mark_end = offset + len; gtk_xtext_selection_render (xtext, ent, offset, ent, offset + len); xtext->word_or_line_select = TRUE; - gtk_xtext_set_clip_owner (GTK_WIDGET (xtext), event); + if (prefs.autocopy_text) + { + gtk_xtext_set_clip_owner (GTK_WIDGET (xtext), event); + } } return FALSE; @@ -2265,7 +2349,10 @@ gtk_xtext_button_press (GtkWidget * widget, GdkEventButton * event) ent->mark_end = ent->str_len; gtk_xtext_selection_render (xtext, ent, 0, ent, ent->str_len); xtext->word_or_line_select = TRUE; - gtk_xtext_set_clip_owner (GTK_WIDGET (xtext), event); + if (prefs.autocopy_text) + { + gtk_xtext_set_clip_owner (GTK_WIDGET (xtext), event); + } } return FALSE; @@ -2391,7 +2478,7 @@ gtk_xtext_selection_get_text (GtkXText *xtext, int *len_ret) len = strlen (txt); } else { - stripped = gtk_xtext_strip_color (txt, strlen (txt), NULL, &len, 0, FALSE); + stripped = gtk_xtext_strip_color (txt, strlen (txt), NULL, &len, NULL, NULL, FALSE); free (txt); } @@ -2431,12 +2518,14 @@ gtk_xtext_selection_get (GtkWidget * widget, #if (GTK_MAJOR_VERSION == 2) && (GTK_MINOR_VERSION == 0) gdk_string_to_compound_text ( + stripped, &encoding, &format, &new_text, + &new_length); #else gdk_string_to_compound_text_for_display ( gdk_drawable_get_display (widget->window), -#endif stripped, &encoding, &format, &new_text, &new_length); +#endif gtk_selection_data_set (selection_data_ptr, encoding, format, new_text, new_length); gdk_free_compound_text (new_text); @@ -2551,19 +2640,26 @@ gtk_xtext_get_type (void) static unsigned char * gtk_xtext_strip_color (unsigned char *text, int len, unsigned char *outbuf, - int *newlen, int *mb_ret, int strip_hidden) + int *newlen, int *mb_ret, GSList **slp, int strip_hidden) { int i = 0; int rcol = 0, bgcol = 0; int hidden = FALSE; unsigned char *new_str; int mb = FALSE; + GSList *sl = NULL; + unsigned char *text0 = text; + int off1, len1; + offlen_t data; if (outbuf == NULL) new_str = malloc (len + 2); else new_str = outbuf; + off1 = 0; + len1 = 0; + data.u = 0; while (len > 0) { if (*text >= 128) @@ -2597,12 +2693,32 @@ gtk_xtext_strip_color (unsigned char *text, int len, unsigned char *outbuf, break; default: if (!(hidden && strip_hidden)) + { + if (text - text0 - off1 != len1) + { + if (len1) + { + data.o.off = off1; + data.o.len = len1; + sl = g_slist_append (sl, GUINT_TO_POINTER (data.u)); + len1 = 0; + } + off1 = text - text0; + } + len1++; new_str[i++] = *text; + } } } text++; len--; } + if (len1) + { + data.o.off = off1; + data.o.len = len1; + sl = g_slist_append (sl, GUINT_TO_POINTER (data.u)); + } new_str[i] = 0; @@ -2612,9 +2728,15 @@ gtk_xtext_strip_color (unsigned char *text, int len, unsigned char *outbuf, if (mb_ret != NULL) *mb_ret = mb; + if (slp) + *slp = sl; + else + g_slist_free (sl); + return new_str; } + /* GeEkMaN: converts mIRC control codes to literal control codes */ static char * @@ -2718,7 +2840,7 @@ gtk_xtext_text_width (GtkXText *xtext, unsigned char *text, int len, int new_len, mb; new_buf = gtk_xtext_strip_color (text, len, xtext->scratch_buffer, - &new_len, &mb, !xtext->ignore_hidden); + &new_len, &mb, NULL, !xtext->ignore_hidden); if (mb_ret) *mb_ret = mb; @@ -2884,6 +3006,63 @@ gtk_xtext_reset (GtkXText * xtext, int mark, int attribs) xtext->nc = 0; } +/* + * gtk_xtext_search_offset (buf, ent, off) -- + * Look for arg offset in arg textentry + * Return one or more flags: + * GTK_MATCH_MID if we are in a match + * GTK_MATCH_START if we're at the first byte of it + * GTK_MATCH_END if we're at the first byte past it + * GTK_MATCH_CUR if it is the current match + */ +#define GTK_MATCH_START 1 +#define GTK_MATCH_MID 2 +#define GTK_MATCH_END 4 +#define GTK_MATCH_CUR 8 +static int +gtk_xtext_search_offset (xtext_buffer *buf, textentry *ent, unsigned int off) +{ + GList *gl; + offsets_t o; + int flags = 0; + + for (gl = g_list_first (ent->marks); gl; gl = g_list_next (gl)) + { + o.u = GPOINTER_TO_UINT (gl->data); + if (off < o.o.start || off > o.o.end) + continue; + flags = GTK_MATCH_MID; + if (off == o.o.start) + flags |= GTK_MATCH_START; + if (off == o.o.end) + { + gl = g_list_next (gl); + if (gl) + { + o.u = GPOINTER_TO_UINT (gl->data); + if (off == o.o.start) /* If subseq match is adjacent */ + { + flags |= (gl == buf->curmark)? GTK_MATCH_CUR: 0; + } + else /* If subseq match is not adjacent */ + { + flags |= GTK_MATCH_END; + } + } + else /* If there is no subseq match */ + { + flags |= GTK_MATCH_END; + } + } + else if (gl == buf->curmark) /* If not yet at the end of this match */ + { + flags |= GTK_MATCH_CUR; + } + break; + } + return flags; +} + /* render a single line, which WONT wrap, and parse mIRC colors */ static int @@ -2898,6 +3077,9 @@ gtk_xtext_render_str (GtkXText * xtext, int y, textentry * ent, int offset; int mark = FALSE; int ret = 1; + int k; + int srch_underline = FALSE; + int srch_mark = FALSE; xtext->in_hilight = FALSE; @@ -3049,6 +3231,50 @@ gtk_xtext_render_str (GtkXText * xtext, int y, textentry * ent, } } + if (!left_only && !mark && + (k = gtk_xtext_search_offset (xtext->buffer, ent, offset + i))) + { + x += gtk_xtext_render_flush (xtext, x, y, pstr, j, gc, ent->mb); + pstr += j; + j = 0; + if (!(xtext->buffer->search_flags & highlight)) + { + if (k & GTK_MATCH_CUR) + { + xtext_set_bg (xtext, gc, XTEXT_MARK_BG); + xtext_set_fg (xtext, gc, XTEXT_MARK_FG); + xtext->backcolor = TRUE; + srch_mark = TRUE; + } else + { + xtext_set_bg (xtext, gc, xtext->col_back); + xtext_set_fg (xtext, gc, xtext->col_fore); + xtext->backcolor = (xtext->col_back != XTEXT_BG)? TRUE: FALSE; + srch_mark = FALSE; + } + } + else + { + xtext->underline = (k & GTK_MATCH_CUR)? TRUE: FALSE; + if (k & (GTK_MATCH_START | GTK_MATCH_MID)) + { + xtext_set_bg (xtext, gc, XTEXT_MARK_BG); + xtext_set_fg (xtext, gc, XTEXT_MARK_FG); + xtext->backcolor = TRUE; + srch_mark = TRUE; + } + if (k & GTK_MATCH_END) + { + xtext_set_bg (xtext, gc, xtext->col_back); + xtext_set_fg (xtext, gc, xtext->col_fore); + xtext->backcolor = (xtext->col_back != XTEXT_BG)? TRUE: FALSE; + srch_mark = FALSE; + xtext->underline = FALSE; + } + srch_underline = xtext->underline; + } + } + switch (str[i]) { case '\n': @@ -3198,6 +3424,11 @@ gtk_xtext_render_str (GtkXText * xtext, int y, textentry * ent, xtext_set_bg (xtext, gc, XTEXT_MARK_BG); xtext_set_fg (xtext, gc, XTEXT_MARK_FG); xtext->backcolor = TRUE; + if (srch_underline) + { + xtext->underline = FALSE; + srch_underline = FALSE; + } mark = TRUE; } @@ -3220,7 +3451,7 @@ gtk_xtext_render_str (GtkXText * xtext, int y, textentry * ent, if (j) x += gtk_xtext_render_flush (xtext, x, y, pstr, j, gc, ent->mb); - if (mark) + if (mark || srch_mark) { xtext_set_bg (xtext, gc, xtext->col_back); xtext_set_fg (xtext, gc, xtext->col_fore); @@ -3836,7 +4067,7 @@ gtk_xtext_load_trans (GtkXText * xtext) PaintDesktop (hdc); ReleaseDC (hwnd, hdc); - gdk_window_get_size (GTK_WIDGET (xtext)->window, &width, &height); + gdk_drawable_get_size (GTK_WIDGET (xtext)->window, &width, &height); img = gdk_image_get (GTK_WIDGET (xtext)->window, 0, 0, width+128, height); xtext->pixmap = win32_tint (xtext, img, img->width, img->height); @@ -4388,7 +4619,7 @@ gtk_xtext_save (GtkXText * xtext, int fh) while (ent) { buf = gtk_xtext_strip_color (ent->str, ent->str_len, NULL, - &newlen, NULL, FALSE); + &newlen, NULL, NULL, FALSE); write (fh, buf, newlen); write (fh, "\n", 1); free (buf); @@ -4775,6 +5006,11 @@ gtk_xtext_kill_ent (xtext_buffer *buffer, textentry *ent) if (buffer->marker_pos == ent) buffer->marker_pos = NULL; + if (ent->marks) + { + gtk_xtext_search_textentry_del (buffer, ent); + } + free (ent); return visible; } @@ -4839,7 +5075,23 @@ gtk_xtext_remove_bottom (xtext_buffer *buffer) else buffer->text_first = NULL; - gtk_xtext_kill_ent (buffer, ent); + if (gtk_xtext_kill_ent (buffer, ent)) + { + if (!buffer->xtext->add_io_tag) + { + /* remove scrolling events */ + if (buffer->xtext->io_tag) + { + g_source_remove (buffer->xtext->io_tag); + buffer->xtext->io_tag = 0; + } + buffer->xtext->force_render = TRUE; + buffer->xtext->add_io_tag = g_timeout_add (REFRESH_TIMEOUT * 2, + (GSourceFunc) + gtk_xtext_render_page_timeout, + buffer->xtext); + } + } } /* If lines=0 => clear all */ @@ -4874,6 +5126,8 @@ gtk_xtext_clear (xtext_buffer *buf, int lines) else { /* delete all */ + if (buf->search_found) + gtk_xtext_search_fini (buf); if (buf->xtext->auto_indent) buf->indent = MARGIN; buf->scrollbar_down = TRUE; @@ -4905,21 +5159,37 @@ static gboolean gtk_xtext_check_ent_visibility (GtkXText * xtext, textentry *find_ent, int add) { textentry *ent; - int lines_max; - int line = 0; + int lines; + xtext_buffer *buf = xtext->buffer; int width; int height; - gdk_drawable_get_size (GTK_WIDGET (xtext)->window, &width, &height); + if (find_ent == NULL) + { + return FALSE; + } - lines_max = ((height + xtext->pixel_offset) / xtext->fontsize) + add; - ent = xtext->buffer->pagetop_ent; + gdk_drawable_get_size (GTK_WIDGET (xtext)->window, &width, &height); - while (ent && line < lines_max) + ent = buf->pagetop_ent; + /* If top line not completely displayed return FALSE */ + if (ent == find_ent && buf->pagetop_subline > 0) { - if (find_ent == ent) + return FALSE; + } + /* Loop through line positions looking for find_ent */ + lines = ((height + xtext->pixel_offset) / xtext->fontsize) + buf->pagetop_subline + add; + while (ent) + { + lines -= ent->lines_taken; + if (lines <= 0) + { + return FALSE; + } + if (ent == find_ent) + { return TRUE; - line += ent->lines_taken; + } ent = ent->next; } @@ -4933,90 +5203,369 @@ gtk_xtext_check_marker_visibility (GtkXText * xtext) xtext->buffer->marker_seen = TRUE; } -textentry * -gtk_xtext_search (GtkXText * xtext, const gchar *text, textentry *start, gboolean case_match, gboolean backward) +static void +gtk_xtext_unstrip_color (gint start, gint end, GSList *slp, GList **gl, gint maxo) { - textentry *ent, *fent; - int line; - gchar *str, *nee, *hay; /* needle in haystack */ - - gtk_xtext_selection_clear_full (xtext->buffer); - xtext->buffer->last_ent_start = NULL; - xtext->buffer->last_ent_end = NULL; + gint off1, off2, curlen; + GSList *cursl; + offsets_t marks; - /* set up text comparand for Case Match or Ignore */ - if (case_match) - nee = g_strdup (text); - else - nee = g_utf8_casefold (text, strlen (text)); + off1 = 0; + curlen = 0; + cursl = slp; + while (cursl) + { + offlen_t ol; + ol.u = GPOINTER_TO_UINT(cursl->data); + if (start < ol.o.len) + { + off1 = ol.o.off + start; + break; + } + curlen += ol.o.len; + start -= ol.o.len; + end -= ol.o.len; + cursl = g_slist_next (cursl); + } - /* Validate that start gives a currently valid ent pointer */ - ent = xtext->buffer->text_first; - while (ent) + off2 = off1; + while (cursl) { - if (ent == start) + offlen_t ol; + ol.u = GPOINTER_TO_UINT(cursl->data); + if (end < ol.o.len) + { + off2 = ol.o.off + end; break; - ent = ent->next; + } + curlen += ol.o.len; + end -= ol.o.len; + cursl = g_slist_next (cursl); + } + if (!cursl) + { + off2 = maxo; } - if (!ent) - start = NULL; - /* Choose first ent to look at */ - if (start) - ent = backward? start->prev: start->next; - else - ent = backward? xtext->buffer->text_last: xtext->buffer->text_first; + marks.o.start = off1; + marks.o.end = off2; + *gl = g_list_append (*gl, GUINT_TO_POINTER (marks.u)); +} - /* Search from there to one end or the other until found */ - while (ent) +/* Search a single textentry for occurrence(s) of search arg string */ +static void +gtk_xtext_search_textentry (xtext_buffer *buf, textentry *ent, int pre) +{ + gchar *str; /* text string to be searched */ + GList *gl = NULL; + GSList *slp; + gint lstr; + + if (buf->search_text == NULL) { - /* If Case Ignore, fold before & free after calling strstr */ - if (case_match) - hay = g_strdup (ent->str); - else - hay = g_utf8_casefold (ent->str, strlen (ent->str)); - /* Try to find the needle in this haystack */ - str = g_strstr_len (hay, strlen (hay), nee); + return; + } + + str = gtk_xtext_strip_color (ent->str, ent->str_len, buf->xtext->scratch_buffer, + &lstr, NULL, &slp, !buf->xtext->ignore_hidden); + + /* Regular-expression matching --- */ + if (buf->search_flags & regexp) + { + GMatchInfo *gmi; + gint start, end; + + if (buf->search_re == NULL) + { + return; + } + g_regex_match (buf->search_re, str, 0, &gmi); + while (g_match_info_matches (gmi)) + { + g_match_info_fetch_pos (gmi, 0, &start, &end); + gtk_xtext_unstrip_color (start, end, slp, &gl, ent->str_len); + g_match_info_next (gmi, NULL); + } + g_match_info_free (gmi); + + /* Non-regular-expression matching --- */ + } else { + gchar *hay, *pos; + gint lhay, off, len; + gint match = buf->search_flags & case_match; + + hay = match? g_strdup (str): g_utf8_casefold (str, lstr); + lhay = strlen (hay); + off = 0; + + for (pos = hay, len = lhay; len; + off += buf->search_lnee, pos = hay + off, len = lhay - off) + { + str = g_strstr_len (pos, len, buf->search_nee); + if (str == NULL) + { + break; + } + off = str - hay; + gtk_xtext_unstrip_color (off, off + buf->search_lnee, + slp, &gl, ent->str_len); + } + g_free (hay); - if (str) - break; - ent = backward? ent->prev: ent->next; } - fent = ent; - /* Save distance to start, end of found string */ - if (ent) + /* Common processing --- */ + g_slist_free (slp); + ent->marks = gl; + if (gl) + { + buf->search_found = (pre? g_list_prepend: g_list_append) (buf->search_found, ent); + if (pre == FALSE && buf->hintsearch == NULL) + { + buf->hintsearch = ent; + } + } + return; +} + +/* Free all search information for a textentry */ +static void +gtk_xtext_search_textentry_del (xtext_buffer *buf, textentry *ent) +{ + g_list_free (ent->marks); + ent->marks = NULL; + if (buf->cursearch && buf->cursearch->data == ent) + { + buf->cursearch = NULL; + buf->curmark = NULL; + } + if (buf->pagetop_ent == ent) + { + buf->pagetop_ent = NULL; + } + if (buf->hintsearch == ent) + { + buf->hintsearch = NULL; + } + buf->search_found = g_list_remove (buf->search_found, ent); +} + +/* Used only by glist_foreach */ +static void +gtk_xtext_search_textentry_fini (gpointer entp, gpointer dummy) +{ + textentry *ent = entp; + + g_list_free (ent->marks); + ent->marks = NULL; +} + +/* Free all search information for all textentrys and the xtext_buffer */ +static void +gtk_xtext_search_fini (xtext_buffer *buf) +{ + g_list_foreach (buf->search_found, gtk_xtext_search_textentry_fini, 0); + g_list_free (buf->search_found); + buf->search_found = NULL; + g_free (buf->search_text); + buf->search_text = NULL; + g_free (buf->search_nee); + buf->search_nee = NULL; + buf->search_flags = 0; + buf->cursearch = NULL; + buf->curmark = NULL; + if (buf->search_re) + { + g_regex_unref (buf->search_re); + buf->search_re = NULL; + } +} + +/* Returns TRUE if the base search information exists and is still okay to use */ +static gboolean +gtk_xtext_search_init (xtext_buffer *buf, const gchar *text, gtk_xtext_search_flags flags, GError **perr) +{ + /* Of the five flags, backward and highlight_all do not need a new search */ + if (buf->search_found && + strcmp (buf->search_text, text) == 0 && + (buf->search_flags & case_match) == (flags & case_match) && + (buf->search_flags & follow) == (flags & follow) && + (buf->search_flags & regexp) == (flags & regexp)) + { + return TRUE; + } + buf->hintsearch = buf->cursearch? buf->cursearch->data: NULL; + gtk_xtext_search_fini (buf); + buf->search_text = g_strdup (text); + if (flags & regexp) + { + buf->search_re = g_regex_new (text, (flags & case_match)? 0: G_REGEX_CASELESS, 0, perr); + if (perr && *perr) + { + return FALSE; + } + } + else + { + if (flags & case_match) + { + buf->search_nee = g_strdup (text); + } + else + { + buf->search_nee = g_utf8_casefold (text, strlen (text)); + } + buf->search_lnee = strlen (buf->search_nee); + } + buf->search_flags = flags; + buf->cursearch = NULL; + buf->curmark = NULL; + return FALSE; +} + +#define BACKWARD (flags & backward) +#define FIRSTLAST(lp) (BACKWARD? g_list_last(lp): g_list_first(lp)) +#define NEXTPREVIOUS(lp) (BACKWARD? g_list_previous(lp): g_list_next(lp)) +textentry * +gtk_xtext_search (GtkXText * xtext, const gchar *text, gtk_xtext_search_flags flags, GError **perr) +{ + textentry *ent = NULL; + xtext_buffer *buf = xtext->buffer; + GList *gl; + + if (buf->text_first == NULL) { - ent->mark_start = str - hay; - ent->mark_end = ent->mark_start + strlen (nee); + return NULL; + } - /* is the match visible? Might need to scroll */ - if (!gtk_xtext_check_ent_visibility (xtext, ent, 0)) + /* If the text arg is NULL, one of these has been toggled: highlight follow */ + if (text == NULL) /* Here on highlight or follow toggle */ + { + gint oldfollow = buf->search_flags & follow; + gint newfollow = flags & follow; + + /* If "Follow" has just been checked, search possible new textentries --- */ + if (newfollow && (newfollow != oldfollow)) { - ent = xtext->buffer->text_first; - line = 0; - while (ent) + gl = g_list_last (buf->search_found); + ent = gl? gl->data: buf->text_first; + for (; ent; ent = ent->next) { - line += ent->lines_taken; - ent = ent->next; - if (ent == fent) - break; + gtk_xtext_search_textentry (buf, ent, FALSE); + } + } + buf->search_flags = flags; + ent = buf->pagetop_ent; + } + + /* if the text arg is "", the reset button has been clicked or Control-Shift-F has been hit */ + else if (text[0] == 0) /* Let a null string do a reset. */ + { + gtk_xtext_search_fini (buf); + } + + /* If the text arg is neither NULL nor "", it's the search string */ + else + { + if (gtk_xtext_search_init (buf, text, flags, perr) == FALSE) /* If a new search: */ + { + if (perr && *perr) + { + return NULL; + } + for (ent = buf->text_first; ent; ent = ent->next) + { + gtk_xtext_search_textentry (buf, ent, TRUE); + } + buf->search_found = g_list_reverse (buf->search_found); + } + + /* Now base search results are in place. */ + + if (buf->search_found) + { + /* If we're in the midst of moving among found items */ + if (buf->cursearch) + { + ent = buf->cursearch->data; + buf->curmark = NEXTPREVIOUS (buf->curmark); + if (buf->curmark == NULL) + { + /* We've returned all the matches for this textentry. */ + buf->cursearch = NEXTPREVIOUS (buf->cursearch); + if (buf->cursearch) + { + ent = buf->cursearch->data; + buf->curmark = FIRSTLAST (ent->marks); + } + else /* We've returned all the matches for all textentries */ + { + ent = NULL; + } + } + } +#if 0 + /* If user changed the search, let's look starting where he was */ + else if (buf->hintsearch) + { + for (ent = buf->hintsearch; ent; ent = BACKWARD? ent->prev: ent->next) + if (ent->marks) + break; + if (ent == NULL) + for (ent = buf->hintsearch; ent; ent = BACKWARD? ent->next: ent->prev) + if (ent->marks) + break; + if (ent) + { + buf->cursearch = g_list_find (buf->search_found, ent); + buf->curmark = FIRSTLAST (ent->marks); + } + } +#endif + /* This is a fresh search */ + else + { + buf->cursearch = FIRSTLAST (buf->search_found); + ent = buf->cursearch->data; + buf->curmark = FIRSTLAST (ent->marks); } - while (line > xtext->adj->upper - xtext->adj->page_size) - line--; - if (backward) - line -= xtext->adj->page_size - ent->lines_taken; - xtext->adj->value = line; - xtext->buffer->scrollbar_down = FALSE; - gtk_adjustment_changed (xtext->adj); } } + buf->hintsearch = ent; + + if (!gtk_xtext_check_ent_visibility (xtext, ent, 1)) + { + GtkAdjustment *adj = xtext->adj; + float value; + + buf->pagetop_ent = NULL; + for (value = 0, ent = buf->text_first; + ent && ent != buf->hintsearch; ent = ent->next) + { + value += ent->lines_taken; + } + if (value > adj->upper - adj->page_size) + { + value = adj->upper - adj->page_size; + } + else if ((flags & backward) && ent) + { + value -= adj->page_size - ent->lines_taken; + if (value < 0) + { + value = 0; + } + } + gtk_adjustment_set_value (adj, value); + } - g_free (nee); gtk_widget_queue_draw (GTK_WIDGET (xtext)); - return fent; + return buf->hintsearch; } +#undef BACKWARD +#undef FIRSTLAST +#undef NEXTPREVIOUS static int gtk_xtext_render_page_timeout (GtkXText * xtext) @@ -5079,6 +5628,7 @@ gtk_xtext_append_entry (xtext_buffer *buf, textentry * ent, time_t stamp) ent->mark_start = -1; ent->mark_end = -1; ent->next = NULL; + ent->marks = NULL; if (ent->indent < MARGIN) ent->indent = MARGIN; /* 2 pixels is the left margin */ @@ -5097,10 +5647,11 @@ gtk_xtext_append_entry (xtext_buffer *buf, textentry * ent, time_t stamp) if (buf->reset_marker_pos || ((buf->marker_pos == NULL || buf->marker_seen) && (buf->xtext->buffer != buf || #if GTK_CHECK_VERSION(2,4,0) - !gtk_window_has_toplevel_focus (GTK_WINDOW (gtk_widget_get_toplevel (GTK_WIDGET (buf->xtext))))))) + !gtk_window_has_toplevel_focus (GTK_WINDOW (gtk_widget_get_toplevel (GTK_WIDGET (buf->xtext)))) #else - !(GTK_WINDOW (gtk_widget_get_toplevel (GTK_WIDGET (buf->xtext))))->has_focus))) + !(GTK_WINDOW (gtk_widget_get_toplevel (GTK_WIDGET (buf->xtext))))->has_focus #endif + ))) { buf->marker_pos = ent; dontscroll (buf); /* force scrolling off */ @@ -5140,6 +5691,10 @@ gtk_xtext_append_entry (xtext_buffer *buf, textentry * ent, time_t stamp) if (buf->old_value < 0) buf->old_value = 0; } + if (buf->search_flags & follow) + { + gtk_xtext_search_textentry (buf, ent, FALSE); + } } /* the main two public functions */ @@ -5466,6 +6021,11 @@ gtk_xtext_buffer_free (xtext_buffer *buf) if (buf->xtext->selection_buffer == buf) buf->xtext->selection_buffer = NULL; + if (buf->search_found) + { + gtk_xtext_search_fini (buf); + } + ent = buf->text_first; while (ent) { diff --git a/src/fe-gtk/xtext.h b/src/fe-gtk/xtext.h index a37ddc32..6c126346 100644 --- a/src/fe-gtk/xtext.h +++ b/src/fe-gtk/xtext.h @@ -43,6 +43,13 @@ typedef struct _GtkXText GtkXText; typedef struct _GtkXTextClass GtkXTextClass; typedef struct textentry textentry; +typedef enum gtk_xtext_search_flags_e { + case_match = 1, + backward = 2, + highlight = 4, + follow = 8, + regexp = 16 +} gtk_xtext_search_flags; typedef struct { GtkXText *xtext; /* attached to this widget */ @@ -77,6 +84,16 @@ typedef struct { unsigned int grid_dirty:1; unsigned int marker_seen:1; unsigned int reset_marker_pos:1; + + GList *search_found; /* list of textentries where search found strings */ + gchar *search_text; /* desired text to search for */ + gchar *search_nee; /* prepared needle to look in haystack for */ + gint search_lnee; /* its length */ + gtk_xtext_search_flags search_flags; /* match, bwd, highlight */ + GList *cursearch; /* GList whose 'data' pts to current textentry */ + GList *curmark; /* current item in ent->marks */ + GRegex *search_re; /* Compiled regular expression */ + textentry *hintsearch; /* textentry found for last search */ } xtext_buffer; struct _GtkXText @@ -247,7 +264,7 @@ void gtk_xtext_clear (xtext_buffer *buf, int lines); void gtk_xtext_save (GtkXText * xtext, int fh); void gtk_xtext_refresh (GtkXText * xtext, int do_trans); int gtk_xtext_lastlog (xtext_buffer *out, xtext_buffer *search_area, int (*cmp_func) (char *, void *userdata), void *userdata); -textentry *gtk_xtext_search (GtkXText * xtext, const gchar *text, textentry *start, gboolean case_match, gboolean backward); +textentry *gtk_xtext_search (GtkXText * xtext, const gchar *text, gtk_xtext_search_flags flags, GError **err); void gtk_xtext_reset_marker_pos (GtkXText *xtext); void gtk_xtext_check_marker_visibility(GtkXText *xtext); @@ -270,6 +287,7 @@ void gtk_xtext_set_wordwrap (GtkXText *xtext, gboolean word_wrap); xtext_buffer *gtk_xtext_buffer_new (GtkXText *xtext); void gtk_xtext_buffer_free (xtext_buffer *buf); void gtk_xtext_buffer_show (GtkXText *xtext, xtext_buffer *buf, int render); +void gtk_xtext_copy_selection (GtkXText *xtext); GType gtk_xtext_get_type (void); #endif diff --git a/src/fe-text/fe-text.c b/src/fe-text/fe-text.c index 2bc2e649..f3c1ff05 100644 --- a/src/fe-text/fe-text.c +++ b/src/fe-text/fe-text.c @@ -22,60 +22,51 @@ #ifdef HAVE_STRINGS_H #include <strings.h> #endif +#ifdef WIN32 +#define STDIN_FILENO 0 +#define STDOUT_FILENO 1 +#else +#include <unistd.h> #include <sys/time.h> +#endif #include <sys/types.h> -#include <unistd.h> #include <ctype.h> +#include <glib.h> #include "../common/xchat.h" #include "../common/xchatc.h" +#include "../common/cfgfiles.h" #include "../common/outbound.h" #include "../common/util.h" #include "../common/fe.h" #include "fe-text.h" -static GSList *tmr_list; /* timer list */ -static int tmr_list_count; -static GSList *se_list; /* socket event list */ -static int se_list_count; static int done = FALSE; /* finished ? */ static void send_command (char *cmd) { - handle_multiline (sess_list->data, cmd, TRUE, FALSE); + handle_multiline (current_tab, cmd, TRUE, FALSE); } -static void -read_stdin (void) +static gboolean +handle_line (GIOChannel *channel, GIOCondition cond, gpointer data) { - int len, i = 0; - static int pos = 0; - static char inbuf[1024]; - char tmpbuf[512]; - - len = read (STDIN_FILENO, tmpbuf, sizeof tmpbuf - 1); - - while (i < len) - { - switch (tmpbuf[i]) - { - case '\r': - break; - case '\n': - inbuf[pos] = 0; - pos = 0; - send_command (inbuf); - break; + gchar *str_return; + gsize length, terminator_pos; + GError *error = NULL; + GIOStatus result; - default: - inbuf[pos] = tmpbuf[i]; - if (pos < (sizeof inbuf - 2)) - pos++; - } - i++; + result = g_io_channel_read_line(channel, &str_return, &length, &terminator_pos, &error); + if (result == G_IO_STATUS_ERROR) { + return FALSE; + } + else { + send_command(str_return); + g_free(str_return); + return TRUE; } } @@ -87,12 +78,13 @@ fe_new_window (struct session *sess, int focus) char buf[512]; sess->gui = malloc (4); + current_sess = sess; if (!sess->server->front_session) sess->server->front_session = sess; if (!sess->server->server_session) sess->server->server_session = sess; - if (!current_tab) + if (!current_tab || focus) current_tab = sess; if (done_intro) @@ -101,7 +93,7 @@ fe_new_window (struct session *sess, int focus) snprintf (buf, sizeof (buf), "\n" - " \017xchat \00310"PACKAGE_VERSION"\n" + " \017XChat-Text \00310"PACKAGE_VERSION"\n" " \017Running on \00310%s \017glib \00310%d.%d.%d\n" " \017This binary compiled \00310"__DATE__"\017\n", get_cpu_str(), @@ -133,15 +125,21 @@ get_stamp_str (time_t tim, char *dest, int size) } static int -timecat (char *buf) +timecat (char *buf, time_t stamp) { char stampbuf[64]; - get_stamp_str (time (0), stampbuf, sizeof (stampbuf)); + /* set the stamp to the current time if not provided */ + if (!stamp) + stamp = time (0); + + get_stamp_str (stamp, stampbuf, sizeof (stampbuf)); strcat (buf, stampbuf); return strlen (stampbuf); } +/* Windows doesn't handle ANSI codes in cmd.exe, need to not display them */ +#ifndef WIN32 /* 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 */ static const short colconv[] = { 0, 7, 4, 2, 1, 3, 5, 11, 13, 12, 6, 16, 14, 15, 10, 7 }; @@ -157,7 +155,7 @@ fe_print_text (struct session *sess, char *text, time_t stamp) if (prefs.timestamp) { newtext[0] = 0; - j += timecat (newtext); + j += timecat (newtext, stamp); } while (i < len) { @@ -165,7 +163,7 @@ fe_print_text (struct session *sess, char *text, time_t stamp) { dotime = FALSE; newtext[j] = 0; - j += timecat (newtext); + j += timecat (newtext, stamp); } switch (text[i]) { @@ -179,8 +177,7 @@ fe_print_text (struct session *sess, char *text, time_t stamp) j++; newtext[j] = 'm'; j++; - i--; - goto jump2; + goto endloop; } k = 0; comma = FALSE; @@ -226,13 +223,16 @@ fe_print_text (struct session *sess, char *text, time_t stamp) comma = TRUE; break; default: - goto jump; + goto endloop; } k = 0; } i++; } break; + /* don't actually want hidden text */ + case '\010': /* hidden */ + break; case '\026': /* REVERSE */ if (reverse) { @@ -296,120 +296,246 @@ fe_print_text (struct session *sess, char *text, time_t stamp) newtext[j] = text[i]; j++; } - jump2: i++; - jump: - i += 0; + endloop: + ; } + + /* make sure last character is a new line */ + if (text[i-1] != '\n') + newtext[j++] = '\n'; + newtext[j] = 0; write (STDOUT_FILENO, newtext, j); free (newtext); } - +#else +/* The win32 version for cmd.exe */ void -fe_timeout_remove (int tag) +fe_print_text (struct session *sess, char *text, time_t stamp) { - timerevent *te; - GSList *list; + int dotime = FALSE; + int comma, k, i = 0, j = 0, len = strlen (text); + + unsigned char *newtext = malloc (len + 1024); - list = tmr_list; - while (list) + if (prefs.timestamp) { - te = (timerevent *) list->data; - if (te->tag == tag) + newtext[0] = 0; + j += timecat (newtext, stamp); + } + while (i < len) + { + if (dotime && text[i] != 0) { - tmr_list = g_slist_remove (tmr_list, te); - free (te); - return; + dotime = FALSE; + newtext[j] = 0; + j += timecat (newtext, stamp); } - list = list->next; + switch (text[i]) + { + case 3: + i++; + if (!isdigit (text[i])) + { + goto endloop; + } + k = 0; + comma = FALSE; + while (i < len) + { + if (text[i] >= '0' && text[i] <= '9' && k < 2) + { + k++; + } else + { + switch (text[i]) + { + case ',': + comma = TRUE; + break; + default: + goto endloop; + } + k = 0; + + } + i++; + } + break; + /* don't actually want hidden text */ + case '\010': /* hidden */ + case '\026': /* REVERSE */ + case '\037': /* underline */ + case '\002': /* bold */ + case '\017': /* reset all */ + break; + case '\007': + if (!prefs.filterbeep) + { + newtext[j] = text[i]; + j++; + } + break; + case '\t': + newtext[j] = ' '; + j++; + break; + case '\n': + newtext[j] = '\r'; + j++; + if (prefs.timestamp) + dotime = TRUE; + default: + newtext[j] = text[i]; + j++; + } + i++; + endloop: + ; } + + /* make sure last character is a new line */ + if (text[i-1] != '\n') + newtext[j++] = '\n'; + + newtext[j] = 0; + write (STDOUT_FILENO, newtext, j); + free (newtext); +} +#endif + +void +fe_timeout_remove (int tag) +{ + g_source_remove (tag); } int fe_timeout_add (int interval, void *callback, void *userdata) { - struct timeval now; - timerevent *te = malloc (sizeof (timerevent)); - - tmr_list_count++; /* this overflows at 2.2Billion, who cares!! */ - - te->tag = tmr_list_count; - te->interval = interval; - te->callback = callback; - te->userdata = userdata; - - gettimeofday (&now, NULL); - te->next_call = now.tv_sec * 1000 + (now.tv_usec / 1000) + te->interval; - - tmr_list = g_slist_prepend (tmr_list, te); - - return te->tag; + return g_timeout_add (interval, (GSourceFunc) callback, userdata); } void fe_input_remove (int tag) { - socketevent *se; - GSList *list; - - list = se_list; - while (list) - { - se = (socketevent *) list->data; - if (se->tag == tag) - { - se_list = g_slist_remove (se_list, se); - free (se); - return; - } - list = list->next; - } + g_source_remove (tag); } int fe_input_add (int sok, int flags, void *func, void *data) { - socketevent *se = malloc (sizeof (socketevent)); + int tag, type = 0; + GIOChannel *channel; - se_list_count++; /* this overflows at 2.2Billion, who cares!! */ + channel = g_io_channel_unix_new (sok); - se->tag = se_list_count; - se->sok = sok; - se->rread = flags & FIA_READ; - se->wwrite = flags & FIA_WRITE; - se->eexcept = flags & FIA_EX; - se->callback = func; - se->userdata = data; - se_list = g_slist_prepend (se_list, se); + if (flags & FIA_READ) + type |= G_IO_IN | G_IO_HUP | G_IO_ERR; + if (flags & FIA_WRITE) + type |= G_IO_OUT | G_IO_ERR; + if (flags & FIA_EX) + type |= G_IO_PRI; - return se->tag; + tag = g_io_add_watch (channel, type, (GIOFunc) func, data); + g_io_channel_unref (channel); + + return tag; } +/* === command-line parameter parsing : requires glib 2.6 === */ + +static char *arg_cfgdir = NULL; +static gint arg_show_autoload = 0; +static gint arg_show_config = 0; +static gint arg_show_version = 0; + +static const GOptionEntry gopt_entries[] = +{ + {"no-auto", 'a', 0, G_OPTION_ARG_NONE, &arg_dont_autoconnect, N_("Don't auto connect to servers"), NULL}, + {"cfgdir", 'd', 0, G_OPTION_ARG_STRING, &arg_cfgdir, N_("Use a different config directory"), "PATH"}, + {"no-plugins", 'n', 0, G_OPTION_ARG_NONE, &arg_skip_plugins, N_("Don't auto load any plugins"), NULL}, + {"plugindir", 'p', 0, G_OPTION_ARG_NONE, &arg_show_autoload, N_("Show plugin auto-load directory"), NULL}, + {"configdir", 'u', 0, G_OPTION_ARG_NONE, &arg_show_config, N_("Show user config directory"), NULL}, + {"url", 0, 0, G_OPTION_ARG_STRING, &arg_url, N_("Open an irc://server:port/channel URL"), "URL"}, + {"version", 'v', 0, G_OPTION_ARG_NONE, &arg_show_version, N_("Show version information"), NULL}, + {NULL} +}; + int fe_args (int argc, char *argv[]) { - if (argc > 1) + GError *error = NULL; + GOptionContext *context; + +#ifdef ENABLE_NLS + bindtextdomain (GETTEXT_PACKAGE, LOCALEDIR); + bind_textdomain_codeset (GETTEXT_PACKAGE, "UTF-8"); + textdomain (GETTEXT_PACKAGE); +#endif + + context = g_option_context_new (NULL); + g_option_context_add_main_entries (context, gopt_entries, GETTEXT_PACKAGE); + g_option_context_parse (context, &argc, &argv, &error); + + if (error) + { + if (error->message) + printf ("%s\n", error->message); + return 1; + } + + g_option_context_free (context); + + if (arg_show_version) + { + printf (PACKAGE_TARNAME" "PACKAGE_VERSION"\n"); + return 0; + } + + if (arg_show_autoload) { - if (!strcasecmp (argv[1], "--version") || !strcasecmp (argv[1], "-v")) +#ifdef WIN32 + /* see the chdir() below */ + char *sl, *exe = strdup (argv[0]); + sl = strrchr (exe, '\\'); + if (sl) { - puts (PACKAGE_VERSION); - return 0; + *sl = 0; + printf ("%s\\plugins\n", exe); } +#else + printf ("%s\n", XCHATLIBDIR"/plugins"); +#endif + return 0; } + + if (arg_show_config) + { + printf ("%s\n", get_xdir_fs ()); + return 0; + } + + if (arg_cfgdir) /* we want filesystem encoding */ + { + xdir_fs = strdup (arg_cfgdir); + if (xdir_fs[strlen (xdir_fs) - 1] == '/') + xdir_fs[strlen (xdir_fs) - 1] = 0; + g_free (arg_cfgdir); + } + return -1; } void fe_init (void) { - se_list = 0; - se_list_count = 0; - tmr_list = 0; - tmr_list_count = 0; + /* the following should be default generated, not enfoced in binary */ prefs.autosave = 0; prefs.use_server_tab = 0; prefs.autodialog = 0; + /* except for these, there is no lag meter, there is no server list */ prefs.lagometer = 0; prefs.slist_skip = 1; } @@ -417,129 +543,29 @@ fe_init (void) void fe_main (void) { - struct timeval timeout, now; - socketevent *se; - timerevent *te; - fd_set rd, wd, ex; - GSList *list; - guint64 shortest, delay; + GIOChannel *keyboard_input; - if (!sess_list) - new_ircwindow (NULL, NULL, SESS_SERVER, 0); + main_loop = g_main_loop_new(NULL, FALSE); -#ifdef ENABLE_NLS - bindtextdomain (GETTEXT_PACKAGE, PREFIX"/share/locale"); - bind_textdomain_codeset (GETTEXT_PACKAGE, "UTF-8"); - textdomain (GETTEXT_PACKAGE); + /* Keyboard Entry Setup */ +#ifdef G_OS_WIN32 + keyboard_input = g_io_channel_win32_new_fd(STDIN_FILENO); +#else + keyboard_input = g_io_channel_unix_new(STDIN_FILENO); #endif - while (!done) - { - FD_ZERO (&rd); - FD_ZERO (&wd); - FD_ZERO (&ex); - - list = se_list; - while (list) - { - se = (socketevent *) list->data; - if (se->rread) - FD_SET (se->sok, &rd); - if (se->wwrite) - FD_SET (se->sok, &wd); - if (se->eexcept) - FD_SET (se->sok, &ex); - list = list->next; - } - - FD_SET (STDIN_FILENO, &rd); /* for reading keyboard */ - - /* find the shortest timeout event */ - shortest = 0; - list = tmr_list; - while (list) - { - te = (timerevent *) list->data; - if (te->next_call < shortest || shortest == 0) - shortest = te->next_call; - list = list->next; - } - gettimeofday (&now, NULL); - delay = shortest - ((now.tv_sec * 1000) + (now.tv_usec / 1000)); - timeout.tv_sec = delay / 1000; - timeout.tv_usec = (delay % 1000) * 1000; - - select (FD_SETSIZE, &rd, &wd, &ex, &timeout); - - if (FD_ISSET (STDIN_FILENO, &rd)) - read_stdin (); - - /* set all checked flags to false */ - list = se_list; - while (list) - { - se = (socketevent *) list->data; - se->checked = 0; - list = list->next; - } - - /* check all the socket callbacks */ - list = se_list; - while (list) - { - se = (socketevent *) list->data; - se->checked = 1; - if (se->rread && FD_ISSET (se->sok, &rd)) - { - se->callback (NULL, 1, se->userdata); - } else if (se->wwrite && FD_ISSET (se->sok, &wd)) - { - se->callback (NULL, 2, se->userdata); - } else if (se->eexcept && FD_ISSET (se->sok, &ex)) - { - se->callback (NULL, 4, se->userdata); - } - list = se_list; - if (list) - { - se = (socketevent *) list->data; - while (se->checked) - { - list = list->next; - if (!list) - break; - se = (socketevent *) list->data; - } - } - } + g_io_add_watch(keyboard_input, G_IO_IN, handle_line, NULL); - /* now check our list of timeout events, some might need to be called! */ - gettimeofday (&now, NULL); - list = tmr_list; - while (list) - { - te = (timerevent *) list->data; - list = list->next; - if (now.tv_sec * 1000 + (now.tv_usec / 1000) >= te->next_call) - { - /* if the callback returns 0, it must be removed */ - if (te->callback (te->userdata) == 0) - { - fe_timeout_remove (te->tag); - } else - { - te->next_call = now.tv_sec * 1000 + (now.tv_usec / 1000) + te->interval; - } - } - } + g_main_loop_run(main_loop); - } + return; } void fe_exit (void) { done = TRUE; + g_main_loop_quit(main_loop); } void @@ -793,10 +819,23 @@ fe_get_int (char *prompt, int def, void *callback, void *ud) void fe_idle_add (void *func, void *data) { + g_idle_add (func, data); } void fe_ctrl_gui (session *sess, fe_gui_action action, int arg) { + /* only one action type handled for now, but could add more */ + switch (action) + { + /* gui focus is really the only case xchat-text needs to wory about */ + case FE_GUI_FOCUS: + current_sess = sess; + current_tab = sess; + sess->server->front_session = sess; + break; + default: + break; + } } int fe_gui_info (session *sess, int info_type) diff --git a/src/fe-text/fe-text.h b/src/fe-text/fe-text.h index b8afa284..e4f6f6c0 100644 --- a/src/fe-text/fe-text.h +++ b/src/fe-text/fe-text.h @@ -1,29 +1 @@ - -typedef int (*socket_callback) (void *source, int condition, void *user_data); -typedef int (*timer_callback) (void *user_data); - -struct socketeventRec -{ - socket_callback callback; - void *userdata; - int sok; - int tag; - int rread:1; - int wwrite:1; - int eexcept:1; - int checked:1; -}; - -typedef struct socketeventRec socketevent; - - -struct timerRec -{ - timer_callback callback; - void *userdata; - int interval; - int tag; - guint64 next_call; /* miliseconds */ -}; - -typedef struct timerRec timerevent; +GMainLoop *main_loop; diff --git a/src/fe-text/fe-text.vcxproj b/src/fe-text/fe-text.vcxproj new file mode 100644 index 00000000..e8ed04b0 --- /dev/null +++ b/src/fe-text/fe-text.vcxproj @@ -0,0 +1,108 @@ +<?xml version="1.0" encoding="utf-8"?> +<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <ItemGroup Label="ProjectConfigurations"> + <ProjectConfiguration Include="Release|Win32"> + <Configuration>Release</Configuration> + <Platform>Win32</Platform> + </ProjectConfiguration> + <ProjectConfiguration Include="Release|x64"> + <Configuration>Release</Configuration> + <Platform>x64</Platform> + </ProjectConfiguration> + </ItemGroup> + <PropertyGroup Label="Globals"> + <ProjectGuid>{E93E1255-95D1-4B08-8FDF-B53CC6A21280}</ProjectGuid> + <Keyword>Win32Proj</Keyword> + <RootNamespace>fetext</RootNamespace> + </PropertyGroup> + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" /> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration"> + <ConfigurationType>Application</ConfigurationType> + <UseDebugLibraries>false</UseDebugLibraries> + <WholeProgramOptimization>true</WholeProgramOptimization> + <CharacterSet>MultiByte</CharacterSet> + <PlatformToolset>WDK7</PlatformToolset> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration"> + <ConfigurationType>Application</ConfigurationType> + <UseDebugLibraries>false</UseDebugLibraries> + <WholeProgramOptimization>true</WholeProgramOptimization> + <CharacterSet>MultiByte</CharacterSet> + <PlatformToolset>WDK7</PlatformToolset> + </PropertyGroup> + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" /> + <ImportGroup Label="ExtensionSettings"> + </ImportGroup> + <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> + <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> + <Import Project="..\..\win32\xchat.props" /> + </ImportGroup> + <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets"> + <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> + <Import Project="..\..\win32\xchat.props" /> + </ImportGroup> + <PropertyGroup Label="UserMacros" /> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> + <LinkIncremental>false</LinkIncremental> + <TargetName>xchat-text</TargetName> + <OutDir>$(SolutionDir)build\$(PlatformName)\bin</OutDir> + <IntDir>$(SolutionDir)build\$(PlatformName)\obj\$(ProjectName)</IntDir> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'"> + <LinkIncremental>false</LinkIncremental> + <TargetName>xchat-text</TargetName> + <OutDir>$(SolutionDir)build\$(PlatformName)\bin</OutDir> + <IntDir>$(SolutionDir)build\$(PlatformName)\obj\$(ProjectName)</IntDir> + </PropertyGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> + <ClCompile> + <WarningLevel>Level1</WarningLevel> + <PrecompiledHeader> + </PrecompiledHeader> + <Optimization>MaxSpeed</Optimization> + <FunctionLevelLinking>true</FunctionLevelLinking> + <IntrinsicFunctions>true</IntrinsicFunctions> + <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;$(OwnFlags);%(PreprocessorDefinitions)</PreprocessorDefinitions> + <AdditionalIncludeDirectories>$(DepsRoot)\include;$(Glib);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> + <MultiProcessorCompilation>true</MultiProcessorCompilation> + </ClCompile> + <Link> + <SubSystem>Console</SubSystem> + <GenerateDebugInformation>true</GenerateDebugInformation> + <EnableCOMDATFolding>true</EnableCOMDATFolding> + <OptimizeReferences>true</OptimizeReferences> + <AdditionalDependencies>$(DepLibs);"$(OutDir)\common.lib";"$(OutDir)\dirent-win32.lib";%(AdditionalDependencies)</AdditionalDependencies> + <AdditionalLibraryDirectories>$(DepsRoot)\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories> + </Link> + </ItemDefinitionGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'"> + <ClCompile> + <WarningLevel>Level1</WarningLevel> + <PrecompiledHeader> + </PrecompiledHeader> + <Optimization>MaxSpeed</Optimization> + <FunctionLevelLinking>true</FunctionLevelLinking> + <IntrinsicFunctions>true</IntrinsicFunctions> + <PreprocessorDefinitions>WIN32;_WIN64;NDEBUG;_CONSOLE;$(OwnFlags);%(PreprocessorDefinitions)</PreprocessorDefinitions> + <AdditionalIncludeDirectories>$(DepsRoot)\include;$(Glib);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> + <MultiProcessorCompilation>true</MultiProcessorCompilation> + </ClCompile> + <Link> + <SubSystem>Console</SubSystem> + <GenerateDebugInformation>true</GenerateDebugInformation> + <EnableCOMDATFolding>true</EnableCOMDATFolding> + <OptimizeReferences>true</OptimizeReferences> + <AdditionalDependencies>$(DepLibs);"$(OutDir)\common.lib";"$(OutDir)\dirent-win32.lib";%(AdditionalDependencies)</AdditionalDependencies> + <AdditionalLibraryDirectories>$(DepsRoot)\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories> + </Link> + </ItemDefinitionGroup> + <ItemGroup> + <ClInclude Include="fe-text.h" /> + </ItemGroup> + <ItemGroup> + <ClCompile Include="fe-text.c" /> + </ItemGroup> + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" /> + <ImportGroup Label="ExtensionTargets"> + </ImportGroup> +</Project> \ No newline at end of file diff --git a/src/fe-text/fe-text.vcxproj.filters b/src/fe-text/fe-text.vcxproj.filters new file mode 100644 index 00000000..e8a4bcc5 --- /dev/null +++ b/src/fe-text/fe-text.vcxproj.filters @@ -0,0 +1,23 @@ +<?xml version="1.0" encoding="utf-8"?> +<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <ItemGroup> + <Filter Include="Source Files"> + <UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier> + <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions> + </Filter> + <Filter Include="Header Files"> + <UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier> + <Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions> + </Filter> + </ItemGroup> + <ItemGroup> + <ClInclude Include="fe-text.h"> + <Filter>Header Files</Filter> + </ClInclude> + </ItemGroup> + <ItemGroup> + <ClCompile Include="fe-text.c"> + <Filter>Source Files</Filter> + </ClCompile> + </ItemGroup> +</Project> \ No newline at end of file diff --git a/src/fe-text/fe-text.vcxproj.user b/src/fe-text/fe-text.vcxproj.user new file mode 100644 index 00000000..695b5c78 --- /dev/null +++ b/src/fe-text/fe-text.vcxproj.user @@ -0,0 +1,3 @@ +<?xml version="1.0" encoding="utf-8"?> +<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> +</Project> \ No newline at end of file diff --git a/src/fe-text/makefile.mak b/src/fe-text/makefile.mak new file mode 100644 index 00000000..59d277d3 --- /dev/null +++ b/src/fe-text/makefile.mak @@ -0,0 +1,20 @@ +include "..\makeinc.mak" + +COMLIB = ..\common\xchatcommon.lib +PROG = xchat-text.exe + +!ifdef X64 +PLATOBJ = msvcrt_win2003.obj +!else +PLATOBJ = msvcrt_winxp.obj +!endif + +all: fe-text.obj + link /out:$(PROG) /subsystem:console /nologo $(PLATOBJ) $(LIBS) $(COMLIB) fe-text.obj + +fe-text.obj: fe-text.c makefile.mak + cl $(CFLAGS) $(GLIB) fe-text.c + +clean: + @del *.obj + @del $(PROG) diff --git a/src/gtk2-prefs/callbacks.cpp b/src/gtk2-prefs/callbacks.cpp new file mode 100644 index 00000000..9cc5c928 --- /dev/null +++ b/src/gtk2-prefs/callbacks.cpp @@ -0,0 +1,224 @@ +#ifdef HAVE_CONFIG_H +# include <config.h> +#endif + +#include <gtk/gtk.h> +#include <iostream> + +#include "callbacks.h" +#include "interface.h" +#include "support.h" + +#include "main.h" + + + +extern GtkWidget* g_main_window; + +void +on_main_showpreviewtoggle_toggled (GtkToggleButton *togglebutton, + gpointer user_data) +{ + if (gtk_toggle_button_get_active (togglebutton)) { + gtk_widget_show(lookup_widget(g_main_window, "main_previewhbox")); + gtk_button_set_label(GTK_BUTTON(togglebutton), "Hide preview <<"); + gtk_window_resize(GTK_WINDOW(g_main_window), 700, 330); + } else { + gtk_widget_hide(lookup_widget(g_main_window, "main_previewhbox")); + gtk_button_set_label(GTK_BUTTON(togglebutton), "Show preview >>"); + gtk_window_resize(GTK_WINDOW(g_main_window), 300, 330); + } + +} + + +/* +extern GtkWidget* g_fontsel_dialog; + + +void +on_fontsel_dialog_response (GtkDialog *dialog, + gint id, + gpointer user_data) +{ + + switch(id) { + case GTK_RESPONSE_OK: + { + const char* font = gtk_font_selection_dialog_get_font_name (GTK_FONT_SELECTION_DIALOG(dialog)); + std::string f = (font ? font : ""); + set_theme(get_selected_theme(), f); + break; + } +// case GTK_RESPONSE_CANCEL: +// gtk_widget_destroy(g_fontsel_dialog); +// g_fontsel_dialog = 0; +// return; + + } + gtk_widget_destroy(g_fontsel_dialog); + g_fontsel_dialog = 0; + +} + + +gboolean +on_fontsel_dialog_delete_event (GtkWidget *widget, + GdkEvent *event, + gpointer user_data) +{ + gtk_widget_destroy(g_fontsel_dialog); + g_fontsel_dialog = 0; + + return FALSE; +} + + +void +on_main_fontselectbutton_clicked (GtkButton *button, + gpointer user_data) +{ + g_fontsel_dialog = create_fontsel_dialog(); + gtk_font_selection_dialog_set_font_name(GTK_FONT_SELECTION_DIALOG(g_fontsel_dialog), get_current_font().c_str()); + gtk_widget_show(g_fontsel_dialog); +} +*/ + + + + + +void +on_main_ok_button_clicked (GtkButton *button, + gpointer user_data) +{ + if (save_current_theme()) + gtk_main_quit(); +} + + +void +on_main_cancel_button_clicked (GtkButton *button, + gpointer user_data) +{ + gtk_main_quit(); +} + + +void +on_main_reset_button_clicked (GtkButton *button, + gpointer user_data) +{ + set_theme(get_orig_theme(), get_orig_font()); +} + + +gboolean +on_main_window_delete_event (GtkWidget *widget, + GdkEvent *event, + gpointer user_data) +{ + program_shutdown(); + return true; +} + + +void +on_main_use_default_font_radio_toggled (GtkToggleButton *togglebutton, + gpointer user_data) +{ + bool default_font = gtk_toggle_button_get_active(togglebutton); + + gtk_widget_set_sensitive(lookup_widget(g_main_window, "main_font_selector_button"), !default_font); + + apply_theme(get_selected_theme(), get_selected_font()); +} + + +void +on_main_font_selector_button_font_set (GtkFontButton *fontbutton, + gpointer user_data) +{ + apply_theme(get_selected_theme(), get_selected_font()); +} + + +void +on_new2_activate (GtkMenuItem *menuitem, + gpointer user_data) +{ + +} + + +void +on_open2_activate (GtkMenuItem *menuitem, + gpointer user_data) +{ + +} + + +void +on_save2_activate (GtkMenuItem *menuitem, + gpointer user_data) +{ + +} + + +void +on_save_as2_activate (GtkMenuItem *menuitem, + gpointer user_data) +{ + +} + + +void +on_quit2_activate (GtkMenuItem *menuitem, + gpointer user_data) +{ + +} + + +void +on_cut2_activate (GtkMenuItem *menuitem, + gpointer user_data) +{ + +} + + +void +on_copy2_activate (GtkMenuItem *menuitem, + gpointer user_data) +{ + +} + + +void +on_paste2_activate (GtkMenuItem *menuitem, + gpointer user_data) +{ + +} + + +void +on_delete2_activate (GtkMenuItem *menuitem, + gpointer user_data) +{ + +} + + +void +on_about2_activate (GtkMenuItem *menuitem, + gpointer user_data) +{ + +} + diff --git a/src/gtk2-prefs/callbacks.h b/src/gtk2-prefs/callbacks.h new file mode 100644 index 00000000..5759aebc --- /dev/null +++ b/src/gtk2-prefs/callbacks.h @@ -0,0 +1,71 @@ +#include <gtk/gtk.h> + + +void +on_main_showpreviewtoggle_toggled (GtkToggleButton *togglebutton, + gpointer user_data); + +void +on_main_ok_button_clicked (GtkButton *button, + gpointer user_data); + +void +on_main_cancel_button_clicked (GtkButton *button, + gpointer user_data); + +void +on_main_reset_button_clicked (GtkButton *button, + gpointer user_data); + +gboolean +on_main_window_delete_event (GtkWidget *widget, + GdkEvent *event, + gpointer user_data); + +void +on_main_use_default_font_radio_toggled (GtkToggleButton *togglebutton, + gpointer user_data); + +void +on_main_font_selector_button_font_set (GtkFontButton *fontbutton, + gpointer user_data); + +void +on_new2_activate (GtkMenuItem *menuitem, + gpointer user_data); + +void +on_open2_activate (GtkMenuItem *menuitem, + gpointer user_data); + +void +on_save2_activate (GtkMenuItem *menuitem, + gpointer user_data); + +void +on_save_as2_activate (GtkMenuItem *menuitem, + gpointer user_data); + +void +on_quit2_activate (GtkMenuItem *menuitem, + gpointer user_data); + +void +on_cut2_activate (GtkMenuItem *menuitem, + gpointer user_data); + +void +on_copy2_activate (GtkMenuItem *menuitem, + gpointer user_data); + +void +on_paste2_activate (GtkMenuItem *menuitem, + gpointer user_data); + +void +on_delete2_activate (GtkMenuItem *menuitem, + gpointer user_data); + +void +on_about2_activate (GtkMenuItem *menuitem, + gpointer user_data); diff --git a/src/gtk2-prefs/config.h b/src/gtk2-prefs/config.h new file mode 100644 index 00000000..4501a33b --- /dev/null +++ b/src/gtk2-prefs/config.h @@ -0,0 +1,59 @@ +/* Define to 1 if you have the <dlfcn.h> header file. */ +#undef HAVE_DLFCN_H + +/* Define to 1 if you have the <inttypes.h> header file. */ +#undef HAVE_INTTYPES_H + +/* Define to 1 if you have the <memory.h> header file. */ +#define HAVE_MEMORY_H 1 + +/* Define to 1 if you have the <stdint.h> header file. */ +#undef HAVE_STDINT_H + +/* Define to 1 if you have the <stdlib.h> header file. */ +#undef HAVE_STDLIB_H + +/* Define to 1 if you have the <strings.h> header file. */ +#undef HAVE_STRINGS_H + +/* Define to 1 if you have the <string.h> header file. */ +#define HAVE_STRING_H 1 + +/* Define to 1 if you have the <sys/stat.h> header file. */ +#define HAVE_SYS_STAT_H 1 + +/* Define to 1 if you have the <sys/types.h> header file. */ +#define HAVE_SYS_TYPES_H 1 + +/* Define to 1 if you have the <unistd.h> header file. */ +#undef HAVE_UNISTD_H + +/* For gmessages.h error message */ +#define G_HAVE_ISO_VARARGS + +/* For mkdir */ +#define HAVE_DIRECT_H 1 + +/* Name of package */ +#define PACKAGE gtk2-prefs + +/* Define to the address where bug reports for this package should be sent. */ +#undef PACKAGE_BUGREPORT + +/* Define to the full name of this package. */ +#define PACKAGE_NAME gtk2-prefs + +/* Define to the full name and version of this package. */ +#define PACKAGE_STRING gtk2-prefs 0.4.1 + +/* Define to the one symbol short name of this package. */ +#define PACKAGE_TARNAME gtk2-prefs + +/* Define to the version of this package. */ +#define PACKAGE_VERSION 0.4.1 + +/* Define to 1 if you have the ANSI C header files. */ +#define STDC_HEADERS 1 + +/* Version number of package */ +#define VERSION 0.4.1 diff --git a/src/gtk2-prefs/interface.cpp b/src/gtk2-prefs/interface.cpp new file mode 100644 index 00000000..7c1cc53c --- /dev/null +++ b/src/gtk2-prefs/interface.cpp @@ -0,0 +1,836 @@ +/* + * DO NOT EDIT THIS FILE - it is generated by Glade. + */ + +#ifdef HAVE_CONFIG_H +# include <config.h> +#endif + +#include <sys/types.h> +#include <sys/stat.h> +#ifdef HAVE_UNISTD_H +#include <unistd.h> +#endif +#include <string.h> +#include <stdio.h> + +#include <gdk/gdkkeysyms.h> +#include <gtk/gtk.h> + +#include "callbacks.h" +#include "interface.h" +#include "support.h" + +#define GLADE_HOOKUP_OBJECT(component,widget,name) \ + g_object_set_data_full (G_OBJECT (component), name, \ + gtk_widget_ref (widget), (GDestroyNotify) gtk_widget_unref) + +#define GLADE_HOOKUP_OBJECT_NO_REF(component,widget,name) \ + g_object_set_data (G_OBJECT (component), name, widget) + +GtkWidget* +create_main_window (void) +{ + GtkWidget *main_window; + GtkWidget *main_hbox; + GtkWidget *vbox1; + GtkWidget *hbox1; + GtkWidget *frame2; + GtkWidget *alignment3; + GtkWidget *scrolledwindow3; + GtkWidget *main_themelist; + GtkWidget *label1234; + GtkWidget *frame3; + GtkWidget *alignment4; + GtkWidget *vbox7; + GtkWidget *hbox8; + GtkWidget *vbox9; + GtkWidget *main_use_default_font_radio; + GSList *main_use_default_font_radio_group = NULL; + GtkWidget *main_use_custom_font_radio; + GtkWidget *alignment5; + GtkWidget *vbox10; + GtkWidget *hbox9; + GtkWidget *vbox11; + GtkWidget *main_font_selector_button; + GtkWidget *label669; + GtkWidget *vbox13; + GtkWidget *hbox6666; + GtkWidget *main_use_system_config_checkbutton; + GtkWidget *main_showpreviewtoggle; + GtkWidget *hbuttonbox1; + GtkWidget *hbox7; + GtkWidget *hbox6665; + GtkWidget *image2; + GtkWidget *label2; + GtkWidget *vbox6; + GtkWidget *hbox5; + GtkWidget *main_ok_button; + GtkWidget *main_cancel_button; + GtkWidget *main_reset_button; + GtkWidget *alignment2; + GtkWidget *hbox6; + GtkWidget *image1; + GtkWidget *label667; + GtkWidget *main_previewhbox; + GtkWidget *vseparator2; + GtkWidget *frame4; + GtkWidget *alignment6; + GtkWidget *vbox12; + GtkWidget *main_previewbook; + GtkWidget *table1; + GtkWidget *vbox2; + GtkWidget *checkbutton1; + GtkWidget *checkbutton2; + GtkWidget *button4; + GtkWidget *togglebutton1; + GtkObject *spinbutton1_adj; + GtkWidget *spinbutton1; + GtkWidget *vbox4; + GtkWidget *menubar2; + GtkWidget *menuitem5; + GtkWidget *menuitem5_menu; + GtkWidget *new2; + GtkWidget *open2; + GtkWidget *save2; + GtkWidget *save_as2; + GtkWidget *separatormenuitem2; + GtkWidget *quit2; + GtkWidget *menuitem6; + GtkWidget *menuitem6_menu; + GtkWidget *cut2; + GtkWidget *copy2; + GtkWidget *paste2; + GtkWidget *delete2; + GtkWidget *menuitem8; + GtkWidget *menuitem8_menu; + GtkWidget *about2; + GtkWidget *combobox1; + GtkWidget *comboboxentry1; + GtkWidget *hscale1; + GtkWidget *scrolledwindow1; + GtkWidget *preview_treeview; + GtkWidget *statusbar1; + GtkWidget *progressbar1; + GtkWidget *vseparator1; + GtkWidget *frame1; + GtkWidget *vbox3; + GtkWidget *radiobutton1; + GSList *radiobutton1_group = NULL; + GtkWidget *radiobutton2; + GtkWidget *radiobutton3; + GtkWidget *label6; + GtkWidget *label4; + GtkWidget *scrolledwindow2; + GtkWidget *textview1; + GtkWidget *label5; + GtkWidget *vbox5; + GtkWidget *hbox4; + GtkWidget *about_label; + GtkWidget *label666; + GtkWidget *label670; + GtkAccelGroup *accel_group; + GtkTooltips *tooltips; + + tooltips = gtk_tooltips_new (); + + accel_group = gtk_accel_group_new (); + + main_window = gtk_window_new (GTK_WINDOW_TOPLEVEL); + gtk_widget_set_name (main_window, "main_window"); + gtk_window_set_title (GTK_WINDOW (main_window), "GTK+ Preference Tool"); + + main_hbox = gtk_hbox_new (FALSE, 0); + gtk_widget_set_name (main_hbox, "main_hbox"); + gtk_widget_show (main_hbox); + gtk_container_add (GTK_CONTAINER (main_window), main_hbox); + gtk_widget_set_size_request (main_hbox, 310, 320); + + vbox1 = gtk_vbox_new (FALSE, 0); + gtk_widget_set_name (vbox1, "vbox1"); + gtk_widget_show (vbox1); + gtk_box_pack_start (GTK_BOX (main_hbox), vbox1, TRUE, TRUE, 0); + gtk_container_set_border_width (GTK_CONTAINER (vbox1), 3); + + hbox1 = gtk_hbox_new (FALSE, 0); + gtk_widget_set_name (hbox1, "hbox1"); + gtk_widget_show (hbox1); + gtk_box_pack_start (GTK_BOX (vbox1), hbox1, TRUE, TRUE, 0); + + frame2 = gtk_frame_new (NULL); + gtk_widget_set_name (frame2, "frame2"); + gtk_widget_show (frame2); + gtk_box_pack_start (GTK_BOX (hbox1), frame2, TRUE, TRUE, 0); + gtk_frame_set_shadow_type (GTK_FRAME (frame2), GTK_SHADOW_NONE); + + alignment3 = gtk_alignment_new (0.5, 0.5, 1, 1); + gtk_widget_set_name (alignment3, "alignment3"); + gtk_widget_show (alignment3); + gtk_container_add (GTK_CONTAINER (frame2), alignment3); + gtk_alignment_set_padding (GTK_ALIGNMENT (alignment3), 0, 0, 12, 0); + + scrolledwindow3 = gtk_scrolled_window_new (NULL, NULL); + gtk_widget_set_name (scrolledwindow3, "scrolledwindow3"); + gtk_widget_show (scrolledwindow3); + gtk_container_add (GTK_CONTAINER (alignment3), scrolledwindow3); + gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrolledwindow3), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); + gtk_scrolled_window_set_shadow_type (GTK_SCROLLED_WINDOW (scrolledwindow3), GTK_SHADOW_IN); + + main_themelist = gtk_tree_view_new (); + gtk_widget_set_name (main_themelist, "main_themelist"); + gtk_widget_show (main_themelist); + gtk_container_add (GTK_CONTAINER (scrolledwindow3), main_themelist); + GTK_WIDGET_SET_FLAGS (main_themelist, GTK_CAN_DEFAULT); + gtk_tree_view_set_headers_visible (GTK_TREE_VIEW (main_themelist), FALSE); + + label1234 = gtk_label_new ("<b>Theme</b>"); + gtk_widget_set_name (label1234, "label1234"); + gtk_widget_show (label1234); + gtk_frame_set_label_widget (GTK_FRAME (frame2), label1234); + gtk_label_set_use_markup (GTK_LABEL (label1234), TRUE); + + frame3 = gtk_frame_new (NULL); + gtk_widget_set_name (frame3, "frame3"); + gtk_widget_show (frame3); + gtk_box_pack_start (GTK_BOX (vbox1), frame3, FALSE, FALSE, 9); + gtk_frame_set_shadow_type (GTK_FRAME (frame3), GTK_SHADOW_NONE); + + alignment4 = gtk_alignment_new (0.5, 0.5, 1, 1); + gtk_widget_set_name (alignment4, "alignment4"); + gtk_widget_show (alignment4); + gtk_container_add (GTK_CONTAINER (frame3), alignment4); + gtk_alignment_set_padding (GTK_ALIGNMENT (alignment4), 0, 0, 12, 0); + + vbox7 = gtk_vbox_new (FALSE, 0); + gtk_widget_set_name (vbox7, "vbox7"); + gtk_widget_show (vbox7); + gtk_container_add (GTK_CONTAINER (alignment4), vbox7); + + hbox8 = gtk_hbox_new (FALSE, 0); + gtk_widget_set_name (hbox8, "hbox8"); + gtk_widget_show (hbox8); + gtk_box_pack_start (GTK_BOX (vbox7), hbox8, FALSE, FALSE, 0); + + vbox9 = gtk_vbox_new (FALSE, 0); + gtk_widget_set_name (vbox9, "vbox9"); + gtk_widget_show (vbox9); + gtk_box_pack_start (GTK_BOX (hbox8), vbox9, TRUE, TRUE, 0); + + main_use_default_font_radio = gtk_radio_button_new_with_mnemonic (NULL, "Use theme default font"); + gtk_widget_set_name (main_use_default_font_radio, "main_use_default_font_radio"); + gtk_widget_show (main_use_default_font_radio); + gtk_box_pack_start (GTK_BOX (vbox9), main_use_default_font_radio, FALSE, FALSE, 0); + gtk_radio_button_set_group (GTK_RADIO_BUTTON (main_use_default_font_radio), main_use_default_font_radio_group); + main_use_default_font_radio_group = gtk_radio_button_get_group (GTK_RADIO_BUTTON (main_use_default_font_radio)); + + main_use_custom_font_radio = gtk_radio_button_new_with_mnemonic (NULL, "Use custom font:"); + gtk_widget_set_name (main_use_custom_font_radio, "main_use_custom_font_radio"); + gtk_widget_show (main_use_custom_font_radio); + gtk_box_pack_start (GTK_BOX (vbox9), main_use_custom_font_radio, FALSE, FALSE, 0); + gtk_radio_button_set_group (GTK_RADIO_BUTTON (main_use_custom_font_radio), main_use_default_font_radio_group); + main_use_default_font_radio_group = gtk_radio_button_get_group (GTK_RADIO_BUTTON (main_use_custom_font_radio)); + gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (main_use_custom_font_radio), TRUE); + + alignment5 = gtk_alignment_new (0.5, 0.5, 1, 1); + gtk_widget_set_name (alignment5, "alignment5"); + gtk_widget_show (alignment5); + gtk_box_pack_start (GTK_BOX (vbox9), alignment5, TRUE, TRUE, 0); + gtk_alignment_set_padding (GTK_ALIGNMENT (alignment5), 0, 0, 12, 0); + + vbox10 = gtk_vbox_new (FALSE, 0); + gtk_widget_set_name (vbox10, "vbox10"); + gtk_widget_show (vbox10); + gtk_container_add (GTK_CONTAINER (alignment5), vbox10); + + hbox9 = gtk_hbox_new (FALSE, 0); + gtk_widget_set_name (hbox9, "hbox9"); + gtk_widget_show (hbox9); + gtk_box_pack_start (GTK_BOX (vbox10), hbox9, FALSE, FALSE, 0); + + vbox11 = gtk_vbox_new (FALSE, 0); + gtk_widget_set_name (vbox11, "vbox11"); + gtk_widget_show (vbox11); + gtk_box_pack_start (GTK_BOX (hbox9), vbox11, TRUE, TRUE, 0); + + main_font_selector_button = gtk_font_button_new (); + gtk_widget_set_name (main_font_selector_button, "main_font_selector_button"); + gtk_widget_show (main_font_selector_button); + gtk_box_pack_start (GTK_BOX (vbox11), main_font_selector_button, FALSE, FALSE, 0); + + label669 = gtk_label_new ("<b>Font</b>"); + gtk_widget_set_name (label669, "label669"); + gtk_widget_show (label669); + gtk_frame_set_label_widget (GTK_FRAME (frame3), label669); + gtk_label_set_use_markup (GTK_LABEL (label669), TRUE); + + vbox13 = gtk_vbox_new (FALSE, 0); + gtk_widget_set_name (vbox13, "vbox13"); + gtk_widget_show (vbox13); + gtk_box_pack_start (GTK_BOX (vbox1), vbox13, FALSE, FALSE, 0); + + hbox6666 = gtk_hbox_new (FALSE, 0); + gtk_widget_set_name (hbox6666, "hbox6666"); + gtk_widget_show (hbox6666); + gtk_box_pack_start (GTK_BOX (vbox13), hbox6666, TRUE, TRUE, 0); + + /* main_use_system_config_checkbutton = gtk_check_button_new_with_mnemonic ("Apply for all users"); + gtk_widget_set_name (main_use_system_config_checkbutton, "main_use_system_config_checkbutton"); + gtk_widget_show (main_use_system_config_checkbutton); + gtk_box_pack_start (GTK_BOX (hbox6666), main_use_system_config_checkbutton, FALSE, FALSE, 12); + gtk_tooltips_set_tip (tooltips, main_use_system_config_checkbutton, "If this is enabled, the program will update the system-wide configuration file. NOT RECOMMENDED!", NULL); */ + + main_showpreviewtoggle = gtk_toggle_button_new_with_mnemonic ("Show preview >>"); + gtk_widget_set_name (main_showpreviewtoggle, "main_showpreviewtoggle"); + gtk_widget_show (main_showpreviewtoggle); + gtk_box_pack_end (GTK_BOX (hbox6666), main_showpreviewtoggle, FALSE, FALSE, 2); + + hbuttonbox1 = gtk_hbutton_box_new (); + gtk_widget_set_name (hbuttonbox1, "hbuttonbox1"); + gtk_widget_show (hbuttonbox1); + gtk_box_pack_start (GTK_BOX (vbox1), hbuttonbox1, FALSE, FALSE, 0); + + hbox7 = gtk_hbox_new (FALSE, 0); + gtk_widget_set_name (hbox7, "hbox7"); + gtk_widget_show (hbox7); + gtk_box_pack_start (GTK_BOX (vbox1), hbox7, FALSE, TRUE, 6); + + hbox6665 = gtk_hbox_new (FALSE, 0); + gtk_widget_set_name (hbox6665, "hbox6665"); + gtk_widget_show (hbox6665); + gtk_box_pack_start (GTK_BOX (hbox7), hbox6665, TRUE, FALSE, 0); + + image2 = gtk_image_new_from_stock ("gtk-dialog-info", GTK_ICON_SIZE_LARGE_TOOLBAR); + gtk_widget_set_name (image2, "image2"); + gtk_widget_show (image2); + gtk_box_pack_start (GTK_BOX (hbox6665), image2, FALSE, FALSE, 0); + + label2 = gtk_label_new ("You should restart XChat-WDK\nfor this change to take effect."); + gtk_widget_set_name (label2, "label2"); + gtk_widget_show (label2); + gtk_box_pack_start (GTK_BOX (hbox6665), label2, FALSE, FALSE, 0); + gtk_label_set_line_wrap (GTK_LABEL (label2), TRUE); + gtk_misc_set_alignment (GTK_MISC (label2), 0, 0.5); + + vbox6 = gtk_vbox_new (FALSE, 0); + gtk_widget_set_name (vbox6, "vbox6"); + gtk_widget_show (vbox6); + gtk_box_pack_start (GTK_BOX (vbox1), vbox6, FALSE, FALSE, 0); + + hbox5 = gtk_hbox_new (TRUE, 0); + gtk_widget_set_name (hbox5, "hbox5"); + gtk_widget_show (hbox5); + gtk_box_pack_start (GTK_BOX (vbox6), hbox5, FALSE, FALSE, 0); + gtk_container_set_border_width (GTK_CONTAINER (hbox5), 4); + + main_ok_button = gtk_button_new_from_stock ("gtk-ok"); + gtk_widget_set_name (main_ok_button, "main_ok_button"); + gtk_widget_show (main_ok_button); + gtk_box_pack_end (GTK_BOX (hbox5), main_ok_button, TRUE, TRUE, 4); + GTK_WIDGET_SET_FLAGS (main_ok_button, GTK_CAN_DEFAULT); + + main_cancel_button = gtk_button_new_from_stock ("gtk-cancel"); + gtk_widget_set_name (main_cancel_button, "main_cancel_button"); + gtk_widget_show (main_cancel_button); + gtk_box_pack_end (GTK_BOX (hbox5), main_cancel_button, TRUE, TRUE, 4); + GTK_WIDGET_SET_FLAGS (main_cancel_button, GTK_CAN_DEFAULT); + + main_reset_button = gtk_button_new (); + gtk_widget_set_name (main_reset_button, "main_reset_button"); + gtk_widget_show (main_reset_button); + gtk_box_pack_end (GTK_BOX (hbox5), main_reset_button, TRUE, TRUE, 4); + + alignment2 = gtk_alignment_new (0.5, 0.5, 0, 0); + gtk_widget_set_name (alignment2, "alignment2"); + gtk_widget_show (alignment2); + gtk_container_add (GTK_CONTAINER (main_reset_button), alignment2); + + hbox6 = gtk_hbox_new (FALSE, 2); + gtk_widget_set_name (hbox6, "hbox6"); + gtk_widget_show (hbox6); + gtk_container_add (GTK_CONTAINER (alignment2), hbox6); + + image1 = gtk_image_new_from_stock ("gtk-revert-to-saved", GTK_ICON_SIZE_BUTTON); + gtk_widget_set_name (image1, "image1"); + gtk_widget_show (image1); + gtk_box_pack_start (GTK_BOX (hbox6), image1, FALSE, FALSE, 0); + + label667 = gtk_label_new_with_mnemonic ("_Reset"); + gtk_widget_set_name (label667, "label667"); + gtk_widget_show (label667); + gtk_box_pack_start (GTK_BOX (hbox6), label667, FALSE, FALSE, 0); + + main_previewhbox = gtk_hbox_new (FALSE, 0); + gtk_widget_set_name (main_previewhbox, "main_previewhbox"); + gtk_box_pack_start (GTK_BOX (main_hbox), main_previewhbox, TRUE, TRUE, 0); + + vseparator2 = gtk_vseparator_new (); + gtk_widget_set_name (vseparator2, "vseparator2"); + gtk_widget_show (vseparator2); + gtk_box_pack_start (GTK_BOX (main_previewhbox), vseparator2, FALSE, TRUE, 4); + + frame4 = gtk_frame_new (NULL); + gtk_widget_set_name (frame4, "frame4"); + gtk_widget_show (frame4); + gtk_box_pack_start (GTK_BOX (main_previewhbox), frame4, TRUE, TRUE, 0); + gtk_container_set_border_width (GTK_CONTAINER (frame4), 3); + gtk_frame_set_shadow_type (GTK_FRAME (frame4), GTK_SHADOW_NONE); + + alignment6 = gtk_alignment_new (0.5, 0.5, 1, 1); + gtk_widget_set_name (alignment6, "alignment6"); + gtk_widget_show (alignment6); + gtk_container_add (GTK_CONTAINER (frame4), alignment6); + + vbox12 = gtk_vbox_new (FALSE, 0); + gtk_widget_set_name (vbox12, "vbox12"); + gtk_widget_show (vbox12); + gtk_container_add (GTK_CONTAINER (alignment6), vbox12); + + main_previewbook = gtk_notebook_new (); + gtk_widget_set_name (main_previewbook, "main_previewbook"); + gtk_widget_show (main_previewbook); + gtk_box_pack_start (GTK_BOX (vbox12), main_previewbook, TRUE, TRUE, 0); + + table1 = gtk_table_new (3, 3, FALSE); + gtk_widget_set_name (table1, "table1"); + gtk_widget_show (table1); + gtk_container_add (GTK_CONTAINER (main_previewbook), table1); + gtk_container_set_border_width (GTK_CONTAINER (table1), 5); + + vbox2 = gtk_vbox_new (FALSE, 4); + gtk_widget_set_name (vbox2, "vbox2"); + gtk_widget_show (vbox2); + gtk_table_attach (GTK_TABLE (table1), vbox2, 0, 1, 0, 1, + (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), + (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), 0, 0); + + checkbutton1 = gtk_check_button_new_with_mnemonic ("check button 1"); + gtk_widget_set_name (checkbutton1, "checkbutton1"); + gtk_widget_show (checkbutton1); + gtk_box_pack_start (GTK_BOX (vbox2), checkbutton1, FALSE, FALSE, 0); + + checkbutton2 = gtk_check_button_new_with_mnemonic ("check button 2"); + gtk_widget_set_name (checkbutton2, "checkbutton2"); + gtk_widget_show (checkbutton2); + gtk_box_pack_start (GTK_BOX (vbox2), checkbutton2, FALSE, FALSE, 0); + + button4 = gtk_button_new_with_mnemonic ("button"); + gtk_widget_set_name (button4, "button4"); + gtk_widget_show (button4); + gtk_box_pack_start (GTK_BOX (vbox2), button4, FALSE, FALSE, 0); + + togglebutton1 = gtk_toggle_button_new_with_mnemonic ("toggle button"); + gtk_widget_set_name (togglebutton1, "togglebutton1"); + gtk_widget_show (togglebutton1); + gtk_box_pack_start (GTK_BOX (vbox2), togglebutton1, FALSE, FALSE, 0); + + spinbutton1_adj = gtk_adjustment_new (0, 0, 100, 1, 10, 10); + spinbutton1 = gtk_spin_button_new (GTK_ADJUSTMENT (spinbutton1_adj), 1, 0); + gtk_widget_set_name (spinbutton1, "spinbutton1"); + gtk_widget_show (spinbutton1); + gtk_box_pack_start (GTK_BOX (vbox2), spinbutton1, FALSE, FALSE, 0); + + vbox4 = gtk_vbox_new (FALSE, 4); + gtk_widget_set_name (vbox4, "vbox4"); + gtk_widget_show (vbox4); + gtk_table_attach (GTK_TABLE (table1), vbox4, 2, 3, 0, 1, + (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), + (GtkAttachOptions) (GTK_FILL), 0, 0); + + menubar2 = gtk_menu_bar_new (); + gtk_widget_set_name (menubar2, "menubar2"); + gtk_widget_show (menubar2); + gtk_box_pack_start (GTK_BOX (vbox4), menubar2, FALSE, FALSE, 0); + + menuitem5 = gtk_menu_item_new_with_mnemonic ("_File"); + gtk_widget_set_name (menuitem5, "menuitem5"); + gtk_widget_show (menuitem5); + gtk_container_add (GTK_CONTAINER (menubar2), menuitem5); + + menuitem5_menu = gtk_menu_new (); + gtk_widget_set_name (menuitem5_menu, "menuitem5_menu"); + gtk_menu_item_set_submenu (GTK_MENU_ITEM (menuitem5), menuitem5_menu); + + new2 = gtk_image_menu_item_new_from_stock ("gtk-new", accel_group); + gtk_widget_set_name (new2, "new2"); + gtk_widget_show (new2); + gtk_container_add (GTK_CONTAINER (menuitem5_menu), new2); + + open2 = gtk_image_menu_item_new_from_stock ("gtk-open", accel_group); + gtk_widget_set_name (open2, "open2"); + gtk_widget_show (open2); + gtk_container_add (GTK_CONTAINER (menuitem5_menu), open2); + + save2 = gtk_image_menu_item_new_from_stock ("gtk-save", accel_group); + gtk_widget_set_name (save2, "save2"); + gtk_widget_show (save2); + gtk_container_add (GTK_CONTAINER (menuitem5_menu), save2); + + save_as2 = gtk_image_menu_item_new_from_stock ("gtk-save-as", accel_group); + gtk_widget_set_name (save_as2, "save_as2"); + gtk_widget_show (save_as2); + gtk_container_add (GTK_CONTAINER (menuitem5_menu), save_as2); + + separatormenuitem2 = gtk_separator_menu_item_new (); + gtk_widget_set_name (separatormenuitem2, "separatormenuitem2"); + gtk_widget_show (separatormenuitem2); + gtk_container_add (GTK_CONTAINER (menuitem5_menu), separatormenuitem2); + gtk_widget_set_sensitive (separatormenuitem2, FALSE); + + quit2 = gtk_image_menu_item_new_from_stock ("gtk-quit", accel_group); + gtk_widget_set_name (quit2, "quit2"); + gtk_widget_show (quit2); + gtk_container_add (GTK_CONTAINER (menuitem5_menu), quit2); + + menuitem6 = gtk_menu_item_new_with_mnemonic ("_Edit"); + gtk_widget_set_name (menuitem6, "menuitem6"); + gtk_widget_show (menuitem6); + gtk_container_add (GTK_CONTAINER (menubar2), menuitem6); + + menuitem6_menu = gtk_menu_new (); + gtk_widget_set_name (menuitem6_menu, "menuitem6_menu"); + gtk_menu_item_set_submenu (GTK_MENU_ITEM (menuitem6), menuitem6_menu); + + cut2 = gtk_image_menu_item_new_from_stock ("gtk-cut", accel_group); + gtk_widget_set_name (cut2, "cut2"); + gtk_widget_show (cut2); + gtk_container_add (GTK_CONTAINER (menuitem6_menu), cut2); + + copy2 = gtk_image_menu_item_new_from_stock ("gtk-copy", accel_group); + gtk_widget_set_name (copy2, "copy2"); + gtk_widget_show (copy2); + gtk_container_add (GTK_CONTAINER (menuitem6_menu), copy2); + + paste2 = gtk_image_menu_item_new_from_stock ("gtk-paste", accel_group); + gtk_widget_set_name (paste2, "paste2"); + gtk_widget_show (paste2); + gtk_container_add (GTK_CONTAINER (menuitem6_menu), paste2); + + delete2 = gtk_image_menu_item_new_from_stock ("gtk-delete", accel_group); + gtk_widget_set_name (delete2, "delete2"); + gtk_widget_show (delete2); + gtk_container_add (GTK_CONTAINER (menuitem6_menu), delete2); + + menuitem8 = gtk_menu_item_new_with_mnemonic ("_Help"); + gtk_widget_set_name (menuitem8, "menuitem8"); + gtk_widget_show (menuitem8); + gtk_container_add (GTK_CONTAINER (menubar2), menuitem8); + + menuitem8_menu = gtk_menu_new (); + gtk_widget_set_name (menuitem8_menu, "menuitem8_menu"); + gtk_menu_item_set_submenu (GTK_MENU_ITEM (menuitem8), menuitem8_menu); + + about2 = gtk_menu_item_new_with_mnemonic ("_About"); + gtk_widget_set_name (about2, "about2"); + gtk_widget_show (about2); + gtk_container_add (GTK_CONTAINER (menuitem8_menu), about2); + + combobox1 = gtk_combo_box_new_text (); + gtk_widget_set_name (combobox1, "combobox1"); + gtk_widget_show (combobox1); + gtk_box_pack_start (GTK_BOX (vbox4), combobox1, FALSE, FALSE, 0); + gtk_combo_box_append_text (GTK_COMBO_BOX (combobox1), "item 1"); + gtk_combo_box_append_text (GTK_COMBO_BOX (combobox1), "item 2"); + gtk_combo_box_append_text (GTK_COMBO_BOX (combobox1), "item 3"); + + comboboxentry1 = gtk_combo_box_entry_new_text (); + gtk_widget_set_name (comboboxentry1, "comboboxentry1"); + gtk_widget_show (comboboxentry1); + gtk_box_pack_start (GTK_BOX (vbox4), comboboxentry1, FALSE, FALSE, 0); + gtk_widget_set_size_request (comboboxentry1, 80, 25); + gtk_combo_box_append_text (GTK_COMBO_BOX (comboboxentry1), "item 1"); + gtk_combo_box_append_text (GTK_COMBO_BOX (comboboxentry1), "item 2"); + gtk_combo_box_append_text (GTK_COMBO_BOX (comboboxentry1), "item 3"); + + hscale1 = gtk_hscale_new (GTK_ADJUSTMENT (gtk_adjustment_new (15, 0, 50, 1, 0, 0))); + gtk_widget_set_name (hscale1, "hscale1"); + gtk_widget_show (hscale1); + gtk_box_pack_start (GTK_BOX (vbox4), hscale1, TRUE, TRUE, 0); + gtk_scale_set_digits (GTK_SCALE (hscale1), 0); + + scrolledwindow1 = gtk_scrolled_window_new (NULL, NULL); + gtk_widget_set_name (scrolledwindow1, "scrolledwindow1"); + gtk_widget_show (scrolledwindow1); + gtk_table_attach (GTK_TABLE (table1), scrolledwindow1, 2, 3, 1, 2, + (GtkAttachOptions) (GTK_FILL), + (GtkAttachOptions) (GTK_FILL), 0, 0); + + preview_treeview = gtk_tree_view_new (); + gtk_widget_set_name (preview_treeview, "preview_treeview"); + gtk_widget_show (preview_treeview); + gtk_container_add (GTK_CONTAINER (scrolledwindow1), preview_treeview); + gtk_tree_view_set_reorderable (GTK_TREE_VIEW (preview_treeview), TRUE); + + statusbar1 = gtk_statusbar_new (); + gtk_widget_set_name (statusbar1, "statusbar1"); + gtk_widget_show (statusbar1); + gtk_table_attach (GTK_TABLE (table1), statusbar1, 1, 3, 2, 3, + (GtkAttachOptions) (GTK_FILL), + (GtkAttachOptions) (0), 0, 0); + gtk_widget_set_size_request (statusbar1, 6, 20); + + progressbar1 = gtk_progress_bar_new (); + gtk_widget_set_name (progressbar1, "progressbar1"); + gtk_widget_show (progressbar1); + gtk_table_attach (GTK_TABLE (table1), progressbar1, 0, 1, 2, 3, + (GtkAttachOptions) (GTK_FILL), + (GtkAttachOptions) (0), 0, 0); + gtk_widget_set_size_request (progressbar1, 80, 20); + gtk_progress_bar_set_fraction (GTK_PROGRESS_BAR (progressbar1), 0.56); + gtk_progress_bar_set_text (GTK_PROGRESS_BAR (progressbar1), "56%"); + + vseparator1 = gtk_vseparator_new (); + gtk_widget_set_name (vseparator1, "vseparator1"); + gtk_widget_show (vseparator1); + gtk_table_attach (GTK_TABLE (table1), vseparator1, 1, 2, 0, 2, + (GtkAttachOptions) (GTK_FILL), + (GtkAttachOptions) (GTK_FILL), 5, 0); + + frame1 = gtk_frame_new (NULL); + gtk_widget_set_name (frame1, "frame1"); + gtk_widget_show (frame1); + gtk_table_attach (GTK_TABLE (table1), frame1, 0, 1, 1, 2, + (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), + (GtkAttachOptions) (GTK_EXPAND), 0, 0); + gtk_frame_set_label_align (GTK_FRAME (frame1), 0.5, 0.5); + + vbox3 = gtk_vbox_new (FALSE, 0); + gtk_widget_set_name (vbox3, "vbox3"); + gtk_widget_show (vbox3); + gtk_container_add (GTK_CONTAINER (frame1), vbox3); + gtk_container_set_border_width (GTK_CONTAINER (vbox3), 5); + + radiobutton1 = gtk_radio_button_new_with_mnemonic (NULL, "radio 1"); + gtk_widget_set_name (radiobutton1, "radiobutton1"); + gtk_widget_show (radiobutton1); + gtk_box_pack_start (GTK_BOX (vbox3), radiobutton1, FALSE, FALSE, 0); + gtk_radio_button_set_group (GTK_RADIO_BUTTON (radiobutton1), radiobutton1_group); + radiobutton1_group = gtk_radio_button_get_group (GTK_RADIO_BUTTON (radiobutton1)); + + radiobutton2 = gtk_radio_button_new_with_mnemonic (NULL, "radio 2"); + gtk_widget_set_name (radiobutton2, "radiobutton2"); + gtk_widget_show (radiobutton2); + gtk_box_pack_start (GTK_BOX (vbox3), radiobutton2, FALSE, FALSE, 0); + gtk_radio_button_set_group (GTK_RADIO_BUTTON (radiobutton2), radiobutton1_group); + radiobutton1_group = gtk_radio_button_get_group (GTK_RADIO_BUTTON (radiobutton2)); + + radiobutton3 = gtk_radio_button_new_with_mnemonic (NULL, "radio 3"); + gtk_widget_set_name (radiobutton3, "radiobutton3"); + gtk_widget_show (radiobutton3); + gtk_box_pack_start (GTK_BOX (vbox3), radiobutton3, FALSE, FALSE, 0); + gtk_radio_button_set_group (GTK_RADIO_BUTTON (radiobutton3), radiobutton1_group); + radiobutton1_group = gtk_radio_button_get_group (GTK_RADIO_BUTTON (radiobutton3)); + + label6 = gtk_label_new ("frame"); + gtk_widget_set_name (label6, "label6"); + gtk_widget_show (label6); + gtk_frame_set_label_widget (GTK_FRAME (frame1), label6); + gtk_misc_set_padding (GTK_MISC (label6), 1, 0); + + label4 = gtk_label_new ("Common widgets"); + gtk_widget_set_name (label4, "label4"); + gtk_widget_show (label4); + gtk_notebook_set_tab_label (GTK_NOTEBOOK (main_previewbook), gtk_notebook_get_nth_page (GTK_NOTEBOOK (main_previewbook), 0), label4); + + scrolledwindow2 = gtk_scrolled_window_new (NULL, NULL); + gtk_widget_set_name (scrolledwindow2, "scrolledwindow2"); + gtk_widget_show (scrolledwindow2); + gtk_container_add (GTK_CONTAINER (main_previewbook), scrolledwindow2); + + textview1 = gtk_text_view_new (); + gtk_widget_set_name (textview1, "textview1"); + gtk_widget_show (textview1); + gtk_container_add (GTK_CONTAINER (scrolledwindow2), textview1); + gtk_text_view_set_wrap_mode (GTK_TEXT_VIEW (textview1), GTK_WRAP_WORD); + gtk_text_view_set_left_margin (GTK_TEXT_VIEW (textview1), 8); + gtk_text_view_set_right_margin (GTK_TEXT_VIEW (textview1), 8); + gtk_text_buffer_set_text (gtk_text_view_get_buffer (GTK_TEXT_VIEW (textview1)), "You can type some text here.\nYou can also click the right mouse button for a popup menu.", -1); + + label5 = gtk_label_new ("Text area"); + gtk_widget_set_name (label5, "label5"); + gtk_widget_show (label5); + gtk_notebook_set_tab_label (GTK_NOTEBOOK (main_previewbook), gtk_notebook_get_nth_page (GTK_NOTEBOOK (main_previewbook), 1), label5); + + vbox5 = gtk_vbox_new (FALSE, 0); + gtk_widget_set_name (vbox5, "vbox5"); + gtk_widget_show (vbox5); + gtk_container_add (GTK_CONTAINER (main_previewbook), vbox5); + + hbox4 = gtk_hbox_new (FALSE, 0); + gtk_widget_set_name (hbox4, "hbox4"); + gtk_widget_show (hbox4); + gtk_box_pack_start (GTK_BOX (vbox5), hbox4, TRUE, TRUE, 0); + gtk_container_set_border_width (GTK_CONTAINER (hbox4), 7); + + about_label = gtk_label_new (""); + gtk_widget_set_name (about_label, "about_label"); + gtk_widget_show (about_label); + gtk_box_pack_start (GTK_BOX (hbox4), about_label, FALSE, FALSE, 0); + gtk_label_set_line_wrap (GTK_LABEL (about_label), TRUE); + + label666 = gtk_label_new ("About"); + gtk_widget_set_name (label666, "label666"); + gtk_widget_show (label666); + gtk_notebook_set_tab_label (GTK_NOTEBOOK (main_previewbook), gtk_notebook_get_nth_page (GTK_NOTEBOOK (main_previewbook), 2), label666); + + label670 = gtk_label_new ("<b>Preview</b>"); + gtk_widget_set_name (label670, "label670"); + gtk_widget_show (label670); + gtk_frame_set_label_widget (GTK_FRAME (frame4), label670); + gtk_label_set_use_markup (GTK_LABEL (label670), TRUE); + + g_signal_connect ((gpointer) main_window, "delete_event", + G_CALLBACK (on_main_window_delete_event), + NULL); + g_signal_connect ((gpointer) main_use_default_font_radio, "toggled", + G_CALLBACK (on_main_use_default_font_radio_toggled), + NULL); + g_signal_connect ((gpointer) main_font_selector_button, "font_set", + G_CALLBACK (on_main_font_selector_button_font_set), + NULL); + g_signal_connect ((gpointer) main_showpreviewtoggle, "toggled", + G_CALLBACK (on_main_showpreviewtoggle_toggled), + NULL); + g_signal_connect ((gpointer) main_ok_button, "clicked", + G_CALLBACK (on_main_ok_button_clicked), + NULL); + g_signal_connect ((gpointer) main_cancel_button, "clicked", + G_CALLBACK (on_main_cancel_button_clicked), + NULL); + g_signal_connect ((gpointer) main_reset_button, "clicked", + G_CALLBACK (on_main_reset_button_clicked), + NULL); + g_signal_connect ((gpointer) new2, "activate", + G_CALLBACK (on_new2_activate), + NULL); + g_signal_connect ((gpointer) open2, "activate", + G_CALLBACK (on_open2_activate), + NULL); + g_signal_connect ((gpointer) save2, "activate", + G_CALLBACK (on_save2_activate), + NULL); + g_signal_connect ((gpointer) save_as2, "activate", + G_CALLBACK (on_save_as2_activate), + NULL); + g_signal_connect ((gpointer) quit2, "activate", + G_CALLBACK (on_quit2_activate), + NULL); + g_signal_connect ((gpointer) cut2, "activate", + G_CALLBACK (on_cut2_activate), + NULL); + g_signal_connect ((gpointer) copy2, "activate", + G_CALLBACK (on_copy2_activate), + NULL); + g_signal_connect ((gpointer) paste2, "activate", + G_CALLBACK (on_paste2_activate), + NULL); + g_signal_connect ((gpointer) delete2, "activate", + G_CALLBACK (on_delete2_activate), + NULL); + g_signal_connect ((gpointer) about2, "activate", + G_CALLBACK (on_about2_activate), + NULL); + + /* Store pointers to all widgets, for use by lookup_widget(). */ + GLADE_HOOKUP_OBJECT_NO_REF (main_window, main_window, "main_window"); + GLADE_HOOKUP_OBJECT (main_window, main_hbox, "main_hbox"); + GLADE_HOOKUP_OBJECT (main_window, vbox1, "vbox1"); + GLADE_HOOKUP_OBJECT (main_window, hbox1, "hbox1"); + GLADE_HOOKUP_OBJECT (main_window, frame2, "frame2"); + GLADE_HOOKUP_OBJECT (main_window, alignment3, "alignment3"); + GLADE_HOOKUP_OBJECT (main_window, scrolledwindow3, "scrolledwindow3"); + GLADE_HOOKUP_OBJECT (main_window, main_themelist, "main_themelist"); + GLADE_HOOKUP_OBJECT (main_window, label1234, "label1234"); + GLADE_HOOKUP_OBJECT (main_window, frame3, "frame3"); + GLADE_HOOKUP_OBJECT (main_window, alignment4, "alignment4"); + GLADE_HOOKUP_OBJECT (main_window, vbox7, "vbox7"); + GLADE_HOOKUP_OBJECT (main_window, hbox8, "hbox8"); + GLADE_HOOKUP_OBJECT (main_window, vbox9, "vbox9"); + GLADE_HOOKUP_OBJECT (main_window, main_use_default_font_radio, "main_use_default_font_radio"); + GLADE_HOOKUP_OBJECT (main_window, main_use_custom_font_radio, "main_use_custom_font_radio"); + GLADE_HOOKUP_OBJECT (main_window, alignment5, "alignment5"); + GLADE_HOOKUP_OBJECT (main_window, vbox10, "vbox10"); + GLADE_HOOKUP_OBJECT (main_window, hbox9, "hbox9"); + GLADE_HOOKUP_OBJECT (main_window, vbox11, "vbox11"); + GLADE_HOOKUP_OBJECT (main_window, main_font_selector_button, "main_font_selector_button"); + GLADE_HOOKUP_OBJECT (main_window, label669, "label669"); + GLADE_HOOKUP_OBJECT (main_window, vbox13, "vbox13"); + GLADE_HOOKUP_OBJECT (main_window, hbox6666, "hbox6666"); + /* GLADE_HOOKUP_OBJECT (main_window, main_use_system_config_checkbutton, "main_use_system_config_checkbutton"); */ + GLADE_HOOKUP_OBJECT (main_window, main_showpreviewtoggle, "main_showpreviewtoggle"); + GLADE_HOOKUP_OBJECT (main_window, hbuttonbox1, "hbuttonbox1"); + GLADE_HOOKUP_OBJECT (main_window, hbox7, "hbox7"); + GLADE_HOOKUP_OBJECT (main_window, hbox6665, "hbox6665"); + GLADE_HOOKUP_OBJECT (main_window, image2, "image2"); + GLADE_HOOKUP_OBJECT (main_window, label2, "label2"); + GLADE_HOOKUP_OBJECT (main_window, vbox6, "vbox6"); + GLADE_HOOKUP_OBJECT (main_window, hbox5, "hbox5"); + GLADE_HOOKUP_OBJECT (main_window, main_ok_button, "main_ok_button"); + GLADE_HOOKUP_OBJECT (main_window, main_cancel_button, "main_cancel_button"); + GLADE_HOOKUP_OBJECT (main_window, main_reset_button, "main_reset_button"); + GLADE_HOOKUP_OBJECT (main_window, alignment2, "alignment2"); + GLADE_HOOKUP_OBJECT (main_window, hbox6, "hbox6"); + GLADE_HOOKUP_OBJECT (main_window, image1, "image1"); + GLADE_HOOKUP_OBJECT (main_window, label667, "label667"); + GLADE_HOOKUP_OBJECT (main_window, main_previewhbox, "main_previewhbox"); + GLADE_HOOKUP_OBJECT (main_window, vseparator2, "vseparator2"); + GLADE_HOOKUP_OBJECT (main_window, frame4, "frame4"); + GLADE_HOOKUP_OBJECT (main_window, alignment6, "alignment6"); + GLADE_HOOKUP_OBJECT (main_window, vbox12, "vbox12"); + GLADE_HOOKUP_OBJECT (main_window, main_previewbook, "main_previewbook"); + GLADE_HOOKUP_OBJECT (main_window, table1, "table1"); + GLADE_HOOKUP_OBJECT (main_window, vbox2, "vbox2"); + GLADE_HOOKUP_OBJECT (main_window, checkbutton1, "checkbutton1"); + GLADE_HOOKUP_OBJECT (main_window, checkbutton2, "checkbutton2"); + GLADE_HOOKUP_OBJECT (main_window, button4, "button4"); + GLADE_HOOKUP_OBJECT (main_window, togglebutton1, "togglebutton1"); + GLADE_HOOKUP_OBJECT (main_window, spinbutton1, "spinbutton1"); + GLADE_HOOKUP_OBJECT (main_window, vbox4, "vbox4"); + GLADE_HOOKUP_OBJECT (main_window, menubar2, "menubar2"); + GLADE_HOOKUP_OBJECT (main_window, menuitem5, "menuitem5"); + GLADE_HOOKUP_OBJECT (main_window, menuitem5_menu, "menuitem5_menu"); + GLADE_HOOKUP_OBJECT (main_window, new2, "new2"); + GLADE_HOOKUP_OBJECT (main_window, open2, "open2"); + GLADE_HOOKUP_OBJECT (main_window, save2, "save2"); + GLADE_HOOKUP_OBJECT (main_window, save_as2, "save_as2"); + GLADE_HOOKUP_OBJECT (main_window, separatormenuitem2, "separatormenuitem2"); + GLADE_HOOKUP_OBJECT (main_window, quit2, "quit2"); + GLADE_HOOKUP_OBJECT (main_window, menuitem6, "menuitem6"); + GLADE_HOOKUP_OBJECT (main_window, menuitem6_menu, "menuitem6_menu"); + GLADE_HOOKUP_OBJECT (main_window, cut2, "cut2"); + GLADE_HOOKUP_OBJECT (main_window, copy2, "copy2"); + GLADE_HOOKUP_OBJECT (main_window, paste2, "paste2"); + GLADE_HOOKUP_OBJECT (main_window, delete2, "delete2"); + GLADE_HOOKUP_OBJECT (main_window, menuitem8, "menuitem8"); + GLADE_HOOKUP_OBJECT (main_window, menuitem8_menu, "menuitem8_menu"); + GLADE_HOOKUP_OBJECT (main_window, about2, "about2"); + GLADE_HOOKUP_OBJECT (main_window, combobox1, "combobox1"); + GLADE_HOOKUP_OBJECT (main_window, comboboxentry1, "comboboxentry1"); + GLADE_HOOKUP_OBJECT (main_window, hscale1, "hscale1"); + GLADE_HOOKUP_OBJECT (main_window, scrolledwindow1, "scrolledwindow1"); + GLADE_HOOKUP_OBJECT (main_window, preview_treeview, "preview_treeview"); + GLADE_HOOKUP_OBJECT (main_window, statusbar1, "statusbar1"); + GLADE_HOOKUP_OBJECT (main_window, progressbar1, "progressbar1"); + GLADE_HOOKUP_OBJECT (main_window, vseparator1, "vseparator1"); + GLADE_HOOKUP_OBJECT (main_window, frame1, "frame1"); + GLADE_HOOKUP_OBJECT (main_window, vbox3, "vbox3"); + GLADE_HOOKUP_OBJECT (main_window, radiobutton1, "radiobutton1"); + GLADE_HOOKUP_OBJECT (main_window, radiobutton2, "radiobutton2"); + GLADE_HOOKUP_OBJECT (main_window, radiobutton3, "radiobutton3"); + GLADE_HOOKUP_OBJECT (main_window, label6, "label6"); + GLADE_HOOKUP_OBJECT (main_window, label4, "label4"); + GLADE_HOOKUP_OBJECT (main_window, scrolledwindow2, "scrolledwindow2"); + GLADE_HOOKUP_OBJECT (main_window, textview1, "textview1"); + GLADE_HOOKUP_OBJECT (main_window, label5, "label5"); + GLADE_HOOKUP_OBJECT (main_window, vbox5, "vbox5"); + GLADE_HOOKUP_OBJECT (main_window, hbox4, "hbox4"); + GLADE_HOOKUP_OBJECT (main_window, about_label, "about_label"); + GLADE_HOOKUP_OBJECT (main_window, label666, "label666"); + GLADE_HOOKUP_OBJECT (main_window, label670, "label670"); + GLADE_HOOKUP_OBJECT_NO_REF (main_window, tooltips, "tooltips"); + + gtk_widget_grab_default (main_themelist); + gtk_window_add_accel_group (GTK_WINDOW (main_window), accel_group); + + return main_window; +} + diff --git a/src/gtk2-prefs/interface.h b/src/gtk2-prefs/interface.h new file mode 100644 index 00000000..11c79152 --- /dev/null +++ b/src/gtk2-prefs/interface.h @@ -0,0 +1,5 @@ +/* + * DO NOT EDIT THIS FILE - it is generated by Glade. + */ + +GtkWidget* create_main_window (void); diff --git a/src/gtk2-prefs/main.cpp b/src/gtk2-prefs/main.cpp new file mode 100644 index 00000000..42e425c2 --- /dev/null +++ b/src/gtk2-prefs/main.cpp @@ -0,0 +1,616 @@ +/*************************************************************************** + main.cpp - description + ------------------- + begin : Wed Jan 1 19:06:46 GMT+4 2003 + copyright : (C) 2003 - 2005 by Alex Shaduri + email : ashaduri '@' gmail.com + ***************************************************************************/ + + +#ifdef HAVE_CONFIG_H +#include <config.h> +#endif + +#include <iostream> +#include <fstream> +#include <stdlib.h> +#include <sstream> +#include <gtk/gtk.h> + +#ifdef _WIN32 +#include "win32util.h" +#include <io.h> +#else +#include <sys/stat.h> +#endif + +#ifdef HAVE_UNISTD_H +#include <unistd.h> +#endif + +#include "interface.h" +#include "callbacks.h" +#include "support.h" + +#include "main.h" + + +// ------------------------------------------------------ + + + +GtkWidget* g_main_window = 0; +// GtkWidget* g_fontsel_dialog = 0; + + +static std::string s_tmp_file; + + + +// ------------------------------------------------------ + + + +static std::string gchar_to_string(gchar* gstr) +{ + std::string str = (gstr ? gstr : ""); + g_free(gstr); + return str; +} + + + +std::string get_home_dir() +{ + std::string dir; + + if (g_get_home_dir()) + dir = g_get_home_dir(); + +#ifdef _WIN32 + if (dir == "") { + dir = win32_get_registry_value_string(HKEY_CURRENT_USER, "SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Explorer\\Shell Folders", "Personal"); + } + if (dir == "") { + dir = win32_get_registry_value_string(HKEY_CURRENT_USER, "SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Explorer\\Shell Folders", "User"); + } +#endif + + return dir; + +} + + + + +// ------------------------------------------------------ + + +static std::string s_orig_theme; +static std::string s_orig_font; + +std::string& get_orig_theme() +{ + return s_orig_theme; +} + + +std::string& get_orig_font() +{ + return s_orig_font; +} + + +// ------------------------------------------------------ + + +std::string get_current_theme() +{ + + GtkSettings* settings = gtk_settings_get_default(); + gchar* theme; + g_object_get(settings, "gtk-theme-name", &theme, NULL); + + return gchar_to_string(theme); +} + + + + +std::string get_current_font() +{ + return gchar_to_string(pango_font_description_to_string(gtk_rc_get_style(g_main_window)->font_desc)); +} + + + +// ------------------------------------------------------ + + + +std::string get_selected_theme() +{ + GtkTreeView* treeview = GTK_TREE_VIEW(lookup_widget(g_main_window, "main_themelist")); + GtkTreeModel* model = gtk_tree_view_get_model(treeview); + GtkTreeSelection* selection = gtk_tree_view_get_selection(treeview); + + GtkTreeIter iter; + gtk_tree_selection_get_selected(selection, 0, &iter); + + gchar* theme_name; + gtk_tree_model_get(model, &iter, 0, &theme_name, -1); +// std::cout << theme_name << "\n"; + return gchar_to_string(theme_name); +} + + + +std::string get_selected_font() +{ +// GtkWidget* fontentry = lookup_widget(g_main_window, "main_fontentry"); +// return gtk_entry_get_text(GTK_ENTRY(fontentry)); + + bool default_font = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(lookup_widget(g_main_window, "main_use_default_font_radio"))); + + if (default_font) + return ""; + + GtkWidget* fontbutton = lookup_widget(g_main_window, "main_font_selector_button"); + return gtk_font_button_get_font_name(GTK_FONT_BUTTON(fontbutton)); +} + + +// ------------------------------------------------------ + + + +static void themelist_selection_changed_cb(GtkTreeSelection* selection, gpointer data) +{ + if (gtk_tree_selection_get_selected (selection, 0, 0)) + apply_theme(get_selected_theme(), get_current_font()); +} + + + +// ------------------------------------------------------ + + + +static void populate_with_themes(GtkWidget* w) +{ + + std::string search_path = gchar_to_string(gtk_rc_get_theme_dir()); + //std::string search_path = gchar_to_string(g_build_filename("lib", "gtk-2.0", "2.10.0", "engines", NULL)); + + if (search_path.size() && search_path[search_path.size() -1] != G_DIR_SEPARATOR) + search_path += G_DIR_SEPARATOR_S; + + GDir* gdir = g_dir_open(search_path.c_str(), 0, NULL); + if (gdir == NULL) + return; + + + char* name; + GList* glist = 0; + + while ( (name = const_cast<char*>(g_dir_read_name(gdir))) != NULL ) { + std::string filename = name; + +// if (g_ascii_strup(fname.c_str(), -1) == "Default") +// continue; + + std::string fullname = search_path + filename; + std::string rc = fullname; rc += G_DIR_SEPARATOR_S; rc += "gtk-2.0"; rc += G_DIR_SEPARATOR_S; rc += "gtkrc"; + + bool is_dir = 0; + if (g_file_test(fullname.c_str(), G_FILE_TEST_IS_DIR)) + is_dir = 1; + + if (is_dir && g_file_test(rc.c_str(), G_FILE_TEST_IS_REGULAR)) { + glist = g_list_insert_sorted(glist, g_strdup(filename.c_str()), (GCompareFunc)strcmp); + } + } + + g_dir_close(gdir); + + + + + // ---------------- tree + + + GtkTreeView* treeview = GTK_TREE_VIEW(w); + GtkListStore *store = gtk_list_store_new (1, G_TYPE_STRING); + gtk_tree_view_set_model(treeview, GTK_TREE_MODEL(store)); + + GtkTreeViewColumn* column = gtk_tree_view_column_new_with_attributes ( + "Theme", gtk_cell_renderer_text_new(), + "text", 0, + NULL); + gtk_tree_view_column_set_sizing(column, GTK_TREE_VIEW_COLUMN_GROW_ONLY); + gtk_tree_view_append_column (GTK_TREE_VIEW (treeview), column); + + + GtkTreeIter iter; + + int i =0, curr=0; + while (char* theme = (char*)g_list_nth_data(glist, i)) { + gtk_list_store_append (store, &iter); + gtk_list_store_set (store, &iter, 0, theme, -1); + + if (strcmp(theme, get_current_theme().c_str()) == 0) { + curr = i; + } + + ++i; + } + + + GtkTreeSelection* selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (treeview)); + + // set the default theme + + // THIS IS IMPORTANT!!! + gtk_widget_grab_focus(w); + + std::stringstream str; + str << curr; + GtkTreePath* selpath = gtk_tree_path_new_from_string (str.str().c_str()); + if (selpath) { + gtk_tree_selection_select_path(selection, selpath); + gtk_tree_view_scroll_to_cell(treeview, selpath, NULL, true, 0.5, 0.0); + gtk_tree_path_free(selpath); + } + + g_signal_connect (G_OBJECT (selection), "changed", + G_CALLBACK (themelist_selection_changed_cb), NULL); + + g_object_unref (G_OBJECT (store)); + + + // ---------------- font + +// GtkWidget* fontentry = lookup_widget(g_main_window, "main_fontentry"); +// gtk_entry_set_text(GTK_ENTRY(fontentry), get_current_font().c_str()); + + GtkWidget* fontbutton = lookup_widget(g_main_window, "main_font_selector_button"); + gtk_font_button_set_font_name(GTK_FONT_BUTTON(fontbutton), get_current_font().c_str()); + + +} + + + + +// ------------------------------------------------------ + +#ifdef _WIN32 +static void redirect_to_file (const gchar* log_domain, GLogLevelFlags log_level, + const gchar* message, gpointer user_data) +{ + /* only write logs if running in portable mode, otherwise + we would get a permission error in program files */ + if ((_access( "portable-mode", 0 )) != -1) + { + std::fstream f; + f.open("gtk2-prefs.log", std::ios::app); + f << message << "\n"; + f.close(); + } +} +#endif + +// ------------------------------------------------------ + + + + +int main(int argc, char *argv[]) +{ + + // work around pango weirdness +#ifdef _WIN32 + // no longer needed as of pango 1.2.5, but won't do any harm +// putenv("PANGO_WIN32_NO_UNISCRIBE=1"); +#endif + + + + + std::string user = g_get_user_name(); + std::string tmp = g_get_tmp_dir(); + std::string tmp_file = tmp + G_DIR_SEPARATOR_S + "gtk_prefs_tmprc_" + user; + s_tmp_file = tmp_file; + gtk_rc_add_default_file(tmp_file.c_str()); + + + + gtk_init (&argc, &argv); + + // redirect gtk warnings to file when in win32 +#if defined _WIN32 && !defined DEBUG + g_log_set_handler ("GLib", GLogLevelFlags(G_LOG_LEVEL_MASK | G_LOG_FLAG_FATAL + | G_LOG_FLAG_RECURSION), redirect_to_file, NULL); + g_log_set_handler ("GModule", GLogLevelFlags(G_LOG_LEVEL_MASK | G_LOG_FLAG_FATAL + | G_LOG_FLAG_RECURSION), redirect_to_file, NULL); + g_log_set_handler ("GLib-GObject", GLogLevelFlags(G_LOG_LEVEL_MASK | G_LOG_FLAG_FATAL + | G_LOG_FLAG_RECURSION), redirect_to_file, NULL); + g_log_set_handler ("GThread", GLogLevelFlags(G_LOG_LEVEL_MASK | G_LOG_FLAG_FATAL + | G_LOG_FLAG_RECURSION), redirect_to_file, NULL); + g_log_set_handler ("Gtk", GLogLevelFlags(G_LOG_LEVEL_MASK | G_LOG_FLAG_FATAL + | G_LOG_FLAG_RECURSION), redirect_to_file, NULL); + g_log_set_handler ("Gdk", GLogLevelFlags(G_LOG_LEVEL_MASK | G_LOG_FLAG_FATAL + | G_LOG_FLAG_RECURSION), redirect_to_file, NULL); + g_log_set_handler ("GdkPixbuf", GLogLevelFlags(G_LOG_LEVEL_MASK | G_LOG_FLAG_FATAL + | G_LOG_FLAG_RECURSION), redirect_to_file, NULL); +#endif + + + add_pixmap_directory("."); + + g_main_window = create_main_window(); + + + populate_with_themes(lookup_widget(g_main_window, "main_themelist")); + + + std::string about_text = std::string("GTK+ Preference Tool") + "\n\ +\n\ +by Alex Shaduri <ashaduri@gmail.com>\n\ +\n\ + The authors make NO WARRANTY or representation, either express or implied, with respect to this software, its quality, accuracy, merchantability, or fitness for a particular purpose. This software is provided \"AS IS\", and you, its user, assume the entire risk as to its quality and accuracy.\n\ +\n\ + This is free software, and you are welcome to redistribute it under terms of GNU General Public License v2."; + + + gtk_label_set_text(GTK_LABEL(lookup_widget(g_main_window, "about_label")), about_text.c_str()); + + + GtkTreeView* treeview = GTK_TREE_VIEW(lookup_widget(g_main_window, "preview_treeview")); + GtkTreeStore *store = gtk_tree_store_new (2, G_TYPE_STRING, G_TYPE_INT); + gtk_tree_view_set_model(treeview, GTK_TREE_MODEL(store)); + + + GtkTreeViewColumn* column1 = gtk_tree_view_column_new_with_attributes ("Text", gtk_cell_renderer_text_new(), "text", 0, NULL); + gtk_tree_view_column_set_sizing(column1, GTK_TREE_VIEW_COLUMN_GROW_ONLY); + gtk_tree_view_column_set_resizable(column1, true); + gtk_tree_view_column_set_reorderable (column1, true); + gtk_tree_view_append_column (GTK_TREE_VIEW (treeview), column1); + + GtkTreeViewColumn* column2 = gtk_tree_view_column_new_with_attributes ("Number", gtk_cell_renderer_text_new(), "text", 1, NULL); + gtk_tree_view_append_column (GTK_TREE_VIEW (treeview), column2); + + + GtkTreeIter iter1, iter2; + + gtk_tree_store_append (store, &iter1, NULL); + gtk_tree_store_set (store, &iter1, 0, "Parent 2", 1, 66, -1); + + gtk_tree_store_append (store, &iter1, NULL); + gtk_tree_store_set (store, &iter1, 0, "Parent 1", 1, 65, -1); + + gtk_tree_store_append (store, &iter2, &iter1); + gtk_tree_store_set (store, &iter2, 0, "Child 1", 1, 67, -1); + + gtk_tree_view_column_set_sort_column_id(column1, 0); + gtk_tree_view_column_set_sort_order (column1, GTK_SORT_ASCENDING); + gtk_tree_view_column_set_sort_indicator(column1, true); + gtk_tree_sortable_set_sort_column_id(GTK_TREE_SORTABLE(store), 0, GTK_SORT_ASCENDING); + + g_object_unref (G_OBJECT (store)); + + + get_orig_theme() = get_current_theme(); + get_orig_font() = get_current_font(); + + + gtk_widget_show (g_main_window); + + + gtk_main(); + + return EXIT_SUCCESS; + +} + + + +// ------------------------------- + + + +void set_theme(const std::string& theme_name, const std::string& font) +{ + // set widgets accordingly + + // tree + GtkTreeView* treeview = GTK_TREE_VIEW(lookup_widget(g_main_window, "main_themelist")); + GtkTreeModel* model = gtk_tree_view_get_model(treeview); + GtkTreeSelection* selection = gtk_tree_view_get_selection(treeview); + + GtkTreeIter iter; + gtk_tree_model_get_iter_first(model, &iter); + + while(gtk_tree_model_iter_next(model, &iter)) { + + gchar* text; + gtk_tree_model_get (model, &iter, 0, &text, -1); + std::string theme = gchar_to_string(text); + + if (theme_name == theme) { + gtk_tree_selection_select_iter(selection, &iter); + break; + } + + } + + + // font +// GtkWidget* fontentry = lookup_widget(g_main_window, "main_fontentry"); +// gtk_entry_set_text(GTK_ENTRY(fontentry), font.c_str()); + + if (font != "") { + GtkWidget* fontbutton = lookup_widget(g_main_window, "main_font_selector_button"); + gtk_font_button_set_font_name(GTK_FONT_BUTTON(fontbutton), get_current_font().c_str()); + } + + + apply_theme(get_selected_theme(), get_selected_font()); + +} + + + + +void apply_theme(const std::string& theme_name, const std::string& font) +{ + + std::stringstream strstr; + strstr << "gtk-theme-name = \"" << theme_name << "\"\n"; + + if (font != "") + strstr << "style \"user-font\"\n{\nfont_name=\"" << font << "\"\n}\nwidget_class \"*\" style \"user-font\""; + +// std::cout << strstr.str() << "\n\n\n"; + std::fstream f; + f.open(s_tmp_file.c_str(), std::ios::out); + f << strstr.str(); + f.close(); + + + GtkSettings* settings = gtk_settings_get_default(); + + gtk_rc_reparse_all_for_settings (settings, true); +// gtk_rc_parse_string(strstr.str().c_str()); +// gtk_rc_parse("/root/.gtk-tmp"); +// gtk_rc_reset_styles(settings); + + unlink(s_tmp_file.c_str()); + + while (gtk_events_pending()) + gtk_main_iteration(); + + +} + + + + +#ifdef _WIN32 +#ifdef HAVE_DIRECT_H +#include <direct.h> +#define mkdir(a) _mkdir(a) +#else +#define mkdir(a, b) mkdir(a) +#endif +#endif + + +bool save_current_theme() +{ + + std::string conf_file = ""; + + if ((_access( "portable-mode", 0 )) != -1) { + + char* themes_dir_c = gtk_rc_get_theme_dir(); + char* conf_file_c = g_build_filename("etc", "gtk-2.0", "gtkrc", NULL); + + conf_file = (conf_file_c ? conf_file_c : ""); + + // file doesn't exist, try to get it from gtk. + if (!g_file_test(conf_file.c_str(), G_FILE_TEST_EXISTS)) { + + gchar** rc_files = gtk_rc_get_default_files(); + if (rc_files[0] != 0) { + conf_file = rc_files[0]; + } + + } + + + g_free(themes_dir_c); + g_free(conf_file_c); + + + // mkdir a directory, only one level deep + char* etc = g_path_get_dirname(conf_file.c_str()); + if (!g_file_test(etc, G_FILE_TEST_IS_DIR)) { + mkdir(etc, S_IRWXU | S_IRGRP | S_IXGRP | S_IROTH | S_IXOTH); + } + g_free(etc); + + + } else { + + conf_file = get_home_dir(); + + if (conf_file[conf_file.length()-1] != G_DIR_SEPARATOR) + conf_file += G_DIR_SEPARATOR_S; + + conf_file += ".gtkrc-2.0"; + + } + + + + // ask + + GtkWidget* window = gtk_window_new(GTK_WINDOW_TOPLEVEL); + GtkWidget* dialog = gtk_dialog_new_with_buttons ("Query", GTK_WINDOW(window), + GtkDialogFlags(GTK_DIALOG_DESTROY_WITH_PARENT | GTK_DIALOG_MODAL), + GTK_STOCK_NO, GTK_RESPONSE_REJECT, + GTK_STOCK_YES, GTK_RESPONSE_ACCEPT, + NULL); + gtk_window_set_position(GTK_WINDOW(dialog), GTK_WIN_POS_MOUSE); + GtkWidget* hbox = gtk_hbox_new(1, 1); + gtk_container_set_border_width(GTK_CONTAINER(hbox), 10); + + gtk_container_add (GTK_CONTAINER(GTK_DIALOG(dialog)->vbox), hbox); + gtk_container_add (GTK_CONTAINER(hbox), + gtk_label_new((std::string("\n\nThe file \"") + conf_file + "\" will be overwritten.\nAre you sure?\n\n").c_str())); + + gtk_widget_show_all (dialog); + + bool ret = 0; + gint result = gtk_dialog_run (GTK_DIALOG (dialog)); + switch (result) { + case GTK_RESPONSE_ACCEPT: + ret = 1; + break; + } + gtk_widget_destroy(dialog); + gtk_widget_destroy(window); + + if (!ret) // the user pressed "No". + return false; + + + std::string font = get_selected_font(); + + std::fstream f; + f.open(conf_file.c_str(), std::ios::out); + f << "# Auto-written by gtk2_prefs. Do not edit.\n\n"; + f << "gtk-theme-name = \"" << get_selected_theme() << "\"\n"; + + if (font != "") + f << "style \"user-font\"\n{\n\tfont_name=\"" << font << "\"\n}\nwidget_class \"*\" style \"user-font\""; + f.close(); + + + return true; + +} + + + + +void program_shutdown() +{ + gtk_main_quit(); +} + + + + + diff --git a/src/gtk2-prefs/main.h b/src/gtk2-prefs/main.h new file mode 100644 index 00000000..ab4e5cbd --- /dev/null +++ b/src/gtk2-prefs/main.h @@ -0,0 +1,32 @@ +/*************************************************************************** + main.cpp - description + ------------------- + begin : Wed Jan 1 2003 + copyright : (C) 2003 - 2005 by Alex Shaduri + email : ashaduri '@' gmail.com + ***************************************************************************/ + +#ifndef _MAIN_H_ +#define _MAIN_H_ + + +#include <string> + + +std::string& get_orig_theme(); +std::string& get_orig_font(); + +std::string get_current_theme(); +std::string get_current_font(); + +std::string get_selected_theme(); +std::string get_selected_font(); + +void set_theme(const std::string& theme_name, const std::string& font); +void apply_theme(const std::string& theme_name, const std::string& font); +bool save_current_theme(); + +void program_shutdown(); + + +#endif diff --git a/src/gtk2-prefs/makefile.mak b/src/gtk2-prefs/makefile.mak new file mode 100644 index 00000000..1eeeb565 --- /dev/null +++ b/src/gtk2-prefs/makefile.mak @@ -0,0 +1,24 @@ +include "..\makeinc.mak" + +TARGET = gtk2-prefs.exe + +PREF_OBJECTS = \ +callbacks.obj \ +interface.obj \ +support.obj \ +win32util.obj \ +main.obj + +CPPFLAGS = $(CPPFLAGS) /D_STL70_ /D_STATIC_CPPLIB /EHsc /DHAVE_CONFIG_H + +all: $(PREF_OBJECTS) $(TARGET) + +.cpp.obj: + $(CC) $(CPPFLAGS) $(GLIB) $(GTK) /I. /c $< + +$(TARGET): $(PREF_OBJECTS) + $(LINK) /out:$(TARGET) /entry:mainCRTStartup $(LDFLAGS) $(PREF_OBJECTS) ntstc_msvcrt.lib $(LIBS) + +clean: + del $(TARGET) + del *.obj diff --git a/src/gtk2-prefs/support.cpp b/src/gtk2-prefs/support.cpp new file mode 100644 index 00000000..bb19f284 --- /dev/null +++ b/src/gtk2-prefs/support.cpp @@ -0,0 +1,146 @@ +/* + * DO NOT EDIT THIS FILE - it is generated by Glade. + */ + +#ifdef HAVE_CONFIG_H +# include <config.h> +#endif + +#include <sys/types.h> +#include <sys/stat.h> +#ifdef HAVE_UNISTD_H +#include <unistd.h> +#endif +#include <string.h> +#include <stdio.h> + +#include <gtk/gtk.h> + +#include "support.h" + +GtkWidget* +lookup_widget (GtkWidget *widget, + const gchar *widget_name) +{ + GtkWidget *parent, *found_widget; + + for (;;) + { + if (GTK_IS_MENU (widget)) + parent = gtk_menu_get_attach_widget (GTK_MENU (widget)); + else + parent = widget->parent; + if (!parent) + parent = (GtkWidget*)g_object_get_data (G_OBJECT (widget), "GladeParentKey"); + if (parent == NULL) + break; + widget = parent; + } + + found_widget = (GtkWidget*) g_object_get_data (G_OBJECT (widget), + widget_name); + if (!found_widget) + g_warning ("Widget not found: %s", widget_name); + return found_widget; +} + +static GList *pixmaps_directories = NULL; + +/* Use this function to set the directory containing installed pixmaps. */ +void +add_pixmap_directory (const gchar *directory) +{ + pixmaps_directories = g_list_prepend (pixmaps_directories, + g_strdup (directory)); +} + +/* This is an internally used function to find pixmap files. */ +static gchar* +find_pixmap_file (const gchar *filename) +{ + GList *elem; + + /* We step through each of the pixmaps directory to find it. */ + elem = pixmaps_directories; + while (elem) + { + gchar *pathname = g_strdup_printf ("%s%s%s", (gchar*)elem->data, + G_DIR_SEPARATOR_S, filename); + if (g_file_test (pathname, G_FILE_TEST_EXISTS)) + return pathname; + g_free (pathname); + elem = elem->next; + } + return NULL; +} + +/* This is an internally used function to create pixmaps. */ +GtkWidget* +create_pixmap (GtkWidget *widget, + const gchar *filename) +{ + gchar *pathname = NULL; + GtkWidget *pixmap; + + if (!filename || !filename[0]) + return gtk_image_new (); + + pathname = find_pixmap_file (filename); + + if (!pathname) + { + g_warning ("Couldn't find pixmap file: %s", filename); + return gtk_image_new (); + } + + pixmap = gtk_image_new_from_file (pathname); + g_free (pathname); + return pixmap; +} + +/* This is an internally used function to create pixmaps. */ +GdkPixbuf* +create_pixbuf (const gchar *filename) +{ + gchar *pathname = NULL; + GdkPixbuf *pixbuf; + GError *error = NULL; + + if (!filename || !filename[0]) + return NULL; + + pathname = find_pixmap_file (filename); + + if (!pathname) + { + g_warning ("Couldn't find pixmap file: %s", filename); + return NULL; + } + + pixbuf = gdk_pixbuf_new_from_file (pathname, &error); + if (!pixbuf) + { + fprintf (stderr, "Failed to load pixbuf file: %s: %s\n", + pathname, error->message); + g_error_free (error); + } + g_free (pathname); + return pixbuf; +} + +/* This is used to set ATK action descriptions. */ +void +glade_set_atk_action_description (AtkAction *action, + const gchar *action_name, + const gchar *description) +{ + gint n_actions, i; + + n_actions = atk_action_get_n_actions (action); + for (i = 0; i < n_actions; i++) + { + if (!strcmp (atk_action_get_name (action, i), action_name)) + atk_action_set_description (action, i, description); + } +} + diff --git a/src/gtk2-prefs/support.h b/src/gtk2-prefs/support.h new file mode 100644 index 00000000..2dea079c --- /dev/null +++ b/src/gtk2-prefs/support.h @@ -0,0 +1,44 @@ +/* + * DO NOT EDIT THIS FILE - it is generated by Glade. + */ + +#ifdef HAVE_CONFIG_H +# include <config.h> +#endif + +#include <gtk/gtk.h> + +/* + * Public Functions. + */ + +/* + * This function returns a widget in a component created by Glade. + * Call it with the toplevel widget in the component (i.e. a window/dialog), + * or alternatively any widget in the component, and the name of the widget + * you want returned. + */ +GtkWidget* lookup_widget (GtkWidget *widget, + const gchar *widget_name); + + +/* Use this function to set the directory containing installed pixmaps. */ +void add_pixmap_directory (const gchar *directory); + + +/* + * Private Functions. + */ + +/* This is used to create the pixmaps used in the interface. */ +GtkWidget* create_pixmap (GtkWidget *widget, + const gchar *filename); + +/* This is used to create the pixbufs used in the interface. */ +GdkPixbuf* create_pixbuf (const gchar *filename); + +/* This is used to set ATK action descriptions. */ +void glade_set_atk_action_description (AtkAction *action, + const gchar *action_name, + const gchar *description); + diff --git a/src/gtk2-prefs/sys_win32.h b/src/gtk2-prefs/sys_win32.h new file mode 100644 index 00000000..0a106690 --- /dev/null +++ b/src/gtk2-prefs/sys_win32.h @@ -0,0 +1,28 @@ +/*************************************************************************** + sys_win32.h - description + ------------------- + begin : Wed Oct 22 2003 + copyright : (C) 2003 by Alex Shaduri, Irakli A. Elizbarashvili + email : alex_sh@land.ru + ***************************************************************************/ +#ifndef SYS_WIN32_H +#define SYS_WIN32_H + + + + + +#ifdef _WIN32 + +# define WIN32_LEAN_AND_MEAN +# include <windows.h> + +#endif + + + + + + + +#endif diff --git a/src/gtk2-prefs/win32util.cpp b/src/gtk2-prefs/win32util.cpp new file mode 100644 index 00000000..79cab17d --- /dev/null +++ b/src/gtk2-prefs/win32util.cpp @@ -0,0 +1,80 @@ +/*************************************************************************** + win32util.cpp - description + ------------------- + begin : Tue Jan 14 2003 + copyright : (C) 2003 by Alex Shaduri + email : alex_sh@land.ru + ***************************************************************************/ + +#ifdef _WIN32 + +#include <string> +#include "sys_win32.h" +#include "win32util.h" + + + + + +std::string win32_get_registry_value_string(HKEY base, const std::string& keydir, const std::string& key) +{ + + HKEY reg_key = NULL; + DWORD type; + DWORD nbytes; + char* result = NULL; +//HKEY_CURRENT_USER + nbytes = 0; + if ( RegOpenKeyEx ( base, keydir.c_str(), 0, KEY_QUERY_VALUE, ®_key) == ERROR_SUCCESS + && RegQueryValueEx (reg_key, key.c_str(), 0, &type, NULL, &nbytes) == ERROR_SUCCESS ) { + result = (char*)malloc(nbytes + 1); + RegQueryValueEx (reg_key, key.c_str(), 0, &type, (BYTE*)result, &nbytes); + result[nbytes] = '\0'; + } + + if (reg_key != NULL) + RegCloseKey (reg_key); + + std::string ret = ""; + + if (result) { + ret = result; + } + + return ret; + +} + + + + +void win32_set_registry_value_string(HKEY base, const std::string& keydir, const std::string& key, const std::string& value) +{ + + HKEY reg_key = NULL; + DWORD nbytes; + + nbytes = value.length() + 1; + + if ( RegOpenKeyEx ( base, keydir.c_str(), 0, KEY_QUERY_VALUE, ®_key) == ERROR_SUCCESS) { + RegSetValueEx (reg_key, key.c_str(), 0, REG_SZ, (const BYTE*)(value.c_str()), nbytes); + } + + if (reg_key != NULL) + RegCloseKey (reg_key); + +} + + + + + + + +#endif + + + + + + diff --git a/src/gtk2-prefs/win32util.h b/src/gtk2-prefs/win32util.h new file mode 100644 index 00000000..8c194a19 --- /dev/null +++ b/src/gtk2-prefs/win32util.h @@ -0,0 +1,26 @@ +/*************************************************************************** + win32util.h - description + ------------------- + begin : Tue Jan 14 2003 + copyright : (C) 2003 by Alex Shaduri + email : alex_sh@land.ru + ***************************************************************************/ +#ifndef WIN32UTIL_H +#define WIN32UTIL_H + +#ifdef _WIN32 + +#include <string> +#include "sys_win32.h" + + + +std::string win32_get_registry_value_string(HKEY base, const std::string& keydir, const std::string& key); +void win32_set_registry_value_string(HKEY base, const std::string& keydir, const std::string& key, const std::string& value); + + + + +#endif //_WIN32 + +#endif // WIN32UTIL_H diff --git a/src/makefile.mak b/src/makefile.mak new file mode 100644 index 00000000..cd73b879 --- /dev/null +++ b/src/makefile.mak @@ -0,0 +1,23 @@ +all: + @cd pixmaps + @-$(MAKE) /nologo /s /f makefile.mak $@ + @cd ..\common + @-$(MAKE) /nologo /s /f makefile.mak $@ + @cd ..\fe-gtk + @-$(MAKE) /nologo /s /f makefile.mak $@ + @cd ..\fe-text + @-$(MAKE) /nologo /s /f makefile.mak $@ + @cd ..\gtk2-prefs + @-$(MAKE) /nologo /s /f makefile.mak $@ + +clean: + @cd pixmaps + @-$(MAKE) /nologo /s /f makefile.mak clean $@ + @cd ..\common + @-$(MAKE) /nologo /s /f makefile.mak clean $@ + @cd ..\fe-gtk + @-$(MAKE) /nologo /s /f makefile.mak clean $@ + @cd ..\fe-text + @-$(MAKE) /nologo /s /f makefile.mak clean $@ + @cd ..\gtk2-prefs + @-$(MAKE) /nologo /s /f makefile.mak clean $@ diff --git a/src/makeinc.skel.mak b/src/makeinc.skel.mak new file mode 100644 index 00000000..552b6a6e --- /dev/null +++ b/src/makeinc.skel.mak @@ -0,0 +1,45 @@ +CC = cl +LINK = link +CFLAGS = $(CFLAGS) /Ox /c /MD /MP /W0 /nologo +CFLAGS = $(CFLAGS) /DWIN32 /DG_DISABLE_CAST_CHECKS /DG_DISABLE_DEPRECATED /DGDK_PIXBUF_DISABLE_DEPRECATED /DGDK_DISABLE_DEPRECATED /DHAVE_STRTOULL /Dstrtoull=_strtoui64 /Dstrcasecmp=stricmp /Dstrncasecmp=strnicmp +CFLAGS = $(CFLAGS) /I$(DEV)\include +CPPFLAGS = /c /MD /W0 /nologo /DWIN32 +LDFLAGS = /subsystem:windows /nologo +LIBS = $(LIBS) gdi32.lib shell32.lib user32.lib advapi32.lib imm32.lib ole32.lib winmm.lib ws2_32.lib wininet.lib comdlg32.lib libeay32.lib ssleay32.lib + +GLIB = /I$(DEV)\include\glib-2.0 /I$(DEV)\lib\glib-2.0\include /I$(DEV)\include\libxml2 +GTK = /I$(DEV)\include\gtk-2.0 /I$(DEV)\lib\gtk-2.0\include /I$(DEV)\include\atk-1.0 /I$(DEV)\include\cairo /I$(DEV)\include\pango-1.0 /I$(DEV)\include\gdk-pixbuf-2.0 +LIBS = $(LIBS) /libpath:$(DEV)\lib gtk-win32-2.0.lib gdk-win32-2.0.lib atk-1.0.lib gio-2.0.lib gdk_pixbuf-2.0.lib pangowin32-1.0.lib pangocairo-1.0.lib pango-1.0.lib cairo.lib gobject-2.0.lib gmodule-2.0.lib glib-2.0.lib intl.lib libxml2.lib +#obs LIBS = $(LIBS) /libpath:$(DEV)\lib libgtk-win32-2.0-0.lib libgdk-win32-2.0-0.lib libatk-1.0-0.lib libgio-2.0-0.lib libgdk_pixbuf-2.0-0.lib libpangowin32-1.0-0.lib libpangocairo-1.0-0.lib libpango-1.0-0.lib libcairo-2.lib libgobject-2.0-0.lib libgmodule-2.0-0.lib libglib-2.0-0.lib libintl-8.lib libxml2-2.lib + +LUALIB = lua51 +LUAOUTPUT = xclua.dll + +PERL512LIB = perl512 +PERL512OUTPUT = xcperl-512.dll +PERL514LIB = perl514 +PERL514OUTPUT = xcperl-514.dll + +PYTHONLIB = python27 +PYTHONOUTPUT = xcpython.dll + +TCLLIB = tcl85 +TCLOUTPUT = xctcl.dll + +!ifdef X64 +CFLAGS = $(CFLAGS) /favor:AMD64 /D_WIN64 +CPPFLAGS = $(CPPFLAGS) /favor:AMD64 /D_WIN64 +LDFLAGS = $(LDFLAGS) msvcrt_win2003.obj + +PERL512PATH = c:\mozilla-build\perl-5.12-x64 +PERL514PATH = c:\mozilla-build\perl-5.14-x64 +PYTHONPATH = c:\mozilla-build\python-2.7-x64 +TCLPATH = c:\mozilla-build\tcl-8.5-x64 +!else +LDFLAGS = $(LDFLAGS) msvcrt_winxp.obj + +PERL512PATH = c:\mozilla-build\perl-5.12-x86 +PERL514PATH = c:\mozilla-build\perl-5.14-x86 +PYTHONPATH = c:\mozilla-build\python-2.7-x86 +TCLPATH = c:\mozilla-build\tcl-8.5-x86 +!endif diff --git a/src/pixmaps/makefile.mak b/src/pixmaps/makefile.mak new file mode 100644 index 00000000..f9535dbe --- /dev/null +++ b/src/pixmaps/makefile.mak @@ -0,0 +1,18 @@ +CONV = gdk-pixbuf-csource + +LIST = bookpng book.png \ + hoppng hop.png \ + oppng op.png \ + purplepng purple.png \ + redpng red.png \ + trayfilepng fileoffer.png \ + trayhilightpng highlight.png \ + traymsgpng message.png \ + voicepng voice.png \ + xchatpng ..\..\xchat.png + +all: + @$(CONV) --build-list $(LIST) > inline_pngs.h + +clean: + @del *.h diff --git a/src/pixmaps/pixmaps.vcxproj b/src/pixmaps/pixmaps.vcxproj new file mode 100644 index 00000000..ec33a49b --- /dev/null +++ b/src/pixmaps/pixmaps.vcxproj @@ -0,0 +1,110 @@ +<?xml version="1.0" encoding="utf-8"?> +<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <ItemGroup Label="ProjectConfigurations"> + <ProjectConfiguration Include="Release|Win32"> + <Configuration>Release</Configuration> + <Platform>Win32</Platform> + </ProjectConfiguration> + <ProjectConfiguration Include="Release|x64"> + <Configuration>Release</Configuration> + <Platform>x64</Platform> + </ProjectConfiguration> + </ItemGroup> + <PropertyGroup Label="Globals"> + <ProjectGuid>{626DA61C-FA8B-474C-B2F5-72AD9DFEE642}</ProjectGuid> + <Keyword>Win32Proj</Keyword> + <RootNamespace>pixmaps</RootNamespace> + </PropertyGroup> + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" /> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration"> + <ConfigurationType>Application</ConfigurationType> + <UseDebugLibraries>false</UseDebugLibraries> + <WholeProgramOptimization>true</WholeProgramOptimization> + <CharacterSet>MultiByte</CharacterSet> + <PlatformToolset>WDK7</PlatformToolset> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration"> + <ConfigurationType>Application</ConfigurationType> + <UseDebugLibraries>false</UseDebugLibraries> + <WholeProgramOptimization>true</WholeProgramOptimization> + <CharacterSet>MultiByte</CharacterSet> + <PlatformToolset>WDK7</PlatformToolset> + </PropertyGroup> + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" /> + <ImportGroup Label="ExtensionSettings"> + </ImportGroup> + <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> + <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> + <Import Project="..\..\win32\xchat.props" /> + </ImportGroup> + <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets"> + <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> + <Import Project="..\..\win32\xchat.props" /> + </ImportGroup> + <PropertyGroup Label="UserMacros" /> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> + <LinkIncremental>false</LinkIncremental> + <OutDir>$(SolutionDir)build\$(PlatformName)\bin</OutDir> + <IntDir>$(SolutionDir)build\$(PlatformName)\obj\$(ProjectName)</IntDir> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'"> + <LinkIncremental>false</LinkIncremental> + <OutDir>$(SolutionDir)build\$(PlatformName)\bin</OutDir> + <IntDir>$(SolutionDir)build\$(PlatformName)\obj\$(ProjectName)</IntDir> + </PropertyGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> + <ClCompile> + <WarningLevel>Level3</WarningLevel> + <PrecompiledHeader> + </PrecompiledHeader> + <Optimization>MaxSpeed</Optimization> + <FunctionLevelLinking>true</FunctionLevelLinking> + <IntrinsicFunctions>true</IntrinsicFunctions> + <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions> + </ClCompile> + <Link> + <SubSystem>Console</SubSystem> + <GenerateDebugInformation>true</GenerateDebugInformation> + <EnableCOMDATFolding>true</EnableCOMDATFolding> + <OptimizeReferences>true</OptimizeReferences> + </Link> + <PostBuildEvent> + <Command>"$(DepsRoot)\bin\gdk-pixbuf-csource" --build-list $(Pixmaps) > "$(SolutionDir)\..\src\pixmaps\inline_pngs.h"</Command> + </PostBuildEvent> + </ItemDefinitionGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'"> + <ClCompile> + <WarningLevel>Level3</WarningLevel> + <PrecompiledHeader> + </PrecompiledHeader> + <Optimization>MaxSpeed</Optimization> + <FunctionLevelLinking>true</FunctionLevelLinking> + <IntrinsicFunctions>true</IntrinsicFunctions> + <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions> + </ClCompile> + <Link> + <SubSystem>Console</SubSystem> + <GenerateDebugInformation>true</GenerateDebugInformation> + <EnableCOMDATFolding>true</EnableCOMDATFolding> + <OptimizeReferences>true</OptimizeReferences> + </Link> + <PostBuildEvent> + <Command>"$(DepsRoot)\bin\gdk-pixbuf-csource" --build-list $(Pixmaps) > "$(SolutionDir)\..\src\pixmaps\inline_pngs.h"</Command> + </PostBuildEvent> + </ItemDefinitionGroup> + <ItemGroup> + <None Include="..\..\xchat.png" /> + <None Include="book.png" /> + <None Include="fileoffer.png" /> + <None Include="highlight.png" /> + <None Include="hop.png" /> + <None Include="message.png" /> + <None Include="op.png" /> + <None Include="purple.png" /> + <None Include="red.png" /> + <None Include="voice.png" /> + </ItemGroup> + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" /> + <ImportGroup Label="ExtensionTargets"> + </ImportGroup> +</Project> \ No newline at end of file diff --git a/src/pixmaps/pixmaps.vcxproj.filters b/src/pixmaps/pixmaps.vcxproj.filters new file mode 100644 index 00000000..aca4cd4b --- /dev/null +++ b/src/pixmaps/pixmaps.vcxproj.filters @@ -0,0 +1,41 @@ +<?xml version="1.0" encoding="utf-8"?> +<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <ItemGroup> + <Filter Include="Resource Files"> + <UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier> + <Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms</Extensions> + </Filter> + </ItemGroup> + <ItemGroup> + <None Include="book.png"> + <Filter>Resource Files</Filter> + </None> + <None Include="fileoffer.png"> + <Filter>Resource Files</Filter> + </None> + <None Include="highlight.png"> + <Filter>Resource Files</Filter> + </None> + <None Include="hop.png"> + <Filter>Resource Files</Filter> + </None> + <None Include="message.png"> + <Filter>Resource Files</Filter> + </None> + <None Include="op.png"> + <Filter>Resource Files</Filter> + </None> + <None Include="purple.png"> + <Filter>Resource Files</Filter> + </None> + <None Include="red.png"> + <Filter>Resource Files</Filter> + </None> + <None Include="voice.png"> + <Filter>Resource Files</Filter> + </None> + <None Include="..\..\xchat.png"> + <Filter>Resource Files</Filter> + </None> + </ItemGroup> +</Project> \ No newline at end of file diff --git a/src/pixmaps/pixmaps.vcxproj.user b/src/pixmaps/pixmaps.vcxproj.user new file mode 100644 index 00000000..695b5c78 --- /dev/null +++ b/src/pixmaps/pixmaps.vcxproj.user @@ -0,0 +1,3 @@ +<?xml version="1.0" encoding="utf-8"?> +<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> +</Project> \ No newline at end of file diff --git a/src/version-script b/src/version-script index 048c1f55..4441aeae 100644 --- a/src/version-script +++ b/src/version-script @@ -30,5 +30,11 @@ EXPORTED { xchat_send_modes; xchat_strip; xchat_free; + xchat_pluginpref_set_str; + xchat_pluginpref_get_str; + xchat_pluginpref_set_int; + xchat_pluginpref_get_int; + xchat_pluginpref_delete; + xchat_pluginpref_list; local: *; }; diff --git a/src/version/version.c b/src/version/version.c new file mode 100644 index 00000000..53af5675 --- /dev/null +++ b/src/version/version.c @@ -0,0 +1,143 @@ +/* XChat-WDK + * Copyright (c) 2011 Berke Viktor. + * + * 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. 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. + */ + +#include <stdio.h> +#include <stdlib.h> +#include <malloc.h> +#include "../../config.h" + +char * +comma () +{ + int major, minor; + char *version_string; /* nnnn,n,n,n format */ + + version_string = (char*) malloc (11); + + if (sscanf (PACKAGE_VERSION, "%d-%d", &major, &minor) > 1) + { + sprintf (version_string, "%d,%d,0,0", major, minor); + } else + { + sprintf (version_string, "%d,0,0,0", major); + } + + return version_string; +} + +char * +point () +{ + int major1, major2, major3, major4, minor; + char *version_string; /* nn.nn.nn.nn format */ + + version_string = (char*) malloc (12); + + if (sscanf (PACKAGE_VERSION, "%c%c%c%c-%d", &major1, &major2, &major3, &major4, &minor) > 4) + { + sprintf (version_string, "%c%c.%c%c.%d.0", major1, major2, major3, major4, minor); + } else + { + sprintf (version_string, "%c%c.%c%c.0.0", major1, major2, major3, major4); + } + + return version_string; +} + +int +main (int argc, char *argv[]) +{ + if (argc > 1) + { + if (!strcmp (argv[1], "-r")) /* xchat.rc/FILEVERSION, PRODUCTVERSION */ + { + printf ("#define COMMA_VERSION %s\n", comma ()); + } + else if (!strcmp (argv[1], "-a")) /* xchat-wdk.iss/AppVerName */ + { +#ifdef _WIN64 + printf ("AppVerName=XChat-WDK %s (x64)\n", PACKAGE_VERSION); +#else + printf ("AppVerName=XChat-WDK %s (x86)\n", PACKAGE_VERSION); +#endif + } + else if (!strcmp (argv[1], "-v")) /* xchat-wdk.iss/AppVersion */ + { + printf ("AppVersion=%s\n", point ()); + } + else if (!strcmp (argv[1], "-i")) /* xchat-wdk.iss/VersionInfoVersion */ + { + printf ("VersionInfoVersion=%s\n", point ()); + } + else if (!strcmp (argv[1], "-o")) /* xchat-wdk.iss/OutputBaseFilename */ + { +#ifdef _WIN64 + printf ("OutputBaseFilename=XChat-WDK %s x64\n", PACKAGE_VERSION); +#else + printf ("OutputBaseFilename=XChat-WDK %s x86\n", PACKAGE_VERSION); +#endif + } + else if (!strcmp (argv[1], "-v")) /* version.txt */ + { + printf ("%s", PACKAGE_VERSION); + } else + { + printf ("usage:\n\t-a\txchat-wdk.iss/AppVerName\n\t-i\txchat-wdk.iss/VersionInfoVersion\n\t-o\txchat-wdk.iss/OutputBaseFilename\n\t-r\txchat.rc/FILEVERSION, PRODUCTVERSION\n\t-v\txchat-wdk.iss/AppVersion\n"); + } + } else + { + printf ("usage:\n\t-a\txchat-wdk.iss/AppVerName\n\t-i\txchat-wdk.iss/VersionInfoVersion\n\t-o\txchat-wdk.iss/OutputBaseFilename\n\t-r\txchat.rc/FILEVERSION, PRODUCTVERSION\n\t-v\txchat-wdk.iss/AppVersion\n"); + } + +#if 0 /* ugly hack */ + switch ((int) argv[1][0]) + { + case 'r': /* xchat.rc/FILEVERSION, PRODUCTVERSION*/ + printf ("#define COMMA_VERSION \"%s\"\n", comma ()); + break; + case 'a': /* xchat-wdk.iss/AppVerName */ + printf ("AppVerName=XChat-WDK %s\n", PACKAGE_VERSION); + break; + case 'v': /* xchat-wdk.iss/AppVersion */ + printf ("AppVersion=%s\n", point ()); + break; + case 'i': /* xchat-wdk.iss/VersionInfoVersion */ + printf ("VersionInfoVersion=%s\n", point ()); + break; + case 'o': /* xchat-wdk.iss/OutputBaseFilename */ + printf ("OutputBaseFilename=XChat-WDK %s\n", PACKAGE_VERSION); + break; + case 'u': /* version.txt */ + printf ("%s", PACKAGE_VERSION); + break; + default: + printf ("use a, i, o, r or v.\n"); + break; + } +#endif + + return 0; +} diff --git a/src/version/version.vcxproj b/src/version/version.vcxproj new file mode 100644 index 00000000..5a4fe5cc --- /dev/null +++ b/src/version/version.vcxproj @@ -0,0 +1,103 @@ +<?xml version="1.0" encoding="utf-8"?> +<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <ItemGroup Label="ProjectConfigurations"> + <ProjectConfiguration Include="Release|Win32"> + <Configuration>Release</Configuration> + <Platform>Win32</Platform> + </ProjectConfiguration> + <ProjectConfiguration Include="Release|x64"> + <Configuration>Release</Configuration> + <Platform>x64</Platform> + </ProjectConfiguration> + </ItemGroup> + <PropertyGroup Label="Globals"> + <ProjectGuid>{6CD3647E-4541-4849-9DD7-C8816665AE42}</ProjectGuid> + <Keyword>Win32Proj</Keyword> + <RootNamespace>version</RootNamespace> + </PropertyGroup> + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" /> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration"> + <ConfigurationType>Application</ConfigurationType> + <UseDebugLibraries>false</UseDebugLibraries> + <WholeProgramOptimization>true</WholeProgramOptimization> + <CharacterSet>MultiByte</CharacterSet> + <PlatformToolset>WDK7</PlatformToolset> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration"> + <ConfigurationType>Application</ConfigurationType> + <UseDebugLibraries>false</UseDebugLibraries> + <WholeProgramOptimization>true</WholeProgramOptimization> + <CharacterSet>MultiByte</CharacterSet> + <PlatformToolset>WDK7</PlatformToolset> + </PropertyGroup> + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" /> + <ImportGroup Label="ExtensionSettings"> + </ImportGroup> + <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> + <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> + <Import Project="..\..\win32\xchat.props" /> + </ImportGroup> + <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets"> + <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> + <Import Project="..\..\win32\xchat.props" /> + </ImportGroup> + <PropertyGroup Label="UserMacros" /> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> + <LinkIncremental>false</LinkIncremental> + <OutDir>$(SolutionDir)build\$(PlatformName)\bin</OutDir> + <IntDir>$(SolutionDir)build\$(PlatformName)\obj\$(ProjectName)</IntDir> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'"> + <LinkIncremental>false</LinkIncremental> + <OutDir>$(SolutionDir)build\$(PlatformName)\bin</OutDir> + <IntDir>$(SolutionDir)build\$(PlatformName)\obj\$(ProjectName)</IntDir> + </PropertyGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> + <ClCompile> + <WarningLevel>Level1</WarningLevel> + <PrecompiledHeader> + </PrecompiledHeader> + <Optimization>MaxSpeed</Optimization> + <FunctionLevelLinking>true</FunctionLevelLinking> + <IntrinsicFunctions>true</IntrinsicFunctions> + <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <MultiProcessorCompilation>true</MultiProcessorCompilation> + </ClCompile> + <Link> + <SubSystem>Console</SubSystem> + <GenerateDebugInformation>true</GenerateDebugInformation> + <EnableCOMDATFolding>true</EnableCOMDATFolding> + <OptimizeReferences>true</OptimizeReferences> + </Link> + <PostBuildEvent> + <Command>"$(OutDir)\$(TargetName)$(TargetExt)" -r > "$(SolutionDir)\..\resource.h"</Command> + </PostBuildEvent> + </ItemDefinitionGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'"> + <ClCompile> + <WarningLevel>Level1</WarningLevel> + <PrecompiledHeader> + </PrecompiledHeader> + <Optimization>MaxSpeed</Optimization> + <FunctionLevelLinking>true</FunctionLevelLinking> + <IntrinsicFunctions>true</IntrinsicFunctions> + <PreprocessorDefinitions>WIN32;_WIN64;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <MultiProcessorCompilation>true</MultiProcessorCompilation> + </ClCompile> + <Link> + <SubSystem>Console</SubSystem> + <GenerateDebugInformation>true</GenerateDebugInformation> + <EnableCOMDATFolding>true</EnableCOMDATFolding> + <OptimizeReferences>true</OptimizeReferences> + </Link> + <PostBuildEvent> + <Command>"$(OutDir)\$(TargetName)$(TargetExt)" -r > "$(SolutionDir)\..\resource.h"</Command> + </PostBuildEvent> + </ItemDefinitionGroup> + <ItemGroup> + <ClCompile Include="version.c" /> + </ItemGroup> + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" /> + <ImportGroup Label="ExtensionTargets"> + </ImportGroup> +</Project> \ No newline at end of file diff --git a/src/version/version.vcxproj.filters b/src/version/version.vcxproj.filters new file mode 100644 index 00000000..decec7d0 --- /dev/null +++ b/src/version/version.vcxproj.filters @@ -0,0 +1,14 @@ +<?xml version="1.0" encoding="utf-8"?> +<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <ItemGroup> + <Filter Include="Source Files"> + <UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier> + <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions> + </Filter> + </ItemGroup> + <ItemGroup> + <ClCompile Include="version.c"> + <Filter>Source Files</Filter> + </ClCompile> + </ItemGroup> +</Project> \ No newline at end of file diff --git a/src/version/version.vcxproj.user b/src/version/version.vcxproj.user new file mode 100644 index 00000000..695b5c78 --- /dev/null +++ b/src/version/version.vcxproj.user @@ -0,0 +1,3 @@ +<?xml version="1.0" encoding="utf-8"?> +<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> +</Project> \ No newline at end of file diff --git a/src/xtm/Main.Designer.cs b/src/xtm/Main.Designer.cs new file mode 100644 index 00000000..6a7c9cf1 --- /dev/null +++ b/src/xtm/Main.Designer.cs @@ -0,0 +1,316 @@ +namespace thememan +{ + partial class XTM + { + /// <summary> + /// Required designer variable. + /// </summary> + private System.ComponentModel.IContainer components = null; + + /// <summary> + /// Clean up any resources being used. + /// </summary> + /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param> + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// <summary> + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// </summary> + private void InitializeComponent() + { + System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(XTM)); + this.themelist = new System.Windows.Forms.ListBox(); + this.themecolor0 = new System.Windows.Forms.Label(); + this.themecolor1 = new System.Windows.Forms.Label(); + this.themecolor2 = new System.Windows.Forms.Label(); + this.themecolor3 = new System.Windows.Forms.Label(); + this.themecolor4 = new System.Windows.Forms.Label(); + this.themecolor5 = new System.Windows.Forms.Label(); + this.themecolor6 = new System.Windows.Forms.Label(); + this.themecolor7 = new System.Windows.Forms.Label(); + this.themecolor8 = new System.Windows.Forms.Label(); + this.themecolor9 = new System.Windows.Forms.Label(); + this.themecolora = new System.Windows.Forms.Label(); + this.themecolorb = new System.Windows.Forms.Label(); + this.themecolorc = new System.Windows.Forms.Label(); + this.themecolord = new System.Windows.Forms.Label(); + this.themecolore = new System.Windows.Forms.Label(); + this.themecolorf = new System.Windows.Forms.Label(); + this.themecolorfg = new System.Windows.Forms.Label(); + this.themecolortextbg = new System.Windows.Forms.Label(); + this.importbutton = new System.Windows.Forms.Button(); + this.applybutton = new System.Windows.Forms.Button(); + this.themecolorfgmarked = new System.Windows.Forms.Label(); + this.deleteButton = new System.Windows.Forms.Button(); + this.SuspendLayout(); + // + // themelist + // + this.themelist.FormattingEnabled = true; + this.themelist.Location = new System.Drawing.Point(12, 12); + this.themelist.Name = "themelist"; + this.themelist.Size = new System.Drawing.Size(160, 199); + this.themelist.TabIndex = 0; + this.themelist.SelectedIndexChanged += new System.EventHandler(this.theme_selected); + // + // themecolor0 + // + this.themecolor0.BackColor = System.Drawing.SystemColors.HotTrack; + this.themecolor0.Location = new System.Drawing.Point(189, 36); + this.themecolor0.Name = "themecolor0"; + this.themecolor0.Size = new System.Drawing.Size(40, 40); + this.themecolor0.TabIndex = 6; + // + // themecolor1 + // + this.themecolor1.BackColor = System.Drawing.SystemColors.HotTrack; + this.themecolor1.Location = new System.Drawing.Point(239, 36); + this.themecolor1.Name = "themecolor1"; + this.themecolor1.Size = new System.Drawing.Size(40, 40); + this.themecolor1.TabIndex = 10; + // + // themecolor2 + // + this.themecolor2.BackColor = System.Drawing.SystemColors.HotTrack; + this.themecolor2.Location = new System.Drawing.Point(289, 36); + this.themecolor2.Name = "themecolor2"; + this.themecolor2.Size = new System.Drawing.Size(40, 40); + this.themecolor2.TabIndex = 14; + // + // themecolor3 + // + this.themecolor3.BackColor = System.Drawing.SystemColors.HotTrack; + this.themecolor3.Location = new System.Drawing.Point(339, 36); + this.themecolor3.Name = "themecolor3"; + this.themecolor3.Size = new System.Drawing.Size(40, 40); + this.themecolor3.TabIndex = 18; + // + // themecolor4 + // + this.themecolor4.BackColor = System.Drawing.SystemColors.HotTrack; + this.themecolor4.Location = new System.Drawing.Point(189, 87); + this.themecolor4.Name = "themecolor4"; + this.themecolor4.Size = new System.Drawing.Size(40, 40); + this.themecolor4.TabIndex = 4; + // + // themecolor5 + // + this.themecolor5.BackColor = System.Drawing.SystemColors.HotTrack; + this.themecolor5.Location = new System.Drawing.Point(239, 87); + this.themecolor5.Name = "themecolor5"; + this.themecolor5.Size = new System.Drawing.Size(40, 40); + this.themecolor5.TabIndex = 8; + // + // themecolor6 + // + this.themecolor6.BackColor = System.Drawing.SystemColors.HotTrack; + this.themecolor6.Location = new System.Drawing.Point(289, 87); + this.themecolor6.Name = "themecolor6"; + this.themecolor6.Size = new System.Drawing.Size(40, 40); + this.themecolor6.TabIndex = 12; + // + // themecolor7 + // + this.themecolor7.BackColor = System.Drawing.SystemColors.HotTrack; + this.themecolor7.Location = new System.Drawing.Point(339, 87); + this.themecolor7.Name = "themecolor7"; + this.themecolor7.Size = new System.Drawing.Size(40, 40); + this.themecolor7.TabIndex = 16; + // + // themecolor8 + // + this.themecolor8.BackColor = System.Drawing.SystemColors.HotTrack; + this.themecolor8.Location = new System.Drawing.Point(189, 138); + this.themecolor8.Name = "themecolor8"; + this.themecolor8.Size = new System.Drawing.Size(40, 40); + this.themecolor8.TabIndex = 5; + // + // themecolor9 + // + this.themecolor9.BackColor = System.Drawing.SystemColors.HotTrack; + this.themecolor9.Location = new System.Drawing.Point(239, 138); + this.themecolor9.Name = "themecolor9"; + this.themecolor9.Size = new System.Drawing.Size(40, 40); + this.themecolor9.TabIndex = 9; + // + // themecolora + // + this.themecolora.BackColor = System.Drawing.SystemColors.HotTrack; + this.themecolora.Location = new System.Drawing.Point(289, 138); + this.themecolora.Name = "themecolora"; + this.themecolora.Size = new System.Drawing.Size(40, 40); + this.themecolora.TabIndex = 13; + // + // themecolorb + // + this.themecolorb.BackColor = System.Drawing.SystemColors.HotTrack; + this.themecolorb.Location = new System.Drawing.Point(339, 138); + this.themecolorb.Name = "themecolorb"; + this.themecolorb.Size = new System.Drawing.Size(40, 40); + this.themecolorb.TabIndex = 17; + // + // themecolorc + // + this.themecolorc.BackColor = System.Drawing.SystemColors.HotTrack; + this.themecolorc.Location = new System.Drawing.Point(189, 189); + this.themecolorc.Name = "themecolorc"; + this.themecolorc.Size = new System.Drawing.Size(40, 40); + this.themecolorc.TabIndex = 7; + // + // themecolord + // + this.themecolord.BackColor = System.Drawing.SystemColors.HotTrack; + this.themecolord.Location = new System.Drawing.Point(239, 189); + this.themecolord.Name = "themecolord"; + this.themecolord.Size = new System.Drawing.Size(40, 40); + this.themecolord.TabIndex = 11; + // + // themecolore + // + this.themecolore.BackColor = System.Drawing.SystemColors.HotTrack; + this.themecolore.Location = new System.Drawing.Point(289, 189); + this.themecolore.Name = "themecolore"; + this.themecolore.Size = new System.Drawing.Size(40, 40); + this.themecolore.TabIndex = 15; + // + // themecolorf + // + this.themecolorf.BackColor = System.Drawing.SystemColors.HotTrack; + this.themecolorf.Location = new System.Drawing.Point(339, 189); + this.themecolorf.Name = "themecolorf"; + this.themecolorf.Size = new System.Drawing.Size(40, 40); + this.themecolorf.TabIndex = 19; + // + // themecolorfg + // + this.themecolorfg.AutoSize = true; + this.themecolorfg.BackColor = System.Drawing.Color.Transparent; + this.themecolorfg.Location = new System.Drawing.Point(190, 18); + this.themecolorfg.Name = "themecolorfg"; + this.themecolorfg.Size = new System.Drawing.Size(66, 13); + this.themecolorfg.TabIndex = 21; + this.themecolorfg.Text = "Sample Text"; + // + // themecolortextbg + // + this.themecolortextbg.Location = new System.Drawing.Point(180, 15); + this.themecolortextbg.Name = "themecolortextbg"; + this.themecolortextbg.Size = new System.Drawing.Size(208, 223); + this.themecolortextbg.TabIndex = 20; + // + // importbutton + // + this.importbutton.Location = new System.Drawing.Point(12, 217); + this.importbutton.Name = "importbutton"; + this.importbutton.Size = new System.Drawing.Size(52, 23); + this.importbutton.TabIndex = 1; + this.importbutton.Text = "Add..."; + this.importbutton.UseVisualStyleBackColor = true; + this.importbutton.Click += new System.EventHandler(this.importbutton_Click_1); + // + // applybutton + // + this.applybutton.Location = new System.Drawing.Point(120, 217); + this.applybutton.Name = "applybutton"; + this.applybutton.Size = new System.Drawing.Size(52, 23); + this.applybutton.TabIndex = 3; + this.applybutton.Text = "Apply"; + this.applybutton.UseVisualStyleBackColor = true; + this.applybutton.Click += new System.EventHandler(this.applybutton_Click_1); + // + // themecolorfgmarked + // + this.themecolorfgmarked.AutoSize = true; + this.themecolorfgmarked.Location = new System.Drawing.Point(313, 18); + this.themecolorfgmarked.Name = "themecolorfgmarked"; + this.themecolorfgmarked.Size = new System.Drawing.Size(67, 13); + this.themecolorfgmarked.TabIndex = 22; + this.themecolorfgmarked.Text = "Marked Text"; + // + // deleteButton + // + this.deleteButton.Location = new System.Drawing.Point(66, 217); + this.deleteButton.Name = "deleteButton"; + this.deleteButton.Size = new System.Drawing.Size(52, 23); + this.deleteButton.TabIndex = 2; + this.deleteButton.Text = "Delete"; + this.deleteButton.UseVisualStyleBackColor = true; + this.deleteButton.Click += new System.EventHandler(this.deleteButton_Click); + // + // XTM + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(397, 248); + this.Controls.Add(this.deleteButton); + this.Controls.Add(this.themecolorfgmarked); + this.Controls.Add(this.themecolorfg); + this.Controls.Add(this.themecolorf); + this.Controls.Add(this.themecolor3); + this.Controls.Add(this.themecolorb); + this.Controls.Add(this.themecolor7); + this.Controls.Add(this.themecolore); + this.Controls.Add(this.themecolor2); + this.Controls.Add(this.themecolora); + this.Controls.Add(this.themecolor6); + this.Controls.Add(this.themecolord); + this.Controls.Add(this.themecolor1); + this.Controls.Add(this.themecolor9); + this.Controls.Add(this.themecolor5); + this.Controls.Add(this.themecolorc); + this.Controls.Add(this.themecolor0); + this.Controls.Add(this.themecolor8); + this.Controls.Add(this.themecolor4); + this.Controls.Add(this.importbutton); + this.Controls.Add(this.applybutton); + this.Controls.Add(this.themelist); + this.Controls.Add(this.themecolortextbg); + this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle; + this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); + this.MaximizeBox = false; + this.Name = "XTM"; + this.SizeGripStyle = System.Windows.Forms.SizeGripStyle.Hide; + this.Text = "XChat Theme Manager"; + this.ResumeLayout(false); + this.PerformLayout(); + + } + + #endregion + + private System.Windows.Forms.ListBox themelist; + private System.Windows.Forms.Label themecolor0; + private System.Windows.Forms.Label themecolor1; + private System.Windows.Forms.Label themecolor2; + private System.Windows.Forms.Label themecolor3; + private System.Windows.Forms.Label themecolor4; + private System.Windows.Forms.Label themecolor5; + private System.Windows.Forms.Label themecolor6; + private System.Windows.Forms.Label themecolor7; + private System.Windows.Forms.Label themecolor8; + private System.Windows.Forms.Label themecolor9; + private System.Windows.Forms.Label themecolora; + private System.Windows.Forms.Label themecolorb; + private System.Windows.Forms.Label themecolorc; + private System.Windows.Forms.Label themecolord; + private System.Windows.Forms.Label themecolore; + private System.Windows.Forms.Label themecolorf; + private System.Windows.Forms.Label themecolorfg; + private System.Windows.Forms.Label themecolortextbg; + private System.Windows.Forms.Button importbutton; + private System.Windows.Forms.Button applybutton; + private System.Windows.Forms.Label themecolorfgmarked; + private System.Windows.Forms.Button deleteButton; + } +} + diff --git a/src/xtm/Main.cs b/src/xtm/Main.cs new file mode 100644 index 00000000..2e10c650 --- /dev/null +++ b/src/xtm/Main.cs @@ -0,0 +1,327 @@ +/* XChat Theme Manager + * + * Copyright (C) 2012 Patrick Griffs + * Copyright (C) 2012 Berke Viktor + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA + */ + +using System; +using System.Collections.Generic; +using System.Collections; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.IO; +/* using System.IO.Compression; */ +using System.IO.Packaging; +using System.Linq; +using System.Text; +using System.Windows.Forms; +using System.Net; + +namespace thememan +{ + public partial class XTM : Form + { + public string appdata = (Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) + "\\X-Chat 2\\"); + public string home = (Environment.GetFolderPath(Environment.SpecialFolder.Personal) + "/.xchat2/"); + + public string xchatdir; + public string themedir = "themes\\"; + + OpenFileDialog importDialog; + + public XTM () + { + InitializeComponent (); + + if (File.Exists ("portable-mode")) + xchatdir = ("config\\"); + else if (Directory.Exists (appdata)) + xchatdir = (appdata); + else if (Directory.Exists (home)) { + xchatdir = (home); themedir = "themes/"; + } else + Console.WriteLine("Install not found"); + + ListThemes(); + + String[] arguments = Environment.GetCommandLineArgs(); + if (arguments.Length > 1) + { + FileInfo fi = new FileInfo(arguments[1]); + attemptImport(fi); + } + } + + private void ListThemes() + { + themelist.Items.Clear(); + + if (Directory.Exists(xchatdir + themedir)) + { + foreach (string theme in Directory.GetDirectories(xchatdir + themedir)) + { + themelist.Items.Add(theme.Remove(0, xchatdir.Length + themedir.Length)); + } + } + else + { + Directory.CreateDirectory(xchatdir + themedir); + } + + if (themelist.Items.Count == 0) + { + applybutton.Enabled = false; + deleteButton.Enabled = false; + } + else + { + themelist.SetSelected(0, true); + } + } + + private void ShowColors(List<List<string>> themecolors) + { + List<Control> labels = this.Controls.OfType<Label>().Cast<Control>().OrderBy(label => label.Name).ToList(); + for (byte themecolor = 0; themecolor < themecolors.Count; themecolor++) + { + byte rval = Convert.ToByte(int.Parse(themecolors[themecolor][0].ToString(), System.Globalization.NumberStyles.HexNumber) / 257); + byte gval = Convert.ToByte(int.Parse(themecolors[themecolor][1].ToString(), System.Globalization.NumberStyles.HexNumber) / 257); + byte bval = Convert.ToByte(int.Parse(themecolors[themecolor][2].ToString(), System.Globalization.NumberStyles.HexNumber) / 257); + + if (themecolor <= 15) + labels[themecolor].BackColor = Color.FromArgb(rval, gval, bval); + else if (themecolor == 16) + themecolorfgmarked.ForeColor = Color.FromArgb(rval, gval, bval); + else if (themecolor == 17) + themecolorfgmarked.BackColor = Color.FromArgb(rval, gval, bval); + else if (themecolor == 18) + themecolorfg.ForeColor = Color.FromArgb(rval, gval, bval); + else if (themecolor == 19) + { + themecolortextbg.BackColor = Color.FromArgb(rval, gval, bval); + themecolorfg.BackColor = themecolortextbg.BackColor; + } + } + } + + private List<List<string>> ReadTheme(string theme) + { + List<List<string>> themecolors = new List<List<string>>(); + foreach (string line in File.ReadLines(xchatdir + themedir + theme + "/colors.conf")) + { + List<string> colors = new List<string>(); + List<string> colorlist = new List<string>(); + string[] possiblecolors = { "color_256", "color_257", "color_258", "color_259" }; + + for (byte num = 16; num <=31; num++) + colorlist.Add("color_" + num); + colorlist.AddRange(possiblecolors); + + string[] config = line.Split(new char[] { ' ' }); + if(colorlist.Contains(config[0]) == true) + { + colors.Add(config[2]); + colors.Add(config[3]); + colors.Add(config[4]); + themecolors.Add(colors); + } + } + return themecolors; + } + + private void applybutton_Click_1(object sender, EventArgs e) + { + DialogResult result = MessageBox.Show("XChat must be closed and this will overwrite your current theme!\n\nDo you wish to continue?", "Warning", MessageBoxButtons.OKCancel, MessageBoxIcon.Warning); + if (result == DialogResult.OK) + { + File.Copy(xchatdir + themedir + themelist.SelectedItem.ToString() + "\\colors.conf", xchatdir + "colors.conf", true); + if (File.Exists(xchatdir + themedir + themelist.SelectedItem.ToString() + "\\pevents.conf")) + { + File.Copy(xchatdir + themedir + themelist.SelectedItem.ToString() + "\\pevents.conf", xchatdir + "pevents.conf", true); + } + } + } + + private void theme_selected(object sender, EventArgs e) + { + if (themelist.SelectedItem != null) + { + ShowColors(ReadTheme(themelist.SelectedItem.ToString())); + applybutton.Enabled = true; + deleteButton.Enabled = true; + } + } + + private void importbutton_Click_1(object sender, EventArgs e) + { + importDialog = new OpenFileDialog(); + importDialog.Filter = "XChat Theme Files|*.xct"; + importDialog.FilterIndex = 1; + importDialog.FileOk += new CancelEventHandler(importdialog_FileOk); + importDialog.ShowDialog(); + } + + private void importdialog_FileOk(object sender, System.ComponentModel.CancelEventArgs e) + { + FileInfo fi = new FileInfo(importDialog.FileName); + attemptImport(fi); + } + + private void attemptImport(FileInfo fi) + { + string themeName = fi.Name.Remove(fi.Name.Length - fi.Extension.Length); + int result = extractTheme(fi); + ListThemes(); + /* although a check is added to ListThemes(), this would still fail if the theme file was invalid or the theme is already installed */ + switch (result) + { + case 0: + themelist.SetSelected(themelist.FindStringExact(themeName), true); + /* required for command line invoking */ + ShowColors(ReadTheme(themeName)); + break; + case 1: + MessageBox.Show("This theme is already installed!", "Warning", MessageBoxButtons.OK, MessageBoxIcon.Warning); + themelist.SetSelected(themelist.FindStringExact(themeName), true); + /* required for command line invoking */ + ShowColors(ReadTheme(themeName)); + break; + case 2: + MessageBox.Show("Invalid theme file!", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); + break; + } + } + /* gzip solution, not good enough coz we need multiple files + * + public string extractTheme(FileInfo fi) + { + using (FileStream inFile = fi.OpenRead()) + { + string themeName = fi.Name.Remove(fi.Name.Length - fi.Extension.Length); + string destFolder = xchatdir + themedir + themeName; + + if (!Directory.Exists(destFolder)) + { + Directory.CreateDirectory(destFolder); + } + + using (FileStream outFile = File.Create(destFolder + "\\colors.conf")) + { + using (GZipStream Decompress = new GZipStream(inFile, CompressionMode.Decompress)) + { + Decompress.CopyTo(outFile); + } + } + return themeName; + } + } + */ + + /* using System.IO.Package: + * http://weblogs.asp.net/jgalloway/archive/2007/10/25/creating-zip-archives-in-net-without-an-external-library-like-sharpziplib.aspx + * [Content_Types].xml must be present for every zip file + */ + + private const long BUFFER_SIZE = 4096; + + private int extractTheme(FileInfo zipFile) + { + string themeName = zipFile.Name.Remove(zipFile.Name.Length - zipFile.Extension.Length); + string destFolder = xchatdir + themedir + themeName; + + try + { + using (Package zip = Package.Open(zipFile.FullName, FileMode.Open)) + { + PackagePartCollection parts = zip.GetParts(); + + if (Directory.Exists(destFolder)) + { + return 1; + } + else + { + Directory.CreateDirectory(destFolder); + } + + foreach (PackagePart part in parts) + { + /* not sure what's this good for */ + /* String archive = part.Uri.ToString().Replace(@"/", @"\"); */ + String destFile = destFolder + part.Uri.ToString(); + + using (FileStream outFileStream = new FileStream(destFile, FileMode.CreateNew, FileAccess.ReadWrite)) + { + using (Stream inStream = part.GetStream()) + { + long bufferSize = inStream.Length < BUFFER_SIZE ? inStream.Length : BUFFER_SIZE; + byte[] buffer = new byte[bufferSize]; + int bytesRead = 0; + long bytesWritten = 0; + + while ((bytesRead = inStream.Read(buffer, 0, buffer.Length)) != 0) + { + outFileStream.Write(buffer, 0, bytesRead); + bytesWritten += bufferSize; + } + } + } + + + } + } + } + catch (System.IO.FileFormatException) + { + return 2; + } + + if (IsDirectoryEmpty(destFolder)) + { + Directory.Delete(destFolder); + return 2; + } + else + { + return 0; + } + } + + public bool IsDirectoryEmpty(string path) + { + return !Directory.EnumerateFileSystemEntries(path).Any(); + } + + private void deleteButton_Click(object sender, EventArgs e) + { + DialogResult result = MessageBox.Show("Are you sure you want to delete this theme from the theme repo?\n\nYour currently applied theme won't be affected.", "Warning", MessageBoxButtons.OKCancel, MessageBoxIcon.Warning); + if (result == DialogResult.OK) + { + Directory.Delete(xchatdir + themedir + themelist.SelectedItem.ToString(), true); + ListThemes(); + if (themelist.Items.Count == 0) + { + deleteButton.Enabled = false; + } + } + } + + + + } +} diff --git a/src/xtm/Main.resx b/src/xtm/Main.resx new file mode 100644 index 00000000..75c99568 --- /dev/null +++ b/src/xtm/Main.resx @@ -0,0 +1,287 @@ +<?xml version="1.0" encoding="utf-8"?> +<root> + <!-- + Microsoft ResX Schema + + Version 2.0 + + The primary goals of this format is to allow a simple XML format + that is mostly human readable. The generation and parsing of the + various data types are done through the TypeConverter classes + associated with the data types. + + Example: + + ... ado.net/XML headers & schema ... + <resheader name="resmimetype">text/microsoft-resx</resheader> + <resheader name="version">2.0</resheader> + <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader> + <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader> + <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data> + <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data> + <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64"> + <value>[base64 mime encoded serialized .NET Framework object]</value> + </data> + <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64"> + <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value> + <comment>This is a comment</comment> + </data> + + There are any number of "resheader" rows that contain simple + name/value pairs. + + Each data row contains a name, and value. The row also contains a + type or mimetype. Type corresponds to a .NET class that support + text/value conversion through the TypeConverter architecture. + Classes that don't support this are serialized and stored with the + mimetype set. + + The mimetype is used for serialized objects, and tells the + ResXResourceReader how to depersist the object. This is currently not + extensible. For a given mimetype the value must be set accordingly: + + Note - application/x-microsoft.net.object.binary.base64 is the format + that the ResXResourceWriter will generate, however the reader can + read any of the formats listed below. + + mimetype: application/x-microsoft.net.object.binary.base64 + value : The object must be serialized with + : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter + : and then encoded with base64 encoding. + + mimetype: application/x-microsoft.net.object.soap.base64 + value : The object must be serialized with + : System.Runtime.Serialization.Formatters.Soap.SoapFormatter + : and then encoded with base64 encoding. + + mimetype: application/x-microsoft.net.object.bytearray.base64 + value : The object must be serialized into a byte array + : using a System.ComponentModel.TypeConverter + : and then encoded with base64 encoding. + --> + <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata"> + <xsd:import namespace="http://www.w3.org/XML/1998/namespace" /> + <xsd:element name="root" msdata:IsDataSet="true"> + <xsd:complexType> + <xsd:choice maxOccurs="unbounded"> + <xsd:element name="metadata"> + <xsd:complexType> + <xsd:sequence> + <xsd:element name="value" type="xsd:string" minOccurs="0" /> + </xsd:sequence> + <xsd:attribute name="name" use="required" type="xsd:string" /> + <xsd:attribute name="type" type="xsd:string" /> + <xsd:attribute name="mimetype" type="xsd:string" /> + <xsd:attribute ref="xml:space" /> + </xsd:complexType> + </xsd:element> + <xsd:element name="assembly"> + <xsd:complexType> + <xsd:attribute name="alias" type="xsd:string" /> + <xsd:attribute name="name" type="xsd:string" /> + </xsd:complexType> + </xsd:element> + <xsd:element name="data"> + <xsd:complexType> + <xsd:sequence> + <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" /> + <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" /> + </xsd:sequence> + <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" /> + <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" /> + <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" /> + <xsd:attribute ref="xml:space" /> + </xsd:complexType> + </xsd:element> + <xsd:element name="resheader"> + <xsd:complexType> + <xsd:sequence> + <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" /> + </xsd:sequence> + <xsd:attribute name="name" type="xsd:string" use="required" /> + </xsd:complexType> + </xsd:element> + </xsd:choice> + </xsd:complexType> + </xsd:element> + </xsd:schema> + <resheader name="resmimetype"> + <value>text/microsoft-resx</value> + </resheader> + <resheader name="version"> + <value>2.0</value> + </resheader> + <resheader name="reader"> + <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> + </resheader> + <resheader name="writer"> + <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> + </resheader> + <assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" /> + <data name="$this.Icon" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64"> + <value> + AAABAAEAMDAAAAEAIACoJQAAFgAAACgAAAAwAAAAYAAAAAEAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAABAAAAAQAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAQAAAAHAAAACQAAAAgAAAAFAAAAAgAAAAEAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAABwAAABEBAQEbBAQEIQICAh4AAAAVAAAACwAA + AAQAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAIAAAAFwMDAywDAwM/AwMDSQUF + BUUEBAQ1AQEBHwAAAA0AAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAUAAAAZAgICRQMD + A3IBAQGDAQEBegICA20EBARYBAQEOgEBARsAAAAIAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAA + ABQEBARjGhsZricnJcsXFxbYBgYGzgAAAJwCAgJwBQUFTwICAioAAAANAAAAAgAAAAAAAAAAAAAAAAAA + AAAAAAABAAAAAQAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAABAAAAAgAAAAIAAAACAAAAAQAA + AAEAAAABAAAABQMDAlM8Pjqcp6ug17O3rPiFiID3NTcz6QEBAdMBAQGPBAQEWgICAjQAAAATAAAABAAA + AAEAAAABAAAAAgAAAAUAAAAHAAAACAAAAAcAAAAEAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAwAAAAYAAAAKAAAADAAA + AA0AAAAMAAAACwAAAAgAAAAGAQEBGRcYF3uqrqPU3ePV+MrPwv+usqf+b3Ns8QcHB+QAAACnBAQEYAQE + BDsAAAAYAAAABwAAAAUAAAAIAAAADgAAABUCAgIdAgICIAEBARwAAAASAAAACQAAAAMAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAFAAAADgEB + ARkDAwMiAgICJwICAikCAgIoAgICJQAAAB8AAAAXAQIBTmFjXaTX3c/p4uja/9bczv/Cx7v+en127hMU + E+QAAAC3BAQEZQQEBD4AAAAfAAAAEgAAABUBAQEeAgICKgICAjcCAgNEAwMDSAQEBEACAgIuAQEBGQAA + AAkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAA + AAUAAAARAwMDJgMDAzsDAwNJAgICTwICAlICAgJTBAQETwMDA0cEAwQ5AgICd5WZj9vq8OL54ObY/9/l + 1//Kz8P/fYF57BscGt4AAADBAgICbAMDA0UAAAAwAAAALQICAjcCAgJNAgICbgICAoUBAQGJAQEBeAIC + AmQDAwNMBAQELQAAABIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAgAAAA0AAAA0AgICbAICAo8CAgGbAQEBngAAAJkBAQGOAgICfAMDA28CAgJfAgICjJyf + lufo7d/+5Orc/+Pp2v/Gy7//io2F6SEiINQAAADDAQEBcwMDA1UCAgJSAwMDaQYGBosSExKePD46vjw9 + OtYTFBPTAgICuwAAAJADAwNdBAQEOQICAhgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAQEBBwYGBkgZGhiOJSYkszAxLsgsLSvRHyAe2RESEd0KCgrdAgICzwAA + ALQAAACKAgICoJygl+ru9OX+6/Hi/+Dl2P7N0sb/jJCI6hscGtEAAADBAgIBgwcHB4MTExKmMzQwvXh8 + dM2hpZvms7mt9Kito/qEiH/2IiMg3QICAr0BAQJrAwMDNgAAABcAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBQUFGS8wLYO1uq/Yyc/C8sLHu/awtan4n6OZ+pGV + jPtydW70Li8s4RUVFNoCAgLGAQEBvZGUjOjt8+X86O7g/+Xq3P/S18r/g4Z+7A8PDs4EBATFGxwax0dI + RM6RlIvjvsK29sXKvfi6vrL9w8m8/8TJvf+mq6D7UFJN3gUGBb4BAQFqAgICKAAAAA8AAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAEAAAACAAAAAgAAAAIAAAAEBwcHOFBSTZjb4NPw6O7g/uHn + 2f7U2s3/yc3B/7q/s/+2uq/+pquh+4WIgPYrLCrhBwcH03x+d+Lk6dv78Pbn/+nv4f/Y3tD9jZCH6RkZ + GM48PTnXm56V8MXKvfrK0ML90dXI/8rPwv+3vLH/wsi7/8DFuf+bnpT4LC0qzQICAqQBAQFKAAAAFgAA + AAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAQAAAAMAAAAEAAAABQAAAAcAAAAJAgICMyco + JpW4vLHa3ePV+Nzh1Pvc4tT/1NnM/8zRxP/HzL//t7uw/6qvpP+Sl433QkQ/2n1/eOHf5Nb88vjp/+/1 + 5v/i6Nr8sLWq732AeOimqp/2ub6y/r7EuP+9wrf/vcK2/7/Dt/+3vLD/ub+y/6Wpnvtwc2vmEBEQswEB + AWQAAAAdAAAACQAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAEAAAADAAAABQAAAAcAAAAJAAAADAAA + AA8AAAATAAAAHwYGBm88Pjqom5+V2MTJvfPGy7//wMW5/77Ct/+9wbX/uL2y/7O3rP+3vLD/o6id8rm9 + svLl693+6e/g/+bs3f/c4tP/x83A/7G1qv6mqqD/nKCW/5ygl/+go5r/o6ed/6aqoP+kqJ7/j5OK81VY + UtwREhG4AQEBbAAAACUAAAAKAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAgAAAAQAAAAHAAAACgAA + AA4AAAATAAAAGQAAAB4AAAAjAAAAKwAAAEQCAgKJHB0bul5gW9eQlIvyn6OZ/p6imP+go5r/pqqg/6+z + qf+5vrL/wMS5/rm+s/+XnJL/eX11/3J4c/9zgoP/Z3R0/2xxbP+ChX3/g4Z+/3+Cev+BhHv/iIyD/32A + eP5iZF3wNjc01goKCbQAAAB4AAAALAAAAA8AAAAFAAAAAQAAAAAAAAAAAAAAAAAAAAEAAAADAAAABAAA + AAgAAAANAAAAFAAAABoAAAAiAAAAKgAAADIAAAA7AAAARQAAAFMAAABrAAAAkAoLCrwpKifkVVdS9Hh7 + dPuDhn7/j5KK/5uflv+anpX/aWxl/0ZOTP9BVl3/M1Ff/ytIV/8wTmD/MEpZ/zRIUv9FTk//cXRu/3p+ + dv5ydW7+UFJO+CorKOwPDw7UAQEBrQICAoECAgJOAwMDLwAAABgAAAAKAAAAAwAAAAAAAAABAAAAAgAA + AAMAAAAGAAAACgAAABAAAAAYAAAAIQAAACoAAAA1AAAAPwAAAEsAAABYAAAAZQAAAHMAAACAAAAAjgAA + AKEBAQG1Dg4N0iEiIOpAQj71cHNs/ICDfP1WWVT+LDk8/0Rsdv9UhZH/Uomd/0CBoP88b4r/PGB1/y9K + W/8rQEz/SE9P/jIzMPQiIyHoEhMS3AECAdQAAADCAQEBngICAnoEBARkBQUFTQMDAzMAAAAaAAAACgAA + AAIAAAACAAAAAwAAAAYAAAALAAAAEgAAABsAAAAmAAAAMQAAAD0AAABKAAAAWAAAAGcAAAB2AAAAhgAA + AJUAAAClAAAAsQAAALoFBQXFDAwM1gcHB+MJCQnrKCkn8lRWUfZDTU7/VX+M/054gv9KVVj/V2Fk/zxc + av9EUln/U1pf/ztRX/8wTF3/JzU9/0ZKRvk/QT3lODo34R4fHecJCQnjAQEB0wAAALABAQGGAwMDagQE + BFEDAwMzAAAAFwAAAAcAAAADAAAABgAAAAsAAAATAAAAHAAAACkAAAA2AAAARQAAAFQAAABkAAAAdAAA + AIUAAACZAAAAsAMDA8QWFhbXKSkp5j4+PvRLS0v5Ojo6+iAgH/YpKifxYGJc+HFzbf1FWmL/XZiu/0td + Yf9iY2P/uLm5/1laW/9jZGT/t7i4/05ZX/9AYXf/LURS/2RqZ/+Ch378goZ+/ICDe/hLTUjtHB0b6wUF + BeUAAADBAQEBjgICAmoFBQVLAwMDJwAAAA0AAAAEAAAACQAAABEAAAAdAAAAKQAAADgAAABIAAAAWgAA + AGwAAAB/AQEBmQICArgcHBzUR0dH7G9vb/uUlJT9u7u7/tra2v+NjY39JSUk+DY3NPdbXVj7eXx1/nh7 + dP88TVT/WI6k/1prcP/P0ND/09TU/2psbP/Q0dH/0tPU/1NjbP9Oe5f/OFFe/4SLhf+ippz/n6OZ/5+j + mf+Rloz+en529Ts8OekMDAvlAAEAxgEBAYYDAwNXBAQEMAAAABIAAAAHAAAADwAAABsAAAApAAAAOQAA + AEsAAABdAAAAcgEBAYwICAi1Kioq3GxsbPOnp6f92dnZ//r6+v/9/f3//Pz8/5ycm/4rLCv6Kiso+EZH + Q/xhY13+fH94/4qNhf9bYV7/QV9s/010g/9ve37/bnyA/09weP9vfYH/aXqB/0qCn/9ThaH/P0tQ/6So + n//DyLz/wsa7/7a7r/+zuKz/rbKm/5KXjvdVWFLrEREQ3QEBAawBAQJVAgICLwAAABIAAAALAAAAFgAA + ACQAAAA3AAAASgAAAF8AAAB3CwsLpCsrK9p1dXXzx8fH/u3t7f/////////////////+/v7/vb29/zY2 + Nv0cHRv8LS8s+0JDP/xZW1b8dHdw/I+Tiv6NkYf8TFNS+UBpevxiqcL/d8fc/4Ta7v95yd//Z7jd/1+h + w/9EW2X/e4F6/8TJvf/R1sn/1NnM/9HWyf/N08X/yc/C/8TJvP+qrqP6WVtW3AcHBrACAgJKAwMDJQAA + AA4AAAAPAAAAHAAAAC8AAABEAAAAXAICAnsXFxezY2Nj6sjIyP3w8PD/8/P0//Pz8/////////////// + ///39/f/jIyM/hsbG/0WFxX8IyQh+jM0MfpAQT34RUdD90BBPfJCREDcKisotj9KTdVCYGv+THOA/3Cs + xf9wr8z/TXWJ/0hZYP9/hX//ztPH/ubr3f7m7N3/7/Xm//D25//m7N3/3+XX/9bczv7L0MP2kJSLwQ4O + DYcCAgJCAQEBFgAAAAgAAAAUAAAAJAAAADkAAABTAgICdiMjI7iHh4f25eXl/v7+/v/+/v//oaHs/62t + vP/4+Pj/////////////////5OTk/25ubv4iIiL9CwwL+wwNDPgMDQzvDAwM1wgIB7AFBQWHAQEBhHN2 + b7enraTzjJKN/3SCgv90goP/mqKc/77Dt/+Tl473YGNd7ImNhfG/xLj55evd+OTq3Pjb4dP40NXJ+MXK + vuutsaa9RkhDiQUFBWQAAAAiAAAACQAAAAMAAAAYAAAAKwAAAEQDAwNrKCgot5iYmPb39/f///////// + ////////oqL3/1pauv/k5OT//////////////////////+fn5/+np6f/T09P+QsLC+gAAADMAAAArwAA + AI8AAAByAQEBhllbVqXKz8Pi2+HT/9zi1P/f5df/5evd/+Pp2/+us6j1MTMw2BUVFMInKCW1Ojs4p0FC + PqxAQj2qNDYyqC0uK54gIB6JBwcGXgAAACIAAAAHAAAAAgAAAAAAAAAaAAAAMAEBAVQjIyOrm5ub9Pf3 + 9///////////////////////vr76/0FBzv/S0tT///////z8/P/o6On/2tra//Pz8//9/f3/2dnZ/3Nz + c/gRERHbAAAAtgAAAJkAAAB9AAAAhRQUE5KorKHE3uTW+O3z5P/x9+j/6O7g/97k1v+vs6juLi8tzAAA + AJICAgJPAgICPgQEBEcDAwNNAQEBPgAAACYAAAATAAAACwAAAAMAAAABAAAAAAAAAAAAAAAcAAAANQwM + DH5zc3Pm6urq////////////////////////////6Oj9/0ND3v+ysrn/3Nzj/5OTx/87O83/Li63/39/ + nP/o6Oj//////97e3v9WVlb0BQUFywAAAKcAAACKAAAAeQICApdGSESVxMm9zOju4Pru9OX/5Orc/97j + 1f+WmZDfHh8dwAEBAX0CAgIyAAAAFAAAAAcAAAAEAAAAAgAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAcAAAARDo6Ora8vLz9///////////////////////////+/v7/7e31/0JC5v9KSqb/LS3T/wYG + 8/8AAP7/AQH9/yoqz//Ly9b//v7+//7+/v+np6f+ISEh4gAAALQAAACTAAAAdAAAAIgFBQWjV1lUpMvQ + xNHr8eP85evd/9ne0fdrbWfQCgoJpgEBAVEAAAAdAAAACQAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAaAAAAU1lZWeDp6en//////////////////v7+//Ly8//BwdT/ZmbI/xMR + 6P8KBfL/AAD//wAA/v8SEvX/V1ft/8DA7v/4+Pv////////////f39//Ozs78QAAALsAAACYAAAAeAAA + AGMAAAByBgYFm0NFQcO1uq/Z3ePV6qqupM4pKii4AAAAcQAAACMAAAALAAAAAwAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWAAAAWGRkZPP9/f3////////////s7O//s7PQ/1pa + xf8TE+j/AgL6/wAA/v8ZDOf/Dw7w/2lp6f/IyPL/+fn8///////////////////////39/f/R0dH+AAA + AL0AAACYAAAAeAAAAFcAAAA8AAAARAkJCHM0NjKdUVNOuDM0MZcEBQRkAAAAJgAAAAkAAAADAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAASAAAAUWJiYu35+fn///////j4 + /v9ycuv/ERHp/wEB/f8AAP//AwP8/yws8P9DQe7/Wlq8/+rq7P////////////////////////////// + ///z8/P/RERE9QAAALgAAACSAAAAcgAAAFEAAAAyAAAAGwAAABcAAAAmAAAANwAAAC8AAAASAAAABAAA + AAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAAAAPlJS + Uszb29v+//////7+//+4uPz/JSX8/w0N+v82NvL/nJzr/+jo9/+2tvn/Tk7C/9ra2/////////////// + ///////////////////Nzc3+NDQ05wAAAKsAAACHAAAAZwAAAEUAAAApAAAAFQAAAAgAAAAEAAAABAAA + AAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAKAAAAIi4uLo6lpaX1/Pz8////////////6Oj+/9DQ+f/z8/v//v7+///////R0fv/OzvY/8LC + yP/+/v7///////////////////////n5+f+MjIz5FxcXygAAAJcAAAB2AAAAVwAAADkAAAAgAAAADgAA + AAQAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAGAAAADgQEBEBWVlbA0dHR/P7+/v////////////////////////////// + ///x8f7/S0vn/6mpuf/8/Pz//////////////////f39/8DAwP05OTndAQEBoAAAAH4AAABhAAAARAAA + ACkAAAAVAAAACAAAAAIAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAACAEBARUXFxdYWVlZyby8vPj19fX///////// + ///////////////////7+///c3P1/5iYyP/5+fn///////7+/v/x8fH/rKys+kRERN0ICAiiAAAAfAAA + AGMAAABIAAAALwAAABoAAAALAAAAAwAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAABQAAAAoBAQEXDw8PRjs7 + O6h9fX3ox8fH+ubm5v/19fX//Pz8////////////4uL+/9zc9P/y8vL/5OTk/76+vvpvb2/tKSkpwgUF + BYwAAABvAAAAWgAAAEUAAAAwAAAAHAAAAA4AAAAFAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAgAA + AAUAAAAJAAAAEgcHBysWFhZqKysrsFlZWdaHh4fppaWl9re3t/y5ubn+tra2/KGhofWAgIDrUFBQ2yMj + I70ODg6NAgICZwAAAFcAAABLAAAAPAAAACwAAAAcAAAADwAAAAYAAAACAAAAAQAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAQAAAAIAAAAEAAAACAAAAA0AAAAVAwMDJwkJCUwLCwt0DAwMjwwMDJ8MDAylDAwMoQsL + C5UJCQl/BgYGYQEBAUkAAABAAAAAOwAAADUAAAAsAAAAIgAAABcAAAANAAAABgAAAAIAAAABAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAwAAAAUAAAAIAAAADAAAABEAAAAVAAAAGgAA + AB0AAAAgAAAAIwAAACQAAAAkAAAAJAAAACMAAAAhAAAAHgAAABoAAAAVAAAADwAAAAoAAAAFAAAAAgAA + AAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAADAAAABQAA + AAcAAAAJAAAACwAAAA4AAAAPAAAAEAAAABAAAAARAAAAEAAAAA8AAAAOAAAADQAAAAsAAAAIAAAABQAA + AAQAAAACAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAQAAAAIAAAADAAAABAAAAAUAAAAGAAAABgAAAAYAAAAGAAAABQAAAAQAAAAEAAAAAwAA + AAMAAAACAAAAAgAAAAEAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAEAAAACAAAAAgAAAAIAAAACAAAAAQAA + AAEAAAABAAAAAQAAAAEAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///////8AAP///////wAA//////// + AAD///////8AAP///////wAA/////f//AAD////wf/8AAP///+A//wAA////4D//AAD////AP/8AAP// + /8A/nwAA//+DgDwHAAD//gAAAAcAAP/8AAAABwAA//wAAAAHAAD//AAAAA8AAP/+AAAAHwAA//4AAAA/ + AAD//wAAAD8AAP/+AAAAfwAA//gAAAAfAAD/4AAAAA8AAP/AAAAABwAA/wAAAAAHAAD+AAAAAAcAAPwA + AAAABwAA+AAAAAAPAADwAACAAB8AAOAAAIAP/wAA4AAAQB//AADAAABAH/8AAMAAAHA//wAAwAAAfH// + AADAAAB///8AAMAAAH///wAAwAAA////AADgAAH///8AAPAAA////wAA+AAH////AAD+AB////8AAP/B + /////wAA////////AAD///////8AAP///////wAA////////AAD///////8AAP///////wAA//////// + AAA= +</value> + </data> +</root> \ No newline at end of file diff --git a/src/xtm/Program.cs b/src/xtm/Program.cs new file mode 100644 index 00000000..c9bb7144 --- /dev/null +++ b/src/xtm/Program.cs @@ -0,0 +1,21 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Windows.Forms; + +namespace thememan +{ + static class Program + { + /// <summary> + /// The main entry point for the application. + /// </summary> + [STAThread] + static void Main() + { + Application.EnableVisualStyles(); + Application.SetCompatibleTextRenderingDefault(false); + Application.Run(new XTM()); + } + } +} diff --git a/src/xtm/Properties/AssemblyInfo.cs b/src/xtm/Properties/AssemblyInfo.cs new file mode 100644 index 00000000..75d92f87 --- /dev/null +++ b/src/xtm/Properties/AssemblyInfo.cs @@ -0,0 +1,38 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; +using System.Resources; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("XChat Theme Manager")] +[assembly: AssemblyDescription("Manages XChat Themes.")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("thememan")] +[assembly: AssemblyCopyright("Copyright © 2012")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid("adb04fa6-faee-4dcc-be53-7ba67e74c2a0")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Build and Revision Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] +[assembly: NeutralResourcesLanguageAttribute("en-US")] diff --git a/src/xtm/Properties/Resources.Designer.cs b/src/xtm/Properties/Resources.Designer.cs new file mode 100644 index 00000000..829857ee --- /dev/null +++ b/src/xtm/Properties/Resources.Designer.cs @@ -0,0 +1,63 @@ +//------------------------------------------------------------------------------ +// <auto-generated> +// This code was generated by a tool. +// Runtime Version:4.0.30319.17626 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// </auto-generated> +//------------------------------------------------------------------------------ + +namespace thememan.Properties { + using System; + + + /// <summary> + /// A strongly-typed resource class, for looking up localized strings, etc. + /// </summary> + // This class was auto-generated by the StronglyTypedResourceBuilder + // class via a tool like ResGen or Visual Studio. + // To add or remove a member, edit your .ResX file then rerun ResGen + // with the /str option, or rebuild your VS project. + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + internal class Resources { + + private static global::System.Resources.ResourceManager resourceMan; + + private static global::System.Globalization.CultureInfo resourceCulture; + + [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] + internal Resources() { + } + + /// <summary> + /// Returns the cached ResourceManager instance used by this class. + /// </summary> + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Resources.ResourceManager ResourceManager { + get { + if (object.ReferenceEquals(resourceMan, null)) { + global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("thememan.Properties.Resources", typeof(Resources).Assembly); + resourceMan = temp; + } + return resourceMan; + } + } + + /// <summary> + /// Overrides the current thread's CurrentUICulture property for all + /// resource lookups using this strongly typed resource class. + /// </summary> + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Globalization.CultureInfo Culture { + get { + return resourceCulture; + } + set { + resourceCulture = value; + } + } + } +} diff --git a/src/xtm/Properties/Resources.resources b/src/xtm/Properties/Resources.resources new file mode 100644 index 00000000..6c05a977 --- /dev/null +++ b/src/xtm/Properties/Resources.resources Binary files differdiff --git a/src/xtm/Properties/Resources.resx b/src/xtm/Properties/Resources.resx new file mode 100644 index 00000000..1af7de15 --- /dev/null +++ b/src/xtm/Properties/Resources.resx @@ -0,0 +1,120 @@ +<?xml version="1.0" encoding="utf-8"?> +<root> + <!-- + Microsoft ResX Schema + + Version 2.0 + + The primary goals of this format is to allow a simple XML format + that is mostly human readable. The generation and parsing of the + various data types are done through the TypeConverter classes + associated with the data types. + + Example: + + ... ado.net/XML headers & schema ... + <resheader name="resmimetype">text/microsoft-resx</resheader> + <resheader name="version">2.0</resheader> + <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader> + <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader> + <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data> + <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data> + <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64"> + <value>[base64 mime encoded serialized .NET Framework object]</value> + </data> + <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64"> + <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value> + <comment>This is a comment</comment> + </data> + + There are any number of "resheader" rows that contain simple + name/value pairs. + + Each data row contains a name, and value. The row also contains a + type or mimetype. Type corresponds to a .NET class that support + text/value conversion through the TypeConverter architecture. + Classes that don't support this are serialized and stored with the + mimetype set. + + The mimetype is used for serialized objects, and tells the + ResXResourceReader how to depersist the object. This is currently not + extensible. For a given mimetype the value must be set accordingly: + + Note - application/x-microsoft.net.object.binary.base64 is the format + that the ResXResourceWriter will generate, however the reader can + read any of the formats listed below. + + mimetype: application/x-microsoft.net.object.binary.base64 + value : The object must be serialized with + : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter + : and then encoded with base64 encoding. + + mimetype: application/x-microsoft.net.object.soap.base64 + value : The object must be serialized with + : System.Runtime.Serialization.Formatters.Soap.SoapFormatter + : and then encoded with base64 encoding. + + mimetype: application/x-microsoft.net.object.bytearray.base64 + value : The object must be serialized into a byte array + : using a System.ComponentModel.TypeConverter + : and then encoded with base64 encoding. + --> + <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata"> + <xsd:import namespace="http://www.w3.org/XML/1998/namespace" /> + <xsd:element name="root" msdata:IsDataSet="true"> + <xsd:complexType> + <xsd:choice maxOccurs="unbounded"> + <xsd:element name="metadata"> + <xsd:complexType> + <xsd:sequence> + <xsd:element name="value" type="xsd:string" minOccurs="0" /> + </xsd:sequence> + <xsd:attribute name="name" use="required" type="xsd:string" /> + <xsd:attribute name="type" type="xsd:string" /> + <xsd:attribute name="mimetype" type="xsd:string" /> + <xsd:attribute ref="xml:space" /> + </xsd:complexType> + </xsd:element> + <xsd:element name="assembly"> + <xsd:complexType> + <xsd:attribute name="alias" type="xsd:string" /> + <xsd:attribute name="name" type="xsd:string" /> + </xsd:complexType> + </xsd:element> + <xsd:element name="data"> + <xsd:complexType> + <xsd:sequence> + <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" /> + <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" /> + </xsd:sequence> + <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" /> + <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" /> + <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" /> + <xsd:attribute ref="xml:space" /> + </xsd:complexType> + </xsd:element> + <xsd:element name="resheader"> + <xsd:complexType> + <xsd:sequence> + <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" /> + </xsd:sequence> + <xsd:attribute name="name" type="xsd:string" use="required" /> + </xsd:complexType> + </xsd:element> + </xsd:choice> + </xsd:complexType> + </xsd:element> + </xsd:schema> + <resheader name="resmimetype"> + <value>text/microsoft-resx</value> + </resheader> + <resheader name="version"> + <value>2.0</value> + </resheader> + <resheader name="reader"> + <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> + </resheader> + <resheader name="writer"> + <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> + </resheader> +</root> \ No newline at end of file diff --git a/src/xtm/Properties/Settings.Designer.cs b/src/xtm/Properties/Settings.Designer.cs new file mode 100644 index 00000000..35939b71 --- /dev/null +++ b/src/xtm/Properties/Settings.Designer.cs @@ -0,0 +1,26 @@ +//------------------------------------------------------------------------------ +// <auto-generated> +// This code was generated by a tool. +// Runtime Version:4.0.30319.17626 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// </auto-generated> +//------------------------------------------------------------------------------ + +namespace thememan.Properties { + + + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "10.0.0.0")] + internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase { + + private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); + + public static Settings Default { + get { + return defaultInstance; + } + } + } +} diff --git a/src/xtm/Properties/Settings.settings b/src/xtm/Properties/Settings.settings new file mode 100644 index 00000000..39645652 --- /dev/null +++ b/src/xtm/Properties/Settings.settings @@ -0,0 +1,7 @@ +<?xml version='1.0' encoding='utf-8'?> +<SettingsFile xmlns="http://schemas.microsoft.com/VisualStudio/2004/01/settings" CurrentProfile="(Default)"> + <Profiles> + <Profile Name="(Default)" /> + </Profiles> + <Settings /> +</SettingsFile> diff --git a/src/xtm/README.md b/src/xtm/README.md new file mode 100644 index 00000000..7f837263 --- /dev/null +++ b/src/xtm/README.md @@ -0,0 +1,7 @@ +xchat-theme-manager +------------------ + +- Shows previews of and can load/save themes +- Will run on windows/linux (still wip) + +![XTM Screenshot](http://puu.sh/uoZz) \ No newline at end of file diff --git a/src/xtm/Resources/xtm.ico b/src/xtm/Resources/xtm.ico new file mode 100644 index 00000000..f5cac031 --- /dev/null +++ b/src/xtm/Resources/xtm.ico Binary files differdiff --git a/src/xtm/app.config b/src/xtm/app.config new file mode 100644 index 00000000..2f7cce78 --- /dev/null +++ b/src/xtm/app.config @@ -0,0 +1,3 @@ +<?xml version="1.0"?> +<configuration> +<startup><supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0,Profile=Client"/></startup></configuration> diff --git a/src/xtm/xtm.csproj b/src/xtm/xtm.csproj new file mode 100644 index 00000000..10a9ccce --- /dev/null +++ b/src/xtm/xtm.csproj @@ -0,0 +1,163 @@ +<?xml version="1.0" encoding="utf-8"?> +<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <PropertyGroup> + <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> + <Platform Condition=" '$(Platform)' == '' ">x86</Platform> + <ProductVersion>8.0.30703</ProductVersion> + <SchemaVersion>2.0</SchemaVersion> + <ProjectGuid>{DE87FFCA-9606-4116-B747-062D88A56A28}</ProjectGuid> + <OutputType>WinExe</OutputType> + <AppDesignerFolder>Properties</AppDesignerFolder> + <RootNamespace>thememan</RootNamespace> + <AssemblyName>thememan</AssemblyName> + <FileAlignment>512</FileAlignment> + <IsWebBootstrapper>false</IsWebBootstrapper> + <TargetFrameworkVersion>v4.0</TargetFrameworkVersion> + <TargetFrameworkProfile>Client</TargetFrameworkProfile> + <PublishUrl>publish\</PublishUrl> + <Install>true</Install> + <InstallFrom>Disk</InstallFrom> + <UpdateEnabled>false</UpdateEnabled> + <UpdateMode>Foreground</UpdateMode> + <UpdateInterval>7</UpdateInterval> + <UpdateIntervalUnits>Days</UpdateIntervalUnits> + <UpdatePeriodically>false</UpdatePeriodically> + <UpdateRequired>false</UpdateRequired> + <MapFileExtensions>true</MapFileExtensions> + <AutorunEnabled>true</AutorunEnabled> + <ApplicationRevision>1</ApplicationRevision> + <ApplicationVersion>1.0.0.%2a</ApplicationVersion> + <UseApplicationTrust>false</UseApplicationTrust> + <PublishWizardCompleted>true</PublishWizardCompleted> + <BootstrapperEnabled>true</BootstrapperEnabled> + </PropertyGroup> + <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|x86' "> + <PlatformTarget>x86</PlatformTarget> + <DebugType>pdbonly</DebugType> + <Optimize>true</Optimize> + <OutputPath>..\..\win32\build\Win32\bin\</OutputPath> + <DefineConstants>TRACE</DefineConstants> + <ErrorReport>prompt</ErrorReport> + <WarningLevel>4</WarningLevel> + <CodeAnalysisIgnoreGeneratedCode>false</CodeAnalysisIgnoreGeneratedCode> + </PropertyGroup> + <PropertyGroup> + <ApplicationIcon>Resources\xtm.ico</ApplicationIcon> + </PropertyGroup> + <PropertyGroup> + <ManifestCertificateThumbprint>25412E3EF25458D894050F8209E4D9DCCDF432D7</ManifestCertificateThumbprint> + </PropertyGroup> + <PropertyGroup> + <ManifestKeyFile>xtm_TemporaryKey.pfx</ManifestKeyFile> + </PropertyGroup> + <PropertyGroup> + <GenerateManifests>false</GenerateManifests> + </PropertyGroup> + <PropertyGroup> + <SignManifests>false</SignManifests> + </PropertyGroup> + <PropertyGroup> + <TargetZone>LocalIntranet</TargetZone> + </PropertyGroup> + <PropertyGroup /> + <PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|x64'"> + <OutputPath>..\..\win32\build\x64\bin\</OutputPath> + <DefineConstants>TRACE</DefineConstants> + <Optimize>true</Optimize> + <DebugType>pdbonly</DebugType> + <PlatformTarget>x64</PlatformTarget> + <CodeAnalysisLogFile>bin\Release\thememan.exe.CodeAnalysisLog.xml</CodeAnalysisLogFile> + <CodeAnalysisUseTypeNameInSuppression>true</CodeAnalysisUseTypeNameInSuppression> + <CodeAnalysisModuleSuppressionsFile>GlobalSuppressions.cs</CodeAnalysisModuleSuppressionsFile> + <ErrorReport>prompt</ErrorReport> + <CodeAnalysisIgnoreGeneratedCode>false</CodeAnalysisIgnoreGeneratedCode> + <CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet> + <CodeAnalysisRuleSetDirectories>;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\\Rule Sets</CodeAnalysisRuleSetDirectories> + <CodeAnalysisIgnoreBuiltInRuleSets>false</CodeAnalysisIgnoreBuiltInRuleSets> + <CodeAnalysisRuleDirectories>;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\FxCop\\Rules</CodeAnalysisRuleDirectories> + <CodeAnalysisIgnoreBuiltInRules>false</CodeAnalysisIgnoreBuiltInRules> + <CodeAnalysisFailOnMissingRules>false</CodeAnalysisFailOnMissingRules> + </PropertyGroup> + <ItemGroup> + <Reference Include="Microsoft.VisualBasic" /> + <Reference Include="System" /> + <Reference Include="System.Core" /> + <Reference Include="System.Xml.Linq" /> + <Reference Include="System.Data.DataSetExtensions" /> + <Reference Include="Microsoft.CSharp" /> + <Reference Include="System.Data" /> + <Reference Include="System.Deployment" /> + <Reference Include="System.Drawing" /> + <Reference Include="System.Windows.Forms" /> + <Reference Include="System.Xml" /> + <Reference Include="WindowsBase" /> + </ItemGroup> + <ItemGroup> + <Compile Include="Main.cs"> + <SubType>Form</SubType> + </Compile> + <Compile Include="Main.Designer.cs"> + <DependentUpon>Main.cs</DependentUpon> + </Compile> + <Compile Include="Program.cs" /> + <Compile Include="Properties\AssemblyInfo.cs" /> + <EmbeddedResource Include="Main.resx"> + <DependentUpon>Main.cs</DependentUpon> + </EmbeddedResource> + <EmbeddedResource Include="Properties\Resources.resx"> + <Generator>ResXFileCodeGenerator</Generator> + <LastGenOutput>Resources.Designer.cs</LastGenOutput> + <SubType>Designer</SubType> + </EmbeddedResource> + <Compile Include="Properties\Resources.Designer.cs"> + <AutoGen>True</AutoGen> + <DependentUpon>Resources.resx</DependentUpon> + <DesignTime>True</DesignTime> + </Compile> + <None Include="app.config"> + <SubType>Designer</SubType> + </None> + <None Include="Properties\Settings.settings"> + <Generator>SettingsSingleFileGenerator</Generator> + <LastGenOutput>Settings.Designer.cs</LastGenOutput> + </None> + <Compile Include="Properties\Settings.Designer.cs"> + <AutoGen>True</AutoGen> + <DependentUpon>Settings.settings</DependentUpon> + <DesignTimeSharedInput>True</DesignTimeSharedInput> + </Compile> + </ItemGroup> + <ItemGroup> + <BootstrapperPackage Include=".NETFramework,Version=v4.0,Profile=Client"> + <Visible>False</Visible> + <ProductName>Microsoft .NET Framework 4 Client Profile %28x86 and x64%29</ProductName> + <Install>true</Install> + </BootstrapperPackage> + <BootstrapperPackage Include="Microsoft.Net.Client.3.5"> + <Visible>False</Visible> + <ProductName>.NET Framework 3.5 SP1 Client Profile</ProductName> + <Install>false</Install> + </BootstrapperPackage> + <BootstrapperPackage Include="Microsoft.Net.Framework.3.5.SP1"> + <Visible>False</Visible> + <ProductName>.NET Framework 3.5 SP1</ProductName> + <Install>false</Install> + </BootstrapperPackage> + <BootstrapperPackage Include="Microsoft.Windows.Installer.3.1"> + <Visible>False</Visible> + <ProductName>Windows Installer 3.1</ProductName> + <Install>true</Install> + </BootstrapperPackage> + </ItemGroup> + <ItemGroup> + <Content Include="Resources\xtm.ico" /> + </ItemGroup> + <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" /> + <!-- To modify your build process, add your task inside one of the targets below and uncomment it. + Other similar extension points exist, see Microsoft.Common.targets. + <Target Name="BeforeBuild"> + </Target> + <Target Name="AfterBuild"> + </Target> + --> +</Project> \ No newline at end of file diff --git a/src/xtm/xtm.csproj.user b/src/xtm/xtm.csproj.user new file mode 100644 index 00000000..1f4a1d77 --- /dev/null +++ b/src/xtm/xtm.csproj.user @@ -0,0 +1,13 @@ +<?xml version="1.0" encoding="utf-8"?> +<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <PropertyGroup> + <PublishUrlHistory>publish\</PublishUrlHistory> + <InstallUrlHistory /> + <SupportUrlHistory /> + <UpdateUrlHistory /> + <BootstrapperUrlHistory /> + <ErrorReportUrlHistory /> + <FallbackCulture>en-US</FallbackCulture> + <VerifyUploadedFiles>false</VerifyUploadedFiles> + </PropertyGroup> +</Project> \ No newline at end of file diff --git a/version.txt b/version.txt new file mode 100644 index 00000000..15e6c1d8 --- /dev/null +++ b/version.txt @@ -0,0 +1 @@ +1508-3 \ No newline at end of file diff --git a/win32/copy/copy.vcxproj b/win32/copy/copy.vcxproj new file mode 100644 index 00000000..7a3cf9d9 --- /dev/null +++ b/win32/copy/copy.vcxproj @@ -0,0 +1,230 @@ +<?xml version="1.0" encoding="utf-8"?> +<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <ItemGroup Label="ProjectConfigurations"> + <ProjectConfiguration Include="Release|Win32"> + <Configuration>Release</Configuration> + <Platform>Win32</Platform> + </ProjectConfiguration> + <ProjectConfiguration Include="Release|x64"> + <Configuration>Release</Configuration> + <Platform>x64</Platform> + </ProjectConfiguration> + </ItemGroup> + <PropertyGroup Label="Globals"> + <ProjectGuid>{C9B735E4-75BC-45AC-A5E3-39A6D076F912}</ProjectGuid> + <RootNamespace>copy</RootNamespace> + </PropertyGroup> + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" /> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration"> + <ConfigurationType>Application</ConfigurationType> + <UseDebugLibraries>false</UseDebugLibraries> + <WholeProgramOptimization>true</WholeProgramOptimization> + <CharacterSet>MultiByte</CharacterSet> + <PlatformToolset>WDK7</PlatformToolset> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration"> + <ConfigurationType>Application</ConfigurationType> + <UseDebugLibraries>false</UseDebugLibraries> + <WholeProgramOptimization>true</WholeProgramOptimization> + <CharacterSet>MultiByte</CharacterSet> + <PlatformToolset>WDK7</PlatformToolset> + </PropertyGroup> + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" /> + <ImportGroup Label="ExtensionSettings"> + </ImportGroup> + <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> + <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> + <Import Project="..\xchat.props" /> + </ImportGroup> + <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets"> + <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> + <Import Project="..\xchat.props" /> + </ImportGroup> + <PropertyGroup Label="UserMacros" /> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> + <OutDir>$(SolutionDir)build\$(PlatformName)\bin</OutDir> + <IntDir>$(SolutionDir)build\$(PlatformName)\obj\$(ProjectName)</IntDir> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'"> + <OutDir>$(SolutionDir)build\$(PlatformName)\bin</OutDir> + <IntDir>$(SolutionDir)build\$(PlatformName)\obj\$(ProjectName)</IntDir> + </PropertyGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> + <ClCompile> + <WarningLevel>Level3</WarningLevel> + <Optimization>MaxSpeed</Optimization> + <FunctionLevelLinking>true</FunctionLevelLinking> + <IntrinsicFunctions>true</IntrinsicFunctions> + </ClCompile> + <Link> + <GenerateDebugInformation>true</GenerateDebugInformation> + <EnableCOMDATFolding>true</EnableCOMDATFolding> + <OptimizeReferences>true</OptimizeReferences> + </Link> + <PreBuildEvent> + <Command>rmdir /q /s "$(XChatDest)" +mkdir "$(XChatDest)" +echo 2> portable-mode +move portable-mode "$(XChatDest)" +copy "$(OutDir)\xchat.exe" "$(XChatDest)" +copy "$(OutDir)\xchat-text.exe" "$(XChatDest)" +copy "$(OutDir)\thememan.exe" "$(XChatDest)" +copy "$(DepsRoot)\bin\libatk-1.0-0.dll" "$(XChatDest)" +copy "$(DepsRoot)\bin\libcairo-2.dll" "$(XChatDest)" +copy "$(DepsRoot)\bin\libexpat-1.dll" "$(XChatDest)" +copy "$(DepsRoot)\bin\libfontconfig-1.dll" "$(XChatDest)" +copy "$(DepsRoot)\bin\freetype6.dll" "$(XChatDest)" +copy "$(DepsRoot)\bin\libgdk_pixbuf-2.0-0.dll" "$(XChatDest)" +copy "$(DepsRoot)\bin\libgdk-win32-2.0-0.dll" "$(XChatDest)" +copy "$(DepsRoot)\bin\libgio-2.0-0.dll" "$(XChatDest)" +copy "$(DepsRoot)\bin\libglib-2.0-0.dll" "$(XChatDest)" +copy "$(DepsRoot)\bin\libgmodule-2.0-0.dll" "$(XChatDest)" +copy "$(DepsRoot)\bin\libgobject-2.0-0.dll" "$(XChatDest) +copy "$(DepsRoot)\bin\libgthread-2.0-0.dll" "$(XChatDest)" +copy "$(DepsRoot)\bin\libgtk-win32-2.0-0.dll" "$(XChatDest)" +copy "$(DepsRoot)\bin\intl.dll" "$(XChatDest)" +copy "$(DepsRoot)\bin\libpango-1.0-0.dll" "$(XChatDest)" +copy "$(DepsRoot)\bin\libpangocairo-1.0-0.dll" "$(XChatDest)" +copy "$(DepsRoot)\bin\libpangoft2-1.0-0.dll" "$(XChatDest)" +copy "$(DepsRoot)\bin\libpangowin32-1.0-0.dll" "$(XChatDest)" +copy "$(DepsRoot)\bin\libpng14-14.dll" "$(XChatDest)" +copy "$(DepsRoot)\bin\libxml2.dll" "$(XChatDest)" +xcopy /q /s /i "$(DepsRoot)\lib\gtk-2.0\2.10.0\engines" "$(XChatDest)\lib\gtk-2.0\2.10.0\engines" +xcopy /q /s /i "$(DepsRoot)\lib\gtk-2.0\modules\libgail.dll" "$(XChatDest)\lib\gtk-2.0\modules\" +xcopy /q /s /i etc "$(XChatDest)\etc" +xcopy /q /s /i share "$(XChatDest)\share" +copy "..\..\COPYING" "$(XChatDest)" +copy "$(DepsRoot)\LICENSE.OPENSSL" "$(XChatDest)" +copy "$(DepsRoot)\LICENSE.ZLIB" "$(XChatDest)" +copy "$(DepsRoot)\share\gettext\intl\COPYING.LIB-2.0" "$(XChatDest)\LICENSE.GTK" +copy "$(DepsRoot)\share\gettext\intl\COPYING.LIB-2.1" "$(XChatDest)\LICENSE.CAIRO" +copy "$(DepsRoot)\LICENSE.LUA" "$(XChatDest)" +copy "$(DepsRoot)\LICENSE.ENCHANT" "$(XChatDest)" +copy "$(DepsRoot)\LICENSE.LIBXML" "$(XChatDest)" +copy "$(DepsRoot)\bin\libeay32.dll" "$(XChatDest)" +copy "$(DepsRoot)\bin\ssleay32.dll" "$(XChatDest)" +copy "$(DepsRoot)\bin\zlib1.dll" "$(XChatDest)" +copy "$(DepsRoot)\bin\cert.pem" "$(XChatDest)" +copy "$(DepsRoot)\bin\libenchant.dll" "$(XChatDest)" +xcopy /q /s /i "$(DepsRoot)\lib\enchant\libenchant_myspell.dll" "$(XChatDest)\lib\enchant\" +xcopy /q /s /i "$(OutDir)xcchecksum.dll" "$(XChatDest)\plugins\" +copy "$(OutDir)\xcdns.dll" "$(XChatDest)\plugins" +copy "$(OutDir)\xcdoat.dll" "$(XChatDest)\plugins" +copy "$(OutDir)\xcexec.dll" "$(XChatDest)\plugins" +copy "$(OutDir)\xcfishlim.dll" "$(XChatDest)\plugins" +copy "$(OutDir)\xclua.dll" "$(XChatDest)\plugins" +copy "$(OutDir)\xcmpcinfo.dll" "$(XChatDest)\plugins" +copy "$(OutDir)\xcperl-512.dll" "$(XChatDest)\plugins" +copy "$(OutDir)\xcperl-514.dll" "$(XChatDest)\plugins" +copy "$(OutDir)\xcperl-516.dll" "$(XChatDest)\plugins" +copy "$(OutDir)\xcpython.dll" "$(XChatDest)\plugins" +copy "$(OutDir)\xctcl.dll" "$(XChatDest)\plugins" +copy "$(OutDir)\xcupd.dll" "$(XChatDest)\plugins" +copy "$(OutDir)\xcxsasl.dll" "$(XChatDest)\plugins" +copy "$(OutDir)\xtray.dll" "$(XChatDest)\plugins" +copy "$(OutDir)\xcwinamp.dll" "$(XChatDest)\plugins" +copy "$(OutDir)\xcwinsys.dll" "$(XChatDest)\plugins" +copy "$(OutDir)\xcwmpa.dll" "$(XChatDest)\plugins" +copy "$(DepsRoot)\bin\lua51.dll" "$(XChatDest)" +xcopy /q /s /i "$(OutDir)\locale" "$(XChatDest)\locale" +xcopy /q /s /i "$(DepsRoot)\share\locale" "$(XChatDest)\share\locale" +copy "$(ProgramFiles)\Codejock Software\ISSkin\ISSkinU.dll" "$(XChatDest)" +copy "..\installer\watercolorlite-green.cjstyles" "$(XChatDest)"</Command> + </PreBuildEvent> + </ItemDefinitionGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'"> + <ClCompile> + <WarningLevel>Level3</WarningLevel> + <Optimization>MaxSpeed</Optimization> + <FunctionLevelLinking>true</FunctionLevelLinking> + <IntrinsicFunctions>true</IntrinsicFunctions> + </ClCompile> + <Link> + <GenerateDebugInformation>true</GenerateDebugInformation> + <EnableCOMDATFolding>true</EnableCOMDATFolding> + <OptimizeReferences>true</OptimizeReferences> + </Link> + <PreBuildEvent> + <Command>rmdir /q /s "$(XChatDest)" +mkdir "$(XChatDest)" +echo 2> portable-mode +move portable-mode "$(XChatDest)" +copy "$(OutDir)\xchat.exe" "$(XChatDest)" +copy "$(OutDir)\xchat-text.exe" "$(XChatDest)" +copy "$(OutDir)\thememan.exe" "$(XChatDest)" +copy "$(DepsRoot)\bin\libatk-1.0-0.dll" "$(XChatDest)" +copy "$(DepsRoot)\bin\libcairo-2.dll" "$(XChatDest)" +copy "$(DepsRoot)\bin\libexpat-1.dll" "$(XChatDest)" +copy "$(DepsRoot)\bin\libfontconfig-1.dll" "$(XChatDest)" +copy "$(DepsRoot)\bin\libfreetype-6.dll" "$(XChatDest)" +copy "$(DepsRoot)\bin\libgdk_pixbuf-2.0-0.dll" "$(XChatDest)" +copy "$(DepsRoot)\bin\libgdk-win32-2.0-0.dll" "$(XChatDest)" +copy "$(DepsRoot)\bin\libgio-2.0-0.dll" "$(XChatDest)" +copy "$(DepsRoot)\bin\libglib-2.0-0.dll" "$(XChatDest)" +copy "$(DepsRoot)\bin\libgmodule-2.0-0.dll" "$(XChatDest)" +copy "$(DepsRoot)\bin\libgobject-2.0-0.dll" "$(XChatDest) +copy "$(DepsRoot)\bin\libgthread-2.0-0.dll" "$(XChatDest)" +copy "$(DepsRoot)\bin\libgtk-win32-2.0-0.dll" "$(XChatDest)" +copy "$(DepsRoot)\bin\libintl-8.dll" "$(XChatDest)" +copy "$(DepsRoot)\bin\libpango-1.0-0.dll" "$(XChatDest)" +copy "$(DepsRoot)\bin\libpangocairo-1.0-0.dll" "$(XChatDest)" +copy "$(DepsRoot)\bin\libpangoft2-1.0-0.dll" "$(XChatDest)" +copy "$(DepsRoot)\bin\libpangowin32-1.0-0.dll" "$(XChatDest)" +copy "$(DepsRoot)\bin\libpng14-14.dll" "$(XChatDest)" +copy "$(DepsRoot)\bin\libxml2.dll" "$(XChatDest)" +xcopy /q /s /i "$(DepsRoot)\lib\gtk-2.0\2.10.0\engines" "$(XChatDest)\lib\gtk-2.0\2.10.0\engines" +xcopy /q /s /i "$(DepsRoot)\lib\gtk-2.0\modules\libgail.dll" "$(XChatDest)\lib\gtk-2.0\modules\" +xcopy /q /s /i etc "$(XChatDest)\etc" +xcopy /q /s /i share "$(XChatDest)\share" +copy "..\..\COPYING" "$(XChatDest)" +copy "$(DepsRoot)\LICENSE.OPENSSL" "$(XChatDest)" +copy "$(DepsRoot)\LICENSE.ZLIB" "$(XChatDest)" +copy "$(DepsRoot)\share\gettext\intl\COPYING.LIB-2.0" "$(XChatDest)\LICENSE.GTK" +copy "$(DepsRoot)\share\gettext\intl\COPYING.LIB-2.1" "$(XChatDest)\LICENSE.CAIRO" +copy "$(DepsRoot)\LICENSE.LUA" "$(XChatDest)" +copy "$(DepsRoot)\LICENSE.ENCHANT" "$(XChatDest)" +copy "$(DepsRoot)\LICENSE.LIBXML" "$(XChatDest)" +copy "$(DepsRoot)\bin\libeay32.dll" "$(XChatDest)" +copy "$(DepsRoot)\bin\ssleay32.dll" "$(XChatDest)" +copy "$(DepsRoot)\bin\zlib1.dll" "$(XChatDest)" +copy "$(DepsRoot)\bin\cert.pem" "$(XChatDest)" +copy "$(DepsRoot)\bin\libenchant.dll" "$(XChatDest)" +xcopy /q /s /i "$(DepsRoot)\lib\enchant\libenchant_myspell.dll" "$(XChatDest)\lib\enchant\" +xcopy /q /s /i "$(OutDir)xcchecksum.dll" "$(XChatDest)\plugins\" +copy "$(OutDir)\xcdns.dll" "$(XChatDest)\plugins" +copy "$(OutDir)\xcdoat.dll" "$(XChatDest)\plugins" +copy "$(OutDir)\xcexec.dll" "$(XChatDest)\plugins" +copy "$(OutDir)\xcfishlim.dll" "$(XChatDest)\plugins" +copy "$(OutDir)\xclua.dll" "$(XChatDest)\plugins" +copy "$(OutDir)\xcmpcinfo.dll" "$(XChatDest)\plugins" +copy "$(OutDir)\xcperl-512.dll" "$(XChatDest)\plugins" +copy "$(OutDir)\xcperl-514.dll" "$(XChatDest)\plugins" +copy "$(OutDir)\xcperl-516.dll" "$(XChatDest)\plugins" +copy "$(OutDir)\xcpython.dll" "$(XChatDest)\plugins" +copy "$(OutDir)\xctcl.dll" "$(XChatDest)\plugins" +copy "$(OutDir)\xcupd.dll" "$(XChatDest)\plugins" +copy "$(OutDir)\xcxsasl.dll" "$(XChatDest)\plugins" +copy "$(OutDir)\xtray.dll" "$(XChatDest)\plugins" +copy "$(OutDir)\xcwinamp.dll" "$(XChatDest)\plugins" +copy "$(OutDir)\xcwinsys.dll" "$(XChatDest)\plugins" +copy "$(OutDir)\xcwmpa.dll" "$(XChatDest)\plugins" +copy "$(DepsRoot)\bin\lua51.dll" "$(XChatDest)" +xcopy /q /s /i "$(OutDir)\locale" "$(XChatDest)\locale" +xcopy /q /s /i "$(DepsRoot)\share\locale" "$(XChatDest)\share\locale" +copy "$(ProgramFiles)\Codejock Software\ISSkin\ISSkinU.dll" "$(XChatDest)" +copy "..\installer\watercolorlite-blue.cjstyles" "$(XChatDest)"</Command> + </PreBuildEvent> + </ItemDefinitionGroup> + <ItemGroup> + <None Include="etc\download.png" /> + <None Include="etc\gtk-2.0\gtkrc" /> + <None Include="etc\gtkpref.png" /> + <None Include="etc\music.png" /> + <None Include="etc\system.png" /> + <None Include="share\xml\iso-codes\iso_3166.xml" /> + <None Include="share\xml\iso-codes\iso_639.xml" /> + </ItemGroup> + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" /> + <ImportGroup Label="ExtensionTargets"> + </ImportGroup> +</Project> \ No newline at end of file diff --git a/win32/copy/copy.vcxproj.filters b/win32/copy/copy.vcxproj.filters new file mode 100644 index 00000000..f832474d --- /dev/null +++ b/win32/copy/copy.vcxproj.filters @@ -0,0 +1,46 @@ +<?xml version="1.0" encoding="utf-8"?> +<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <ItemGroup> + <Filter Include="Resource Files"> + <UniqueIdentifier>{e02a8c67-767c-4c6e-a854-81fae08cf4da}</UniqueIdentifier> + </Filter> + <Filter Include="Resource Files\etc"> + <UniqueIdentifier>{503881c0-011d-443b-a373-4bfe125dcfa6}</UniqueIdentifier> + </Filter> + <Filter Include="Resource Files\share"> + <UniqueIdentifier>{4316433a-2a8e-48f7-9020-e1f4de0d23d1}</UniqueIdentifier> + </Filter> + <Filter Include="Resource Files\etc\gtk-2.0"> + <UniqueIdentifier>{832ebebc-ab71-4bf6-9f3a-02ec748f7c14}</UniqueIdentifier> + </Filter> + <Filter Include="Resource Files\share\xml"> + <UniqueIdentifier>{9a881586-aed2-4f80-ba84-e521e6785566}</UniqueIdentifier> + </Filter> + <Filter Include="Resource Files\share\xml\iso-codes"> + <UniqueIdentifier>{c825f724-0618-4160-97b7-12d6e0f2bc7b}</UniqueIdentifier> + </Filter> + </ItemGroup> + <ItemGroup> + <None Include="etc\download.png"> + <Filter>Resource Files\etc</Filter> + </None> + <None Include="etc\gtkpref.png"> + <Filter>Resource Files\etc</Filter> + </None> + <None Include="etc\music.png"> + <Filter>Resource Files\etc</Filter> + </None> + <None Include="etc\system.png"> + <Filter>Resource Files\etc</Filter> + </None> + <None Include="etc\gtk-2.0\gtkrc"> + <Filter>Resource Files\etc\gtk-2.0</Filter> + </None> + <None Include="share\xml\iso-codes\iso_639.xml"> + <Filter>Resource Files\share\xml\iso-codes</Filter> + </None> + <None Include="share\xml\iso-codes\iso_3166.xml"> + <Filter>Resource Files\share\xml\iso-codes</Filter> + </None> + </ItemGroup> +</Project> \ No newline at end of file diff --git a/win32/copy/copy.vcxproj.user b/win32/copy/copy.vcxproj.user new file mode 100644 index 00000000..695b5c78 --- /dev/null +++ b/win32/copy/copy.vcxproj.user @@ -0,0 +1,3 @@ +<?xml version="1.0" encoding="utf-8"?> +<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> +</Project> \ No newline at end of file diff --git a/win32/copy/etc/download.png b/win32/copy/etc/download.png new file mode 100644 index 00000000..43253432 --- /dev/null +++ b/win32/copy/etc/download.png Binary files differdiff --git a/win32/copy/etc/gtk-2.0/gtkrc b/win32/copy/etc/gtk-2.0/gtkrc new file mode 100644 index 00000000..6ac7b76c --- /dev/null +++ b/win32/copy/etc/gtk-2.0/gtkrc @@ -0,0 +1,71 @@ +gtk-font-name = "sans 8" + +gtk-icon-sizes = "gtk-menu=13,13:gtk-small-toolbar=16,16:gtk-large-toolbar=24,24:gtk-dnd=32,32" +gtk-toolbar-icon-size = small-toolbar + +# disable images in buttons. i've only seen ugly delphi apps use this feature. +gtk-button-images = 0 + +# enable/disable images in menus. most "stock" microsoft apps don't use these, except sparingly. +# the office apps use them heavily, though. +gtk-menu-images = 1 + +# use the win32 button ordering instead of the GNOME HIG one, where applicable +gtk-alternative-button-order = 1 + +# use the win32 sort indicators direction, as in Explorer +gtk-alternative-sort-arrows = 1 + +# Windows users don't expect the PC Speaker beeping at them when they backspace in an empty textview and stuff like that +gtk-error-bell = 0 + +# hide mnemonic underlines until the Alt key is pressed (requires gtk 2.18+) +# gtk-auto-mnemonics = 1 + +style "msw-default" +{ + GtkWidget::interior-focus = 1 + GtkOptionMenu::indicator-size = { 9, 5 } + GtkOptionMenu::indicator-spacing = { 7, 5, 2, 2 } + GtkSpinButton::shadow-type = in + + # Owen and I disagree that these should be themable + #GtkUIManager::add-tearoffs = 0 + #GtkComboBox::add-tearoffs = 0 + + GtkComboBox::appears-as-list = 1 + GtkComboBox::focus-on-click = 0 + + GOComboBox::add_tearoffs = 0 + + GtkTreeView::allow-rules = 0 + GtkTreeView::expander-size = 12 + + GtkExpander::expander-size = 12 + + GtkScrolledWindow::scrollbar_spacing = 1 + + GtkSeparatorMenuItem::horizontal-padding = 2 + + engine "wimp" + { + } +} +class "*" style "msw-default" + +binding "ms-windows-tree-view" +{ + bind "Right" { "expand-collapse-cursor-row" (1,1,0) } + bind "Left" { "expand-collapse-cursor-row" (1,0,0) } +} + +class "GtkTreeView" binding "ms-windows-tree-view" + +style "msw-combobox-thickness" = "msw-default" +{ + xthickness = 0 + ythickness = 0 +} + +widget_class "*TreeView*ComboBox*" style "msw-combobox-thickness" +widget_class "*ComboBox*GtkFrame*" style "msw-combobox-thickness" diff --git a/win32/copy/etc/gtkpref.png b/win32/copy/etc/gtkpref.png new file mode 100644 index 00000000..9a6c9cf9 --- /dev/null +++ b/win32/copy/etc/gtkpref.png Binary files differdiff --git a/win32/copy/etc/music.png b/win32/copy/etc/music.png new file mode 100644 index 00000000..3a72f118 --- /dev/null +++ b/win32/copy/etc/music.png Binary files differdiff --git a/win32/copy/etc/system.png b/win32/copy/etc/system.png new file mode 100644 index 00000000..fc4282c7 --- /dev/null +++ b/win32/copy/etc/system.png Binary files differdiff --git a/win32/copy/share/xml/iso-codes/iso_3166.xml b/win32/copy/share/xml/iso-codes/iso_3166.xml new file mode 100644 index 00000000..77c72eb2 --- /dev/null +++ b/win32/copy/share/xml/iso-codes/iso_3166.xml @@ -0,0 +1,1703 @@ +<?xml version="1.0" encoding="UTF-8" ?> + +<!-- +This file gives a list of all countries in the ISO 3166 +standard, and is used to provide translations via gettext + +Copyright (C) 2002, 2004, 2006 Alastair McKinstry <mckinstry@computer.org> +Copyright (C) 2004 Andreas Jochens <aj@andaco.de> +Copyright (C) 2004, 2007 Christian Perrier <bubulle@debian.org> +Copyright (C) 2005, 2006, 2007 Tobias Quathamer <toddy@debian.org> + + This file is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + This file is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with this file; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + +Source: <http://www.iso.org/iso/country_codes> +--> + +<!DOCTYPE iso_3166_entries [ + <!ELEMENT iso_3166_entries (iso_3166_entry+, iso_3166_3_entry*)> + <!ELEMENT iso_3166_entry EMPTY> + <!ATTLIST iso_3166_entry + alpha_2_code CDATA #REQUIRED + alpha_3_code CDATA #REQUIRED + numeric_code CDATA #REQUIRED + common_name CDATA #IMPLIED + name CDATA #REQUIRED + official_name CDATA #IMPLIED + > + <!ELEMENT iso_3166_3_entry EMPTY> + <!ATTLIST iso_3166_3_entry + alpha_4_code CDATA #REQUIRED + alpha_3_code CDATA #REQUIRED + numeric_code CDATA #IMPLIED + date_withdrawn CDATA #IMPLIED + names CDATA #REQUIRED + comment CDATA #IMPLIED + > +]> + +<iso_3166_entries> + <iso_3166_entry + alpha_2_code="AF" + alpha_3_code="AFG" + numeric_code="004" + name="Afghanistan" + official_name="Islamic Republic of Afghanistan" /> + <iso_3166_entry + alpha_2_code="AX" + alpha_3_code="ALA" + numeric_code="248" + name="Åland Islands" /> + <iso_3166_entry + alpha_2_code="AL" + alpha_3_code="ALB" + numeric_code="008" + name="Albania" + official_name="Republic of Albania" /> + <iso_3166_entry + alpha_2_code="DZ" + alpha_3_code="DZA" + numeric_code="012" + name="Algeria" + official_name="People's Democratic Republic of Algeria" /> + <iso_3166_entry + alpha_2_code="AS" + alpha_3_code="ASM" + numeric_code="016" + name="American Samoa" /> + <iso_3166_entry + alpha_2_code="AD" + alpha_3_code="AND" + numeric_code="020" + name="Andorra" + official_name="Principality of Andorra" /> + <iso_3166_entry + alpha_2_code="AO" + alpha_3_code="AGO" + numeric_code="024" + name="Angola" + official_name="Republic of Angola" /> + <iso_3166_entry + alpha_2_code="AI" + alpha_3_code="AIA" + numeric_code="660" + name="Anguilla" /> + <iso_3166_entry + alpha_2_code="AQ" + alpha_3_code="ATA" + numeric_code="010" + name="Antarctica" /> + <iso_3166_entry + alpha_2_code="AG" + alpha_3_code="ATG" + numeric_code="028" + name="Antigua and Barbuda" /> + <iso_3166_entry + alpha_2_code="AR" + alpha_3_code="ARG" + numeric_code="032" + name="Argentina" + official_name="Argentine Republic" /> + <iso_3166_entry + alpha_2_code="AM" + alpha_3_code="ARM" + numeric_code="051" + name="Armenia" + official_name="Republic of Armenia" /> + <iso_3166_entry + alpha_2_code="AW" + alpha_3_code="ABW" + numeric_code="533" + name="Aruba" /> + <iso_3166_entry + alpha_2_code="AU" + alpha_3_code="AUS" + numeric_code="036" + name="Australia" /> + <iso_3166_entry + alpha_2_code="AT" + alpha_3_code="AUT" + numeric_code="040" + name="Austria" + official_name="Republic of Austria" /> + <iso_3166_entry + alpha_2_code="AZ" + alpha_3_code="AZE" + numeric_code="031" + name="Azerbaijan" + official_name="Republic of Azerbaijan" /> + <iso_3166_entry + alpha_2_code="BS" + alpha_3_code="BHS" + numeric_code="044" + name="Bahamas" + official_name="Commonwealth of the Bahamas" /> + <iso_3166_entry + alpha_2_code="BH" + alpha_3_code="BHR" + numeric_code="048" + name="Bahrain" + official_name="Kingdom of Bahrain" /> + <iso_3166_entry + alpha_2_code="BD" + alpha_3_code="BGD" + numeric_code="050" + name="Bangladesh" + official_name="People's Republic of Bangladesh" /> + <iso_3166_entry + alpha_2_code="BB" + alpha_3_code="BRB" + numeric_code="052" + name="Barbados" /> + <iso_3166_entry + alpha_2_code="BY" + alpha_3_code="BLR" + numeric_code="112" + name="Belarus" + official_name="Republic of Belarus" /> + <iso_3166_entry + alpha_2_code="BE" + alpha_3_code="BEL" + numeric_code="056" + name="Belgium" + official_name="Kingdom of Belgium" /> + <iso_3166_entry + alpha_2_code="BZ" + alpha_3_code="BLZ" + numeric_code="084" + name="Belize" /> + <iso_3166_entry + alpha_2_code="BJ" + alpha_3_code="BEN" + numeric_code="204" + name="Benin" + official_name="Republic of Benin" /> + <iso_3166_entry + alpha_2_code="BM" + alpha_3_code="BMU" + numeric_code="060" + name="Bermuda" /> + <iso_3166_entry + alpha_2_code="BT" + alpha_3_code="BTN" + numeric_code="064" + name="Bhutan" + official_name="Kingdom of Bhutan" /> + <iso_3166_entry + alpha_2_code="BO" + alpha_3_code="BOL" + numeric_code="068" + common_name="Bolivia" + name="Bolivia, Plurinational State of" + official_name="Plurinational State of Bolivia" /> + <iso_3166_entry + alpha_2_code="BQ" + alpha_3_code="BES" + numeric_code="535" + name="Bonaire, Sint Eustatius and Saba" + official_name="Bonaire, Sint Eustatius and Saba" /> + <iso_3166_entry + alpha_2_code="BA" + alpha_3_code="BIH" + numeric_code="070" + name="Bosnia and Herzegovina" + official_name="Republic of Bosnia and Herzegovina" /> + <iso_3166_entry + alpha_2_code="BW" + alpha_3_code="BWA" + numeric_code="072" + name="Botswana" + official_name="Republic of Botswana" /> + <iso_3166_entry + alpha_2_code="BV" + alpha_3_code="BVT" + numeric_code="074" + name="Bouvet Island" /> + <iso_3166_entry + alpha_2_code="BR" + alpha_3_code="BRA" + numeric_code="076" + name="Brazil" + official_name="Federative Republic of Brazil" /> + <iso_3166_entry + alpha_2_code="IO" + alpha_3_code="IOT" + numeric_code="086" + name="British Indian Ocean Territory" /> + <iso_3166_entry + alpha_2_code="BN" + alpha_3_code="BRN" + numeric_code="096" + name="Brunei Darussalam" /> + <iso_3166_entry + alpha_2_code="BG" + alpha_3_code="BGR" + numeric_code="100" + name="Bulgaria" + official_name="Republic of Bulgaria" /> + <iso_3166_entry + alpha_2_code="BF" + alpha_3_code="BFA" + numeric_code="854" + name="Burkina Faso" /> + <iso_3166_entry + alpha_2_code="BI" + alpha_3_code="BDI" + numeric_code="108" + name="Burundi" + official_name="Republic of Burundi" /> + <iso_3166_entry + alpha_2_code="KH" + alpha_3_code="KHM" + numeric_code="116" + name="Cambodia" + official_name="Kingdom of Cambodia" /> + <iso_3166_entry + alpha_2_code="CM" + alpha_3_code="CMR" + numeric_code="120" + name="Cameroon" + official_name="Republic of Cameroon" /> + <iso_3166_entry + alpha_2_code="CA" + alpha_3_code="CAN" + numeric_code="124" + name="Canada" /> + <iso_3166_entry + alpha_2_code="CV" + alpha_3_code="CPV" + numeric_code="132" + name="Cape Verde" + official_name="Republic of Cape Verde" /> + <iso_3166_entry + alpha_2_code="KY" + alpha_3_code="CYM" + numeric_code="136" + name="Cayman Islands" /> + <iso_3166_entry + alpha_2_code="CF" + alpha_3_code="CAF" + numeric_code="140" + name="Central African Republic" /> + <iso_3166_entry + alpha_2_code="TD" + alpha_3_code="TCD" + numeric_code="148" + name="Chad" + official_name="Republic of Chad" /> + <iso_3166_entry + alpha_2_code="CL" + alpha_3_code="CHL" + numeric_code="152" + name="Chile" + official_name="Republic of Chile" /> + <iso_3166_entry + alpha_2_code="CN" + alpha_3_code="CHN" + numeric_code="156" + name="China" + official_name="People's Republic of China" /> + <iso_3166_entry + alpha_2_code="CX" + alpha_3_code="CXR" + numeric_code="162" + name="Christmas Island" /> + <iso_3166_entry + alpha_2_code="CC" + alpha_3_code="CCK" + numeric_code="166" + name="Cocos (Keeling) Islands" /> + <iso_3166_entry + alpha_2_code="CO" + alpha_3_code="COL" + numeric_code="170" + name="Colombia" + official_name="Republic of Colombia" /> + <iso_3166_entry + alpha_2_code="KM" + alpha_3_code="COM" + numeric_code="174" + name="Comoros" + official_name="Union of the Comoros" /> + <iso_3166_entry + alpha_2_code="CG" + alpha_3_code="COG" + numeric_code="178" + name="Congo" + official_name="Republic of the Congo" /> + <iso_3166_entry + alpha_2_code="CD" + alpha_3_code="COD" + numeric_code="180" + name="Congo, The Democratic Republic of the" /> + <iso_3166_entry + alpha_2_code="CK" + alpha_3_code="COK" + numeric_code="184" + name="Cook Islands" /> + <iso_3166_entry + alpha_2_code="CR" + alpha_3_code="CRI" + numeric_code="188" + name="Costa Rica" + official_name="Republic of Costa Rica" /> + <iso_3166_entry + alpha_2_code="CI" + alpha_3_code="CIV" + numeric_code="384" + name="Côte d'Ivoire" + official_name="Republic of Côte d'Ivoire" /> + <iso_3166_entry + alpha_2_code="HR" + alpha_3_code="HRV" + numeric_code="191" + name="Croatia" + official_name="Republic of Croatia" /> + <iso_3166_entry + alpha_2_code="CU" + alpha_3_code="CUB" + numeric_code="192" + name="Cuba" + official_name="Republic of Cuba" /> + <iso_3166_entry + alpha_2_code="CW" + alpha_3_code="CUW" + numeric_code="531" + name="Curaçao" + official_name="Curaçao" /> + <iso_3166_entry + alpha_2_code="CY" + alpha_3_code="CYP" + numeric_code="196" + name="Cyprus" + official_name="Republic of Cyprus" /> + <iso_3166_entry + alpha_2_code="CZ" + alpha_3_code="CZE" + numeric_code="203" + name="Czech Republic" /> + <iso_3166_entry + alpha_2_code="DK" + alpha_3_code="DNK" + numeric_code="208" + name="Denmark" + official_name="Kingdom of Denmark" /> + <iso_3166_entry + alpha_2_code="DJ" + alpha_3_code="DJI" + numeric_code="262" + name="Djibouti" + official_name="Republic of Djibouti" /> + <iso_3166_entry + alpha_2_code="DM" + alpha_3_code="DMA" + numeric_code="212" + name="Dominica" + official_name="Commonwealth of Dominica" /> + <iso_3166_entry + alpha_2_code="DO" + alpha_3_code="DOM" + numeric_code="214" + name="Dominican Republic" /> + <iso_3166_entry + alpha_2_code="EC" + alpha_3_code="ECU" + numeric_code="218" + name="Ecuador" + official_name="Republic of Ecuador" /> + <iso_3166_entry + alpha_2_code="EG" + alpha_3_code="EGY" + numeric_code="818" + name="Egypt" + official_name="Arab Republic of Egypt" /> + <iso_3166_entry + alpha_2_code="SV" + alpha_3_code="SLV" + numeric_code="222" + name="El Salvador" + official_name="Republic of El Salvador" /> + <iso_3166_entry + alpha_2_code="GQ" + alpha_3_code="GNQ" + numeric_code="226" + name="Equatorial Guinea" + official_name="Republic of Equatorial Guinea" /> + <iso_3166_entry + alpha_2_code="ER" + alpha_3_code="ERI" + numeric_code="232" + name="Eritrea" /> + <iso_3166_entry + alpha_2_code="EE" + alpha_3_code="EST" + numeric_code="233" + name="Estonia" + official_name="Republic of Estonia" /> + <iso_3166_entry + alpha_2_code="ET" + alpha_3_code="ETH" + numeric_code="231" + name="Ethiopia" + official_name="Federal Democratic Republic of Ethiopia" /> + <iso_3166_entry + alpha_2_code="FK" + alpha_3_code="FLK" + numeric_code="238" + name="Falkland Islands (Malvinas)" /> + <iso_3166_entry + alpha_2_code="FO" + alpha_3_code="FRO" + numeric_code="234" + name="Faroe Islands" /> + <iso_3166_entry + alpha_2_code="FJ" + alpha_3_code="FJI" + numeric_code="242" + name="Fiji" + official_name="Republic of Fiji" /> + <iso_3166_entry + alpha_2_code="FI" + alpha_3_code="FIN" + numeric_code="246" + name="Finland" + official_name="Republic of Finland" /> + <iso_3166_entry + alpha_2_code="FR" + alpha_3_code="FRA" + numeric_code="250" + name="France" + official_name="French Republic" /> + <iso_3166_entry + alpha_2_code="GF" + alpha_3_code="GUF" + numeric_code="254" + name="French Guiana" /> + <iso_3166_entry + alpha_2_code="PF" + alpha_3_code="PYF" + numeric_code="258" + name="French Polynesia" /> + <iso_3166_entry + alpha_2_code="TF" + alpha_3_code="ATF" + numeric_code="260" + name="French Southern Territories" /> + <iso_3166_entry + alpha_2_code="GA" + alpha_3_code="GAB" + numeric_code="266" + name="Gabon" + official_name="Gabonese Republic" /> + <iso_3166_entry + alpha_2_code="GM" + alpha_3_code="GMB" + numeric_code="270" + name="Gambia" + official_name="Republic of the Gambia" /> + <iso_3166_entry + alpha_2_code="GE" + alpha_3_code="GEO" + numeric_code="268" + name="Georgia" /> + <iso_3166_entry + alpha_2_code="DE" + alpha_3_code="DEU" + numeric_code="276" + name="Germany" + official_name="Federal Republic of Germany" /> + <iso_3166_entry + alpha_2_code="GH" + alpha_3_code="GHA" + numeric_code="288" + name="Ghana" + official_name="Republic of Ghana" /> + <iso_3166_entry + alpha_2_code="GI" + alpha_3_code="GIB" + numeric_code="292" + name="Gibraltar" /> + <iso_3166_entry + alpha_2_code="GR" + alpha_3_code="GRC" + numeric_code="300" + name="Greece" + official_name="Hellenic Republic" /> + <iso_3166_entry + alpha_2_code="GL" + alpha_3_code="GRL" + numeric_code="304" + name="Greenland" /> + <iso_3166_entry + alpha_2_code="GD" + alpha_3_code="GRD" + numeric_code="308" + name="Grenada" /> + <iso_3166_entry + alpha_2_code="GP" + alpha_3_code="GLP" + numeric_code="312" + name="Guadeloupe" /> + <iso_3166_entry + alpha_2_code="GU" + alpha_3_code="GUM" + numeric_code="316" + name="Guam" /> + <iso_3166_entry + alpha_2_code="GT" + alpha_3_code="GTM" + numeric_code="320" + name="Guatemala" + official_name="Republic of Guatemala" /> + <iso_3166_entry + alpha_2_code="GG" + alpha_3_code="GGY" + numeric_code="831" + name="Guernsey" /> + <iso_3166_entry + alpha_2_code="GN" + alpha_3_code="GIN" + numeric_code="324" + name="Guinea" + official_name="Republic of Guinea" /> + <iso_3166_entry + alpha_2_code="GW" + alpha_3_code="GNB" + numeric_code="624" + name="Guinea-Bissau" + official_name="Republic of Guinea-Bissau" /> + <iso_3166_entry + alpha_2_code="GY" + alpha_3_code="GUY" + numeric_code="328" + name="Guyana" + official_name="Republic of Guyana" /> + <iso_3166_entry + alpha_2_code="HT" + alpha_3_code="HTI" + numeric_code="332" + name="Haiti" + official_name="Republic of Haiti" /> + <iso_3166_entry + alpha_2_code="HM" + alpha_3_code="HMD" + numeric_code="334" + name="Heard Island and McDonald Islands" /> + <iso_3166_entry + alpha_2_code="VA" + alpha_3_code="VAT" + numeric_code="336" + name="Holy See (Vatican City State)" /> + <iso_3166_entry + alpha_2_code="HN" + alpha_3_code="HND" + numeric_code="340" + name="Honduras" + official_name="Republic of Honduras" /> + <iso_3166_entry + alpha_2_code="HK" + alpha_3_code="HKG" + numeric_code="344" + name="Hong Kong" + official_name="Hong Kong Special Administrative Region of China" /> + <iso_3166_entry + alpha_2_code="HU" + alpha_3_code="HUN" + numeric_code="348" + name="Hungary" + official_name="Republic of Hungary" /> + <iso_3166_entry + alpha_2_code="IS" + alpha_3_code="ISL" + numeric_code="352" + name="Iceland" + official_name="Republic of Iceland" /> + <iso_3166_entry + alpha_2_code="IN" + alpha_3_code="IND" + numeric_code="356" + name="India" + official_name="Republic of India" /> + <iso_3166_entry + alpha_2_code="ID" + alpha_3_code="IDN" + numeric_code="360" + name="Indonesia" + official_name="Republic of Indonesia" /> + <iso_3166_entry + alpha_2_code="IR" + alpha_3_code="IRN" + numeric_code="364" + name="Iran, Islamic Republic of" + official_name="Islamic Republic of Iran" /> + <iso_3166_entry + alpha_2_code="IQ" + alpha_3_code="IRQ" + numeric_code="368" + name="Iraq" + official_name="Republic of Iraq" /> + <iso_3166_entry + alpha_2_code="IE" + alpha_3_code="IRL" + numeric_code="372" + name="Ireland" /> + <iso_3166_entry + alpha_2_code="IM" + alpha_3_code="IMN" + numeric_code="833" + name="Isle of Man" /> + <iso_3166_entry + alpha_2_code="IL" + alpha_3_code="ISR" + numeric_code="376" + name="Israel" + official_name="State of Israel" /> + <iso_3166_entry + alpha_2_code="IT" + alpha_3_code="ITA" + numeric_code="380" + name="Italy" + official_name="Italian Republic" /> + <iso_3166_entry + alpha_2_code="JM" + alpha_3_code="JAM" + numeric_code="388" + name="Jamaica" /> + <iso_3166_entry + alpha_2_code="JP" + alpha_3_code="JPN" + numeric_code="392" + name="Japan" /> + <iso_3166_entry + alpha_2_code="JE" + alpha_3_code="JEY" + numeric_code="832" + name="Jersey" /> + <iso_3166_entry + alpha_2_code="JO" + alpha_3_code="JOR" + numeric_code="400" + name="Jordan" + official_name="Hashemite Kingdom of Jordan" /> + <iso_3166_entry + alpha_2_code="KZ" + alpha_3_code="KAZ" + numeric_code="398" + name="Kazakhstan" + official_name="Republic of Kazakhstan" /> + <iso_3166_entry + alpha_2_code="KE" + alpha_3_code="KEN" + numeric_code="404" + name="Kenya" + official_name="Republic of Kenya" /> + <iso_3166_entry + alpha_2_code="KI" + alpha_3_code="KIR" + numeric_code="296" + name="Kiribati" + official_name="Republic of Kiribati" /> + <iso_3166_entry + alpha_2_code="KP" + alpha_3_code="PRK" + numeric_code="408" + name="Korea, Democratic People's Republic of" + official_name="Democratic People's Republic of Korea" /> + <iso_3166_entry + alpha_2_code="KR" + alpha_3_code="KOR" + numeric_code="410" + name="Korea, Republic of" /> + <iso_3166_entry + alpha_2_code="KW" + alpha_3_code="KWT" + numeric_code="414" + name="Kuwait" + official_name="State of Kuwait" /> + <iso_3166_entry + alpha_2_code="KG" + alpha_3_code="KGZ" + numeric_code="417" + name="Kyrgyzstan" + official_name="Kyrgyz Republic" /> + <iso_3166_entry + alpha_2_code="LA" + alpha_3_code="LAO" + numeric_code="418" + name="Lao People's Democratic Republic" /> + <iso_3166_entry + alpha_2_code="LV" + alpha_3_code="LVA" + numeric_code="428" + name="Latvia" + official_name="Republic of Latvia" /> + <iso_3166_entry + alpha_2_code="LB" + alpha_3_code="LBN" + numeric_code="422" + name="Lebanon" + official_name="Lebanese Republic" /> + <iso_3166_entry + alpha_2_code="LS" + alpha_3_code="LSO" + numeric_code="426" + name="Lesotho" + official_name="Kingdom of Lesotho" /> + <iso_3166_entry + alpha_2_code="LR" + alpha_3_code="LBR" + numeric_code="430" + name="Liberia" + official_name="Republic of Liberia" /> + <iso_3166_entry + alpha_2_code="LY" + alpha_3_code="LBY" + numeric_code="434" + common_name="Libya" + name="Libyan Arab Jamahiriya" + official_name="Socialist People's Libyan Arab Jamahiriya" /> + <iso_3166_entry + alpha_2_code="LI" + alpha_3_code="LIE" + numeric_code="438" + name="Liechtenstein" + official_name="Principality of Liechtenstein" /> + <iso_3166_entry + alpha_2_code="LT" + alpha_3_code="LTU" + numeric_code="440" + name="Lithuania" + official_name="Republic of Lithuania" /> + <iso_3166_entry + alpha_2_code="LU" + alpha_3_code="LUX" + numeric_code="442" + name="Luxembourg" + official_name="Grand Duchy of Luxembourg" /> + <iso_3166_entry + alpha_2_code="MO" + alpha_3_code="MAC" + numeric_code="446" + name="Macao" + official_name="Macao Special Administrative Region of China" /> + <iso_3166_entry + alpha_2_code="MK" + alpha_3_code="MKD" + numeric_code="807" + name="Macedonia, Republic of" + official_name="The Former Yugoslav Republic of Macedonia" /> + <iso_3166_entry + alpha_2_code="MG" + alpha_3_code="MDG" + numeric_code="450" + name="Madagascar" + official_name="Republic of Madagascar" /> + <iso_3166_entry + alpha_2_code="MW" + alpha_3_code="MWI" + numeric_code="454" + name="Malawi" + official_name="Republic of Malawi" /> + <iso_3166_entry + alpha_2_code="MY" + alpha_3_code="MYS" + numeric_code="458" + name="Malaysia" /> + <iso_3166_entry + alpha_2_code="MV" + alpha_3_code="MDV" + numeric_code="462" + name="Maldives" + official_name="Republic of Maldives" /> + <iso_3166_entry + alpha_2_code="ML" + alpha_3_code="MLI" + numeric_code="466" + name="Mali" + official_name="Republic of Mali" /> + <iso_3166_entry + alpha_2_code="MT" + alpha_3_code="MLT" + numeric_code="470" + name="Malta" + official_name="Republic of Malta" /> + <iso_3166_entry + alpha_2_code="MH" + alpha_3_code="MHL" + numeric_code="584" + name="Marshall Islands" + official_name="Republic of the Marshall Islands" /> + <iso_3166_entry + alpha_2_code="MQ" + alpha_3_code="MTQ" + numeric_code="474" + name="Martinique" /> + <iso_3166_entry + alpha_2_code="MR" + alpha_3_code="MRT" + numeric_code="478" + name="Mauritania" + official_name="Islamic Republic of Mauritania" /> + <iso_3166_entry + alpha_2_code="MU" + alpha_3_code="MUS" + numeric_code="480" + name="Mauritius" + official_name="Republic of Mauritius" /> + <iso_3166_entry + alpha_2_code="YT" + alpha_3_code="MYT" + numeric_code="175" + name="Mayotte" /> + <iso_3166_entry + alpha_2_code="MX" + alpha_3_code="MEX" + numeric_code="484" + name="Mexico" + official_name="United Mexican States" /> + <iso_3166_entry + alpha_2_code="FM" + alpha_3_code="FSM" + numeric_code="583" + name="Micronesia, Federated States of" + official_name="Federated States of Micronesia" /> + <iso_3166_entry + alpha_2_code="MD" + alpha_3_code="MDA" + numeric_code="498" + common_name="Moldova" + name="Moldova, Republic of" + official_name="Republic of Moldova" /> + <iso_3166_entry + alpha_2_code="MC" + alpha_3_code="MCO" + numeric_code="492" + name="Monaco" + official_name="Principality of Monaco" /> + <iso_3166_entry + alpha_2_code="MN" + alpha_3_code="MNG" + numeric_code="496" + name="Mongolia" /> + <iso_3166_entry + alpha_2_code="ME" + alpha_3_code="MNE" + numeric_code="499" + name="Montenegro" + official_name="Montenegro" /> + <iso_3166_entry + alpha_2_code="MS" + alpha_3_code="MSR" + numeric_code="500" + name="Montserrat" /> + <iso_3166_entry + alpha_2_code="MA" + alpha_3_code="MAR" + numeric_code="504" + name="Morocco" + official_name="Kingdom of Morocco" /> + <iso_3166_entry + alpha_2_code="MZ" + alpha_3_code="MOZ" + numeric_code="508" + name="Mozambique" + official_name="Republic of Mozambique" /> + <iso_3166_entry + alpha_2_code="MM" + alpha_3_code="MMR" + numeric_code="104" + name="Myanmar" + official_name="Republic of Myanmar" /> + <iso_3166_entry + alpha_2_code="NA" + alpha_3_code="NAM" + numeric_code="516" + name="Namibia" + official_name="Republic of Namibia" /> + <iso_3166_entry + alpha_2_code="NR" + alpha_3_code="NRU" + numeric_code="520" + name="Nauru" + official_name="Republic of Nauru" /> + <iso_3166_entry + alpha_2_code="NP" + alpha_3_code="NPL" + numeric_code="524" + name="Nepal" + official_name="Federal Democratic Republic of Nepal" /> + <iso_3166_entry + alpha_2_code="NL" + alpha_3_code="NLD" + numeric_code="528" + name="Netherlands" + official_name="Kingdom of the Netherlands" /> + <iso_3166_entry + alpha_2_code="NC" + alpha_3_code="NCL" + numeric_code="540" + name="New Caledonia" /> + <iso_3166_entry + alpha_2_code="NZ" + alpha_3_code="NZL" + numeric_code="554" + name="New Zealand" /> + <iso_3166_entry + alpha_2_code="NI" + alpha_3_code="NIC" + numeric_code="558" + name="Nicaragua" + official_name="Republic of Nicaragua" /> + <iso_3166_entry + alpha_2_code="NE" + alpha_3_code="NER" + numeric_code="562" + name="Niger" + official_name="Republic of the Niger" /> + <iso_3166_entry + alpha_2_code="NG" + alpha_3_code="NGA" + numeric_code="566" + name="Nigeria" + official_name="Federal Republic of Nigeria" /> + <iso_3166_entry + alpha_2_code="NU" + alpha_3_code="NIU" + numeric_code="570" + name="Niue" + official_name="Niue" /> + <iso_3166_entry + alpha_2_code="NF" + alpha_3_code="NFK" + numeric_code="574" + name="Norfolk Island" /> + <iso_3166_entry + alpha_2_code="MP" + alpha_3_code="MNP" + numeric_code="580" + name="Northern Mariana Islands" + official_name="Commonwealth of the Northern Mariana Islands" /> + <iso_3166_entry + alpha_2_code="NO" + alpha_3_code="NOR" + numeric_code="578" + name="Norway" + official_name="Kingdom of Norway" /> + <iso_3166_entry + alpha_2_code="OM" + alpha_3_code="OMN" + numeric_code="512" + name="Oman" + official_name="Sultanate of Oman" /> + <iso_3166_entry + alpha_2_code="PK" + alpha_3_code="PAK" + numeric_code="586" + name="Pakistan" + official_name="Islamic Republic of Pakistan" /> + <iso_3166_entry + alpha_2_code="PW" + alpha_3_code="PLW" + numeric_code="585" + name="Palau" + official_name="Republic of Palau" /> + <iso_3166_entry + alpha_2_code="PS" + alpha_3_code="PSE" + numeric_code="275" + name="Palestinian Territory, Occupied" + official_name="Occupied Palestinian Territory" /> + <iso_3166_entry + alpha_2_code="PA" + alpha_3_code="PAN" + numeric_code="591" + name="Panama" + official_name="Republic of Panama" /> + <iso_3166_entry + alpha_2_code="PG" + alpha_3_code="PNG" + numeric_code="598" + name="Papua New Guinea" /> + <iso_3166_entry + alpha_2_code="PY" + alpha_3_code="PRY" + numeric_code="600" + name="Paraguay" + official_name="Republic of Paraguay" /> + <iso_3166_entry + alpha_2_code="PE" + alpha_3_code="PER" + numeric_code="604" + name="Peru" + official_name="Republic of Peru" /> + <iso_3166_entry + alpha_2_code="PH" + alpha_3_code="PHL" + numeric_code="608" + name="Philippines" + official_name="Republic of the Philippines" /> + <iso_3166_entry + alpha_2_code="PN" + alpha_3_code="PCN" + numeric_code="612" + name="Pitcairn" /> + <iso_3166_entry + alpha_2_code="PL" + alpha_3_code="POL" + numeric_code="616" + name="Poland" + official_name="Republic of Poland" /> + <iso_3166_entry + alpha_2_code="PT" + alpha_3_code="PRT" + numeric_code="620" + name="Portugal" + official_name="Portuguese Republic" /> + <iso_3166_entry + alpha_2_code="PR" + alpha_3_code="PRI" + numeric_code="630" + name="Puerto Rico" /> + <iso_3166_entry + alpha_2_code="QA" + alpha_3_code="QAT" + numeric_code="634" + name="Qatar" + official_name="State of Qatar" /> + <iso_3166_entry + alpha_2_code="RE" + alpha_3_code="REU" + numeric_code="638" + name="Reunion" /> + <iso_3166_entry + alpha_2_code="RO" + alpha_3_code="ROU" + numeric_code="642" + name="Romania" /> + <iso_3166_entry + alpha_2_code="RU" + alpha_3_code="RUS" + numeric_code="643" + name="Russian Federation" /> + <iso_3166_entry + alpha_2_code="RW" + alpha_3_code="RWA" + numeric_code="646" + name="Rwanda" + official_name="Rwandese Republic" /> + <iso_3166_entry + alpha_2_code="BL" + alpha_3_code="BLM" + numeric_code="652" + name="Saint Barthélemy" /> + <iso_3166_entry + alpha_2_code="SH" + alpha_3_code="SHN" + numeric_code="654" + name="Saint Helena, Ascension and Tristan da Cunha" /> + <iso_3166_entry + alpha_2_code="KN" + alpha_3_code="KNA" + numeric_code="659" + name="Saint Kitts and Nevis" /> + <iso_3166_entry + alpha_2_code="LC" + alpha_3_code="LCA" + numeric_code="662" + name="Saint Lucia" /> + <iso_3166_entry + alpha_2_code="MF" + alpha_3_code="MAF" + numeric_code="663" + name="Saint Martin (French part)" /> + <iso_3166_entry + alpha_2_code="PM" + alpha_3_code="SPM" + numeric_code="666" + name="Saint Pierre and Miquelon" /> + <iso_3166_entry + alpha_2_code="VC" + alpha_3_code="VCT" + numeric_code="670" + name="Saint Vincent and the Grenadines" /> + <iso_3166_entry + alpha_2_code="WS" + alpha_3_code="WSM" + numeric_code="882" + name="Samoa" + official_name="Independent State of Samoa" /> + <iso_3166_entry + alpha_2_code="SM" + alpha_3_code="SMR" + numeric_code="674" + name="San Marino" + official_name="Republic of San Marino" /> + <iso_3166_entry + alpha_2_code="ST" + alpha_3_code="STP" + numeric_code="678" + name="Sao Tome and Principe" + official_name="Democratic Republic of Sao Tome and Principe" /> + <iso_3166_entry + alpha_2_code="SA" + alpha_3_code="SAU" + numeric_code="682" + name="Saudi Arabia" + official_name="Kingdom of Saudi Arabia" /> + <iso_3166_entry + alpha_2_code="SN" + alpha_3_code="SEN" + numeric_code="686" + name="Senegal" + official_name="Republic of Senegal" /> + <iso_3166_entry + alpha_2_code="RS" + alpha_3_code="SRB" + numeric_code="688" + name="Serbia" + official_name="Republic of Serbia" /> + <iso_3166_entry + alpha_2_code="SC" + alpha_3_code="SYC" + numeric_code="690" + name="Seychelles" + official_name="Republic of Seychelles" /> + <iso_3166_entry + alpha_2_code="SL" + alpha_3_code="SLE" + numeric_code="694" + name="Sierra Leone" + official_name="Republic of Sierra Leone" /> + <iso_3166_entry + alpha_2_code="SG" + alpha_3_code="SGP" + numeric_code="702" + name="Singapore" + official_name="Republic of Singapore" /> + <iso_3166_entry + alpha_2_code="SX" + alpha_3_code="SXM" + numeric_code="702" + name="Sint Maarten" + official_name="Sint Maarten (Dutch part)" /> + <iso_3166_entry + alpha_2_code="SK" + alpha_3_code="SVK" + numeric_code="703" + name="Slovakia" + official_name="Slovak Republic" /> + <iso_3166_entry + alpha_2_code="SI" + alpha_3_code="SVN" + numeric_code="705" + name="Slovenia" + official_name="Republic of Slovenia" /> + <iso_3166_entry + alpha_2_code="SB" + alpha_3_code="SLB" + numeric_code="090" + name="Solomon Islands" /> + <iso_3166_entry + alpha_2_code="SO" + alpha_3_code="SOM" + numeric_code="706" + name="Somalia" + official_name="Somali Republic" /> + <iso_3166_entry + alpha_2_code="ZA" + alpha_3_code="ZAF" + numeric_code="710" + name="South Africa" + official_name="Republic of South Africa" /> + <iso_3166_entry + alpha_2_code="GS" + alpha_3_code="SGS" + numeric_code="239" + name="South Georgia and the South Sandwich Islands" /> + <iso_3166_entry + alpha_2_code="ES" + alpha_3_code="ESP" + numeric_code="724" + name="Spain" + official_name="Kingdom of Spain" /> + <iso_3166_entry + alpha_2_code="LK" + alpha_3_code="LKA" + numeric_code="144" + name="Sri Lanka" + official_name="Democratic Socialist Republic of Sri Lanka" /> + <iso_3166_entry + alpha_2_code="SD" + alpha_3_code="SDN" + numeric_code="736" + name="Sudan" + official_name="Republic of the Sudan" /> + <iso_3166_entry + alpha_2_code="SR" + alpha_3_code="SUR" + numeric_code="740" + name="Suriname" + official_name="Republic of Suriname" /> + <iso_3166_entry + alpha_2_code="SJ" + alpha_3_code="SJM" + numeric_code="744" + name="Svalbard and Jan Mayen" /> + <iso_3166_entry + alpha_2_code="SZ" + alpha_3_code="SWZ" + numeric_code="748" + name="Swaziland" + official_name="Kingdom of Swaziland" /> + <iso_3166_entry + alpha_2_code="SE" + alpha_3_code="SWE" + numeric_code="752" + name="Sweden" + official_name="Kingdom of Sweden" /> + <iso_3166_entry + alpha_2_code="CH" + alpha_3_code="CHE" + numeric_code="756" + name="Switzerland" + official_name="Swiss Confederation" /> + <iso_3166_entry + alpha_2_code="SY" + alpha_3_code="SYR" + numeric_code="760" + name="Syrian Arab Republic" /> + <iso_3166_entry + alpha_2_code="TW" + alpha_3_code="TWN" + numeric_code="158" + common_name="Taiwan" + name="Taiwan, Province of China" + official_name="Taiwan, Province of China" /> + <iso_3166_entry + alpha_2_code="TJ" + alpha_3_code="TJK" + numeric_code="762" + name="Tajikistan" + official_name="Republic of Tajikistan" /> + <iso_3166_entry + alpha_2_code="TZ" + alpha_3_code="TZA" + numeric_code="834" + name="Tanzania, United Republic of" + official_name="United Republic of Tanzania" /> + <iso_3166_entry + alpha_2_code="TH" + alpha_3_code="THA" + numeric_code="764" + name="Thailand" + official_name="Kingdom of Thailand" /> + <iso_3166_entry + alpha_2_code="TL" + alpha_3_code="TLS" + numeric_code="626" + name="Timor-Leste" + official_name="Democratic Republic of Timor-Leste" /> + <iso_3166_entry + alpha_2_code="TG" + alpha_3_code="TGO" + numeric_code="768" + name="Togo" + official_name="Togolese Republic" /> + <iso_3166_entry + alpha_2_code="TK" + alpha_3_code="TKL" + numeric_code="772" + name="Tokelau" /> + <iso_3166_entry + alpha_2_code="TO" + alpha_3_code="TON" + numeric_code="776" + name="Tonga" + official_name="Kingdom of Tonga" /> + <iso_3166_entry + alpha_2_code="TT" + alpha_3_code="TTO" + numeric_code="780" + name="Trinidad and Tobago" + official_name="Republic of Trinidad and Tobago" /> + <iso_3166_entry + alpha_2_code="TN" + alpha_3_code="TUN" + numeric_code="788" + name="Tunisia" + official_name="Republic of Tunisia" /> + <iso_3166_entry + alpha_2_code="TR" + alpha_3_code="TUR" + numeric_code="792" + name="Turkey" + official_name="Republic of Turkey" /> + <iso_3166_entry + alpha_2_code="TM" + alpha_3_code="TKM" + numeric_code="795" + name="Turkmenistan" /> + <iso_3166_entry + alpha_2_code="TC" + alpha_3_code="TCA" + numeric_code="796" + name="Turks and Caicos Islands" /> + <iso_3166_entry + alpha_2_code="TV" + alpha_3_code="TUV" + numeric_code="798" + name="Tuvalu" /> + <iso_3166_entry + alpha_2_code="UG" + alpha_3_code="UGA" + numeric_code="800" + name="Uganda" + official_name="Republic of Uganda" /> + <iso_3166_entry + alpha_2_code="UA" + alpha_3_code="UKR" + numeric_code="804" + name="Ukraine" /> + <iso_3166_entry + alpha_2_code="AE" + alpha_3_code="ARE" + numeric_code="784" + name="United Arab Emirates" /> + <iso_3166_entry + alpha_2_code="GB" + alpha_3_code="GBR" + numeric_code="826" + name="United Kingdom" + official_name="United Kingdom of Great Britain and Northern Ireland" /> + <iso_3166_entry + alpha_2_code="US" + alpha_3_code="USA" + numeric_code="840" + name="United States" + official_name="United States of America" /> + <iso_3166_entry + alpha_2_code="UM" + alpha_3_code="UMI" + numeric_code="581" + name="United States Minor Outlying Islands" /> + <iso_3166_entry + alpha_2_code="UY" + alpha_3_code="URY" + numeric_code="858" + name="Uruguay" + official_name="Eastern Republic of Uruguay" /> + <iso_3166_entry + alpha_2_code="UZ" + alpha_3_code="UZB" + numeric_code="860" + name="Uzbekistan" + official_name="Republic of Uzbekistan" /> + <iso_3166_entry + alpha_2_code="VU" + alpha_3_code="VUT" + numeric_code="548" + name="Vanuatu" + official_name="Republic of Vanuatu" /> + <iso_3166_entry + alpha_2_code="VE" + alpha_3_code="VEN" + numeric_code="862" + common_name="Venezuela" + name="Venezuela, Bolivarian republic of" + official_name="Bolivarian Republic of Venezuela" /> + <iso_3166_entry + alpha_2_code="VN" + alpha_3_code="VNM" + numeric_code="704" + name="Viet Nam" + official_name="Socialist Republic of Viet Nam" /> + <!-- FIXME CHECK OFFICIAL NAME --> + <iso_3166_entry + alpha_2_code="VG" + alpha_3_code="VGB" + numeric_code="092" + name="Virgin Islands, British" + official_name="British Virgin Islands" /> + <iso_3166_entry + alpha_2_code="VI" + alpha_3_code="VIR" + numeric_code="850" + name="Virgin Islands, U.S." + official_name="Virgin Islands of the United States" /> + <iso_3166_entry + alpha_2_code="WF" + alpha_3_code="WLF" + numeric_code="876" + name="Wallis and Futuna" /> + <iso_3166_entry + alpha_2_code="EH" + alpha_3_code="ESH" + numeric_code="732" + name="Western Sahara" /> + <iso_3166_entry + alpha_2_code="YE" + alpha_3_code="YEM" + numeric_code="887" + name="Yemen" + official_name="Republic of Yemen" /> + <iso_3166_entry + alpha_2_code="ZM" + alpha_3_code="ZMB" + numeric_code="894" + name="Zambia" + official_name="Republic of Zambia" /> + <iso_3166_entry + alpha_2_code="ZW" + alpha_3_code="ZWE" + numeric_code="716" + name="Zimbabwe" + official_name="Republic of Zimbabwe" /> + <iso_3166_3_entry + alpha_4_code="BQAQ" + alpha_3_code="ATB" + date_withdrawn="1979" + names="British Antarctic Territory" /> + <iso_3166_3_entry + alpha_4_code="BUMM" + alpha_3_code="BUR" + numeric_code="104" + date_withdrawn="1989-12-05" + names="Burma, Socialist Republic of the Union of" /> + <iso_3166_3_entry + alpha_4_code="BYAA" + alpha_3_code="BYS" + numeric_code="112" + date_withdrawn="1992-06-15" + names="Byelorussian SSR Soviet Socialist Republic" /> + <iso_3166_3_entry + alpha_4_code="CTKI" + alpha_3_code="CTE" + numeric_code="128" + date_withdrawn="1984" + names="Canton and Enderbury Islands" /> + <iso_3166_3_entry + alpha_4_code="CSHH" + alpha_3_code="CSK" + numeric_code="200" + date_withdrawn="1993-06-15" + names="Czechoslovakia, Czechoslovak Socialist Republic" /> + <iso_3166_3_entry + alpha_4_code="DYBJ" + alpha_3_code="DHY" + numeric_code="204" + date_withdrawn="1977" + names="Dahomey" /> + <iso_3166_3_entry + alpha_4_code="NQAQ" + alpha_3_code="ATN" + numeric_code="216" + date_withdrawn="1983" + names="Dronning Maud Land" /> + <iso_3166_3_entry + alpha_4_code="TPTL" + alpha_3_code="TMP" + numeric_code="626" + date_withdrawn="2002-05-20" + names="East Timor" + comment="was Portuguese Timor" /> + <iso_3166_3_entry + alpha_4_code="ET" + alpha_3_code="ETH" + numeric_code="230" + date_withdrawn="1993-07-16" + names="Ethiopia" /> + <iso_3166_3_entry + alpha_4_code="FXFR" + alpha_3_code="FXX" + numeric_code="249" + date_withdrawn="1997-07-14" + names="France, Metropolitan" /> + <iso_3166_3_entry + alpha_4_code="AIDJ" + alpha_3_code="AFI" + numeric_code="262" + date_withdrawn="1977" + names="French Afars and Issas" /> + <iso_3166_3_entry + alpha_4_code="FQHH" + alpha_3_code="ATF" + date_withdrawn="1979" + names="French Southern and Antarctic Territories" + comment="now split between AQ and TF" /> + <iso_3166_3_entry + alpha_4_code="DDDE" + alpha_3_code="DDR" + numeric_code="278" + date_withdrawn="1990-10-30" + names="German Democratic Republic" /> + <iso_3166_3_entry + alpha_4_code="DE" + alpha_3_code="DEU" + numeric_code="280" + date_withdrawn="1990-10-30" + names="Germany, Federal Republic of" /> + <iso_3166_3_entry + alpha_4_code="GEHH" + alpha_3_code="GEL" + numeric_code="296" + date_withdrawn="1979" + names="Gilbert and Ellice Islands" + comment="now split into Kiribati and Tuvalu" /> + <iso_3166_3_entry + alpha_4_code="JTUM" + alpha_3_code="JTN" + numeric_code="396" + date_withdrawn="1986" + names="Johnston Island" /> + <iso_3166_3_entry + alpha_4_code="MIUM" + alpha_3_code="MID" + numeric_code="488" + date_withdrawn="1986" + names="Midway Islands" /> + <iso_3166_3_entry + alpha_4_code="AN" + alpha_3_code="ANT" + numeric_code="532" + date_withdrawn="1993-07-12" + names="Netherlands Antilles" /> + <iso_3166_3_entry + alpha_4_code="NTHH" + alpha_3_code="NTZ" + numeric_code="536" + date_withdrawn="1993-07-12" + names="Neutral Zone" + comment="formerly between Saudi Arabia and Iraq" /> + <iso_3166_3_entry + alpha_4_code="NHVU" + alpha_3_code="NHB" + numeric_code="548" + date_withdrawn="1980" + names="New Hebrides" /> + <iso_3166_3_entry + alpha_4_code="PCHH" + alpha_3_code="PCI" + numeric_code="582" + date_withdrawn="1986" + names="Pacific Islands (trust territory)" + comment="divided into FM, MH, MP, and PW" /> + <iso_3166_3_entry + alpha_4_code="PA" + alpha_3_code="PAN" + numeric_code="590" + date_withdrawn="1993-07-22" + names="Panama, Republic of" /> + <iso_3166_3_entry + alpha_4_code="PZPA" + alpha_3_code="PCZ" + date_withdrawn="1980" + names="Panama Canal Zone" /> + <iso_3166_3_entry + alpha_4_code="RO" + alpha_3_code="ROM" + numeric_code="642" + date_withdrawn="2002-02-01" + names="Romania, Socialist Republic of" /> + <iso_3166_3_entry + alpha_4_code="KN" + alpha_3_code="KNA" + numeric_code="658" + date_withdrawn="1988" + names="St. Kitts-Nevis-Anguilla" + comment="now St. Kitts and Nevis and Anguilla" /> + <iso_3166_3_entry + alpha_4_code="CSXX" + alpha_3_code="SCG" + numeric_code="891" + date_withdrawn="2006-06-05" + names="Serbia and Montenegro" /> + <iso_3166_3_entry + alpha_4_code="SKIN" + alpha_3_code="SKM" + date_withdrawn="1975" + names="Sikkim" /> + <iso_3166_3_entry + alpha_4_code="RHZW" + alpha_3_code="RHO" + numeric_code="716" + date_withdrawn="1980" + names="Southern Rhodesia" /> + <iso_3166_3_entry + alpha_4_code="EH" + alpha_3_code="ESH" + numeric_code="732" + date_withdrawn="1988" + names="Spanish Sahara" + comment="now Western Sahara" /> + <iso_3166_3_entry + alpha_4_code="PUUM" + alpha_3_code="PUS" + numeric_code="849" + date_withdrawn="1986" + names="US Miscellaneous Pacific Islands" /> + <iso_3166_3_entry + alpha_4_code="SUHH" + alpha_3_code="SUN" + numeric_code="810" + date_withdrawn="1992-08-30" + names="USSR, Union of Soviet Socialist Republics" /> + <iso_3166_3_entry + alpha_4_code="HVBF" + alpha_3_code="HVO" + numeric_code="854" + date_withdrawn="1984" + names="Upper Volta, Republic of" /> + <iso_3166_3_entry + alpha_4_code="VA" + alpha_3_code="VAT" + numeric_code="336" + date_withdrawn="1996-04-03" + names="Vatican City State (Holy See)" /> + <iso_3166_3_entry + alpha_4_code="VDVN" + alpha_3_code="VDR" + date_withdrawn="1977" + names="Viet-Nam, Democratic Republic of" /> + <iso_3166_3_entry + alpha_4_code="WKUM" + alpha_3_code="WAK" + numeric_code="872" + date_withdrawn="1986" + names="Wake Island" /> + <iso_3166_3_entry + alpha_4_code="YDYE" + alpha_3_code="YMD" + numeric_code="720" + date_withdrawn="1990-08-14" + names="Yemen, Democratic, People's Democratic Republic of" /> + <iso_3166_3_entry + alpha_4_code="YE" + alpha_3_code="YEM" + numeric_code="891" + date_withdrawn="1990-08-14" + names="Yemen, Yemen Arab Republic" /> + <iso_3166_3_entry + alpha_4_code="YUCS" + alpha_3_code="YUG" + numeric_code="891" + date_withdrawn="1993-07-28" + names="Yugoslavia, Socialist Federal Republic of" /> + <iso_3166_3_entry + alpha_4_code="ZRCD" + alpha_3_code="ZAR" + numeric_code="180" + date_withdrawn="1997-07-14" + names="Zaire, Republic of" /> +</iso_3166_entries> diff --git a/win32/copy/share/xml/iso-codes/iso_639.xml b/win32/copy/share/xml/iso-codes/iso_639.xml new file mode 100644 index 00000000..02fa01fb --- /dev/null +++ b/win32/copy/share/xml/iso-codes/iso_639.xml @@ -0,0 +1,2169 @@ +<?xml version="1.0" encoding="UTF-8" ?> + +<!-- +This file gives a list of all languages in the ISO 639 +standard, and is used to provide translations via gettext + +Copyright (C) 2004-2006 Alastair McKinstry <mckinstry@computer.org> +Copyright (C) 2004-2009 Christian Perrier <bubulle@debian.org> +Copyright (C) 2005-2008 Tobias Quathamer <toddy@debian.org> + + This file is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + This file is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with this file; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + +Source: <http://www.loc.gov/standards/iso639-2/> +--> + +<!DOCTYPE iso_639_entries [ + <!ELEMENT iso_639_entries (iso_639_entry+)> + <!ELEMENT iso_639_entry EMPTY> + <!ATTLIST iso_639_entry + iso_639_2B_code CDATA #REQUIRED + iso_639_2T_code CDATA #REQUIRED + iso_639_1_code CDATA #IMPLIED + name CDATA #REQUIRED + > +]> + +<iso_639_entries> + <iso_639_entry + iso_639_2B_code="aar" + iso_639_2T_code="aar" + iso_639_1_code="aa" + name="Afar" /> + <iso_639_entry + iso_639_2B_code="abk" + iso_639_2T_code="abk" + iso_639_1_code="ab" + name="Abkhazian" /> + <iso_639_entry + iso_639_2B_code="ace" + iso_639_2T_code="ace" + name="Achinese" /> + <iso_639_entry + iso_639_2B_code="ach" + iso_639_2T_code="ach" + name="Acoli" /> + <iso_639_entry + iso_639_2B_code="ada" + iso_639_2T_code="ada" + name="Adangme" /> + <iso_639_entry + iso_639_2B_code="ady" + iso_639_2T_code="ady" + name="Adyghe; Adygei" /> + <iso_639_entry + iso_639_2B_code="afa" + iso_639_2T_code="afa" + name="Afro-Asiatic languages" /> + <iso_639_entry + iso_639_2B_code="afh" + iso_639_2T_code="afh" + name="Afrihili" /> + <iso_639_entry + iso_639_2B_code="afr" + iso_639_2T_code="afr" + iso_639_1_code="af" + name="Afrikaans" /> + <iso_639_entry + iso_639_2B_code="ain" + iso_639_2T_code="ain" + name="Ainu" /> + <iso_639_entry + iso_639_2B_code="aka" + iso_639_2T_code="aka" + iso_639_1_code="ak" + name="Akan" /> + <iso_639_entry + iso_639_2B_code="akk" + iso_639_2T_code="akk" + name="Akkadian" /> + <iso_639_entry + iso_639_2B_code="alb" + iso_639_2T_code="sqi" + iso_639_1_code="sq" + name="Albanian" /> + <iso_639_entry + iso_639_2B_code="ale" + iso_639_2T_code="ale" + name="Aleut" /> + <iso_639_entry + iso_639_2B_code="alg" + iso_639_2T_code="alg" + name="Algonquian languages" /> + <iso_639_entry + iso_639_2B_code="alt" + iso_639_2T_code="alt" + name="Southern Altai" /> + <iso_639_entry + iso_639_2B_code="amh" + iso_639_2T_code="amh" + iso_639_1_code="am" + name="Amharic" /> + <iso_639_entry + iso_639_2B_code="ang" + iso_639_2T_code="ang" + name="English, Old (ca. 450-1100)" /> + <iso_639_entry + iso_639_2B_code="anp" + iso_639_2T_code="anp" + name="Angika" /> + <iso_639_entry + iso_639_2B_code="apa" + iso_639_2T_code="apa" + name="Apache languages" /> + <iso_639_entry + iso_639_2B_code="ara" + iso_639_2T_code="ara" + iso_639_1_code="ar" + name="Arabic" /> + <iso_639_entry + iso_639_2B_code="arc" + iso_639_2T_code="arc" + name="Official Aramaic (700-300 BCE); Imperial Aramaic (700-300 BCE)" /> + <iso_639_entry + iso_639_2B_code="arg" + iso_639_2T_code="arg" + iso_639_1_code="an" + name="Aragonese" /> + <iso_639_entry + iso_639_2B_code="arm" + iso_639_2T_code="hye" + iso_639_1_code="hy" + name="Armenian" /> + <iso_639_entry + iso_639_2B_code="arn" + iso_639_2T_code="arn" + name="Mapudungun; Mapuche" /> + <iso_639_entry + iso_639_2B_code="arp" + iso_639_2T_code="arp" + name="Arapaho" /> + <iso_639_entry + iso_639_2B_code="art" + iso_639_2T_code="art" + name="Artificial languages" /> + <iso_639_entry + iso_639_2B_code="arw" + iso_639_2T_code="arw" + name="Arawak" /> + <iso_639_entry + iso_639_2B_code="asm" + iso_639_2T_code="asm" + iso_639_1_code="as" + name="Assamese" /> + <iso_639_entry + iso_639_2B_code="ast" + iso_639_2T_code="ast" + name="Asturian; Bable; Leonese; Asturleonese" /> + <iso_639_entry + iso_639_2B_code="ath" + iso_639_2T_code="ath" + name="Athapascan languages" /> + <iso_639_entry + iso_639_2B_code="aus" + iso_639_2T_code="aus" + name="Australian languages" /> + <iso_639_entry + iso_639_2B_code="ava" + iso_639_2T_code="ava" + iso_639_1_code="av" + name="Avaric" /> + <iso_639_entry + iso_639_2B_code="ave" + iso_639_2T_code="ave" + iso_639_1_code="ae" + name="Avestan" /> + <iso_639_entry + iso_639_2B_code="awa" + iso_639_2T_code="awa" + name="Awadhi" /> + <iso_639_entry + iso_639_2B_code="aym" + iso_639_2T_code="aym" + iso_639_1_code="ay" + name="Aymara" /> + <iso_639_entry + iso_639_2B_code="aze" + iso_639_2T_code="aze" + iso_639_1_code="az" + name="Azerbaijani" /> + <iso_639_entry + iso_639_2B_code="bad" + iso_639_2T_code="bad" + name="Banda languages" /> + <iso_639_entry + iso_639_2B_code="bai" + iso_639_2T_code="bai" + name="Bamileke languages" /> + <iso_639_entry + iso_639_2B_code="bak" + iso_639_2T_code="bak" + iso_639_1_code="ba" + name="Bashkir" /> + <iso_639_entry + iso_639_2B_code="bal" + iso_639_2T_code="bal" + name="Baluchi" /> + <iso_639_entry + iso_639_2B_code="bam" + iso_639_2T_code="bam" + iso_639_1_code="bm" + name="Bambara" /> + <iso_639_entry + iso_639_2B_code="ban" + iso_639_2T_code="ban" + name="Balinese" /> + <iso_639_entry + iso_639_2B_code="baq" + iso_639_2T_code="eus" + iso_639_1_code="eu" + name="Basque" /> + <iso_639_entry + iso_639_2B_code="bas" + iso_639_2T_code="bas" + name="Basa" /> + <iso_639_entry + iso_639_2B_code="bat" + iso_639_2T_code="bat" + name="Baltic languages" /> + <iso_639_entry + iso_639_2B_code="bej" + iso_639_2T_code="bej" + name="Beja; Bedawiyet" /> + <iso_639_entry + iso_639_2B_code="bel" + iso_639_2T_code="bel" + iso_639_1_code="be" + name="Belarusian" /> + <iso_639_entry + iso_639_2B_code="bem" + iso_639_2T_code="bem" + name="Bemba" /> + <iso_639_entry + iso_639_2B_code="ben" + iso_639_2T_code="ben" + iso_639_1_code="bn" + name="Bengali" /> + <iso_639_entry + iso_639_2B_code="ber" + iso_639_2T_code="ber" + name="Berber languages" /> + <iso_639_entry + iso_639_2B_code="bho" + iso_639_2T_code="bho" + name="Bhojpuri" /> + <iso_639_entry + iso_639_2B_code="bih" + iso_639_2T_code="bih" + iso_639_1_code="bh" + name="Bihari languages" /> + <iso_639_entry + iso_639_2B_code="bik" + iso_639_2T_code="bik" + name="Bikol" /> + <iso_639_entry + iso_639_2B_code="bin" + iso_639_2T_code="bin" + name="Bini; Edo" /> + <iso_639_entry + iso_639_2B_code="bis" + iso_639_2T_code="bis" + iso_639_1_code="bi" + name="Bislama" /> + <iso_639_entry + iso_639_2B_code="bla" + iso_639_2T_code="bla" + name="Siksika" /> + <iso_639_entry + iso_639_2B_code="bnt" + iso_639_2T_code="bnt" + name="Bantu languages" /> + <iso_639_entry + iso_639_2B_code="bos" + iso_639_2T_code="bos" + iso_639_1_code="bs" + name="Bosnian" /> + <iso_639_entry + iso_639_2B_code="bra" + iso_639_2T_code="bra" + name="Braj" /> + <iso_639_entry + iso_639_2B_code="bre" + iso_639_2T_code="bre" + iso_639_1_code="br" + name="Breton" /> + <iso_639_entry + iso_639_2B_code="btk" + iso_639_2T_code="btk" + name="Batak languages" /> + <iso_639_entry + iso_639_2B_code="bua" + iso_639_2T_code="bua" + name="Buriat" /> + <iso_639_entry + iso_639_2B_code="bug" + iso_639_2T_code="bug" + name="Buginese" /> + <iso_639_entry + iso_639_2B_code="bul" + iso_639_2T_code="bul" + iso_639_1_code="bg" + name="Bulgarian" /> + <iso_639_entry + iso_639_2B_code="bur" + iso_639_2T_code="mya" + iso_639_1_code="my" + name="Burmese" /> + <iso_639_entry + iso_639_2B_code="byn" + iso_639_2T_code="byn" + name="Blin; Bilin" /> + <iso_639_entry + iso_639_2B_code="cad" + iso_639_2T_code="cad" + name="Caddo" /> + <iso_639_entry + iso_639_2B_code="cai" + iso_639_2T_code="cai" + name="Central American Indian languages" /> + <iso_639_entry + iso_639_2B_code="car" + iso_639_2T_code="car" + name="Galibi Carib" /> + <iso_639_entry + iso_639_2B_code="cat" + iso_639_2T_code="cat" + iso_639_1_code="ca" + name="Catalan; Valencian" /> + <iso_639_entry + iso_639_2B_code="cau" + iso_639_2T_code="cau" + name="Caucasian languages" /> + <iso_639_entry + iso_639_2B_code="ceb" + iso_639_2T_code="ceb" + name="Cebuano" /> + <iso_639_entry + iso_639_2B_code="cel" + iso_639_2T_code="cel" + name="Celtic languages" /> + <iso_639_entry + iso_639_2B_code="cha" + iso_639_2T_code="cha" + iso_639_1_code="ch" + name="Chamorro" /> + <iso_639_entry + iso_639_2B_code="chb" + iso_639_2T_code="chb" + name="Chibcha" /> + <iso_639_entry + iso_639_2B_code="che" + iso_639_2T_code="che" + iso_639_1_code="ce" + name="Chechen" /> + <iso_639_entry + iso_639_2B_code="chg" + iso_639_2T_code="chg" + name="Chagatai" /> + <iso_639_entry + iso_639_2B_code="chi" + iso_639_2T_code="zho" + iso_639_1_code="zh" + name="Chinese" /> + <iso_639_entry + iso_639_2B_code="chk" + iso_639_2T_code="chk" + name="Chuukese" /> + <iso_639_entry + iso_639_2B_code="chm" + iso_639_2T_code="chm" + name="Mari" /> + <iso_639_entry + iso_639_2B_code="chn" + iso_639_2T_code="chn" + name="Chinook jargon" /> + <iso_639_entry + iso_639_2B_code="cho" + iso_639_2T_code="cho" + name="Choctaw" /> + <iso_639_entry + iso_639_2B_code="chp" + iso_639_2T_code="chp" + name="Chipewyan; Dene Suline" /> + <iso_639_entry + iso_639_2B_code="chr" + iso_639_2T_code="chr" + name="Cherokee" /> + <iso_639_entry + iso_639_2B_code="chu" + iso_639_2T_code="chu" + iso_639_1_code="cu" + name="Church Slavic; Old Slavonic; Church Slavonic; Old Bulgarian; Old Church Slavonic" /> + <iso_639_entry + iso_639_2B_code="chv" + iso_639_2T_code="chv" + iso_639_1_code="cv" + name="Chuvash" /> + <iso_639_entry + iso_639_2B_code="chy" + iso_639_2T_code="chy" + name="Cheyenne" /> + <iso_639_entry + iso_639_2B_code="cmc" + iso_639_2T_code="cmc" + name="Chamic languages" /> + <iso_639_entry + iso_639_2B_code="cop" + iso_639_2T_code="cop" + name="Coptic" /> + <iso_639_entry + iso_639_2B_code="cor" + iso_639_2T_code="cor" + iso_639_1_code="kw" + name="Cornish" /> + <iso_639_entry + iso_639_2B_code="cos" + iso_639_2T_code="cos" + iso_639_1_code="co" + name="Corsican" /> + <iso_639_entry + iso_639_2B_code="cpe" + iso_639_2T_code="cpe" + name="Creoles and pidgins, English based" /> + <iso_639_entry + iso_639_2B_code="cpf" + iso_639_2T_code="cpf" + name="Creoles and pidgins, French-based" /> + <iso_639_entry + iso_639_2B_code="cpp" + iso_639_2T_code="cpp" + name="Creoles and pidgins, Portuguese-based" /> + <iso_639_entry + iso_639_2B_code="cre" + iso_639_2T_code="cre" + iso_639_1_code="cr" + name="Cree" /> + <iso_639_entry + iso_639_2B_code="crh" + iso_639_2T_code="crh" + name="Crimean Tatar; Crimean Turkish" /> + <iso_639_entry + iso_639_2B_code="crp" + iso_639_2T_code="crp" + name="Creoles and pidgins" /> + <iso_639_entry + iso_639_2B_code="csb" + iso_639_2T_code="csb" + name="Kashubian" /> + <iso_639_entry + iso_639_2B_code="cus" + iso_639_2T_code="cus" + name="Cushitic languages" /> + <iso_639_entry + iso_639_2B_code="cze" + iso_639_2T_code="ces" + iso_639_1_code="cs" + name="Czech" /> + <iso_639_entry + iso_639_2B_code="dak" + iso_639_2T_code="dak" + name="Dakota" /> + <iso_639_entry + iso_639_2B_code="dan" + iso_639_2T_code="dan" + iso_639_1_code="da" + name="Danish" /> + <iso_639_entry + iso_639_2B_code="dar" + iso_639_2T_code="dar" + name="Dargwa" /> + <iso_639_entry + iso_639_2B_code="day" + iso_639_2T_code="day" + name="Land Dayak languages" /> + <iso_639_entry + iso_639_2B_code="del" + iso_639_2T_code="del" + name="Delaware" /> + <iso_639_entry + iso_639_2B_code="den" + iso_639_2T_code="den" + name="Slave (Athapascan)" /> + <iso_639_entry + iso_639_2B_code="dgr" + iso_639_2T_code="dgr" + name="Dogrib" /> + <iso_639_entry + iso_639_2B_code="din" + iso_639_2T_code="din" + name="Dinka" /> + <iso_639_entry + iso_639_2B_code="div" + iso_639_2T_code="div" + iso_639_1_code="dv" + name="Divehi; Dhivehi; Maldivian" /> + <iso_639_entry + iso_639_2B_code="doi" + iso_639_2T_code="doi" + name="Dogri" /> + <iso_639_entry + iso_639_2B_code="dra" + iso_639_2T_code="dra" + name="Dravidian languages" /> + <iso_639_entry + iso_639_2B_code="dsb" + iso_639_2T_code="dsb" + name="Lower Sorbian" /> + <iso_639_entry + iso_639_2B_code="dua" + iso_639_2T_code="dua" + name="Duala" /> + <iso_639_entry + iso_639_2B_code="dum" + iso_639_2T_code="dum" + name="Dutch, Middle (ca. 1050-1350)" /> + <iso_639_entry + iso_639_2B_code="dut" + iso_639_2T_code="nld" + iso_639_1_code="nl" + name="Dutch; Flemish" /> + <iso_639_entry + iso_639_2B_code="dyu" + iso_639_2T_code="dyu" + name="Dyula" /> + <iso_639_entry + iso_639_2B_code="dzo" + iso_639_2T_code="dzo" + iso_639_1_code="dz" + name="Dzongkha" /> + <iso_639_entry + iso_639_2B_code="efi" + iso_639_2T_code="efi" + name="Efik" /> + <iso_639_entry + iso_639_2B_code="egy" + iso_639_2T_code="egy" + name="Egyptian (Ancient)" /> + <iso_639_entry + iso_639_2B_code="eka" + iso_639_2T_code="eka" + name="Ekajuk" /> + <iso_639_entry + iso_639_2B_code="elx" + iso_639_2T_code="elx" + name="Elamite" /> + <iso_639_entry + iso_639_2B_code="eng" + iso_639_2T_code="eng" + iso_639_1_code="en" + name="English" /> + <iso_639_entry + iso_639_2B_code="enm" + iso_639_2T_code="enm" + name="English, Middle (1100-1500)" /> + <iso_639_entry + iso_639_2B_code="epo" + iso_639_2T_code="epo" + iso_639_1_code="eo" + name="Esperanto" /> + <iso_639_entry + iso_639_2B_code="est" + iso_639_2T_code="est" + iso_639_1_code="et" + name="Estonian" /> + <iso_639_entry + iso_639_2B_code="ewe" + iso_639_2T_code="ewe" + iso_639_1_code="ee" + name="Ewe" /> + <iso_639_entry + iso_639_2B_code="ewo" + iso_639_2T_code="ewo" + name="Ewondo" /> + <iso_639_entry + iso_639_2B_code="fan" + iso_639_2T_code="fan" + name="Fang" /> + <iso_639_entry + iso_639_2B_code="fao" + iso_639_2T_code="fao" + iso_639_1_code="fo" + name="Faroese" /> + <iso_639_entry + iso_639_2B_code="fat" + iso_639_2T_code="fat" + name="Fanti" /> + <iso_639_entry + iso_639_2B_code="fij" + iso_639_2T_code="fij" + iso_639_1_code="fj" + name="Fijian" /> + <iso_639_entry + iso_639_2B_code="fil" + iso_639_2T_code="fil" + name="Filipino; Pilipino" /> + <iso_639_entry + iso_639_2B_code="fin" + iso_639_2T_code="fin" + iso_639_1_code="fi" + name="Finnish" /> + <iso_639_entry + iso_639_2B_code="fiu" + iso_639_2T_code="fiu" + name="Finno-Ugrian languages" /> + <iso_639_entry + iso_639_2B_code="fon" + iso_639_2T_code="fon" + name="Fon" /> + <iso_639_entry + iso_639_2B_code="fre" + iso_639_2T_code="fra" + iso_639_1_code="fr" + name="French" /> + <iso_639_entry + iso_639_2B_code="frm" + iso_639_2T_code="frm" + name="French, Middle (ca. 1400-1600)" /> + <iso_639_entry + iso_639_2B_code="fro" + iso_639_2T_code="fro" + name="French, Old (842-ca. 1400)" /> + <iso_639_entry + iso_639_2B_code="frr" + iso_639_2T_code="frr" + name="Northern Frisian" /> + <iso_639_entry + iso_639_2B_code="frs" + iso_639_2T_code="frs" + name="Eastern Frisian" /> + <iso_639_entry + iso_639_2B_code="fry" + iso_639_2T_code="fry" + iso_639_1_code="fy" + name="Western Frisian" /> + <iso_639_entry + iso_639_2B_code="ful" + iso_639_2T_code="ful" + iso_639_1_code="ff" + name="Fulah" /> + <iso_639_entry + iso_639_2B_code="fur" + iso_639_2T_code="fur" + name="Friulian" /> + <iso_639_entry + iso_639_2B_code="gaa" + iso_639_2T_code="gaa" + name="Ga" /> + <iso_639_entry + iso_639_2B_code="gay" + iso_639_2T_code="gay" + name="Gayo" /> + <iso_639_entry + iso_639_2B_code="gba" + iso_639_2T_code="gba" + name="Gbaya" /> + <iso_639_entry + iso_639_2B_code="gem" + iso_639_2T_code="gem" + name="Germanic languages" /> + <iso_639_entry + iso_639_2B_code="geo" + iso_639_2T_code="kat" + iso_639_1_code="ka" + name="Georgian" /> + <iso_639_entry + iso_639_2B_code="ger" + iso_639_2T_code="deu" + iso_639_1_code="de" + name="German" /> + <iso_639_entry + iso_639_2B_code="gez" + iso_639_2T_code="gez" + name="Geez" /> + <iso_639_entry + iso_639_2B_code="gil" + iso_639_2T_code="gil" + name="Gilbertese" /> + <iso_639_entry + iso_639_2B_code="gla" + iso_639_2T_code="gla" + iso_639_1_code="gd" + name="Gaelic; Scottish Gaelic" /> + <iso_639_entry + iso_639_2B_code="gle" + iso_639_2T_code="gle" + iso_639_1_code="ga" + name="Irish" /> + <iso_639_entry + iso_639_2B_code="glg" + iso_639_2T_code="glg" + iso_639_1_code="gl" + name="Galician" /> + <iso_639_entry + iso_639_2B_code="glv" + iso_639_2T_code="glv" + iso_639_1_code="gv" + name="Manx" /> + <iso_639_entry + iso_639_2B_code="gmh" + iso_639_2T_code="gmh" + name="German, Middle High (ca. 1050-1500)" /> + <iso_639_entry + iso_639_2B_code="goh" + iso_639_2T_code="goh" + name="German, Old High (ca. 750-1050)" /> + <iso_639_entry + iso_639_2B_code="gon" + iso_639_2T_code="gon" + name="Gondi" /> + <iso_639_entry + iso_639_2B_code="gor" + iso_639_2T_code="gor" + name="Gorontalo" /> + <iso_639_entry + iso_639_2B_code="got" + iso_639_2T_code="got" + name="Gothic" /> + <iso_639_entry + iso_639_2B_code="grb" + iso_639_2T_code="grb" + name="Grebo" /> + <iso_639_entry + iso_639_2B_code="grc" + iso_639_2T_code="grc" + name="Greek, Ancient (to 1453)" /> + <iso_639_entry + iso_639_2B_code="gre" + iso_639_2T_code="ell" + iso_639_1_code="el" + name="Greek, Modern (1453-)" /> + <iso_639_entry + iso_639_2B_code="grn" + iso_639_2T_code="grn" + iso_639_1_code="gn" + name="Guarani" /> + <iso_639_entry + iso_639_2B_code="gsw" + iso_639_2T_code="gsw" + name="Swiss German; Alemannic; Alsatian" /> + <iso_639_entry + iso_639_2B_code="guj" + iso_639_2T_code="guj" + iso_639_1_code="gu" + name="Gujarati" /> + <iso_639_entry + iso_639_2B_code="gwi" + iso_639_2T_code="gwi" + name="Gwich'in" /> + <iso_639_entry + iso_639_2B_code="hai" + iso_639_2T_code="hai" + name="Haida" /> + <iso_639_entry + iso_639_2B_code="hat" + iso_639_2T_code="hat" + iso_639_1_code="ht" + name="Haitian; Haitian Creole" /> + <iso_639_entry + iso_639_2B_code="hau" + iso_639_2T_code="hau" + iso_639_1_code="ha" + name="Hausa" /> + <iso_639_entry + iso_639_2B_code="haw" + iso_639_2T_code="haw" + name="Hawaiian" /> + <iso_639_entry + iso_639_2B_code="heb" + iso_639_2T_code="heb" + iso_639_1_code="he" + name="Hebrew" /> + <iso_639_entry + iso_639_2B_code="her" + iso_639_2T_code="her" + iso_639_1_code="hz" + name="Herero" /> + <iso_639_entry + iso_639_2B_code="hil" + iso_639_2T_code="hil" + name="Hiligaynon" /> + <iso_639_entry + iso_639_2B_code="him" + iso_639_2T_code="him" + name="Himachali languages; Western Pahari languages" /> + <iso_639_entry + iso_639_2B_code="hin" + iso_639_2T_code="hin" + iso_639_1_code="hi" + name="Hindi" /> + <iso_639_entry + iso_639_2B_code="hit" + iso_639_2T_code="hit" + name="Hittite" /> + <iso_639_entry + iso_639_2B_code="hmn" + iso_639_2T_code="hmn" + name="Hmong; Mong" /> + <iso_639_entry + iso_639_2B_code="hmo" + iso_639_2T_code="hmo" + iso_639_1_code="ho" + name="Hiri Motu" /> + <iso_639_entry + iso_639_2B_code="hrv" + iso_639_2T_code="hrv" + iso_639_1_code="hr" + name="Croatian" /> + <iso_639_entry + iso_639_2B_code="hsb" + iso_639_2T_code="hsb" + name="Upper Sorbian" /> + <iso_639_entry + iso_639_2B_code="hun" + iso_639_2T_code="hun" + iso_639_1_code="hu" + name="Hungarian" /> + <iso_639_entry + iso_639_2B_code="hup" + iso_639_2T_code="hup" + name="Hupa" /> + <iso_639_entry + iso_639_2B_code="iba" + iso_639_2T_code="iba" + name="Iban" /> + <iso_639_entry + iso_639_2B_code="ibo" + iso_639_2T_code="ibo" + iso_639_1_code="ig" + name="Igbo" /> + <iso_639_entry + iso_639_2B_code="ice" + iso_639_2T_code="isl" + iso_639_1_code="is" + name="Icelandic" /> + <iso_639_entry + iso_639_2B_code="ido" + iso_639_2T_code="ido" + iso_639_1_code="io" + name="Ido" /> + <iso_639_entry + iso_639_2B_code="iii" + iso_639_2T_code="iii" + iso_639_1_code="ii" + name="Sichuan Yi; Nuosu" /> + <iso_639_entry + iso_639_2B_code="ijo" + iso_639_2T_code="ijo" + name="Ijo languages" /> + <iso_639_entry + iso_639_2B_code="iku" + iso_639_2T_code="iku" + iso_639_1_code="iu" + name="Inuktitut" /> + <iso_639_entry + iso_639_2B_code="ile" + iso_639_2T_code="ile" + iso_639_1_code="ie" + name="Interlingue; Occidental" /> + <iso_639_entry + iso_639_2B_code="ilo" + iso_639_2T_code="ilo" + name="Iloko" /> + <iso_639_entry + iso_639_2B_code="ina" + iso_639_2T_code="ina" + iso_639_1_code="ia" + name="Interlingua (International Auxiliary Language Association)" /> + <iso_639_entry + iso_639_2B_code="inc" + iso_639_2T_code="inc" + name="Indic languages" /> + <iso_639_entry + iso_639_2B_code="ind" + iso_639_2T_code="ind" + iso_639_1_code="id" + name="Indonesian" /> + <iso_639_entry + iso_639_2B_code="ine" + iso_639_2T_code="ine" + name="Indo-European languages" /> + <iso_639_entry + iso_639_2B_code="inh" + iso_639_2T_code="inh" + name="Ingush" /> + <iso_639_entry + iso_639_2B_code="ipk" + iso_639_2T_code="ipk" + iso_639_1_code="ik" + name="Inupiaq" /> + <iso_639_entry + iso_639_2B_code="ira" + iso_639_2T_code="ira" + name="Iranian languages" /> + <iso_639_entry + iso_639_2B_code="iro" + iso_639_2T_code="iro" + name="Iroquoian languages" /> + <iso_639_entry + iso_639_2B_code="ita" + iso_639_2T_code="ita" + iso_639_1_code="it" + name="Italian" /> + <iso_639_entry + iso_639_2B_code="jav" + iso_639_2T_code="jav" + iso_639_1_code="jv" + name="Javanese" /> + <iso_639_entry + iso_639_2B_code="jbo" + iso_639_2T_code="jbo" + name="Lojban" /> + <iso_639_entry + iso_639_2B_code="jpn" + iso_639_2T_code="jpn" + iso_639_1_code="ja" + name="Japanese" /> + <iso_639_entry + iso_639_2B_code="jpr" + iso_639_2T_code="jpr" + name="Judeo-Persian" /> + <iso_639_entry + iso_639_2B_code="jrb" + iso_639_2T_code="jrb" + name="Judeo-Arabic" /> + <iso_639_entry + iso_639_2B_code="kaa" + iso_639_2T_code="kaa" + name="Kara-Kalpak" /> + <iso_639_entry + iso_639_2B_code="kab" + iso_639_2T_code="kab" + name="Kabyle" /> + <iso_639_entry + iso_639_2B_code="kac" + iso_639_2T_code="kac" + name="Kachin; Jingpho" /> + <iso_639_entry + iso_639_2B_code="kal" + iso_639_2T_code="kal" + iso_639_1_code="kl" + name="Kalaallisut; Greenlandic" /> + <iso_639_entry + iso_639_2B_code="kam" + iso_639_2T_code="kam" + name="Kamba" /> + <iso_639_entry + iso_639_2B_code="kan" + iso_639_2T_code="kan" + iso_639_1_code="kn" + name="Kannada" /> + <iso_639_entry + iso_639_2B_code="kar" + iso_639_2T_code="kar" + name="Karen languages" /> + <iso_639_entry + iso_639_2B_code="kas" + iso_639_2T_code="kas" + iso_639_1_code="ks" + name="Kashmiri" /> + <iso_639_entry + iso_639_2B_code="kau" + iso_639_2T_code="kau" + iso_639_1_code="kr" + name="Kanuri" /> + <iso_639_entry + iso_639_2B_code="kaw" + iso_639_2T_code="kaw" + name="Kawi" /> + <iso_639_entry + iso_639_2B_code="kaz" + iso_639_2T_code="kaz" + iso_639_1_code="kk" + name="Kazakh" /> + <iso_639_entry + iso_639_2B_code="kbd" + iso_639_2T_code="kbd" + name="Kabardian" /> + <iso_639_entry + iso_639_2B_code="kha" + iso_639_2T_code="kha" + name="Khasi" /> + <iso_639_entry + iso_639_2B_code="khi" + iso_639_2T_code="khi" + name="Khoisan languages" /> + <iso_639_entry + iso_639_2B_code="khm" + iso_639_2T_code="khm" + iso_639_1_code="km" + name="Central Khmer" /> + <iso_639_entry + iso_639_2B_code="kho" + iso_639_2T_code="kho" + name="Khotanese;Sakan" /> + <iso_639_entry + iso_639_2B_code="kik" + iso_639_2T_code="kik" + iso_639_1_code="ki" + name="Kikuyu; Gikuyu" /> + <iso_639_entry + iso_639_2B_code="kin" + iso_639_2T_code="kin" + iso_639_1_code="rw" + name="Kinyarwanda" /> + <iso_639_entry + iso_639_2B_code="kir" + iso_639_2T_code="kir" + iso_639_1_code="ky" + name="Kirghiz; Kyrgyz" /> + <iso_639_entry + iso_639_2B_code="kmb" + iso_639_2T_code="kmb" + name="Kimbundu" /> + <iso_639_entry + iso_639_2B_code="kok" + iso_639_2T_code="kok" + name="Konkani" /> + <iso_639_entry + iso_639_2B_code="kom" + iso_639_2T_code="kom" + iso_639_1_code="kv" + name="Komi" /> + <iso_639_entry + iso_639_2B_code="kon" + iso_639_2T_code="kon" + iso_639_1_code="kg" + name="Kongo" /> + <iso_639_entry + iso_639_2B_code="kor" + iso_639_2T_code="kor" + iso_639_1_code="ko" + name="Korean" /> + <iso_639_entry + iso_639_2B_code="kos" + iso_639_2T_code="kos" + name="Kosraean" /> + <iso_639_entry + iso_639_2B_code="kpe" + iso_639_2T_code="kpe" + name="Kpelle" /> + <iso_639_entry + iso_639_2B_code="krc" + iso_639_2T_code="krc" + name="Karachay-Balkar" /> + <iso_639_entry + iso_639_2B_code="krl" + iso_639_2T_code="krl" + name="Karelian" /> + <iso_639_entry + iso_639_2B_code="kro" + iso_639_2T_code="kro" + name="Kru languages" /> + <iso_639_entry + iso_639_2B_code="kru" + iso_639_2T_code="kru" + name="Kurukh" /> + <iso_639_entry + iso_639_2B_code="kua" + iso_639_2T_code="kua" + iso_639_1_code="kj" + name="Kuanyama; Kwanyama" /> + <iso_639_entry + iso_639_2B_code="kum" + iso_639_2T_code="kum" + name="Kumyk" /> + <iso_639_entry + iso_639_2B_code="kur" + iso_639_2T_code="kur" + iso_639_1_code="ku" + name="Kurdish" /> + <iso_639_entry + iso_639_2B_code="kut" + iso_639_2T_code="kut" + name="Kutenai" /> + <iso_639_entry + iso_639_2B_code="lad" + iso_639_2T_code="lad" + name="Ladino" /> + <iso_639_entry + iso_639_2B_code="lah" + iso_639_2T_code="lah" + name="Lahnda" /> + <iso_639_entry + iso_639_2B_code="lam" + iso_639_2T_code="lam" + name="Lamba" /> + <iso_639_entry + iso_639_2B_code="lao" + iso_639_2T_code="lao" + iso_639_1_code="lo" + name="Lao" /> + <iso_639_entry + iso_639_2B_code="lat" + iso_639_2T_code="lat" + iso_639_1_code="la" + name="Latin" /> + <iso_639_entry + iso_639_2B_code="lav" + iso_639_2T_code="lav" + iso_639_1_code="lv" + name="Latvian" /> + <iso_639_entry + iso_639_2B_code="lez" + iso_639_2T_code="lez" + name="Lezghian" /> + <iso_639_entry + iso_639_2B_code="lim" + iso_639_2T_code="lim" + iso_639_1_code="li" + name="Limburgan; Limburger; Limburgish" /> + <iso_639_entry + iso_639_2B_code="lin" + iso_639_2T_code="lin" + iso_639_1_code="ln" + name="Lingala" /> + <iso_639_entry + iso_639_2B_code="lit" + iso_639_2T_code="lit" + iso_639_1_code="lt" + name="Lithuanian" /> + <iso_639_entry + iso_639_2B_code="lol" + iso_639_2T_code="lol" + name="Mongo" /> + <iso_639_entry + iso_639_2B_code="loz" + iso_639_2T_code="loz" + name="Lozi" /> + <iso_639_entry + iso_639_2B_code="ltz" + iso_639_2T_code="ltz" + iso_639_1_code="lb" + name="Luxembourgish; Letzeburgesch" /> + <iso_639_entry + iso_639_2B_code="lua" + iso_639_2T_code="lua" + name="Luba-Lulua" /> + <iso_639_entry + iso_639_2B_code="lub" + iso_639_2T_code="lub" + iso_639_1_code="lu" + name="Luba-Katanga" /> + <iso_639_entry + iso_639_2B_code="lug" + iso_639_2T_code="lug" + iso_639_1_code="lg" + name="Ganda" /> + <iso_639_entry + iso_639_2B_code="lui" + iso_639_2T_code="lui" + name="Luiseno" /> + <iso_639_entry + iso_639_2B_code="lun" + iso_639_2T_code="lun" + name="Lunda" /> + <iso_639_entry + iso_639_2B_code="luo" + iso_639_2T_code="luo" + name="Luo (Kenya and Tanzania)" /> + <iso_639_entry + iso_639_2B_code="lus" + iso_639_2T_code="lus" + name="Lushai" /> + <iso_639_entry + iso_639_2B_code="mac" + iso_639_2T_code="mkd" + iso_639_1_code="mk" + name="Macedonian" /> + <iso_639_entry + iso_639_2B_code="mad" + iso_639_2T_code="mad" + name="Madurese" /> + <iso_639_entry + iso_639_2B_code="mag" + iso_639_2T_code="mag" + name="Magahi" /> + <iso_639_entry + iso_639_2B_code="mah" + iso_639_2T_code="mah" + iso_639_1_code="mh" + name="Marshallese" /> + <iso_639_entry + iso_639_2B_code="mai" + iso_639_2T_code="mai" + name="Maithili" /> + <iso_639_entry + iso_639_2B_code="mak" + iso_639_2T_code="mak" + name="Makasar" /> + <iso_639_entry + iso_639_2B_code="mal" + iso_639_2T_code="mal" + iso_639_1_code="ml" + name="Malayalam" /> + <iso_639_entry + iso_639_2B_code="man" + iso_639_2T_code="man" + name="Mandingo" /> + <iso_639_entry + iso_639_2B_code="mao" + iso_639_2T_code="mri" + iso_639_1_code="mi" + name="Maori" /> + <iso_639_entry + iso_639_2B_code="map" + iso_639_2T_code="map" + name="Austronesian languages" /> + <iso_639_entry + iso_639_2B_code="mar" + iso_639_2T_code="mar" + iso_639_1_code="mr" + name="Marathi" /> + <iso_639_entry + iso_639_2B_code="mas" + iso_639_2T_code="mas" + name="Masai" /> + <iso_639_entry + iso_639_2B_code="may" + iso_639_2T_code="msa" + iso_639_1_code="ms" + name="Malay" /> + <iso_639_entry + iso_639_2B_code="mdf" + iso_639_2T_code="mdf" + name="Moksha" /> + <iso_639_entry + iso_639_2B_code="mdr" + iso_639_2T_code="mdr" + name="Mandar" /> + <iso_639_entry + iso_639_2B_code="men" + iso_639_2T_code="men" + name="Mende" /> + <iso_639_entry + iso_639_2B_code="mga" + iso_639_2T_code="mga" + name="Irish, Middle (900-1200)" /> + <iso_639_entry + iso_639_2B_code="mic" + iso_639_2T_code="mic" + name="Mi'kmaq; Micmac" /> + <iso_639_entry + iso_639_2B_code="min" + iso_639_2T_code="min" + name="Minangkabau" /> + <iso_639_entry + iso_639_2B_code="mis" + iso_639_2T_code="mis" + name="Uncoded languages" /> + <iso_639_entry + iso_639_2B_code="mkh" + iso_639_2T_code="mkh" + name="Mon-Khmer languages" /> + <iso_639_entry + iso_639_2B_code="mlg" + iso_639_2T_code="mlg" + iso_639_1_code="mg" + name="Malagasy" /> + <iso_639_entry + iso_639_2B_code="mlt" + iso_639_2T_code="mlt" + iso_639_1_code="mt" + name="Maltese" /> + <iso_639_entry + iso_639_2B_code="mnc" + iso_639_2T_code="mnc" + name="Manchu" /> + <iso_639_entry + iso_639_2B_code="mni" + iso_639_2T_code="mni" + name="Manipuri" /> + <iso_639_entry + iso_639_2B_code="mno" + iso_639_2T_code="mno" + name="Manobo languages" /> + <iso_639_entry + iso_639_2B_code="moh" + iso_639_2T_code="moh" + name="Mohawk" /> + <iso_639_entry + iso_639_2B_code="mol" + iso_639_2T_code="mol" + iso_639_1_code="mo" + name="Moldavian; Moldovan" /> + <iso_639_entry + iso_639_2B_code="mon" + iso_639_2T_code="mon" + iso_639_1_code="mn" + name="Mongolian" /> + <iso_639_entry + iso_639_2B_code="mos" + iso_639_2T_code="mos" + name="Mossi" /> + <iso_639_entry + iso_639_2B_code="mul" + iso_639_2T_code="mul" + name="Multiple languages" /> + <iso_639_entry + iso_639_2B_code="mun" + iso_639_2T_code="mun" + name="Munda languages" /> + <iso_639_entry + iso_639_2B_code="mus" + iso_639_2T_code="mus" + name="Creek" /> + <iso_639_entry + iso_639_2B_code="mwl" + iso_639_2T_code="mwl" + name="Mirandese" /> + <iso_639_entry + iso_639_2B_code="mwr" + iso_639_2T_code="mwr" + name="Marwari" /> + <iso_639_entry + iso_639_2B_code="myn" + iso_639_2T_code="myn" + name="Mayan languages" /> + <iso_639_entry + iso_639_2B_code="myv" + iso_639_2T_code="myv" + name="Erzya" /> + <iso_639_entry + iso_639_2B_code="nah" + iso_639_2T_code="nah" + name="Nahuatl languages" /> + <iso_639_entry + iso_639_2B_code="nai" + iso_639_2T_code="nai" + name="North American Indian languages" /> + <iso_639_entry + iso_639_2B_code="nap" + iso_639_2T_code="nap" + name="Neapolitan" /> + <iso_639_entry + iso_639_2B_code="nau" + iso_639_2T_code="nau" + iso_639_1_code="na" + name="Nauru" /> + <iso_639_entry + iso_639_2B_code="nav" + iso_639_2T_code="nav" + iso_639_1_code="nv" + name="Navajo; Navaho" /> + <iso_639_entry + iso_639_2B_code="nbl" + iso_639_2T_code="nbl" + iso_639_1_code="nr" + name="Ndebele, South; South Ndebele" /> + <iso_639_entry + iso_639_2B_code="nde" + iso_639_2T_code="nde" + iso_639_1_code="nd" + name="Ndebele, North; North Ndebele" /> + <iso_639_entry + iso_639_2B_code="ndo" + iso_639_2T_code="ndo" + iso_639_1_code="ng" + name="Ndonga" /> + <iso_639_entry + iso_639_2B_code="nds" + iso_639_2T_code="nds" + name="Low German; Low Saxon; German, Low; Saxon, Low" /> + <iso_639_entry + iso_639_2B_code="nep" + iso_639_2T_code="nep" + iso_639_1_code="ne" + name="Nepali" /> + <iso_639_entry + iso_639_2B_code="new" + iso_639_2T_code="new" + name="Nepal Bhasa; Newari" /> + <iso_639_entry + iso_639_2B_code="nia" + iso_639_2T_code="nia" + name="Nias" /> + <iso_639_entry + iso_639_2B_code="nic" + iso_639_2T_code="nic" + name="Niger-Kordofanian languages" /> + <iso_639_entry + iso_639_2B_code="niu" + iso_639_2T_code="niu" + name="Niuean" /> + <iso_639_entry + iso_639_2B_code="nno" + iso_639_2T_code="nno" + iso_639_1_code="nn" + name="Norwegian Nynorsk; Nynorsk, Norwegian" /> + <iso_639_entry + iso_639_2B_code="nob" + iso_639_2T_code="nob" + iso_639_1_code="nb" + name="Bokmål, Norwegian; Norwegian Bokmål" /> + <iso_639_entry + iso_639_2B_code="nog" + iso_639_2T_code="nog" + name="Nogai" /> + <iso_639_entry + iso_639_2B_code="non" + iso_639_2T_code="non" + name="Norse, Old" /> + <iso_639_entry + iso_639_2B_code="nor" + iso_639_2T_code="nor" + iso_639_1_code="no" + name="Norwegian" /> + <iso_639_entry + iso_639_2B_code="nqo" + iso_639_2T_code="nqo" + name="N'Ko" /> + <iso_639_entry + iso_639_2B_code="nso" + iso_639_2T_code="nso" + name="Pedi; Sepedi; Northern Sotho" /> + <iso_639_entry + iso_639_2B_code="nub" + iso_639_2T_code="nub" + name="Nubian languages" /> + <iso_639_entry + iso_639_2B_code="nwc" + iso_639_2T_code="nwc" + name="Classical Newari; Old Newari; Classical Nepal Bhasa" /> + <iso_639_entry + iso_639_2B_code="nya" + iso_639_2T_code="nya" + iso_639_1_code="ny" + name="Chichewa; Chewa; Nyanja" /> + <iso_639_entry + iso_639_2B_code="nym" + iso_639_2T_code="nym" + name="Nyamwezi" /> + <iso_639_entry + iso_639_2B_code="nyn" + iso_639_2T_code="nyn" + name="Nyankole" /> + <iso_639_entry + iso_639_2B_code="nyo" + iso_639_2T_code="nyo" + name="Nyoro" /> + <iso_639_entry + iso_639_2B_code="nzi" + iso_639_2T_code="nzi" + name="Nzima" /> + <iso_639_entry + iso_639_2B_code="oci" + iso_639_2T_code="oci" + iso_639_1_code="oc" + name="Occitan (post 1500)" /> + <iso_639_entry + iso_639_2B_code="oji" + iso_639_2T_code="oji" + iso_639_1_code="oj" + name="Ojibwa" /> + <iso_639_entry + iso_639_2B_code="ori" + iso_639_2T_code="ori" + iso_639_1_code="or" + name="Oriya" /> + <iso_639_entry + iso_639_2B_code="orm" + iso_639_2T_code="orm" + iso_639_1_code="om" + name="Oromo" /> + <iso_639_entry + iso_639_2B_code="osa" + iso_639_2T_code="osa" + name="Osage" /> + <iso_639_entry + iso_639_2B_code="oss" + iso_639_2T_code="oss" + iso_639_1_code="os" + name="Ossetian; Ossetic" /> + <iso_639_entry + iso_639_2B_code="ota" + iso_639_2T_code="ota" + name="Turkish, Ottoman (1500-1928)" /> + <iso_639_entry + iso_639_2B_code="oto" + iso_639_2T_code="oto" + name="Otomian languages" /> + <iso_639_entry + iso_639_2B_code="paa" + iso_639_2T_code="paa" + name="Papuan languages" /> + <iso_639_entry + iso_639_2B_code="pag" + iso_639_2T_code="pag" + name="Pangasinan" /> + <iso_639_entry + iso_639_2B_code="pal" + iso_639_2T_code="pal" + name="Pahlavi" /> + <iso_639_entry + iso_639_2B_code="pam" + iso_639_2T_code="pam" + name="Pampanga; Kapampangan" /> + <iso_639_entry + iso_639_2B_code="pan" + iso_639_2T_code="pan" + iso_639_1_code="pa" + name="Panjabi; Punjabi" /> + <iso_639_entry + iso_639_2B_code="pap" + iso_639_2T_code="pap" + name="Papiamento" /> + <iso_639_entry + iso_639_2B_code="pau" + iso_639_2T_code="pau" + name="Palauan" /> + <iso_639_entry + iso_639_2B_code="peo" + iso_639_2T_code="peo" + name="Persian, Old (ca. 600-400 B.C.)" /> + <iso_639_entry + iso_639_2B_code="per" + iso_639_2T_code="fas" + iso_639_1_code="fa" + name="Persian" /> + <iso_639_entry + iso_639_2B_code="phi" + iso_639_2T_code="phi" + name="Philippine languages" /> + <iso_639_entry + iso_639_2B_code="phn" + iso_639_2T_code="phn" + name="Phoenician" /> + <iso_639_entry + iso_639_2B_code="pli" + iso_639_2T_code="pli" + iso_639_1_code="pi" + name="Pali" /> + <iso_639_entry + iso_639_2B_code="pol" + iso_639_2T_code="pol" + iso_639_1_code="pl" + name="Polish" /> + <iso_639_entry + iso_639_2B_code="pon" + iso_639_2T_code="pon" + name="Pohnpeian" /> + <iso_639_entry + iso_639_2B_code="por" + iso_639_2T_code="por" + iso_639_1_code="pt" + name="Portuguese" /> + <iso_639_entry + iso_639_2B_code="pra" + iso_639_2T_code="pra" + name="Prakrit languages" /> + <iso_639_entry + iso_639_2B_code="pro" + iso_639_2T_code="pro" + name="Provençal, Old (to 1500); Occitan, Old (to 1500)" /> + <iso_639_entry + iso_639_2B_code="pus" + iso_639_2T_code="pus" + iso_639_1_code="ps" + name="Pushto; Pashto" /> + <iso_639_entry + iso_639_2B_code="qaa-qtz" + iso_639_2T_code="qaa-qtz" + name="Reserved for local use" /> + <iso_639_entry + iso_639_2B_code="que" + iso_639_2T_code="que" + iso_639_1_code="qu" + name="Quechua" /> + <iso_639_entry + iso_639_2B_code="raj" + iso_639_2T_code="raj" + name="Rajasthani" /> + <iso_639_entry + iso_639_2B_code="rap" + iso_639_2T_code="rap" + name="Rapanui" /> + <iso_639_entry + iso_639_2B_code="rar" + iso_639_2T_code="rar" + name="Rarotongan; Cook Islands Maori" /> + <iso_639_entry + iso_639_2B_code="roa" + iso_639_2T_code="roa" + name="Romance languages" /> + <iso_639_entry + iso_639_2B_code="roh" + iso_639_2T_code="roh" + iso_639_1_code="rm" + name="Romansh" /> + <iso_639_entry + iso_639_2B_code="rom" + iso_639_2T_code="rom" + name="Romany" /> + <iso_639_entry + iso_639_2B_code="rum" + iso_639_2T_code="ron" + iso_639_1_code="ro" + name="Romanian" /> + <iso_639_entry + iso_639_2B_code="run" + iso_639_2T_code="run" + iso_639_1_code="rn" + name="Rundi" /> + <iso_639_entry + iso_639_2B_code="rup" + iso_639_2T_code="rup" + name="Aromanian; Arumanian; Macedo-Romanian" /> + <iso_639_entry + iso_639_2B_code="rus" + iso_639_2T_code="rus" + iso_639_1_code="ru" + name="Russian" /> + <iso_639_entry + iso_639_2B_code="sad" + iso_639_2T_code="sad" + name="Sandawe" /> + <iso_639_entry + iso_639_2B_code="sag" + iso_639_2T_code="sag" + iso_639_1_code="sg" + name="Sango" /> + <iso_639_entry + iso_639_2B_code="sah" + iso_639_2T_code="sah" + name="Yakut" /> + <iso_639_entry + iso_639_2B_code="sai" + iso_639_2T_code="sai" + name="South American Indian languages" /> + <iso_639_entry + iso_639_2B_code="sal" + iso_639_2T_code="sal" + name="Salishan languages" /> + <iso_639_entry + iso_639_2B_code="sam" + iso_639_2T_code="sam" + name="Samaritan Aramaic" /> + <iso_639_entry + iso_639_2B_code="san" + iso_639_2T_code="san" + iso_639_1_code="sa" + name="Sanskrit" /> + <iso_639_entry + iso_639_2B_code="sas" + iso_639_2T_code="sas" + name="Sasak" /> + <iso_639_entry + iso_639_2B_code="sat" + iso_639_2T_code="sat" + name="Santali" /> + <iso_639_entry + iso_639_2B_code="scn" + iso_639_2T_code="scn" + name="Sicilian" /> + <iso_639_entry + iso_639_2B_code="sco" + iso_639_2T_code="sco" + name="Scots" /> + <iso_639_entry + iso_639_2B_code="sel" + iso_639_2T_code="sel" + name="Selkup" /> + <iso_639_entry + iso_639_2B_code="sem" + iso_639_2T_code="sem" + name="Semitic languages" /> + <iso_639_entry + iso_639_2B_code="sga" + iso_639_2T_code="sga" + name="Irish, Old (to 900)" /> + <iso_639_entry + iso_639_2B_code="sgn" + iso_639_2T_code="sgn" + name="Sign Languages" /> + <iso_639_entry + iso_639_2B_code="shn" + iso_639_2T_code="shn" + name="Shan" /> + <iso_639_entry + iso_639_2B_code="sid" + iso_639_2T_code="sid" + name="Sidamo" /> + <iso_639_entry + iso_639_2B_code="sin" + iso_639_2T_code="sin" + iso_639_1_code="si" + name="Sinhala; Sinhalese" /> + <iso_639_entry + iso_639_2B_code="sio" + iso_639_2T_code="sio" + name="Siouan languages" /> + <iso_639_entry + iso_639_2B_code="sit" + iso_639_2T_code="sit" + name="Sino-Tibetan languages" /> + <iso_639_entry + iso_639_2B_code="sla" + iso_639_2T_code="sla" + name="Slavic languages" /> + <iso_639_entry + iso_639_2B_code="slo" + iso_639_2T_code="slk" + iso_639_1_code="sk" + name="Slovak" /> + <iso_639_entry + iso_639_2B_code="slv" + iso_639_2T_code="slv" + iso_639_1_code="sl" + name="Slovenian" /> + <iso_639_entry + iso_639_2B_code="sma" + iso_639_2T_code="sma" + name="Southern Sami" /> + <iso_639_entry + iso_639_2B_code="sme" + iso_639_2T_code="sme" + iso_639_1_code="se" + name="Northern Sami" /> + <iso_639_entry + iso_639_2B_code="smi" + iso_639_2T_code="smi" + name="Sami languages" /> + <iso_639_entry + iso_639_2B_code="smj" + iso_639_2T_code="smj" + name="Lule Sami" /> + <iso_639_entry + iso_639_2B_code="smn" + iso_639_2T_code="smn" + name="Inari Sami" /> + <iso_639_entry + iso_639_2B_code="smo" + iso_639_2T_code="smo" + iso_639_1_code="sm" + name="Samoan" /> + <iso_639_entry + iso_639_2B_code="sms" + iso_639_2T_code="sms" + name="Skolt Sami" /> + <iso_639_entry + iso_639_2B_code="sna" + iso_639_2T_code="sna" + iso_639_1_code="sn" + name="Shona" /> + <iso_639_entry + iso_639_2B_code="snd" + iso_639_2T_code="snd" + iso_639_1_code="sd" + name="Sindhi" /> + <iso_639_entry + iso_639_2B_code="snk" + iso_639_2T_code="snk" + name="Soninke" /> + <iso_639_entry + iso_639_2B_code="sog" + iso_639_2T_code="sog" + name="Sogdian" /> + <iso_639_entry + iso_639_2B_code="som" + iso_639_2T_code="som" + iso_639_1_code="so" + name="Somali" /> + <iso_639_entry + iso_639_2B_code="son" + iso_639_2T_code="son" + name="Songhai languages" /> + <iso_639_entry + iso_639_2B_code="sot" + iso_639_2T_code="sot" + iso_639_1_code="st" + name="Sotho, Southern" /> + <iso_639_entry + iso_639_2B_code="spa" + iso_639_2T_code="spa" + iso_639_1_code="es" + name="Spanish; Castilian" /> + <iso_639_entry + iso_639_2B_code="srd" + iso_639_2T_code="srd" + iso_639_1_code="sc" + name="Sardinian" /> + <iso_639_entry + iso_639_2B_code="srn" + iso_639_2T_code="srn" + name="Sranan Tongo" /> + <iso_639_entry + iso_639_2B_code="srp" + iso_639_2T_code="srp" + iso_639_1_code="sr" + name="Serbian" /> + <iso_639_entry + iso_639_2B_code="srr" + iso_639_2T_code="srr" + name="Serer" /> + <iso_639_entry + iso_639_2B_code="ssa" + iso_639_2T_code="ssa" + name="Nilo-Saharan languages" /> + <iso_639_entry + iso_639_2B_code="ssw" + iso_639_2T_code="ssw" + iso_639_1_code="ss" + name="Swati" /> + <iso_639_entry + iso_639_2B_code="suk" + iso_639_2T_code="suk" + name="Sukuma" /> + <iso_639_entry + iso_639_2B_code="sun" + iso_639_2T_code="sun" + iso_639_1_code="su" + name="Sundanese" /> + <iso_639_entry + iso_639_2B_code="sus" + iso_639_2T_code="sus" + name="Susu" /> + <iso_639_entry + iso_639_2B_code="sux" + iso_639_2T_code="sux" + name="Sumerian" /> + <iso_639_entry + iso_639_2B_code="swa" + iso_639_2T_code="swa" + iso_639_1_code="sw" + name="Swahili" /> + <iso_639_entry + iso_639_2B_code="swe" + iso_639_2T_code="swe" + iso_639_1_code="sv" + name="Swedish" /> + <iso_639_entry + iso_639_2B_code="syc" + iso_639_2T_code="syc" + name="Classical Syriac" /> + <iso_639_entry + iso_639_2B_code="syr" + iso_639_2T_code="syr" + name="Syriac" /> + <iso_639_entry + iso_639_2B_code="tah" + iso_639_2T_code="tah" + iso_639_1_code="ty" + name="Tahitian" /> + <iso_639_entry + iso_639_2B_code="tai" + iso_639_2T_code="tai" + name="Tai languages" /> + <iso_639_entry + iso_639_2B_code="tam" + iso_639_2T_code="tam" + iso_639_1_code="ta" + name="Tamil" /> + <iso_639_entry + iso_639_2B_code="tat" + iso_639_2T_code="tat" + iso_639_1_code="tt" + name="Tatar" /> + <iso_639_entry + iso_639_2B_code="tel" + iso_639_2T_code="tel" + iso_639_1_code="te" + name="Telugu" /> + <iso_639_entry + iso_639_2B_code="tem" + iso_639_2T_code="tem" + name="Timne" /> + <iso_639_entry + iso_639_2B_code="ter" + iso_639_2T_code="ter" + name="Tereno" /> + <iso_639_entry + iso_639_2B_code="tet" + iso_639_2T_code="tet" + name="Tetum" /> + <iso_639_entry + iso_639_2B_code="tgk" + iso_639_2T_code="tgk" + iso_639_1_code="tg" + name="Tajik" /> + <iso_639_entry + iso_639_2B_code="tgl" + iso_639_2T_code="tgl" + iso_639_1_code="tl" + name="Tagalog" /> + <iso_639_entry + iso_639_2B_code="tha" + iso_639_2T_code="tha" + iso_639_1_code="th" + name="Thai" /> + <iso_639_entry + iso_639_2B_code="tib" + iso_639_2T_code="bod" + iso_639_1_code="bo" + name="Tibetan" /> + <iso_639_entry + iso_639_2B_code="tig" + iso_639_2T_code="tig" + name="Tigre" /> + <iso_639_entry + iso_639_2B_code="tir" + iso_639_2T_code="tir" + iso_639_1_code="ti" + name="Tigrinya" /> + <iso_639_entry + iso_639_2B_code="tiv" + iso_639_2T_code="tiv" + name="Tiv" /> + <iso_639_entry + iso_639_2B_code="tkl" + iso_639_2T_code="tkl" + name="Tokelau" /> + <iso_639_entry + iso_639_2B_code="tlh" + iso_639_2T_code="tlh" + name="Klingon; tlhIngan-Hol" /> + <iso_639_entry + iso_639_2B_code="tli" + iso_639_2T_code="tli" + name="Tlingit" /> + <iso_639_entry + iso_639_2B_code="tmh" + iso_639_2T_code="tmh" + name="Tamashek" /> + <iso_639_entry + iso_639_2B_code="tog" + iso_639_2T_code="tog" + name="Tonga (Nyasa)" /> + <iso_639_entry + iso_639_2B_code="ton" + iso_639_2T_code="ton" + iso_639_1_code="to" + name="Tonga (Tonga Islands)" /> + <iso_639_entry + iso_639_2B_code="tpi" + iso_639_2T_code="tpi" + name="Tok Pisin" /> + <iso_639_entry + iso_639_2B_code="tsi" + iso_639_2T_code="tsi" + name="Tsimshian" /> + <iso_639_entry + iso_639_2B_code="tsn" + iso_639_2T_code="tsn" + iso_639_1_code="tn" + name="Tswana" /> + <iso_639_entry + iso_639_2B_code="tso" + iso_639_2T_code="tso" + iso_639_1_code="ts" + name="Tsonga" /> + <iso_639_entry + iso_639_2B_code="tuk" + iso_639_2T_code="tuk" + iso_639_1_code="tk" + name="Turkmen" /> + <iso_639_entry + iso_639_2B_code="tum" + iso_639_2T_code="tum" + name="Tumbuka" /> + <iso_639_entry + iso_639_2B_code="tup" + iso_639_2T_code="tup" + name="Tupi languages" /> + <iso_639_entry + iso_639_2B_code="tur" + iso_639_2T_code="tur" + iso_639_1_code="tr" + name="Turkish" /> + <iso_639_entry + iso_639_2B_code="tut" + iso_639_2T_code="tut" + name="Altaic languages" /> + <iso_639_entry + iso_639_2B_code="tvl" + iso_639_2T_code="tvl" + name="Tuvalu" /> + <iso_639_entry + iso_639_2B_code="twi" + iso_639_2T_code="twi" + iso_639_1_code="tw" + name="Twi" /> + <iso_639_entry + iso_639_2B_code="tyv" + iso_639_2T_code="tyv" + name="Tuvinian" /> + <iso_639_entry + iso_639_2B_code="udm" + iso_639_2T_code="udm" + name="Udmurt" /> + <iso_639_entry + iso_639_2B_code="uga" + iso_639_2T_code="uga" + name="Ugaritic" /> + <iso_639_entry + iso_639_2B_code="uig" + iso_639_2T_code="uig" + iso_639_1_code="ug" + name="Uighur; Uyghur" /> + <iso_639_entry + iso_639_2B_code="ukr" + iso_639_2T_code="ukr" + iso_639_1_code="uk" + name="Ukrainian" /> + <iso_639_entry + iso_639_2B_code="umb" + iso_639_2T_code="umb" + name="Umbundu" /> + <iso_639_entry + iso_639_2B_code="und" + iso_639_2T_code="und" + name="Undetermined" /> + <iso_639_entry + iso_639_2B_code="urd" + iso_639_2T_code="urd" + iso_639_1_code="ur" + name="Urdu" /> + <iso_639_entry + iso_639_2B_code="uzb" + iso_639_2T_code="uzb" + iso_639_1_code="uz" + name="Uzbek" /> + <iso_639_entry + iso_639_2B_code="vai" + iso_639_2T_code="vai" + name="Vai" /> + <iso_639_entry + iso_639_2B_code="ven" + iso_639_2T_code="ven" + iso_639_1_code="ve" + name="Venda" /> + <iso_639_entry + iso_639_2B_code="vie" + iso_639_2T_code="vie" + iso_639_1_code="vi" + name="Vietnamese" /> + <iso_639_entry + iso_639_2B_code="vol" + iso_639_2T_code="vol" + iso_639_1_code="vo" + name="Volapük" /> + <iso_639_entry + iso_639_2B_code="vot" + iso_639_2T_code="vot" + name="Votic" /> + <iso_639_entry + iso_639_2B_code="wak" + iso_639_2T_code="wak" + name="Wakashan languages" /> + <iso_639_entry + iso_639_2B_code="wal" + iso_639_2T_code="wal" + name="Wolaitta; Wolaytta" /> + <iso_639_entry + iso_639_2B_code="war" + iso_639_2T_code="war" + name="Waray" /> + <iso_639_entry + iso_639_2B_code="was" + iso_639_2T_code="was" + name="Washo" /> + <iso_639_entry + iso_639_2B_code="wel" + iso_639_2T_code="cym" + iso_639_1_code="cy" + name="Welsh" /> + <iso_639_entry + iso_639_2B_code="wen" + iso_639_2T_code="wen" + name="Sorbian languages" /> + <iso_639_entry + iso_639_2B_code="wln" + iso_639_2T_code="wln" + iso_639_1_code="wa" + name="Walloon" /> + <iso_639_entry + iso_639_2B_code="wol" + iso_639_2T_code="wol" + iso_639_1_code="wo" + name="Wolof" /> + <iso_639_entry + iso_639_2B_code="xal" + iso_639_2T_code="xal" + name="Kalmyk; Oirat" /> + <iso_639_entry + iso_639_2B_code="xho" + iso_639_2T_code="xho" + iso_639_1_code="xh" + name="Xhosa" /> + <iso_639_entry + iso_639_2B_code="yao" + iso_639_2T_code="yao" + name="Yao" /> + <iso_639_entry + iso_639_2B_code="yap" + iso_639_2T_code="yap" + name="Yapese" /> + <iso_639_entry + iso_639_2B_code="yid" + iso_639_2T_code="yid" + iso_639_1_code="yi" + name="Yiddish" /> + <iso_639_entry + iso_639_2B_code="yor" + iso_639_2T_code="yor" + iso_639_1_code="yo" + name="Yoruba" /> + <iso_639_entry + iso_639_2B_code="ypk" + iso_639_2T_code="ypk" + name="Yupik languages" /> + <iso_639_entry + iso_639_2B_code="zap" + iso_639_2T_code="zap" + name="Zapotec" /> + <iso_639_entry + iso_639_2B_code="zbl" + iso_639_2T_code="zbl" + name="Blissymbols; Blissymbolics; Bliss" /> + <iso_639_entry + iso_639_2B_code="zen" + iso_639_2T_code="zen" + name="Zenaga" /> + <iso_639_entry + iso_639_2B_code="zha" + iso_639_2T_code="zha" + iso_639_1_code="za" + name="Zhuang; Chuang" /> + <iso_639_entry + iso_639_2B_code="znd" + iso_639_2T_code="znd" + name="Zande languages" /> + <iso_639_entry + iso_639_2B_code="zul" + iso_639_2T_code="zul" + iso_639_1_code="zu" + name="Zulu" /> + <iso_639_entry + iso_639_2B_code="zun" + iso_639_2T_code="zun" + name="Zuni" /> + <iso_639_entry + iso_639_2B_code="zxx" + iso_639_2T_code="zxx" + name="No linguistic content; Not applicable" /> + <iso_639_entry + iso_639_2B_code="zza" + iso_639_2T_code="zza" + name="Zaza; Dimili; Dimli; Kirdki; Kirmanjki; Zazaki" /> +</iso_639_entries> diff --git a/win32/dep-extract-x64.bat b/win32/dep-extract-x64.bat new file mode 100644 index 00000000..133c599d --- /dev/null +++ b/win32/dep-extract-x64.bat @@ -0,0 +1,26 @@ +@echo off +set PATH=%PATH%;%PROGRAMW6432%\7-Zip;c:\mozilla-build\gendef + +cd x64 +::obs 7z x -y *.rpm +::obs 7z x *.cpio +::obs del *.cpio +::obs xcopy /q /s /i usr\x86_64-w64-mingw32\sys-root\mingw\* . +::obs rmdir /q /s usr +::obs set OPATH=%PATH% +::obs set PATH=%PATH%;c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\bin\amd64 +::obs cd lib +::obs for %%A in (..\bin\*.dll) do ( +::obs gendef %%A +::obs lib /nologo /machine:x64 /def:%%~nA.def +::obs ) +::obs cd .. +::obs set PATH=%OPATH% +7z x -y *.zip +7z x -y *.7z +::obs copy /y ..\build\glibconfig-x64.h lib\glib-2.0\include\glibconfig.h +cd share\locale +del /q /s atk10.mo +del /q /s gettext-tools.mo +del /q /s gettext-runtime.mo +pause diff --git a/win32/dep-extract-x86.bat b/win32/dep-extract-x86.bat new file mode 100644 index 00000000..db087587 --- /dev/null +++ b/win32/dep-extract-x86.bat @@ -0,0 +1,26 @@ +@echo off +set PATH=%PATH%;%PROGRAMW6432%\7-Zip;c:\mozilla-build\gendef + +cd Win32 +::obs 7z x -y *.rpm +::obs 7z x *.cpio +::obs del *.cpio +::obs xcopy /q /s /i usr\i686-w64-mingw32\sys-root\mingw\* . +::obs rmdir /q /s usr +::obs set OPATH=%PATH% +::obs set PATH=%PATH%;c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\bin;c:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE +::obs cd lib +::obs for %%A in (..\bin\*.dll) do ( +::obs gendef %%A +::obs lib /nologo /machine:x86 /def:%%~nA.def +::obs ) +::obs cd .. +::obs set PATH=%OPATH% +7z x -y *.zip +7z x -y *.7z +::obs copy /y ..\build\glibconfig-x86.h lib\glib-2.0\include\glibconfig.h +cd share\locale +del /q /s atk10.mo +del /q /s gettext-tools.mo +del /q /s gettext-runtime.mo +pause diff --git a/win32/deps-x64.txt b/win32/deps-x64.txt new file mode 100644 index 00000000..317c5f7d --- /dev/null +++ b/win32/deps-x64.txt @@ -0,0 +1,21 @@ +http://ftp.gnome.org/pub/gnome/binaries/win64/atk/1.32/atk_1.32.0-1_win64.zip +http://ftp.gnome.org/pub/gnome/binaries/win64/atk/1.32/atk-dev_1.32.0-1_win64.zip +http://ftp.gnome.org/pub/gnome/binaries/win64/dependencies/cairo_1.10.2-1_win64.zip +http://ftp.gnome.org/pub/gnome/binaries/win64/dependencies/cairo-dev_1.10.2-1_win64.zip +http://ftp.gnome.org/pub/gnome/binaries/win64/dependencies/expat_2.0.1-3_win64.zip +http://ftp.gnome.org/pub/gnome/binaries/win64/dependencies/fontconfig_2.8.0-2_win64.zip +http://ftp.gnome.org/pub/gnome/binaries/win64/dependencies/freetype_2.4.4-1_win64.zip +http://ftp.gnome.org/pub/gnome/binaries/win64/dependencies/gettext-runtime_0.18.1.1-2_win64.zip +http://ftp.gnome.org/pub/gnome/binaries/win64/dependencies/proxy-libintl-dev_20100902_win64.zip +http://ftp.gnome.org/pub/gnome/binaries/win64/dependencies/gettext-tools-dev_0.18.1.1-2_win64.zip +http://ftp.gnome.org/pub/gnome/binaries/win64/dependencies/libpng_1.4.3-1_win64.zip +http://ftp.gnome.org/pub/gnome/binaries/win64/glib/2.26/glib_2.26.1-1_win64.zip +http://ftp.gnome.org/pub/gnome/binaries/win64/glib/2.26/glib-dev_2.26.1-1_win64.zip +http://ftp.gnome.org/pub/gnome/binaries/win64/gtk+/2.16/gtk+_2.16.6-3_win64.zip +http://ftp.gnome.org/pub/gnome/binaries/win64/gtk+/2.16/gtk+-dev_2.16.6-3_win64.zip +http://ftp.gnome.org/pub/gnome/binaries/win64/pango/1.28/pango_1.28.3-1_win64.zip +http://ftp.gnome.org/pub/gnome/binaries/win64/pango/1.28/pango-dev_1.28.3-1_win64.zip +http://xchat-wdk.googlecode.com/files/Enchant-WDK%201.6.0-2%20x64.7z +http://xchat-wdk.googlecode.com/files/Lua-WDK%205.1.4-2-2%20x64.7z +http://xchat-wdk.googlecode.com/files/OpenSSL-WDK%201.0.1c%20x64.7z +http://xchat-wdk.googlecode.com/files/LibXML-WDK%202.7.8%20x64.7z diff --git a/win32/deps-x86.txt b/win32/deps-x86.txt new file mode 100644 index 00000000..aedbb6c8 --- /dev/null +++ b/win32/deps-x86.txt @@ -0,0 +1,21 @@ +http://ftp.gnome.org/pub/gnome/binaries/win32/atk/1.32/atk_1.32.0-1_win32.zip +http://ftp.gnome.org/pub/gnome/binaries/win32/atk/1.32/atk-dev_1.32.0-1_win32.zip +http://ftp.gnome.org/pub/gnome/binaries/win32/dependencies/cairo_1.10.2-1_win32.zip +http://ftp.gnome.org/pub/gnome/binaries/win32/dependencies/cairo-dev_1.10.2-1_win32.zip +http://ftp.gnome.org/pub/gnome/binaries/win32/dependencies/expat_2.0.1-1_win32.zip +http://ftp.gnome.org/pub/gnome/binaries/win32/dependencies/fontconfig_2.8.0-2_win32.zip +http://ftp.gnome.org/pub/gnome/binaries/win32/dependencies/freetype_2.4.4-1_win32.zip +http://ftp.gnome.org/pub/gnome/binaries/win32/dependencies/gettext-runtime_0.18.1.1-2_win32.zip +http://ftp.gnome.org/pub/gnome/binaries/win32/dependencies/proxy-libintl-dev_20100902_win32.zip +http://ftp.gnome.org/pub/gnome/binaries/win32/dependencies/gettext-tools-dev_0.18.1.1-2_win32.zip +http://ftp.gnome.org/pub/gnome/binaries/win32/dependencies/libpng_1.4.3-1_win32.zip +http://ftp.gnome.org/pub/gnome/binaries/win32/glib/2.26/glib_2.26.1-1_win32.zip +http://ftp.gnome.org/pub/gnome/binaries/win32/glib/2.26/glib-dev_2.26.1-1_win32.zip +http://ftp.gnome.org/pub/gnome/binaries/win32/gtk+/2.16/gtk+_2.16.6-3_win32.zip +http://ftp.gnome.org/pub/gnome/binaries/win32/gtk+/2.16/gtk+-dev_2.16.6-3_win32.zip +http://ftp.gnome.org/pub/gnome/binaries/win32/pango/1.28/pango_1.28.3-1_win32.zip +http://ftp.gnome.org/pub/gnome/binaries/win32/pango/1.28/pango-dev_1.28.3-1_win32.zip +http://xchat-wdk.googlecode.com/files/Enchant-WDK%201.6.0-2%20x86.7z +http://xchat-wdk.googlecode.com/files/Lua-WDK%205.1.4-2-2%20x86.7z +http://xchat-wdk.googlecode.com/files/OpenSSL-WDK%201.0.1c%20x86.7z +http://xchat-wdk.googlecode.com/files/LibXML-WDK%202.7.8%20x86.7z diff --git a/win32/ext/enchant-wdk/src/build-x64.bat b/win32/ext/enchant-wdk/src/build-x64.bat new file mode 100644 index 00000000..332af68f --- /dev/null +++ b/win32/ext/enchant-wdk/src/build-x64.bat @@ -0,0 +1,13 @@ +@echo off +set WDK_ROOT=c:\WinDDK\7600.16385.1 +set INCLUDE=%WDK_ROOT%\inc\api;%WDK_ROOT%\inc\crt;%WDK_ROOT%\inc\api\crt\stl70 +set LIB=%WDK_ROOT%\lib\wnet\amd64;%WDK_ROOT%\lib\Crt\amd64 +set OPATH=%PATH% +set PATH=%PROGRAMFILES(X86)%\Microsoft Visual Studio 10.0\VC\bin\amd64;%PROGRAMFILES(X86)%\Microsoft SDKs\Windows\v7.0A\Bin\x64 +nmake -f makefile.mak clean +nmake -f makefile.mak X64=1 DLL=1 MFLAGS=-MD GLIBDIR=..\glib-x64\include\glib-2.0 +echo.Press return when ready to install! +pause +set PATH=%OPATH% +call release-x64.bat +pause diff --git a/win32/ext/enchant-wdk/src/build-x86.bat b/win32/ext/enchant-wdk/src/build-x86.bat new file mode 100644 index 00000000..f5cc71b9 --- /dev/null +++ b/win32/ext/enchant-wdk/src/build-x86.bat @@ -0,0 +1,13 @@ +@echo off +set WDK_ROOT=c:\WinDDK\7600.16385.1 +set INCLUDE=%WDK_ROOT%\inc\api;%WDK_ROOT%\inc\crt;%WDK_ROOT%\inc\api\crt\stl70 +set LIB=%WDK_ROOT%\lib\wxp\i386;%WDK_ROOT%\lib\Crt\i386 +set OPATH=%PATH% +set PATH=%PROGRAMFILES(X86)%\Microsoft Visual Studio 10.0\VC\bin;%PROGRAMFILES(X86)%\Microsoft SDKs\Windows\v7.0A\Bin;%PROGRAMFILES(X86)%\Microsoft Visual Studio 10.0\Common7\IDE +nmake -f makefile.mak clean +nmake -f makefile.mak DLL=1 MFLAGS=-MD GLIBDIR=..\glib-x86\include\glib-2.0 +echo.Press return when ready to install! +pause +set PATH=%OPATH% +call release-x86.bat +pause diff --git a/win32/ext/enchant-wdk/src/config.h b/win32/ext/enchant-wdk/src/config.h new file mode 100644 index 00000000..d91c69c6 --- /dev/null +++ b/win32/ext/enchant-wdk/src/config.h @@ -0,0 +1,15 @@ +#include <sys/types.h> + +#ifndef SSIZE_T_DEFINED +#ifdef ssize_t +#undef ssize_t +#endif +#ifdef _WIN64 +typedef __int64 ssize_t; +#else +typedef _W64 int ssize_t; +#endif +#define SSIZE_T_DEFINED +#endif + +#define ENCHANT_VERSION_STRING "1.6.0" diff --git a/win32/ext/enchant-wdk/src/libenchant.rc b/win32/ext/enchant-wdk/src/libenchant.rc new file mode 100644 index 00000000..f8f52651 --- /dev/null +++ b/win32/ext/enchant-wdk/src/libenchant.rc @@ -0,0 +1,29 @@ +#include <winver.h> + +VS_VERSION_INFO VERSIONINFO + FILEVERSION 1,6,0,2 + PRODUCTVERSION 1,6,0,0 + FILEFLAGSMASK 0 + FILEFLAGS 0 + FILEOS VOS__WINDOWS32 + FILETYPE VFT_DLL + FILESUBTYPE VFT2_UNKNOWN + BEGIN + BLOCK "StringFileInfo" + BEGIN + BLOCK "040904B0" + BEGIN + VALUE "CompanyName", "none" + VALUE "FileDescription", "libenchant" + VALUE "FileVersion", "1.6.0.2" + VALUE "InternalName", "libenchant" + VALUE "OriginalFilename", "libenchant.dll" + VALUE "ProductName", "libenchant" + VALUE "ProductVersion", "1.6.0" + END + END + BLOCK "VarFileInfo" + BEGIN + VALUE "Translation", 0x409, 1200 + END + END diff --git a/win32/ext/enchant-wdk/src/makefile.mak b/win32/ext/enchant-wdk/src/makefile.mak new file mode 100644 index 00000000..77925ad6 --- /dev/null +++ b/win32/ext/enchant-wdk/src/makefile.mak @@ -0,0 +1,588 @@ +# -*- Makefile -*- for libenchant +# +# WDK fixes by Berke Viktor, 2010 +# +# This makefile targets the Microsoft Visual C++ platform and is intended to build the enchant library along with its executables and test programs. +# It was written by Tolon (alex@tolon.co.uk). He thinks it was originally based on an MSVC makefile from glib, but can't quite remember. +# Tolon surrenders all rights regarding this file to the enchant project (http://www.abisource.com/enchant). +# Please direct any comments, bug-fixes, etc. to alex@tolon.co.uk. +# +# Example of my usage of this makefile with MSVC9: +# NMAKE -f Makefile.msvc DLL=1 PREFIX=C:\usr-msvc9 GLIBDIR=D:\dev\lib\glib +# +# Example of my usage of this makefile with MSVC6: +# NMAKE -f Makefile.msvc DLL=1 PREFIX=C:\usr-msvc6 GLIBDIR=D:\dev\lib\glib MANIFEST=0 +# +# This makefile expects glib-2.0.lib and gmodule-2.0.lib to be available in the $(PREFIX)\lib folder. + +ENCHANT_MAJOR_VERSION=1 +ENCHANT_MINOR_VERSION=6 +ENCHANT_MICRO_VERSION=0 +BUILDNUMBER=0 +ENCHANT_VERSION="$(ENCHANT_MAJOR_VERSION).$(ENCHANT_MINOR_VERSION).$(ENCHANT_MICRO_VERSION)" + +#### Start of system configuration section. #### + +# Flags that can be set on the nmake command line: +# DLL=1 for compiling a .dll with a stub .lib (default is a static .lib) +# Note that this works only with MFLAGS=-MD. +# MFLAGS={-ML|-MT|-MD} for defining the compilation model +# MFLAGS=-ML (the default) Single-threaded, statically linked - libc.lib +# MFLAGS=-MT Multi-threaded, statically linked - libcmt.lib +# MFLAGS=-MD Multi-threaded, dynamically linked - msvcrt.lib +# DEBUG=1 for compiling with debugging information +# PREFIX=Some\Directory Base directory for installation +# IIPREFIX=Some\\Directory Same thing with doubled backslashes +# GLIBDIR=Some\Directory Path to glib include directory +# MANIFEST=0 Disables embedding of manifest +!if !defined(DLL) +DLL=0 +!endif +!if !defined(DEBUG) +DEBUG=0 +!endif +!if !defined(MFLAGS) +!if !$(DLL) +MFLAGS= +!else +!if !$(DEBUG) +MFLAGS=-MD +!else +MFLAGS=-MDd +!endif +!endif +!endif +!if !defined(PREFIX) +PREFIX = c:\usr +!endif +!if !defined(IIPREFIX) +IIPREFIX = c:\\usr +!endif + +!if !defined(MANIFEST) +MANIFEST=1 +!endif + +# Directories used by "make": +glibdir = $(GLIBDIR) +rootdir = .\.. +topsrcdir = $(rootdir)\src +toptestdir = $(rootdir)\tests +bindir=$(rootdir)\bin +!if $(DEBUG) +outdir=$(rootdir)\bin\debug +!else +outdir=$(rootdir)\bin\release +!endif +objdir=$(outdir)\obj +pdbdir=$(outdir)\pdb +libdir=$(outdir) + +# Directories used by "make install": +prefix = $(PREFIX) +exec_prefix = $(prefix) +#bindir = $(exec_prefix)\bin +#otherlibdir = $(exec_prefix)\lib +otherlibdir = $(GLIBDIR)\..\..\lib +includedir = $(prefix)\include +#datadir = $(prefix)\share +#localedir = $(datadir)\locale +#aliaspath = +#IIprefix = $(IIPREFIX) +#IIexec_prefix = $(IIprefix) +#IIbindir = $(IIexec_prefix)\\bin +#IIlibdir = $(IIexec_prefix)\\lib +#IIincludedir = $(IIprefix)\\include +#IIdatadir = $(IIprefix)\\share +#IIlocaledir = $(IIdatadir)\\locale +#IIaliaspath = + +# Programs used by "make": + +CC = cl +LINK = link +MT = mt + +# Set to -W3 if you want to see maximum amount of warnings, including stupid +# ones. Set to -W1 to avoid warnings about signed/unsigned combinations. +WARN_CFLAGS = -W1 + +!if $(DEBUG) +OPTIMFLAGS = -Od +!else +# Some people prefer -O2 -G6 instead of -O1, but -O2 is not reliable in MSVC5. +OPTIMFLAGS = -DNDEBUG -D_NDEBUG -Ox -MP2 +!endif + +OUTPUTFLAGS = \ + -Fo"$(objdir)\\" + +WINFLAGS = \ + -DWINDOWS \ + -D_WINDOWS \ + -DWIN32 \ + -D_WIN32 \ + -DUNICODE \ + -D_UNICODE + +DEBUGFLAGS = -Zi + +EXCEPTIONFLAGS = -EHsc + +CPPFLAGS = -D_STL70_ -D_STATIC_CPPLIB + +CFLAGS = \ + -FI "$(topsrcdir)\config.h" \ + $(MFLAGS) \ + $(WARN_CFLAGS) \ + $(EXCEPTIONFLAGS) \ + $(OPTIMFLAGS) \ + $(CPPFLAGS) \ + $(WINFLAGS) \ + $(OUTPUTFLAGS) + +INCLUDES = \ + -I$(topsrcdir) \ + -I$(rootdir) \ + -I$(includedir) \ + -I$(glibdir) \ + -I$(glibdir)\glib \ + -I$(glibdir)\gmodule \ + -I$(glibdir)\..\..\lib\glib-2.0\include + +!ifdef X64 +LINKOBJ = msvcrt_win2003.obj +MACHINE_FLAG = X64 +CFLAGS = $(CFLAGS) /favor:AMD64 /D_WIN64 +!else +MACHINE_FLAG = X86 +LINKOBJ = msvcrt_winxp.obj +!endif + +LINKFLAGS = \ + -INCREMENTAL:NO \ + -MANIFEST \ + -MANIFESTUAC:"level='asInvoker' uiAccess='false'" \ + -PDB:$(pdbdir)\\ \ + -MACHINE:$(MACHINE_FLAG) \ + -OPT:REF \ + -OPT:ICF \ + -DEBUG \ + $(LINKOBJ) + +AR = lib +AR_FLAGS = /out: + +LN = copy +RM = -del + +# Programs used by "make install": +INSTALL = copy +INSTALL_PROGRAM = copy +INSTALL_DATA = copy + +#### End of system configuration section. #### + +SHELL = /bin/sh + +CC_OBJ = $(CC) $(INCLUDES) $(CFLAGS) -c + +CC_LINK = $(LINK) $(LINKFLAGS) +LINK_EXE = $(CC_LINK) /SUBSYSTEM:CONSOLE +LINK_DLL = $(CC_LINK) /DLL /SUBSYSTEM:WINDOWS + +!if $(MANIFEST) +EMBED_MANIFEST = $(MT) /manifest $(outdir)\exe_name.manifest /outputresource:"$(outdir)\exe_name;1" +CLEAN_MANIFEST = $(RM) $(outdir)\exe_name.manifest +!else +EMBED_MANIFEST = +CLEAN_MANIFEST = +!endif + +# test-enchantxx isn't part of all as it has problems on MSVC6. +all: makedirs libenchant libenchant_ispell libenchant_myspell enchant enchant_lsmod test-enchant +#all: makedirs libenchant libenchant_ispell enchant enchant_lsmod test-enchant + +makedirs: force + -mkdir $(bindir) + -mkdir $(outdir) + -mkdir $(libdir) + -mkdir $(objdir) + -mkdir $(pdbdir) + +################################################################################ +#### ENCHANT #### + +srcdir = $(toptestdir) + +ENCHANT_EXE=$(outdir)\enchant.exe +ENCHANT_PDB=$(pdbdir)\enchant.pdb + +ENCHANT_DEFINES = \ + -D_CONSOLE \ + -DVERSION=\"$(ENCHANT_VERSION)\" + +ENCHANT_LIBS = \ + $(otherlibdir)\glib-2.0.lib \ + $(libdir)\libenchant.lib + +ENCHANT_OBJECTS = \ + $(objdir)\enchant-ispell.obj + +$(objdir)\enchant-ispell.obj : $(srcdir)\enchant-ispell.c + $(CC_OBJ) $** $(ENCHANT_DEFINES) + +enchant: $(ENCHANT_EXE) + +$(ENCHANT_EXE): $(ENCHANT_OBJECTS) + $(LINK_EXE) $(ENCHANT_OBJECTS) $(ENCHANT_LIBS) -OUT:$(ENCHANT_EXE) + $(EMBED_MANIFEST:exe_name=enchant.exe) + $(CLEAN_MANIFEST:exe_name=enchant.exe) + +enchant_clean: + $(RM) $(ENCHANT_OBJECTS) $(ENCHANT_EXE) $(ENCHANT_PDB) + +################################################################################ +#### ENCHANT-LSMOD #### + +srcdir = $(toptestdir) + +ENCHANT_LSMOD_EXE=$(outdir)\enchant-lsmod.exe +ENCHANT_LSMOD_PDB=$(pdbdir)\enchant-lsmod.pdb + +ENCHANT_LSMOD_DEFINES = \ + -D_CONSOLE \ + -DVERSION=\"$(ENCHANT_VERSION)\" + +ENCHANT_LSMOD_LIBS = \ + $(otherlibdir)\glib-2.0.lib \ + $(libdir)\libenchant.lib + +ENCHANT_LSMOD_OBJECTS = \ + $(objdir)\enchant-lsmod.obj + +$(objdir)\enchant-lsmod.obj : $(srcdir)\enchant-lsmod.c + $(CC_OBJ) $** $(ENCHANT_LSMOD_DEFINES) + +enchant_lsmod: $(ENCHANT_LSMOD_EXE) + +$(ENCHANT_LSMOD_EXE): $(ENCHANT_LSMOD_OBJECTS) + $(LINK_EXE) $(ENCHANT_LSMOD_OBJECTS) $(ENCHANT_LSMOD_LIBS) -OUT:$(ENCHANT_LSMOD_EXE) + $(EMBED_MANIFEST:exe_name=enchant-lsmod.exe) + $(CLEAN_MANIFEST:exe_name=enchant-lsmod.exe) + +enchant_lsmod_clean: + $(RM) $(ENCHANT_LSMOD_OBJECTS) $(ENCHANT_LSMOD_EXE) $(ENCHANT_LSMOD_PDB) + +################################################################################ +#### TEST-ENCHANT #### + +srcdir = $(toptestdir) + +TEST_ENCHANT_EXE=$(outdir)\test-enchant.exe +TEST_ENCHANT_PDB=$(pdbdir)\test-enchant.pdb + +TEST_ENCHANT_DEFINES = \ + -D_CONSOLE \ + -DVERSION=\"$(ENCHANT_VERSION)\" + +TEST_ENCHANT_LIBS = \ + $(otherlibdir)\glib-2.0.lib \ + $(libdir)\libenchant.lib + +TEST_ENCHANT_OBJECTS = \ + $(objdir)\test-enchant.obj + +$(objdir)\test-enchant.obj : $(srcdir)\test-enchant.c + $(CC_OBJ) $** $(TEST_ENCHANT_DEFINES) + +test-enchant: $(TEST_ENCHANT_EXE) + +$(TEST_ENCHANT_EXE): $(TEST_ENCHANT_OBJECTS) + $(LINK_EXE) $(TEST_ENCHANT_OBJECTS) $(TEST_ENCHANT_LIBS) -OUT:$(TEST_ENCHANT_EXE) + $(EMBED_MANIFEST:exe_name=test-enchant.exe) + $(CLEAN_MANIFEST:exe_name=test-enchant.exe) + +test-enchant_clean: + $(RM) $(TEST_ENCHANT_OBJECTS) $(TEST_ENCHANT_EXE) $(TEST_ENCHANT_PDB) + +################################################################################ +#### TEST-ENCHANTXX #### + +srcdir = $(toptestdir) + +TEST_ENCHANTXX_EXE=$(outdir)\test-enchantxx.exe +TEST_ENCHANTXX_PDB=$(pdbdir)\test-enchantxx.pdb + +TEST_ENCHANTXX_DEFINES = \ + -D_CONSOLE \ + -DVERSION=\"$(ENCHANT_VERSION)\" + +TEST_ENCHANTXX_LIBS = \ + $(otherlibdir)\glib-2.0.lib \ + $(libdir)\libenchant.lib + +TEST_ENCHANTXX_OBJECTS = \ + $(objdir)\test-enchantxx.obj + +$(objdir)\test-enchantxx.obj : $(srcdir)\test-enchantxx.cpp + $(CC_OBJ) $** $(TEST_ENCHANTXX_DEFINES) + +test-enchantxx: $(TEST_ENCHANTXX_EXE) + +$(TEST_ENCHANTXX_EXE): $(TEST_ENCHANTXX_OBJECTS) + $(LINK_EXE) $(TEST_ENCHANTXX_OBJECTS) $(TEST_ENCHANTXX_LIBS) -OUT:$(TEST_ENCHANTXX_EXE) + $(EMBED_MANIFEST:exe_name=test-enchantxx.exe) + $(CLEAN_MANIFEST:exe_name=test-enchantxx.exe) + +test-enchantxx_clean: + $(RM) $(TEST_ENCHANTXX_OBJECTS) $(TEST_ENCHANTXX_EXE) $(TEST_ENCHANTXX_PDB) + +################################################################################ +#### LIBENCHANT #### + +srcdir = $(topsrcdir) + +LIBENCHANT_DEFINES = \ + -D_ENCHANT_BUILD=1 \ + -DWINDLL + +LIBENCHANT_DLL=$(outdir)\libenchant.dll +LIBENCHANT_LIB=$(outdir)\libenchant.lib +LIBENCHANT_PDB=$(pdbdir)\libenchant.pdb +LIBENCHANT_RES=$(srcdir)\libenchant.res +LIBENCHANT_RC=$(srcdir)\libenchant.rc + +LIBENCHANT_LIBS = \ + $(otherlibdir)\glib-2.0.lib \ + $(otherlibdir)\gmodule-2.0.lib \ + advapi32.lib + +LIBENCHANT_OBJECTS = \ + $(objdir)\enchant.obj \ + $(objdir)\prefix.obj \ + $(objdir)\pwl.obj + + + +$(objdir)\pwl.obj : $(srcdir)\pwl.c + $(CC_OBJ) $** $(LIBENCHANT_DEFINES) + +$(objdir)\prefix.obj : $(srcdir)\prefix.c + $(CC_OBJ) $** $(LIBENCHANT_DEFINES) + +$(objdir)\enchant.obj : $(srcdir)\enchant.c + $(CC_OBJ) $** $(LIBENCHANT_DEFINES) + +$(LIBENCHANT_RES) : $(LIBENCHANT_RC) + rc -Fo $(LIBENCHANT_RES) $(LIBENCHANT_RC) + +!if !$(DLL) +libenchant: LIBENCHANT_LIB +libenchant_clean: libenchant_lib_clean +!else +libenchant: LIBENCHANT_DLL +libenchant_clean: libenchant_dll_clean +!endif + +LIBENCHANT_LIB : $(LIBENCHANT_OBJECTS) + -$(RM) libenchant.lib + $(AR) $(AR_FLAGS)$(LIBENCHANT_LIB) $(LIBENCHANT_OBJECTS) + +# libenchant.dll and libenchant.lib are created together. +LIBENCHANT_DLL : $(LIBENCHANT_OBJECTS) $(LIBENCHANT_RES) + $(LINK_DLL) $(LIBENCHANT_OBJECTS) $(LIBENCHANT_LIBS) $(LIBENCHANT_RES) -OUT:$(LIBENCHANT_DLL) + $(EMBED_MANIFEST:exe_name=libenchant.dll) + $(CLEAN_MANIFEST:exe_name=libenchant.dll) + +libenchant_lib_clean: + $(RM) $(LIBENCHANT_OBJECTS) $(LIBENCHANT_LIB) + +libenchant_dll_clean: + $(RM) $(LIBENCHANT_OBJECTS) $(LIBENCHANT_LIB) $(LIBENCHANT_DLL) $(LIBENCHANT_PDB) $(LIBENCHANT_RES) $(LIBENCHANT_RC) + +################################################################################ +#### LIBENCHANT_ISPELL #### + +srcdir = $(topsrcdir)\ispell + +LIBENCHANT_ISPELL_DEFINES = \ + -D "_ENCHANT_BUILD=1" \ + -D "ISPELL_PROVIDER_EXPORTS" \ + -D_USRDLL \ + -D_WINDLL + +LIBENCHANT_ISPELL_DLL=$(outdir)\libenchant_ispell.dll +LIBENCHANT_ISPELL_LIB=$(libdir)\libenchant_ispell.lib +LIBENCHANT_ISPELL_PDB=$(pdbdir)\libenchant_ispell.pdb + +LIBENCHANT_ISPELL_LIBS = \ + $(otherlibdir)\glib-2.0.lib \ + $(otherlibdir)\gmodule-2.0.lib \ + $(libdir)\libenchant.lib \ + advapi32.lib ntstc_msvcrt.lib + +LIBENCHANT_ISPELL_OBJECTS = \ + $(objdir)\correct.obj \ + $(objdir)\good.obj \ + $(objdir)\hash.obj \ + $(objdir)\ispell_checker.obj \ + $(objdir)\lookup.obj \ + $(objdir)\makedent.obj \ + $(objdir)\tgood.obj + +!if !$(DLL) +libenchant_ispell: LIBENCHANT_ISPELL_LIB +libenchant_ispell_clean: libenchant_ispell_lib_clean +!else +libenchant_ispell: LIBENCHANT_ISPELL_DLL +libenchant_ispell_clean: libenchant_ispell_dll_clean +!endif + +$(objdir)\correct.obj : $(srcdir)\correct.cpp + $(CC_OBJ) $** $(LIBENCHANT_ISPELL_DEFINES) + +$(objdir)\good.obj : $(srcdir)\good.cpp + $(CC_OBJ) $** $(LIBENCHANT_ISPELL_DEFINES) + +$(objdir)\hash.obj : $(srcdir)\hash.cpp + $(CC_OBJ) $** $(LIBENCHANT_ISPELL_DEFINES) + +$(objdir)\ispell_checker.obj : $(srcdir)\ispell_checker.cpp + $(CC_OBJ) $** $(LIBENCHANT_ISPELL_DEFINES) + +$(objdir)\lookup.obj : $(srcdir)\lookup.cpp + $(CC_OBJ) $** $(LIBENCHANT_ISPELL_DEFINES) + +$(objdir)\makedent.obj : $(srcdir)\makedent.cpp + $(CC_OBJ) $** $(LIBENCHANT_ISPELL_DEFINES) + +$(objdir)\tgood.obj : $(srcdir)\tgood.cpp + $(CC_OBJ) $** $(LIBENCHANT_ISPELL_DEFINES) + +LIBENCHANT_ISPELL_LIB : $(LIBENCHANT_ISPELL_OBJECTS) + -$(RM) $(LIBENCHANT_ISPELL_LIB) + $(AR) $(AR_FLAGS)$(LIBENCHANT_ISPELL_LIB) $(LIBENCHANT_ISPELL_OBJECTS) + +# libenchant_ispell.dll and libenchant_ispell.lib are created together. +LIBENCHANT_ISPELL_DLL : $(LIBENCHANT_ISPELL_OBJECTS) + $(LINK_DLL) $(LIBENCHANT_ISPELL_OBJECTS) $(LIBENCHANT_ISPELL_LIBS) -OUT:$(LIBENCHANT_ISPELL_DLL) + $(EMBED_MANIFEST:exe_name=libenchant_ispell.dll) + $(CLEAN_MANIFEST:exe_name=libenchant_ispell.dll) + +libenchant_ispell_lib_clean: + $(RM) $(LIBENCHANT_ISPELL_OBJECTS) $(LIBENCHANT_ISPELL_LIB) + +libenchant_ispell_dll_clean: + $(RM) $(LIBENCHANT_ISPELL_OBJECTS) $(LIBENCHANT_ISPELL_LIB) $(LIBENCHANT_ISPELL_DLL) $(LIBENCHANT_ISPELL_PDB) + +################################################################################ +#### LIBENCHANT_MYSPELL #### + +srcdir = $(topsrcdir)\myspell + +LIBENCHANT_MYSPELL_DEFINES = \ + -D "HUNSPELL_STATIC" \ + -D "_ENCHANT_BUILD=1" \ + -D "_USRDLL" \ + -D "MYSPELL_PROVIDER_EXPORTS" \ + -D "_WINDLL" + +LIBENCHANT_MYSPELL_DLL=$(outdir)\libenchant_myspell.dll +LIBENCHANT_MYSPELL_LIB=$(libdir)\libenchant_myspell.lib +LIBENCHANT_MYSPELL_PDB=$(pdbdir)\libenchant_myspell.pdb + +LIBENCHANT_MYSPELL_LIBS = \ + $(otherlibdir)\glib-2.0.lib \ + $(otherlibdir)\gmodule-2.0.lib \ + $(libdir)\libenchant.lib \ + advapi32.lib ntstc_msvcrt.lib + +LIBENCHANT_MYSPELL_OBJECTS = \ + $(objdir)\affentry.obj \ + $(objdir)\affixmgr.obj \ + $(objdir)\dictmgr.obj \ + $(objdir)\csutil.obj \ + $(objdir)\utf_info.obj \ + $(objdir)\hashmgr.obj \ + $(objdir)\suggestmgr.obj \ + $(objdir)\hunspell.obj \ + $(objdir)\filemgr.obj \ + $(objdir)\phonet.obj \ + $(objdir)\hunzip.obj \ + $(objdir)\myspell_checker.obj + +!if !$(DLL) +libenchant_myspell: LIBENCHANT_MYSPELL_LIB +libenchant_myspell_clean: libenchant_myspell_lib_clean +!else +libenchant_myspell: LIBENCHANT_MYSPELL_DLL +libenchant_myspell_clean: libenchant_myspell_dll_clean +!endif + +$(objdir)\affentry.obj : $(srcdir)\affentry.cxx + $(CC_OBJ) $** $(LIBENCHANT_MYSPELL_DEFINES) + +$(objdir)\affixmgr.obj : $(srcdir)\affixmgr.cxx + $(CC_OBJ) $** $(LIBENCHANT_MYSPELL_DEFINES) + +$(objdir)\dictmgr.obj : $(srcdir)\dictmgr.cxx + $(CC_OBJ) $** $(LIBENCHANT_MYSPELL_DEFINES) + +$(objdir)\csutil.obj : $(srcdir)\csutil.cxx + $(CC_OBJ) $** $(LIBENCHANT_MYSPELL_DEFINES) + +$(objdir)\utf_info.obj : $(srcdir)\utf_info.cxx + $(CC_OBJ) $** $(LIBENCHANT_MYSPELL_DEFINES) + +$(objdir)\hashmgr.obj : $(srcdir)\hashmgr.cxx + $(CC_OBJ) $** $(LIBENCHANT_MYSPELL_DEFINES) + +$(objdir)\suggestmgr.obj : $(srcdir)\suggestmgr.cxx + $(CC_OBJ) $** $(LIBENCHANT_MYSPELL_DEFINES) + +$(objdir)\hunspell.obj : $(srcdir)\hunspell.cxx + $(CC_OBJ) $** $(LIBENCHANT_MYSPELL_DEFINES) + +$(objdir)\filemgr.obj : $(srcdir)\filemgr.cxx + $(CC_OBJ) $** $(LIBENCHANT_MYSPELL_DEFINES) + +$(objdir)\phonet.obj : $(srcdir)\phonet.cxx + $(CC_OBJ) $** $(LIBENCHANT_MYSPELL_DEFINES) + +$(objdir)\hunzip.obj : $(srcdir)\hunzip.cxx + $(CC_OBJ) $** $(LIBENCHANT_MYSPELL_DEFINES) + +$(objdir)\myspell_checker.obj : $(srcdir)\myspell_checker.cpp + $(CC_OBJ) $** $(LIBENCHANT_MYSPELL_DEFINES) + +LIBENCHANT_MYSPELL_LIB : $(LIBENCHANT_MYSPELL_OBJECTS) + -$(RM) $(LIBENCHANT_MYSPELL_LIB) + $(AR) $(AR_FLAGS)$(LIBENCHANT_MYSPELL_LIB) $(LIBENCHANT_MYSPELL_OBJECTS) + +# libenchant_myspell.dll and libenchant_myspell.lib are created together. +LIBENCHANT_MYSPELL_DLL : $(LIBENCHANT_MYSPELL_OBJECTS) + $(LINK_DLL) $(LIBENCHANT_MYSPELL_OBJECTS) $(LIBENCHANT_MYSPELL_LIBS) -OUT:$(LIBENCHANT_MYSPELL_DLL) + $(EMBED_MANIFEST:exe_name=libenchant_myspell.dll) + $(CLEAN_MANIFEST:exe_name=libenchant_myspell.dll) + +libenchant_myspell_lib_clean: + $(RM) $(LIBENCHANT_MYSPELL_OBJECTS) $(LIBENCHANT_MYSPELL_LIB) + +libenchant_myspell_dll_clean: + $(RM) $(LIBENCHANT_MYSPELL_OBJECTS) $(LIBENCHANT_MYSPELL_LIB) $(LIBENCHANT_MYSPELL_DLL) $(LIBENCHANT_MYSPELL_PDB) + +################################################################################ + +check : all + +mostlyclean : clean + +clean: libenchant_clean libenchant_ispell_clean libenchant_myspell_clean enchant_clean enchant_lsmod_clean test-enchant_clean test-enchantxx_clean + +distclean : clean + +maintainer-clean : distclean + +force : + diff --git a/win32/ext/enchant-wdk/src/release-x64.bat b/win32/ext/enchant-wdk/src/release-x64.bat new file mode 100644 index 00000000..0a40fc71 --- /dev/null +++ b/win32/ext/enchant-wdk/src/release-x64.bat @@ -0,0 +1,20 @@ +@echo off +set ENCHANT_DEST=..\..\enchant-wdk-1.6.0-x64 +set RELEASE_DIR=..\bin\release +rmdir /q /s %ENCHANT_DEST% +mkdir %ENCHANT_DEST% +copy ..\COPYING.LIB %ENCHANT_DEST%\LICENSE.ENCHANT +xcopy /q /s /i %RELEASE_DIR%\enchant.exe %ENCHANT_DEST%\bin\ +copy %RELEASE_DIR%\enchant-lsmod.exe %ENCHANT_DEST%\bin +copy %RELEASE_DIR%\libenchant.dll %ENCHANT_DEST%\bin +xcopy /q /s /i enchant.h %ENCHANT_DEST%\include\enchant\ +copy "enchant++.h" %ENCHANT_DEST%\include\enchant\ +copy enchant-provider.h %ENCHANT_DEST%\include\enchant\ +xcopy /q /s /i %RELEASE_DIR%\libenchant_ispell.dll %ENCHANT_DEST%\lib\enchant\ +copy %RELEASE_DIR%\libenchant_ispell.exp %ENCHANT_DEST%\lib\enchant\ +copy %RELEASE_DIR%\libenchant_ispell.lib %ENCHANT_DEST%\lib\enchant\ +copy %RELEASE_DIR%\libenchant_myspell.dll %ENCHANT_DEST%\lib\enchant\ +copy %RELEASE_DIR%\libenchant_myspell.exp %ENCHANT_DEST%\lib\enchant\ +copy %RELEASE_DIR%\libenchant_myspell.lib %ENCHANT_DEST%\lib\enchant\ +copy %RELEASE_DIR%\libenchant.exp %ENCHANT_DEST%\lib +copy %RELEASE_DIR%\libenchant.lib %ENCHANT_DEST%\lib diff --git a/win32/ext/enchant-wdk/src/release-x86.bat b/win32/ext/enchant-wdk/src/release-x86.bat new file mode 100644 index 00000000..a33bec76 --- /dev/null +++ b/win32/ext/enchant-wdk/src/release-x86.bat @@ -0,0 +1,20 @@ +@echo off +set ENCHANT_DEST=..\..\enchant-wdk-1.6.0-x86 +set RELEASE_DIR=..\bin\release +rmdir /q /s %ENCHANT_DEST% +mkdir %ENCHANT_DEST% +copy ..\COPYING.LIB %ENCHANT_DEST%\LICENSE.ENCHANT +xcopy /q /s /i %RELEASE_DIR%\enchant.exe %ENCHANT_DEST%\bin\ +copy %RELEASE_DIR%\enchant-lsmod.exe %ENCHANT_DEST%\bin +copy %RELEASE_DIR%\libenchant.dll %ENCHANT_DEST%\bin +xcopy /q /s /i enchant.h %ENCHANT_DEST%\include\enchant\ +copy "enchant++.h" %ENCHANT_DEST%\include\enchant\ +copy enchant-provider.h %ENCHANT_DEST%\include\enchant\ +xcopy /q /s /i %RELEASE_DIR%\libenchant_ispell.dll %ENCHANT_DEST%\lib\enchant\ +copy %RELEASE_DIR%\libenchant_ispell.exp %ENCHANT_DEST%\lib\enchant\ +copy %RELEASE_DIR%\libenchant_ispell.lib %ENCHANT_DEST%\lib\enchant\ +copy %RELEASE_DIR%\libenchant_myspell.dll %ENCHANT_DEST%\lib\enchant\ +copy %RELEASE_DIR%\libenchant_myspell.exp %ENCHANT_DEST%\lib\enchant\ +copy %RELEASE_DIR%\libenchant_myspell.lib %ENCHANT_DEST%\lib\enchant\ +copy %RELEASE_DIR%\libenchant.exp %ENCHANT_DEST%\lib +copy %RELEASE_DIR%\libenchant.lib %ENCHANT_DEST%\lib diff --git a/win32/ext/libxml-wdk/libxml-wdk.patch b/win32/ext/libxml-wdk/libxml-wdk.patch new file mode 100644 index 00000000..fa8979b2 --- /dev/null +++ b/win32/ext/libxml-wdk/libxml-wdk.patch @@ -0,0 +1,57 @@ +diff -ruN --strip-trailing-cr libxml2-2.7.8.orig/libxml.h libxml2-2.7.8/libxml.h +--- libxml2-2.7.8.orig/libxml.h 2010-10-12 08:25:32 +0200 ++++ libxml2-2.7.8/libxml.h 2011-08-07 09:12:07 +0200 +@@ -94,3 +94,7 @@ + # define LIBXML_STATIC + #endif + #endif /* ! __XML_LIBXML_H__ */ ++ ++#ifndef vsnprintf ++#define vsnprintf _vsnprintf ++#endif +diff -ruN --strip-trailing-cr libxml2-2.7.8.orig/win32/Makefile.msvc libxml2-2.7.8/win32/Makefile.msvc +--- libxml2-2.7.8.orig/win32/Makefile.msvc 2010-11-04 14:58:44 +0100 ++++ libxml2-2.7.8/win32/Makefile.msvc 2011-08-07 09:23:47 +0200 +@@ -58,12 +58,20 @@ + !if "$(WITH_ZLIB)" == "1" + CFLAGS = $(CFLAGS) /D "HAVE_ZLIB_H" + !endif +-CFLAGS = $(CFLAGS) /D_CRT_SECURE_NO_DEPRECATE /D_CRT_NONSTDC_NO_DEPRECATE ++CFLAGS = $(CFLAGS) + + # The linker and its options. + LD = link.exe + LDFLAGS = /nologo /VERSION:$(LIBXML_MAJOR_VERSION).$(LIBXML_MINOR_VERSION) + LDFLAGS = $(LDFLAGS) /LIBPATH:$(BINDIR) /LIBPATH:$(LIBPREFIX) ++ ++!ifdef X64 ++CFLAGS = $(CFLAGS) /favor:AMD64 ++LDFLAGS = $(LDFLAGS) msvcrt_win2003.obj ++!else ++LDFLAGS = $(LDFLAGS) msvcrt_winxp.obj ++!endif ++ + LIBS = + !if "$(WITH_FTP)" == "1" || "$(WITH_HTTP)" == "1" + LIBS = $(LIBS) wsock32.lib ws2_32.lib +@@ -71,9 +79,9 @@ + !if "$(WITH_ICONV)" == "1" + LIBS = $(LIBS) iconv.lib + !endif +-+!if "$(WITH_ICU)" == "1" ++!if "$(WITH_ICU)" == "1" + +LIBS = $(LIBS) icu.lib +-+!endif ++!endif + !if "$(WITH_ZLIB)" == "1" + LIBS = $(LIBS) zdll.lib + !endif +@@ -94,7 +102,7 @@ + LDFLAGS = $(LDFLAGS) /DEBUG + !else + CFLAGS = $(CFLAGS) /D "NDEBUG" /O2 +-LDFLAGS = $(LDFLAGS) /OPT:NOWIN98 ++LDFLAGS = $(LDFLAGS) + !endif + + # Libxml object files. diff --git a/win32/ext/libxml-wdk/win32/build-x64.bat b/win32/ext/libxml-wdk/win32/build-x64.bat new file mode 100644 index 00000000..fadfe4c8 --- /dev/null +++ b/win32/ext/libxml-wdk/win32/build-x64.bat @@ -0,0 +1,20 @@ +@echo off +set TARGET="LibXML-WDK 2.7.8 x64.7z" +set WDK_ROOT=c:\WinDDK\7600.16385.1 +set INCLUDE=%WDK_ROOT%\inc\api;%WDK_ROOT%\inc\crt +set LIB=%WDK_ROOT%\lib\wnet\amd64;%WDK_ROOT%\lib\Crt\amd64 +set PATH=%PROGRAMFILES(X86)%\Microsoft Visual Studio 10.0\VC\bin\amd64;%PROGRAMFILES(X86)%\Microsoft SDKs\Windows\v7.0A\Bin\x64;%SystemRoot%\SysWOW64 +set X64=1 +cscript configure.js compiler=msvc iconv=no iso8859x=yes +nmake /nologo /f Makefile.msvc clean +nmake /nologo /f Makefile.msvc +rmdir /q /s bin +rmdir /q /s include +rmdir /q /s lib +nmake /nologo /f Makefile.msvc install +move lib\libxml2.dll bin +copy /y ..\COPYING LICENSE.LIBXML +set PATH=%PATH%;%PROGRAMW6432%\7-Zip +del %TARGET% +7z a %TARGET% bin include lib LICENSE.LIBXML +pause diff --git a/win32/ext/libxml-wdk/win32/build-x86.bat b/win32/ext/libxml-wdk/win32/build-x86.bat new file mode 100644 index 00000000..961fafc8 --- /dev/null +++ b/win32/ext/libxml-wdk/win32/build-x86.bat @@ -0,0 +1,19 @@ +@echo off +set TARGET="LibXML-WDK 2.7.8 x86.7z" +set WDK_ROOT=c:\WinDDK\7600.16385.1 +set INCLUDE=%WDK_ROOT%\inc\api;%WDK_ROOT%\inc\crt +set LIB=%WDK_ROOT%\lib\wxp\i386;%WDK_ROOT%\lib\Crt\i386 +set PATH=%PROGRAMFILES(X86)%\Microsoft Visual Studio 10.0\VC\bin;%PROGRAMFILES(X86)%\Microsoft Visual Studio 10.0\Common7\IDE;%PROGRAMFILES(X86)%\Microsoft SDKs\Windows\v7.0A\Bin;%SystemRoot%\system32 +cscript configure.js compiler=msvc iconv=no iso8859x=yes +nmake /nologo /f Makefile.msvc clean +nmake /nologo /f Makefile.msvc +rmdir /q /s bin +rmdir /q /s include +rmdir /q /s lib +nmake /nologo /f Makefile.msvc install +move lib\libxml2.dll bin +copy /y ..\COPYING LICENSE.LIBXML +set PATH=%PATH%;%PROGRAMW6432%\7-Zip +del %TARGET% +7z a %TARGET% bin include lib LICENSE.LIBXML +pause diff --git a/win32/ext/lua-wdk/COPYRIGHT b/win32/ext/lua-wdk/COPYRIGHT new file mode 100644 index 00000000..ef050312 --- /dev/null +++ b/win32/ext/lua-wdk/COPYRIGHT @@ -0,0 +1,34 @@ +Lua License +----------- + +Lua is licensed under the terms of the MIT license reproduced below. +This means that Lua is free software and can be used for both academic +and commercial purposes at absolutely no cost. + +For details and rationale, see http://www.lua.org/license.html . + +=============================================================================== + +Copyright (C) 1994-2011 Lua.org, PUC-Rio. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + +=============================================================================== + +(end of COPYRIGHT) diff --git a/win32/ext/lua-wdk/build-x64.bat b/win32/ext/lua-wdk/build-x64.bat new file mode 100644 index 00000000..f51baee1 --- /dev/null +++ b/win32/ext/lua-wdk/build-x64.bat @@ -0,0 +1,55 @@ +@echo off +set WDK_ROOT=c:\WinDDK\7600.16385.1 +set OPATH=%PATH% +set INCLUDE=%WDK_ROOT%\inc\api;%WDK_ROOT%\inc\crt;%WDK_ROOT%\inc\ddk +set LIB=%WDK_ROOT%\lib\wnet\amd64;%WDK_ROOT%\lib\Crt\amd64 +set PATH=%PROGRAMFILES(X86)%\Microsoft Visual Studio 10.0\VC\bin\amd64 +set DEST=..\lua-wdk-5.2.0-x64 + +set MYCOMPILE=cl /nologo /MD /O2 /W3 /c +set MYLINK=link /nologo msvcrt_win2003.obj +set MYMT=mt /nologo + +cd src +%MYCOMPILE% /DLUA_BUILD_AS_DLL l*.c +del lua.obj luac.obj +%MYLINK% /DLL /out:lua52.dll l*.obj +if exist lua52.dll.manifest^ + %MYMT% -manifest lua52.dll.manifest -outputresource:lua52.dll;2 +%MYCOMPILE% /DLUA_BUILD_AS_DLL lua.c +%MYLINK% /out:lua.exe lua.obj lua52.lib +if exist lua.exe.manifest^ + %MYMT% -manifest lua.exe.manifest -outputresource:lua.exe +%MYCOMPILE% luac.c +@rem del lua.obj linit.obj lbaselib.obj ldblib.obj liolib.obj lmathlib.obj^ +@rem loslib.obj ltablib.obj lstrlib.obj loadlib.obj +%MYLINK% /out:luac.exe luac.obj lua52.lib +if exist luac.exe.manifest^ + %MYMT% -manifest luac.exe.manifest -outputresource:luac.exe +del *.obj *.manifest +cd .. + +echo.Press return when ready to install! +pause +set PATH=%OPATH% +rmdir /Q /S %DEST% +mkdir %DEST% +mkdir %DEST%\bin +mkdir %DEST%\lib +mkdir %DEST%\include +copy COPYRIGHT %DEST%\LICENSE.LUA +:: binaries and libraries +copy src\lua.exe %DEST%\bin +copy src\lua52.dll %DEST%\bin +copy src\lua52.exp %DEST%\bin +copy src\luac.exe %DEST%\bin +:: library +copy src\lua52.lib %DEST%\lib +:: api +copy src\lua.h %DEST%\include +copy src\luaconf.h %DEST%\include +copy src\lualib.h %DEST%\include +copy src\lauxlib.h %DEST%\include +copy src\lua.hpp %DEST%\include +echo.Finished! +pause diff --git a/win32/ext/lua-wdk/build-x86.bat b/win32/ext/lua-wdk/build-x86.bat new file mode 100644 index 00000000..0bfb7b49 --- /dev/null +++ b/win32/ext/lua-wdk/build-x86.bat @@ -0,0 +1,55 @@ +@echo off +set WDK_ROOT=c:\WinDDK\7600.16385.1 +set OPATH=%PATH% +set INCLUDE=%WDK_ROOT%\inc\api;%WDK_ROOT%\inc\crt;%WDK_ROOT%\inc\ddk +set LIB=%WDK_ROOT%\lib\wxp\i386;%WDK_ROOT%\lib\Crt\i386 +set PATH=%PROGRAMFILES(X86)%\Microsoft Visual Studio 10.0\VC\bin;%PROGRAMFILES(X86)%\Microsoft Visual Studio 10.0\Common7\IDE +set DEST=..\lua-wdk-5.2.0-x86 + +set MYCOMPILE=cl /nologo /MD /O2 /W3 /c +set MYLINK=link /nologo msvcrt_winxp.obj +set MYMT=mt /nologo + +cd src +%MYCOMPILE% /DLUA_BUILD_AS_DLL l*.c +del lua.obj luac.obj +%MYLINK% /DLL /out:lua52.dll l*.obj +if exist lua52.dll.manifest^ + %MYMT% -manifest lua52.dll.manifest -outputresource:lua52.dll;2 +%MYCOMPILE% /DLUA_BUILD_AS_DLL lua.c +%MYLINK% /out:lua.exe lua.obj lua52.lib +if exist lua.exe.manifest^ + %MYMT% -manifest lua.exe.manifest -outputresource:lua.exe +%MYCOMPILE% luac.c +@rem del lua.obj linit.obj lbaselib.obj ldblib.obj liolib.obj lmathlib.obj^ +@rem loslib.obj ltablib.obj lstrlib.obj loadlib.obj +%MYLINK% /out:luac.exe luac.obj lua52.lib +if exist luac.exe.manifest^ + %MYMT% -manifest luac.exe.manifest -outputresource:luac.exe +del *.obj *.manifest +cd .. + +echo.Press return when ready to install! +pause +set PATH=%OPATH% +rmdir /Q /S %DEST% +mkdir %DEST% +mkdir %DEST%\bin +mkdir %DEST%\lib +mkdir %DEST%\include +copy COPYRIGHT %DEST%\LICENSE.LUA +:: binaries and libraries +copy src\lua.exe %DEST%\bin +copy src\lua52.dll %DEST%\bin +copy src\lua52.exp %DEST%\bin +copy src\luac.exe %DEST%\bin +:: library +copy src\lua52.lib %DEST%\lib +:: api +copy src\lua.h %DEST%\include +copy src\luaconf.h %DEST%\include +copy src\lualib.h %DEST%\include +copy src\lauxlib.h %DEST%\include +copy src\lua.hpp %DEST%\include +echo.Finished! +pause diff --git a/win32/ext/lua-wdk/lua-wdk.patch b/win32/ext/lua-wdk/lua-wdk.patch new file mode 100644 index 00000000..5ba3415c --- /dev/null +++ b/win32/ext/lua-wdk/lua-wdk.patch @@ -0,0 +1,36 @@ +diff -ruN --strip-trailing-cr lua-5.2.0.orig/src/lopcodes.h lua-5.2.0/src/lopcodes.h +--- lua-5.2.0.orig/src/lopcodes.h 2011-07-15 15:50:28 +0200 ++++ lua-5.2.0/src/lopcodes.h 2012-01-10 15:41:33 +0100 +@@ -269,7 +269,8 @@ + OpArgK /* argument is a constant or register/constant */ + }; + +-LUAI_DDEC const lu_byte luaP_opmodes[NUM_OPCODES]; ++/* LUAI_DDEC const lu_byte luaP_opmodes[NUM_OPCODES]; */ ++const lu_byte luaP_opmodes[NUM_OPCODES]; + + #define getOpMode(m) (cast(enum OpMode, luaP_opmodes[m] & 3)) + #define getBMode(m) (cast(enum OpArgMask, (luaP_opmodes[m] >> 4) & 3)) +@@ -278,7 +279,8 @@ + #define testTMode(m) (luaP_opmodes[m] & (1 << 7)) + + +-LUAI_DDEC const char *const luaP_opnames[NUM_OPCODES+1]; /* opcode names */ ++/* LUAI_DDEC const char *const luaP_opnames[NUM_OPCODES+1]; */ ++const char *const luaP_opnames[NUM_OPCODES+1]; /* opcode names */ + + + /* number of list items to accumulate before a SETLIST instruction */ +diff -ruN --strip-trailing-cr lua-5.2.0.orig/src/lundump.h lua-5.2.0/src/lundump.h +--- lua-5.2.0.orig/src/lundump.h 2011-05-06 16:35:16 +0200 ++++ lua-5.2.0/src/lundump.h 2012-01-10 15:39:37 +0100 +@@ -17,7 +17,8 @@ + LUAI_FUNC void luaU_header (lu_byte* h); + + /* dump one chunk; from ldump.c */ +-LUAI_FUNC int luaU_dump (lua_State* L, const Proto* f, lua_Writer w, void* data, int strip); ++/* LUAI_FUNC int luaU_dump (lua_State* L, const Proto* f, lua_Writer w, void* data, int strip); */ ++LUALIB_API int luaU_dump (lua_State* L, const Proto* f, lua_Writer w, void* data, int strip); + + /* data to catch conversion errors */ + #define LUAC_TAIL "\x19\x93\r\n\x1a\n" diff --git a/win32/ext/nss-wdk/build-x64.bat b/win32/ext/nss-wdk/build-x64.bat new file mode 100644 index 00000000..96bb0422 --- /dev/null +++ b/win32/ext/nss-wdk/build-x64.bat @@ -0,0 +1,13 @@ +@echo off +set WDK_ROOT=c:\WinDDK\7600.16385.1 +set INCLUDE=%WDK_ROOT%\inc\api;%WDK_ROOT%\inc\crt;%WDK_ROOT%\inc\ddk +set LIB=%WDK_ROOT%\lib\wnet\amd64;%WDK_ROOT%\lib\Crt\amd64 +set PATH=%PROGRAMFILES(X86)%\Microsoft Visual Studio 10.0\VC\bin\amd64;%PROGRAMFILES(X86)%\Microsoft SDKs\Windows\v7.0A\Bin\x64;c:\mozilla-build\msys\bin;c:\mozilla-build\moztools-x64\bin +set BUILD_OPT=1 +set USE_64=1 +set WINDDK_BUILD=1 +cd mozilla\security\nss +make nss_build_all +cd ..\..\.. +echo.Finished! +pause diff --git a/win32/ext/nss-wdk/build-x86.bat b/win32/ext/nss-wdk/build-x86.bat new file mode 100644 index 00000000..c6d4868e --- /dev/null +++ b/win32/ext/nss-wdk/build-x86.bat @@ -0,0 +1,13 @@ +@echo off +set WDK_ROOT=c:\WinDDK\7600.16385.1 +set INCLUDE=%WDK_ROOT%\inc\api;%WDK_ROOT%\inc\crt +set LIB=%WDK_ROOT%\lib\wxp\i386;%WDK_ROOT%\lib\Crt\i386 +set PATH=%PROGRAMFILES(X86)%\Microsoft Visual Studio 10.0\VC\bin;%PROGRAMFILES(X86)%\Microsoft Visual Studio 10.0\Common7\IDE;%PROGRAMFILES(X86)%\Microsoft SDKs\Windows\v7.0A\Bin;c:\mozilla-build\msys\bin;c:\mozilla-build\moztools\bin +set BUILD_OPT=1 +set USE_64= +set WINDDK_BUILD=1 +cd mozilla\security\nss +make nss_build_all +cd ..\..\.. +echo.Finished! +pause diff --git a/win32/ext/nss-wdk/nss-wdk.patch b/win32/ext/nss-wdk/nss-wdk.patch new file mode 100644 index 00000000..fdbdbf8c --- /dev/null +++ b/win32/ext/nss-wdk/nss-wdk.patch @@ -0,0 +1,273 @@ +diff -ruN --strip-trailing-cr nss-3.12.9.orig/mozilla/dbm/include/mcom_db.h nss-3.12.9/mozilla/dbm/include/mcom_db.h +--- nss-3.12.9.orig/mozilla/dbm/include/mcom_db.h 2009-06-05 01:18:50 +0200 ++++ nss-3.12.9/mozilla/dbm/include/mcom_db.h 2011-02-11 00:03:42 +0100 +@@ -40,6 +40,15 @@ + #define off_t long + #endif + ++#ifdef WINDDK_BUILD ++#ifndef stat ++#define stat _stat ++#endif ++#ifndef getpid ++#define getpid GetCurrentProcessId ++#endif ++#endif ++ + #ifndef macintosh + #include <sys/types.h> + #endif +diff -ruN --strip-trailing-cr nss-3.12.9.orig/mozilla/dbm/src/mktemp.c nss-3.12.9/mozilla/dbm/src/mktemp.c +--- nss-3.12.9.orig/mozilla/dbm/src/mktemp.c 2009-06-05 01:19:32 +0200 ++++ nss-3.12.9/mozilla/dbm/src/mktemp.c 2011-02-11 00:03:42 +0100 +@@ -45,13 +45,13 @@ + #include <ctype.h> + #include "mcom_db.h" + +-#ifndef _WINDOWS +-#include <unistd.h> +-#endif +- + #ifdef _WINDOWS ++#ifndef WINDDK_BUILD + #include <process.h> ++#endif + #include "winfile.h" ++#else ++#include <unistd.h> + #endif + + static int _gettemp(char *path, register int *doopen, int extraFlags); +diff -ruN --strip-trailing-cr nss-3.12.9.orig/mozilla/nsprpub/config/config.mk nss-3.12.9/mozilla/nsprpub/config/config.mk +--- nss-3.12.9.orig/mozilla/nsprpub/config/config.mk 2010-07-09 04:10:34 +0200 ++++ nss-3.12.9/mozilla/nsprpub/config/config.mk 2011-02-11 00:03:42 +0100 +@@ -154,6 +154,15 @@ + DEFINES += -DMOZ_UNICODE + endif + ++ifdef WINDDK_BUILD ++OS_CFLAGS += -DWINDDK_BUILD ++ifdef USE_64 ++OS_LIBS += msvcrt_win2003.obj ++else ++OS_LIBS += msvcrt_winxp.obj ++endif ++endif ++ + #################################################################### + # + # Configuration for the release process +diff -ruN --strip-trailing-cr nss-3.12.9.orig/mozilla/nsprpub/pr/src/Makefile.in nss-3.12.9/mozilla/nsprpub/pr/src/Makefile.in +--- nss-3.12.9.orig/mozilla/nsprpub/pr/src/Makefile.in 2010-10-13 02:52:54 +0200 ++++ nss-3.12.9/mozilla/nsprpub/pr/src/Makefile.in 2011-02-11 00:03:42 +0100 +@@ -197,9 +197,17 @@ + ifdef NS_USE_GCC + OS_LIBS = -ladvapi32 -lwsock32 -lwinmm + else ++ifdef WINDDK_BUILD ++ifdef USE_64 ++OS_LIBS = advapi32.lib wsock32.lib winmm.lib msvcrt_win2003.obj ++else ++OS_LIBS = advapi32.lib wsock32.lib winmm.lib msvcrt_winxp.obj ++endif ++else + OS_LIBS = advapi32.lib wsock32.lib winmm.lib + endif + endif ++endif + + ifeq ($(OS_ARCH),WINCE) + OS_LIBS = ws2.lib +diff -ruN --strip-trailing-cr nss-3.12.9.orig/mozilla/nsprpub/pr/src/md/windows/ntmisc.c nss-3.12.9/mozilla/nsprpub/pr/src/md/windows/ntmisc.c +--- nss-3.12.9.orig/mozilla/nsprpub/pr/src/md/windows/ntmisc.c 2010-08-15 22:59:14 +0200 ++++ nss-3.12.9/mozilla/nsprpub/pr/src/md/windows/ntmisc.c 2011-02-11 00:03:42 +0100 +@@ -625,7 +625,11 @@ + */ + hasFdInheritBuffer = (attr && attr->fdInheritBuffer); + if ((envp == NULL) && hasFdInheritBuffer) { ++#ifdef WINDDK_BUILD ++ envp = getenv; ++#else + envp = environ; ++#endif + } + + if (envp != NULL) { +diff -ruN --strip-trailing-cr nss-3.12.9.orig/mozilla/security/coreconf/WIN32.mk nss-3.12.9/mozilla/security/coreconf/WIN32.mk +--- nss-3.12.9.orig/mozilla/security/coreconf/WIN32.mk 2010-08-18 03:28:06 +0200 ++++ nss-3.12.9/mozilla/security/coreconf/WIN32.mk 2011-02-11 00:03:42 +0100 +@@ -145,6 +145,14 @@ + else # !NS_USE_GCC + OS_CFLAGS += -W3 -nologo -D_CRT_SECURE_NO_WARNINGS + OS_DLLFLAGS += -nologo -DLL -SUBSYSTEM:WINDOWS ++ ifdef WINDDK_BUILD ++ OS_CFLAGS += -DWINDDK_BUILD ++ ifdef USE_64 ++ OS_LIBS += msvcrt_win2003.obj ++ else ++ OS_LIBS += msvcrt_winxp.obj ++ endif ++ endif + ifeq ($(_MSC_VER),$(_MSC_VER_6)) + ifndef MOZ_DEBUG_SYMBOLS + OS_DLLFLAGS += -PDB:NONE +diff -ruN --strip-trailing-cr nss-3.12.9.orig/mozilla/security/coreconf/arch.mk nss-3.12.9/mozilla/security/coreconf/arch.mk +--- nss-3.12.9.orig/mozilla/security/coreconf/arch.mk 2009-06-05 04:14:50 +0200 ++++ nss-3.12.9/mozilla/security/coreconf/arch.mk 2011-02-11 00:03:42 +0100 +@@ -268,7 +268,15 @@ + # the uname.exe in the MSYS toolkit. + # + ifeq (MINGW32_NT,$(findstring MINGW32_NT,$(OS_ARCH))) +- OS_RELEASE := $(patsubst MINGW32_NT-%,%,$(OS_ARCH)) ++ ifdef WINDDK_BUILD ++ ifdef USE_64 ++ OS_RELEASE := 5.2 ++ else ++ OS_RELEASE := 5.1 ++ endif ++ else ++ OS_RELEASE := $(patsubst MINGW32_NT-%,%,$(OS_ARCH)) ++ endif + OS_ARCH = WINNT + USE_MSYS = 1 + ifndef CPU_ARCH +diff -ruN --strip-trailing-cr nss-3.12.9.orig/mozilla/security/nss/cmd/platlibs.mk nss-3.12.9/mozilla/security/nss/cmd/platlibs.mk +--- nss-3.12.9.orig/mozilla/security/nss/cmd/platlibs.mk 2010-06-12 02:58:34 +0200 ++++ nss-3.12.9/mozilla/security/nss/cmd/platlibs.mk 2011-02-11 00:03:42 +0100 +@@ -249,3 +249,11 @@ + endif + + JAR_LIBS = $(DIST)/lib/$(LIB_PREFIX)jar.$(LIB_SUFFIX) ++ ++ifdef WINDDK_BUILD ++ifdef USE_64 ++OS_LIBS += msvcrt_win2003.obj ++else ++OS_LIBS += msvcrt_winxp.obj ++endif ++endif +diff -ruN --strip-trailing-cr nss-3.12.9.orig/mozilla/security/nss/cmd/selfserv/selfserv.c nss-3.12.9/mozilla/security/nss/cmd/selfserv/selfserv.c +--- nss-3.12.9.orig/mozilla/security/nss/cmd/selfserv/selfserv.c 2010-04-03 20:27:28 +0200 ++++ nss-3.12.9/mozilla/security/nss/cmd/selfserv/selfserv.c 2011-02-11 00:03:42 +0100 +@@ -51,8 +51,13 @@ + #endif + + #if defined(_WINDOWS) ++#ifdef WINDDK_BUILD ++#include <windows.h> ++#define getpid GetCurrentProcessId ++#else + #include <process.h> /* for getpid() */ + #endif ++#endif + + #include <signal.h> + #include <stdlib.h> +diff -ruN --strip-trailing-cr nss-3.12.9.orig/mozilla/security/nss/lib/freebl/mpi/mpcpucache.c nss-3.12.9/mozilla/security/nss/lib/freebl/mpi/mpcpucache.c +--- nss-3.12.9.orig/mozilla/security/nss/lib/freebl/mpi/mpcpucache.c 2009-03-10 22:18:08 +0100 ++++ nss-3.12.9/mozilla/security/nss/lib/freebl/mpi/mpcpucache.c 2011-02-11 00:03:42 +0100 +@@ -80,7 +80,11 @@ + + #elif defined(_MSC_VER) + ++#ifdef WINDDK_BUILD ++#include <ntddk.h> ++#else + #include <intrin.h> ++#endif + + void freebl_cpuid(unsigned long op, unsigned long *eax, + unsigned long *ebx, unsigned long *ecx, +diff -ruN --strip-trailing-cr nss-3.12.9.orig/mozilla/security/nss/lib/freebl/win_rand.c nss-3.12.9/mozilla/security/nss/lib/freebl/win_rand.c +--- nss-3.12.9.orig/mozilla/security/nss/lib/freebl/win_rand.c 2011-01-06 20:05:58 +0100 ++++ nss-3.12.9/mozilla/security/nss/lib/freebl/win_rand.c 2011-02-11 00:03:42 +0100 +@@ -50,6 +50,13 @@ + #include <sys/types.h> + #include <sys/stat.h> + #endif ++ ++#ifdef WINDDK_BUILD ++#ifndef stat ++#define stat _stat ++#endif ++#endif ++ + #include <stdio.h> + #include "prio.h" + #include "prerror.h" +diff -ruN --strip-trailing-cr nss-3.12.9.orig/mozilla/security/nss/lib/softoken/legacydb/config.mk nss-3.12.9/mozilla/security/nss/lib/softoken/legacydb/config.mk +--- nss-3.12.9.orig/mozilla/security/nss/lib/softoken/legacydb/config.mk 2009-06-11 02:55:50 +0200 ++++ nss-3.12.9/mozilla/security/nss/lib/softoken/legacydb/config.mk 2011-02-11 00:03:42 +0100 +@@ -96,3 +96,11 @@ + ifeq ($(OS_TARGET),WINCE) + DEFINES += -DDBM_USING_NSPR + endif ++ ++ifdef WINDDK_BUILD ++ifdef USE_64 ++OS_LIBS += msvcrt_win2003.obj ++else ++OS_LIBS += msvcrt_winxp.obj ++endif ++endif +diff -ruN --strip-trailing-cr nss-3.12.9.orig/mozilla/security/nss/lib/sqlite/sqlite3.c nss-3.12.9/mozilla/security/nss/lib/sqlite/sqlite3.c +--- nss-3.12.9.orig/mozilla/security/nss/lib/sqlite/sqlite3.c 2010-01-08 06:42:38 +0100 ++++ nss-3.12.9/mozilla/security/nss/lib/sqlite/sqlite3.c 2011-02-11 00:03:42 +0100 +@@ -10980,7 +10980,8 @@ + ** localtime_s(). + */ + #if !defined(HAVE_LOCALTIME_R) && !defined(HAVE_LOCALTIME_S) && \ +- defined(_MSC_VER) && defined(_CRT_INSECURE_DEPRECATE) ++ defined(_MSC_VER) && defined(_CRT_INSECURE_DEPRECATE) && \ ++ !defined(WINDDK_BUILD) + #define HAVE_LOCALTIME_S 1 + #endif + +diff -ruN --strip-trailing-cr nss-3.12.9.orig/mozilla/security/nss/lib/ssl/sslimpl.h nss-3.12.9/mozilla/security/nss/lib/ssl/sslimpl.h +--- nss-3.12.9.orig/mozilla/security/nss/lib/ssl/sslimpl.h 2010-07-31 06:33:52 +0200 ++++ nss-3.12.9/mozilla/security/nss/lib/ssl/sslimpl.h 2011-02-11 00:03:42 +0100 +@@ -1624,8 +1624,13 @@ + #elif defined(_WIN32_WCE) + #define SSL_GETPID GetCurrentProcessId + #elif defined(WIN32) ++#ifdef WINDDK_BUILD ++#include <windows.h> ++#define SSL_GETPID GetCurrentProcessId ++#else + extern int __cdecl _getpid(void); + #define SSL_GETPID _getpid ++#endif + #else + #define SSL_GETPID() 0 + #endif +diff -ruN --strip-trailing-cr nss-3.12.9.orig/mozilla/security/nss/lib/zlib/config.mk nss-3.12.9/mozilla/security/nss/lib/zlib/config.mk +--- nss-3.12.9.orig/mozilla/security/nss/lib/zlib/config.mk 2009-11-07 02:13:10 +0100 ++++ nss-3.12.9/mozilla/security/nss/lib/zlib/config.mk 2011-02-11 00:03:42 +0100 +@@ -46,3 +46,11 @@ + PROGRAM = + + EXTRA_LIBS = $(LIBRARY) ++ ++ifdef WINDDK_BUILD ++ifdef USE_64 ++OS_LIBS += msvcrt_win2003.obj ++else ++OS_LIBS += msvcrt_winxp.obj ++endif ++endif +diff -ruN --strip-trailing-cr nss-3.12.9.orig/mozilla/security/nss/lib/zlib/gzio.c nss-3.12.9/mozilla/security/nss/lib/zlib/gzio.c +--- nss-3.12.9.orig/mozilla/security/nss/lib/zlib/gzio.c 2009-11-07 02:13:10 +0100 ++++ nss-3.12.9/mozilla/security/nss/lib/zlib/gzio.c 2011-02-11 00:03:42 +0100 +@@ -11,6 +11,12 @@ + + #include "zutil.h" + ++#ifdef WINDDK_BUILD ++#ifndef vsnprintf ++#define vsnprintf _vsnprintf ++#endif ++#endif ++ + #ifdef NO_DEFLATE /* for compatibility with old definition */ + # define NO_GZCOMPRESS + #endif diff --git a/win32/ext/openssl-wdk/build-x64.bat b/win32/ext/openssl-wdk/build-x64.bat new file mode 100644 index 00000000..1c6ac6aa --- /dev/null +++ b/win32/ext/openssl-wdk/build-x64.bat @@ -0,0 +1,30 @@ +@echo off +set WDK_ROOT=c:\WinDDK\7600.16385.1 +set PERL_PATH=c:\mozilla-build\perl-5.12-x64\perl\bin +set NASM_PATH=c:\mozilla-build\nasm +set OPENSSL_DEST=..\openssl-wdk-1.0.1c-x64 +set INCLUDE=%WDK_ROOT%\inc\api;%WDK_ROOT%\inc\crt;%WDK_ROOT%\inc\ddk;ms;zlib-x64\include +set LIB=%WDK_ROOT%\lib\wnet\amd64;%WDK_ROOT%\lib\Crt\amd64;zlib-x64\lib +set PATH=%PROGRAMFILES(X86)%\Microsoft Visual Studio 10.0\VC\bin\amd64;%PROGRAMFILES(X86)%\Microsoft SDKs\Windows\v7.0A\Bin\x64;%PERL_PATH%;%NASM_PATH%;%SystemRoot%\System32;..\zlib-x64\bin +perl Configure VC-WIN64A enable-camellia zlib-dynamic --openssldir=./ +call ms\do_win64a +nmake -f ms\ntdll.mak vclean +nmake -f ms\ntdll.mak +nmake -f ms\ntdll.mak test +perl mk-ca-bundle.pl -n +echo.Press return when ready to install! +pause +move include include-orig +nmake -f ms\ntdll.mak install +rmdir /q /s %OPENSSL_DEST% +mkdir %OPENSSL_DEST% +move bin %OPENSSL_DEST% +move include %OPENSSL_DEST% +move lib %OPENSSL_DEST% +mkdir %OPENSSL_DEST%\share +move openssl.cnf %OPENSSL_DEST%\share\openssl.cnf.example +move include-orig include +copy zlib-x64\bin\zlib1.dll %OPENSSL_DEST%\bin +move cert.pem %OPENSSL_DEST%\bin +echo.Finished! +pause diff --git a/win32/ext/openssl-wdk/build-x86.bat b/win32/ext/openssl-wdk/build-x86.bat new file mode 100644 index 00000000..07e608f6 --- /dev/null +++ b/win32/ext/openssl-wdk/build-x86.bat @@ -0,0 +1,31 @@ +@echo off +set WDK_ROOT=c:\WinDDK\7600.16385.1 +set PERL_PATH=c:\mozilla-build\perl-5.12-x86\perl\bin +set NASM_PATH=c:\mozilla-build\nasm +set OPENSSL_DEST=..\openssl-wdk-1.0.1c-x86 +set INCLUDE=%WDK_ROOT%\inc\api;%WDK_ROOT%\inc\crt;%WDK_ROOT%\inc\ddk;ms;zlib-x86\include +set LIB=%WDK_ROOT%\lib\wxp\i386;%WDK_ROOT%\lib\Crt\i386;zlib-x86\lib +set PATH=%PROGRAMFILES(X86)%\Microsoft Visual Studio 10.0\VC\bin;%PROGRAMFILES(X86)%\Microsoft Visual Studio 10.0\Common7\IDE;%PROGRAMFILES(X86)%\Microsoft SDKs\Windows\v7.0A\Bin;%PERL_PATH%;%NASM_PATH%;%SystemRoot%\System32;..\zlib-x86\bin +perl Configure VC-WIN32 enable-camellia zlib-dynamic --openssldir=./ +call ms\do_nasm +@echo off +nmake -f ms\ntdll.mak vclean +nmake -f ms\ntdll.mak +nmake -f ms\ntdll.mak test +perl mk-ca-bundle.pl -n +echo.Press return when ready to install! +pause +move include include-orig +nmake -f ms\ntdll.mak install +rmdir /q /s %OPENSSL_DEST% +mkdir %OPENSSL_DEST% +move bin %OPENSSL_DEST% +move include %OPENSSL_DEST% +move lib %OPENSSL_DEST% +mkdir %OPENSSL_DEST%\share +move openssl.cnf %OPENSSL_DEST%\share\openssl.cnf.example +move include-orig include +copy zlib-x86\bin\zlib1.dll %OPENSSL_DEST%\bin +move cert.pem %OPENSSL_DEST%\bin +echo.Finished! +pause diff --git a/win32/ext/openssl-wdk/certdata.txt b/win32/ext/openssl-wdk/certdata.txt new file mode 100644 index 00000000..69209b1f --- /dev/null +++ b/win32/ext/openssl-wdk/certdata.txt @@ -0,0 +1,23477 @@ +# +# ***** 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 ***** +CVS_ID "@(#) $RCSfile: certdata.txt,v $ $Revision: 1.82 $ $Date: 2012/02/18 21:41:46 $" + +# +# certdata.txt +# +# This file contains the object definitions for the certs and other +# information "built into" NSS. +# +# Object definitions: +# +# Certificates +# +# -- Attribute -- -- type -- -- value -- +# CKA_CLASS CK_OBJECT_CLASS CKO_CERTIFICATE +# CKA_TOKEN CK_BBOOL CK_TRUE +# CKA_PRIVATE CK_BBOOL CK_FALSE +# CKA_MODIFIABLE CK_BBOOL CK_FALSE +# CKA_LABEL UTF8 (varies) +# CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509 +# CKA_SUBJECT DER+base64 (varies) +# CKA_ID byte array (varies) +# CKA_ISSUER DER+base64 (varies) +# CKA_SERIAL_NUMBER DER+base64 (varies) +# CKA_VALUE DER+base64 (varies) +# CKA_NSS_EMAIL ASCII7 (unused here) +# +# Trust +# +# -- Attribute -- -- type -- -- value -- +# CKA_CLASS CK_OBJECT_CLASS CKO_TRUST +# CKA_TOKEN CK_BBOOL CK_TRUE +# CKA_PRIVATE CK_BBOOL CK_FALSE +# CKA_MODIFIABLE CK_BBOOL CK_FALSE +# CKA_LABEL UTF8 (varies) +# CKA_ISSUER DER+base64 (varies) +# CKA_SERIAL_NUMBER DER+base64 (varies) +# CKA_CERT_HASH binary+base64 (varies) +# CKA_EXPIRES CK_DATE (not used here) +# CKA_TRUST_DIGITAL_SIGNATURE CK_TRUST (varies) +# CKA_TRUST_NON_REPUDIATION CK_TRUST (varies) +# CKA_TRUST_KEY_ENCIPHERMENT CK_TRUST (varies) +# CKA_TRUST_DATA_ENCIPHERMENT CK_TRUST (varies) +# CKA_TRUST_KEY_AGREEMENT CK_TRUST (varies) +# CKA_TRUST_KEY_CERT_SIGN CK_TRUST (varies) +# CKA_TRUST_CRL_SIGN CK_TRUST (varies) +# CKA_TRUST_SERVER_AUTH CK_TRUST (varies) +# CKA_TRUST_CLIENT_AUTH CK_TRUST (varies) +# CKA_TRUST_CODE_SIGNING CK_TRUST (varies) +# CKA_TRUST_EMAIL_PROTECTION CK_TRUST (varies) +# CKA_TRUST_IPSEC_END_SYSTEM CK_TRUST (varies) +# CKA_TRUST_IPSEC_TUNNEL CK_TRUST (varies) +# CKA_TRUST_IPSEC_USER CK_TRUST (varies) +# CKA_TRUST_TIME_STAMPING CK_TRUST (varies) +# CKA_TRUST_STEP_UP_APPROVED CK_BBOOL (varies) +# (other trust attributes can be defined) +# + +# +# The object to tell NSS that this is a root list and we don't +# have to go looking for others. +# +BEGINDATA +CKA_CLASS CK_OBJECT_CLASS CKO_NSS_BUILTIN_ROOT_LIST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "Mozilla Builtin Roots" + +# +# Certificate "GTE CyberTrust Global Root" +# +CKA_CLASS CK_OBJECT_CLASS CKO_CERTIFICATE +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "GTE CyberTrust Global Root" +CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509 +CKA_SUBJECT MULTILINE_OCTAL +\060\165\061\013\060\011\006\003\125\004\006\023\002\125\123\061 +\030\060\026\006\003\125\004\012\023\017\107\124\105\040\103\157 +\162\160\157\162\141\164\151\157\156\061\047\060\045\006\003\125 +\004\013\023\036\107\124\105\040\103\171\142\145\162\124\162\165 +\163\164\040\123\157\154\165\164\151\157\156\163\054\040\111\156 +\143\056\061\043\060\041\006\003\125\004\003\023\032\107\124\105 +\040\103\171\142\145\162\124\162\165\163\164\040\107\154\157\142 +\141\154\040\122\157\157\164 +END +CKA_ID UTF8 "0" +CKA_ISSUER MULTILINE_OCTAL +\060\165\061\013\060\011\006\003\125\004\006\023\002\125\123\061 +\030\060\026\006\003\125\004\012\023\017\107\124\105\040\103\157 +\162\160\157\162\141\164\151\157\156\061\047\060\045\006\003\125 +\004\013\023\036\107\124\105\040\103\171\142\145\162\124\162\165 +\163\164\040\123\157\154\165\164\151\157\156\163\054\040\111\156 +\143\056\061\043\060\041\006\003\125\004\003\023\032\107\124\105 +\040\103\171\142\145\162\124\162\165\163\164\040\107\154\157\142 +\141\154\040\122\157\157\164 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\002\001\245 +END +CKA_VALUE MULTILINE_OCTAL +\060\202\002\132\060\202\001\303\002\002\001\245\060\015\006\011 +\052\206\110\206\367\015\001\001\004\005\000\060\165\061\013\060 +\011\006\003\125\004\006\023\002\125\123\061\030\060\026\006\003 +\125\004\012\023\017\107\124\105\040\103\157\162\160\157\162\141 +\164\151\157\156\061\047\060\045\006\003\125\004\013\023\036\107 +\124\105\040\103\171\142\145\162\124\162\165\163\164\040\123\157 +\154\165\164\151\157\156\163\054\040\111\156\143\056\061\043\060 +\041\006\003\125\004\003\023\032\107\124\105\040\103\171\142\145 +\162\124\162\165\163\164\040\107\154\157\142\141\154\040\122\157 +\157\164\060\036\027\015\071\070\060\070\061\063\060\060\062\071 +\060\060\132\027\015\061\070\060\070\061\063\062\063\065\071\060 +\060\132\060\165\061\013\060\011\006\003\125\004\006\023\002\125 +\123\061\030\060\026\006\003\125\004\012\023\017\107\124\105\040 +\103\157\162\160\157\162\141\164\151\157\156\061\047\060\045\006 +\003\125\004\013\023\036\107\124\105\040\103\171\142\145\162\124 +\162\165\163\164\040\123\157\154\165\164\151\157\156\163\054\040 +\111\156\143\056\061\043\060\041\006\003\125\004\003\023\032\107 +\124\105\040\103\171\142\145\162\124\162\165\163\164\040\107\154 +\157\142\141\154\040\122\157\157\164\060\201\237\060\015\006\011 +\052\206\110\206\367\015\001\001\001\005\000\003\201\215\000\060 +\201\211\002\201\201\000\225\017\240\266\360\120\234\350\172\307 +\210\315\335\027\016\056\260\224\320\033\075\016\366\224\300\212 +\224\307\006\310\220\227\310\270\144\032\172\176\154\074\123\341 +\067\050\163\140\177\262\227\123\007\237\123\371\155\130\224\322 +\257\215\155\210\147\200\346\355\262\225\317\162\061\312\245\034 +\162\272\134\002\347\144\102\347\371\251\054\326\072\015\254\215 +\102\252\044\001\071\346\234\077\001\205\127\015\130\207\105\370 +\323\205\252\223\151\046\205\160\110\200\077\022\025\307\171\264 +\037\005\057\073\142\231\002\003\001\000\001\060\015\006\011\052 +\206\110\206\367\015\001\001\004\005\000\003\201\201\000\155\353 +\033\011\351\136\331\121\333\147\042\141\244\052\074\110\167\343 +\240\174\246\336\163\242\024\003\205\075\373\253\016\060\305\203 +\026\063\201\023\010\236\173\064\116\337\100\310\164\327\271\175 +\334\364\166\125\175\233\143\124\030\351\360\352\363\134\261\331 +\213\102\036\271\300\225\116\272\372\325\342\174\365\150\141\277 +\216\354\005\227\137\133\260\327\243\205\064\304\044\247\015\017 +\225\223\357\313\224\330\236\037\235\134\205\155\307\252\256\117 +\037\042\265\315\225\255\272\247\314\371\253\013\172\177 +END + +# Trust for Certificate "GTE CyberTrust Global Root" +CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "GTE CyberTrust Global Root" +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\227\201\171\120\330\034\226\160\314\064\330\011\317\171\104\061 +\066\176\364\164 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\312\075\323\150\361\003\134\320\062\372\270\053\131\350\132\333 +END +CKA_ISSUER MULTILINE_OCTAL +\060\165\061\013\060\011\006\003\125\004\006\023\002\125\123\061 +\030\060\026\006\003\125\004\012\023\017\107\124\105\040\103\157 +\162\160\157\162\141\164\151\157\156\061\047\060\045\006\003\125 +\004\013\023\036\107\124\105\040\103\171\142\145\162\124\162\165 +\163\164\040\123\157\154\165\164\151\157\156\163\054\040\111\156 +\143\056\061\043\060\041\006\003\125\004\003\023\032\107\124\105 +\040\103\171\142\145\162\124\162\165\163\164\040\107\154\157\142 +\141\154\040\122\157\157\164 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\002\001\245 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "Thawte Server CA" +# +CKA_CLASS CK_OBJECT_CLASS CKO_CERTIFICATE +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "Thawte Server CA" +CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509 +CKA_SUBJECT MULTILINE_OCTAL +\060\201\304\061\013\060\011\006\003\125\004\006\023\002\132\101 +\061\025\060\023\006\003\125\004\010\023\014\127\145\163\164\145 +\162\156\040\103\141\160\145\061\022\060\020\006\003\125\004\007 +\023\011\103\141\160\145\040\124\157\167\156\061\035\060\033\006 +\003\125\004\012\023\024\124\150\141\167\164\145\040\103\157\156 +\163\165\154\164\151\156\147\040\143\143\061\050\060\046\006\003 +\125\004\013\023\037\103\145\162\164\151\146\151\143\141\164\151 +\157\156\040\123\145\162\166\151\143\145\163\040\104\151\166\151 +\163\151\157\156\061\031\060\027\006\003\125\004\003\023\020\124 +\150\141\167\164\145\040\123\145\162\166\145\162\040\103\101\061 +\046\060\044\006\011\052\206\110\206\367\015\001\011\001\026\027 +\163\145\162\166\145\162\055\143\145\162\164\163\100\164\150\141 +\167\164\145\056\143\157\155 +END +CKA_ID UTF8 "0" +CKA_ISSUER MULTILINE_OCTAL +\060\201\304\061\013\060\011\006\003\125\004\006\023\002\132\101 +\061\025\060\023\006\003\125\004\010\023\014\127\145\163\164\145 +\162\156\040\103\141\160\145\061\022\060\020\006\003\125\004\007 +\023\011\103\141\160\145\040\124\157\167\156\061\035\060\033\006 +\003\125\004\012\023\024\124\150\141\167\164\145\040\103\157\156 +\163\165\154\164\151\156\147\040\143\143\061\050\060\046\006\003 +\125\004\013\023\037\103\145\162\164\151\146\151\143\141\164\151 +\157\156\040\123\145\162\166\151\143\145\163\040\104\151\166\151 +\163\151\157\156\061\031\060\027\006\003\125\004\003\023\020\124 +\150\141\167\164\145\040\123\145\162\166\145\162\040\103\101\061 +\046\060\044\006\011\052\206\110\206\367\015\001\011\001\026\027 +\163\145\162\166\145\162\055\143\145\162\164\163\100\164\150\141 +\167\164\145\056\143\157\155 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\001\001 +END +CKA_VALUE MULTILINE_OCTAL +\060\202\003\023\060\202\002\174\240\003\002\001\002\002\001\001 +\060\015\006\011\052\206\110\206\367\015\001\001\004\005\000\060 +\201\304\061\013\060\011\006\003\125\004\006\023\002\132\101\061 +\025\060\023\006\003\125\004\010\023\014\127\145\163\164\145\162 +\156\040\103\141\160\145\061\022\060\020\006\003\125\004\007\023 +\011\103\141\160\145\040\124\157\167\156\061\035\060\033\006\003 +\125\004\012\023\024\124\150\141\167\164\145\040\103\157\156\163 +\165\154\164\151\156\147\040\143\143\061\050\060\046\006\003\125 +\004\013\023\037\103\145\162\164\151\146\151\143\141\164\151\157 +\156\040\123\145\162\166\151\143\145\163\040\104\151\166\151\163 +\151\157\156\061\031\060\027\006\003\125\004\003\023\020\124\150 +\141\167\164\145\040\123\145\162\166\145\162\040\103\101\061\046 +\060\044\006\011\052\206\110\206\367\015\001\011\001\026\027\163 +\145\162\166\145\162\055\143\145\162\164\163\100\164\150\141\167 +\164\145\056\143\157\155\060\036\027\015\071\066\060\070\060\061 +\060\060\060\060\060\060\132\027\015\062\060\061\062\063\061\062 +\063\065\071\065\071\132\060\201\304\061\013\060\011\006\003\125 +\004\006\023\002\132\101\061\025\060\023\006\003\125\004\010\023 +\014\127\145\163\164\145\162\156\040\103\141\160\145\061\022\060 +\020\006\003\125\004\007\023\011\103\141\160\145\040\124\157\167 +\156\061\035\060\033\006\003\125\004\012\023\024\124\150\141\167 +\164\145\040\103\157\156\163\165\154\164\151\156\147\040\143\143 +\061\050\060\046\006\003\125\004\013\023\037\103\145\162\164\151 +\146\151\143\141\164\151\157\156\040\123\145\162\166\151\143\145 +\163\040\104\151\166\151\163\151\157\156\061\031\060\027\006\003 +\125\004\003\023\020\124\150\141\167\164\145\040\123\145\162\166 +\145\162\040\103\101\061\046\060\044\006\011\052\206\110\206\367 +\015\001\011\001\026\027\163\145\162\166\145\162\055\143\145\162 +\164\163\100\164\150\141\167\164\145\056\143\157\155\060\201\237 +\060\015\006\011\052\206\110\206\367\015\001\001\001\005\000\003 +\201\215\000\060\201\211\002\201\201\000\323\244\120\156\310\377 +\126\153\346\317\135\266\352\014\150\165\107\242\252\302\332\204 +\045\374\250\364\107\121\332\205\265\040\164\224\206\036\017\165 +\311\351\010\141\365\006\155\060\156\025\031\002\351\122\300\142 +\333\115\231\236\342\152\014\104\070\315\376\276\343\144\011\160 +\305\376\261\153\051\266\057\111\310\073\324\047\004\045\020\227 +\057\347\220\155\300\050\102\231\327\114\103\336\303\365\041\155 +\124\237\135\303\130\341\300\344\331\133\260\270\334\264\173\337 +\066\072\302\265\146\042\022\326\207\015\002\003\001\000\001\243 +\023\060\021\060\017\006\003\125\035\023\001\001\377\004\005\060 +\003\001\001\377\060\015\006\011\052\206\110\206\367\015\001\001 +\004\005\000\003\201\201\000\007\372\114\151\134\373\225\314\106 +\356\205\203\115\041\060\216\312\331\250\157\111\032\346\332\121 +\343\140\160\154\204\141\021\241\032\310\110\076\131\103\175\117 +\225\075\241\213\267\013\142\230\172\165\212\335\210\116\116\236 +\100\333\250\314\062\164\271\157\015\306\343\263\104\013\331\212 +\157\232\051\233\231\030\050\073\321\343\100\050\232\132\074\325 +\265\347\040\033\213\312\244\253\215\351\121\331\342\114\054\131 +\251\332\271\262\165\033\366\102\362\357\307\362\030\371\211\274 +\243\377\212\043\056\160\107 +END + +# Trust for Certificate "Thawte Server CA" +CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "Thawte Server CA" +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\043\345\224\224\121\225\362\101\110\003\264\325\144\322\243\243 +\365\330\213\214 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\305\160\304\242\355\123\170\014\310\020\123\201\144\313\320\035 +END +CKA_ISSUER MULTILINE_OCTAL +\060\201\304\061\013\060\011\006\003\125\004\006\023\002\132\101 +\061\025\060\023\006\003\125\004\010\023\014\127\145\163\164\145 +\162\156\040\103\141\160\145\061\022\060\020\006\003\125\004\007 +\023\011\103\141\160\145\040\124\157\167\156\061\035\060\033\006 +\003\125\004\012\023\024\124\150\141\167\164\145\040\103\157\156 +\163\165\154\164\151\156\147\040\143\143\061\050\060\046\006\003 +\125\004\013\023\037\103\145\162\164\151\146\151\143\141\164\151 +\157\156\040\123\145\162\166\151\143\145\163\040\104\151\166\151 +\163\151\157\156\061\031\060\027\006\003\125\004\003\023\020\124 +\150\141\167\164\145\040\123\145\162\166\145\162\040\103\101\061 +\046\060\044\006\011\052\206\110\206\367\015\001\011\001\026\027 +\163\145\162\166\145\162\055\143\145\162\164\163\100\164\150\141 +\167\164\145\056\143\157\155 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\001\001 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_TRUST_UNKNOWN +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "Thawte Premium Server CA" +# +CKA_CLASS CK_OBJECT_CLASS CKO_CERTIFICATE +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "Thawte Premium Server CA" +CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509 +CKA_SUBJECT MULTILINE_OCTAL +\060\201\316\061\013\060\011\006\003\125\004\006\023\002\132\101 +\061\025\060\023\006\003\125\004\010\023\014\127\145\163\164\145 +\162\156\040\103\141\160\145\061\022\060\020\006\003\125\004\007 +\023\011\103\141\160\145\040\124\157\167\156\061\035\060\033\006 +\003\125\004\012\023\024\124\150\141\167\164\145\040\103\157\156 +\163\165\154\164\151\156\147\040\143\143\061\050\060\046\006\003 +\125\004\013\023\037\103\145\162\164\151\146\151\143\141\164\151 +\157\156\040\123\145\162\166\151\143\145\163\040\104\151\166\151 +\163\151\157\156\061\041\060\037\006\003\125\004\003\023\030\124 +\150\141\167\164\145\040\120\162\145\155\151\165\155\040\123\145 +\162\166\145\162\040\103\101\061\050\060\046\006\011\052\206\110 +\206\367\015\001\011\001\026\031\160\162\145\155\151\165\155\055 +\163\145\162\166\145\162\100\164\150\141\167\164\145\056\143\157 +\155 +END +CKA_ID UTF8 "0" +CKA_ISSUER MULTILINE_OCTAL +\060\201\316\061\013\060\011\006\003\125\004\006\023\002\132\101 +\061\025\060\023\006\003\125\004\010\023\014\127\145\163\164\145 +\162\156\040\103\141\160\145\061\022\060\020\006\003\125\004\007 +\023\011\103\141\160\145\040\124\157\167\156\061\035\060\033\006 +\003\125\004\012\023\024\124\150\141\167\164\145\040\103\157\156 +\163\165\154\164\151\156\147\040\143\143\061\050\060\046\006\003 +\125\004\013\023\037\103\145\162\164\151\146\151\143\141\164\151 +\157\156\040\123\145\162\166\151\143\145\163\040\104\151\166\151 +\163\151\157\156\061\041\060\037\006\003\125\004\003\023\030\124 +\150\141\167\164\145\040\120\162\145\155\151\165\155\040\123\145 +\162\166\145\162\040\103\101\061\050\060\046\006\011\052\206\110 +\206\367\015\001\011\001\026\031\160\162\145\155\151\165\155\055 +\163\145\162\166\145\162\100\164\150\141\167\164\145\056\143\157 +\155 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\001\001 +END +CKA_VALUE MULTILINE_OCTAL +\060\202\003\047\060\202\002\220\240\003\002\001\002\002\001\001 +\060\015\006\011\052\206\110\206\367\015\001\001\004\005\000\060 +\201\316\061\013\060\011\006\003\125\004\006\023\002\132\101\061 +\025\060\023\006\003\125\004\010\023\014\127\145\163\164\145\162 +\156\040\103\141\160\145\061\022\060\020\006\003\125\004\007\023 +\011\103\141\160\145\040\124\157\167\156\061\035\060\033\006\003 +\125\004\012\023\024\124\150\141\167\164\145\040\103\157\156\163 +\165\154\164\151\156\147\040\143\143\061\050\060\046\006\003\125 +\004\013\023\037\103\145\162\164\151\146\151\143\141\164\151\157 +\156\040\123\145\162\166\151\143\145\163\040\104\151\166\151\163 +\151\157\156\061\041\060\037\006\003\125\004\003\023\030\124\150 +\141\167\164\145\040\120\162\145\155\151\165\155\040\123\145\162 +\166\145\162\040\103\101\061\050\060\046\006\011\052\206\110\206 +\367\015\001\011\001\026\031\160\162\145\155\151\165\155\055\163 +\145\162\166\145\162\100\164\150\141\167\164\145\056\143\157\155 +\060\036\027\015\071\066\060\070\060\061\060\060\060\060\060\060 +\132\027\015\062\060\061\062\063\061\062\063\065\071\065\071\132 +\060\201\316\061\013\060\011\006\003\125\004\006\023\002\132\101 +\061\025\060\023\006\003\125\004\010\023\014\127\145\163\164\145 +\162\156\040\103\141\160\145\061\022\060\020\006\003\125\004\007 +\023\011\103\141\160\145\040\124\157\167\156\061\035\060\033\006 +\003\125\004\012\023\024\124\150\141\167\164\145\040\103\157\156 +\163\165\154\164\151\156\147\040\143\143\061\050\060\046\006\003 +\125\004\013\023\037\103\145\162\164\151\146\151\143\141\164\151 +\157\156\040\123\145\162\166\151\143\145\163\040\104\151\166\151 +\163\151\157\156\061\041\060\037\006\003\125\004\003\023\030\124 +\150\141\167\164\145\040\120\162\145\155\151\165\155\040\123\145 +\162\166\145\162\040\103\101\061\050\060\046\006\011\052\206\110 +\206\367\015\001\011\001\026\031\160\162\145\155\151\165\155\055 +\163\145\162\166\145\162\100\164\150\141\167\164\145\056\143\157 +\155\060\201\237\060\015\006\011\052\206\110\206\367\015\001\001 +\001\005\000\003\201\215\000\060\201\211\002\201\201\000\322\066 +\066\152\213\327\302\133\236\332\201\101\142\217\070\356\111\004 +\125\326\320\357\034\033\225\026\107\357\030\110\065\072\122\364 +\053\152\006\217\073\057\352\126\343\257\206\215\236\027\367\236 +\264\145\165\002\115\357\313\011\242\041\121\330\233\320\147\320 +\272\015\222\006\024\163\324\223\313\227\052\000\234\134\116\014 +\274\372\025\122\374\362\104\156\332\021\112\156\010\237\057\055 +\343\371\252\072\206\163\266\106\123\130\310\211\005\275\203\021 +\270\163\077\252\007\215\364\102\115\347\100\235\034\067\002\003 +\001\000\001\243\023\060\021\060\017\006\003\125\035\023\001\001 +\377\004\005\060\003\001\001\377\060\015\006\011\052\206\110\206 +\367\015\001\001\004\005\000\003\201\201\000\046\110\054\026\302 +\130\372\350\026\164\014\252\252\137\124\077\362\327\311\170\140 +\136\136\156\067\143\042\167\066\176\262\027\304\064\271\365\010 +\205\374\311\001\070\377\115\276\362\026\102\103\347\273\132\106 +\373\301\306\021\037\361\112\260\050\106\311\303\304\102\175\274 +\372\253\131\156\325\267\121\210\021\343\244\205\031\153\202\114 +\244\014\022\255\351\244\256\077\361\303\111\145\232\214\305\310 +\076\045\267\224\231\273\222\062\161\007\360\206\136\355\120\047 +\246\015\246\043\371\273\313\246\007\024\102 +END + +# Trust for Certificate "Thawte Premium Server CA" +CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "Thawte Premium Server CA" +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\142\177\215\170\047\145\143\231\322\175\177\220\104\311\376\263 +\363\076\372\232 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\006\237\151\171\026\146\220\002\033\214\214\242\303\007\157\072 +END +CKA_ISSUER MULTILINE_OCTAL +\060\201\316\061\013\060\011\006\003\125\004\006\023\002\132\101 +\061\025\060\023\006\003\125\004\010\023\014\127\145\163\164\145 +\162\156\040\103\141\160\145\061\022\060\020\006\003\125\004\007 +\023\011\103\141\160\145\040\124\157\167\156\061\035\060\033\006 +\003\125\004\012\023\024\124\150\141\167\164\145\040\103\157\156 +\163\165\154\164\151\156\147\040\143\143\061\050\060\046\006\003 +\125\004\013\023\037\103\145\162\164\151\146\151\143\141\164\151 +\157\156\040\123\145\162\166\151\143\145\163\040\104\151\166\151 +\163\151\157\156\061\041\060\037\006\003\125\004\003\023\030\124 +\150\141\167\164\145\040\120\162\145\155\151\165\155\040\123\145 +\162\166\145\162\040\103\101\061\050\060\046\006\011\052\206\110 +\206\367\015\001\011\001\026\031\160\162\145\155\151\165\155\055 +\163\145\162\166\145\162\100\164\150\141\167\164\145\056\143\157 +\155 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\001\001 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_TRUST_UNKNOWN +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "Equifax Secure CA" +# +CKA_CLASS CK_OBJECT_CLASS CKO_CERTIFICATE +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "Equifax Secure CA" +CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509 +CKA_SUBJECT MULTILINE_OCTAL +\060\116\061\013\060\011\006\003\125\004\006\023\002\125\123\061 +\020\060\016\006\003\125\004\012\023\007\105\161\165\151\146\141 +\170\061\055\060\053\006\003\125\004\013\023\044\105\161\165\151 +\146\141\170\040\123\145\143\165\162\145\040\103\145\162\164\151 +\146\151\143\141\164\145\040\101\165\164\150\157\162\151\164\171 +END +CKA_ID UTF8 "0" +CKA_ISSUER MULTILINE_OCTAL +\060\116\061\013\060\011\006\003\125\004\006\023\002\125\123\061 +\020\060\016\006\003\125\004\012\023\007\105\161\165\151\146\141 +\170\061\055\060\053\006\003\125\004\013\023\044\105\161\165\151 +\146\141\170\040\123\145\143\165\162\145\040\103\145\162\164\151 +\146\151\143\141\164\145\040\101\165\164\150\157\162\151\164\171 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\004\065\336\364\317 +END +CKA_VALUE MULTILINE_OCTAL +\060\202\003\040\060\202\002\211\240\003\002\001\002\002\004\065 +\336\364\317\060\015\006\011\052\206\110\206\367\015\001\001\005 +\005\000\060\116\061\013\060\011\006\003\125\004\006\023\002\125 +\123\061\020\060\016\006\003\125\004\012\023\007\105\161\165\151 +\146\141\170\061\055\060\053\006\003\125\004\013\023\044\105\161 +\165\151\146\141\170\040\123\145\143\165\162\145\040\103\145\162 +\164\151\146\151\143\141\164\145\040\101\165\164\150\157\162\151 +\164\171\060\036\027\015\071\070\060\070\062\062\061\066\064\061 +\065\061\132\027\015\061\070\060\070\062\062\061\066\064\061\065 +\061\132\060\116\061\013\060\011\006\003\125\004\006\023\002\125 +\123\061\020\060\016\006\003\125\004\012\023\007\105\161\165\151 +\146\141\170\061\055\060\053\006\003\125\004\013\023\044\105\161 +\165\151\146\141\170\040\123\145\143\165\162\145\040\103\145\162 +\164\151\146\151\143\141\164\145\040\101\165\164\150\157\162\151 +\164\171\060\201\237\060\015\006\011\052\206\110\206\367\015\001 +\001\001\005\000\003\201\215\000\060\201\211\002\201\201\000\301 +\135\261\130\147\010\142\356\240\232\055\037\010\155\221\024\150 +\230\012\036\376\332\004\157\023\204\142\041\303\321\174\316\237 +\005\340\270\001\360\116\064\354\342\212\225\004\144\254\361\153 +\123\137\005\263\313\147\200\277\102\002\216\376\335\001\011\354 +\341\000\024\117\374\373\360\014\335\103\272\133\053\341\037\200 +\160\231\025\127\223\026\361\017\227\152\267\302\150\043\034\314 +\115\131\060\254\121\036\073\257\053\326\356\143\105\173\305\331 +\137\120\322\343\120\017\072\210\347\277\024\375\340\307\271\002 +\003\001\000\001\243\202\001\011\060\202\001\005\060\160\006\003 +\125\035\037\004\151\060\147\060\145\240\143\240\141\244\137\060 +\135\061\013\060\011\006\003\125\004\006\023\002\125\123\061\020 +\060\016\006\003\125\004\012\023\007\105\161\165\151\146\141\170 +\061\055\060\053\006\003\125\004\013\023\044\105\161\165\151\146 +\141\170\040\123\145\143\165\162\145\040\103\145\162\164\151\146 +\151\143\141\164\145\040\101\165\164\150\157\162\151\164\171\061 +\015\060\013\006\003\125\004\003\023\004\103\122\114\061\060\032 +\006\003\125\035\020\004\023\060\021\201\017\062\060\061\070\060 +\070\062\062\061\066\064\061\065\061\132\060\013\006\003\125\035 +\017\004\004\003\002\001\006\060\037\006\003\125\035\043\004\030 +\060\026\200\024\110\346\150\371\053\322\262\225\327\107\330\043 +\040\020\117\063\230\220\237\324\060\035\006\003\125\035\016\004 +\026\004\024\110\346\150\371\053\322\262\225\327\107\330\043\040 +\020\117\063\230\220\237\324\060\014\006\003\125\035\023\004\005 +\060\003\001\001\377\060\032\006\011\052\206\110\206\366\175\007 +\101\000\004\015\060\013\033\005\126\063\056\060\143\003\002\006 +\300\060\015\006\011\052\206\110\206\367\015\001\001\005\005\000 +\003\201\201\000\130\316\051\352\374\367\336\265\316\002\271\027 +\265\205\321\271\343\340\225\314\045\061\015\000\246\222\156\177 +\266\222\143\236\120\225\321\232\157\344\021\336\143\205\156\230 +\356\250\377\132\310\323\125\262\146\161\127\336\300\041\353\075 +\052\247\043\111\001\004\206\102\173\374\356\177\242\026\122\265 +\147\147\323\100\333\073\046\130\262\050\167\075\256\024\167\141 +\326\372\052\146\047\240\015\372\247\163\134\352\160\361\224\041 +\145\104\137\372\374\357\051\150\251\242\207\171\357\171\357\117 +\254\007\167\070 +END + +# Trust for Certificate "Equifax Secure CA" +CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "Equifax Secure CA" +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\322\062\011\255\043\323\024\043\041\164\344\015\177\235\142\023 +\227\206\143\072 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\147\313\235\300\023\044\212\202\233\262\027\036\321\033\354\324 +END +CKA_ISSUER MULTILINE_OCTAL +\060\116\061\013\060\011\006\003\125\004\006\023\002\125\123\061 +\020\060\016\006\003\125\004\012\023\007\105\161\165\151\146\141 +\170\061\055\060\053\006\003\125\004\013\023\044\105\161\165\151 +\146\141\170\040\123\145\143\165\162\145\040\103\145\162\164\151 +\146\151\143\141\164\145\040\101\165\164\150\157\162\151\164\171 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\004\065\336\364\317 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "Digital Signature Trust Co. Global CA 1" +# +CKA_CLASS CK_OBJECT_CLASS CKO_CERTIFICATE +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "Digital Signature Trust Co. Global CA 1" +CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509 +CKA_SUBJECT MULTILINE_OCTAL +\060\106\061\013\060\011\006\003\125\004\006\023\002\125\123\061 +\044\060\042\006\003\125\004\012\023\033\104\151\147\151\164\141 +\154\040\123\151\147\156\141\164\165\162\145\040\124\162\165\163 +\164\040\103\157\056\061\021\060\017\006\003\125\004\013\023\010 +\104\123\124\103\101\040\105\061 +END +CKA_ID UTF8 "0" +CKA_ISSUER MULTILINE_OCTAL +\060\106\061\013\060\011\006\003\125\004\006\023\002\125\123\061 +\044\060\042\006\003\125\004\012\023\033\104\151\147\151\164\141 +\154\040\123\151\147\156\141\164\165\162\145\040\124\162\165\163 +\164\040\103\157\056\061\021\060\017\006\003\125\004\013\023\010 +\104\123\124\103\101\040\105\061 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\004\066\160\025\226 +END +CKA_VALUE MULTILINE_OCTAL +\060\202\003\051\060\202\002\222\240\003\002\001\002\002\004\066 +\160\025\226\060\015\006\011\052\206\110\206\367\015\001\001\005 +\005\000\060\106\061\013\060\011\006\003\125\004\006\023\002\125 +\123\061\044\060\042\006\003\125\004\012\023\033\104\151\147\151 +\164\141\154\040\123\151\147\156\141\164\165\162\145\040\124\162 +\165\163\164\040\103\157\056\061\021\060\017\006\003\125\004\013 +\023\010\104\123\124\103\101\040\105\061\060\036\027\015\071\070 +\061\062\061\060\061\070\061\060\062\063\132\027\015\061\070\061 +\062\061\060\061\070\064\060\062\063\132\060\106\061\013\060\011 +\006\003\125\004\006\023\002\125\123\061\044\060\042\006\003\125 +\004\012\023\033\104\151\147\151\164\141\154\040\123\151\147\156 +\141\164\165\162\145\040\124\162\165\163\164\040\103\157\056\061 +\021\060\017\006\003\125\004\013\023\010\104\123\124\103\101\040 +\105\061\060\201\235\060\015\006\011\052\206\110\206\367\015\001 +\001\001\005\000\003\201\213\000\060\201\207\002\201\201\000\240 +\154\201\251\317\064\036\044\335\376\206\050\314\336\203\057\371 +\136\324\102\322\350\164\140\146\023\230\006\034\251\121\022\151 +\157\061\125\271\111\162\000\010\176\323\245\142\104\067\044\231 +\217\331\203\110\217\231\155\225\023\273\103\073\056\111\116\210 +\067\301\273\130\177\376\341\275\370\273\141\315\363\107\300\231 +\246\361\363\221\350\170\174\000\313\141\311\104\047\161\151\125 +\112\176\111\115\355\242\243\276\002\114\000\312\002\250\356\001 +\002\061\144\017\122\055\023\164\166\066\265\172\264\055\161\002 +\001\003\243\202\001\044\060\202\001\040\060\021\006\011\140\206 +\110\001\206\370\102\001\001\004\004\003\002\000\007\060\150\006 +\003\125\035\037\004\141\060\137\060\135\240\133\240\131\244\127 +\060\125\061\013\060\011\006\003\125\004\006\023\002\125\123\061 +\044\060\042\006\003\125\004\012\023\033\104\151\147\151\164\141 +\154\040\123\151\147\156\141\164\165\162\145\040\124\162\165\163 +\164\040\103\157\056\061\021\060\017\006\003\125\004\013\023\010 +\104\123\124\103\101\040\105\061\061\015\060\013\006\003\125\004 +\003\023\004\103\122\114\061\060\053\006\003\125\035\020\004\044 +\060\042\200\017\061\071\071\070\061\062\061\060\061\070\061\060 +\062\063\132\201\017\062\060\061\070\061\062\061\060\061\070\061 +\060\062\063\132\060\013\006\003\125\035\017\004\004\003\002\001 +\006\060\037\006\003\125\035\043\004\030\060\026\200\024\152\171 +\176\221\151\106\030\023\012\002\167\245\131\133\140\230\045\016 +\242\370\060\035\006\003\125\035\016\004\026\004\024\152\171\176 +\221\151\106\030\023\012\002\167\245\131\133\140\230\045\016\242 +\370\060\014\006\003\125\035\023\004\005\060\003\001\001\377\060 +\031\006\011\052\206\110\206\366\175\007\101\000\004\014\060\012 +\033\004\126\064\056\060\003\002\004\220\060\015\006\011\052\206 +\110\206\367\015\001\001\005\005\000\003\201\201\000\042\022\330 +\172\035\334\201\006\266\011\145\262\207\310\037\136\264\057\351 +\304\036\362\074\301\273\004\220\021\112\203\116\176\223\271\115 +\102\307\222\046\240\134\064\232\070\162\370\375\153\026\076\040 +\356\202\213\061\052\223\066\205\043\210\212\074\003\150\323\311 +\011\017\115\374\154\244\332\050\162\223\016\211\200\260\175\376 +\200\157\145\155\030\063\227\213\302\153\211\356\140\075\310\233 +\357\177\053\062\142\163\223\313\074\343\173\342\166\170\105\274 +\241\223\004\273\206\237\072\133\103\172\303\212\145 +END + +# Trust for Certificate "Digital Signature Trust Co. Global CA 1" +CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "Digital Signature Trust Co. Global CA 1" +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\201\226\213\072\357\034\334\160\365\372\062\151\302\222\243\143 +\133\321\043\323 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\045\172\272\203\056\266\242\013\332\376\365\002\017\010\327\255 +END +CKA_ISSUER MULTILINE_OCTAL +\060\106\061\013\060\011\006\003\125\004\006\023\002\125\123\061 +\044\060\042\006\003\125\004\012\023\033\104\151\147\151\164\141 +\154\040\123\151\147\156\141\164\165\162\145\040\124\162\165\163 +\164\040\103\157\056\061\021\060\017\006\003\125\004\013\023\010 +\104\123\124\103\101\040\105\061 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\004\066\160\025\226 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "Digital Signature Trust Co. Global CA 3" +# +CKA_CLASS CK_OBJECT_CLASS CKO_CERTIFICATE +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "Digital Signature Trust Co. Global CA 3" +CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509 +CKA_SUBJECT MULTILINE_OCTAL +\060\106\061\013\060\011\006\003\125\004\006\023\002\125\123\061 +\044\060\042\006\003\125\004\012\023\033\104\151\147\151\164\141 +\154\040\123\151\147\156\141\164\165\162\145\040\124\162\165\163 +\164\040\103\157\056\061\021\060\017\006\003\125\004\013\023\010 +\104\123\124\103\101\040\105\062 +END +CKA_ID UTF8 "0" +CKA_ISSUER MULTILINE_OCTAL +\060\106\061\013\060\011\006\003\125\004\006\023\002\125\123\061 +\044\060\042\006\003\125\004\012\023\033\104\151\147\151\164\141 +\154\040\123\151\147\156\141\164\165\162\145\040\124\162\165\163 +\164\040\103\157\056\061\021\060\017\006\003\125\004\013\023\010 +\104\123\124\103\101\040\105\062 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\004\066\156\323\316 +END +CKA_VALUE MULTILINE_OCTAL +\060\202\003\051\060\202\002\222\240\003\002\001\002\002\004\066 +\156\323\316\060\015\006\011\052\206\110\206\367\015\001\001\005 +\005\000\060\106\061\013\060\011\006\003\125\004\006\023\002\125 +\123\061\044\060\042\006\003\125\004\012\023\033\104\151\147\151 +\164\141\154\040\123\151\147\156\141\164\165\162\145\040\124\162 +\165\163\164\040\103\157\056\061\021\060\017\006\003\125\004\013 +\023\010\104\123\124\103\101\040\105\062\060\036\027\015\071\070 +\061\062\060\071\061\071\061\067\062\066\132\027\015\061\070\061 +\062\060\071\061\071\064\067\062\066\132\060\106\061\013\060\011 +\006\003\125\004\006\023\002\125\123\061\044\060\042\006\003\125 +\004\012\023\033\104\151\147\151\164\141\154\040\123\151\147\156 +\141\164\165\162\145\040\124\162\165\163\164\040\103\157\056\061 +\021\060\017\006\003\125\004\013\023\010\104\123\124\103\101\040 +\105\062\060\201\235\060\015\006\011\052\206\110\206\367\015\001 +\001\001\005\000\003\201\213\000\060\201\207\002\201\201\000\277 +\223\217\027\222\357\063\023\030\353\020\177\116\026\277\377\006 +\217\052\205\274\136\371\044\246\044\210\266\003\267\301\303\137 +\003\133\321\157\256\176\102\352\146\043\270\143\203\126\373\050 +\055\341\070\213\264\356\250\001\341\316\034\266\210\052\042\106 +\205\373\237\247\160\251\107\024\077\316\336\145\360\250\161\367 +\117\046\154\214\274\306\265\357\336\111\047\377\110\052\175\350 +\115\003\314\307\262\122\306\027\061\023\073\265\115\333\310\304 +\366\303\017\044\052\332\014\235\347\221\133\200\315\224\235\002 +\001\003\243\202\001\044\060\202\001\040\060\021\006\011\140\206 +\110\001\206\370\102\001\001\004\004\003\002\000\007\060\150\006 +\003\125\035\037\004\141\060\137\060\135\240\133\240\131\244\127 +\060\125\061\013\060\011\006\003\125\004\006\023\002\125\123\061 +\044\060\042\006\003\125\004\012\023\033\104\151\147\151\164\141 +\154\040\123\151\147\156\141\164\165\162\145\040\124\162\165\163 +\164\040\103\157\056\061\021\060\017\006\003\125\004\013\023\010 +\104\123\124\103\101\040\105\062\061\015\060\013\006\003\125\004 +\003\023\004\103\122\114\061\060\053\006\003\125\035\020\004\044 +\060\042\200\017\061\071\071\070\061\062\060\071\061\071\061\067 +\062\066\132\201\017\062\060\061\070\061\062\060\071\061\071\061 +\067\062\066\132\060\013\006\003\125\035\017\004\004\003\002\001 +\006\060\037\006\003\125\035\043\004\030\060\026\200\024\036\202 +\115\050\145\200\074\311\101\156\254\065\056\132\313\336\356\370 +\071\133\060\035\006\003\125\035\016\004\026\004\024\036\202\115 +\050\145\200\074\311\101\156\254\065\056\132\313\336\356\370\071 +\133\060\014\006\003\125\035\023\004\005\060\003\001\001\377\060 +\031\006\011\052\206\110\206\366\175\007\101\000\004\014\060\012 +\033\004\126\064\056\060\003\002\004\220\060\015\006\011\052\206 +\110\206\367\015\001\001\005\005\000\003\201\201\000\107\215\203 +\255\142\362\333\260\236\105\042\005\271\242\326\003\016\070\162 +\347\236\374\173\346\223\266\232\245\242\224\310\064\035\221\321 +\305\327\364\012\045\017\075\170\201\236\017\261\147\304\220\114 +\143\335\136\247\342\272\237\365\367\115\245\061\173\234\051\055 +\114\376\144\076\354\266\123\376\352\233\355\202\333\164\165\113 +\007\171\156\036\330\031\203\163\336\365\076\320\265\336\347\113 +\150\175\103\056\052\040\341\176\240\170\104\236\010\365\230\371 +\307\177\033\033\326\006\040\002\130\241\303\242\003 +END + +# Trust for Certificate "Digital Signature Trust Co. Global CA 3" +CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "Digital Signature Trust Co. Global CA 3" +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\253\110\363\063\333\004\253\271\300\162\332\133\014\301\320\127 +\360\066\233\106 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\223\302\216\021\173\324\363\003\031\275\050\165\023\112\105\112 +END +CKA_ISSUER MULTILINE_OCTAL +\060\106\061\013\060\011\006\003\125\004\006\023\002\125\123\061 +\044\060\042\006\003\125\004\012\023\033\104\151\147\151\164\141 +\154\040\123\151\147\156\141\164\165\162\145\040\124\162\165\163 +\164\040\103\157\056\061\021\060\017\006\003\125\004\013\023\010 +\104\123\124\103\101\040\105\062 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\004\066\156\323\316 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "Verisign Class 3 Public Primary Certification Authority" +# +CKA_CLASS CK_OBJECT_CLASS CKO_CERTIFICATE +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "Verisign Class 3 Public Primary Certification Authority" +CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509 +CKA_SUBJECT MULTILINE_OCTAL +\060\137\061\013\060\011\006\003\125\004\006\023\002\125\123\061 +\027\060\025\006\003\125\004\012\023\016\126\145\162\151\123\151 +\147\156\054\040\111\156\143\056\061\067\060\065\006\003\125\004 +\013\023\056\103\154\141\163\163\040\063\040\120\165\142\154\151 +\143\040\120\162\151\155\141\162\171\040\103\145\162\164\151\146 +\151\143\141\164\151\157\156\040\101\165\164\150\157\162\151\164 +\171 +END +CKA_ID UTF8 "0" +CKA_ISSUER MULTILINE_OCTAL +\060\137\061\013\060\011\006\003\125\004\006\023\002\125\123\061 +\027\060\025\006\003\125\004\012\023\016\126\145\162\151\123\151 +\147\156\054\040\111\156\143\056\061\067\060\065\006\003\125\004 +\013\023\056\103\154\141\163\163\040\063\040\120\165\142\154\151 +\143\040\120\162\151\155\141\162\171\040\103\145\162\164\151\146 +\151\143\141\164\151\157\156\040\101\165\164\150\157\162\151\164 +\171 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\020\160\272\344\035\020\331\051\064\266\070\312\173\003\314 +\272\277 +END +CKA_VALUE MULTILINE_OCTAL +\060\202\002\074\060\202\001\245\002\020\160\272\344\035\020\331 +\051\064\266\070\312\173\003\314\272\277\060\015\006\011\052\206 +\110\206\367\015\001\001\002\005\000\060\137\061\013\060\011\006 +\003\125\004\006\023\002\125\123\061\027\060\025\006\003\125\004 +\012\023\016\126\145\162\151\123\151\147\156\054\040\111\156\143 +\056\061\067\060\065\006\003\125\004\013\023\056\103\154\141\163 +\163\040\063\040\120\165\142\154\151\143\040\120\162\151\155\141 +\162\171\040\103\145\162\164\151\146\151\143\141\164\151\157\156 +\040\101\165\164\150\157\162\151\164\171\060\036\027\015\071\066 +\060\061\062\071\060\060\060\060\060\060\132\027\015\062\070\060 +\070\060\061\062\063\065\071\065\071\132\060\137\061\013\060\011 +\006\003\125\004\006\023\002\125\123\061\027\060\025\006\003\125 +\004\012\023\016\126\145\162\151\123\151\147\156\054\040\111\156 +\143\056\061\067\060\065\006\003\125\004\013\023\056\103\154\141 +\163\163\040\063\040\120\165\142\154\151\143\040\120\162\151\155 +\141\162\171\040\103\145\162\164\151\146\151\143\141\164\151\157 +\156\040\101\165\164\150\157\162\151\164\171\060\201\237\060\015 +\006\011\052\206\110\206\367\015\001\001\001\005\000\003\201\215 +\000\060\201\211\002\201\201\000\311\134\131\236\362\033\212\001 +\024\264\020\337\004\100\333\343\127\257\152\105\100\217\204\014 +\013\321\063\331\331\021\317\356\002\130\037\045\367\052\250\104 +\005\252\354\003\037\170\177\236\223\271\232\000\252\043\175\326 +\254\205\242\143\105\307\162\047\314\364\114\306\165\161\322\071 +\357\117\102\360\165\337\012\220\306\216\040\157\230\017\370\254 +\043\137\160\051\066\244\311\206\347\261\232\040\313\123\245\205 +\347\075\276\175\232\376\044\105\063\334\166\025\355\017\242\161 +\144\114\145\056\201\150\105\247\002\003\001\000\001\060\015\006 +\011\052\206\110\206\367\015\001\001\002\005\000\003\201\201\000 +\273\114\022\053\317\054\046\000\117\024\023\335\246\373\374\012 +\021\204\214\363\050\034\147\222\057\174\266\305\372\337\360\350 +\225\274\035\217\154\054\250\121\314\163\330\244\300\123\360\116 +\326\046\300\166\001\127\201\222\136\041\361\321\261\377\347\320 +\041\130\315\151\027\343\104\034\234\031\104\071\211\134\334\234 +\000\017\126\215\002\231\355\242\220\105\114\344\273\020\244\075 +\360\062\003\016\361\316\370\350\311\121\214\346\142\237\346\237 +\300\175\267\162\234\311\066\072\153\237\116\250\377\144\015\144 +END + +# Trust for Certificate "Verisign Class 3 Public Primary Certification Authority" +CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "Verisign Class 3 Public Primary Certification Authority" +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\164\054\061\222\346\007\344\044\353\105\111\124\053\341\273\305 +\076\141\164\342 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\020\374\143\135\366\046\076\015\363\045\276\137\171\315\147\147 +END +CKA_ISSUER MULTILINE_OCTAL +\060\137\061\013\060\011\006\003\125\004\006\023\002\125\123\061 +\027\060\025\006\003\125\004\012\023\016\126\145\162\151\123\151 +\147\156\054\040\111\156\143\056\061\067\060\065\006\003\125\004 +\013\023\056\103\154\141\163\163\040\063\040\120\165\142\154\151 +\143\040\120\162\151\155\141\162\171\040\103\145\162\164\151\146 +\151\143\141\164\151\157\156\040\101\165\164\150\157\162\151\164 +\171 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\020\160\272\344\035\020\331\051\064\266\070\312\173\003\314 +\272\277 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "Verisign Class 1 Public Primary Certification Authority - G2" +# +CKA_CLASS CK_OBJECT_CLASS CKO_CERTIFICATE +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "Verisign Class 1 Public Primary Certification Authority - G2" +CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509 +CKA_SUBJECT MULTILINE_OCTAL +\060\201\301\061\013\060\011\006\003\125\004\006\023\002\125\123 +\061\027\060\025\006\003\125\004\012\023\016\126\145\162\151\123 +\151\147\156\054\040\111\156\143\056\061\074\060\072\006\003\125 +\004\013\023\063\103\154\141\163\163\040\061\040\120\165\142\154 +\151\143\040\120\162\151\155\141\162\171\040\103\145\162\164\151 +\146\151\143\141\164\151\157\156\040\101\165\164\150\157\162\151 +\164\171\040\055\040\107\062\061\072\060\070\006\003\125\004\013 +\023\061\050\143\051\040\061\071\071\070\040\126\145\162\151\123 +\151\147\156\054\040\111\156\143\056\040\055\040\106\157\162\040 +\141\165\164\150\157\162\151\172\145\144\040\165\163\145\040\157 +\156\154\171\061\037\060\035\006\003\125\004\013\023\026\126\145 +\162\151\123\151\147\156\040\124\162\165\163\164\040\116\145\164 +\167\157\162\153 +END +CKA_ID UTF8 "0" +CKA_ISSUER MULTILINE_OCTAL +\060\201\301\061\013\060\011\006\003\125\004\006\023\002\125\123 +\061\027\060\025\006\003\125\004\012\023\016\126\145\162\151\123 +\151\147\156\054\040\111\156\143\056\061\074\060\072\006\003\125 +\004\013\023\063\103\154\141\163\163\040\061\040\120\165\142\154 +\151\143\040\120\162\151\155\141\162\171\040\103\145\162\164\151 +\146\151\143\141\164\151\157\156\040\101\165\164\150\157\162\151 +\164\171\040\055\040\107\062\061\072\060\070\006\003\125\004\013 +\023\061\050\143\051\040\061\071\071\070\040\126\145\162\151\123 +\151\147\156\054\040\111\156\143\056\040\055\040\106\157\162\040 +\141\165\164\150\157\162\151\172\145\144\040\165\163\145\040\157 +\156\154\171\061\037\060\035\006\003\125\004\013\023\026\126\145 +\162\151\123\151\147\156\040\124\162\165\163\164\040\116\145\164 +\167\157\162\153 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\020\114\307\352\252\230\076\161\323\223\020\370\075\072\211 +\221\222 +END +CKA_VALUE MULTILINE_OCTAL +\060\202\003\002\060\202\002\153\002\020\114\307\352\252\230\076 +\161\323\223\020\370\075\072\211\221\222\060\015\006\011\052\206 +\110\206\367\015\001\001\005\005\000\060\201\301\061\013\060\011 +\006\003\125\004\006\023\002\125\123\061\027\060\025\006\003\125 +\004\012\023\016\126\145\162\151\123\151\147\156\054\040\111\156 +\143\056\061\074\060\072\006\003\125\004\013\023\063\103\154\141 +\163\163\040\061\040\120\165\142\154\151\143\040\120\162\151\155 +\141\162\171\040\103\145\162\164\151\146\151\143\141\164\151\157 +\156\040\101\165\164\150\157\162\151\164\171\040\055\040\107\062 +\061\072\060\070\006\003\125\004\013\023\061\050\143\051\040\061 +\071\071\070\040\126\145\162\151\123\151\147\156\054\040\111\156 +\143\056\040\055\040\106\157\162\040\141\165\164\150\157\162\151 +\172\145\144\040\165\163\145\040\157\156\154\171\061\037\060\035 +\006\003\125\004\013\023\026\126\145\162\151\123\151\147\156\040 +\124\162\165\163\164\040\116\145\164\167\157\162\153\060\036\027 +\015\071\070\060\065\061\070\060\060\060\060\060\060\132\027\015 +\062\070\060\070\060\061\062\063\065\071\065\071\132\060\201\301 +\061\013\060\011\006\003\125\004\006\023\002\125\123\061\027\060 +\025\006\003\125\004\012\023\016\126\145\162\151\123\151\147\156 +\054\040\111\156\143\056\061\074\060\072\006\003\125\004\013\023 +\063\103\154\141\163\163\040\061\040\120\165\142\154\151\143\040 +\120\162\151\155\141\162\171\040\103\145\162\164\151\146\151\143 +\141\164\151\157\156\040\101\165\164\150\157\162\151\164\171\040 +\055\040\107\062\061\072\060\070\006\003\125\004\013\023\061\050 +\143\051\040\061\071\071\070\040\126\145\162\151\123\151\147\156 +\054\040\111\156\143\056\040\055\040\106\157\162\040\141\165\164 +\150\157\162\151\172\145\144\040\165\163\145\040\157\156\154\171 +\061\037\060\035\006\003\125\004\013\023\026\126\145\162\151\123 +\151\147\156\040\124\162\165\163\164\040\116\145\164\167\157\162 +\153\060\201\237\060\015\006\011\052\206\110\206\367\015\001\001 +\001\005\000\003\201\215\000\060\201\211\002\201\201\000\252\320 +\272\276\026\055\270\203\324\312\322\017\274\166\061\312\224\330 +\035\223\214\126\002\274\331\157\032\157\122\066\156\165\126\012 +\125\323\337\103\207\041\021\145\212\176\217\275\041\336\153\062 +\077\033\204\064\225\005\235\101\065\353\222\353\226\335\252\131 +\077\001\123\155\231\117\355\345\342\052\132\220\301\271\304\246 +\025\317\310\105\353\246\135\216\234\076\360\144\044\166\245\315 +\253\032\157\266\330\173\121\141\156\246\177\207\310\342\267\345 +\064\334\101\210\352\011\100\276\163\222\075\153\347\165\002\003 +\001\000\001\060\015\006\011\052\206\110\206\367\015\001\001\005 +\005\000\003\201\201\000\251\117\303\015\307\147\276\054\313\331 +\250\315\055\165\347\176\025\236\073\162\353\176\353\134\055\011 +\207\326\153\155\140\174\345\256\305\220\043\014\134\112\320\257 +\261\135\363\307\266\012\333\340\025\223\015\335\003\274\307\166 +\212\265\335\117\303\233\023\165\270\001\300\346\311\133\153\245 +\270\211\334\254\244\335\162\355\116\241\367\117\274\006\323\352 +\310\144\164\173\302\225\101\234\145\163\130\361\220\232\074\152 +\261\230\311\304\207\274\317\105\155\105\342\156\042\077\376\274 +\017\061\134\350\362\331 +END + +# Trust for Certificate "Verisign Class 1 Public Primary Certification Authority - G2" +CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "Verisign Class 1 Public Primary Certification Authority - G2" +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\047\076\341\044\127\375\304\371\014\125\350\053\126\026\177\142 +\365\062\345\107 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\333\043\075\371\151\372\113\271\225\200\104\163\136\175\101\203 +END +CKA_ISSUER MULTILINE_OCTAL +\060\201\301\061\013\060\011\006\003\125\004\006\023\002\125\123 +\061\027\060\025\006\003\125\004\012\023\016\126\145\162\151\123 +\151\147\156\054\040\111\156\143\056\061\074\060\072\006\003\125 +\004\013\023\063\103\154\141\163\163\040\061\040\120\165\142\154 +\151\143\040\120\162\151\155\141\162\171\040\103\145\162\164\151 +\146\151\143\141\164\151\157\156\040\101\165\164\150\157\162\151 +\164\171\040\055\040\107\062\061\072\060\070\006\003\125\004\013 +\023\061\050\143\051\040\061\071\071\070\040\126\145\162\151\123 +\151\147\156\054\040\111\156\143\056\040\055\040\106\157\162\040 +\141\165\164\150\157\162\151\172\145\144\040\165\163\145\040\157 +\156\154\171\061\037\060\035\006\003\125\004\013\023\026\126\145 +\162\151\123\151\147\156\040\124\162\165\163\164\040\116\145\164 +\167\157\162\153 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\020\114\307\352\252\230\076\161\323\223\020\370\075\072\211 +\221\222 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_TRUST_UNKNOWN +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_TRUST_UNKNOWN +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "Verisign Class 2 Public Primary Certification Authority - G2" +# +CKA_CLASS CK_OBJECT_CLASS CKO_CERTIFICATE +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "Verisign Class 2 Public Primary Certification Authority - G2" +CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509 +CKA_SUBJECT MULTILINE_OCTAL +\060\201\301\061\013\060\011\006\003\125\004\006\023\002\125\123 +\061\027\060\025\006\003\125\004\012\023\016\126\145\162\151\123 +\151\147\156\054\040\111\156\143\056\061\074\060\072\006\003\125 +\004\013\023\063\103\154\141\163\163\040\062\040\120\165\142\154 +\151\143\040\120\162\151\155\141\162\171\040\103\145\162\164\151 +\146\151\143\141\164\151\157\156\040\101\165\164\150\157\162\151 +\164\171\040\055\040\107\062\061\072\060\070\006\003\125\004\013 +\023\061\050\143\051\040\061\071\071\070\040\126\145\162\151\123 +\151\147\156\054\040\111\156\143\056\040\055\040\106\157\162\040 +\141\165\164\150\157\162\151\172\145\144\040\165\163\145\040\157 +\156\154\171\061\037\060\035\006\003\125\004\013\023\026\126\145 +\162\151\123\151\147\156\040\124\162\165\163\164\040\116\145\164 +\167\157\162\153 +END +CKA_ID UTF8 "0" +CKA_ISSUER MULTILINE_OCTAL +\060\201\301\061\013\060\011\006\003\125\004\006\023\002\125\123 +\061\027\060\025\006\003\125\004\012\023\016\126\145\162\151\123 +\151\147\156\054\040\111\156\143\056\061\074\060\072\006\003\125 +\004\013\023\063\103\154\141\163\163\040\062\040\120\165\142\154 +\151\143\040\120\162\151\155\141\162\171\040\103\145\162\164\151 +\146\151\143\141\164\151\157\156\040\101\165\164\150\157\162\151 +\164\171\040\055\040\107\062\061\072\060\070\006\003\125\004\013 +\023\061\050\143\051\040\061\071\071\070\040\126\145\162\151\123 +\151\147\156\054\040\111\156\143\056\040\055\040\106\157\162\040 +\141\165\164\150\157\162\151\172\145\144\040\165\163\145\040\157 +\156\154\171\061\037\060\035\006\003\125\004\013\023\026\126\145 +\162\151\123\151\147\156\040\124\162\165\163\164\040\116\145\164 +\167\157\162\153 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\021\000\271\057\140\314\210\237\241\172\106\011\270\133\160 +\154\212\257 +END +CKA_VALUE MULTILINE_OCTAL +\060\202\003\003\060\202\002\154\002\021\000\271\057\140\314\210 +\237\241\172\106\011\270\133\160\154\212\257\060\015\006\011\052 +\206\110\206\367\015\001\001\005\005\000\060\201\301\061\013\060 +\011\006\003\125\004\006\023\002\125\123\061\027\060\025\006\003 +\125\004\012\023\016\126\145\162\151\123\151\147\156\054\040\111 +\156\143\056\061\074\060\072\006\003\125\004\013\023\063\103\154 +\141\163\163\040\062\040\120\165\142\154\151\143\040\120\162\151 +\155\141\162\171\040\103\145\162\164\151\146\151\143\141\164\151 +\157\156\040\101\165\164\150\157\162\151\164\171\040\055\040\107 +\062\061\072\060\070\006\003\125\004\013\023\061\050\143\051\040 +\061\071\071\070\040\126\145\162\151\123\151\147\156\054\040\111 +\156\143\056\040\055\040\106\157\162\040\141\165\164\150\157\162 +\151\172\145\144\040\165\163\145\040\157\156\154\171\061\037\060 +\035\006\003\125\004\013\023\026\126\145\162\151\123\151\147\156 +\040\124\162\165\163\164\040\116\145\164\167\157\162\153\060\036 +\027\015\071\070\060\065\061\070\060\060\060\060\060\060\132\027 +\015\062\070\060\070\060\061\062\063\065\071\065\071\132\060\201 +\301\061\013\060\011\006\003\125\004\006\023\002\125\123\061\027 +\060\025\006\003\125\004\012\023\016\126\145\162\151\123\151\147 +\156\054\040\111\156\143\056\061\074\060\072\006\003\125\004\013 +\023\063\103\154\141\163\163\040\062\040\120\165\142\154\151\143 +\040\120\162\151\155\141\162\171\040\103\145\162\164\151\146\151 +\143\141\164\151\157\156\040\101\165\164\150\157\162\151\164\171 +\040\055\040\107\062\061\072\060\070\006\003\125\004\013\023\061 +\050\143\051\040\061\071\071\070\040\126\145\162\151\123\151\147 +\156\054\040\111\156\143\056\040\055\040\106\157\162\040\141\165 +\164\150\157\162\151\172\145\144\040\165\163\145\040\157\156\154 +\171\061\037\060\035\006\003\125\004\013\023\026\126\145\162\151 +\123\151\147\156\040\124\162\165\163\164\040\116\145\164\167\157 +\162\153\060\201\237\060\015\006\011\052\206\110\206\367\015\001 +\001\001\005\000\003\201\215\000\060\201\211\002\201\201\000\247 +\210\001\041\164\054\347\032\003\360\230\341\227\074\017\041\010 +\361\234\333\227\351\232\374\302\004\006\023\276\137\122\310\314 +\036\054\022\126\054\270\001\151\054\314\231\037\255\260\226\256 +\171\004\362\023\071\301\173\230\272\010\054\350\302\204\023\054 +\252\151\351\011\364\307\251\002\244\102\302\043\117\112\330\360 +\016\242\373\061\154\311\346\157\231\047\007\365\346\364\114\170 +\236\155\353\106\206\372\271\206\311\124\362\262\304\257\324\106 +\034\132\311\025\060\377\015\154\365\055\016\155\316\177\167\002 +\003\001\000\001\060\015\006\011\052\206\110\206\367\015\001\001 +\005\005\000\003\201\201\000\162\056\371\177\321\361\161\373\304 +\236\366\305\136\121\212\100\230\270\150\370\233\034\203\330\342 +\235\275\377\355\241\346\146\352\057\011\364\312\327\352\245\053 +\225\366\044\140\206\115\104\056\203\245\304\055\240\323\256\170 +\151\157\162\332\154\256\010\360\143\222\067\346\273\304\060\027 +\255\167\314\111\065\252\317\330\217\321\276\267\030\226\107\163 +\152\124\042\064\144\055\266\026\233\131\133\264\121\131\072\263 +\013\024\364\022\337\147\240\364\255\062\144\136\261\106\162\047 +\214\022\173\305\104\264\256 +END + +# Trust for Certificate "Verisign Class 2 Public Primary Certification Authority - G2" +CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "Verisign Class 2 Public Primary Certification Authority - G2" +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\263\352\304\107\166\311\310\034\352\362\235\225\266\314\240\010 +\033\147\354\235 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\055\273\345\045\323\321\145\202\072\267\016\372\346\353\342\341 +END +CKA_ISSUER MULTILINE_OCTAL +\060\201\301\061\013\060\011\006\003\125\004\006\023\002\125\123 +\061\027\060\025\006\003\125\004\012\023\016\126\145\162\151\123 +\151\147\156\054\040\111\156\143\056\061\074\060\072\006\003\125 +\004\013\023\063\103\154\141\163\163\040\062\040\120\165\142\154 +\151\143\040\120\162\151\155\141\162\171\040\103\145\162\164\151 +\146\151\143\141\164\151\157\156\040\101\165\164\150\157\162\151 +\164\171\040\055\040\107\062\061\072\060\070\006\003\125\004\013 +\023\061\050\143\051\040\061\071\071\070\040\126\145\162\151\123 +\151\147\156\054\040\111\156\143\056\040\055\040\106\157\162\040 +\141\165\164\150\157\162\151\172\145\144\040\165\163\145\040\157 +\156\154\171\061\037\060\035\006\003\125\004\013\023\026\126\145 +\162\151\123\151\147\156\040\124\162\165\163\164\040\116\145\164 +\167\157\162\153 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\021\000\271\057\140\314\210\237\241\172\106\011\270\133\160 +\154\212\257 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_TRUST_UNKNOWN +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "Verisign Class 3 Public Primary Certification Authority - G2" +# +CKA_CLASS CK_OBJECT_CLASS CKO_CERTIFICATE +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "Verisign Class 3 Public Primary Certification Authority - G2" +CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509 +CKA_SUBJECT MULTILINE_OCTAL +\060\201\301\061\013\060\011\006\003\125\004\006\023\002\125\123 +\061\027\060\025\006\003\125\004\012\023\016\126\145\162\151\123 +\151\147\156\054\040\111\156\143\056\061\074\060\072\006\003\125 +\004\013\023\063\103\154\141\163\163\040\063\040\120\165\142\154 +\151\143\040\120\162\151\155\141\162\171\040\103\145\162\164\151 +\146\151\143\141\164\151\157\156\040\101\165\164\150\157\162\151 +\164\171\040\055\040\107\062\061\072\060\070\006\003\125\004\013 +\023\061\050\143\051\040\061\071\071\070\040\126\145\162\151\123 +\151\147\156\054\040\111\156\143\056\040\055\040\106\157\162\040 +\141\165\164\150\157\162\151\172\145\144\040\165\163\145\040\157 +\156\154\171\061\037\060\035\006\003\125\004\013\023\026\126\145 +\162\151\123\151\147\156\040\124\162\165\163\164\040\116\145\164 +\167\157\162\153 +END +CKA_ID UTF8 "0" +CKA_ISSUER MULTILINE_OCTAL +\060\201\301\061\013\060\011\006\003\125\004\006\023\002\125\123 +\061\027\060\025\006\003\125\004\012\023\016\126\145\162\151\123 +\151\147\156\054\040\111\156\143\056\061\074\060\072\006\003\125 +\004\013\023\063\103\154\141\163\163\040\063\040\120\165\142\154 +\151\143\040\120\162\151\155\141\162\171\040\103\145\162\164\151 +\146\151\143\141\164\151\157\156\040\101\165\164\150\157\162\151 +\164\171\040\055\040\107\062\061\072\060\070\006\003\125\004\013 +\023\061\050\143\051\040\061\071\071\070\040\126\145\162\151\123 +\151\147\156\054\040\111\156\143\056\040\055\040\106\157\162\040 +\141\165\164\150\157\162\151\172\145\144\040\165\163\145\040\157 +\156\154\171\061\037\060\035\006\003\125\004\013\023\026\126\145 +\162\151\123\151\147\156\040\124\162\165\163\164\040\116\145\164 +\167\157\162\153 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\020\175\331\376\007\317\250\036\267\020\171\147\373\247\211 +\064\306 +END +CKA_VALUE MULTILINE_OCTAL +\060\202\003\002\060\202\002\153\002\020\175\331\376\007\317\250 +\036\267\020\171\147\373\247\211\064\306\060\015\006\011\052\206 +\110\206\367\015\001\001\005\005\000\060\201\301\061\013\060\011 +\006\003\125\004\006\023\002\125\123\061\027\060\025\006\003\125 +\004\012\023\016\126\145\162\151\123\151\147\156\054\040\111\156 +\143\056\061\074\060\072\006\003\125\004\013\023\063\103\154\141 +\163\163\040\063\040\120\165\142\154\151\143\040\120\162\151\155 +\141\162\171\040\103\145\162\164\151\146\151\143\141\164\151\157 +\156\040\101\165\164\150\157\162\151\164\171\040\055\040\107\062 +\061\072\060\070\006\003\125\004\013\023\061\050\143\051\040\061 +\071\071\070\040\126\145\162\151\123\151\147\156\054\040\111\156 +\143\056\040\055\040\106\157\162\040\141\165\164\150\157\162\151 +\172\145\144\040\165\163\145\040\157\156\154\171\061\037\060\035 +\006\003\125\004\013\023\026\126\145\162\151\123\151\147\156\040 +\124\162\165\163\164\040\116\145\164\167\157\162\153\060\036\027 +\015\071\070\060\065\061\070\060\060\060\060\060\060\132\027\015 +\062\070\060\070\060\061\062\063\065\071\065\071\132\060\201\301 +\061\013\060\011\006\003\125\004\006\023\002\125\123\061\027\060 +\025\006\003\125\004\012\023\016\126\145\162\151\123\151\147\156 +\054\040\111\156\143\056\061\074\060\072\006\003\125\004\013\023 +\063\103\154\141\163\163\040\063\040\120\165\142\154\151\143\040 +\120\162\151\155\141\162\171\040\103\145\162\164\151\146\151\143 +\141\164\151\157\156\040\101\165\164\150\157\162\151\164\171\040 +\055\040\107\062\061\072\060\070\006\003\125\004\013\023\061\050 +\143\051\040\061\071\071\070\040\126\145\162\151\123\151\147\156 +\054\040\111\156\143\056\040\055\040\106\157\162\040\141\165\164 +\150\157\162\151\172\145\144\040\165\163\145\040\157\156\154\171 +\061\037\060\035\006\003\125\004\013\023\026\126\145\162\151\123 +\151\147\156\040\124\162\165\163\164\040\116\145\164\167\157\162 +\153\060\201\237\060\015\006\011\052\206\110\206\367\015\001\001 +\001\005\000\003\201\215\000\060\201\211\002\201\201\000\314\136 +\321\021\135\134\151\320\253\323\271\152\114\231\037\131\230\060 +\216\026\205\040\106\155\107\077\324\205\040\204\341\155\263\370 +\244\355\014\361\027\017\073\371\247\371\045\327\301\317\204\143 +\362\174\143\317\242\107\362\306\133\063\216\144\100\004\150\301 +\200\271\144\034\105\167\307\330\156\365\225\051\074\120\350\064 +\327\170\037\250\272\155\103\221\225\217\105\127\136\176\305\373 +\312\244\004\353\352\227\067\124\060\157\273\001\107\062\063\315 +\334\127\233\144\151\141\370\233\035\034\211\117\134\147\002\003 +\001\000\001\060\015\006\011\052\206\110\206\367\015\001\001\005 +\005\000\003\201\201\000\121\115\315\276\134\313\230\031\234\025 +\262\001\071\170\056\115\017\147\160\160\231\306\020\132\224\244 +\123\115\124\155\053\257\015\135\100\213\144\323\327\356\336\126 +\141\222\137\246\304\035\020\141\066\323\054\047\074\350\051\011 +\271\021\144\164\314\265\163\237\034\110\251\274\141\001\356\342 +\027\246\014\343\100\010\073\016\347\353\104\163\052\232\361\151 +\222\357\161\024\303\071\254\161\247\221\011\157\344\161\006\263 +\272\131\127\046\171\000\366\370\015\242\063\060\050\324\252\130 +\240\235\235\151\221\375 +END + +# Trust for Certificate "Verisign Class 3 Public Primary Certification Authority - G2" +CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "Verisign Class 3 Public Primary Certification Authority - G2" +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\205\067\034\246\345\120\024\075\316\050\003\107\033\336\072\011 +\350\370\167\017 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\242\063\233\114\164\170\163\324\154\347\301\363\215\313\134\351 +END +CKA_ISSUER MULTILINE_OCTAL +\060\201\301\061\013\060\011\006\003\125\004\006\023\002\125\123 +\061\027\060\025\006\003\125\004\012\023\016\126\145\162\151\123 +\151\147\156\054\040\111\156\143\056\061\074\060\072\006\003\125 +\004\013\023\063\103\154\141\163\163\040\063\040\120\165\142\154 +\151\143\040\120\162\151\155\141\162\171\040\103\145\162\164\151 +\146\151\143\141\164\151\157\156\040\101\165\164\150\157\162\151 +\164\171\040\055\040\107\062\061\072\060\070\006\003\125\004\013 +\023\061\050\143\051\040\061\071\071\070\040\126\145\162\151\123 +\151\147\156\054\040\111\156\143\056\040\055\040\106\157\162\040 +\141\165\164\150\157\162\151\172\145\144\040\165\163\145\040\157 +\156\154\171\061\037\060\035\006\003\125\004\013\023\026\126\145 +\162\151\123\151\147\156\040\124\162\165\163\164\040\116\145\164 +\167\157\162\153 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\020\175\331\376\007\317\250\036\267\020\171\147\373\247\211 +\064\306 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "GlobalSign Root CA" +# +CKA_CLASS CK_OBJECT_CLASS CKO_CERTIFICATE +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "GlobalSign Root CA" +CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509 +CKA_SUBJECT MULTILINE_OCTAL +\060\127\061\013\060\011\006\003\125\004\006\023\002\102\105\061 +\031\060\027\006\003\125\004\012\023\020\107\154\157\142\141\154 +\123\151\147\156\040\156\166\055\163\141\061\020\060\016\006\003 +\125\004\013\023\007\122\157\157\164\040\103\101\061\033\060\031 +\006\003\125\004\003\023\022\107\154\157\142\141\154\123\151\147 +\156\040\122\157\157\164\040\103\101 +END +CKA_ID UTF8 "0" +CKA_ISSUER MULTILINE_OCTAL +\060\127\061\013\060\011\006\003\125\004\006\023\002\102\105\061 +\031\060\027\006\003\125\004\012\023\020\107\154\157\142\141\154 +\123\151\147\156\040\156\166\055\163\141\061\020\060\016\006\003 +\125\004\013\023\007\122\157\157\164\040\103\101\061\033\060\031 +\006\003\125\004\003\023\022\107\154\157\142\141\154\123\151\147 +\156\040\122\157\157\164\040\103\101 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\013\004\000\000\000\000\001\025\113\132\303\224 +END +CKA_VALUE MULTILINE_OCTAL +\060\202\003\165\060\202\002\135\240\003\002\001\002\002\013\004 +\000\000\000\000\001\025\113\132\303\224\060\015\006\011\052\206 +\110\206\367\015\001\001\005\005\000\060\127\061\013\060\011\006 +\003\125\004\006\023\002\102\105\061\031\060\027\006\003\125\004 +\012\023\020\107\154\157\142\141\154\123\151\147\156\040\156\166 +\055\163\141\061\020\060\016\006\003\125\004\013\023\007\122\157 +\157\164\040\103\101\061\033\060\031\006\003\125\004\003\023\022 +\107\154\157\142\141\154\123\151\147\156\040\122\157\157\164\040 +\103\101\060\036\027\015\071\070\060\071\060\061\061\062\060\060 +\060\060\132\027\015\062\070\060\061\062\070\061\062\060\060\060 +\060\132\060\127\061\013\060\011\006\003\125\004\006\023\002\102 +\105\061\031\060\027\006\003\125\004\012\023\020\107\154\157\142 +\141\154\123\151\147\156\040\156\166\055\163\141\061\020\060\016 +\006\003\125\004\013\023\007\122\157\157\164\040\103\101\061\033 +\060\031\006\003\125\004\003\023\022\107\154\157\142\141\154\123 +\151\147\156\040\122\157\157\164\040\103\101\060\202\001\042\060 +\015\006\011\052\206\110\206\367\015\001\001\001\005\000\003\202 +\001\017\000\060\202\001\012\002\202\001\001\000\332\016\346\231 +\215\316\243\343\117\212\176\373\361\213\203\045\153\352\110\037 +\361\052\260\271\225\021\004\275\360\143\321\342\147\146\317\034 +\335\317\033\110\053\356\215\211\216\232\257\051\200\145\253\351 +\307\055\022\313\253\034\114\160\007\241\075\012\060\315\025\215 +\117\370\335\324\214\120\025\034\357\120\356\304\056\367\374\351 +\122\362\221\175\340\155\325\065\060\216\136\103\163\362\101\351 +\325\152\343\262\211\072\126\071\070\157\006\074\210\151\133\052 +\115\305\247\124\270\154\211\314\233\371\074\312\345\375\211\365 +\022\074\222\170\226\326\334\164\156\223\104\141\321\215\307\106 +\262\165\016\206\350\031\212\325\155\154\325\170\026\225\242\351 +\310\012\070\353\362\044\023\117\163\124\223\023\205\072\033\274 +\036\064\265\213\005\214\271\167\213\261\333\037\040\221\253\011 +\123\156\220\316\173\067\164\271\160\107\221\042\121\143\026\171 +\256\261\256\101\046\010\310\031\053\321\106\252\110\326\144\052 +\327\203\064\377\054\052\301\154\031\103\112\007\205\347\323\174 +\366\041\150\357\352\362\122\237\177\223\220\317\002\003\001\000 +\001\243\102\060\100\060\016\006\003\125\035\017\001\001\377\004 +\004\003\002\001\006\060\017\006\003\125\035\023\001\001\377\004 +\005\060\003\001\001\377\060\035\006\003\125\035\016\004\026\004 +\024\140\173\146\032\105\015\227\312\211\120\057\175\004\315\064 +\250\377\374\375\113\060\015\006\011\052\206\110\206\367\015\001 +\001\005\005\000\003\202\001\001\000\326\163\347\174\117\166\320 +\215\277\354\272\242\276\064\305\050\062\265\174\374\154\234\054 +\053\275\011\236\123\277\153\136\252\021\110\266\345\010\243\263 +\312\075\141\115\323\106\011\263\076\303\240\343\143\125\033\362 +\272\357\255\071\341\103\271\070\243\346\057\212\046\073\357\240 +\120\126\371\306\012\375\070\315\304\013\160\121\224\227\230\004 +\337\303\137\224\325\025\311\024\101\234\304\135\165\144\025\015 +\377\125\060\354\206\217\377\015\357\054\271\143\106\366\252\374 +\337\274\151\375\056\022\110\144\232\340\225\360\246\357\051\217 +\001\261\025\265\014\035\245\376\151\054\151\044\170\036\263\247 +\034\161\142\356\312\310\227\254\027\135\212\302\370\107\206\156 +\052\304\126\061\225\320\147\211\205\053\371\154\246\135\106\235 +\014\252\202\344\231\121\335\160\267\333\126\075\141\344\152\341 +\134\326\366\376\075\336\101\314\007\256\143\122\277\123\123\364 +\053\351\307\375\266\367\202\137\205\322\101\030\333\201\263\004 +\034\305\037\244\200\157\025\040\311\336\014\210\012\035\326\146 +\125\342\374\110\311\051\046\151\340 +END + +# Trust for Certificate "GlobalSign Root CA" +CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "GlobalSign Root CA" +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\261\274\226\213\324\364\235\142\052\250\232\201\362\025\001\122 +\244\035\202\234 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\076\105\122\025\011\121\222\341\267\135\067\237\261\207\051\212 +END +CKA_ISSUER MULTILINE_OCTAL +\060\127\061\013\060\011\006\003\125\004\006\023\002\102\105\061 +\031\060\027\006\003\125\004\012\023\020\107\154\157\142\141\154 +\123\151\147\156\040\156\166\055\163\141\061\020\060\016\006\003 +\125\004\013\023\007\122\157\157\164\040\103\101\061\033\060\031 +\006\003\125\004\003\023\022\107\154\157\142\141\154\123\151\147 +\156\040\122\157\157\164\040\103\101 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\013\004\000\000\000\000\001\025\113\132\303\224 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "GlobalSign Root CA - R2" +# +CKA_CLASS CK_OBJECT_CLASS CKO_CERTIFICATE +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "GlobalSign Root CA - R2" +CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509 +CKA_SUBJECT MULTILINE_OCTAL +\060\114\061\040\060\036\006\003\125\004\013\023\027\107\154\157 +\142\141\154\123\151\147\156\040\122\157\157\164\040\103\101\040 +\055\040\122\062\061\023\060\021\006\003\125\004\012\023\012\107 +\154\157\142\141\154\123\151\147\156\061\023\060\021\006\003\125 +\004\003\023\012\107\154\157\142\141\154\123\151\147\156 +END +CKA_ID UTF8 "0" +CKA_ISSUER MULTILINE_OCTAL +\060\114\061\040\060\036\006\003\125\004\013\023\027\107\154\157 +\142\141\154\123\151\147\156\040\122\157\157\164\040\103\101\040 +\055\040\122\062\061\023\060\021\006\003\125\004\012\023\012\107 +\154\157\142\141\154\123\151\147\156\061\023\060\021\006\003\125 +\004\003\023\012\107\154\157\142\141\154\123\151\147\156 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\013\004\000\000\000\000\001\017\206\046\346\015 +END +CKA_VALUE MULTILINE_OCTAL +\060\202\003\272\060\202\002\242\240\003\002\001\002\002\013\004 +\000\000\000\000\001\017\206\046\346\015\060\015\006\011\052\206 +\110\206\367\015\001\001\005\005\000\060\114\061\040\060\036\006 +\003\125\004\013\023\027\107\154\157\142\141\154\123\151\147\156 +\040\122\157\157\164\040\103\101\040\055\040\122\062\061\023\060 +\021\006\003\125\004\012\023\012\107\154\157\142\141\154\123\151 +\147\156\061\023\060\021\006\003\125\004\003\023\012\107\154\157 +\142\141\154\123\151\147\156\060\036\027\015\060\066\061\062\061 +\065\060\070\060\060\060\060\132\027\015\062\061\061\062\061\065 +\060\070\060\060\060\060\132\060\114\061\040\060\036\006\003\125 +\004\013\023\027\107\154\157\142\141\154\123\151\147\156\040\122 +\157\157\164\040\103\101\040\055\040\122\062\061\023\060\021\006 +\003\125\004\012\023\012\107\154\157\142\141\154\123\151\147\156 +\061\023\060\021\006\003\125\004\003\023\012\107\154\157\142\141 +\154\123\151\147\156\060\202\001\042\060\015\006\011\052\206\110 +\206\367\015\001\001\001\005\000\003\202\001\017\000\060\202\001 +\012\002\202\001\001\000\246\317\044\016\276\056\157\050\231\105 +\102\304\253\076\041\124\233\013\323\177\204\160\372\022\263\313 +\277\207\137\306\177\206\323\262\060\134\326\375\255\361\173\334 +\345\370\140\226\011\222\020\365\320\123\336\373\173\176\163\210 +\254\122\210\173\112\246\312\111\246\136\250\247\214\132\021\274 +\172\202\353\276\214\351\263\254\226\045\007\227\112\231\052\007 +\057\264\036\167\277\212\017\265\002\174\033\226\270\305\271\072 +\054\274\326\022\271\353\131\175\342\320\006\206\137\136\111\152 +\265\071\136\210\064\354\274\170\014\010\230\204\154\250\315\113 +\264\240\175\014\171\115\360\270\055\313\041\312\325\154\133\175 +\341\240\051\204\241\371\323\224\111\313\044\142\221\040\274\335 +\013\325\331\314\371\352\047\012\053\163\221\306\235\033\254\310 +\313\350\340\240\364\057\220\213\115\373\260\066\033\366\031\172 +\205\340\155\362\141\023\210\134\237\340\223\012\121\227\212\132 +\316\257\253\325\367\252\011\252\140\275\334\331\137\337\162\251 +\140\023\136\000\001\311\112\372\077\244\352\007\003\041\002\216 +\202\312\003\302\233\217\002\003\001\000\001\243\201\234\060\201 +\231\060\016\006\003\125\035\017\001\001\377\004\004\003\002\001 +\006\060\017\006\003\125\035\023\001\001\377\004\005\060\003\001 +\001\377\060\035\006\003\125\035\016\004\026\004\024\233\342\007 +\127\147\034\036\300\152\006\336\131\264\232\055\337\334\031\206 +\056\060\066\006\003\125\035\037\004\057\060\055\060\053\240\051 +\240\047\206\045\150\164\164\160\072\057\057\143\162\154\056\147 +\154\157\142\141\154\163\151\147\156\056\156\145\164\057\162\157 +\157\164\055\162\062\056\143\162\154\060\037\006\003\125\035\043 +\004\030\060\026\200\024\233\342\007\127\147\034\036\300\152\006 +\336\131\264\232\055\337\334\031\206\056\060\015\006\011\052\206 +\110\206\367\015\001\001\005\005\000\003\202\001\001\000\231\201 +\123\207\034\150\227\206\221\354\340\112\270\104\013\253\201\254 +\047\117\326\301\270\034\103\170\263\014\232\374\352\054\074\156 +\141\033\115\113\051\365\237\005\035\046\301\270\351\203\000\142 +\105\266\251\010\223\271\251\063\113\030\232\302\370\207\210\116 +\333\335\161\064\032\301\124\332\106\077\340\323\052\253\155\124 +\042\365\072\142\315\040\157\272\051\211\327\335\221\356\323\134 +\242\076\241\133\101\365\337\345\144\103\055\351\325\071\253\322 +\242\337\267\213\320\300\200\031\034\105\300\055\214\350\370\055 +\244\164\126\111\305\005\265\117\025\336\156\104\170\071\207\250 +\176\273\363\171\030\221\273\364\157\235\301\360\214\065\214\135 +\001\373\303\155\271\357\104\155\171\106\061\176\012\376\251\202 +\301\377\357\253\156\040\304\120\311\137\235\115\233\027\214\014 +\345\001\311\240\101\152\163\123\372\245\120\264\156\045\017\373 +\114\030\364\375\122\331\216\151\261\350\021\017\336\210\330\373 +\035\111\367\252\336\225\317\040\170\302\140\022\333\045\100\214 +\152\374\176\102\070\100\144\022\367\236\201\341\223\056 +END + +# Trust for Certificate "GlobalSign Root CA - R2" +CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "GlobalSign Root CA - R2" +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\165\340\253\266\023\205\022\047\034\004\370\137\335\336\070\344 +\267\044\056\376 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\224\024\167\176\076\136\375\217\060\275\101\260\317\347\320\060 +END +CKA_ISSUER MULTILINE_OCTAL +\060\114\061\040\060\036\006\003\125\004\013\023\027\107\154\157 +\142\141\154\123\151\147\156\040\122\157\157\164\040\103\101\040 +\055\040\122\062\061\023\060\021\006\003\125\004\012\023\012\107 +\154\157\142\141\154\123\151\147\156\061\023\060\021\006\003\125 +\004\003\023\012\107\154\157\142\141\154\123\151\147\156 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\013\004\000\000\000\000\001\017\206\046\346\015 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "ValiCert Class 1 VA" +# +CKA_CLASS CK_OBJECT_CLASS CKO_CERTIFICATE +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "ValiCert Class 1 VA" +CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509 +CKA_SUBJECT MULTILINE_OCTAL +\060\201\273\061\044\060\042\006\003\125\004\007\023\033\126\141 +\154\151\103\145\162\164\040\126\141\154\151\144\141\164\151\157 +\156\040\116\145\164\167\157\162\153\061\027\060\025\006\003\125 +\004\012\023\016\126\141\154\151\103\145\162\164\054\040\111\156 +\143\056\061\065\060\063\006\003\125\004\013\023\054\126\141\154 +\151\103\145\162\164\040\103\154\141\163\163\040\061\040\120\157 +\154\151\143\171\040\126\141\154\151\144\141\164\151\157\156\040 +\101\165\164\150\157\162\151\164\171\061\041\060\037\006\003\125 +\004\003\023\030\150\164\164\160\072\057\057\167\167\167\056\166 +\141\154\151\143\145\162\164\056\143\157\155\057\061\040\060\036 +\006\011\052\206\110\206\367\015\001\011\001\026\021\151\156\146 +\157\100\166\141\154\151\143\145\162\164\056\143\157\155 +END +CKA_ID UTF8 "0" +CKA_ISSUER MULTILINE_OCTAL +\060\201\273\061\044\060\042\006\003\125\004\007\023\033\126\141 +\154\151\103\145\162\164\040\126\141\154\151\144\141\164\151\157 +\156\040\116\145\164\167\157\162\153\061\027\060\025\006\003\125 +\004\012\023\016\126\141\154\151\103\145\162\164\054\040\111\156 +\143\056\061\065\060\063\006\003\125\004\013\023\054\126\141\154 +\151\103\145\162\164\040\103\154\141\163\163\040\061\040\120\157 +\154\151\143\171\040\126\141\154\151\144\141\164\151\157\156\040 +\101\165\164\150\157\162\151\164\171\061\041\060\037\006\003\125 +\004\003\023\030\150\164\164\160\072\057\057\167\167\167\056\166 +\141\154\151\143\145\162\164\056\143\157\155\057\061\040\060\036 +\006\011\052\206\110\206\367\015\001\011\001\026\021\151\156\146 +\157\100\166\141\154\151\143\145\162\164\056\143\157\155 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\001\001 +END +CKA_VALUE MULTILINE_OCTAL +\060\202\002\347\060\202\002\120\002\001\001\060\015\006\011\052 +\206\110\206\367\015\001\001\005\005\000\060\201\273\061\044\060 +\042\006\003\125\004\007\023\033\126\141\154\151\103\145\162\164 +\040\126\141\154\151\144\141\164\151\157\156\040\116\145\164\167 +\157\162\153\061\027\060\025\006\003\125\004\012\023\016\126\141 +\154\151\103\145\162\164\054\040\111\156\143\056\061\065\060\063 +\006\003\125\004\013\023\054\126\141\154\151\103\145\162\164\040 +\103\154\141\163\163\040\061\040\120\157\154\151\143\171\040\126 +\141\154\151\144\141\164\151\157\156\040\101\165\164\150\157\162 +\151\164\171\061\041\060\037\006\003\125\004\003\023\030\150\164 +\164\160\072\057\057\167\167\167\056\166\141\154\151\143\145\162 +\164\056\143\157\155\057\061\040\060\036\006\011\052\206\110\206 +\367\015\001\011\001\026\021\151\156\146\157\100\166\141\154\151 +\143\145\162\164\056\143\157\155\060\036\027\015\071\071\060\066 +\062\065\062\062\062\063\064\070\132\027\015\061\071\060\066\062 +\065\062\062\062\063\064\070\132\060\201\273\061\044\060\042\006 +\003\125\004\007\023\033\126\141\154\151\103\145\162\164\040\126 +\141\154\151\144\141\164\151\157\156\040\116\145\164\167\157\162 +\153\061\027\060\025\006\003\125\004\012\023\016\126\141\154\151 +\103\145\162\164\054\040\111\156\143\056\061\065\060\063\006\003 +\125\004\013\023\054\126\141\154\151\103\145\162\164\040\103\154 +\141\163\163\040\061\040\120\157\154\151\143\171\040\126\141\154 +\151\144\141\164\151\157\156\040\101\165\164\150\157\162\151\164 +\171\061\041\060\037\006\003\125\004\003\023\030\150\164\164\160 +\072\057\057\167\167\167\056\166\141\154\151\143\145\162\164\056 +\143\157\155\057\061\040\060\036\006\011\052\206\110\206\367\015 +\001\011\001\026\021\151\156\146\157\100\166\141\154\151\143\145 +\162\164\056\143\157\155\060\201\237\060\015\006\011\052\206\110 +\206\367\015\001\001\001\005\000\003\201\215\000\060\201\211\002 +\201\201\000\330\131\202\172\211\270\226\272\246\057\150\157\130 +\056\247\124\034\006\156\364\352\215\110\274\061\224\027\360\363 +\116\274\262\270\065\222\166\260\320\245\245\001\327\000\003\022 +\042\031\010\370\377\021\043\233\316\007\365\277\151\032\046\376 +\116\351\321\177\235\054\100\035\131\150\156\246\370\130\260\235 +\032\217\323\077\361\334\031\006\201\250\016\340\072\335\310\123 +\105\011\006\346\017\160\303\372\100\246\016\342\126\005\017\030 +\115\374\040\202\321\163\125\164\215\166\162\240\035\235\035\300 +\335\077\161\002\003\001\000\001\060\015\006\011\052\206\110\206 +\367\015\001\001\005\005\000\003\201\201\000\120\150\075\111\364 +\054\034\006\224\337\225\140\177\226\173\027\376\117\161\255\144 +\310\335\167\322\357\131\125\350\077\350\216\005\052\041\362\007 +\322\265\247\122\376\234\261\266\342\133\167\027\100\352\162\326 +\043\313\050\201\062\303\000\171\030\354\131\027\211\311\306\152 +\036\161\311\375\267\164\245\045\105\151\305\110\253\031\341\105 +\212\045\153\031\356\345\273\022\365\177\367\246\215\121\303\360 +\235\164\267\251\076\240\245\377\266\111\003\023\332\042\314\355 +\161\202\053\231\317\072\267\365\055\162\310 +END + +# Trust for Certificate "ValiCert Class 1 VA" +CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "ValiCert Class 1 VA" +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\345\337\164\074\266\001\304\233\230\103\334\253\214\350\152\201 +\020\237\344\216 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\145\130\253\025\255\127\154\036\250\247\265\151\254\277\377\353 +END +CKA_ISSUER MULTILINE_OCTAL +\060\201\273\061\044\060\042\006\003\125\004\007\023\033\126\141 +\154\151\103\145\162\164\040\126\141\154\151\144\141\164\151\157 +\156\040\116\145\164\167\157\162\153\061\027\060\025\006\003\125 +\004\012\023\016\126\141\154\151\103\145\162\164\054\040\111\156 +\143\056\061\065\060\063\006\003\125\004\013\023\054\126\141\154 +\151\103\145\162\164\040\103\154\141\163\163\040\061\040\120\157 +\154\151\143\171\040\126\141\154\151\144\141\164\151\157\156\040 +\101\165\164\150\157\162\151\164\171\061\041\060\037\006\003\125 +\004\003\023\030\150\164\164\160\072\057\057\167\167\167\056\166 +\141\154\151\143\145\162\164\056\143\157\155\057\061\040\060\036 +\006\011\052\206\110\206\367\015\001\011\001\026\021\151\156\146 +\157\100\166\141\154\151\143\145\162\164\056\143\157\155 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\001\001 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "ValiCert Class 2 VA" +# +CKA_CLASS CK_OBJECT_CLASS CKO_CERTIFICATE +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "ValiCert Class 2 VA" +CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509 +CKA_SUBJECT MULTILINE_OCTAL +\060\201\273\061\044\060\042\006\003\125\004\007\023\033\126\141 +\154\151\103\145\162\164\040\126\141\154\151\144\141\164\151\157 +\156\040\116\145\164\167\157\162\153\061\027\060\025\006\003\125 +\004\012\023\016\126\141\154\151\103\145\162\164\054\040\111\156 +\143\056\061\065\060\063\006\003\125\004\013\023\054\126\141\154 +\151\103\145\162\164\040\103\154\141\163\163\040\062\040\120\157 +\154\151\143\171\040\126\141\154\151\144\141\164\151\157\156\040 +\101\165\164\150\157\162\151\164\171\061\041\060\037\006\003\125 +\004\003\023\030\150\164\164\160\072\057\057\167\167\167\056\166 +\141\154\151\143\145\162\164\056\143\157\155\057\061\040\060\036 +\006\011\052\206\110\206\367\015\001\011\001\026\021\151\156\146 +\157\100\166\141\154\151\143\145\162\164\056\143\157\155 +END +CKA_ID UTF8 "0" +CKA_ISSUER MULTILINE_OCTAL +\060\201\273\061\044\060\042\006\003\125\004\007\023\033\126\141 +\154\151\103\145\162\164\040\126\141\154\151\144\141\164\151\157 +\156\040\116\145\164\167\157\162\153\061\027\060\025\006\003\125 +\004\012\023\016\126\141\154\151\103\145\162\164\054\040\111\156 +\143\056\061\065\060\063\006\003\125\004\013\023\054\126\141\154 +\151\103\145\162\164\040\103\154\141\163\163\040\062\040\120\157 +\154\151\143\171\040\126\141\154\151\144\141\164\151\157\156\040 +\101\165\164\150\157\162\151\164\171\061\041\060\037\006\003\125 +\004\003\023\030\150\164\164\160\072\057\057\167\167\167\056\166 +\141\154\151\143\145\162\164\056\143\157\155\057\061\040\060\036 +\006\011\052\206\110\206\367\015\001\011\001\026\021\151\156\146 +\157\100\166\141\154\151\143\145\162\164\056\143\157\155 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\001\001 +END +CKA_VALUE MULTILINE_OCTAL +\060\202\002\347\060\202\002\120\002\001\001\060\015\006\011\052 +\206\110\206\367\015\001\001\005\005\000\060\201\273\061\044\060 +\042\006\003\125\004\007\023\033\126\141\154\151\103\145\162\164 +\040\126\141\154\151\144\141\164\151\157\156\040\116\145\164\167 +\157\162\153\061\027\060\025\006\003\125\004\012\023\016\126\141 +\154\151\103\145\162\164\054\040\111\156\143\056\061\065\060\063 +\006\003\125\004\013\023\054\126\141\154\151\103\145\162\164\040 +\103\154\141\163\163\040\062\040\120\157\154\151\143\171\040\126 +\141\154\151\144\141\164\151\157\156\040\101\165\164\150\157\162 +\151\164\171\061\041\060\037\006\003\125\004\003\023\030\150\164 +\164\160\072\057\057\167\167\167\056\166\141\154\151\143\145\162 +\164\056\143\157\155\057\061\040\060\036\006\011\052\206\110\206 +\367\015\001\011\001\026\021\151\156\146\157\100\166\141\154\151 +\143\145\162\164\056\143\157\155\060\036\027\015\071\071\060\066 +\062\066\060\060\061\071\065\064\132\027\015\061\071\060\066\062 +\066\060\060\061\071\065\064\132\060\201\273\061\044\060\042\006 +\003\125\004\007\023\033\126\141\154\151\103\145\162\164\040\126 +\141\154\151\144\141\164\151\157\156\040\116\145\164\167\157\162 +\153\061\027\060\025\006\003\125\004\012\023\016\126\141\154\151 +\103\145\162\164\054\040\111\156\143\056\061\065\060\063\006\003 +\125\004\013\023\054\126\141\154\151\103\145\162\164\040\103\154 +\141\163\163\040\062\040\120\157\154\151\143\171\040\126\141\154 +\151\144\141\164\151\157\156\040\101\165\164\150\157\162\151\164 +\171\061\041\060\037\006\003\125\004\003\023\030\150\164\164\160 +\072\057\057\167\167\167\056\166\141\154\151\143\145\162\164\056 +\143\157\155\057\061\040\060\036\006\011\052\206\110\206\367\015 +\001\011\001\026\021\151\156\146\157\100\166\141\154\151\143\145 +\162\164\056\143\157\155\060\201\237\060\015\006\011\052\206\110 +\206\367\015\001\001\001\005\000\003\201\215\000\060\201\211\002 +\201\201\000\316\072\161\312\345\253\310\131\222\125\327\253\330 +\164\016\371\356\331\366\125\107\131\145\107\016\005\125\334\353 +\230\066\074\134\123\135\323\060\317\070\354\275\101\211\355\045 +\102\011\044\153\012\136\263\174\335\122\055\114\346\324\326\175 +\132\131\251\145\324\111\023\055\044\115\034\120\157\265\301\205 +\124\073\376\161\344\323\134\102\371\200\340\221\032\012\133\071 +\066\147\363\077\125\174\033\077\264\137\144\163\064\343\264\022 +\277\207\144\370\332\022\377\067\047\301\263\103\273\357\173\156 +\056\151\367\002\003\001\000\001\060\015\006\011\052\206\110\206 +\367\015\001\001\005\005\000\003\201\201\000\073\177\120\157\157 +\120\224\231\111\142\070\070\037\113\370\245\310\076\247\202\201 +\366\053\307\350\305\316\350\072\020\202\313\030\000\216\115\275 +\250\130\177\241\171\000\265\273\351\215\257\101\331\017\064\356 +\041\201\031\240\062\111\050\364\304\216\126\325\122\063\375\120 +\325\176\231\154\003\344\311\114\374\313\154\253\146\263\112\041 +\214\345\265\014\062\076\020\262\314\154\241\334\232\230\114\002 +\133\363\316\271\236\245\162\016\112\267\077\074\346\026\150\370 +\276\355\164\114\274\133\325\142\037\103\335 +END + +# Trust for Certificate "ValiCert Class 2 VA" +CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "ValiCert Class 2 VA" +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\061\172\052\320\177\053\063\136\365\241\303\116\113\127\350\267 +\330\361\374\246 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\251\043\165\233\272\111\066\156\061\302\333\362\347\146\272\207 +END +CKA_ISSUER MULTILINE_OCTAL +\060\201\273\061\044\060\042\006\003\125\004\007\023\033\126\141 +\154\151\103\145\162\164\040\126\141\154\151\144\141\164\151\157 +\156\040\116\145\164\167\157\162\153\061\027\060\025\006\003\125 +\004\012\023\016\126\141\154\151\103\145\162\164\054\040\111\156 +\143\056\061\065\060\063\006\003\125\004\013\023\054\126\141\154 +\151\103\145\162\164\040\103\154\141\163\163\040\062\040\120\157 +\154\151\143\171\040\126\141\154\151\144\141\164\151\157\156\040 +\101\165\164\150\157\162\151\164\171\061\041\060\037\006\003\125 +\004\003\023\030\150\164\164\160\072\057\057\167\167\167\056\166 +\141\154\151\143\145\162\164\056\143\157\155\057\061\040\060\036 +\006\011\052\206\110\206\367\015\001\011\001\026\021\151\156\146 +\157\100\166\141\154\151\143\145\162\164\056\143\157\155 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\001\001 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "RSA Root Certificate 1" +# +CKA_CLASS CK_OBJECT_CLASS CKO_CERTIFICATE +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "RSA Root Certificate 1" +CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509 +CKA_SUBJECT MULTILINE_OCTAL +\060\201\273\061\044\060\042\006\003\125\004\007\023\033\126\141 +\154\151\103\145\162\164\040\126\141\154\151\144\141\164\151\157 +\156\040\116\145\164\167\157\162\153\061\027\060\025\006\003\125 +\004\012\023\016\126\141\154\151\103\145\162\164\054\040\111\156 +\143\056\061\065\060\063\006\003\125\004\013\023\054\126\141\154 +\151\103\145\162\164\040\103\154\141\163\163\040\063\040\120\157 +\154\151\143\171\040\126\141\154\151\144\141\164\151\157\156\040 +\101\165\164\150\157\162\151\164\171\061\041\060\037\006\003\125 +\004\003\023\030\150\164\164\160\072\057\057\167\167\167\056\166 +\141\154\151\143\145\162\164\056\143\157\155\057\061\040\060\036 +\006\011\052\206\110\206\367\015\001\011\001\026\021\151\156\146 +\157\100\166\141\154\151\143\145\162\164\056\143\157\155 +END +CKA_ID UTF8 "0" +CKA_ISSUER MULTILINE_OCTAL +\060\201\273\061\044\060\042\006\003\125\004\007\023\033\126\141 +\154\151\103\145\162\164\040\126\141\154\151\144\141\164\151\157 +\156\040\116\145\164\167\157\162\153\061\027\060\025\006\003\125 +\004\012\023\016\126\141\154\151\103\145\162\164\054\040\111\156 +\143\056\061\065\060\063\006\003\125\004\013\023\054\126\141\154 +\151\103\145\162\164\040\103\154\141\163\163\040\063\040\120\157 +\154\151\143\171\040\126\141\154\151\144\141\164\151\157\156\040 +\101\165\164\150\157\162\151\164\171\061\041\060\037\006\003\125 +\004\003\023\030\150\164\164\160\072\057\057\167\167\167\056\166 +\141\154\151\143\145\162\164\056\143\157\155\057\061\040\060\036 +\006\011\052\206\110\206\367\015\001\011\001\026\021\151\156\146 +\157\100\166\141\154\151\143\145\162\164\056\143\157\155 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\001\001 +END +CKA_VALUE MULTILINE_OCTAL +\060\202\002\347\060\202\002\120\002\001\001\060\015\006\011\052 +\206\110\206\367\015\001\001\005\005\000\060\201\273\061\044\060 +\042\006\003\125\004\007\023\033\126\141\154\151\103\145\162\164 +\040\126\141\154\151\144\141\164\151\157\156\040\116\145\164\167 +\157\162\153\061\027\060\025\006\003\125\004\012\023\016\126\141 +\154\151\103\145\162\164\054\040\111\156\143\056\061\065\060\063 +\006\003\125\004\013\023\054\126\141\154\151\103\145\162\164\040 +\103\154\141\163\163\040\063\040\120\157\154\151\143\171\040\126 +\141\154\151\144\141\164\151\157\156\040\101\165\164\150\157\162 +\151\164\171\061\041\060\037\006\003\125\004\003\023\030\150\164 +\164\160\072\057\057\167\167\167\056\166\141\154\151\143\145\162 +\164\056\143\157\155\057\061\040\060\036\006\011\052\206\110\206 +\367\015\001\011\001\026\021\151\156\146\157\100\166\141\154\151 +\143\145\162\164\056\143\157\155\060\036\027\015\071\071\060\066 +\062\066\060\060\062\062\063\063\132\027\015\061\071\060\066\062 +\066\060\060\062\062\063\063\132\060\201\273\061\044\060\042\006 +\003\125\004\007\023\033\126\141\154\151\103\145\162\164\040\126 +\141\154\151\144\141\164\151\157\156\040\116\145\164\167\157\162 +\153\061\027\060\025\006\003\125\004\012\023\016\126\141\154\151 +\103\145\162\164\054\040\111\156\143\056\061\065\060\063\006\003 +\125\004\013\023\054\126\141\154\151\103\145\162\164\040\103\154 +\141\163\163\040\063\040\120\157\154\151\143\171\040\126\141\154 +\151\144\141\164\151\157\156\040\101\165\164\150\157\162\151\164 +\171\061\041\060\037\006\003\125\004\003\023\030\150\164\164\160 +\072\057\057\167\167\167\056\166\141\154\151\143\145\162\164\056 +\143\157\155\057\061\040\060\036\006\011\052\206\110\206\367\015 +\001\011\001\026\021\151\156\146\157\100\166\141\154\151\143\145 +\162\164\056\143\157\155\060\201\237\060\015\006\011\052\206\110 +\206\367\015\001\001\001\005\000\003\201\215\000\060\201\211\002 +\201\201\000\343\230\121\226\034\350\325\261\006\201\152\127\303 +\162\165\223\253\317\236\246\374\363\026\122\326\055\115\237\065 +\104\250\056\004\115\007\111\212\070\051\365\167\067\347\267\253 +\135\337\066\161\024\231\217\334\302\222\361\347\140\222\227\354 +\330\110\334\277\301\002\040\306\044\244\050\114\060\132\166\155 +\261\134\363\335\336\236\020\161\241\210\307\133\233\101\155\312 +\260\270\216\025\356\255\063\053\317\107\004\134\165\161\012\230 +\044\230\051\247\111\131\245\335\370\267\103\142\141\363\323\342 +\320\125\077\002\003\001\000\001\060\015\006\011\052\206\110\206 +\367\015\001\001\005\005\000\003\201\201\000\126\273\002\130\204 +\147\010\054\337\037\333\173\111\063\365\323\147\235\364\264\012 +\020\263\311\305\054\342\222\152\161\170\047\362\160\203\102\323 +\076\317\251\124\364\361\330\222\026\214\321\004\313\113\253\311 +\237\105\256\074\212\251\260\161\063\135\310\305\127\337\257\250 +\065\263\177\211\207\351\350\045\222\270\177\205\172\256\326\274 +\036\067\130\052\147\311\221\317\052\201\076\355\306\071\337\300 +\076\031\234\031\314\023\115\202\101\265\214\336\340\075\140\010 +\040\017\105\176\153\242\177\243\214\025\356 +END + +# Trust for Certificate "RSA Root Certificate 1" +CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "RSA Root Certificate 1" +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\151\275\214\364\234\323\000\373\131\056\027\223\312\125\152\363 +\354\252\065\373 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\242\157\123\267\356\100\333\112\150\347\372\030\331\020\113\162 +END +CKA_ISSUER MULTILINE_OCTAL +\060\201\273\061\044\060\042\006\003\125\004\007\023\033\126\141 +\154\151\103\145\162\164\040\126\141\154\151\144\141\164\151\157 +\156\040\116\145\164\167\157\162\153\061\027\060\025\006\003\125 +\004\012\023\016\126\141\154\151\103\145\162\164\054\040\111\156 +\143\056\061\065\060\063\006\003\125\004\013\023\054\126\141\154 +\151\103\145\162\164\040\103\154\141\163\163\040\063\040\120\157 +\154\151\143\171\040\126\141\154\151\144\141\164\151\157\156\040 +\101\165\164\150\157\162\151\164\171\061\041\060\037\006\003\125 +\004\003\023\030\150\164\164\160\072\057\057\167\167\167\056\166 +\141\154\151\143\145\162\164\056\143\157\155\057\061\040\060\036 +\006\011\052\206\110\206\367\015\001\011\001\026\021\151\156\146 +\157\100\166\141\154\151\143\145\162\164\056\143\157\155 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\001\001 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "Verisign Class 1 Public Primary Certification Authority - G3" +# +CKA_CLASS CK_OBJECT_CLASS CKO_CERTIFICATE +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "Verisign Class 1 Public Primary Certification Authority - G3" +CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509 +CKA_SUBJECT MULTILINE_OCTAL +\060\201\312\061\013\060\011\006\003\125\004\006\023\002\125\123 +\061\027\060\025\006\003\125\004\012\023\016\126\145\162\151\123 +\151\147\156\054\040\111\156\143\056\061\037\060\035\006\003\125 +\004\013\023\026\126\145\162\151\123\151\147\156\040\124\162\165 +\163\164\040\116\145\164\167\157\162\153\061\072\060\070\006\003 +\125\004\013\023\061\050\143\051\040\061\071\071\071\040\126\145 +\162\151\123\151\147\156\054\040\111\156\143\056\040\055\040\106 +\157\162\040\141\165\164\150\157\162\151\172\145\144\040\165\163 +\145\040\157\156\154\171\061\105\060\103\006\003\125\004\003\023 +\074\126\145\162\151\123\151\147\156\040\103\154\141\163\163\040 +\061\040\120\165\142\154\151\143\040\120\162\151\155\141\162\171 +\040\103\145\162\164\151\146\151\143\141\164\151\157\156\040\101 +\165\164\150\157\162\151\164\171\040\055\040\107\063 +END +CKA_ID UTF8 "0" +CKA_ISSUER MULTILINE_OCTAL +\060\201\312\061\013\060\011\006\003\125\004\006\023\002\125\123 +\061\027\060\025\006\003\125\004\012\023\016\126\145\162\151\123 +\151\147\156\054\040\111\156\143\056\061\037\060\035\006\003\125 +\004\013\023\026\126\145\162\151\123\151\147\156\040\124\162\165 +\163\164\040\116\145\164\167\157\162\153\061\072\060\070\006\003 +\125\004\013\023\061\050\143\051\040\061\071\071\071\040\126\145 +\162\151\123\151\147\156\054\040\111\156\143\056\040\055\040\106 +\157\162\040\141\165\164\150\157\162\151\172\145\144\040\165\163 +\145\040\157\156\154\171\061\105\060\103\006\003\125\004\003\023 +\074\126\145\162\151\123\151\147\156\040\103\154\141\163\163\040 +\061\040\120\165\142\154\151\143\040\120\162\151\155\141\162\171 +\040\103\145\162\164\151\146\151\143\141\164\151\157\156\040\101 +\165\164\150\157\162\151\164\171\040\055\040\107\063 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\021\000\213\133\165\126\204\124\205\013\000\317\257\070\110 +\316\261\244 +END +CKA_VALUE MULTILINE_OCTAL +\060\202\004\032\060\202\003\002\002\021\000\213\133\165\126\204 +\124\205\013\000\317\257\070\110\316\261\244\060\015\006\011\052 +\206\110\206\367\015\001\001\005\005\000\060\201\312\061\013\060 +\011\006\003\125\004\006\023\002\125\123\061\027\060\025\006\003 +\125\004\012\023\016\126\145\162\151\123\151\147\156\054\040\111 +\156\143\056\061\037\060\035\006\003\125\004\013\023\026\126\145 +\162\151\123\151\147\156\040\124\162\165\163\164\040\116\145\164 +\167\157\162\153\061\072\060\070\006\003\125\004\013\023\061\050 +\143\051\040\061\071\071\071\040\126\145\162\151\123\151\147\156 +\054\040\111\156\143\056\040\055\040\106\157\162\040\141\165\164 +\150\157\162\151\172\145\144\040\165\163\145\040\157\156\154\171 +\061\105\060\103\006\003\125\004\003\023\074\126\145\162\151\123 +\151\147\156\040\103\154\141\163\163\040\061\040\120\165\142\154 +\151\143\040\120\162\151\155\141\162\171\040\103\145\162\164\151 +\146\151\143\141\164\151\157\156\040\101\165\164\150\157\162\151 +\164\171\040\055\040\107\063\060\036\027\015\071\071\061\060\060 +\061\060\060\060\060\060\060\132\027\015\063\066\060\067\061\066 +\062\063\065\071\065\071\132\060\201\312\061\013\060\011\006\003 +\125\004\006\023\002\125\123\061\027\060\025\006\003\125\004\012 +\023\016\126\145\162\151\123\151\147\156\054\040\111\156\143\056 +\061\037\060\035\006\003\125\004\013\023\026\126\145\162\151\123 +\151\147\156\040\124\162\165\163\164\040\116\145\164\167\157\162 +\153\061\072\060\070\006\003\125\004\013\023\061\050\143\051\040 +\061\071\071\071\040\126\145\162\151\123\151\147\156\054\040\111 +\156\143\056\040\055\040\106\157\162\040\141\165\164\150\157\162 +\151\172\145\144\040\165\163\145\040\157\156\154\171\061\105\060 +\103\006\003\125\004\003\023\074\126\145\162\151\123\151\147\156 +\040\103\154\141\163\163\040\061\040\120\165\142\154\151\143\040 +\120\162\151\155\141\162\171\040\103\145\162\164\151\146\151\143 +\141\164\151\157\156\040\101\165\164\150\157\162\151\164\171\040 +\055\040\107\063\060\202\001\042\060\015\006\011\052\206\110\206 +\367\015\001\001\001\005\000\003\202\001\017\000\060\202\001\012 +\002\202\001\001\000\335\204\324\271\264\371\247\330\363\004\170 +\234\336\075\334\154\023\026\331\172\335\044\121\146\300\307\046 +\131\015\254\006\010\302\224\321\063\037\360\203\065\037\156\033 +\310\336\252\156\025\116\124\047\357\304\155\032\354\013\343\016 +\360\104\245\127\307\100\130\036\243\107\037\161\354\140\366\155 +\224\310\030\071\355\376\102\030\126\337\344\114\111\020\170\116 +\001\166\065\143\022\066\335\146\274\001\004\066\243\125\150\325 +\242\066\011\254\253\041\046\124\006\255\077\312\024\340\254\312 +\255\006\035\225\342\370\235\361\340\140\377\302\177\165\053\114 +\314\332\376\207\231\041\352\272\376\076\124\327\322\131\170\333 +\074\156\317\240\023\000\032\270\047\241\344\276\147\226\312\240 +\305\263\234\335\311\165\236\353\060\232\137\243\315\331\256\170 +\031\077\043\351\134\333\051\275\255\125\310\033\124\214\143\366 +\350\246\352\307\067\022\134\243\051\036\002\331\333\037\073\264 +\327\017\126\107\201\025\004\112\257\203\047\321\305\130\210\301 +\335\366\252\247\243\030\332\150\252\155\021\121\341\277\145\153 +\237\226\166\321\075\002\003\001\000\001\060\015\006\011\052\206 +\110\206\367\015\001\001\005\005\000\003\202\001\001\000\253\146 +\215\327\263\272\307\232\266\346\125\320\005\361\237\061\215\132 +\252\331\252\106\046\017\161\355\245\255\123\126\142\001\107\052 +\104\351\376\077\164\013\023\233\271\364\115\033\262\321\137\262 +\266\322\210\134\263\237\315\313\324\247\331\140\225\204\072\370 +\301\067\035\141\312\347\260\305\345\221\332\124\246\254\061\201 +\256\227\336\315\010\254\270\300\227\200\177\156\162\244\347\151 +\023\225\145\037\304\223\074\375\171\217\004\324\076\117\352\367 +\236\316\315\147\174\117\145\002\377\221\205\124\163\307\377\066 +\367\206\055\354\320\136\117\377\021\237\162\006\326\270\032\361 +\114\015\046\145\342\104\200\036\307\237\343\335\350\012\332\354 +\245\040\200\151\150\241\117\176\341\153\317\007\101\372\203\216 +\274\070\335\260\056\021\261\153\262\102\314\232\274\371\110\042 +\171\112\031\017\262\034\076\040\164\331\152\303\276\362\050\170 +\023\126\171\117\155\120\352\033\260\265\127\261\067\146\130\043 +\363\334\017\337\012\207\304\357\206\005\325\070\024\140\231\243 +\113\336\006\226\161\054\362\333\266\037\244\357\077\356 +END + +# Trust for Certificate "Verisign Class 1 Public Primary Certification Authority - G3" +CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "Verisign Class 1 Public Primary Certification Authority - G3" +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\040\102\205\334\367\353\166\101\225\127\216\023\153\324\267\321 +\351\216\106\245 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\261\107\274\030\127\321\030\240\170\055\354\161\350\052\225\163 +END +CKA_ISSUER MULTILINE_OCTAL +\060\201\312\061\013\060\011\006\003\125\004\006\023\002\125\123 +\061\027\060\025\006\003\125\004\012\023\016\126\145\162\151\123 +\151\147\156\054\040\111\156\143\056\061\037\060\035\006\003\125 +\004\013\023\026\126\145\162\151\123\151\147\156\040\124\162\165 +\163\164\040\116\145\164\167\157\162\153\061\072\060\070\006\003 +\125\004\013\023\061\050\143\051\040\061\071\071\071\040\126\145 +\162\151\123\151\147\156\054\040\111\156\143\056\040\055\040\106 +\157\162\040\141\165\164\150\157\162\151\172\145\144\040\165\163 +\145\040\157\156\154\171\061\105\060\103\006\003\125\004\003\023 +\074\126\145\162\151\123\151\147\156\040\103\154\141\163\163\040 +\061\040\120\165\142\154\151\143\040\120\162\151\155\141\162\171 +\040\103\145\162\164\151\146\151\143\141\164\151\157\156\040\101 +\165\164\150\157\162\151\164\171\040\055\040\107\063 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\021\000\213\133\165\126\204\124\205\013\000\317\257\070\110 +\316\261\244 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_TRUST_UNKNOWN +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_TRUST_UNKNOWN +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "Verisign Class 2 Public Primary Certification Authority - G3" +# +CKA_CLASS CK_OBJECT_CLASS CKO_CERTIFICATE +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "Verisign Class 2 Public Primary Certification Authority - G3" +CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509 +CKA_SUBJECT MULTILINE_OCTAL +\060\201\312\061\013\060\011\006\003\125\004\006\023\002\125\123 +\061\027\060\025\006\003\125\004\012\023\016\126\145\162\151\123 +\151\147\156\054\040\111\156\143\056\061\037\060\035\006\003\125 +\004\013\023\026\126\145\162\151\123\151\147\156\040\124\162\165 +\163\164\040\116\145\164\167\157\162\153\061\072\060\070\006\003 +\125\004\013\023\061\050\143\051\040\061\071\071\071\040\126\145 +\162\151\123\151\147\156\054\040\111\156\143\056\040\055\040\106 +\157\162\040\141\165\164\150\157\162\151\172\145\144\040\165\163 +\145\040\157\156\154\171\061\105\060\103\006\003\125\004\003\023 +\074\126\145\162\151\123\151\147\156\040\103\154\141\163\163\040 +\062\040\120\165\142\154\151\143\040\120\162\151\155\141\162\171 +\040\103\145\162\164\151\146\151\143\141\164\151\157\156\040\101 +\165\164\150\157\162\151\164\171\040\055\040\107\063 +END +CKA_ID UTF8 "0" +CKA_ISSUER MULTILINE_OCTAL +\060\201\312\061\013\060\011\006\003\125\004\006\023\002\125\123 +\061\027\060\025\006\003\125\004\012\023\016\126\145\162\151\123 +\151\147\156\054\040\111\156\143\056\061\037\060\035\006\003\125 +\004\013\023\026\126\145\162\151\123\151\147\156\040\124\162\165 +\163\164\040\116\145\164\167\157\162\153\061\072\060\070\006\003 +\125\004\013\023\061\050\143\051\040\061\071\071\071\040\126\145 +\162\151\123\151\147\156\054\040\111\156\143\056\040\055\040\106 +\157\162\040\141\165\164\150\157\162\151\172\145\144\040\165\163 +\145\040\157\156\154\171\061\105\060\103\006\003\125\004\003\023 +\074\126\145\162\151\123\151\147\156\040\103\154\141\163\163\040 +\062\040\120\165\142\154\151\143\040\120\162\151\155\141\162\171 +\040\103\145\162\164\151\146\151\143\141\164\151\157\156\040\101 +\165\164\150\157\162\151\164\171\040\055\040\107\063 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\020\141\160\313\111\214\137\230\105\051\347\260\246\331\120 +\133\172 +END +CKA_VALUE MULTILINE_OCTAL +\060\202\004\031\060\202\003\001\002\020\141\160\313\111\214\137 +\230\105\051\347\260\246\331\120\133\172\060\015\006\011\052\206 +\110\206\367\015\001\001\005\005\000\060\201\312\061\013\060\011 +\006\003\125\004\006\023\002\125\123\061\027\060\025\006\003\125 +\004\012\023\016\126\145\162\151\123\151\147\156\054\040\111\156 +\143\056\061\037\060\035\006\003\125\004\013\023\026\126\145\162 +\151\123\151\147\156\040\124\162\165\163\164\040\116\145\164\167 +\157\162\153\061\072\060\070\006\003\125\004\013\023\061\050\143 +\051\040\061\071\071\071\040\126\145\162\151\123\151\147\156\054 +\040\111\156\143\056\040\055\040\106\157\162\040\141\165\164\150 +\157\162\151\172\145\144\040\165\163\145\040\157\156\154\171\061 +\105\060\103\006\003\125\004\003\023\074\126\145\162\151\123\151 +\147\156\040\103\154\141\163\163\040\062\040\120\165\142\154\151 +\143\040\120\162\151\155\141\162\171\040\103\145\162\164\151\146 +\151\143\141\164\151\157\156\040\101\165\164\150\157\162\151\164 +\171\040\055\040\107\063\060\036\027\015\071\071\061\060\060\061 +\060\060\060\060\060\060\132\027\015\063\066\060\067\061\066\062 +\063\065\071\065\071\132\060\201\312\061\013\060\011\006\003\125 +\004\006\023\002\125\123\061\027\060\025\006\003\125\004\012\023 +\016\126\145\162\151\123\151\147\156\054\040\111\156\143\056\061 +\037\060\035\006\003\125\004\013\023\026\126\145\162\151\123\151 +\147\156\040\124\162\165\163\164\040\116\145\164\167\157\162\153 +\061\072\060\070\006\003\125\004\013\023\061\050\143\051\040\061 +\071\071\071\040\126\145\162\151\123\151\147\156\054\040\111\156 +\143\056\040\055\040\106\157\162\040\141\165\164\150\157\162\151 +\172\145\144\040\165\163\145\040\157\156\154\171\061\105\060\103 +\006\003\125\004\003\023\074\126\145\162\151\123\151\147\156\040 +\103\154\141\163\163\040\062\040\120\165\142\154\151\143\040\120 +\162\151\155\141\162\171\040\103\145\162\164\151\146\151\143\141 +\164\151\157\156\040\101\165\164\150\157\162\151\164\171\040\055 +\040\107\063\060\202\001\042\060\015\006\011\052\206\110\206\367 +\015\001\001\001\005\000\003\202\001\017\000\060\202\001\012\002 +\202\001\001\000\257\012\015\302\325\054\333\147\271\055\345\224 +\047\335\245\276\340\260\115\217\263\141\126\074\326\174\303\364 +\315\076\206\313\242\210\342\341\330\244\151\305\265\342\277\301 +\246\107\120\136\106\071\213\325\226\272\265\157\024\277\020\316 +\047\023\236\005\107\233\061\172\023\330\037\331\323\002\067\213 +\255\054\107\360\216\201\006\247\015\060\014\353\367\074\017\040 +\035\334\162\106\356\245\002\310\133\303\311\126\151\114\305\030 +\301\221\173\013\325\023\000\233\274\357\303\110\076\106\140\040 +\205\052\325\220\266\315\213\240\314\062\335\267\375\100\125\262 +\120\034\126\256\314\215\167\115\307\040\115\247\061\166\357\150 +\222\212\220\036\010\201\126\262\255\151\243\122\320\313\034\304 +\043\075\037\231\376\114\350\026\143\216\306\010\216\366\061\366 +\322\372\345\166\335\265\034\222\243\111\315\315\001\315\150\315 +\251\151\272\243\353\035\015\234\244\040\246\301\240\305\321\106 +\114\027\155\322\254\146\077\226\214\340\204\324\066\377\042\131 +\305\371\021\140\250\137\004\175\362\032\366\045\102\141\017\304 +\112\270\076\211\002\003\001\000\001\060\015\006\011\052\206\110 +\206\367\015\001\001\005\005\000\003\202\001\001\000\064\046\025 +\074\300\215\115\103\111\035\275\351\041\222\327\146\234\267\336 +\305\270\320\344\135\137\166\042\300\046\371\204\072\072\371\214 +\265\373\354\140\361\350\316\004\260\310\335\247\003\217\060\363 +\230\337\244\346\244\061\337\323\034\013\106\334\162\040\077\256 +\356\005\074\244\063\077\013\071\254\160\170\163\113\231\053\337 +\060\302\124\260\250\073\125\241\376\026\050\315\102\275\164\156 +\200\333\047\104\247\316\104\135\324\033\220\230\015\036\102\224 +\261\000\054\004\320\164\243\002\005\042\143\143\315\203\265\373 +\301\155\142\153\151\165\375\135\160\101\271\365\277\174\337\276 +\301\062\163\042\041\213\130\201\173\025\221\172\272\343\144\110 +\260\177\373\066\045\332\225\320\361\044\024\027\335\030\200\153 +\106\043\071\124\365\216\142\011\004\035\224\220\246\233\346\045 +\342\102\105\252\270\220\255\276\010\217\251\013\102\030\224\317 +\162\071\341\261\103\340\050\317\267\347\132\154\023\153\111\263 +\377\343\030\174\211\213\063\135\254\063\327\247\371\332\072\125 +\311\130\020\371\252\357\132\266\317\113\113\337\052 +END + +# Trust for Certificate "Verisign Class 2 Public Primary Certification Authority - G3" +CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "Verisign Class 2 Public Primary Certification Authority - G3" +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\141\357\103\327\177\312\324\141\121\274\230\340\303\131\022\257 +\237\353\143\021 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\370\276\304\143\042\311\250\106\164\213\270\035\036\112\053\366 +END +CKA_ISSUER MULTILINE_OCTAL +\060\201\312\061\013\060\011\006\003\125\004\006\023\002\125\123 +\061\027\060\025\006\003\125\004\012\023\016\126\145\162\151\123 +\151\147\156\054\040\111\156\143\056\061\037\060\035\006\003\125 +\004\013\023\026\126\145\162\151\123\151\147\156\040\124\162\165 +\163\164\040\116\145\164\167\157\162\153\061\072\060\070\006\003 +\125\004\013\023\061\050\143\051\040\061\071\071\071\040\126\145 +\162\151\123\151\147\156\054\040\111\156\143\056\040\055\040\106 +\157\162\040\141\165\164\150\157\162\151\172\145\144\040\165\163 +\145\040\157\156\154\171\061\105\060\103\006\003\125\004\003\023 +\074\126\145\162\151\123\151\147\156\040\103\154\141\163\163\040 +\062\040\120\165\142\154\151\143\040\120\162\151\155\141\162\171 +\040\103\145\162\164\151\146\151\143\141\164\151\157\156\040\101 +\165\164\150\157\162\151\164\171\040\055\040\107\063 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\020\141\160\313\111\214\137\230\105\051\347\260\246\331\120 +\133\172 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_TRUST_UNKNOWN +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "Verisign Class 3 Public Primary Certification Authority - G3" +# +CKA_CLASS CK_OBJECT_CLASS CKO_CERTIFICATE +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "Verisign Class 3 Public Primary Certification Authority - G3" +CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509 +CKA_SUBJECT MULTILINE_OCTAL +\060\201\312\061\013\060\011\006\003\125\004\006\023\002\125\123 +\061\027\060\025\006\003\125\004\012\023\016\126\145\162\151\123 +\151\147\156\054\040\111\156\143\056\061\037\060\035\006\003\125 +\004\013\023\026\126\145\162\151\123\151\147\156\040\124\162\165 +\163\164\040\116\145\164\167\157\162\153\061\072\060\070\006\003 +\125\004\013\023\061\050\143\051\040\061\071\071\071\040\126\145 +\162\151\123\151\147\156\054\040\111\156\143\056\040\055\040\106 +\157\162\040\141\165\164\150\157\162\151\172\145\144\040\165\163 +\145\040\157\156\154\171\061\105\060\103\006\003\125\004\003\023 +\074\126\145\162\151\123\151\147\156\040\103\154\141\163\163\040 +\063\040\120\165\142\154\151\143\040\120\162\151\155\141\162\171 +\040\103\145\162\164\151\146\151\143\141\164\151\157\156\040\101 +\165\164\150\157\162\151\164\171\040\055\040\107\063 +END +CKA_ID UTF8 "0" +CKA_ISSUER MULTILINE_OCTAL +\060\201\312\061\013\060\011\006\003\125\004\006\023\002\125\123 +\061\027\060\025\006\003\125\004\012\023\016\126\145\162\151\123 +\151\147\156\054\040\111\156\143\056\061\037\060\035\006\003\125 +\004\013\023\026\126\145\162\151\123\151\147\156\040\124\162\165 +\163\164\040\116\145\164\167\157\162\153\061\072\060\070\006\003 +\125\004\013\023\061\050\143\051\040\061\071\071\071\040\126\145 +\162\151\123\151\147\156\054\040\111\156\143\056\040\055\040\106 +\157\162\040\141\165\164\150\157\162\151\172\145\144\040\165\163 +\145\040\157\156\154\171\061\105\060\103\006\003\125\004\003\023 +\074\126\145\162\151\123\151\147\156\040\103\154\141\163\163\040 +\063\040\120\165\142\154\151\143\040\120\162\151\155\141\162\171 +\040\103\145\162\164\151\146\151\143\141\164\151\157\156\040\101 +\165\164\150\157\162\151\164\171\040\055\040\107\063 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\021\000\233\176\006\111\243\076\142\271\325\356\220\110\161 +\051\357\127 +END +CKA_VALUE MULTILINE_OCTAL +\060\202\004\032\060\202\003\002\002\021\000\233\176\006\111\243 +\076\142\271\325\356\220\110\161\051\357\127\060\015\006\011\052 +\206\110\206\367\015\001\001\005\005\000\060\201\312\061\013\060 +\011\006\003\125\004\006\023\002\125\123\061\027\060\025\006\003 +\125\004\012\023\016\126\145\162\151\123\151\147\156\054\040\111 +\156\143\056\061\037\060\035\006\003\125\004\013\023\026\126\145 +\162\151\123\151\147\156\040\124\162\165\163\164\040\116\145\164 +\167\157\162\153\061\072\060\070\006\003\125\004\013\023\061\050 +\143\051\040\061\071\071\071\040\126\145\162\151\123\151\147\156 +\054\040\111\156\143\056\040\055\040\106\157\162\040\141\165\164 +\150\157\162\151\172\145\144\040\165\163\145\040\157\156\154\171 +\061\105\060\103\006\003\125\004\003\023\074\126\145\162\151\123 +\151\147\156\040\103\154\141\163\163\040\063\040\120\165\142\154 +\151\143\040\120\162\151\155\141\162\171\040\103\145\162\164\151 +\146\151\143\141\164\151\157\156\040\101\165\164\150\157\162\151 +\164\171\040\055\040\107\063\060\036\027\015\071\071\061\060\060 +\061\060\060\060\060\060\060\132\027\015\063\066\060\067\061\066 +\062\063\065\071\065\071\132\060\201\312\061\013\060\011\006\003 +\125\004\006\023\002\125\123\061\027\060\025\006\003\125\004\012 +\023\016\126\145\162\151\123\151\147\156\054\040\111\156\143\056 +\061\037\060\035\006\003\125\004\013\023\026\126\145\162\151\123 +\151\147\156\040\124\162\165\163\164\040\116\145\164\167\157\162 +\153\061\072\060\070\006\003\125\004\013\023\061\050\143\051\040 +\061\071\071\071\040\126\145\162\151\123\151\147\156\054\040\111 +\156\143\056\040\055\040\106\157\162\040\141\165\164\150\157\162 +\151\172\145\144\040\165\163\145\040\157\156\154\171\061\105\060 +\103\006\003\125\004\003\023\074\126\145\162\151\123\151\147\156 +\040\103\154\141\163\163\040\063\040\120\165\142\154\151\143\040 +\120\162\151\155\141\162\171\040\103\145\162\164\151\146\151\143 +\141\164\151\157\156\040\101\165\164\150\157\162\151\164\171\040 +\055\040\107\063\060\202\001\042\060\015\006\011\052\206\110\206 +\367\015\001\001\001\005\000\003\202\001\017\000\060\202\001\012 +\002\202\001\001\000\313\272\234\122\374\170\037\032\036\157\033 +\067\163\275\370\311\153\224\022\060\117\360\066\107\365\320\221 +\012\365\027\310\245\141\301\026\100\115\373\212\141\220\345\166 +\040\301\021\006\175\253\054\156\246\365\021\101\216\372\055\255 +\052\141\131\244\147\046\114\320\350\274\122\133\160\040\004\130 +\321\172\311\244\151\274\203\027\144\255\005\213\274\320\130\316 +\215\214\365\353\360\102\111\013\235\227\047\147\062\156\341\256 +\223\025\034\160\274\040\115\057\030\336\222\210\350\154\205\127 +\021\032\351\176\343\046\021\124\242\105\226\125\203\312\060\211 +\350\334\330\243\355\052\200\077\177\171\145\127\076\025\040\146 +\010\057\225\223\277\252\107\057\250\106\227\360\022\342\376\302 +\012\053\121\346\166\346\267\106\267\342\015\246\314\250\303\114 +\131\125\211\346\350\123\134\034\352\235\360\142\026\013\247\311 +\137\014\360\336\302\166\316\257\367\152\362\372\101\246\242\063 +\024\311\345\172\143\323\236\142\067\325\205\145\236\016\346\123 +\044\164\033\136\035\022\123\133\307\054\347\203\111\073\025\256 +\212\150\271\127\227\002\003\001\000\001\060\015\006\011\052\206 +\110\206\367\015\001\001\005\005\000\003\202\001\001\000\021\024 +\226\301\253\222\010\367\077\057\311\262\376\344\132\237\144\336 +\333\041\117\206\231\064\166\066\127\335\320\025\057\305\255\177 +\025\037\067\142\163\076\324\347\137\316\027\003\333\065\372\053 +\333\256\140\011\137\036\137\217\156\273\013\075\352\132\023\036 +\014\140\157\265\300\265\043\042\056\007\013\313\251\164\313\107 +\273\035\301\327\245\153\314\057\322\102\375\111\335\247\211\317 +\123\272\332\000\132\050\277\202\337\370\272\023\035\120\206\202 +\375\216\060\217\051\106\260\036\075\065\332\070\142\026\030\112 +\255\346\266\121\154\336\257\142\353\001\320\036\044\376\172\217 +\022\032\022\150\270\373\146\231\024\024\105\134\256\347\256\151 +\027\201\053\132\067\311\136\052\364\306\342\241\134\124\233\246 +\124\000\317\360\361\301\307\230\060\032\073\066\026\333\243\156 +\352\375\255\262\302\332\357\002\107\023\212\300\361\263\061\255 +\117\034\341\117\234\257\017\014\235\367\170\015\330\364\065\126 +\200\332\267\155\027\217\235\036\201\144\341\376\305\105\272\255 +\153\271\012\172\116\117\113\204\356\113\361\175\335\021 +END + +# Trust for Certificate "Verisign Class 3 Public Primary Certification Authority - G3" +CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "Verisign Class 3 Public Primary Certification Authority - G3" +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\023\055\015\105\123\113\151\227\315\262\325\303\071\342\125\166 +\140\233\134\306 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\315\150\266\247\307\304\316\165\340\035\117\127\104\141\222\011 +END +CKA_ISSUER MULTILINE_OCTAL +\060\201\312\061\013\060\011\006\003\125\004\006\023\002\125\123 +\061\027\060\025\006\003\125\004\012\023\016\126\145\162\151\123 +\151\147\156\054\040\111\156\143\056\061\037\060\035\006\003\125 +\004\013\023\026\126\145\162\151\123\151\147\156\040\124\162\165 +\163\164\040\116\145\164\167\157\162\153\061\072\060\070\006\003 +\125\004\013\023\061\050\143\051\040\061\071\071\071\040\126\145 +\162\151\123\151\147\156\054\040\111\156\143\056\040\055\040\106 +\157\162\040\141\165\164\150\157\162\151\172\145\144\040\165\163 +\145\040\157\156\154\171\061\105\060\103\006\003\125\004\003\023 +\074\126\145\162\151\123\151\147\156\040\103\154\141\163\163\040 +\063\040\120\165\142\154\151\143\040\120\162\151\155\141\162\171 +\040\103\145\162\164\151\146\151\143\141\164\151\157\156\040\101 +\165\164\150\157\162\151\164\171\040\055\040\107\063 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\021\000\233\176\006\111\243\076\142\271\325\356\220\110\161 +\051\357\127 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "Verisign Class 4 Public Primary Certification Authority - G3" +# +CKA_CLASS CK_OBJECT_CLASS CKO_CERTIFICATE +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "Verisign Class 4 Public Primary Certification Authority - G3" +CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509 +CKA_SUBJECT MULTILINE_OCTAL +\060\201\312\061\013\060\011\006\003\125\004\006\023\002\125\123 +\061\027\060\025\006\003\125\004\012\023\016\126\145\162\151\123 +\151\147\156\054\040\111\156\143\056\061\037\060\035\006\003\125 +\004\013\023\026\126\145\162\151\123\151\147\156\040\124\162\165 +\163\164\040\116\145\164\167\157\162\153\061\072\060\070\006\003 +\125\004\013\023\061\050\143\051\040\061\071\071\071\040\126\145 +\162\151\123\151\147\156\054\040\111\156\143\056\040\055\040\106 +\157\162\040\141\165\164\150\157\162\151\172\145\144\040\165\163 +\145\040\157\156\154\171\061\105\060\103\006\003\125\004\003\023 +\074\126\145\162\151\123\151\147\156\040\103\154\141\163\163\040 +\064\040\120\165\142\154\151\143\040\120\162\151\155\141\162\171 +\040\103\145\162\164\151\146\151\143\141\164\151\157\156\040\101 +\165\164\150\157\162\151\164\171\040\055\040\107\063 +END +CKA_ID UTF8 "0" +CKA_ISSUER MULTILINE_OCTAL +\060\201\312\061\013\060\011\006\003\125\004\006\023\002\125\123 +\061\027\060\025\006\003\125\004\012\023\016\126\145\162\151\123 +\151\147\156\054\040\111\156\143\056\061\037\060\035\006\003\125 +\004\013\023\026\126\145\162\151\123\151\147\156\040\124\162\165 +\163\164\040\116\145\164\167\157\162\153\061\072\060\070\006\003 +\125\004\013\023\061\050\143\051\040\061\071\071\071\040\126\145 +\162\151\123\151\147\156\054\040\111\156\143\056\040\055\040\106 +\157\162\040\141\165\164\150\157\162\151\172\145\144\040\165\163 +\145\040\157\156\154\171\061\105\060\103\006\003\125\004\003\023 +\074\126\145\162\151\123\151\147\156\040\103\154\141\163\163\040 +\064\040\120\165\142\154\151\143\040\120\162\151\155\141\162\171 +\040\103\145\162\164\151\146\151\143\141\164\151\157\156\040\101 +\165\164\150\157\162\151\164\171\040\055\040\107\063 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\021\000\354\240\247\213\156\165\152\001\317\304\174\314\057 +\224\136\327 +END +CKA_VALUE MULTILINE_OCTAL +\060\202\004\032\060\202\003\002\002\021\000\354\240\247\213\156 +\165\152\001\317\304\174\314\057\224\136\327\060\015\006\011\052 +\206\110\206\367\015\001\001\005\005\000\060\201\312\061\013\060 +\011\006\003\125\004\006\023\002\125\123\061\027\060\025\006\003 +\125\004\012\023\016\126\145\162\151\123\151\147\156\054\040\111 +\156\143\056\061\037\060\035\006\003\125\004\013\023\026\126\145 +\162\151\123\151\147\156\040\124\162\165\163\164\040\116\145\164 +\167\157\162\153\061\072\060\070\006\003\125\004\013\023\061\050 +\143\051\040\061\071\071\071\040\126\145\162\151\123\151\147\156 +\054\040\111\156\143\056\040\055\040\106\157\162\040\141\165\164 +\150\157\162\151\172\145\144\040\165\163\145\040\157\156\154\171 +\061\105\060\103\006\003\125\004\003\023\074\126\145\162\151\123 +\151\147\156\040\103\154\141\163\163\040\064\040\120\165\142\154 +\151\143\040\120\162\151\155\141\162\171\040\103\145\162\164\151 +\146\151\143\141\164\151\157\156\040\101\165\164\150\157\162\151 +\164\171\040\055\040\107\063\060\036\027\015\071\071\061\060\060 +\061\060\060\060\060\060\060\132\027\015\063\066\060\067\061\066 +\062\063\065\071\065\071\132\060\201\312\061\013\060\011\006\003 +\125\004\006\023\002\125\123\061\027\060\025\006\003\125\004\012 +\023\016\126\145\162\151\123\151\147\156\054\040\111\156\143\056 +\061\037\060\035\006\003\125\004\013\023\026\126\145\162\151\123 +\151\147\156\040\124\162\165\163\164\040\116\145\164\167\157\162 +\153\061\072\060\070\006\003\125\004\013\023\061\050\143\051\040 +\061\071\071\071\040\126\145\162\151\123\151\147\156\054\040\111 +\156\143\056\040\055\040\106\157\162\040\141\165\164\150\157\162 +\151\172\145\144\040\165\163\145\040\157\156\154\171\061\105\060 +\103\006\003\125\004\003\023\074\126\145\162\151\123\151\147\156 +\040\103\154\141\163\163\040\064\040\120\165\142\154\151\143\040 +\120\162\151\155\141\162\171\040\103\145\162\164\151\146\151\143 +\141\164\151\157\156\040\101\165\164\150\157\162\151\164\171\040 +\055\040\107\063\060\202\001\042\060\015\006\011\052\206\110\206 +\367\015\001\001\001\005\000\003\202\001\017\000\060\202\001\012 +\002\202\001\001\000\255\313\245\021\151\306\131\253\361\217\265 +\031\017\126\316\314\265\037\040\344\236\046\045\113\340\163\145 +\211\131\336\320\203\344\365\017\265\273\255\361\174\350\041\374 +\344\350\014\356\174\105\042\031\166\222\264\023\267\040\133\011 +\372\141\256\250\362\245\215\205\302\052\326\336\146\066\322\233 +\002\364\250\222\140\174\234\151\264\217\044\036\320\206\122\366 +\062\234\101\130\036\042\275\315\105\142\225\010\156\320\146\335 +\123\242\314\360\020\334\124\163\213\004\241\106\063\063\134\027 +\100\271\236\115\323\363\276\125\203\350\261\211\216\132\174\232 +\226\042\220\073\210\045\362\322\123\210\002\014\013\170\362\346 +\067\027\113\060\106\007\344\200\155\246\330\226\056\350\054\370 +\021\263\070\015\146\246\233\352\311\043\133\333\216\342\363\023 +\216\032\131\055\252\002\360\354\244\207\146\334\301\077\365\330 +\271\364\354\202\306\322\075\225\035\345\300\117\204\311\331\243 +\104\050\006\152\327\105\254\360\153\152\357\116\137\370\021\202 +\036\070\143\064\146\120\324\076\223\163\372\060\303\146\255\377 +\223\055\227\357\003\002\003\001\000\001\060\015\006\011\052\206 +\110\206\367\015\001\001\005\005\000\003\202\001\001\000\217\372 +\045\153\117\133\344\244\116\047\125\253\042\025\131\074\312\265 +\012\324\112\333\253\335\241\137\123\305\240\127\071\302\316\107 +\053\276\072\310\126\277\302\331\047\020\072\261\005\074\300\167 +\061\273\072\323\005\173\155\232\034\060\214\200\313\223\223\052 +\203\253\005\121\202\002\000\021\147\153\363\210\141\107\137\003 +\223\325\133\015\340\361\324\241\062\065\205\262\072\333\260\202 +\253\321\313\012\274\117\214\133\305\113\000\073\037\052\202\246 +\176\066\205\334\176\074\147\000\265\344\073\122\340\250\353\135 +\025\371\306\155\360\255\035\016\205\267\251\232\163\024\132\133 +\217\101\050\300\325\350\055\115\244\136\315\252\331\355\316\334 +\330\325\074\102\035\027\301\022\135\105\070\303\070\363\374\205 +\056\203\106\110\262\327\040\137\222\066\217\347\171\017\230\136 +\231\350\360\320\244\273\365\123\275\052\316\131\260\257\156\177 +\154\273\322\036\000\260\041\355\370\101\142\202\271\330\262\304 +\273\106\120\363\061\305\217\001\250\164\353\365\170\047\332\347 +\367\146\103\363\236\203\076\040\252\303\065\140\221\316 +END + +# Trust for Certificate "Verisign Class 4 Public Primary Certification Authority - G3" +CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "Verisign Class 4 Public Primary Certification Authority - G3" +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\310\354\214\207\222\151\313\113\253\071\351\215\176\127\147\363 +\024\225\163\235 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\333\310\362\047\056\261\352\152\051\043\135\376\126\076\063\337 +END +CKA_ISSUER MULTILINE_OCTAL +\060\201\312\061\013\060\011\006\003\125\004\006\023\002\125\123 +\061\027\060\025\006\003\125\004\012\023\016\126\145\162\151\123 +\151\147\156\054\040\111\156\143\056\061\037\060\035\006\003\125 +\004\013\023\026\126\145\162\151\123\151\147\156\040\124\162\165 +\163\164\040\116\145\164\167\157\162\153\061\072\060\070\006\003 +\125\004\013\023\061\050\143\051\040\061\071\071\071\040\126\145 +\162\151\123\151\147\156\054\040\111\156\143\056\040\055\040\106 +\157\162\040\141\165\164\150\157\162\151\172\145\144\040\165\163 +\145\040\157\156\154\171\061\105\060\103\006\003\125\004\003\023 +\074\126\145\162\151\123\151\147\156\040\103\154\141\163\163\040 +\064\040\120\165\142\154\151\143\040\120\162\151\155\141\162\171 +\040\103\145\162\164\151\146\151\143\141\164\151\157\156\040\101 +\165\164\150\157\162\151\164\171\040\055\040\107\063 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\021\000\354\240\247\213\156\165\152\001\317\304\174\314\057 +\224\136\327 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "Entrust.net Secure Server CA" +# +CKA_CLASS CK_OBJECT_CLASS CKO_CERTIFICATE +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "Entrust.net Secure Server CA" +CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509 +CKA_SUBJECT MULTILINE_OCTAL +\060\201\303\061\013\060\011\006\003\125\004\006\023\002\125\123 +\061\024\060\022\006\003\125\004\012\023\013\105\156\164\162\165 +\163\164\056\156\145\164\061\073\060\071\006\003\125\004\013\023 +\062\167\167\167\056\145\156\164\162\165\163\164\056\156\145\164 +\057\103\120\123\040\151\156\143\157\162\160\056\040\142\171\040 +\162\145\146\056\040\050\154\151\155\151\164\163\040\154\151\141 +\142\056\051\061\045\060\043\006\003\125\004\013\023\034\050\143 +\051\040\061\071\071\071\040\105\156\164\162\165\163\164\056\156 +\145\164\040\114\151\155\151\164\145\144\061\072\060\070\006\003 +\125\004\003\023\061\105\156\164\162\165\163\164\056\156\145\164 +\040\123\145\143\165\162\145\040\123\145\162\166\145\162\040\103 +\145\162\164\151\146\151\143\141\164\151\157\156\040\101\165\164 +\150\157\162\151\164\171 +END +CKA_ID UTF8 "0" +CKA_ISSUER MULTILINE_OCTAL +\060\201\303\061\013\060\011\006\003\125\004\006\023\002\125\123 +\061\024\060\022\006\003\125\004\012\023\013\105\156\164\162\165 +\163\164\056\156\145\164\061\073\060\071\006\003\125\004\013\023 +\062\167\167\167\056\145\156\164\162\165\163\164\056\156\145\164 +\057\103\120\123\040\151\156\143\157\162\160\056\040\142\171\040 +\162\145\146\056\040\050\154\151\155\151\164\163\040\154\151\141 +\142\056\051\061\045\060\043\006\003\125\004\013\023\034\050\143 +\051\040\061\071\071\071\040\105\156\164\162\165\163\164\056\156 +\145\164\040\114\151\155\151\164\145\144\061\072\060\070\006\003 +\125\004\003\023\061\105\156\164\162\165\163\164\056\156\145\164 +\040\123\145\143\165\162\145\040\123\145\162\166\145\162\040\103 +\145\162\164\151\146\151\143\141\164\151\157\156\040\101\165\164 +\150\157\162\151\164\171 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\004\067\112\322\103 +END +CKA_VALUE MULTILINE_OCTAL +\060\202\004\330\060\202\004\101\240\003\002\001\002\002\004\067 +\112\322\103\060\015\006\011\052\206\110\206\367\015\001\001\005 +\005\000\060\201\303\061\013\060\011\006\003\125\004\006\023\002 +\125\123\061\024\060\022\006\003\125\004\012\023\013\105\156\164 +\162\165\163\164\056\156\145\164\061\073\060\071\006\003\125\004 +\013\023\062\167\167\167\056\145\156\164\162\165\163\164\056\156 +\145\164\057\103\120\123\040\151\156\143\157\162\160\056\040\142 +\171\040\162\145\146\056\040\050\154\151\155\151\164\163\040\154 +\151\141\142\056\051\061\045\060\043\006\003\125\004\013\023\034 +\050\143\051\040\061\071\071\071\040\105\156\164\162\165\163\164 +\056\156\145\164\040\114\151\155\151\164\145\144\061\072\060\070 +\006\003\125\004\003\023\061\105\156\164\162\165\163\164\056\156 +\145\164\040\123\145\143\165\162\145\040\123\145\162\166\145\162 +\040\103\145\162\164\151\146\151\143\141\164\151\157\156\040\101 +\165\164\150\157\162\151\164\171\060\036\027\015\071\071\060\065 +\062\065\061\066\060\071\064\060\132\027\015\061\071\060\065\062 +\065\061\066\063\071\064\060\132\060\201\303\061\013\060\011\006 +\003\125\004\006\023\002\125\123\061\024\060\022\006\003\125\004 +\012\023\013\105\156\164\162\165\163\164\056\156\145\164\061\073 +\060\071\006\003\125\004\013\023\062\167\167\167\056\145\156\164 +\162\165\163\164\056\156\145\164\057\103\120\123\040\151\156\143 +\157\162\160\056\040\142\171\040\162\145\146\056\040\050\154\151 +\155\151\164\163\040\154\151\141\142\056\051\061\045\060\043\006 +\003\125\004\013\023\034\050\143\051\040\061\071\071\071\040\105 +\156\164\162\165\163\164\056\156\145\164\040\114\151\155\151\164 +\145\144\061\072\060\070\006\003\125\004\003\023\061\105\156\164 +\162\165\163\164\056\156\145\164\040\123\145\143\165\162\145\040 +\123\145\162\166\145\162\040\103\145\162\164\151\146\151\143\141 +\164\151\157\156\040\101\165\164\150\157\162\151\164\171\060\201 +\235\060\015\006\011\052\206\110\206\367\015\001\001\001\005\000 +\003\201\213\000\060\201\207\002\201\201\000\315\050\203\064\124 +\033\211\363\017\257\067\221\061\377\257\061\140\311\250\350\262 +\020\150\355\237\347\223\066\361\012\144\273\107\365\004\027\077 +\043\107\115\305\047\031\201\046\014\124\162\015\210\055\331\037 +\232\022\237\274\263\161\323\200\031\077\107\146\173\214\065\050 +\322\271\012\337\044\332\234\326\120\171\201\172\132\323\067\367 +\302\112\330\051\222\046\144\321\344\230\154\072\000\212\365\064 +\233\145\370\355\343\020\377\375\270\111\130\334\240\336\202\071 +\153\201\261\026\031\141\271\124\266\346\103\002\001\003\243\202 +\001\327\060\202\001\323\060\021\006\011\140\206\110\001\206\370 +\102\001\001\004\004\003\002\000\007\060\202\001\031\006\003\125 +\035\037\004\202\001\020\060\202\001\014\060\201\336\240\201\333 +\240\201\330\244\201\325\060\201\322\061\013\060\011\006\003\125 +\004\006\023\002\125\123\061\024\060\022\006\003\125\004\012\023 +\013\105\156\164\162\165\163\164\056\156\145\164\061\073\060\071 +\006\003\125\004\013\023\062\167\167\167\056\145\156\164\162\165 +\163\164\056\156\145\164\057\103\120\123\040\151\156\143\157\162 +\160\056\040\142\171\040\162\145\146\056\040\050\154\151\155\151 +\164\163\040\154\151\141\142\056\051\061\045\060\043\006\003\125 +\004\013\023\034\050\143\051\040\061\071\071\071\040\105\156\164 +\162\165\163\164\056\156\145\164\040\114\151\155\151\164\145\144 +\061\072\060\070\006\003\125\004\003\023\061\105\156\164\162\165 +\163\164\056\156\145\164\040\123\145\143\165\162\145\040\123\145 +\162\166\145\162\040\103\145\162\164\151\146\151\143\141\164\151 +\157\156\040\101\165\164\150\157\162\151\164\171\061\015\060\013 +\006\003\125\004\003\023\004\103\122\114\061\060\051\240\047\240 +\045\206\043\150\164\164\160\072\057\057\167\167\167\056\145\156 +\164\162\165\163\164\056\156\145\164\057\103\122\114\057\156\145 +\164\061\056\143\162\154\060\053\006\003\125\035\020\004\044\060 +\042\200\017\061\071\071\071\060\065\062\065\061\066\060\071\064 +\060\132\201\017\062\060\061\071\060\065\062\065\061\066\060\071 +\064\060\132\060\013\006\003\125\035\017\004\004\003\002\001\006 +\060\037\006\003\125\035\043\004\030\060\026\200\024\360\027\142 +\023\125\075\263\377\012\000\153\373\120\204\227\363\355\142\320 +\032\060\035\006\003\125\035\016\004\026\004\024\360\027\142\023 +\125\075\263\377\012\000\153\373\120\204\227\363\355\142\320\032 +\060\014\006\003\125\035\023\004\005\060\003\001\001\377\060\031 +\006\011\052\206\110\206\366\175\007\101\000\004\014\060\012\033 +\004\126\064\056\060\003\002\004\220\060\015\006\011\052\206\110 +\206\367\015\001\001\005\005\000\003\201\201\000\220\334\060\002 +\372\144\164\302\247\012\245\174\041\215\064\027\250\373\107\016 +\377\045\174\215\023\012\373\344\230\265\357\214\370\305\020\015 +\367\222\276\361\303\325\325\225\152\004\273\054\316\046\066\145 +\310\061\306\347\356\077\343\127\165\204\172\021\357\106\117\030 +\364\323\230\273\250\207\062\272\162\366\074\342\075\237\327\035 +\331\303\140\103\214\130\016\042\226\057\142\243\054\037\272\255 +\005\357\253\062\170\207\240\124\163\031\265\134\005\371\122\076 +\155\055\105\013\367\012\223\352\355\006\371\262 +END + +# Trust for Certificate "Entrust.net Secure Server CA" +CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "Entrust.net Secure Server CA" +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\231\246\233\346\032\376\210\153\115\053\202\000\174\270\124\374 +\061\176\025\071 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\337\362\200\163\314\361\346\141\163\374\365\102\351\305\174\356 +END +CKA_ISSUER MULTILINE_OCTAL +\060\201\303\061\013\060\011\006\003\125\004\006\023\002\125\123 +\061\024\060\022\006\003\125\004\012\023\013\105\156\164\162\165 +\163\164\056\156\145\164\061\073\060\071\006\003\125\004\013\023 +\062\167\167\167\056\145\156\164\162\165\163\164\056\156\145\164 +\057\103\120\123\040\151\156\143\157\162\160\056\040\142\171\040 +\162\145\146\056\040\050\154\151\155\151\164\163\040\154\151\141 +\142\056\051\061\045\060\043\006\003\125\004\013\023\034\050\143 +\051\040\061\071\071\071\040\105\156\164\162\165\163\164\056\156 +\145\164\040\114\151\155\151\164\145\144\061\072\060\070\006\003 +\125\004\003\023\061\105\156\164\162\165\163\164\056\156\145\164 +\040\123\145\143\165\162\145\040\123\145\162\166\145\162\040\103 +\145\162\164\151\146\151\143\141\164\151\157\156\040\101\165\164 +\150\157\162\151\164\171 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\004\067\112\322\103 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "Entrust.net Premium 2048 Secure Server CA" +# +CKA_CLASS CK_OBJECT_CLASS CKO_CERTIFICATE +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "Entrust.net Premium 2048 Secure Server CA" +CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509 +CKA_SUBJECT MULTILINE_OCTAL +\060\201\264\061\024\060\022\006\003\125\004\012\023\013\105\156 +\164\162\165\163\164\056\156\145\164\061\100\060\076\006\003\125 +\004\013\024\067\167\167\167\056\145\156\164\162\165\163\164\056 +\156\145\164\057\103\120\123\137\062\060\064\070\040\151\156\143 +\157\162\160\056\040\142\171\040\162\145\146\056\040\050\154\151 +\155\151\164\163\040\154\151\141\142\056\051\061\045\060\043\006 +\003\125\004\013\023\034\050\143\051\040\061\071\071\071\040\105 +\156\164\162\165\163\164\056\156\145\164\040\114\151\155\151\164 +\145\144\061\063\060\061\006\003\125\004\003\023\052\105\156\164 +\162\165\163\164\056\156\145\164\040\103\145\162\164\151\146\151 +\143\141\164\151\157\156\040\101\165\164\150\157\162\151\164\171 +\040\050\062\060\064\070\051 +END +CKA_ID UTF8 "0" +CKA_ISSUER MULTILINE_OCTAL +\060\201\264\061\024\060\022\006\003\125\004\012\023\013\105\156 +\164\162\165\163\164\056\156\145\164\061\100\060\076\006\003\125 +\004\013\024\067\167\167\167\056\145\156\164\162\165\163\164\056 +\156\145\164\057\103\120\123\137\062\060\064\070\040\151\156\143 +\157\162\160\056\040\142\171\040\162\145\146\056\040\050\154\151 +\155\151\164\163\040\154\151\141\142\056\051\061\045\060\043\006 +\003\125\004\013\023\034\050\143\051\040\061\071\071\071\040\105 +\156\164\162\165\163\164\056\156\145\164\040\114\151\155\151\164 +\145\144\061\063\060\061\006\003\125\004\003\023\052\105\156\164 +\162\165\163\164\056\156\145\164\040\103\145\162\164\151\146\151 +\143\141\164\151\157\156\040\101\165\164\150\157\162\151\164\171 +\040\050\062\060\064\070\051 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\004\070\143\271\146 +END +CKA_VALUE MULTILINE_OCTAL +\060\202\004\134\060\202\003\104\240\003\002\001\002\002\004\070 +\143\271\146\060\015\006\011\052\206\110\206\367\015\001\001\005 +\005\000\060\201\264\061\024\060\022\006\003\125\004\012\023\013 +\105\156\164\162\165\163\164\056\156\145\164\061\100\060\076\006 +\003\125\004\013\024\067\167\167\167\056\145\156\164\162\165\163 +\164\056\156\145\164\057\103\120\123\137\062\060\064\070\040\151 +\156\143\157\162\160\056\040\142\171\040\162\145\146\056\040\050 +\154\151\155\151\164\163\040\154\151\141\142\056\051\061\045\060 +\043\006\003\125\004\013\023\034\050\143\051\040\061\071\071\071 +\040\105\156\164\162\165\163\164\056\156\145\164\040\114\151\155 +\151\164\145\144\061\063\060\061\006\003\125\004\003\023\052\105 +\156\164\162\165\163\164\056\156\145\164\040\103\145\162\164\151 +\146\151\143\141\164\151\157\156\040\101\165\164\150\157\162\151 +\164\171\040\050\062\060\064\070\051\060\036\027\015\071\071\061 +\062\062\064\061\067\065\060\065\061\132\027\015\061\071\061\062 +\062\064\061\070\062\060\065\061\132\060\201\264\061\024\060\022 +\006\003\125\004\012\023\013\105\156\164\162\165\163\164\056\156 +\145\164\061\100\060\076\006\003\125\004\013\024\067\167\167\167 +\056\145\156\164\162\165\163\164\056\156\145\164\057\103\120\123 +\137\062\060\064\070\040\151\156\143\157\162\160\056\040\142\171 +\040\162\145\146\056\040\050\154\151\155\151\164\163\040\154\151 +\141\142\056\051\061\045\060\043\006\003\125\004\013\023\034\050 +\143\051\040\061\071\071\071\040\105\156\164\162\165\163\164\056 +\156\145\164\040\114\151\155\151\164\145\144\061\063\060\061\006 +\003\125\004\003\023\052\105\156\164\162\165\163\164\056\156\145 +\164\040\103\145\162\164\151\146\151\143\141\164\151\157\156\040 +\101\165\164\150\157\162\151\164\171\040\050\062\060\064\070\051 +\060\202\001\042\060\015\006\011\052\206\110\206\367\015\001\001 +\001\005\000\003\202\001\017\000\060\202\001\012\002\202\001\001 +\000\255\115\113\251\022\206\262\352\243\040\007\025\026\144\052 +\053\113\321\277\013\112\115\216\355\200\166\245\147\267\170\100 +\300\163\102\310\150\300\333\123\053\335\136\270\166\230\065\223 +\213\032\235\174\023\072\016\037\133\267\036\317\345\044\024\036 +\261\201\251\215\175\270\314\153\113\003\361\002\014\334\253\245 +\100\044\000\177\164\224\241\235\010\051\263\210\013\365\207\167 +\235\125\315\344\303\176\327\152\144\253\205\024\206\225\133\227 +\062\120\157\075\310\272\146\014\343\374\275\270\111\301\166\211 +\111\031\375\300\250\275\211\243\147\057\306\237\274\161\031\140 +\270\055\351\054\311\220\166\146\173\224\342\257\170\326\145\123 +\135\074\326\234\262\317\051\003\371\057\244\120\262\324\110\316 +\005\062\125\212\375\262\144\114\016\344\230\007\165\333\177\337 +\271\010\125\140\205\060\051\371\173\110\244\151\206\343\065\077 +\036\206\135\172\172\025\275\357\000\216\025\042\124\027\000\220 +\046\223\274\016\111\150\221\277\370\107\323\235\225\102\301\016 +\115\337\157\046\317\303\030\041\142\146\103\160\326\325\300\007 +\341\002\003\001\000\001\243\164\060\162\060\021\006\011\140\206 +\110\001\206\370\102\001\001\004\004\003\002\000\007\060\037\006 +\003\125\035\043\004\030\060\026\200\024\125\344\201\321\021\200 +\276\330\211\271\010\243\061\371\241\044\011\026\271\160\060\035 +\006\003\125\035\016\004\026\004\024\125\344\201\321\021\200\276 +\330\211\271\010\243\061\371\241\044\011\026\271\160\060\035\006 +\011\052\206\110\206\366\175\007\101\000\004\020\060\016\033\010 +\126\065\056\060\072\064\056\060\003\002\004\220\060\015\006\011 +\052\206\110\206\367\015\001\001\005\005\000\003\202\001\001\000 +\131\107\254\041\204\212\027\311\234\211\123\036\272\200\205\032 +\306\074\116\076\261\234\266\174\306\222\135\030\144\002\343\323 +\006\010\021\141\174\143\343\053\235\061\003\160\166\322\243\050 +\240\364\273\232\143\163\355\155\345\052\333\355\024\251\053\306 +\066\021\320\053\353\007\213\245\332\236\134\031\235\126\022\365 +\124\051\310\005\355\262\022\052\215\364\003\033\377\347\222\020 +\207\260\072\265\303\235\005\067\022\243\307\364\025\271\325\244 +\071\026\233\123\072\043\221\361\250\202\242\152\210\150\301\171 +\002\042\274\252\246\326\256\337\260\024\137\270\207\320\335\174 +\177\173\377\257\034\317\346\333\007\255\136\333\205\235\320\053 +\015\063\333\004\321\346\111\100\023\053\166\373\076\351\234\211 +\017\025\316\030\260\205\170\041\117\153\117\016\372\066\147\315 +\007\362\377\010\320\342\336\331\277\052\257\270\207\206\041\074 +\004\312\267\224\150\177\317\074\351\230\327\070\377\354\300\331 +\120\360\056\113\130\256\106\157\320\056\303\140\332\162\125\162 +\275\114\105\236\141\272\277\204\201\222\003\321\322\151\174\305 +END + +# Trust for Certificate "Entrust.net Premium 2048 Secure Server CA" +CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "Entrust.net Premium 2048 Secure Server CA" +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\200\035\142\320\173\104\235\134\134\003\134\230\352\141\372\104 +\074\052\130\376 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\272\041\352\040\326\335\333\217\301\127\213\100\255\241\374\374 +END +CKA_ISSUER MULTILINE_OCTAL +\060\201\264\061\024\060\022\006\003\125\004\012\023\013\105\156 +\164\162\165\163\164\056\156\145\164\061\100\060\076\006\003\125 +\004\013\024\067\167\167\167\056\145\156\164\162\165\163\164\056 +\156\145\164\057\103\120\123\137\062\060\064\070\040\151\156\143 +\157\162\160\056\040\142\171\040\162\145\146\056\040\050\154\151 +\155\151\164\163\040\154\151\141\142\056\051\061\045\060\043\006 +\003\125\004\013\023\034\050\143\051\040\061\071\071\071\040\105 +\156\164\162\165\163\164\056\156\145\164\040\114\151\155\151\164 +\145\144\061\063\060\061\006\003\125\004\003\023\052\105\156\164 +\162\165\163\164\056\156\145\164\040\103\145\162\164\151\146\151 +\143\141\164\151\157\156\040\101\165\164\150\157\162\151\164\171 +\040\050\062\060\064\070\051 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\004\070\143\271\146 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "Baltimore CyberTrust Root" +# +CKA_CLASS CK_OBJECT_CLASS CKO_CERTIFICATE +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "Baltimore CyberTrust Root" +CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509 +CKA_SUBJECT MULTILINE_OCTAL +\060\132\061\013\060\011\006\003\125\004\006\023\002\111\105\061 +\022\060\020\006\003\125\004\012\023\011\102\141\154\164\151\155 +\157\162\145\061\023\060\021\006\003\125\004\013\023\012\103\171 +\142\145\162\124\162\165\163\164\061\042\060\040\006\003\125\004 +\003\023\031\102\141\154\164\151\155\157\162\145\040\103\171\142 +\145\162\124\162\165\163\164\040\122\157\157\164 +END +CKA_ID UTF8 "0" +CKA_ISSUER MULTILINE_OCTAL +\060\132\061\013\060\011\006\003\125\004\006\023\002\111\105\061 +\022\060\020\006\003\125\004\012\023\011\102\141\154\164\151\155 +\157\162\145\061\023\060\021\006\003\125\004\013\023\012\103\171 +\142\145\162\124\162\165\163\164\061\042\060\040\006\003\125\004 +\003\023\031\102\141\154\164\151\155\157\162\145\040\103\171\142 +\145\162\124\162\165\163\164\040\122\157\157\164 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\004\002\000\000\271 +END +CKA_VALUE MULTILINE_OCTAL +\060\202\003\167\060\202\002\137\240\003\002\001\002\002\004\002 +\000\000\271\060\015\006\011\052\206\110\206\367\015\001\001\005 +\005\000\060\132\061\013\060\011\006\003\125\004\006\023\002\111 +\105\061\022\060\020\006\003\125\004\012\023\011\102\141\154\164 +\151\155\157\162\145\061\023\060\021\006\003\125\004\013\023\012 +\103\171\142\145\162\124\162\165\163\164\061\042\060\040\006\003 +\125\004\003\023\031\102\141\154\164\151\155\157\162\145\040\103 +\171\142\145\162\124\162\165\163\164\040\122\157\157\164\060\036 +\027\015\060\060\060\065\061\062\061\070\064\066\060\060\132\027 +\015\062\065\060\065\061\062\062\063\065\071\060\060\132\060\132 +\061\013\060\011\006\003\125\004\006\023\002\111\105\061\022\060 +\020\006\003\125\004\012\023\011\102\141\154\164\151\155\157\162 +\145\061\023\060\021\006\003\125\004\013\023\012\103\171\142\145 +\162\124\162\165\163\164\061\042\060\040\006\003\125\004\003\023 +\031\102\141\154\164\151\155\157\162\145\040\103\171\142\145\162 +\124\162\165\163\164\040\122\157\157\164\060\202\001\042\060\015 +\006\011\052\206\110\206\367\015\001\001\001\005\000\003\202\001 +\017\000\060\202\001\012\002\202\001\001\000\243\004\273\042\253 +\230\075\127\350\046\162\232\265\171\324\051\342\341\350\225\200 +\261\260\343\133\216\053\051\232\144\337\241\135\355\260\011\005 +\155\333\050\056\316\142\242\142\376\264\210\332\022\353\070\353 +\041\235\300\101\053\001\122\173\210\167\323\034\217\307\272\271 +\210\265\152\011\347\163\350\021\100\247\321\314\312\142\215\055 +\345\217\013\246\120\322\250\120\303\050\352\365\253\045\207\212 +\232\226\034\251\147\270\077\014\325\367\371\122\023\057\302\033 +\325\160\160\360\217\300\022\312\006\313\232\341\331\312\063\172 +\167\326\370\354\271\361\150\104\102\110\023\322\300\302\244\256 +\136\140\376\266\246\005\374\264\335\007\131\002\324\131\030\230 +\143\365\245\143\340\220\014\175\135\262\006\172\363\205\352\353 +\324\003\256\136\204\076\137\377\025\355\151\274\371\071\066\162 +\165\317\167\122\115\363\311\220\054\271\075\345\311\043\123\077 +\037\044\230\041\134\007\231\051\275\306\072\354\347\156\206\072 +\153\227\164\143\063\275\150\030\061\360\170\215\166\277\374\236 +\216\135\052\206\247\115\220\334\047\032\071\002\003\001\000\001 +\243\105\060\103\060\035\006\003\125\035\016\004\026\004\024\345 +\235\131\060\202\107\130\314\254\372\010\124\066\206\173\072\265 +\004\115\360\060\022\006\003\125\035\023\001\001\377\004\010\060 +\006\001\001\377\002\001\003\060\016\006\003\125\035\017\001\001 +\377\004\004\003\002\001\006\060\015\006\011\052\206\110\206\367 +\015\001\001\005\005\000\003\202\001\001\000\205\014\135\216\344 +\157\121\150\102\005\240\335\273\117\047\045\204\003\275\367\144 +\375\055\327\060\343\244\020\027\353\332\051\051\266\171\077\166 +\366\031\023\043\270\020\012\371\130\244\324\141\160\275\004\141 +\152\022\212\027\325\012\275\305\274\060\174\326\351\014\045\215 +\206\100\117\354\314\243\176\070\306\067\021\117\355\335\150\061 +\216\114\322\263\001\164\356\276\165\136\007\110\032\177\160\377 +\026\134\204\300\171\205\270\005\375\177\276\145\021\243\017\300 +\002\264\370\122\067\071\004\325\251\061\172\030\277\240\052\364 +\022\231\367\243\105\202\343\074\136\365\235\236\265\310\236\174 +\056\310\244\236\116\010\024\113\155\375\160\155\153\032\143\275 +\144\346\037\267\316\360\362\237\056\273\033\267\362\120\210\163 +\222\302\342\343\026\215\232\062\002\253\216\030\335\351\020\021 +\356\176\065\253\220\257\076\060\224\172\320\063\075\247\145\017 +\365\374\216\236\142\317\107\104\054\001\135\273\035\265\062\322 +\107\322\070\056\320\376\201\334\062\152\036\265\356\074\325\374 +\347\201\035\031\303\044\102\352\143\071\251 +END + +# Trust for Certificate "Baltimore CyberTrust Root" +CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "Baltimore CyberTrust Root" +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\324\336\040\320\136\146\374\123\376\032\120\210\054\170\333\050 +\122\312\344\164 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\254\266\224\245\234\027\340\327\221\122\233\261\227\006\246\344 +END +CKA_ISSUER MULTILINE_OCTAL +\060\132\061\013\060\011\006\003\125\004\006\023\002\111\105\061 +\022\060\020\006\003\125\004\012\023\011\102\141\154\164\151\155 +\157\162\145\061\023\060\021\006\003\125\004\013\023\012\103\171 +\142\145\162\124\162\165\163\164\061\042\060\040\006\003\125\004 +\003\023\031\102\141\154\164\151\155\157\162\145\040\103\171\142 +\145\162\124\162\165\163\164\040\122\157\157\164 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\004\002\000\000\271 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_TRUST_UNKNOWN +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "Equifax Secure Global eBusiness CA" +# +CKA_CLASS CK_OBJECT_CLASS CKO_CERTIFICATE +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "Equifax Secure Global eBusiness CA" +CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509 +CKA_SUBJECT MULTILINE_OCTAL +\060\132\061\013\060\011\006\003\125\004\006\023\002\125\123\061 +\034\060\032\006\003\125\004\012\023\023\105\161\165\151\146\141 +\170\040\123\145\143\165\162\145\040\111\156\143\056\061\055\060 +\053\006\003\125\004\003\023\044\105\161\165\151\146\141\170\040 +\123\145\143\165\162\145\040\107\154\157\142\141\154\040\145\102 +\165\163\151\156\145\163\163\040\103\101\055\061 +END +CKA_ID UTF8 "0" +CKA_ISSUER MULTILINE_OCTAL +\060\132\061\013\060\011\006\003\125\004\006\023\002\125\123\061 +\034\060\032\006\003\125\004\012\023\023\105\161\165\151\146\141 +\170\040\123\145\143\165\162\145\040\111\156\143\056\061\055\060 +\053\006\003\125\004\003\023\044\105\161\165\151\146\141\170\040 +\123\145\143\165\162\145\040\107\154\157\142\141\154\040\145\102 +\165\163\151\156\145\163\163\040\103\101\055\061 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\001\001 +END +CKA_VALUE MULTILINE_OCTAL +\060\202\002\220\060\202\001\371\240\003\002\001\002\002\001\001 +\060\015\006\011\052\206\110\206\367\015\001\001\004\005\000\060 +\132\061\013\060\011\006\003\125\004\006\023\002\125\123\061\034 +\060\032\006\003\125\004\012\023\023\105\161\165\151\146\141\170 +\040\123\145\143\165\162\145\040\111\156\143\056\061\055\060\053 +\006\003\125\004\003\023\044\105\161\165\151\146\141\170\040\123 +\145\143\165\162\145\040\107\154\157\142\141\154\040\145\102\165 +\163\151\156\145\163\163\040\103\101\055\061\060\036\027\015\071 +\071\060\066\062\061\060\064\060\060\060\060\132\027\015\062\060 +\060\066\062\061\060\064\060\060\060\060\132\060\132\061\013\060 +\011\006\003\125\004\006\023\002\125\123\061\034\060\032\006\003 +\125\004\012\023\023\105\161\165\151\146\141\170\040\123\145\143 +\165\162\145\040\111\156\143\056\061\055\060\053\006\003\125\004 +\003\023\044\105\161\165\151\146\141\170\040\123\145\143\165\162 +\145\040\107\154\157\142\141\154\040\145\102\165\163\151\156\145 +\163\163\040\103\101\055\061\060\201\237\060\015\006\011\052\206 +\110\206\367\015\001\001\001\005\000\003\201\215\000\060\201\211 +\002\201\201\000\272\347\027\220\002\145\261\064\125\074\111\302 +\121\325\337\247\321\067\217\321\347\201\163\101\122\140\233\235 +\241\027\046\170\255\307\261\350\046\224\062\265\336\063\215\072 +\057\333\362\232\172\132\163\230\243\134\351\373\212\163\033\134 +\347\303\277\200\154\315\251\364\326\053\300\367\371\231\252\143 +\242\261\107\002\017\324\344\121\072\022\074\154\212\132\124\204 +\160\333\301\305\220\317\162\105\313\250\131\300\315\063\235\077 +\243\226\353\205\063\041\034\076\036\076\140\156\166\234\147\205 +\305\310\303\141\002\003\001\000\001\243\146\060\144\060\021\006 +\011\140\206\110\001\206\370\102\001\001\004\004\003\002\000\007 +\060\017\006\003\125\035\023\001\001\377\004\005\060\003\001\001 +\377\060\037\006\003\125\035\043\004\030\060\026\200\024\276\250 +\240\164\162\120\153\104\267\311\043\330\373\250\377\263\127\153 +\150\154\060\035\006\003\125\035\016\004\026\004\024\276\250\240 +\164\162\120\153\104\267\311\043\330\373\250\377\263\127\153\150 +\154\060\015\006\011\052\206\110\206\367\015\001\001\004\005\000 +\003\201\201\000\060\342\001\121\252\307\352\137\332\271\320\145 +\017\060\326\076\332\015\024\111\156\221\223\047\024\061\357\304 +\367\055\105\370\354\307\277\242\101\015\043\264\222\371\031\000 +\147\275\001\257\315\340\161\374\132\317\144\304\340\226\230\320 +\243\100\342\001\212\357\047\007\361\145\001\212\104\055\006\145 +\165\122\300\206\020\040\041\137\154\153\017\154\256\011\034\257 +\362\242\030\064\304\165\244\163\034\361\215\334\357\255\371\263 +\166\264\222\277\334\225\020\036\276\313\310\073\132\204\140\031 +\126\224\251\125 +END + +# Trust for Certificate "Equifax Secure Global eBusiness CA" +CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "Equifax Secure Global eBusiness CA" +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\176\170\112\020\034\202\145\314\055\341\361\155\107\264\100\312 +\331\012\031\105 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\217\135\167\006\047\304\230\074\133\223\170\347\327\175\233\314 +END +CKA_ISSUER MULTILINE_OCTAL +\060\132\061\013\060\011\006\003\125\004\006\023\002\125\123\061 +\034\060\032\006\003\125\004\012\023\023\105\161\165\151\146\141 +\170\040\123\145\143\165\162\145\040\111\156\143\056\061\055\060 +\053\006\003\125\004\003\023\044\105\161\165\151\146\141\170\040 +\123\145\143\165\162\145\040\107\154\157\142\141\154\040\145\102 +\165\163\151\156\145\163\163\040\103\101\055\061 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\001\001 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "Equifax Secure eBusiness CA 1" +# +CKA_CLASS CK_OBJECT_CLASS CKO_CERTIFICATE +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "Equifax Secure eBusiness CA 1" +CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509 +CKA_SUBJECT MULTILINE_OCTAL +\060\123\061\013\060\011\006\003\125\004\006\023\002\125\123\061 +\034\060\032\006\003\125\004\012\023\023\105\161\165\151\146\141 +\170\040\123\145\143\165\162\145\040\111\156\143\056\061\046\060 +\044\006\003\125\004\003\023\035\105\161\165\151\146\141\170\040 +\123\145\143\165\162\145\040\145\102\165\163\151\156\145\163\163 +\040\103\101\055\061 +END +CKA_ID UTF8 "0" +CKA_ISSUER MULTILINE_OCTAL +\060\123\061\013\060\011\006\003\125\004\006\023\002\125\123\061 +\034\060\032\006\003\125\004\012\023\023\105\161\165\151\146\141 +\170\040\123\145\143\165\162\145\040\111\156\143\056\061\046\060 +\044\006\003\125\004\003\023\035\105\161\165\151\146\141\170\040 +\123\145\143\165\162\145\040\145\102\165\163\151\156\145\163\163 +\040\103\101\055\061 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\001\004 +END +CKA_VALUE MULTILINE_OCTAL +\060\202\002\202\060\202\001\353\240\003\002\001\002\002\001\004 +\060\015\006\011\052\206\110\206\367\015\001\001\004\005\000\060 +\123\061\013\060\011\006\003\125\004\006\023\002\125\123\061\034 +\060\032\006\003\125\004\012\023\023\105\161\165\151\146\141\170 +\040\123\145\143\165\162\145\040\111\156\143\056\061\046\060\044 +\006\003\125\004\003\023\035\105\161\165\151\146\141\170\040\123 +\145\143\165\162\145\040\145\102\165\163\151\156\145\163\163\040 +\103\101\055\061\060\036\027\015\071\071\060\066\062\061\060\064 +\060\060\060\060\132\027\015\062\060\060\066\062\061\060\064\060 +\060\060\060\132\060\123\061\013\060\011\006\003\125\004\006\023 +\002\125\123\061\034\060\032\006\003\125\004\012\023\023\105\161 +\165\151\146\141\170\040\123\145\143\165\162\145\040\111\156\143 +\056\061\046\060\044\006\003\125\004\003\023\035\105\161\165\151 +\146\141\170\040\123\145\143\165\162\145\040\145\102\165\163\151 +\156\145\163\163\040\103\101\055\061\060\201\237\060\015\006\011 +\052\206\110\206\367\015\001\001\001\005\000\003\201\215\000\060 +\201\211\002\201\201\000\316\057\031\274\027\267\167\336\223\251 +\137\132\015\027\117\064\032\014\230\364\042\331\131\324\304\150 +\106\360\264\065\305\205\003\040\306\257\105\245\041\121\105\101 +\353\026\130\066\062\157\342\120\142\144\371\375\121\234\252\044 +\331\364\235\203\052\207\012\041\323\022\070\064\154\215\000\156 +\132\240\331\102\356\032\041\225\371\122\114\125\132\305\017\070 +\117\106\372\155\370\056\065\326\035\174\353\342\360\260\165\200 +\310\251\023\254\276\210\357\072\156\253\137\052\070\142\002\260 +\022\173\376\217\246\003\002\003\001\000\001\243\146\060\144\060 +\021\006\011\140\206\110\001\206\370\102\001\001\004\004\003\002 +\000\007\060\017\006\003\125\035\023\001\001\377\004\005\060\003 +\001\001\377\060\037\006\003\125\035\043\004\030\060\026\200\024 +\112\170\062\122\021\333\131\026\066\136\337\301\024\066\100\152 +\107\174\114\241\060\035\006\003\125\035\016\004\026\004\024\112 +\170\062\122\021\333\131\026\066\136\337\301\024\066\100\152\107 +\174\114\241\060\015\006\011\052\206\110\206\367\015\001\001\004 +\005\000\003\201\201\000\165\133\250\233\003\021\346\351\126\114 +\315\371\251\114\300\015\232\363\314\145\151\346\045\166\314\131 +\267\326\124\303\035\315\231\254\031\335\264\205\325\340\075\374 +\142\040\247\204\113\130\145\361\342\371\225\041\077\365\324\176 +\130\036\107\207\124\076\130\241\265\265\370\052\357\161\347\274 +\303\366\261\111\106\342\327\240\153\345\126\172\232\047\230\174 +\106\142\024\347\311\374\156\003\022\171\200\070\035\110\202\215 +\374\027\376\052\226\053\265\142\246\246\075\275\177\222\131\315 +\132\052\202\262\067\171 +END + +# Trust for Certificate "Equifax Secure eBusiness CA 1" +CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "Equifax Secure eBusiness CA 1" +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\332\100\030\213\221\211\243\355\356\256\332\227\376\057\235\365 +\267\321\212\101 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\144\234\357\056\104\374\306\217\122\007\320\121\163\217\313\075 +END +CKA_ISSUER MULTILINE_OCTAL +\060\123\061\013\060\011\006\003\125\004\006\023\002\125\123\061 +\034\060\032\006\003\125\004\012\023\023\105\161\165\151\146\141 +\170\040\123\145\143\165\162\145\040\111\156\143\056\061\046\060 +\044\006\003\125\004\003\023\035\105\161\165\151\146\141\170\040 +\123\145\143\165\162\145\040\145\102\165\163\151\156\145\163\163 +\040\103\101\055\061 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\001\004 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "Equifax Secure eBusiness CA 2" +# +CKA_CLASS CK_OBJECT_CLASS CKO_CERTIFICATE +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "Equifax Secure eBusiness CA 2" +CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509 +CKA_SUBJECT MULTILINE_OCTAL +\060\116\061\013\060\011\006\003\125\004\006\023\002\125\123\061 +\027\060\025\006\003\125\004\012\023\016\105\161\165\151\146\141 +\170\040\123\145\143\165\162\145\061\046\060\044\006\003\125\004 +\013\023\035\105\161\165\151\146\141\170\040\123\145\143\165\162 +\145\040\145\102\165\163\151\156\145\163\163\040\103\101\055\062 +END +CKA_ID UTF8 "0" +CKA_ISSUER MULTILINE_OCTAL +\060\116\061\013\060\011\006\003\125\004\006\023\002\125\123\061 +\027\060\025\006\003\125\004\012\023\016\105\161\165\151\146\141 +\170\040\123\145\143\165\162\145\061\046\060\044\006\003\125\004 +\013\023\035\105\161\165\151\146\141\170\040\123\145\143\165\162 +\145\040\145\102\165\163\151\156\145\163\163\040\103\101\055\062 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\004\067\160\317\265 +END +CKA_VALUE MULTILINE_OCTAL +\060\202\003\040\060\202\002\211\240\003\002\001\002\002\004\067 +\160\317\265\060\015\006\011\052\206\110\206\367\015\001\001\005 +\005\000\060\116\061\013\060\011\006\003\125\004\006\023\002\125 +\123\061\027\060\025\006\003\125\004\012\023\016\105\161\165\151 +\146\141\170\040\123\145\143\165\162\145\061\046\060\044\006\003 +\125\004\013\023\035\105\161\165\151\146\141\170\040\123\145\143 +\165\162\145\040\145\102\165\163\151\156\145\163\163\040\103\101 +\055\062\060\036\027\015\071\071\060\066\062\063\061\062\061\064 +\064\065\132\027\015\061\071\060\066\062\063\061\062\061\064\064 +\065\132\060\116\061\013\060\011\006\003\125\004\006\023\002\125 +\123\061\027\060\025\006\003\125\004\012\023\016\105\161\165\151 +\146\141\170\040\123\145\143\165\162\145\061\046\060\044\006\003 +\125\004\013\023\035\105\161\165\151\146\141\170\040\123\145\143 +\165\162\145\040\145\102\165\163\151\156\145\163\163\040\103\101 +\055\062\060\201\237\060\015\006\011\052\206\110\206\367\015\001 +\001\001\005\000\003\201\215\000\060\201\211\002\201\201\000\344 +\071\071\223\036\122\006\033\050\066\370\262\243\051\305\355\216 +\262\021\275\376\353\347\264\164\302\217\377\005\347\331\235\006 +\277\022\310\077\016\362\326\321\044\262\021\336\321\163\011\212 +\324\261\054\230\011\015\036\120\106\262\203\246\105\215\142\150 +\273\205\033\040\160\062\252\100\315\246\226\137\304\161\067\077 +\004\363\267\101\044\071\007\032\036\056\141\130\240\022\013\345 +\245\337\305\253\352\067\161\314\034\310\067\072\271\227\122\247 +\254\305\152\044\224\116\234\173\317\300\152\326\337\041\275\002 +\003\001\000\001\243\202\001\011\060\202\001\005\060\160\006\003 +\125\035\037\004\151\060\147\060\145\240\143\240\141\244\137\060 +\135\061\013\060\011\006\003\125\004\006\023\002\125\123\061\027 +\060\025\006\003\125\004\012\023\016\105\161\165\151\146\141\170 +\040\123\145\143\165\162\145\061\046\060\044\006\003\125\004\013 +\023\035\105\161\165\151\146\141\170\040\123\145\143\165\162\145 +\040\145\102\165\163\151\156\145\163\163\040\103\101\055\062\061 +\015\060\013\006\003\125\004\003\023\004\103\122\114\061\060\032 +\006\003\125\035\020\004\023\060\021\201\017\062\060\061\071\060 +\066\062\063\061\062\061\064\064\065\132\060\013\006\003\125\035 +\017\004\004\003\002\001\006\060\037\006\003\125\035\043\004\030 +\060\026\200\024\120\236\013\352\257\136\271\040\110\246\120\152 +\313\375\330\040\172\247\202\166\060\035\006\003\125\035\016\004 +\026\004\024\120\236\013\352\257\136\271\040\110\246\120\152\313 +\375\330\040\172\247\202\166\060\014\006\003\125\035\023\004\005 +\060\003\001\001\377\060\032\006\011\052\206\110\206\366\175\007 +\101\000\004\015\060\013\033\005\126\063\056\060\143\003\002\006 +\300\060\015\006\011\052\206\110\206\367\015\001\001\005\005\000 +\003\201\201\000\014\206\202\255\350\116\032\365\216\211\047\342 +\065\130\075\051\264\007\217\066\120\225\277\156\301\236\353\304 +\220\262\205\250\273\267\102\340\017\007\071\337\373\236\220\262 +\321\301\076\123\237\003\104\260\176\113\364\157\344\174\037\347 +\342\261\344\270\232\357\303\275\316\336\013\062\064\331\336\050 +\355\063\153\304\324\327\075\022\130\253\175\011\055\313\160\365 +\023\212\224\241\047\244\326\160\305\155\224\265\311\175\235\240 +\322\306\010\111\331\146\233\246\323\364\013\334\305\046\127\341 +\221\060\352\315 +END + +# Trust for Certificate "Equifax Secure eBusiness CA 2" +CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "Equifax Secure eBusiness CA 2" +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\071\117\366\205\013\006\276\122\345\030\126\314\020\341\200\350 +\202\263\205\314 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\252\277\277\144\227\332\230\035\157\306\010\072\225\160\063\312 +END +CKA_ISSUER MULTILINE_OCTAL +\060\116\061\013\060\011\006\003\125\004\006\023\002\125\123\061 +\027\060\025\006\003\125\004\012\023\016\105\161\165\151\146\141 +\170\040\123\145\143\165\162\145\061\046\060\044\006\003\125\004 +\013\023\035\105\161\165\151\146\141\170\040\123\145\143\165\162 +\145\040\145\102\165\163\151\156\145\163\163\040\103\101\055\062 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\004\067\160\317\265 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "AddTrust Low-Value Services Root" +# +CKA_CLASS CK_OBJECT_CLASS CKO_CERTIFICATE +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "AddTrust Low-Value Services Root" +CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509 +CKA_SUBJECT MULTILINE_OCTAL +\060\145\061\013\060\011\006\003\125\004\006\023\002\123\105\061 +\024\060\022\006\003\125\004\012\023\013\101\144\144\124\162\165 +\163\164\040\101\102\061\035\060\033\006\003\125\004\013\023\024 +\101\144\144\124\162\165\163\164\040\124\124\120\040\116\145\164 +\167\157\162\153\061\041\060\037\006\003\125\004\003\023\030\101 +\144\144\124\162\165\163\164\040\103\154\141\163\163\040\061\040 +\103\101\040\122\157\157\164 +END +CKA_ID UTF8 "0" +CKA_ISSUER MULTILINE_OCTAL +\060\145\061\013\060\011\006\003\125\004\006\023\002\123\105\061 +\024\060\022\006\003\125\004\012\023\013\101\144\144\124\162\165 +\163\164\040\101\102\061\035\060\033\006\003\125\004\013\023\024 +\101\144\144\124\162\165\163\164\040\124\124\120\040\116\145\164 +\167\157\162\153\061\041\060\037\006\003\125\004\003\023\030\101 +\144\144\124\162\165\163\164\040\103\154\141\163\163\040\061\040 +\103\101\040\122\157\157\164 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\001\001 +END +CKA_VALUE MULTILINE_OCTAL +\060\202\004\030\060\202\003\000\240\003\002\001\002\002\001\001 +\060\015\006\011\052\206\110\206\367\015\001\001\005\005\000\060 +\145\061\013\060\011\006\003\125\004\006\023\002\123\105\061\024 +\060\022\006\003\125\004\012\023\013\101\144\144\124\162\165\163 +\164\040\101\102\061\035\060\033\006\003\125\004\013\023\024\101 +\144\144\124\162\165\163\164\040\124\124\120\040\116\145\164\167 +\157\162\153\061\041\060\037\006\003\125\004\003\023\030\101\144 +\144\124\162\165\163\164\040\103\154\141\163\163\040\061\040\103 +\101\040\122\157\157\164\060\036\027\015\060\060\060\065\063\060 +\061\060\063\070\063\061\132\027\015\062\060\060\065\063\060\061 +\060\063\070\063\061\132\060\145\061\013\060\011\006\003\125\004 +\006\023\002\123\105\061\024\060\022\006\003\125\004\012\023\013 +\101\144\144\124\162\165\163\164\040\101\102\061\035\060\033\006 +\003\125\004\013\023\024\101\144\144\124\162\165\163\164\040\124 +\124\120\040\116\145\164\167\157\162\153\061\041\060\037\006\003 +\125\004\003\023\030\101\144\144\124\162\165\163\164\040\103\154 +\141\163\163\040\061\040\103\101\040\122\157\157\164\060\202\001 +\042\060\015\006\011\052\206\110\206\367\015\001\001\001\005\000 +\003\202\001\017\000\060\202\001\012\002\202\001\001\000\226\226 +\324\041\111\140\342\153\350\101\007\014\336\304\340\334\023\043 +\315\301\065\307\373\326\116\021\012\147\136\365\006\133\153\245 +\010\073\133\051\026\072\347\207\262\064\006\305\274\005\245\003 +\174\202\313\051\020\256\341\210\201\275\326\236\323\376\055\126 +\301\025\316\343\046\235\025\056\020\373\006\217\060\004\336\247 +\264\143\264\377\261\234\256\074\257\167\266\126\305\265\253\242 +\351\151\072\075\016\063\171\062\077\160\202\222\231\141\155\215 +\060\010\217\161\077\246\110\127\031\370\045\334\113\146\134\245 +\164\217\230\256\310\371\300\006\042\347\254\163\337\245\056\373 +\122\334\261\025\145\040\372\065\146\151\336\337\054\361\156\274 +\060\333\054\044\022\333\353\065\065\150\220\313\000\260\227\041 +\075\164\041\043\145\064\053\273\170\131\243\326\341\166\071\232 +\244\111\216\214\164\257\156\244\232\243\331\233\322\070\134\233 +\242\030\314\165\043\204\276\353\342\115\063\161\216\032\360\302 +\370\307\035\242\255\003\227\054\370\317\045\306\366\270\044\061 +\261\143\135\222\177\143\360\045\311\123\056\037\277\115\002\003 +\001\000\001\243\201\322\060\201\317\060\035\006\003\125\035\016 +\004\026\004\024\225\261\264\360\224\266\275\307\332\321\021\011 +\041\276\301\257\111\375\020\173\060\013\006\003\125\035\017\004 +\004\003\002\001\006\060\017\006\003\125\035\023\001\001\377\004 +\005\060\003\001\001\377\060\201\217\006\003\125\035\043\004\201 +\207\060\201\204\200\024\225\261\264\360\224\266\275\307\332\321 +\021\011\041\276\301\257\111\375\020\173\241\151\244\147\060\145 +\061\013\060\011\006\003\125\004\006\023\002\123\105\061\024\060 +\022\006\003\125\004\012\023\013\101\144\144\124\162\165\163\164 +\040\101\102\061\035\060\033\006\003\125\004\013\023\024\101\144 +\144\124\162\165\163\164\040\124\124\120\040\116\145\164\167\157 +\162\153\061\041\060\037\006\003\125\004\003\023\030\101\144\144 +\124\162\165\163\164\040\103\154\141\163\163\040\061\040\103\101 +\040\122\157\157\164\202\001\001\060\015\006\011\052\206\110\206 +\367\015\001\001\005\005\000\003\202\001\001\000\054\155\144\033 +\037\315\015\335\271\001\372\226\143\064\062\110\107\231\256\227 +\355\375\162\026\246\163\107\132\364\353\335\351\365\326\373\105 +\314\051\211\104\135\277\106\071\075\350\356\274\115\124\206\036 +\035\154\343\027\047\103\341\211\126\053\251\157\162\116\111\063 +\343\162\174\052\043\232\274\076\377\050\052\355\243\377\034\043 +\272\103\127\011\147\115\113\142\006\055\370\377\154\235\140\036 +\330\034\113\175\265\061\057\331\320\174\135\370\336\153\203\030 +\170\067\127\057\350\063\007\147\337\036\307\153\052\225\166\256 +\217\127\243\360\364\122\264\251\123\010\317\340\117\323\172\123 +\213\375\273\034\126\066\362\376\262\266\345\166\273\325\042\145 +\247\077\376\321\146\255\013\274\153\231\206\357\077\175\363\030 +\062\312\173\306\343\253\144\106\225\370\046\151\331\125\203\173 +\054\226\007\377\131\054\104\243\306\345\351\251\334\241\143\200 +\132\041\136\041\317\123\124\360\272\157\211\333\250\252\225\317 +\213\343\161\314\036\033\040\104\010\300\172\266\100\375\304\344 +\065\341\035\026\034\320\274\053\216\326\161\331 +END + +# Trust for Certificate "AddTrust Low-Value Services Root" +CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "AddTrust Low-Value Services Root" +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\314\253\016\240\114\043\001\326\151\173\335\067\237\315\022\353 +\044\343\224\235 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\036\102\225\002\063\222\153\271\137\300\177\332\326\262\113\374 +END +CKA_ISSUER MULTILINE_OCTAL +\060\145\061\013\060\011\006\003\125\004\006\023\002\123\105\061 +\024\060\022\006\003\125\004\012\023\013\101\144\144\124\162\165 +\163\164\040\101\102\061\035\060\033\006\003\125\004\013\023\024 +\101\144\144\124\162\165\163\164\040\124\124\120\040\116\145\164 +\167\157\162\153\061\041\060\037\006\003\125\004\003\023\030\101 +\144\144\124\162\165\163\164\040\103\154\141\163\163\040\061\040 +\103\101\040\122\157\157\164 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\001\001 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_TRUST_UNKNOWN +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "AddTrust External Root" +# +CKA_CLASS CK_OBJECT_CLASS CKO_CERTIFICATE +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "AddTrust External Root" +CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509 +CKA_SUBJECT MULTILINE_OCTAL +\060\157\061\013\060\011\006\003\125\004\006\023\002\123\105\061 +\024\060\022\006\003\125\004\012\023\013\101\144\144\124\162\165 +\163\164\040\101\102\061\046\060\044\006\003\125\004\013\023\035 +\101\144\144\124\162\165\163\164\040\105\170\164\145\162\156\141 +\154\040\124\124\120\040\116\145\164\167\157\162\153\061\042\060 +\040\006\003\125\004\003\023\031\101\144\144\124\162\165\163\164 +\040\105\170\164\145\162\156\141\154\040\103\101\040\122\157\157 +\164 +END +CKA_ID UTF8 "0" +CKA_ISSUER MULTILINE_OCTAL +\060\157\061\013\060\011\006\003\125\004\006\023\002\123\105\061 +\024\060\022\006\003\125\004\012\023\013\101\144\144\124\162\165 +\163\164\040\101\102\061\046\060\044\006\003\125\004\013\023\035 +\101\144\144\124\162\165\163\164\040\105\170\164\145\162\156\141 +\154\040\124\124\120\040\116\145\164\167\157\162\153\061\042\060 +\040\006\003\125\004\003\023\031\101\144\144\124\162\165\163\164 +\040\105\170\164\145\162\156\141\154\040\103\101\040\122\157\157 +\164 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\001\001 +END +CKA_VALUE MULTILINE_OCTAL +\060\202\004\066\060\202\003\036\240\003\002\001\002\002\001\001 +\060\015\006\011\052\206\110\206\367\015\001\001\005\005\000\060 +\157\061\013\060\011\006\003\125\004\006\023\002\123\105\061\024 +\060\022\006\003\125\004\012\023\013\101\144\144\124\162\165\163 +\164\040\101\102\061\046\060\044\006\003\125\004\013\023\035\101 +\144\144\124\162\165\163\164\040\105\170\164\145\162\156\141\154 +\040\124\124\120\040\116\145\164\167\157\162\153\061\042\060\040 +\006\003\125\004\003\023\031\101\144\144\124\162\165\163\164\040 +\105\170\164\145\162\156\141\154\040\103\101\040\122\157\157\164 +\060\036\027\015\060\060\060\065\063\060\061\060\064\070\063\070 +\132\027\015\062\060\060\065\063\060\061\060\064\070\063\070\132 +\060\157\061\013\060\011\006\003\125\004\006\023\002\123\105\061 +\024\060\022\006\003\125\004\012\023\013\101\144\144\124\162\165 +\163\164\040\101\102\061\046\060\044\006\003\125\004\013\023\035 +\101\144\144\124\162\165\163\164\040\105\170\164\145\162\156\141 +\154\040\124\124\120\040\116\145\164\167\157\162\153\061\042\060 +\040\006\003\125\004\003\023\031\101\144\144\124\162\165\163\164 +\040\105\170\164\145\162\156\141\154\040\103\101\040\122\157\157 +\164\060\202\001\042\060\015\006\011\052\206\110\206\367\015\001 +\001\001\005\000\003\202\001\017\000\060\202\001\012\002\202\001 +\001\000\267\367\032\063\346\362\000\004\055\071\340\116\133\355 +\037\274\154\017\315\265\372\043\266\316\336\233\021\063\227\244 +\051\114\175\223\237\275\112\274\223\355\003\032\343\217\317\345 +\155\120\132\326\227\051\224\132\200\260\111\172\333\056\225\375 +\270\312\277\067\070\055\036\076\221\101\255\160\126\307\360\117 +\077\350\062\236\164\312\310\220\124\351\306\137\017\170\235\232 +\100\074\016\254\141\252\136\024\217\236\207\241\152\120\334\327 +\232\116\257\005\263\246\161\224\234\161\263\120\140\012\307\023 +\235\070\007\206\002\250\351\250\151\046\030\220\253\114\260\117 +\043\253\072\117\204\330\337\316\237\341\151\157\273\327\102\327 +\153\104\344\307\255\356\155\101\137\162\132\161\010\067\263\171 +\145\244\131\240\224\067\367\000\057\015\302\222\162\332\320\070 +\162\333\024\250\105\304\135\052\175\267\264\326\304\356\254\315 +\023\104\267\311\053\335\103\000\045\372\141\271\151\152\130\043 +\021\267\247\063\217\126\165\131\365\315\051\327\106\267\012\053 +\145\266\323\102\157\025\262\270\173\373\357\351\135\123\325\064 +\132\047\002\003\001\000\001\243\201\334\060\201\331\060\035\006 +\003\125\035\016\004\026\004\024\255\275\230\172\064\264\046\367 +\372\304\046\124\357\003\275\340\044\313\124\032\060\013\006\003 +\125\035\017\004\004\003\002\001\006\060\017\006\003\125\035\023 +\001\001\377\004\005\060\003\001\001\377\060\201\231\006\003\125 +\035\043\004\201\221\060\201\216\200\024\255\275\230\172\064\264 +\046\367\372\304\046\124\357\003\275\340\044\313\124\032\241\163 +\244\161\060\157\061\013\060\011\006\003\125\004\006\023\002\123 +\105\061\024\060\022\006\003\125\004\012\023\013\101\144\144\124 +\162\165\163\164\040\101\102\061\046\060\044\006\003\125\004\013 +\023\035\101\144\144\124\162\165\163\164\040\105\170\164\145\162 +\156\141\154\040\124\124\120\040\116\145\164\167\157\162\153\061 +\042\060\040\006\003\125\004\003\023\031\101\144\144\124\162\165 +\163\164\040\105\170\164\145\162\156\141\154\040\103\101\040\122 +\157\157\164\202\001\001\060\015\006\011\052\206\110\206\367\015 +\001\001\005\005\000\003\202\001\001\000\260\233\340\205\045\302 +\326\043\342\017\226\006\222\235\101\230\234\331\204\171\201\331 +\036\133\024\007\043\066\145\217\260\330\167\273\254\101\154\107 +\140\203\121\260\371\062\075\347\374\366\046\023\307\200\026\245 +\277\132\374\207\317\170\171\211\041\232\342\114\007\012\206\065 +\274\362\336\121\304\322\226\267\334\176\116\356\160\375\034\071 +\353\014\002\121\024\055\216\275\026\340\301\337\106\165\347\044 +\255\354\364\102\264\205\223\160\020\147\272\235\006\065\112\030 +\323\053\172\314\121\102\241\172\143\321\346\273\241\305\053\302 +\066\276\023\015\346\275\143\176\171\173\247\011\015\100\253\152 +\335\217\212\303\366\366\214\032\102\005\121\324\105\365\237\247 +\142\041\150\025\040\103\074\231\347\174\275\044\330\251\221\027 +\163\210\077\126\033\061\070\030\264\161\017\232\315\310\016\236 +\216\056\033\341\214\230\203\313\037\061\361\104\114\306\004\163 +\111\166\140\017\307\370\275\027\200\153\056\351\314\114\016\132 +\232\171\017\040\012\056\325\236\143\046\036\125\222\224\330\202 +\027\132\173\320\274\307\217\116\206\004 +END + +# Trust for Certificate "AddTrust External Root" +CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "AddTrust External Root" +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\002\372\363\342\221\103\124\150\140\170\127\151\115\365\344\133 +\150\205\030\150 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\035\065\124\004\205\170\260\077\102\102\115\277\040\163\012\077 +END +CKA_ISSUER MULTILINE_OCTAL +\060\157\061\013\060\011\006\003\125\004\006\023\002\123\105\061 +\024\060\022\006\003\125\004\012\023\013\101\144\144\124\162\165 +\163\164\040\101\102\061\046\060\044\006\003\125\004\013\023\035 +\101\144\144\124\162\165\163\164\040\105\170\164\145\162\156\141 +\154\040\124\124\120\040\116\145\164\167\157\162\153\061\042\060 +\040\006\003\125\004\003\023\031\101\144\144\124\162\165\163\164 +\040\105\170\164\145\162\156\141\154\040\103\101\040\122\157\157 +\164 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\001\001 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "AddTrust Public Services Root" +# +CKA_CLASS CK_OBJECT_CLASS CKO_CERTIFICATE +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "AddTrust Public Services Root" +CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509 +CKA_SUBJECT MULTILINE_OCTAL +\060\144\061\013\060\011\006\003\125\004\006\023\002\123\105\061 +\024\060\022\006\003\125\004\012\023\013\101\144\144\124\162\165 +\163\164\040\101\102\061\035\060\033\006\003\125\004\013\023\024 +\101\144\144\124\162\165\163\164\040\124\124\120\040\116\145\164 +\167\157\162\153\061\040\060\036\006\003\125\004\003\023\027\101 +\144\144\124\162\165\163\164\040\120\165\142\154\151\143\040\103 +\101\040\122\157\157\164 +END +CKA_ID UTF8 "0" +CKA_ISSUER MULTILINE_OCTAL +\060\144\061\013\060\011\006\003\125\004\006\023\002\123\105\061 +\024\060\022\006\003\125\004\012\023\013\101\144\144\124\162\165 +\163\164\040\101\102\061\035\060\033\006\003\125\004\013\023\024 +\101\144\144\124\162\165\163\164\040\124\124\120\040\116\145\164 +\167\157\162\153\061\040\060\036\006\003\125\004\003\023\027\101 +\144\144\124\162\165\163\164\040\120\165\142\154\151\143\040\103 +\101\040\122\157\157\164 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\001\001 +END +CKA_VALUE MULTILINE_OCTAL +\060\202\004\025\060\202\002\375\240\003\002\001\002\002\001\001 +\060\015\006\011\052\206\110\206\367\015\001\001\005\005\000\060 +\144\061\013\060\011\006\003\125\004\006\023\002\123\105\061\024 +\060\022\006\003\125\004\012\023\013\101\144\144\124\162\165\163 +\164\040\101\102\061\035\060\033\006\003\125\004\013\023\024\101 +\144\144\124\162\165\163\164\040\124\124\120\040\116\145\164\167 +\157\162\153\061\040\060\036\006\003\125\004\003\023\027\101\144 +\144\124\162\165\163\164\040\120\165\142\154\151\143\040\103\101 +\040\122\157\157\164\060\036\027\015\060\060\060\065\063\060\061 +\060\064\061\065\060\132\027\015\062\060\060\065\063\060\061\060 +\064\061\065\060\132\060\144\061\013\060\011\006\003\125\004\006 +\023\002\123\105\061\024\060\022\006\003\125\004\012\023\013\101 +\144\144\124\162\165\163\164\040\101\102\061\035\060\033\006\003 +\125\004\013\023\024\101\144\144\124\162\165\163\164\040\124\124 +\120\040\116\145\164\167\157\162\153\061\040\060\036\006\003\125 +\004\003\023\027\101\144\144\124\162\165\163\164\040\120\165\142 +\154\151\143\040\103\101\040\122\157\157\164\060\202\001\042\060 +\015\006\011\052\206\110\206\367\015\001\001\001\005\000\003\202 +\001\017\000\060\202\001\012\002\202\001\001\000\351\032\060\217 +\203\210\024\301\040\330\074\233\217\033\176\003\164\273\332\151 +\323\106\245\370\216\302\014\021\220\121\245\057\146\124\100\125 +\352\333\037\112\126\356\237\043\156\364\071\313\241\271\157\362 +\176\371\135\207\046\141\236\034\370\342\354\246\201\370\041\305 +\044\314\021\014\077\333\046\162\172\307\001\227\007\027\371\327 +\030\054\060\175\016\172\036\142\036\306\113\300\375\175\142\167 +\323\104\036\047\366\077\113\104\263\267\070\331\071\037\140\325 +\121\222\163\003\264\000\151\343\363\024\116\356\321\334\011\317 +\167\064\106\120\260\370\021\362\376\070\171\367\007\071\376\121 +\222\227\013\133\010\137\064\206\001\255\210\227\353\146\315\136 +\321\377\334\175\362\204\332\272\167\255\334\200\010\307\247\207 +\326\125\237\227\152\350\310\021\144\272\347\031\051\077\021\263 +\170\220\204\040\122\133\021\357\170\320\203\366\325\110\220\320 +\060\034\317\200\371\140\376\171\344\210\362\335\000\353\224\105 +\353\145\224\151\100\272\300\325\264\270\272\175\004\021\250\353 +\061\005\226\224\116\130\041\216\237\320\140\375\002\003\001\000 +\001\243\201\321\060\201\316\060\035\006\003\125\035\016\004\026 +\004\024\201\076\067\330\222\260\037\167\237\134\264\253\163\252 +\347\366\064\140\057\372\060\013\006\003\125\035\017\004\004\003 +\002\001\006\060\017\006\003\125\035\023\001\001\377\004\005\060 +\003\001\001\377\060\201\216\006\003\125\035\043\004\201\206\060 +\201\203\200\024\201\076\067\330\222\260\037\167\237\134\264\253 +\163\252\347\366\064\140\057\372\241\150\244\146\060\144\061\013 +\060\011\006\003\125\004\006\023\002\123\105\061\024\060\022\006 +\003\125\004\012\023\013\101\144\144\124\162\165\163\164\040\101 +\102\061\035\060\033\006\003\125\004\013\023\024\101\144\144\124 +\162\165\163\164\040\124\124\120\040\116\145\164\167\157\162\153 +\061\040\060\036\006\003\125\004\003\023\027\101\144\144\124\162 +\165\163\164\040\120\165\142\154\151\143\040\103\101\040\122\157 +\157\164\202\001\001\060\015\006\011\052\206\110\206\367\015\001 +\001\005\005\000\003\202\001\001\000\003\367\025\112\370\044\332 +\043\126\026\223\166\335\066\050\271\256\033\270\303\361\144\272 +\040\030\170\225\051\047\127\005\274\174\052\364\271\121\125\332 +\207\002\336\017\026\027\061\370\252\171\056\011\023\273\257\262 +\040\031\022\345\223\371\113\371\203\350\104\325\262\101\045\277 +\210\165\157\377\020\374\112\124\320\137\360\372\357\066\163\175 +\033\066\105\306\041\155\264\025\270\116\317\234\134\245\075\132 +\000\216\006\343\074\153\062\173\362\237\360\266\375\337\360\050 +\030\110\360\306\274\320\277\064\200\226\302\112\261\155\216\307 +\220\105\336\057\147\254\105\004\243\172\334\125\222\311\107\146 +\330\032\214\307\355\234\116\232\340\022\273\265\152\114\204\341 +\341\042\015\207\000\144\376\214\175\142\071\145\246\357\102\266 +\200\045\022\141\001\250\044\023\160\000\021\046\137\372\065\120 +\305\110\314\006\107\350\047\330\160\215\137\144\346\241\104\046 +\136\042\354\222\315\377\102\232\104\041\155\134\305\343\042\035 +\137\107\022\347\316\137\135\372\330\252\261\063\055\331\166\362 +\116\072\063\014\053\263\055\220\006 +END + +# Trust for Certificate "AddTrust Public Services Root" +CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "AddTrust Public Services Root" +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\052\266\050\110\136\170\373\363\255\236\171\020\335\153\337\231 +\162\054\226\345 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\301\142\076\043\305\202\163\234\003\131\113\053\351\167\111\177 +END +CKA_ISSUER MULTILINE_OCTAL +\060\144\061\013\060\011\006\003\125\004\006\023\002\123\105\061 +\024\060\022\006\003\125\004\012\023\013\101\144\144\124\162\165 +\163\164\040\101\102\061\035\060\033\006\003\125\004\013\023\024 +\101\144\144\124\162\165\163\164\040\124\124\120\040\116\145\164 +\167\157\162\153\061\040\060\036\006\003\125\004\003\023\027\101 +\144\144\124\162\165\163\164\040\120\165\142\154\151\143\040\103 +\101\040\122\157\157\164 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\001\001 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "AddTrust Qualified Certificates Root" +# +CKA_CLASS CK_OBJECT_CLASS CKO_CERTIFICATE +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "AddTrust Qualified Certificates Root" +CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509 +CKA_SUBJECT MULTILINE_OCTAL +\060\147\061\013\060\011\006\003\125\004\006\023\002\123\105\061 +\024\060\022\006\003\125\004\012\023\013\101\144\144\124\162\165 +\163\164\040\101\102\061\035\060\033\006\003\125\004\013\023\024 +\101\144\144\124\162\165\163\164\040\124\124\120\040\116\145\164 +\167\157\162\153\061\043\060\041\006\003\125\004\003\023\032\101 +\144\144\124\162\165\163\164\040\121\165\141\154\151\146\151\145 +\144\040\103\101\040\122\157\157\164 +END +CKA_ID UTF8 "0" +CKA_ISSUER MULTILINE_OCTAL +\060\147\061\013\060\011\006\003\125\004\006\023\002\123\105\061 +\024\060\022\006\003\125\004\012\023\013\101\144\144\124\162\165 +\163\164\040\101\102\061\035\060\033\006\003\125\004\013\023\024 +\101\144\144\124\162\165\163\164\040\124\124\120\040\116\145\164 +\167\157\162\153\061\043\060\041\006\003\125\004\003\023\032\101 +\144\144\124\162\165\163\164\040\121\165\141\154\151\146\151\145 +\144\040\103\101\040\122\157\157\164 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\001\001 +END +CKA_VALUE MULTILINE_OCTAL +\060\202\004\036\060\202\003\006\240\003\002\001\002\002\001\001 +\060\015\006\011\052\206\110\206\367\015\001\001\005\005\000\060 +\147\061\013\060\011\006\003\125\004\006\023\002\123\105\061\024 +\060\022\006\003\125\004\012\023\013\101\144\144\124\162\165\163 +\164\040\101\102\061\035\060\033\006\003\125\004\013\023\024\101 +\144\144\124\162\165\163\164\040\124\124\120\040\116\145\164\167 +\157\162\153\061\043\060\041\006\003\125\004\003\023\032\101\144 +\144\124\162\165\163\164\040\121\165\141\154\151\146\151\145\144 +\040\103\101\040\122\157\157\164\060\036\027\015\060\060\060\065 +\063\060\061\060\064\064\065\060\132\027\015\062\060\060\065\063 +\060\061\060\064\064\065\060\132\060\147\061\013\060\011\006\003 +\125\004\006\023\002\123\105\061\024\060\022\006\003\125\004\012 +\023\013\101\144\144\124\162\165\163\164\040\101\102\061\035\060 +\033\006\003\125\004\013\023\024\101\144\144\124\162\165\163\164 +\040\124\124\120\040\116\145\164\167\157\162\153\061\043\060\041 +\006\003\125\004\003\023\032\101\144\144\124\162\165\163\164\040 +\121\165\141\154\151\146\151\145\144\040\103\101\040\122\157\157 +\164\060\202\001\042\060\015\006\011\052\206\110\206\367\015\001 +\001\001\005\000\003\202\001\017\000\060\202\001\012\002\202\001 +\001\000\344\036\232\376\334\011\132\207\244\237\107\276\021\137 +\257\204\064\333\142\074\171\170\267\351\060\265\354\014\034\052 +\304\026\377\340\354\161\353\212\365\021\156\355\117\015\221\322 +\022\030\055\111\025\001\302\244\042\023\307\021\144\377\042\022 +\232\271\216\134\057\010\317\161\152\263\147\001\131\361\135\106 +\363\260\170\245\366\016\102\172\343\177\033\314\320\360\267\050 +\375\052\352\236\263\260\271\004\252\375\366\307\264\261\270\052 +\240\373\130\361\031\240\157\160\045\176\076\151\112\177\017\042 +\330\357\255\010\021\232\051\231\341\252\104\105\232\022\136\076 +\235\155\122\374\347\240\075\150\057\360\113\160\174\023\070\255 +\274\025\045\361\326\316\253\242\300\061\326\057\237\340\377\024 +\131\374\204\223\331\207\174\114\124\023\353\237\321\055\021\370 +\030\072\072\336\045\331\367\323\100\355\244\006\022\304\073\341 +\221\301\126\065\360\024\334\145\066\011\156\253\244\007\307\065 +\321\302\003\063\066\133\165\046\155\102\361\022\153\103\157\113 +\161\224\372\064\035\355\023\156\312\200\177\230\057\154\271\145 +\330\351\002\003\001\000\001\243\201\324\060\201\321\060\035\006 +\003\125\035\016\004\026\004\024\071\225\213\142\213\134\311\324 +\200\272\130\017\227\077\025\010\103\314\230\247\060\013\006\003 +\125\035\017\004\004\003\002\001\006\060\017\006\003\125\035\023 +\001\001\377\004\005\060\003\001\001\377\060\201\221\006\003\125 +\035\043\004\201\211\060\201\206\200\024\071\225\213\142\213\134 +\311\324\200\272\130\017\227\077\025\010\103\314\230\247\241\153 +\244\151\060\147\061\013\060\011\006\003\125\004\006\023\002\123 +\105\061\024\060\022\006\003\125\004\012\023\013\101\144\144\124 +\162\165\163\164\040\101\102\061\035\060\033\006\003\125\004\013 +\023\024\101\144\144\124\162\165\163\164\040\124\124\120\040\116 +\145\164\167\157\162\153\061\043\060\041\006\003\125\004\003\023 +\032\101\144\144\124\162\165\163\164\040\121\165\141\154\151\146 +\151\145\144\040\103\101\040\122\157\157\164\202\001\001\060\015 +\006\011\052\206\110\206\367\015\001\001\005\005\000\003\202\001 +\001\000\031\253\165\352\370\213\145\141\225\023\272\151\004\357 +\206\312\023\240\307\252\117\144\033\077\030\366\250\055\054\125 +\217\005\267\060\352\102\152\035\300\045\121\055\247\277\014\263 +\355\357\010\177\154\074\106\032\352\030\103\337\166\314\371\146 +\206\234\054\150\365\351\027\370\061\263\030\304\326\110\175\043 +\114\150\301\176\273\001\024\157\305\331\156\336\273\004\102\152 +\370\366\134\175\345\332\372\207\353\015\065\122\147\320\236\227 +\166\005\223\077\225\307\001\346\151\125\070\177\020\141\231\311 +\343\137\246\312\076\202\143\110\252\342\010\110\076\252\362\262 +\205\142\246\264\247\331\275\067\234\150\265\055\126\175\260\267 +\077\240\261\007\326\351\117\334\336\105\161\060\062\177\033\056 +\011\371\277\122\241\356\302\200\076\006\134\056\125\100\301\033 +\365\160\105\260\334\135\372\366\162\132\167\322\143\315\317\130 +\211\000\102\143\077\171\071\320\104\260\202\156\101\031\350\335 +\340\301\210\132\321\036\161\223\037\044\060\164\345\036\250\336 +\074\047\067\177\203\256\236\167\317\360\060\261\377\113\231\350 +\306\241 +END + +# Trust for Certificate "AddTrust Qualified Certificates Root" +CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "AddTrust Qualified Certificates Root" +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\115\043\170\354\221\225\071\265\000\177\165\217\003\073\041\036 +\305\115\213\317 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\047\354\071\107\315\332\132\257\342\232\001\145\041\251\114\273 +END +CKA_ISSUER MULTILINE_OCTAL +\060\147\061\013\060\011\006\003\125\004\006\023\002\123\105\061 +\024\060\022\006\003\125\004\012\023\013\101\144\144\124\162\165 +\163\164\040\101\102\061\035\060\033\006\003\125\004\013\023\024 +\101\144\144\124\162\165\163\164\040\124\124\120\040\116\145\164 +\167\157\162\153\061\043\060\041\006\003\125\004\003\023\032\101 +\144\144\124\162\165\163\164\040\121\165\141\154\151\146\151\145 +\144\040\103\101\040\122\157\157\164 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\001\001 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "Entrust Root Certification Authority" +# +CKA_CLASS CK_OBJECT_CLASS CKO_CERTIFICATE +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "Entrust Root Certification Authority" +CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509 +CKA_SUBJECT MULTILINE_OCTAL +\060\201\260\061\013\060\011\006\003\125\004\006\023\002\125\123 +\061\026\060\024\006\003\125\004\012\023\015\105\156\164\162\165 +\163\164\054\040\111\156\143\056\061\071\060\067\006\003\125\004 +\013\023\060\167\167\167\056\145\156\164\162\165\163\164\056\156 +\145\164\057\103\120\123\040\151\163\040\151\156\143\157\162\160 +\157\162\141\164\145\144\040\142\171\040\162\145\146\145\162\145 +\156\143\145\061\037\060\035\006\003\125\004\013\023\026\050\143 +\051\040\062\060\060\066\040\105\156\164\162\165\163\164\054\040 +\111\156\143\056\061\055\060\053\006\003\125\004\003\023\044\105 +\156\164\162\165\163\164\040\122\157\157\164\040\103\145\162\164 +\151\146\151\143\141\164\151\157\156\040\101\165\164\150\157\162 +\151\164\171 +END +CKA_ID UTF8 "0" +CKA_ISSUER MULTILINE_OCTAL +\060\201\260\061\013\060\011\006\003\125\004\006\023\002\125\123 +\061\026\060\024\006\003\125\004\012\023\015\105\156\164\162\165 +\163\164\054\040\111\156\143\056\061\071\060\067\006\003\125\004 +\013\023\060\167\167\167\056\145\156\164\162\165\163\164\056\156 +\145\164\057\103\120\123\040\151\163\040\151\156\143\157\162\160 +\157\162\141\164\145\144\040\142\171\040\162\145\146\145\162\145 +\156\143\145\061\037\060\035\006\003\125\004\013\023\026\050\143 +\051\040\062\060\060\066\040\105\156\164\162\165\163\164\054\040 +\111\156\143\056\061\055\060\053\006\003\125\004\003\023\044\105 +\156\164\162\165\163\164\040\122\157\157\164\040\103\145\162\164 +\151\146\151\143\141\164\151\157\156\040\101\165\164\150\157\162 +\151\164\171 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\004\105\153\120\124 +END +CKA_VALUE MULTILINE_OCTAL +\060\202\004\221\060\202\003\171\240\003\002\001\002\002\004\105 +\153\120\124\060\015\006\011\052\206\110\206\367\015\001\001\005 +\005\000\060\201\260\061\013\060\011\006\003\125\004\006\023\002 +\125\123\061\026\060\024\006\003\125\004\012\023\015\105\156\164 +\162\165\163\164\054\040\111\156\143\056\061\071\060\067\006\003 +\125\004\013\023\060\167\167\167\056\145\156\164\162\165\163\164 +\056\156\145\164\057\103\120\123\040\151\163\040\151\156\143\157 +\162\160\157\162\141\164\145\144\040\142\171\040\162\145\146\145 +\162\145\156\143\145\061\037\060\035\006\003\125\004\013\023\026 +\050\143\051\040\062\060\060\066\040\105\156\164\162\165\163\164 +\054\040\111\156\143\056\061\055\060\053\006\003\125\004\003\023 +\044\105\156\164\162\165\163\164\040\122\157\157\164\040\103\145 +\162\164\151\146\151\143\141\164\151\157\156\040\101\165\164\150 +\157\162\151\164\171\060\036\027\015\060\066\061\061\062\067\062 +\060\062\063\064\062\132\027\015\062\066\061\061\062\067\062\060 +\065\063\064\062\132\060\201\260\061\013\060\011\006\003\125\004 +\006\023\002\125\123\061\026\060\024\006\003\125\004\012\023\015 +\105\156\164\162\165\163\164\054\040\111\156\143\056\061\071\060 +\067\006\003\125\004\013\023\060\167\167\167\056\145\156\164\162 +\165\163\164\056\156\145\164\057\103\120\123\040\151\163\040\151 +\156\143\157\162\160\157\162\141\164\145\144\040\142\171\040\162 +\145\146\145\162\145\156\143\145\061\037\060\035\006\003\125\004 +\013\023\026\050\143\051\040\062\060\060\066\040\105\156\164\162 +\165\163\164\054\040\111\156\143\056\061\055\060\053\006\003\125 +\004\003\023\044\105\156\164\162\165\163\164\040\122\157\157\164 +\040\103\145\162\164\151\146\151\143\141\164\151\157\156\040\101 +\165\164\150\157\162\151\164\171\060\202\001\042\060\015\006\011 +\052\206\110\206\367\015\001\001\001\005\000\003\202\001\017\000 +\060\202\001\012\002\202\001\001\000\266\225\266\103\102\372\306 +\155\052\157\110\337\224\114\071\127\005\356\303\171\021\101\150 +\066\355\354\376\232\001\217\241\070\050\374\367\020\106\146\056 +\115\036\032\261\032\116\306\321\300\225\210\260\311\377\061\213 +\063\003\333\267\203\173\076\040\204\136\355\262\126\050\247\370 +\340\271\100\161\067\305\313\107\016\227\052\150\300\042\225\142 +\025\333\107\331\365\320\053\377\202\113\311\255\076\336\114\333 +\220\200\120\077\011\212\204\000\354\060\012\075\030\315\373\375 +\052\131\232\043\225\027\054\105\236\037\156\103\171\155\014\134 +\230\376\110\247\305\043\107\134\136\375\156\347\036\264\366\150 +\105\321\206\203\133\242\212\215\261\343\051\200\376\045\161\210 +\255\276\274\217\254\122\226\113\252\121\215\344\023\061\031\350 +\116\115\237\333\254\263\152\325\274\071\124\161\312\172\172\177 +\220\335\175\035\200\331\201\273\131\046\302\021\376\346\223\342 +\367\200\344\145\373\064\067\016\051\200\160\115\257\070\206\056 +\236\177\127\257\236\027\256\353\034\313\050\041\137\266\034\330 +\347\242\004\042\371\323\332\330\313\002\003\001\000\001\243\201 +\260\060\201\255\060\016\006\003\125\035\017\001\001\377\004\004 +\003\002\001\006\060\017\006\003\125\035\023\001\001\377\004\005 +\060\003\001\001\377\060\053\006\003\125\035\020\004\044\060\042 +\200\017\062\060\060\066\061\061\062\067\062\060\062\063\064\062 +\132\201\017\062\060\062\066\061\061\062\067\062\060\065\063\064 +\062\132\060\037\006\003\125\035\043\004\030\060\026\200\024\150 +\220\344\147\244\246\123\200\307\206\146\244\361\367\113\103\373 +\204\275\155\060\035\006\003\125\035\016\004\026\004\024\150\220 +\344\147\244\246\123\200\307\206\146\244\361\367\113\103\373\204 +\275\155\060\035\006\011\052\206\110\206\366\175\007\101\000\004 +\020\060\016\033\010\126\067\056\061\072\064\056\060\003\002\004 +\220\060\015\006\011\052\206\110\206\367\015\001\001\005\005\000 +\003\202\001\001\000\223\324\060\260\327\003\040\052\320\371\143 +\350\221\014\005\040\251\137\031\312\173\162\116\324\261\333\320 +\226\373\124\132\031\054\014\010\367\262\274\205\250\235\177\155 +\073\122\263\052\333\347\324\204\214\143\366\017\313\046\001\221 +\120\154\364\137\024\342\223\164\300\023\236\060\072\120\343\264 +\140\305\034\360\042\104\215\161\107\254\310\032\311\351\233\232 +\000\140\023\377\160\176\137\021\115\111\033\263\025\122\173\311 +\124\332\277\235\225\257\153\232\330\236\351\361\344\103\215\342 +\021\104\072\277\257\275\203\102\163\122\213\252\273\247\051\317 +\365\144\034\012\115\321\274\252\254\237\052\320\377\177\177\332 +\175\352\261\355\060\045\301\204\332\064\322\133\170\203\126\354 +\234\066\303\046\342\021\366\147\111\035\222\253\214\373\353\377 +\172\356\205\112\247\120\200\360\247\134\112\224\056\137\005\231 +\074\122\101\340\315\264\143\317\001\103\272\234\203\334\217\140 +\073\363\132\264\264\173\256\332\013\220\070\165\357\201\035\146 +\322\367\127\160\066\263\277\374\050\257\161\045\205\133\023\376 +\036\177\132\264\074 +END + +# Trust for Certificate "Entrust Root Certification Authority" +CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "Entrust Root Certification Authority" +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\263\036\261\267\100\343\154\204\002\332\334\067\324\115\365\324 +\147\111\122\371 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\326\245\303\355\135\335\076\000\301\075\207\222\037\035\077\344 +END +CKA_ISSUER MULTILINE_OCTAL +\060\201\260\061\013\060\011\006\003\125\004\006\023\002\125\123 +\061\026\060\024\006\003\125\004\012\023\015\105\156\164\162\165 +\163\164\054\040\111\156\143\056\061\071\060\067\006\003\125\004 +\013\023\060\167\167\167\056\145\156\164\162\165\163\164\056\156 +\145\164\057\103\120\123\040\151\163\040\151\156\143\157\162\160 +\157\162\141\164\145\144\040\142\171\040\162\145\146\145\162\145 +\156\143\145\061\037\060\035\006\003\125\004\013\023\026\050\143 +\051\040\062\060\060\066\040\105\156\164\162\165\163\164\054\040 +\111\156\143\056\061\055\060\053\006\003\125\004\003\023\044\105 +\156\164\162\165\163\164\040\122\157\157\164\040\103\145\162\164 +\151\146\151\143\141\164\151\157\156\040\101\165\164\150\157\162 +\151\164\171 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\004\105\153\120\124 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_TRUST_UNKNOWN +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_TRUST_UNKNOWN +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "RSA Security 2048 v3" +# +CKA_CLASS CK_OBJECT_CLASS CKO_CERTIFICATE +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "RSA Security 2048 v3" +CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509 +CKA_SUBJECT MULTILINE_OCTAL +\060\072\061\031\060\027\006\003\125\004\012\023\020\122\123\101 +\040\123\145\143\165\162\151\164\171\040\111\156\143\061\035\060 +\033\006\003\125\004\013\023\024\122\123\101\040\123\145\143\165 +\162\151\164\171\040\062\060\064\070\040\126\063 +END +CKA_ID UTF8 "0" +CKA_ISSUER MULTILINE_OCTAL +\060\072\061\031\060\027\006\003\125\004\012\023\020\122\123\101 +\040\123\145\143\165\162\151\164\171\040\111\156\143\061\035\060 +\033\006\003\125\004\013\023\024\122\123\101\040\123\145\143\165 +\162\151\164\171\040\062\060\064\070\040\126\063 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\020\012\001\001\001\000\000\002\174\000\000\000\012\000\000 +\000\002 +END +CKA_VALUE MULTILINE_OCTAL +\060\202\003\141\060\202\002\111\240\003\002\001\002\002\020\012 +\001\001\001\000\000\002\174\000\000\000\012\000\000\000\002\060 +\015\006\011\052\206\110\206\367\015\001\001\005\005\000\060\072 +\061\031\060\027\006\003\125\004\012\023\020\122\123\101\040\123 +\145\143\165\162\151\164\171\040\111\156\143\061\035\060\033\006 +\003\125\004\013\023\024\122\123\101\040\123\145\143\165\162\151 +\164\171\040\062\060\064\070\040\126\063\060\036\027\015\060\061 +\060\062\062\062\062\060\063\071\062\063\132\027\015\062\066\060 +\062\062\062\062\060\063\071\062\063\132\060\072\061\031\060\027 +\006\003\125\004\012\023\020\122\123\101\040\123\145\143\165\162 +\151\164\171\040\111\156\143\061\035\060\033\006\003\125\004\013 +\023\024\122\123\101\040\123\145\143\165\162\151\164\171\040\062 +\060\064\070\040\126\063\060\202\001\042\060\015\006\011\052\206 +\110\206\367\015\001\001\001\005\000\003\202\001\017\000\060\202 +\001\012\002\202\001\001\000\267\217\125\161\322\200\335\173\151 +\171\247\360\030\120\062\074\142\147\366\012\225\007\335\346\033 +\363\236\331\322\101\124\153\255\237\174\276\031\315\373\106\253 +\101\150\036\030\352\125\310\057\221\170\211\050\373\047\051\140 +\377\337\217\214\073\311\111\233\265\244\224\316\001\352\076\265 +\143\173\177\046\375\031\335\300\041\275\204\321\055\117\106\303 +\116\334\330\067\071\073\050\257\313\235\032\352\053\257\041\245 +\301\043\042\270\270\033\132\023\207\127\203\321\360\040\347\350 +\117\043\102\260\000\245\175\211\351\351\141\163\224\230\161\046 +\274\055\152\340\367\115\360\361\266\052\070\061\201\015\051\341 +\000\301\121\017\114\122\370\004\132\252\175\162\323\270\207\052 +\273\143\020\003\052\263\241\117\015\132\136\106\267\075\016\365 +\164\354\231\237\371\075\044\201\210\246\335\140\124\350\225\066 +\075\306\011\223\232\243\022\200\000\125\231\031\107\275\320\245 +\174\303\272\373\037\367\365\017\370\254\271\265\364\067\230\023 +\030\336\205\133\267\014\202\073\207\157\225\071\130\060\332\156 +\001\150\027\042\314\300\013\002\003\001\000\001\243\143\060\141 +\060\017\006\003\125\035\023\001\001\377\004\005\060\003\001\001 +\377\060\016\006\003\125\035\017\001\001\377\004\004\003\002\001 +\006\060\037\006\003\125\035\043\004\030\060\026\200\024\007\303 +\121\060\244\252\351\105\256\065\044\372\377\044\054\063\320\261 +\235\214\060\035\006\003\125\035\016\004\026\004\024\007\303\121 +\060\244\252\351\105\256\065\044\372\377\044\054\063\320\261\235 +\214\060\015\006\011\052\206\110\206\367\015\001\001\005\005\000 +\003\202\001\001\000\137\076\206\166\156\270\065\074\116\066\034 +\036\171\230\277\375\325\022\021\171\122\016\356\061\211\274\335 +\177\371\321\306\025\041\350\212\001\124\015\072\373\124\271\326 +\143\324\261\252\226\115\242\102\115\324\123\037\213\020\336\177 +\145\276\140\023\047\161\210\244\163\343\204\143\321\244\125\341 +\120\223\346\033\016\171\320\147\274\106\310\277\077\027\015\225 +\346\306\220\151\336\347\264\057\336\225\175\320\022\077\075\076 +\177\115\077\024\150\365\021\120\325\301\364\220\245\010\035\061 +\140\377\140\214\043\124\012\257\376\241\156\305\321\172\052\150 +\170\317\036\202\012\040\264\037\255\345\205\262\152\150\165\116 +\255\045\067\224\205\276\275\241\324\352\267\014\113\074\235\350 +\022\000\360\137\254\015\341\254\160\143\163\367\177\171\237\062 +\045\102\164\005\200\050\277\275\301\044\226\130\025\261\027\041 +\351\211\113\333\007\210\147\364\025\255\160\076\057\115\205\073 +\302\267\333\376\230\150\043\211\341\164\017\336\364\305\204\143 +\051\033\314\313\007\311\000\244\251\327\302\042\117\147\327\167 +\354\040\005\141\336 +END + +# Trust for Certificate "RSA Security 2048 v3" +CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "RSA Security 2048 v3" +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\045\001\220\031\317\373\331\231\034\267\150\045\164\215\224\137 +\060\223\225\102 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\167\015\031\261\041\375\000\102\234\076\014\245\335\013\002\216 +END +CKA_ISSUER MULTILINE_OCTAL +\060\072\061\031\060\027\006\003\125\004\012\023\020\122\123\101 +\040\123\145\143\165\162\151\164\171\040\111\156\143\061\035\060 +\033\006\003\125\004\013\023\024\122\123\101\040\123\145\143\165 +\162\151\164\171\040\062\060\064\070\040\126\063 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\020\012\001\001\001\000\000\002\174\000\000\000\012\000\000 +\000\002 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "GeoTrust Global CA" +# +CKA_CLASS CK_OBJECT_CLASS CKO_CERTIFICATE +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "GeoTrust Global CA" +CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509 +CKA_SUBJECT MULTILINE_OCTAL +\060\102\061\013\060\011\006\003\125\004\006\023\002\125\123\061 +\026\060\024\006\003\125\004\012\023\015\107\145\157\124\162\165 +\163\164\040\111\156\143\056\061\033\060\031\006\003\125\004\003 +\023\022\107\145\157\124\162\165\163\164\040\107\154\157\142\141 +\154\040\103\101 +END +CKA_ID UTF8 "0" +CKA_ISSUER MULTILINE_OCTAL +\060\102\061\013\060\011\006\003\125\004\006\023\002\125\123\061 +\026\060\024\006\003\125\004\012\023\015\107\145\157\124\162\165 +\163\164\040\111\156\143\056\061\033\060\031\006\003\125\004\003 +\023\022\107\145\157\124\162\165\163\164\040\107\154\157\142\141 +\154\040\103\101 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\003\002\064\126 +END +CKA_VALUE MULTILINE_OCTAL +\060\202\003\124\060\202\002\074\240\003\002\001\002\002\003\002 +\064\126\060\015\006\011\052\206\110\206\367\015\001\001\005\005 +\000\060\102\061\013\060\011\006\003\125\004\006\023\002\125\123 +\061\026\060\024\006\003\125\004\012\023\015\107\145\157\124\162 +\165\163\164\040\111\156\143\056\061\033\060\031\006\003\125\004 +\003\023\022\107\145\157\124\162\165\163\164\040\107\154\157\142 +\141\154\040\103\101\060\036\027\015\060\062\060\065\062\061\060 +\064\060\060\060\060\132\027\015\062\062\060\065\062\061\060\064 +\060\060\060\060\132\060\102\061\013\060\011\006\003\125\004\006 +\023\002\125\123\061\026\060\024\006\003\125\004\012\023\015\107 +\145\157\124\162\165\163\164\040\111\156\143\056\061\033\060\031 +\006\003\125\004\003\023\022\107\145\157\124\162\165\163\164\040 +\107\154\157\142\141\154\040\103\101\060\202\001\042\060\015\006 +\011\052\206\110\206\367\015\001\001\001\005\000\003\202\001\017 +\000\060\202\001\012\002\202\001\001\000\332\314\030\143\060\375 +\364\027\043\032\126\176\133\337\074\154\070\344\161\267\170\221 +\324\274\241\330\114\370\250\103\266\003\351\115\041\007\010\210 +\332\130\057\146\071\051\275\005\170\213\235\070\350\005\267\152 +\176\161\244\346\304\140\246\260\357\200\344\211\050\017\236\045 +\326\355\203\363\255\246\221\307\230\311\102\030\065\024\235\255 +\230\106\222\056\117\312\361\207\103\301\026\225\127\055\120\357 +\211\055\200\172\127\255\362\356\137\153\322\000\215\271\024\370 +\024\025\065\331\300\106\243\173\162\310\221\277\311\125\053\315 +\320\227\076\234\046\144\314\337\316\203\031\161\312\116\346\324 +\325\173\251\031\315\125\336\310\354\322\136\070\123\345\134\117 +\214\055\376\120\043\066\374\146\346\313\216\244\071\031\000\267 +\225\002\071\221\013\016\376\070\056\321\035\005\232\366\115\076 +\157\017\007\035\257\054\036\217\140\071\342\372\066\123\023\071 +\324\136\046\053\333\075\250\024\275\062\353\030\003\050\122\004 +\161\345\253\063\075\341\070\273\007\066\204\142\234\171\352\026 +\060\364\137\300\053\350\161\153\344\371\002\003\001\000\001\243 +\123\060\121\060\017\006\003\125\035\023\001\001\377\004\005\060 +\003\001\001\377\060\035\006\003\125\035\016\004\026\004\024\300 +\172\230\150\215\211\373\253\005\144\014\021\175\252\175\145\270 +\312\314\116\060\037\006\003\125\035\043\004\030\060\026\200\024 +\300\172\230\150\215\211\373\253\005\144\014\021\175\252\175\145 +\270\312\314\116\060\015\006\011\052\206\110\206\367\015\001\001 +\005\005\000\003\202\001\001\000\065\343\051\152\345\057\135\124 +\216\051\120\224\237\231\032\024\344\217\170\052\142\224\242\047 +\147\236\320\317\032\136\107\351\301\262\244\317\335\101\032\005 +\116\233\113\356\112\157\125\122\263\044\241\067\012\353\144\166 +\052\056\054\363\375\073\165\220\277\372\161\330\307\075\067\322 +\265\005\225\142\271\246\336\211\075\066\173\070\167\110\227\254 +\246\040\217\056\246\311\014\302\262\231\105\000\307\316\021\121 +\042\042\340\245\352\266\025\110\011\144\352\136\117\164\367\005 +\076\307\212\122\014\333\025\264\275\155\233\345\306\261\124\150 +\251\343\151\220\266\232\245\017\270\271\077\040\175\256\112\265 +\270\234\344\035\266\253\346\224\245\301\307\203\255\333\365\047 +\207\016\004\154\325\377\335\240\135\355\207\122\267\053\025\002 +\256\071\246\152\164\351\332\304\347\274\115\064\036\251\134\115 +\063\137\222\011\057\210\146\135\167\227\307\035\166\023\251\325 +\345\361\026\011\021\065\325\254\333\044\161\160\054\230\126\013 +\331\027\264\321\343\121\053\136\165\350\325\320\334\117\064\355 +\302\005\146\200\241\313\346\063 +END + +# Trust for Certificate "GeoTrust Global CA" +CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "GeoTrust Global CA" +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\336\050\364\244\377\345\271\057\243\305\003\321\243\111\247\371 +\226\052\202\022 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\367\165\253\051\373\121\116\267\167\136\377\005\074\231\216\365 +END +CKA_ISSUER MULTILINE_OCTAL +\060\102\061\013\060\011\006\003\125\004\006\023\002\125\123\061 +\026\060\024\006\003\125\004\012\023\015\107\145\157\124\162\165 +\163\164\040\111\156\143\056\061\033\060\031\006\003\125\004\003 +\023\022\107\145\157\124\162\165\163\164\040\107\154\157\142\141 +\154\040\103\101 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\003\002\064\126 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "GeoTrust Global CA 2" +# +CKA_CLASS CK_OBJECT_CLASS CKO_CERTIFICATE +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "GeoTrust Global CA 2" +CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509 +CKA_SUBJECT MULTILINE_OCTAL +\060\104\061\013\060\011\006\003\125\004\006\023\002\125\123\061 +\026\060\024\006\003\125\004\012\023\015\107\145\157\124\162\165 +\163\164\040\111\156\143\056\061\035\060\033\006\003\125\004\003 +\023\024\107\145\157\124\162\165\163\164\040\107\154\157\142\141 +\154\040\103\101\040\062 +END +CKA_ID UTF8 "0" +CKA_ISSUER MULTILINE_OCTAL +\060\104\061\013\060\011\006\003\125\004\006\023\002\125\123\061 +\026\060\024\006\003\125\004\012\023\015\107\145\157\124\162\165 +\163\164\040\111\156\143\056\061\035\060\033\006\003\125\004\003 +\023\024\107\145\157\124\162\165\163\164\040\107\154\157\142\141 +\154\040\103\101\040\062 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\001\001 +END +CKA_VALUE MULTILINE_OCTAL +\060\202\003\146\060\202\002\116\240\003\002\001\002\002\001\001 +\060\015\006\011\052\206\110\206\367\015\001\001\005\005\000\060 +\104\061\013\060\011\006\003\125\004\006\023\002\125\123\061\026 +\060\024\006\003\125\004\012\023\015\107\145\157\124\162\165\163 +\164\040\111\156\143\056\061\035\060\033\006\003\125\004\003\023 +\024\107\145\157\124\162\165\163\164\040\107\154\157\142\141\154 +\040\103\101\040\062\060\036\027\015\060\064\060\063\060\064\060 +\065\060\060\060\060\132\027\015\061\071\060\063\060\064\060\065 +\060\060\060\060\132\060\104\061\013\060\011\006\003\125\004\006 +\023\002\125\123\061\026\060\024\006\003\125\004\012\023\015\107 +\145\157\124\162\165\163\164\040\111\156\143\056\061\035\060\033 +\006\003\125\004\003\023\024\107\145\157\124\162\165\163\164\040 +\107\154\157\142\141\154\040\103\101\040\062\060\202\001\042\060 +\015\006\011\052\206\110\206\367\015\001\001\001\005\000\003\202 +\001\017\000\060\202\001\012\002\202\001\001\000\357\074\115\100 +\075\020\337\073\123\000\341\147\376\224\140\025\076\205\210\361 +\211\015\220\310\050\043\231\005\350\053\040\235\306\363\140\106 +\330\301\262\325\214\061\331\334\040\171\044\201\277\065\062\374 +\143\151\333\261\052\153\356\041\130\362\010\351\170\313\157\313 +\374\026\122\310\221\304\377\075\163\336\261\076\247\302\175\146 +\301\365\176\122\044\032\342\325\147\221\320\202\020\327\170\113 +\117\053\102\071\275\144\055\100\240\260\020\323\070\110\106\210 +\241\014\273\072\063\052\142\230\373\000\235\023\131\177\157\073 +\162\252\356\246\017\206\371\005\141\352\147\177\014\067\226\213 +\346\151\026\107\021\302\047\131\003\263\246\140\302\041\100\126 +\372\240\307\175\072\023\343\354\127\307\263\326\256\235\211\200 +\367\001\347\054\366\226\053\023\015\171\054\331\300\344\206\173 +\113\214\014\162\202\212\373\027\315\000\154\072\023\074\260\204 +\207\113\026\172\051\262\117\333\035\324\013\363\146\067\275\330 +\366\127\273\136\044\172\270\074\213\271\372\222\032\032\204\236 +\330\164\217\252\033\177\136\364\376\105\042\041\002\003\001\000 +\001\243\143\060\141\060\017\006\003\125\035\023\001\001\377\004 +\005\060\003\001\001\377\060\035\006\003\125\035\016\004\026\004 +\024\161\070\066\362\002\061\123\107\053\156\272\145\106\251\020 +\025\130\040\005\011\060\037\006\003\125\035\043\004\030\060\026 +\200\024\161\070\066\362\002\061\123\107\053\156\272\145\106\251 +\020\025\130\040\005\011\060\016\006\003\125\035\017\001\001\377 +\004\004\003\002\001\206\060\015\006\011\052\206\110\206\367\015 +\001\001\005\005\000\003\202\001\001\000\003\367\265\053\253\135 +\020\374\173\262\262\136\254\233\016\176\123\170\131\076\102\004 +\376\165\243\255\254\201\116\327\002\213\136\304\055\310\122\166 +\307\054\037\374\201\062\230\321\113\306\222\223\063\065\061\057 +\374\330\035\104\335\340\201\177\235\351\213\341\144\221\142\013 +\071\010\214\254\164\235\131\331\172\131\122\227\021\271\026\173 +\157\105\323\226\331\061\175\002\066\017\234\073\156\317\054\015 +\003\106\105\353\240\364\177\110\104\306\010\100\314\336\033\160 +\265\051\255\272\213\073\064\145\165\033\161\041\035\054\024\012 +\260\226\225\270\326\352\362\145\373\051\272\117\352\221\223\164 +\151\266\362\377\341\032\320\014\321\166\205\313\212\045\275\227 +\136\054\157\025\231\046\347\266\051\377\042\354\311\002\307\126 +\000\315\111\271\263\154\173\123\004\032\342\250\311\252\022\005 +\043\302\316\347\273\004\002\314\300\107\242\344\304\051\057\133 +\105\127\211\121\356\074\353\122\010\377\007\065\036\237\065\152 +\107\112\126\230\321\132\205\037\214\365\042\277\253\316\203\363 +\342\042\051\256\175\203\100\250\272\154 +END + +# Trust for Certificate "GeoTrust Global CA 2" +CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "GeoTrust Global CA 2" +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\251\351\170\010\024\067\130\210\362\005\031\260\155\053\015\053 +\140\026\220\175 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\016\100\247\154\336\003\135\217\321\017\344\321\215\371\154\251 +END +CKA_ISSUER MULTILINE_OCTAL +\060\104\061\013\060\011\006\003\125\004\006\023\002\125\123\061 +\026\060\024\006\003\125\004\012\023\015\107\145\157\124\162\165 +\163\164\040\111\156\143\056\061\035\060\033\006\003\125\004\003 +\023\024\107\145\157\124\162\165\163\164\040\107\154\157\142\141 +\154\040\103\101\040\062 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\001\001 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "GeoTrust Universal CA" +# +CKA_CLASS CK_OBJECT_CLASS CKO_CERTIFICATE +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "GeoTrust Universal CA" +CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509 +CKA_SUBJECT MULTILINE_OCTAL +\060\105\061\013\060\011\006\003\125\004\006\023\002\125\123\061 +\026\060\024\006\003\125\004\012\023\015\107\145\157\124\162\165 +\163\164\040\111\156\143\056\061\036\060\034\006\003\125\004\003 +\023\025\107\145\157\124\162\165\163\164\040\125\156\151\166\145 +\162\163\141\154\040\103\101 +END +CKA_ID UTF8 "0" +CKA_ISSUER MULTILINE_OCTAL +\060\105\061\013\060\011\006\003\125\004\006\023\002\125\123\061 +\026\060\024\006\003\125\004\012\023\015\107\145\157\124\162\165 +\163\164\040\111\156\143\056\061\036\060\034\006\003\125\004\003 +\023\025\107\145\157\124\162\165\163\164\040\125\156\151\166\145 +\162\163\141\154\040\103\101 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\001\001 +END +CKA_VALUE MULTILINE_OCTAL +\060\202\005\150\060\202\003\120\240\003\002\001\002\002\001\001 +\060\015\006\011\052\206\110\206\367\015\001\001\005\005\000\060 +\105\061\013\060\011\006\003\125\004\006\023\002\125\123\061\026 +\060\024\006\003\125\004\012\023\015\107\145\157\124\162\165\163 +\164\040\111\156\143\056\061\036\060\034\006\003\125\004\003\023 +\025\107\145\157\124\162\165\163\164\040\125\156\151\166\145\162 +\163\141\154\040\103\101\060\036\027\015\060\064\060\063\060\064 +\060\065\060\060\060\060\132\027\015\062\071\060\063\060\064\060 +\065\060\060\060\060\132\060\105\061\013\060\011\006\003\125\004 +\006\023\002\125\123\061\026\060\024\006\003\125\004\012\023\015 +\107\145\157\124\162\165\163\164\040\111\156\143\056\061\036\060 +\034\006\003\125\004\003\023\025\107\145\157\124\162\165\163\164 +\040\125\156\151\166\145\162\163\141\154\040\103\101\060\202\002 +\042\060\015\006\011\052\206\110\206\367\015\001\001\001\005\000 +\003\202\002\017\000\060\202\002\012\002\202\002\001\000\246\025 +\125\240\243\306\340\037\214\235\041\120\327\301\276\053\133\265 +\244\236\241\331\162\130\275\000\033\114\277\141\311\024\035\105 +\202\253\306\035\200\326\075\353\020\234\072\257\155\044\370\274 +\161\001\236\006\365\174\137\036\301\016\125\312\203\232\131\060 +\256\031\313\060\110\225\355\042\067\215\364\112\232\162\146\076 +\255\225\300\340\026\000\340\020\037\053\061\016\327\224\124\323 +\102\063\240\064\035\036\105\166\335\117\312\030\067\354\205\025 +\172\031\010\374\325\307\234\360\362\251\056\020\251\222\346\075 +\130\075\251\026\150\074\057\165\041\030\177\050\167\245\341\141 +\027\267\246\351\370\036\231\333\163\156\364\012\242\041\154\356 +\332\252\205\222\146\257\366\172\153\202\332\272\042\010\065\017 +\317\102\361\065\372\152\356\176\053\045\314\072\021\344\155\257 +\163\262\166\035\255\320\262\170\147\032\244\071\034\121\013\147 +\126\203\375\070\135\015\316\335\360\273\053\226\037\336\173\062 +\122\375\035\273\265\006\241\262\041\136\245\326\225\150\177\360 +\231\236\334\105\010\076\347\322\011\015\065\224\335\200\116\123 +\227\327\265\011\104\040\144\026\027\003\002\114\123\015\150\336 +\325\252\162\115\223\155\202\016\333\234\275\317\264\363\134\135 +\124\172\151\011\226\326\333\021\301\215\165\250\264\317\071\310 +\316\074\274\044\174\346\142\312\341\275\175\247\275\127\145\013 +\344\376\045\355\266\151\020\334\050\032\106\275\001\035\320\227 +\265\341\230\073\300\067\144\326\075\224\356\013\341\365\050\256 +\013\126\277\161\213\043\051\101\216\206\305\113\122\173\330\161 +\253\037\212\025\246\073\203\132\327\130\001\121\306\114\101\331 +\177\330\101\147\162\242\050\337\140\203\251\236\310\173\374\123 +\163\162\131\365\223\172\027\166\016\316\367\345\134\331\013\125 +\064\242\252\133\265\152\124\347\023\312\127\354\227\155\364\136 +\006\057\105\213\130\324\043\026\222\344\026\156\050\143\131\060 +\337\120\001\234\143\211\032\237\333\027\224\202\160\067\303\044 +\236\232\107\326\132\312\116\250\151\211\162\037\221\154\333\176 +\236\033\255\307\037\163\335\054\117\031\145\375\177\223\100\020 +\056\322\360\355\074\236\056\050\076\151\046\063\305\173\002\003 +\001\000\001\243\143\060\141\060\017\006\003\125\035\023\001\001 +\377\004\005\060\003\001\001\377\060\035\006\003\125\035\016\004 +\026\004\024\332\273\056\252\260\014\270\210\046\121\164\134\155 +\003\323\300\330\217\172\326\060\037\006\003\125\035\043\004\030 +\060\026\200\024\332\273\056\252\260\014\270\210\046\121\164\134 +\155\003\323\300\330\217\172\326\060\016\006\003\125\035\017\001 +\001\377\004\004\003\002\001\206\060\015\006\011\052\206\110\206 +\367\015\001\001\005\005\000\003\202\002\001\000\061\170\346\307 +\265\337\270\224\100\311\161\304\250\065\354\106\035\302\205\363 +\050\130\206\260\013\374\216\262\071\217\104\125\253\144\204\134 +\151\251\320\232\070\074\372\345\037\065\345\104\343\200\171\224 +\150\244\273\304\237\075\341\064\315\060\106\213\124\053\225\245 +\357\367\077\231\204\375\065\346\317\061\306\334\152\277\247\327 +\043\010\341\230\136\303\132\010\166\251\246\257\167\057\267\140 +\275\104\106\152\357\227\377\163\225\301\216\350\223\373\375\061 +\267\354\127\021\021\105\233\060\361\032\210\071\301\117\074\247 +\000\325\307\374\253\155\200\042\160\245\014\340\135\004\051\002 +\373\313\240\221\321\174\326\303\176\120\325\235\130\276\101\070 +\353\271\165\074\025\331\233\311\112\203\131\300\332\123\375\063 +\273\066\030\233\205\017\025\335\356\055\254\166\223\271\331\001 +\215\110\020\250\373\365\070\206\361\333\012\306\275\204\243\043 +\101\336\326\167\157\205\324\205\034\120\340\256\121\212\272\215 +\076\166\342\271\312\047\362\137\237\357\156\131\015\006\330\053 +\027\244\322\174\153\273\137\024\032\110\217\032\114\347\263\107 +\034\216\114\105\053\040\356\110\337\347\335\011\216\030\250\332 +\100\215\222\046\021\123\141\163\135\353\275\347\304\115\051\067 +\141\353\254\071\055\147\056\026\326\365\000\203\205\241\314\177 +\166\304\175\344\267\113\146\357\003\105\140\151\266\014\122\226 +\222\204\136\246\243\265\244\076\053\331\314\330\033\107\252\362 +\104\332\117\371\003\350\360\024\313\077\363\203\336\320\301\124 +\343\267\350\012\067\115\213\040\131\003\060\031\241\054\310\275 +\021\037\337\256\311\112\305\363\047\146\146\206\254\150\221\377 +\331\346\123\034\017\213\134\151\145\012\046\310\036\064\303\135 +\121\173\327\251\234\006\241\066\335\325\211\224\274\331\344\055 +\014\136\011\154\010\227\174\243\075\174\223\377\077\241\024\247 +\317\265\135\353\333\333\034\304\166\337\210\271\275\105\005\225 +\033\256\374\106\152\114\257\110\343\316\256\017\322\176\353\346 +\154\234\117\201\152\172\144\254\273\076\325\347\313\166\056\305 +\247\110\301\134\220\017\313\310\077\372\346\062\341\215\033\157 +\244\346\216\330\371\051\110\212\316\163\376\054 +END + +# Trust for Certificate "GeoTrust Universal CA" +CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "GeoTrust Universal CA" +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\346\041\363\065\103\171\005\232\113\150\060\235\212\057\164\042 +\025\207\354\171 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\222\145\130\213\242\032\061\162\163\150\134\264\245\172\007\110 +END +CKA_ISSUER MULTILINE_OCTAL +\060\105\061\013\060\011\006\003\125\004\006\023\002\125\123\061 +\026\060\024\006\003\125\004\012\023\015\107\145\157\124\162\165 +\163\164\040\111\156\143\056\061\036\060\034\006\003\125\004\003 +\023\025\107\145\157\124\162\165\163\164\040\125\156\151\166\145 +\162\163\141\154\040\103\101 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\001\001 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "GeoTrust Universal CA 2" +# +CKA_CLASS CK_OBJECT_CLASS CKO_CERTIFICATE +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "GeoTrust Universal CA 2" +CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509 +CKA_SUBJECT MULTILINE_OCTAL +\060\107\061\013\060\011\006\003\125\004\006\023\002\125\123\061 +\026\060\024\006\003\125\004\012\023\015\107\145\157\124\162\165 +\163\164\040\111\156\143\056\061\040\060\036\006\003\125\004\003 +\023\027\107\145\157\124\162\165\163\164\040\125\156\151\166\145 +\162\163\141\154\040\103\101\040\062 +END +CKA_ID UTF8 "0" +CKA_ISSUER MULTILINE_OCTAL +\060\107\061\013\060\011\006\003\125\004\006\023\002\125\123\061 +\026\060\024\006\003\125\004\012\023\015\107\145\157\124\162\165 +\163\164\040\111\156\143\056\061\040\060\036\006\003\125\004\003 +\023\027\107\145\157\124\162\165\163\164\040\125\156\151\166\145 +\162\163\141\154\040\103\101\040\062 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\001\001 +END +CKA_VALUE MULTILINE_OCTAL +\060\202\005\154\060\202\003\124\240\003\002\001\002\002\001\001 +\060\015\006\011\052\206\110\206\367\015\001\001\005\005\000\060 +\107\061\013\060\011\006\003\125\004\006\023\002\125\123\061\026 +\060\024\006\003\125\004\012\023\015\107\145\157\124\162\165\163 +\164\040\111\156\143\056\061\040\060\036\006\003\125\004\003\023 +\027\107\145\157\124\162\165\163\164\040\125\156\151\166\145\162 +\163\141\154\040\103\101\040\062\060\036\027\015\060\064\060\063 +\060\064\060\065\060\060\060\060\132\027\015\062\071\060\063\060 +\064\060\065\060\060\060\060\132\060\107\061\013\060\011\006\003 +\125\004\006\023\002\125\123\061\026\060\024\006\003\125\004\012 +\023\015\107\145\157\124\162\165\163\164\040\111\156\143\056\061 +\040\060\036\006\003\125\004\003\023\027\107\145\157\124\162\165 +\163\164\040\125\156\151\166\145\162\163\141\154\040\103\101\040 +\062\060\202\002\042\060\015\006\011\052\206\110\206\367\015\001 +\001\001\005\000\003\202\002\017\000\060\202\002\012\002\202\002 +\001\000\263\124\122\301\311\076\362\331\334\261\123\032\131\051 +\347\261\303\105\050\345\327\321\355\305\305\113\241\252\164\173 +\127\257\112\046\374\330\365\136\247\156\031\333\164\014\117\065 +\133\062\013\001\343\333\353\172\167\065\352\252\132\340\326\350 +\241\127\224\360\220\243\164\126\224\104\060\003\036\134\116\053 +\205\046\164\202\172\014\166\240\157\115\316\101\055\240\025\006 +\024\137\267\102\315\173\217\130\141\064\334\052\010\371\056\303 +\001\246\042\104\034\114\007\202\346\133\316\320\112\174\004\323 +\031\163\047\360\252\230\177\056\257\116\353\207\036\044\167\152 +\135\266\350\133\105\272\334\303\241\005\157\126\216\217\020\046 +\245\111\303\056\327\101\207\042\340\117\206\312\140\265\352\241 +\143\300\001\227\020\171\275\000\074\022\155\053\025\261\254\113 +\261\356\030\271\116\226\334\334\166\377\073\276\317\137\003\300 +\374\073\350\276\106\033\377\332\100\302\122\367\376\343\072\367 +\152\167\065\320\332\215\353\136\030\152\061\307\036\272\074\033 +\050\326\153\124\306\252\133\327\242\054\033\031\314\242\002\366 +\233\131\275\067\153\206\265\155\202\272\330\352\311\126\274\251 +\066\130\375\076\031\363\355\014\046\251\223\070\370\117\301\135 +\042\006\320\227\352\341\255\306\125\340\201\053\050\203\072\372 +\364\173\041\121\000\276\122\070\316\315\146\171\250\364\201\126 +\342\320\203\011\107\121\133\120\152\317\333\110\032\135\076\367 +\313\366\145\367\154\361\225\370\002\073\062\126\202\071\172\133 +\275\057\211\033\277\241\264\350\377\177\215\214\337\003\361\140 +\116\130\021\114\353\243\077\020\053\203\232\001\163\331\224\155 +\204\000\047\146\254\360\160\100\011\102\222\255\117\223\015\141 +\011\121\044\330\222\325\013\224\141\262\207\262\355\377\232\065 +\377\205\124\312\355\104\103\254\033\074\026\153\110\112\012\034 +\100\210\037\222\302\013\000\005\377\362\310\002\112\244\252\251 +\314\231\226\234\057\130\340\175\341\276\273\007\334\137\004\162 +\134\061\064\303\354\137\055\340\075\144\220\042\346\321\354\270 +\056\335\131\256\331\241\067\277\124\065\334\163\062\117\214\004 +\036\063\262\311\106\361\330\134\310\125\120\311\150\275\250\272 +\066\011\002\003\001\000\001\243\143\060\141\060\017\006\003\125 +\035\023\001\001\377\004\005\060\003\001\001\377\060\035\006\003 +\125\035\016\004\026\004\024\166\363\125\341\372\244\066\373\360 +\237\134\142\161\355\074\364\107\070\020\053\060\037\006\003\125 +\035\043\004\030\060\026\200\024\166\363\125\341\372\244\066\373 +\360\237\134\142\161\355\074\364\107\070\020\053\060\016\006\003 +\125\035\017\001\001\377\004\004\003\002\001\206\060\015\006\011 +\052\206\110\206\367\015\001\001\005\005\000\003\202\002\001\000 +\146\301\306\043\363\331\340\056\156\137\350\317\256\260\260\045 +\115\053\370\073\130\233\100\044\067\132\313\253\026\111\377\263 +\165\171\063\241\057\155\160\027\064\221\376\147\176\217\354\233 +\345\136\202\251\125\037\057\334\324\121\007\022\376\254\026\076 +\054\065\306\143\374\334\020\353\015\243\252\320\174\314\321\320 +\057\121\056\304\024\132\336\350\031\341\076\306\314\244\051\347 +\056\204\252\006\060\170\166\124\163\050\230\131\070\340\000\015 +\142\323\102\175\041\237\256\075\072\214\325\372\167\015\030\053 +\026\016\137\066\341\374\052\265\060\044\317\340\143\014\173\130 +\032\376\231\272\102\022\261\221\364\174\150\342\310\350\257\054 +\352\311\176\256\273\052\075\015\025\334\064\225\266\030\164\250 +\152\017\307\264\364\023\304\344\133\355\012\322\244\227\114\052 +\355\057\154\022\211\075\361\047\160\252\152\003\122\041\237\100 +\250\147\120\362\363\132\037\337\337\043\366\334\170\116\346\230 +\117\125\072\123\343\357\362\364\237\307\174\330\130\257\051\042 +\227\270\340\275\221\056\260\166\354\127\021\317\357\051\104\363 +\351\205\172\140\143\344\135\063\211\027\331\061\252\332\326\363 +\030\065\162\317\207\053\057\143\043\204\135\204\214\077\127\240 +\210\374\231\221\050\046\151\231\324\217\227\104\276\216\325\110 +\261\244\050\051\361\025\264\341\345\236\335\370\217\246\157\046 +\327\011\074\072\034\021\016\246\154\067\367\255\104\207\054\050 +\307\330\164\202\263\320\157\112\127\273\065\051\047\240\213\350 +\041\247\207\144\066\135\314\330\026\254\307\262\047\100\222\125 +\070\050\215\121\156\335\024\147\123\154\161\134\046\204\115\165 +\132\266\176\140\126\251\115\255\373\233\036\227\363\015\331\322 +\227\124\167\332\075\022\267\340\036\357\010\006\254\371\205\207 +\351\242\334\257\176\030\022\203\375\126\027\101\056\325\051\202 +\175\231\364\061\366\161\251\317\054\001\047\245\005\271\252\262 +\110\116\052\357\237\223\122\121\225\074\122\163\216\126\114\027 +\100\300\011\050\344\213\152\110\123\333\354\315\125\125\361\306 +\370\351\242\054\114\246\321\046\137\176\257\132\114\332\037\246 +\362\034\054\176\256\002\026\322\126\320\057\127\123\107\350\222 +END + +# Trust for Certificate "GeoTrust Universal CA 2" +CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "GeoTrust Universal CA 2" +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\067\232\031\173\101\205\105\065\014\246\003\151\363\074\056\257 +\107\117\040\171 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\064\374\270\320\066\333\236\024\263\302\362\333\217\344\224\307 +END +CKA_ISSUER MULTILINE_OCTAL +\060\107\061\013\060\011\006\003\125\004\006\023\002\125\123\061 +\026\060\024\006\003\125\004\012\023\015\107\145\157\124\162\165 +\163\164\040\111\156\143\056\061\040\060\036\006\003\125\004\003 +\023\027\107\145\157\124\162\165\163\164\040\125\156\151\166\145 +\162\163\141\154\040\103\101\040\062 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\001\001 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "UTN-USER First-Network Applications" +# +CKA_CLASS CK_OBJECT_CLASS CKO_CERTIFICATE +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "UTN-USER First-Network Applications" +CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509 +CKA_SUBJECT MULTILINE_OCTAL +\060\201\243\061\013\060\011\006\003\125\004\006\023\002\125\123 +\061\013\060\011\006\003\125\004\010\023\002\125\124\061\027\060 +\025\006\003\125\004\007\023\016\123\141\154\164\040\114\141\153 +\145\040\103\151\164\171\061\036\060\034\006\003\125\004\012\023 +\025\124\150\145\040\125\123\105\122\124\122\125\123\124\040\116 +\145\164\167\157\162\153\061\041\060\037\006\003\125\004\013\023 +\030\150\164\164\160\072\057\057\167\167\167\056\165\163\145\162 +\164\162\165\163\164\056\143\157\155\061\053\060\051\006\003\125 +\004\003\023\042\125\124\116\055\125\123\105\122\106\151\162\163 +\164\055\116\145\164\167\157\162\153\040\101\160\160\154\151\143 +\141\164\151\157\156\163 +END +CKA_ID UTF8 "0" +CKA_ISSUER MULTILINE_OCTAL +\060\201\243\061\013\060\011\006\003\125\004\006\023\002\125\123 +\061\013\060\011\006\003\125\004\010\023\002\125\124\061\027\060 +\025\006\003\125\004\007\023\016\123\141\154\164\040\114\141\153 +\145\040\103\151\164\171\061\036\060\034\006\003\125\004\012\023 +\025\124\150\145\040\125\123\105\122\124\122\125\123\124\040\116 +\145\164\167\157\162\153\061\041\060\037\006\003\125\004\013\023 +\030\150\164\164\160\072\057\057\167\167\167\056\165\163\145\162 +\164\162\165\163\164\056\143\157\155\061\053\060\051\006\003\125 +\004\003\023\042\125\124\116\055\125\123\105\122\106\151\162\163 +\164\055\116\145\164\167\157\162\153\040\101\160\160\154\151\143 +\141\164\151\157\156\163 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\020\104\276\014\213\120\000\044\264\021\323\066\060\113\300 +\063\167 +END +CKA_VALUE MULTILINE_OCTAL +\060\202\004\144\060\202\003\114\240\003\002\001\002\002\020\104 +\276\014\213\120\000\044\264\021\323\066\060\113\300\063\167\060 +\015\006\011\052\206\110\206\367\015\001\001\005\005\000\060\201 +\243\061\013\060\011\006\003\125\004\006\023\002\125\123\061\013 +\060\011\006\003\125\004\010\023\002\125\124\061\027\060\025\006 +\003\125\004\007\023\016\123\141\154\164\040\114\141\153\145\040 +\103\151\164\171\061\036\060\034\006\003\125\004\012\023\025\124 +\150\145\040\125\123\105\122\124\122\125\123\124\040\116\145\164 +\167\157\162\153\061\041\060\037\006\003\125\004\013\023\030\150 +\164\164\160\072\057\057\167\167\167\056\165\163\145\162\164\162 +\165\163\164\056\143\157\155\061\053\060\051\006\003\125\004\003 +\023\042\125\124\116\055\125\123\105\122\106\151\162\163\164\055 +\116\145\164\167\157\162\153\040\101\160\160\154\151\143\141\164 +\151\157\156\163\060\036\027\015\071\071\060\067\060\071\061\070 +\064\070\063\071\132\027\015\061\071\060\067\060\071\061\070\065 +\067\064\071\132\060\201\243\061\013\060\011\006\003\125\004\006 +\023\002\125\123\061\013\060\011\006\003\125\004\010\023\002\125 +\124\061\027\060\025\006\003\125\004\007\023\016\123\141\154\164 +\040\114\141\153\145\040\103\151\164\171\061\036\060\034\006\003 +\125\004\012\023\025\124\150\145\040\125\123\105\122\124\122\125 +\123\124\040\116\145\164\167\157\162\153\061\041\060\037\006\003 +\125\004\013\023\030\150\164\164\160\072\057\057\167\167\167\056 +\165\163\145\162\164\162\165\163\164\056\143\157\155\061\053\060 +\051\006\003\125\004\003\023\042\125\124\116\055\125\123\105\122 +\106\151\162\163\164\055\116\145\164\167\157\162\153\040\101\160 +\160\154\151\143\141\164\151\157\156\163\060\202\001\042\060\015 +\006\011\052\206\110\206\367\015\001\001\001\005\000\003\202\001 +\017\000\060\202\001\012\002\202\001\001\000\263\373\221\241\344 +\066\125\205\254\006\064\133\240\232\130\262\370\265\017\005\167 +\203\256\062\261\166\222\150\354\043\112\311\166\077\343\234\266 +\067\171\003\271\253\151\215\007\045\266\031\147\344\260\033\030 +\163\141\112\350\176\315\323\057\144\343\246\174\014\372\027\200 +\243\015\107\211\117\121\161\057\356\374\077\371\270\026\200\207 +\211\223\045\040\232\103\202\151\044\166\050\131\065\241\035\300 +\177\203\006\144\026\040\054\323\111\244\205\264\300\141\177\121 +\010\370\150\025\221\200\313\245\325\356\073\072\364\204\004\136 +\140\131\247\214\064\162\356\270\170\305\321\073\022\112\157\176 +\145\047\271\244\125\305\271\157\103\244\305\035\054\231\300\122 +\244\170\114\025\263\100\230\010\153\103\306\001\260\172\173\365 +\153\034\042\077\313\357\377\250\320\072\113\166\025\236\322\321 +\306\056\343\333\127\033\062\242\270\157\350\206\246\077\160\253 +\345\160\222\253\104\036\100\120\373\234\243\142\344\154\156\240 +\310\336\342\200\102\372\351\057\350\316\062\004\217\174\215\267 +\034\243\065\074\025\335\236\303\256\227\245\002\003\001\000\001 +\243\201\221\060\201\216\060\013\006\003\125\035\017\004\004\003 +\002\001\306\060\017\006\003\125\035\023\001\001\377\004\005\060 +\003\001\001\377\060\035\006\003\125\035\016\004\026\004\024\372 +\206\311\333\340\272\351\170\365\113\250\326\025\337\360\323\341 +\152\024\074\060\117\006\003\125\035\037\004\110\060\106\060\104 +\240\102\240\100\206\076\150\164\164\160\072\057\057\143\162\154 +\056\165\163\145\162\164\162\165\163\164\056\143\157\155\057\125 +\124\116\055\125\123\105\122\106\151\162\163\164\055\116\145\164 +\167\157\162\153\101\160\160\154\151\143\141\164\151\157\156\163 +\056\143\162\154\060\015\006\011\052\206\110\206\367\015\001\001 +\005\005\000\003\202\001\001\000\244\363\045\314\321\324\221\203 +\042\320\314\062\253\233\226\116\064\221\124\040\045\064\141\137 +\052\002\025\341\213\252\377\175\144\121\317\012\377\274\175\330 +\041\152\170\313\057\121\157\370\102\035\063\275\353\265\173\224 +\303\303\251\240\055\337\321\051\037\035\376\217\077\273\250\105 +\052\177\321\156\125\044\342\273\002\373\061\077\276\350\274\354 +\100\053\370\001\324\126\070\344\312\104\202\265\141\040\041\147 +\145\366\360\013\347\064\370\245\302\234\243\134\100\037\205\223 +\225\006\336\117\324\047\251\266\245\374\026\315\163\061\077\270 +\145\047\317\324\123\032\360\254\156\237\117\005\014\003\201\247 +\204\051\304\132\275\144\127\162\255\073\317\067\030\246\230\306 +\255\006\264\334\010\243\004\325\051\244\226\232\022\147\112\214 +\140\105\235\361\043\232\260\000\234\150\265\230\120\323\357\216 +\056\222\145\261\110\076\041\276\025\060\052\015\265\014\243\153 +\077\256\177\127\365\037\226\174\337\157\335\202\060\054\145\033 +\100\112\315\150\271\162\354\161\166\354\124\216\037\205\014\001 +\152\372\246\070\254\037\304\204 +END + +# Trust for Certificate "UTN-USER First-Network Applications" +CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "UTN-USER First-Network Applications" +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\135\230\234\333\025\226\021\066\121\145\144\033\126\017\333\352 +\052\302\076\361 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\277\140\131\243\133\272\366\247\166\102\332\157\032\173\120\317 +END +CKA_ISSUER MULTILINE_OCTAL +\060\201\243\061\013\060\011\006\003\125\004\006\023\002\125\123 +\061\013\060\011\006\003\125\004\010\023\002\125\124\061\027\060 +\025\006\003\125\004\007\023\016\123\141\154\164\040\114\141\153 +\145\040\103\151\164\171\061\036\060\034\006\003\125\004\012\023 +\025\124\150\145\040\125\123\105\122\124\122\125\123\124\040\116 +\145\164\167\157\162\153\061\041\060\037\006\003\125\004\013\023 +\030\150\164\164\160\072\057\057\167\167\167\056\165\163\145\162 +\164\162\165\163\164\056\143\157\155\061\053\060\051\006\003\125 +\004\003\023\042\125\124\116\055\125\123\105\122\106\151\162\163 +\164\055\116\145\164\167\157\162\153\040\101\160\160\154\151\143 +\141\164\151\157\156\163 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\020\104\276\014\213\120\000\044\264\021\323\066\060\113\300 +\063\167 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_TRUST_UNKNOWN +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_TRUST_UNKNOWN +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_TRUST_UNKNOWN +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "America Online Root Certification Authority 1" +# +CKA_CLASS CK_OBJECT_CLASS CKO_CERTIFICATE +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "America Online Root Certification Authority 1" +CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509 +CKA_SUBJECT MULTILINE_OCTAL +\060\143\061\013\060\011\006\003\125\004\006\023\002\125\123\061 +\034\060\032\006\003\125\004\012\023\023\101\155\145\162\151\143 +\141\040\117\156\154\151\156\145\040\111\156\143\056\061\066\060 +\064\006\003\125\004\003\023\055\101\155\145\162\151\143\141\040 +\117\156\154\151\156\145\040\122\157\157\164\040\103\145\162\164 +\151\146\151\143\141\164\151\157\156\040\101\165\164\150\157\162 +\151\164\171\040\061 +END +CKA_ID UTF8 "0" +CKA_ISSUER MULTILINE_OCTAL +\060\143\061\013\060\011\006\003\125\004\006\023\002\125\123\061 +\034\060\032\006\003\125\004\012\023\023\101\155\145\162\151\143 +\141\040\117\156\154\151\156\145\040\111\156\143\056\061\066\060 +\064\006\003\125\004\003\023\055\101\155\145\162\151\143\141\040 +\117\156\154\151\156\145\040\122\157\157\164\040\103\145\162\164 +\151\146\151\143\141\164\151\157\156\040\101\165\164\150\157\162 +\151\164\171\040\061 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\001\001 +END +CKA_VALUE MULTILINE_OCTAL +\060\202\003\244\060\202\002\214\240\003\002\001\002\002\001\001 +\060\015\006\011\052\206\110\206\367\015\001\001\005\005\000\060 +\143\061\013\060\011\006\003\125\004\006\023\002\125\123\061\034 +\060\032\006\003\125\004\012\023\023\101\155\145\162\151\143\141 +\040\117\156\154\151\156\145\040\111\156\143\056\061\066\060\064 +\006\003\125\004\003\023\055\101\155\145\162\151\143\141\040\117 +\156\154\151\156\145\040\122\157\157\164\040\103\145\162\164\151 +\146\151\143\141\164\151\157\156\040\101\165\164\150\157\162\151 +\164\171\040\061\060\036\027\015\060\062\060\065\062\070\060\066 +\060\060\060\060\132\027\015\063\067\061\061\061\071\062\060\064 +\063\060\060\132\060\143\061\013\060\011\006\003\125\004\006\023 +\002\125\123\061\034\060\032\006\003\125\004\012\023\023\101\155 +\145\162\151\143\141\040\117\156\154\151\156\145\040\111\156\143 +\056\061\066\060\064\006\003\125\004\003\023\055\101\155\145\162 +\151\143\141\040\117\156\154\151\156\145\040\122\157\157\164\040 +\103\145\162\164\151\146\151\143\141\164\151\157\156\040\101\165 +\164\150\157\162\151\164\171\040\061\060\202\001\042\060\015\006 +\011\052\206\110\206\367\015\001\001\001\005\000\003\202\001\017 +\000\060\202\001\012\002\202\001\001\000\250\057\350\244\151\006 +\003\107\303\351\052\230\377\031\242\160\232\306\120\262\176\245 +\337\150\115\033\174\017\266\227\150\175\055\246\213\227\351\144 +\206\311\243\357\240\206\277\140\145\234\113\124\210\302\110\305 +\112\071\277\024\343\131\125\345\031\264\164\310\264\005\071\134 +\026\245\342\225\005\340\022\256\131\213\242\063\150\130\034\246 +\324\025\267\330\237\327\334\161\253\176\232\277\233\216\063\017 +\042\375\037\056\347\007\066\357\142\071\305\335\313\272\045\024 +\043\336\014\306\075\074\316\202\010\346\146\076\332\121\073\026 +\072\243\005\177\240\334\207\325\234\374\162\251\240\175\170\344 +\267\061\125\036\145\273\324\141\260\041\140\355\020\062\162\305 +\222\045\036\370\220\112\030\170\107\337\176\060\067\076\120\033 +\333\034\323\153\232\206\123\007\260\357\254\006\170\370\204\231 +\376\041\215\114\200\266\014\202\366\146\160\171\032\323\117\243 +\317\361\317\106\260\113\017\076\335\210\142\270\214\251\011\050 +\073\172\307\227\341\036\345\364\237\300\300\256\044\240\310\241 +\331\017\326\173\046\202\151\062\075\247\002\003\001\000\001\243 +\143\060\141\060\017\006\003\125\035\023\001\001\377\004\005\060 +\003\001\001\377\060\035\006\003\125\035\016\004\026\004\024\000 +\255\331\243\366\171\366\156\164\251\177\063\075\201\027\327\114 +\317\063\336\060\037\006\003\125\035\043\004\030\060\026\200\024 +\000\255\331\243\366\171\366\156\164\251\177\063\075\201\027\327 +\114\317\063\336\060\016\006\003\125\035\017\001\001\377\004\004 +\003\002\001\206\060\015\006\011\052\206\110\206\367\015\001\001 +\005\005\000\003\202\001\001\000\174\212\321\037\030\067\202\340 +\270\260\243\355\126\225\310\142\141\234\005\242\315\302\142\046 +\141\315\020\026\327\314\264\145\064\320\021\212\255\250\251\005 +\146\357\164\363\155\137\235\231\257\366\213\373\353\122\262\005 +\230\242\157\052\305\124\275\045\275\137\256\310\206\352\106\054 +\301\263\275\301\351\111\160\030\026\227\010\023\214\040\340\033 +\056\072\107\313\036\344\000\060\225\133\364\105\243\300\032\260 +\001\116\253\275\300\043\156\143\077\200\112\305\007\355\334\342 +\157\307\301\142\361\343\162\326\004\310\164\147\013\372\210\253 +\241\001\310\157\360\024\257\322\231\315\121\223\176\355\056\070 +\307\275\316\106\120\075\162\343\171\045\235\233\210\053\020\040 +\335\245\270\062\237\215\340\051\337\041\164\206\202\333\057\202 +\060\306\307\065\206\263\371\226\137\106\333\014\105\375\363\120 +\303\157\306\303\110\255\106\246\341\047\107\012\035\016\233\266 +\302\167\177\143\362\340\175\032\276\374\340\337\327\307\247\154 +\260\371\256\272\074\375\164\264\021\350\130\015\200\274\323\250 +\200\072\231\355\165\314\106\173 +END + +# Trust for Certificate "America Online Root Certification Authority 1" +CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "America Online Root Certification Authority 1" +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\071\041\301\025\301\135\016\312\134\313\133\304\360\175\041\330 +\005\013\126\152 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\024\361\010\255\235\372\144\342\211\347\034\317\250\255\175\136 +END +CKA_ISSUER MULTILINE_OCTAL +\060\143\061\013\060\011\006\003\125\004\006\023\002\125\123\061 +\034\060\032\006\003\125\004\012\023\023\101\155\145\162\151\143 +\141\040\117\156\154\151\156\145\040\111\156\143\056\061\066\060 +\064\006\003\125\004\003\023\055\101\155\145\162\151\143\141\040 +\117\156\154\151\156\145\040\122\157\157\164\040\103\145\162\164 +\151\146\151\143\141\164\151\157\156\040\101\165\164\150\157\162 +\151\164\171\040\061 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\001\001 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "America Online Root Certification Authority 2" +# +CKA_CLASS CK_OBJECT_CLASS CKO_CERTIFICATE +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "America Online Root Certification Authority 2" +CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509 +CKA_SUBJECT MULTILINE_OCTAL +\060\143\061\013\060\011\006\003\125\004\006\023\002\125\123\061 +\034\060\032\006\003\125\004\012\023\023\101\155\145\162\151\143 +\141\040\117\156\154\151\156\145\040\111\156\143\056\061\066\060 +\064\006\003\125\004\003\023\055\101\155\145\162\151\143\141\040 +\117\156\154\151\156\145\040\122\157\157\164\040\103\145\162\164 +\151\146\151\143\141\164\151\157\156\040\101\165\164\150\157\162 +\151\164\171\040\062 +END +CKA_ID UTF8 "0" +CKA_ISSUER MULTILINE_OCTAL +\060\143\061\013\060\011\006\003\125\004\006\023\002\125\123\061 +\034\060\032\006\003\125\004\012\023\023\101\155\145\162\151\143 +\141\040\117\156\154\151\156\145\040\111\156\143\056\061\066\060 +\064\006\003\125\004\003\023\055\101\155\145\162\151\143\141\040 +\117\156\154\151\156\145\040\122\157\157\164\040\103\145\162\164 +\151\146\151\143\141\164\151\157\156\040\101\165\164\150\157\162 +\151\164\171\040\062 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\001\001 +END +CKA_VALUE MULTILINE_OCTAL +\060\202\005\244\060\202\003\214\240\003\002\001\002\002\001\001 +\060\015\006\011\052\206\110\206\367\015\001\001\005\005\000\060 +\143\061\013\060\011\006\003\125\004\006\023\002\125\123\061\034 +\060\032\006\003\125\004\012\023\023\101\155\145\162\151\143\141 +\040\117\156\154\151\156\145\040\111\156\143\056\061\066\060\064 +\006\003\125\004\003\023\055\101\155\145\162\151\143\141\040\117 +\156\154\151\156\145\040\122\157\157\164\040\103\145\162\164\151 +\146\151\143\141\164\151\157\156\040\101\165\164\150\157\162\151 +\164\171\040\062\060\036\027\015\060\062\060\065\062\070\060\066 +\060\060\060\060\132\027\015\063\067\060\071\062\071\061\064\060 +\070\060\060\132\060\143\061\013\060\011\006\003\125\004\006\023 +\002\125\123\061\034\060\032\006\003\125\004\012\023\023\101\155 +\145\162\151\143\141\040\117\156\154\151\156\145\040\111\156\143 +\056\061\066\060\064\006\003\125\004\003\023\055\101\155\145\162 +\151\143\141\040\117\156\154\151\156\145\040\122\157\157\164\040 +\103\145\162\164\151\146\151\143\141\164\151\157\156\040\101\165 +\164\150\157\162\151\164\171\040\062\060\202\002\042\060\015\006 +\011\052\206\110\206\367\015\001\001\001\005\000\003\202\002\017 +\000\060\202\002\012\002\202\002\001\000\314\101\105\035\351\075 +\115\020\366\214\261\101\311\340\136\313\015\267\277\107\163\323 +\360\125\115\335\306\014\372\261\146\005\152\315\170\264\334\002 +\333\116\201\363\327\247\174\161\274\165\143\240\135\343\007\014 +\110\354\045\304\003\040\364\377\016\073\022\377\233\215\341\306 +\325\033\264\155\042\343\261\333\177\041\144\257\206\274\127\042 +\052\326\107\201\127\104\202\126\123\275\206\024\001\013\374\177 +\164\244\132\256\361\272\021\265\233\130\132\200\264\067\170\011 +\063\174\062\107\003\134\304\245\203\110\364\127\126\156\201\066 +\047\030\117\354\233\050\302\324\264\327\174\014\076\014\053\337 +\312\004\327\306\216\352\130\116\250\244\245\030\034\154\105\230 +\243\101\321\055\322\307\155\215\031\361\255\171\267\201\077\275 +\006\202\047\055\020\130\005\265\170\005\271\057\333\014\153\220 +\220\176\024\131\070\273\224\044\023\345\321\235\024\337\323\202 +\115\106\360\200\071\122\062\017\343\204\262\172\103\362\136\336 +\137\077\035\335\343\262\033\240\241\052\043\003\156\056\001\025 +\207\134\246\165\165\307\227\141\276\336\206\334\324\110\333\275 +\052\277\112\125\332\350\175\120\373\264\200\027\270\224\277\001 +\075\352\332\272\174\340\130\147\027\271\130\340\210\206\106\147 +\154\235\020\107\130\062\320\065\174\171\052\220\242\132\020\021 +\043\065\255\057\314\344\112\133\247\310\047\362\203\336\136\273 +\136\167\347\350\245\156\143\302\015\135\141\320\214\322\154\132 +\041\016\312\050\243\316\052\351\225\307\110\317\226\157\035\222 +\045\310\306\306\301\301\014\005\254\046\304\322\165\322\341\052 +\147\300\075\133\245\232\353\317\173\032\250\235\024\105\345\017 +\240\232\145\336\057\050\275\316\157\224\146\203\110\051\330\352 +\145\214\257\223\331\144\237\125\127\046\277\157\313\067\061\231 +\243\140\273\034\255\211\064\062\142\270\103\041\006\162\014\241 +\134\155\106\305\372\051\317\060\336\211\334\161\133\335\266\067 +\076\337\120\365\270\007\045\046\345\274\265\376\074\002\263\267 +\370\276\103\301\207\021\224\236\043\154\027\212\270\212\047\014 +\124\107\360\251\263\300\200\214\240\047\353\035\031\343\007\216 +\167\160\312\053\364\175\166\340\170\147\002\003\001\000\001\243 +\143\060\141\060\017\006\003\125\035\023\001\001\377\004\005\060 +\003\001\001\377\060\035\006\003\125\035\016\004\026\004\024\115 +\105\301\150\070\273\163\251\151\241\040\347\355\365\042\241\043 +\024\327\236\060\037\006\003\125\035\043\004\030\060\026\200\024 +\115\105\301\150\070\273\163\251\151\241\040\347\355\365\042\241 +\043\024\327\236\060\016\006\003\125\035\017\001\001\377\004\004 +\003\002\001\206\060\015\006\011\052\206\110\206\367\015\001\001 +\005\005\000\003\202\002\001\000\147\153\006\271\137\105\073\052 +\113\063\263\346\033\153\131\116\042\314\271\267\244\045\311\247 +\304\360\124\226\013\144\363\261\130\117\136\121\374\262\227\173 +\047\145\302\345\312\347\015\014\045\173\142\343\372\237\264\207 +\267\105\106\257\203\245\227\110\214\245\275\361\026\053\233\166 +\054\172\065\140\154\021\200\227\314\251\222\122\346\053\346\151 +\355\251\370\066\055\054\167\277\141\110\321\143\013\271\133\122 +\355\030\260\103\102\042\246\261\167\256\336\151\305\315\307\034 +\241\261\245\034\020\373\030\276\032\160\335\301\222\113\276\051 +\132\235\077\065\276\345\175\121\370\125\340\045\165\043\207\036 +\134\334\272\235\260\254\263\151\333\027\203\311\367\336\014\274 +\010\334\221\236\250\320\327\025\067\163\245\065\270\374\176\305 +\104\100\006\303\353\370\042\200\134\107\316\002\343\021\237\104 +\377\375\232\062\314\175\144\121\016\353\127\046\166\072\343\036 +\042\074\302\246\066\335\031\357\247\374\022\363\046\300\131\061 +\205\114\234\330\317\337\244\314\314\051\223\377\224\155\166\134 +\023\010\227\362\355\245\013\115\335\350\311\150\016\146\323\000 +\016\063\022\133\274\225\345\062\220\250\263\306\154\203\255\167 +\356\213\176\176\261\251\253\323\341\361\266\300\261\352\210\300 +\347\323\220\351\050\222\224\173\150\173\227\052\012\147\055\205 +\002\070\020\344\003\141\324\332\045\066\307\010\130\055\241\247 +\121\257\060\012\111\365\246\151\207\007\055\104\106\166\216\052 +\345\232\073\327\030\242\374\234\070\020\314\306\073\322\265\027 +\072\157\375\256\045\275\365\162\131\144\261\164\052\070\137\030 +\114\337\317\161\004\132\066\324\277\057\231\234\350\331\272\261 +\225\346\002\113\041\241\133\325\301\117\217\256\151\155\123\333 +\001\223\265\134\036\030\335\144\132\312\030\050\076\143\004\021 +\375\034\215\000\017\270\067\337\147\212\235\146\251\002\152\221 +\377\023\312\057\135\203\274\207\223\154\334\044\121\026\004\045 +\146\372\263\331\302\272\051\276\232\110\070\202\231\364\277\073 +\112\061\031\371\277\216\041\063\024\312\117\124\137\373\316\373 +\217\161\177\375\136\031\240\017\113\221\270\304\124\274\006\260 +\105\217\046\221\242\216\376\251 +END + +# Trust for Certificate "America Online Root Certification Authority 2" +CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "America Online Root Certification Authority 2" +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\205\265\377\147\233\014\171\226\037\310\156\104\042\000\106\023 +\333\027\222\204 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\326\355\074\312\342\146\017\257\020\103\015\167\233\004\011\277 +END +CKA_ISSUER MULTILINE_OCTAL +\060\143\061\013\060\011\006\003\125\004\006\023\002\125\123\061 +\034\060\032\006\003\125\004\012\023\023\101\155\145\162\151\143 +\141\040\117\156\154\151\156\145\040\111\156\143\056\061\066\060 +\064\006\003\125\004\003\023\055\101\155\145\162\151\143\141\040 +\117\156\154\151\156\145\040\122\157\157\164\040\103\145\162\164 +\151\146\151\143\141\164\151\157\156\040\101\165\164\150\157\162 +\151\164\171\040\062 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\001\001 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "Visa eCommerce Root" +# +CKA_CLASS CK_OBJECT_CLASS CKO_CERTIFICATE +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "Visa eCommerce Root" +CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509 +CKA_SUBJECT MULTILINE_OCTAL +\060\153\061\013\060\011\006\003\125\004\006\023\002\125\123\061 +\015\060\013\006\003\125\004\012\023\004\126\111\123\101\061\057 +\060\055\006\003\125\004\013\023\046\126\151\163\141\040\111\156 +\164\145\162\156\141\164\151\157\156\141\154\040\123\145\162\166 +\151\143\145\040\101\163\163\157\143\151\141\164\151\157\156\061 +\034\060\032\006\003\125\004\003\023\023\126\151\163\141\040\145 +\103\157\155\155\145\162\143\145\040\122\157\157\164 +END +CKA_ID UTF8 "0" +CKA_ISSUER MULTILINE_OCTAL +\060\153\061\013\060\011\006\003\125\004\006\023\002\125\123\061 +\015\060\013\006\003\125\004\012\023\004\126\111\123\101\061\057 +\060\055\006\003\125\004\013\023\046\126\151\163\141\040\111\156 +\164\145\162\156\141\164\151\157\156\141\154\040\123\145\162\166 +\151\143\145\040\101\163\163\157\143\151\141\164\151\157\156\061 +\034\060\032\006\003\125\004\003\023\023\126\151\163\141\040\145 +\103\157\155\155\145\162\143\145\040\122\157\157\164 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\020\023\206\065\115\035\077\006\362\301\371\145\005\325\220 +\034\142 +END +CKA_VALUE MULTILINE_OCTAL +\060\202\003\242\060\202\002\212\240\003\002\001\002\002\020\023 +\206\065\115\035\077\006\362\301\371\145\005\325\220\034\142\060 +\015\006\011\052\206\110\206\367\015\001\001\005\005\000\060\153 +\061\013\060\011\006\003\125\004\006\023\002\125\123\061\015\060 +\013\006\003\125\004\012\023\004\126\111\123\101\061\057\060\055 +\006\003\125\004\013\023\046\126\151\163\141\040\111\156\164\145 +\162\156\141\164\151\157\156\141\154\040\123\145\162\166\151\143 +\145\040\101\163\163\157\143\151\141\164\151\157\156\061\034\060 +\032\006\003\125\004\003\023\023\126\151\163\141\040\145\103\157 +\155\155\145\162\143\145\040\122\157\157\164\060\036\027\015\060 +\062\060\066\062\066\060\062\061\070\063\066\132\027\015\062\062 +\060\066\062\064\060\060\061\066\061\062\132\060\153\061\013\060 +\011\006\003\125\004\006\023\002\125\123\061\015\060\013\006\003 +\125\004\012\023\004\126\111\123\101\061\057\060\055\006\003\125 +\004\013\023\046\126\151\163\141\040\111\156\164\145\162\156\141 +\164\151\157\156\141\154\040\123\145\162\166\151\143\145\040\101 +\163\163\157\143\151\141\164\151\157\156\061\034\060\032\006\003 +\125\004\003\023\023\126\151\163\141\040\145\103\157\155\155\145 +\162\143\145\040\122\157\157\164\060\202\001\042\060\015\006\011 +\052\206\110\206\367\015\001\001\001\005\000\003\202\001\017\000 +\060\202\001\012\002\202\001\001\000\257\127\336\126\036\156\241 +\332\140\261\224\047\313\027\333\007\077\200\205\117\310\234\266 +\320\364\157\117\317\231\330\341\333\302\110\134\072\254\071\063 +\307\037\152\213\046\075\053\065\365\110\261\221\301\002\116\004 +\226\221\173\260\063\360\261\024\116\021\157\265\100\257\033\105 +\245\112\357\176\266\254\362\240\037\130\077\022\106\140\074\215 +\241\340\175\317\127\076\063\036\373\107\361\252\025\227\007\125 +\146\245\265\055\056\330\200\131\262\247\015\267\106\354\041\143 +\377\065\253\245\002\317\052\364\114\376\173\365\224\135\204\115 +\250\362\140\217\333\016\045\074\237\163\161\317\224\337\112\352 +\333\337\162\070\214\363\226\275\361\027\274\322\272\073\105\132 +\306\247\366\306\027\213\001\235\374\031\250\052\203\026\270\072 +\110\376\116\076\240\253\006\031\351\123\363\200\023\007\355\055 +\277\077\012\074\125\040\071\054\054\000\151\164\225\112\274\040 +\262\251\171\345\030\211\221\250\334\034\115\357\273\176\067\013 +\135\376\071\245\210\122\214\000\154\354\030\174\101\275\366\213 +\165\167\272\140\235\204\347\376\055\002\003\001\000\001\243\102 +\060\100\060\017\006\003\125\035\023\001\001\377\004\005\060\003 +\001\001\377\060\016\006\003\125\035\017\001\001\377\004\004\003 +\002\001\006\060\035\006\003\125\035\016\004\026\004\024\025\070 +\203\017\077\054\077\160\063\036\315\106\376\007\214\040\340\327 +\303\267\060\015\006\011\052\206\110\206\367\015\001\001\005\005 +\000\003\202\001\001\000\137\361\101\175\174\134\010\271\053\340 +\325\222\107\372\147\134\245\023\303\003\041\233\053\114\211\106 +\317\131\115\311\376\245\100\266\143\315\335\161\050\225\147\021 +\314\044\254\323\104\154\161\256\001\040\153\003\242\217\030\267 +\051\072\175\345\026\140\123\170\074\300\257\025\203\367\217\122 +\063\044\275\144\223\227\356\213\367\333\030\250\155\161\263\367 +\054\027\320\164\045\151\367\376\153\074\224\276\115\113\101\214 +\116\342\163\320\343\220\042\163\103\315\363\357\352\163\316\105 +\212\260\246\111\377\114\175\235\161\210\304\166\035\220\133\035 +\356\375\314\367\356\375\140\245\261\172\026\161\321\026\320\174 +\022\074\154\151\227\333\256\137\071\232\160\057\005\074\031\106 +\004\231\040\066\320\140\156\141\006\273\026\102\214\160\367\060 +\373\340\333\146\243\000\001\275\346\054\332\221\137\240\106\213 +\115\152\234\075\075\335\005\106\376\166\277\240\012\074\344\000 +\346\047\267\377\204\055\336\272\042\047\226\020\161\353\042\355 +\337\337\063\234\317\343\255\256\216\324\216\346\117\121\257\026 +\222\340\134\366\007\017 +END + +# Trust for Certificate "Visa eCommerce Root" +CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "Visa eCommerce Root" +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\160\027\233\206\214\000\244\372\140\221\122\042\077\237\076\062 +\275\340\005\142 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\374\021\270\330\010\223\060\000\155\043\371\176\353\122\036\002 +END +CKA_ISSUER MULTILINE_OCTAL +\060\153\061\013\060\011\006\003\125\004\006\023\002\125\123\061 +\015\060\013\006\003\125\004\012\023\004\126\111\123\101\061\057 +\060\055\006\003\125\004\013\023\046\126\151\163\141\040\111\156 +\164\145\162\156\141\164\151\157\156\141\154\040\123\145\162\166 +\151\143\145\040\101\163\163\157\143\151\141\164\151\157\156\061 +\034\060\032\006\003\125\004\003\023\023\126\151\163\141\040\145 +\103\157\155\155\145\162\143\145\040\122\157\157\164 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\020\023\206\065\115\035\077\006\362\301\371\145\005\325\220 +\034\142 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "Certum Root CA" +# +CKA_CLASS CK_OBJECT_CLASS CKO_CERTIFICATE +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "Certum Root CA" +CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509 +CKA_SUBJECT MULTILINE_OCTAL +\060\076\061\013\060\011\006\003\125\004\006\023\002\120\114\061 +\033\060\031\006\003\125\004\012\023\022\125\156\151\172\145\164 +\157\040\123\160\056\040\172\040\157\056\157\056\061\022\060\020 +\006\003\125\004\003\023\011\103\145\162\164\165\155\040\103\101 +END +CKA_ID UTF8 "0" +CKA_ISSUER MULTILINE_OCTAL +\060\076\061\013\060\011\006\003\125\004\006\023\002\120\114\061 +\033\060\031\006\003\125\004\012\023\022\125\156\151\172\145\164 +\157\040\123\160\056\040\172\040\157\056\157\056\061\022\060\020 +\006\003\125\004\003\023\011\103\145\162\164\165\155\040\103\101 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\003\001\000\040 +END +CKA_VALUE MULTILINE_OCTAL +\060\202\003\014\060\202\001\364\240\003\002\001\002\002\003\001 +\000\040\060\015\006\011\052\206\110\206\367\015\001\001\005\005 +\000\060\076\061\013\060\011\006\003\125\004\006\023\002\120\114 +\061\033\060\031\006\003\125\004\012\023\022\125\156\151\172\145 +\164\157\040\123\160\056\040\172\040\157\056\157\056\061\022\060 +\020\006\003\125\004\003\023\011\103\145\162\164\165\155\040\103 +\101\060\036\027\015\060\062\060\066\061\061\061\060\064\066\063 +\071\132\027\015\062\067\060\066\061\061\061\060\064\066\063\071 +\132\060\076\061\013\060\011\006\003\125\004\006\023\002\120\114 +\061\033\060\031\006\003\125\004\012\023\022\125\156\151\172\145 +\164\157\040\123\160\056\040\172\040\157\056\157\056\061\022\060 +\020\006\003\125\004\003\023\011\103\145\162\164\165\155\040\103 +\101\060\202\001\042\060\015\006\011\052\206\110\206\367\015\001 +\001\001\005\000\003\202\001\017\000\060\202\001\012\002\202\001 +\001\000\316\261\301\056\323\117\174\315\045\316\030\076\117\304 +\214\157\200\152\163\310\133\121\370\233\322\334\273\000\134\261 +\240\374\165\003\356\201\360\210\356\043\122\351\346\025\063\215 +\254\055\011\305\166\371\053\071\200\211\344\227\113\220\245\250 +\170\370\163\103\173\244\141\260\330\130\314\341\154\146\176\234 +\363\011\136\125\143\204\325\250\357\363\261\056\060\150\263\304 +\074\330\254\156\215\231\132\220\116\064\334\066\232\217\201\210 +\120\267\155\226\102\011\363\327\225\203\015\101\113\260\152\153 +\370\374\017\176\142\237\147\304\355\046\137\020\046\017\010\117 +\360\244\127\050\316\217\270\355\105\366\156\356\045\135\252\156 +\071\276\344\223\057\331\107\240\162\353\372\246\133\257\312\123 +\077\342\016\306\226\126\021\156\367\351\146\251\046\330\177\225 +\123\355\012\205\210\272\117\051\245\102\214\136\266\374\205\040 +\000\252\150\013\241\032\205\001\234\304\106\143\202\210\266\042 +\261\356\376\252\106\131\176\317\065\054\325\266\332\135\367\110 +\063\024\124\266\353\331\157\316\315\210\326\253\033\332\226\073 +\035\131\002\003\001\000\001\243\023\060\021\060\017\006\003\125 +\035\023\001\001\377\004\005\060\003\001\001\377\060\015\006\011 +\052\206\110\206\367\015\001\001\005\005\000\003\202\001\001\000 +\270\215\316\357\347\024\272\317\356\260\104\222\154\264\071\076 +\242\204\156\255\270\041\167\322\324\167\202\207\346\040\101\201 +\356\342\370\021\267\143\321\027\067\276\031\166\044\034\004\032 +\114\353\075\252\147\157\055\324\315\376\145\061\160\305\033\246 +\002\012\272\140\173\155\130\302\232\111\376\143\062\013\153\343 +\072\300\254\253\073\260\350\323\011\121\214\020\203\306\064\340 +\305\053\340\032\266\140\024\047\154\062\167\214\274\262\162\230 +\317\315\314\077\271\310\044\102\024\326\127\374\346\046\103\251 +\035\345\200\220\316\003\124\050\076\367\077\323\370\115\355\152 +\012\072\223\023\233\073\024\043\023\143\234\077\321\207\047\171 +\345\114\121\343\001\255\205\135\032\073\261\325\163\020\244\323 +\362\274\156\144\365\132\126\220\250\307\016\114\164\017\056\161 +\073\367\310\107\364\151\157\025\362\021\136\203\036\234\174\122 +\256\375\002\332\022\250\131\147\030\333\274\160\335\233\261\151 +\355\200\316\211\100\110\152\016\065\312\051\146\025\041\224\054 +\350\140\052\233\205\112\100\363\153\212\044\354\006\026\054\163 +END + +# Trust for Certificate "Certum Root CA" +CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "Certum Root CA" +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\142\122\334\100\367\021\103\242\057\336\236\367\064\216\006\102 +\121\261\201\030 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\054\217\237\146\035\030\220\261\107\046\235\216\206\202\214\251 +END +CKA_ISSUER MULTILINE_OCTAL +\060\076\061\013\060\011\006\003\125\004\006\023\002\120\114\061 +\033\060\031\006\003\125\004\012\023\022\125\156\151\172\145\164 +\157\040\123\160\056\040\172\040\157\056\157\056\061\022\060\020 +\006\003\125\004\003\023\011\103\145\162\164\165\155\040\103\101 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\003\001\000\040 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "Comodo AAA Services root" +# +CKA_CLASS CK_OBJECT_CLASS CKO_CERTIFICATE +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "Comodo AAA Services root" +CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509 +CKA_SUBJECT MULTILINE_OCTAL +\060\173\061\013\060\011\006\003\125\004\006\023\002\107\102\061 +\033\060\031\006\003\125\004\010\014\022\107\162\145\141\164\145 +\162\040\115\141\156\143\150\145\163\164\145\162\061\020\060\016 +\006\003\125\004\007\014\007\123\141\154\146\157\162\144\061\032 +\060\030\006\003\125\004\012\014\021\103\157\155\157\144\157\040 +\103\101\040\114\151\155\151\164\145\144\061\041\060\037\006\003 +\125\004\003\014\030\101\101\101\040\103\145\162\164\151\146\151 +\143\141\164\145\040\123\145\162\166\151\143\145\163 +END +CKA_ID UTF8 "0" +CKA_ISSUER MULTILINE_OCTAL +\060\173\061\013\060\011\006\003\125\004\006\023\002\107\102\061 +\033\060\031\006\003\125\004\010\014\022\107\162\145\141\164\145 +\162\040\115\141\156\143\150\145\163\164\145\162\061\020\060\016 +\006\003\125\004\007\014\007\123\141\154\146\157\162\144\061\032 +\060\030\006\003\125\004\012\014\021\103\157\155\157\144\157\040 +\103\101\040\114\151\155\151\164\145\144\061\041\060\037\006\003 +\125\004\003\014\030\101\101\101\040\103\145\162\164\151\146\151 +\143\141\164\145\040\123\145\162\166\151\143\145\163 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\001\001 +END +CKA_VALUE MULTILINE_OCTAL +\060\202\004\062\060\202\003\032\240\003\002\001\002\002\001\001 +\060\015\006\011\052\206\110\206\367\015\001\001\005\005\000\060 +\173\061\013\060\011\006\003\125\004\006\023\002\107\102\061\033 +\060\031\006\003\125\004\010\014\022\107\162\145\141\164\145\162 +\040\115\141\156\143\150\145\163\164\145\162\061\020\060\016\006 +\003\125\004\007\014\007\123\141\154\146\157\162\144\061\032\060 +\030\006\003\125\004\012\014\021\103\157\155\157\144\157\040\103 +\101\040\114\151\155\151\164\145\144\061\041\060\037\006\003\125 +\004\003\014\030\101\101\101\040\103\145\162\164\151\146\151\143 +\141\164\145\040\123\145\162\166\151\143\145\163\060\036\027\015 +\060\064\060\061\060\061\060\060\060\060\060\060\132\027\015\062 +\070\061\062\063\061\062\063\065\071\065\071\132\060\173\061\013 +\060\011\006\003\125\004\006\023\002\107\102\061\033\060\031\006 +\003\125\004\010\014\022\107\162\145\141\164\145\162\040\115\141 +\156\143\150\145\163\164\145\162\061\020\060\016\006\003\125\004 +\007\014\007\123\141\154\146\157\162\144\061\032\060\030\006\003 +\125\004\012\014\021\103\157\155\157\144\157\040\103\101\040\114 +\151\155\151\164\145\144\061\041\060\037\006\003\125\004\003\014 +\030\101\101\101\040\103\145\162\164\151\146\151\143\141\164\145 +\040\123\145\162\166\151\143\145\163\060\202\001\042\060\015\006 +\011\052\206\110\206\367\015\001\001\001\005\000\003\202\001\017 +\000\060\202\001\012\002\202\001\001\000\276\100\235\364\156\341 +\352\166\207\034\115\105\104\216\276\106\310\203\006\235\301\052 +\376\030\037\216\344\002\372\363\253\135\120\212\026\061\013\232 +\006\320\305\160\042\315\111\055\124\143\314\266\156\150\106\013 +\123\352\313\114\044\300\274\162\116\352\361\025\256\364\124\232 +\022\012\303\172\262\063\140\342\332\211\125\363\042\130\363\336 +\334\317\357\203\206\242\214\224\117\237\150\362\230\220\106\204 +\047\307\166\277\343\314\065\054\213\136\007\144\145\202\300\110 +\260\250\221\371\141\237\166\040\120\250\221\307\146\265\353\170 +\142\003\126\360\212\032\023\352\061\243\036\240\231\375\070\366 +\366\047\062\130\157\007\365\153\270\373\024\053\257\267\252\314 +\326\143\137\163\214\332\005\231\250\070\250\313\027\170\066\121 +\254\351\236\364\170\072\215\317\017\331\102\342\230\014\253\057 +\237\016\001\336\357\237\231\111\361\055\337\254\164\115\033\230 +\265\107\305\345\051\321\371\220\030\307\142\234\276\203\307\046 +\173\076\212\045\307\300\335\235\346\065\150\020\040\235\217\330 +\336\322\303\204\234\015\136\350\057\311\002\003\001\000\001\243 +\201\300\060\201\275\060\035\006\003\125\035\016\004\026\004\024 +\240\021\012\043\076\226\361\007\354\342\257\051\357\202\245\177 +\320\060\244\264\060\016\006\003\125\035\017\001\001\377\004\004 +\003\002\001\006\060\017\006\003\125\035\023\001\001\377\004\005 +\060\003\001\001\377\060\173\006\003\125\035\037\004\164\060\162 +\060\070\240\066\240\064\206\062\150\164\164\160\072\057\057\143 +\162\154\056\143\157\155\157\144\157\143\141\056\143\157\155\057 +\101\101\101\103\145\162\164\151\146\151\143\141\164\145\123\145 +\162\166\151\143\145\163\056\143\162\154\060\066\240\064\240\062 +\206\060\150\164\164\160\072\057\057\143\162\154\056\143\157\155 +\157\144\157\056\156\145\164\057\101\101\101\103\145\162\164\151 +\146\151\143\141\164\145\123\145\162\166\151\143\145\163\056\143 +\162\154\060\015\006\011\052\206\110\206\367\015\001\001\005\005 +\000\003\202\001\001\000\010\126\374\002\360\233\350\377\244\372 +\326\173\306\104\200\316\117\304\305\366\000\130\314\246\266\274 +\024\111\150\004\166\350\346\356\135\354\002\017\140\326\215\120 +\030\117\046\116\001\343\346\260\245\356\277\274\164\124\101\277 +\375\374\022\270\307\117\132\364\211\140\005\177\140\267\005\112 +\363\366\361\302\277\304\271\164\206\266\055\175\153\314\322\363 +\106\335\057\306\340\152\303\303\064\003\054\175\226\335\132\302 +\016\247\012\231\301\005\213\253\014\057\363\134\072\317\154\067 +\125\011\207\336\123\100\154\130\357\374\266\253\145\156\004\366 +\033\334\074\340\132\025\306\236\331\361\131\110\060\041\145\003 +\154\354\351\041\163\354\233\003\241\340\067\255\240\025\030\217 +\372\272\002\316\247\054\251\020\023\054\324\345\010\046\253\042 +\227\140\370\220\136\164\324\242\232\123\275\362\251\150\340\242 +\156\302\327\154\261\243\017\236\277\353\150\347\126\362\256\362 +\343\053\070\072\011\201\265\153\205\327\276\055\355\077\032\267 +\262\143\342\365\142\054\202\324\152\000\101\120\361\071\203\237 +\225\351\066\226\230\156 +END + +# Trust for Certificate "Comodo AAA Services root" +CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "Comodo AAA Services root" +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\321\353\043\244\155\027\326\217\331\045\144\302\361\361\140\027 +\144\330\343\111 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\111\171\004\260\353\207\031\254\107\260\274\021\121\233\164\320 +END +CKA_ISSUER MULTILINE_OCTAL +\060\173\061\013\060\011\006\003\125\004\006\023\002\107\102\061 +\033\060\031\006\003\125\004\010\014\022\107\162\145\141\164\145 +\162\040\115\141\156\143\150\145\163\164\145\162\061\020\060\016 +\006\003\125\004\007\014\007\123\141\154\146\157\162\144\061\032 +\060\030\006\003\125\004\012\014\021\103\157\155\157\144\157\040 +\103\101\040\114\151\155\151\164\145\144\061\041\060\037\006\003 +\125\004\003\014\030\101\101\101\040\103\145\162\164\151\146\151 +\143\141\164\145\040\123\145\162\166\151\143\145\163 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\001\001 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "Comodo Secure Services root" +# +CKA_CLASS CK_OBJECT_CLASS CKO_CERTIFICATE +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "Comodo Secure Services root" +CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509 +CKA_SUBJECT MULTILINE_OCTAL +\060\176\061\013\060\011\006\003\125\004\006\023\002\107\102\061 +\033\060\031\006\003\125\004\010\014\022\107\162\145\141\164\145 +\162\040\115\141\156\143\150\145\163\164\145\162\061\020\060\016 +\006\003\125\004\007\014\007\123\141\154\146\157\162\144\061\032 +\060\030\006\003\125\004\012\014\021\103\157\155\157\144\157\040 +\103\101\040\114\151\155\151\164\145\144\061\044\060\042\006\003 +\125\004\003\014\033\123\145\143\165\162\145\040\103\145\162\164 +\151\146\151\143\141\164\145\040\123\145\162\166\151\143\145\163 +END +CKA_ID UTF8 "0" +CKA_ISSUER MULTILINE_OCTAL +\060\176\061\013\060\011\006\003\125\004\006\023\002\107\102\061 +\033\060\031\006\003\125\004\010\014\022\107\162\145\141\164\145 +\162\040\115\141\156\143\150\145\163\164\145\162\061\020\060\016 +\006\003\125\004\007\014\007\123\141\154\146\157\162\144\061\032 +\060\030\006\003\125\004\012\014\021\103\157\155\157\144\157\040 +\103\101\040\114\151\155\151\164\145\144\061\044\060\042\006\003 +\125\004\003\014\033\123\145\143\165\162\145\040\103\145\162\164 +\151\146\151\143\141\164\145\040\123\145\162\166\151\143\145\163 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\001\001 +END +CKA_VALUE MULTILINE_OCTAL +\060\202\004\077\060\202\003\047\240\003\002\001\002\002\001\001 +\060\015\006\011\052\206\110\206\367\015\001\001\005\005\000\060 +\176\061\013\060\011\006\003\125\004\006\023\002\107\102\061\033 +\060\031\006\003\125\004\010\014\022\107\162\145\141\164\145\162 +\040\115\141\156\143\150\145\163\164\145\162\061\020\060\016\006 +\003\125\004\007\014\007\123\141\154\146\157\162\144\061\032\060 +\030\006\003\125\004\012\014\021\103\157\155\157\144\157\040\103 +\101\040\114\151\155\151\164\145\144\061\044\060\042\006\003\125 +\004\003\014\033\123\145\143\165\162\145\040\103\145\162\164\151 +\146\151\143\141\164\145\040\123\145\162\166\151\143\145\163\060 +\036\027\015\060\064\060\061\060\061\060\060\060\060\060\060\132 +\027\015\062\070\061\062\063\061\062\063\065\071\065\071\132\060 +\176\061\013\060\011\006\003\125\004\006\023\002\107\102\061\033 +\060\031\006\003\125\004\010\014\022\107\162\145\141\164\145\162 +\040\115\141\156\143\150\145\163\164\145\162\061\020\060\016\006 +\003\125\004\007\014\007\123\141\154\146\157\162\144\061\032\060 +\030\006\003\125\004\012\014\021\103\157\155\157\144\157\040\103 +\101\040\114\151\155\151\164\145\144\061\044\060\042\006\003\125 +\004\003\014\033\123\145\143\165\162\145\040\103\145\162\164\151 +\146\151\143\141\164\145\040\123\145\162\166\151\143\145\163\060 +\202\001\042\060\015\006\011\052\206\110\206\367\015\001\001\001 +\005\000\003\202\001\017\000\060\202\001\012\002\202\001\001\000 +\300\161\063\202\212\320\160\353\163\207\202\100\325\035\344\313 +\311\016\102\220\371\336\064\271\241\272\021\364\045\205\363\314 +\162\155\362\173\227\153\263\007\361\167\044\221\137\045\217\366 +\164\075\344\200\302\370\074\015\363\277\100\352\367\310\122\321 +\162\157\357\310\253\101\270\156\056\027\052\225\151\014\315\322 +\036\224\173\055\224\035\252\165\327\263\230\313\254\274\144\123 +\100\274\217\254\254\066\313\134\255\273\335\340\224\027\354\321 +\134\320\277\357\245\225\311\220\305\260\254\373\033\103\337\172 +\010\135\267\270\362\100\033\053\047\236\120\316\136\145\202\210 +\214\136\323\116\014\172\352\010\221\266\066\252\053\102\373\352 +\302\243\071\345\333\046\070\255\213\012\356\031\143\307\034\044 +\337\003\170\332\346\352\301\107\032\013\013\106\011\335\002\374 +\336\313\207\137\327\060\143\150\241\256\334\062\241\272\276\376 +\104\253\150\266\245\027\025\375\275\325\247\247\232\344\104\063 +\351\210\216\374\355\121\353\223\161\116\255\001\347\104\216\253 +\055\313\250\376\001\111\110\360\300\335\307\150\330\222\376\075 +\002\003\001\000\001\243\201\307\060\201\304\060\035\006\003\125 +\035\016\004\026\004\024\074\330\223\210\302\300\202\011\314\001 +\231\006\223\040\351\236\160\011\143\117\060\016\006\003\125\035 +\017\001\001\377\004\004\003\002\001\006\060\017\006\003\125\035 +\023\001\001\377\004\005\060\003\001\001\377\060\201\201\006\003 +\125\035\037\004\172\060\170\060\073\240\071\240\067\206\065\150 +\164\164\160\072\057\057\143\162\154\056\143\157\155\157\144\157 +\143\141\056\143\157\155\057\123\145\143\165\162\145\103\145\162 +\164\151\146\151\143\141\164\145\123\145\162\166\151\143\145\163 +\056\143\162\154\060\071\240\067\240\065\206\063\150\164\164\160 +\072\057\057\143\162\154\056\143\157\155\157\144\157\056\156\145 +\164\057\123\145\143\165\162\145\103\145\162\164\151\146\151\143 +\141\164\145\123\145\162\166\151\143\145\163\056\143\162\154\060 +\015\006\011\052\206\110\206\367\015\001\001\005\005\000\003\202 +\001\001\000\207\001\155\043\035\176\133\027\175\301\141\062\317 +\217\347\363\212\224\131\146\340\236\050\250\136\323\267\364\064 +\346\252\071\262\227\026\305\202\157\062\244\351\214\347\257\375 +\357\302\350\271\113\252\243\364\346\332\215\145\041\373\272\200 +\353\046\050\205\032\376\071\214\336\133\004\004\264\124\371\243 +\147\236\101\372\011\122\314\005\110\250\311\077\041\004\036\316 +\110\153\374\205\350\302\173\257\177\267\314\370\137\072\375\065 +\306\015\357\227\334\114\253\021\341\153\313\061\321\154\373\110 +\200\253\334\234\067\270\041\024\113\015\161\075\354\203\063\156 +\321\156\062\026\354\230\307\026\213\131\246\064\253\005\127\055 +\223\367\252\023\313\322\023\342\267\056\073\315\153\120\027\011 +\150\076\265\046\127\356\266\340\266\335\271\051\200\171\175\217 +\243\360\244\050\244\025\304\205\364\047\324\153\277\345\134\344 +\145\002\166\124\264\343\067\146\044\323\031\141\310\122\020\345 +\213\067\232\271\251\371\035\277\352\231\222\141\226\377\001\315 +\241\137\015\274\161\274\016\254\013\035\107\105\035\301\354\174 +\354\375\051 +END + +# Trust for Certificate "Comodo Secure Services root" +CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "Comodo Secure Services root" +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\112\145\325\364\035\357\071\270\270\220\112\112\323\144\201\063 +\317\307\241\321 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\323\331\275\256\237\254\147\044\263\310\033\122\341\271\251\275 +END +CKA_ISSUER MULTILINE_OCTAL +\060\176\061\013\060\011\006\003\125\004\006\023\002\107\102\061 +\033\060\031\006\003\125\004\010\014\022\107\162\145\141\164\145 +\162\040\115\141\156\143\150\145\163\164\145\162\061\020\060\016 +\006\003\125\004\007\014\007\123\141\154\146\157\162\144\061\032 +\060\030\006\003\125\004\012\014\021\103\157\155\157\144\157\040 +\103\101\040\114\151\155\151\164\145\144\061\044\060\042\006\003 +\125\004\003\014\033\123\145\143\165\162\145\040\103\145\162\164 +\151\146\151\143\141\164\145\040\123\145\162\166\151\143\145\163 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\001\001 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "Comodo Trusted Services root" +# +CKA_CLASS CK_OBJECT_CLASS CKO_CERTIFICATE +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "Comodo Trusted Services root" +CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509 +CKA_SUBJECT MULTILINE_OCTAL +\060\177\061\013\060\011\006\003\125\004\006\023\002\107\102\061 +\033\060\031\006\003\125\004\010\014\022\107\162\145\141\164\145 +\162\040\115\141\156\143\150\145\163\164\145\162\061\020\060\016 +\006\003\125\004\007\014\007\123\141\154\146\157\162\144\061\032 +\060\030\006\003\125\004\012\014\021\103\157\155\157\144\157\040 +\103\101\040\114\151\155\151\164\145\144\061\045\060\043\006\003 +\125\004\003\014\034\124\162\165\163\164\145\144\040\103\145\162 +\164\151\146\151\143\141\164\145\040\123\145\162\166\151\143\145 +\163 +END +CKA_ID UTF8 "0" +CKA_ISSUER MULTILINE_OCTAL +\060\177\061\013\060\011\006\003\125\004\006\023\002\107\102\061 +\033\060\031\006\003\125\004\010\014\022\107\162\145\141\164\145 +\162\040\115\141\156\143\150\145\163\164\145\162\061\020\060\016 +\006\003\125\004\007\014\007\123\141\154\146\157\162\144\061\032 +\060\030\006\003\125\004\012\014\021\103\157\155\157\144\157\040 +\103\101\040\114\151\155\151\164\145\144\061\045\060\043\006\003 +\125\004\003\014\034\124\162\165\163\164\145\144\040\103\145\162 +\164\151\146\151\143\141\164\145\040\123\145\162\166\151\143\145 +\163 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\001\001 +END +CKA_VALUE MULTILINE_OCTAL +\060\202\004\103\060\202\003\053\240\003\002\001\002\002\001\001 +\060\015\006\011\052\206\110\206\367\015\001\001\005\005\000\060 +\177\061\013\060\011\006\003\125\004\006\023\002\107\102\061\033 +\060\031\006\003\125\004\010\014\022\107\162\145\141\164\145\162 +\040\115\141\156\143\150\145\163\164\145\162\061\020\060\016\006 +\003\125\004\007\014\007\123\141\154\146\157\162\144\061\032\060 +\030\006\003\125\004\012\014\021\103\157\155\157\144\157\040\103 +\101\040\114\151\155\151\164\145\144\061\045\060\043\006\003\125 +\004\003\014\034\124\162\165\163\164\145\144\040\103\145\162\164 +\151\146\151\143\141\164\145\040\123\145\162\166\151\143\145\163 +\060\036\027\015\060\064\060\061\060\061\060\060\060\060\060\060 +\132\027\015\062\070\061\062\063\061\062\063\065\071\065\071\132 +\060\177\061\013\060\011\006\003\125\004\006\023\002\107\102\061 +\033\060\031\006\003\125\004\010\014\022\107\162\145\141\164\145 +\162\040\115\141\156\143\150\145\163\164\145\162\061\020\060\016 +\006\003\125\004\007\014\007\123\141\154\146\157\162\144\061\032 +\060\030\006\003\125\004\012\014\021\103\157\155\157\144\157\040 +\103\101\040\114\151\155\151\164\145\144\061\045\060\043\006\003 +\125\004\003\014\034\124\162\165\163\164\145\144\040\103\145\162 +\164\151\146\151\143\141\164\145\040\123\145\162\166\151\143\145 +\163\060\202\001\042\060\015\006\011\052\206\110\206\367\015\001 +\001\001\005\000\003\202\001\017\000\060\202\001\012\002\202\001 +\001\000\337\161\157\066\130\123\132\362\066\124\127\200\304\164 +\010\040\355\030\177\052\035\346\065\232\036\045\254\234\345\226 +\176\162\122\240\025\102\333\131\335\144\172\032\320\270\173\335 +\071\025\274\125\110\304\355\072\000\352\061\021\272\362\161\164 +\032\147\270\317\063\314\250\061\257\243\343\327\177\277\063\055 +\114\152\074\354\213\303\222\322\123\167\044\164\234\007\156\160 +\374\275\013\133\166\272\137\362\377\327\067\113\112\140\170\367 +\360\372\312\160\264\352\131\252\243\316\110\057\251\303\262\013 +\176\027\162\026\014\246\007\014\033\070\317\311\142\267\077\240 +\223\245\207\101\362\267\160\100\167\330\276\024\174\343\250\300 +\172\216\351\143\152\321\017\232\306\322\364\213\072\024\004\126 +\324\355\270\314\156\365\373\342\054\130\275\177\117\153\053\367 +\140\044\130\044\316\046\357\064\221\072\325\343\201\320\262\360 +\004\002\327\133\267\076\222\254\153\022\212\371\344\005\260\073 +\221\111\134\262\353\123\352\370\237\107\206\356\277\225\300\300 +\006\237\322\133\136\021\033\364\307\004\065\051\322\125\134\344 +\355\353\002\003\001\000\001\243\201\311\060\201\306\060\035\006 +\003\125\035\016\004\026\004\024\305\173\130\275\355\332\045\151 +\322\367\131\026\250\263\062\300\173\047\133\364\060\016\006\003 +\125\035\017\001\001\377\004\004\003\002\001\006\060\017\006\003 +\125\035\023\001\001\377\004\005\060\003\001\001\377\060\201\203 +\006\003\125\035\037\004\174\060\172\060\074\240\072\240\070\206 +\066\150\164\164\160\072\057\057\143\162\154\056\143\157\155\157 +\144\157\143\141\056\143\157\155\057\124\162\165\163\164\145\144 +\103\145\162\164\151\146\151\143\141\164\145\123\145\162\166\151 +\143\145\163\056\143\162\154\060\072\240\070\240\066\206\064\150 +\164\164\160\072\057\057\143\162\154\056\143\157\155\157\144\157 +\056\156\145\164\057\124\162\165\163\164\145\144\103\145\162\164 +\151\146\151\143\141\164\145\123\145\162\166\151\143\145\163\056 +\143\162\154\060\015\006\011\052\206\110\206\367\015\001\001\005 +\005\000\003\202\001\001\000\310\223\201\073\211\264\257\270\204 +\022\114\215\322\360\333\160\272\127\206\025\064\020\271\057\177 +\036\260\250\211\140\241\212\302\167\014\120\112\233\000\213\330 +\213\364\101\342\320\203\212\112\034\024\006\260\243\150\005\160 +\061\060\247\123\233\016\351\112\240\130\151\147\016\256\235\366 +\245\054\101\277\074\006\153\344\131\314\155\020\361\226\157\037 +\337\364\004\002\244\237\105\076\310\330\372\066\106\104\120\077 +\202\227\221\037\050\333\030\021\214\052\344\145\203\127\022\022 +\214\027\077\224\066\376\135\260\300\004\167\023\270\364\025\325 +\077\070\314\224\072\125\320\254\230\365\272\000\137\340\206\031 +\201\170\057\050\300\176\323\314\102\012\365\256\120\240\321\076 +\306\241\161\354\077\240\040\214\146\072\211\264\216\324\330\261 +\115\045\107\356\057\210\310\265\341\005\105\300\276\024\161\336 +\172\375\216\173\175\115\010\226\245\022\163\360\055\312\067\047 +\164\022\047\114\313\266\227\351\331\256\010\155\132\071\100\335 +\005\107\165\152\132\041\263\243\030\317\116\367\056\127\267\230 +\160\136\310\304\170\260\142 +END + +# Trust for Certificate "Comodo Trusted Services root" +CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "Comodo Trusted Services root" +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\341\237\343\016\213\204\140\236\200\233\027\015\162\250\305\272 +\156\024\011\275 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\221\033\077\156\315\236\253\356\007\376\037\161\322\263\141\047 +END +CKA_ISSUER MULTILINE_OCTAL +\060\177\061\013\060\011\006\003\125\004\006\023\002\107\102\061 +\033\060\031\006\003\125\004\010\014\022\107\162\145\141\164\145 +\162\040\115\141\156\143\150\145\163\164\145\162\061\020\060\016 +\006\003\125\004\007\014\007\123\141\154\146\157\162\144\061\032 +\060\030\006\003\125\004\012\014\021\103\157\155\157\144\157\040 +\103\101\040\114\151\155\151\164\145\144\061\045\060\043\006\003 +\125\004\003\014\034\124\162\165\163\164\145\144\040\103\145\162 +\164\151\146\151\143\141\164\145\040\123\145\162\166\151\143\145 +\163 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\001\001 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "QuoVadis Root CA" +# +CKA_CLASS CK_OBJECT_CLASS CKO_CERTIFICATE +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "QuoVadis Root CA" +CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509 +CKA_SUBJECT MULTILINE_OCTAL +\060\177\061\013\060\011\006\003\125\004\006\023\002\102\115\061 +\031\060\027\006\003\125\004\012\023\020\121\165\157\126\141\144 +\151\163\040\114\151\155\151\164\145\144\061\045\060\043\006\003 +\125\004\013\023\034\122\157\157\164\040\103\145\162\164\151\146 +\151\143\141\164\151\157\156\040\101\165\164\150\157\162\151\164 +\171\061\056\060\054\006\003\125\004\003\023\045\121\165\157\126 +\141\144\151\163\040\122\157\157\164\040\103\145\162\164\151\146 +\151\143\141\164\151\157\156\040\101\165\164\150\157\162\151\164 +\171 +END +CKA_ID UTF8 "0" +CKA_ISSUER MULTILINE_OCTAL +\060\177\061\013\060\011\006\003\125\004\006\023\002\102\115\061 +\031\060\027\006\003\125\004\012\023\020\121\165\157\126\141\144 +\151\163\040\114\151\155\151\164\145\144\061\045\060\043\006\003 +\125\004\013\023\034\122\157\157\164\040\103\145\162\164\151\146 +\151\143\141\164\151\157\156\040\101\165\164\150\157\162\151\164 +\171\061\056\060\054\006\003\125\004\003\023\045\121\165\157\126 +\141\144\151\163\040\122\157\157\164\040\103\145\162\164\151\146 +\151\143\141\164\151\157\156\040\101\165\164\150\157\162\151\164 +\171 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\004\072\266\120\213 +END +CKA_VALUE MULTILINE_OCTAL +\060\202\005\320\060\202\004\270\240\003\002\001\002\002\004\072 +\266\120\213\060\015\006\011\052\206\110\206\367\015\001\001\005 +\005\000\060\177\061\013\060\011\006\003\125\004\006\023\002\102 +\115\061\031\060\027\006\003\125\004\012\023\020\121\165\157\126 +\141\144\151\163\040\114\151\155\151\164\145\144\061\045\060\043 +\006\003\125\004\013\023\034\122\157\157\164\040\103\145\162\164 +\151\146\151\143\141\164\151\157\156\040\101\165\164\150\157\162 +\151\164\171\061\056\060\054\006\003\125\004\003\023\045\121\165 +\157\126\141\144\151\163\040\122\157\157\164\040\103\145\162\164 +\151\146\151\143\141\164\151\157\156\040\101\165\164\150\157\162 +\151\164\171\060\036\027\015\060\061\060\063\061\071\061\070\063 +\063\063\063\132\027\015\062\061\060\063\061\067\061\070\063\063 +\063\063\132\060\177\061\013\060\011\006\003\125\004\006\023\002 +\102\115\061\031\060\027\006\003\125\004\012\023\020\121\165\157 +\126\141\144\151\163\040\114\151\155\151\164\145\144\061\045\060 +\043\006\003\125\004\013\023\034\122\157\157\164\040\103\145\162 +\164\151\146\151\143\141\164\151\157\156\040\101\165\164\150\157 +\162\151\164\171\061\056\060\054\006\003\125\004\003\023\045\121 +\165\157\126\141\144\151\163\040\122\157\157\164\040\103\145\162 +\164\151\146\151\143\141\164\151\157\156\040\101\165\164\150\157 +\162\151\164\171\060\202\001\042\060\015\006\011\052\206\110\206 +\367\015\001\001\001\005\000\003\202\001\017\000\060\202\001\012 +\002\202\001\001\000\277\141\265\225\123\272\127\374\372\362\147 +\013\072\032\337\021\200\144\225\264\321\274\315\172\317\366\051 +\226\056\044\124\100\044\070\367\032\205\334\130\114\313\244\047 +\102\227\320\237\203\212\303\344\006\003\133\000\245\121\036\160 +\004\164\342\301\324\072\253\327\255\073\007\030\005\216\375\203 +\254\352\146\331\030\033\150\212\365\127\032\230\272\365\355\166 +\075\174\331\336\224\152\073\113\027\301\325\217\275\145\070\072 +\225\320\075\125\066\116\337\171\127\061\052\036\330\131\145\111 +\130\040\230\176\253\137\176\237\351\326\115\354\203\164\251\307 +\154\330\356\051\112\205\052\006\024\371\124\346\323\332\145\007 +\213\143\067\022\327\320\354\303\173\040\101\104\243\355\313\240 +\027\341\161\145\316\035\146\061\367\166\001\031\310\175\003\130 +\266\225\111\035\246\022\046\350\306\014\166\340\343\146\313\352 +\135\246\046\356\345\314\137\275\147\247\001\047\016\242\312\124 +\305\261\172\225\035\161\036\112\051\212\003\334\152\105\301\244 +\031\136\157\066\315\303\242\260\267\376\134\070\342\122\274\370 +\104\103\346\220\273\002\003\001\000\001\243\202\002\122\060\202 +\002\116\060\075\006\010\053\006\001\005\005\007\001\001\004\061 +\060\057\060\055\006\010\053\006\001\005\005\007\060\001\206\041 +\150\164\164\160\163\072\057\057\157\143\163\160\056\161\165\157 +\166\141\144\151\163\157\146\146\163\150\157\162\145\056\143\157 +\155\060\017\006\003\125\035\023\001\001\377\004\005\060\003\001 +\001\377\060\202\001\032\006\003\125\035\040\004\202\001\021\060 +\202\001\015\060\202\001\011\006\011\053\006\001\004\001\276\130 +\000\001\060\201\373\060\201\324\006\010\053\006\001\005\005\007 +\002\002\060\201\307\032\201\304\122\145\154\151\141\156\143\145 +\040\157\156\040\164\150\145\040\121\165\157\126\141\144\151\163 +\040\122\157\157\164\040\103\145\162\164\151\146\151\143\141\164 +\145\040\142\171\040\141\156\171\040\160\141\162\164\171\040\141 +\163\163\165\155\145\163\040\141\143\143\145\160\164\141\156\143 +\145\040\157\146\040\164\150\145\040\164\150\145\156\040\141\160 +\160\154\151\143\141\142\154\145\040\163\164\141\156\144\141\162 +\144\040\164\145\162\155\163\040\141\156\144\040\143\157\156\144 +\151\164\151\157\156\163\040\157\146\040\165\163\145\054\040\143 +\145\162\164\151\146\151\143\141\164\151\157\156\040\160\162\141 +\143\164\151\143\145\163\054\040\141\156\144\040\164\150\145\040 +\121\165\157\126\141\144\151\163\040\103\145\162\164\151\146\151 +\143\141\164\145\040\120\157\154\151\143\171\056\060\042\006\010 +\053\006\001\005\005\007\002\001\026\026\150\164\164\160\072\057 +\057\167\167\167\056\161\165\157\166\141\144\151\163\056\142\155 +\060\035\006\003\125\035\016\004\026\004\024\213\113\155\355\323 +\051\271\006\031\354\071\071\251\360\227\204\152\313\357\337\060 +\201\256\006\003\125\035\043\004\201\246\060\201\243\200\024\213 +\113\155\355\323\051\271\006\031\354\071\071\251\360\227\204\152 +\313\357\337\241\201\204\244\201\201\060\177\061\013\060\011\006 +\003\125\004\006\023\002\102\115\061\031\060\027\006\003\125\004 +\012\023\020\121\165\157\126\141\144\151\163\040\114\151\155\151 +\164\145\144\061\045\060\043\006\003\125\004\013\023\034\122\157 +\157\164\040\103\145\162\164\151\146\151\143\141\164\151\157\156 +\040\101\165\164\150\157\162\151\164\171\061\056\060\054\006\003 +\125\004\003\023\045\121\165\157\126\141\144\151\163\040\122\157 +\157\164\040\103\145\162\164\151\146\151\143\141\164\151\157\156 +\040\101\165\164\150\157\162\151\164\171\202\004\072\266\120\213 +\060\016\006\003\125\035\017\001\001\377\004\004\003\002\001\006 +\060\015\006\011\052\206\110\206\367\015\001\001\005\005\000\003 +\202\001\001\000\212\324\024\265\376\364\232\222\247\031\324\244 +\176\162\030\217\331\150\174\122\044\335\147\157\071\172\304\252 +\136\075\342\130\260\115\160\230\204\141\350\033\343\151\030\016 +\316\373\107\120\240\116\377\360\044\037\275\262\316\365\047\374 +\354\057\123\252\163\173\003\075\164\156\346\026\236\353\245\056 +\304\277\126\047\120\053\142\272\276\113\034\074\125\134\101\035 +\044\276\202\040\107\135\325\104\176\172\026\150\337\175\115\121 +\160\170\127\035\063\036\375\002\231\234\014\315\012\005\117\307 +\273\216\244\165\372\112\155\261\200\216\011\126\271\234\032\140 +\376\135\301\327\172\334\021\170\320\326\135\301\267\325\255\062 +\231\003\072\212\314\124\045\071\061\201\173\023\042\121\272\106 +\154\241\273\236\372\004\154\111\046\164\217\322\163\353\314\060 +\242\346\352\131\042\207\370\227\365\016\375\352\314\222\244\026 +\304\122\030\352\041\316\261\361\346\204\201\345\272\251\206\050 +\362\103\132\135\022\235\254\036\331\250\345\012\152\247\177\240 +\207\051\317\362\211\115\324\354\305\342\346\172\320\066\043\212 +\112\164\066\371 +END + +# Trust for Certificate "QuoVadis Root CA" +CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "QuoVadis Root CA" +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\336\077\100\275\120\223\323\233\154\140\366\332\274\007\142\001 +\000\211\166\311 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\047\336\066\376\162\267\000\003\000\235\364\360\036\154\004\044 +END +CKA_ISSUER MULTILINE_OCTAL +\060\177\061\013\060\011\006\003\125\004\006\023\002\102\115\061 +\031\060\027\006\003\125\004\012\023\020\121\165\157\126\141\144 +\151\163\040\114\151\155\151\164\145\144\061\045\060\043\006\003 +\125\004\013\023\034\122\157\157\164\040\103\145\162\164\151\146 +\151\143\141\164\151\157\156\040\101\165\164\150\157\162\151\164 +\171\061\056\060\054\006\003\125\004\003\023\045\121\165\157\126 +\141\144\151\163\040\122\157\157\164\040\103\145\162\164\151\146 +\151\143\141\164\151\157\156\040\101\165\164\150\157\162\151\164 +\171 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\004\072\266\120\213 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "QuoVadis Root CA 2" +# +CKA_CLASS CK_OBJECT_CLASS CKO_CERTIFICATE +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "QuoVadis Root CA 2" +CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509 +CKA_SUBJECT MULTILINE_OCTAL +\060\105\061\013\060\011\006\003\125\004\006\023\002\102\115\061 +\031\060\027\006\003\125\004\012\023\020\121\165\157\126\141\144 +\151\163\040\114\151\155\151\164\145\144\061\033\060\031\006\003 +\125\004\003\023\022\121\165\157\126\141\144\151\163\040\122\157 +\157\164\040\103\101\040\062 +END +CKA_ID UTF8 "0" +CKA_ISSUER MULTILINE_OCTAL +\060\105\061\013\060\011\006\003\125\004\006\023\002\102\115\061 +\031\060\027\006\003\125\004\012\023\020\121\165\157\126\141\144 +\151\163\040\114\151\155\151\164\145\144\061\033\060\031\006\003 +\125\004\003\023\022\121\165\157\126\141\144\151\163\040\122\157 +\157\164\040\103\101\040\062 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\002\005\011 +END +CKA_VALUE MULTILINE_OCTAL +\060\202\005\267\060\202\003\237\240\003\002\001\002\002\002\005 +\011\060\015\006\011\052\206\110\206\367\015\001\001\005\005\000 +\060\105\061\013\060\011\006\003\125\004\006\023\002\102\115\061 +\031\060\027\006\003\125\004\012\023\020\121\165\157\126\141\144 +\151\163\040\114\151\155\151\164\145\144\061\033\060\031\006\003 +\125\004\003\023\022\121\165\157\126\141\144\151\163\040\122\157 +\157\164\040\103\101\040\062\060\036\027\015\060\066\061\061\062 +\064\061\070\062\067\060\060\132\027\015\063\061\061\061\062\064 +\061\070\062\063\063\063\132\060\105\061\013\060\011\006\003\125 +\004\006\023\002\102\115\061\031\060\027\006\003\125\004\012\023 +\020\121\165\157\126\141\144\151\163\040\114\151\155\151\164\145 +\144\061\033\060\031\006\003\125\004\003\023\022\121\165\157\126 +\141\144\151\163\040\122\157\157\164\040\103\101\040\062\060\202 +\002\042\060\015\006\011\052\206\110\206\367\015\001\001\001\005 +\000\003\202\002\017\000\060\202\002\012\002\202\002\001\000\232 +\030\312\113\224\015\000\055\257\003\051\212\360\017\201\310\256 +\114\031\205\035\010\237\253\051\104\205\363\057\201\255\062\036 +\220\106\277\243\206\046\032\036\376\176\034\030\072\134\234\140 +\027\052\072\164\203\063\060\175\141\124\021\313\355\253\340\346 +\322\242\176\365\153\157\030\267\012\013\055\375\351\076\357\012 +\306\263\020\351\334\302\106\027\370\135\375\244\332\377\236\111 +\132\234\346\063\346\044\226\367\077\272\133\053\034\172\065\302 +\326\147\376\253\146\120\213\155\050\140\053\357\327\140\303\307 +\223\274\215\066\221\363\177\370\333\021\023\304\234\167\166\301 +\256\267\002\152\201\172\251\105\203\342\005\346\271\126\301\224 +\067\217\110\161\143\042\354\027\145\007\225\212\113\337\217\306 +\132\012\345\260\343\137\136\153\021\253\014\371\205\353\104\351 +\370\004\163\362\351\376\134\230\214\365\163\257\153\264\176\315 +\324\134\002\053\114\071\341\262\225\225\055\102\207\327\325\263 +\220\103\267\154\023\361\336\335\366\304\370\211\077\321\165\365 +\222\303\221\325\212\210\320\220\354\334\155\336\211\302\145\161 +\226\213\015\003\375\234\277\133\026\254\222\333\352\376\171\174 +\255\353\257\367\026\313\333\315\045\053\345\037\373\232\237\342 +\121\314\072\123\014\110\346\016\275\311\264\166\006\122\346\021 +\023\205\162\143\003\004\340\004\066\053\040\031\002\350\164\247 +\037\266\311\126\146\360\165\045\334\147\301\016\141\140\210\263 +\076\321\250\374\243\332\035\260\321\261\043\124\337\104\166\155 +\355\101\330\301\262\042\266\123\034\337\065\035\334\241\167\052 +\061\344\055\365\345\345\333\310\340\377\345\200\327\013\143\240 +\377\063\241\017\272\054\025\025\352\227\263\322\242\265\276\362 +\214\226\036\032\217\035\154\244\141\067\271\206\163\063\327\227 +\226\236\043\175\202\244\114\201\342\241\321\272\147\137\225\007 +\243\047\021\356\026\020\173\274\105\112\114\262\004\322\253\357 +\325\375\014\121\316\120\152\010\061\371\221\332\014\217\144\134 +\003\303\072\213\040\077\156\215\147\075\072\326\376\175\133\210 +\311\136\373\314\141\334\213\063\167\323\104\062\065\011\142\004 +\222\026\020\330\236\047\107\373\073\041\343\370\353\035\133\002 +\003\001\000\001\243\201\260\060\201\255\060\017\006\003\125\035 +\023\001\001\377\004\005\060\003\001\001\377\060\013\006\003\125 +\035\017\004\004\003\002\001\006\060\035\006\003\125\035\016\004 +\026\004\024\032\204\142\274\110\114\063\045\004\324\356\320\366 +\003\304\031\106\321\224\153\060\156\006\003\125\035\043\004\147 +\060\145\200\024\032\204\142\274\110\114\063\045\004\324\356\320 +\366\003\304\031\106\321\224\153\241\111\244\107\060\105\061\013 +\060\011\006\003\125\004\006\023\002\102\115\061\031\060\027\006 +\003\125\004\012\023\020\121\165\157\126\141\144\151\163\040\114 +\151\155\151\164\145\144\061\033\060\031\006\003\125\004\003\023 +\022\121\165\157\126\141\144\151\163\040\122\157\157\164\040\103 +\101\040\062\202\002\005\011\060\015\006\011\052\206\110\206\367 +\015\001\001\005\005\000\003\202\002\001\000\076\012\026\115\237 +\006\133\250\256\161\135\057\005\057\147\346\023\105\203\304\066 +\366\363\300\046\014\015\265\107\144\135\370\264\162\311\106\245 +\003\030\047\125\211\170\175\166\352\226\064\200\027\040\334\347 +\203\370\215\374\007\270\332\137\115\056\147\262\204\375\331\104 +\374\167\120\201\346\174\264\311\015\013\162\123\370\166\007\007 +\101\107\226\014\373\340\202\046\223\125\214\376\042\037\140\145 +\174\137\347\046\263\367\062\220\230\120\324\067\161\125\366\222 +\041\170\367\225\171\372\370\055\046\207\146\126\060\167\246\067 +\170\063\122\020\130\256\077\141\216\362\152\261\357\030\176\112 +\131\143\312\215\242\126\325\247\057\274\126\037\317\071\301\342 +\373\012\250\025\054\175\115\172\143\306\154\227\104\074\322\157 +\303\112\027\012\370\220\322\127\242\031\121\245\055\227\101\332 +\007\117\251\120\332\220\215\224\106\341\076\360\224\375\020\000 +\070\365\073\350\100\341\264\156\126\032\040\314\157\130\215\355 +\056\105\217\326\351\223\077\347\261\054\337\072\326\042\214\334 +\204\273\042\157\320\370\344\306\071\351\004\210\074\303\272\353 +\125\172\155\200\231\044\365\154\001\373\370\227\260\224\133\353 +\375\322\157\361\167\150\015\065\144\043\254\270\125\241\003\321 +\115\102\031\334\370\165\131\126\243\371\250\111\171\370\257\016 +\271\021\240\174\267\152\355\064\320\266\046\142\070\032\207\014 +\370\350\375\056\323\220\177\007\221\052\035\326\176\134\205\203 +\231\260\070\010\077\351\136\371\065\007\344\311\142\156\127\177 +\247\120\225\367\272\310\233\346\216\242\001\305\326\146\277\171 +\141\363\074\034\341\271\202\134\135\240\303\351\330\110\275\031 +\242\021\024\031\156\262\206\033\150\076\110\067\032\210\267\135 +\226\136\234\307\357\047\142\010\342\221\031\134\322\361\041\335 +\272\027\102\202\227\161\201\123\061\251\237\366\175\142\277\162 +\341\243\223\035\314\212\046\132\011\070\320\316\327\015\200\026 +\264\170\245\072\207\114\215\212\245\325\106\227\362\054\020\271 +\274\124\042\300\001\120\151\103\236\364\262\357\155\370\354\332 +\361\343\261\357\337\221\217\124\052\013\045\301\046\031\304\122 +\020\005\145\325\202\020\352\302\061\315\056 +END + +# Trust for Certificate "QuoVadis Root CA 2" +CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "QuoVadis Root CA 2" +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\312\072\373\317\022\100\066\113\104\262\026\040\210\200\110\071 +\031\223\174\367 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\136\071\173\335\370\272\354\202\351\254\142\272\014\124\000\053 +END +CKA_ISSUER MULTILINE_OCTAL +\060\105\061\013\060\011\006\003\125\004\006\023\002\102\115\061 +\031\060\027\006\003\125\004\012\023\020\121\165\157\126\141\144 +\151\163\040\114\151\155\151\164\145\144\061\033\060\031\006\003 +\125\004\003\023\022\121\165\157\126\141\144\151\163\040\122\157 +\157\164\040\103\101\040\062 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\002\005\011 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "QuoVadis Root CA 3" +# +CKA_CLASS CK_OBJECT_CLASS CKO_CERTIFICATE +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "QuoVadis Root CA 3" +CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509 +CKA_SUBJECT MULTILINE_OCTAL +\060\105\061\013\060\011\006\003\125\004\006\023\002\102\115\061 +\031\060\027\006\003\125\004\012\023\020\121\165\157\126\141\144 +\151\163\040\114\151\155\151\164\145\144\061\033\060\031\006\003 +\125\004\003\023\022\121\165\157\126\141\144\151\163\040\122\157 +\157\164\040\103\101\040\063 +END +CKA_ID UTF8 "0" +CKA_ISSUER MULTILINE_OCTAL +\060\105\061\013\060\011\006\003\125\004\006\023\002\102\115\061 +\031\060\027\006\003\125\004\012\023\020\121\165\157\126\141\144 +\151\163\040\114\151\155\151\164\145\144\061\033\060\031\006\003 +\125\004\003\023\022\121\165\157\126\141\144\151\163\040\122\157 +\157\164\040\103\101\040\063 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\002\005\306 +END +CKA_VALUE MULTILINE_OCTAL +\060\202\006\235\060\202\004\205\240\003\002\001\002\002\002\005 +\306\060\015\006\011\052\206\110\206\367\015\001\001\005\005\000 +\060\105\061\013\060\011\006\003\125\004\006\023\002\102\115\061 +\031\060\027\006\003\125\004\012\023\020\121\165\157\126\141\144 +\151\163\040\114\151\155\151\164\145\144\061\033\060\031\006\003 +\125\004\003\023\022\121\165\157\126\141\144\151\163\040\122\157 +\157\164\040\103\101\040\063\060\036\027\015\060\066\061\061\062 +\064\061\071\061\061\062\063\132\027\015\063\061\061\061\062\064 +\061\071\060\066\064\064\132\060\105\061\013\060\011\006\003\125 +\004\006\023\002\102\115\061\031\060\027\006\003\125\004\012\023 +\020\121\165\157\126\141\144\151\163\040\114\151\155\151\164\145 +\144\061\033\060\031\006\003\125\004\003\023\022\121\165\157\126 +\141\144\151\163\040\122\157\157\164\040\103\101\040\063\060\202 +\002\042\060\015\006\011\052\206\110\206\367\015\001\001\001\005 +\000\003\202\002\017\000\060\202\002\012\002\202\002\001\000\314 +\127\102\026\124\234\346\230\323\323\115\356\376\355\307\237\103 +\071\112\145\263\350\026\210\064\333\015\131\221\164\317\222\270 +\004\100\255\002\113\061\253\274\215\221\150\330\040\016\032\001 +\342\032\173\116\027\135\342\212\267\077\231\032\315\353\141\253 +\302\145\246\037\267\267\275\267\217\374\375\160\217\013\240\147 +\276\001\242\131\317\161\346\017\051\166\377\261\126\171\105\053 +\037\236\172\124\350\243\051\065\150\244\001\117\017\244\056\067 +\357\033\277\343\217\020\250\162\253\130\127\347\124\206\310\311 +\363\133\332\054\332\135\216\156\074\243\076\332\373\202\345\335 +\362\134\262\005\063\157\212\066\316\320\023\116\377\277\112\014 +\064\114\246\303\041\275\120\004\125\353\261\273\235\373\105\036 +\144\025\336\125\001\214\002\166\265\313\241\077\102\151\274\057 +\275\150\103\026\126\211\052\067\141\221\375\246\256\116\300\313 +\024\145\224\067\113\222\006\357\004\320\310\234\210\333\013\173 +\201\257\261\075\052\304\145\072\170\266\356\334\200\261\322\323 +\231\234\072\356\153\132\153\263\215\267\325\316\234\302\276\245 +\113\057\026\261\236\150\073\006\157\256\175\237\370\336\354\314 +\051\247\230\243\045\103\057\357\361\137\046\341\210\115\370\136 +\156\327\331\024\156\031\063\151\247\073\204\211\223\304\123\125 +\023\241\121\170\100\370\270\311\242\356\173\272\122\102\203\236 +\024\355\005\122\132\131\126\247\227\374\235\077\012\051\330\334 +\117\221\016\023\274\336\225\244\337\213\231\276\254\233\063\210 +\357\265\201\257\033\306\042\123\310\366\307\356\227\024\260\305 +\174\170\122\310\360\316\156\167\140\204\246\351\052\166\040\355 +\130\001\027\060\223\351\032\213\340\163\143\331\152\222\224\111 +\116\264\255\112\205\304\243\042\060\374\011\355\150\042\163\246 +\210\014\125\041\130\305\341\072\237\052\335\312\341\220\340\331 +\163\253\154\200\270\350\013\144\223\240\234\214\031\377\263\322 +\014\354\221\046\207\212\263\242\341\160\217\054\012\345\315\155 +\150\121\353\332\077\005\177\213\062\346\023\134\153\376\137\100 +\342\042\310\264\264\144\117\326\272\175\110\076\250\151\014\327 +\273\206\161\311\163\270\077\073\235\045\113\332\377\100\353\002 +\003\001\000\001\243\202\001\225\060\202\001\221\060\017\006\003 +\125\035\023\001\001\377\004\005\060\003\001\001\377\060\201\341 +\006\003\125\035\040\004\201\331\060\201\326\060\201\323\006\011 +\053\006\001\004\001\276\130\000\003\060\201\305\060\201\223\006 +\010\053\006\001\005\005\007\002\002\060\201\206\032\201\203\101 +\156\171\040\165\163\145\040\157\146\040\164\150\151\163\040\103 +\145\162\164\151\146\151\143\141\164\145\040\143\157\156\163\164 +\151\164\165\164\145\163\040\141\143\143\145\160\164\141\156\143 +\145\040\157\146\040\164\150\145\040\121\165\157\126\141\144\151 +\163\040\122\157\157\164\040\103\101\040\063\040\103\145\162\164 +\151\146\151\143\141\164\145\040\120\157\154\151\143\171\040\057 +\040\103\145\162\164\151\146\151\143\141\164\151\157\156\040\120 +\162\141\143\164\151\143\145\040\123\164\141\164\145\155\145\156 +\164\056\060\055\006\010\053\006\001\005\005\007\002\001\026\041 +\150\164\164\160\072\057\057\167\167\167\056\161\165\157\166\141 +\144\151\163\147\154\157\142\141\154\056\143\157\155\057\143\160 +\163\060\013\006\003\125\035\017\004\004\003\002\001\006\060\035 +\006\003\125\035\016\004\026\004\024\362\300\023\340\202\103\076 +\373\356\057\147\062\226\065\134\333\270\313\002\320\060\156\006 +\003\125\035\043\004\147\060\145\200\024\362\300\023\340\202\103 +\076\373\356\057\147\062\226\065\134\333\270\313\002\320\241\111 +\244\107\060\105\061\013\060\011\006\003\125\004\006\023\002\102 +\115\061\031\060\027\006\003\125\004\012\023\020\121\165\157\126 +\141\144\151\163\040\114\151\155\151\164\145\144\061\033\060\031 +\006\003\125\004\003\023\022\121\165\157\126\141\144\151\163\040 +\122\157\157\164\040\103\101\040\063\202\002\005\306\060\015\006 +\011\052\206\110\206\367\015\001\001\005\005\000\003\202\002\001 +\000\117\255\240\054\114\372\300\362\157\367\146\125\253\043\064 +\356\347\051\332\303\133\266\260\203\331\320\320\342\041\373\363 +\140\247\073\135\140\123\047\242\233\366\010\042\052\347\277\240 +\162\345\234\044\152\061\261\220\172\047\333\204\021\211\047\246 +\167\132\070\327\277\254\206\374\356\135\203\274\006\306\321\167 +\153\017\155\044\057\113\172\154\247\007\226\312\343\204\237\255 +\210\213\035\253\026\215\133\146\027\331\026\364\213\200\322\335 +\370\262\166\303\374\070\023\252\014\336\102\151\053\156\363\074 +\353\200\047\333\365\246\104\015\237\132\125\131\013\325\015\122 +\110\305\256\237\362\057\200\305\352\062\120\065\022\227\056\301 +\341\377\361\043\210\121\070\237\362\146\126\166\347\017\121\227 +\245\122\014\115\111\121\225\066\075\277\242\113\014\020\035\206 +\231\114\252\363\162\021\223\344\352\366\233\332\250\135\247\115 +\267\236\002\256\163\000\310\332\043\003\350\371\352\031\164\142 +\000\224\313\042\040\276\224\247\131\265\202\152\276\231\171\172 +\251\362\112\044\122\367\164\375\272\116\346\250\035\002\156\261 +\015\200\104\301\256\323\043\067\137\273\205\174\053\222\056\350 +\176\245\213\335\231\341\277\047\157\055\135\252\173\207\376\012 +\335\113\374\216\365\046\344\156\160\102\156\063\354\061\236\173 +\223\301\344\311\151\032\075\300\153\116\042\155\356\253\130\115 +\306\320\101\301\053\352\117\022\207\136\353\105\330\154\365\230 +\002\323\240\330\125\212\006\231\031\242\240\167\321\060\236\254 +\314\165\356\203\365\260\142\071\317\154\127\342\114\322\221\013 +\016\165\050\033\232\277\375\032\103\361\312\167\373\073\217\141 +\270\151\050\026\102\004\136\160\052\034\041\330\217\341\275\043 +\133\055\164\100\222\331\143\031\015\163\335\151\274\142\107\274 +\340\164\053\262\353\175\276\101\033\265\300\106\305\241\042\313 +\137\116\301\050\222\336\030\272\325\052\050\273\021\213\027\223 +\230\231\140\224\134\043\317\132\047\227\136\013\005\006\223\067 +\036\073\151\066\353\251\236\141\035\217\062\332\216\014\326\164 +\076\173\011\044\332\001\167\107\304\073\315\064\214\231\365\312 +\341\045\141\063\262\131\033\342\156\327\067\127\266\015\251\022 +\332 +END + +# Trust for Certificate "QuoVadis Root CA 3" +CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "QuoVadis Root CA 3" +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\037\111\024\367\330\164\225\035\335\256\002\300\276\375\072\055 +\202\165\121\205 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\061\205\074\142\224\227\143\271\252\375\211\116\257\157\340\317 +END +CKA_ISSUER MULTILINE_OCTAL +\060\105\061\013\060\011\006\003\125\004\006\023\002\102\115\061 +\031\060\027\006\003\125\004\012\023\020\121\165\157\126\141\144 +\151\163\040\114\151\155\151\164\145\144\061\033\060\031\006\003 +\125\004\003\023\022\121\165\157\126\141\144\151\163\040\122\157 +\157\164\040\103\101\040\063 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\002\005\306 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "Security Communication Root CA" +# +CKA_CLASS CK_OBJECT_CLASS CKO_CERTIFICATE +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "Security Communication Root CA" +CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509 +CKA_SUBJECT MULTILINE_OCTAL +\060\120\061\013\060\011\006\003\125\004\006\023\002\112\120\061 +\030\060\026\006\003\125\004\012\023\017\123\105\103\117\115\040 +\124\162\165\163\164\056\156\145\164\061\047\060\045\006\003\125 +\004\013\023\036\123\145\143\165\162\151\164\171\040\103\157\155 +\155\165\156\151\143\141\164\151\157\156\040\122\157\157\164\103 +\101\061 +END +CKA_ID UTF8 "0" +CKA_ISSUER MULTILINE_OCTAL +\060\120\061\013\060\011\006\003\125\004\006\023\002\112\120\061 +\030\060\026\006\003\125\004\012\023\017\123\105\103\117\115\040 +\124\162\165\163\164\056\156\145\164\061\047\060\045\006\003\125 +\004\013\023\036\123\145\143\165\162\151\164\171\040\103\157\155 +\155\165\156\151\143\141\164\151\157\156\040\122\157\157\164\103 +\101\061 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\001\000 +END +CKA_VALUE MULTILINE_OCTAL +\060\202\003\132\060\202\002\102\240\003\002\001\002\002\001\000 +\060\015\006\011\052\206\110\206\367\015\001\001\005\005\000\060 +\120\061\013\060\011\006\003\125\004\006\023\002\112\120\061\030 +\060\026\006\003\125\004\012\023\017\123\105\103\117\115\040\124 +\162\165\163\164\056\156\145\164\061\047\060\045\006\003\125\004 +\013\023\036\123\145\143\165\162\151\164\171\040\103\157\155\155 +\165\156\151\143\141\164\151\157\156\040\122\157\157\164\103\101 +\061\060\036\027\015\060\063\060\071\063\060\060\064\062\060\064 +\071\132\027\015\062\063\060\071\063\060\060\064\062\060\064\071 +\132\060\120\061\013\060\011\006\003\125\004\006\023\002\112\120 +\061\030\060\026\006\003\125\004\012\023\017\123\105\103\117\115 +\040\124\162\165\163\164\056\156\145\164\061\047\060\045\006\003 +\125\004\013\023\036\123\145\143\165\162\151\164\171\040\103\157 +\155\155\165\156\151\143\141\164\151\157\156\040\122\157\157\164 +\103\101\061\060\202\001\042\060\015\006\011\052\206\110\206\367 +\015\001\001\001\005\000\003\202\001\017\000\060\202\001\012\002 +\202\001\001\000\263\263\376\177\323\155\261\357\026\174\127\245 +\014\155\166\212\057\113\277\144\373\114\356\212\360\363\051\174 +\365\377\356\052\340\351\351\272\133\144\042\232\232\157\054\072 +\046\151\121\005\231\046\334\325\034\152\161\306\232\175\036\235 +\335\174\154\306\214\147\147\112\076\370\161\260\031\047\251\011 +\014\246\225\277\113\214\014\372\125\230\073\330\350\042\241\113 +\161\070\171\254\227\222\151\263\211\176\352\041\150\006\230\024 +\226\207\322\141\066\274\155\047\126\236\127\356\300\300\126\375 +\062\317\244\331\216\302\043\327\215\250\363\330\045\254\227\344 +\160\070\364\266\072\264\235\073\227\046\103\243\241\274\111\131 +\162\114\043\060\207\001\130\366\116\276\034\150\126\146\257\315 +\101\135\310\263\115\052\125\106\253\037\332\036\342\100\075\333 +\315\175\271\222\200\234\067\335\014\226\144\235\334\042\367\144 +\213\337\141\336\025\224\122\025\240\175\122\311\113\250\041\311 +\306\261\355\313\303\225\140\321\017\360\253\160\370\337\313\115 +\176\354\326\372\253\331\275\177\124\362\245\351\171\372\331\326 +\166\044\050\163\002\003\001\000\001\243\077\060\075\060\035\006 +\003\125\035\016\004\026\004\024\240\163\111\231\150\334\205\133 +\145\343\233\050\057\127\237\275\063\274\007\110\060\013\006\003 +\125\035\017\004\004\003\002\001\006\060\017\006\003\125\035\023 +\001\001\377\004\005\060\003\001\001\377\060\015\006\011\052\206 +\110\206\367\015\001\001\005\005\000\003\202\001\001\000\150\100 +\251\250\273\344\117\135\171\263\005\265\027\263\140\023\353\306 +\222\135\340\321\323\152\376\373\276\233\155\277\307\005\155\131 +\040\304\034\360\267\332\204\130\002\143\372\110\026\357\117\245 +\013\367\112\230\362\077\236\033\255\107\153\143\316\010\107\353 +\122\077\170\234\257\115\256\370\325\117\317\232\230\052\020\101 +\071\122\304\335\331\233\016\357\223\001\256\262\056\312\150\102 +\044\102\154\260\263\072\076\315\351\332\110\304\025\313\351\371 +\007\017\222\120\111\212\335\061\227\137\311\351\067\252\073\131 +\145\227\224\062\311\263\237\076\072\142\130\305\111\255\142\016 +\161\245\062\252\057\306\211\166\103\100\023\023\147\075\242\124 +\045\020\313\361\072\362\331\372\333\111\126\273\246\376\247\101 +\065\303\340\210\141\311\210\307\337\066\020\042\230\131\352\260 +\112\373\126\026\163\156\254\115\367\042\241\117\255\035\172\055 +\105\047\345\060\301\136\362\332\023\313\045\102\121\225\107\003 +\214\154\041\314\164\102\355\123\377\063\213\217\017\127\001\026 +\057\317\246\356\311\160\042\024\275\375\276\154\013\003 +END + +# Trust for Certificate "Security Communication Root CA" +CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "Security Communication Root CA" +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\066\261\053\111\371\201\236\327\114\236\274\070\017\306\126\217 +\135\254\262\367 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\361\274\143\152\124\340\265\047\365\315\347\032\343\115\156\112 +END +CKA_ISSUER MULTILINE_OCTAL +\060\120\061\013\060\011\006\003\125\004\006\023\002\112\120\061 +\030\060\026\006\003\125\004\012\023\017\123\105\103\117\115\040 +\124\162\165\163\164\056\156\145\164\061\047\060\045\006\003\125 +\004\013\023\036\123\145\143\165\162\151\164\171\040\103\157\155 +\155\165\156\151\143\141\164\151\157\156\040\122\157\157\164\103 +\101\061 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\001\000 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "Sonera Class 1 Root CA" +# +CKA_CLASS CK_OBJECT_CLASS CKO_CERTIFICATE +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "Sonera Class 1 Root CA" +CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509 +CKA_SUBJECT MULTILINE_OCTAL +\060\071\061\013\060\011\006\003\125\004\006\023\002\106\111\061 +\017\060\015\006\003\125\004\012\023\006\123\157\156\145\162\141 +\061\031\060\027\006\003\125\004\003\023\020\123\157\156\145\162 +\141\040\103\154\141\163\163\061\040\103\101 +END +CKA_ID UTF8 "0" +CKA_ISSUER MULTILINE_OCTAL +\060\071\061\013\060\011\006\003\125\004\006\023\002\106\111\061 +\017\060\015\006\003\125\004\012\023\006\123\157\156\145\162\141 +\061\031\060\027\006\003\125\004\003\023\020\123\157\156\145\162 +\141\040\103\154\141\163\163\061\040\103\101 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\001\044 +END +CKA_VALUE MULTILINE_OCTAL +\060\202\003\040\060\202\002\010\240\003\002\001\002\002\001\044 +\060\015\006\011\052\206\110\206\367\015\001\001\005\005\000\060 +\071\061\013\060\011\006\003\125\004\006\023\002\106\111\061\017 +\060\015\006\003\125\004\012\023\006\123\157\156\145\162\141\061 +\031\060\027\006\003\125\004\003\023\020\123\157\156\145\162\141 +\040\103\154\141\163\163\061\040\103\101\060\036\027\015\060\061 +\060\064\060\066\061\060\064\071\061\063\132\027\015\062\061\060 +\064\060\066\061\060\064\071\061\063\132\060\071\061\013\060\011 +\006\003\125\004\006\023\002\106\111\061\017\060\015\006\003\125 +\004\012\023\006\123\157\156\145\162\141\061\031\060\027\006\003 +\125\004\003\023\020\123\157\156\145\162\141\040\103\154\141\163 +\163\061\040\103\101\060\202\001\042\060\015\006\011\052\206\110 +\206\367\015\001\001\001\005\000\003\202\001\017\000\060\202\001 +\012\002\202\001\001\000\265\211\037\053\117\147\012\171\377\305 +\036\370\177\074\355\321\176\332\260\315\155\057\066\254\064\306 +\333\331\144\027\010\143\060\063\042\212\114\356\216\273\017\015 +\102\125\311\235\056\245\357\367\247\214\303\253\271\227\313\216 +\357\077\025\147\250\202\162\143\123\017\101\214\175\020\225\044 +\241\132\245\006\372\222\127\235\372\245\001\362\165\351\037\274 +\126\046\122\116\170\031\145\130\125\003\130\300\024\256\214\174 +\125\137\160\133\167\043\006\066\227\363\044\265\232\106\225\344 +\337\015\013\005\105\345\321\362\035\202\273\306\023\340\376\252 +\172\375\151\060\224\363\322\105\205\374\362\062\133\062\336\350 +\154\135\037\313\244\042\164\260\200\216\135\224\367\006\000\113 +\251\324\136\056\065\120\011\363\200\227\364\014\027\256\071\330 +\137\315\063\301\034\312\211\302\042\367\105\022\355\136\022\223 +\235\143\253\202\056\271\353\102\101\104\313\112\032\000\202\015 +\236\371\213\127\076\114\307\027\355\054\213\162\063\137\162\172 +\070\126\325\346\331\256\005\032\035\165\105\261\313\245\045\034 +\022\127\066\375\042\067\002\003\001\000\001\243\063\060\061\060 +\017\006\003\125\035\023\001\001\377\004\005\060\003\001\001\377 +\060\021\006\003\125\035\016\004\012\004\010\107\342\014\213\366 +\123\210\122\060\013\006\003\125\035\017\004\004\003\002\001\006 +\060\015\006\011\052\206\110\206\367\015\001\001\005\005\000\003 +\202\001\001\000\213\032\262\311\135\141\264\341\271\053\271\123 +\321\262\205\235\167\216\026\356\021\075\333\302\143\331\133\227 +\145\373\022\147\330\052\134\266\253\345\136\303\267\026\057\310 +\350\253\035\212\375\253\032\174\325\137\143\317\334\260\335\167 +\271\250\346\322\042\070\207\007\024\331\377\276\126\265\375\007 +\016\074\125\312\026\314\247\246\167\067\373\333\134\037\116\131 +\006\207\243\003\103\365\026\253\267\204\275\116\357\237\061\067 +\360\106\361\100\266\321\014\245\144\370\143\136\041\333\125\116 +\117\061\166\234\020\141\216\266\123\072\243\021\276\257\155\174 +\036\275\256\055\342\014\151\307\205\123\150\242\141\272\305\076 +\264\171\124\170\236\012\307\002\276\142\321\021\202\113\145\057 +\221\132\302\250\207\261\126\150\224\171\371\045\367\301\325\256 +\032\270\273\075\217\251\212\070\025\367\163\320\132\140\321\200 +\260\360\334\325\120\315\116\356\222\110\151\355\262\043\036\060 +\314\310\224\310\266\365\073\206\177\077\246\056\237\366\076\054 +\265\222\226\076\337\054\223\212\377\201\214\017\017\131\041\031 +\127\275\125\232 +END + +# Trust for Certificate "Sonera Class 1 Root CA" +CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "Sonera Class 1 Root CA" +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\007\107\042\001\231\316\164\271\174\260\075\171\262\144\242\310 +\125\351\063\377 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\063\267\204\365\137\047\327\150\047\336\024\336\022\052\355\157 +END +CKA_ISSUER MULTILINE_OCTAL +\060\071\061\013\060\011\006\003\125\004\006\023\002\106\111\061 +\017\060\015\006\003\125\004\012\023\006\123\157\156\145\162\141 +\061\031\060\027\006\003\125\004\003\023\020\123\157\156\145\162 +\141\040\103\154\141\163\163\061\040\103\101 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\001\044 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_TRUST_UNKNOWN +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_TRUST_UNKNOWN +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "Sonera Class 2 Root CA" +# +CKA_CLASS CK_OBJECT_CLASS CKO_CERTIFICATE +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "Sonera Class 2 Root CA" +CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509 +CKA_SUBJECT MULTILINE_OCTAL +\060\071\061\013\060\011\006\003\125\004\006\023\002\106\111\061 +\017\060\015\006\003\125\004\012\023\006\123\157\156\145\162\141 +\061\031\060\027\006\003\125\004\003\023\020\123\157\156\145\162 +\141\040\103\154\141\163\163\062\040\103\101 +END +CKA_ID UTF8 "0" +CKA_ISSUER MULTILINE_OCTAL +\060\071\061\013\060\011\006\003\125\004\006\023\002\106\111\061 +\017\060\015\006\003\125\004\012\023\006\123\157\156\145\162\141 +\061\031\060\027\006\003\125\004\003\023\020\123\157\156\145\162 +\141\040\103\154\141\163\163\062\040\103\101 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\001\035 +END +CKA_VALUE MULTILINE_OCTAL +\060\202\003\040\060\202\002\010\240\003\002\001\002\002\001\035 +\060\015\006\011\052\206\110\206\367\015\001\001\005\005\000\060 +\071\061\013\060\011\006\003\125\004\006\023\002\106\111\061\017 +\060\015\006\003\125\004\012\023\006\123\157\156\145\162\141\061 +\031\060\027\006\003\125\004\003\023\020\123\157\156\145\162\141 +\040\103\154\141\163\163\062\040\103\101\060\036\027\015\060\061 +\060\064\060\066\060\067\062\071\064\060\132\027\015\062\061\060 +\064\060\066\060\067\062\071\064\060\132\060\071\061\013\060\011 +\006\003\125\004\006\023\002\106\111\061\017\060\015\006\003\125 +\004\012\023\006\123\157\156\145\162\141\061\031\060\027\006\003 +\125\004\003\023\020\123\157\156\145\162\141\040\103\154\141\163 +\163\062\040\103\101\060\202\001\042\060\015\006\011\052\206\110 +\206\367\015\001\001\001\005\000\003\202\001\017\000\060\202\001 +\012\002\202\001\001\000\220\027\112\065\235\312\360\015\226\307 +\104\372\026\067\374\110\275\275\177\200\055\065\073\341\157\250 +\147\251\277\003\034\115\214\157\062\107\325\101\150\244\023\004 +\301\065\014\232\204\103\374\134\035\377\211\263\350\027\030\315 +\221\137\373\211\343\352\277\116\135\174\033\046\323\165\171\355 +\346\204\343\127\345\255\051\304\364\072\050\347\245\173\204\066 +\151\263\375\136\166\275\243\055\231\323\220\116\043\050\175\030 +\143\361\124\073\046\235\166\133\227\102\262\377\256\360\116\354 +\335\071\225\116\203\006\177\347\111\100\310\305\001\262\124\132 +\146\035\075\374\371\351\074\012\236\201\270\160\360\001\213\344 +\043\124\174\310\256\370\220\036\000\226\162\324\124\317\141\043 +\274\352\373\235\002\225\321\266\271\161\072\151\010\077\017\264 +\341\102\307\210\365\077\230\250\247\272\034\340\161\161\357\130 +\127\201\120\172\134\153\164\106\016\203\003\230\303\216\250\156 +\362\166\062\156\047\203\302\163\363\334\030\350\264\223\352\165 +\104\153\004\140\040\161\127\207\235\363\276\240\220\043\075\212 +\044\341\332\041\333\303\002\003\001\000\001\243\063\060\061\060 +\017\006\003\125\035\023\001\001\377\004\005\060\003\001\001\377 +\060\021\006\003\125\035\016\004\012\004\010\112\240\252\130\204 +\323\136\074\060\013\006\003\125\035\017\004\004\003\002\001\006 +\060\015\006\011\052\206\110\206\367\015\001\001\005\005\000\003 +\202\001\001\000\132\316\207\371\026\162\025\127\113\035\331\233 +\347\242\046\060\354\223\147\337\326\055\322\064\257\367\070\245 +\316\253\026\271\253\057\174\065\313\254\320\017\264\114\053\374 +\200\357\153\214\221\137\066\166\367\333\263\033\031\352\364\262 +\021\375\141\161\104\277\050\263\072\035\277\263\103\350\237\277 +\334\061\010\161\260\235\215\326\064\107\062\220\306\145\044\367 +\240\112\174\004\163\217\071\157\027\214\162\265\275\113\310\172 +\370\173\203\303\050\116\234\011\352\147\077\262\147\004\033\303 +\024\332\370\347\111\044\221\320\035\152\372\141\071\357\153\347 +\041\165\006\007\330\022\264\041\040\160\102\161\201\332\074\232 +\066\276\246\133\015\152\154\232\037\221\173\371\371\357\102\272 +\116\116\236\314\014\215\224\334\331\105\234\136\354\102\120\143 +\256\364\135\304\261\022\334\312\073\250\056\235\024\132\005\165 +\267\354\327\143\342\272\065\266\004\010\221\350\332\235\234\366 +\146\265\030\254\012\246\124\046\064\063\322\033\301\324\177\032 +\072\216\013\252\062\156\333\374\117\045\237\331\062\307\226\132 +\160\254\337\114 +END + +# Trust for Certificate "Sonera Class 2 Root CA" +CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "Sonera Class 2 Root CA" +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\067\367\155\346\007\174\220\305\261\076\223\032\267\101\020\264 +\362\344\232\047 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\243\354\165\017\056\210\337\372\110\001\116\013\134\110\157\373 +END +CKA_ISSUER MULTILINE_OCTAL +\060\071\061\013\060\011\006\003\125\004\006\023\002\106\111\061 +\017\060\015\006\003\125\004\012\023\006\123\157\156\145\162\141 +\061\031\060\027\006\003\125\004\003\023\020\123\157\156\145\162 +\141\040\103\154\141\163\163\062\040\103\101 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\001\035 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "Staat der Nederlanden Root CA" +# +CKA_CLASS CK_OBJECT_CLASS CKO_CERTIFICATE +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "Staat der Nederlanden Root CA" +CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509 +CKA_SUBJECT MULTILINE_OCTAL +\060\125\061\013\060\011\006\003\125\004\006\023\002\116\114\061 +\036\060\034\006\003\125\004\012\023\025\123\164\141\141\164\040 +\144\145\162\040\116\145\144\145\162\154\141\156\144\145\156\061 +\046\060\044\006\003\125\004\003\023\035\123\164\141\141\164\040 +\144\145\162\040\116\145\144\145\162\154\141\156\144\145\156\040 +\122\157\157\164\040\103\101 +END +CKA_ID UTF8 "0" +CKA_ISSUER MULTILINE_OCTAL +\060\125\061\013\060\011\006\003\125\004\006\023\002\116\114\061 +\036\060\034\006\003\125\004\012\023\025\123\164\141\141\164\040 +\144\145\162\040\116\145\144\145\162\154\141\156\144\145\156\061 +\046\060\044\006\003\125\004\003\023\035\123\164\141\141\164\040 +\144\145\162\040\116\145\144\145\162\154\141\156\144\145\156\040 +\122\157\157\164\040\103\101 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\004\000\230\226\212 +END +CKA_VALUE MULTILINE_OCTAL +\060\202\003\272\060\202\002\242\240\003\002\001\002\002\004\000 +\230\226\212\060\015\006\011\052\206\110\206\367\015\001\001\005 +\005\000\060\125\061\013\060\011\006\003\125\004\006\023\002\116 +\114\061\036\060\034\006\003\125\004\012\023\025\123\164\141\141 +\164\040\144\145\162\040\116\145\144\145\162\154\141\156\144\145 +\156\061\046\060\044\006\003\125\004\003\023\035\123\164\141\141 +\164\040\144\145\162\040\116\145\144\145\162\154\141\156\144\145 +\156\040\122\157\157\164\040\103\101\060\036\027\015\060\062\061 +\062\061\067\060\071\062\063\064\071\132\027\015\061\065\061\062 +\061\066\060\071\061\065\063\070\132\060\125\061\013\060\011\006 +\003\125\004\006\023\002\116\114\061\036\060\034\006\003\125\004 +\012\023\025\123\164\141\141\164\040\144\145\162\040\116\145\144 +\145\162\154\141\156\144\145\156\061\046\060\044\006\003\125\004 +\003\023\035\123\164\141\141\164\040\144\145\162\040\116\145\144 +\145\162\154\141\156\144\145\156\040\122\157\157\164\040\103\101 +\060\202\001\042\060\015\006\011\052\206\110\206\367\015\001\001 +\001\005\000\003\202\001\017\000\060\202\001\012\002\202\001\001 +\000\230\322\265\121\021\172\201\246\024\230\161\155\276\314\347 +\023\033\326\047\016\172\263\152\030\034\266\141\132\325\141\011 +\277\336\220\023\307\147\356\335\363\332\305\014\022\236\065\125 +\076\054\047\210\100\153\367\334\335\042\141\365\302\307\016\365 +\366\325\166\123\115\217\214\274\030\166\067\205\235\350\312\111 +\307\322\117\230\023\011\242\076\042\210\234\177\326\362\020\145 +\264\356\137\030\325\027\343\370\305\375\342\235\242\357\123\016 +\205\167\242\017\341\060\107\356\000\347\063\175\104\147\032\013 +\121\350\213\240\236\120\230\150\064\122\037\056\155\001\362\140 +\105\362\061\353\251\061\150\051\273\172\101\236\306\031\177\224 +\264\121\071\003\177\262\336\247\062\233\264\107\216\157\264\112 +\256\345\257\261\334\260\033\141\274\231\162\336\344\211\267\172 +\046\135\332\063\111\133\122\234\016\365\212\255\303\270\075\350 +\006\152\302\325\052\013\154\173\204\275\126\005\313\206\145\222 +\354\104\053\260\216\271\334\160\013\106\332\255\274\143\210\071 +\372\333\152\376\043\372\274\344\110\364\147\053\152\021\020\041 +\111\002\003\001\000\001\243\201\221\060\201\216\060\014\006\003 +\125\035\023\004\005\060\003\001\001\377\060\117\006\003\125\035 +\040\004\110\060\106\060\104\006\004\125\035\040\000\060\074\060 +\072\006\010\053\006\001\005\005\007\002\001\026\056\150\164\164 +\160\072\057\057\167\167\167\056\160\153\151\157\166\145\162\150 +\145\151\144\056\156\154\057\160\157\154\151\143\151\145\163\057 +\162\157\157\164\055\160\157\154\151\143\171\060\016\006\003\125 +\035\017\001\001\377\004\004\003\002\001\006\060\035\006\003\125 +\035\016\004\026\004\024\250\175\353\274\143\244\164\023\164\000 +\354\226\340\323\064\301\054\277\154\370\060\015\006\011\052\206 +\110\206\367\015\001\001\005\005\000\003\202\001\001\000\005\204 +\207\125\164\066\141\301\273\321\324\306\025\250\023\264\237\244 +\376\273\356\025\264\057\006\014\051\362\250\222\244\141\015\374 +\253\134\010\133\121\023\053\115\302\052\141\310\370\011\130\374 +\055\002\262\071\175\231\146\201\277\156\134\225\105\040\154\346 +\171\247\321\330\034\051\374\302\040\047\121\310\361\174\135\064 +\147\151\205\021\060\306\000\322\327\363\323\174\266\360\061\127 +\050\022\202\163\351\063\057\246\125\264\013\221\224\107\234\372 +\273\172\102\062\350\256\176\055\310\274\254\024\277\331\017\331 +\133\374\301\371\172\225\341\175\176\226\374\161\260\302\114\310 +\337\105\064\311\316\015\362\234\144\010\320\073\303\051\305\262 +\355\220\004\301\261\051\221\305\060\157\301\251\162\063\314\376 +\135\026\027\054\021\151\347\176\376\305\203\010\337\274\334\042 +\072\056\040\151\043\071\126\140\147\220\213\056\166\071\373\021 +\210\227\366\174\275\113\270\040\026\147\005\215\342\073\301\162 +\077\224\225\067\307\135\271\236\330\223\241\027\217\377\014\146 +\025\301\044\174\062\174\003\035\073\241\130\105\062\223 +END + +# Trust for Certificate "Staat der Nederlanden Root CA" +CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "Staat der Nederlanden Root CA" +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\020\035\372\077\325\013\313\273\233\265\140\014\031\125\244\032 +\364\163\072\004 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\140\204\174\132\316\333\014\324\313\247\351\376\002\306\251\300 +END +CKA_ISSUER MULTILINE_OCTAL +\060\125\061\013\060\011\006\003\125\004\006\023\002\116\114\061 +\036\060\034\006\003\125\004\012\023\025\123\164\141\141\164\040 +\144\145\162\040\116\145\144\145\162\154\141\156\144\145\156\061 +\046\060\044\006\003\125\004\003\023\035\123\164\141\141\164\040 +\144\145\162\040\116\145\144\145\162\154\141\156\144\145\156\040 +\122\157\157\164\040\103\101 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\004\000\230\226\212 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "TDC Internet Root CA" +# +CKA_CLASS CK_OBJECT_CLASS CKO_CERTIFICATE +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "TDC Internet Root CA" +CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509 +CKA_SUBJECT MULTILINE_OCTAL +\060\103\061\013\060\011\006\003\125\004\006\023\002\104\113\061 +\025\060\023\006\003\125\004\012\023\014\124\104\103\040\111\156 +\164\145\162\156\145\164\061\035\060\033\006\003\125\004\013\023 +\024\124\104\103\040\111\156\164\145\162\156\145\164\040\122\157 +\157\164\040\103\101 +END +CKA_ID UTF8 "0" +CKA_ISSUER MULTILINE_OCTAL +\060\103\061\013\060\011\006\003\125\004\006\023\002\104\113\061 +\025\060\023\006\003\125\004\012\023\014\124\104\103\040\111\156 +\164\145\162\156\145\164\061\035\060\033\006\003\125\004\013\023 +\024\124\104\103\040\111\156\164\145\162\156\145\164\040\122\157 +\157\164\040\103\101 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\004\072\314\245\114 +END +CKA_VALUE MULTILINE_OCTAL +\060\202\004\053\060\202\003\023\240\003\002\001\002\002\004\072 +\314\245\114\060\015\006\011\052\206\110\206\367\015\001\001\005 +\005\000\060\103\061\013\060\011\006\003\125\004\006\023\002\104 +\113\061\025\060\023\006\003\125\004\012\023\014\124\104\103\040 +\111\156\164\145\162\156\145\164\061\035\060\033\006\003\125\004 +\013\023\024\124\104\103\040\111\156\164\145\162\156\145\164\040 +\122\157\157\164\040\103\101\060\036\027\015\060\061\060\064\060 +\065\061\066\063\063\061\067\132\027\015\062\061\060\064\060\065 +\061\067\060\063\061\067\132\060\103\061\013\060\011\006\003\125 +\004\006\023\002\104\113\061\025\060\023\006\003\125\004\012\023 +\014\124\104\103\040\111\156\164\145\162\156\145\164\061\035\060 +\033\006\003\125\004\013\023\024\124\104\103\040\111\156\164\145 +\162\156\145\164\040\122\157\157\164\040\103\101\060\202\001\042 +\060\015\006\011\052\206\110\206\367\015\001\001\001\005\000\003 +\202\001\017\000\060\202\001\012\002\202\001\001\000\304\270\100 +\274\221\325\143\037\327\231\240\213\014\100\036\164\267\110\235 +\106\214\002\262\340\044\137\360\031\023\247\067\203\153\135\307 +\216\371\204\060\316\032\073\372\373\316\213\155\043\306\303\156 +\146\237\211\245\337\340\102\120\147\372\037\154\036\364\320\005 +\326\277\312\326\116\344\150\140\154\106\252\034\135\143\341\007 +\206\016\145\000\247\056\246\161\306\274\271\201\250\072\175\032 +\322\371\321\254\113\313\316\165\257\334\173\372\201\163\324\374 +\272\275\101\210\324\164\263\371\136\070\072\074\103\250\322\225 +\116\167\155\023\014\235\217\170\001\267\132\040\037\003\067\065 +\342\054\333\113\053\054\170\271\111\333\304\320\307\234\234\344 +\212\040\011\041\026\126\146\377\005\354\133\343\360\317\253\044 +\044\136\303\177\160\172\022\304\322\265\020\240\266\041\341\215 +\170\151\125\104\151\365\312\226\034\064\205\027\045\167\342\366 +\057\047\230\170\375\171\006\072\242\326\132\103\301\377\354\004 +\073\356\023\357\323\130\132\377\222\353\354\256\332\362\067\003 +\107\101\266\227\311\055\012\101\042\273\273\346\247\002\003\001 +\000\001\243\202\001\045\060\202\001\041\060\021\006\011\140\206 +\110\001\206\370\102\001\001\004\004\003\002\000\007\060\145\006 +\003\125\035\037\004\136\060\134\060\132\240\130\240\126\244\124 +\060\122\061\013\060\011\006\003\125\004\006\023\002\104\113\061 +\025\060\023\006\003\125\004\012\023\014\124\104\103\040\111\156 +\164\145\162\156\145\164\061\035\060\033\006\003\125\004\013\023 +\024\124\104\103\040\111\156\164\145\162\156\145\164\040\122\157 +\157\164\040\103\101\061\015\060\013\006\003\125\004\003\023\004 +\103\122\114\061\060\053\006\003\125\035\020\004\044\060\042\200 +\017\062\060\060\061\060\064\060\065\061\066\063\063\061\067\132 +\201\017\062\060\062\061\060\064\060\065\061\067\060\063\061\067 +\132\060\013\006\003\125\035\017\004\004\003\002\001\006\060\037 +\006\003\125\035\043\004\030\060\026\200\024\154\144\001\307\375 +\205\155\254\310\332\236\120\010\205\010\265\074\126\250\120\060 +\035\006\003\125\035\016\004\026\004\024\154\144\001\307\375\205 +\155\254\310\332\236\120\010\205\010\265\074\126\250\120\060\014 +\006\003\125\035\023\004\005\060\003\001\001\377\060\035\006\011 +\052\206\110\206\366\175\007\101\000\004\020\060\016\033\010\126 +\065\056\060\072\064\056\060\003\002\004\220\060\015\006\011\052 +\206\110\206\367\015\001\001\005\005\000\003\202\001\001\000\116 +\103\314\321\335\035\020\033\006\177\267\244\372\323\331\115\373 +\043\237\043\124\133\346\213\057\004\050\213\265\047\155\211\241 +\354\230\151\334\347\215\046\203\005\171\164\354\264\271\243\227 +\301\065\000\375\025\332\071\201\072\225\061\220\336\227\351\206 +\250\231\167\014\345\132\240\204\377\022\026\254\156\270\215\303 +\173\222\302\254\056\320\175\050\354\266\363\140\070\151\157\076 +\330\004\125\076\236\314\125\322\272\376\273\107\004\327\012\331 +\026\012\064\051\365\130\023\325\117\317\217\126\113\263\036\356 +\323\230\171\332\010\036\014\157\270\370\026\047\357\302\157\075 +\366\243\113\076\016\344\155\154\333\073\101\022\233\275\015\107 +\043\177\074\112\320\257\300\257\366\357\033\265\025\304\353\203 +\304\011\137\164\213\331\021\373\302\126\261\074\370\160\312\064 +\215\103\100\023\214\375\231\003\124\171\306\056\352\206\241\366 +\072\324\011\274\364\274\146\314\075\130\320\127\111\012\356\045 +\342\101\356\023\371\233\070\064\321\000\365\176\347\224\035\374 +\151\003\142\270\231\005\005\075\153\170\022\275\260\157\145 +END + +# Trust for Certificate "TDC Internet Root CA" +CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "TDC Internet Root CA" +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\041\374\275\216\177\154\257\005\033\321\263\103\354\250\347\141 +\107\362\017\212 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\221\364\003\125\040\241\370\143\054\142\336\254\373\141\034\216 +END +CKA_ISSUER MULTILINE_OCTAL +\060\103\061\013\060\011\006\003\125\004\006\023\002\104\113\061 +\025\060\023\006\003\125\004\012\023\014\124\104\103\040\111\156 +\164\145\162\156\145\164\061\035\060\033\006\003\125\004\013\023 +\024\124\104\103\040\111\156\164\145\162\156\145\164\040\122\157 +\157\164\040\103\101 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\004\072\314\245\114 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_MUST_VERIFY_TRUST +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_MUST_VERIFY_TRUST +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "TDC OCES Root CA" +# +CKA_CLASS CK_OBJECT_CLASS CKO_CERTIFICATE +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "TDC OCES Root CA" +CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509 +CKA_SUBJECT MULTILINE_OCTAL +\060\061\061\013\060\011\006\003\125\004\006\023\002\104\113\061 +\014\060\012\006\003\125\004\012\023\003\124\104\103\061\024\060 +\022\006\003\125\004\003\023\013\124\104\103\040\117\103\105\123 +\040\103\101 +END +CKA_ID UTF8 "0" +CKA_ISSUER MULTILINE_OCTAL +\060\061\061\013\060\011\006\003\125\004\006\023\002\104\113\061 +\014\060\012\006\003\125\004\012\023\003\124\104\103\061\024\060 +\022\006\003\125\004\003\023\013\124\104\103\040\117\103\105\123 +\040\103\101 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\004\076\110\275\304 +END +CKA_VALUE MULTILINE_OCTAL +\060\202\005\031\060\202\004\001\240\003\002\001\002\002\004\076 +\110\275\304\060\015\006\011\052\206\110\206\367\015\001\001\005 +\005\000\060\061\061\013\060\011\006\003\125\004\006\023\002\104 +\113\061\014\060\012\006\003\125\004\012\023\003\124\104\103\061 +\024\060\022\006\003\125\004\003\023\013\124\104\103\040\117\103 +\105\123\040\103\101\060\036\027\015\060\063\060\062\061\061\060 +\070\063\071\063\060\132\027\015\063\067\060\062\061\061\060\071 +\060\071\063\060\132\060\061\061\013\060\011\006\003\125\004\006 +\023\002\104\113\061\014\060\012\006\003\125\004\012\023\003\124 +\104\103\061\024\060\022\006\003\125\004\003\023\013\124\104\103 +\040\117\103\105\123\040\103\101\060\202\001\042\060\015\006\011 +\052\206\110\206\367\015\001\001\001\005\000\003\202\001\017\000 +\060\202\001\012\002\202\001\001\000\254\142\366\141\040\262\317 +\300\306\205\327\343\171\346\314\355\362\071\222\244\227\056\144 +\243\204\133\207\234\114\375\244\363\304\137\041\275\126\020\353 +\333\056\141\354\223\151\343\243\314\275\231\303\005\374\006\270 +\312\066\034\376\220\216\111\114\304\126\232\057\126\274\317\173 +\014\361\157\107\246\015\103\115\342\351\035\071\064\315\215\054 +\331\022\230\371\343\341\301\112\174\206\070\304\251\304\141\210 +\322\136\257\032\046\115\325\344\240\042\107\204\331\144\267\031 +\226\374\354\031\344\262\227\046\116\112\114\313\217\044\213\124 +\030\034\110\141\173\325\210\150\332\135\265\352\315\032\060\301 +\200\203\166\120\252\117\321\324\335\070\360\357\026\364\341\014 +\120\006\277\352\373\172\111\241\050\053\034\366\374\025\062\243 +\164\152\217\251\303\142\051\161\061\345\073\244\140\027\136\164 +\346\332\023\355\351\037\037\033\321\262\150\163\306\020\064\165 +\106\020\020\343\220\000\166\100\313\213\267\103\011\041\377\253 +\116\223\306\130\351\245\202\333\167\304\072\231\261\162\225\111 +\004\360\267\053\372\173\131\216\335\002\003\001\000\001\243\202 +\002\067\060\202\002\063\060\017\006\003\125\035\023\001\001\377 +\004\005\060\003\001\001\377\060\016\006\003\125\035\017\001\001 +\377\004\004\003\002\001\006\060\201\354\006\003\125\035\040\004 +\201\344\060\201\341\060\201\336\006\010\052\201\120\201\051\001 +\001\001\060\201\321\060\057\006\010\053\006\001\005\005\007\002 +\001\026\043\150\164\164\160\072\057\057\167\167\167\056\143\145 +\162\164\151\146\151\153\141\164\056\144\153\057\162\145\160\157 +\163\151\164\157\162\171\060\201\235\006\010\053\006\001\005\005 +\007\002\002\060\201\220\060\012\026\003\124\104\103\060\003\002 +\001\001\032\201\201\103\145\162\164\151\146\151\153\141\164\145 +\162\040\146\162\141\040\144\145\156\156\145\040\103\101\040\165 +\144\163\164\145\144\145\163\040\165\156\144\145\162\040\117\111 +\104\040\061\056\062\056\062\060\070\056\061\066\071\056\061\056 +\061\056\061\056\040\103\145\162\164\151\146\151\143\141\164\145 +\163\040\146\162\157\155\040\164\150\151\163\040\103\101\040\141 +\162\145\040\151\163\163\165\145\144\040\165\156\144\145\162\040 +\117\111\104\040\061\056\062\056\062\060\070\056\061\066\071\056 +\061\056\061\056\061\056\060\021\006\011\140\206\110\001\206\370 +\102\001\001\004\004\003\002\000\007\060\201\201\006\003\125\035 +\037\004\172\060\170\060\110\240\106\240\104\244\102\060\100\061 +\013\060\011\006\003\125\004\006\023\002\104\113\061\014\060\012 +\006\003\125\004\012\023\003\124\104\103\061\024\060\022\006\003 +\125\004\003\023\013\124\104\103\040\117\103\105\123\040\103\101 +\061\015\060\013\006\003\125\004\003\023\004\103\122\114\061\060 +\054\240\052\240\050\206\046\150\164\164\160\072\057\057\143\162 +\154\056\157\143\145\163\056\143\145\162\164\151\146\151\153\141 +\164\056\144\153\057\157\143\145\163\056\143\162\154\060\053\006 +\003\125\035\020\004\044\060\042\200\017\062\060\060\063\060\062 +\061\061\060\070\063\071\063\060\132\201\017\062\060\063\067\060 +\062\061\061\060\071\060\071\063\060\132\060\037\006\003\125\035 +\043\004\030\060\026\200\024\140\265\205\354\126\144\176\022\031 +\047\147\035\120\025\113\163\256\073\371\022\060\035\006\003\125 +\035\016\004\026\004\024\140\265\205\354\126\144\176\022\031\047 +\147\035\120\025\113\163\256\073\371\022\060\035\006\011\052\206 +\110\206\366\175\007\101\000\004\020\060\016\033\010\126\066\056 +\060\072\064\056\060\003\002\004\220\060\015\006\011\052\206\110 +\206\367\015\001\001\005\005\000\003\202\001\001\000\012\272\046 +\046\106\323\163\250\011\363\153\013\060\231\375\212\341\127\172 +\021\323\270\224\327\011\020\156\243\261\070\003\321\266\362\103 +\101\051\142\247\162\330\373\174\005\346\061\160\047\124\030\116 +\212\174\116\345\321\312\214\170\210\317\033\323\220\213\346\043 +\370\013\016\063\103\175\234\342\012\031\217\311\001\076\164\135 +\164\311\213\034\003\345\030\310\001\114\077\313\227\005\135\230 +\161\246\230\157\266\174\275\067\177\276\341\223\045\155\157\360 +\012\255\027\030\341\003\274\007\051\310\255\046\350\370\141\360 +\375\041\011\176\232\216\251\150\175\110\142\162\275\000\352\001 +\231\270\006\202\121\201\116\361\365\264\221\124\271\043\172\000 +\232\237\135\215\340\074\144\271\032\022\222\052\307\202\104\162 +\071\334\342\074\306\330\125\365\025\116\310\005\016\333\306\320 +\142\246\354\025\264\265\002\202\333\254\214\242\201\360\233\231 +\061\365\040\040\250\210\141\012\007\237\224\374\320\327\033\314 +\056\027\363\004\047\166\147\353\124\203\375\244\220\176\006\075 +\004\243\103\055\332\374\013\142\352\057\137\142\123 +END + +# Trust for Certificate "TDC OCES Root CA" +CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "TDC OCES Root CA" +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\207\201\302\132\226\275\302\373\114\145\006\117\371\071\013\046 +\004\212\016\001 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\223\177\220\034\355\204\147\027\244\145\137\233\313\060\002\227 +END +CKA_ISSUER MULTILINE_OCTAL +\060\061\061\013\060\011\006\003\125\004\006\023\002\104\113\061 +\014\060\012\006\003\125\004\012\023\003\124\104\103\061\024\060 +\022\006\003\125\004\003\023\013\124\104\103\040\117\103\105\123 +\040\103\101 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\004\076\110\275\304 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_MUST_VERIFY_TRUST +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_MUST_VERIFY_TRUST +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "UTN DATACorp SGC Root CA" +# +CKA_CLASS CK_OBJECT_CLASS CKO_CERTIFICATE +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "UTN DATACorp SGC Root CA" +CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509 +CKA_SUBJECT MULTILINE_OCTAL +\060\201\223\061\013\060\011\006\003\125\004\006\023\002\125\123 +\061\013\060\011\006\003\125\004\010\023\002\125\124\061\027\060 +\025\006\003\125\004\007\023\016\123\141\154\164\040\114\141\153 +\145\040\103\151\164\171\061\036\060\034\006\003\125\004\012\023 +\025\124\150\145\040\125\123\105\122\124\122\125\123\124\040\116 +\145\164\167\157\162\153\061\041\060\037\006\003\125\004\013\023 +\030\150\164\164\160\072\057\057\167\167\167\056\165\163\145\162 +\164\162\165\163\164\056\143\157\155\061\033\060\031\006\003\125 +\004\003\023\022\125\124\116\040\055\040\104\101\124\101\103\157 +\162\160\040\123\107\103 +END +CKA_ID UTF8 "0" +CKA_ISSUER MULTILINE_OCTAL +\060\201\223\061\013\060\011\006\003\125\004\006\023\002\125\123 +\061\013\060\011\006\003\125\004\010\023\002\125\124\061\027\060 +\025\006\003\125\004\007\023\016\123\141\154\164\040\114\141\153 +\145\040\103\151\164\171\061\036\060\034\006\003\125\004\012\023 +\025\124\150\145\040\125\123\105\122\124\122\125\123\124\040\116 +\145\164\167\157\162\153\061\041\060\037\006\003\125\004\013\023 +\030\150\164\164\160\072\057\057\167\167\167\056\165\163\145\162 +\164\162\165\163\164\056\143\157\155\061\033\060\031\006\003\125 +\004\003\023\022\125\124\116\040\055\040\104\101\124\101\103\157 +\162\160\040\123\107\103 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\020\104\276\014\213\120\000\041\264\021\323\052\150\006\251 +\255\151 +END +CKA_VALUE MULTILINE_OCTAL +\060\202\004\136\060\202\003\106\240\003\002\001\002\002\020\104 +\276\014\213\120\000\041\264\021\323\052\150\006\251\255\151\060 +\015\006\011\052\206\110\206\367\015\001\001\005\005\000\060\201 +\223\061\013\060\011\006\003\125\004\006\023\002\125\123\061\013 +\060\011\006\003\125\004\010\023\002\125\124\061\027\060\025\006 +\003\125\004\007\023\016\123\141\154\164\040\114\141\153\145\040 +\103\151\164\171\061\036\060\034\006\003\125\004\012\023\025\124 +\150\145\040\125\123\105\122\124\122\125\123\124\040\116\145\164 +\167\157\162\153\061\041\060\037\006\003\125\004\013\023\030\150 +\164\164\160\072\057\057\167\167\167\056\165\163\145\162\164\162 +\165\163\164\056\143\157\155\061\033\060\031\006\003\125\004\003 +\023\022\125\124\116\040\055\040\104\101\124\101\103\157\162\160 +\040\123\107\103\060\036\027\015\071\071\060\066\062\064\061\070 +\065\067\062\061\132\027\015\061\071\060\066\062\064\061\071\060 +\066\063\060\132\060\201\223\061\013\060\011\006\003\125\004\006 +\023\002\125\123\061\013\060\011\006\003\125\004\010\023\002\125 +\124\061\027\060\025\006\003\125\004\007\023\016\123\141\154\164 +\040\114\141\153\145\040\103\151\164\171\061\036\060\034\006\003 +\125\004\012\023\025\124\150\145\040\125\123\105\122\124\122\125 +\123\124\040\116\145\164\167\157\162\153\061\041\060\037\006\003 +\125\004\013\023\030\150\164\164\160\072\057\057\167\167\167\056 +\165\163\145\162\164\162\165\163\164\056\143\157\155\061\033\060 +\031\006\003\125\004\003\023\022\125\124\116\040\055\040\104\101 +\124\101\103\157\162\160\040\123\107\103\060\202\001\042\060\015 +\006\011\052\206\110\206\367\015\001\001\001\005\000\003\202\001 +\017\000\060\202\001\012\002\202\001\001\000\337\356\130\020\242 +\053\156\125\304\216\277\056\106\011\347\340\010\017\056\053\172 +\023\224\033\275\366\266\200\216\145\005\223\000\036\274\257\342 +\017\216\031\015\022\107\354\254\255\243\372\056\160\370\336\156 +\373\126\102\025\236\056\134\357\043\336\041\271\005\166\047\031 +\017\117\326\303\234\264\276\224\031\143\362\246\021\012\353\123 +\110\234\276\362\051\073\026\350\032\240\114\246\311\364\030\131 +\150\300\160\362\123\000\300\136\120\202\245\126\157\066\371\112 +\340\104\206\240\115\116\326\107\156\111\112\313\147\327\246\304 +\005\271\216\036\364\374\377\315\347\066\340\234\005\154\262\063 +\042\025\320\264\340\314\027\300\262\300\364\376\062\077\051\052 +\225\173\330\362\247\116\017\124\174\241\015\200\263\011\003\301 +\377\134\335\136\232\076\274\256\274\107\212\152\256\161\312\037 +\261\052\270\137\102\005\013\354\106\060\321\162\013\312\351\126 +\155\365\357\337\170\276\141\272\262\245\256\004\114\274\250\254 +\151\025\227\275\357\353\264\214\277\065\370\324\303\321\050\016 +\134\072\237\160\030\063\040\167\304\242\257\002\003\001\000\001 +\243\201\253\060\201\250\060\013\006\003\125\035\017\004\004\003 +\002\001\306\060\017\006\003\125\035\023\001\001\377\004\005\060 +\003\001\001\377\060\035\006\003\125\035\016\004\026\004\024\123 +\062\321\263\317\177\372\340\361\240\135\205\116\222\322\236\105 +\035\264\117\060\075\006\003\125\035\037\004\066\060\064\060\062 +\240\060\240\056\206\054\150\164\164\160\072\057\057\143\162\154 +\056\165\163\145\162\164\162\165\163\164\056\143\157\155\057\125 +\124\116\055\104\101\124\101\103\157\162\160\123\107\103\056\143 +\162\154\060\052\006\003\125\035\045\004\043\060\041\006\010\053 +\006\001\005\005\007\003\001\006\012\053\006\001\004\001\202\067 +\012\003\003\006\011\140\206\110\001\206\370\102\004\001\060\015 +\006\011\052\206\110\206\367\015\001\001\005\005\000\003\202\001 +\001\000\047\065\227\000\212\213\050\275\306\063\060\036\051\374 +\342\367\325\230\324\100\273\140\312\277\253\027\054\011\066\177 +\120\372\101\334\256\226\072\012\043\076\211\131\311\243\007\355 +\033\067\255\374\174\276\121\111\132\336\072\012\124\010\026\105 +\302\231\261\207\315\214\150\340\151\003\351\304\116\230\262\073 +\214\026\263\016\240\014\230\120\233\223\251\160\011\310\054\243 +\217\337\002\344\340\161\072\361\264\043\162\240\252\001\337\337 +\230\076\024\120\240\061\046\275\050\351\132\060\046\165\371\173 +\140\034\215\363\315\120\046\155\004\047\232\337\325\015\105\107 +\051\153\054\346\166\331\251\051\175\062\335\311\066\074\275\256 +\065\361\021\236\035\273\220\077\022\107\116\216\327\176\017\142 +\163\035\122\046\070\034\030\111\375\060\164\232\304\345\042\057 +\330\300\215\355\221\172\114\000\217\162\177\135\332\335\033\213 +\105\153\347\335\151\227\250\305\126\114\017\014\366\237\172\221 +\067\366\227\202\340\335\161\151\377\166\077\140\115\074\317\367 +\231\371\306\127\364\311\125\071\170\272\054\171\311\246\210\053 +\364\010 +END + +# Trust for Certificate "UTN DATACorp SGC Root CA" +CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "UTN DATACorp SGC Root CA" +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\130\021\237\016\022\202\207\352\120\375\331\207\105\157\117\170 +\334\372\326\324 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\263\245\076\167\041\155\254\112\300\311\373\325\101\075\312\006 +END +CKA_ISSUER MULTILINE_OCTAL +\060\201\223\061\013\060\011\006\003\125\004\006\023\002\125\123 +\061\013\060\011\006\003\125\004\010\023\002\125\124\061\027\060 +\025\006\003\125\004\007\023\016\123\141\154\164\040\114\141\153 +\145\040\103\151\164\171\061\036\060\034\006\003\125\004\012\023 +\025\124\150\145\040\125\123\105\122\124\122\125\123\124\040\116 +\145\164\167\157\162\153\061\041\060\037\006\003\125\004\013\023 +\030\150\164\164\160\072\057\057\167\167\167\056\165\163\145\162 +\164\162\165\163\164\056\143\157\155\061\033\060\031\006\003\125 +\004\003\023\022\125\124\116\040\055\040\104\101\124\101\103\157 +\162\160\040\123\107\103 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\020\104\276\014\213\120\000\041\264\021\323\052\150\006\251 +\255\151 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_TRUST_UNKNOWN +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_TRUST_UNKNOWN +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "UTN USERFirst Email Root CA" +# +CKA_CLASS CK_OBJECT_CLASS CKO_CERTIFICATE +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "UTN USERFirst Email Root CA" +CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509 +CKA_SUBJECT MULTILINE_OCTAL +\060\201\256\061\013\060\011\006\003\125\004\006\023\002\125\123 +\061\013\060\011\006\003\125\004\010\023\002\125\124\061\027\060 +\025\006\003\125\004\007\023\016\123\141\154\164\040\114\141\153 +\145\040\103\151\164\171\061\036\060\034\006\003\125\004\012\023 +\025\124\150\145\040\125\123\105\122\124\122\125\123\124\040\116 +\145\164\167\157\162\153\061\041\060\037\006\003\125\004\013\023 +\030\150\164\164\160\072\057\057\167\167\167\056\165\163\145\162 +\164\162\165\163\164\056\143\157\155\061\066\060\064\006\003\125 +\004\003\023\055\125\124\116\055\125\123\105\122\106\151\162\163 +\164\055\103\154\151\145\156\164\040\101\165\164\150\145\156\164 +\151\143\141\164\151\157\156\040\141\156\144\040\105\155\141\151 +\154 +END +CKA_ID UTF8 "0" +CKA_ISSUER MULTILINE_OCTAL +\060\201\256\061\013\060\011\006\003\125\004\006\023\002\125\123 +\061\013\060\011\006\003\125\004\010\023\002\125\124\061\027\060 +\025\006\003\125\004\007\023\016\123\141\154\164\040\114\141\153 +\145\040\103\151\164\171\061\036\060\034\006\003\125\004\012\023 +\025\124\150\145\040\125\123\105\122\124\122\125\123\124\040\116 +\145\164\167\157\162\153\061\041\060\037\006\003\125\004\013\023 +\030\150\164\164\160\072\057\057\167\167\167\056\165\163\145\162 +\164\162\165\163\164\056\143\157\155\061\066\060\064\006\003\125 +\004\003\023\055\125\124\116\055\125\123\105\122\106\151\162\163 +\164\055\103\154\151\145\156\164\040\101\165\164\150\145\156\164 +\151\143\141\164\151\157\156\040\141\156\144\040\105\155\141\151 +\154 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\020\104\276\014\213\120\000\044\264\021\323\066\045\045\147 +\311\211 +END +CKA_VALUE MULTILINE_OCTAL +\060\202\004\242\060\202\003\212\240\003\002\001\002\002\020\104 +\276\014\213\120\000\044\264\021\323\066\045\045\147\311\211\060 +\015\006\011\052\206\110\206\367\015\001\001\005\005\000\060\201 +\256\061\013\060\011\006\003\125\004\006\023\002\125\123\061\013 +\060\011\006\003\125\004\010\023\002\125\124\061\027\060\025\006 +\003\125\004\007\023\016\123\141\154\164\040\114\141\153\145\040 +\103\151\164\171\061\036\060\034\006\003\125\004\012\023\025\124 +\150\145\040\125\123\105\122\124\122\125\123\124\040\116\145\164 +\167\157\162\153\061\041\060\037\006\003\125\004\013\023\030\150 +\164\164\160\072\057\057\167\167\167\056\165\163\145\162\164\162 +\165\163\164\056\143\157\155\061\066\060\064\006\003\125\004\003 +\023\055\125\124\116\055\125\123\105\122\106\151\162\163\164\055 +\103\154\151\145\156\164\040\101\165\164\150\145\156\164\151\143 +\141\164\151\157\156\040\141\156\144\040\105\155\141\151\154\060 +\036\027\015\071\071\060\067\060\071\061\067\062\070\065\060\132 +\027\015\061\071\060\067\060\071\061\067\063\066\065\070\132\060 +\201\256\061\013\060\011\006\003\125\004\006\023\002\125\123\061 +\013\060\011\006\003\125\004\010\023\002\125\124\061\027\060\025 +\006\003\125\004\007\023\016\123\141\154\164\040\114\141\153\145 +\040\103\151\164\171\061\036\060\034\006\003\125\004\012\023\025 +\124\150\145\040\125\123\105\122\124\122\125\123\124\040\116\145 +\164\167\157\162\153\061\041\060\037\006\003\125\004\013\023\030 +\150\164\164\160\072\057\057\167\167\167\056\165\163\145\162\164 +\162\165\163\164\056\143\157\155\061\066\060\064\006\003\125\004 +\003\023\055\125\124\116\055\125\123\105\122\106\151\162\163\164 +\055\103\154\151\145\156\164\040\101\165\164\150\145\156\164\151 +\143\141\164\151\157\156\040\141\156\144\040\105\155\141\151\154 +\060\202\001\042\060\015\006\011\052\206\110\206\367\015\001\001 +\001\005\000\003\202\001\017\000\060\202\001\012\002\202\001\001 +\000\262\071\205\244\362\175\253\101\073\142\106\067\256\315\301 +\140\165\274\071\145\371\112\032\107\242\271\314\110\314\152\230 +\325\115\065\031\271\244\102\345\316\111\342\212\057\036\174\322 +\061\007\307\116\264\203\144\235\056\051\325\242\144\304\205\275 +\205\121\065\171\244\116\150\220\173\034\172\244\222\250\027\362 +\230\025\362\223\314\311\244\062\225\273\014\117\060\275\230\240 +\013\213\345\156\033\242\106\372\170\274\242\157\253\131\136\245 +\057\317\312\332\155\252\057\353\254\241\263\152\252\267\056\147 +\065\213\171\341\036\151\210\342\346\106\315\240\245\352\276\013 +\316\166\072\172\016\233\352\374\332\047\133\075\163\037\042\346 +\110\141\306\114\363\151\261\250\056\033\266\324\061\040\054\274 +\202\212\216\244\016\245\327\211\103\374\026\132\257\035\161\327 +\021\131\332\272\207\015\257\372\363\341\302\360\244\305\147\214 +\326\326\124\072\336\012\244\272\003\167\263\145\310\375\036\323 +\164\142\252\030\312\150\223\036\241\205\176\365\107\145\313\370 +\115\127\050\164\322\064\377\060\266\356\366\142\060\024\214\054 +\353\002\003\001\000\001\243\201\271\060\201\266\060\013\006\003 +\125\035\017\004\004\003\002\001\306\060\017\006\003\125\035\023 +\001\001\377\004\005\060\003\001\001\377\060\035\006\003\125\035 +\016\004\026\004\024\211\202\147\175\304\235\046\160\000\113\264 +\120\110\174\336\075\256\004\156\175\060\130\006\003\125\035\037 +\004\121\060\117\060\115\240\113\240\111\206\107\150\164\164\160 +\072\057\057\143\162\154\056\165\163\145\162\164\162\165\163\164 +\056\143\157\155\057\125\124\116\055\125\123\105\122\106\151\162 +\163\164\055\103\154\151\145\156\164\101\165\164\150\145\156\164 +\151\143\141\164\151\157\156\141\156\144\105\155\141\151\154\056 +\143\162\154\060\035\006\003\125\035\045\004\026\060\024\006\010 +\053\006\001\005\005\007\003\002\006\010\053\006\001\005\005\007 +\003\004\060\015\006\011\052\206\110\206\367\015\001\001\005\005 +\000\003\202\001\001\000\261\155\141\135\246\032\177\174\253\112 +\344\060\374\123\157\045\044\306\312\355\342\061\134\053\016\356 +\356\141\125\157\004\076\317\071\336\305\033\111\224\344\353\040 +\114\264\346\236\120\056\162\331\215\365\252\243\263\112\332\126 +\034\140\227\200\334\202\242\255\112\275\212\053\377\013\011\264 +\306\327\040\004\105\344\315\200\001\272\272\053\156\316\252\327 +\222\376\344\257\353\364\046\035\026\052\177\154\060\225\067\057 +\063\022\254\177\335\307\321\021\214\121\230\262\320\243\221\320 +\255\366\237\236\203\223\036\035\102\270\106\257\153\146\360\233 +\177\352\343\003\002\345\002\121\301\252\325\065\235\162\100\003 +\211\272\061\035\305\020\150\122\236\337\242\205\305\134\010\246 +\170\346\123\117\261\350\267\323\024\236\223\246\303\144\343\254 +\176\161\315\274\237\351\003\033\314\373\351\254\061\301\257\174 +\025\164\002\231\303\262\107\246\302\062\141\327\307\157\110\044 +\121\047\241\325\207\125\362\173\217\230\075\026\236\356\165\266 +\370\320\216\362\363\306\256\050\133\247\360\363\066\027\374\303 +\005\323\312\003\112\124 +END + +# Trust for Certificate "UTN USERFirst Email Root CA" +CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "UTN USERFirst Email Root CA" +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\261\162\261\245\155\225\371\037\345\002\207\341\115\067\352\152 +\104\143\166\212 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\327\064\075\357\035\047\011\050\341\061\002\133\023\053\335\367 +END +CKA_ISSUER MULTILINE_OCTAL +\060\201\256\061\013\060\011\006\003\125\004\006\023\002\125\123 +\061\013\060\011\006\003\125\004\010\023\002\125\124\061\027\060 +\025\006\003\125\004\007\023\016\123\141\154\164\040\114\141\153 +\145\040\103\151\164\171\061\036\060\034\006\003\125\004\012\023 +\025\124\150\145\040\125\123\105\122\124\122\125\123\124\040\116 +\145\164\167\157\162\153\061\041\060\037\006\003\125\004\013\023 +\030\150\164\164\160\072\057\057\167\167\167\056\165\163\145\162 +\164\162\165\163\164\056\143\157\155\061\066\060\064\006\003\125 +\004\003\023\055\125\124\116\055\125\123\105\122\106\151\162\163 +\164\055\103\154\151\145\156\164\040\101\165\164\150\145\156\164 +\151\143\141\164\151\157\156\040\141\156\144\040\105\155\141\151 +\154 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\020\104\276\014\213\120\000\044\264\021\323\066\045\045\147 +\311\211 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_TRUST_UNKNOWN +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_TRUST_UNKNOWN +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "UTN USERFirst Hardware Root CA" +# +CKA_CLASS CK_OBJECT_CLASS CKO_CERTIFICATE +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "UTN USERFirst Hardware Root CA" +CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509 +CKA_SUBJECT MULTILINE_OCTAL +\060\201\227\061\013\060\011\006\003\125\004\006\023\002\125\123 +\061\013\060\011\006\003\125\004\010\023\002\125\124\061\027\060 +\025\006\003\125\004\007\023\016\123\141\154\164\040\114\141\153 +\145\040\103\151\164\171\061\036\060\034\006\003\125\004\012\023 +\025\124\150\145\040\125\123\105\122\124\122\125\123\124\040\116 +\145\164\167\157\162\153\061\041\060\037\006\003\125\004\013\023 +\030\150\164\164\160\072\057\057\167\167\167\056\165\163\145\162 +\164\162\165\163\164\056\143\157\155\061\037\060\035\006\003\125 +\004\003\023\026\125\124\116\055\125\123\105\122\106\151\162\163 +\164\055\110\141\162\144\167\141\162\145 +END +CKA_ID UTF8 "0" +CKA_ISSUER MULTILINE_OCTAL +\060\201\227\061\013\060\011\006\003\125\004\006\023\002\125\123 +\061\013\060\011\006\003\125\004\010\023\002\125\124\061\027\060 +\025\006\003\125\004\007\023\016\123\141\154\164\040\114\141\153 +\145\040\103\151\164\171\061\036\060\034\006\003\125\004\012\023 +\025\124\150\145\040\125\123\105\122\124\122\125\123\124\040\116 +\145\164\167\157\162\153\061\041\060\037\006\003\125\004\013\023 +\030\150\164\164\160\072\057\057\167\167\167\056\165\163\145\162 +\164\162\165\163\164\056\143\157\155\061\037\060\035\006\003\125 +\004\003\023\026\125\124\116\055\125\123\105\122\106\151\162\163 +\164\055\110\141\162\144\167\141\162\145 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\020\104\276\014\213\120\000\044\264\021\323\066\052\376\145 +\012\375 +END +CKA_VALUE MULTILINE_OCTAL +\060\202\004\164\060\202\003\134\240\003\002\001\002\002\020\104 +\276\014\213\120\000\044\264\021\323\066\052\376\145\012\375\060 +\015\006\011\052\206\110\206\367\015\001\001\005\005\000\060\201 +\227\061\013\060\011\006\003\125\004\006\023\002\125\123\061\013 +\060\011\006\003\125\004\010\023\002\125\124\061\027\060\025\006 +\003\125\004\007\023\016\123\141\154\164\040\114\141\153\145\040 +\103\151\164\171\061\036\060\034\006\003\125\004\012\023\025\124 +\150\145\040\125\123\105\122\124\122\125\123\124\040\116\145\164 +\167\157\162\153\061\041\060\037\006\003\125\004\013\023\030\150 +\164\164\160\072\057\057\167\167\167\056\165\163\145\162\164\162 +\165\163\164\056\143\157\155\061\037\060\035\006\003\125\004\003 +\023\026\125\124\116\055\125\123\105\122\106\151\162\163\164\055 +\110\141\162\144\167\141\162\145\060\036\027\015\071\071\060\067 +\060\071\061\070\061\060\064\062\132\027\015\061\071\060\067\060 +\071\061\070\061\071\062\062\132\060\201\227\061\013\060\011\006 +\003\125\004\006\023\002\125\123\061\013\060\011\006\003\125\004 +\010\023\002\125\124\061\027\060\025\006\003\125\004\007\023\016 +\123\141\154\164\040\114\141\153\145\040\103\151\164\171\061\036 +\060\034\006\003\125\004\012\023\025\124\150\145\040\125\123\105 +\122\124\122\125\123\124\040\116\145\164\167\157\162\153\061\041 +\060\037\006\003\125\004\013\023\030\150\164\164\160\072\057\057 +\167\167\167\056\165\163\145\162\164\162\165\163\164\056\143\157 +\155\061\037\060\035\006\003\125\004\003\023\026\125\124\116\055 +\125\123\105\122\106\151\162\163\164\055\110\141\162\144\167\141 +\162\145\060\202\001\042\060\015\006\011\052\206\110\206\367\015 +\001\001\001\005\000\003\202\001\017\000\060\202\001\012\002\202 +\001\001\000\261\367\303\070\077\264\250\177\317\071\202\121\147 +\320\155\237\322\377\130\363\347\237\053\354\015\211\124\231\271 +\070\231\026\367\340\041\171\110\302\273\141\164\022\226\035\074 +\152\162\325\074\020\147\072\071\355\053\023\315\146\353\225\011 +\063\244\154\227\261\350\306\354\301\165\171\234\106\136\215\253 +\320\152\375\271\052\125\027\020\124\263\031\360\232\366\361\261 +\135\266\247\155\373\340\161\027\153\242\210\373\000\337\376\032 +\061\167\014\232\001\172\261\062\343\053\001\007\070\156\303\245 +\136\043\274\105\233\173\120\301\311\060\217\333\345\053\172\323 +\133\373\063\100\036\240\325\230\027\274\213\207\303\211\323\135 +\240\216\262\252\252\366\216\151\210\006\305\372\211\041\363\010 +\235\151\056\011\063\233\051\015\106\017\214\314\111\064\260\151 +\121\275\371\006\315\150\255\146\114\274\076\254\141\275\012\210 +\016\310\337\075\356\174\004\114\235\012\136\153\221\326\356\307 +\355\050\215\253\115\207\211\163\320\156\244\320\036\026\213\024 +\341\166\104\003\177\143\254\344\315\111\234\305\222\364\253\062 +\241\110\133\002\003\001\000\001\243\201\271\060\201\266\060\013 +\006\003\125\035\017\004\004\003\002\001\306\060\017\006\003\125 +\035\023\001\001\377\004\005\060\003\001\001\377\060\035\006\003 +\125\035\016\004\026\004\024\241\162\137\046\033\050\230\103\225 +\135\007\067\325\205\226\235\113\322\303\105\060\104\006\003\125 +\035\037\004\075\060\073\060\071\240\067\240\065\206\063\150\164 +\164\160\072\057\057\143\162\154\056\165\163\145\162\164\162\165 +\163\164\056\143\157\155\057\125\124\116\055\125\123\105\122\106 +\151\162\163\164\055\110\141\162\144\167\141\162\145\056\143\162 +\154\060\061\006\003\125\035\045\004\052\060\050\006\010\053\006 +\001\005\005\007\003\001\006\010\053\006\001\005\005\007\003\005 +\006\010\053\006\001\005\005\007\003\006\006\010\053\006\001\005 +\005\007\003\007\060\015\006\011\052\206\110\206\367\015\001\001 +\005\005\000\003\202\001\001\000\107\031\017\336\164\306\231\227 +\257\374\255\050\136\165\216\353\055\147\356\116\173\053\327\014 +\377\366\336\313\125\242\012\341\114\124\145\223\140\153\237\022 +\234\255\136\203\054\353\132\256\300\344\055\364\000\143\035\270 +\300\154\362\317\111\273\115\223\157\006\246\012\042\262\111\142 +\010\116\377\310\310\024\262\210\026\135\347\001\344\022\225\345 +\105\064\263\213\151\275\317\264\205\217\165\121\236\175\072\070 +\072\024\110\022\306\373\247\073\032\215\015\202\100\007\350\004 +\010\220\241\211\313\031\120\337\312\034\001\274\035\004\031\173 +\020\166\227\073\356\220\220\312\304\016\037\026\156\165\357\063 +\370\323\157\133\036\226\343\340\164\167\164\173\212\242\156\055 +\335\166\326\071\060\202\360\253\234\122\362\052\307\257\111\136 +\176\307\150\345\202\201\310\152\047\371\047\210\052\325\130\120 +\225\037\360\073\034\127\273\175\024\071\142\053\232\311\224\222 +\052\243\042\014\377\211\046\175\137\043\053\107\327\025\035\251 +\152\236\121\015\052\121\236\201\371\324\073\136\160\022\177\020 +\062\234\036\273\235\370\146\250 +END + +# Trust for Certificate "UTN USERFirst Hardware Root CA" +CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "UTN USERFirst Hardware Root CA" +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\004\203\355\063\231\254\066\010\005\207\042\355\274\136\106\000 +\343\276\371\327 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\114\126\101\345\015\273\053\350\312\243\355\030\010\255\103\071 +END +CKA_ISSUER MULTILINE_OCTAL +\060\201\227\061\013\060\011\006\003\125\004\006\023\002\125\123 +\061\013\060\011\006\003\125\004\010\023\002\125\124\061\027\060 +\025\006\003\125\004\007\023\016\123\141\154\164\040\114\141\153 +\145\040\103\151\164\171\061\036\060\034\006\003\125\004\012\023 +\025\124\150\145\040\125\123\105\122\124\122\125\123\124\040\116 +\145\164\167\157\162\153\061\041\060\037\006\003\125\004\013\023 +\030\150\164\164\160\072\057\057\167\167\167\056\165\163\145\162 +\164\162\165\163\164\056\143\157\155\061\037\060\035\006\003\125 +\004\003\023\026\125\124\116\055\125\123\105\122\106\151\162\163 +\164\055\110\141\162\144\167\141\162\145 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\020\104\276\014\213\120\000\044\264\021\323\066\052\376\145 +\012\375 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_TRUST_UNKNOWN +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_TRUST_UNKNOWN +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "UTN USERFirst Object Root CA" +# +CKA_CLASS CK_OBJECT_CLASS CKO_CERTIFICATE +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "UTN USERFirst Object Root CA" +CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509 +CKA_SUBJECT MULTILINE_OCTAL +\060\201\225\061\013\060\011\006\003\125\004\006\023\002\125\123 +\061\013\060\011\006\003\125\004\010\023\002\125\124\061\027\060 +\025\006\003\125\004\007\023\016\123\141\154\164\040\114\141\153 +\145\040\103\151\164\171\061\036\060\034\006\003\125\004\012\023 +\025\124\150\145\040\125\123\105\122\124\122\125\123\124\040\116 +\145\164\167\157\162\153\061\041\060\037\006\003\125\004\013\023 +\030\150\164\164\160\072\057\057\167\167\167\056\165\163\145\162 +\164\162\165\163\164\056\143\157\155\061\035\060\033\006\003\125 +\004\003\023\024\125\124\116\055\125\123\105\122\106\151\162\163 +\164\055\117\142\152\145\143\164 +END +CKA_ID UTF8 "0" +CKA_ISSUER MULTILINE_OCTAL +\060\201\225\061\013\060\011\006\003\125\004\006\023\002\125\123 +\061\013\060\011\006\003\125\004\010\023\002\125\124\061\027\060 +\025\006\003\125\004\007\023\016\123\141\154\164\040\114\141\153 +\145\040\103\151\164\171\061\036\060\034\006\003\125\004\012\023 +\025\124\150\145\040\125\123\105\122\124\122\125\123\124\040\116 +\145\164\167\157\162\153\061\041\060\037\006\003\125\004\013\023 +\030\150\164\164\160\072\057\057\167\167\167\056\165\163\145\162 +\164\162\165\163\164\056\143\157\155\061\035\060\033\006\003\125 +\004\003\023\024\125\124\116\055\125\123\105\122\106\151\162\163 +\164\055\117\142\152\145\143\164 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\020\104\276\014\213\120\000\044\264\021\323\066\055\340\263 +\137\033 +END +CKA_VALUE MULTILINE_OCTAL +\060\202\004\146\060\202\003\116\240\003\002\001\002\002\020\104 +\276\014\213\120\000\044\264\021\323\066\055\340\263\137\033\060 +\015\006\011\052\206\110\206\367\015\001\001\005\005\000\060\201 +\225\061\013\060\011\006\003\125\004\006\023\002\125\123\061\013 +\060\011\006\003\125\004\010\023\002\125\124\061\027\060\025\006 +\003\125\004\007\023\016\123\141\154\164\040\114\141\153\145\040 +\103\151\164\171\061\036\060\034\006\003\125\004\012\023\025\124 +\150\145\040\125\123\105\122\124\122\125\123\124\040\116\145\164 +\167\157\162\153\061\041\060\037\006\003\125\004\013\023\030\150 +\164\164\160\072\057\057\167\167\167\056\165\163\145\162\164\162 +\165\163\164\056\143\157\155\061\035\060\033\006\003\125\004\003 +\023\024\125\124\116\055\125\123\105\122\106\151\162\163\164\055 +\117\142\152\145\143\164\060\036\027\015\071\071\060\067\060\071 +\061\070\063\061\062\060\132\027\015\061\071\060\067\060\071\061 +\070\064\060\063\066\132\060\201\225\061\013\060\011\006\003\125 +\004\006\023\002\125\123\061\013\060\011\006\003\125\004\010\023 +\002\125\124\061\027\060\025\006\003\125\004\007\023\016\123\141 +\154\164\040\114\141\153\145\040\103\151\164\171\061\036\060\034 +\006\003\125\004\012\023\025\124\150\145\040\125\123\105\122\124 +\122\125\123\124\040\116\145\164\167\157\162\153\061\041\060\037 +\006\003\125\004\013\023\030\150\164\164\160\072\057\057\167\167 +\167\056\165\163\145\162\164\162\165\163\164\056\143\157\155\061 +\035\060\033\006\003\125\004\003\023\024\125\124\116\055\125\123 +\105\122\106\151\162\163\164\055\117\142\152\145\143\164\060\202 +\001\042\060\015\006\011\052\206\110\206\367\015\001\001\001\005 +\000\003\202\001\017\000\060\202\001\012\002\202\001\001\000\316 +\252\201\077\243\243\141\170\252\061\000\125\225\021\236\047\017 +\037\034\337\072\233\202\150\060\300\112\141\035\361\057\016\372 +\276\171\367\245\043\357\125\121\226\204\315\333\343\271\156\076 +\061\330\012\040\147\307\364\331\277\224\353\107\004\076\002\316 +\052\242\135\207\004\011\366\060\235\030\212\227\262\252\034\374 +\101\322\241\066\313\373\075\221\272\347\331\160\065\372\344\347 +\220\303\233\243\233\323\074\365\022\231\167\261\267\011\340\150 +\346\034\270\363\224\143\210\152\152\376\013\166\311\276\364\042 +\344\147\271\253\032\136\167\301\205\007\335\015\154\277\356\006 +\307\167\152\101\236\247\017\327\373\356\224\027\267\374\205\276 +\244\253\304\034\061\335\327\266\321\344\360\357\337\026\217\262 +\122\223\327\241\324\211\241\007\056\277\341\001\022\102\036\032 +\341\330\225\064\333\144\171\050\377\272\056\021\302\345\350\133 +\222\110\373\107\013\302\154\332\255\062\203\101\363\245\345\101 +\160\375\145\220\155\372\372\121\304\371\275\226\053\031\004\054 +\323\155\247\334\360\177\157\203\145\342\152\253\207\206\165\002 +\003\001\000\001\243\201\257\060\201\254\060\013\006\003\125\035 +\017\004\004\003\002\001\306\060\017\006\003\125\035\023\001\001 +\377\004\005\060\003\001\001\377\060\035\006\003\125\035\016\004 +\026\004\024\332\355\144\164\024\234\024\074\253\335\231\251\275 +\133\050\115\213\074\311\330\060\102\006\003\125\035\037\004\073 +\060\071\060\067\240\065\240\063\206\061\150\164\164\160\072\057 +\057\143\162\154\056\165\163\145\162\164\162\165\163\164\056\143 +\157\155\057\125\124\116\055\125\123\105\122\106\151\162\163\164 +\055\117\142\152\145\143\164\056\143\162\154\060\051\006\003\125 +\035\045\004\042\060\040\006\010\053\006\001\005\005\007\003\003 +\006\010\053\006\001\005\005\007\003\010\006\012\053\006\001\004 +\001\202\067\012\003\004\060\015\006\011\052\206\110\206\367\015 +\001\001\005\005\000\003\202\001\001\000\010\037\122\261\067\104 +\170\333\375\316\271\332\225\226\230\252\125\144\200\265\132\100 +\335\041\245\305\301\363\137\054\114\310\107\132\151\352\350\360 +\065\065\364\320\045\363\310\246\244\207\112\275\033\261\163\010 +\275\324\303\312\266\065\273\131\206\167\061\315\247\200\024\256 +\023\357\374\261\110\371\153\045\045\055\121\266\054\155\105\301 +\230\310\212\126\135\076\356\103\116\076\153\047\216\320\072\113 +\205\013\137\323\355\152\247\165\313\321\132\207\057\071\165\023 +\132\162\260\002\201\237\276\360\017\204\124\040\142\154\151\324 +\341\115\306\015\231\103\001\015\022\226\214\170\235\277\120\242 +\261\104\252\152\317\027\172\317\157\017\324\370\044\125\137\360 +\064\026\111\146\076\120\106\311\143\161\070\061\142\270\142\271 +\363\123\255\154\265\053\242\022\252\031\117\011\332\136\347\223 +\306\216\024\010\376\360\060\200\030\240\206\205\115\310\175\327 +\213\003\376\156\325\367\235\026\254\222\054\240\043\345\234\221 +\122\037\224\337\027\224\163\303\263\301\301\161\005\040\000\170 +\275\023\122\035\250\076\315\000\037\310 +END + +# Trust for Certificate "UTN USERFirst Object Root CA" +CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "UTN USERFirst Object Root CA" +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\341\055\373\113\101\327\331\303\053\060\121\113\254\035\201\330 +\070\136\055\106 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\247\362\344\026\006\101\021\120\060\153\234\343\264\234\260\311 +END +CKA_ISSUER MULTILINE_OCTAL +\060\201\225\061\013\060\011\006\003\125\004\006\023\002\125\123 +\061\013\060\011\006\003\125\004\010\023\002\125\124\061\027\060 +\025\006\003\125\004\007\023\016\123\141\154\164\040\114\141\153 +\145\040\103\151\164\171\061\036\060\034\006\003\125\004\012\023 +\025\124\150\145\040\125\123\105\122\124\122\125\123\124\040\116 +\145\164\167\157\162\153\061\041\060\037\006\003\125\004\013\023 +\030\150\164\164\160\072\057\057\167\167\167\056\165\163\145\162 +\164\162\165\163\164\056\143\157\155\061\035\060\033\006\003\125 +\004\003\023\024\125\124\116\055\125\123\105\122\106\151\162\163 +\164\055\117\142\152\145\143\164 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\020\104\276\014\213\120\000\044\264\021\323\066\055\340\263 +\137\033 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_TRUST_UNKNOWN +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_TRUST_UNKNOWN +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "Camerfirma Chambers of Commerce Root" +# +CKA_CLASS CK_OBJECT_CLASS CKO_CERTIFICATE +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "Camerfirma Chambers of Commerce Root" +CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509 +CKA_SUBJECT MULTILINE_OCTAL +\060\177\061\013\060\011\006\003\125\004\006\023\002\105\125\061 +\047\060\045\006\003\125\004\012\023\036\101\103\040\103\141\155 +\145\162\146\151\162\155\141\040\123\101\040\103\111\106\040\101 +\070\062\067\064\063\062\070\067\061\043\060\041\006\003\125\004 +\013\023\032\150\164\164\160\072\057\057\167\167\167\056\143\150 +\141\155\142\145\162\163\151\147\156\056\157\162\147\061\042\060 +\040\006\003\125\004\003\023\031\103\150\141\155\142\145\162\163 +\040\157\146\040\103\157\155\155\145\162\143\145\040\122\157\157 +\164 +END +CKA_ID UTF8 "0" +CKA_ISSUER MULTILINE_OCTAL +\060\177\061\013\060\011\006\003\125\004\006\023\002\105\125\061 +\047\060\045\006\003\125\004\012\023\036\101\103\040\103\141\155 +\145\162\146\151\162\155\141\040\123\101\040\103\111\106\040\101 +\070\062\067\064\063\062\070\067\061\043\060\041\006\003\125\004 +\013\023\032\150\164\164\160\072\057\057\167\167\167\056\143\150 +\141\155\142\145\162\163\151\147\156\056\157\162\147\061\042\060 +\040\006\003\125\004\003\023\031\103\150\141\155\142\145\162\163 +\040\157\146\040\103\157\155\155\145\162\143\145\040\122\157\157 +\164 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\001\000 +END +CKA_VALUE MULTILINE_OCTAL +\060\202\004\275\060\202\003\245\240\003\002\001\002\002\001\000 +\060\015\006\011\052\206\110\206\367\015\001\001\005\005\000\060 +\177\061\013\060\011\006\003\125\004\006\023\002\105\125\061\047 +\060\045\006\003\125\004\012\023\036\101\103\040\103\141\155\145 +\162\146\151\162\155\141\040\123\101\040\103\111\106\040\101\070 +\062\067\064\063\062\070\067\061\043\060\041\006\003\125\004\013 +\023\032\150\164\164\160\072\057\057\167\167\167\056\143\150\141 +\155\142\145\162\163\151\147\156\056\157\162\147\061\042\060\040 +\006\003\125\004\003\023\031\103\150\141\155\142\145\162\163\040 +\157\146\040\103\157\155\155\145\162\143\145\040\122\157\157\164 +\060\036\027\015\060\063\060\071\063\060\061\066\061\063\064\063 +\132\027\015\063\067\060\071\063\060\061\066\061\063\064\064\132 +\060\177\061\013\060\011\006\003\125\004\006\023\002\105\125\061 +\047\060\045\006\003\125\004\012\023\036\101\103\040\103\141\155 +\145\162\146\151\162\155\141\040\123\101\040\103\111\106\040\101 +\070\062\067\064\063\062\070\067\061\043\060\041\006\003\125\004 +\013\023\032\150\164\164\160\072\057\057\167\167\167\056\143\150 +\141\155\142\145\162\163\151\147\156\056\157\162\147\061\042\060 +\040\006\003\125\004\003\023\031\103\150\141\155\142\145\162\163 +\040\157\146\040\103\157\155\155\145\162\143\145\040\122\157\157 +\164\060\202\001\040\060\015\006\011\052\206\110\206\367\015\001 +\001\001\005\000\003\202\001\015\000\060\202\001\010\002\202\001 +\001\000\267\066\125\345\245\135\030\060\340\332\211\124\221\374 +\310\307\122\370\057\120\331\357\261\165\163\145\107\175\033\133 +\272\165\305\374\241\210\044\372\057\355\312\010\112\071\124\304 +\121\172\265\332\140\352\070\074\201\262\313\361\273\331\221\043 +\077\110\001\160\165\251\005\052\255\037\161\363\311\124\075\035 +\006\152\100\076\263\014\205\356\134\033\171\302\142\304\270\066 +\216\065\135\001\014\043\004\107\065\252\233\140\116\240\146\075 +\313\046\012\234\100\241\364\135\230\277\161\253\245\000\150\052 +\355\203\172\017\242\024\265\324\042\263\200\260\074\014\132\121 +\151\055\130\030\217\355\231\236\361\256\342\225\346\366\107\250 +\326\014\017\260\130\130\333\303\146\067\236\233\221\124\063\067 +\322\224\034\152\110\311\311\362\245\332\245\014\043\367\043\016 +\234\062\125\136\161\234\204\005\121\232\055\375\346\116\052\064 +\132\336\312\100\067\147\014\124\041\125\167\332\012\014\314\227 +\256\200\334\224\066\112\364\076\316\066\023\036\123\344\254\116 +\072\005\354\333\256\162\234\070\213\320\071\073\211\012\076\167 +\376\165\002\001\003\243\202\001\104\060\202\001\100\060\022\006 +\003\125\035\023\001\001\377\004\010\060\006\001\001\377\002\001 +\014\060\074\006\003\125\035\037\004\065\060\063\060\061\240\057 +\240\055\206\053\150\164\164\160\072\057\057\143\162\154\056\143 +\150\141\155\142\145\162\163\151\147\156\056\157\162\147\057\143 +\150\141\155\142\145\162\163\162\157\157\164\056\143\162\154\060 +\035\006\003\125\035\016\004\026\004\024\343\224\365\261\115\351 +\333\241\051\133\127\213\115\166\006\166\341\321\242\212\060\016 +\006\003\125\035\017\001\001\377\004\004\003\002\001\006\060\021 +\006\011\140\206\110\001\206\370\102\001\001\004\004\003\002\000 +\007\060\047\006\003\125\035\021\004\040\060\036\201\034\143\150 +\141\155\142\145\162\163\162\157\157\164\100\143\150\141\155\142 +\145\162\163\151\147\156\056\157\162\147\060\047\006\003\125\035 +\022\004\040\060\036\201\034\143\150\141\155\142\145\162\163\162 +\157\157\164\100\143\150\141\155\142\145\162\163\151\147\156\056 +\157\162\147\060\130\006\003\125\035\040\004\121\060\117\060\115 +\006\013\053\006\001\004\001\201\207\056\012\003\001\060\076\060 +\074\006\010\053\006\001\005\005\007\002\001\026\060\150\164\164 +\160\072\057\057\143\160\163\056\143\150\141\155\142\145\162\163 +\151\147\156\056\157\162\147\057\143\160\163\057\143\150\141\155 +\142\145\162\163\162\157\157\164\056\150\164\155\154\060\015\006 +\011\052\206\110\206\367\015\001\001\005\005\000\003\202\001\001 +\000\014\101\227\302\032\206\300\042\174\237\373\220\363\032\321 +\003\261\357\023\371\041\137\004\234\332\311\245\215\047\154\226 +\207\221\276\101\220\001\162\223\347\036\175\137\366\211\306\135 +\247\100\011\075\254\111\105\105\334\056\215\060\150\262\011\272 +\373\303\057\314\272\013\337\077\167\173\106\175\072\022\044\216 +\226\217\074\005\012\157\322\224\050\035\155\014\300\056\210\042 +\325\330\317\035\023\307\360\110\327\327\005\247\317\307\107\236 +\073\074\064\310\200\117\324\024\273\374\015\120\367\372\263\354 +\102\137\251\335\155\310\364\165\317\173\301\162\046\261\001\034 +\134\054\375\172\116\264\001\305\005\127\271\347\074\252\005\331 +\210\351\007\106\101\316\357\101\201\256\130\337\203\242\256\312 +\327\167\037\347\000\074\235\157\216\344\062\011\035\115\170\064 +\170\064\074\224\233\046\355\117\161\306\031\172\275\040\042\110 +\132\376\113\175\003\267\347\130\276\306\062\116\164\036\150\335 +\250\150\133\263\076\356\142\175\331\200\350\012\165\172\267\356 +\264\145\232\041\220\340\252\320\230\274\070\265\163\074\213\370 +\334 +END + +# Trust for Certificate "Camerfirma Chambers of Commerce Root" +CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "Camerfirma Chambers of Commerce Root" +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\156\072\125\244\031\014\031\134\223\204\074\300\333\162\056\061 +\060\141\360\261 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\260\001\356\024\331\257\051\030\224\166\216\361\151\063\052\204 +END +CKA_ISSUER MULTILINE_OCTAL +\060\177\061\013\060\011\006\003\125\004\006\023\002\105\125\061 +\047\060\045\006\003\125\004\012\023\036\101\103\040\103\141\155 +\145\162\146\151\162\155\141\040\123\101\040\103\111\106\040\101 +\070\062\067\064\063\062\070\067\061\043\060\041\006\003\125\004 +\013\023\032\150\164\164\160\072\057\057\167\167\167\056\143\150 +\141\155\142\145\162\163\151\147\156\056\157\162\147\061\042\060 +\040\006\003\125\004\003\023\031\103\150\141\155\142\145\162\163 +\040\157\146\040\103\157\155\155\145\162\143\145\040\122\157\157 +\164 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\001\000 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "Camerfirma Global Chambersign Root" +# +CKA_CLASS CK_OBJECT_CLASS CKO_CERTIFICATE +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "Camerfirma Global Chambersign Root" +CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509 +CKA_SUBJECT MULTILINE_OCTAL +\060\175\061\013\060\011\006\003\125\004\006\023\002\105\125\061 +\047\060\045\006\003\125\004\012\023\036\101\103\040\103\141\155 +\145\162\146\151\162\155\141\040\123\101\040\103\111\106\040\101 +\070\062\067\064\063\062\070\067\061\043\060\041\006\003\125\004 +\013\023\032\150\164\164\160\072\057\057\167\167\167\056\143\150 +\141\155\142\145\162\163\151\147\156\056\157\162\147\061\040\060 +\036\006\003\125\004\003\023\027\107\154\157\142\141\154\040\103 +\150\141\155\142\145\162\163\151\147\156\040\122\157\157\164 +END +CKA_ID UTF8 "0" +CKA_ISSUER MULTILINE_OCTAL +\060\175\061\013\060\011\006\003\125\004\006\023\002\105\125\061 +\047\060\045\006\003\125\004\012\023\036\101\103\040\103\141\155 +\145\162\146\151\162\155\141\040\123\101\040\103\111\106\040\101 +\070\062\067\064\063\062\070\067\061\043\060\041\006\003\125\004 +\013\023\032\150\164\164\160\072\057\057\167\167\167\056\143\150 +\141\155\142\145\162\163\151\147\156\056\157\162\147\061\040\060 +\036\006\003\125\004\003\023\027\107\154\157\142\141\154\040\103 +\150\141\155\142\145\162\163\151\147\156\040\122\157\157\164 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\001\000 +END +CKA_VALUE MULTILINE_OCTAL +\060\202\004\305\060\202\003\255\240\003\002\001\002\002\001\000 +\060\015\006\011\052\206\110\206\367\015\001\001\005\005\000\060 +\175\061\013\060\011\006\003\125\004\006\023\002\105\125\061\047 +\060\045\006\003\125\004\012\023\036\101\103\040\103\141\155\145 +\162\146\151\162\155\141\040\123\101\040\103\111\106\040\101\070 +\062\067\064\063\062\070\067\061\043\060\041\006\003\125\004\013 +\023\032\150\164\164\160\072\057\057\167\167\167\056\143\150\141 +\155\142\145\162\163\151\147\156\056\157\162\147\061\040\060\036 +\006\003\125\004\003\023\027\107\154\157\142\141\154\040\103\150 +\141\155\142\145\162\163\151\147\156\040\122\157\157\164\060\036 +\027\015\060\063\060\071\063\060\061\066\061\064\061\070\132\027 +\015\063\067\060\071\063\060\061\066\061\064\061\070\132\060\175 +\061\013\060\011\006\003\125\004\006\023\002\105\125\061\047\060 +\045\006\003\125\004\012\023\036\101\103\040\103\141\155\145\162 +\146\151\162\155\141\040\123\101\040\103\111\106\040\101\070\062 +\067\064\063\062\070\067\061\043\060\041\006\003\125\004\013\023 +\032\150\164\164\160\072\057\057\167\167\167\056\143\150\141\155 +\142\145\162\163\151\147\156\056\157\162\147\061\040\060\036\006 +\003\125\004\003\023\027\107\154\157\142\141\154\040\103\150\141 +\155\142\145\162\163\151\147\156\040\122\157\157\164\060\202\001 +\040\060\015\006\011\052\206\110\206\367\015\001\001\001\005\000 +\003\202\001\015\000\060\202\001\010\002\202\001\001\000\242\160 +\242\320\237\102\256\133\027\307\330\175\317\024\203\374\117\311 +\241\267\023\257\212\327\236\076\004\012\222\213\140\126\372\264 +\062\057\210\115\241\140\010\364\267\011\116\240\111\057\111\326 +\323\337\235\227\132\237\224\004\160\354\077\131\331\267\314\146 +\213\230\122\050\011\002\337\305\057\204\215\172\227\167\277\354 +\100\235\045\162\253\265\077\062\230\373\267\267\374\162\204\345 +\065\207\371\125\372\243\037\016\157\056\050\335\151\240\331\102 +\020\306\370\265\104\302\320\103\177\333\274\344\242\074\152\125 +\170\012\167\251\330\352\031\062\267\057\376\134\077\033\356\261 +\230\354\312\255\172\151\105\343\226\017\125\366\346\355\165\352 +\145\350\062\126\223\106\211\250\045\212\145\006\356\153\277\171 +\007\320\361\267\257\355\054\115\222\273\300\250\137\247\147\175 +\004\362\025\010\160\254\222\326\175\004\322\063\373\114\266\013 +\013\373\032\311\304\215\003\251\176\134\362\120\253\022\245\241 +\317\110\120\245\357\322\310\032\023\372\260\177\261\202\034\167 +\152\017\137\334\013\225\217\357\103\176\346\105\011\045\002\001 +\003\243\202\001\120\060\202\001\114\060\022\006\003\125\035\023 +\001\001\377\004\010\060\006\001\001\377\002\001\014\060\077\006 +\003\125\035\037\004\070\060\066\060\064\240\062\240\060\206\056 +\150\164\164\160\072\057\057\143\162\154\056\143\150\141\155\142 +\145\162\163\151\147\156\056\157\162\147\057\143\150\141\155\142 +\145\162\163\151\147\156\162\157\157\164\056\143\162\154\060\035 +\006\003\125\035\016\004\026\004\024\103\234\066\237\260\236\060 +\115\306\316\137\255\020\253\345\003\245\372\251\024\060\016\006 +\003\125\035\017\001\001\377\004\004\003\002\001\006\060\021\006 +\011\140\206\110\001\206\370\102\001\001\004\004\003\002\000\007 +\060\052\006\003\125\035\021\004\043\060\041\201\037\143\150\141 +\155\142\145\162\163\151\147\156\162\157\157\164\100\143\150\141 +\155\142\145\162\163\151\147\156\056\157\162\147\060\052\006\003 +\125\035\022\004\043\060\041\201\037\143\150\141\155\142\145\162 +\163\151\147\156\162\157\157\164\100\143\150\141\155\142\145\162 +\163\151\147\156\056\157\162\147\060\133\006\003\125\035\040\004 +\124\060\122\060\120\006\013\053\006\001\004\001\201\207\056\012 +\001\001\060\101\060\077\006\010\053\006\001\005\005\007\002\001 +\026\063\150\164\164\160\072\057\057\143\160\163\056\143\150\141 +\155\142\145\162\163\151\147\156\056\157\162\147\057\143\160\163 +\057\143\150\141\155\142\145\162\163\151\147\156\162\157\157\164 +\056\150\164\155\154\060\015\006\011\052\206\110\206\367\015\001 +\001\005\005\000\003\202\001\001\000\074\073\160\221\371\004\124 +\047\221\341\355\355\376\150\177\141\135\345\101\145\117\062\361 +\030\005\224\152\034\336\037\160\333\076\173\062\002\064\265\014 +\154\241\212\174\245\364\217\377\324\330\255\027\325\055\004\321 +\077\130\200\342\201\131\210\276\300\343\106\223\044\376\220\275 +\046\242\060\055\350\227\046\127\065\211\164\226\030\366\025\342 +\257\044\031\126\002\002\262\272\017\024\352\306\212\146\301\206 +\105\125\213\276\222\276\234\244\004\307\111\074\236\350\051\172 +\211\327\376\257\377\150\365\245\027\220\275\254\231\314\245\206 +\127\011\147\106\333\326\026\302\106\361\344\251\120\365\217\321 +\222\025\323\137\076\306\000\111\072\156\130\262\321\321\047\015 +\045\310\062\370\040\021\315\175\062\063\110\224\124\114\335\334 +\171\304\060\237\353\216\270\125\265\327\210\134\305\152\044\075 +\262\323\005\003\121\306\007\357\314\024\162\164\075\156\162\316 +\030\050\214\112\240\167\345\011\053\105\104\107\254\267\147\177 +\001\212\005\132\223\276\241\301\377\370\347\016\147\244\107\111 +\166\135\165\220\032\365\046\217\360 +END + +# Trust for Certificate "Camerfirma Global Chambersign Root" +CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "Camerfirma Global Chambersign Root" +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\063\233\153\024\120\044\233\125\172\001\207\162\204\331\340\057 +\303\322\330\351 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\305\346\173\277\006\320\117\103\355\304\172\145\212\373\153\031 +END +CKA_ISSUER MULTILINE_OCTAL +\060\175\061\013\060\011\006\003\125\004\006\023\002\105\125\061 +\047\060\045\006\003\125\004\012\023\036\101\103\040\103\141\155 +\145\162\146\151\162\155\141\040\123\101\040\103\111\106\040\101 +\070\062\067\064\063\062\070\067\061\043\060\041\006\003\125\004 +\013\023\032\150\164\164\160\072\057\057\167\167\167\056\143\150 +\141\155\142\145\162\163\151\147\156\056\157\162\147\061\040\060 +\036\006\003\125\004\003\023\027\107\154\157\142\141\154\040\103 +\150\141\155\142\145\162\163\151\147\156\040\122\157\157\164 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\001\000 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "NetLock Qualified (Class QA) Root" +# +CKA_CLASS CK_OBJECT_CLASS CKO_CERTIFICATE +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "NetLock Qualified (Class QA) Root" +CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509 +CKA_SUBJECT MULTILINE_OCTAL +\060\201\311\061\013\060\011\006\003\125\004\006\023\002\110\125 +\061\021\060\017\006\003\125\004\007\023\010\102\165\144\141\160 +\145\163\164\061\047\060\045\006\003\125\004\012\023\036\116\145 +\164\114\157\143\153\040\110\141\154\157\172\141\164\142\151\172 +\164\157\156\163\141\147\151\040\113\146\164\056\061\032\060\030 +\006\003\125\004\013\023\021\124\141\156\165\163\151\164\166\141 +\156\171\153\151\141\144\157\153\061\102\060\100\006\003\125\004 +\003\023\071\116\145\164\114\157\143\153\040\115\151\156\157\163 +\151\164\145\164\164\040\113\157\172\152\145\147\171\172\157\151 +\040\050\103\154\141\163\163\040\121\101\051\040\124\141\156\165 +\163\151\164\166\141\156\171\153\151\141\144\157\061\036\060\034 +\006\011\052\206\110\206\367\015\001\011\001\026\017\151\156\146 +\157\100\156\145\164\154\157\143\153\056\150\165 +END +CKA_ID UTF8 "0" +CKA_ISSUER MULTILINE_OCTAL +\060\201\311\061\013\060\011\006\003\125\004\006\023\002\110\125 +\061\021\060\017\006\003\125\004\007\023\010\102\165\144\141\160 +\145\163\164\061\047\060\045\006\003\125\004\012\023\036\116\145 +\164\114\157\143\153\040\110\141\154\157\172\141\164\142\151\172 +\164\157\156\163\141\147\151\040\113\146\164\056\061\032\060\030 +\006\003\125\004\013\023\021\124\141\156\165\163\151\164\166\141 +\156\171\153\151\141\144\157\153\061\102\060\100\006\003\125\004 +\003\023\071\116\145\164\114\157\143\153\040\115\151\156\157\163 +\151\164\145\164\164\040\113\157\172\152\145\147\171\172\157\151 +\040\050\103\154\141\163\163\040\121\101\051\040\124\141\156\165 +\163\151\164\166\141\156\171\153\151\141\144\157\061\036\060\034 +\006\011\052\206\110\206\367\015\001\011\001\026\017\151\156\146 +\157\100\156\145\164\154\157\143\153\056\150\165 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\001\173 +END +CKA_VALUE MULTILINE_OCTAL +\060\202\006\321\060\202\005\271\240\003\002\001\002\002\001\173 +\060\015\006\011\052\206\110\206\367\015\001\001\005\005\000\060 +\201\311\061\013\060\011\006\003\125\004\006\023\002\110\125\061 +\021\060\017\006\003\125\004\007\023\010\102\165\144\141\160\145 +\163\164\061\047\060\045\006\003\125\004\012\023\036\116\145\164 +\114\157\143\153\040\110\141\154\157\172\141\164\142\151\172\164 +\157\156\163\141\147\151\040\113\146\164\056\061\032\060\030\006 +\003\125\004\013\023\021\124\141\156\165\163\151\164\166\141\156 +\171\153\151\141\144\157\153\061\102\060\100\006\003\125\004\003 +\023\071\116\145\164\114\157\143\153\040\115\151\156\157\163\151 +\164\145\164\164\040\113\157\172\152\145\147\171\172\157\151\040 +\050\103\154\141\163\163\040\121\101\051\040\124\141\156\165\163 +\151\164\166\141\156\171\153\151\141\144\157\061\036\060\034\006 +\011\052\206\110\206\367\015\001\011\001\026\017\151\156\146\157 +\100\156\145\164\154\157\143\153\056\150\165\060\036\027\015\060 +\063\060\063\063\060\060\061\064\067\061\061\132\027\015\062\062 +\061\062\061\065\060\061\064\067\061\061\132\060\201\311\061\013 +\060\011\006\003\125\004\006\023\002\110\125\061\021\060\017\006 +\003\125\004\007\023\010\102\165\144\141\160\145\163\164\061\047 +\060\045\006\003\125\004\012\023\036\116\145\164\114\157\143\153 +\040\110\141\154\157\172\141\164\142\151\172\164\157\156\163\141 +\147\151\040\113\146\164\056\061\032\060\030\006\003\125\004\013 +\023\021\124\141\156\165\163\151\164\166\141\156\171\153\151\141 +\144\157\153\061\102\060\100\006\003\125\004\003\023\071\116\145 +\164\114\157\143\153\040\115\151\156\157\163\151\164\145\164\164 +\040\113\157\172\152\145\147\171\172\157\151\040\050\103\154\141 +\163\163\040\121\101\051\040\124\141\156\165\163\151\164\166\141 +\156\171\153\151\141\144\157\061\036\060\034\006\011\052\206\110 +\206\367\015\001\011\001\026\017\151\156\146\157\100\156\145\164 +\154\157\143\153\056\150\165\060\202\001\042\060\015\006\011\052 +\206\110\206\367\015\001\001\001\005\000\003\202\001\017\000\060 +\202\001\012\002\202\001\001\000\307\122\045\262\330\075\324\204 +\125\011\247\033\275\154\271\024\364\212\002\333\166\374\152\052 +\170\253\345\167\360\156\340\214\043\147\333\245\144\231\271\335 +\001\076\157\357\055\232\074\042\360\135\311\127\240\125\101\177 +\362\103\136\130\202\123\061\145\316\036\362\046\272\000\124\036 +\257\260\274\034\344\122\214\240\062\257\267\067\261\123\147\150 +\164\147\120\366\055\056\144\336\256\046\171\337\337\231\206\253 +\253\177\205\354\240\373\200\314\364\270\014\036\223\105\143\271 +\334\270\133\233\355\133\071\324\137\142\260\247\216\174\146\070 +\054\252\261\010\143\027\147\175\314\275\263\361\303\077\317\120 +\071\355\321\031\203\025\333\207\022\047\226\267\332\352\345\235 +\274\272\352\071\117\213\357\164\232\347\305\320\322\352\206\121 +\034\344\376\144\010\050\004\171\005\353\312\305\161\016\013\357 +\253\352\354\022\021\241\030\005\062\151\321\014\054\032\075\045 +\231\077\265\174\312\155\260\256\231\231\372\010\140\347\031\302 +\362\275\121\323\314\323\002\254\301\021\014\200\316\253\334\224 +\235\153\243\071\123\072\326\205\002\003\000\305\175\243\202\002 +\300\060\202\002\274\060\022\006\003\125\035\023\001\001\377\004 +\010\060\006\001\001\377\002\001\004\060\016\006\003\125\035\017 +\001\001\377\004\004\003\002\001\006\060\202\002\165\006\011\140 +\206\110\001\206\370\102\001\015\004\202\002\146\026\202\002\142 +\106\111\107\131\105\114\105\115\041\040\105\172\145\156\040\164 +\141\156\165\163\151\164\166\141\156\171\040\141\040\116\145\164 +\114\157\143\153\040\113\146\164\056\040\115\151\156\157\163\151 +\164\145\164\164\040\123\172\157\154\147\141\154\164\141\164\141 +\163\151\040\123\172\141\142\141\154\171\172\141\164\141\142\141 +\156\040\154\145\151\162\164\040\145\154\152\141\162\141\163\157 +\153\040\141\154\141\160\152\141\156\040\153\145\163\172\165\154 +\164\056\040\101\040\155\151\156\157\163\151\164\145\164\164\040 +\145\154\145\153\164\162\157\156\151\153\165\163\040\141\154\141 +\151\162\141\163\040\152\157\147\150\141\164\141\163\040\145\162 +\166\145\156\171\145\163\165\154\145\163\145\156\145\153\054\040 +\166\141\154\141\155\151\156\164\040\145\154\146\157\147\141\144 +\141\163\141\156\141\153\040\146\145\154\164\145\164\145\154\145 +\040\141\040\115\151\156\157\163\151\164\145\164\164\040\123\172 +\157\154\147\141\154\164\141\164\141\163\151\040\123\172\141\142 +\141\154\171\172\141\164\142\141\156\054\040\141\172\040\101\154 +\164\141\154\141\156\157\163\040\123\172\145\162\172\157\144\145 +\163\151\040\106\145\154\164\145\164\145\154\145\153\142\145\156 +\040\145\154\157\151\162\164\040\145\154\154\145\156\157\162\172 +\145\163\151\040\145\154\152\141\162\141\163\040\155\145\147\164 +\145\164\145\154\145\056\040\101\040\144\157\153\165\155\145\156 +\164\165\155\157\153\040\155\145\147\164\141\154\141\154\150\141 +\164\157\153\040\141\040\150\164\164\160\163\072\057\057\167\167 +\167\056\156\145\164\154\157\143\153\056\150\165\057\144\157\143 +\163\057\040\143\151\155\145\156\040\166\141\147\171\040\153\145 +\162\150\145\164\157\153\040\141\172\040\151\156\146\157\100\156 +\145\164\154\157\143\153\056\156\145\164\040\145\055\155\141\151 +\154\040\143\151\155\145\156\056\040\127\101\122\116\111\116\107 +\041\040\124\150\145\040\151\163\163\165\141\156\143\145\040\141 +\156\144\040\164\150\145\040\165\163\145\040\157\146\040\164\150 +\151\163\040\143\145\162\164\151\146\151\143\141\164\145\040\141 +\162\145\040\163\165\142\152\145\143\164\040\164\157\040\164\150 +\145\040\116\145\164\114\157\143\153\040\121\165\141\154\151\146 +\151\145\144\040\103\120\123\040\141\166\141\151\154\141\142\154 +\145\040\141\164\040\150\164\164\160\163\072\057\057\167\167\167 +\056\156\145\164\154\157\143\153\056\150\165\057\144\157\143\163 +\057\040\157\162\040\142\171\040\145\055\155\141\151\154\040\141 +\164\040\151\156\146\157\100\156\145\164\154\157\143\153\056\156 +\145\164\060\035\006\003\125\035\016\004\026\004\024\011\152\142 +\026\222\260\132\273\125\016\313\165\062\072\062\345\262\041\311 +\050\060\015\006\011\052\206\110\206\367\015\001\001\005\005\000 +\003\202\001\001\000\221\152\120\234\333\170\201\233\077\213\102 +\343\073\374\246\303\356\103\340\317\363\342\200\065\111\105\166 +\002\342\343\057\005\305\361\052\347\300\101\063\306\266\233\320 +\063\071\315\300\333\241\255\154\067\002\114\130\101\073\362\227 +\222\306\110\250\315\345\212\071\211\141\371\122\227\351\275\366 +\371\224\164\350\161\016\274\167\206\303\006\314\132\174\112\176 +\064\120\060\056\373\177\062\232\215\075\363\040\133\370\152\312 +\206\363\061\114\054\131\200\002\175\376\070\311\060\165\034\267 +\125\343\274\237\272\250\155\204\050\005\165\263\213\015\300\221 +\124\041\347\246\013\264\231\365\121\101\334\315\243\107\042\331 +\307\001\201\304\334\107\117\046\352\037\355\333\315\015\230\364 +\243\234\264\163\062\112\226\231\376\274\177\310\045\130\370\130 +\363\166\146\211\124\244\246\076\304\120\134\272\211\030\202\165 +\110\041\322\117\023\350\140\176\007\166\333\020\265\121\346\252 +\271\150\252\315\366\235\220\165\022\352\070\032\312\104\350\267 +\231\247\052\150\225\146\225\253\255\357\211\313\140\251\006\022 +\306\224\107\351\050 +END + +# Trust for Certificate "NetLock Qualified (Class QA) Root" +CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "NetLock Qualified (Class QA) Root" +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\001\150\227\341\240\270\362\303\261\064\146\134\040\247\047\267 +\241\130\342\217 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\324\200\145\150\044\371\211\042\050\333\365\244\232\027\217\024 +END +CKA_ISSUER MULTILINE_OCTAL +\060\201\311\061\013\060\011\006\003\125\004\006\023\002\110\125 +\061\021\060\017\006\003\125\004\007\023\010\102\165\144\141\160 +\145\163\164\061\047\060\045\006\003\125\004\012\023\036\116\145 +\164\114\157\143\153\040\110\141\154\157\172\141\164\142\151\172 +\164\157\156\163\141\147\151\040\113\146\164\056\061\032\060\030 +\006\003\125\004\013\023\021\124\141\156\165\163\151\164\166\141 +\156\171\153\151\141\144\157\153\061\102\060\100\006\003\125\004 +\003\023\071\116\145\164\114\157\143\153\040\115\151\156\157\163 +\151\164\145\164\164\040\113\157\172\152\145\147\171\172\157\151 +\040\050\103\154\141\163\163\040\121\101\051\040\124\141\156\165 +\163\151\164\166\141\156\171\153\151\141\144\157\061\036\060\034 +\006\011\052\206\110\206\367\015\001\011\001\026\017\151\156\146 +\157\100\156\145\164\154\157\143\153\056\150\165 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\001\173 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_TRUST_UNKNOWN +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "NetLock Notary (Class A) Root" +# +CKA_CLASS CK_OBJECT_CLASS CKO_CERTIFICATE +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "NetLock Notary (Class A) Root" +CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509 +CKA_SUBJECT MULTILINE_OCTAL +\060\201\257\061\013\060\011\006\003\125\004\006\023\002\110\125 +\061\020\060\016\006\003\125\004\010\023\007\110\165\156\147\141 +\162\171\061\021\060\017\006\003\125\004\007\023\010\102\165\144 +\141\160\145\163\164\061\047\060\045\006\003\125\004\012\023\036 +\116\145\164\114\157\143\153\040\110\141\154\157\172\141\164\142 +\151\172\164\157\156\163\141\147\151\040\113\146\164\056\061\032 +\060\030\006\003\125\004\013\023\021\124\141\156\165\163\151\164 +\166\141\156\171\153\151\141\144\157\153\061\066\060\064\006\003 +\125\004\003\023\055\116\145\164\114\157\143\153\040\113\157\172 +\152\145\147\171\172\157\151\040\050\103\154\141\163\163\040\101 +\051\040\124\141\156\165\163\151\164\166\141\156\171\153\151\141 +\144\157 +END +CKA_ID UTF8 "0" +CKA_ISSUER MULTILINE_OCTAL +\060\201\257\061\013\060\011\006\003\125\004\006\023\002\110\125 +\061\020\060\016\006\003\125\004\010\023\007\110\165\156\147\141 +\162\171\061\021\060\017\006\003\125\004\007\023\010\102\165\144 +\141\160\145\163\164\061\047\060\045\006\003\125\004\012\023\036 +\116\145\164\114\157\143\153\040\110\141\154\157\172\141\164\142 +\151\172\164\157\156\163\141\147\151\040\113\146\164\056\061\032 +\060\030\006\003\125\004\013\023\021\124\141\156\165\163\151\164 +\166\141\156\171\153\151\141\144\157\153\061\066\060\064\006\003 +\125\004\003\023\055\116\145\164\114\157\143\153\040\113\157\172 +\152\145\147\171\172\157\151\040\050\103\154\141\163\163\040\101 +\051\040\124\141\156\165\163\151\164\166\141\156\171\153\151\141 +\144\157 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\002\001\003 +END +CKA_VALUE MULTILINE_OCTAL +\060\202\006\175\060\202\005\145\240\003\002\001\002\002\002\001 +\003\060\015\006\011\052\206\110\206\367\015\001\001\004\005\000 +\060\201\257\061\013\060\011\006\003\125\004\006\023\002\110\125 +\061\020\060\016\006\003\125\004\010\023\007\110\165\156\147\141 +\162\171\061\021\060\017\006\003\125\004\007\023\010\102\165\144 +\141\160\145\163\164\061\047\060\045\006\003\125\004\012\023\036 +\116\145\164\114\157\143\153\040\110\141\154\157\172\141\164\142 +\151\172\164\157\156\163\141\147\151\040\113\146\164\056\061\032 +\060\030\006\003\125\004\013\023\021\124\141\156\165\163\151\164 +\166\141\156\171\153\151\141\144\157\153\061\066\060\064\006\003 +\125\004\003\023\055\116\145\164\114\157\143\153\040\113\157\172 +\152\145\147\171\172\157\151\040\050\103\154\141\163\163\040\101 +\051\040\124\141\156\165\163\151\164\166\141\156\171\153\151\141 +\144\157\060\036\027\015\071\071\060\062\062\064\062\063\061\064 +\064\067\132\027\015\061\071\060\062\061\071\062\063\061\064\064 +\067\132\060\201\257\061\013\060\011\006\003\125\004\006\023\002 +\110\125\061\020\060\016\006\003\125\004\010\023\007\110\165\156 +\147\141\162\171\061\021\060\017\006\003\125\004\007\023\010\102 +\165\144\141\160\145\163\164\061\047\060\045\006\003\125\004\012 +\023\036\116\145\164\114\157\143\153\040\110\141\154\157\172\141 +\164\142\151\172\164\157\156\163\141\147\151\040\113\146\164\056 +\061\032\060\030\006\003\125\004\013\023\021\124\141\156\165\163 +\151\164\166\141\156\171\153\151\141\144\157\153\061\066\060\064 +\006\003\125\004\003\023\055\116\145\164\114\157\143\153\040\113 +\157\172\152\145\147\171\172\157\151\040\050\103\154\141\163\163 +\040\101\051\040\124\141\156\165\163\151\164\166\141\156\171\153 +\151\141\144\157\060\202\001\042\060\015\006\011\052\206\110\206 +\367\015\001\001\001\005\000\003\202\001\017\000\060\202\001\012 +\002\202\001\001\000\274\164\214\017\273\114\364\067\036\251\005 +\202\330\346\341\154\160\352\170\265\156\321\070\104\015\250\203 +\316\135\322\326\325\201\305\324\113\347\133\224\160\046\333\073 +\235\152\114\142\367\161\363\144\326\141\073\075\353\163\243\067 +\331\317\352\214\222\073\315\367\007\334\146\164\227\364\105\042 +\335\364\134\340\277\155\363\276\145\063\344\025\072\277\333\230 +\220\125\070\304\355\246\125\143\013\260\170\004\364\343\156\301 +\077\216\374\121\170\037\222\236\203\302\376\331\260\251\311\274 +\132\000\377\251\250\230\164\373\366\054\076\025\071\015\266\004 +\125\250\016\230\040\102\263\261\045\255\176\232\157\135\123\261 +\253\014\374\353\340\363\172\263\250\263\377\106\366\143\242\330 +\072\230\173\266\254\205\377\260\045\117\164\143\347\023\007\245 +\012\217\005\367\300\144\157\176\247\047\200\226\336\324\056\206 +\140\307\153\053\136\163\173\027\347\221\077\144\014\330\113\042 +\064\053\233\062\362\110\037\237\241\012\204\172\342\302\255\227 +\075\216\325\301\371\126\243\120\351\306\264\372\230\242\356\225 +\346\052\003\214\337\002\003\001\000\001\243\202\002\237\060\202 +\002\233\060\016\006\003\125\035\017\001\001\377\004\004\003\002 +\000\006\060\022\006\003\125\035\023\001\001\377\004\010\060\006 +\001\001\377\002\001\004\060\021\006\011\140\206\110\001\206\370 +\102\001\001\004\004\003\002\000\007\060\202\002\140\006\011\140 +\206\110\001\206\370\102\001\015\004\202\002\121\026\202\002\115 +\106\111\107\131\105\114\105\115\041\040\105\172\145\156\040\164 +\141\156\165\163\151\164\166\141\156\171\040\141\040\116\145\164 +\114\157\143\153\040\113\146\164\056\040\101\154\164\141\154\141 +\156\157\163\040\123\172\157\154\147\141\154\164\141\164\141\163 +\151\040\106\145\154\164\145\164\145\154\145\151\142\145\156\040 +\154\145\151\162\164\040\145\154\152\141\162\141\163\157\153\040 +\141\154\141\160\152\141\156\040\153\145\163\172\165\154\164\056 +\040\101\040\150\151\164\145\154\145\163\151\164\145\163\040\146 +\157\154\171\141\155\141\164\141\164\040\141\040\116\145\164\114 +\157\143\153\040\113\146\164\056\040\164\145\162\155\145\153\146 +\145\154\145\154\157\163\163\145\147\055\142\151\172\164\157\163 +\151\164\141\163\141\040\166\145\144\151\056\040\101\040\144\151 +\147\151\164\141\154\151\163\040\141\154\141\151\162\141\163\040 +\145\154\146\157\147\141\144\141\163\141\156\141\153\040\146\145 +\154\164\145\164\145\154\145\040\141\172\040\145\154\157\151\162 +\164\040\145\154\154\145\156\157\162\172\145\163\151\040\145\154 +\152\141\162\141\163\040\155\145\147\164\145\164\145\154\145\056 +\040\101\172\040\145\154\152\141\162\141\163\040\154\145\151\162 +\141\163\141\040\155\145\147\164\141\154\141\154\150\141\164\157 +\040\141\040\116\145\164\114\157\143\153\040\113\146\164\056\040 +\111\156\164\145\162\156\145\164\040\150\157\156\154\141\160\152 +\141\156\040\141\040\150\164\164\160\163\072\057\057\167\167\167 +\056\156\145\164\154\157\143\153\056\156\145\164\057\144\157\143 +\163\040\143\151\155\145\156\040\166\141\147\171\040\153\145\162 +\150\145\164\157\040\141\172\040\145\154\154\145\156\157\162\172 +\145\163\100\156\145\164\154\157\143\153\056\156\145\164\040\145 +\055\155\141\151\154\040\143\151\155\145\156\056\040\111\115\120 +\117\122\124\101\116\124\041\040\124\150\145\040\151\163\163\165 +\141\156\143\145\040\141\156\144\040\164\150\145\040\165\163\145 +\040\157\146\040\164\150\151\163\040\143\145\162\164\151\146\151 +\143\141\164\145\040\151\163\040\163\165\142\152\145\143\164\040 +\164\157\040\164\150\145\040\116\145\164\114\157\143\153\040\103 +\120\123\040\141\166\141\151\154\141\142\154\145\040\141\164\040 +\150\164\164\160\163\072\057\057\167\167\167\056\156\145\164\154 +\157\143\153\056\156\145\164\057\144\157\143\163\040\157\162\040 +\142\171\040\145\055\155\141\151\154\040\141\164\040\143\160\163 +\100\156\145\164\154\157\143\153\056\156\145\164\056\060\015\006 +\011\052\206\110\206\367\015\001\001\004\005\000\003\202\001\001 +\000\110\044\106\367\272\126\157\372\310\050\003\100\116\345\061 +\071\153\046\153\123\177\333\337\337\363\161\075\046\300\024\016 +\306\147\173\043\250\014\163\335\001\273\306\312\156\067\071\125 +\325\307\214\126\040\016\050\012\016\322\052\244\260\111\122\306 +\070\007\376\276\012\011\214\321\230\317\312\332\024\061\241\117 +\322\071\374\017\021\054\103\303\335\253\223\307\125\076\107\174 +\030\032\000\334\363\173\330\362\177\122\154\040\364\013\137\151 +\122\364\356\370\262\051\140\353\343\111\061\041\015\326\265\020 +\101\342\101\011\154\342\032\232\126\113\167\002\366\240\233\232 +\047\207\350\125\051\161\302\220\237\105\170\032\341\025\144\075 +\320\016\330\240\166\237\256\305\320\056\352\326\017\126\354\144 +\177\132\233\024\130\001\047\176\023\120\307\153\052\346\150\074 +\277\134\240\012\033\341\016\172\351\342\200\303\351\351\366\375 +\154\021\236\320\345\050\047\053\124\062\102\024\202\165\346\112 +\360\053\146\165\143\214\242\373\004\076\203\016\233\066\360\030 +\344\046\040\303\214\360\050\007\255\074\027\146\210\265\375\266 +\210 +END + +# Trust for Certificate "NetLock Notary (Class A) Root" +CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "NetLock Notary (Class A) Root" +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\254\355\137\145\123\375\045\316\001\137\037\172\110\073\152\164 +\237\141\170\306 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\206\070\155\136\111\143\154\205\134\333\155\334\224\267\320\367 +END +CKA_ISSUER MULTILINE_OCTAL +\060\201\257\061\013\060\011\006\003\125\004\006\023\002\110\125 +\061\020\060\016\006\003\125\004\010\023\007\110\165\156\147\141 +\162\171\061\021\060\017\006\003\125\004\007\023\010\102\165\144 +\141\160\145\163\164\061\047\060\045\006\003\125\004\012\023\036 +\116\145\164\114\157\143\153\040\110\141\154\157\172\141\164\142 +\151\172\164\157\156\163\141\147\151\040\113\146\164\056\061\032 +\060\030\006\003\125\004\013\023\021\124\141\156\165\163\151\164 +\166\141\156\171\153\151\141\144\157\153\061\066\060\064\006\003 +\125\004\003\023\055\116\145\164\114\157\143\153\040\113\157\172 +\152\145\147\171\172\157\151\040\050\103\154\141\163\163\040\101 +\051\040\124\141\156\165\163\151\164\166\141\156\171\153\151\141 +\144\157 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\002\001\003 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "NetLock Business (Class B) Root" +# +CKA_CLASS CK_OBJECT_CLASS CKO_CERTIFICATE +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "NetLock Business (Class B) Root" +CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509 +CKA_SUBJECT MULTILINE_OCTAL +\060\201\231\061\013\060\011\006\003\125\004\006\023\002\110\125 +\061\021\060\017\006\003\125\004\007\023\010\102\165\144\141\160 +\145\163\164\061\047\060\045\006\003\125\004\012\023\036\116\145 +\164\114\157\143\153\040\110\141\154\157\172\141\164\142\151\172 +\164\157\156\163\141\147\151\040\113\146\164\056\061\032\060\030 +\006\003\125\004\013\023\021\124\141\156\165\163\151\164\166\141 +\156\171\153\151\141\144\157\153\061\062\060\060\006\003\125\004 +\003\023\051\116\145\164\114\157\143\153\040\125\172\154\145\164 +\151\040\050\103\154\141\163\163\040\102\051\040\124\141\156\165 +\163\151\164\166\141\156\171\153\151\141\144\157 +END +CKA_ID UTF8 "0" +CKA_ISSUER MULTILINE_OCTAL +\060\201\231\061\013\060\011\006\003\125\004\006\023\002\110\125 +\061\021\060\017\006\003\125\004\007\023\010\102\165\144\141\160 +\145\163\164\061\047\060\045\006\003\125\004\012\023\036\116\145 +\164\114\157\143\153\040\110\141\154\157\172\141\164\142\151\172 +\164\157\156\163\141\147\151\040\113\146\164\056\061\032\060\030 +\006\003\125\004\013\023\021\124\141\156\165\163\151\164\166\141 +\156\171\153\151\141\144\157\153\061\062\060\060\006\003\125\004 +\003\023\051\116\145\164\114\157\143\153\040\125\172\154\145\164 +\151\040\050\103\154\141\163\163\040\102\051\040\124\141\156\165 +\163\151\164\166\141\156\171\153\151\141\144\157 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\001\151 +END +CKA_VALUE MULTILINE_OCTAL +\060\202\005\113\060\202\004\264\240\003\002\001\002\002\001\151 +\060\015\006\011\052\206\110\206\367\015\001\001\004\005\000\060 +\201\231\061\013\060\011\006\003\125\004\006\023\002\110\125\061 +\021\060\017\006\003\125\004\007\023\010\102\165\144\141\160\145 +\163\164\061\047\060\045\006\003\125\004\012\023\036\116\145\164 +\114\157\143\153\040\110\141\154\157\172\141\164\142\151\172\164 +\157\156\163\141\147\151\040\113\146\164\056\061\032\060\030\006 +\003\125\004\013\023\021\124\141\156\165\163\151\164\166\141\156 +\171\153\151\141\144\157\153\061\062\060\060\006\003\125\004\003 +\023\051\116\145\164\114\157\143\153\040\125\172\154\145\164\151 +\040\050\103\154\141\163\163\040\102\051\040\124\141\156\165\163 +\151\164\166\141\156\171\153\151\141\144\157\060\036\027\015\071 +\071\060\062\062\065\061\064\061\060\062\062\132\027\015\061\071 +\060\062\062\060\061\064\061\060\062\062\132\060\201\231\061\013 +\060\011\006\003\125\004\006\023\002\110\125\061\021\060\017\006 +\003\125\004\007\023\010\102\165\144\141\160\145\163\164\061\047 +\060\045\006\003\125\004\012\023\036\116\145\164\114\157\143\153 +\040\110\141\154\157\172\141\164\142\151\172\164\157\156\163\141 +\147\151\040\113\146\164\056\061\032\060\030\006\003\125\004\013 +\023\021\124\141\156\165\163\151\164\166\141\156\171\153\151\141 +\144\157\153\061\062\060\060\006\003\125\004\003\023\051\116\145 +\164\114\157\143\153\040\125\172\154\145\164\151\040\050\103\154 +\141\163\163\040\102\051\040\124\141\156\165\163\151\164\166\141 +\156\171\153\151\141\144\157\060\201\237\060\015\006\011\052\206 +\110\206\367\015\001\001\001\005\000\003\201\215\000\060\201\211 +\002\201\201\000\261\352\004\354\040\240\043\302\217\070\140\317 +\307\106\263\325\033\376\373\271\231\236\004\334\034\177\214\112 +\201\230\356\244\324\312\212\027\271\042\177\203\012\165\114\233 +\300\151\330\144\071\243\355\222\243\375\133\134\164\032\300\107 +\312\072\151\166\232\272\342\104\027\374\114\243\325\376\270\227 +\210\257\210\003\211\037\244\362\004\076\310\007\013\346\371\263 +\057\172\142\024\011\106\024\312\144\365\213\200\265\142\250\330 +\153\326\161\223\055\263\277\011\124\130\355\006\353\250\173\334 +\103\261\241\151\002\003\001\000\001\243\202\002\237\060\202\002 +\233\060\022\006\003\125\035\023\001\001\377\004\010\060\006\001 +\001\377\002\001\004\060\016\006\003\125\035\017\001\001\377\004 +\004\003\002\000\006\060\021\006\011\140\206\110\001\206\370\102 +\001\001\004\004\003\002\000\007\060\202\002\140\006\011\140\206 +\110\001\206\370\102\001\015\004\202\002\121\026\202\002\115\106 +\111\107\131\105\114\105\115\041\040\105\172\145\156\040\164\141 +\156\165\163\151\164\166\141\156\171\040\141\040\116\145\164\114 +\157\143\153\040\113\146\164\056\040\101\154\164\141\154\141\156 +\157\163\040\123\172\157\154\147\141\154\164\141\164\141\163\151 +\040\106\145\154\164\145\164\145\154\145\151\142\145\156\040\154 +\145\151\162\164\040\145\154\152\141\162\141\163\157\153\040\141 +\154\141\160\152\141\156\040\153\145\163\172\165\154\164\056\040 +\101\040\150\151\164\145\154\145\163\151\164\145\163\040\146\157 +\154\171\141\155\141\164\141\164\040\141\040\116\145\164\114\157 +\143\153\040\113\146\164\056\040\164\145\162\155\145\153\146\145 +\154\145\154\157\163\163\145\147\055\142\151\172\164\157\163\151 +\164\141\163\141\040\166\145\144\151\056\040\101\040\144\151\147 +\151\164\141\154\151\163\040\141\154\141\151\162\141\163\040\145 +\154\146\157\147\141\144\141\163\141\156\141\153\040\146\145\154 +\164\145\164\145\154\145\040\141\172\040\145\154\157\151\162\164 +\040\145\154\154\145\156\157\162\172\145\163\151\040\145\154\152 +\141\162\141\163\040\155\145\147\164\145\164\145\154\145\056\040 +\101\172\040\145\154\152\141\162\141\163\040\154\145\151\162\141 +\163\141\040\155\145\147\164\141\154\141\154\150\141\164\157\040 +\141\040\116\145\164\114\157\143\153\040\113\146\164\056\040\111 +\156\164\145\162\156\145\164\040\150\157\156\154\141\160\152\141 +\156\040\141\040\150\164\164\160\163\072\057\057\167\167\167\056 +\156\145\164\154\157\143\153\056\156\145\164\057\144\157\143\163 +\040\143\151\155\145\156\040\166\141\147\171\040\153\145\162\150 +\145\164\157\040\141\172\040\145\154\154\145\156\157\162\172\145 +\163\100\156\145\164\154\157\143\153\056\156\145\164\040\145\055 +\155\141\151\154\040\143\151\155\145\156\056\040\111\115\120\117 +\122\124\101\116\124\041\040\124\150\145\040\151\163\163\165\141 +\156\143\145\040\141\156\144\040\164\150\145\040\165\163\145\040 +\157\146\040\164\150\151\163\040\143\145\162\164\151\146\151\143 +\141\164\145\040\151\163\040\163\165\142\152\145\143\164\040\164 +\157\040\164\150\145\040\116\145\164\114\157\143\153\040\103\120 +\123\040\141\166\141\151\154\141\142\154\145\040\141\164\040\150 +\164\164\160\163\072\057\057\167\167\167\056\156\145\164\154\157 +\143\153\056\156\145\164\057\144\157\143\163\040\157\162\040\142 +\171\040\145\055\155\141\151\154\040\141\164\040\143\160\163\100 +\156\145\164\154\157\143\153\056\156\145\164\056\060\015\006\011 +\052\206\110\206\367\015\001\001\004\005\000\003\201\201\000\004 +\333\256\214\027\257\370\016\220\061\116\315\076\011\300\155\072 +\260\370\063\114\107\114\343\165\210\020\227\254\260\070\025\221 +\306\051\226\314\041\300\155\074\245\164\317\330\202\245\071\303 +\145\343\102\160\273\042\220\343\175\333\065\166\341\240\265\332 +\237\160\156\223\032\060\071\035\060\333\056\343\174\262\221\262 +\321\067\051\372\271\326\027\134\107\117\343\035\070\353\237\325 +\173\225\250\050\236\025\112\321\321\320\053\000\227\240\342\222 +\066\053\143\254\130\001\153\063\051\120\206\203\361\001\110 +END + +# Trust for Certificate "NetLock Business (Class B) Root" +CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "NetLock Business (Class B) Root" +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\207\237\113\356\005\337\230\130\073\343\140\326\063\347\015\077 +\376\230\161\257 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\071\026\252\271\152\101\341\024\151\337\236\154\073\162\334\266 +END +CKA_ISSUER MULTILINE_OCTAL +\060\201\231\061\013\060\011\006\003\125\004\006\023\002\110\125 +\061\021\060\017\006\003\125\004\007\023\010\102\165\144\141\160 +\145\163\164\061\047\060\045\006\003\125\004\012\023\036\116\145 +\164\114\157\143\153\040\110\141\154\157\172\141\164\142\151\172 +\164\157\156\163\141\147\151\040\113\146\164\056\061\032\060\030 +\006\003\125\004\013\023\021\124\141\156\165\163\151\164\166\141 +\156\171\153\151\141\144\157\153\061\062\060\060\006\003\125\004 +\003\023\051\116\145\164\114\157\143\153\040\125\172\154\145\164 +\151\040\050\103\154\141\163\163\040\102\051\040\124\141\156\165 +\163\151\164\166\141\156\171\153\151\141\144\157 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\001\151 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "NetLock Express (Class C) Root" +# +CKA_CLASS CK_OBJECT_CLASS CKO_CERTIFICATE +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "NetLock Express (Class C) Root" +CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509 +CKA_SUBJECT MULTILINE_OCTAL +\060\201\233\061\013\060\011\006\003\125\004\006\023\002\110\125 +\061\021\060\017\006\003\125\004\007\023\010\102\165\144\141\160 +\145\163\164\061\047\060\045\006\003\125\004\012\023\036\116\145 +\164\114\157\143\153\040\110\141\154\157\172\141\164\142\151\172 +\164\157\156\163\141\147\151\040\113\146\164\056\061\032\060\030 +\006\003\125\004\013\023\021\124\141\156\165\163\151\164\166\141 +\156\171\153\151\141\144\157\153\061\064\060\062\006\003\125\004 +\003\023\053\116\145\164\114\157\143\153\040\105\170\160\162\145 +\163\163\172\040\050\103\154\141\163\163\040\103\051\040\124\141 +\156\165\163\151\164\166\141\156\171\153\151\141\144\157 +END +CKA_ID UTF8 "0" +CKA_ISSUER MULTILINE_OCTAL +\060\201\233\061\013\060\011\006\003\125\004\006\023\002\110\125 +\061\021\060\017\006\003\125\004\007\023\010\102\165\144\141\160 +\145\163\164\061\047\060\045\006\003\125\004\012\023\036\116\145 +\164\114\157\143\153\040\110\141\154\157\172\141\164\142\151\172 +\164\157\156\163\141\147\151\040\113\146\164\056\061\032\060\030 +\006\003\125\004\013\023\021\124\141\156\165\163\151\164\166\141 +\156\171\153\151\141\144\157\153\061\064\060\062\006\003\125\004 +\003\023\053\116\145\164\114\157\143\153\040\105\170\160\162\145 +\163\163\172\040\050\103\154\141\163\163\040\103\051\040\124\141 +\156\165\163\151\164\166\141\156\171\153\151\141\144\157 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\001\150 +END +CKA_VALUE MULTILINE_OCTAL +\060\202\005\117\060\202\004\270\240\003\002\001\002\002\001\150 +\060\015\006\011\052\206\110\206\367\015\001\001\004\005\000\060 +\201\233\061\013\060\011\006\003\125\004\006\023\002\110\125\061 +\021\060\017\006\003\125\004\007\023\010\102\165\144\141\160\145 +\163\164\061\047\060\045\006\003\125\004\012\023\036\116\145\164 +\114\157\143\153\040\110\141\154\157\172\141\164\142\151\172\164 +\157\156\163\141\147\151\040\113\146\164\056\061\032\060\030\006 +\003\125\004\013\023\021\124\141\156\165\163\151\164\166\141\156 +\171\153\151\141\144\157\153\061\064\060\062\006\003\125\004\003 +\023\053\116\145\164\114\157\143\153\040\105\170\160\162\145\163 +\163\172\040\050\103\154\141\163\163\040\103\051\040\124\141\156 +\165\163\151\164\166\141\156\171\153\151\141\144\157\060\036\027 +\015\071\071\060\062\062\065\061\064\060\070\061\061\132\027\015 +\061\071\060\062\062\060\061\064\060\070\061\061\132\060\201\233 +\061\013\060\011\006\003\125\004\006\023\002\110\125\061\021\060 +\017\006\003\125\004\007\023\010\102\165\144\141\160\145\163\164 +\061\047\060\045\006\003\125\004\012\023\036\116\145\164\114\157 +\143\153\040\110\141\154\157\172\141\164\142\151\172\164\157\156 +\163\141\147\151\040\113\146\164\056\061\032\060\030\006\003\125 +\004\013\023\021\124\141\156\165\163\151\164\166\141\156\171\153 +\151\141\144\157\153\061\064\060\062\006\003\125\004\003\023\053 +\116\145\164\114\157\143\153\040\105\170\160\162\145\163\163\172 +\040\050\103\154\141\163\163\040\103\051\040\124\141\156\165\163 +\151\164\166\141\156\171\153\151\141\144\157\060\201\237\060\015 +\006\011\052\206\110\206\367\015\001\001\001\005\000\003\201\215 +\000\060\201\211\002\201\201\000\353\354\260\154\141\212\043\045 +\257\140\040\343\331\237\374\223\013\333\135\215\260\241\263\100 +\072\202\316\375\165\340\170\062\003\206\132\206\225\221\355\123 +\372\235\100\374\346\350\335\331\133\172\003\275\135\363\073\014 +\303\121\171\233\255\125\240\351\320\003\020\257\012\272\024\102 +\331\122\046\021\042\307\322\040\314\202\244\232\251\376\270\201 +\166\235\152\267\322\066\165\076\261\206\011\366\156\155\176\116 +\267\172\354\256\161\204\366\004\063\010\045\062\353\164\254\026 +\104\306\344\100\223\035\177\255\002\003\001\000\001\243\202\002 +\237\060\202\002\233\060\022\006\003\125\035\023\001\001\377\004 +\010\060\006\001\001\377\002\001\004\060\016\006\003\125\035\017 +\001\001\377\004\004\003\002\000\006\060\021\006\011\140\206\110 +\001\206\370\102\001\001\004\004\003\002\000\007\060\202\002\140 +\006\011\140\206\110\001\206\370\102\001\015\004\202\002\121\026 +\202\002\115\106\111\107\131\105\114\105\115\041\040\105\172\145 +\156\040\164\141\156\165\163\151\164\166\141\156\171\040\141\040 +\116\145\164\114\157\143\153\040\113\146\164\056\040\101\154\164 +\141\154\141\156\157\163\040\123\172\157\154\147\141\154\164\141 +\164\141\163\151\040\106\145\154\164\145\164\145\154\145\151\142 +\145\156\040\154\145\151\162\164\040\145\154\152\141\162\141\163 +\157\153\040\141\154\141\160\152\141\156\040\153\145\163\172\165 +\154\164\056\040\101\040\150\151\164\145\154\145\163\151\164\145 +\163\040\146\157\154\171\141\155\141\164\141\164\040\141\040\116 +\145\164\114\157\143\153\040\113\146\164\056\040\164\145\162\155 +\145\153\146\145\154\145\154\157\163\163\145\147\055\142\151\172 +\164\157\163\151\164\141\163\141\040\166\145\144\151\056\040\101 +\040\144\151\147\151\164\141\154\151\163\040\141\154\141\151\162 +\141\163\040\145\154\146\157\147\141\144\141\163\141\156\141\153 +\040\146\145\154\164\145\164\145\154\145\040\141\172\040\145\154 +\157\151\162\164\040\145\154\154\145\156\157\162\172\145\163\151 +\040\145\154\152\141\162\141\163\040\155\145\147\164\145\164\145 +\154\145\056\040\101\172\040\145\154\152\141\162\141\163\040\154 +\145\151\162\141\163\141\040\155\145\147\164\141\154\141\154\150 +\141\164\157\040\141\040\116\145\164\114\157\143\153\040\113\146 +\164\056\040\111\156\164\145\162\156\145\164\040\150\157\156\154 +\141\160\152\141\156\040\141\040\150\164\164\160\163\072\057\057 +\167\167\167\056\156\145\164\154\157\143\153\056\156\145\164\057 +\144\157\143\163\040\143\151\155\145\156\040\166\141\147\171\040 +\153\145\162\150\145\164\157\040\141\172\040\145\154\154\145\156 +\157\162\172\145\163\100\156\145\164\154\157\143\153\056\156\145 +\164\040\145\055\155\141\151\154\040\143\151\155\145\156\056\040 +\111\115\120\117\122\124\101\116\124\041\040\124\150\145\040\151 +\163\163\165\141\156\143\145\040\141\156\144\040\164\150\145\040 +\165\163\145\040\157\146\040\164\150\151\163\040\143\145\162\164 +\151\146\151\143\141\164\145\040\151\163\040\163\165\142\152\145 +\143\164\040\164\157\040\164\150\145\040\116\145\164\114\157\143 +\153\040\103\120\123\040\141\166\141\151\154\141\142\154\145\040 +\141\164\040\150\164\164\160\163\072\057\057\167\167\167\056\156 +\145\164\154\157\143\153\056\156\145\164\057\144\157\143\163\040 +\157\162\040\142\171\040\145\055\155\141\151\154\040\141\164\040 +\143\160\163\100\156\145\164\154\157\143\153\056\156\145\164\056 +\060\015\006\011\052\206\110\206\367\015\001\001\004\005\000\003 +\201\201\000\020\255\177\327\014\062\200\012\330\206\361\171\230 +\265\255\324\315\263\066\304\226\110\301\134\315\232\331\005\056 +\237\276\120\353\364\046\024\020\055\324\146\027\370\236\301\047 +\375\361\355\344\173\113\240\154\265\253\232\127\160\246\355\240 +\244\355\056\365\375\374\275\376\115\067\010\014\274\343\226\203 +\042\365\111\033\177\113\053\264\124\301\200\174\231\116\035\320 +\214\356\320\254\345\222\372\165\126\376\144\240\023\217\270\270 +\026\235\141\005\147\200\310\320\330\245\007\002\064\230\004\215 +\063\004\324 +END + +# Trust for Certificate "NetLock Express (Class C) Root" +CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "NetLock Express (Class C) Root" +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\343\222\121\057\012\317\365\005\337\366\336\006\177\165\067\341 +\145\352\127\113 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\117\353\361\360\160\302\200\143\135\130\237\332\022\074\251\304 +END +CKA_ISSUER MULTILINE_OCTAL +\060\201\233\061\013\060\011\006\003\125\004\006\023\002\110\125 +\061\021\060\017\006\003\125\004\007\023\010\102\165\144\141\160 +\145\163\164\061\047\060\045\006\003\125\004\012\023\036\116\145 +\164\114\157\143\153\040\110\141\154\157\172\141\164\142\151\172 +\164\157\156\163\141\147\151\040\113\146\164\056\061\032\060\030 +\006\003\125\004\013\023\021\124\141\156\165\163\151\164\166\141 +\156\171\153\151\141\144\157\153\061\064\060\062\006\003\125\004 +\003\023\053\116\145\164\114\157\143\153\040\105\170\160\162\145 +\163\163\172\040\050\103\154\141\163\163\040\103\051\040\124\141 +\156\165\163\151\164\166\141\156\171\153\151\141\144\157 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\001\150 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "XRamp Global CA Root" +# +CKA_CLASS CK_OBJECT_CLASS CKO_CERTIFICATE +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "XRamp Global CA Root" +CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509 +CKA_SUBJECT MULTILINE_OCTAL +\060\201\202\061\013\060\011\006\003\125\004\006\023\002\125\123 +\061\036\060\034\006\003\125\004\013\023\025\167\167\167\056\170 +\162\141\155\160\163\145\143\165\162\151\164\171\056\143\157\155 +\061\044\060\042\006\003\125\004\012\023\033\130\122\141\155\160 +\040\123\145\143\165\162\151\164\171\040\123\145\162\166\151\143 +\145\163\040\111\156\143\061\055\060\053\006\003\125\004\003\023 +\044\130\122\141\155\160\040\107\154\157\142\141\154\040\103\145 +\162\164\151\146\151\143\141\164\151\157\156\040\101\165\164\150 +\157\162\151\164\171 +END +CKA_ID UTF8 "0" +CKA_ISSUER MULTILINE_OCTAL +\060\201\202\061\013\060\011\006\003\125\004\006\023\002\125\123 +\061\036\060\034\006\003\125\004\013\023\025\167\167\167\056\170 +\162\141\155\160\163\145\143\165\162\151\164\171\056\143\157\155 +\061\044\060\042\006\003\125\004\012\023\033\130\122\141\155\160 +\040\123\145\143\165\162\151\164\171\040\123\145\162\166\151\143 +\145\163\040\111\156\143\061\055\060\053\006\003\125\004\003\023 +\044\130\122\141\155\160\040\107\154\157\142\141\154\040\103\145 +\162\164\151\146\151\143\141\164\151\157\156\040\101\165\164\150 +\157\162\151\164\171 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\020\120\224\154\354\030\352\325\234\115\325\227\357\165\217 +\240\255 +END +CKA_VALUE MULTILINE_OCTAL +\060\202\004\060\060\202\003\030\240\003\002\001\002\002\020\120 +\224\154\354\030\352\325\234\115\325\227\357\165\217\240\255\060 +\015\006\011\052\206\110\206\367\015\001\001\005\005\000\060\201 +\202\061\013\060\011\006\003\125\004\006\023\002\125\123\061\036 +\060\034\006\003\125\004\013\023\025\167\167\167\056\170\162\141 +\155\160\163\145\143\165\162\151\164\171\056\143\157\155\061\044 +\060\042\006\003\125\004\012\023\033\130\122\141\155\160\040\123 +\145\143\165\162\151\164\171\040\123\145\162\166\151\143\145\163 +\040\111\156\143\061\055\060\053\006\003\125\004\003\023\044\130 +\122\141\155\160\040\107\154\157\142\141\154\040\103\145\162\164 +\151\146\151\143\141\164\151\157\156\040\101\165\164\150\157\162 +\151\164\171\060\036\027\015\060\064\061\061\060\061\061\067\061 +\064\060\064\132\027\015\063\065\060\061\060\061\060\065\063\067 +\061\071\132\060\201\202\061\013\060\011\006\003\125\004\006\023 +\002\125\123\061\036\060\034\006\003\125\004\013\023\025\167\167 +\167\056\170\162\141\155\160\163\145\143\165\162\151\164\171\056 +\143\157\155\061\044\060\042\006\003\125\004\012\023\033\130\122 +\141\155\160\040\123\145\143\165\162\151\164\171\040\123\145\162 +\166\151\143\145\163\040\111\156\143\061\055\060\053\006\003\125 +\004\003\023\044\130\122\141\155\160\040\107\154\157\142\141\154 +\040\103\145\162\164\151\146\151\143\141\164\151\157\156\040\101 +\165\164\150\157\162\151\164\171\060\202\001\042\060\015\006\011 +\052\206\110\206\367\015\001\001\001\005\000\003\202\001\017\000 +\060\202\001\012\002\202\001\001\000\230\044\036\275\025\264\272 +\337\307\214\245\047\266\070\013\151\363\266\116\250\054\056\041 +\035\134\104\337\041\135\176\043\164\376\136\176\264\112\267\246 +\255\037\256\340\006\026\342\233\133\331\147\164\153\135\200\217 +\051\235\206\033\331\234\015\230\155\166\020\050\130\344\145\260 +\177\112\230\171\237\340\303\061\176\200\053\265\214\300\100\073 +\021\206\320\313\242\206\066\140\244\325\060\202\155\331\156\320 +\017\022\004\063\227\137\117\141\132\360\344\371\221\253\347\035 +\073\274\350\317\364\153\055\064\174\342\110\141\034\216\363\141 +\104\314\157\240\112\251\224\260\115\332\347\251\064\172\162\070 +\250\101\314\074\224\021\175\353\310\246\214\267\206\313\312\063 +\073\331\075\067\213\373\172\076\206\054\347\163\327\012\127\254 +\144\233\031\353\364\017\004\010\212\254\003\027\031\144\364\132 +\045\042\215\064\054\262\366\150\035\022\155\323\212\036\024\332 +\304\217\246\342\043\205\325\172\015\275\152\340\351\354\354\027 +\273\102\033\147\252\045\355\105\203\041\374\301\311\174\325\142 +\076\372\362\305\055\323\375\324\145\002\003\001\000\001\243\201 +\237\060\201\234\060\023\006\011\053\006\001\004\001\202\067\024 +\002\004\006\036\004\000\103\000\101\060\013\006\003\125\035\017 +\004\004\003\002\001\206\060\017\006\003\125\035\023\001\001\377 +\004\005\060\003\001\001\377\060\035\006\003\125\035\016\004\026 +\004\024\306\117\242\075\006\143\204\011\234\316\142\344\004\254 +\215\134\265\351\266\033\060\066\006\003\125\035\037\004\057\060 +\055\060\053\240\051\240\047\206\045\150\164\164\160\072\057\057 +\143\162\154\056\170\162\141\155\160\163\145\143\165\162\151\164 +\171\056\143\157\155\057\130\107\103\101\056\143\162\154\060\020 +\006\011\053\006\001\004\001\202\067\025\001\004\003\002\001\001 +\060\015\006\011\052\206\110\206\367\015\001\001\005\005\000\003 +\202\001\001\000\221\025\071\003\001\033\147\373\112\034\371\012 +\140\133\241\332\115\227\142\371\044\123\047\327\202\144\116\220 +\056\303\111\033\053\232\334\374\250\170\147\065\361\035\360\021 +\275\267\110\343\020\366\015\337\077\322\311\266\252\125\244\110 +\272\002\333\336\131\056\025\133\073\235\026\175\107\327\067\352 +\137\115\166\022\066\273\037\327\241\201\004\106\040\243\054\155 +\251\236\001\176\077\051\316\000\223\337\375\311\222\163\211\211 +\144\236\347\053\344\034\221\054\322\271\316\175\316\157\061\231 +\323\346\276\322\036\220\360\011\024\171\134\043\253\115\322\332 +\041\037\115\231\171\235\341\317\047\237\020\233\034\210\015\260 +\212\144\101\061\270\016\154\220\044\244\233\134\161\217\272\273 +\176\034\033\333\152\200\017\041\274\351\333\246\267\100\364\262 +\213\251\261\344\357\232\032\320\075\151\231\356\250\050\243\341 +\074\263\360\262\021\234\317\174\100\346\335\347\103\175\242\330 +\072\265\251\215\362\064\231\304\324\020\341\006\375\011\204\020 +\073\356\304\114\364\354\047\174\102\302\164\174\202\212\011\311 +\264\003\045\274 +END + +# Trust for Certificate "XRamp Global CA Root" +CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "XRamp Global CA Root" +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\270\001\206\321\353\234\206\245\101\004\317\060\124\363\114\122 +\267\345\130\306 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\241\013\104\263\312\020\330\000\156\235\017\330\017\222\012\321 +END +CKA_ISSUER MULTILINE_OCTAL +\060\201\202\061\013\060\011\006\003\125\004\006\023\002\125\123 +\061\036\060\034\006\003\125\004\013\023\025\167\167\167\056\170 +\162\141\155\160\163\145\143\165\162\151\164\171\056\143\157\155 +\061\044\060\042\006\003\125\004\012\023\033\130\122\141\155\160 +\040\123\145\143\165\162\151\164\171\040\123\145\162\166\151\143 +\145\163\040\111\156\143\061\055\060\053\006\003\125\004\003\023 +\044\130\122\141\155\160\040\107\154\157\142\141\154\040\103\145 +\162\164\151\146\151\143\141\164\151\157\156\040\101\165\164\150 +\157\162\151\164\171 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\020\120\224\154\354\030\352\325\234\115\325\227\357\165\217 +\240\255 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "Go Daddy Class 2 CA" +# +CKA_CLASS CK_OBJECT_CLASS CKO_CERTIFICATE +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "Go Daddy Class 2 CA" +CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509 +CKA_SUBJECT MULTILINE_OCTAL +\060\143\061\013\060\011\006\003\125\004\006\023\002\125\123\061 +\041\060\037\006\003\125\004\012\023\030\124\150\145\040\107\157 +\040\104\141\144\144\171\040\107\162\157\165\160\054\040\111\156 +\143\056\061\061\060\057\006\003\125\004\013\023\050\107\157\040 +\104\141\144\144\171\040\103\154\141\163\163\040\062\040\103\145 +\162\164\151\146\151\143\141\164\151\157\156\040\101\165\164\150 +\157\162\151\164\171 +END +CKA_ID UTF8 "0" +CKA_ISSUER MULTILINE_OCTAL +\060\143\061\013\060\011\006\003\125\004\006\023\002\125\123\061 +\041\060\037\006\003\125\004\012\023\030\124\150\145\040\107\157 +\040\104\141\144\144\171\040\107\162\157\165\160\054\040\111\156 +\143\056\061\061\060\057\006\003\125\004\013\023\050\107\157\040 +\104\141\144\144\171\040\103\154\141\163\163\040\062\040\103\145 +\162\164\151\146\151\143\141\164\151\157\156\040\101\165\164\150 +\157\162\151\164\171 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\001\000 +END +CKA_VALUE MULTILINE_OCTAL +\060\202\004\000\060\202\002\350\240\003\002\001\002\002\001\000 +\060\015\006\011\052\206\110\206\367\015\001\001\005\005\000\060 +\143\061\013\060\011\006\003\125\004\006\023\002\125\123\061\041 +\060\037\006\003\125\004\012\023\030\124\150\145\040\107\157\040 +\104\141\144\144\171\040\107\162\157\165\160\054\040\111\156\143 +\056\061\061\060\057\006\003\125\004\013\023\050\107\157\040\104 +\141\144\144\171\040\103\154\141\163\163\040\062\040\103\145\162 +\164\151\146\151\143\141\164\151\157\156\040\101\165\164\150\157 +\162\151\164\171\060\036\027\015\060\064\060\066\062\071\061\067 +\060\066\062\060\132\027\015\063\064\060\066\062\071\061\067\060 +\066\062\060\132\060\143\061\013\060\011\006\003\125\004\006\023 +\002\125\123\061\041\060\037\006\003\125\004\012\023\030\124\150 +\145\040\107\157\040\104\141\144\144\171\040\107\162\157\165\160 +\054\040\111\156\143\056\061\061\060\057\006\003\125\004\013\023 +\050\107\157\040\104\141\144\144\171\040\103\154\141\163\163\040 +\062\040\103\145\162\164\151\146\151\143\141\164\151\157\156\040 +\101\165\164\150\157\162\151\164\171\060\202\001\040\060\015\006 +\011\052\206\110\206\367\015\001\001\001\005\000\003\202\001\015 +\000\060\202\001\010\002\202\001\001\000\336\235\327\352\127\030 +\111\241\133\353\327\137\110\206\352\276\335\377\344\357\147\034 +\364\145\150\263\127\161\240\136\167\273\355\233\111\351\160\200 +\075\126\030\143\010\157\332\362\314\320\077\177\002\124\042\124 +\020\330\262\201\324\300\165\075\113\177\307\167\303\076\170\253 +\032\003\265\040\153\057\152\053\261\305\210\176\304\273\036\260 +\301\330\105\047\157\252\067\130\367\207\046\327\330\055\366\251 +\027\267\037\162\066\116\246\027\077\145\230\222\333\052\156\135 +\242\376\210\340\013\336\177\345\215\025\341\353\313\072\325\342 +\022\242\023\055\330\216\257\137\022\075\240\010\005\010\266\134 +\245\145\070\004\105\231\036\243\140\140\164\305\101\245\162\142 +\033\142\305\037\157\137\032\102\276\002\121\145\250\256\043\030 +\152\374\170\003\251\115\177\200\303\372\253\132\374\241\100\244 +\312\031\026\376\262\310\357\136\163\015\356\167\275\232\366\171 +\230\274\261\007\147\242\025\015\335\240\130\306\104\173\012\076 +\142\050\137\272\101\007\123\130\317\021\176\070\164\305\370\377 +\265\151\220\217\204\164\352\227\033\257\002\001\003\243\201\300 +\060\201\275\060\035\006\003\125\035\016\004\026\004\024\322\304 +\260\322\221\324\114\021\161\263\141\313\075\241\376\335\250\152 +\324\343\060\201\215\006\003\125\035\043\004\201\205\060\201\202 +\200\024\322\304\260\322\221\324\114\021\161\263\141\313\075\241 +\376\335\250\152\324\343\241\147\244\145\060\143\061\013\060\011 +\006\003\125\004\006\023\002\125\123\061\041\060\037\006\003\125 +\004\012\023\030\124\150\145\040\107\157\040\104\141\144\144\171 +\040\107\162\157\165\160\054\040\111\156\143\056\061\061\060\057 +\006\003\125\004\013\023\050\107\157\040\104\141\144\144\171\040 +\103\154\141\163\163\040\062\040\103\145\162\164\151\146\151\143 +\141\164\151\157\156\040\101\165\164\150\157\162\151\164\171\202 +\001\000\060\014\006\003\125\035\023\004\005\060\003\001\001\377 +\060\015\006\011\052\206\110\206\367\015\001\001\005\005\000\003 +\202\001\001\000\062\113\363\262\312\076\221\374\022\306\241\007 +\214\216\167\240\063\006\024\134\220\036\030\367\010\246\075\012 +\031\371\207\200\021\156\151\344\226\027\060\377\064\221\143\162 +\070\356\314\034\001\243\035\224\050\244\061\366\172\304\124\327 +\366\345\061\130\003\242\314\316\142\333\224\105\163\265\277\105 +\311\044\265\325\202\002\255\043\171\151\215\270\266\115\316\317 +\114\312\063\043\350\034\210\252\235\213\101\156\026\311\040\345 +\211\236\315\073\332\160\367\176\231\046\040\024\124\045\253\156 +\163\205\346\233\041\235\012\154\202\016\250\370\302\014\372\020 +\036\154\226\357\207\015\304\017\141\213\255\356\203\053\225\370 +\216\222\204\162\071\353\040\352\203\355\203\315\227\156\010\274 +\353\116\046\266\163\053\344\323\366\114\376\046\161\342\141\021 +\164\112\377\127\032\207\017\165\110\056\317\121\151\027\240\002 +\022\141\225\325\321\100\262\020\114\356\304\254\020\103\246\245 +\236\012\325\225\142\232\015\317\210\202\305\062\014\344\053\237 +\105\346\015\237\050\234\261\271\052\132\127\255\067\017\257\035 +\177\333\275\237 +END + +# Trust for Certificate "Go Daddy Class 2 CA" +CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "Go Daddy Class 2 CA" +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\047\226\272\346\077\030\001\342\167\046\033\240\327\167\160\002 +\217\040\356\344 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\221\336\006\045\253\332\375\062\027\014\273\045\027\052\204\147 +END +CKA_ISSUER MULTILINE_OCTAL +\060\143\061\013\060\011\006\003\125\004\006\023\002\125\123\061 +\041\060\037\006\003\125\004\012\023\030\124\150\145\040\107\157 +\040\104\141\144\144\171\040\107\162\157\165\160\054\040\111\156 +\143\056\061\061\060\057\006\003\125\004\013\023\050\107\157\040 +\104\141\144\144\171\040\103\154\141\163\163\040\062\040\103\145 +\162\164\151\146\151\143\141\164\151\157\156\040\101\165\164\150 +\157\162\151\164\171 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\001\000 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "Starfield Class 2 CA" +# +CKA_CLASS CK_OBJECT_CLASS CKO_CERTIFICATE +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "Starfield Class 2 CA" +CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509 +CKA_SUBJECT MULTILINE_OCTAL +\060\150\061\013\060\011\006\003\125\004\006\023\002\125\123\061 +\045\060\043\006\003\125\004\012\023\034\123\164\141\162\146\151 +\145\154\144\040\124\145\143\150\156\157\154\157\147\151\145\163 +\054\040\111\156\143\056\061\062\060\060\006\003\125\004\013\023 +\051\123\164\141\162\146\151\145\154\144\040\103\154\141\163\163 +\040\062\040\103\145\162\164\151\146\151\143\141\164\151\157\156 +\040\101\165\164\150\157\162\151\164\171 +END +CKA_ID UTF8 "0" +CKA_ISSUER MULTILINE_OCTAL +\060\150\061\013\060\011\006\003\125\004\006\023\002\125\123\061 +\045\060\043\006\003\125\004\012\023\034\123\164\141\162\146\151 +\145\154\144\040\124\145\143\150\156\157\154\157\147\151\145\163 +\054\040\111\156\143\056\061\062\060\060\006\003\125\004\013\023 +\051\123\164\141\162\146\151\145\154\144\040\103\154\141\163\163 +\040\062\040\103\145\162\164\151\146\151\143\141\164\151\157\156 +\040\101\165\164\150\157\162\151\164\171 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\001\000 +END +CKA_VALUE MULTILINE_OCTAL +\060\202\004\017\060\202\002\367\240\003\002\001\002\002\001\000 +\060\015\006\011\052\206\110\206\367\015\001\001\005\005\000\060 +\150\061\013\060\011\006\003\125\004\006\023\002\125\123\061\045 +\060\043\006\003\125\004\012\023\034\123\164\141\162\146\151\145 +\154\144\040\124\145\143\150\156\157\154\157\147\151\145\163\054 +\040\111\156\143\056\061\062\060\060\006\003\125\004\013\023\051 +\123\164\141\162\146\151\145\154\144\040\103\154\141\163\163\040 +\062\040\103\145\162\164\151\146\151\143\141\164\151\157\156\040 +\101\165\164\150\157\162\151\164\171\060\036\027\015\060\064\060 +\066\062\071\061\067\063\071\061\066\132\027\015\063\064\060\066 +\062\071\061\067\063\071\061\066\132\060\150\061\013\060\011\006 +\003\125\004\006\023\002\125\123\061\045\060\043\006\003\125\004 +\012\023\034\123\164\141\162\146\151\145\154\144\040\124\145\143 +\150\156\157\154\157\147\151\145\163\054\040\111\156\143\056\061 +\062\060\060\006\003\125\004\013\023\051\123\164\141\162\146\151 +\145\154\144\040\103\154\141\163\163\040\062\040\103\145\162\164 +\151\146\151\143\141\164\151\157\156\040\101\165\164\150\157\162 +\151\164\171\060\202\001\040\060\015\006\011\052\206\110\206\367 +\015\001\001\001\005\000\003\202\001\015\000\060\202\001\010\002 +\202\001\001\000\267\062\310\376\351\161\246\004\205\255\014\021 +\144\337\316\115\357\310\003\030\207\077\241\253\373\074\246\237 +\360\303\241\332\324\330\156\053\123\220\373\044\244\076\204\360 +\236\350\137\354\345\047\104\365\050\246\077\173\336\340\052\360 +\310\257\123\057\236\312\005\001\223\036\217\146\034\071\247\115 +\372\132\266\163\004\045\146\353\167\177\347\131\306\112\231\045 +\024\124\353\046\307\363\177\031\325\060\160\217\257\260\106\052 +\377\255\353\051\355\327\237\252\004\207\243\324\371\211\245\064 +\137\333\103\221\202\066\331\146\074\261\270\271\202\375\234\072 +\076\020\310\073\357\006\145\146\172\233\031\030\075\377\161\121 +\074\060\056\137\276\075\167\163\262\135\006\154\303\043\126\232 +\053\205\046\222\034\247\002\263\344\077\015\257\010\171\202\270 +\066\075\352\234\323\065\263\274\151\312\365\314\235\350\375\144 +\215\027\200\063\156\136\112\135\231\311\036\207\264\235\032\300 +\325\156\023\065\043\136\337\233\137\075\357\326\367\166\302\352 +\076\273\170\015\034\102\147\153\004\330\370\326\332\157\213\362 +\104\240\001\253\002\001\003\243\201\305\060\201\302\060\035\006 +\003\125\035\016\004\026\004\024\277\137\267\321\316\335\037\206 +\364\133\125\254\334\327\020\302\016\251\210\347\060\201\222\006 +\003\125\035\043\004\201\212\060\201\207\200\024\277\137\267\321 +\316\335\037\206\364\133\125\254\334\327\020\302\016\251\210\347 +\241\154\244\152\060\150\061\013\060\011\006\003\125\004\006\023 +\002\125\123\061\045\060\043\006\003\125\004\012\023\034\123\164 +\141\162\146\151\145\154\144\040\124\145\143\150\156\157\154\157 +\147\151\145\163\054\040\111\156\143\056\061\062\060\060\006\003 +\125\004\013\023\051\123\164\141\162\146\151\145\154\144\040\103 +\154\141\163\163\040\062\040\103\145\162\164\151\146\151\143\141 +\164\151\157\156\040\101\165\164\150\157\162\151\164\171\202\001 +\000\060\014\006\003\125\035\023\004\005\060\003\001\001\377\060 +\015\006\011\052\206\110\206\367\015\001\001\005\005\000\003\202 +\001\001\000\005\235\077\210\235\321\311\032\125\241\254\151\363 +\363\131\332\233\001\207\032\117\127\251\241\171\011\052\333\367 +\057\262\036\314\307\136\152\330\203\207\241\227\357\111\065\076 +\167\006\101\130\142\277\216\130\270\012\147\077\354\263\335\041 +\146\037\311\124\372\162\314\075\114\100\330\201\257\167\236\203 +\172\273\242\307\365\064\027\216\331\021\100\364\374\054\052\115 +\025\177\247\142\135\056\045\323\000\013\040\032\035\150\371\027 +\270\364\275\213\355\050\131\335\115\026\213\027\203\310\262\145 +\307\055\172\245\252\274\123\206\155\335\127\244\312\370\040\101 +\013\150\360\364\373\164\276\126\135\172\171\365\371\035\205\343 +\055\225\276\365\161\220\103\314\215\037\232\000\012\207\051\351 +\125\042\130\000\043\352\343\022\103\051\133\107\010\335\214\101 +\152\145\006\250\345\041\252\101\264\225\041\225\271\175\321\064 +\253\023\326\255\274\334\342\075\071\315\275\076\165\160\241\030 +\131\003\311\042\264\217\234\325\136\052\327\245\266\324\012\155 +\370\267\100\021\106\232\037\171\016\142\277\017\227\354\340\057 +\037\027\224 +END + +# Trust for Certificate "Starfield Class 2 CA" +CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "Starfield Class 2 CA" +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\255\176\034\050\260\144\357\217\140\003\100\040\024\303\320\343 +\067\016\265\212 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\062\112\113\273\310\143\151\233\276\164\232\306\335\035\106\044 +END +CKA_ISSUER MULTILINE_OCTAL +\060\150\061\013\060\011\006\003\125\004\006\023\002\125\123\061 +\045\060\043\006\003\125\004\012\023\034\123\164\141\162\146\151 +\145\154\144\040\124\145\143\150\156\157\154\157\147\151\145\163 +\054\040\111\156\143\056\061\062\060\060\006\003\125\004\013\023 +\051\123\164\141\162\146\151\145\154\144\040\103\154\141\163\163 +\040\062\040\103\145\162\164\151\146\151\143\141\164\151\157\156 +\040\101\165\164\150\157\162\151\164\171 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\001\000 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "StartCom Certification Authority" +# +CKA_CLASS CK_OBJECT_CLASS CKO_CERTIFICATE +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "StartCom Certification Authority" +CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509 +CKA_SUBJECT MULTILINE_OCTAL +\060\175\061\013\060\011\006\003\125\004\006\023\002\111\114\061 +\026\060\024\006\003\125\004\012\023\015\123\164\141\162\164\103 +\157\155\040\114\164\144\056\061\053\060\051\006\003\125\004\013 +\023\042\123\145\143\165\162\145\040\104\151\147\151\164\141\154 +\040\103\145\162\164\151\146\151\143\141\164\145\040\123\151\147 +\156\151\156\147\061\051\060\047\006\003\125\004\003\023\040\123 +\164\141\162\164\103\157\155\040\103\145\162\164\151\146\151\143 +\141\164\151\157\156\040\101\165\164\150\157\162\151\164\171 +END +CKA_ID UTF8 "0" +CKA_ISSUER MULTILINE_OCTAL +\060\175\061\013\060\011\006\003\125\004\006\023\002\111\114\061 +\026\060\024\006\003\125\004\012\023\015\123\164\141\162\164\103 +\157\155\040\114\164\144\056\061\053\060\051\006\003\125\004\013 +\023\042\123\145\143\165\162\145\040\104\151\147\151\164\141\154 +\040\103\145\162\164\151\146\151\143\141\164\145\040\123\151\147 +\156\151\156\147\061\051\060\047\006\003\125\004\003\023\040\123 +\164\141\162\164\103\157\155\040\103\145\162\164\151\146\151\143 +\141\164\151\157\156\040\101\165\164\150\157\162\151\164\171 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\001\001 +END +CKA_VALUE MULTILINE_OCTAL +\060\202\007\311\060\202\005\261\240\003\002\001\002\002\001\001 +\060\015\006\011\052\206\110\206\367\015\001\001\005\005\000\060 +\175\061\013\060\011\006\003\125\004\006\023\002\111\114\061\026 +\060\024\006\003\125\004\012\023\015\123\164\141\162\164\103\157 +\155\040\114\164\144\056\061\053\060\051\006\003\125\004\013\023 +\042\123\145\143\165\162\145\040\104\151\147\151\164\141\154\040 +\103\145\162\164\151\146\151\143\141\164\145\040\123\151\147\156 +\151\156\147\061\051\060\047\006\003\125\004\003\023\040\123\164 +\141\162\164\103\157\155\040\103\145\162\164\151\146\151\143\141 +\164\151\157\156\040\101\165\164\150\157\162\151\164\171\060\036 +\027\015\060\066\060\071\061\067\061\071\064\066\063\066\132\027 +\015\063\066\060\071\061\067\061\071\064\066\063\066\132\060\175 +\061\013\060\011\006\003\125\004\006\023\002\111\114\061\026\060 +\024\006\003\125\004\012\023\015\123\164\141\162\164\103\157\155 +\040\114\164\144\056\061\053\060\051\006\003\125\004\013\023\042 +\123\145\143\165\162\145\040\104\151\147\151\164\141\154\040\103 +\145\162\164\151\146\151\143\141\164\145\040\123\151\147\156\151 +\156\147\061\051\060\047\006\003\125\004\003\023\040\123\164\141 +\162\164\103\157\155\040\103\145\162\164\151\146\151\143\141\164 +\151\157\156\040\101\165\164\150\157\162\151\164\171\060\202\002 +\042\060\015\006\011\052\206\110\206\367\015\001\001\001\005\000 +\003\202\002\017\000\060\202\002\012\002\202\002\001\000\301\210 +\333\011\274\154\106\174\170\237\225\173\265\063\220\362\162\142 +\326\301\066\040\042\044\136\316\351\167\362\103\012\242\006\144 +\244\314\216\066\370\070\346\043\360\156\155\261\074\335\162\243 +\205\034\241\323\075\264\063\053\323\057\257\376\352\260\101\131 +\147\266\304\006\175\012\236\164\205\326\171\114\200\067\172\337 +\071\005\122\131\367\364\033\106\103\244\322\205\205\322\303\161 +\363\165\142\064\272\054\212\177\036\217\356\355\064\320\021\307 +\226\315\122\075\272\063\326\335\115\336\013\073\112\113\237\302 +\046\057\372\265\026\034\162\065\167\312\074\135\346\312\341\046 +\213\032\066\166\134\001\333\164\024\045\376\355\265\240\210\017 +\335\170\312\055\037\007\227\060\001\055\162\171\372\106\326\023 +\052\250\271\246\253\203\111\035\345\362\357\335\344\001\216\030 +\012\217\143\123\026\205\142\251\016\031\072\314\265\146\246\302 +\153\164\007\344\053\341\166\076\264\155\330\366\104\341\163\142 +\037\073\304\276\240\123\126\045\154\121\011\367\252\253\312\277 +\166\375\155\233\363\235\333\277\075\146\274\014\126\252\257\230 +\110\225\072\113\337\247\130\120\331\070\165\251\133\352\103\014 +\002\377\231\353\350\154\115\160\133\051\145\234\335\252\135\314 +\257\001\061\354\014\353\322\215\350\352\234\173\346\156\367\047 +\146\014\032\110\327\156\102\343\077\336\041\076\173\341\015\160 +\373\143\252\250\154\032\124\264\134\045\172\311\242\311\213\026 +\246\273\054\176\027\136\005\115\130\156\022\035\001\356\022\020 +\015\306\062\177\030\377\374\364\372\315\156\221\350\066\111\276 +\032\110\151\213\302\226\115\032\022\262\151\027\301\012\220\326 +\372\171\042\110\277\272\173\151\370\160\307\372\172\067\330\330 +\015\322\166\117\127\377\220\267\343\221\322\335\357\302\140\267 +\147\072\335\376\252\234\360\324\213\177\162\042\316\306\237\227 +\266\370\257\212\240\020\250\331\373\030\306\266\265\134\122\074 +\211\266\031\052\163\001\012\017\003\263\022\140\362\172\057\201 +\333\243\156\377\046\060\227\365\213\335\211\127\266\255\075\263 +\257\053\305\267\166\002\360\245\326\053\232\206\024\052\162\366 +\343\063\214\135\011\113\023\337\273\214\164\023\122\113\002\003 +\001\000\001\243\202\002\122\060\202\002\116\060\014\006\003\125 +\035\023\004\005\060\003\001\001\377\060\013\006\003\125\035\017 +\004\004\003\002\001\256\060\035\006\003\125\035\016\004\026\004 +\024\116\013\357\032\244\100\133\245\027\151\207\060\312\064\150 +\103\320\101\256\362\060\144\006\003\125\035\037\004\135\060\133 +\060\054\240\052\240\050\206\046\150\164\164\160\072\057\057\143 +\145\162\164\056\163\164\141\162\164\143\157\155\056\157\162\147 +\057\163\146\163\143\141\055\143\162\154\056\143\162\154\060\053 +\240\051\240\047\206\045\150\164\164\160\072\057\057\143\162\154 +\056\163\164\141\162\164\143\157\155\056\157\162\147\057\163\146 +\163\143\141\055\143\162\154\056\143\162\154\060\202\001\135\006 +\003\125\035\040\004\202\001\124\060\202\001\120\060\202\001\114 +\006\013\053\006\001\004\001\201\265\067\001\001\001\060\202\001 +\073\060\057\006\010\053\006\001\005\005\007\002\001\026\043\150 +\164\164\160\072\057\057\143\145\162\164\056\163\164\141\162\164 +\143\157\155\056\157\162\147\057\160\157\154\151\143\171\056\160 +\144\146\060\065\006\010\053\006\001\005\005\007\002\001\026\051 +\150\164\164\160\072\057\057\143\145\162\164\056\163\164\141\162 +\164\143\157\155\056\157\162\147\057\151\156\164\145\162\155\145 +\144\151\141\164\145\056\160\144\146\060\201\320\006\010\053\006 +\001\005\005\007\002\002\060\201\303\060\047\026\040\123\164\141 +\162\164\040\103\157\155\155\145\162\143\151\141\154\040\050\123 +\164\141\162\164\103\157\155\051\040\114\164\144\056\060\003\002 +\001\001\032\201\227\114\151\155\151\164\145\144\040\114\151\141 +\142\151\154\151\164\171\054\040\162\145\141\144\040\164\150\145 +\040\163\145\143\164\151\157\156\040\052\114\145\147\141\154\040 +\114\151\155\151\164\141\164\151\157\156\163\052\040\157\146\040 +\164\150\145\040\123\164\141\162\164\103\157\155\040\103\145\162 +\164\151\146\151\143\141\164\151\157\156\040\101\165\164\150\157 +\162\151\164\171\040\120\157\154\151\143\171\040\141\166\141\151 +\154\141\142\154\145\040\141\164\040\150\164\164\160\072\057\057 +\143\145\162\164\056\163\164\141\162\164\143\157\155\056\157\162 +\147\057\160\157\154\151\143\171\056\160\144\146\060\021\006\011 +\140\206\110\001\206\370\102\001\001\004\004\003\002\000\007\060 +\070\006\011\140\206\110\001\206\370\102\001\015\004\053\026\051 +\123\164\141\162\164\103\157\155\040\106\162\145\145\040\123\123 +\114\040\103\145\162\164\151\146\151\143\141\164\151\157\156\040 +\101\165\164\150\157\162\151\164\171\060\015\006\011\052\206\110 +\206\367\015\001\001\005\005\000\003\202\002\001\000\026\154\231 +\364\146\014\064\365\320\205\136\175\012\354\332\020\116\070\034 +\136\337\246\045\005\113\221\062\301\350\073\361\075\335\104\011 +\133\007\111\212\051\313\146\002\267\261\232\367\045\230\011\074 +\216\033\341\335\066\207\053\113\273\150\323\071\146\075\240\046 +\307\362\071\221\035\121\253\202\173\176\325\316\132\344\342\003 +\127\160\151\227\010\371\136\130\246\012\337\214\006\232\105\026 +\026\070\012\136\127\366\142\307\172\002\005\346\274\036\265\362 +\236\364\251\051\203\370\262\024\343\156\050\207\104\303\220\032 +\336\070\251\074\254\103\115\144\105\316\335\050\251\134\362\163 +\173\004\370\027\350\253\261\363\056\134\144\156\163\061\072\022 +\270\274\263\021\344\175\217\201\121\232\073\215\211\364\115\223 +\146\173\074\003\355\323\232\035\232\363\145\120\365\240\320\165 +\237\057\257\360\352\202\103\230\370\151\234\211\171\304\103\216 +\106\162\343\144\066\022\257\367\045\036\070\211\220\167\176\303 +\153\152\271\303\313\104\113\254\170\220\213\347\307\054\036\113 +\021\104\310\064\122\047\315\012\135\237\205\301\211\325\032\170 +\362\225\020\123\062\335\200\204\146\165\331\265\150\050\373\141 +\056\276\204\250\070\300\231\022\206\245\036\147\144\255\006\056 +\057\251\160\205\307\226\017\174\211\145\365\216\103\124\016\253 +\335\245\200\071\224\140\300\064\311\226\160\054\243\022\365\037 +\110\173\275\034\176\153\267\235\220\364\042\073\256\370\374\052 +\312\372\202\122\240\357\257\113\125\223\353\301\265\360\042\213 +\254\064\116\046\042\004\241\207\054\165\112\267\345\175\023\327 +\270\014\144\300\066\322\311\057\206\022\214\043\011\301\033\202 +\073\163\111\243\152\127\207\224\345\326\170\305\231\103\143\343 +\115\340\167\055\341\145\231\162\151\004\032\107\011\346\017\001 +\126\044\373\037\277\016\171\251\130\056\271\304\011\001\176\225 +\272\155\000\006\076\262\352\112\020\071\330\320\053\365\277\354 +\165\277\227\002\305\011\033\010\334\125\067\342\201\373\067\204 +\103\142\040\312\347\126\113\145\352\376\154\301\044\223\044\241 +\064\353\005\377\232\042\256\233\175\077\361\145\121\012\246\060 +\152\263\364\210\034\200\015\374\162\212\350\203\136 +END + +# Trust for Certificate "StartCom Certification Authority" +CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "StartCom Certification Authority" +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\076\053\367\362\003\033\226\363\214\346\304\330\250\135\076\055 +\130\107\152\017 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\042\115\217\212\374\367\065\302\273\127\064\220\173\213\042\026 +END +CKA_ISSUER MULTILINE_OCTAL +\060\175\061\013\060\011\006\003\125\004\006\023\002\111\114\061 +\026\060\024\006\003\125\004\012\023\015\123\164\141\162\164\103 +\157\155\040\114\164\144\056\061\053\060\051\006\003\125\004\013 +\023\042\123\145\143\165\162\145\040\104\151\147\151\164\141\154 +\040\103\145\162\164\151\146\151\143\141\164\145\040\123\151\147 +\156\151\156\147\061\051\060\047\006\003\125\004\003\023\040\123 +\164\141\162\164\103\157\155\040\103\145\162\164\151\146\151\143 +\141\164\151\157\156\040\101\165\164\150\157\162\151\164\171 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\001\001 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "Taiwan GRCA" +# +CKA_CLASS CK_OBJECT_CLASS CKO_CERTIFICATE +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "Taiwan GRCA" +CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509 +CKA_SUBJECT MULTILINE_OCTAL +\060\077\061\013\060\011\006\003\125\004\006\023\002\124\127\061 +\060\060\056\006\003\125\004\012\014\047\107\157\166\145\162\156 +\155\145\156\164\040\122\157\157\164\040\103\145\162\164\151\146 +\151\143\141\164\151\157\156\040\101\165\164\150\157\162\151\164 +\171 +END +CKA_ID UTF8 "0" +CKA_ISSUER MULTILINE_OCTAL +\060\077\061\013\060\011\006\003\125\004\006\023\002\124\127\061 +\060\060\056\006\003\125\004\012\014\047\107\157\166\145\162\156 +\155\145\156\164\040\122\157\157\164\040\103\145\162\164\151\146 +\151\143\141\164\151\157\156\040\101\165\164\150\157\162\151\164 +\171 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\020\037\235\131\132\327\057\302\006\104\245\200\010\151\343 +\136\366 +END +CKA_VALUE MULTILINE_OCTAL +\060\202\005\162\060\202\003\132\240\003\002\001\002\002\020\037 +\235\131\132\327\057\302\006\104\245\200\010\151\343\136\366\060 +\015\006\011\052\206\110\206\367\015\001\001\005\005\000\060\077 +\061\013\060\011\006\003\125\004\006\023\002\124\127\061\060\060 +\056\006\003\125\004\012\014\047\107\157\166\145\162\156\155\145 +\156\164\040\122\157\157\164\040\103\145\162\164\151\146\151\143 +\141\164\151\157\156\040\101\165\164\150\157\162\151\164\171\060 +\036\027\015\060\062\061\062\060\065\061\063\062\063\063\063\132 +\027\015\063\062\061\062\060\065\061\063\062\063\063\063\132\060 +\077\061\013\060\011\006\003\125\004\006\023\002\124\127\061\060 +\060\056\006\003\125\004\012\014\047\107\157\166\145\162\156\155 +\145\156\164\040\122\157\157\164\040\103\145\162\164\151\146\151 +\143\141\164\151\157\156\040\101\165\164\150\157\162\151\164\171 +\060\202\002\042\060\015\006\011\052\206\110\206\367\015\001\001 +\001\005\000\003\202\002\017\000\060\202\002\012\002\202\002\001 +\000\232\045\270\354\314\242\165\250\173\367\316\133\131\212\311 +\321\206\022\010\124\354\234\362\347\106\366\210\363\174\351\245 +\337\114\107\066\244\033\001\034\177\036\127\212\215\303\305\321 +\041\343\332\044\077\110\053\373\237\056\241\224\347\054\034\223 +\321\277\033\001\207\123\231\316\247\365\012\041\166\167\377\251 +\267\306\163\224\117\106\367\020\111\067\372\250\131\111\135\152 +\201\007\126\362\212\371\006\320\367\160\042\115\264\267\101\271 +\062\270\261\360\261\303\234\077\160\375\123\335\201\252\330\143 +\170\366\330\123\156\241\254\152\204\044\162\124\206\306\322\262 +\312\034\016\171\201\326\265\160\142\010\001\056\116\117\016\325 +\021\257\251\257\345\232\277\334\314\207\155\046\344\311\127\242 +\373\226\371\314\341\077\123\214\154\114\176\233\123\010\013\154 +\027\373\147\310\302\255\261\315\200\264\227\334\166\001\026\025 +\351\152\327\244\341\170\107\316\206\325\373\061\363\372\061\276 +\064\252\050\373\160\114\035\111\307\257\054\235\155\146\246\266 +\215\144\176\265\040\152\235\073\201\266\217\100\000\147\113\211 +\206\270\314\145\376\025\123\351\004\301\326\137\035\104\327\012 +\057\047\232\106\175\241\015\165\255\124\206\025\334\111\073\361 +\226\316\017\233\240\354\243\172\135\276\325\052\165\102\345\173 +\336\245\266\252\257\050\254\254\220\254\070\267\325\150\065\046 +\172\334\367\073\363\375\105\233\321\273\103\170\156\157\361\102 +\124\152\230\360\015\255\227\351\122\136\351\325\152\162\336\152 +\367\033\140\024\364\245\344\266\161\147\252\037\352\342\115\301 +\102\100\376\147\106\027\070\057\107\077\161\234\256\345\041\312 +\141\055\155\007\250\204\174\055\356\121\045\361\143\220\236\375 +\341\127\210\153\357\212\043\155\261\346\275\077\255\321\075\226 +\013\205\215\315\153\047\273\267\005\233\354\273\221\251\012\007 +\022\002\227\116\040\220\360\377\015\036\342\101\073\323\100\072 +\347\215\135\332\146\344\002\260\007\122\230\134\016\216\063\234 +\302\246\225\373\125\031\156\114\216\256\113\017\275\301\070\115 +\136\217\204\035\146\315\305\140\226\264\122\132\005\211\216\225 +\172\230\301\221\074\225\043\262\016\364\171\264\311\174\301\112 +\041\002\003\001\000\001\243\152\060\150\060\035\006\003\125\035 +\016\004\026\004\024\314\314\357\314\051\140\244\073\261\222\266 +\074\372\062\142\217\254\045\025\073\060\014\006\003\125\035\023 +\004\005\060\003\001\001\377\060\071\006\004\147\052\007\000\004 +\061\060\057\060\055\002\001\000\060\011\006\005\053\016\003\002 +\032\005\000\060\007\006\005\147\052\003\000\000\004\024\003\233 +\360\042\023\377\225\050\066\323\334\236\300\062\373\061\072\212 +\121\145\060\015\006\011\052\206\110\206\367\015\001\001\005\005 +\000\003\202\002\001\000\100\200\112\372\046\311\316\136\060\335 +\117\206\164\166\130\365\256\263\203\063\170\244\172\164\027\031 +\116\351\122\265\271\340\012\164\142\252\150\312\170\240\114\232 +\216\054\043\056\325\152\022\044\277\324\150\323\212\320\330\234 +\237\264\037\014\336\070\176\127\070\374\215\342\117\136\014\237 +\253\073\322\377\165\227\313\244\343\147\010\377\345\300\026\265 +\110\001\175\351\371\012\377\033\345\152\151\277\170\041\250\302 +\247\043\251\206\253\166\126\350\016\014\366\023\335\052\146\212 +\144\111\075\032\030\207\220\004\237\102\122\267\117\313\376\107 +\101\166\065\357\377\000\166\066\105\062\233\306\106\205\135\342 +\044\260\036\343\110\226\230\127\107\224\125\172\017\101\261\104 +\044\363\301\376\032\153\277\210\375\301\246\332\223\140\136\201 +\112\231\040\234\110\146\031\265\000\171\124\017\270\054\057\113 +\274\251\135\133\140\177\214\207\245\340\122\143\052\276\330\073 +\205\100\025\376\036\266\145\077\305\113\332\176\265\172\065\051 +\243\056\172\230\140\042\243\364\175\047\116\055\352\264\164\074 +\351\017\244\063\017\020\021\274\023\001\326\345\016\323\277\265 +\022\242\341\105\043\300\314\010\156\141\267\211\253\203\343\044 +\036\346\135\007\347\037\040\076\317\147\310\347\254\060\155\047 +\113\150\156\113\052\134\002\010\064\333\370\166\344\147\243\046 +\234\077\242\062\302\112\305\201\030\061\020\126\252\204\357\055 +\012\377\270\037\167\322\277\245\130\240\142\344\327\113\221\165 +\215\211\200\230\176\155\313\123\116\136\257\366\262\227\205\227 +\271\332\125\006\271\044\356\327\306\070\036\143\033\022\073\225 +\341\130\254\362\337\204\325\137\231\057\015\125\133\346\070\333 +\056\077\162\351\110\205\313\273\051\023\217\036\070\125\271\363 +\262\304\060\231\043\116\135\362\110\241\022\014\334\022\220\011 +\220\124\221\003\074\107\345\325\311\145\340\267\113\175\354\107 +\323\263\013\076\255\236\320\164\000\016\353\275\121\255\300\336 +\054\300\303\152\376\357\334\013\247\372\106\337\140\333\234\246 +\131\120\165\043\151\163\223\262\371\374\002\323\107\346\161\316 +\020\002\356\047\214\204\377\254\105\015\023\134\203\062\340\045 +\245\206\054\174\364\022 +END + +# Trust for Certificate "Taiwan GRCA" +CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "Taiwan GRCA" +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\364\213\021\277\336\253\276\224\124\040\161\346\101\336\153\276 +\210\053\100\271 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\067\205\104\123\062\105\037\040\360\363\225\341\045\304\103\116 +END +CKA_ISSUER MULTILINE_OCTAL +\060\077\061\013\060\011\006\003\125\004\006\023\002\124\127\061 +\060\060\056\006\003\125\004\012\014\047\107\157\166\145\162\156 +\155\145\156\164\040\122\157\157\164\040\103\145\162\164\151\146 +\151\143\141\164\151\157\156\040\101\165\164\150\157\162\151\164 +\171 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\020\037\235\131\132\327\057\302\006\104\245\200\010\151\343 +\136\366 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "Firmaprofesional Root CA" +# +CKA_CLASS CK_OBJECT_CLASS CKO_CERTIFICATE +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "Firmaprofesional Root CA" +CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509 +CKA_SUBJECT MULTILINE_OCTAL +\060\201\235\061\013\060\011\006\003\125\004\006\023\002\105\123 +\061\042\060\040\006\003\125\004\007\023\031\103\057\040\115\165 +\156\164\141\156\145\162\040\062\064\064\040\102\141\162\143\145 +\154\157\156\141\061\102\060\100\006\003\125\004\003\023\071\101 +\165\164\157\162\151\144\141\144\040\144\145\040\103\145\162\164 +\151\146\151\143\141\143\151\157\156\040\106\151\162\155\141\160 +\162\157\146\145\163\151\157\156\141\154\040\103\111\106\040\101 +\066\062\066\063\064\060\066\070\061\046\060\044\006\011\052\206 +\110\206\367\015\001\011\001\026\027\143\141\100\146\151\162\155 +\141\160\162\157\146\145\163\151\157\156\141\154\056\143\157\155 +END +CKA_ID UTF8 "0" +CKA_ISSUER MULTILINE_OCTAL +\060\201\235\061\013\060\011\006\003\125\004\006\023\002\105\123 +\061\042\060\040\006\003\125\004\007\023\031\103\057\040\115\165 +\156\164\141\156\145\162\040\062\064\064\040\102\141\162\143\145 +\154\157\156\141\061\102\060\100\006\003\125\004\003\023\071\101 +\165\164\157\162\151\144\141\144\040\144\145\040\103\145\162\164 +\151\146\151\143\141\143\151\157\156\040\106\151\162\155\141\160 +\162\157\146\145\163\151\157\156\141\154\040\103\111\106\040\101 +\066\062\066\063\064\060\066\070\061\046\060\044\006\011\052\206 +\110\206\367\015\001\011\001\026\027\143\141\100\146\151\162\155 +\141\160\162\157\146\145\163\151\157\156\141\154\056\143\157\155 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\001\001 +END +CKA_VALUE MULTILINE_OCTAL +\060\202\004\127\060\202\003\077\240\003\002\001\002\002\001\001 +\060\015\006\011\052\206\110\206\367\015\001\001\005\005\000\060 +\201\235\061\013\060\011\006\003\125\004\006\023\002\105\123\061 +\042\060\040\006\003\125\004\007\023\031\103\057\040\115\165\156 +\164\141\156\145\162\040\062\064\064\040\102\141\162\143\145\154 +\157\156\141\061\102\060\100\006\003\125\004\003\023\071\101\165 +\164\157\162\151\144\141\144\040\144\145\040\103\145\162\164\151 +\146\151\143\141\143\151\157\156\040\106\151\162\155\141\160\162 +\157\146\145\163\151\157\156\141\154\040\103\111\106\040\101\066 +\062\066\063\064\060\066\070\061\046\060\044\006\011\052\206\110 +\206\367\015\001\011\001\026\027\143\141\100\146\151\162\155\141 +\160\162\157\146\145\163\151\157\156\141\154\056\143\157\155\060 +\036\027\015\060\061\061\060\062\064\062\062\060\060\060\060\132 +\027\015\061\063\061\060\062\064\062\062\060\060\060\060\132\060 +\201\235\061\013\060\011\006\003\125\004\006\023\002\105\123\061 +\042\060\040\006\003\125\004\007\023\031\103\057\040\115\165\156 +\164\141\156\145\162\040\062\064\064\040\102\141\162\143\145\154 +\157\156\141\061\102\060\100\006\003\125\004\003\023\071\101\165 +\164\157\162\151\144\141\144\040\144\145\040\103\145\162\164\151 +\146\151\143\141\143\151\157\156\040\106\151\162\155\141\160\162 +\157\146\145\163\151\157\156\141\154\040\103\111\106\040\101\066 +\062\066\063\064\060\066\070\061\046\060\044\006\011\052\206\110 +\206\367\015\001\011\001\026\027\143\141\100\146\151\162\155\141 +\160\162\157\146\145\163\151\157\156\141\154\056\143\157\155\060 +\202\001\042\060\015\006\011\052\206\110\206\367\015\001\001\001 +\005\000\003\202\001\017\000\060\202\001\012\002\202\001\001\000 +\347\043\003\157\157\043\245\136\170\316\225\054\355\224\036\156 +\012\236\001\307\352\060\321\054\235\335\067\350\233\230\171\126 +\323\374\163\337\320\212\336\125\217\121\371\132\352\336\265\160 +\304\355\244\355\377\243\015\156\017\144\120\061\257\001\047\130 +\256\376\154\247\112\057\027\055\323\163\325\023\034\217\131\245 +\064\054\035\124\004\105\315\150\270\240\300\003\245\317\205\102 +\107\225\050\133\317\357\200\154\340\220\227\212\001\074\035\363 +\207\020\060\046\110\175\327\374\351\235\221\161\377\101\232\251 +\100\265\067\234\051\040\117\037\122\343\240\175\023\155\124\267 +\012\336\351\152\116\007\254\254\031\137\334\176\142\164\366\262 +\005\000\272\205\240\375\035\070\156\313\132\273\206\274\224\147 +\063\065\203\054\037\043\315\370\310\221\161\314\227\213\357\256 +\017\334\051\003\033\300\071\353\160\355\301\156\016\330\147\013 +\211\251\274\065\344\357\266\064\264\245\266\304\055\245\276\320 +\303\224\044\110\333\337\226\323\000\265\146\032\213\146\005\017 +\335\077\077\313\077\252\136\232\112\370\264\112\357\225\067\033 +\002\003\001\000\001\243\201\237\060\201\234\060\052\006\003\125 +\035\021\004\043\060\041\206\037\150\164\164\160\072\057\057\167 +\167\167\056\146\151\162\155\141\160\162\157\146\145\163\151\157 +\156\141\154\056\143\157\155\060\022\006\003\125\035\023\001\001 +\377\004\010\060\006\001\001\377\002\001\001\060\053\006\003\125 +\035\020\004\044\060\042\200\017\062\060\060\061\061\060\062\064 +\062\062\060\060\060\060\132\201\017\062\060\061\063\061\060\062 +\064\062\062\060\060\060\060\132\060\016\006\003\125\035\017\001 +\001\377\004\004\003\002\001\006\060\035\006\003\125\035\016\004 +\026\004\024\063\013\240\146\321\352\332\316\336\142\223\004\050 +\122\265\024\177\070\150\267\060\015\006\011\052\206\110\206\367 +\015\001\001\005\005\000\003\202\001\001\000\107\163\376\215\047 +\124\360\365\324\167\234\047\171\127\127\267\025\126\354\307\330 +\130\267\001\002\364\063\355\223\120\210\236\174\106\261\275\077 +\024\157\361\263\107\110\213\214\227\006\327\352\176\243\134\052 +\273\115\057\107\342\370\071\006\311\234\056\061\032\003\170\364 +\274\070\306\042\213\063\061\360\026\004\004\175\371\166\344\113 +\327\300\346\203\354\131\314\077\336\377\117\153\267\147\176\246 +\206\201\062\043\003\235\310\367\137\301\112\140\245\222\251\261 +\244\240\140\303\170\207\263\042\363\052\353\133\251\355\005\253 +\067\017\261\342\323\225\166\143\126\164\214\130\162\033\067\345 +\144\241\276\115\014\223\230\014\227\366\207\155\263\077\347\313 +\200\246\355\210\307\137\120\142\002\350\231\164\026\320\346\264 +\071\361\047\313\310\100\326\343\206\020\251\043\022\222\340\151 +\101\143\247\257\045\013\300\305\222\313\036\230\243\132\272\305 +\063\017\240\227\001\335\177\340\173\326\006\124\317\241\342\115 +\070\353\113\120\265\313\046\364\312\332\160\112\152\241\342\171 +\252\341\247\063\366\375\112\037\366\331\140 +END + +# Trust for Certificate "Firmaprofesional Root CA" +CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "Firmaprofesional Root CA" +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\251\142\217\113\230\251\033\110\065\272\322\301\106\062\206\273 +\146\144\152\214 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\021\222\171\100\074\261\203\100\345\253\146\112\147\222\200\337 +END +CKA_ISSUER MULTILINE_OCTAL +\060\201\235\061\013\060\011\006\003\125\004\006\023\002\105\123 +\061\042\060\040\006\003\125\004\007\023\031\103\057\040\115\165 +\156\164\141\156\145\162\040\062\064\064\040\102\141\162\143\145 +\154\157\156\141\061\102\060\100\006\003\125\004\003\023\071\101 +\165\164\157\162\151\144\141\144\040\144\145\040\103\145\162\164 +\151\146\151\143\141\143\151\157\156\040\106\151\162\155\141\160 +\162\157\146\145\163\151\157\156\141\154\040\103\111\106\040\101 +\066\062\066\063\064\060\066\070\061\046\060\044\006\011\052\206 +\110\206\367\015\001\011\001\026\027\143\141\100\146\151\162\155 +\141\160\162\157\146\145\163\151\157\156\141\154\056\143\157\155 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\001\001 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_TRUST_UNKNOWN +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "Wells Fargo Root CA" +# +CKA_CLASS CK_OBJECT_CLASS CKO_CERTIFICATE +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "Wells Fargo Root CA" +CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509 +CKA_SUBJECT MULTILINE_OCTAL +\060\201\202\061\013\060\011\006\003\125\004\006\023\002\125\123 +\061\024\060\022\006\003\125\004\012\023\013\127\145\154\154\163 +\040\106\141\162\147\157\061\054\060\052\006\003\125\004\013\023 +\043\127\145\154\154\163\040\106\141\162\147\157\040\103\145\162 +\164\151\146\151\143\141\164\151\157\156\040\101\165\164\150\157 +\162\151\164\171\061\057\060\055\006\003\125\004\003\023\046\127 +\145\154\154\163\040\106\141\162\147\157\040\122\157\157\164\040 +\103\145\162\164\151\146\151\143\141\164\145\040\101\165\164\150 +\157\162\151\164\171 +END +CKA_ID UTF8 "0" +CKA_ISSUER MULTILINE_OCTAL +\060\201\202\061\013\060\011\006\003\125\004\006\023\002\125\123 +\061\024\060\022\006\003\125\004\012\023\013\127\145\154\154\163 +\040\106\141\162\147\157\061\054\060\052\006\003\125\004\013\023 +\043\127\145\154\154\163\040\106\141\162\147\157\040\103\145\162 +\164\151\146\151\143\141\164\151\157\156\040\101\165\164\150\157 +\162\151\164\171\061\057\060\055\006\003\125\004\003\023\046\127 +\145\154\154\163\040\106\141\162\147\157\040\122\157\157\164\040 +\103\145\162\164\151\146\151\143\141\164\145\040\101\165\164\150 +\157\162\151\164\171 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\004\071\344\227\236 +END +CKA_VALUE MULTILINE_OCTAL +\060\202\003\345\060\202\002\315\240\003\002\001\002\002\004\071 +\344\227\236\060\015\006\011\052\206\110\206\367\015\001\001\005 +\005\000\060\201\202\061\013\060\011\006\003\125\004\006\023\002 +\125\123\061\024\060\022\006\003\125\004\012\023\013\127\145\154 +\154\163\040\106\141\162\147\157\061\054\060\052\006\003\125\004 +\013\023\043\127\145\154\154\163\040\106\141\162\147\157\040\103 +\145\162\164\151\146\151\143\141\164\151\157\156\040\101\165\164 +\150\157\162\151\164\171\061\057\060\055\006\003\125\004\003\023 +\046\127\145\154\154\163\040\106\141\162\147\157\040\122\157\157 +\164\040\103\145\162\164\151\146\151\143\141\164\145\040\101\165 +\164\150\157\162\151\164\171\060\036\027\015\060\060\061\060\061 +\061\061\066\064\061\062\070\132\027\015\062\061\060\061\061\064 +\061\066\064\061\062\070\132\060\201\202\061\013\060\011\006\003 +\125\004\006\023\002\125\123\061\024\060\022\006\003\125\004\012 +\023\013\127\145\154\154\163\040\106\141\162\147\157\061\054\060 +\052\006\003\125\004\013\023\043\127\145\154\154\163\040\106\141 +\162\147\157\040\103\145\162\164\151\146\151\143\141\164\151\157 +\156\040\101\165\164\150\157\162\151\164\171\061\057\060\055\006 +\003\125\004\003\023\046\127\145\154\154\163\040\106\141\162\147 +\157\040\122\157\157\164\040\103\145\162\164\151\146\151\143\141 +\164\145\040\101\165\164\150\157\162\151\164\171\060\202\001\042 +\060\015\006\011\052\206\110\206\367\015\001\001\001\005\000\003 +\202\001\017\000\060\202\001\012\002\202\001\001\000\325\250\063 +\073\046\371\064\377\315\233\176\345\004\107\316\000\342\175\167 +\347\061\302\056\047\245\115\150\271\061\272\215\103\131\227\307 +\163\252\177\075\134\100\236\005\345\241\342\211\331\114\270\077 +\233\371\014\264\310\142\031\054\105\256\221\036\163\161\101\304 +\113\023\375\160\302\045\254\042\365\165\013\267\123\344\245\053 +\335\316\275\034\072\172\303\367\023\217\046\124\234\026\153\153 +\257\373\330\226\261\140\232\110\340\045\042\044\171\064\316\016 +\046\000\013\116\253\375\213\316\202\327\057\010\160\150\301\250 +\012\371\164\117\007\253\244\371\342\203\176\047\163\164\076\270 +\371\070\102\374\245\250\133\110\043\263\353\343\045\262\200\256 +\226\324\012\234\302\170\232\306\150\030\256\067\142\067\136\121 +\165\250\130\143\300\121\356\100\170\176\250\257\032\240\341\260 +\170\235\120\214\173\347\263\374\216\043\260\333\145\000\160\204 +\001\010\000\024\156\124\206\232\272\314\371\067\020\366\340\336 +\204\055\235\244\205\067\323\207\343\025\320\301\027\220\176\031 +\041\152\022\251\166\375\022\002\351\117\041\136\027\002\003\001 +\000\001\243\141\060\137\060\017\006\003\125\035\023\001\001\377 +\004\005\060\003\001\001\377\060\114\006\003\125\035\040\004\105 +\060\103\060\101\006\013\140\206\110\001\206\373\173\207\007\001 +\013\060\062\060\060\006\010\053\006\001\005\005\007\002\001\026 +\044\150\164\164\160\072\057\057\167\167\167\056\167\145\154\154 +\163\146\141\162\147\157\056\143\157\155\057\143\145\162\164\160 +\157\154\151\143\171\060\015\006\011\052\206\110\206\367\015\001 +\001\005\005\000\003\202\001\001\000\322\047\335\234\012\167\053 +\273\042\362\002\265\112\112\221\371\321\055\276\344\273\032\150 +\357\016\244\000\351\356\347\357\356\366\371\345\164\244\302\330 +\122\130\304\164\373\316\153\265\073\051\171\030\132\357\233\355 +\037\153\066\356\110\045\045\024\266\126\242\020\350\356\247\177 +\320\077\243\320\303\135\046\356\007\314\303\301\044\041\207\036 +\337\052\022\123\157\101\026\347\355\256\224\372\214\162\372\023 +\107\360\074\176\256\175\021\072\023\354\355\372\157\162\144\173 +\235\175\177\046\375\172\373\045\255\352\076\051\177\114\343\000 +\127\062\260\263\351\355\123\027\331\213\262\024\016\060\350\345 +\325\023\306\144\257\304\000\325\330\130\044\374\365\217\354\361 +\307\175\245\333\017\047\321\306\362\100\210\346\037\366\141\250 +\364\102\310\271\067\323\251\276\054\126\170\302\162\233\131\135 +\065\100\212\350\116\143\032\266\351\040\152\121\342\316\244\220 +\337\166\160\231\134\160\103\115\267\266\247\031\144\116\222\267 +\305\221\074\177\110\026\145\173\026\375\313\374\373\331\325\326 +\117\041\145\073\112\177\107\243\373 +END + +# Trust for Certificate "Wells Fargo Root CA" +CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "Wells Fargo Root CA" +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\223\346\253\042\003\003\265\043\050\334\332\126\236\272\344\321 +\321\314\373\145 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\040\013\112\172\210\247\251\102\206\212\137\164\126\173\210\005 +END +CKA_ISSUER MULTILINE_OCTAL +\060\201\202\061\013\060\011\006\003\125\004\006\023\002\125\123 +\061\024\060\022\006\003\125\004\012\023\013\127\145\154\154\163 +\040\106\141\162\147\157\061\054\060\052\006\003\125\004\013\023 +\043\127\145\154\154\163\040\106\141\162\147\157\040\103\145\162 +\164\151\146\151\143\141\164\151\157\156\040\101\165\164\150\157 +\162\151\164\171\061\057\060\055\006\003\125\004\003\023\046\127 +\145\154\154\163\040\106\141\162\147\157\040\122\157\157\164\040 +\103\145\162\164\151\146\151\143\141\164\145\040\101\165\164\150 +\157\162\151\164\171 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\004\071\344\227\236 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "Swisscom Root CA 1" +# +CKA_CLASS CK_OBJECT_CLASS CKO_CERTIFICATE +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "Swisscom Root CA 1" +CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509 +CKA_SUBJECT MULTILINE_OCTAL +\060\144\061\013\060\011\006\003\125\004\006\023\002\143\150\061 +\021\060\017\006\003\125\004\012\023\010\123\167\151\163\163\143 +\157\155\061\045\060\043\006\003\125\004\013\023\034\104\151\147 +\151\164\141\154\040\103\145\162\164\151\146\151\143\141\164\145 +\040\123\145\162\166\151\143\145\163\061\033\060\031\006\003\125 +\004\003\023\022\123\167\151\163\163\143\157\155\040\122\157\157 +\164\040\103\101\040\061 +END +CKA_ID UTF8 "0" +CKA_ISSUER MULTILINE_OCTAL +\060\144\061\013\060\011\006\003\125\004\006\023\002\143\150\061 +\021\060\017\006\003\125\004\012\023\010\123\167\151\163\163\143 +\157\155\061\045\060\043\006\003\125\004\013\023\034\104\151\147 +\151\164\141\154\040\103\145\162\164\151\146\151\143\141\164\145 +\040\123\145\162\166\151\143\145\163\061\033\060\031\006\003\125 +\004\003\023\022\123\167\151\163\163\143\157\155\040\122\157\157 +\164\040\103\101\040\061 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\020\134\013\205\134\013\347\131\101\337\127\314\077\177\235 +\250\066 +END +CKA_VALUE MULTILINE_OCTAL +\060\202\005\331\060\202\003\301\240\003\002\001\002\002\020\134 +\013\205\134\013\347\131\101\337\127\314\077\177\235\250\066\060 +\015\006\011\052\206\110\206\367\015\001\001\005\005\000\060\144 +\061\013\060\011\006\003\125\004\006\023\002\143\150\061\021\060 +\017\006\003\125\004\012\023\010\123\167\151\163\163\143\157\155 +\061\045\060\043\006\003\125\004\013\023\034\104\151\147\151\164 +\141\154\040\103\145\162\164\151\146\151\143\141\164\145\040\123 +\145\162\166\151\143\145\163\061\033\060\031\006\003\125\004\003 +\023\022\123\167\151\163\163\143\157\155\040\122\157\157\164\040 +\103\101\040\061\060\036\027\015\060\065\060\070\061\070\061\062 +\060\066\062\060\132\027\015\062\065\060\070\061\070\062\062\060 +\066\062\060\132\060\144\061\013\060\011\006\003\125\004\006\023 +\002\143\150\061\021\060\017\006\003\125\004\012\023\010\123\167 +\151\163\163\143\157\155\061\045\060\043\006\003\125\004\013\023 +\034\104\151\147\151\164\141\154\040\103\145\162\164\151\146\151 +\143\141\164\145\040\123\145\162\166\151\143\145\163\061\033\060 +\031\006\003\125\004\003\023\022\123\167\151\163\163\143\157\155 +\040\122\157\157\164\040\103\101\040\061\060\202\002\042\060\015 +\006\011\052\206\110\206\367\015\001\001\001\005\000\003\202\002 +\017\000\060\202\002\012\002\202\002\001\000\320\271\260\250\014 +\331\273\077\041\370\033\325\063\223\200\026\145\040\165\262\075 +\233\140\155\106\310\214\061\157\027\303\372\232\154\126\355\074 +\305\221\127\303\315\253\226\111\220\052\031\113\036\243\155\127 +\335\361\053\142\050\165\105\136\252\326\133\372\013\045\330\241 +\026\371\034\304\056\346\225\052\147\314\320\051\156\074\205\064 +\070\141\111\261\000\237\326\072\161\137\115\155\316\137\271\251 +\344\211\177\152\122\372\312\233\362\334\251\371\235\231\107\077 +\116\051\137\264\246\215\135\173\013\231\021\003\003\376\347\333 +\333\243\377\035\245\315\220\036\001\037\065\260\177\000\333\220 +\157\306\176\173\321\356\172\172\247\252\014\127\157\244\155\305 +\023\073\260\245\331\355\062\034\264\136\147\213\124\334\163\207 +\345\323\027\174\146\120\162\135\324\032\130\301\331\317\330\211 +\002\157\247\111\264\066\135\320\244\336\007\054\266\165\267\050 +\221\326\227\276\050\365\230\036\352\133\046\311\275\260\227\163 +\332\256\221\046\353\150\301\371\071\025\326\147\113\012\155\117 +\313\317\260\344\102\161\214\123\171\347\356\341\333\035\240\156 +\035\214\032\167\065\134\026\036\053\123\037\064\213\321\154\374 +\362\147\007\172\365\255\355\326\232\253\241\261\113\341\314\067 +\137\375\177\315\115\256\270\037\234\103\371\052\130\125\103\105 +\274\226\315\160\016\374\311\343\146\272\116\215\073\201\313\025 +\144\173\271\224\350\135\063\122\205\161\056\117\216\242\006\021 +\121\311\343\313\241\156\061\010\144\014\302\322\074\365\066\350 +\327\320\016\170\043\040\221\311\044\052\145\051\133\042\367\041 +\316\203\136\244\363\336\113\323\150\217\106\165\134\203\011\156 +\051\153\304\160\214\365\235\327\040\057\377\106\322\053\070\302 +\057\165\034\075\176\332\245\357\036\140\205\151\102\323\314\370 +\143\376\036\103\071\205\246\266\143\101\020\263\163\036\274\323 +\372\312\175\026\107\342\247\325\320\243\212\012\010\226\142\126 +\156\064\333\331\002\271\060\165\343\004\322\347\217\302\260\021 +\100\012\254\325\161\002\142\213\061\276\335\306\043\130\061\102 +\103\055\164\371\306\236\246\212\017\351\376\277\203\346\103\127 +\044\272\357\106\064\252\327\022\001\070\355\002\003\001\000\001 +\243\201\206\060\201\203\060\016\006\003\125\035\017\001\001\377 +\004\004\003\002\001\206\060\035\006\003\125\035\041\004\026\060 +\024\060\022\006\007\140\205\164\001\123\000\001\006\007\140\205 +\164\001\123\000\001\060\022\006\003\125\035\023\001\001\377\004 +\010\060\006\001\001\377\002\001\007\060\037\006\003\125\035\043 +\004\030\060\026\200\024\003\045\057\336\157\202\001\072\134\054 +\334\053\241\151\265\147\324\214\323\375\060\035\006\003\125\035 +\016\004\026\004\024\003\045\057\336\157\202\001\072\134\054\334 +\053\241\151\265\147\324\214\323\375\060\015\006\011\052\206\110 +\206\367\015\001\001\005\005\000\003\202\002\001\000\065\020\313 +\354\246\004\015\015\017\315\300\333\253\250\362\210\227\014\337 +\223\057\115\174\100\126\061\172\353\244\017\140\315\172\363\276 +\303\047\216\003\076\244\335\022\357\176\036\164\006\074\077\061 +\362\034\173\221\061\041\264\360\320\154\227\324\351\227\262\044 +\126\036\126\303\065\275\210\005\017\133\020\032\144\341\307\202 +\060\371\062\255\236\120\054\347\170\005\320\061\261\132\230\212 +\165\116\220\134\152\024\052\340\122\107\202\140\346\036\332\201 +\261\373\024\013\132\361\237\322\225\272\076\320\033\326\025\035 +\243\276\206\325\333\017\300\111\144\273\056\120\031\113\322\044 +\370\335\036\007\126\320\070\240\225\160\040\166\214\327\335\036 +\336\237\161\304\043\357\203\023\134\243\044\025\115\051\100\074 +\152\304\251\330\267\246\104\245\015\364\340\235\167\036\100\160 +\046\374\332\331\066\344\171\344\265\077\274\233\145\276\273\021 +\226\317\333\306\050\071\072\010\316\107\133\123\132\305\231\376 +\135\251\335\357\114\324\306\245\255\002\346\214\007\022\036\157 +\003\321\157\240\243\363\051\275\022\307\120\242\260\177\210\251 +\231\167\232\261\300\245\071\056\134\174\151\342\054\260\352\067 +\152\244\341\132\341\365\120\345\203\357\245\273\052\210\347\214 +\333\375\155\136\227\031\250\176\146\165\153\161\352\277\261\307 +\157\240\364\216\244\354\064\121\133\214\046\003\160\241\167\325 +\001\022\127\000\065\333\043\336\016\212\050\231\375\261\020\157 +\113\377\070\055\140\116\054\234\353\147\265\255\111\356\113\037 +\254\257\373\015\220\132\146\140\160\135\252\315\170\324\044\356 +\310\101\240\223\001\222\234\152\236\374\271\044\305\263\025\202 +\176\276\256\225\053\353\261\300\332\343\001\140\013\136\151\254 +\204\126\141\276\161\027\376\035\023\017\376\306\207\105\351\376 +\062\240\032\015\023\244\224\125\161\245\026\213\272\312\211\260 +\262\307\374\217\330\124\265\223\142\235\316\317\131\373\075\030 +\316\052\313\065\025\202\135\377\124\042\133\161\122\373\267\311 +\376\140\233\000\101\144\360\252\052\354\266\102\103\316\211\146 +\201\310\213\237\071\124\003\045\323\026\065\216\204\320\137\372 +\060\032\365\232\154\364\016\123\371\072\133\321\034 +END + +# Trust for Certificate "Swisscom Root CA 1" +CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "Swisscom Root CA 1" +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\137\072\374\012\213\144\366\206\147\064\164\337\176\251\242\376 +\371\372\172\121 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\370\070\174\167\210\337\054\026\150\056\302\342\122\113\270\371 +END +CKA_ISSUER MULTILINE_OCTAL +\060\144\061\013\060\011\006\003\125\004\006\023\002\143\150\061 +\021\060\017\006\003\125\004\012\023\010\123\167\151\163\163\143 +\157\155\061\045\060\043\006\003\125\004\013\023\034\104\151\147 +\151\164\141\154\040\103\145\162\164\151\146\151\143\141\164\145 +\040\123\145\162\166\151\143\145\163\061\033\060\031\006\003\125 +\004\003\023\022\123\167\151\163\163\143\157\155\040\122\157\157 +\164\040\103\101\040\061 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\020\134\013\205\134\013\347\131\101\337\127\314\077\177\235 +\250\066 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "DigiCert Assured ID Root CA" +# +CKA_CLASS CK_OBJECT_CLASS CKO_CERTIFICATE +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "DigiCert Assured ID Root CA" +CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509 +CKA_SUBJECT MULTILINE_OCTAL +\060\145\061\013\060\011\006\003\125\004\006\023\002\125\123\061 +\025\060\023\006\003\125\004\012\023\014\104\151\147\151\103\145 +\162\164\040\111\156\143\061\031\060\027\006\003\125\004\013\023 +\020\167\167\167\056\144\151\147\151\143\145\162\164\056\143\157 +\155\061\044\060\042\006\003\125\004\003\023\033\104\151\147\151 +\103\145\162\164\040\101\163\163\165\162\145\144\040\111\104\040 +\122\157\157\164\040\103\101 +END +CKA_ID UTF8 "0" +CKA_ISSUER MULTILINE_OCTAL +\060\145\061\013\060\011\006\003\125\004\006\023\002\125\123\061 +\025\060\023\006\003\125\004\012\023\014\104\151\147\151\103\145 +\162\164\040\111\156\143\061\031\060\027\006\003\125\004\013\023 +\020\167\167\167\056\144\151\147\151\143\145\162\164\056\143\157 +\155\061\044\060\042\006\003\125\004\003\023\033\104\151\147\151 +\103\145\162\164\040\101\163\163\165\162\145\144\040\111\104\040 +\122\157\157\164\040\103\101 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\020\014\347\340\345\027\330\106\376\217\345\140\374\033\360 +\060\071 +END +CKA_VALUE MULTILINE_OCTAL +\060\202\003\267\060\202\002\237\240\003\002\001\002\002\020\014 +\347\340\345\027\330\106\376\217\345\140\374\033\360\060\071\060 +\015\006\011\052\206\110\206\367\015\001\001\005\005\000\060\145 +\061\013\060\011\006\003\125\004\006\023\002\125\123\061\025\060 +\023\006\003\125\004\012\023\014\104\151\147\151\103\145\162\164 +\040\111\156\143\061\031\060\027\006\003\125\004\013\023\020\167 +\167\167\056\144\151\147\151\143\145\162\164\056\143\157\155\061 +\044\060\042\006\003\125\004\003\023\033\104\151\147\151\103\145 +\162\164\040\101\163\163\165\162\145\144\040\111\104\040\122\157 +\157\164\040\103\101\060\036\027\015\060\066\061\061\061\060\060 +\060\060\060\060\060\132\027\015\063\061\061\061\061\060\060\060 +\060\060\060\060\132\060\145\061\013\060\011\006\003\125\004\006 +\023\002\125\123\061\025\060\023\006\003\125\004\012\023\014\104 +\151\147\151\103\145\162\164\040\111\156\143\061\031\060\027\006 +\003\125\004\013\023\020\167\167\167\056\144\151\147\151\143\145 +\162\164\056\143\157\155\061\044\060\042\006\003\125\004\003\023 +\033\104\151\147\151\103\145\162\164\040\101\163\163\165\162\145 +\144\040\111\104\040\122\157\157\164\040\103\101\060\202\001\042 +\060\015\006\011\052\206\110\206\367\015\001\001\001\005\000\003 +\202\001\017\000\060\202\001\012\002\202\001\001\000\255\016\025 +\316\344\103\200\134\261\207\363\267\140\371\161\022\245\256\334 +\046\224\210\252\364\316\365\040\071\050\130\140\014\370\200\332 +\251\025\225\062\141\074\265\261\050\204\212\212\334\237\012\014 +\203\027\172\217\220\254\212\347\171\123\134\061\204\052\366\017 +\230\062\066\166\314\336\335\074\250\242\357\152\373\041\362\122 +\141\337\237\040\327\037\342\261\331\376\030\144\322\022\133\137 +\371\130\030\065\274\107\315\241\066\371\153\177\324\260\070\076 +\301\033\303\214\063\331\330\057\030\376\050\017\263\247\203\326 +\303\156\104\300\141\065\226\026\376\131\234\213\166\155\327\361 +\242\113\015\053\377\013\162\332\236\140\320\216\220\065\306\170 +\125\207\040\241\317\345\155\012\310\111\174\061\230\063\154\042 +\351\207\320\062\132\242\272\023\202\021\355\071\027\235\231\072 +\162\241\346\372\244\331\325\027\061\165\256\205\175\042\256\077 +\001\106\206\366\050\171\310\261\332\344\127\027\304\176\034\016 +\260\264\222\246\126\263\275\262\227\355\252\247\360\267\305\250 +\077\225\026\320\377\241\226\353\010\137\030\167\117\002\003\001 +\000\001\243\143\060\141\060\016\006\003\125\035\017\001\001\377 +\004\004\003\002\001\206\060\017\006\003\125\035\023\001\001\377 +\004\005\060\003\001\001\377\060\035\006\003\125\035\016\004\026 +\004\024\105\353\242\257\364\222\313\202\061\055\121\213\247\247 +\041\235\363\155\310\017\060\037\006\003\125\035\043\004\030\060 +\026\200\024\105\353\242\257\364\222\313\202\061\055\121\213\247 +\247\041\235\363\155\310\017\060\015\006\011\052\206\110\206\367 +\015\001\001\005\005\000\003\202\001\001\000\242\016\274\337\342 +\355\360\343\162\163\172\144\224\277\367\162\146\330\062\344\102 +\165\142\256\207\353\362\325\331\336\126\263\237\314\316\024\050 +\271\015\227\140\134\022\114\130\344\323\075\203\111\105\130\227 +\065\151\032\250\107\352\126\306\171\253\022\330\147\201\204\337 +\177\011\074\224\346\270\046\054\040\275\075\263\050\211\367\137 +\377\042\342\227\204\037\351\145\357\207\340\337\301\147\111\263 +\135\353\262\011\052\353\046\355\170\276\175\077\053\363\267\046 +\065\155\137\211\001\266\111\133\237\001\005\233\253\075\045\301 +\314\266\177\302\361\157\206\306\372\144\150\353\201\055\224\353 +\102\267\372\214\036\335\142\361\276\120\147\267\154\275\363\361 +\037\153\014\066\007\026\177\067\174\251\133\155\172\361\022\106 +\140\203\327\047\004\276\113\316\227\276\303\147\052\150\021\337 +\200\347\014\063\146\277\023\015\024\156\363\177\037\143\020\036 +\372\215\033\045\155\154\217\245\267\141\001\261\322\243\046\241 +\020\161\235\255\342\303\371\303\231\121\267\053\007\010\316\056 +\346\120\262\247\372\012\105\057\242\360\362 +END + +# Trust for Certificate "DigiCert Assured ID Root CA" +CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "DigiCert Assured ID Root CA" +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\005\143\270\143\015\142\327\132\273\310\253\036\113\337\265\250 +\231\262\115\103 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\207\316\013\173\052\016\111\000\341\130\161\233\067\250\223\162 +END +CKA_ISSUER MULTILINE_OCTAL +\060\145\061\013\060\011\006\003\125\004\006\023\002\125\123\061 +\025\060\023\006\003\125\004\012\023\014\104\151\147\151\103\145 +\162\164\040\111\156\143\061\031\060\027\006\003\125\004\013\023 +\020\167\167\167\056\144\151\147\151\143\145\162\164\056\143\157 +\155\061\044\060\042\006\003\125\004\003\023\033\104\151\147\151 +\103\145\162\164\040\101\163\163\165\162\145\144\040\111\104\040 +\122\157\157\164\040\103\101 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\020\014\347\340\345\027\330\106\376\217\345\140\374\033\360 +\060\071 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "DigiCert Global Root CA" +# +CKA_CLASS CK_OBJECT_CLASS CKO_CERTIFICATE +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "DigiCert Global Root CA" +CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509 +CKA_SUBJECT MULTILINE_OCTAL +\060\141\061\013\060\011\006\003\125\004\006\023\002\125\123\061 +\025\060\023\006\003\125\004\012\023\014\104\151\147\151\103\145 +\162\164\040\111\156\143\061\031\060\027\006\003\125\004\013\023 +\020\167\167\167\056\144\151\147\151\143\145\162\164\056\143\157 +\155\061\040\060\036\006\003\125\004\003\023\027\104\151\147\151 +\103\145\162\164\040\107\154\157\142\141\154\040\122\157\157\164 +\040\103\101 +END +CKA_ID UTF8 "0" +CKA_ISSUER MULTILINE_OCTAL +\060\141\061\013\060\011\006\003\125\004\006\023\002\125\123\061 +\025\060\023\006\003\125\004\012\023\014\104\151\147\151\103\145 +\162\164\040\111\156\143\061\031\060\027\006\003\125\004\013\023 +\020\167\167\167\056\144\151\147\151\143\145\162\164\056\143\157 +\155\061\040\060\036\006\003\125\004\003\023\027\104\151\147\151 +\103\145\162\164\040\107\154\157\142\141\154\040\122\157\157\164 +\040\103\101 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\020\010\073\340\126\220\102\106\261\241\165\152\311\131\221 +\307\112 +END +CKA_VALUE MULTILINE_OCTAL +\060\202\003\257\060\202\002\227\240\003\002\001\002\002\020\010 +\073\340\126\220\102\106\261\241\165\152\311\131\221\307\112\060 +\015\006\011\052\206\110\206\367\015\001\001\005\005\000\060\141 +\061\013\060\011\006\003\125\004\006\023\002\125\123\061\025\060 +\023\006\003\125\004\012\023\014\104\151\147\151\103\145\162\164 +\040\111\156\143\061\031\060\027\006\003\125\004\013\023\020\167 +\167\167\056\144\151\147\151\143\145\162\164\056\143\157\155\061 +\040\060\036\006\003\125\004\003\023\027\104\151\147\151\103\145 +\162\164\040\107\154\157\142\141\154\040\122\157\157\164\040\103 +\101\060\036\027\015\060\066\061\061\061\060\060\060\060\060\060 +\060\132\027\015\063\061\061\061\061\060\060\060\060\060\060\060 +\132\060\141\061\013\060\011\006\003\125\004\006\023\002\125\123 +\061\025\060\023\006\003\125\004\012\023\014\104\151\147\151\103 +\145\162\164\040\111\156\143\061\031\060\027\006\003\125\004\013 +\023\020\167\167\167\056\144\151\147\151\143\145\162\164\056\143 +\157\155\061\040\060\036\006\003\125\004\003\023\027\104\151\147 +\151\103\145\162\164\040\107\154\157\142\141\154\040\122\157\157 +\164\040\103\101\060\202\001\042\060\015\006\011\052\206\110\206 +\367\015\001\001\001\005\000\003\202\001\017\000\060\202\001\012 +\002\202\001\001\000\342\073\341\021\162\336\250\244\323\243\127 +\252\120\242\217\013\167\220\311\242\245\356\022\316\226\133\001 +\011\040\314\001\223\247\116\060\267\123\367\103\304\151\000\127 +\235\342\215\042\335\207\006\100\000\201\011\316\316\033\203\277 +\337\315\073\161\106\342\326\146\307\005\263\166\047\026\217\173 +\236\036\225\175\356\267\110\243\010\332\326\257\172\014\071\006 +\145\177\112\135\037\274\027\370\253\276\356\050\327\164\177\172 +\170\231\131\205\150\156\134\043\062\113\277\116\300\350\132\155 +\343\160\277\167\020\277\374\001\366\205\331\250\104\020\130\062 +\251\165\030\325\321\242\276\107\342\047\152\364\232\063\370\111 +\010\140\213\324\137\264\072\204\277\241\252\112\114\175\076\317 +\117\137\154\166\136\240\113\067\221\236\334\042\346\155\316\024 +\032\216\152\313\376\315\263\024\144\027\307\133\051\236\062\277 +\362\356\372\323\013\102\324\253\267\101\062\332\014\324\357\370 +\201\325\273\215\130\077\265\033\350\111\050\242\160\332\061\004 +\335\367\262\026\362\114\012\116\007\250\355\112\075\136\265\177 +\243\220\303\257\047\002\003\001\000\001\243\143\060\141\060\016 +\006\003\125\035\017\001\001\377\004\004\003\002\001\206\060\017 +\006\003\125\035\023\001\001\377\004\005\060\003\001\001\377\060 +\035\006\003\125\035\016\004\026\004\024\003\336\120\065\126\321 +\114\273\146\360\243\342\033\033\303\227\262\075\321\125\060\037 +\006\003\125\035\043\004\030\060\026\200\024\003\336\120\065\126 +\321\114\273\146\360\243\342\033\033\303\227\262\075\321\125\060 +\015\006\011\052\206\110\206\367\015\001\001\005\005\000\003\202 +\001\001\000\313\234\067\252\110\023\022\012\372\335\104\234\117 +\122\260\364\337\256\004\365\171\171\010\243\044\030\374\113\053 +\204\300\055\271\325\307\376\364\301\037\130\313\270\155\234\172 +\164\347\230\051\253\021\265\343\160\240\241\315\114\210\231\223 +\214\221\160\342\253\017\034\276\223\251\377\143\325\344\007\140 +\323\243\277\235\133\011\361\325\216\343\123\364\216\143\372\077 +\247\333\264\146\337\142\146\326\321\156\101\215\362\055\265\352 +\167\112\237\235\130\342\053\131\300\100\043\355\055\050\202\105 +\076\171\124\222\046\230\340\200\110\250\067\357\360\326\171\140 +\026\336\254\350\016\315\156\254\104\027\070\057\111\332\341\105 +\076\052\271\066\123\317\072\120\006\367\056\350\304\127\111\154 +\141\041\030\325\004\255\170\074\054\072\200\153\247\353\257\025 +\024\351\330\211\301\271\070\154\342\221\154\212\377\144\271\167 +\045\127\060\300\033\044\243\341\334\351\337\107\174\265\264\044 +\010\005\060\354\055\275\013\277\105\277\120\271\251\363\353\230 +\001\022\255\310\210\306\230\064\137\215\012\074\306\351\325\225 +\225\155\336 +END + +# Trust for Certificate "DigiCert Global Root CA" +CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "DigiCert Global Root CA" +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\250\230\135\072\145\345\345\304\262\327\326\155\100\306\335\057 +\261\234\124\066 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\171\344\251\204\015\175\072\226\327\300\117\342\103\114\211\056 +END +CKA_ISSUER MULTILINE_OCTAL +\060\141\061\013\060\011\006\003\125\004\006\023\002\125\123\061 +\025\060\023\006\003\125\004\012\023\014\104\151\147\151\103\145 +\162\164\040\111\156\143\061\031\060\027\006\003\125\004\013\023 +\020\167\167\167\056\144\151\147\151\143\145\162\164\056\143\157 +\155\061\040\060\036\006\003\125\004\003\023\027\104\151\147\151 +\103\145\162\164\040\107\154\157\142\141\154\040\122\157\157\164 +\040\103\101 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\020\010\073\340\126\220\102\106\261\241\165\152\311\131\221 +\307\112 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "DigiCert High Assurance EV Root CA" +# +CKA_CLASS CK_OBJECT_CLASS CKO_CERTIFICATE +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "DigiCert High Assurance EV Root CA" +CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509 +CKA_SUBJECT MULTILINE_OCTAL +\060\154\061\013\060\011\006\003\125\004\006\023\002\125\123\061 +\025\060\023\006\003\125\004\012\023\014\104\151\147\151\103\145 +\162\164\040\111\156\143\061\031\060\027\006\003\125\004\013\023 +\020\167\167\167\056\144\151\147\151\143\145\162\164\056\143\157 +\155\061\053\060\051\006\003\125\004\003\023\042\104\151\147\151 +\103\145\162\164\040\110\151\147\150\040\101\163\163\165\162\141 +\156\143\145\040\105\126\040\122\157\157\164\040\103\101 +END +CKA_ID UTF8 "0" +CKA_ISSUER MULTILINE_OCTAL +\060\154\061\013\060\011\006\003\125\004\006\023\002\125\123\061 +\025\060\023\006\003\125\004\012\023\014\104\151\147\151\103\145 +\162\164\040\111\156\143\061\031\060\027\006\003\125\004\013\023 +\020\167\167\167\056\144\151\147\151\143\145\162\164\056\143\157 +\155\061\053\060\051\006\003\125\004\003\023\042\104\151\147\151 +\103\145\162\164\040\110\151\147\150\040\101\163\163\165\162\141 +\156\143\145\040\105\126\040\122\157\157\164\040\103\101 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\020\002\254\134\046\152\013\100\233\217\013\171\362\256\106 +\045\167 +END +CKA_VALUE MULTILINE_OCTAL +\060\202\003\305\060\202\002\255\240\003\002\001\002\002\020\002 +\254\134\046\152\013\100\233\217\013\171\362\256\106\045\167\060 +\015\006\011\052\206\110\206\367\015\001\001\005\005\000\060\154 +\061\013\060\011\006\003\125\004\006\023\002\125\123\061\025\060 +\023\006\003\125\004\012\023\014\104\151\147\151\103\145\162\164 +\040\111\156\143\061\031\060\027\006\003\125\004\013\023\020\167 +\167\167\056\144\151\147\151\143\145\162\164\056\143\157\155\061 +\053\060\051\006\003\125\004\003\023\042\104\151\147\151\103\145 +\162\164\040\110\151\147\150\040\101\163\163\165\162\141\156\143 +\145\040\105\126\040\122\157\157\164\040\103\101\060\036\027\015 +\060\066\061\061\061\060\060\060\060\060\060\060\132\027\015\063 +\061\061\061\061\060\060\060\060\060\060\060\132\060\154\061\013 +\060\011\006\003\125\004\006\023\002\125\123\061\025\060\023\006 +\003\125\004\012\023\014\104\151\147\151\103\145\162\164\040\111 +\156\143\061\031\060\027\006\003\125\004\013\023\020\167\167\167 +\056\144\151\147\151\143\145\162\164\056\143\157\155\061\053\060 +\051\006\003\125\004\003\023\042\104\151\147\151\103\145\162\164 +\040\110\151\147\150\040\101\163\163\165\162\141\156\143\145\040 +\105\126\040\122\157\157\164\040\103\101\060\202\001\042\060\015 +\006\011\052\206\110\206\367\015\001\001\001\005\000\003\202\001 +\017\000\060\202\001\012\002\202\001\001\000\306\314\345\163\346 +\373\324\273\345\055\055\062\246\337\345\201\077\311\315\045\111 +\266\161\052\303\325\224\064\147\242\012\034\260\137\151\246\100 +\261\304\267\262\217\320\230\244\251\101\131\072\323\334\224\326 +\074\333\164\070\244\112\314\115\045\202\367\112\245\123\022\070 +\356\363\111\155\161\221\176\143\266\253\246\137\303\244\204\370 +\117\142\121\276\370\305\354\333\070\222\343\006\345\010\221\014 +\304\050\101\125\373\313\132\211\025\176\161\350\065\277\115\162 +\011\075\276\072\070\120\133\167\061\033\215\263\307\044\105\232 +\247\254\155\000\024\132\004\267\272\023\353\121\012\230\101\101 +\042\116\145\141\207\201\101\120\246\171\134\211\336\031\112\127 +\325\056\346\135\034\123\054\176\230\315\032\006\026\244\150\163 +\320\064\004\023\134\241\161\323\132\174\125\333\136\144\341\067 +\207\060\126\004\345\021\264\051\200\022\361\171\071\210\242\002 +\021\174\047\146\267\210\267\170\362\312\012\250\070\253\012\144 +\302\277\146\135\225\204\301\241\045\036\207\135\032\120\013\040 +\022\314\101\273\156\013\121\070\270\113\313\002\003\001\000\001 +\243\143\060\141\060\016\006\003\125\035\017\001\001\377\004\004 +\003\002\001\206\060\017\006\003\125\035\023\001\001\377\004\005 +\060\003\001\001\377\060\035\006\003\125\035\016\004\026\004\024 +\261\076\303\151\003\370\277\107\001\324\230\046\032\010\002\357 +\143\144\053\303\060\037\006\003\125\035\043\004\030\060\026\200 +\024\261\076\303\151\003\370\277\107\001\324\230\046\032\010\002 +\357\143\144\053\303\060\015\006\011\052\206\110\206\367\015\001 +\001\005\005\000\003\202\001\001\000\034\032\006\227\334\327\234 +\237\074\210\146\006\010\127\041\333\041\107\370\052\147\252\277 +\030\062\166\100\020\127\301\212\363\172\331\021\145\216\065\372 +\236\374\105\265\236\331\114\061\113\270\221\350\103\054\216\263 +\170\316\333\343\123\171\161\326\345\041\224\001\332\125\207\232 +\044\144\366\212\146\314\336\234\067\315\250\064\261\151\233\043 +\310\236\170\042\053\160\103\343\125\107\061\141\031\357\130\305 +\205\057\116\060\366\240\061\026\043\310\347\342\145\026\063\313 +\277\032\033\240\075\370\312\136\213\061\213\140\010\211\055\014 +\006\134\122\267\304\371\012\230\321\025\137\237\022\276\174\066 +\143\070\275\104\244\177\344\046\053\012\304\227\151\015\351\214 +\342\300\020\127\270\310\166\022\221\125\362\110\151\330\274\052 +\002\133\017\104\324\040\061\333\364\272\160\046\135\220\140\236 +\274\113\027\011\057\264\313\036\103\150\311\007\047\301\322\134 +\367\352\041\271\150\022\234\074\234\277\236\374\200\134\233\143 +\315\354\107\252\045\047\147\240\067\363\000\202\175\124\327\251 +\370\351\056\023\243\167\350\037\112 +END + +# Trust for Certificate "DigiCert High Assurance EV Root CA" +CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "DigiCert High Assurance EV Root CA" +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\137\267\356\006\063\342\131\333\255\014\114\232\346\323\217\032 +\141\307\334\045 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\324\164\336\127\134\071\262\323\234\205\203\305\300\145\111\212 +END +CKA_ISSUER MULTILINE_OCTAL +\060\154\061\013\060\011\006\003\125\004\006\023\002\125\123\061 +\025\060\023\006\003\125\004\012\023\014\104\151\147\151\103\145 +\162\164\040\111\156\143\061\031\060\027\006\003\125\004\013\023 +\020\167\167\167\056\144\151\147\151\143\145\162\164\056\143\157 +\155\061\053\060\051\006\003\125\004\003\023\042\104\151\147\151 +\103\145\162\164\040\110\151\147\150\040\101\163\163\165\162\141 +\156\143\145\040\105\126\040\122\157\157\164\040\103\101 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\020\002\254\134\046\152\013\100\233\217\013\171\362\256\106 +\045\167 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "Certplus Class 2 Primary CA" +# +CKA_CLASS CK_OBJECT_CLASS CKO_CERTIFICATE +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "Certplus Class 2 Primary CA" +CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509 +CKA_SUBJECT MULTILINE_OCTAL +\060\075\061\013\060\011\006\003\125\004\006\023\002\106\122\061 +\021\060\017\006\003\125\004\012\023\010\103\145\162\164\160\154 +\165\163\061\033\060\031\006\003\125\004\003\023\022\103\154\141 +\163\163\040\062\040\120\162\151\155\141\162\171\040\103\101 +END +CKA_ID UTF8 "0" +CKA_ISSUER MULTILINE_OCTAL +\060\075\061\013\060\011\006\003\125\004\006\023\002\106\122\061 +\021\060\017\006\003\125\004\012\023\010\103\145\162\164\160\154 +\165\163\061\033\060\031\006\003\125\004\003\023\022\103\154\141 +\163\163\040\062\040\120\162\151\155\141\162\171\040\103\101 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\021\000\205\275\113\363\330\332\343\151\366\224\327\137\303 +\245\104\043 +END +CKA_VALUE MULTILINE_OCTAL +\060\202\003\222\060\202\002\172\240\003\002\001\002\002\021\000 +\205\275\113\363\330\332\343\151\366\224\327\137\303\245\104\043 +\060\015\006\011\052\206\110\206\367\015\001\001\005\005\000\060 +\075\061\013\060\011\006\003\125\004\006\023\002\106\122\061\021 +\060\017\006\003\125\004\012\023\010\103\145\162\164\160\154\165 +\163\061\033\060\031\006\003\125\004\003\023\022\103\154\141\163 +\163\040\062\040\120\162\151\155\141\162\171\040\103\101\060\036 +\027\015\071\071\060\067\060\067\061\067\060\065\060\060\132\027 +\015\061\071\060\067\060\066\062\063\065\071\065\071\132\060\075 +\061\013\060\011\006\003\125\004\006\023\002\106\122\061\021\060 +\017\006\003\125\004\012\023\010\103\145\162\164\160\154\165\163 +\061\033\060\031\006\003\125\004\003\023\022\103\154\141\163\163 +\040\062\040\120\162\151\155\141\162\171\040\103\101\060\202\001 +\042\060\015\006\011\052\206\110\206\367\015\001\001\001\005\000 +\003\202\001\017\000\060\202\001\012\002\202\001\001\000\334\120 +\226\320\022\370\065\322\010\170\172\266\122\160\375\157\356\317 +\271\021\313\135\167\341\354\351\176\004\215\326\314\157\163\103 +\127\140\254\063\012\104\354\003\137\034\200\044\221\345\250\221 +\126\022\202\367\340\053\364\333\256\141\056\211\020\215\153\154 +\272\263\002\275\325\066\305\110\067\043\342\360\132\067\122\063 +\027\022\342\321\140\115\276\057\101\021\343\366\027\045\014\213 +\221\300\033\231\173\231\126\015\257\356\322\274\107\127\343\171 +\111\173\064\211\047\044\204\336\261\354\351\130\116\376\116\337 +\132\276\101\255\254\010\305\030\016\357\322\123\356\154\320\235 +\022\001\023\215\334\200\142\367\225\251\104\210\112\161\116\140 +\125\236\333\043\031\171\126\007\014\077\143\013\134\260\342\276 +\176\025\374\224\063\130\101\070\164\304\341\217\213\337\046\254 +\037\265\213\073\267\103\131\153\260\044\246\155\220\213\304\162 +\352\135\063\230\267\313\336\136\173\357\224\361\033\076\312\311 +\041\301\305\230\002\252\242\366\133\167\233\365\176\226\125\064 +\034\147\151\300\361\102\343\107\254\374\050\034\146\125\002\003 +\001\000\001\243\201\214\060\201\211\060\017\006\003\125\035\023 +\004\010\060\006\001\001\377\002\001\012\060\013\006\003\125\035 +\017\004\004\003\002\001\006\060\035\006\003\125\035\016\004\026 +\004\024\343\163\055\337\313\016\050\014\336\335\263\244\312\171 +\270\216\273\350\060\211\060\021\006\011\140\206\110\001\206\370 +\102\001\001\004\004\003\002\001\006\060\067\006\003\125\035\037 +\004\060\060\056\060\054\240\052\240\050\206\046\150\164\164\160 +\072\057\057\167\167\167\056\143\145\162\164\160\154\165\163\056 +\143\157\155\057\103\122\114\057\143\154\141\163\163\062\056\143 +\162\154\060\015\006\011\052\206\110\206\367\015\001\001\005\005 +\000\003\202\001\001\000\247\124\317\210\104\031\313\337\324\177 +\000\337\126\063\142\265\367\121\001\220\353\303\077\321\210\104 +\351\044\135\357\347\024\275\040\267\232\074\000\376\155\237\333 +\220\334\327\364\142\326\213\160\135\347\345\004\110\251\150\174 +\311\361\102\363\154\177\305\172\174\035\121\210\272\322\012\076 +\047\135\336\055\121\116\323\023\144\151\344\056\343\323\347\233 +\011\231\246\340\225\233\316\032\327\177\276\074\316\122\263\021 +\025\301\017\027\315\003\273\234\045\025\272\242\166\211\374\006 +\361\030\320\223\113\016\174\202\267\245\364\366\137\376\355\100 +\246\235\204\164\071\271\334\036\205\026\332\051\033\206\043\000 +\311\273\211\176\156\200\210\036\057\024\264\003\044\250\062\157 +\003\232\107\054\060\276\126\306\247\102\002\160\033\352\100\330 +\272\005\003\160\007\244\226\377\375\110\063\012\341\334\245\201 +\220\233\115\335\175\347\347\262\315\134\310\152\225\370\245\366 +\215\304\135\170\010\276\173\006\326\111\317\031\066\120\043\056 +\010\346\236\005\115\107\030\325\026\351\261\326\266\020\325\273 +\227\277\242\216\264\124 +END + +# Trust for Certificate "Certplus Class 2 Primary CA" +CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "Certplus Class 2 Primary CA" +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\164\040\164\101\162\234\335\222\354\171\061\330\043\020\215\302 +\201\222\342\273 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\210\054\214\122\270\242\074\363\367\273\003\352\256\254\102\013 +END +CKA_ISSUER MULTILINE_OCTAL +\060\075\061\013\060\011\006\003\125\004\006\023\002\106\122\061 +\021\060\017\006\003\125\004\012\023\010\103\145\162\164\160\154 +\165\163\061\033\060\031\006\003\125\004\003\023\022\103\154\141 +\163\163\040\062\040\120\162\151\155\141\162\171\040\103\101 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\021\000\205\275\113\363\330\332\343\151\366\224\327\137\303 +\245\104\043 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_TRUST_UNKNOWN +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "DST Root CA X3" +# +CKA_CLASS CK_OBJECT_CLASS CKO_CERTIFICATE +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "DST Root CA X3" +CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509 +CKA_SUBJECT MULTILINE_OCTAL +\060\077\061\044\060\042\006\003\125\004\012\023\033\104\151\147 +\151\164\141\154\040\123\151\147\156\141\164\165\162\145\040\124 +\162\165\163\164\040\103\157\056\061\027\060\025\006\003\125\004 +\003\023\016\104\123\124\040\122\157\157\164\040\103\101\040\130 +\063 +END +CKA_ID UTF8 "0" +CKA_ISSUER MULTILINE_OCTAL +\060\077\061\044\060\042\006\003\125\004\012\023\033\104\151\147 +\151\164\141\154\040\123\151\147\156\141\164\165\162\145\040\124 +\162\165\163\164\040\103\157\056\061\027\060\025\006\003\125\004 +\003\023\016\104\123\124\040\122\157\157\164\040\103\101\040\130 +\063 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\020\104\257\260\200\326\243\047\272\211\060\071\206\056\370 +\100\153 +END +CKA_VALUE MULTILINE_OCTAL +\060\202\003\112\060\202\002\062\240\003\002\001\002\002\020\104 +\257\260\200\326\243\047\272\211\060\071\206\056\370\100\153\060 +\015\006\011\052\206\110\206\367\015\001\001\005\005\000\060\077 +\061\044\060\042\006\003\125\004\012\023\033\104\151\147\151\164 +\141\154\040\123\151\147\156\141\164\165\162\145\040\124\162\165 +\163\164\040\103\157\056\061\027\060\025\006\003\125\004\003\023 +\016\104\123\124\040\122\157\157\164\040\103\101\040\130\063\060 +\036\027\015\060\060\060\071\063\060\062\061\061\062\061\071\132 +\027\015\062\061\060\071\063\060\061\064\060\061\061\065\132\060 +\077\061\044\060\042\006\003\125\004\012\023\033\104\151\147\151 +\164\141\154\040\123\151\147\156\141\164\165\162\145\040\124\162 +\165\163\164\040\103\157\056\061\027\060\025\006\003\125\004\003 +\023\016\104\123\124\040\122\157\157\164\040\103\101\040\130\063 +\060\202\001\042\060\015\006\011\052\206\110\206\367\015\001\001 +\001\005\000\003\202\001\017\000\060\202\001\012\002\202\001\001 +\000\337\257\351\227\120\010\203\127\264\314\142\145\366\220\202 +\354\307\323\054\153\060\312\133\354\331\303\175\307\100\301\030 +\024\213\340\350\063\166\111\052\343\077\041\111\223\254\116\016 +\257\076\110\313\145\356\374\323\041\017\145\322\052\331\062\217 +\214\345\367\167\260\022\173\265\225\300\211\243\251\272\355\163 +\056\172\014\006\062\203\242\176\212\024\060\315\021\240\341\052 +\070\271\171\012\061\375\120\275\200\145\337\267\121\143\203\310 +\342\210\141\352\113\141\201\354\122\153\271\242\342\113\032\050 +\237\110\243\236\014\332\011\216\076\027\056\036\335\040\337\133 +\306\052\212\253\056\275\160\255\305\013\032\045\220\164\162\305 +\173\152\253\064\326\060\211\377\345\150\023\173\124\013\310\326 +\256\354\132\234\222\036\075\144\263\214\306\337\277\311\101\160 +\354\026\162\325\046\354\070\125\071\103\320\374\375\030\134\100 +\361\227\353\325\232\233\215\035\272\332\045\271\306\330\337\301 +\025\002\072\253\332\156\361\076\056\365\134\010\234\074\326\203 +\151\344\020\233\031\052\266\051\127\343\345\075\233\237\360\002 +\135\002\003\001\000\001\243\102\060\100\060\017\006\003\125\035 +\023\001\001\377\004\005\060\003\001\001\377\060\016\006\003\125 +\035\017\001\001\377\004\004\003\002\001\006\060\035\006\003\125 +\035\016\004\026\004\024\304\247\261\244\173\054\161\372\333\341 +\113\220\165\377\304\025\140\205\211\020\060\015\006\011\052\206 +\110\206\367\015\001\001\005\005\000\003\202\001\001\000\243\032 +\054\233\027\000\134\251\036\356\050\146\067\072\277\203\307\077 +\113\303\011\240\225\040\135\343\331\131\104\322\076\015\076\275 +\212\113\240\164\037\316\020\202\234\164\032\035\176\230\032\335 +\313\023\113\263\040\104\344\221\351\314\374\175\245\333\152\345 +\376\346\375\340\116\335\267\000\072\265\160\111\257\362\345\353 +\002\361\321\002\213\031\313\224\072\136\110\304\030\036\130\031 +\137\036\002\132\360\014\361\261\255\251\334\131\206\213\156\351 +\221\365\206\312\372\271\146\063\252\131\133\316\342\247\026\163 +\107\313\053\314\231\260\067\110\317\343\126\113\365\317\017\014 +\162\062\207\306\360\104\273\123\162\155\103\365\046\110\232\122 +\147\267\130\253\376\147\166\161\170\333\015\242\126\024\023\071 +\044\061\205\242\250\002\132\060\107\341\335\120\007\274\002\011 +\220\000\353\144\143\140\233\026\274\210\311\022\346\322\175\221 +\213\371\075\062\215\145\264\351\174\261\127\166\352\305\266\050 +\071\277\025\145\034\310\366\167\226\152\012\215\167\013\330\221 +\013\004\216\007\333\051\266\012\356\235\202\065\065\020 +END + +# Trust for Certificate "DST Root CA X3" +CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "DST Root CA X3" +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\332\311\002\117\124\330\366\337\224\223\137\261\163\046\070\312 +\152\327\174\023 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\101\003\122\334\017\367\120\033\026\360\002\216\272\157\105\305 +END +CKA_ISSUER MULTILINE_OCTAL +\060\077\061\044\060\042\006\003\125\004\012\023\033\104\151\147 +\151\164\141\154\040\123\151\147\156\141\164\165\162\145\040\124 +\162\165\163\164\040\103\157\056\061\027\060\025\006\003\125\004 +\003\023\016\104\123\124\040\122\157\157\164\040\103\101\040\130 +\063 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\020\104\257\260\200\326\243\047\272\211\060\071\206\056\370 +\100\153 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_TRUST_UNKNOWN +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_TRUST_UNKNOWN +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "DST ACES CA X6" +# +CKA_CLASS CK_OBJECT_CLASS CKO_CERTIFICATE +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "DST ACES CA X6" +CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509 +CKA_SUBJECT MULTILINE_OCTAL +\060\133\061\013\060\011\006\003\125\004\006\023\002\125\123\061 +\040\060\036\006\003\125\004\012\023\027\104\151\147\151\164\141 +\154\040\123\151\147\156\141\164\165\162\145\040\124\162\165\163 +\164\061\021\060\017\006\003\125\004\013\023\010\104\123\124\040 +\101\103\105\123\061\027\060\025\006\003\125\004\003\023\016\104 +\123\124\040\101\103\105\123\040\103\101\040\130\066 +END +CKA_ID UTF8 "0" +CKA_ISSUER MULTILINE_OCTAL +\060\133\061\013\060\011\006\003\125\004\006\023\002\125\123\061 +\040\060\036\006\003\125\004\012\023\027\104\151\147\151\164\141 +\154\040\123\151\147\156\141\164\165\162\145\040\124\162\165\163 +\164\061\021\060\017\006\003\125\004\013\023\010\104\123\124\040 +\101\103\105\123\061\027\060\025\006\003\125\004\003\023\016\104 +\123\124\040\101\103\105\123\040\103\101\040\130\066 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\020\015\136\231\012\326\235\267\170\354\330\007\126\073\206 +\025\331 +END +CKA_VALUE MULTILINE_OCTAL +\060\202\004\011\060\202\002\361\240\003\002\001\002\002\020\015 +\136\231\012\326\235\267\170\354\330\007\126\073\206\025\331\060 +\015\006\011\052\206\110\206\367\015\001\001\005\005\000\060\133 +\061\013\060\011\006\003\125\004\006\023\002\125\123\061\040\060 +\036\006\003\125\004\012\023\027\104\151\147\151\164\141\154\040 +\123\151\147\156\141\164\165\162\145\040\124\162\165\163\164\061 +\021\060\017\006\003\125\004\013\023\010\104\123\124\040\101\103 +\105\123\061\027\060\025\006\003\125\004\003\023\016\104\123\124 +\040\101\103\105\123\040\103\101\040\130\066\060\036\027\015\060 +\063\061\061\062\060\062\061\061\071\065\070\132\027\015\061\067 +\061\061\062\060\062\061\061\071\065\070\132\060\133\061\013\060 +\011\006\003\125\004\006\023\002\125\123\061\040\060\036\006\003 +\125\004\012\023\027\104\151\147\151\164\141\154\040\123\151\147 +\156\141\164\165\162\145\040\124\162\165\163\164\061\021\060\017 +\006\003\125\004\013\023\010\104\123\124\040\101\103\105\123\061 +\027\060\025\006\003\125\004\003\023\016\104\123\124\040\101\103 +\105\123\040\103\101\040\130\066\060\202\001\042\060\015\006\011 +\052\206\110\206\367\015\001\001\001\005\000\003\202\001\017\000 +\060\202\001\012\002\202\001\001\000\271\075\365\054\311\224\334 +\165\212\225\135\143\350\204\167\166\146\271\131\221\134\106\335 +\222\076\237\371\016\003\264\075\141\222\275\043\046\265\143\356 +\222\322\236\326\074\310\015\220\137\144\201\261\250\010\015\114 +\330\371\323\005\050\122\264\001\045\305\225\034\014\176\076\020 +\204\165\317\301\031\221\143\317\350\250\221\210\271\103\122\273 +\200\261\125\211\213\061\372\320\267\166\276\101\075\060\232\244 +\042\045\027\163\350\036\342\323\254\052\275\133\070\041\325\052 +\113\327\125\175\343\072\125\275\327\155\153\002\127\153\346\107 +\174\010\310\202\272\336\247\207\075\241\155\270\060\126\302\263 +\002\201\137\055\365\342\232\060\030\050\270\146\323\313\001\226 +\157\352\212\105\125\326\340\235\377\147\053\027\002\246\116\032 +\152\021\013\176\267\173\347\230\326\214\166\157\301\073\333\120 +\223\176\345\320\216\037\067\270\275\272\306\237\154\351\174\063 +\362\062\074\046\107\372\047\044\002\311\176\035\133\210\102\023 +\152\065\174\175\065\351\056\146\221\162\223\325\062\046\304\164 +\365\123\243\263\135\232\366\011\313\002\003\001\000\001\243\201 +\310\060\201\305\060\017\006\003\125\035\023\001\001\377\004\005 +\060\003\001\001\377\060\016\006\003\125\035\017\001\001\377\004 +\004\003\002\001\306\060\037\006\003\125\035\021\004\030\060\026 +\201\024\160\153\151\055\157\160\163\100\164\162\165\163\164\144 +\163\164\056\143\157\155\060\142\006\003\125\035\040\004\133\060 +\131\060\127\006\012\140\206\110\001\145\003\002\001\001\001\060 +\111\060\107\006\010\053\006\001\005\005\007\002\001\026\073\150 +\164\164\160\072\057\057\167\167\167\056\164\162\165\163\164\144 +\163\164\056\143\157\155\057\143\145\162\164\151\146\151\143\141 +\164\145\163\057\160\157\154\151\143\171\057\101\103\105\123\055 +\151\156\144\145\170\056\150\164\155\154\060\035\006\003\125\035 +\016\004\026\004\024\011\162\006\116\030\103\017\345\326\314\303 +\152\213\061\173\170\217\250\203\270\060\015\006\011\052\206\110 +\206\367\015\001\001\005\005\000\003\202\001\001\000\243\330\216 +\326\262\333\316\005\347\062\315\001\323\004\003\345\166\344\126 +\053\234\231\220\350\010\060\154\337\175\075\356\345\277\265\044 +\100\204\111\341\321\050\256\304\302\072\123\060\210\361\365\167 +\156\121\312\372\377\231\257\044\137\033\240\375\362\254\204\312 +\337\251\360\137\004\056\255\026\277\041\227\020\201\075\343\377 +\207\215\062\334\224\345\107\212\136\152\023\311\224\225\075\322 +\356\310\064\225\320\200\324\255\062\010\200\124\074\340\275\122 +\123\327\122\174\262\151\077\177\172\317\152\164\312\372\004\052 +\234\114\132\006\245\351\040\255\105\146\017\151\361\335\277\351 +\343\062\213\372\340\301\206\115\162\074\056\330\223\170\012\052 +\370\330\322\047\075\031\211\137\132\173\212\073\314\014\332\121 +\256\307\013\367\053\260\067\005\354\274\127\043\342\070\322\233 +\150\363\126\022\210\117\102\174\270\061\304\265\333\344\310\041 +\064\351\110\021\065\356\372\307\222\127\305\237\064\344\307\366 +\367\016\013\114\234\150\170\173\161\061\307\353\036\340\147\101 +\363\267\240\247\315\345\172\063\066\152\372\232\053 +END + +# Trust for Certificate "DST ACES CA X6" +CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "DST ACES CA X6" +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\100\124\332\157\034\077\100\164\254\355\017\354\315\333\171\321 +\123\373\220\035 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\041\330\114\202\053\231\011\063\242\353\024\044\215\216\137\350 +END +CKA_ISSUER MULTILINE_OCTAL +\060\133\061\013\060\011\006\003\125\004\006\023\002\125\123\061 +\040\060\036\006\003\125\004\012\023\027\104\151\147\151\164\141 +\154\040\123\151\147\156\141\164\165\162\145\040\124\162\165\163 +\164\061\021\060\017\006\003\125\004\013\023\010\104\123\124\040 +\101\103\105\123\061\027\060\025\006\003\125\004\003\023\016\104 +\123\124\040\101\103\105\123\040\103\101\040\130\066 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\020\015\136\231\012\326\235\267\170\354\330\007\126\073\206 +\025\331 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_TRUST_UNKNOWN +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_TRUST_UNKNOWN +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "TURKTRUST Certificate Services Provider Root 1" +# +CKA_CLASS CK_OBJECT_CLASS CKO_CERTIFICATE +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "TURKTRUST Certificate Services Provider Root 1" +CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509 +CKA_SUBJECT MULTILINE_OCTAL +\060\201\267\061\077\060\075\006\003\125\004\003\014\066\124\303 +\234\122\113\124\122\125\123\124\040\105\154\145\153\164\162\157 +\156\151\153\040\123\145\162\164\151\146\151\153\141\040\110\151 +\172\155\145\164\040\123\141\304\237\154\141\171\304\261\143\304 +\261\163\304\261\061\013\060\011\006\003\125\004\006\014\002\124 +\122\061\017\060\015\006\003\125\004\007\014\006\101\116\113\101 +\122\101\061\126\060\124\006\003\125\004\012\014\115\050\143\051 +\040\062\060\060\065\040\124\303\234\122\113\124\122\125\123\124 +\040\102\151\154\147\151\040\304\260\154\145\164\151\305\237\151 +\155\040\166\145\040\102\151\154\151\305\237\151\155\040\107\303 +\274\166\145\156\154\151\304\237\151\040\110\151\172\155\145\164 +\154\145\162\151\040\101\056\305\236\056 +END +CKA_ID UTF8 "0" +CKA_ISSUER MULTILINE_OCTAL +\060\201\267\061\077\060\075\006\003\125\004\003\014\066\124\303 +\234\122\113\124\122\125\123\124\040\105\154\145\153\164\162\157 +\156\151\153\040\123\145\162\164\151\146\151\153\141\040\110\151 +\172\155\145\164\040\123\141\304\237\154\141\171\304\261\143\304 +\261\163\304\261\061\013\060\011\006\003\125\004\006\014\002\124 +\122\061\017\060\015\006\003\125\004\007\014\006\101\116\113\101 +\122\101\061\126\060\124\006\003\125\004\012\014\115\050\143\051 +\040\062\060\060\065\040\124\303\234\122\113\124\122\125\123\124 +\040\102\151\154\147\151\040\304\260\154\145\164\151\305\237\151 +\155\040\166\145\040\102\151\154\151\305\237\151\155\040\107\303 +\274\166\145\156\154\151\304\237\151\040\110\151\172\155\145\164 +\154\145\162\151\040\101\056\305\236\056 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\001\001 +END +CKA_VALUE MULTILINE_OCTAL +\060\202\003\373\060\202\002\343\240\003\002\001\002\002\001\001 +\060\015\006\011\052\206\110\206\367\015\001\001\005\005\000\060 +\201\267\061\077\060\075\006\003\125\004\003\014\066\124\303\234 +\122\113\124\122\125\123\124\040\105\154\145\153\164\162\157\156 +\151\153\040\123\145\162\164\151\146\151\153\141\040\110\151\172 +\155\145\164\040\123\141\304\237\154\141\171\304\261\143\304\261 +\163\304\261\061\013\060\011\006\003\125\004\006\014\002\124\122 +\061\017\060\015\006\003\125\004\007\014\006\101\116\113\101\122 +\101\061\126\060\124\006\003\125\004\012\014\115\050\143\051\040 +\062\060\060\065\040\124\303\234\122\113\124\122\125\123\124\040 +\102\151\154\147\151\040\304\260\154\145\164\151\305\237\151\155 +\040\166\145\040\102\151\154\151\305\237\151\155\040\107\303\274 +\166\145\156\154\151\304\237\151\040\110\151\172\155\145\164\154 +\145\162\151\040\101\056\305\236\056\060\036\027\015\060\065\060 +\065\061\063\061\060\062\067\061\067\132\027\015\061\065\060\063 +\062\062\061\060\062\067\061\067\132\060\201\267\061\077\060\075 +\006\003\125\004\003\014\066\124\303\234\122\113\124\122\125\123 +\124\040\105\154\145\153\164\162\157\156\151\153\040\123\145\162 +\164\151\146\151\153\141\040\110\151\172\155\145\164\040\123\141 +\304\237\154\141\171\304\261\143\304\261\163\304\261\061\013\060 +\011\006\003\125\004\006\014\002\124\122\061\017\060\015\006\003 +\125\004\007\014\006\101\116\113\101\122\101\061\126\060\124\006 +\003\125\004\012\014\115\050\143\051\040\062\060\060\065\040\124 +\303\234\122\113\124\122\125\123\124\040\102\151\154\147\151\040 +\304\260\154\145\164\151\305\237\151\155\040\166\145\040\102\151 +\154\151\305\237\151\155\040\107\303\274\166\145\156\154\151\304 +\237\151\040\110\151\172\155\145\164\154\145\162\151\040\101\056 +\305\236\056\060\202\001\042\060\015\006\011\052\206\110\206\367 +\015\001\001\001\005\000\003\202\001\017\000\060\202\001\012\002 +\202\001\001\000\312\122\005\326\143\003\330\034\137\335\322\173 +\135\362\014\140\141\133\153\073\164\053\170\015\175\105\275\042 +\164\350\214\003\301\306\021\052\075\225\274\251\224\260\273\221 +\227\310\151\174\204\305\264\221\154\154\023\152\244\125\255\244 +\205\350\225\176\263\000\257\000\302\005\030\365\160\235\066\213 +\256\313\344\033\201\177\223\210\373\152\125\273\175\205\222\316 +\272\130\237\333\062\305\275\135\357\042\112\057\101\007\176\111 +\141\263\206\354\116\246\101\156\204\274\003\354\365\073\034\310 +\037\302\356\250\356\352\022\112\215\024\317\363\012\340\120\071 +\371\010\065\370\021\131\255\347\042\352\113\312\024\006\336\102 +\272\262\231\363\055\124\210\020\006\352\341\032\076\075\147\037 +\373\316\373\174\202\350\021\135\112\301\271\024\352\124\331\146 +\233\174\211\175\004\232\142\311\351\122\074\236\234\357\322\365 +\046\344\346\345\030\174\213\156\337\154\314\170\133\117\162\262 +\313\134\077\214\005\215\321\114\214\255\222\307\341\170\177\145 +\154\111\006\120\054\236\062\302\327\112\306\165\212\131\116\165 +\157\107\136\301\002\003\001\000\001\243\020\060\016\060\014\006 +\003\125\035\023\004\005\060\003\001\001\377\060\015\006\011\052 +\206\110\206\367\015\001\001\005\005\000\003\202\001\001\000\025 +\365\125\377\067\226\200\131\041\244\374\241\025\114\040\366\324 +\137\332\003\044\374\317\220\032\364\041\012\232\356\072\261\152 +\357\357\370\140\321\114\066\146\105\035\363\146\002\164\004\173 +\222\060\250\336\012\166\017\357\225\156\275\311\067\346\032\015 +\254\211\110\133\314\203\066\302\365\106\134\131\202\126\264\325 +\376\043\264\330\124\034\104\253\304\247\345\024\316\074\101\141 +\174\103\346\315\304\201\011\213\044\373\124\045\326\026\250\226 +\014\147\007\157\263\120\107\343\034\044\050\335\052\230\244\141 +\376\333\352\022\067\274\001\032\064\205\275\156\117\347\221\162 +\007\104\205\036\130\312\124\104\335\367\254\271\313\211\041\162 +\333\217\300\151\051\227\052\243\256\030\043\227\034\101\052\213 +\174\052\301\174\220\350\251\050\300\323\221\306\255\050\207\100 +\150\265\377\354\247\322\323\070\030\234\323\175\151\135\360\306 +\245\036\044\033\243\107\374\151\007\150\347\344\232\264\355\017 +\241\207\207\002\316\207\322\110\116\341\274\377\313\361\162\222 +\104\144\003\045\352\336\133\156\237\311\362\116\254\335\307 +END + +# Trust for Certificate "TURKTRUST Certificate Services Provider Root 1" +CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "TURKTRUST Certificate Services Provider Root 1" +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\171\230\243\010\341\115\145\205\346\302\036\025\072\161\237\272 +\132\323\112\331 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\361\152\042\030\311\315\337\316\202\035\035\267\170\134\251\245 +END +CKA_ISSUER MULTILINE_OCTAL +\060\201\267\061\077\060\075\006\003\125\004\003\014\066\124\303 +\234\122\113\124\122\125\123\124\040\105\154\145\153\164\162\157 +\156\151\153\040\123\145\162\164\151\146\151\153\141\040\110\151 +\172\155\145\164\040\123\141\304\237\154\141\171\304\261\143\304 +\261\163\304\261\061\013\060\011\006\003\125\004\006\014\002\124 +\122\061\017\060\015\006\003\125\004\007\014\006\101\116\113\101 +\122\101\061\126\060\124\006\003\125\004\012\014\115\050\143\051 +\040\062\060\060\065\040\124\303\234\122\113\124\122\125\123\124 +\040\102\151\154\147\151\040\304\260\154\145\164\151\305\237\151 +\155\040\166\145\040\102\151\154\151\305\237\151\155\040\107\303 +\274\166\145\156\154\151\304\237\151\040\110\151\172\155\145\164 +\154\145\162\151\040\101\056\305\236\056 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\001\001 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "TURKTRUST Certificate Services Provider Root 2" +# +CKA_CLASS CK_OBJECT_CLASS CKO_CERTIFICATE +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "TURKTRUST Certificate Services Provider Root 2" +CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509 +CKA_SUBJECT MULTILINE_OCTAL +\060\201\276\061\077\060\075\006\003\125\004\003\014\066\124\303 +\234\122\113\124\122\125\123\124\040\105\154\145\153\164\162\157 +\156\151\153\040\123\145\162\164\151\146\151\153\141\040\110\151 +\172\155\145\164\040\123\141\304\237\154\141\171\304\261\143\304 +\261\163\304\261\061\013\060\011\006\003\125\004\006\023\002\124 +\122\061\017\060\015\006\003\125\004\007\014\006\101\156\153\141 +\162\141\061\135\060\133\006\003\125\004\012\014\124\124\303\234 +\122\113\124\122\125\123\124\040\102\151\154\147\151\040\304\260 +\154\145\164\151\305\237\151\155\040\166\145\040\102\151\154\151 +\305\237\151\155\040\107\303\274\166\145\156\154\151\304\237\151 +\040\110\151\172\155\145\164\154\145\162\151\040\101\056\305\236 +\056\040\050\143\051\040\113\141\163\304\261\155\040\062\060\060 +\065 +END +CKA_ID UTF8 "0" +CKA_ISSUER MULTILINE_OCTAL +\060\201\276\061\077\060\075\006\003\125\004\003\014\066\124\303 +\234\122\113\124\122\125\123\124\040\105\154\145\153\164\162\157 +\156\151\153\040\123\145\162\164\151\146\151\153\141\040\110\151 +\172\155\145\164\040\123\141\304\237\154\141\171\304\261\143\304 +\261\163\304\261\061\013\060\011\006\003\125\004\006\023\002\124 +\122\061\017\060\015\006\003\125\004\007\014\006\101\156\153\141 +\162\141\061\135\060\133\006\003\125\004\012\014\124\124\303\234 +\122\113\124\122\125\123\124\040\102\151\154\147\151\040\304\260 +\154\145\164\151\305\237\151\155\040\166\145\040\102\151\154\151 +\305\237\151\155\040\107\303\274\166\145\156\154\151\304\237\151 +\040\110\151\172\155\145\164\154\145\162\151\040\101\056\305\236 +\056\040\050\143\051\040\113\141\163\304\261\155\040\062\060\060 +\065 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\001\001 +END +CKA_VALUE MULTILINE_OCTAL +\060\202\004\074\060\202\003\044\240\003\002\001\002\002\001\001 +\060\015\006\011\052\206\110\206\367\015\001\001\005\005\000\060 +\201\276\061\077\060\075\006\003\125\004\003\014\066\124\303\234 +\122\113\124\122\125\123\124\040\105\154\145\153\164\162\157\156 +\151\153\040\123\145\162\164\151\146\151\153\141\040\110\151\172 +\155\145\164\040\123\141\304\237\154\141\171\304\261\143\304\261 +\163\304\261\061\013\060\011\006\003\125\004\006\023\002\124\122 +\061\017\060\015\006\003\125\004\007\014\006\101\156\153\141\162 +\141\061\135\060\133\006\003\125\004\012\014\124\124\303\234\122 +\113\124\122\125\123\124\040\102\151\154\147\151\040\304\260\154 +\145\164\151\305\237\151\155\040\166\145\040\102\151\154\151\305 +\237\151\155\040\107\303\274\166\145\156\154\151\304\237\151\040 +\110\151\172\155\145\164\154\145\162\151\040\101\056\305\236\056 +\040\050\143\051\040\113\141\163\304\261\155\040\062\060\060\065 +\060\036\027\015\060\065\061\061\060\067\061\060\060\067\065\067 +\132\027\015\061\065\060\071\061\066\061\060\060\067\065\067\132 +\060\201\276\061\077\060\075\006\003\125\004\003\014\066\124\303 +\234\122\113\124\122\125\123\124\040\105\154\145\153\164\162\157 +\156\151\153\040\123\145\162\164\151\146\151\153\141\040\110\151 +\172\155\145\164\040\123\141\304\237\154\141\171\304\261\143\304 +\261\163\304\261\061\013\060\011\006\003\125\004\006\023\002\124 +\122\061\017\060\015\006\003\125\004\007\014\006\101\156\153\141 +\162\141\061\135\060\133\006\003\125\004\012\014\124\124\303\234 +\122\113\124\122\125\123\124\040\102\151\154\147\151\040\304\260 +\154\145\164\151\305\237\151\155\040\166\145\040\102\151\154\151 +\305\237\151\155\040\107\303\274\166\145\156\154\151\304\237\151 +\040\110\151\172\155\145\164\154\145\162\151\040\101\056\305\236 +\056\040\050\143\051\040\113\141\163\304\261\155\040\062\060\060 +\065\060\202\001\042\060\015\006\011\052\206\110\206\367\015\001 +\001\001\005\000\003\202\001\017\000\060\202\001\012\002\202\001 +\001\000\251\066\176\303\221\103\114\303\031\230\010\310\307\130 +\173\117\026\214\245\316\111\001\037\163\016\254\165\023\246\372 +\236\054\040\336\330\220\016\012\321\151\322\047\373\252\167\237 +\047\122\045\342\313\135\330\330\203\120\027\175\212\265\202\077 +\004\216\264\325\360\111\247\144\267\036\056\137\040\234\120\165 +\117\257\341\265\101\024\364\230\222\210\307\345\345\144\107\141 +\107\171\375\300\121\361\301\231\347\334\316\152\373\257\265\001 +\060\334\106\034\357\212\354\225\357\334\377\257\020\034\353\235 +\330\260\252\152\205\030\015\027\311\076\277\361\233\320\011\211 +\102\375\240\102\264\235\211\121\125\051\317\033\160\274\204\124 +\255\301\023\037\230\364\056\166\140\213\135\077\232\255\312\014 +\277\247\126\133\217\167\270\325\236\171\111\222\077\340\361\227 +\044\172\154\233\027\017\155\357\123\230\221\053\344\017\276\131 +\171\007\170\273\227\225\364\237\151\324\130\207\012\251\343\314 +\266\130\031\237\046\041\261\304\131\215\262\101\165\300\255\151 +\316\234\000\010\362\066\377\076\360\241\017\032\254\024\375\246 +\140\017\002\003\001\000\001\243\103\060\101\060\035\006\003\125 +\035\016\004\026\004\024\331\067\263\116\005\375\331\317\237\022 +\026\256\266\211\057\353\045\072\210\034\060\017\006\003\125\035 +\017\001\001\377\004\005\003\003\007\006\000\060\017\006\003\125 +\035\023\001\001\377\004\005\060\003\001\001\377\060\015\006\011 +\052\206\110\206\367\015\001\001\005\005\000\003\202\001\001\000 +\162\140\226\267\311\334\330\051\136\043\205\137\262\263\055\166 +\373\210\327\027\376\173\155\105\270\366\205\154\237\042\374\052 +\020\042\354\252\271\060\366\253\130\326\071\020\061\231\051\000 +\275\211\146\101\373\164\336\221\301\030\013\237\265\141\313\235 +\072\276\365\250\224\243\042\125\156\027\111\377\322\051\361\070 +\046\135\357\245\252\072\371\161\173\346\332\130\035\323\164\302 +\001\372\076\151\130\137\255\313\150\276\024\056\233\154\300\266 +\334\240\046\372\167\032\342\044\332\032\067\340\147\255\321\163 +\203\015\245\032\035\156\022\222\176\204\142\000\027\275\274\045 +\030\127\362\327\251\157\131\210\274\064\267\056\205\170\235\226 +\334\024\303\054\212\122\233\226\214\122\146\075\206\026\213\107 +\270\121\011\214\352\175\315\210\162\263\140\063\261\360\012\104 +\357\017\365\011\067\210\044\016\054\153\040\072\242\372\021\362 +\100\065\234\104\150\143\073\254\063\157\143\274\054\273\362\322 +\313\166\175\175\210\330\035\310\005\035\156\274\224\251\146\214 +\167\161\307\372\221\372\057\121\236\351\071\122\266\347\004\102 +END + +# Trust for Certificate "TURKTRUST Certificate Services Provider Root 2" +CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "TURKTRUST Certificate Services Provider Root 2" +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\264\065\324\341\021\235\034\146\220\247\111\353\263\224\275\143 +\173\247\202\267 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\067\245\156\324\261\045\204\227\267\375\126\025\172\371\242\000 +END +CKA_ISSUER MULTILINE_OCTAL +\060\201\276\061\077\060\075\006\003\125\004\003\014\066\124\303 +\234\122\113\124\122\125\123\124\040\105\154\145\153\164\162\157 +\156\151\153\040\123\145\162\164\151\146\151\153\141\040\110\151 +\172\155\145\164\040\123\141\304\237\154\141\171\304\261\143\304 +\261\163\304\261\061\013\060\011\006\003\125\004\006\023\002\124 +\122\061\017\060\015\006\003\125\004\007\014\006\101\156\153\141 +\162\141\061\135\060\133\006\003\125\004\012\014\124\124\303\234 +\122\113\124\122\125\123\124\040\102\151\154\147\151\040\304\260 +\154\145\164\151\305\237\151\155\040\166\145\040\102\151\154\151 +\305\237\151\155\040\107\303\274\166\145\156\154\151\304\237\151 +\040\110\151\172\155\145\164\154\145\162\151\040\101\056\305\236 +\056\040\050\143\051\040\113\141\163\304\261\155\040\062\060\060 +\065 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\001\001 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "SwissSign Platinum CA - G2" +# +CKA_CLASS CK_OBJECT_CLASS CKO_CERTIFICATE +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "SwissSign Platinum CA - G2" +CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509 +CKA_SUBJECT MULTILINE_OCTAL +\060\111\061\013\060\011\006\003\125\004\006\023\002\103\110\061 +\025\060\023\006\003\125\004\012\023\014\123\167\151\163\163\123 +\151\147\156\040\101\107\061\043\060\041\006\003\125\004\003\023 +\032\123\167\151\163\163\123\151\147\156\040\120\154\141\164\151 +\156\165\155\040\103\101\040\055\040\107\062 +END +CKA_ID UTF8 "0" +CKA_ISSUER MULTILINE_OCTAL +\060\111\061\013\060\011\006\003\125\004\006\023\002\103\110\061 +\025\060\023\006\003\125\004\012\023\014\123\167\151\163\163\123 +\151\147\156\040\101\107\061\043\060\041\006\003\125\004\003\023 +\032\123\167\151\163\163\123\151\147\156\040\120\154\141\164\151 +\156\165\155\040\103\101\040\055\040\107\062 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\010\116\262\000\147\014\003\135\117 +END +CKA_VALUE MULTILINE_OCTAL +\060\202\005\301\060\202\003\251\240\003\002\001\002\002\010\116 +\262\000\147\014\003\135\117\060\015\006\011\052\206\110\206\367 +\015\001\001\005\005\000\060\111\061\013\060\011\006\003\125\004 +\006\023\002\103\110\061\025\060\023\006\003\125\004\012\023\014 +\123\167\151\163\163\123\151\147\156\040\101\107\061\043\060\041 +\006\003\125\004\003\023\032\123\167\151\163\163\123\151\147\156 +\040\120\154\141\164\151\156\165\155\040\103\101\040\055\040\107 +\062\060\036\027\015\060\066\061\060\062\065\060\070\063\066\060 +\060\132\027\015\063\066\061\060\062\065\060\070\063\066\060\060 +\132\060\111\061\013\060\011\006\003\125\004\006\023\002\103\110 +\061\025\060\023\006\003\125\004\012\023\014\123\167\151\163\163 +\123\151\147\156\040\101\107\061\043\060\041\006\003\125\004\003 +\023\032\123\167\151\163\163\123\151\147\156\040\120\154\141\164 +\151\156\165\155\040\103\101\040\055\040\107\062\060\202\002\042 +\060\015\006\011\052\206\110\206\367\015\001\001\001\005\000\003 +\202\002\017\000\060\202\002\012\002\202\002\001\000\312\337\242 +\002\342\332\370\374\007\026\261\336\140\252\336\226\134\144\037 +\307\057\176\317\147\372\104\102\326\166\143\225\256\353\257\162 +\040\212\105\107\206\142\170\206\326\040\071\046\364\256\243\375 +\043\347\245\234\265\042\041\031\267\067\223\042\300\120\234\202 +\173\324\325\004\104\134\313\264\302\237\222\276\044\330\173\147 +\042\342\151\137\345\005\170\324\207\331\161\160\063\045\123\264 +\207\073\051\220\050\066\232\125\104\060\150\244\203\227\177\015 +\036\234\166\377\025\235\140\227\000\215\212\205\003\354\200\276 +\352\054\156\020\121\222\314\176\325\243\063\330\326\111\336\130 +\052\257\366\026\353\113\173\220\062\227\271\272\235\130\361\370 +\127\111\004\036\242\135\006\160\335\161\333\371\335\213\232\033 +\214\317\075\243\115\316\313\174\366\273\234\240\372\011\316\043 +\142\262\351\015\037\342\162\050\217\237\254\150\040\175\157\073 +\250\205\061\011\177\013\307\350\145\351\343\170\016\011\147\060 +\213\064\202\373\135\340\314\235\201\155\142\356\010\036\004\054 +\116\233\354\376\251\117\137\375\151\170\357\011\037\241\264\277 +\372\363\357\220\036\114\005\213\036\352\172\221\172\303\327\345 +\373\060\274\154\033\020\130\230\367\032\137\320\051\062\003\023 +\106\115\141\152\205\114\122\164\057\006\037\173\021\342\204\227 +\306\231\363\155\177\327\147\203\176\023\150\330\161\050\132\330 +\316\335\350\020\024\232\376\155\043\207\156\216\132\160\074\325 +\215\011\000\247\252\274\260\061\067\155\310\204\024\036\133\275 +\105\143\040\153\113\164\214\275\333\072\016\301\317\132\026\217 +\245\230\362\166\211\262\023\022\073\013\167\167\254\273\345\074 +\051\112\222\162\312\141\032\053\136\114\342\203\164\167\372\065 +\110\172\205\115\215\232\123\304\337\170\312\227\221\110\053\105 +\053\001\367\034\032\242\355\030\272\012\275\203\372\157\274\215 +\127\223\073\324\324\246\316\036\361\240\261\316\253\375\053\050 +\232\117\033\327\303\162\333\244\304\277\135\114\365\335\173\226 +\151\356\150\200\346\347\230\272\066\267\376\156\355\053\275\040 +\370\145\031\332\125\011\176\045\334\376\141\142\162\371\176\030 +\002\357\143\264\320\373\257\345\073\143\214\147\217\002\003\001 +\000\001\243\201\254\060\201\251\060\016\006\003\125\035\017\001 +\001\377\004\004\003\002\001\006\060\017\006\003\125\035\023\001 +\001\377\004\005\060\003\001\001\377\060\035\006\003\125\035\016 +\004\026\004\024\120\257\314\007\207\025\107\157\070\305\264\145 +\321\336\225\252\351\337\234\314\060\037\006\003\125\035\043\004 +\030\060\026\200\024\120\257\314\007\207\025\107\157\070\305\264 +\145\321\336\225\252\351\337\234\314\060\106\006\003\125\035\040 +\004\077\060\075\060\073\006\011\140\205\164\001\131\001\001\001 +\001\060\056\060\054\006\010\053\006\001\005\005\007\002\001\026 +\040\150\164\164\160\072\057\057\162\145\160\157\163\151\164\157 +\162\171\056\163\167\151\163\163\163\151\147\156\056\143\157\155 +\057\060\015\006\011\052\206\110\206\367\015\001\001\005\005\000 +\003\202\002\001\000\010\205\246\365\026\014\374\104\032\301\143 +\340\371\125\106\010\374\160\034\102\050\226\216\267\305\301\101 +\165\116\011\161\171\345\155\226\312\113\245\210\140\320\060\164 +\270\312\010\334\264\060\236\100\007\026\153\145\225\167\001\256 +\244\267\065\013\201\332\161\025\251\164\027\070\173\130\312\371 +\057\373\300\145\166\215\133\001\271\175\336\202\075\144\270\276 +\024\164\243\012\124\323\054\225\030\027\065\365\121\153\077\217 +\242\226\141\071\170\153\113\345\246\240\370\123\337\121\020\223 +\142\347\200\057\342\321\340\274\216\066\106\167\063\354\270\373 +\216\232\054\211\115\061\021\017\046\236\004\273\267\004\215\013 +\362\271\374\132\235\073\026\267\057\310\230\253\376\212\120\131 +\056\243\073\374\051\135\213\301\113\311\342\212\023\035\261\277 +\273\102\035\122\335\116\330\024\136\020\306\061\007\357\161\047 +\367\033\071\011\334\202\352\213\263\225\206\136\375\365\332\135 +\061\246\340\061\266\224\346\104\111\164\305\026\345\367\037\003 +\141\050\305\310\313\022\240\102\113\371\153\210\010\215\264\062 +\030\363\165\237\304\177\000\117\005\225\234\243\027\002\303\263 +\123\233\252\040\071\051\053\146\372\235\257\136\263\222\322\265 +\246\341\032\371\055\101\151\201\024\264\264\265\355\211\075\316 +\373\251\235\065\102\104\261\034\024\163\201\317\052\001\065\232 +\061\325\055\217\155\204\337\200\115\127\343\077\305\204\165\332 +\211\306\060\273\353\217\313\042\010\240\256\252\361\003\154\072 +\113\115\011\245\016\162\306\126\153\041\102\116\043\045\024\150 +\256\166\012\174\014\007\160\144\371\232\057\366\005\071\046\306 +\014\217\031\177\103\136\156\364\133\025\057\333\141\135\346\147 +\057\077\010\224\371\140\264\230\061\332\164\361\204\223\161\115 +\137\373\140\130\321\373\304\301\155\211\242\273\040\037\235\161 +\221\313\062\233\023\075\076\175\222\122\065\254\222\224\242\323 +\030\302\174\307\352\257\166\005\026\335\147\047\302\176\034\007 +\042\041\363\100\012\033\064\007\104\023\302\204\152\216\337\031 +\132\277\177\353\035\342\032\070\321\134\257\107\222\153\200\265 +\060\245\311\215\330\253\061\201\037\337\302\146\067\323\223\251 +\205\206\171\145\322 +END + +# Trust for Certificate "SwissSign Platinum CA - G2" +CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "SwissSign Platinum CA - G2" +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\126\340\372\300\073\217\030\043\125\030\345\323\021\312\350\302 +\103\061\253\146 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\311\230\047\167\050\036\075\016\025\074\204\000\270\205\003\346 +END +CKA_ISSUER MULTILINE_OCTAL +\060\111\061\013\060\011\006\003\125\004\006\023\002\103\110\061 +\025\060\023\006\003\125\004\012\023\014\123\167\151\163\163\123 +\151\147\156\040\101\107\061\043\060\041\006\003\125\004\003\023 +\032\123\167\151\163\163\123\151\147\156\040\120\154\141\164\151 +\156\165\155\040\103\101\040\055\040\107\062 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\010\116\262\000\147\014\003\135\117 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_TRUST_UNKNOWN +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "SwissSign Gold CA - G2" +# +CKA_CLASS CK_OBJECT_CLASS CKO_CERTIFICATE +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "SwissSign Gold CA - G2" +CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509 +CKA_SUBJECT MULTILINE_OCTAL +\060\105\061\013\060\011\006\003\125\004\006\023\002\103\110\061 +\025\060\023\006\003\125\004\012\023\014\123\167\151\163\163\123 +\151\147\156\040\101\107\061\037\060\035\006\003\125\004\003\023 +\026\123\167\151\163\163\123\151\147\156\040\107\157\154\144\040 +\103\101\040\055\040\107\062 +END +CKA_ID UTF8 "0" +CKA_ISSUER MULTILINE_OCTAL +\060\105\061\013\060\011\006\003\125\004\006\023\002\103\110\061 +\025\060\023\006\003\125\004\012\023\014\123\167\151\163\163\123 +\151\147\156\040\101\107\061\037\060\035\006\003\125\004\003\023 +\026\123\167\151\163\163\123\151\147\156\040\107\157\154\144\040 +\103\101\040\055\040\107\062 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\011\000\273\100\034\103\365\136\117\260 +END +CKA_VALUE MULTILINE_OCTAL +\060\202\005\272\060\202\003\242\240\003\002\001\002\002\011\000 +\273\100\034\103\365\136\117\260\060\015\006\011\052\206\110\206 +\367\015\001\001\005\005\000\060\105\061\013\060\011\006\003\125 +\004\006\023\002\103\110\061\025\060\023\006\003\125\004\012\023 +\014\123\167\151\163\163\123\151\147\156\040\101\107\061\037\060 +\035\006\003\125\004\003\023\026\123\167\151\163\163\123\151\147 +\156\040\107\157\154\144\040\103\101\040\055\040\107\062\060\036 +\027\015\060\066\061\060\062\065\060\070\063\060\063\065\132\027 +\015\063\066\061\060\062\065\060\070\063\060\063\065\132\060\105 +\061\013\060\011\006\003\125\004\006\023\002\103\110\061\025\060 +\023\006\003\125\004\012\023\014\123\167\151\163\163\123\151\147 +\156\040\101\107\061\037\060\035\006\003\125\004\003\023\026\123 +\167\151\163\163\123\151\147\156\040\107\157\154\144\040\103\101 +\040\055\040\107\062\060\202\002\042\060\015\006\011\052\206\110 +\206\367\015\001\001\001\005\000\003\202\002\017\000\060\202\002 +\012\002\202\002\001\000\257\344\356\176\213\044\016\022\156\251 +\120\055\026\104\073\222\222\134\312\270\135\204\222\102\023\052 +\274\145\127\202\100\076\127\044\315\120\213\045\052\267\157\374 +\357\242\320\300\037\002\044\112\023\226\217\043\023\346\050\130 +\000\243\107\307\006\247\204\043\053\273\275\226\053\177\125\314 +\213\301\127\037\016\142\145\017\335\075\126\212\163\332\256\176 +\155\272\201\034\176\102\214\040\065\331\103\115\204\372\204\333 +\122\054\363\016\047\167\013\153\277\021\057\162\170\237\056\330 +\076\346\030\067\132\052\162\371\332\142\220\222\225\312\037\234 +\351\263\074\053\313\363\001\023\277\132\317\301\265\012\140\275 +\335\265\231\144\123\270\240\226\263\157\342\046\167\221\214\340 +\142\020\002\237\064\017\244\325\222\063\121\336\276\215\272\204 +\172\140\074\152\333\237\053\354\336\336\001\077\156\115\345\120 +\206\313\264\257\355\104\100\305\312\132\214\332\322\053\174\250 +\356\276\246\345\012\252\016\245\337\005\122\267\125\307\042\135 +\062\152\227\227\143\023\333\311\333\171\066\173\205\072\112\305 +\122\211\371\044\347\235\167\251\202\377\125\034\245\161\151\053 +\321\002\044\362\263\046\324\153\332\004\125\345\301\012\307\155 +\060\067\220\052\344\236\024\063\136\026\027\125\305\133\265\313 +\064\211\222\361\235\046\217\241\007\324\306\262\170\120\333\014 +\014\013\174\013\214\101\327\271\351\335\214\210\367\243\115\262 +\062\314\330\027\332\315\267\316\146\235\324\375\136\377\275\227 +\076\051\165\347\176\247\142\130\257\045\064\245\101\307\075\274 +\015\120\312\003\003\017\010\132\037\225\163\170\142\277\257\162 +\024\151\016\245\345\003\016\170\216\046\050\102\360\007\013\142 +\040\020\147\071\106\372\251\003\314\004\070\172\146\357\040\203 +\265\214\112\126\216\221\000\374\216\134\202\336\210\240\303\342 +\150\156\175\215\357\074\335\145\364\135\254\121\357\044\200\256 +\252\126\227\157\371\255\175\332\141\077\230\167\074\245\221\266 +\034\214\046\332\145\242\011\155\301\342\124\343\271\312\114\114 +\200\217\167\173\140\232\036\337\266\362\110\036\016\272\116\124 +\155\230\340\341\242\032\242\167\120\317\304\143\222\354\107\031 +\235\353\346\153\316\301\002\003\001\000\001\243\201\254\060\201 +\251\060\016\006\003\125\035\017\001\001\377\004\004\003\002\001 +\006\060\017\006\003\125\035\023\001\001\377\004\005\060\003\001 +\001\377\060\035\006\003\125\035\016\004\026\004\024\133\045\173 +\226\244\145\121\176\270\071\363\300\170\146\136\350\072\347\360 +\356\060\037\006\003\125\035\043\004\030\060\026\200\024\133\045 +\173\226\244\145\121\176\270\071\363\300\170\146\136\350\072\347 +\360\356\060\106\006\003\125\035\040\004\077\060\075\060\073\006 +\011\140\205\164\001\131\001\002\001\001\060\056\060\054\006\010 +\053\006\001\005\005\007\002\001\026\040\150\164\164\160\072\057 +\057\162\145\160\157\163\151\164\157\162\171\056\163\167\151\163 +\163\163\151\147\156\056\143\157\155\057\060\015\006\011\052\206 +\110\206\367\015\001\001\005\005\000\003\202\002\001\000\047\272 +\343\224\174\361\256\300\336\027\346\345\330\325\365\124\260\203 +\364\273\315\136\005\173\117\237\165\146\257\074\350\126\176\374 +\162\170\070\003\331\053\142\033\000\271\370\351\140\315\314\316 +\121\212\307\120\061\156\341\112\176\030\057\151\131\266\075\144 +\201\053\343\203\204\346\042\207\216\175\340\356\002\231\141\270 +\036\364\270\053\210\022\026\204\302\061\223\070\226\061\246\271 +\073\123\077\303\044\223\126\133\151\222\354\305\301\273\070\000 +\343\354\027\251\270\334\307\174\001\203\237\062\107\272\122\042 +\064\035\062\172\011\126\247\174\045\066\251\075\113\332\300\202 +\157\012\273\022\310\207\113\047\021\371\036\055\307\223\077\236 +\333\137\046\153\122\331\056\212\361\024\306\104\215\025\251\267 +\277\275\336\246\032\356\256\055\373\110\167\027\376\273\354\257 +\030\365\052\121\360\071\204\227\225\154\156\033\303\053\304\164 +\140\171\045\260\012\047\337\337\136\322\071\317\105\175\102\113 +\337\263\054\036\305\306\135\312\125\072\240\234\151\232\217\332 +\357\262\260\074\237\207\154\022\053\145\160\025\122\061\032\044 +\317\157\061\043\120\037\214\117\217\043\303\164\101\143\034\125 +\250\024\335\076\340\121\120\317\361\033\060\126\016\222\260\202 +\205\330\203\313\042\144\274\055\270\045\325\124\242\270\006\352 +\255\222\244\044\240\301\206\265\112\023\152\107\317\056\013\126 +\225\124\313\316\232\333\152\264\246\262\333\101\010\206\047\167 +\367\152\240\102\154\013\070\316\327\165\120\062\222\302\337\053 +\060\042\110\320\325\101\070\045\135\244\351\135\237\306\224\165 +\320\105\375\060\227\103\217\220\253\012\307\206\163\140\112\151 +\055\336\245\170\327\006\332\152\236\113\076\167\072\040\023\042 +\001\320\277\150\236\143\140\153\065\115\013\155\272\241\075\300 +\223\340\177\043\263\125\255\162\045\116\106\371\322\026\357\260 +\144\301\001\236\351\312\240\152\230\016\317\330\140\362\057\111 +\270\344\102\341\070\065\026\364\310\156\117\367\201\126\350\272 +\243\276\043\257\256\375\157\003\340\002\073\060\166\372\033\155 +\101\317\001\261\351\270\311\146\364\333\046\363\072\244\164\362 +\111\044\133\311\260\320\127\301\372\076\172\341\227\311 +END + +# Trust for Certificate "SwissSign Gold CA - G2" +CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "SwissSign Gold CA - G2" +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\330\305\070\212\267\060\033\033\156\324\172\346\105\045\072\157 +\237\032\047\141 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\044\167\331\250\221\321\073\372\210\055\302\377\370\315\063\223 +END +CKA_ISSUER MULTILINE_OCTAL +\060\105\061\013\060\011\006\003\125\004\006\023\002\103\110\061 +\025\060\023\006\003\125\004\012\023\014\123\167\151\163\163\123 +\151\147\156\040\101\107\061\037\060\035\006\003\125\004\003\023 +\026\123\167\151\163\163\123\151\147\156\040\107\157\154\144\040 +\103\101\040\055\040\107\062 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\011\000\273\100\034\103\365\136\117\260 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "SwissSign Silver CA - G2" +# +CKA_CLASS CK_OBJECT_CLASS CKO_CERTIFICATE +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "SwissSign Silver CA - G2" +CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509 +CKA_SUBJECT MULTILINE_OCTAL +\060\107\061\013\060\011\006\003\125\004\006\023\002\103\110\061 +\025\060\023\006\003\125\004\012\023\014\123\167\151\163\163\123 +\151\147\156\040\101\107\061\041\060\037\006\003\125\004\003\023 +\030\123\167\151\163\163\123\151\147\156\040\123\151\154\166\145 +\162\040\103\101\040\055\040\107\062 +END +CKA_ID UTF8 "0" +CKA_ISSUER MULTILINE_OCTAL +\060\107\061\013\060\011\006\003\125\004\006\023\002\103\110\061 +\025\060\023\006\003\125\004\012\023\014\123\167\151\163\163\123 +\151\147\156\040\101\107\061\041\060\037\006\003\125\004\003\023 +\030\123\167\151\163\163\123\151\147\156\040\123\151\154\166\145 +\162\040\103\101\040\055\040\107\062 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\010\117\033\324\057\124\273\057\113 +END +CKA_VALUE MULTILINE_OCTAL +\060\202\005\275\060\202\003\245\240\003\002\001\002\002\010\117 +\033\324\057\124\273\057\113\060\015\006\011\052\206\110\206\367 +\015\001\001\005\005\000\060\107\061\013\060\011\006\003\125\004 +\006\023\002\103\110\061\025\060\023\006\003\125\004\012\023\014 +\123\167\151\163\163\123\151\147\156\040\101\107\061\041\060\037 +\006\003\125\004\003\023\030\123\167\151\163\163\123\151\147\156 +\040\123\151\154\166\145\162\040\103\101\040\055\040\107\062\060 +\036\027\015\060\066\061\060\062\065\060\070\063\062\064\066\132 +\027\015\063\066\061\060\062\065\060\070\063\062\064\066\132\060 +\107\061\013\060\011\006\003\125\004\006\023\002\103\110\061\025 +\060\023\006\003\125\004\012\023\014\123\167\151\163\163\123\151 +\147\156\040\101\107\061\041\060\037\006\003\125\004\003\023\030 +\123\167\151\163\163\123\151\147\156\040\123\151\154\166\145\162 +\040\103\101\040\055\040\107\062\060\202\002\042\060\015\006\011 +\052\206\110\206\367\015\001\001\001\005\000\003\202\002\017\000 +\060\202\002\012\002\202\002\001\000\304\361\207\177\323\170\061 +\367\070\311\370\303\231\103\274\307\367\274\067\347\116\161\272 +\113\217\245\163\035\134\156\230\256\003\127\256\070\067\103\057 +\027\075\037\310\316\150\020\301\170\256\031\003\053\020\372\054 +\171\203\366\350\271\150\271\125\362\004\104\247\071\371\374\004 +\213\036\361\242\115\047\371\141\173\272\267\345\242\023\266\353 +\141\076\320\154\321\346\373\372\136\355\035\264\236\240\065\133 +\241\222\313\360\111\222\376\205\012\005\076\346\331\013\342\117 +\273\334\225\067\374\221\351\062\065\042\321\037\072\116\047\205 +\235\260\025\224\062\332\141\015\107\115\140\102\256\222\107\350 +\203\132\120\130\351\212\213\271\135\241\334\335\231\112\037\066 +\147\273\110\344\203\266\067\353\110\072\257\017\147\217\027\007 +\350\004\312\357\152\061\207\324\300\266\371\224\161\173\147\144 +\270\266\221\112\102\173\145\056\060\152\014\365\220\356\225\346 +\362\315\202\354\331\241\112\354\366\262\113\345\105\205\346\155 +\170\223\004\056\234\202\155\066\251\304\061\144\037\206\203\013 +\052\364\065\012\170\311\125\317\101\260\107\351\060\237\231\276 +\141\250\006\204\271\050\172\137\070\331\033\251\070\260\203\177 +\163\301\303\073\110\052\202\017\041\233\270\314\250\065\303\204 +\033\203\263\076\276\244\225\151\001\072\211\000\170\004\331\311 +\364\231\031\253\126\176\133\213\206\071\025\221\244\020\054\011 +\062\200\140\263\223\300\052\266\030\013\235\176\215\111\362\020 +\112\177\371\325\106\057\031\222\243\231\247\046\254\273\214\074 +\346\016\274\107\007\334\163\121\361\160\144\057\010\371\264\107 +\035\060\154\104\352\051\067\205\222\150\146\274\203\070\376\173 +\071\056\323\120\360\037\373\136\140\266\251\246\372\047\101\361 +\233\030\162\362\365\204\164\112\311\147\304\124\256\110\144\337 +\214\321\156\260\035\341\007\217\010\036\231\234\161\351\114\330 +\245\367\107\022\037\164\321\121\236\206\363\302\242\043\100\013 +\163\333\113\246\347\163\006\214\301\240\351\301\131\254\106\372 +\346\057\370\317\161\234\106\155\271\304\025\215\070\171\003\105 +\110\357\304\135\327\010\356\207\071\042\206\262\015\017\130\103 +\367\161\251\110\056\375\352\326\037\002\003\001\000\001\243\201 +\254\060\201\251\060\016\006\003\125\035\017\001\001\377\004\004 +\003\002\001\006\060\017\006\003\125\035\023\001\001\377\004\005 +\060\003\001\001\377\060\035\006\003\125\035\016\004\026\004\024 +\027\240\315\301\344\101\266\072\133\073\313\105\235\275\034\302 +\230\372\206\130\060\037\006\003\125\035\043\004\030\060\026\200 +\024\027\240\315\301\344\101\266\072\133\073\313\105\235\275\034 +\302\230\372\206\130\060\106\006\003\125\035\040\004\077\060\075 +\060\073\006\011\140\205\164\001\131\001\003\001\001\060\056\060 +\054\006\010\053\006\001\005\005\007\002\001\026\040\150\164\164 +\160\072\057\057\162\145\160\157\163\151\164\157\162\171\056\163 +\167\151\163\163\163\151\147\156\056\143\157\155\057\060\015\006 +\011\052\206\110\206\367\015\001\001\005\005\000\003\202\002\001 +\000\163\306\201\340\047\322\055\017\340\225\060\342\232\101\177 +\120\054\137\137\142\141\251\206\152\151\030\014\164\111\326\135 +\204\352\101\122\030\157\130\255\120\126\040\152\306\275\050\151 +\130\221\334\221\021\065\251\072\035\274\032\245\140\236\330\037 +\177\105\221\151\331\176\273\170\162\301\006\017\052\316\217\205 +\160\141\254\240\315\013\270\071\051\126\204\062\116\206\273\075 +\304\052\331\327\037\162\356\376\121\241\042\101\261\161\002\143 +\032\202\260\142\253\136\127\022\037\337\313\335\165\240\300\135 +\171\220\214\033\340\120\346\336\061\376\230\173\160\137\245\220 +\330\255\370\002\266\157\323\140\335\100\113\042\305\075\255\072 +\172\237\032\032\107\221\171\063\272\202\334\062\151\003\226\156 +\037\113\360\161\376\343\147\162\240\261\277\134\213\344\372\231 +\042\307\204\271\033\215\043\227\077\355\045\340\317\145\273\365 +\141\004\357\335\036\262\132\101\042\132\241\237\135\054\350\133 +\311\155\251\014\014\170\252\140\306\126\217\001\132\014\150\274 +\151\031\171\304\037\176\227\005\277\305\351\044\121\136\324\325 +\113\123\355\331\043\132\066\003\145\243\301\003\255\101\060\363 +\106\033\205\220\257\145\265\325\261\344\026\133\170\165\035\227 +\172\155\131\251\052\217\173\336\303\207\211\020\231\111\163\170 +\310\075\275\121\065\164\052\325\361\176\151\033\052\273\073\275 +\045\270\232\132\075\162\141\220\146\207\356\014\326\115\324\021 +\164\013\152\376\013\003\374\243\125\127\211\376\112\313\256\133 +\027\005\310\362\215\043\061\123\070\322\055\152\077\202\271\215 +\010\152\367\136\101\164\156\303\021\176\007\254\051\140\221\077 +\070\312\127\020\015\275\060\057\307\245\346\101\240\332\256\005 +\207\232\240\244\145\154\114\011\014\211\272\270\323\271\300\223 +\212\060\372\215\345\232\153\025\001\116\147\252\332\142\126\076 +\204\010\146\322\304\066\175\247\076\020\374\210\340\324\200\345 +\000\275\252\363\116\006\243\172\152\371\142\162\343\011\117\353 +\233\016\001\043\361\237\273\174\334\334\154\021\227\045\262\362 +\264\143\024\322\006\052\147\214\203\365\316\352\007\330\232\152 +\036\354\344\012\273\052\114\353\011\140\071\316\312\142\330\056 +\156 +END + +# Trust for Certificate "SwissSign Silver CA - G2" +CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "SwissSign Silver CA - G2" +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\233\252\345\237\126\356\041\313\103\132\276\045\223\337\247\360 +\100\321\035\313 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\340\006\241\311\175\317\311\374\015\300\126\165\226\330\142\023 +END +CKA_ISSUER MULTILINE_OCTAL +\060\107\061\013\060\011\006\003\125\004\006\023\002\103\110\061 +\025\060\023\006\003\125\004\012\023\014\123\167\151\163\163\123 +\151\147\156\040\101\107\061\041\060\037\006\003\125\004\003\023 +\030\123\167\151\163\163\123\151\147\156\040\123\151\154\166\145 +\162\040\103\101\040\055\040\107\062 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\010\117\033\324\057\124\273\057\113 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "GeoTrust Primary Certification Authority" +# +CKA_CLASS CK_OBJECT_CLASS CKO_CERTIFICATE +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "GeoTrust Primary Certification Authority" +CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509 +CKA_SUBJECT MULTILINE_OCTAL +\060\130\061\013\060\011\006\003\125\004\006\023\002\125\123\061 +\026\060\024\006\003\125\004\012\023\015\107\145\157\124\162\165 +\163\164\040\111\156\143\056\061\061\060\057\006\003\125\004\003 +\023\050\107\145\157\124\162\165\163\164\040\120\162\151\155\141 +\162\171\040\103\145\162\164\151\146\151\143\141\164\151\157\156 +\040\101\165\164\150\157\162\151\164\171 +END +CKA_ID UTF8 "0" +CKA_ISSUER MULTILINE_OCTAL +\060\130\061\013\060\011\006\003\125\004\006\023\002\125\123\061 +\026\060\024\006\003\125\004\012\023\015\107\145\157\124\162\165 +\163\164\040\111\156\143\056\061\061\060\057\006\003\125\004\003 +\023\050\107\145\157\124\162\165\163\164\040\120\162\151\155\141 +\162\171\040\103\145\162\164\151\146\151\143\141\164\151\157\156 +\040\101\165\164\150\157\162\151\164\171 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\020\030\254\265\152\375\151\266\025\072\143\154\257\332\372 +\304\241 +END +CKA_VALUE MULTILINE_OCTAL +\060\202\003\174\060\202\002\144\240\003\002\001\002\002\020\030 +\254\265\152\375\151\266\025\072\143\154\257\332\372\304\241\060 +\015\006\011\052\206\110\206\367\015\001\001\005\005\000\060\130 +\061\013\060\011\006\003\125\004\006\023\002\125\123\061\026\060 +\024\006\003\125\004\012\023\015\107\145\157\124\162\165\163\164 +\040\111\156\143\056\061\061\060\057\006\003\125\004\003\023\050 +\107\145\157\124\162\165\163\164\040\120\162\151\155\141\162\171 +\040\103\145\162\164\151\146\151\143\141\164\151\157\156\040\101 +\165\164\150\157\162\151\164\171\060\036\027\015\060\066\061\061 +\062\067\060\060\060\060\060\060\132\027\015\063\066\060\067\061 +\066\062\063\065\071\065\071\132\060\130\061\013\060\011\006\003 +\125\004\006\023\002\125\123\061\026\060\024\006\003\125\004\012 +\023\015\107\145\157\124\162\165\163\164\040\111\156\143\056\061 +\061\060\057\006\003\125\004\003\023\050\107\145\157\124\162\165 +\163\164\040\120\162\151\155\141\162\171\040\103\145\162\164\151 +\146\151\143\141\164\151\157\156\040\101\165\164\150\157\162\151 +\164\171\060\202\001\042\060\015\006\011\052\206\110\206\367\015 +\001\001\001\005\000\003\202\001\017\000\060\202\001\012\002\202 +\001\001\000\276\270\025\173\377\324\174\175\147\255\203\144\173 +\310\102\123\055\337\366\204\010\040\141\326\001\131\152\234\104 +\021\257\357\166\375\225\176\316\141\060\273\172\203\137\002\275 +\001\146\312\356\025\215\157\241\060\234\275\241\205\236\224\072 +\363\126\210\000\061\317\330\356\152\226\002\331\355\003\214\373 +\165\155\347\352\270\125\026\005\026\232\364\340\136\261\210\300 +\144\205\134\025\115\210\307\267\272\340\165\351\255\005\075\235 +\307\211\110\340\273\050\310\003\341\060\223\144\136\122\300\131 +\160\042\065\127\210\212\361\225\012\203\327\274\061\163\001\064 +\355\357\106\161\340\153\002\250\065\162\153\227\233\146\340\313 +\034\171\137\330\032\004\150\036\107\002\346\235\140\342\066\227 +\001\337\316\065\222\337\276\147\307\155\167\131\073\217\235\326 +\220\025\224\274\102\064\020\301\071\371\261\047\076\176\326\212 +\165\305\262\257\226\323\242\336\233\344\230\276\175\341\351\201 +\255\266\157\374\327\016\332\340\064\260\015\032\167\347\343\010 +\230\357\130\372\234\204\267\066\257\302\337\254\322\364\020\006 +\160\161\065\002\003\001\000\001\243\102\060\100\060\017\006\003 +\125\035\023\001\001\377\004\005\060\003\001\001\377\060\016\006 +\003\125\035\017\001\001\377\004\004\003\002\001\006\060\035\006 +\003\125\035\016\004\026\004\024\054\325\120\101\227\025\213\360 +\217\066\141\133\112\373\153\331\231\311\063\222\060\015\006\011 +\052\206\110\206\367\015\001\001\005\005\000\003\202\001\001\000 +\132\160\177\054\335\267\064\117\365\206\121\251\046\276\113\270 +\252\361\161\015\334\141\307\240\352\064\036\172\167\017\004\065 +\350\047\217\154\220\277\221\026\044\106\076\112\116\316\053\026 +\325\013\122\035\374\037\147\242\002\105\061\117\316\363\372\003 +\247\171\235\123\152\331\332\143\072\370\200\327\323\231\341\245 +\341\276\324\125\161\230\065\072\276\223\352\256\255\102\262\220 +\157\340\374\041\115\065\143\063\211\111\326\233\116\312\307\347 +\116\011\000\367\332\307\357\231\142\231\167\266\225\042\136\212 +\240\253\364\270\170\230\312\070\031\231\311\162\236\170\315\113 +\254\257\031\240\163\022\055\374\302\101\272\201\221\332\026\132 +\061\267\371\264\161\200\022\110\231\162\163\132\131\123\301\143 +\122\063\355\247\311\322\071\002\160\372\340\261\102\146\051\252 +\233\121\355\060\124\042\024\137\331\253\035\301\344\224\360\370 +\365\053\367\352\312\170\106\326\270\221\375\246\015\053\032\024 +\001\076\200\360\102\240\225\007\136\155\315\314\113\244\105\215 +\253\022\350\263\336\132\345\240\174\350\017\042\035\132\351\131 +END + +# Trust for Certificate "GeoTrust Primary Certification Authority" +CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "GeoTrust Primary Certification Authority" +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\062\074\021\216\033\367\270\266\122\124\342\342\020\015\326\002 +\220\067\360\226 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\002\046\303\001\136\010\060\067\103\251\320\175\317\067\346\277 +END +CKA_ISSUER MULTILINE_OCTAL +\060\130\061\013\060\011\006\003\125\004\006\023\002\125\123\061 +\026\060\024\006\003\125\004\012\023\015\107\145\157\124\162\165 +\163\164\040\111\156\143\056\061\061\060\057\006\003\125\004\003 +\023\050\107\145\157\124\162\165\163\164\040\120\162\151\155\141 +\162\171\040\103\145\162\164\151\146\151\143\141\164\151\157\156 +\040\101\165\164\150\157\162\151\164\171 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\020\030\254\265\152\375\151\266\025\072\143\154\257\332\372 +\304\241 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_TRUST_UNKNOWN +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_TRUST_UNKNOWN +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "thawte Primary Root CA" +# +CKA_CLASS CK_OBJECT_CLASS CKO_CERTIFICATE +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "thawte Primary Root CA" +CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509 +CKA_SUBJECT MULTILINE_OCTAL +\060\201\251\061\013\060\011\006\003\125\004\006\023\002\125\123 +\061\025\060\023\006\003\125\004\012\023\014\164\150\141\167\164 +\145\054\040\111\156\143\056\061\050\060\046\006\003\125\004\013 +\023\037\103\145\162\164\151\146\151\143\141\164\151\157\156\040 +\123\145\162\166\151\143\145\163\040\104\151\166\151\163\151\157 +\156\061\070\060\066\006\003\125\004\013\023\057\050\143\051\040 +\062\060\060\066\040\164\150\141\167\164\145\054\040\111\156\143 +\056\040\055\040\106\157\162\040\141\165\164\150\157\162\151\172 +\145\144\040\165\163\145\040\157\156\154\171\061\037\060\035\006 +\003\125\004\003\023\026\164\150\141\167\164\145\040\120\162\151 +\155\141\162\171\040\122\157\157\164\040\103\101 +END +CKA_ID UTF8 "0" +CKA_ISSUER MULTILINE_OCTAL +\060\201\251\061\013\060\011\006\003\125\004\006\023\002\125\123 +\061\025\060\023\006\003\125\004\012\023\014\164\150\141\167\164 +\145\054\040\111\156\143\056\061\050\060\046\006\003\125\004\013 +\023\037\103\145\162\164\151\146\151\143\141\164\151\157\156\040 +\123\145\162\166\151\143\145\163\040\104\151\166\151\163\151\157 +\156\061\070\060\066\006\003\125\004\013\023\057\050\143\051\040 +\062\060\060\066\040\164\150\141\167\164\145\054\040\111\156\143 +\056\040\055\040\106\157\162\040\141\165\164\150\157\162\151\172 +\145\144\040\165\163\145\040\157\156\154\171\061\037\060\035\006 +\003\125\004\003\023\026\164\150\141\167\164\145\040\120\162\151 +\155\141\162\171\040\122\157\157\164\040\103\101 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\020\064\116\325\127\040\325\355\354\111\364\057\316\067\333 +\053\155 +END +CKA_VALUE MULTILINE_OCTAL +\060\202\004\040\060\202\003\010\240\003\002\001\002\002\020\064 +\116\325\127\040\325\355\354\111\364\057\316\067\333\053\155\060 +\015\006\011\052\206\110\206\367\015\001\001\005\005\000\060\201 +\251\061\013\060\011\006\003\125\004\006\023\002\125\123\061\025 +\060\023\006\003\125\004\012\023\014\164\150\141\167\164\145\054 +\040\111\156\143\056\061\050\060\046\006\003\125\004\013\023\037 +\103\145\162\164\151\146\151\143\141\164\151\157\156\040\123\145 +\162\166\151\143\145\163\040\104\151\166\151\163\151\157\156\061 +\070\060\066\006\003\125\004\013\023\057\050\143\051\040\062\060 +\060\066\040\164\150\141\167\164\145\054\040\111\156\143\056\040 +\055\040\106\157\162\040\141\165\164\150\157\162\151\172\145\144 +\040\165\163\145\040\157\156\154\171\061\037\060\035\006\003\125 +\004\003\023\026\164\150\141\167\164\145\040\120\162\151\155\141 +\162\171\040\122\157\157\164\040\103\101\060\036\027\015\060\066 +\061\061\061\067\060\060\060\060\060\060\132\027\015\063\066\060 +\067\061\066\062\063\065\071\065\071\132\060\201\251\061\013\060 +\011\006\003\125\004\006\023\002\125\123\061\025\060\023\006\003 +\125\004\012\023\014\164\150\141\167\164\145\054\040\111\156\143 +\056\061\050\060\046\006\003\125\004\013\023\037\103\145\162\164 +\151\146\151\143\141\164\151\157\156\040\123\145\162\166\151\143 +\145\163\040\104\151\166\151\163\151\157\156\061\070\060\066\006 +\003\125\004\013\023\057\050\143\051\040\062\060\060\066\040\164 +\150\141\167\164\145\054\040\111\156\143\056\040\055\040\106\157 +\162\040\141\165\164\150\157\162\151\172\145\144\040\165\163\145 +\040\157\156\154\171\061\037\060\035\006\003\125\004\003\023\026 +\164\150\141\167\164\145\040\120\162\151\155\141\162\171\040\122 +\157\157\164\040\103\101\060\202\001\042\060\015\006\011\052\206 +\110\206\367\015\001\001\001\005\000\003\202\001\017\000\060\202 +\001\012\002\202\001\001\000\254\240\360\373\200\131\324\234\307 +\244\317\235\241\131\163\011\020\105\014\015\054\156\150\361\154 +\133\110\150\111\131\067\374\013\063\031\302\167\177\314\020\055 +\225\064\034\346\353\115\011\247\034\322\270\311\227\066\002\267 +\211\324\044\137\006\300\314\104\224\224\215\002\142\157\353\132 +\335\021\215\050\232\134\204\220\020\172\015\275\164\146\057\152 +\070\240\342\325\124\104\353\035\007\237\007\272\157\356\351\375 +\116\013\051\365\076\204\240\001\361\234\253\370\034\176\211\244 +\350\241\330\161\145\015\243\121\173\356\274\322\042\140\015\271 +\133\235\337\272\374\121\133\013\257\230\262\351\056\351\004\350 +\142\207\336\053\310\327\116\301\114\144\036\335\317\207\130\272 +\112\117\312\150\007\035\034\235\112\306\325\057\221\314\174\161 +\162\034\305\300\147\353\062\375\311\222\134\224\332\205\300\233 +\277\123\175\053\011\364\214\235\221\037\227\152\122\313\336\011 +\066\244\167\330\173\207\120\104\325\076\156\051\151\373\071\111 +\046\036\011\245\200\173\100\055\353\350\047\205\311\376\141\375 +\176\346\174\227\035\325\235\002\003\001\000\001\243\102\060\100 +\060\017\006\003\125\035\023\001\001\377\004\005\060\003\001\001 +\377\060\016\006\003\125\035\017\001\001\377\004\004\003\002\001 +\006\060\035\006\003\125\035\016\004\026\004\024\173\133\105\317 +\257\316\313\172\375\061\222\032\152\266\363\106\353\127\110\120 +\060\015\006\011\052\206\110\206\367\015\001\001\005\005\000\003 +\202\001\001\000\171\021\300\113\263\221\266\374\360\351\147\324 +\015\156\105\276\125\350\223\322\316\003\077\355\332\045\260\035 +\127\313\036\072\166\240\114\354\120\166\350\144\162\014\244\251 +\361\270\213\326\326\207\204\273\062\345\101\021\300\167\331\263 +\140\235\353\033\325\321\156\104\104\251\246\001\354\125\142\035 +\167\270\134\216\110\111\174\234\073\127\021\254\255\163\067\216 +\057\170\134\220\150\107\331\140\140\346\374\007\075\042\040\027 +\304\367\026\351\304\330\162\371\310\163\174\337\026\057\025\251 +\076\375\152\047\266\241\353\132\272\230\037\325\343\115\144\012 +\235\023\310\141\272\365\071\034\207\272\270\275\173\042\177\366 +\376\254\100\171\345\254\020\157\075\217\033\171\166\213\304\067 +\263\041\030\204\345\066\000\353\143\040\231\271\351\376\063\004 +\273\101\310\301\002\371\104\143\040\236\201\316\102\323\326\077 +\054\166\323\143\234\131\335\217\246\341\016\240\056\101\367\056 +\225\107\317\274\375\063\363\366\013\141\176\176\221\053\201\107 +\302\047\060\356\247\020\135\067\217\134\071\053\344\004\360\173 +\215\126\214\150 +END + +# Trust for Certificate "thawte Primary Root CA" +CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "thawte Primary Root CA" +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\221\306\326\356\076\212\310\143\204\345\110\302\231\051\134\165 +\154\201\173\201 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\214\312\334\013\042\316\365\276\162\254\101\032\021\250\330\022 +END +CKA_ISSUER MULTILINE_OCTAL +\060\201\251\061\013\060\011\006\003\125\004\006\023\002\125\123 +\061\025\060\023\006\003\125\004\012\023\014\164\150\141\167\164 +\145\054\040\111\156\143\056\061\050\060\046\006\003\125\004\013 +\023\037\103\145\162\164\151\146\151\143\141\164\151\157\156\040 +\123\145\162\166\151\143\145\163\040\104\151\166\151\163\151\157 +\156\061\070\060\066\006\003\125\004\013\023\057\050\143\051\040 +\062\060\060\066\040\164\150\141\167\164\145\054\040\111\156\143 +\056\040\055\040\106\157\162\040\141\165\164\150\157\162\151\172 +\145\144\040\165\163\145\040\157\156\154\171\061\037\060\035\006 +\003\125\004\003\023\026\164\150\141\167\164\145\040\120\162\151 +\155\141\162\171\040\122\157\157\164\040\103\101 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\020\064\116\325\127\040\325\355\354\111\364\057\316\067\333 +\053\155 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_TRUST_UNKNOWN +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_TRUST_UNKNOWN +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "VeriSign Class 3 Public Primary Certification Authority - G5" +# +CKA_CLASS CK_OBJECT_CLASS CKO_CERTIFICATE +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "VeriSign Class 3 Public Primary Certification Authority - G5" +CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509 +CKA_SUBJECT MULTILINE_OCTAL +\060\201\312\061\013\060\011\006\003\125\004\006\023\002\125\123 +\061\027\060\025\006\003\125\004\012\023\016\126\145\162\151\123 +\151\147\156\054\040\111\156\143\056\061\037\060\035\006\003\125 +\004\013\023\026\126\145\162\151\123\151\147\156\040\124\162\165 +\163\164\040\116\145\164\167\157\162\153\061\072\060\070\006\003 +\125\004\013\023\061\050\143\051\040\062\060\060\066\040\126\145 +\162\151\123\151\147\156\054\040\111\156\143\056\040\055\040\106 +\157\162\040\141\165\164\150\157\162\151\172\145\144\040\165\163 +\145\040\157\156\154\171\061\105\060\103\006\003\125\004\003\023 +\074\126\145\162\151\123\151\147\156\040\103\154\141\163\163\040 +\063\040\120\165\142\154\151\143\040\120\162\151\155\141\162\171 +\040\103\145\162\164\151\146\151\143\141\164\151\157\156\040\101 +\165\164\150\157\162\151\164\171\040\055\040\107\065 +END +CKA_ID UTF8 "0" +CKA_ISSUER MULTILINE_OCTAL +\060\201\312\061\013\060\011\006\003\125\004\006\023\002\125\123 +\061\027\060\025\006\003\125\004\012\023\016\126\145\162\151\123 +\151\147\156\054\040\111\156\143\056\061\037\060\035\006\003\125 +\004\013\023\026\126\145\162\151\123\151\147\156\040\124\162\165 +\163\164\040\116\145\164\167\157\162\153\061\072\060\070\006\003 +\125\004\013\023\061\050\143\051\040\062\060\060\066\040\126\145 +\162\151\123\151\147\156\054\040\111\156\143\056\040\055\040\106 +\157\162\040\141\165\164\150\157\162\151\172\145\144\040\165\163 +\145\040\157\156\154\171\061\105\060\103\006\003\125\004\003\023 +\074\126\145\162\151\123\151\147\156\040\103\154\141\163\163\040 +\063\040\120\165\142\154\151\143\040\120\162\151\155\141\162\171 +\040\103\145\162\164\151\146\151\143\141\164\151\157\156\040\101 +\165\164\150\157\162\151\164\171\040\055\040\107\065 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\020\030\332\321\236\046\175\350\273\112\041\130\315\314\153 +\073\112 +END +CKA_VALUE MULTILINE_OCTAL +\060\202\004\323\060\202\003\273\240\003\002\001\002\002\020\030 +\332\321\236\046\175\350\273\112\041\130\315\314\153\073\112\060 +\015\006\011\052\206\110\206\367\015\001\001\005\005\000\060\201 +\312\061\013\060\011\006\003\125\004\006\023\002\125\123\061\027 +\060\025\006\003\125\004\012\023\016\126\145\162\151\123\151\147 +\156\054\040\111\156\143\056\061\037\060\035\006\003\125\004\013 +\023\026\126\145\162\151\123\151\147\156\040\124\162\165\163\164 +\040\116\145\164\167\157\162\153\061\072\060\070\006\003\125\004 +\013\023\061\050\143\051\040\062\060\060\066\040\126\145\162\151 +\123\151\147\156\054\040\111\156\143\056\040\055\040\106\157\162 +\040\141\165\164\150\157\162\151\172\145\144\040\165\163\145\040 +\157\156\154\171\061\105\060\103\006\003\125\004\003\023\074\126 +\145\162\151\123\151\147\156\040\103\154\141\163\163\040\063\040 +\120\165\142\154\151\143\040\120\162\151\155\141\162\171\040\103 +\145\162\164\151\146\151\143\141\164\151\157\156\040\101\165\164 +\150\157\162\151\164\171\040\055\040\107\065\060\036\027\015\060 +\066\061\061\060\070\060\060\060\060\060\060\132\027\015\063\066 +\060\067\061\066\062\063\065\071\065\071\132\060\201\312\061\013 +\060\011\006\003\125\004\006\023\002\125\123\061\027\060\025\006 +\003\125\004\012\023\016\126\145\162\151\123\151\147\156\054\040 +\111\156\143\056\061\037\060\035\006\003\125\004\013\023\026\126 +\145\162\151\123\151\147\156\040\124\162\165\163\164\040\116\145 +\164\167\157\162\153\061\072\060\070\006\003\125\004\013\023\061 +\050\143\051\040\062\060\060\066\040\126\145\162\151\123\151\147 +\156\054\040\111\156\143\056\040\055\040\106\157\162\040\141\165 +\164\150\157\162\151\172\145\144\040\165\163\145\040\157\156\154 +\171\061\105\060\103\006\003\125\004\003\023\074\126\145\162\151 +\123\151\147\156\040\103\154\141\163\163\040\063\040\120\165\142 +\154\151\143\040\120\162\151\155\141\162\171\040\103\145\162\164 +\151\146\151\143\141\164\151\157\156\040\101\165\164\150\157\162 +\151\164\171\040\055\040\107\065\060\202\001\042\060\015\006\011 +\052\206\110\206\367\015\001\001\001\005\000\003\202\001\017\000 +\060\202\001\012\002\202\001\001\000\257\044\010\010\051\172\065 +\236\140\014\252\347\113\073\116\334\174\274\074\105\034\273\053 +\340\376\051\002\371\127\010\243\144\205\025\047\365\361\255\310 +\061\211\135\042\350\052\252\246\102\263\217\370\271\125\267\261 +\267\113\263\376\217\176\007\127\354\357\103\333\146\142\025\141 +\317\140\015\244\330\336\370\340\303\142\010\075\124\023\353\111 +\312\131\124\205\046\345\053\217\033\237\353\365\241\221\302\063 +\111\330\103\143\152\122\113\322\217\350\160\121\115\321\211\151 +\173\307\160\366\263\334\022\164\333\173\135\113\126\323\226\277 +\025\167\241\260\364\242\045\362\257\034\222\147\030\345\364\006 +\004\357\220\271\344\000\344\335\072\265\031\377\002\272\364\074 +\356\340\213\353\067\213\354\364\327\254\362\366\360\075\257\335 +\165\221\063\031\035\034\100\313\164\044\031\041\223\331\024\376 +\254\052\122\307\217\325\004\111\344\215\143\107\210\074\151\203 +\313\376\107\275\053\176\117\305\225\256\016\235\324\321\103\300 +\147\163\343\024\010\176\345\077\237\163\270\063\012\317\135\077 +\064\207\226\212\356\123\350\045\025\002\003\001\000\001\243\201 +\262\060\201\257\060\017\006\003\125\035\023\001\001\377\004\005 +\060\003\001\001\377\060\016\006\003\125\035\017\001\001\377\004 +\004\003\002\001\006\060\155\006\010\053\006\001\005\005\007\001 +\014\004\141\060\137\241\135\240\133\060\131\060\127\060\125\026 +\011\151\155\141\147\145\057\147\151\146\060\041\060\037\060\007 +\006\005\053\016\003\002\032\004\024\217\345\323\032\206\254\215 +\216\153\303\317\200\152\324\110\030\054\173\031\056\060\045\026 +\043\150\164\164\160\072\057\057\154\157\147\157\056\166\145\162 +\151\163\151\147\156\056\143\157\155\057\166\163\154\157\147\157 +\056\147\151\146\060\035\006\003\125\035\016\004\026\004\024\177 +\323\145\247\302\335\354\273\360\060\011\363\103\071\372\002\257 +\063\061\063\060\015\006\011\052\206\110\206\367\015\001\001\005 +\005\000\003\202\001\001\000\223\044\112\060\137\142\317\330\032 +\230\057\075\352\334\231\055\275\167\366\245\171\042\070\354\304 +\247\240\170\022\255\142\016\105\160\144\305\347\227\146\055\230 +\011\176\137\257\326\314\050\145\362\001\252\010\032\107\336\371 +\371\174\222\132\010\151\040\015\331\076\155\156\074\015\156\330 +\346\006\221\100\030\271\370\301\355\337\333\101\252\340\226\040 +\311\315\144\025\070\201\311\224\356\242\204\051\013\023\157\216 +\333\014\335\045\002\333\244\213\031\104\322\101\172\005\151\112 +\130\117\140\312\176\202\152\013\002\252\045\027\071\265\333\177 +\347\204\145\052\225\212\275\206\336\136\201\026\203\055\020\314 +\336\375\250\202\052\155\050\037\015\013\304\345\347\032\046\031 +\341\364\021\157\020\265\225\374\347\102\005\062\333\316\235\121 +\136\050\266\236\205\323\133\357\245\175\105\100\162\216\267\016 +\153\016\006\373\063\065\110\161\270\235\047\213\304\145\137\015 +\206\166\234\104\172\366\225\134\366\135\062\010\063\244\124\266 +\030\077\150\134\362\102\112\205\070\124\203\137\321\350\054\362 +\254\021\326\250\355\143\152 +END + +# Trust for Certificate "VeriSign Class 3 Public Primary Certification Authority - G5" +CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "VeriSign Class 3 Public Primary Certification Authority - G5" +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\116\266\325\170\111\233\034\317\137\130\036\255\126\276\075\233 +\147\104\245\345 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\313\027\344\061\147\076\342\011\376\105\127\223\363\012\372\034 +END +CKA_ISSUER MULTILINE_OCTAL +\060\201\312\061\013\060\011\006\003\125\004\006\023\002\125\123 +\061\027\060\025\006\003\125\004\012\023\016\126\145\162\151\123 +\151\147\156\054\040\111\156\143\056\061\037\060\035\006\003\125 +\004\013\023\026\126\145\162\151\123\151\147\156\040\124\162\165 +\163\164\040\116\145\164\167\157\162\153\061\072\060\070\006\003 +\125\004\013\023\061\050\143\051\040\062\060\060\066\040\126\145 +\162\151\123\151\147\156\054\040\111\156\143\056\040\055\040\106 +\157\162\040\141\165\164\150\157\162\151\172\145\144\040\165\163 +\145\040\157\156\154\171\061\105\060\103\006\003\125\004\003\023 +\074\126\145\162\151\123\151\147\156\040\103\154\141\163\163\040 +\063\040\120\165\142\154\151\143\040\120\162\151\155\141\162\171 +\040\103\145\162\164\151\146\151\143\141\164\151\157\156\040\101 +\165\164\150\157\162\151\164\171\040\055\040\107\065 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\020\030\332\321\236\046\175\350\273\112\041\130\315\314\153 +\073\112 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_TRUST_UNKNOWN +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_TRUST_UNKNOWN +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "SecureTrust CA" +# +CKA_CLASS CK_OBJECT_CLASS CKO_CERTIFICATE +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "SecureTrust CA" +CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509 +CKA_SUBJECT MULTILINE_OCTAL +\060\110\061\013\060\011\006\003\125\004\006\023\002\125\123\061 +\040\060\036\006\003\125\004\012\023\027\123\145\143\165\162\145 +\124\162\165\163\164\040\103\157\162\160\157\162\141\164\151\157 +\156\061\027\060\025\006\003\125\004\003\023\016\123\145\143\165 +\162\145\124\162\165\163\164\040\103\101 +END +CKA_ID UTF8 "0" +CKA_ISSUER MULTILINE_OCTAL +\060\110\061\013\060\011\006\003\125\004\006\023\002\125\123\061 +\040\060\036\006\003\125\004\012\023\027\123\145\143\165\162\145 +\124\162\165\163\164\040\103\157\162\160\157\162\141\164\151\157 +\156\061\027\060\025\006\003\125\004\003\023\016\123\145\143\165 +\162\145\124\162\165\163\164\040\103\101 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\020\014\360\216\134\010\026\245\255\102\177\360\353\047\030 +\131\320 +END +CKA_VALUE MULTILINE_OCTAL +\060\202\003\270\060\202\002\240\240\003\002\001\002\002\020\014 +\360\216\134\010\026\245\255\102\177\360\353\047\030\131\320\060 +\015\006\011\052\206\110\206\367\015\001\001\005\005\000\060\110 +\061\013\060\011\006\003\125\004\006\023\002\125\123\061\040\060 +\036\006\003\125\004\012\023\027\123\145\143\165\162\145\124\162 +\165\163\164\040\103\157\162\160\157\162\141\164\151\157\156\061 +\027\060\025\006\003\125\004\003\023\016\123\145\143\165\162\145 +\124\162\165\163\164\040\103\101\060\036\027\015\060\066\061\061 +\060\067\061\071\063\061\061\070\132\027\015\062\071\061\062\063 +\061\061\071\064\060\065\065\132\060\110\061\013\060\011\006\003 +\125\004\006\023\002\125\123\061\040\060\036\006\003\125\004\012 +\023\027\123\145\143\165\162\145\124\162\165\163\164\040\103\157 +\162\160\157\162\141\164\151\157\156\061\027\060\025\006\003\125 +\004\003\023\016\123\145\143\165\162\145\124\162\165\163\164\040 +\103\101\060\202\001\042\060\015\006\011\052\206\110\206\367\015 +\001\001\001\005\000\003\202\001\017\000\060\202\001\012\002\202 +\001\001\000\253\244\201\345\225\315\365\366\024\216\302\117\312 +\324\342\170\225\130\234\101\341\015\231\100\044\027\071\221\063 +\146\351\276\341\203\257\142\134\211\321\374\044\133\141\263\340 +\021\021\101\034\035\156\360\270\273\370\336\247\201\272\246\110 +\306\237\035\275\276\216\251\101\076\270\224\355\051\032\324\216 +\322\003\035\003\357\155\015\147\034\127\327\006\255\312\310\365 +\376\016\257\146\045\110\004\226\013\135\243\272\026\303\010\117 +\321\106\370\024\134\362\310\136\001\231\155\375\210\314\206\250 +\301\157\061\102\154\122\076\150\313\363\031\064\337\273\207\030 +\126\200\046\304\320\334\300\157\337\336\240\302\221\026\240\144 +\021\113\104\274\036\366\347\372\143\336\146\254\166\244\161\243 +\354\066\224\150\172\167\244\261\347\016\057\201\172\342\265\162 +\206\357\242\153\213\360\017\333\323\131\077\272\162\274\104\044 +\234\343\163\263\367\257\127\057\102\046\235\251\164\272\000\122 +\362\113\315\123\174\107\013\066\205\016\146\251\010\227\026\064 +\127\301\146\367\200\343\355\160\124\307\223\340\056\050\025\131 +\207\272\273\002\003\001\000\001\243\201\235\060\201\232\060\023 +\006\011\053\006\001\004\001\202\067\024\002\004\006\036\004\000 +\103\000\101\060\013\006\003\125\035\017\004\004\003\002\001\206 +\060\017\006\003\125\035\023\001\001\377\004\005\060\003\001\001 +\377\060\035\006\003\125\035\016\004\026\004\024\102\062\266\026 +\372\004\375\376\135\113\172\303\375\367\114\100\035\132\103\257 +\060\064\006\003\125\035\037\004\055\060\053\060\051\240\047\240 +\045\206\043\150\164\164\160\072\057\057\143\162\154\056\163\145 +\143\165\162\145\164\162\165\163\164\056\143\157\155\057\123\124 +\103\101\056\143\162\154\060\020\006\011\053\006\001\004\001\202 +\067\025\001\004\003\002\001\000\060\015\006\011\052\206\110\206 +\367\015\001\001\005\005\000\003\202\001\001\000\060\355\117\112 +\341\130\072\122\162\133\265\246\243\145\030\246\273\121\073\167 +\351\235\352\323\237\134\340\105\145\173\015\312\133\342\160\120 +\262\224\005\024\256\111\307\215\101\007\022\163\224\176\014\043 +\041\375\274\020\177\140\020\132\162\365\230\016\254\354\271\177 +\335\172\157\135\323\034\364\377\210\005\151\102\251\005\161\310 +\267\254\046\350\056\264\214\152\377\161\334\270\261\337\231\274 +\174\041\124\053\344\130\242\273\127\051\256\236\251\243\031\046 +\017\231\056\010\260\357\375\151\317\231\032\011\215\343\247\237 +\053\311\066\064\173\044\263\170\114\225\027\244\006\046\036\266 +\144\122\066\137\140\147\331\234\305\005\164\013\347\147\043\322 +\010\374\210\351\256\213\177\341\060\364\067\176\375\306\062\332 +\055\236\104\060\060\154\356\007\336\322\064\374\322\377\100\366 +\113\364\146\106\006\124\246\362\062\012\143\046\060\153\233\321 +\334\213\107\272\341\271\325\142\320\242\240\364\147\005\170\051 +\143\032\157\004\326\370\306\114\243\232\261\067\264\215\345\050 +\113\035\236\054\302\270\150\274\355\002\356\061 +END + +# Trust for Certificate "SecureTrust CA" +CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "SecureTrust CA" +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\207\202\306\303\004\065\073\317\322\226\222\322\131\076\175\104 +\331\064\377\021 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\334\062\303\247\155\045\127\307\150\011\235\352\055\251\242\321 +END +CKA_ISSUER MULTILINE_OCTAL +\060\110\061\013\060\011\006\003\125\004\006\023\002\125\123\061 +\040\060\036\006\003\125\004\012\023\027\123\145\143\165\162\145 +\124\162\165\163\164\040\103\157\162\160\157\162\141\164\151\157 +\156\061\027\060\025\006\003\125\004\003\023\016\123\145\143\165 +\162\145\124\162\165\163\164\040\103\101 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\020\014\360\216\134\010\026\245\255\102\177\360\353\047\030 +\131\320 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_TRUST_UNKNOWN +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "Secure Global CA" +# +CKA_CLASS CK_OBJECT_CLASS CKO_CERTIFICATE +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "Secure Global CA" +CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509 +CKA_SUBJECT MULTILINE_OCTAL +\060\112\061\013\060\011\006\003\125\004\006\023\002\125\123\061 +\040\060\036\006\003\125\004\012\023\027\123\145\143\165\162\145 +\124\162\165\163\164\040\103\157\162\160\157\162\141\164\151\157 +\156\061\031\060\027\006\003\125\004\003\023\020\123\145\143\165 +\162\145\040\107\154\157\142\141\154\040\103\101 +END +CKA_ID UTF8 "0" +CKA_ISSUER MULTILINE_OCTAL +\060\112\061\013\060\011\006\003\125\004\006\023\002\125\123\061 +\040\060\036\006\003\125\004\012\023\027\123\145\143\165\162\145 +\124\162\165\163\164\040\103\157\162\160\157\162\141\164\151\157 +\156\061\031\060\027\006\003\125\004\003\023\020\123\145\143\165 +\162\145\040\107\154\157\142\141\154\040\103\101 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\020\007\126\042\244\350\324\212\211\115\364\023\310\360\370 +\352\245 +END +CKA_VALUE MULTILINE_OCTAL +\060\202\003\274\060\202\002\244\240\003\002\001\002\002\020\007 +\126\042\244\350\324\212\211\115\364\023\310\360\370\352\245\060 +\015\006\011\052\206\110\206\367\015\001\001\005\005\000\060\112 +\061\013\060\011\006\003\125\004\006\023\002\125\123\061\040\060 +\036\006\003\125\004\012\023\027\123\145\143\165\162\145\124\162 +\165\163\164\040\103\157\162\160\157\162\141\164\151\157\156\061 +\031\060\027\006\003\125\004\003\023\020\123\145\143\165\162\145 +\040\107\154\157\142\141\154\040\103\101\060\036\027\015\060\066 +\061\061\060\067\061\071\064\062\062\070\132\027\015\062\071\061 +\062\063\061\061\071\065\062\060\066\132\060\112\061\013\060\011 +\006\003\125\004\006\023\002\125\123\061\040\060\036\006\003\125 +\004\012\023\027\123\145\143\165\162\145\124\162\165\163\164\040 +\103\157\162\160\157\162\141\164\151\157\156\061\031\060\027\006 +\003\125\004\003\023\020\123\145\143\165\162\145\040\107\154\157 +\142\141\154\040\103\101\060\202\001\042\060\015\006\011\052\206 +\110\206\367\015\001\001\001\005\000\003\202\001\017\000\060\202 +\001\012\002\202\001\001\000\257\065\056\330\254\154\125\151\006 +\161\345\023\150\044\263\117\330\314\041\107\370\361\140\070\211 +\211\003\351\275\352\136\106\123\011\334\134\365\132\350\367\105 +\052\002\353\061\141\327\051\063\114\316\307\174\012\067\176\017 +\272\062\230\341\035\227\257\217\307\334\311\070\226\363\333\032 +\374\121\355\150\306\320\156\244\174\044\321\256\102\310\226\120 +\143\056\340\376\165\376\230\247\137\111\056\225\343\071\063\144 +\216\036\244\137\220\322\147\074\262\331\376\101\271\125\247\011 +\216\162\005\036\213\335\104\205\202\102\320\111\300\035\140\360 +\321\027\054\225\353\366\245\301\222\243\305\302\247\010\140\015 +\140\004\020\226\171\236\026\064\346\251\266\372\045\105\071\310 +\036\145\371\223\365\252\361\122\334\231\230\075\245\206\032\014 +\065\063\372\113\245\004\006\025\034\061\200\357\252\030\153\302 +\173\327\332\316\371\063\040\325\365\275\152\063\055\201\004\373 +\260\134\324\234\243\342\134\035\343\251\102\165\136\173\324\167 +\357\071\124\272\311\012\030\033\022\231\111\057\210\113\375\120 +\142\321\163\347\217\172\103\002\003\001\000\001\243\201\235\060 +\201\232\060\023\006\011\053\006\001\004\001\202\067\024\002\004 +\006\036\004\000\103\000\101\060\013\006\003\125\035\017\004\004 +\003\002\001\206\060\017\006\003\125\035\023\001\001\377\004\005 +\060\003\001\001\377\060\035\006\003\125\035\016\004\026\004\024 +\257\104\004\302\101\176\110\203\333\116\071\002\354\354\204\172 +\346\316\311\244\060\064\006\003\125\035\037\004\055\060\053\060 +\051\240\047\240\045\206\043\150\164\164\160\072\057\057\143\162 +\154\056\163\145\143\165\162\145\164\162\165\163\164\056\143\157 +\155\057\123\107\103\101\056\143\162\154\060\020\006\011\053\006 +\001\004\001\202\067\025\001\004\003\002\001\000\060\015\006\011 +\052\206\110\206\367\015\001\001\005\005\000\003\202\001\001\000 +\143\032\010\100\175\244\136\123\015\167\330\172\256\037\015\013 +\121\026\003\357\030\174\310\343\257\152\130\223\024\140\221\262 +\204\334\210\116\276\071\212\072\363\346\202\211\135\001\067\263 +\253\044\244\025\016\222\065\132\112\104\136\116\127\372\165\316 +\037\110\316\146\364\074\100\046\222\230\154\033\356\044\106\014 +\027\263\122\245\333\245\221\221\317\067\323\157\347\047\010\072 +\116\031\037\072\247\130\134\027\317\171\077\213\344\247\323\046 +\043\235\046\017\130\151\374\107\176\262\320\215\213\223\277\051 +\117\103\151\164\166\147\113\317\007\214\346\002\367\265\341\264 +\103\265\113\055\024\237\371\334\046\015\277\246\107\164\006\330 +\210\321\072\051\060\204\316\322\071\200\142\033\250\307\127\111 +\274\152\125\121\147\025\112\276\065\007\344\325\165\230\067\171 +\060\024\333\051\235\154\305\151\314\107\125\242\060\367\314\134 +\177\302\303\230\034\153\116\026\200\353\172\170\145\105\242\000 +\032\257\014\015\125\144\064\110\270\222\271\361\264\120\051\362 +\117\043\037\332\154\254\037\104\341\335\043\170\121\133\307\026 +END + +# Trust for Certificate "Secure Global CA" +CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "Secure Global CA" +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\072\104\163\132\345\201\220\037\044\206\141\106\036\073\234\304 +\137\365\072\033 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\317\364\047\015\324\355\334\145\026\111\155\075\332\277\156\336 +END +CKA_ISSUER MULTILINE_OCTAL +\060\112\061\013\060\011\006\003\125\004\006\023\002\125\123\061 +\040\060\036\006\003\125\004\012\023\027\123\145\143\165\162\145 +\124\162\165\163\164\040\103\157\162\160\157\162\141\164\151\157 +\156\061\031\060\027\006\003\125\004\003\023\020\123\145\143\165 +\162\145\040\107\154\157\142\141\154\040\103\101 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\020\007\126\042\244\350\324\212\211\115\364\023\310\360\370 +\352\245 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "COMODO Certification Authority" +# +CKA_CLASS CK_OBJECT_CLASS CKO_CERTIFICATE +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "COMODO Certification Authority" +CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509 +CKA_SUBJECT MULTILINE_OCTAL +\060\201\201\061\013\060\011\006\003\125\004\006\023\002\107\102 +\061\033\060\031\006\003\125\004\010\023\022\107\162\145\141\164 +\145\162\040\115\141\156\143\150\145\163\164\145\162\061\020\060 +\016\006\003\125\004\007\023\007\123\141\154\146\157\162\144\061 +\032\060\030\006\003\125\004\012\023\021\103\117\115\117\104\117 +\040\103\101\040\114\151\155\151\164\145\144\061\047\060\045\006 +\003\125\004\003\023\036\103\117\115\117\104\117\040\103\145\162 +\164\151\146\151\143\141\164\151\157\156\040\101\165\164\150\157 +\162\151\164\171 +END +CKA_ID UTF8 "0" +CKA_ISSUER MULTILINE_OCTAL +\060\201\201\061\013\060\011\006\003\125\004\006\023\002\107\102 +\061\033\060\031\006\003\125\004\010\023\022\107\162\145\141\164 +\145\162\040\115\141\156\143\150\145\163\164\145\162\061\020\060 +\016\006\003\125\004\007\023\007\123\141\154\146\157\162\144\061 +\032\060\030\006\003\125\004\012\023\021\103\117\115\117\104\117 +\040\103\101\040\114\151\155\151\164\145\144\061\047\060\045\006 +\003\125\004\003\023\036\103\117\115\117\104\117\040\103\145\162 +\164\151\146\151\143\141\164\151\157\156\040\101\165\164\150\157 +\162\151\164\171 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\020\116\201\055\212\202\145\340\013\002\356\076\065\002\106 +\345\075 +END +CKA_VALUE MULTILINE_OCTAL +\060\202\004\035\060\202\003\005\240\003\002\001\002\002\020\116 +\201\055\212\202\145\340\013\002\356\076\065\002\106\345\075\060 +\015\006\011\052\206\110\206\367\015\001\001\005\005\000\060\201 +\201\061\013\060\011\006\003\125\004\006\023\002\107\102\061\033 +\060\031\006\003\125\004\010\023\022\107\162\145\141\164\145\162 +\040\115\141\156\143\150\145\163\164\145\162\061\020\060\016\006 +\003\125\004\007\023\007\123\141\154\146\157\162\144\061\032\060 +\030\006\003\125\004\012\023\021\103\117\115\117\104\117\040\103 +\101\040\114\151\155\151\164\145\144\061\047\060\045\006\003\125 +\004\003\023\036\103\117\115\117\104\117\040\103\145\162\164\151 +\146\151\143\141\164\151\157\156\040\101\165\164\150\157\162\151 +\164\171\060\036\027\015\060\066\061\062\060\061\060\060\060\060 +\060\060\132\027\015\062\071\061\062\063\061\062\063\065\071\065 +\071\132\060\201\201\061\013\060\011\006\003\125\004\006\023\002 +\107\102\061\033\060\031\006\003\125\004\010\023\022\107\162\145 +\141\164\145\162\040\115\141\156\143\150\145\163\164\145\162\061 +\020\060\016\006\003\125\004\007\023\007\123\141\154\146\157\162 +\144\061\032\060\030\006\003\125\004\012\023\021\103\117\115\117 +\104\117\040\103\101\040\114\151\155\151\164\145\144\061\047\060 +\045\006\003\125\004\003\023\036\103\117\115\117\104\117\040\103 +\145\162\164\151\146\151\143\141\164\151\157\156\040\101\165\164 +\150\157\162\151\164\171\060\202\001\042\060\015\006\011\052\206 +\110\206\367\015\001\001\001\005\000\003\202\001\017\000\060\202 +\001\012\002\202\001\001\000\320\100\213\213\162\343\221\033\367 +\121\301\033\124\004\230\323\251\277\301\346\212\135\073\207\373 +\273\210\316\015\343\057\077\006\226\360\242\051\120\231\256\333 +\073\241\127\260\164\121\161\315\355\102\221\115\101\376\251\310 +\330\152\206\167\104\273\131\146\227\120\136\264\324\054\160\104 +\317\332\067\225\102\151\074\060\304\161\263\122\360\041\115\241 +\330\272\071\174\034\236\243\044\235\362\203\026\230\252\026\174 +\103\233\025\133\267\256\064\221\376\324\142\046\030\106\232\077 +\353\301\371\361\220\127\353\254\172\015\213\333\162\060\152\146 +\325\340\106\243\160\334\150\331\377\004\110\211\167\336\265\351 +\373\147\155\101\351\274\071\275\062\331\142\002\361\261\250\075 +\156\067\234\342\057\342\323\242\046\213\306\270\125\103\210\341 +\043\076\245\322\044\071\152\107\253\000\324\241\263\251\045\376 +\015\077\247\035\272\323\121\301\013\244\332\254\070\357\125\120 +\044\005\145\106\223\064\117\055\215\255\306\324\041\031\322\216 +\312\005\141\161\007\163\107\345\212\031\022\275\004\115\316\116 +\234\245\110\254\273\046\367\002\003\001\000\001\243\201\216\060 +\201\213\060\035\006\003\125\035\016\004\026\004\024\013\130\345 +\213\306\114\025\067\244\100\251\060\251\041\276\107\066\132\126 +\377\060\016\006\003\125\035\017\001\001\377\004\004\003\002\001 +\006\060\017\006\003\125\035\023\001\001\377\004\005\060\003\001 +\001\377\060\111\006\003\125\035\037\004\102\060\100\060\076\240 +\074\240\072\206\070\150\164\164\160\072\057\057\143\162\154\056 +\143\157\155\157\144\157\143\141\056\143\157\155\057\103\117\115 +\117\104\117\103\145\162\164\151\146\151\143\141\164\151\157\156 +\101\165\164\150\157\162\151\164\171\056\143\162\154\060\015\006 +\011\052\206\110\206\367\015\001\001\005\005\000\003\202\001\001 +\000\076\230\236\233\366\033\351\327\071\267\170\256\035\162\030 +\111\323\207\344\103\202\353\077\311\252\365\250\265\357\125\174 +\041\122\145\371\325\015\341\154\364\076\214\223\163\221\056\002 +\304\116\007\161\157\300\217\070\141\010\250\036\201\012\300\057 +\040\057\101\213\221\334\110\105\274\361\306\336\272\166\153\063 +\310\000\055\061\106\114\355\347\235\317\210\224\377\063\300\126 +\350\044\206\046\270\330\070\070\337\052\153\335\022\314\307\077 +\107\027\114\242\302\006\226\011\326\333\376\077\074\106\101\337 +\130\342\126\017\074\073\301\034\223\065\331\070\122\254\356\310 +\354\056\060\116\224\065\264\044\037\113\170\151\332\362\002\070 +\314\225\122\223\360\160\045\131\234\040\147\304\356\371\213\127 +\141\364\222\166\175\077\204\215\125\267\350\345\254\325\361\365 +\031\126\246\132\373\220\034\257\223\353\345\034\324\147\227\135 +\004\016\276\013\203\246\027\203\271\060\022\240\305\063\025\005 +\271\015\373\307\005\166\343\330\112\215\374\064\027\243\306\041 +\050\276\060\105\061\036\307\170\276\130\141\070\254\073\342\001 +\145 +END + +# Trust for Certificate "COMODO Certification Authority" +CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "COMODO Certification Authority" +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\146\061\277\236\367\117\236\266\311\325\246\014\272\152\276\321 +\367\275\357\173 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\134\110\334\367\102\162\354\126\224\155\034\314\161\065\200\165 +END +CKA_ISSUER MULTILINE_OCTAL +\060\201\201\061\013\060\011\006\003\125\004\006\023\002\107\102 +\061\033\060\031\006\003\125\004\010\023\022\107\162\145\141\164 +\145\162\040\115\141\156\143\150\145\163\164\145\162\061\020\060 +\016\006\003\125\004\007\023\007\123\141\154\146\157\162\144\061 +\032\060\030\006\003\125\004\012\023\021\103\117\115\117\104\117 +\040\103\101\040\114\151\155\151\164\145\144\061\047\060\045\006 +\003\125\004\003\023\036\103\117\115\117\104\117\040\103\145\162 +\164\151\146\151\143\141\164\151\157\156\040\101\165\164\150\157 +\162\151\164\171 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\020\116\201\055\212\202\145\340\013\002\356\076\065\002\106 +\345\075 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "Network Solutions Certificate Authority" +# +CKA_CLASS CK_OBJECT_CLASS CKO_CERTIFICATE +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "Network Solutions Certificate Authority" +CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509 +CKA_SUBJECT MULTILINE_OCTAL +\060\142\061\013\060\011\006\003\125\004\006\023\002\125\123\061 +\041\060\037\006\003\125\004\012\023\030\116\145\164\167\157\162 +\153\040\123\157\154\165\164\151\157\156\163\040\114\056\114\056 +\103\056\061\060\060\056\006\003\125\004\003\023\047\116\145\164 +\167\157\162\153\040\123\157\154\165\164\151\157\156\163\040\103 +\145\162\164\151\146\151\143\141\164\145\040\101\165\164\150\157 +\162\151\164\171 +END +CKA_ID UTF8 "0" +CKA_ISSUER MULTILINE_OCTAL +\060\142\061\013\060\011\006\003\125\004\006\023\002\125\123\061 +\041\060\037\006\003\125\004\012\023\030\116\145\164\167\157\162 +\153\040\123\157\154\165\164\151\157\156\163\040\114\056\114\056 +\103\056\061\060\060\056\006\003\125\004\003\023\047\116\145\164 +\167\157\162\153\040\123\157\154\165\164\151\157\156\163\040\103 +\145\162\164\151\146\151\143\141\164\145\040\101\165\164\150\157 +\162\151\164\171 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\020\127\313\063\157\302\134\026\346\107\026\027\343\220\061 +\150\340 +END +CKA_VALUE MULTILINE_OCTAL +\060\202\003\346\060\202\002\316\240\003\002\001\002\002\020\127 +\313\063\157\302\134\026\346\107\026\027\343\220\061\150\340\060 +\015\006\011\052\206\110\206\367\015\001\001\005\005\000\060\142 +\061\013\060\011\006\003\125\004\006\023\002\125\123\061\041\060 +\037\006\003\125\004\012\023\030\116\145\164\167\157\162\153\040 +\123\157\154\165\164\151\157\156\163\040\114\056\114\056\103\056 +\061\060\060\056\006\003\125\004\003\023\047\116\145\164\167\157 +\162\153\040\123\157\154\165\164\151\157\156\163\040\103\145\162 +\164\151\146\151\143\141\164\145\040\101\165\164\150\157\162\151 +\164\171\060\036\027\015\060\066\061\062\060\061\060\060\060\060 +\060\060\132\027\015\062\071\061\062\063\061\062\063\065\071\065 +\071\132\060\142\061\013\060\011\006\003\125\004\006\023\002\125 +\123\061\041\060\037\006\003\125\004\012\023\030\116\145\164\167 +\157\162\153\040\123\157\154\165\164\151\157\156\163\040\114\056 +\114\056\103\056\061\060\060\056\006\003\125\004\003\023\047\116 +\145\164\167\157\162\153\040\123\157\154\165\164\151\157\156\163 +\040\103\145\162\164\151\146\151\143\141\164\145\040\101\165\164 +\150\157\162\151\164\171\060\202\001\042\060\015\006\011\052\206 +\110\206\367\015\001\001\001\005\000\003\202\001\017\000\060\202 +\001\012\002\202\001\001\000\344\274\176\222\060\155\306\330\216 +\053\013\274\106\316\340\047\226\336\336\371\372\022\323\074\063 +\163\263\004\057\274\161\214\345\237\266\042\140\076\137\135\316 +\011\377\202\014\033\232\121\120\032\046\211\335\325\141\135\031 +\334\022\017\055\012\242\103\135\027\320\064\222\040\352\163\317 +\070\054\006\046\011\172\162\367\372\120\062\370\302\223\323\151 +\242\043\316\101\261\314\344\325\037\066\321\212\072\370\214\143 +\342\024\131\151\355\015\323\177\153\350\270\003\345\117\152\345 +\230\143\151\110\005\276\056\377\063\266\351\227\131\151\370\147 +\031\256\223\141\226\104\025\323\162\260\077\274\152\175\354\110 +\177\215\303\253\252\161\053\123\151\101\123\064\265\260\271\305 +\006\012\304\260\105\365\101\135\156\211\105\173\075\073\046\214 +\164\302\345\322\321\175\262\021\324\373\130\062\042\232\200\311 +\334\375\014\351\177\136\003\227\316\073\000\024\207\047\160\070 +\251\216\156\263\047\166\230\121\340\005\343\041\253\032\325\205 +\042\074\051\265\232\026\305\200\250\364\273\153\060\217\057\106 +\002\242\261\014\042\340\323\002\003\001\000\001\243\201\227\060 +\201\224\060\035\006\003\125\035\016\004\026\004\024\041\060\311 +\373\000\327\116\230\332\207\252\052\320\247\056\261\100\061\247 +\114\060\016\006\003\125\035\017\001\001\377\004\004\003\002\001 +\006\060\017\006\003\125\035\023\001\001\377\004\005\060\003\001 +\001\377\060\122\006\003\125\035\037\004\113\060\111\060\107\240 +\105\240\103\206\101\150\164\164\160\072\057\057\143\162\154\056 +\156\145\164\163\157\154\163\163\154\056\143\157\155\057\116\145 +\164\167\157\162\153\123\157\154\165\164\151\157\156\163\103\145 +\162\164\151\146\151\143\141\164\145\101\165\164\150\157\162\151 +\164\171\056\143\162\154\060\015\006\011\052\206\110\206\367\015 +\001\001\005\005\000\003\202\001\001\000\273\256\113\347\267\127 +\353\177\252\055\267\163\107\205\152\301\344\245\035\344\347\074 +\351\364\131\145\167\265\172\133\132\215\045\066\340\172\227\056 +\070\300\127\140\203\230\006\203\237\271\166\172\156\120\340\272 +\210\054\374\105\314\030\260\231\225\121\016\354\035\270\210\377 +\207\120\034\202\302\343\340\062\200\277\240\013\107\310\303\061 +\357\231\147\062\200\117\027\041\171\014\151\134\336\136\064\256 +\002\265\046\352\120\337\177\030\145\054\311\362\143\341\251\007 +\376\174\161\037\153\063\044\152\036\005\367\005\150\300\152\022 +\313\056\136\141\313\256\050\323\176\302\264\146\221\046\137\074 +\056\044\137\313\130\017\353\050\354\257\021\226\363\334\173\157 +\300\247\210\362\123\167\263\140\136\256\256\050\332\065\054\157 +\064\105\323\046\341\336\354\133\117\047\153\026\174\275\104\004 +\030\202\263\211\171\027\020\161\075\172\242\026\116\365\001\315 +\244\154\145\150\241\111\166\134\103\311\330\274\066\147\154\245 +\224\265\324\314\271\275\152\065\126\041\336\330\303\353\373\313 +\244\140\114\260\125\240\240\173\127\262 +END + +# Trust for Certificate "Network Solutions Certificate Authority" +CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "Network Solutions Certificate Authority" +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\164\370\243\303\357\347\263\220\006\113\203\220\074\041\144\140 +\040\345\337\316 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\323\363\246\026\300\372\153\035\131\261\055\226\115\016\021\056 +END +CKA_ISSUER MULTILINE_OCTAL +\060\142\061\013\060\011\006\003\125\004\006\023\002\125\123\061 +\041\060\037\006\003\125\004\012\023\030\116\145\164\167\157\162 +\153\040\123\157\154\165\164\151\157\156\163\040\114\056\114\056 +\103\056\061\060\060\056\006\003\125\004\003\023\047\116\145\164 +\167\157\162\153\040\123\157\154\165\164\151\157\156\163\040\103 +\145\162\164\151\146\151\143\141\164\145\040\101\165\164\150\157 +\162\151\164\171 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\020\127\313\063\157\302\134\026\346\107\026\027\343\220\061 +\150\340 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_TRUST_UNKNOWN +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_TRUST_UNKNOWN +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "WellsSecure Public Root Certificate Authority" +# +CKA_CLASS CK_OBJECT_CLASS CKO_CERTIFICATE +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "WellsSecure Public Root Certificate Authority" +CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509 +CKA_SUBJECT MULTILINE_OCTAL +\060\201\205\061\013\060\011\006\003\125\004\006\023\002\125\123 +\061\040\060\036\006\003\125\004\012\014\027\127\145\154\154\163 +\040\106\141\162\147\157\040\127\145\154\154\163\123\145\143\165 +\162\145\061\034\060\032\006\003\125\004\013\014\023\127\145\154 +\154\163\040\106\141\162\147\157\040\102\141\156\153\040\116\101 +\061\066\060\064\006\003\125\004\003\014\055\127\145\154\154\163 +\123\145\143\165\162\145\040\120\165\142\154\151\143\040\122\157 +\157\164\040\103\145\162\164\151\146\151\143\141\164\145\040\101 +\165\164\150\157\162\151\164\171 +END +CKA_ID UTF8 "0" +CKA_ISSUER MULTILINE_OCTAL +\060\201\205\061\013\060\011\006\003\125\004\006\023\002\125\123 +\061\040\060\036\006\003\125\004\012\014\027\127\145\154\154\163 +\040\106\141\162\147\157\040\127\145\154\154\163\123\145\143\165 +\162\145\061\034\060\032\006\003\125\004\013\014\023\127\145\154 +\154\163\040\106\141\162\147\157\040\102\141\156\153\040\116\101 +\061\066\060\064\006\003\125\004\003\014\055\127\145\154\154\163 +\123\145\143\165\162\145\040\120\165\142\154\151\143\040\122\157 +\157\164\040\103\145\162\164\151\146\151\143\141\164\145\040\101 +\165\164\150\157\162\151\164\171 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\001\001 +END +CKA_VALUE MULTILINE_OCTAL +\060\202\004\275\060\202\003\245\240\003\002\001\002\002\001\001 +\060\015\006\011\052\206\110\206\367\015\001\001\005\005\000\060 +\201\205\061\013\060\011\006\003\125\004\006\023\002\125\123\061 +\040\060\036\006\003\125\004\012\014\027\127\145\154\154\163\040 +\106\141\162\147\157\040\127\145\154\154\163\123\145\143\165\162 +\145\061\034\060\032\006\003\125\004\013\014\023\127\145\154\154 +\163\040\106\141\162\147\157\040\102\141\156\153\040\116\101\061 +\066\060\064\006\003\125\004\003\014\055\127\145\154\154\163\123 +\145\143\165\162\145\040\120\165\142\154\151\143\040\122\157\157 +\164\040\103\145\162\164\151\146\151\143\141\164\145\040\101\165 +\164\150\157\162\151\164\171\060\036\027\015\060\067\061\062\061 +\063\061\067\060\067\065\064\132\027\015\062\062\061\062\061\064 +\060\060\060\067\065\064\132\060\201\205\061\013\060\011\006\003 +\125\004\006\023\002\125\123\061\040\060\036\006\003\125\004\012 +\014\027\127\145\154\154\163\040\106\141\162\147\157\040\127\145 +\154\154\163\123\145\143\165\162\145\061\034\060\032\006\003\125 +\004\013\014\023\127\145\154\154\163\040\106\141\162\147\157\040 +\102\141\156\153\040\116\101\061\066\060\064\006\003\125\004\003 +\014\055\127\145\154\154\163\123\145\143\165\162\145\040\120\165 +\142\154\151\143\040\122\157\157\164\040\103\145\162\164\151\146 +\151\143\141\164\145\040\101\165\164\150\157\162\151\164\171\060 +\202\001\042\060\015\006\011\052\206\110\206\367\015\001\001\001 +\005\000\003\202\001\017\000\060\202\001\012\002\202\001\001\000 +\356\157\264\275\171\342\217\010\041\236\070\004\101\045\357\253 +\133\034\123\222\254\155\236\335\302\304\056\105\224\003\065\210 +\147\164\127\343\337\214\270\247\166\217\073\367\250\304\333\051 +\143\016\221\150\066\212\227\216\212\161\150\011\007\344\350\324 +\016\117\370\326\053\114\244\026\371\357\103\230\217\263\236\122 +\337\155\221\071\217\070\275\167\213\103\143\353\267\223\374\060 +\114\034\001\223\266\023\373\367\241\037\277\045\341\164\067\054 +\036\244\136\074\150\370\113\277\015\271\036\056\066\350\251\344 +\247\370\017\313\202\165\174\065\055\042\326\302\277\013\363\264 +\374\154\225\141\036\127\327\004\201\062\203\122\171\346\203\143 +\317\267\313\143\213\021\342\275\136\353\366\215\355\225\162\050 +\264\254\022\142\351\112\063\346\203\062\256\005\165\225\275\204 +\225\333\052\134\233\216\056\014\270\201\053\101\346\070\126\237 +\111\233\154\166\372\212\135\367\001\171\201\174\301\203\100\005 +\376\161\375\014\077\314\116\140\011\016\145\107\020\057\001\300 +\005\077\217\370\263\101\357\132\102\176\131\357\322\227\014\145 +\002\003\001\000\001\243\202\001\064\060\202\001\060\060\017\006 +\003\125\035\023\001\001\377\004\005\060\003\001\001\377\060\071 +\006\003\125\035\037\004\062\060\060\060\056\240\054\240\052\206 +\050\150\164\164\160\072\057\057\143\162\154\056\160\153\151\056 +\167\145\154\154\163\146\141\162\147\157\056\143\157\155\057\167 +\163\160\162\143\141\056\143\162\154\060\016\006\003\125\035\017 +\001\001\377\004\004\003\002\001\306\060\035\006\003\125\035\016 +\004\026\004\024\046\225\031\020\331\350\241\227\221\377\334\031 +\331\265\004\076\322\163\012\152\060\201\262\006\003\125\035\043 +\004\201\252\060\201\247\200\024\046\225\031\020\331\350\241\227 +\221\377\334\031\331\265\004\076\322\163\012\152\241\201\213\244 +\201\210\060\201\205\061\013\060\011\006\003\125\004\006\023\002 +\125\123\061\040\060\036\006\003\125\004\012\014\027\127\145\154 +\154\163\040\106\141\162\147\157\040\127\145\154\154\163\123\145 +\143\165\162\145\061\034\060\032\006\003\125\004\013\014\023\127 +\145\154\154\163\040\106\141\162\147\157\040\102\141\156\153\040 +\116\101\061\066\060\064\006\003\125\004\003\014\055\127\145\154 +\154\163\123\145\143\165\162\145\040\120\165\142\154\151\143\040 +\122\157\157\164\040\103\145\162\164\151\146\151\143\141\164\145 +\040\101\165\164\150\157\162\151\164\171\202\001\001\060\015\006 +\011\052\206\110\206\367\015\001\001\005\005\000\003\202\001\001 +\000\271\025\261\104\221\314\043\310\053\115\167\343\370\232\173 +\047\015\315\162\273\231\000\312\174\146\031\120\306\325\230\355 +\253\277\003\132\345\115\345\036\310\117\161\227\206\325\343\035 +\375\220\311\074\165\167\127\172\175\370\336\364\324\325\367\225 +\346\164\156\035\074\256\174\235\333\002\003\005\054\161\113\045 +\076\007\343\136\232\365\146\027\051\210\032\070\237\317\252\101 +\003\204\227\153\223\070\172\312\060\104\033\044\104\063\320\344 +\321\334\050\070\364\023\103\065\065\051\143\250\174\242\265\255 +\070\244\355\255\375\306\232\037\377\227\163\376\373\263\065\247 +\223\206\306\166\221\000\346\254\121\026\304\047\062\134\333\163 +\332\245\223\127\216\076\155\065\046\010\131\325\347\104\327\166 +\040\143\347\254\023\147\303\155\261\160\106\174\325\226\021\075 +\211\157\135\250\241\353\215\012\332\303\035\063\154\243\352\147 +\031\232\231\177\113\075\203\121\052\035\312\057\206\014\242\176 +\020\055\053\324\026\225\013\007\252\056\024\222\111\267\051\157 +\330\155\061\175\365\374\241\020\007\207\316\057\131\334\076\130 +\333 +END + +# Trust for Certificate "WellsSecure Public Root Certificate Authority" +CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "WellsSecure Public Root Certificate Authority" +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\347\264\366\235\141\354\220\151\333\176\220\247\100\032\074\364 +\175\117\350\356 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\025\254\245\302\222\055\171\274\350\177\313\147\355\002\317\066 +END +CKA_ISSUER MULTILINE_OCTAL +\060\201\205\061\013\060\011\006\003\125\004\006\023\002\125\123 +\061\040\060\036\006\003\125\004\012\014\027\127\145\154\154\163 +\040\106\141\162\147\157\040\127\145\154\154\163\123\145\143\165 +\162\145\061\034\060\032\006\003\125\004\013\014\023\127\145\154 +\154\163\040\106\141\162\147\157\040\102\141\156\153\040\116\101 +\061\066\060\064\006\003\125\004\003\014\055\127\145\154\154\163 +\123\145\143\165\162\145\040\120\165\142\154\151\143\040\122\157 +\157\164\040\103\145\162\164\151\146\151\143\141\164\145\040\101 +\165\164\150\157\162\151\164\171 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\001\001 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_TRUST_UNKNOWN +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_TRUST_UNKNOWN +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "COMODO ECC Certification Authority" +# +CKA_CLASS CK_OBJECT_CLASS CKO_CERTIFICATE +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "COMODO ECC Certification Authority" +CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509 +CKA_SUBJECT MULTILINE_OCTAL +\060\201\205\061\013\060\011\006\003\125\004\006\023\002\107\102 +\061\033\060\031\006\003\125\004\010\023\022\107\162\145\141\164 +\145\162\040\115\141\156\143\150\145\163\164\145\162\061\020\060 +\016\006\003\125\004\007\023\007\123\141\154\146\157\162\144\061 +\032\060\030\006\003\125\004\012\023\021\103\117\115\117\104\117 +\040\103\101\040\114\151\155\151\164\145\144\061\053\060\051\006 +\003\125\004\003\023\042\103\117\115\117\104\117\040\105\103\103 +\040\103\145\162\164\151\146\151\143\141\164\151\157\156\040\101 +\165\164\150\157\162\151\164\171 +END +CKA_ID UTF8 "0" +CKA_ISSUER MULTILINE_OCTAL +\060\201\205\061\013\060\011\006\003\125\004\006\023\002\107\102 +\061\033\060\031\006\003\125\004\010\023\022\107\162\145\141\164 +\145\162\040\115\141\156\143\150\145\163\164\145\162\061\020\060 +\016\006\003\125\004\007\023\007\123\141\154\146\157\162\144\061 +\032\060\030\006\003\125\004\012\023\021\103\117\115\117\104\117 +\040\103\101\040\114\151\155\151\164\145\144\061\053\060\051\006 +\003\125\004\003\023\042\103\117\115\117\104\117\040\105\103\103 +\040\103\145\162\164\151\146\151\143\141\164\151\157\156\040\101 +\165\164\150\157\162\151\164\171 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\020\037\107\257\252\142\000\160\120\124\114\001\236\233\143 +\231\052 +END +CKA_VALUE MULTILINE_OCTAL +\060\202\002\211\060\202\002\017\240\003\002\001\002\002\020\037 +\107\257\252\142\000\160\120\124\114\001\236\233\143\231\052\060 +\012\006\010\052\206\110\316\075\004\003\003\060\201\205\061\013 +\060\011\006\003\125\004\006\023\002\107\102\061\033\060\031\006 +\003\125\004\010\023\022\107\162\145\141\164\145\162\040\115\141 +\156\143\150\145\163\164\145\162\061\020\060\016\006\003\125\004 +\007\023\007\123\141\154\146\157\162\144\061\032\060\030\006\003 +\125\004\012\023\021\103\117\115\117\104\117\040\103\101\040\114 +\151\155\151\164\145\144\061\053\060\051\006\003\125\004\003\023 +\042\103\117\115\117\104\117\040\105\103\103\040\103\145\162\164 +\151\146\151\143\141\164\151\157\156\040\101\165\164\150\157\162 +\151\164\171\060\036\027\015\060\070\060\063\060\066\060\060\060 +\060\060\060\132\027\015\063\070\060\061\061\070\062\063\065\071 +\065\071\132\060\201\205\061\013\060\011\006\003\125\004\006\023 +\002\107\102\061\033\060\031\006\003\125\004\010\023\022\107\162 +\145\141\164\145\162\040\115\141\156\143\150\145\163\164\145\162 +\061\020\060\016\006\003\125\004\007\023\007\123\141\154\146\157 +\162\144\061\032\060\030\006\003\125\004\012\023\021\103\117\115 +\117\104\117\040\103\101\040\114\151\155\151\164\145\144\061\053 +\060\051\006\003\125\004\003\023\042\103\117\115\117\104\117\040 +\105\103\103\040\103\145\162\164\151\146\151\143\141\164\151\157 +\156\040\101\165\164\150\157\162\151\164\171\060\166\060\020\006 +\007\052\206\110\316\075\002\001\006\005\053\201\004\000\042\003 +\142\000\004\003\107\173\057\165\311\202\025\205\373\165\344\221 +\026\324\253\142\231\365\076\122\013\006\316\101\000\177\227\341 +\012\044\074\035\001\004\356\075\322\215\011\227\014\340\165\344 +\372\373\167\212\052\365\003\140\113\066\213\026\043\026\255\011 +\161\364\112\364\050\120\264\376\210\034\156\077\154\057\057\011 +\131\133\245\133\013\063\231\342\303\075\211\371\152\054\357\262 +\323\006\351\243\102\060\100\060\035\006\003\125\035\016\004\026 +\004\024\165\161\247\031\110\031\274\235\235\352\101\107\337\224 +\304\110\167\231\323\171\060\016\006\003\125\035\017\001\001\377 +\004\004\003\002\001\006\060\017\006\003\125\035\023\001\001\377 +\004\005\060\003\001\001\377\060\012\006\010\052\206\110\316\075 +\004\003\003\003\150\000\060\145\002\061\000\357\003\133\172\254 +\267\170\012\162\267\210\337\377\265\106\024\011\012\372\240\346 +\175\010\306\032\207\275\030\250\163\275\046\312\140\014\235\316 +\231\237\317\134\017\060\341\276\024\061\352\002\060\024\364\223 +\074\111\247\063\172\220\106\107\263\143\175\023\233\116\267\157 +\030\067\200\123\376\335\040\340\065\232\066\321\307\001\271\346 +\334\335\363\377\035\054\072\026\127\331\222\071\326 +END + +# Trust for Certificate "COMODO ECC Certification Authority" +CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "COMODO ECC Certification Authority" +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\237\164\116\237\053\115\272\354\017\061\054\120\266\126\073\216 +\055\223\303\021 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\174\142\377\164\235\061\123\136\150\112\325\170\252\036\277\043 +END +CKA_ISSUER MULTILINE_OCTAL +\060\201\205\061\013\060\011\006\003\125\004\006\023\002\107\102 +\061\033\060\031\006\003\125\004\010\023\022\107\162\145\141\164 +\145\162\040\115\141\156\143\150\145\163\164\145\162\061\020\060 +\016\006\003\125\004\007\023\007\123\141\154\146\157\162\144\061 +\032\060\030\006\003\125\004\012\023\021\103\117\115\117\104\117 +\040\103\101\040\114\151\155\151\164\145\144\061\053\060\051\006 +\003\125\004\003\023\042\103\117\115\117\104\117\040\105\103\103 +\040\103\145\162\164\151\146\151\143\141\164\151\157\156\040\101 +\165\164\150\157\162\151\164\171 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\020\037\107\257\252\142\000\160\120\124\114\001\236\233\143 +\231\052 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "MD5 Collisions Forged Rogue CA 25c3" +# +CKA_CLASS CK_OBJECT_CLASS CKO_CERTIFICATE +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "MD5 Collisions Forged Rogue CA 25c3" +CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509 +CKA_SUBJECT MULTILINE_OCTAL +\060\074\061\072\060\070\006\003\125\004\003\023\061\115\104\065 +\040\103\157\154\154\151\163\151\157\156\163\040\111\156\143\056 +\040\050\150\164\164\160\072\057\057\167\167\167\056\160\150\162 +\145\145\144\157\155\056\157\162\147\057\155\144\065\051 +END +CKA_ID UTF8 "0" +CKA_ISSUER MULTILINE_OCTAL +\060\132\061\013\060\011\006\003\125\004\006\023\002\125\123\061 +\034\060\032\006\003\125\004\012\023\023\105\161\165\151\146\141 +\170\040\123\145\143\165\162\145\040\111\156\143\056\061\055\060 +\053\006\003\125\004\003\023\044\105\161\165\151\146\141\170\040 +\123\145\143\165\162\145\040\107\154\157\142\141\154\040\145\102 +\165\163\151\156\145\163\163\040\103\101\055\061 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\001\102 +END +CKA_VALUE MULTILINE_OCTAL +\060\202\004\062\060\202\003\233\240\003\002\001\002\002\001\102 +\060\015\006\011\052\206\110\206\367\015\001\001\004\005\000\060 +\132\061\013\060\011\006\003\125\004\006\023\002\125\123\061\034 +\060\032\006\003\125\004\012\023\023\105\161\165\151\146\141\170 +\040\123\145\143\165\162\145\040\111\156\143\056\061\055\060\053 +\006\003\125\004\003\023\044\105\161\165\151\146\141\170\040\123 +\145\143\165\162\145\040\107\154\157\142\141\154\040\145\102\165 +\163\151\156\145\163\163\040\103\101\055\061\060\036\027\015\060 +\064\060\067\063\061\060\060\060\060\060\061\132\027\015\060\064 +\060\071\060\062\060\060\060\060\060\061\132\060\074\061\072\060 +\070\006\003\125\004\003\023\061\115\104\065\040\103\157\154\154 +\151\163\151\157\156\163\040\111\156\143\056\040\050\150\164\164 +\160\072\057\057\167\167\167\056\160\150\162\145\145\144\157\155 +\056\157\162\147\057\155\144\065\051\060\201\237\060\015\006\011 +\052\206\110\206\367\015\001\001\001\005\000\003\201\215\000\060 +\201\211\002\201\201\000\272\246\131\311\054\050\326\052\260\370 +\355\237\106\244\244\067\356\016\031\150\131\321\263\003\231\121 +\326\026\232\136\067\153\025\340\016\113\365\204\144\370\243\333 +\101\157\065\325\233\025\037\333\304\070\122\160\201\227\136\217 +\240\265\367\176\071\360\062\254\036\255\104\322\263\372\110\303 +\316\221\233\354\364\234\174\341\132\365\310\067\153\232\203\336 +\347\312\040\227\061\102\163\025\221\150\364\210\257\371\050\050 +\305\351\017\163\260\027\113\023\114\231\165\320\104\346\176\010 +\154\032\362\117\033\101\002\003\001\000\001\243\202\002\044\060 +\202\002\040\060\013\006\003\125\035\017\004\004\003\002\001\306 +\060\017\006\003\125\035\023\001\001\377\004\005\060\003\001\001 +\377\060\035\006\003\125\035\016\004\026\004\024\247\004\140\037 +\253\162\103\010\305\177\010\220\125\126\034\326\316\346\070\353 +\060\037\006\003\125\035\043\004\030\060\026\200\024\276\250\240 +\164\162\120\153\104\267\311\043\330\373\250\377\263\127\153\150 +\154\060\202\001\276\006\011\140\206\110\001\206\370\102\001\015 +\004\202\001\257\026\202\001\253\063\000\000\000\047\136\071\340 +\211\141\017\116\243\305\105\013\066\273\001\321\123\252\303\010 +\217\157\370\117\076\207\207\104\021\334\140\340\337\222\125\371 +\270\163\033\124\223\305\237\320\106\304\140\266\065\142\315\271 +\257\034\250\151\032\311\133\074\226\067\300\355\147\357\273\376 +\300\213\234\120\057\051\275\203\042\236\216\010\372\254\023\160 +\242\130\177\142\142\212\021\367\211\366\337\266\147\131\163\026 +\373\143\026\212\264\221\070\316\056\365\266\276\114\244\224\111 +\344\145\021\012\102\025\311\301\060\342\151\325\105\175\245\046 +\273\271\141\354\142\144\360\071\341\347\274\150\330\120\121\236 +\035\140\323\321\243\247\012\370\003\040\241\160\001\027\221\066 +\117\002\160\061\206\203\335\367\017\330\007\035\021\263\023\004 +\245\334\360\256\120\261\050\016\143\151\052\014\202\157\217\107 +\063\337\154\242\006\222\361\117\105\276\331\060\066\243\053\214 +\326\167\256\065\143\177\116\114\232\223\110\066\331\237\002\003 +\001\000\001\243\201\275\060\201\272\060\016\006\003\125\035\017 +\001\001\377\004\004\003\002\004\360\060\035\006\003\125\035\016 +\004\026\004\024\315\246\203\372\245\140\067\367\226\067\027\051 +\336\101\170\361\207\211\125\347\060\073\006\003\125\035\037\004 +\064\060\062\060\060\240\056\240\054\206\052\150\164\164\160\072 +\057\057\143\162\154\056\147\145\157\164\162\165\163\164\056\143 +\157\155\057\143\162\154\163\057\147\154\157\142\141\154\143\141 +\061\056\143\162\154\060\037\006\003\125\035\043\004\030\060\026 +\200\024\276\250\240\164\162\120\153\104\267\311\043\330\373\250 +\377\263\127\153\150\154\060\035\006\003\125\035\045\004\026\060 +\024\006\010\053\006\001\005\005\007\003\001\006\010\053\006\001 +\005\005\007\003\002\060\014\006\003\125\035\023\001\001\377\004 +\002\060\000\060\015\006\011\052\206\110\206\367\015\001\001\004 +\005\000\003\201\201\000\247\041\002\215\321\016\242\200\167\045 +\375\103\140\025\217\354\357\220\107\324\204\102\025\046\021\034 +\315\302\074\020\051\251\266\337\253\127\165\221\332\345\053\263 +\220\105\034\060\143\126\077\212\331\120\372\355\130\154\300\145 +\254\146\127\336\034\306\166\073\365\000\016\216\105\316\177\114 +\220\354\053\306\315\263\264\217\142\320\376\267\305\046\162\104 +\355\366\230\133\256\313\321\225\365\332\010\276\150\106\261\165 +\310\354\035\217\036\172\224\361\252\123\170\242\105\256\124\352 +\321\236\164\310\166\147 +END + +# Trust for Certificate "MD5 Collisions Forged Rogue CA 25c3" +CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "MD5 Collisions Forged Rogue CA 25c3" +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\144\043\023\176\134\123\326\112\246\144\205\355\066\124\365\253 +\005\132\213\212 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\026\172\023\025\271\027\071\243\361\005\152\346\076\331\072\070 +END +CKA_ISSUER MULTILINE_OCTAL +\060\132\061\013\060\011\006\003\125\004\006\023\002\125\123\061 +\034\060\032\006\003\125\004\012\023\023\105\161\165\151\146\141 +\170\040\123\145\143\165\162\145\040\111\156\143\056\061\055\060 +\053\006\003\125\004\003\023\044\105\161\165\151\146\141\170\040 +\123\145\143\165\162\145\040\107\154\157\142\141\154\040\145\102 +\165\163\151\156\145\163\163\040\103\101\055\061 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\001\102 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_NOT_TRUSTED +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_NOT_TRUSTED +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_NOT_TRUSTED +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "IGC/A" +# +CKA_CLASS CK_OBJECT_CLASS CKO_CERTIFICATE +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "IGC/A" +CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509 +CKA_SUBJECT MULTILINE_OCTAL +\060\201\205\061\013\060\011\006\003\125\004\006\023\002\106\122 +\061\017\060\015\006\003\125\004\010\023\006\106\162\141\156\143 +\145\061\016\060\014\006\003\125\004\007\023\005\120\141\162\151 +\163\061\020\060\016\006\003\125\004\012\023\007\120\115\057\123 +\107\104\116\061\016\060\014\006\003\125\004\013\023\005\104\103 +\123\123\111\061\016\060\014\006\003\125\004\003\023\005\111\107 +\103\057\101\061\043\060\041\006\011\052\206\110\206\367\015\001 +\011\001\026\024\151\147\143\141\100\163\147\144\156\056\160\155 +\056\147\157\165\166\056\146\162 +END +CKA_ID UTF8 "0" +CKA_ISSUER MULTILINE_OCTAL +\060\201\205\061\013\060\011\006\003\125\004\006\023\002\106\122 +\061\017\060\015\006\003\125\004\010\023\006\106\162\141\156\143 +\145\061\016\060\014\006\003\125\004\007\023\005\120\141\162\151 +\163\061\020\060\016\006\003\125\004\012\023\007\120\115\057\123 +\107\104\116\061\016\060\014\006\003\125\004\013\023\005\104\103 +\123\123\111\061\016\060\014\006\003\125\004\003\023\005\111\107 +\103\057\101\061\043\060\041\006\011\052\206\110\206\367\015\001 +\011\001\026\024\151\147\143\141\100\163\147\144\156\056\160\155 +\056\147\157\165\166\056\146\162 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\005\071\021\105\020\224 +END +CKA_VALUE MULTILINE_OCTAL +\060\202\004\002\060\202\002\352\240\003\002\001\002\002\005\071 +\021\105\020\224\060\015\006\011\052\206\110\206\367\015\001\001 +\005\005\000\060\201\205\061\013\060\011\006\003\125\004\006\023 +\002\106\122\061\017\060\015\006\003\125\004\010\023\006\106\162 +\141\156\143\145\061\016\060\014\006\003\125\004\007\023\005\120 +\141\162\151\163\061\020\060\016\006\003\125\004\012\023\007\120 +\115\057\123\107\104\116\061\016\060\014\006\003\125\004\013\023 +\005\104\103\123\123\111\061\016\060\014\006\003\125\004\003\023 +\005\111\107\103\057\101\061\043\060\041\006\011\052\206\110\206 +\367\015\001\011\001\026\024\151\147\143\141\100\163\147\144\156 +\056\160\155\056\147\157\165\166\056\146\162\060\036\027\015\060 +\062\061\062\061\063\061\064\062\071\062\063\132\027\015\062\060 +\061\060\061\067\061\064\062\071\062\062\132\060\201\205\061\013 +\060\011\006\003\125\004\006\023\002\106\122\061\017\060\015\006 +\003\125\004\010\023\006\106\162\141\156\143\145\061\016\060\014 +\006\003\125\004\007\023\005\120\141\162\151\163\061\020\060\016 +\006\003\125\004\012\023\007\120\115\057\123\107\104\116\061\016 +\060\014\006\003\125\004\013\023\005\104\103\123\123\111\061\016 +\060\014\006\003\125\004\003\023\005\111\107\103\057\101\061\043 +\060\041\006\011\052\206\110\206\367\015\001\011\001\026\024\151 +\147\143\141\100\163\147\144\156\056\160\155\056\147\157\165\166 +\056\146\162\060\202\001\042\060\015\006\011\052\206\110\206\367 +\015\001\001\001\005\000\003\202\001\017\000\060\202\001\012\002 +\202\001\001\000\262\037\321\320\142\305\063\073\300\004\206\210 +\263\334\370\210\367\375\337\103\337\172\215\232\111\134\366\116 +\252\314\034\271\241\353\047\211\362\106\351\073\112\161\325\035 +\216\055\317\346\255\253\143\120\307\124\013\156\022\311\220\066 +\306\330\057\332\221\252\150\305\162\376\027\012\262\027\176\171 +\265\062\210\160\312\160\300\226\112\216\344\125\315\035\047\224 +\277\316\162\052\354\134\371\163\040\376\275\367\056\211\147\270 +\273\107\163\022\367\321\065\151\072\362\012\271\256\377\106\102 +\106\242\277\241\205\032\371\277\344\377\111\205\367\243\160\206 +\062\034\135\237\140\367\251\255\245\377\317\321\064\371\175\133 +\027\306\334\326\016\050\153\302\335\361\365\063\150\235\116\374 +\207\174\066\022\326\243\200\350\103\015\125\141\224\352\144\067 +\107\352\167\312\320\262\130\005\303\135\176\261\250\106\220\061 +\126\316\160\052\226\262\060\270\167\346\171\300\275\051\073\375 +\224\167\114\275\040\315\101\045\340\056\307\033\273\356\244\004 +\101\322\135\255\022\152\212\233\107\373\311\335\106\100\341\235 +\074\063\320\265\002\003\001\000\001\243\167\060\165\060\017\006 +\003\125\035\023\001\001\377\004\005\060\003\001\001\377\060\013 +\006\003\125\035\017\004\004\003\002\001\106\060\025\006\003\125 +\035\040\004\016\060\014\060\012\006\010\052\201\172\001\171\001 +\001\001\060\035\006\003\125\035\016\004\026\004\024\243\005\057 +\030\140\120\302\211\012\335\053\041\117\377\216\116\250\060\061 +\066\060\037\006\003\125\035\043\004\030\060\026\200\024\243\005 +\057\030\140\120\302\211\012\335\053\041\117\377\216\116\250\060 +\061\066\060\015\006\011\052\206\110\206\367\015\001\001\005\005 +\000\003\202\001\001\000\005\334\046\330\372\167\025\104\150\374 +\057\146\072\164\340\135\344\051\377\006\007\023\204\112\253\317 +\155\240\037\121\224\370\111\313\164\066\024\274\025\335\333\211 +\057\335\217\240\135\174\365\022\353\237\236\070\244\107\314\263 +\226\331\276\234\045\253\003\176\063\017\225\201\015\375\026\340 +\210\276\067\360\154\135\320\061\233\062\053\135\027\145\223\230 +\140\274\156\217\261\250\074\036\331\034\363\251\046\102\371\144 +\035\302\347\222\366\364\036\132\252\031\122\135\257\350\242\367 +\140\240\366\215\360\211\365\156\340\012\005\001\225\311\213\040 +\012\272\132\374\232\054\074\275\303\267\311\135\170\045\005\077 +\126\024\233\014\332\373\072\110\376\227\151\136\312\020\206\367 +\116\226\004\010\115\354\260\276\135\334\073\216\117\301\375\232 +\066\064\232\114\124\176\027\003\110\225\010\021\034\007\157\205 +\010\176\135\115\304\235\333\373\256\316\262\321\263\270\203\154 +\035\262\263\171\361\330\160\231\176\360\023\002\316\136\335\121 +\323\337\066\201\241\033\170\057\161\263\361\131\114\106\030\050 +\253\205\322\140\126\132 +END + +# Trust for Certificate "IGC/A" +CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "IGC/A" +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\140\326\211\164\265\302\145\236\212\017\301\210\174\210\322\106 +\151\033\030\054 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\014\177\335\152\364\052\271\310\233\275\040\176\251\333\134\067 +END +CKA_ISSUER MULTILINE_OCTAL +\060\201\205\061\013\060\011\006\003\125\004\006\023\002\106\122 +\061\017\060\015\006\003\125\004\010\023\006\106\162\141\156\143 +\145\061\016\060\014\006\003\125\004\007\023\005\120\141\162\151 +\163\061\020\060\016\006\003\125\004\012\023\007\120\115\057\123 +\107\104\116\061\016\060\014\006\003\125\004\013\023\005\104\103 +\123\123\111\061\016\060\014\006\003\125\004\003\023\005\111\107 +\103\057\101\061\043\060\041\006\011\052\206\110\206\367\015\001 +\011\001\026\024\151\147\143\141\100\163\147\144\156\056\160\155 +\056\147\157\165\166\056\146\162 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\005\071\021\105\020\224 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "Security Communication EV RootCA1" +# +CKA_CLASS CK_OBJECT_CLASS CKO_CERTIFICATE +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "Security Communication EV RootCA1" +CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509 +CKA_SUBJECT MULTILINE_OCTAL +\060\140\061\013\060\011\006\003\125\004\006\023\002\112\120\061 +\045\060\043\006\003\125\004\012\023\034\123\105\103\117\115\040 +\124\162\165\163\164\040\123\171\163\164\145\155\163\040\103\117 +\056\054\114\124\104\056\061\052\060\050\006\003\125\004\013\023 +\041\123\145\143\165\162\151\164\171\040\103\157\155\155\165\156 +\151\143\141\164\151\157\156\040\105\126\040\122\157\157\164\103 +\101\061 +END +CKA_ID UTF8 "0" +CKA_ISSUER MULTILINE_OCTAL +\060\140\061\013\060\011\006\003\125\004\006\023\002\112\120\061 +\045\060\043\006\003\125\004\012\023\034\123\105\103\117\115\040 +\124\162\165\163\164\040\123\171\163\164\145\155\163\040\103\117 +\056\054\114\124\104\056\061\052\060\050\006\003\125\004\013\023 +\041\123\145\143\165\162\151\164\171\040\103\157\155\155\165\156 +\151\143\141\164\151\157\156\040\105\126\040\122\157\157\164\103 +\101\061 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\001\000 +END +CKA_VALUE MULTILINE_OCTAL +\060\202\003\175\060\202\002\145\240\003\002\001\002\002\001\000 +\060\015\006\011\052\206\110\206\367\015\001\001\005\005\000\060 +\140\061\013\060\011\006\003\125\004\006\023\002\112\120\061\045 +\060\043\006\003\125\004\012\023\034\123\105\103\117\115\040\124 +\162\165\163\164\040\123\171\163\164\145\155\163\040\103\117\056 +\054\114\124\104\056\061\052\060\050\006\003\125\004\013\023\041 +\123\145\143\165\162\151\164\171\040\103\157\155\155\165\156\151 +\143\141\164\151\157\156\040\105\126\040\122\157\157\164\103\101 +\061\060\036\027\015\060\067\060\066\060\066\060\062\061\062\063 +\062\132\027\015\063\067\060\066\060\066\060\062\061\062\063\062 +\132\060\140\061\013\060\011\006\003\125\004\006\023\002\112\120 +\061\045\060\043\006\003\125\004\012\023\034\123\105\103\117\115 +\040\124\162\165\163\164\040\123\171\163\164\145\155\163\040\103 +\117\056\054\114\124\104\056\061\052\060\050\006\003\125\004\013 +\023\041\123\145\143\165\162\151\164\171\040\103\157\155\155\165 +\156\151\143\141\164\151\157\156\040\105\126\040\122\157\157\164 +\103\101\061\060\202\001\042\060\015\006\011\052\206\110\206\367 +\015\001\001\001\005\000\003\202\001\017\000\060\202\001\012\002 +\202\001\001\000\274\177\354\127\233\044\340\376\234\272\102\171 +\251\210\212\372\200\340\365\007\051\103\352\216\012\064\066\215 +\034\372\247\265\071\170\377\227\165\367\057\344\252\153\004\204 +\104\312\246\342\150\216\375\125\120\142\017\244\161\016\316\007 +\070\055\102\205\120\255\074\226\157\213\325\242\016\317\336\111 +\211\075\326\144\056\070\345\036\154\265\127\212\236\357\110\016 +\315\172\151\026\207\104\265\220\344\006\235\256\241\004\227\130 +\171\357\040\112\202\153\214\042\277\354\037\017\351\204\161\355 +\361\016\344\270\030\023\314\126\066\135\321\232\036\121\153\071 +\156\140\166\210\064\013\363\263\321\260\235\312\141\342\144\035 +\301\106\007\270\143\335\036\063\145\263\216\011\125\122\075\265 +\275\377\007\353\255\141\125\030\054\251\151\230\112\252\100\305 +\063\024\145\164\000\371\221\336\257\003\110\305\100\124\334\017 +\204\220\150\040\305\222\226\334\056\345\002\105\252\300\137\124 +\370\155\352\111\317\135\154\113\257\357\232\302\126\134\306\065 +\126\102\152\060\137\302\253\366\342\075\077\263\311\021\217\061 +\114\327\237\111\002\003\001\000\001\243\102\060\100\060\035\006 +\003\125\035\016\004\026\004\024\065\112\365\115\257\077\327\202 +\070\254\253\161\145\027\165\214\235\125\223\346\060\016\006\003 +\125\035\017\001\001\377\004\004\003\002\001\006\060\017\006\003 +\125\035\023\001\001\377\004\005\060\003\001\001\377\060\015\006 +\011\052\206\110\206\367\015\001\001\005\005\000\003\202\001\001 +\000\250\207\351\354\370\100\147\135\303\301\146\307\100\113\227 +\374\207\023\220\132\304\357\240\312\137\213\267\247\267\361\326 +\265\144\267\212\263\270\033\314\332\373\254\146\210\101\316\350 +\374\344\333\036\210\246\355\047\120\033\002\060\044\106\171\376 +\004\207\160\227\100\163\321\300\301\127\031\232\151\245\047\231 +\253\235\142\204\366\121\301\054\311\043\025\330\050\267\253\045 +\023\265\106\341\206\002\377\046\214\304\210\222\035\126\376\031 +\147\362\125\344\200\243\153\234\253\167\341\121\161\015\040\333 +\020\232\333\275\166\171\007\167\231\050\255\232\136\332\261\117 +\104\054\065\216\245\226\307\375\203\360\130\306\171\326\230\174 +\250\215\376\206\076\007\026\222\341\173\347\035\354\063\166\176 +\102\056\112\205\371\221\211\150\204\003\201\245\233\232\276\343 +\067\305\124\253\126\073\030\055\101\244\014\370\102\333\231\240 +\340\162\157\273\135\341\026\117\123\012\144\371\116\364\277\116 +\124\275\170\154\210\352\277\234\023\044\302\160\151\242\177\017 +\310\074\255\010\311\260\230\100\243\052\347\210\203\355\167\217 +\164 +END + +# Trust for Certificate "Security Communication EV RootCA1" +CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "Security Communication EV RootCA1" +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\376\270\304\062\334\371\166\232\316\256\075\330\220\217\375\050 +\206\145\144\175 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\042\055\246\001\352\174\012\367\360\154\126\103\077\167\166\323 +END +CKA_ISSUER MULTILINE_OCTAL +\060\140\061\013\060\011\006\003\125\004\006\023\002\112\120\061 +\045\060\043\006\003\125\004\012\023\034\123\105\103\117\115\040 +\124\162\165\163\164\040\123\171\163\164\145\155\163\040\103\117 +\056\054\114\124\104\056\061\052\060\050\006\003\125\004\013\023 +\041\123\145\143\165\162\151\164\171\040\103\157\155\155\165\156 +\151\143\141\164\151\157\156\040\105\126\040\122\157\157\164\103 +\101\061 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\001\000 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_TRUST_UNKNOWN +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_TRUST_UNKNOWN +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "OISTE WISeKey Global Root GA CA" +# +CKA_CLASS CK_OBJECT_CLASS CKO_CERTIFICATE +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "OISTE WISeKey Global Root GA CA" +CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509 +CKA_SUBJECT MULTILINE_OCTAL +\060\201\212\061\013\060\011\006\003\125\004\006\023\002\103\110 +\061\020\060\016\006\003\125\004\012\023\007\127\111\123\145\113 +\145\171\061\033\060\031\006\003\125\004\013\023\022\103\157\160 +\171\162\151\147\150\164\040\050\143\051\040\062\060\060\065\061 +\042\060\040\006\003\125\004\013\023\031\117\111\123\124\105\040 +\106\157\165\156\144\141\164\151\157\156\040\105\156\144\157\162 +\163\145\144\061\050\060\046\006\003\125\004\003\023\037\117\111 +\123\124\105\040\127\111\123\145\113\145\171\040\107\154\157\142 +\141\154\040\122\157\157\164\040\107\101\040\103\101 +END +CKA_ID UTF8 "0" +CKA_ISSUER MULTILINE_OCTAL +\060\201\212\061\013\060\011\006\003\125\004\006\023\002\103\110 +\061\020\060\016\006\003\125\004\012\023\007\127\111\123\145\113 +\145\171\061\033\060\031\006\003\125\004\013\023\022\103\157\160 +\171\162\151\147\150\164\040\050\143\051\040\062\060\060\065\061 +\042\060\040\006\003\125\004\013\023\031\117\111\123\124\105\040 +\106\157\165\156\144\141\164\151\157\156\040\105\156\144\157\162 +\163\145\144\061\050\060\046\006\003\125\004\003\023\037\117\111 +\123\124\105\040\127\111\123\145\113\145\171\040\107\154\157\142 +\141\154\040\122\157\157\164\040\107\101\040\103\101 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\020\101\075\162\307\364\153\037\201\103\175\361\322\050\124 +\337\232 +END +CKA_VALUE MULTILINE_OCTAL +\060\202\003\361\060\202\002\331\240\003\002\001\002\002\020\101 +\075\162\307\364\153\037\201\103\175\361\322\050\124\337\232\060 +\015\006\011\052\206\110\206\367\015\001\001\005\005\000\060\201 +\212\061\013\060\011\006\003\125\004\006\023\002\103\110\061\020 +\060\016\006\003\125\004\012\023\007\127\111\123\145\113\145\171 +\061\033\060\031\006\003\125\004\013\023\022\103\157\160\171\162 +\151\147\150\164\040\050\143\051\040\062\060\060\065\061\042\060 +\040\006\003\125\004\013\023\031\117\111\123\124\105\040\106\157 +\165\156\144\141\164\151\157\156\040\105\156\144\157\162\163\145 +\144\061\050\060\046\006\003\125\004\003\023\037\117\111\123\124 +\105\040\127\111\123\145\113\145\171\040\107\154\157\142\141\154 +\040\122\157\157\164\040\107\101\040\103\101\060\036\027\015\060 +\065\061\062\061\061\061\066\060\063\064\064\132\027\015\063\067 +\061\062\061\061\061\066\060\071\065\061\132\060\201\212\061\013 +\060\011\006\003\125\004\006\023\002\103\110\061\020\060\016\006 +\003\125\004\012\023\007\127\111\123\145\113\145\171\061\033\060 +\031\006\003\125\004\013\023\022\103\157\160\171\162\151\147\150 +\164\040\050\143\051\040\062\060\060\065\061\042\060\040\006\003 +\125\004\013\023\031\117\111\123\124\105\040\106\157\165\156\144 +\141\164\151\157\156\040\105\156\144\157\162\163\145\144\061\050 +\060\046\006\003\125\004\003\023\037\117\111\123\124\105\040\127 +\111\123\145\113\145\171\040\107\154\157\142\141\154\040\122\157 +\157\164\040\107\101\040\103\101\060\202\001\042\060\015\006\011 +\052\206\110\206\367\015\001\001\001\005\000\003\202\001\017\000 +\060\202\001\012\002\202\001\001\000\313\117\263\000\233\075\066 +\335\371\321\111\152\153\020\111\037\354\330\053\262\306\370\062 +\201\051\103\225\114\232\031\043\041\025\105\336\343\310\034\121 +\125\133\256\223\350\067\377\053\153\351\324\352\276\052\335\250 +\121\053\327\146\303\141\134\140\002\310\365\316\162\173\073\270 +\362\116\145\010\232\315\244\152\031\301\001\273\163\246\327\366 +\303\335\315\274\244\213\265\231\141\270\001\242\243\324\115\324 +\005\075\221\255\370\264\010\161\144\257\160\361\034\153\176\366 +\303\167\235\044\163\173\344\014\214\341\331\066\341\231\213\005 +\231\013\355\105\061\011\312\302\000\333\367\162\240\226\252\225 +\207\320\216\307\266\141\163\015\166\146\214\334\033\264\143\242 +\237\177\223\023\060\361\241\047\333\331\377\054\125\210\221\240 +\340\117\007\260\050\126\214\030\033\227\104\216\211\335\340\027 +\156\347\052\357\217\071\012\061\204\202\330\100\024\111\056\172 +\101\344\247\376\343\144\314\301\131\161\113\054\041\247\133\175 +\340\035\321\056\201\233\303\330\150\367\275\226\033\254\160\261 +\026\024\013\333\140\271\046\001\005\002\003\001\000\001\243\121 +\060\117\060\013\006\003\125\035\017\004\004\003\002\001\206\060 +\017\006\003\125\035\023\001\001\377\004\005\060\003\001\001\377 +\060\035\006\003\125\035\016\004\026\004\024\263\003\176\256\066 +\274\260\171\321\334\224\046\266\021\276\041\262\151\206\224\060 +\020\006\011\053\006\001\004\001\202\067\025\001\004\003\002\001 +\000\060\015\006\011\052\206\110\206\367\015\001\001\005\005\000 +\003\202\001\001\000\113\241\377\013\207\156\263\371\301\103\261 +\110\363\050\300\035\056\311\011\101\372\224\000\034\244\244\253 +\111\117\217\075\036\357\115\157\275\274\244\366\362\046\060\311 +\020\312\035\210\373\164\031\037\205\105\275\260\154\121\371\066 +\176\333\365\114\062\072\101\117\133\107\317\350\013\055\266\304 +\031\235\164\305\107\306\073\152\017\254\024\333\074\364\163\234 +\251\005\337\000\334\164\170\372\370\065\140\131\002\023\030\174 +\274\373\115\260\040\155\103\273\140\060\172\147\063\134\305\231 +\321\370\055\071\122\163\373\214\252\227\045\134\162\331\010\036 +\253\116\074\343\201\061\237\003\246\373\300\376\051\210\125\332 +\204\325\120\003\266\342\204\243\246\066\252\021\072\001\341\030 +\113\326\104\150\263\075\371\123\164\204\263\106\221\106\226\000 +\267\200\054\266\341\343\020\342\333\242\347\050\217\001\226\142 +\026\076\000\343\034\245\066\201\030\242\114\122\166\300\021\243 +\156\346\035\272\343\132\276\066\123\305\076\165\217\206\151\051 +\130\123\265\234\273\157\237\134\305\030\354\335\057\341\230\311 +\374\276\337\012\015 +END + +# Trust for Certificate "OISTE WISeKey Global Root GA CA" +CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "OISTE WISeKey Global Root GA CA" +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\131\042\241\341\132\352\026\065\041\370\230\071\152\106\106\260 +\104\033\017\251 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\274\154\121\063\247\351\323\146\143\124\025\162\033\041\222\223 +END +CKA_ISSUER MULTILINE_OCTAL +\060\201\212\061\013\060\011\006\003\125\004\006\023\002\103\110 +\061\020\060\016\006\003\125\004\012\023\007\127\111\123\145\113 +\145\171\061\033\060\031\006\003\125\004\013\023\022\103\157\160 +\171\162\151\147\150\164\040\050\143\051\040\062\060\060\065\061 +\042\060\040\006\003\125\004\013\023\031\117\111\123\124\105\040 +\106\157\165\156\144\141\164\151\157\156\040\105\156\144\157\162 +\163\145\144\061\050\060\046\006\003\125\004\003\023\037\117\111 +\123\124\105\040\127\111\123\145\113\145\171\040\107\154\157\142 +\141\154\040\122\157\157\164\040\107\101\040\103\101 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\020\101\075\162\307\364\153\037\201\103\175\361\322\050\124 +\337\232 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_TRUST_UNKNOWN +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "S-TRUST Authentication and Encryption Root CA 2005 PN" +# +CKA_CLASS CK_OBJECT_CLASS CKO_CERTIFICATE +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "S-TRUST Authentication and Encryption Root CA 2005 PN" +CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509 +CKA_SUBJECT MULTILINE_OCTAL +\060\201\256\061\013\060\011\006\003\125\004\006\023\002\104\105 +\061\040\060\036\006\003\125\004\010\023\027\102\141\144\145\156 +\055\127\165\145\162\164\164\145\155\142\145\162\147\040\050\102 +\127\051\061\022\060\020\006\003\125\004\007\023\011\123\164\165 +\164\164\147\141\162\164\061\051\060\047\006\003\125\004\012\023 +\040\104\145\165\164\163\143\150\145\162\040\123\160\141\162\153 +\141\163\163\145\156\040\126\145\162\154\141\147\040\107\155\142 +\110\061\076\060\074\006\003\125\004\003\023\065\123\055\124\122 +\125\123\124\040\101\165\164\150\145\156\164\151\143\141\164\151 +\157\156\040\141\156\144\040\105\156\143\162\171\160\164\151\157 +\156\040\122\157\157\164\040\103\101\040\062\060\060\065\072\120 +\116 +END +CKA_ID UTF8 "0" +CKA_ISSUER MULTILINE_OCTAL +\060\201\256\061\013\060\011\006\003\125\004\006\023\002\104\105 +\061\040\060\036\006\003\125\004\010\023\027\102\141\144\145\156 +\055\127\165\145\162\164\164\145\155\142\145\162\147\040\050\102 +\127\051\061\022\060\020\006\003\125\004\007\023\011\123\164\165 +\164\164\147\141\162\164\061\051\060\047\006\003\125\004\012\023 +\040\104\145\165\164\163\143\150\145\162\040\123\160\141\162\153 +\141\163\163\145\156\040\126\145\162\154\141\147\040\107\155\142 +\110\061\076\060\074\006\003\125\004\003\023\065\123\055\124\122 +\125\123\124\040\101\165\164\150\145\156\164\151\143\141\164\151 +\157\156\040\141\156\144\040\105\156\143\162\171\160\164\151\157 +\156\040\122\157\157\164\040\103\101\040\062\060\060\065\072\120 +\116 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\020\067\031\030\346\123\124\174\032\265\270\313\131\132\333 +\065\267 +END +CKA_VALUE MULTILINE_OCTAL +\060\202\004\173\060\202\003\143\240\003\002\001\002\002\020\067 +\031\030\346\123\124\174\032\265\270\313\131\132\333\065\267\060 +\015\006\011\052\206\110\206\367\015\001\001\005\005\000\060\201 +\256\061\013\060\011\006\003\125\004\006\023\002\104\105\061\040 +\060\036\006\003\125\004\010\023\027\102\141\144\145\156\055\127 +\165\145\162\164\164\145\155\142\145\162\147\040\050\102\127\051 +\061\022\060\020\006\003\125\004\007\023\011\123\164\165\164\164 +\147\141\162\164\061\051\060\047\006\003\125\004\012\023\040\104 +\145\165\164\163\143\150\145\162\040\123\160\141\162\153\141\163 +\163\145\156\040\126\145\162\154\141\147\040\107\155\142\110\061 +\076\060\074\006\003\125\004\003\023\065\123\055\124\122\125\123 +\124\040\101\165\164\150\145\156\164\151\143\141\164\151\157\156 +\040\141\156\144\040\105\156\143\162\171\160\164\151\157\156\040 +\122\157\157\164\040\103\101\040\062\060\060\065\072\120\116\060 +\036\027\015\060\065\060\066\062\062\060\060\060\060\060\060\132 +\027\015\063\060\060\066\062\061\062\063\065\071\065\071\132\060 +\201\256\061\013\060\011\006\003\125\004\006\023\002\104\105\061 +\040\060\036\006\003\125\004\010\023\027\102\141\144\145\156\055 +\127\165\145\162\164\164\145\155\142\145\162\147\040\050\102\127 +\051\061\022\060\020\006\003\125\004\007\023\011\123\164\165\164 +\164\147\141\162\164\061\051\060\047\006\003\125\004\012\023\040 +\104\145\165\164\163\143\150\145\162\040\123\160\141\162\153\141 +\163\163\145\156\040\126\145\162\154\141\147\040\107\155\142\110 +\061\076\060\074\006\003\125\004\003\023\065\123\055\124\122\125 +\123\124\040\101\165\164\150\145\156\164\151\143\141\164\151\157 +\156\040\141\156\144\040\105\156\143\162\171\160\164\151\157\156 +\040\122\157\157\164\040\103\101\040\062\060\060\065\072\120\116 +\060\202\001\042\060\015\006\011\052\206\110\206\367\015\001\001 +\001\005\000\003\202\001\017\000\060\202\001\012\002\202\001\001 +\000\331\265\112\301\323\063\352\323\106\263\321\342\114\322\365 +\266\203\320\157\325\030\351\223\257\047\216\023\315\265\045\066 +\120\064\022\144\051\241\125\341\072\140\223\236\050\311\343\363 +\233\341\004\260\043\277\225\212\216\133\033\101\177\132\303\350 +\115\114\325\044\026\076\207\110\324\047\256\346\367\123\035\273 +\014\000\357\076\141\161\255\277\072\172\130\037\224\075\134\201 +\325\325\157\337\270\233\322\365\345\313\203\162\222\302\123\262 +\202\002\353\255\255\137\026\055\222\123\166\361\211\266\054\365 +\301\057\340\247\112\157\240\060\152\062\353\232\164\003\150\170 +\023\235\312\057\233\013\035\276\317\165\015\046\227\233\307\365 +\136\012\237\170\337\263\274\354\232\272\357\125\217\033\232\246 +\007\143\051\027\131\142\011\052\171\007\167\245\340\321\027\151 +\351\133\335\366\220\253\342\230\012\000\321\045\155\236\327\205 +\207\057\222\361\321\166\203\117\013\072\131\067\050\057\063\247 +\027\120\326\040\013\012\364\046\371\237\070\347\055\244\270\233 +\211\215\255\255\311\152\175\211\027\273\366\177\200\203\172\346 +\355\002\003\001\000\001\243\201\222\060\201\217\060\022\006\003 +\125\035\023\001\001\377\004\010\060\006\001\001\377\002\001\000 +\060\016\006\003\125\035\017\001\001\377\004\004\003\002\001\006 +\060\051\006\003\125\035\021\004\042\060\040\244\036\060\034\061 +\032\060\030\006\003\125\004\003\023\021\123\124\122\157\156\154 +\151\156\145\061\055\062\060\064\070\055\065\060\035\006\003\125 +\035\016\004\026\004\024\017\312\036\134\171\340\242\363\051\266 +\322\205\263\013\112\265\145\354\153\122\060\037\006\003\125\035 +\043\004\030\060\026\200\024\017\312\036\134\171\340\242\363\051 +\266\322\205\263\013\112\265\145\354\153\122\060\015\006\011\052 +\206\110\206\367\015\001\001\005\005\000\003\202\001\001\000\257 +\001\360\355\031\074\050\350\115\134\273\245\143\034\210\063\003 +\247\000\207\244\037\040\253\326\034\343\006\037\227\176\124\275 +\267\321\262\311\325\332\200\354\027\327\212\365\173\302\000\366 +\351\021\157\204\240\132\045\061\342\211\371\244\000\077\061\150 +\056\325\075\350\156\346\325\035\074\077\262\275\237\167\353\235 +\323\214\272\300\327\266\115\354\123\234\017\004\156\352\065\147 +\127\343\012\145\173\220\072\341\117\076\303\000\222\172\273\005 +\211\163\214\313\246\115\300\373\366\002\326\260\007\243\003\302 +\047\100\237\014\344\205\202\055\257\232\102\035\320\307\215\370 +\100\356\235\006\127\034\331\242\330\200\024\376\341\143\055\062 +\207\325\224\122\226\072\106\306\161\226\075\367\230\016\262\221 +\252\217\332\364\116\044\000\071\125\350\255\027\271\323\064\053 +\112\251\100\314\027\052\125\145\101\164\102\176\365\300\257\310 +\223\255\362\030\133\075\211\014\333\107\071\044\370\340\114\362 +\037\260\075\012\312\005\116\211\041\032\343\052\231\254\374\177 +\241\361\017\033\037\075\236\004\203\335\226\331\035\072\224 +END + +# Trust for Certificate "S-TRUST Authentication and Encryption Root CA 2005 PN" +CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "S-TRUST Authentication and Encryption Root CA 2005 PN" +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\276\265\251\225\164\153\236\337\163\213\126\346\337\103\172\167 +\276\020\153\201 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\004\113\375\311\154\332\052\062\205\174\131\204\141\106\212\144 +END +CKA_ISSUER MULTILINE_OCTAL +\060\201\256\061\013\060\011\006\003\125\004\006\023\002\104\105 +\061\040\060\036\006\003\125\004\010\023\027\102\141\144\145\156 +\055\127\165\145\162\164\164\145\155\142\145\162\147\040\050\102 +\127\051\061\022\060\020\006\003\125\004\007\023\011\123\164\165 +\164\164\147\141\162\164\061\051\060\047\006\003\125\004\012\023 +\040\104\145\165\164\163\143\150\145\162\040\123\160\141\162\153 +\141\163\163\145\156\040\126\145\162\154\141\147\040\107\155\142 +\110\061\076\060\074\006\003\125\004\003\023\065\123\055\124\122 +\125\123\124\040\101\165\164\150\145\156\164\151\143\141\164\151 +\157\156\040\141\156\144\040\105\156\143\162\171\160\164\151\157 +\156\040\122\157\157\164\040\103\101\040\062\060\060\065\072\120 +\116 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\020\067\031\030\346\123\124\174\032\265\270\313\131\132\333 +\065\267 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_TRUST_UNKNOWN +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_TRUST_UNKNOWN +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "Microsec e-Szigno Root CA" +# +CKA_CLASS CK_OBJECT_CLASS CKO_CERTIFICATE +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "Microsec e-Szigno Root CA" +CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509 +CKA_SUBJECT MULTILINE_OCTAL +\060\162\061\013\060\011\006\003\125\004\006\023\002\110\125\061 +\021\060\017\006\003\125\004\007\023\010\102\165\144\141\160\145 +\163\164\061\026\060\024\006\003\125\004\012\023\015\115\151\143 +\162\157\163\145\143\040\114\164\144\056\061\024\060\022\006\003 +\125\004\013\023\013\145\055\123\172\151\147\156\157\040\103\101 +\061\042\060\040\006\003\125\004\003\023\031\115\151\143\162\157 +\163\145\143\040\145\055\123\172\151\147\156\157\040\122\157\157 +\164\040\103\101 +END +CKA_ID UTF8 "0" +CKA_ISSUER MULTILINE_OCTAL +\060\162\061\013\060\011\006\003\125\004\006\023\002\110\125\061 +\021\060\017\006\003\125\004\007\023\010\102\165\144\141\160\145 +\163\164\061\026\060\024\006\003\125\004\012\023\015\115\151\143 +\162\157\163\145\143\040\114\164\144\056\061\024\060\022\006\003 +\125\004\013\023\013\145\055\123\172\151\147\156\157\040\103\101 +\061\042\060\040\006\003\125\004\003\023\031\115\151\143\162\157 +\163\145\143\040\145\055\123\172\151\147\156\157\040\122\157\157 +\164\040\103\101 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\021\000\314\270\347\277\116\051\032\375\242\334\146\245\034 +\054\017\021 +END +CKA_VALUE MULTILINE_OCTAL +\060\202\007\250\060\202\006\220\240\003\002\001\002\002\021\000 +\314\270\347\277\116\051\032\375\242\334\146\245\034\054\017\021 +\060\015\006\011\052\206\110\206\367\015\001\001\005\005\000\060 +\162\061\013\060\011\006\003\125\004\006\023\002\110\125\061\021 +\060\017\006\003\125\004\007\023\010\102\165\144\141\160\145\163 +\164\061\026\060\024\006\003\125\004\012\023\015\115\151\143\162 +\157\163\145\143\040\114\164\144\056\061\024\060\022\006\003\125 +\004\013\023\013\145\055\123\172\151\147\156\157\040\103\101\061 +\042\060\040\006\003\125\004\003\023\031\115\151\143\162\157\163 +\145\143\040\145\055\123\172\151\147\156\157\040\122\157\157\164 +\040\103\101\060\036\027\015\060\065\060\064\060\066\061\062\062 +\070\064\064\132\027\015\061\067\060\064\060\066\061\062\062\070 +\064\064\132\060\162\061\013\060\011\006\003\125\004\006\023\002 +\110\125\061\021\060\017\006\003\125\004\007\023\010\102\165\144 +\141\160\145\163\164\061\026\060\024\006\003\125\004\012\023\015 +\115\151\143\162\157\163\145\143\040\114\164\144\056\061\024\060 +\022\006\003\125\004\013\023\013\145\055\123\172\151\147\156\157 +\040\103\101\061\042\060\040\006\003\125\004\003\023\031\115\151 +\143\162\157\163\145\143\040\145\055\123\172\151\147\156\157\040 +\122\157\157\164\040\103\101\060\202\001\042\060\015\006\011\052 +\206\110\206\367\015\001\001\001\005\000\003\202\001\017\000\060 +\202\001\012\002\202\001\001\000\355\310\000\325\201\173\315\070 +\000\107\314\333\204\301\041\151\054\164\220\014\041\331\123\207 +\355\076\103\104\123\257\253\370\200\233\074\170\215\324\215\256 +\270\357\323\021\334\201\346\317\073\226\214\326\157\025\306\167 +\176\241\057\340\137\222\266\047\327\166\232\035\103\074\352\331 +\354\057\356\071\363\152\147\113\213\202\317\042\370\145\125\376 +\054\313\057\175\110\172\075\165\371\252\240\047\273\170\302\006 +\312\121\302\176\146\113\257\315\242\247\115\002\202\077\202\254 +\205\306\341\017\220\107\231\224\012\161\162\223\052\311\246\300 +\276\074\126\114\163\222\047\361\153\265\365\375\374\060\005\140 +\222\306\353\226\176\001\221\302\151\261\036\035\173\123\105\270 +\334\101\037\311\213\161\326\124\024\343\213\124\170\077\276\364 +\142\073\133\365\243\354\325\222\164\342\164\060\357\001\333\341 +\324\253\231\233\052\153\370\275\246\034\206\043\102\137\354\111 +\336\232\213\133\364\162\072\100\305\111\076\245\276\216\252\161 +\353\154\372\365\032\344\152\375\173\175\125\100\357\130\156\346 +\331\325\274\044\253\301\357\267\002\003\001\000\001\243\202\004 +\067\060\202\004\063\060\147\006\010\053\006\001\005\005\007\001 +\001\004\133\060\131\060\050\006\010\053\006\001\005\005\007\060 +\001\206\034\150\164\164\160\163\072\057\057\162\143\141\056\145 +\055\163\172\151\147\156\157\056\150\165\057\157\143\163\160\060 +\055\006\010\053\006\001\005\005\007\060\002\206\041\150\164\164 +\160\072\057\057\167\167\167\056\145\055\163\172\151\147\156\157 +\056\150\165\057\122\157\157\164\103\101\056\143\162\164\060\017 +\006\003\125\035\023\001\001\377\004\005\060\003\001\001\377\060 +\202\001\163\006\003\125\035\040\004\202\001\152\060\202\001\146 +\060\202\001\142\006\014\053\006\001\004\001\201\250\030\002\001 +\001\001\060\202\001\120\060\050\006\010\053\006\001\005\005\007 +\002\001\026\034\150\164\164\160\072\057\057\167\167\167\056\145 +\055\163\172\151\147\156\157\056\150\165\057\123\132\123\132\057 +\060\202\001\042\006\010\053\006\001\005\005\007\002\002\060\202 +\001\024\036\202\001\020\000\101\000\040\000\164\000\141\000\156 +\000\372\000\163\000\355\000\164\000\166\000\341\000\156\000\171 +\000\040\000\351\000\162\000\164\000\145\000\154\000\155\000\145 +\000\172\000\351\000\163\000\351\000\150\000\145\000\172\000\040 +\000\351\000\163\000\040\000\145\000\154\000\146\000\157\000\147 +\000\141\000\144\000\341\000\163\000\341\000\150\000\157\000\172 +\000\040\000\141\000\040\000\123\000\172\000\157\000\154\000\147 +\000\341\000\154\000\164\000\141\000\164\000\363\000\040\000\123 +\000\172\000\157\000\154\000\147\000\341\000\154\000\164\000\141 +\000\164\000\341\000\163\000\151\000\040\000\123\000\172\000\141 +\000\142\000\341\000\154\000\171\000\172\000\141\000\164\000\141 +\000\040\000\163\000\172\000\145\000\162\000\151\000\156\000\164 +\000\040\000\153\000\145\000\154\000\154\000\040\000\145\000\154 +\000\152\000\341\000\162\000\156\000\151\000\072\000\040\000\150 +\000\164\000\164\000\160\000\072\000\057\000\057\000\167\000\167 +\000\167\000\056\000\145\000\055\000\163\000\172\000\151\000\147 +\000\156\000\157\000\056\000\150\000\165\000\057\000\123\000\132 +\000\123\000\132\000\057\060\201\310\006\003\125\035\037\004\201 +\300\060\201\275\060\201\272\240\201\267\240\201\264\206\041\150 +\164\164\160\072\057\057\167\167\167\056\145\055\163\172\151\147 +\156\157\056\150\165\057\122\157\157\164\103\101\056\143\162\154 +\206\201\216\154\144\141\160\072\057\057\154\144\141\160\056\145 +\055\163\172\151\147\156\157\056\150\165\057\103\116\075\115\151 +\143\162\157\163\145\143\045\062\060\145\055\123\172\151\147\156 +\157\045\062\060\122\157\157\164\045\062\060\103\101\054\117\125 +\075\145\055\123\172\151\147\156\157\045\062\060\103\101\054\117 +\075\115\151\143\162\157\163\145\143\045\062\060\114\164\144\056 +\054\114\075\102\165\144\141\160\145\163\164\054\103\075\110\125 +\077\143\145\162\164\151\146\151\143\141\164\145\122\145\166\157 +\143\141\164\151\157\156\114\151\163\164\073\142\151\156\141\162 +\171\060\016\006\003\125\035\017\001\001\377\004\004\003\002\001 +\006\060\201\226\006\003\125\035\021\004\201\216\060\201\213\201 +\020\151\156\146\157\100\145\055\163\172\151\147\156\157\056\150 +\165\244\167\060\165\061\043\060\041\006\003\125\004\003\014\032 +\115\151\143\162\157\163\145\143\040\145\055\123\172\151\147\156 +\303\263\040\122\157\157\164\040\103\101\061\026\060\024\006\003 +\125\004\013\014\015\145\055\123\172\151\147\156\303\263\040\110 +\123\132\061\026\060\024\006\003\125\004\012\023\015\115\151\143 +\162\157\163\145\143\040\113\146\164\056\061\021\060\017\006\003 +\125\004\007\023\010\102\165\144\141\160\145\163\164\061\013\060 +\011\006\003\125\004\006\023\002\110\125\060\201\254\006\003\125 +\035\043\004\201\244\060\201\241\200\024\307\240\111\165\026\141 +\204\333\061\113\204\322\361\067\100\220\357\116\334\367\241\166 +\244\164\060\162\061\013\060\011\006\003\125\004\006\023\002\110 +\125\061\021\060\017\006\003\125\004\007\023\010\102\165\144\141 +\160\145\163\164\061\026\060\024\006\003\125\004\012\023\015\115 +\151\143\162\157\163\145\143\040\114\164\144\056\061\024\060\022 +\006\003\125\004\013\023\013\145\055\123\172\151\147\156\157\040 +\103\101\061\042\060\040\006\003\125\004\003\023\031\115\151\143 +\162\157\163\145\143\040\145\055\123\172\151\147\156\157\040\122 +\157\157\164\040\103\101\202\021\000\314\270\347\277\116\051\032 +\375\242\334\146\245\034\054\017\021\060\035\006\003\125\035\016 +\004\026\004\024\307\240\111\165\026\141\204\333\061\113\204\322 +\361\067\100\220\357\116\334\367\060\015\006\011\052\206\110\206 +\367\015\001\001\005\005\000\003\202\001\001\000\323\023\234\146 +\143\131\056\312\134\160\014\374\203\274\125\261\364\216\007\154 +\146\047\316\301\073\040\251\034\273\106\124\160\356\132\314\240 +\167\352\150\104\047\353\362\051\335\167\251\325\373\343\324\247 +\004\304\225\270\013\341\104\150\140\007\103\060\061\102\141\345 +\356\331\345\044\325\033\337\341\112\033\252\237\307\137\370\172 +\021\352\023\223\000\312\212\130\261\356\355\016\115\264\327\250 +\066\046\174\340\072\301\325\127\202\361\165\266\375\211\137\332 +\363\250\070\237\065\006\010\316\042\225\276\315\325\374\276\133 +\336\171\153\334\172\251\145\146\276\261\045\132\137\355\176\323 +\254\106\155\114\364\062\207\264\040\004\340\154\170\260\167\321 +\205\106\113\246\022\267\165\350\112\311\126\154\327\222\253\235 +\365\111\070\322\117\123\343\125\220\021\333\230\226\306\111\362 +\076\364\237\033\340\367\210\334\045\142\231\104\330\163\277\077 +\060\363\014\067\076\324\302\050\200\163\261\001\267\235\132\226 +\024\001\113\251\021\235\051\152\056\320\135\201\300\317\262\040 +\103\307\003\340\067\116\135\012\334\131\040\045 +END + +# Trust for Certificate "Microsec e-Szigno Root CA" +CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "Microsec e-Szigno Root CA" +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\043\210\311\323\161\314\236\226\075\377\175\074\247\316\374\326 +\045\354\031\015 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\360\226\266\057\305\020\325\147\216\203\045\062\350\136\056\345 +END +CKA_ISSUER MULTILINE_OCTAL +\060\162\061\013\060\011\006\003\125\004\006\023\002\110\125\061 +\021\060\017\006\003\125\004\007\023\010\102\165\144\141\160\145 +\163\164\061\026\060\024\006\003\125\004\012\023\015\115\151\143 +\162\157\163\145\143\040\114\164\144\056\061\024\060\022\006\003 +\125\004\013\023\013\145\055\123\172\151\147\156\157\040\103\101 +\061\042\060\040\006\003\125\004\003\023\031\115\151\143\162\157 +\163\145\143\040\145\055\123\172\151\147\156\157\040\122\157\157 +\164\040\103\101 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\021\000\314\270\347\277\116\051\032\375\242\334\146\245\034 +\054\017\021 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "Certigna" +# +CKA_CLASS CK_OBJECT_CLASS CKO_CERTIFICATE +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "Certigna" +CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509 +CKA_SUBJECT MULTILINE_OCTAL +\060\064\061\013\060\011\006\003\125\004\006\023\002\106\122\061 +\022\060\020\006\003\125\004\012\014\011\104\150\151\155\171\157 +\164\151\163\061\021\060\017\006\003\125\004\003\014\010\103\145 +\162\164\151\147\156\141 +END +CKA_ID UTF8 "0" +CKA_ISSUER MULTILINE_OCTAL +\060\064\061\013\060\011\006\003\125\004\006\023\002\106\122\061 +\022\060\020\006\003\125\004\012\014\011\104\150\151\155\171\157 +\164\151\163\061\021\060\017\006\003\125\004\003\014\010\103\145 +\162\164\151\147\156\141 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\011\000\376\334\343\001\017\311\110\377 +END +CKA_VALUE MULTILINE_OCTAL +\060\202\003\250\060\202\002\220\240\003\002\001\002\002\011\000 +\376\334\343\001\017\311\110\377\060\015\006\011\052\206\110\206 +\367\015\001\001\005\005\000\060\064\061\013\060\011\006\003\125 +\004\006\023\002\106\122\061\022\060\020\006\003\125\004\012\014 +\011\104\150\151\155\171\157\164\151\163\061\021\060\017\006\003 +\125\004\003\014\010\103\145\162\164\151\147\156\141\060\036\027 +\015\060\067\060\066\062\071\061\065\061\063\060\065\132\027\015 +\062\067\060\066\062\071\061\065\061\063\060\065\132\060\064\061 +\013\060\011\006\003\125\004\006\023\002\106\122\061\022\060\020 +\006\003\125\004\012\014\011\104\150\151\155\171\157\164\151\163 +\061\021\060\017\006\003\125\004\003\014\010\103\145\162\164\151 +\147\156\141\060\202\001\042\060\015\006\011\052\206\110\206\367 +\015\001\001\001\005\000\003\202\001\017\000\060\202\001\012\002 +\202\001\001\000\310\150\361\311\326\326\263\064\165\046\202\036 +\354\264\276\352\134\341\046\355\021\107\141\341\242\174\026\170 +\100\041\344\140\236\132\310\143\341\304\261\226\222\377\030\155 +\151\043\341\053\142\367\335\342\066\057\221\007\271\110\317\016 +\354\171\266\054\347\064\113\160\010\045\243\074\207\033\031\362 +\201\007\017\070\220\031\323\021\376\206\264\362\321\136\036\036 +\226\315\200\154\316\073\061\223\266\362\240\320\251\225\022\175 +\245\232\314\153\310\204\126\212\063\251\347\042\025\123\026\360 +\314\027\354\127\137\351\242\012\230\011\336\343\137\234\157\334 +\110\343\205\013\025\132\246\272\237\254\110\343\011\262\367\364 +\062\336\136\064\276\034\170\135\102\133\316\016\042\217\115\220 +\327\175\062\030\263\013\054\152\277\216\077\024\021\211\040\016 +\167\024\265\075\224\010\207\367\045\036\325\262\140\000\354\157 +\052\050\045\156\052\076\030\143\027\045\077\076\104\040\026\366 +\046\310\045\256\005\112\264\347\143\054\363\214\026\123\176\134 +\373\021\032\010\301\106\142\237\042\270\361\302\215\151\334\372 +\072\130\006\337\002\003\001\000\001\243\201\274\060\201\271\060 +\017\006\003\125\035\023\001\001\377\004\005\060\003\001\001\377 +\060\035\006\003\125\035\016\004\026\004\024\032\355\376\101\071 +\220\264\044\131\276\001\362\122\325\105\366\132\071\334\021\060 +\144\006\003\125\035\043\004\135\060\133\200\024\032\355\376\101 +\071\220\264\044\131\276\001\362\122\325\105\366\132\071\334\021 +\241\070\244\066\060\064\061\013\060\011\006\003\125\004\006\023 +\002\106\122\061\022\060\020\006\003\125\004\012\014\011\104\150 +\151\155\171\157\164\151\163\061\021\060\017\006\003\125\004\003 +\014\010\103\145\162\164\151\147\156\141\202\011\000\376\334\343 +\001\017\311\110\377\060\016\006\003\125\035\017\001\001\377\004 +\004\003\002\001\006\060\021\006\011\140\206\110\001\206\370\102 +\001\001\004\004\003\002\000\007\060\015\006\011\052\206\110\206 +\367\015\001\001\005\005\000\003\202\001\001\000\205\003\036\222 +\161\366\102\257\341\243\141\236\353\363\300\017\362\245\324\332 +\225\346\326\276\150\066\075\176\156\037\114\212\357\321\017\041 +\155\136\245\122\143\316\022\370\357\052\332\157\353\067\376\023 +\002\307\313\073\076\042\153\332\141\056\177\324\162\075\335\060 +\341\036\114\100\031\214\017\327\234\321\203\060\173\230\131\334 +\175\306\271\014\051\114\241\063\242\353\147\072\145\204\323\226 +\342\355\166\105\160\217\265\053\336\371\043\326\111\156\074\024 +\265\306\237\065\036\120\320\301\217\152\160\104\002\142\313\256 +\035\150\101\247\252\127\350\123\252\007\322\006\366\325\024\006 +\013\221\003\165\054\154\162\265\141\225\232\015\213\271\015\347 +\365\337\124\315\336\346\330\326\011\010\227\143\345\301\056\260 +\267\104\046\300\046\300\257\125\060\236\073\325\066\052\031\004 +\364\134\036\377\317\054\267\377\320\375\207\100\021\325\021\043 +\273\110\300\041\251\244\050\055\375\025\370\260\116\053\364\060 +\133\041\374\021\221\064\276\101\357\173\235\227\165\377\227\225 +\300\226\130\057\352\273\106\327\273\344\331\056 +END + +# Trust for Certificate "Certigna" +CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "Certigna" +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\261\056\023\143\105\206\244\157\032\262\140\150\067\130\055\304 +\254\375\224\227 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\253\127\246\133\175\102\202\031\265\330\130\046\050\136\375\377 +END +CKA_ISSUER MULTILINE_OCTAL +\060\064\061\013\060\011\006\003\125\004\006\023\002\106\122\061 +\022\060\020\006\003\125\004\012\014\011\104\150\151\155\171\157 +\164\151\163\061\021\060\017\006\003\125\004\003\014\010\103\145 +\162\164\151\147\156\141 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\011\000\376\334\343\001\017\311\110\377 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_TRUST_UNKNOWN +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "AC Raiz Certicamara S.A." +# +CKA_CLASS CK_OBJECT_CLASS CKO_CERTIFICATE +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "AC Ra\xC3\xADz Certic\xC3\xA1mara S.A." +CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509 +CKA_SUBJECT MULTILINE_OCTAL +\060\173\061\013\060\011\006\003\125\004\006\023\002\103\117\061 +\107\060\105\006\003\125\004\012\014\076\123\157\143\151\145\144 +\141\144\040\103\141\155\145\162\141\154\040\144\145\040\103\145 +\162\164\151\146\151\143\141\143\151\303\263\156\040\104\151\147 +\151\164\141\154\040\055\040\103\145\162\164\151\143\303\241\155 +\141\162\141\040\123\056\101\056\061\043\060\041\006\003\125\004 +\003\014\032\101\103\040\122\141\303\255\172\040\103\145\162\164 +\151\143\303\241\155\141\162\141\040\123\056\101\056 +END +CKA_ID UTF8 "0" +CKA_ISSUER MULTILINE_OCTAL +\060\173\061\013\060\011\006\003\125\004\006\023\002\103\117\061 +\107\060\105\006\003\125\004\012\014\076\123\157\143\151\145\144 +\141\144\040\103\141\155\145\162\141\154\040\144\145\040\103\145 +\162\164\151\146\151\143\141\143\151\303\263\156\040\104\151\147 +\151\164\141\154\040\055\040\103\145\162\164\151\143\303\241\155 +\141\162\141\040\123\056\101\056\061\043\060\041\006\003\125\004 +\003\014\032\101\103\040\122\141\303\255\172\040\103\145\162\164 +\151\143\303\241\155\141\162\141\040\123\056\101\056 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\017\007\176\122\223\173\340\025\343\127\360\151\214\313\354 +\014 +END +CKA_VALUE MULTILINE_OCTAL +\060\202\006\146\060\202\004\116\240\003\002\001\002\002\017\007 +\176\122\223\173\340\025\343\127\360\151\214\313\354\014\060\015 +\006\011\052\206\110\206\367\015\001\001\005\005\000\060\173\061 +\013\060\011\006\003\125\004\006\023\002\103\117\061\107\060\105 +\006\003\125\004\012\014\076\123\157\143\151\145\144\141\144\040 +\103\141\155\145\162\141\154\040\144\145\040\103\145\162\164\151 +\146\151\143\141\143\151\303\263\156\040\104\151\147\151\164\141 +\154\040\055\040\103\145\162\164\151\143\303\241\155\141\162\141 +\040\123\056\101\056\061\043\060\041\006\003\125\004\003\014\032 +\101\103\040\122\141\303\255\172\040\103\145\162\164\151\143\303 +\241\155\141\162\141\040\123\056\101\056\060\036\027\015\060\066 +\061\061\062\067\062\060\064\066\062\071\132\027\015\063\060\060 +\064\060\062\062\061\064\062\060\062\132\060\173\061\013\060\011 +\006\003\125\004\006\023\002\103\117\061\107\060\105\006\003\125 +\004\012\014\076\123\157\143\151\145\144\141\144\040\103\141\155 +\145\162\141\154\040\144\145\040\103\145\162\164\151\146\151\143 +\141\143\151\303\263\156\040\104\151\147\151\164\141\154\040\055 +\040\103\145\162\164\151\143\303\241\155\141\162\141\040\123\056 +\101\056\061\043\060\041\006\003\125\004\003\014\032\101\103\040 +\122\141\303\255\172\040\103\145\162\164\151\143\303\241\155\141 +\162\141\040\123\056\101\056\060\202\002\042\060\015\006\011\052 +\206\110\206\367\015\001\001\001\005\000\003\202\002\017\000\060 +\202\002\012\002\202\002\001\000\253\153\211\243\123\314\110\043 +\010\373\303\317\121\226\010\056\270\010\172\155\074\220\027\206 +\251\351\355\056\023\064\107\262\320\160\334\311\074\320\215\312 +\356\113\027\253\320\205\260\247\043\004\313\250\242\374\345\165 +\333\100\312\142\211\217\120\236\001\075\046\133\030\204\034\313 +\174\067\267\175\354\323\177\163\031\260\152\262\330\210\212\055 +\105\164\250\367\263\270\300\324\332\315\042\211\164\115\132\025 +\071\163\030\164\117\265\353\231\247\301\036\210\264\302\223\220 +\143\227\363\247\247\022\262\011\042\007\063\331\221\315\016\234 +\037\016\040\307\356\273\063\215\217\302\322\130\247\137\375\145 +\067\342\210\302\330\217\206\165\136\371\055\247\207\063\362\170 +\067\057\213\274\035\206\067\071\261\224\362\330\274\112\234\203 +\030\132\006\374\363\324\324\272\214\025\011\045\360\371\266\215 +\004\176\027\022\063\153\127\110\114\117\333\046\036\353\314\220 +\347\213\371\150\174\160\017\243\052\320\072\070\337\067\227\342 +\133\336\200\141\323\200\330\221\203\102\132\114\004\211\150\021 +\074\254\137\150\200\101\314\140\102\316\015\132\052\014\017\233 +\060\300\246\360\206\333\253\111\327\227\155\110\213\371\003\300 +\122\147\233\022\367\302\362\056\230\145\102\331\326\232\343\320 +\031\061\014\255\207\325\127\002\172\060\350\206\046\373\217\043 +\212\124\207\344\277\074\356\353\303\165\110\137\036\071\157\201 +\142\154\305\055\304\027\124\031\267\067\215\234\067\221\310\366 +\013\325\352\143\157\203\254\070\302\363\077\336\232\373\341\043 +\141\360\310\046\313\066\310\241\363\060\217\244\243\242\241\335 +\123\263\336\360\232\062\037\203\221\171\060\301\251\037\123\233 +\123\242\025\123\077\335\235\263\020\073\110\175\211\017\374\355 +\003\365\373\045\144\165\016\027\031\015\217\000\026\147\171\172 +\100\374\055\131\007\331\220\372\232\255\075\334\200\212\346\134 +\065\242\147\114\021\153\261\370\200\144\000\055\157\042\141\305 +\254\113\046\345\132\020\202\233\244\203\173\064\367\236\211\221 +\040\227\216\267\102\307\146\303\320\351\244\326\365\040\215\304 +\303\225\254\104\012\235\133\163\074\046\075\057\112\276\247\311 +\247\020\036\373\237\120\151\363\002\003\001\000\001\243\201\346 +\060\201\343\060\017\006\003\125\035\023\001\001\377\004\005\060 +\003\001\001\377\060\016\006\003\125\035\017\001\001\377\004\004 +\003\002\001\006\060\035\006\003\125\035\016\004\026\004\024\321 +\011\320\351\327\316\171\164\124\371\072\060\263\364\155\054\003 +\003\033\150\060\201\240\006\003\125\035\040\004\201\230\060\201 +\225\060\201\222\006\004\125\035\040\000\060\201\211\060\053\006 +\010\053\006\001\005\005\007\002\001\026\037\150\164\164\160\072 +\057\057\167\167\167\056\143\145\162\164\151\143\141\155\141\162 +\141\056\143\157\155\057\144\160\143\057\060\132\006\010\053\006 +\001\005\005\007\002\002\060\116\032\114\114\151\155\151\164\141 +\143\151\157\156\145\163\040\144\145\040\147\141\162\141\156\164 +\355\141\163\040\144\145\040\145\163\164\145\040\143\145\162\164 +\151\146\151\143\141\144\157\040\163\145\040\160\165\145\144\145 +\156\040\145\156\143\157\156\164\162\141\162\040\145\156\040\154 +\141\040\104\120\103\056\060\015\006\011\052\206\110\206\367\015 +\001\001\005\005\000\003\202\002\001\000\134\224\265\270\105\221 +\115\216\141\037\003\050\017\123\174\346\244\131\251\263\212\172 +\305\260\377\010\174\054\243\161\034\041\023\147\241\225\022\100 +\065\203\203\217\164\333\063\134\360\111\166\012\201\122\335\111 +\324\232\062\063\357\233\247\313\165\345\172\313\227\022\220\134 +\272\173\305\233\337\273\071\043\310\377\230\316\012\115\042\001 +\110\007\176\212\300\325\040\102\224\104\357\277\167\242\211\147 +\110\033\100\003\005\241\211\354\317\142\343\075\045\166\146\277 +\046\267\273\042\276\157\377\071\127\164\272\172\311\001\225\301 +\225\121\350\253\054\370\261\206\040\351\077\313\065\133\322\027 +\351\052\376\203\023\027\100\356\210\142\145\133\325\073\140\351 +\173\074\270\311\325\177\066\002\045\252\150\302\061\025\267\060 +\145\353\177\035\110\171\261\317\071\342\102\200\026\323\365\223 +\043\374\114\227\311\132\067\154\174\042\330\112\315\322\216\066 +\203\071\221\220\020\310\361\311\065\176\077\270\323\201\306\040 +\144\032\266\120\302\041\244\170\334\320\057\073\144\223\164\360 +\226\220\361\357\373\011\132\064\100\226\360\066\022\301\243\164 +\214\223\176\101\336\167\213\354\206\331\322\017\077\055\321\314 +\100\242\211\146\110\036\040\263\234\043\131\163\251\104\163\274 +\044\171\220\126\067\263\306\051\176\243\017\361\051\071\357\176 +\134\050\062\160\065\254\332\270\310\165\146\374\233\114\071\107 +\216\033\157\233\115\002\124\042\063\357\141\272\236\051\204\357 +\116\113\063\107\166\227\152\313\176\137\375\025\246\236\102\103 +\133\146\132\212\210\015\367\026\271\077\121\145\053\146\152\213 +\321\070\122\242\326\106\021\372\374\232\034\164\236\217\227\013 +\002\117\144\306\365\150\323\113\055\377\244\067\036\213\077\277 +\104\276\141\106\241\204\075\010\047\114\201\040\167\211\010\352 +\147\100\136\154\010\121\137\064\132\214\226\150\315\327\367\211 +\302\034\323\062\000\257\122\313\323\140\133\052\072\107\176\153 +\060\063\241\142\051\177\112\271\341\055\347\024\043\016\016\030 +\107\341\171\374\025\125\320\261\374\045\161\143\165\063\034\043 +\053\257\134\331\355\107\167\140\016\073\017\036\322\300\334\144 +\005\211\374\170\326\134\054\046\103\251 +END + +# Trust for Certificate "AC Raiz Certicamara S.A." +CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "AC Ra\xC3\xADz Certic\xC3\xA1mara S.A." +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\313\241\305\370\260\343\136\270\271\105\022\323\371\064\242\351 +\006\020\323\066 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\223\052\076\366\375\043\151\015\161\040\324\053\107\231\053\246 +END +CKA_ISSUER MULTILINE_OCTAL +\060\173\061\013\060\011\006\003\125\004\006\023\002\103\117\061 +\107\060\105\006\003\125\004\012\014\076\123\157\143\151\145\144 +\141\144\040\103\141\155\145\162\141\154\040\144\145\040\103\145 +\162\164\151\146\151\143\141\143\151\303\263\156\040\104\151\147 +\151\164\141\154\040\055\040\103\145\162\164\151\143\303\241\155 +\141\162\141\040\123\056\101\056\061\043\060\041\006\003\125\004 +\003\014\032\101\103\040\122\141\303\255\172\040\103\145\162\164 +\151\143\303\241\155\141\162\141\040\123\056\101\056 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\017\007\176\122\223\173\340\025\343\127\360\151\214\313\354 +\014 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "TC TrustCenter Class 2 CA II" +# +CKA_CLASS CK_OBJECT_CLASS CKO_CERTIFICATE +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "TC TrustCenter Class 2 CA II" +CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509 +CKA_SUBJECT MULTILINE_OCTAL +\060\166\061\013\060\011\006\003\125\004\006\023\002\104\105\061 +\034\060\032\006\003\125\004\012\023\023\124\103\040\124\162\165 +\163\164\103\145\156\164\145\162\040\107\155\142\110\061\042\060 +\040\006\003\125\004\013\023\031\124\103\040\124\162\165\163\164 +\103\145\156\164\145\162\040\103\154\141\163\163\040\062\040\103 +\101\061\045\060\043\006\003\125\004\003\023\034\124\103\040\124 +\162\165\163\164\103\145\156\164\145\162\040\103\154\141\163\163 +\040\062\040\103\101\040\111\111 +END +CKA_ID UTF8 "0" +CKA_ISSUER MULTILINE_OCTAL +\060\166\061\013\060\011\006\003\125\004\006\023\002\104\105\061 +\034\060\032\006\003\125\004\012\023\023\124\103\040\124\162\165 +\163\164\103\145\156\164\145\162\040\107\155\142\110\061\042\060 +\040\006\003\125\004\013\023\031\124\103\040\124\162\165\163\164 +\103\145\156\164\145\162\040\103\154\141\163\163\040\062\040\103 +\101\061\045\060\043\006\003\125\004\003\023\034\124\103\040\124 +\162\165\163\164\103\145\156\164\145\162\040\103\154\141\163\163 +\040\062\040\103\101\040\111\111 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\016\056\152\000\001\000\002\037\327\122\041\054\021\134\073 +END +CKA_VALUE MULTILINE_OCTAL +\060\202\004\252\060\202\003\222\240\003\002\001\002\002\016\056 +\152\000\001\000\002\037\327\122\041\054\021\134\073\060\015\006 +\011\052\206\110\206\367\015\001\001\005\005\000\060\166\061\013 +\060\011\006\003\125\004\006\023\002\104\105\061\034\060\032\006 +\003\125\004\012\023\023\124\103\040\124\162\165\163\164\103\145 +\156\164\145\162\040\107\155\142\110\061\042\060\040\006\003\125 +\004\013\023\031\124\103\040\124\162\165\163\164\103\145\156\164 +\145\162\040\103\154\141\163\163\040\062\040\103\101\061\045\060 +\043\006\003\125\004\003\023\034\124\103\040\124\162\165\163\164 +\103\145\156\164\145\162\040\103\154\141\163\163\040\062\040\103 +\101\040\111\111\060\036\027\015\060\066\060\061\061\062\061\064 +\063\070\064\063\132\027\015\062\065\061\062\063\061\062\062\065 +\071\065\071\132\060\166\061\013\060\011\006\003\125\004\006\023 +\002\104\105\061\034\060\032\006\003\125\004\012\023\023\124\103 +\040\124\162\165\163\164\103\145\156\164\145\162\040\107\155\142 +\110\061\042\060\040\006\003\125\004\013\023\031\124\103\040\124 +\162\165\163\164\103\145\156\164\145\162\040\103\154\141\163\163 +\040\062\040\103\101\061\045\060\043\006\003\125\004\003\023\034 +\124\103\040\124\162\165\163\164\103\145\156\164\145\162\040\103 +\154\141\163\163\040\062\040\103\101\040\111\111\060\202\001\042 +\060\015\006\011\052\206\110\206\367\015\001\001\001\005\000\003 +\202\001\017\000\060\202\001\012\002\202\001\001\000\253\200\207 +\233\216\360\303\174\207\327\350\044\202\021\263\074\335\103\142 +\356\370\303\105\332\350\341\240\137\321\052\262\352\223\150\337 +\264\310\326\103\351\304\165\131\177\374\341\035\370\061\160\043 +\033\210\236\047\271\173\375\072\322\311\251\351\024\057\220\276 +\003\122\301\111\315\366\375\344\010\146\013\127\212\242\102\240 +\270\325\177\151\134\220\062\262\227\015\312\112\334\106\076\002 +\125\211\123\343\032\132\313\066\306\007\126\367\214\317\021\364 +\114\273\060\160\004\225\245\366\071\214\375\163\201\010\175\211 +\136\062\036\042\251\042\105\113\260\146\056\060\314\237\145\375 +\374\313\201\251\361\340\073\257\243\206\321\211\352\304\105\171 +\120\135\256\351\041\164\222\115\213\131\202\217\224\343\351\112 +\361\347\111\260\024\343\365\142\313\325\162\275\037\271\322\237 +\240\315\250\372\001\310\331\015\337\332\374\107\235\263\310\124 +\337\111\112\361\041\251\376\030\116\356\110\324\031\273\357\175 +\344\342\235\313\133\266\156\377\343\315\132\347\164\202\005\272 +\200\045\070\313\344\151\236\257\101\252\032\204\365\002\003\001 +\000\001\243\202\001\064\060\202\001\060\060\017\006\003\125\035 +\023\001\001\377\004\005\060\003\001\001\377\060\016\006\003\125 +\035\017\001\001\377\004\004\003\002\001\006\060\035\006\003\125 +\035\016\004\026\004\024\343\253\124\114\200\241\333\126\103\267 +\221\112\313\363\202\172\023\134\010\253\060\201\355\006\003\125 +\035\037\004\201\345\060\201\342\060\201\337\240\201\334\240\201 +\331\206\065\150\164\164\160\072\057\057\167\167\167\056\164\162 +\165\163\164\143\145\156\164\145\162\056\144\145\057\143\162\154 +\057\166\062\057\164\143\137\143\154\141\163\163\137\062\137\143 +\141\137\111\111\056\143\162\154\206\201\237\154\144\141\160\072 +\057\057\167\167\167\056\164\162\165\163\164\143\145\156\164\145 +\162\056\144\145\057\103\116\075\124\103\045\062\060\124\162\165 +\163\164\103\145\156\164\145\162\045\062\060\103\154\141\163\163 +\045\062\060\062\045\062\060\103\101\045\062\060\111\111\054\117 +\075\124\103\045\062\060\124\162\165\163\164\103\145\156\164\145 +\162\045\062\060\107\155\142\110\054\117\125\075\162\157\157\164 +\143\145\162\164\163\054\104\103\075\164\162\165\163\164\143\145 +\156\164\145\162\054\104\103\075\144\145\077\143\145\162\164\151 +\146\151\143\141\164\145\122\145\166\157\143\141\164\151\157\156 +\114\151\163\164\077\142\141\163\145\077\060\015\006\011\052\206 +\110\206\367\015\001\001\005\005\000\003\202\001\001\000\214\327 +\337\176\356\033\200\020\263\203\365\333\021\352\153\113\250\222 +\030\331\367\007\071\365\054\276\006\165\172\150\123\025\034\352 +\112\355\136\374\043\262\023\240\323\011\377\366\366\056\153\101 +\161\171\315\342\155\375\256\131\153\205\035\270\116\042\232\355 +\146\071\156\113\224\346\125\374\013\033\213\167\301\123\023\146 +\211\331\050\326\213\363\105\112\143\267\375\173\013\141\135\270 +\155\276\303\334\133\171\322\355\206\345\242\115\276\136\164\174 +\152\355\026\070\037\177\130\201\132\032\353\062\210\055\262\363 +\071\167\200\257\136\266\141\165\051\333\043\115\210\312\120\050 +\313\205\322\323\020\242\131\156\323\223\124\000\172\242\106\225 +\206\005\234\251\031\230\345\061\162\014\000\342\147\331\100\340 +\044\063\173\157\054\271\134\253\145\235\054\254\166\352\065\231 +\365\227\271\017\044\354\307\166\041\050\145\256\127\350\007\210 +\165\112\126\240\322\005\072\244\346\215\222\210\054\363\362\341 +\301\306\141\333\101\305\307\233\367\016\032\121\105\302\141\153 +\334\144\047\027\214\132\267\332\164\050\315\227\344\275 +END + +# Trust for Certificate "TC TrustCenter Class 2 CA II" +CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "TC TrustCenter Class 2 CA II" +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\256\120\203\355\174\364\134\274\217\141\306\041\376\150\135\171 +\102\041\025\156 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\316\170\063\134\131\170\001\156\030\352\271\066\240\271\056\043 +END +CKA_ISSUER MULTILINE_OCTAL +\060\166\061\013\060\011\006\003\125\004\006\023\002\104\105\061 +\034\060\032\006\003\125\004\012\023\023\124\103\040\124\162\165 +\163\164\103\145\156\164\145\162\040\107\155\142\110\061\042\060 +\040\006\003\125\004\013\023\031\124\103\040\124\162\165\163\164 +\103\145\156\164\145\162\040\103\154\141\163\163\040\062\040\103 +\101\061\045\060\043\006\003\125\004\003\023\034\124\103\040\124 +\162\165\163\164\103\145\156\164\145\162\040\103\154\141\163\163 +\040\062\040\103\101\040\111\111 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\016\056\152\000\001\000\002\037\327\122\041\054\021\134\073 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "TC TrustCenter Class 3 CA II" +# +CKA_CLASS CK_OBJECT_CLASS CKO_CERTIFICATE +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "TC TrustCenter Class 3 CA II" +CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509 +CKA_SUBJECT MULTILINE_OCTAL +\060\166\061\013\060\011\006\003\125\004\006\023\002\104\105\061 +\034\060\032\006\003\125\004\012\023\023\124\103\040\124\162\165 +\163\164\103\145\156\164\145\162\040\107\155\142\110\061\042\060 +\040\006\003\125\004\013\023\031\124\103\040\124\162\165\163\164 +\103\145\156\164\145\162\040\103\154\141\163\163\040\063\040\103 +\101\061\045\060\043\006\003\125\004\003\023\034\124\103\040\124 +\162\165\163\164\103\145\156\164\145\162\040\103\154\141\163\163 +\040\063\040\103\101\040\111\111 +END +CKA_ID UTF8 "0" +CKA_ISSUER MULTILINE_OCTAL +\060\166\061\013\060\011\006\003\125\004\006\023\002\104\105\061 +\034\060\032\006\003\125\004\012\023\023\124\103\040\124\162\165 +\163\164\103\145\156\164\145\162\040\107\155\142\110\061\042\060 +\040\006\003\125\004\013\023\031\124\103\040\124\162\165\163\164 +\103\145\156\164\145\162\040\103\154\141\163\163\040\063\040\103 +\101\061\045\060\043\006\003\125\004\003\023\034\124\103\040\124 +\162\165\163\164\103\145\156\164\145\162\040\103\154\141\163\163 +\040\063\040\103\101\040\111\111 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\016\112\107\000\001\000\002\345\240\135\326\077\000\121\277 +END +CKA_VALUE MULTILINE_OCTAL +\060\202\004\252\060\202\003\222\240\003\002\001\002\002\016\112 +\107\000\001\000\002\345\240\135\326\077\000\121\277\060\015\006 +\011\052\206\110\206\367\015\001\001\005\005\000\060\166\061\013 +\060\011\006\003\125\004\006\023\002\104\105\061\034\060\032\006 +\003\125\004\012\023\023\124\103\040\124\162\165\163\164\103\145 +\156\164\145\162\040\107\155\142\110\061\042\060\040\006\003\125 +\004\013\023\031\124\103\040\124\162\165\163\164\103\145\156\164 +\145\162\040\103\154\141\163\163\040\063\040\103\101\061\045\060 +\043\006\003\125\004\003\023\034\124\103\040\124\162\165\163\164 +\103\145\156\164\145\162\040\103\154\141\163\163\040\063\040\103 +\101\040\111\111\060\036\027\015\060\066\060\061\061\062\061\064 +\064\061\065\067\132\027\015\062\065\061\062\063\061\062\062\065 +\071\065\071\132\060\166\061\013\060\011\006\003\125\004\006\023 +\002\104\105\061\034\060\032\006\003\125\004\012\023\023\124\103 +\040\124\162\165\163\164\103\145\156\164\145\162\040\107\155\142 +\110\061\042\060\040\006\003\125\004\013\023\031\124\103\040\124 +\162\165\163\164\103\145\156\164\145\162\040\103\154\141\163\163 +\040\063\040\103\101\061\045\060\043\006\003\125\004\003\023\034 +\124\103\040\124\162\165\163\164\103\145\156\164\145\162\040\103 +\154\141\163\163\040\063\040\103\101\040\111\111\060\202\001\042 +\060\015\006\011\052\206\110\206\367\015\001\001\001\005\000\003 +\202\001\017\000\060\202\001\012\002\202\001\001\000\264\340\273 +\121\273\071\134\213\004\305\114\171\034\043\206\061\020\143\103 +\125\047\077\306\105\307\244\075\354\011\015\032\036\040\302\126 +\036\336\033\067\007\060\042\057\157\361\006\361\253\255\326\310 +\253\141\243\057\103\304\260\262\055\374\303\226\151\173\176\212 +\344\314\300\071\022\220\102\140\311\314\065\150\356\332\137\220 +\126\137\315\034\115\133\130\111\353\016\001\117\144\372\054\074 +\211\130\330\057\056\342\260\150\351\042\073\165\211\326\104\032 +\145\362\033\227\046\035\050\155\254\350\275\131\035\053\044\366 +\326\204\003\146\210\044\000\170\140\361\370\253\376\002\262\153 +\373\042\373\065\346\026\321\255\366\056\022\344\372\065\152\345 +\031\271\135\333\073\036\032\373\323\377\025\024\010\330\011\152 +\272\105\235\024\171\140\175\257\100\212\007\163\263\223\226\323 +\164\064\215\072\067\051\336\134\354\365\356\056\061\302\040\334 +\276\361\117\177\043\122\331\133\342\144\331\234\252\007\010\265 +\105\275\321\320\061\301\253\124\237\251\322\303\142\140\003\361 +\273\071\112\222\112\075\012\271\235\305\240\376\067\002\003\001 +\000\001\243\202\001\064\060\202\001\060\060\017\006\003\125\035 +\023\001\001\377\004\005\060\003\001\001\377\060\016\006\003\125 +\035\017\001\001\377\004\004\003\002\001\006\060\035\006\003\125 +\035\016\004\026\004\024\324\242\374\237\263\303\330\003\323\127 +\134\007\244\320\044\247\300\362\000\324\060\201\355\006\003\125 +\035\037\004\201\345\060\201\342\060\201\337\240\201\334\240\201 +\331\206\065\150\164\164\160\072\057\057\167\167\167\056\164\162 +\165\163\164\143\145\156\164\145\162\056\144\145\057\143\162\154 +\057\166\062\057\164\143\137\143\154\141\163\163\137\063\137\143 +\141\137\111\111\056\143\162\154\206\201\237\154\144\141\160\072 +\057\057\167\167\167\056\164\162\165\163\164\143\145\156\164\145 +\162\056\144\145\057\103\116\075\124\103\045\062\060\124\162\165 +\163\164\103\145\156\164\145\162\045\062\060\103\154\141\163\163 +\045\062\060\063\045\062\060\103\101\045\062\060\111\111\054\117 +\075\124\103\045\062\060\124\162\165\163\164\103\145\156\164\145 +\162\045\062\060\107\155\142\110\054\117\125\075\162\157\157\164 +\143\145\162\164\163\054\104\103\075\164\162\165\163\164\143\145 +\156\164\145\162\054\104\103\075\144\145\077\143\145\162\164\151 +\146\151\143\141\164\145\122\145\166\157\143\141\164\151\157\156 +\114\151\163\164\077\142\141\163\145\077\060\015\006\011\052\206 +\110\206\367\015\001\001\005\005\000\003\202\001\001\000\066\140 +\344\160\367\006\040\103\331\043\032\102\362\370\243\262\271\115 +\212\264\363\302\232\125\061\174\304\073\147\232\264\337\115\016 +\212\223\112\027\213\033\215\312\211\341\317\072\036\254\035\361 +\234\062\264\216\131\166\242\101\205\045\067\240\023\320\365\174 +\116\325\352\226\342\156\162\301\273\052\376\154\156\370\221\230 +\106\374\311\033\127\133\352\310\032\073\077\260\121\230\074\007 +\332\054\131\001\332\213\104\350\341\164\375\247\150\335\124\272 +\203\106\354\310\106\265\370\257\227\300\073\011\034\217\316\162 +\226\075\063\126\160\274\226\313\330\325\175\040\232\203\237\032 +\334\071\361\305\162\243\021\003\375\073\102\122\051\333\350\001 +\367\233\136\214\326\215\206\116\031\372\274\034\276\305\041\245 +\207\236\170\056\066\333\011\161\243\162\064\370\154\343\006\011 +\362\136\126\245\323\335\230\372\324\346\006\364\360\266\040\143 +\113\352\051\275\252\202\146\036\373\201\252\247\067\255\023\030 +\346\222\303\201\301\063\273\210\036\241\347\342\264\275\061\154 +\016\121\075\157\373\226\126\200\342\066\027\321\334\344 +END + +# Trust for Certificate "TC TrustCenter Class 3 CA II" +CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "TC TrustCenter Class 3 CA II" +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\200\045\357\364\156\160\310\324\162\044\145\204\376\100\073\212 +\215\152\333\365 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\126\137\252\200\141\022\027\366\147\041\346\053\155\141\126\216 +END +CKA_ISSUER MULTILINE_OCTAL +\060\166\061\013\060\011\006\003\125\004\006\023\002\104\105\061 +\034\060\032\006\003\125\004\012\023\023\124\103\040\124\162\165 +\163\164\103\145\156\164\145\162\040\107\155\142\110\061\042\060 +\040\006\003\125\004\013\023\031\124\103\040\124\162\165\163\164 +\103\145\156\164\145\162\040\103\154\141\163\163\040\063\040\103 +\101\061\045\060\043\006\003\125\004\003\023\034\124\103\040\124 +\162\165\163\164\103\145\156\164\145\162\040\103\154\141\163\163 +\040\063\040\103\101\040\111\111 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\016\112\107\000\001\000\002\345\240\135\326\077\000\121\277 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "TC TrustCenter Universal CA I" +# +CKA_CLASS CK_OBJECT_CLASS CKO_CERTIFICATE +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "TC TrustCenter Universal CA I" +CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509 +CKA_SUBJECT MULTILINE_OCTAL +\060\171\061\013\060\011\006\003\125\004\006\023\002\104\105\061 +\034\060\032\006\003\125\004\012\023\023\124\103\040\124\162\165 +\163\164\103\145\156\164\145\162\040\107\155\142\110\061\044\060 +\042\006\003\125\004\013\023\033\124\103\040\124\162\165\163\164 +\103\145\156\164\145\162\040\125\156\151\166\145\162\163\141\154 +\040\103\101\061\046\060\044\006\003\125\004\003\023\035\124\103 +\040\124\162\165\163\164\103\145\156\164\145\162\040\125\156\151 +\166\145\162\163\141\154\040\103\101\040\111 +END +CKA_ID UTF8 "0" +CKA_ISSUER MULTILINE_OCTAL +\060\171\061\013\060\011\006\003\125\004\006\023\002\104\105\061 +\034\060\032\006\003\125\004\012\023\023\124\103\040\124\162\165 +\163\164\103\145\156\164\145\162\040\107\155\142\110\061\044\060 +\042\006\003\125\004\013\023\033\124\103\040\124\162\165\163\164 +\103\145\156\164\145\162\040\125\156\151\166\145\162\163\141\154 +\040\103\101\061\046\060\044\006\003\125\004\003\023\035\124\103 +\040\124\162\165\163\164\103\145\156\164\145\162\040\125\156\151 +\166\145\162\163\141\154\040\103\101\040\111 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\016\035\242\000\001\000\002\354\267\140\200\170\215\266\006 +END +CKA_VALUE MULTILINE_OCTAL +\060\202\003\335\060\202\002\305\240\003\002\001\002\002\016\035 +\242\000\001\000\002\354\267\140\200\170\215\266\006\060\015\006 +\011\052\206\110\206\367\015\001\001\005\005\000\060\171\061\013 +\060\011\006\003\125\004\006\023\002\104\105\061\034\060\032\006 +\003\125\004\012\023\023\124\103\040\124\162\165\163\164\103\145 +\156\164\145\162\040\107\155\142\110\061\044\060\042\006\003\125 +\004\013\023\033\124\103\040\124\162\165\163\164\103\145\156\164 +\145\162\040\125\156\151\166\145\162\163\141\154\040\103\101\061 +\046\060\044\006\003\125\004\003\023\035\124\103\040\124\162\165 +\163\164\103\145\156\164\145\162\040\125\156\151\166\145\162\163 +\141\154\040\103\101\040\111\060\036\027\015\060\066\060\063\062 +\062\061\065\065\064\062\070\132\027\015\062\065\061\062\063\061 +\062\062\065\071\065\071\132\060\171\061\013\060\011\006\003\125 +\004\006\023\002\104\105\061\034\060\032\006\003\125\004\012\023 +\023\124\103\040\124\162\165\163\164\103\145\156\164\145\162\040 +\107\155\142\110\061\044\060\042\006\003\125\004\013\023\033\124 +\103\040\124\162\165\163\164\103\145\156\164\145\162\040\125\156 +\151\166\145\162\163\141\154\040\103\101\061\046\060\044\006\003 +\125\004\003\023\035\124\103\040\124\162\165\163\164\103\145\156 +\164\145\162\040\125\156\151\166\145\162\163\141\154\040\103\101 +\040\111\060\202\001\042\060\015\006\011\052\206\110\206\367\015 +\001\001\001\005\000\003\202\001\017\000\060\202\001\012\002\202 +\001\001\000\244\167\043\226\104\257\220\364\061\247\020\364\046 +\207\234\363\070\331\017\136\336\317\101\350\061\255\306\164\221 +\044\226\170\036\011\240\233\232\225\112\112\365\142\174\002\250 +\312\254\373\132\004\166\071\336\137\361\371\263\277\363\003\130 +\125\322\252\267\343\004\042\321\370\224\332\042\010\000\215\323 +\174\046\135\314\167\171\347\054\170\071\250\046\163\016\242\135 +\045\151\205\117\125\016\232\357\306\271\104\341\127\075\337\037 +\124\042\345\157\145\252\063\204\072\363\316\172\276\125\227\256 +\215\022\017\024\063\342\120\160\303\111\207\023\274\121\336\327 +\230\022\132\357\072\203\063\222\006\165\213\222\174\022\150\173 +\160\152\017\265\233\266\167\133\110\131\235\344\357\132\255\363 +\301\236\324\327\105\116\312\126\064\041\274\076\027\133\157\167 +\014\110\001\103\051\260\335\077\226\156\346\225\252\014\300\040 +\266\375\076\066\047\234\343\134\317\116\201\334\031\273\221\220 +\175\354\346\227\004\036\223\314\042\111\327\227\206\266\023\012 +\074\103\043\167\176\360\334\346\315\044\037\073\203\233\064\072 +\203\064\343\002\003\001\000\001\243\143\060\141\060\037\006\003 +\125\035\043\004\030\060\026\200\024\222\244\165\054\244\236\276 +\201\104\353\171\374\212\305\225\245\353\020\165\163\060\017\006 +\003\125\035\023\001\001\377\004\005\060\003\001\001\377\060\016 +\006\003\125\035\017\001\001\377\004\004\003\002\001\206\060\035 +\006\003\125\035\016\004\026\004\024\222\244\165\054\244\236\276 +\201\104\353\171\374\212\305\225\245\353\020\165\163\060\015\006 +\011\052\206\110\206\367\015\001\001\005\005\000\003\202\001\001 +\000\050\322\340\206\325\346\370\173\360\227\334\042\153\073\225 +\024\126\017\021\060\245\232\117\072\260\072\340\006\313\145\365 +\355\306\227\047\376\045\362\127\346\136\225\214\076\144\140\025 +\132\177\057\015\001\305\261\140\375\105\065\317\360\262\277\006 +\331\357\132\276\263\142\041\264\327\253\065\174\123\076\246\047 +\361\241\055\332\032\043\235\314\335\354\074\055\236\047\064\135 +\017\302\066\171\274\311\112\142\055\355\153\331\175\101\103\174 +\266\252\312\355\141\261\067\202\025\011\032\212\026\060\330\354 +\311\326\107\162\170\113\020\106\024\216\137\016\257\354\307\057 +\253\020\327\266\361\156\354\206\262\302\350\015\222\163\334\242 +\364\017\072\277\141\043\020\211\234\110\100\156\160\000\263\323 +\272\067\104\130\021\172\002\152\210\360\067\064\360\031\351\254 +\324\145\163\366\151\214\144\224\072\171\205\051\260\026\053\014 +\202\077\006\234\307\375\020\053\236\017\054\266\236\343\025\277 +\331\066\034\272\045\032\122\075\032\354\042\014\034\340\244\242 +\075\360\350\071\317\201\300\173\355\135\037\157\305\320\013\327 +\230 +END + +# Trust for Certificate "TC TrustCenter Universal CA I" +CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "TC TrustCenter Universal CA I" +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\153\057\064\255\211\130\276\142\375\260\153\134\316\273\235\331 +\117\116\071\363 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\105\341\245\162\305\251\066\144\100\236\365\344\130\204\147\214 +END +CKA_ISSUER MULTILINE_OCTAL +\060\171\061\013\060\011\006\003\125\004\006\023\002\104\105\061 +\034\060\032\006\003\125\004\012\023\023\124\103\040\124\162\165 +\163\164\103\145\156\164\145\162\040\107\155\142\110\061\044\060 +\042\006\003\125\004\013\023\033\124\103\040\124\162\165\163\164 +\103\145\156\164\145\162\040\125\156\151\166\145\162\163\141\154 +\040\103\101\061\046\060\044\006\003\125\004\003\023\035\124\103 +\040\124\162\165\163\164\103\145\156\164\145\162\040\125\156\151 +\166\145\162\163\141\154\040\103\101\040\111 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\016\035\242\000\001\000\002\354\267\140\200\170\215\266\006 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "Deutsche Telekom Root CA 2" +# +CKA_CLASS CK_OBJECT_CLASS CKO_CERTIFICATE +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "Deutsche Telekom Root CA 2" +CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509 +CKA_SUBJECT MULTILINE_OCTAL +\060\161\061\013\060\011\006\003\125\004\006\023\002\104\105\061 +\034\060\032\006\003\125\004\012\023\023\104\145\165\164\163\143 +\150\145\040\124\145\154\145\153\157\155\040\101\107\061\037\060 +\035\006\003\125\004\013\023\026\124\055\124\145\154\145\123\145 +\143\040\124\162\165\163\164\040\103\145\156\164\145\162\061\043 +\060\041\006\003\125\004\003\023\032\104\145\165\164\163\143\150 +\145\040\124\145\154\145\153\157\155\040\122\157\157\164\040\103 +\101\040\062 +END +CKA_ID UTF8 "0" +CKA_ISSUER MULTILINE_OCTAL +\060\161\061\013\060\011\006\003\125\004\006\023\002\104\105\061 +\034\060\032\006\003\125\004\012\023\023\104\145\165\164\163\143 +\150\145\040\124\145\154\145\153\157\155\040\101\107\061\037\060 +\035\006\003\125\004\013\023\026\124\055\124\145\154\145\123\145 +\143\040\124\162\165\163\164\040\103\145\156\164\145\162\061\043 +\060\041\006\003\125\004\003\023\032\104\145\165\164\163\143\150 +\145\040\124\145\154\145\153\157\155\040\122\157\157\164\040\103 +\101\040\062 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\001\046 +END +CKA_VALUE MULTILINE_OCTAL +\060\202\003\237\060\202\002\207\240\003\002\001\002\002\001\046 +\060\015\006\011\052\206\110\206\367\015\001\001\005\005\000\060 +\161\061\013\060\011\006\003\125\004\006\023\002\104\105\061\034 +\060\032\006\003\125\004\012\023\023\104\145\165\164\163\143\150 +\145\040\124\145\154\145\153\157\155\040\101\107\061\037\060\035 +\006\003\125\004\013\023\026\124\055\124\145\154\145\123\145\143 +\040\124\162\165\163\164\040\103\145\156\164\145\162\061\043\060 +\041\006\003\125\004\003\023\032\104\145\165\164\163\143\150\145 +\040\124\145\154\145\153\157\155\040\122\157\157\164\040\103\101 +\040\062\060\036\027\015\071\071\060\067\060\071\061\062\061\061 +\060\060\132\027\015\061\071\060\067\060\071\062\063\065\071\060 +\060\132\060\161\061\013\060\011\006\003\125\004\006\023\002\104 +\105\061\034\060\032\006\003\125\004\012\023\023\104\145\165\164 +\163\143\150\145\040\124\145\154\145\153\157\155\040\101\107\061 +\037\060\035\006\003\125\004\013\023\026\124\055\124\145\154\145 +\123\145\143\040\124\162\165\163\164\040\103\145\156\164\145\162 +\061\043\060\041\006\003\125\004\003\023\032\104\145\165\164\163 +\143\150\145\040\124\145\154\145\153\157\155\040\122\157\157\164 +\040\103\101\040\062\060\202\001\042\060\015\006\011\052\206\110 +\206\367\015\001\001\001\005\000\003\202\001\017\000\060\202\001 +\012\002\202\001\001\000\253\013\243\065\340\213\051\024\261\024 +\205\257\074\020\344\071\157\065\135\112\256\335\352\141\215\225 +\111\364\157\144\243\032\140\146\244\251\100\042\204\331\324\245 +\345\170\223\016\150\001\255\271\115\134\072\316\323\270\250\102 +\100\337\317\243\272\202\131\152\222\033\254\034\232\332\010\053 +\045\047\371\151\043\107\361\340\353\054\172\233\365\023\002\320 +\176\064\174\302\236\074\000\131\253\365\332\014\365\062\074\053 +\254\120\332\326\303\336\203\224\312\250\014\231\062\016\010\110 +\126\133\152\373\332\341\130\130\001\111\137\162\101\074\025\006 +\001\216\135\255\252\270\223\264\315\236\353\247\350\152\055\122 +\064\333\072\357\134\165\121\332\333\363\061\371\356\161\230\062 +\304\124\025\104\014\371\233\125\355\255\337\030\010\240\243\206 +\212\111\356\123\005\217\031\114\325\336\130\171\233\322\152\034 +\102\253\305\325\247\317\150\017\226\344\341\141\230\166\141\310 +\221\174\326\076\000\342\221\120\207\341\235\012\346\255\227\322 +\035\306\072\175\313\274\332\003\064\325\216\133\001\365\152\007 +\267\026\266\156\112\177\002\003\001\000\001\243\102\060\100\060 +\035\006\003\125\035\016\004\026\004\024\061\303\171\033\272\365 +\123\327\027\340\211\172\055\027\154\012\263\053\235\063\060\017 +\006\003\125\035\023\004\010\060\006\001\001\377\002\001\005\060 +\016\006\003\125\035\017\001\001\377\004\004\003\002\001\006\060 +\015\006\011\052\206\110\206\367\015\001\001\005\005\000\003\202 +\001\001\000\224\144\131\255\071\144\347\051\353\023\376\132\303 +\213\023\127\310\004\044\360\164\167\300\140\343\147\373\351\211 +\246\203\277\226\202\174\156\324\303\075\357\236\200\156\273\051 +\264\230\172\261\073\124\353\071\027\107\176\032\216\013\374\037 +\061\131\061\004\262\316\027\363\054\307\142\066\125\342\042\330 +\211\125\264\230\110\252\144\372\326\034\066\330\104\170\132\132 +\043\072\127\227\365\172\060\117\256\237\152\114\113\053\216\240 +\003\343\076\340\251\324\322\173\322\263\250\342\162\074\255\236 +\377\200\131\344\233\105\264\366\073\260\315\071\031\230\062\345 +\352\041\141\220\344\061\041\216\064\261\367\057\065\112\205\020 +\332\347\212\067\041\276\131\143\340\362\205\210\061\123\324\124 +\024\205\160\171\364\056\006\167\047\165\057\037\270\212\371\376 +\305\272\330\066\344\203\354\347\145\267\277\143\132\363\106\257 +\201\224\067\324\101\214\326\043\326\036\317\365\150\033\104\143 +\242\132\272\247\065\131\241\345\160\005\233\016\043\127\231\224 +\012\155\272\071\143\050\206\222\363\030\204\330\373\321\317\005 +\126\144\127 +END + +# Trust for Certificate "Deutsche Telekom Root CA 2" +CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "Deutsche Telekom Root CA 2" +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\205\244\010\300\234\031\076\135\121\130\175\315\326\023\060\375 +\214\336\067\277 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\164\001\112\221\261\010\304\130\316\107\315\360\335\021\123\010 +END +CKA_ISSUER MULTILINE_OCTAL +\060\161\061\013\060\011\006\003\125\004\006\023\002\104\105\061 +\034\060\032\006\003\125\004\012\023\023\104\145\165\164\163\143 +\150\145\040\124\145\154\145\153\157\155\040\101\107\061\037\060 +\035\006\003\125\004\013\023\026\124\055\124\145\154\145\123\145 +\143\040\124\162\165\163\164\040\103\145\156\164\145\162\061\043 +\060\041\006\003\125\004\003\023\032\104\145\165\164\163\143\150 +\145\040\124\145\154\145\153\157\155\040\122\157\157\164\040\103 +\101\040\062 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\001\046 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "ComSign CA" +# +CKA_CLASS CK_OBJECT_CLASS CKO_CERTIFICATE +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "ComSign CA" +CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509 +CKA_SUBJECT MULTILINE_OCTAL +\060\064\061\023\060\021\006\003\125\004\003\023\012\103\157\155 +\123\151\147\156\040\103\101\061\020\060\016\006\003\125\004\012 +\023\007\103\157\155\123\151\147\156\061\013\060\011\006\003\125 +\004\006\023\002\111\114 +END +CKA_ID UTF8 "0" +CKA_ISSUER MULTILINE_OCTAL +\060\064\061\023\060\021\006\003\125\004\003\023\012\103\157\155 +\123\151\147\156\040\103\101\061\020\060\016\006\003\125\004\012 +\023\007\103\157\155\123\151\147\156\061\013\060\011\006\003\125 +\004\006\023\002\111\114 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\020\024\023\226\203\024\125\214\352\173\143\345\374\064\207 +\167\104 +END +CKA_VALUE MULTILINE_OCTAL +\060\202\003\223\060\202\002\173\240\003\002\001\002\002\020\024 +\023\226\203\024\125\214\352\173\143\345\374\064\207\167\104\060 +\015\006\011\052\206\110\206\367\015\001\001\005\005\000\060\064 +\061\023\060\021\006\003\125\004\003\023\012\103\157\155\123\151 +\147\156\040\103\101\061\020\060\016\006\003\125\004\012\023\007 +\103\157\155\123\151\147\156\061\013\060\011\006\003\125\004\006 +\023\002\111\114\060\036\027\015\060\064\060\063\062\064\061\061 +\063\062\061\070\132\027\015\062\071\060\063\061\071\061\065\060 +\062\061\070\132\060\064\061\023\060\021\006\003\125\004\003\023 +\012\103\157\155\123\151\147\156\040\103\101\061\020\060\016\006 +\003\125\004\012\023\007\103\157\155\123\151\147\156\061\013\060 +\011\006\003\125\004\006\023\002\111\114\060\202\001\042\060\015 +\006\011\052\206\110\206\367\015\001\001\001\005\000\003\202\001 +\017\000\060\202\001\012\002\202\001\001\000\360\344\124\151\053 +\323\307\217\152\104\344\176\130\047\370\013\320\344\224\022\212 +\361\033\070\070\057\037\061\234\006\324\054\247\336\013\052\256 +\032\240\343\236\152\277\237\074\307\156\242\371\213\144\154\072 +\255\205\125\121\124\245\070\125\270\253\203\004\362\077\144\066 +\367\300\215\103\103\152\146\321\367\027\052\325\357\066\372\060 +\020\102\327\123\315\371\372\063\163\114\263\351\204\040\212\326 +\101\047\065\344\070\372\224\233\270\172\344\171\037\063\373\033 +\330\041\011\050\174\115\030\151\136\144\212\172\031\223\312\176 +\354\363\162\347\067\007\130\131\050\254\102\371\305\377\315\077 +\347\245\372\070\261\320\014\307\331\122\032\123\326\201\314\102 +\172\065\133\355\113\072\172\366\265\216\314\377\017\174\344\140 +\066\207\057\255\360\241\045\175\377\322\113\021\210\160\124\246 +\101\250\147\123\122\102\136\344\064\236\344\276\243\354\252\142 +\135\335\303\114\246\202\101\344\063\013\254\311\063\017\144\202 +\127\052\375\014\255\066\341\014\256\113\305\357\073\231\331\043 +\263\133\135\264\127\354\164\160\014\052\117\002\003\001\000\001 +\243\201\240\060\201\235\060\014\006\003\125\035\023\004\005\060 +\003\001\001\377\060\075\006\003\125\035\037\004\066\060\064\060 +\062\240\060\240\056\206\054\150\164\164\160\072\057\057\146\145 +\144\151\162\056\143\157\155\163\151\147\156\056\143\157\056\151 +\154\057\143\162\154\057\103\157\155\123\151\147\156\103\101\056 +\143\162\154\060\016\006\003\125\035\017\001\001\377\004\004\003 +\002\001\206\060\037\006\003\125\035\043\004\030\060\026\200\024 +\113\001\233\076\126\032\145\066\166\313\173\227\252\222\005\356 +\062\347\050\061\060\035\006\003\125\035\016\004\026\004\024\113 +\001\233\076\126\032\145\066\166\313\173\227\252\222\005\356\062 +\347\050\061\060\015\006\011\052\206\110\206\367\015\001\001\005 +\005\000\003\202\001\001\000\320\331\245\176\376\051\140\105\235 +\176\203\317\156\274\107\156\365\032\236\124\166\102\161\264\074 +\130\077\055\100\045\102\366\201\234\361\211\020\310\016\252\170 +\117\070\011\127\260\074\300\010\374\065\216\361\110\121\215\014 +\161\164\272\204\304\327\162\233\204\174\070\116\144\006\047\052 +\341\247\265\354\010\231\264\012\015\324\205\163\310\022\341\065 +\355\361\005\061\035\163\231\014\353\226\312\335\323\346\205\252 +\360\212\373\165\301\362\011\074\145\145\144\363\114\330\255\313 +\210\151\363\344\203\267\014\275\027\132\226\027\312\133\377\255 +\273\034\351\055\204\200\330\041\276\205\122\331\324\164\271\151 +\205\272\115\355\050\062\353\371\141\112\344\304\066\036\031\334 +\157\204\021\037\225\365\203\050\030\250\063\222\103\047\335\135 +\023\004\105\117\207\325\106\315\075\250\272\360\363\270\126\044 +\105\353\067\307\341\166\117\162\071\030\337\176\164\162\307\163 +\055\071\352\140\346\255\021\242\126\207\173\303\150\232\376\370 +\214\160\250\337\145\062\364\244\100\214\241\302\104\003\016\224 +\000\147\240\161\000\202\110 +END + +# Trust for Certificate "ComSign CA" +CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "ComSign CA" +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\341\244\133\024\032\041\332\032\171\364\032\102\251\141\326\151 +\315\006\064\301 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\315\364\071\363\265\030\120\327\076\244\305\221\240\076\041\113 +END +CKA_ISSUER MULTILINE_OCTAL +\060\064\061\023\060\021\006\003\125\004\003\023\012\103\157\155 +\123\151\147\156\040\103\101\061\020\060\016\006\003\125\004\012 +\023\007\103\157\155\123\151\147\156\061\013\060\011\006\003\125 +\004\006\023\002\111\114 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\020\024\023\226\203\024\125\214\352\173\143\345\374\064\207 +\167\104 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_TRUST_UNKNOWN +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_TRUST_UNKNOWN +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "ComSign Secured CA" +# +CKA_CLASS CK_OBJECT_CLASS CKO_CERTIFICATE +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "ComSign Secured CA" +CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509 +CKA_SUBJECT MULTILINE_OCTAL +\060\074\061\033\060\031\006\003\125\004\003\023\022\103\157\155 +\123\151\147\156\040\123\145\143\165\162\145\144\040\103\101\061 +\020\060\016\006\003\125\004\012\023\007\103\157\155\123\151\147 +\156\061\013\060\011\006\003\125\004\006\023\002\111\114 +END +CKA_ID UTF8 "0" +CKA_ISSUER MULTILINE_OCTAL +\060\074\061\033\060\031\006\003\125\004\003\023\022\103\157\155 +\123\151\147\156\040\123\145\143\165\162\145\144\040\103\101\061 +\020\060\016\006\003\125\004\012\023\007\103\157\155\123\151\147 +\156\061\013\060\011\006\003\125\004\006\023\002\111\114 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\021\000\307\050\107\011\263\270\154\105\214\035\372\044\365 +\066\116\351 +END +CKA_VALUE MULTILINE_OCTAL +\060\202\003\253\060\202\002\223\240\003\002\001\002\002\021\000 +\307\050\107\011\263\270\154\105\214\035\372\044\365\066\116\351 +\060\015\006\011\052\206\110\206\367\015\001\001\005\005\000\060 +\074\061\033\060\031\006\003\125\004\003\023\022\103\157\155\123 +\151\147\156\040\123\145\143\165\162\145\144\040\103\101\061\020 +\060\016\006\003\125\004\012\023\007\103\157\155\123\151\147\156 +\061\013\060\011\006\003\125\004\006\023\002\111\114\060\036\027 +\015\060\064\060\063\062\064\061\061\063\067\062\060\132\027\015 +\062\071\060\063\061\066\061\065\060\064\065\066\132\060\074\061 +\033\060\031\006\003\125\004\003\023\022\103\157\155\123\151\147 +\156\040\123\145\143\165\162\145\144\040\103\101\061\020\060\016 +\006\003\125\004\012\023\007\103\157\155\123\151\147\156\061\013 +\060\011\006\003\125\004\006\023\002\111\114\060\202\001\042\060 +\015\006\011\052\206\110\206\367\015\001\001\001\005\000\003\202 +\001\017\000\060\202\001\012\002\202\001\001\000\306\265\150\137 +\035\224\025\303\244\010\125\055\343\240\127\172\357\351\164\052 +\273\271\174\127\111\032\021\136\117\051\207\014\110\326\152\347 +\217\324\176\127\044\271\006\211\344\034\074\352\254\343\332\041 +\200\163\041\012\357\171\230\154\037\010\377\241\120\175\362\230 +\033\311\124\157\076\245\050\354\041\004\017\105\273\007\075\241 +\300\372\052\230\035\116\006\223\373\365\210\073\253\137\313\026 +\277\346\363\236\112\207\355\031\352\302\237\103\344\361\201\245 +\177\020\117\076\321\112\142\255\123\033\313\203\377\007\145\245 +\222\055\146\251\133\270\132\364\035\264\041\221\112\027\173\236 +\062\376\126\044\071\262\124\204\103\365\204\302\330\274\101\220 +\314\235\326\150\332\351\202\120\251\073\150\317\265\135\002\224 +\140\026\261\103\331\103\135\335\135\207\156\352\273\263\311\153 +\366\003\224\011\160\336\026\021\172\053\350\166\217\111\020\230 +\167\271\143\134\213\063\227\165\366\013\214\262\253\133\336\164 +\040\045\077\343\363\021\371\207\150\206\065\161\303\035\214\055 +\353\345\032\254\017\163\325\202\131\100\200\323\002\003\001\000 +\001\243\201\247\060\201\244\060\014\006\003\125\035\023\004\005 +\060\003\001\001\377\060\104\006\003\125\035\037\004\075\060\073 +\060\071\240\067\240\065\206\063\150\164\164\160\072\057\057\146 +\145\144\151\162\056\143\157\155\163\151\147\156\056\143\157\056 +\151\154\057\143\162\154\057\103\157\155\123\151\147\156\123\145 +\143\165\162\145\144\103\101\056\143\162\154\060\016\006\003\125 +\035\017\001\001\377\004\004\003\002\001\206\060\037\006\003\125 +\035\043\004\030\060\026\200\024\301\113\355\160\266\367\076\174 +\000\073\000\217\307\076\016\105\237\036\135\354\060\035\006\003 +\125\035\016\004\026\004\024\301\113\355\160\266\367\076\174\000 +\073\000\217\307\076\016\105\237\036\135\354\060\015\006\011\052 +\206\110\206\367\015\001\001\005\005\000\003\202\001\001\000\026 +\317\356\222\023\120\253\173\024\236\063\266\102\040\152\324\025 +\275\011\253\374\162\350\357\107\172\220\254\121\301\144\116\351 +\210\275\103\105\201\343\146\043\077\022\206\115\031\344\005\260 +\346\067\302\215\332\006\050\311\017\211\244\123\251\165\077\260 +\226\373\253\114\063\125\371\170\046\106\157\033\066\230\373\102 +\166\301\202\271\216\336\373\105\371\143\033\142\073\071\006\312 +\167\172\250\074\011\317\154\066\075\017\012\105\113\151\026\032 +\105\175\063\003\145\371\122\161\220\046\225\254\114\014\365\213 +\223\077\314\165\164\205\230\272\377\142\172\115\037\211\376\256 +\275\224\000\231\277\021\245\334\340\171\305\026\013\175\002\141 +\035\352\205\371\002\025\117\347\132\211\116\024\157\343\067\113 +\205\365\301\074\141\340\375\005\101\262\222\177\303\035\240\320 +\256\122\144\140\153\030\306\046\234\330\365\144\344\066\032\142 +\237\212\017\076\377\155\116\031\126\116\040\221\154\237\064\063 +\072\064\127\120\072\157\201\136\006\306\365\076\174\116\216\053 +\316\145\006\056\135\322\052\123\164\136\323\156\047\236\217 +END + +# Trust for Certificate "ComSign Secured CA" +CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "ComSign Secured CA" +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\371\315\016\054\332\166\044\301\217\275\360\360\253\266\105\270 +\367\376\325\172 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\100\001\045\006\215\041\103\152\016\103\000\234\347\103\363\325 +END +CKA_ISSUER MULTILINE_OCTAL +\060\074\061\033\060\031\006\003\125\004\003\023\022\103\157\155 +\123\151\147\156\040\123\145\143\165\162\145\144\040\103\101\061 +\020\060\016\006\003\125\004\012\023\007\103\157\155\123\151\147 +\156\061\013\060\011\006\003\125\004\006\023\002\111\114 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\021\000\307\050\107\011\263\270\154\105\214\035\372\044\365 +\066\116\351 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_TRUST_UNKNOWN +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "Cybertrust Global Root" +# +CKA_CLASS CK_OBJECT_CLASS CKO_CERTIFICATE +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "Cybertrust Global Root" +CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509 +CKA_SUBJECT MULTILINE_OCTAL +\060\073\061\030\060\026\006\003\125\004\012\023\017\103\171\142 +\145\162\164\162\165\163\164\054\040\111\156\143\061\037\060\035 +\006\003\125\004\003\023\026\103\171\142\145\162\164\162\165\163 +\164\040\107\154\157\142\141\154\040\122\157\157\164 +END +CKA_ID UTF8 "0" +CKA_ISSUER MULTILINE_OCTAL +\060\073\061\030\060\026\006\003\125\004\012\023\017\103\171\142 +\145\162\164\162\165\163\164\054\040\111\156\143\061\037\060\035 +\006\003\125\004\003\023\026\103\171\142\145\162\164\162\165\163 +\164\040\107\154\157\142\141\154\040\122\157\157\164 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\013\004\000\000\000\000\001\017\205\252\055\110 +END +CKA_VALUE MULTILINE_OCTAL +\060\202\003\241\060\202\002\211\240\003\002\001\002\002\013\004 +\000\000\000\000\001\017\205\252\055\110\060\015\006\011\052\206 +\110\206\367\015\001\001\005\005\000\060\073\061\030\060\026\006 +\003\125\004\012\023\017\103\171\142\145\162\164\162\165\163\164 +\054\040\111\156\143\061\037\060\035\006\003\125\004\003\023\026 +\103\171\142\145\162\164\162\165\163\164\040\107\154\157\142\141 +\154\040\122\157\157\164\060\036\027\015\060\066\061\062\061\065 +\060\070\060\060\060\060\132\027\015\062\061\061\062\061\065\060 +\070\060\060\060\060\132\060\073\061\030\060\026\006\003\125\004 +\012\023\017\103\171\142\145\162\164\162\165\163\164\054\040\111 +\156\143\061\037\060\035\006\003\125\004\003\023\026\103\171\142 +\145\162\164\162\165\163\164\040\107\154\157\142\141\154\040\122 +\157\157\164\060\202\001\042\060\015\006\011\052\206\110\206\367 +\015\001\001\001\005\000\003\202\001\017\000\060\202\001\012\002 +\202\001\001\000\370\310\274\275\024\120\146\023\377\360\323\171 +\354\043\362\267\032\307\216\205\361\022\163\246\031\252\020\333 +\234\242\145\164\132\167\076\121\175\126\366\334\043\266\324\355 +\137\130\261\067\115\325\111\016\156\365\152\207\326\322\214\322 +\047\306\342\377\066\237\230\145\240\023\116\306\052\144\233\325 +\220\022\317\024\006\364\073\343\324\050\276\350\016\370\253\116 +\110\224\155\216\225\061\020\134\355\242\055\275\325\072\155\262 +\034\273\140\300\106\113\001\365\111\256\176\106\212\320\164\215 +\241\014\002\316\356\374\347\217\270\153\146\363\177\104\000\277 +\146\045\024\053\335\020\060\035\007\226\077\115\366\153\270\217 +\267\173\014\245\070\353\336\107\333\325\135\071\374\210\247\363 +\327\052\164\361\350\132\242\073\237\120\272\246\214\105\065\302 +\120\145\225\334\143\202\357\335\277\167\115\234\142\311\143\163 +\026\320\051\017\111\251\110\360\263\252\267\154\305\247\060\071 +\100\135\256\304\342\135\046\123\360\316\034\043\010\141\250\224 +\031\272\004\142\100\354\037\070\160\167\022\006\161\247\060\030 +\135\045\047\245\002\003\001\000\001\243\201\245\060\201\242\060 +\016\006\003\125\035\017\001\001\377\004\004\003\002\001\006\060 +\017\006\003\125\035\023\001\001\377\004\005\060\003\001\001\377 +\060\035\006\003\125\035\016\004\026\004\024\266\010\173\015\172 +\314\254\040\114\206\126\062\136\317\253\156\205\055\160\127\060 +\077\006\003\125\035\037\004\070\060\066\060\064\240\062\240\060 +\206\056\150\164\164\160\072\057\057\167\167\167\062\056\160\165 +\142\154\151\143\055\164\162\165\163\164\056\143\157\155\057\143 +\162\154\057\143\164\057\143\164\162\157\157\164\056\143\162\154 +\060\037\006\003\125\035\043\004\030\060\026\200\024\266\010\173 +\015\172\314\254\040\114\206\126\062\136\317\253\156\205\055\160 +\127\060\015\006\011\052\206\110\206\367\015\001\001\005\005\000 +\003\202\001\001\000\126\357\012\043\240\124\116\225\227\311\370 +\211\332\105\301\324\243\000\045\364\037\023\253\267\243\205\130 +\151\302\060\255\330\025\212\055\343\311\315\201\132\370\163\043 +\132\247\174\005\363\375\042\073\016\321\006\304\333\066\114\163 +\004\216\345\260\042\344\305\363\056\245\331\043\343\270\116\112 +\040\247\156\002\044\237\042\140\147\173\213\035\162\011\305\061 +\134\351\171\237\200\107\075\255\241\013\007\024\075\107\377\003 +\151\032\014\013\104\347\143\045\247\177\262\311\270\166\204\355 +\043\366\175\007\253\105\176\323\337\263\277\351\212\266\315\250 +\242\147\053\122\325\267\145\360\071\114\143\240\221\171\223\122 +\017\124\335\203\273\237\321\217\247\123\163\303\313\377\060\354 +\174\004\270\330\104\037\223\137\161\011\042\267\156\076\352\034 +\003\116\235\032\040\141\373\201\067\354\136\374\012\105\253\327 +\347\027\125\320\240\352\140\233\246\366\343\214\133\051\302\006 +\140\024\235\055\227\114\251\223\025\235\141\304\001\137\110\326 +\130\275\126\061\022\116\021\310\041\340\263\021\221\145\333\264 +\246\210\070\316\125 +END + +# Trust for Certificate "Cybertrust Global Root" +CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "Cybertrust Global Root" +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\137\103\345\261\277\370\170\214\254\034\307\312\112\232\306\042 +\053\314\064\306 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\162\344\112\207\343\151\100\200\167\352\274\343\364\377\360\341 +END +CKA_ISSUER MULTILINE_OCTAL +\060\073\061\030\060\026\006\003\125\004\012\023\017\103\171\142 +\145\162\164\162\165\163\164\054\040\111\156\143\061\037\060\035 +\006\003\125\004\003\023\026\103\171\142\145\162\164\162\165\163 +\164\040\107\154\157\142\141\154\040\122\157\157\164 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\013\004\000\000\000\000\001\017\205\252\055\110 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_TRUST_UNKNOWN +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_TRUST_UNKNOWN +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "ePKI Root Certification Authority" +# +CKA_CLASS CK_OBJECT_CLASS CKO_CERTIFICATE +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "ePKI Root Certification Authority" +CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509 +CKA_SUBJECT MULTILINE_OCTAL +\060\136\061\013\060\011\006\003\125\004\006\023\002\124\127\061 +\043\060\041\006\003\125\004\012\014\032\103\150\165\156\147\150 +\167\141\040\124\145\154\145\143\157\155\040\103\157\056\054\040 +\114\164\144\056\061\052\060\050\006\003\125\004\013\014\041\145 +\120\113\111\040\122\157\157\164\040\103\145\162\164\151\146\151 +\143\141\164\151\157\156\040\101\165\164\150\157\162\151\164\171 +END +CKA_ID UTF8 "0" +CKA_ISSUER MULTILINE_OCTAL +\060\136\061\013\060\011\006\003\125\004\006\023\002\124\127\061 +\043\060\041\006\003\125\004\012\014\032\103\150\165\156\147\150 +\167\141\040\124\145\154\145\143\157\155\040\103\157\056\054\040 +\114\164\144\056\061\052\060\050\006\003\125\004\013\014\041\145 +\120\113\111\040\122\157\157\164\040\103\145\162\164\151\146\151 +\143\141\164\151\157\156\040\101\165\164\150\157\162\151\164\171 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\020\025\310\275\145\107\134\257\270\227\000\136\344\006\322 +\274\235 +END +CKA_VALUE MULTILINE_OCTAL +\060\202\005\260\060\202\003\230\240\003\002\001\002\002\020\025 +\310\275\145\107\134\257\270\227\000\136\344\006\322\274\235\060 +\015\006\011\052\206\110\206\367\015\001\001\005\005\000\060\136 +\061\013\060\011\006\003\125\004\006\023\002\124\127\061\043\060 +\041\006\003\125\004\012\014\032\103\150\165\156\147\150\167\141 +\040\124\145\154\145\143\157\155\040\103\157\056\054\040\114\164 +\144\056\061\052\060\050\006\003\125\004\013\014\041\145\120\113 +\111\040\122\157\157\164\040\103\145\162\164\151\146\151\143\141 +\164\151\157\156\040\101\165\164\150\157\162\151\164\171\060\036 +\027\015\060\064\061\062\062\060\060\062\063\061\062\067\132\027 +\015\063\064\061\062\062\060\060\062\063\061\062\067\132\060\136 +\061\013\060\011\006\003\125\004\006\023\002\124\127\061\043\060 +\041\006\003\125\004\012\014\032\103\150\165\156\147\150\167\141 +\040\124\145\154\145\143\157\155\040\103\157\056\054\040\114\164 +\144\056\061\052\060\050\006\003\125\004\013\014\041\145\120\113 +\111\040\122\157\157\164\040\103\145\162\164\151\146\151\143\141 +\164\151\157\156\040\101\165\164\150\157\162\151\164\171\060\202 +\002\042\060\015\006\011\052\206\110\206\367\015\001\001\001\005 +\000\003\202\002\017\000\060\202\002\012\002\202\002\001\000\341 +\045\017\356\215\333\210\063\165\147\315\255\037\175\072\116\155 +\235\323\057\024\363\143\164\313\001\041\152\067\352\204\120\007 +\113\046\133\011\103\154\041\236\152\310\325\003\365\140\151\217 +\314\360\042\344\037\347\367\152\042\061\267\054\025\362\340\376 +\000\152\103\377\207\145\306\265\032\301\247\114\155\042\160\041 +\212\061\362\227\164\211\011\022\046\034\236\312\331\022\242\225 +\074\332\351\147\277\010\240\144\343\326\102\267\105\357\227\364 +\366\365\327\265\112\025\002\130\175\230\130\113\140\274\315\327 +\015\232\023\063\123\321\141\371\172\325\327\170\263\232\063\367 +\000\206\316\035\115\224\070\257\250\354\170\121\160\212\134\020 +\203\121\041\367\021\075\064\206\136\345\110\315\227\201\202\065 +\114\031\354\145\366\153\305\005\241\356\107\023\326\263\041\047 +\224\020\012\331\044\073\272\276\104\023\106\060\077\227\074\330 +\327\327\152\356\073\070\343\053\324\227\016\271\033\347\007\111 +\177\067\052\371\167\170\317\124\355\133\106\235\243\200\016\221 +\103\301\326\133\137\024\272\237\246\215\044\107\100\131\277\162 +\070\262\066\154\067\377\231\321\135\016\131\012\253\151\367\300 +\262\004\105\172\124\000\256\276\123\366\265\347\341\370\074\243 +\061\322\251\376\041\122\144\305\246\147\360\165\007\006\224\024 +\201\125\306\047\344\001\217\027\301\152\161\327\276\113\373\224 +\130\175\176\021\063\261\102\367\142\154\030\326\317\011\150\076 +\177\154\366\036\217\142\255\245\143\333\011\247\037\042\102\101 +\036\157\231\212\076\327\371\077\100\172\171\260\245\001\222\322 +\235\075\010\025\245\020\001\055\263\062\166\250\225\015\263\172 +\232\373\007\020\170\021\157\341\217\307\272\017\045\032\164\052 +\345\034\230\101\231\337\041\207\350\225\006\152\012\263\152\107 +\166\145\366\072\317\217\142\027\031\173\012\050\315\032\322\203 +\036\041\307\054\277\276\377\141\150\267\147\033\273\170\115\215 +\316\147\345\344\301\216\267\043\146\342\235\220\165\064\230\251 +\066\053\212\232\224\271\235\354\314\212\261\370\045\211\134\132 +\266\057\214\037\155\171\044\247\122\150\303\204\065\342\146\215 +\143\016\045\115\325\031\262\346\171\067\247\042\235\124\061\002 +\003\001\000\001\243\152\060\150\060\035\006\003\125\035\016\004 +\026\004\024\036\014\367\266\147\362\341\222\046\011\105\300\125 +\071\056\167\077\102\112\242\060\014\006\003\125\035\023\004\005 +\060\003\001\001\377\060\071\006\004\147\052\007\000\004\061\060 +\057\060\055\002\001\000\060\011\006\005\053\016\003\002\032\005 +\000\060\007\006\005\147\052\003\000\000\004\024\105\260\302\307 +\012\126\174\356\133\170\014\225\371\030\123\301\246\034\330\020 +\060\015\006\011\052\206\110\206\367\015\001\001\005\005\000\003 +\202\002\001\000\011\263\203\123\131\001\076\225\111\271\361\201 +\272\371\166\040\043\265\047\140\164\324\152\231\064\136\154\000 +\123\331\237\362\246\261\044\007\104\152\052\306\245\216\170\022 +\350\107\331\130\033\023\052\136\171\233\237\012\052\147\246\045 +\077\006\151\126\163\303\212\146\110\373\051\201\127\164\006\312 +\234\352\050\350\070\147\046\053\361\325\265\077\145\223\370\066 +\135\216\215\215\100\040\207\031\352\357\047\300\075\264\071\017 +\045\173\150\120\164\125\234\014\131\175\132\075\101\224\045\122 +\010\340\107\054\025\061\031\325\277\007\125\306\273\022\265\227 +\364\137\203\205\272\161\301\331\154\201\021\166\012\012\260\277 +\202\227\367\352\075\372\372\354\055\251\050\224\073\126\335\322 +\121\056\256\300\275\010\025\214\167\122\064\226\326\233\254\323 +\035\216\141\017\065\173\233\256\071\151\013\142\140\100\040\066 +\217\257\373\066\356\055\010\112\035\270\277\233\134\370\352\245 +\033\240\163\246\330\370\156\340\063\004\137\150\252\047\207\355 +\331\301\220\234\355\275\343\152\065\257\143\337\253\030\331\272 +\346\351\112\352\120\212\017\141\223\036\342\055\031\342\060\224 +\065\222\135\016\266\007\257\031\200\217\107\220\121\113\056\115 +\335\205\342\322\012\122\012\027\232\374\032\260\120\002\345\001 +\243\143\067\041\114\104\304\233\121\231\021\016\163\234\006\217 +\124\056\247\050\136\104\071\207\126\055\067\275\205\104\224\341 +\014\113\054\234\303\222\205\064\141\313\017\270\233\112\103\122 +\376\064\072\175\270\351\051\334\166\251\310\060\370\024\161\200 +\306\036\066\110\164\042\101\134\207\202\350\030\161\213\101\211 +\104\347\176\130\133\250\270\215\023\351\247\154\303\107\355\263 +\032\235\142\256\215\202\352\224\236\335\131\020\303\255\335\342 +\115\343\061\325\307\354\350\362\260\376\222\036\026\012\032\374 +\331\363\370\047\266\311\276\035\264\154\144\220\177\364\344\304 +\133\327\067\256\102\016\335\244\032\157\174\210\124\305\026\156 +\341\172\150\056\370\072\277\015\244\074\211\073\170\247\116\143 +\203\004\041\010\147\215\362\202\111\320\133\375\261\315\017\203 +\204\324\076\040\205\367\112\075\053\234\375\052\012\011\115\352 +\201\370\021\234 +END + +# Trust for Certificate "ePKI Root Certification Authority" +CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "ePKI Root Certification Authority" +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\147\145\015\361\176\216\176\133\202\100\244\364\126\113\317\342 +\075\151\306\360 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\033\056\000\312\046\006\220\075\255\376\157\025\150\323\153\263 +END +CKA_ISSUER MULTILINE_OCTAL +\060\136\061\013\060\011\006\003\125\004\006\023\002\124\127\061 +\043\060\041\006\003\125\004\012\014\032\103\150\165\156\147\150 +\167\141\040\124\145\154\145\143\157\155\040\103\157\056\054\040 +\114\164\144\056\061\052\060\050\006\003\125\004\013\014\041\145 +\120\113\111\040\122\157\157\164\040\103\145\162\164\151\146\151 +\143\141\164\151\157\156\040\101\165\164\150\157\162\151\164\171 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\020\025\310\275\145\107\134\257\270\227\000\136\344\006\322 +\274\235 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "TUBITAK UEKAE Kok Sertifika Hizmet Saglayicisi - Surum 3" +# +CKA_CLASS CK_OBJECT_CLASS CKO_CERTIFICATE +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "T\xc3\x9c\x42\xC4\xB0TAK UEKAE K\xC3\xB6k Sertifika Hizmet Sa\xC4\x9Flay\xc4\xb1\x63\xc4\xb1s\xc4\xb1 - S\xC3\xBCr\xC3\xBCm 3" +CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509 +CKA_SUBJECT MULTILINE_OCTAL +\060\202\001\053\061\013\060\011\006\003\125\004\006\023\002\124 +\122\061\030\060\026\006\003\125\004\007\014\017\107\145\142\172 +\145\040\055\040\113\157\143\141\145\154\151\061\107\060\105\006 +\003\125\004\012\014\076\124\303\274\162\153\151\171\145\040\102 +\151\154\151\155\163\145\154\040\166\145\040\124\145\153\156\157 +\154\157\152\151\153\040\101\162\141\305\237\164\304\261\162\155 +\141\040\113\165\162\165\155\165\040\055\040\124\303\234\102\304 +\260\124\101\113\061\110\060\106\006\003\125\004\013\014\077\125 +\154\165\163\141\154\040\105\154\145\153\164\162\157\156\151\153 +\040\166\145\040\113\162\151\160\164\157\154\157\152\151\040\101 +\162\141\305\237\164\304\261\162\155\141\040\105\156\163\164\151 +\164\303\274\163\303\274\040\055\040\125\105\113\101\105\061\043 +\060\041\006\003\125\004\013\014\032\113\141\155\165\040\123\145 +\162\164\151\146\151\153\141\163\171\157\156\040\115\145\162\153 +\145\172\151\061\112\060\110\006\003\125\004\003\014\101\124\303 +\234\102\304\260\124\101\113\040\125\105\113\101\105\040\113\303 +\266\153\040\123\145\162\164\151\146\151\153\141\040\110\151\172 +\155\145\164\040\123\141\304\237\154\141\171\304\261\143\304\261 +\163\304\261\040\055\040\123\303\274\162\303\274\155\040\063 +END +CKA_ID UTF8 "0" +CKA_ISSUER MULTILINE_OCTAL +\060\202\001\053\061\013\060\011\006\003\125\004\006\023\002\124 +\122\061\030\060\026\006\003\125\004\007\014\017\107\145\142\172 +\145\040\055\040\113\157\143\141\145\154\151\061\107\060\105\006 +\003\125\004\012\014\076\124\303\274\162\153\151\171\145\040\102 +\151\154\151\155\163\145\154\040\166\145\040\124\145\153\156\157 +\154\157\152\151\153\040\101\162\141\305\237\164\304\261\162\155 +\141\040\113\165\162\165\155\165\040\055\040\124\303\234\102\304 +\260\124\101\113\061\110\060\106\006\003\125\004\013\014\077\125 +\154\165\163\141\154\040\105\154\145\153\164\162\157\156\151\153 +\040\166\145\040\113\162\151\160\164\157\154\157\152\151\040\101 +\162\141\305\237\164\304\261\162\155\141\040\105\156\163\164\151 +\164\303\274\163\303\274\040\055\040\125\105\113\101\105\061\043 +\060\041\006\003\125\004\013\014\032\113\141\155\165\040\123\145 +\162\164\151\146\151\153\141\163\171\157\156\040\115\145\162\153 +\145\172\151\061\112\060\110\006\003\125\004\003\014\101\124\303 +\234\102\304\260\124\101\113\040\125\105\113\101\105\040\113\303 +\266\153\040\123\145\162\164\151\146\151\153\141\040\110\151\172 +\155\145\164\040\123\141\304\237\154\141\171\304\261\143\304\261 +\163\304\261\040\055\040\123\303\274\162\303\274\155\040\063 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\001\021 +END +CKA_VALUE MULTILINE_OCTAL +\060\202\005\027\060\202\003\377\240\003\002\001\002\002\001\021 +\060\015\006\011\052\206\110\206\367\015\001\001\005\005\000\060 +\202\001\053\061\013\060\011\006\003\125\004\006\023\002\124\122 +\061\030\060\026\006\003\125\004\007\014\017\107\145\142\172\145 +\040\055\040\113\157\143\141\145\154\151\061\107\060\105\006\003 +\125\004\012\014\076\124\303\274\162\153\151\171\145\040\102\151 +\154\151\155\163\145\154\040\166\145\040\124\145\153\156\157\154 +\157\152\151\153\040\101\162\141\305\237\164\304\261\162\155\141 +\040\113\165\162\165\155\165\040\055\040\124\303\234\102\304\260 +\124\101\113\061\110\060\106\006\003\125\004\013\014\077\125\154 +\165\163\141\154\040\105\154\145\153\164\162\157\156\151\153\040 +\166\145\040\113\162\151\160\164\157\154\157\152\151\040\101\162 +\141\305\237\164\304\261\162\155\141\040\105\156\163\164\151\164 +\303\274\163\303\274\040\055\040\125\105\113\101\105\061\043\060 +\041\006\003\125\004\013\014\032\113\141\155\165\040\123\145\162 +\164\151\146\151\153\141\163\171\157\156\040\115\145\162\153\145 +\172\151\061\112\060\110\006\003\125\004\003\014\101\124\303\234 +\102\304\260\124\101\113\040\125\105\113\101\105\040\113\303\266 +\153\040\123\145\162\164\151\146\151\153\141\040\110\151\172\155 +\145\164\040\123\141\304\237\154\141\171\304\261\143\304\261\163 +\304\261\040\055\040\123\303\274\162\303\274\155\040\063\060\036 +\027\015\060\067\060\070\062\064\061\061\063\067\060\067\132\027 +\015\061\067\060\070\062\061\061\061\063\067\060\067\132\060\202 +\001\053\061\013\060\011\006\003\125\004\006\023\002\124\122\061 +\030\060\026\006\003\125\004\007\014\017\107\145\142\172\145\040 +\055\040\113\157\143\141\145\154\151\061\107\060\105\006\003\125 +\004\012\014\076\124\303\274\162\153\151\171\145\040\102\151\154 +\151\155\163\145\154\040\166\145\040\124\145\153\156\157\154\157 +\152\151\153\040\101\162\141\305\237\164\304\261\162\155\141\040 +\113\165\162\165\155\165\040\055\040\124\303\234\102\304\260\124 +\101\113\061\110\060\106\006\003\125\004\013\014\077\125\154\165 +\163\141\154\040\105\154\145\153\164\162\157\156\151\153\040\166 +\145\040\113\162\151\160\164\157\154\157\152\151\040\101\162\141 +\305\237\164\304\261\162\155\141\040\105\156\163\164\151\164\303 +\274\163\303\274\040\055\040\125\105\113\101\105\061\043\060\041 +\006\003\125\004\013\014\032\113\141\155\165\040\123\145\162\164 +\151\146\151\153\141\163\171\157\156\040\115\145\162\153\145\172 +\151\061\112\060\110\006\003\125\004\003\014\101\124\303\234\102 +\304\260\124\101\113\040\125\105\113\101\105\040\113\303\266\153 +\040\123\145\162\164\151\146\151\153\141\040\110\151\172\155\145 +\164\040\123\141\304\237\154\141\171\304\261\143\304\261\163\304 +\261\040\055\040\123\303\274\162\303\274\155\040\063\060\202\001 +\042\060\015\006\011\052\206\110\206\367\015\001\001\001\005\000 +\003\202\001\017\000\060\202\001\012\002\202\001\001\000\212\155 +\113\377\020\210\072\303\366\176\224\350\352\040\144\160\256\041 +\201\276\072\173\074\333\361\035\122\177\131\372\363\042\114\225 +\240\220\274\110\116\021\253\373\267\265\215\172\203\050\214\046 +\106\330\116\225\100\207\141\237\305\236\155\201\207\127\154\212 +\073\264\146\352\314\100\374\343\252\154\262\313\001\333\062\277 +\322\353\205\317\241\015\125\303\133\070\127\160\270\165\306\171 +\321\024\060\355\033\130\133\153\357\065\362\241\041\116\305\316 +\174\231\137\154\271\270\042\223\120\247\315\114\160\152\276\152 +\005\177\023\234\053\036\352\376\107\316\004\245\157\254\223\056 +\174\053\237\236\171\023\221\350\352\236\312\070\165\216\142\260 +\225\223\052\345\337\351\136\227\156\040\137\137\204\172\104\071 +\031\100\034\272\125\053\373\060\262\201\357\204\343\334\354\230 +\070\071\003\205\010\251\124\003\005\051\360\311\217\213\352\013 +\206\145\031\021\323\351\011\043\336\150\223\003\311\066\034\041 +\156\316\214\146\361\231\060\330\327\263\303\035\370\201\056\250 +\275\202\013\146\376\202\313\341\340\032\202\303\100\201\002\003 +\001\000\001\243\102\060\100\060\035\006\003\125\035\016\004\026 +\004\024\275\210\207\311\217\366\244\012\013\252\353\305\376\221 +\043\235\253\112\212\062\060\016\006\003\125\035\017\001\001\377 +\004\004\003\002\001\006\060\017\006\003\125\035\023\001\001\377 +\004\005\060\003\001\001\377\060\015\006\011\052\206\110\206\367 +\015\001\001\005\005\000\003\202\001\001\000\035\174\372\111\217 +\064\351\267\046\222\026\232\005\164\347\113\320\155\071\154\303 +\046\366\316\270\061\274\304\337\274\052\370\067\221\030\334\004 +\310\144\231\053\030\155\200\003\131\311\256\370\130\320\076\355 +\303\043\237\151\074\206\070\034\236\357\332\047\170\321\204\067 +\161\212\074\113\071\317\176\105\006\326\055\330\212\115\170\022 +\326\255\302\323\313\322\320\101\363\046\066\112\233\225\154\014 +\356\345\321\103\047\146\301\210\367\172\263\040\154\352\260\151 +\053\307\040\350\014\003\304\101\005\231\342\077\344\153\370\240 +\206\201\307\204\306\037\325\113\201\022\262\026\041\054\023\241 +\200\262\136\014\112\023\236\040\330\142\100\253\220\352\144\112 +\057\254\015\001\022\171\105\250\057\207\031\150\310\342\205\307 +\060\262\165\371\070\077\262\300\223\264\153\342\003\104\316\147 +\240\337\211\326\255\214\166\243\023\303\224\141\053\153\331\154 +\301\007\012\042\007\205\154\205\044\106\251\276\077\213\170\204 +\202\176\044\014\235\375\201\067\343\045\250\355\066\116\225\054 +\311\234\220\332\354\251\102\074\255\266\002 +END + +# Trust for Certificate "TUBITAK UEKAE Kok Sertifika Hizmet Saglayicisi - Surum 3" +CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "T\xc3\x9c\x42\xC4\xB0TAK UEKAE K\xC3\xB6k Sertifika Hizmet Sa\xC4\x9Flay\xc4\xb1\x63\xc4\xb1s\xc4\xb1 - S\xC3\xBCr\xC3\xBCm 3" +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\033\113\071\141\046\047\153\144\221\242\150\155\327\002\103\041 +\055\037\035\226 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\355\101\365\214\120\305\053\234\163\346\356\154\353\302\250\046 +END +CKA_ISSUER MULTILINE_OCTAL +\060\202\001\053\061\013\060\011\006\003\125\004\006\023\002\124 +\122\061\030\060\026\006\003\125\004\007\014\017\107\145\142\172 +\145\040\055\040\113\157\143\141\145\154\151\061\107\060\105\006 +\003\125\004\012\014\076\124\303\274\162\153\151\171\145\040\102 +\151\154\151\155\163\145\154\040\166\145\040\124\145\153\156\157 +\154\157\152\151\153\040\101\162\141\305\237\164\304\261\162\155 +\141\040\113\165\162\165\155\165\040\055\040\124\303\234\102\304 +\260\124\101\113\061\110\060\106\006\003\125\004\013\014\077\125 +\154\165\163\141\154\040\105\154\145\153\164\162\157\156\151\153 +\040\166\145\040\113\162\151\160\164\157\154\157\152\151\040\101 +\162\141\305\237\164\304\261\162\155\141\040\105\156\163\164\151 +\164\303\274\163\303\274\040\055\040\125\105\113\101\105\061\043 +\060\041\006\003\125\004\013\014\032\113\141\155\165\040\123\145 +\162\164\151\146\151\153\141\163\171\157\156\040\115\145\162\153 +\145\172\151\061\112\060\110\006\003\125\004\003\014\101\124\303 +\234\102\304\260\124\101\113\040\125\105\113\101\105\040\113\303 +\266\153\040\123\145\162\164\151\146\151\153\141\040\110\151\172 +\155\145\164\040\123\141\304\237\154\141\171\304\261\143\304\261 +\163\304\261\040\055\040\123\303\274\162\303\274\155\040\063 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\001\021 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "Buypass Class 2 CA 1" +# +CKA_CLASS CK_OBJECT_CLASS CKO_CERTIFICATE +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "Buypass Class 2 CA 1" +CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509 +CKA_SUBJECT MULTILINE_OCTAL +\060\113\061\013\060\011\006\003\125\004\006\023\002\116\117\061 +\035\060\033\006\003\125\004\012\014\024\102\165\171\160\141\163 +\163\040\101\123\055\071\070\063\061\066\063\063\062\067\061\035 +\060\033\006\003\125\004\003\014\024\102\165\171\160\141\163\163 +\040\103\154\141\163\163\040\062\040\103\101\040\061 +END +CKA_ID UTF8 "0" +CKA_ISSUER MULTILINE_OCTAL +\060\113\061\013\060\011\006\003\125\004\006\023\002\116\117\061 +\035\060\033\006\003\125\004\012\014\024\102\165\171\160\141\163 +\163\040\101\123\055\071\070\063\061\066\063\063\062\067\061\035 +\060\033\006\003\125\004\003\014\024\102\165\171\160\141\163\163 +\040\103\154\141\163\163\040\062\040\103\101\040\061 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\001\001 +END +CKA_VALUE MULTILINE_OCTAL +\060\202\003\123\060\202\002\073\240\003\002\001\002\002\001\001 +\060\015\006\011\052\206\110\206\367\015\001\001\005\005\000\060 +\113\061\013\060\011\006\003\125\004\006\023\002\116\117\061\035 +\060\033\006\003\125\004\012\014\024\102\165\171\160\141\163\163 +\040\101\123\055\071\070\063\061\066\063\063\062\067\061\035\060 +\033\006\003\125\004\003\014\024\102\165\171\160\141\163\163\040 +\103\154\141\163\163\040\062\040\103\101\040\061\060\036\027\015 +\060\066\061\060\061\063\061\060\062\065\060\071\132\027\015\061 +\066\061\060\061\063\061\060\062\065\060\071\132\060\113\061\013 +\060\011\006\003\125\004\006\023\002\116\117\061\035\060\033\006 +\003\125\004\012\014\024\102\165\171\160\141\163\163\040\101\123 +\055\071\070\063\061\066\063\063\062\067\061\035\060\033\006\003 +\125\004\003\014\024\102\165\171\160\141\163\163\040\103\154\141 +\163\163\040\062\040\103\101\040\061\060\202\001\042\060\015\006 +\011\052\206\110\206\367\015\001\001\001\005\000\003\202\001\017 +\000\060\202\001\012\002\202\001\001\000\213\074\007\105\330\366 +\337\346\307\312\272\215\103\305\107\215\260\132\301\070\333\222 +\204\034\257\023\324\017\157\066\106\040\304\056\314\161\160\064 +\242\064\323\067\056\330\335\072\167\057\300\353\051\350\134\322 +\265\251\221\064\207\042\131\376\314\333\347\231\257\226\301\250 +\307\100\335\245\025\214\156\310\174\227\003\313\346\040\362\327 +\227\137\061\241\057\067\322\276\356\276\251\255\250\114\236\041 +\146\103\073\250\274\363\011\243\070\325\131\044\301\302\107\166 +\261\210\134\202\073\273\053\246\004\327\214\007\217\315\325\101 +\035\360\256\270\051\054\224\122\140\064\224\073\332\340\070\321 +\235\063\076\025\364\223\062\305\000\332\265\051\146\016\072\170 +\017\041\122\137\002\345\222\173\045\323\222\036\057\025\235\201 +\344\235\216\350\357\211\316\024\114\124\035\034\201\022\115\160 +\250\276\020\005\027\176\037\321\270\127\125\355\315\273\122\302 +\260\036\170\302\115\066\150\313\126\046\301\122\301\275\166\367 +\130\325\162\176\037\104\166\273\000\211\035\026\235\121\065\357 +\115\302\126\357\153\340\214\073\015\351\002\003\001\000\001\243 +\102\060\100\060\017\006\003\125\035\023\001\001\377\004\005\060 +\003\001\001\377\060\035\006\003\125\035\016\004\026\004\024\077 +\215\232\131\213\374\173\173\234\243\257\070\260\071\355\220\161 +\200\326\310\060\016\006\003\125\035\017\001\001\377\004\004\003 +\002\001\006\060\015\006\011\052\206\110\206\367\015\001\001\005 +\005\000\003\202\001\001\000\025\032\176\023\212\271\350\007\243 +\113\047\062\262\100\221\362\041\321\144\205\276\143\152\322\317 +\201\302\025\325\172\176\014\051\254\067\036\034\174\166\122\225 +\332\265\177\043\241\051\167\145\311\062\235\250\056\126\253\140 +\166\316\026\264\215\177\170\300\325\231\121\203\177\136\331\276 +\014\250\120\355\042\307\255\005\114\166\373\355\356\036\107\144 +\366\367\047\175\134\050\017\105\305\134\142\136\246\232\221\221 +\267\123\027\056\334\255\140\235\226\144\071\275\147\150\262\256 +\005\313\115\347\137\037\127\206\325\040\234\050\373\157\023\070 +\365\366\021\222\366\175\231\136\037\014\350\253\104\044\051\162 +\100\075\066\122\257\214\130\220\163\301\354\141\054\171\241\354 +\207\265\077\332\115\331\041\000\060\336\220\332\016\323\032\110 +\251\076\205\013\024\213\214\274\101\236\152\367\016\160\300\065 +\367\071\242\135\146\320\173\131\237\250\107\022\232\047\043\244 +\055\216\047\203\222\040\241\327\025\177\361\056\030\356\364\110 +\177\057\177\361\241\030\265\241\013\224\240\142\040\062\234\035 +\366\324\357\277\114\210\150 +END + +# Trust for Certificate "Buypass Class 2 CA 1" +CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "Buypass Class 2 CA 1" +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\240\241\253\220\311\374\204\173\073\022\141\350\227\175\137\323 +\042\141\323\314 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\270\010\232\360\003\314\033\015\310\154\013\166\241\165\144\043 +END +CKA_ISSUER MULTILINE_OCTAL +\060\113\061\013\060\011\006\003\125\004\006\023\002\116\117\061 +\035\060\033\006\003\125\004\012\014\024\102\165\171\160\141\163 +\163\040\101\123\055\071\070\063\061\066\063\063\062\067\061\035 +\060\033\006\003\125\004\003\014\024\102\165\171\160\141\163\163 +\040\103\154\141\163\163\040\062\040\103\101\040\061 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\001\001 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_TRUST_UNKNOWN +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_TRUST_UNKNOWN +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "Buypass Class 3 CA 1" +# +CKA_CLASS CK_OBJECT_CLASS CKO_CERTIFICATE +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "Buypass Class 3 CA 1" +CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509 +CKA_SUBJECT MULTILINE_OCTAL +\060\113\061\013\060\011\006\003\125\004\006\023\002\116\117\061 +\035\060\033\006\003\125\004\012\014\024\102\165\171\160\141\163 +\163\040\101\123\055\071\070\063\061\066\063\063\062\067\061\035 +\060\033\006\003\125\004\003\014\024\102\165\171\160\141\163\163 +\040\103\154\141\163\163\040\063\040\103\101\040\061 +END +CKA_ID UTF8 "0" +CKA_ISSUER MULTILINE_OCTAL +\060\113\061\013\060\011\006\003\125\004\006\023\002\116\117\061 +\035\060\033\006\003\125\004\012\014\024\102\165\171\160\141\163 +\163\040\101\123\055\071\070\063\061\066\063\063\062\067\061\035 +\060\033\006\003\125\004\003\014\024\102\165\171\160\141\163\163 +\040\103\154\141\163\163\040\063\040\103\101\040\061 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\001\002 +END +CKA_VALUE MULTILINE_OCTAL +\060\202\003\123\060\202\002\073\240\003\002\001\002\002\001\002 +\060\015\006\011\052\206\110\206\367\015\001\001\005\005\000\060 +\113\061\013\060\011\006\003\125\004\006\023\002\116\117\061\035 +\060\033\006\003\125\004\012\014\024\102\165\171\160\141\163\163 +\040\101\123\055\071\070\063\061\066\063\063\062\067\061\035\060 +\033\006\003\125\004\003\014\024\102\165\171\160\141\163\163\040 +\103\154\141\163\163\040\063\040\103\101\040\061\060\036\027\015 +\060\065\060\065\060\071\061\064\061\063\060\063\132\027\015\061 +\065\060\065\060\071\061\064\061\063\060\063\132\060\113\061\013 +\060\011\006\003\125\004\006\023\002\116\117\061\035\060\033\006 +\003\125\004\012\014\024\102\165\171\160\141\163\163\040\101\123 +\055\071\070\063\061\066\063\063\062\067\061\035\060\033\006\003 +\125\004\003\014\024\102\165\171\160\141\163\163\040\103\154\141 +\163\163\040\063\040\103\101\040\061\060\202\001\042\060\015\006 +\011\052\206\110\206\367\015\001\001\001\005\000\003\202\001\017 +\000\060\202\001\012\002\202\001\001\000\244\216\327\164\331\051 +\144\336\137\037\207\200\221\352\116\071\346\031\306\104\013\200 +\325\013\257\123\007\213\022\275\346\147\360\002\261\211\366\140 +\212\304\133\260\102\321\300\041\250\313\341\233\357\144\121\266 +\247\317\025\365\164\200\150\004\220\240\130\242\346\164\246\123 +\123\125\110\143\077\222\126\335\044\116\216\370\272\053\377\363 +\064\212\236\050\327\064\237\254\057\326\017\361\244\057\275\122 +\262\111\205\155\071\065\360\104\060\223\106\044\363\266\347\123 +\373\274\141\257\251\243\024\373\302\027\027\204\154\340\174\210 +\370\311\034\127\054\360\075\176\224\274\045\223\204\350\232\000 +\232\105\005\102\127\200\364\116\316\331\256\071\366\310\123\020 +\014\145\072\107\173\140\302\326\372\221\311\306\161\154\275\221 +\207\074\221\206\111\253\363\017\240\154\046\166\136\034\254\233 +\161\345\215\274\233\041\036\234\326\070\176\044\200\025\061\202 +\226\261\111\323\142\067\133\210\014\012\142\064\376\247\110\176 +\231\261\060\213\220\067\225\034\250\037\245\054\215\364\125\310 +\333\335\131\012\302\255\170\240\364\213\002\003\001\000\001\243 +\102\060\100\060\017\006\003\125\035\023\001\001\377\004\005\060 +\003\001\001\377\060\035\006\003\125\035\016\004\026\004\024\070 +\024\346\310\360\251\244\003\364\116\076\042\243\133\362\326\340 +\255\100\164\060\016\006\003\125\035\017\001\001\377\004\004\003 +\002\001\006\060\015\006\011\052\206\110\206\367\015\001\001\005 +\005\000\003\202\001\001\000\001\147\243\214\311\045\075\023\143 +\135\026\157\354\241\076\011\134\221\025\052\052\331\200\041\117 +\005\334\273\245\211\253\023\063\052\236\070\267\214\157\002\162 +\143\307\163\167\036\011\006\272\073\050\173\244\107\311\141\153 +\010\010\040\374\212\005\212\037\274\272\306\302\376\317\156\354 +\023\063\161\147\056\151\372\251\054\077\146\300\022\131\115\013 +\124\002\222\204\273\333\022\357\203\160\160\170\310\123\372\337 +\306\306\377\334\210\057\007\300\111\235\062\127\140\323\362\366 +\231\051\137\347\252\001\314\254\063\250\034\012\273\221\304\003 +\240\157\266\064\371\206\323\263\166\124\230\364\112\201\263\123 +\235\115\100\354\345\167\023\105\257\133\252\037\330\057\114\202 +\173\376\052\304\130\273\117\374\236\375\003\145\032\052\016\303 +\245\040\026\224\153\171\246\242\022\264\273\032\244\043\172\137 +\360\256\204\044\344\363\053\373\212\044\243\047\230\145\332\060 +\165\166\374\031\221\350\333\353\233\077\062\277\100\227\007\046 +\272\314\363\224\205\112\172\047\223\317\220\102\324\270\133\026 +\246\347\313\100\003\335\171 +END + +# Trust for Certificate "Buypass Class 3 CA 1" +CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "Buypass Class 3 CA 1" +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\141\127\072\021\337\016\330\176\325\222\145\042\352\320\126\327 +\104\263\043\161 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\337\074\163\131\201\347\071\120\201\004\114\064\242\313\263\173 +END +CKA_ISSUER MULTILINE_OCTAL +\060\113\061\013\060\011\006\003\125\004\006\023\002\116\117\061 +\035\060\033\006\003\125\004\012\014\024\102\165\171\160\141\163 +\163\040\101\123\055\071\070\063\061\066\063\063\062\067\061\035 +\060\033\006\003\125\004\003\014\024\102\165\171\160\141\163\163 +\040\103\154\141\163\163\040\063\040\103\101\040\061 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\001\002 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_TRUST_UNKNOWN +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_TRUST_UNKNOWN +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "EBG Elektronik Sertifika Hizmet Saglayicisi" +# +CKA_CLASS CK_OBJECT_CLASS CKO_CERTIFICATE +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "EBG Elektronik Sertifika Hizmet Sa\xC4\x9Flay\xc4\xb1\x63\xc4\xb1s\xc4\xb1" +CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509 +CKA_SUBJECT MULTILINE_OCTAL +\060\201\200\061\070\060\066\006\003\125\004\003\014\057\105\102 +\107\040\105\154\145\153\164\162\157\156\151\153\040\123\145\162 +\164\151\146\151\153\141\040\110\151\172\155\145\164\040\123\141 +\304\237\154\141\171\304\261\143\304\261\163\304\261\061\067\060 +\065\006\003\125\004\012\014\056\105\102\107\040\102\151\154\151 +\305\237\151\155\040\124\145\153\156\157\154\157\152\151\154\145 +\162\151\040\166\145\040\110\151\172\155\145\164\154\145\162\151 +\040\101\056\305\236\056\061\013\060\011\006\003\125\004\006\023 +\002\124\122 +END +CKA_ID UTF8 "0" +CKA_ISSUER MULTILINE_OCTAL +\060\201\200\061\070\060\066\006\003\125\004\003\014\057\105\102 +\107\040\105\154\145\153\164\162\157\156\151\153\040\123\145\162 +\164\151\146\151\153\141\040\110\151\172\155\145\164\040\123\141 +\304\237\154\141\171\304\261\143\304\261\163\304\261\061\067\060 +\065\006\003\125\004\012\014\056\105\102\107\040\102\151\154\151 +\305\237\151\155\040\124\145\153\156\157\154\157\152\151\154\145 +\162\151\040\166\145\040\110\151\172\155\145\164\154\145\162\151 +\040\101\056\305\236\056\061\013\060\011\006\003\125\004\006\023 +\002\124\122 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\010\114\257\163\102\034\216\164\002 +END +CKA_VALUE MULTILINE_OCTAL +\060\202\005\347\060\202\003\317\240\003\002\001\002\002\010\114 +\257\163\102\034\216\164\002\060\015\006\011\052\206\110\206\367 +\015\001\001\005\005\000\060\201\200\061\070\060\066\006\003\125 +\004\003\014\057\105\102\107\040\105\154\145\153\164\162\157\156 +\151\153\040\123\145\162\164\151\146\151\153\141\040\110\151\172 +\155\145\164\040\123\141\304\237\154\141\171\304\261\143\304\261 +\163\304\261\061\067\060\065\006\003\125\004\012\014\056\105\102 +\107\040\102\151\154\151\305\237\151\155\040\124\145\153\156\157 +\154\157\152\151\154\145\162\151\040\166\145\040\110\151\172\155 +\145\164\154\145\162\151\040\101\056\305\236\056\061\013\060\011 +\006\003\125\004\006\023\002\124\122\060\036\027\015\060\066\060 +\070\061\067\060\060\062\061\060\071\132\027\015\061\066\060\070 +\061\064\060\060\063\061\060\071\132\060\201\200\061\070\060\066 +\006\003\125\004\003\014\057\105\102\107\040\105\154\145\153\164 +\162\157\156\151\153\040\123\145\162\164\151\146\151\153\141\040 +\110\151\172\155\145\164\040\123\141\304\237\154\141\171\304\261 +\143\304\261\163\304\261\061\067\060\065\006\003\125\004\012\014 +\056\105\102\107\040\102\151\154\151\305\237\151\155\040\124\145 +\153\156\157\154\157\152\151\154\145\162\151\040\166\145\040\110 +\151\172\155\145\164\154\145\162\151\040\101\056\305\236\056\061 +\013\060\011\006\003\125\004\006\023\002\124\122\060\202\002\042 +\060\015\006\011\052\206\110\206\367\015\001\001\001\005\000\003 +\202\002\017\000\060\202\002\012\002\202\002\001\000\356\240\204 +\141\320\072\152\146\020\062\330\061\070\177\247\247\345\375\241 +\341\373\227\167\270\161\226\350\023\226\106\203\117\266\362\137 +\162\126\156\023\140\245\001\221\342\133\305\315\127\037\167\143 +\121\377\057\075\333\271\077\252\251\065\347\171\320\365\320\044 +\266\041\352\353\043\224\376\051\277\373\211\221\014\144\232\005 +\112\053\314\014\356\361\075\233\202\151\244\114\370\232\157\347 +\042\332\020\272\137\222\374\030\047\012\250\252\104\372\056\054 +\264\373\106\232\010\003\203\162\253\210\344\152\162\311\345\145 +\037\156\052\017\235\263\350\073\344\014\156\172\332\127\375\327 +\353\171\213\136\040\006\323\166\013\154\002\225\243\226\344\313 +\166\121\321\050\235\241\032\374\104\242\115\314\172\166\250\015 +\075\277\027\117\042\210\120\375\256\266\354\220\120\112\133\237 +\225\101\252\312\017\262\112\376\200\231\116\243\106\025\253\370 +\163\102\152\302\146\166\261\012\046\025\335\223\222\354\333\251 +\137\124\042\122\221\160\135\023\352\110\354\156\003\154\331\335 +\154\374\353\015\003\377\246\203\022\233\361\251\223\017\305\046 +\114\061\262\143\231\141\162\347\052\144\231\322\270\351\165\342 +\174\251\251\232\032\252\303\126\333\020\232\074\203\122\266\173 +\226\267\254\207\167\250\271\362\147\013\224\103\263\257\076\163 +\372\102\066\261\045\305\012\061\046\067\126\147\272\243\013\175 +\326\367\211\315\147\241\267\072\036\146\117\366\240\125\024\045 +\114\054\063\015\246\101\214\275\004\061\152\020\162\012\235\016 +\056\166\275\136\363\121\211\213\250\077\125\163\277\333\072\306 +\044\005\226\222\110\252\113\215\052\003\345\127\221\020\364\152 +\050\025\156\107\167\204\134\121\164\237\031\351\346\036\143\026 +\071\343\021\025\343\130\032\104\275\313\304\154\146\327\204\006 +\337\060\364\067\242\103\042\171\322\020\154\337\273\346\023\021 +\374\235\204\012\023\173\360\073\320\374\243\012\327\211\352\226 +\176\215\110\205\036\144\137\333\124\242\254\325\172\002\171\153 +\322\212\360\147\332\145\162\015\024\160\344\351\216\170\217\062 +\164\174\127\362\326\326\364\066\211\033\370\051\154\213\271\366 +\227\321\244\056\252\276\013\031\302\105\351\160\135\002\003\000 +\235\331\243\143\060\141\060\017\006\003\125\035\023\001\001\377 +\004\005\060\003\001\001\377\060\016\006\003\125\035\017\001\001 +\377\004\004\003\002\001\006\060\035\006\003\125\035\016\004\026 +\004\024\347\316\306\117\374\026\147\226\372\112\243\007\301\004 +\247\313\152\336\332\107\060\037\006\003\125\035\043\004\030\060 +\026\200\024\347\316\306\117\374\026\147\226\372\112\243\007\301 +\004\247\313\152\336\332\107\060\015\006\011\052\206\110\206\367 +\015\001\001\005\005\000\003\202\002\001\000\233\230\232\135\276 +\363\050\043\166\306\154\367\177\346\100\236\300\066\334\225\015 +\035\255\025\305\066\330\325\071\357\362\036\042\136\263\202\264 +\135\273\114\032\312\222\015\337\107\044\036\263\044\332\221\210 +\351\203\160\335\223\327\351\272\263\337\026\132\076\336\340\310 +\373\323\375\154\051\370\025\106\240\150\046\314\223\122\256\202 +\001\223\220\312\167\312\115\111\357\342\132\331\052\275\060\316 +\114\262\201\266\060\316\131\117\332\131\035\152\172\244\105\260 +\202\046\201\206\166\365\365\020\000\270\356\263\011\350\117\207 +\002\007\256\044\134\360\137\254\012\060\314\212\100\240\163\004 +\301\373\211\044\366\232\034\134\267\074\012\147\066\005\010\061 +\263\257\330\001\150\052\340\170\217\164\336\270\121\244\214\154 +\040\075\242\373\263\324\011\375\173\302\200\252\223\154\051\230 +\041\250\273\026\363\251\022\137\164\265\207\230\362\225\046\337 +\064\357\212\123\221\210\135\032\224\243\077\174\042\370\327\210 +\272\246\214\226\250\075\122\064\142\237\000\036\124\125\102\147 +\306\115\106\217\273\024\105\075\012\226\026\216\020\241\227\231 +\325\323\060\205\314\336\264\162\267\274\212\074\030\051\150\375 +\334\161\007\356\044\071\152\372\355\245\254\070\057\371\036\020 +\016\006\161\032\020\114\376\165\176\377\036\127\071\102\312\327 +\341\025\241\126\125\131\033\321\243\257\021\330\116\303\245\053 +\357\220\277\300\354\202\023\133\215\326\162\054\223\116\217\152 +\051\337\205\074\323\015\340\242\030\022\314\125\057\107\267\247 +\233\002\376\101\366\210\114\155\332\251\001\107\203\144\047\142 +\020\202\326\022\173\136\003\037\064\251\311\221\376\257\135\155 +\206\047\267\043\252\165\030\312\040\347\260\017\327\211\016\246 +\147\042\143\364\203\101\053\006\113\273\130\325\321\327\267\271 +\020\143\330\211\112\264\252\335\026\143\365\156\276\140\241\370 +\355\350\326\220\117\032\306\305\240\051\323\247\041\250\365\132 +\074\367\307\111\242\041\232\112\225\122\040\226\162\232\146\313 +\367\322\206\103\174\042\276\226\371\275\001\250\107\335\345\073 +\100\371\165\053\233\053\106\144\206\215\036\364\217\373\007\167 +\320\352\111\242\034\215\122\024\246\012\223 +END + +# Trust for Certificate "EBG Elektronik Sertifika Hizmet Saglayicisi" +CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "EBG Elektronik Sertifika Hizmet Sa\xC4\x9Flay\xc4\xb1\x63\xc4\xb1s\xc4\xb1" +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\214\226\272\353\335\053\007\007\110\356\060\062\146\240\363\230 +\156\174\256\130 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\054\040\046\235\313\032\112\000\205\265\267\132\256\302\001\067 +END +CKA_ISSUER MULTILINE_OCTAL +\060\201\200\061\070\060\066\006\003\125\004\003\014\057\105\102 +\107\040\105\154\145\153\164\162\157\156\151\153\040\123\145\162 +\164\151\146\151\153\141\040\110\151\172\155\145\164\040\123\141 +\304\237\154\141\171\304\261\143\304\261\163\304\261\061\067\060 +\065\006\003\125\004\012\014\056\105\102\107\040\102\151\154\151 +\305\237\151\155\040\124\145\153\156\157\154\157\152\151\154\145 +\162\151\040\166\145\040\110\151\172\155\145\164\154\145\162\151 +\040\101\056\305\236\056\061\013\060\011\006\003\125\004\006\023 +\002\124\122 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\010\114\257\163\102\034\216\164\002 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "certSIGN ROOT CA" +# +CKA_CLASS CK_OBJECT_CLASS CKO_CERTIFICATE +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "certSIGN ROOT CA" +CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509 +CKA_SUBJECT MULTILINE_OCTAL +\060\073\061\013\060\011\006\003\125\004\006\023\002\122\117\061 +\021\060\017\006\003\125\004\012\023\010\143\145\162\164\123\111 +\107\116\061\031\060\027\006\003\125\004\013\023\020\143\145\162 +\164\123\111\107\116\040\122\117\117\124\040\103\101 +END +CKA_ID UTF8 "0" +CKA_ISSUER MULTILINE_OCTAL +\060\073\061\013\060\011\006\003\125\004\006\023\002\122\117\061 +\021\060\017\006\003\125\004\012\023\010\143\145\162\164\123\111 +\107\116\061\031\060\027\006\003\125\004\013\023\020\143\145\162 +\164\123\111\107\116\040\122\117\117\124\040\103\101 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\006\040\006\005\026\160\002 +END +CKA_VALUE MULTILINE_OCTAL +\060\202\003\070\060\202\002\040\240\003\002\001\002\002\006\040 +\006\005\026\160\002\060\015\006\011\052\206\110\206\367\015\001 +\001\005\005\000\060\073\061\013\060\011\006\003\125\004\006\023 +\002\122\117\061\021\060\017\006\003\125\004\012\023\010\143\145 +\162\164\123\111\107\116\061\031\060\027\006\003\125\004\013\023 +\020\143\145\162\164\123\111\107\116\040\122\117\117\124\040\103 +\101\060\036\027\015\060\066\060\067\060\064\061\067\062\060\060 +\064\132\027\015\063\061\060\067\060\064\061\067\062\060\060\064 +\132\060\073\061\013\060\011\006\003\125\004\006\023\002\122\117 +\061\021\060\017\006\003\125\004\012\023\010\143\145\162\164\123 +\111\107\116\061\031\060\027\006\003\125\004\013\023\020\143\145 +\162\164\123\111\107\116\040\122\117\117\124\040\103\101\060\202 +\001\042\060\015\006\011\052\206\110\206\367\015\001\001\001\005 +\000\003\202\001\017\000\060\202\001\012\002\202\001\001\000\267 +\063\271\176\310\045\112\216\265\333\264\050\033\252\127\220\350 +\321\042\323\144\272\323\223\350\324\254\206\141\100\152\140\127 +\150\124\204\115\274\152\124\002\005\377\337\233\232\052\256\135 +\007\217\112\303\050\177\357\373\053\372\171\361\307\255\360\020 +\123\044\220\213\146\311\250\210\253\257\132\243\000\351\276\272 +\106\356\133\163\173\054\027\202\201\136\142\054\241\002\145\263 +\275\305\053\000\176\304\374\003\063\127\015\355\342\372\316\135 +\105\326\070\315\065\266\262\301\320\234\201\112\252\344\262\001 +\134\035\217\137\231\304\261\255\333\210\041\353\220\010\202\200 +\363\060\243\103\346\220\202\256\125\050\111\355\133\327\251\020 +\070\016\376\217\114\133\233\106\352\101\365\260\010\164\303\320 +\210\063\266\174\327\164\337\334\204\321\103\016\165\071\241\045 +\100\050\352\170\313\016\054\056\071\235\214\213\156\026\034\057 +\046\202\020\342\343\145\224\012\004\300\136\367\135\133\370\020 +\342\320\272\172\113\373\336\067\000\000\032\133\050\343\322\234 +\163\076\062\207\230\241\311\121\057\327\336\254\063\263\117\002 +\003\001\000\001\243\102\060\100\060\017\006\003\125\035\023\001 +\001\377\004\005\060\003\001\001\377\060\016\006\003\125\035\017 +\001\001\377\004\004\003\002\001\306\060\035\006\003\125\035\016 +\004\026\004\024\340\214\233\333\045\111\263\361\174\206\326\262 +\102\207\013\320\153\240\331\344\060\015\006\011\052\206\110\206 +\367\015\001\001\005\005\000\003\202\001\001\000\076\322\034\211 +\056\065\374\370\165\335\346\177\145\210\364\162\114\311\054\327 +\062\116\363\335\031\171\107\275\216\073\133\223\017\120\111\044 +\023\153\024\006\162\357\011\323\241\241\343\100\204\311\347\030 +\062\164\074\110\156\017\237\113\324\367\036\323\223\206\144\124 +\227\143\162\120\325\125\317\372\040\223\002\242\233\303\043\223 +\116\026\125\166\240\160\171\155\315\041\037\317\057\055\274\031 +\343\210\061\370\131\032\201\011\310\227\246\164\307\140\304\133 +\314\127\216\262\165\375\033\002\011\333\131\157\162\223\151\367 +\061\101\326\210\070\277\207\262\275\026\171\371\252\344\276\210 +\045\335\141\047\043\034\265\061\007\004\066\264\032\220\275\240 +\164\161\120\211\155\274\024\343\017\206\256\361\253\076\307\240 +\011\314\243\110\321\340\333\144\347\222\265\317\257\162\103\160 +\213\371\303\204\074\023\252\176\222\233\127\123\223\372\160\302 +\221\016\061\371\233\147\135\351\226\070\136\137\263\163\116\210 +\025\147\336\236\166\020\142\040\276\125\151\225\103\000\071\115 +\366\356\260\132\116\111\104\124\130\137\102\203 +END + +# Trust for Certificate "certSIGN ROOT CA" +CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "certSIGN ROOT CA" +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\372\267\356\066\227\046\142\373\055\260\052\366\277\003\375\350 +\174\113\057\233 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\030\230\300\326\351\072\374\371\260\365\014\367\113\001\104\027 +END +CKA_ISSUER MULTILINE_OCTAL +\060\073\061\013\060\011\006\003\125\004\006\023\002\122\117\061 +\021\060\017\006\003\125\004\012\023\010\143\145\162\164\123\111 +\107\116\061\031\060\027\006\003\125\004\013\023\020\143\145\162 +\164\123\111\107\116\040\122\117\117\124\040\103\101 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\006\040\006\005\026\160\002 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "CNNIC ROOT" +# +CKA_CLASS CK_OBJECT_CLASS CKO_CERTIFICATE +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "CNNIC ROOT" +CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509 +CKA_SUBJECT MULTILINE_OCTAL +\060\062\061\013\060\011\006\003\125\004\006\023\002\103\116\061 +\016\060\014\006\003\125\004\012\023\005\103\116\116\111\103\061 +\023\060\021\006\003\125\004\003\023\012\103\116\116\111\103\040 +\122\117\117\124 +END +CKA_ID UTF8 "0" +CKA_ISSUER MULTILINE_OCTAL +\060\062\061\013\060\011\006\003\125\004\006\023\002\103\116\061 +\016\060\014\006\003\125\004\012\023\005\103\116\116\111\103\061 +\023\060\021\006\003\125\004\003\023\012\103\116\116\111\103\040 +\122\117\117\124 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\004\111\063\000\001 +END +CKA_VALUE MULTILINE_OCTAL +\060\202\003\125\060\202\002\075\240\003\002\001\002\002\004\111 +\063\000\001\060\015\006\011\052\206\110\206\367\015\001\001\005 +\005\000\060\062\061\013\060\011\006\003\125\004\006\023\002\103 +\116\061\016\060\014\006\003\125\004\012\023\005\103\116\116\111 +\103\061\023\060\021\006\003\125\004\003\023\012\103\116\116\111 +\103\040\122\117\117\124\060\036\027\015\060\067\060\064\061\066 +\060\067\060\071\061\064\132\027\015\062\067\060\064\061\066\060 +\067\060\071\061\064\132\060\062\061\013\060\011\006\003\125\004 +\006\023\002\103\116\061\016\060\014\006\003\125\004\012\023\005 +\103\116\116\111\103\061\023\060\021\006\003\125\004\003\023\012 +\103\116\116\111\103\040\122\117\117\124\060\202\001\042\060\015 +\006\011\052\206\110\206\367\015\001\001\001\005\000\003\202\001 +\017\000\060\202\001\012\002\202\001\001\000\323\065\367\077\163 +\167\255\350\133\163\027\302\321\157\355\125\274\156\352\350\244 +\171\262\154\303\243\357\341\237\261\073\110\205\365\232\134\041 +\042\020\054\305\202\316\332\343\232\156\067\341\207\054\334\271 +\014\132\272\210\125\337\375\252\333\037\061\352\001\361\337\071 +\001\301\023\375\110\122\041\304\125\337\332\330\263\124\166\272 +\164\261\267\175\327\300\350\366\131\305\115\310\275\255\037\024 +\332\337\130\104\045\062\031\052\307\176\176\216\256\070\260\060 +\173\107\162\011\061\360\060\333\303\033\166\051\273\151\166\116 +\127\371\033\144\242\223\126\267\157\231\156\333\012\004\234\021 +\343\200\037\313\143\224\020\012\251\341\144\202\061\371\214\047 +\355\246\231\000\366\160\223\030\370\241\064\206\243\335\172\302 +\030\171\366\172\145\065\317\220\353\275\063\223\237\123\253\163 +\073\346\233\064\040\057\035\357\251\035\143\032\240\200\333\003 +\057\371\046\032\206\322\215\273\251\276\122\072\207\147\110\015 +\277\264\240\330\046\276\043\137\163\067\177\046\346\222\004\243 +\177\317\040\247\267\363\072\312\313\231\313\002\003\001\000\001 +\243\163\060\161\060\021\006\011\140\206\110\001\206\370\102\001 +\001\004\004\003\002\000\007\060\037\006\003\125\035\043\004\030 +\060\026\200\024\145\362\061\255\052\367\367\335\122\226\012\307 +\002\301\016\357\246\325\073\021\060\017\006\003\125\035\023\001 +\001\377\004\005\060\003\001\001\377\060\013\006\003\125\035\017 +\004\004\003\002\001\376\060\035\006\003\125\035\016\004\026\004 +\024\145\362\061\255\052\367\367\335\122\226\012\307\002\301\016 +\357\246\325\073\021\060\015\006\011\052\206\110\206\367\015\001 +\001\005\005\000\003\202\001\001\000\113\065\356\314\344\256\277 +\303\156\255\237\225\073\113\077\133\036\337\127\051\242\131\312 +\070\342\271\032\377\236\346\156\062\335\036\256\352\065\267\365 +\223\221\116\332\102\341\303\027\140\120\362\321\134\046\271\202 +\267\352\155\344\234\204\347\003\171\027\257\230\075\224\333\307 +\272\000\347\270\277\001\127\301\167\105\062\014\073\361\264\034 +\010\260\375\121\240\241\335\232\035\023\066\232\155\267\307\074 +\271\341\305\331\027\372\203\325\075\025\240\074\273\036\013\342 +\310\220\077\250\206\014\374\371\213\136\205\313\117\133\113\142 +\021\107\305\105\174\005\057\101\261\236\020\151\033\231\226\340 +\125\171\373\116\206\231\270\224\332\206\070\152\223\243\347\313 +\156\345\337\352\041\125\211\234\175\175\177\230\365\000\211\356 +\343\204\300\134\226\265\305\106\352\106\340\205\125\266\033\311 +\022\326\301\315\315\200\363\002\001\074\310\151\313\105\110\143 +\330\224\320\354\205\016\073\116\021\145\364\202\214\246\075\256 +\056\042\224\011\310\134\352\074\201\135\026\052\003\227\026\125 +\011\333\212\101\202\236\146\233\021 +END + +# Trust for Certificate "CNNIC ROOT" +CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "CNNIC ROOT" +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\213\257\114\233\035\360\052\222\367\332\022\216\271\033\254\364 +\230\140\113\157 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\041\274\202\253\111\304\023\073\113\262\053\134\153\220\234\031 +END +CKA_ISSUER MULTILINE_OCTAL +\060\062\061\013\060\011\006\003\125\004\006\023\002\103\116\061 +\016\060\014\006\003\125\004\012\023\005\103\116\116\111\103\061 +\023\060\021\006\003\125\004\003\023\012\103\116\116\111\103\040 +\122\117\117\124 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\004\111\063\000\001 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_TRUST_UNKNOWN +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_TRUST_UNKNOWN +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "ApplicationCA - Japanese Government" +# +CKA_CLASS CK_OBJECT_CLASS CKO_CERTIFICATE +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "ApplicationCA - Japanese Government" +CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509 +CKA_SUBJECT MULTILINE_OCTAL +\060\103\061\013\060\011\006\003\125\004\006\023\002\112\120\061 +\034\060\032\006\003\125\004\012\023\023\112\141\160\141\156\145 +\163\145\040\107\157\166\145\162\156\155\145\156\164\061\026\060 +\024\006\003\125\004\013\023\015\101\160\160\154\151\143\141\164 +\151\157\156\103\101 +END +CKA_ID UTF8 "0" +CKA_ISSUER MULTILINE_OCTAL +\060\103\061\013\060\011\006\003\125\004\006\023\002\112\120\061 +\034\060\032\006\003\125\004\012\023\023\112\141\160\141\156\145 +\163\145\040\107\157\166\145\162\156\155\145\156\164\061\026\060 +\024\006\003\125\004\013\023\015\101\160\160\154\151\143\141\164 +\151\157\156\103\101 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\001\061 +END +CKA_VALUE MULTILINE_OCTAL +\060\202\003\240\060\202\002\210\240\003\002\001\002\002\001\061 +\060\015\006\011\052\206\110\206\367\015\001\001\005\005\000\060 +\103\061\013\060\011\006\003\125\004\006\023\002\112\120\061\034 +\060\032\006\003\125\004\012\023\023\112\141\160\141\156\145\163 +\145\040\107\157\166\145\162\156\155\145\156\164\061\026\060\024 +\006\003\125\004\013\023\015\101\160\160\154\151\143\141\164\151 +\157\156\103\101\060\036\027\015\060\067\061\062\061\062\061\065 +\060\060\060\060\132\027\015\061\067\061\062\061\062\061\065\060 +\060\060\060\132\060\103\061\013\060\011\006\003\125\004\006\023 +\002\112\120\061\034\060\032\006\003\125\004\012\023\023\112\141 +\160\141\156\145\163\145\040\107\157\166\145\162\156\155\145\156 +\164\061\026\060\024\006\003\125\004\013\023\015\101\160\160\154 +\151\143\141\164\151\157\156\103\101\060\202\001\042\060\015\006 +\011\052\206\110\206\367\015\001\001\001\005\000\003\202\001\017 +\000\060\202\001\012\002\202\001\001\000\247\155\340\164\116\207 +\217\245\006\336\150\242\333\206\231\113\144\015\161\360\012\005 +\233\216\252\341\314\056\322\152\073\301\172\264\227\141\215\212 +\276\306\232\234\006\264\206\121\344\067\016\164\170\176\137\212 +\177\224\244\327\107\010\375\120\132\126\344\150\254\050\163\240 +\173\351\177\030\222\100\117\055\235\365\256\104\110\163\066\006 +\236\144\054\073\064\043\333\134\046\344\161\171\217\324\156\171 +\042\271\223\301\312\315\301\126\355\210\152\327\240\071\041\004 +\127\054\242\365\274\107\101\117\136\064\042\225\265\037\051\155 +\136\112\363\115\162\276\101\126\040\207\374\351\120\107\327\060 +\024\356\134\214\125\272\131\215\207\374\043\336\223\320\004\214 +\375\357\155\275\320\172\311\245\072\152\162\063\306\112\015\005 +\027\052\055\173\261\247\330\326\360\276\364\077\352\016\050\155 +\101\141\043\166\170\303\270\145\244\363\132\256\314\302\252\331 +\347\130\336\266\176\235\205\156\237\052\012\157\237\003\051\060 +\227\050\035\274\267\317\124\051\116\121\061\371\047\266\050\046 +\376\242\143\346\101\026\360\063\230\107\002\003\001\000\001\243 +\201\236\060\201\233\060\035\006\003\125\035\016\004\026\004\024 +\124\132\313\046\077\161\314\224\106\015\226\123\352\153\110\320 +\223\376\102\165\060\016\006\003\125\035\017\001\001\377\004\004 +\003\002\001\006\060\131\006\003\125\035\021\004\122\060\120\244 +\116\060\114\061\013\060\011\006\003\125\004\006\023\002\112\120 +\061\030\060\026\006\003\125\004\012\014\017\346\227\245\346\234 +\254\345\233\275\346\224\277\345\272\234\061\043\060\041\006\003 +\125\004\013\014\032\343\202\242\343\203\227\343\203\252\343\202 +\261\343\203\274\343\202\267\343\203\247\343\203\263\103\101\060 +\017\006\003\125\035\023\001\001\377\004\005\060\003\001\001\377 +\060\015\006\011\052\206\110\206\367\015\001\001\005\005\000\003 +\202\001\001\000\071\152\104\166\167\070\072\354\243\147\106\017 +\371\213\006\250\373\152\220\061\316\176\354\332\321\211\174\172 +\353\056\014\275\231\062\347\260\044\326\303\377\365\262\210\011 +\207\054\343\124\341\243\246\262\010\013\300\205\250\310\322\234 +\161\366\035\237\140\374\070\063\023\341\236\334\013\137\332\026 +\120\051\173\057\160\221\017\231\272\064\064\215\225\164\305\176 +\170\251\146\135\275\312\041\167\102\020\254\146\046\075\336\221 +\253\375\025\360\157\355\154\137\020\370\363\026\366\003\212\217 +\247\022\021\014\313\375\077\171\301\234\375\142\356\243\317\124 +\014\321\053\137\027\076\343\076\277\300\053\076\011\233\376\210 +\246\176\264\222\027\374\043\224\201\275\156\247\305\214\302\353 +\021\105\333\370\101\311\226\166\352\160\137\171\022\153\344\243 +\007\132\005\357\047\111\317\041\237\212\114\011\160\146\251\046 +\301\053\021\116\063\322\016\374\326\154\322\016\062\144\150\377 +\255\005\170\137\003\035\250\343\220\254\044\340\017\100\247\113 +\256\213\050\267\202\312\030\007\346\267\133\164\351\040\031\177 +\262\033\211\124 +END + +# Trust for Certificate "ApplicationCA - Japanese Government" +CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "ApplicationCA - Japanese Government" +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\177\212\260\317\320\121\207\152\146\363\066\017\107\310\215\214 +\323\065\374\164 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\176\043\116\133\247\245\264\045\351\000\007\164\021\142\256\326 +END +CKA_ISSUER MULTILINE_OCTAL +\060\103\061\013\060\011\006\003\125\004\006\023\002\112\120\061 +\034\060\032\006\003\125\004\012\023\023\112\141\160\141\156\145 +\163\145\040\107\157\166\145\162\156\155\145\156\164\061\026\060 +\024\006\003\125\004\013\023\015\101\160\160\154\151\143\141\164 +\151\157\156\103\101 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\001\061 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_TRUST_UNKNOWN +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "GeoTrust Primary Certification Authority - G3" +# +CKA_CLASS CK_OBJECT_CLASS CKO_CERTIFICATE +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "GeoTrust Primary Certification Authority - G3" +CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509 +CKA_SUBJECT MULTILINE_OCTAL +\060\201\230\061\013\060\011\006\003\125\004\006\023\002\125\123 +\061\026\060\024\006\003\125\004\012\023\015\107\145\157\124\162 +\165\163\164\040\111\156\143\056\061\071\060\067\006\003\125\004 +\013\023\060\050\143\051\040\062\060\060\070\040\107\145\157\124 +\162\165\163\164\040\111\156\143\056\040\055\040\106\157\162\040 +\141\165\164\150\157\162\151\172\145\144\040\165\163\145\040\157 +\156\154\171\061\066\060\064\006\003\125\004\003\023\055\107\145 +\157\124\162\165\163\164\040\120\162\151\155\141\162\171\040\103 +\145\162\164\151\146\151\143\141\164\151\157\156\040\101\165\164 +\150\157\162\151\164\171\040\055\040\107\063 +END +CKA_ID UTF8 "0" +CKA_ISSUER MULTILINE_OCTAL +\060\201\230\061\013\060\011\006\003\125\004\006\023\002\125\123 +\061\026\060\024\006\003\125\004\012\023\015\107\145\157\124\162 +\165\163\164\040\111\156\143\056\061\071\060\067\006\003\125\004 +\013\023\060\050\143\051\040\062\060\060\070\040\107\145\157\124 +\162\165\163\164\040\111\156\143\056\040\055\040\106\157\162\040 +\141\165\164\150\157\162\151\172\145\144\040\165\163\145\040\157 +\156\154\171\061\066\060\064\006\003\125\004\003\023\055\107\145 +\157\124\162\165\163\164\040\120\162\151\155\141\162\171\040\103 +\145\162\164\151\146\151\143\141\164\151\157\156\040\101\165\164 +\150\157\162\151\164\171\040\055\040\107\063 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\020\025\254\156\224\031\262\171\113\101\366\047\251\303\030 +\017\037 +END +CKA_VALUE MULTILINE_OCTAL +\060\202\003\376\060\202\002\346\240\003\002\001\002\002\020\025 +\254\156\224\031\262\171\113\101\366\047\251\303\030\017\037\060 +\015\006\011\052\206\110\206\367\015\001\001\013\005\000\060\201 +\230\061\013\060\011\006\003\125\004\006\023\002\125\123\061\026 +\060\024\006\003\125\004\012\023\015\107\145\157\124\162\165\163 +\164\040\111\156\143\056\061\071\060\067\006\003\125\004\013\023 +\060\050\143\051\040\062\060\060\070\040\107\145\157\124\162\165 +\163\164\040\111\156\143\056\040\055\040\106\157\162\040\141\165 +\164\150\157\162\151\172\145\144\040\165\163\145\040\157\156\154 +\171\061\066\060\064\006\003\125\004\003\023\055\107\145\157\124 +\162\165\163\164\040\120\162\151\155\141\162\171\040\103\145\162 +\164\151\146\151\143\141\164\151\157\156\040\101\165\164\150\157 +\162\151\164\171\040\055\040\107\063\060\036\027\015\060\070\060 +\064\060\062\060\060\060\060\060\060\132\027\015\063\067\061\062 +\060\061\062\063\065\071\065\071\132\060\201\230\061\013\060\011 +\006\003\125\004\006\023\002\125\123\061\026\060\024\006\003\125 +\004\012\023\015\107\145\157\124\162\165\163\164\040\111\156\143 +\056\061\071\060\067\006\003\125\004\013\023\060\050\143\051\040 +\062\060\060\070\040\107\145\157\124\162\165\163\164\040\111\156 +\143\056\040\055\040\106\157\162\040\141\165\164\150\157\162\151 +\172\145\144\040\165\163\145\040\157\156\154\171\061\066\060\064 +\006\003\125\004\003\023\055\107\145\157\124\162\165\163\164\040 +\120\162\151\155\141\162\171\040\103\145\162\164\151\146\151\143 +\141\164\151\157\156\040\101\165\164\150\157\162\151\164\171\040 +\055\040\107\063\060\202\001\042\060\015\006\011\052\206\110\206 +\367\015\001\001\001\005\000\003\202\001\017\000\060\202\001\012 +\002\202\001\001\000\334\342\136\142\130\035\063\127\071\062\063 +\372\353\313\207\214\247\324\112\335\006\210\352\144\216\061\230 +\245\070\220\036\230\317\056\143\053\360\106\274\104\262\211\241 +\300\050\014\111\160\041\225\237\144\300\246\223\022\002\145\046 +\206\306\245\211\360\372\327\204\240\160\257\117\032\227\077\006 +\104\325\311\353\162\020\175\344\061\050\373\034\141\346\050\007 +\104\163\222\042\151\247\003\210\154\235\143\310\122\332\230\047 +\347\010\114\160\076\264\311\022\301\305\147\203\135\063\363\003 +\021\354\152\320\123\342\321\272\066\140\224\200\273\141\143\154 +\133\027\176\337\100\224\036\253\015\302\041\050\160\210\377\326 +\046\154\154\140\004\045\116\125\176\175\357\277\224\110\336\267 +\035\335\160\215\005\137\210\245\233\362\302\356\352\321\100\101 +\155\142\070\035\126\006\305\003\107\121\040\031\374\173\020\013 +\016\142\256\166\125\277\137\167\276\076\111\001\123\075\230\045 +\003\166\044\132\035\264\333\211\352\171\345\266\263\073\077\272 +\114\050\101\177\006\254\152\216\301\320\366\005\035\175\346\102 +\206\343\245\325\107\002\003\001\000\001\243\102\060\100\060\017 +\006\003\125\035\023\001\001\377\004\005\060\003\001\001\377\060 +\016\006\003\125\035\017\001\001\377\004\004\003\002\001\006\060 +\035\006\003\125\035\016\004\026\004\024\304\171\312\216\241\116 +\003\035\034\334\153\333\061\133\224\076\077\060\177\055\060\015 +\006\011\052\206\110\206\367\015\001\001\013\005\000\003\202\001 +\001\000\055\305\023\317\126\200\173\172\170\275\237\256\054\231 +\347\357\332\337\224\136\011\151\247\347\156\150\214\275\162\276 +\107\251\016\227\022\270\112\361\144\323\071\337\045\064\324\301 +\315\116\201\360\017\004\304\044\263\064\226\306\246\252\060\337 +\150\141\163\327\371\216\205\211\357\016\136\225\050\112\052\047 +\217\020\216\056\174\206\304\002\236\332\014\167\145\016\104\015 +\222\375\375\263\026\066\372\021\015\035\214\016\007\211\152\051 +\126\367\162\364\335\025\234\167\065\146\127\253\023\123\330\216 +\301\100\305\327\023\026\132\162\307\267\151\001\304\172\261\203 +\001\150\175\215\101\241\224\030\301\045\134\374\360\376\203\002 +\207\174\015\015\317\056\010\134\112\100\015\076\354\201\141\346 +\044\333\312\340\016\055\007\262\076\126\334\215\365\101\205\007 +\110\233\014\013\313\111\077\175\354\267\375\313\215\147\211\032 +\253\355\273\036\243\000\010\010\027\052\202\134\061\135\106\212 +\055\017\206\233\164\331\105\373\324\100\261\172\252\150\055\206 +\262\231\042\341\301\053\307\234\370\363\137\250\202\022\353\031 +\021\055 +END + +# Trust for Certificate "GeoTrust Primary Certification Authority - G3" +CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "GeoTrust Primary Certification Authority - G3" +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\003\236\355\270\013\347\240\074\151\123\211\073\040\322\331\062 +\072\114\052\375 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\265\350\064\066\311\020\104\130\110\160\155\056\203\324\270\005 +END +CKA_ISSUER MULTILINE_OCTAL +\060\201\230\061\013\060\011\006\003\125\004\006\023\002\125\123 +\061\026\060\024\006\003\125\004\012\023\015\107\145\157\124\162 +\165\163\164\040\111\156\143\056\061\071\060\067\006\003\125\004 +\013\023\060\050\143\051\040\062\060\060\070\040\107\145\157\124 +\162\165\163\164\040\111\156\143\056\040\055\040\106\157\162\040 +\141\165\164\150\157\162\151\172\145\144\040\165\163\145\040\157 +\156\154\171\061\066\060\064\006\003\125\004\003\023\055\107\145 +\157\124\162\165\163\164\040\120\162\151\155\141\162\171\040\103 +\145\162\164\151\146\151\143\141\164\151\157\156\040\101\165\164 +\150\157\162\151\164\171\040\055\040\107\063 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\020\025\254\156\224\031\262\171\113\101\366\047\251\303\030 +\017\037 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "thawte Primary Root CA - G2" +# +CKA_CLASS CK_OBJECT_CLASS CKO_CERTIFICATE +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "thawte Primary Root CA - G2" +CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509 +CKA_SUBJECT MULTILINE_OCTAL +\060\201\204\061\013\060\011\006\003\125\004\006\023\002\125\123 +\061\025\060\023\006\003\125\004\012\023\014\164\150\141\167\164 +\145\054\040\111\156\143\056\061\070\060\066\006\003\125\004\013 +\023\057\050\143\051\040\062\060\060\067\040\164\150\141\167\164 +\145\054\040\111\156\143\056\040\055\040\106\157\162\040\141\165 +\164\150\157\162\151\172\145\144\040\165\163\145\040\157\156\154 +\171\061\044\060\042\006\003\125\004\003\023\033\164\150\141\167 +\164\145\040\120\162\151\155\141\162\171\040\122\157\157\164\040 +\103\101\040\055\040\107\062 +END +CKA_ID UTF8 "0" +CKA_ISSUER MULTILINE_OCTAL +\060\201\204\061\013\060\011\006\003\125\004\006\023\002\125\123 +\061\025\060\023\006\003\125\004\012\023\014\164\150\141\167\164 +\145\054\040\111\156\143\056\061\070\060\066\006\003\125\004\013 +\023\057\050\143\051\040\062\060\060\067\040\164\150\141\167\164 +\145\054\040\111\156\143\056\040\055\040\106\157\162\040\141\165 +\164\150\157\162\151\172\145\144\040\165\163\145\040\157\156\154 +\171\061\044\060\042\006\003\125\004\003\023\033\164\150\141\167 +\164\145\040\120\162\151\155\141\162\171\040\122\157\157\164\040 +\103\101\040\055\040\107\062 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\020\065\374\046\134\331\204\117\311\075\046\075\127\233\256 +\327\126 +END +CKA_VALUE MULTILINE_OCTAL +\060\202\002\210\060\202\002\015\240\003\002\001\002\002\020\065 +\374\046\134\331\204\117\311\075\046\075\127\233\256\327\126\060 +\012\006\010\052\206\110\316\075\004\003\003\060\201\204\061\013 +\060\011\006\003\125\004\006\023\002\125\123\061\025\060\023\006 +\003\125\004\012\023\014\164\150\141\167\164\145\054\040\111\156 +\143\056\061\070\060\066\006\003\125\004\013\023\057\050\143\051 +\040\062\060\060\067\040\164\150\141\167\164\145\054\040\111\156 +\143\056\040\055\040\106\157\162\040\141\165\164\150\157\162\151 +\172\145\144\040\165\163\145\040\157\156\154\171\061\044\060\042 +\006\003\125\004\003\023\033\164\150\141\167\164\145\040\120\162 +\151\155\141\162\171\040\122\157\157\164\040\103\101\040\055\040 +\107\062\060\036\027\015\060\067\061\061\060\065\060\060\060\060 +\060\060\132\027\015\063\070\060\061\061\070\062\063\065\071\065 +\071\132\060\201\204\061\013\060\011\006\003\125\004\006\023\002 +\125\123\061\025\060\023\006\003\125\004\012\023\014\164\150\141 +\167\164\145\054\040\111\156\143\056\061\070\060\066\006\003\125 +\004\013\023\057\050\143\051\040\062\060\060\067\040\164\150\141 +\167\164\145\054\040\111\156\143\056\040\055\040\106\157\162\040 +\141\165\164\150\157\162\151\172\145\144\040\165\163\145\040\157 +\156\154\171\061\044\060\042\006\003\125\004\003\023\033\164\150 +\141\167\164\145\040\120\162\151\155\141\162\171\040\122\157\157 +\164\040\103\101\040\055\040\107\062\060\166\060\020\006\007\052 +\206\110\316\075\002\001\006\005\053\201\004\000\042\003\142\000 +\004\242\325\234\202\173\225\235\361\122\170\207\376\212\026\277 +\005\346\337\243\002\117\015\007\306\000\121\272\014\002\122\055 +\042\244\102\071\304\376\217\352\311\301\276\324\115\377\237\172 +\236\342\261\174\232\255\247\206\011\163\207\321\347\232\343\172 +\245\252\156\373\272\263\160\300\147\210\242\065\324\243\232\261 +\375\255\302\357\061\372\250\271\363\373\010\306\221\321\373\051 +\225\243\102\060\100\060\017\006\003\125\035\023\001\001\377\004 +\005\060\003\001\001\377\060\016\006\003\125\035\017\001\001\377 +\004\004\003\002\001\006\060\035\006\003\125\035\016\004\026\004 +\024\232\330\000\060\000\347\153\177\205\030\356\213\266\316\212 +\014\370\021\341\273\060\012\006\010\052\206\110\316\075\004\003 +\003\003\151\000\060\146\002\061\000\335\370\340\127\107\133\247 +\346\012\303\275\365\200\212\227\065\015\033\211\074\124\206\167 +\050\312\241\364\171\336\265\346\070\260\360\145\160\214\177\002 +\124\302\277\377\330\241\076\331\317\002\061\000\304\215\224\374 +\334\123\322\334\235\170\026\037\025\063\043\123\122\343\132\061 +\135\235\312\256\275\023\051\104\015\047\133\250\347\150\234\022 +\367\130\077\056\162\002\127\243\217\241\024\056 +END + +# Trust for Certificate "thawte Primary Root CA - G2" +CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "thawte Primary Root CA - G2" +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\252\333\274\042\043\217\304\001\241\047\273\070\335\364\035\333 +\010\236\360\022 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\164\235\352\140\044\304\375\042\123\076\314\072\162\331\051\117 +END +CKA_ISSUER MULTILINE_OCTAL +\060\201\204\061\013\060\011\006\003\125\004\006\023\002\125\123 +\061\025\060\023\006\003\125\004\012\023\014\164\150\141\167\164 +\145\054\040\111\156\143\056\061\070\060\066\006\003\125\004\013 +\023\057\050\143\051\040\062\060\060\067\040\164\150\141\167\164 +\145\054\040\111\156\143\056\040\055\040\106\157\162\040\141\165 +\164\150\157\162\151\172\145\144\040\165\163\145\040\157\156\154 +\171\061\044\060\042\006\003\125\004\003\023\033\164\150\141\167 +\164\145\040\120\162\151\155\141\162\171\040\122\157\157\164\040 +\103\101\040\055\040\107\062 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\020\065\374\046\134\331\204\117\311\075\046\075\127\233\256 +\327\126 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_TRUST_UNKNOWN +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "thawte Primary Root CA - G3" +# +CKA_CLASS CK_OBJECT_CLASS CKO_CERTIFICATE +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "thawte Primary Root CA - G3" +CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509 +CKA_SUBJECT MULTILINE_OCTAL +\060\201\256\061\013\060\011\006\003\125\004\006\023\002\125\123 +\061\025\060\023\006\003\125\004\012\023\014\164\150\141\167\164 +\145\054\040\111\156\143\056\061\050\060\046\006\003\125\004\013 +\023\037\103\145\162\164\151\146\151\143\141\164\151\157\156\040 +\123\145\162\166\151\143\145\163\040\104\151\166\151\163\151\157 +\156\061\070\060\066\006\003\125\004\013\023\057\050\143\051\040 +\062\060\060\070\040\164\150\141\167\164\145\054\040\111\156\143 +\056\040\055\040\106\157\162\040\141\165\164\150\157\162\151\172 +\145\144\040\165\163\145\040\157\156\154\171\061\044\060\042\006 +\003\125\004\003\023\033\164\150\141\167\164\145\040\120\162\151 +\155\141\162\171\040\122\157\157\164\040\103\101\040\055\040\107 +\063 +END +CKA_ID UTF8 "0" +CKA_ISSUER MULTILINE_OCTAL +\060\201\256\061\013\060\011\006\003\125\004\006\023\002\125\123 +\061\025\060\023\006\003\125\004\012\023\014\164\150\141\167\164 +\145\054\040\111\156\143\056\061\050\060\046\006\003\125\004\013 +\023\037\103\145\162\164\151\146\151\143\141\164\151\157\156\040 +\123\145\162\166\151\143\145\163\040\104\151\166\151\163\151\157 +\156\061\070\060\066\006\003\125\004\013\023\057\050\143\051\040 +\062\060\060\070\040\164\150\141\167\164\145\054\040\111\156\143 +\056\040\055\040\106\157\162\040\141\165\164\150\157\162\151\172 +\145\144\040\165\163\145\040\157\156\154\171\061\044\060\042\006 +\003\125\004\003\023\033\164\150\141\167\164\145\040\120\162\151 +\155\141\162\171\040\122\157\157\164\040\103\101\040\055\040\107 +\063 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\020\140\001\227\267\106\247\352\264\264\232\326\113\057\367 +\220\373 +END +CKA_VALUE MULTILINE_OCTAL +\060\202\004\052\060\202\003\022\240\003\002\001\002\002\020\140 +\001\227\267\106\247\352\264\264\232\326\113\057\367\220\373\060 +\015\006\011\052\206\110\206\367\015\001\001\013\005\000\060\201 +\256\061\013\060\011\006\003\125\004\006\023\002\125\123\061\025 +\060\023\006\003\125\004\012\023\014\164\150\141\167\164\145\054 +\040\111\156\143\056\061\050\060\046\006\003\125\004\013\023\037 +\103\145\162\164\151\146\151\143\141\164\151\157\156\040\123\145 +\162\166\151\143\145\163\040\104\151\166\151\163\151\157\156\061 +\070\060\066\006\003\125\004\013\023\057\050\143\051\040\062\060 +\060\070\040\164\150\141\167\164\145\054\040\111\156\143\056\040 +\055\040\106\157\162\040\141\165\164\150\157\162\151\172\145\144 +\040\165\163\145\040\157\156\154\171\061\044\060\042\006\003\125 +\004\003\023\033\164\150\141\167\164\145\040\120\162\151\155\141 +\162\171\040\122\157\157\164\040\103\101\040\055\040\107\063\060 +\036\027\015\060\070\060\064\060\062\060\060\060\060\060\060\132 +\027\015\063\067\061\062\060\061\062\063\065\071\065\071\132\060 +\201\256\061\013\060\011\006\003\125\004\006\023\002\125\123\061 +\025\060\023\006\003\125\004\012\023\014\164\150\141\167\164\145 +\054\040\111\156\143\056\061\050\060\046\006\003\125\004\013\023 +\037\103\145\162\164\151\146\151\143\141\164\151\157\156\040\123 +\145\162\166\151\143\145\163\040\104\151\166\151\163\151\157\156 +\061\070\060\066\006\003\125\004\013\023\057\050\143\051\040\062 +\060\060\070\040\164\150\141\167\164\145\054\040\111\156\143\056 +\040\055\040\106\157\162\040\141\165\164\150\157\162\151\172\145 +\144\040\165\163\145\040\157\156\154\171\061\044\060\042\006\003 +\125\004\003\023\033\164\150\141\167\164\145\040\120\162\151\155 +\141\162\171\040\122\157\157\164\040\103\101\040\055\040\107\063 +\060\202\001\042\060\015\006\011\052\206\110\206\367\015\001\001 +\001\005\000\003\202\001\017\000\060\202\001\012\002\202\001\001 +\000\262\277\047\054\373\333\330\133\335\170\173\033\236\167\146 +\201\313\076\274\174\256\363\246\047\232\064\243\150\061\161\070 +\063\142\344\363\161\146\171\261\251\145\243\245\213\325\217\140 +\055\077\102\314\252\153\062\300\043\313\054\101\335\344\337\374 +\141\234\342\163\262\042\225\021\103\030\137\304\266\037\127\154 +\012\005\130\042\310\066\114\072\174\245\321\317\206\257\210\247 +\104\002\023\164\161\163\012\102\131\002\370\033\024\153\102\337 +\157\137\272\153\202\242\235\133\347\112\275\036\001\162\333\113 +\164\350\073\177\177\175\037\004\264\046\233\340\264\132\254\107 +\075\125\270\327\260\046\122\050\001\061\100\146\330\331\044\275 +\366\052\330\354\041\111\134\233\366\172\351\177\125\065\176\226 +\153\215\223\223\047\313\222\273\352\254\100\300\237\302\370\200 +\317\135\364\132\334\316\164\206\246\076\154\013\123\312\275\222 +\316\031\006\162\346\014\134\070\151\307\004\326\274\154\316\133 +\366\367\150\234\334\045\025\110\210\241\351\251\370\230\234\340 +\363\325\061\050\141\021\154\147\226\215\071\231\313\302\105\044 +\071\002\003\001\000\001\243\102\060\100\060\017\006\003\125\035 +\023\001\001\377\004\005\060\003\001\001\377\060\016\006\003\125 +\035\017\001\001\377\004\004\003\002\001\006\060\035\006\003\125 +\035\016\004\026\004\024\255\154\252\224\140\234\355\344\377\372 +\076\012\164\053\143\003\367\266\131\277\060\015\006\011\052\206 +\110\206\367\015\001\001\013\005\000\003\202\001\001\000\032\100 +\330\225\145\254\011\222\211\306\071\364\020\345\251\016\146\123 +\135\170\336\372\044\221\273\347\104\121\337\306\026\064\012\357 +\152\104\121\352\053\007\212\003\172\303\353\077\012\054\122\026 +\240\053\103\271\045\220\077\160\251\063\045\155\105\032\050\073 +\047\317\252\303\051\102\033\337\073\114\300\063\064\133\101\210 +\277\153\053\145\257\050\357\262\365\303\252\146\316\173\126\356 +\267\310\313\147\301\311\234\032\030\270\304\303\111\003\361\140 +\016\120\315\106\305\363\167\171\367\266\025\340\070\333\307\057 +\050\240\014\077\167\046\164\331\045\022\332\061\332\032\036\334 +\051\101\221\042\074\151\247\273\002\362\266\134\047\003\211\364 +\006\352\233\344\162\202\343\241\011\301\351\000\031\323\076\324 +\160\153\272\161\246\252\130\256\364\273\351\154\266\357\207\314 +\233\273\377\071\346\126\141\323\012\247\304\134\114\140\173\005 +\167\046\172\277\330\007\122\054\142\367\160\143\331\071\274\157 +\034\302\171\334\166\051\257\316\305\054\144\004\136\210\066\156 +\061\324\100\032\142\064\066\077\065\001\256\254\143\240 +END + +# Trust for Certificate "thawte Primary Root CA - G3" +CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "thawte Primary Root CA - G3" +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\361\213\123\215\033\351\003\266\246\360\126\103\133\027\025\211 +\312\363\153\362 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\373\033\135\103\212\224\315\104\306\166\362\103\113\107\347\061 +END +CKA_ISSUER MULTILINE_OCTAL +\060\201\256\061\013\060\011\006\003\125\004\006\023\002\125\123 +\061\025\060\023\006\003\125\004\012\023\014\164\150\141\167\164 +\145\054\040\111\156\143\056\061\050\060\046\006\003\125\004\013 +\023\037\103\145\162\164\151\146\151\143\141\164\151\157\156\040 +\123\145\162\166\151\143\145\163\040\104\151\166\151\163\151\157 +\156\061\070\060\066\006\003\125\004\013\023\057\050\143\051\040 +\062\060\060\070\040\164\150\141\167\164\145\054\040\111\156\143 +\056\040\055\040\106\157\162\040\141\165\164\150\157\162\151\172 +\145\144\040\165\163\145\040\157\156\154\171\061\044\060\042\006 +\003\125\004\003\023\033\164\150\141\167\164\145\040\120\162\151 +\155\141\162\171\040\122\157\157\164\040\103\101\040\055\040\107 +\063 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\020\140\001\227\267\106\247\352\264\264\232\326\113\057\367 +\220\373 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_TRUST_UNKNOWN +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "GeoTrust Primary Certification Authority - G2" +# +CKA_CLASS CK_OBJECT_CLASS CKO_CERTIFICATE +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "GeoTrust Primary Certification Authority - G2" +CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509 +CKA_SUBJECT MULTILINE_OCTAL +\060\201\230\061\013\060\011\006\003\125\004\006\023\002\125\123 +\061\026\060\024\006\003\125\004\012\023\015\107\145\157\124\162 +\165\163\164\040\111\156\143\056\061\071\060\067\006\003\125\004 +\013\023\060\050\143\051\040\062\060\060\067\040\107\145\157\124 +\162\165\163\164\040\111\156\143\056\040\055\040\106\157\162\040 +\141\165\164\150\157\162\151\172\145\144\040\165\163\145\040\157 +\156\154\171\061\066\060\064\006\003\125\004\003\023\055\107\145 +\157\124\162\165\163\164\040\120\162\151\155\141\162\171\040\103 +\145\162\164\151\146\151\143\141\164\151\157\156\040\101\165\164 +\150\157\162\151\164\171\040\055\040\107\062 +END +CKA_ID UTF8 "0" +CKA_ISSUER MULTILINE_OCTAL +\060\201\230\061\013\060\011\006\003\125\004\006\023\002\125\123 +\061\026\060\024\006\003\125\004\012\023\015\107\145\157\124\162 +\165\163\164\040\111\156\143\056\061\071\060\067\006\003\125\004 +\013\023\060\050\143\051\040\062\060\060\067\040\107\145\157\124 +\162\165\163\164\040\111\156\143\056\040\055\040\106\157\162\040 +\141\165\164\150\157\162\151\172\145\144\040\165\163\145\040\157 +\156\154\171\061\066\060\064\006\003\125\004\003\023\055\107\145 +\157\124\162\165\163\164\040\120\162\151\155\141\162\171\040\103 +\145\162\164\151\146\151\143\141\164\151\157\156\040\101\165\164 +\150\157\162\151\164\171\040\055\040\107\062 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\020\074\262\364\110\012\000\342\376\353\044\073\136\140\076 +\303\153 +END +CKA_VALUE MULTILINE_OCTAL +\060\202\002\256\060\202\002\065\240\003\002\001\002\002\020\074 +\262\364\110\012\000\342\376\353\044\073\136\140\076\303\153\060 +\012\006\010\052\206\110\316\075\004\003\003\060\201\230\061\013 +\060\011\006\003\125\004\006\023\002\125\123\061\026\060\024\006 +\003\125\004\012\023\015\107\145\157\124\162\165\163\164\040\111 +\156\143\056\061\071\060\067\006\003\125\004\013\023\060\050\143 +\051\040\062\060\060\067\040\107\145\157\124\162\165\163\164\040 +\111\156\143\056\040\055\040\106\157\162\040\141\165\164\150\157 +\162\151\172\145\144\040\165\163\145\040\157\156\154\171\061\066 +\060\064\006\003\125\004\003\023\055\107\145\157\124\162\165\163 +\164\040\120\162\151\155\141\162\171\040\103\145\162\164\151\146 +\151\143\141\164\151\157\156\040\101\165\164\150\157\162\151\164 +\171\040\055\040\107\062\060\036\027\015\060\067\061\061\060\065 +\060\060\060\060\060\060\132\027\015\063\070\060\061\061\070\062 +\063\065\071\065\071\132\060\201\230\061\013\060\011\006\003\125 +\004\006\023\002\125\123\061\026\060\024\006\003\125\004\012\023 +\015\107\145\157\124\162\165\163\164\040\111\156\143\056\061\071 +\060\067\006\003\125\004\013\023\060\050\143\051\040\062\060\060 +\067\040\107\145\157\124\162\165\163\164\040\111\156\143\056\040 +\055\040\106\157\162\040\141\165\164\150\157\162\151\172\145\144 +\040\165\163\145\040\157\156\154\171\061\066\060\064\006\003\125 +\004\003\023\055\107\145\157\124\162\165\163\164\040\120\162\151 +\155\141\162\171\040\103\145\162\164\151\146\151\143\141\164\151 +\157\156\040\101\165\164\150\157\162\151\164\171\040\055\040\107 +\062\060\166\060\020\006\007\052\206\110\316\075\002\001\006\005 +\053\201\004\000\042\003\142\000\004\025\261\350\375\003\025\103 +\345\254\353\207\067\021\142\357\322\203\066\122\175\105\127\013 +\112\215\173\124\073\072\156\137\025\002\300\120\246\317\045\057 +\175\312\110\270\307\120\143\034\052\041\010\174\232\066\330\013 +\376\321\046\305\130\061\060\050\045\363\135\135\243\270\266\245 +\264\222\355\154\054\237\353\335\103\211\242\074\113\110\221\035 +\120\354\046\337\326\140\056\275\041\243\102\060\100\060\017\006 +\003\125\035\023\001\001\377\004\005\060\003\001\001\377\060\016 +\006\003\125\035\017\001\001\377\004\004\003\002\001\006\060\035 +\006\003\125\035\016\004\026\004\024\025\137\065\127\121\125\373 +\045\262\255\003\151\374\001\243\372\276\021\125\325\060\012\006 +\010\052\206\110\316\075\004\003\003\003\147\000\060\144\002\060 +\144\226\131\246\350\011\336\213\272\372\132\210\210\360\037\221 +\323\106\250\362\112\114\002\143\373\154\137\070\333\056\101\223 +\251\016\346\235\334\061\034\262\240\247\030\034\171\341\307\066 +\002\060\072\126\257\232\164\154\366\373\203\340\063\323\010\137 +\241\234\302\133\237\106\326\266\313\221\006\143\242\006\347\063 +\254\076\250\201\022\320\313\272\320\222\013\266\236\226\252\004 +\017\212 +END + +# Trust for Certificate "GeoTrust Primary Certification Authority - G2" +CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "GeoTrust Primary Certification Authority - G2" +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\215\027\204\325\067\363\003\175\354\160\376\127\213\121\232\231 +\346\020\327\260 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\001\136\330\153\275\157\075\216\241\061\370\022\340\230\163\152 +END +CKA_ISSUER MULTILINE_OCTAL +\060\201\230\061\013\060\011\006\003\125\004\006\023\002\125\123 +\061\026\060\024\006\003\125\004\012\023\015\107\145\157\124\162 +\165\163\164\040\111\156\143\056\061\071\060\067\006\003\125\004 +\013\023\060\050\143\051\040\062\060\060\067\040\107\145\157\124 +\162\165\163\164\040\111\156\143\056\040\055\040\106\157\162\040 +\141\165\164\150\157\162\151\172\145\144\040\165\163\145\040\157 +\156\154\171\061\066\060\064\006\003\125\004\003\023\055\107\145 +\157\124\162\165\163\164\040\120\162\151\155\141\162\171\040\103 +\145\162\164\151\146\151\143\141\164\151\157\156\040\101\165\164 +\150\157\162\151\164\171\040\055\040\107\062 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\020\074\262\364\110\012\000\342\376\353\044\073\136\140\076 +\303\153 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "VeriSign Universal Root Certification Authority" +# +CKA_CLASS CK_OBJECT_CLASS CKO_CERTIFICATE +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "VeriSign Universal Root Certification Authority" +CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509 +CKA_SUBJECT MULTILINE_OCTAL +\060\201\275\061\013\060\011\006\003\125\004\006\023\002\125\123 +\061\027\060\025\006\003\125\004\012\023\016\126\145\162\151\123 +\151\147\156\054\040\111\156\143\056\061\037\060\035\006\003\125 +\004\013\023\026\126\145\162\151\123\151\147\156\040\124\162\165 +\163\164\040\116\145\164\167\157\162\153\061\072\060\070\006\003 +\125\004\013\023\061\050\143\051\040\062\060\060\070\040\126\145 +\162\151\123\151\147\156\054\040\111\156\143\056\040\055\040\106 +\157\162\040\141\165\164\150\157\162\151\172\145\144\040\165\163 +\145\040\157\156\154\171\061\070\060\066\006\003\125\004\003\023 +\057\126\145\162\151\123\151\147\156\040\125\156\151\166\145\162 +\163\141\154\040\122\157\157\164\040\103\145\162\164\151\146\151 +\143\141\164\151\157\156\040\101\165\164\150\157\162\151\164\171 +END +CKA_ID UTF8 "0" +CKA_ISSUER MULTILINE_OCTAL +\060\201\275\061\013\060\011\006\003\125\004\006\023\002\125\123 +\061\027\060\025\006\003\125\004\012\023\016\126\145\162\151\123 +\151\147\156\054\040\111\156\143\056\061\037\060\035\006\003\125 +\004\013\023\026\126\145\162\151\123\151\147\156\040\124\162\165 +\163\164\040\116\145\164\167\157\162\153\061\072\060\070\006\003 +\125\004\013\023\061\050\143\051\040\062\060\060\070\040\126\145 +\162\151\123\151\147\156\054\040\111\156\143\056\040\055\040\106 +\157\162\040\141\165\164\150\157\162\151\172\145\144\040\165\163 +\145\040\157\156\154\171\061\070\060\066\006\003\125\004\003\023 +\057\126\145\162\151\123\151\147\156\040\125\156\151\166\145\162 +\163\141\154\040\122\157\157\164\040\103\145\162\164\151\146\151 +\143\141\164\151\157\156\040\101\165\164\150\157\162\151\164\171 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\020\100\032\304\144\041\263\023\041\003\016\273\344\022\032 +\305\035 +END +CKA_VALUE MULTILINE_OCTAL +\060\202\004\271\060\202\003\241\240\003\002\001\002\002\020\100 +\032\304\144\041\263\023\041\003\016\273\344\022\032\305\035\060 +\015\006\011\052\206\110\206\367\015\001\001\013\005\000\060\201 +\275\061\013\060\011\006\003\125\004\006\023\002\125\123\061\027 +\060\025\006\003\125\004\012\023\016\126\145\162\151\123\151\147 +\156\054\040\111\156\143\056\061\037\060\035\006\003\125\004\013 +\023\026\126\145\162\151\123\151\147\156\040\124\162\165\163\164 +\040\116\145\164\167\157\162\153\061\072\060\070\006\003\125\004 +\013\023\061\050\143\051\040\062\060\060\070\040\126\145\162\151 +\123\151\147\156\054\040\111\156\143\056\040\055\040\106\157\162 +\040\141\165\164\150\157\162\151\172\145\144\040\165\163\145\040 +\157\156\154\171\061\070\060\066\006\003\125\004\003\023\057\126 +\145\162\151\123\151\147\156\040\125\156\151\166\145\162\163\141 +\154\040\122\157\157\164\040\103\145\162\164\151\146\151\143\141 +\164\151\157\156\040\101\165\164\150\157\162\151\164\171\060\036 +\027\015\060\070\060\064\060\062\060\060\060\060\060\060\132\027 +\015\063\067\061\062\060\061\062\063\065\071\065\071\132\060\201 +\275\061\013\060\011\006\003\125\004\006\023\002\125\123\061\027 +\060\025\006\003\125\004\012\023\016\126\145\162\151\123\151\147 +\156\054\040\111\156\143\056\061\037\060\035\006\003\125\004\013 +\023\026\126\145\162\151\123\151\147\156\040\124\162\165\163\164 +\040\116\145\164\167\157\162\153\061\072\060\070\006\003\125\004 +\013\023\061\050\143\051\040\062\060\060\070\040\126\145\162\151 +\123\151\147\156\054\040\111\156\143\056\040\055\040\106\157\162 +\040\141\165\164\150\157\162\151\172\145\144\040\165\163\145\040 +\157\156\154\171\061\070\060\066\006\003\125\004\003\023\057\126 +\145\162\151\123\151\147\156\040\125\156\151\166\145\162\163\141 +\154\040\122\157\157\164\040\103\145\162\164\151\146\151\143\141 +\164\151\157\156\040\101\165\164\150\157\162\151\164\171\060\202 +\001\042\060\015\006\011\052\206\110\206\367\015\001\001\001\005 +\000\003\202\001\017\000\060\202\001\012\002\202\001\001\000\307 +\141\067\136\261\001\064\333\142\327\025\233\377\130\132\214\043 +\043\326\140\216\221\327\220\230\203\172\346\130\031\070\214\305 +\366\345\144\205\264\242\161\373\355\275\271\332\315\115\000\264 +\310\055\163\245\307\151\161\225\037\071\074\262\104\007\234\350 +\016\372\115\112\304\041\337\051\141\217\062\042\141\202\305\207 +\037\156\214\174\137\026\040\121\104\321\160\117\127\352\343\034 +\343\314\171\356\130\330\016\302\263\105\223\300\054\347\232\027 +\053\173\000\067\172\101\063\170\341\063\342\363\020\032\177\207 +\054\276\366\365\367\102\342\345\277\207\142\211\137\000\113\337 +\305\335\344\165\104\062\101\072\036\161\156\151\313\013\165\106 +\010\321\312\322\053\225\320\317\373\271\100\153\144\214\127\115 +\374\023\021\171\204\355\136\124\366\064\237\010\001\363\020\045 +\006\027\112\332\361\035\172\146\153\230\140\146\244\331\357\322 +\056\202\361\360\357\011\352\104\311\025\152\342\003\156\063\323 +\254\237\125\000\307\366\010\152\224\271\137\334\340\063\361\204 +\140\371\133\047\021\264\374\026\362\273\126\152\200\045\215\002 +\003\001\000\001\243\201\262\060\201\257\060\017\006\003\125\035 +\023\001\001\377\004\005\060\003\001\001\377\060\016\006\003\125 +\035\017\001\001\377\004\004\003\002\001\006\060\155\006\010\053 +\006\001\005\005\007\001\014\004\141\060\137\241\135\240\133\060 +\131\060\127\060\125\026\011\151\155\141\147\145\057\147\151\146 +\060\041\060\037\060\007\006\005\053\016\003\002\032\004\024\217 +\345\323\032\206\254\215\216\153\303\317\200\152\324\110\030\054 +\173\031\056\060\045\026\043\150\164\164\160\072\057\057\154\157 +\147\157\056\166\145\162\151\163\151\147\156\056\143\157\155\057 +\166\163\154\157\147\157\056\147\151\146\060\035\006\003\125\035 +\016\004\026\004\024\266\167\372\151\110\107\237\123\022\325\302 +\352\007\062\166\007\321\227\007\031\060\015\006\011\052\206\110 +\206\367\015\001\001\013\005\000\003\202\001\001\000\112\370\370 +\260\003\346\054\147\173\344\224\167\143\314\156\114\371\175\016 +\015\334\310\271\065\271\160\117\143\372\044\372\154\203\214\107 +\235\073\143\363\232\371\166\062\225\221\261\167\274\254\232\276 +\261\344\061\041\306\201\225\126\132\016\261\302\324\261\246\131 +\254\361\143\313\270\114\035\131\220\112\357\220\026\050\037\132 +\256\020\373\201\120\070\014\154\314\361\075\303\365\143\343\263 +\343\041\311\044\071\351\375\025\146\106\364\033\021\320\115\163 +\243\175\106\371\075\355\250\137\142\324\361\077\370\340\164\127 +\053\030\235\201\264\304\050\332\224\227\245\160\353\254\035\276 +\007\021\360\325\333\335\345\214\360\325\062\260\203\346\127\342 +\217\277\276\241\252\277\075\035\265\324\070\352\327\260\134\072 +\117\152\077\217\300\146\154\143\252\351\331\244\026\364\201\321 +\225\024\016\175\315\225\064\331\322\217\160\163\201\173\234\176 +\275\230\141\330\105\207\230\220\305\353\206\060\306\065\277\360 +\377\303\125\210\203\113\357\005\222\006\161\362\270\230\223\267 +\354\315\202\141\361\070\346\117\227\230\052\132\215 +END + +# Trust for Certificate "VeriSign Universal Root Certification Authority" +CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "VeriSign Universal Root Certification Authority" +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\066\171\312\065\146\207\162\060\115\060\245\373\207\073\017\247 +\173\267\015\124 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\216\255\265\001\252\115\201\344\214\035\321\341\024\000\225\031 +END +CKA_ISSUER MULTILINE_OCTAL +\060\201\275\061\013\060\011\006\003\125\004\006\023\002\125\123 +\061\027\060\025\006\003\125\004\012\023\016\126\145\162\151\123 +\151\147\156\054\040\111\156\143\056\061\037\060\035\006\003\125 +\004\013\023\026\126\145\162\151\123\151\147\156\040\124\162\165 +\163\164\040\116\145\164\167\157\162\153\061\072\060\070\006\003 +\125\004\013\023\061\050\143\051\040\062\060\060\070\040\126\145 +\162\151\123\151\147\156\054\040\111\156\143\056\040\055\040\106 +\157\162\040\141\165\164\150\157\162\151\172\145\144\040\165\163 +\145\040\157\156\154\171\061\070\060\066\006\003\125\004\003\023 +\057\126\145\162\151\123\151\147\156\040\125\156\151\166\145\162 +\163\141\154\040\122\157\157\164\040\103\145\162\164\151\146\151 +\143\141\164\151\157\156\040\101\165\164\150\157\162\151\164\171 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\020\100\032\304\144\041\263\023\041\003\016\273\344\022\032 +\305\035 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "VeriSign Class 3 Public Primary Certification Authority - G4" +# +CKA_CLASS CK_OBJECT_CLASS CKO_CERTIFICATE +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "VeriSign Class 3 Public Primary Certification Authority - G4" +CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509 +CKA_SUBJECT MULTILINE_OCTAL +\060\201\312\061\013\060\011\006\003\125\004\006\023\002\125\123 +\061\027\060\025\006\003\125\004\012\023\016\126\145\162\151\123 +\151\147\156\054\040\111\156\143\056\061\037\060\035\006\003\125 +\004\013\023\026\126\145\162\151\123\151\147\156\040\124\162\165 +\163\164\040\116\145\164\167\157\162\153\061\072\060\070\006\003 +\125\004\013\023\061\050\143\051\040\062\060\060\067\040\126\145 +\162\151\123\151\147\156\054\040\111\156\143\056\040\055\040\106 +\157\162\040\141\165\164\150\157\162\151\172\145\144\040\165\163 +\145\040\157\156\154\171\061\105\060\103\006\003\125\004\003\023 +\074\126\145\162\151\123\151\147\156\040\103\154\141\163\163\040 +\063\040\120\165\142\154\151\143\040\120\162\151\155\141\162\171 +\040\103\145\162\164\151\146\151\143\141\164\151\157\156\040\101 +\165\164\150\157\162\151\164\171\040\055\040\107\064 +END +CKA_ID UTF8 "0" +CKA_ISSUER MULTILINE_OCTAL +\060\201\312\061\013\060\011\006\003\125\004\006\023\002\125\123 +\061\027\060\025\006\003\125\004\012\023\016\126\145\162\151\123 +\151\147\156\054\040\111\156\143\056\061\037\060\035\006\003\125 +\004\013\023\026\126\145\162\151\123\151\147\156\040\124\162\165 +\163\164\040\116\145\164\167\157\162\153\061\072\060\070\006\003 +\125\004\013\023\061\050\143\051\040\062\060\060\067\040\126\145 +\162\151\123\151\147\156\054\040\111\156\143\056\040\055\040\106 +\157\162\040\141\165\164\150\157\162\151\172\145\144\040\165\163 +\145\040\157\156\154\171\061\105\060\103\006\003\125\004\003\023 +\074\126\145\162\151\123\151\147\156\040\103\154\141\163\163\040 +\063\040\120\165\142\154\151\143\040\120\162\151\155\141\162\171 +\040\103\145\162\164\151\146\151\143\141\164\151\157\156\040\101 +\165\164\150\157\162\151\164\171\040\055\040\107\064 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\020\057\200\376\043\214\016\042\017\110\147\022\050\221\207 +\254\263 +END +CKA_VALUE MULTILINE_OCTAL +\060\202\003\204\060\202\003\012\240\003\002\001\002\002\020\057 +\200\376\043\214\016\042\017\110\147\022\050\221\207\254\263\060 +\012\006\010\052\206\110\316\075\004\003\003\060\201\312\061\013 +\060\011\006\003\125\004\006\023\002\125\123\061\027\060\025\006 +\003\125\004\012\023\016\126\145\162\151\123\151\147\156\054\040 +\111\156\143\056\061\037\060\035\006\003\125\004\013\023\026\126 +\145\162\151\123\151\147\156\040\124\162\165\163\164\040\116\145 +\164\167\157\162\153\061\072\060\070\006\003\125\004\013\023\061 +\050\143\051\040\062\060\060\067\040\126\145\162\151\123\151\147 +\156\054\040\111\156\143\056\040\055\040\106\157\162\040\141\165 +\164\150\157\162\151\172\145\144\040\165\163\145\040\157\156\154 +\171\061\105\060\103\006\003\125\004\003\023\074\126\145\162\151 +\123\151\147\156\040\103\154\141\163\163\040\063\040\120\165\142 +\154\151\143\040\120\162\151\155\141\162\171\040\103\145\162\164 +\151\146\151\143\141\164\151\157\156\040\101\165\164\150\157\162 +\151\164\171\040\055\040\107\064\060\036\027\015\060\067\061\061 +\060\065\060\060\060\060\060\060\132\027\015\063\070\060\061\061 +\070\062\063\065\071\065\071\132\060\201\312\061\013\060\011\006 +\003\125\004\006\023\002\125\123\061\027\060\025\006\003\125\004 +\012\023\016\126\145\162\151\123\151\147\156\054\040\111\156\143 +\056\061\037\060\035\006\003\125\004\013\023\026\126\145\162\151 +\123\151\147\156\040\124\162\165\163\164\040\116\145\164\167\157 +\162\153\061\072\060\070\006\003\125\004\013\023\061\050\143\051 +\040\062\060\060\067\040\126\145\162\151\123\151\147\156\054\040 +\111\156\143\056\040\055\040\106\157\162\040\141\165\164\150\157 +\162\151\172\145\144\040\165\163\145\040\157\156\154\171\061\105 +\060\103\006\003\125\004\003\023\074\126\145\162\151\123\151\147 +\156\040\103\154\141\163\163\040\063\040\120\165\142\154\151\143 +\040\120\162\151\155\141\162\171\040\103\145\162\164\151\146\151 +\143\141\164\151\157\156\040\101\165\164\150\157\162\151\164\171 +\040\055\040\107\064\060\166\060\020\006\007\052\206\110\316\075 +\002\001\006\005\053\201\004\000\042\003\142\000\004\247\126\172 +\174\122\332\144\233\016\055\134\330\136\254\222\075\376\001\346 +\031\112\075\024\003\113\372\140\047\040\331\203\211\151\372\124 +\306\232\030\136\125\052\144\336\006\366\215\112\073\255\020\074 +\145\075\220\210\004\211\340\060\141\263\256\135\001\247\173\336 +\174\262\276\312\145\141\000\206\256\332\217\173\320\211\255\115 +\035\131\232\101\261\274\107\200\334\236\142\303\371\243\201\262 +\060\201\257\060\017\006\003\125\035\023\001\001\377\004\005\060 +\003\001\001\377\060\016\006\003\125\035\017\001\001\377\004\004 +\003\002\001\006\060\155\006\010\053\006\001\005\005\007\001\014 +\004\141\060\137\241\135\240\133\060\131\060\127\060\125\026\011 +\151\155\141\147\145\057\147\151\146\060\041\060\037\060\007\006 +\005\053\016\003\002\032\004\024\217\345\323\032\206\254\215\216 +\153\303\317\200\152\324\110\030\054\173\031\056\060\045\026\043 +\150\164\164\160\072\057\057\154\157\147\157\056\166\145\162\151 +\163\151\147\156\056\143\157\155\057\166\163\154\157\147\157\056 +\147\151\146\060\035\006\003\125\035\016\004\026\004\024\263\026 +\221\375\356\246\156\344\265\056\111\217\207\170\201\200\354\345 +\261\265\060\012\006\010\052\206\110\316\075\004\003\003\003\150 +\000\060\145\002\060\146\041\014\030\046\140\132\070\173\126\102 +\340\247\374\066\204\121\221\040\054\166\115\103\075\304\035\204 +\043\320\254\326\174\065\006\316\315\151\275\220\015\333\154\110 +\102\035\016\252\102\002\061\000\234\075\110\071\043\071\130\032 +\025\022\131\152\236\357\325\131\262\035\122\054\231\161\315\307 +\051\337\033\052\141\173\161\321\336\363\300\345\015\072\112\252 +\055\247\330\206\052\335\056\020 +END + +# Trust for Certificate "VeriSign Class 3 Public Primary Certification Authority - G4" +CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "VeriSign Class 3 Public Primary Certification Authority - G4" +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\042\325\330\337\217\002\061\321\215\367\235\267\317\212\055\144 +\311\077\154\072 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\072\122\341\347\375\157\072\343\157\363\157\231\033\371\042\101 +END +CKA_ISSUER MULTILINE_OCTAL +\060\201\312\061\013\060\011\006\003\125\004\006\023\002\125\123 +\061\027\060\025\006\003\125\004\012\023\016\126\145\162\151\123 +\151\147\156\054\040\111\156\143\056\061\037\060\035\006\003\125 +\004\013\023\026\126\145\162\151\123\151\147\156\040\124\162\165 +\163\164\040\116\145\164\167\157\162\153\061\072\060\070\006\003 +\125\004\013\023\061\050\143\051\040\062\060\060\067\040\126\145 +\162\151\123\151\147\156\054\040\111\156\143\056\040\055\040\106 +\157\162\040\141\165\164\150\157\162\151\172\145\144\040\165\163 +\145\040\157\156\154\171\061\105\060\103\006\003\125\004\003\023 +\074\126\145\162\151\123\151\147\156\040\103\154\141\163\163\040 +\063\040\120\165\142\154\151\143\040\120\162\151\155\141\162\171 +\040\103\145\162\164\151\146\151\143\141\164\151\157\156\040\101 +\165\164\150\157\162\151\164\171\040\055\040\107\064 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\020\057\200\376\043\214\016\042\017\110\147\022\050\221\207 +\254\263 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "NetLock Arany (Class Gold) Főtanúsítvány" +# +CKA_CLASS CK_OBJECT_CLASS CKO_CERTIFICATE +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "NetLock Arany (Class Gold) Főtanúsítvány" +CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509 +CKA_SUBJECT MULTILINE_OCTAL +\060\201\247\061\013\060\011\006\003\125\004\006\023\002\110\125 +\061\021\060\017\006\003\125\004\007\014\010\102\165\144\141\160 +\145\163\164\061\025\060\023\006\003\125\004\012\014\014\116\145 +\164\114\157\143\153\040\113\146\164\056\061\067\060\065\006\003 +\125\004\013\014\056\124\141\156\303\272\163\303\255\164\166\303 +\241\156\171\153\151\141\144\303\263\153\040\050\103\145\162\164 +\151\146\151\143\141\164\151\157\156\040\123\145\162\166\151\143 +\145\163\051\061\065\060\063\006\003\125\004\003\014\054\116\145 +\164\114\157\143\153\040\101\162\141\156\171\040\050\103\154\141 +\163\163\040\107\157\154\144\051\040\106\305\221\164\141\156\303 +\272\163\303\255\164\166\303\241\156\171 +END +CKA_ID UTF8 "0" +CKA_ISSUER MULTILINE_OCTAL +\060\201\247\061\013\060\011\006\003\125\004\006\023\002\110\125 +\061\021\060\017\006\003\125\004\007\014\010\102\165\144\141\160 +\145\163\164\061\025\060\023\006\003\125\004\012\014\014\116\145 +\164\114\157\143\153\040\113\146\164\056\061\067\060\065\006\003 +\125\004\013\014\056\124\141\156\303\272\163\303\255\164\166\303 +\241\156\171\153\151\141\144\303\263\153\040\050\103\145\162\164 +\151\146\151\143\141\164\151\157\156\040\123\145\162\166\151\143 +\145\163\051\061\065\060\063\006\003\125\004\003\014\054\116\145 +\164\114\157\143\153\040\101\162\141\156\171\040\050\103\154\141 +\163\163\040\107\157\154\144\051\040\106\305\221\164\141\156\303 +\272\163\303\255\164\166\303\241\156\171 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\006\111\101\054\344\000\020 +END +CKA_VALUE MULTILINE_OCTAL +\060\202\004\025\060\202\002\375\240\003\002\001\002\002\006\111 +\101\054\344\000\020\060\015\006\011\052\206\110\206\367\015\001 +\001\013\005\000\060\201\247\061\013\060\011\006\003\125\004\006 +\023\002\110\125\061\021\060\017\006\003\125\004\007\014\010\102 +\165\144\141\160\145\163\164\061\025\060\023\006\003\125\004\012 +\014\014\116\145\164\114\157\143\153\040\113\146\164\056\061\067 +\060\065\006\003\125\004\013\014\056\124\141\156\303\272\163\303 +\255\164\166\303\241\156\171\153\151\141\144\303\263\153\040\050 +\103\145\162\164\151\146\151\143\141\164\151\157\156\040\123\145 +\162\166\151\143\145\163\051\061\065\060\063\006\003\125\004\003 +\014\054\116\145\164\114\157\143\153\040\101\162\141\156\171\040 +\050\103\154\141\163\163\040\107\157\154\144\051\040\106\305\221 +\164\141\156\303\272\163\303\255\164\166\303\241\156\171\060\036 +\027\015\060\070\061\062\061\061\061\065\060\070\062\061\132\027 +\015\062\070\061\062\060\066\061\065\060\070\062\061\132\060\201 +\247\061\013\060\011\006\003\125\004\006\023\002\110\125\061\021 +\060\017\006\003\125\004\007\014\010\102\165\144\141\160\145\163 +\164\061\025\060\023\006\003\125\004\012\014\014\116\145\164\114 +\157\143\153\040\113\146\164\056\061\067\060\065\006\003\125\004 +\013\014\056\124\141\156\303\272\163\303\255\164\166\303\241\156 +\171\153\151\141\144\303\263\153\040\050\103\145\162\164\151\146 +\151\143\141\164\151\157\156\040\123\145\162\166\151\143\145\163 +\051\061\065\060\063\006\003\125\004\003\014\054\116\145\164\114 +\157\143\153\040\101\162\141\156\171\040\050\103\154\141\163\163 +\040\107\157\154\144\051\040\106\305\221\164\141\156\303\272\163 +\303\255\164\166\303\241\156\171\060\202\001\042\060\015\006\011 +\052\206\110\206\367\015\001\001\001\005\000\003\202\001\017\000 +\060\202\001\012\002\202\001\001\000\304\044\136\163\276\113\155 +\024\303\241\364\343\227\220\156\322\060\105\036\074\356\147\331 +\144\340\032\212\177\312\060\312\203\343\040\301\343\364\072\323 +\224\137\032\174\133\155\277\060\117\204\047\366\237\037\111\274 +\306\231\012\220\362\017\365\177\103\204\067\143\121\213\172\245 +\160\374\172\130\315\216\233\355\303\106\154\204\160\135\332\363 +\001\220\043\374\116\060\251\176\341\047\143\347\355\144\074\240 +\270\311\063\143\376\026\220\377\260\270\375\327\250\300\300\224 +\103\013\266\325\131\246\236\126\320\044\037\160\171\257\333\071 +\124\015\145\165\331\025\101\224\001\257\136\354\366\215\361\377 +\255\144\376\040\232\327\134\353\376\246\037\010\144\243\213\166 +\125\255\036\073\050\140\056\207\045\350\252\257\037\306\144\106 +\040\267\160\177\074\336\110\333\226\123\267\071\167\344\032\342 +\307\026\204\166\227\133\057\273\031\025\205\370\151\205\365\231 +\247\251\362\064\247\251\266\246\003\374\157\206\075\124\174\166 +\004\233\153\371\100\135\000\064\307\056\231\165\235\345\210\003 +\252\115\370\003\322\102\166\300\033\002\003\000\250\213\243\105 +\060\103\060\022\006\003\125\035\023\001\001\377\004\010\060\006 +\001\001\377\002\001\004\060\016\006\003\125\035\017\001\001\377 +\004\004\003\002\001\006\060\035\006\003\125\035\016\004\026\004 +\024\314\372\147\223\360\266\270\320\245\300\036\363\123\375\214 +\123\337\203\327\226\060\015\006\011\052\206\110\206\367\015\001 +\001\013\005\000\003\202\001\001\000\253\177\356\034\026\251\234 +\074\121\000\240\300\021\010\005\247\231\346\157\001\210\124\141 +\156\361\271\030\255\112\255\376\201\100\043\224\057\373\165\174 +\057\050\113\142\044\201\202\013\365\141\361\034\156\270\141\070 +\353\201\372\142\241\073\132\142\323\224\145\304\341\346\155\202 +\370\057\045\160\262\041\046\301\162\121\037\214\054\303\204\220 +\303\132\217\272\317\364\247\145\245\353\230\321\373\005\262\106 +\165\025\043\152\157\205\143\060\200\360\325\236\037\051\034\302 +\154\260\120\131\135\220\133\073\250\015\060\317\277\175\177\316 +\361\235\203\275\311\106\156\040\246\371\141\121\272\041\057\173 +\276\245\025\143\241\324\225\207\361\236\271\363\211\363\075\205 +\270\270\333\276\265\271\051\371\332\067\005\000\111\224\003\204 +\104\347\277\103\061\317\165\213\045\321\364\246\144\365\222\366 +\253\005\353\075\351\245\013\066\142\332\314\006\137\066\213\266 +\136\061\270\052\373\136\366\161\337\104\046\236\304\346\015\221 +\264\056\165\225\200\121\152\113\060\246\260\142\241\223\361\233 +\330\316\304\143\165\077\131\107\261 +END + +# Trust for Certificate "NetLock Arany (Class Gold) Főtanúsítvány" +CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "NetLock Arany (Class Gold) Főtanúsítvány" +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\006\010\077\131\077\025\241\004\240\151\244\153\251\003\320\006 +\267\227\011\221 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\305\241\267\377\163\335\326\327\064\062\030\337\374\074\255\210 +END +CKA_ISSUER MULTILINE_OCTAL +\060\201\247\061\013\060\011\006\003\125\004\006\023\002\110\125 +\061\021\060\017\006\003\125\004\007\014\010\102\165\144\141\160 +\145\163\164\061\025\060\023\006\003\125\004\012\014\014\116\145 +\164\114\157\143\153\040\113\146\164\056\061\067\060\065\006\003 +\125\004\013\014\056\124\141\156\303\272\163\303\255\164\166\303 +\241\156\171\153\151\141\144\303\263\153\040\050\103\145\162\164 +\151\146\151\143\141\164\151\157\156\040\123\145\162\166\151\143 +\145\163\051\061\065\060\063\006\003\125\004\003\014\054\116\145 +\164\114\157\143\153\040\101\162\141\156\171\040\050\103\154\141 +\163\163\040\107\157\154\144\051\040\106\305\221\164\141\156\303 +\272\163\303\255\164\166\303\241\156\171 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\006\111\101\054\344\000\020 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "Staat der Nederlanden Root CA - G2" +# +CKA_CLASS CK_OBJECT_CLASS CKO_CERTIFICATE +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "Staat der Nederlanden Root CA - G2" +CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509 +CKA_SUBJECT MULTILINE_OCTAL +\060\132\061\013\060\011\006\003\125\004\006\023\002\116\114\061 +\036\060\034\006\003\125\004\012\014\025\123\164\141\141\164\040 +\144\145\162\040\116\145\144\145\162\154\141\156\144\145\156\061 +\053\060\051\006\003\125\004\003\014\042\123\164\141\141\164\040 +\144\145\162\040\116\145\144\145\162\154\141\156\144\145\156\040 +\122\157\157\164\040\103\101\040\055\040\107\062 +END +CKA_ID UTF8 "0" +CKA_ISSUER MULTILINE_OCTAL +\060\132\061\013\060\011\006\003\125\004\006\023\002\116\114\061 +\036\060\034\006\003\125\004\012\014\025\123\164\141\141\164\040 +\144\145\162\040\116\145\144\145\162\154\141\156\144\145\156\061 +\053\060\051\006\003\125\004\003\014\042\123\164\141\141\164\040 +\144\145\162\040\116\145\144\145\162\154\141\156\144\145\156\040 +\122\157\157\164\040\103\101\040\055\040\107\062 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\004\000\230\226\214 +END +CKA_VALUE MULTILINE_OCTAL +\060\202\005\312\060\202\003\262\240\003\002\001\002\002\004\000 +\230\226\214\060\015\006\011\052\206\110\206\367\015\001\001\013 +\005\000\060\132\061\013\060\011\006\003\125\004\006\023\002\116 +\114\061\036\060\034\006\003\125\004\012\014\025\123\164\141\141 +\164\040\144\145\162\040\116\145\144\145\162\154\141\156\144\145 +\156\061\053\060\051\006\003\125\004\003\014\042\123\164\141\141 +\164\040\144\145\162\040\116\145\144\145\162\154\141\156\144\145 +\156\040\122\157\157\164\040\103\101\040\055\040\107\062\060\036 +\027\015\060\070\060\063\062\066\061\061\061\070\061\067\132\027 +\015\062\060\060\063\062\065\061\061\060\063\061\060\132\060\132 +\061\013\060\011\006\003\125\004\006\023\002\116\114\061\036\060 +\034\006\003\125\004\012\014\025\123\164\141\141\164\040\144\145 +\162\040\116\145\144\145\162\154\141\156\144\145\156\061\053\060 +\051\006\003\125\004\003\014\042\123\164\141\141\164\040\144\145 +\162\040\116\145\144\145\162\154\141\156\144\145\156\040\122\157 +\157\164\040\103\101\040\055\040\107\062\060\202\002\042\060\015 +\006\011\052\206\110\206\367\015\001\001\001\005\000\003\202\002 +\017\000\060\202\002\012\002\202\002\001\000\305\131\347\157\165 +\252\076\113\234\265\270\254\236\013\344\371\331\312\253\135\217 +\265\071\020\202\327\257\121\340\073\341\000\110\152\317\332\341 +\006\103\021\231\252\024\045\022\255\042\350\000\155\103\304\251 +\270\345\037\211\113\147\275\141\110\357\375\322\340\140\210\345 +\271\030\140\050\303\167\053\255\260\067\252\067\336\144\131\052 +\106\127\344\113\271\370\067\174\325\066\347\200\301\266\363\324 +\147\233\226\350\316\327\306\012\123\320\153\111\226\363\243\013 +\005\167\110\367\045\345\160\254\060\024\040\045\343\177\165\132 +\345\110\370\116\173\003\007\004\372\202\141\207\156\360\073\304 +\244\307\320\365\164\076\245\135\032\010\362\233\045\322\366\254 +\004\046\076\125\072\142\050\245\173\262\060\257\370\067\302\321 +\272\326\070\375\364\357\111\060\067\231\046\041\110\205\001\251 +\345\026\347\334\220\125\337\017\350\070\315\231\067\041\117\135 +\365\042\157\152\305\022\026\140\027\125\362\145\146\246\247\060 +\221\070\301\070\035\206\004\204\272\032\045\170\136\235\257\314 +\120\140\326\023\207\122\355\143\037\155\145\175\302\025\030\164 +\312\341\176\144\051\214\162\330\026\023\175\013\111\112\361\050 +\033\040\164\153\305\075\335\260\252\110\011\075\056\202\224\315 +\032\145\331\053\210\232\231\274\030\176\237\356\175\146\174\076 +\275\224\270\201\316\315\230\060\170\301\157\147\320\276\137\340 +\150\355\336\342\261\311\054\131\170\222\252\337\053\140\143\362 +\345\136\271\343\312\372\177\120\206\076\242\064\030\014\011\150 +\050\021\034\344\341\271\134\076\107\272\062\077\030\314\133\204 +\365\363\153\164\304\162\164\341\343\213\240\112\275\215\146\057 +\352\255\065\332\040\323\210\202\141\360\022\042\266\274\320\325 +\244\354\257\124\210\045\044\074\247\155\261\162\051\077\076\127 +\246\177\125\257\156\046\306\376\347\314\100\134\121\104\201\012 +\170\336\112\316\125\277\035\325\331\267\126\357\360\166\377\013 +\171\265\257\275\373\251\151\221\106\227\150\200\024\066\035\263 +\177\273\051\230\066\245\040\372\202\140\142\063\244\354\326\272 +\007\247\156\305\317\024\246\347\326\222\064\330\201\365\374\035 +\135\252\134\036\366\243\115\073\270\367\071\002\003\001\000\001 +\243\201\227\060\201\224\060\017\006\003\125\035\023\001\001\377 +\004\005\060\003\001\001\377\060\122\006\003\125\035\040\004\113 +\060\111\060\107\006\004\125\035\040\000\060\077\060\075\006\010 +\053\006\001\005\005\007\002\001\026\061\150\164\164\160\072\057 +\057\167\167\167\056\160\153\151\157\166\145\162\150\145\151\144 +\056\156\154\057\160\157\154\151\143\151\145\163\057\162\157\157 +\164\055\160\157\154\151\143\171\055\107\062\060\016\006\003\125 +\035\017\001\001\377\004\004\003\002\001\006\060\035\006\003\125 +\035\016\004\026\004\024\221\150\062\207\025\035\211\342\265\361 +\254\066\050\064\215\013\174\142\210\353\060\015\006\011\052\206 +\110\206\367\015\001\001\013\005\000\003\202\002\001\000\250\101 +\112\147\052\222\201\202\120\156\341\327\330\263\071\073\363\002 +\025\011\120\121\357\055\275\044\173\210\206\073\371\264\274\222 +\011\226\271\366\300\253\043\140\006\171\214\021\116\121\322\171 +\200\063\373\235\110\276\354\101\103\201\037\176\107\100\034\345 +\172\010\312\252\213\165\255\024\304\302\350\146\074\202\007\247 +\346\047\202\133\030\346\017\156\331\120\076\212\102\030\051\306 +\264\126\374\126\020\240\005\027\275\014\043\177\364\223\355\234 +\032\121\276\335\105\101\277\221\044\264\037\214\351\137\317\173 +\041\231\237\225\237\071\072\106\034\154\371\315\173\234\220\315 +\050\251\307\251\125\273\254\142\064\142\065\023\113\024\072\125 +\203\271\206\215\222\246\306\364\007\045\124\314\026\127\022\112 +\202\170\310\024\331\027\202\046\055\135\040\037\171\256\376\324 +\160\026\026\225\203\330\065\071\377\122\135\165\034\026\305\023 +\125\317\107\314\165\145\122\112\336\360\260\247\344\012\226\013 +\373\255\302\342\045\204\262\335\344\275\176\131\154\233\360\360 +\330\347\312\362\351\227\070\176\211\276\314\373\071\027\141\077 +\162\333\072\221\330\145\001\031\035\255\120\244\127\012\174\113 +\274\234\161\163\052\105\121\031\205\314\216\375\107\247\164\225 +\035\250\321\257\116\027\261\151\046\302\252\170\127\133\305\115 +\247\345\236\005\027\224\312\262\137\240\111\030\215\064\351\046 +\154\110\036\252\150\222\005\341\202\163\132\233\334\007\133\010 +\155\175\235\327\215\041\331\374\024\040\252\302\105\337\077\347 +\000\262\121\344\302\370\005\271\171\032\214\064\363\236\133\344 +\067\133\153\112\337\054\127\212\100\132\066\272\335\165\104\010 +\067\102\160\014\376\334\136\041\240\243\212\300\220\234\150\332 +\120\346\105\020\107\170\266\116\322\145\311\303\067\337\341\102 +\143\260\127\067\105\055\173\212\234\277\005\352\145\125\063\367 +\071\020\305\050\052\041\172\033\212\304\044\371\077\025\310\232 +\025\040\365\125\142\226\355\155\223\120\274\344\252\170\255\331 +\313\012\145\207\246\146\301\304\201\243\167\072\130\036\013\356 +\203\213\235\036\322\122\244\314\035\157\260\230\155\224\061\265 +\370\161\012\334\271\374\175\062\140\346\353\257\212\001 +END + +# Trust for Certificate "Staat der Nederlanden Root CA - G2" +CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "Staat der Nederlanden Root CA - G2" +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\131\257\202\171\221\206\307\264\165\007\313\317\003\127\106\353 +\004\335\267\026 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\174\245\017\370\133\232\175\155\060\256\124\132\343\102\242\212 +END +CKA_ISSUER MULTILINE_OCTAL +\060\132\061\013\060\011\006\003\125\004\006\023\002\116\114\061 +\036\060\034\006\003\125\004\012\014\025\123\164\141\141\164\040 +\144\145\162\040\116\145\144\145\162\154\141\156\144\145\156\061 +\053\060\051\006\003\125\004\003\014\042\123\164\141\141\164\040 +\144\145\162\040\116\145\144\145\162\154\141\156\144\145\156\040 +\122\157\157\164\040\103\101\040\055\040\107\062 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\004\000\230\226\214 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "CA Disig" +# +CKA_CLASS CK_OBJECT_CLASS CKO_CERTIFICATE +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "CA Disig" +CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509 +CKA_SUBJECT MULTILINE_OCTAL +\060\112\061\013\060\011\006\003\125\004\006\023\002\123\113\061 +\023\060\021\006\003\125\004\007\023\012\102\162\141\164\151\163 +\154\141\166\141\061\023\060\021\006\003\125\004\012\023\012\104 +\151\163\151\147\040\141\056\163\056\061\021\060\017\006\003\125 +\004\003\023\010\103\101\040\104\151\163\151\147 +END +CKA_ID UTF8 "0" +CKA_ISSUER MULTILINE_OCTAL +\060\112\061\013\060\011\006\003\125\004\006\023\002\123\113\061 +\023\060\021\006\003\125\004\007\023\012\102\162\141\164\151\163 +\154\141\166\141\061\023\060\021\006\003\125\004\012\023\012\104 +\151\163\151\147\040\141\056\163\056\061\021\060\017\006\003\125 +\004\003\023\010\103\101\040\104\151\163\151\147 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\001\001 +END +CKA_VALUE MULTILINE_OCTAL +\060\202\004\017\060\202\002\367\240\003\002\001\002\002\001\001 +\060\015\006\011\052\206\110\206\367\015\001\001\005\005\000\060 +\112\061\013\060\011\006\003\125\004\006\023\002\123\113\061\023 +\060\021\006\003\125\004\007\023\012\102\162\141\164\151\163\154 +\141\166\141\061\023\060\021\006\003\125\004\012\023\012\104\151 +\163\151\147\040\141\056\163\056\061\021\060\017\006\003\125\004 +\003\023\010\103\101\040\104\151\163\151\147\060\036\027\015\060 +\066\060\063\062\062\060\061\063\071\063\064\132\027\015\061\066 +\060\063\062\062\060\061\063\071\063\064\132\060\112\061\013\060 +\011\006\003\125\004\006\023\002\123\113\061\023\060\021\006\003 +\125\004\007\023\012\102\162\141\164\151\163\154\141\166\141\061 +\023\060\021\006\003\125\004\012\023\012\104\151\163\151\147\040 +\141\056\163\056\061\021\060\017\006\003\125\004\003\023\010\103 +\101\040\104\151\163\151\147\060\202\001\042\060\015\006\011\052 +\206\110\206\367\015\001\001\001\005\000\003\202\001\017\000\060 +\202\001\012\002\202\001\001\000\222\366\061\301\175\210\375\231 +\001\251\330\173\362\161\165\361\061\306\363\165\146\372\121\050 +\106\204\227\170\064\274\154\374\274\105\131\210\046\030\112\304 +\067\037\241\112\104\275\343\161\004\365\104\027\342\077\374\110 +\130\157\134\236\172\011\272\121\067\042\043\146\103\041\260\074 +\144\242\370\152\025\016\077\353\121\341\124\251\335\006\231\327 +\232\074\124\213\071\003\077\017\305\316\306\353\203\162\002\250 +\037\161\363\055\370\165\010\333\142\114\350\372\316\371\347\152 +\037\266\153\065\202\272\342\217\026\222\175\005\014\154\106\003 +\135\300\355\151\277\072\301\212\240\350\216\331\271\105\050\207 +\010\354\264\312\025\276\202\335\265\104\213\055\255\206\014\150 +\142\155\205\126\362\254\024\143\072\306\321\231\254\064\170\126 +\113\317\266\255\077\214\212\327\004\345\343\170\114\365\206\252 +\365\217\372\075\154\161\243\055\312\147\353\150\173\156\063\251 +\014\202\050\250\114\152\041\100\025\040\014\046\133\203\302\251 +\026\025\300\044\202\135\053\026\255\312\143\366\164\000\260\337 +\103\304\020\140\126\147\143\105\002\003\001\000\001\243\201\377 +\060\201\374\060\017\006\003\125\035\023\001\001\377\004\005\060 +\003\001\001\377\060\035\006\003\125\035\016\004\026\004\024\215 +\262\111\150\235\162\010\045\271\300\047\365\120\223\126\110\106 +\161\371\217\060\016\006\003\125\035\017\001\001\377\004\004\003 +\002\001\006\060\066\006\003\125\035\021\004\057\060\055\201\023 +\143\141\157\160\145\162\141\164\157\162\100\144\151\163\151\147 +\056\163\153\206\026\150\164\164\160\072\057\057\167\167\167\056 +\144\151\163\151\147\056\163\153\057\143\141\060\146\006\003\125 +\035\037\004\137\060\135\060\055\240\053\240\051\206\047\150\164 +\164\160\072\057\057\167\167\167\056\144\151\163\151\147\056\163 +\153\057\143\141\057\143\162\154\057\143\141\137\144\151\163\151 +\147\056\143\162\154\060\054\240\052\240\050\206\046\150\164\164 +\160\072\057\057\143\141\056\144\151\163\151\147\056\163\153\057 +\143\141\057\143\162\154\057\143\141\137\144\151\163\151\147\056 +\143\162\154\060\032\006\003\125\035\040\004\023\060\021\060\017 +\006\015\053\201\036\221\223\346\012\000\000\000\001\001\001\060 +\015\006\011\052\206\110\206\367\015\001\001\005\005\000\003\202 +\001\001\000\135\064\164\141\114\257\073\330\377\237\155\130\066 +\034\075\013\201\015\022\053\106\020\200\375\347\074\047\320\172 +\310\251\266\176\164\060\063\243\072\212\173\164\300\171\171\102 +\223\155\377\261\051\024\202\253\041\214\057\027\371\077\046\057 +\365\131\306\357\200\006\267\232\111\051\354\316\176\161\074\152 +\020\101\300\366\323\232\262\174\132\221\234\300\254\133\310\115 +\136\367\341\123\377\103\167\374\236\113\147\154\327\363\203\321 +\240\340\177\045\337\270\230\013\232\062\070\154\060\240\363\377 +\010\025\063\367\120\112\173\076\243\076\040\251\334\057\126\200 +\012\355\101\120\260\311\364\354\262\343\046\104\000\016\157\236 +\006\274\042\226\123\160\145\304\120\012\106\153\244\057\047\201 +\022\047\023\137\020\241\166\316\212\173\067\352\303\071\141\003 +\225\230\072\347\154\210\045\010\374\171\150\015\207\175\142\370 +\264\137\373\305\330\114\275\130\274\077\103\133\324\036\001\115 +\074\143\276\043\357\214\315\132\120\270\150\124\371\012\231\063 +\021\000\341\236\302\106\167\202\365\131\006\214\041\114\207\011 +\315\345\250 +END + +# Trust for Certificate "CA Disig" +CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "CA Disig" +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\052\310\325\213\127\316\277\057\111\257\362\374\166\217\121\024 +\142\220\172\101 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\077\105\226\071\342\120\207\367\273\376\230\014\074\040\230\346 +END +CKA_ISSUER MULTILINE_OCTAL +\060\112\061\013\060\011\006\003\125\004\006\023\002\123\113\061 +\023\060\021\006\003\125\004\007\023\012\102\162\141\164\151\163 +\154\141\166\141\061\023\060\021\006\003\125\004\012\023\012\104 +\151\163\151\147\040\141\056\163\056\061\021\060\017\006\003\125 +\004\003\023\010\103\101\040\104\151\163\151\147 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\001\001 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "Juur-SK" +# +CKA_CLASS CK_OBJECT_CLASS CKO_CERTIFICATE +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "Juur-SK" +CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509 +CKA_SUBJECT MULTILINE_OCTAL +\060\135\061\030\060\026\006\011\052\206\110\206\367\015\001\011 +\001\026\011\160\153\151\100\163\153\056\145\145\061\013\060\011 +\006\003\125\004\006\023\002\105\105\061\042\060\040\006\003\125 +\004\012\023\031\101\123\040\123\145\162\164\151\146\151\164\163 +\145\145\162\151\155\151\163\153\145\163\153\165\163\061\020\060 +\016\006\003\125\004\003\023\007\112\165\165\162\055\123\113 +END +CKA_ID UTF8 "0" +CKA_ISSUER MULTILINE_OCTAL +\060\135\061\030\060\026\006\011\052\206\110\206\367\015\001\011 +\001\026\011\160\153\151\100\163\153\056\145\145\061\013\060\011 +\006\003\125\004\006\023\002\105\105\061\042\060\040\006\003\125 +\004\012\023\031\101\123\040\123\145\162\164\151\146\151\164\163 +\145\145\162\151\155\151\163\153\145\163\153\165\163\061\020\060 +\016\006\003\125\004\003\023\007\112\165\165\162\055\123\113 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\004\073\216\113\374 +END +CKA_VALUE MULTILINE_OCTAL +\060\202\004\346\060\202\003\316\240\003\002\001\002\002\004\073 +\216\113\374\060\015\006\011\052\206\110\206\367\015\001\001\005 +\005\000\060\135\061\030\060\026\006\011\052\206\110\206\367\015 +\001\011\001\026\011\160\153\151\100\163\153\056\145\145\061\013 +\060\011\006\003\125\004\006\023\002\105\105\061\042\060\040\006 +\003\125\004\012\023\031\101\123\040\123\145\162\164\151\146\151 +\164\163\145\145\162\151\155\151\163\153\145\163\153\165\163\061 +\020\060\016\006\003\125\004\003\023\007\112\165\165\162\055\123 +\113\060\036\027\015\060\061\060\070\063\060\061\064\062\063\060 +\061\132\027\015\061\066\060\070\062\066\061\064\062\063\060\061 +\132\060\135\061\030\060\026\006\011\052\206\110\206\367\015\001 +\011\001\026\011\160\153\151\100\163\153\056\145\145\061\013\060 +\011\006\003\125\004\006\023\002\105\105\061\042\060\040\006\003 +\125\004\012\023\031\101\123\040\123\145\162\164\151\146\151\164 +\163\145\145\162\151\155\151\163\153\145\163\153\165\163\061\020 +\060\016\006\003\125\004\003\023\007\112\165\165\162\055\123\113 +\060\202\001\042\060\015\006\011\052\206\110\206\367\015\001\001 +\001\005\000\003\202\001\017\000\060\202\001\012\002\202\001\001 +\000\201\161\066\076\063\007\326\343\060\215\023\176\167\062\106 +\313\317\031\262\140\061\106\227\206\364\230\106\244\302\145\105 +\317\323\100\174\343\132\042\250\020\170\063\314\210\261\323\201 +\112\366\142\027\173\137\115\012\056\320\317\213\043\356\117\002 +\116\273\353\016\312\275\030\143\350\200\034\215\341\034\215\075 +\340\377\133\137\352\144\345\227\350\077\231\177\014\012\011\063 +\000\032\123\247\041\341\070\113\326\203\033\255\257\144\302\371 +\034\172\214\146\110\115\146\037\030\012\342\076\273\037\007\145 +\223\205\271\032\260\271\304\373\015\021\366\365\326\371\033\307 +\054\053\267\030\121\376\340\173\366\250\110\257\154\073\117\057 +\357\370\321\107\036\046\127\360\121\035\063\226\377\357\131\075 +\332\115\321\025\064\307\352\077\026\110\173\221\034\200\103\017 +\075\270\005\076\321\263\225\315\330\312\017\302\103\147\333\267 +\223\340\042\202\056\276\365\150\050\203\271\301\073\151\173\040 +\332\116\234\155\341\272\315\217\172\154\260\011\042\327\213\013 +\333\034\325\132\046\133\015\300\352\345\140\320\237\376\065\337 +\077\002\003\001\000\001\243\202\001\254\060\202\001\250\060\017 +\006\003\125\035\023\001\001\377\004\005\060\003\001\001\377\060 +\202\001\026\006\003\125\035\040\004\202\001\015\060\202\001\011 +\060\202\001\005\006\012\053\006\001\004\001\316\037\001\001\001 +\060\201\366\060\201\320\006\010\053\006\001\005\005\007\002\002 +\060\201\303\036\201\300\000\123\000\145\000\145\000\040\000\163 +\000\145\000\162\000\164\000\151\000\146\000\151\000\153\000\141 +\000\141\000\164\000\040\000\157\000\156\000\040\000\166\000\344 +\000\154\000\152\000\141\000\163\000\164\000\141\000\164\000\165 +\000\144\000\040\000\101\000\123\000\055\000\151\000\163\000\040 +\000\123\000\145\000\162\000\164\000\151\000\146\000\151\000\164 +\000\163\000\145\000\145\000\162\000\151\000\155\000\151\000\163 +\000\153\000\145\000\163\000\153\000\165\000\163\000\040\000\141 +\000\154\000\141\000\155\000\055\000\123\000\113\000\040\000\163 +\000\145\000\162\000\164\000\151\000\146\000\151\000\153\000\141 +\000\141\000\164\000\151\000\144\000\145\000\040\000\153\000\151 +\000\156\000\156\000\151\000\164\000\141\000\155\000\151\000\163 +\000\145\000\153\000\163\060\041\006\010\053\006\001\005\005\007 +\002\001\026\025\150\164\164\160\072\057\057\167\167\167\056\163 +\153\056\145\145\057\143\160\163\057\060\053\006\003\125\035\037 +\004\044\060\042\060\040\240\036\240\034\206\032\150\164\164\160 +\072\057\057\167\167\167\056\163\153\056\145\145\057\152\165\165 +\162\057\143\162\154\057\060\035\006\003\125\035\016\004\026\004 +\024\004\252\172\107\243\344\211\257\032\317\012\100\247\030\077 +\157\357\351\175\276\060\037\006\003\125\035\043\004\030\060\026 +\200\024\004\252\172\107\243\344\211\257\032\317\012\100\247\030 +\077\157\357\351\175\276\060\016\006\003\125\035\017\001\001\377 +\004\004\003\002\001\346\060\015\006\011\052\206\110\206\367\015 +\001\001\005\005\000\003\202\001\001\000\173\301\030\224\123\242 +\011\363\376\046\147\232\120\344\303\005\057\053\065\170\221\114 +\174\250\021\021\171\114\111\131\254\310\367\205\145\134\106\273 +\073\020\240\002\257\315\117\265\314\066\052\354\135\376\357\240 +\221\311\266\223\157\174\200\124\354\307\010\160\015\216\373\202 +\354\052\140\170\151\066\066\321\305\234\213\151\265\100\310\224 +\145\167\362\127\041\146\073\316\205\100\266\063\143\032\277\171 +\036\374\134\035\323\035\223\033\213\014\135\205\275\231\060\062 +\030\011\221\122\351\174\241\272\377\144\222\232\354\376\065\356 +\214\057\256\374\040\206\354\112\336\033\170\062\067\246\201\322 +\235\257\132\022\026\312\231\133\374\157\155\016\305\240\036\206 +\311\221\320\134\230\202\137\143\014\212\132\253\330\225\246\314 +\313\212\326\277\144\113\216\312\212\262\260\351\041\062\236\252 +\250\205\230\064\201\071\041\073\250\072\122\062\075\366\153\067 +\206\006\132\025\230\334\360\021\146\376\064\040\267\003\364\101 +\020\175\071\204\171\226\162\143\266\226\002\345\153\271\255\031 +\115\273\306\104\333\066\313\052\234\216 +END + +# Trust for Certificate "Juur-SK" +CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "Juur-SK" +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\100\235\113\331\027\265\134\047\266\233\144\313\230\042\104\015 +\315\011\270\211 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\252\216\135\331\370\333\012\130\267\215\046\207\154\202\065\125 +END +CKA_ISSUER MULTILINE_OCTAL +\060\135\061\030\060\026\006\011\052\206\110\206\367\015\001\011 +\001\026\011\160\153\151\100\163\153\056\145\145\061\013\060\011 +\006\003\125\004\006\023\002\105\105\061\042\060\040\006\003\125 +\004\012\023\031\101\123\040\123\145\162\164\151\146\151\164\163 +\145\145\162\151\155\151\163\153\145\163\153\165\163\061\020\060 +\016\006\003\125\004\003\023\007\112\165\165\162\055\123\113 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\004\073\216\113\374 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_TRUST_UNKNOWN +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "Hongkong Post Root CA 1" +# +CKA_CLASS CK_OBJECT_CLASS CKO_CERTIFICATE +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "Hongkong Post Root CA 1" +CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509 +CKA_SUBJECT MULTILINE_OCTAL +\060\107\061\013\060\011\006\003\125\004\006\023\002\110\113\061 +\026\060\024\006\003\125\004\012\023\015\110\157\156\147\153\157 +\156\147\040\120\157\163\164\061\040\060\036\006\003\125\004\003 +\023\027\110\157\156\147\153\157\156\147\040\120\157\163\164\040 +\122\157\157\164\040\103\101\040\061 +END +CKA_ID UTF8 "0" +CKA_ISSUER MULTILINE_OCTAL +\060\107\061\013\060\011\006\003\125\004\006\023\002\110\113\061 +\026\060\024\006\003\125\004\012\023\015\110\157\156\147\153\157 +\156\147\040\120\157\163\164\061\040\060\036\006\003\125\004\003 +\023\027\110\157\156\147\153\157\156\147\040\120\157\163\164\040 +\122\157\157\164\040\103\101\040\061 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\002\003\350 +END +CKA_VALUE MULTILINE_OCTAL +\060\202\003\060\060\202\002\030\240\003\002\001\002\002\002\003 +\350\060\015\006\011\052\206\110\206\367\015\001\001\005\005\000 +\060\107\061\013\060\011\006\003\125\004\006\023\002\110\113\061 +\026\060\024\006\003\125\004\012\023\015\110\157\156\147\153\157 +\156\147\040\120\157\163\164\061\040\060\036\006\003\125\004\003 +\023\027\110\157\156\147\153\157\156\147\040\120\157\163\164\040 +\122\157\157\164\040\103\101\040\061\060\036\027\015\060\063\060 +\065\061\065\060\065\061\063\061\064\132\027\015\062\063\060\065 +\061\065\060\064\065\062\062\071\132\060\107\061\013\060\011\006 +\003\125\004\006\023\002\110\113\061\026\060\024\006\003\125\004 +\012\023\015\110\157\156\147\153\157\156\147\040\120\157\163\164 +\061\040\060\036\006\003\125\004\003\023\027\110\157\156\147\153 +\157\156\147\040\120\157\163\164\040\122\157\157\164\040\103\101 +\040\061\060\202\001\042\060\015\006\011\052\206\110\206\367\015 +\001\001\001\005\000\003\202\001\017\000\060\202\001\012\002\202 +\001\001\000\254\377\070\266\351\146\002\111\343\242\264\341\220 +\371\100\217\171\371\342\275\171\376\002\275\356\044\222\035\042 +\366\332\205\162\151\376\327\077\011\324\335\221\265\002\234\320 +\215\132\341\125\303\120\206\271\051\046\302\343\331\240\361\151 +\003\050\040\200\105\042\055\126\247\073\124\225\126\042\131\037 +\050\337\037\040\075\155\242\066\276\043\240\261\156\265\261\047 +\077\071\123\011\352\253\152\350\164\262\302\145\134\216\277\174 +\303\170\204\315\236\026\374\365\056\117\040\052\010\237\167\363 +\305\036\304\232\122\146\036\110\136\343\020\006\217\042\230\341 +\145\216\033\135\043\146\073\270\245\062\121\310\206\252\241\251 +\236\177\166\224\302\246\154\267\101\360\325\310\006\070\346\324 +\014\342\363\073\114\155\120\214\304\203\047\301\023\204\131\075 +\236\165\164\266\330\002\136\072\220\172\300\102\066\162\354\152 +\115\334\357\304\000\337\023\030\127\137\046\170\310\326\012\171 +\167\277\367\257\267\166\271\245\013\204\027\135\020\352\157\341 +\253\225\021\137\155\074\243\134\115\203\133\362\263\031\212\200 +\213\013\207\002\003\001\000\001\243\046\060\044\060\022\006\003 +\125\035\023\001\001\377\004\010\060\006\001\001\377\002\001\003 +\060\016\006\003\125\035\017\001\001\377\004\004\003\002\001\306 +\060\015\006\011\052\206\110\206\367\015\001\001\005\005\000\003 +\202\001\001\000\016\106\325\074\256\342\207\331\136\201\213\002 +\230\101\010\214\114\274\332\333\356\047\033\202\347\152\105\354 +\026\213\117\205\240\363\262\160\275\132\226\272\312\156\155\356 +\106\213\156\347\052\056\226\263\031\063\353\264\237\250\262\067 +\356\230\250\227\266\056\266\147\047\324\246\111\375\034\223\145 +\166\236\102\057\334\042\154\232\117\362\132\025\071\261\161\327 +\053\121\350\155\034\230\300\331\052\364\241\202\173\325\311\101 +\242\043\001\164\070\125\213\017\271\056\147\242\040\004\067\332 +\234\013\323\027\041\340\217\227\171\064\157\204\110\002\040\063 +\033\346\064\104\237\221\160\364\200\136\204\103\302\051\322\154 +\022\024\344\141\215\254\020\220\236\204\120\273\360\226\157\105 +\237\212\363\312\154\117\372\021\072\025\025\106\303\315\037\203 +\133\055\101\022\355\120\147\101\023\075\041\253\224\212\252\116 +\174\301\261\373\247\326\265\047\057\227\253\156\340\035\342\321 +\034\054\037\104\342\374\276\221\241\234\373\326\051\123\163\206 +\237\123\330\103\016\135\326\143\202\161\035\200\164\312\366\342 +\002\153\331\132 +END + +# Trust for Certificate "Hongkong Post Root CA 1" +CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "Hongkong Post Root CA 1" +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\326\332\250\040\215\011\322\025\115\044\265\057\313\064\156\262 +\130\262\212\130 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\250\015\157\071\170\271\103\155\167\102\155\230\132\314\043\312 +END +CKA_ISSUER MULTILINE_OCTAL +\060\107\061\013\060\011\006\003\125\004\006\023\002\110\113\061 +\026\060\024\006\003\125\004\012\023\015\110\157\156\147\153\157 +\156\147\040\120\157\163\164\061\040\060\036\006\003\125\004\003 +\023\027\110\157\156\147\153\157\156\147\040\120\157\163\164\040 +\122\157\157\164\040\103\101\040\061 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\002\003\350 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_TRUST_UNKNOWN +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_TRUST_UNKNOWN +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "SecureSign RootCA11" +# +CKA_CLASS CK_OBJECT_CLASS CKO_CERTIFICATE +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "SecureSign RootCA11" +CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509 +CKA_SUBJECT MULTILINE_OCTAL +\060\130\061\013\060\011\006\003\125\004\006\023\002\112\120\061 +\053\060\051\006\003\125\004\012\023\042\112\141\160\141\156\040 +\103\145\162\164\151\146\151\143\141\164\151\157\156\040\123\145 +\162\166\151\143\145\163\054\040\111\156\143\056\061\034\060\032 +\006\003\125\004\003\023\023\123\145\143\165\162\145\123\151\147 +\156\040\122\157\157\164\103\101\061\061 +END +CKA_ID UTF8 "0" +CKA_ISSUER MULTILINE_OCTAL +\060\130\061\013\060\011\006\003\125\004\006\023\002\112\120\061 +\053\060\051\006\003\125\004\012\023\042\112\141\160\141\156\040 +\103\145\162\164\151\146\151\143\141\164\151\157\156\040\123\145 +\162\166\151\143\145\163\054\040\111\156\143\056\061\034\060\032 +\006\003\125\004\003\023\023\123\145\143\165\162\145\123\151\147 +\156\040\122\157\157\164\103\101\061\061 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\001\001 +END +CKA_VALUE MULTILINE_OCTAL +\060\202\003\155\060\202\002\125\240\003\002\001\002\002\001\001 +\060\015\006\011\052\206\110\206\367\015\001\001\005\005\000\060 +\130\061\013\060\011\006\003\125\004\006\023\002\112\120\061\053 +\060\051\006\003\125\004\012\023\042\112\141\160\141\156\040\103 +\145\162\164\151\146\151\143\141\164\151\157\156\040\123\145\162 +\166\151\143\145\163\054\040\111\156\143\056\061\034\060\032\006 +\003\125\004\003\023\023\123\145\143\165\162\145\123\151\147\156 +\040\122\157\157\164\103\101\061\061\060\036\027\015\060\071\060 +\064\060\070\060\064\065\066\064\067\132\027\015\062\071\060\064 +\060\070\060\064\065\066\064\067\132\060\130\061\013\060\011\006 +\003\125\004\006\023\002\112\120\061\053\060\051\006\003\125\004 +\012\023\042\112\141\160\141\156\040\103\145\162\164\151\146\151 +\143\141\164\151\157\156\040\123\145\162\166\151\143\145\163\054 +\040\111\156\143\056\061\034\060\032\006\003\125\004\003\023\023 +\123\145\143\165\162\145\123\151\147\156\040\122\157\157\164\103 +\101\061\061\060\202\001\042\060\015\006\011\052\206\110\206\367 +\015\001\001\001\005\000\003\202\001\017\000\060\202\001\012\002 +\202\001\001\000\375\167\252\245\034\220\005\073\313\114\233\063 +\213\132\024\105\244\347\220\026\321\337\127\322\041\020\244\027 +\375\337\254\326\037\247\344\333\174\367\354\337\270\003\332\224 +\130\375\135\162\174\214\077\137\001\147\164\025\226\343\002\074 +\207\333\256\313\001\216\302\363\146\306\205\105\364\002\306\072 +\265\142\262\257\372\234\277\244\346\324\200\060\230\363\015\266 +\223\217\251\324\330\066\362\260\374\212\312\054\241\025\063\225 +\061\332\300\033\362\356\142\231\206\143\077\277\335\223\052\203 +\250\166\271\023\037\267\316\116\102\205\217\042\347\056\032\362 +\225\011\262\005\265\104\116\167\241\040\275\251\362\116\012\175 +\120\255\365\005\015\105\117\106\161\375\050\076\123\373\004\330 +\055\327\145\035\112\033\372\317\073\260\061\232\065\156\310\213 +\006\323\000\221\362\224\010\145\114\261\064\006\000\172\211\342 +\360\307\003\131\317\325\326\350\247\062\263\346\230\100\206\305 +\315\047\022\213\314\173\316\267\021\074\142\140\007\043\076\053 +\100\156\224\200\011\155\266\263\157\167\157\065\010\120\373\002 +\207\305\076\211\002\003\001\000\001\243\102\060\100\060\035\006 +\003\125\035\016\004\026\004\024\133\370\115\117\262\245\206\324 +\072\322\361\143\232\240\276\011\366\127\267\336\060\016\006\003 +\125\035\017\001\001\377\004\004\003\002\001\006\060\017\006\003 +\125\035\023\001\001\377\004\005\060\003\001\001\377\060\015\006 +\011\052\206\110\206\367\015\001\001\005\005\000\003\202\001\001 +\000\240\241\070\026\146\056\247\126\037\041\234\006\372\035\355 +\271\042\305\070\046\330\116\117\354\243\177\171\336\106\041\241 +\207\167\217\007\010\232\262\244\305\257\017\062\230\013\174\146 +\051\266\233\175\045\122\111\103\253\114\056\053\156\172\160\257 +\026\016\343\002\154\373\102\346\030\235\105\330\125\310\350\073 +\335\347\341\364\056\013\034\064\134\154\130\112\373\214\210\120 +\137\225\034\277\355\253\042\265\145\263\205\272\236\017\270\255 +\345\172\033\212\120\072\035\275\015\274\173\124\120\013\271\102 +\257\125\240\030\201\255\145\231\357\276\344\234\277\304\205\253 +\101\262\124\157\334\045\315\355\170\342\216\014\215\011\111\335 +\143\173\132\151\226\002\041\250\275\122\131\351\175\065\313\310 +\122\312\177\201\376\331\153\323\367\021\355\045\337\370\347\371 +\244\372\162\227\204\123\015\245\320\062\030\121\166\131\024\154 +\017\353\354\137\200\214\165\103\203\303\205\230\377\114\236\055 +\015\344\167\203\223\116\265\226\007\213\050\023\233\214\031\215 +\101\047\111\100\356\336\346\043\104\071\334\241\042\326\272\003 +\362 +END + +# Trust for Certificate "SecureSign RootCA11" +CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "SecureSign RootCA11" +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\073\304\237\110\370\363\163\240\234\036\275\370\133\261\303\145 +\307\330\021\263 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\267\122\164\342\222\264\200\223\362\165\344\314\327\362\352\046 +END +CKA_ISSUER MULTILINE_OCTAL +\060\130\061\013\060\011\006\003\125\004\006\023\002\112\120\061 +\053\060\051\006\003\125\004\012\023\042\112\141\160\141\156\040 +\103\145\162\164\151\146\151\143\141\164\151\157\156\040\123\145 +\162\166\151\143\145\163\054\040\111\156\143\056\061\034\060\032 +\006\003\125\004\003\023\023\123\145\143\165\162\145\123\151\147 +\156\040\122\157\157\164\103\101\061\061 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\001\001 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_TRUST_UNKNOWN +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_TRUST_UNKNOWN +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "ACEDICOM Root" +# +CKA_CLASS CK_OBJECT_CLASS CKO_CERTIFICATE +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "ACEDICOM Root" +CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509 +CKA_SUBJECT MULTILINE_OCTAL +\060\104\061\026\060\024\006\003\125\004\003\014\015\101\103\105 +\104\111\103\117\115\040\122\157\157\164\061\014\060\012\006\003 +\125\004\013\014\003\120\113\111\061\017\060\015\006\003\125\004 +\012\014\006\105\104\111\103\117\115\061\013\060\011\006\003\125 +\004\006\023\002\105\123 +END +CKA_ID UTF8 "0" +CKA_ISSUER MULTILINE_OCTAL +\060\104\061\026\060\024\006\003\125\004\003\014\015\101\103\105 +\104\111\103\117\115\040\122\157\157\164\061\014\060\012\006\003 +\125\004\013\014\003\120\113\111\061\017\060\015\006\003\125\004 +\012\014\006\105\104\111\103\117\115\061\013\060\011\006\003\125 +\004\006\023\002\105\123 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\010\141\215\307\206\073\001\202\005 +END +CKA_VALUE MULTILINE_OCTAL +\060\202\005\265\060\202\003\235\240\003\002\001\002\002\010\141 +\215\307\206\073\001\202\005\060\015\006\011\052\206\110\206\367 +\015\001\001\005\005\000\060\104\061\026\060\024\006\003\125\004 +\003\014\015\101\103\105\104\111\103\117\115\040\122\157\157\164 +\061\014\060\012\006\003\125\004\013\014\003\120\113\111\061\017 +\060\015\006\003\125\004\012\014\006\105\104\111\103\117\115\061 +\013\060\011\006\003\125\004\006\023\002\105\123\060\036\027\015 +\060\070\060\064\061\070\061\066\062\064\062\062\132\027\015\062 +\070\060\064\061\063\061\066\062\064\062\062\132\060\104\061\026 +\060\024\006\003\125\004\003\014\015\101\103\105\104\111\103\117 +\115\040\122\157\157\164\061\014\060\012\006\003\125\004\013\014 +\003\120\113\111\061\017\060\015\006\003\125\004\012\014\006\105 +\104\111\103\117\115\061\013\060\011\006\003\125\004\006\023\002 +\105\123\060\202\002\042\060\015\006\011\052\206\110\206\367\015 +\001\001\001\005\000\003\202\002\017\000\060\202\002\012\002\202 +\002\001\000\377\222\225\341\150\006\166\264\054\310\130\110\312 +\375\200\124\051\125\143\044\377\220\145\233\020\165\173\303\152 +\333\142\002\001\362\030\206\265\174\132\070\261\344\130\271\373 +\323\330\055\237\275\062\067\277\054\025\155\276\265\364\041\322 +\023\221\331\007\255\001\005\326\363\275\167\316\137\102\201\012 +\371\152\343\203\000\250\053\056\125\023\143\201\312\107\034\173 +\134\026\127\172\033\203\140\004\072\076\145\303\315\001\336\336 +\244\326\014\272\216\336\331\004\356\027\126\042\233\217\143\375 +\115\026\013\267\173\167\214\371\045\265\321\155\231\022\056\117 +\032\270\346\352\004\222\256\075\021\271\121\102\075\207\260\061 +\205\257\171\132\234\376\347\116\136\222\117\103\374\253\072\255 +\245\022\046\146\271\342\014\327\230\316\324\130\245\225\100\012 +\267\104\235\023\164\053\302\245\353\042\025\230\020\330\213\305 +\004\237\035\217\140\345\006\033\233\317\271\171\240\075\242\043 +\077\102\077\153\372\034\003\173\060\215\316\154\300\277\346\033 +\137\277\147\270\204\031\325\025\357\173\313\220\066\061\142\311 +\274\002\253\106\137\233\376\032\150\224\064\075\220\216\255\366 +\344\035\011\177\112\210\070\077\276\147\375\064\226\365\035\274 +\060\164\313\070\356\325\154\253\324\374\364\000\267\000\133\205 +\062\026\166\063\351\330\243\231\235\005\000\252\026\346\363\201 +\175\157\175\252\206\155\255\025\164\323\304\242\161\252\364\024 +\175\347\062\270\037\274\325\361\116\275\157\027\002\071\327\016 +\225\102\072\307\000\076\351\046\143\021\352\013\321\112\377\030 +\235\262\327\173\057\072\331\226\373\350\036\222\256\023\125\310 +\331\047\366\334\110\033\260\044\301\205\343\167\235\232\244\363 +\014\021\035\015\310\264\024\356\265\202\127\011\277\040\130\177 +\057\042\043\330\160\313\171\154\311\113\362\251\052\310\374\207 +\053\327\032\120\370\047\350\057\103\343\072\275\330\127\161\375 +\316\246\122\133\371\335\115\355\345\366\157\211\355\273\223\234 +\166\041\165\360\222\114\051\367\057\234\001\056\376\120\106\236 +\144\014\024\263\007\133\305\302\163\154\361\007\134\105\044\024 +\065\256\203\361\152\115\211\172\372\263\330\055\146\360\066\207 +\365\053\123\002\003\001\000\001\243\201\252\060\201\247\060\017 +\006\003\125\035\023\001\001\377\004\005\060\003\001\001\377\060 +\037\006\003\125\035\043\004\030\060\026\200\024\246\263\341\053 +\053\111\266\327\163\241\252\224\365\001\347\163\145\114\254\120 +\060\016\006\003\125\035\017\001\001\377\004\004\003\002\001\206 +\060\035\006\003\125\035\016\004\026\004\024\246\263\341\053\053 +\111\266\327\163\241\252\224\365\001\347\163\145\114\254\120\060 +\104\006\003\125\035\040\004\075\060\073\060\071\006\004\125\035 +\040\000\060\061\060\057\006\010\053\006\001\005\005\007\002\001 +\026\043\150\164\164\160\072\057\057\141\143\145\144\151\143\157 +\155\056\145\144\151\143\157\155\147\162\157\165\160\056\143\157 +\155\057\144\157\143\060\015\006\011\052\206\110\206\367\015\001 +\001\005\005\000\003\202\002\001\000\316\054\013\122\121\142\046 +\175\014\047\203\217\305\366\332\240\150\173\117\222\136\352\244 +\163\062\021\123\104\262\104\313\235\354\017\171\102\263\020\246 +\307\015\235\313\266\372\077\072\174\352\277\210\123\033\074\367 +\202\372\005\065\063\341\065\250\127\300\347\375\215\117\077\223 +\062\117\170\146\003\167\007\130\351\225\310\176\076\320\171\000 +\214\362\033\121\063\233\274\224\351\072\173\156\122\055\062\236 +\043\244\105\373\266\056\023\260\213\030\261\335\316\325\035\247 +\102\177\125\276\373\133\273\107\324\374\044\315\004\256\226\005 +\025\326\254\316\060\363\312\013\305\272\342\042\340\246\255\042 +\344\002\356\164\021\177\114\377\170\035\065\332\346\002\064\353 +\030\022\141\167\006\011\026\143\352\030\255\242\207\037\362\307 +\200\011\011\165\116\020\250\217\075\206\270\165\021\300\044\142 +\212\226\173\112\105\351\354\131\305\276\153\203\346\341\350\254 +\265\060\036\376\005\007\200\371\341\043\015\120\217\005\230\377 +\054\137\350\073\266\255\317\201\265\041\207\312\010\052\043\047 +\060\040\053\317\355\224\133\254\262\172\322\307\050\241\212\013 +\233\115\112\054\155\205\077\011\162\074\147\342\331\334\007\272 +\353\145\173\132\001\143\326\220\133\117\027\146\075\177\013\031 +\243\223\143\020\122\052\237\024\026\130\342\334\245\364\241\026 +\213\016\221\213\201\312\233\131\372\330\153\221\007\145\125\137 +\122\037\257\072\373\220\335\151\245\133\234\155\016\054\266\372 +\316\254\245\174\062\112\147\100\334\060\064\043\335\327\004\043 +\146\360\374\125\200\247\373\146\031\202\065\147\142\160\071\136 +\157\307\352\220\100\104\010\036\270\262\326\333\356\131\247\015 +\030\171\064\274\124\030\136\123\312\064\121\355\105\012\346\216 +\307\202\066\076\247\070\143\251\060\054\027\020\140\222\237\125 +\207\022\131\020\302\017\147\151\021\314\116\036\176\112\232\255 +\257\100\250\165\254\126\220\164\270\240\234\245\171\157\334\351 +\032\310\151\005\351\272\372\003\263\174\344\340\116\302\316\235 +\350\266\106\015\156\176\127\072\147\224\302\313\037\234\167\112 +\147\116\151\206\103\223\070\373\266\333\117\203\221\324\140\176 +\113\076\053\070\007\125\230\136\244 +END + +# Trust for Certificate "ACEDICOM Root" +CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "ACEDICOM Root" +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\340\264\062\056\262\366\245\150\266\124\123\204\110\030\112\120 +\066\207\103\204 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\102\201\240\342\034\343\125\020\336\125\211\102\145\226\042\346 +END +CKA_ISSUER MULTILINE_OCTAL +\060\104\061\026\060\024\006\003\125\004\003\014\015\101\103\105 +\104\111\103\117\115\040\122\157\157\164\061\014\060\012\006\003 +\125\004\013\014\003\120\113\111\061\017\060\015\006\003\125\004 +\012\014\006\105\104\111\103\117\115\061\013\060\011\006\003\125 +\004\006\023\002\105\123 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\010\141\215\307\206\073\001\202\005 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + + +# +# Certificate "Verisign Class 1 Public Primary Certification Authority" +# +CKA_CLASS CK_OBJECT_CLASS CKO_CERTIFICATE +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "Verisign Class 1 Public Primary Certification Authority" +CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509 +CKA_SUBJECT MULTILINE_OCTAL +\060\137\061\013\060\011\006\003\125\004\006\023\002\125\123\061 +\027\060\025\006\003\125\004\012\023\016\126\145\162\151\123\151 +\147\156\054\040\111\156\143\056\061\067\060\065\006\003\125\004 +\013\023\056\103\154\141\163\163\040\061\040\120\165\142\154\151 +\143\040\120\162\151\155\141\162\171\040\103\145\162\164\151\146 +\151\143\141\164\151\157\156\040\101\165\164\150\157\162\151\164 +\171 +END +CKA_ID UTF8 "0" +CKA_ISSUER MULTILINE_OCTAL +\060\137\061\013\060\011\006\003\125\004\006\023\002\125\123\061 +\027\060\025\006\003\125\004\012\023\016\126\145\162\151\123\151 +\147\156\054\040\111\156\143\056\061\067\060\065\006\003\125\004 +\013\023\056\103\154\141\163\163\040\061\040\120\165\142\154\151 +\143\040\120\162\151\155\141\162\171\040\103\145\162\164\151\146 +\151\143\141\164\151\157\156\040\101\165\164\150\157\162\151\164 +\171 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\020\077\151\036\201\234\360\232\112\363\163\377\271\110\242 +\344\335 +END +CKA_VALUE MULTILINE_OCTAL +\060\202\002\074\060\202\001\245\002\020\077\151\036\201\234\360 +\232\112\363\163\377\271\110\242\344\335\060\015\006\011\052\206 +\110\206\367\015\001\001\005\005\000\060\137\061\013\060\011\006 +\003\125\004\006\023\002\125\123\061\027\060\025\006\003\125\004 +\012\023\016\126\145\162\151\123\151\147\156\054\040\111\156\143 +\056\061\067\060\065\006\003\125\004\013\023\056\103\154\141\163 +\163\040\061\040\120\165\142\154\151\143\040\120\162\151\155\141 +\162\171\040\103\145\162\164\151\146\151\143\141\164\151\157\156 +\040\101\165\164\150\157\162\151\164\171\060\036\027\015\071\066 +\060\061\062\071\060\060\060\060\060\060\132\027\015\062\070\060 +\070\060\062\062\063\065\071\065\071\132\060\137\061\013\060\011 +\006\003\125\004\006\023\002\125\123\061\027\060\025\006\003\125 +\004\012\023\016\126\145\162\151\123\151\147\156\054\040\111\156 +\143\056\061\067\060\065\006\003\125\004\013\023\056\103\154\141 +\163\163\040\061\040\120\165\142\154\151\143\040\120\162\151\155 +\141\162\171\040\103\145\162\164\151\146\151\143\141\164\151\157 +\156\040\101\165\164\150\157\162\151\164\171\060\201\237\060\015 +\006\011\052\206\110\206\367\015\001\001\001\005\000\003\201\215 +\000\060\201\211\002\201\201\000\345\031\277\155\243\126\141\055 +\231\110\161\366\147\336\271\215\353\267\236\206\200\012\221\016 +\372\070\045\257\106\210\202\345\163\250\240\233\044\135\015\037 +\314\145\156\014\260\320\126\204\030\207\232\006\233\020\241\163 +\337\264\130\071\153\156\301\366\025\325\250\250\077\252\022\006 +\215\061\254\177\260\064\327\217\064\147\210\011\315\024\021\342 +\116\105\126\151\037\170\002\200\332\334\107\221\051\273\066\311 +\143\134\305\340\327\055\207\173\241\267\062\260\173\060\272\052 +\057\061\252\356\243\147\332\333\002\003\001\000\001\060\015\006 +\011\052\206\110\206\367\015\001\001\005\005\000\003\201\201\000 +\130\025\051\071\074\167\243\332\134\045\003\174\140\372\356\011 +\231\074\047\020\160\310\014\011\346\263\207\317\012\342\030\226 +\065\142\314\277\233\047\171\211\137\311\304\011\364\316\265\035 +\337\052\275\345\333\206\234\150\045\345\060\174\266\211\025\376 +\147\321\255\341\120\254\074\174\142\113\217\272\204\327\022\025 +\033\037\312\135\017\301\122\224\052\021\231\332\173\317\014\066 +\023\325\065\334\020\031\131\352\224\301\000\277\165\217\331\372 +\375\166\004\333\142\273\220\152\003\331\106\065\331\370\174\133 +END + +# Trust for Certificate "Verisign Class 1 Public Primary Certification Authority" +CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "Verisign Class 1 Public Primary Certification Authority" +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\316\152\144\243\011\344\057\273\331\205\034\105\076\144\011\352 +\350\175\140\361 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\206\254\336\053\305\155\303\331\214\050\210\323\215\026\023\036 +END +CKA_ISSUER MULTILINE_OCTAL +\060\137\061\013\060\011\006\003\125\004\006\023\002\125\123\061 +\027\060\025\006\003\125\004\012\023\016\126\145\162\151\123\151 +\147\156\054\040\111\156\143\056\061\067\060\065\006\003\125\004 +\013\023\056\103\154\141\163\163\040\061\040\120\165\142\154\151 +\143\040\120\162\151\155\141\162\171\040\103\145\162\164\151\146 +\151\143\141\164\151\157\156\040\101\165\164\150\157\162\151\164 +\171 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\020\077\151\036\201\234\360\232\112\363\163\377\271\110\242 +\344\335 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_TRUST_UNKNOWN +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_TRUST_UNKNOWN +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "Verisign Class 3 Public Primary Certification Authority" +# +CKA_CLASS CK_OBJECT_CLASS CKO_CERTIFICATE +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "Verisign Class 3 Public Primary Certification Authority" +CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509 +CKA_SUBJECT MULTILINE_OCTAL +\060\137\061\013\060\011\006\003\125\004\006\023\002\125\123\061 +\027\060\025\006\003\125\004\012\023\016\126\145\162\151\123\151 +\147\156\054\040\111\156\143\056\061\067\060\065\006\003\125\004 +\013\023\056\103\154\141\163\163\040\063\040\120\165\142\154\151 +\143\040\120\162\151\155\141\162\171\040\103\145\162\164\151\146 +\151\143\141\164\151\157\156\040\101\165\164\150\157\162\151\164 +\171 +END +CKA_ID UTF8 "0" +CKA_ISSUER MULTILINE_OCTAL +\060\137\061\013\060\011\006\003\125\004\006\023\002\125\123\061 +\027\060\025\006\003\125\004\012\023\016\126\145\162\151\123\151 +\147\156\054\040\111\156\143\056\061\067\060\065\006\003\125\004 +\013\023\056\103\154\141\163\163\040\063\040\120\165\142\154\151 +\143\040\120\162\151\155\141\162\171\040\103\145\162\164\151\146 +\151\143\141\164\151\157\156\040\101\165\164\150\157\162\151\164 +\171 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\020\074\221\061\313\037\366\320\033\016\232\270\320\104\277 +\022\276 +END +CKA_VALUE MULTILINE_OCTAL +\060\202\002\074\060\202\001\245\002\020\074\221\061\313\037\366 +\320\033\016\232\270\320\104\277\022\276\060\015\006\011\052\206 +\110\206\367\015\001\001\005\005\000\060\137\061\013\060\011\006 +\003\125\004\006\023\002\125\123\061\027\060\025\006\003\125\004 +\012\023\016\126\145\162\151\123\151\147\156\054\040\111\156\143 +\056\061\067\060\065\006\003\125\004\013\023\056\103\154\141\163 +\163\040\063\040\120\165\142\154\151\143\040\120\162\151\155\141 +\162\171\040\103\145\162\164\151\146\151\143\141\164\151\157\156 +\040\101\165\164\150\157\162\151\164\171\060\036\027\015\071\066 +\060\061\062\071\060\060\060\060\060\060\132\027\015\062\070\060 +\070\060\062\062\063\065\071\065\071\132\060\137\061\013\060\011 +\006\003\125\004\006\023\002\125\123\061\027\060\025\006\003\125 +\004\012\023\016\126\145\162\151\123\151\147\156\054\040\111\156 +\143\056\061\067\060\065\006\003\125\004\013\023\056\103\154\141 +\163\163\040\063\040\120\165\142\154\151\143\040\120\162\151\155 +\141\162\171\040\103\145\162\164\151\146\151\143\141\164\151\157 +\156\040\101\165\164\150\157\162\151\164\171\060\201\237\060\015 +\006\011\052\206\110\206\367\015\001\001\001\005\000\003\201\215 +\000\060\201\211\002\201\201\000\311\134\131\236\362\033\212\001 +\024\264\020\337\004\100\333\343\127\257\152\105\100\217\204\014 +\013\321\063\331\331\021\317\356\002\130\037\045\367\052\250\104 +\005\252\354\003\037\170\177\236\223\271\232\000\252\043\175\326 +\254\205\242\143\105\307\162\047\314\364\114\306\165\161\322\071 +\357\117\102\360\165\337\012\220\306\216\040\157\230\017\370\254 +\043\137\160\051\066\244\311\206\347\261\232\040\313\123\245\205 +\347\075\276\175\232\376\044\105\063\334\166\025\355\017\242\161 +\144\114\145\056\201\150\105\247\002\003\001\000\001\060\015\006 +\011\052\206\110\206\367\015\001\001\005\005\000\003\201\201\000 +\020\162\122\251\005\024\031\062\010\101\360\305\153\012\314\176 +\017\041\031\315\344\147\334\137\251\033\346\312\350\163\235\042 +\330\230\156\163\003\141\221\305\174\260\105\100\156\104\235\215 +\260\261\226\164\141\055\015\251\105\322\244\222\052\326\232\165 +\227\156\077\123\375\105\231\140\035\250\053\114\371\136\247\011 +\330\165\060\327\322\145\140\075\147\326\110\125\165\151\077\221 +\365\110\013\107\151\042\151\202\226\276\311\310\070\206\112\172 +\054\163\031\110\151\116\153\174\145\277\017\374\160\316\210\220 +END + +# Trust for Certificate "Verisign Class 3 Public Primary Certification Authority" +CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "Verisign Class 3 Public Primary Certification Authority" +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\241\333\143\223\221\157\027\344\030\125\011\100\004\025\307\002 +\100\260\256\153 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\357\132\361\063\357\361\315\273\121\002\356\022\024\113\226\304 +END +CKA_ISSUER MULTILINE_OCTAL +\060\137\061\013\060\011\006\003\125\004\006\023\002\125\123\061 +\027\060\025\006\003\125\004\012\023\016\126\145\162\151\123\151 +\147\156\054\040\111\156\143\056\061\067\060\065\006\003\125\004 +\013\023\056\103\154\141\163\163\040\063\040\120\165\142\154\151 +\143\040\120\162\151\155\141\162\171\040\103\145\162\164\151\146 +\151\143\141\164\151\157\156\040\101\165\164\150\157\162\151\164 +\171 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\020\074\221\061\313\037\366\320\033\016\232\270\320\104\277 +\022\276 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "Microsec e-Szigno Root CA 2009" +# +CKA_CLASS CK_OBJECT_CLASS CKO_CERTIFICATE +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "Microsec e-Szigno Root CA 2009" +CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509 +CKA_SUBJECT MULTILINE_OCTAL +\060\201\202\061\013\060\011\006\003\125\004\006\023\002\110\125 +\061\021\060\017\006\003\125\004\007\014\010\102\165\144\141\160 +\145\163\164\061\026\060\024\006\003\125\004\012\014\015\115\151 +\143\162\157\163\145\143\040\114\164\144\056\061\047\060\045\006 +\003\125\004\003\014\036\115\151\143\162\157\163\145\143\040\145 +\055\123\172\151\147\156\157\040\122\157\157\164\040\103\101\040 +\062\060\060\071\061\037\060\035\006\011\052\206\110\206\367\015 +\001\011\001\026\020\151\156\146\157\100\145\055\163\172\151\147 +\156\157\056\150\165 +END +CKA_ID UTF8 "0" +CKA_ISSUER MULTILINE_OCTAL +\060\201\202\061\013\060\011\006\003\125\004\006\023\002\110\125 +\061\021\060\017\006\003\125\004\007\014\010\102\165\144\141\160 +\145\163\164\061\026\060\024\006\003\125\004\012\014\015\115\151 +\143\162\157\163\145\143\040\114\164\144\056\061\047\060\045\006 +\003\125\004\003\014\036\115\151\143\162\157\163\145\143\040\145 +\055\123\172\151\147\156\157\040\122\157\157\164\040\103\101\040 +\062\060\060\071\061\037\060\035\006\011\052\206\110\206\367\015 +\001\011\001\026\020\151\156\146\157\100\145\055\163\172\151\147 +\156\157\056\150\165 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\011\000\302\176\103\004\116\107\077\031 +END +CKA_VALUE MULTILINE_OCTAL +\060\202\004\012\060\202\002\362\240\003\002\001\002\002\011\000 +\302\176\103\004\116\107\077\031\060\015\006\011\052\206\110\206 +\367\015\001\001\013\005\000\060\201\202\061\013\060\011\006\003 +\125\004\006\023\002\110\125\061\021\060\017\006\003\125\004\007 +\014\010\102\165\144\141\160\145\163\164\061\026\060\024\006\003 +\125\004\012\014\015\115\151\143\162\157\163\145\143\040\114\164 +\144\056\061\047\060\045\006\003\125\004\003\014\036\115\151\143 +\162\157\163\145\143\040\145\055\123\172\151\147\156\157\040\122 +\157\157\164\040\103\101\040\062\060\060\071\061\037\060\035\006 +\011\052\206\110\206\367\015\001\011\001\026\020\151\156\146\157 +\100\145\055\163\172\151\147\156\157\056\150\165\060\036\027\015 +\060\071\060\066\061\066\061\061\063\060\061\070\132\027\015\062 +\071\061\062\063\060\061\061\063\060\061\070\132\060\201\202\061 +\013\060\011\006\003\125\004\006\023\002\110\125\061\021\060\017 +\006\003\125\004\007\014\010\102\165\144\141\160\145\163\164\061 +\026\060\024\006\003\125\004\012\014\015\115\151\143\162\157\163 +\145\143\040\114\164\144\056\061\047\060\045\006\003\125\004\003 +\014\036\115\151\143\162\157\163\145\143\040\145\055\123\172\151 +\147\156\157\040\122\157\157\164\040\103\101\040\062\060\060\071 +\061\037\060\035\006\011\052\206\110\206\367\015\001\011\001\026 +\020\151\156\146\157\100\145\055\163\172\151\147\156\157\056\150 +\165\060\202\001\042\060\015\006\011\052\206\110\206\367\015\001 +\001\001\005\000\003\202\001\017\000\060\202\001\012\002\202\001 +\001\000\351\370\217\363\143\255\332\206\330\247\340\102\373\317 +\221\336\246\046\370\231\245\143\160\255\233\256\312\063\100\175 +\155\226\156\241\016\104\356\341\023\235\224\102\122\232\275\165 +\205\164\054\250\016\035\223\266\030\267\214\054\250\317\373\134 +\161\271\332\354\376\350\176\217\344\057\035\262\250\165\207\330 +\267\241\345\073\317\231\112\106\320\203\031\175\300\241\022\034 +\225\155\112\364\330\307\245\115\063\056\205\071\100\165\176\024 +\174\200\022\230\120\307\101\147\270\240\200\141\124\246\154\116 +\037\340\235\016\007\351\311\272\063\347\376\300\125\050\054\002 +\200\247\031\365\236\334\125\123\003\227\173\007\110\377\231\373 +\067\212\044\304\131\314\120\020\143\216\252\251\032\260\204\032 +\206\371\137\273\261\120\156\244\321\012\314\325\161\176\037\247 +\033\174\365\123\156\042\137\313\053\346\324\174\135\256\326\302 +\306\114\345\005\001\331\355\127\374\301\043\171\374\372\310\044 +\203\225\363\265\152\121\001\320\167\326\351\022\241\371\032\203 +\373\202\033\271\260\227\364\166\006\063\103\111\240\377\013\265 +\372\265\002\003\001\000\001\243\201\200\060\176\060\017\006\003 +\125\035\023\001\001\377\004\005\060\003\001\001\377\060\016\006 +\003\125\035\017\001\001\377\004\004\003\002\001\006\060\035\006 +\003\125\035\016\004\026\004\024\313\017\306\337\102\103\314\075 +\313\265\110\043\241\032\172\246\052\273\064\150\060\037\006\003 +\125\035\043\004\030\060\026\200\024\313\017\306\337\102\103\314 +\075\313\265\110\043\241\032\172\246\052\273\064\150\060\033\006 +\003\125\035\021\004\024\060\022\201\020\151\156\146\157\100\145 +\055\163\172\151\147\156\157\056\150\165\060\015\006\011\052\206 +\110\206\367\015\001\001\013\005\000\003\202\001\001\000\311\321 +\016\136\056\325\314\263\174\076\313\374\075\377\015\050\225\223 +\004\310\277\332\315\171\270\103\220\360\244\276\357\362\357\041 +\230\274\324\324\135\006\366\356\102\354\060\154\240\252\251\312 +\361\257\212\372\077\013\163\152\076\352\056\100\176\037\256\124 +\141\171\353\056\010\067\327\043\363\214\237\276\035\261\341\244 +\165\333\240\342\124\024\261\272\034\051\244\030\366\022\272\242 +\024\024\343\061\065\310\100\377\267\340\005\166\127\301\034\131 +\362\370\277\344\355\045\142\134\204\360\176\176\037\263\276\371 +\267\041\021\314\003\001\126\160\247\020\222\036\033\064\201\036 +\255\234\032\303\004\074\355\002\141\326\036\006\363\137\072\207 +\362\053\361\105\207\345\075\254\321\307\127\204\275\153\256\334 +\330\371\266\033\142\160\013\075\066\311\102\362\062\327\172\141 +\346\322\333\075\317\310\251\311\233\334\333\130\104\327\157\070 +\257\177\170\323\243\255\032\165\272\034\301\066\174\217\036\155 +\034\303\165\106\256\065\005\246\366\134\075\041\356\126\360\311 +\202\042\055\172\124\253\160\303\175\042\145\202\160\226 +END + +# Trust for Certificate "Microsec e-Szigno Root CA 2009" +CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "Microsec e-Szigno Root CA 2009" +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\211\337\164\376\134\364\017\112\200\371\343\067\175\124\332\221 +\341\001\061\216 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\370\111\364\003\274\104\055\203\276\110\151\175\051\144\374\261 +END +CKA_ISSUER MULTILINE_OCTAL +\060\201\202\061\013\060\011\006\003\125\004\006\023\002\110\125 +\061\021\060\017\006\003\125\004\007\014\010\102\165\144\141\160 +\145\163\164\061\026\060\024\006\003\125\004\012\014\015\115\151 +\143\162\157\163\145\143\040\114\164\144\056\061\047\060\045\006 +\003\125\004\003\014\036\115\151\143\162\157\163\145\143\040\145 +\055\123\172\151\147\156\157\040\122\157\157\164\040\103\101\040 +\062\060\060\071\061\037\060\035\006\011\052\206\110\206\367\015 +\001\011\001\026\020\151\156\146\157\100\145\055\163\172\151\147 +\156\157\056\150\165 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\011\000\302\176\103\004\116\107\077\031 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "E-Guven Kok Elektronik Sertifika Hizmet Saglayicisi" +# +CKA_CLASS CK_OBJECT_CLASS CKO_CERTIFICATE +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "E-Guven Kok Elektronik Sertifika Hizmet Saglayicisi" +CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509 +CKA_SUBJECT MULTILINE_OCTAL +\060\165\061\013\060\011\006\003\125\004\006\023\002\124\122\061 +\050\060\046\006\003\125\004\012\023\037\105\154\145\153\164\162 +\157\156\151\153\040\102\151\154\147\151\040\107\165\166\145\156 +\154\151\147\151\040\101\056\123\056\061\074\060\072\006\003\125 +\004\003\023\063\145\055\107\165\166\145\156\040\113\157\153\040 +\105\154\145\153\164\162\157\156\151\153\040\123\145\162\164\151 +\146\151\153\141\040\110\151\172\155\145\164\040\123\141\147\154 +\141\171\151\143\151\163\151 +END +CKA_ID UTF8 "0" +CKA_ISSUER MULTILINE_OCTAL +\060\165\061\013\060\011\006\003\125\004\006\023\002\124\122\061 +\050\060\046\006\003\125\004\012\023\037\105\154\145\153\164\162 +\157\156\151\153\040\102\151\154\147\151\040\107\165\166\145\156 +\154\151\147\151\040\101\056\123\056\061\074\060\072\006\003\125 +\004\003\023\063\145\055\107\165\166\145\156\040\113\157\153\040 +\105\154\145\153\164\162\157\156\151\153\040\123\145\162\164\151 +\146\151\153\141\040\110\151\172\155\145\164\040\123\141\147\154 +\141\171\151\143\151\163\151 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\020\104\231\215\074\300\003\047\275\234\166\225\271\352\333 +\254\265 +END +CKA_VALUE MULTILINE_OCTAL +\060\202\003\266\060\202\002\236\240\003\002\001\002\002\020\104 +\231\215\074\300\003\047\275\234\166\225\271\352\333\254\265\060 +\015\006\011\052\206\110\206\367\015\001\001\005\005\000\060\165 +\061\013\060\011\006\003\125\004\006\023\002\124\122\061\050\060 +\046\006\003\125\004\012\023\037\105\154\145\153\164\162\157\156 +\151\153\040\102\151\154\147\151\040\107\165\166\145\156\154\151 +\147\151\040\101\056\123\056\061\074\060\072\006\003\125\004\003 +\023\063\145\055\107\165\166\145\156\040\113\157\153\040\105\154 +\145\153\164\162\157\156\151\153\040\123\145\162\164\151\146\151 +\153\141\040\110\151\172\155\145\164\040\123\141\147\154\141\171 +\151\143\151\163\151\060\036\027\015\060\067\060\061\060\064\061 +\061\063\062\064\070\132\027\015\061\067\060\061\060\064\061\061 +\063\062\064\070\132\060\165\061\013\060\011\006\003\125\004\006 +\023\002\124\122\061\050\060\046\006\003\125\004\012\023\037\105 +\154\145\153\164\162\157\156\151\153\040\102\151\154\147\151\040 +\107\165\166\145\156\154\151\147\151\040\101\056\123\056\061\074 +\060\072\006\003\125\004\003\023\063\145\055\107\165\166\145\156 +\040\113\157\153\040\105\154\145\153\164\162\157\156\151\153\040 +\123\145\162\164\151\146\151\153\141\040\110\151\172\155\145\164 +\040\123\141\147\154\141\171\151\143\151\163\151\060\202\001\042 +\060\015\006\011\052\206\110\206\367\015\001\001\001\005\000\003 +\202\001\017\000\060\202\001\012\002\202\001\001\000\303\022\040 +\236\260\136\000\145\215\116\106\273\200\134\351\054\006\227\325 +\363\162\311\160\271\347\113\145\200\301\113\276\176\074\327\124 +\061\224\336\325\022\272\123\026\002\352\130\143\357\133\330\363 +\355\052\032\252\161\110\243\334\020\055\137\137\353\134\113\234 +\226\010\102\045\050\021\314\212\132\142\001\120\325\353\011\123 +\057\370\303\217\376\263\374\375\235\242\343\137\175\276\355\013 +\340\140\353\151\354\063\355\330\215\373\022\111\203\000\311\213 +\227\214\073\163\052\062\263\022\367\271\115\362\364\115\155\307 +\346\326\046\067\010\362\331\375\153\134\243\345\110\134\130\274 +\102\276\003\132\201\272\034\065\014\000\323\365\043\176\161\060 +\010\046\070\334\045\021\107\055\363\272\043\020\245\277\274\002 +\367\103\136\307\376\260\067\120\231\173\017\223\316\346\103\054 +\303\176\015\362\034\103\146\140\313\141\061\107\207\243\117\256 +\275\126\154\114\274\274\370\005\312\144\364\351\064\241\054\265 +\163\341\302\076\350\310\311\064\045\010\134\363\355\246\307\224 +\237\255\210\103\045\327\341\071\140\376\254\071\131\002\003\001 +\000\001\243\102\060\100\060\016\006\003\125\035\017\001\001\377 +\004\004\003\002\001\006\060\017\006\003\125\035\023\001\001\377 +\004\005\060\003\001\001\377\060\035\006\003\125\035\016\004\026 +\004\024\237\356\104\263\224\325\372\221\117\056\331\125\232\004 +\126\333\055\304\333\245\060\015\006\011\052\206\110\206\367\015 +\001\001\005\005\000\003\202\001\001\000\177\137\271\123\133\143 +\075\165\062\347\372\304\164\032\313\106\337\106\151\034\122\317 +\252\117\302\150\353\377\200\251\121\350\075\142\167\211\075\012 +\165\071\361\156\135\027\207\157\150\005\301\224\154\331\135\337 +\332\262\131\313\245\020\212\312\314\071\315\237\353\116\336\122 +\377\014\360\364\222\251\362\154\123\253\233\322\107\240\037\164 +\367\233\232\361\057\025\237\172\144\060\030\007\074\052\017\147 +\312\374\017\211\141\235\145\245\074\345\274\023\133\010\333\343 +\377\355\273\006\273\152\006\261\172\117\145\306\202\375\036\234 +\213\265\015\356\110\273\270\275\252\010\264\373\243\174\313\237 +\315\220\166\134\206\226\170\127\012\146\371\130\032\235\375\227 +\051\140\336\021\246\220\034\031\034\356\001\226\042\064\064\056 +\221\371\267\304\047\321\173\346\277\373\200\104\132\026\345\353 +\340\324\012\070\274\344\221\343\325\353\134\301\254\337\033\152 +\174\236\345\165\322\266\227\207\333\314\207\053\103\072\204\010 +\257\253\074\333\367\074\146\061\206\260\235\123\171\355\370\043 +\336\102\343\055\202\361\017\345\372\227 +END + +# Trust for Certificate "E-Guven Kok Elektronik Sertifika Hizmet Saglayicisi" +CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "E-Guven Kok Elektronik Sertifika Hizmet Saglayicisi" +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\335\341\322\251\001\200\056\035\207\136\204\263\200\176\113\261 +\375\231\101\064 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\075\101\051\313\036\252\021\164\315\135\260\142\257\260\103\133 +END +CKA_ISSUER MULTILINE_OCTAL +\060\165\061\013\060\011\006\003\125\004\006\023\002\124\122\061 +\050\060\046\006\003\125\004\012\023\037\105\154\145\153\164\162 +\157\156\151\153\040\102\151\154\147\151\040\107\165\166\145\156 +\154\151\147\151\040\101\056\123\056\061\074\060\072\006\003\125 +\004\003\023\063\145\055\107\165\166\145\156\040\113\157\153\040 +\105\154\145\153\164\162\157\156\151\153\040\123\145\162\164\151 +\146\151\153\141\040\110\151\172\155\145\164\040\123\141\147\154 +\141\171\151\143\151\163\151 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\020\104\231\215\074\300\003\047\275\234\166\225\271\352\333 +\254\265 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_TRUST_UNKNOWN +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "GlobalSign Root CA - R3" +# +CKA_CLASS CK_OBJECT_CLASS CKO_CERTIFICATE +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "GlobalSign Root CA - R3" +CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509 +CKA_SUBJECT MULTILINE_OCTAL +\060\114\061\040\060\036\006\003\125\004\013\023\027\107\154\157 +\142\141\154\123\151\147\156\040\122\157\157\164\040\103\101\040 +\055\040\122\063\061\023\060\021\006\003\125\004\012\023\012\107 +\154\157\142\141\154\123\151\147\156\061\023\060\021\006\003\125 +\004\003\023\012\107\154\157\142\141\154\123\151\147\156 +END +CKA_ID UTF8 "0" +CKA_ISSUER MULTILINE_OCTAL +\060\114\061\040\060\036\006\003\125\004\013\023\027\107\154\157 +\142\141\154\123\151\147\156\040\122\157\157\164\040\103\101\040 +\055\040\122\063\061\023\060\021\006\003\125\004\012\023\012\107 +\154\157\142\141\154\123\151\147\156\061\023\060\021\006\003\125 +\004\003\023\012\107\154\157\142\141\154\123\151\147\156 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\013\004\000\000\000\000\001\041\130\123\010\242 +END +CKA_VALUE MULTILINE_OCTAL +\060\202\003\137\060\202\002\107\240\003\002\001\002\002\013\004 +\000\000\000\000\001\041\130\123\010\242\060\015\006\011\052\206 +\110\206\367\015\001\001\013\005\000\060\114\061\040\060\036\006 +\003\125\004\013\023\027\107\154\157\142\141\154\123\151\147\156 +\040\122\157\157\164\040\103\101\040\055\040\122\063\061\023\060 +\021\006\003\125\004\012\023\012\107\154\157\142\141\154\123\151 +\147\156\061\023\060\021\006\003\125\004\003\023\012\107\154\157 +\142\141\154\123\151\147\156\060\036\027\015\060\071\060\063\061 +\070\061\060\060\060\060\060\132\027\015\062\071\060\063\061\070 +\061\060\060\060\060\060\132\060\114\061\040\060\036\006\003\125 +\004\013\023\027\107\154\157\142\141\154\123\151\147\156\040\122 +\157\157\164\040\103\101\040\055\040\122\063\061\023\060\021\006 +\003\125\004\012\023\012\107\154\157\142\141\154\123\151\147\156 +\061\023\060\021\006\003\125\004\003\023\012\107\154\157\142\141 +\154\123\151\147\156\060\202\001\042\060\015\006\011\052\206\110 +\206\367\015\001\001\001\005\000\003\202\001\017\000\060\202\001 +\012\002\202\001\001\000\314\045\166\220\171\006\170\042\026\365 +\300\203\266\204\312\050\236\375\005\166\021\305\255\210\162\374 +\106\002\103\307\262\212\235\004\137\044\313\056\113\341\140\202 +\106\341\122\253\014\201\107\160\154\335\144\321\353\365\054\243 +\017\202\075\014\053\256\227\327\266\024\206\020\171\273\073\023 +\200\167\214\010\341\111\322\152\142\057\037\136\372\226\150\337 +\211\047\225\070\237\006\327\076\311\313\046\131\015\163\336\260 +\310\351\046\016\203\025\306\357\133\213\322\004\140\312\111\246 +\050\366\151\073\366\313\310\050\221\345\235\212\141\127\067\254 +\164\024\334\164\340\072\356\162\057\056\234\373\320\273\277\365 +\075\000\341\006\063\350\202\053\256\123\246\072\026\163\214\335 +\101\016\040\072\300\264\247\241\351\262\117\220\056\062\140\351 +\127\313\271\004\222\150\150\345\070\046\140\165\262\237\167\377 +\221\024\357\256\040\111\374\255\100\025\110\321\002\061\141\031 +\136\270\227\357\255\167\267\144\232\172\277\137\301\023\357\233 +\142\373\015\154\340\124\151\026\251\003\332\156\351\203\223\161 +\166\306\151\205\202\027\002\003\001\000\001\243\102\060\100\060 +\016\006\003\125\035\017\001\001\377\004\004\003\002\001\006\060 +\017\006\003\125\035\023\001\001\377\004\005\060\003\001\001\377 +\060\035\006\003\125\035\016\004\026\004\024\217\360\113\177\250 +\056\105\044\256\115\120\372\143\232\213\336\342\335\033\274\060 +\015\006\011\052\206\110\206\367\015\001\001\013\005\000\003\202 +\001\001\000\113\100\333\300\120\252\376\310\014\357\367\226\124 +\105\111\273\226\000\011\101\254\263\023\206\206\050\007\063\312 +\153\346\164\271\272\000\055\256\244\012\323\365\361\361\017\212 +\277\163\147\112\203\307\104\173\170\340\257\156\154\157\003\051 +\216\063\071\105\303\216\344\271\127\154\252\374\022\226\354\123 +\306\055\344\044\154\271\224\143\373\334\123\150\147\126\076\203 +\270\317\065\041\303\311\150\376\316\332\302\123\252\314\220\212 +\351\360\135\106\214\225\335\172\130\050\032\057\035\336\315\000 +\067\101\217\355\104\155\327\123\050\227\176\363\147\004\036\025 +\327\212\226\264\323\336\114\047\244\114\033\163\163\166\364\027 +\231\302\037\172\016\343\055\010\255\012\034\054\377\074\253\125 +\016\017\221\176\066\353\303\127\111\276\341\056\055\174\140\213 +\303\101\121\023\043\235\316\367\062\153\224\001\250\231\347\054 +\063\037\072\073\045\322\206\100\316\073\054\206\170\311\141\057 +\024\272\356\333\125\157\337\204\356\005\011\115\275\050\330\162 +\316\323\142\120\145\036\353\222\227\203\061\331\263\265\312\107 +\130\077\137 +END + +# Trust for Certificate "GlobalSign Root CA - R3" +CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "GlobalSign Root CA - R3" +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\326\233\126\021\110\360\034\167\305\105\170\301\011\046\337\133 +\205\151\166\255 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\305\337\270\111\312\005\023\125\356\055\272\032\303\076\260\050 +END +CKA_ISSUER MULTILINE_OCTAL +\060\114\061\040\060\036\006\003\125\004\013\023\027\107\154\157 +\142\141\154\123\151\147\156\040\122\157\157\164\040\103\101\040 +\055\040\122\063\061\023\060\021\006\003\125\004\012\023\012\107 +\154\157\142\141\154\123\151\147\156\061\023\060\021\006\003\125 +\004\003\023\012\107\154\157\142\141\154\123\151\147\156 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\013\004\000\000\000\000\001\041\130\123\010\242 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "TC TrustCenter Universal CA III" +# +CKA_CLASS CK_OBJECT_CLASS CKO_CERTIFICATE +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "TC TrustCenter Universal CA III" +CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509 +CKA_SUBJECT MULTILINE_OCTAL +\060\173\061\013\060\011\006\003\125\004\006\023\002\104\105\061 +\034\060\032\006\003\125\004\012\023\023\124\103\040\124\162\165 +\163\164\103\145\156\164\145\162\040\107\155\142\110\061\044\060 +\042\006\003\125\004\013\023\033\124\103\040\124\162\165\163\164 +\103\145\156\164\145\162\040\125\156\151\166\145\162\163\141\154 +\040\103\101\061\050\060\046\006\003\125\004\003\023\037\124\103 +\040\124\162\165\163\164\103\145\156\164\145\162\040\125\156\151 +\166\145\162\163\141\154\040\103\101\040\111\111\111 +END +CKA_ID UTF8 "0" +CKA_ISSUER MULTILINE_OCTAL +\060\173\061\013\060\011\006\003\125\004\006\023\002\104\105\061 +\034\060\032\006\003\125\004\012\023\023\124\103\040\124\162\165 +\163\164\103\145\156\164\145\162\040\107\155\142\110\061\044\060 +\042\006\003\125\004\013\023\033\124\103\040\124\162\165\163\164 +\103\145\156\164\145\162\040\125\156\151\166\145\162\163\141\154 +\040\103\101\061\050\060\046\006\003\125\004\003\023\037\124\103 +\040\124\162\165\163\164\103\145\156\164\145\162\040\125\156\151 +\166\145\162\163\141\154\040\103\101\040\111\111\111 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\016\143\045\000\001\000\002\024\215\063\025\002\344\154\364 +END +CKA_VALUE MULTILINE_OCTAL +\060\202\003\341\060\202\002\311\240\003\002\001\002\002\016\143 +\045\000\001\000\002\024\215\063\025\002\344\154\364\060\015\006 +\011\052\206\110\206\367\015\001\001\005\005\000\060\173\061\013 +\060\011\006\003\125\004\006\023\002\104\105\061\034\060\032\006 +\003\125\004\012\023\023\124\103\040\124\162\165\163\164\103\145 +\156\164\145\162\040\107\155\142\110\061\044\060\042\006\003\125 +\004\013\023\033\124\103\040\124\162\165\163\164\103\145\156\164 +\145\162\040\125\156\151\166\145\162\163\141\154\040\103\101\061 +\050\060\046\006\003\125\004\003\023\037\124\103\040\124\162\165 +\163\164\103\145\156\164\145\162\040\125\156\151\166\145\162\163 +\141\154\040\103\101\040\111\111\111\060\036\027\015\060\071\060 +\071\060\071\060\070\061\065\062\067\132\027\015\062\071\061\062 +\063\061\062\063\065\071\065\071\132\060\173\061\013\060\011\006 +\003\125\004\006\023\002\104\105\061\034\060\032\006\003\125\004 +\012\023\023\124\103\040\124\162\165\163\164\103\145\156\164\145 +\162\040\107\155\142\110\061\044\060\042\006\003\125\004\013\023 +\033\124\103\040\124\162\165\163\164\103\145\156\164\145\162\040 +\125\156\151\166\145\162\163\141\154\040\103\101\061\050\060\046 +\006\003\125\004\003\023\037\124\103\040\124\162\165\163\164\103 +\145\156\164\145\162\040\125\156\151\166\145\162\163\141\154\040 +\103\101\040\111\111\111\060\202\001\042\060\015\006\011\052\206 +\110\206\367\015\001\001\001\005\000\003\202\001\017\000\060\202 +\001\012\002\202\001\001\000\302\332\234\142\260\271\161\022\260 +\013\310\032\127\262\256\203\024\231\263\064\113\233\220\242\305 +\347\347\057\002\240\115\055\244\372\205\332\233\045\205\055\100 +\050\040\155\352\340\275\261\110\203\042\051\104\237\116\203\356 +\065\121\023\163\164\325\274\362\060\146\224\123\300\100\066\057 +\014\204\145\316\017\156\302\130\223\350\054\013\072\351\301\216 +\373\362\153\312\074\342\234\116\216\344\371\175\323\047\237\033 +\325\147\170\207\055\177\013\107\263\307\350\311\110\174\257\057 +\314\012\331\101\357\237\376\232\341\262\256\371\123\265\345\351 +\106\237\140\343\337\215\323\177\373\226\176\263\265\162\370\113 +\255\010\171\315\151\211\100\047\365\052\301\255\103\354\244\123 +\310\141\266\367\322\171\052\147\030\166\110\155\133\045\001\321 +\046\305\267\127\151\043\025\133\141\212\255\360\033\055\331\257 +\134\361\046\220\151\251\325\014\100\365\063\200\103\217\234\243 +\166\052\105\264\257\277\177\076\207\077\166\305\315\052\336\040 +\305\026\130\313\371\033\365\017\313\015\021\122\144\270\322\166 +\142\167\203\361\130\237\377\002\003\001\000\001\243\143\060\141 +\060\037\006\003\125\035\043\004\030\060\026\200\024\126\347\341 +\133\045\103\200\340\366\214\341\161\274\216\345\200\057\304\110 +\342\060\017\006\003\125\035\023\001\001\377\004\005\060\003\001 +\001\377\060\016\006\003\125\035\017\001\001\377\004\004\003\002 +\001\006\060\035\006\003\125\035\016\004\026\004\024\126\347\341 +\133\045\103\200\340\366\214\341\161\274\216\345\200\057\304\110 +\342\060\015\006\011\052\206\110\206\367\015\001\001\005\005\000 +\003\202\001\001\000\203\307\257\352\177\115\012\074\071\261\150 +\276\173\155\211\056\351\263\011\347\030\127\215\205\232\027\363 +\166\102\120\023\017\307\220\157\063\255\305\111\140\053\154\111 +\130\031\324\342\276\267\277\253\111\274\224\310\253\276\050\154 +\026\150\340\310\227\106\040\240\150\147\140\210\071\040\121\330 +\150\001\021\316\247\366\021\007\366\354\354\254\032\037\262\146 +\156\126\147\140\172\164\136\300\155\227\066\256\265\015\135\146 +\163\300\045\062\105\330\112\006\007\217\304\267\007\261\115\006 +\015\341\245\353\364\165\312\272\234\320\275\263\323\062\044\114 +\356\176\342\166\004\113\111\123\330\362\351\124\063\374\345\161 +\037\075\024\134\226\113\361\072\362\000\273\154\264\372\226\125 +\010\210\011\301\314\221\031\051\260\040\055\377\313\070\244\100 +\341\027\276\171\141\200\377\007\003\206\114\116\173\006\237\021 +\206\215\211\356\047\304\333\342\274\031\216\013\303\303\023\307 +\055\003\143\073\323\350\344\242\052\302\202\010\224\026\124\360 +\357\037\047\220\045\270\015\016\050\033\107\167\107\275\034\250 +\045\361\224\264\146 +END + +# Trust for Certificate "TC TrustCenter Universal CA III" +CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "TC TrustCenter Universal CA III" +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\226\126\315\173\127\226\230\225\320\341\101\106\150\006\373\270 +\306\021\006\207 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\237\335\333\253\377\216\377\105\041\137\360\154\235\217\376\053 +END +CKA_ISSUER MULTILINE_OCTAL +\060\173\061\013\060\011\006\003\125\004\006\023\002\104\105\061 +\034\060\032\006\003\125\004\012\023\023\124\103\040\124\162\165 +\163\164\103\145\156\164\145\162\040\107\155\142\110\061\044\060 +\042\006\003\125\004\013\023\033\124\103\040\124\162\165\163\164 +\103\145\156\164\145\162\040\125\156\151\166\145\162\163\141\154 +\040\103\101\061\050\060\046\006\003\125\004\003\023\037\124\103 +\040\124\162\165\163\164\103\145\156\164\145\162\040\125\156\151 +\166\145\162\163\141\154\040\103\101\040\111\111\111 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\016\143\045\000\001\000\002\024\215\063\025\002\344\154\364 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "Autoridad de Certificacion Firmaprofesional CIF A62634068" +# +CKA_CLASS CK_OBJECT_CLASS CKO_CERTIFICATE +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "Autoridad de Certificacion Firmaprofesional CIF A62634068" +CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509 +CKA_SUBJECT MULTILINE_OCTAL +\060\121\061\013\060\011\006\003\125\004\006\023\002\105\123\061 +\102\060\100\006\003\125\004\003\014\071\101\165\164\157\162\151 +\144\141\144\040\144\145\040\103\145\162\164\151\146\151\143\141 +\143\151\157\156\040\106\151\162\155\141\160\162\157\146\145\163 +\151\157\156\141\154\040\103\111\106\040\101\066\062\066\063\064 +\060\066\070 +END +CKA_ID UTF8 "0" +CKA_ISSUER MULTILINE_OCTAL +\060\121\061\013\060\011\006\003\125\004\006\023\002\105\123\061 +\102\060\100\006\003\125\004\003\014\071\101\165\164\157\162\151 +\144\141\144\040\144\145\040\103\145\162\164\151\146\151\143\141 +\143\151\157\156\040\106\151\162\155\141\160\162\157\146\145\163 +\151\157\156\141\154\040\103\111\106\040\101\066\062\066\063\064 +\060\066\070 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\010\123\354\073\356\373\262\110\137 +END +CKA_VALUE MULTILINE_OCTAL +\060\202\006\024\060\202\003\374\240\003\002\001\002\002\010\123 +\354\073\356\373\262\110\137\060\015\006\011\052\206\110\206\367 +\015\001\001\005\005\000\060\121\061\013\060\011\006\003\125\004 +\006\023\002\105\123\061\102\060\100\006\003\125\004\003\014\071 +\101\165\164\157\162\151\144\141\144\040\144\145\040\103\145\162 +\164\151\146\151\143\141\143\151\157\156\040\106\151\162\155\141 +\160\162\157\146\145\163\151\157\156\141\154\040\103\111\106\040 +\101\066\062\066\063\064\060\066\070\060\036\027\015\060\071\060 +\065\062\060\060\070\063\070\061\065\132\027\015\063\060\061\062 +\063\061\060\070\063\070\061\065\132\060\121\061\013\060\011\006 +\003\125\004\006\023\002\105\123\061\102\060\100\006\003\125\004 +\003\014\071\101\165\164\157\162\151\144\141\144\040\144\145\040 +\103\145\162\164\151\146\151\143\141\143\151\157\156\040\106\151 +\162\155\141\160\162\157\146\145\163\151\157\156\141\154\040\103 +\111\106\040\101\066\062\066\063\064\060\066\070\060\202\002\042 +\060\015\006\011\052\206\110\206\367\015\001\001\001\005\000\003 +\202\002\017\000\060\202\002\012\002\202\002\001\000\312\226\153 +\216\352\370\373\361\242\065\340\177\114\332\340\303\122\327\175 +\266\020\310\002\136\263\103\052\304\117\152\262\312\034\135\050 +\232\170\021\032\151\131\127\257\265\040\102\344\213\017\346\337 +\133\246\003\222\057\365\021\344\142\327\062\161\070\331\004\014 +\161\253\075\121\176\017\007\337\143\005\134\351\277\224\157\301 +\051\202\300\264\332\121\260\301\074\273\255\067\112\134\312\361 +\113\066\016\044\253\277\303\204\167\375\250\120\364\261\347\306 +\057\322\055\131\215\172\012\116\226\151\122\002\252\066\230\354 +\374\372\024\203\014\067\037\311\222\067\177\327\201\055\345\304 +\271\340\076\064\376\147\364\076\146\321\323\364\100\317\136\142 +\064\017\160\006\076\040\030\132\316\367\162\033\045\154\223\164 +\024\223\243\163\261\016\252\207\020\043\131\137\040\005\031\107 +\355\150\216\222\022\312\135\374\326\053\262\222\074\040\317\341 +\137\257\040\276\240\166\177\166\345\354\032\206\141\063\076\347 +\173\264\077\240\017\216\242\271\152\157\271\207\046\157\101\154 +\210\246\120\375\152\143\013\365\223\026\033\031\217\262\355\233 +\233\311\220\365\001\014\337\031\075\017\076\070\043\311\057\217 +\014\321\002\376\033\125\326\116\320\215\074\257\117\244\363\376 +\257\052\323\005\235\171\010\241\313\127\061\264\234\310\220\262 +\147\364\030\026\223\072\374\107\330\321\170\226\061\037\272\053 +\014\137\135\231\255\143\211\132\044\040\166\330\337\375\253\116 +\246\042\252\235\136\346\047\212\175\150\051\243\347\212\270\332 +\021\273\027\055\231\235\023\044\106\367\305\342\330\237\216\177 +\307\217\164\155\132\262\350\162\365\254\356\044\020\255\057\024 +\332\377\055\232\106\161\107\276\102\337\273\001\333\364\177\323 +\050\217\061\131\133\323\311\002\246\264\122\312\156\227\373\103 +\305\010\046\157\212\364\273\375\237\050\252\015\325\105\363\023 +\072\035\330\300\170\217\101\147\074\036\224\144\256\173\013\305 +\350\331\001\210\071\032\227\206\144\101\325\073\207\014\156\372 +\017\306\275\110\024\277\071\115\324\236\101\266\217\226\035\143 +\226\223\331\225\006\170\061\150\236\067\006\073\200\211\105\141 +\071\043\307\033\104\243\025\345\034\370\222\060\273\002\003\001 +\000\001\243\201\357\060\201\354\060\022\006\003\125\035\023\001 +\001\377\004\010\060\006\001\001\377\002\001\001\060\016\006\003 +\125\035\017\001\001\377\004\004\003\002\001\006\060\035\006\003 +\125\035\016\004\026\004\024\145\315\353\253\065\036\000\076\176 +\325\164\300\034\264\163\107\016\032\144\057\060\201\246\006\003 +\125\035\040\004\201\236\060\201\233\060\201\230\006\004\125\035 +\040\000\060\201\217\060\057\006\010\053\006\001\005\005\007\002 +\001\026\043\150\164\164\160\072\057\057\167\167\167\056\146\151 +\162\155\141\160\162\157\146\145\163\151\157\156\141\154\056\143 +\157\155\057\143\160\163\060\134\006\010\053\006\001\005\005\007 +\002\002\060\120\036\116\000\120\000\141\000\163\000\145\000\157 +\000\040\000\144\000\145\000\040\000\154\000\141\000\040\000\102 +\000\157\000\156\000\141\000\156\000\157\000\166\000\141\000\040 +\000\064\000\067\000\040\000\102\000\141\000\162\000\143\000\145 +\000\154\000\157\000\156\000\141\000\040\000\060\000\070\000\060 +\000\061\000\067\060\015\006\011\052\206\110\206\367\015\001\001 +\005\005\000\003\202\002\001\000\027\175\240\371\264\335\305\305 +\353\255\113\044\265\241\002\253\335\245\210\112\262\017\125\113 +\053\127\214\073\345\061\335\376\304\062\361\347\133\144\226\066 +\062\030\354\245\062\167\327\343\104\266\300\021\052\200\271\075 +\152\156\174\233\323\255\374\303\326\243\346\144\051\174\321\341 +\070\036\202\053\377\047\145\257\373\026\025\304\056\161\204\345 +\265\377\372\244\107\275\144\062\273\366\045\204\242\047\102\365 +\040\260\302\023\020\021\315\020\025\272\102\220\052\322\104\341 +\226\046\353\061\110\022\375\052\332\311\006\317\164\036\251\113 +\325\207\050\371\171\064\222\076\056\104\350\366\217\117\217\065 +\077\045\263\071\334\143\052\220\153\040\137\304\122\022\116\227 +\054\052\254\235\227\336\110\362\243\146\333\302\322\203\225\246 +\146\247\236\045\017\351\013\063\221\145\012\132\303\331\124\022 +\335\257\303\116\016\037\046\136\015\334\263\215\354\325\201\160 +\336\322\117\044\005\363\154\116\365\114\111\146\215\321\377\322 +\013\045\101\110\376\121\204\306\102\257\200\004\317\320\176\144 +\111\344\362\337\242\354\261\114\300\052\035\347\264\261\145\242 +\304\274\361\230\364\252\160\007\143\264\270\332\073\114\372\100 +\042\060\133\021\246\360\005\016\306\002\003\110\253\206\233\205 +\335\333\335\352\242\166\200\163\175\365\234\004\304\105\215\347 +\271\034\213\236\352\327\165\321\162\261\336\165\104\347\102\175 +\342\127\153\175\334\231\274\075\203\050\352\200\223\215\305\114 +\145\301\160\201\270\070\374\103\061\262\366\003\064\107\262\254 +\373\042\006\313\036\335\027\107\034\137\146\271\323\032\242\332 +\021\261\244\274\043\311\344\276\207\377\271\224\266\370\135\040 +\112\324\137\347\275\150\173\145\362\025\036\322\072\251\055\351 +\330\153\044\254\227\130\104\107\255\131\030\361\041\145\160\336 +\316\064\140\250\100\361\363\074\244\303\050\043\214\376\047\063 +\103\100\240\027\074\353\352\073\260\162\246\243\271\112\113\136 +\026\110\364\262\274\310\214\222\305\235\237\254\162\066\274\064 +\200\064\153\251\213\222\300\270\027\355\354\166\123\365\044\001 +\214\263\042\350\113\174\125\306\235\372\243\024\273\145\205\156 +\156\117\022\176\012\074\235\225 +END + +# Trust for Certificate "Autoridad de Certificacion Firmaprofesional CIF A62634068" +CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "Autoridad de Certificacion Firmaprofesional CIF A62634068" +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\256\305\373\077\310\341\277\304\345\117\003\007\132\232\350\000 +\267\367\266\372 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\163\072\164\172\354\273\243\226\246\302\344\342\310\233\300\303 +END +CKA_ISSUER MULTILINE_OCTAL +\060\121\061\013\060\011\006\003\125\004\006\023\002\105\123\061 +\102\060\100\006\003\125\004\003\014\071\101\165\164\157\162\151 +\144\141\144\040\144\145\040\103\145\162\164\151\146\151\143\141 +\143\151\157\156\040\106\151\162\155\141\160\162\157\146\145\163 +\151\157\156\141\154\040\103\111\106\040\101\066\062\066\063\064 +\060\066\070 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\010\123\354\073\356\373\262\110\137 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "Izenpe.com" +# +CKA_CLASS CK_OBJECT_CLASS CKO_CERTIFICATE +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "Izenpe.com" +CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509 +CKA_SUBJECT MULTILINE_OCTAL +\060\070\061\013\060\011\006\003\125\004\006\023\002\105\123\061 +\024\060\022\006\003\125\004\012\014\013\111\132\105\116\120\105 +\040\123\056\101\056\061\023\060\021\006\003\125\004\003\014\012 +\111\172\145\156\160\145\056\143\157\155 +END +CKA_ID UTF8 "0" +CKA_ISSUER MULTILINE_OCTAL +\060\070\061\013\060\011\006\003\125\004\006\023\002\105\123\061 +\024\060\022\006\003\125\004\012\014\013\111\132\105\116\120\105 +\040\123\056\101\056\061\023\060\021\006\003\125\004\003\014\012 +\111\172\145\156\160\145\056\143\157\155 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\020\000\260\267\132\026\110\137\277\341\313\365\213\327\031 +\346\175 +END +CKA_VALUE MULTILINE_OCTAL +\060\202\005\361\060\202\003\331\240\003\002\001\002\002\020\000 +\260\267\132\026\110\137\277\341\313\365\213\327\031\346\175\060 +\015\006\011\052\206\110\206\367\015\001\001\013\005\000\060\070 +\061\013\060\011\006\003\125\004\006\023\002\105\123\061\024\060 +\022\006\003\125\004\012\014\013\111\132\105\116\120\105\040\123 +\056\101\056\061\023\060\021\006\003\125\004\003\014\012\111\172 +\145\156\160\145\056\143\157\155\060\036\027\015\060\067\061\062 +\061\063\061\063\060\070\062\070\132\027\015\063\067\061\062\061 +\063\060\070\062\067\062\065\132\060\070\061\013\060\011\006\003 +\125\004\006\023\002\105\123\061\024\060\022\006\003\125\004\012 +\014\013\111\132\105\116\120\105\040\123\056\101\056\061\023\060 +\021\006\003\125\004\003\014\012\111\172\145\156\160\145\056\143 +\157\155\060\202\002\042\060\015\006\011\052\206\110\206\367\015 +\001\001\001\005\000\003\202\002\017\000\060\202\002\012\002\202 +\002\001\000\311\323\172\312\017\036\254\247\206\350\026\145\152 +\261\302\033\105\062\161\225\331\376\020\133\314\257\347\245\171 +\001\217\211\303\312\362\125\161\367\167\276\167\224\363\162\244 +\054\104\330\236\222\233\024\072\241\347\044\220\012\012\126\216 +\305\330\046\224\341\331\110\341\055\076\332\012\162\335\243\231 +\025\332\201\242\207\364\173\156\046\167\211\130\255\326\353\014 +\262\101\172\163\156\155\333\172\170\101\351\010\210\022\176\207 +\056\146\021\143\154\124\373\074\235\162\300\274\056\377\302\267 +\335\015\166\343\072\327\367\264\150\276\242\365\343\201\156\301 +\106\157\135\215\340\115\306\124\125\211\032\063\061\012\261\127 +\271\243\212\230\303\354\073\064\305\225\101\151\176\165\302\074 +\040\305\141\272\121\107\240\040\220\223\241\220\113\363\116\174 +\205\105\124\232\321\005\046\101\260\265\115\035\063\276\304\003 +\310\045\174\301\160\333\073\364\011\055\124\047\110\254\057\341 +\304\254\076\310\313\222\114\123\071\067\043\354\323\001\371\340 +\011\104\115\115\144\300\341\015\132\207\042\274\255\033\243\376 +\046\265\025\363\247\374\204\031\351\354\241\210\264\104\151\204 +\203\363\211\321\164\006\251\314\013\326\302\336\047\205\120\046 +\312\027\270\311\172\207\126\054\032\001\036\154\276\023\255\020 +\254\265\044\365\070\221\241\326\113\332\361\273\322\336\107\265 +\361\274\201\366\131\153\317\031\123\351\215\025\313\112\313\251 +\157\104\345\033\101\317\341\206\247\312\320\152\237\274\114\215 +\006\063\132\242\205\345\220\065\240\142\134\026\116\360\343\242 +\372\003\032\264\054\161\263\130\054\336\173\013\333\032\017\353 +\336\041\037\006\167\006\003\260\311\357\231\374\300\271\117\013 +\206\050\376\322\271\352\343\332\245\303\107\151\022\340\333\360 +\366\031\213\355\173\160\327\002\326\355\207\030\050\054\004\044 +\114\167\344\110\212\032\306\073\232\324\017\312\372\165\322\001 +\100\132\215\171\277\213\317\113\317\252\026\301\225\344\255\114 +\212\076\027\221\324\261\142\345\202\345\200\004\244\003\176\215 +\277\332\177\242\017\227\117\014\323\015\373\327\321\345\162\176 +\034\310\167\377\133\232\017\267\256\005\106\345\361\250\026\354 +\107\244\027\002\003\001\000\001\243\201\366\060\201\363\060\201 +\260\006\003\125\035\021\004\201\250\060\201\245\201\017\151\156 +\146\157\100\151\172\145\156\160\145\056\143\157\155\244\201\221 +\060\201\216\061\107\060\105\006\003\125\004\012\014\076\111\132 +\105\116\120\105\040\123\056\101\056\040\055\040\103\111\106\040 +\101\060\061\063\063\067\062\066\060\055\122\115\145\162\143\056 +\126\151\164\157\162\151\141\055\107\141\163\164\145\151\172\040 +\124\061\060\065\065\040\106\066\062\040\123\070\061\103\060\101 +\006\003\125\004\011\014\072\101\166\144\141\040\144\145\154\040 +\115\145\144\151\164\145\162\162\141\156\145\157\040\105\164\157 +\162\142\151\144\145\141\040\061\064\040\055\040\060\061\060\061 +\060\040\126\151\164\157\162\151\141\055\107\141\163\164\145\151 +\172\060\017\006\003\125\035\023\001\001\377\004\005\060\003\001 +\001\377\060\016\006\003\125\035\017\001\001\377\004\004\003\002 +\001\006\060\035\006\003\125\035\016\004\026\004\024\035\034\145 +\016\250\362\045\173\264\221\317\344\261\261\346\275\125\164\154 +\005\060\015\006\011\052\206\110\206\367\015\001\001\013\005\000 +\003\202\002\001\000\170\246\014\026\112\237\114\210\072\300\313 +\016\245\026\175\237\271\110\137\030\217\015\142\066\366\315\031 +\153\254\253\325\366\221\175\256\161\363\077\263\016\170\205\233 +\225\244\047\041\107\102\112\174\110\072\365\105\174\263\014\216 +\121\170\254\225\023\336\306\375\175\270\032\220\114\253\222\003 +\307\355\102\001\316\017\330\261\372\242\222\341\140\155\256\172 +\153\011\252\306\051\356\150\111\147\060\200\044\172\061\026\071 +\133\176\361\034\056\335\154\011\255\362\061\301\202\116\271\273 +\371\276\277\052\205\077\300\100\243\072\131\374\131\113\074\050 +\044\333\264\025\165\256\015\210\272\056\163\300\275\130\207\345 +\102\362\353\136\356\036\060\042\231\313\067\321\304\041\154\201 +\354\276\155\046\346\034\344\102\040\236\107\260\254\203\131\160 +\054\065\326\257\066\064\264\315\073\370\062\250\357\343\170\211 +\373\215\105\054\332\234\270\176\100\034\141\347\076\242\222\054 +\113\362\315\372\230\266\051\377\363\362\173\251\037\056\240\223 +\127\053\336\205\003\371\151\067\313\236\170\152\005\264\305\061 +\170\211\354\172\247\205\341\271\173\074\336\276\036\171\204\316 +\237\160\016\131\302\065\056\220\052\061\331\344\105\172\101\244 +\056\023\233\064\016\146\173\111\253\144\227\320\106\303\171\235 +\162\120\143\246\230\133\006\275\110\155\330\071\203\160\350\065 +\360\005\321\252\274\343\333\310\002\352\174\375\202\332\302\133 +\122\065\256\230\072\255\272\065\223\043\247\037\110\335\065\106 +\230\262\020\150\344\245\061\302\012\130\056\031\201\020\311\120 +\165\374\352\132\026\316\021\327\356\357\120\210\055\141\377\077 +\102\163\005\224\103\325\216\074\116\001\072\031\245\037\106\116 +\167\320\135\345\201\042\041\207\376\224\175\204\330\223\255\326 +\150\103\110\262\333\353\163\044\347\221\177\124\244\266\200\076 +\235\243\074\114\162\302\127\304\240\324\314\070\047\316\325\006 +\236\242\110\331\351\237\316\202\160\066\223\232\073\337\226\041 +\343\131\267\014\332\221\067\360\375\131\132\263\231\310\151\154 +\103\046\001\065\143\140\125\211\003\072\165\330\272\112\331\124 +\377\356\336\200\330\055\321\070\325\136\055\013\230\175\076\154 +\333\374\046\210\307 +END + +# Trust for Certificate "Izenpe.com" +CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "Izenpe.com" +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\057\170\075\045\122\030\247\112\145\071\161\265\054\242\234\105 +\025\157\351\031 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\246\260\315\205\200\332\134\120\064\243\071\220\057\125\147\163 +END +CKA_ISSUER MULTILINE_OCTAL +\060\070\061\013\060\011\006\003\125\004\006\023\002\105\123\061 +\024\060\022\006\003\125\004\012\014\013\111\132\105\116\120\105 +\040\123\056\101\056\061\023\060\021\006\003\125\004\003\014\012 +\111\172\145\156\160\145\056\143\157\155 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\020\000\260\267\132\026\110\137\277\341\313\365\213\327\031 +\346\175 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_TRUST_UNKNOWN +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "Chambers of Commerce Root - 2008" +# +CKA_CLASS CK_OBJECT_CLASS CKO_CERTIFICATE +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "Chambers of Commerce Root - 2008" +CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509 +CKA_SUBJECT MULTILINE_OCTAL +\060\201\256\061\013\060\011\006\003\125\004\006\023\002\105\125 +\061\103\060\101\006\003\125\004\007\023\072\115\141\144\162\151 +\144\040\050\163\145\145\040\143\165\162\162\145\156\164\040\141 +\144\144\162\145\163\163\040\141\164\040\167\167\167\056\143\141 +\155\145\162\146\151\162\155\141\056\143\157\155\057\141\144\144 +\162\145\163\163\051\061\022\060\020\006\003\125\004\005\023\011 +\101\070\062\067\064\063\062\070\067\061\033\060\031\006\003\125 +\004\012\023\022\101\103\040\103\141\155\145\162\146\151\162\155 +\141\040\123\056\101\056\061\051\060\047\006\003\125\004\003\023 +\040\103\150\141\155\142\145\162\163\040\157\146\040\103\157\155 +\155\145\162\143\145\040\122\157\157\164\040\055\040\062\060\060 +\070 +END +CKA_ID UTF8 "0" +CKA_ISSUER MULTILINE_OCTAL +\060\201\256\061\013\060\011\006\003\125\004\006\023\002\105\125 +\061\103\060\101\006\003\125\004\007\023\072\115\141\144\162\151 +\144\040\050\163\145\145\040\143\165\162\162\145\156\164\040\141 +\144\144\162\145\163\163\040\141\164\040\167\167\167\056\143\141 +\155\145\162\146\151\162\155\141\056\143\157\155\057\141\144\144 +\162\145\163\163\051\061\022\060\020\006\003\125\004\005\023\011 +\101\070\062\067\064\063\062\070\067\061\033\060\031\006\003\125 +\004\012\023\022\101\103\040\103\141\155\145\162\146\151\162\155 +\141\040\123\056\101\056\061\051\060\047\006\003\125\004\003\023 +\040\103\150\141\155\142\145\162\163\040\157\146\040\103\157\155 +\155\145\162\143\145\040\122\157\157\164\040\055\040\062\060\060 +\070 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\011\000\243\332\102\176\244\261\256\332 +END +CKA_VALUE MULTILINE_OCTAL +\060\202\007\117\060\202\005\067\240\003\002\001\002\002\011\000 +\243\332\102\176\244\261\256\332\060\015\006\011\052\206\110\206 +\367\015\001\001\005\005\000\060\201\256\061\013\060\011\006\003 +\125\004\006\023\002\105\125\061\103\060\101\006\003\125\004\007 +\023\072\115\141\144\162\151\144\040\050\163\145\145\040\143\165 +\162\162\145\156\164\040\141\144\144\162\145\163\163\040\141\164 +\040\167\167\167\056\143\141\155\145\162\146\151\162\155\141\056 +\143\157\155\057\141\144\144\162\145\163\163\051\061\022\060\020 +\006\003\125\004\005\023\011\101\070\062\067\064\063\062\070\067 +\061\033\060\031\006\003\125\004\012\023\022\101\103\040\103\141 +\155\145\162\146\151\162\155\141\040\123\056\101\056\061\051\060 +\047\006\003\125\004\003\023\040\103\150\141\155\142\145\162\163 +\040\157\146\040\103\157\155\155\145\162\143\145\040\122\157\157 +\164\040\055\040\062\060\060\070\060\036\027\015\060\070\060\070 +\060\061\061\062\062\071\065\060\132\027\015\063\070\060\067\063 +\061\061\062\062\071\065\060\132\060\201\256\061\013\060\011\006 +\003\125\004\006\023\002\105\125\061\103\060\101\006\003\125\004 +\007\023\072\115\141\144\162\151\144\040\050\163\145\145\040\143 +\165\162\162\145\156\164\040\141\144\144\162\145\163\163\040\141 +\164\040\167\167\167\056\143\141\155\145\162\146\151\162\155\141 +\056\143\157\155\057\141\144\144\162\145\163\163\051\061\022\060 +\020\006\003\125\004\005\023\011\101\070\062\067\064\063\062\070 +\067\061\033\060\031\006\003\125\004\012\023\022\101\103\040\103 +\141\155\145\162\146\151\162\155\141\040\123\056\101\056\061\051 +\060\047\006\003\125\004\003\023\040\103\150\141\155\142\145\162 +\163\040\157\146\040\103\157\155\155\145\162\143\145\040\122\157 +\157\164\040\055\040\062\060\060\070\060\202\002\042\060\015\006 +\011\052\206\110\206\367\015\001\001\001\005\000\003\202\002\017 +\000\060\202\002\012\002\202\002\001\000\257\000\313\160\067\053 +\200\132\112\072\154\170\224\175\243\177\032\037\366\065\325\275 +\333\313\015\104\162\076\046\262\220\122\272\143\073\050\130\157 +\245\263\155\224\246\363\335\144\014\125\366\366\347\362\042\042 +\200\136\341\142\306\266\051\341\201\154\362\277\345\175\062\152 +\124\240\062\031\131\376\037\213\327\075\140\206\205\044\157\343 +\021\263\167\076\040\226\065\041\153\263\010\331\160\056\144\367 +\204\222\123\326\016\260\220\212\212\343\207\215\006\323\275\220 +\016\342\231\241\033\206\016\332\232\012\273\013\141\120\006\122 +\361\236\177\166\354\313\017\320\036\015\317\231\060\075\034\304 +\105\020\130\254\326\323\350\327\345\352\305\001\007\167\326\121 +\346\003\177\212\110\245\115\150\165\271\351\274\236\116\031\161 +\365\062\113\234\155\140\031\013\373\314\235\165\334\277\046\315 +\217\223\170\071\171\163\136\045\016\312\134\353\167\022\007\313 +\144\101\107\162\223\253\120\303\353\011\166\144\064\322\071\267 +\166\021\011\015\166\105\304\251\256\075\152\257\265\175\145\057 +\224\130\020\354\134\174\257\176\342\266\030\331\320\233\116\132 +\111\337\251\146\013\314\074\306\170\174\247\234\035\343\316\216 +\123\276\005\336\140\017\153\345\032\333\077\343\341\041\311\051 +\301\361\353\007\234\122\033\001\104\121\074\173\045\327\304\345 +\122\124\135\045\007\312\026\040\270\255\344\101\356\172\010\376 +\231\157\203\246\221\002\260\154\066\125\152\347\175\365\226\346 +\312\201\326\227\361\224\203\351\355\260\261\153\022\151\036\254 +\373\135\251\305\230\351\264\133\130\172\276\075\242\104\072\143 +\131\324\013\045\336\033\117\275\345\001\236\315\322\051\325\237 +\027\031\012\157\277\014\220\323\011\137\331\343\212\065\314\171 +\132\115\031\067\222\267\304\301\255\257\364\171\044\232\262\001 +\013\261\257\134\226\363\200\062\373\134\075\230\361\240\077\112 +\336\276\257\224\056\331\125\232\027\156\140\235\143\154\270\143 +\311\256\201\134\030\065\340\220\273\276\074\117\067\042\271\176 +\353\317\236\167\041\246\075\070\201\373\110\332\061\075\053\343 +\211\365\320\265\275\176\340\120\304\022\211\263\043\232\020\061 +\205\333\256\157\357\070\063\030\166\021\002\003\001\000\001\243 +\202\001\154\060\202\001\150\060\022\006\003\125\035\023\001\001 +\377\004\010\060\006\001\001\377\002\001\014\060\035\006\003\125 +\035\016\004\026\004\024\371\044\254\017\262\265\370\171\300\372 +\140\210\033\304\331\115\002\236\027\031\060\201\343\006\003\125 +\035\043\004\201\333\060\201\330\200\024\371\044\254\017\262\265 +\370\171\300\372\140\210\033\304\331\115\002\236\027\031\241\201 +\264\244\201\261\060\201\256\061\013\060\011\006\003\125\004\006 +\023\002\105\125\061\103\060\101\006\003\125\004\007\023\072\115 +\141\144\162\151\144\040\050\163\145\145\040\143\165\162\162\145 +\156\164\040\141\144\144\162\145\163\163\040\141\164\040\167\167 +\167\056\143\141\155\145\162\146\151\162\155\141\056\143\157\155 +\057\141\144\144\162\145\163\163\051\061\022\060\020\006\003\125 +\004\005\023\011\101\070\062\067\064\063\062\070\067\061\033\060 +\031\006\003\125\004\012\023\022\101\103\040\103\141\155\145\162 +\146\151\162\155\141\040\123\056\101\056\061\051\060\047\006\003 +\125\004\003\023\040\103\150\141\155\142\145\162\163\040\157\146 +\040\103\157\155\155\145\162\143\145\040\122\157\157\164\040\055 +\040\062\060\060\070\202\011\000\243\332\102\176\244\261\256\332 +\060\016\006\003\125\035\017\001\001\377\004\004\003\002\001\006 +\060\075\006\003\125\035\040\004\066\060\064\060\062\006\004\125 +\035\040\000\060\052\060\050\006\010\053\006\001\005\005\007\002 +\001\026\034\150\164\164\160\072\057\057\160\157\154\151\143\171 +\056\143\141\155\145\162\146\151\162\155\141\056\143\157\155\060 +\015\006\011\052\206\110\206\367\015\001\001\005\005\000\003\202 +\002\001\000\220\022\257\042\065\302\243\071\360\056\336\351\265 +\351\170\174\110\276\077\175\105\222\136\351\332\261\031\374\026 +\074\237\264\133\146\236\152\347\303\271\135\210\350\017\255\317 +\043\017\336\045\072\136\314\117\245\301\265\055\254\044\322\130 +\007\336\242\317\151\204\140\063\350\020\015\023\251\043\320\205 +\345\216\173\246\236\075\162\023\162\063\365\252\175\306\143\037 +\010\364\376\001\177\044\317\053\054\124\011\336\342\053\155\222 +\306\071\117\026\352\074\176\172\106\324\105\152\106\250\353\165 +\202\126\247\253\240\174\150\023\063\366\235\060\360\157\047\071 +\044\043\052\220\375\220\051\065\362\223\337\064\245\306\367\370 +\357\214\017\142\112\174\256\323\365\124\370\215\266\232\126\207 +\026\202\072\063\253\132\042\010\367\202\272\352\056\340\107\232 +\264\265\105\243\005\073\331\334\056\105\100\073\352\334\177\350 +\073\353\321\354\046\330\065\244\060\305\072\254\127\236\263\166 +\245\040\173\371\036\112\005\142\001\246\050\165\140\227\222\015 +\156\076\115\067\103\015\222\025\234\030\042\315\121\231\240\051 +\032\074\137\212\062\063\133\060\307\211\057\107\230\017\243\003 +\306\366\361\254\337\062\360\331\201\032\344\234\275\366\200\024 +\360\321\054\271\205\365\330\243\261\310\245\041\345\034\023\227 +\356\016\275\337\051\251\357\064\123\133\323\344\152\023\204\006 +\266\062\002\304\122\256\042\322\334\262\041\102\032\332\100\360 +\051\311\354\012\014\134\342\320\272\314\110\323\067\012\314\022 +\012\212\171\260\075\003\177\151\113\364\064\040\175\263\064\352 +\216\113\144\365\076\375\263\043\147\025\015\004\270\360\055\301 +\011\121\074\262\154\025\360\245\043\327\203\164\344\345\056\311 +\376\230\047\102\306\253\306\236\260\320\133\070\245\233\120\336 +\176\030\230\265\105\073\366\171\264\350\367\032\173\006\203\373 +\320\213\332\273\307\275\030\253\010\157\074\200\153\100\077\031 +\031\272\145\212\346\276\325\134\323\066\327\357\100\122\044\140 +\070\147\004\061\354\217\363\202\306\336\271\125\363\073\061\221 +\132\334\265\010\025\255\166\045\012\015\173\056\207\342\014\246 +\006\274\046\020\155\067\235\354\335\170\214\174\200\305\360\331 +\167\110\320 +END + +# Trust for Certificate "Chambers of Commerce Root - 2008" +CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "Chambers of Commerce Root - 2008" +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\170\152\164\254\166\253\024\177\234\152\060\120\272\236\250\176 +\376\232\316\074 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\136\200\236\204\132\016\145\013\027\002\363\125\030\052\076\327 +END +CKA_ISSUER MULTILINE_OCTAL +\060\201\256\061\013\060\011\006\003\125\004\006\023\002\105\125 +\061\103\060\101\006\003\125\004\007\023\072\115\141\144\162\151 +\144\040\050\163\145\145\040\143\165\162\162\145\156\164\040\141 +\144\144\162\145\163\163\040\141\164\040\167\167\167\056\143\141 +\155\145\162\146\151\162\155\141\056\143\157\155\057\141\144\144 +\162\145\163\163\051\061\022\060\020\006\003\125\004\005\023\011 +\101\070\062\067\064\063\062\070\067\061\033\060\031\006\003\125 +\004\012\023\022\101\103\040\103\141\155\145\162\146\151\162\155 +\141\040\123\056\101\056\061\051\060\047\006\003\125\004\003\023 +\040\103\150\141\155\142\145\162\163\040\157\146\040\103\157\155 +\155\145\162\143\145\040\122\157\157\164\040\055\040\062\060\060 +\070 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\011\000\243\332\102\176\244\261\256\332 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "Global Chambersign Root - 2008" +# +CKA_CLASS CK_OBJECT_CLASS CKO_CERTIFICATE +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "Global Chambersign Root - 2008" +CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509 +CKA_SUBJECT MULTILINE_OCTAL +\060\201\254\061\013\060\011\006\003\125\004\006\023\002\105\125 +\061\103\060\101\006\003\125\004\007\023\072\115\141\144\162\151 +\144\040\050\163\145\145\040\143\165\162\162\145\156\164\040\141 +\144\144\162\145\163\163\040\141\164\040\167\167\167\056\143\141 +\155\145\162\146\151\162\155\141\056\143\157\155\057\141\144\144 +\162\145\163\163\051\061\022\060\020\006\003\125\004\005\023\011 +\101\070\062\067\064\063\062\070\067\061\033\060\031\006\003\125 +\004\012\023\022\101\103\040\103\141\155\145\162\146\151\162\155 +\141\040\123\056\101\056\061\047\060\045\006\003\125\004\003\023 +\036\107\154\157\142\141\154\040\103\150\141\155\142\145\162\163 +\151\147\156\040\122\157\157\164\040\055\040\062\060\060\070 +END +CKA_ID UTF8 "0" +CKA_ISSUER MULTILINE_OCTAL +\060\201\254\061\013\060\011\006\003\125\004\006\023\002\105\125 +\061\103\060\101\006\003\125\004\007\023\072\115\141\144\162\151 +\144\040\050\163\145\145\040\143\165\162\162\145\156\164\040\141 +\144\144\162\145\163\163\040\141\164\040\167\167\167\056\143\141 +\155\145\162\146\151\162\155\141\056\143\157\155\057\141\144\144 +\162\145\163\163\051\061\022\060\020\006\003\125\004\005\023\011 +\101\070\062\067\064\063\062\070\067\061\033\060\031\006\003\125 +\004\012\023\022\101\103\040\103\141\155\145\162\146\151\162\155 +\141\040\123\056\101\056\061\047\060\045\006\003\125\004\003\023 +\036\107\154\157\142\141\154\040\103\150\141\155\142\145\162\163 +\151\147\156\040\122\157\157\164\040\055\040\062\060\060\070 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\011\000\311\315\323\351\325\175\043\316 +END +CKA_VALUE MULTILINE_OCTAL +\060\202\007\111\060\202\005\061\240\003\002\001\002\002\011\000 +\311\315\323\351\325\175\043\316\060\015\006\011\052\206\110\206 +\367\015\001\001\005\005\000\060\201\254\061\013\060\011\006\003 +\125\004\006\023\002\105\125\061\103\060\101\006\003\125\004\007 +\023\072\115\141\144\162\151\144\040\050\163\145\145\040\143\165 +\162\162\145\156\164\040\141\144\144\162\145\163\163\040\141\164 +\040\167\167\167\056\143\141\155\145\162\146\151\162\155\141\056 +\143\157\155\057\141\144\144\162\145\163\163\051\061\022\060\020 +\006\003\125\004\005\023\011\101\070\062\067\064\063\062\070\067 +\061\033\060\031\006\003\125\004\012\023\022\101\103\040\103\141 +\155\145\162\146\151\162\155\141\040\123\056\101\056\061\047\060 +\045\006\003\125\004\003\023\036\107\154\157\142\141\154\040\103 +\150\141\155\142\145\162\163\151\147\156\040\122\157\157\164\040 +\055\040\062\060\060\070\060\036\027\015\060\070\060\070\060\061 +\061\062\063\061\064\060\132\027\015\063\070\060\067\063\061\061 +\062\063\061\064\060\132\060\201\254\061\013\060\011\006\003\125 +\004\006\023\002\105\125\061\103\060\101\006\003\125\004\007\023 +\072\115\141\144\162\151\144\040\050\163\145\145\040\143\165\162 +\162\145\156\164\040\141\144\144\162\145\163\163\040\141\164\040 +\167\167\167\056\143\141\155\145\162\146\151\162\155\141\056\143 +\157\155\057\141\144\144\162\145\163\163\051\061\022\060\020\006 +\003\125\004\005\023\011\101\070\062\067\064\063\062\070\067\061 +\033\060\031\006\003\125\004\012\023\022\101\103\040\103\141\155 +\145\162\146\151\162\155\141\040\123\056\101\056\061\047\060\045 +\006\003\125\004\003\023\036\107\154\157\142\141\154\040\103\150 +\141\155\142\145\162\163\151\147\156\040\122\157\157\164\040\055 +\040\062\060\060\070\060\202\002\042\060\015\006\011\052\206\110 +\206\367\015\001\001\001\005\000\003\202\002\017\000\060\202\002 +\012\002\202\002\001\000\300\337\126\323\344\072\233\166\105\264 +\023\333\377\301\266\031\213\067\101\030\225\122\107\353\027\235 +\051\210\216\065\154\006\062\056\107\142\363\111\004\277\175\104 +\066\261\161\314\275\132\011\163\325\331\205\104\377\221\127\045 +\337\136\066\216\160\321\134\161\103\035\331\332\357\134\322\373 +\033\275\072\265\313\255\243\314\104\247\015\256\041\025\077\271 +\172\133\222\165\330\244\022\070\211\031\212\267\200\322\342\062 +\157\126\234\221\326\210\020\013\263\164\144\222\164\140\363\366 +\317\030\117\140\262\043\320\307\073\316\141\113\231\217\302\014 +\320\100\262\230\334\015\250\116\243\271\012\256\140\240\255\105 +\122\143\272\146\275\150\340\371\276\032\250\201\273\036\101\170 +\165\323\301\376\000\125\260\207\124\350\047\220\065\035\114\063 +\255\227\374\227\056\230\204\277\054\311\243\277\321\230\021\024 +\355\143\370\312\230\210\130\027\231\355\105\003\227\176\074\206 +\036\210\214\276\362\221\204\217\145\064\330\000\114\175\267\061 +\027\132\051\172\012\030\044\060\243\067\265\172\251\001\175\046 +\326\371\016\216\131\361\375\033\063\265\051\073\027\073\101\266 +\041\335\324\300\075\245\237\237\037\103\120\311\273\274\154\172 +\227\230\356\315\214\037\373\234\121\256\213\160\275\047\237\161 +\300\153\254\175\220\146\350\327\135\072\015\260\325\302\215\325 +\310\235\235\301\155\320\320\277\121\344\343\370\303\070\066\256 +\326\247\165\346\257\204\103\135\223\222\014\152\007\336\073\035 +\230\042\326\254\301\065\333\243\240\045\377\162\265\166\035\336 +\155\351\054\146\054\122\204\320\105\222\316\034\345\345\063\035 +\334\007\123\124\243\252\202\073\232\067\057\334\335\240\144\351 +\346\335\275\256\374\144\205\035\074\247\311\006\336\204\377\153 +\350\153\032\074\305\242\263\102\373\213\011\076\137\010\122\307 +\142\304\324\005\161\277\304\144\344\370\241\203\350\076\022\233 +\250\036\324\066\115\057\161\366\215\050\366\203\251\023\322\141 +\301\221\273\110\300\064\217\101\214\113\114\333\151\022\377\120 +\224\234\040\203\131\163\355\174\241\362\361\375\335\367\111\323 +\103\130\240\126\143\312\075\075\345\065\126\131\351\016\312\040 +\314\053\113\223\051\017\002\003\001\000\001\243\202\001\152\060 +\202\001\146\060\022\006\003\125\035\023\001\001\377\004\010\060 +\006\001\001\377\002\001\014\060\035\006\003\125\035\016\004\026 +\004\024\271\011\312\234\036\333\323\154\072\153\256\355\124\361 +\133\223\006\065\056\136\060\201\341\006\003\125\035\043\004\201 +\331\060\201\326\200\024\271\011\312\234\036\333\323\154\072\153 +\256\355\124\361\133\223\006\065\056\136\241\201\262\244\201\257 +\060\201\254\061\013\060\011\006\003\125\004\006\023\002\105\125 +\061\103\060\101\006\003\125\004\007\023\072\115\141\144\162\151 +\144\040\050\163\145\145\040\143\165\162\162\145\156\164\040\141 +\144\144\162\145\163\163\040\141\164\040\167\167\167\056\143\141 +\155\145\162\146\151\162\155\141\056\143\157\155\057\141\144\144 +\162\145\163\163\051\061\022\060\020\006\003\125\004\005\023\011 +\101\070\062\067\064\063\062\070\067\061\033\060\031\006\003\125 +\004\012\023\022\101\103\040\103\141\155\145\162\146\151\162\155 +\141\040\123\056\101\056\061\047\060\045\006\003\125\004\003\023 +\036\107\154\157\142\141\154\040\103\150\141\155\142\145\162\163 +\151\147\156\040\122\157\157\164\040\055\040\062\060\060\070\202 +\011\000\311\315\323\351\325\175\043\316\060\016\006\003\125\035 +\017\001\001\377\004\004\003\002\001\006\060\075\006\003\125\035 +\040\004\066\060\064\060\062\006\004\125\035\040\000\060\052\060 +\050\006\010\053\006\001\005\005\007\002\001\026\034\150\164\164 +\160\072\057\057\160\157\154\151\143\171\056\143\141\155\145\162 +\146\151\162\155\141\056\143\157\155\060\015\006\011\052\206\110 +\206\367\015\001\001\005\005\000\003\202\002\001\000\200\210\177 +\160\336\222\050\331\005\224\106\377\220\127\251\361\057\337\032 +\015\153\372\174\016\034\111\044\171\047\330\106\252\157\051\131 +\122\210\160\022\352\335\075\365\233\123\124\157\341\140\242\250 +\011\271\354\353\131\174\306\065\361\334\030\351\361\147\345\257 +\272\105\340\011\336\312\104\017\302\027\016\167\221\105\172\063 +\137\137\226\054\150\213\301\107\217\230\233\075\300\354\313\365 +\325\202\222\204\065\321\276\066\070\126\162\061\133\107\055\252 +\027\244\143\121\353\012\001\255\177\354\165\236\313\241\037\361 +\177\022\261\271\344\144\177\147\326\043\052\364\270\071\135\230 +\350\041\247\341\275\075\102\032\164\232\160\257\150\154\120\135 +\111\317\377\373\016\135\346\054\107\327\201\072\131\000\265\163 +\153\143\040\366\061\105\010\071\016\364\160\176\100\160\132\077 +\320\153\102\251\164\075\050\057\002\155\165\162\225\011\215\110 +\143\306\306\043\127\222\223\136\065\301\215\371\012\367\054\235 +\142\034\366\255\174\335\246\061\036\266\261\307\176\205\046\372 +\244\152\265\332\143\060\321\357\223\067\262\146\057\175\005\367 +\347\267\113\230\224\065\300\331\072\051\301\235\262\120\063\035 +\112\251\132\246\311\003\357\355\364\347\250\156\212\264\127\204 +\353\244\077\320\356\252\252\207\133\143\350\223\342\153\250\324 +\270\162\170\153\033\355\071\344\135\313\233\252\207\325\117\116 +\000\376\331\152\237\074\061\017\050\002\001\175\230\350\247\260 +\242\144\236\171\370\110\362\025\251\314\346\310\104\353\077\170 +\231\362\173\161\076\074\361\230\247\305\030\022\077\346\273\050 +\063\102\351\105\012\174\155\362\206\171\057\305\202\031\175\011 +\211\174\262\124\166\210\256\336\301\363\314\341\156\333\061\326 +\223\256\231\240\357\045\152\163\230\211\133\072\056\023\210\036 +\277\300\222\224\064\033\343\047\267\213\036\157\102\377\347\351 +\067\233\120\035\055\242\371\002\356\313\130\130\072\161\274\150 +\343\252\301\257\034\050\037\242\334\043\145\077\201\352\256\231 +\323\330\060\317\023\015\117\025\311\204\274\247\110\055\370\060 +\043\167\330\106\113\171\155\366\214\355\072\177\140\021\170\364 +\351\233\256\325\124\300\164\200\321\013\102\237\301 +END + +# Trust for Certificate "Global Chambersign Root - 2008" +CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "Global Chambersign Root - 2008" +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\112\275\356\354\225\015\065\234\211\256\307\122\241\054\133\051 +\366\326\252\014 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\236\200\377\170\001\014\056\301\066\275\376\226\220\156\010\363 +END +CKA_ISSUER MULTILINE_OCTAL +\060\201\254\061\013\060\011\006\003\125\004\006\023\002\105\125 +\061\103\060\101\006\003\125\004\007\023\072\115\141\144\162\151 +\144\040\050\163\145\145\040\143\165\162\162\145\156\164\040\141 +\144\144\162\145\163\163\040\141\164\040\167\167\167\056\143\141 +\155\145\162\146\151\162\155\141\056\143\157\155\057\141\144\144 +\162\145\163\163\051\061\022\060\020\006\003\125\004\005\023\011 +\101\070\062\067\064\063\062\070\067\061\033\060\031\006\003\125 +\004\012\023\022\101\103\040\103\141\155\145\162\146\151\162\155 +\141\040\123\056\101\056\061\047\060\045\006\003\125\004\003\023 +\036\107\154\157\142\141\154\040\103\150\141\155\142\145\162\163 +\151\147\156\040\122\157\157\164\040\055\040\062\060\060\070 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\011\000\311\315\323\351\325\175\043\316 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "Bogus Mozilla Addons" +# +CKA_CLASS CK_OBJECT_CLASS CKO_CERTIFICATE +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "Bogus Mozilla Addons" +CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509 +CKA_SUBJECT MULTILINE_OCTAL +\060\201\342\061\013\060\011\006\003\125\004\006\023\002\125\123 +\061\016\060\014\006\003\125\004\021\023\005\063\070\064\067\067 +\061\020\060\016\006\003\125\004\010\023\007\106\154\157\162\151 +\144\141\061\020\060\016\006\003\125\004\007\023\007\105\156\147 +\154\151\163\150\061\027\060\025\006\003\125\004\011\023\016\123 +\145\141\040\126\151\154\154\141\147\145\040\061\060\061\024\060 +\022\006\003\125\004\012\023\013\107\157\157\147\154\145\040\114 +\164\144\056\061\023\060\021\006\003\125\004\013\023\012\124\145 +\143\150\040\104\145\160\164\056\061\050\060\046\006\003\125\004 +\013\023\037\110\157\163\164\145\144\040\142\171\040\107\124\111 +\040\107\162\157\165\160\040\103\157\162\160\157\162\141\164\151 +\157\156\061\024\060\022\006\003\125\004\013\023\013\120\154\141 +\164\151\156\165\155\123\123\114\061\033\060\031\006\003\125\004 +\003\023\022\141\144\144\157\156\163\056\155\157\172\151\154\154 +\141\056\157\162\147 +END +CKA_ID UTF8 "0" +CKA_ISSUER MULTILINE_OCTAL +\060\201\227\061\013\060\011\006\003\125\004\006\023\002\125\123 +\061\013\060\011\006\003\125\004\010\023\002\125\124\061\027\060 +\025\006\003\125\004\007\023\016\123\141\154\164\040\114\141\153 +\145\040\103\151\164\171\061\036\060\034\006\003\125\004\012\023 +\025\124\150\145\040\125\123\105\122\124\122\125\123\124\040\116 +\145\164\167\157\162\153\061\041\060\037\006\003\125\004\013\023 +\030\150\164\164\160\072\057\057\167\167\167\056\165\163\145\162 +\164\162\165\163\164\056\143\157\155\061\037\060\035\006\003\125 +\004\003\023\026\125\124\116\055\125\123\105\122\106\151\162\163 +\164\055\110\141\162\144\167\141\162\145 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\021\000\222\071\325\064\217\100\321\151\132\164\124\160\341 +\362\077\103 +END +CKA_VALUE MULTILINE_OCTAL +\060\202\005\370\060\202\004\340\240\003\002\001\002\002\021\000 +\222\071\325\064\217\100\321\151\132\164\124\160\341\362\077\103 +\060\015\006\011\052\206\110\206\367\015\001\001\005\005\000\060 +\201\227\061\013\060\011\006\003\125\004\006\023\002\125\123\061 +\013\060\011\006\003\125\004\010\023\002\125\124\061\027\060\025 +\006\003\125\004\007\023\016\123\141\154\164\040\114\141\153\145 +\040\103\151\164\171\061\036\060\034\006\003\125\004\012\023\025 +\124\150\145\040\125\123\105\122\124\122\125\123\124\040\116\145 +\164\167\157\162\153\061\041\060\037\006\003\125\004\013\023\030 +\150\164\164\160\072\057\057\167\167\167\056\165\163\145\162\164 +\162\165\163\164\056\143\157\155\061\037\060\035\006\003\125\004 +\003\023\026\125\124\116\055\125\123\105\122\106\151\162\163\164 +\055\110\141\162\144\167\141\162\145\060\036\027\015\061\061\060 +\063\061\065\060\060\060\060\060\060\132\027\015\061\064\060\063 +\061\064\062\063\065\071\065\071\132\060\201\342\061\013\060\011 +\006\003\125\004\006\023\002\125\123\061\016\060\014\006\003\125 +\004\021\023\005\063\070\064\067\067\061\020\060\016\006\003\125 +\004\010\023\007\106\154\157\162\151\144\141\061\020\060\016\006 +\003\125\004\007\023\007\105\156\147\154\151\163\150\061\027\060 +\025\006\003\125\004\011\023\016\123\145\141\040\126\151\154\154 +\141\147\145\040\061\060\061\024\060\022\006\003\125\004\012\023 +\013\107\157\157\147\154\145\040\114\164\144\056\061\023\060\021 +\006\003\125\004\013\023\012\124\145\143\150\040\104\145\160\164 +\056\061\050\060\046\006\003\125\004\013\023\037\110\157\163\164 +\145\144\040\142\171\040\107\124\111\040\107\162\157\165\160\040 +\103\157\162\160\157\162\141\164\151\157\156\061\024\060\022\006 +\003\125\004\013\023\013\120\154\141\164\151\156\165\155\123\123 +\114\061\033\060\031\006\003\125\004\003\023\022\141\144\144\157 +\156\163\056\155\157\172\151\154\154\141\056\157\162\147\060\202 +\001\042\060\015\006\011\052\206\110\206\367\015\001\001\001\005 +\000\003\202\001\017\000\060\202\001\012\002\202\001\001\000\253 +\306\155\066\363\025\163\170\203\163\316\164\205\325\256\354\262 +\360\340\044\037\023\203\270\040\254\273\232\376\210\273\253\241 +\035\013\037\105\000\252\111\267\065\067\014\152\357\107\114\271 +\321\276\343\127\022\004\215\222\307\266\354\001\274\266\332\307 +\201\070\040\255\162\205\346\016\374\201\154\007\255\150\166\070 +\305\104\327\314\306\112\305\227\076\144\364\121\346\360\176\262 +\354\126\367\045\202\115\111\230\313\026\230\335\043\361\211\221 +\321\027\227\100\231\046\326\342\242\053\136\337\275\211\362\033 +\032\123\055\314\120\101\172\320\075\052\014\125\160\024\001\351 +\130\111\020\172\013\223\202\213\341\036\355\072\200\020\202\316 +\226\212\064\360\314\327\323\271\264\120\207\125\124\011\270\235 +\102\050\125\000\345\214\065\124\277\335\045\221\106\267\015\345 +\135\203\250\345\213\373\204\344\074\256\166\332\304\103\053\133 +\164\013\370\276\135\150\361\170\133\265\316\175\361\135\231\100 +\332\312\356\070\201\120\276\230\241\154\270\044\255\363\257\214 +\017\327\021\050\054\204\030\114\175\265\331\217\060\265\033\002 +\003\001\000\001\243\202\001\360\060\202\001\354\060\037\006\003 +\125\035\043\004\030\060\026\200\024\241\162\137\046\033\050\230 +\103\225\135\007\067\325\205\226\235\113\322\303\105\060\035\006 +\003\125\035\016\004\026\004\024\335\200\322\124\075\367\114\160 +\312\243\260\335\064\172\062\344\350\073\132\073\060\016\006\003 +\125\035\017\001\001\377\004\004\003\002\005\240\060\014\006\003 +\125\035\023\001\001\377\004\002\060\000\060\035\006\003\125\035 +\045\004\026\060\024\006\010\053\006\001\005\005\007\003\001\006 +\010\053\006\001\005\005\007\003\002\060\106\006\003\125\035\040 +\004\077\060\075\060\073\006\014\053\006\001\004\001\262\061\001 +\002\001\003\004\060\053\060\051\006\010\053\006\001\005\005\007 +\002\001\026\035\150\164\164\160\163\072\057\057\163\145\143\165 +\162\145\056\143\157\155\157\144\157\056\143\157\155\057\103\120 +\123\060\173\006\003\125\035\037\004\164\060\162\060\070\240\066 +\240\064\206\062\150\164\164\160\072\057\057\143\162\154\056\143 +\157\155\157\144\157\143\141\056\143\157\155\057\125\124\116\055 +\125\123\105\122\106\151\162\163\164\055\110\141\162\144\167\141 +\162\145\056\143\162\154\060\066\240\064\240\062\206\060\150\164 +\164\160\072\057\057\143\162\154\056\143\157\155\157\144\157\056 +\156\145\164\057\125\124\116\055\125\123\105\122\106\151\162\163 +\164\055\110\141\162\144\167\141\162\145\056\143\162\154\060\161 +\006\010\053\006\001\005\005\007\001\001\004\145\060\143\060\073 +\006\010\053\006\001\005\005\007\060\002\206\057\150\164\164\160 +\072\057\057\143\162\164\056\143\157\155\157\144\157\143\141\056 +\143\157\155\057\125\124\116\101\144\144\124\162\165\163\164\123 +\145\162\166\145\162\103\101\056\143\162\164\060\044\006\010\053 +\006\001\005\005\007\060\001\206\030\150\164\164\160\072\057\057 +\157\143\163\160\056\143\157\155\157\144\157\143\141\056\143\157 +\155\060\065\006\003\125\035\021\004\056\060\054\202\022\141\144 +\144\157\156\163\056\155\157\172\151\154\154\141\056\157\162\147 +\202\026\167\167\167\056\141\144\144\157\156\163\056\155\157\172 +\151\154\154\141\056\157\162\147\060\015\006\011\052\206\110\206 +\367\015\001\001\005\005\000\003\202\001\001\000\063\073\143\025 +\374\261\354\024\054\223\335\165\224\336\201\132\331\116\231\276 +\373\112\244\071\125\115\241\100\172\336\023\052\207\251\067\317 +\350\325\373\255\321\173\155\157\214\040\207\202\124\346\127\111 +\274\040\050\204\315\326\001\331\223\213\027\156\043\146\345\204 +\310\200\077\306\241\160\200\344\354\115\035\371\374\221\132\163 +\142\051\232\367\040\034\141\340\213\071\237\312\274\176\215\335 +\274\331\261\343\237\236\337\025\123\221\041\122\013\331\032\043 +\017\146\066\333\254\223\226\112\243\245\042\317\051\367\242\231 +\250\366\266\331\100\256\331\176\266\366\130\056\233\254\066\312 +\144\217\145\122\334\206\234\202\253\156\120\113\332\137\372\005 +\000\210\060\016\336\215\126\277\201\107\215\075\006\342\262\142 +\222\147\217\236\310\232\262\345\006\270\160\044\270\167\174\043 +\012\070\303\171\010\330\261\121\235\254\225\021\307\100\027\236 +\243\034\217\362\021\247\150\047\332\111\005\204\030\174\130\055 +\001\147\134\345\237\241\051\273\112\071\105\057\277\021\252\171 +\242\355\264\324\265\145\103\267\223\106\212\323 +END + +# Trust for Certificate "Bogus Mozilla Addons" +CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "Bogus Mozilla Addons" +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\060\137\213\321\172\242\313\304\203\244\304\033\031\243\232\014 +\165\332\071\326 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\204\305\030\147\037\052\032\220\276\342\261\030\117\003\000\062 +END +CKA_ISSUER MULTILINE_OCTAL +\060\201\227\061\013\060\011\006\003\125\004\006\023\002\125\123 +\061\013\060\011\006\003\125\004\010\023\002\125\124\061\027\060 +\025\006\003\125\004\007\023\016\123\141\154\164\040\114\141\153 +\145\040\103\151\164\171\061\036\060\034\006\003\125\004\012\023 +\025\124\150\145\040\125\123\105\122\124\122\125\123\124\040\116 +\145\164\167\157\162\153\061\041\060\037\006\003\125\004\013\023 +\030\150\164\164\160\072\057\057\167\167\167\056\165\163\145\162 +\164\162\165\163\164\056\143\157\155\061\037\060\035\006\003\125 +\004\003\023\026\125\124\116\055\125\123\105\122\106\151\162\163 +\164\055\110\141\162\144\167\141\162\145 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\021\000\222\071\325\064\217\100\321\151\132\164\124\160\341 +\362\077\103 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_NOT_TRUSTED +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_NOT_TRUSTED +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_NOT_TRUSTED +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "Bogus Global Trustee" +# +CKA_CLASS CK_OBJECT_CLASS CKO_CERTIFICATE +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "Bogus Global Trustee" +CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509 +CKA_SUBJECT MULTILINE_OCTAL +\060\201\343\061\013\060\011\006\003\125\004\006\023\002\125\123 +\061\016\060\014\006\003\125\004\021\023\005\063\070\064\067\067 +\061\020\060\016\006\003\125\004\010\023\007\106\154\157\162\151 +\144\141\061\016\060\014\006\003\125\004\007\023\005\124\141\155 +\160\141\061\027\060\025\006\003\125\004\011\023\016\123\145\141 +\040\126\151\154\154\141\147\145\040\061\060\061\027\060\025\006 +\003\125\004\012\023\016\107\154\157\142\141\154\040\124\162\165 +\163\164\145\145\061\027\060\025\006\003\125\004\013\023\016\107 +\154\157\142\141\154\040\124\162\165\163\164\145\145\061\050\060 +\046\006\003\125\004\013\023\037\110\157\163\164\145\144\040\142 +\171\040\107\124\111\040\107\162\157\165\160\040\103\157\162\160 +\157\162\141\164\151\157\156\061\024\060\022\006\003\125\004\013 +\023\013\120\154\141\164\151\156\165\155\123\123\114\061\027\060 +\025\006\003\125\004\003\023\016\147\154\157\142\141\154\040\164 +\162\165\163\164\145\145 +END +CKA_ID UTF8 "0" +CKA_ISSUER MULTILINE_OCTAL +\060\201\227\061\013\060\011\006\003\125\004\006\023\002\125\123 +\061\013\060\011\006\003\125\004\010\023\002\125\124\061\027\060 +\025\006\003\125\004\007\023\016\123\141\154\164\040\114\141\153 +\145\040\103\151\164\171\061\036\060\034\006\003\125\004\012\023 +\025\124\150\145\040\125\123\105\122\124\122\125\123\124\040\116 +\145\164\167\157\162\153\061\041\060\037\006\003\125\004\013\023 +\030\150\164\164\160\072\057\057\167\167\167\056\165\163\145\162 +\164\162\165\163\164\056\143\157\155\061\037\060\035\006\003\125 +\004\003\023\026\125\124\116\055\125\123\105\122\106\151\162\163 +\164\055\110\141\162\144\167\141\162\145 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\021\000\330\363\137\116\267\207\053\055\253\006\222\343\025 +\070\057\260 +END +CKA_VALUE MULTILINE_OCTAL +\060\202\006\335\060\202\005\305\240\003\002\001\002\002\021\000 +\330\363\137\116\267\207\053\055\253\006\222\343\025\070\057\260 +\060\015\006\011\052\206\110\206\367\015\001\001\005\005\000\060 +\201\227\061\013\060\011\006\003\125\004\006\023\002\125\123\061 +\013\060\011\006\003\125\004\010\023\002\125\124\061\027\060\025 +\006\003\125\004\007\023\016\123\141\154\164\040\114\141\153\145 +\040\103\151\164\171\061\036\060\034\006\003\125\004\012\023\025 +\124\150\145\040\125\123\105\122\124\122\125\123\124\040\116\145 +\164\167\157\162\153\061\041\060\037\006\003\125\004\013\023\030 +\150\164\164\160\072\057\057\167\167\167\056\165\163\145\162\164 +\162\165\163\164\056\143\157\155\061\037\060\035\006\003\125\004 +\003\023\026\125\124\116\055\125\123\105\122\106\151\162\163\164 +\055\110\141\162\144\167\141\162\145\060\036\027\015\061\061\060 +\063\061\065\060\060\060\060\060\060\132\027\015\061\064\060\063 +\061\064\062\063\065\071\065\071\132\060\201\343\061\013\060\011 +\006\003\125\004\006\023\002\125\123\061\016\060\014\006\003\125 +\004\021\023\005\063\070\064\067\067\061\020\060\016\006\003\125 +\004\010\023\007\106\154\157\162\151\144\141\061\016\060\014\006 +\003\125\004\007\023\005\124\141\155\160\141\061\027\060\025\006 +\003\125\004\011\023\016\123\145\141\040\126\151\154\154\141\147 +\145\040\061\060\061\027\060\025\006\003\125\004\012\023\016\107 +\154\157\142\141\154\040\124\162\165\163\164\145\145\061\027\060 +\025\006\003\125\004\013\023\016\107\154\157\142\141\154\040\124 +\162\165\163\164\145\145\061\050\060\046\006\003\125\004\013\023 +\037\110\157\163\164\145\144\040\142\171\040\107\124\111\040\107 +\162\157\165\160\040\103\157\162\160\157\162\141\164\151\157\156 +\061\024\060\022\006\003\125\004\013\023\013\120\154\141\164\151 +\156\165\155\123\123\114\061\027\060\025\006\003\125\004\003\023 +\016\147\154\157\142\141\154\040\164\162\165\163\164\145\145\060 +\202\002\042\060\015\006\011\052\206\110\206\367\015\001\001\001 +\005\000\003\202\002\017\000\060\202\002\012\002\202\002\001\000 +\331\164\362\252\101\035\337\365\302\026\103\111\134\051\277\266 +\211\164\051\274\234\215\014\106\117\131\176\262\101\027\146\064 +\014\145\211\341\154\045\343\206\012\236\042\105\042\214\335\235 +\346\243\225\336\334\210\002\125\134\343\133\221\165\353\046\151 +\143\271\056\306\312\056\047\337\210\272\002\040\156\376\271\013 +\051\327\247\326\327\110\032\034\316\335\037\251\047\016\142\117 +\241\226\036\335\124\072\064\143\112\166\365\167\175\131\147\330 +\020\324\265\017\072\103\042\230\333\364\011\304\012\160\316\335 +\220\324\057\357\164\023\303\315\302\211\071\142\025\235\346\164 +\250\350\233\360\143\156\234\211\266\016\255\233\367\314\202\350 +\350\055\270\013\332\042\354\111\205\007\210\231\230\077\364\164 +\251\011\367\201\174\227\013\131\231\030\162\213\333\224\202\053 +\247\350\252\153\227\277\210\176\165\260\213\105\105\014\307\250 +\011\352\033\101\130\060\073\137\170\145\025\064\322\344\074\064 +\015\035\330\144\074\212\245\126\111\231\050\055\113\362\317\315 +\331\156\111\144\233\251\171\220\167\125\251\010\033\255\032\164 +\236\340\003\223\012\011\267\255\247\264\134\357\203\154\267\232 +\264\306\150\100\200\035\102\321\156\171\233\251\031\041\232\234 +\371\206\055\000\321\064\376\340\266\371\125\266\365\046\305\225 +\026\245\174\163\237\012\051\211\254\072\230\367\233\164\147\267 +\220\267\135\011\043\152\152\355\054\020\356\123\012\020\360\026 +\037\127\263\261\015\171\221\031\260\353\315\060\077\240\024\137 +\263\306\375\134\063\247\260\377\230\260\125\214\271\245\362\157 +\107\044\111\041\151\314\102\242\121\000\100\205\214\202\202\253 +\062\245\313\232\334\320\331\030\015\337\031\364\257\203\015\301 +\076\061\333\044\110\266\165\200\241\341\311\167\144\036\247\345 +\213\177\025\115\113\247\302\320\355\171\225\136\221\061\354\030 +\377\116\237\110\024\352\165\272\041\316\051\166\351\037\116\121 +\207\056\263\314\004\140\272\043\037\037\145\262\012\270\325\156 +\217\113\102\211\107\251\201\220\133\053\262\266\256\346\240\160 +\173\170\220\012\172\305\345\347\305\373\012\366\057\151\214\214 +\037\127\340\006\231\377\021\325\122\062\040\227\047\230\356\145 +\002\003\001\000\001\243\202\001\324\060\202\001\320\060\037\006 +\003\125\035\043\004\030\060\026\200\024\241\162\137\046\033\050 +\230\103\225\135\007\067\325\205\226\235\113\322\303\105\060\035 +\006\003\125\035\016\004\026\004\024\267\303\336\032\103\355\101 +\227\251\217\051\170\234\003\271\254\100\102\000\254\060\016\006 +\003\125\035\017\001\001\377\004\004\003\002\005\240\060\014\006 +\003\125\035\023\001\001\377\004\002\060\000\060\035\006\003\125 +\035\045\004\026\060\024\006\010\053\006\001\005\005\007\003\001 +\006\010\053\006\001\005\005\007\003\002\060\106\006\003\125\035 +\040\004\077\060\075\060\073\006\014\053\006\001\004\001\262\061 +\001\002\001\003\004\060\053\060\051\006\010\053\006\001\005\005 +\007\002\001\026\035\150\164\164\160\163\072\057\057\163\145\143 +\165\162\145\056\143\157\155\157\144\157\056\143\157\155\057\103 +\120\123\060\173\006\003\125\035\037\004\164\060\162\060\070\240 +\066\240\064\206\062\150\164\164\160\072\057\057\143\162\154\056 +\143\157\155\157\144\157\143\141\056\143\157\155\057\125\124\116 +\055\125\123\105\122\106\151\162\163\164\055\110\141\162\144\167 +\141\162\145\056\143\162\154\060\066\240\064\240\062\206\060\150 +\164\164\160\072\057\057\143\162\154\056\143\157\155\157\144\157 +\056\156\145\164\057\125\124\116\055\125\123\105\122\106\151\162 +\163\164\055\110\141\162\144\167\141\162\145\056\143\162\154\060 +\161\006\010\053\006\001\005\005\007\001\001\004\145\060\143\060 +\073\006\010\053\006\001\005\005\007\060\002\206\057\150\164\164 +\160\072\057\057\143\162\164\056\143\157\155\157\144\157\143\141 +\056\143\157\155\057\125\124\116\101\144\144\124\162\165\163\164 +\123\145\162\166\145\162\103\101\056\143\162\164\060\044\006\010 +\053\006\001\005\005\007\060\001\206\030\150\164\164\160\072\057 +\057\157\143\163\160\056\143\157\155\157\144\157\143\141\056\143 +\157\155\060\031\006\003\125\035\021\004\022\060\020\202\016\147 +\154\157\142\141\154\040\164\162\165\163\164\145\145\060\015\006 +\011\052\206\110\206\367\015\001\001\005\005\000\003\202\001\001 +\000\217\272\165\272\071\324\046\323\160\017\304\263\002\247\305 +\022\043\161\311\376\143\351\243\142\170\044\104\117\324\271\021 +\076\037\307\050\347\125\153\356\364\341\000\221\206\212\311\011 +\153\237\056\244\105\071\321\141\142\136\223\245\005\105\170\237 +\140\022\054\364\154\145\145\015\314\106\064\213\050\272\240\306 +\364\231\161\144\363\042\166\254\117\363\142\311\247\063\132\007 +\037\075\311\206\200\334\333\004\057\207\047\350\277\110\104\201 +\300\360\111\043\156\037\345\344\003\206\044\023\242\205\142\174 +\130\004\312\346\215\023\162\012\272\126\104\242\017\274\373\240 +\075\015\052\177\373\236\251\011\075\267\132\324\212\215\341\045 +\350\244\011\204\160\255\022\104\271\317\271\063\172\272\134\346 +\113\246\273\005\006\230\377\362\230\122\173\167\200\047\112\331 +\342\372\271\122\324\373\373\346\326\055\236\217\301\025\104\215 +\233\164\057\356\224\132\116\323\304\213\212\254\103\235\163\366 +\256\014\207\211\255\207\311\311\307\335\272\024\140\172\370\265 +\065\235\302\215\306\226\201\015\251\122\212\051\100\004\351\031 +\264 +END + +# Trust for Certificate "Bogus Global Trustee" +CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "Bogus Global Trustee" +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\141\171\077\313\372\117\220\010\060\233\272\137\361\055\054\262 +\234\324\025\032 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\376\015\001\156\161\313\214\330\077\016\014\315\111\065\270\127 +END +CKA_ISSUER MULTILINE_OCTAL +\060\201\227\061\013\060\011\006\003\125\004\006\023\002\125\123 +\061\013\060\011\006\003\125\004\010\023\002\125\124\061\027\060 +\025\006\003\125\004\007\023\016\123\141\154\164\040\114\141\153 +\145\040\103\151\164\171\061\036\060\034\006\003\125\004\012\023 +\025\124\150\145\040\125\123\105\122\124\122\125\123\124\040\116 +\145\164\167\157\162\153\061\041\060\037\006\003\125\004\013\023 +\030\150\164\164\160\072\057\057\167\167\167\056\165\163\145\162 +\164\162\165\163\164\056\143\157\155\061\037\060\035\006\003\125 +\004\003\023\026\125\124\116\055\125\123\105\122\106\151\162\163 +\164\055\110\141\162\144\167\141\162\145 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\021\000\330\363\137\116\267\207\053\055\253\006\222\343\025 +\070\057\260 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_NOT_TRUSTED +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_NOT_TRUSTED +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_NOT_TRUSTED +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "Bogus GMail" +# +CKA_CLASS CK_OBJECT_CLASS CKO_CERTIFICATE +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "Bogus GMail" +CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509 +CKA_SUBJECT MULTILINE_OCTAL +\060\201\337\061\013\060\011\006\003\125\004\006\023\002\125\123 +\061\016\060\014\006\003\125\004\021\023\005\063\070\064\067\067 +\061\020\060\016\006\003\125\004\010\023\007\106\154\157\162\151 +\144\141\061\020\060\016\006\003\125\004\007\023\007\105\156\147 +\154\151\163\150\061\027\060\025\006\003\125\004\011\023\016\123 +\145\141\040\126\151\154\154\141\147\145\040\061\060\061\024\060 +\022\006\003\125\004\012\023\013\107\157\157\147\154\145\040\114 +\164\144\056\061\023\060\021\006\003\125\004\013\023\012\124\145 +\143\150\040\104\145\160\164\056\061\050\060\046\006\003\125\004 +\013\023\037\110\157\163\164\145\144\040\142\171\040\107\124\111 +\040\107\162\157\165\160\040\103\157\162\160\157\162\141\164\151 +\157\156\061\024\060\022\006\003\125\004\013\023\013\120\154\141 +\164\151\156\165\155\123\123\114\061\030\060\026\006\003\125\004 +\003\023\017\155\141\151\154\056\147\157\157\147\154\145\056\143 +\157\155 +END +CKA_ID UTF8 "0" +CKA_ISSUER MULTILINE_OCTAL +\060\201\227\061\013\060\011\006\003\125\004\006\023\002\125\123 +\061\013\060\011\006\003\125\004\010\023\002\125\124\061\027\060 +\025\006\003\125\004\007\023\016\123\141\154\164\040\114\141\153 +\145\040\103\151\164\171\061\036\060\034\006\003\125\004\012\023 +\025\124\150\145\040\125\123\105\122\124\122\125\123\124\040\116 +\145\164\167\157\162\153\061\041\060\037\006\003\125\004\013\023 +\030\150\164\164\160\072\057\057\167\167\167\056\165\163\145\162 +\164\162\165\163\164\056\143\157\155\061\037\060\035\006\003\125 +\004\003\023\026\125\124\116\055\125\123\105\122\106\151\162\163 +\164\055\110\141\162\144\167\141\162\145 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\020\004\176\313\351\374\245\137\173\320\236\256\066\341\014 +\256\036 +END +CKA_VALUE MULTILINE_OCTAL +\060\202\005\356\060\202\004\326\240\003\002\001\002\002\020\004 +\176\313\351\374\245\137\173\320\236\256\066\341\014\256\036\060 +\015\006\011\052\206\110\206\367\015\001\001\005\005\000\060\201 +\227\061\013\060\011\006\003\125\004\006\023\002\125\123\061\013 +\060\011\006\003\125\004\010\023\002\125\124\061\027\060\025\006 +\003\125\004\007\023\016\123\141\154\164\040\114\141\153\145\040 +\103\151\164\171\061\036\060\034\006\003\125\004\012\023\025\124 +\150\145\040\125\123\105\122\124\122\125\123\124\040\116\145\164 +\167\157\162\153\061\041\060\037\006\003\125\004\013\023\030\150 +\164\164\160\072\057\057\167\167\167\056\165\163\145\162\164\162 +\165\163\164\056\143\157\155\061\037\060\035\006\003\125\004\003 +\023\026\125\124\116\055\125\123\105\122\106\151\162\163\164\055 +\110\141\162\144\167\141\162\145\060\036\027\015\061\061\060\063 +\061\065\060\060\060\060\060\060\132\027\015\061\064\060\063\061 +\064\062\063\065\071\065\071\132\060\201\337\061\013\060\011\006 +\003\125\004\006\023\002\125\123\061\016\060\014\006\003\125\004 +\021\023\005\063\070\064\067\067\061\020\060\016\006\003\125\004 +\010\023\007\106\154\157\162\151\144\141\061\020\060\016\006\003 +\125\004\007\023\007\105\156\147\154\151\163\150\061\027\060\025 +\006\003\125\004\011\023\016\123\145\141\040\126\151\154\154\141 +\147\145\040\061\060\061\024\060\022\006\003\125\004\012\023\013 +\107\157\157\147\154\145\040\114\164\144\056\061\023\060\021\006 +\003\125\004\013\023\012\124\145\143\150\040\104\145\160\164\056 +\061\050\060\046\006\003\125\004\013\023\037\110\157\163\164\145 +\144\040\142\171\040\107\124\111\040\107\162\157\165\160\040\103 +\157\162\160\157\162\141\164\151\157\156\061\024\060\022\006\003 +\125\004\013\023\013\120\154\141\164\151\156\165\155\123\123\114 +\061\030\060\026\006\003\125\004\003\023\017\155\141\151\154\056 +\147\157\157\147\154\145\056\143\157\155\060\202\001\042\060\015 +\006\011\052\206\110\206\367\015\001\001\001\005\000\003\202\001 +\017\000\060\202\001\012\002\202\001\001\000\260\163\360\362\004 +\356\302\242\106\312\064\052\252\273\140\043\321\021\166\037\037 +\072\320\145\203\116\232\105\250\103\160\205\166\360\037\207\000 +\002\037\156\073\027\027\304\265\351\031\106\242\222\045\215\142 +\052\264\143\060\037\271\205\370\065\341\026\132\166\111\314\120 +\110\123\071\131\211\326\204\002\373\232\354\033\307\121\325\166 +\225\220\324\072\052\270\246\336\002\115\006\373\315\355\245\106 +\101\137\125\164\345\354\176\100\334\120\234\265\344\065\135\036 +\150\040\370\351\336\243\152\050\277\101\322\241\263\342\045\215 +\014\033\312\075\223\014\030\256\337\305\274\375\274\202\272\150 +\000\327\026\062\161\237\145\265\021\332\150\131\320\246\127\144 +\033\311\376\230\345\365\245\145\352\341\333\356\364\263\235\263 +\216\352\207\256\026\322\036\240\174\174\151\077\051\026\205\001 +\123\247\154\361\140\253\335\242\374\045\107\324\062\321\022\335 +\367\110\022\340\374\234\242\167\230\351\211\231\270\370\070\361 +\214\006\302\172\043\066\155\233\235\315\060\310\307\064\027\036 +\273\175\102\310\253\347\025\026\366\163\265\002\003\001\000\001 +\243\202\001\352\060\202\001\346\060\037\006\003\125\035\043\004 +\030\060\026\200\024\241\162\137\046\033\050\230\103\225\135\007 +\067\325\205\226\235\113\322\303\105\060\035\006\003\125\035\016 +\004\026\004\024\030\052\242\310\324\172\077\173\255\004\213\275 +\157\236\020\106\023\170\161\235\060\016\006\003\125\035\017\001 +\001\377\004\004\003\002\005\240\060\014\006\003\125\035\023\001 +\001\377\004\002\060\000\060\035\006\003\125\035\045\004\026\060 +\024\006\010\053\006\001\005\005\007\003\001\006\010\053\006\001 +\005\005\007\003\002\060\106\006\003\125\035\040\004\077\060\075 +\060\073\006\014\053\006\001\004\001\262\061\001\002\001\003\004 +\060\053\060\051\006\010\053\006\001\005\005\007\002\001\026\035 +\150\164\164\160\163\072\057\057\163\145\143\165\162\145\056\143 +\157\155\157\144\157\056\143\157\155\057\103\120\123\060\173\006 +\003\125\035\037\004\164\060\162\060\070\240\066\240\064\206\062 +\150\164\164\160\072\057\057\143\162\154\056\143\157\155\157\144 +\157\143\141\056\143\157\155\057\125\124\116\055\125\123\105\122 +\106\151\162\163\164\055\110\141\162\144\167\141\162\145\056\143 +\162\154\060\066\240\064\240\062\206\060\150\164\164\160\072\057 +\057\143\162\154\056\143\157\155\157\144\157\056\156\145\164\057 +\125\124\116\055\125\123\105\122\106\151\162\163\164\055\110\141 +\162\144\167\141\162\145\056\143\162\154\060\161\006\010\053\006 +\001\005\005\007\001\001\004\145\060\143\060\073\006\010\053\006 +\001\005\005\007\060\002\206\057\150\164\164\160\072\057\057\143 +\162\164\056\143\157\155\157\144\157\143\141\056\143\157\155\057 +\125\124\116\101\144\144\124\162\165\163\164\123\145\162\166\145 +\162\103\101\056\143\162\164\060\044\006\010\053\006\001\005\005 +\007\060\001\206\030\150\164\164\160\072\057\057\157\143\163\160 +\056\143\157\155\157\144\157\143\141\056\143\157\155\060\057\006 +\003\125\035\021\004\050\060\046\202\017\155\141\151\154\056\147 +\157\157\147\154\145\056\143\157\155\202\023\167\167\167\056\155 +\141\151\154\056\147\157\157\147\154\145\056\143\157\155\060\015 +\006\011\052\206\110\206\367\015\001\001\005\005\000\003\202\001 +\001\000\147\006\010\012\047\305\223\156\002\362\336\027\077\320 +\323\033\174\377\265\315\172\307\167\307\276\337\022\312\031\336 +\260\023\127\014\003\221\304\171\122\317\177\267\136\125\040\204 +\111\335\365\320\051\057\016\004\332\131\236\016\023\237\364\300 +\062\233\377\241\021\044\052\227\243\362\077\075\052\153\250\255 +\214\031\165\225\016\035\045\375\117\304\172\025\303\035\307\023 +\100\310\015\276\227\140\162\246\376\045\276\217\354\325\246\206 +\303\041\134\131\122\331\152\013\134\237\113\336\265\371\354\342 +\364\305\314\142\123\166\211\145\344\051\332\267\277\226\340\140 +\215\015\267\011\125\326\100\125\035\301\362\226\041\165\257\211 +\206\037\135\201\227\051\050\036\051\327\226\301\040\003\062\173 +\000\073\152\067\027\132\243\263\032\157\062\073\156\361\243\135 +\253\253\314\052\313\060\014\037\065\043\213\151\104\134\352\254 +\050\140\355\253\153\143\236\366\222\274\275\232\132\046\114\305 +\230\270\016\031\076\374\005\061\343\026\331\375\220\005\003\206 +\306\127\001\037\177\170\240\317\063\152\252\146\153\042\320\247 +\111\043 +END + +# Trust for Certificate "Bogus GMail" +CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "Bogus GMail" +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\144\061\162\060\066\375\046\336\245\002\171\057\245\225\222\044 +\223\003\017\227 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\114\167\037\353\312\061\301\051\230\351\054\020\263\257\111\034 +END +CKA_ISSUER MULTILINE_OCTAL +\060\201\227\061\013\060\011\006\003\125\004\006\023\002\125\123 +\061\013\060\011\006\003\125\004\010\023\002\125\124\061\027\060 +\025\006\003\125\004\007\023\016\123\141\154\164\040\114\141\153 +\145\040\103\151\164\171\061\036\060\034\006\003\125\004\012\023 +\025\124\150\145\040\125\123\105\122\124\122\125\123\124\040\116 +\145\164\167\157\162\153\061\041\060\037\006\003\125\004\013\023 +\030\150\164\164\160\072\057\057\167\167\167\056\165\163\145\162 +\164\162\165\163\164\056\143\157\155\061\037\060\035\006\003\125 +\004\003\023\026\125\124\116\055\125\123\105\122\106\151\162\163 +\164\055\110\141\162\144\167\141\162\145 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\020\004\176\313\351\374\245\137\173\320\236\256\066\341\014 +\256\036 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_NOT_TRUSTED +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_NOT_TRUSTED +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_NOT_TRUSTED +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "Bogus Google" +# +CKA_CLASS CK_OBJECT_CLASS CKO_CERTIFICATE +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "Bogus Google" +CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509 +CKA_SUBJECT MULTILINE_OCTAL +\060\201\336\061\013\060\011\006\003\125\004\006\023\002\125\123 +\061\016\060\014\006\003\125\004\021\023\005\063\070\064\067\067 +\061\020\060\016\006\003\125\004\010\023\007\106\154\157\162\151 +\144\141\061\020\060\016\006\003\125\004\007\023\007\105\156\147 +\154\151\163\150\061\027\060\025\006\003\125\004\011\023\016\123 +\145\141\040\126\151\154\154\141\147\145\040\061\060\061\024\060 +\022\006\003\125\004\012\023\013\107\157\157\147\154\145\040\114 +\164\144\056\061\023\060\021\006\003\125\004\013\023\012\124\145 +\143\150\040\104\145\160\164\056\061\050\060\046\006\003\125\004 +\013\023\037\110\157\163\164\145\144\040\142\171\040\107\124\111 +\040\107\162\157\165\160\040\103\157\162\160\157\162\141\164\151 +\157\156\061\024\060\022\006\003\125\004\013\023\013\120\154\141 +\164\151\156\165\155\123\123\114\061\027\060\025\006\003\125\004 +\003\023\016\167\167\167\056\147\157\157\147\154\145\056\143\157 +\155 +END +CKA_ID UTF8 "0" +CKA_ISSUER MULTILINE_OCTAL +\060\201\227\061\013\060\011\006\003\125\004\006\023\002\125\123 +\061\013\060\011\006\003\125\004\010\023\002\125\124\061\027\060 +\025\006\003\125\004\007\023\016\123\141\154\164\040\114\141\153 +\145\040\103\151\164\171\061\036\060\034\006\003\125\004\012\023 +\025\124\150\145\040\125\123\105\122\124\122\125\123\124\040\116 +\145\164\167\157\162\153\061\041\060\037\006\003\125\004\013\023 +\030\150\164\164\160\072\057\057\167\167\167\056\165\163\145\162 +\164\162\165\163\164\056\143\157\155\061\037\060\035\006\003\125 +\004\003\023\026\125\124\116\055\125\123\105\122\106\151\162\163 +\164\055\110\141\162\144\167\141\162\145 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\021\000\365\310\152\363\141\142\361\072\144\365\117\155\311 +\130\174\006 +END +CKA_VALUE MULTILINE_OCTAL +\060\202\005\344\060\202\004\314\240\003\002\001\002\002\021\000 +\365\310\152\363\141\142\361\072\144\365\117\155\311\130\174\006 +\060\015\006\011\052\206\110\206\367\015\001\001\005\005\000\060 +\201\227\061\013\060\011\006\003\125\004\006\023\002\125\123\061 +\013\060\011\006\003\125\004\010\023\002\125\124\061\027\060\025 +\006\003\125\004\007\023\016\123\141\154\164\040\114\141\153\145 +\040\103\151\164\171\061\036\060\034\006\003\125\004\012\023\025 +\124\150\145\040\125\123\105\122\124\122\125\123\124\040\116\145 +\164\167\157\162\153\061\041\060\037\006\003\125\004\013\023\030 +\150\164\164\160\072\057\057\167\167\167\056\165\163\145\162\164 +\162\165\163\164\056\143\157\155\061\037\060\035\006\003\125\004 +\003\023\026\125\124\116\055\125\123\105\122\106\151\162\163\164 +\055\110\141\162\144\167\141\162\145\060\036\027\015\061\061\060 +\063\061\065\060\060\060\060\060\060\132\027\015\061\064\060\063 +\061\064\062\063\065\071\065\071\132\060\201\336\061\013\060\011 +\006\003\125\004\006\023\002\125\123\061\016\060\014\006\003\125 +\004\021\023\005\063\070\064\067\067\061\020\060\016\006\003\125 +\004\010\023\007\106\154\157\162\151\144\141\061\020\060\016\006 +\003\125\004\007\023\007\105\156\147\154\151\163\150\061\027\060 +\025\006\003\125\004\011\023\016\123\145\141\040\126\151\154\154 +\141\147\145\040\061\060\061\024\060\022\006\003\125\004\012\023 +\013\107\157\157\147\154\145\040\114\164\144\056\061\023\060\021 +\006\003\125\004\013\023\012\124\145\143\150\040\104\145\160\164 +\056\061\050\060\046\006\003\125\004\013\023\037\110\157\163\164 +\145\144\040\142\171\040\107\124\111\040\107\162\157\165\160\040 +\103\157\162\160\157\162\141\164\151\157\156\061\024\060\022\006 +\003\125\004\013\023\013\120\154\141\164\151\156\165\155\123\123 +\114\061\027\060\025\006\003\125\004\003\023\016\167\167\167\056 +\147\157\157\147\154\145\056\143\157\155\060\202\001\042\060\015 +\006\011\052\206\110\206\367\015\001\001\001\005\000\003\202\001 +\017\000\060\202\001\012\002\202\001\001\000\260\163\360\362\004 +\356\302\242\106\312\064\052\252\273\140\043\321\021\166\037\037 +\072\320\145\203\116\232\105\250\103\160\205\166\360\037\207\000 +\002\037\156\073\027\027\304\265\351\031\106\242\222\045\215\142 +\052\264\143\060\037\271\205\370\065\341\026\132\166\111\314\120 +\110\123\071\131\211\326\204\002\373\232\354\033\307\121\325\166 +\225\220\324\072\052\270\246\336\002\115\006\373\315\355\245\106 +\101\137\125\164\345\354\176\100\334\120\234\265\344\065\135\036 +\150\040\370\351\336\243\152\050\277\101\322\241\263\342\045\215 +\014\033\312\075\223\014\030\256\337\305\274\375\274\202\272\150 +\000\327\026\062\161\237\145\265\021\332\150\131\320\246\127\144 +\033\311\376\230\345\365\245\145\352\341\333\356\364\263\235\263 +\216\352\207\256\026\322\036\240\174\174\151\077\051\026\205\001 +\123\247\154\361\140\253\335\242\374\045\107\324\062\321\022\335 +\367\110\022\340\374\234\242\167\230\351\211\231\270\370\070\361 +\214\006\302\172\043\066\155\233\235\315\060\310\307\064\027\036 +\273\175\102\310\253\347\025\026\366\163\265\002\003\001\000\001 +\243\202\001\340\060\202\001\334\060\037\006\003\125\035\043\004 +\030\060\026\200\024\241\162\137\046\033\050\230\103\225\135\007 +\067\325\205\226\235\113\322\303\105\060\035\006\003\125\035\016 +\004\026\004\024\030\052\242\310\324\172\077\173\255\004\213\275 +\157\236\020\106\023\170\161\235\060\016\006\003\125\035\017\001 +\001\377\004\004\003\002\005\240\060\014\006\003\125\035\023\001 +\001\377\004\002\060\000\060\035\006\003\125\035\045\004\026\060 +\024\006\010\053\006\001\005\005\007\003\001\006\010\053\006\001 +\005\005\007\003\002\060\106\006\003\125\035\040\004\077\060\075 +\060\073\006\014\053\006\001\004\001\262\061\001\002\001\003\004 +\060\053\060\051\006\010\053\006\001\005\005\007\002\001\026\035 +\150\164\164\160\163\072\057\057\163\145\143\165\162\145\056\143 +\157\155\157\144\157\056\143\157\155\057\103\120\123\060\173\006 +\003\125\035\037\004\164\060\162\060\070\240\066\240\064\206\062 +\150\164\164\160\072\057\057\143\162\154\056\143\157\155\157\144 +\157\143\141\056\143\157\155\057\125\124\116\055\125\123\105\122 +\106\151\162\163\164\055\110\141\162\144\167\141\162\145\056\143 +\162\154\060\066\240\064\240\062\206\060\150\164\164\160\072\057 +\057\143\162\154\056\143\157\155\157\144\157\056\156\145\164\057 +\125\124\116\055\125\123\105\122\106\151\162\163\164\055\110\141 +\162\144\167\141\162\145\056\143\162\154\060\161\006\010\053\006 +\001\005\005\007\001\001\004\145\060\143\060\073\006\010\053\006 +\001\005\005\007\060\002\206\057\150\164\164\160\072\057\057\143 +\162\164\056\143\157\155\157\144\157\143\141\056\143\157\155\057 +\125\124\116\101\144\144\124\162\165\163\164\123\145\162\166\145 +\162\103\101\056\143\162\164\060\044\006\010\053\006\001\005\005 +\007\060\001\206\030\150\164\164\160\072\057\057\157\143\163\160 +\056\143\157\155\157\144\157\143\141\056\143\157\155\060\045\006 +\003\125\035\021\004\036\060\034\202\016\167\167\167\056\147\157 +\157\147\154\145\056\143\157\155\202\012\147\157\157\147\154\145 +\056\143\157\155\060\015\006\011\052\206\110\206\367\015\001\001 +\005\005\000\003\202\001\001\000\161\300\231\077\136\366\275\063 +\377\236\026\313\250\277\335\160\371\322\123\073\066\256\311\027 +\310\256\136\115\335\142\367\267\323\076\167\243\376\300\173\062 +\265\311\224\005\122\120\362\137\075\171\204\111\117\135\154\260 +\327\131\275\324\154\210\372\374\305\145\206\353\050\122\242\102 +\366\174\274\152\307\007\056\045\321\220\142\040\306\215\121\302 +\054\105\071\116\003\332\367\030\350\314\012\072\331\105\330\154 +\156\064\213\142\234\116\025\371\103\356\345\227\300\077\255\065 +\023\305\053\006\307\101\375\342\367\176\105\255\233\321\341\146 +\355\370\172\113\224\071\172\057\353\350\077\103\330\065\326\126 +\372\164\347\155\346\355\254\145\204\376\320\115\006\022\336\332 +\131\000\074\011\134\317\210\113\350\075\264\025\041\222\314\155 +\246\121\342\216\227\361\364\202\106\313\304\123\136\332\134\235 +\145\222\001\145\211\000\345\266\231\377\046\100\361\057\031\061 +\010\032\261\147\125\206\015\256\065\063\206\274\227\110\222\327 +\226\140\370\316\374\226\353\207\304\163\314\224\233\130\133\363 +\172\244\047\023\326\117\364\151 +END + +# Trust for Certificate "Bogus Google" +CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "Bogus Google" +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\031\026\242\257\064\155\071\237\120\061\074\071\062\000\361\101 +\100\105\146\026 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\001\163\251\130\360\274\311\276\224\053\032\114\230\044\343\270 +END +CKA_ISSUER MULTILINE_OCTAL +\060\201\227\061\013\060\011\006\003\125\004\006\023\002\125\123 +\061\013\060\011\006\003\125\004\010\023\002\125\124\061\027\060 +\025\006\003\125\004\007\023\016\123\141\154\164\040\114\141\153 +\145\040\103\151\164\171\061\036\060\034\006\003\125\004\012\023 +\025\124\150\145\040\125\123\105\122\124\122\125\123\124\040\116 +\145\164\167\157\162\153\061\041\060\037\006\003\125\004\013\023 +\030\150\164\164\160\072\057\057\167\167\167\056\165\163\145\162 +\164\162\165\163\164\056\143\157\155\061\037\060\035\006\003\125 +\004\003\023\026\125\124\116\055\125\123\105\122\106\151\162\163 +\164\055\110\141\162\144\167\141\162\145 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\021\000\365\310\152\363\141\142\361\072\144\365\117\155\311 +\130\174\006 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_NOT_TRUSTED +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_NOT_TRUSTED +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_NOT_TRUSTED +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "Bogus Skype" +# +CKA_CLASS CK_OBJECT_CLASS CKO_CERTIFICATE +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "Bogus Skype" +CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509 +CKA_SUBJECT MULTILINE_OCTAL +\060\201\337\061\013\060\011\006\003\125\004\006\023\002\125\123 +\061\016\060\014\006\003\125\004\021\023\005\063\070\064\067\067 +\061\020\060\016\006\003\125\004\010\023\007\106\154\157\162\151 +\144\141\061\020\060\016\006\003\125\004\007\023\007\105\156\147 +\154\151\163\150\061\027\060\025\006\003\125\004\011\023\016\123 +\145\141\040\126\151\154\154\141\147\145\040\061\060\061\024\060 +\022\006\003\125\004\012\023\013\107\157\157\147\154\145\040\114 +\164\144\056\061\023\060\021\006\003\125\004\013\023\012\124\145 +\143\150\040\104\145\160\164\056\061\050\060\046\006\003\125\004 +\013\023\037\110\157\163\164\145\144\040\142\171\040\107\124\111 +\040\107\162\157\165\160\040\103\157\162\160\157\162\141\164\151 +\157\156\061\024\060\022\006\003\125\004\013\023\013\120\154\141 +\164\151\156\165\155\123\123\114\061\030\060\026\006\003\125\004 +\003\023\017\154\157\147\151\156\056\163\153\171\160\145\056\143 +\157\155 +END +CKA_ID UTF8 "0" +CKA_ISSUER MULTILINE_OCTAL +\060\201\227\061\013\060\011\006\003\125\004\006\023\002\125\123 +\061\013\060\011\006\003\125\004\010\023\002\125\124\061\027\060 +\025\006\003\125\004\007\023\016\123\141\154\164\040\114\141\153 +\145\040\103\151\164\171\061\036\060\034\006\003\125\004\012\023 +\025\124\150\145\040\125\123\105\122\124\122\125\123\124\040\116 +\145\164\167\157\162\153\061\041\060\037\006\003\125\004\013\023 +\030\150\164\164\160\072\057\057\167\167\167\056\165\163\145\162 +\164\162\165\163\164\056\143\157\155\061\037\060\035\006\003\125 +\004\003\023\026\125\124\116\055\125\123\105\122\106\151\162\163 +\164\055\110\141\162\144\167\141\162\145 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\021\000\351\002\213\225\170\344\025\334\032\161\012\053\210 +\025\104\107 +END +CKA_VALUE MULTILINE_OCTAL +\060\202\005\357\060\202\004\327\240\003\002\001\002\002\021\000 +\351\002\213\225\170\344\025\334\032\161\012\053\210\025\104\107 +\060\015\006\011\052\206\110\206\367\015\001\001\005\005\000\060 +\201\227\061\013\060\011\006\003\125\004\006\023\002\125\123\061 +\013\060\011\006\003\125\004\010\023\002\125\124\061\027\060\025 +\006\003\125\004\007\023\016\123\141\154\164\040\114\141\153\145 +\040\103\151\164\171\061\036\060\034\006\003\125\004\012\023\025 +\124\150\145\040\125\123\105\122\124\122\125\123\124\040\116\145 +\164\167\157\162\153\061\041\060\037\006\003\125\004\013\023\030 +\150\164\164\160\072\057\057\167\167\167\056\165\163\145\162\164 +\162\165\163\164\056\143\157\155\061\037\060\035\006\003\125\004 +\003\023\026\125\124\116\055\125\123\105\122\106\151\162\163\164 +\055\110\141\162\144\167\141\162\145\060\036\027\015\061\061\060 +\063\061\065\060\060\060\060\060\060\132\027\015\061\064\060\063 +\061\064\062\063\065\071\065\071\132\060\201\337\061\013\060\011 +\006\003\125\004\006\023\002\125\123\061\016\060\014\006\003\125 +\004\021\023\005\063\070\064\067\067\061\020\060\016\006\003\125 +\004\010\023\007\106\154\157\162\151\144\141\061\020\060\016\006 +\003\125\004\007\023\007\105\156\147\154\151\163\150\061\027\060 +\025\006\003\125\004\011\023\016\123\145\141\040\126\151\154\154 +\141\147\145\040\061\060\061\024\060\022\006\003\125\004\012\023 +\013\107\157\157\147\154\145\040\114\164\144\056\061\023\060\021 +\006\003\125\004\013\023\012\124\145\143\150\040\104\145\160\164 +\056\061\050\060\046\006\003\125\004\013\023\037\110\157\163\164 +\145\144\040\142\171\040\107\124\111\040\107\162\157\165\160\040 +\103\157\162\160\157\162\141\164\151\157\156\061\024\060\022\006 +\003\125\004\013\023\013\120\154\141\164\151\156\165\155\123\123 +\114\061\030\060\026\006\003\125\004\003\023\017\154\157\147\151 +\156\056\163\153\171\160\145\056\143\157\155\060\202\001\042\060 +\015\006\011\052\206\110\206\367\015\001\001\001\005\000\003\202 +\001\017\000\060\202\001\012\002\202\001\001\000\260\170\231\206 +\016\242\163\043\324\132\303\111\353\261\066\214\174\312\204\256 +\074\257\070\210\050\231\215\055\130\023\261\227\170\076\122\040 +\147\254\133\163\230\154\062\125\311\160\321\331\252\025\350\056 +\046\205\201\274\126\344\274\200\143\333\116\327\365\002\276\121 +\143\036\074\333\337\327\000\135\132\271\345\173\152\352\070\040 +\262\073\266\356\165\124\204\371\246\312\070\160\335\277\260\377 +\245\205\135\264\101\376\335\075\331\052\341\060\103\032\230\171 +\223\240\137\340\147\154\225\372\076\172\256\161\173\343\155\210 +\102\077\045\324\356\276\150\150\254\255\254\140\340\040\243\071 +\203\271\133\050\243\223\155\241\275\166\012\343\353\256\207\047 +\016\124\217\264\110\014\232\124\364\135\216\067\120\334\136\244 +\213\153\113\334\246\363\064\276\167\131\042\210\377\031\053\155 +\166\144\163\332\014\207\007\053\232\067\072\320\342\214\366\066 +\062\153\232\171\314\322\073\223\157\032\115\154\346\301\235\100 +\254\055\164\303\276\352\134\163\145\001\051\261\052\277\160\131 +\301\316\306\303\242\310\105\137\272\147\075\017\002\003\001\000 +\001\243\202\001\352\060\202\001\346\060\037\006\003\125\035\043 +\004\030\060\026\200\024\241\162\137\046\033\050\230\103\225\135 +\007\067\325\205\226\235\113\322\303\105\060\035\006\003\125\035 +\016\004\026\004\024\325\216\132\121\023\264\051\015\061\266\034 +\215\076\121\121\061\012\063\252\201\060\016\006\003\125\035\017 +\001\001\377\004\004\003\002\005\240\060\014\006\003\125\035\023 +\001\001\377\004\002\060\000\060\035\006\003\125\035\045\004\026 +\060\024\006\010\053\006\001\005\005\007\003\001\006\010\053\006 +\001\005\005\007\003\002\060\106\006\003\125\035\040\004\077\060 +\075\060\073\006\014\053\006\001\004\001\262\061\001\002\001\003 +\004\060\053\060\051\006\010\053\006\001\005\005\007\002\001\026 +\035\150\164\164\160\163\072\057\057\163\145\143\165\162\145\056 +\143\157\155\157\144\157\056\143\157\155\057\103\120\123\060\173 +\006\003\125\035\037\004\164\060\162\060\070\240\066\240\064\206 +\062\150\164\164\160\072\057\057\143\162\154\056\143\157\155\157 +\144\157\143\141\056\143\157\155\057\125\124\116\055\125\123\105 +\122\106\151\162\163\164\055\110\141\162\144\167\141\162\145\056 +\143\162\154\060\066\240\064\240\062\206\060\150\164\164\160\072 +\057\057\143\162\154\056\143\157\155\157\144\157\056\156\145\164 +\057\125\124\116\055\125\123\105\122\106\151\162\163\164\055\110 +\141\162\144\167\141\162\145\056\143\162\154\060\161\006\010\053 +\006\001\005\005\007\001\001\004\145\060\143\060\073\006\010\053 +\006\001\005\005\007\060\002\206\057\150\164\164\160\072\057\057 +\143\162\164\056\143\157\155\157\144\157\143\141\056\143\157\155 +\057\125\124\116\101\144\144\124\162\165\163\164\123\145\162\166 +\145\162\103\101\056\143\162\164\060\044\006\010\053\006\001\005 +\005\007\060\001\206\030\150\164\164\160\072\057\057\157\143\163 +\160\056\143\157\155\157\144\157\143\141\056\143\157\155\060\057 +\006\003\125\035\021\004\050\060\046\202\017\154\157\147\151\156 +\056\163\153\171\160\145\056\143\157\155\202\023\167\167\167\056 +\154\157\147\151\156\056\163\153\171\160\145\056\143\157\155\060 +\015\006\011\052\206\110\206\367\015\001\001\005\005\000\003\202 +\001\001\000\010\362\201\165\221\273\316\022\004\030\302\115\132 +\373\106\220\012\124\104\364\362\335\007\201\360\037\246\172\157 +\237\317\270\016\054\117\234\304\232\365\250\366\272\244\311\172 +\135\261\342\132\312\074\372\140\250\150\076\313\272\055\342\315 +\326\266\344\222\074\151\255\127\352\250\057\070\020\204\162\345 +\150\161\355\276\353\156\030\357\143\172\276\347\044\377\300\143 +\375\130\073\114\201\222\330\051\253\216\065\135\327\323\011\153 +\205\323\325\163\005\104\342\345\273\203\123\020\313\362\317\267 +\156\341\151\267\241\222\144\305\317\315\202\273\066\240\070\255 +\327\044\337\123\374\077\142\267\267\325\307\127\343\223\061\160 +\216\044\211\206\312\143\053\071\272\135\331\152\140\354\241\116 +\212\376\123\370\136\222\337\057\134\046\027\155\003\175\002\017 +\017\252\103\147\155\260\142\277\176\123\335\314\354\170\163\225 +\345\245\366\000\243\004\375\077\004\052\263\230\305\267\003\034 +\333\311\120\253\260\005\035\036\276\126\264\317\076\102\023\224 +\236\371\347\001\201\245\170\157\014\172\166\254\005\206\354\254 +\302\021\254 +END + +# Trust for Certificate "Bogus Skype" +CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "Bogus Skype" +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\107\034\224\232\201\103\333\132\325\315\361\311\162\206\112\045 +\004\372\043\311 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\205\244\264\304\151\041\337\241\152\015\130\126\130\113\063\104 +END +CKA_ISSUER MULTILINE_OCTAL +\060\201\227\061\013\060\011\006\003\125\004\006\023\002\125\123 +\061\013\060\011\006\003\125\004\010\023\002\125\124\061\027\060 +\025\006\003\125\004\007\023\016\123\141\154\164\040\114\141\153 +\145\040\103\151\164\171\061\036\060\034\006\003\125\004\012\023 +\025\124\150\145\040\125\123\105\122\124\122\125\123\124\040\116 +\145\164\167\157\162\153\061\041\060\037\006\003\125\004\013\023 +\030\150\164\164\160\072\057\057\167\167\167\056\165\163\145\162 +\164\162\165\163\164\056\143\157\155\061\037\060\035\006\003\125 +\004\003\023\026\125\124\116\055\125\123\105\122\106\151\162\163 +\164\055\110\141\162\144\167\141\162\145 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\021\000\351\002\213\225\170\344\025\334\032\161\012\053\210 +\025\104\107 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_NOT_TRUSTED +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_NOT_TRUSTED +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_NOT_TRUSTED +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "Bogus Yahoo 1" +# +CKA_CLASS CK_OBJECT_CLASS CKO_CERTIFICATE +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "Bogus Yahoo 1" +CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509 +CKA_SUBJECT MULTILINE_OCTAL +\060\201\337\061\013\060\011\006\003\125\004\006\023\002\125\123 +\061\016\060\014\006\003\125\004\021\023\005\063\070\064\067\067 +\061\020\060\016\006\003\125\004\010\023\007\106\154\157\162\151 +\144\141\061\020\060\016\006\003\125\004\007\023\007\105\156\147 +\154\151\163\150\061\027\060\025\006\003\125\004\011\023\016\123 +\145\141\040\126\151\154\154\141\147\145\040\061\060\061\024\060 +\022\006\003\125\004\012\023\013\107\157\157\147\154\145\040\114 +\164\144\056\061\023\060\021\006\003\125\004\013\023\012\124\145 +\143\150\040\104\145\160\164\056\061\050\060\046\006\003\125\004 +\013\023\037\110\157\163\164\145\144\040\142\171\040\107\124\111 +\040\107\162\157\165\160\040\103\157\162\160\157\162\141\164\151 +\157\156\061\024\060\022\006\003\125\004\013\023\013\120\154\141 +\164\151\156\165\155\123\123\114\061\030\060\026\006\003\125\004 +\003\023\017\154\157\147\151\156\056\171\141\150\157\157\056\143 +\157\155 +END +CKA_ID UTF8 "0" +CKA_ISSUER MULTILINE_OCTAL +\060\201\227\061\013\060\011\006\003\125\004\006\023\002\125\123 +\061\013\060\011\006\003\125\004\010\023\002\125\124\061\027\060 +\025\006\003\125\004\007\023\016\123\141\154\164\040\114\141\153 +\145\040\103\151\164\171\061\036\060\034\006\003\125\004\012\023 +\025\124\150\145\040\125\123\105\122\124\122\125\123\124\040\116 +\145\164\167\157\162\153\061\041\060\037\006\003\125\004\013\023 +\030\150\164\164\160\072\057\057\167\167\167\056\165\163\145\162 +\164\162\165\163\164\056\143\157\155\061\037\060\035\006\003\125 +\004\003\023\026\125\124\116\055\125\123\105\122\106\151\162\163 +\164\055\110\141\162\144\167\141\162\145 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\021\000\327\125\217\332\365\361\020\133\262\023\050\053\160 +\167\051\243 +END +CKA_VALUE MULTILINE_OCTAL +\060\202\005\357\060\202\004\327\240\003\002\001\002\002\021\000 +\327\125\217\332\365\361\020\133\262\023\050\053\160\167\051\243 +\060\015\006\011\052\206\110\206\367\015\001\001\005\005\000\060 +\201\227\061\013\060\011\006\003\125\004\006\023\002\125\123\061 +\013\060\011\006\003\125\004\010\023\002\125\124\061\027\060\025 +\006\003\125\004\007\023\016\123\141\154\164\040\114\141\153\145 +\040\103\151\164\171\061\036\060\034\006\003\125\004\012\023\025 +\124\150\145\040\125\123\105\122\124\122\125\123\124\040\116\145 +\164\167\157\162\153\061\041\060\037\006\003\125\004\013\023\030 +\150\164\164\160\072\057\057\167\167\167\056\165\163\145\162\164 +\162\165\163\164\056\143\157\155\061\037\060\035\006\003\125\004 +\003\023\026\125\124\116\055\125\123\105\122\106\151\162\163\164 +\055\110\141\162\144\167\141\162\145\060\036\027\015\061\061\060 +\063\061\065\060\060\060\060\060\060\132\027\015\061\064\060\063 +\061\064\062\063\065\071\065\071\132\060\201\337\061\013\060\011 +\006\003\125\004\006\023\002\125\123\061\016\060\014\006\003\125 +\004\021\023\005\063\070\064\067\067\061\020\060\016\006\003\125 +\004\010\023\007\106\154\157\162\151\144\141\061\020\060\016\006 +\003\125\004\007\023\007\105\156\147\154\151\163\150\061\027\060 +\025\006\003\125\004\011\023\016\123\145\141\040\126\151\154\154 +\141\147\145\040\061\060\061\024\060\022\006\003\125\004\012\023 +\013\107\157\157\147\154\145\040\114\164\144\056\061\023\060\021 +\006\003\125\004\013\023\012\124\145\143\150\040\104\145\160\164 +\056\061\050\060\046\006\003\125\004\013\023\037\110\157\163\164 +\145\144\040\142\171\040\107\124\111\040\107\162\157\165\160\040 +\103\157\162\160\157\162\141\164\151\157\156\061\024\060\022\006 +\003\125\004\013\023\013\120\154\141\164\151\156\165\155\123\123 +\114\061\030\060\026\006\003\125\004\003\023\017\154\157\147\151 +\156\056\171\141\150\157\157\056\143\157\155\060\202\001\042\060 +\015\006\011\052\206\110\206\367\015\001\001\001\005\000\003\202 +\001\017\000\060\202\001\012\002\202\001\001\000\241\244\005\075 +\355\205\105\223\212\030\115\306\003\000\127\342\100\167\360\034 +\353\320\031\337\042\135\010\177\321\007\074\101\211\106\027\243 +\011\372\374\370\251\004\321\226\217\253\327\117\074\371\255\030 +\251\164\201\304\127\012\072\046\026\316\142\076\274\077\154\041 +\356\223\215\313\015\240\037\232\226\320\217\255\365\223\223\202 +\356\162\014\241\165\025\243\173\204\126\270\255\377\122\021\161 +\204\274\072\060\013\176\230\250\341\250\077\067\122\320\361\174 +\157\220\330\105\012\254\071\162\152\141\325\273\303\214\371\302 +\314\337\375\072\161\271\257\274\334\072\334\014\266\261\322\321 +\211\273\101\266\362\336\127\325\025\337\374\375\342\061\305\337 +\312\301\330\217\054\277\360\016\133\161\340\064\161\303\305\115 +\175\172\324\372\355\060\113\057\352\266\056\236\223\074\342\072 +\370\102\242\032\356\334\337\315\017\251\366\171\204\032\216\154 +\002\266\206\345\277\121\152\146\370\363\234\323\131\014\173\245 +\231\170\315\174\231\372\306\226\107\330\062\324\164\166\016\167 +\113\040\164\244\267\211\165\222\112\264\133\125\002\003\001\000 +\001\243\202\001\352\060\202\001\346\060\037\006\003\125\035\043 +\004\030\060\026\200\024\241\162\137\046\033\050\230\103\225\135 +\007\067\325\205\226\235\113\322\303\105\060\035\006\003\125\035 +\016\004\026\004\024\206\111\105\374\063\031\063\324\004\355\047 +\141\356\350\001\311\014\177\057\176\060\016\006\003\125\035\017 +\001\001\377\004\004\003\002\005\240\060\014\006\003\125\035\023 +\001\001\377\004\002\060\000\060\035\006\003\125\035\045\004\026 +\060\024\006\010\053\006\001\005\005\007\003\001\006\010\053\006 +\001\005\005\007\003\002\060\106\006\003\125\035\040\004\077\060 +\075\060\073\006\014\053\006\001\004\001\262\061\001\002\001\003 +\004\060\053\060\051\006\010\053\006\001\005\005\007\002\001\026 +\035\150\164\164\160\163\072\057\057\163\145\143\165\162\145\056 +\143\157\155\157\144\157\056\143\157\155\057\103\120\123\060\173 +\006\003\125\035\037\004\164\060\162\060\070\240\066\240\064\206 +\062\150\164\164\160\072\057\057\143\162\154\056\143\157\155\157 +\144\157\143\141\056\143\157\155\057\125\124\116\055\125\123\105 +\122\106\151\162\163\164\055\110\141\162\144\167\141\162\145\056 +\143\162\154\060\066\240\064\240\062\206\060\150\164\164\160\072 +\057\057\143\162\154\056\143\157\155\157\144\157\056\156\145\164 +\057\125\124\116\055\125\123\105\122\106\151\162\163\164\055\110 +\141\162\144\167\141\162\145\056\143\162\154\060\161\006\010\053 +\006\001\005\005\007\001\001\004\145\060\143\060\073\006\010\053 +\006\001\005\005\007\060\002\206\057\150\164\164\160\072\057\057 +\143\162\164\056\143\157\155\157\144\157\143\141\056\143\157\155 +\057\125\124\116\101\144\144\124\162\165\163\164\123\145\162\166 +\145\162\103\101\056\143\162\164\060\044\006\010\053\006\001\005 +\005\007\060\001\206\030\150\164\164\160\072\057\057\157\143\163 +\160\056\143\157\155\157\144\157\143\141\056\143\157\155\060\057 +\006\003\125\035\021\004\050\060\046\202\017\154\157\147\151\156 +\056\171\141\150\157\157\056\143\157\155\202\023\167\167\167\056 +\154\157\147\151\156\056\171\141\150\157\157\056\143\157\155\060 +\015\006\011\052\206\110\206\367\015\001\001\005\005\000\003\202 +\001\001\000\075\127\311\110\044\134\356\144\201\365\256\276\125 +\051\026\377\052\057\204\355\331\370\243\003\310\060\146\273\310 +\324\201\055\041\367\010\367\254\226\102\232\101\165\172\272\135 +\020\043\313\222\102\141\372\212\332\155\145\064\031\345\251\326 +\055\023\170\327\201\104\222\251\156\200\143\025\313\376\065\037 +\002\321\212\024\260\250\314\224\040\073\250\032\360\135\066\120 +\333\015\256\351\144\344\366\215\151\175\060\310\024\027\000\112 +\345\246\065\373\175\015\042\235\171\166\122\054\274\227\006\210 +\232\025\364\163\346\361\365\230\245\315\007\104\221\270\247\150 +\147\105\322\162\021\140\342\161\267\120\125\342\212\251\015\326 +\222\356\004\052\213\060\240\242\005\106\064\155\222\306\073\252 +\115\240\320\253\001\031\012\062\267\350\343\317\361\322\227\111 +\173\254\244\227\367\360\127\256\143\167\232\177\226\332\115\375 +\276\334\007\066\343\045\275\211\171\216\051\022\023\213\210\007 +\373\153\333\244\315\263\055\047\351\324\312\140\327\205\123\373 +\164\306\134\065\214\160\037\371\262\267\222\047\040\307\224\325 +\147\024\060 +END + +# Trust for Certificate "Bogus Yahoo 1" +CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "Bogus Yahoo 1" +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\143\376\256\226\013\252\221\343\103\316\053\330\267\027\230\307 +\153\333\167\320 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\014\037\276\323\374\011\156\346\156\302\146\071\165\206\153\353 +END +CKA_ISSUER MULTILINE_OCTAL +\060\201\227\061\013\060\011\006\003\125\004\006\023\002\125\123 +\061\013\060\011\006\003\125\004\010\023\002\125\124\061\027\060 +\025\006\003\125\004\007\023\016\123\141\154\164\040\114\141\153 +\145\040\103\151\164\171\061\036\060\034\006\003\125\004\012\023 +\025\124\150\145\040\125\123\105\122\124\122\125\123\124\040\116 +\145\164\167\157\162\153\061\041\060\037\006\003\125\004\013\023 +\030\150\164\164\160\072\057\057\167\167\167\056\165\163\145\162 +\164\162\165\163\164\056\143\157\155\061\037\060\035\006\003\125 +\004\003\023\026\125\124\116\055\125\123\105\122\106\151\162\163 +\164\055\110\141\162\144\167\141\162\145 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\021\000\327\125\217\332\365\361\020\133\262\023\050\053\160 +\167\051\243 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_NOT_TRUSTED +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_NOT_TRUSTED +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_NOT_TRUSTED +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "Bogus Yahoo 2" +# +CKA_CLASS CK_OBJECT_CLASS CKO_CERTIFICATE +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "Bogus Yahoo 2" +CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509 +CKA_SUBJECT MULTILINE_OCTAL +\060\201\337\061\013\060\011\006\003\125\004\006\023\002\125\123 +\061\016\060\014\006\003\125\004\021\023\005\063\070\064\067\067 +\061\020\060\016\006\003\125\004\010\023\007\106\154\157\162\151 +\144\141\061\020\060\016\006\003\125\004\007\023\007\105\156\147 +\154\151\163\150\061\027\060\025\006\003\125\004\011\023\016\123 +\145\141\040\126\151\154\154\141\147\145\040\061\060\061\024\060 +\022\006\003\125\004\012\023\013\107\157\157\147\154\145\040\114 +\164\144\056\061\023\060\021\006\003\125\004\013\023\012\124\145 +\143\150\040\104\145\160\164\056\061\050\060\046\006\003\125\004 +\013\023\037\110\157\163\164\145\144\040\142\171\040\107\124\111 +\040\107\162\157\165\160\040\103\157\162\160\157\162\141\164\151 +\157\156\061\024\060\022\006\003\125\004\013\023\013\120\154\141 +\164\151\156\165\155\123\123\114\061\030\060\026\006\003\125\004 +\003\023\017\154\157\147\151\156\056\171\141\150\157\157\056\143 +\157\155 +END +CKA_ID UTF8 "0" +CKA_ISSUER MULTILINE_OCTAL +\060\201\227\061\013\060\011\006\003\125\004\006\023\002\125\123 +\061\013\060\011\006\003\125\004\010\023\002\125\124\061\027\060 +\025\006\003\125\004\007\023\016\123\141\154\164\040\114\141\153 +\145\040\103\151\164\171\061\036\060\034\006\003\125\004\012\023 +\025\124\150\145\040\125\123\105\122\124\122\125\123\124\040\116 +\145\164\167\157\162\153\061\041\060\037\006\003\125\004\013\023 +\030\150\164\164\160\072\057\057\167\167\167\056\165\163\145\162 +\164\162\165\163\164\056\143\157\155\061\037\060\035\006\003\125 +\004\003\023\026\125\124\116\055\125\123\105\122\106\151\162\163 +\164\055\110\141\162\144\167\141\162\145 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\020\071\052\103\117\016\007\337\037\212\243\005\336\064\340 +\302\051 +END +CKA_VALUE MULTILINE_OCTAL +\060\202\005\331\060\202\004\301\240\003\002\001\002\002\020\071 +\052\103\117\016\007\337\037\212\243\005\336\064\340\302\051\060 +\015\006\011\052\206\110\206\367\015\001\001\005\005\000\060\201 +\227\061\013\060\011\006\003\125\004\006\023\002\125\123\061\013 +\060\011\006\003\125\004\010\023\002\125\124\061\027\060\025\006 +\003\125\004\007\023\016\123\141\154\164\040\114\141\153\145\040 +\103\151\164\171\061\036\060\034\006\003\125\004\012\023\025\124 +\150\145\040\125\123\105\122\124\122\125\123\124\040\116\145\164 +\167\157\162\153\061\041\060\037\006\003\125\004\013\023\030\150 +\164\164\160\072\057\057\167\167\167\056\165\163\145\162\164\162 +\165\163\164\056\143\157\155\061\037\060\035\006\003\125\004\003 +\023\026\125\124\116\055\125\123\105\122\106\151\162\163\164\055 +\110\141\162\144\167\141\162\145\060\036\027\015\061\061\060\063 +\061\065\060\060\060\060\060\060\132\027\015\061\064\060\063\061 +\064\062\063\065\071\065\071\132\060\201\337\061\013\060\011\006 +\003\125\004\006\023\002\125\123\061\016\060\014\006\003\125\004 +\021\023\005\063\070\064\067\067\061\020\060\016\006\003\125\004 +\010\023\007\106\154\157\162\151\144\141\061\020\060\016\006\003 +\125\004\007\023\007\105\156\147\154\151\163\150\061\027\060\025 +\006\003\125\004\011\023\016\123\145\141\040\126\151\154\154\141 +\147\145\040\061\060\061\024\060\022\006\003\125\004\012\023\013 +\107\157\157\147\154\145\040\114\164\144\056\061\023\060\021\006 +\003\125\004\013\023\012\124\145\143\150\040\104\145\160\164\056 +\061\050\060\046\006\003\125\004\013\023\037\110\157\163\164\145 +\144\040\142\171\040\107\124\111\040\107\162\157\165\160\040\103 +\157\162\160\157\162\141\164\151\157\156\061\024\060\022\006\003 +\125\004\013\023\013\120\154\141\164\151\156\165\155\123\123\114 +\061\030\060\026\006\003\125\004\003\023\017\154\157\147\151\156 +\056\171\141\150\157\157\056\143\157\155\060\202\001\042\060\015 +\006\011\052\206\110\206\367\015\001\001\001\005\000\003\202\001 +\017\000\060\202\001\012\002\202\001\001\000\241\244\005\075\355 +\205\105\223\212\030\115\306\003\000\127\342\100\167\360\034\353 +\320\031\337\042\135\010\177\321\007\074\101\211\106\027\243\011 +\372\374\370\251\004\321\226\217\253\327\117\074\371\255\030\251 +\164\201\304\127\012\072\046\026\316\142\076\274\077\154\041\356 +\223\215\313\015\240\037\232\226\320\217\255\365\223\223\202\356 +\162\014\241\165\025\243\173\204\126\270\255\377\122\021\161\204 +\274\072\060\013\176\230\250\341\250\077\067\122\320\361\174\157 +\220\330\105\012\254\071\162\152\141\325\273\303\214\371\302\314 +\337\375\072\161\271\257\274\334\072\334\014\266\261\322\321\211 +\273\101\266\362\336\127\325\025\337\374\375\342\061\305\337\312 +\301\330\217\054\277\360\016\133\161\340\064\161\303\305\115\175 +\172\324\372\355\060\113\057\352\266\056\236\223\074\342\072\370 +\102\242\032\356\334\337\315\017\251\366\171\204\032\216\154\002 +\266\206\345\277\121\152\146\370\363\234\323\131\014\173\245\231 +\170\315\174\231\372\306\226\107\330\062\324\164\166\016\167\113 +\040\164\244\267\211\165\222\112\264\133\125\002\003\001\000\001 +\243\202\001\325\060\202\001\321\060\037\006\003\125\035\043\004 +\030\060\026\200\024\241\162\137\046\033\050\230\103\225\135\007 +\067\325\205\226\235\113\322\303\105\060\035\006\003\125\035\016 +\004\026\004\024\206\111\105\374\063\031\063\324\004\355\047\141 +\356\350\001\311\014\177\057\176\060\016\006\003\125\035\017\001 +\001\377\004\004\003\002\005\240\060\014\006\003\125\035\023\001 +\001\377\004\002\060\000\060\035\006\003\125\035\045\004\026\060 +\024\006\010\053\006\001\005\005\007\003\001\006\010\053\006\001 +\005\005\007\003\002\060\106\006\003\125\035\040\004\077\060\075 +\060\073\006\014\053\006\001\004\001\262\061\001\002\001\003\004 +\060\053\060\051\006\010\053\006\001\005\005\007\002\001\026\035 +\150\164\164\160\163\072\057\057\163\145\143\165\162\145\056\143 +\157\155\157\144\157\056\143\157\155\057\103\120\123\060\173\006 +\003\125\035\037\004\164\060\162\060\070\240\066\240\064\206\062 +\150\164\164\160\072\057\057\143\162\154\056\143\157\155\157\144 +\157\143\141\056\143\157\155\057\125\124\116\055\125\123\105\122 +\106\151\162\163\164\055\110\141\162\144\167\141\162\145\056\143 +\162\154\060\066\240\064\240\062\206\060\150\164\164\160\072\057 +\057\143\162\154\056\143\157\155\157\144\157\056\156\145\164\057 +\125\124\116\055\125\123\105\122\106\151\162\163\164\055\110\141 +\162\144\167\141\162\145\056\143\162\154\060\161\006\010\053\006 +\001\005\005\007\001\001\004\145\060\143\060\073\006\010\053\006 +\001\005\005\007\060\002\206\057\150\164\164\160\072\057\057\143 +\162\164\056\143\157\155\157\144\157\143\141\056\143\157\155\057 +\125\124\116\101\144\144\124\162\165\163\164\123\145\162\166\145 +\162\103\101\056\143\162\164\060\044\006\010\053\006\001\005\005 +\007\060\001\206\030\150\164\164\160\072\057\057\157\143\163\160 +\056\143\157\155\157\144\157\143\141\056\143\157\155\060\032\006 +\003\125\035\021\004\023\060\021\202\017\154\157\147\151\156\056 +\171\141\150\157\157\056\143\157\155\060\015\006\011\052\206\110 +\206\367\015\001\001\005\005\000\003\202\001\001\000\127\142\341 +\167\353\374\037\277\210\123\257\130\323\324\326\155\147\060\027 +\100\276\340\037\144\336\207\025\314\340\244\126\251\321\237\371 +\001\376\002\261\261\352\342\137\356\161\026\061\371\010\325\302 +\327\232\233\262\132\070\327\251\177\351\207\153\061\371\013\254 +\331\375\120\161\340\333\202\222\017\201\234\215\167\351\353\056 +\352\324\043\101\207\354\055\262\170\263\216\261\147\322\356\161 +\003\010\022\231\263\002\051\157\336\213\336\301\251\003\012\132 +\063\034\075\021\003\306\110\014\230\234\025\056\331\246\205\122 +\347\005\212\256\060\043\353\355\050\154\140\351\055\177\217\107 +\213\057\320\334\346\273\017\176\137\362\110\201\216\120\004\143 +\261\121\200\165\232\251\266\020\034\020\137\157\030\157\340\016 +\226\105\316\356\361\265\040\333\357\332\156\310\225\343\366\105 +\375\312\374\245\137\111\155\006\036\322\336\141\075\025\175\067 +\345\034\065\216\006\302\153\367\264\250\050\054\061\313\252\264 +\247\227\117\235\212\366\257\176\067\271\173\075\337\222\146\213 +\217\116\235\306\066\347\134\246\253\022\017\326\317 +END + +# Trust for Certificate "Bogus Yahoo 2" +CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "Bogus Yahoo 2" +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\320\030\266\055\305\030\220\162\107\337\120\222\133\260\232\317 +\112\134\263\255 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\162\334\310\162\154\123\073\262\375\314\135\031\275\257\246\061 +END +CKA_ISSUER MULTILINE_OCTAL +\060\201\227\061\013\060\011\006\003\125\004\006\023\002\125\123 +\061\013\060\011\006\003\125\004\010\023\002\125\124\061\027\060 +\025\006\003\125\004\007\023\016\123\141\154\164\040\114\141\153 +\145\040\103\151\164\171\061\036\060\034\006\003\125\004\012\023 +\025\124\150\145\040\125\123\105\122\124\122\125\123\124\040\116 +\145\164\167\157\162\153\061\041\060\037\006\003\125\004\013\023 +\030\150\164\164\160\072\057\057\167\167\167\056\165\163\145\162 +\164\162\165\163\164\056\143\157\155\061\037\060\035\006\003\125 +\004\003\023\026\125\124\116\055\125\123\105\122\106\151\162\163 +\164\055\110\141\162\144\167\141\162\145 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\020\071\052\103\117\016\007\337\037\212\243\005\336\064\340 +\302\051 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_NOT_TRUSTED +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_NOT_TRUSTED +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_NOT_TRUSTED +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "Bogus Yahoo 3" +# +CKA_CLASS CK_OBJECT_CLASS CKO_CERTIFICATE +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "Bogus Yahoo 3" +CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509 +CKA_SUBJECT MULTILINE_OCTAL +\060\201\337\061\013\060\011\006\003\125\004\006\023\002\125\123 +\061\016\060\014\006\003\125\004\021\023\005\063\070\064\067\067 +\061\020\060\016\006\003\125\004\010\023\007\106\154\157\162\151 +\144\141\061\020\060\016\006\003\125\004\007\023\007\105\156\147 +\154\151\163\150\061\027\060\025\006\003\125\004\011\023\016\123 +\145\141\040\126\151\154\154\141\147\145\040\061\060\061\024\060 +\022\006\003\125\004\012\023\013\107\157\157\147\154\145\040\114 +\164\144\056\061\023\060\021\006\003\125\004\013\023\012\124\145 +\143\150\040\104\145\160\164\056\061\050\060\046\006\003\125\004 +\013\023\037\110\157\163\164\145\144\040\142\171\040\107\124\111 +\040\107\162\157\165\160\040\103\157\162\160\157\162\141\164\151 +\157\156\061\024\060\022\006\003\125\004\013\023\013\120\154\141 +\164\151\156\165\155\123\123\114\061\030\060\026\006\003\125\004 +\003\023\017\154\157\147\151\156\056\171\141\150\157\157\056\143 +\157\155 +END +CKA_ID UTF8 "0" +CKA_ISSUER MULTILINE_OCTAL +\060\201\227\061\013\060\011\006\003\125\004\006\023\002\125\123 +\061\013\060\011\006\003\125\004\010\023\002\125\124\061\027\060 +\025\006\003\125\004\007\023\016\123\141\154\164\040\114\141\153 +\145\040\103\151\164\171\061\036\060\034\006\003\125\004\012\023 +\025\124\150\145\040\125\123\105\122\124\122\125\123\124\040\116 +\145\164\167\157\162\153\061\041\060\037\006\003\125\004\013\023 +\030\150\164\164\160\072\057\057\167\167\167\056\165\163\145\162 +\164\162\165\163\164\056\143\157\155\061\037\060\035\006\003\125 +\004\003\023\026\125\124\116\055\125\123\105\122\106\151\162\163 +\164\055\110\141\162\144\167\141\162\145 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\020\076\165\316\324\153\151\060\041\041\210\060\256\206\250 +\052\161 +END +CKA_VALUE MULTILINE_OCTAL +\060\202\005\331\060\202\004\301\240\003\002\001\002\002\020\076 +\165\316\324\153\151\060\041\041\210\060\256\206\250\052\161\060 +\015\006\011\052\206\110\206\367\015\001\001\005\005\000\060\201 +\227\061\013\060\011\006\003\125\004\006\023\002\125\123\061\013 +\060\011\006\003\125\004\010\023\002\125\124\061\027\060\025\006 +\003\125\004\007\023\016\123\141\154\164\040\114\141\153\145\040 +\103\151\164\171\061\036\060\034\006\003\125\004\012\023\025\124 +\150\145\040\125\123\105\122\124\122\125\123\124\040\116\145\164 +\167\157\162\153\061\041\060\037\006\003\125\004\013\023\030\150 +\164\164\160\072\057\057\167\167\167\056\165\163\145\162\164\162 +\165\163\164\056\143\157\155\061\037\060\035\006\003\125\004\003 +\023\026\125\124\116\055\125\123\105\122\106\151\162\163\164\055 +\110\141\162\144\167\141\162\145\060\036\027\015\061\061\060\063 +\061\065\060\060\060\060\060\060\132\027\015\061\064\060\063\061 +\064\062\063\065\071\065\071\132\060\201\337\061\013\060\011\006 +\003\125\004\006\023\002\125\123\061\016\060\014\006\003\125\004 +\021\023\005\063\070\064\067\067\061\020\060\016\006\003\125\004 +\010\023\007\106\154\157\162\151\144\141\061\020\060\016\006\003 +\125\004\007\023\007\105\156\147\154\151\163\150\061\027\060\025 +\006\003\125\004\011\023\016\123\145\141\040\126\151\154\154\141 +\147\145\040\061\060\061\024\060\022\006\003\125\004\012\023\013 +\107\157\157\147\154\145\040\114\164\144\056\061\023\060\021\006 +\003\125\004\013\023\012\124\145\143\150\040\104\145\160\164\056 +\061\050\060\046\006\003\125\004\013\023\037\110\157\163\164\145 +\144\040\142\171\040\107\124\111\040\107\162\157\165\160\040\103 +\157\162\160\157\162\141\164\151\157\156\061\024\060\022\006\003 +\125\004\013\023\013\120\154\141\164\151\156\165\155\123\123\114 +\061\030\060\026\006\003\125\004\003\023\017\154\157\147\151\156 +\056\171\141\150\157\157\056\143\157\155\060\202\001\042\060\015 +\006\011\052\206\110\206\367\015\001\001\001\005\000\003\202\001 +\017\000\060\202\001\012\002\202\001\001\000\241\244\005\075\355 +\205\105\223\212\030\115\306\003\000\127\342\100\167\360\034\353 +\320\031\337\042\135\010\177\321\007\074\101\211\106\027\243\011 +\372\374\370\251\004\321\226\217\253\327\117\074\371\255\030\251 +\164\201\304\127\012\072\046\026\316\142\076\274\077\154\041\356 +\223\215\313\015\240\037\232\226\320\217\255\365\223\223\202\356 +\162\014\241\165\025\243\173\204\126\270\255\377\122\021\161\204 +\274\072\060\013\176\230\250\341\250\077\067\122\320\361\174\157 +\220\330\105\012\254\071\162\152\141\325\273\303\214\371\302\314 +\337\375\072\161\271\257\274\334\072\334\014\266\261\322\321\211 +\273\101\266\362\336\127\325\025\337\374\375\342\061\305\337\312 +\301\330\217\054\277\360\016\133\161\340\064\161\303\305\115\175 +\172\324\372\355\060\113\057\352\266\056\236\223\074\342\072\370 +\102\242\032\356\334\337\315\017\251\366\171\204\032\216\154\002 +\266\206\345\277\121\152\146\370\363\234\323\131\014\173\245\231 +\170\315\174\231\372\306\226\107\330\062\324\164\166\016\167\113 +\040\164\244\267\211\165\222\112\264\133\125\002\003\001\000\001 +\243\202\001\325\060\202\001\321\060\037\006\003\125\035\043\004 +\030\060\026\200\024\241\162\137\046\033\050\230\103\225\135\007 +\067\325\205\226\235\113\322\303\105\060\035\006\003\125\035\016 +\004\026\004\024\206\111\105\374\063\031\063\324\004\355\047\141 +\356\350\001\311\014\177\057\176\060\016\006\003\125\035\017\001 +\001\377\004\004\003\002\005\240\060\014\006\003\125\035\023\001 +\001\377\004\002\060\000\060\035\006\003\125\035\045\004\026\060 +\024\006\010\053\006\001\005\005\007\003\001\006\010\053\006\001 +\005\005\007\003\002\060\106\006\003\125\035\040\004\077\060\075 +\060\073\006\014\053\006\001\004\001\262\061\001\002\001\003\004 +\060\053\060\051\006\010\053\006\001\005\005\007\002\001\026\035 +\150\164\164\160\163\072\057\057\163\145\143\165\162\145\056\143 +\157\155\157\144\157\056\143\157\155\057\103\120\123\060\173\006 +\003\125\035\037\004\164\060\162\060\070\240\066\240\064\206\062 +\150\164\164\160\072\057\057\143\162\154\056\143\157\155\157\144 +\157\143\141\056\143\157\155\057\125\124\116\055\125\123\105\122 +\106\151\162\163\164\055\110\141\162\144\167\141\162\145\056\143 +\162\154\060\066\240\064\240\062\206\060\150\164\164\160\072\057 +\057\143\162\154\056\143\157\155\157\144\157\056\156\145\164\057 +\125\124\116\055\125\123\105\122\106\151\162\163\164\055\110\141 +\162\144\167\141\162\145\056\143\162\154\060\161\006\010\053\006 +\001\005\005\007\001\001\004\145\060\143\060\073\006\010\053\006 +\001\005\005\007\060\002\206\057\150\164\164\160\072\057\057\143 +\162\164\056\143\157\155\157\144\157\143\141\056\143\157\155\057 +\125\124\116\101\144\144\124\162\165\163\164\123\145\162\166\145 +\162\103\101\056\143\162\164\060\044\006\010\053\006\001\005\005 +\007\060\001\206\030\150\164\164\160\072\057\057\157\143\163\160 +\056\143\157\155\157\144\157\143\141\056\143\157\155\060\032\006 +\003\125\035\021\004\023\060\021\202\017\154\157\147\151\156\056 +\171\141\150\157\157\056\143\157\155\060\015\006\011\052\206\110 +\206\367\015\001\001\005\005\000\003\202\001\001\000\123\151\230 +\216\050\116\234\053\133\035\314\153\167\050\075\273\372\245\116 +\176\126\051\244\352\020\342\364\346\055\006\321\204\333\043\316 +\227\363\150\266\017\072\336\025\013\044\035\221\343\154\056\060 +\267\351\160\260\303\106\200\360\323\261\121\277\117\326\170\240 +\374\254\306\317\061\004\143\342\064\125\005\112\075\366\060\272 +\363\063\345\272\322\226\363\325\261\266\223\211\032\244\150\276 +\176\355\143\264\032\110\300\123\344\243\360\071\014\062\222\307 +\103\015\032\161\355\320\106\223\277\223\142\154\063\113\315\066 +\015\151\136\273\154\226\231\041\151\304\113\147\162\333\154\152 +\270\367\150\355\305\217\255\143\145\225\012\114\340\371\017\176 +\067\075\252\324\223\272\147\011\303\245\244\015\003\132\155\325 +\013\376\360\100\024\264\366\270\151\174\155\302\062\113\237\265 +\032\347\106\256\114\132\053\252\172\136\220\127\225\372\333\146 +\002\040\036\152\151\146\025\234\302\266\365\274\120\265\375\105 +\307\037\150\264\107\131\254\304\033\050\223\116\122\123\022\003 +\130\113\161\203\237\146\346\254\171\110\376\376\107 +END + +# Trust for Certificate "Bogus Yahoo 3" +CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "Bogus Yahoo 3" +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\200\226\052\344\326\305\264\102\211\116\225\241\076\112\151\236 +\007\326\224\317 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\112\334\074\147\355\041\315\133\316\135\310\021\344\236\317\075 +END +CKA_ISSUER MULTILINE_OCTAL +\060\201\227\061\013\060\011\006\003\125\004\006\023\002\125\123 +\061\013\060\011\006\003\125\004\010\023\002\125\124\061\027\060 +\025\006\003\125\004\007\023\016\123\141\154\164\040\114\141\153 +\145\040\103\151\164\171\061\036\060\034\006\003\125\004\012\023 +\025\124\150\145\040\125\123\105\122\124\122\125\123\124\040\116 +\145\164\167\157\162\153\061\041\060\037\006\003\125\004\013\023 +\030\150\164\164\160\072\057\057\167\167\167\056\165\163\145\162 +\164\162\165\163\164\056\143\157\155\061\037\060\035\006\003\125 +\004\003\023\026\125\124\116\055\125\123\105\122\106\151\162\163 +\164\055\110\141\162\144\167\141\162\145 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\020\076\165\316\324\153\151\060\041\041\210\060\256\206\250 +\052\161 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_NOT_TRUSTED +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_NOT_TRUSTED +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_NOT_TRUSTED +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "Bogus live.com" +# +CKA_CLASS CK_OBJECT_CLASS CKO_CERTIFICATE +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "Bogus live.com" +CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509 +CKA_SUBJECT MULTILINE_OCTAL +\060\201\336\061\013\060\011\006\003\125\004\006\023\002\125\123 +\061\016\060\014\006\003\125\004\021\023\005\063\070\064\067\067 +\061\020\060\016\006\003\125\004\010\023\007\106\154\157\162\151 +\144\141\061\020\060\016\006\003\125\004\007\023\007\105\156\147 +\154\151\163\150\061\027\060\025\006\003\125\004\011\023\016\123 +\145\141\040\126\151\154\154\141\147\145\040\061\060\061\024\060 +\022\006\003\125\004\012\023\013\107\157\157\147\154\145\040\114 +\164\144\056\061\023\060\021\006\003\125\004\013\023\012\124\145 +\143\150\040\104\145\160\164\056\061\050\060\046\006\003\125\004 +\013\023\037\110\157\163\164\145\144\040\142\171\040\107\124\111 +\040\107\162\157\165\160\040\103\157\162\160\157\162\141\164\151 +\157\156\061\024\060\022\006\003\125\004\013\023\013\120\154\141 +\164\151\156\165\155\123\123\114\061\027\060\025\006\003\125\004 +\003\023\016\154\157\147\151\156\056\154\151\166\145\056\143\157 +\155 +END +CKA_ID UTF8 "0" +CKA_ISSUER MULTILINE_OCTAL +\060\201\227\061\013\060\011\006\003\125\004\006\023\002\125\123 +\061\013\060\011\006\003\125\004\010\023\002\125\124\061\027\060 +\025\006\003\125\004\007\023\016\123\141\154\164\040\114\141\153 +\145\040\103\151\164\171\061\036\060\034\006\003\125\004\012\023 +\025\124\150\145\040\125\123\105\122\124\122\125\123\124\040\116 +\145\164\167\157\162\153\061\041\060\037\006\003\125\004\013\023 +\030\150\164\164\160\072\057\057\167\167\167\056\165\163\145\162 +\164\162\165\163\164\056\143\157\155\061\037\060\035\006\003\125 +\004\003\023\026\125\124\116\055\125\123\105\122\106\151\162\163 +\164\055\110\141\162\144\167\141\162\145 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\021\000\260\267\023\076\320\226\371\265\157\256\221\310\164 +\275\072\300 +END +CKA_VALUE MULTILINE_OCTAL +\060\202\005\354\060\202\004\324\240\003\002\001\002\002\021\000 +\260\267\023\076\320\226\371\265\157\256\221\310\164\275\072\300 +\060\015\006\011\052\206\110\206\367\015\001\001\005\005\000\060 +\201\227\061\013\060\011\006\003\125\004\006\023\002\125\123\061 +\013\060\011\006\003\125\004\010\023\002\125\124\061\027\060\025 +\006\003\125\004\007\023\016\123\141\154\164\040\114\141\153\145 +\040\103\151\164\171\061\036\060\034\006\003\125\004\012\023\025 +\124\150\145\040\125\123\105\122\124\122\125\123\124\040\116\145 +\164\167\157\162\153\061\041\060\037\006\003\125\004\013\023\030 +\150\164\164\160\072\057\057\167\167\167\056\165\163\145\162\164 +\162\165\163\164\056\143\157\155\061\037\060\035\006\003\125\004 +\003\023\026\125\124\116\055\125\123\105\122\106\151\162\163\164 +\055\110\141\162\144\167\141\162\145\060\036\027\015\061\061\060 +\063\061\065\060\060\060\060\060\060\132\027\015\061\064\060\063 +\061\064\062\063\065\071\065\071\132\060\201\336\061\013\060\011 +\006\003\125\004\006\023\002\125\123\061\016\060\014\006\003\125 +\004\021\023\005\063\070\064\067\067\061\020\060\016\006\003\125 +\004\010\023\007\106\154\157\162\151\144\141\061\020\060\016\006 +\003\125\004\007\023\007\105\156\147\154\151\163\150\061\027\060 +\025\006\003\125\004\011\023\016\123\145\141\040\126\151\154\154 +\141\147\145\040\061\060\061\024\060\022\006\003\125\004\012\023 +\013\107\157\157\147\154\145\040\114\164\144\056\061\023\060\021 +\006\003\125\004\013\023\012\124\145\143\150\040\104\145\160\164 +\056\061\050\060\046\006\003\125\004\013\023\037\110\157\163\164 +\145\144\040\142\171\040\107\124\111\040\107\162\157\165\160\040 +\103\157\162\160\157\162\141\164\151\157\156\061\024\060\022\006 +\003\125\004\013\023\013\120\154\141\164\151\156\165\155\123\123 +\114\061\027\060\025\006\003\125\004\003\023\016\154\157\147\151 +\156\056\154\151\166\145\056\143\157\155\060\202\001\042\060\015 +\006\011\052\206\110\206\367\015\001\001\001\005\000\003\202\001 +\017\000\060\202\001\012\002\202\001\001\000\363\374\053\057\357 +\341\255\131\360\102\074\302\361\202\277\054\101\223\321\366\230 +\063\225\114\274\142\361\225\130\010\266\351\173\167\110\260\323 +\334\027\077\274\156\346\354\036\354\215\027\376\034\044\306\076 +\147\075\222\225\242\060\300\247\127\040\317\160\210\227\112\005 +\223\171\223\102\227\057\076\377\304\024\024\050\242\023\066\264 +\370\356\276\035\274\170\135\141\223\137\353\210\327\321\344\053 +\232\315\130\342\007\105\237\117\270\271\100\152\063\054\133\041 +\003\132\112\224\362\172\227\131\033\250\265\102\330\203\000\252 +\064\314\247\166\320\107\003\137\005\257\073\341\271\241\064\045 +\267\154\137\232\060\204\230\302\302\327\362\270\102\112\020\125 +\275\372\123\201\135\215\150\146\105\054\122\176\345\304\004\303 +\124\347\303\071\332\172\112\305\271\230\202\040\341\054\140\127 +\277\272\362\106\000\274\137\072\334\343\063\227\370\112\230\271 +\354\063\117\055\140\154\025\222\246\201\112\013\351\354\166\160 +\064\061\027\160\346\160\113\216\213\323\165\313\170\111\253\146 +\233\206\237\217\251\304\001\350\312\033\347\002\003\001\000\001 +\243\202\001\350\060\202\001\344\060\037\006\003\125\035\043\004 +\030\060\026\200\024\241\162\137\046\033\050\230\103\225\135\007 +\067\325\205\226\235\113\322\303\105\060\035\006\003\125\035\016 +\004\026\004\024\324\144\366\251\350\245\176\327\277\143\122\003 +\203\123\333\305\101\215\352\200\060\016\006\003\125\035\017\001 +\001\377\004\004\003\002\005\240\060\014\006\003\125\035\023\001 +\001\377\004\002\060\000\060\035\006\003\125\035\045\004\026\060 +\024\006\010\053\006\001\005\005\007\003\001\006\010\053\006\001 +\005\005\007\003\002\060\106\006\003\125\035\040\004\077\060\075 +\060\073\006\014\053\006\001\004\001\262\061\001\002\001\003\004 +\060\053\060\051\006\010\053\006\001\005\005\007\002\001\026\035 +\150\164\164\160\163\072\057\057\163\145\143\165\162\145\056\143 +\157\155\157\144\157\056\143\157\155\057\103\120\123\060\173\006 +\003\125\035\037\004\164\060\162\060\070\240\066\240\064\206\062 +\150\164\164\160\072\057\057\143\162\154\056\143\157\155\157\144 +\157\143\141\056\143\157\155\057\125\124\116\055\125\123\105\122 +\106\151\162\163\164\055\110\141\162\144\167\141\162\145\056\143 +\162\154\060\066\240\064\240\062\206\060\150\164\164\160\072\057 +\057\143\162\154\056\143\157\155\157\144\157\056\156\145\164\057 +\125\124\116\055\125\123\105\122\106\151\162\163\164\055\110\141 +\162\144\167\141\162\145\056\143\162\154\060\161\006\010\053\006 +\001\005\005\007\001\001\004\145\060\143\060\073\006\010\053\006 +\001\005\005\007\060\002\206\057\150\164\164\160\072\057\057\143 +\162\164\056\143\157\155\157\144\157\143\141\056\143\157\155\057 +\125\124\116\101\144\144\124\162\165\163\164\123\145\162\166\145 +\162\103\101\056\143\162\164\060\044\006\010\053\006\001\005\005 +\007\060\001\206\030\150\164\164\160\072\057\057\157\143\163\160 +\056\143\157\155\157\144\157\143\141\056\143\157\155\060\055\006 +\003\125\035\021\004\046\060\044\202\016\154\157\147\151\156\056 +\154\151\166\145\056\143\157\155\202\022\167\167\167\056\154\157 +\147\151\156\056\154\151\166\145\056\143\157\155\060\015\006\011 +\052\206\110\206\367\015\001\001\005\005\000\003\202\001\001\000 +\124\343\244\232\044\322\363\035\102\255\033\360\036\253\373\332 +\325\252\351\317\132\263\036\127\173\061\362\156\127\113\061\257 +\063\273\266\015\025\307\136\131\001\316\104\265\267\277\011\311 +\325\334\151\204\351\305\032\267\360\076\324\300\044\275\051\137 +\264\351\326\130\353\105\021\211\064\064\323\021\353\064\316\052 +\117\000\075\366\162\357\151\146\300\237\232\254\176\160\120\254 +\125\107\332\276\103\133\354\213\310\305\043\204\311\237\266\122 +\010\317\221\033\057\200\151\346\064\063\346\263\237\244\345\015 +\232\025\371\127\374\013\251\101\013\365\377\130\101\222\042\047 +\146\022\006\307\052\330\131\247\306\337\104\022\117\300\250\177 +\247\101\310\310\151\377\272\005\056\227\255\073\320\353\363\025 +\155\176\033\345\272\335\064\276\042\021\354\150\230\063\201\002 +\152\013\023\125\171\061\165\116\072\310\266\023\275\227\157\067 +\012\013\055\210\016\336\147\220\302\263\312\040\312\232\121\364 +\144\076\333\364\056\105\362\307\107\027\250\364\372\220\132\177 +\200\246\202\254\344\154\201\106\273\122\205\040\044\370\200\352 +END + +# Trust for Certificate "Bogus live.com" +CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "Bogus live.com" +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\316\245\206\262\316\131\076\307\331\071\211\203\067\305\170\024 +\160\212\262\276 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\320\324\071\343\314\134\122\335\010\315\351\253\350\021\131\324 +END +CKA_ISSUER MULTILINE_OCTAL +\060\201\227\061\013\060\011\006\003\125\004\006\023\002\125\123 +\061\013\060\011\006\003\125\004\010\023\002\125\124\061\027\060 +\025\006\003\125\004\007\023\016\123\141\154\164\040\114\141\153 +\145\040\103\151\164\171\061\036\060\034\006\003\125\004\012\023 +\025\124\150\145\040\125\123\105\122\124\122\125\123\124\040\116 +\145\164\167\157\162\153\061\041\060\037\006\003\125\004\013\023 +\030\150\164\164\160\072\057\057\167\167\167\056\165\163\145\162 +\164\162\165\163\164\056\143\157\155\061\037\060\035\006\003\125 +\004\003\023\026\125\124\116\055\125\123\105\122\106\151\162\163 +\164\055\110\141\162\144\167\141\162\145 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\021\000\260\267\023\076\320\226\371\265\157\256\221\310\164 +\275\072\300 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_NOT_TRUSTED +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_NOT_TRUSTED +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_NOT_TRUSTED +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "Bogus kuix.de" +# +CKA_CLASS CK_OBJECT_CLASS CKO_CERTIFICATE +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "Bogus kuix.de" +CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509 +CKA_SUBJECT MULTILINE_OCTAL +\060\201\361\061\013\060\011\006\003\125\004\006\023\002\104\105 +\061\016\060\014\006\003\125\004\021\023\005\061\062\063\064\065 +\061\023\060\021\006\003\125\004\010\023\012\124\145\163\164\040 +\123\164\141\164\145\061\022\060\020\006\003\125\004\007\023\011 +\124\145\163\164\040\103\151\164\171\061\024\060\022\006\003\125 +\004\011\023\013\124\145\163\164\040\123\164\162\145\145\164\061 +\023\060\021\006\003\125\004\012\023\012\113\141\151\040\105\156 +\147\145\162\164\061\042\060\040\006\003\125\004\013\023\031\106 +\157\162\040\124\145\163\164\151\156\147\040\120\165\162\160\157 +\163\145\163\040\117\156\154\171\061\055\060\053\006\003\125\004 +\013\023\044\124\105\123\124\040\125\123\105\040\117\116\114\131 +\040\055\040\116\117\040\127\101\122\122\101\116\124\131\040\101 +\124\124\101\103\110\105\104\061\031\060\027\006\003\125\004\013 +\023\020\103\157\155\157\144\157\040\124\162\151\141\154\040\123 +\123\114\061\020\060\016\006\003\125\004\003\023\007\153\165\151 +\170\056\144\145 +END +CKA_ID UTF8 "0" +CKA_ISSUER MULTILINE_OCTAL +\060\201\227\061\013\060\011\006\003\125\004\006\023\002\125\123 +\061\013\060\011\006\003\125\004\010\023\002\125\124\061\027\060 +\025\006\003\125\004\007\023\016\123\141\154\164\040\114\141\153 +\145\040\103\151\164\171\061\036\060\034\006\003\125\004\012\023 +\025\124\150\145\040\125\123\105\122\124\122\125\123\124\040\116 +\145\164\167\157\162\153\061\041\060\037\006\003\125\004\013\023 +\030\150\164\164\160\072\057\057\167\167\167\056\165\163\145\162 +\164\162\165\163\164\056\143\157\155\061\037\060\035\006\003\125 +\004\003\023\026\125\124\116\055\125\123\105\122\106\151\162\163 +\164\055\110\141\162\144\167\141\162\145 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\020\162\003\041\005\305\014\010\127\075\216\245\060\116\376 +\350\260 +END +CKA_VALUE MULTILINE_OCTAL +\060\202\005\154\060\202\004\124\240\003\002\001\002\002\020\162 +\003\041\005\305\014\010\127\075\216\245\060\116\376\350\260\060 +\015\006\011\052\206\110\206\367\015\001\001\005\005\000\060\201 +\227\061\013\060\011\006\003\125\004\006\023\002\125\123\061\013 +\060\011\006\003\125\004\010\023\002\125\124\061\027\060\025\006 +\003\125\004\007\023\016\123\141\154\164\040\114\141\153\145\040 +\103\151\164\171\061\036\060\034\006\003\125\004\012\023\025\124 +\150\145\040\125\123\105\122\124\122\125\123\124\040\116\145\164 +\167\157\162\153\061\041\060\037\006\003\125\004\013\023\030\150 +\164\164\160\072\057\057\167\167\167\056\165\163\145\162\164\162 +\165\163\164\056\143\157\155\061\037\060\035\006\003\125\004\003 +\023\026\125\124\116\055\125\123\105\122\106\151\162\163\164\055 +\110\141\162\144\167\141\162\145\060\036\027\015\061\061\060\063 +\061\067\060\060\060\060\060\060\132\027\015\061\061\060\064\061 +\066\062\063\065\071\065\071\132\060\201\361\061\013\060\011\006 +\003\125\004\006\023\002\104\105\061\016\060\014\006\003\125\004 +\021\023\005\061\062\063\064\065\061\023\060\021\006\003\125\004 +\010\023\012\124\145\163\164\040\123\164\141\164\145\061\022\060 +\020\006\003\125\004\007\023\011\124\145\163\164\040\103\151\164 +\171\061\024\060\022\006\003\125\004\011\023\013\124\145\163\164 +\040\123\164\162\145\145\164\061\023\060\021\006\003\125\004\012 +\023\012\113\141\151\040\105\156\147\145\162\164\061\042\060\040 +\006\003\125\004\013\023\031\106\157\162\040\124\145\163\164\151 +\156\147\040\120\165\162\160\157\163\145\163\040\117\156\154\171 +\061\055\060\053\006\003\125\004\013\023\044\124\105\123\124\040 +\125\123\105\040\117\116\114\131\040\055\040\116\117\040\127\101 +\122\122\101\116\124\131\040\101\124\124\101\103\110\105\104\061 +\031\060\027\006\003\125\004\013\023\020\103\157\155\157\144\157 +\040\124\162\151\141\154\040\123\123\114\061\020\060\016\006\003 +\125\004\003\023\007\153\165\151\170\056\144\145\060\201\237\060 +\015\006\011\052\206\110\206\367\015\001\001\001\005\000\003\201 +\215\000\060\201\211\002\201\201\000\270\252\216\365\227\107\007 +\137\345\170\166\156\223\153\216\337\113\074\333\231\057\161\123 +\051\156\245\363\044\117\110\045\043\100\001\354\012\025\013\354 +\156\310\236\046\043\146\373\351\333\330\050\205\041\117\036\337 +\173\114\345\143\301\013\262\142\126\224\123\313\277\234\241\115 +\331\207\305\151\110\074\261\277\245\150\122\041\035\172\334\224 +\117\104\156\107\045\035\237\234\222\322\067\035\371\133\133\262 +\335\076\030\327\363\207\146\255\243\364\316\217\321\157\360\271 +\264\357\261\352\025\143\012\316\201\002\003\001\000\001\243\202 +\001\332\060\202\001\326\060\037\006\003\125\035\043\004\030\060 +\026\200\024\241\162\137\046\033\050\230\103\225\135\007\067\325 +\205\226\235\113\322\303\105\060\035\006\003\125\035\016\004\026 +\004\024\100\217\071\046\234\114\206\043\231\306\121\011\246\346 +\362\301\376\247\366\267\060\016\006\003\125\035\017\001\001\377 +\004\004\003\002\005\240\060\014\006\003\125\035\023\001\001\377 +\004\002\060\000\060\035\006\003\125\035\045\004\026\060\024\006 +\010\053\006\001\005\005\007\003\001\006\010\053\006\001\005\005 +\007\003\002\060\106\006\003\125\035\040\004\077\060\075\060\073 +\006\014\053\006\001\004\001\262\061\001\002\001\003\004\060\053 +\060\051\006\010\053\006\001\005\005\007\002\001\026\035\150\164 +\164\160\163\072\057\057\163\145\143\165\162\145\056\143\157\155 +\157\144\157\056\143\157\155\057\103\120\123\060\173\006\003\125 +\035\037\004\164\060\162\060\070\240\066\240\064\206\062\150\164 +\164\160\072\057\057\143\162\154\056\143\157\155\157\144\157\143 +\141\056\143\157\155\057\125\124\116\055\125\123\105\122\106\151 +\162\163\164\055\110\141\162\144\167\141\162\145\056\143\162\154 +\060\066\240\064\240\062\206\060\150\164\164\160\072\057\057\143 +\162\154\056\143\157\155\157\144\157\056\156\145\164\057\125\124 +\116\055\125\123\105\122\106\151\162\163\164\055\110\141\162\144 +\167\141\162\145\056\143\162\154\060\161\006\010\053\006\001\005 +\005\007\001\001\004\145\060\143\060\073\006\010\053\006\001\005 +\005\007\060\002\206\057\150\164\164\160\072\057\057\143\162\164 +\056\143\157\155\157\144\157\143\141\056\143\157\155\057\125\124 +\116\101\144\144\124\162\165\163\164\123\145\162\166\145\162\103 +\101\056\143\162\164\060\044\006\010\053\006\001\005\005\007\060 +\001\206\030\150\164\164\160\072\057\057\157\143\163\160\056\143 +\157\155\157\144\157\143\141\056\143\157\155\060\037\006\003\125 +\035\021\004\030\060\026\202\007\153\165\151\170\056\144\145\202 +\013\167\167\167\056\153\165\151\170\056\144\145\060\015\006\011 +\052\206\110\206\367\015\001\001\005\005\000\003\202\001\001\000 +\216\141\036\046\036\242\331\031\320\360\324\275\211\371\352\222 +\021\171\152\136\173\174\237\176\071\163\011\126\121\346\206\124 +\307\155\106\166\122\312\152\250\064\300\140\076\003\316\263\311 +\110\227\321\237\246\241\152\017\376\167\321\036\020\263\127\200 +\251\006\046\204\246\373\172\067\023\316\204\314\167\171\011\056 +\342\104\276\037\254\167\156\167\106\101\333\260\262\151\221\164 +\321\200\226\141\061\014\057\012\317\265\320\334\010\055\353\366 +\165\202\336\212\056\272\075\007\220\140\071\126\203\341\202\312 +\043\254\337\343\317\115\160\127\301\270\267\223\232\355\334\213 +\336\112\240\125\050\002\253\103\014\124\227\150\030\242\353\071 +\341\271\374\277\163\200\144\063\022\173\207\140\002\347\076\160 +\311\207\312\251\066\074\005\361\006\136\161\012\016\012\066\231 +\260\207\347\151\132\261\240\060\116\175\141\130\313\306\250\226 +\200\136\175\301\052\377\233\112\112\353\051\147\212\017\157\346 +\031\355\202\317\201\127\341\044\255\242\321\372\332\024\227\260 +\154\174\107\306\327\224\021\041\354\326\132\322\335\217\177\221 +END + +# Trust for Certificate "Bogus kuix.de" +CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "Bogus kuix.de" +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\202\141\113\354\227\110\025\336\314\232\314\156\204\041\161\171 +\262\144\040\100 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\367\137\230\274\330\144\014\026\345\256\356\252\000\366\037\007 +END +CKA_ISSUER MULTILINE_OCTAL +\060\201\227\061\013\060\011\006\003\125\004\006\023\002\125\123 +\061\013\060\011\006\003\125\004\010\023\002\125\124\061\027\060 +\025\006\003\125\004\007\023\016\123\141\154\164\040\114\141\153 +\145\040\103\151\164\171\061\036\060\034\006\003\125\004\012\023 +\025\124\150\145\040\125\123\105\122\124\122\125\123\124\040\116 +\145\164\167\157\162\153\061\041\060\037\006\003\125\004\013\023 +\030\150\164\164\160\072\057\057\167\167\167\056\165\163\145\162 +\164\162\165\163\164\056\143\157\155\061\037\060\035\006\003\125 +\004\003\023\026\125\124\116\055\125\123\105\122\106\151\162\163 +\164\055\110\141\162\144\167\141\162\145 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\020\162\003\041\005\305\014\010\127\075\216\245\060\116\376 +\350\260 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_NOT_TRUSTED +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_NOT_TRUSTED +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_NOT_TRUSTED +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "Go Daddy Root Certificate Authority - G2" +# +CKA_CLASS CK_OBJECT_CLASS CKO_CERTIFICATE +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "Go Daddy Root Certificate Authority - G2" +CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509 +CKA_SUBJECT MULTILINE_OCTAL +\060\201\203\061\013\060\011\006\003\125\004\006\023\002\125\123 +\061\020\060\016\006\003\125\004\010\023\007\101\162\151\172\157 +\156\141\061\023\060\021\006\003\125\004\007\023\012\123\143\157 +\164\164\163\144\141\154\145\061\032\060\030\006\003\125\004\012 +\023\021\107\157\104\141\144\144\171\056\143\157\155\054\040\111 +\156\143\056\061\061\060\057\006\003\125\004\003\023\050\107\157 +\040\104\141\144\144\171\040\122\157\157\164\040\103\145\162\164 +\151\146\151\143\141\164\145\040\101\165\164\150\157\162\151\164 +\171\040\055\040\107\062 +END +CKA_ID UTF8 "0" +CKA_ISSUER MULTILINE_OCTAL +\060\201\203\061\013\060\011\006\003\125\004\006\023\002\125\123 +\061\020\060\016\006\003\125\004\010\023\007\101\162\151\172\157 +\156\141\061\023\060\021\006\003\125\004\007\023\012\123\143\157 +\164\164\163\144\141\154\145\061\032\060\030\006\003\125\004\012 +\023\021\107\157\104\141\144\144\171\056\143\157\155\054\040\111 +\156\143\056\061\061\060\057\006\003\125\004\003\023\050\107\157 +\040\104\141\144\144\171\040\122\157\157\164\040\103\145\162\164 +\151\146\151\143\141\164\145\040\101\165\164\150\157\162\151\164 +\171\040\055\040\107\062 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\001\000 +END +CKA_VALUE MULTILINE_OCTAL +\060\202\003\305\060\202\002\255\240\003\002\001\002\002\001\000 +\060\015\006\011\052\206\110\206\367\015\001\001\013\005\000\060 +\201\203\061\013\060\011\006\003\125\004\006\023\002\125\123\061 +\020\060\016\006\003\125\004\010\023\007\101\162\151\172\157\156 +\141\061\023\060\021\006\003\125\004\007\023\012\123\143\157\164 +\164\163\144\141\154\145\061\032\060\030\006\003\125\004\012\023 +\021\107\157\104\141\144\144\171\056\143\157\155\054\040\111\156 +\143\056\061\061\060\057\006\003\125\004\003\023\050\107\157\040 +\104\141\144\144\171\040\122\157\157\164\040\103\145\162\164\151 +\146\151\143\141\164\145\040\101\165\164\150\157\162\151\164\171 +\040\055\040\107\062\060\036\027\015\060\071\060\071\060\061\060 +\060\060\060\060\060\132\027\015\063\067\061\062\063\061\062\063 +\065\071\065\071\132\060\201\203\061\013\060\011\006\003\125\004 +\006\023\002\125\123\061\020\060\016\006\003\125\004\010\023\007 +\101\162\151\172\157\156\141\061\023\060\021\006\003\125\004\007 +\023\012\123\143\157\164\164\163\144\141\154\145\061\032\060\030 +\006\003\125\004\012\023\021\107\157\104\141\144\144\171\056\143 +\157\155\054\040\111\156\143\056\061\061\060\057\006\003\125\004 +\003\023\050\107\157\040\104\141\144\144\171\040\122\157\157\164 +\040\103\145\162\164\151\146\151\143\141\164\145\040\101\165\164 +\150\157\162\151\164\171\040\055\040\107\062\060\202\001\042\060 +\015\006\011\052\206\110\206\367\015\001\001\001\005\000\003\202 +\001\017\000\060\202\001\012\002\202\001\001\000\277\161\142\010 +\361\372\131\064\367\033\311\030\243\367\200\111\130\351\042\203 +\023\246\305\040\103\001\073\204\361\346\205\111\237\047\352\366 +\204\033\116\240\264\333\160\230\307\062\001\261\005\076\007\116 +\356\364\372\117\057\131\060\042\347\253\031\126\153\342\200\007 +\374\363\026\165\200\071\121\173\345\371\065\266\164\116\251\215 +\202\023\344\266\077\251\003\203\372\242\276\212\025\152\177\336 +\013\303\266\031\024\005\312\352\303\250\004\224\073\106\174\062 +\015\363\000\146\042\310\215\151\155\066\214\021\030\267\323\262 +\034\140\264\070\372\002\214\316\323\335\106\007\336\012\076\353 +\135\174\310\174\373\260\053\123\244\222\142\151\121\045\005\141 +\032\104\201\214\054\251\103\226\043\337\254\072\201\232\016\051 +\305\034\251\351\135\036\266\236\236\060\012\071\316\361\210\200 +\373\113\135\314\062\354\205\142\103\045\064\002\126\047\001\221 +\264\073\160\052\077\156\261\350\234\210\001\175\237\324\371\333 +\123\155\140\235\277\054\347\130\253\270\137\106\374\316\304\033 +\003\074\011\353\111\061\134\151\106\263\340\107\002\003\001\000 +\001\243\102\060\100\060\017\006\003\125\035\023\001\001\377\004 +\005\060\003\001\001\377\060\016\006\003\125\035\017\001\001\377 +\004\004\003\002\001\006\060\035\006\003\125\035\016\004\026\004 +\024\072\232\205\007\020\147\050\266\357\366\275\005\101\156\040 +\301\224\332\017\336\060\015\006\011\052\206\110\206\367\015\001 +\001\013\005\000\003\202\001\001\000\231\333\135\171\325\371\227 +\131\147\003\141\361\176\073\006\061\165\055\241\040\216\117\145 +\207\264\367\246\234\274\330\351\057\320\333\132\356\317\164\214 +\163\264\070\102\332\005\173\370\002\165\270\375\245\261\327\256 +\366\327\336\023\313\123\020\176\212\106\321\227\372\267\056\053 +\021\253\220\260\047\200\371\350\237\132\351\067\237\253\344\337 +\154\263\205\027\235\075\331\044\117\171\221\065\326\137\004\353 +\200\203\253\232\002\055\265\020\364\330\220\307\004\163\100\355 +\162\045\240\251\237\354\236\253\150\022\231\127\306\217\022\072 +\011\244\275\104\375\006\025\067\301\233\344\062\243\355\070\350 +\330\144\363\054\176\024\374\002\352\237\315\377\007\150\027\333 +\042\220\070\055\172\215\321\124\361\151\343\137\063\312\172\075 +\173\012\343\312\177\137\071\345\342\165\272\305\166\030\063\316 +\054\360\057\114\255\367\261\347\316\117\250\304\233\112\124\006 +\305\177\175\325\010\017\342\034\376\176\027\270\254\136\366\324 +\026\262\103\011\014\115\366\247\153\264\231\204\145\312\172\210 +\342\342\104\276\134\367\352\034\365 +END + +# Trust for Certificate "Go Daddy Root Certificate Authority - G2" +CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "Go Daddy Root Certificate Authority - G2" +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\107\276\253\311\042\352\350\016\170\170\064\142\247\237\105\302 +\124\375\346\213 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\200\072\274\042\301\346\373\215\233\073\047\112\062\033\232\001 +END +CKA_ISSUER MULTILINE_OCTAL +\060\201\203\061\013\060\011\006\003\125\004\006\023\002\125\123 +\061\020\060\016\006\003\125\004\010\023\007\101\162\151\172\157 +\156\141\061\023\060\021\006\003\125\004\007\023\012\123\143\157 +\164\164\163\144\141\154\145\061\032\060\030\006\003\125\004\012 +\023\021\107\157\104\141\144\144\171\056\143\157\155\054\040\111 +\156\143\056\061\061\060\057\006\003\125\004\003\023\050\107\157 +\040\104\141\144\144\171\040\122\157\157\164\040\103\145\162\164 +\151\146\151\143\141\164\145\040\101\165\164\150\157\162\151\164 +\171\040\055\040\107\062 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\001\000 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_TRUST_UNKNOWN +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "Starfield Root Certificate Authority - G2" +# +CKA_CLASS CK_OBJECT_CLASS CKO_CERTIFICATE +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "Starfield Root Certificate Authority - G2" +CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509 +CKA_SUBJECT MULTILINE_OCTAL +\060\201\217\061\013\060\011\006\003\125\004\006\023\002\125\123 +\061\020\060\016\006\003\125\004\010\023\007\101\162\151\172\157 +\156\141\061\023\060\021\006\003\125\004\007\023\012\123\143\157 +\164\164\163\144\141\154\145\061\045\060\043\006\003\125\004\012 +\023\034\123\164\141\162\146\151\145\154\144\040\124\145\143\150 +\156\157\154\157\147\151\145\163\054\040\111\156\143\056\061\062 +\060\060\006\003\125\004\003\023\051\123\164\141\162\146\151\145 +\154\144\040\122\157\157\164\040\103\145\162\164\151\146\151\143 +\141\164\145\040\101\165\164\150\157\162\151\164\171\040\055\040 +\107\062 +END +CKA_ID UTF8 "0" +CKA_ISSUER MULTILINE_OCTAL +\060\201\217\061\013\060\011\006\003\125\004\006\023\002\125\123 +\061\020\060\016\006\003\125\004\010\023\007\101\162\151\172\157 +\156\141\061\023\060\021\006\003\125\004\007\023\012\123\143\157 +\164\164\163\144\141\154\145\061\045\060\043\006\003\125\004\012 +\023\034\123\164\141\162\146\151\145\154\144\040\124\145\143\150 +\156\157\154\157\147\151\145\163\054\040\111\156\143\056\061\062 +\060\060\006\003\125\004\003\023\051\123\164\141\162\146\151\145 +\154\144\040\122\157\157\164\040\103\145\162\164\151\146\151\143 +\141\164\145\040\101\165\164\150\157\162\151\164\171\040\055\040 +\107\062 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\001\000 +END +CKA_VALUE MULTILINE_OCTAL +\060\202\003\335\060\202\002\305\240\003\002\001\002\002\001\000 +\060\015\006\011\052\206\110\206\367\015\001\001\013\005\000\060 +\201\217\061\013\060\011\006\003\125\004\006\023\002\125\123\061 +\020\060\016\006\003\125\004\010\023\007\101\162\151\172\157\156 +\141\061\023\060\021\006\003\125\004\007\023\012\123\143\157\164 +\164\163\144\141\154\145\061\045\060\043\006\003\125\004\012\023 +\034\123\164\141\162\146\151\145\154\144\040\124\145\143\150\156 +\157\154\157\147\151\145\163\054\040\111\156\143\056\061\062\060 +\060\006\003\125\004\003\023\051\123\164\141\162\146\151\145\154 +\144\040\122\157\157\164\040\103\145\162\164\151\146\151\143\141 +\164\145\040\101\165\164\150\157\162\151\164\171\040\055\040\107 +\062\060\036\027\015\060\071\060\071\060\061\060\060\060\060\060 +\060\132\027\015\063\067\061\062\063\061\062\063\065\071\065\071 +\132\060\201\217\061\013\060\011\006\003\125\004\006\023\002\125 +\123\061\020\060\016\006\003\125\004\010\023\007\101\162\151\172 +\157\156\141\061\023\060\021\006\003\125\004\007\023\012\123\143 +\157\164\164\163\144\141\154\145\061\045\060\043\006\003\125\004 +\012\023\034\123\164\141\162\146\151\145\154\144\040\124\145\143 +\150\156\157\154\157\147\151\145\163\054\040\111\156\143\056\061 +\062\060\060\006\003\125\004\003\023\051\123\164\141\162\146\151 +\145\154\144\040\122\157\157\164\040\103\145\162\164\151\146\151 +\143\141\164\145\040\101\165\164\150\157\162\151\164\171\040\055 +\040\107\062\060\202\001\042\060\015\006\011\052\206\110\206\367 +\015\001\001\001\005\000\003\202\001\017\000\060\202\001\012\002 +\202\001\001\000\275\355\301\003\374\366\217\374\002\261\157\133 +\237\110\331\235\171\342\242\267\003\141\126\030\303\107\266\327 +\312\075\065\056\211\103\367\241\151\233\336\212\032\375\023\040 +\234\264\111\167\062\051\126\375\271\354\214\335\042\372\162\334 +\047\141\227\356\366\132\204\354\156\031\271\211\054\334\204\133 +\325\164\373\153\137\305\211\245\020\122\211\106\125\364\270\165 +\034\346\177\344\124\256\113\370\125\162\127\002\031\370\027\161 +\131\353\036\050\007\164\305\235\110\276\154\264\364\244\260\363 +\144\067\171\222\300\354\106\136\177\341\155\123\114\142\257\315 +\037\013\143\273\072\235\373\374\171\000\230\141\164\317\046\202 +\100\143\363\262\162\152\031\015\231\312\324\016\165\314\067\373 +\213\211\301\131\361\142\177\137\263\137\145\060\370\247\267\115 +\166\132\036\166\136\064\300\350\226\126\231\212\263\360\177\244 +\315\275\334\062\061\174\221\317\340\137\021\370\153\252\111\134 +\321\231\224\321\242\343\143\133\011\166\265\126\142\341\113\164 +\035\226\324\046\324\010\004\131\320\230\016\016\346\336\374\303 +\354\037\220\361\002\003\001\000\001\243\102\060\100\060\017\006 +\003\125\035\023\001\001\377\004\005\060\003\001\001\377\060\016 +\006\003\125\035\017\001\001\377\004\004\003\002\001\006\060\035 +\006\003\125\035\016\004\026\004\024\174\014\062\037\247\331\060 +\177\304\175\150\243\142\250\241\316\253\007\133\047\060\015\006 +\011\052\206\110\206\367\015\001\001\013\005\000\003\202\001\001 +\000\021\131\372\045\117\003\157\224\231\073\232\037\202\205\071 +\324\166\005\224\136\341\050\223\155\142\135\011\302\240\250\324 +\260\165\070\361\064\152\235\344\237\212\206\046\121\346\054\321 +\306\055\156\225\040\112\222\001\354\270\212\147\173\061\342\147 +\056\214\225\003\046\056\103\235\112\061\366\016\265\014\273\267 +\342\067\177\042\272\000\243\016\173\122\373\153\273\073\304\323 +\171\121\116\315\220\364\147\007\031\310\074\106\172\015\001\175 +\305\130\347\155\346\205\060\027\232\044\304\020\340\004\367\340 +\362\177\324\252\012\377\102\035\067\355\224\345\144\131\022\040 +\167\070\323\062\076\070\201\165\226\163\372\150\217\261\313\316 +\037\305\354\372\234\176\317\176\261\361\007\055\266\374\277\312 +\244\277\320\227\005\112\274\352\030\050\002\220\275\124\170\011 +\041\161\323\321\175\035\331\026\260\251\141\075\320\012\000\042 +\374\307\173\313\011\144\105\013\073\100\201\367\175\174\062\365 +\230\312\130\216\175\052\356\220\131\163\144\371\066\164\136\045 +\241\365\146\005\056\177\071\025\251\052\373\120\213\216\205\151 +\364 +END + +# Trust for Certificate "Starfield Root Certificate Authority - G2" +CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "Starfield Root Certificate Authority - G2" +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\265\034\006\174\356\053\014\075\370\125\253\055\222\364\376\071 +\324\347\017\016 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\326\071\201\306\122\176\226\151\374\374\312\146\355\005\362\226 +END +CKA_ISSUER MULTILINE_OCTAL +\060\201\217\061\013\060\011\006\003\125\004\006\023\002\125\123 +\061\020\060\016\006\003\125\004\010\023\007\101\162\151\172\157 +\156\141\061\023\060\021\006\003\125\004\007\023\012\123\143\157 +\164\164\163\144\141\154\145\061\045\060\043\006\003\125\004\012 +\023\034\123\164\141\162\146\151\145\154\144\040\124\145\143\150 +\156\157\154\157\147\151\145\163\054\040\111\156\143\056\061\062 +\060\060\006\003\125\004\003\023\051\123\164\141\162\146\151\145 +\154\144\040\122\157\157\164\040\103\145\162\164\151\146\151\143 +\141\164\145\040\101\165\164\150\157\162\151\164\171\040\055\040 +\107\062 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\001\000 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_TRUST_UNKNOWN +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "Starfield Services Root Certificate Authority - G2" +# +CKA_CLASS CK_OBJECT_CLASS CKO_CERTIFICATE +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "Starfield Services Root Certificate Authority - G2" +CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509 +CKA_SUBJECT MULTILINE_OCTAL +\060\201\230\061\013\060\011\006\003\125\004\006\023\002\125\123 +\061\020\060\016\006\003\125\004\010\023\007\101\162\151\172\157 +\156\141\061\023\060\021\006\003\125\004\007\023\012\123\143\157 +\164\164\163\144\141\154\145\061\045\060\043\006\003\125\004\012 +\023\034\123\164\141\162\146\151\145\154\144\040\124\145\143\150 +\156\157\154\157\147\151\145\163\054\040\111\156\143\056\061\073 +\060\071\006\003\125\004\003\023\062\123\164\141\162\146\151\145 +\154\144\040\123\145\162\166\151\143\145\163\040\122\157\157\164 +\040\103\145\162\164\151\146\151\143\141\164\145\040\101\165\164 +\150\157\162\151\164\171\040\055\040\107\062 +END +CKA_ID UTF8 "0" +CKA_ISSUER MULTILINE_OCTAL +\060\201\230\061\013\060\011\006\003\125\004\006\023\002\125\123 +\061\020\060\016\006\003\125\004\010\023\007\101\162\151\172\157 +\156\141\061\023\060\021\006\003\125\004\007\023\012\123\143\157 +\164\164\163\144\141\154\145\061\045\060\043\006\003\125\004\012 +\023\034\123\164\141\162\146\151\145\154\144\040\124\145\143\150 +\156\157\154\157\147\151\145\163\054\040\111\156\143\056\061\073 +\060\071\006\003\125\004\003\023\062\123\164\141\162\146\151\145 +\154\144\040\123\145\162\166\151\143\145\163\040\122\157\157\164 +\040\103\145\162\164\151\146\151\143\141\164\145\040\101\165\164 +\150\157\162\151\164\171\040\055\040\107\062 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\001\000 +END +CKA_VALUE MULTILINE_OCTAL +\060\202\003\357\060\202\002\327\240\003\002\001\002\002\001\000 +\060\015\006\011\052\206\110\206\367\015\001\001\013\005\000\060 +\201\230\061\013\060\011\006\003\125\004\006\023\002\125\123\061 +\020\060\016\006\003\125\004\010\023\007\101\162\151\172\157\156 +\141\061\023\060\021\006\003\125\004\007\023\012\123\143\157\164 +\164\163\144\141\154\145\061\045\060\043\006\003\125\004\012\023 +\034\123\164\141\162\146\151\145\154\144\040\124\145\143\150\156 +\157\154\157\147\151\145\163\054\040\111\156\143\056\061\073\060 +\071\006\003\125\004\003\023\062\123\164\141\162\146\151\145\154 +\144\040\123\145\162\166\151\143\145\163\040\122\157\157\164\040 +\103\145\162\164\151\146\151\143\141\164\145\040\101\165\164\150 +\157\162\151\164\171\040\055\040\107\062\060\036\027\015\060\071 +\060\071\060\061\060\060\060\060\060\060\132\027\015\063\067\061 +\062\063\061\062\063\065\071\065\071\132\060\201\230\061\013\060 +\011\006\003\125\004\006\023\002\125\123\061\020\060\016\006\003 +\125\004\010\023\007\101\162\151\172\157\156\141\061\023\060\021 +\006\003\125\004\007\023\012\123\143\157\164\164\163\144\141\154 +\145\061\045\060\043\006\003\125\004\012\023\034\123\164\141\162 +\146\151\145\154\144\040\124\145\143\150\156\157\154\157\147\151 +\145\163\054\040\111\156\143\056\061\073\060\071\006\003\125\004 +\003\023\062\123\164\141\162\146\151\145\154\144\040\123\145\162 +\166\151\143\145\163\040\122\157\157\164\040\103\145\162\164\151 +\146\151\143\141\164\145\040\101\165\164\150\157\162\151\164\171 +\040\055\040\107\062\060\202\001\042\060\015\006\011\052\206\110 +\206\367\015\001\001\001\005\000\003\202\001\017\000\060\202\001 +\012\002\202\001\001\000\325\014\072\304\052\371\116\342\365\276 +\031\227\137\216\210\123\261\037\077\313\317\237\040\023\155\051 +\072\310\017\175\074\367\153\166\070\143\331\066\140\250\233\136 +\134\000\200\262\057\131\177\366\207\371\045\103\206\347\151\033 +\122\232\220\341\161\343\330\055\015\116\157\366\310\111\331\266 +\363\032\126\256\053\266\164\024\353\317\373\046\343\032\272\035 +\226\056\152\073\130\224\211\107\126\377\045\240\223\160\123\203 +\332\204\164\024\303\147\236\004\150\072\337\216\100\132\035\112 +\116\317\103\221\073\347\126\326\000\160\313\122\356\173\175\256 +\072\347\274\061\371\105\366\302\140\317\023\131\002\053\200\314 +\064\107\337\271\336\220\145\155\002\317\054\221\246\246\347\336 +\205\030\111\174\146\116\243\072\155\251\265\356\064\056\272\015 +\003\270\063\337\107\353\261\153\215\045\331\233\316\201\321\105 +\106\062\226\160\207\336\002\016\111\103\205\266\154\163\273\144 +\352\141\101\254\311\324\124\337\207\057\307\042\262\046\314\237 +\131\124\150\237\374\276\052\057\304\125\034\165\100\140\027\205 +\002\125\071\213\177\005\002\003\001\000\001\243\102\060\100\060 +\017\006\003\125\035\023\001\001\377\004\005\060\003\001\001\377 +\060\016\006\003\125\035\017\001\001\377\004\004\003\002\001\006 +\060\035\006\003\125\035\016\004\026\004\024\234\137\000\337\252 +\001\327\060\053\070\210\242\270\155\112\234\362\021\221\203\060 +\015\006\011\052\206\110\206\367\015\001\001\013\005\000\003\202 +\001\001\000\113\066\246\204\167\151\335\073\031\237\147\043\010 +\157\016\141\311\375\204\334\137\330\066\201\315\330\033\101\055 +\237\140\335\307\032\150\331\321\156\206\341\210\043\317\023\336 +\103\317\342\064\263\004\235\037\051\325\277\370\136\310\325\301 +\275\356\222\157\062\164\362\221\202\057\275\202\102\172\255\052 +\267\040\175\115\274\172\125\022\302\025\352\275\367\152\225\056 +\154\164\237\317\034\264\362\305\001\243\205\320\162\076\255\163 +\253\013\233\165\014\155\105\267\216\224\254\226\067\265\240\320 +\217\025\107\016\343\350\203\335\217\375\357\101\001\167\314\047 +\251\142\205\063\362\067\010\357\161\317\167\006\336\310\031\035 +\210\100\317\175\106\035\377\036\307\341\316\377\043\333\306\372 +\215\125\116\251\002\347\107\021\106\076\364\375\275\173\051\046 +\273\251\141\142\067\050\266\055\052\366\020\206\144\311\160\247 +\322\255\267\051\160\171\352\074\332\143\045\237\375\150\267\060 +\354\160\373\165\212\267\155\140\147\262\036\310\271\351\330\250 +\157\002\213\147\015\115\046\127\161\332\040\374\301\112\120\215 +\261\050\272 +END + +# Trust for Certificate "Starfield Services Root Certificate Authority - G2" +CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "Starfield Services Root Certificate Authority - G2" +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\222\132\217\215\054\155\004\340\146\137\131\152\377\042\330\143 +\350\045\157\077 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\027\065\164\257\173\141\034\353\364\371\074\342\356\100\371\242 +END +CKA_ISSUER MULTILINE_OCTAL +\060\201\230\061\013\060\011\006\003\125\004\006\023\002\125\123 +\061\020\060\016\006\003\125\004\010\023\007\101\162\151\172\157 +\156\141\061\023\060\021\006\003\125\004\007\023\012\123\143\157 +\164\164\163\144\141\154\145\061\045\060\043\006\003\125\004\012 +\023\034\123\164\141\162\146\151\145\154\144\040\124\145\143\150 +\156\157\154\157\147\151\145\163\054\040\111\156\143\056\061\073 +\060\071\006\003\125\004\003\023\062\123\164\141\162\146\151\145 +\154\144\040\123\145\162\166\151\143\145\163\040\122\157\157\164 +\040\103\145\162\164\151\146\151\143\141\164\145\040\101\165\164 +\150\157\162\151\164\171\040\055\040\107\062 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\001\000 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_TRUST_UNKNOWN +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "AffirmTrust Commercial" +# +CKA_CLASS CK_OBJECT_CLASS CKO_CERTIFICATE +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "AffirmTrust Commercial" +CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509 +CKA_SUBJECT MULTILINE_OCTAL +\060\104\061\013\060\011\006\003\125\004\006\023\002\125\123\061 +\024\060\022\006\003\125\004\012\014\013\101\146\146\151\162\155 +\124\162\165\163\164\061\037\060\035\006\003\125\004\003\014\026 +\101\146\146\151\162\155\124\162\165\163\164\040\103\157\155\155 +\145\162\143\151\141\154 +END +CKA_ID UTF8 "0" +CKA_ISSUER MULTILINE_OCTAL +\060\104\061\013\060\011\006\003\125\004\006\023\002\125\123\061 +\024\060\022\006\003\125\004\012\014\013\101\146\146\151\162\155 +\124\162\165\163\164\061\037\060\035\006\003\125\004\003\014\026 +\101\146\146\151\162\155\124\162\165\163\164\040\103\157\155\155 +\145\162\143\151\141\154 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\010\167\167\006\047\046\251\261\174 +END +CKA_VALUE MULTILINE_OCTAL +\060\202\003\114\060\202\002\064\240\003\002\001\002\002\010\167 +\167\006\047\046\251\261\174\060\015\006\011\052\206\110\206\367 +\015\001\001\013\005\000\060\104\061\013\060\011\006\003\125\004 +\006\023\002\125\123\061\024\060\022\006\003\125\004\012\014\013 +\101\146\146\151\162\155\124\162\165\163\164\061\037\060\035\006 +\003\125\004\003\014\026\101\146\146\151\162\155\124\162\165\163 +\164\040\103\157\155\155\145\162\143\151\141\154\060\036\027\015 +\061\060\060\061\062\071\061\064\060\066\060\066\132\027\015\063 +\060\061\062\063\061\061\064\060\066\060\066\132\060\104\061\013 +\060\011\006\003\125\004\006\023\002\125\123\061\024\060\022\006 +\003\125\004\012\014\013\101\146\146\151\162\155\124\162\165\163 +\164\061\037\060\035\006\003\125\004\003\014\026\101\146\146\151 +\162\155\124\162\165\163\164\040\103\157\155\155\145\162\143\151 +\141\154\060\202\001\042\060\015\006\011\052\206\110\206\367\015 +\001\001\001\005\000\003\202\001\017\000\060\202\001\012\002\202 +\001\001\000\366\033\117\147\007\053\241\025\365\006\042\313\037 +\001\262\343\163\105\006\104\111\054\273\111\045\024\326\316\303 +\267\253\054\117\306\101\062\224\127\372\022\247\133\016\342\217 +\037\036\206\031\247\252\265\055\271\137\015\212\302\257\205\065 +\171\062\055\273\034\142\067\362\261\133\112\075\312\315\161\137 +\351\102\276\224\350\310\336\371\042\110\144\306\345\253\306\053 +\155\255\005\360\372\325\013\317\232\345\360\120\244\213\073\107 +\245\043\133\172\172\370\063\077\270\357\231\227\343\040\301\326 +\050\211\317\224\373\271\105\355\343\100\027\021\324\164\360\013 +\061\342\053\046\152\233\114\127\256\254\040\076\272\105\172\005 +\363\275\233\151\025\256\175\116\040\143\304\065\166\072\007\002 +\311\067\375\307\107\356\350\361\166\035\163\025\362\227\244\265 +\310\172\171\331\102\252\053\177\134\376\316\046\117\243\146\201 +\065\257\104\272\124\036\034\060\062\145\235\346\074\223\136\120 +\116\172\343\072\324\156\314\032\373\371\322\067\256\044\052\253 +\127\003\042\050\015\111\165\177\267\050\332\165\277\216\343\334 +\016\171\061\002\003\001\000\001\243\102\060\100\060\035\006\003 +\125\035\016\004\026\004\024\235\223\306\123\213\136\312\257\077 +\237\036\017\345\231\225\274\044\366\224\217\060\017\006\003\125 +\035\023\001\001\377\004\005\060\003\001\001\377\060\016\006\003 +\125\035\017\001\001\377\004\004\003\002\001\006\060\015\006\011 +\052\206\110\206\367\015\001\001\013\005\000\003\202\001\001\000 +\130\254\364\004\016\315\300\015\377\012\375\324\272\026\137\051 +\275\173\150\231\130\111\322\264\035\067\115\177\047\175\106\006 +\135\103\306\206\056\076\163\262\046\175\117\223\251\266\304\052 +\232\253\041\227\024\261\336\214\323\253\211\025\330\153\044\324 +\361\026\256\330\244\134\324\177\121\216\355\030\001\261\223\143 +\275\274\370\141\200\232\236\261\316\102\160\342\251\175\006\045 +\175\047\241\376\157\354\263\036\044\332\343\113\125\032\000\073 +\065\264\073\331\327\135\060\375\201\023\211\362\302\006\053\355 +\147\304\216\311\103\262\134\153\025\211\002\274\142\374\116\362 +\265\063\252\262\157\323\012\242\120\343\366\073\350\056\104\302 +\333\146\070\251\063\126\110\361\155\033\063\215\015\214\077\140 +\067\235\323\312\155\176\064\176\015\237\162\166\213\033\237\162 +\375\122\065\101\105\002\226\057\034\262\232\163\111\041\261\111 +\107\105\107\264\357\152\064\021\311\115\232\314\131\267\326\002 +\236\132\116\145\265\224\256\033\337\051\260\026\361\277\000\236 +\007\072\027\144\265\004\265\043\041\231\012\225\073\227\174\357 +END + +# Trust for Certificate "AffirmTrust Commercial" +CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "AffirmTrust Commercial" +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\371\265\266\062\105\137\234\276\354\127\137\200\334\351\156\054 +\307\262\170\267 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\202\222\272\133\357\315\212\157\246\075\125\371\204\366\326\267 +END +CKA_ISSUER MULTILINE_OCTAL +\060\104\061\013\060\011\006\003\125\004\006\023\002\125\123\061 +\024\060\022\006\003\125\004\012\014\013\101\146\146\151\162\155 +\124\162\165\163\164\061\037\060\035\006\003\125\004\003\014\026 +\101\146\146\151\162\155\124\162\165\163\164\040\103\157\155\155 +\145\162\143\151\141\154 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\010\167\167\006\047\046\251\261\174 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_TRUST_UNKNOWN +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_TRUST_UNKNOWN +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "AffirmTrust Networking" +# +CKA_CLASS CK_OBJECT_CLASS CKO_CERTIFICATE +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "AffirmTrust Networking" +CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509 +CKA_SUBJECT MULTILINE_OCTAL +\060\104\061\013\060\011\006\003\125\004\006\023\002\125\123\061 +\024\060\022\006\003\125\004\012\014\013\101\146\146\151\162\155 +\124\162\165\163\164\061\037\060\035\006\003\125\004\003\014\026 +\101\146\146\151\162\155\124\162\165\163\164\040\116\145\164\167 +\157\162\153\151\156\147 +END +CKA_ID UTF8 "0" +CKA_ISSUER MULTILINE_OCTAL +\060\104\061\013\060\011\006\003\125\004\006\023\002\125\123\061 +\024\060\022\006\003\125\004\012\014\013\101\146\146\151\162\155 +\124\162\165\163\164\061\037\060\035\006\003\125\004\003\014\026 +\101\146\146\151\162\155\124\162\165\163\164\040\116\145\164\167 +\157\162\153\151\156\147 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\010\174\117\004\071\034\324\231\055 +END +CKA_VALUE MULTILINE_OCTAL +\060\202\003\114\060\202\002\064\240\003\002\001\002\002\010\174 +\117\004\071\034\324\231\055\060\015\006\011\052\206\110\206\367 +\015\001\001\005\005\000\060\104\061\013\060\011\006\003\125\004 +\006\023\002\125\123\061\024\060\022\006\003\125\004\012\014\013 +\101\146\146\151\162\155\124\162\165\163\164\061\037\060\035\006 +\003\125\004\003\014\026\101\146\146\151\162\155\124\162\165\163 +\164\040\116\145\164\167\157\162\153\151\156\147\060\036\027\015 +\061\060\060\061\062\071\061\064\060\070\062\064\132\027\015\063 +\060\061\062\063\061\061\064\060\070\062\064\132\060\104\061\013 +\060\011\006\003\125\004\006\023\002\125\123\061\024\060\022\006 +\003\125\004\012\014\013\101\146\146\151\162\155\124\162\165\163 +\164\061\037\060\035\006\003\125\004\003\014\026\101\146\146\151 +\162\155\124\162\165\163\164\040\116\145\164\167\157\162\153\151 +\156\147\060\202\001\042\060\015\006\011\052\206\110\206\367\015 +\001\001\001\005\000\003\202\001\017\000\060\202\001\012\002\202 +\001\001\000\264\204\314\063\027\056\153\224\154\153\141\122\240 +\353\243\317\171\224\114\345\224\200\231\313\125\144\104\145\217 +\147\144\342\006\343\134\067\111\366\057\233\204\204\036\055\362 +\140\235\060\116\314\204\205\342\054\317\036\236\376\066\253\063 +\167\065\104\330\065\226\032\075\066\350\172\016\330\325\107\241 +\152\151\213\331\374\273\072\256\171\132\325\364\326\161\273\232 +\220\043\153\232\267\210\164\207\014\036\137\271\236\055\372\253 +\123\053\334\273\166\076\223\114\010\010\214\036\242\043\034\324 +\152\255\042\272\231\001\056\155\145\313\276\044\146\125\044\113 +\100\104\261\033\327\341\302\205\300\336\020\077\075\355\270\374 +\361\361\043\123\334\277\145\227\157\331\371\100\161\215\175\275 +\225\324\316\276\240\136\047\043\336\375\246\320\046\016\000\051 +\353\074\106\360\075\140\277\077\120\322\334\046\101\121\236\024 +\067\102\004\243\160\127\250\033\207\355\055\372\173\356\214\012 +\343\251\146\211\031\313\101\371\335\104\066\141\317\342\167\106 +\310\175\366\364\222\201\066\375\333\064\361\162\176\363\014\026 +\275\264\025\002\003\001\000\001\243\102\060\100\060\035\006\003 +\125\035\016\004\026\004\024\007\037\322\347\234\332\302\156\242 +\100\264\260\172\120\020\120\164\304\310\275\060\017\006\003\125 +\035\023\001\001\377\004\005\060\003\001\001\377\060\016\006\003 +\125\035\017\001\001\377\004\004\003\002\001\006\060\015\006\011 +\052\206\110\206\367\015\001\001\005\005\000\003\202\001\001\000 +\211\127\262\026\172\250\302\375\326\331\233\233\064\302\234\264 +\062\024\115\247\244\337\354\276\247\276\370\103\333\221\067\316 +\264\062\056\120\125\032\065\116\166\103\161\040\357\223\167\116 +\025\160\056\207\303\301\035\155\334\313\265\047\324\054\126\321 +\122\123\072\104\322\163\310\304\033\005\145\132\142\222\234\356 +\101\215\061\333\347\064\352\131\041\325\001\172\327\144\270\144 +\071\315\311\355\257\355\113\003\110\247\240\231\001\200\334\145 +\243\066\256\145\131\110\117\202\113\310\145\361\127\035\345\131 +\056\012\077\154\330\321\365\345\011\264\154\124\000\012\340\025 +\115\207\165\155\267\130\226\132\335\155\322\000\240\364\233\110 +\276\303\067\244\272\066\340\174\207\205\227\032\025\242\336\056 +\242\133\275\257\030\371\220\120\315\160\131\370\047\147\107\313 +\307\240\007\072\175\321\054\135\154\031\072\146\265\175\375\221 +\157\202\261\276\010\223\333\024\107\361\242\067\307\105\236\074 +\307\167\257\144\250\223\337\366\151\203\202\140\362\111\102\064 +\355\132\000\124\205\034\026\066\222\014\134\372\246\255\277\333 +END + +# Trust for Certificate "AffirmTrust Networking" +CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "AffirmTrust Networking" +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\051\066\041\002\213\040\355\002\365\146\305\062\321\326\355\220 +\237\105\000\057 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\102\145\312\276\001\232\232\114\251\214\101\111\315\300\325\177 +END +CKA_ISSUER MULTILINE_OCTAL +\060\104\061\013\060\011\006\003\125\004\006\023\002\125\123\061 +\024\060\022\006\003\125\004\012\014\013\101\146\146\151\162\155 +\124\162\165\163\164\061\037\060\035\006\003\125\004\003\014\026 +\101\146\146\151\162\155\124\162\165\163\164\040\116\145\164\167 +\157\162\153\151\156\147 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\010\174\117\004\071\034\324\231\055 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_TRUST_UNKNOWN +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_TRUST_UNKNOWN +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "AffirmTrust Premium" +# +CKA_CLASS CK_OBJECT_CLASS CKO_CERTIFICATE +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "AffirmTrust Premium" +CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509 +CKA_SUBJECT MULTILINE_OCTAL +\060\101\061\013\060\011\006\003\125\004\006\023\002\125\123\061 +\024\060\022\006\003\125\004\012\014\013\101\146\146\151\162\155 +\124\162\165\163\164\061\034\060\032\006\003\125\004\003\014\023 +\101\146\146\151\162\155\124\162\165\163\164\040\120\162\145\155 +\151\165\155 +END +CKA_ID UTF8 "0" +CKA_ISSUER MULTILINE_OCTAL +\060\101\061\013\060\011\006\003\125\004\006\023\002\125\123\061 +\024\060\022\006\003\125\004\012\014\013\101\146\146\151\162\155 +\124\162\165\163\164\061\034\060\032\006\003\125\004\003\014\023 +\101\146\146\151\162\155\124\162\165\163\164\040\120\162\145\155 +\151\165\155 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\010\155\214\024\106\261\246\012\356 +END +CKA_VALUE MULTILINE_OCTAL +\060\202\005\106\060\202\003\056\240\003\002\001\002\002\010\155 +\214\024\106\261\246\012\356\060\015\006\011\052\206\110\206\367 +\015\001\001\014\005\000\060\101\061\013\060\011\006\003\125\004 +\006\023\002\125\123\061\024\060\022\006\003\125\004\012\014\013 +\101\146\146\151\162\155\124\162\165\163\164\061\034\060\032\006 +\003\125\004\003\014\023\101\146\146\151\162\155\124\162\165\163 +\164\040\120\162\145\155\151\165\155\060\036\027\015\061\060\060 +\061\062\071\061\064\061\060\063\066\132\027\015\064\060\061\062 +\063\061\061\064\061\060\063\066\132\060\101\061\013\060\011\006 +\003\125\004\006\023\002\125\123\061\024\060\022\006\003\125\004 +\012\014\013\101\146\146\151\162\155\124\162\165\163\164\061\034 +\060\032\006\003\125\004\003\014\023\101\146\146\151\162\155\124 +\162\165\163\164\040\120\162\145\155\151\165\155\060\202\002\042 +\060\015\006\011\052\206\110\206\367\015\001\001\001\005\000\003 +\202\002\017\000\060\202\002\012\002\202\002\001\000\304\022\337 +\251\137\376\101\335\335\365\237\212\343\366\254\341\074\170\232 +\274\330\360\177\172\240\063\052\334\215\040\133\256\055\157\347 +\223\331\066\160\152\150\317\216\121\243\205\133\147\004\240\020 +\044\157\135\050\202\301\227\127\330\110\051\023\266\341\276\221 +\115\337\205\014\123\030\232\036\044\242\117\217\360\242\205\013 +\313\364\051\177\322\244\130\356\046\115\311\252\250\173\232\331 +\372\070\336\104\127\025\345\370\214\310\331\110\342\015\026\047 +\035\036\310\203\205\045\267\272\252\125\101\314\003\042\113\055 +\221\215\213\346\211\257\146\307\351\377\053\351\074\254\332\322 +\263\303\341\150\234\211\370\172\000\126\336\364\125\225\154\373 +\272\144\335\142\213\337\013\167\062\353\142\314\046\232\233\273 +\252\142\203\114\264\006\172\060\310\051\277\355\006\115\227\271 +\034\304\061\053\325\137\274\123\022\027\234\231\127\051\146\167 +\141\041\061\007\056\045\111\235\030\362\356\363\053\161\214\265 +\272\071\007\111\167\374\357\056\222\220\005\215\055\057\167\173 +\357\103\277\065\273\232\330\371\163\247\054\362\320\127\356\050 +\116\046\137\217\220\150\011\057\270\370\334\006\351\056\232\076 +\121\247\321\042\304\012\247\070\110\154\263\371\377\175\253\206 +\127\343\272\326\205\170\167\272\103\352\110\177\366\330\276\043 +\155\036\277\321\066\154\130\134\361\356\244\031\124\032\365\003 +\322\166\346\341\214\275\074\263\323\110\113\342\310\370\177\222 +\250\166\106\234\102\145\076\244\036\301\007\003\132\106\055\270 +\227\363\267\325\262\125\041\357\272\334\114\000\227\373\024\225 +\047\063\277\350\103\107\106\322\010\231\026\140\073\232\176\322 +\346\355\070\352\354\001\036\074\110\126\111\011\307\114\067\000 +\236\210\016\300\163\341\157\146\351\162\107\060\076\020\345\013 +\003\311\232\102\000\154\305\224\176\141\304\212\337\177\202\032 +\013\131\304\131\062\167\263\274\140\151\126\071\375\264\006\173 +\054\326\144\066\331\275\110\355\204\037\176\245\042\217\052\270 +\102\364\202\267\324\123\220\170\116\055\032\375\201\157\104\327 +\073\001\164\226\102\340\000\342\056\153\352\305\356\162\254\273 +\277\376\352\252\250\370\334\366\262\171\212\266\147\002\003\001 +\000\001\243\102\060\100\060\035\006\003\125\035\016\004\026\004 +\024\235\300\147\246\014\042\331\046\365\105\253\246\145\122\021 +\047\330\105\254\143\060\017\006\003\125\035\023\001\001\377\004 +\005\060\003\001\001\377\060\016\006\003\125\035\017\001\001\377 +\004\004\003\002\001\006\060\015\006\011\052\206\110\206\367\015 +\001\001\014\005\000\003\202\002\001\000\263\127\115\020\142\116 +\072\344\254\352\270\034\257\062\043\310\263\111\132\121\234\166 +\050\215\171\252\127\106\027\325\365\122\366\267\104\350\010\104 +\277\030\204\322\013\200\315\305\022\375\000\125\005\141\207\101 +\334\265\044\236\074\304\330\310\373\160\236\057\170\226\203\040 +\066\336\174\017\151\023\210\245\165\066\230\010\246\306\337\254 +\316\343\130\326\267\076\336\272\363\353\064\100\330\242\201\365 +\170\077\057\325\245\374\331\242\324\136\004\016\027\255\376\101 +\360\345\262\162\372\104\202\063\102\350\055\130\367\126\214\142 +\077\272\102\260\234\014\134\176\056\145\046\134\123\117\000\262 +\170\176\241\015\231\055\215\270\035\216\242\304\260\375\140\320 +\060\244\216\310\004\142\251\304\355\065\336\172\227\355\016\070 +\136\222\057\223\160\245\251\234\157\247\175\023\035\176\306\010 +\110\261\136\147\353\121\010\045\351\346\045\153\122\051\221\234 +\322\071\163\010\127\336\231\006\264\133\235\020\006\341\302\000 +\250\270\034\112\002\012\024\320\301\101\312\373\214\065\041\175 +\202\070\362\251\124\221\031\065\223\224\155\152\072\305\262\320 +\273\211\206\223\350\233\311\017\072\247\172\270\241\360\170\106 +\372\374\067\057\345\212\204\363\337\376\004\331\241\150\240\057 +\044\342\011\225\006\325\225\312\341\044\226\353\174\366\223\005 +\273\355\163\351\055\321\165\071\327\347\044\333\330\116\137\103 +\217\236\320\024\071\277\125\160\110\231\127\061\264\234\356\112 +\230\003\226\060\037\140\006\356\033\043\376\201\140\043\032\107 +\142\205\245\314\031\064\200\157\263\254\032\343\237\360\173\110 +\255\325\001\331\147\266\251\162\223\352\055\146\265\262\270\344 +\075\074\262\357\114\214\352\353\007\277\253\065\232\125\206\274 +\030\246\265\250\136\264\203\154\153\151\100\323\237\334\361\303 +\151\153\271\341\155\011\364\361\252\120\166\012\172\175\172\027 +\241\125\226\102\231\061\011\335\140\021\215\005\060\176\346\216 +\106\321\235\024\332\307\027\344\005\226\214\304\044\265\033\317 +\024\007\262\100\370\243\236\101\206\274\004\320\153\226\310\052 +\200\064\375\277\357\006\243\335\130\305\205\075\076\217\376\236 +\051\340\266\270\011\150\031\034\030\103 +END + +# Trust for Certificate "AffirmTrust Premium" +CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "AffirmTrust Premium" +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\330\246\063\054\340\003\157\261\205\366\143\117\175\152\006\145 +\046\062\050\047 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\304\135\016\110\266\254\050\060\116\012\274\371\070\026\207\127 +END +CKA_ISSUER MULTILINE_OCTAL +\060\101\061\013\060\011\006\003\125\004\006\023\002\125\123\061 +\024\060\022\006\003\125\004\012\014\013\101\146\146\151\162\155 +\124\162\165\163\164\061\034\060\032\006\003\125\004\003\014\023 +\101\146\146\151\162\155\124\162\165\163\164\040\120\162\145\155 +\151\165\155 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\010\155\214\024\106\261\246\012\356 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_TRUST_UNKNOWN +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_TRUST_UNKNOWN +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "AffirmTrust Premium ECC" +# +CKA_CLASS CK_OBJECT_CLASS CKO_CERTIFICATE +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "AffirmTrust Premium ECC" +CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509 +CKA_SUBJECT MULTILINE_OCTAL +\060\105\061\013\060\011\006\003\125\004\006\023\002\125\123\061 +\024\060\022\006\003\125\004\012\014\013\101\146\146\151\162\155 +\124\162\165\163\164\061\040\060\036\006\003\125\004\003\014\027 +\101\146\146\151\162\155\124\162\165\163\164\040\120\162\145\155 +\151\165\155\040\105\103\103 +END +CKA_ID UTF8 "0" +CKA_ISSUER MULTILINE_OCTAL +\060\105\061\013\060\011\006\003\125\004\006\023\002\125\123\061 +\024\060\022\006\003\125\004\012\014\013\101\146\146\151\162\155 +\124\162\165\163\164\061\040\060\036\006\003\125\004\003\014\027 +\101\146\146\151\162\155\124\162\165\163\164\040\120\162\145\155 +\151\165\155\040\105\103\103 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\010\164\227\045\212\307\077\172\124 +END +CKA_VALUE MULTILINE_OCTAL +\060\202\001\376\060\202\001\205\240\003\002\001\002\002\010\164 +\227\045\212\307\077\172\124\060\012\006\010\052\206\110\316\075 +\004\003\003\060\105\061\013\060\011\006\003\125\004\006\023\002 +\125\123\061\024\060\022\006\003\125\004\012\014\013\101\146\146 +\151\162\155\124\162\165\163\164\061\040\060\036\006\003\125\004 +\003\014\027\101\146\146\151\162\155\124\162\165\163\164\040\120 +\162\145\155\151\165\155\040\105\103\103\060\036\027\015\061\060 +\060\061\062\071\061\064\062\060\062\064\132\027\015\064\060\061 +\062\063\061\061\064\062\060\062\064\132\060\105\061\013\060\011 +\006\003\125\004\006\023\002\125\123\061\024\060\022\006\003\125 +\004\012\014\013\101\146\146\151\162\155\124\162\165\163\164\061 +\040\060\036\006\003\125\004\003\014\027\101\146\146\151\162\155 +\124\162\165\163\164\040\120\162\145\155\151\165\155\040\105\103 +\103\060\166\060\020\006\007\052\206\110\316\075\002\001\006\005 +\053\201\004\000\042\003\142\000\004\015\060\136\033\025\235\003 +\320\241\171\065\267\072\074\222\172\312\025\034\315\142\363\234 +\046\134\007\075\345\124\372\243\326\314\022\352\364\024\137\350 +\216\031\253\057\056\110\346\254\030\103\170\254\320\067\303\275 +\262\315\054\346\107\342\032\346\143\270\075\056\057\170\304\117 +\333\364\017\244\150\114\125\162\153\225\035\116\030\102\225\170 +\314\067\074\221\342\233\145\053\051\243\102\060\100\060\035\006 +\003\125\035\016\004\026\004\024\232\257\051\172\300\021\065\065 +\046\121\060\000\303\152\376\100\325\256\326\074\060\017\006\003 +\125\035\023\001\001\377\004\005\060\003\001\001\377\060\016\006 +\003\125\035\017\001\001\377\004\004\003\002\001\006\060\012\006 +\010\052\206\110\316\075\004\003\003\003\147\000\060\144\002\060 +\027\011\363\207\210\120\132\257\310\300\102\277\107\137\365\154 +\152\206\340\304\047\164\344\070\123\327\005\177\033\064\343\306 +\057\263\312\011\074\067\235\327\347\270\106\361\375\241\342\161 +\002\060\102\131\207\103\324\121\337\272\323\011\062\132\316\210 +\176\127\075\234\137\102\153\365\007\055\265\360\202\223\371\131 +\157\256\144\372\130\345\213\036\343\143\276\265\201\315\157\002 +\214\171 +END + +# Trust for Certificate "AffirmTrust Premium ECC" +CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "AffirmTrust Premium ECC" +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\270\043\153\000\057\035\026\206\123\001\125\154\021\244\067\312 +\353\377\303\273 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\144\260\011\125\317\261\325\231\342\276\023\253\246\135\352\115 +END +CKA_ISSUER MULTILINE_OCTAL +\060\105\061\013\060\011\006\003\125\004\006\023\002\125\123\061 +\024\060\022\006\003\125\004\012\014\013\101\146\146\151\162\155 +\124\162\165\163\164\061\040\060\036\006\003\125\004\003\014\027 +\101\146\146\151\162\155\124\162\165\163\164\040\120\162\145\155 +\151\165\155\040\105\103\103 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\010\164\227\045\212\307\077\172\124 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_TRUST_UNKNOWN +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_TRUST_UNKNOWN +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "Certum Trusted Network CA" +# +CKA_CLASS CK_OBJECT_CLASS CKO_CERTIFICATE +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "Certum Trusted Network CA" +CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509 +CKA_SUBJECT MULTILINE_OCTAL +\060\176\061\013\060\011\006\003\125\004\006\023\002\120\114\061 +\042\060\040\006\003\125\004\012\023\031\125\156\151\172\145\164 +\157\040\124\145\143\150\156\157\154\157\147\151\145\163\040\123 +\056\101\056\061\047\060\045\006\003\125\004\013\023\036\103\145 +\162\164\165\155\040\103\145\162\164\151\146\151\143\141\164\151 +\157\156\040\101\165\164\150\157\162\151\164\171\061\042\060\040 +\006\003\125\004\003\023\031\103\145\162\164\165\155\040\124\162 +\165\163\164\145\144\040\116\145\164\167\157\162\153\040\103\101 +END +CKA_ID UTF8 "0" +CKA_ISSUER MULTILINE_OCTAL +\060\176\061\013\060\011\006\003\125\004\006\023\002\120\114\061 +\042\060\040\006\003\125\004\012\023\031\125\156\151\172\145\164 +\157\040\124\145\143\150\156\157\154\157\147\151\145\163\040\123 +\056\101\056\061\047\060\045\006\003\125\004\013\023\036\103\145 +\162\164\165\155\040\103\145\162\164\151\146\151\143\141\164\151 +\157\156\040\101\165\164\150\157\162\151\164\171\061\042\060\040 +\006\003\125\004\003\023\031\103\145\162\164\165\155\040\124\162 +\165\163\164\145\144\040\116\145\164\167\157\162\153\040\103\101 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\003\004\104\300 +END +CKA_VALUE MULTILINE_OCTAL +\060\202\003\273\060\202\002\243\240\003\002\001\002\002\003\004 +\104\300\060\015\006\011\052\206\110\206\367\015\001\001\005\005 +\000\060\176\061\013\060\011\006\003\125\004\006\023\002\120\114 +\061\042\060\040\006\003\125\004\012\023\031\125\156\151\172\145 +\164\157\040\124\145\143\150\156\157\154\157\147\151\145\163\040 +\123\056\101\056\061\047\060\045\006\003\125\004\013\023\036\103 +\145\162\164\165\155\040\103\145\162\164\151\146\151\143\141\164 +\151\157\156\040\101\165\164\150\157\162\151\164\171\061\042\060 +\040\006\003\125\004\003\023\031\103\145\162\164\165\155\040\124 +\162\165\163\164\145\144\040\116\145\164\167\157\162\153\040\103 +\101\060\036\027\015\060\070\061\060\062\062\061\062\060\067\063 +\067\132\027\015\062\071\061\062\063\061\061\062\060\067\063\067 +\132\060\176\061\013\060\011\006\003\125\004\006\023\002\120\114 +\061\042\060\040\006\003\125\004\012\023\031\125\156\151\172\145 +\164\157\040\124\145\143\150\156\157\154\157\147\151\145\163\040 +\123\056\101\056\061\047\060\045\006\003\125\004\013\023\036\103 +\145\162\164\165\155\040\103\145\162\164\151\146\151\143\141\164 +\151\157\156\040\101\165\164\150\157\162\151\164\171\061\042\060 +\040\006\003\125\004\003\023\031\103\145\162\164\165\155\040\124 +\162\165\163\164\145\144\040\116\145\164\167\157\162\153\040\103 +\101\060\202\001\042\060\015\006\011\052\206\110\206\367\015\001 +\001\001\005\000\003\202\001\017\000\060\202\001\012\002\202\001 +\001\000\343\373\175\243\162\272\302\360\311\024\207\365\153\001 +\116\341\156\100\007\272\155\047\135\177\367\133\055\263\132\307 +\121\137\253\244\062\246\141\207\266\156\017\206\322\060\002\227 +\370\327\151\127\241\030\071\135\152\144\171\306\001\131\254\074 +\061\112\070\174\322\004\322\113\050\350\040\137\073\007\242\314 +\115\163\333\363\256\117\307\126\325\132\247\226\211\372\363\253 +\150\324\043\206\131\047\317\011\047\274\254\156\162\203\034\060 +\162\337\340\242\351\322\341\164\165\031\275\052\236\173\025\124 +\004\033\327\103\071\255\125\050\305\342\032\273\364\300\344\256 +\070\111\063\314\166\205\237\071\105\322\244\236\362\022\214\121 +\370\174\344\055\177\365\254\137\353\026\237\261\055\321\272\314 +\221\102\167\114\045\311\220\070\157\333\360\314\373\216\036\227 +\131\076\325\140\116\346\005\050\355\111\171\023\113\272\110\333 +\057\371\162\323\071\312\376\037\330\064\162\365\264\100\317\061 +\001\303\354\336\021\055\027\135\037\270\120\321\136\031\247\151 +\336\007\063\050\312\120\225\371\247\124\313\124\206\120\105\251 +\371\111\002\003\001\000\001\243\102\060\100\060\017\006\003\125 +\035\023\001\001\377\004\005\060\003\001\001\377\060\035\006\003 +\125\035\016\004\026\004\024\010\166\315\313\007\377\044\366\305 +\315\355\273\220\274\342\204\067\106\165\367\060\016\006\003\125 +\035\017\001\001\377\004\004\003\002\001\006\060\015\006\011\052 +\206\110\206\367\015\001\001\005\005\000\003\202\001\001\000\246 +\250\255\042\316\001\075\246\243\377\142\320\110\235\213\136\162 +\260\170\104\343\334\034\257\011\375\043\110\372\275\052\304\271 +\125\004\265\020\243\215\047\336\013\202\143\320\356\336\014\067 +\171\101\133\042\262\260\232\101\134\246\160\340\324\320\167\313 +\043\323\000\340\154\126\057\341\151\015\015\331\252\277\041\201 +\120\331\006\245\250\377\225\067\320\252\376\342\263\365\231\055 +\105\204\212\345\102\011\327\164\002\057\367\211\330\231\351\274 +\047\324\107\215\272\015\106\034\167\317\024\244\034\271\244\061 +\304\234\050\164\003\064\377\063\031\046\245\351\015\164\267\076 +\227\306\166\350\047\226\243\146\335\341\256\362\101\133\312\230 +\126\203\163\160\344\206\032\322\061\101\272\057\276\055\023\132 +\166\157\116\350\116\201\016\077\133\003\042\240\022\276\146\130 +\021\112\313\003\304\264\052\052\055\226\027\340\071\124\274\110 +\323\166\047\235\232\055\006\246\311\354\071\322\253\333\237\232 +\013\047\002\065\051\261\100\225\347\371\350\234\125\210\031\106 +\326\267\064\365\176\316\071\232\331\070\361\121\367\117\054 +END + +# Trust for Certificate "Certum Trusted Network CA" +CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "Certum Trusted Network CA" +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\007\340\062\340\040\267\054\077\031\057\006\050\242\131\072\031 +\247\017\006\236 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\325\351\201\100\305\030\151\374\106\054\211\165\142\017\252\170 +END +CKA_ISSUER MULTILINE_OCTAL +\060\176\061\013\060\011\006\003\125\004\006\023\002\120\114\061 +\042\060\040\006\003\125\004\012\023\031\125\156\151\172\145\164 +\157\040\124\145\143\150\156\157\154\157\147\151\145\163\040\123 +\056\101\056\061\047\060\045\006\003\125\004\013\023\036\103\145 +\162\164\165\155\040\103\145\162\164\151\146\151\143\141\164\151 +\157\156\040\101\165\164\150\157\162\151\164\171\061\042\060\040 +\006\003\125\004\003\023\031\103\145\162\164\165\155\040\124\162 +\165\163\164\145\144\040\116\145\164\167\157\162\153\040\103\101 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\003\004\104\300 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "Certinomis - Autorité Racine" +# +CKA_CLASS CK_OBJECT_CLASS CKO_CERTIFICATE +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "Certinomis - Autorité Racine" +CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509 +CKA_SUBJECT MULTILINE_OCTAL +\060\143\061\013\060\011\006\003\125\004\006\023\002\106\122\061 +\023\060\021\006\003\125\004\012\023\012\103\145\162\164\151\156 +\157\155\151\163\061\027\060\025\006\003\125\004\013\023\016\060 +\060\060\062\040\064\063\063\071\071\070\071\060\063\061\046\060 +\044\006\003\125\004\003\014\035\103\145\162\164\151\156\157\155 +\151\163\040\055\040\101\165\164\157\162\151\164\303\251\040\122 +\141\143\151\156\145 +END +CKA_ID UTF8 "0" +CKA_ISSUER MULTILINE_OCTAL +\060\143\061\013\060\011\006\003\125\004\006\023\002\106\122\061 +\023\060\021\006\003\125\004\012\023\012\103\145\162\164\151\156 +\157\155\151\163\061\027\060\025\006\003\125\004\013\023\016\060 +\060\060\062\040\064\063\063\071\071\070\071\060\063\061\046\060 +\044\006\003\125\004\003\014\035\103\145\162\164\151\156\157\155 +\151\163\040\055\040\101\165\164\157\162\151\164\303\251\040\122 +\141\143\151\156\145 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\001\001 +END +CKA_VALUE MULTILINE_OCTAL +\060\202\005\234\060\202\003\204\240\003\002\001\002\002\001\001 +\060\015\006\011\052\206\110\206\367\015\001\001\005\005\000\060 +\143\061\013\060\011\006\003\125\004\006\023\002\106\122\061\023 +\060\021\006\003\125\004\012\023\012\103\145\162\164\151\156\157 +\155\151\163\061\027\060\025\006\003\125\004\013\023\016\060\060 +\060\062\040\064\063\063\071\071\070\071\060\063\061\046\060\044 +\006\003\125\004\003\014\035\103\145\162\164\151\156\157\155\151 +\163\040\055\040\101\165\164\157\162\151\164\303\251\040\122\141 +\143\151\156\145\060\036\027\015\060\070\060\071\061\067\060\070 +\062\070\065\071\132\027\015\062\070\060\071\061\067\060\070\062 +\070\065\071\132\060\143\061\013\060\011\006\003\125\004\006\023 +\002\106\122\061\023\060\021\006\003\125\004\012\023\012\103\145 +\162\164\151\156\157\155\151\163\061\027\060\025\006\003\125\004 +\013\023\016\060\060\060\062\040\064\063\063\071\071\070\071\060 +\063\061\046\060\044\006\003\125\004\003\014\035\103\145\162\164 +\151\156\157\155\151\163\040\055\040\101\165\164\157\162\151\164 +\303\251\040\122\141\143\151\156\145\060\202\002\042\060\015\006 +\011\052\206\110\206\367\015\001\001\001\005\000\003\202\002\017 +\000\060\202\002\012\002\202\002\001\000\235\205\237\206\323\343 +\257\307\262\153\156\063\340\236\267\102\064\125\235\371\201\276 +\143\330\043\166\016\227\124\315\231\114\032\361\071\307\210\330 +\027\120\014\236\141\332\300\116\125\336\347\132\270\172\116\167 +\207\015\345\270\353\372\236\136\173\036\304\317\050\164\307\223 +\365\024\306\042\050\004\371\221\303\253\047\163\152\016\056\115 +\363\056\050\037\160\337\125\057\116\355\307\161\157\011\162\056 +\355\325\062\227\320\361\130\167\321\140\274\116\136\333\232\204 +\366\107\141\105\053\366\120\246\177\152\161\047\110\204\065\236 +\254\376\151\251\236\172\136\065\045\372\264\247\111\065\167\226 +\247\066\133\341\315\337\043\160\330\135\114\245\010\203\361\246 +\044\070\023\250\354\057\250\241\147\307\246\055\206\107\356\212 +\374\354\233\016\164\364\053\111\002\173\220\165\214\374\231\071 +\001\071\326\112\211\345\236\166\253\076\226\050\070\046\213\335 +\215\214\300\366\001\036\157\245\061\022\070\175\225\302\161\356 +\355\164\256\344\066\242\103\165\325\361\000\233\342\344\327\314 +\102\003\113\170\172\345\175\273\270\256\056\040\223\323\344\141 +\337\161\341\166\147\227\077\266\337\152\163\132\144\042\345\102 +\333\317\201\003\223\330\364\343\020\340\162\366\000\160\254\360 +\301\172\017\005\177\317\064\151\105\265\223\344\031\333\122\026 +\043\005\211\016\215\110\344\045\157\263\170\277\142\365\007\372 +\225\044\302\226\262\350\243\043\302\135\003\374\303\323\345\174 +\311\165\043\327\364\365\274\336\344\337\315\200\277\221\210\175 +\247\023\264\071\272\054\272\275\321\153\314\363\245\050\355\104 +\236\175\122\243\157\226\056\031\176\034\363\133\307\026\216\273 +\140\175\167\146\107\124\202\000\021\140\154\062\301\250\070\033 +\353\156\230\023\326\356\070\365\360\237\016\357\376\061\201\301 +\322\044\225\057\123\172\151\242\360\017\206\105\216\130\202\053 +\114\042\324\136\240\347\175\046\047\110\337\045\106\215\112\050 +\174\206\236\371\233\032\131\271\145\277\005\335\266\102\135\075 +\346\000\110\202\136\040\367\021\202\336\312\330\237\346\067\107 +\046\036\353\170\367\141\303\101\144\130\002\101\371\332\340\321 +\370\371\350\375\122\070\266\365\211\337\002\003\001\000\001\243 +\133\060\131\060\017\006\003\125\035\023\001\001\377\004\005\060 +\003\001\001\377\060\016\006\003\125\035\017\001\001\377\004\004 +\003\002\001\006\060\035\006\003\125\035\016\004\026\004\024\015 +\214\266\141\332\104\270\321\024\175\303\276\175\136\110\360\316 +\312\152\260\060\027\006\003\125\035\040\004\020\060\016\060\014 +\006\012\052\201\172\001\126\002\002\000\001\001\060\015\006\011 +\052\206\110\206\367\015\001\001\005\005\000\003\202\002\001\000 +\044\076\140\006\176\035\357\072\076\333\352\257\034\232\054\001 +\013\364\305\265\331\111\061\364\135\101\215\211\014\116\377\154 +\242\375\377\342\006\310\071\237\361\132\251\335\042\130\025\250 +\212\323\261\346\062\011\202\003\154\327\077\010\307\370\271\272 +\000\155\271\326\374\122\062\135\244\177\244\061\224\273\266\114 +\070\177\050\060\065\377\237\043\123\267\266\356\024\160\000\100 +\053\332\107\253\064\176\136\247\126\060\141\053\213\103\254\375 +\266\210\050\365\153\266\076\140\112\272\102\220\064\147\215\352 +\353\137\105\124\073\027\254\213\344\306\145\017\356\320\214\135 +\146\071\316\062\247\330\020\227\300\176\064\234\237\224\363\366 +\206\037\317\033\163\255\224\171\207\150\160\303\063\245\160\347 +\330\325\070\224\157\143\171\353\277\012\016\010\347\305\057\017 +\102\240\053\024\100\377\041\340\005\305\047\341\204\021\023\272 +\326\206\035\101\013\023\043\211\323\311\013\350\212\272\172\243 +\243\163\067\065\200\175\022\270\063\167\100\070\300\372\136\060 +\322\362\266\243\261\326\242\225\227\201\233\122\355\151\114\377 +\200\344\123\333\124\133\003\155\124\137\261\270\357\044\275\157 +\237\021\303\307\144\302\017\050\142\205\146\136\032\173\262\267 +\357\256\065\311\031\063\250\270\047\333\063\125\277\150\341\165 +\110\104\126\373\315\323\110\273\107\211\072\254\151\365\200\306 +\344\104\120\057\124\304\252\103\305\061\061\130\275\226\305\352 +\165\154\232\165\261\115\370\367\227\377\226\026\362\227\115\350 +\366\363\021\371\072\175\212\070\156\004\313\341\323\105\025\252 +\245\321\035\235\135\143\350\044\346\066\024\342\207\255\033\131 +\365\104\233\373\327\167\174\037\001\160\142\241\040\032\242\305 +\032\050\364\041\003\356\056\331\301\200\352\271\331\202\326\133 +\166\302\313\073\265\322\000\360\243\016\341\255\156\100\367\333 +\240\264\320\106\256\025\327\104\302\115\065\371\322\013\362\027 +\366\254\146\325\044\262\117\321\034\231\300\156\365\175\353\164 +\004\270\371\115\167\011\327\264\317\007\060\011\361\270\000\126 +\331\027\026\026\012\053\206\337\217\001\031\032\345\273\202\143 +\377\276\013\166\026\136\067\067\346\330\164\227\242\231\105\171 +END + +# Trust for Certificate "Certinomis - Autorité Racine" +CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "Certinomis - Autorité Racine" +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\056\024\332\354\050\360\372\036\216\070\232\116\253\353\046\300 +\012\323\203\303 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\177\060\170\214\003\343\312\311\012\342\311\352\036\252\125\032 +END +CKA_ISSUER MULTILINE_OCTAL +\060\143\061\013\060\011\006\003\125\004\006\023\002\106\122\061 +\023\060\021\006\003\125\004\012\023\012\103\145\162\164\151\156 +\157\155\151\163\061\027\060\025\006\003\125\004\013\023\016\060 +\060\060\062\040\064\063\063\071\071\070\071\060\063\061\046\060 +\044\006\003\125\004\003\014\035\103\145\162\164\151\156\157\155 +\151\163\040\055\040\101\165\164\157\162\151\164\303\251\040\122 +\141\143\151\156\145 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\001\001 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_MUST_VERIFY_TRUST +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_MUST_VERIFY_TRUST +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "Root CA Generalitat Valenciana" +# +CKA_CLASS CK_OBJECT_CLASS CKO_CERTIFICATE +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "Root CA Generalitat Valenciana" +CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509 +CKA_SUBJECT MULTILINE_OCTAL +\060\150\061\013\060\011\006\003\125\004\006\023\002\105\123\061 +\037\060\035\006\003\125\004\012\023\026\107\145\156\145\162\141 +\154\151\164\141\164\040\126\141\154\145\156\143\151\141\156\141 +\061\017\060\015\006\003\125\004\013\023\006\120\113\111\107\126 +\101\061\047\060\045\006\003\125\004\003\023\036\122\157\157\164 +\040\103\101\040\107\145\156\145\162\141\154\151\164\141\164\040 +\126\141\154\145\156\143\151\141\156\141 +END +CKA_ID UTF8 "0" +CKA_ISSUER MULTILINE_OCTAL +\060\150\061\013\060\011\006\003\125\004\006\023\002\105\123\061 +\037\060\035\006\003\125\004\012\023\026\107\145\156\145\162\141 +\154\151\164\141\164\040\126\141\154\145\156\143\151\141\156\141 +\061\017\060\015\006\003\125\004\013\023\006\120\113\111\107\126 +\101\061\047\060\045\006\003\125\004\003\023\036\122\157\157\164 +\040\103\101\040\107\145\156\145\162\141\154\151\164\141\164\040 +\126\141\154\145\156\143\151\141\156\141 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\004\073\105\345\150 +END +CKA_VALUE MULTILINE_OCTAL +\060\202\006\213\060\202\005\163\240\003\002\001\002\002\004\073 +\105\345\150\060\015\006\011\052\206\110\206\367\015\001\001\005 +\005\000\060\150\061\013\060\011\006\003\125\004\006\023\002\105 +\123\061\037\060\035\006\003\125\004\012\023\026\107\145\156\145 +\162\141\154\151\164\141\164\040\126\141\154\145\156\143\151\141 +\156\141\061\017\060\015\006\003\125\004\013\023\006\120\113\111 +\107\126\101\061\047\060\045\006\003\125\004\003\023\036\122\157 +\157\164\040\103\101\040\107\145\156\145\162\141\154\151\164\141 +\164\040\126\141\154\145\156\143\151\141\156\141\060\036\027\015 +\060\061\060\067\060\066\061\066\062\062\064\067\132\027\015\062 +\061\060\067\060\061\061\065\062\062\064\067\132\060\150\061\013 +\060\011\006\003\125\004\006\023\002\105\123\061\037\060\035\006 +\003\125\004\012\023\026\107\145\156\145\162\141\154\151\164\141 +\164\040\126\141\154\145\156\143\151\141\156\141\061\017\060\015 +\006\003\125\004\013\023\006\120\113\111\107\126\101\061\047\060 +\045\006\003\125\004\003\023\036\122\157\157\164\040\103\101\040 +\107\145\156\145\162\141\154\151\164\141\164\040\126\141\154\145 +\156\143\151\141\156\141\060\202\001\042\060\015\006\011\052\206 +\110\206\367\015\001\001\001\005\000\003\202\001\017\000\060\202 +\001\012\002\202\001\001\000\306\052\253\127\021\067\057\042\212 +\312\003\164\035\312\355\055\242\013\274\063\122\100\046\107\276 +\132\151\246\073\162\066\027\114\350\337\270\273\057\166\341\100 +\106\164\145\002\220\122\010\264\377\250\214\301\340\307\211\126 +\020\071\063\357\150\264\137\137\332\155\043\241\211\136\042\243 +\112\006\360\047\360\127\271\370\351\116\062\167\012\077\101\144 +\363\353\145\356\166\376\124\252\175\035\040\256\363\327\164\302 +\012\137\365\010\050\122\010\314\125\135\322\017\333\232\201\245 +\273\241\263\301\224\315\124\340\062\165\061\221\032\142\262\336 +\165\342\317\117\211\331\221\220\017\101\033\264\132\112\167\275 +\147\203\340\223\347\136\247\014\347\201\323\364\122\254\123\262 +\003\307\104\046\373\171\345\313\064\140\120\020\173\033\333\153 +\327\107\253\137\174\150\312\156\235\101\003\020\356\153\231\173 +\136\045\250\302\253\344\300\363\134\234\343\276\316\061\114\144 +\036\136\200\242\365\203\176\014\326\312\214\125\216\276\340\276 +\111\007\017\243\044\101\172\130\035\204\352\130\022\310\341\267 +\355\357\223\336\224\010\061\002\003\001\000\001\243\202\003\073 +\060\202\003\067\060\062\006\010\053\006\001\005\005\007\001\001 +\004\046\060\044\060\042\006\010\053\006\001\005\005\007\060\001 +\206\026\150\164\164\160\072\057\057\157\143\163\160\056\160\153 +\151\056\147\166\141\056\145\163\060\022\006\003\125\035\023\001 +\001\377\004\010\060\006\001\001\377\002\001\002\060\202\002\064 +\006\003\125\035\040\004\202\002\053\060\202\002\047\060\202\002 +\043\006\012\053\006\001\004\001\277\125\002\001\000\060\202\002 +\023\060\202\001\350\006\010\053\006\001\005\005\007\002\002\060 +\202\001\332\036\202\001\326\000\101\000\165\000\164\000\157\000 +\162\000\151\000\144\000\141\000\144\000\040\000\144\000\145\000 +\040\000\103\000\145\000\162\000\164\000\151\000\146\000\151\000 +\143\000\141\000\143\000\151\000\363\000\156\000\040\000\122\000 +\141\000\355\000\172\000\040\000\144\000\145\000\040\000\154\000 +\141\000\040\000\107\000\145\000\156\000\145\000\162\000\141\000 +\154\000\151\000\164\000\141\000\164\000\040\000\126\000\141\000 +\154\000\145\000\156\000\143\000\151\000\141\000\156\000\141\000 +\056\000\015\000\012\000\114\000\141\000\040\000\104\000\145\000 +\143\000\154\000\141\000\162\000\141\000\143\000\151\000\363\000 +\156\000\040\000\144\000\145\000\040\000\120\000\162\000\341\000 +\143\000\164\000\151\000\143\000\141\000\163\000\040\000\144\000 +\145\000\040\000\103\000\145\000\162\000\164\000\151\000\146\000 +\151\000\143\000\141\000\143\000\151\000\363\000\156\000\040\000 +\161\000\165\000\145\000\040\000\162\000\151\000\147\000\145\000 +\040\000\145\000\154\000\040\000\146\000\165\000\156\000\143\000 +\151\000\157\000\156\000\141\000\155\000\151\000\145\000\156\000 +\164\000\157\000\040\000\144\000\145\000\040\000\154\000\141\000 +\040\000\160\000\162\000\145\000\163\000\145\000\156\000\164\000 +\145\000\040\000\101\000\165\000\164\000\157\000\162\000\151\000 +\144\000\141\000\144\000\040\000\144\000\145\000\040\000\103\000 +\145\000\162\000\164\000\151\000\146\000\151\000\143\000\141\000 +\143\000\151\000\363\000\156\000\040\000\163\000\145\000\040\000 +\145\000\156\000\143\000\165\000\145\000\156\000\164\000\162\000 +\141\000\040\000\145\000\156\000\040\000\154\000\141\000\040\000 +\144\000\151\000\162\000\145\000\143\000\143\000\151\000\363\000 +\156\000\040\000\167\000\145\000\142\000\040\000\150\000\164\000 +\164\000\160\000\072\000\057\000\057\000\167\000\167\000\167\000 +\056\000\160\000\153\000\151\000\056\000\147\000\166\000\141\000 +\056\000\145\000\163\000\057\000\143\000\160\000\163\060\045\006 +\010\053\006\001\005\005\007\002\001\026\031\150\164\164\160\072 +\057\057\167\167\167\056\160\153\151\056\147\166\141\056\145\163 +\057\143\160\163\060\035\006\003\125\035\016\004\026\004\024\173 +\065\323\100\322\034\170\031\146\357\164\020\050\334\076\117\262 +\170\004\374\060\201\225\006\003\125\035\043\004\201\215\060\201 +\212\200\024\173\065\323\100\322\034\170\031\146\357\164\020\050 +\334\076\117\262\170\004\374\241\154\244\152\060\150\061\013\060 +\011\006\003\125\004\006\023\002\105\123\061\037\060\035\006\003 +\125\004\012\023\026\107\145\156\145\162\141\154\151\164\141\164 +\040\126\141\154\145\156\143\151\141\156\141\061\017\060\015\006 +\003\125\004\013\023\006\120\113\111\107\126\101\061\047\060\045 +\006\003\125\004\003\023\036\122\157\157\164\040\103\101\040\107 +\145\156\145\162\141\154\151\164\141\164\040\126\141\154\145\156 +\143\151\141\156\141\202\004\073\105\345\150\060\015\006\011\052 +\206\110\206\367\015\001\001\005\005\000\003\202\001\001\000\044 +\141\116\365\265\310\102\002\052\263\134\165\255\305\155\312\347 +\224\077\245\150\225\210\301\124\300\020\151\242\022\057\030\077 +\045\120\250\174\112\352\306\011\331\364\165\306\100\332\257\120 +\235\075\245\026\273\155\061\306\307\163\012\110\376\040\162\355 +\157\314\350\203\141\026\106\220\001\225\113\175\216\232\122\011 +\057\366\157\034\344\241\161\317\214\052\132\027\163\203\107\115 +\017\066\373\004\115\111\121\342\024\311\144\141\373\324\024\340 +\364\236\267\064\217\012\046\275\227\134\364\171\072\112\060\031 +\314\255\117\240\230\212\264\061\227\052\342\163\155\176\170\270 +\370\210\211\117\261\042\221\144\113\365\120\336\003\333\345\305 +\166\347\023\146\165\176\145\373\001\237\223\207\210\235\371\106 +\127\174\115\140\257\230\163\023\043\244\040\221\201\372\320\141 +\146\270\175\321\257\326\157\036\154\075\351\021\375\251\371\202 +\042\206\231\063\161\132\352\031\127\075\221\315\251\300\243\156 +\007\023\246\311\355\370\150\243\236\303\132\162\011\207\050\321 +\304\163\304\163\030\137\120\165\026\061\237\267\350\174\303 +END + +# Trust for Certificate "Root CA Generalitat Valenciana" +CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "Root CA Generalitat Valenciana" +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\240\163\345\305\275\103\141\015\206\114\041\023\012\205\130\127 +\314\234\352\106 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\054\214\027\136\261\124\253\223\027\265\066\132\333\321\306\362 +END +CKA_ISSUER MULTILINE_OCTAL +\060\150\061\013\060\011\006\003\125\004\006\023\002\105\123\061 +\037\060\035\006\003\125\004\012\023\026\107\145\156\145\162\141 +\154\151\164\141\164\040\126\141\154\145\156\143\151\141\156\141 +\061\017\060\015\006\003\125\004\013\023\006\120\113\111\107\126 +\101\061\047\060\045\006\003\125\004\003\023\036\122\157\157\164 +\040\103\101\040\107\145\156\145\162\141\154\151\164\141\164\040 +\126\141\154\145\156\143\151\141\156\141 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\004\073\105\345\150 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "A-Trust-nQual-03" +# +CKA_CLASS CK_OBJECT_CLASS CKO_CERTIFICATE +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "A-Trust-nQual-03" +CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509 +CKA_SUBJECT MULTILINE_OCTAL +\060\201\215\061\013\060\011\006\003\125\004\006\023\002\101\124 +\061\110\060\106\006\003\125\004\012\014\077\101\055\124\162\165 +\163\164\040\107\145\163\056\040\146\056\040\123\151\143\150\145 +\162\150\145\151\164\163\163\171\163\164\145\155\145\040\151\155 +\040\145\154\145\153\164\162\056\040\104\141\164\145\156\166\145 +\162\153\145\150\162\040\107\155\142\110\061\031\060\027\006\003 +\125\004\013\014\020\101\055\124\162\165\163\164\055\156\121\165 +\141\154\055\060\063\061\031\060\027\006\003\125\004\003\014\020 +\101\055\124\162\165\163\164\055\156\121\165\141\154\055\060\063 +END +CKA_ID UTF8 "0" +CKA_ISSUER MULTILINE_OCTAL +\060\201\215\061\013\060\011\006\003\125\004\006\023\002\101\124 +\061\110\060\106\006\003\125\004\012\014\077\101\055\124\162\165 +\163\164\040\107\145\163\056\040\146\056\040\123\151\143\150\145 +\162\150\145\151\164\163\163\171\163\164\145\155\145\040\151\155 +\040\145\154\145\153\164\162\056\040\104\141\164\145\156\166\145 +\162\153\145\150\162\040\107\155\142\110\061\031\060\027\006\003 +\125\004\013\014\020\101\055\124\162\165\163\164\055\156\121\165 +\141\154\055\060\063\061\031\060\027\006\003\125\004\003\014\020 +\101\055\124\162\165\163\164\055\156\121\165\141\154\055\060\063 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\003\001\154\036 +END +CKA_VALUE MULTILINE_OCTAL +\060\202\003\317\060\202\002\267\240\003\002\001\002\002\003\001 +\154\036\060\015\006\011\052\206\110\206\367\015\001\001\005\005 +\000\060\201\215\061\013\060\011\006\003\125\004\006\023\002\101 +\124\061\110\060\106\006\003\125\004\012\014\077\101\055\124\162 +\165\163\164\040\107\145\163\056\040\146\056\040\123\151\143\150 +\145\162\150\145\151\164\163\163\171\163\164\145\155\145\040\151 +\155\040\145\154\145\153\164\162\056\040\104\141\164\145\156\166 +\145\162\153\145\150\162\040\107\155\142\110\061\031\060\027\006 +\003\125\004\013\014\020\101\055\124\162\165\163\164\055\156\121 +\165\141\154\055\060\063\061\031\060\027\006\003\125\004\003\014 +\020\101\055\124\162\165\163\164\055\156\121\165\141\154\055\060 +\063\060\036\027\015\060\065\060\070\061\067\062\062\060\060\060 +\060\132\027\015\061\065\060\070\061\067\062\062\060\060\060\060 +\132\060\201\215\061\013\060\011\006\003\125\004\006\023\002\101 +\124\061\110\060\106\006\003\125\004\012\014\077\101\055\124\162 +\165\163\164\040\107\145\163\056\040\146\056\040\123\151\143\150 +\145\162\150\145\151\164\163\163\171\163\164\145\155\145\040\151 +\155\040\145\154\145\153\164\162\056\040\104\141\164\145\156\166 +\145\162\153\145\150\162\040\107\155\142\110\061\031\060\027\006 +\003\125\004\013\014\020\101\055\124\162\165\163\164\055\156\121 +\165\141\154\055\060\063\061\031\060\027\006\003\125\004\003\014 +\020\101\055\124\162\165\163\164\055\156\121\165\141\154\055\060 +\063\060\202\001\042\060\015\006\011\052\206\110\206\367\015\001 +\001\001\005\000\003\202\001\017\000\060\202\001\012\002\202\001 +\001\000\255\075\141\156\003\363\220\073\300\101\013\204\200\315 +\354\052\243\235\153\273\156\302\102\204\367\121\024\341\240\250 +\055\121\243\121\362\336\043\360\064\104\377\224\353\314\005\043 +\225\100\271\007\170\245\045\366\012\275\105\206\350\331\275\300 +\004\216\205\104\141\357\177\247\311\372\301\045\314\205\054\143 +\077\005\140\163\111\005\340\140\170\225\020\113\334\371\021\131 +\316\161\177\100\233\212\252\044\337\013\102\342\333\126\274\112 +\322\245\014\233\267\103\076\335\203\323\046\020\002\317\352\043 +\304\111\116\345\323\351\264\210\253\014\256\142\222\324\145\207 +\331\152\327\364\205\237\344\063\042\045\245\345\310\063\272\303 +\307\101\334\137\306\152\314\000\016\155\062\250\266\207\066\000 +\142\167\233\036\037\064\313\220\074\170\210\164\005\353\171\365 +\223\161\145\312\235\307\153\030\055\075\134\116\347\325\370\077 +\061\175\217\207\354\012\042\057\043\351\376\273\175\311\340\364 +\354\353\174\304\260\303\055\142\265\232\161\326\261\152\350\354 +\331\355\325\162\354\276\127\001\316\005\125\237\336\321\140\210 +\020\263\002\003\001\000\001\243\066\060\064\060\017\006\003\125 +\035\023\001\001\377\004\005\060\003\001\001\377\060\021\006\003 +\125\035\016\004\012\004\010\104\152\225\147\125\171\021\117\060 +\016\006\003\125\035\017\001\001\377\004\004\003\002\001\006\060 +\015\006\011\052\206\110\206\367\015\001\001\005\005\000\003\202 +\001\001\000\125\324\124\321\131\110\134\263\223\205\252\277\143 +\057\344\200\316\064\243\064\142\076\366\330\356\147\210\061\004 +\003\157\013\324\007\373\116\165\017\323\056\323\300\027\307\306 +\050\354\006\015\021\044\016\016\245\135\277\214\262\023\226\161 +\334\324\316\016\015\012\150\062\154\271\101\061\031\253\261\007 +\173\115\230\323\134\260\321\360\247\102\240\265\304\216\257\376 +\361\077\364\357\117\106\000\166\353\002\373\371\235\322\100\226 +\307\210\072\270\237\021\171\363\200\145\250\275\037\323\170\201 +\240\121\114\067\264\246\135\045\160\321\146\311\150\371\056\021 +\024\150\361\124\230\010\254\046\222\017\336\211\236\324\372\263 +\171\053\322\243\171\324\354\213\254\207\123\150\102\114\121\121 +\164\036\033\047\056\343\365\037\051\164\115\355\257\367\341\222 +\231\201\350\276\072\307\027\120\366\267\306\374\233\260\212\153 +\326\210\003\221\217\006\167\072\205\002\335\230\325\103\170\077 +\306\060\025\254\233\153\313\127\267\211\121\213\072\350\311\204 +\014\333\261\120\040\012\032\112\272\152\032\275\354\033\310\305 +\204\232\315 +END + +# Trust for Certificate "A-Trust-nQual-03" +CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "A-Trust-nQual-03" +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\323\300\143\362\031\355\007\076\064\255\135\165\013\062\166\051 +\377\325\232\362 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\111\143\256\047\364\325\225\075\330\333\044\206\270\234\007\123 +END +CKA_ISSUER MULTILINE_OCTAL +\060\201\215\061\013\060\011\006\003\125\004\006\023\002\101\124 +\061\110\060\106\006\003\125\004\012\014\077\101\055\124\162\165 +\163\164\040\107\145\163\056\040\146\056\040\123\151\143\150\145 +\162\150\145\151\164\163\163\171\163\164\145\155\145\040\151\155 +\040\145\154\145\153\164\162\056\040\104\141\164\145\156\166\145 +\162\153\145\150\162\040\107\155\142\110\061\031\060\027\006\003 +\125\004\013\014\020\101\055\124\162\165\163\164\055\156\121\165 +\141\154\055\060\063\061\031\060\027\006\003\125\004\003\014\020 +\101\055\124\162\165\163\164\055\156\121\165\141\154\055\060\063 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\003\001\154\036 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_MUST_VERIFY_TRUST +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_MUST_VERIFY_TRUST +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "TWCA Root Certification Authority" +# +CKA_CLASS CK_OBJECT_CLASS CKO_CERTIFICATE +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "TWCA Root Certification Authority" +CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509 +CKA_SUBJECT MULTILINE_OCTAL +\060\137\061\013\060\011\006\003\125\004\006\023\002\124\127\061 +\022\060\020\006\003\125\004\012\014\011\124\101\111\127\101\116 +\055\103\101\061\020\060\016\006\003\125\004\013\014\007\122\157 +\157\164\040\103\101\061\052\060\050\006\003\125\004\003\014\041 +\124\127\103\101\040\122\157\157\164\040\103\145\162\164\151\146 +\151\143\141\164\151\157\156\040\101\165\164\150\157\162\151\164 +\171 +END +CKA_ID UTF8 "0" +CKA_ISSUER MULTILINE_OCTAL +\060\137\061\013\060\011\006\003\125\004\006\023\002\124\127\061 +\022\060\020\006\003\125\004\012\014\011\124\101\111\127\101\116 +\055\103\101\061\020\060\016\006\003\125\004\013\014\007\122\157 +\157\164\040\103\101\061\052\060\050\006\003\125\004\003\014\041 +\124\127\103\101\040\122\157\157\164\040\103\145\162\164\151\146 +\151\143\141\164\151\157\156\040\101\165\164\150\157\162\151\164 +\171 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\001\001 +END +CKA_VALUE MULTILINE_OCTAL +\060\202\003\173\060\202\002\143\240\003\002\001\002\002\001\001 +\060\015\006\011\052\206\110\206\367\015\001\001\005\005\000\060 +\137\061\013\060\011\006\003\125\004\006\023\002\124\127\061\022 +\060\020\006\003\125\004\012\014\011\124\101\111\127\101\116\055 +\103\101\061\020\060\016\006\003\125\004\013\014\007\122\157\157 +\164\040\103\101\061\052\060\050\006\003\125\004\003\014\041\124 +\127\103\101\040\122\157\157\164\040\103\145\162\164\151\146\151 +\143\141\164\151\157\156\040\101\165\164\150\157\162\151\164\171 +\060\036\027\015\060\070\060\070\062\070\060\067\062\064\063\063 +\132\027\015\063\060\061\062\063\061\061\065\065\071\065\071\132 +\060\137\061\013\060\011\006\003\125\004\006\023\002\124\127\061 +\022\060\020\006\003\125\004\012\014\011\124\101\111\127\101\116 +\055\103\101\061\020\060\016\006\003\125\004\013\014\007\122\157 +\157\164\040\103\101\061\052\060\050\006\003\125\004\003\014\041 +\124\127\103\101\040\122\157\157\164\040\103\145\162\164\151\146 +\151\143\141\164\151\157\156\040\101\165\164\150\157\162\151\164 +\171\060\202\001\042\060\015\006\011\052\206\110\206\367\015\001 +\001\001\005\000\003\202\001\017\000\060\202\001\012\002\202\001 +\001\000\260\176\162\270\244\003\224\346\247\336\011\070\221\112 +\021\100\207\247\174\131\144\024\173\265\021\020\335\376\277\325 +\300\273\126\342\205\045\364\065\162\017\370\123\320\101\341\104 +\001\302\264\034\303\061\102\026\107\205\063\042\166\262\012\157 +\017\345\045\120\117\205\206\276\277\230\056\020\147\036\276\021 +\005\206\005\220\304\131\320\174\170\020\260\200\134\267\341\307 +\053\165\313\174\237\256\265\321\235\043\067\143\247\334\102\242 +\055\222\004\033\120\301\173\270\076\033\311\126\004\213\057\122 +\233\255\251\126\351\301\377\255\251\130\207\060\266\201\367\227 +\105\374\031\127\073\053\157\344\107\364\231\105\376\035\361\370 +\227\243\210\035\067\034\134\217\340\166\045\232\120\370\240\124 +\377\104\220\166\043\322\062\306\303\253\006\277\374\373\277\363 +\255\175\222\142\002\133\051\323\065\243\223\232\103\144\140\135 +\262\372\062\377\073\004\257\115\100\152\371\307\343\357\043\375 +\153\313\345\017\213\070\015\356\012\374\376\017\230\237\060\061 +\335\154\122\145\371\213\201\276\042\341\034\130\003\272\221\033 +\211\007\002\003\001\000\001\243\102\060\100\060\016\006\003\125 +\035\017\001\001\377\004\004\003\002\001\006\060\017\006\003\125 +\035\023\001\001\377\004\005\060\003\001\001\377\060\035\006\003 +\125\035\016\004\026\004\024\152\070\133\046\215\336\213\132\362 +\117\172\124\203\031\030\343\010\065\246\272\060\015\006\011\052 +\206\110\206\367\015\001\001\005\005\000\003\202\001\001\000\074 +\325\167\075\332\337\211\272\207\014\010\124\152\040\120\222\276 +\260\101\075\271\046\144\203\012\057\350\100\300\227\050\047\202 +\060\112\311\223\377\152\347\246\000\177\211\102\232\326\021\345 +\123\316\057\314\362\332\005\304\376\342\120\304\072\206\175\314 +\332\176\020\011\073\222\065\052\123\262\376\353\053\005\331\154 +\135\346\320\357\323\152\146\236\025\050\205\172\350\202\000\254 +\036\247\011\151\126\102\323\150\121\030\276\124\232\277\104\101 +\272\111\276\040\272\151\134\356\270\167\315\316\154\037\255\203 +\226\030\175\016\265\024\071\204\361\050\351\055\243\236\173\036 +\172\162\132\203\263\171\157\357\264\374\320\012\245\130\117\106 +\337\373\155\171\131\362\204\042\122\256\017\314\373\174\073\347 +\152\312\107\141\303\172\370\323\222\004\037\270\040\204\341\066 +\124\026\307\100\336\073\212\163\334\337\306\011\114\337\354\332 +\377\324\123\102\241\311\362\142\035\042\203\074\227\305\371\031 +\142\047\254\145\042\327\323\074\306\345\216\262\123\314\111\316 +\274\060\376\173\016\063\220\373\355\322\024\221\037\007\257 +END + +# Trust for Certificate "TWCA Root Certification Authority" +CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "TWCA Root Certification Authority" +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\317\236\207\155\323\353\374\102\046\227\243\265\243\172\240\166 +\251\006\043\110 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\252\010\217\366\371\173\267\362\261\247\036\233\352\352\275\171 +END +CKA_ISSUER MULTILINE_OCTAL +\060\137\061\013\060\011\006\003\125\004\006\023\002\124\127\061 +\022\060\020\006\003\125\004\012\014\011\124\101\111\127\101\116 +\055\103\101\061\020\060\016\006\003\125\004\013\014\007\122\157 +\157\164\040\103\101\061\052\060\050\006\003\125\004\003\014\041 +\124\127\103\101\040\122\157\157\164\040\103\145\162\164\151\146 +\151\143\141\164\151\157\156\040\101\165\164\150\157\162\151\164 +\171 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\001\001 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_MUST_VERIFY_TRUST +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "Explicitly Distrust DigiNotar Root CA" +# +CKA_CLASS CK_OBJECT_CLASS CKO_CERTIFICATE +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "Explicitly Distrust DigiNotar Root CA" +CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509 +CKA_SUBJECT MULTILINE_OCTAL +\060\137\061\013\060\011\006\003\125\004\006\023\002\116\114\061 +\022\060\020\006\003\125\004\012\023\011\104\151\147\151\116\157 +\164\141\162\061\032\060\030\006\003\125\004\003\023\021\104\151 +\147\151\116\157\164\141\162\040\122\157\157\164\040\103\101\061 +\040\060\036\006\011\052\206\110\206\367\015\001\011\001\026\021 +\151\156\146\157\100\144\151\147\151\156\157\164\141\162\056\156 +\154 +END +CKA_ID UTF8 "0" +CKA_ISSUER MULTILINE_OCTAL +\060\137\061\013\060\011\006\003\125\004\006\023\002\116\114\061 +\022\060\020\006\003\125\004\012\023\011\104\151\147\151\116\157 +\164\141\162\061\032\060\030\006\003\125\004\003\023\021\104\151 +\147\151\116\157\164\141\162\040\122\157\157\164\040\103\101\061 +\040\060\036\006\011\052\206\110\206\367\015\001\011\001\026\021 +\151\156\146\157\100\144\151\147\151\156\157\164\141\162\056\156 +\154 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\020\017\377\377\377\377\377\377\377\377\377\377\377\377\377 +\377\377 +END +CKA_VALUE MULTILINE_OCTAL +\060\202\005\212\060\202\003\162\240\003\002\001\002\002\020\017 +\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\060 +\015\006\011\052\206\110\206\367\015\001\001\005\005\000\060\137 +\061\013\060\011\006\003\125\004\006\023\002\116\114\061\022\060 +\020\006\003\125\004\012\023\011\104\151\147\151\116\157\164\141 +\162\061\032\060\030\006\003\125\004\003\023\021\104\151\147\151 +\116\157\164\141\162\040\122\157\157\164\040\103\101\061\040\060 +\036\006\011\052\206\110\206\367\015\001\011\001\026\021\151\156 +\146\157\100\144\151\147\151\156\157\164\141\162\056\156\154\060 +\036\027\015\060\067\060\067\062\067\061\067\061\071\063\067\132 +\027\015\062\065\060\063\063\061\061\070\061\071\062\062\132\060 +\137\061\013\060\011\006\003\125\004\006\023\002\116\114\061\022 +\060\020\006\003\125\004\012\023\011\104\151\147\151\116\157\164 +\141\162\061\032\060\030\006\003\125\004\003\023\021\104\151\147 +\151\116\157\164\141\162\040\122\157\157\164\040\103\101\061\040 +\060\036\006\011\052\206\110\206\367\015\001\011\001\026\021\151 +\156\146\157\100\144\151\147\151\156\157\164\141\162\056\156\154 +\060\202\002\042\060\015\006\011\052\206\110\206\367\015\001\001 +\001\005\000\003\202\002\017\000\060\202\002\012\002\202\002\001 +\000\254\260\130\301\000\275\330\041\010\013\053\232\376\156\126 +\060\005\237\033\167\220\020\101\134\303\015\207\021\167\216\201 +\361\312\174\351\214\152\355\070\164\065\273\332\337\371\273\300 +\011\067\264\226\163\201\175\063\032\230\071\367\223\157\225\177 +\075\271\261\165\207\272\121\110\350\213\160\076\225\004\305\330 +\266\303\026\331\210\260\261\207\035\160\332\206\264\017\024\213 +\172\317\020\321\164\066\242\022\173\167\206\112\171\346\173\337 +\002\021\150\245\116\206\256\064\130\233\044\023\170\126\042\045 +\036\001\213\113\121\161\373\202\314\131\226\151\210\132\150\123 +\305\271\015\002\067\313\113\274\146\112\220\176\052\013\005\007 +\355\026\137\125\220\165\330\106\311\033\203\342\010\276\361\043 +\314\231\035\326\052\017\203\040\025\130\047\202\056\372\342\042 +\302\111\261\271\001\201\152\235\155\235\100\167\150\166\116\041 +\052\155\204\100\205\116\166\231\174\202\363\363\267\002\131\324 +\046\001\033\216\337\255\123\006\321\256\030\335\342\262\072\313 +\327\210\070\216\254\133\051\271\031\323\230\371\030\003\317\110 +\202\206\146\013\033\151\017\311\353\070\210\172\046\032\005\114 +\222\327\044\324\226\362\254\122\055\243\107\325\122\366\077\376 +\316\204\006\160\246\252\076\242\362\266\126\064\030\127\242\344 +\201\155\347\312\360\152\323\307\221\153\002\203\101\174\025\357 +\153\232\144\136\343\320\074\345\261\353\173\135\206\373\313\346 +\167\111\315\243\145\334\367\271\234\270\344\013\137\223\317\314 +\060\032\062\034\316\034\143\225\245\371\352\341\164\213\236\351 +\053\251\060\173\240\030\037\016\030\013\345\133\251\323\321\154 +\036\007\147\217\221\113\251\212\274\322\146\252\223\001\210\262 +\221\372\061\134\325\246\301\122\010\011\315\012\143\242\323\042 +\246\350\241\331\071\006\227\365\156\215\002\220\214\024\173\077 +\200\315\033\234\272\304\130\162\043\257\266\126\237\306\172\102 +\063\051\007\077\202\311\346\037\005\015\315\114\050\066\213\323 +\310\076\034\306\210\357\136\356\211\144\351\035\353\332\211\176 +\062\246\151\321\335\314\210\237\321\320\311\146\041\334\006\147 +\305\224\172\232\155\142\114\175\314\340\144\200\262\236\107\216 +\243\002\003\001\000\001\243\102\060\100\060\017\006\003\125\035 +\023\001\001\377\004\005\060\003\001\001\377\060\016\006\003\125 +\035\017\001\001\377\004\004\003\002\001\006\060\035\006\003\125 +\035\016\004\026\004\024\210\150\277\340\216\065\304\073\070\153 +\142\367\050\073\204\201\310\014\327\115\060\015\006\011\052\206 +\110\206\367\015\001\001\005\005\000\003\202\002\001\000\073\002 +\215\313\074\060\350\156\240\255\362\163\263\137\236\045\023\004 +\005\323\366\343\213\273\013\171\316\123\336\344\226\305\321\257 +\163\274\325\303\320\100\125\174\100\177\315\033\137\011\325\362 +\174\237\150\035\273\135\316\172\071\302\214\326\230\173\305\203 +\125\250\325\175\100\312\340\036\367\211\136\143\135\241\023\302 +\135\212\266\212\174\000\363\043\303\355\205\137\161\166\360\150 +\143\252\105\041\071\110\141\170\066\334\361\103\223\324\045\307 +\362\200\145\341\123\002\165\121\374\172\072\357\067\253\204\050 +\127\014\330\324\324\231\126\154\343\242\376\131\204\264\061\350 +\063\370\144\224\224\121\227\253\071\305\113\355\332\335\200\013 +\157\174\051\015\304\216\212\162\015\347\123\024\262\140\101\075 +\204\221\061\150\075\047\104\333\345\336\364\372\143\105\310\114 +\076\230\365\077\101\272\116\313\067\015\272\146\230\361\335\313 +\237\134\367\124\066\202\153\054\274\023\141\227\102\370\170\273 +\314\310\242\237\312\360\150\275\153\035\262\337\215\157\007\235 +\332\216\147\307\107\036\312\271\277\052\102\221\267\143\123\146 +\361\102\243\341\364\132\115\130\153\265\344\244\063\255\134\160 +\035\334\340\362\353\163\024\221\232\003\301\352\000\145\274\007 +\374\317\022\021\042\054\256\240\275\072\340\242\052\330\131\351 +\051\323\030\065\244\254\021\137\031\265\265\033\377\042\112\134 +\306\172\344\027\357\040\251\247\364\077\255\212\247\232\004\045 +\235\016\312\067\346\120\375\214\102\051\004\232\354\271\317\113 +\162\275\342\010\066\257\043\057\142\345\312\001\323\160\333\174 +\202\043\054\026\061\014\306\066\007\220\172\261\037\147\130\304 +\073\130\131\211\260\214\214\120\263\330\206\313\150\243\304\012 +\347\151\113\040\316\301\036\126\113\225\251\043\150\330\060\330 +\303\353\260\125\121\315\345\375\053\270\365\273\021\237\123\124 +\366\064\031\214\171\011\066\312\141\027\045\027\013\202\230\163 +\014\167\164\303\325\015\307\250\022\114\307\247\124\161\107\056 +\054\032\175\311\343\053\073\110\336\047\204\247\143\066\263\175 +\217\240\144\071\044\015\075\173\207\257\146\134\164\033\113\163 +\262\345\214\360\206\231\270\345\305\337\204\301\267\353 +END + +# Trust for Certificate "Explicitly Distrust DigiNotar Root CA" +CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "Explicitly Distrust DigiNotar Root CA" +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\301\167\313\113\340\264\046\216\365\307\317\105\231\042\271\260 +\316\272\041\057 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\012\244\325\314\272\264\373\243\131\343\346\001\335\123\331\116 +END +CKA_ISSUER MULTILINE_OCTAL +\060\137\061\013\060\011\006\003\125\004\006\023\002\116\114\061 +\022\060\020\006\003\125\004\012\023\011\104\151\147\151\116\157 +\164\141\162\061\032\060\030\006\003\125\004\003\023\021\104\151 +\147\151\116\157\164\141\162\040\122\157\157\164\040\103\101\061 +\040\060\036\006\011\052\206\110\206\367\015\001\011\001\026\021 +\151\156\146\157\100\144\151\147\151\156\157\164\141\162\056\156 +\154 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\020\017\377\377\377\377\377\377\377\377\377\377\377\377\377 +\377\377 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_NOT_TRUSTED +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_NOT_TRUSTED +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_NOT_TRUSTED +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "Explicitly Distrust DigiNotar Services 1024 CA" +# +CKA_CLASS CK_OBJECT_CLASS CKO_CERTIFICATE +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "Explicitly Distrust DigiNotar Services 1024 CA" +CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509 +CKA_SUBJECT MULTILINE_OCTAL +\060\150\061\013\060\011\006\003\125\004\006\023\002\116\114\061 +\022\060\020\006\003\125\004\012\023\011\104\151\147\151\116\157 +\164\141\162\061\043\060\041\006\003\125\004\003\023\032\104\151 +\147\151\116\157\164\141\162\040\123\145\162\166\151\143\145\163 +\040\061\060\062\064\040\103\101\061\040\060\036\006\011\052\206 +\110\206\367\015\001\011\001\026\021\151\156\146\157\100\144\151 +\147\151\156\157\164\141\162\056\156\154 +END +CKA_ID UTF8 "0" +CKA_ISSUER MULTILINE_OCTAL +\060\150\061\013\060\011\006\003\125\004\006\023\002\116\114\061 +\022\060\020\006\003\125\004\012\023\011\104\151\147\151\116\157 +\164\141\162\061\043\060\041\006\003\125\004\003\023\032\104\151 +\147\151\116\157\164\141\162\040\123\145\162\166\151\143\145\163 +\040\061\060\062\064\040\103\101\061\040\060\036\006\011\052\206 +\110\206\367\015\001\011\001\026\021\151\156\146\157\100\144\151 +\147\151\156\157\164\141\162\056\156\154 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\004\017\377\377\377 +END +CKA_VALUE MULTILINE_OCTAL +\060\202\003\161\060\202\002\332\240\003\002\001\002\002\004\017 +\377\377\377\060\015\006\011\052\206\110\206\367\015\001\001\005 +\005\000\060\150\061\013\060\011\006\003\125\004\006\023\002\116 +\114\061\022\060\020\006\003\125\004\012\023\011\104\151\147\151 +\116\157\164\141\162\061\043\060\041\006\003\125\004\003\023\032 +\104\151\147\151\116\157\164\141\162\040\123\145\162\166\151\143 +\145\163\040\061\060\062\064\040\103\101\061\040\060\036\006\011 +\052\206\110\206\367\015\001\011\001\026\021\151\156\146\157\100 +\144\151\147\151\156\157\164\141\162\056\156\154\060\036\027\015 +\060\067\060\067\062\066\061\065\065\071\060\061\132\027\015\061 +\063\060\070\062\066\061\066\062\071\060\061\132\060\150\061\013 +\060\011\006\003\125\004\006\023\002\116\114\061\022\060\020\006 +\003\125\004\012\023\011\104\151\147\151\116\157\164\141\162\061 +\043\060\041\006\003\125\004\003\023\032\104\151\147\151\116\157 +\164\141\162\040\123\145\162\166\151\143\145\163\040\061\060\062 +\064\040\103\101\061\040\060\036\006\011\052\206\110\206\367\015 +\001\011\001\026\021\151\156\146\157\100\144\151\147\151\156\157 +\164\141\162\056\156\154\060\201\237\060\015\006\011\052\206\110 +\206\367\015\001\001\001\005\000\003\201\215\000\060\201\211\002 +\201\201\000\332\233\115\135\074\371\321\342\213\306\306\010\040 +\305\331\036\110\354\146\130\147\171\142\053\101\143\364\211\215 +\150\332\257\270\224\066\213\031\044\244\240\223\322\231\017\262 +\255\055\065\115\315\057\152\341\371\233\031\053\274\004\032\176 +\055\075\122\144\315\361\076\147\017\211\056\350\362\117\256\246 +\010\241\205\376\241\251\011\346\306\253\076\103\374\257\172\003 +\221\332\246\071\246\141\356\230\117\030\250\323\263\257\146\202 +\351\237\274\335\162\371\006\004\275\022\331\030\044\347\253\223 +\123\213\131\002\003\001\000\001\243\202\001\046\060\202\001\042 +\060\022\006\003\125\035\023\001\001\377\004\010\060\006\001\001 +\377\002\001\000\060\047\006\003\125\035\045\004\040\060\036\006 +\010\053\006\001\005\005\007\003\001\006\010\053\006\001\005\005 +\007\003\002\006\010\053\006\001\005\005\007\003\004\060\021\006 +\003\125\035\040\004\012\060\010\060\006\006\004\125\035\040\000 +\060\063\006\010\053\006\001\005\005\007\001\001\004\047\060\045 +\060\043\006\010\053\006\001\005\005\007\060\001\206\027\150\164 +\164\160\072\057\057\157\143\163\160\056\145\156\164\162\165\163 +\164\056\156\145\164\060\063\006\003\125\035\037\004\054\060\052 +\060\050\240\046\240\044\206\042\150\164\164\160\072\057\057\143 +\162\154\056\145\156\164\162\165\163\164\056\156\145\164\057\163 +\145\162\166\145\162\061\056\143\162\154\060\035\006\003\125\035 +\016\004\026\004\024\376\334\224\111\014\157\357\134\177\306\361 +\022\231\117\026\111\255\373\202\145\060\013\006\003\125\035\017 +\004\004\003\002\001\006\060\037\006\003\125\035\043\004\030\060 +\026\200\024\360\027\142\023\125\075\263\377\012\000\153\373\120 +\204\227\363\355\142\320\032\060\031\006\011\052\206\110\206\366 +\175\007\101\000\004\014\060\012\033\004\126\067\056\061\003\002 +\000\201\060\015\006\011\052\206\110\206\367\015\001\001\005\005 +\000\003\201\201\000\143\164\152\067\251\077\226\234\146\310\130 +\254\011\311\357\365\145\224\177\243\002\304\070\061\275\135\043 +\207\354\324\126\262\311\262\156\344\005\006\374\354\365\372\210 +\160\131\324\356\346\335\265\172\240\243\140\057\002\014\253\336 +\022\135\257\360\065\113\252\212\107\221\032\365\205\054\102\307 +\035\357\225\103\263\136\270\225\223\245\332\305\050\252\255\162 +\055\061\255\231\153\154\377\214\041\047\257\255\232\221\053\307 +\335\130\303\156\007\305\237\171\322\307\214\125\277\114\307\047 +\136\121\026\053\076 +END + +# Trust for Certificate "Explicitly Distrust DigiNotar Services 1024 CA" +CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "Explicitly Distrust DigiNotar Services 1024 CA" +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\022\073\352\312\146\147\167\141\340\353\150\362\376\355\242\017 +\040\005\125\160 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\057\026\150\227\114\150\117\316\122\212\354\123\217\223\111\370 +END +CKA_ISSUER MULTILINE_OCTAL +\060\150\061\013\060\011\006\003\125\004\006\023\002\116\114\061 +\022\060\020\006\003\125\004\012\023\011\104\151\147\151\116\157 +\164\141\162\061\043\060\041\006\003\125\004\003\023\032\104\151 +\147\151\116\157\164\141\162\040\123\145\162\166\151\143\145\163 +\040\061\060\062\064\040\103\101\061\040\060\036\006\011\052\206 +\110\206\367\015\001\011\001\026\021\151\156\146\157\100\144\151 +\147\151\156\157\164\141\162\056\156\154 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\004\017\377\377\377 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_NOT_TRUSTED +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_NOT_TRUSTED +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_NOT_TRUSTED +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "Explicitly Distrust DigiNotar Cyber CA" +# +CKA_CLASS CK_OBJECT_CLASS CKO_CERTIFICATE +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "Explicitly Distrust DigiNotar Cyber CA" +CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509 +CKA_SUBJECT MULTILINE_OCTAL +\060\140\061\013\060\011\006\003\125\004\006\023\002\116\114\061 +\022\060\020\006\003\125\004\012\023\011\104\151\147\151\116\157 +\164\141\162\061\033\060\031\006\003\125\004\003\023\022\104\151 +\147\151\116\157\164\141\162\040\103\171\142\145\162\040\103\101 +\061\040\060\036\006\011\052\206\110\206\367\015\001\011\001\026 +\021\151\156\146\157\100\144\151\147\151\156\157\164\141\162\056 +\156\154 +END +CKA_ID UTF8 "0" +CKA_ISSUER MULTILINE_OCTAL +\060\140\061\013\060\011\006\003\125\004\006\023\002\116\114\061 +\022\060\020\006\003\125\004\012\023\011\104\151\147\151\116\157 +\164\141\162\061\033\060\031\006\003\125\004\003\023\022\104\151 +\147\151\116\157\164\141\162\040\103\171\142\145\162\040\103\101 +\061\040\060\036\006\011\052\206\110\206\367\015\001\011\001\026 +\021\151\156\146\157\100\144\151\147\151\156\157\164\141\162\056 +\156\154 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\004\017\377\377\377 +END +CKA_VALUE MULTILINE_OCTAL +\060\202\005\105\060\202\004\256\240\003\002\001\002\002\004\017 +\377\377\377\060\015\006\011\052\206\110\206\367\015\001\001\005 +\005\000\060\140\061\013\060\011\006\003\125\004\006\023\002\116 +\114\061\022\060\020\006\003\125\004\012\023\011\104\151\147\151 +\116\157\164\141\162\061\033\060\031\006\003\125\004\003\023\022 +\104\151\147\151\116\157\164\141\162\040\103\171\142\145\162\040 +\103\101\061\040\060\036\006\011\052\206\110\206\367\015\001\011 +\001\026\021\151\156\146\157\100\144\151\147\151\156\157\164\141 +\162\056\156\154\060\036\027\015\060\066\061\060\060\064\061\060 +\065\064\061\062\132\027\015\061\061\061\060\060\064\061\060\065 +\063\061\062\132\060\140\061\013\060\011\006\003\125\004\006\023 +\002\116\114\061\022\060\020\006\003\125\004\012\023\011\104\151 +\147\151\116\157\164\141\162\061\033\060\031\006\003\125\004\003 +\023\022\104\151\147\151\116\157\164\141\162\040\103\171\142\145 +\162\040\103\101\061\040\060\036\006\011\052\206\110\206\367\015 +\001\011\001\026\021\151\156\146\157\100\144\151\147\151\156\157 +\164\141\162\056\156\154\060\202\002\042\060\015\006\011\052\206 +\110\206\367\015\001\001\001\005\000\003\202\002\017\000\060\202 +\002\012\002\202\002\001\000\322\316\025\012\055\250\136\204\147 +\255\375\276\357\106\307\310\271\317\163\374\364\064\271\371\054 +\103\347\140\023\075\172\343\262\317\073\147\154\220\255\300\271 +\077\204\122\360\065\102\334\164\334\050\073\275\122\264\247\254 +\162\105\027\306\360\211\353\264\252\045\362\135\113\136\321\331 +\207\272\326\175\174\365\316\062\237\020\063\305\261\112\273\136 +\221\061\302\320\351\101\302\221\144\176\011\101\073\333\213\010 +\067\152\252\312\122\336\265\071\036\300\210\003\245\077\213\231 +\023\141\103\265\233\202\263\356\040\157\317\241\104\242\352\057 +\153\100\237\217\053\127\255\241\123\302\205\042\151\235\240\077 +\121\337\013\101\221\015\245\341\250\252\134\111\010\135\275\336 +\160\101\261\017\311\143\153\323\177\064\164\002\057\064\132\170 +\165\034\150\172\201\147\212\363\332\100\360\140\143\364\222\040 +\327\003\246\075\243\036\147\304\204\033\101\245\311\214\346\275 +\352\110\266\005\026\010\263\067\022\132\367\141\074\367\070\157 +\056\227\340\157\126\070\124\323\050\265\255\024\156\056\113\144 +\265\047\145\267\165\045\011\266\007\075\225\126\002\012\202\140 +\262\163\105\340\063\046\121\164\232\271\324\120\034\366\115\133 +\133\122\122\023\132\246\177\247\016\341\350\101\124\147\230\214 +\207\325\311\323\154\313\323\124\222\006\011\064\101\367\201\157 +\077\236\311\174\165\125\260\347\301\263\167\350\303\304\000\065 +\225\100\160\020\112\005\336\045\273\237\131\245\144\274\107\140 +\277\140\343\166\213\023\125\335\341\164\172\271\317\044\246\152 +\177\336\144\042\104\130\150\202\152\020\371\075\345\076\033\271 +\275\374\042\364\140\004\211\273\125\155\050\125\372\336\216\215 +\033\041\024\327\067\213\064\173\115\366\262\262\020\317\063\261 +\175\034\142\231\110\313\053\154\166\226\125\277\031\015\035\037 +\273\145\252\033\216\231\265\306\050\220\345\202\055\170\120\040 +\232\375\171\057\044\177\360\211\051\151\364\175\315\163\276\263 +\355\116\301\321\355\122\136\217\367\270\327\215\207\255\262\331 +\033\121\022\377\126\263\341\257\064\175\134\244\170\210\020\236 +\235\003\306\245\252\242\044\121\367\111\024\305\261\356\131\103 +\225\337\253\150\050\060\077\002\003\001\000\001\243\202\001\206 +\060\202\001\202\060\022\006\003\125\035\023\001\001\377\004\010 +\060\006\001\001\377\002\001\001\060\123\006\003\125\035\040\004 +\114\060\112\060\110\006\011\053\006\001\004\001\261\076\001\000 +\060\073\060\071\006\010\053\006\001\005\005\007\002\001\026\055 +\150\164\164\160\072\057\057\167\167\167\056\160\165\142\154\151 +\143\055\164\162\165\163\164\056\143\157\155\057\103\120\123\057 +\117\155\156\151\122\157\157\164\056\150\164\155\154\060\016\006 +\003\125\035\017\001\001\377\004\004\003\002\001\006\060\201\240 +\006\003\125\035\043\004\201\230\060\201\225\200\024\246\014\035 +\237\141\377\007\027\265\277\070\106\333\103\060\325\216\260\122 +\006\241\171\244\167\060\165\061\013\060\011\006\003\125\004\006 +\023\002\125\123\061\030\060\026\006\003\125\004\012\023\017\107 +\124\105\040\103\157\162\160\157\162\141\164\151\157\156\061\047 +\060\045\006\003\125\004\013\023\036\107\124\105\040\103\171\142 +\145\162\124\162\165\163\164\040\123\157\154\165\164\151\157\156 +\163\054\040\111\156\143\056\061\043\060\041\006\003\125\004\003 +\023\032\107\124\105\040\103\171\142\145\162\124\162\165\163\164 +\040\107\154\157\142\141\154\040\122\157\157\164\202\002\001\245 +\060\105\006\003\125\035\037\004\076\060\074\060\072\240\070\240 +\066\206\064\150\164\164\160\072\057\057\167\167\167\056\160\165 +\142\154\151\143\055\164\162\165\163\164\056\143\157\155\057\143 +\147\151\055\142\151\156\057\103\122\114\057\062\060\061\070\057 +\143\144\160\056\143\162\154\060\035\006\003\125\035\016\004\026 +\004\024\253\371\150\337\317\112\067\327\173\105\214\137\162\336 +\100\104\303\145\273\302\060\015\006\011\052\206\110\206\367\015 +\001\001\005\005\000\003\201\201\000\217\150\153\245\133\007\272 +\104\146\016\034\250\134\060\173\063\344\012\046\004\374\357\236 +\032\070\326\056\241\037\320\231\107\302\165\144\044\375\236\073 +\050\166\271\046\050\141\221\014\155\054\370\004\237\174\120\001 +\325\343\151\257\357\025\322\105\233\044\011\052\146\005\117\045 +\201\312\135\276\252\301\131\047\256\063\216\202\367\337\164\260 +\125\263\216\370\347\067\310\156\252\126\104\366\275\123\201\043 +\226\075\264\372\062\212\123\146\104\045\242\045\306\246\074\045 +\214\360\340\050\006\042\267\046\101 +END + +# Trust for Certificate "Explicitly Distrust DigiNotar Cyber CA" +CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "Explicitly Distrust DigiNotar Cyber CA" +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\245\216\240\354\366\104\126\065\031\035\150\133\307\240\344\034 +\260\115\171\056 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\274\275\211\022\264\377\345\371\046\107\310\140\066\133\331\124 +END +CKA_ISSUER MULTILINE_OCTAL +\060\140\061\013\060\011\006\003\125\004\006\023\002\116\114\061 +\022\060\020\006\003\125\004\012\023\011\104\151\147\151\116\157 +\164\141\162\061\033\060\031\006\003\125\004\003\023\022\104\151 +\147\151\116\157\164\141\162\040\103\171\142\145\162\040\103\101 +\061\040\060\036\006\011\052\206\110\206\367\015\001\011\001\026 +\021\151\156\146\157\100\144\151\147\151\156\157\164\141\162\056 +\156\154 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\004\017\377\377\377 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_NOT_TRUSTED +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_NOT_TRUSTED +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_NOT_TRUSTED +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "Explicitly Distrust DigiNotar Cyber CA 2nd" +# +CKA_CLASS CK_OBJECT_CLASS CKO_CERTIFICATE +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "Explicitly Distrust DigiNotar Cyber CA 2nd" +CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509 +CKA_SUBJECT MULTILINE_OCTAL +\060\076\061\013\060\011\006\003\125\004\006\023\002\116\114\061 +\022\060\020\006\003\125\004\012\023\011\104\151\147\151\116\157 +\164\141\162\061\033\060\031\006\003\125\004\003\023\022\104\151 +\147\151\116\157\164\141\162\040\103\171\142\145\162\040\103\101 +END +CKA_ID UTF8 "0" +CKA_ISSUER MULTILINE_OCTAL +\060\076\061\013\060\011\006\003\125\004\006\023\002\116\114\061 +\022\060\020\006\003\125\004\012\023\011\104\151\147\151\116\157 +\164\141\162\061\033\060\031\006\003\125\004\003\023\022\104\151 +\147\151\116\157\164\141\162\040\103\171\142\145\162\040\103\101 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\004\017\377\377\377 +END +CKA_VALUE MULTILINE_OCTAL +\060\202\005\001\060\202\004\152\240\003\002\001\002\002\004\017 +\377\377\377\060\015\006\011\052\206\110\206\367\015\001\001\005 +\005\000\060\076\061\013\060\011\006\003\125\004\006\023\002\116 +\114\061\022\060\020\006\003\125\004\012\023\011\104\151\147\151 +\116\157\164\141\162\061\033\060\031\006\003\125\004\003\023\022 +\104\151\147\151\116\157\164\141\162\040\103\171\142\145\162\040 +\103\101\060\036\027\015\060\066\060\071\062\067\061\060\065\063 +\065\063\132\027\015\061\063\060\071\062\060\060\071\064\064\060 +\067\132\060\076\061\013\060\011\006\003\125\004\006\023\002\116 +\114\061\022\060\020\006\003\125\004\012\023\011\104\151\147\151 +\116\157\164\141\162\061\033\060\031\006\003\125\004\003\023\022 +\104\151\147\151\116\157\164\141\162\040\103\171\142\145\162\040 +\103\101\060\202\002\042\060\015\006\011\052\206\110\206\367\015 +\001\001\001\005\000\003\202\002\017\000\060\202\002\012\002\202 +\002\001\000\322\316\025\012\055\250\136\204\147\255\375\276\357 +\106\307\310\271\317\163\374\364\064\271\371\054\103\347\140\023 +\075\172\343\262\317\073\147\154\220\255\300\271\077\204\122\360 +\065\102\334\164\334\050\073\275\122\264\247\254\162\105\027\306 +\360\211\353\264\252\045\362\135\113\136\321\331\207\272\326\175 +\174\365\316\062\237\020\063\305\261\112\273\136\221\061\302\320 +\351\101\302\221\144\176\011\101\073\333\213\010\067\152\252\312 +\122\336\265\071\036\300\210\003\245\077\213\231\023\141\103\265 +\233\202\263\356\040\157\317\241\104\242\352\057\153\100\237\217 +\053\127\255\241\123\302\205\042\151\235\240\077\121\337\013\101 +\221\015\245\341\250\252\134\111\010\135\275\336\160\101\261\017 +\311\143\153\323\177\064\164\002\057\064\132\170\165\034\150\172 +\201\147\212\363\332\100\360\140\143\364\222\040\327\003\246\075 +\243\036\147\304\204\033\101\245\311\214\346\275\352\110\266\005 +\026\010\263\067\022\132\367\141\074\367\070\157\056\227\340\157 +\126\070\124\323\050\265\255\024\156\056\113\144\265\047\145\267 +\165\045\011\266\007\075\225\126\002\012\202\140\262\163\105\340 +\063\046\121\164\232\271\324\120\034\366\115\133\133\122\122\023 +\132\246\177\247\016\341\350\101\124\147\230\214\207\325\311\323 +\154\313\323\124\222\006\011\064\101\367\201\157\077\236\311\174 +\165\125\260\347\301\263\167\350\303\304\000\065\225\100\160\020 +\112\005\336\045\273\237\131\245\144\274\107\140\277\140\343\166 +\213\023\125\335\341\164\172\271\317\044\246\152\177\336\144\042 +\104\130\150\202\152\020\371\075\345\076\033\271\275\374\042\364 +\140\004\211\273\125\155\050\125\372\336\216\215\033\041\024\327 +\067\213\064\173\115\366\262\262\020\317\063\261\175\034\142\231 +\110\313\053\154\166\226\125\277\031\015\035\037\273\145\252\033 +\216\231\265\306\050\220\345\202\055\170\120\040\232\375\171\057 +\044\177\360\211\051\151\364\175\315\163\276\263\355\116\301\321 +\355\122\136\217\367\270\327\215\207\255\262\331\033\121\022\377 +\126\263\341\257\064\175\134\244\170\210\020\236\235\003\306\245 +\252\242\044\121\367\111\024\305\261\356\131\103\225\337\253\150 +\050\060\077\002\003\001\000\001\243\202\001\206\060\202\001\202 +\060\022\006\003\125\035\023\001\001\377\004\010\060\006\001\001 +\377\002\001\001\060\123\006\003\125\035\040\004\114\060\112\060 +\110\006\011\053\006\001\004\001\261\076\001\000\060\073\060\071 +\006\010\053\006\001\005\005\007\002\001\026\055\150\164\164\160 +\072\057\057\167\167\167\056\160\165\142\154\151\143\055\164\162 +\165\163\164\056\143\157\155\057\103\120\123\057\117\155\156\151 +\122\157\157\164\056\150\164\155\154\060\016\006\003\125\035\017 +\001\001\377\004\004\003\002\001\006\060\201\240\006\003\125\035 +\043\004\201\230\060\201\225\200\024\246\014\035\237\141\377\007 +\027\265\277\070\106\333\103\060\325\216\260\122\006\241\171\244 +\167\060\165\061\013\060\011\006\003\125\004\006\023\002\125\123 +\061\030\060\026\006\003\125\004\012\023\017\107\124\105\040\103 +\157\162\160\157\162\141\164\151\157\156\061\047\060\045\006\003 +\125\004\013\023\036\107\124\105\040\103\171\142\145\162\124\162 +\165\163\164\040\123\157\154\165\164\151\157\156\163\054\040\111 +\156\143\056\061\043\060\041\006\003\125\004\003\023\032\107\124 +\105\040\103\171\142\145\162\124\162\165\163\164\040\107\154\157 +\142\141\154\040\122\157\157\164\202\002\001\245\060\105\006\003 +\125\035\037\004\076\060\074\060\072\240\070\240\066\206\064\150 +\164\164\160\072\057\057\167\167\167\056\160\165\142\154\151\143 +\055\164\162\165\163\164\056\143\157\155\057\143\147\151\055\142 +\151\156\057\103\122\114\057\062\060\061\070\057\143\144\160\056 +\143\162\154\060\035\006\003\125\035\016\004\026\004\024\253\371 +\150\337\317\112\067\327\173\105\214\137\162\336\100\104\303\145 +\273\302\060\015\006\011\052\206\110\206\367\015\001\001\005\005 +\000\003\201\201\000\011\312\142\017\215\273\112\340\324\172\065 +\053\006\055\321\050\141\266\254\001\373\203\111\274\256\324\057 +\055\206\256\031\203\245\326\035\023\342\027\276\376\062\164\351 +\172\024\070\312\224\136\367\051\001\151\161\033\221\032\375\243 +\273\252\035\312\173\342\026\375\241\243\016\363\014\137\262\341 +\040\061\224\053\136\222\166\355\372\351\265\043\246\277\012\073 +\003\251\157\122\140\124\315\137\351\267\057\174\242\047\375\101 +\203\165\266\015\373\170\046\363\261\105\351\062\225\052\032\065 +\041\225\305\242\165 +END + +# Trust for Certificate "Explicitly Distrust DigiNotar Cyber CA 2nd" +CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "Explicitly Distrust DigiNotar Cyber CA 2nd" +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\210\036\105\005\017\230\331\131\373\012\065\371\114\016\050\227 +\125\026\051\263 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\360\256\251\075\362\054\210\334\174\205\033\226\175\132\034\021 +END +CKA_ISSUER MULTILINE_OCTAL +\060\076\061\013\060\011\006\003\125\004\006\023\002\116\114\061 +\022\060\020\006\003\125\004\012\023\011\104\151\147\151\116\157 +\164\141\162\061\033\060\031\006\003\125\004\003\023\022\104\151 +\147\151\116\157\164\141\162\040\103\171\142\145\162\040\103\101 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\004\017\377\377\377 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_NOT_TRUSTED +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_NOT_TRUSTED +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_NOT_TRUSTED +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "Explicitly Distrusted DigiNotar PKIoverheid" +# +CKA_CLASS CK_OBJECT_CLASS CKO_CERTIFICATE +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "Explicitly Distrusted DigiNotar PKIoverheid" +CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509 +CKA_SUBJECT MULTILINE_OCTAL +\060\137\061\013\060\011\006\003\125\004\006\023\002\116\114\061 +\027\060\025\006\003\125\004\012\023\016\104\151\147\151\116\157 +\164\141\162\040\102\056\126\056\061\067\060\065\006\003\125\004 +\003\023\056\104\151\147\151\116\157\164\141\162\040\120\113\111 +\157\166\145\162\150\145\151\144\040\103\101\040\117\166\145\162 +\150\145\151\144\040\145\156\040\102\145\144\162\151\152\166\145 +\156 +END +CKA_ID UTF8 "0" +CKA_ISSUER MULTILINE_OCTAL +\060\137\061\013\060\011\006\003\125\004\006\023\002\116\114\061 +\027\060\025\006\003\125\004\012\023\016\104\151\147\151\116\157 +\164\141\162\040\102\056\126\056\061\067\060\065\006\003\125\004 +\003\023\056\104\151\147\151\116\157\164\141\162\040\120\113\111 +\157\166\145\162\150\145\151\144\040\103\101\040\117\166\145\162 +\150\145\151\144\040\145\156\040\102\145\144\162\151\152\166\145 +\156 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\004\017\377\377\377 +END +CKA_VALUE MULTILINE_OCTAL +\060\202\004\216\060\202\003\166\240\003\002\001\002\002\004\017 +\377\377\377\060\015\006\011\052\206\110\206\367\015\001\001\005 +\005\000\060\137\061\013\060\011\006\003\125\004\006\023\002\116 +\114\061\027\060\025\006\003\125\004\012\023\016\104\151\147\151 +\116\157\164\141\162\040\102\056\126\056\061\067\060\065\006\003 +\125\004\003\023\056\104\151\147\151\116\157\164\141\162\040\120 +\113\111\157\166\145\162\150\145\151\144\040\103\101\040\117\166 +\145\162\150\145\151\144\040\145\156\040\102\145\144\162\151\152 +\166\145\156\060\036\027\015\060\067\060\067\060\065\060\070\064 +\062\060\070\132\027\015\061\065\060\067\062\067\060\070\063\071 +\064\067\132\060\137\061\013\060\011\006\003\125\004\006\023\002 +\116\114\061\027\060\025\006\003\125\004\012\023\016\104\151\147 +\151\116\157\164\141\162\040\102\056\126\056\061\067\060\065\006 +\003\125\004\003\023\056\104\151\147\151\116\157\164\141\162\040 +\120\113\111\157\166\145\162\150\145\151\144\040\103\101\040\117 +\166\145\162\150\145\151\144\040\145\156\040\102\145\144\162\151 +\152\166\145\156\060\202\001\042\060\015\006\011\052\206\110\206 +\367\015\001\001\001\005\000\003\202\001\017\000\060\202\001\012 +\002\202\001\001\000\334\275\322\247\116\152\012\273\073\242\205 +\341\177\000\255\276\264\060\150\230\007\315\240\172\304\224\317 +\161\371\212\067\344\123\353\127\166\314\213\346\154\376\356\207 +\125\310\076\273\004\071\000\247\200\170\254\133\117\176\364\275 +\270\124\270\161\073\007\061\111\071\223\124\174\040\073\171\053 +\217\273\141\220\175\261\254\346\037\220\056\235\105\001\251\144 +\055\115\303\057\271\347\120\325\116\052\134\253\166\166\067\106 +\327\171\354\102\231\367\242\354\244\211\160\334\070\053\207\246 +\252\044\346\235\222\044\033\276\366\375\324\057\031\027\172\346 +\062\007\224\124\005\123\103\351\154\274\257\107\313\274\313\375 +\275\073\104\022\201\361\153\113\273\355\264\317\253\045\117\030 +\322\314\002\374\243\117\265\102\063\313\131\315\011\334\323\120 +\375\240\166\214\254\176\146\212\102\366\255\034\222\363\266\373 +\024\106\353\115\327\057\060\340\155\356\133\066\276\104\164\267 +\040\005\127\205\115\350\000\031\242\366\014\346\256\241\300\102 +\337\247\254\202\135\307\150\267\030\346\211\113\232\153\372\316 +\171\371\363\054\247\002\003\001\000\001\243\202\001\120\060\202 +\001\114\060\110\006\003\125\035\040\004\101\060\077\060\075\006 +\004\125\035\040\000\060\065\060\063\006\010\053\006\001\005\005 +\007\002\001\026\047\150\164\164\160\072\057\057\167\167\167\056 +\144\151\147\151\156\157\164\141\162\056\156\154\057\143\160\163 +\057\160\153\151\157\166\145\162\150\145\151\144\060\017\006\003 +\125\035\023\001\001\377\004\005\060\003\001\001\377\060\016\006 +\003\125\035\017\001\001\377\004\004\003\002\001\006\060\201\200 +\006\003\125\035\043\004\171\060\167\200\024\013\206\326\017\167 +\243\150\261\373\144\011\303\210\156\134\004\034\127\351\075\241 +\131\244\127\060\125\061\013\060\011\006\003\125\004\006\023\002 +\116\114\061\036\060\034\006\003\125\004\012\023\025\123\164\141 +\141\164\040\144\145\162\040\116\145\144\145\162\154\141\156\144 +\145\156\061\046\060\044\006\003\125\004\003\023\035\123\164\141 +\141\164\040\144\145\162\040\116\145\144\145\162\154\141\156\144 +\145\156\040\122\157\157\164\040\103\101\202\004\000\230\232\171 +\060\075\006\003\125\035\037\004\066\060\064\060\062\240\060\240 +\056\206\054\150\164\164\160\072\057\057\143\162\154\056\160\153 +\151\157\166\145\162\150\145\151\144\056\156\154\057\104\157\155 +\117\166\114\141\164\145\163\164\103\122\114\056\143\162\154\060 +\035\006\003\125\035\016\004\026\004\024\114\010\311\215\166\361 +\230\307\076\337\074\327\057\165\015\261\166\171\227\314\060\015 +\006\011\052\206\110\206\367\015\001\001\005\005\000\003\202\001 +\001\000\014\224\207\032\277\115\343\205\342\356\327\330\143\171 +\016\120\337\306\204\133\322\273\331\365\061\012\032\065\227\164 +\337\024\372\052\017\076\355\240\343\010\366\325\116\133\257\246 +\256\045\342\105\153\042\017\267\124\050\176\222\336\215\024\154 +\321\034\345\156\164\004\234\267\357\064\104\105\337\311\203\035 +\031\037\300\051\151\337\211\325\077\302\260\123\155\345\116\027 +\344\163\141\043\023\046\161\103\375\114\131\313\303\337\042\252 +\041\053\331\277\225\021\032\212\244\342\253\247\135\113\157\051 +\365\122\321\344\322\025\261\213\376\360\003\317\247\175\351\231 +\207\070\263\015\163\024\344\162\054\341\316\365\255\006\110\144 +\372\323\051\271\242\330\273\364\325\013\245\100\104\103\216\240 +\277\316\132\245\122\114\144\323\027\061\141\314\350\244\212\350 +\344\210\373\351\345\057\006\063\063\233\224\146\146\261\253\120 +\072\241\011\201\164\123\132\047\271\246\322\045\317\323\303\247 +\377\226\320\057\352\340\036\215\122\351\030\034\040\012\107\240 +\226\126\016\100\220\121\104\254\032\375\361\356\205\037\367\102 +\132\145 +END + +# Trust for Certificate "Explicitly Distrusted DigiNotar PKIoverheid" +CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "Explicitly Distrusted DigiNotar PKIoverheid" +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\247\250\311\254\364\137\220\222\166\206\270\300\242\016\223\130 +\175\336\060\344 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\243\317\263\377\371\117\247\261\353\072\165\130\116\056\237\352 +END +CKA_ISSUER MULTILINE_OCTAL +\060\137\061\013\060\011\006\003\125\004\006\023\002\116\114\061 +\027\060\025\006\003\125\004\012\023\016\104\151\147\151\116\157 +\164\141\162\040\102\056\126\056\061\067\060\065\006\003\125\004 +\003\023\056\104\151\147\151\116\157\164\141\162\040\120\113\111 +\157\166\145\162\150\145\151\144\040\103\101\040\117\166\145\162 +\150\145\151\144\040\145\156\040\102\145\144\162\151\152\166\145 +\156 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\004\017\377\377\377 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_NOT_TRUSTED +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_NOT_TRUSTED +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_NOT_TRUSTED +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "Explicitly Distrusted DigiNotar PKIoverheid G2" +# +CKA_CLASS CK_OBJECT_CLASS CKO_CERTIFICATE +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "Explicitly Distrusted DigiNotar PKIoverheid G2" +CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509 +CKA_SUBJECT MULTILINE_OCTAL +\060\132\061\013\060\011\006\003\125\004\006\023\002\116\114\061 +\027\060\025\006\003\125\004\012\014\016\104\151\147\151\116\157 +\164\141\162\040\102\056\126\056\061\062\060\060\006\003\125\004 +\003\014\051\104\151\147\151\116\157\164\141\162\040\120\113\111 +\157\166\145\162\150\145\151\144\040\103\101\040\117\162\147\141 +\156\151\163\141\164\151\145\040\055\040\107\062 +END +CKA_ID UTF8 "0" +CKA_ISSUER MULTILINE_OCTAL +\060\132\061\013\060\011\006\003\125\004\006\023\002\116\114\061 +\027\060\025\006\003\125\004\012\014\016\104\151\147\151\116\157 +\164\141\162\040\102\056\126\056\061\062\060\060\006\003\125\004 +\003\014\051\104\151\147\151\116\157\164\141\162\040\120\113\111 +\157\166\145\162\150\145\151\144\040\103\101\040\117\162\147\141 +\156\151\163\141\164\151\145\040\055\040\107\062 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\004\017\377\377\377 +END +CKA_VALUE MULTILINE_OCTAL +\060\202\006\225\060\202\004\175\240\003\002\001\002\002\004\017 +\377\377\377\060\015\006\011\052\206\110\206\367\015\001\001\013 +\005\000\060\132\061\013\060\011\006\003\125\004\006\023\002\116 +\114\061\027\060\025\006\003\125\004\012\014\016\104\151\147\151 +\116\157\164\141\162\040\102\056\126\056\061\062\060\060\006\003 +\125\004\003\014\051\104\151\147\151\116\157\164\141\162\040\120 +\113\111\157\166\145\162\150\145\151\144\040\103\101\040\117\162 +\147\141\156\151\163\141\164\151\145\040\055\040\107\062\060\036 +\027\015\061\060\060\065\061\062\060\070\065\061\063\071\132\027 +\015\062\060\060\063\062\063\060\071\065\060\060\065\132\060\132 +\061\013\060\011\006\003\125\004\006\023\002\116\114\061\027\060 +\025\006\003\125\004\012\014\016\104\151\147\151\116\157\164\141 +\162\040\102\056\126\056\061\062\060\060\006\003\125\004\003\014 +\051\104\151\147\151\116\157\164\141\162\040\120\113\111\157\166 +\145\162\150\145\151\144\040\103\101\040\117\162\147\141\156\151 +\163\141\164\151\145\040\055\040\107\062\060\202\002\042\060\015 +\006\011\052\206\110\206\367\015\001\001\001\005\000\003\202\002 +\017\000\060\202\002\012\002\202\002\001\000\261\023\031\017\047 +\346\154\324\125\206\113\320\354\211\212\105\221\170\254\107\275 +\107\053\344\374\105\353\117\264\046\163\133\067\323\303\177\366 +\343\336\327\243\370\055\150\305\010\076\113\224\326\344\207\045 +\066\153\204\265\030\164\363\050\130\163\057\233\152\317\274\004 +\036\366\336\335\257\374\113\252\365\333\146\142\045\001\045\202 +\336\362\227\132\020\156\335\135\251\042\261\004\251\043\163\072 +\370\161\255\035\317\204\104\353\107\321\257\155\310\174\050\253 +\307\362\067\172\164\137\137\305\002\024\212\243\132\343\033\154 +\001\343\135\216\331\150\326\364\011\033\062\334\221\265\054\365 +\040\353\214\003\155\046\111\270\223\304\205\135\330\322\233\257 +\126\152\314\005\063\314\240\102\236\064\125\104\234\153\240\324 +\022\320\053\124\315\267\211\015\345\366\353\350\373\205\001\063 +\117\172\153\361\235\162\063\226\016\367\262\204\245\245\047\304 +\047\361\121\163\051\167\272\147\156\376\114\334\264\342\241\241 +\201\057\071\111\215\103\070\023\316\320\245\134\302\207\072\000 +\147\145\102\043\361\066\131\012\035\243\121\310\274\243\224\052 +\061\337\343\074\362\235\032\074\004\260\357\261\012\060\023\163 +\266\327\363\243\114\001\165\024\205\170\300\327\212\071\130\205 +\120\372\056\346\305\276\317\213\077\257\217\066\324\045\011\055 +\322\017\254\162\223\362\277\213\324\120\263\371\025\120\233\231 +\365\024\331\373\213\221\243\062\046\046\240\370\337\073\140\201 +\206\203\171\133\053\353\023\075\051\072\301\155\335\275\236\216 +\207\326\112\256\064\227\005\356\024\246\366\334\070\176\112\351 +\044\124\007\075\227\150\067\106\153\015\307\250\041\257\023\124 +\344\011\152\361\115\106\012\311\135\373\233\117\275\336\373\267 +\124\313\270\070\234\247\071\373\152\055\300\173\215\253\245\247 +\127\354\112\222\212\063\305\341\040\134\163\330\220\222\053\200 +\325\017\206\030\151\174\071\117\204\206\274\367\114\133\363\325 +\264\312\240\302\360\067\042\312\171\122\037\123\346\252\363\220 +\260\073\335\362\050\375\254\353\305\006\044\240\311\324\057\017 +\130\375\265\236\354\017\317\262\131\320\242\004\172\070\152\256 +\162\373\275\360\045\142\224\011\247\005\013\002\003\001\000\001 +\243\202\001\141\060\202\001\135\060\110\006\003\125\035\040\004 +\101\060\077\060\075\006\004\125\035\040\000\060\065\060\063\006 +\010\053\006\001\005\005\007\002\001\026\047\150\164\164\160\072 +\057\057\167\167\167\056\144\151\147\151\156\157\164\141\162\056 +\156\154\057\143\160\163\057\160\153\151\157\166\145\162\150\145 +\151\144\060\017\006\003\125\035\023\001\001\377\004\005\060\003 +\001\001\377\060\016\006\003\125\035\017\001\001\377\004\004\003 +\002\001\006\060\201\205\006\003\125\035\043\004\176\060\174\200 +\024\071\020\213\111\222\134\333\141\022\040\315\111\235\032\216 +\332\234\147\100\271\241\136\244\134\060\132\061\013\060\011\006 +\003\125\004\006\023\002\116\114\061\036\060\034\006\003\125\004 +\012\014\025\123\164\141\141\164\040\144\145\162\040\116\145\144 +\145\162\154\141\156\144\145\156\061\053\060\051\006\003\125\004 +\003\014\042\123\164\141\141\164\040\144\145\162\040\116\145\144 +\145\162\154\141\156\144\145\156\040\122\157\157\164\040\103\101 +\040\055\040\107\062\202\004\000\230\226\364\060\111\006\003\125 +\035\037\004\102\060\100\060\076\240\074\240\072\206\070\150\164 +\164\160\072\057\057\143\162\154\056\160\153\151\157\166\145\162 +\150\145\151\144\056\156\154\057\104\157\155\117\162\147\141\156 +\151\163\141\164\151\145\114\141\164\145\163\164\103\122\114\055 +\107\062\056\143\162\154\060\035\006\003\125\035\016\004\026\004 +\024\274\135\224\073\331\253\173\003\045\163\141\302\333\055\356 +\374\253\217\145\241\060\015\006\011\052\206\110\206\367\015\001 +\001\013\005\000\003\202\002\001\000\217\374\055\114\267\331\055 +\325\037\275\357\313\364\267\150\027\165\235\116\325\367\335\234 +\361\052\046\355\237\242\266\034\003\325\123\263\354\010\317\064 +\342\343\303\364\265\026\057\310\303\276\327\323\163\253\000\066 +\371\032\112\176\326\143\351\136\106\272\245\266\216\025\267\243 +\052\330\103\035\357\135\310\037\201\205\263\213\367\377\074\364 +\331\364\106\010\077\234\274\035\240\331\250\114\315\045\122\116 +\012\261\040\367\037\351\103\331\124\106\201\023\232\300\136\164 +\154\052\230\062\352\374\167\273\015\245\242\061\230\042\176\174 +\174\347\332\244\255\354\267\056\032\031\161\370\110\120\332\103 +\217\054\204\335\301\100\047\343\265\360\025\116\226\324\370\134 +\343\206\051\106\053\327\073\007\353\070\177\310\206\127\227\323 +\357\052\063\304\027\120\325\144\151\153\053\153\105\136\135\057 +\027\312\132\116\317\303\327\071\074\365\073\237\106\271\233\347 +\016\111\227\235\326\325\343\033\017\352\217\001\116\232\023\224 +\131\012\002\007\110\113\032\140\253\177\117\355\013\330\125\015 +\150\157\125\234\151\145\025\102\354\300\334\335\154\254\303\026 +\316\013\035\126\233\244\304\304\322\056\340\017\342\104\047\053 +\120\151\244\334\142\350\212\041\051\102\154\314\000\072\226\166 +\233\357\100\300\244\136\167\204\062\154\046\052\071\146\256\135 +\343\271\271\262\054\150\037\036\232\220\003\071\360\252\263\244 +\314\111\213\030\064\351\067\311\173\051\307\204\174\157\104\025 +\057\354\141\131\004\311\105\313\242\326\122\242\174\177\051\222 +\326\112\305\213\102\250\324\376\352\330\307\207\043\030\344\235 +\172\175\163\100\122\230\240\256\156\343\005\077\005\017\340\245 +\306\155\115\355\203\067\210\234\307\363\334\102\232\152\266\327 +\041\111\066\167\362\357\030\117\305\160\331\236\351\336\267\053 +\213\364\274\176\050\337\015\100\311\205\134\256\235\305\061\377 +\320\134\016\265\250\176\360\351\057\272\257\210\256\345\265\321 +\130\245\257\234\161\247\051\001\220\203\151\067\202\005\272\374 +\011\301\010\156\214\170\073\303\063\002\200\077\104\205\010\035 +\337\125\126\010\255\054\205\055\135\261\003\341\256\252\164\305 +\244\363\116\272\067\230\173\202\271 +END + +# Trust for Certificate "Explicitly Distrusted DigiNotar PKIoverheid G2" +CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "Explicitly Distrusted DigiNotar PKIoverheid G2" +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\325\362\127\251\277\055\320\077\213\106\127\371\053\311\244\306 +\222\341\102\102 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\056\141\242\321\170\316\356\277\131\063\260\043\024\017\224\034 +END +CKA_ISSUER MULTILINE_OCTAL +\060\132\061\013\060\011\006\003\125\004\006\023\002\116\114\061 +\027\060\025\006\003\125\004\012\014\016\104\151\147\151\116\157 +\164\141\162\040\102\056\126\056\061\062\060\060\006\003\125\004 +\003\014\051\104\151\147\151\116\157\164\141\162\040\120\113\111 +\157\166\145\162\150\145\151\144\040\103\101\040\117\162\147\141 +\156\151\163\141\164\151\145\040\055\040\107\062 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\004\017\377\377\377 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_NOT_TRUSTED +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_NOT_TRUSTED +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_NOT_TRUSTED +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "Explicitly Distrusted Malaysian Digicert Sdn. Bhd. (cyb)" +# +CKA_CLASS CK_OBJECT_CLASS CKO_CERTIFICATE +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "Explicitly Distrusted Malaysian Digicert Sdn. Bhd. (cyb)" +CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509 +CKA_SUBJECT MULTILINE_OCTAL +\060\143\061\013\060\011\006\003\125\004\006\023\002\115\131\061 +\033\060\031\006\003\125\004\012\023\022\104\151\147\151\143\145 +\162\164\040\123\144\156\056\040\102\150\144\056\061\021\060\017 +\006\003\125\004\013\023\010\064\065\067\066\060\070\055\113\061 +\044\060\042\006\003\125\004\003\023\033\104\151\147\151\163\151 +\147\156\040\123\145\162\166\145\162\040\111\104\040\050\105\156 +\162\151\143\150\051 +END +CKA_ID UTF8 "0" +CKA_ISSUER MULTILINE_OCTAL +\060\165\061\013\060\011\006\003\125\004\006\023\002\125\123\061 +\030\060\026\006\003\125\004\012\023\017\107\124\105\040\103\157 +\162\160\157\162\141\164\151\157\156\061\047\060\045\006\003\125 +\004\013\023\036\107\124\105\040\103\171\142\145\162\124\162\165 +\163\164\040\123\157\154\165\164\151\157\156\163\054\040\111\156 +\143\056\061\043\060\041\006\003\125\004\003\023\032\107\124\105 +\040\103\171\142\145\162\124\162\165\163\164\040\107\154\157\142 +\141\154\040\122\157\157\164 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\006\007\377\377\377\377\377 +END +CKA_VALUE MULTILINE_OCTAL +\060\202\003\315\060\202\003\066\240\003\002\001\002\002\006\007 +\377\377\377\377\377\060\015\006\011\052\206\110\206\367\015\001 +\001\005\005\000\060\165\061\013\060\011\006\003\125\004\006\023 +\002\125\123\061\030\060\026\006\003\125\004\012\023\017\107\124 +\105\040\103\157\162\160\157\162\141\164\151\157\156\061\047\060 +\045\006\003\125\004\013\023\036\107\124\105\040\103\171\142\145 +\162\124\162\165\163\164\040\123\157\154\165\164\151\157\156\163 +\054\040\111\156\143\056\061\043\060\041\006\003\125\004\003\023 +\032\107\124\105\040\103\171\142\145\162\124\162\165\163\164\040 +\107\154\157\142\141\154\040\122\157\157\164\060\036\027\015\060 +\067\060\067\061\067\061\065\061\067\064\071\132\027\015\061\062 +\060\067\061\067\061\065\061\066\065\065\132\060\143\061\013\060 +\011\006\003\125\004\006\023\002\115\131\061\033\060\031\006\003 +\125\004\012\023\022\104\151\147\151\143\145\162\164\040\123\144 +\156\056\040\102\150\144\056\061\021\060\017\006\003\125\004\013 +\023\010\064\065\067\066\060\070\055\113\061\044\060\042\006\003 +\125\004\003\023\033\104\151\147\151\163\151\147\156\040\123\145 +\162\166\145\162\040\111\104\040\050\105\156\162\151\143\150\051 +\060\201\237\060\015\006\011\052\206\110\206\367\015\001\001\001 +\005\000\003\201\215\000\060\201\211\002\201\201\000\255\250\144 +\113\115\207\307\204\131\271\373\220\106\240\246\211\300\361\376 +\325\332\124\202\067\015\231\053\105\046\012\350\126\260\177\312 +\250\364\216\107\204\001\202\051\343\263\152\265\221\363\373\225 +\205\274\162\250\144\350\012\100\234\305\364\161\256\173\173\152 +\007\352\220\024\117\215\211\257\224\253\262\006\324\002\152\173 +\230\037\131\271\072\315\124\372\040\337\262\052\012\351\270\335 +\151\220\300\051\323\116\320\227\355\146\314\305\031\111\006\177 +\372\136\054\174\173\205\033\062\102\337\173\225\045\002\003\001 +\000\001\243\202\001\170\060\202\001\164\060\022\006\003\125\035 +\023\001\001\377\004\010\060\006\001\001\377\002\001\000\060\134 +\006\003\125\035\040\004\125\060\123\060\110\006\011\053\006\001 +\004\001\261\076\001\000\060\073\060\071\006\010\053\006\001\005 +\005\007\002\001\026\055\150\164\164\160\072\057\057\143\171\142 +\145\162\164\162\165\163\164\056\157\155\156\151\162\157\157\164 +\056\143\157\155\057\162\145\160\157\163\151\164\157\162\171\056 +\143\146\155\060\007\006\005\140\203\112\001\001\060\016\006\003 +\125\035\017\001\001\377\004\004\003\002\001\346\060\201\211\006 +\003\125\035\043\004\201\201\060\177\241\171\244\167\060\165\061 +\013\060\011\006\003\125\004\006\023\002\125\123\061\030\060\026 +\006\003\125\004\012\023\017\107\124\105\040\103\157\162\160\157 +\162\141\164\151\157\156\061\047\060\045\006\003\125\004\013\023 +\036\107\124\105\040\103\171\142\145\162\124\162\165\163\164\040 +\123\157\154\165\164\151\157\156\163\054\040\111\156\143\056\061 +\043\060\041\006\003\125\004\003\023\032\107\124\105\040\103\171 +\142\145\162\124\162\165\163\164\040\107\154\157\142\141\154\040 +\122\157\157\164\202\002\001\245\060\105\006\003\125\035\037\004 +\076\060\074\060\072\240\070\240\066\206\064\150\164\164\160\072 +\057\057\167\167\167\056\160\165\142\154\151\143\055\164\162\165 +\163\164\056\143\157\155\057\143\147\151\055\142\151\156\057\103 +\122\114\057\062\060\061\070\057\143\144\160\056\143\162\154\060 +\035\006\003\125\035\016\004\026\004\024\306\026\223\116\026\027 +\354\026\256\214\224\166\363\206\155\305\164\156\204\167\060\015 +\006\011\052\206\110\206\367\015\001\001\005\005\000\003\201\201 +\000\166\000\173\246\170\053\146\035\216\136\066\306\244\216\005 +\362\043\222\174\223\147\323\364\300\012\175\213\055\331\352\325 +\157\032\363\341\112\051\132\042\204\115\120\057\113\014\362\377 +\205\302\173\125\324\104\202\276\155\254\147\216\274\264\037\222 +\234\121\200\032\024\366\156\253\141\210\013\255\034\177\367\113 +\120\121\326\145\033\246\107\161\025\136\260\161\363\065\024\362 +\067\275\143\310\325\360\223\132\064\137\330\075\350\135\367\305 +\036\300\345\317\037\206\044\251\074\007\146\315\301\322\066\143 +\131 +END + +# Trust for Certificate "Explicitly Distrusted Malaysian Digicert Sdn. Bhd. (cyb)" +CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "Explicitly Distrusted Malaysian Digicert Sdn. Bhd. (cyb)" +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\125\120\257\354\277\350\303\255\304\013\343\255\014\247\344\025 +\214\071\131\117 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\322\336\256\120\244\230\055\157\067\267\206\122\310\055\113\152 +END +CKA_ISSUER MULTILINE_OCTAL +\060\165\061\013\060\011\006\003\125\004\006\023\002\125\123\061 +\030\060\026\006\003\125\004\012\023\017\107\124\105\040\103\157 +\162\160\157\162\141\164\151\157\156\061\047\060\045\006\003\125 +\004\013\023\036\107\124\105\040\103\171\142\145\162\124\162\165 +\163\164\040\123\157\154\165\164\151\157\156\163\054\040\111\156 +\143\056\061\043\060\041\006\003\125\004\003\023\032\107\124\105 +\040\103\171\142\145\162\124\162\165\163\164\040\107\154\157\142 +\141\154\040\122\157\157\164 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\006\007\377\377\377\377\377 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_NOT_TRUSTED +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_NOT_TRUSTED +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_NOT_TRUSTED +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "Explicitly Distrusted Malaysian Digicert Sdn. Bhd. (en)" +# +CKA_CLASS CK_OBJECT_CLASS CKO_CERTIFICATE +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "Explicitly Distrusted Malaysian Digicert Sdn. Bhd. (en)" +CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509 +CKA_SUBJECT MULTILINE_OCTAL +\060\145\061\013\060\011\006\003\125\004\006\023\002\115\131\061 +\033\060\031\006\003\125\004\012\023\022\104\151\147\151\143\145 +\162\164\040\123\144\156\056\040\102\150\144\056\061\021\060\017 +\006\003\125\004\013\023\010\064\065\067\066\060\070\055\113\061 +\046\060\044\006\003\125\004\003\023\035\104\151\147\151\163\151 +\147\156\040\123\145\162\166\145\162\040\111\104\040\055\040\050 +\105\156\162\151\143\150\051 +END +CKA_ID UTF8 "0" +CKA_ISSUER MULTILINE_OCTAL +\060\201\264\061\024\060\022\006\003\125\004\012\023\013\105\156 +\164\162\165\163\164\056\156\145\164\061\100\060\076\006\003\125 +\004\013\024\067\167\167\167\056\145\156\164\162\165\163\164\056 +\156\145\164\057\103\120\123\137\062\060\064\070\040\151\156\143 +\157\162\160\056\040\142\171\040\162\145\146\056\040\050\154\151 +\155\151\164\163\040\154\151\141\142\056\051\061\045\060\043\006 +\003\125\004\013\023\034\050\143\051\040\061\071\071\071\040\105 +\156\164\162\165\163\164\056\156\145\164\040\114\151\155\151\164 +\145\144\061\063\060\061\006\003\125\004\003\023\052\105\156\164 +\162\165\163\164\056\156\145\164\040\103\145\162\164\151\146\151 +\143\141\164\151\157\156\040\101\165\164\150\157\162\151\164\171 +\040\050\062\060\064\070\051 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\006\007\377\377\377\377\377 +END +CKA_VALUE MULTILINE_OCTAL +\060\202\004\320\060\202\003\270\240\003\002\001\002\002\006\007 +\377\377\377\377\377\060\015\006\011\052\206\110\206\367\015\001 +\001\005\005\000\060\201\264\061\024\060\022\006\003\125\004\012 +\023\013\105\156\164\162\165\163\164\056\156\145\164\061\100\060 +\076\006\003\125\004\013\024\067\167\167\167\056\145\156\164\162 +\165\163\164\056\156\145\164\057\103\120\123\137\062\060\064\070 +\040\151\156\143\157\162\160\056\040\142\171\040\162\145\146\056 +\040\050\154\151\155\151\164\163\040\154\151\141\142\056\051\061 +\045\060\043\006\003\125\004\013\023\034\050\143\051\040\061\071 +\071\071\040\105\156\164\162\165\163\164\056\156\145\164\040\114 +\151\155\151\164\145\144\061\063\060\061\006\003\125\004\003\023 +\052\105\156\164\162\165\163\164\056\156\145\164\040\103\145\162 +\164\151\146\151\143\141\164\151\157\156\040\101\165\164\150\157 +\162\151\164\171\040\050\062\060\064\070\051\060\036\027\015\061 +\060\060\067\061\066\061\067\062\063\063\070\132\027\015\061\065 +\060\067\061\066\061\067\065\063\063\070\132\060\145\061\013\060 +\011\006\003\125\004\006\023\002\115\131\061\033\060\031\006\003 +\125\004\012\023\022\104\151\147\151\143\145\162\164\040\123\144 +\156\056\040\102\150\144\056\061\021\060\017\006\003\125\004\013 +\023\010\064\065\067\066\060\070\055\113\061\046\060\044\006\003 +\125\004\003\023\035\104\151\147\151\163\151\147\156\040\123\145 +\162\166\145\162\040\111\104\040\055\040\050\105\156\162\151\143 +\150\051\060\202\001\042\060\015\006\011\052\206\110\206\367\015 +\001\001\001\005\000\003\202\001\017\000\060\202\001\012\002\202 +\001\001\000\305\211\344\364\015\006\100\222\131\307\032\263\065 +\321\016\114\052\063\371\370\257\312\236\177\356\271\247\155\140 +\364\124\350\157\325\233\363\033\143\061\004\150\162\321\064\026 +\214\264\027\054\227\336\163\305\330\220\025\240\032\053\365\313 +\263\110\206\104\360\035\210\114\316\101\102\032\357\365\014\336 +\376\100\332\071\040\367\006\125\072\152\235\106\301\322\157\245 +\262\310\127\076\051\243\234\340\351\205\167\146\350\230\247\044 +\176\276\300\131\040\345\104\157\266\127\330\276\316\302\145\167 +\130\306\141\101\321\164\004\310\177\111\102\305\162\251\162\026 +\356\214\335\022\135\264\112\324\321\257\120\267\330\252\165\166 +\150\255\076\135\252\060\155\141\250\253\020\133\076\023\277\063 +\340\257\104\235\070\042\133\357\114\057\246\161\046\025\046\312 +\050\214\331\372\216\216\251\242\024\065\342\233\044\210\264\364 +\177\205\235\203\117\007\241\266\024\220\066\304\064\034\215\046 +\141\155\023\157\170\276\350\217\047\307\113\204\226\243\206\150 +\014\043\276\013\354\214\224\000\251\004\212\023\220\367\337\205 +\154\014\261\002\003\001\000\001\243\202\001\064\060\202\001\060 +\060\016\006\003\125\035\017\001\001\377\004\004\003\002\001\006 +\060\022\006\003\125\035\023\001\001\377\004\010\060\006\001\001 +\377\002\001\000\060\047\006\003\125\035\045\004\040\060\036\006 +\010\053\006\001\005\005\007\003\001\006\010\053\006\001\005\005 +\007\003\002\006\010\053\006\001\005\005\007\003\004\060\063\006 +\010\053\006\001\005\005\007\001\001\004\047\060\045\060\043\006 +\010\053\006\001\005\005\007\060\001\206\027\150\164\164\160\072 +\057\057\157\143\163\160\056\145\156\164\162\165\163\164\056\156 +\145\164\060\104\006\003\125\035\040\004\075\060\073\060\071\006 +\005\140\203\112\001\001\060\060\060\056\006\010\053\006\001\005 +\005\007\002\001\026\042\150\164\164\160\072\057\057\167\167\167 +\056\144\151\147\151\143\145\162\164\056\143\157\155\056\155\171 +\057\143\160\163\056\150\164\155\060\062\006\003\125\035\037\004 +\053\060\051\060\047\240\045\240\043\206\041\150\164\164\160\072 +\057\057\143\162\154\056\145\156\164\162\165\163\164\056\156\145 +\164\057\062\060\064\070\143\141\056\143\162\154\060\021\006\003 +\125\035\016\004\012\004\010\114\116\314\045\050\003\051\201\060 +\037\006\003\125\035\043\004\030\060\026\200\024\125\344\201\321 +\021\200\276\330\211\271\010\243\061\371\241\044\011\026\271\160 +\060\015\006\011\052\206\110\206\367\015\001\001\005\005\000\003 +\202\001\001\000\227\114\357\112\072\111\254\162\374\060\040\153 +\264\051\133\247\305\225\004\220\371\062\325\302\205\152\336\003 +\241\067\371\211\000\260\132\254\125\176\333\103\065\377\311\001 +\370\121\276\314\046\312\310\152\244\304\124\076\046\036\347\014 +\243\315\227\147\224\335\246\102\353\134\315\217\071\171\153\063 +\171\041\006\171\372\202\104\025\231\314\301\267\071\323\106\142 +\174\262\160\353\157\316\040\252\076\031\267\351\164\202\234\264 +\245\113\115\141\000\067\344\207\322\362\024\072\144\174\270\251 +\173\141\340\223\042\347\325\237\076\107\346\066\166\240\123\330 +\000\003\072\017\265\063\376\226\312\323\322\202\072\056\335\327 +\110\341\344\247\151\314\034\351\231\112\347\312\160\105\327\013 +\007\016\232\165\033\320\057\222\157\366\244\007\303\275\034\113 +\246\204\266\175\250\232\251\322\247\051\361\013\127\151\036\227 +\127\046\354\053\103\254\324\105\203\005\000\351\343\360\106\100 +\007\372\352\261\121\163\223\034\245\335\123\021\067\310\052\247 +\025\047\035\264\252\314\177\252\061\060\374\270\105\237\110\011 +\355\020\342\305 +END + +# Trust for Certificate "Explicitly Distrusted Malaysian Digicert Sdn. Bhd. (en)" +CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "Explicitly Distrusted Malaysian Digicert Sdn. Bhd. (en)" +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\153\074\073\200\255\312\246\272\212\237\124\246\172\355\022\151 +\005\155\061\046 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\327\151\141\177\065\017\234\106\243\252\353\370\125\374\204\362 +END +CKA_ISSUER MULTILINE_OCTAL +\060\201\264\061\024\060\022\006\003\125\004\012\023\013\105\156 +\164\162\165\163\164\056\156\145\164\061\100\060\076\006\003\125 +\004\013\024\067\167\167\167\056\145\156\164\162\165\163\164\056 +\156\145\164\057\103\120\123\137\062\060\064\070\040\151\156\143 +\157\162\160\056\040\142\171\040\162\145\146\056\040\050\154\151 +\155\151\164\163\040\154\151\141\142\056\051\061\045\060\043\006 +\003\125\004\013\023\034\050\143\051\040\061\071\071\071\040\105 +\156\164\162\165\163\164\056\156\145\164\040\114\151\155\151\164 +\145\144\061\063\060\061\006\003\125\004\003\023\052\105\156\164 +\162\165\163\164\056\156\145\164\040\103\145\162\164\151\146\151 +\143\141\164\151\157\156\040\101\165\164\150\157\162\151\164\171 +\040\050\062\060\064\070\051 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\006\007\377\377\377\377\377 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_NOT_TRUSTED +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_NOT_TRUSTED +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_NOT_TRUSTED +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + + +# +# Certificate "Security Communication RootCA2" +# +CKA_CLASS CK_OBJECT_CLASS CKO_CERTIFICATE +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "Security Communication RootCA2" +CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509 +CKA_SUBJECT MULTILINE_OCTAL +\060\135\061\013\060\011\006\003\125\004\006\023\002\112\120\061 +\045\060\043\006\003\125\004\012\023\034\123\105\103\117\115\040 +\124\162\165\163\164\040\123\171\163\164\145\155\163\040\103\117 +\056\054\114\124\104\056\061\047\060\045\006\003\125\004\013\023 +\036\123\145\143\165\162\151\164\171\040\103\157\155\155\165\156 +\151\143\141\164\151\157\156\040\122\157\157\164\103\101\062 +END +CKA_ID UTF8 "0" +CKA_ISSUER MULTILINE_OCTAL +\060\135\061\013\060\011\006\003\125\004\006\023\002\112\120\061 +\045\060\043\006\003\125\004\012\023\034\123\105\103\117\115\040 +\124\162\165\163\164\040\123\171\163\164\145\155\163\040\103\117 +\056\054\114\124\104\056\061\047\060\045\006\003\125\004\013\023 +\036\123\145\143\165\162\151\164\171\040\103\157\155\155\165\156 +\151\143\141\164\151\157\156\040\122\157\157\164\103\101\062 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\001\000 +END +CKA_VALUE MULTILINE_OCTAL +\060\202\003\167\060\202\002\137\240\003\002\001\002\002\001\000 +\060\015\006\011\052\206\110\206\367\015\001\001\013\005\000\060 +\135\061\013\060\011\006\003\125\004\006\023\002\112\120\061\045 +\060\043\006\003\125\004\012\023\034\123\105\103\117\115\040\124 +\162\165\163\164\040\123\171\163\164\145\155\163\040\103\117\056 +\054\114\124\104\056\061\047\060\045\006\003\125\004\013\023\036 +\123\145\143\165\162\151\164\171\040\103\157\155\155\165\156\151 +\143\141\164\151\157\156\040\122\157\157\164\103\101\062\060\036 +\027\015\060\071\060\065\062\071\060\065\060\060\063\071\132\027 +\015\062\071\060\065\062\071\060\065\060\060\063\071\132\060\135 +\061\013\060\011\006\003\125\004\006\023\002\112\120\061\045\060 +\043\006\003\125\004\012\023\034\123\105\103\117\115\040\124\162 +\165\163\164\040\123\171\163\164\145\155\163\040\103\117\056\054 +\114\124\104\056\061\047\060\045\006\003\125\004\013\023\036\123 +\145\143\165\162\151\164\171\040\103\157\155\155\165\156\151\143 +\141\164\151\157\156\040\122\157\157\164\103\101\062\060\202\001 +\042\060\015\006\011\052\206\110\206\367\015\001\001\001\005\000 +\003\202\001\017\000\060\202\001\012\002\202\001\001\000\320\025 +\071\122\261\122\263\272\305\131\202\304\135\122\256\072\103\145 +\200\113\307\362\226\274\333\066\227\326\246\144\214\250\136\360 +\343\012\034\367\337\227\075\113\256\366\135\354\041\265\101\253 +\315\271\176\166\237\276\371\076\066\064\240\073\301\366\061\021 +\105\164\223\075\127\200\305\371\211\231\312\345\253\152\324\265 +\332\101\220\020\301\326\326\102\211\302\277\364\070\022\225\114 +\124\005\367\066\344\105\203\173\024\145\326\334\014\115\321\336 +\176\014\253\073\304\025\276\072\126\246\132\157\166\151\122\251 +\172\271\310\353\152\232\135\122\320\055\012\153\065\026\011\020 +\204\320\152\312\072\006\000\067\107\344\176\127\117\077\213\353 +\147\270\210\252\305\276\123\125\262\221\304\175\271\260\205\031 +\006\170\056\333\141\032\372\205\365\112\221\241\347\026\325\216 +\242\071\337\224\270\160\037\050\077\213\374\100\136\143\203\074 +\203\052\032\231\153\317\336\131\152\073\374\157\026\327\037\375 +\112\020\353\116\202\026\072\254\047\014\123\361\255\325\044\260 +\153\003\120\301\055\074\026\335\104\064\047\032\165\373\002\003 +\001\000\001\243\102\060\100\060\035\006\003\125\035\016\004\026 +\004\024\012\205\251\167\145\005\230\174\100\201\370\017\227\054 +\070\361\012\354\074\317\060\016\006\003\125\035\017\001\001\377 +\004\004\003\002\001\006\060\017\006\003\125\035\023\001\001\377 +\004\005\060\003\001\001\377\060\015\006\011\052\206\110\206\367 +\015\001\001\013\005\000\003\202\001\001\000\114\072\243\104\254 +\271\105\261\307\223\176\310\013\012\102\337\144\352\034\356\131 +\154\010\272\211\137\152\312\112\225\236\172\217\007\305\332\105 +\162\202\161\016\072\322\314\157\247\264\241\043\273\366\044\237 +\313\027\376\214\246\316\302\322\333\314\215\374\161\374\003\051 +\301\154\135\063\137\144\266\145\073\211\157\030\166\170\365\334 +\242\110\037\031\077\216\223\353\361\372\027\356\315\116\343\004 +\022\125\326\345\344\335\373\076\005\174\342\035\136\306\247\274 +\227\117\150\072\365\351\056\012\103\266\257\127\134\142\150\174 +\267\375\243\212\204\240\254\142\276\053\011\207\064\360\152\001 +\273\233\051\126\074\376\000\067\317\043\154\361\116\252\266\164 +\106\022\154\221\356\064\325\354\232\221\347\104\276\220\061\162 +\325\111\002\366\002\345\364\037\353\174\331\226\125\251\377\354 +\212\371\231\107\377\065\132\002\252\004\313\212\133\207\161\051 +\221\275\244\264\172\015\275\232\365\127\043\000\007\041\027\077 +\112\071\321\005\111\013\247\266\067\201\245\135\214\252\063\136 +\201\050\174\247\175\047\353\000\256\215\067 +END + +# Trust for Certificate "Security Communication RootCA2" +CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "Security Communication RootCA2" +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\137\073\214\362\370\020\263\175\170\264\316\354\031\031\303\163 +\064\271\307\164 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\154\071\175\244\016\125\131\262\077\326\101\261\022\120\336\103 +END +CKA_ISSUER MULTILINE_OCTAL +\060\135\061\013\060\011\006\003\125\004\006\023\002\112\120\061 +\045\060\043\006\003\125\004\012\023\034\123\105\103\117\115\040 +\124\162\165\163\164\040\123\171\163\164\145\155\163\040\103\117 +\056\054\114\124\104\056\061\047\060\045\006\003\125\004\013\023 +\036\123\145\143\165\162\151\164\171\040\103\157\155\155\165\156 +\151\143\141\164\151\157\156\040\122\157\157\164\103\101\062 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\001\000 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "EC-ACC" +# +CKA_CLASS CK_OBJECT_CLASS CKO_CERTIFICATE +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "EC-ACC" +CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509 +CKA_SUBJECT MULTILINE_OCTAL +\060\201\363\061\013\060\011\006\003\125\004\006\023\002\105\123 +\061\073\060\071\006\003\125\004\012\023\062\101\147\145\156\143 +\151\141\040\103\141\164\141\154\141\156\141\040\144\145\040\103 +\145\162\164\151\146\151\143\141\143\151\157\040\050\116\111\106 +\040\121\055\060\070\060\061\061\067\066\055\111\051\061\050\060 +\046\006\003\125\004\013\023\037\123\145\162\166\145\151\163\040 +\120\165\142\154\151\143\163\040\144\145\040\103\145\162\164\151 +\146\151\143\141\143\151\157\061\065\060\063\006\003\125\004\013 +\023\054\126\145\147\145\165\040\150\164\164\160\163\072\057\057 +\167\167\167\056\143\141\164\143\145\162\164\056\156\145\164\057 +\166\145\162\141\162\162\145\154\040\050\143\051\060\063\061\065 +\060\063\006\003\125\004\013\023\054\112\145\162\141\162\161\165 +\151\141\040\105\156\164\151\164\141\164\163\040\144\145\040\103 +\145\162\164\151\146\151\143\141\143\151\157\040\103\141\164\141 +\154\141\156\145\163\061\017\060\015\006\003\125\004\003\023\006 +\105\103\055\101\103\103 +END +CKA_ID UTF8 "0" +CKA_ISSUER MULTILINE_OCTAL +\060\201\363\061\013\060\011\006\003\125\004\006\023\002\105\123 +\061\073\060\071\006\003\125\004\012\023\062\101\147\145\156\143 +\151\141\040\103\141\164\141\154\141\156\141\040\144\145\040\103 +\145\162\164\151\146\151\143\141\143\151\157\040\050\116\111\106 +\040\121\055\060\070\060\061\061\067\066\055\111\051\061\050\060 +\046\006\003\125\004\013\023\037\123\145\162\166\145\151\163\040 +\120\165\142\154\151\143\163\040\144\145\040\103\145\162\164\151 +\146\151\143\141\143\151\157\061\065\060\063\006\003\125\004\013 +\023\054\126\145\147\145\165\040\150\164\164\160\163\072\057\057 +\167\167\167\056\143\141\164\143\145\162\164\056\156\145\164\057 +\166\145\162\141\162\162\145\154\040\050\143\051\060\063\061\065 +\060\063\006\003\125\004\013\023\054\112\145\162\141\162\161\165 +\151\141\040\105\156\164\151\164\141\164\163\040\144\145\040\103 +\145\162\164\151\146\151\143\141\143\151\157\040\103\141\164\141 +\154\141\156\145\163\061\017\060\015\006\003\125\004\003\023\006 +\105\103\055\101\103\103 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\020\356\053\075\353\324\041\336\024\250\142\254\004\363\335 +\304\001 +END +CKA_VALUE MULTILINE_OCTAL +\060\202\005\126\060\202\004\076\240\003\002\001\002\002\020\356 +\053\075\353\324\041\336\024\250\142\254\004\363\335\304\001\060 +\015\006\011\052\206\110\206\367\015\001\001\005\005\000\060\201 +\363\061\013\060\011\006\003\125\004\006\023\002\105\123\061\073 +\060\071\006\003\125\004\012\023\062\101\147\145\156\143\151\141 +\040\103\141\164\141\154\141\156\141\040\144\145\040\103\145\162 +\164\151\146\151\143\141\143\151\157\040\050\116\111\106\040\121 +\055\060\070\060\061\061\067\066\055\111\051\061\050\060\046\006 +\003\125\004\013\023\037\123\145\162\166\145\151\163\040\120\165 +\142\154\151\143\163\040\144\145\040\103\145\162\164\151\146\151 +\143\141\143\151\157\061\065\060\063\006\003\125\004\013\023\054 +\126\145\147\145\165\040\150\164\164\160\163\072\057\057\167\167 +\167\056\143\141\164\143\145\162\164\056\156\145\164\057\166\145 +\162\141\162\162\145\154\040\050\143\051\060\063\061\065\060\063 +\006\003\125\004\013\023\054\112\145\162\141\162\161\165\151\141 +\040\105\156\164\151\164\141\164\163\040\144\145\040\103\145\162 +\164\151\146\151\143\141\143\151\157\040\103\141\164\141\154\141 +\156\145\163\061\017\060\015\006\003\125\004\003\023\006\105\103 +\055\101\103\103\060\036\027\015\060\063\060\061\060\067\062\063 +\060\060\060\060\132\027\015\063\061\060\061\060\067\062\062\065 +\071\065\071\132\060\201\363\061\013\060\011\006\003\125\004\006 +\023\002\105\123\061\073\060\071\006\003\125\004\012\023\062\101 +\147\145\156\143\151\141\040\103\141\164\141\154\141\156\141\040 +\144\145\040\103\145\162\164\151\146\151\143\141\143\151\157\040 +\050\116\111\106\040\121\055\060\070\060\061\061\067\066\055\111 +\051\061\050\060\046\006\003\125\004\013\023\037\123\145\162\166 +\145\151\163\040\120\165\142\154\151\143\163\040\144\145\040\103 +\145\162\164\151\146\151\143\141\143\151\157\061\065\060\063\006 +\003\125\004\013\023\054\126\145\147\145\165\040\150\164\164\160 +\163\072\057\057\167\167\167\056\143\141\164\143\145\162\164\056 +\156\145\164\057\166\145\162\141\162\162\145\154\040\050\143\051 +\060\063\061\065\060\063\006\003\125\004\013\023\054\112\145\162 +\141\162\161\165\151\141\040\105\156\164\151\164\141\164\163\040 +\144\145\040\103\145\162\164\151\146\151\143\141\143\151\157\040 +\103\141\164\141\154\141\156\145\163\061\017\060\015\006\003\125 +\004\003\023\006\105\103\055\101\103\103\060\202\001\042\060\015 +\006\011\052\206\110\206\367\015\001\001\001\005\000\003\202\001 +\017\000\060\202\001\012\002\202\001\001\000\263\042\307\117\342 +\227\102\225\210\107\203\100\366\035\027\363\203\163\044\036\121 +\363\230\212\303\222\270\377\100\220\005\160\207\140\311\000\251 +\265\224\145\031\042\025\027\302\103\154\146\104\232\015\004\076 +\071\157\245\113\172\252\143\267\212\104\235\331\143\221\204\146 +\340\050\017\272\102\343\156\216\367\024\047\223\151\356\221\016 +\243\137\016\261\353\146\242\162\117\022\023\206\145\172\076\333 +\117\007\364\247\011\140\332\072\102\231\307\262\177\263\026\225 +\034\307\371\064\265\224\205\325\231\136\240\110\240\176\347\027 +\145\270\242\165\270\036\363\345\102\175\257\355\363\212\110\144 +\135\202\024\223\330\300\344\377\263\120\162\362\166\366\263\135 +\102\120\171\320\224\076\153\014\000\276\330\153\016\116\052\354 +\076\322\314\202\242\030\145\063\023\167\236\232\135\032\023\330 +\303\333\075\310\227\172\356\160\355\247\346\174\333\161\317\055 +\224\142\337\155\326\365\070\276\077\245\205\012\031\270\250\330 +\011\165\102\160\304\352\357\313\016\310\064\250\022\042\230\014 +\270\023\224\266\113\354\360\320\220\347\047\002\003\001\000\001 +\243\201\343\060\201\340\060\035\006\003\125\035\021\004\026\060 +\024\201\022\145\143\137\141\143\143\100\143\141\164\143\145\162 +\164\056\156\145\164\060\017\006\003\125\035\023\001\001\377\004 +\005\060\003\001\001\377\060\016\006\003\125\035\017\001\001\377 +\004\004\003\002\001\006\060\035\006\003\125\035\016\004\026\004 +\024\240\303\213\104\252\067\245\105\277\227\200\132\321\361\170 +\242\233\351\135\215\060\177\006\003\125\035\040\004\170\060\166 +\060\164\006\013\053\006\001\004\001\365\170\001\003\001\012\060 +\145\060\054\006\010\053\006\001\005\005\007\002\001\026\040\150 +\164\164\160\163\072\057\057\167\167\167\056\143\141\164\143\145 +\162\164\056\156\145\164\057\166\145\162\141\162\162\145\154\060 +\065\006\010\053\006\001\005\005\007\002\002\060\051\032\047\126 +\145\147\145\165\040\150\164\164\160\163\072\057\057\167\167\167 +\056\143\141\164\143\145\162\164\056\156\145\164\057\166\145\162 +\141\162\162\145\154\040\060\015\006\011\052\206\110\206\367\015 +\001\001\005\005\000\003\202\001\001\000\240\110\133\202\001\366 +\115\110\270\071\125\065\234\200\172\123\231\325\132\377\261\161 +\073\314\071\011\224\136\326\332\357\276\001\133\135\323\036\330 +\375\175\117\315\240\101\340\064\223\277\313\342\206\234\067\222 +\220\126\034\334\353\051\005\345\304\236\307\065\337\212\014\315 +\305\041\103\351\252\210\345\065\300\031\102\143\132\002\136\244 +\110\030\072\205\157\334\235\274\077\235\234\301\207\270\172\141 +\010\351\167\013\177\160\253\172\335\331\227\054\144\036\205\277 +\274\164\226\241\303\172\022\354\014\032\156\203\014\074\350\162 +\106\237\373\110\325\136\227\346\261\241\370\344\357\106\045\224 +\234\211\333\151\070\276\354\134\016\126\307\145\121\345\120\210 +\210\277\102\325\053\075\345\371\272\236\056\263\312\364\163\222 +\002\013\276\114\146\353\040\376\271\313\265\231\177\346\266\023 +\372\312\113\115\331\356\123\106\006\073\306\116\255\223\132\201 +\176\154\052\113\152\005\105\214\362\041\244\061\220\207\154\145 +\234\235\245\140\225\072\122\177\365\321\253\010\156\363\356\133 +\371\210\075\176\270\157\156\003\344\102 +END + +# Trust for Certificate "EC-ACC" +CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "EC-ACC" +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\050\220\072\143\133\122\200\372\346\167\114\013\155\247\326\272 +\246\112\362\350 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\353\365\235\051\015\141\371\102\037\174\302\272\155\343\025\011 +END +CKA_ISSUER MULTILINE_OCTAL +\060\201\363\061\013\060\011\006\003\125\004\006\023\002\105\123 +\061\073\060\071\006\003\125\004\012\023\062\101\147\145\156\143 +\151\141\040\103\141\164\141\154\141\156\141\040\144\145\040\103 +\145\162\164\151\146\151\143\141\143\151\157\040\050\116\111\106 +\040\121\055\060\070\060\061\061\067\066\055\111\051\061\050\060 +\046\006\003\125\004\013\023\037\123\145\162\166\145\151\163\040 +\120\165\142\154\151\143\163\040\144\145\040\103\145\162\164\151 +\146\151\143\141\143\151\157\061\065\060\063\006\003\125\004\013 +\023\054\126\145\147\145\165\040\150\164\164\160\163\072\057\057 +\167\167\167\056\143\141\164\143\145\162\164\056\156\145\164\057 +\166\145\162\141\162\162\145\154\040\050\143\051\060\063\061\065 +\060\063\006\003\125\004\013\023\054\112\145\162\141\162\161\165 +\151\141\040\105\156\164\151\164\141\164\163\040\144\145\040\103 +\145\162\164\151\146\151\143\141\143\151\157\040\103\141\164\141 +\154\141\156\145\163\061\017\060\015\006\003\125\004\003\023\006 +\105\103\055\101\103\103 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\020\356\053\075\353\324\041\336\024\250\142\254\004\363\335 +\304\001 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_MUST_VERIFY_TRUST +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_MUST_VERIFY_TRUST +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "Hellenic Academic and Research Institutions RootCA 2011" +# +CKA_CLASS CK_OBJECT_CLASS CKO_CERTIFICATE +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "Hellenic Academic and Research Institutions RootCA 2011" +CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509 +CKA_SUBJECT MULTILINE_OCTAL +\060\201\225\061\013\060\011\006\003\125\004\006\023\002\107\122 +\061\104\060\102\006\003\125\004\012\023\073\110\145\154\154\145 +\156\151\143\040\101\143\141\144\145\155\151\143\040\141\156\144 +\040\122\145\163\145\141\162\143\150\040\111\156\163\164\151\164 +\165\164\151\157\156\163\040\103\145\162\164\056\040\101\165\164 +\150\157\162\151\164\171\061\100\060\076\006\003\125\004\003\023 +\067\110\145\154\154\145\156\151\143\040\101\143\141\144\145\155 +\151\143\040\141\156\144\040\122\145\163\145\141\162\143\150\040 +\111\156\163\164\151\164\165\164\151\157\156\163\040\122\157\157 +\164\103\101\040\062\060\061\061 +END +CKA_ID UTF8 "0" +CKA_ISSUER MULTILINE_OCTAL +\060\201\225\061\013\060\011\006\003\125\004\006\023\002\107\122 +\061\104\060\102\006\003\125\004\012\023\073\110\145\154\154\145 +\156\151\143\040\101\143\141\144\145\155\151\143\040\141\156\144 +\040\122\145\163\145\141\162\143\150\040\111\156\163\164\151\164 +\165\164\151\157\156\163\040\103\145\162\164\056\040\101\165\164 +\150\157\162\151\164\171\061\100\060\076\006\003\125\004\003\023 +\067\110\145\154\154\145\156\151\143\040\101\143\141\144\145\155 +\151\143\040\141\156\144\040\122\145\163\145\141\162\143\150\040 +\111\156\163\164\151\164\165\164\151\157\156\163\040\122\157\157 +\164\103\101\040\062\060\061\061 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\001\000 +END +CKA_VALUE MULTILINE_OCTAL +\060\202\004\061\060\202\003\031\240\003\002\001\002\002\001\000 +\060\015\006\011\052\206\110\206\367\015\001\001\005\005\000\060 +\201\225\061\013\060\011\006\003\125\004\006\023\002\107\122\061 +\104\060\102\006\003\125\004\012\023\073\110\145\154\154\145\156 +\151\143\040\101\143\141\144\145\155\151\143\040\141\156\144\040 +\122\145\163\145\141\162\143\150\040\111\156\163\164\151\164\165 +\164\151\157\156\163\040\103\145\162\164\056\040\101\165\164\150 +\157\162\151\164\171\061\100\060\076\006\003\125\004\003\023\067 +\110\145\154\154\145\156\151\143\040\101\143\141\144\145\155\151 +\143\040\141\156\144\040\122\145\163\145\141\162\143\150\040\111 +\156\163\164\151\164\165\164\151\157\156\163\040\122\157\157\164 +\103\101\040\062\060\061\061\060\036\027\015\061\061\061\062\060 +\066\061\063\064\071\065\062\132\027\015\063\061\061\062\060\061 +\061\063\064\071\065\062\132\060\201\225\061\013\060\011\006\003 +\125\004\006\023\002\107\122\061\104\060\102\006\003\125\004\012 +\023\073\110\145\154\154\145\156\151\143\040\101\143\141\144\145 +\155\151\143\040\141\156\144\040\122\145\163\145\141\162\143\150 +\040\111\156\163\164\151\164\165\164\151\157\156\163\040\103\145 +\162\164\056\040\101\165\164\150\157\162\151\164\171\061\100\060 +\076\006\003\125\004\003\023\067\110\145\154\154\145\156\151\143 +\040\101\143\141\144\145\155\151\143\040\141\156\144\040\122\145 +\163\145\141\162\143\150\040\111\156\163\164\151\164\165\164\151 +\157\156\163\040\122\157\157\164\103\101\040\062\060\061\061\060 +\202\001\042\060\015\006\011\052\206\110\206\367\015\001\001\001 +\005\000\003\202\001\017\000\060\202\001\012\002\202\001\001\000 +\251\123\000\343\056\246\366\216\372\140\330\055\225\076\370\054 +\052\124\116\315\271\204\141\224\130\117\217\075\213\344\103\363 +\165\211\215\121\344\303\067\322\212\210\115\171\036\267\022\335 +\103\170\112\212\222\346\327\110\325\017\244\072\051\104\065\270 +\007\366\150\035\125\315\070\121\360\214\044\061\205\257\203\311 +\175\351\167\257\355\032\173\235\027\371\263\235\070\120\017\246 +\132\171\221\200\257\067\256\246\323\061\373\265\046\011\235\074 +\132\357\121\305\053\337\226\135\353\062\036\002\332\160\111\354 +\156\014\310\232\067\215\367\361\066\140\113\046\054\202\236\320 +\170\363\015\017\143\244\121\060\341\371\053\047\022\007\330\352 +\275\030\142\230\260\131\067\175\276\356\363\040\121\102\132\203 +\357\223\272\151\025\361\142\235\237\231\071\202\241\267\164\056 +\213\324\305\013\173\057\360\310\012\332\075\171\012\232\223\034 +\245\050\162\163\221\103\232\247\321\115\205\204\271\251\164\217 +\024\100\307\334\336\254\101\144\154\264\031\233\002\143\155\044 +\144\217\104\262\045\352\316\135\164\014\143\062\134\215\207\345 +\002\003\001\000\001\243\201\211\060\201\206\060\017\006\003\125 +\035\023\001\001\377\004\005\060\003\001\001\377\060\013\006\003 +\125\035\017\004\004\003\002\001\006\060\035\006\003\125\035\016 +\004\026\004\024\246\221\102\375\023\141\112\043\236\010\244\051 +\345\330\023\004\043\356\101\045\060\107\006\003\125\035\036\004 +\100\060\076\240\074\060\005\202\003\056\147\162\060\005\202\003 +\056\145\165\060\006\202\004\056\145\144\165\060\006\202\004\056 +\157\162\147\060\005\201\003\056\147\162\060\005\201\003\056\145 +\165\060\006\201\004\056\145\144\165\060\006\201\004\056\157\162 +\147\060\015\006\011\052\206\110\206\367\015\001\001\005\005\000 +\003\202\001\001\000\037\357\171\101\341\173\156\077\262\214\206 +\067\102\112\116\034\067\036\215\146\272\044\201\311\117\022\017 +\041\300\003\227\206\045\155\135\323\042\051\250\154\242\015\251 +\353\075\006\133\231\072\307\314\303\232\064\177\253\016\310\116 +\034\341\372\344\334\315\015\276\277\044\376\154\347\153\302\015 +\310\006\236\116\215\141\050\246\152\375\345\366\142\352\030\074 +\116\240\123\235\262\072\234\353\245\234\221\026\266\115\202\340 +\014\005\110\251\154\365\314\370\313\235\111\264\360\002\245\375 +\160\003\355\212\041\245\256\023\206\111\303\063\163\276\207\073 +\164\213\027\105\046\114\026\221\203\376\147\175\315\115\143\147 +\372\363\003\022\226\170\006\215\261\147\355\216\077\276\237\117 +\002\365\263\011\057\363\114\207\337\052\313\225\174\001\314\254 +\066\172\277\242\163\172\367\217\301\265\232\241\024\262\217\063 +\237\015\357\042\334\146\173\204\275\105\027\006\075\074\312\271 +\167\064\217\312\352\317\077\061\076\343\210\343\200\111\045\310 +\227\265\235\232\231\115\260\074\370\112\000\233\144\335\237\071 +\113\321\047\327\270 +END + +# Trust for Certificate "Hellenic Academic and Research Institutions RootCA 2011" +CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "Hellenic Academic and Research Institutions RootCA 2011" +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\376\105\145\233\171\003\133\230\241\141\265\121\056\254\332\130 +\011\110\042\115 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\163\237\114\113\163\133\171\351\372\272\034\357\156\313\325\311 +END +CKA_ISSUER MULTILINE_OCTAL +\060\201\225\061\013\060\011\006\003\125\004\006\023\002\107\122 +\061\104\060\102\006\003\125\004\012\023\073\110\145\154\154\145 +\156\151\143\040\101\143\141\144\145\155\151\143\040\141\156\144 +\040\122\145\163\145\141\162\143\150\040\111\156\163\164\151\164 +\165\164\151\157\156\163\040\103\145\162\164\056\040\101\165\164 +\150\157\162\151\164\171\061\100\060\076\006\003\125\004\003\023 +\067\110\145\154\154\145\156\151\143\040\101\143\141\144\145\155 +\151\143\040\141\156\144\040\122\145\163\145\141\162\143\150\040 +\111\156\163\164\151\164\165\164\151\157\156\163\040\122\157\157 +\164\103\101\040\062\060\061\061 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\001\000 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# Explicitly Distrust "MITM subCA 1 issued by Trustwave", Bug 724929 +# Issuer: E=ca@trustwave.com,CN="Trustwave Organization Issuing CA, Level 2",O="Trustwave Holdings, Inc.",L=Chicago,ST=Illinois,C=US +# Serial Number: 1800000005 (0x6b49d205) +# Not Before: Apr 7 15:37:15 2011 GMT +# Not After : Apr 4 15:37:15 2021 GMT +CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "MITM subCA 1 issued by Trustwave" +CKA_ISSUER MULTILINE_OCTAL +\060\201\253\061\013\060\011\006\003\125\004\006\023\002\125\123 +\061\021\060\017\006\003\125\004\010\023\010\111\154\154\151\156 +\157\151\163\061\020\060\016\006\003\125\004\007\023\007\103\150 +\151\143\141\147\157\061\041\060\037\006\003\125\004\012\023\030 +\124\162\165\163\164\167\141\166\145\040\110\157\154\144\151\156 +\147\163\054\040\111\156\143\056\061\063\060\061\006\003\125\004 +\003\023\052\124\162\165\163\164\167\141\166\145\040\117\162\147 +\141\156\151\172\141\164\151\157\156\040\111\163\163\165\151\156 +\147\040\103\101\054\040\114\145\166\145\154\040\062\061\037\060 +\035\006\011\052\206\110\206\367\015\001\011\001\026\020\143\141 +\100\164\162\165\163\164\167\141\166\145\056\143\157\155 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\004\153\111\322\005 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_NOT_TRUSTED +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_NOT_TRUSTED +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_NOT_TRUSTED +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# Explicitly Distrust "MITM subCA 2 issued by Trustwave", Bug 724929 +# Issuer: E=ca@trustwave.com,CN="Trustwave Organization Issuing CA, Level 2",O="Trustwave Holdings, Inc.",L=Chicago,ST=Illinois,C=US +# Serial Number: 1800000006 (0x6b49d206) +# Not Before: Apr 18 21:09:30 2011 GMT +# Not After : Apr 15 21:09:30 2021 GMT +CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "MITM subCA 2 issued by Trustwave" +CKA_ISSUER MULTILINE_OCTAL +\060\201\253\061\013\060\011\006\003\125\004\006\023\002\125\123 +\061\021\060\017\006\003\125\004\010\023\010\111\154\154\151\156 +\157\151\163\061\020\060\016\006\003\125\004\007\023\007\103\150 +\151\143\141\147\157\061\041\060\037\006\003\125\004\012\023\030 +\124\162\165\163\164\167\141\166\145\040\110\157\154\144\151\156 +\147\163\054\040\111\156\143\056\061\063\060\061\006\003\125\004 +\003\023\052\124\162\165\163\164\167\141\166\145\040\117\162\147 +\141\156\151\172\141\164\151\157\156\040\111\163\163\165\151\156 +\147\040\103\101\054\040\114\145\166\145\154\040\062\061\037\060 +\035\006\011\052\206\110\206\367\015\001\011\001\026\020\143\141 +\100\164\162\165\163\164\167\141\166\145\056\143\157\155 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\004\153\111\322\006 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_NOT_TRUSTED +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_NOT_TRUSTED +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_NOT_TRUSTED +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE diff --git a/win32/ext/openssl-wdk/mk-ca-bundle.pl b/win32/ext/openssl-wdk/mk-ca-bundle.pl new file mode 100644 index 00000000..3b4e16ae --- /dev/null +++ b/win32/ext/openssl-wdk/mk-ca-bundle.pl @@ -0,0 +1,195 @@ +#!/usr/bin/perl -w +# *************************************************************************** +# * _ _ ____ _ +# * Project ___| | | | _ \| | +# * / __| | | | |_) | | +# * | (__| |_| | _ <| |___ +# * \___|\___/|_| \_\_____| +# * +# * Copyright (C) 1998 - 2008, Daniel Stenberg, <daniel@haxx.se>, et al. +# * +# * This software is licensed as described in the file COPYING, which +# * you should have received as part of this distribution. The terms +# * are also available at http://curl.haxx.se/docs/copyright.html. +# * +# * You may opt to use, copy, modify, merge, publish, distribute and/or sell +# * copies of the Software, and permit persons to whom the Software is +# * furnished to do so, under the terms of the COPYING file. +# * +# * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY +# * KIND, either express or implied. +# * +# * $Id: mk-ca-bundle.pl,v 1.10 2008/02/15 00:41:54 gknauf Exp $ +# *************************************************************************** +# This Perl script creates a fresh ca-bundle.crt file for use with libcurl. +# It downloads certdata.txt from Mozilla's source tree (see URL below), +# then parses certdata.txt and extracts CA Root Certificates into PEM format. +# These are then processed with the OpenSSL commandline tool to produce the +# final ca-bundle.crt file. +# The script is based on the parse-certs script written by Roland Krikava. +# This Perl script works on almost any platform since its only external +# dependency is the OpenSSL commandline tool for optional text listing. +# Hacked by Guenter Knauf. +# +# Hacked again by Cameron Kaiser to use cURL *instead* of LWP. +# +use Getopt::Std; +use MIME::Base64; +#use LWP::UserAgent; +use strict; +use vars qw($opt_b $opt_h $opt_i $opt_l $opt_n $opt_q $opt_t $opt_u $opt_v); + +# more up-to-date revisions can always be found at http://hg.mozilla.org/mozilla-central/ +# in the security/nss/lib/ckfw/builtins folder +my $url = 'http://mxr.mozilla.org/seamonkey/source/security/nss/lib/ckfw/builtins/certdata.txt?raw=1'; +# If the OpenSSL commandline is not in search path you can configure it here! +my $openssl = 'openssl'; + +my $version = $1 if ('$Revision: 1.10 $' =~ /\s(\d+\.\d+)\s/); + +getopts('bhilnqtuv'); + +if ($opt_i) { + print ("=" x 78 . "\n"); + print "Script Version : $version\n"; + print "Perl Version : $]\n"; + print "Operating System Name : $^O\n"; + print "Getopt::Std.pm Version : ${Getopt::Std::VERSION}\n"; + print "MIME::Base64.pm Version : ${MIME::Base64::VERSION}\n"; +# print "LWP::UserAgent.pm Version : ${LWP::UserAgent::VERSION}\n"; +# print "LWP.pm Version : ${LWP::VERSION}\n"; + print "This version uses cURL. As it should.\n"; + print `curl --version`; + print ("=" x 78 . "\n"); +} + +$0 =~ s/\\/\//g; +$0 = substr($0, rindex($0, '/') + 1); +if ($opt_h) { + printf("Usage:\t%s [-b] [-i] [-l] [-n] [-q] [-t] [-u] [-v] [<outputfile>]\n", $0); + print "\t-b\tbackup an existing version of ca-bundle.crt\n"; + print "\t-i\tprint version info about used modules\n"; + print "\t-l\tprint license info about certdata.txt\n"; + print "\t-n\tno download of certdata.txt (to use existing)\n"; + print "\t-q\tbe really quiet (no progress output at all)\n"; + print "\t-t\tinclude plain text listing of certificates\n"; + print "\t-u\tunlink (remove) certdata.txt after processing\n"; + print "\t-v\tbe verbose and print out processed CAs\n"; + exit; +} + +#my $crt = $ARGV[0] || 'ca-bundle.crt'; +my $crt = $ARGV[0] || 'cert.pem'; +my $txt = substr($url, rindex($url, '/') + 1); +$txt =~ s/\?.*//; + +if (!$opt_n || !-e $txt) { + print "Downloading '$txt' ...\n" if (!$opt_q); + #my $ua = new LWP::UserAgent(agent => "$0/$version"); + #my $req = new HTTP::Request('GET', $url); + #my $res = $ua->request($req); + #if ($res->is_success) { + # open(TXT,">$txt") or die "Couldn't open $txt: $!"; + # print TXT $res->content . "\n"; + # close(TXT) or die "Couldn't close $txt: $!"; + #} else { + # die $res->status_line; + #} + system("curl $url > $txt"); +} + +if ($opt_b && -e $crt) { + my $bk = 1; + while (-e "$crt.~${bk}~") { + $bk++; + } + rename $crt, "$crt.~${bk}~"; +} + +my $format = $opt_t ? "plain text and " : ""; +my $currentdate = scalar gmtime() . " UTC"; +open(CRT,">$crt") or die "Couldn't open $crt: $!"; +print CRT <<EOT; +## +## $crt -- Bundle of CA Root Certificates +## +## Converted at: ${currentdate} +## +## 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 ${format}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. +## + +EOT + +close(CRT) or die "Couldn't close $crt: $!"; + +print "Processing '$txt' ...\n" if (!$opt_q); +my $caname; +my $certnum = 0; +open(TXT,"$txt") or die "Couldn't open $txt: $!"; +while (<TXT>) { + if (/\*\*\*\*\* BEGIN LICENSE BLOCK \*\*\*\*\*/) { + open(CRT, ">>$crt") or die "Couldn't open $crt: $!"; + print CRT; + print if ($opt_l); + while (<TXT>) { + print CRT; + print if ($opt_l); + last if (/\*\*\*\*\* END LICENSE BLOCK \*\*\*\*\*/); + } + close(CRT) or die "Couldn't close $crt: $!"; + } + next if /^#|^\s*$/; + chomp; + if (/^CVS_ID\s+\"(.*)\"/) { + open(CRT, ">>$crt") or die "Couldn't open $crt: $!"; + print CRT "# $1\n"; + close(CRT) or die "Couldn't close $crt: $!"; + } + if (/^CKA_LABEL\s+[A-Z0-9]+\s+\"(.*)\"/) { + $caname = $1; + } + if (/^CKA_VALUE MULTILINE_OCTAL/) { + my $data; + while (<TXT>) { + last if (/^END/); + chomp; + my @octets = split(/\\/); + shift @octets; + for (@octets) { + $data .= chr(oct); + } + } + my $pem = "-----BEGIN CERTIFICATE-----\n" + . MIME::Base64::encode($data) + . "-----END CERTIFICATE-----\n"; + open(CRT, ">>$crt") or die "Couldn't open $crt: $!"; + print CRT "\n$caname\n"; + print CRT ("=" x length($caname) . "\n"); + if (!$opt_t) { + print CRT $pem; + } + close(CRT) or die "Couldn't close $crt: $!"; + if ($opt_t) { + open(TMP, "|$openssl x509 -md5 -fingerprint -text -inform PEM >> $crt") or die "Couldn't open openssl pipe: $!"; + print TMP $pem; + close(TMP) or die "Couldn't close openssl pipe: $!"; + } + print "Parsing: $caname\n" if ($opt_v); + $certnum ++; + } +} +close(TXT) or die "Couldn't close $txt: $!"; +unlink $txt if ($opt_u); +print "Done ($certnum CA certs processed).\n" if (!$opt_q); + +exit; + + diff --git a/win32/ext/openssl-wdk/openssl-wdk.patch b/win32/ext/openssl-wdk/openssl-wdk.patch new file mode 100644 index 00000000..36cd861d --- /dev/null +++ b/win32/ext/openssl-wdk/openssl-wdk.patch @@ -0,0 +1,64 @@ +diff -ruN --strip-trailing-cr openssl-1.0.1.orig/Configure openssl-1.0.1/Configure +--- openssl-1.0.1.orig/Configure 2012-03-03 14:18:06 +0100 ++++ openssl-1.0.1/Configure 2012-03-14 20:34:29 +0100 +@@ -517,12 +517,12 @@ + # + # Win64 targets, WIN64I denotes IA-64 and WIN64A - AMD64 + "VC-WIN64I","cl:-W3 -Gs0 -Gy -nologo -DOPENSSL_SYSNAME_WIN32 -DWIN32_LEAN_AND_MEAN -DL_ENDIAN -DUNICODE -D_UNICODE -D_CRT_SECURE_NO_DEPRECATE:::WIN64I::SIXTY_FOUR_BIT RC4_CHUNK_LL DES_INT EXPORT_VAR_AS_FN:ia64cpuid.o:ia64.o ia64-mont.o::aes_core.o aes_cbc.o aes-ia64.o::md5-ia64.o:sha1-ia64.o sha256-ia64.o sha512-ia64.o:::::::ghash-ia64.o::ias:win32", +-"VC-WIN64A","cl:-W3 -Gs0 -Gy -nologo -DOPENSSL_SYSNAME_WIN32 -DWIN32_LEAN_AND_MEAN -DL_ENDIAN -DUNICODE -D_UNICODE -D_CRT_SECURE_NO_DEPRECATE:::WIN64A::SIXTY_FOUR_BIT RC4_CHUNK_LL DES_INT EXPORT_VAR_AS_FN:".eval{my $asm=$x86_64_asm;$asm=~s/x86_64-gcc\.o/bn_asm.o/;$asm}.":auto:win32", ++"VC-WIN64A","cl:-W3 -Gs0 -Gy -nologo -DOPENSSL_SYSNAME_WIN32 -DWIN32_LEAN_AND_MEAN -DL_ENDIAN -DUNICODE -D_UNICODE:::WIN64A::SIXTY_FOUR_BIT RC4_CHUNK_LL DES_INT EXPORT_VAR_AS_FN:".eval{my $asm=$x86_64_asm;$asm=~s/x86_64-gcc\.o/bn_asm.o/;$asm}.":auto:win32", + "debug-VC-WIN64I","cl:-W3 -Gs0 -Gy -Zi -nologo -DOPENSSL_SYSNAME_WIN32 -DWIN32_LEAN_AND_MEAN -DL_ENDIAN -DUNICODE -D_UNICODE -D_CRT_SECURE_NO_DEPRECATE:::WIN64I::SIXTY_FOUR_BIT RC4_CHUNK_LL DES_INT EXPORT_VAR_AS_FN:ia64cpuid.o:ia64.o::aes_core.o aes_cbc.o aes-ia64.o::md5-ia64.o:sha1-ia64.o sha256-ia64.o sha512-ia64.o:::::::ghash-ia64.o::ias:win32", + "debug-VC-WIN64A","cl:-W3 -Gs0 -Gy -Zi -nologo -DOPENSSL_SYSNAME_WIN32 -DWIN32_LEAN_AND_MEAN -DL_ENDIAN -DUNICODE -D_UNICODE -D_CRT_SECURE_NO_DEPRECATE:::WIN64A::SIXTY_FOUR_BIT RC4_CHUNK_LL DES_INT EXPORT_VAR_AS_FN:".eval{my $asm=$x86_64_asm;$asm=~s/x86_64-gcc\.o/bn_asm.o/;$asm}.":auto:win32", + # x86 Win32 target defaults to ANSI API, if you want UNICODE, complement + # 'perl Configure VC-WIN32' with '-DUNICODE -D_UNICODE' +-"VC-WIN32","cl:-W3 -Gs0 -GF -Gy -nologo -DOPENSSL_SYSNAME_WIN32 -DWIN32_LEAN_AND_MEAN -DL_ENDIAN -D_CRT_SECURE_NO_DEPRECATE:::WIN32::BN_LLONG RC4_INDEX EXPORT_VAR_AS_FN ${x86_gcc_opts}:${x86_asm}:win32n:win32", ++"VC-WIN32","cl:-W3 -Gs0 -GF -Gy -nologo -DOPENSSL_SYSNAME_WIN32 -DWIN32_LEAN_AND_MEAN -DL_ENDIAN:::WIN32::BN_LLONG RC4_INDEX EXPORT_VAR_AS_FN ${x86_gcc_opts}:${x86_asm}:win32n:win32", + # Unified CE target + "debug-VC-WIN32","cl:-W3 -WX -Gs0 -GF -Gy -Zi -nologo -DOPENSSL_SYSNAME_WIN32 -DWIN32_LEAN_AND_MEAN -DL_ENDIAN -D_CRT_SECURE_NO_DEPRECATE:::WIN32::BN_LLONG RC4_INDEX EXPORT_VAR_AS_FN ${x86_gcc_opts}:${x86_asm}:win32n:win32", + "VC-CE","cl::::WINCE::BN_LLONG RC4_INDEX EXPORT_VAR_AS_FN ${x86_gcc_opts}:${no_asm}:win32", +diff -ruN --strip-trailing-cr openssl-1.0.1.orig/engines/e_aep.c openssl-1.0.1/engines/e_aep.c +--- openssl-1.0.1.orig/engines/e_aep.c 2012-01-25 00:00:36 +0100 ++++ openssl-1.0.1/engines/e_aep.c 2012-03-14 20:33:58 +0100 +@@ -61,7 +61,12 @@ + #include <sys/types.h> + #include <unistd.h> + #else ++#ifdef _MSC_VER ++#include <windows.h> ++#define _getpid GetCurrentProcessId ++#else + #include <process.h> ++#endif + typedef int pid_t; + #endif + +diff -ruN --strip-trailing-cr openssl-1.0.1.orig/util/pl/VC-32.pl openssl-1.0.1/util/pl/VC-32.pl +--- openssl-1.0.1.orig/util/pl/VC-32.pl 2011-06-17 15:50:40 +0200 ++++ openssl-1.0.1/util/pl/VC-32.pl 2012-03-14 20:33:58 +0100 +@@ -47,7 +47,7 @@ + $lib_cflag='/Zl' if (!$shlib); # remove /DEFAULTLIBs from static lib + $opt_cflags=$f.' /Ox'; + $dbg_cflags=$f.'d /Od -DDEBUG -D_DEBUG'; +- $lflags="/nologo /subsystem:console /opt:ref"; ++ $lflags="/nologo /subsystem:console /opt:ref msvcrt_win2003.obj"; + + *::perlasm_compile_target = sub { + my ($target,$source,$bname)=@_; +@@ -128,7 +128,7 @@ + $lib_cflag='/Zl' if (!$shlib); # remove /DEFAULTLIBs from static lib + $opt_cflags=$f.' /Ox /O2 /Ob2'; + $dbg_cflags=$f.'d /Od -DDEBUG -D_DEBUG'; +- $lflags="/nologo /subsystem:console /opt:ref"; ++ $lflags="/nologo /subsystem:console /opt:ref msvcrt_winxp.obj"; + } + $mlflags=''; + +@@ -189,7 +189,7 @@ + $lfile='/out:'; + + $shlib_ex_obj=""; +-$app_ex_obj="setargv.obj" if ($FLAVOR !~ /CE/); ++$app_ex_obj="" if ($FLAVOR !~ /CE/); + if ($FLAVOR =~ /WIN64A/) { + if (`nasm -v 2>NUL` =~ /NASM version ([0-9]+\.[0-9]+)/ && $1 >= 2.0) { + $asm='nasm -f win64 -DNEAR -Ox -g'; diff --git a/win32/ext/zlib-wdk/LICENSE.ZLIB b/win32/ext/zlib-wdk/LICENSE.ZLIB new file mode 100644 index 00000000..a62a5d7b --- /dev/null +++ b/win32/ext/zlib-wdk/LICENSE.ZLIB @@ -0,0 +1,29 @@ +/* zlib.h -- interface of the 'zlib' general purpose compression library + version 1.2.3, July 18th, 2005 + + Copyright (C) 1995-2005 Jean-loup Gailly and Mark Adler + + This software is provided 'as-is', without any express or implied + warranty. In no event will the authors be held liable for any damages + arising from the use of this software. + + Permission is granted to anyone to use this software for any purpose, + including commercial applications, and to alter it and redistribute it + freely, subject to the following restrictions: + + 1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. + 2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. + 3. This notice may not be removed or altered from any source distribution. + + Jean-loup Gailly Mark Adler + jloup@gzip.org madler@alumni.caltech.edu + + + The data format used by the zlib library is described by RFCs (Request for + Comments) 1950 to 1952 in the files http://www.ietf.org/rfc/rfc1950.txt + (zlib format), rfc1951.txt (deflate format) and rfc1952.txt (gzip format). +*/ diff --git a/win32/ext/zlib-wdk/install.props b/win32/ext/zlib-wdk/install.props new file mode 100644 index 00000000..d3517733 --- /dev/null +++ b/win32/ext/zlib-wdk/install.props @@ -0,0 +1,55 @@ +<?xml version="1.0" encoding="utf-8"?> +<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <ImportGroup Label="PropertySheets" /> + <PropertyGroup Label="UserMacros"> + <ZlibDoInstall32> + mkdir $(SolutionDir)x86\dist + mkdir $(SolutionDir)x86\dist\bin + copy $(SolutionDir)x86\MiniUnzipRelease\miniunz.exe $(SolutionDir)x86\dist\bin + copy $(SolutionDir)x86\MiniZipRelease\minizip.exe $(SolutionDir)x86\dist\bin + copy $(SolutionDir)x86\TestZlibDllRelease\testzlibdll.exe $(SolutionDir)x86\dist\bin + copy $(SolutionDir)x86\TestZlibRelease\testzlib.exe $(SolutionDir)x86\dist\bin + copy $(SolutionDir)x86\ZlibDllRelease\zlibwapi.dll $(SolutionDir)x86\dist\bin + mkdir $(SolutionDir)x86\dist\include + copy ..\..\..\zconf.h $(SolutionDir)x86\dist\include + copy ..\..\..\zlib.h $(SolutionDir)x86\dist\include + mkdir $(SolutionDir)x86\dist\lib + copy $(SolutionDir)x86\ZlibDllRelease\zlibwapi.exp $(SolutionDir)x86\dist\lib + copy $(SolutionDir)x86\ZlibDllRelease\zlibwapi.lib $(SolutionDir)x86\dist\lib + copy $(SolutionDir)x86\ZlibStatRelease\zlibstat.lib $(SolutionDir)x86\dist\lib + copy $(SolutionDir)zlibvc.def $(SolutionDir)x86\dist\lib + copy $(SolutionDir)LICENSE.ZLIB $(SolutionDir)x86\dist + </ZlibDoInstall32> + <ZlibDoInstall64> + mkdir $(SolutionDir)x64\dist + mkdir $(SolutionDir)x64\dist\bin + copy $(SolutionDir)x64\MiniUnzipRelease\miniunz.exe $(SolutionDir)x64\dist\bin + copy $(SolutionDir)x64\MiniZipRelease\minizip.exe $(SolutionDir)x64\dist\bin + copy $(SolutionDir)x64\TestZlibDllRelease\testzlibdll.exe $(SolutionDir)x64\dist\bin + copy $(SolutionDir)x64\TestZlibRelease\testzlib.exe $(SolutionDir)x64\dist\bin + copy $(SolutionDir)x64\ZlibDllRelease\zlibwapi.dll $(SolutionDir)x64\dist\bin + mkdir $(SolutionDir)x64\dist\include + copy ..\..\..\zconf.h $(SolutionDir)x64\dist\include + copy ..\..\..\zlib.h $(SolutionDir)x64\dist\include + mkdir $(SolutionDir)x64\dist\lib + copy $(SolutionDir)x64\ZlibDllRelease\zlibwapi.exp $(SolutionDir)x64\dist\lib + copy $(SolutionDir)x64\ZlibDllRelease\zlibwapi.lib $(SolutionDir)x64\dist\lib + copy $(SolutionDir)x64\ZlibStatRelease\zlibstat.lib $(SolutionDir)x64\dist\lib + copy $(SolutionDir)zlibvc.def $(SolutionDir)x64\dist\lib + copy $(SolutionDir)LICENSE.ZLIB $(SolutionDir)x64\dist + </ZlibDoInstall64> + </PropertyGroup> + <ItemDefinitionGroup> + <ClCompile> + <AdditionalIncludeDirectories>c:\WinDDK\7600.16385.1\inc\api;c:\WinDDK\7600.16385.1\inc\crt</AdditionalIncludeDirectories> + </ClCompile> + <Link> + <WDK32Dependencies>msvcrt_winxp.obj</WDK32Dependencies> + <WDK64Dependencies>msvcrt_win2003.obj</WDK64Dependencies> + <WDK32LibraryDirectories>c:\WinDDK\7600.16385.1\lib\Crt\i386;c:\WinDDK\7600.16385.1\lib\wxp\i386</WDK32LibraryDirectories> + <WDK64LibraryDirectories>c:\WinDDK\7600.16385.1\lib\Crt\amd64;c:\WinDDK\7600.16385.1\lib\wnet\amd64</WDK64LibraryDirectories> + </Link> + </ItemDefinitionGroup> + <ItemGroup> + </ItemGroup> +</Project> diff --git a/win32/ext/zlib-wdk/install.vcxproj b/win32/ext/zlib-wdk/install.vcxproj new file mode 100644 index 00000000..f19aba87 --- /dev/null +++ b/win32/ext/zlib-wdk/install.vcxproj @@ -0,0 +1,94 @@ +<?xml version="1.0" encoding="utf-8"?> +<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <ItemGroup Label="ProjectConfigurations"> + <ProjectConfiguration Include="Release|Win32"> + <Configuration>Release</Configuration> + <Platform>Win32</Platform> + </ProjectConfiguration> + <ProjectConfiguration Include="Release|x64"> + <Configuration>Release</Configuration> + <Platform>x64</Platform> + </ProjectConfiguration> + </ItemGroup> + <ItemGroup> + <None Include="install.props"> + <SubType>Designer</SubType> + </None> + </ItemGroup> + <PropertyGroup Label="Globals"> + <ProjectGuid>{6064E3A9-3939-4937-A387-C09299FC2952}</ProjectGuid> + <RootNamespace>install</RootNamespace> + </PropertyGroup> + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" /> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration"> + <ConfigurationType>Application</ConfigurationType> + <UseDebugLibraries>false</UseDebugLibraries> + <WholeProgramOptimization>true</WholeProgramOptimization> + <CharacterSet>MultiByte</CharacterSet> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration"> + <ConfigurationType>Application</ConfigurationType> + <UseDebugLibraries>false</UseDebugLibraries> + <WholeProgramOptimization>true</WholeProgramOptimization> + <CharacterSet>MultiByte</CharacterSet> + </PropertyGroup> + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" /> + <ImportGroup Label="ExtensionSettings"> + </ImportGroup> + <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> + <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> + <Import Project="install.props" /> + </ImportGroup> + <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets"> + <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> + <Import Project="install.props" /> + </ImportGroup> + <PropertyGroup Label="UserMacros" /> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> + <OutDir>x86\Install$(Configuration)\</OutDir> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> + <IntDir>x86\Install$(Configuration)\Tmp\</IntDir> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'"> + <OutDir>x64\Install$(Configuration)\</OutDir> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'"> + <IntDir>x64\Install$(Configuration)\Tmp\</IntDir> + </PropertyGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> + <ClCompile> + <WarningLevel>Level3</WarningLevel> + <Optimization>MaxSpeed</Optimization> + <FunctionLevelLinking>true</FunctionLevelLinking> + <IntrinsicFunctions>true</IntrinsicFunctions> + </ClCompile> + <Link> + <GenerateDebugInformation>true</GenerateDebugInformation> + <EnableCOMDATFolding>true</EnableCOMDATFolding> + <OptimizeReferences>true</OptimizeReferences> + </Link> + <PreBuildEvent> + <Command>$(ZlibDoInstall32)</Command> + </PreBuildEvent> + </ItemDefinitionGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'"> + <ClCompile> + <WarningLevel>Level3</WarningLevel> + <Optimization>MaxSpeed</Optimization> + <FunctionLevelLinking>true</FunctionLevelLinking> + <IntrinsicFunctions>true</IntrinsicFunctions> + </ClCompile> + <Link> + <GenerateDebugInformation>true</GenerateDebugInformation> + <EnableCOMDATFolding>true</EnableCOMDATFolding> + <OptimizeReferences>true</OptimizeReferences> + </Link> + <PreBuildEvent> + <Command>$(ZlibDoInstall64)</Command> + </PreBuildEvent> + </ItemDefinitionGroup> + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" /> + <ImportGroup Label="ExtensionTargets"> + </ImportGroup> +</Project> \ No newline at end of file diff --git a/win32/ext/zlib-wdk/install.vcxproj.filters b/win32/ext/zlib-wdk/install.vcxproj.filters new file mode 100644 index 00000000..86fd366d --- /dev/null +++ b/win32/ext/zlib-wdk/install.vcxproj.filters @@ -0,0 +1,14 @@ +<?xml version="1.0" encoding="utf-8"?> +<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <ItemGroup> + <Filter Include="Resource Files"> + <UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier> + <Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms</Extensions> + </Filter> + </ItemGroup> + <ItemGroup> + <None Include="install.props"> + <Filter>Resource Files</Filter> + </None> + </ItemGroup> +</Project> \ No newline at end of file diff --git a/win32/ext/zlib-wdk/install.vcxproj.user b/win32/ext/zlib-wdk/install.vcxproj.user new file mode 100644 index 00000000..695b5c78 --- /dev/null +++ b/win32/ext/zlib-wdk/install.vcxproj.user @@ -0,0 +1,3 @@ +<?xml version="1.0" encoding="utf-8"?> +<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> +</Project> \ No newline at end of file diff --git a/win32/ext/zlib-wdk/miniunz.vcxproj b/win32/ext/zlib-wdk/miniunz.vcxproj new file mode 100644 index 00000000..56b846d0 --- /dev/null +++ b/win32/ext/zlib-wdk/miniunz.vcxproj @@ -0,0 +1,130 @@ +<?xml version="1.0" encoding="utf-8"?> +<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <ItemGroup Label="ProjectConfigurations"> + <ProjectConfiguration Include="Release|Win32"> + <Configuration>Release</Configuration> + <Platform>Win32</Platform> + </ProjectConfiguration> + <ProjectConfiguration Include="Release|x64"> + <Configuration>Release</Configuration> + <Platform>x64</Platform> + </ProjectConfiguration> + </ItemGroup> + <PropertyGroup Label="Globals"> + <ProjectGuid>{C52F9E7B-498A-42BE-8DB4-85A15694382A}</ProjectGuid> + <Keyword>Win32Proj</Keyword> + </PropertyGroup> + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" /> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration"> + <ConfigurationType>Application</ConfigurationType> + <CharacterSet>MultiByte</CharacterSet> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration"> + <ConfigurationType>Application</ConfigurationType> + <CharacterSet>MultiByte</CharacterSet> + </PropertyGroup> + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" /> + <ImportGroup Label="ExtensionSettings"> + </ImportGroup> + <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets"> + <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> + <Import Project="install.props" /> + </ImportGroup> + <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets"> + <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> + <Import Project="install.props" /> + </ImportGroup> + <PropertyGroup Label="UserMacros" /> + <PropertyGroup> + <_ProjectFileVersion>10.0.30128.1</_ProjectFileVersion> + <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">x86\MiniUnzip$(Configuration)\</OutDir> + <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">x86\MiniUnzip$(Configuration)\Tmp\</IntDir> + <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</LinkIncremental> + <GenerateManifest Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</GenerateManifest> + <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">x64\MiniUnzip$(Configuration)\</OutDir> + <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">x64\MiniUnzip$(Configuration)\Tmp\</IntDir> + <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|x64'">false</LinkIncremental> + <GenerateManifest Condition="'$(Configuration)|$(Platform)'=='Release|x64'">false</GenerateManifest> + <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">AllRules.ruleset</CodeAnalysisRuleSet> + <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" /> + <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" /> + <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Release|x64'">AllRules.ruleset</CodeAnalysisRuleSet> + <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Release|x64'" /> + <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Release|x64'" /> + </PropertyGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> + <ClCompile> + <Optimization>MaxSpeed</Optimization> + <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion> + <OmitFramePointers>true</OmitFramePointers> + <AdditionalIncludeDirectories>..\..\..;..\..\minizip;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> + <PreprocessorDefinitions>WIN32;ZLIB_WINAPI;NDEBUG;_CONSOLE;NO_MSCVER_FILE64_FUNC;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <StringPooling>true</StringPooling> + <BasicRuntimeChecks>Default</BasicRuntimeChecks> + <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary> + <BufferSecurityCheck>false</BufferSecurityCheck> + <FunctionLevelLinking>true</FunctionLevelLinking> + <PrecompiledHeader> + </PrecompiledHeader> + <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation> + <WarningLevel>Level3</WarningLevel> + <DebugInformationFormat>ProgramDatabase</DebugInformationFormat> + </ClCompile> + <Link> + <AdditionalDependencies>x86\ZlibDllRelease\zlibwapi.lib;%(WDK32Dependencies);%(AdditionalDependencies)</AdditionalDependencies> + <OutputFile>$(OutDir)miniunz.exe</OutputFile> + <GenerateDebugInformation>true</GenerateDebugInformation> + <SubSystem>Console</SubSystem> + <OptimizeReferences>true</OptimizeReferences> + <EnableCOMDATFolding>true</EnableCOMDATFolding> + <RandomizedBaseAddress>false</RandomizedBaseAddress> + <DataExecutionPrevention> + </DataExecutionPrevention> + <TargetMachine>MachineX86</TargetMachine> + <AdditionalLibraryDirectories>%(WDK32LibraryDirectories)</AdditionalLibraryDirectories> + </Link> + </ItemDefinitionGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'"> + <Midl> + <TargetEnvironment>X64</TargetEnvironment> + </Midl> + <ClCompile> + <Optimization>MaxSpeed</Optimization> + <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion> + <OmitFramePointers>true</OmitFramePointers> + <AdditionalIncludeDirectories>..\..\..;..\..\minizip;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> + <PreprocessorDefinitions>ZLIB_WINAPI;NDEBUG;_CONSOLE;WIN64;NO_MSCVER_FILE64_FUNC;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <StringPooling>true</StringPooling> + <BasicRuntimeChecks>Default</BasicRuntimeChecks> + <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary> + <BufferSecurityCheck>false</BufferSecurityCheck> + <FunctionLevelLinking>true</FunctionLevelLinking> + <PrecompiledHeader> + </PrecompiledHeader> + <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation> + <WarningLevel>Level3</WarningLevel> + <DebugInformationFormat>ProgramDatabase</DebugInformationFormat> + </ClCompile> + <Link> + <AdditionalDependencies>x64\ZlibDllRelease\zlibwapi.lib;%(WDK64Dependencies);%(AdditionalDependencies)</AdditionalDependencies> + <OutputFile>$(OutDir)miniunz.exe</OutputFile> + <GenerateDebugInformation>true</GenerateDebugInformation> + <SubSystem>Console</SubSystem> + <OptimizeReferences>true</OptimizeReferences> + <EnableCOMDATFolding>true</EnableCOMDATFolding> + <TargetMachine>MachineX64</TargetMachine> + <AdditionalLibraryDirectories>%(WDK64LibraryDirectories)</AdditionalLibraryDirectories> + </Link> + </ItemDefinitionGroup> + <ItemGroup> + <ClCompile Include="..\..\minizip\miniunz.c" /> + </ItemGroup> + <ItemGroup> + <ProjectReference Include="zlibvc.vcxproj"> + <Project>{8fd826f8-3739-44e6-8cc8-997122e53b8d}</Project> + </ProjectReference> + </ItemGroup> + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" /> + <ImportGroup Label="ExtensionTargets"> + </ImportGroup> +</Project> \ No newline at end of file diff --git a/win32/ext/zlib-wdk/miniunz.vcxproj.filters b/win32/ext/zlib-wdk/miniunz.vcxproj.filters new file mode 100644 index 00000000..0b2a3de2 --- /dev/null +++ b/win32/ext/zlib-wdk/miniunz.vcxproj.filters @@ -0,0 +1,22 @@ +<?xml version="1.0" encoding="utf-8"?> +<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <ItemGroup> + <Filter Include="Source Files"> + <UniqueIdentifier>{048af943-022b-4db6-beeb-a54c34774ee2}</UniqueIdentifier> + <Extensions>cpp;c;cxx;def;odl;idl;hpj;bat;asm</Extensions> + </Filter> + <Filter Include="Header Files"> + <UniqueIdentifier>{c1d600d2-888f-4aea-b73e-8b0dd9befa0c}</UniqueIdentifier> + <Extensions>h;hpp;hxx;hm;inl;inc</Extensions> + </Filter> + <Filter Include="Resource Files"> + <UniqueIdentifier>{0844199a-966b-4f19-81db-1e0125e141b9}</UniqueIdentifier> + <Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe</Extensions> + </Filter> + </ItemGroup> + <ItemGroup> + <ClCompile Include="..\..\minizip\miniunz.c"> + <Filter>Source Files</Filter> + </ClCompile> + </ItemGroup> +</Project> \ No newline at end of file diff --git a/win32/ext/zlib-wdk/miniunz.vcxproj.user b/win32/ext/zlib-wdk/miniunz.vcxproj.user new file mode 100644 index 00000000..695b5c78 --- /dev/null +++ b/win32/ext/zlib-wdk/miniunz.vcxproj.user @@ -0,0 +1,3 @@ +<?xml version="1.0" encoding="utf-8"?> +<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> +</Project> \ No newline at end of file diff --git a/win32/ext/zlib-wdk/minizip.vcxproj b/win32/ext/zlib-wdk/minizip.vcxproj new file mode 100644 index 00000000..aed19fe1 --- /dev/null +++ b/win32/ext/zlib-wdk/minizip.vcxproj @@ -0,0 +1,128 @@ +<?xml version="1.0" encoding="utf-8"?> +<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <ItemGroup Label="ProjectConfigurations"> + <ProjectConfiguration Include="Release|Win32"> + <Configuration>Release</Configuration> + <Platform>Win32</Platform> + </ProjectConfiguration> + <ProjectConfiguration Include="Release|x64"> + <Configuration>Release</Configuration> + <Platform>x64</Platform> + </ProjectConfiguration> + </ItemGroup> + <PropertyGroup Label="Globals"> + <ProjectGuid>{48CDD9DC-E09F-4135-9C0C-4FE50C3C654B}</ProjectGuid> + <Keyword>Win32Proj</Keyword> + </PropertyGroup> + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" /> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration"> + <ConfigurationType>Application</ConfigurationType> + <CharacterSet>MultiByte</CharacterSet> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration"> + <ConfigurationType>Application</ConfigurationType> + <CharacterSet>MultiByte</CharacterSet> + </PropertyGroup> + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" /> + <ImportGroup Label="ExtensionSettings"> + </ImportGroup> + <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets"> + <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> + <Import Project="install.props" /> + </ImportGroup> + <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets"> + <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> + <Import Project="install.props" /> + </ImportGroup> + <PropertyGroup Label="UserMacros" /> + <PropertyGroup> + <_ProjectFileVersion>10.0.30128.1</_ProjectFileVersion> + <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">x86\MiniZip$(Configuration)\</OutDir> + <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">x86\MiniZip$(Configuration)\Tmp\</IntDir> + <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</LinkIncremental> + <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">x64\MiniZip$(Configuration)\</OutDir> + <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">x64\MiniZip$(Configuration)\Tmp\</IntDir> + <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|x64'">false</LinkIncremental> + <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">AllRules.ruleset</CodeAnalysisRuleSet> + <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" /> + <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" /> + <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Release|x64'">AllRules.ruleset</CodeAnalysisRuleSet> + <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Release|x64'" /> + <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Release|x64'" /> + </PropertyGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> + <ClCompile> + <Optimization>MaxSpeed</Optimization> + <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion> + <OmitFramePointers>true</OmitFramePointers> + <AdditionalIncludeDirectories>..\..\..;..\..\minizip;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> + <PreprocessorDefinitions>WIN32;ZLIB_WINAPI;NDEBUG;_CONSOLE;NO_MSCVER_FILE64_FUNC;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <StringPooling>true</StringPooling> + <BasicRuntimeChecks>Default</BasicRuntimeChecks> + <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary> + <BufferSecurityCheck>false</BufferSecurityCheck> + <FunctionLevelLinking>true</FunctionLevelLinking> + <PrecompiledHeader> + </PrecompiledHeader> + <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation> + <WarningLevel>Level3</WarningLevel> + <DebugInformationFormat>ProgramDatabase</DebugInformationFormat> + </ClCompile> + <Link> + <AdditionalDependencies>x86\ZlibDllRelease\zlibwapi.lib;%(WDK32Dependencies);%(AdditionalDependencies)</AdditionalDependencies> + <OutputFile>$(OutDir)minizip.exe</OutputFile> + <GenerateDebugInformation>true</GenerateDebugInformation> + <SubSystem>Console</SubSystem> + <OptimizeReferences>true</OptimizeReferences> + <EnableCOMDATFolding>true</EnableCOMDATFolding> + <RandomizedBaseAddress>false</RandomizedBaseAddress> + <DataExecutionPrevention> + </DataExecutionPrevention> + <TargetMachine>MachineX86</TargetMachine> + <AdditionalLibraryDirectories>%(WDK32LibraryDirectories)</AdditionalLibraryDirectories> + </Link> + </ItemDefinitionGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'"> + <Midl> + <TargetEnvironment>X64</TargetEnvironment> + </Midl> + <ClCompile> + <Optimization>MaxSpeed</Optimization> + <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion> + <OmitFramePointers>true</OmitFramePointers> + <AdditionalIncludeDirectories>..\..\..;..\..\minizip;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> + <PreprocessorDefinitions>ZLIB_WINAPI;NDEBUG;_CONSOLE;WIN64;NO_MSCVER_FILE64_FUNC;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <StringPooling>true</StringPooling> + <BasicRuntimeChecks>Default</BasicRuntimeChecks> + <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary> + <BufferSecurityCheck>false</BufferSecurityCheck> + <FunctionLevelLinking>true</FunctionLevelLinking> + <PrecompiledHeader> + </PrecompiledHeader> + <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation> + <WarningLevel>Level3</WarningLevel> + <DebugInformationFormat>ProgramDatabase</DebugInformationFormat> + </ClCompile> + <Link> + <AdditionalDependencies>x64\ZlibDllRelease\zlibwapi.lib;%(WDK64Dependencies);%(AdditionalDependencies)</AdditionalDependencies> + <OutputFile>$(OutDir)minizip.exe</OutputFile> + <GenerateDebugInformation>true</GenerateDebugInformation> + <SubSystem>Console</SubSystem> + <OptimizeReferences>true</OptimizeReferences> + <EnableCOMDATFolding>true</EnableCOMDATFolding> + <TargetMachine>MachineX64</TargetMachine> + <AdditionalLibraryDirectories>%(WDK64LibraryDirectories)</AdditionalLibraryDirectories> + </Link> + </ItemDefinitionGroup> + <ItemGroup> + <ClCompile Include="..\..\minizip\minizip.c" /> + </ItemGroup> + <ItemGroup> + <ProjectReference Include="zlibvc.vcxproj"> + <Project>{8fd826f8-3739-44e6-8cc8-997122e53b8d}</Project> + </ProjectReference> + </ItemGroup> + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" /> + <ImportGroup Label="ExtensionTargets"> + </ImportGroup> +</Project> \ No newline at end of file diff --git a/win32/ext/zlib-wdk/minizip.vcxproj.filters b/win32/ext/zlib-wdk/minizip.vcxproj.filters new file mode 100644 index 00000000..dd73cd31 --- /dev/null +++ b/win32/ext/zlib-wdk/minizip.vcxproj.filters @@ -0,0 +1,22 @@ +<?xml version="1.0" encoding="utf-8"?> +<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <ItemGroup> + <Filter Include="Source Files"> + <UniqueIdentifier>{c0419b40-bf50-40da-b153-ff74215b79de}</UniqueIdentifier> + <Extensions>cpp;c;cxx;def;odl;idl;hpj;bat;asm</Extensions> + </Filter> + <Filter Include="Header Files"> + <UniqueIdentifier>{bb87b070-735b-478e-92ce-7383abb2f36c}</UniqueIdentifier> + <Extensions>h;hpp;hxx;hm;inl;inc</Extensions> + </Filter> + <Filter Include="Resource Files"> + <UniqueIdentifier>{f46ab6a6-548f-43cb-ae96-681abb5bd5db}</UniqueIdentifier> + <Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe</Extensions> + </Filter> + </ItemGroup> + <ItemGroup> + <ClCompile Include="..\..\minizip\minizip.c"> + <Filter>Source Files</Filter> + </ClCompile> + </ItemGroup> +</Project> \ No newline at end of file diff --git a/win32/ext/zlib-wdk/minizip.vcxproj.user b/win32/ext/zlib-wdk/minizip.vcxproj.user new file mode 100644 index 00000000..695b5c78 --- /dev/null +++ b/win32/ext/zlib-wdk/minizip.vcxproj.user @@ -0,0 +1,3 @@ +<?xml version="1.0" encoding="utf-8"?> +<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> +</Project> \ No newline at end of file diff --git a/win32/ext/zlib-wdk/testzlib.vcxproj b/win32/ext/zlib-wdk/testzlib.vcxproj new file mode 100644 index 00000000..ab7f1abc --- /dev/null +++ b/win32/ext/zlib-wdk/testzlib.vcxproj @@ -0,0 +1,123 @@ +<?xml version="1.0" encoding="utf-8"?> +<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <ItemGroup Label="ProjectConfigurations"> + <ProjectConfiguration Include="Release|Win32"> + <Configuration>Release</Configuration> + <Platform>Win32</Platform> + </ProjectConfiguration> + <ProjectConfiguration Include="Release|x64"> + <Configuration>Release</Configuration> + <Platform>x64</Platform> + </ProjectConfiguration> + </ItemGroup> + <PropertyGroup Label="Globals"> + <ProjectGuid>{AA6666AA-E09F-4135-9C0C-4FE50C3C654B}</ProjectGuid> + <RootNamespace>testzlib</RootNamespace> + <Keyword>Win32Proj</Keyword> + </PropertyGroup> + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" /> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration"> + <ConfigurationType>Application</ConfigurationType> + <CharacterSet>MultiByte</CharacterSet> + <WholeProgramOptimization>true</WholeProgramOptimization> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration"> + <ConfigurationType>Application</ConfigurationType> + <WholeProgramOptimization>true</WholeProgramOptimization> + </PropertyGroup> + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" /> + <ImportGroup Label="ExtensionSettings"> + </ImportGroup> + <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets"> + <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> + <Import Project="install.props" /> + </ImportGroup> + <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets"> + <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> + <Import Project="install.props" /> + </ImportGroup> + <PropertyGroup Label="UserMacros" /> + <PropertyGroup> + <_ProjectFileVersion>10.0.30128.1</_ProjectFileVersion> + <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">x86\TestZlib$(Configuration)\</OutDir> + <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">x86\TestZlib$(Configuration)\Tmp\</IntDir> + <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</LinkIncremental> + <GenerateManifest Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</GenerateManifest> + <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">x64\TestZlib$(Configuration)\</OutDir> + <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">x64\TestZlib$(Configuration)\Tmp\</IntDir> + <GenerateManifest Condition="'$(Configuration)|$(Platform)'=='Release|x64'">false</GenerateManifest> + <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">AllRules.ruleset</CodeAnalysisRuleSet> + <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" /> + <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" /> + <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Release|x64'">AllRules.ruleset</CodeAnalysisRuleSet> + <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Release|x64'" /> + <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Release|x64'" /> + </PropertyGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> + <ClCompile> + <Optimization>MaxSpeed</Optimization> + <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion> + <OmitFramePointers>true</OmitFramePointers> + <AdditionalIncludeDirectories>..\..\..;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> + <PreprocessorDefinitions>WIN32;ZLIB_WINAPI;NDEBUG;_CONSOLE;_CRT_NONSTDC_NO_WARNINGS;NO_MSCVER_FILE64_FUNC;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <StringPooling>true</StringPooling> + <BasicRuntimeChecks>Default</BasicRuntimeChecks> + <RuntimeLibrary>MultiThreaded</RuntimeLibrary> + <BufferSecurityCheck>false</BufferSecurityCheck> + <FunctionLevelLinking>true</FunctionLevelLinking> + <PrecompiledHeader> + </PrecompiledHeader> + <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation> + <WarningLevel>Level3</WarningLevel> + <DebugInformationFormat>ProgramDatabase</DebugInformationFormat> + </ClCompile> + <Link> + <OutputFile>$(OutDir)testzlib.exe</OutputFile> + <GenerateDebugInformation>true</GenerateDebugInformation> + <SubSystem>Console</SubSystem> + <OptimizeReferences>true</OptimizeReferences> + <EnableCOMDATFolding>true</EnableCOMDATFolding> + <RandomizedBaseAddress>false</RandomizedBaseAddress> + <DataExecutionPrevention> + </DataExecutionPrevention> + <TargetMachine>MachineX86</TargetMachine> + <AdditionalDependencies>%(WDK32Dependencies);%(AdditionalDependencies)</AdditionalDependencies> + <AdditionalLibraryDirectories>%(WDK32LibraryDirectories)</AdditionalLibraryDirectories> + </Link> + </ItemDefinitionGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'"> + <ClCompile> + <AdditionalIncludeDirectories>..\..\..;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> + <PreprocessorDefinitions>WIN32;ZLIB_WINAPI;NDEBUG;_CONSOLE;_CRT_NONSTDC_NO_WARNINGS;WIN64;NO_MSCVER_FILE64_FUNC;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <BasicRuntimeChecks>Default</BasicRuntimeChecks> + <RuntimeLibrary>MultiThreaded</RuntimeLibrary> + <BufferSecurityCheck>false</BufferSecurityCheck> + <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation> + </ClCompile> + <Link> + <AdditionalDependencies>%(WDK64Dependencies)</AdditionalDependencies> + <GenerateDebugInformation>true</GenerateDebugInformation> + <AdditionalLibraryDirectories>%(WDK64LibraryDirectories)</AdditionalLibraryDirectories> + </Link> + </ItemDefinitionGroup> + <ItemGroup> + <ClCompile Include="..\..\..\adler32.c" /> + <ClCompile Include="..\..\..\compress.c" /> + <ClCompile Include="..\..\..\crc32.c" /> + <ClCompile Include="..\..\..\deflate.c" /> + <ClCompile Include="..\..\..\infback.c" /> + <ClCompile Include="..\..\masmx64\inffas8664.c"> + <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild> + </ClCompile> + <ClCompile Include="..\..\..\inffast.c" /> + <ClCompile Include="..\..\..\inflate.c" /> + <ClCompile Include="..\..\..\inftrees.c" /> + <ClCompile Include="..\..\testzlib\testzlib.c" /> + <ClCompile Include="..\..\..\trees.c" /> + <ClCompile Include="..\..\..\uncompr.c" /> + <ClCompile Include="..\..\..\zutil.c" /> + </ItemGroup> + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" /> + <ImportGroup Label="ExtensionTargets"> + </ImportGroup> +</Project> \ No newline at end of file diff --git a/win32/ext/zlib-wdk/testzlib.vcxproj.filters b/win32/ext/zlib-wdk/testzlib.vcxproj.filters new file mode 100644 index 00000000..249daa89 --- /dev/null +++ b/win32/ext/zlib-wdk/testzlib.vcxproj.filters @@ -0,0 +1,58 @@ +<?xml version="1.0" encoding="utf-8"?> +<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <ItemGroup> + <Filter Include="Source Files"> + <UniqueIdentifier>{c1f6a2e3-5da5-4955-8653-310d3efe05a9}</UniqueIdentifier> + <Extensions>cpp;c;cxx;def;odl;idl;hpj;bat;asm</Extensions> + </Filter> + <Filter Include="Header Files"> + <UniqueIdentifier>{c2aaffdc-2c95-4d6f-8466-4bec5890af2c}</UniqueIdentifier> + <Extensions>h;hpp;hxx;hm;inl;inc</Extensions> + </Filter> + <Filter Include="Resource Files"> + <UniqueIdentifier>{c274fe07-05f2-461c-964b-f6341e4e7eb5}</UniqueIdentifier> + <Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe</Extensions> + </Filter> + </ItemGroup> + <ItemGroup> + <ClCompile Include="..\..\..\adler32.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="..\..\..\compress.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="..\..\..\crc32.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="..\..\..\deflate.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="..\..\..\infback.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="..\..\masmx64\inffas8664.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="..\..\..\inffast.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="..\..\..\inflate.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="..\..\..\inftrees.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="..\..\testzlib\testzlib.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="..\..\..\trees.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="..\..\..\uncompr.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="..\..\..\zutil.c"> + <Filter>Source Files</Filter> + </ClCompile> + </ItemGroup> +</Project> \ No newline at end of file diff --git a/win32/ext/zlib-wdk/testzlib.vcxproj.user b/win32/ext/zlib-wdk/testzlib.vcxproj.user new file mode 100644 index 00000000..695b5c78 --- /dev/null +++ b/win32/ext/zlib-wdk/testzlib.vcxproj.user @@ -0,0 +1,3 @@ +<?xml version="1.0" encoding="utf-8"?> +<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> +</Project> \ No newline at end of file diff --git a/win32/ext/zlib-wdk/testzlibdll.vcxproj b/win32/ext/zlib-wdk/testzlibdll.vcxproj new file mode 100644 index 00000000..600b3586 --- /dev/null +++ b/win32/ext/zlib-wdk/testzlibdll.vcxproj @@ -0,0 +1,130 @@ +<?xml version="1.0" encoding="utf-8"?> +<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <ItemGroup Label="ProjectConfigurations"> + <ProjectConfiguration Include="Release|Win32"> + <Configuration>Release</Configuration> + <Platform>Win32</Platform> + </ProjectConfiguration> + <ProjectConfiguration Include="Release|x64"> + <Configuration>Release</Configuration> + <Platform>x64</Platform> + </ProjectConfiguration> + </ItemGroup> + <PropertyGroup Label="Globals"> + <ProjectGuid>{C52F9E7B-498A-42BE-8DB4-85A15694366A}</ProjectGuid> + <Keyword>Win32Proj</Keyword> + </PropertyGroup> + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" /> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration"> + <ConfigurationType>Application</ConfigurationType> + <CharacterSet>MultiByte</CharacterSet> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration"> + <ConfigurationType>Application</ConfigurationType> + <CharacterSet>MultiByte</CharacterSet> + </PropertyGroup> + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" /> + <ImportGroup Label="ExtensionSettings"> + </ImportGroup> + <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets"> + <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> + <Import Project="install.props" /> + </ImportGroup> + <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets"> + <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> + <Import Project="install.props" /> + </ImportGroup> + <PropertyGroup Label="UserMacros" /> + <PropertyGroup> + <_ProjectFileVersion>10.0.30128.1</_ProjectFileVersion> + <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">x86\TestZlibDll$(Configuration)\</OutDir> + <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">x86\TestZlibDll$(Configuration)\Tmp\</IntDir> + <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</LinkIncremental> + <GenerateManifest Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</GenerateManifest> + <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">x64\TestZlibDll$(Configuration)\</OutDir> + <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">x64\TestZlibDll$(Configuration)\Tmp\</IntDir> + <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|x64'">false</LinkIncremental> + <GenerateManifest Condition="'$(Configuration)|$(Platform)'=='Release|x64'">false</GenerateManifest> + <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">AllRules.ruleset</CodeAnalysisRuleSet> + <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" /> + <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" /> + <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Release|x64'">AllRules.ruleset</CodeAnalysisRuleSet> + <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Release|x64'" /> + <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Release|x64'" /> + </PropertyGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> + <ClCompile> + <Optimization>MaxSpeed</Optimization> + <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion> + <OmitFramePointers>true</OmitFramePointers> + <AdditionalIncludeDirectories>..\..\..;..\..\minizip;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> + <PreprocessorDefinitions>WIN32;ZLIB_WINAPI;NDEBUG;_CONSOLE;NO_MSCVER_FILE64_FUNC;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <StringPooling>true</StringPooling> + <BasicRuntimeChecks>Default</BasicRuntimeChecks> + <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary> + <BufferSecurityCheck>false</BufferSecurityCheck> + <FunctionLevelLinking>true</FunctionLevelLinking> + <PrecompiledHeader> + </PrecompiledHeader> + <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation> + <WarningLevel>Level3</WarningLevel> + <DebugInformationFormat>ProgramDatabase</DebugInformationFormat> + </ClCompile> + <Link> + <AdditionalDependencies>x86\ZlibDllRelease\zlibwapi.lib;%(WDK32Dependencies);%(AdditionalDependencies)</AdditionalDependencies> + <OutputFile>$(OutDir)testzlibdll.exe</OutputFile> + <GenerateDebugInformation>true</GenerateDebugInformation> + <SubSystem>Console</SubSystem> + <OptimizeReferences>true</OptimizeReferences> + <EnableCOMDATFolding>true</EnableCOMDATFolding> + <RandomizedBaseAddress>false</RandomizedBaseAddress> + <DataExecutionPrevention> + </DataExecutionPrevention> + <TargetMachine>MachineX86</TargetMachine> + <AdditionalLibraryDirectories>%(WDK32LibraryDirectories)</AdditionalLibraryDirectories> + </Link> + </ItemDefinitionGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'"> + <Midl> + <TargetEnvironment>X64</TargetEnvironment> + </Midl> + <ClCompile> + <Optimization>MaxSpeed</Optimization> + <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion> + <OmitFramePointers>true</OmitFramePointers> + <AdditionalIncludeDirectories>..\..\..;..\..\minizip;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> + <PreprocessorDefinitions>ZLIB_WINAPI;NDEBUG;_CONSOLE;WIN64;NO_MSCVER_FILE64_FUNC;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <StringPooling>true</StringPooling> + <BasicRuntimeChecks>Default</BasicRuntimeChecks> + <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary> + <BufferSecurityCheck>false</BufferSecurityCheck> + <FunctionLevelLinking>true</FunctionLevelLinking> + <PrecompiledHeader> + </PrecompiledHeader> + <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation> + <WarningLevel>Level3</WarningLevel> + <DebugInformationFormat>ProgramDatabase</DebugInformationFormat> + </ClCompile> + <Link> + <AdditionalDependencies>x64\ZlibDllRelease\zlibwapi.lib;%(WDK64Dependencies);%(AdditionalDependencies)</AdditionalDependencies> + <OutputFile>$(OutDir)testzlibdll.exe</OutputFile> + <GenerateDebugInformation>true</GenerateDebugInformation> + <SubSystem>Console</SubSystem> + <OptimizeReferences>true</OptimizeReferences> + <EnableCOMDATFolding>true</EnableCOMDATFolding> + <TargetMachine>MachineX64</TargetMachine> + <AdditionalLibraryDirectories>%(WDK64LibraryDirectories)</AdditionalLibraryDirectories> + </Link> + </ItemDefinitionGroup> + <ItemGroup> + <ClCompile Include="..\..\testzlib\testzlib.c" /> + </ItemGroup> + <ItemGroup> + <ProjectReference Include="zlibvc.vcxproj"> + <Project>{8fd826f8-3739-44e6-8cc8-997122e53b8d}</Project> + </ProjectReference> + </ItemGroup> + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" /> + <ImportGroup Label="ExtensionTargets"> + </ImportGroup> +</Project> \ No newline at end of file diff --git a/win32/ext/zlib-wdk/testzlibdll.vcxproj.filters b/win32/ext/zlib-wdk/testzlibdll.vcxproj.filters new file mode 100644 index 00000000..53a8693b --- /dev/null +++ b/win32/ext/zlib-wdk/testzlibdll.vcxproj.filters @@ -0,0 +1,22 @@ +<?xml version="1.0" encoding="utf-8"?> +<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <ItemGroup> + <Filter Include="Source Files"> + <UniqueIdentifier>{fa61a89f-93fc-4c89-b29e-36224b7592f4}</UniqueIdentifier> + <Extensions>cpp;c;cxx;def;odl;idl;hpj;bat;asm</Extensions> + </Filter> + <Filter Include="Header Files"> + <UniqueIdentifier>{d4b85da0-2ba2-4934-b57f-e2584e3848ee}</UniqueIdentifier> + <Extensions>h;hpp;hxx;hm;inl;inc</Extensions> + </Filter> + <Filter Include="Resource Files"> + <UniqueIdentifier>{e573e075-00bd-4a7d-bd67-a8cc9bfc5aca}</UniqueIdentifier> + <Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe</Extensions> + </Filter> + </ItemGroup> + <ItemGroup> + <ClCompile Include="..\..\testzlib\testzlib.c"> + <Filter>Source Files</Filter> + </ClCompile> + </ItemGroup> +</Project> \ No newline at end of file diff --git a/win32/ext/zlib-wdk/testzlibdll.vcxproj.user b/win32/ext/zlib-wdk/testzlibdll.vcxproj.user new file mode 100644 index 00000000..695b5c78 --- /dev/null +++ b/win32/ext/zlib-wdk/testzlibdll.vcxproj.user @@ -0,0 +1,3 @@ +<?xml version="1.0" encoding="utf-8"?> +<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> +</Project> \ No newline at end of file diff --git a/win32/ext/zlib-wdk/zlib.rc b/win32/ext/zlib-wdk/zlib.rc new file mode 100644 index 00000000..f8224508 --- /dev/null +++ b/win32/ext/zlib-wdk/zlib.rc @@ -0,0 +1,32 @@ +#include <windows.h> + +#define IDR_VERSION1 1 +IDR_VERSION1 VERSIONINFO MOVEABLE IMPURE LOADONCALL DISCARDABLE + FILEVERSION 1,2,5,0 + PRODUCTVERSION 1,2,5,0 + FILEFLAGSMASK VS_FFI_FILEFLAGSMASK + FILEFLAGS 0 + FILEOS VOS_DOS_WINDOWS32 + FILETYPE VFT_DLL + FILESUBTYPE 0 // not used +BEGIN + BLOCK "StringFileInfo" + BEGIN + BLOCK "040904E4" + //language ID = U.S. English, char set = Windows, Multilingual + + BEGIN + VALUE "FileDescription", "zlib data compression and ZIP file I/O library\0" + VALUE "FileVersion", "1.2.5\0" + VALUE "InternalName", "zlib\0" + VALUE "OriginalFilename", "zlib.dll\0" + VALUE "ProductName", "ZLib.DLL\0" + VALUE "Comments","DLL support by Alessandro Iacopetti & Gilles Vollant\0" + VALUE "LegalCopyright", "(C) 1995-2010 Jean-loup Gailly & Mark Adler\0" + END + END + BLOCK "VarFileInfo" + BEGIN + VALUE "Translation", 0x0409, 1252 + END +END diff --git a/win32/ext/zlib-wdk/zlibstat.vcxproj b/win32/ext/zlib-wdk/zlibstat.vcxproj new file mode 100644 index 00000000..13d887ff --- /dev/null +++ b/win32/ext/zlib-wdk/zlibstat.vcxproj @@ -0,0 +1,139 @@ +<?xml version="1.0" encoding="utf-8"?> +<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <ItemGroup Label="ProjectConfigurations"> + <ProjectConfiguration Include="Release|Win32"> + <Configuration>Release</Configuration> + <Platform>Win32</Platform> + </ProjectConfiguration> + <ProjectConfiguration Include="Release|x64"> + <Configuration>Release</Configuration> + <Platform>x64</Platform> + </ProjectConfiguration> + </ItemGroup> + <PropertyGroup Label="Globals"> + <ProjectGuid>{745DEC58-EBB3-47A9-A9B8-4C6627C01BF8}</ProjectGuid> + </PropertyGroup> + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" /> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration"> + <ConfigurationType>StaticLibrary</ConfigurationType> + <UseOfMfc>false</UseOfMfc> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration"> + <ConfigurationType>StaticLibrary</ConfigurationType> + <UseOfMfc>false</UseOfMfc> + </PropertyGroup> + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" /> + <ImportGroup Label="ExtensionSettings"> + </ImportGroup> + <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets"> + <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> + <Import Project="install.props" /> + </ImportGroup> + <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets"> + <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> + <Import Project="install.props" /> + </ImportGroup> + <PropertyGroup Label="UserMacros" /> + <PropertyGroup> + <_ProjectFileVersion>10.0.30128.1</_ProjectFileVersion> + <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">x86\ZlibStat$(Configuration)\</OutDir> + <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">x86\ZlibStat$(Configuration)\Tmp\</IntDir> + <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">x64\ZlibStat$(Configuration)\</OutDir> + <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">x64\ZlibStat$(Configuration)\Tmp\</IntDir> + <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">AllRules.ruleset</CodeAnalysisRuleSet> + <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" /> + <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" /> + <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Release|x64'">AllRules.ruleset</CodeAnalysisRuleSet> + <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Release|x64'" /> + <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Release|x64'" /> + </PropertyGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> + <ClCompile> + <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion> + <AdditionalIncludeDirectories>..\..\..;..\..\masmx86;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> + <PreprocessorDefinitions>WIN32;ZLIB_WINAPI;_CRT_NONSTDC_NO_WARNINGS;NO_MSCVER_FILE64_FUNC;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <StringPooling>true</StringPooling> + <ExceptionHandling> + </ExceptionHandling> + <RuntimeLibrary>MultiThreaded</RuntimeLibrary> + <BufferSecurityCheck>false</BufferSecurityCheck> + <FunctionLevelLinking>true</FunctionLevelLinking> + <PrecompiledHeaderOutputFile>$(IntDir)zlibstat.pch</PrecompiledHeaderOutputFile> + <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation> + <ObjectFileName>$(IntDir)</ObjectFileName> + <ProgramDataBaseFileName>$(OutDir)</ProgramDataBaseFileName> + <WarningLevel>Level3</WarningLevel> + <SuppressStartupBanner>true</SuppressStartupBanner> + </ClCompile> + <ResourceCompile> + <Culture>0x040c</Culture> + </ResourceCompile> + <Lib> + <AdditionalOptions>/MACHINE:X86 /NODEFAULTLIB %(AdditionalOptions)</AdditionalOptions> + <OutputFile>$(OutDir)zlibstat.lib</OutputFile> + <SuppressStartupBanner>true</SuppressStartupBanner> + </Lib> + </ItemDefinitionGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'"> + <Midl> + <TargetEnvironment>X64</TargetEnvironment> + </Midl> + <ClCompile> + <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion> + <AdditionalIncludeDirectories>..\..\..;..\..\masmx86;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> + <PreprocessorDefinitions>ZLIB_WINAPI;_CRT_NONSTDC_NO_WARNINGS;WIN64;NO_MSCVER_FILE64_FUNC;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <StringPooling>true</StringPooling> + <ExceptionHandling> + </ExceptionHandling> + <RuntimeLibrary>MultiThreaded</RuntimeLibrary> + <BufferSecurityCheck>false</BufferSecurityCheck> + <FunctionLevelLinking>true</FunctionLevelLinking> + <PrecompiledHeaderOutputFile>$(IntDir)zlibstat.pch</PrecompiledHeaderOutputFile> + <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation> + <ObjectFileName>$(IntDir)</ObjectFileName> + <ProgramDataBaseFileName>$(OutDir)</ProgramDataBaseFileName> + <WarningLevel>Level3</WarningLevel> + <SuppressStartupBanner>true</SuppressStartupBanner> + </ClCompile> + <ResourceCompile> + <Culture>0x040c</Culture> + </ResourceCompile> + <Lib> + <AdditionalOptions>/MACHINE:AMD64 /NODEFAULTLIB %(AdditionalOptions)</AdditionalOptions> + <OutputFile>$(OutDir)zlibstat.lib</OutputFile> + <SuppressStartupBanner>true</SuppressStartupBanner> + </Lib> + </ItemDefinitionGroup> + <ItemGroup> + <ClCompile Include="..\..\..\adler32.c" /> + <ClCompile Include="..\..\..\compress.c" /> + <ClCompile Include="..\..\..\crc32.c" /> + <ClCompile Include="..\..\..\deflate.c" /> + <ClCompile Include="..\..\..\gzclose.c" /> + <ClCompile Include="..\..\..\gzlib.c" /> + <ClCompile Include="..\..\..\gzread.c" /> + <ClCompile Include="..\..\..\gzwrite.c" /> + <ClCompile Include="..\..\..\infback.c" /> + <ClCompile Include="..\..\masmx64\inffas8664.c"> + <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild> + </ClCompile> + <ClCompile Include="..\..\..\inffast.c" /> + <ClCompile Include="..\..\..\inflate.c" /> + <ClCompile Include="..\..\..\inftrees.c" /> + <ClCompile Include="..\..\minizip\ioapi.c" /> + <ClCompile Include="..\..\..\trees.c" /> + <ClCompile Include="..\..\..\uncompr.c" /> + <ClCompile Include="..\..\minizip\unzip.c" /> + <ClCompile Include="..\..\minizip\zip.c" /> + <ClCompile Include="..\..\..\zutil.c" /> + </ItemGroup> + <ItemGroup> + <ResourceCompile Include="zlib.rc" /> + </ItemGroup> + <ItemGroup> + <None Include="zlibvc.def" /> + </ItemGroup> + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" /> + <ImportGroup Label="ExtensionTargets"> + </ImportGroup> +</Project> \ No newline at end of file diff --git a/win32/ext/zlib-wdk/zlibstat.vcxproj.filters b/win32/ext/zlib-wdk/zlibstat.vcxproj.filters new file mode 100644 index 00000000..c8c7f7ea --- /dev/null +++ b/win32/ext/zlib-wdk/zlibstat.vcxproj.filters @@ -0,0 +1,77 @@ +<?xml version="1.0" encoding="utf-8"?> +<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <ItemGroup> + <Filter Include="Source Files"> + <UniqueIdentifier>{174213f6-7f66-4ae8-a3a8-a1e0a1e6ffdd}</UniqueIdentifier> + </Filter> + </ItemGroup> + <ItemGroup> + <ClCompile Include="..\..\..\adler32.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="..\..\..\compress.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="..\..\..\crc32.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="..\..\..\deflate.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="..\..\..\gzclose.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="..\..\..\gzlib.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="..\..\..\gzread.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="..\..\..\gzwrite.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="..\..\..\infback.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="..\..\masmx64\inffas8664.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="..\..\..\inffast.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="..\..\..\inflate.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="..\..\..\inftrees.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="..\..\minizip\ioapi.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="..\..\..\trees.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="..\..\..\uncompr.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="..\..\minizip\unzip.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="..\..\minizip\zip.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="..\..\..\zutil.c"> + <Filter>Source Files</Filter> + </ClCompile> + </ItemGroup> + <ItemGroup> + <ResourceCompile Include="zlib.rc"> + <Filter>Source Files</Filter> + </ResourceCompile> + </ItemGroup> + <ItemGroup> + <None Include="zlibvc.def"> + <Filter>Source Files</Filter> + </None> + </ItemGroup> +</Project> \ No newline at end of file diff --git a/win32/ext/zlib-wdk/zlibstat.vcxproj.user b/win32/ext/zlib-wdk/zlibstat.vcxproj.user new file mode 100644 index 00000000..695b5c78 --- /dev/null +++ b/win32/ext/zlib-wdk/zlibstat.vcxproj.user @@ -0,0 +1,3 @@ +<?xml version="1.0" encoding="utf-8"?> +<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> +</Project> \ No newline at end of file diff --git a/win32/ext/zlib-wdk/zlibvc.def b/win32/ext/zlib-wdk/zlibvc.def new file mode 100644 index 00000000..0269ef72 --- /dev/null +++ b/win32/ext/zlib-wdk/zlibvc.def @@ -0,0 +1,130 @@ +LIBRARY +; zlib data compression and ZIP file I/O library + +VERSION 1.24 + +EXPORTS + adler32 @1 + compress @2 + crc32 @3 + deflate @4 + deflateCopy @5 + deflateEnd @6 + deflateInit2_ @7 + deflateInit_ @8 + deflateParams @9 + deflateReset @10 + deflateSetDictionary @11 + gzclose @12 + gzdopen @13 + gzerror @14 + gzflush @15 + gzopen @16 + gzread @17 + gzwrite @18 + inflate @19 + inflateEnd @20 + inflateInit2_ @21 + inflateInit_ @22 + inflateReset @23 + inflateSetDictionary @24 + inflateSync @25 + uncompress @26 + zlibVersion @27 + gzprintf @28 + gzputc @29 + gzgetc @30 + gzseek @31 + gzrewind @32 + gztell @33 + gzeof @34 + gzsetparams @35 + zError @36 + inflateSyncPoint @37 + get_crc_table @38 + compress2 @39 + gzputs @40 + gzgets @41 + inflateCopy @42 + inflateBackInit_ @43 + inflateBack @44 + inflateBackEnd @45 + compressBound @46 + deflateBound @47 + gzclearerr @48 + gzungetc @49 + zlibCompileFlags @50 + deflatePrime @51 + + unzOpen @61 + unzClose @62 + unzGetGlobalInfo @63 + unzGetCurrentFileInfo @64 + unzGoToFirstFile @65 + unzGoToNextFile @66 + unzOpenCurrentFile @67 + unzReadCurrentFile @68 + unzOpenCurrentFile3 @69 + unztell @70 + unzeof @71 + unzCloseCurrentFile @72 + unzGetGlobalComment @73 + unzStringFileNameCompare @74 + unzLocateFile @75 + unzGetLocalExtrafield @76 + unzOpen2 @77 + unzOpenCurrentFile2 @78 + unzOpenCurrentFilePassword @79 + + zipOpen @80 + zipOpenNewFileInZip @81 + zipWriteInFileInZip @82 + zipCloseFileInZip @83 + zipClose @84 + zipOpenNewFileInZip2 @86 + zipCloseFileInZipRaw @87 + zipOpen2 @88 + zipOpenNewFileInZip3 @89 + + unzGetFilePos @100 + unzGoToFilePos @101 + + fill_win32_filefunc @110 + +; zlibwapi v1.2.4 added: + fill_win32_filefunc64 @111 + fill_win32_filefunc64A @112 + fill_win32_filefunc64W @113 + + unzOpen64 @120 + unzOpen2_64 @121 + unzGetGlobalInfo64 @122 + unzGetCurrentFileInfo64 @124 + unzGetCurrentFileZStreamPos64 @125 + unztell64 @126 + unzGetFilePos64 @127 + unzGoToFilePos64 @128 + + zipOpen64 @130 + zipOpen2_64 @131 + zipOpenNewFileInZip64 @132 + zipOpenNewFileInZip2_64 @133 + zipOpenNewFileInZip3_64 @134 + zipOpenNewFileInZip4_64 @135 + zipCloseFileInZipRaw64 @136 + +; zlib1 v1.2.4 added: + adler32_combine @140 + crc32_combine @142 + deflateSetHeader @144 + deflateTune @145 + gzbuffer @146 + gzclose_r @147 + gzclose_w @148 + gzdirect @149 + gzoffset @150 + inflateGetHeader @156 + inflateMark @157 + inflatePrime @158 + inflateReset2 @159 + inflateUndermine @160 diff --git a/win32/ext/zlib-wdk/zlibvc.sln b/win32/ext/zlib-wdk/zlibvc.sln new file mode 100644 index 00000000..de207fdc --- /dev/null +++ b/win32/ext/zlib-wdk/zlibvc.sln @@ -0,0 +1,62 @@ + +Microsoft Visual Studio Solution File, Format Version 11.00 +# Visual Studio 2010 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "zlibvc", "zlibvc.vcxproj", "{8FD826F8-3739-44E6-8CC8-997122E53B8D}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "zlibstat", "zlibstat.vcxproj", "{745DEC58-EBB3-47A9-A9B8-4C6627C01BF8}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "testzlib", "testzlib.vcxproj", "{AA6666AA-E09F-4135-9C0C-4FE50C3C654B}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "testzlibdll", "testzlibdll.vcxproj", "{C52F9E7B-498A-42BE-8DB4-85A15694366A}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "minizip", "minizip.vcxproj", "{48CDD9DC-E09F-4135-9C0C-4FE50C3C654B}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "miniunz", "miniunz.vcxproj", "{C52F9E7B-498A-42BE-8DB4-85A15694382A}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "install", "install.vcxproj", "{6064E3A9-3939-4937-A387-C09299FC2952}" + ProjectSection(ProjectDependencies) = postProject + {745DEC58-EBB3-47A9-A9B8-4C6627C01BF8} = {745DEC58-EBB3-47A9-A9B8-4C6627C01BF8} + {C52F9E7B-498A-42BE-8DB4-85A15694366A} = {C52F9E7B-498A-42BE-8DB4-85A15694366A} + {C52F9E7B-498A-42BE-8DB4-85A15694382A} = {C52F9E7B-498A-42BE-8DB4-85A15694382A} + {AA6666AA-E09F-4135-9C0C-4FE50C3C654B} = {AA6666AA-E09F-4135-9C0C-4FE50C3C654B} + {48CDD9DC-E09F-4135-9C0C-4FE50C3C654B} = {48CDD9DC-E09F-4135-9C0C-4FE50C3C654B} + {8FD826F8-3739-44E6-8CC8-997122E53B8D} = {8FD826F8-3739-44E6-8CC8-997122E53B8D} + EndProjectSection +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Release|Win32 = Release|Win32 + Release|x64 = Release|x64 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {8FD826F8-3739-44E6-8CC8-997122E53B8D}.Release|Win32.ActiveCfg = Release|Win32 + {8FD826F8-3739-44E6-8CC8-997122E53B8D}.Release|Win32.Build.0 = Release|Win32 + {8FD826F8-3739-44E6-8CC8-997122E53B8D}.Release|x64.ActiveCfg = Release|x64 + {8FD826F8-3739-44E6-8CC8-997122E53B8D}.Release|x64.Build.0 = Release|x64 + {745DEC58-EBB3-47A9-A9B8-4C6627C01BF8}.Release|Win32.ActiveCfg = Release|Win32 + {745DEC58-EBB3-47A9-A9B8-4C6627C01BF8}.Release|Win32.Build.0 = Release|Win32 + {745DEC58-EBB3-47A9-A9B8-4C6627C01BF8}.Release|x64.ActiveCfg = Release|x64 + {745DEC58-EBB3-47A9-A9B8-4C6627C01BF8}.Release|x64.Build.0 = Release|x64 + {AA6666AA-E09F-4135-9C0C-4FE50C3C654B}.Release|Win32.ActiveCfg = Release|Win32 + {AA6666AA-E09F-4135-9C0C-4FE50C3C654B}.Release|x64.ActiveCfg = Release|x64 + {C52F9E7B-498A-42BE-8DB4-85A15694366A}.Release|Win32.ActiveCfg = Release|Win32 + {C52F9E7B-498A-42BE-8DB4-85A15694366A}.Release|Win32.Build.0 = Release|Win32 + {C52F9E7B-498A-42BE-8DB4-85A15694366A}.Release|x64.ActiveCfg = Release|x64 + {C52F9E7B-498A-42BE-8DB4-85A15694366A}.Release|x64.Build.0 = Release|x64 + {48CDD9DC-E09F-4135-9C0C-4FE50C3C654B}.Release|Win32.ActiveCfg = Release|Win32 + {48CDD9DC-E09F-4135-9C0C-4FE50C3C654B}.Release|Win32.Build.0 = Release|Win32 + {48CDD9DC-E09F-4135-9C0C-4FE50C3C654B}.Release|x64.ActiveCfg = Release|x64 + {48CDD9DC-E09F-4135-9C0C-4FE50C3C654B}.Release|x64.Build.0 = Release|x64 + {C52F9E7B-498A-42BE-8DB4-85A15694382A}.Release|Win32.ActiveCfg = Release|Win32 + {C52F9E7B-498A-42BE-8DB4-85A15694382A}.Release|Win32.Build.0 = Release|Win32 + {C52F9E7B-498A-42BE-8DB4-85A15694382A}.Release|x64.ActiveCfg = Release|x64 + {C52F9E7B-498A-42BE-8DB4-85A15694382A}.Release|x64.Build.0 = Release|x64 + {6064E3A9-3939-4937-A387-C09299FC2952}.Release|Win32.ActiveCfg = Release|Win32 + {6064E3A9-3939-4937-A387-C09299FC2952}.Release|Win32.Build.0 = Release|Win32 + {6064E3A9-3939-4937-A387-C09299FC2952}.Release|x64.ActiveCfg = Release|x64 + {6064E3A9-3939-4937-A387-C09299FC2952}.Release|x64.Build.0 = Release|x64 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/win32/ext/zlib-wdk/zlibvc.vcxproj b/win32/ext/zlib-wdk/zlibvc.vcxproj new file mode 100644 index 00000000..0d2448d4 --- /dev/null +++ b/win32/ext/zlib-wdk/zlibvc.vcxproj @@ -0,0 +1,199 @@ +<?xml version="1.0" encoding="utf-8"?> +<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <ItemGroup Label="ProjectConfigurations"> + <ProjectConfiguration Include="Release|Win32"> + <Configuration>Release</Configuration> + <Platform>Win32</Platform> + </ProjectConfiguration> + <ProjectConfiguration Include="Release|x64"> + <Configuration>Release</Configuration> + <Platform>x64</Platform> + </ProjectConfiguration> + </ItemGroup> + <PropertyGroup Label="Globals"> + <ProjectGuid>{8FD826F8-3739-44E6-8CC8-997122E53B8D}</ProjectGuid> + </PropertyGroup> + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" /> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration"> + <ConfigurationType>DynamicLibrary</ConfigurationType> + <UseOfMfc>false</UseOfMfc> + <WholeProgramOptimization>true</WholeProgramOptimization> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration"> + <ConfigurationType>DynamicLibrary</ConfigurationType> + <UseOfMfc>false</UseOfMfc> + <WholeProgramOptimization>true</WholeProgramOptimization> + </PropertyGroup> + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" /> + <ImportGroup Label="ExtensionSettings"> + </ImportGroup> + <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets"> + <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> + <Import Project="install.props" /> + </ImportGroup> + <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets"> + <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> + <Import Project="install.props" /> + </ImportGroup> + <PropertyGroup Label="UserMacros" /> + <PropertyGroup> + <_ProjectFileVersion>10.0.30128.1</_ProjectFileVersion> + <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">x86\ZlibDll$(Configuration)\</OutDir> + <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">x86\ZlibDll$(Configuration)\Tmp\</IntDir> + <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</LinkIncremental> + <GenerateManifest Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</GenerateManifest> + <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">x64\ZlibDll$(Configuration)\</OutDir> + <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">x64\ZlibDll$(Configuration)\Tmp\</IntDir> + <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|x64'">false</LinkIncremental> + <GenerateManifest Condition="'$(Configuration)|$(Platform)'=='Release|x64'">false</GenerateManifest> + <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">AllRules.ruleset</CodeAnalysisRuleSet> + <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" /> + <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" /> + <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Release|x64'">AllRules.ruleset</CodeAnalysisRuleSet> + <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Release|x64'" /> + <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Release|x64'" /> + </PropertyGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> + <Midl> + <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <MkTypLibCompatible>true</MkTypLibCompatible> + <SuppressStartupBanner>true</SuppressStartupBanner> + <TargetEnvironment>Win32</TargetEnvironment> + <TypeLibraryName>$(OutDir)zlibvc.tlb</TypeLibraryName> + </Midl> + <ClCompile> + <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion> + <AdditionalIncludeDirectories>..\..\..;..\..\masmx86;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> + <PreprocessorDefinitions>WIN32;_CRT_NONSTDC_NO_WARNINGS;ZLIB_WINAPI;NO_MSCVER_FILE64_FUNC;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <StringPooling>true</StringPooling> + <ExceptionHandling> + </ExceptionHandling> + <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary> + <BufferSecurityCheck>false</BufferSecurityCheck> + <FunctionLevelLinking>true</FunctionLevelLinking> + <PrecompiledHeaderOutputFile>$(IntDir)zlibvc.pch</PrecompiledHeaderOutputFile> + <AssemblerOutput>All</AssemblerOutput> + <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation> + <ObjectFileName>$(IntDir)</ObjectFileName> + <ProgramDataBaseFileName>$(OutDir)</ProgramDataBaseFileName> + <BrowseInformation> + </BrowseInformation> + <WarningLevel>Level3</WarningLevel> + <SuppressStartupBanner>true</SuppressStartupBanner> + </ClCompile> + <ResourceCompile> + <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <Culture>0x040c</Culture> + </ResourceCompile> + <Link> + <AdditionalOptions>/MACHINE:I386 %(AdditionalOptions)</AdditionalOptions> + <OutputFile>$(OutDir)zlibwapi.dll</OutputFile> + <SuppressStartupBanner>true</SuppressStartupBanner> + <IgnoreAllDefaultLibraries>false</IgnoreAllDefaultLibraries> + <ModuleDefinitionFile>.\zlibvc.def</ModuleDefinitionFile> + <ProgramDatabaseFile>$(OutDir)zlibwapi.pdb</ProgramDatabaseFile> + <GenerateMapFile>true</GenerateMapFile> + <MapFileName>$(OutDir)zlibwapi.map</MapFileName> + <SubSystem>Windows</SubSystem> + <RandomizedBaseAddress>false</RandomizedBaseAddress> + <DataExecutionPrevention> + </DataExecutionPrevention> + <ImportLibrary>$(OutDir)zlibwapi.lib</ImportLibrary> + <GenerateDebugInformation>true</GenerateDebugInformation> + <AdditionalDependencies>%(WDK32Dependencies);%(AdditionalDependencies)</AdditionalDependencies> + <AdditionalLibraryDirectories>%(WDK32LibraryDirectories)</AdditionalLibraryDirectories> + </Link> + </ItemDefinitionGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'"> + <Midl> + <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <MkTypLibCompatible>true</MkTypLibCompatible> + <SuppressStartupBanner>true</SuppressStartupBanner> + <TargetEnvironment>X64</TargetEnvironment> + <TypeLibraryName>$(OutDir)zlibvc.tlb</TypeLibraryName> + </Midl> + <ClCompile> + <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion> + <AdditionalIncludeDirectories>..\..\..;..\..\masmx86;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> + <PreprocessorDefinitions>WIN32;_CRT_NONSTDC_NO_WARNINGS;ZLIB_WINAPI;WIN64;NO_MSCVER_FILE64_FUNC;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <StringPooling>true</StringPooling> + <ExceptionHandling> + </ExceptionHandling> + <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary> + <BufferSecurityCheck>false</BufferSecurityCheck> + <FunctionLevelLinking>true</FunctionLevelLinking> + <PrecompiledHeaderOutputFile>$(IntDir)zlibvc.pch</PrecompiledHeaderOutputFile> + <AssemblerOutput>All</AssemblerOutput> + <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation> + <ObjectFileName>$(IntDir)</ObjectFileName> + <ProgramDataBaseFileName>$(OutDir)</ProgramDataBaseFileName> + <BrowseInformation> + </BrowseInformation> + <WarningLevel>Level3</WarningLevel> + <SuppressStartupBanner>true</SuppressStartupBanner> + </ClCompile> + <ResourceCompile> + <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <Culture>0x040c</Culture> + </ResourceCompile> + <Link> + <OutputFile>$(OutDir)zlibwapi.dll</OutputFile> + <SuppressStartupBanner>true</SuppressStartupBanner> + <IgnoreAllDefaultLibraries>false</IgnoreAllDefaultLibraries> + <ModuleDefinitionFile>.\zlibvc.def</ModuleDefinitionFile> + <ProgramDatabaseFile>$(OutDir)zlibwapi.pdb</ProgramDatabaseFile> + <GenerateMapFile>true</GenerateMapFile> + <MapFileName>$(OutDir)zlibwapi.map</MapFileName> + <SubSystem>Windows</SubSystem> + <ImportLibrary>$(OutDir)zlibwapi.lib</ImportLibrary> + <TargetMachine>MachineX64</TargetMachine> + <GenerateDebugInformation>true</GenerateDebugInformation> + <AdditionalDependencies>%(WDK64Dependencies)</AdditionalDependencies> + <AdditionalLibraryDirectories>%(WDK64LibraryDirectories)</AdditionalLibraryDirectories> + </Link> + </ItemDefinitionGroup> + <ItemGroup> + <ClCompile Include="..\..\..\adler32.c" /> + <ClCompile Include="..\..\..\compress.c" /> + <ClCompile Include="..\..\..\crc32.c" /> + <ClCompile Include="..\..\..\deflate.c" /> + <ClCompile Include="..\..\..\gzclose.c" /> + <ClCompile Include="..\..\..\gzlib.c" /> + <ClCompile Include="..\..\..\gzread.c" /> + <ClCompile Include="..\..\..\gzwrite.c" /> + <ClCompile Include="..\..\..\infback.c" /> + <ClCompile Include="..\..\masmx64\inffas8664.c"> + <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild> + </ClCompile> + <ClCompile Include="..\..\..\inffast.c" /> + <ClCompile Include="..\..\..\inflate.c" /> + <ClCompile Include="..\..\..\inftrees.c" /> + <ClCompile Include="..\..\minizip\ioapi.c" /> + <ClCompile Include="..\..\minizip\iowin32.c" /> + <ClCompile Include="..\..\..\trees.c" /> + <ClCompile Include="..\..\..\uncompr.c" /> + <ClCompile Include="..\..\minizip\unzip.c" /> + <ClCompile Include="..\..\minizip\zip.c" /> + <ClCompile Include="..\..\..\zutil.c" /> + </ItemGroup> + <ItemGroup> + <ResourceCompile Include="zlib.rc" /> + </ItemGroup> + <ItemGroup> + <None Include="zlibvc.def" /> + </ItemGroup> + <ItemGroup> + <ClInclude Include="..\..\..\deflate.h" /> + <ClInclude Include="..\..\..\infblock.h" /> + <ClInclude Include="..\..\..\infcodes.h" /> + <ClInclude Include="..\..\..\inffast.h" /> + <ClInclude Include="..\..\..\inftrees.h" /> + <ClInclude Include="..\..\..\infutil.h" /> + <ClInclude Include="..\..\..\zconf.h" /> + <ClInclude Include="..\..\..\zlib.h" /> + <ClInclude Include="..\..\..\zutil.h" /> + </ItemGroup> + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" /> + <ImportGroup Label="ExtensionTargets"> + </ImportGroup> +</Project> \ No newline at end of file diff --git a/win32/ext/zlib-wdk/zlibvc.vcxproj.filters b/win32/ext/zlib-wdk/zlibvc.vcxproj.filters new file mode 100644 index 00000000..180b71cd --- /dev/null +++ b/win32/ext/zlib-wdk/zlibvc.vcxproj.filters @@ -0,0 +1,118 @@ +<?xml version="1.0" encoding="utf-8"?> +<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <ItemGroup> + <Filter Include="Source Files"> + <UniqueIdentifier>{07934a85-8b61-443d-a0ee-b2eedb74f3cd}</UniqueIdentifier> + <Extensions>cpp;c;cxx;rc;def;r;odl;hpj;bat;for;f90</Extensions> + </Filter> + <Filter Include="Header Files"> + <UniqueIdentifier>{1d99675b-433d-4a21-9e50-ed4ab8b19762}</UniqueIdentifier> + <Extensions>h;hpp;hxx;hm;inl;fi;fd</Extensions> + </Filter> + <Filter Include="Resource Files"> + <UniqueIdentifier>{431c0958-fa71-44d0-9084-2d19d100c0cc}</UniqueIdentifier> + <Extensions>ico;cur;bmp;dlg;rc2;rct;bin;cnt;rtf;gif;jpg;jpeg;jpe</Extensions> + </Filter> + </ItemGroup> + <ItemGroup> + <ClCompile Include="..\..\..\adler32.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="..\..\..\compress.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="..\..\..\crc32.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="..\..\..\deflate.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="..\..\..\gzclose.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="..\..\..\gzlib.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="..\..\..\gzread.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="..\..\..\gzwrite.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="..\..\..\infback.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="..\..\masmx64\inffas8664.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="..\..\..\inffast.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="..\..\..\inflate.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="..\..\..\inftrees.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="..\..\minizip\ioapi.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="..\..\minizip\iowin32.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="..\..\..\trees.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="..\..\..\uncompr.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="..\..\minizip\unzip.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="..\..\minizip\zip.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="..\..\..\zutil.c"> + <Filter>Source Files</Filter> + </ClCompile> + </ItemGroup> + <ItemGroup> + <ResourceCompile Include="zlib.rc"> + <Filter>Source Files</Filter> + </ResourceCompile> + </ItemGroup> + <ItemGroup> + <None Include="zlibvc.def"> + <Filter>Source Files</Filter> + </None> + </ItemGroup> + <ItemGroup> + <ClInclude Include="..\..\..\deflate.h"> + <Filter>Header Files</Filter> + </ClInclude> + <ClInclude Include="..\..\..\infblock.h"> + <Filter>Header Files</Filter> + </ClInclude> + <ClInclude Include="..\..\..\infcodes.h"> + <Filter>Header Files</Filter> + </ClInclude> + <ClInclude Include="..\..\..\inffast.h"> + <Filter>Header Files</Filter> + </ClInclude> + <ClInclude Include="..\..\..\inftrees.h"> + <Filter>Header Files</Filter> + </ClInclude> + <ClInclude Include="..\..\..\infutil.h"> + <Filter>Header Files</Filter> + </ClInclude> + <ClInclude Include="..\..\..\zconf.h"> + <Filter>Header Files</Filter> + </ClInclude> + <ClInclude Include="..\..\..\zlib.h"> + <Filter>Header Files</Filter> + </ClInclude> + <ClInclude Include="..\..\..\zutil.h"> + <Filter>Header Files</Filter> + </ClInclude> + </ItemGroup> +</Project> \ No newline at end of file diff --git a/win32/ext/zlib-wdk/zlibvc.vcxproj.user b/win32/ext/zlib-wdk/zlibvc.vcxproj.user new file mode 100644 index 00000000..695b5c78 --- /dev/null +++ b/win32/ext/zlib-wdk/zlibvc.vcxproj.user @@ -0,0 +1,3 @@ +<?xml version="1.0" encoding="utf-8"?> +<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> +</Project> \ No newline at end of file diff --git a/win32/installer/installer.vcxproj b/win32/installer/installer.vcxproj new file mode 100644 index 00000000..0fcba484 --- /dev/null +++ b/win32/installer/installer.vcxproj @@ -0,0 +1,113 @@ +<?xml version="1.0" encoding="utf-8"?> +<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <ItemGroup Label="ProjectConfigurations"> + <ProjectConfiguration Include="Release|Win32"> + <Configuration>Release</Configuration> + <Platform>Win32</Platform> + </ProjectConfiguration> + <ProjectConfiguration Include="Release|x64"> + <Configuration>Release</Configuration> + <Platform>x64</Platform> + </ProjectConfiguration> + </ItemGroup> + <PropertyGroup Label="Globals"> + <ProjectGuid>{5A0F4962-E670-4DA2-9E45-52CC47F26E2F}</ProjectGuid> + <RootNamespace>installer</RootNamespace> + </PropertyGroup> + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" /> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration"> + <ConfigurationType>Application</ConfigurationType> + <UseDebugLibraries>false</UseDebugLibraries> + <WholeProgramOptimization>true</WholeProgramOptimization> + <CharacterSet>MultiByte</CharacterSet> + <PlatformToolset>WDK7</PlatformToolset> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration"> + <ConfigurationType>Application</ConfigurationType> + <UseDebugLibraries>false</UseDebugLibraries> + <WholeProgramOptimization>true</WholeProgramOptimization> + <CharacterSet>MultiByte</CharacterSet> + <PlatformToolset>WDK7</PlatformToolset> + </PropertyGroup> + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" /> + <ImportGroup Label="ExtensionSettings"> + </ImportGroup> + <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> + <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> + <Import Project="..\xchat.props" /> + </ImportGroup> + <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets"> + <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> + <Import Project="..\xchat.props" /> + </ImportGroup> + <PropertyGroup Label="UserMacros" /> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> + <OutDir>$(SolutionDir)build\$(PlatformName)\bin</OutDir> + <IntDir>$(SolutionDir)build\$(PlatformName)\obj\$(ProjectName)</IntDir> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'"> + <OutDir>$(SolutionDir)build\$(PlatformName)\bin</OutDir> + <IntDir>$(SolutionDir)build\$(PlatformName)\obj\$(ProjectName)</IntDir> + </PropertyGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> + <ClCompile> + <WarningLevel>Level3</WarningLevel> + <Optimization>MaxSpeed</Optimization> + <FunctionLevelLinking>true</FunctionLevelLinking> + <IntrinsicFunctions>true</IntrinsicFunctions> + </ClCompile> + <Link> + <GenerateDebugInformation>true</GenerateDebugInformation> + <EnableCOMDATFolding>true</EnableCOMDATFolding> + <OptimizeReferences>true</OptimizeReferences> + </Link> + <PreBuildEvent> + <Command>echo [Setup] > "$(OutDir)\xchat-wdk-x86.iss" +echo WizardImageFile="$(ProjectDir)\wizardimage.bmp" >> "$(OutDir)\xchat-wdk-x86.iss" +echo WizardSmallImageFile="$(ProjectDir)\wizardsmallimage.bmp" >> "$(OutDir)\xchat-wdk-x86.iss" +"$(OutDir)\version" -a >> "$(OutDir)\xchat-wdk-x86.iss" +"$(OutDir)\version" -v >> "$(OutDir)\xchat-wdk-x86.iss" +"$(OutDir)\version" -i >> "$(OutDir)\xchat-wdk-x86.iss" +"$(OutDir)\version" -o >> "$(OutDir)\xchat-wdk-x86.iss" +echo SetupIconFile="$(SolutionDir)\..\xchat.ico" >> "$(OutDir)\xchat-wdk-x86.iss" +type xchat-wdk-x86.skel.iss >> "$(OutDir)\xchat-wdk-x86.iss" +"$(ProgramFiles)\Inno Setup 5\compil32" /cc "$(OutDir)\xchat-wdk-x86.iss"</Command> + </PreBuildEvent> + </ItemDefinitionGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'"> + <ClCompile> + <WarningLevel>Level3</WarningLevel> + <Optimization>MaxSpeed</Optimization> + <FunctionLevelLinking>true</FunctionLevelLinking> + <IntrinsicFunctions>true</IntrinsicFunctions> + </ClCompile> + <Link> + <GenerateDebugInformation>true</GenerateDebugInformation> + <EnableCOMDATFolding>true</EnableCOMDATFolding> + <OptimizeReferences>true</OptimizeReferences> + </Link> + <PreBuildEvent> + <Command>echo [Setup] > "$(OutDir)\xchat-wdk-x64.iss" +echo WizardImageFile="$(ProjectDir)\wizardimage.bmp" >> "$(OutDir)\xchat-wdk-x64.iss" +echo WizardSmallImageFile="$(ProjectDir)\wizardsmallimage.bmp" >> "$(OutDir)\xchat-wdk-x64.iss" +"$(OutDir)\version" -a >> "$(OutDir)\xchat-wdk-x64.iss" +"$(OutDir)\version" -v >> "$(OutDir)\xchat-wdk-x64.iss" +"$(OutDir)\version" -i >> "$(OutDir)\xchat-wdk-x64.iss" +"$(OutDir)\version" -o >> "$(OutDir)\xchat-wdk-x64.iss" +echo SetupIconFile="$(SolutionDir)\..\xchat.ico" >> "$(OutDir)\xchat-wdk-x64.iss" +type xchat-wdk-x64.skel.iss >> "$(OutDir)\xchat-wdk-x64.iss" +"$(ProgramFiles)\Inno Setup 5\compil32" /cc "$(OutDir)\xchat-wdk-x64.iss"</Command> + </PreBuildEvent> + </ItemDefinitionGroup> + <ItemGroup> + <None Include="watercolorlite-blue.cjstyles" /> + <None Include="watercolorlite-green.cjstyles" /> + <None Include="wizardimage.bmp" /> + <None Include="wizardsmallimage.bmp" /> + <None Include="xchat-wdk-x64.skel.iss" /> + <None Include="xchat-wdk-x86.skel.iss" /> + </ItemGroup> + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" /> + <ImportGroup Label="ExtensionTargets"> + </ImportGroup> +</Project> \ No newline at end of file diff --git a/win32/installer/installer.vcxproj.filters b/win32/installer/installer.vcxproj.filters new file mode 100644 index 00000000..b18a6411 --- /dev/null +++ b/win32/installer/installer.vcxproj.filters @@ -0,0 +1,29 @@ +<?xml version="1.0" encoding="utf-8"?> +<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <ItemGroup> + <Filter Include="Resource Files"> + <UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier> + <Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms</Extensions> + </Filter> + </ItemGroup> + <ItemGroup> + <None Include="xchat-wdk-x64.skel.iss"> + <Filter>Resource Files</Filter> + </None> + <None Include="xchat-wdk-x86.skel.iss"> + <Filter>Resource Files</Filter> + </None> + <None Include="watercolorlite-blue.cjstyles"> + <Filter>Resource Files</Filter> + </None> + <None Include="watercolorlite-green.cjstyles"> + <Filter>Resource Files</Filter> + </None> + <None Include="wizardimage.bmp"> + <Filter>Resource Files</Filter> + </None> + <None Include="wizardsmallimage.bmp"> + <Filter>Resource Files</Filter> + </None> + </ItemGroup> +</Project> \ No newline at end of file diff --git a/win32/installer/installer.vcxproj.user b/win32/installer/installer.vcxproj.user new file mode 100644 index 00000000..695b5c78 --- /dev/null +++ b/win32/installer/installer.vcxproj.user @@ -0,0 +1,3 @@ +<?xml version="1.0" encoding="utf-8"?> +<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> +</Project> \ No newline at end of file diff --git a/win32/installer/watercolorlite-blue.cjstyles b/win32/installer/watercolorlite-blue.cjstyles new file mode 100644 index 00000000..a457029b --- /dev/null +++ b/win32/installer/watercolorlite-blue.cjstyles Binary files differdiff --git a/win32/installer/watercolorlite-green.cjstyles b/win32/installer/watercolorlite-green.cjstyles new file mode 100644 index 00000000..2b77026d --- /dev/null +++ b/win32/installer/watercolorlite-green.cjstyles Binary files differdiff --git a/win32/installer/wizardimage.bmp b/win32/installer/wizardimage.bmp new file mode 100644 index 00000000..9f5a4c90 --- /dev/null +++ b/win32/installer/wizardimage.bmp Binary files differdiff --git a/win32/installer/wizardsmallimage.bmp b/win32/installer/wizardsmallimage.bmp new file mode 100644 index 00000000..1bb8b790 --- /dev/null +++ b/win32/installer/wizardsmallimage.bmp Binary files differdiff --git a/win32/installer/xchat-wdk-x64.skel.iss b/win32/installer/xchat-wdk-x64.skel.iss new file mode 100644 index 00000000..d69953ba --- /dev/null +++ b/win32/installer/xchat-wdk-x64.skel.iss @@ -0,0 +1,289 @@ +AppName=XChat-WDK (x64) +AppPublisher=XChat-WDK +AppPublisherURL=http://www.xchat-wdk.org/ +AppCopyright=Copyright (C) 1998-2010 Peter Zelezny +AppSupportURL=http://code.google.com/p/xchat-wdk/issues/list +AppUpdatesURL=http://www.xchat-wdk.org/home/downloads +LicenseFile=COPYING +UninstallDisplayIcon={app}\xchat.exe +UninstallDisplayName=XChat-WDK (x64) +DefaultDirName={pf}\XChat-WDK +DefaultGroupName=XChat-WDK +DisableProgramGroupPage=yes +SolidCompression=yes +SourceDir=..\rel +OutputDir=.. +FlatComponentsList=no +PrivilegesRequired=none +ShowComponentSizes=no +CreateUninstallRegKey=not IsTaskSelected('portable') +Uninstallable=not IsTaskSelected('portable') +ArchitecturesAllowed=x64 +ArchitecturesInstallIn64BitMode=x64 + +[Types] +Name: "normal"; Description: "Normal Installation" +Name: "full"; Description: "Full Installation" +Name: "minimal"; Description: "Minimal Installation" +Name: "custom"; Description: "Custom Installation"; Flags: iscustom + +[Components] +Name: "libs"; Description: "XChat-WDK"; Types: normal full minimal custom; Flags: fixed +Name: "xctext"; Description: "XChat-Text"; Types: full custom; Flags: disablenouninstallwarning +Name: "xtm"; Description: "XChat Theme Manager (Requires .NET 4.0)"; Types: full custom; Flags: disablenouninstallwarning +Name: "translations"; Description: "Translations"; Types: normal full custom; Flags: disablenouninstallwarning +;obs Name: "gtkengines"; Description: "GTK+ Engines"; Types: full custom; Flags: disablenouninstallwarning +;Name: "spelling"; Description: "Spelling Dictionaries"; Types: full custom; Flags: disablenouninstallwarning +Name: "plugins"; Description: "Plugins"; Types: full custom; Flags: disablenouninstallwarning +Name: "plugins\checksum"; Description: "Checksum"; Types: full custom; Flags: disablenouninstallwarning +Name: "plugins\dns"; Description: "DNS"; Types: full custom; Flags: disablenouninstallwarning +Name: "plugins\doat"; Description: "Do At"; Types: full custom; Flags: disablenouninstallwarning +Name: "plugins\exec"; Description: "Exec"; Types: full custom; Flags: disablenouninstallwarning +Name: "plugins\fishlim"; Description: "FiSHLiM"; Types: full custom; Flags: disablenouninstallwarning +Name: "plugins\mpcinfo"; Description: "mpcInfo"; Types: full custom; Flags: disablenouninstallwarning +;Name: "plugins\nonbmp"; Description: "Non-BMP"; Types: normal full custom; Flags: disablenouninstallwarning +Name: "plugins\upd"; Description: "Update Checker"; Types: normal full custom; Flags: disablenouninstallwarning +Name: "plugins\winamp"; Description: "Winamp"; Types: full custom; Flags: disablenouninstallwarning +Name: "plugins\winsys"; Description: "WinSys"; Types: full custom; Flags: disablenouninstallwarning +Name: "plugins\wmpa"; Description: "Windows Media Player Announcer"; Types: full custom; Flags: disablenouninstallwarning +Name: "plugins\xsasl"; Description: "X-SASL"; Types: full custom; Flags: disablenouninstallwarning +Name: "plugins\xtray"; Description: "X-Tray"; Types: full custom; Flags: disablenouninstallwarning +Name: "langs"; Description: "Language Interfaces"; Types: full custom; Flags: disablenouninstallwarning +Name: "langs\lua"; Description: "Lua"; Types: full custom; Flags: disablenouninstallwarning +Name: "langs\lua\luawdk"; Description: "Lua-WDK"; Types: full custom; Flags: disablenouninstallwarning +Name: "langs\perl"; Description: "Perl"; Types: full custom; Flags: disablenouninstallwarning +Name: "langs\python"; Description: "Python"; Types: full custom; Flags: disablenouninstallwarning +Name: "langs\tcl"; Description: "Tcl"; Types: full custom; Flags: disablenouninstallwarning + +[Tasks] +Name: portable; Description: "Yes"; GroupDescription: "Portable Install (no Registry entries, no Start Menu icons, no uninstaller):"; Flags: unchecked + +Name: perl512; Description: "5.12"; GroupDescription: "Perl version:"; Flags: exclusive; Components: langs\perl +Name: perl514; Description: "5.14"; GroupDescription: "Perl version:"; Flags: exclusive unchecked; Components: langs\perl + +[Registry] +Root: HKCR; Subkey: "irc"; ValueType: none; ValueName: ""; ValueData: ""; Flags: deletekey uninsdeletekey; Tasks: not portable +Root: HKCR; Subkey: "irc"; ValueType: string; ValueName: ""; ValueData: "URL:IRC Protocol"; Flags: uninsdeletevalue; Tasks: not portable +Root: HKCR; Subkey: "irc"; ValueType: string; ValueName: "URL Protocol"; ValueData: ""; Flags: uninsdeletevalue; Tasks: not portable +Root: HKCR; Subkey: "irc\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\xchat.exe,0"; Flags: uninsdeletevalue; Tasks: not portable +Root: HKCR; Subkey: "irc\shell"; ValueType: string; ValueName: ""; ValueData: "open"; Flags: uninsdeletevalue; Tasks: not portable +Root: HKCR; Subkey: "irc\shell\open\command"; ValueType: string; ValueName: ""; ValueData: "{app}\xchat.exe --url=""%1"""; Flags: uninsdeletevalue; Tasks: not portable + +Root: HKCR; Subkey: ".xct"; ValueType: none; ValueName: ""; ValueData: ""; Flags: deletekey uninsdeletekey; Components:xtm; Tasks: not portable +Root: HKCR; Subkey: ".xct"; ValueType: string; ValueName: ""; ValueData: "XChat Theme File"; Flags: uninsdeletevalue; Components:xtm; Tasks: not portable +Root: HKCR; Subkey: ".xct"; ValueType: string; ValueName: "XChat Theme File"; ValueData: ""; Flags: uninsdeletevalue; Components:xtm; Tasks: not portable +Root: HKCR; Subkey: ".xct\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\thememan.exe,0"; Flags: uninsdeletevalue; Components:xtm; Tasks: not portable +Root: HKCR; Subkey: ".xct\shell"; ValueType: string; ValueName: ""; ValueData: "open"; Flags: uninsdeletevalue; Components:xtm; Tasks: not portable +Root: HKCR; Subkey: ".xct\shell\open\command"; ValueType: string; ValueName: ""; ValueData: "{app}\thememan.exe ""%1"""; Flags: uninsdeletevalue; Components:xtm; Tasks: not portable + +[Run] +Filename: "{app}\xchat.exe"; Description: "Run XChat-WDK after closing the Wizard"; Flags: nowait postinstall skipifsilent + +[Files] +; Add the ISSkin DLL used for skinning Inno Setup installations. +Source: ISSkinU.dll; DestDir: {app}; Flags: dontcopy + +; Add the Visual Style resource contains resources used for skinning, +; you can also use Microsoft Visual Styles (*.msstyles) resources. +Source: watercolorlite-blue.cjstyles; DestDir: {tmp}; Flags: dontcopy + +Source: "portable-mode"; DestDir: "{app}"; Tasks: portable + +Source: "cert.pem"; DestDir: "{app}"; Flags: ignoreversion; Components: libs +Source: "COPYING"; DestDir: "{app}"; Flags: ignoreversion; Components: libs +Source: "LICENSE.OPENSSL"; DestDir: "{app}"; Flags: ignoreversion; Components: libs +Source: "LICENSE.ZLIB"; DestDir: "{app}"; Flags: ignoreversion; Components: libs +Source: "LICENSE.GTK"; DestDir: "{app}"; Flags: ignoreversion; Components: libs +Source: "LICENSE.CAIRO"; DestDir: "{app}"; Flags: ignoreversion; Components: libs +Source: "LICENSE.LUA"; DestDir: "{app}"; Flags: ignoreversion; Components: libs +Source: "LICENSE.ENCHANT"; DestDir: "{app}"; Flags: ignoreversion; Components: libs +Source: "LICENSE.LIBXML"; DestDir: "{app}"; Flags: ignoreversion; Components: libs +Source: "etc\gtk-2.0\gtkrc"; DestDir: "{app}\etc\gtk-2.0"; Flags: ignoreversion; Components: libs +;Source: "etc\gtk-2.0\gtkrc"; DestDir: "{app}\etc\gtk-2.0"; Flags: ignoreversion; Components: libs and not gtkengines +Source: "share\xml\*"; DestDir: "{app}\share\xml"; Flags: ignoreversion createallsubdirs recursesubdirs; Components: libs +Source: "locale\*"; DestDir: "{app}\locale"; Flags: ignoreversion createallsubdirs recursesubdirs; Components: translations +Source: "share\locale\*"; DestDir: "{app}\share\locale"; Flags: ignoreversion createallsubdirs recursesubdirs; Components: translations +;Source: "share\myspell\*"; DestDir: "{app}\share\myspell"; Flags: ignoreversion createallsubdirs recursesubdirs; Components: spelling + +Source: "libatk-1.0-0.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: libs +Source: "libcairo-2.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: libs +Source: "libeay32.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: libs +Source: "libexpat-1.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: libs +;obs Source: "libffi-5.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: libs +Source: "libfreetype-6.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: libs +Source: "libfontconfig-1.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: libs +Source: "libgdk_pixbuf-2.0-0.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: libs +Source: "libgdk-win32-2.0-0.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: libs +Source: "libgio-2.0-0.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: libs +Source: "libglib-2.0-0.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: libs +Source: "libgmodule-2.0-0.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: libs +Source: "libgobject-2.0-0.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: libs +Source: "libgthread-2.0-0.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: libs +Source: "libgtk-win32-2.0-0.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: libs +Source: "libintl-8.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: libs +;obs Source: "libjasper-1.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: libs +;obs Source: "libjpeg-8.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: libs +Source: "libpango-1.0-0.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: libs +Source: "libpangocairo-1.0-0.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: libs +Source: "libpangoft2-1.0-0.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: libs +Source: "libpangowin32-1.0-0.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: libs +;obs Source: "libpixman-1-0.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: libs +;obs Source: "libtiff-3.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: libs +Source: "libpng14-14.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: libs +;obs Source: "libpng15-15.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: libs +Source: "lua51.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: libs +Source: "ssleay32.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: libs +Source: "zlib1.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: libs +Source: "libxml2.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: libs +;obs Source: "libxml2-2.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: libs +Source: "libenchant.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: libs + +Source: "lib\enchant\libenchant_myspell.dll"; DestDir: "{app}\lib\enchant"; Flags: ignoreversion; Components: libs + +Source: "lib\gtk-2.0\2.10.0\engines\libpixmap.dll"; DestDir: "{app}\lib\gtk-2.0\2.10.0\engines"; Flags: ignoreversion; Components: libs +Source: "lib\gtk-2.0\2.10.0\engines\libwimp.dll"; DestDir: "{app}\lib\gtk-2.0\2.10.0\engines"; Flags: ignoreversion; Components: libs +Source: "lib\gtk-2.0\modules\libgail.dll"; DestDir: "{app}\lib\gtk-2.0\modules"; Flags: ignoreversion; Components: libs + +;obs Source: "etc\gtkpref.png"; DestDir: "{app}\etc"; Flags: ignoreversion; Components: gtkengines +;obs Source: "lib\gtk-2.0\2.10.0\engines\libclearlooks.dll"; DestDir: "{app}\lib\gtk-2.0\2.10.0\engines"; Flags: ignoreversion; Components: gtkengines +;obs Source: "lib\gtk-2.0\2.10.0\engines\libcrux-engine.dll"; DestDir: "{app}\lib\gtk-2.0\2.10.0\engines"; Flags: ignoreversion; Components: gtkengines +;obs Source: "lib\gtk-2.0\2.10.0\engines\libglide.dll"; DestDir: "{app}\lib\gtk-2.0\2.10.0\engines"; Flags: ignoreversion; Components: gtkengines +;obs Source: "lib\gtk-2.0\2.10.0\engines\libhcengine.dll"; DestDir: "{app}\lib\gtk-2.0\2.10.0\engines"; Flags: ignoreversion; Components: gtkengines +;obs Source: "lib\gtk-2.0\2.10.0\engines\libindustrial.dll"; DestDir: "{app}\lib\gtk-2.0\2.10.0\engines"; Flags: ignoreversion; Components: gtkengines +;obs Source: "lib\gtk-2.0\2.10.0\engines\libmist.dll"; DestDir: "{app}\lib\gtk-2.0\2.10.0\engines"; Flags: ignoreversion; Components: gtkengines +;obs Source: "lib\gtk-2.0\2.10.0\engines\libmurrine.dll"; DestDir: "{app}\lib\gtk-2.0\2.10.0\engines"; Flags: ignoreversion; Components: gtkengines +;obs Source: "lib\gtk-2.0\2.10.0\engines\libredmond95.dll"; DestDir: "{app}\lib\gtk-2.0\2.10.0\engines"; Flags: ignoreversion; Components: gtkengines +;obs Source: "lib\gtk-2.0\2.10.0\engines\libthinice.dll"; DestDir: "{app}\lib\gtk-2.0\2.10.0\engines"; Flags: ignoreversion; Components: gtkengines +;obs Source: "plugins\xcgtkpref.dll"; DestDir: "{app}\plugins"; Flags: ignoreversion; Components: gtkengines +;obs Source: "share\themes\*"; DestDir: "{app}\share\themes"; Flags: ignoreversion createallsubdirs recursesubdirs; Components: gtkengines +;obs Source: "gtk2-prefs.exe"; DestDir: "{app}"; Flags: ignoreversion; Components: gtkengines + +Source: "plugins\xcchecksum.dll"; DestDir: "{app}\plugins"; Flags: ignoreversion; Components: plugins\checksum +Source: "plugins\xcdns.dll"; DestDir: "{app}\plugins"; Flags: ignoreversion; Components: plugins\dns +Source: "plugins\xcdoat.dll"; DestDir: "{app}\plugins"; Flags: ignoreversion; Components: plugins\doat +Source: "plugins\xcexec.dll"; DestDir: "{app}\plugins"; Flags: ignoreversion; Components: plugins\exec +Source: "plugins\xcfishlim.dll"; DestDir: "{app}\plugins"; Flags: ignoreversion; Components: plugins\fishlim +Source: "etc\music.png"; DestDir: "{app}\etc"; Flags: ignoreversion; Components: plugins\winamp or plugins\mpcinfo +Source: "plugins\xcmpcinfo.dll"; DestDir: "{app}\plugins"; Flags: ignoreversion; Components: plugins\mpcinfo +;Source: "plugins\xcnonbmp.dll"; DestDir: "{app}\plugins"; Flags: ignoreversion; Components: plugins\nonbmp +Source: "etc\download.png"; DestDir: "{app}\etc"; Flags: ignoreversion; Components: plugins\upd +Source: "plugins\xcupd.dll"; DestDir: "{app}\plugins"; Flags: ignoreversion; Components: plugins\upd +Source: "plugins\xcwinamp.dll"; DestDir: "{app}\plugins"; Flags: ignoreversion; Components: plugins\winamp +Source: "etc\system.png"; DestDir: "{app}\etc"; Flags: ignoreversion; Components: plugins\winsys +Source: "plugins\xcwinsys.dll"; DestDir: "{app}\plugins"; Flags: ignoreversion; Components: plugins\winsys +Source: "plugins\xcxsasl.dll"; DestDir: "{app}\plugins"; Flags: ignoreversion; Components: plugins\xsasl +Source: "plugins\xtray.dll"; DestDir: "{app}\plugins"; Flags: ignoreversion; Components: plugins\xtray +Source: "plugins\xcwmpa.dll"; DestDir: "{app}\plugins"; Flags: ignoreversion; Components: plugins\wmpa + +Source: "plugins\xclua.dll"; DestDir: "{app}\plugins"; Flags: ignoreversion; Components: langs\lua +Source: "plugins\xcpython.dll"; DestDir: "{app}\plugins"; Flags: ignoreversion; Components: langs\python +Source: "plugins\xctcl.dll"; DestDir: "{app}\plugins"; Flags: ignoreversion; Components: langs\tcl + +Source: "plugins\xcperl-512.dll"; DestDir: "{app}\plugins"; DestName: "xcperl.dll"; Flags: ignoreversion; Components: langs\perl; Tasks: perl512 +Source: "plugins\xcperl-514.dll"; DestDir: "{app}\plugins"; DestName: "xcperl.dll"; Flags: ignoreversion; Components: langs\perl; Tasks: perl514 + +Source: "xchat.exe"; DestDir: "{app}"; Flags: ignoreversion; Components: libs +Source: "xchat-text.exe"; DestDir: "{app}"; Flags: ignoreversion; Components: xctext +Source: "thememan.exe"; DestDir: "{app}"; Flags: ignoreversion; Components: xtm + +[Icons] +Name: "{group}\XChat-WDK (x64)"; Filename: "{app}\xchat.exe"; Tasks: not portable +Name: "{group}\XChat-Text (x64)"; Filename: "{app}\xchat-text.exe"; Components: xctext; Tasks: not portable +Name: "{group}\XChat Theme Manager (x64)"; Filename: "{app}\thememan.exe"; Components: xtm; Tasks: not portable +Name: "{group}\Uninstall XChat-WDK (x64)"; Filename: "{uninstallexe}"; Tasks: not portable + +[Messages] +BeveledLabel= XChat-WDK + +[Code] +///////////////////////////////////////////////////////////////////// +// these are required for x86->x64 or reverse upgrades +///////////////////////////////////////////////////////////////////// +function GetUninstallString(): String; +var + sUnInstPath: String; + sUnInstallString: String; +begin + sUnInstPath := ExpandConstant('Software\Microsoft\Windows\CurrentVersion\Uninstall\XChat-WDK (x64)_is1'); + sUnInstallString := ''; + if not RegQueryStringValue(HKLM, sUnInstPath, 'UninstallString', sUnInstallString) then + RegQueryStringValue(HKCU, sUnInstPath, 'UninstallString', sUnInstallString); + Result := sUnInstallString; +end; + + +///////////////////////////////////////////////////////////////////// +function IsUpgrade(): Boolean; +begin + Result := (GetUninstallString() <> ''); +end; + + +///////////////////////////////////////////////////////////////////// +function UnInstallOldVersion(): Integer; +var + sUnInstallString: String; + iResultCode: Integer; +begin +// Return Values: +// 1 - uninstall string is empty +// 2 - error executing the UnInstallString +// 3 - successfully executed the UnInstallString + + // default return value + Result := 0; + + // get the uninstall string of the old app + sUnInstallString := GetUninstallString(); + if sUnInstallString <> '' then begin + sUnInstallString := RemoveQuotes(sUnInstallString); + if Exec(sUnInstallString, '/SILENT /NORESTART /SUPPRESSMSGBOXES','', SW_HIDE, ewWaitUntilTerminated, iResultCode) then + Result := 3 + else + Result := 2; + end else + Result := 1; +end; + +///////////////////////////////////////////////////////////////////// +procedure CurStepChanged(CurStep: TSetupStep); +begin + if not (IsTaskSelected('portable')) then + begin + if (CurStep=ssInstall) then + begin + if (IsUpgrade()) then + begin + UnInstallOldVersion(); + end; + end; + end; +end; + +///////////////////////////////////////////////////////////////////// +// Importing LoadSkin API from ISSkin.DLL +procedure LoadSkin(lpszPath: String; lpszIniFileName: String); +external 'LoadSkin@files:isskinu.dll stdcall'; + +// Importing UnloadSkin API from ISSkin.DLL +procedure UnloadSkin(); +external 'UnloadSkin@files:isskinu.dll stdcall'; + +// Importing ShowWindow Windows API from User32.DLL +function ShowWindow(hWnd: Integer; uType: Integer): Integer; +external 'ShowWindow@user32.dll stdcall'; + +function InitializeSetup(): Boolean; +begin + ExtractTemporaryFile('watercolorlite-blue.cjstyles'); + LoadSkin(ExpandConstant('{tmp}\watercolorlite-blue.cjstyles'), ''); + Result := True; +end; + +procedure DeinitializeSetup(); +begin + // Hide Window before unloading skin so user does not get + // a glimpse of an unskinned window before it is closed. + ShowWindow(StrToInt(ExpandConstant('{wizardhwnd}')), 0); + UnloadSkin(); +end; diff --git a/win32/installer/xchat-wdk-x86.skel.iss b/win32/installer/xchat-wdk-x86.skel.iss new file mode 100644 index 00000000..5cf32c47 --- /dev/null +++ b/win32/installer/xchat-wdk-x86.skel.iss @@ -0,0 +1,292 @@ +AppName=XChat-WDK (x86) +AppPublisher=XChat-WDK +AppPublisherURL=http://www.xchat-wdk.org/ +AppCopyright=Copyright (C) 1998-2010 Peter Zelezny +AppSupportURL=http://code.google.com/p/xchat-wdk/issues/list +AppUpdatesURL=http://www.xchat-wdk.org/home/downloads +LicenseFile=COPYING +UninstallDisplayIcon={app}\xchat.exe +UninstallDisplayName=XChat-WDK (x86) +DefaultDirName={pf}\XChat-WDK +DefaultGroupName=XChat-WDK +DisableProgramGroupPage=yes +SolidCompression=yes +SourceDir=..\rel +OutputDir=.. +FlatComponentsList=no +PrivilegesRequired=none +ShowComponentSizes=no +CreateUninstallRegKey=not IsTaskSelected('portable') +Uninstallable=not IsTaskSelected('portable') +ArchitecturesAllowed=x86 x64 + +[Types] +Name: "normal"; Description: "Normal Installation" +Name: "full"; Description: "Full Installation" +Name: "minimal"; Description: "Minimal Installation" +Name: "custom"; Description: "Custom Installation"; Flags: iscustom + +[Components] +Name: "libs"; Description: "XChat-WDK"; Types: normal full minimal custom; Flags: fixed +Name: "xctext"; Description: "XChat-Text"; Types: full custom; Flags: disablenouninstallwarning +Name: "xtm"; Description: "XChat Theme Manager (Requires .NET 4.0)"; Types: full custom; Flags: disablenouninstallwarning +Name: "translations"; Description: "Translations"; Types: normal full custom; Flags: disablenouninstallwarning +;obs Name: "gtkengines"; Description: "GTK+ Engines"; Types: full custom; Flags: disablenouninstallwarning +;Name: "spelling"; Description: "Spelling Dictionaries"; Types: full custom; Flags: disablenouninstallwarning +Name: "plugins"; Description: "Plugins"; Types: full custom; Flags: disablenouninstallwarning +Name: "plugins\checksum"; Description: "Checksum"; Types: full custom; Flags: disablenouninstallwarning +Name: "plugins\dns"; Description: "DNS"; Types: full custom; Flags: disablenouninstallwarning +Name: "plugins\doat"; Description: "Do At"; Types: full custom; Flags: disablenouninstallwarning +Name: "plugins\exec"; Description: "Exec"; Types: full custom; Flags: disablenouninstallwarning +Name: "plugins\fishlim"; Description: "FiSHLiM"; Types: full custom; Flags: disablenouninstallwarning +Name: "plugins\mpcinfo"; Description: "mpcInfo"; Types: full custom; Flags: disablenouninstallwarning +;Name: "plugins\nonbmp"; Description: "Non-BMP"; Types: normal full custom; Flags: disablenouninstallwarning +Name: "plugins\upd"; Description: "Update Checker"; Types: normal full custom; Flags: disablenouninstallwarning +Name: "plugins\winamp"; Description: "Winamp"; Types: full custom; Flags: disablenouninstallwarning +Name: "plugins\winsys"; Description: "WinSys"; Types: full custom; Flags: disablenouninstallwarning +Name: "plugins\wmpa"; Description: "Windows Media Player Announcer"; Types: full custom; Flags: disablenouninstallwarning +Name: "plugins\xsasl"; Description: "X-SASL"; Types: full custom; Flags: disablenouninstallwarning +Name: "plugins\xtray"; Description: "X-Tray"; Types: full custom; Flags: disablenouninstallwarning +Name: "langs"; Description: "Language Interfaces"; Types: full custom; Flags: disablenouninstallwarning +Name: "langs\lua"; Description: "Lua"; Types: full custom; Flags: disablenouninstallwarning +Name: "langs\lua\luawdk"; Description: "Lua-WDK"; Types: full custom; Flags: disablenouninstallwarning +Name: "langs\perl"; Description: "Perl"; Types: full custom; Flags: disablenouninstallwarning +Name: "langs\python"; Description: "Python"; Types: full custom; Flags: disablenouninstallwarning +Name: "langs\tcl"; Description: "Tcl"; Types: full custom; Flags: disablenouninstallwarning + +[Tasks] +Name: portable; Description: "Yes"; GroupDescription: "Portable Install (no Registry entries, no Start Menu icons, no uninstaller):"; Flags: unchecked + +Name: perl512; Description: "5.12"; GroupDescription: "Perl version:"; Flags: exclusive; Components: langs\perl +Name: perl514; Description: "5.14"; GroupDescription: "Perl version:"; Flags: exclusive unchecked; Components: langs\perl +Name: perl516; Description: "5.16"; GroupDescription: "Perl version:"; Flags: exclusive unchecked; Components: langs\perl + +[Registry] +Root: HKCR; Subkey: "irc"; ValueType: none; ValueName: ""; ValueData: ""; Flags: deletekey uninsdeletekey; Tasks: not portable +Root: HKCR; Subkey: "irc"; ValueType: string; ValueName: ""; ValueData: "URL:IRC Protocol"; Flags: uninsdeletevalue; Tasks: not portable +Root: HKCR; Subkey: "irc"; ValueType: string; ValueName: "URL Protocol"; ValueData: ""; Flags: uninsdeletevalue; Tasks: not portable +Root: HKCR; Subkey: "irc\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\xchat.exe,0"; Flags: uninsdeletevalue; Tasks: not portable +Root: HKCR; Subkey: "irc\shell"; ValueType: string; ValueName: ""; ValueData: "open"; Flags: uninsdeletevalue; Tasks: not portable +Root: HKCR; Subkey: "irc\shell\open\command"; ValueType: string; ValueName: ""; ValueData: "{app}\xchat.exe --url=""%1"""; Flags: uninsdeletevalue; Tasks: not portable + +Root: HKCR; Subkey: ".xct"; ValueType: none; ValueName: ""; ValueData: ""; Flags: deletekey uninsdeletekey; Components:xtm; Tasks: not portable +Root: HKCR; Subkey: ".xct"; ValueType: string; ValueName: ""; ValueData: "XChat Theme File"; Flags: uninsdeletevalue; Components:xtm; Tasks: not portable +Root: HKCR; Subkey: ".xct"; ValueType: string; ValueName: "XChat Theme File"; ValueData: ""; Flags: uninsdeletevalue; Components:xtm; Tasks: not portable +Root: HKCR; Subkey: ".xct\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\thememan.exe,0"; Flags: uninsdeletevalue; Components:xtm; Tasks: not portable +Root: HKCR; Subkey: ".xct\shell"; ValueType: string; ValueName: ""; ValueData: "open"; Flags: uninsdeletevalue; Components:xtm; Tasks: not portable +Root: HKCR; Subkey: ".xct\shell\open\command"; ValueType: string; ValueName: ""; ValueData: "{app}\thememan.exe ""%1"""; Flags: uninsdeletevalue; Components:xtm; Tasks: not portable + +[Run] +Filename: "{app}\xchat.exe"; Description: "Run XChat-WDK after closing the Wizard"; Flags: nowait postinstall skipifsilent + +[Files] +; Add the ISSkin DLL used for skinning Inno Setup installations. +Source: ISSkinU.dll; DestDir: {app}; Flags: dontcopy + +; Add the Visual Style resource contains resources used for skinning, +; you can also use Microsoft Visual Styles (*.msstyles) resources. +Source: watercolorlite-green.cjstyles; DestDir: {tmp}; Flags: dontcopy + +Source: "portable-mode"; DestDir: "{app}"; Tasks: portable + +Source: "cert.pem"; DestDir: "{app}"; Flags: ignoreversion; Components: libs +Source: "COPYING"; DestDir: "{app}"; Flags: ignoreversion; Components: libs +Source: "LICENSE.OPENSSL"; DestDir: "{app}"; Flags: ignoreversion; Components: libs +Source: "LICENSE.ZLIB"; DestDir: "{app}"; Flags: ignoreversion; Components: libs +Source: "LICENSE.GTK"; DestDir: "{app}"; Flags: ignoreversion; Components: libs +Source: "LICENSE.CAIRO"; DestDir: "{app}"; Flags: ignoreversion; Components: libs +Source: "LICENSE.LUA"; DestDir: "{app}"; Flags: ignoreversion; Components: libs +Source: "LICENSE.ENCHANT"; DestDir: "{app}"; Flags: ignoreversion; Components: libs +Source: "LICENSE.LIBXML"; DestDir: "{app}"; Flags: ignoreversion; Components: libs +Source: "etc\gtk-2.0\gtkrc"; DestDir: "{app}\etc\gtk-2.0"; Flags: ignoreversion; Components: libs +;Source: "etc\gtk-2.0\gtkrc"; DestDir: "{app}\etc\gtk-2.0"; Flags: ignoreversion; Components: libs and not gtkengines +Source: "share\xml\*"; DestDir: "{app}\share\xml"; Flags: ignoreversion createallsubdirs recursesubdirs; Components: libs +Source: "locale\*"; DestDir: "{app}\locale"; Flags: ignoreversion createallsubdirs recursesubdirs; Components: translations +Source: "share\locale\*"; DestDir: "{app}\share\locale"; Flags: ignoreversion createallsubdirs recursesubdirs; Components: translations +;Source: "share\myspell\*"; DestDir: "{app}\share\myspell"; Flags: ignoreversion createallsubdirs recursesubdirs; Components: spelling + +Source: "libatk-1.0-0.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: libs +Source: "libcairo-2.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: libs +Source: "libeay32.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: libs +Source: "libexpat-1.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: libs +;obs Source: "libffi-5.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: libs +Source: "freetype6.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: libs +;obs Source: "libfreetype-6.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: libs +Source: "libfontconfig-1.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: libs +Source: "libgdk_pixbuf-2.0-0.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: libs +Source: "libgdk-win32-2.0-0.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: libs +Source: "libgio-2.0-0.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: libs +Source: "libglib-2.0-0.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: libs +Source: "libgmodule-2.0-0.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: libs +Source: "libgobject-2.0-0.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: libs +Source: "libgthread-2.0-0.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: libs +Source: "libgtk-win32-2.0-0.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: libs +Source: "intl.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: libs +;obs Source: "libintl-8.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: libs +;obs Source: "libjasper-1.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: libs +;obs Source: "libjpeg-8.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: libs +Source: "libpango-1.0-0.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: libs +Source: "libpangocairo-1.0-0.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: libs +Source: "libpangoft2-1.0-0.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: libs +Source: "libpangowin32-1.0-0.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: libs +;obs Source: "libpixman-1-0.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: libs +;obs Source: "libtiff-3.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: libs +Source: "libpng14-14.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: libs +;obs Source: "libpng15-15.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: libs +Source: "lua51.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: libs +Source: "ssleay32.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: libs +Source: "zlib1.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: libs +Source: "libxml2.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: libs +;obs Source: "libxml2-2.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: libs +Source: "libenchant.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: libs + +Source: "lib\enchant\libenchant_myspell.dll"; DestDir: "{app}\lib\enchant"; Flags: ignoreversion; Components: libs + +Source: "lib\gtk-2.0\2.10.0\engines\libpixmap.dll"; DestDir: "{app}\lib\gtk-2.0\2.10.0\engines"; Flags: ignoreversion; Components: libs +Source: "lib\gtk-2.0\2.10.0\engines\libwimp.dll"; DestDir: "{app}\lib\gtk-2.0\2.10.0\engines"; Flags: ignoreversion; Components: libs +Source: "lib\gtk-2.0\modules\libgail.dll"; DestDir: "{app}\lib\gtk-2.0\modules"; Flags: ignoreversion; Components: libs + +;obs Source: "etc\gtkpref.png"; DestDir: "{app}\etc"; Flags: ignoreversion; Components: gtkengines +;obs Source: "lib\gtk-2.0\2.10.0\engines\libclearlooks.dll"; DestDir: "{app}\lib\gtk-2.0\2.10.0\engines"; Flags: ignoreversion; Components: gtkengines +;obs Source: "lib\gtk-2.0\2.10.0\engines\libcrux-engine.dll"; DestDir: "{app}\lib\gtk-2.0\2.10.0\engines"; Flags: ignoreversion; Components: gtkengines +;obs Source: "lib\gtk-2.0\2.10.0\engines\libglide.dll"; DestDir: "{app}\lib\gtk-2.0\2.10.0\engines"; Flags: ignoreversion; Components: gtkengines +;obs Source: "lib\gtk-2.0\2.10.0\engines\libhcengine.dll"; DestDir: "{app}\lib\gtk-2.0\2.10.0\engines"; Flags: ignoreversion; Components: gtkengines +;obs Source: "lib\gtk-2.0\2.10.0\engines\libindustrial.dll"; DestDir: "{app}\lib\gtk-2.0\2.10.0\engines"; Flags: ignoreversion; Components: gtkengines +;obs Source: "lib\gtk-2.0\2.10.0\engines\libmist.dll"; DestDir: "{app}\lib\gtk-2.0\2.10.0\engines"; Flags: ignoreversion; Components: gtkengines +;obs Source: "lib\gtk-2.0\2.10.0\engines\libmurrine.dll"; DestDir: "{app}\lib\gtk-2.0\2.10.0\engines"; Flags: ignoreversion; Components: gtkengines +;obs Source: "lib\gtk-2.0\2.10.0\engines\libredmond95.dll"; DestDir: "{app}\lib\gtk-2.0\2.10.0\engines"; Flags: ignoreversion; Components: gtkengines +;obs Source: "lib\gtk-2.0\2.10.0\engines\libthinice.dll"; DestDir: "{app}\lib\gtk-2.0\2.10.0\engines"; Flags: ignoreversion; Components: gtkengines +;obs Source: "plugins\xcgtkpref.dll"; DestDir: "{app}\plugins"; Flags: ignoreversion; Components: gtkengines +;obs Source: "share\themes\*"; DestDir: "{app}\share\themes"; Flags: ignoreversion createallsubdirs recursesubdirs; Components: gtkengines +;obs Source: "gtk2-prefs.exe"; DestDir: "{app}"; Flags: ignoreversion; Components: gtkengines + +Source: "plugins\xcchecksum.dll"; DestDir: "{app}\plugins"; Flags: ignoreversion; Components: plugins\checksum +Source: "plugins\xcdns.dll"; DestDir: "{app}\plugins"; Flags: ignoreversion; Components: plugins\dns +Source: "plugins\xcdoat.dll"; DestDir: "{app}\plugins"; Flags: ignoreversion; Components: plugins\doat +Source: "plugins\xcexec.dll"; DestDir: "{app}\plugins"; Flags: ignoreversion; Components: plugins\exec +Source: "plugins\xcfishlim.dll"; DestDir: "{app}\plugins"; Flags: ignoreversion; Components: plugins\fishlim +Source: "etc\music.png"; DestDir: "{app}\etc"; Flags: ignoreversion; Components: plugins\winamp or plugins\mpcinfo +Source: "plugins\xcmpcinfo.dll"; DestDir: "{app}\plugins"; Flags: ignoreversion; Components: plugins\mpcinfo +;Source: "plugins\xcnonbmp.dll"; DestDir: "{app}\plugins"; Flags: ignoreversion; Components: plugins\nonbmp +Source: "etc\download.png"; DestDir: "{app}\etc"; Flags: ignoreversion; Components: plugins\upd +Source: "plugins\xcupd.dll"; DestDir: "{app}\plugins"; Flags: ignoreversion; Components: plugins\upd +Source: "plugins\xcwinamp.dll"; DestDir: "{app}\plugins"; Flags: ignoreversion; Components: plugins\winamp +Source: "etc\system.png"; DestDir: "{app}\etc"; Flags: ignoreversion; Components: plugins\winsys +Source: "plugins\xcwinsys.dll"; DestDir: "{app}\plugins"; Flags: ignoreversion; Components: plugins\winsys +Source: "plugins\xcxsasl.dll"; DestDir: "{app}\plugins"; Flags: ignoreversion; Components: plugins\xsasl +Source: "plugins\xtray.dll"; DestDir: "{app}\plugins"; Flags: ignoreversion; Components: plugins\xtray +Source: "plugins\xcwmpa.dll"; DestDir: "{app}\plugins"; Flags: ignoreversion; Components: plugins\wmpa + +Source: "plugins\xclua.dll"; DestDir: "{app}\plugins"; Flags: ignoreversion; Components: langs\lua +Source: "plugins\xcpython.dll"; DestDir: "{app}\plugins"; Flags: ignoreversion; Components: langs\python +Source: "plugins\xctcl.dll"; DestDir: "{app}\plugins"; Flags: ignoreversion; Components: langs\tcl + +Source: "plugins\xcperl-512.dll"; DestDir: "{app}\plugins"; DestName: "xcperl.dll"; Flags: ignoreversion; Components: langs\perl; Tasks: perl512 +Source: "plugins\xcperl-514.dll"; DestDir: "{app}\plugins"; DestName: "xcperl.dll"; Flags: ignoreversion; Components: langs\perl; Tasks: perl514 +Source: "plugins\xcperl-516.dll"; DestDir: "{app}\plugins"; DestName: "xcperl.dll"; Flags: ignoreversion; Components: langs\perl; Tasks: perl516 + +Source: "xchat.exe"; DestDir: "{app}"; Flags: ignoreversion; Components: libs +Source: "xchat-text.exe"; DestDir: "{app}"; Flags: ignoreversion; Components: xctext +Source: "thememan.exe"; DestDir: "{app}"; Flags: ignoreversion; Components: xtm + +[Icons] +Name: "{group}\XChat-WDK (x86)"; Filename: "{app}\xchat.exe"; Tasks: not portable +Name: "{group}\XChat-Text (x86)"; Filename: "{app}\xchat-text.exe"; Components: xctext; Tasks: not portable +Name: "{group}\XChat Theme Manager (x86)"; Filename: "{app}\thememan.exe"; Components: xtm; Tasks: not portable +Name: "{group}\Uninstall XChat-WDK (x86)"; Filename: "{uninstallexe}"; Tasks: not portable + +[Messages] +BeveledLabel= XChat-WDK + +[Code] +///////////////////////////////////////////////////////////////////// +// these are required for x86->x64 or reverse upgrades +///////////////////////////////////////////////////////////////////// +function GetUninstallString(): String; +var + sUnInstPath: String; + sUnInstallString: String; +begin + sUnInstPath := ExpandConstant('Software\Microsoft\Windows\CurrentVersion\Uninstall\XChat-WDK (x86)_is1'); + sUnInstallString := ''; + if not RegQueryStringValue(HKLM, sUnInstPath, 'UninstallString', sUnInstallString) then + RegQueryStringValue(HKCU, sUnInstPath, 'UninstallString', sUnInstallString); + Result := sUnInstallString; +end; + + +///////////////////////////////////////////////////////////////////// +function IsUpgrade(): Boolean; +begin + Result := (GetUninstallString() <> ''); +end; + + +///////////////////////////////////////////////////////////////////// +function UnInstallOldVersion(): Integer; +var + sUnInstallString: String; + iResultCode: Integer; +begin +// Return Values: +// 1 - uninstall string is empty +// 2 - error executing the UnInstallString +// 3 - successfully executed the UnInstallString + + // default return value + Result := 0; + + // get the uninstall string of the old app + sUnInstallString := GetUninstallString(); + if sUnInstallString <> '' then begin + sUnInstallString := RemoveQuotes(sUnInstallString); + if Exec(sUnInstallString, '/SILENT /NORESTART /SUPPRESSMSGBOXES','', SW_HIDE, ewWaitUntilTerminated, iResultCode) then + Result := 3 + else + Result := 2; + end else + Result := 1; +end; + +///////////////////////////////////////////////////////////////////// +procedure CurStepChanged(CurStep: TSetupStep); +begin + if not (IsTaskSelected('portable')) then + begin + if (CurStep=ssInstall) then + begin + if (IsUpgrade()) then + begin + UnInstallOldVersion(); + end; + end; + end; +end; + +///////////////////////////////////////////////////////////////////// +// Importing LoadSkin API from ISSkin.DLL +procedure LoadSkin(lpszPath: String; lpszIniFileName: String); +external 'LoadSkin@files:isskinu.dll stdcall'; + +// Importing UnloadSkin API from ISSkin.DLL +procedure UnloadSkin(); +external 'UnloadSkin@files:isskinu.dll stdcall'; + +// Importing ShowWindow Windows API from User32.DLL +function ShowWindow(hWnd: Integer; uType: Integer): Integer; +external 'ShowWindow@user32.dll stdcall'; + +function InitializeSetup(): Boolean; +begin + ExtractTemporaryFile('watercolorlite-green.cjstyles'); + LoadSkin(ExpandConstant('{tmp}\watercolorlite-green.cjstyles'), ''); + Result := True; +end; + +procedure DeinitializeSetup(); +begin + // Hide Window before unloading skin so user does not get + // a glimpse of an unskinned window before it is closed. + ShowWindow(StrToInt(ExpandConstant('{wizardhwnd}')), 0); + UnloadSkin(); +end; diff --git a/win32/nls/nls.vcxproj b/win32/nls/nls.vcxproj new file mode 100644 index 00000000..9c0ecff4 --- /dev/null +++ b/win32/nls/nls.vcxproj @@ -0,0 +1,109 @@ +<?xml version="1.0" encoding="utf-8"?> +<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <ItemGroup Label="ProjectConfigurations"> + <ProjectConfiguration Include="Release|Win32"> + <Configuration>Release</Configuration> + <Platform>Win32</Platform> + </ProjectConfiguration> + <ProjectConfiguration Include="Release|x64"> + <Configuration>Release</Configuration> + <Platform>x64</Platform> + </ProjectConfiguration> + </ItemGroup> + <PropertyGroup Label="Globals"> + <ProjectGuid>{B10A2C41-344C-43E0-A32D-B9587C198D8B}</ProjectGuid> + <RootNamespace>nls</RootNamespace> + </PropertyGroup> + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" /> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration"> + <ConfigurationType>Application</ConfigurationType> + <UseDebugLibraries>false</UseDebugLibraries> + <WholeProgramOptimization>true</WholeProgramOptimization> + <CharacterSet>MultiByte</CharacterSet> + <PlatformToolset>WDK7</PlatformToolset> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration"> + <ConfigurationType>Application</ConfigurationType> + <UseDebugLibraries>false</UseDebugLibraries> + <WholeProgramOptimization>true</WholeProgramOptimization> + <CharacterSet>MultiByte</CharacterSet> + <PlatformToolset>WDK7</PlatformToolset> + </PropertyGroup> + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" /> + <ImportGroup Label="ExtensionSettings"> + </ImportGroup> + <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> + <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> + <Import Project="..\xchat.props" /> + </ImportGroup> + <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets"> + <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> + <Import Project="..\xchat.props" /> + </ImportGroup> + <PropertyGroup Label="UserMacros" /> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> + <OutDir>$(SolutionDir)build\$(PlatformName)\bin</OutDir> + <IntDir>$(SolutionDir)build\$(PlatformName)\obj\$(ProjectName)</IntDir> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'"> + <OutDir>$(SolutionDir)build\$(PlatformName)\bin</OutDir> + <IntDir>$(SolutionDir)build\$(PlatformName)\obj\$(ProjectName)</IntDir> + </PropertyGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> + <ClCompile> + <WarningLevel>Level3</WarningLevel> + <Optimization>MaxSpeed</Optimization> + <FunctionLevelLinking>true</FunctionLevelLinking> + <IntrinsicFunctions>true</IntrinsicFunctions> + </ClCompile> + <Link> + <GenerateDebugInformation>true</GenerateDebugInformation> + <EnableCOMDATFolding>true</EnableCOMDATFolding> + <OptimizeReferences>true</OptimizeReferences> + </Link> + <PostBuildEvent> + <Command> + </Command> + </PostBuildEvent> + <PreBuildEvent> + <Command>cd ..\..\po +rmdir /q /s "$(OutDir)\locale" +mkdir "$(OutDir)\locale" +for %%A in (*.po) do ( +mkdir "$(OutDir)\locale\%%~nA\LC_MESSAGES" +"$(DepsRoot)\bin\msgfmt" -co "$(OutDir)\locale\%%~nA\LC_MESSAGES\xchat.mo" %%A +)</Command> + </PreBuildEvent> + </ItemDefinitionGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'"> + <ClCompile> + <WarningLevel>Level3</WarningLevel> + <Optimization>MaxSpeed</Optimization> + <FunctionLevelLinking>true</FunctionLevelLinking> + <IntrinsicFunctions>true</IntrinsicFunctions> + </ClCompile> + <Link> + <GenerateDebugInformation>true</GenerateDebugInformation> + <EnableCOMDATFolding>true</EnableCOMDATFolding> + <OptimizeReferences>true</OptimizeReferences> + </Link> + <PostBuildEvent> + <Command> + </Command> + </PostBuildEvent> + <PreBuildEvent> + <Command>cd ..\..\po +rmdir /q /s "$(OutDir)\locale" +mkdir "$(OutDir)\locale" +for %%A in (*.po) do ( +mkdir "$(OutDir)\locale\%%~nA\LC_MESSAGES" +"$(DepsRoot)\bin\msgfmt" -co "$(OutDir)\locale\%%~nA\LC_MESSAGES\xchat.mo" %%A +)</Command> + </PreBuildEvent> + </ItemDefinitionGroup> + <ItemGroup> + </ItemGroup> + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" /> + <ImportGroup Label="ExtensionTargets"> + </ImportGroup> +</Project> \ No newline at end of file diff --git a/win32/nls/nls.vcxproj.filters b/win32/nls/nls.vcxproj.filters new file mode 100644 index 00000000..ef1ebf58 --- /dev/null +++ b/win32/nls/nls.vcxproj.filters @@ -0,0 +1,2 @@ +<?xml version="1.0" encoding="utf-8"?> +<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" /> \ No newline at end of file diff --git a/win32/nls/nls.vcxproj.user b/win32/nls/nls.vcxproj.user new file mode 100644 index 00000000..695b5c78 --- /dev/null +++ b/win32/nls/nls.vcxproj.user @@ -0,0 +1,3 @@ +<?xml version="1.0" encoding="utf-8"?> +<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> +</Project> \ No newline at end of file diff --git a/win32/release-src.bat b/win32/release-src.bat new file mode 100644 index 00000000..9df98250 --- /dev/null +++ b/win32/release-src.bat @@ -0,0 +1,7 @@ +@echo off +set PATH=%PATH%;%PROGRAMW6432%\7-Zip;%PROGRAMFILES(X86)%\Git\bin +git clone --branch wdk https://xchat-wdk.googlecode.com/git/ xchat-wdk +rmdir /q /s xchat-wdk\.git +7z a xchat-wdk-head.7z xchat-wdk +rmdir /q /s xchat-wdk +pause diff --git a/win32/wdkpt/Microsoft.Cpp.Win32.WDK7.props b/win32/wdkpt/Microsoft.Cpp.Win32.WDK7.props new file mode 100644 index 00000000..41e4baae --- /dev/null +++ b/win32/wdkpt/Microsoft.Cpp.Win32.WDK7.props @@ -0,0 +1,68 @@ +<!-- +*********************************************************************************************** +Microsoft.Cpp.Win32.v100.props + +WARNING: DO NOT MODIFY this file unless you are knowledgeable about MSBuild and have + created a backup copy. Incorrect changes to this file will make it + impossible to load or build your projects from the command-line or the IDE. + +Copyright (C) Microsoft Corporation. All rights reserved. +*********************************************************************************************** +--> + +<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <Import Project="$(VCTargetsPath)\Platforms\Win32\PlatformToolsets\v100\ImportBefore\*.props" Condition="Exists('$(VCTargetsPath)\Platforms\Win32\PlatformToolsets\v100\ImportBefore')" /> + + <PropertyGroup> + <PlatformToolsetVersion>100</PlatformToolsetVersion> + + <WDKInstallDir>$(SystemDrive)\WinDDK\7600.16385.1</WDKInstallDir> + + <VCInstallDir>$(Registry:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\10.0\Setup\VC@ProductDir)</VCInstallDir> + <VCInstallDir Condition="'$(VCInstallDir)' == ''">$(Registry:HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\VisualStudio\10.0\Setup\VC@ProductDir)</VCInstallDir> + <VCInstallDir Condition="'$(VCInstallDir)' == ''">$(Registry:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VCExpress\10.0\Setup\VC@ProductDir)</VCInstallDir> + <VCInstallDir Condition="'$(VCInstallDir)' == ''">$(Registry:HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\VCExpress\10.0\Setup\VC@ProductDir)</VCInstallDir> + + <VSInstallDir>$(Registry:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\10.0\Setup\VS@ProductDir)</VSInstallDir> + <VSInstallDir Condition="'$(VSInstallDir)' == ''">$(Registry:HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\VisualStudio\10.0\Setup\VS@ProductDir)</VSInstallDir> + <VSInstallDir Condition="'$(VSInstallDir)' == ''">$(Registry:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VCExpress\10.0\Setup\VS@ProductDir)</VSInstallDir> + <VSInstallDir Condition="'$(VSInstallDir)' == ''">$(Registry:HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\VCExpress\10.0\Setup\VS@ProductDir)</VSInstallDir> + + <WindowsSdkDir Condition="'$(UseEnv)' != 'true'">$(Registry:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SDKs\Windows\v7.0A@InstallationFolder)</WindowsSdkDir> + <WindowsSdkDir Condition="'$(WindowsSdkDir)' == ''">$(Registry:HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Microsoft SDKs\Windows\v7.0A@InstallationFolder)</WindowsSdkDir> + + <FrameworkDir Condition="'$(UseEnv)' != 'true'">$(Registry:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework@InstallRoot)</FrameworkDir> + <FrameworkDir Condition="'$(FrameworkDir)' == ''">$(Registry:HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\.NETFramework@InstallRoot)</FrameworkDir> + + <FrameworkSdkDir Condition="'$(UseEnv)' != 'true'">$(Registry:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SDKs\Windows\v7.0A@InstallationFolder)</FrameworkSdkDir> + <FrameworkSdkDir Condition="'$(FrameworkSdkDir)' == ''">$(Registry:HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Microsoft SDKs\Windows\v7.0A@InstallationFolder)</FrameworkSdkDir> + + <FrameworkVersion Condition="'$(UseEnv)' != 'true'">v4.0</FrameworkVersion> + <Framework35Version Condition="'$(UseEnv)' != 'true'">v3.5</Framework35Version> + + <ExecutablePath Condition="'$(ExecutablePath)' == ''">$(VCInstallDir)bin;$(WindowsSdkDir)bin\NETFX 4.0 Tools;$(WindowsSdkDir)bin;$(VSInstallDir)Common7\Tools\bin;$(VSInstallDir)Common7\tools;$(VSInstallDir)Common7\ide;$(ProgramFiles)\HTML Help Workshop;$(FrameworkSDKDir)\bin;$(MSBuildToolsPath32);$(VSInstallDir);$(SystemRoot)\SysWow64;$(FxCopDir);$(PATH);</ExecutablePath> + <IncludePath>$(WDKInstallDir)\inc\api;$(WDKInstallDir)\inc\crt;$(WDKInstallDir)\inc\api\crt\stl70;$(WDKInstallDir)\inc\mfc42;$(WDKInstallDir)\inc\ddk;$(WDKInstallDir)\inc\api\dao360;</IncludePath> + <LibraryPath>$(WDKInstallDir)\lib\wxp\i386;$(WDKInstallDir)\lib\Crt\i386;$(WDKInstallDir)\lib\Mfc\i386;$(WDKInstallDir)\lib\ATL\i386</LibraryPath> + <SourcePath Condition="'$(SourcePath)' == ''">$(VCInstallDir)atlmfc\src\mfc;$(VCInstallDir)atlmfc\src\mfcm;$(VCInstallDir)atlmfc\src\atl;$(VCInstallDir)crt\src;</SourcePath> + <NativeExecutablePath Condition="'$(NativeExecutablePath)' == ''">$(ExecutablePath)</NativeExecutablePath> + </PropertyGroup> + + <ItemDefinitionGroup> + <Link> + <AdditionalDependencies>msvcrt_winxp.obj;%(AdditionalDependencies)</AdditionalDependencies> + </Link> + <ResourceCompile> + <SuppressStartupBanner Condition="'%(ResourceCompile.SuppressStartupBanner)' == ''">true</SuppressStartupBanner> + </ResourceCompile> + <ManifestResourceCompile> + <SuppressStartupBanner Condition="'%(ManifestResourceCompile.SuppressStartupBanner)'==''">true</SuppressStartupBanner> + </ManifestResourceCompile> + <Manifest> + <EnableDPIAwareness Condition="'$(EnableDPIAwareness)' == '' AND '$(UseOfMFC)' == 'static'">true</EnableDPIAwareness> + <EnableDPIAwareness Condition="'$(EnableDPIAwareness)' == '' AND '$(UseOfMFC)' == 'dynamic'">true</EnableDPIAwareness> + <EnableDPIAwareness Condition="'$(EnableDPIAwareness)' == '' AND '$(UseOfMFC)' != 'static' AND '$(UseOfMFC)' != 'dynamic'">false</EnableDPIAwareness> + </Manifest> + </ItemDefinitionGroup> + + <Import Project="$(VCTargetsPath)\Platforms\Win32\PlatformToolsets\v100\ImportAfter\*.props" Condition="Exists('$(VCTargetsPath)\Platforms\Win32\PlatformToolsets\v100\ImportAfter')" /> +</Project> diff --git a/win32/wdkpt/Microsoft.Cpp.Win32.WDK7.targets b/win32/wdkpt/Microsoft.Cpp.Win32.WDK7.targets new file mode 100644 index 00000000..f68a78bc --- /dev/null +++ b/win32/wdkpt/Microsoft.Cpp.Win32.WDK7.targets @@ -0,0 +1,20 @@ +<!-- +*********************************************************************************************** +Microsoft.Cpp.Win32.v100.targets + +WARNING: DO NOT MODIFY this file unless you are knowledgeable about MSBuild and have + created a backup copy. Incorrect changes to this file will make it + impossible to load or build your projects from the command-line or the IDE. + +This file defines the steps/targets required to build Visual C++ (version 10.0) projects +specifically on x86 platforms. + +Copyright (C) Microsoft Corporation. All rights reserved. +*********************************************************************************************** +--> + +<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <Import Project="$(VCTargetsPath)\Platforms\Win32\PlatformToolsets\v100\ImportBefore\*.targets" Condition="Exists('$(VCTargetsPath)\Platforms\Win32\PlatformToolsets\v100\ImportBefore')" /> + + <Import Project="$(VCTargetsPath)\Platforms\Win32\PlatformToolsets\v100\ImportAfter\*.targets" Condition="Exists('$(VCTargetsPath)\Platforms\Win32\PlatformToolsets\v100\ImportAfter')" /> +</Project> diff --git a/win32/wdkpt/Microsoft.Cpp.x64.WDK7.props b/win32/wdkpt/Microsoft.Cpp.x64.WDK7.props new file mode 100644 index 00000000..7f72f8e2 --- /dev/null +++ b/win32/wdkpt/Microsoft.Cpp.x64.WDK7.props @@ -0,0 +1,68 @@ +<!-- +*********************************************************************************************** +Microsoft.Cpp.x64.v100.props + +WARNING: DO NOT MODIFY this file unless you are knowledgeable about MSBuild and have + created a backup copy. Incorrect changes to this file will make it + impossible to load or build your projects from the command-line or the IDE. + +Copyright (C) Microsoft Corporation. All rights reserved. +*********************************************************************************************** +--> + +<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <Import Project="$(VCTargetsPath)\Platforms\x64\PlatformToolsets\v100\ImportBefore\*.props" Condition="Exists('$(VCTargetsPath)\Platforms\x64\PlatformToolsets\v100\ImportBefore')" /> + + <PropertyGroup> + <PlatformToolsetVersion>100</PlatformToolsetVersion> + + <WDKInstallDir>$(SystemDrive)\WinDDK\7600.16385.1</WDKInstallDir> + + <VCInstallDir>$(Registry:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\10.0\Setup\VC@ProductDir)</VCInstallDir> + <VCInstallDir Condition="'$(VCInstallDir)' == ''">$(Registry:HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\VisualStudio\10.0\Setup\VC@ProductDir)</VCInstallDir> + <VCInstallDir Condition="'$(VCInstallDir)' == ''">$(Registry:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VCExpress\10.0\Setup\VC@ProductDir)</VCInstallDir> + <VCInstallDir Condition="'$(VCInstallDir)' == ''">$(Registry:HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\VCExpress\10.0\Setup\VC@ProductDir)</VCInstallDir> + + <VSInstallDir>$(Registry:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\10.0\Setup\VS@ProductDir)</VSInstallDir> + <VSInstallDir Condition="'$(VSInstallDir)' == ''">$(Registry:HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\VisualStudio\10.0\Setup\VS@ProductDir)</VSInstallDir> + <VSInstallDir Condition="'$(VSInstallDir)' == ''">$(Registry:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VCExpress\10.0\Setup\VS@ProductDir)</VSInstallDir> + <VSInstallDir Condition="'$(VSInstallDir)' == ''">$(Registry:HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\VCExpress\10.0\Setup\VS@ProductDir)</VSInstallDir> + + <WindowsSdkDir Condition="'$(UseEnv)' != 'true'">$(Registry:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SDKs\Windows\v7.0A@InstallationFolder)</WindowsSdkDir> + <WindowsSdkDir Condition="'$(WindowsSdkDir)' == ''">$(Registry:HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Microsoft SDKs\Windows\v7.0A@InstallationFolder)</WindowsSdkDir> + + <FrameworkDir Condition="'$(UseEnv)' != 'true'">$(Registry:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework@InstallRoot)</FrameworkDir> + <FrameworkDir Condition="'$(FrameworkDir)' == ''">$(Registry:HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\.NETFramework@InstallRoot)</FrameworkDir> + + <FrameworkSdkDir Condition="'$(UseEnv)' != 'true'">$(Registry:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SDKs\Windows\v7.0A@InstallationFolder)</FrameworkSdkDir> + <FrameworkSdkDir Condition="'$(FrameworkSdkDir)' == ''">$(Registry:HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Microsoft SDKs\Windows\v7.0A@InstallationFolder)</FrameworkSdkDir> + + <FrameworkVersion Condition="'$(UseEnv)' != 'true'">v4.0</FrameworkVersion> + <Framework35Version Condition="'$(UseEnv)' != 'true'">v3.5</Framework35Version> + + <ExecutablePath Condition="'$(ExecutablePath)' == ''">$(VCInstallDir)bin\x86_amd64;$(VCInstallDir)bin;$(WindowsSdkDir)bin\NETFX 4.0 Tools;$(WindowsSdkDir)bin;$(VSInstallDir)Common7\Tools\bin;$(VSInstallDir)Common7\tools;$(VSInstallDir)Common7\ide;$(ProgramFiles)\HTML Help Workshop;$(FrameworkSDKDir)\bin;$(FrameworkSDKDir)\lib\win64;$(MSBuildToolsPath32);$(FxCopDir);$(PATH);</ExecutablePath> + <IncludePath>$(WDKInstallDir)\inc\api;$(WDKInstallDir)\inc\crt;$(WDKInstallDir)\inc\api\crt\stl70;$(WDKInstallDir)\inc\mfc42;$(WDKInstallDir)\inc\ddk;$(WDKInstallDir)\inc\api\dao360;</IncludePath> + <LibraryPath>$(WDKInstallDir)\lib\wnet\amd64;$(WDKInstallDir)\lib\Crt\amd64;$(WDKInstallDir)\lib\Mfc\amd64;$(WDKInstallDir)\lib\ATL\amd64;</LibraryPath> + <SourcePath Condition="'$(SourcePath)' == ''">$(VCInstallDir)atlmfc\src\mfc;$(VCInstallDir)atlmfc\src\mfcm;$(VCInstallDir)atlmfc\src\atl;$(VCInstallDir)crt\src;</SourcePath> + <NativeExecutablePath Condition="'$(NativeExecutablePath)' == ''">$(VCInstallDir)bin\AMD64;$(VCInstallDir)VCPackages;$(WindowsSdkDir)bin\NETFX 4.0 Tools\x64;$(WindowsSdkDir)bin\NETFX 4.0 Tools;$(WindowsSdkDir)bin\x64;$(WindowsSdkDir)bin\win64\x64;$(WindowsSdkDir)bin;$(MSBuildToolsPath);$(PATH);</NativeExecutablePath> + </PropertyGroup> + + <ItemDefinitionGroup> + <Link> + <AdditionalDependencies>msvcrt_win2003.obj;%(AdditionalDependencies)</AdditionalDependencies> + </Link> + <ResourceCompile> + <SuppressStartupBanner Condition="'%(ResourceCompile.SuppressStartupBanner)' == ''">true</SuppressStartupBanner> + </ResourceCompile> + <ManifestResourceCompile> + <SuppressStartupBanner Condition="'%(ManifestResourceCompile.SuppressStartupBanner)'==''">true</SuppressStartupBanner> + </ManifestResourceCompile> + <Manifest> + <EnableDPIAwareness Condition="'$(EnableDPIAwareness)' == '' AND '$(UseOfMFC)' == 'static'">true</EnableDPIAwareness> + <EnableDPIAwareness Condition="'$(EnableDPIAwareness)' == '' AND '$(UseOfMFC)' == 'dynamic'">true</EnableDPIAwareness> + <EnableDPIAwareness Condition="'$(EnableDPIAwareness)' == '' AND '$(UseOfMFC)' != 'static' AND '$(UseOfMFC)' != 'dynamic'">false</EnableDPIAwareness> + </Manifest> + </ItemDefinitionGroup> + + <Import Project="$(VCTargetsPath)\Platforms\x64\PlatformToolsets\v100\ImportAfter\*.props" Condition="Exists('$(VCTargetsPath)\Platforms\x64\PlatformToolsets\v100\ImportAfter')" /> +</Project> diff --git a/win32/wdkpt/Microsoft.Cpp.x64.WDK7.targets b/win32/wdkpt/Microsoft.Cpp.x64.WDK7.targets new file mode 100644 index 00000000..fa6651e1 --- /dev/null +++ b/win32/wdkpt/Microsoft.Cpp.x64.WDK7.targets @@ -0,0 +1,20 @@ +<!-- +*********************************************************************************************** +Microsoft.Cpp.x64.v100.targets + +WARNING: DO NOT MODIFY this file unless you are knowledgeable about MSBuild and have + created a backup copy. Incorrect changes to this file will make it + impossible to load or build your projects from the command-line or the IDE. + +This file defines the steps/targets required to build Visual C++ (version 10.0) projects +specifically on X64 platforms. + +Copyright (C) Microsoft Corporation. All rights reserved. +*********************************************************************************************** +--> + +<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <Import Project="$(VCTargetsPath)\Platforms\x64\PlatformToolsets\v100\ImportBefore\*.targets" Condition="Exists('$(VCTargetsPath)\Platforms\x64\PlatformToolsets\v100\ImportBefore')" /> + + <Import Project="$(VCTargetsPath)\Platforms\x64\PlatformToolsets\v100\ImportAfter\*.targets" Condition="Exists('$(VCTargetsPath)\Platforms\x64\PlatformToolsets\v100\ImportAfter')" /> +</Project> diff --git a/win32/wdkpt/wdkpt.aip b/win32/wdkpt/wdkpt.aip new file mode 100644 index 00000000..52bbfc51 --- /dev/null +++ b/win32/wdkpt/wdkpt.aip @@ -0,0 +1,142 @@ +<?xml version="1.0" encoding="UTF-8" standalone="yes"?> +<DOCUMENT Type="Advanced Installer" CreateVersion="9.2" version="9.2" Modules="simple" RootPath="." Language="en" Id="{F800981F-A57B-40E4-91FE-3C228741E1AD}"> + <COMPONENT cid="caphyon.advinst.msicomp.MsiValidationComponent"> + <ROW Table="File" Column="Sequence" MinValue="1" MaxValue="32767" Description="Sequence with respect to the media images; order must track cabinet order." Options="0" ColumnType="2" ColumnIndex="7" ColumnSize="2" MsiKey="File#Sequence"/> + <ROW Table="Media" Column="LastSequence" MinValue="0" MaxValue="32767" Description="File sequence number for the last file for this media." Options="0" ColumnType="2" ColumnIndex="1" ColumnSize="2" MsiKey="Media#LastSequence"/> + </COMPONENT> + <COMPONENT cid="caphyon.advinst.msicomp.MsiPropsComponent"> + <ROW Property="ALLUSERS" Value="2" MultiBuildValue="DefaultBuild:1"/> + <ROW Property="ARPCOMMENTS" Value="This installer database contains the logic and data required to install [|ProductName]." ValueLocId="*"/> + <ROW Property="ARPHELPLINK" Value="http://www.xchat-wdk.org/developers/wdk-platform-toolset"/> + <ROW Property="ARPURLINFOABOUT" Value="http://www.xchat-wdk.org/developers/wdk-platform-toolset"/> + <ROW Property="ARPURLUPDATEINFO" Value="http://www.xchat-wdk.org/developers/wdk-platform-toolset"/> + <ROW Property="Manufacturer" Value="XChat-WDK" ValueLocId="*"/> + <ROW Property="ProductCode" Value="1033:{FE3F5A4C-82A5-4ED9-969B-AECA6070A1A0} " Type="16"/> + <ROW Property="ProductLanguage" Value="1033"/> + <ROW Property="ProductName" Value="Visual Studio 2010 Windows Driver Kit Platform Toolset" ValueLocId="*"/> + <ROW Property="ProductVersion" Value="1.0" Type="32"/> + <ROW Property="SecureCustomProperties" Value="OLDPRODUCTS;AI_NEWERPRODUCTFOUND"/> + <ROW Property="UpgradeCode" Value="{1947FE78-21A1-4B81-99CE-E07AAEE6077D}"/> + <ROW Property="WindowsType9X" MultiBuildValue="DefaultBuild:Windows 9x/ME" ValueLocId="-"/> + <ROW Property="WindowsType9XDisplay" MultiBuildValue="DefaultBuild:Windows 9x/ME" ValueLocId="-"/> + </COMPONENT> + <COMPONENT cid="caphyon.advinst.msicomp.MsiDirsComponent"> + <ROW Directory="APPDIR" Directory_Parent="TARGETDIR" DefaultDir="APPDIR:." IsPseudoRoot="1"/> + <ROW Directory="MSBuild_Dir" Directory_Parent="ProgramFilesFolder" DefaultDir="MSBuild"/> + <ROW Directory="Microsoft.Cpp_Dir" Directory_Parent="MSBuild_Dir" DefaultDir="Micros~1.Cpp|Microsoft.Cpp"/> + <ROW Directory="PlatformToolsets_1_Dir" Directory_Parent="x64_Dir" DefaultDir="Platfo~1|PlatformToolsets"/> + <ROW Directory="PlatformToolsets_Dir" Directory_Parent="Win32_Dir" DefaultDir="Platfo~1|PlatformToolsets"/> + <ROW Directory="Platforms_Dir" Directory_Parent="v4.0_Dir" DefaultDir="Platfo~1|Platforms"/> + <ROW Directory="ProgramFilesFolder" Directory_Parent="TARGETDIR" DefaultDir="Progra~1|ProgramFilesFolder" IsPseudoRoot="1"/> + <ROW Directory="TARGETDIR" DefaultDir="SourceDir"/> + <ROW Directory="WDK7_1_Dir" Directory_Parent="PlatformToolsets_1_Dir" DefaultDir="WDK7"/> + <ROW Directory="WDK7_Dir" Directory_Parent="PlatformToolsets_Dir" DefaultDir="WDK7"/> + <ROW Directory="Win32_Dir" Directory_Parent="Platforms_Dir" DefaultDir="Win32"/> + <ROW Directory="v4.0_Dir" Directory_Parent="Microsoft.Cpp_Dir" DefaultDir="v4.0"/> + <ROW Directory="x64_Dir" Directory_Parent="Platforms_Dir" DefaultDir="x64"/> + </COMPONENT> + <COMPONENT cid="caphyon.advinst.msicomp.MsiCompsComponent"> + <ROW Component="Microsoft.Cpp.Win32.WDK7.props" ComponentId="{3EA16365-3C7E-4F84-A326-C7F28B33F487}" Directory_="WDK7_Dir" Attributes="0" KeyPath="Microsoft.Cpp.Win32.WDK7.props" Type="0"/> + <ROW Component="Microsoft.Cpp.x64.WDK7.props" ComponentId="{50DB333C-5D3E-4A14-80B9-BA1D727BD220}" Directory_="WDK7_1_Dir" Attributes="0" KeyPath="Microsoft.Cpp.x64.WDK7.props" Type="0"/> + <ROW Component="ProductInformation" ComponentId="{D10BE70A-D37D-413A-9474-71172E2A6261}" Directory_="APPDIR" Attributes="4" KeyPath="Version"/> + </COMPONENT> + <COMPONENT cid="caphyon.advinst.msicomp.MsiFeatsComponent"> + <ROW Feature="MainFeature" Title="MainFeature" Description="Description" Display="1" Level="1" Directory_="APPDIR" Attributes="0" Components="Microsoft.Cpp.Win32.WDK7.props Microsoft.Cpp.x64.WDK7.props ProductInformation"/> + <ATTRIBUTE name="CurrentFeature" value="MainFeature"/> + </COMPONENT> + <COMPONENT cid="caphyon.advinst.msicomp.MsiFilesComponent"> + <ROW File="Microsoft.Cpp.Win32.WDK7.props" Component_="Microsoft.Cpp.Win32.WDK7.props" FileName="Micros~1.pro|Microsoft.Cpp.Win32.WDK7.props" Attributes="0" SourcePath="Microsoft.Cpp.Win32.WDK7.props" SelfReg="false" NextFile="Microsoft.Cpp.Win32.WDK7.targets"/> + <ROW File="Microsoft.Cpp.Win32.WDK7.targets" Component_="Microsoft.Cpp.Win32.WDK7.props" FileName="Micros~1.tar|Microsoft.Cpp.Win32.WDK7.targets" Attributes="0" SourcePath="Microsoft.Cpp.Win32.WDK7.targets" SelfReg="false" NextFile="Microsoft.Cpp.x64.WDK7.props"/> + <ROW File="Microsoft.Cpp.x64.WDK7.props" Component_="Microsoft.Cpp.x64.WDK7.props" FileName="Micros~1.pro|Microsoft.Cpp.x64.WDK7.props" Attributes="0" SourcePath="Microsoft.Cpp.x64.WDK7.props" SelfReg="false" NextFile="Microsoft.Cpp.x64.WDK7.targets"/> + <ROW File="Microsoft.Cpp.x64.WDK7.targets" Component_="Microsoft.Cpp.x64.WDK7.props" FileName="Micros~1.tar|Microsoft.Cpp.x64.WDK7.targets" Attributes="0" SourcePath="Microsoft.Cpp.x64.WDK7.targets" SelfReg="false"/> + </COMPONENT> + <COMPONENT cid="caphyon.advinst.msicomp.BuildComponent"> + <ROW BuildKey="DefaultBuild" BuildName="DefaultBuild" BuildOrder="1" BuildType="0" PackageFolder="." PackageFileName="Visual Studio 2010 Windows Driver Kit Platform Toolset 1.0" Languages="en" InstallationType="4" UseLargeSchema="true"/> + <ATTRIBUTE name="CurrentBuild" value="DefaultBuild"/> + </COMPONENT> + <COMPONENT cid="caphyon.advinst.msicomp.DictionaryComponent"> + <ROW Path="<AI_DICTS>ui.ail"/> + <ROW Path="<AI_DICTS>ui_en.ail"/> + </COMPONENT> + <COMPONENT cid="caphyon.advinst.msicomp.FragmentComponent"> + <ROW Fragment="CommonUI.aip" Path="<AI_FRAGS>CommonUI.aip"/> + <ROW Fragment="MaintenanceTypeDlg.aip" Path="<AI_THEMES>classic\fragments\MaintenanceTypeDlg.aip"/> + <ROW Fragment="MaintenanceWelcomeDlg.aip" Path="<AI_THEMES>classic\fragments\MaintenanceWelcomeDlg.aip"/> + <ROW Fragment="SequenceDialogs.aip" Path="<AI_THEMES>classic\fragments\SequenceDialogs.aip"/> + <ROW Fragment="Sequences.aip" Path="<AI_FRAGS>Sequences.aip"/> + <ROW Fragment="StaticUIStrings.aip" Path="<AI_FRAGS>StaticUIStrings.aip"/> + <ROW Fragment="UI.aip" Path="<AI_THEMES>classic\fragments\UI.aip"/> + <ROW Fragment="Validation.aip" Path="<AI_FRAGS>Validation.aip"/> + <ROW Fragment="VerifyRemoveDlg.aip" Path="<AI_THEMES>classic\fragments\VerifyRemoveDlg.aip"/> + <ROW Fragment="VerifyRepairDlg.aip" Path="<AI_THEMES>classic\fragments\VerifyRepairDlg.aip"/> + <ROW Fragment="WelcomeDlg.aip" Path="<AI_THEMES>classic\fragments\WelcomeDlg.aip"/> + </COMPONENT> + <COMPONENT cid="caphyon.advinst.msicomp.MsiBinaryComponent"> + <ROW Name="aicustact.dll" SourcePath="<AI_CUSTACTS>aicustact.dll"/> + </COMPONENT> + <COMPONENT cid="caphyon.advinst.msicomp.MsiControlComponent"> + <ATTRIBUTE name="FixedSizeBitmaps" value="0"/> + </COMPONENT> + <COMPONENT cid="caphyon.advinst.msicomp.MsiControlEventComponent"> + <ROW Dialog_="WelcomeDlg" Control_="Next" Event="NewDialog" Argument="VerifyReadyDlg" Condition="AI_INSTALL" Ordering="1"/> + <ROW Dialog_="MaintenanceWelcomeDlg" Control_="Next" Event="NewDialog" Argument="MaintenanceTypeDlg" Condition="AI_MAINT" Ordering="99"/> + <ROW Dialog_="CustomizeDlg" Control_="Next" Event="NewDialog" Argument="VerifyReadyDlg" Condition="AI_MAINT" Ordering="101"/> + <ROW Dialog_="VerifyReadyDlg" Control_="Install" Event="EndDialog" Argument="Return" Condition="AI_INSTALL" Ordering="197"/> + <ROW Dialog_="VerifyReadyDlg" Control_="Back" Event="NewDialog" Argument="WelcomeDlg" Condition="AI_INSTALL" Ordering="201"/> + <ROW Dialog_="CustomizeDlg" Control_="Back" Event="NewDialog" Argument="MaintenanceTypeDlg" Condition="AI_MAINT" Ordering="1"/> + <ROW Dialog_="VerifyReadyDlg" Control_="Install" Event="EndDialog" Argument="Return" Condition="AI_MAINT" Ordering="198"/> + <ROW Dialog_="VerifyReadyDlg" Control_="Back" Event="NewDialog" Argument="CustomizeDlg" Condition="AI_MAINT" Ordering="202"/> + <ROW Dialog_="MaintenanceTypeDlg" Control_="ChangeButton" Event="NewDialog" Argument="CustomizeDlg" Condition="AI_MAINT" Ordering="501"/> + <ROW Dialog_="MaintenanceTypeDlg" Control_="Back" Event="NewDialog" Argument="MaintenanceWelcomeDlg" Condition="AI_MAINT" Ordering="1"/> + <ROW Dialog_="MaintenanceTypeDlg" Control_="RemoveButton" Event="NewDialog" Argument="VerifyRemoveDlg" Condition="AI_MAINT AND InstallMode="Remove"" Ordering="601"/> + <ROW Dialog_="VerifyRemoveDlg" Control_="Back" Event="NewDialog" Argument="MaintenanceTypeDlg" Condition="AI_MAINT AND InstallMode="Remove"" Ordering="1"/> + <ROW Dialog_="MaintenanceTypeDlg" Control_="RepairButton" Event="NewDialog" Argument="VerifyRepairDlg" Condition="AI_MAINT AND InstallMode="Repair"" Ordering="601"/> + <ROW Dialog_="VerifyRepairDlg" Control_="Back" Event="NewDialog" Argument="MaintenanceTypeDlg" Condition="AI_MAINT AND InstallMode="Repair"" Ordering="1"/> + <ROW Dialog_="VerifyRepairDlg" Control_="Repair" Event="EndDialog" Argument="Return" Condition="AI_MAINT AND InstallMode="Repair"" Ordering="399"/> + <ROW Dialog_="VerifyRemoveDlg" Control_="Remove" Event="EndDialog" Argument="Return" Condition="AI_MAINT AND InstallMode="Remove"" Ordering="299"/> + <ROW Dialog_="PatchWelcomeDlg" Control_="Next" Event="NewDialog" Argument="VerifyReadyDlg" Condition="AI_PATCH" Ordering="201"/> + <ROW Dialog_="VerifyReadyDlg" Control_="Install" Event="EndDialog" Argument="Return" Condition="AI_PATCH" Ordering="199"/> + <ROW Dialog_="VerifyReadyDlg" Control_="Back" Event="NewDialog" Argument="PatchWelcomeDlg" Condition="AI_PATCH" Ordering="203"/> + <ROW Dialog_="ResumeDlg" Control_="Install" Event="EndDialog" Argument="Return" Condition="AI_RESUME" Ordering="299"/> + </COMPONENT> + <COMPONENT cid="caphyon.advinst.msicomp.MsiCustActComponent"> + <ROW Action="AI_DOWNGRADE" Type="19" Target="4010"/> + <ROW Action="AI_InstallModeCheck" Type="1" Source="aicustact.dll" Target="UpdateInstallMode" WithoutSeq="true"/> + <ROW Action="AI_PREPARE_UPGRADE" Type="65" Source="aicustact.dll" Target="PrepareUpgrade"/> + <ROW Action="AI_RESTORE_LOCATION" Type="65" Source="aicustact.dll" Target="RestoreLocation"/> + <ROW Action="AI_ResolveKnownFolders" Type="1" Source="aicustact.dll" Target="AI_ResolveKnownFolders"/> + <ROW Action="AI_ResolveLocalizedCredentials" Type="1" Source="aicustact.dll" Target="GetLocalizedCredentials"/> + <ROW Action="AI_SHOW_LOG" Type="65" Source="aicustact.dll" Target="LaunchLogFile" WithoutSeq="true"/> + <ROW Action="AI_STORE_LOCATION" Type="51" Source="ARPINSTALLLOCATION" Target="[APPDIR]"/> + <ROW Action="SET_APPDIR" Type="307" Source="APPDIR" Target="[ProgramFilesFolder][Manufacturer]\[ProductName]"/> + <ROW Action="SET_SHORTCUTDIR" Type="307" Source="SHORTCUTDIR" Target="[ProgramMenuFolder][ProductName]"/> + <ROW Action="SET_TARGETDIR_TO_APPDIR" Type="51" Source="TARGETDIR" Target="[APPDIR]"/> + </COMPONENT> + <COMPONENT cid="caphyon.advinst.msicomp.MsiInstExSeqComponent"> + <ROW Action="AI_DOWNGRADE" Condition="AI_NEWERPRODUCTFOUND AND (UILevel <> 5)" Sequence="210"/> + <ROW Action="AI_RESTORE_LOCATION" Condition="APPDIR=""" Sequence="749"/> + <ROW Action="AI_STORE_LOCATION" Condition="(Not Installed) OR REINSTALL" Sequence="1501"/> + <ROW Action="AI_PREPARE_UPGRADE" Condition="AI_UPGRADE="No" AND (Not Installed)" Sequence="1399"/> + <ROW Action="AI_ResolveKnownFolders" Sequence="52"/> + <ROW Action="AI_ResolveLocalizedCredentials" Sequence="51"/> + </COMPONENT> + <COMPONENT cid="caphyon.advinst.msicomp.MsiInstallUISequenceComponent"> + <ROW Action="AI_RESTORE_LOCATION" Condition="APPDIR=""" Sequence="749"/> + <ROW Action="AI_ResolveKnownFolders" Sequence="52"/> + <ROW Action="AI_ResolveLocalizedCredentials" Sequence="51"/> + </COMPONENT> + <COMPONENT cid="caphyon.advinst.msicomp.MsiLaunchConditionsComponent"> + <ROW Condition="VersionNT" Description="[ProductName] cannot be installed on [WindowsType9XDisplay]" DescriptionLocId="AI.LaunchCondition.No9X" IsPredefined="true" Builds="DefaultBuild"/> + </COMPONENT> + <COMPONENT cid="caphyon.advinst.msicomp.MsiRegsComponent"> + <ROW Registry="Path" Root="-1" Key="Software\[Manufacturer]\[ProductName]" Name="Path" Value="[APPDIR]" Component_="ProductInformation"/> + <ROW Registry="Version" Root="-1" Key="Software\[Manufacturer]\[ProductName]" Name="Version" Value="[ProductVersion]" Component_="ProductInformation"/> + </COMPONENT> + <COMPONENT cid="caphyon.advinst.msicomp.MsiThemeComponent"> + <ATTRIBUTE name="UsedTheme" value="classic"/> + </COMPONENT> + <COMPONENT cid="caphyon.advinst.msicomp.MsiUpgradeComponent"> + <ROW UpgradeCode="[|UpgradeCode]" VersionMax="[|ProductVersion]" Attributes="1025" ActionProperty="OLDPRODUCTS"/> + <ROW UpgradeCode="[|UpgradeCode]" VersionMin="[|ProductVersion]" Attributes="2" ActionProperty="AI_NEWERPRODUCTFOUND"/> + </COMPONENT> +</DOCUMENT> diff --git a/win32/xchat.props b/win32/xchat.props new file mode 100644 index 00000000..22f0cd5a --- /dev/null +++ b/win32/xchat.props @@ -0,0 +1,42 @@ +<?xml version="1.0" encoding="utf-8"?> +<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <ImportGroup Label="PropertySheets" /> + <PropertyGroup Label="UserMacros"> + <!-- SPECIFY YOUR DEPENDENCY DIRECTORIES HERE --> + <YourDepsPath>c:\mozilla build\xchat-deps</YourDepsPath> + <YourGendefPath>c:\mozilla build\gendef</YourGendefPath> + <YourTclPath>c:\mozilla build\tcl-8.5</YourTclPath> + <YourPerl512Path>c:\mozilla build\perl-5.12</YourPerl512Path> + <YourPerl514Path>c:\mozilla build\perl-5.14</YourPerl514Path> + <YourPerl516Path>c:\mozilla build\perl-5.16</YourPerl516Path> + <YourPythonPath>c:\mozilla build\python-2.7</YourPythonPath> + <!-- YOU SHOULDN'T TOUCH ANYTHING BELOW --> + <OwnFlags>G_DISABLE_CAST_CHECKS;G_DISABLE_DEPRECATED;GDK_PIXBUF_DISABLE_DEPRECATED;GDK_DISABLE_DEPRECATED;HAVE_STRTOULL;strtoull=_strtoui64;strcasecmp=stricmp;strncasecmp=strnicmp;__inline__=__inline;</OwnFlags> + <DepsRoot>$(YourDepsPath)\$(PlatformName)</DepsRoot> + <GendefPath>$(YourGendefPath)</GendefPath> + <LuaLib>lua51</LuaLib> + <LuaOutput>xclua</LuaOutput> + <TclPath>$(YourTclPath)\$(PlatformName)</TclPath> + <TclLib>tcl85</TclLib> + <TclOutput>xctcl</TclOutput> + <Perl512Path>$(YourPerl512Path)\$(PlatformName)</Perl512Path> + <Perl512Lib>perl512</Perl512Lib> + <Perl512Output>xcperl-512</Perl512Output> + <Perl514Path>$(YourPerl514Path)\$(PlatformName)</Perl514Path> + <Perl514Lib>perl514</Perl514Lib> + <Perl514Output>xcperl-514</Perl514Output> + <Perl516Path>$(YourPerl516Path)\$(PlatformName)</Perl516Path> + <Perl516Lib>perl516</Perl516Lib> + <Perl516Output>xcperl-516</Perl516Output> + <PythonPath>$(YourPythonPath)\$(PlatformName)</PythonPath> + <PythonLib>python27</PythonLib> + <PythonOutput>xcpython</PythonOutput> + <Glib>$(DepsRoot)\include\glib-2.0;$(DepsRoot)\lib\glib-2.0\include;$(DepsRoot)\include\libxml2</Glib> + <Gtk>$(DepsRoot)\include\gtk-2.0;$(DepsRoot)\lib\gtk-2.0\include;$(DepsRoot)\include\atk-1.0;$(DepsRoot)\include\cairo;$(DepsRoot)\include\pango-1.0;$(DepsRoot)\include\gdk-pixbuf-2.0</Gtk> + <Pixmaps>bookpng "$(SolutionDir)\..\src\pixmaps\book.png" hoppng "$(SolutionDir)\..\src\pixmaps\hop.png" oppng "$(SolutionDir)\..\src\pixmaps\op.png" purplepng "$(SolutionDir)\..\src\pixmaps\purple.png" redpng "$(SolutionDir)\..\src\pixmaps\red.png" trayfilepng "$(SolutionDir)\..\src\pixmaps\fileoffer.png" trayhilightpng "$(SolutionDir)\..\src\pixmaps\highlight.png" traymsgpng "$(SolutionDir)\..\src\pixmaps\message.png" voicepng "$(SolutionDir)\..\src\pixmaps\voice.png" xchatpng "$(SolutionDir)\..\xchat.png"</Pixmaps> + <DepLibs>gtk-win32-2.0.lib;gdk-win32-2.0.lib;atk-1.0.lib;gio-2.0.lib;gdk_pixbuf-2.0.lib;pangowin32-1.0.lib;pangocairo-1.0.lib;pango-1.0.lib;cairo.lib;gobject-2.0.lib;gmodule-2.0.lib;glib-2.0.lib;intl.lib;libxml2.lib;libeay32.lib;ssleay32.lib;wininet.lib;winmm.lib;ws2_32.lib</DepLibs> + <XChatDest>$(SolutionDir)build\$(PlatformName)\rel</XChatDest> + </PropertyGroup> + <ItemDefinitionGroup /> + <ItemGroup /> +</Project> diff --git a/win32/xchat.sln b/win32/xchat.sln new file mode 100644 index 00000000..42969f38 --- /dev/null +++ b/win32/xchat.sln @@ -0,0 +1,275 @@ + +Microsoft Visual Studio Solution File, Format Version 11.00 +# Visual Studio 2010 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "common", "..\src\common\common.vcxproj", "{87554B59-006C-4D94-9714-897B27067BA3}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "dirent", "..\src\dirent\dirent.vcxproj", "{98B56DF9-E4F1-4696-A565-5F7823CF214D}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "pixmaps", "..\src\pixmaps\pixmaps.vcxproj", "{626DA61C-FA8B-474C-B2F5-72AD9DFEE642}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "version", "..\src\version\version.vcxproj", "{6CD3647E-4541-4849-9DD7-C8816665AE42}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "fe-gtk", "..\src\fe-gtk\fe-gtk.vcxproj", "{E4BDB4C8-2335-415A-ACEE-BA88B19BFE82}" + ProjectSection(ProjectDependencies) = postProject + {626DA61C-FA8B-474C-B2F5-72AD9DFEE642} = {626DA61C-FA8B-474C-B2F5-72AD9DFEE642} + {87554B59-006C-4D94-9714-897B27067BA3} = {87554B59-006C-4D94-9714-897B27067BA3} + {6CD3647E-4541-4849-9DD7-C8816665AE42} = {6CD3647E-4541-4849-9DD7-C8816665AE42} + {98B56DF9-E4F1-4696-A565-5F7823CF214D} = {98B56DF9-E4F1-4696-A565-5F7823CF214D} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "fe-text", "..\src\fe-text\fe-text.vcxproj", "{E93E1255-95D1-4B08-8FDF-B53CC6A21280}" + ProjectSection(ProjectDependencies) = postProject + {87554B59-006C-4D94-9714-897B27067BA3} = {87554B59-006C-4D94-9714-897B27067BA3} + {98B56DF9-E4F1-4696-A565-5F7823CF214D} = {98B56DF9-E4F1-4696-A565-5F7823CF214D} + EndProjectSection +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "xchat", "xchat", "{AAACEB12-9475-410E-AF5A-FDFF907E9043}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "plugins", "plugins", "{561126F4-FA18-45FC-A2BF-8F858F161D6D}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "scripting", "scripting", "{D237DA6B-BD5F-46C0-8BEA-50E9A1340240}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "common", "common", "{BB051F0F-A841-4A9A-BAF6-51DD9866D65A}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "tcl", "..\plugins\tcl\tcl.vcxproj", "{2773666A-8CFC-4533-A043-EAD59F16A1C7}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "perl-512", "..\plugins\perl\perl-512.vcxproj", "{987E9374-98A1-44BA-946F-D3472D7A7055}" + ProjectSection(ProjectDependencies) = postProject + {98B56DF9-E4F1-4696-A565-5F7823CF214D} = {98B56DF9-E4F1-4696-A565-5F7823CF214D} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "perl-514", "..\plugins\perl\perl-514.vcxproj", "{C4C9FA6F-F990-4C7B-85F6-CD8F4F5728F0}" + ProjectSection(ProjectDependencies) = postProject + {987E9374-98A1-44BA-946F-D3472D7A7055} = {987E9374-98A1-44BA-946F-D3472D7A7055} + {98B56DF9-E4F1-4696-A565-5F7823CF214D} = {98B56DF9-E4F1-4696-A565-5F7823CF214D} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "perl-516", "..\plugins\perl\perl-516.vcxproj", "{58654438-F674-42F7-88FA-73EF90AD80B1}" + ProjectSection(ProjectDependencies) = postProject + {C4C9FA6F-F990-4C7B-85F6-CD8F4F5728F0} = {C4C9FA6F-F990-4C7B-85F6-CD8F4F5728F0} + {98B56DF9-E4F1-4696-A565-5F7823CF214D} = {98B56DF9-E4F1-4696-A565-5F7823CF214D} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "python", "..\plugins\python\python.vcxproj", "{19C52A0A-A790-409E-A28A-9745FF990F5C}" + ProjectSection(ProjectDependencies) = postProject + {98B56DF9-E4F1-4696-A565-5F7823CF214D} = {98B56DF9-E4F1-4696-A565-5F7823CF214D} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "lua", "..\plugins\lua\lua.vcxproj", "{646B4316-C8B8-4DB6-B6AE-E586929E5729}" + ProjectSection(ProjectDependencies) = postProject + {98B56DF9-E4F1-4696-A565-5F7823CF214D} = {98B56DF9-E4F1-4696-A565-5F7823CF214D} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "doat", "..\plugins\doat\doat.vcxproj", "{4980AF24-9D42-427D-A8E6-0DF3B97C455D}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "checksum", "..\plugins\checksum\checksum.vcxproj", "{5EF7F47D-D09C-43C4-BF64-B28B11A0FF91}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "dns", "..\plugins\dns\dns.vcxproj", "{3786FA8C-3E76-45E3-984E-FCCFF44729C9}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "exec", "..\plugins\exec\exec.vcxproj", "{17E4BE39-76F7-4A06-AD21-EFD0C5091F76}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "fishlim", "..\plugins\fishlim\fishlim.vcxproj", "{3C4F42FC-292A-420B-B63D-C03DFBDD8E4E}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mpcinfo", "..\plugins\mpcinfo\mpcinfo.vcxproj", "{B0E36D93-CA2A-49FE-9EB9-9C96C6016EEC}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "upd", "..\plugins\upd\upd.vcxproj", "{461DC24A-A410-4171-8C02-CCDBF3702C2A}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "winamp", "..\plugins\winamp\winamp.vcxproj", "{E78C0D9A-798E-4BF6-B0CC-6FECB8CA2FCE}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "winsys", "..\plugins\winsys\winsys.vcxproj", "{6C0CA980-97C5-427A-BE61-5BCECAFABBDA}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "xsasl", "..\plugins\xsasl\xsasl.vcxproj", "{18871EBA-AC85-4652-8919-EB8064B9A714}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "xtray", "..\plugins\xtray\xtray.vcxproj", "{3024CF36-85E5-4E00-9608-7002E2C7EF14}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "wmpa", "..\plugins\wmpa\wmpa.vcxproj", "{E7F4DB0A-510D-41EF-B284-6E1DE1CC450D}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "release", "release", "{0FD996A7-464F-4981-8380-3DCA3A244A13}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "nls", "nls\nls.vcxproj", "{B10A2C41-344C-43E0-A32D-B9587C198D8B}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "copy", "copy\copy.vcxproj", "{C9B735E4-75BC-45AC-A5E3-39A6D076F912}" + ProjectSection(ProjectDependencies) = postProject + {19C52A0A-A790-409E-A28A-9745FF990F5C} = {19C52A0A-A790-409E-A28A-9745FF990F5C} + {E7F4DB0A-510D-41EF-B284-6E1DE1CC450D} = {E7F4DB0A-510D-41EF-B284-6E1DE1CC450D} + {646B4316-C8B8-4DB6-B6AE-E586929E5729} = {646B4316-C8B8-4DB6-B6AE-E586929E5729} + {4980AF24-9D42-427D-A8E6-0DF3B97C455D} = {4980AF24-9D42-427D-A8E6-0DF3B97C455D} + {3024CF36-85E5-4E00-9608-7002E2C7EF14} = {3024CF36-85E5-4E00-9608-7002E2C7EF14} + {58654438-F674-42F7-88FA-73EF90AD80B1} = {58654438-F674-42F7-88FA-73EF90AD80B1} + {17E4BE39-76F7-4A06-AD21-EFD0C5091F76} = {17E4BE39-76F7-4A06-AD21-EFD0C5091F76} + {B10A2C41-344C-43E0-A32D-B9587C198D8B} = {B10A2C41-344C-43E0-A32D-B9587C198D8B} + {461DC24A-A410-4171-8C02-CCDBF3702C2A} = {461DC24A-A410-4171-8C02-CCDBF3702C2A} + {E93E1255-95D1-4B08-8FDF-B53CC6A21280} = {E93E1255-95D1-4B08-8FDF-B53CC6A21280} + {2773666A-8CFC-4533-A043-EAD59F16A1C7} = {2773666A-8CFC-4533-A043-EAD59F16A1C7} + {C4C9FA6F-F990-4C7B-85F6-CD8F4F5728F0} = {C4C9FA6F-F990-4C7B-85F6-CD8F4F5728F0} + {987E9374-98A1-44BA-946F-D3472D7A7055} = {987E9374-98A1-44BA-946F-D3472D7A7055} + {5EF7F47D-D09C-43C4-BF64-B28B11A0FF91} = {5EF7F47D-D09C-43C4-BF64-B28B11A0FF91} + {6C0CA980-97C5-427A-BE61-5BCECAFABBDA} = {6C0CA980-97C5-427A-BE61-5BCECAFABBDA} + {3786FA8C-3E76-45E3-984E-FCCFF44729C9} = {3786FA8C-3E76-45E3-984E-FCCFF44729C9} + {B0E36D93-CA2A-49FE-9EB9-9C96C6016EEC} = {B0E36D93-CA2A-49FE-9EB9-9C96C6016EEC} + {E78C0D9A-798E-4BF6-B0CC-6FECB8CA2FCE} = {E78C0D9A-798E-4BF6-B0CC-6FECB8CA2FCE} + {18871EBA-AC85-4652-8919-EB8064B9A714} = {18871EBA-AC85-4652-8919-EB8064B9A714} + {E4BDB4C8-2335-415A-ACEE-BA88B19BFE82} = {E4BDB4C8-2335-415A-ACEE-BA88B19BFE82} + {DE87FFCA-9606-4116-B747-062D88A56A28} = {DE87FFCA-9606-4116-B747-062D88A56A28} + {3C4F42FC-292A-420B-B63D-C03DFBDD8E4E} = {3C4F42FC-292A-420B-B63D-C03DFBDD8E4E} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "installer", "installer\installer.vcxproj", "{5A0F4962-E670-4DA2-9E45-52CC47F26E2F}" + ProjectSection(ProjectDependencies) = postProject + {C9B735E4-75BC-45AC-A5E3-39A6D076F912} = {C9B735E4-75BC-45AC-A5E3-39A6D076F912} + EndProjectSection +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "xtm", "..\src\xtm\xtm.csproj", "{DE87FFCA-9606-4116-B747-062D88A56A28}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Release|Win32 = Release|Win32 + Release|x64 = Release|x64 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {87554B59-006C-4D94-9714-897B27067BA3}.Release|Win32.ActiveCfg = Release|Win32 + {87554B59-006C-4D94-9714-897B27067BA3}.Release|Win32.Build.0 = Release|Win32 + {87554B59-006C-4D94-9714-897B27067BA3}.Release|x64.ActiveCfg = Release|x64 + {87554B59-006C-4D94-9714-897B27067BA3}.Release|x64.Build.0 = Release|x64 + {98B56DF9-E4F1-4696-A565-5F7823CF214D}.Release|Win32.ActiveCfg = Release|Win32 + {98B56DF9-E4F1-4696-A565-5F7823CF214D}.Release|Win32.Build.0 = Release|Win32 + {98B56DF9-E4F1-4696-A565-5F7823CF214D}.Release|x64.ActiveCfg = Release|x64 + {98B56DF9-E4F1-4696-A565-5F7823CF214D}.Release|x64.Build.0 = Release|x64 + {626DA61C-FA8B-474C-B2F5-72AD9DFEE642}.Release|Win32.ActiveCfg = Release|Win32 + {626DA61C-FA8B-474C-B2F5-72AD9DFEE642}.Release|Win32.Build.0 = Release|Win32 + {626DA61C-FA8B-474C-B2F5-72AD9DFEE642}.Release|x64.ActiveCfg = Release|x64 + {626DA61C-FA8B-474C-B2F5-72AD9DFEE642}.Release|x64.Build.0 = Release|x64 + {6CD3647E-4541-4849-9DD7-C8816665AE42}.Release|Win32.ActiveCfg = Release|Win32 + {6CD3647E-4541-4849-9DD7-C8816665AE42}.Release|Win32.Build.0 = Release|Win32 + {6CD3647E-4541-4849-9DD7-C8816665AE42}.Release|x64.ActiveCfg = Release|x64 + {6CD3647E-4541-4849-9DD7-C8816665AE42}.Release|x64.Build.0 = Release|x64 + {E4BDB4C8-2335-415A-ACEE-BA88B19BFE82}.Release|Win32.ActiveCfg = Release|Win32 + {E4BDB4C8-2335-415A-ACEE-BA88B19BFE82}.Release|Win32.Build.0 = Release|Win32 + {E4BDB4C8-2335-415A-ACEE-BA88B19BFE82}.Release|x64.ActiveCfg = Release|x64 + {E4BDB4C8-2335-415A-ACEE-BA88B19BFE82}.Release|x64.Build.0 = Release|x64 + {E93E1255-95D1-4B08-8FDF-B53CC6A21280}.Release|Win32.ActiveCfg = Release|Win32 + {E93E1255-95D1-4B08-8FDF-B53CC6A21280}.Release|Win32.Build.0 = Release|Win32 + {E93E1255-95D1-4B08-8FDF-B53CC6A21280}.Release|x64.ActiveCfg = Release|x64 + {E93E1255-95D1-4B08-8FDF-B53CC6A21280}.Release|x64.Build.0 = Release|x64 + {2773666A-8CFC-4533-A043-EAD59F16A1C7}.Release|Win32.ActiveCfg = Release|Win32 + {2773666A-8CFC-4533-A043-EAD59F16A1C7}.Release|Win32.Build.0 = Release|Win32 + {2773666A-8CFC-4533-A043-EAD59F16A1C7}.Release|x64.ActiveCfg = Release|x64 + {2773666A-8CFC-4533-A043-EAD59F16A1C7}.Release|x64.Build.0 = Release|x64 + {987E9374-98A1-44BA-946F-D3472D7A7055}.Release|Win32.ActiveCfg = Release|Win32 + {987E9374-98A1-44BA-946F-D3472D7A7055}.Release|Win32.Build.0 = Release|Win32 + {987E9374-98A1-44BA-946F-D3472D7A7055}.Release|x64.ActiveCfg = Release|x64 + {987E9374-98A1-44BA-946F-D3472D7A7055}.Release|x64.Build.0 = Release|x64 + {C4C9FA6F-F990-4C7B-85F6-CD8F4F5728F0}.Release|Win32.ActiveCfg = Release|Win32 + {C4C9FA6F-F990-4C7B-85F6-CD8F4F5728F0}.Release|Win32.Build.0 = Release|Win32 + {C4C9FA6F-F990-4C7B-85F6-CD8F4F5728F0}.Release|x64.ActiveCfg = Release|x64 + {C4C9FA6F-F990-4C7B-85F6-CD8F4F5728F0}.Release|x64.Build.0 = Release|x64 + {58654438-F674-42F7-88FA-73EF90AD80B1}.Release|Win32.ActiveCfg = Release|Win32 + {58654438-F674-42F7-88FA-73EF90AD80B1}.Release|Win32.Build.0 = Release|Win32 + {58654438-F674-42F7-88FA-73EF90AD80B1}.Release|x64.ActiveCfg = Release|x64 + {58654438-F674-42F7-88FA-73EF90AD80B1}.Release|x64.Build.0 = Release|x64 + {19C52A0A-A790-409E-A28A-9745FF990F5C}.Release|Win32.ActiveCfg = Release|Win32 + {19C52A0A-A790-409E-A28A-9745FF990F5C}.Release|Win32.Build.0 = Release|Win32 + {19C52A0A-A790-409E-A28A-9745FF990F5C}.Release|x64.ActiveCfg = Release|x64 + {19C52A0A-A790-409E-A28A-9745FF990F5C}.Release|x64.Build.0 = Release|x64 + {646B4316-C8B8-4DB6-B6AE-E586929E5729}.Release|Win32.ActiveCfg = Release|Win32 + {646B4316-C8B8-4DB6-B6AE-E586929E5729}.Release|Win32.Build.0 = Release|Win32 + {646B4316-C8B8-4DB6-B6AE-E586929E5729}.Release|x64.ActiveCfg = Release|x64 + {646B4316-C8B8-4DB6-B6AE-E586929E5729}.Release|x64.Build.0 = Release|x64 + {4980AF24-9D42-427D-A8E6-0DF3B97C455D}.Release|Win32.ActiveCfg = Release|Win32 + {4980AF24-9D42-427D-A8E6-0DF3B97C455D}.Release|Win32.Build.0 = Release|Win32 + {4980AF24-9D42-427D-A8E6-0DF3B97C455D}.Release|x64.ActiveCfg = Release|x64 + {4980AF24-9D42-427D-A8E6-0DF3B97C455D}.Release|x64.Build.0 = Release|x64 + {5EF7F47D-D09C-43C4-BF64-B28B11A0FF91}.Release|Win32.ActiveCfg = Release|Win32 + {5EF7F47D-D09C-43C4-BF64-B28B11A0FF91}.Release|Win32.Build.0 = Release|Win32 + {5EF7F47D-D09C-43C4-BF64-B28B11A0FF91}.Release|x64.ActiveCfg = Release|x64 + {5EF7F47D-D09C-43C4-BF64-B28B11A0FF91}.Release|x64.Build.0 = Release|x64 + {3786FA8C-3E76-45E3-984E-FCCFF44729C9}.Release|Win32.ActiveCfg = Release|Win32 + {3786FA8C-3E76-45E3-984E-FCCFF44729C9}.Release|Win32.Build.0 = Release|Win32 + {3786FA8C-3E76-45E3-984E-FCCFF44729C9}.Release|x64.ActiveCfg = Release|x64 + {3786FA8C-3E76-45E3-984E-FCCFF44729C9}.Release|x64.Build.0 = Release|x64 + {17E4BE39-76F7-4A06-AD21-EFD0C5091F76}.Release|Win32.ActiveCfg = Release|Win32 + {17E4BE39-76F7-4A06-AD21-EFD0C5091F76}.Release|Win32.Build.0 = Release|Win32 + {17E4BE39-76F7-4A06-AD21-EFD0C5091F76}.Release|x64.ActiveCfg = Release|x64 + {17E4BE39-76F7-4A06-AD21-EFD0C5091F76}.Release|x64.Build.0 = Release|x64 + {3C4F42FC-292A-420B-B63D-C03DFBDD8E4E}.Release|Win32.ActiveCfg = Release|Win32 + {3C4F42FC-292A-420B-B63D-C03DFBDD8E4E}.Release|Win32.Build.0 = Release|Win32 + {3C4F42FC-292A-420B-B63D-C03DFBDD8E4E}.Release|x64.ActiveCfg = Release|x64 + {3C4F42FC-292A-420B-B63D-C03DFBDD8E4E}.Release|x64.Build.0 = Release|x64 + {B0E36D93-CA2A-49FE-9EB9-9C96C6016EEC}.Release|Win32.ActiveCfg = Release|Win32 + {B0E36D93-CA2A-49FE-9EB9-9C96C6016EEC}.Release|Win32.Build.0 = Release|Win32 + {B0E36D93-CA2A-49FE-9EB9-9C96C6016EEC}.Release|x64.ActiveCfg = Release|x64 + {B0E36D93-CA2A-49FE-9EB9-9C96C6016EEC}.Release|x64.Build.0 = Release|x64 + {461DC24A-A410-4171-8C02-CCDBF3702C2A}.Release|Win32.ActiveCfg = Release|Win32 + {461DC24A-A410-4171-8C02-CCDBF3702C2A}.Release|Win32.Build.0 = Release|Win32 + {461DC24A-A410-4171-8C02-CCDBF3702C2A}.Release|x64.ActiveCfg = Release|x64 + {461DC24A-A410-4171-8C02-CCDBF3702C2A}.Release|x64.Build.0 = Release|x64 + {E78C0D9A-798E-4BF6-B0CC-6FECB8CA2FCE}.Release|Win32.ActiveCfg = Release|Win32 + {E78C0D9A-798E-4BF6-B0CC-6FECB8CA2FCE}.Release|Win32.Build.0 = Release|Win32 + {E78C0D9A-798E-4BF6-B0CC-6FECB8CA2FCE}.Release|x64.ActiveCfg = Release|x64 + {E78C0D9A-798E-4BF6-B0CC-6FECB8CA2FCE}.Release|x64.Build.0 = Release|x64 + {6C0CA980-97C5-427A-BE61-5BCECAFABBDA}.Release|Win32.ActiveCfg = Release|Win32 + {6C0CA980-97C5-427A-BE61-5BCECAFABBDA}.Release|Win32.Build.0 = Release|Win32 + {6C0CA980-97C5-427A-BE61-5BCECAFABBDA}.Release|x64.ActiveCfg = Release|x64 + {6C0CA980-97C5-427A-BE61-5BCECAFABBDA}.Release|x64.Build.0 = Release|x64 + {18871EBA-AC85-4652-8919-EB8064B9A714}.Release|Win32.ActiveCfg = Release|Win32 + {18871EBA-AC85-4652-8919-EB8064B9A714}.Release|Win32.Build.0 = Release|Win32 + {18871EBA-AC85-4652-8919-EB8064B9A714}.Release|x64.ActiveCfg = Release|x64 + {18871EBA-AC85-4652-8919-EB8064B9A714}.Release|x64.Build.0 = Release|x64 + {3024CF36-85E5-4E00-9608-7002E2C7EF14}.Release|Win32.ActiveCfg = Release|Win32 + {3024CF36-85E5-4E00-9608-7002E2C7EF14}.Release|Win32.Build.0 = Release|Win32 + {3024CF36-85E5-4E00-9608-7002E2C7EF14}.Release|x64.ActiveCfg = Release|x64 + {3024CF36-85E5-4E00-9608-7002E2C7EF14}.Release|x64.Build.0 = Release|x64 + {E7F4DB0A-510D-41EF-B284-6E1DE1CC450D}.Release|Win32.ActiveCfg = Release|Win32 + {E7F4DB0A-510D-41EF-B284-6E1DE1CC450D}.Release|Win32.Build.0 = Release|Win32 + {E7F4DB0A-510D-41EF-B284-6E1DE1CC450D}.Release|x64.ActiveCfg = Release|x64 + {E7F4DB0A-510D-41EF-B284-6E1DE1CC450D}.Release|x64.Build.0 = Release|x64 + {B10A2C41-344C-43E0-A32D-B9587C198D8B}.Release|Win32.ActiveCfg = Release|Win32 + {B10A2C41-344C-43E0-A32D-B9587C198D8B}.Release|Win32.Build.0 = Release|Win32 + {B10A2C41-344C-43E0-A32D-B9587C198D8B}.Release|x64.ActiveCfg = Release|x64 + {B10A2C41-344C-43E0-A32D-B9587C198D8B}.Release|x64.Build.0 = Release|x64 + {C9B735E4-75BC-45AC-A5E3-39A6D076F912}.Release|Win32.ActiveCfg = Release|Win32 + {C9B735E4-75BC-45AC-A5E3-39A6D076F912}.Release|Win32.Build.0 = Release|Win32 + {C9B735E4-75BC-45AC-A5E3-39A6D076F912}.Release|x64.ActiveCfg = Release|x64 + {C9B735E4-75BC-45AC-A5E3-39A6D076F912}.Release|x64.Build.0 = Release|x64 + {5A0F4962-E670-4DA2-9E45-52CC47F26E2F}.Release|Win32.ActiveCfg = Release|Win32 + {5A0F4962-E670-4DA2-9E45-52CC47F26E2F}.Release|Win32.Build.0 = Release|Win32 + {5A0F4962-E670-4DA2-9E45-52CC47F26E2F}.Release|x64.ActiveCfg = Release|x64 + {5A0F4962-E670-4DA2-9E45-52CC47F26E2F}.Release|x64.Build.0 = Release|x64 + {DE87FFCA-9606-4116-B747-062D88A56A28}.Release|Win32.ActiveCfg = Release|x86 + {DE87FFCA-9606-4116-B747-062D88A56A28}.Release|x64.ActiveCfg = Release|x64 + {DE87FFCA-9606-4116-B747-062D88A56A28}.Release|x64.Build.0 = Release|x64 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(NestedProjects) = preSolution + {626DA61C-FA8B-474C-B2F5-72AD9DFEE642} = {AAACEB12-9475-410E-AF5A-FDFF907E9043} + {E4BDB4C8-2335-415A-ACEE-BA88B19BFE82} = {AAACEB12-9475-410E-AF5A-FDFF907E9043} + {E93E1255-95D1-4B08-8FDF-B53CC6A21280} = {AAACEB12-9475-410E-AF5A-FDFF907E9043} + {87554B59-006C-4D94-9714-897B27067BA3} = {AAACEB12-9475-410E-AF5A-FDFF907E9043} + {DE87FFCA-9606-4116-B747-062D88A56A28} = {AAACEB12-9475-410E-AF5A-FDFF907E9043} + {6CD3647E-4541-4849-9DD7-C8816665AE42} = {BB051F0F-A841-4A9A-BAF6-51DD9866D65A} + {98B56DF9-E4F1-4696-A565-5F7823CF214D} = {BB051F0F-A841-4A9A-BAF6-51DD9866D65A} + {4980AF24-9D42-427D-A8E6-0DF3B97C455D} = {561126F4-FA18-45FC-A2BF-8F858F161D6D} + {5EF7F47D-D09C-43C4-BF64-B28B11A0FF91} = {561126F4-FA18-45FC-A2BF-8F858F161D6D} + {3786FA8C-3E76-45E3-984E-FCCFF44729C9} = {561126F4-FA18-45FC-A2BF-8F858F161D6D} + {17E4BE39-76F7-4A06-AD21-EFD0C5091F76} = {561126F4-FA18-45FC-A2BF-8F858F161D6D} + {3C4F42FC-292A-420B-B63D-C03DFBDD8E4E} = {561126F4-FA18-45FC-A2BF-8F858F161D6D} + {B0E36D93-CA2A-49FE-9EB9-9C96C6016EEC} = {561126F4-FA18-45FC-A2BF-8F858F161D6D} + {461DC24A-A410-4171-8C02-CCDBF3702C2A} = {561126F4-FA18-45FC-A2BF-8F858F161D6D} + {E78C0D9A-798E-4BF6-B0CC-6FECB8CA2FCE} = {561126F4-FA18-45FC-A2BF-8F858F161D6D} + {6C0CA980-97C5-427A-BE61-5BCECAFABBDA} = {561126F4-FA18-45FC-A2BF-8F858F161D6D} + {18871EBA-AC85-4652-8919-EB8064B9A714} = {561126F4-FA18-45FC-A2BF-8F858F161D6D} + {3024CF36-85E5-4E00-9608-7002E2C7EF14} = {561126F4-FA18-45FC-A2BF-8F858F161D6D} + {E7F4DB0A-510D-41EF-B284-6E1DE1CC450D} = {561126F4-FA18-45FC-A2BF-8F858F161D6D} + {2773666A-8CFC-4533-A043-EAD59F16A1C7} = {D237DA6B-BD5F-46C0-8BEA-50E9A1340240} + {987E9374-98A1-44BA-946F-D3472D7A7055} = {D237DA6B-BD5F-46C0-8BEA-50E9A1340240} + {C4C9FA6F-F990-4C7B-85F6-CD8F4F5728F0} = {D237DA6B-BD5F-46C0-8BEA-50E9A1340240} + {58654438-F674-42F7-88FA-73EF90AD80B1} = {D237DA6B-BD5F-46C0-8BEA-50E9A1340240} + {19C52A0A-A790-409E-A28A-9745FF990F5C} = {D237DA6B-BD5F-46C0-8BEA-50E9A1340240} + {646B4316-C8B8-4DB6-B6AE-E586929E5729} = {D237DA6B-BD5F-46C0-8BEA-50E9A1340240} + {B10A2C41-344C-43E0-A32D-B9587C198D8B} = {0FD996A7-464F-4981-8380-3DCA3A244A13} + {C9B735E4-75BC-45AC-A5E3-39A6D076F912} = {0FD996A7-464F-4981-8380-3DCA3A244A13} + {5A0F4962-E670-4DA2-9E45-52CC47F26E2F} = {0FD996A7-464F-4981-8380-3DCA3A244A13} + EndGlobalSection +EndGlobal |