/* Resources for iconv.dll */
/* There are 4 occurrences of the version number in this file. */

#include <winver.h>

VS_VERSION_INFO VERSIONINFO
 FILEVERSION 1,11,0,0
 PRODUCTVERSION 1,11,0,0
 FILEFLAGSMASK 0x3fL /* VS_FFI_FILEFLAGSMASK */
#ifdef _DEBUG
 FILEFLAGS 0x1L  /* VS_FF_DEBUG */
#else
 FILEFLAGS 0x0L
#endif
 FILEOS 0x10004L  /* VOS_DOS_WINDOWS32 */
 FILETYPE 0x2L  /* VFT_DLL */
 FILESUBTYPE 0x0L  /* VFT2_UNKNOWN */
BEGIN
    BLOCK "StringFileInfo"
    BEGIN
        BLOCK "04090000"  /* Lang = US English, Charset = ASCII */
        BEGIN
            VALUE "Comments", "This library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License. You should have received a copy of the GNU Library 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\0"
            VALUE "CompanyName", "Free Software Foundation\0"
            VALUE "FileDescription", "LGPLed libiconv for Windows NT/2000/XP and Windows 95/98/ME\0"
            VALUE "FileVersion", "1.11\0"
            VALUE "InternalName", "iconv.dll\0"
            VALUE "LegalCopyright", "Copyright (C) 1999-2005\0"
            VALUE "LegalTrademarks", "\0"
            VALUE "OriginalFilename", "iconv.dll\0"
            VALUE "ProductName", "libiconv: character set conversion library\0"
            VALUE "ProductVersion", "1.11\0"
        END
    END
    BLOCK "VarFileInfo"
    BEGIN
        VALUE "Translation", 0x0409, 0  /* US English, ASCII */
    END
END
